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 0000000..4ab74d6 Binary files /dev/null and b/Debug/Core/Src/home_screen.o differ 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 6b28d18..e8d2c67 100644 Binary files a/Debug/Core/Src/main.o and b/Debug/Core/Src/main.o differ diff --git a/Debug/Core/Src/main.su b/Debug/Core/Src/main.su index cfd0505..7731a74 100644 --- a/Debug/Core/Src/main.su +++ b/Debug/Core/Src/main.su @@ -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 24 static /home/leo/STM32CubeIDE/workspace_1.13.1/PSE/Drivers/lvgl/src/core/lv_disp.h:162:26:lv_scr_act 8 static -../Core/Src/main.c:86:1:__io_putchar 16 static -../Core/Src/main.c:93:6:my_flush_cb 32 static +../Core/Src/main.c:88:1:__io_putchar 16 static +../Core/Src/main.c:95:6:my_flush_cb 32 static ../Core/Src/main.c:109:6:touchscreen_read_callback 16 static -../Core/Src/main.c:131:5:main 168 static -../Core/Src/main.c:227:6:SystemClock_Config 72 static -../Core/Src/main.c:266:13:MX_USART1_UART_Init 8 static -../Core/Src/main.c:299:13:MX_GPIO_Init 48 static -../Core/Src/main.c:369:13:MX_FSMC_Init 40 static -../Core/Src/main.c:433:6:Error_Handler 4 static,ignoring_inline_asm +../Core/Src/main.c:131:5:main 136 static +../Core/Src/main.c:229:6:SystemClock_Config 72 static +../Core/Src/main.c:268:13:MX_USART1_UART_Init 8 static +../Core/Src/main.c:301:13:MX_GPIO_Init 48 static +../Core/Src/main.c:364:13:MX_FSMC_Init 40 static +../Core/Src/main.c:428:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/Debug/Core/Src/stm32f1xx_hal_msp.o b/Debug/Core/Src/stm32f1xx_hal_msp.o index 07e5ae5..e34696f 100644 Binary files a/Debug/Core/Src/stm32f1xx_hal_msp.o and b/Debug/Core/Src/stm32f1xx_hal_msp.o differ diff --git a/Debug/Core/Src/stm32f1xx_it.o b/Debug/Core/Src/stm32f1xx_it.o index 2e29d83..4dac1b0 100644 Binary files a/Debug/Core/Src/stm32f1xx_it.o and b/Debug/Core/Src/stm32f1xx_it.o differ diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk index f79437d..27452e3 100644 --- a/Debug/Core/Src/subdir.mk +++ b/Debug/Core/Src/subdir.mk @@ -7,6 +7,7 @@ C_SRCS += \ ../Core/Src/ADS7843.c \ ../Core/Src/ILI9341.c \ +../Core/Src/home_screen.c \ ../Core/Src/lcdio.c \ ../Core/Src/logo_mint_resize.c \ ../Core/Src/main.c \ @@ -19,6 +20,7 @@ C_SRCS += \ OBJS += \ ./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 \ @@ -31,6 +33,7 @@ OBJS += \ C_DEPS += \ ./Core/Src/ADS7843.d \ ./Core/Src/ILI9341.d \ +./Core/Src/home_screen.d \ ./Core/Src/lcdio.d \ ./Core/Src/logo_mint_resize.d \ ./Core/Src/main.d \ @@ -48,7 +51,7 @@ Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk clean: clean-Core-2f-Src clean-Core-2f-Src: - -$(RM) ./Core/Src/ADS7843.cyclo ./Core/Src/ADS7843.d ./Core/Src/ADS7843.o ./Core/Src/ADS7843.su ./Core/Src/ILI9341.cyclo ./Core/Src/ILI9341.d ./Core/Src/ILI9341.o ./Core/Src/ILI9341.su ./Core/Src/lcdio.cyclo ./Core/Src/lcdio.d ./Core/Src/lcdio.o ./Core/Src/lcdio.su ./Core/Src/logo_mint_resize.cyclo ./Core/Src/logo_mint_resize.d ./Core/Src/logo_mint_resize.o ./Core/Src/logo_mint_resize.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su + -$(RM) ./Core/Src/ADS7843.cyclo ./Core/Src/ADS7843.d ./Core/Src/ADS7843.o ./Core/Src/ADS7843.su ./Core/Src/ILI9341.cyclo ./Core/Src/ILI9341.d ./Core/Src/ILI9341.o ./Core/Src/ILI9341.su ./Core/Src/home_screen.cyclo ./Core/Src/home_screen.d ./Core/Src/home_screen.o ./Core/Src/home_screen.su ./Core/Src/lcdio.cyclo ./Core/Src/lcdio.d ./Core/Src/lcdio.o ./Core/Src/lcdio.su ./Core/Src/logo_mint_resize.cyclo ./Core/Src/logo_mint_resize.d ./Core/Src/logo_mint_resize.o ./Core/Src/logo_mint_resize.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su .PHONY: clean-Core-2f-Src diff --git a/Debug/PSE.elf b/Debug/PSE.elf index a0f46e4..00a94c9 100755 Binary files a/Debug/PSE.elf and b/Debug/PSE.elf differ 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"