You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

75257 lines
3.1 MiB

oracle_test_d21.elf: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0002b158 00000000 00000000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ARM.exidx 00000008 0002b158 0002b158 0003b158 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .relocate 000000d4 20000000 0002b160 00040000 2**2
CONTENTS, ALLOC, LOAD, CODE
3 .bss 00004dbc 200000d8 0002b238 000400d4 2**3
ALLOC
4 .stack 00002004 20004e94 0002fff4 000400d4 2**0
ALLOC
5 .ARM.attributes 00000028 00000000 00000000 000400d4 2**0
CONTENTS, READONLY
6 .comment 00000059 00000000 00000000 000400fc 2**0
CONTENTS, READONLY
7 .debug_info 0009bb94 00000000 00000000 00040155 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 0000cd1f 00000000 00000000 000dbce9 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_aranges 00001a48 00000000 00000000 000e8a08 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_ranges 000036a8 00000000 00000000 000ea450 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_macro 00027531 00000000 00000000 000edaf8 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_line 00035960 00000000 00000000 00115029 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_str 000a0c98 00000000 00000000 0014a989 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_frame 00005168 00000000 00000000 001eb624 2**2
CONTENTS, READONLY, DEBUGGING
15 .debug_loc 000449b9 00000000 00000000 001f078c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <exception_table>:
/**********************
* GLOBAL FUNCTIONS
**********************/
void _lv_gc_clear_roots(void)
{
0: 98 6e 00 20 a5 16 00 00 a1 16 00 00 a1 16 00 00 .n. ............
...
#define LV_CLEAR_ROOT(root_type, root_name) _lv_memset_00(&LV_GC_ROOT(root_name), sizeof(LV_GC_ROOT(root_name)));
LV_ITERATE_ROOTS(LV_CLEAR_ROOT)
2c: a1 16 00 00 00 00 00 00 00 00 00 00 a1 16 00 00 ................
3c: 59 01 00 00 a1 16 00 00 a1 16 00 00 a1 16 00 00 Y...............
4c: a1 16 00 00 a1 16 00 00 a1 16 00 00 a1 16 00 00 ................
5c: a1 16 00 00 a1 16 00 00 71 0d 00 00 81 0d 00 00 ........q.......
}
6c: 91 0d 00 00 a1 0d 00 00 b1 0d 00 00 c1 0d 00 00 ................
7c: a1 16 00 00 a1 16 00 00 a1 16 00 00 a1 16 00 00 ................
8c: a1 16 00 00 a1 16 00 00 a1 16 00 00 a1 16 00 00 ................
9c: a1 16 00 00 a1 16 00 00 a1 16 00 00 a1 16 00 00 ................
ac: a1 16 00 00 00 00 00 00 ........
000000b4 <__do_global_dtors_aux>:
b4: b510 push {r4, lr}
b6: 4c06 ldr r4, [pc, #24] ; (d0 <__do_global_dtors_aux+0x1c>)
b8: 7823 ldrb r3, [r4, #0]
ba: 2b00 cmp r3, #0
bc: d107 bne.n ce <__do_global_dtors_aux+0x1a>
be: 4b05 ldr r3, [pc, #20] ; (d4 <__do_global_dtors_aux+0x20>)
c0: 2b00 cmp r3, #0
c2: d002 beq.n ca <__do_global_dtors_aux+0x16>
c4: 4804 ldr r0, [pc, #16] ; (d8 <__do_global_dtors_aux+0x24>)
c6: e000 b.n ca <__do_global_dtors_aux+0x16>
c8: bf00 nop
ca: 2301 movs r3, #1
cc: 7023 strb r3, [r4, #0]
ce: bd10 pop {r4, pc}
d0: 200000d8 .word 0x200000d8
d4: 00000000 .word 0x00000000
d8: 0002b160 .word 0x0002b160
000000dc <frame_dummy>:
dc: 4b08 ldr r3, [pc, #32] ; (100 <frame_dummy+0x24>)
de: b510 push {r4, lr}
e0: 2b00 cmp r3, #0
e2: d003 beq.n ec <frame_dummy+0x10>
e4: 4907 ldr r1, [pc, #28] ; (104 <frame_dummy+0x28>)
e6: 4808 ldr r0, [pc, #32] ; (108 <frame_dummy+0x2c>)
e8: e000 b.n ec <frame_dummy+0x10>
ea: bf00 nop
ec: 4807 ldr r0, [pc, #28] ; (10c <frame_dummy+0x30>)
ee: 6803 ldr r3, [r0, #0]
f0: 2b00 cmp r3, #0
f2: d100 bne.n f6 <frame_dummy+0x1a>
f4: bd10 pop {r4, pc}
f6: 4b06 ldr r3, [pc, #24] ; (110 <frame_dummy+0x34>)
f8: 2b00 cmp r3, #0
fa: d0fb beq.n f4 <frame_dummy+0x18>
fc: 4798 blx r3
fe: e7f9 b.n f4 <frame_dummy+0x18>
100: 00000000 .word 0x00000000
104: 200000dc .word 0x200000dc
108: 0002b160 .word 0x0002b160
10c: 0002b160 .word 0x0002b160
110: 00000000 .word 0x00000000
00000114 <p_time_init>:
#include "p_usart.h"
#include "lvgl.h"
static volatile uint64_t sys_time = 0;
char sys_time_str[P_SYS_TIME_STR_MAX_LEN];
void p_time_init(void)
{
114: b510 push {r4, lr}
memset(sys_time_str, '\0', P_SYS_TIME_STR_MAX_LEN);
116: 2240 movs r2, #64 ; 0x40
118: 2100 movs r1, #0
11a: 480a ldr r0, [pc, #40] ; (144 <p_time_init+0x30>)
11c: 4b0a ldr r3, [pc, #40] ; (148 <p_time_init+0x34>)
11e: 4798 blx r3
// Configure SysTick to trigger every millisecond using the CPU Clock
SysTick->CTRL = 0; // Disable SysTick
120: 4a0a ldr r2, [pc, #40] ; (14c <p_time_init+0x38>)
122: 2000 movs r0, #0
124: 6010 str r0, [r2, #0]
SysTick->LOAD = 7999UL; // Set reload register for 1mS interrupts
126: 4b0a ldr r3, [pc, #40] ; (150 <p_time_init+0x3c>)
128: 6053 str r3, [r2, #4]
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
}
else
{
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
12a: 4c0a ldr r4, [pc, #40] ; (154 <p_time_init+0x40>)
12c: 6a23 ldr r3, [r4, #32]
12e: 021b lsls r3, r3, #8
130: 0a1b lsrs r3, r3, #8
132: 21c0 movs r1, #192 ; 0xc0
134: 0609 lsls r1, r1, #24
136: 430b orrs r3, r1
138: 6223 str r3, [r4, #32]
NVIC_SetPriority(SysTick_IRQn, 3); // Set interrupt priority to least urgency
SysTick->VAL = 0; // Reset the SysTick counter value
13a: 6090 str r0, [r2, #8]
SysTick->CTRL = 0x00000007; // Enable SysTick, Enable SysTick Exceptions, Use CPU Clock
13c: 2307 movs r3, #7
13e: 6013 str r3, [r2, #0]
NVIC_EnableIRQ(SysTick_IRQn); // Enable SysTick Interrupt
}
140: bd10 pop {r4, pc}
142: 46c0 nop ; (mov r8, r8)
144: 20004cb0 .word 0x20004cb0
148: 0001c671 .word 0x0001c671
14c: e000e010 .word 0xe000e010
150: 00001f3f .word 0x00001f3f
154: e000ed00 .word 0xe000ed00
00000158 <SysTick_Handler>:
void SysTick_Handler(void)
{
158: b570 push {r4, r5, r6, lr}
sys_time++;
15a: 4906 ldr r1, [pc, #24] ; (174 <SysTick_Handler+0x1c>)
15c: 680a ldr r2, [r1, #0]
15e: 684b ldr r3, [r1, #4]
160: 2401 movs r4, #1
162: 2500 movs r5, #0
164: 1912 adds r2, r2, r4
166: 416b adcs r3, r5
168: 600a str r2, [r1, #0]
16a: 604b str r3, [r1, #4]
lv_tick_inc(1);
16c: 2001 movs r0, #1
16e: 4b02 ldr r3, [pc, #8] ; (178 <SysTick_Handler+0x20>)
170: 4798 blx r3
}
172: bd70 pop {r4, r5, r6, pc}
174: 200000f8 .word 0x200000f8
178: 00010edd .word 0x00010edd
0000017c <p_get_time_str>:
const char* p_get_time_str(void)
{
17c: b5f0 push {r4, r5, r6, r7, lr}
17e: 46de mov lr, fp
180: 464f mov r7, r9
182: 4646 mov r6, r8
184: b5c0 push {r6, r7, lr}
186: b086 sub sp, #24
uint16_t millis = sys_time % 1000;
188: 4b21 ldr r3, [pc, #132] ; (210 <p_get_time_str+0x94>)
18a: 681e ldr r6, [r3, #0]
18c: 685f ldr r7, [r3, #4]
// remove millis portion
uint32_t current_time = sys_time / 1000;
18e: 6818 ldr r0, [r3, #0]
190: 6859 ldr r1, [r3, #4]
192: 4b20 ldr r3, [pc, #128] ; (214 <p_get_time_str+0x98>)
194: 469b mov fp, r3
196: 22fa movs r2, #250 ; 0xfa
198: 0092 lsls r2, r2, #2
19a: 2300 movs r3, #0
19c: 47d8 blx fp
19e: 0004 movs r4, r0
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
uint8_t minute = ((current_time % 3600) / 60);
uint8_t _sec = (current_time % 60);
memset(sys_time_str, '\0', P_SYS_TIME_STR_MAX_LEN);
1a0: 2240 movs r2, #64 ; 0x40
1a2: 2100 movs r1, #0
1a4: 481c ldr r0, [pc, #112] ; (218 <p_get_time_str+0x9c>)
1a6: 4b1d ldr r3, [pc, #116] ; (21c <p_get_time_str+0xa0>)
1a8: 4798 blx r3
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
1aa: 4b1d ldr r3, [pc, #116] ; (220 <p_get_time_str+0xa4>)
1ac: 4699 mov r9, r3
1ae: 491d ldr r1, [pc, #116] ; (224 <p_get_time_str+0xa8>)
1b0: 9405 str r4, [sp, #20]
1b2: 0020 movs r0, r4
1b4: 4798 blx r3
1b6: 0008 movs r0, r1
1b8: 4d1b ldr r5, [pc, #108] ; (228 <p_get_time_str+0xac>)
1ba: 21e1 movs r1, #225 ; 0xe1
1bc: 0109 lsls r1, r1, #4
1be: 47a8 blx r5
snprintf(sys_time_str, P_SYS_TIME_STR_MAX_LEN, "[%02u:%02u:%02u:%03u]",
1c0: 24ff movs r4, #255 ; 0xff
1c2: 4020 ands r0, r4
1c4: 4680 mov r8, r0
uint16_t millis = sys_time % 1000;
1c6: 22fa movs r2, #250 ; 0xfa
1c8: 0092 lsls r2, r2, #2
1ca: 2300 movs r3, #0
1cc: 0030 movs r0, r6
1ce: 0039 movs r1, r7
1d0: 47d8 blx fp
snprintf(sys_time_str, P_SYS_TIME_STR_MAX_LEN, "[%02u:%02u:%02u:%03u]",
1d2: b292 uxth r2, r2
1d4: 9202 str r2, [sp, #8]
uint8_t _sec = (current_time % 60);
1d6: 213c movs r1, #60 ; 0x3c
1d8: 9e05 ldr r6, [sp, #20]
1da: 0030 movs r0, r6
1dc: 47c8 blx r9
snprintf(sys_time_str, P_SYS_TIME_STR_MAX_LEN, "[%02u:%02u:%02u:%03u]",
1de: 4021 ands r1, r4
1e0: 9101 str r1, [sp, #4]
uint8_t minute = ((current_time % 3600) / 60);
1e2: 21e1 movs r1, #225 ; 0xe1
1e4: 0109 lsls r1, r1, #4
1e6: 0030 movs r0, r6
1e8: 47c8 blx r9
1ea: 0008 movs r0, r1
1ec: 213c movs r1, #60 ; 0x3c
1ee: 47a8 blx r5
snprintf(sys_time_str, P_SYS_TIME_STR_MAX_LEN, "[%02u:%02u:%02u:%03u]",
1f0: 4004 ands r4, r0
1f2: 9400 str r4, [sp, #0]
1f4: 4643 mov r3, r8
1f6: 4a0d ldr r2, [pc, #52] ; (22c <p_get_time_str+0xb0>)
1f8: 2140 movs r1, #64 ; 0x40
1fa: 4807 ldr r0, [pc, #28] ; (218 <p_get_time_str+0x9c>)
1fc: 4c0c ldr r4, [pc, #48] ; (230 <p_get_time_str+0xb4>)
1fe: 47a0 blx r4
hour, minute, _sec, millis);
return sys_time_str;
}
200: 4805 ldr r0, [pc, #20] ; (218 <p_get_time_str+0x9c>)
202: b006 add sp, #24
204: bc1c pop {r2, r3, r4}
206: 4690 mov r8, r2
208: 4699 mov r9, r3
20a: 46a3 mov fp, r4
20c: bdf0 pop {r4, r5, r6, r7, pc}
20e: 46c0 nop ; (mov r8, r8)
210: 200000f8 .word 0x200000f8
214: 0001c391 .word 0x0001c391
218: 20004cb0 .word 0x20004cb0
21c: 0001c671 .word 0x0001c671
220: 0001c1b1 .word 0x0001c1b1
224: 00015180 .word 0x00015180
228: 0001c0a5 .word 0x0001c0a5
22c: 0001cf4c .word 0x0001cf4c
230: 0001c681 .word 0x0001c681
00000234 <oracle_init>:
#include "hornet.h"
static lv_disp_buf_t disp_buf;
static lv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/
void oracle_init(void)
{
234: b530 push {r4, r5, lr}
236: b08d sub sp, #52 ; 0x34
system_init();
238: 4b22 ldr r3, [pc, #136] ; (2c4 <oracle_init+0x90>)
23a: 4798 blx r3
*
* Enables global interrupts in the device to fire any enabled interrupt handlers.
*/
static inline void system_interrupt_enable_global(void)
{
cpu_irq_enable();
23c: 2201 movs r2, #1
23e: 4b22 ldr r3, [pc, #136] ; (2c8 <oracle_init+0x94>)
240: 701a strb r2, [r3, #0]
\details Ensures the apparent order of the explicit memory operations before
and after the instruction, without ensuring their completion.
*/
__STATIC_FORCEINLINE void __DMB(void)
{
__ASM volatile ("dmb 0xF":::"memory");
242: f3bf 8f5f dmb sy
__ASM volatile ("cpsie i" : : : "memory");
246: b662 cpsie i
system_interrupt_enable_global();
p_usart_init();
248: 4b20 ldr r3, [pc, #128] ; (2cc <oracle_init+0x98>)
24a: 4798 blx r3
p_i2c_init();
24c: 4b20 ldr r3, [pc, #128] ; (2d0 <oracle_init+0x9c>)
24e: 4798 blx r3
p_gpio_init();
250: 4b20 ldr r3, [pc, #128] ; (2d4 <oracle_init+0xa0>)
252: 4798 blx r3
p_time_init();
254: 4b20 ldr r3, [pc, #128] ; (2d8 <oracle_init+0xa4>)
256: 4798 blx r3
lv_init();
258: 4b20 ldr r3, [pc, #128] ; (2dc <oracle_init+0xa8>)
25a: 4798 blx r3
ssd1963_init();
25c: 4b20 ldr r3, [pc, #128] ; (2e0 <oracle_init+0xac>)
25e: 4798 blx r3
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
260: 4c20 ldr r4, [pc, #128] ; (2e4 <oracle_init+0xb0>)
262: 2396 movs r3, #150 ; 0x96
264: 015b lsls r3, r3, #5
266: 2200 movs r2, #0
268: 491f ldr r1, [pc, #124] ; (2e8 <oracle_init+0xb4>)
26a: 0020 movs r0, r4
26c: 4d1f ldr r5, [pc, #124] ; (2ec <oracle_init+0xb8>)
26e: 47a8 blx r5
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
270: a801 add r0, sp, #4
272: 4b1f ldr r3, [pc, #124] ; (2f0 <oracle_init+0xbc>)
274: 4798 blx r3
disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/
276: 4b1f ldr r3, [pc, #124] ; (2f4 <oracle_init+0xc0>)
278: 9304 str r3, [sp, #16]
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
27a: 9402 str r4, [sp, #8]
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
27c: a801 add r0, sp, #4
27e: 4b1e ldr r3, [pc, #120] ; (2f8 <oracle_init+0xc4>)
280: 4798 blx r3
lv_obj_t* scr = lv_disp_get_scr_act(NULL);
282: 2000 movs r0, #0
284: 4b1d ldr r3, [pc, #116] ; (2fc <oracle_init+0xc8>)
286: 4798 blx r3
288: 0004 movs r4, r0
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
28a: 2100 movs r1, #0
28c: 4b1c ldr r3, [pc, #112] ; (300 <oracle_init+0xcc>)
28e: 4798 blx r3
290: 0005 movs r5, r0
lv_img_set_src(hornet_image, &hornet);
292: 491c ldr r1, [pc, #112] ; (304 <oracle_init+0xd0>)
294: 4b1c ldr r3, [pc, #112] ; (308 <oracle_init+0xd4>)
296: 4798 blx r3
lv_obj_set_pos(hornet_image, 0, 0);
298: 2200 movs r2, #0
29a: 2100 movs r1, #0
29c: 0028 movs r0, r5
29e: 4d1b ldr r5, [pc, #108] ; (30c <oracle_init+0xd8>)
2a0: 47a8 blx r5
lv_obj_t* random_text = lv_label_create(scr, NULL);
2a2: 2100 movs r1, #0
2a4: 0020 movs r0, r4
2a6: 4b1a ldr r3, [pc, #104] ; (310 <oracle_init+0xdc>)
2a8: 4798 blx r3
2aa: 0004 movs r4, r0
lv_obj_set_pos(random_text, 90, 35);
2ac: 2223 movs r2, #35 ; 0x23
2ae: 215a movs r1, #90 ; 0x5a
2b0: 47a8 blx r5
lv_label_set_text(random_text, "Hello World");
2b2: 4918 ldr r1, [pc, #96] ; (314 <oracle_init+0xe0>)
2b4: 0020 movs r0, r4
2b6: 4b18 ldr r3, [pc, #96] ; (318 <oracle_init+0xe4>)
2b8: 4798 blx r3
p_debug_start_service();
2ba: 4b18 ldr r3, [pc, #96] ; (31c <oracle_init+0xe8>)
2bc: 4798 blx r3
}
2be: b00d add sp, #52 ; 0x34
2c0: bd30 pop {r4, r5, pc}
2c2: 46c0 nop ; (mov r8, r8)
2c4: 00001675 .word 0x00001675
2c8: 2000000c .word 0x2000000c
2cc: 0001bf35 .word 0x0001bf35
2d0: 0001bec5 .word 0x0001bec5
2d4: 0001bdfd .word 0x0001bdfd
2d8: 00000115 .word 0x00000115
2dc: 00001d65 .word 0x00001d65
2e0: 0001af51 .word 0x0001af51
2e4: 20002680 .word 0x20002680
2e8: 20000100 .word 0x20000100
2ec: 00010c01 .word 0x00010c01
2f0: 00010b9d .word 0x00010b9d
2f4: 0001badd .word 0x0001badd
2f8: 00010c21 .word 0x00010c21
2fc: 00001845 .word 0x00001845
300: 0001955d .word 0x0001955d
304: 0001cf64 .word 0x0001cf64
308: 000192c9 .word 0x000192c9
30c: 00002979 .word 0x00002979
310: 0001a8c5 .word 0x0001a8c5
314: 000254cc .word 0x000254cc
318: 0001a59d .word 0x0001a59d
31c: 0001c079 .word 0x0001c079
00000320 <oracle_service>:
void oracle_service(void)
{
320: b510 push {r4, lr}
delay_ms(1);
322: 2000 movs r0, #0
324: 4b08 ldr r3, [pc, #32] ; (348 <oracle_service+0x28>)
326: 4798 blx r3
328: 0002 movs r2, r0
32a: 2300 movs r3, #0
32c: 4807 ldr r0, [pc, #28] ; (34c <oracle_service+0x2c>)
32e: 2100 movs r1, #0
330: 1880 adds r0, r0, r2
332: 4159 adcs r1, r3
334: 4a06 ldr r2, [pc, #24] ; (350 <oracle_service+0x30>)
336: 2300 movs r3, #0
338: 4c06 ldr r4, [pc, #24] ; (354 <oracle_service+0x34>)
33a: 47a0 blx r4
33c: 4b06 ldr r3, [pc, #24] ; (358 <oracle_service+0x38>)
33e: 4798 blx r3
lv_task_handler();
340: 4b06 ldr r3, [pc, #24] ; (35c <oracle_service+0x3c>)
342: 4798 blx r3
344: bd10 pop {r4, pc}
346: 46c0 nop ; (mov r8, r8)
348: 000013fd .word 0x000013fd
34c: 00001b57 .word 0x00001b57
350: 00001b58 .word 0x00001b58
354: 0001c391 .word 0x0001c391
358: 20000001 .word 0x20000001
35c: 000136a1 .word 0x000136a1
00000360 <long_division>:
/**
* \internal Calculate 64 bit division, ref can be found in
* http://en.wikipedia.org/wiki/Division_algorithm#Long_division
*/
static uint64_t long_division(uint64_t n, uint64_t d)
{
360: b5f0 push {r4, r5, r6, r7, lr}
362: 46de mov lr, fp
364: 4657 mov r7, sl
366: 464e mov r6, r9
368: 4645 mov r5, r8
36a: b5e0 push {r5, r6, r7, lr}
36c: b087 sub sp, #28
36e: 4680 mov r8, r0
370: 9104 str r1, [sp, #16]
372: 0016 movs r6, r2
374: 001f movs r7, r3
int32_t i;
uint64_t q = 0, r = 0, bit_shift;
376: 2200 movs r2, #0
378: 2300 movs r3, #0
37a: 2100 movs r1, #0
37c: 468b mov fp, r1
for (i = 63; i >= 0; i--) {
37e: 243f movs r4, #63 ; 0x3f
bit_shift = (uint64_t)1 << i;
380: 2001 movs r0, #1
382: 0021 movs r1, r4
384: 9600 str r6, [sp, #0]
386: 9701 str r7, [sp, #4]
388: 465c mov r4, fp
38a: 9403 str r4, [sp, #12]
38c: 4644 mov r4, r8
38e: 9405 str r4, [sp, #20]
390: e013 b.n 3ba <long_division+0x5a>
392: 2420 movs r4, #32
394: 1a64 subs r4, r4, r1
396: 0005 movs r5, r0
398: 40e5 lsrs r5, r4
39a: 46a8 mov r8, r5
39c: e014 b.n 3c8 <long_division+0x68>
if (n & bit_shift) {
r |= 0x01;
}
if (r >= d) {
r = r - d;
39e: 9c00 ldr r4, [sp, #0]
3a0: 9d01 ldr r5, [sp, #4]
3a2: 1b12 subs r2, r2, r4
3a4: 41ab sbcs r3, r5
q |= bit_shift;
3a6: 465c mov r4, fp
3a8: 464d mov r5, r9
3aa: 432c orrs r4, r5
3ac: 46a3 mov fp, r4
3ae: 9c03 ldr r4, [sp, #12]
3b0: 4645 mov r5, r8
3b2: 432c orrs r4, r5
3b4: 9403 str r4, [sp, #12]
for (i = 63; i >= 0; i--) {
3b6: 3901 subs r1, #1
3b8: d325 bcc.n 406 <long_division+0xa6>
bit_shift = (uint64_t)1 << i;
3ba: 2420 movs r4, #32
3bc: 4264 negs r4, r4
3be: 190c adds r4, r1, r4
3c0: d4e7 bmi.n 392 <long_division+0x32>
3c2: 0005 movs r5, r0
3c4: 40a5 lsls r5, r4
3c6: 46a8 mov r8, r5
3c8: 0004 movs r4, r0
3ca: 408c lsls r4, r1
3cc: 46a1 mov r9, r4
r = r << 1;
3ce: 1892 adds r2, r2, r2
3d0: 415b adcs r3, r3
3d2: 0014 movs r4, r2
3d4: 001d movs r5, r3
if (n & bit_shift) {
3d6: 9e05 ldr r6, [sp, #20]
3d8: 464f mov r7, r9
3da: 403e ands r6, r7
3dc: 46b4 mov ip, r6
3de: 9e04 ldr r6, [sp, #16]
3e0: 4647 mov r7, r8
3e2: 403e ands r6, r7
3e4: 46b2 mov sl, r6
3e6: 4666 mov r6, ip
3e8: 4657 mov r7, sl
3ea: 433e orrs r6, r7
3ec: d003 beq.n 3f6 <long_division+0x96>
r |= 0x01;
3ee: 0006 movs r6, r0
3f0: 4326 orrs r6, r4
3f2: 0032 movs r2, r6
3f4: 002b movs r3, r5
if (r >= d) {
3f6: 9c00 ldr r4, [sp, #0]
3f8: 9d01 ldr r5, [sp, #4]
3fa: 429d cmp r5, r3
3fc: d8db bhi.n 3b6 <long_division+0x56>
3fe: d1ce bne.n 39e <long_division+0x3e>
400: 4294 cmp r4, r2
402: d8d8 bhi.n 3b6 <long_division+0x56>
404: e7cb b.n 39e <long_division+0x3e>
406: 9b03 ldr r3, [sp, #12]
}
}
return q;
}
408: 4658 mov r0, fp
40a: 0019 movs r1, r3
40c: b007 add sp, #28
40e: bc3c pop {r2, r3, r4, r5}
410: 4690 mov r8, r2
412: 4699 mov r9, r3
414: 46a2 mov sl, r4
416: 46ab mov fp, r5
418: bdf0 pop {r4, r5, r6, r7, pc}
0000041a <_sercom_get_sync_baud_val>:
*/
enum status_code _sercom_get_sync_baud_val(
const uint32_t baudrate,
const uint32_t external_clock,
uint16_t *const baudvalue)
{
41a: b510 push {r4, lr}
uint16_t baud_calculated = 0;
uint32_t clock_value = external_clock;
/* Check if baudrate is outside of valid range */
if (baudrate > (external_clock / 2)) {
41c: 0849 lsrs r1, r1, #1
/* Return with error code */
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
41e: 2340 movs r3, #64 ; 0x40
420: 2400 movs r4, #0
if (baudrate > (external_clock / 2)) {
422: 4281 cmp r1, r0
424: d202 bcs.n 42c <_sercom_get_sync_baud_val+0x12>
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
} else {
*baudvalue = baud_calculated;
return STATUS_OK;
}
}
426: 0018 movs r0, r3
428: bd10 pop {r4, pc}
baud_calculated++;
42a: 001c movs r4, r3
clock_value = clock_value - baudrate;
42c: 1a09 subs r1, r1, r0
baud_calculated++;
42e: 1c63 adds r3, r4, #1
430: b29b uxth r3, r3
while (clock_value >= baudrate) {
432: 4288 cmp r0, r1
434: d9f9 bls.n 42a <_sercom_get_sync_baud_val+0x10>
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
436: 2340 movs r3, #64 ; 0x40
if (baud_calculated > 0xFF) {
438: 2cff cmp r4, #255 ; 0xff
43a: d8f4 bhi.n 426 <_sercom_get_sync_baud_val+0xc>
*baudvalue = baud_calculated;
43c: 8014 strh r4, [r2, #0]
return STATUS_OK;
43e: 2300 movs r3, #0
440: e7f1 b.n 426 <_sercom_get_sync_baud_val+0xc>
...
00000444 <_sercom_get_async_baud_val>:
const uint32_t baudrate,
const uint32_t peripheral_clock,
uint16_t *const baudval,
enum sercom_asynchronous_operation_mode mode,
enum sercom_asynchronous_sample_num sample_num)
{
444: b5f0 push {r4, r5, r6, r7, lr}
446: b083 sub sp, #12
448: 000f movs r7, r1
44a: 0016 movs r6, r2
44c: aa08 add r2, sp, #32
44e: 7811 ldrb r1, [r2, #0]
uint8_t baud_fp;
uint32_t baud_int = 0;
uint64_t temp1;
/* Check if the baudrate is outside of valid range */
if ((baudrate * sample_num) > peripheral_clock) {
450: 0004 movs r4, r0
452: 434c muls r4, r1
/* Return with error code */
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
454: 2240 movs r2, #64 ; 0x40
if ((baudrate * sample_num) > peripheral_clock) {
456: 42bc cmp r4, r7
458: d902 bls.n 460 <_sercom_get_async_baud_val+0x1c>
baud_calculated = baud_int | (baud_fp << 13);
}
*baudval = baud_calculated;
return STATUS_OK;
}
45a: 0010 movs r0, r2
45c: b003 add sp, #12
45e: bdf0 pop {r4, r5, r6, r7, pc}
if(mode == SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC) {
460: 2b00 cmp r3, #0
462: d114 bne.n 48e <_sercom_get_async_baud_val+0x4a>
temp1 = ((sample_num * (uint64_t)baudrate) << SHIFT);
464: 0002 movs r2, r0
466: 0008 movs r0, r1
468: 2100 movs r1, #0
46a: 4c19 ldr r4, [pc, #100] ; (4d0 <_sercom_get_async_baud_val+0x8c>)
46c: 47a0 blx r4
46e: 0001 movs r1, r0
ratio = long_division(temp1, peripheral_clock);
470: 003a movs r2, r7
472: 2300 movs r3, #0
474: 2000 movs r0, #0
476: 4c17 ldr r4, [pc, #92] ; (4d4 <_sercom_get_async_baud_val+0x90>)
478: 47a0 blx r4
scale = ((uint64_t)1 << SHIFT) - ratio;
47a: 2200 movs r2, #0
47c: 2301 movs r3, #1
47e: 1a12 subs r2, r2, r0
480: 418b sbcs r3, r1
baud_calculated = (65536 * scale) >> SHIFT;
482: 0c12 lsrs r2, r2, #16
484: 041b lsls r3, r3, #16
486: 431a orrs r2, r3
*baudval = baud_calculated;
488: 8032 strh r2, [r6, #0]
return STATUS_OK;
48a: 2200 movs r2, #0
48c: e7e5 b.n 45a <_sercom_get_async_baud_val+0x16>
uint64_t baud_calculated = 0;
48e: 2200 movs r2, #0
} else if(mode == SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL) {
490: 2b01 cmp r3, #1
492: d1f9 bne.n 488 <_sercom_get_async_baud_val+0x44>
temp1 = ((uint64_t)baudrate * sample_num);
494: 000a movs r2, r1
496: 2300 movs r3, #0
498: 2100 movs r1, #0
49a: 4c0d ldr r4, [pc, #52] ; (4d0 <_sercom_get_async_baud_val+0x8c>)
49c: 47a0 blx r4
49e: 0002 movs r2, r0
4a0: 000b movs r3, r1
4a2: 9200 str r2, [sp, #0]
4a4: 9301 str r3, [sp, #4]
baud_int = long_division( peripheral_clock, temp1);
4a6: 0038 movs r0, r7
4a8: 2100 movs r1, #0
4aa: 4c0a ldr r4, [pc, #40] ; (4d4 <_sercom_get_async_baud_val+0x90>)
4ac: 47a0 blx r4
4ae: 0005 movs r5, r0
if(baud_int > BAUD_INT_MAX) {
4b0: 2380 movs r3, #128 ; 0x80
4b2: 019b lsls r3, r3, #6
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
4b4: 2240 movs r2, #64 ; 0x40
if(baud_int > BAUD_INT_MAX) {
4b6: 4298 cmp r0, r3
4b8: d8cf bhi.n 45a <_sercom_get_async_baud_val+0x16>
temp1 = long_division( 8 * (uint64_t)peripheral_clock, temp1);
4ba: 0f79 lsrs r1, r7, #29
4bc: 00f8 lsls r0, r7, #3
4be: 9a00 ldr r2, [sp, #0]
4c0: 9b01 ldr r3, [sp, #4]
4c2: 47a0 blx r4
baud_fp = temp1 - 8 * baud_int;
4c4: 00ea lsls r2, r5, #3
4c6: 1a82 subs r2, r0, r2
baud_calculated = baud_int | (baud_fp << 13);
4c8: b2d2 uxtb r2, r2
4ca: 0352 lsls r2, r2, #13
4cc: 432a orrs r2, r5
4ce: e7db b.n 488 <_sercom_get_async_baud_val+0x44>
4d0: 0001c3d1 .word 0x0001c3d1
4d4: 00000361 .word 0x00000361
000004d8 <sercom_set_gclk_generator>:
* forced.
*/
enum status_code sercom_set_gclk_generator(
const enum gclk_generator generator_source,
const bool force_change)
{
4d8: b510 push {r4, lr}
4da: b082 sub sp, #8
4dc: 0004 movs r4, r0
/* Check if valid option */
if (!_sercom_config.generator_is_set || force_change) {
4de: 4b0e ldr r3, [pc, #56] ; (518 <sercom_set_gclk_generator+0x40>)
4e0: 781b ldrb r3, [r3, #0]
4e2: 2b00 cmp r3, #0
4e4: d007 beq.n 4f6 <sercom_set_gclk_generator+0x1e>
4e6: 2900 cmp r1, #0
4e8: d105 bne.n 4f6 <sercom_set_gclk_generator+0x1e>
/* Save config */
_sercom_config.generator_source = generator_source;
_sercom_config.generator_is_set = true;
return STATUS_OK;
} else if (generator_source == _sercom_config.generator_source) {
4ea: 4b0b ldr r3, [pc, #44] ; (518 <sercom_set_gclk_generator+0x40>)
4ec: 785b ldrb r3, [r3, #1]
4ee: 4283 cmp r3, r0
4f0: d010 beq.n 514 <sercom_set_gclk_generator+0x3c>
/* Return status OK if same config */
return STATUS_OK;
}
/* Return invalid config to already initialized GCLK */
return STATUS_ERR_ALREADY_INITIALIZED;
4f2: 201d movs r0, #29
4f4: e00c b.n 510 <sercom_set_gclk_generator+0x38>
gclk_chan_conf.source_generator = generator_source;
4f6: a901 add r1, sp, #4
4f8: 700c strb r4, [r1, #0]
system_gclk_chan_set_config(SERCOM_GCLK_ID, &gclk_chan_conf);
4fa: 2013 movs r0, #19
4fc: 4b07 ldr r3, [pc, #28] ; (51c <sercom_set_gclk_generator+0x44>)
4fe: 4798 blx r3
system_gclk_chan_enable(SERCOM_GCLK_ID);
500: 2013 movs r0, #19
502: 4b07 ldr r3, [pc, #28] ; (520 <sercom_set_gclk_generator+0x48>)
504: 4798 blx r3
_sercom_config.generator_source = generator_source;
506: 4b04 ldr r3, [pc, #16] ; (518 <sercom_set_gclk_generator+0x40>)
508: 705c strb r4, [r3, #1]
_sercom_config.generator_is_set = true;
50a: 2201 movs r2, #1
50c: 701a strb r2, [r3, #0]
return STATUS_OK;
50e: 2000 movs r0, #0
}
510: b002 add sp, #8
512: bd10 pop {r4, pc}
return STATUS_OK;
514: 2000 movs r0, #0
516: e7fb b.n 510 <sercom_set_gclk_generator+0x38>
518: 200026a4 .word 0x200026a4
51c: 00001515 .word 0x00001515
520: 00001489 .word 0x00001489
00000524 <_sercom_get_default_pad>:
*/
uint32_t _sercom_get_default_pad(
Sercom *const sercom_module,
const uint8_t pad)
{
switch ((uintptr_t)sercom_module) {
524: 4b40 ldr r3, [pc, #256] ; (628 <_sercom_get_default_pad+0x104>)
526: 4298 cmp r0, r3
528: d031 beq.n 58e <_sercom_get_default_pad+0x6a>
52a: d90a bls.n 542 <_sercom_get_default_pad+0x1e>
52c: 4b3f ldr r3, [pc, #252] ; (62c <_sercom_get_default_pad+0x108>)
52e: 4298 cmp r0, r3
530: d04d beq.n 5ce <_sercom_get_default_pad+0xaa>
532: 4b3f ldr r3, [pc, #252] ; (630 <_sercom_get_default_pad+0x10c>)
534: 4298 cmp r0, r3
536: d05a beq.n 5ee <_sercom_get_default_pad+0xca>
538: 4b3e ldr r3, [pc, #248] ; (634 <_sercom_get_default_pad+0x110>)
53a: 4298 cmp r0, r3
53c: d037 beq.n 5ae <_sercom_get_default_pad+0x8a>
/* Auto-generate a lookup table for the default SERCOM pad defaults */
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
}
Assert(false);
return 0;
53e: 2000 movs r0, #0
}
540: 4770 bx lr
switch ((uintptr_t)sercom_module) {
542: 4b3d ldr r3, [pc, #244] ; (638 <_sercom_get_default_pad+0x114>)
544: 4298 cmp r0, r3
546: d00c beq.n 562 <_sercom_get_default_pad+0x3e>
548: 4b3c ldr r3, [pc, #240] ; (63c <_sercom_get_default_pad+0x118>)
54a: 4298 cmp r0, r3
54c: d1f7 bne.n 53e <_sercom_get_default_pad+0x1a>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
54e: 2901 cmp r1, #1
550: d017 beq.n 582 <_sercom_get_default_pad+0x5e>
552: 2900 cmp r1, #0
554: d05d beq.n 612 <_sercom_get_default_pad+0xee>
556: 2902 cmp r1, #2
558: d015 beq.n 586 <_sercom_get_default_pad+0x62>
55a: 2903 cmp r1, #3
55c: d015 beq.n 58a <_sercom_get_default_pad+0x66>
return 0;
55e: 2000 movs r0, #0
560: e7ee b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
562: 2901 cmp r1, #1
564: d007 beq.n 576 <_sercom_get_default_pad+0x52>
566: 2900 cmp r1, #0
568: d051 beq.n 60e <_sercom_get_default_pad+0xea>
56a: 2902 cmp r1, #2
56c: d005 beq.n 57a <_sercom_get_default_pad+0x56>
56e: 2903 cmp r1, #3
570: d005 beq.n 57e <_sercom_get_default_pad+0x5a>
return 0;
572: 2000 movs r0, #0
574: e7e4 b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
576: 4832 ldr r0, [pc, #200] ; (640 <_sercom_get_default_pad+0x11c>)
578: e7e2 b.n 540 <_sercom_get_default_pad+0x1c>
57a: 4832 ldr r0, [pc, #200] ; (644 <_sercom_get_default_pad+0x120>)
57c: e7e0 b.n 540 <_sercom_get_default_pad+0x1c>
57e: 4832 ldr r0, [pc, #200] ; (648 <_sercom_get_default_pad+0x124>)
580: e7de b.n 540 <_sercom_get_default_pad+0x1c>
582: 4832 ldr r0, [pc, #200] ; (64c <_sercom_get_default_pad+0x128>)
584: e7dc b.n 540 <_sercom_get_default_pad+0x1c>
586: 4832 ldr r0, [pc, #200] ; (650 <_sercom_get_default_pad+0x12c>)
588: e7da b.n 540 <_sercom_get_default_pad+0x1c>
58a: 4832 ldr r0, [pc, #200] ; (654 <_sercom_get_default_pad+0x130>)
58c: e7d8 b.n 540 <_sercom_get_default_pad+0x1c>
58e: 2901 cmp r1, #1
590: d007 beq.n 5a2 <_sercom_get_default_pad+0x7e>
592: 2900 cmp r1, #0
594: d03f beq.n 616 <_sercom_get_default_pad+0xf2>
596: 2902 cmp r1, #2
598: d005 beq.n 5a6 <_sercom_get_default_pad+0x82>
59a: 2903 cmp r1, #3
59c: d005 beq.n 5aa <_sercom_get_default_pad+0x86>
return 0;
59e: 2000 movs r0, #0
5a0: e7ce b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
5a2: 482d ldr r0, [pc, #180] ; (658 <_sercom_get_default_pad+0x134>)
5a4: e7cc b.n 540 <_sercom_get_default_pad+0x1c>
5a6: 482d ldr r0, [pc, #180] ; (65c <_sercom_get_default_pad+0x138>)
5a8: e7ca b.n 540 <_sercom_get_default_pad+0x1c>
5aa: 482d ldr r0, [pc, #180] ; (660 <_sercom_get_default_pad+0x13c>)
5ac: e7c8 b.n 540 <_sercom_get_default_pad+0x1c>
5ae: 2901 cmp r1, #1
5b0: d007 beq.n 5c2 <_sercom_get_default_pad+0x9e>
5b2: 2900 cmp r1, #0
5b4: d031 beq.n 61a <_sercom_get_default_pad+0xf6>
5b6: 2902 cmp r1, #2
5b8: d005 beq.n 5c6 <_sercom_get_default_pad+0xa2>
5ba: 2903 cmp r1, #3
5bc: d005 beq.n 5ca <_sercom_get_default_pad+0xa6>
return 0;
5be: 2000 movs r0, #0
5c0: e7be b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
5c2: 4828 ldr r0, [pc, #160] ; (664 <_sercom_get_default_pad+0x140>)
5c4: e7bc b.n 540 <_sercom_get_default_pad+0x1c>
5c6: 4828 ldr r0, [pc, #160] ; (668 <_sercom_get_default_pad+0x144>)
5c8: e7ba b.n 540 <_sercom_get_default_pad+0x1c>
5ca: 4828 ldr r0, [pc, #160] ; (66c <_sercom_get_default_pad+0x148>)
5cc: e7b8 b.n 540 <_sercom_get_default_pad+0x1c>
5ce: 2901 cmp r1, #1
5d0: d007 beq.n 5e2 <_sercom_get_default_pad+0xbe>
5d2: 2900 cmp r1, #0
5d4: d023 beq.n 61e <_sercom_get_default_pad+0xfa>
5d6: 2902 cmp r1, #2
5d8: d005 beq.n 5e6 <_sercom_get_default_pad+0xc2>
5da: 2903 cmp r1, #3
5dc: d005 beq.n 5ea <_sercom_get_default_pad+0xc6>
return 0;
5de: 2000 movs r0, #0
5e0: e7ae b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
5e2: 4823 ldr r0, [pc, #140] ; (670 <_sercom_get_default_pad+0x14c>)
5e4: e7ac b.n 540 <_sercom_get_default_pad+0x1c>
5e6: 4823 ldr r0, [pc, #140] ; (674 <_sercom_get_default_pad+0x150>)
5e8: e7aa b.n 540 <_sercom_get_default_pad+0x1c>
5ea: 4823 ldr r0, [pc, #140] ; (678 <_sercom_get_default_pad+0x154>)
5ec: e7a8 b.n 540 <_sercom_get_default_pad+0x1c>
5ee: 2901 cmp r1, #1
5f0: d007 beq.n 602 <_sercom_get_default_pad+0xde>
5f2: 2900 cmp r1, #0
5f4: d015 beq.n 622 <_sercom_get_default_pad+0xfe>
5f6: 2902 cmp r1, #2
5f8: d005 beq.n 606 <_sercom_get_default_pad+0xe2>
5fa: 2903 cmp r1, #3
5fc: d005 beq.n 60a <_sercom_get_default_pad+0xe6>
return 0;
5fe: 2000 movs r0, #0
600: e79e b.n 540 <_sercom_get_default_pad+0x1c>
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
602: 481e ldr r0, [pc, #120] ; (67c <_sercom_get_default_pad+0x158>)
604: e79c b.n 540 <_sercom_get_default_pad+0x1c>
606: 481e ldr r0, [pc, #120] ; (680 <_sercom_get_default_pad+0x15c>)
608: e79a b.n 540 <_sercom_get_default_pad+0x1c>
60a: 481e ldr r0, [pc, #120] ; (684 <_sercom_get_default_pad+0x160>)
60c: e798 b.n 540 <_sercom_get_default_pad+0x1c>
60e: 481e ldr r0, [pc, #120] ; (688 <_sercom_get_default_pad+0x164>)
610: e796 b.n 540 <_sercom_get_default_pad+0x1c>
612: 2003 movs r0, #3
614: e794 b.n 540 <_sercom_get_default_pad+0x1c>
616: 481d ldr r0, [pc, #116] ; (68c <_sercom_get_default_pad+0x168>)
618: e792 b.n 540 <_sercom_get_default_pad+0x1c>
61a: 481d ldr r0, [pc, #116] ; (690 <_sercom_get_default_pad+0x16c>)
61c: e790 b.n 540 <_sercom_get_default_pad+0x1c>
61e: 481d ldr r0, [pc, #116] ; (694 <_sercom_get_default_pad+0x170>)
620: e78e b.n 540 <_sercom_get_default_pad+0x1c>
622: 481d ldr r0, [pc, #116] ; (698 <_sercom_get_default_pad+0x174>)
624: e78c b.n 540 <_sercom_get_default_pad+0x1c>
626: 46c0 nop ; (mov r8, r8)
628: 42001000 .word 0x42001000
62c: 42001800 .word 0x42001800
630: 42001c00 .word 0x42001c00
634: 42001400 .word 0x42001400
638: 42000800 .word 0x42000800
63c: 42000c00 .word 0x42000c00
640: 00050003 .word 0x00050003
644: 00060003 .word 0x00060003
648: 00070003 .word 0x00070003
64c: 00010003 .word 0x00010003
650: 001e0003 .word 0x001e0003
654: 001f0003 .word 0x001f0003
658: 00090003 .word 0x00090003
65c: 000a0003 .word 0x000a0003
660: 000b0003 .word 0x000b0003
664: 00110003 .word 0x00110003
668: 00120003 .word 0x00120003
66c: 00130003 .word 0x00130003
670: 000d0003 .word 0x000d0003
674: 000e0003 .word 0x000e0003
678: 000f0003 .word 0x000f0003
67c: 00170003 .word 0x00170003
680: 00180003 .word 0x00180003
684: 00190003 .word 0x00190003
688: 00040003 .word 0x00040003
68c: 00080003 .word 0x00080003
690: 00100003 .word 0x00100003
694: 000c0003 .word 0x000c0003
698: 00160003 .word 0x00160003
0000069c <_sercom_get_sercom_inst_index>:
*
* \return Index of given instance.
*/
uint8_t _sercom_get_sercom_inst_index(
Sercom *const sercom_instance)
{
69c: b530 push {r4, r5, lr}
69e: b087 sub sp, #28
/* Save all available SERCOM instances for compare */
Sercom *sercom_instances[SERCOM_INST_NUM] = SERCOM_INSTS;
6a0: 4b0b ldr r3, [pc, #44] ; (6d0 <_sercom_get_sercom_inst_index+0x34>)
6a2: 466a mov r2, sp
6a4: cb32 ldmia r3!, {r1, r4, r5}
6a6: c232 stmia r2!, {r1, r4, r5}
6a8: cb32 ldmia r3!, {r1, r4, r5}
6aa: c232 stmia r2!, {r1, r4, r5}
/* Find index for sercom instance */
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
if ((uintptr_t)sercom_instance == (uintptr_t)sercom_instances[i]) {
6ac: 9b00 ldr r3, [sp, #0]
6ae: 4283 cmp r3, r0
6b0: d00b beq.n 6ca <_sercom_get_sercom_inst_index+0x2e>
6b2: 2301 movs r3, #1
6b4: 009a lsls r2, r3, #2
6b6: 4669 mov r1, sp
6b8: 5852 ldr r2, [r2, r1]
6ba: 4282 cmp r2, r0
6bc: d006 beq.n 6cc <_sercom_get_sercom_inst_index+0x30>
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
6be: 3301 adds r3, #1
6c0: 2b06 cmp r3, #6
6c2: d1f7 bne.n 6b4 <_sercom_get_sercom_inst_index+0x18>
}
}
/* Invalid data given */
Assert(false);
return 0;
6c4: 2000 movs r0, #0
}
6c6: b007 add sp, #28
6c8: bd30 pop {r4, r5, pc}
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
6ca: 2300 movs r3, #0
return i;
6cc: b2d8 uxtb r0, r3
6ce: e7fa b.n 6c6 <_sercom_get_sercom_inst_index+0x2a>
6d0: 000254d8 .word 0x000254d8
000006d4 <usart_init>:
*/
enum status_code usart_init(
struct usart_module *const module,
Sercom *const hw,
const struct usart_config *const config)
{
6d4: b5f0 push {r4, r5, r6, r7, lr}
6d6: 46de mov lr, fp
6d8: 4657 mov r7, sl
6da: 464e mov r6, r9
6dc: 4645 mov r5, r8
6de: b5e0 push {r5, r6, r7, lr}
6e0: b091 sub sp, #68 ; 0x44
6e2: 0005 movs r5, r0
6e4: 000c movs r4, r1
6e6: 0016 movs r6, r2
Assert(config);
enum status_code status_code = STATUS_OK;
/* Assign module pointer to software instance struct */
module->hw = hw;
6e8: 6029 str r1, [r5, #0]
/* Get a pointer to the hardware module instance */
SercomUsart *const usart_hw = &(module->hw->USART);
uint32_t sercom_index = _sercom_get_sercom_inst_index(module->hw);
6ea: 0008 movs r0, r1
6ec: 4bba ldr r3, [pc, #744] ; (9d8 <usart_init+0x304>)
6ee: 4798 blx r3
6f0: 0002 movs r2, r0
#else
pm_index = sercom_index + PM_APBCMASK_SERCOM0_Pos;
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
#endif
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_SWRST) {
6f2: 6823 ldr r3, [r4, #0]
/* The module is busy resetting itself */
return STATUS_BUSY;
6f4: 2005 movs r0, #5
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_SWRST) {
6f6: 07db lsls r3, r3, #31
6f8: d506 bpl.n 708 <usart_init+0x34>
_sercom_set_handler(instance_index, _usart_interrupt_handler);
_sercom_instances[instance_index] = module;
#endif
return status_code;
}
6fa: b011 add sp, #68 ; 0x44
6fc: bc3c pop {r2, r3, r4, r5}
6fe: 4690 mov r8, r2
700: 4699 mov r9, r3
702: 46a2 mov sl, r4
704: 46ab mov fp, r5
706: bdf0 pop {r4, r5, r6, r7, pc}
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_ENABLE) {
708: 6823 ldr r3, [r4, #0]
return STATUS_ERR_DENIED;
70a: 3017 adds r0, #23
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_ENABLE) {
70c: 079b lsls r3, r3, #30
70e: d4f4 bmi.n 6fa <usart_init+0x26>
case SYSTEM_CLOCK_APB_APBB:
PM->APBBMASK.reg |= mask;
break;
case SYSTEM_CLOCK_APB_APBC:
PM->APBCMASK.reg |= mask;
710: 49b2 ldr r1, [pc, #712] ; (9dc <usart_init+0x308>)
712: 6a08 ldr r0, [r1, #32]
pm_index = sercom_index + PM_APBCMASK_SERCOM0_Pos;
714: 1c97 adds r7, r2, #2
system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBC, 1 << pm_index);
716: 2301 movs r3, #1
718: 40bb lsls r3, r7
71a: 4303 orrs r3, r0
71c: 620b str r3, [r1, #32]
gclk_chan_conf.source_generator = config->generator_source;
71e: a90f add r1, sp, #60 ; 0x3c
720: 272d movs r7, #45 ; 0x2d
722: 5df3 ldrb r3, [r6, r7]
724: 700b strb r3, [r1, #0]
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
726: 3214 adds r2, #20
system_gclk_chan_set_config(gclk_index, &gclk_chan_conf);
728: b2d3 uxtb r3, r2
72a: 9302 str r3, [sp, #8]
72c: 0018 movs r0, r3
72e: 4bac ldr r3, [pc, #688] ; (9e0 <usart_init+0x30c>)
730: 4798 blx r3
system_gclk_chan_enable(gclk_index);
732: 9802 ldr r0, [sp, #8]
734: 4bab ldr r3, [pc, #684] ; (9e4 <usart_init+0x310>)
736: 4798 blx r3
sercom_set_gclk_generator(config->generator_source, false);
738: 5df0 ldrb r0, [r6, r7]
73a: 2100 movs r1, #0
73c: 4baa ldr r3, [pc, #680] ; (9e8 <usart_init+0x314>)
73e: 4798 blx r3
module->character_size = config->character_size;
740: 7af3 ldrb r3, [r6, #11]
742: 716b strb r3, [r5, #5]
module->receiver_enabled = config->receiver_enable;
744: 2324 movs r3, #36 ; 0x24
746: 5cf3 ldrb r3, [r6, r3]
748: 71ab strb r3, [r5, #6]
module->transmitter_enabled = config->transmitter_enable;
74a: 2325 movs r3, #37 ; 0x25
74c: 5cf3 ldrb r3, [r6, r3]
74e: 71eb strb r3, [r5, #7]
module->lin_slave_enabled = config->lin_slave_enable;
750: 7ef3 ldrb r3, [r6, #27]
752: 722b strb r3, [r5, #8]
module->start_frame_detection_enabled = config->start_frame_detection_enable;
754: 7f33 ldrb r3, [r6, #28]
756: 726b strb r3, [r5, #9]
SercomUsart *const usart_hw = &(module->hw->USART);
758: 682b ldr r3, [r5, #0]
75a: 4698 mov r8, r3
uint32_t sercom_index = _sercom_get_sercom_inst_index(module->hw);
75c: 0018 movs r0, r3
75e: 4b9e ldr r3, [pc, #632] ; (9d8 <usart_init+0x304>)
760: 4798 blx r3
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
762: 3014 adds r0, #20
uint16_t baud = 0;
764: 2200 movs r2, #0
766: 230e movs r3, #14
768: a906 add r1, sp, #24
76a: 468c mov ip, r1
76c: 4463 add r3, ip
76e: 801a strh r2, [r3, #0]
switch (config->sample_rate) {
770: 8a32 ldrh r2, [r6, #16]
772: 9202 str r2, [sp, #8]
774: 2380 movs r3, #128 ; 0x80
776: 01db lsls r3, r3, #7
778: 429a cmp r2, r3
77a: d100 bne.n 77e <usart_init+0xaa>
77c: e09a b.n 8b4 <usart_init+0x1e0>
77e: d90f bls.n 7a0 <usart_init+0xcc>
780: 23c0 movs r3, #192 ; 0xc0
782: 01db lsls r3, r3, #7
784: 9a02 ldr r2, [sp, #8]
786: 429a cmp r2, r3
788: d100 bne.n 78c <usart_init+0xb8>
78a: e08e b.n 8aa <usart_init+0x1d6>
78c: 2380 movs r3, #128 ; 0x80
78e: 021b lsls r3, r3, #8
790: 429a cmp r2, r3
792: d000 beq.n 796 <usart_init+0xc2>
794: e11b b.n 9ce <usart_init+0x2fa>
sample_num = SERCOM_ASYNC_SAMPLE_NUM_3;
796: 2303 movs r3, #3
798: 9306 str r3, [sp, #24]
mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
79a: 2300 movs r3, #0
79c: 9307 str r3, [sp, #28]
79e: e008 b.n 7b2 <usart_init+0xde>
switch (config->sample_rate) {
7a0: 2380 movs r3, #128 ; 0x80
7a2: 019b lsls r3, r3, #6
7a4: 429a cmp r2, r3
7a6: d000 beq.n 7aa <usart_init+0xd6>
7a8: e111 b.n 9ce <usart_init+0x2fa>
sample_num = SERCOM_ASYNC_SAMPLE_NUM_16;
7aa: 2310 movs r3, #16
7ac: 9306 str r3, [sp, #24]
mode = SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL;
7ae: 3b0f subs r3, #15
7b0: 9307 str r3, [sp, #28]
ctrla = (uint32_t)config->data_order |
7b2: 6833 ldr r3, [r6, #0]
7b4: 9305 str r3, [sp, #20]
(uint32_t)config->mux_setting |
7b6: 68f3 ldr r3, [r6, #12]
7b8: 469b mov fp, r3
config->sample_adjustment |
7ba: 6973 ldr r3, [r6, #20]
7bc: 9303 str r3, [sp, #12]
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
7be: 7e33 ldrb r3, [r6, #24]
7c0: 9304 str r3, [sp, #16]
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
7c2: 2326 movs r3, #38 ; 0x26
7c4: 5cf3 ldrb r3, [r6, r3]
7c6: 469a mov sl, r3
transfer_mode = (uint32_t)config->transfer_mode;
7c8: 6873 ldr r3, [r6, #4]
7ca: 4699 mov r9, r3
switch (transfer_mode)
7cc: 2b00 cmp r3, #0
7ce: d100 bne.n 7d2 <usart_init+0xfe>
7d0: e09c b.n 90c <usart_init+0x238>
7d2: 2380 movs r3, #128 ; 0x80
7d4: 055b lsls r3, r3, #21
7d6: 4599 cmp r9, r3
7d8: d100 bne.n 7dc <usart_init+0x108>
7da: e080 b.n 8de <usart_init+0x20a>
if(config->encoding_format_enable) {
7dc: 7e73 ldrb r3, [r6, #25]
7de: 2b00 cmp r3, #0
7e0: d002 beq.n 7e8 <usart_init+0x114>
usart_hw->RXPL.reg = config->receive_pulse_length;
7e2: 7eb3 ldrb r3, [r6, #26]
7e4: 4642 mov r2, r8
7e6: 7393 strb r3, [r2, #14]
usart_hw->BAUD.reg = baud;
7e8: 230e movs r3, #14
7ea: aa06 add r2, sp, #24
7ec: 4694 mov ip, r2
7ee: 4463 add r3, ip
7f0: 881b ldrh r3, [r3, #0]
7f2: 4642 mov r2, r8
7f4: 8193 strh r3, [r2, #12]
ctrla |= transfer_mode;
7f6: 9b05 ldr r3, [sp, #20]
7f8: 465a mov r2, fp
7fa: 4313 orrs r3, r2
7fc: 9a03 ldr r2, [sp, #12]
7fe: 4313 orrs r3, r2
800: 464a mov r2, r9
802: 4313 orrs r3, r2
804: 9f02 ldr r7, [sp, #8]
806: 431f orrs r7, r3
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
808: 9b04 ldr r3, [sp, #16]
80a: 021b lsls r3, r3, #8
ctrla |= transfer_mode;
80c: 431f orrs r7, r3
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
80e: 4653 mov r3, sl
810: 075b lsls r3, r3, #29
ctrla |= transfer_mode;
812: 431f orrs r7, r3
if (config->use_external_clock == false) {
814: 2327 movs r3, #39 ; 0x27
816: 5cf3 ldrb r3, [r6, r3]
818: 2b00 cmp r3, #0
81a: d101 bne.n 820 <usart_init+0x14c>
ctrla |= SERCOM_USART_CTRLA_MODE(0x1);
81c: 3304 adds r3, #4
81e: 431f orrs r7, r3
(config->encoding_format_enable << SERCOM_USART_CTRLB_ENC_Pos) |
820: 7e73 ldrb r3, [r6, #25]
822: 029b lsls r3, r3, #10
(config->start_frame_detection_enable << SERCOM_USART_CTRLB_SFDE_Pos) |
824: 7f32 ldrb r2, [r6, #28]
826: 0252 lsls r2, r2, #9
(config->encoding_format_enable << SERCOM_USART_CTRLB_ENC_Pos) |
828: 4313 orrs r3, r2
(config->collision_detection_enable << SERCOM_USART_CTRLB_COLDEN_Pos) |
82a: 7f72 ldrb r2, [r6, #29]
82c: 0212 lsls r2, r2, #8
(config->start_frame_detection_enable << SERCOM_USART_CTRLB_SFDE_Pos) |
82e: 4313 orrs r3, r2
(config->receiver_enable << SERCOM_USART_CTRLB_RXEN_Pos) |
830: 2224 movs r2, #36 ; 0x24
832: 5cb2 ldrb r2, [r6, r2]
834: 0452 lsls r2, r2, #17
(config->collision_detection_enable << SERCOM_USART_CTRLB_COLDEN_Pos) |
836: 4313 orrs r3, r2
(config->transmitter_enable << SERCOM_USART_CTRLB_TXEN_Pos);
838: 2225 movs r2, #37 ; 0x25
83a: 5cb2 ldrb r2, [r6, r2]
83c: 0412 lsls r2, r2, #16
(config->receiver_enable << SERCOM_USART_CTRLB_RXEN_Pos) |
83e: 4313 orrs r3, r2
ctrlb |= (uint32_t)config->character_size;
840: 7ab1 ldrb r1, [r6, #10]
842: 7af2 ldrb r2, [r6, #11]
844: 4311 orrs r1, r2
846: 4319 orrs r1, r3
if (config->parity != USART_PARITY_NONE) {
848: 8933 ldrh r3, [r6, #8]
84a: 2bff cmp r3, #255 ; 0xff
84c: d100 bne.n 850 <usart_init+0x17c>
84e: e081 b.n 954 <usart_init+0x280>
ctrla |= SERCOM_USART_CTRLA_FORM(1);
850: 2280 movs r2, #128 ; 0x80
852: 0452 lsls r2, r2, #17
854: 4317 orrs r7, r2
ctrlb |= config->parity;
856: 4319 orrs r1, r3
if (config->run_in_standby || system_is_debugger_present()) {
858: 232c movs r3, #44 ; 0x2c
85a: 5cf3 ldrb r3, [r6, r3]
85c: 2b00 cmp r3, #0
85e: d103 bne.n 868 <usart_init+0x194>
* \retval false Debugger is not connected to the system
*
*/
static inline bool system_is_debugger_present(void)
{
return DSU->STATUSB.reg & DSU_STATUSB_DBGPRES;
860: 4b62 ldr r3, [pc, #392] ; (9ec <usart_init+0x318>)
862: 789b ldrb r3, [r3, #2]
864: 079b lsls r3, r3, #30
866: d501 bpl.n 86c <usart_init+0x198>
ctrla |= SERCOM_USART_CTRLA_RUNSTDBY;
868: 2380 movs r3, #128 ; 0x80
86a: 431f orrs r7, r3
{
/* Sanity check arguments */
Assert(module);
Assert(module->hw);
SercomUsart *const usart_hw = &(module->hw->USART);
86c: 682a ldr r2, [r5, #0]
#ifdef FEATURE_USART_SYNC_SCHEME_V2
return (usart_hw->SYNCBUSY.reg);
86e: 69d3 ldr r3, [r2, #28]
const struct usart_module *const module)
{
/* Sanity check */
Assert(module);
while (usart_is_syncing(module)) {
870: 2b00 cmp r3, #0
872: d1fc bne.n 86e <usart_init+0x19a>
usart_hw->CTRLB.reg = ctrlb;
874: 4643 mov r3, r8
876: 6059 str r1, [r3, #4]
SercomUsart *const usart_hw = &(module->hw->USART);
878: 682a ldr r2, [r5, #0]
return (usart_hw->SYNCBUSY.reg);
87a: 69d3 ldr r3, [r2, #28]
while (usart_is_syncing(module)) {
87c: 2b00 cmp r3, #0
87e: d1fc bne.n 87a <usart_init+0x1a6>
usart_hw->CTRLA.reg = ctrla;
880: 4643 mov r3, r8
882: 601f str r7, [r3, #0]
{
/* Sanity check arguments */
Assert(config);
/* Default configuration values */
config->mux_position = SYSTEM_PINMUX_GPIO;
884: ab0e add r3, sp, #56 ; 0x38
886: 2280 movs r2, #128 ; 0x80
888: 701a strb r2, [r3, #0]
config->direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
88a: 2200 movs r2, #0
88c: 705a strb r2, [r3, #1]
config->input_pull = SYSTEM_PINMUX_PIN_PULL_UP;
config->powersave = false;
88e: 70da strb r2, [r3, #3]
pin_conf.input_pull = SYSTEM_PINMUX_PIN_PULL_NONE;
890: 709a strb r2, [r3, #2]
uint32_t pad_pinmuxes[] = {
892: 6b33 ldr r3, [r6, #48] ; 0x30
894: 930a str r3, [sp, #40] ; 0x28
896: 6b73 ldr r3, [r6, #52] ; 0x34
898: 930b str r3, [sp, #44] ; 0x2c
89a: 6bb3 ldr r3, [r6, #56] ; 0x38
89c: 930c str r3, [sp, #48] ; 0x30
89e: 6bf3 ldr r3, [r6, #60] ; 0x3c
8a0: 9302 str r3, [sp, #8]
8a2: 930d str r3, [sp, #52] ; 0x34
8a4: 2700 movs r7, #0
uint32_t current_pinmux = pad_pinmuxes[pad];
8a6: ae0a add r6, sp, #40 ; 0x28
8a8: e063 b.n 972 <usart_init+0x29e>
sample_num = SERCOM_ASYNC_SAMPLE_NUM_8;
8aa: 2308 movs r3, #8
8ac: 9306 str r3, [sp, #24]
mode = SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL;
8ae: 3b07 subs r3, #7
8b0: 9307 str r3, [sp, #28]
8b2: e77e b.n 7b2 <usart_init+0xde>
ctrla = (uint32_t)config->data_order |
8b4: 6833 ldr r3, [r6, #0]
8b6: 9305 str r3, [sp, #20]
(uint32_t)config->mux_setting |
8b8: 68f3 ldr r3, [r6, #12]
8ba: 469b mov fp, r3
config->sample_adjustment |
8bc: 6973 ldr r3, [r6, #20]
8be: 9303 str r3, [sp, #12]
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
8c0: 7e33 ldrb r3, [r6, #24]
8c2: 9304 str r3, [sp, #16]
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
8c4: 2326 movs r3, #38 ; 0x26
8c6: 5cf3 ldrb r3, [r6, r3]
8c8: 469a mov sl, r3
transfer_mode = (uint32_t)config->transfer_mode;
8ca: 6873 ldr r3, [r6, #4]
8cc: 4699 mov r9, r3
switch (transfer_mode)
8ce: 2b00 cmp r3, #0
8d0: d018 beq.n 904 <usart_init+0x230>
8d2: 2380 movs r3, #128 ; 0x80
8d4: 055b lsls r3, r3, #21
8d6: 4599 cmp r9, r3
8d8: d001 beq.n 8de <usart_init+0x20a>
enum status_code status_code = STATUS_OK;
8da: 2000 movs r0, #0
8dc: e025 b.n 92a <usart_init+0x256>
if (!config->use_external_clock) {
8de: 2327 movs r3, #39 ; 0x27
8e0: 5cf3 ldrb r3, [r6, r3]
8e2: 2b00 cmp r3, #0
8e4: d000 beq.n 8e8 <usart_init+0x214>
8e6: e779 b.n 7dc <usart_init+0x108>
status_code = _sercom_get_sync_baud_val(config->baudrate,
8e8: 6a33 ldr r3, [r6, #32]
8ea: 001f movs r7, r3
8ec: b2c0 uxtb r0, r0
8ee: 4b40 ldr r3, [pc, #256] ; (9f0 <usart_init+0x31c>)
8f0: 4798 blx r3
8f2: 0001 movs r1, r0
8f4: 220e movs r2, #14
8f6: ab06 add r3, sp, #24
8f8: 469c mov ip, r3
8fa: 4462 add r2, ip
8fc: 0038 movs r0, r7
8fe: 4b3d ldr r3, [pc, #244] ; (9f4 <usart_init+0x320>)
900: 4798 blx r3
902: e012 b.n 92a <usart_init+0x256>
sample_num = SERCOM_ASYNC_SAMPLE_NUM_8;
904: 2308 movs r3, #8
906: 9306 str r3, [sp, #24]
mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
908: 2300 movs r3, #0
90a: 9307 str r3, [sp, #28]
if (config->use_external_clock) {
90c: 2327 movs r3, #39 ; 0x27
90e: 5cf3 ldrb r3, [r6, r3]
910: 2b00 cmp r3, #0
912: d00e beq.n 932 <usart_init+0x25e>
status_code =
914: 9b06 ldr r3, [sp, #24]
916: 9300 str r3, [sp, #0]
918: 9b07 ldr r3, [sp, #28]
91a: 220e movs r2, #14
91c: a906 add r1, sp, #24
91e: 468c mov ip, r1
920: 4462 add r2, ip
922: 6ab1 ldr r1, [r6, #40] ; 0x28
924: 6a30 ldr r0, [r6, #32]
926: 4f34 ldr r7, [pc, #208] ; (9f8 <usart_init+0x324>)
928: 47b8 blx r7
if (status_code != STATUS_OK) {
92a: 2800 cmp r0, #0
92c: d000 beq.n 930 <usart_init+0x25c>
92e: e6e4 b.n 6fa <usart_init+0x26>
930: e754 b.n 7dc <usart_init+0x108>
_sercom_get_async_baud_val(config->baudrate,
932: 6a33 ldr r3, [r6, #32]
934: 001f movs r7, r3
936: b2c0 uxtb r0, r0
938: 4b2d ldr r3, [pc, #180] ; (9f0 <usart_init+0x31c>)
93a: 4798 blx r3
93c: 0001 movs r1, r0
status_code =
93e: 9b06 ldr r3, [sp, #24]
940: 9300 str r3, [sp, #0]
942: 9b07 ldr r3, [sp, #28]
944: 220e movs r2, #14
946: a806 add r0, sp, #24
948: 4684 mov ip, r0
94a: 4462 add r2, ip
94c: 0038 movs r0, r7
94e: 4f2a ldr r7, [pc, #168] ; (9f8 <usart_init+0x324>)
950: 47b8 blx r7
952: e7ea b.n 92a <usart_init+0x256>
if(config->lin_slave_enable) {
954: 7ef3 ldrb r3, [r6, #27]
956: 2b00 cmp r3, #0
958: d100 bne.n 95c <usart_init+0x288>
95a: e77d b.n 858 <usart_init+0x184>
ctrla |= SERCOM_USART_CTRLA_FORM(0x4);
95c: 2380 movs r3, #128 ; 0x80
95e: 04db lsls r3, r3, #19
960: 431f orrs r7, r3
962: e779 b.n 858 <usart_init+0x184>
current_pinmux = _sercom_get_default_pad(hw, pad);
964: 0020 movs r0, r4
966: 4b25 ldr r3, [pc, #148] ; (9fc <usart_init+0x328>)
968: 4798 blx r3
96a: e007 b.n 97c <usart_init+0x2a8>
96c: 3701 adds r7, #1
for (uint8_t pad = 0; pad < 4; pad++) {
96e: 2f04 cmp r7, #4
970: d00d beq.n 98e <usart_init+0x2ba>
972: b2f9 uxtb r1, r7
uint32_t current_pinmux = pad_pinmuxes[pad];
974: 00bb lsls r3, r7, #2
976: 5998 ldr r0, [r3, r6]
if (current_pinmux == PINMUX_DEFAULT) {
978: 2800 cmp r0, #0
97a: d0f3 beq.n 964 <usart_init+0x290>
if (current_pinmux != PINMUX_UNUSED) {
97c: 1c43 adds r3, r0, #1
97e: d0f5 beq.n 96c <usart_init+0x298>
pin_conf.mux_position = current_pinmux & 0xFFFF;
980: a90e add r1, sp, #56 ; 0x38
982: 7008 strb r0, [r1, #0]
system_pinmux_pin_set_config(current_pinmux >> 16, &pin_conf);
984: 0c00 lsrs r0, r0, #16
986: b2c0 uxtb r0, r0
988: 4b1d ldr r3, [pc, #116] ; (a00 <usart_init+0x32c>)
98a: 4798 blx r3
98c: e7ee b.n 96c <usart_init+0x298>
module->callback[i] = NULL;
98e: 2300 movs r3, #0
990: 60eb str r3, [r5, #12]
992: 612b str r3, [r5, #16]
994: 616b str r3, [r5, #20]
996: 61ab str r3, [r5, #24]
998: 61eb str r3, [r5, #28]
99a: 622b str r3, [r5, #32]
module->tx_buffer_ptr = NULL;
99c: 62ab str r3, [r5, #40] ; 0x28
module->rx_buffer_ptr = NULL;
99e: 626b str r3, [r5, #36] ; 0x24
module->remaining_tx_buffer_length = 0x0000;
9a0: 2200 movs r2, #0
9a2: 85eb strh r3, [r5, #46] ; 0x2e
module->remaining_rx_buffer_length = 0x0000;
9a4: 85ab strh r3, [r5, #44] ; 0x2c
module->callback_reg_mask = 0x00;
9a6: 3330 adds r3, #48 ; 0x30
9a8: 54ea strb r2, [r5, r3]
module->callback_enable_mask = 0x00;
9aa: 3301 adds r3, #1
9ac: 54ea strb r2, [r5, r3]
module->rx_status = STATUS_OK;
9ae: 3301 adds r3, #1
9b0: 54ea strb r2, [r5, r3]
module->tx_status = STATUS_OK;
9b2: 3301 adds r3, #1
9b4: 54ea strb r2, [r5, r3]
uint8_t instance_index = _sercom_get_sercom_inst_index(module->hw);
9b6: 6828 ldr r0, [r5, #0]
9b8: 4b07 ldr r3, [pc, #28] ; (9d8 <usart_init+0x304>)
9ba: 4798 blx r3
9bc: 0004 movs r4, r0
_sercom_set_handler(instance_index, _usart_interrupt_handler);
9be: 4911 ldr r1, [pc, #68] ; (a04 <usart_init+0x330>)
9c0: 4b11 ldr r3, [pc, #68] ; (a08 <usart_init+0x334>)
9c2: 4798 blx r3
_sercom_instances[instance_index] = module;
9c4: 00a4 lsls r4, r4, #2
9c6: 4b11 ldr r3, [pc, #68] ; (a0c <usart_init+0x338>)
9c8: 50e5 str r5, [r4, r3]
return status_code;
9ca: 2000 movs r0, #0
9cc: e695 b.n 6fa <usart_init+0x26>
enum sercom_asynchronous_sample_num sample_num = SERCOM_ASYNC_SAMPLE_NUM_16;
9ce: 2310 movs r3, #16
9d0: 9306 str r3, [sp, #24]
enum sercom_asynchronous_operation_mode mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
9d2: 2300 movs r3, #0
9d4: 9307 str r3, [sp, #28]
9d6: e6ec b.n 7b2 <usart_init+0xde>
9d8: 0000069d .word 0x0000069d
9dc: 40000400 .word 0x40000400
9e0: 00001515 .word 0x00001515
9e4: 00001489 .word 0x00001489
9e8: 000004d9 .word 0x000004d9
9ec: 41002000 .word 0x41002000
9f0: 00001531 .word 0x00001531
9f4: 0000041b .word 0x0000041b
9f8: 00000445 .word 0x00000445
9fc: 00000525 .word 0x00000525
a00: 0000160d .word 0x0000160d
a04: 00000b6d .word 0x00000b6d
a08: 00000d05 .word 0x00000d05
a0c: 20004cf0 .word 0x20004cf0
00000a10 <usart_write_wait>:
/* Get a pointer to the hardware module instance */
SercomUsart *const usart_hw = &(module->hw->USART);
/* Check that the transmitter is enabled */
if (!(module->transmitter_enabled)) {
a10: 79c2 ldrb r2, [r0, #7]
return STATUS_ERR_DENIED;
a12: 231c movs r3, #28
if (!(module->transmitter_enabled)) {
a14: 2a00 cmp r2, #0
a16: d101 bne.n a1c <usart_write_wait+0xc>
while (!(usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC)) {
/* Wait until data is sent */
}
return STATUS_OK;
}
a18: 0018 movs r0, r3
a1a: 4770 bx lr
if (module->remaining_tx_buffer_length > 0) {
a1c: 8dc2 ldrh r2, [r0, #46] ; 0x2e
a1e: b292 uxth r2, r2
return STATUS_BUSY;
a20: 3b17 subs r3, #23
if (module->remaining_tx_buffer_length > 0) {
a22: 2a00 cmp r2, #0
a24: d1f8 bne.n a18 <usart_write_wait+0x8>
SercomUsart *const usart_hw = &(module->hw->USART);
a26: 6802 ldr r2, [r0, #0]
usart_hw->DATA.reg = tx_data;
a28: 8511 strh r1, [r2, #40] ; 0x28
while (!(usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC)) {
a2a: 2102 movs r1, #2
a2c: 7e13 ldrb r3, [r2, #24]
a2e: 420b tst r3, r1
a30: d0fc beq.n a2c <usart_write_wait+0x1c>
return STATUS_OK;
a32: 2300 movs r3, #0
a34: e7f0 b.n a18 <usart_write_wait+0x8>
...
00000a38 <usart_write_buffer_wait>:
*/
enum status_code usart_write_buffer_wait(
struct usart_module *const module,
const uint8_t *tx_data,
uint16_t length)
{
a38: b5f0 push {r4, r5, r6, r7, lr}
a3a: 46ce mov lr, r9
a3c: 4647 mov r7, r8
a3e: b580 push {r7, lr}
a40: b083 sub sp, #12
a42: 0005 movs r5, r0
a44: 9101 str r1, [sp, #4]
Assert(module);
Assert(module->hw);
/* Check if the buffer length is valid */
if (length == 0) {
return STATUS_ERR_INVALID_ARG;
a46: 2017 movs r0, #23
if (length == 0) {
a48: 2a00 cmp r2, #0
a4a: d104 bne.n a56 <usart_write_buffer_wait+0x1e>
return STATUS_ERR_TIMEOUT;
}
}
return STATUS_OK;
}
a4c: b003 add sp, #12
a4e: bc0c pop {r2, r3}
a50: 4690 mov r8, r2
a52: 4699 mov r9, r3
a54: bdf0 pop {r4, r5, r6, r7, pc}
if (!(module->transmitter_enabled)) {
a56: 79eb ldrb r3, [r5, #7]
return STATUS_ERR_DENIED;
a58: 3005 adds r0, #5
if (!(module->transmitter_enabled)) {
a5a: 2b00 cmp r3, #0
a5c: d0f6 beq.n a4c <usart_write_buffer_wait+0x14>
SercomUsart *const usart_hw = &(module->hw->USART);
a5e: 682c ldr r4, [r5, #0]
while (length--) {
a60: 3a01 subs r2, #1
a62: b293 uxth r3, r2
a64: 4699 mov r9, r3
a66: 2600 movs r6, #0
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) {
a68: 2701 movs r7, #1
while (length--) {
a6a: 4b20 ldr r3, [pc, #128] ; (aec <usart_write_buffer_wait+0xb4>)
a6c: 4698 mov r8, r3
a6e: e011 b.n a94 <usart_write_buffer_wait+0x5c>
uint16_t data_to_send = tx_data[tx_pos++];
a70: 1c73 adds r3, r6, #1
a72: b29b uxth r3, r3
a74: 9a01 ldr r2, [sp, #4]
a76: 5d91 ldrb r1, [r2, r6]
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
a78: 796a ldrb r2, [r5, #5]
a7a: 2a01 cmp r2, #1
a7c: d017 beq.n aae <usart_write_buffer_wait+0x76>
uint16_t data_to_send = tx_data[tx_pos++];
a7e: b289 uxth r1, r1
a80: 001e movs r6, r3
usart_write_wait(module, data_to_send);
a82: 0028 movs r0, r5
a84: 4b1a ldr r3, [pc, #104] ; (af0 <usart_write_buffer_wait+0xb8>)
a86: 4798 blx r3
while (length--) {
a88: 464b mov r3, r9
a8a: 3b01 subs r3, #1
a8c: b29b uxth r3, r3
a8e: 4699 mov r9, r3
a90: 4543 cmp r3, r8
a92: d013 beq.n abc <usart_write_buffer_wait+0x84>
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) {
a94: 7e23 ldrb r3, [r4, #24]
a96: 423b tst r3, r7
a98: d1ea bne.n a70 <usart_write_buffer_wait+0x38>
a9a: 4b14 ldr r3, [pc, #80] ; (aec <usart_write_buffer_wait+0xb4>)
a9c: 7e22 ldrb r2, [r4, #24]
a9e: 423a tst r2, r7
aa0: d1e6 bne.n a70 <usart_write_buffer_wait+0x38>
} else if (i == USART_TIMEOUT) {
aa2: 2b01 cmp r3, #1
aa4: d019 beq.n ada <usart_write_buffer_wait+0xa2>
aa6: 3b01 subs r3, #1
for (uint32_t i = 0; i <= USART_TIMEOUT; i++) {
aa8: 2b00 cmp r3, #0
aaa: d1f7 bne.n a9c <usart_write_buffer_wait+0x64>
aac: e7e0 b.n a70 <usart_write_buffer_wait+0x38>
data_to_send |= (tx_data[tx_pos++] << 8);
aae: 3602 adds r6, #2
ab0: b2b6 uxth r6, r6
ab2: 9a01 ldr r2, [sp, #4]
ab4: 5cd3 ldrb r3, [r2, r3]
ab6: 021b lsls r3, r3, #8
ab8: 4319 orrs r1, r3
aba: e7e2 b.n a82 <usart_write_buffer_wait+0x4a>
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC) {
abc: 7e23 ldrb r3, [r4, #24]
abe: 079b lsls r3, r3, #30
ac0: d40d bmi.n ade <usart_write_buffer_wait+0xa6>
ac2: 4b0a ldr r3, [pc, #40] ; (aec <usart_write_buffer_wait+0xb4>)
ac4: 2102 movs r1, #2
ac6: 7e22 ldrb r2, [r4, #24]
ac8: 420a tst r2, r1
aca: d10a bne.n ae2 <usart_write_buffer_wait+0xaa>
} else if (i == USART_TIMEOUT) {
acc: 2b01 cmp r3, #1
ace: d00a beq.n ae6 <usart_write_buffer_wait+0xae>
ad0: 3b01 subs r3, #1
for (uint32_t i = 0; i <= USART_TIMEOUT; i++) {
ad2: 2b00 cmp r3, #0
ad4: d1f7 bne.n ac6 <usart_write_buffer_wait+0x8e>
return STATUS_OK;
ad6: 2000 movs r0, #0
ad8: e7b8 b.n a4c <usart_write_buffer_wait+0x14>
return STATUS_ERR_TIMEOUT;
ada: 2012 movs r0, #18
adc: e7b6 b.n a4c <usart_write_buffer_wait+0x14>
return STATUS_OK;
ade: 2000 movs r0, #0
ae0: e7b4 b.n a4c <usart_write_buffer_wait+0x14>
ae2: 2000 movs r0, #0
ae4: e7b2 b.n a4c <usart_write_buffer_wait+0x14>
return STATUS_ERR_TIMEOUT;
ae6: 2012 movs r0, #18
ae8: e7b0 b.n a4c <usart_write_buffer_wait+0x14>
aea: 46c0 nop ; (mov r8, r8)
aec: 0000ffff .word 0x0000ffff
af0: 00000a11 .word 0x00000a11
00000af4 <_usart_read_buffer>:
*/
enum status_code _usart_read_buffer(
struct usart_module *const module,
uint8_t *rx_data,
uint16_t length)
{
af4: b5f8 push {r3, r4, r5, r6, r7, lr}
af6: 0004 movs r4, r0
af8: 000d movs r5, r1
afa: 0016 movs r6, r2
Assert(module);
Assert(module->hw);
Assert(rx_data);
/* Get a pointer to the hardware module instance */
SercomUsart *const usart_hw = &(module->hw->USART);
afc: 6807 ldr r7, [r0, #0]
cpu_irq_enter_critical();
afe: 4b0f ldr r3, [pc, #60] ; (b3c <_usart_read_buffer+0x48>)
b00: 4798 blx r3
system_interrupt_enter_critical_section();
/* Check if the USART receiver is busy */
if (module->remaining_rx_buffer_length > 0) {
b02: 8da3 ldrh r3, [r4, #44] ; 0x2c
b04: b29b uxth r3, r3
b06: 2b00 cmp r3, #0
b08: d003 beq.n b12 <_usart_read_buffer+0x1e>
cpu_irq_leave_critical();
b0a: 4b0d ldr r3, [pc, #52] ; (b40 <_usart_read_buffer+0x4c>)
b0c: 4798 blx r3
system_interrupt_leave_critical_section();
return STATUS_BUSY;
b0e: 2005 movs r0, #5
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXS;
}
#endif
return STATUS_OK;
}
b10: bdf8 pop {r3, r4, r5, r6, r7, pc}
module->remaining_rx_buffer_length = length;
b12: 85a6 strh r6, [r4, #44] ; 0x2c
b14: 4b0a ldr r3, [pc, #40] ; (b40 <_usart_read_buffer+0x4c>)
b16: 4798 blx r3
module->rx_buffer_ptr = rx_data;
b18: 6265 str r5, [r4, #36] ; 0x24
module->rx_status = STATUS_BUSY;
b1a: 2205 movs r2, #5
b1c: 2332 movs r3, #50 ; 0x32
b1e: 54e2 strb r2, [r4, r3]
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXC;
b20: 3b2e subs r3, #46 ; 0x2e
b22: 75bb strb r3, [r7, #22]
if(module->lin_slave_enabled) {
b24: 7a23 ldrb r3, [r4, #8]
b26: 2b00 cmp r3, #0
b28: d001 beq.n b2e <_usart_read_buffer+0x3a>
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXBRK;
b2a: 2320 movs r3, #32
b2c: 75bb strb r3, [r7, #22]
if(module->start_frame_detection_enabled) {
b2e: 7a63 ldrb r3, [r4, #9]
return STATUS_OK;
b30: 2000 movs r0, #0
if(module->start_frame_detection_enabled) {
b32: 2b00 cmp r3, #0
b34: d0ec beq.n b10 <_usart_read_buffer+0x1c>
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXS;
b36: 2308 movs r3, #8
b38: 75bb strb r3, [r7, #22]
b3a: e7e9 b.n b10 <_usart_read_buffer+0x1c>
b3c: 00000dd1 .word 0x00000dd1
b40: 00000e11 .word 0x00000e11
00000b44 <usart_register_callback>:
/* Sanity check arguments */
Assert(module);
Assert(callback_func);
/* Register callback function */
module->callback[callback_type] = callback_func;
b44: 1c93 adds r3, r2, #2
b46: 009b lsls r3, r3, #2
b48: 18c3 adds r3, r0, r3
b4a: 6059 str r1, [r3, #4]
/* Set the bit corresponding to the callback_type */
module->callback_reg_mask |= (1 << callback_type);
b4c: 2130 movs r1, #48 ; 0x30
b4e: 2301 movs r3, #1
b50: 4093 lsls r3, r2
b52: 001a movs r2, r3
b54: 5c43 ldrb r3, [r0, r1]
b56: 4313 orrs r3, r2
b58: 5443 strb r3, [r0, r1]
}
b5a: 4770 bx lr
00000b5c <usart_read_job>:
* \retval STATUS_BUSY If operation was not completed
*/
enum status_code usart_read_job(
struct usart_module *const module,
uint16_t *const rx_data)
{
b5c: b510 push {r4, lr}
/* Sanity check arguments */
Assert(module);
Assert(rx_data);
/* Call internal read buffer function with length 1 */
return _usart_read_buffer(module, (uint8_t *)rx_data, 1);
b5e: 2201 movs r2, #1
b60: 4b01 ldr r3, [pc, #4] ; (b68 <usart_read_job+0xc>)
b62: 4798 blx r3
}
b64: bd10 pop {r4, pc}
b66: 46c0 nop ; (mov r8, r8)
b68: 00000af5 .word 0x00000af5
00000b6c <_usart_interrupt_handler>:
* \param[in] instance ID of the SERCOM instance calling the interrupt
* handler.
*/
void _usart_interrupt_handler(
uint8_t instance)
{
b6c: b5f8 push {r3, r4, r5, r6, r7, lr}
uint16_t callback_status;
uint8_t error_code;
/* Get device instance from the look-up table */
struct usart_module *module
b6e: 0080 lsls r0, r0, #2
b70: 4b62 ldr r3, [pc, #392] ; (cfc <_usart_interrupt_handler+0x190>)
b72: 58c5 ldr r5, [r0, r3]
= (struct usart_module *)_sercom_instances[instance];
/* Pointer to the hardware module instance */
SercomUsart *const usart_hw
= &(module->hw->USART);
b74: 682c ldr r4, [r5, #0]
return (usart_hw->SYNCBUSY.reg);
b76: 69e3 ldr r3, [r4, #28]
while (usart_is_syncing(module)) {
b78: 2b00 cmp r3, #0
b7a: d1fc bne.n b76 <_usart_interrupt_handler+0xa>
/* Wait for the synchronization to complete */
_usart_wait_for_sync(module);
/* Read and mask interrupt flag register */
interrupt_status = usart_hw->INTFLAG.reg;
b7c: 7e23 ldrb r3, [r4, #24]
interrupt_status &= usart_hw->INTENSET.reg;
b7e: 7da6 ldrb r6, [r4, #22]
b80: 401e ands r6, r3
callback_status = module->callback_reg_mask &
b82: 2330 movs r3, #48 ; 0x30
b84: 5ceb ldrb r3, [r5, r3]
b86: 2231 movs r2, #49 ; 0x31
b88: 5caf ldrb r7, [r5, r2]
b8a: 401f ands r7, r3
module->callback_enable_mask;
/* Check if a DATA READY interrupt has occurred,
* and if there is more to transfer */
if (interrupt_status & SERCOM_USART_INTFLAG_DRE) {
b8c: 07f3 lsls r3, r6, #31
b8e: d522 bpl.n bd6 <_usart_interrupt_handler+0x6a>
if (module->remaining_tx_buffer_length) {
b90: 8deb ldrh r3, [r5, #46] ; 0x2e
b92: b29b uxth r3, r3
b94: 2b00 cmp r3, #0
b96: d01c beq.n bd2 <_usart_interrupt_handler+0x66>
/* Write value will be at least 8-bits long */
uint16_t data_to_send = *(module->tx_buffer_ptr);
b98: 6aaa ldr r2, [r5, #40] ; 0x28
b9a: 7813 ldrb r3, [r2, #0]
b9c: b2db uxtb r3, r3
/* Increment 8-bit pointer */
(module->tx_buffer_ptr)++;
b9e: 1c51 adds r1, r2, #1
ba0: 62a9 str r1, [r5, #40] ; 0x28
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
ba2: 7969 ldrb r1, [r5, #5]
ba4: 2901 cmp r1, #1
ba6: d00e beq.n bc6 <_usart_interrupt_handler+0x5a>
uint16_t data_to_send = *(module->tx_buffer_ptr);
ba8: b29b uxth r3, r3
data_to_send |= (*(module->tx_buffer_ptr) << 8);
/* Increment 8-bit pointer */
(module->tx_buffer_ptr)++;
}
/* Write the data to send */
usart_hw->DATA.reg = (data_to_send & SERCOM_USART_DATA_MASK);
baa: 05db lsls r3, r3, #23
bac: 0ddb lsrs r3, r3, #23
bae: 8523 strh r3, [r4, #40] ; 0x28
if (--(module->remaining_tx_buffer_length) == 0) {
bb0: 8deb ldrh r3, [r5, #46] ; 0x2e
bb2: 3b01 subs r3, #1
bb4: b29b uxth r3, r3
bb6: 85eb strh r3, [r5, #46] ; 0x2e
bb8: 2b00 cmp r3, #0
bba: d10c bne.n bd6 <_usart_interrupt_handler+0x6a>
/* Disable the Data Register Empty Interrupt */
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_DRE;
bbc: 3301 adds r3, #1
bbe: 7523 strb r3, [r4, #20]
/* Enable Transmission Complete interrupt */
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_TXC;
bc0: 3301 adds r3, #1
bc2: 75a3 strb r3, [r4, #22]
bc4: e007 b.n bd6 <_usart_interrupt_handler+0x6a>
data_to_send |= (*(module->tx_buffer_ptr) << 8);
bc6: 7851 ldrb r1, [r2, #1]
bc8: 0209 lsls r1, r1, #8
bca: 430b orrs r3, r1
(module->tx_buffer_ptr)++;
bcc: 3202 adds r2, #2
bce: 62aa str r2, [r5, #40] ; 0x28
bd0: e7eb b.n baa <_usart_interrupt_handler+0x3e>
}
} else {
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_DRE;
bd2: 2301 movs r3, #1
bd4: 7523 strb r3, [r4, #20]
}
}
/* Check if the Transmission Complete interrupt has occurred and
* that the transmit buffer is empty */
if (interrupt_status & SERCOM_USART_INTFLAG_TXC) {
bd6: 07b3 lsls r3, r6, #30
bd8: d506 bpl.n be8 <_usart_interrupt_handler+0x7c>
/* Disable TX Complete Interrupt, and set STATUS_OK */
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_TXC;
bda: 2302 movs r3, #2
bdc: 7523 strb r3, [r4, #20]
module->tx_status = STATUS_OK;
bde: 2200 movs r2, #0
be0: 3331 adds r3, #49 ; 0x31
be2: 54ea strb r2, [r5, r3]
/* Run callback if registered and enabled */
if (callback_status & (1 << USART_CALLBACK_BUFFER_TRANSMITTED)) {
be4: 07fb lsls r3, r7, #31
be6: d41a bmi.n c1e <_usart_interrupt_handler+0xb2>
}
}
/* Check if the Receive Complete interrupt has occurred, and that
* there's more data to receive */
if (interrupt_status & SERCOM_USART_INTFLAG_RXC) {
be8: 0773 lsls r3, r6, #29
bea: d565 bpl.n cb8 <_usart_interrupt_handler+0x14c>
if (module->remaining_rx_buffer_length) {
bec: 8dab ldrh r3, [r5, #44] ; 0x2c
bee: b29b uxth r3, r3
bf0: 2b00 cmp r3, #0
bf2: d05f beq.n cb4 <_usart_interrupt_handler+0x148>
/* Read out the status code and mask away all but the 4 LSBs*/
error_code = (uint8_t)(usart_hw->STATUS.reg & SERCOM_USART_STATUS_MASK);
bf4: 8b63 ldrh r3, [r4, #26]
bf6: b2db uxtb r3, r3
#if !SAMD20
/* CTS status should not be considered as an error */
if(error_code & SERCOM_USART_STATUS_CTS) {
bf8: 071a lsls r2, r3, #28
bfa: d414 bmi.n c26 <_usart_interrupt_handler+0xba>
error_code = (uint8_t)(usart_hw->STATUS.reg & SERCOM_USART_STATUS_MASK);
bfc: 223f movs r2, #63 ; 0x3f
bfe: 4013 ands r3, r2
if(error_code & SERCOM_USART_STATUS_TXE) {
error_code &= ~SERCOM_USART_STATUS_TXE;
}
#endif
/* Check if an error has occurred during the receiving */
if (error_code) {
c00: 2b00 cmp r3, #0
c02: d034 beq.n c6e <_usart_interrupt_handler+0x102>
/* Check which error occurred */
if (error_code & SERCOM_USART_STATUS_FERR) {
c04: 079a lsls r2, r3, #30
c06: d511 bpl.n c2c <_usart_interrupt_handler+0xc0>
/* Store the error code and clear flag by writing 1 to it */
module->rx_status = STATUS_ERR_BAD_FORMAT;
c08: 221a movs r2, #26
c0a: 2332 movs r3, #50 ; 0x32
c0c: 54ea strb r2, [r5, r3]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_FERR;
c0e: 3b30 subs r3, #48 ; 0x30
c10: 8363 strh r3, [r4, #26]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_COLL;
}
#endif
/* Run callback if registered and enabled */
if (callback_status
c12: 077b lsls r3, r7, #29
c14: d550 bpl.n cb8 <_usart_interrupt_handler+0x14c>
& (1 << USART_CALLBACK_ERROR)) {
(*(module->callback[USART_CALLBACK_ERROR]))(module);
c16: 0028 movs r0, r5
c18: 696b ldr r3, [r5, #20]
c1a: 4798 blx r3
c1c: e04c b.n cb8 <_usart_interrupt_handler+0x14c>
(*(module->callback[USART_CALLBACK_BUFFER_TRANSMITTED]))(module);
c1e: 0028 movs r0, r5
c20: 68eb ldr r3, [r5, #12]
c22: 4798 blx r3
c24: e7e0 b.n be8 <_usart_interrupt_handler+0x7c>
error_code &= ~SERCOM_USART_STATUS_CTS;
c26: 2237 movs r2, #55 ; 0x37
c28: 4013 ands r3, r2
c2a: e7e9 b.n c00 <_usart_interrupt_handler+0x94>
} else if (error_code & SERCOM_USART_STATUS_BUFOVF) {
c2c: 075a lsls r2, r3, #29
c2e: d505 bpl.n c3c <_usart_interrupt_handler+0xd0>
module->rx_status = STATUS_ERR_OVERFLOW;
c30: 221e movs r2, #30
c32: 2332 movs r3, #50 ; 0x32
c34: 54ea strb r2, [r5, r3]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_BUFOVF;
c36: 3b2e subs r3, #46 ; 0x2e
c38: 8363 strh r3, [r4, #26]
c3a: e7ea b.n c12 <_usart_interrupt_handler+0xa6>
} else if (error_code & SERCOM_USART_STATUS_PERR) {
c3c: 07da lsls r2, r3, #31
c3e: d505 bpl.n c4c <_usart_interrupt_handler+0xe0>
module->rx_status = STATUS_ERR_BAD_DATA;
c40: 2213 movs r2, #19
c42: 2332 movs r3, #50 ; 0x32
c44: 54ea strb r2, [r5, r3]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_PERR;
c46: 3b31 subs r3, #49 ; 0x31
c48: 8363 strh r3, [r4, #26]
c4a: e7e2 b.n c12 <_usart_interrupt_handler+0xa6>
else if (error_code & SERCOM_USART_STATUS_ISF) {
c4c: 06da lsls r2, r3, #27
c4e: d505 bpl.n c5c <_usart_interrupt_handler+0xf0>
module->rx_status = STATUS_ERR_PROTOCOL;
c50: 2242 movs r2, #66 ; 0x42
c52: 2332 movs r3, #50 ; 0x32
c54: 54ea strb r2, [r5, r3]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_ISF;
c56: 3b22 subs r3, #34 ; 0x22
c58: 8363 strh r3, [r4, #26]
c5a: e7da b.n c12 <_usart_interrupt_handler+0xa6>
else if (error_code & SERCOM_USART_STATUS_COLL) {
c5c: 2220 movs r2, #32
c5e: 421a tst r2, r3
c60: d0d7 beq.n c12 <_usart_interrupt_handler+0xa6>
module->rx_status = STATUS_ERR_PACKET_COLLISION;
c62: 3221 adds r2, #33 ; 0x21
c64: 2332 movs r3, #50 ; 0x32
c66: 54ea strb r2, [r5, r3]
usart_hw->STATUS.reg = SERCOM_USART_STATUS_COLL;
c68: 3b12 subs r3, #18
c6a: 8363 strh r3, [r4, #26]
c6c: e7d1 b.n c12 <_usart_interrupt_handler+0xa6>
} else {
/* Read current packet from DATA register,
* increment buffer pointer and decrement buffer length */
uint16_t received_data = (usart_hw->DATA.reg & SERCOM_USART_DATA_MASK);
c6e: 8d23 ldrh r3, [r4, #40] ; 0x28
c70: 05db lsls r3, r3, #23
c72: 0ddb lsrs r3, r3, #23
/* Read value will be at least 8-bits long */
*(module->rx_buffer_ptr) = received_data;
c74: b2da uxtb r2, r3
c76: 6a69 ldr r1, [r5, #36] ; 0x24
c78: 700a strb r2, [r1, #0]
/* Increment 8-bit pointer */
module->rx_buffer_ptr += 1;
c7a: 6a6a ldr r2, [r5, #36] ; 0x24
c7c: 1c51 adds r1, r2, #1
c7e: 6269 str r1, [r5, #36] ; 0x24
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
c80: 7969 ldrb r1, [r5, #5]
c82: 2901 cmp r1, #1
c84: d010 beq.n ca8 <_usart_interrupt_handler+0x13c>
/* Increment 8-bit pointer */
module->rx_buffer_ptr += 1;
}
/* Check if the last character have been received */
if(--(module->remaining_rx_buffer_length) == 0) {
c86: 8dab ldrh r3, [r5, #44] ; 0x2c
c88: 3b01 subs r3, #1
c8a: b29b uxth r3, r3
c8c: 85ab strh r3, [r5, #44] ; 0x2c
c8e: 2b00 cmp r3, #0
c90: d112 bne.n cb8 <_usart_interrupt_handler+0x14c>
/* Disable RX Complete Interrupt,
* and set STATUS_OK */
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_RXC;
c92: 3304 adds r3, #4
c94: 7523 strb r3, [r4, #20]
module->rx_status = STATUS_OK;
c96: 2200 movs r2, #0
c98: 332e adds r3, #46 ; 0x2e
c9a: 54ea strb r2, [r5, r3]
/* Run callback if registered and enabled */
if (callback_status
c9c: 07bb lsls r3, r7, #30
c9e: d50b bpl.n cb8 <_usart_interrupt_handler+0x14c>
& (1 << USART_CALLBACK_BUFFER_RECEIVED)) {
(*(module->callback[USART_CALLBACK_BUFFER_RECEIVED]))(module);
ca0: 0028 movs r0, r5
ca2: 692b ldr r3, [r5, #16]
ca4: 4798 blx r3
ca6: e007 b.n cb8 <_usart_interrupt_handler+0x14c>
*(module->rx_buffer_ptr) = (received_data >> 8);
ca8: 0a1b lsrs r3, r3, #8
caa: 7053 strb r3, [r2, #1]
module->rx_buffer_ptr += 1;
cac: 6a6b ldr r3, [r5, #36] ; 0x24
cae: 3301 adds r3, #1
cb0: 626b str r3, [r5, #36] ; 0x24
cb2: e7e8 b.n c86 <_usart_interrupt_handler+0x11a>
}
}
}
} else {
/* This should not happen. Disable Receive Complete interrupt. */
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_RXC;
cb4: 2304 movs r3, #4
cb6: 7523 strb r3, [r4, #20]
}
}
#ifdef FEATURE_USART_HARDWARE_FLOW_CONTROL
if (interrupt_status & SERCOM_USART_INTFLAG_CTSIC) {
cb8: 06f3 lsls r3, r6, #27
cba: d504 bpl.n cc6 <_usart_interrupt_handler+0x15a>
/* Disable interrupts */
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_CTSIC;
cbc: 2310 movs r3, #16
cbe: 7523 strb r3, [r4, #20]
/* Clear interrupt flag */
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_CTSIC;
cc0: 7623 strb r3, [r4, #24]
/* Run callback if registered and enabled */
if (callback_status & (1 << USART_CALLBACK_CTS_INPUT_CHANGE)) {
cc2: 06fb lsls r3, r7, #27
cc4: d40e bmi.n ce4 <_usart_interrupt_handler+0x178>
}
}
#endif
#ifdef FEATURE_USART_LIN_SLAVE
if (interrupt_status & SERCOM_USART_INTFLAG_RXBRK) {
cc6: 06b3 lsls r3, r6, #26
cc8: d504 bpl.n cd4 <_usart_interrupt_handler+0x168>
/* Disable interrupts */
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_RXBRK;
cca: 2320 movs r3, #32
ccc: 7523 strb r3, [r4, #20]
/* Clear interrupt flag */
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_RXBRK;
cce: 7623 strb r3, [r4, #24]
/* Run callback if registered and enabled */
if (callback_status & (1 << USART_CALLBACK_BREAK_RECEIVED)) {
cd0: 073b lsls r3, r7, #28
cd2: d40b bmi.n cec <_usart_interrupt_handler+0x180>
}
}
#endif
#ifdef FEATURE_USART_START_FRAME_DECTION
if (interrupt_status & SERCOM_USART_INTFLAG_RXS) {
cd4: 0733 lsls r3, r6, #28
cd6: d504 bpl.n ce2 <_usart_interrupt_handler+0x176>
/* Disable interrupts */
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_RXS;
cd8: 2308 movs r3, #8
cda: 7523 strb r3, [r4, #20]
/* Clear interrupt flag */
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_RXS;
cdc: 7623 strb r3, [r4, #24]
/* Run callback if registered and enabled */
if (callback_status & (1 << USART_CALLBACK_START_RECEIVED)) {
cde: 06bb lsls r3, r7, #26
ce0: d408 bmi.n cf4 <_usart_interrupt_handler+0x188>
(*(module->callback[USART_CALLBACK_START_RECEIVED]))(module);
}
}
#endif
}
ce2: bdf8 pop {r3, r4, r5, r6, r7, pc}
(*(module->callback[USART_CALLBACK_CTS_INPUT_CHANGE]))(module);
ce4: 0028 movs r0, r5
ce6: 69eb ldr r3, [r5, #28]
ce8: 4798 blx r3
cea: e7ec b.n cc6 <_usart_interrupt_handler+0x15a>
(*(module->callback[USART_CALLBACK_BREAK_RECEIVED]))(module);
cec: 0028 movs r0, r5
cee: 69ab ldr r3, [r5, #24]
cf0: 4798 blx r3
cf2: e7ef b.n cd4 <_usart_interrupt_handler+0x168>
(*(module->callback[USART_CALLBACK_START_RECEIVED]))(module);
cf4: 6a2b ldr r3, [r5, #32]
cf6: 0028 movs r0, r5
cf8: 4798 blx r3
}
cfa: e7f2 b.n ce2 <_usart_interrupt_handler+0x176>
cfc: 20004cf0 .word 0x20004cf0
00000d00 <_sercom_default_handler>:
*/
static void _sercom_default_handler(
const uint8_t instance)
{
Assert(false);
}
d00: 4770 bx lr
...
00000d04 <_sercom_set_handler>:
* \param[in] interrupt_handler Pointer to instance callback handler.
*/
void _sercom_set_handler(
const uint8_t instance,
const sercom_handler_t interrupt_handler)
{
d04: b5f0 push {r4, r5, r6, r7, lr}
/* Initialize handlers with default handler and device instances with 0 */
if (_handler_table_initialized == false) {
d06: 4b0a ldr r3, [pc, #40] ; (d30 <_sercom_set_handler+0x2c>)
d08: 781b ldrb r3, [r3, #0]
d0a: 2b00 cmp r3, #0
d0c: d10c bne.n d28 <_sercom_set_handler+0x24>
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
_sercom_interrupt_handlers[i] = &_sercom_default_handler;
d0e: 4f09 ldr r7, [pc, #36] ; (d34 <_sercom_set_handler+0x30>)
d10: 4e09 ldr r6, [pc, #36] ; (d38 <_sercom_set_handler+0x34>)
_sercom_instances[i] = NULL;
d12: 4d0a ldr r5, [pc, #40] ; (d3c <_sercom_set_handler+0x38>)
d14: 2400 movs r4, #0
_sercom_interrupt_handlers[i] = &_sercom_default_handler;
d16: 51de str r6, [r3, r7]
_sercom_instances[i] = NULL;
d18: 195a adds r2, r3, r5
d1a: 6014 str r4, [r2, #0]
d1c: 3304 adds r3, #4
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
d1e: 2b18 cmp r3, #24
d20: d1f9 bne.n d16 <_sercom_set_handler+0x12>
}
_handler_table_initialized = true;
d22: 2201 movs r2, #1
d24: 4b02 ldr r3, [pc, #8] ; (d30 <_sercom_set_handler+0x2c>)
d26: 701a strb r2, [r3, #0]
}
/* Save interrupt handler */
_sercom_interrupt_handlers[instance] = interrupt_handler;
d28: 0080 lsls r0, r0, #2
d2a: 4b02 ldr r3, [pc, #8] ; (d34 <_sercom_set_handler+0x30>)
d2c: 50c1 str r1, [r0, r3]
}
d2e: bdf0 pop {r4, r5, r6, r7, pc}
d30: 200026a6 .word 0x200026a6
d34: 200026a8 .word 0x200026a8
d38: 00000d01 .word 0x00000d01
d3c: 20004cf0 .word 0x20004cf0
00000d40 <_sercom_get_interrupt_vector>:
* \retval SYSTEM_INTERRUPT_MODULE_SERCOM6
* \retval SYSTEM_INTERRUPT_MODULE_SERCOM7
*/
enum system_interrupt_vector _sercom_get_interrupt_vector(
Sercom *const sercom_instance)
{
d40: b500 push {lr}
d42: b083 sub sp, #12
const uint8_t sercom_int_vectors[SERCOM_INST_NUM] =
d44: 2309 movs r3, #9
d46: 466a mov r2, sp
d48: 7013 strb r3, [r2, #0]
d4a: 3301 adds r3, #1
d4c: 7053 strb r3, [r2, #1]
d4e: 3301 adds r3, #1
d50: 7093 strb r3, [r2, #2]
d52: 3301 adds r3, #1
d54: 70d3 strb r3, [r2, #3]
d56: 3301 adds r3, #1
d58: 7113 strb r3, [r2, #4]
d5a: 3301 adds r3, #1
d5c: 7153 strb r3, [r2, #5]
{
MREPEAT(SERCOM_INST_NUM, _SERCOM_INTERRUPT_VECT_NUM, ~)
};
/* Retrieve the index of the SERCOM being requested */
uint8_t instance_index = _sercom_get_sercom_inst_index(sercom_instance);
d5e: 4b03 ldr r3, [pc, #12] ; (d6c <_sercom_get_interrupt_vector+0x2c>)
d60: 4798 blx r3
/* Get the vector number from the lookup table for the requested SERCOM */
return (enum system_interrupt_vector)sercom_int_vectors[instance_index];
d62: 466b mov r3, sp
d64: 5618 ldrsb r0, [r3, r0]
}
d66: b003 add sp, #12
d68: bd00 pop {pc}
d6a: 46c0 nop ; (mov r8, r8)
d6c: 0000069d .word 0x0000069d
00000d70 <SERCOM0_Handler>:
/** Auto-generate a set of interrupt handlers for each SERCOM in the device */
MREPEAT(SERCOM_INST_NUM, _SERCOM_INTERRUPT_HANDLER, ~)
d70: b510 push {r4, lr}
d72: 4b02 ldr r3, [pc, #8] ; (d7c <SERCOM0_Handler+0xc>)
d74: 681b ldr r3, [r3, #0]
d76: 2000 movs r0, #0
d78: 4798 blx r3
d7a: bd10 pop {r4, pc}
d7c: 200026a8 .word 0x200026a8
00000d80 <SERCOM1_Handler>:
d80: b510 push {r4, lr}
d82: 4b02 ldr r3, [pc, #8] ; (d8c <SERCOM1_Handler+0xc>)
d84: 685b ldr r3, [r3, #4]
d86: 2001 movs r0, #1
d88: 4798 blx r3
d8a: bd10 pop {r4, pc}
d8c: 200026a8 .word 0x200026a8
00000d90 <SERCOM2_Handler>:
d90: b510 push {r4, lr}
d92: 4b02 ldr r3, [pc, #8] ; (d9c <SERCOM2_Handler+0xc>)
d94: 689b ldr r3, [r3, #8]
d96: 2002 movs r0, #2
d98: 4798 blx r3
d9a: bd10 pop {r4, pc}
d9c: 200026a8 .word 0x200026a8
00000da0 <SERCOM3_Handler>:
da0: b510 push {r4, lr}
da2: 4b02 ldr r3, [pc, #8] ; (dac <SERCOM3_Handler+0xc>)
da4: 68db ldr r3, [r3, #12]
da6: 2003 movs r0, #3
da8: 4798 blx r3
daa: bd10 pop {r4, pc}
dac: 200026a8 .word 0x200026a8
00000db0 <SERCOM4_Handler>:
db0: b510 push {r4, lr}
db2: 4b02 ldr r3, [pc, #8] ; (dbc <SERCOM4_Handler+0xc>)
db4: 691b ldr r3, [r3, #16]
db6: 2004 movs r0, #4
db8: 4798 blx r3
dba: bd10 pop {r4, pc}
dbc: 200026a8 .word 0x200026a8
00000dc0 <SERCOM5_Handler>:
dc0: b510 push {r4, lr}
dc2: 4b02 ldr r3, [pc, #8] ; (dcc <SERCOM5_Handler+0xc>)
dc4: 695b ldr r3, [r3, #20]
dc6: 2005 movs r0, #5
dc8: 4798 blx r3
dca: bd10 pop {r4, pc}
dcc: 200026a8 .word 0x200026a8
00000dd0 <cpu_irq_enter_critical>:
volatile bool g_interrupt_enabled = true;
#endif
void cpu_irq_enter_critical(void)
{
if (cpu_irq_critical_section_counter == 0) {
dd0: 4b0c ldr r3, [pc, #48] ; (e04 <cpu_irq_enter_critical+0x34>)
dd2: 681b ldr r3, [r3, #0]
dd4: 2b00 cmp r3, #0
dd6: d106 bne.n de6 <cpu_irq_enter_critical+0x16>
__ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
dd8: f3ef 8310 mrs r3, PRIMASK
if (cpu_irq_is_enabled()) {
ddc: 2b00 cmp r3, #0
dde: d007 beq.n df0 <cpu_irq_enter_critical+0x20>
cpu_irq_disable();
cpu_irq_prev_interrupt_state = true;
} else {
/* Make sure the to save the prev state as false */
cpu_irq_prev_interrupt_state = false;
de0: 2200 movs r2, #0
de2: 4b09 ldr r3, [pc, #36] ; (e08 <cpu_irq_enter_critical+0x38>)
de4: 701a strb r2, [r3, #0]
}
}
cpu_irq_critical_section_counter++;
de6: 4a07 ldr r2, [pc, #28] ; (e04 <cpu_irq_enter_critical+0x34>)
de8: 6813 ldr r3, [r2, #0]
dea: 3301 adds r3, #1
dec: 6013 str r3, [r2, #0]
}
dee: 4770 bx lr
__ASM volatile ("cpsid i" : : : "memory");
df0: b672 cpsid i
__ASM volatile ("dmb 0xF":::"memory");
df2: f3bf 8f5f dmb sy
cpu_irq_disable();
df6: 2200 movs r2, #0
df8: 4b04 ldr r3, [pc, #16] ; (e0c <cpu_irq_enter_critical+0x3c>)
dfa: 701a strb r2, [r3, #0]
cpu_irq_prev_interrupt_state = true;
dfc: 3201 adds r2, #1
dfe: 4b02 ldr r3, [pc, #8] ; (e08 <cpu_irq_enter_critical+0x38>)
e00: 701a strb r2, [r3, #0]
e02: e7f0 b.n de6 <cpu_irq_enter_critical+0x16>
e04: 200026c0 .word 0x200026c0
e08: 200026c4 .word 0x200026c4
e0c: 2000000c .word 0x2000000c
00000e10 <cpu_irq_leave_critical>:
void cpu_irq_leave_critical(void)
{
/* Check if the user is trying to leave a critical section when not in a critical section */
Assert(cpu_irq_critical_section_counter > 0);
cpu_irq_critical_section_counter--;
e10: 4b08 ldr r3, [pc, #32] ; (e34 <cpu_irq_leave_critical+0x24>)
e12: 681a ldr r2, [r3, #0]
e14: 3a01 subs r2, #1
e16: 601a str r2, [r3, #0]
/* Only enable global interrupts when the counter reaches 0 and the state of the global interrupt flag
was enabled when entering critical state */
if ((cpu_irq_critical_section_counter == 0) && (cpu_irq_prev_interrupt_state)) {
e18: 681b ldr r3, [r3, #0]
e1a: 2b00 cmp r3, #0
e1c: d109 bne.n e32 <cpu_irq_leave_critical+0x22>
e1e: 4b06 ldr r3, [pc, #24] ; (e38 <cpu_irq_leave_critical+0x28>)
e20: 781b ldrb r3, [r3, #0]
e22: 2b00 cmp r3, #0
e24: d005 beq.n e32 <cpu_irq_leave_critical+0x22>
cpu_irq_enable();
e26: 2201 movs r2, #1
e28: 4b04 ldr r3, [pc, #16] ; (e3c <cpu_irq_leave_critical+0x2c>)
e2a: 701a strb r2, [r3, #0]
e2c: f3bf 8f5f dmb sy
__ASM volatile ("cpsie i" : : : "memory");
e30: b662 cpsie i
}
}
e32: 4770 bx lr
e34: 200026c0 .word 0x200026c0
e38: 200026c4 .word 0x200026c4
e3c: 2000000c .word 0x2000000c
00000e40 <system_board_init>:
void board_init(void);
# pragma weak board_init=system_board_init
#endif
void system_board_init(void)
{
e40: b5f0 push {r4, r5, r6, r7, lr}
e42: b083 sub sp, #12
/* Sanity check arguments */
Assert(config);
/* Default configuration values */
config->direction = PORT_PIN_DIR_INPUT;
config->input_pull = PORT_PIN_PULL_UP;
e44: ac01 add r4, sp, #4
e46: 2501 movs r5, #1
e48: 7065 strb r5, [r4, #1]
config->powersave = false;
e4a: 2700 movs r7, #0
e4c: 70a7 strb r7, [r4, #2]
struct port_config pin_conf;
port_get_config_defaults(&pin_conf);
/* Configure LEDs as outputs, turn them off */
pin_conf.direction = PORT_PIN_DIR_OUTPUT;
e4e: 7025 strb r5, [r4, #0]
port_pin_set_config(LED_0_PIN, &pin_conf);
e50: 0021 movs r1, r4
e52: 203e movs r0, #62 ; 0x3e
e54: 4e06 ldr r6, [pc, #24] ; (e70 <system_board_init+0x30>)
e56: 47b0 blx r6
PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
uint32_t pin_mask = (1UL << (gpio_pin % 32));
/* Set the pin to high or low atomically based on the requested level */
if (level) {
port_base->OUTSET.reg = pin_mask;
e58: 2280 movs r2, #128 ; 0x80
e5a: 05d2 lsls r2, r2, #23
e5c: 4b05 ldr r3, [pc, #20] ; (e74 <system_board_init+0x34>)
e5e: 619a str r2, [r3, #24]
port_pin_set_output_level(LED_0_PIN, LED_0_INACTIVE);
/* Set buttons as inputs */
pin_conf.direction = PORT_PIN_DIR_INPUT;
e60: 7027 strb r7, [r4, #0]
pin_conf.input_pull = PORT_PIN_PULL_UP;
e62: 7065 strb r5, [r4, #1]
port_pin_set_config(BUTTON_0_PIN, &pin_conf);
e64: 0021 movs r1, r4
e66: 200f movs r0, #15
e68: 47b0 blx r6
port_pin_set_output_level(AT86RFX_RST_PIN, true);
port_pin_set_output_level(AT86RFX_SLP_PIN, true);
pin_conf.direction = PORT_PIN_DIR_INPUT;
port_pin_set_config(AT86RFX_SPI_MISO, &pin_conf);
#endif
}
e6a: b003 add sp, #12
e6c: bdf0 pop {r4, r5, r6, r7, pc}
e6e: 46c0 nop ; (mov r8, r8)
e70: 00000e79 .word 0x00000e79
e74: 41004480 .word 0x41004480
00000e78 <port_pin_set_config>:
* \param[in] config Configuration settings for the pin
*/
void port_pin_set_config(
const uint8_t gpio_pin,
const struct port_config *const config)
{
e78: b500 push {lr}
e7a: b083 sub sp, #12
config->mux_position = SYSTEM_PINMUX_GPIO;
e7c: ab01 add r3, sp, #4
e7e: 2280 movs r2, #128 ; 0x80
e80: 701a strb r2, [r3, #0]
struct system_pinmux_config pinmux_config;
system_pinmux_get_config_defaults(&pinmux_config);
pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
e82: 780a ldrb r2, [r1, #0]
e84: 705a strb r2, [r3, #1]
pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
e86: 784a ldrb r2, [r1, #1]
e88: 709a strb r2, [r3, #2]
pinmux_config.powersave = config->powersave;
e8a: 788a ldrb r2, [r1, #2]
e8c: 70da strb r2, [r3, #3]
system_pinmux_pin_set_config(gpio_pin, &pinmux_config);
e8e: 0019 movs r1, r3
e90: 4b01 ldr r3, [pc, #4] ; (e98 <port_pin_set_config+0x20>)
e92: 4798 blx r3
}
e94: b003 add sp, #12
e96: bd00 pop {pc}
e98: 0000160d .word 0x0000160d
00000e9c <port_group_set_config>:
*/
void port_group_set_config(
PortGroup *const port,
const uint32_t mask,
const struct port_config *const config)
{
e9c: b510 push {r4, lr}
e9e: b082 sub sp, #8
ea0: ab01 add r3, sp, #4
ea2: 2480 movs r4, #128 ; 0x80
ea4: 701c strb r4, [r3, #0]
struct system_pinmux_config pinmux_config;
system_pinmux_get_config_defaults(&pinmux_config);
pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
ea6: 7814 ldrb r4, [r2, #0]
ea8: 705c strb r4, [r3, #1]
pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
eaa: 7854 ldrb r4, [r2, #1]
eac: 709c strb r4, [r3, #2]
pinmux_config.powersave = config->powersave;
eae: 7892 ldrb r2, [r2, #2]
eb0: 70da strb r2, [r3, #3]
system_pinmux_group_set_config(port, mask, &pinmux_config);
eb2: 001a movs r2, r3
eb4: 4b01 ldr r3, [pc, #4] ; (ebc <port_group_set_config+0x20>)
eb6: 4798 blx r3
}
eb8: b002 add sp, #8
eba: bd10 pop {r4, pc}
ebc: 0000163d .word 0x0000163d
00000ec0 <system_clock_source_get_hz>:
*
* \returns Frequency of the given clock source, in Hz.
*/
uint32_t system_clock_source_get_hz(
const enum system_clock_source clock_source)
{
ec0: b510 push {r4, lr}
switch (clock_source) {
ec2: 2808 cmp r0, #8
ec4: d803 bhi.n ece <system_clock_source_get_hz+0xe>
ec6: 0080 lsls r0, r0, #2
ec8: 4b1c ldr r3, [pc, #112] ; (f3c <system_clock_source_get_hz+0x7c>)
eca: 581b ldr r3, [r3, r0]
ecc: 469f mov pc, r3
return _system_clock_inst.dpll.frequency;
#endif
default:
return 0;
ece: 2000 movs r0, #0
ed0: e032 b.n f38 <system_clock_source_get_hz+0x78>
return _system_clock_inst.xosc.frequency;
ed2: 4b1b ldr r3, [pc, #108] ; (f40 <system_clock_source_get_hz+0x80>)
ed4: 6918 ldr r0, [r3, #16]
ed6: e02f b.n f38 <system_clock_source_get_hz+0x78>
return 8000000UL >> SYSCTRL->OSC8M.bit.PRESC;
ed8: 4b1a ldr r3, [pc, #104] ; (f44 <system_clock_source_get_hz+0x84>)
eda: 6a1b ldr r3, [r3, #32]
edc: 059b lsls r3, r3, #22
ede: 0f9b lsrs r3, r3, #30
ee0: 4819 ldr r0, [pc, #100] ; (f48 <system_clock_source_get_hz+0x88>)
ee2: 40d8 lsrs r0, r3
ee4: e028 b.n f38 <system_clock_source_get_hz+0x78>
return _system_clock_inst.xosc32k.frequency;
ee6: 4b16 ldr r3, [pc, #88] ; (f40 <system_clock_source_get_hz+0x80>)
ee8: 6958 ldr r0, [r3, #20]
eea: e025 b.n f38 <system_clock_source_get_hz+0x78>
if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
eec: 4b14 ldr r3, [pc, #80] ; (f40 <system_clock_source_get_hz+0x80>)
eee: 681b ldr r3, [r3, #0]
return 0;
ef0: 2000 movs r0, #0
if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
ef2: 079b lsls r3, r3, #30
ef4: d520 bpl.n f38 <system_clock_source_get_hz+0x78>
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
ef6: 4913 ldr r1, [pc, #76] ; (f44 <system_clock_source_get_hz+0x84>)
ef8: 2210 movs r2, #16
efa: 68cb ldr r3, [r1, #12]
efc: 421a tst r2, r3
efe: d0fc beq.n efa <system_clock_source_get_hz+0x3a>
switch(_system_clock_inst.dfll.control &
f00: 4b0f ldr r3, [pc, #60] ; (f40 <system_clock_source_get_hz+0x80>)
f02: 681a ldr r2, [r3, #0]
f04: 2324 movs r3, #36 ; 0x24
f06: 4013 ands r3, r2
f08: 2b04 cmp r3, #4
f0a: d001 beq.n f10 <system_clock_source_get_hz+0x50>
return 48000000UL;
f0c: 480f ldr r0, [pc, #60] ; (f4c <system_clock_source_get_hz+0x8c>)
f0e: e013 b.n f38 <system_clock_source_get_hz+0x78>
return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
f10: 2000 movs r0, #0
f12: 4b0f ldr r3, [pc, #60] ; (f50 <system_clock_source_get_hz+0x90>)
f14: 4798 blx r3
(_system_clock_inst.dfll.mul & 0xffff);
f16: 4b0a ldr r3, [pc, #40] ; (f40 <system_clock_source_get_hz+0x80>)
f18: 689b ldr r3, [r3, #8]
f1a: 041b lsls r3, r3, #16
f1c: 0c1b lsrs r3, r3, #16
return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
f1e: 4358 muls r0, r3
f20: e00a b.n f38 <system_clock_source_get_hz+0x78>
if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
f22: 2350 movs r3, #80 ; 0x50
f24: 4a07 ldr r2, [pc, #28] ; (f44 <system_clock_source_get_hz+0x84>)
f26: 5cd3 ldrb r3, [r2, r3]
return 0;
f28: 2000 movs r0, #0
if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
f2a: 075b lsls r3, r3, #29
f2c: d504 bpl.n f38 <system_clock_source_get_hz+0x78>
return _system_clock_inst.dpll.frequency;
f2e: 4b04 ldr r3, [pc, #16] ; (f40 <system_clock_source_get_hz+0x80>)
f30: 68d8 ldr r0, [r3, #12]
f32: e001 b.n f38 <system_clock_source_get_hz+0x78>
return 32768UL;
f34: 2080 movs r0, #128 ; 0x80
f36: 0200 lsls r0, r0, #8
}
}
f38: bd10 pop {r4, pc}
f3a: 46c0 nop ; (mov r8, r8)
f3c: 000254f0 .word 0x000254f0
f40: 200026c8 .word 0x200026c8
f44: 40000800 .word 0x40000800
f48: 007a1200 .word 0x007a1200
f4c: 02dc6c00 .word 0x02dc6c00
f50: 00001531 .word 0x00001531
00000f54 <system_clock_source_osc8m_set_config>:
*
* \param[in] config OSC8M configuration structure containing the new config
*/
void system_clock_source_osc8m_set_config(
struct system_clock_source_osc8m_config *const config)
{
f54: b570 push {r4, r5, r6, lr}
SYSCTRL_OSC8M_Type temp = SYSCTRL->OSC8M;
f56: 490c ldr r1, [pc, #48] ; (f88 <system_clock_source_osc8m_set_config+0x34>)
f58: 6a0b ldr r3, [r1, #32]
/* Use temporary struct to reduce register access */
temp.bit.PRESC = config->prescaler;
f5a: 7804 ldrb r4, [r0, #0]
temp.bit.ONDEMAND = config->on_demand;
f5c: 7885 ldrb r5, [r0, #2]
temp.bit.RUNSTDBY = config->run_in_standby;
SYSCTRL->OSC8M = temp;
f5e: 7840 ldrb r0, [r0, #1]
f60: 2201 movs r2, #1
f62: 4010 ands r0, r2
f64: 0180 lsls r0, r0, #6
f66: 2640 movs r6, #64 ; 0x40
f68: 43b3 bics r3, r6
f6a: 4303 orrs r3, r0
f6c: 402a ands r2, r5
f6e: 01d2 lsls r2, r2, #7
f70: 2080 movs r0, #128 ; 0x80
f72: 4383 bics r3, r0
f74: 4313 orrs r3, r2
f76: 2203 movs r2, #3
f78: 4022 ands r2, r4
f7a: 0212 lsls r2, r2, #8
f7c: 4803 ldr r0, [pc, #12] ; (f8c <system_clock_source_osc8m_set_config+0x38>)
f7e: 4003 ands r3, r0
f80: 4313 orrs r3, r2
f82: 620b str r3, [r1, #32]
}
f84: bd70 pop {r4, r5, r6, pc}
f86: 46c0 nop ; (mov r8, r8)
f88: 40000800 .word 0x40000800
f8c: fffffcff .word 0xfffffcff
00000f90 <system_clock_source_xosc32k_set_config>:
*
* \param[in] config XOSC32K configuration structure containing the new config
*/
void system_clock_source_xosc32k_set_config(
struct system_clock_source_xosc32k_config *const config)
{
f90: b5f0 push {r4, r5, r6, r7, lr}
f92: 46de mov lr, fp
f94: 4657 mov r7, sl
f96: 464e mov r6, r9
f98: 4645 mov r5, r8
f9a: b5e0 push {r5, r6, r7, lr}
f9c: 0001 movs r1, r0
SYSCTRL_XOSC32K_Type temp = SYSCTRL->XOSC32K;
f9e: 4b26 ldr r3, [pc, #152] ; (1038 <system_clock_source_xosc32k_set_config+0xa8>)
fa0: 469b mov fp, r3
fa2: 8a9b ldrh r3, [r3, #20]
temp.bit.STARTUP = config->startup_time;
fa4: 7845 ldrb r5, [r0, #1]
if (config->external_clock == SYSTEM_CLOCK_EXTERNAL_CRYSTAL) {
fa6: 7800 ldrb r0, [r0, #0]
fa8: 4242 negs r2, r0
faa: 4142 adcs r2, r0
fac: 4691 mov r9, r2
temp.bit.XTALEN = 1;
} else {
temp.bit.XTALEN = 0;
}
temp.bit.AAMPEN = config->auto_gain_control;
fae: 7888 ldrb r0, [r1, #2]
temp.bit.EN1K = config->enable_1khz_output;
fb0: 78ca ldrb r2, [r1, #3]
fb2: 4694 mov ip, r2
temp.bit.EN32K = config->enable_32khz_output;
fb4: 790a ldrb r2, [r1, #4]
fb6: 4690 mov r8, r2
temp.bit.ONDEMAND = config->on_demand;
fb8: 7b4e ldrb r6, [r1, #13]
temp.bit.RUNSTDBY = config->run_in_standby;
fba: 7b0f ldrb r7, [r1, #12]
temp.bit.WRTLOCK = config->write_once;
fbc: 7b8c ldrb r4, [r1, #14]
/* Cache the new frequency in case the user needs to check the current
* operating frequency later */
_system_clock_inst.xosc32k.frequency = config->frequency;
fbe: 688a ldr r2, [r1, #8]
fc0: 491e ldr r1, [pc, #120] ; (103c <system_clock_source_xosc32k_set_config+0xac>)
fc2: 614a str r2, [r1, #20]
SYSCTRL->XOSC32K = temp;
fc4: 2101 movs r1, #1
fc6: 464a mov r2, r9
fc8: 0092 lsls r2, r2, #2
fca: 4691 mov r9, r2
fcc: 2204 movs r2, #4
fce: 4393 bics r3, r2
fd0: 464a mov r2, r9
fd2: 4313 orrs r3, r2
fd4: 4642 mov r2, r8
fd6: 400a ands r2, r1
fd8: 00d2 lsls r2, r2, #3
fda: 4690 mov r8, r2
fdc: 2208 movs r2, #8
fde: 4393 bics r3, r2
fe0: 4642 mov r2, r8
fe2: 4313 orrs r3, r2
fe4: 4662 mov r2, ip
fe6: 400a ands r2, r1
fe8: 0112 lsls r2, r2, #4
fea: 4694 mov ip, r2
fec: 2210 movs r2, #16
fee: 4393 bics r3, r2
ff0: 4662 mov r2, ip
ff2: 4313 orrs r3, r2
ff4: 4008 ands r0, r1
ff6: 0140 lsls r0, r0, #5
ff8: 2220 movs r2, #32
ffa: 4393 bics r3, r2
ffc: 4303 orrs r3, r0
ffe: 400f ands r7, r1
1000: 01bf lsls r7, r7, #6
1002: 2040 movs r0, #64 ; 0x40
1004: 4383 bics r3, r0
1006: 433b orrs r3, r7
1008: 400e ands r6, r1
100a: 01f6 lsls r6, r6, #7
100c: 3040 adds r0, #64 ; 0x40
100e: 4383 bics r3, r0
1010: 4333 orrs r3, r6
1012: 3879 subs r0, #121 ; 0x79
1014: 4005 ands r5, r0
1016: 022d lsls r5, r5, #8
1018: 4809 ldr r0, [pc, #36] ; (1040 <system_clock_source_xosc32k_set_config+0xb0>)
101a: 4003 ands r3, r0
101c: 432b orrs r3, r5
101e: 4021 ands r1, r4
1020: 0309 lsls r1, r1, #12
1022: 4808 ldr r0, [pc, #32] ; (1044 <system_clock_source_xosc32k_set_config+0xb4>)
1024: 4003 ands r3, r0
1026: 430b orrs r3, r1
1028: 465a mov r2, fp
102a: 8293 strh r3, [r2, #20]
}
102c: bc3c pop {r2, r3, r4, r5}
102e: 4690 mov r8, r2
1030: 4699 mov r9, r3
1032: 46a2 mov sl, r4
1034: 46ab mov fp, r5
1036: bdf0 pop {r4, r5, r6, r7, pc}
1038: 40000800 .word 0x40000800
103c: 200026c8 .word 0x200026c8
1040: fffff8ff .word 0xfffff8ff
1044: ffffefff .word 0xffffefff
00001048 <system_clock_source_dfll_set_config>:
*
* \param[in] config DFLL configuration structure containing the new config
*/
void system_clock_source_dfll_set_config(
struct system_clock_source_dfll_config *const config)
{
1048: b510 push {r4, lr}
_system_clock_inst.dfll.val =
SYSCTRL_DFLLVAL_COARSE(config->coarse_value) |
104a: 7a03 ldrb r3, [r0, #8]
104c: 069b lsls r3, r3, #26
104e: 0c1b lsrs r3, r3, #16
SYSCTRL_DFLLVAL_FINE(config->fine_value);
1050: 8942 ldrh r2, [r0, #10]
1052: 0592 lsls r2, r2, #22
1054: 0d92 lsrs r2, r2, #22
SYSCTRL_DFLLVAL_COARSE(config->coarse_value) |
1056: 4313 orrs r3, r2
_system_clock_inst.dfll.val =
1058: 4918 ldr r1, [pc, #96] ; (10bc <system_clock_source_dfll_set_config+0x74>)
105a: 604b str r3, [r1, #4]
_system_clock_inst.dfll.control =
(uint32_t)config->wakeup_lock |
105c: 7983 ldrb r3, [r0, #6]
105e: 79c2 ldrb r2, [r0, #7]
1060: 4313 orrs r3, r2
(uint32_t)config->stable_tracking |
(uint32_t)config->quick_lock |
1062: 8842 ldrh r2, [r0, #2]
1064: 8884 ldrh r4, [r0, #4]
1066: 4322 orrs r2, r4
1068: 4313 orrs r3, r2
(uint32_t)config->chill_cycle |
((uint32_t)config->on_demand << SYSCTRL_DFLLCTRL_ONDEMAND_Pos);
106a: 7842 ldrb r2, [r0, #1]
106c: 01d2 lsls r2, r2, #7
(uint32_t)config->chill_cycle |
106e: 4313 orrs r3, r2
_system_clock_inst.dfll.control =
1070: 600b str r3, [r1, #0]
if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
1072: 7803 ldrb r3, [r0, #0]
1074: 2b04 cmp r3, #4
1076: d011 beq.n 109c <system_clock_source_dfll_set_config+0x54>
SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
/* Enable the closed loop mode */
_system_clock_inst.dfll.control |= config->loop_mode;
}
if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY) {
1078: 2b20 cmp r3, #32
107a: d10e bne.n 109a <system_clock_source_dfll_set_config+0x52>
_system_clock_inst.dfll.mul =
SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
107c: 7b03 ldrb r3, [r0, #12]
107e: 069b lsls r3, r3, #26
SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
1080: 8a02 ldrh r2, [r0, #16]
SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
1082: 4313 orrs r3, r2
1084: 89c2 ldrh r2, [r0, #14]
1086: 0412 lsls r2, r2, #16
1088: 490d ldr r1, [pc, #52] ; (10c0 <system_clock_source_dfll_set_config+0x78>)
108a: 400a ands r2, r1
108c: 4313 orrs r3, r2
_system_clock_inst.dfll.mul =
108e: 4a0b ldr r2, [pc, #44] ; (10bc <system_clock_source_dfll_set_config+0x74>)
1090: 6093 str r3, [r2, #8]
/* Enable the USB recovery mode */
_system_clock_inst.dfll.control |= config->loop_mode |
1092: 6811 ldr r1, [r2, #0]
1094: 4b0b ldr r3, [pc, #44] ; (10c4 <system_clock_source_dfll_set_config+0x7c>)
1096: 430b orrs r3, r1
1098: 6013 str r3, [r2, #0]
SYSCTRL_DFLLCTRL_MODE | SYSCTRL_DFLLCTRL_BPLCKC;
}
}
109a: bd10 pop {r4, pc}
SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
109c: 7b03 ldrb r3, [r0, #12]
109e: 069b lsls r3, r3, #26
SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
10a0: 8a02 ldrh r2, [r0, #16]
SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
10a2: 4313 orrs r3, r2
10a4: 89c2 ldrh r2, [r0, #14]
10a6: 0412 lsls r2, r2, #16
10a8: 4905 ldr r1, [pc, #20] ; (10c0 <system_clock_source_dfll_set_config+0x78>)
10aa: 400a ands r2, r1
10ac: 4313 orrs r3, r2
_system_clock_inst.dfll.mul =
10ae: 4a03 ldr r2, [pc, #12] ; (10bc <system_clock_source_dfll_set_config+0x74>)
10b0: 6093 str r3, [r2, #8]
_system_clock_inst.dfll.control |= config->loop_mode;
10b2: 6813 ldr r3, [r2, #0]
10b4: 2104 movs r1, #4
10b6: 430b orrs r3, r1
10b8: 6013 str r3, [r2, #0]
10ba: e7ee b.n 109a <system_clock_source_dfll_set_config+0x52>
10bc: 200026c8 .word 0x200026c8
10c0: 03ff0000 .word 0x03ff0000
10c4: 00000424 .word 0x00000424
000010c8 <system_clock_source_enable>:
* device
*/
enum status_code system_clock_source_enable(
const enum system_clock_source clock_source)
{
switch (clock_source) {
10c8: 2808 cmp r0, #8
10ca: d803 bhi.n 10d4 <system_clock_source_enable+0xc>
10cc: 0080 lsls r0, r0, #2
10ce: 4b25 ldr r3, [pc, #148] ; (1164 <system_clock_source_enable+0x9c>)
10d0: 581b ldr r3, [r3, r0]
10d2: 469f mov pc, r3
/* Always enabled */
return STATUS_OK;
default:
Assert(false);
return STATUS_ERR_INVALID_ARG;
10d4: 2017 movs r0, #23
10d6: e044 b.n 1162 <system_clock_source_enable+0x9a>
SYSCTRL->OSC8M.reg |= SYSCTRL_OSC8M_ENABLE;
10d8: 4a23 ldr r2, [pc, #140] ; (1168 <system_clock_source_enable+0xa0>)
10da: 6a13 ldr r3, [r2, #32]
10dc: 2102 movs r1, #2
10de: 430b orrs r3, r1
10e0: 6213 str r3, [r2, #32]
return STATUS_OK;
10e2: 2000 movs r0, #0
10e4: e03d b.n 1162 <system_clock_source_enable+0x9a>
SYSCTRL->OSC32K.reg |= SYSCTRL_OSC32K_ENABLE;
10e6: 4a20 ldr r2, [pc, #128] ; (1168 <system_clock_source_enable+0xa0>)
10e8: 6993 ldr r3, [r2, #24]
10ea: 2102 movs r1, #2
10ec: 430b orrs r3, r1
10ee: 6193 str r3, [r2, #24]
}
return STATUS_OK;
10f0: 2000 movs r0, #0
break;
10f2: e036 b.n 1162 <system_clock_source_enable+0x9a>
SYSCTRL->XOSC.reg |= SYSCTRL_XOSC_ENABLE;
10f4: 4a1c ldr r2, [pc, #112] ; (1168 <system_clock_source_enable+0xa0>)
10f6: 8a13 ldrh r3, [r2, #16]
10f8: 2102 movs r1, #2
10fa: 430b orrs r3, r1
10fc: 8213 strh r3, [r2, #16]
return STATUS_OK;
10fe: 2000 movs r0, #0
break;
1100: e02f b.n 1162 <system_clock_source_enable+0x9a>
SYSCTRL->XOSC32K.reg |= SYSCTRL_XOSC32K_ENABLE;
1102: 4a19 ldr r2, [pc, #100] ; (1168 <system_clock_source_enable+0xa0>)
1104: 8a93 ldrh r3, [r2, #20]
1106: 2102 movs r1, #2
1108: 430b orrs r3, r1
110a: 8293 strh r3, [r2, #20]
return STATUS_OK;
110c: 2000 movs r0, #0
break;
110e: e028 b.n 1162 <system_clock_source_enable+0x9a>
_system_clock_inst.dfll.control |= SYSCTRL_DFLLCTRL_ENABLE;
1110: 4916 ldr r1, [pc, #88] ; (116c <system_clock_source_enable+0xa4>)
1112: 680b ldr r3, [r1, #0]
1114: 2202 movs r2, #2
1116: 4313 orrs r3, r2
1118: 600b str r3, [r1, #0]
SYSCTRL->DFLLCTRL.reg = SYSCTRL_DFLLCTRL_ENABLE;
111a: 4b13 ldr r3, [pc, #76] ; (1168 <system_clock_source_enable+0xa0>)
111c: 849a strh r2, [r3, #36] ; 0x24
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
111e: 0019 movs r1, r3
1120: 320e adds r2, #14
1122: 68cb ldr r3, [r1, #12]
1124: 421a tst r2, r3
1126: d0fc beq.n 1122 <system_clock_source_enable+0x5a>
SYSCTRL->DFLLMUL.reg = _system_clock_inst.dfll.mul;
1128: 4a10 ldr r2, [pc, #64] ; (116c <system_clock_source_enable+0xa4>)
112a: 6891 ldr r1, [r2, #8]
112c: 4b0e ldr r3, [pc, #56] ; (1168 <system_clock_source_enable+0xa0>)
112e: 62d9 str r1, [r3, #44] ; 0x2c
SYSCTRL->DFLLVAL.reg = _system_clock_inst.dfll.val;
1130: 6852 ldr r2, [r2, #4]
1132: 629a str r2, [r3, #40] ; 0x28
SYSCTRL->DFLLCTRL.reg = 0;
1134: 2200 movs r2, #0
1136: 849a strh r2, [r3, #36] ; 0x24
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
1138: 0019 movs r1, r3
113a: 3210 adds r2, #16
113c: 68cb ldr r3, [r1, #12]
113e: 421a tst r2, r3
1140: d0fc beq.n 113c <system_clock_source_enable+0x74>
SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
1142: 4b0a ldr r3, [pc, #40] ; (116c <system_clock_source_enable+0xa4>)
1144: 681b ldr r3, [r3, #0]
1146: b29b uxth r3, r3
1148: 4a07 ldr r2, [pc, #28] ; (1168 <system_clock_source_enable+0xa0>)
114a: 8493 strh r3, [r2, #36] ; 0x24
return STATUS_OK;
114c: 2000 movs r0, #0
114e: e008 b.n 1162 <system_clock_source_enable+0x9a>
SYSCTRL->DPLLCTRLA.reg |= SYSCTRL_DPLLCTRLA_ENABLE;
1150: 4905 ldr r1, [pc, #20] ; (1168 <system_clock_source_enable+0xa0>)
1152: 2244 movs r2, #68 ; 0x44
1154: 5c8b ldrb r3, [r1, r2]
1156: 2002 movs r0, #2
1158: 4303 orrs r3, r0
115a: 548b strb r3, [r1, r2]
return STATUS_OK;
115c: 2000 movs r0, #0
break;
115e: e000 b.n 1162 <system_clock_source_enable+0x9a>
return STATUS_OK;
1160: 2000 movs r0, #0
}
1162: 4770 bx lr
1164: 00025514 .word 0x00025514
1168: 40000800 .word 0x40000800
116c: 200026c8 .word 0x200026c8
00001170 <system_clock_init>:
* \note OSC8M is always enabled and if user selects other clocks for GCLK generators,
* the OSC8M default enable can be disabled after system_clock_init. Make sure the
* clock switch successfully before disabling OSC8M.
*/
void system_clock_init(void)
{
1170: b5f0 push {r4, r5, r6, r7, lr}
1172: b08f sub sp, #60 ; 0x3c
/* Various bits in the INTFLAG register can be set to one at startup.
This will ensure that these bits are cleared */
SYSCTRL->INTFLAG.reg = SYSCTRL_INTFLAG_BOD33RDY | SYSCTRL_INTFLAG_BOD33DET |
1174: 22c2 movs r2, #194 ; 0xc2
1176: 00d2 lsls r2, r2, #3
1178: 4b4a ldr r3, [pc, #296] ; (12a4 <system_clock_init+0x134>)
117a: 609a str r2, [r3, #8]
static inline void system_flash_set_waitstates(uint8_t wait_states)
{
Assert(NVMCTRL_CTRLB_RWS((uint32_t)wait_states) ==
((uint32_t)wait_states << NVMCTRL_CTRLB_RWS_Pos));
NVMCTRL->CTRLB.bit.RWS = wait_states;
117c: 4a4a ldr r2, [pc, #296] ; (12a8 <system_clock_init+0x138>)
117e: 6853 ldr r3, [r2, #4]
1180: 211e movs r1, #30
1182: 438b bics r3, r1
1184: 391a subs r1, #26
1186: 430b orrs r3, r1
1188: 6053 str r3, [r2, #4]
gclk_conf.source_generator = GCLK_GENERATOR_2;
118a: 2202 movs r2, #2
118c: ab01 add r3, sp, #4
118e: 701a strb r2, [r3, #0]
for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
1190: 2400 movs r4, #0
system_gclk_chan_set_config(gclk_id, &gclk_conf);
1192: 4d46 ldr r5, [pc, #280] ; (12ac <system_clock_init+0x13c>)
1194: b2e0 uxtb r0, r4
1196: a901 add r1, sp, #4
1198: 47a8 blx r5
for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
119a: 3401 adds r4, #1
119c: 2c25 cmp r4, #37 ; 0x25
119e: d1f9 bne.n 1194 <system_clock_init+0x24>
config->external_clock = SYSTEM_CLOCK_EXTERNAL_CRYSTAL;
11a0: a80a add r0, sp, #40 ; 0x28
11a2: 2300 movs r3, #0
11a4: 7003 strb r3, [r0, #0]
config->frequency = 32768UL;
11a6: 2280 movs r2, #128 ; 0x80
11a8: 0212 lsls r2, r2, #8
11aa: 6082 str r2, [r0, #8]
config->enable_1khz_output = false;
11ac: 70c3 strb r3, [r0, #3]
config->enable_32khz_output = true;
11ae: 2201 movs r2, #1
11b0: 7102 strb r2, [r0, #4]
config->write_once = false;
11b2: 7383 strb r3, [r0, #14]
struct system_clock_source_xosc32k_config xosc32k_conf;
system_clock_source_xosc32k_get_config_defaults(&xosc32k_conf);
xosc32k_conf.frequency = 32768UL;
xosc32k_conf.external_clock = CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL;
xosc32k_conf.startup_time = CONF_CLOCK_XOSC32K_STARTUP_TIME;
11b4: 2103 movs r1, #3
11b6: 7041 strb r1, [r0, #1]
xosc32k_conf.auto_gain_control = CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL;
11b8: 7082 strb r2, [r0, #2]
xosc32k_conf.enable_1khz_output = CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT;
xosc32k_conf.enable_32khz_output = CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT;
xosc32k_conf.on_demand = false;
11ba: 7343 strb r3, [r0, #13]
xosc32k_conf.run_in_standby = CONF_CLOCK_XOSC32K_RUN_IN_STANDBY;
11bc: 7302 strb r2, [r0, #12]
system_clock_source_xosc32k_set_config(&xosc32k_conf);
11be: 4b3c ldr r3, [pc, #240] ; (12b0 <system_clock_init+0x140>)
11c0: 4798 blx r3
system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC32K);
11c2: 2005 movs r0, #5
11c4: 4b3b ldr r3, [pc, #236] ; (12b4 <system_clock_init+0x144>)
11c6: 4798 blx r3
return ((SYSCTRL->PCLKSR.reg & mask) == mask);
11c8: 4936 ldr r1, [pc, #216] ; (12a4 <system_clock_init+0x134>)
11ca: 2202 movs r2, #2
11cc: 68cb ldr r3, [r1, #12]
while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC32K));
11ce: 421a tst r2, r3
11d0: d0fc beq.n 11cc <system_clock_init+0x5c>
if (CONF_CLOCK_XOSC32K_ON_DEMAND) {
SYSCTRL->XOSC32K.bit.ONDEMAND = 1;
11d2: 4a34 ldr r2, [pc, #208] ; (12a4 <system_clock_init+0x134>)
11d4: 8a93 ldrh r3, [r2, #20]
11d6: 2180 movs r1, #128 ; 0x80
11d8: 430b orrs r3, r1
11da: 8293 strh r3, [r2, #20]
config->quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
11dc: ab05 add r3, sp, #20
11de: 2100 movs r1, #0
11e0: 2200 movs r2, #0
11e2: 8059 strh r1, [r3, #2]
config->chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE;
11e4: 8099 strh r1, [r3, #4]
config->wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
11e6: 719a strb r2, [r3, #6]
config->stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
11e8: 71da strb r2, [r3, #7]
config->fine_value = 0xff / 4; /* Midpoint */
11ea: 313f adds r1, #63 ; 0x3f
11ec: 8159 strh r1, [r3, #10]
/* DFLL Config (Open and Closed Loop) */
#if CONF_CLOCK_DFLL_ENABLE == true
struct system_clock_source_dfll_config dfll_conf;
system_clock_source_dfll_get_config_defaults(&dfll_conf);
dfll_conf.loop_mode = CONF_CLOCK_DFLL_LOOP_MODE;
11ee: 393b subs r1, #59 ; 0x3b
11f0: 7019 strb r1, [r3, #0]
dfll_conf.on_demand = false;
11f2: 705a strb r2, [r3, #1]
/* Using DFLL48M COARSE CAL value from NVM Software Calibration Area Mapping
in DFLL.COARSE helps to output a frequency close to 48 MHz.*/
#define NVM_DFLL_COARSE_POS 58 /* DFLL48M Coarse calibration value bit position.*/
#define NVM_DFLL_COARSE_SIZE 6 /* DFLL48M Coarse calibration value bit size.*/
uint32_t coarse =( *((uint32_t *)(NVMCTRL_OTP4)
11f4: 4b30 ldr r3, [pc, #192] ; (12b8 <system_clock_init+0x148>)
11f6: 681b ldr r3, [r3, #0]
11f8: 0e9b lsrs r3, r3, #26
+ (NVM_DFLL_COARSE_POS / 32))
>> (NVM_DFLL_COARSE_POS % 32))
& ((1 << NVM_DFLL_COARSE_SIZE) - 1);
/* In some revision chip, the coarse calibration value is not correct. */
if (coarse == 0x3f) {
11fa: 2b3f cmp r3, #63 ; 0x3f
11fc: d04f beq.n 129e <system_clock_init+0x12e>
coarse = 0x1f;
}
dfll_conf.coarse_value = coarse;
11fe: a805 add r0, sp, #20
1200: 7203 strb r3, [r0, #8]
# else
dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
# endif
if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
dfll_conf.multiply_factor = CONF_CLOCK_DFLL_MULTIPLY_FACTOR;
1202: 4b2e ldr r3, [pc, #184] ; (12bc <system_clock_init+0x14c>)
1204: 8203 strh r3, [r0, #16]
}
dfll_conf.coarse_max_step = CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE;
1206: 2307 movs r3, #7
1208: 7303 strb r3, [r0, #12]
dfll_conf.fine_max_step = CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE;
120a: 3338 adds r3, #56 ; 0x38
120c: 81c3 strh r3, [r0, #14]
dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
dfll_conf.multiply_factor = 48000;
}
system_clock_source_dfll_set_config(&dfll_conf);
120e: 4b2c ldr r3, [pc, #176] ; (12c0 <system_clock_init+0x150>)
1210: 4798 blx r3
config->run_in_standby = false;
1212: a804 add r0, sp, #16
1214: 2500 movs r5, #0
1216: 7045 strb r5, [r0, #1]
/* OSC8M */
struct system_clock_source_osc8m_config osc8m_conf;
system_clock_source_osc8m_get_config_defaults(&osc8m_conf);
osc8m_conf.prescaler = CONF_CLOCK_OSC8M_PRESCALER;
1218: 7005 strb r5, [r0, #0]
osc8m_conf.on_demand = CONF_CLOCK_OSC8M_ON_DEMAND;
121a: 7085 strb r5, [r0, #2]
osc8m_conf.run_in_standby = CONF_CLOCK_OSC8M_RUN_IN_STANDBY;
system_clock_source_osc8m_set_config(&osc8m_conf);
121c: 4b29 ldr r3, [pc, #164] ; (12c4 <system_clock_init+0x154>)
121e: 4798 blx r3
system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC8M);
1220: 2006 movs r0, #6
1222: 4f24 ldr r7, [pc, #144] ; (12b4 <system_clock_init+0x144>)
1224: 47b8 blx r7
/* GCLK */
#if CONF_CLOCK_CONFIGURE_GCLK == true
system_gclk_init();
1226: 4b28 ldr r3, [pc, #160] ; (12c8 <system_clock_init+0x158>)
1228: 4798 blx r3
{
/* Sanity check arguments */
Assert(config);
/* Default configuration values */
config->division_factor = 1;
122a: ac01 add r4, sp, #4
122c: 2601 movs r6, #1
122e: 9602 str r6, [sp, #8]
config->high_when_disabled = false;
1230: 7065 strb r5, [r4, #1]
config->source_clock = GCLK_SOURCE_OSC48M;
#else
config->source_clock = GCLK_SOURCE_OSC8M;
#endif
config->run_in_standby = false;
config->output_enable = false;
1232: 7265 strb r5, [r4, #9]
/* Configure all GCLK generators except for the main generator, which
* is configured later after all other clock systems are set up */
MREPEAT(GCLK_GEN_NUM, _CONF_CLOCK_GCLK_CONFIG_NONMAIN, ~);
1234: 2305 movs r3, #5
1236: 7023 strb r3, [r4, #0]
1238: 7226 strb r6, [r4, #8]
123a: 0021 movs r1, r4
123c: 2001 movs r0, #1
123e: 4b23 ldr r3, [pc, #140] ; (12cc <system_clock_init+0x15c>)
1240: 4798 blx r3
1242: 2001 movs r0, #1
1244: 4b22 ldr r3, [pc, #136] ; (12d0 <system_clock_init+0x160>)
1246: 4798 blx r3
/* Enable DFLL reference clock if in closed loop mode */
if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
struct system_gclk_chan_config dfll_gclk_chan_conf;
system_gclk_chan_get_config_defaults(&dfll_gclk_chan_conf);
dfll_gclk_chan_conf.source_generator = CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR;
1248: 7026 strb r6, [r4, #0]
system_gclk_chan_set_config(SYSCTRL_GCLK_ID_DFLL48, &dfll_gclk_chan_conf);
124a: 0021 movs r1, r4
124c: 2000 movs r0, #0
124e: 4b17 ldr r3, [pc, #92] ; (12ac <system_clock_init+0x13c>)
1250: 4798 blx r3
system_gclk_chan_enable(SYSCTRL_GCLK_ID_DFLL48);
1252: 2000 movs r0, #0
1254: 4b1f ldr r3, [pc, #124] ; (12d4 <system_clock_init+0x164>)
1256: 4798 blx r3
#endif
/* DFLL Enable (Open and Closed Loop) */
#if CONF_CLOCK_DFLL_ENABLE == true
system_clock_source_enable(SYSTEM_CLOCK_SOURCE_DFLL);
1258: 2007 movs r0, #7
125a: 47b8 blx r7
return ((SYSCTRL->PCLKSR.reg & mask) == mask);
125c: 4911 ldr r1, [pc, #68] ; (12a4 <system_clock_init+0x134>)
125e: 22d0 movs r2, #208 ; 0xd0
1260: 68cb ldr r3, [r1, #12]
1262: 4013 ands r3, r2
while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_DFLL));
1264: 2bd0 cmp r3, #208 ; 0xd0
1266: d1fb bne.n 1260 <system_clock_init+0xf0>
if (CONF_CLOCK_DFLL_ON_DEMAND) {
SYSCTRL->DFLLCTRL.bit.ONDEMAND = 1;
1268: 4a0e ldr r2, [pc, #56] ; (12a4 <system_clock_init+0x134>)
126a: 8c93 ldrh r3, [r2, #36] ; 0x24
126c: 2180 movs r1, #128 ; 0x80
126e: 430b orrs r3, r1
1270: 8493 strh r3, [r2, #36] ; 0x24
PM->CPUSEL.reg = (uint32_t)divider;
1272: 4a19 ldr r2, [pc, #100] ; (12d8 <system_clock_init+0x168>)
1274: 2300 movs r3, #0
1276: 7213 strb r3, [r2, #8]
PM->APBASEL.reg = (uint32_t)divider;
1278: 7253 strb r3, [r2, #9]
PM->APBBSEL.reg = (uint32_t)divider;
127a: 7293 strb r3, [r2, #10]
PM->APBCSEL.reg = (uint32_t)divider;
127c: 72d3 strb r3, [r2, #11]
config->division_factor = 1;
127e: a901 add r1, sp, #4
1280: 2201 movs r2, #1
1282: 604a str r2, [r1, #4]
config->high_when_disabled = false;
1284: 704b strb r3, [r1, #1]
config->run_in_standby = false;
1286: 720b strb r3, [r1, #8]
config->output_enable = false;
1288: 724b strb r3, [r1, #9]
system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBC, CONF_CLOCK_APBC_DIVIDER);
/* GCLK 0 */
#if CONF_CLOCK_CONFIGURE_GCLK == true
/* Configure the main GCLK last as it might depend on other generators */
_CONF_CLOCK_GCLK_CONFIG(0, ~);
128a: 3307 adds r3, #7
128c: 700b strb r3, [r1, #0]
128e: 2000 movs r0, #0
1290: 4b0e ldr r3, [pc, #56] ; (12cc <system_clock_init+0x15c>)
1292: 4798 blx r3
1294: 2000 movs r0, #0
1296: 4b0e ldr r3, [pc, #56] ; (12d0 <system_clock_init+0x160>)
1298: 4798 blx r3
#endif
}
129a: b00f add sp, #60 ; 0x3c
129c: bdf0 pop {r4, r5, r6, r7, pc}
coarse = 0x1f;
129e: 3b20 subs r3, #32
12a0: e7ad b.n 11fe <system_clock_init+0x8e>
12a2: 46c0 nop ; (mov r8, r8)
12a4: 40000800 .word 0x40000800
12a8: 41004000 .word 0x41004000
12ac: 00001515 .word 0x00001515
12b0: 00000f91 .word 0x00000f91
12b4: 000010c9 .word 0x000010c9
12b8: 00806024 .word 0x00806024
12bc: 000005b9 .word 0x000005b9
12c0: 00001049 .word 0x00001049
12c4: 00000f55 .word 0x00000f55
12c8: 000012dd .word 0x000012dd
12cc: 00001301 .word 0x00001301
12d0: 000013b9 .word 0x000013b9
12d4: 00001489 .word 0x00001489
12d8: 40000400 .word 0x40000400
000012dc <system_gclk_init>:
PM->APBAMASK.reg |= mask;
12dc: 4a06 ldr r2, [pc, #24] ; (12f8 <system_gclk_init+0x1c>)
12de: 6993 ldr r3, [r2, #24]
12e0: 2108 movs r1, #8
12e2: 430b orrs r3, r1
12e4: 6193 str r3, [r2, #24]
{
/* Turn on the digital interface clock */
system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBA, PM_APBAMASK_GCLK);
/* Software reset the module to ensure it is re-initialized correctly */
GCLK->CTRL.reg = GCLK_CTRL_SWRST;
12e6: 2201 movs r2, #1
12e8: 4b04 ldr r3, [pc, #16] ; (12fc <system_gclk_init+0x20>)
12ea: 701a strb r2, [r3, #0]
while (GCLK->CTRL.reg & GCLK_CTRL_SWRST) {
12ec: 0019 movs r1, r3
12ee: 780b ldrb r3, [r1, #0]
12f0: 4213 tst r3, r2
12f2: d1fc bne.n 12ee <system_gclk_init+0x12>
/* Wait for reset to complete */
}
}
12f4: 4770 bx lr
12f6: 46c0 nop ; (mov r8, r8)
12f8: 40000400 .word 0x40000400
12fc: 40000c00 .word 0x40000c00
00001300 <system_gclk_gen_set_config>:
* \param[in] config Configuration settings for the generator
*/
void system_gclk_gen_set_config(
const uint8_t generator,
struct system_gclk_gen_config *const config)
{
1300: b570 push {r4, r5, r6, lr}
1302: 0006 movs r6, r0
/* Sanity check arguments */
Assert(config);
/* Cache new register configurations to minimize sync requirements. */
uint32_t new_genctrl_config = (generator << GCLK_GENCTRL_ID_Pos);
1304: 0004 movs r4, r0
uint32_t new_gendiv_config = (generator << GCLK_GENDIV_ID_Pos);
/* Select the requested source clock for the generator */
new_genctrl_config |= config->source_clock << GCLK_GENCTRL_SRC_Pos;
1306: 780d ldrb r5, [r1, #0]
1308: 022d lsls r5, r5, #8
130a: 4305 orrs r5, r0
/* Configure the clock to be either high or low when disabled */
if (config->high_when_disabled) {
130c: 784b ldrb r3, [r1, #1]
130e: 2b00 cmp r3, #0
1310: d002 beq.n 1318 <system_gclk_gen_set_config+0x18>
new_genctrl_config |= GCLK_GENCTRL_OOV;
1312: 2380 movs r3, #128 ; 0x80
1314: 02db lsls r3, r3, #11
1316: 431d orrs r5, r3
}
/* Configure if the clock output to I/O pin should be enabled. */
if (config->output_enable) {
1318: 7a4b ldrb r3, [r1, #9]
131a: 2b00 cmp r3, #0
131c: d002 beq.n 1324 <system_gclk_gen_set_config+0x24>
new_genctrl_config |= GCLK_GENCTRL_OE;
131e: 2380 movs r3, #128 ; 0x80
1320: 031b lsls r3, r3, #12
1322: 431d orrs r5, r3
}
/* Set division factor */
if (config->division_factor > 1) {
1324: 6848 ldr r0, [r1, #4]
1326: 2801 cmp r0, #1
1328: d910 bls.n 134c <system_gclk_gen_set_config+0x4c>
/* Check if division is a power of two */
if (((config->division_factor & (config->division_factor - 1)) == 0)) {
132a: 1e43 subs r3, r0, #1
132c: 4218 tst r0, r3
132e: d134 bne.n 139a <system_gclk_gen_set_config+0x9a>
* register */
uint32_t div2_count = 0;
uint32_t mask;
for (mask = (1UL << 1); mask < config->division_factor;
1330: 2802 cmp r0, #2
1332: d930 bls.n 1396 <system_gclk_gen_set_config+0x96>
1334: 2302 movs r3, #2
1336: 2200 movs r2, #0
mask <<= 1) {
div2_count++;
1338: 3201 adds r2, #1
mask <<= 1) {
133a: 005b lsls r3, r3, #1
for (mask = (1UL << 1); mask < config->division_factor;
133c: 4298 cmp r0, r3
133e: d8fb bhi.n 1338 <system_gclk_gen_set_config+0x38>
}
/* Set binary divider power of 2 division factor */
new_gendiv_config |= div2_count << GCLK_GENDIV_DIV_Pos;
1340: 0212 lsls r2, r2, #8
1342: 4332 orrs r2, r6
1344: 0014 movs r4, r2
new_genctrl_config |= GCLK_GENCTRL_DIVSEL;
1346: 2380 movs r3, #128 ; 0x80
1348: 035b lsls r3, r3, #13
134a: 431d orrs r5, r3
}
}
/* Enable or disable the clock in standby mode */
if (config->run_in_standby) {
134c: 7a0b ldrb r3, [r1, #8]
134e: 2b00 cmp r3, #0
1350: d002 beq.n 1358 <system_gclk_gen_set_config+0x58>
new_genctrl_config |= GCLK_GENCTRL_RUNSTDBY;
1352: 2380 movs r3, #128 ; 0x80
1354: 039b lsls r3, r3, #14
1356: 431d orrs r5, r3
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
1358: 4a13 ldr r2, [pc, #76] ; (13a8 <system_gclk_gen_set_config+0xa8>)
135a: 7853 ldrb r3, [r2, #1]
}
while (system_gclk_is_syncing()) {
135c: b25b sxtb r3, r3
135e: 2b00 cmp r3, #0
1360: dbfb blt.n 135a <system_gclk_gen_set_config+0x5a>
cpu_irq_enter_critical();
1362: 4b12 ldr r3, [pc, #72] ; (13ac <system_gclk_gen_set_config+0xac>)
1364: 4798 blx r3
};
system_interrupt_enter_critical_section();
/* Select the correct generator */
*((uint8_t*)&GCLK->GENDIV.reg) = generator;
1366: 4b12 ldr r3, [pc, #72] ; (13b0 <system_gclk_gen_set_config+0xb0>)
1368: 701e strb r6, [r3, #0]
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
136a: 4a0f ldr r2, [pc, #60] ; (13a8 <system_gclk_gen_set_config+0xa8>)
136c: 7853 ldrb r3, [r2, #1]
/* Write the new generator configuration */
while (system_gclk_is_syncing()) {
136e: b25b sxtb r3, r3
1370: 2b00 cmp r3, #0
1372: dbfb blt.n 136c <system_gclk_gen_set_config+0x6c>
/* Wait for synchronization */
};
GCLK->GENDIV.reg = new_gendiv_config;
1374: 4b0c ldr r3, [pc, #48] ; (13a8 <system_gclk_gen_set_config+0xa8>)
1376: 609c str r4, [r3, #8]
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
1378: 001a movs r2, r3
137a: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
137c: b25b sxtb r3, r3
137e: 2b00 cmp r3, #0
1380: dbfb blt.n 137a <system_gclk_gen_set_config+0x7a>
/* Wait for synchronization */
};
GCLK->GENCTRL.reg = new_genctrl_config | (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
1382: 4a09 ldr r2, [pc, #36] ; (13a8 <system_gclk_gen_set_config+0xa8>)
1384: 6853 ldr r3, [r2, #4]
1386: 2180 movs r1, #128 ; 0x80
1388: 0249 lsls r1, r1, #9
138a: 400b ands r3, r1
138c: 431d orrs r5, r3
138e: 6055 str r5, [r2, #4]
cpu_irq_leave_critical();
1390: 4b08 ldr r3, [pc, #32] ; (13b4 <system_gclk_gen_set_config+0xb4>)
1392: 4798 blx r3
system_interrupt_leave_critical_section();
}
1394: bd70 pop {r4, r5, r6, pc}
for (mask = (1UL << 1); mask < config->division_factor;
1396: 2200 movs r2, #0
1398: e7d2 b.n 1340 <system_gclk_gen_set_config+0x40>
(config->division_factor) << GCLK_GENDIV_DIV_Pos;
139a: 0204 lsls r4, r0, #8
new_gendiv_config |=
139c: 4334 orrs r4, r6
new_genctrl_config |= GCLK_GENCTRL_IDC;
139e: 2380 movs r3, #128 ; 0x80
13a0: 029b lsls r3, r3, #10
13a2: 431d orrs r5, r3
13a4: e7d2 b.n 134c <system_gclk_gen_set_config+0x4c>
13a6: 46c0 nop ; (mov r8, r8)
13a8: 40000c00 .word 0x40000c00
13ac: 00000dd1 .word 0x00000dd1
13b0: 40000c08 .word 0x40000c08
13b4: 00000e11 .word 0x00000e11
000013b8 <system_gclk_gen_enable>:
*
* \param[in] generator Generic Clock Generator index to enable
*/
void system_gclk_gen_enable(
const uint8_t generator)
{
13b8: b510 push {r4, lr}
13ba: 0004 movs r4, r0
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
13bc: 4a0b ldr r2, [pc, #44] ; (13ec <system_gclk_gen_enable+0x34>)
13be: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
13c0: b25b sxtb r3, r3
13c2: 2b00 cmp r3, #0
13c4: dbfb blt.n 13be <system_gclk_gen_enable+0x6>
cpu_irq_enter_critical();
13c6: 4b0a ldr r3, [pc, #40] ; (13f0 <system_gclk_gen_enable+0x38>)
13c8: 4798 blx r3
};
system_interrupt_enter_critical_section();
/* Select the requested generator */
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
13ca: 4b0a ldr r3, [pc, #40] ; (13f4 <system_gclk_gen_enable+0x3c>)
13cc: 701c strb r4, [r3, #0]
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
13ce: 4a07 ldr r2, [pc, #28] ; (13ec <system_gclk_gen_enable+0x34>)
13d0: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
13d2: b25b sxtb r3, r3
13d4: 2b00 cmp r3, #0
13d6: dbfb blt.n 13d0 <system_gclk_gen_enable+0x18>
/* Wait for synchronization */
};
/* Enable generator */
GCLK->GENCTRL.reg |= GCLK_GENCTRL_GENEN;
13d8: 4a04 ldr r2, [pc, #16] ; (13ec <system_gclk_gen_enable+0x34>)
13da: 6851 ldr r1, [r2, #4]
13dc: 2380 movs r3, #128 ; 0x80
13de: 025b lsls r3, r3, #9
13e0: 430b orrs r3, r1
13e2: 6053 str r3, [r2, #4]
cpu_irq_leave_critical();
13e4: 4b04 ldr r3, [pc, #16] ; (13f8 <system_gclk_gen_enable+0x40>)
13e6: 4798 blx r3
system_interrupt_leave_critical_section();
}
13e8: bd10 pop {r4, pc}
13ea: 46c0 nop ; (mov r8, r8)
13ec: 40000c00 .word 0x40000c00
13f0: 00000dd1 .word 0x00000dd1
13f4: 40000c04 .word 0x40000c04
13f8: 00000e11 .word 0x00000e11
000013fc <system_gclk_gen_get_hz>:
*
* \return The frequency of the generic clock generator, in Hz.
*/
uint32_t system_gclk_gen_get_hz(
const uint8_t generator)
{
13fc: b570 push {r4, r5, r6, lr}
13fe: 0004 movs r4, r0
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
1400: 4a1a ldr r2, [pc, #104] ; (146c <system_gclk_gen_get_hz+0x70>)
1402: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
1404: b25b sxtb r3, r3
1406: 2b00 cmp r3, #0
1408: dbfb blt.n 1402 <system_gclk_gen_get_hz+0x6>
cpu_irq_enter_critical();
140a: 4b19 ldr r3, [pc, #100] ; (1470 <system_gclk_gen_get_hz+0x74>)
140c: 4798 blx r3
};
system_interrupt_enter_critical_section();
/* Select the appropriate generator */
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
140e: 4b19 ldr r3, [pc, #100] ; (1474 <system_gclk_gen_get_hz+0x78>)
1410: 701c strb r4, [r3, #0]
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
1412: 4a16 ldr r2, [pc, #88] ; (146c <system_gclk_gen_get_hz+0x70>)
1414: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
1416: b25b sxtb r3, r3
1418: 2b00 cmp r3, #0
141a: dbfb blt.n 1414 <system_gclk_gen_get_hz+0x18>
/* Wait for synchronization */
};
/* Get the frequency of the source connected to the GCLK generator */
uint32_t gen_input_hz = system_clock_source_get_hz(
(enum system_clock_source)GCLK->GENCTRL.bit.SRC);
141c: 4e13 ldr r6, [pc, #76] ; (146c <system_gclk_gen_get_hz+0x70>)
141e: 6870 ldr r0, [r6, #4]
1420: 04c0 lsls r0, r0, #19
1422: 0ec0 lsrs r0, r0, #27
uint32_t gen_input_hz = system_clock_source_get_hz(
1424: 4b14 ldr r3, [pc, #80] ; (1478 <system_gclk_gen_get_hz+0x7c>)
1426: 4798 blx r3
1428: 0005 movs r5, r0
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
142a: 4b12 ldr r3, [pc, #72] ; (1474 <system_gclk_gen_get_hz+0x78>)
142c: 701c strb r4, [r3, #0]
uint8_t divsel = GCLK->GENCTRL.bit.DIVSEL;
142e: 6876 ldr r6, [r6, #4]
1430: 02f6 lsls r6, r6, #11
1432: 0ff6 lsrs r6, r6, #31
/* Select the appropriate generator division register */
*((uint8_t*)&GCLK->GENDIV.reg) = generator;
1434: 4b11 ldr r3, [pc, #68] ; (147c <system_gclk_gen_get_hz+0x80>)
1436: 701c strb r4, [r3, #0]
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
1438: 4a0c ldr r2, [pc, #48] ; (146c <system_gclk_gen_get_hz+0x70>)
143a: 7853 ldrb r3, [r2, #1]
while (system_gclk_is_syncing()) {
143c: b25b sxtb r3, r3
143e: 2b00 cmp r3, #0
1440: dbfb blt.n 143a <system_gclk_gen_get_hz+0x3e>
/* Wait for synchronization */
};
uint32_t divider = GCLK->GENDIV.bit.DIV;
1442: 4b0a ldr r3, [pc, #40] ; (146c <system_gclk_gen_get_hz+0x70>)
1444: 689c ldr r4, [r3, #8]
1446: 0224 lsls r4, r4, #8
1448: 0c24 lsrs r4, r4, #16
cpu_irq_leave_critical();
144a: 4b0d ldr r3, [pc, #52] ; (1480 <system_gclk_gen_get_hz+0x84>)
144c: 4798 blx r3
system_interrupt_leave_critical_section();
/* Check if the generator is using fractional or binary division */
if (!divsel && divider > 1) {
144e: 2e00 cmp r6, #0
1450: d107 bne.n 1462 <system_gclk_gen_get_hz+0x66>
1452: 2c01 cmp r4, #1
1454: d907 bls.n 1466 <system_gclk_gen_get_hz+0x6a>
gen_input_hz /= divider;
1456: 0021 movs r1, r4
1458: 0028 movs r0, r5
145a: 4b0a ldr r3, [pc, #40] ; (1484 <system_gclk_gen_get_hz+0x88>)
145c: 4798 blx r3
145e: 0005 movs r5, r0
1460: e001 b.n 1466 <system_gclk_gen_get_hz+0x6a>
} else if (divsel) {
gen_input_hz >>= (divider+1);
1462: 3401 adds r4, #1
1464: 40e5 lsrs r5, r4
}
return gen_input_hz;
}
1466: 0028 movs r0, r5
1468: bd70 pop {r4, r5, r6, pc}
146a: 46c0 nop ; (mov r8, r8)
146c: 40000c00 .word 0x40000c00
1470: 00000dd1 .word 0x00000dd1
1474: 40000c04 .word 0x40000c04
1478: 00000ec1 .word 0x00000ec1
147c: 40000c08 .word 0x40000c08
1480: 00000e11 .word 0x00000e11
1484: 0001c0a5 .word 0x0001c0a5
00001488 <system_gclk_chan_enable>:
*
* \param[in] channel Generic Clock channel to enable
*/
void system_gclk_chan_enable(
const uint8_t channel)
{
1488: b510 push {r4, lr}
148a: 0004 movs r4, r0
cpu_irq_enter_critical();
148c: 4b06 ldr r3, [pc, #24] ; (14a8 <system_gclk_chan_enable+0x20>)
148e: 4798 blx r3
system_interrupt_enter_critical_section();
/* Select the requested generator channel */
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
1490: 4b06 ldr r3, [pc, #24] ; (14ac <system_gclk_chan_enable+0x24>)
1492: 701c strb r4, [r3, #0]
/* Enable the generic clock */
GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_CLKEN;
1494: 4a06 ldr r2, [pc, #24] ; (14b0 <system_gclk_chan_enable+0x28>)
1496: 8853 ldrh r3, [r2, #2]
1498: 2180 movs r1, #128 ; 0x80
149a: 01c9 lsls r1, r1, #7
149c: 430b orrs r3, r1
149e: 8053 strh r3, [r2, #2]
cpu_irq_leave_critical();
14a0: 4b04 ldr r3, [pc, #16] ; (14b4 <system_gclk_chan_enable+0x2c>)
14a2: 4798 blx r3
system_interrupt_leave_critical_section();
}
14a4: bd10 pop {r4, pc}
14a6: 46c0 nop ; (mov r8, r8)
14a8: 00000dd1 .word 0x00000dd1
14ac: 40000c02 .word 0x40000c02
14b0: 40000c00 .word 0x40000c00
14b4: 00000e11 .word 0x00000e11
000014b8 <system_gclk_chan_disable>:
*
* \param[in] channel Generic Clock channel to disable
*/
void system_gclk_chan_disable(
const uint8_t channel)
{
14b8: b510 push {r4, lr}
14ba: 0004 movs r4, r0
cpu_irq_enter_critical();
14bc: 4b0f ldr r3, [pc, #60] ; (14fc <system_gclk_chan_disable+0x44>)
14be: 4798 blx r3
system_interrupt_enter_critical_section();
/* Select the requested generator channel */
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
14c0: 4b0f ldr r3, [pc, #60] ; (1500 <system_gclk_chan_disable+0x48>)
14c2: 701c strb r4, [r3, #0]
/* Sanity check WRTLOCK */
Assert(!GCLK->CLKCTRL.bit.WRTLOCK);
/* Switch to known-working source so that the channel can be disabled */
uint32_t prev_gen_id = GCLK->CLKCTRL.bit.GEN;
14c4: 4a0f ldr r2, [pc, #60] ; (1504 <system_gclk_chan_disable+0x4c>)
14c6: 8853 ldrh r3, [r2, #2]
14c8: 051b lsls r3, r3, #20
14ca: 0f18 lsrs r0, r3, #28
GCLK->CLKCTRL.bit.GEN = 0;
14cc: 8853 ldrh r3, [r2, #2]
14ce: 490e ldr r1, [pc, #56] ; (1508 <system_gclk_chan_disable+0x50>)
14d0: 400b ands r3, r1
14d2: 8053 strh r3, [r2, #2]
/* Disable the generic clock */
GCLK->CLKCTRL.reg &= ~GCLK_CLKCTRL_CLKEN;
14d4: 8853 ldrh r3, [r2, #2]
14d6: 490d ldr r1, [pc, #52] ; (150c <system_gclk_chan_disable+0x54>)
14d8: 400b ands r3, r1
14da: 8053 strh r3, [r2, #2]
while (GCLK->CLKCTRL.reg & GCLK_CLKCTRL_CLKEN) {
14dc: 0011 movs r1, r2
14de: 2280 movs r2, #128 ; 0x80
14e0: 01d2 lsls r2, r2, #7
14e2: 884b ldrh r3, [r1, #2]
14e4: 4213 tst r3, r2
14e6: d1fc bne.n 14e2 <system_gclk_chan_disable+0x2a>
/* Wait for clock to become disabled */
}
/* Restore previous configured clock generator */
GCLK->CLKCTRL.bit.GEN = prev_gen_id;
14e8: 4906 ldr r1, [pc, #24] ; (1504 <system_gclk_chan_disable+0x4c>)
14ea: 884a ldrh r2, [r1, #2]
14ec: 0203 lsls r3, r0, #8
14ee: 4806 ldr r0, [pc, #24] ; (1508 <system_gclk_chan_disable+0x50>)
14f0: 4002 ands r2, r0
14f2: 4313 orrs r3, r2
14f4: 804b strh r3, [r1, #2]
cpu_irq_leave_critical();
14f6: 4b06 ldr r3, [pc, #24] ; (1510 <system_gclk_chan_disable+0x58>)
14f8: 4798 blx r3
system_interrupt_leave_critical_section();
}
14fa: bd10 pop {r4, pc}
14fc: 00000dd1 .word 0x00000dd1
1500: 40000c02 .word 0x40000c02
1504: 40000c00 .word 0x40000c00
1508: fffff0ff .word 0xfffff0ff
150c: ffffbfff .word 0xffffbfff
1510: 00000e11 .word 0x00000e11
00001514 <system_gclk_chan_set_config>:
{
1514: b510 push {r4, lr}
new_clkctrl_config |= config->source_generator << GCLK_CLKCTRL_GEN_Pos;
1516: 780c ldrb r4, [r1, #0]
1518: 0224 lsls r4, r4, #8
151a: 4304 orrs r4, r0
system_gclk_chan_disable(channel);
151c: 4b02 ldr r3, [pc, #8] ; (1528 <system_gclk_chan_set_config+0x14>)
151e: 4798 blx r3
GCLK->CLKCTRL.reg = new_clkctrl_config;
1520: b2a4 uxth r4, r4
1522: 4b02 ldr r3, [pc, #8] ; (152c <system_gclk_chan_set_config+0x18>)
1524: 805c strh r4, [r3, #2]
}
1526: bd10 pop {r4, pc}
1528: 000014b9 .word 0x000014b9
152c: 40000c00 .word 0x40000c00
00001530 <system_gclk_chan_get_hz>:
*
* \return The frequency of the generic clock channel, in Hz.
*/
uint32_t system_gclk_chan_get_hz(
const uint8_t channel)
{
1530: b510 push {r4, lr}
1532: 0004 movs r4, r0
cpu_irq_enter_critical();
1534: 4b06 ldr r3, [pc, #24] ; (1550 <system_gclk_chan_get_hz+0x20>)
1536: 4798 blx r3
uint8_t gen_id;
system_interrupt_enter_critical_section();
/* Select the requested generic clock channel */
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
1538: 4b06 ldr r3, [pc, #24] ; (1554 <system_gclk_chan_get_hz+0x24>)
153a: 701c strb r4, [r3, #0]
gen_id = GCLK->CLKCTRL.bit.GEN;
153c: 4b06 ldr r3, [pc, #24] ; (1558 <system_gclk_chan_get_hz+0x28>)
153e: 885c ldrh r4, [r3, #2]
1540: 0524 lsls r4, r4, #20
1542: 0f24 lsrs r4, r4, #28
cpu_irq_leave_critical();
1544: 4b05 ldr r3, [pc, #20] ; (155c <system_gclk_chan_get_hz+0x2c>)
1546: 4798 blx r3
system_interrupt_leave_critical_section();
/* Return the clock speed of the associated GCLK generator */
return system_gclk_gen_get_hz(gen_id);
1548: 0020 movs r0, r4
154a: 4b05 ldr r3, [pc, #20] ; (1560 <system_gclk_chan_get_hz+0x30>)
154c: 4798 blx r3
}
154e: bd10 pop {r4, pc}
1550: 00000dd1 .word 0x00000dd1
1554: 40000c02 .word 0x40000c02
1558: 40000c00 .word 0x40000c00
155c: 00000e11 .word 0x00000e11
1560: 000013fd .word 0x000013fd
00001564 <_system_pinmux_config>:
*/
static void _system_pinmux_config(
PortGroup *const port,
const uint32_t pin_mask,
const struct system_pinmux_config *const config)
{
1564: b530 push {r4, r5, lr}
/* Track the configuration bits into a temporary variable before writing */
uint32_t pin_cfg = 0;
/* Enabled powersave mode, don't create configuration */
if (!config->powersave) {
1566: 78d3 ldrb r3, [r2, #3]
1568: 2b00 cmp r3, #0
156a: d135 bne.n 15d8 <_system_pinmux_config+0x74>
/* Enable the pin peripheral MUX flag if non-GPIO selected (pinmux will
* be written later) and store the new MUX mask */
if (config->mux_position != SYSTEM_PINMUX_GPIO) {
156c: 7813 ldrb r3, [r2, #0]
156e: 2b80 cmp r3, #128 ; 0x80
1570: d029 beq.n 15c6 <_system_pinmux_config+0x62>
pin_cfg |= PORT_WRCONFIG_PMUXEN;
pin_cfg |= (config->mux_position << PORT_WRCONFIG_PMUX_Pos);
1572: 061b lsls r3, r3, #24
1574: 2480 movs r4, #128 ; 0x80
1576: 0264 lsls r4, r4, #9
1578: 4323 orrs r3, r4
}
/* Check if the user has requested that the input buffer be enabled */
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_INPUT) ||
157a: 7854 ldrb r4, [r2, #1]
157c: 2502 movs r5, #2
157e: 43ac bics r4, r5
1580: d106 bne.n 1590 <_system_pinmux_config+0x2c>
(config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
/* Enable input buffer flag */
pin_cfg |= PORT_WRCONFIG_INEN;
/* Enable pull-up/pull-down control flag if requested */
if (config->input_pull != SYSTEM_PINMUX_PIN_PULL_NONE) {
1582: 7894 ldrb r4, [r2, #2]
1584: 2c00 cmp r4, #0
1586: d120 bne.n 15ca <_system_pinmux_config+0x66>
pin_cfg |= PORT_WRCONFIG_INEN;
1588: 2480 movs r4, #128 ; 0x80
158a: 02a4 lsls r4, r4, #10
158c: 4323 orrs r3, r4
pin_cfg |= PORT_WRCONFIG_PULLEN;
}
/* Clear the port DIR bits to disable the output buffer */
port->DIRCLR.reg = pin_mask;
158e: 6041 str r1, [r0, #4]
}
/* Check if the user has requested that the output buffer be enabled */
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
1590: 7854 ldrb r4, [r2, #1]
1592: 3c01 subs r4, #1
1594: 2c01 cmp r4, #1
1596: d91c bls.n 15d2 <_system_pinmux_config+0x6e>
port->DIRCLR.reg = pin_mask;
}
/* The Write Configuration register (WRCONFIG) requires the
* pins to to grouped into two 16-bit half-words - split them out here */
uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
1598: 040d lsls r5, r1, #16
159a: 0c2d lsrs r5, r5, #16
/* Configure the lower 16-bits of the port to the desired configuration,
* including the pin peripheral multiplexer just in case it is enabled */
port->WRCONFIG.reg
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
159c: 24a0 movs r4, #160 ; 0xa0
159e: 05e4 lsls r4, r4, #23
15a0: 432c orrs r4, r5
15a2: 431c orrs r4, r3
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
15a4: 6284 str r4, [r0, #40] ; 0x28
uint32_t upper_pin_mask = (pin_mask >> 16);
15a6: 0c0d lsrs r5, r1, #16
/* Configure the upper 16-bits of the port to the desired configuration,
* including the pin peripheral multiplexer just in case it is enabled */
port->WRCONFIG.reg
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
15a8: 24d0 movs r4, #208 ; 0xd0
15aa: 0624 lsls r4, r4, #24
15ac: 432c orrs r4, r5
15ae: 431c orrs r4, r3
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
15b0: 6284 str r4, [r0, #40] ; 0x28
PORT_WRCONFIG_HWSEL;
if(!config->powersave) {
15b2: 78d4 ldrb r4, [r2, #3]
15b4: 2c00 cmp r4, #0
15b6: d122 bne.n 15fe <_system_pinmux_config+0x9a>
/* Set the pull-up state once the port pins are configured if one was
* requested and it does not violate the valid set of port
* configurations */
if (pin_cfg & PORT_WRCONFIG_PULLEN) {
15b8: 035b lsls r3, r3, #13
15ba: d51c bpl.n 15f6 <_system_pinmux_config+0x92>
/* Set the OUT register bits to enable the pull-up if requested,
* clear to enable pull-down */
if (config->input_pull == SYSTEM_PINMUX_PIN_PULL_UP) {
15bc: 7893 ldrb r3, [r2, #2]
15be: 2b01 cmp r3, #1
15c0: d01e beq.n 1600 <_system_pinmux_config+0x9c>
port->OUTSET.reg = pin_mask;
} else {
port->OUTCLR.reg = pin_mask;
15c2: 6141 str r1, [r0, #20]
15c4: e017 b.n 15f6 <_system_pinmux_config+0x92>
uint32_t pin_cfg = 0;
15c6: 2300 movs r3, #0
15c8: e7d7 b.n 157a <_system_pinmux_config+0x16>
pin_cfg |= PORT_WRCONFIG_PULLEN;
15ca: 24c0 movs r4, #192 ; 0xc0
15cc: 02e4 lsls r4, r4, #11
15ce: 4323 orrs r3, r4
15d0: e7dd b.n 158e <_system_pinmux_config+0x2a>
pin_cfg &= ~PORT_WRCONFIG_PULLEN;
15d2: 4c0d ldr r4, [pc, #52] ; (1608 <_system_pinmux_config+0xa4>)
15d4: 4023 ands r3, r4
15d6: e7df b.n 1598 <_system_pinmux_config+0x34>
port->DIRCLR.reg = pin_mask;
15d8: 6041 str r1, [r0, #4]
uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
15da: 040c lsls r4, r1, #16
15dc: 0c24 lsrs r4, r4, #16
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
15de: 23a0 movs r3, #160 ; 0xa0
15e0: 05db lsls r3, r3, #23
15e2: 4323 orrs r3, r4
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
15e4: 6283 str r3, [r0, #40] ; 0x28
uint32_t upper_pin_mask = (pin_mask >> 16);
15e6: 0c0c lsrs r4, r1, #16
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
15e8: 23d0 movs r3, #208 ; 0xd0
15ea: 061b lsls r3, r3, #24
15ec: 4323 orrs r3, r4
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
15ee: 6283 str r3, [r0, #40] ; 0x28
if(!config->powersave) {
15f0: 78d3 ldrb r3, [r2, #3]
15f2: 2b00 cmp r3, #0
15f4: d103 bne.n 15fe <_system_pinmux_config+0x9a>
}
}
/* Check if the user has requested that the output buffer be enabled */
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
15f6: 7853 ldrb r3, [r2, #1]
15f8: 3b01 subs r3, #1
15fa: 2b01 cmp r3, #1
15fc: d902 bls.n 1604 <_system_pinmux_config+0xa0>
(config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
/* Set the port DIR bits to enable the output buffer */
port->DIRSET.reg = pin_mask;
}
}
}
15fe: bd30 pop {r4, r5, pc}
port->OUTSET.reg = pin_mask;
1600: 6181 str r1, [r0, #24]
1602: e7f8 b.n 15f6 <_system_pinmux_config+0x92>
port->DIRSET.reg = pin_mask;
1604: 6081 str r1, [r0, #8]
}
1606: e7fa b.n 15fe <_system_pinmux_config+0x9a>
1608: fffbffff .word 0xfffbffff
0000160c <system_pinmux_pin_set_config>:
* \param[in] config Configuration settings for the pin
*/
void system_pinmux_pin_set_config(
const uint8_t gpio_pin,
const struct system_pinmux_config *const config)
{
160c: b510 push {r4, lr}
160e: 000a movs r2, r1
uint8_t group_index = (gpio_pin / 32);
/* Array of available ports */
Port *const ports[PORT_INST_NUM] = PORT_INSTS;
if (port_index < PORT_INST_NUM) {
1610: 09c1 lsrs r1, r0, #7
return &(ports[port_index]->Group[group_index]);
} else {
Assert(false);
return NULL;
1612: 2300 movs r3, #0
if (port_index < PORT_INST_NUM) {
1614: 2900 cmp r1, #0
1616: d104 bne.n 1622 <system_pinmux_pin_set_config+0x16>
return &(ports[port_index]->Group[group_index]);
1618: 0943 lsrs r3, r0, #5
161a: 01db lsls r3, r3, #7
161c: 4905 ldr r1, [pc, #20] ; (1634 <system_pinmux_pin_set_config+0x28>)
161e: 468c mov ip, r1
1620: 4463 add r3, ip
PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
uint32_t pin_mask = (1UL << (gpio_pin % 32));
1622: 241f movs r4, #31
1624: 4020 ands r0, r4
1626: 2101 movs r1, #1
1628: 4081 lsls r1, r0
_system_pinmux_config(port, pin_mask, config);
162a: 0018 movs r0, r3
162c: 4b02 ldr r3, [pc, #8] ; (1638 <system_pinmux_pin_set_config+0x2c>)
162e: 4798 blx r3
}
1630: bd10 pop {r4, pc}
1632: 46c0 nop ; (mov r8, r8)
1634: 41004400 .word 0x41004400
1638: 00001565 .word 0x00001565
0000163c <system_pinmux_group_set_config>:
*/
void system_pinmux_group_set_config(
PortGroup *const port,
const uint32_t mask,
const struct system_pinmux_config *const config)
{
163c: b5f0 push {r4, r5, r6, r7, lr}
163e: b083 sub sp, #12
1640: 9000 str r0, [sp, #0]
1642: 000e movs r6, r1
1644: 9201 str r2, [sp, #4]
Assert(port);
for (int i = 0; i < 32; i++) {
1646: 2400 movs r4, #0
if (mask & (1UL << i)) {
1648: 2701 movs r7, #1
_system_pinmux_config(port, (1UL << i), config);
164a: 4d08 ldr r5, [pc, #32] ; (166c <system_pinmux_group_set_config+0x30>)
164c: e002 b.n 1654 <system_pinmux_group_set_config+0x18>
for (int i = 0; i < 32; i++) {
164e: 3401 adds r4, #1
1650: 2c20 cmp r4, #32
1652: d009 beq.n 1668 <system_pinmux_group_set_config+0x2c>
if (mask & (1UL << i)) {
1654: 0033 movs r3, r6
1656: 40e3 lsrs r3, r4
1658: 421f tst r7, r3
165a: d0f8 beq.n 164e <system_pinmux_group_set_config+0x12>
_system_pinmux_config(port, (1UL << i), config);
165c: 9a01 ldr r2, [sp, #4]
165e: 0039 movs r1, r7
1660: 40a1 lsls r1, r4
1662: 9800 ldr r0, [sp, #0]
1664: 47a8 blx r5
1666: e7f2 b.n 164e <system_pinmux_group_set_config+0x12>
}
}
}
1668: b003 add sp, #12
166a: bdf0 pop {r4, r5, r6, r7, pc}
166c: 00001565 .word 0x00001565
00001670 <_system_dummy_init>:
*/
void _system_dummy_init(void);
void _system_dummy_init(void)
{
return;
}
1670: 4770 bx lr
...
00001674 <system_init>:
* - Board hardware initialization (via the Board module)
* - Event system driver initialization (via the EVSYS module)
* - External Interrupt driver initialization (via the EXTINT module)
*/
void system_init(void)
{
1674: b510 push {r4, lr}
/* Configure GCLK and clock sources according to conf_clocks.h */
system_clock_init();
1676: 4b05 ldr r3, [pc, #20] ; (168c <system_init+0x18>)
1678: 4798 blx r3
/* Initialize board hardware */
system_board_init();
167a: 4b05 ldr r3, [pc, #20] ; (1690 <system_init+0x1c>)
167c: 4798 blx r3
/* Initialize EVSYS hardware */
_system_events_init();
167e: 4b05 ldr r3, [pc, #20] ; (1694 <system_init+0x20>)
1680: 4798 blx r3
/* Initialize External hardware */
_system_extint_init();
1682: 4b05 ldr r3, [pc, #20] ; (1698 <system_init+0x24>)
1684: 4798 blx r3
/* Initialize DIVAS hardware */
_system_divas_init();
1686: 4b05 ldr r3, [pc, #20] ; (169c <system_init+0x28>)
1688: 4798 blx r3
}
168a: bd10 pop {r4, pc}
168c: 00001171 .word 0x00001171
1690: 00000e41 .word 0x00000e41
1694: 00001671 .word 0x00001671
1698: 00001671 .word 0x00001671
169c: 00001671 .word 0x00001671
000016a0 <Dummy_Handler>:
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
16a0: e7fe b.n 16a0 <Dummy_Handler>
...
000016a4 <Reset_Handler>:
{
16a4: b5f8 push {r3, r4, r5, r6, r7, lr}
if (pSrc != pDest) {
16a6: 4a2a ldr r2, [pc, #168] ; (1750 <Reset_Handler+0xac>)
16a8: 4b2a ldr r3, [pc, #168] ; (1754 <Reset_Handler+0xb0>)
16aa: 429a cmp r2, r3
16ac: d011 beq.n 16d2 <Reset_Handler+0x2e>
for (; pDest < &_erelocate;) {
16ae: 001a movs r2, r3
16b0: 4b29 ldr r3, [pc, #164] ; (1758 <Reset_Handler+0xb4>)
16b2: 429a cmp r2, r3
16b4: d20d bcs.n 16d2 <Reset_Handler+0x2e>
16b6: 4a29 ldr r2, [pc, #164] ; (175c <Reset_Handler+0xb8>)
16b8: 3303 adds r3, #3
16ba: 1a9b subs r3, r3, r2
16bc: 089b lsrs r3, r3, #2
16be: 3301 adds r3, #1
16c0: 009b lsls r3, r3, #2
16c2: 2200 movs r2, #0
*pDest++ = *pSrc++;
16c4: 4823 ldr r0, [pc, #140] ; (1754 <Reset_Handler+0xb0>)
16c6: 4922 ldr r1, [pc, #136] ; (1750 <Reset_Handler+0xac>)
16c8: 588c ldr r4, [r1, r2]
16ca: 5084 str r4, [r0, r2]
16cc: 3204 adds r2, #4
for (; pDest < &_erelocate;) {
16ce: 429a cmp r2, r3
16d0: d1fa bne.n 16c8 <Reset_Handler+0x24>
for (pDest = &_szero; pDest < &_ezero;) {
16d2: 4a23 ldr r2, [pc, #140] ; (1760 <Reset_Handler+0xbc>)
16d4: 4b23 ldr r3, [pc, #140] ; (1764 <Reset_Handler+0xc0>)
16d6: 429a cmp r2, r3
16d8: d20a bcs.n 16f0 <Reset_Handler+0x4c>
16da: 43d3 mvns r3, r2
16dc: 4921 ldr r1, [pc, #132] ; (1764 <Reset_Handler+0xc0>)
16de: 185b adds r3, r3, r1
16e0: 2103 movs r1, #3
16e2: 438b bics r3, r1
16e4: 3304 adds r3, #4
16e6: 189b adds r3, r3, r2
*pDest++ = 0;
16e8: 2100 movs r1, #0
16ea: c202 stmia r2!, {r1}
for (pDest = &_szero; pDest < &_ezero;) {
16ec: 4293 cmp r3, r2
16ee: d1fc bne.n 16ea <Reset_Handler+0x46>
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
16f0: 4a1d ldr r2, [pc, #116] ; (1768 <Reset_Handler+0xc4>)
16f2: 21ff movs r1, #255 ; 0xff
16f4: 4b1d ldr r3, [pc, #116] ; (176c <Reset_Handler+0xc8>)
16f6: 438b bics r3, r1
16f8: 6093 str r3, [r2, #8]
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
16fa: 39fd subs r1, #253 ; 0xfd
16fc: 2390 movs r3, #144 ; 0x90
16fe: 005b lsls r3, r3, #1
1700: 4a1b ldr r2, [pc, #108] ; (1770 <Reset_Handler+0xcc>)
1702: 50d1 str r1, [r2, r3]
USB->DEVICE.QOSCTRL.bit.CQOS = 2;
1704: 4a1b ldr r2, [pc, #108] ; (1774 <Reset_Handler+0xd0>)
1706: 78d3 ldrb r3, [r2, #3]
1708: 2503 movs r5, #3
170a: 43ab bics r3, r5
170c: 2402 movs r4, #2
170e: 4323 orrs r3, r4
1710: 70d3 strb r3, [r2, #3]
USB->DEVICE.QOSCTRL.bit.DQOS = 2;
1712: 78d3 ldrb r3, [r2, #3]
1714: 270c movs r7, #12
1716: 43bb bics r3, r7
1718: 2608 movs r6, #8
171a: 4333 orrs r3, r6
171c: 70d3 strb r3, [r2, #3]
DMAC->QOSCTRL.bit.DQOS = 2;
171e: 4b16 ldr r3, [pc, #88] ; (1778 <Reset_Handler+0xd4>)
1720: 7b98 ldrb r0, [r3, #14]
1722: 2230 movs r2, #48 ; 0x30
1724: 4390 bics r0, r2
1726: 2220 movs r2, #32
1728: 4310 orrs r0, r2
172a: 7398 strb r0, [r3, #14]
DMAC->QOSCTRL.bit.FQOS = 2;
172c: 7b99 ldrb r1, [r3, #14]
172e: 43b9 bics r1, r7
1730: 4331 orrs r1, r6
1732: 7399 strb r1, [r3, #14]
DMAC->QOSCTRL.bit.WRBQOS = 2;
1734: 7b9a ldrb r2, [r3, #14]
1736: 43aa bics r2, r5
1738: 4322 orrs r2, r4
173a: 739a strb r2, [r3, #14]
NVMCTRL->CTRLB.bit.MANW = 1;
173c: 4a0f ldr r2, [pc, #60] ; (177c <Reset_Handler+0xd8>)
173e: 6853 ldr r3, [r2, #4]
1740: 2180 movs r1, #128 ; 0x80
1742: 430b orrs r3, r1
1744: 6053 str r3, [r2, #4]
__libc_init_array();
1746: 4b0e ldr r3, [pc, #56] ; (1780 <Reset_Handler+0xdc>)
1748: 4798 blx r3
main();
174a: 4b0e ldr r3, [pc, #56] ; (1784 <Reset_Handler+0xe0>)
174c: 4798 blx r3
174e: e7fe b.n 174e <Reset_Handler+0xaa>
1750: 0002b160 .word 0x0002b160
1754: 20000000 .word 0x20000000
1758: 200000d4 .word 0x200000d4
175c: 20000004 .word 0x20000004
1760: 200000d8 .word 0x200000d8
1764: 20004e94 .word 0x20004e94
1768: e000ed00 .word 0xe000ed00
176c: 00000000 .word 0x00000000
1770: 41007000 .word 0x41007000
1774: 41005000 .word 0x41005000
1778: 41004800 .word 0x41004800
177c: 41004000 .word 0x41004000
1780: 0001c5f9 .word 0x0001c5f9
1784: 0001c091 .word 0x0001c091
00001788 <_sbrk>:
extern void _exit(int status);
extern void _kill(int pid, int sig);
extern int _getpid(void);
extern caddr_t _sbrk(int incr)
{
1788: 0003 movs r3, r0
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
178a: 4a06 ldr r2, [pc, #24] ; (17a4 <_sbrk+0x1c>)
178c: 6812 ldr r2, [r2, #0]
178e: 2a00 cmp r2, #0
1790: d004 beq.n 179c <_sbrk+0x14>
heap = (unsigned char *)&_end;
}
prev_heap = heap;
1792: 4a04 ldr r2, [pc, #16] ; (17a4 <_sbrk+0x1c>)
1794: 6810 ldr r0, [r2, #0]
heap += incr;
1796: 18c3 adds r3, r0, r3
1798: 6013 str r3, [r2, #0]
return (caddr_t) prev_heap;
}
179a: 4770 bx lr
heap = (unsigned char *)&_end;
179c: 4902 ldr r1, [pc, #8] ; (17a8 <_sbrk+0x20>)
179e: 4a01 ldr r2, [pc, #4] ; (17a4 <_sbrk+0x1c>)
17a0: 6011 str r1, [r2, #0]
17a2: e7f6 b.n 1792 <_sbrk+0xa>
17a4: 200026e0 .word 0x200026e0
17a8: 20006e98 .word 0x20006e98
000017ac <lv_debug_check_null>:
* GLOBAL FUNCTIONS
**********************/
bool lv_debug_check_null(const void * p)
{
if(p) return true;
17ac: 1e43 subs r3, r0, #1
17ae: 4198 sbcs r0, r3
17b0: b2c0 uxtb r0, r0
return false;
}
17b2: 4770 bx lr
000017b4 <lv_debug_log_error>:
LV_LOG_WARN("lv_debug_check_str: string is longer than LV_DEBUG_STR_MAX_LENGTH");
return false;
}
void lv_debug_log_error(const char * msg, uint64_t value)
{
17b4: b570 push {r4, r5, r6, lr}
17b6: b0c2 sub sp, #264 ; 0x108
17b8: 0004 movs r4, r0
17ba: 0015 movs r5, r2
static const char hex[] = "0123456789ABCDEF";
size_t msg_len = strlen(msg);
17bc: 4b1b ldr r3, [pc, #108] ; (182c <lv_debug_log_error+0x78>)
17be: 4798 blx r3
17c0: 0006 movs r6, r0
uint32_t value_len = sizeof(unsigned long int);
if(msg_len < 230) {
17c2: 28e5 cmp r0, #229 ; 0xe5
17c4: d829 bhi.n 181a <lv_debug_log_error+0x66>
char buf[255];
char * bufp = buf;
/*Add the function name*/
_lv_memcpy(bufp, msg, msg_len);
17c6: 0002 movs r2, r0
17c8: 0021 movs r1, r4
17ca: a802 add r0, sp, #8
17cc: 4b18 ldr r3, [pc, #96] ; (1830 <lv_debug_log_error+0x7c>)
17ce: 4798 blx r3
bufp += msg_len;
17d0: ab02 add r3, sp, #8
17d2: 1998 adds r0, r3, r6
/*Add value in hey*/
*bufp = ' ';
17d4: 2320 movs r3, #32
17d6: 7003 strb r3, [r0, #0]
bufp ++;
*bufp = '(';
17d8: 3308 adds r3, #8
17da: 7043 strb r3, [r0, #1]
bufp ++;
*bufp = '0';
17dc: 3308 adds r3, #8
17de: 7083 strb r3, [r0, #2]
bufp ++;
*bufp = 'x';
17e0: 3348 adds r3, #72 ; 0x48
17e2: 70c3 strb r3, [r0, #3]
bufp ++;
17e4: 1d04 adds r4, r0, #4
17e6: 3b5c subs r3, #92 ; 0x5c
int8_t i;
for(i = value_len * 2 - 1; i >= 0; i--) {
uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF;
*bufp = hex[x];
17e8: 4e12 ldr r6, [pc, #72] ; (1834 <lv_debug_log_error+0x80>)
uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF;
17ea: 220f movs r2, #15
17ec: 0029 movs r1, r5
17ee: 40d9 lsrs r1, r3
*bufp = hex[x];
17f0: 4011 ands r1, r2
17f2: 5c71 ldrb r1, [r6, r1]
17f4: 7021 strb r1, [r4, #0]
bufp++;
17f6: 3401 adds r4, #1
17f8: 3b04 subs r3, #4
for(i = value_len * 2 - 1; i >= 0; i--) {
17fa: 1d19 adds r1, r3, #4
17fc: d1f6 bne.n 17ec <lv_debug_log_error+0x38>
}
*bufp = ')';
17fe: 332d adds r3, #45 ; 0x2d
1800: 7303 strb r3, [r0, #12]
bufp ++;
*bufp = '\0';
1802: 2300 movs r3, #0
1804: 7343 strb r3, [r0, #13]
LV_LOG_ERROR(buf);
1806: ab02 add r3, sp, #8
1808: 9300 str r3, [sp, #0]
180a: 4b0b ldr r3, [pc, #44] ; (1838 <lv_debug_log_error+0x84>)
180c: 22bc movs r2, #188 ; 0xbc
180e: 490b ldr r1, [pc, #44] ; (183c <lv_debug_log_error+0x88>)
1810: 2003 movs r0, #3
1812: 4c0b ldr r4, [pc, #44] ; (1840 <lv_debug_log_error+0x8c>)
1814: 47a0 blx r4
}
else {
LV_LOG_ERROR(msg);
}
}
1816: b042 add sp, #264 ; 0x108
1818: bd70 pop {r4, r5, r6, pc}
LV_LOG_ERROR(msg);
181a: 9400 str r4, [sp, #0]
181c: 4b06 ldr r3, [pc, #24] ; (1838 <lv_debug_log_error+0x84>)
181e: 22bf movs r2, #191 ; 0xbf
1820: 4906 ldr r1, [pc, #24] ; (183c <lv_debug_log_error+0x88>)
1822: 2003 movs r0, #3
1824: 4c06 ldr r4, [pc, #24] ; (1840 <lv_debug_log_error+0x8c>)
1826: 47a0 blx r4
}
1828: e7f5 b.n 1816 <lv_debug_log_error+0x62>
182a: 46c0 nop ; (mov r8, r8)
182c: 0001c709 .word 0x0001c709
1830: 00012545 .word 0x00012545
1834: 0002554c .word 0x0002554c
1838: 00025538 .word 0x00025538
183c: 00025560 .word 0x00025560
1840: 00012159 .word 0x00012159
00001844 <lv_disp_get_scr_act>:
* @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)
{
1844: b510 push {r4, lr}
1846: b082 sub sp, #8
if(!disp) disp = lv_disp_get_default();
1848: 2800 cmp r0, #0
184a: d002 beq.n 1852 <lv_disp_get_scr_act+0xe>
if(!disp) {
LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen");
return NULL;
}
return disp->act_scr;
184c: 6bc0 ldr r0, [r0, #60] ; 0x3c
}
184e: b002 add sp, #8
1850: bd10 pop {r4, pc}
if(!disp) disp = lv_disp_get_default();
1852: 4b07 ldr r3, [pc, #28] ; (1870 <lv_disp_get_scr_act+0x2c>)
1854: 4798 blx r3
if(!disp) {
1856: 2800 cmp r0, #0
1858: d1f8 bne.n 184c <lv_disp_get_scr_act+0x8>
LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen");
185a: 4b06 ldr r3, [pc, #24] ; (1874 <lv_disp_get_scr_act+0x30>)
185c: 9300 str r3, [sp, #0]
185e: 4b06 ldr r3, [pc, #24] ; (1878 <lv_disp_get_scr_act+0x34>)
1860: 222e movs r2, #46 ; 0x2e
1862: 4906 ldr r1, [pc, #24] ; (187c <lv_disp_get_scr_act+0x38>)
1864: 3002 adds r0, #2
1866: 4c06 ldr r4, [pc, #24] ; (1880 <lv_disp_get_scr_act+0x3c>)
1868: 47a0 blx r4
return NULL;
186a: 2000 movs r0, #0
186c: e7ef b.n 184e <lv_disp_get_scr_act+0xa>
186e: 46c0 nop ; (mov r8, r8)
1870: 00010d75 .word 0x00010d75
1874: 00025760 .word 0x00025760
1878: 00025670 .word 0x00025670
187c: 0002572c .word 0x0002572c
1880: 00012159 .word 0x00012159
00001884 <lv_disp_get_layer_top>:
* 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)
{
1884: b510 push {r4, lr}
1886: b082 sub sp, #8
if(!disp) disp = lv_disp_get_default();
1888: 2800 cmp r0, #0
188a: d002 beq.n 1892 <lv_disp_get_layer_top+0xe>
if(!disp) {
LV_LOG_WARN("lv_layer_top: no display registered to get its top layer");
return NULL;
}
return disp->top_layer;
188c: 6c00 ldr r0, [r0, #64] ; 0x40
}
188e: b002 add sp, #8
1890: bd10 pop {r4, pc}
if(!disp) disp = lv_disp_get_default();
1892: 4b07 ldr r3, [pc, #28] ; (18b0 <lv_disp_get_layer_top+0x2c>)
1894: 4798 blx r3
if(!disp) {
1896: 2800 cmp r0, #0
1898: d1f8 bne.n 188c <lv_disp_get_layer_top+0x8>
LV_LOG_WARN("lv_layer_top: no display registered to get its top layer");
189a: 4b06 ldr r3, [pc, #24] ; (18b4 <lv_disp_get_layer_top+0x30>)
189c: 9300 str r3, [sp, #0]
189e: 4b06 ldr r3, [pc, #24] ; (18b8 <lv_disp_get_layer_top+0x34>)
18a0: 224b movs r2, #75 ; 0x4b
18a2: 4906 ldr r1, [pc, #24] ; (18bc <lv_disp_get_layer_top+0x38>)
18a4: 3002 adds r0, #2
18a6: 4c06 ldr r4, [pc, #24] ; (18c0 <lv_disp_get_layer_top+0x3c>)
18a8: 47a0 blx r4
return NULL;
18aa: 2000 movs r0, #0
18ac: e7ef b.n 188e <lv_disp_get_layer_top+0xa>
18ae: 46c0 nop ; (mov r8, r8)
18b0: 00010d75 .word 0x00010d75
18b4: 000256f0 .word 0x000256f0
18b8: 00025684 .word 0x00025684
18bc: 0002572c .word 0x0002572c
18c0: 00012159 .word 0x00012159
000018c4 <lv_disp_get_layer_sys>:
* layer)
* @param disp pointer to display which sys. layer should be get. (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)
{
18c4: b510 push {r4, lr}
18c6: b082 sub sp, #8
if(!disp) disp = lv_disp_get_default();
18c8: 2800 cmp r0, #0
18ca: d002 beq.n 18d2 <lv_disp_get_layer_sys+0xe>
if(!disp) {
LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer");
return NULL;
}
return disp->sys_layer;
18cc: 6c40 ldr r0, [r0, #68] ; 0x44
}
18ce: b002 add sp, #8
18d0: bd10 pop {r4, pc}
if(!disp) disp = lv_disp_get_default();
18d2: 4b07 ldr r3, [pc, #28] ; (18f0 <lv_disp_get_layer_sys+0x2c>)
18d4: 4798 blx r3
if(!disp) {
18d6: 2800 cmp r0, #0
18d8: d1f8 bne.n 18cc <lv_disp_get_layer_sys+0x8>
LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer");
18da: 4b06 ldr r3, [pc, #24] ; (18f4 <lv_disp_get_layer_sys+0x30>)
18dc: 9300 str r3, [sp, #0]
18de: 4b06 ldr r3, [pc, #24] ; (18f8 <lv_disp_get_layer_sys+0x34>)
18e0: 225c movs r2, #92 ; 0x5c
18e2: 4906 ldr r1, [pc, #24] ; (18fc <lv_disp_get_layer_sys+0x38>)
18e4: 3002 adds r0, #2
18e6: 4c06 ldr r4, [pc, #24] ; (1900 <lv_disp_get_layer_sys+0x3c>)
18e8: 47a0 blx r4
return NULL;
18ea: 2000 movs r0, #0
18ec: e7ef b.n 18ce <lv_disp_get_layer_sys+0xa>
18ee: 46c0 nop ; (mov r8, r8)
18f0: 00010d75 .word 0x00010d75
18f4: 000256b4 .word 0x000256b4
18f8: 0002569c .word 0x0002569c
18fc: 0002572c .word 0x0002572c
1900: 00012159 .word 0x00012159
00001904 <obj_to_foreground>:
if(group->focus_cb) group->focus_cb(group);
}
static void obj_to_foreground(lv_obj_t * obj)
{
1904: b5f8 push {r3, r4, r5, r6, r7, lr}
/*Search for 'top' attribute*/
lv_obj_t * i = obj;
lv_obj_t * last_top = NULL;
while(i != NULL) {
1906: 2800 cmp r0, #0
1908: d011 beq.n 192e <obj_to_foreground+0x2a>
190a: 2500 movs r5, #0
if(i->top != 0) last_top = i;
190c: 2734 movs r7, #52 ; 0x34
190e: 2620 movs r6, #32
i = lv_obj_get_parent(i);
1910: 4c07 ldr r4, [pc, #28] ; (1930 <obj_to_foreground+0x2c>)
1912: e002 b.n 191a <obj_to_foreground+0x16>
1914: 47a0 blx r4
while(i != NULL) {
1916: 2800 cmp r0, #0
1918: d004 beq.n 1924 <obj_to_foreground+0x20>
if(i->top != 0) last_top = i;
191a: 5dc3 ldrb r3, [r0, r7]
191c: 421e tst r6, r3
191e: d0f9 beq.n 1914 <obj_to_foreground+0x10>
1920: 0005 movs r5, r0
1922: e7f7 b.n 1914 <obj_to_foreground+0x10>
}
if(last_top != NULL) {
1924: 2d00 cmp r5, #0
1926: d002 beq.n 192e <obj_to_foreground+0x2a>
/*Move the last_top object to the foreground*/
lv_obj_move_foreground(last_top);
1928: 0028 movs r0, r5
192a: 4b02 ldr r3, [pc, #8] ; (1934 <obj_to_foreground+0x30>)
192c: 4798 blx r3
}
}
192e: bdf8 pop {r3, r4, r5, r6, r7, pc}
1930: 000021a5 .word 0x000021a5
1934: 000028ed .word 0x000028ed
00001938 <focus_next_core>:
{
1938: b5f8 push {r3, r4, r5, r6, r7, lr}
193a: 46de mov lr, fp
193c: 4657 mov r7, sl
193e: 464e mov r6, r9
1940: 4645 mov r5, r8
1942: b5e0 push {r5, r6, r7, lr}
1944: 0006 movs r6, r0
1946: 468a mov sl, r1
1948: 4690 mov r8, r2
if(group->frozen) return;
194a: 7d03 ldrb r3, [r0, #20]
194c: 07db lsls r3, r3, #31
194e: d43c bmi.n 19ca <focus_next_core+0x92>
lv_obj_t ** obj_next = group->obj_focus;
1950: 68c4 ldr r4, [r0, #12]
bool can_begin = true;
1952: 2301 movs r3, #1
1954: 4699 mov r9, r3
lv_obj_t ** obj_sentinel = NULL;
1956: 2500 movs r5, #0
if(!lv_obj_get_hidden(*obj_next)) break;
1958: 4f32 ldr r7, [pc, #200] ; (1a24 <focus_next_core+0xec>)
if(group->wrap || obj_sentinel == NULL) {
195a: 330f adds r3, #15
195c: 469b mov fp, r3
195e: e015 b.n 198c <focus_next_core+0x54>
1960: 7d33 ldrb r3, [r6, #20]
1962: 465a mov r2, fp
1964: 421a tst r2, r3
1966: d101 bne.n 196c <focus_next_core+0x34>
1968: 2d00 cmp r5, #0
196a: d12e bne.n 19ca <focus_next_core+0x92>
if(!can_begin) return;
196c: 464b mov r3, r9
196e: 2b00 cmp r3, #0
1970: d02b beq.n 19ca <focus_next_core+0x92>
obj_next = begin(&group->obj_ll);
1972: 0030 movs r0, r6
1974: 47d0 blx sl
1976: 0004 movs r4, r0
if(obj_sentinel == NULL) {
1978: 2d00 cmp r5, #0
197a: d04c beq.n 1a16 <focus_next_core+0xde>
can_begin = false;
197c: 2300 movs r3, #0
197e: 4699 mov r9, r3
if(obj_next == NULL) continue;
1980: 2c00 cmp r4, #0
1982: d003 beq.n 198c <focus_next_core+0x54>
if(!lv_obj_get_hidden(*obj_next)) break;
1984: 6820 ldr r0, [r4, #0]
1986: 47b8 blx r7
1988: 2800 cmp r0, #0
198a: d00c beq.n 19a6 <focus_next_core+0x6e>
if(obj_next == NULL) {
198c: 2c00 cmp r4, #0
198e: d0e7 beq.n 1960 <focus_next_core+0x28>
if(obj_sentinel == NULL) {
1990: 2d00 cmp r5, #0
1992: d006 beq.n 19a2 <focus_next_core+0x6a>
obj_next = move(&group->obj_ll, obj_next);
1994: 0021 movs r1, r4
1996: 0030 movs r0, r6
1998: 47c0 blx r8
199a: 0004 movs r4, r0
if(obj_next == obj_sentinel) return;
199c: 42a8 cmp r0, r5
199e: d1ef bne.n 1980 <focus_next_core+0x48>
19a0: e013 b.n 19ca <focus_next_core+0x92>
19a2: 0025 movs r5, r4
19a4: e7f6 b.n 1994 <focus_next_core+0x5c>
if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/
19a6: 68f3 ldr r3, [r6, #12]
19a8: 42a3 cmp r3, r4
19aa: d00e beq.n 19ca <focus_next_core+0x92>
if(group->obj_focus) {
19ac: 2b00 cmp r3, #0
19ae: d016 beq.n 19de <focus_next_core+0xa6>
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
19b0: 6818 ldr r0, [r3, #0]
19b2: 69c3 ldr r3, [r0, #28]
19b4: 2200 movs r2, #0
19b6: 2117 movs r1, #23
19b8: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL);
19ba: 68f3 ldr r3, [r6, #12]
19bc: 6818 ldr r0, [r3, #0]
19be: 2200 movs r2, #0
19c0: 210e movs r1, #14
19c2: 4b19 ldr r3, [pc, #100] ; (1a28 <focus_next_core+0xf0>)
19c4: 4798 blx r3
if(res != LV_RES_OK) return;
19c6: 2801 cmp r0, #1
19c8: d005 beq.n 19d6 <focus_next_core+0x9e>
}
19ca: bc3c pop {r2, r3, r4, r5}
19cc: 4690 mov r8, r2
19ce: 4699 mov r9, r3
19d0: 46a2 mov sl, r4
19d2: 46ab mov fp, r5
19d4: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_obj_invalidate(*group->obj_focus);
19d6: 68f3 ldr r3, [r6, #12]
19d8: 6818 ldr r0, [r3, #0]
19da: 4b14 ldr r3, [pc, #80] ; (1a2c <focus_next_core+0xf4>)
19dc: 4798 blx r3
group->obj_focus = obj_next;
19de: 60f4 str r4, [r6, #12]
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
19e0: 6820 ldr r0, [r4, #0]
19e2: 69c3 ldr r3, [r0, #28]
19e4: 2200 movs r2, #0
19e6: 2116 movs r1, #22
19e8: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL);
19ea: 68f3 ldr r3, [r6, #12]
19ec: 6818 ldr r0, [r3, #0]
19ee: 2200 movs r2, #0
19f0: 210d movs r1, #13
19f2: 4b0d ldr r3, [pc, #52] ; (1a28 <focus_next_core+0xf0>)
19f4: 4798 blx r3
if(res != LV_RES_OK) return;
19f6: 2801 cmp r0, #1
19f8: d1e7 bne.n 19ca <focus_next_core+0x92>
obj_to_foreground(*group->obj_focus);
19fa: 68f3 ldr r3, [r6, #12]
19fc: 6818 ldr r0, [r3, #0]
19fe: 4b0c ldr r3, [pc, #48] ; (1a30 <focus_next_core+0xf8>)
1a00: 4798 blx r3
lv_obj_invalidate(*group->obj_focus);
1a02: 68f3 ldr r3, [r6, #12]
1a04: 6818 ldr r0, [r3, #0]
1a06: 4b09 ldr r3, [pc, #36] ; (1a2c <focus_next_core+0xf4>)
1a08: 4798 blx r3
if(group->focus_cb) group->focus_cb(group);
1a0a: 6933 ldr r3, [r6, #16]
1a0c: 2b00 cmp r3, #0
1a0e: d0dc beq.n 19ca <focus_next_core+0x92>
1a10: 0030 movs r0, r6
1a12: 4798 blx r3
1a14: e7d9 b.n 19ca <focus_next_core+0x92>
if(obj_sentinel == NULL) return; /*Group is empty*/
1a16: 2800 cmp r0, #0
1a18: d0d7 beq.n 19ca <focus_next_core+0x92>
obj_next = begin(&group->obj_ll);
1a1a: 0005 movs r5, r0
can_begin = false;
1a1c: 2300 movs r3, #0
1a1e: 4699 mov r9, r3
1a20: e7b0 b.n 1984 <focus_next_core+0x4c>
1a22: 46c0 nop ; (mov r8, r8)
1a24: 00002701 .word 0x00002701
1a28: 00001fdd .word 0x00001fdd
1a2c: 00002869 .word 0x00002869
1a30: 00001905 .word 0x00001905
00001a34 <_lv_group_init>:
{
1a34: b510 push {r4, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t));
1a36: 2118 movs r1, #24
1a38: 4801 ldr r0, [pc, #4] ; (1a40 <_lv_group_init+0xc>)
1a3a: 4b02 ldr r3, [pc, #8] ; (1a44 <_lv_group_init+0x10>)
1a3c: 4798 blx r3
}
1a3e: bd10 pop {r4, pc}
1a40: 20004e74 .word 0x20004e74
1a44: 00011dd1 .word 0x00011dd1
00001a48 <lv_group_focus_next>:
{
1a48: b510 push {r4, lr}
focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
1a4a: 4a02 ldr r2, [pc, #8] ; (1a54 <lv_group_focus_next+0xc>)
1a4c: 4902 ldr r1, [pc, #8] ; (1a58 <lv_group_focus_next+0x10>)
1a4e: 4b03 ldr r3, [pc, #12] ; (1a5c <lv_group_focus_next+0x14>)
1a50: 4798 blx r3
}
1a52: bd10 pop {r4, pc}
1a54: 00011e9d .word 0x00011e9d
1a58: 00011e85 .word 0x00011e85
1a5c: 00001939 .word 0x00001939
00001a60 <lv_group_focus_prev>:
{
1a60: b510 push {r4, lr}
focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
1a62: 4a02 ldr r2, [pc, #8] ; (1a6c <lv_group_focus_prev+0xc>)
1a64: 4902 ldr r1, [pc, #8] ; (1a70 <lv_group_focus_prev+0x10>)
1a66: 4b03 ldr r3, [pc, #12] ; (1a74 <lv_group_focus_prev+0x14>)
1a68: 4798 blx r3
}
1a6a: bd10 pop {r4, pc}
1a6c: 00011ec5 .word 0x00011ec5
1a70: 00011e91 .word 0x00011e91
1a74: 00001939 .word 0x00001939
00001a78 <lv_group_refocus>:
{
1a78: b570 push {r4, r5, r6, lr}
1a7a: 0004 movs r4, r0
uint8_t temp_wrap = g->wrap;
1a7c: 7d03 ldrb r3, [r0, #20]
1a7e: 06dd lsls r5, r3, #27
1a80: 0fed lsrs r5, r5, #31
g->wrap = 1;
1a82: 2210 movs r2, #16
1a84: 4313 orrs r3, r2
1a86: 7503 strb r3, [r0, #20]
if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT)
1a88: 071b lsls r3, r3, #28
1a8a: d508 bpl.n 1a9e <lv_group_refocus+0x26>
lv_group_focus_prev(g);
1a8c: 4b05 ldr r3, [pc, #20] ; (1aa4 <lv_group_refocus+0x2c>)
1a8e: 4798 blx r3
g->wrap = temp_wrap;
1a90: 012d lsls r5, r5, #4
1a92: 7d23 ldrb r3, [r4, #20]
1a94: 2210 movs r2, #16
1a96: 4393 bics r3, r2
1a98: 432b orrs r3, r5
1a9a: 7523 strb r3, [r4, #20]
}
1a9c: bd70 pop {r4, r5, r6, pc}
lv_group_focus_next(g);
1a9e: 4b02 ldr r3, [pc, #8] ; (1aa8 <lv_group_refocus+0x30>)
1aa0: 4798 blx r3
1aa2: e7f5 b.n 1a90 <lv_group_refocus+0x18>
1aa4: 00001a61 .word 0x00001a61
1aa8: 00001a49 .word 0x00001a49
00001aac <lv_group_add_obj>:
{
1aac: b5f0 push {r4, r5, r6, r7, lr}
1aae: b083 sub sp, #12
1ab0: 0005 movs r5, r0
1ab2: 000c movs r4, r1
if(group == NULL) return;
1ab4: 2800 cmp r0, #0
1ab6: d018 beq.n 1aea <lv_group_add_obj+0x3e>
_LV_LL_READ(group->obj_ll, obj_i) {
1ab8: 0006 movs r6, r0
1aba: 4b27 ldr r3, [pc, #156] ; (1b58 <lv_group_add_obj+0xac>)
1abc: 4798 blx r3
1abe: 2800 cmp r0, #0
1ac0: d015 beq.n 1aee <lv_group_add_obj+0x42>
if((*obj_i) == obj) {
1ac2: 6803 ldr r3, [r0, #0]
1ac4: 429c cmp r4, r3
1ac6: d008 beq.n 1ada <lv_group_add_obj+0x2e>
_LV_LL_READ(group->obj_ll, obj_i) {
1ac8: 4f24 ldr r7, [pc, #144] ; (1b5c <lv_group_add_obj+0xb0>)
1aca: 0001 movs r1, r0
1acc: 0030 movs r0, r6
1ace: 47b8 blx r7
1ad0: 2800 cmp r0, #0
1ad2: d00c beq.n 1aee <lv_group_add_obj+0x42>
if((*obj_i) == obj) {
1ad4: 6803 ldr r3, [r0, #0]
1ad6: 42a3 cmp r3, r4
1ad8: d1f7 bne.n 1aca <lv_group_add_obj+0x1e>
LV_LOG_INFO("lv_group_add_obj: the object is already added to this group");
1ada: 4b21 ldr r3, [pc, #132] ; (1b60 <lv_group_add_obj+0xb4>)
1adc: 9300 str r3, [sp, #0]
1ade: 4b21 ldr r3, [pc, #132] ; (1b64 <lv_group_add_obj+0xb8>)
1ae0: 2275 movs r2, #117 ; 0x75
1ae2: 4921 ldr r1, [pc, #132] ; (1b68 <lv_group_add_obj+0xbc>)
1ae4: 2001 movs r0, #1
1ae6: 4c21 ldr r4, [pc, #132] ; (1b6c <lv_group_add_obj+0xc0>)
1ae8: 47a0 blx r4
}
1aea: b003 add sp, #12
1aec: bdf0 pop {r4, r5, r6, r7, pc}
if(obj->group_p) {
1aee: 6ba3 ldr r3, [r4, #56] ; 0x38
1af0: 2b00 cmp r3, #0
1af2: d00f beq.n 1b14 <lv_group_add_obj+0x68>
if(lv_obj_is_focused(obj)) {
1af4: 0020 movs r0, r4
1af6: 4b1e ldr r3, [pc, #120] ; (1b70 <lv_group_add_obj+0xc4>)
1af8: 4798 blx r3
1afa: 2800 cmp r0, #0
1afc: d00a beq.n 1b14 <lv_group_add_obj+0x68>
lv_group_refocus(obj->group_p);
1afe: 6ba0 ldr r0, [r4, #56] ; 0x38
1b00: 4b1c ldr r3, [pc, #112] ; (1b74 <lv_group_add_obj+0xc8>)
1b02: 4798 blx r3
LV_LOG_INFO("lv_group_add_obj: assign object to an other group");
1b04: 4b1c ldr r3, [pc, #112] ; (1b78 <lv_group_add_obj+0xcc>)
1b06: 9300 str r3, [sp, #0]
1b08: 4b16 ldr r3, [pc, #88] ; (1b64 <lv_group_add_obj+0xb8>)
1b0a: 227f movs r2, #127 ; 0x7f
1b0c: 4916 ldr r1, [pc, #88] ; (1b68 <lv_group_add_obj+0xbc>)
1b0e: 2001 movs r0, #1
1b10: 4e16 ldr r6, [pc, #88] ; (1b6c <lv_group_add_obj+0xc0>)
1b12: 47b0 blx r6
obj->group_p = group;
1b14: 63a5 str r5, [r4, #56] ; 0x38
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1b16: 0028 movs r0, r5
1b18: 4b18 ldr r3, [pc, #96] ; (1b7c <lv_group_add_obj+0xd0>)
1b1a: 4798 blx r3
1b1c: 0006 movs r6, r0
LV_ASSERT_MEM(next);
1b1e: 4b18 ldr r3, [pc, #96] ; (1b80 <lv_group_add_obj+0xd4>)
1b20: 4798 blx r3
1b22: 2800 cmp r0, #0
1b24: d00b beq.n 1b3e <lv_group_add_obj+0x92>
if(next == NULL) return;
1b26: 2e00 cmp r6, #0
1b28: d0df beq.n 1aea <lv_group_add_obj+0x3e>
*next = obj;
1b2a: 6034 str r4, [r6, #0]
if(_lv_ll_get_head(&group->obj_ll) == next) {
1b2c: 0028 movs r0, r5
1b2e: 4b0a ldr r3, [pc, #40] ; (1b58 <lv_group_add_obj+0xac>)
1b30: 4798 blx r3
1b32: 4286 cmp r6, r0
1b34: d1d9 bne.n 1aea <lv_group_add_obj+0x3e>
lv_group_refocus(group);
1b36: 0028 movs r0, r5
1b38: 4b0e ldr r3, [pc, #56] ; (1b74 <lv_group_add_obj+0xc8>)
1b3a: 4798 blx r3
1b3c: e7d5 b.n 1aea <lv_group_add_obj+0x3e>
LV_ASSERT_MEM(next);
1b3e: 4b09 ldr r3, [pc, #36] ; (1b64 <lv_group_add_obj+0xb8>)
1b40: 9300 str r3, [sp, #0]
1b42: 2285 movs r2, #133 ; 0x85
1b44: 4908 ldr r1, [pc, #32] ; (1b68 <lv_group_add_obj+0xbc>)
1b46: 3003 adds r0, #3
1b48: 4c08 ldr r4, [pc, #32] ; (1b6c <lv_group_add_obj+0xc0>)
1b4a: 47a0 blx r4
1b4c: 0032 movs r2, r6
1b4e: 2300 movs r3, #0
1b50: 480c ldr r0, [pc, #48] ; (1b84 <lv_group_add_obj+0xd8>)
1b52: 490d ldr r1, [pc, #52] ; (1b88 <lv_group_add_obj+0xdc>)
1b54: 4788 blx r1
1b56: e7fe b.n 1b56 <lv_group_add_obj+0xaa>
1b58: 00011e85 .word 0x00011e85
1b5c: 00011e9d .word 0x00011e9d
1b60: 000257b0 .word 0x000257b0
1b64: 0002579c .word 0x0002579c
1b68: 00025820 .word 0x00025820
1b6c: 00012159 .word 0x00012159
1b70: 0000463d .word 0x0000463d
1b74: 00001a79 .word 0x00001a79
1b78: 000257ec .word 0x000257ec
1b7c: 00011e35 .word 0x00011e35
1b80: 000017ad .word 0x000017ad
1b84: 00025854 .word 0x00025854
1b88: 000017b5 .word 0x000017b5
00001b8c <lv_group_remove_obj>:
{
1b8c: b5f0 push {r4, r5, r6, r7, lr}
1b8e: b083 sub sp, #12
1b90: 0005 movs r5, r0
lv_group_t * g = obj->group_p;
1b92: 6b86 ldr r6, [r0, #56] ; 0x38
if(g == NULL) return;
1b94: 2e00 cmp r6, #0
1b96: d020 beq.n 1bda <lv_group_remove_obj+0x4e>
if(g->obj_focus == NULL) return; /*Just to be sure (Not possible if there is at least one object in the group)*/
1b98: 68f3 ldr r3, [r6, #12]
1b9a: 2b00 cmp r3, #0
1b9c: d01d beq.n 1bda <lv_group_remove_obj+0x4e>
if(*g->obj_focus == obj) {
1b9e: 681b ldr r3, [r3, #0]
1ba0: 4298 cmp r0, r3
1ba2: d01c beq.n 1bde <lv_group_remove_obj+0x52>
_LV_LL_READ(g->obj_ll, i) {
1ba4: 9601 str r6, [sp, #4]
1ba6: 0030 movs r0, r6
1ba8: 4b1e ldr r3, [pc, #120] ; (1c24 <lv_group_remove_obj+0x98>)
1baa: 4798 blx r3
1bac: 1e04 subs r4, r0, #0
1bae: d014 beq.n 1bda <lv_group_remove_obj+0x4e>
if(*i == obj) {
1bb0: 6803 ldr r3, [r0, #0]
1bb2: 429d cmp r5, r3
1bb4: d008 beq.n 1bc8 <lv_group_remove_obj+0x3c>
_LV_LL_READ(g->obj_ll, i) {
1bb6: 4f1c ldr r7, [pc, #112] ; (1c28 <lv_group_remove_obj+0x9c>)
1bb8: 0021 movs r1, r4
1bba: 9801 ldr r0, [sp, #4]
1bbc: 47b8 blx r7
1bbe: 1e04 subs r4, r0, #0
1bc0: d00b beq.n 1bda <lv_group_remove_obj+0x4e>
if(*i == obj) {
1bc2: 6823 ldr r3, [r4, #0]
1bc4: 429d cmp r5, r3
1bc6: d1f7 bne.n 1bb8 <lv_group_remove_obj+0x2c>
_lv_ll_remove(&g->obj_ll, i);
1bc8: 0021 movs r1, r4
1bca: 0030 movs r0, r6
1bcc: 4b17 ldr r3, [pc, #92] ; (1c2c <lv_group_remove_obj+0xa0>)
1bce: 4798 blx r3
lv_mem_free(i);
1bd0: 0020 movs r0, r4
1bd2: 4b17 ldr r3, [pc, #92] ; (1c30 <lv_group_remove_obj+0xa4>)
1bd4: 4798 blx r3
obj->group_p = NULL;
1bd6: 2300 movs r3, #0
1bd8: 63ab str r3, [r5, #56] ; 0x38
}
1bda: b003 add sp, #12
1bdc: bdf0 pop {r4, r5, r6, r7, pc}
if(g->frozen) g->frozen = 0;
1bde: 7d33 ldrb r3, [r6, #20]
1be0: 07db lsls r3, r3, #31
1be2: d503 bpl.n 1bec <lv_group_remove_obj+0x60>
1be4: 7d33 ldrb r3, [r6, #20]
1be6: 2201 movs r2, #1
1be8: 4393 bics r3, r2
1bea: 7533 strb r3, [r6, #20]
if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) {
1bec: 0030 movs r0, r6
1bee: 4b0d ldr r3, [pc, #52] ; (1c24 <lv_group_remove_obj+0x98>)
1bf0: 4798 blx r3
1bf2: 68f3 ldr r3, [r6, #12]
1bf4: 4298 cmp r0, r3
1bf6: d009 beq.n 1c0c <lv_group_remove_obj+0x80>
lv_group_refocus(g);
1bf8: 0030 movs r0, r6
1bfa: 4b0e ldr r3, [pc, #56] ; (1c34 <lv_group_remove_obj+0xa8>)
1bfc: 4798 blx r3
if(*g->obj_focus == obj) {
1bfe: 68f3 ldr r3, [r6, #12]
1c00: 681b ldr r3, [r3, #0]
1c02: 429d cmp r5, r3
1c04: d1ce bne.n 1ba4 <lv_group_remove_obj+0x18>
g->obj_focus = NULL;
1c06: 2300 movs r3, #0
1c08: 60f3 str r3, [r6, #12]
1c0a: e7cb b.n 1ba4 <lv_group_remove_obj+0x18>
if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) {
1c0c: 0030 movs r0, r6
1c0e: 4b0a ldr r3, [pc, #40] ; (1c38 <lv_group_remove_obj+0xac>)
1c10: 4798 blx r3
1c12: 68f3 ldr r3, [r6, #12]
1c14: 4298 cmp r0, r3
1c16: d1ef bne.n 1bf8 <lv_group_remove_obj+0x6c>
(*g->obj_focus)->signal_cb(*g->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
1c18: 6800 ldr r0, [r0, #0]
1c1a: 69c3 ldr r3, [r0, #28]
1c1c: 2200 movs r2, #0
1c1e: 2117 movs r1, #23
1c20: 4798 blx r3
1c22: e7ec b.n 1bfe <lv_group_remove_obj+0x72>
1c24: 00011e85 .word 0x00011e85
1c28: 00011e9d .word 0x00011e9d
1c2c: 00011f6d .word 0x00011f6d
1c30: 000123c9 .word 0x000123c9
1c34: 00001a79 .word 0x00001a79
1c38: 00011e91 .word 0x00011e91
00001c3c <lv_group_get_focused>:
if(!group) return NULL;
1c3c: 2800 cmp r0, #0
1c3e: d004 beq.n 1c4a <lv_group_get_focused+0xe>
if(group->obj_focus == NULL) return NULL;
1c40: 68c3 ldr r3, [r0, #12]
1c42: 2b00 cmp r3, #0
1c44: d003 beq.n 1c4e <lv_group_get_focused+0x12>
return *group->obj_focus;
1c46: 6818 ldr r0, [r3, #0]
}
1c48: 4770 bx lr
if(!group) return NULL;
1c4a: 2000 movs r0, #0
1c4c: e7fc b.n 1c48 <lv_group_get_focused+0xc>
if(group->obj_focus == NULL) return NULL;
1c4e: 2000 movs r0, #0
1c50: e7fa b.n 1c48 <lv_group_get_focused+0xc>
00001c52 <lv_group_get_editing>:
if(!group) return false;
1c52: 2800 cmp r0, #0
1c54: d003 beq.n 1c5e <lv_group_get_editing+0xc>
return group->editing ? true : false;
1c56: 7d00 ldrb r0, [r0, #20]
1c58: 0780 lsls r0, r0, #30
1c5a: 0fc0 lsrs r0, r0, #31
}
1c5c: 4770 bx lr
if(!group) return false;
1c5e: 2000 movs r0, #0
1c60: e7fc b.n 1c5c <lv_group_get_editing+0xa>
...
00001c64 <lv_indev_get_act>:
* @return pointer to the currently processed input device or NULL if no input device processing
* right now
*/
lv_indev_t * lv_indev_get_act(void)
{
return indev_act;
1c64: 4b01 ldr r3, [pc, #4] ; (1c6c <lv_indev_get_act+0x8>)
1c66: 6818 ldr r0, [r3, #0]
}
1c68: 4770 bx lr
1c6a: 46c0 nop ; (mov r8, r8)
1c6c: 200026e4 .word 0x200026e4
00001c70 <lv_indev_reset>:
* Reset one or all input devices
* @param indev pointer to an input device to reset or NULL to reset all of them
* @param obj pointer to an object which triggers the reset.
*/
void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj)
{
1c70: b5f8 push {r3, r4, r5, r6, r7, lr}
1c72: 000c movs r4, r1
if(indev) {
1c74: 2800 cmp r0, #0
1c76: d015 beq.n 1ca4 <lv_indev_reset+0x34>
indev->proc.reset_query = 1;
1c78: 2250 movs r2, #80 ; 0x50
1c7a: 5c83 ldrb r3, [r0, r2]
1c7c: 2102 movs r1, #2
1c7e: 430b orrs r3, r1
1c80: 5483 strb r3, [r0, r2]
if(indev_act == indev) indev_obj_act = NULL;
1c82: 4b18 ldr r3, [pc, #96] ; (1ce4 <lv_indev_reset+0x74>)
1c84: 681b ldr r3, [r3, #0]
1c86: 4298 cmp r0, r3
1c88: d005 beq.n 1c96 <lv_indev_reset+0x26>
if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) {
1c8a: 2c00 cmp r4, #0
1c8c: d007 beq.n 1c9e <lv_indev_reset+0x2e>
1c8e: 6bc3 ldr r3, [r0, #60] ; 0x3c
1c90: 429c cmp r4, r3
1c92: d004 beq.n 1c9e <lv_indev_reset+0x2e>
i->proc.types.pointer.last_pressed = NULL;
}
i = lv_indev_get_next(i);
}
}
}
1c94: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(indev_act == indev) indev_obj_act = NULL;
1c96: 2200 movs r2, #0
1c98: 4b13 ldr r3, [pc, #76] ; (1ce8 <lv_indev_reset+0x78>)
1c9a: 601a str r2, [r3, #0]
1c9c: e7f5 b.n 1c8a <lv_indev_reset+0x1a>
indev->proc.types.pointer.last_pressed = NULL;
1c9e: 2300 movs r3, #0
1ca0: 63c3 str r3, [r0, #60] ; 0x3c
1ca2: e7f7 b.n 1c94 <lv_indev_reset+0x24>
lv_indev_t * i = lv_indev_get_next(NULL);
1ca4: 2000 movs r0, #0
1ca6: 4b11 ldr r3, [pc, #68] ; (1cec <lv_indev_reset+0x7c>)
1ca8: 4798 blx r3
while(i) {
1caa: 2800 cmp r0, #0
1cac: d0f2 beq.n 1c94 <lv_indev_reset+0x24>
if(indev_act == i) indev_obj_act = NULL;
1cae: 4f0d ldr r7, [pc, #52] ; (1ce4 <lv_indev_reset+0x74>)
1cb0: 4d0d ldr r5, [pc, #52] ; (1ce8 <lv_indev_reset+0x78>)
i = lv_indev_get_next(i);
1cb2: 4e0e ldr r6, [pc, #56] ; (1cec <lv_indev_reset+0x7c>)
1cb4: e007 b.n 1cc6 <lv_indev_reset+0x56>
if(indev_act == i) indev_obj_act = NULL;
1cb6: 2300 movs r3, #0
1cb8: 602b str r3, [r5, #0]
1cba: e00c b.n 1cd6 <lv_indev_reset+0x66>
i->proc.types.pointer.last_pressed = NULL;
1cbc: 2300 movs r3, #0
1cbe: 63c3 str r3, [r0, #60] ; 0x3c
i = lv_indev_get_next(i);
1cc0: 47b0 blx r6
while(i) {
1cc2: 2800 cmp r0, #0
1cc4: d0e6 beq.n 1c94 <lv_indev_reset+0x24>
i->proc.reset_query = 1;
1cc6: 2250 movs r2, #80 ; 0x50
1cc8: 5c83 ldrb r3, [r0, r2]
1cca: 2102 movs r1, #2
1ccc: 430b orrs r3, r1
1cce: 5483 strb r3, [r0, r2]
if(indev_act == i) indev_obj_act = NULL;
1cd0: 683b ldr r3, [r7, #0]
1cd2: 4283 cmp r3, r0
1cd4: d0ef beq.n 1cb6 <lv_indev_reset+0x46>
if(obj == NULL || i->proc.types.pointer.last_pressed == obj) {
1cd6: 2c00 cmp r4, #0
1cd8: d0f0 beq.n 1cbc <lv_indev_reset+0x4c>
1cda: 6bc3 ldr r3, [r0, #60] ; 0x3c
1cdc: 429c cmp r4, r3
1cde: d1ef bne.n 1cc0 <lv_indev_reset+0x50>
1ce0: e7ec b.n 1cbc <lv_indev_reset+0x4c>
1ce2: 46c0 nop ; (mov r8, r8)
1ce4: 200026e4 .word 0x200026e4
1ce8: 200026e8 .word 0x200026e8
1cec: 00010eb9 .word 0x00010eb9
00001cf0 <_lv_indev_init>:
{
1cf0: b510 push {r4, lr}
lv_indev_reset(NULL, NULL); /*Reset all input devices*/
1cf2: 2100 movs r1, #0
1cf4: 2000 movs r0, #0
1cf6: 4b01 ldr r3, [pc, #4] ; (1cfc <_lv_indev_init+0xc>)
1cf8: 4798 blx r3
}
1cfa: bd10 pop {r4, pc}
1cfc: 00001c71 .word 0x00001c71
00001d00 <lv_indev_get_obj_act>:
* Gets a pointer to the currently active object in the currently processed input device.
* @return pointer to currently active object or NULL if no active object
*/
lv_obj_t * lv_indev_get_obj_act(void)
{
return indev_obj_act;
1d00: 4b01 ldr r3, [pc, #4] ; (1d08 <lv_indev_get_obj_act+0x8>)
1d02: 6818 ldr r0, [r3, #0]
}
1d04: 4770 bx lr
1d06: 46c0 nop ; (mov r8, r8)
1d08: 200026e8 .word 0x200026e8
00001d0c <refresh_children_position>:
* @param obj pointer to an object which children will be repositioned
* @param x_diff x coordinate shift
* @param y_diff y coordinate shift
*/
static void refresh_children_position(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff)
{
1d0c: b5f0 push {r4, r5, r6, r7, lr}
1d0e: b085 sub sp, #20
1d10: 000d movs r5, r1
1d12: 9102 str r1, [sp, #8]
1d14: 0016 movs r6, r2
1d16: 9203 str r2, [sp, #12]
lv_obj_t * i;
_LV_LL_READ(obj->child_ll, i) {
1d18: 1d03 adds r3, r0, #4
1d1a: 9301 str r3, [sp, #4]
1d1c: 0018 movs r0, r3
1d1e: 4b0f ldr r3, [pc, #60] ; (1d5c <refresh_children_position+0x50>)
1d20: 4798 blx r3
1d22: 1e04 subs r4, r0, #0
1d24: d018 beq.n 1d58 <refresh_children_position+0x4c>
i->coords.x1 += x_diff;
1d26: b2ad uxth r5, r5
i->coords.y1 += y_diff;
1d28: b2b7 uxth r7, r6
_LV_LL_READ(obj->child_ll, i) {
1d2a: 4e0d ldr r6, [pc, #52] ; (1d60 <refresh_children_position+0x54>)
i->coords.x1 += x_diff;
1d2c: 8a23 ldrh r3, [r4, #16]
1d2e: 18eb adds r3, r5, r3
1d30: 8223 strh r3, [r4, #16]
i->coords.y1 += y_diff;
1d32: 8a63 ldrh r3, [r4, #18]
1d34: 18fb adds r3, r7, r3
1d36: 8263 strh r3, [r4, #18]
i->coords.x2 += x_diff;
1d38: 8aa3 ldrh r3, [r4, #20]
1d3a: 18eb adds r3, r5, r3
1d3c: 82a3 strh r3, [r4, #20]
i->coords.y2 += y_diff;
1d3e: 8ae3 ldrh r3, [r4, #22]
1d40: 18fb adds r3, r7, r3
1d42: 82e3 strh r3, [r4, #22]
refresh_children_position(i, x_diff, y_diff);
1d44: 9a03 ldr r2, [sp, #12]
1d46: 9902 ldr r1, [sp, #8]
1d48: 0020 movs r0, r4
1d4a: f7ff ffdf bl 1d0c <refresh_children_position>
_LV_LL_READ(obj->child_ll, i) {
1d4e: 0021 movs r1, r4
1d50: 9801 ldr r0, [sp, #4]
1d52: 47b0 blx r6
1d54: 1e04 subs r4, r0, #0
1d56: d1e9 bne.n 1d2c <refresh_children_position+0x20>
}
}
1d58: b005 add sp, #20
1d5a: bdf0 pop {r4, r5, r6, r7, pc}
1d5c: 00011e85 .word 0x00011e85
1d60: 00011e9d .word 0x00011e9d
00001d64 <lv_init>:
{
1d64: b530 push {r4, r5, lr}
1d66: b085 sub sp, #20
if(lv_initialized) {
1d68: 4b21 ldr r3, [pc, #132] ; (1df0 <lv_init+0x8c>)
1d6a: 781b ldrb r3, [r3, #0]
1d6c: 2b00 cmp r3, #0
1d6e: d136 bne.n 1dde <lv_init+0x7a>
_lv_mem_init();
1d70: 4b20 ldr r3, [pc, #128] ; (1df4 <lv_init+0x90>)
1d72: 4798 blx r3
_lv_task_core_init();
1d74: 4b20 ldr r3, [pc, #128] ; (1df8 <lv_init+0x94>)
1d76: 4798 blx r3
_lv_fs_init();
1d78: 4b20 ldr r3, [pc, #128] ; (1dfc <lv_init+0x98>)
1d7a: 4798 blx r3
_lv_anim_core_init();
1d7c: 4b20 ldr r3, [pc, #128] ; (1e00 <lv_init+0x9c>)
1d7e: 4798 blx r3
_lv_group_init();
1d80: 4b20 ldr r3, [pc, #128] ; (1e04 <lv_init+0xa0>)
1d82: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
1d84: 2110 movs r1, #16
1d86: 4820 ldr r0, [pc, #128] ; (1e08 <lv_init+0xa4>)
1d88: 4c20 ldr r4, [pc, #128] ; (1e0c <lv_init+0xa8>)
1d8a: 47a0 blx r4
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
1d8c: 4b20 ldr r3, [pc, #128] ; (1e10 <lv_init+0xac>)
1d8e: 9302 str r3, [sp, #8]
1d90: 9301 str r3, [sp, #4]
1d92: 9300 str r3, [sp, #0]
1d94: 2202 movs r2, #2
1d96: 211f movs r1, #31
1d98: 481e ldr r0, [pc, #120] ; (1e14 <lv_init+0xb0>)
1d9a: 8800 ldrh r0, [r0, #0]
1d9c: 4d1e ldr r5, [pc, #120] ; (1e18 <lv_init+0xb4>)
1d9e: 47a8 blx r5
lv_theme_set_act(th);
1da0: 4b1e ldr r3, [pc, #120] ; (1e1c <lv_init+0xb8>)
1da2: 4798 blx r3
_lv_refr_init();
1da4: 4b1e ldr r3, [pc, #120] ; (1e20 <lv_init+0xbc>)
1da6: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t));
1da8: 21b8 movs r1, #184 ; 0xb8
1daa: 0049 lsls r1, r1, #1
1dac: 481d ldr r0, [pc, #116] ; (1e24 <lv_init+0xc0>)
1dae: 47a0 blx r4
_lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t));
1db0: 2160 movs r1, #96 ; 0x60
1db2: 481d ldr r0, [pc, #116] ; (1e28 <lv_init+0xc4>)
1db4: 47a0 blx r4
_lv_indev_init();
1db6: 4b1d ldr r3, [pc, #116] ; (1e2c <lv_init+0xc8>)
1db8: 4798 blx r3
_lv_img_decoder_init();
1dba: 4b1d ldr r3, [pc, #116] ; (1e30 <lv_init+0xcc>)
1dbc: 4798 blx r3
lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE);
1dbe: 2001 movs r0, #1
1dc0: 4b1c ldr r3, [pc, #112] ; (1e34 <lv_init+0xd0>)
1dc2: 4798 blx r3
lv_initialized = true;
1dc4: 2201 movs r2, #1
1dc6: 4b0a ldr r3, [pc, #40] ; (1df0 <lv_init+0x8c>)
1dc8: 701a strb r2, [r3, #0]
LV_LOG_INFO("lv_init ready");
1dca: 4b1b ldr r3, [pc, #108] ; (1e38 <lv_init+0xd4>)
1dcc: 9300 str r3, [sp, #0]
1dce: 4b1b ldr r3, [pc, #108] ; (1e3c <lv_init+0xd8>)
1dd0: 32a1 adds r2, #161 ; 0xa1
1dd2: 491b ldr r1, [pc, #108] ; (1e40 <lv_init+0xdc>)
1dd4: 2001 movs r0, #1
1dd6: 4c1b ldr r4, [pc, #108] ; (1e44 <lv_init+0xe0>)
1dd8: 47a0 blx r4
}
1dda: b005 add sp, #20
1ddc: bd30 pop {r4, r5, pc}
LV_LOG_WARN("lv_init: already inited");
1dde: 4b1a ldr r3, [pc, #104] ; (1e48 <lv_init+0xe4>)
1de0: 9300 str r3, [sp, #0]
1de2: 4b16 ldr r3, [pc, #88] ; (1e3c <lv_init+0xd8>)
1de4: 2278 movs r2, #120 ; 0x78
1de6: 4916 ldr r1, [pc, #88] ; (1e40 <lv_init+0xdc>)
1de8: 2002 movs r0, #2
1dea: 4c16 ldr r4, [pc, #88] ; (1e44 <lv_init+0xe0>)
1dec: 47a0 blx r4
return;
1dee: e7f4 b.n 1dda <lv_init+0x76>
1df0: 200026f4 .word 0x200026f4
1df4: 000122b5 .word 0x000122b5
1df8: 000134a5 .word 0x000134a5
1dfc: 00011b45 .word 0x00011b45
1e00: 00011165 .word 0x00011165
1e04: 00001a35 .word 0x00001a35
1e08: 20004dc4 .word 0x20004dc4
1e0c: 00011dd1 .word 0x00011dd1
1e10: 20000030 .word 0x20000030
1e14: 00025862 .word 0x00025862
1e18: 0001690d .word 0x0001690d
1e1c: 000140cd .word 0x000140cd
1e20: 0000547d .word 0x0000547d
1e24: 20004d20 .word 0x20004d20
1e28: 20004d14 .word 0x20004d14
1e2c: 00001cf1 .word 0x00001cf1
1e30: 0000fded .word 0x0000fded
1e34: 0000f19d .word 0x0000f19d
1e38: 00025c74 .word 0x00025c74
1e3c: 000258bc .word 0x000258bc
1e40: 00025c2c .word 0x00025c2c
1e44: 00012159 .word 0x00012159
1e48: 00025c5c .word 0x00025c5c
00001e4c <lv_obj_set_adv_hittest>:
{
1e4c: b530 push {r4, r5, lr}
1e4e: b083 sub sp, #12
1e50: 0004 movs r4, r0
1e52: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1e54: 4b0c ldr r3, [pc, #48] ; (1e88 <lv_obj_set_adv_hittest+0x3c>)
1e56: 4798 blx r3
1e58: 2800 cmp r0, #0
1e5a: d008 beq.n 1e6e <lv_obj_set_adv_hittest+0x22>
obj->adv_hittest = en == false ? 0 : 1;
1e5c: 2234 movs r2, #52 ; 0x34
1e5e: 01ed lsls r5, r5, #7
1e60: 5ca1 ldrb r1, [r4, r2]
1e62: 237f movs r3, #127 ; 0x7f
1e64: 400b ands r3, r1
1e66: 432b orrs r3, r5
1e68: 54a3 strb r3, [r4, r2]
}
1e6a: b003 add sp, #12
1e6c: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1e6e: 4b07 ldr r3, [pc, #28] ; (1e8c <lv_obj_set_adv_hittest+0x40>)
1e70: 9300 str r3, [sp, #0]
1e72: 4a07 ldr r2, [pc, #28] ; (1e90 <lv_obj_set_adv_hittest+0x44>)
1e74: 4907 ldr r1, [pc, #28] ; (1e94 <lv_obj_set_adv_hittest+0x48>)
1e76: 3003 adds r0, #3
1e78: 4d07 ldr r5, [pc, #28] ; (1e98 <lv_obj_set_adv_hittest+0x4c>)
1e7a: 47a8 blx r5
1e7c: 0022 movs r2, r4
1e7e: 2300 movs r3, #0
1e80: 4806 ldr r0, [pc, #24] ; (1e9c <lv_obj_set_adv_hittest+0x50>)
1e82: 4907 ldr r1, [pc, #28] ; (1ea0 <lv_obj_set_adv_hittest+0x54>)
1e84: 4788 blx r1
1e86: e7fe b.n 1e86 <lv_obj_set_adv_hittest+0x3a>
1e88: 000017ad .word 0x000017ad
1e8c: 000259dc .word 0x000259dc
1e90: 00000594 .word 0x00000594
1e94: 00025c2c .word 0x00025c2c
1e98: 00012159 .word 0x00012159
1e9c: 00025d20 .word 0x00025d20
1ea0: 000017b5 .word 0x000017b5
00001ea4 <lv_obj_set_click>:
{
1ea4: b530 push {r4, r5, lr}
1ea6: b083 sub sp, #12
1ea8: 0004 movs r4, r0
1eaa: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1eac: 4b0d ldr r3, [pc, #52] ; (1ee4 <lv_obj_set_click+0x40>)
1eae: 4798 blx r3
1eb0: 2800 cmp r0, #0
1eb2: d009 beq.n 1ec8 <lv_obj_set_click+0x24>
obj->click = (en == true ? 1 : 0);
1eb4: 2234 movs r2, #52 ; 0x34
1eb6: 2301 movs r3, #1
1eb8: 401d ands r5, r3
1eba: 5ca3 ldrb r3, [r4, r2]
1ebc: 2001 movs r0, #1
1ebe: 4383 bics r3, r0
1ec0: 432b orrs r3, r5
1ec2: 54a3 strb r3, [r4, r2]
}
1ec4: b003 add sp, #12
1ec6: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1ec8: 4b07 ldr r3, [pc, #28] ; (1ee8 <lv_obj_set_click+0x44>)
1eca: 9300 str r3, [sp, #0]
1ecc: 22b4 movs r2, #180 ; 0xb4
1ece: 00d2 lsls r2, r2, #3
1ed0: 4906 ldr r1, [pc, #24] ; (1eec <lv_obj_set_click+0x48>)
1ed2: 3003 adds r0, #3
1ed4: 4d06 ldr r5, [pc, #24] ; (1ef0 <lv_obj_set_click+0x4c>)
1ed6: 47a8 blx r5
1ed8: 0022 movs r2, r4
1eda: 2300 movs r3, #0
1edc: 4805 ldr r0, [pc, #20] ; (1ef4 <lv_obj_set_click+0x50>)
1ede: 4906 ldr r1, [pc, #24] ; (1ef8 <lv_obj_set_click+0x54>)
1ee0: 4788 blx r1
1ee2: e7fe b.n 1ee2 <lv_obj_set_click+0x3e>
1ee4: 000017ad .word 0x000017ad
1ee8: 000259f4 .word 0x000259f4
1eec: 00025c2c .word 0x00025c2c
1ef0: 00012159 .word 0x00012159
1ef4: 00025d20 .word 0x00025d20
1ef8: 000017b5 .word 0x000017b5
00001efc <lv_event_send_func>:
{
1efc: b5f0 push {r4, r5, r6, r7, lr}
1efe: b089 sub sp, #36 ; 0x24
1f00: 0007 movs r7, r0
1f02: 000c movs r4, r1
1f04: 9203 str r2, [sp, #12]
1f06: 001e movs r6, r3
if(obj != NULL) {
1f08: 2900 cmp r1, #0
1f0a: d004 beq.n 1f16 <lv_event_send_func+0x1a>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1f0c: 0008 movs r0, r1
1f0e: 4b29 ldr r3, [pc, #164] ; (1fb4 <lv_event_send_func+0xb8>)
1f10: 4798 blx r3
1f12: 2800 cmp r0, #0
1f14: d03c beq.n 1f90 <lv_event_send_func+0x94>
event_temp_data.obj = obj;
1f16: ab05 add r3, sp, #20
1f18: 9405 str r4, [sp, #20]
event_temp_data.deleted = false;
1f1a: 2200 movs r2, #0
1f1c: 711a strb r2, [r3, #4]
event_temp_data.prev = NULL;
1f1e: 9207 str r2, [sp, #28]
if(event_temp_data_head) {
1f20: 4b25 ldr r3, [pc, #148] ; (1fb8 <lv_event_send_func+0xbc>)
1f22: 681b ldr r3, [r3, #0]
1f24: 2b00 cmp r3, #0
1f26: d000 beq.n 1f2a <lv_event_send_func+0x2e>
event_temp_data.prev = event_temp_data_head;
1f28: 9307 str r3, [sp, #28]
event_temp_data_head = &event_temp_data;
1f2a: aa05 add r2, sp, #20
1f2c: 4b22 ldr r3, [pc, #136] ; (1fb8 <lv_event_send_func+0xbc>)
1f2e: 601a str r2, [r3, #0]
const void * event_act_data_save = event_act_data;
1f30: 4b22 ldr r3, [pc, #136] ; (1fbc <lv_event_send_func+0xc0>)
1f32: 681d ldr r5, [r3, #0]
event_act_data = data;
1f34: 601e str r6, [r3, #0]
lv_indev_t * indev_act = lv_indev_get_act();
1f36: 4b22 ldr r3, [pc, #136] ; (1fc0 <lv_event_send_func+0xc4>)
1f38: 4798 blx r3
if(indev_act) {
1f3a: 2800 cmp r0, #0
1f3c: d004 beq.n 1f48 <lv_event_send_func+0x4c>
if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event);
1f3e: 6883 ldr r3, [r0, #8]
1f40: 2b00 cmp r3, #0
1f42: d001 beq.n 1f48 <lv_event_send_func+0x4c>
1f44: 9903 ldr r1, [sp, #12]
1f46: 4798 blx r3
if(event_xcb) event_xcb(obj, event);
1f48: 2f00 cmp r7, #0
1f4a: d002 beq.n 1f52 <lv_event_send_func+0x56>
1f4c: 9903 ldr r1, [sp, #12]
1f4e: 0020 movs r0, r4
1f50: 47b8 blx r7
event_act_data = event_act_data_save;
1f52: 4b1a ldr r3, [pc, #104] ; (1fbc <lv_event_send_func+0xc0>)
1f54: 601d str r5, [r3, #0]
event_temp_data_head = event_temp_data_head->prev;
1f56: 4b18 ldr r3, [pc, #96] ; (1fb8 <lv_event_send_func+0xbc>)
1f58: 681a ldr r2, [r3, #0]
1f5a: 6892 ldr r2, [r2, #8]
1f5c: 601a str r2, [r3, #0]
if(event_temp_data.deleted) {
1f5e: ab05 add r3, sp, #20
1f60: 791b ldrb r3, [r3, #4]
return LV_RES_INV;
1f62: 2000 movs r0, #0
if(event_temp_data.deleted) {
1f64: 2b00 cmp r3, #0
1f66: d111 bne.n 1f8c <lv_event_send_func+0x90>
if(obj) {
1f68: 2c00 cmp r4, #0
1f6a: d01f beq.n 1fac <lv_event_send_func+0xb0>
if(obj->parent_event && obj->parent) {
1f6c: 3334 adds r3, #52 ; 0x34
1f6e: 5ce3 ldrb r3, [r4, r3]
return LV_RES_OK;
1f70: 3001 adds r0, #1
if(obj->parent_event && obj->parent) {
1f72: 065b lsls r3, r3, #25
1f74: d50a bpl.n 1f8c <lv_event_send_func+0x90>
1f76: 6820 ldr r0, [r4, #0]
1f78: 2800 cmp r0, #0
1f7a: d019 beq.n 1fb0 <lv_event_send_func+0xb4>
lv_res_t res = lv_event_send(obj->parent, event, data);
1f7c: 0032 movs r2, r6
1f7e: 9903 ldr r1, [sp, #12]
1f80: 4b10 ldr r3, [pc, #64] ; (1fc4 <lv_event_send_func+0xc8>)
1f82: 4798 blx r3
if(res != LV_RES_OK) {
1f84: 3801 subs r0, #1
1f86: 4242 negs r2, r0
1f88: 4142 adcs r2, r0
return LV_RES_INV;
1f8a: b2d0 uxtb r0, r2
}
1f8c: b009 add sp, #36 ; 0x24
1f8e: bdf0 pop {r4, r5, r6, r7, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1f90: 4b0d ldr r3, [pc, #52] ; (1fc8 <lv_event_send_func+0xcc>)
1f92: 9300 str r3, [sp, #0]
1f94: 22db movs r2, #219 ; 0xdb
1f96: 00d2 lsls r2, r2, #3
1f98: 490c ldr r1, [pc, #48] ; (1fcc <lv_event_send_func+0xd0>)
1f9a: 3003 adds r0, #3
1f9c: 4d0c ldr r5, [pc, #48] ; (1fd0 <lv_event_send_func+0xd4>)
1f9e: 47a8 blx r5
1fa0: 0022 movs r2, r4
1fa2: 2300 movs r3, #0
1fa4: 480b ldr r0, [pc, #44] ; (1fd4 <lv_event_send_func+0xd8>)
1fa6: 490c ldr r1, [pc, #48] ; (1fd8 <lv_event_send_func+0xdc>)
1fa8: 4788 blx r1
1faa: e7fe b.n 1faa <lv_event_send_func+0xae>
return LV_RES_OK;
1fac: 2001 movs r0, #1
1fae: e7ed b.n 1f8c <lv_event_send_func+0x90>
1fb0: 2001 movs r0, #1
1fb2: e7eb b.n 1f8c <lv_event_send_func+0x90>
1fb4: 000017ad .word 0x000017ad
1fb8: 200026f0 .word 0x200026f0
1fbc: 200026ec .word 0x200026ec
1fc0: 00001c65 .word 0x00001c65
1fc4: 00001fdd .word 0x00001fdd
1fc8: 00025a54 .word 0x00025a54
1fcc: 00025c2c .word 0x00025c2c
1fd0: 00012159 .word 0x00012159
1fd4: 00025d20 .word 0x00025d20
1fd8: 000017b5 .word 0x000017b5
00001fdc <lv_event_send>:
{
1fdc: b570 push {r4, r5, r6, lr}
1fde: b082 sub sp, #8
1fe0: 0004 movs r4, r0
1fe2: 000d movs r5, r1
1fe4: 0016 movs r6, r2
if(obj == NULL) return LV_RES_OK;
1fe6: 2800 cmp r0, #0
1fe8: d018 beq.n 201c <STACK_SIZE+0x1c>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1fea: 4b0d ldr r3, [pc, #52] ; (2020 <STACK_SIZE+0x20>)
1fec: 4798 blx r3
1fee: 2800 cmp r0, #0
1ff0: d10c bne.n 200c <STACK_SIZE+0xc>
1ff2: 4b0c ldr r3, [pc, #48] ; (2024 <STACK_SIZE+0x24>)
1ff4: 9300 str r3, [sp, #0]
1ff6: 4a0c ldr r2, [pc, #48] ; (2028 <STACK_SIZE+0x28>)
1ff8: 490c ldr r1, [pc, #48] ; (202c <STACK_SIZE+0x2c>)
1ffa: 3003 adds r0, #3
1ffc: 4d0c ldr r5, [pc, #48] ; (2030 <STACK_SIZE+0x30>)
1ffe: 47a8 blx r5
2000: 0022 movs r2, r4
2002: 2300 movs r3, #0
2004: 480b ldr r0, [pc, #44] ; (2034 <STACK_SIZE+0x34>)
2006: 490c ldr r1, [pc, #48] ; (2038 <STACK_SIZE+0x38>)
2008: 4788 blx r1
200a: e7fe b.n 200a <STACK_SIZE+0xa>
res = lv_event_send_func(obj->event_cb, obj, event, data);
200c: 69a0 ldr r0, [r4, #24]
200e: 0033 movs r3, r6
2010: 002a movs r2, r5
2012: 0021 movs r1, r4
2014: 4c09 ldr r4, [pc, #36] ; (203c <STACK_SIZE+0x3c>)
2016: 47a0 blx r4
}
2018: b002 add sp, #8
201a: bd70 pop {r4, r5, r6, pc}
if(obj == NULL) return LV_RES_OK;
201c: 2001 movs r0, #1
201e: e7fb b.n 2018 <STACK_SIZE+0x18>
2020: 000017ad .word 0x000017ad
2024: 00025a44 .word 0x00025a44
2028: 000006c4 .word 0x000006c4
202c: 00025c2c .word 0x00025c2c
2030: 00012159 .word 0x00012159
2034: 00025d20 .word 0x00025d20
2038: 000017b5 .word 0x000017b5
203c: 00001efd .word 0x00001efd
00002040 <lv_obj_set_signal_cb>:
{
2040: b530 push {r4, r5, lr}
2042: b083 sub sp, #12
2044: 0004 movs r4, r0
2046: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2048: 4b09 ldr r3, [pc, #36] ; (2070 <lv_obj_set_signal_cb+0x30>)
204a: 4798 blx r3
204c: 2800 cmp r0, #0
204e: d002 beq.n 2056 <lv_obj_set_signal_cb+0x16>
obj->signal_cb = signal_cb;
2050: 61e5 str r5, [r4, #28]
}
2052: b003 add sp, #12
2054: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2056: 4b07 ldr r3, [pc, #28] ; (2074 <lv_obj_set_signal_cb+0x34>)
2058: 9300 str r3, [sp, #0]
205a: 4a07 ldr r2, [pc, #28] ; (2078 <lv_obj_set_signal_cb+0x38>)
205c: 4907 ldr r1, [pc, #28] ; (207c <lv_obj_set_signal_cb+0x3c>)
205e: 3003 adds r0, #3
2060: 4d07 ldr r5, [pc, #28] ; (2080 <lv_obj_set_signal_cb+0x40>)
2062: 47a8 blx r5
2064: 0022 movs r2, r4
2066: 2300 movs r3, #0
2068: 4806 ldr r0, [pc, #24] ; (2084 <lv_obj_set_signal_cb+0x44>)
206a: 4907 ldr r1, [pc, #28] ; (2088 <lv_obj_set_signal_cb+0x48>)
206c: 4788 blx r1
206e: e7fe b.n 206e <lv_obj_set_signal_cb+0x2e>
2070: 000017ad .word 0x000017ad
2074: 00025a68 .word 0x00025a68
2078: 0000071b .word 0x0000071b
207c: 00025c2c .word 0x00025c2c
2080: 00012159 .word 0x00012159
2084: 00025d20 .word 0x00025d20
2088: 000017b5 .word 0x000017b5
0000208c <lv_signal_send>:
{
208c: b510 push {r4, lr}
if(obj == NULL) return LV_RES_OK;
208e: 2800 cmp r0, #0
2090: d004 beq.n 209c <lv_signal_send+0x10>
if(obj->signal_cb) res = obj->signal_cb(obj, signal, param);
2092: 69c3 ldr r3, [r0, #28]
2094: 2b00 cmp r3, #0
2096: d003 beq.n 20a0 <lv_signal_send+0x14>
2098: 4798 blx r3
}
209a: bd10 pop {r4, pc}
if(obj == NULL) return LV_RES_OK;
209c: 2001 movs r0, #1
209e: e7fc b.n 209a <lv_signal_send+0xe>
lv_res_t res = LV_RES_OK;
20a0: 2001 movs r0, #1
20a2: e7fa b.n 209a <lv_signal_send+0xe>
000020a4 <lv_obj_set_design_cb>:
{
20a4: b530 push {r4, r5, lr}
20a6: b083 sub sp, #12
20a8: 0004 movs r4, r0
20aa: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20ac: 4b09 ldr r3, [pc, #36] ; (20d4 <lv_obj_set_design_cb+0x30>)
20ae: 4798 blx r3
20b0: 2800 cmp r0, #0
20b2: d002 beq.n 20ba <lv_obj_set_design_cb+0x16>
obj->design_cb = design_cb;
20b4: 6225 str r5, [r4, #32]
}
20b6: b003 add sp, #12
20b8: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20ba: 4b07 ldr r3, [pc, #28] ; (20d8 <lv_obj_set_design_cb+0x34>)
20bc: 9300 str r3, [sp, #0]
20be: 4a07 ldr r2, [pc, #28] ; (20dc <lv_obj_set_design_cb+0x38>)
20c0: 4907 ldr r1, [pc, #28] ; (20e0 <lv_obj_set_design_cb+0x3c>)
20c2: 3003 adds r0, #3
20c4: 4d07 ldr r5, [pc, #28] ; (20e4 <lv_obj_set_design_cb+0x40>)
20c6: 47a8 blx r5
20c8: 0022 movs r2, r4
20ca: 2300 movs r3, #0
20cc: 4806 ldr r0, [pc, #24] ; (20e8 <lv_obj_set_design_cb+0x44>)
20ce: 4907 ldr r1, [pc, #28] ; (20ec <lv_obj_set_design_cb+0x48>)
20d0: 4788 blx r1
20d2: e7fe b.n 20d2 <lv_obj_set_design_cb+0x2e>
20d4: 000017ad .word 0x000017ad
20d8: 00025a80 .word 0x00025a80
20dc: 00000737 .word 0x00000737
20e0: 00025c2c .word 0x00025c2c
20e4: 00012159 .word 0x00012159
20e8: 00025d20 .word 0x00025d20
20ec: 000017b5 .word 0x000017b5
000020f0 <lv_obj_allocate_ext_attr>:
{
20f0: b530 push {r4, r5, lr}
20f2: b083 sub sp, #12
20f4: 0004 movs r4, r0
20f6: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20f8: 4b0c ldr r3, [pc, #48] ; (212c <lv_obj_allocate_ext_attr+0x3c>)
20fa: 4798 blx r3
20fc: 2800 cmp r0, #0
20fe: d10c bne.n 211a <lv_obj_allocate_ext_attr+0x2a>
2100: 4b0b ldr r3, [pc, #44] ; (2130 <lv_obj_allocate_ext_attr+0x40>)
2102: 9300 str r3, [sp, #0]
2104: 4a0b ldr r2, [pc, #44] ; (2134 <lv_obj_allocate_ext_attr+0x44>)
2106: 490c ldr r1, [pc, #48] ; (2138 <lv_obj_allocate_ext_attr+0x48>)
2108: 3003 adds r0, #3
210a: 4d0c ldr r5, [pc, #48] ; (213c <lv_obj_allocate_ext_attr+0x4c>)
210c: 47a8 blx r5
210e: 0022 movs r2, r4
2110: 2300 movs r3, #0
2112: 480b ldr r0, [pc, #44] ; (2140 <lv_obj_allocate_ext_attr+0x50>)
2114: 490b ldr r1, [pc, #44] ; (2144 <lv_obj_allocate_ext_attr+0x54>)
2116: 4788 blx r1
2118: e7fe b.n 2118 <lv_obj_allocate_ext_attr+0x28>
void * new_ext = lv_mem_realloc(obj->ext_attr, ext_size);
211a: 0029 movs r1, r5
211c: 6a60 ldr r0, [r4, #36] ; 0x24
211e: 4b0a ldr r3, [pc, #40] ; (2148 <lv_obj_allocate_ext_attr+0x58>)
2120: 4798 blx r3
if(new_ext == NULL) return NULL;
2122: 2800 cmp r0, #0
2124: d000 beq.n 2128 <lv_obj_allocate_ext_attr+0x38>
obj->ext_attr = new_ext;
2126: 6260 str r0, [r4, #36] ; 0x24
}
2128: b003 add sp, #12
212a: bd30 pop {r4, r5, pc}
212c: 000017ad .word 0x000017ad
2130: 00025a98 .word 0x00025a98
2134: 00000749 .word 0x00000749
2138: 00025c2c .word 0x00025c2c
213c: 00012159 .word 0x00012159
2140: 00025d20 .word 0x00025d20
2144: 000017b5 .word 0x000017b5
2148: 000126fd .word 0x000126fd
0000214c <lv_obj_refresh_ext_draw_pad>:
{
214c: b530 push {r4, r5, lr}
214e: b083 sub sp, #12
2150: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2152: 4b0d ldr r3, [pc, #52] ; (2188 <lv_obj_refresh_ext_draw_pad+0x3c>)
2154: 4798 blx r3
2156: 2800 cmp r0, #0
2158: d10c bne.n 2174 <lv_obj_refresh_ext_draw_pad+0x28>
215a: 4b0c ldr r3, [pc, #48] ; (218c <lv_obj_refresh_ext_draw_pad+0x40>)
215c: 9300 str r3, [sp, #0]
215e: 4a0c ldr r2, [pc, #48] ; (2190 <lv_obj_refresh_ext_draw_pad+0x44>)
2160: 490c ldr r1, [pc, #48] ; (2194 <lv_obj_refresh_ext_draw_pad+0x48>)
2162: 3003 adds r0, #3
2164: 4d0c ldr r5, [pc, #48] ; (2198 <lv_obj_refresh_ext_draw_pad+0x4c>)
2166: 47a8 blx r5
2168: 0022 movs r2, r4
216a: 2300 movs r3, #0
216c: 480b ldr r0, [pc, #44] ; (219c <lv_obj_refresh_ext_draw_pad+0x50>)
216e: 490c ldr r1, [pc, #48] ; (21a0 <lv_obj_refresh_ext_draw_pad+0x54>)
2170: 4788 blx r1
2172: e7fe b.n 2172 <lv_obj_refresh_ext_draw_pad+0x26>
obj->ext_draw_pad = 0;
2174: 2300 movs r3, #0
2176: 8663 strh r3, [r4, #50] ; 0x32
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
2178: 69e3 ldr r3, [r4, #28]
217a: 2200 movs r2, #0
217c: 2106 movs r1, #6
217e: 0020 movs r0, r4
2180: 4798 blx r3
}
2182: b003 add sp, #12
2184: bd30 pop {r4, r5, pc}
2186: 46c0 nop ; (mov r8, r8)
2188: 000017ad .word 0x000017ad
218c: 00025ab4 .word 0x00025ab4
2190: 00000759 .word 0x00000759
2194: 00025c2c .word 0x00025c2c
2198: 00012159 .word 0x00012159
219c: 00025d20 .word 0x00025d20
21a0: 000017b5 .word 0x000017b5
000021a4 <lv_obj_get_parent>:
{
21a4: b530 push {r4, r5, lr}
21a6: b083 sub sp, #12
21a8: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
21aa: 4b0a ldr r3, [pc, #40] ; (21d4 <lv_obj_get_parent+0x30>)
21ac: 4798 blx r3
21ae: 2800 cmp r0, #0
21b0: d002 beq.n 21b8 <lv_obj_get_parent+0x14>
return obj->parent;
21b2: 6820 ldr r0, [r4, #0]
}
21b4: b003 add sp, #12
21b6: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
21b8: 4b07 ldr r3, [pc, #28] ; (21d8 <lv_obj_get_parent+0x34>)
21ba: 9300 str r3, [sp, #0]
21bc: 4a07 ldr r2, [pc, #28] ; (21dc <lv_obj_get_parent+0x38>)
21be: 4908 ldr r1, [pc, #32] ; (21e0 <lv_obj_get_parent+0x3c>)
21c0: 3003 adds r0, #3
21c2: 4d08 ldr r5, [pc, #32] ; (21e4 <lv_obj_get_parent+0x40>)
21c4: 47a8 blx r5
21c6: 0022 movs r2, r4
21c8: 2300 movs r3, #0
21ca: 4807 ldr r0, [pc, #28] ; (21e8 <lv_obj_get_parent+0x44>)
21cc: 4907 ldr r1, [pc, #28] ; (21ec <lv_obj_get_parent+0x48>)
21ce: 4788 blx r1
21d0: e7fe b.n 21d0 <lv_obj_get_parent+0x2c>
21d2: 46c0 nop ; (mov r8, r8)
21d4: 000017ad .word 0x000017ad
21d8: 00025af4 .word 0x00025af4
21dc: 0000079f .word 0x0000079f
21e0: 00025c2c .word 0x00025c2c
21e4: 00012159 .word 0x00012159
21e8: 00025d20 .word 0x00025d20
21ec: 000017b5 .word 0x000017b5
000021f0 <lv_obj_get_screen>:
{
21f0: b530 push {r4, r5, lr}
21f2: b083 sub sp, #12
21f4: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
21f6: 4b0d ldr r3, [pc, #52] ; (222c <lv_obj_get_screen+0x3c>)
21f8: 4798 blx r3
21fa: 2800 cmp r0, #0
21fc: d001 beq.n 2202 <lv_obj_get_screen+0x12>
par = lv_obj_get_parent(act_p);
21fe: 4d0c ldr r5, [pc, #48] ; (2230 <lv_obj_get_screen+0x40>)
2200: e00d b.n 221e <lv_obj_get_screen+0x2e>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2202: 4b0c ldr r3, [pc, #48] ; (2234 <lv_obj_get_screen+0x44>)
2204: 9300 str r3, [sp, #0]
2206: 4a0c ldr r2, [pc, #48] ; (2238 <lv_obj_get_screen+0x48>)
2208: 490c ldr r1, [pc, #48] ; (223c <lv_obj_get_screen+0x4c>)
220a: 3003 adds r0, #3
220c: 4d0c ldr r5, [pc, #48] ; (2240 <lv_obj_get_screen+0x50>)
220e: 47a8 blx r5
2210: 0022 movs r2, r4
2212: 2300 movs r3, #0
2214: 480b ldr r0, [pc, #44] ; (2244 <lv_obj_get_screen+0x54>)
2216: 490c ldr r1, [pc, #48] ; (2248 <lv_obj_get_screen+0x58>)
2218: 4788 blx r1
221a: e7fe b.n 221a <lv_obj_get_screen+0x2a>
par = lv_obj_get_parent(act_p);
221c: 0004 movs r4, r0
221e: 0020 movs r0, r4
2220: 47a8 blx r5
} while(par != NULL);
2222: 2800 cmp r0, #0
2224: d1fa bne.n 221c <lv_obj_get_screen+0x2c>
}
2226: 0020 movs r0, r4
2228: b003 add sp, #12
222a: bd30 pop {r4, r5, pc}
222c: 000017ad .word 0x000017ad
2230: 000021a5 .word 0x000021a5
2234: 00025ad0 .word 0x00025ad0
2238: 0000076b .word 0x0000076b
223c: 00025c2c .word 0x00025c2c
2240: 00012159 .word 0x00012159
2244: 00025d20 .word 0x00025d20
2248: 000017b5 .word 0x000017b5
0000224c <lv_obj_get_disp>:
{
224c: b5f0 push {r4, r5, r6, r7, lr}
224e: 46c6 mov lr, r8
2250: b500 push {lr}
2252: b082 sub sp, #8
2254: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2256: 4b23 ldr r3, [pc, #140] ; (22e4 <lv_obj_get_disp+0x98>)
2258: 4798 blx r3
225a: 2800 cmp r0, #0
225c: d00f beq.n 227e <lv_obj_get_disp+0x32>
if(obj->parent == NULL)
225e: 6823 ldr r3, [r4, #0]
2260: 2b00 cmp r3, #0
2262: d003 beq.n 226c <lv_obj_get_disp+0x20>
scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/
2264: 0020 movs r0, r4
2266: 4b20 ldr r3, [pc, #128] ; (22e8 <lv_obj_get_disp+0x9c>)
2268: 4798 blx r3
226a: 0004 movs r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
226c: 481f ldr r0, [pc, #124] ; (22ec <lv_obj_get_disp+0xa0>)
226e: 4b20 ldr r3, [pc, #128] ; (22f0 <lv_obj_get_disp+0xa4>)
2270: 4798 blx r3
2272: 1e07 subs r7, r0, #0
2274: d02a beq.n 22cc <lv_obj_get_disp+0x80>
_LV_LL_READ(d->scr_ll, s) {
2276: 4b1e ldr r3, [pc, #120] ; (22f0 <lv_obj_get_disp+0xa4>)
2278: 4698 mov r8, r3
227a: 4e1e ldr r6, [pc, #120] ; (22f4 <lv_obj_get_disp+0xa8>)
227c: e012 b.n 22a4 <lv_obj_get_disp+0x58>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
227e: 4b1e ldr r3, [pc, #120] ; (22f8 <lv_obj_get_disp+0xac>)
2280: 9300 str r3, [sp, #0]
2282: 4a1e ldr r2, [pc, #120] ; (22fc <lv_obj_get_disp+0xb0>)
2284: 491e ldr r1, [pc, #120] ; (2300 <lv_obj_get_disp+0xb4>)
2286: 3003 adds r0, #3
2288: 4d1e ldr r5, [pc, #120] ; (2304 <lv_obj_get_disp+0xb8>)
228a: 47a8 blx r5
228c: 0022 movs r2, r4
228e: 2300 movs r3, #0
2290: 481d ldr r0, [pc, #116] ; (2308 <lv_obj_get_disp+0xbc>)
2292: 491e ldr r1, [pc, #120] ; (230c <lv_obj_get_disp+0xc0>)
2294: 4788 blx r1
2296: e7fe b.n 2296 <lv_obj_get_disp+0x4a>
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
2298: 0039 movs r1, r7
229a: 4814 ldr r0, [pc, #80] ; (22ec <lv_obj_get_disp+0xa0>)
229c: 4b15 ldr r3, [pc, #84] ; (22f4 <lv_obj_get_disp+0xa8>)
229e: 4798 blx r3
22a0: 1e07 subs r7, r0, #0
22a2: d013 beq.n 22cc <lv_obj_get_disp+0x80>
_LV_LL_READ(d->scr_ll, s) {
22a4: 003d movs r5, r7
22a6: 3530 adds r5, #48 ; 0x30
22a8: 0028 movs r0, r5
22aa: 47c0 blx r8
22ac: 2800 cmp r0, #0
22ae: d0f3 beq.n 2298 <lv_obj_get_disp+0x4c>
if(s == scr) return d;
22b0: 4284 cmp r4, r0
22b2: d006 beq.n 22c2 <lv_obj_get_disp+0x76>
_LV_LL_READ(d->scr_ll, s) {
22b4: 0001 movs r1, r0
22b6: 0028 movs r0, r5
22b8: 47b0 blx r6
22ba: 2800 cmp r0, #0
22bc: d0ec beq.n 2298 <lv_obj_get_disp+0x4c>
if(s == scr) return d;
22be: 4284 cmp r4, r0
22c0: d1f8 bne.n 22b4 <lv_obj_get_disp+0x68>
}
22c2: 0038 movs r0, r7
22c4: b002 add sp, #8
22c6: bc04 pop {r2}
22c8: 4690 mov r8, r2
22ca: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_WARN("lv_scr_get_disp: screen not found")
22cc: 4b10 ldr r3, [pc, #64] ; (2310 <lv_obj_get_disp+0xc4>)
22ce: 9300 str r3, [sp, #0]
22d0: 4b09 ldr r3, [pc, #36] ; (22f8 <lv_obj_get_disp+0xac>)
22d2: 22f2 movs r2, #242 ; 0xf2
22d4: 00d2 lsls r2, r2, #3
22d6: 490a ldr r1, [pc, #40] ; (2300 <lv_obj_get_disp+0xb4>)
22d8: 2002 movs r0, #2
22da: 4c0a ldr r4, [pc, #40] ; (2304 <lv_obj_get_disp+0xb8>)
22dc: 47a0 blx r4
return NULL;
22de: 2700 movs r7, #0
22e0: e7ef b.n 22c2 <lv_obj_get_disp+0x76>
22e2: 46c0 nop ; (mov r8, r8)
22e4: 000017ad .word 0x000017ad
22e8: 000021f1 .word 0x000021f1
22ec: 20004d20 .word 0x20004d20
22f0: 00011e85 .word 0x00011e85
22f4: 00011e9d .word 0x00011e9d
22f8: 00025ae4 .word 0x00025ae4
22fc: 0000077f .word 0x0000077f
2300: 00025c2c .word 0x00025c2c
2304: 00012159 .word 0x00012159
2308: 00025d20 .word 0x00025d20
230c: 000017b5 .word 0x000017b5
2310: 00025d30 .word 0x00025d30
00002314 <lv_obj_get_child>:
{
2314: b530 push {r4, r5, lr}
2316: b083 sub sp, #12
2318: 0004 movs r4, r0
231a: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
231c: 4b0e ldr r3, [pc, #56] ; (2358 <lv_obj_get_child+0x44>)
231e: 4798 blx r3
2320: 2800 cmp r0, #0
2322: d007 beq.n 2334 <lv_obj_get_child+0x20>
if(child == NULL) {
2324: 2d00 cmp r5, #0
2326: d012 beq.n 234e <lv_obj_get_child+0x3a>
result = _lv_ll_get_next(&obj->child_ll, child);
2328: 1d20 adds r0, r4, #4
232a: 0029 movs r1, r5
232c: 4b0b ldr r3, [pc, #44] ; (235c <lv_obj_get_child+0x48>)
232e: 4798 blx r3
}
2330: b003 add sp, #12
2332: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2334: 4b0a ldr r3, [pc, #40] ; (2360 <lv_obj_get_child+0x4c>)
2336: 9300 str r3, [sp, #0]
2338: 4a0a ldr r2, [pc, #40] ; (2364 <lv_obj_get_child+0x50>)
233a: 490b ldr r1, [pc, #44] ; (2368 <lv_obj_get_child+0x54>)
233c: 3003 adds r0, #3
233e: 4d0b ldr r5, [pc, #44] ; (236c <lv_obj_get_child+0x58>)
2340: 47a8 blx r5
2342: 0022 movs r2, r4
2344: 2300 movs r3, #0
2346: 480a ldr r0, [pc, #40] ; (2370 <lv_obj_get_child+0x5c>)
2348: 490a ldr r1, [pc, #40] ; (2374 <lv_obj_get_child+0x60>)
234a: 4788 blx r1
234c: e7fe b.n 234c <lv_obj_get_child+0x38>
result = _lv_ll_get_head(&obj->child_ll);
234e: 1d20 adds r0, r4, #4
2350: 4b09 ldr r3, [pc, #36] ; (2378 <lv_obj_get_child+0x64>)
2352: 4798 blx r3
2354: e7ec b.n 2330 <lv_obj_get_child+0x1c>
2356: 46c0 nop ; (mov r8, r8)
2358: 000017ad .word 0x000017ad
235c: 00011e9d .word 0x00011e9d
2360: 00025b08 .word 0x00025b08
2364: 000007ad .word 0x000007ad
2368: 00025c2c .word 0x00025c2c
236c: 00012159 .word 0x00012159
2370: 00025d20 .word 0x00025d20
2374: 000017b5 .word 0x000017b5
2378: 00011e85 .word 0x00011e85
0000237c <lv_obj_get_coords>:
{
237c: b530 push {r4, r5, lr}
237e: b083 sub sp, #12
2380: 0004 movs r4, r0
2382: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2384: 4b0d ldr r3, [pc, #52] ; (23bc <lv_obj_get_coords+0x40>)
2386: 4798 blx r3
2388: 2800 cmp r0, #0
238a: d00a beq.n 23a2 <lv_obj_get_coords+0x26>
238c: 0020 movs r0, r4
238e: 3018 adds r0, #24
* @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)
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
2390: 3410 adds r4, #16
while(len) {
*d8 = *s8;
2392: 7821 ldrb r1, [r4, #0]
2394: 7029 strb r1, [r5, #0]
d8++;
2396: 3501 adds r5, #1
s8++;
2398: 3401 adds r4, #1
while(len) {
239a: 42a0 cmp r0, r4
239c: d1f9 bne.n 2392 <lv_obj_get_coords+0x16>
}
239e: b003 add sp, #12
23a0: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23a2: 4b07 ldr r3, [pc, #28] ; (23c0 <lv_obj_get_coords+0x44>)
23a4: 9300 str r3, [sp, #0]
23a6: 4a07 ldr r2, [pc, #28] ; (23c4 <lv_obj_get_coords+0x48>)
23a8: 4907 ldr r1, [pc, #28] ; (23c8 <lv_obj_get_coords+0x4c>)
23aa: 3003 adds r0, #3
23ac: 4d07 ldr r5, [pc, #28] ; (23cc <lv_obj_get_coords+0x50>)
23ae: 47a8 blx r5
23b0: 0022 movs r2, r4
23b2: 2300 movs r3, #0
23b4: 4806 ldr r0, [pc, #24] ; (23d0 <lv_obj_get_coords+0x54>)
23b6: 4907 ldr r1, [pc, #28] ; (23d4 <lv_obj_get_coords+0x58>)
23b8: 4788 blx r1
23ba: e7fe b.n 23ba <lv_obj_get_coords+0x3e>
23bc: 000017ad .word 0x000017ad
23c0: 00025b1c .word 0x00025b1c
23c4: 00000801 .word 0x00000801
23c8: 00025c2c .word 0x00025c2c
23cc: 00012159 .word 0x00012159
23d0: 00025d20 .word 0x00025d20
23d4: 000017b5 .word 0x000017b5
000023d8 <lv_obj_get_x>:
{
23d8: b530 push {r4, r5, lr}
23da: b083 sub sp, #12
23dc: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23de: 4b0f ldr r3, [pc, #60] ; (241c <lv_obj_get_x+0x44>)
23e0: 4798 blx r3
23e2: 2800 cmp r0, #0
23e4: d10c bne.n 2400 <lv_obj_get_x+0x28>
23e6: 4b0e ldr r3, [pc, #56] ; (2420 <lv_obj_get_x+0x48>)
23e8: 9300 str r3, [sp, #0]
23ea: 4a0e ldr r2, [pc, #56] ; (2424 <lv_obj_get_x+0x4c>)
23ec: 490e ldr r1, [pc, #56] ; (2428 <lv_obj_get_x+0x50>)
23ee: 3003 adds r0, #3
23f0: 4d0e ldr r5, [pc, #56] ; (242c <lv_obj_get_x+0x54>)
23f2: 47a8 blx r5
23f4: 0022 movs r2, r4
23f6: 2300 movs r3, #0
23f8: 480d ldr r0, [pc, #52] ; (2430 <lv_obj_get_x+0x58>)
23fa: 490e ldr r1, [pc, #56] ; (2434 <lv_obj_get_x+0x5c>)
23fc: 4788 blx r1
23fe: e7fe b.n 23fe <lv_obj_get_x+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2400: 0020 movs r0, r4
2402: 4b0d ldr r3, [pc, #52] ; (2438 <lv_obj_get_x+0x60>)
2404: 4798 blx r3
if(parent) {
2406: 2800 cmp r0, #0
2408: d005 beq.n 2416 <lv_obj_get_x+0x3e>
rel_x = obj->coords.x1 - parent->coords.x1;
240a: 8a23 ldrh r3, [r4, #16]
240c: 8a00 ldrh r0, [r0, #16]
240e: 1a18 subs r0, r3, r0
2410: b200 sxth r0, r0
}
2412: b003 add sp, #12
2414: bd30 pop {r4, r5, pc}
rel_x = obj->coords.x1;
2416: 2310 movs r3, #16
2418: 5ee0 ldrsh r0, [r4, r3]
241a: e7fa b.n 2412 <lv_obj_get_x+0x3a>
241c: 000017ad .word 0x000017ad
2420: 00025b30 .word 0x00025b30
2424: 00000822 .word 0x00000822
2428: 00025c2c .word 0x00025c2c
242c: 00012159 .word 0x00012159
2430: 00025d20 .word 0x00025d20
2434: 000017b5 .word 0x000017b5
2438: 000021a5 .word 0x000021a5
0000243c <lv_obj_get_y>:
{
243c: b530 push {r4, r5, lr}
243e: b083 sub sp, #12
2440: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2442: 4b0f ldr r3, [pc, #60] ; (2480 <lv_obj_get_y+0x44>)
2444: 4798 blx r3
2446: 2800 cmp r0, #0
2448: d10c bne.n 2464 <lv_obj_get_y+0x28>
244a: 4b0e ldr r3, [pc, #56] ; (2484 <lv_obj_get_y+0x48>)
244c: 9300 str r3, [sp, #0]
244e: 4a0e ldr r2, [pc, #56] ; (2488 <lv_obj_get_y+0x4c>)
2450: 490e ldr r1, [pc, #56] ; (248c <lv_obj_get_y+0x50>)
2452: 3003 adds r0, #3
2454: 4d0e ldr r5, [pc, #56] ; (2490 <lv_obj_get_y+0x54>)
2456: 47a8 blx r5
2458: 0022 movs r2, r4
245a: 2300 movs r3, #0
245c: 480d ldr r0, [pc, #52] ; (2494 <lv_obj_get_y+0x58>)
245e: 490e ldr r1, [pc, #56] ; (2498 <lv_obj_get_y+0x5c>)
2460: 4788 blx r1
2462: e7fe b.n 2462 <lv_obj_get_y+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2464: 0020 movs r0, r4
2466: 4b0d ldr r3, [pc, #52] ; (249c <lv_obj_get_y+0x60>)
2468: 4798 blx r3
if(parent) {
246a: 2800 cmp r0, #0
246c: d005 beq.n 247a <lv_obj_get_y+0x3e>
rel_y = obj->coords.y1 - parent->coords.y1;
246e: 8a63 ldrh r3, [r4, #18]
2470: 8a40 ldrh r0, [r0, #18]
2472: 1a18 subs r0, r3, r0
2474: b200 sxth r0, r0
}
2476: b003 add sp, #12
2478: bd30 pop {r4, r5, pc}
rel_y = obj->coords.y1;
247a: 2312 movs r3, #18
247c: 5ee0 ldrsh r0, [r4, r3]
247e: e7fa b.n 2476 <lv_obj_get_y+0x3a>
2480: 000017ad .word 0x000017ad
2484: 00025b40 .word 0x00025b40
2488: 00000836 .word 0x00000836
248c: 00025c2c .word 0x00025c2c
2490: 00012159 .word 0x00012159
2494: 00025d20 .word 0x00025d20
2498: 000017b5 .word 0x000017b5
249c: 000021a5 .word 0x000021a5
000024a0 <lv_obj_get_width>:
{
24a0: b530 push {r4, r5, lr}
24a2: b083 sub sp, #12
24a4: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
24a6: 4b0c ldr r3, [pc, #48] ; (24d8 <lv_obj_get_width+0x38>)
24a8: 4798 blx r3
24aa: 2800 cmp r0, #0
24ac: d006 beq.n 24bc <lv_obj_get_width+0x1c>
* @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)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
24ae: 8aa0 ldrh r0, [r4, #20]
24b0: 3001 adds r0, #1
24b2: 8a23 ldrh r3, [r4, #16]
24b4: 1ac0 subs r0, r0, r3
return lv_area_get_width(&obj->coords);
24b6: b200 sxth r0, r0
}
24b8: b003 add sp, #12
24ba: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
24bc: 4b07 ldr r3, [pc, #28] ; (24dc <lv_obj_get_width+0x3c>)
24be: 9300 str r3, [sp, #0]
24c0: 4a07 ldr r2, [pc, #28] ; (24e0 <lv_obj_get_width+0x40>)
24c2: 4908 ldr r1, [pc, #32] ; (24e4 <lv_obj_get_width+0x44>)
24c4: 3003 adds r0, #3
24c6: 4d08 ldr r5, [pc, #32] ; (24e8 <lv_obj_get_width+0x48>)
24c8: 47a8 blx r5
24ca: 0022 movs r2, r4
24cc: 2300 movs r3, #0
24ce: 4807 ldr r0, [pc, #28] ; (24ec <lv_obj_get_width+0x4c>)
24d0: 4907 ldr r1, [pc, #28] ; (24f0 <lv_obj_get_width+0x50>)
24d2: 4788 blx r1
24d4: e7fe b.n 24d4 <lv_obj_get_width+0x34>
24d6: 46c0 nop ; (mov r8, r8)
24d8: 000017ad .word 0x000017ad
24dc: 00025b50 .word 0x00025b50
24e0: 0000084a .word 0x0000084a
24e4: 00025c2c .word 0x00025c2c
24e8: 00012159 .word 0x00012159
24ec: 00025d20 .word 0x00025d20
24f0: 000017b5 .word 0x000017b5
000024f4 <lv_obj_get_height>:
{
24f4: b530 push {r4, r5, lr}
24f6: b083 sub sp, #12
24f8: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
24fa: 4b0c ldr r3, [pc, #48] ; (252c <lv_obj_get_height+0x38>)
24fc: 4798 blx r3
24fe: 2800 cmp r0, #0
2500: d006 beq.n 2510 <lv_obj_get_height+0x1c>
* @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)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
2502: 8ae0 ldrh r0, [r4, #22]
2504: 3001 adds r0, #1
2506: 8a63 ldrh r3, [r4, #18]
2508: 1ac0 subs r0, r0, r3
return lv_area_get_height(&obj->coords);
250a: b200 sxth r0, r0
}
250c: b003 add sp, #12
250e: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2510: 4b07 ldr r3, [pc, #28] ; (2530 <lv_obj_get_height+0x3c>)
2512: 9300 str r3, [sp, #0]
2514: 4a07 ldr r2, [pc, #28] ; (2534 <lv_obj_get_height+0x40>)
2516: 4908 ldr r1, [pc, #32] ; (2538 <lv_obj_get_height+0x44>)
2518: 3003 adds r0, #3
251a: 4d08 ldr r5, [pc, #32] ; (253c <lv_obj_get_height+0x48>)
251c: 47a8 blx r5
251e: 0022 movs r2, r4
2520: 2300 movs r3, #0
2522: 4807 ldr r0, [pc, #28] ; (2540 <lv_obj_get_height+0x4c>)
2524: 4907 ldr r1, [pc, #28] ; (2544 <lv_obj_get_height+0x50>)
2526: 4788 blx r1
2528: e7fe b.n 2528 <lv_obj_get_height+0x34>
252a: 46c0 nop ; (mov r8, r8)
252c: 000017ad .word 0x000017ad
2530: 00025b64 .word 0x00025b64
2534: 00000856 .word 0x00000856
2538: 00025c2c .word 0x00025c2c
253c: 00012159 .word 0x00012159
2540: 00025d20 .word 0x00025d20
2544: 000017b5 .word 0x000017b5
00002548 <lv_obj_get_style_list>:
{
2548: b500 push {lr}
254a: b083 sub sp, #12
if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list;
254c: 2900 cmp r1, #0
254e: d102 bne.n 2556 <lv_obj_get_style_list+0xe>
2550: 3028 adds r0, #40 ; 0x28
}
2552: b003 add sp, #12
2554: bd00 pop {pc}
info.part = part;
2556: 466b mov r3, sp
2558: 7019 strb r1, [r3, #0]
info.result = NULL;
255a: 2300 movs r3, #0
255c: 9301 str r3, [sp, #4]
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
255e: 466a mov r2, sp
2560: 2108 movs r1, #8
2562: 4b04 ldr r3, [pc, #16] ; (2574 <lv_obj_get_style_list+0x2c>)
2564: 4798 blx r3
if(res != LV_RES_OK) return NULL;
2566: 2801 cmp r0, #1
2568: d101 bne.n 256e <lv_obj_get_style_list+0x26>
return info.result;
256a: 9801 ldr r0, [sp, #4]
256c: e7f1 b.n 2552 <lv_obj_get_style_list+0xa>
if(res != LV_RES_OK) return NULL;
256e: 2000 movs r0, #0
2570: e7ef b.n 2552 <lv_obj_get_style_list+0xa>
2572: 46c0 nop ; (mov r8, r8)
2574: 0000208d .word 0x0000208d
00002578 <trans_del>:
* @param part a part of object or 0xFF to remove from all parts
* @param prop a property or 0xFF to remove all porpeties
* @param tr_limit delete transitions only "older" then this. `NULL` is not used
*/
static void trans_del(lv_obj_t * obj, uint8_t part, lv_style_property_t prop, lv_style_trans_t * tr_limit)
{
2578: b5f0 push {r4, r5, r6, r7, lr}
257a: 46de mov lr, fp
257c: 4657 mov r7, sl
257e: 4646 mov r6, r8
2580: b5c0 push {r6, r7, lr}
2582: 4680 mov r8, r0
2584: 468a mov sl, r1
2586: 4693 mov fp, r2
2588: 001e movs r6, r3
lv_style_trans_t * tr;
lv_style_trans_t * tr_prev;
tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll));
258a: 481d ldr r0, [pc, #116] ; (2600 <trans_del+0x88>)
258c: 4b1d ldr r3, [pc, #116] ; (2604 <trans_del+0x8c>)
258e: 4798 blx r3
2590: 1e04 subs r4, r0, #0
while(tr != NULL) {
2592: d02f beq.n 25f4 <trans_del+0x7c>
if(tr == tr_limit) break;
2594: 42b0 cmp r0, r6
2596: d02d beq.n 25f4 <trans_del+0x7c>
/*'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);
2598: 4f1b ldr r7, [pc, #108] ; (2608 <trans_del+0x90>)
259a: e00a b.n 25b2 <trans_del+0x3a>
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
259c: 88a3 ldrh r3, [r4, #4]
259e: 455b cmp r3, fp
25a0: d015 beq.n 25ce <trans_del+0x56>
25a2: 465b mov r3, fp
25a4: 2bff cmp r3, #255 ; 0xff
25a6: d012 beq.n 25ce <trans_del+0x56>
while(tr != NULL) {
25a8: 2d00 cmp r5, #0
25aa: d023 beq.n 25f4 <trans_del+0x7c>
25ac: 002c movs r4, r5
if(tr == tr_limit) break;
25ae: 42ae cmp r6, r5
25b0: d020 beq.n 25f4 <trans_del+0x7c>
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
25b2: 0021 movs r1, r4
25b4: 4812 ldr r0, [pc, #72] ; (2600 <trans_del+0x88>)
25b6: 47b8 blx r7
25b8: 0005 movs r5, r0
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
25ba: 6820 ldr r0, [r4, #0]
25bc: 4540 cmp r0, r8
25be: d1f3 bne.n 25a8 <trans_del+0x30>
25c0: 79a1 ldrb r1, [r4, #6]
25c2: 4551 cmp r1, sl
25c4: d0ea beq.n 259c <trans_del+0x24>
25c6: 4653 mov r3, sl
25c8: 2bff cmp r3, #255 ; 0xff
25ca: d1ed bne.n 25a8 <trans_del+0x30>
25cc: e7e6 b.n 259c <trans_del+0x24>
/* Remove the transitioned property from trans. style
* to allow changing it by normal styles*/
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
25ce: 4b0f ldr r3, [pc, #60] ; (260c <trans_del+0x94>)
25d0: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
25d2: 4b0f ldr r3, [pc, #60] ; (2610 <trans_del+0x98>)
25d4: 4798 blx r3
lv_style_remove_prop(style_trans, tr->prop);
25d6: 88a1 ldrh r1, [r4, #4]
25d8: 4b0e ldr r3, [pc, #56] ; (2614 <trans_del+0x9c>)
25da: 4798 blx r3
lv_anim_del(tr, NULL);
25dc: 2100 movs r1, #0
25de: 0020 movs r0, r4
25e0: 4b0d ldr r3, [pc, #52] ; (2618 <trans_del+0xa0>)
25e2: 4798 blx r3
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
25e4: 0021 movs r1, r4
25e6: 4806 ldr r0, [pc, #24] ; (2600 <trans_del+0x88>)
25e8: 4b0c ldr r3, [pc, #48] ; (261c <trans_del+0xa4>)
25ea: 4798 blx r3
lv_mem_free(tr);
25ec: 0020 movs r0, r4
25ee: 4b0c ldr r3, [pc, #48] ; (2620 <trans_del+0xa8>)
25f0: 4798 blx r3
25f2: e7d9 b.n 25a8 <trans_del+0x30>
}
tr = tr_prev;
}
}
25f4: bc1c pop {r2, r3, r4}
25f6: 4690 mov r8, r2
25f8: 469a mov sl, r3
25fa: 46a3 mov fp, r4
25fc: bdf0 pop {r4, r5, r6, r7, pc}
25fe: 46c0 nop ; (mov r8, r8)
2600: 20004dc4 .word 0x20004dc4
2604: 00011e91 .word 0x00011e91
2608: 00011ec5 .word 0x00011ec5
260c: 00002549 .word 0x00002549
2610: 00006965 .word 0x00006965
2614: 00005e89 .word 0x00005e89
2618: 000111fd .word 0x000111fd
261c: 00011f6d .word 0x00011f6d
2620: 000123c9 .word 0x000123c9
00002624 <lv_obj_clean_style_list>:
{
2624: b530 push {r4, r5, lr}
2626: b083 sub sp, #12
2628: 0004 movs r4, r0
262a: 000d movs r5, r1
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
262c: 4b0b ldr r3, [pc, #44] ; (265c <lv_obj_clean_style_list+0x38>)
262e: 4798 blx r3
if(style_dsc == NULL) {
2630: 2800 cmp r0, #0
2632: d009 beq.n 2648 <lv_obj_clean_style_list+0x24>
_lv_style_list_reset(style_dsc);
2634: 4b0a ldr r3, [pc, #40] ; (2660 <lv_obj_clean_style_list+0x3c>)
2636: 4798 blx r3
trans_del(obj, part, 0xFF, NULL);
2638: 2300 movs r3, #0
263a: 22ff movs r2, #255 ; 0xff
263c: 0029 movs r1, r5
263e: 0020 movs r0, r4
2640: 4c08 ldr r4, [pc, #32] ; (2664 <lv_obj_clean_style_list+0x40>)
2642: 47a0 blx r4
}
2644: b003 add sp, #12
2646: bd30 pop {r4, r5, pc}
LV_LOG_WARN("lv_obj_clean_style_list: can't find style with `part`");
2648: 4b07 ldr r3, [pc, #28] ; (2668 <lv_obj_clean_style_list+0x44>)
264a: 9300 str r3, [sp, #0]
264c: 4b07 ldr r3, [pc, #28] ; (266c <lv_obj_clean_style_list+0x48>)
264e: 4a08 ldr r2, [pc, #32] ; (2670 <lv_obj_clean_style_list+0x4c>)
2650: 4908 ldr r1, [pc, #32] ; (2674 <lv_obj_clean_style_list+0x50>)
2652: 3002 adds r0, #2
2654: 4c08 ldr r4, [pc, #32] ; (2678 <lv_obj_clean_style_list+0x54>)
2656: 47a0 blx r4
return;
2658: e7f4 b.n 2644 <lv_obj_clean_style_list+0x20>
265a: 46c0 nop ; (mov r8, r8)
265c: 00002549 .word 0x00002549
2660: 00006975 .word 0x00006975
2664: 00002579 .word 0x00002579
2668: 00025c84 .word 0x00025c84
266c: 000259ac .word 0x000259ac
2670: 00000492 .word 0x00000492
2674: 00025c2c .word 0x00025c2c
2678: 00012159 .word 0x00012159
0000267c <trans_anim_ready_cb>:
tr->prop = prop_tmp;
}
static void trans_anim_ready_cb(lv_anim_t * a)
{
267c: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_style_trans_t * tr = a->var;
267e: 6804 ldr r4, [r0, #0]
* if there no more transitions for this property
* It allows changing it by normal styles*/
bool running = false;
lv_style_trans_t * tr_i;
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2680: 4817 ldr r0, [pc, #92] ; (26e0 <trans_anim_ready_cb+0x64>)
2682: 4b18 ldr r3, [pc, #96] ; (26e4 <trans_anim_ready_cb+0x68>)
2684: 4798 blx r3
2686: 2800 cmp r0, #0
2688: d020 beq.n 26cc <trans_anim_ready_cb+0x50>
268a: 2600 movs r6, #0
268c: 4d14 ldr r5, [pc, #80] ; (26e0 <trans_anim_ready_cb+0x64>)
268e: 4f16 ldr r7, [pc, #88] ; (26e8 <trans_anim_ready_cb+0x6c>)
2690: e004 b.n 269c <trans_anim_ready_cb+0x20>
2692: 0001 movs r1, r0
2694: 0028 movs r0, r5
2696: 47b8 blx r7
2698: 2800 cmp r0, #0
269a: d00d beq.n 26b8 <trans_anim_ready_cb+0x3c>
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
269c: 4284 cmp r4, r0
269e: d0f8 beq.n 2692 <trans_anim_ready_cb+0x16>
26a0: 6803 ldr r3, [r0, #0]
26a2: 6822 ldr r2, [r4, #0]
26a4: 4293 cmp r3, r2
26a6: d1f4 bne.n 2692 <trans_anim_ready_cb+0x16>
26a8: 6843 ldr r3, [r0, #4]
26aa: 021b lsls r3, r3, #8
26ac: 6862 ldr r2, [r4, #4]
26ae: 0212 lsls r2, r2, #8
26b0: 429a cmp r2, r3
26b2: d1ee bne.n 2692 <trans_anim_ready_cb+0x16>
running = true;
26b4: 2601 movs r6, #1
26b6: e7ec b.n 2692 <trans_anim_ready_cb+0x16>
}
}
if(!running) {
26b8: 2e00 cmp r6, #0
26ba: d007 beq.n 26cc <trans_anim_ready_cb+0x50>
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
lv_style_remove_prop(style_trans, tr->prop);
}
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
26bc: 0021 movs r1, r4
26be: 4808 ldr r0, [pc, #32] ; (26e0 <trans_anim_ready_cb+0x64>)
26c0: 4b0a ldr r3, [pc, #40] ; (26ec <trans_anim_ready_cb+0x70>)
26c2: 4798 blx r3
lv_mem_free(tr);
26c4: 0020 movs r0, r4
26c6: 4b0a ldr r3, [pc, #40] ; (26f0 <trans_anim_ready_cb+0x74>)
26c8: 4798 blx r3
}
26ca: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
26cc: 79a1 ldrb r1, [r4, #6]
26ce: 6820 ldr r0, [r4, #0]
26d0: 4b08 ldr r3, [pc, #32] ; (26f4 <trans_anim_ready_cb+0x78>)
26d2: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
26d4: 4b08 ldr r3, [pc, #32] ; (26f8 <trans_anim_ready_cb+0x7c>)
26d6: 4798 blx r3
lv_style_remove_prop(style_trans, tr->prop);
26d8: 88a1 ldrh r1, [r4, #4]
26da: 4b08 ldr r3, [pc, #32] ; (26fc <trans_anim_ready_cb+0x80>)
26dc: 4798 blx r3
26de: e7ed b.n 26bc <trans_anim_ready_cb+0x40>
26e0: 20004dc4 .word 0x20004dc4
26e4: 00011e85 .word 0x00011e85
26e8: 00011e9d .word 0x00011e9d
26ec: 00011f6d .word 0x00011f6d
26f0: 000123c9 .word 0x000123c9
26f4: 00002549 .word 0x00002549
26f8: 00006965 .word 0x00006965
26fc: 00005e89 .word 0x00005e89
00002700 <lv_obj_get_hidden>:
{
2700: b530 push {r4, r5, lr}
2702: b083 sub sp, #12
2704: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2706: 4b0b ldr r3, [pc, #44] ; (2734 <lv_obj_get_hidden+0x34>)
2708: 4798 blx r3
270a: 2800 cmp r0, #0
270c: d005 beq.n 271a <lv_obj_get_hidden+0x1a>
return obj->hidden == 0 ? false : true;
270e: 2334 movs r3, #52 ; 0x34
2710: 5ce0 ldrb r0, [r4, r3]
2712: 06c0 lsls r0, r0, #27
2714: 0fc0 lsrs r0, r0, #31
}
2716: b003 add sp, #12
2718: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
271a: 4b07 ldr r3, [pc, #28] ; (2738 <lv_obj_get_hidden+0x38>)
271c: 9300 str r3, [sp, #0]
271e: 4a07 ldr r2, [pc, #28] ; (273c <lv_obj_get_hidden+0x3c>)
2720: 4907 ldr r1, [pc, #28] ; (2740 <lv_obj_get_hidden+0x40>)
2722: 3003 adds r0, #3
2724: 4d07 ldr r5, [pc, #28] ; (2744 <lv_obj_get_hidden+0x44>)
2726: 47a8 blx r5
2728: 0022 movs r2, r4
272a: 2300 movs r3, #0
272c: 4806 ldr r0, [pc, #24] ; (2748 <lv_obj_get_hidden+0x48>)
272e: 4907 ldr r1, [pc, #28] ; (274c <lv_obj_get_hidden+0x4c>)
2730: 4788 blx r1
2732: e7fe b.n 2732 <lv_obj_get_hidden+0x32>
2734: 000017ad .word 0x000017ad
2738: 00025b78 .word 0x00025b78
273c: 00000a41 .word 0x00000a41
2740: 00025c2c .word 0x00025c2c
2744: 00012159 .word 0x00012159
2748: 00025d20 .word 0x00025d20
274c: 000017b5 .word 0x000017b5
00002750 <lv_obj_invalidate_area>:
{
2750: b5f0 push {r4, r5, r6, r7, lr}
2752: b087 sub sp, #28
2754: 0004 movs r4, r0
2756: 000e movs r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2758: 4b34 ldr r3, [pc, #208] ; (282c <lv_obj_invalidate_area+0xdc>)
275a: 4798 blx r3
275c: 2800 cmp r0, #0
275e: d10d bne.n 277c <lv_obj_invalidate_area+0x2c>
2760: 4b33 ldr r3, [pc, #204] ; (2830 <lv_obj_invalidate_area+0xe0>)
2762: 9300 str r3, [sp, #0]
2764: 22f0 movs r2, #240 ; 0xf0
2766: 0052 lsls r2, r2, #1
2768: 4932 ldr r1, [pc, #200] ; (2834 <lv_obj_invalidate_area+0xe4>)
276a: 3003 adds r0, #3
276c: 4d32 ldr r5, [pc, #200] ; (2838 <lv_obj_invalidate_area+0xe8>)
276e: 47a8 blx r5
2770: 0022 movs r2, r4
2772: 2300 movs r3, #0
2774: 4831 ldr r0, [pc, #196] ; (283c <lv_obj_invalidate_area+0xec>)
2776: 4932 ldr r1, [pc, #200] ; (2840 <lv_obj_invalidate_area+0xf0>)
2778: 4788 blx r1
277a: e7fe b.n 277a <lv_obj_invalidate_area+0x2a>
if(lv_obj_get_hidden(obj)) return;
277c: 0020 movs r0, r4
277e: 4b31 ldr r3, [pc, #196] ; (2844 <lv_obj_invalidate_area+0xf4>)
2780: 4798 blx r3
2782: 2800 cmp r0, #0
2784: d001 beq.n 278a <lv_obj_invalidate_area+0x3a>
}
2786: b007 add sp, #28
2788: bdf0 pop {r4, r5, r6, r7, pc}
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
278a: 0020 movs r0, r4
278c: 4b2e ldr r3, [pc, #184] ; (2848 <lv_obj_invalidate_area+0xf8>)
278e: 4798 blx r3
2790: 0007 movs r7, r0
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
2792: 4b2e ldr r3, [pc, #184] ; (284c <lv_obj_invalidate_area+0xfc>)
2794: 4798 blx r3
2796: 0005 movs r5, r0
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2798: 4b2d ldr r3, [pc, #180] ; (2850 <lv_obj_invalidate_area+0x100>)
279a: 4798 blx r3
279c: 4287 cmp r7, r0
279e: d009 beq.n 27b4 <lv_obj_invalidate_area+0x64>
27a0: 0028 movs r0, r5
27a2: 4b2c ldr r3, [pc, #176] ; (2854 <lv_obj_invalidate_area+0x104>)
27a4: 4798 blx r3
27a6: 4287 cmp r7, r0
27a8: d004 beq.n 27b4 <lv_obj_invalidate_area+0x64>
obj_scr == lv_disp_get_layer_sys(disp)) {
27aa: 0028 movs r0, r5
27ac: 4b2a ldr r3, [pc, #168] ; (2858 <lv_obj_invalidate_area+0x108>)
27ae: 4798 blx r3
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
27b0: 4287 cmp r7, r0
27b2: d1e8 bne.n 2786 <lv_obj_invalidate_area+0x36>
lv_coord_t ext_size = obj->ext_draw_pad;
27b4: 2232 movs r2, #50 ; 0x32
27b6: 5ea3 ldrsh r3, [r4, r2]
lv_area_copy(&obj_coords, &obj->coords);
27b8: 0020 movs r0, r4
27ba: 3010 adds r0, #16
27bc: 2200 movs r2, #0
*d8 = *s8;
27be: a902 add r1, sp, #8
27c0: 5c87 ldrb r7, [r0, r2]
27c2: 5457 strb r7, [r2, r1]
27c4: 3201 adds r2, #1
while(len) {
27c6: 2a08 cmp r2, #8
27c8: d1fa bne.n 27c0 <lv_obj_invalidate_area+0x70>
obj_coords.x1 -= ext_size;
27ca: b29b uxth r3, r3
27cc: aa02 add r2, sp, #8
27ce: 8811 ldrh r1, [r2, #0]
27d0: 1ac9 subs r1, r1, r3
27d2: 8011 strh r1, [r2, #0]
obj_coords.y1 -= ext_size;
27d4: 8851 ldrh r1, [r2, #2]
27d6: 1ac9 subs r1, r1, r3
27d8: 8051 strh r1, [r2, #2]
obj_coords.x2 += ext_size;
27da: 8891 ldrh r1, [r2, #4]
27dc: 1859 adds r1, r3, r1
27de: 8091 strh r1, [r2, #4]
obj_coords.y2 += ext_size;
27e0: 88d1 ldrh r1, [r2, #6]
27e2: 185b adds r3, r3, r1
27e4: 80d3 strh r3, [r2, #6]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
27e6: 0031 movs r1, r6
27e8: a804 add r0, sp, #16
27ea: 4b1c ldr r3, [pc, #112] ; (285c <lv_obj_invalidate_area+0x10c>)
27ec: 4798 blx r3
if(is_common == false) return; /*The area is not on the object*/
27ee: 2800 cmp r0, #0
27f0: d0c9 beq.n 2786 <lv_obj_invalidate_area+0x36>
lv_obj_t * par = lv_obj_get_parent(obj);
27f2: 0020 movs r0, r4
27f4: 4b1a ldr r3, [pc, #104] ; (2860 <lv_obj_invalidate_area+0x110>)
27f6: 4798 blx r3
27f8: 1e04 subs r4, r0, #0
while(par != NULL) {
27fa: d011 beq.n 2820 <lv_obj_invalidate_area+0xd0>
is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords);
27fc: 4e17 ldr r6, [pc, #92] ; (285c <lv_obj_invalidate_area+0x10c>)
27fe: 0022 movs r2, r4
2800: 3210 adds r2, #16
2802: a904 add r1, sp, #16
2804: 0008 movs r0, r1
2806: 47b0 blx r6
if(is_common == false) break; /*If no common parts with parent break;*/
2808: 2800 cmp r0, #0
280a: d0bc beq.n 2786 <lv_obj_invalidate_area+0x36>
if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/
280c: 0020 movs r0, r4
280e: 4b0d ldr r3, [pc, #52] ; (2844 <lv_obj_invalidate_area+0xf4>)
2810: 4798 blx r3
2812: 2800 cmp r0, #0
2814: d1b7 bne.n 2786 <lv_obj_invalidate_area+0x36>
par = lv_obj_get_parent(par);
2816: 0020 movs r0, r4
2818: 4b11 ldr r3, [pc, #68] ; (2860 <lv_obj_invalidate_area+0x110>)
281a: 4798 blx r3
281c: 1e04 subs r4, r0, #0
while(par != NULL) {
281e: d1ee bne.n 27fe <lv_obj_invalidate_area+0xae>
if(is_common) _lv_inv_area(disp, &area_trunc);
2820: a904 add r1, sp, #16
2822: 0028 movs r0, r5
2824: 4b0f ldr r3, [pc, #60] ; (2864 <lv_obj_invalidate_area+0x114>)
2826: 4798 blx r3
2828: e7ad b.n 2786 <lv_obj_invalidate_area+0x36>
282a: 46c0 nop ; (mov r8, r8)
282c: 000017ad .word 0x000017ad
2830: 000258e0 .word 0x000258e0
2834: 00025c2c .word 0x00025c2c
2838: 00012159 .word 0x00012159
283c: 00025d20 .word 0x00025d20
2840: 000017b5 .word 0x000017b5
2844: 00002701 .word 0x00002701
2848: 000021f1 .word 0x000021f1
284c: 0000224d .word 0x0000224d
2850: 00001845 .word 0x00001845
2854: 00001885 .word 0x00001885
2858: 000018c5 .word 0x000018c5
285c: 0001140b .word 0x0001140b
2860: 000021a5 .word 0x000021a5
2864: 00005481 .word 0x00005481
00002868 <lv_obj_invalidate>:
{
2868: b530 push {r4, r5, lr}
286a: b085 sub sp, #20
286c: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
286e: 4b17 ldr r3, [pc, #92] ; (28cc <lv_obj_invalidate+0x64>)
2870: 4798 blx r3
2872: 2800 cmp r0, #0
2874: d01d beq.n 28b2 <lv_obj_invalidate+0x4a>
lv_coord_t ext_size = obj->ext_draw_pad;
2876: 2332 movs r3, #50 ; 0x32
2878: 5ee2 ldrsh r2, [r4, r3]
lv_area_copy(&obj_coords, &obj->coords);
287a: 0025 movs r5, r4
287c: 3510 adds r5, #16
287e: 2300 movs r3, #0
*d8 = *s8;
2880: a802 add r0, sp, #8
2882: 5ce9 ldrb r1, [r5, r3]
2884: 5419 strb r1, [r3, r0]
2886: 3301 adds r3, #1
while(len) {
2888: 2b08 cmp r3, #8
288a: d1fa bne.n 2882 <lv_obj_invalidate+0x1a>
obj_coords.x1 -= ext_size;
288c: b293 uxth r3, r2
288e: a902 add r1, sp, #8
2890: 880a ldrh r2, [r1, #0]
2892: 1ad2 subs r2, r2, r3
2894: 800a strh r2, [r1, #0]
obj_coords.y1 -= ext_size;
2896: 884a ldrh r2, [r1, #2]
2898: 1ad2 subs r2, r2, r3
289a: 804a strh r2, [r1, #2]
obj_coords.x2 += ext_size;
289c: 888a ldrh r2, [r1, #4]
289e: 189a adds r2, r3, r2
28a0: 808a strh r2, [r1, #4]
obj_coords.y2 += ext_size;
28a2: 88ca ldrh r2, [r1, #6]
28a4: 189b adds r3, r3, r2
28a6: 80cb strh r3, [r1, #6]
lv_obj_invalidate_area(obj, &obj_coords);
28a8: 0020 movs r0, r4
28aa: 4b09 ldr r3, [pc, #36] ; (28d0 <lv_obj_invalidate+0x68>)
28ac: 4798 blx r3
}
28ae: b005 add sp, #20
28b0: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28b2: 4b08 ldr r3, [pc, #32] ; (28d4 <lv_obj_invalidate+0x6c>)
28b4: 9300 str r3, [sp, #0]
28b6: 4a08 ldr r2, [pc, #32] ; (28d8 <lv_obj_invalidate+0x70>)
28b8: 4908 ldr r1, [pc, #32] ; (28dc <lv_obj_invalidate+0x74>)
28ba: 3003 adds r0, #3
28bc: 4d08 ldr r5, [pc, #32] ; (28e0 <lv_obj_invalidate+0x78>)
28be: 47a8 blx r5
28c0: 0022 movs r2, r4
28c2: 2300 movs r3, #0
28c4: 4807 ldr r0, [pc, #28] ; (28e4 <lv_obj_invalidate+0x7c>)
28c6: 4908 ldr r1, [pc, #32] ; (28e8 <lv_obj_invalidate+0x80>)
28c8: 4788 blx r1
28ca: e7fe b.n 28ca <lv_obj_invalidate+0x62>
28cc: 000017ad .word 0x000017ad
28d0: 00002751 .word 0x00002751
28d4: 000258f8 .word 0x000258f8
28d8: 0000020d .word 0x0000020d
28dc: 00025c2c .word 0x00025c2c
28e0: 00012159 .word 0x00012159
28e4: 00025d20 .word 0x00025d20
28e8: 000017b5 .word 0x000017b5
000028ec <lv_obj_move_foreground>:
{
28ec: b5f0 push {r4, r5, r6, r7, lr}
28ee: b083 sub sp, #12
28f0: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28f2: 4b16 ldr r3, [pc, #88] ; (294c <lv_obj_move_foreground+0x60>)
28f4: 4798 blx r3
28f6: 2800 cmp r0, #0
28f8: d10c bne.n 2914 <lv_obj_move_foreground+0x28>
28fa: 4b15 ldr r3, [pc, #84] ; (2950 <lv_obj_move_foreground+0x64>)
28fc: 9300 str r3, [sp, #0]
28fe: 4a15 ldr r2, [pc, #84] ; (2954 <lv_obj_move_foreground+0x68>)
2900: 4915 ldr r1, [pc, #84] ; (2958 <lv_obj_move_foreground+0x6c>)
2902: 3003 adds r0, #3
2904: 4d15 ldr r5, [pc, #84] ; (295c <lv_obj_move_foreground+0x70>)
2906: 47a8 blx r5
2908: 0022 movs r2, r4
290a: 2300 movs r3, #0
290c: 4814 ldr r0, [pc, #80] ; (2960 <lv_obj_move_foreground+0x74>)
290e: 4915 ldr r1, [pc, #84] ; (2964 <lv_obj_move_foreground+0x78>)
2910: 4788 blx r1
2912: e7fe b.n 2912 <lv_obj_move_foreground+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2914: 0020 movs r0, r4
2916: 4b14 ldr r3, [pc, #80] ; (2968 <lv_obj_move_foreground+0x7c>)
2918: 4798 blx r3
291a: 0005 movs r5, r0
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
291c: 1d06 adds r6, r0, #4
291e: 0030 movs r0, r6
2920: 4b12 ldr r3, [pc, #72] ; (296c <lv_obj_move_foreground+0x80>)
2922: 4798 blx r3
2924: 4284 cmp r4, r0
2926: d00f beq.n 2948 <lv_obj_move_foreground+0x5c>
lv_obj_invalidate(parent);
2928: 0028 movs r0, r5
292a: 4f11 ldr r7, [pc, #68] ; (2970 <lv_obj_move_foreground+0x84>)
292c: 47b8 blx r7
_lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true);
292e: 2301 movs r3, #1
2930: 0022 movs r2, r4
2932: 0031 movs r1, r6
2934: 0030 movs r0, r6
2936: 4e0f ldr r6, [pc, #60] ; (2974 <lv_obj_move_foreground+0x88>)
2938: 47b0 blx r6
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj);
293a: 0022 movs r2, r4
293c: 2101 movs r1, #1
293e: 0028 movs r0, r5
2940: 69eb ldr r3, [r5, #28]
2942: 4798 blx r3
lv_obj_invalidate(parent);
2944: 0028 movs r0, r5
2946: 47b8 blx r7
}
2948: b003 add sp, #12
294a: bdf0 pop {r4, r5, r6, r7, pc}
294c: 000017ad .word 0x000017ad
2950: 0002590c .word 0x0002590c
2954: 00000262 .word 0x00000262
2958: 00025c2c .word 0x00025c2c
295c: 00012159 .word 0x00012159
2960: 00025d20 .word 0x00025d20
2964: 000017b5 .word 0x000017b5
2968: 000021a5 .word 0x000021a5
296c: 00011e85 .word 0x00011e85
2970: 00002869 .word 0x00002869
2974: 00011ffd .word 0x00011ffd
00002978 <lv_obj_set_pos>:
{
2978: b5f0 push {r4, r5, r6, r7, lr}
297a: 46d6 mov lr, sl
297c: 464f mov r7, r9
297e: 4646 mov r6, r8
2980: b5c0 push {r6, r7, lr}
2982: b084 sub sp, #16
2984: 0004 movs r4, r0
2986: 000d movs r5, r1
2988: 0017 movs r7, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
298a: 4b2e ldr r3, [pc, #184] ; (2a44 <lv_obj_set_pos+0xcc>)
298c: 4798 blx r3
298e: 2800 cmp r0, #0
2990: d041 beq.n 2a16 <lv_obj_set_pos+0x9e>
lv_obj_t * par = obj->parent;
2992: 6826 ldr r6, [r4, #0]
if(par == NULL) {
2994: 2e00 cmp r6, #0
2996: d04b beq.n 2a30 <lv_obj_set_pos+0xb8>
diff.x = x - obj->coords.x1;
2998: 8a33 ldrh r3, [r6, #16]
299a: 8a22 ldrh r2, [r4, #16]
299c: 1a9b subs r3, r3, r2
299e: 195b adds r3, r3, r5
29a0: b29b uxth r3, r3
29a2: 469a mov sl, r3
29a4: b21b sxth r3, r3
29a6: 4698 mov r8, r3
diff.y = y - obj->coords.y1;
29a8: 8a75 ldrh r5, [r6, #18]
29aa: 8a63 ldrh r3, [r4, #18]
29ac: 1aed subs r5, r5, r3
29ae: 19ed adds r5, r5, r7
29b0: b2ad uxth r5, r5
29b2: b22b sxth r3, r5
29b4: 4699 mov r9, r3
if(diff.x == 0 && diff.y == 0) return;
29b6: 4643 mov r3, r8
29b8: 2b00 cmp r3, #0
29ba: d102 bne.n 29c2 <lv_obj_set_pos+0x4a>
29bc: 464b mov r3, r9
29be: 2b00 cmp r3, #0
29c0: d023 beq.n 2a0a <lv_obj_set_pos+0x92>
lv_obj_invalidate(obj);
29c2: 0020 movs r0, r4
29c4: 4f20 ldr r7, [pc, #128] ; (2a48 <lv_obj_set_pos+0xd0>)
29c6: 47b8 blx r7
lv_obj_get_coords(obj, &ori);
29c8: a902 add r1, sp, #8
29ca: 0020 movs r0, r4
29cc: 4b1f ldr r3, [pc, #124] ; (2a4c <lv_obj_set_pos+0xd4>)
29ce: 4798 blx r3
obj->coords.x1 += diff.x;
29d0: 8a23 ldrh r3, [r4, #16]
29d2: 4453 add r3, sl
29d4: 8223 strh r3, [r4, #16]
obj->coords.y1 += diff.y;
29d6: 8a63 ldrh r3, [r4, #18]
29d8: 18eb adds r3, r5, r3
29da: 8263 strh r3, [r4, #18]
obj->coords.x2 += diff.x;
29dc: 8aa3 ldrh r3, [r4, #20]
29de: 4453 add r3, sl
29e0: 82a3 strh r3, [r4, #20]
obj->coords.y2 += diff.y;
29e2: 8ae3 ldrh r3, [r4, #22]
29e4: 18ed adds r5, r5, r3
29e6: 82e5 strh r5, [r4, #22]
refresh_children_position(obj, diff.x, diff.y);
29e8: 464a mov r2, r9
29ea: 4641 mov r1, r8
29ec: 0020 movs r0, r4
29ee: 4b18 ldr r3, [pc, #96] ; (2a50 <lv_obj_set_pos+0xd8>)
29f0: 4798 blx r3
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
29f2: aa02 add r2, sp, #8
29f4: 2102 movs r1, #2
29f6: 0020 movs r0, r4
29f8: 69e3 ldr r3, [r4, #28]
29fa: 4798 blx r3
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
29fc: 69f3 ldr r3, [r6, #28]
29fe: 0022 movs r2, r4
2a00: 2101 movs r1, #1
2a02: 0030 movs r0, r6
2a04: 4798 blx r3
lv_obj_invalidate(obj);
2a06: 0020 movs r0, r4
2a08: 47b8 blx r7
}
2a0a: b004 add sp, #16
2a0c: bc1c pop {r2, r3, r4}
2a0e: 4690 mov r8, r2
2a10: 4699 mov r9, r3
2a12: 46a2 mov sl, r4
2a14: bdf0 pop {r4, r5, r6, r7, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a16: 4b0f ldr r3, [pc, #60] ; (2a54 <lv_obj_set_pos+0xdc>)
2a18: 9300 str r3, [sp, #0]
2a1a: 4a0f ldr r2, [pc, #60] ; (2a58 <lv_obj_set_pos+0xe0>)
2a1c: 490f ldr r1, [pc, #60] ; (2a5c <lv_obj_set_pos+0xe4>)
2a1e: 3003 adds r0, #3
2a20: 4d0f ldr r5, [pc, #60] ; (2a60 <lv_obj_set_pos+0xe8>)
2a22: 47a8 blx r5
2a24: 0022 movs r2, r4
2a26: 2300 movs r3, #0
2a28: 480e ldr r0, [pc, #56] ; (2a64 <lv_obj_set_pos+0xec>)
2a2a: 490f ldr r1, [pc, #60] ; (2a68 <lv_obj_set_pos+0xf0>)
2a2c: 4788 blx r1
2a2e: e7fe b.n 2a2e <lv_obj_set_pos+0xb6>
LV_LOG_WARN("lv_obj_set_pos: not changing position of screen object");
2a30: 4b0e ldr r3, [pc, #56] ; (2a6c <lv_obj_set_pos+0xf4>)
2a32: 9300 str r3, [sp, #0]
2a34: 4b07 ldr r3, [pc, #28] ; (2a54 <lv_obj_set_pos+0xdc>)
2a36: 22a7 movs r2, #167 ; 0xa7
2a38: 0092 lsls r2, r2, #2
2a3a: 4908 ldr r1, [pc, #32] ; (2a5c <lv_obj_set_pos+0xe4>)
2a3c: 2002 movs r0, #2
2a3e: 4c08 ldr r4, [pc, #32] ; (2a60 <lv_obj_set_pos+0xe8>)
2a40: 47a0 blx r4
return;
2a42: e7e2 b.n 2a0a <lv_obj_set_pos+0x92>
2a44: 000017ad .word 0x000017ad
2a48: 00002869 .word 0x00002869
2a4c: 0000237d .word 0x0000237d
2a50: 00001d0d .word 0x00001d0d
2a54: 00025924 .word 0x00025924
2a58: 00000296 .word 0x00000296
2a5c: 00025c2c .word 0x00025c2c
2a60: 00012159 .word 0x00012159
2a64: 00025d20 .word 0x00025d20
2a68: 000017b5 .word 0x000017b5
2a6c: 00025d54 .word 0x00025d54
00002a70 <lv_obj_set_x>:
{
2a70: b530 push {r4, r5, lr}
2a72: b083 sub sp, #12
2a74: 0004 movs r4, r0
2a76: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a78: 4b0d ldr r3, [pc, #52] ; (2ab0 <lv_obj_set_x+0x40>)
2a7a: 4798 blx r3
2a7c: 2800 cmp r0, #0
2a7e: d10d bne.n 2a9c <lv_obj_set_x+0x2c>
2a80: 4b0c ldr r3, [pc, #48] ; (2ab4 <lv_obj_set_x+0x44>)
2a82: 9300 str r3, [sp, #0]
2a84: 22b3 movs r2, #179 ; 0xb3
2a86: 0092 lsls r2, r2, #2
2a88: 490b ldr r1, [pc, #44] ; (2ab8 <lv_obj_set_x+0x48>)
2a8a: 3003 adds r0, #3
2a8c: 4d0b ldr r5, [pc, #44] ; (2abc <lv_obj_set_x+0x4c>)
2a8e: 47a8 blx r5
2a90: 0022 movs r2, r4
2a92: 2300 movs r3, #0
2a94: 480a ldr r0, [pc, #40] ; (2ac0 <lv_obj_set_x+0x50>)
2a96: 490b ldr r1, [pc, #44] ; (2ac4 <lv_obj_set_x+0x54>)
2a98: 4788 blx r1
2a9a: e7fe b.n 2a9a <lv_obj_set_x+0x2a>
lv_obj_set_pos(obj, x, lv_obj_get_y(obj));
2a9c: 0020 movs r0, r4
2a9e: 4b0a ldr r3, [pc, #40] ; (2ac8 <lv_obj_set_x+0x58>)
2aa0: 4798 blx r3
2aa2: 0002 movs r2, r0
2aa4: 0029 movs r1, r5
2aa6: 0020 movs r0, r4
2aa8: 4b08 ldr r3, [pc, #32] ; (2acc <lv_obj_set_x+0x5c>)
2aaa: 4798 blx r3
}
2aac: b003 add sp, #12
2aae: bd30 pop {r4, r5, pc}
2ab0: 000017ad .word 0x000017ad
2ab4: 00025934 .word 0x00025934
2ab8: 00025c2c .word 0x00025c2c
2abc: 00012159 .word 0x00012159
2ac0: 00025d20 .word 0x00025d20
2ac4: 000017b5 .word 0x000017b5
2ac8: 0000243d .word 0x0000243d
2acc: 00002979 .word 0x00002979
00002ad0 <lv_obj_set_y>:
{
2ad0: b530 push {r4, r5, lr}
2ad2: b083 sub sp, #12
2ad4: 0004 movs r4, r0
2ad6: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2ad8: 4b0d ldr r3, [pc, #52] ; (2b10 <lv_obj_set_y+0x40>)
2ada: 4798 blx r3
2adc: 2800 cmp r0, #0
2ade: d10d bne.n 2afc <lv_obj_set_y+0x2c>
2ae0: 4b0c ldr r3, [pc, #48] ; (2b14 <lv_obj_set_y+0x44>)
2ae2: 9300 str r3, [sp, #0]
2ae4: 22b6 movs r2, #182 ; 0xb6
2ae6: 0092 lsls r2, r2, #2
2ae8: 490b ldr r1, [pc, #44] ; (2b18 <lv_obj_set_y+0x48>)
2aea: 3003 adds r0, #3
2aec: 4d0b ldr r5, [pc, #44] ; (2b1c <lv_obj_set_y+0x4c>)
2aee: 47a8 blx r5
2af0: 0022 movs r2, r4
2af2: 2300 movs r3, #0
2af4: 480a ldr r0, [pc, #40] ; (2b20 <lv_obj_set_y+0x50>)
2af6: 490b ldr r1, [pc, #44] ; (2b24 <lv_obj_set_y+0x54>)
2af8: 4788 blx r1
2afa: e7fe b.n 2afa <lv_obj_set_y+0x2a>
lv_obj_set_pos(obj, lv_obj_get_x(obj), y);
2afc: 0020 movs r0, r4
2afe: 4b0a ldr r3, [pc, #40] ; (2b28 <lv_obj_set_y+0x58>)
2b00: 4798 blx r3
2b02: 0001 movs r1, r0
2b04: 002a movs r2, r5
2b06: 0020 movs r0, r4
2b08: 4b08 ldr r3, [pc, #32] ; (2b2c <lv_obj_set_y+0x5c>)
2b0a: 4798 blx r3
}
2b0c: b003 add sp, #12
2b0e: bd30 pop {r4, r5, pc}
2b10: 000017ad .word 0x000017ad
2b14: 00025944 .word 0x00025944
2b18: 00025c2c .word 0x00025c2c
2b1c: 00012159 .word 0x00012159
2b20: 00025d20 .word 0x00025d20
2b24: 000017b5 .word 0x000017b5
2b28: 000023d9 .word 0x000023d9
2b2c: 00002979 .word 0x00002979
00002b30 <lv_obj_align>:
{
2b30: b5f0 push {r4, r5, r6, r7, lr}
2b32: 46d6 mov lr, sl
2b34: 464f mov r7, r9
2b36: 4646 mov r6, r8
2b38: b5c0 push {r6, r7, lr}
2b3a: b086 sub sp, #24
2b3c: 0004 movs r4, r0
2b3e: 000f movs r7, r1
2b40: 9203 str r2, [sp, #12]
2b42: 4699 mov r9, r3
2b44: ab0e add r3, sp, #56 ; 0x38
2b46: 2200 movs r2, #0
2b48: 5e9a ldrsh r2, [r3, r2]
2b4a: 4690 mov r8, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2b4c: 4b2d ldr r3, [pc, #180] ; (2c04 <lv_obj_align+0xd4>)
2b4e: 4798 blx r3
2b50: 2800 cmp r0, #0
2b52: d10c bne.n 2b6e <lv_obj_align+0x3e>
2b54: 4b2c ldr r3, [pc, #176] ; (2c08 <lv_obj_align+0xd8>)
2b56: 9300 str r3, [sp, #0]
2b58: 4a2c ldr r2, [pc, #176] ; (2c0c <lv_obj_align+0xdc>)
2b5a: 492d ldr r1, [pc, #180] ; (2c10 <lv_obj_align+0xe0>)
2b5c: 3003 adds r0, #3
2b5e: 4d2d ldr r5, [pc, #180] ; (2c14 <lv_obj_align+0xe4>)
2b60: 47a8 blx r5
2b62: 0022 movs r2, r4
2b64: 2300 movs r3, #0
2b66: 482c ldr r0, [pc, #176] ; (2c18 <lv_obj_align+0xe8>)
2b68: 492c ldr r1, [pc, #176] ; (2c1c <lv_obj_align+0xec>)
2b6a: 4788 blx r1
2b6c: e7fe b.n 2b6c <lv_obj_align+0x3c>
if(base == NULL) base = lv_obj_get_parent(obj);
2b6e: 2f00 cmp r7, #0
2b70: d011 beq.n 2b96 <lv_obj_align+0x66>
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2b72: 0038 movs r0, r7
2b74: 4b23 ldr r3, [pc, #140] ; (2c04 <lv_obj_align+0xd4>)
2b76: 4798 blx r3
2b78: 2800 cmp r0, #0
2b7a: d111 bne.n 2ba0 <lv_obj_align+0x70>
2b7c: 4b22 ldr r3, [pc, #136] ; (2c08 <lv_obj_align+0xd8>)
2b7e: 9300 str r3, [sp, #0]
2b80: 4a27 ldr r2, [pc, #156] ; (2c20 <lv_obj_align+0xf0>)
2b82: 4923 ldr r1, [pc, #140] ; (2c10 <lv_obj_align+0xe0>)
2b84: 3003 adds r0, #3
2b86: 4c23 ldr r4, [pc, #140] ; (2c14 <lv_obj_align+0xe4>)
2b88: 47a0 blx r4
2b8a: 003a movs r2, r7
2b8c: 2300 movs r3, #0
2b8e: 4822 ldr r0, [pc, #136] ; (2c18 <lv_obj_align+0xe8>)
2b90: 4922 ldr r1, [pc, #136] ; (2c1c <lv_obj_align+0xec>)
2b92: 4788 blx r1
2b94: e7fe b.n 2b94 <lv_obj_align+0x64>
if(base == NULL) base = lv_obj_get_parent(obj);
2b96: 0020 movs r0, r4
2b98: 4b22 ldr r3, [pc, #136] ; (2c24 <lv_obj_align+0xf4>)
2b9a: 4798 blx r3
2b9c: 0007 movs r7, r0
2b9e: e7e8 b.n 2b72 <lv_obj_align+0x42>
_lv_area_align(&base->coords, &obj->coords, align, &new_pos);
2ba0: ad05 add r5, sp, #20
2ba2: 0021 movs r1, r4
2ba4: 3110 adds r1, #16
2ba6: 0038 movs r0, r7
2ba8: 3010 adds r0, #16
2baa: 002b movs r3, r5
2bac: 9a03 ldr r2, [sp, #12]
2bae: 4e1e ldr r6, [pc, #120] ; (2c28 <lv_obj_align+0xf8>)
2bb0: 47b0 blx r6
lv_obj_t * par = lv_obj_get_parent(obj);
2bb2: 0020 movs r0, r4
2bb4: 4b1b ldr r3, [pc, #108] ; (2c24 <lv_obj_align+0xf4>)
2bb6: 4798 blx r3
lv_coord_t par_abs_y = par->coords.y1;
2bb8: 2212 movs r2, #18
2bba: 5e83 ldrsh r3, [r0, r2]
new_pos.y += y_ofs;
2bbc: 886a ldrh r2, [r5, #2]
2bbe: 4442 add r2, r8
new_pos.x += x_ofs;
2bc0: 8829 ldrh r1, [r5, #0]
2bc2: 4449 add r1, r9
new_pos.x -= par_abs_x;
2bc4: 8a00 ldrh r0, [r0, #16]
2bc6: 1a09 subs r1, r1, r0
2bc8: b209 sxth r1, r1
2bca: 8029 strh r1, [r5, #0]
new_pos.y -= par_abs_y;
2bcc: 1ad2 subs r2, r2, r3
2bce: b212 sxth r2, r2
2bd0: 806a strh r2, [r5, #2]
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2bd2: 0020 movs r0, r4
2bd4: 4b15 ldr r3, [pc, #84] ; (2c2c <lv_obj_align+0xfc>)
2bd6: 4798 blx r3
obj->realign.align = align;
2bd8: 2348 movs r3, #72 ; 0x48
2bda: 466a mov r2, sp
2bdc: 7b12 ldrb r2, [r2, #12]
2bde: 54e2 strb r2, [r4, r3]
obj->realign.xofs = x_ofs;
2be0: 3b04 subs r3, #4
2be2: 464a mov r2, r9
2be4: 52e2 strh r2, [r4, r3]
obj->realign.yofs = y_ofs;
2be6: 3302 adds r3, #2
2be8: 4642 mov r2, r8
2bea: 52e2 strh r2, [r4, r3]
obj->realign.base = base;
2bec: 6427 str r7, [r4, #64] ; 0x40
obj->realign.origo_align = 0;
2bee: 2249 movs r2, #73 ; 0x49
2bf0: 5ca3 ldrb r3, [r4, r2]
2bf2: 2102 movs r1, #2
2bf4: 438b bics r3, r1
2bf6: 54a3 strb r3, [r4, r2]
}
2bf8: b006 add sp, #24
2bfa: bc1c pop {r2, r3, r4}
2bfc: 4690 mov r8, r2
2bfe: 4699 mov r9, r3
2c00: 46a2 mov sl, r4
2c02: bdf0 pop {r4, r5, r6, r7, pc}
2c04: 000017ad .word 0x000017ad
2c08: 00025978 .word 0x00025978
2c0c: 0000036d .word 0x0000036d
2c10: 00025c2c .word 0x00025c2c
2c14: 00012159 .word 0x00012159
2c18: 00025d20 .word 0x00025d20
2c1c: 000017b5 .word 0x000017b5
2c20: 00000371 .word 0x00000371
2c24: 000021a5 .word 0x000021a5
2c28: 0001173d .word 0x0001173d
2c2c: 00002979 .word 0x00002979
00002c30 <lv_obj_align_origo>:
{
2c30: b5f0 push {r4, r5, r6, r7, lr}
2c32: 46de mov lr, fp
2c34: 4657 mov r7, sl
2c36: 464e mov r6, r9
2c38: 4645 mov r5, r8
2c3a: b5e0 push {r5, r6, r7, lr}
2c3c: b085 sub sp, #20
2c3e: 4680 mov r8, r0
2c40: 9103 str r1, [sp, #12]
2c42: 4692 mov sl, r2
2c44: 4699 mov r9, r3
2c46: ab0e add r3, sp, #56 ; 0x38
2c48: 2200 movs r2, #0
2c4a: 5e9b ldrsh r3, [r3, r2]
2c4c: 469b mov fp, r3
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c4e: 4ba8 ldr r3, [pc, #672] ; (2ef0 <lv_obj_align_origo+0x2c0>)
2c50: 4798 blx r3
2c52: 2800 cmp r0, #0
2c54: d10c bne.n 2c70 <lv_obj_align_origo+0x40>
2c56: 4ba7 ldr r3, [pc, #668] ; (2ef4 <lv_obj_align_origo+0x2c4>)
2c58: 9300 str r3, [sp, #0]
2c5a: 4aa7 ldr r2, [pc, #668] ; (2ef8 <lv_obj_align_origo+0x2c8>)
2c5c: 49a7 ldr r1, [pc, #668] ; (2efc <lv_obj_align_origo+0x2cc>)
2c5e: 3003 adds r0, #3
2c60: 4ca7 ldr r4, [pc, #668] ; (2f00 <lv_obj_align_origo+0x2d0>)
2c62: 47a0 blx r4
2c64: 4642 mov r2, r8
2c66: 2300 movs r3, #0
2c68: 48a6 ldr r0, [pc, #664] ; (2f04 <lv_obj_align_origo+0x2d4>)
2c6a: 49a7 ldr r1, [pc, #668] ; (2f08 <lv_obj_align_origo+0x2d8>)
2c6c: 4788 blx r1
2c6e: e7fe b.n 2c6e <lv_obj_align_origo+0x3e>
lv_coord_t new_x = lv_obj_get_x(obj);
2c70: 4640 mov r0, r8
2c72: 4ba6 ldr r3, [pc, #664] ; (2f0c <lv_obj_align_origo+0x2dc>)
2c74: 4798 blx r3
2c76: 0005 movs r5, r0
lv_coord_t new_y = lv_obj_get_y(obj);
2c78: 4640 mov r0, r8
2c7a: 4ba5 ldr r3, [pc, #660] ; (2f10 <lv_obj_align_origo+0x2e0>)
2c7c: 4798 blx r3
2c7e: 0004 movs r4, r0
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2c80: 4640 mov r0, r8
2c82: 4ba4 ldr r3, [pc, #656] ; (2f14 <lv_obj_align_origo+0x2e4>)
2c84: 4798 blx r3
2c86: 0fc3 lsrs r3, r0, #31
2c88: 181b adds r3, r3, r0
2c8a: 105b asrs r3, r3, #1
2c8c: b21e sxth r6, r3
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2c8e: 4640 mov r0, r8
2c90: 4ba1 ldr r3, [pc, #644] ; (2f18 <lv_obj_align_origo+0x2e8>)
2c92: 4798 blx r3
2c94: 0fc7 lsrs r7, r0, #31
2c96: 183f adds r7, r7, r0
2c98: 107f asrs r7, r7, #1
2c9a: b23f sxth r7, r7
if(base == NULL) {
2c9c: 9b03 ldr r3, [sp, #12]
2c9e: 2b00 cmp r3, #0
2ca0: d00b beq.n 2cba <lv_obj_align_origo+0x8a>
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2ca2: 9803 ldr r0, [sp, #12]
2ca4: 4b92 ldr r3, [pc, #584] ; (2ef0 <lv_obj_align_origo+0x2c0>)
2ca6: 4798 blx r3
2ca8: 2800 cmp r0, #0
2caa: d00b beq.n 2cc4 <lv_obj_align_origo+0x94>
switch(align) {
2cac: 4653 mov r3, sl
2cae: 2b14 cmp r3, #20
2cb0: d826 bhi.n 2d00 <lv_obj_align_origo+0xd0>
2cb2: 009b lsls r3, r3, #2
2cb4: 4a99 ldr r2, [pc, #612] ; (2f1c <lv_obj_align_origo+0x2ec>)
2cb6: 58d3 ldr r3, [r2, r3]
2cb8: 469f mov pc, r3
base = lv_obj_get_parent(obj);
2cba: 4640 mov r0, r8
2cbc: 4b98 ldr r3, [pc, #608] ; (2f20 <lv_obj_align_origo+0x2f0>)
2cbe: 4798 blx r3
2cc0: 9003 str r0, [sp, #12]
2cc2: e7ee b.n 2ca2 <lv_obj_align_origo+0x72>
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2cc4: 4b8b ldr r3, [pc, #556] ; (2ef4 <lv_obj_align_origo+0x2c4>)
2cc6: 9300 str r3, [sp, #0]
2cc8: 4a96 ldr r2, [pc, #600] ; (2f24 <lv_obj_align_origo+0x2f4>)
2cca: 498c ldr r1, [pc, #560] ; (2efc <lv_obj_align_origo+0x2cc>)
2ccc: 3003 adds r0, #3
2cce: 4c8c ldr r4, [pc, #560] ; (2f00 <lv_obj_align_origo+0x2d0>)
2cd0: 47a0 blx r4
2cd2: 9a03 ldr r2, [sp, #12]
2cd4: 2300 movs r3, #0
2cd6: 488b ldr r0, [pc, #556] ; (2f04 <lv_obj_align_origo+0x2d4>)
2cd8: 498b ldr r1, [pc, #556] ; (2f08 <lv_obj_align_origo+0x2d8>)
2cda: 4788 blx r1
2cdc: e7fe b.n 2cdc <lv_obj_align_origo+0xac>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2cde: 9c03 ldr r4, [sp, #12]
2ce0: 0020 movs r0, r4
2ce2: 4b8c ldr r3, [pc, #560] ; (2f14 <lv_obj_align_origo+0x2e4>)
2ce4: 4798 blx r3
2ce6: 0fc5 lsrs r5, r0, #31
2ce8: 182d adds r5, r5, r0
2cea: 106d asrs r5, r5, #1
2cec: 1bad subs r5, r5, r6
2cee: b22d sxth r5, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2cf0: 0020 movs r0, r4
2cf2: 4b89 ldr r3, [pc, #548] ; (2f18 <lv_obj_align_origo+0x2e8>)
2cf4: 4798 blx r3
2cf6: 0fc4 lsrs r4, r0, #31
2cf8: 1824 adds r4, r4, r0
2cfa: 1064 asrs r4, r4, #1
2cfc: 1be4 subs r4, r4, r7
2cfe: b224 sxth r4, r4
lv_obj_t * par = lv_obj_get_parent(obj);
2d00: 4640 mov r0, r8
2d02: 4b87 ldr r3, [pc, #540] ; (2f20 <lv_obj_align_origo+0x2f0>)
2d04: 4798 blx r3
new_x += x_ofs + base_abs_x;
2d06: 9a03 ldr r2, [sp, #12]
2d08: 8a13 ldrh r3, [r2, #16]
2d0a: 444b add r3, r9
2d0c: 195d adds r5, r3, r5
new_x -= par_abs_x;
2d0e: 8a01 ldrh r1, [r0, #16]
2d10: 1a69 subs r1, r5, r1
new_y += y_ofs + base_abs_y;
2d12: 0015 movs r5, r2
2d14: 8a52 ldrh r2, [r2, #18]
2d16: 445a add r2, fp
2d18: 1912 adds r2, r2, r4
new_y -= par_abs_y;
2d1a: 8a44 ldrh r4, [r0, #18]
2d1c: 1b12 subs r2, r2, r4
lv_obj_set_pos(obj, new_x, new_y);
2d1e: b212 sxth r2, r2
2d20: b209 sxth r1, r1
2d22: 4640 mov r0, r8
2d24: 4b80 ldr r3, [pc, #512] ; (2f28 <lv_obj_align_origo+0x2f8>)
2d26: 4798 blx r3
obj->realign.align = align;
2d28: 2348 movs r3, #72 ; 0x48
2d2a: 4642 mov r2, r8
2d2c: 4651 mov r1, sl
2d2e: 54d1 strb r1, [r2, r3]
obj->realign.xofs = x_ofs;
2d30: 3b04 subs r3, #4
2d32: 4649 mov r1, r9
2d34: 52d1 strh r1, [r2, r3]
obj->realign.yofs = y_ofs;
2d36: 3302 adds r3, #2
2d38: 4659 mov r1, fp
2d3a: 52d1 strh r1, [r2, r3]
obj->realign.base = base;
2d3c: 6415 str r5, [r2, #64] ; 0x40
obj->realign.origo_align = 1;
2d3e: 2249 movs r2, #73 ; 0x49
2d40: 4643 mov r3, r8
2d42: 5c9b ldrb r3, [r3, r2]
2d44: 2102 movs r1, #2
2d46: 430b orrs r3, r1
2d48: 4641 mov r1, r8
2d4a: 548b strb r3, [r1, r2]
}
2d4c: b005 add sp, #20
2d4e: bc3c pop {r2, r3, r4, r5}
2d50: 4690 mov r8, r2
2d52: 4699 mov r9, r3
2d54: 46a2 mov sl, r4
2d56: 46ab mov fp, r5
2d58: bdf0 pop {r4, r5, r6, r7, pc}
new_x = -obj_w_half;
2d5a: 4275 negs r5, r6
2d5c: b22d sxth r5, r5
new_y = -obj_h_half;
2d5e: 427c negs r4, r7
2d60: b224 sxth r4, r4
break;
2d62: e7cd b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2d64: 9803 ldr r0, [sp, #12]
2d66: 4b6b ldr r3, [pc, #428] ; (2f14 <lv_obj_align_origo+0x2e4>)
2d68: 4798 blx r3
2d6a: 0fc5 lsrs r5, r0, #31
2d6c: 182d adds r5, r5, r0
2d6e: 106d asrs r5, r5, #1
2d70: 1bad subs r5, r5, r6
2d72: b22d sxth r5, r5
new_y = -obj_h_half;
2d74: 427c negs r4, r7
2d76: b224 sxth r4, r4
break;
2d78: e7c2 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2d7a: 9803 ldr r0, [sp, #12]
2d7c: 4b65 ldr r3, [pc, #404] ; (2f14 <lv_obj_align_origo+0x2e4>)
2d7e: 4798 blx r3
2d80: 1b85 subs r5, r0, r6
2d82: b22d sxth r5, r5
new_y = -obj_h_half;
2d84: 427c negs r4, r7
2d86: b224 sxth r4, r4
break;
2d88: e7ba b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2d8a: 4275 negs r5, r6
2d8c: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2d8e: 9803 ldr r0, [sp, #12]
2d90: 4b61 ldr r3, [pc, #388] ; (2f18 <lv_obj_align_origo+0x2e8>)
2d92: 4798 blx r3
2d94: 1bc4 subs r4, r0, r7
2d96: b224 sxth r4, r4
break;
2d98: e7b2 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2d9a: 9c03 ldr r4, [sp, #12]
2d9c: 0020 movs r0, r4
2d9e: 4b5d ldr r3, [pc, #372] ; (2f14 <lv_obj_align_origo+0x2e4>)
2da0: 4798 blx r3
2da2: 0fc5 lsrs r5, r0, #31
2da4: 182d adds r5, r5, r0
2da6: 106d asrs r5, r5, #1
2da8: 1bad subs r5, r5, r6
2daa: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2dac: 0020 movs r0, r4
2dae: 4b5a ldr r3, [pc, #360] ; (2f18 <lv_obj_align_origo+0x2e8>)
2db0: 4798 blx r3
2db2: 1bc4 subs r4, r0, r7
2db4: b224 sxth r4, r4
break;
2db6: e7a3 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2db8: 9c03 ldr r4, [sp, #12]
2dba: 0020 movs r0, r4
2dbc: 4b55 ldr r3, [pc, #340] ; (2f14 <lv_obj_align_origo+0x2e4>)
2dbe: 4798 blx r3
2dc0: 1b85 subs r5, r0, r6
2dc2: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2dc4: 0020 movs r0, r4
2dc6: 4b54 ldr r3, [pc, #336] ; (2f18 <lv_obj_align_origo+0x2e8>)
2dc8: 4798 blx r3
2dca: 1bc4 subs r4, r0, r7
2dcc: b224 sxth r4, r4
break;
2dce: e797 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2dd0: 4275 negs r5, r6
2dd2: b22d sxth r5, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2dd4: 9803 ldr r0, [sp, #12]
2dd6: 4b50 ldr r3, [pc, #320] ; (2f18 <lv_obj_align_origo+0x2e8>)
2dd8: 4798 blx r3
2dda: 0fc4 lsrs r4, r0, #31
2ddc: 1824 adds r4, r4, r0
2dde: 1064 asrs r4, r4, #1
2de0: 1be4 subs r4, r4, r7
2de2: b224 sxth r4, r4
break;
2de4: e78c b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2de6: 9c03 ldr r4, [sp, #12]
2de8: 0020 movs r0, r4
2dea: 4b4a ldr r3, [pc, #296] ; (2f14 <lv_obj_align_origo+0x2e4>)
2dec: 4798 blx r3
2dee: 1b85 subs r5, r0, r6
2df0: b22d sxth r5, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2df2: 0020 movs r0, r4
2df4: 4b48 ldr r3, [pc, #288] ; (2f18 <lv_obj_align_origo+0x2e8>)
2df6: 4798 blx r3
2df8: 0fc4 lsrs r4, r0, #31
2dfa: 1824 adds r4, r4, r0
2dfc: 1064 asrs r4, r4, #1
2dfe: 1be4 subs r4, r4, r7
2e00: b224 sxth r4, r4
break;
2e02: e77d b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2e04: 4275 negs r5, r6
2e06: b22d sxth r5, r5
new_y = -obj_h_half;
2e08: 427c negs r4, r7
2e0a: b224 sxth r4, r4
break;
2e0c: e778 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2e0e: 9803 ldr r0, [sp, #12]
2e10: 4b40 ldr r3, [pc, #256] ; (2f14 <lv_obj_align_origo+0x2e4>)
2e12: 4798 blx r3
2e14: 0fc5 lsrs r5, r0, #31
2e16: 182d adds r5, r5, r0
2e18: 106d asrs r5, r5, #1
2e1a: 1bad subs r5, r5, r6
2e1c: b22d sxth r5, r5
new_y = -obj_h_half;
2e1e: 427c negs r4, r7
2e20: b224 sxth r4, r4
break;
2e22: e76d b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2e24: 9803 ldr r0, [sp, #12]
2e26: 4b3b ldr r3, [pc, #236] ; (2f14 <lv_obj_align_origo+0x2e4>)
2e28: 4798 blx r3
2e2a: 1b85 subs r5, r0, r6
2e2c: b22d sxth r5, r5
new_y = -obj_h_half;
2e2e: 427c negs r4, r7
2e30: b224 sxth r4, r4
break;
2e32: e765 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2e34: 4275 negs r5, r6
2e36: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2e38: 9803 ldr r0, [sp, #12]
2e3a: 4b37 ldr r3, [pc, #220] ; (2f18 <lv_obj_align_origo+0x2e8>)
2e3c: 4798 blx r3
2e3e: 1bc4 subs r4, r0, r7
2e40: b224 sxth r4, r4
break;
2e42: e75d b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2e44: 9c03 ldr r4, [sp, #12]
2e46: 0020 movs r0, r4
2e48: 4b32 ldr r3, [pc, #200] ; (2f14 <lv_obj_align_origo+0x2e4>)
2e4a: 4798 blx r3
2e4c: 0fc5 lsrs r5, r0, #31
2e4e: 182d adds r5, r5, r0
2e50: 106d asrs r5, r5, #1
2e52: 1bad subs r5, r5, r6
2e54: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2e56: 0020 movs r0, r4
2e58: 4b2f ldr r3, [pc, #188] ; (2f18 <lv_obj_align_origo+0x2e8>)
2e5a: 4798 blx r3
2e5c: 1bc4 subs r4, r0, r7
2e5e: b224 sxth r4, r4
break;
2e60: e74e b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2e62: 9c03 ldr r4, [sp, #12]
2e64: 0020 movs r0, r4
2e66: 4b2b ldr r3, [pc, #172] ; (2f14 <lv_obj_align_origo+0x2e4>)
2e68: 4798 blx r3
2e6a: 1b85 subs r5, r0, r6
2e6c: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2e6e: 0020 movs r0, r4
2e70: 4b29 ldr r3, [pc, #164] ; (2f18 <lv_obj_align_origo+0x2e8>)
2e72: 4798 blx r3
2e74: 1bc4 subs r4, r0, r7
2e76: b224 sxth r4, r4
break;
2e78: e742 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2e7a: 4275 negs r5, r6
2e7c: b22d sxth r5, r5
new_y = -obj_h_half;
2e7e: 427c negs r4, r7
2e80: b224 sxth r4, r4
break;
2e82: e73d b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2e84: 4275 negs r5, r6
2e86: b22d sxth r5, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2e88: 9803 ldr r0, [sp, #12]
2e8a: 4b23 ldr r3, [pc, #140] ; (2f18 <lv_obj_align_origo+0x2e8>)
2e8c: 4798 blx r3
2e8e: 0fc4 lsrs r4, r0, #31
2e90: 1824 adds r4, r4, r0
2e92: 1064 asrs r4, r4, #1
2e94: 1be4 subs r4, r4, r7
2e96: b224 sxth r4, r4
break;
2e98: e732 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = -obj_w_half;
2e9a: 4275 negs r5, r6
2e9c: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2e9e: 9803 ldr r0, [sp, #12]
2ea0: 4b1d ldr r3, [pc, #116] ; (2f18 <lv_obj_align_origo+0x2e8>)
2ea2: 4798 blx r3
2ea4: 1bc4 subs r4, r0, r7
2ea6: b224 sxth r4, r4
break;
2ea8: e72a b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2eaa: 9803 ldr r0, [sp, #12]
2eac: 4b19 ldr r3, [pc, #100] ; (2f14 <lv_obj_align_origo+0x2e4>)
2eae: 4798 blx r3
2eb0: 1b85 subs r5, r0, r6
2eb2: b22d sxth r5, r5
new_y = -obj_h_half;
2eb4: 427c negs r4, r7
2eb6: b224 sxth r4, r4
break;
2eb8: e722 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2eba: 9c03 ldr r4, [sp, #12]
2ebc: 0020 movs r0, r4
2ebe: 4b15 ldr r3, [pc, #84] ; (2f14 <lv_obj_align_origo+0x2e4>)
2ec0: 4798 blx r3
2ec2: 1b85 subs r5, r0, r6
2ec4: b22d sxth r5, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2ec6: 0020 movs r0, r4
2ec8: 4b13 ldr r3, [pc, #76] ; (2f18 <lv_obj_align_origo+0x2e8>)
2eca: 4798 blx r3
2ecc: 0fc4 lsrs r4, r0, #31
2ece: 1824 adds r4, r4, r0
2ed0: 1064 asrs r4, r4, #1
2ed2: 1be4 subs r4, r4, r7
2ed4: b224 sxth r4, r4
break;
2ed6: e713 b.n 2d00 <lv_obj_align_origo+0xd0>
new_x = lv_obj_get_width(base) - obj_w_half;
2ed8: 9c03 ldr r4, [sp, #12]
2eda: 0020 movs r0, r4
2edc: 4b0d ldr r3, [pc, #52] ; (2f14 <lv_obj_align_origo+0x2e4>)
2ede: 4798 blx r3
2ee0: 1b85 subs r5, r0, r6
2ee2: b22d sxth r5, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2ee4: 0020 movs r0, r4
2ee6: 4b0c ldr r3, [pc, #48] ; (2f18 <lv_obj_align_origo+0x2e8>)
2ee8: 4798 blx r3
2eea: 1bc4 subs r4, r0, r7
2eec: b224 sxth r4, r4
break;
2eee: e707 b.n 2d00 <lv_obj_align_origo+0xd0>
2ef0: 000017ad .word 0x000017ad
2ef4: 00025988 .word 0x00025988
2ef8: 00000395 .word 0x00000395
2efc: 00025c2c .word 0x00025c2c
2f00: 00012159 .word 0x00012159
2f04: 00025d20 .word 0x00025d20
2f08: 000017b5 .word 0x000017b5
2f0c: 000023d9 .word 0x000023d9
2f10: 0000243d .word 0x0000243d
2f14: 000024a1 .word 0x000024a1
2f18: 000024f5 .word 0x000024f5
2f1c: 00025864 .word 0x00025864
2f20: 000021a5 .word 0x000021a5
2f24: 000003a1 .word 0x000003a1
2f28: 00002979 .word 0x00002979
00002f2c <lv_obj_realign>:
{
2f2c: b530 push {r4, r5, lr}
2f2e: b083 sub sp, #12
2f30: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2f32: 4b17 ldr r3, [pc, #92] ; (2f90 <lv_obj_realign+0x64>)
2f34: 4798 blx r3
2f36: 2800 cmp r0, #0
2f38: d010 beq.n 2f5c <lv_obj_realign+0x30>
if(obj->realign.origo_align)
2f3a: 2349 movs r3, #73 ; 0x49
2f3c: 5ce3 ldrb r3, [r4, r3]
2f3e: 079b lsls r3, r3, #30
2f40: d519 bpl.n 2f76 <lv_obj_realign+0x4a>
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2f42: 2344 movs r3, #68 ; 0x44
2f44: 5ee3 ldrsh r3, [r4, r3]
2f46: 2248 movs r2, #72 ; 0x48
2f48: 5ca2 ldrb r2, [r4, r2]
2f4a: 2146 movs r1, #70 ; 0x46
2f4c: 5e61 ldrsh r1, [r4, r1]
2f4e: 9100 str r1, [sp, #0]
2f50: 6c21 ldr r1, [r4, #64] ; 0x40
2f52: 0020 movs r0, r4
2f54: 4c0f ldr r4, [pc, #60] ; (2f94 <lv_obj_realign+0x68>)
2f56: 47a0 blx r4
}
2f58: b003 add sp, #12
2f5a: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2f5c: 4b0e ldr r3, [pc, #56] ; (2f98 <lv_obj_realign+0x6c>)
2f5e: 9300 str r3, [sp, #0]
2f60: 4a0e ldr r2, [pc, #56] ; (2f9c <lv_obj_realign+0x70>)
2f62: 490f ldr r1, [pc, #60] ; (2fa0 <lv_obj_realign+0x74>)
2f64: 3003 adds r0, #3
2f66: 4d0f ldr r5, [pc, #60] ; (2fa4 <lv_obj_realign+0x78>)
2f68: 47a8 blx r5
2f6a: 0022 movs r2, r4
2f6c: 2300 movs r3, #0
2f6e: 480e ldr r0, [pc, #56] ; (2fa8 <lv_obj_realign+0x7c>)
2f70: 490e ldr r1, [pc, #56] ; (2fac <lv_obj_realign+0x80>)
2f72: 4788 blx r1
2f74: e7fe b.n 2f74 <lv_obj_realign+0x48>
lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2f76: 2344 movs r3, #68 ; 0x44
2f78: 5ee3 ldrsh r3, [r4, r3]
2f7a: 2248 movs r2, #72 ; 0x48
2f7c: 5ca2 ldrb r2, [r4, r2]
2f7e: 2146 movs r1, #70 ; 0x46
2f80: 5e61 ldrsh r1, [r4, r1]
2f82: 9100 str r1, [sp, #0]
2f84: 6c21 ldr r1, [r4, #64] ; 0x40
2f86: 0020 movs r0, r4
2f88: 4c09 ldr r4, [pc, #36] ; (2fb0 <lv_obj_realign+0x84>)
2f8a: 47a0 blx r4
}
2f8c: e7e4 b.n 2f58 <lv_obj_realign+0x2c>
2f8e: 46c0 nop ; (mov r8, r8)
2f90: 000017ad .word 0x000017ad
2f94: 00002c31 .word 0x00002c31
2f98: 0002599c .word 0x0002599c
2f9c: 0000042a .word 0x0000042a
2fa0: 00025c2c .word 0x00025c2c
2fa4: 00012159 .word 0x00012159
2fa8: 00025d20 .word 0x00025d20
2fac: 000017b5 .word 0x000017b5
2fb0: 00002b31 .word 0x00002b31
00002fb4 <refresh_children_style>:
{
2fb4: b5f8 push {r3, r4, r5, r6, r7, lr}
2fb6: 0006 movs r6, r0
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2fb8: 2100 movs r1, #0
2fba: 4b0c ldr r3, [pc, #48] ; (2fec <refresh_children_style+0x38>)
2fbc: 4798 blx r3
2fbe: 1e04 subs r4, r0, #0
while(child != NULL) {
2fc0: d012 beq.n 2fe8 <refresh_children_style+0x34>
lv_obj_invalidate(child);
2fc2: 4d0b ldr r5, [pc, #44] ; (2ff0 <refresh_children_style+0x3c>)
child = lv_obj_get_child(obj, child);
2fc4: 4f09 ldr r7, [pc, #36] ; (2fec <refresh_children_style+0x38>)
lv_obj_invalidate(child);
2fc6: 0020 movs r0, r4
2fc8: 47a8 blx r5
child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL);
2fca: 2200 movs r2, #0
2fcc: 2104 movs r1, #4
2fce: 0020 movs r0, r4
2fd0: 69e3 ldr r3, [r4, #28]
2fd2: 4798 blx r3
lv_obj_invalidate(child);
2fd4: 0020 movs r0, r4
2fd6: 47a8 blx r5
refresh_children_style(child); /*Check children too*/
2fd8: 0020 movs r0, r4
2fda: f7ff ffeb bl 2fb4 <refresh_children_style>
child = lv_obj_get_child(obj, child);
2fde: 0021 movs r1, r4
2fe0: 0030 movs r0, r6
2fe2: 47b8 blx r7
2fe4: 1e04 subs r4, r0, #0
while(child != NULL) {
2fe6: d1ee bne.n 2fc6 <refresh_children_style+0x12>
}
2fe8: bdf8 pop {r3, r4, r5, r6, r7, pc}
2fea: 46c0 nop ; (mov r8, r8)
2fec: 00002315 .word 0x00002315
2ff0: 00002869 .word 0x00002869
00002ff4 <lv_obj_refresh_style>:
{
2ff4: b530 push {r4, r5, lr}
2ff6: b083 sub sp, #12
2ff8: 0005 movs r5, r0
2ffa: 000c movs r4, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2ffc: 4b35 ldr r3, [pc, #212] ; (30d4 <lv_obj_refresh_style+0xe0>)
2ffe: 4798 blx r3
3000: 2800 cmp r0, #0
3002: d013 beq.n 302c <lv_obj_refresh_style+0x38>
switch(prop) {
3004: 2c71 cmp r4, #113 ; 0x71
3006: d846 bhi.n 3096 <lv_obj_refresh_style+0xa2>
3008: 2c70 cmp r4, #112 ; 0x70
300a: d222 bcs.n 3052 <lv_obj_refresh_style+0x5e>
300c: 2c41 cmp r4, #65 ; 0x41
300e: d81a bhi.n 3046 <lv_obj_refresh_style+0x52>
3010: 2c40 cmp r4, #64 ; 0x40
3012: d21e bcs.n 3052 <lv_obj_refresh_style+0x5e>
3014: 2c02 cmp r4, #2
3016: d305 bcc.n 3024 <lv_obj_refresh_style+0x30>
3018: 2c07 cmp r4, #7
301a: d91a bls.n 3052 <lv_obj_refresh_style+0x5e>
301c: 0023 movs r3, r4
301e: 3b10 subs r3, #16
3020: 2b08 cmp r3, #8
3022: d916 bls.n 3052 <lv_obj_refresh_style+0x5e>
lv_obj_invalidate(obj);
3024: 0028 movs r0, r5
3026: 4b2c ldr r3, [pc, #176] ; (30d8 <lv_obj_refresh_style+0xe4>)
3028: 4798 blx r3
}
302a: e02f b.n 308c <lv_obj_refresh_style+0x98>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
302c: 4b2b ldr r3, [pc, #172] ; (30dc <lv_obj_refresh_style+0xe8>)
302e: 9300 str r3, [sp, #0]
3030: 4a2b ldr r2, [pc, #172] ; (30e0 <lv_obj_refresh_style+0xec>)
3032: 492c ldr r1, [pc, #176] ; (30e4 <lv_obj_refresh_style+0xf0>)
3034: 3003 adds r0, #3
3036: 4c2c ldr r4, [pc, #176] ; (30e8 <lv_obj_refresh_style+0xf4>)
3038: 47a0 blx r4
303a: 002a movs r2, r5
303c: 2300 movs r3, #0
303e: 482b ldr r0, [pc, #172] ; (30ec <lv_obj_refresh_style+0xf8>)
3040: 492b ldr r1, [pc, #172] ; (30f0 <lv_obj_refresh_style+0xfc>)
3042: 4788 blx r1
3044: e7fe b.n 3044 <lv_obj_refresh_style+0x50>
switch(prop) {
3046: 2c53 cmp r4, #83 ; 0x53
3048: d822 bhi.n 3090 <lv_obj_refresh_style+0x9c>
304a: 2c50 cmp r4, #80 ; 0x50
304c: d201 bcs.n 3052 <lv_obj_refresh_style+0x5e>
304e: 2c4c cmp r4, #76 ; 0x4c
3050: d1e8 bne.n 3024 <lv_obj_refresh_style+0x30>
lv_obj_invalidate(obj);
3052: 0028 movs r0, r5
3054: 4b20 ldr r3, [pc, #128] ; (30d8 <lv_obj_refresh_style+0xe4>)
3056: 4798 blx r3
obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL);
3058: 2200 movs r2, #0
305a: 2104 movs r1, #4
305c: 0028 movs r0, r5
305e: 69eb ldr r3, [r5, #28]
3060: 4798 blx r3
switch(prop) {
3062: 2c15 cmp r4, #21
3064: d30a bcc.n 307c <lv_obj_refresh_style+0x88>
3066: 2c18 cmp r4, #24
3068: d901 bls.n 306e <lv_obj_refresh_style+0x7a>
306a: 2cff cmp r4, #255 ; 0xff
306c: d106 bne.n 307c <lv_obj_refresh_style+0x88>
if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL);
306e: 6828 ldr r0, [r5, #0]
3070: 2800 cmp r0, #0
3072: d003 beq.n 307c <lv_obj_refresh_style+0x88>
3074: 69c3 ldr r3, [r0, #28]
3076: 2200 movs r2, #0
3078: 2101 movs r1, #1
307a: 4798 blx r3
lv_obj_invalidate(obj);
307c: 0028 movs r0, r5
307e: 4b16 ldr r3, [pc, #88] ; (30d8 <lv_obj_refresh_style+0xe4>)
3080: 4798 blx r3
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
3082: 2cff cmp r4, #255 ; 0xff
3084: d021 beq.n 30ca <lv_obj_refresh_style+0xd6>
3086: b224 sxth r4, r4
3088: 2c00 cmp r4, #0
308a: db1e blt.n 30ca <lv_obj_refresh_style+0xd6>
}
308c: b003 add sp, #12
308e: bd30 pop {r4, r5, pc}
switch(prop) {
3090: 2c5c cmp r4, #92 ; 0x5c
3092: d1c7 bne.n 3024 <lv_obj_refresh_style+0x30>
3094: e7dd b.n 3052 <lv_obj_refresh_style+0x5e>
3096: 2c7f cmp r4, #127 ; 0x7f
3098: d90a bls.n 30b0 <lv_obj_refresh_style+0xbc>
309a: 4b16 ldr r3, [pc, #88] ; (30f4 <lv_obj_refresh_style+0x100>)
309c: 429c cmp r4, r3
309e: d810 bhi.n 30c2 <lv_obj_refresh_style+0xce>
30a0: 4b15 ldr r3, [pc, #84] ; (30f8 <lv_obj_refresh_style+0x104>)
30a2: 429c cmp r4, r3
30a4: d2d5 bcs.n 3052 <lv_obj_refresh_style+0x5e>
30a6: 2c90 cmp r4, #144 ; 0x90
30a8: d0d3 beq.n 3052 <lv_obj_refresh_style+0x5e>
30aa: 2cff cmp r4, #255 ; 0xff
30ac: d1ba bne.n 3024 <lv_obj_refresh_style+0x30>
30ae: e7d0 b.n 3052 <lv_obj_refresh_style+0x5e>
30b0: 2c7e cmp r4, #126 ; 0x7e
30b2: d2ce bcs.n 3052 <lv_obj_refresh_style+0x5e>
30b4: 2c73 cmp r4, #115 ; 0x73
30b6: d3b5 bcc.n 3024 <lv_obj_refresh_style+0x30>
30b8: 2c75 cmp r4, #117 ; 0x75
30ba: d9ca bls.n 3052 <lv_obj_refresh_style+0x5e>
30bc: 2c7c cmp r4, #124 ; 0x7c
30be: d1b1 bne.n 3024 <lv_obj_refresh_style+0x30>
30c0: e7c7 b.n 3052 <lv_obj_refresh_style+0x5e>
30c2: 4b0e ldr r3, [pc, #56] ; (30fc <lv_obj_refresh_style+0x108>)
30c4: 429c cmp r4, r3
30c6: d1ad bne.n 3024 <lv_obj_refresh_style+0x30>
30c8: e7c3 b.n 3052 <lv_obj_refresh_style+0x5e>
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
30ca: 0028 movs r0, r5
30cc: 4b0c ldr r3, [pc, #48] ; (3100 <lv_obj_refresh_style+0x10c>)
30ce: 4798 blx r3
30d0: e7dc b.n 308c <lv_obj_refresh_style+0x98>
30d2: 46c0 nop ; (mov r8, r8)
30d4: 000017ad .word 0x000017ad
30d8: 00002869 .word 0x00002869
30dc: 000259c4 .word 0x000259c4
30e0: 0000051d .word 0x0000051d
30e4: 00025c2c .word 0x00025c2c
30e8: 00012159 .word 0x00012159
30ec: 00025d20 .word 0x00025d20
30f0: 000017b5 .word 0x000017b5
30f4: 00008081 .word 0x00008081
30f8: 00008080 .word 0x00008080
30fc: 0000808e .word 0x0000808e
3100: 00002fb5 .word 0x00002fb5
00003104 <lv_obj_reset_style_list>:
{
3104: b510 push {r4, lr}
3106: 0004 movs r4, r0
lv_obj_clean_style_list(obj, part);
3108: 4b03 ldr r3, [pc, #12] ; (3118 <lv_obj_reset_style_list+0x14>)
310a: 4798 blx r3
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
310c: 21ff movs r1, #255 ; 0xff
310e: 0020 movs r0, r4
3110: 4b02 ldr r3, [pc, #8] ; (311c <lv_obj_reset_style_list+0x18>)
3112: 4798 blx r3
}
3114: bd10 pop {r4, pc}
3116: 46c0 nop ; (mov r8, r8)
3118: 00002625 .word 0x00002625
311c: 00002ff5 .word 0x00002ff5
00003120 <report_style_mod_core>:
{
3120: b5f0 push {r4, r5, r6, r7, lr}
3122: 46c6 mov lr, r8
3124: b500 push {lr}
3126: b082 sub sp, #8
3128: 0007 movs r7, r0
312a: 9101 str r1, [sp, #4]
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
312c: 2500 movs r5, #0
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
312e: 4b21 ldr r3, [pc, #132] ; (31b4 <report_style_mod_core+0x94>)
3130: 4698 mov r8, r3
void _lv_style_list_reset(lv_style_list_t * style_list);
static inline lv_style_t * lv_style_list_get_style(lv_style_list_t * list, uint8_t id)
{
if(list->has_trans && list->skip_trans) id++;
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
3132: 2300 movs r3, #0
3134: 9300 str r3, [sp, #0]
3136: e01c b.n 3172 <report_style_mod_core+0x52>
if(list->has_trans && list->skip_trans) id++;
3138: 1c5a adds r2, r3, #1
313a: b2d2 uxtb r2, r2
313c: e00a b.n 3154 <report_style_mod_core+0x34>
if(class == style || style == NULL) {
313e: 42a7 cmp r7, r4
3140: d00f beq.n 3162 <report_style_mod_core+0x42>
3142: 2f00 cmp r7, #0
3144: d00d beq.n 3162 <report_style_mod_core+0x42>
for(ci = 0; ci < dsc->style_cnt; ci++) {
3146: 3301 adds r3, #1
3148: b2db uxtb r3, r3
314a: 428b cmp r3, r1
314c: d00d beq.n 316a <report_style_mod_core+0x4a>
314e: 001a movs r2, r3
3150: 2806 cmp r0, #6
3152: d0f1 beq.n 3138 <report_style_mod_core+0x18>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
3154: 9c00 ldr r4, [sp, #0]
3156: 428a cmp r2, r1
3158: d2f1 bcs.n 313e <report_style_mod_core+0x1e>
return list->style_list[id];
315a: 0092 lsls r2, r2, #2
315c: 6834 ldr r4, [r6, #0]
315e: 5914 ldr r4, [r2, r4]
3160: e7ed b.n 313e <report_style_mod_core+0x1e>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3162: 21ff movs r1, #255 ; 0xff
3164: 9801 ldr r0, [sp, #4]
3166: 4b14 ldr r3, [pc, #80] ; (31b8 <report_style_mod_core+0x98>)
3168: 4798 blx r3
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
316a: 3501 adds r5, #1
316c: b2ed uxtb r5, r5
316e: 2d40 cmp r5, #64 ; 0x40
3170: d00c beq.n 318c <report_style_mod_core+0x6c>
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
3172: 0029 movs r1, r5
3174: 9801 ldr r0, [sp, #4]
3176: 47c0 blx r8
3178: 1e06 subs r6, r0, #0
if(dsc == NULL) break;
317a: d007 beq.n 318c <report_style_mod_core+0x6c>
for(ci = 0; ci < dsc->style_cnt; ci++) {
317c: 7901 ldrb r1, [r0, #4]
317e: 2900 cmp r1, #0
3180: d0f3 beq.n 316a <report_style_mod_core+0x4a>
if(list->has_trans && list->skip_trans) id++;
3182: 7943 ldrb r3, [r0, #5]
3184: 2006 movs r0, #6
3186: 4018 ands r0, r3
3188: 2300 movs r3, #0
318a: e7e0 b.n 314e <report_style_mod_core+0x2e>
lv_obj_t * child = lv_obj_get_child(obj, NULL);
318c: 2100 movs r1, #0
318e: 9801 ldr r0, [sp, #4]
3190: 4b0a ldr r3, [pc, #40] ; (31bc <report_style_mod_core+0x9c>)
3192: 4798 blx r3
3194: 1e04 subs r4, r0, #0
while(child) {
3196: d009 beq.n 31ac <report_style_mod_core+0x8c>
child = lv_obj_get_child(obj, child);
3198: 4e08 ldr r6, [pc, #32] ; (31bc <report_style_mod_core+0x9c>)
report_style_mod_core(style, child);
319a: 0021 movs r1, r4
319c: 0038 movs r0, r7
319e: f7ff ffbf bl 3120 <report_style_mod_core>
child = lv_obj_get_child(obj, child);
31a2: 0021 movs r1, r4
31a4: 9801 ldr r0, [sp, #4]
31a6: 47b0 blx r6
31a8: 1e04 subs r4, r0, #0
while(child) {
31aa: d1f6 bne.n 319a <report_style_mod_core+0x7a>
}
31ac: b002 add sp, #8
31ae: bc04 pop {r2}
31b0: 4690 mov r8, r2
31b2: bdf0 pop {r4, r5, r6, r7, pc}
31b4: 00002549 .word 0x00002549
31b8: 00002ff5 .word 0x00002ff5
31bc: 00002315 .word 0x00002315
000031c0 <lv_obj_report_style_mod>:
{
31c0: b5f0 push {r4, r5, r6, r7, lr}
31c2: 46d6 mov lr, sl
31c4: 464f mov r7, r9
31c6: b580 push {r7, lr}
31c8: b083 sub sp, #12
31ca: 9001 str r0, [sp, #4]
lv_disp_t * d = lv_disp_get_next(NULL);
31cc: 2000 movs r0, #0
31ce: 4b11 ldr r3, [pc, #68] ; (3214 <lv_obj_report_style_mod+0x54>)
31d0: 4798 blx r3
31d2: 4681 mov r9, r0
while(d) {
31d4: 2800 cmp r0, #0
31d6: d017 beq.n 3208 <lv_obj_report_style_mod+0x48>
_LV_LL_READ(d->scr_ll, i) {
31d8: 4b0f ldr r3, [pc, #60] ; (3218 <lv_obj_report_style_mod+0x58>)
31da: 469a mov sl, r3
report_style_mod_core(style, i);
31dc: 4f0f ldr r7, [pc, #60] ; (321c <lv_obj_report_style_mod+0x5c>)
_LV_LL_READ(d->scr_ll, i) {
31de: 4e10 ldr r6, [pc, #64] ; (3220 <lv_obj_report_style_mod+0x60>)
31e0: 464d mov r5, r9
31e2: 3530 adds r5, #48 ; 0x30
31e4: 0028 movs r0, r5
31e6: 47d0 blx sl
31e8: 1e04 subs r4, r0, #0
31ea: d007 beq.n 31fc <lv_obj_report_style_mod+0x3c>
report_style_mod_core(style, i);
31ec: 0021 movs r1, r4
31ee: 9801 ldr r0, [sp, #4]
31f0: 47b8 blx r7
_LV_LL_READ(d->scr_ll, i) {
31f2: 0021 movs r1, r4
31f4: 0028 movs r0, r5
31f6: 47b0 blx r6
31f8: 1e04 subs r4, r0, #0
31fa: d1f7 bne.n 31ec <lv_obj_report_style_mod+0x2c>
d = lv_disp_get_next(d);
31fc: 4648 mov r0, r9
31fe: 4b05 ldr r3, [pc, #20] ; (3214 <lv_obj_report_style_mod+0x54>)
3200: 4798 blx r3
3202: 4681 mov r9, r0
while(d) {
3204: 2800 cmp r0, #0
3206: d1eb bne.n 31e0 <lv_obj_report_style_mod+0x20>
}
3208: b003 add sp, #12
320a: bc0c pop {r2, r3}
320c: 4691 mov r9, r2
320e: 469a mov sl, r3
3210: bdf0 pop {r4, r5, r6, r7, pc}
3212: 46c0 nop ; (mov r8, r8)
3214: 00010e51 .word 0x00010e51
3218: 00011e85 .word 0x00011e85
321c: 00003121 .word 0x00003121
3220: 00011e9d .word 0x00011e9d
00003224 <trans_anim_cb>:
{
3224: b5f8 push {r3, r4, r5, r6, r7, lr}
3226: 0004 movs r4, r0
3228: 000d movs r5, r1
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
322a: 7981 ldrb r1, [r0, #6]
322c: 6800 ldr r0, [r0, #0]
322e: 4b3f ldr r3, [pc, #252] ; (332c <trans_anim_cb+0x108>)
3230: 4798 blx r3
lv_style_t * style = _lv_style_list_get_transition_style(list);
3232: 4b3f ldr r3, [pc, #252] ; (3330 <trans_anim_cb+0x10c>)
3234: 4798 blx r3
if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/
3236: 88a1 ldrh r1, [r4, #4]
3238: 230f movs r3, #15
323a: 400b ands r3, r1
323c: 2b08 cmp r3, #8
323e: dc19 bgt.n 3274 <trans_anim_cb+0x50>
if(v == 0) x = tr->start_value._int;
3240: 2d00 cmp r5, #0
3242: d108 bne.n 3256 <trans_anim_cb+0x32>
3244: 2308 movs r3, #8
3246: 5ee2 ldrsh r2, [r4, r3]
_lv_style_set_int(style, tr->prop, x);
3248: 4b3a ldr r3, [pc, #232] ; (3334 <trans_anim_cb+0x110>)
324a: 4798 blx r3
lv_obj_refresh_style(tr->obj, tr->prop);
324c: 88a1 ldrh r1, [r4, #4]
324e: 6820 ldr r0, [r4, #0]
3250: 4b39 ldr r3, [pc, #228] ; (3338 <trans_anim_cb+0x114>)
3252: 4798 blx r3
}
3254: bdf8 pop {r3, r4, r5, r6, r7, pc}
else if(v == 255) x = tr->end_value._int;
3256: 2dff cmp r5, #255 ; 0xff
3258: d009 beq.n 326e <trans_anim_cb+0x4a>
else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8);
325a: 2308 movs r3, #8
325c: 5ee6 ldrsh r6, [r4, r3]
325e: 230c movs r3, #12
3260: 5ee2 ldrsh r2, [r4, r3]
3262: 1b92 subs r2, r2, r6
3264: 436a muls r2, r5
3266: 1212 asrs r2, r2, #8
3268: 1992 adds r2, r2, r6
326a: b212 sxth r2, r2
326c: e7ec b.n 3248 <trans_anim_cb+0x24>
else if(v == 255) x = tr->end_value._int;
326e: 230c movs r3, #12
3270: 5ee2 ldrsh r2, [r4, r3]
3272: e7e9 b.n 3248 <trans_anim_cb+0x24>
else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3274: 2b0b cmp r3, #11
3276: dc3c bgt.n 32f2 <trans_anim_cb+0xce>
if(v <= 0) x = tr->start_value._color;
3278: 2d00 cmp r5, #0
327a: dd05 ble.n 3288 <trans_anim_cb+0x64>
else if(v >= 255) x = tr->end_value._color;
327c: 2dfe cmp r5, #254 ; 0xfe
327e: dd05 ble.n 328c <trans_anim_cb+0x68>
3280: 89a2 ldrh r2, [r4, #12]
_lv_style_set_color(style, tr->prop, x);
3282: 4b2e ldr r3, [pc, #184] ; (333c <trans_anim_cb+0x118>)
3284: 4798 blx r3
3286: e7e1 b.n 324c <trans_anim_cb+0x28>
if(v <= 0) x = tr->start_value._color;
3288: 8922 ldrh r2, [r4, #8]
328a: e7fa b.n 3282 <trans_anim_cb+0x5e>
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
328c: b2ed uxtb r5, r5
328e: 22ff movs r2, #255 ; 0xff
3290: 1b52 subs r2, r2, r5
3292: 7b63 ldrb r3, [r4, #13]
3294: 08db lsrs r3, r3, #3
3296: 436b muls r3, r5
3298: 7a66 ldrb r6, [r4, #9]
329a: 08f6 lsrs r6, r6, #3
329c: 4356 muls r6, r2
329e: 199e adds r6, r3, r6
32a0: 0233 lsls r3, r6, #8
32a2: 199b adds r3, r3, r6
32a4: 01db lsls r3, r3, #7
32a6: 199b adds r3, r3, r6
32a8: 011b lsls r3, r3, #4
32aa: 0edb lsrs r3, r3, #27
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
32ac: 89a7 ldrh r7, [r4, #12]
32ae: 057f lsls r7, r7, #21
32b0: 0ebf lsrs r7, r7, #26
32b2: 436f muls r7, r5
32b4: 8926 ldrh r6, [r4, #8]
32b6: 0576 lsls r6, r6, #21
32b8: 0eb6 lsrs r6, r6, #26
32ba: 4356 muls r6, r2
32bc: 19bf adds r7, r7, r6
32be: 023e lsls r6, r7, #8
32c0: 19f6 adds r6, r6, r7
32c2: 01f6 lsls r6, r6, #7
32c4: 19f6 adds r6, r6, r7
32c6: 00f6 lsls r6, r6, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
32c8: 7b27 ldrb r7, [r4, #12]
32ca: 06ff lsls r7, r7, #27
32cc: 0eff lsrs r7, r7, #27
32ce: 437d muls r5, r7
32d0: 7a27 ldrb r7, [r4, #8]
32d2: 06ff lsls r7, r7, #27
32d4: 0eff lsrs r7, r7, #27
32d6: 437a muls r2, r7
32d8: 18ad adds r5, r5, r2
32da: 022a lsls r2, r5, #8
32dc: 1952 adds r2, r2, r5
32de: 01d2 lsls r2, r2, #7
32e0: 1952 adds r2, r2, r5
32e2: 0112 lsls r2, r2, #4
32e4: 0eb6 lsrs r6, r6, #26
32e6: 0176 lsls r6, r6, #5
32e8: 0ed2 lsrs r2, r2, #27
32ea: 02db lsls r3, r3, #11
32ec: 4332 orrs r2, r6
32ee: 431a orrs r2, r3
32f0: e7c7 b.n 3282 <trans_anim_cb+0x5e>
else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
32f2: 2b0d cmp r3, #13
32f4: dc11 bgt.n 331a <trans_anim_cb+0xf6>
if(v <= 0) x = tr->start_value._opa;
32f6: 2d00 cmp r5, #0
32f8: dd05 ble.n 3306 <trans_anim_cb+0xe2>
else if(v >= 255) x = tr->end_value._opa;
32fa: 2dfe cmp r5, #254 ; 0xfe
32fc: dd05 ble.n 330a <trans_anim_cb+0xe6>
32fe: 7b22 ldrb r2, [r4, #12]
_lv_style_set_opa(style, tr->prop, x);
3300: 4b0f ldr r3, [pc, #60] ; (3340 <trans_anim_cb+0x11c>)
3302: 4798 blx r3
3304: e7a2 b.n 324c <trans_anim_cb+0x28>
if(v <= 0) x = tr->start_value._opa;
3306: 7a22 ldrb r2, [r4, #8]
3308: e7fa b.n 3300 <trans_anim_cb+0xdc>
else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8);
330a: 7a22 ldrb r2, [r4, #8]
330c: 7b23 ldrb r3, [r4, #12]
330e: 1a9b subs r3, r3, r2
3310: 435d muls r5, r3
3312: 122d asrs r5, r5, #8
3314: 1952 adds r2, r2, r5
3316: b2d2 uxtb r2, r2
3318: e7f2 b.n 3300 <trans_anim_cb+0xdc>
if(v < 128) x = tr->start_value._ptr;
331a: 2d7f cmp r5, #127 ; 0x7f
331c: dc03 bgt.n 3326 <trans_anim_cb+0x102>
331e: 68a2 ldr r2, [r4, #8]
_lv_style_set_ptr(style, tr->prop, x);
3320: 4b08 ldr r3, [pc, #32] ; (3344 <trans_anim_cb+0x120>)
3322: 4798 blx r3
3324: e792 b.n 324c <trans_anim_cb+0x28>
else x = tr->end_value._ptr;
3326: 68e2 ldr r2, [r4, #12]
3328: e7fa b.n 3320 <trans_anim_cb+0xfc>
332a: 46c0 nop ; (mov r8, r8)
332c: 00002549 .word 0x00002549
3330: 00006965 .word 0x00006965
3334: 00005fad .word 0x00005fad
3338: 00002ff5 .word 0x00002ff5
333c: 00006135 .word 0x00006135
3340: 000062bd .word 0x000062bd
3344: 00006431 .word 0x00006431
00003348 <lv_obj_get_base_dir>:
{
3348: b530 push {r4, r5, lr}
334a: b083 sub sp, #12
334c: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
334e: 4b0a ldr r3, [pc, #40] ; (3378 <lv_obj_get_base_dir+0x30>)
3350: 4798 blx r3
3352: 2800 cmp r0, #0
3354: d002 beq.n 335c <lv_obj_get_base_dir+0x14>
}
3356: 2000 movs r0, #0
3358: b003 add sp, #12
335a: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
335c: 4b07 ldr r3, [pc, #28] ; (337c <lv_obj_get_base_dir+0x34>)
335e: 9300 str r3, [sp, #0]
3360: 4a07 ldr r2, [pc, #28] ; (3380 <lv_obj_get_base_dir+0x38>)
3362: 4908 ldr r1, [pc, #32] ; (3384 <lv_obj_get_base_dir+0x3c>)
3364: 3003 adds r0, #3
3366: 4d08 ldr r5, [pc, #32] ; (3388 <lv_obj_get_base_dir+0x40>)
3368: 47a8 blx r5
336a: 0022 movs r2, r4
336c: 2300 movs r3, #0
336e: 4807 ldr r0, [pc, #28] ; (338c <lv_obj_get_base_dir+0x44>)
3370: 4907 ldr r1, [pc, #28] ; (3390 <lv_obj_get_base_dir+0x48>)
3372: 4788 blx r1
3374: e7fe b.n 3374 <lv_obj_get_base_dir+0x2c>
3376: 46c0 nop ; (mov r8, r8)
3378: 000017ad .word 0x000017ad
337c: 00025b8c .word 0x00025b8c
3380: 00000ab1 .word 0x00000ab1
3384: 00025c2c .word 0x00025c2c
3388: 00012159 .word 0x00012159
338c: 00025d20 .word 0x00025d20
3390: 000017b5 .word 0x000017b5
00003394 <lv_obj_create>:
{
3394: b5f0 push {r4, r5, r6, r7, lr}
3396: 46de mov lr, fp
3398: 4657 mov r7, sl
339a: 464e mov r6, r9
339c: 4645 mov r5, r8
339e: b5e0 push {r5, r6, r7, lr}
33a0: b083 sub sp, #12
33a2: 4682 mov sl, r0
33a4: 000d movs r5, r1
if(parent == NULL) {
33a6: 2800 cmp r0, #0
33a8: d011 beq.n 33ce <lv_obj_create+0x3a>
LV_ASSERT_OBJ(parent, LV_OBJX_NAME);
33aa: 4be2 ldr r3, [pc, #904] ; (3734 <lv_obj_create+0x3a0>)
33ac: 4798 blx r3
33ae: 2800 cmp r0, #0
33b0: d000 beq.n 33b4 <lv_obj_create+0x20>
33b2: e151 b.n 3658 <lv_obj_create+0x2c4>
33b4: 4be0 ldr r3, [pc, #896] ; (3738 <lv_obj_create+0x3a4>)
33b6: 9300 str r3, [sp, #0]
33b8: 22ed movs r2, #237 ; 0xed
33ba: 49e0 ldr r1, [pc, #896] ; (373c <lv_obj_create+0x3a8>)
33bc: 3003 adds r0, #3
33be: 4ce0 ldr r4, [pc, #896] ; (3740 <lv_obj_create+0x3ac>)
33c0: 47a0 blx r4
33c2: 4652 mov r2, sl
33c4: 2300 movs r3, #0
33c6: 48df ldr r0, [pc, #892] ; (3744 <lv_obj_create+0x3b0>)
33c8: 49df ldr r1, [pc, #892] ; (3748 <lv_obj_create+0x3b4>)
33ca: 4788 blx r1
33cc: e7fe b.n 33cc <lv_obj_create+0x38>
lv_disp_t * disp = lv_disp_get_default();
33ce: 4bdf ldr r3, [pc, #892] ; (374c <lv_obj_create+0x3b8>)
33d0: 4798 blx r3
if(!disp) {
33d2: 2800 cmp r0, #0
33d4: d109 bne.n 33ea <lv_obj_create+0x56>
LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen");
33d6: 4bde ldr r3, [pc, #888] ; (3750 <lv_obj_create+0x3bc>)
33d8: 9300 str r3, [sp, #0]
33da: 4bd7 ldr r3, [pc, #860] ; (3738 <lv_obj_create+0x3a4>)
33dc: 22cf movs r2, #207 ; 0xcf
33de: 49d7 ldr r1, [pc, #860] ; (373c <lv_obj_create+0x3a8>)
33e0: 3002 adds r0, #2
33e2: 4cd7 ldr r4, [pc, #860] ; (3740 <lv_obj_create+0x3ac>)
33e4: 47a0 blx r4
return NULL;
33e6: 4654 mov r4, sl
33e8: e219 b.n 381e <lv_obj_create+0x48a>
new_obj = _lv_ll_ins_head(&disp->scr_ll);
33ea: 3030 adds r0, #48 ; 0x30
33ec: 4bd9 ldr r3, [pc, #868] ; (3754 <lv_obj_create+0x3c0>)
33ee: 4798 blx r3
33f0: 0004 movs r4, r0
LV_ASSERT_MEM(new_obj);
33f2: 4bd0 ldr r3, [pc, #832] ; (3734 <lv_obj_create+0x3a0>)
33f4: 4798 blx r3
33f6: 2800 cmp r0, #0
33f8: d10c bne.n 3414 <lv_obj_create+0x80>
33fa: 4bcf ldr r3, [pc, #828] ; (3738 <lv_obj_create+0x3a4>)
33fc: 9300 str r3, [sp, #0]
33fe: 22d4 movs r2, #212 ; 0xd4
3400: 49ce ldr r1, [pc, #824] ; (373c <lv_obj_create+0x3a8>)
3402: 3003 adds r0, #3
3404: 4dce ldr r5, [pc, #824] ; (3740 <lv_obj_create+0x3ac>)
3406: 47a8 blx r5
3408: 0022 movs r2, r4
340a: 2300 movs r3, #0
340c: 48d2 ldr r0, [pc, #840] ; (3758 <lv_obj_create+0x3c4>)
340e: 49ce ldr r1, [pc, #824] ; (3748 <lv_obj_create+0x3b4>)
3410: 4788 blx r1
3412: e7fe b.n 3412 <lv_obj_create+0x7e>
if(new_obj == NULL) return NULL;
3414: 2c00 cmp r4, #0
3416: d100 bne.n 341a <lv_obj_create+0x86>
3418: e201 b.n 381e <lv_obj_create+0x48a>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
341a: 214c movs r1, #76 ; 0x4c
341c: 0020 movs r0, r4
341e: 4bcf ldr r3, [pc, #828] ; (375c <lv_obj_create+0x3c8>)
3420: 4798 blx r3
new_obj->base_dir = LV_BIDI_DIR_LTR;
3422: 0022 movs r2, r4
3424: 3234 adds r2, #52 ; 0x34
3426: 7853 ldrb r3, [r2, #1]
3428: 2130 movs r1, #48 ; 0x30
342a: 438b bics r3, r1
342c: 7053 strb r3, [r2, #1]
new_obj->signal_cb = lv_obj_signal;
342e: 4bcc ldr r3, [pc, #816] ; (3760 <lv_obj_create+0x3cc>)
3430: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
3432: 4bcc ldr r3, [pc, #816] ; (3764 <lv_obj_create+0x3d0>)
3434: 6223 str r3, [r4, #32]
new_obj->event_cb = NULL;
3436: 2300 movs r3, #0
3438: 61a3 str r3, [r4, #24]
new_obj->coords.x1 = 0;
343a: 8223 strh r3, [r4, #16]
new_obj->coords.y1 = 0;
343c: 8263 strh r3, [r4, #18]
new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1;
343e: 2000 movs r0, #0
3440: 4bc9 ldr r3, [pc, #804] ; (3768 <lv_obj_create+0x3d4>)
3442: 4798 blx r3
3444: 3801 subs r0, #1
3446: 82a0 strh r0, [r4, #20]
new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1;
3448: 2000 movs r0, #0
344a: 4bc8 ldr r3, [pc, #800] ; (376c <lv_obj_create+0x3d8>)
344c: 4798 blx r3
344e: 3801 subs r0, #1
3450: 82e0 strh r0, [r4, #22]
_lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));
3452: 1d20 adds r0, r4, #4
3454: 214c movs r1, #76 ; 0x4c
3456: 4bc6 ldr r3, [pc, #792] ; (3770 <lv_obj_create+0x3dc>)
3458: 4798 blx r3
new_obj->ext_draw_pad = 0;
345a: 2100 movs r1, #0
345c: 2000 movs r0, #0
345e: 8661 strh r1, [r4, #50] ; 0x32
new_obj->ext_click_pad_hor = 0;
3460: 2300 movs r3, #0
3462: 2230 movs r2, #48 ; 0x30
3464: 54a0 strb r0, [r4, r2]
new_obj->ext_click_pad_ver = 0;
3466: 3201 adds r2, #1
3468: 54a3 strb r3, [r4, r2]
new_obj->realign.align = LV_ALIGN_CENTER;
346a: 3217 adds r2, #23
346c: 54a3 strb r3, [r4, r2]
new_obj->realign.xofs = 0;
346e: 2344 movs r3, #68 ; 0x44
3470: 52e1 strh r1, [r4, r3]
new_obj->realign.yofs = 0;
3472: 3302 adds r3, #2
3474: 52e1 strh r1, [r4, r3]
new_obj->realign.base = NULL;
3476: 6421 str r1, [r4, #64] ; 0x40
new_obj->realign.auto_realign = 0;
3478: 3201 adds r2, #1
347a: 5ca3 ldrb r3, [r4, r2]
347c: 2701 movs r7, #1
347e: 43bb bics r3, r7
3480: 54a3 strb r3, [r4, r2]
new_obj->group_p = NULL;
3482: 63a1 str r1, [r4, #56] ; 0x38
new_obj->adv_hittest = 0;
3484: 2334 movs r3, #52 ; 0x34
3486: 4698 mov r8, r3
3488: 5ce2 ldrb r2, [r4, r3]
new_obj->click = 1;
348a: 334b adds r3, #75 ; 0x4b
348c: 4013 ands r3, r2
348e: 2201 movs r2, #1
3490: 4694 mov ip, r2
3492: 4662 mov r2, ip
3494: 4313 orrs r3, r2
new_obj->drag_throw = 0;
3496: 227d movs r2, #125 ; 0x7d
3498: 4013 ands r3, r2
new_obj->drag_parent = 0;
349a: 3a79 subs r2, #121 ; 0x79
349c: 4393 bics r3, r2
new_obj->drag_dir = LV_DRAG_DIR_BOTH;
349e: 0027 movs r7, r4
34a0: 3734 adds r7, #52 ; 0x34
34a2: 787a ldrb r2, [r7, #1]
34a4: 260e movs r6, #14
34a6: 43b2 bics r2, r6
34a8: 2606 movs r6, #6
34aa: 46b1 mov r9, r6
34ac: 464e mov r6, r9
34ae: 4332 orrs r2, r6
new_obj->hidden = 0;
34b0: 2608 movs r6, #8
34b2: 43b3 bics r3, r6
new_obj->top = 0;
34b4: 3608 adds r6, #8
34b6: 43b3 bics r3, r6
new_obj->protect = LV_PROTECT_NONE;
34b8: 362c adds r6, #44 ; 0x2c
34ba: 55a0 strb r0, [r4, r6]
new_obj->parent_event = 0;
34bc: 3e1c subs r6, #28
34be: 43b3 bics r3, r6
34c0: 3620 adds r6, #32
34c2: 43b3 bics r3, r6
34c4: 4646 mov r6, r8
34c6: 55a3 strb r3, [r4, r6]
new_obj->gesture_parent = 1;
34c8: 4663 mov r3, ip
34ca: 431a orrs r2, r3
34cc: 707a strb r2, [r7, #1]
new_obj->state = LV_STATE_DEFAULT;
34ce: 233d movs r3, #61 ; 0x3d
34d0: 54e0 strb r0, [r4, r3]
new_obj->ext_attr = NULL;
34d2: 6261 str r1, [r4, #36] ; 0x24
lv_style_list_init(&new_obj->style_list);
34d4: 3f0c subs r7, #12
34d6: 0038 movs r0, r7
34d8: 4ba6 ldr r3, [pc, #664] ; (3774 <lv_obj_create+0x3e0>)
34da: 4798 blx r3
if(copy == NULL) {
34dc: 2d00 cmp r5, #0
34de: d100 bne.n 34e2 <lv_obj_create+0x14e>
34e0: e17b b.n 37da <lv_obj_create+0x446>
lv_style_list_copy(&new_obj->style_list, &copy->style_list);
34e2: 0029 movs r1, r5
34e4: 3128 adds r1, #40 ; 0x28
34e6: 0038 movs r0, r7
34e8: 4ba3 ldr r3, [pc, #652] ; (3778 <lv_obj_create+0x3e4>)
34ea: 4798 blx r3
34ec: 0029 movs r1, r5
34ee: 3118 adds r1, #24
uint8_t * d8 = (uint8_t *)dst;
34f0: 0022 movs r2, r4
34f2: 3210 adds r2, #16
const uint8_t * s8 = (const uint8_t *)src;
34f4: 002b movs r3, r5
34f6: 3310 adds r3, #16
*d8 = *s8;
34f8: 7818 ldrb r0, [r3, #0]
34fa: 7010 strb r0, [r2, #0]
d8++;
34fc: 3201 adds r2, #1
s8++;
34fe: 3301 adds r3, #1
while(len) {
3500: 428b cmp r3, r1
3502: d1f9 bne.n 34f8 <lv_obj_create+0x164>
new_obj->ext_draw_pad = copy->ext_draw_pad;
3504: 2232 movs r2, #50 ; 0x32
3506: 5eab ldrsh r3, [r5, r2]
3508: 8663 strh r3, [r4, #50] ; 0x32
new_obj->ext_click_pad_hor = copy->ext_click_pad_hor;
350a: 2330 movs r3, #48 ; 0x30
350c: 5cea ldrb r2, [r5, r3]
350e: 54e2 strb r2, [r4, r3]
new_obj->ext_click_pad_ver = copy->ext_click_pad_ver;
3510: 3301 adds r3, #1
3512: 5cea ldrb r2, [r5, r3]
3514: 54e2 strb r2, [r4, r3]
new_obj->realign.align = copy->realign.align;
3516: 3317 adds r3, #23
3518: 5cea ldrb r2, [r5, r3]
351a: 54e2 strb r2, [r4, r3]
new_obj->realign.xofs = copy->realign.xofs;
351c: 3b04 subs r3, #4
351e: 5eea ldrsh r2, [r5, r3]
3520: 52e2 strh r2, [r4, r3]
new_obj->realign.yofs = copy->realign.yofs;
3522: 3302 adds r3, #2
3524: 5eea ldrsh r2, [r5, r3]
3526: 52e2 strh r2, [r4, r3]
new_obj->realign.base = copy->realign.base;
3528: 6c2b ldr r3, [r5, #64] ; 0x40
352a: 6423 str r3, [r4, #64] ; 0x40
new_obj->realign.auto_realign = copy->realign.auto_realign;
352c: 2249 movs r2, #73 ; 0x49
352e: 5ca9 ldrb r1, [r5, r2]
3530: 2301 movs r3, #1
3532: 469b mov fp, r3
3534: 2701 movs r7, #1
3536: 4039 ands r1, r7
3538: 5ca3 ldrb r3, [r4, r2]
353a: 4658 mov r0, fp
353c: 4383 bics r3, r0
353e: 430b orrs r3, r1
3540: 54a3 strb r3, [r4, r2]
new_obj->event_cb = copy->event_cb;
3542: 69ab ldr r3, [r5, #24]
3544: 61a3 str r3, [r4, #24]
new_obj->adv_hittest = copy->adv_hittest;
3546: 2334 movs r3, #52 ; 0x34
3548: 5cea ldrb r2, [r5, r3]
354a: 09d2 lsrs r2, r2, #7
354c: 01d1 lsls r1, r2, #7
354e: 5ce2 ldrb r2, [r4, r3]
3550: 4694 mov ip, r2
3552: 227f movs r2, #127 ; 0x7f
3554: 4666 mov r6, ip
3556: 4032 ands r2, r6
3558: 430a orrs r2, r1
355a: 54e2 strb r2, [r4, r3]
new_obj->click = copy->click;
355c: 5cea ldrb r2, [r5, r3]
355e: 07d2 lsls r2, r2, #31
3560: 0fd2 lsrs r2, r2, #31
3562: 5ce1 ldrb r1, [r4, r3]
3564: 4381 bics r1, r0
3566: 430a orrs r2, r1
3568: 54e2 strb r2, [r4, r3]
new_obj->drag = copy->drag;
356a: 5cea ldrb r2, [r5, r3]
356c: 0852 lsrs r2, r2, #1
356e: 403a ands r2, r7
3570: 0052 lsls r2, r2, #1
3572: 5ce1 ldrb r1, [r4, r3]
3574: 2602 movs r6, #2
3576: 43b1 bics r1, r6
3578: 430a orrs r2, r1
357a: 54e2 strb r2, [r4, r3]
new_obj->drag_dir = copy->drag_dir;
357c: 2235 movs r2, #53 ; 0x35
357e: 4694 mov ip, r2
3580: 5caa ldrb r2, [r5, r2]
3582: 0021 movs r1, r4
3584: 3134 adds r1, #52 ; 0x34
3586: 360c adds r6, #12
3588: 4016 ands r6, r2
358a: 46b0 mov r8, r6
358c: 784a ldrb r2, [r1, #1]
358e: 260e movs r6, #14
3590: 43b2 bics r2, r6
3592: 4646 mov r6, r8
3594: 4332 orrs r2, r6
3596: 704a strb r2, [r1, #1]
new_obj->drag_throw = copy->drag_throw;
3598: 5cea ldrb r2, [r5, r3]
359a: 0892 lsrs r2, r2, #2
359c: 403a ands r2, r7
359e: 0092 lsls r2, r2, #2
35a0: 5ce6 ldrb r6, [r4, r3]
35a2: 46b0 mov r8, r6
35a4: 2604 movs r6, #4
35a6: 46b1 mov r9, r6
35a8: 4646 mov r6, r8
35aa: 4648 mov r0, r9
35ac: 4386 bics r6, r0
35ae: 4332 orrs r2, r6
35b0: 54e2 strb r2, [r4, r3]
new_obj->drag_parent = copy->drag_parent;
35b2: 5cea ldrb r2, [r5, r3]
35b4: 08d2 lsrs r2, r2, #3
35b6: 403a ands r2, r7
35b8: 00d2 lsls r2, r2, #3
35ba: 5ce0 ldrb r0, [r4, r3]
35bc: 4680 mov r8, r0
35be: 2008 movs r0, #8
35c0: 4646 mov r6, r8
35c2: 4386 bics r6, r0
35c4: 4332 orrs r2, r6
35c6: 54e2 strb r2, [r4, r3]
new_obj->hidden = copy->hidden;
35c8: 5cea ldrb r2, [r5, r3]
35ca: 0912 lsrs r2, r2, #4
35cc: 403a ands r2, r7
35ce: 0112 lsls r2, r2, #4
35d0: 5ce0 ldrb r0, [r4, r3]
35d2: 4680 mov r8, r0
35d4: 2010 movs r0, #16
35d6: 4646 mov r6, r8
35d8: 4386 bics r6, r0
35da: 4332 orrs r2, r6
35dc: 54e2 strb r2, [r4, r3]
new_obj->top = copy->top;
35de: 5cea ldrb r2, [r5, r3]
35e0: 0952 lsrs r2, r2, #5
35e2: 403a ands r2, r7
35e4: 0152 lsls r2, r2, #5
35e6: 5ce0 ldrb r0, [r4, r3]
35e8: 4680 mov r8, r0
35ea: 2020 movs r0, #32
35ec: 4646 mov r6, r8
35ee: 4386 bics r6, r0
35f0: 4332 orrs r2, r6
35f2: 54e2 strb r2, [r4, r3]
new_obj->parent_event = copy->parent_event;
35f4: 5cea ldrb r2, [r5, r3]
35f6: 0992 lsrs r2, r2, #6
35f8: 403a ands r2, r7
35fa: 0192 lsls r2, r2, #6
35fc: 5ce7 ldrb r7, [r4, r3]
35fe: 2040 movs r0, #64 ; 0x40
3600: 4387 bics r7, r0
3602: 433a orrs r2, r7
3604: 54e2 strb r2, [r4, r3]
new_obj->protect = copy->protect;
3606: 3308 adds r3, #8
3608: 5cea ldrb r2, [r5, r3]
360a: 54e2 strb r2, [r4, r3]
new_obj->gesture_parent = copy->gesture_parent;
360c: 4663 mov r3, ip
360e: 5ceb ldrb r3, [r5, r3]
3610: 07db lsls r3, r3, #31
3612: 0fdb lsrs r3, r3, #31
3614: 784a ldrb r2, [r1, #1]
3616: 4658 mov r0, fp
3618: 4382 bics r2, r0
361a: 4313 orrs r3, r2
361c: 704b strb r3, [r1, #1]
if(copy->group_p != NULL) {
361e: 6ba8 ldr r0, [r5, #56] ; 0x38
3620: 2800 cmp r0, #0
3622: d002 beq.n 362a <lv_obj_create+0x296>
lv_group_add_obj(copy->group_p, new_obj);
3624: 0021 movs r1, r4
3626: 4b55 ldr r3, [pc, #340] ; (377c <lv_obj_create+0x3e8>)
3628: 4798 blx r3
if(lv_obj_get_parent(copy) != NULL && parent != NULL) {
362a: 0028 movs r0, r5
362c: 4b54 ldr r3, [pc, #336] ; (3780 <lv_obj_create+0x3ec>)
362e: 4798 blx r3
3630: 2800 cmp r0, #0
3632: d100 bne.n 3636 <lv_obj_create+0x2a2>
3634: e0de b.n 37f4 <lv_obj_create+0x460>
3636: 4653 mov r3, sl
3638: 2b00 cmp r3, #0
363a: d100 bne.n 363e <lv_obj_create+0x2aa>
363c: e0e6 b.n 380c <lv_obj_create+0x478>
lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy));
363e: 0028 movs r0, r5
3640: 4b50 ldr r3, [pc, #320] ; (3784 <lv_obj_create+0x3f0>)
3642: 4798 blx r3
3644: 0007 movs r7, r0
3646: 0028 movs r0, r5
3648: 4b4f ldr r3, [pc, #316] ; (3788 <lv_obj_create+0x3f4>)
364a: 4798 blx r3
364c: 0002 movs r2, r0
364e: 0039 movs r1, r7
3650: 0020 movs r0, r4
3652: 4b4e ldr r3, [pc, #312] ; (378c <lv_obj_create+0x3f8>)
3654: 4798 blx r3
3656: e0d0 b.n 37fa <lv_obj_create+0x466>
new_obj = _lv_ll_ins_head(&parent->child_ll);
3658: 4653 mov r3, sl
365a: 1d18 adds r0, r3, #4
365c: 4b3d ldr r3, [pc, #244] ; (3754 <lv_obj_create+0x3c0>)
365e: 4798 blx r3
3660: 0004 movs r4, r0
LV_ASSERT_MEM(new_obj);
3662: 4b34 ldr r3, [pc, #208] ; (3734 <lv_obj_create+0x3a0>)
3664: 4798 blx r3
3666: 2800 cmp r0, #0
3668: d04b beq.n 3702 <lv_obj_create+0x36e>
if(new_obj == NULL) return NULL;
366a: 2c00 cmp r4, #0
366c: d100 bne.n 3670 <lv_obj_create+0x2dc>
366e: e0d6 b.n 381e <lv_obj_create+0x48a>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
3670: 214c movs r1, #76 ; 0x4c
3672: 0020 movs r0, r4
3674: 4b39 ldr r3, [pc, #228] ; (375c <lv_obj_create+0x3c8>)
3676: 4798 blx r3
new_obj->parent = parent;
3678: 4653 mov r3, sl
367a: 6023 str r3, [r4, #0]
new_obj->base_dir = LV_BIDI_DIR_LTR;
367c: 0022 movs r2, r4
367e: 3234 adds r2, #52 ; 0x34
3680: 7853 ldrb r3, [r2, #1]
3682: 2130 movs r1, #48 ; 0x30
3684: 438b bics r3, r1
3686: 7053 strb r3, [r2, #1]
new_obj->signal_cb = lv_obj_signal;
3688: 4b35 ldr r3, [pc, #212] ; (3760 <lv_obj_create+0x3cc>)
368a: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
368c: 4b35 ldr r3, [pc, #212] ; (3764 <lv_obj_create+0x3d0>)
368e: 6223 str r3, [r4, #32]
new_obj->event_cb = NULL;
3690: 2300 movs r3, #0
3692: 61a3 str r3, [r4, #24]
new_obj->coords.y1 = parent->coords.y1;
3694: 4653 mov r3, sl
3696: 2212 movs r2, #18
3698: 5e9b ldrsh r3, [r3, r2]
369a: 8263 strh r3, [r4, #18]
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
369c: 4653 mov r3, sl
369e: 8a5f ldrh r7, [r3, #18]
36a0: 2000 movs r0, #0
36a2: 4b3b ldr r3, [pc, #236] ; (3790 <lv_obj_create+0x3fc>)
36a4: 4798 blx r3
36a6: 2332 movs r3, #50 ; 0x32
36a8: 4343 muls r3, r0
36aa: 3350 adds r3, #80 ; 0x50
36ac: 2240 movs r2, #64 ; 0x40
36ae: 32ff adds r2, #255 ; 0xff
36b0: 2001 movs r0, #1
36b2: 4293 cmp r3, r2
36b4: d832 bhi.n 371c <lv_obj_create+0x388>
36b6: 19c0 adds r0, r0, r7
36b8: 82e0 strh r0, [r4, #22]
if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) {
36ba: 0020 movs r0, r4
36bc: 4b35 ldr r3, [pc, #212] ; (3794 <lv_obj_create+0x400>)
36be: 4798 blx r3
36c0: 2801 cmp r0, #1
36c2: d06b beq.n 379c <lv_obj_create+0x408>
new_obj->coords.x1 = parent->coords.x1;
36c4: 4653 mov r3, sl
36c6: 2210 movs r2, #16
36c8: 5e9b ldrsh r3, [r3, r2]
36ca: 8223 strh r3, [r4, #16]
new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH;
36cc: 4653 mov r3, sl
36ce: 8a1f ldrh r7, [r3, #16]
36d0: 2000 movs r0, #0
36d2: 4b2f ldr r3, [pc, #188] ; (3790 <lv_obj_create+0x3fc>)
36d4: 4798 blx r3
36d6: 2364 movs r3, #100 ; 0x64
36d8: 4343 muls r3, r0
36da: 3350 adds r3, #80 ; 0x50
36dc: 2240 movs r2, #64 ; 0x40
36de: 32ff adds r2, #255 ; 0xff
36e0: 2001 movs r0, #1
36e2: 4293 cmp r3, r2
36e4: d90a bls.n 36fc <lv_obj_create+0x368>
36e6: 2000 movs r0, #0
36e8: 4b29 ldr r3, [pc, #164] ; (3790 <lv_obj_create+0x3fc>)
36ea: 4798 blx r3
36ec: 0003 movs r3, r0
36ee: 2064 movs r0, #100 ; 0x64
36f0: 4358 muls r0, r3
36f2: 3050 adds r0, #80 ; 0x50
36f4: 21a0 movs r1, #160 ; 0xa0
36f6: 4b28 ldr r3, [pc, #160] ; (3798 <lv_obj_create+0x404>)
36f8: 4798 blx r3
36fa: b280 uxth r0, r0
36fc: 19c0 adds r0, r0, r7
36fe: 82a0 strh r0, [r4, #20]
3700: e6a7 b.n 3452 <lv_obj_create+0xbe>
LV_ASSERT_MEM(new_obj);
3702: 4b0d ldr r3, [pc, #52] ; (3738 <lv_obj_create+0x3a4>)
3704: 9300 str r3, [sp, #0]
3706: 22f0 movs r2, #240 ; 0xf0
3708: 490c ldr r1, [pc, #48] ; (373c <lv_obj_create+0x3a8>)
370a: 3003 adds r0, #3
370c: 4d0c ldr r5, [pc, #48] ; (3740 <lv_obj_create+0x3ac>)
370e: 47a8 blx r5
3710: 0022 movs r2, r4
3712: 2300 movs r3, #0
3714: 4810 ldr r0, [pc, #64] ; (3758 <lv_obj_create+0x3c4>)
3716: 490c ldr r1, [pc, #48] ; (3748 <lv_obj_create+0x3b4>)
3718: 4788 blx r1
371a: e7fe b.n 371a <lv_obj_create+0x386>
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
371c: 2000 movs r0, #0
371e: 4b1c ldr r3, [pc, #112] ; (3790 <lv_obj_create+0x3fc>)
3720: 4798 blx r3
3722: 0003 movs r3, r0
3724: 2032 movs r0, #50 ; 0x32
3726: 4358 muls r0, r3
3728: 3050 adds r0, #80 ; 0x50
372a: 21a0 movs r1, #160 ; 0xa0
372c: 4b1a ldr r3, [pc, #104] ; (3798 <lv_obj_create+0x404>)
372e: 4798 blx r3
3730: b280 uxth r0, r0
3732: e7c0 b.n 36b6 <lv_obj_create+0x322>
3734: 000017ad .word 0x000017ad
3738: 000258c4 .word 0x000258c4
373c: 00025c2c .word 0x00025c2c
3740: 00012159 .word 0x00012159
3744: 00025d20 .word 0x00025d20
3748: 000017b5 .word 0x000017b5
374c: 00010d75 .word 0x00010d75
3750: 00025cbc .word 0x00025cbc
3754: 00011de5 .word 0x00011de5
3758: 00025854 .word 0x00025854
375c: 00012975 .word 0x00012975
3760: 00005021 .word 0x00005021
3764: 00004a51 .word 0x00004a51
3768: 00010d81 .word 0x00010d81
376c: 00010da9 .word 0x00010da9
3770: 00011dd1 .word 0x00011dd1
3774: 00005b71 .word 0x00005b71
3778: 000069e5 .word 0x000069e5
377c: 00001aad .word 0x00001aad
3780: 000021a5 .word 0x000021a5
3784: 000023d9 .word 0x000023d9
3788: 0000243d .word 0x0000243d
378c: 00002979 .word 0x00002979
3790: 00010dd1 .word 0x00010dd1
3794: 00003349 .word 0x00003349
3798: 0001c0a5 .word 0x0001c0a5
new_obj->coords.x2 = parent->coords.x2;
379c: 4653 mov r3, sl
379e: 2214 movs r2, #20
37a0: 5e9b ldrsh r3, [r3, r2]
37a2: 82a3 strh r3, [r4, #20]
new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH;
37a4: 4653 mov r3, sl
37a6: 8a9f ldrh r7, [r3, #20]
37a8: 2000 movs r0, #0
37aa: 4b21 ldr r3, [pc, #132] ; (3830 <lv_obj_create+0x49c>)
37ac: 4798 blx r3
37ae: 2364 movs r3, #100 ; 0x64
37b0: 4343 muls r3, r0
37b2: 3350 adds r3, #80 ; 0x50
37b4: 2240 movs r2, #64 ; 0x40
37b6: 32ff adds r2, #255 ; 0xff
37b8: 2001 movs r0, #1
37ba: 4293 cmp r3, r2
37bc: d90a bls.n 37d4 <lv_obj_create+0x440>
37be: 2000 movs r0, #0
37c0: 4b1b ldr r3, [pc, #108] ; (3830 <lv_obj_create+0x49c>)
37c2: 4798 blx r3
37c4: 0003 movs r3, r0
37c6: 2064 movs r0, #100 ; 0x64
37c8: 4358 muls r0, r3
37ca: 3050 adds r0, #80 ; 0x50
37cc: 21a0 movs r1, #160 ; 0xa0
37ce: 4b19 ldr r3, [pc, #100] ; (3834 <lv_obj_create+0x4a0>)
37d0: 4798 blx r3
37d2: b280 uxth r0, r0
37d4: 1a38 subs r0, r7, r0
37d6: 8220 strh r0, [r4, #16]
37d8: e63b b.n 3452 <lv_obj_create+0xbe>
if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ);
37da: 4653 mov r3, sl
37dc: 2b00 cmp r3, #0
37de: d004 beq.n 37ea <lv_obj_create+0x456>
37e0: 2102 movs r1, #2
37e2: 0020 movs r0, r4
37e4: 4b14 ldr r3, [pc, #80] ; (3838 <lv_obj_create+0x4a4>)
37e6: 4798 blx r3
37e8: e007 b.n 37fa <lv_obj_create+0x466>
else lv_theme_apply(new_obj, LV_THEME_SCR);
37ea: 2101 movs r1, #1
37ec: 0020 movs r0, r4
37ee: 4b12 ldr r3, [pc, #72] ; (3838 <lv_obj_create+0x4a4>)
37f0: 4798 blx r3
37f2: e00b b.n 380c <lv_obj_create+0x478>
if(parent != NULL) {
37f4: 4653 mov r3, sl
37f6: 2b00 cmp r3, #0
37f8: d008 beq.n 380c <lv_obj_create+0x478>
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj);
37fa: 4653 mov r3, sl
37fc: 69db ldr r3, [r3, #28]
37fe: 0022 movs r2, r4
3800: 2101 movs r1, #1
3802: 4650 mov r0, sl
3804: 4798 blx r3
lv_obj_invalidate(new_obj);
3806: 0020 movs r0, r4
3808: 4b0c ldr r3, [pc, #48] ; (383c <lv_obj_create+0x4a8>)
380a: 4798 blx r3
LV_LOG_INFO("Object create ready");
380c: 4b0c ldr r3, [pc, #48] ; (3840 <lv_obj_create+0x4ac>)
380e: 9300 str r3, [sp, #0]
3810: 4b0c ldr r3, [pc, #48] ; (3844 <lv_obj_create+0x4b0>)
3812: 2288 movs r2, #136 ; 0x88
3814: 32ff adds r2, #255 ; 0xff
3816: 490c ldr r1, [pc, #48] ; (3848 <lv_obj_create+0x4b4>)
3818: 2001 movs r0, #1
381a: 4d0c ldr r5, [pc, #48] ; (384c <lv_obj_create+0x4b8>)
381c: 47a8 blx r5
}
381e: 0020 movs r0, r4
3820: b003 add sp, #12
3822: bc3c pop {r2, r3, r4, r5}
3824: 4690 mov r8, r2
3826: 4699 mov r9, r3
3828: 46a2 mov sl, r4
382a: 46ab mov fp, r5
382c: bdf0 pop {r4, r5, r6, r7, pc}
382e: 46c0 nop ; (mov r8, r8)
3830: 00010dd1 .word 0x00010dd1
3834: 0001c0a5 .word 0x0001c0a5
3838: 000140e5 .word 0x000140e5
383c: 00002869 .word 0x00002869
3840: 00025d0c .word 0x00025d0c
3844: 000258c4 .word 0x000258c4
3848: 00025c2c .word 0x00025c2c
384c: 00012159 .word 0x00012159
00003850 <lv_obj_set_size>:
{
3850: b5f0 push {r4, r5, r6, r7, lr}
3852: b085 sub sp, #20
3854: 0004 movs r4, r0
3856: 000d movs r5, r1
3858: 0016 movs r6, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
385a: 4b31 ldr r3, [pc, #196] ; (3920 <lv_obj_set_size+0xd0>)
385c: 4798 blx r3
385e: 2800 cmp r0, #0
3860: d10c bne.n 387c <lv_obj_set_size+0x2c>
3862: 4b30 ldr r3, [pc, #192] ; (3924 <lv_obj_set_size+0xd4>)
3864: 9300 str r3, [sp, #0]
3866: 4a30 ldr r2, [pc, #192] ; (3928 <lv_obj_set_size+0xd8>)
3868: 4930 ldr r1, [pc, #192] ; (392c <lv_obj_set_size+0xdc>)
386a: 3003 adds r0, #3
386c: 4d30 ldr r5, [pc, #192] ; (3930 <lv_obj_set_size+0xe0>)
386e: 47a8 blx r5
3870: 0022 movs r2, r4
3872: 2300 movs r3, #0
3874: 482f ldr r0, [pc, #188] ; (3934 <lv_obj_set_size+0xe4>)
3876: 4930 ldr r1, [pc, #192] ; (3938 <lv_obj_set_size+0xe8>)
3878: 4788 blx r1
387a: e7fe b.n 387a <lv_obj_set_size+0x2a>
if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) {
387c: 0020 movs r0, r4
387e: 4b2f ldr r3, [pc, #188] ; (393c <lv_obj_set_size+0xec>)
3880: 4798 blx r3
3882: 42a8 cmp r0, r5
3884: d03b beq.n 38fe <lv_obj_set_size+0xae>
lv_obj_invalidate(obj);
3886: 0020 movs r0, r4
3888: 4b2d ldr r3, [pc, #180] ; (3940 <lv_obj_set_size+0xf0>)
388a: 4798 blx r3
lv_obj_get_coords(obj, &ori);
388c: a902 add r1, sp, #8
388e: 0020 movs r0, r4
3890: 4b2c ldr r3, [pc, #176] ; (3944 <lv_obj_set_size+0xf4>)
3892: 4798 blx r3
obj->coords.y2 = obj->coords.y1 + h - 1;
3894: 3e01 subs r6, #1
3896: 8a63 ldrh r3, [r4, #18]
3898: 199e adds r6, r3, r6
389a: 82e6 strh r6, [r4, #22]
if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) {
389c: 0020 movs r0, r4
389e: 4b2a ldr r3, [pc, #168] ; (3948 <lv_obj_set_size+0xf8>)
38a0: 4798 blx r3
38a2: 2801 cmp r0, #1
38a4: d031 beq.n 390a <lv_obj_set_size+0xba>
obj->coords.x2 = obj->coords.x1 + w - 1;
38a6: 3d01 subs r5, #1
38a8: 8a23 ldrh r3, [r4, #16]
38aa: 18ed adds r5, r5, r3
38ac: 82a5 strh r5, [r4, #20]
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
38ae: aa02 add r2, sp, #8
38b0: 2102 movs r1, #2
38b2: 0020 movs r0, r4
38b4: 69e3 ldr r3, [r4, #28]
38b6: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
38b8: 0020 movs r0, r4
38ba: 4b24 ldr r3, [pc, #144] ; (394c <lv_obj_set_size+0xfc>)
38bc: 4798 blx r3
if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
38be: 2800 cmp r0, #0
38c0: d003 beq.n 38ca <lv_obj_set_size+0x7a>
38c2: 69c3 ldr r3, [r0, #28]
38c4: 0022 movs r2, r4
38c6: 2101 movs r1, #1
38c8: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
38ca: 1d26 adds r6, r4, #4
38cc: 0030 movs r0, r6
38ce: 4b20 ldr r3, [pc, #128] ; (3950 <lv_obj_set_size+0x100>)
38d0: 4798 blx r3
38d2: 1e05 subs r5, r0, #0
38d4: d00a beq.n 38ec <lv_obj_set_size+0x9c>
38d6: 4f1f ldr r7, [pc, #124] ; (3954 <lv_obj_set_size+0x104>)
i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, &ori);
38d8: aa02 add r2, sp, #8
38da: 2103 movs r1, #3
38dc: 0028 movs r0, r5
38de: 69eb ldr r3, [r5, #28]
38e0: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
38e2: 0029 movs r1, r5
38e4: 0030 movs r0, r6
38e6: 47b8 blx r7
38e8: 1e05 subs r5, r0, #0
38ea: d1f5 bne.n 38d8 <lv_obj_set_size+0x88>
lv_obj_invalidate(obj);
38ec: 0020 movs r0, r4
38ee: 4b14 ldr r3, [pc, #80] ; (3940 <lv_obj_set_size+0xf0>)
38f0: 4798 blx r3
if(obj->realign.auto_realign) lv_obj_realign(obj);
38f2: 2349 movs r3, #73 ; 0x49
38f4: 5ce3 ldrb r3, [r4, r3]
38f6: 07db lsls r3, r3, #31
38f8: d40d bmi.n 3916 <lv_obj_set_size+0xc6>
}
38fa: b005 add sp, #20
38fc: bdf0 pop {r4, r5, r6, r7, pc}
if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) {
38fe: 0020 movs r0, r4
3900: 4b15 ldr r3, [pc, #84] ; (3958 <lv_obj_set_size+0x108>)
3902: 4798 blx r3
3904: 42b0 cmp r0, r6
3906: d1be bne.n 3886 <lv_obj_set_size+0x36>
3908: e7f7 b.n 38fa <lv_obj_set_size+0xaa>
obj->coords.x1 = obj->coords.x2 - w + 1;
390a: 2301 movs r3, #1
390c: 1b5b subs r3, r3, r5
390e: 8aa5 ldrh r5, [r4, #20]
3910: 18ed adds r5, r5, r3
3912: 8225 strh r5, [r4, #16]
3914: e7cb b.n 38ae <lv_obj_set_size+0x5e>
if(obj->realign.auto_realign) lv_obj_realign(obj);
3916: 0020 movs r0, r4
3918: 4b10 ldr r3, [pc, #64] ; (395c <lv_obj_set_size+0x10c>)
391a: 4798 blx r3
391c: e7ed b.n 38fa <lv_obj_set_size+0xaa>
391e: 46c0 nop ; (mov r8, r8)
3920: 000017ad .word 0x000017ad
3924: 00025954 .word 0x00025954
3928: 000002e5 .word 0x000002e5
392c: 00025c2c .word 0x00025c2c
3930: 00012159 .word 0x00012159
3934: 00025d20 .word 0x00025d20
3938: 000017b5 .word 0x000017b5
393c: 000024a1 .word 0x000024a1
3940: 00002869 .word 0x00002869
3944: 0000237d .word 0x0000237d
3948: 00003349 .word 0x00003349
394c: 000021a5 .word 0x000021a5
3950: 00011e85 .word 0x00011e85
3954: 00011e9d .word 0x00011e9d
3958: 000024f5 .word 0x000024f5
395c: 00002f2d .word 0x00002f2d
00003960 <lv_obj_set_height>:
{
3960: b530 push {r4, r5, lr}
3962: b083 sub sp, #12
3964: 0004 movs r4, r0
3966: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3968: 4b0d ldr r3, [pc, #52] ; (39a0 <lv_obj_set_height+0x40>)
396a: 4798 blx r3
396c: 2800 cmp r0, #0
396e: d10c bne.n 398a <lv_obj_set_height+0x2a>
3970: 4b0c ldr r3, [pc, #48] ; (39a4 <lv_obj_set_height+0x44>)
3972: 9300 str r3, [sp, #0]
3974: 4a0c ldr r2, [pc, #48] ; (39a8 <lv_obj_set_height+0x48>)
3976: 490d ldr r1, [pc, #52] ; (39ac <lv_obj_set_height+0x4c>)
3978: 3003 adds r0, #3
397a: 4d0d ldr r5, [pc, #52] ; (39b0 <lv_obj_set_height+0x50>)
397c: 47a8 blx r5
397e: 0022 movs r2, r4
3980: 2300 movs r3, #0
3982: 480c ldr r0, [pc, #48] ; (39b4 <lv_obj_set_height+0x54>)
3984: 490c ldr r1, [pc, #48] ; (39b8 <lv_obj_set_height+0x58>)
3986: 4788 blx r1
3988: e7fe b.n 3988 <lv_obj_set_height+0x28>
lv_obj_set_size(obj, lv_obj_get_width(obj), h);
398a: 0020 movs r0, r4
398c: 4b0b ldr r3, [pc, #44] ; (39bc <lv_obj_set_height+0x5c>)
398e: 4798 blx r3
3990: 0001 movs r1, r0
3992: 002a movs r2, r5
3994: 0020 movs r0, r4
3996: 4b0a ldr r3, [pc, #40] ; (39c0 <lv_obj_set_height+0x60>)
3998: 4798 blx r3
}
399a: b003 add sp, #12
399c: bd30 pop {r4, r5, pc}
399e: 46c0 nop ; (mov r8, r8)
39a0: 000017ad .word 0x000017ad
39a4: 00025964 .word 0x00025964
39a8: 00000327 .word 0x00000327
39ac: 00025c2c .word 0x00025c2c
39b0: 00012159 .word 0x00012159
39b4: 00025d20 .word 0x00025d20
39b8: 000017b5 .word 0x000017b5
39bc: 000024a1 .word 0x000024a1
39c0: 00003851 .word 0x00003851
000039c4 <lv_obj_is_protected>:
{
39c4: b530 push {r4, r5, lr}
39c6: b083 sub sp, #12
39c8: 0004 movs r4, r0
39ca: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
39cc: 4b0c ldr r3, [pc, #48] ; (3a00 <lv_obj_is_protected+0x3c>)
39ce: 4798 blx r3
39d0: 2800 cmp r0, #0
39d2: d007 beq.n 39e4 <lv_obj_is_protected+0x20>
return (obj->protect & prot) == 0 ? false : true;
39d4: 233c movs r3, #60 ; 0x3c
39d6: 5ce0 ldrb r0, [r4, r3]
39d8: 4028 ands r0, r5
39da: 1e43 subs r3, r0, #1
39dc: 4198 sbcs r0, r3
39de: b2c0 uxtb r0, r0
}
39e0: b003 add sp, #12
39e2: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
39e4: 4b07 ldr r3, [pc, #28] ; (3a04 <lv_obj_is_protected+0x40>)
39e6: 9300 str r3, [sp, #0]
39e8: 4a07 ldr r2, [pc, #28] ; (3a08 <lv_obj_is_protected+0x44>)
39ea: 4908 ldr r1, [pc, #32] ; (3a0c <lv_obj_is_protected+0x48>)
39ec: 3003 adds r0, #3
39ee: 4d08 ldr r5, [pc, #32] ; (3a10 <lv_obj_is_protected+0x4c>)
39f0: 47a8 blx r5
39f2: 0022 movs r2, r4
39f4: 2300 movs r3, #0
39f6: 4807 ldr r0, [pc, #28] ; (3a14 <lv_obj_is_protected+0x50>)
39f8: 4907 ldr r1, [pc, #28] ; (3a18 <lv_obj_is_protected+0x54>)
39fa: 4788 blx r1
39fc: e7fe b.n 39fc <lv_obj_is_protected+0x38>
39fe: 46c0 nop ; (mov r8, r8)
3a00: 000017ad .word 0x000017ad
3a04: 00025ba0 .word 0x00025ba0
3a08: 00000ad7 .word 0x00000ad7
3a0c: 00025c2c .word 0x00025c2c
3a10: 00012159 .word 0x00012159
3a14: 00025d20 .word 0x00025d20
3a18: 000017b5 .word 0x000017b5
00003a1c <lv_obj_get_state>:
{
3a1c: b570 push {r4, r5, r6, lr}
3a1e: b084 sub sp, #16
3a20: 0005 movs r5, r0
3a22: 000e movs r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3a24: 4b10 ldr r3, [pc, #64] ; (3a68 <lv_obj_get_state+0x4c>)
3a26: 4798 blx r3
3a28: 2800 cmp r0, #0
3a2a: d005 beq.n 3a38 <lv_obj_get_state+0x1c>
if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state;
3a2c: 2e3f cmp r6, #63 ; 0x3f
3a2e: d810 bhi.n 3a52 <lv_obj_get_state+0x36>
3a30: 233d movs r3, #61 ; 0x3d
3a32: 5ce8 ldrb r0, [r5, r3]
}
3a34: b004 add sp, #16
3a36: bd70 pop {r4, r5, r6, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3a38: 4b0c ldr r3, [pc, #48] ; (3a6c <lv_obj_get_state+0x50>)
3a3a: 9300 str r3, [sp, #0]
3a3c: 4a0c ldr r2, [pc, #48] ; (3a70 <lv_obj_get_state+0x54>)
3a3e: 490d ldr r1, [pc, #52] ; (3a74 <lv_obj_get_state+0x58>)
3a40: 3003 adds r0, #3
3a42: 4c0d ldr r4, [pc, #52] ; (3a78 <lv_obj_get_state+0x5c>)
3a44: 47a0 blx r4
3a46: 002a movs r2, r5
3a48: 2300 movs r3, #0
3a4a: 480c ldr r0, [pc, #48] ; (3a7c <lv_obj_get_state+0x60>)
3a4c: 490c ldr r1, [pc, #48] ; (3a80 <lv_obj_get_state+0x64>)
3a4e: 4788 blx r1
3a50: e7fe b.n 3a50 <lv_obj_get_state+0x34>
info.part = part;
3a52: ac03 add r4, sp, #12
3a54: 7026 strb r6, [r4, #0]
info.result = LV_STATE_DEFAULT;
3a56: 2300 movs r3, #0
3a58: 7063 strb r3, [r4, #1]
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
3a5a: 0022 movs r2, r4
3a5c: 2109 movs r1, #9
3a5e: 0028 movs r0, r5
3a60: 4b08 ldr r3, [pc, #32] ; (3a84 <lv_obj_get_state+0x68>)
3a62: 4798 blx r3
return info.result;
3a64: 7860 ldrb r0, [r4, #1]
3a66: e7e5 b.n 3a34 <lv_obj_get_state+0x18>
3a68: 000017ad .word 0x000017ad
3a6c: 00025bb4 .word 0x00025bb4
3a70: 00000ade .word 0x00000ade
3a74: 00025c2c .word 0x00025c2c
3a78: 00012159 .word 0x00012159
3a7c: 00025d20 .word 0x00025d20
3a80: 000017b5 .word 0x000017b5
3a84: 0000208d .word 0x0000208d
00003a88 <_lv_obj_get_style_int>:
{
3a88: b5f0 push {r4, r5, r6, r7, lr}
3a8a: 46de mov lr, fp
3a8c: 4657 mov r7, sl
3a8e: 464e mov r6, r9
3a90: b5c0 push {r6, r7, lr}
3a92: b084 sub sp, #16
3a94: 0006 movs r6, r0
3a96: 000d movs r5, r1
3a98: 0017 movs r7, r2
attr.full = prop_ori >> 8;
3a9a: 0a13 lsrs r3, r2, #8
3a9c: 9301 str r3, [sp, #4]
while(parent) {
3a9e: 2800 cmp r0, #0
3aa0: d030 beq.n 3b04 <_lv_obj_get_style_int+0x7c>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3aa2: 4b24 ldr r3, [pc, #144] ; (3b34 <_lv_obj_get_style_int+0xac>)
3aa4: 469b mov fp, r3
lv_state_t state = lv_obj_get_state(parent, part);
3aa6: 4b24 ldr r3, [pc, #144] ; (3b38 <_lv_obj_get_style_int+0xb0>)
3aa8: 469a mov sl, r3
res = _lv_style_list_get_int(dsc, prop, &value_act);
3aaa: 4b24 ldr r3, [pc, #144] ; (3b3c <_lv_obj_get_style_int+0xb4>)
3aac: 4699 mov r9, r3
3aae: e00c b.n 3aca <_lv_obj_get_style_int+0x42>
if(res == LV_RES_OK) return value_act;
3ab0: ab02 add r3, sp, #8
3ab2: 3306 adds r3, #6
3ab4: 2000 movs r0, #0
3ab6: 5e18 ldrsh r0, [r3, r0]
}
3ab8: b004 add sp, #16
3aba: bc1c pop {r2, r3, r4}
3abc: 4691 mov r9, r2
3abe: 469a mov sl, r3
3ac0: 46a3 mov fp, r4
3ac2: bdf0 pop {r4, r5, r6, r7, pc}
3ac4: 2500 movs r5, #0
while(parent) {
3ac6: 2e00 cmp r6, #0
3ac8: d01d beq.n 3b06 <_lv_obj_get_style_int+0x7e>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3aca: 0029 movs r1, r5
3acc: 0030 movs r0, r6
3ace: 47d8 blx fp
3ad0: 9000 str r0, [sp, #0]
lv_state_t state = lv_obj_get_state(parent, part);
3ad2: 0029 movs r1, r5
3ad4: 0030 movs r0, r6
3ad6: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3ad8: 0204 lsls r4, r0, #8
3ada: 193c adds r4, r7, r4
3adc: b2a4 uxth r4, r4
res = _lv_style_list_get_int(dsc, prop, &value_act);
3ade: ab02 add r3, sp, #8
3ae0: 1d9a adds r2, r3, #6
3ae2: 0021 movs r1, r4
3ae4: 9800 ldr r0, [sp, #0]
3ae6: 47c8 blx r9
if(res == LV_RES_OK) return value_act;
3ae8: 2801 cmp r0, #1
3aea: d0e1 beq.n 3ab0 <_lv_obj_get_style_int+0x28>
if(attr.bits.inherit == 0) break;
3aec: 466b mov r3, sp
3aee: 791b ldrb r3, [r3, #4]
3af0: b25b sxtb r3, r3
3af2: 2b00 cmp r3, #0
3af4: da07 bge.n 3b06 <_lv_obj_get_style_int+0x7e>
if(part != LV_OBJ_PART_MAIN) {
3af6: 2d00 cmp r5, #0
3af8: d1e4 bne.n 3ac4 <_lv_obj_get_style_int+0x3c>
parent = lv_obj_get_parent(parent);
3afa: 0030 movs r0, r6
3afc: 4b10 ldr r3, [pc, #64] ; (3b40 <_lv_obj_get_style_int+0xb8>)
3afe: 4798 blx r3
3b00: 0006 movs r6, r0
3b02: e7df b.n 3ac4 <_lv_obj_get_style_int+0x3c>
while(parent) {
3b04: 0014 movs r4, r2
switch(prop) {
3b06: 4b0f ldr r3, [pc, #60] ; (3b44 <_lv_obj_get_style_int+0xbc>)
3b08: 401c ands r4, r3
3b0a: 2c22 cmp r4, #34 ; 0x22
3b0c: d010 beq.n 3b30 <_lv_obj_get_style_int+0xa8>
3b0e: d807 bhi.n 3b20 <_lv_obj_get_style_int+0x98>
return LV_DPI / 20;
3b10: 2006 movs r0, #6
switch(prop) {
3b12: 2c03 cmp r4, #3
3b14: d0d0 beq.n 3ab8 <_lv_obj_get_style_int+0x30>
3b16: 2c07 cmp r4, #7
3b18: d108 bne.n 3b2c <_lv_obj_get_style_int+0xa4>
return LV_IMG_ZOOM_NONE;
3b1a: 2080 movs r0, #128 ; 0x80
3b1c: 0040 lsls r0, r0, #1
3b1e: e7cb b.n 3ab8 <_lv_obj_get_style_int+0x30>
return LV_BORDER_SIDE_FULL;
3b20: 200f movs r0, #15
switch(prop) {
3b22: 2c31 cmp r4, #49 ; 0x31
3b24: d0c8 beq.n 3ab8 <_lv_obj_get_style_int+0x30>
return LV_DPI / 8;
3b26: 3001 adds r0, #1
switch(prop) {
3b28: 2cc0 cmp r4, #192 ; 0xc0
3b2a: d0c5 beq.n 3ab8 <_lv_obj_get_style_int+0x30>
return 0;
3b2c: 2000 movs r0, #0
3b2e: e7c3 b.n 3ab8 <_lv_obj_get_style_int+0x30>
return 255;
3b30: 20ff movs r0, #255 ; 0xff
3b32: e7c1 b.n 3ab8 <_lv_obj_get_style_int+0x30>
3b34: 00002549 .word 0x00002549
3b38: 00003a1d .word 0x00003a1d
3b3c: 00006b61 .word 0x00006b61
3b40: 000021a5 .word 0x000021a5
3b44: ffff80ff .word 0xffff80ff
00003b48 <_lv_obj_get_style_color>:
{
3b48: b5f0 push {r4, r5, r6, r7, lr}
3b4a: 46de mov lr, fp
3b4c: 4657 mov r7, sl
3b4e: 464e mov r6, r9
3b50: b5c0 push {r6, r7, lr}
3b52: b084 sub sp, #16
3b54: 0006 movs r6, r0
3b56: 000d movs r5, r1
3b58: 0017 movs r7, r2
attr.full = prop_ori >> 8;
3b5a: 0a13 lsrs r3, r2, #8
3b5c: 9301 str r3, [sp, #4]
while(parent) {
3b5e: 2800 cmp r0, #0
3b60: d028 beq.n 3bb4 <_lv_obj_get_style_color+0x6c>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3b62: 4b1c ldr r3, [pc, #112] ; (3bd4 <_lv_obj_get_style_color+0x8c>)
3b64: 469b mov fp, r3
lv_state_t state = lv_obj_get_state(parent, part);
3b66: 4b1c ldr r3, [pc, #112] ; (3bd8 <_lv_obj_get_style_color+0x90>)
3b68: 469a mov sl, r3
res = _lv_style_list_get_color(dsc, prop, &value_act);
3b6a: 4b1c ldr r3, [pc, #112] ; (3bdc <_lv_obj_get_style_color+0x94>)
3b6c: 4699 mov r9, r3
3b6e: e005 b.n 3b7c <_lv_obj_get_style_color+0x34>
if(res == LV_RES_OK) return value_act;
3b70: ab03 add r3, sp, #12
3b72: 8818 ldrh r0, [r3, #0]
3b74: e025 b.n 3bc2 <_lv_obj_get_style_color+0x7a>
3b76: 2500 movs r5, #0
while(parent) {
3b78: 2e00 cmp r6, #0
3b7a: d01c beq.n 3bb6 <_lv_obj_get_style_color+0x6e>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3b7c: 0029 movs r1, r5
3b7e: 0030 movs r0, r6
3b80: 47d8 blx fp
3b82: 9000 str r0, [sp, #0]
lv_state_t state = lv_obj_get_state(parent, part);
3b84: 0029 movs r1, r5
3b86: 0030 movs r0, r6
3b88: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3b8a: 0204 lsls r4, r0, #8
3b8c: 193c adds r4, r7, r4
3b8e: b2a4 uxth r4, r4
res = _lv_style_list_get_color(dsc, prop, &value_act);
3b90: aa03 add r2, sp, #12
3b92: 0021 movs r1, r4
3b94: 9800 ldr r0, [sp, #0]
3b96: 47c8 blx r9
if(res == LV_RES_OK) return value_act;
3b98: 2801 cmp r0, #1
3b9a: d0e9 beq.n 3b70 <_lv_obj_get_style_color+0x28>
if(attr.bits.inherit == 0) break;
3b9c: 466b mov r3, sp
3b9e: 791b ldrb r3, [r3, #4]
3ba0: b25b sxtb r3, r3
3ba2: 2b00 cmp r3, #0
3ba4: da07 bge.n 3bb6 <_lv_obj_get_style_color+0x6e>
if(part != LV_OBJ_PART_MAIN) {
3ba6: 2d00 cmp r5, #0
3ba8: d1e5 bne.n 3b76 <_lv_obj_get_style_color+0x2e>
parent = lv_obj_get_parent(parent);
3baa: 0030 movs r0, r6
3bac: 4b0c ldr r3, [pc, #48] ; (3be0 <_lv_obj_get_style_color+0x98>)
3bae: 4798 blx r3
3bb0: 0006 movs r6, r0
3bb2: e7e0 b.n 3b76 <_lv_obj_get_style_color+0x2e>
while(parent) {
3bb4: 0014 movs r4, r2
switch(prop) {
3bb6: 4b0b ldr r3, [pc, #44] ; (3be4 <_lv_obj_get_style_color+0x9c>)
3bb8: 401c ands r4, r3
3bba: 3c29 subs r4, #41 ; 0x29
return LV_COLOR_BLACK;
3bbc: 2000 movs r0, #0
switch(prop) {
3bbe: 2c01 cmp r4, #1
3bc0: d905 bls.n 3bce <_lv_obj_get_style_color+0x86>
}
3bc2: b004 add sp, #16
3bc4: bc1c pop {r2, r3, r4}
3bc6: 4691 mov r9, r2
3bc8: 469a mov sl, r3
3bca: 46a3 mov fp, r4
3bcc: bdf0 pop {r4, r5, r6, r7, pc}
return LV_COLOR_WHITE;
3bce: 4b06 ldr r3, [pc, #24] ; (3be8 <_lv_obj_get_style_color+0xa0>)
3bd0: 8818 ldrh r0, [r3, #0]
3bd2: e7f6 b.n 3bc2 <_lv_obj_get_style_color+0x7a>
3bd4: 00002549 .word 0x00002549
3bd8: 00003a1d .word 0x00003a1d
3bdc: 00006c35 .word 0x00006c35
3be0: 000021a5 .word 0x000021a5
3be4: ffff80ff .word 0xffff80ff
3be8: 000258b8 .word 0x000258b8
00003bec <_lv_obj_get_style_opa>:
{
3bec: b5f0 push {r4, r5, r6, r7, lr}
3bee: 46de mov lr, fp
3bf0: 4657 mov r7, sl
3bf2: 464e mov r6, r9
3bf4: b5c0 push {r6, r7, lr}
3bf6: b084 sub sp, #16
3bf8: 0006 movs r6, r0
3bfa: 000d movs r5, r1
3bfc: 0017 movs r7, r2
attr.full = prop_ori >> 8;
3bfe: 0a13 lsrs r3, r2, #8
3c00: 9301 str r3, [sp, #4]
while(parent) {
3c02: 2800 cmp r0, #0
3c04: d029 beq.n 3c5a <_lv_obj_get_style_opa+0x6e>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3c06: 4b1e ldr r3, [pc, #120] ; (3c80 <_lv_obj_get_style_opa+0x94>)
3c08: 469b mov fp, r3
lv_state_t state = lv_obj_get_state(parent, part);
3c0a: 4b1e ldr r3, [pc, #120] ; (3c84 <_lv_obj_get_style_opa+0x98>)
3c0c: 469a mov sl, r3
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3c0e: 4b1e ldr r3, [pc, #120] ; (3c88 <_lv_obj_get_style_opa+0x9c>)
3c10: 4699 mov r9, r3
3c12: e005 b.n 3c20 <_lv_obj_get_style_opa+0x34>
if(res == LV_RES_OK) return value_act;
3c14: ab02 add r3, sp, #8
3c16: 79d8 ldrb r0, [r3, #7]
3c18: e02a b.n 3c70 <_lv_obj_get_style_opa+0x84>
3c1a: 2500 movs r5, #0
while(parent) {
3c1c: 2e00 cmp r6, #0
3c1e: d01d beq.n 3c5c <_lv_obj_get_style_opa+0x70>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3c20: 0029 movs r1, r5
3c22: 0030 movs r0, r6
3c24: 47d8 blx fp
3c26: 9000 str r0, [sp, #0]
lv_state_t state = lv_obj_get_state(parent, part);
3c28: 0029 movs r1, r5
3c2a: 0030 movs r0, r6
3c2c: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3c2e: 0204 lsls r4, r0, #8
3c30: 193c adds r4, r7, r4
3c32: b2a4 uxth r4, r4
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3c34: ab02 add r3, sp, #8
3c36: 1dda adds r2, r3, #7
3c38: 0021 movs r1, r4
3c3a: 9800 ldr r0, [sp, #0]
3c3c: 47c8 blx r9
if(res == LV_RES_OK) return value_act;
3c3e: 2801 cmp r0, #1
3c40: d0e8 beq.n 3c14 <_lv_obj_get_style_opa+0x28>
if(attr.bits.inherit == 0) break;
3c42: 466b mov r3, sp
3c44: 791b ldrb r3, [r3, #4]
3c46: b25b sxtb r3, r3
3c48: 2b00 cmp r3, #0
3c4a: da07 bge.n 3c5c <_lv_obj_get_style_opa+0x70>
if(part != LV_OBJ_PART_MAIN) {
3c4c: 2d00 cmp r5, #0
3c4e: d1e4 bne.n 3c1a <_lv_obj_get_style_opa+0x2e>
parent = lv_obj_get_parent(parent);
3c50: 0030 movs r0, r6
3c52: 4b0e ldr r3, [pc, #56] ; (3c8c <_lv_obj_get_style_opa+0xa0>)
3c54: 4798 blx r3
3c56: 0006 movs r6, r0
3c58: e7df b.n 3c1a <_lv_obj_get_style_opa+0x2e>
while(parent) {
3c5a: 0014 movs r4, r2
switch(prop) {
3c5c: 4b0c ldr r3, [pc, #48] ; (3c90 <_lv_obj_get_style_opa+0xa4>)
3c5e: 401c ands r4, r3
3c60: 2c6d cmp r4, #109 ; 0x6d
3c62: d00b beq.n 3c7c <_lv_obj_get_style_opa+0x90>
3c64: 4b0b ldr r3, [pc, #44] ; (3c94 <_lv_obj_get_style_opa+0xa8>)
3c66: 429c cmp r4, r3
3c68: d008 beq.n 3c7c <_lv_obj_get_style_opa+0x90>
3c6a: 2c2c cmp r4, #44 ; 0x2c
3c6c: d006 beq.n 3c7c <_lv_obj_get_style_opa+0x90>
return LV_OPA_COVER;
3c6e: 20ff movs r0, #255 ; 0xff
}
3c70: b004 add sp, #16
3c72: bc1c pop {r2, r3, r4}
3c74: 4691 mov r9, r2
3c76: 469a mov sl, r3
3c78: 46a3 mov fp, r4
3c7a: bdf0 pop {r4, r5, r6, r7, pc}
return LV_OPA_TRANSP;
3c7c: 2000 movs r0, #0
3c7e: e7f7 b.n 3c70 <_lv_obj_get_style_opa+0x84>
3c80: 00002549 .word 0x00002549
3c84: 00003a1d .word 0x00003a1d
3c88: 00006d01 .word 0x00006d01
3c8c: 000021a5 .word 0x000021a5
3c90: ffff80ff .word 0xffff80ff
3c94: 000080ad .word 0x000080ad
00003c98 <_lv_obj_get_style_ptr>:
{
3c98: b5f0 push {r4, r5, r6, r7, lr}
3c9a: 46de mov lr, fp
3c9c: 4657 mov r7, sl
3c9e: 464e mov r6, r9
3ca0: b5c0 push {r6, r7, lr}
3ca2: b084 sub sp, #16
3ca4: 0006 movs r6, r0
3ca6: 000d movs r5, r1
3ca8: 0017 movs r7, r2
attr.full = prop_ori >> 8;
3caa: 0a13 lsrs r3, r2, #8
3cac: 9301 str r3, [sp, #4]
while(parent) {
3cae: 2800 cmp r0, #0
3cb0: d02c beq.n 3d0c <_lv_obj_get_style_ptr+0x74>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3cb2: 4b1f ldr r3, [pc, #124] ; (3d30 <_lv_obj_get_style_ptr+0x98>)
3cb4: 469b mov fp, r3
lv_state_t state = lv_obj_get_state(parent, part);
3cb6: 4b1f ldr r3, [pc, #124] ; (3d34 <_lv_obj_get_style_ptr+0x9c>)
3cb8: 469a mov sl, r3
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
3cba: 4b1f ldr r3, [pc, #124] ; (3d38 <_lv_obj_get_style_ptr+0xa0>)
3cbc: 4699 mov r9, r3
3cbe: e009 b.n 3cd4 <_lv_obj_get_style_ptr+0x3c>
if(res == LV_RES_OK) return value_act;
3cc0: 9803 ldr r0, [sp, #12]
}
3cc2: b004 add sp, #16
3cc4: bc1c pop {r2, r3, r4}
3cc6: 4691 mov r9, r2
3cc8: 469a mov sl, r3
3cca: 46a3 mov fp, r4
3ccc: bdf0 pop {r4, r5, r6, r7, pc}
3cce: 2500 movs r5, #0
while(parent) {
3cd0: 2e00 cmp r6, #0
3cd2: d01c beq.n 3d0e <_lv_obj_get_style_ptr+0x76>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3cd4: 0029 movs r1, r5
3cd6: 0030 movs r0, r6
3cd8: 47d8 blx fp
3cda: 9000 str r0, [sp, #0]
lv_state_t state = lv_obj_get_state(parent, part);
3cdc: 0029 movs r1, r5
3cde: 0030 movs r0, r6
3ce0: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3ce2: 0204 lsls r4, r0, #8
3ce4: 193c adds r4, r7, r4
3ce6: b2a4 uxth r4, r4
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
3ce8: aa03 add r2, sp, #12
3cea: 0021 movs r1, r4
3cec: 9800 ldr r0, [sp, #0]
3cee: 47c8 blx r9
if(res == LV_RES_OK) return value_act;
3cf0: 2801 cmp r0, #1
3cf2: d0e5 beq.n 3cc0 <_lv_obj_get_style_ptr+0x28>
if(attr.bits.inherit == 0) break;
3cf4: 466b mov r3, sp
3cf6: 791b ldrb r3, [r3, #4]
3cf8: b25b sxtb r3, r3
3cfa: 2b00 cmp r3, #0
3cfc: da07 bge.n 3d0e <_lv_obj_get_style_ptr+0x76>
if(part != LV_OBJ_PART_MAIN) {
3cfe: 2d00 cmp r5, #0
3d00: d1e5 bne.n 3cce <_lv_obj_get_style_ptr+0x36>
parent = lv_obj_get_parent(parent);
3d02: 0030 movs r0, r6
3d04: 4b0d ldr r3, [pc, #52] ; (3d3c <_lv_obj_get_style_ptr+0xa4>)
3d06: 4798 blx r3
3d08: 0006 movs r6, r0
3d0a: e7e0 b.n 3cce <_lv_obj_get_style_ptr+0x36>
while(parent) {
3d0c: 0014 movs r4, r2
switch(prop) {
3d0e: 4b0c ldr r3, [pc, #48] ; (3d40 <_lv_obj_get_style_ptr+0xa8>)
3d10: 401c ands r4, r3
3d12: 2cbe cmp r4, #190 ; 0xbe
3d14: d009 beq.n 3d2a <_lv_obj_get_style_ptr+0x92>
3d16: 4b0b ldr r3, [pc, #44] ; (3d44 <_lv_obj_get_style_ptr+0xac>)
3d18: 429c cmp r4, r3
3d1a: d003 beq.n 3d24 <_lv_obj_get_style_ptr+0x8c>
3d1c: 2c7e cmp r4, #126 ; 0x7e
3d1e: d001 beq.n 3d24 <_lv_obj_get_style_ptr+0x8c>
return NULL;
3d20: 2000 movs r0, #0
3d22: e7ce b.n 3cc2 <_lv_obj_get_style_ptr+0x2a>
return lv_theme_get_font_normal();
3d24: 4b08 ldr r3, [pc, #32] ; (3d48 <_lv_obj_get_style_ptr+0xb0>)
3d26: 4798 blx r3
3d28: e7cb b.n 3cc2 <_lv_obj_get_style_ptr+0x2a>
return &lv_anim_path_def;
3d2a: 4808 ldr r0, [pc, #32] ; (3d4c <_lv_obj_get_style_ptr+0xb4>)
3d2c: e7c9 b.n 3cc2 <_lv_obj_get_style_ptr+0x2a>
3d2e: 46c0 nop ; (mov r8, r8)
3d30: 00002549 .word 0x00002549
3d34: 00003a1d .word 0x00003a1d
3d38: 00006dd5 .word 0x00006dd5
3d3c: 000021a5 .word 0x000021a5
3d40: ffff80ff .word 0xffff80ff
3d44: 0000808e .word 0x0000808e
3d48: 000140d9 .word 0x000140d9
3d4c: 0002a74c .word 0x0002a74c
00003d50 <trans_anim_start_cb>:
{
3d50: b570 push {r4, r5, r6, lr}
lv_style_trans_t * tr = a->var;
3d52: 6804 ldr r4, [r0, #0]
lv_style_property_t prop_tmp = tr->prop;
3d54: 88a5 ldrh r5, [r4, #4]
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3d56: 230f movs r3, #15
3d58: 402b ands r3, r5
3d5a: 2b08 cmp r3, #8
3d5c: dd13 ble.n 3d86 <trans_anim_start_cb+0x36>
else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3d5e: 2b0b cmp r3, #11
3d60: dd18 ble.n 3d94 <trans_anim_start_cb+0x44>
else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3d62: 2b0d cmp r3, #13
3d64: dd1d ble.n 3da2 <trans_anim_start_cb+0x52>
tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp);
3d66: 79a1 ldrb r1, [r4, #6]
3d68: 002a movs r2, r5
3d6a: 6820 ldr r0, [r4, #0]
3d6c: 4b10 ldr r3, [pc, #64] ; (3db0 <trans_anim_start_cb+0x60>)
3d6e: 4798 blx r3
3d70: 60a0 str r0, [r4, #8]
tr->prop = 0;
3d72: 2300 movs r3, #0
3d74: 80a3 strh r3, [r4, #4]
trans_del(tr->obj, tr->part, prop_tmp, tr);
3d76: 79a1 ldrb r1, [r4, #6]
3d78: 0023 movs r3, r4
3d7a: 002a movs r2, r5
3d7c: 6820 ldr r0, [r4, #0]
3d7e: 4e0d ldr r6, [pc, #52] ; (3db4 <trans_anim_start_cb+0x64>)
3d80: 47b0 blx r6
tr->prop = prop_tmp;
3d82: 80a5 strh r5, [r4, #4]
}
3d84: bd70 pop {r4, r5, r6, pc}
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3d86: 79a1 ldrb r1, [r4, #6]
3d88: 002a movs r2, r5
3d8a: 6820 ldr r0, [r4, #0]
3d8c: 4b0a ldr r3, [pc, #40] ; (3db8 <trans_anim_start_cb+0x68>)
3d8e: 4798 blx r3
3d90: 8120 strh r0, [r4, #8]
3d92: e7ee b.n 3d72 <trans_anim_start_cb+0x22>
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
3d94: 79a1 ldrb r1, [r4, #6]
3d96: 002a movs r2, r5
3d98: 6820 ldr r0, [r4, #0]
3d9a: 4b08 ldr r3, [pc, #32] ; (3dbc <trans_anim_start_cb+0x6c>)
3d9c: 4798 blx r3
3d9e: 8120 strh r0, [r4, #8]
3da0: e7e7 b.n 3d72 <trans_anim_start_cb+0x22>
tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp);
3da2: 79a1 ldrb r1, [r4, #6]
3da4: 002a movs r2, r5
3da6: 6820 ldr r0, [r4, #0]
3da8: 4b05 ldr r3, [pc, #20] ; (3dc0 <trans_anim_start_cb+0x70>)
3daa: 4798 blx r3
3dac: 7220 strb r0, [r4, #8]
3dae: e7e0 b.n 3d72 <trans_anim_start_cb+0x22>
3db0: 00003c99 .word 0x00003c99
3db4: 00002579 .word 0x00002579
3db8: 00003a89 .word 0x00003a89
3dbc: 00003b49 .word 0x00003b49
3dc0: 00003bed .word 0x00003bed
00003dc4 <lv_obj_set_state>:
{
3dc4: b5f0 push {r4, r5, r6, r7, lr}
3dc6: 46de mov lr, fp
3dc8: 4657 mov r7, sl
3dca: 464e mov r6, r9
3dcc: 4645 mov r5, r8
3dce: b5e0 push {r5, r6, r7, lr}
3dd0: b09f sub sp, #124 ; 0x7c
3dd2: 0004 movs r4, r0
3dd4: 468b mov fp, r1
if(obj->state == new_state) return;
3dd6: 233d movs r3, #61 ; 0x3d
3dd8: 5cc3 ldrb r3, [r0, r3]
3dda: 428b cmp r3, r1
3ddc: d100 bne.n 3de0 <lv_obj_set_state+0x1c>
3dde: e23e b.n 425e <lv_obj_set_state+0x49a>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3de0: 4bd6 ldr r3, [pc, #856] ; (413c <lv_obj_set_state+0x378>)
3de2: 4798 blx r3
3de4: 2800 cmp r0, #0
3de6: d008 beq.n 3dfa <lv_obj_set_state+0x36>
lv_state_t prev_state = obj->state;
3de8: 233d movs r3, #61 ; 0x3d
3dea: 5ce2 ldrb r2, [r4, r3]
3dec: 4691 mov r9, r2
obj->state = new_state;
3dee: 465a mov r2, fp
3df0: 54e2 strb r2, [r4, r3]
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
3df2: 2300 movs r3, #0
3df4: 9302 str r3, [sp, #8]
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3df6: 46ca mov sl, r9
3df8: e1e8 b.n 41cc <lv_obj_set_state+0x408>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3dfa: 4bd1 ldr r3, [pc, #836] ; (4140 <lv_obj_set_state+0x37c>)
3dfc: 9300 str r3, [sp, #0]
3dfe: 4ad1 ldr r2, [pc, #836] ; (4144 <lv_obj_set_state+0x380>)
3e00: 49d1 ldr r1, [pc, #836] ; (4148 <lv_obj_set_state+0x384>)
3e02: 3003 adds r0, #3
3e04: 4dd1 ldr r5, [pc, #836] ; (414c <lv_obj_set_state+0x388>)
3e06: 47a8 blx r5
3e08: 0022 movs r2, r4
3e0a: 2300 movs r3, #0
3e0c: 48d0 ldr r0, [pc, #832] ; (4150 <lv_obj_set_state+0x38c>)
3e0e: 49d1 ldr r1, [pc, #836] ; (4154 <lv_obj_set_state+0x390>)
3e10: 4788 blx r1
3e12: e7fe b.n 3e12 <lv_obj_set_state+0x4e>
style_list->skip_trans = 1;
3e14: 7973 ldrb r3, [r6, #5]
3e16: 2204 movs r2, #4
3e18: 4313 orrs r3, r2
3e1a: 7173 strb r3, [r6, #5]
obj->state = prev_state;
3e1c: 233d movs r3, #61 ; 0x3d
3e1e: 4699 mov r9, r3
3e20: 4652 mov r2, sl
3e22: 54e2 strb r2, [r4, r3]
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3e24: 002a movs r2, r5
3e26: 9902 ldr r1, [sp, #8]
3e28: 0020 movs r0, r4
3e2a: 4fcb ldr r7, [pc, #812] ; (4158 <lv_obj_set_state+0x394>)
3e2c: 47b8 blx r7
3e2e: 9009 str r0, [sp, #36] ; 0x24
obj->state = new_state;
3e30: 464b mov r3, r9
3e32: 465a mov r2, fp
3e34: 54e2 strb r2, [r4, r3]
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3e36: 002a movs r2, r5
3e38: 9902 ldr r1, [sp, #8]
3e3a: 0020 movs r0, r4
3e3c: 47b8 blx r7
3e3e: 4680 mov r8, r0
style_list->skip_trans = 0;
3e40: 7973 ldrb r3, [r6, #5]
3e42: 2204 movs r2, #4
3e44: 4393 bics r3, r2
3e46: 7173 strb r3, [r6, #5]
if(int1 == int2) return NULL;
3e48: 9b09 ldr r3, [sp, #36] ; 0x24
3e4a: 4283 cmp r3, r0
3e4c: d04b beq.n 3ee6 <lv_obj_set_state+0x122>
obj->state = prev_state;
3e4e: 263d movs r6, #61 ; 0x3d
3e50: 4653 mov r3, sl
3e52: 55a3 strb r3, [r4, r6]
int1 = _lv_obj_get_style_int(obj, part, prop);
3e54: 002a movs r2, r5
3e56: 9902 ldr r1, [sp, #8]
3e58: 0020 movs r0, r4
3e5a: 4bbf ldr r3, [pc, #764] ; (4158 <lv_obj_set_state+0x394>)
3e5c: 4798 blx r3
3e5e: 0002 movs r2, r0
3e60: 4681 mov r9, r0
obj->state = new_state;
3e62: 465b mov r3, fp
3e64: 55a3 strb r3, [r4, r6]
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3e66: 0029 movs r1, r5
3e68: 9803 ldr r0, [sp, #12]
3e6a: 4bbc ldr r3, [pc, #752] ; (415c <lv_obj_set_state+0x398>)
3e6c: 4798 blx r3
if(prop == LV_STYLE_RADIUS) {
3e6e: 2d01 cmp r5, #1
3e70: d100 bne.n 3e74 <lv_obj_set_state+0xb0>
3e72: e096 b.n 3fa2 <lv_obj_set_state+0x1de>
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3e74: 48ba ldr r0, [pc, #744] ; (4160 <lv_obj_set_state+0x39c>)
3e76: 4bbb ldr r3, [pc, #748] ; (4164 <lv_obj_set_state+0x3a0>)
3e78: 4798 blx r3
3e7a: 0006 movs r6, r0
LV_ASSERT_MEM(tr);
3e7c: 4baf ldr r3, [pc, #700] ; (413c <lv_obj_set_state+0x378>)
3e7e: 4798 blx r3
3e80: 2800 cmp r0, #0
3e82: d100 bne.n 3e86 <lv_obj_set_state+0xc2>
3e84: e0a2 b.n 3fcc <lv_obj_set_state+0x208>
if(tr == NULL) return NULL;
3e86: 2e00 cmp r6, #0
3e88: d02d beq.n 3ee6 <lv_obj_set_state+0x122>
tr->start_value._int = int1;
3e8a: 464b mov r3, r9
3e8c: 8133 strh r3, [r6, #8]
tr->end_value._int = int2;
3e8e: 4643 mov r3, r8
3e90: 81b3 strh r3, [r6, #12]
tr->obj = obj;
3e92: 6034 str r4, [r6, #0]
tr->prop = props[i];
3e94: 80b5 strh r5, [r6, #4]
tr->part = part;
3e96: 466b mov r3, sp
3e98: 7a1b ldrb r3, [r3, #8]
3e9a: 71b3 strb r3, [r6, #6]
lv_anim_init(&a);
3e9c: a80e add r0, sp, #56 ; 0x38
3e9e: 4bb2 ldr r3, [pc, #712] ; (4168 <lv_obj_set_state+0x3a4>)
3ea0: 4798 blx r3
* @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)
{
a->var = var;
3ea2: 960e str r6, [sp, #56] ; 0x38
* LittelvGL'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)
{
a->exec_cb = exec_cb;
3ea4: 4bb1 ldr r3, [pc, #708] ; (416c <lv_obj_set_state+0x3a8>)
3ea6: 930f str r3, [sp, #60] ; 0x3c
* @param a pointer to an initialized `lv_anim_t` variable
* @param start_cb a function call when the animation starts
*/
static inline void lv_anim_set_start_cb(lv_anim_t * a, lv_anim_ready_cb_t start_cb)
{
a->start_cb = start_cb;
3ea8: 4bb1 ldr r3, [pc, #708] ; (4170 <lv_obj_set_state+0x3ac>)
3eaa: 9310 str r3, [sp, #64] ; 0x40
* @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)
{
a->ready_cb = ready_cb;
3eac: 4bb1 ldr r3, [pc, #708] ; (4174 <lv_obj_set_state+0x3b0>)
3eae: 9311 str r3, [sp, #68] ; 0x44
a->start = start;
3eb0: 2300 movs r3, #0
3eb2: 9314 str r3, [sp, #80] ; 0x50
a->end = end;
3eb4: 33ff adds r3, #255 ; 0xff
3eb6: 9315 str r3, [sp, #84] ; 0x54
lv_anim_set_time(&a, time);
3eb8: 9b08 ldr r3, [sp, #32]
3eba: 9316 str r3, [sp, #88] ; 0x58
a->act_time = (int32_t)(-delay);
3ebc: 9b07 ldr r3, [sp, #28]
3ebe: 425b negs r3, r3
3ec0: 9317 str r3, [sp, #92] ; 0x5c
3ec2: 9b06 ldr r3, [sp, #24]
3ec4: 0018 movs r0, r3
3ec6: 3008 adds r0, #8
uint8_t * d8 = (uint8_t *)dst;
3ec8: aa12 add r2, sp, #72 ; 0x48
*d8 = *s8;
3eca: 7819 ldrb r1, [r3, #0]
3ecc: 7011 strb r1, [r2, #0]
d8++;
3ece: 3201 adds r2, #1
s8++;
3ed0: 3301 adds r3, #1
while(len) {
3ed2: 4283 cmp r3, r0
3ed4: d1f9 bne.n 3eca <lv_obj_set_state+0x106>
a.early_apply = 0;
3ed6: a80e add r0, sp, #56 ; 0x38
3ed8: 2236 movs r2, #54 ; 0x36
3eda: 5c83 ldrb r3, [r0, r2]
3edc: 2101 movs r1, #1
3ede: 438b bics r3, r1
3ee0: 5483 strb r3, [r0, r2]
lv_anim_start(&a);
3ee2: 4ba5 ldr r3, [pc, #660] ; (4178 <lv_obj_set_state+0x3b4>)
3ee4: 4798 blx r3
3ee6: 9b04 ldr r3, [sp, #16]
3ee8: 3302 adds r3, #2
3eea: 9304 str r3, [sp, #16]
for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) {
3eec: 2b0c cmp r3, #12
3eee: d100 bne.n 3ef2 <lv_obj_set_state+0x12e>
3ef0: e166 b.n 41c0 <lv_obj_set_state+0x3fc>
if(props[i] != 0) {
3ef2: ab0b add r3, sp, #44 ; 0x2c
3ef4: 9a04 ldr r2, [sp, #16]
3ef6: 5ad5 ldrh r5, [r2, r3]
3ef8: 2d00 cmp r5, #0
3efa: d0f4 beq.n 3ee6 <lv_obj_set_state+0x122>
_lv_style_list_add_trans_style(style_list);
3efc: 9805 ldr r0, [sp, #20]
3efe: 4b9f ldr r3, [pc, #636] ; (417c <lv_obj_set_state+0x3b8>)
3f00: 4798 blx r3
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3f02: 9902 ldr r1, [sp, #8]
3f04: 0020 movs r0, r4
3f06: 4b9e ldr r3, [pc, #632] ; (4180 <lv_obj_set_state+0x3bc>)
3f08: 4798 blx r3
3f0a: 0006 movs r6, r0
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3f0c: 4b9d ldr r3, [pc, #628] ; (4184 <lv_obj_set_state+0x3c0>)
3f0e: 4798 blx r3
3f10: 9003 str r0, [sp, #12]
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3f12: 230f movs r3, #15
3f14: 402b ands r3, r5
3f16: 2b08 cmp r3, #8
3f18: dc00 bgt.n 3f1c <lv_obj_set_state+0x158>
3f1a: e77b b.n 3e14 <lv_obj_set_state+0x50>
else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3f1c: 2b0b cmp r3, #11
3f1e: dd63 ble.n 3fe8 <lv_obj_set_state+0x224>
else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3f20: 2b0d cmp r3, #13
3f22: dd00 ble.n 3f26 <lv_obj_set_state+0x162>
3f24: e0bb b.n 409e <lv_obj_set_state+0x2da>
style_list->skip_trans = 1;
3f26: 7973 ldrb r3, [r6, #5]
3f28: 2204 movs r2, #4
3f2a: 4313 orrs r3, r2
3f2c: 7173 strb r3, [r6, #5]
obj->state = prev_state;
3f2e: 233d movs r3, #61 ; 0x3d
3f30: 4699 mov r9, r3
3f32: 4652 mov r2, sl
3f34: 54e2 strb r2, [r4, r3]
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3f36: 002a movs r2, r5
3f38: 9902 ldr r1, [sp, #8]
3f3a: 0020 movs r0, r4
3f3c: 4f92 ldr r7, [pc, #584] ; (4188 <lv_obj_set_state+0x3c4>)
3f3e: 47b8 blx r7
3f40: 4680 mov r8, r0
obj->state = new_state;
3f42: 464b mov r3, r9
3f44: 465a mov r2, fp
3f46: 54e2 strb r2, [r4, r3]
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3f48: 002a movs r2, r5
3f4a: 9902 ldr r1, [sp, #8]
3f4c: 0020 movs r0, r4
3f4e: 47b8 blx r7
3f50: 0007 movs r7, r0
style_list->skip_trans = 0;
3f52: 7973 ldrb r3, [r6, #5]
3f54: 2204 movs r2, #4
3f56: 4393 bics r3, r2
3f58: 7173 strb r3, [r6, #5]
if(o1 == o2) return NULL;
3f5a: 4643 mov r3, r8
3f5c: 4283 cmp r3, r0
3f5e: d0c2 beq.n 3ee6 <lv_obj_set_state+0x122>
obj->state = prev_state;
3f60: 263d movs r6, #61 ; 0x3d
3f62: 4653 mov r3, sl
3f64: 55a3 strb r3, [r4, r6]
o1 = _lv_obj_get_style_opa(obj, part, prop);
3f66: 002a movs r2, r5
3f68: 9902 ldr r1, [sp, #8]
3f6a: 0020 movs r0, r4
3f6c: 4b86 ldr r3, [pc, #536] ; (4188 <lv_obj_set_state+0x3c4>)
3f6e: 4798 blx r3
3f70: 0002 movs r2, r0
3f72: 9009 str r0, [sp, #36] ; 0x24
obj->state = new_state;
3f74: 465b mov r3, fp
3f76: 55a3 strb r3, [r4, r6]
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
3f78: 0029 movs r1, r5
3f7a: 9803 ldr r0, [sp, #12]
3f7c: 4b83 ldr r3, [pc, #524] ; (418c <lv_obj_set_state+0x3c8>)
3f7e: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3f80: 4877 ldr r0, [pc, #476] ; (4160 <lv_obj_set_state+0x39c>)
3f82: 4b78 ldr r3, [pc, #480] ; (4164 <lv_obj_set_state+0x3a0>)
3f84: 4798 blx r3
3f86: 0006 movs r6, r0
LV_ASSERT_MEM(tr);
3f88: 4b6c ldr r3, [pc, #432] ; (413c <lv_obj_set_state+0x378>)
3f8a: 4798 blx r3
3f8c: 2800 cmp r0, #0
3f8e: d079 beq.n 4084 <lv_obj_set_state+0x2c0>
if(tr == NULL) return NULL;
3f90: 2e00 cmp r6, #0
3f92: d0a8 beq.n 3ee6 <lv_obj_set_state+0x122>
tr->start_value._opa = o1;
3f94: 466b mov r3, sp
3f96: 2224 movs r2, #36 ; 0x24
3f98: 189b adds r3, r3, r2
3f9a: 781b ldrb r3, [r3, #0]
3f9c: 7233 strb r3, [r6, #8]
tr->end_value._opa = o2;
3f9e: 7337 strb r7, [r6, #12]
3fa0: e777 b.n 3e92 <lv_obj_set_state+0xce>
if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) {
3fa2: 4b7b ldr r3, [pc, #492] ; (4190 <lv_obj_set_state+0x3cc>)
3fa4: 4599 cmp r9, r3
3fa6: d100 bne.n 3faa <lv_obj_set_state+0x1e6>
3fa8: e160 b.n 426c <lv_obj_set_state+0x4a8>
3faa: 4598 cmp r8, r3
3fac: d000 beq.n 3fb0 <lv_obj_set_state+0x1ec>
3fae: e761 b.n 3e74 <lv_obj_set_state+0xb0>
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
3fb0: 0020 movs r0, r4
3fb2: 4f78 ldr r7, [pc, #480] ; (4194 <lv_obj_set_state+0x3d0>)
3fb4: 47b8 blx r7
3fb6: 0fc6 lsrs r6, r0, #31
3fb8: 1836 adds r6, r6, r0
3fba: 1076 asrs r6, r6, #1
3fbc: b236 sxth r6, r6
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3fbe: 0020 movs r0, r4
3fc0: 47b8 blx r7
3fc2: 0fc3 lsrs r3, r0, #31
3fc4: 181b adds r3, r3, r0
3fc6: 105b asrs r3, r3, #1
3fc8: b21b sxth r3, r3
3fca: e167 b.n 429c <lv_obj_set_state+0x4d8>
LV_ASSERT_MEM(tr);
3fcc: 4b72 ldr r3, [pc, #456] ; (4198 <lv_obj_set_state+0x3d4>)
3fce: 9300 str r3, [sp, #0]
3fd0: 22eb movs r2, #235 ; 0xeb
3fd2: 0112 lsls r2, r2, #4
3fd4: 495c ldr r1, [pc, #368] ; (4148 <lv_obj_set_state+0x384>)
3fd6: 3003 adds r0, #3
3fd8: 4c5c ldr r4, [pc, #368] ; (414c <lv_obj_set_state+0x388>)
3fda: 47a0 blx r4
3fdc: 0032 movs r2, r6
3fde: 2300 movs r3, #0
3fe0: 486e ldr r0, [pc, #440] ; (419c <lv_obj_set_state+0x3d8>)
3fe2: 495c ldr r1, [pc, #368] ; (4154 <lv_obj_set_state+0x390>)
3fe4: 4788 blx r1
3fe6: e7fe b.n 3fe6 <lv_obj_set_state+0x222>
style_list->skip_trans = 1;
3fe8: 7973 ldrb r3, [r6, #5]
3fea: 2204 movs r2, #4
3fec: 4313 orrs r3, r2
3fee: 7173 strb r3, [r6, #5]
obj->state = prev_state;
3ff0: 233d movs r3, #61 ; 0x3d
3ff2: 4699 mov r9, r3
3ff4: 4652 mov r2, sl
3ff6: 54e2 strb r2, [r4, r3]
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3ff8: 002a movs r2, r5
3ffa: 9902 ldr r1, [sp, #8]
3ffc: 0020 movs r0, r4
3ffe: 4b68 ldr r3, [pc, #416] ; (41a0 <lv_obj_set_state+0x3dc>)
4000: 4698 mov r8, r3
4002: 4798 blx r3
4004: 1c07 adds r7, r0, #0
obj->state = new_state;
4006: 464b mov r3, r9
4008: 465a mov r2, fp
400a: 54e2 strb r2, [r4, r3]
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
400c: 002a movs r2, r5
400e: 9902 ldr r1, [sp, #8]
4010: 0020 movs r0, r4
4012: 47c0 blx r8
4014: 466b mov r3, sp
4016: 8498 strh r0, [r3, #36] ; 0x24
style_list->skip_trans = 0;
4018: 7973 ldrb r3, [r6, #5]
401a: 2204 movs r2, #4
401c: 4393 bics r3, r2
401e: 7173 strb r3, [r6, #5]
if(c1.full == c2.full) return NULL;
4020: b2bf uxth r7, r7
4022: b283 uxth r3, r0
4024: 429f cmp r7, r3
4026: d100 bne.n 402a <lv_obj_set_state+0x266>
4028: e75d b.n 3ee6 <lv_obj_set_state+0x122>
obj->state = prev_state;
402a: 263d movs r6, #61 ; 0x3d
402c: 4653 mov r3, sl
402e: 55a3 strb r3, [r4, r6]
c1 = _lv_obj_get_style_color(obj, part, prop);
4030: 002a movs r2, r5
4032: 9902 ldr r1, [sp, #8]
4034: 0020 movs r0, r4
4036: 4b5a ldr r3, [pc, #360] ; (41a0 <lv_obj_set_state+0x3dc>)
4038: 4798 blx r3
403a: 1c07 adds r7, r0, #0
obj->state = new_state;
403c: 465b mov r3, fp
403e: 55a3 strb r3, [r4, r6]
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
4040: 1c02 adds r2, r0, #0
4042: 0029 movs r1, r5
4044: 9803 ldr r0, [sp, #12]
4046: 4b57 ldr r3, [pc, #348] ; (41a4 <lv_obj_set_state+0x3e0>)
4048: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
404a: 4845 ldr r0, [pc, #276] ; (4160 <lv_obj_set_state+0x39c>)
404c: 4b45 ldr r3, [pc, #276] ; (4164 <lv_obj_set_state+0x3a0>)
404e: 4798 blx r3
4050: 0006 movs r6, r0
LV_ASSERT_MEM(tr);
4052: 4b3a ldr r3, [pc, #232] ; (413c <lv_obj_set_state+0x378>)
4054: 4798 blx r3
4056: 2800 cmp r0, #0
4058: d007 beq.n 406a <lv_obj_set_state+0x2a6>
if(tr == NULL) return NULL;
405a: 2e00 cmp r6, #0
405c: d100 bne.n 4060 <lv_obj_set_state+0x29c>
405e: e742 b.n 3ee6 <lv_obj_set_state+0x122>
tr->start_value._color = c1;
4060: 8137 strh r7, [r6, #8]
tr->end_value._color = c2;
4062: 466b mov r3, sp
4064: 8c9b ldrh r3, [r3, #36] ; 0x24
4066: 81b3 strh r3, [r6, #12]
4068: e713 b.n 3e92 <lv_obj_set_state+0xce>
LV_ASSERT_MEM(tr);
406a: 4b4b ldr r3, [pc, #300] ; (4198 <lv_obj_set_state+0x3d4>)
406c: 9300 str r3, [sp, #0]
406e: 4a4e ldr r2, [pc, #312] ; (41a8 <lv_obj_set_state+0x3e4>)
4070: 4935 ldr r1, [pc, #212] ; (4148 <lv_obj_set_state+0x384>)
4072: 3003 adds r0, #3
4074: 4c35 ldr r4, [pc, #212] ; (414c <lv_obj_set_state+0x388>)
4076: 47a0 blx r4
4078: 0032 movs r2, r6
407a: 2300 movs r3, #0
407c: 4847 ldr r0, [pc, #284] ; (419c <lv_obj_set_state+0x3d8>)
407e: 4935 ldr r1, [pc, #212] ; (4154 <lv_obj_set_state+0x390>)
4080: 4788 blx r1
4082: e7fe b.n 4082 <lv_obj_set_state+0x2be>
LV_ASSERT_MEM(tr);
4084: 4b44 ldr r3, [pc, #272] ; (4198 <lv_obj_set_state+0x3d4>)
4086: 9300 str r3, [sp, #0]
4088: 4a48 ldr r2, [pc, #288] ; (41ac <lv_obj_set_state+0x3e8>)
408a: 492f ldr r1, [pc, #188] ; (4148 <lv_obj_set_state+0x384>)
408c: 3003 adds r0, #3
408e: 4c2f ldr r4, [pc, #188] ; (414c <lv_obj_set_state+0x388>)
4090: 47a0 blx r4
4092: 0032 movs r2, r6
4094: 2300 movs r3, #0
4096: 4841 ldr r0, [pc, #260] ; (419c <lv_obj_set_state+0x3d8>)
4098: 492e ldr r1, [pc, #184] ; (4154 <lv_obj_set_state+0x390>)
409a: 4788 blx r1
409c: e7fe b.n 409c <lv_obj_set_state+0x2d8>
obj->state = prev_state;
409e: 233d movs r3, #61 ; 0x3d
40a0: 4699 mov r9, r3
40a2: 4652 mov r2, sl
40a4: 54e2 strb r2, [r4, r3]
style_list->skip_trans = 1;
40a6: 7973 ldrb r3, [r6, #5]
40a8: 2204 movs r2, #4
40aa: 4313 orrs r3, r2
40ac: 7173 strb r3, [r6, #5]
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
40ae: 002a movs r2, r5
40b0: 9902 ldr r1, [sp, #8]
40b2: 0020 movs r0, r4
40b4: 4f3e ldr r7, [pc, #248] ; (41b0 <lv_obj_set_state+0x3ec>)
40b6: 47b8 blx r7
40b8: 900a str r0, [sp, #40] ; 0x28
obj->state = new_state;
40ba: 464b mov r3, r9
40bc: 465a mov r2, fp
40be: 54e2 strb r2, [r4, r3]
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
40c0: 002a movs r2, r5
40c2: 9902 ldr r1, [sp, #8]
40c4: 0020 movs r0, r4
40c6: 47b8 blx r7
40c8: 0007 movs r7, r0
40ca: 900e str r0, [sp, #56] ; 0x38
style_list->skip_trans = 0;
40cc: 7973 ldrb r3, [r6, #5]
40ce: 2204 movs r2, #4
40d0: 4393 bics r3, r2
40d2: 7173 strb r3, [r6, #5]
if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL;
40d4: a90e add r1, sp, #56 ; 0x38
40d6: a80a add r0, sp, #40 ; 0x28
40d8: 4b36 ldr r3, [pc, #216] ; (41b4 <lv_obj_set_state+0x3f0>)
40da: 4798 blx r3
40dc: 2800 cmp r0, #0
40de: d100 bne.n 40e2 <lv_obj_set_state+0x31e>
40e0: e701 b.n 3ee6 <lv_obj_set_state+0x122>
obj->state = prev_state;
40e2: 263d movs r6, #61 ; 0x3d
40e4: 4653 mov r3, sl
40e6: 55a3 strb r3, [r4, r6]
p1 = _lv_obj_get_style_ptr(obj, part, prop);
40e8: 002a movs r2, r5
40ea: 9902 ldr r1, [sp, #8]
40ec: 0020 movs r0, r4
40ee: 4b30 ldr r3, [pc, #192] ; (41b0 <lv_obj_set_state+0x3ec>)
40f0: 4798 blx r3
40f2: 4681 mov r9, r0
40f4: 900a str r0, [sp, #40] ; 0x28
obj->state = new_state;
40f6: 465b mov r3, fp
40f8: 55a3 strb r3, [r4, r6]
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
40fa: 0002 movs r2, r0
40fc: 0029 movs r1, r5
40fe: 9803 ldr r0, [sp, #12]
4100: 4b2d ldr r3, [pc, #180] ; (41b8 <lv_obj_set_state+0x3f4>)
4102: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
4104: 4816 ldr r0, [pc, #88] ; (4160 <lv_obj_set_state+0x39c>)
4106: 4b17 ldr r3, [pc, #92] ; (4164 <lv_obj_set_state+0x3a0>)
4108: 4798 blx r3
410a: 0006 movs r6, r0
LV_ASSERT_MEM(tr);
410c: 4b0b ldr r3, [pc, #44] ; (413c <lv_obj_set_state+0x378>)
410e: 4798 blx r3
4110: 2800 cmp r0, #0
4112: d006 beq.n 4122 <lv_obj_set_state+0x35e>
if(tr == NULL) return NULL;
4114: 2e00 cmp r6, #0
4116: d100 bne.n 411a <lv_obj_set_state+0x356>
4118: e6e5 b.n 3ee6 <lv_obj_set_state+0x122>
tr->start_value._ptr = p1;
411a: 464b mov r3, r9
411c: 60b3 str r3, [r6, #8]
tr->end_value._ptr = p2;
411e: 60f7 str r7, [r6, #12]
4120: e6b7 b.n 3e92 <lv_obj_set_state+0xce>
LV_ASSERT_MEM(tr);
4122: 4b1d ldr r3, [pc, #116] ; (4198 <lv_obj_set_state+0x3d4>)
4124: 9300 str r3, [sp, #0]
4126: 4a25 ldr r2, [pc, #148] ; (41bc <lv_obj_set_state+0x3f8>)
4128: 4907 ldr r1, [pc, #28] ; (4148 <lv_obj_set_state+0x384>)
412a: 3003 adds r0, #3
412c: 4c07 ldr r4, [pc, #28] ; (414c <lv_obj_set_state+0x388>)
412e: 47a0 blx r4
4130: 0032 movs r2, r6
4132: 2300 movs r3, #0
4134: 4819 ldr r0, [pc, #100] ; (419c <lv_obj_set_state+0x3d8>)
4136: 4907 ldr r1, [pc, #28] ; (4154 <lv_obj_set_state+0x390>)
4138: 4788 blx r1
413a: e7fe b.n 413a <lv_obj_set_state+0x376>
413c: 000017ad .word 0x000017ad
4140: 00025a08 .word 0x00025a08
4144: 00000637 .word 0x00000637
4148: 00025c2c .word 0x00025c2c
414c: 00012159 .word 0x00012159
4150: 00025d20 .word 0x00025d20
4154: 000017b5 .word 0x000017b5
4158: 00003a89 .word 0x00003a89
415c: 00005fad .word 0x00005fad
4160: 20004dc4 .word 0x20004dc4
4164: 00011de5 .word 0x00011de5
4168: 000111b9 .word 0x000111b9
416c: 00003225 .word 0x00003225
4170: 00003d51 .word 0x00003d51
4174: 0000267d .word 0x0000267d
4178: 00011279 .word 0x00011279
417c: 00006aad .word 0x00006aad
4180: 00002549 .word 0x00002549
4184: 00006965 .word 0x00006965
4188: 00003bed .word 0x00003bed
418c: 000062bd .word 0x000062bd
4190: 00007fff .word 0x00007fff
4194: 000024a1 .word 0x000024a1
4198: 00025c1c .word 0x00025c1c
419c: 00025854 .word 0x00025854
41a0: 00003b49 .word 0x00003b49
41a4: 00006135 .word 0x00006135
41a8: 00000ec4 .word 0x00000ec4
41ac: 00000ed9 .word 0x00000ed9
41b0: 00003c99 .word 0x00003c99
41b4: 0001c641 .word 0x0001c641
41b8: 00006431 .word 0x00006431
41bc: 00000eed .word 0x00000eed
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
41c0: 9b02 ldr r3, [sp, #8]
41c2: 3301 adds r3, #1
41c4: b2db uxtb r3, r3
41c6: 9302 str r3, [sp, #8]
41c8: 2b40 cmp r3, #64 ; 0x40
41ca: d044 beq.n 4256 <lv_obj_set_state+0x492>
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
41cc: 9902 ldr r1, [sp, #8]
41ce: 0020 movs r0, r4
41d0: 4b36 ldr r3, [pc, #216] ; (42ac <lv_obj_set_state+0x4e8>)
41d2: 4798 blx r3
41d4: 9005 str r0, [sp, #20]
if(style_list == NULL) break; /*No more style lists*/
41d6: 2800 cmp r0, #0
41d8: d03d beq.n 4256 <lv_obj_set_state+0x492>
if(style_list->ignore_trans) continue;
41da: 7943 ldrb r3, [r0, #5]
41dc: 071b lsls r3, r3, #28
41de: d4ef bmi.n 41c0 <lv_obj_set_state+0x3fc>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
41e0: 22b0 movs r2, #176 ; 0xb0
41e2: 9e02 ldr r6, [sp, #8]
41e4: 0031 movs r1, r6
41e6: 0020 movs r0, r4
41e8: 4b31 ldr r3, [pc, #196] ; (42b0 <lv_obj_set_state+0x4ec>)
41ea: 4798 blx r3
41ec: 9008 str r0, [sp, #32]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
41ee: 22b1 movs r2, #177 ; 0xb1
41f0: 0031 movs r1, r6
41f2: 0020 movs r0, r4
41f4: 4b2e ldr r3, [pc, #184] ; (42b0 <lv_obj_set_state+0x4ec>)
41f6: 4798 blx r3
41f8: 9007 str r0, [sp, #28]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
#if LV_USE_ANIMATION
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
41fa: 22be movs r2, #190 ; 0xbe
41fc: 0031 movs r1, r6
41fe: 0020 movs r0, r4
4200: 4b2c ldr r3, [pc, #176] ; (42b4 <lv_obj_set_state+0x4f0>)
4202: 4798 blx r3
4204: 9006 str r0, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
4206: 22b2 movs r2, #178 ; 0xb2
4208: 0031 movs r1, r6
420a: 0020 movs r0, r4
420c: 4b28 ldr r3, [pc, #160] ; (42b0 <lv_obj_set_state+0x4ec>)
420e: 4798 blx r3
props[0] = lv_obj_get_style_transition_prop_1(obj, part);
4210: ad0b add r5, sp, #44 ; 0x2c
4212: 8028 strh r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
4214: 22b3 movs r2, #179 ; 0xb3
4216: 0031 movs r1, r6
4218: 0020 movs r0, r4
421a: 4b25 ldr r3, [pc, #148] ; (42b0 <lv_obj_set_state+0x4ec>)
421c: 4798 blx r3
props[1] = lv_obj_get_style_transition_prop_2(obj, part);
421e: 8068 strh r0, [r5, #2]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
4220: 22b4 movs r2, #180 ; 0xb4
4222: 0031 movs r1, r6
4224: 0020 movs r0, r4
4226: 4b22 ldr r3, [pc, #136] ; (42b0 <lv_obj_set_state+0x4ec>)
4228: 4798 blx r3
props[2] = lv_obj_get_style_transition_prop_3(obj, part);
422a: 80a8 strh r0, [r5, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
422c: 22b5 movs r2, #181 ; 0xb5
422e: 0031 movs r1, r6
4230: 0020 movs r0, r4
4232: 4b1f ldr r3, [pc, #124] ; (42b0 <lv_obj_set_state+0x4ec>)
4234: 4798 blx r3
props[3] = lv_obj_get_style_transition_prop_4(obj, part);
4236: 80e8 strh r0, [r5, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
4238: 22b6 movs r2, #182 ; 0xb6
423a: 0031 movs r1, r6
423c: 0020 movs r0, r4
423e: 4b1c ldr r3, [pc, #112] ; (42b0 <lv_obj_set_state+0x4ec>)
4240: 4798 blx r3
props[4] = lv_obj_get_style_transition_prop_5(obj, part);
4242: 8128 strh r0, [r5, #8]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
4244: 22b7 movs r2, #183 ; 0xb7
4246: 0031 movs r1, r6
4248: 0020 movs r0, r4
424a: 4b19 ldr r3, [pc, #100] ; (42b0 <lv_obj_set_state+0x4ec>)
424c: 4798 blx r3
props[5] = lv_obj_get_style_transition_prop_6(obj, part);
424e: 8168 strh r0, [r5, #10]
4250: 2300 movs r3, #0
4252: 9304 str r3, [sp, #16]
4254: e64d b.n 3ef2 <lv_obj_set_state+0x12e>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
4256: 21ff movs r1, #255 ; 0xff
4258: 0020 movs r0, r4
425a: 4b17 ldr r3, [pc, #92] ; (42b8 <lv_obj_set_state+0x4f4>)
425c: 4798 blx r3
}
425e: b01f add sp, #124 ; 0x7c
4260: bc3c pop {r2, r3, r4, r5}
4262: 4690 mov r8, r2
4264: 4699 mov r9, r3
4266: 46a2 mov sl, r4
4268: 46ab mov fp, r5
426a: bdf0 pop {r4, r5, r6, r7, pc}
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
426c: 0020 movs r0, r4
426e: 4f13 ldr r7, [pc, #76] ; (42bc <lv_obj_set_state+0x4f8>)
4270: 47b8 blx r7
4272: 0fc6 lsrs r6, r0, #31
4274: 1836 adds r6, r6, r0
4276: 1076 asrs r6, r6, #1
4278: b236 sxth r6, r6
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
427a: 0020 movs r0, r4
427c: 47b8 blx r7
427e: 0fc3 lsrs r3, r0, #31
4280: 181b adds r3, r3, r0
4282: 105b asrs r3, r3, #1
4284: b21b sxth r3, r3
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
4286: 1c71 adds r1, r6, #1
4288: 1c5a adds r2, r3, #1
428a: 428a cmp r2, r1
428c: dd00 ble.n 4290 <lv_obj_set_state+0x4cc>
428e: 000a movs r2, r1
4290: b212 sxth r2, r2
4292: 4691 mov r9, r2
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
4294: 4a0a ldr r2, [pc, #40] ; (42c0 <lv_obj_set_state+0x4fc>)
4296: 4590 cmp r8, r2
4298: d000 beq.n 429c <lv_obj_set_state+0x4d8>
429a: e5eb b.n 3e74 <lv_obj_set_state+0xb0>
429c: 3601 adds r6, #1
429e: 3301 adds r3, #1
42a0: 42b3 cmp r3, r6
42a2: dd00 ble.n 42a6 <lv_obj_set_state+0x4e2>
42a4: 0033 movs r3, r6
42a6: b21b sxth r3, r3
42a8: 4698 mov r8, r3
42aa: e5e3 b.n 3e74 <lv_obj_set_state+0xb0>
42ac: 00002549 .word 0x00002549
42b0: 00003a89 .word 0x00003a89
42b4: 00003c99 .word 0x00003c99
42b8: 00002ff5 .word 0x00002ff5
42bc: 000024a1 .word 0x000024a1
42c0: 00007fff .word 0x00007fff
000042c4 <lv_obj_add_state>:
{
42c4: b530 push {r4, r5, lr}
42c6: b083 sub sp, #12
42c8: 0004 movs r4, r0
42ca: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
42cc: 4b0d ldr r3, [pc, #52] ; (4304 <lv_obj_add_state+0x40>)
42ce: 4798 blx r3
42d0: 2800 cmp r0, #0
42d2: d00a beq.n 42ea <lv_obj_add_state+0x26>
lv_state_t new_state = obj->state | state;
42d4: 233d movs r3, #61 ; 0x3d
42d6: 5ce3 ldrb r3, [r4, r3]
42d8: 0029 movs r1, r5
42da: 4319 orrs r1, r3
if(obj->state != new_state) {
42dc: 428b cmp r3, r1
42de: d002 beq.n 42e6 <lv_obj_add_state+0x22>
lv_obj_set_state(obj, new_state);
42e0: 0020 movs r0, r4
42e2: 4b09 ldr r3, [pc, #36] ; (4308 <lv_obj_add_state+0x44>)
42e4: 4798 blx r3
}
42e6: b003 add sp, #12
42e8: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
42ea: 4b08 ldr r3, [pc, #32] ; (430c <lv_obj_add_state+0x48>)
42ec: 9300 str r3, [sp, #0]
42ee: 4a08 ldr r2, [pc, #32] ; (4310 <lv_obj_add_state+0x4c>)
42f0: 4908 ldr r1, [pc, #32] ; (4314 <lv_obj_add_state+0x50>)
42f2: 3003 adds r0, #3
42f4: 4d08 ldr r5, [pc, #32] ; (4318 <lv_obj_add_state+0x54>)
42f6: 47a8 blx r5
42f8: 0022 movs r2, r4
42fa: 2300 movs r3, #0
42fc: 4807 ldr r0, [pc, #28] ; (431c <lv_obj_add_state+0x58>)
42fe: 4908 ldr r1, [pc, #32] ; (4320 <lv_obj_add_state+0x5c>)
4300: 4788 blx r1
4302: e7fe b.n 4302 <lv_obj_add_state+0x3e>
4304: 000017ad .word 0x000017ad
4308: 00003dc5 .word 0x00003dc5
430c: 00025a1c .word 0x00025a1c
4310: 0000067e .word 0x0000067e
4314: 00025c2c .word 0x00025c2c
4318: 00012159 .word 0x00012159
431c: 00025d20 .word 0x00025d20
4320: 000017b5 .word 0x000017b5
00004324 <lv_obj_clear_state>:
{
4324: b530 push {r4, r5, lr}
4326: b083 sub sp, #12
4328: 0004 movs r4, r0
432a: 000d movs r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
432c: 4b0d ldr r3, [pc, #52] ; (4364 <lv_obj_clear_state+0x40>)
432e: 4798 blx r3
4330: 2800 cmp r0, #0
4332: d00a beq.n 434a <lv_obj_clear_state+0x26>
lv_state_t new_state = obj->state & (~state);
4334: 233d movs r3, #61 ; 0x3d
4336: 5ce3 ldrb r3, [r4, r3]
4338: 0019 movs r1, r3
433a: 43a9 bics r1, r5
if(obj->state != new_state) {
433c: 428b cmp r3, r1
433e: d002 beq.n 4346 <lv_obj_clear_state+0x22>
lv_obj_set_state(obj, new_state);
4340: 0020 movs r0, r4
4342: 4b09 ldr r3, [pc, #36] ; (4368 <lv_obj_clear_state+0x44>)
4344: 4798 blx r3
}
4346: b003 add sp, #12
4348: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
434a: 4b08 ldr r3, [pc, #32] ; (436c <lv_obj_clear_state+0x48>)
434c: 9300 str r3, [sp, #0]
434e: 4a08 ldr r2, [pc, #32] ; (4370 <lv_obj_clear_state+0x4c>)
4350: 4908 ldr r1, [pc, #32] ; (4374 <lv_obj_clear_state+0x50>)
4352: 3003 adds r0, #3
4354: 4d08 ldr r5, [pc, #32] ; (4378 <lv_obj_clear_state+0x54>)
4356: 47a8 blx r5
4358: 0022 movs r2, r4
435a: 2300 movs r3, #0
435c: 4807 ldr r0, [pc, #28] ; (437c <lv_obj_clear_state+0x58>)
435e: 4908 ldr r1, [pc, #32] ; (4380 <lv_obj_clear_state+0x5c>)
4360: 4788 blx r1
4362: e7fe b.n 4362 <lv_obj_clear_state+0x3e>
4364: 000017ad .word 0x000017ad
4368: 00003dc5 .word 0x00003dc5
436c: 00025a30 .word 0x00025a30
4370: 0000068f .word 0x0000068f
4374: 00025c2c .word 0x00025c2c
4378: 00012159 .word 0x00012159
437c: 00025d20 .word 0x00025d20
4380: 000017b5 .word 0x000017b5
00004384 <lv_obj_get_signal_cb>:
{
4384: b530 push {r4, r5, lr}
4386: b083 sub sp, #12
4388: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
438a: 4b0a ldr r3, [pc, #40] ; (43b4 <lv_obj_get_signal_cb+0x30>)
438c: 4798 blx r3
438e: 2800 cmp r0, #0
4390: d002 beq.n 4398 <lv_obj_get_signal_cb+0x14>
return obj->signal_cb;
4392: 69e0 ldr r0, [r4, #28]
}
4394: b003 add sp, #12
4396: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4398: 4b07 ldr r3, [pc, #28] ; (43b8 <lv_obj_get_signal_cb+0x34>)
439a: 9300 str r3, [sp, #0]
439c: 4a07 ldr r2, [pc, #28] ; (43bc <lv_obj_get_signal_cb+0x38>)
439e: 4908 ldr r1, [pc, #32] ; (43c0 <lv_obj_get_signal_cb+0x3c>)
43a0: 3003 adds r0, #3
43a2: 4d08 ldr r5, [pc, #32] ; (43c4 <lv_obj_get_signal_cb+0x40>)
43a4: 47a8 blx r5
43a6: 0022 movs r2, r4
43a8: 2300 movs r3, #0
43aa: 4807 ldr r0, [pc, #28] ; (43c8 <lv_obj_get_signal_cb+0x44>)
43ac: 4907 ldr r1, [pc, #28] ; (43cc <lv_obj_get_signal_cb+0x48>)
43ae: 4788 blx r1
43b0: e7fe b.n 43b0 <lv_obj_get_signal_cb+0x2c>
43b2: 46c0 nop ; (mov r8, r8)
43b4: 000017ad .word 0x000017ad
43b8: 00025bc8 .word 0x00025bc8
43bc: 00000af5 .word 0x00000af5
43c0: 00025c2c .word 0x00025c2c
43c4: 00012159 .word 0x00012159
43c8: 00025d20 .word 0x00025d20
43cc: 000017b5 .word 0x000017b5
000043d0 <lv_obj_get_ext_attr>:
{
43d0: b530 push {r4, r5, lr}
43d2: b083 sub sp, #12
43d4: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
43d6: 4b0a ldr r3, [pc, #40] ; (4400 <lv_obj_get_ext_attr+0x30>)
43d8: 4798 blx r3
43da: 2800 cmp r0, #0
43dc: d002 beq.n 43e4 <lv_obj_get_ext_attr+0x14>
return obj->ext_attr;
43de: 6a60 ldr r0, [r4, #36] ; 0x24
}
43e0: b003 add sp, #12
43e2: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
43e4: 4b07 ldr r3, [pc, #28] ; (4404 <lv_obj_get_ext_attr+0x34>)
43e6: 9300 str r3, [sp, #0]
43e8: 4a07 ldr r2, [pc, #28] ; (4408 <lv_obj_get_ext_attr+0x38>)
43ea: 4908 ldr r1, [pc, #32] ; (440c <lv_obj_get_ext_attr+0x3c>)
43ec: 3003 adds r0, #3
43ee: 4d08 ldr r5, [pc, #32] ; (4410 <lv_obj_get_ext_attr+0x40>)
43f0: 47a8 blx r5
43f2: 0022 movs r2, r4
43f4: 2300 movs r3, #0
43f6: 4807 ldr r0, [pc, #28] ; (4414 <lv_obj_get_ext_attr+0x44>)
43f8: 4907 ldr r1, [pc, #28] ; (4418 <lv_obj_get_ext_attr+0x48>)
43fa: 4788 blx r1
43fc: e7fe b.n 43fc <lv_obj_get_ext_attr+0x2c>
43fe: 46c0 nop ; (mov r8, r8)
4400: 000017ad .word 0x000017ad
4404: 00025be0 .word 0x00025be0
4408: 00000b1e .word 0x00000b1e
440c: 00025c2c .word 0x00025c2c
4410: 00012159 .word 0x00012159
4414: 00025d20 .word 0x00025d20
4418: 000017b5 .word 0x000017b5
0000441c <lv_obj_get_group>:
{
441c: b530 push {r4, r5, lr}
441e: b083 sub sp, #12
4420: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4422: 4b0a ldr r3, [pc, #40] ; (444c <lv_obj_get_group+0x30>)
4424: 4798 blx r3
4426: 2800 cmp r0, #0
4428: d002 beq.n 4430 <lv_obj_get_group+0x14>
return obj->group_p;
442a: 6ba0 ldr r0, [r4, #56] ; 0x38
}
442c: b003 add sp, #12
442e: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4430: 4b07 ldr r3, [pc, #28] ; (4450 <lv_obj_get_group+0x34>)
4432: 9300 str r3, [sp, #0]
4434: 4a07 ldr r2, [pc, #28] ; (4454 <lv_obj_get_group+0x38>)
4436: 4908 ldr r1, [pc, #32] ; (4458 <lv_obj_get_group+0x3c>)
4438: 3003 adds r0, #3
443a: 4d08 ldr r5, [pc, #32] ; (445c <lv_obj_get_group+0x40>)
443c: 47a8 blx r5
443e: 0022 movs r2, r4
4440: 2300 movs r3, #0
4442: 4807 ldr r0, [pc, #28] ; (4460 <lv_obj_get_group+0x44>)
4444: 4907 ldr r1, [pc, #28] ; (4464 <lv_obj_get_group+0x48>)
4446: 4788 blx r1
4448: e7fe b.n 4448 <lv_obj_get_group+0x2c>
444a: 46c0 nop ; (mov r8, r8)
444c: 000017ad .word 0x000017ad
4450: 00025bf4 .word 0x00025bf4
4454: 00000b6f .word 0x00000b6f
4458: 00025c2c .word 0x00025c2c
445c: 00012159 .word 0x00012159
4460: 00025d20 .word 0x00025d20
4464: 000017b5 .word 0x000017b5
00004468 <obj_del_core>:
{
4468: b5f0 push {r4, r5, r6, r7, lr}
446a: b083 sub sp, #12
446c: 0005 movs r5, r0
lv_event_send(obj, LV_EVENT_DELETE, NULL);
446e: 2200 movs r2, #0
4470: 2115 movs r1, #21
4472: 4b3e ldr r3, [pc, #248] ; (456c <obj_del_core+0x104>)
4474: 4798 blx r3
lv_group_t * group = lv_obj_get_group(obj);
4476: 0028 movs r0, r5
4478: 4b3d ldr r3, [pc, #244] ; (4570 <obj_del_core+0x108>)
447a: 4798 blx r3
447c: 1e07 subs r7, r0, #0
if(group) lv_group_remove_obj(obj);
447e: d002 beq.n 4486 <obj_del_core+0x1e>
4480: 0028 movs r0, r5
4482: 4b3c ldr r3, [pc, #240] ; (4574 <obj_del_core+0x10c>)
4484: 4798 blx r3
lv_anim_del(obj, NULL);
4486: 2100 movs r1, #0
4488: 0028 movs r0, r5
448a: 4b3b ldr r3, [pc, #236] ; (4578 <obj_del_core+0x110>)
448c: 4798 blx r3
trans_del(obj, 0xFF, 0xFF, NULL);
448e: 2300 movs r3, #0
4490: 22ff movs r2, #255 ; 0xff
4492: 21ff movs r1, #255 ; 0xff
4494: 0028 movs r0, r5
4496: 4c39 ldr r4, [pc, #228] ; (457c <obj_del_core+0x114>)
4498: 47a0 blx r4
i = _lv_ll_get_head(&(obj->child_ll));
449a: 1d2b adds r3, r5, #4
449c: 9301 str r3, [sp, #4]
449e: 0018 movs r0, r3
44a0: 4b37 ldr r3, [pc, #220] ; (4580 <obj_del_core+0x118>)
44a2: 4798 blx r3
44a4: 1e04 subs r4, r0, #0
while(i != NULL) {
44a6: d00a beq.n 44be <obj_del_core+0x56>
i_next = _lv_ll_get_next(&(obj->child_ll), i);
44a8: 4e36 ldr r6, [pc, #216] ; (4584 <obj_del_core+0x11c>)
44aa: 0021 movs r1, r4
44ac: 9801 ldr r0, [sp, #4]
44ae: 47b0 blx r6
44b0: 9000 str r0, [sp, #0]
obj_del_core(i);
44b2: 0020 movs r0, r4
44b4: f7ff ffd8 bl 4468 <obj_del_core>
i = i_next;
44b8: 9c00 ldr r4, [sp, #0]
while(i != NULL) {
44ba: 2c00 cmp r4, #0
44bc: d1f5 bne.n 44aa <obj_del_core+0x42>
#endif
static void lv_event_mark_deleted(lv_obj_t * obj)
{
lv_event_temp_data_t * t = event_temp_data_head;
44be: 4b32 ldr r3, [pc, #200] ; (4588 <obj_del_core+0x120>)
44c0: 681b ldr r3, [r3, #0]
while(t) {
44c2: 2b00 cmp r3, #0
44c4: d009 beq.n 44da <obj_del_core+0x72>
if(t->obj == obj) t->deleted = true;
44c6: 2201 movs r2, #1
44c8: e002 b.n 44d0 <obj_del_core+0x68>
t = t->prev;
44ca: 689b ldr r3, [r3, #8]
while(t) {
44cc: 2b00 cmp r3, #0
44ce: d004 beq.n 44da <obj_del_core+0x72>
if(t->obj == obj) t->deleted = true;
44d0: 6819 ldr r1, [r3, #0]
44d2: 428d cmp r5, r1
44d4: d1f9 bne.n 44ca <obj_del_core+0x62>
44d6: 711a strb r2, [r3, #4]
44d8: e7f7 b.n 44ca <obj_del_core+0x62>
lv_indev_t * indev = lv_indev_get_next(NULL);
44da: 2000 movs r0, #0
44dc: 4b2b ldr r3, [pc, #172] ; (458c <obj_del_core+0x124>)
44de: 4798 blx r3
44e0: 1e04 subs r4, r0, #0
while(indev) {
44e2: d022 beq.n 452a <obj_del_core+0xc2>
lv_indev_reset(indev, obj);
44e4: 4e2a ldr r6, [pc, #168] ; (4590 <obj_del_core+0x128>)
44e6: e00d b.n 4504 <obj_del_core+0x9c>
44e8: 0029 movs r1, r5
44ea: 0020 movs r0, r4
44ec: 47b0 blx r6
if(indev->proc.types.pointer.last_pressed == obj) {
44ee: 6be3 ldr r3, [r4, #60] ; 0x3c
44f0: 429d cmp r5, r3
44f2: d00e beq.n 4512 <obj_del_core+0xaa>
if(indev->group == group && obj == lv_indev_get_obj_act()) {
44f4: 6da3 ldr r3, [r4, #88] ; 0x58
44f6: 429f cmp r7, r3
44f8: d00e beq.n 4518 <obj_del_core+0xb0>
indev = lv_indev_get_next(indev);
44fa: 0020 movs r0, r4
44fc: 4b23 ldr r3, [pc, #140] ; (458c <obj_del_core+0x124>)
44fe: 4798 blx r3
4500: 1e04 subs r4, r0, #0
while(indev) {
4502: d012 beq.n 452a <obj_del_core+0xc2>
if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) {
4504: 6b63 ldr r3, [r4, #52] ; 0x34
4506: 429d cmp r5, r3
4508: d0ee beq.n 44e8 <obj_del_core+0x80>
450a: 6ba3 ldr r3, [r4, #56] ; 0x38
450c: 429d cmp r5, r3
450e: d1ee bne.n 44ee <obj_del_core+0x86>
4510: e7ea b.n 44e8 <obj_del_core+0x80>
indev->proc.types.pointer.last_pressed = NULL;
4512: 2300 movs r3, #0
4514: 63e3 str r3, [r4, #60] ; 0x3c
4516: e7ed b.n 44f4 <obj_del_core+0x8c>
if(indev->group == group && obj == lv_indev_get_obj_act()) {
4518: 4b1e ldr r3, [pc, #120] ; (4594 <obj_del_core+0x12c>)
451a: 4798 blx r3
451c: 4285 cmp r5, r0
451e: d1ec bne.n 44fa <obj_del_core+0x92>
lv_indev_reset(indev, obj);
4520: 0029 movs r1, r5
4522: 0020 movs r0, r4
4524: 4b1a ldr r3, [pc, #104] ; (4590 <obj_del_core+0x128>)
4526: 4798 blx r3
4528: e7e7 b.n 44fa <obj_del_core+0x92>
obj->signal_cb(obj, LV_SIGNAL_CLEANUP, NULL);
452a: 2200 movs r2, #0
452c: 2100 movs r1, #0
452e: 0028 movs r0, r5
4530: 69eb ldr r3, [r5, #28]
4532: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
4534: 0028 movs r0, r5
4536: 4b18 ldr r3, [pc, #96] ; (4598 <obj_del_core+0x130>)
4538: 4798 blx r3
if(par == NULL) { /*It is a screen*/
453a: 2800 cmp r0, #0
453c: d00d beq.n 455a <obj_del_core+0xf2>
_lv_ll_remove(&(par->child_ll), obj);
453e: 3004 adds r0, #4
4540: 0029 movs r1, r5
4542: 4b16 ldr r3, [pc, #88] ; (459c <obj_del_core+0x134>)
4544: 4798 blx r3
if(obj->ext_attr != NULL) lv_mem_free(obj->ext_attr);
4546: 6a68 ldr r0, [r5, #36] ; 0x24
4548: 2800 cmp r0, #0
454a: d001 beq.n 4550 <obj_del_core+0xe8>
454c: 4b14 ldr r3, [pc, #80] ; (45a0 <obj_del_core+0x138>)
454e: 4798 blx r3
lv_mem_free(obj); /*Free the object itself*/
4550: 0028 movs r0, r5
4552: 4b13 ldr r3, [pc, #76] ; (45a0 <obj_del_core+0x138>)
4554: 4798 blx r3
}
4556: b003 add sp, #12
4558: bdf0 pop {r4, r5, r6, r7, pc}
lv_disp_t * d = lv_obj_get_disp(obj);
455a: 0028 movs r0, r5
455c: 4b11 ldr r3, [pc, #68] ; (45a4 <obj_del_core+0x13c>)
455e: 4798 blx r3
_lv_ll_remove(&d->scr_ll, obj);
4560: 3030 adds r0, #48 ; 0x30
4562: 0029 movs r1, r5
4564: 4b0d ldr r3, [pc, #52] ; (459c <obj_del_core+0x134>)
4566: 4798 blx r3
4568: e7ed b.n 4546 <obj_del_core+0xde>
456a: 46c0 nop ; (mov r8, r8)
456c: 00001fdd .word 0x00001fdd
4570: 0000441d .word 0x0000441d
4574: 00001b8d .word 0x00001b8d
4578: 000111fd .word 0x000111fd
457c: 00002579 .word 0x00002579
4580: 00011e85 .word 0x00011e85
4584: 00011e9d .word 0x00011e9d
4588: 200026f0 .word 0x200026f0
458c: 00010eb9 .word 0x00010eb9
4590: 00001c71 .word 0x00001c71
4594: 00001d01 .word 0x00001d01
4598: 000021a5 .word 0x000021a5
459c: 00011f6d .word 0x00011f6d
45a0: 000123c9 .word 0x000123c9
45a4: 0000224d .word 0x0000224d
000045a8 <lv_obj_del>:
{
45a8: b570 push {r4, r5, r6, lr}
45aa: b082 sub sp, #8
45ac: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
45ae: 4b19 ldr r3, [pc, #100] ; (4614 <lv_obj_del+0x6c>)
45b0: 4798 blx r3
45b2: 2800 cmp r0, #0
45b4: d10d bne.n 45d2 <lv_obj_del+0x2a>
45b6: 4b18 ldr r3, [pc, #96] ; (4618 <lv_obj_del+0x70>)
45b8: 9300 str r3, [sp, #0]
45ba: 2294 movs r2, #148 ; 0x94
45bc: 32ff adds r2, #255 ; 0xff
45be: 4917 ldr r1, [pc, #92] ; (461c <lv_obj_del+0x74>)
45c0: 3003 adds r0, #3
45c2: 4d17 ldr r5, [pc, #92] ; (4620 <lv_obj_del+0x78>)
45c4: 47a8 blx r5
45c6: 0022 movs r2, r4
45c8: 2300 movs r3, #0
45ca: 4816 ldr r0, [pc, #88] ; (4624 <lv_obj_del+0x7c>)
45cc: 4916 ldr r1, [pc, #88] ; (4628 <lv_obj_del+0x80>)
45ce: 4788 blx r1
45d0: e7fe b.n 45d0 <lv_obj_del+0x28>
lv_obj_invalidate(obj);
45d2: 0020 movs r0, r4
45d4: 4b15 ldr r3, [pc, #84] ; (462c <lv_obj_del+0x84>)
45d6: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
45d8: 0020 movs r0, r4
45da: 4b15 ldr r3, [pc, #84] ; (4630 <lv_obj_del+0x88>)
45dc: 4798 blx r3
45de: 1e05 subs r5, r0, #0
if(par == NULL) {
45e0: d008 beq.n 45f4 <lv_obj_del+0x4c>
obj_del_core(obj);
45e2: 0020 movs r0, r4
45e4: 4b13 ldr r3, [pc, #76] ; (4634 <lv_obj_del+0x8c>)
45e6: 4798 blx r3
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, NULL);
45e8: 69eb ldr r3, [r5, #28]
45ea: 2200 movs r2, #0
45ec: 2101 movs r1, #1
45ee: 0028 movs r0, r5
45f0: 4798 blx r3
45f2: e00c b.n 460e <lv_obj_del+0x66>
disp = lv_obj_get_disp(obj);
45f4: 0020 movs r0, r4
45f6: 4b10 ldr r3, [pc, #64] ; (4638 <lv_obj_del+0x90>)
45f8: 4798 blx r3
45fa: 1e05 subs r5, r0, #0
if(!disp) return LV_RES_INV; /*Shouldn't happen*/
45fc: d007 beq.n 460e <lv_obj_del+0x66>
if(disp->act_scr == obj) act_scr_del = true;
45fe: 6bc6 ldr r6, [r0, #60] ; 0x3c
obj_del_core(obj);
4600: 0020 movs r0, r4
4602: 4b0c ldr r3, [pc, #48] ; (4634 <lv_obj_del+0x8c>)
4604: 4798 blx r3
if(act_scr_del) {
4606: 42b4 cmp r4, r6
4608: d101 bne.n 460e <lv_obj_del+0x66>
disp->act_scr = NULL;
460a: 2300 movs r3, #0
460c: 63eb str r3, [r5, #60] ; 0x3c
}
460e: 2000 movs r0, #0
4610: b002 add sp, #8
4612: bd70 pop {r4, r5, r6, pc}
4614: 000017ad .word 0x000017ad
4618: 000258d4 .word 0x000258d4
461c: 00025c2c .word 0x00025c2c
4620: 00012159 .word 0x00012159
4624: 00025d20 .word 0x00025d20
4628: 000017b5 .word 0x000017b5
462c: 00002869 .word 0x00002869
4630: 000021a5 .word 0x000021a5
4634: 00004469 .word 0x00004469
4638: 0000224d .word 0x0000224d
0000463c <lv_obj_is_focused>:
{
463c: b530 push {r4, r5, lr}
463e: b083 sub sp, #12
4640: 0004 movs r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4642: 4b0f ldr r3, [pc, #60] ; (4680 <lv_obj_is_focused+0x44>)
4644: 4798 blx r3
4646: 2800 cmp r0, #0
4648: d00a beq.n 4660 <lv_obj_is_focused+0x24>
if(obj->group_p) {
464a: 6ba0 ldr r0, [r4, #56] ; 0x38
464c: 2800 cmp r0, #0
464e: d014 beq.n 467a <lv_obj_is_focused+0x3e>
if(lv_group_get_focused(obj->group_p) == obj) return true;
4650: 4b0c ldr r3, [pc, #48] ; (4684 <lv_obj_is_focused+0x48>)
4652: 4798 blx r3
4654: 1a20 subs r0, r4, r0
4656: 4244 negs r4, r0
4658: 4160 adcs r0, r4
465a: b2c0 uxtb r0, r0
}
465c: b003 add sp, #12
465e: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4660: 4b09 ldr r3, [pc, #36] ; (4688 <lv_obj_is_focused+0x4c>)
4662: 9300 str r3, [sp, #0]
4664: 4a09 ldr r2, [pc, #36] ; (468c <lv_obj_is_focused+0x50>)
4666: 490a ldr r1, [pc, #40] ; (4690 <lv_obj_is_focused+0x54>)
4668: 3003 adds r0, #3
466a: 4d0a ldr r5, [pc, #40] ; (4694 <lv_obj_is_focused+0x58>)
466c: 47a8 blx r5
466e: 0022 movs r2, r4
4670: 2300 movs r3, #0
4672: 4809 ldr r0, [pc, #36] ; (4698 <lv_obj_is_focused+0x5c>)
4674: 4909 ldr r1, [pc, #36] ; (469c <lv_obj_is_focused+0x60>)
4676: 4788 blx r1
4678: e7fe b.n 4678 <lv_obj_is_focused+0x3c>
return false;
467a: 2000 movs r0, #0
467c: e7ee b.n 465c <lv_obj_is_focused+0x20>
467e: 46c0 nop ; (mov r8, r8)
4680: 000017ad .word 0x000017ad
4684: 00001c3d .word 0x00001c3d
4688: 00025c08 .word 0x00025c08
468c: 00000b7f .word 0x00000b7f
4690: 00025c2c .word 0x00025c2c
4694: 00012159 .word 0x00012159
4698: 00025d20 .word 0x00025d20
469c: 000017b5 .word 0x000017b5
000046a0 <lv_obj_is_point_on_coords>:
{
46a0: b510 push {r4, lr}
46a2: b082 sub sp, #8
ext_area.x1 = obj->coords.x1 - obj->ext_click_pad_hor;
46a4: 2330 movs r3, #48 ; 0x30
46a6: 5cc3 ldrb r3, [r0, r3]
46a8: 8a02 ldrh r2, [r0, #16]
46aa: 1ad2 subs r2, r2, r3
46ac: 466c mov r4, sp
46ae: 8022 strh r2, [r4, #0]
ext_area.x2 = obj->coords.x2 + obj->ext_click_pad_hor;
46b0: 8a82 ldrh r2, [r0, #20]
46b2: 189b adds r3, r3, r2
46b4: 80a3 strh r3, [r4, #4]
ext_area.y1 = obj->coords.y1 - obj->ext_click_pad_ver;
46b6: 2331 movs r3, #49 ; 0x31
46b8: 5cc3 ldrb r3, [r0, r3]
46ba: 8a42 ldrh r2, [r0, #18]
46bc: 1ad2 subs r2, r2, r3
46be: 8062 strh r2, [r4, #2]
ext_area.y2 = obj->coords.y2 + obj->ext_click_pad_ver;
46c0: 8ac2 ldrh r2, [r0, #22]
46c2: 189b adds r3, r3, r2
46c4: 80e3 strh r3, [r4, #6]
if(!_lv_area_is_point_on(&ext_area, point, 0)) {
46c6: 2200 movs r2, #0
46c8: 4668 mov r0, sp
46ca: 4b02 ldr r3, [pc, #8] ; (46d4 <lv_obj_is_point_on_coords+0x34>)
46cc: 4798 blx r3
}
46ce: b002 add sp, #8
46d0: bd10 pop {r4, pc}
46d2: 46c0 nop ; (mov r8, r8)
46d4: 000114c5 .word 0x000114c5
000046d8 <lv_obj_handle_get_type_signal>:
{
46d8: b510 push {r4, lr}
if(buf->type[i] == NULL) break;
46da: 6803 ldr r3, [r0, #0]
46dc: 2b00 cmp r3, #0
46de: d00d beq.n 46fc <lv_obj_handle_get_type_signal+0x24>
46e0: 1d02 adds r2, r0, #4
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
46e2: 2301 movs r3, #1
if(buf->type[i] == NULL) break;
46e4: 6814 ldr r4, [r2, #0]
46e6: 2c00 cmp r4, #0
46e8: d004 beq.n 46f4 <lv_obj_handle_get_type_signal+0x1c>
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
46ea: 3301 adds r3, #1
46ec: b2db uxtb r3, r3
46ee: 3204 adds r2, #4
46f0: 2b07 cmp r3, #7
46f2: d1f7 bne.n 46e4 <lv_obj_handle_get_type_signal+0xc>
buf->type[i] = name;
46f4: 009b lsls r3, r3, #2
46f6: 5019 str r1, [r3, r0]
}
46f8: 2001 movs r0, #1
46fa: bd10 pop {r4, pc}
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
46fc: 2300 movs r3, #0
46fe: e7f9 b.n 46f4 <lv_obj_handle_get_type_signal+0x1c>
00004700 <lv_obj_init_draw_rect_dsc>:
{
4700: b5f0 push {r4, r5, r6, r7, lr}
4702: 46ce mov lr, r9
4704: b500 push {lr}
4706: b082 sub sp, #8
4708: 0005 movs r5, r0
470a: 000e movs r6, r1
470c: 0014 movs r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
470e: 2201 movs r2, #1
4710: 4bc8 ldr r3, [pc, #800] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4712: 4798 blx r3
draw_dsc->radius = lv_obj_get_style_radius(obj, part);
4714: 8020 strh r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4716: 4ac8 ldr r2, [pc, #800] ; (4a38 <lv_obj_init_draw_rect_dsc+0x338>)
4718: 0031 movs r1, r6
471a: 0028 movs r0, r5
471c: 4bc7 ldr r3, [pc, #796] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
471e: 4798 blx r3
4720: 9001 str r0, [sp, #4]
4722: 0007 movs r7, r0
if(opa_scale <= LV_OPA_MIN) {
4724: 2805 cmp r0, #5
4726: d935 bls.n 4794 <lv_obj_init_draw_rect_dsc+0x94>
if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
4728: 7b23 ldrb r3, [r4, #12]
472a: 2b00 cmp r3, #0
472c: d13f bne.n 47ae <lv_obj_init_draw_rect_dsc+0xae>
if(draw_dsc->border_opa != LV_OPA_TRANSP) {
472e: 7d23 ldrb r3, [r4, #20]
4730: 2b00 cmp r3, #0
4732: d000 beq.n 4736 <lv_obj_init_draw_rect_dsc+0x36>
4734: e06c b.n 4810 <lv_obj_init_draw_rect_dsc+0x110>
if(draw_dsc->outline_opa != LV_OPA_TRANSP) {
4736: 7f23 ldrb r3, [r4, #28]
4738: 2b00 cmp r3, #0
473a: d000 beq.n 473e <lv_obj_init_draw_rect_dsc+0x3e>
473c: e08f b.n 485e <lv_obj_init_draw_rect_dsc+0x15e>
if(draw_dsc->pattern_opa != LV_OPA_TRANSP) {
473e: 2336 movs r3, #54 ; 0x36
4740: 5ce3 ldrb r3, [r4, r3]
4742: 2b00 cmp r3, #0
4744: d000 beq.n 4748 <lv_obj_init_draw_rect_dsc+0x48>
4746: e0af b.n 48a8 <lv_obj_init_draw_rect_dsc+0x1a8>
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
4748: 2328 movs r3, #40 ; 0x28
474a: 5ce3 ldrb r3, [r4, r3]
474c: 2b05 cmp r3, #5
474e: d900 bls.n 4752 <lv_obj_init_draw_rect_dsc+0x52>
4750: e0f7 b.n 4942 <lv_obj_init_draw_rect_dsc+0x242>
if(draw_dsc->value_opa > LV_OPA_MIN) {
4752: 2344 movs r3, #68 ; 0x44
4754: 5ce3 ldrb r3, [r4, r3]
4756: 2b05 cmp r3, #5
4758: d900 bls.n 475c <lv_obj_init_draw_rect_dsc+0x5c>
475a: e123 b.n 49a4 <lv_obj_init_draw_rect_dsc+0x2a4>
if(opa_scale < LV_OPA_MAX) {
475c: 2ff9 cmp r7, #249 ; 0xf9
475e: d822 bhi.n 47a6 <lv_obj_init_draw_rect_dsc+0xa6>
draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8;
4760: 466b mov r3, sp
4762: 889b ldrh r3, [r3, #4]
4764: 7b22 ldrb r2, [r4, #12]
4766: 435a muls r2, r3
4768: 0a12 lsrs r2, r2, #8
476a: 7322 strb r2, [r4, #12]
draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8;
476c: 7d22 ldrb r2, [r4, #20]
476e: 435a muls r2, r3
4770: 0a12 lsrs r2, r2, #8
4772: 7522 strb r2, [r4, #20]
draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8;
4774: 2128 movs r1, #40 ; 0x28
4776: 5c62 ldrb r2, [r4, r1]
4778: 435a muls r2, r3
477a: 0a12 lsrs r2, r2, #8
477c: 5462 strb r2, [r4, r1]
draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8;
477e: 310e adds r1, #14
4780: 5c62 ldrb r2, [r4, r1]
4782: 435a muls r2, r3
4784: 0a12 lsrs r2, r2, #8
4786: 5462 strb r2, [r4, r1]
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
4788: 2244 movs r2, #68 ; 0x44
478a: 5ca7 ldrb r7, [r4, r2]
478c: 435f muls r7, r3
478e: 0a3f lsrs r7, r7, #8
4790: 54a7 strb r7, [r4, r2]
4792: e008 b.n 47a6 <lv_obj_init_draw_rect_dsc+0xa6>
draw_dsc->bg_opa = LV_OPA_TRANSP;
4794: 2300 movs r3, #0
4796: 7323 strb r3, [r4, #12]
draw_dsc->border_opa = LV_OPA_TRANSP;
4798: 7523 strb r3, [r4, #20]
draw_dsc->shadow_opa = LV_OPA_TRANSP;
479a: 2228 movs r2, #40 ; 0x28
479c: 54a3 strb r3, [r4, r2]
draw_dsc->pattern_opa = LV_OPA_TRANSP;
479e: 320e adds r2, #14
47a0: 54a3 strb r3, [r4, r2]
draw_dsc->value_opa = LV_OPA_TRANSP;
47a2: 320e adds r2, #14
47a4: 54a3 strb r3, [r4, r2]
}
47a6: b002 add sp, #8
47a8: bc04 pop {r2}
47aa: 4691 mov r9, r2
47ac: bdf0 pop {r4, r5, r6, r7, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
47ae: 222c movs r2, #44 ; 0x2c
47b0: 0031 movs r1, r6
47b2: 0028 movs r0, r5
47b4: 4ba1 ldr r3, [pc, #644] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
47b6: 4798 blx r3
draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
47b8: 7320 strb r0, [r4, #12]
if(draw_dsc->bg_opa > LV_OPA_MIN) {
47ba: 2805 cmp r0, #5
47bc: d9b7 bls.n 472e <lv_obj_init_draw_rect_dsc+0x2e>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
47be: 2229 movs r2, #41 ; 0x29
47c0: 0031 movs r1, r6
47c2: 0028 movs r0, r5
47c4: 4b9e ldr r3, [pc, #632] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
47c6: 4798 blx r3
draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part);
47c8: 8060 strh r0, [r4, #2]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
47ca: 2223 movs r2, #35 ; 0x23
47cc: 0031 movs r1, r6
47ce: 0028 movs r0, r5
47d0: 4b98 ldr r3, [pc, #608] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
47d2: 4798 blx r3
47d4: b2c0 uxtb r0, r0
draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part);
47d6: 71a0 strb r0, [r4, #6]
if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) {
47d8: 2800 cmp r0, #0
47da: d106 bne.n 47ea <lv_obj_init_draw_rect_dsc+0xea>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
47dc: 2220 movs r2, #32
47de: 0031 movs r1, r6
47e0: 0028 movs r0, r5
47e2: 4b94 ldr r3, [pc, #592] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
47e4: 4798 blx r3
draw_dsc->bg_blend_mode = lv_obj_get_style_bg_blend_mode(obj, part);
47e6: 7360 strb r0, [r4, #13]
47e8: e7a1 b.n 472e <lv_obj_init_draw_rect_dsc+0x2e>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
47ea: 222a movs r2, #42 ; 0x2a
47ec: 0031 movs r1, r6
47ee: 0028 movs r0, r5
47f0: 4b93 ldr r3, [pc, #588] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
47f2: 4798 blx r3
draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part);
47f4: 80a0 strh r0, [r4, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
47f6: 2221 movs r2, #33 ; 0x21
47f8: 0031 movs r1, r6
47fa: 0028 movs r0, r5
47fc: 4b8d ldr r3, [pc, #564] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
47fe: 4699 mov r9, r3
4800: 4798 blx r3
draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part);
4802: 8120 strh r0, [r4, #8]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
4804: 2222 movs r2, #34 ; 0x22
4806: 0031 movs r1, r6
4808: 0028 movs r0, r5
480a: 47c8 blx r9
draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part);
480c: 8160 strh r0, [r4, #10]
480e: e7e5 b.n 47dc <lv_obj_init_draw_rect_dsc+0xdc>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
4810: 2230 movs r2, #48 ; 0x30
4812: 0031 movs r1, r6
4814: 0028 movs r0, r5
4816: 4b87 ldr r3, [pc, #540] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4818: 4798 blx r3
draw_dsc->border_width = lv_obj_get_style_border_width(obj, part);
481a: 8220 strh r0, [r4, #16]
if(draw_dsc->border_width) {
481c: 2800 cmp r0, #0
481e: d100 bne.n 4822 <lv_obj_init_draw_rect_dsc+0x122>
4820: e789 b.n 4736 <lv_obj_init_draw_rect_dsc+0x36>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
4822: 223c movs r2, #60 ; 0x3c
4824: 0031 movs r1, r6
4826: 0028 movs r0, r5
4828: 4b84 ldr r3, [pc, #528] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
482a: 4798 blx r3
draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part);
482c: 7520 strb r0, [r4, #20]
if(draw_dsc->border_opa > LV_OPA_MIN) {
482e: 2805 cmp r0, #5
4830: d806 bhi.n 4840 <lv_obj_init_draw_rect_dsc+0x140>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
4832: 2232 movs r2, #50 ; 0x32
4834: 0031 movs r1, r6
4836: 0028 movs r0, r5
4838: 4b7e ldr r3, [pc, #504] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
483a: 4798 blx r3
draw_dsc->border_blend_mode = lv_obj_get_style_border_blend_mode(obj, part);
483c: 7560 strb r0, [r4, #21]
483e: e77a b.n 4736 <lv_obj_init_draw_rect_dsc+0x36>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
4840: 2231 movs r2, #49 ; 0x31
4842: 0031 movs r1, r6
4844: 0028 movs r0, r5
4846: 4b7b ldr r3, [pc, #492] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4848: 4798 blx r3
draw_dsc->border_side = lv_obj_get_style_border_side(obj, part);
484a: 23ff movs r3, #255 ; 0xff
484c: 4018 ands r0, r3
484e: 8260 strh r0, [r4, #18]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
4850: 2239 movs r2, #57 ; 0x39
4852: 0031 movs r1, r6
4854: 0028 movs r0, r5
4856: 4b7a ldr r3, [pc, #488] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
4858: 4798 blx r3
draw_dsc->border_color = lv_obj_get_style_border_color(obj, part);
485a: 81e0 strh r0, [r4, #14]
485c: e7e9 b.n 4832 <lv_obj_init_draw_rect_dsc+0x132>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
485e: 2240 movs r2, #64 ; 0x40
4860: 0031 movs r1, r6
4862: 0028 movs r0, r5
4864: 4b73 ldr r3, [pc, #460] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4866: 4798 blx r3
draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part);
4868: 8320 strh r0, [r4, #24]
if(draw_dsc->outline_width) {
486a: 2800 cmp r0, #0
486c: d100 bne.n 4870 <lv_obj_init_draw_rect_dsc+0x170>
486e: e766 b.n 473e <lv_obj_init_draw_rect_dsc+0x3e>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
4870: 224c movs r2, #76 ; 0x4c
4872: 0031 movs r1, r6
4874: 0028 movs r0, r5
4876: 4b71 ldr r3, [pc, #452] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
4878: 4798 blx r3
draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part);
487a: 7720 strb r0, [r4, #28]
if(draw_dsc->outline_opa > LV_OPA_MIN) {
487c: 2805 cmp r0, #5
487e: d806 bhi.n 488e <lv_obj_init_draw_rect_dsc+0x18e>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar)
4880: 2242 movs r2, #66 ; 0x42
4882: 0031 movs r1, r6
4884: 0028 movs r0, r5
4886: 4b6b ldr r3, [pc, #428] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4888: 4798 blx r3
draw_dsc->outline_blend_mode = lv_obj_get_style_outline_blend_mode(obj, part);
488a: 7760 strb r0, [r4, #29]
488c: e757 b.n 473e <lv_obj_init_draw_rect_dsc+0x3e>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
488e: 2241 movs r2, #65 ; 0x41
4890: 0031 movs r1, r6
4892: 0028 movs r0, r5
4894: 4b67 ldr r3, [pc, #412] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4896: 4798 blx r3
draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part);
4898: 8360 strh r0, [r4, #26]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
489a: 2249 movs r2, #73 ; 0x49
489c: 0031 movs r1, r6
489e: 0028 movs r0, r5
48a0: 4b67 ldr r3, [pc, #412] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
48a2: 4798 blx r3
draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part);
48a4: 82e0 strh r0, [r4, #22]
48a6: e7eb b.n 4880 <lv_obj_init_draw_rect_dsc+0x180>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
48a8: 226e movs r2, #110 ; 0x6e
48aa: 0031 movs r1, r6
48ac: 0028 movs r0, r5
48ae: 4b65 ldr r3, [pc, #404] ; (4a44 <lv_obj_init_draw_rect_dsc+0x344>)
48b0: 4798 blx r3
draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part);
48b2: 62e0 str r0, [r4, #44] ; 0x2c
if(draw_dsc->pattern_image) {
48b4: 2800 cmp r0, #0
48b6: d100 bne.n 48ba <lv_obj_init_draw_rect_dsc+0x1ba>
48b8: e746 b.n 4748 <lv_obj_init_draw_rect_dsc+0x48>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar)
48ba: 226c movs r2, #108 ; 0x6c
48bc: 0031 movs r1, r6
48be: 0028 movs r0, r5
48c0: 4b5e ldr r3, [pc, #376] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
48c2: 4798 blx r3
draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part);
48c4: 2336 movs r3, #54 ; 0x36
48c6: 54e0 strb r0, [r4, r3]
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
48c8: 2805 cmp r0, #5
48ca: d800 bhi.n 48ce <lv_obj_init_draw_rect_dsc+0x1ce>
48cc: e73c b.n 4748 <lv_obj_init_draw_rect_dsc+0x48>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar)
48ce: 226d movs r2, #109 ; 0x6d
48d0: 0031 movs r1, r6
48d2: 0028 movs r0, r5
48d4: 4b59 ldr r3, [pc, #356] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
48d6: 4798 blx r3
draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part);
48d8: 2337 movs r3, #55 ; 0x37
48da: 54e0 strb r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar)
48dc: 2261 movs r2, #97 ; 0x61
48de: 0031 movs r1, r6
48e0: 0028 movs r0, r5
48e2: 4b54 ldr r3, [pc, #336] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
48e4: 4798 blx r3
48e6: 0003 movs r3, r0
48e8: 1e58 subs r0, r3, #1
48ea: 4183 sbcs r3, r0
draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part);
48ec: 2238 movs r2, #56 ; 0x38
48ee: 5ca0 ldrb r0, [r4, r2]
48f0: 2101 movs r1, #1
48f2: 4388 bics r0, r1
48f4: 4318 orrs r0, r3
48f6: 54a0 strb r0, [r4, r2]
if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) {
48f8: 6ae0 ldr r0, [r4, #44] ; 0x2c
48fa: 4b53 ldr r3, [pc, #332] ; (4a48 <lv_obj_init_draw_rect_dsc+0x348>)
48fc: 4798 blx r3
48fe: 2802 cmp r0, #2
4900: d00b beq.n 491a <lv_obj_init_draw_rect_dsc+0x21a>
else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) {
4902: 2337 movs r3, #55 ; 0x37
4904: 5ce3 ldrb r3, [r4, r3]
4906: 2b05 cmp r3, #5
4908: d814 bhi.n 4934 <lv_obj_init_draw_rect_dsc+0x234>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar)
490a: 2260 movs r2, #96 ; 0x60
490c: 0031 movs r1, r6
490e: 0028 movs r0, r5
4910: 4b48 ldr r3, [pc, #288] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4912: 4798 blx r3
draw_dsc->pattern_blend_mode = lv_obj_get_style_pattern_blend_mode(obj, part);
4914: 2339 movs r3, #57 ; 0x39
4916: 54e0 strb r0, [r4, r3]
4918: e716 b.n 4748 <lv_obj_init_draw_rect_dsc+0x48>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
491a: 2269 movs r2, #105 ; 0x69
491c: 0031 movs r1, r6
491e: 0028 movs r0, r5
4920: 4b47 ldr r3, [pc, #284] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
4922: 4798 blx r3
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
4924: 86a0 strh r0, [r4, #52] ; 0x34
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4926: 4a49 ldr r2, [pc, #292] ; (4a4c <lv_obj_init_draw_rect_dsc+0x34c>)
4928: 0031 movs r1, r6
492a: 0028 movs r0, r5
492c: 4b45 ldr r3, [pc, #276] ; (4a44 <lv_obj_init_draw_rect_dsc+0x344>)
492e: 4798 blx r3
draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part);
4930: 6320 str r0, [r4, #48] ; 0x30
4932: e7ea b.n 490a <lv_obj_init_draw_rect_dsc+0x20a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
4934: 2269 movs r2, #105 ; 0x69
4936: 0031 movs r1, r6
4938: 0028 movs r0, r5
493a: 4b41 ldr r3, [pc, #260] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
493c: 4798 blx r3
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
493e: 86a0 strh r0, [r4, #52] ; 0x34
4940: e7e3 b.n 490a <lv_obj_init_draw_rect_dsc+0x20a>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
4942: 2250 movs r2, #80 ; 0x50
4944: 0031 movs r1, r6
4946: 0028 movs r0, r5
4948: 4b3a ldr r3, [pc, #232] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
494a: 4798 blx r3
draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part);
494c: 8420 strh r0, [r4, #32]
if(draw_dsc->shadow_width) {
494e: 2800 cmp r0, #0
4950: d100 bne.n 4954 <lv_obj_init_draw_rect_dsc+0x254>
4952: e6fe b.n 4752 <lv_obj_init_draw_rect_dsc+0x52>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
4954: 225c movs r2, #92 ; 0x5c
4956: 0031 movs r1, r6
4958: 0028 movs r0, r5
495a: 4b38 ldr r3, [pc, #224] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
495c: 4798 blx r3
draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part);
495e: 2328 movs r3, #40 ; 0x28
4960: 54e0 strb r0, [r4, r3]
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
4962: 2805 cmp r0, #5
4964: d800 bhi.n 4968 <lv_obj_init_draw_rect_dsc+0x268>
4966: e6f4 b.n 4752 <lv_obj_init_draw_rect_dsc+0x52>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4968: 2251 movs r2, #81 ; 0x51
496a: 0031 movs r1, r6
496c: 0028 movs r0, r5
496e: 4b31 ldr r3, [pc, #196] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
4970: 4699 mov r9, r3
4972: 4798 blx r3
draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part);
4974: 8460 strh r0, [r4, #34] ; 0x22
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4976: 2252 movs r2, #82 ; 0x52
4978: 0031 movs r1, r6
497a: 0028 movs r0, r5
497c: 47c8 blx r9
draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part);
497e: 84a0 strh r0, [r4, #36] ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
4980: 2253 movs r2, #83 ; 0x53
4982: 0031 movs r1, r6
4984: 0028 movs r0, r5
4986: 47c8 blx r9
draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part);
4988: 84e0 strh r0, [r4, #38] ; 0x26
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
498a: 2259 movs r2, #89 ; 0x59
498c: 0031 movs r1, r6
498e: 0028 movs r0, r5
4990: 4b2b ldr r3, [pc, #172] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
4992: 4798 blx r3
draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part);
4994: 83e0 strh r0, [r4, #30]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar)
4996: 2254 movs r2, #84 ; 0x54
4998: 0031 movs r1, r6
499a: 0028 movs r0, r5
499c: 47c8 blx r9
draw_dsc->shadow_blend_mode = lv_obj_get_style_shadow_blend_mode(obj, part);
499e: 2329 movs r3, #41 ; 0x29
49a0: 54e0 strb r0, [r4, r3]
49a2: e6d6 b.n 4752 <lv_obj_init_draw_rect_dsc+0x52>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
49a4: 227f movs r2, #127 ; 0x7f
49a6: 0031 movs r1, r6
49a8: 0028 movs r0, r5
49aa: 4b26 ldr r3, [pc, #152] ; (4a44 <lv_obj_init_draw_rect_dsc+0x344>)
49ac: 4798 blx r3
draw_dsc->value_str = lv_obj_get_style_value_str(obj, part);
49ae: 63e0 str r0, [r4, #60] ; 0x3c
if(draw_dsc->value_str) {
49b0: 2800 cmp r0, #0
49b2: d100 bne.n 49b6 <lv_obj_init_draw_rect_dsc+0x2b6>
49b4: e6d2 b.n 475c <lv_obj_init_draw_rect_dsc+0x5c>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
49b6: 227c movs r2, #124 ; 0x7c
49b8: 0031 movs r1, r6
49ba: 0028 movs r0, r5
49bc: 4b1f ldr r3, [pc, #124] ; (4a3c <lv_obj_init_draw_rect_dsc+0x33c>)
49be: 4798 blx r3
draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part);
49c0: 2344 movs r3, #68 ; 0x44
49c2: 54e0 strb r0, [r4, r3]
if(draw_dsc->value_opa > LV_OPA_MIN) {
49c4: 2805 cmp r0, #5
49c6: d800 bhi.n 49ca <lv_obj_init_draw_rect_dsc+0x2ca>
49c8: e6c8 b.n 475c <lv_obj_init_draw_rect_dsc+0x5c>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
49ca: 2273 movs r2, #115 ; 0x73
49cc: 0031 movs r1, r6
49ce: 0028 movs r0, r5
49d0: 4b18 ldr r3, [pc, #96] ; (4a34 <lv_obj_init_draw_rect_dsc+0x334>)
49d2: 4699 mov r9, r3
49d4: 4798 blx r3
draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part);
49d6: 2348 movs r3, #72 ; 0x48
49d8: 52e0 strh r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
49da: 2274 movs r2, #116 ; 0x74
49dc: 0031 movs r1, r6
49de: 0028 movs r0, r5
49e0: 47c8 blx r9
draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part);
49e2: 234a movs r3, #74 ; 0x4a
49e4: 52e0 strh r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
49e6: 2279 movs r2, #121 ; 0x79
49e8: 0031 movs r1, r6
49ea: 0028 movs r0, r5
49ec: 4b14 ldr r3, [pc, #80] ; (4a40 <lv_obj_init_draw_rect_dsc+0x340>)
49ee: 4798 blx r3
draw_dsc->value_color = lv_obj_get_style_value_color(obj, part);
49f0: 2346 movs r3, #70 ; 0x46
49f2: 52e0 strh r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
49f4: 227e movs r2, #126 ; 0x7e
49f6: 0031 movs r1, r6
49f8: 0028 movs r0, r5
49fa: 4b12 ldr r3, [pc, #72] ; (4a44 <lv_obj_init_draw_rect_dsc+0x344>)
49fc: 4798 blx r3
draw_dsc->value_font = lv_obj_get_style_value_font(obj, part);
49fe: 6420 str r0, [r4, #64] ; 0x40
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
4a00: 2270 movs r2, #112 ; 0x70
4a02: 0031 movs r1, r6
4a04: 0028 movs r0, r5
4a06: 47c8 blx r9
draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part);
4a08: 234c movs r3, #76 ; 0x4c
4a0a: 52e0 strh r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar)
4a0c: 2271 movs r2, #113 ; 0x71
4a0e: 0031 movs r1, r6
4a10: 0028 movs r0, r5
4a12: 47c8 blx r9
draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part);
4a14: 234e movs r3, #78 ; 0x4e
4a16: 52e0 strh r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4a18: 2275 movs r2, #117 ; 0x75
4a1a: 0031 movs r1, r6
4a1c: 0028 movs r0, r5
4a1e: 47c8 blx r9
draw_dsc->value_align = lv_obj_get_style_value_align(obj, part);
4a20: 2350 movs r3, #80 ; 0x50
4a22: 54e0 strb r0, [r4, r3]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
4a24: 2272 movs r2, #114 ; 0x72
4a26: 0031 movs r1, r6
4a28: 0028 movs r0, r5
4a2a: 47c8 blx r9
draw_dsc->value_blend_mode = lv_obj_get_style_value_blend_mode(obj, part);
4a2c: 2351 movs r3, #81 ; 0x51
4a2e: 54e0 strb r0, [r4, r3]
4a30: e694 b.n 475c <lv_obj_init_draw_rect_dsc+0x5c>
4a32: 46c0 nop ; (mov r8, r8)
4a34: 00003a89 .word 0x00003a89
4a38: 0000800c .word 0x0000800c
4a3c: 00003bed .word 0x00003bed
4a40: 00003b49 .word 0x00003b49
4a44: 00003c99 .word 0x00003c99
4a48: 00009589 .word 0x00009589
4a4c: 0000808e .word 0x0000808e
00004a50 <lv_obj_design>:
{
4a50: b5f0 push {r4, r5, r6, r7, lr}
4a52: b09b sub sp, #108 ; 0x6c
4a54: 0004 movs r4, r0
4a56: 000e movs r6, r1
if(mode == LV_DESIGN_COVER_CHK) {
4a58: 2a02 cmp r2, #2
4a5a: d007 beq.n 4a6c <lv_obj_design+0x1c>
else if(mode == LV_DESIGN_DRAW_MAIN) {
4a5c: 2a00 cmp r2, #0
4a5e: d061 beq.n 4b24 <lv_obj_design+0xd4>
return LV_DESIGN_RES_OK;
4a60: 2000 movs r0, #0
else if(mode == LV_DESIGN_DRAW_POST) {
4a62: 2a01 cmp r2, #1
4a64: d100 bne.n 4a68 <lv_obj_design+0x18>
4a66: e0b5 b.n 4bd4 <lv_obj_design+0x184>
}
4a68: b01b add sp, #108 ; 0x6c
4a6a: bdf0 pop {r4, r5, r6, r7, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4a6c: 2100 movs r1, #0
4a6e: 4b81 ldr r3, [pc, #516] ; (4c74 <lv_obj_design+0x224>)
4a70: 4798 blx r3
4a72: 0003 movs r3, r0
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
4a74: 2003 movs r0, #3
4a76: 2b00 cmp r3, #0
4a78: d1f6 bne.n 4a68 <lv_obj_design+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4a7a: 2201 movs r2, #1
4a7c: 2100 movs r1, #0
4a7e: 0020 movs r0, r4
4a80: 4f7c ldr r7, [pc, #496] ; (4c74 <lv_obj_design+0x224>)
4a82: 47b8 blx r7
4a84: 9001 str r0, [sp, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4a86: 2204 movs r2, #4
4a88: 2100 movs r1, #0
4a8a: 0020 movs r0, r4
4a8c: 47b8 blx r7
4a8e: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4a90: 2205 movs r2, #5
4a92: 2100 movs r1, #0
4a94: 0020 movs r0, r4
4a96: 47b8 blx r7
lv_area_copy(&coords, &obj->coords);
4a98: 0027 movs r7, r4
4a9a: 3710 adds r7, #16
4a9c: 2300 movs r3, #0
*d8 = *s8;
4a9e: a905 add r1, sp, #20
4aa0: 5cfa ldrb r2, [r7, r3]
4aa2: 545a strb r2, [r3, r1]
4aa4: 3301 adds r3, #1
while(len) {
4aa6: 2b08 cmp r3, #8
4aa8: d1fa bne.n 4aa0 <lv_obj_design+0x50>
coords.x1 -= w;
4aaa: b2ad uxth r5, r5
4aac: a905 add r1, sp, #20
4aae: 880b ldrh r3, [r1, #0]
4ab0: 1b5b subs r3, r3, r5
4ab2: 800b strh r3, [r1, #0]
coords.x2 += w;
4ab4: 888b ldrh r3, [r1, #4]
4ab6: 18ed adds r5, r5, r3
4ab8: 808d strh r5, [r1, #4]
coords.y1 -= h;
4aba: b280 uxth r0, r0
4abc: 884b ldrh r3, [r1, #2]
4abe: 1a1b subs r3, r3, r0
4ac0: 804b strh r3, [r1, #2]
coords.y2 += h;
4ac2: 88cb ldrh r3, [r1, #6]
4ac4: 18c0 adds r0, r0, r3
4ac6: 80c8 strh r0, [r1, #6]
if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER;
4ac8: 9a01 ldr r2, [sp, #4]
4aca: 0030 movs r0, r6
4acc: 4b6a ldr r3, [pc, #424] ; (4c78 <lv_obj_design+0x228>)
4ace: 4798 blx r3
4ad0: 0003 movs r3, r0
4ad2: 2002 movs r0, #2
4ad4: 2b00 cmp r3, #0
4ad6: d0c7 beq.n 4a68 <lv_obj_design+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
4ad8: 222c movs r2, #44 ; 0x2c
4ada: 2100 movs r1, #0
4adc: 0020 movs r0, r4
4ade: 4b67 ldr r3, [pc, #412] ; (4c7c <lv_obj_design+0x22c>)
4ae0: 4798 blx r3
4ae2: 0003 movs r3, r0
if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER;
4ae4: 2002 movs r0, #2
4ae6: 2bf9 cmp r3, #249 ; 0xf9
4ae8: d9be bls.n 4a68 <lv_obj_design+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
4aea: 2220 movs r2, #32
4aec: 2100 movs r1, #0
4aee: 0020 movs r0, r4
4af0: 4b60 ldr r3, [pc, #384] ; (4c74 <lv_obj_design+0x224>)
4af2: 4798 blx r3
if(lv_obj_get_style_bg_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
4af4: b2c3 uxtb r3, r0
4af6: 2002 movs r0, #2
4af8: 2b00 cmp r3, #0
4afa: d1b5 bne.n 4a68 <lv_obj_design+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
4afc: 2232 movs r2, #50 ; 0x32
4afe: 2100 movs r1, #0
4b00: 0020 movs r0, r4
4b02: 4b5c ldr r3, [pc, #368] ; (4c74 <lv_obj_design+0x224>)
4b04: 4798 blx r3
if(lv_obj_get_style_border_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
4b06: b2c3 uxtb r3, r0
4b08: 2002 movs r0, #2
4b0a: 2b00 cmp r3, #0
4b0c: d1ac bne.n 4a68 <lv_obj_design+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4b0e: 4a5c ldr r2, [pc, #368] ; (4c80 <lv_obj_design+0x230>)
4b10: 2100 movs r1, #0
4b12: 0020 movs r0, r4
4b14: 4b59 ldr r3, [pc, #356] ; (4c7c <lv_obj_design+0x22c>)
4b16: 4798 blx r3
return LV_DESIGN_RES_COVER;
4b18: 2300 movs r3, #0
4b1a: 22f9 movs r2, #249 ; 0xf9
4b1c: 4282 cmp r2, r0
4b1e: 415b adcs r3, r3
4b20: 1c58 adds r0, r3, #1
4b22: e7a1 b.n 4a68 <lv_obj_design+0x18>
lv_draw_rect_dsc_init(&draw_dsc);
4b24: a805 add r0, sp, #20
4b26: 4b57 ldr r3, [pc, #348] ; (4c84 <lv_obj_design+0x234>)
4b28: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
4b2a: 2233 movs r2, #51 ; 0x33
4b2c: 2100 movs r1, #0
4b2e: 0020 movs r0, r4
4b30: 4b50 ldr r3, [pc, #320] ; (4c74 <lv_obj_design+0x224>)
4b32: 4798 blx r3
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
4b34: 2800 cmp r0, #0
4b36: d002 beq.n 4b3e <lv_obj_design+0xee>
draw_dsc.border_opa = LV_OPA_TRANSP;
4b38: 2200 movs r2, #0
4b3a: ab05 add r3, sp, #20
4b3c: 751a strb r2, [r3, #20]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
4b3e: aa05 add r2, sp, #20
4b40: 2100 movs r1, #0
4b42: 0020 movs r0, r4
4b44: 4b50 ldr r3, [pc, #320] ; (4c88 <lv_obj_design+0x238>)
4b46: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4b48: 2204 movs r2, #4
4b4a: 2100 movs r1, #0
4b4c: 0020 movs r0, r4
4b4e: 4f49 ldr r7, [pc, #292] ; (4c74 <lv_obj_design+0x224>)
4b50: 47b8 blx r7
4b52: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4b54: 2205 movs r2, #5
4b56: 2100 movs r1, #0
4b58: 0020 movs r0, r4
4b5a: 47b8 blx r7
lv_area_copy(&coords, &obj->coords);
4b5c: 0027 movs r7, r4
4b5e: 3710 adds r7, #16
4b60: 2300 movs r3, #0
*d8 = *s8;
4b62: a903 add r1, sp, #12
4b64: 5cfa ldrb r2, [r7, r3]
4b66: 545a strb r2, [r3, r1]
4b68: 3301 adds r3, #1
while(len) {
4b6a: 2b08 cmp r3, #8
4b6c: d1fa bne.n 4b64 <lv_obj_design+0x114>
coords.x1 -= w;
4b6e: b2ad uxth r5, r5
4b70: ab03 add r3, sp, #12
4b72: 881a ldrh r2, [r3, #0]
4b74: 1b52 subs r2, r2, r5
4b76: 801a strh r2, [r3, #0]
coords.x2 += w;
4b78: 889a ldrh r2, [r3, #4]
4b7a: 18ad adds r5, r5, r2
4b7c: 809d strh r5, [r3, #4]
coords.y1 -= h;
4b7e: b280 uxth r0, r0
4b80: 885a ldrh r2, [r3, #2]
4b82: 1a12 subs r2, r2, r0
4b84: 805a strh r2, [r3, #2]
coords.y2 += h;
4b86: 88da ldrh r2, [r3, #6]
4b88: 1880 adds r0, r0, r2
4b8a: 80d8 strh r0, [r3, #6]
lv_draw_rect(&coords, clip_area, &draw_dsc);
4b8c: aa05 add r2, sp, #20
4b8e: 0031 movs r1, r6
4b90: 0018 movs r0, r3
4b92: 4b3e ldr r3, [pc, #248] ; (4c8c <lv_obj_design+0x23c>)
4b94: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4b96: 2202 movs r2, #2
4b98: 2100 movs r1, #0
4b9a: 0020 movs r0, r4
4b9c: 4b35 ldr r3, [pc, #212] ; (4c74 <lv_obj_design+0x224>)
4b9e: 4798 blx r3
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
4ba0: 2800 cmp r0, #0
4ba2: d101 bne.n 4ba8 <lv_obj_design+0x158>
return LV_DESIGN_RES_OK;
4ba4: 2000 movs r0, #0
4ba6: e75f b.n 4a68 <lv_obj_design+0x18>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
4ba8: 201c movs r0, #28
4baa: 4b39 ldr r3, [pc, #228] ; (4c90 <lv_obj_design+0x240>)
4bac: 4798 blx r3
4bae: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4bb0: 2201 movs r2, #1
4bb2: 2100 movs r1, #0
4bb4: 0020 movs r0, r4
4bb6: 4b2f ldr r3, [pc, #188] ; (4c74 <lv_obj_design+0x224>)
4bb8: 4798 blx r3
4bba: 0002 movs r2, r0
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
4bbc: 2300 movs r3, #0
4bbe: 0039 movs r1, r7
4bc0: 0028 movs r0, r5
4bc2: 4e34 ldr r6, [pc, #208] ; (4c94 <lv_obj_design+0x244>)
4bc4: 47b0 blx r6
lv_draw_mask_add(mp, obj + 8);
4bc6: 2398 movs r3, #152 ; 0x98
4bc8: 009b lsls r3, r3, #2
4bca: 18e1 adds r1, r4, r3
4bcc: 0028 movs r0, r5
4bce: 4b32 ldr r3, [pc, #200] ; (4c98 <lv_obj_design+0x248>)
4bd0: 4798 blx r3
4bd2: e7e7 b.n 4ba4 <lv_obj_design+0x154>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4bd4: 3201 adds r2, #1
4bd6: 2100 movs r1, #0
4bd8: 0020 movs r0, r4
4bda: 4b26 ldr r3, [pc, #152] ; (4c74 <lv_obj_design+0x224>)
4bdc: 4798 blx r3
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
4bde: 2800 cmp r0, #0
4be0: d140 bne.n 4c64 <lv_obj_design+0x214>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
4be2: 2233 movs r2, #51 ; 0x33
4be4: 2100 movs r1, #0
4be6: 0020 movs r0, r4
4be8: 4b22 ldr r3, [pc, #136] ; (4c74 <lv_obj_design+0x224>)
4bea: 4798 blx r3
4bec: 0003 movs r3, r0
return LV_DESIGN_RES_OK;
4bee: 2000 movs r0, #0
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
4bf0: 2b00 cmp r3, #0
4bf2: d100 bne.n 4bf6 <lv_obj_design+0x1a6>
4bf4: e738 b.n 4a68 <lv_obj_design+0x18>
lv_draw_rect_dsc_init(&draw_dsc);
4bf6: ad05 add r5, sp, #20
4bf8: 0028 movs r0, r5
4bfa: 4b22 ldr r3, [pc, #136] ; (4c84 <lv_obj_design+0x234>)
4bfc: 4798 blx r3
draw_dsc.bg_opa = LV_OPA_TRANSP;
4bfe: 2300 movs r3, #0
4c00: 732b strb r3, [r5, #12]
draw_dsc.pattern_opa = LV_OPA_TRANSP;
4c02: 2236 movs r2, #54 ; 0x36
4c04: 54ab strb r3, [r5, r2]
draw_dsc.shadow_opa = LV_OPA_TRANSP;
4c06: 3a0e subs r2, #14
4c08: 54ab strb r3, [r5, r2]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
4c0a: 002a movs r2, r5
4c0c: 2100 movs r1, #0
4c0e: 0020 movs r0, r4
4c10: 4b1d ldr r3, [pc, #116] ; (4c88 <lv_obj_design+0x238>)
4c12: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4c14: 2204 movs r2, #4
4c16: 2100 movs r1, #0
4c18: 0020 movs r0, r4
4c1a: 4f16 ldr r7, [pc, #88] ; (4c74 <lv_obj_design+0x224>)
4c1c: 47b8 blx r7
4c1e: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4c20: 2205 movs r2, #5
4c22: 2100 movs r1, #0
4c24: 0020 movs r0, r4
4c26: 47b8 blx r7
lv_area_copy(&coords, &obj->coords);
4c28: 3410 adds r4, #16
4c2a: 2300 movs r3, #0
*d8 = *s8;
4c2c: a903 add r1, sp, #12
4c2e: 5ce2 ldrb r2, [r4, r3]
4c30: 545a strb r2, [r3, r1]
4c32: 3301 adds r3, #1
while(len) {
4c34: 2b08 cmp r3, #8
4c36: d1fa bne.n 4c2e <lv_obj_design+0x1de>
coords.x1 -= w;
4c38: b2ad uxth r5, r5
4c3a: ab03 add r3, sp, #12
4c3c: 881a ldrh r2, [r3, #0]
4c3e: 1b52 subs r2, r2, r5
4c40: 801a strh r2, [r3, #0]
coords.x2 += w;
4c42: 889a ldrh r2, [r3, #4]
4c44: 18ad adds r5, r5, r2
4c46: 809d strh r5, [r3, #4]
coords.y1 -= h;
4c48: b280 uxth r0, r0
4c4a: 885a ldrh r2, [r3, #2]
4c4c: 1a12 subs r2, r2, r0
4c4e: 805a strh r2, [r3, #2]
coords.y2 += h;
4c50: 88da ldrh r2, [r3, #6]
4c52: 1880 adds r0, r0, r2
4c54: 80d8 strh r0, [r3, #6]
lv_draw_rect(&coords, clip_area, &draw_dsc);
4c56: aa05 add r2, sp, #20
4c58: 0031 movs r1, r6
4c5a: 0018 movs r0, r3
4c5c: 4b0b ldr r3, [pc, #44] ; (4c8c <lv_obj_design+0x23c>)
4c5e: 4798 blx r3
return LV_DESIGN_RES_OK;
4c60: 2000 movs r0, #0
4c62: e701 b.n 4a68 <lv_obj_design+0x18>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8);
4c64: 2398 movs r3, #152 ; 0x98
4c66: 009b lsls r3, r3, #2
4c68: 18e0 adds r0, r4, r3
4c6a: 4b0c ldr r3, [pc, #48] ; (4c9c <lv_obj_design+0x24c>)
4c6c: 4798 blx r3
_lv_mem_buf_release(param);
4c6e: 4b0c ldr r3, [pc, #48] ; (4ca0 <lv_obj_design+0x250>)
4c70: 4798 blx r3
4c72: e7b6 b.n 4be2 <lv_obj_design+0x192>
4c74: 00003a89 .word 0x00003a89
4c78: 00011699 .word 0x00011699
4c7c: 00003bed .word 0x00003bed
4c80: 0000800c .word 0x0000800c
4c84: 0000bfcd .word 0x0000bfcd
4c88: 00004701 .word 0x00004701
4c8c: 0000c071 .word 0x0000c071
4c90: 000127a1 .word 0x000127a1
4c94: 0000bd01 .word 0x0000bd01
4c98: 0000ba75 .word 0x0000ba75
4c9c: 0000bb41 .word 0x0000bb41
4ca0: 00012465 .word 0x00012465
00004ca4 <lv_obj_init_draw_label_dsc>:
{
4ca4: b5f8 push {r3, r4, r5, r6, r7, lr}
4ca6: 0005 movs r5, r0
4ca8: 000e movs r6, r1
4caa: 0014 movs r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar)
4cac: 4a21 ldr r2, [pc, #132] ; (4d34 <lv_obj_init_draw_label_dsc+0x90>)
4cae: 4b22 ldr r3, [pc, #136] ; (4d38 <lv_obj_init_draw_label_dsc+0x94>)
4cb0: 4798 blx r3
draw_dsc->opa = lv_obj_get_style_text_opa(obj, part);
4cb2: 7220 strb r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4cb4: 2805 cmp r0, #5
4cb6: d800 bhi.n 4cba <lv_obj_init_draw_label_dsc+0x16>
}
4cb8: bdf8 pop {r3, r4, r5, r6, r7, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4cba: 4a20 ldr r2, [pc, #128] ; (4d3c <lv_obj_init_draw_label_dsc+0x98>)
4cbc: 0031 movs r1, r6
4cbe: 0028 movs r0, r5
4cc0: 4b1d ldr r3, [pc, #116] ; (4d38 <lv_obj_init_draw_label_dsc+0x94>)
4cc2: 4798 blx r3
if(opa_scale < LV_OPA_MAX) {
4cc4: 28f9 cmp r0, #249 ; 0xf9
4cc6: d803 bhi.n 4cd0 <lv_obj_init_draw_label_dsc+0x2c>
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
4cc8: 7a23 ldrb r3, [r4, #8]
4cca: 4358 muls r0, r3
4ccc: 0a00 lsrs r0, r0, #8
4cce: 7220 strb r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4cd0: 7a23 ldrb r3, [r4, #8]
4cd2: 2b05 cmp r3, #5
4cd4: d9f0 bls.n 4cb8 <lv_obj_init_draw_label_dsc+0x14>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
4cd6: 4a1a ldr r2, [pc, #104] ; (4d40 <lv_obj_init_draw_label_dsc+0x9c>)
4cd8: 0031 movs r1, r6
4cda: 0028 movs r0, r5
4cdc: 4b19 ldr r3, [pc, #100] ; (4d44 <lv_obj_init_draw_label_dsc+0xa0>)
4cde: 4798 blx r3
draw_dsc->color = lv_obj_get_style_text_color(obj, part);
4ce0: 8020 strh r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
4ce2: 4a19 ldr r2, [pc, #100] ; (4d48 <lv_obj_init_draw_label_dsc+0xa4>)
4ce4: 0031 movs r1, r6
4ce6: 0028 movs r0, r5
4ce8: 4f18 ldr r7, [pc, #96] ; (4d4c <lv_obj_init_draw_label_dsc+0xa8>)
4cea: 47b8 blx r7
draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part);
4cec: 81a0 strh r0, [r4, #12]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
4cee: 4a18 ldr r2, [pc, #96] ; (4d50 <lv_obj_init_draw_label_dsc+0xac>)
4cf0: 0031 movs r1, r6
4cf2: 0028 movs r0, r5
4cf4: 47b8 blx r7
draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part);
4cf6: 8160 strh r0, [r4, #10]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
4cf8: 4a16 ldr r2, [pc, #88] ; (4d54 <lv_obj_init_draw_label_dsc+0xb0>)
4cfa: 0031 movs r1, r6
4cfc: 0028 movs r0, r5
4cfe: 47b8 blx r7
draw_dsc->decor = lv_obj_get_style_text_decor(obj, part);
4d00: 7620 strb r0, [r4, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4d02: 4a15 ldr r2, [pc, #84] ; (4d58 <lv_obj_init_draw_label_dsc+0xb4>)
4d04: 0031 movs r1, r6
4d06: 0028 movs r0, r5
4d08: 47b8 blx r7
draw_dsc->blend_mode = lv_obj_get_style_text_blend_mode(obj, part);
4d0a: 7660 strb r0, [r4, #25]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4d0c: 4a13 ldr r2, [pc, #76] ; (4d5c <lv_obj_init_draw_label_dsc+0xb8>)
4d0e: 0031 movs r1, r6
4d10: 0028 movs r0, r5
4d12: 4b13 ldr r3, [pc, #76] ; (4d60 <lv_obj_init_draw_label_dsc+0xbc>)
4d14: 4798 blx r3
draw_dsc->font = lv_obj_get_style_text_font(obj, part);
4d16: 6060 str r0, [r4, #4]
if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) {
4d18: 89e2 ldrh r2, [r4, #14]
4d1a: 4b12 ldr r3, [pc, #72] ; (4d64 <lv_obj_init_draw_label_dsc+0xc0>)
4d1c: 429a cmp r2, r3
4d1e: d0cb beq.n 4cb8 <lv_obj_init_draw_label_dsc+0x14>
4d20: 8a22 ldrh r2, [r4, #16]
4d22: 429a cmp r2, r3
4d24: d0c8 beq.n 4cb8 <lv_obj_init_draw_label_dsc+0x14>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar)
4d26: 4a10 ldr r2, [pc, #64] ; (4d68 <lv_obj_init_draw_label_dsc+0xc4>)
4d28: 0031 movs r1, r6
4d2a: 0028 movs r0, r5
4d2c: 4b05 ldr r3, [pc, #20] ; (4d44 <lv_obj_init_draw_label_dsc+0xa0>)
4d2e: 4798 blx r3
draw_dsc->color = lv_obj_get_style_text_sel_color(obj, part);
4d30: 8020 strh r0, [r4, #0]
4d32: e7c1 b.n 4cb8 <lv_obj_init_draw_label_dsc+0x14>
4d34: 0000808c .word 0x0000808c
4d38: 00003bed .word 0x00003bed
4d3c: 0000800c .word 0x0000800c
4d40: 00008089 .word 0x00008089
4d44: 00003b49 .word 0x00003b49
4d48: 00008080 .word 0x00008080
4d4c: 00003a89 .word 0x00003a89
4d50: 00008081 .word 0x00008081
4d54: 00008082 .word 0x00008082
4d58: 00008083 .word 0x00008083
4d5c: 0000808e .word 0x0000808e
4d60: 00003c99 .word 0x00003c99
4d64: 0000ffff .word 0x0000ffff
4d68: 0000808a .word 0x0000808a
00004d6c <lv_obj_init_draw_img_dsc>:
{
4d6c: b570 push {r4, r5, r6, lr}
4d6e: 0005 movs r5, r0
4d70: 000e movs r6, r1
4d72: 0014 movs r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
4d74: 4a1f ldr r2, [pc, #124] ; (4df4 <lv_obj_init_draw_img_dsc+0x88>)
4d76: 4b20 ldr r3, [pc, #128] ; (4df8 <lv_obj_init_draw_img_dsc+0x8c>)
4d78: 4798 blx r3
draw_dsc->opa = lv_obj_get_style_image_opa(obj, part);
4d7a: 7020 strb r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4d7c: 2805 cmp r0, #5
4d7e: d800 bhi.n 4d82 <lv_obj_init_draw_img_dsc+0x16>
}
4d80: bd70 pop {r4, r5, r6, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4d82: 4a1e ldr r2, [pc, #120] ; (4dfc <lv_obj_init_draw_img_dsc+0x90>)
4d84: 0031 movs r1, r6
4d86: 0028 movs r0, r5
4d88: 4b1b ldr r3, [pc, #108] ; (4df8 <lv_obj_init_draw_img_dsc+0x8c>)
4d8a: 4798 blx r3
if(opa_scale < LV_OPA_MAX) {
4d8c: 28f9 cmp r0, #249 ; 0xf9
4d8e: d803 bhi.n 4d98 <lv_obj_init_draw_img_dsc+0x2c>
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
4d90: 7823 ldrb r3, [r4, #0]
4d92: 4358 muls r0, r3
4d94: 0a00 lsrs r0, r0, #8
4d96: 7020 strb r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4d98: 7823 ldrb r3, [r4, #0]
4d9a: 2b05 cmp r3, #5
4d9c: d9f0 bls.n 4d80 <lv_obj_init_draw_img_dsc+0x14>
draw_dsc->angle = 0;
4d9e: 2300 movs r3, #0
4da0: 8063 strh r3, [r4, #2]
draw_dsc->zoom = LV_IMG_ZOOM_NONE;
4da2: 3301 adds r3, #1
4da4: 33ff adds r3, #255 ; 0xff
4da6: 8123 strh r3, [r4, #8]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
4da8: 8aab ldrh r3, [r5, #20]
4daa: 3301 adds r3, #1
4dac: 8a2a ldrh r2, [r5, #16]
4dae: 1a9b subs r3, r3, r2
draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2;
4db0: b21b sxth r3, r3
4db2: 0fda lsrs r2, r3, #31
4db4: 18d3 adds r3, r2, r3
4db6: 105b asrs r3, r3, #1
4db8: 80a3 strh r3, [r4, #4]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
4dba: 8aeb ldrh r3, [r5, #22]
4dbc: 3301 adds r3, #1
4dbe: 8a6a ldrh r2, [r5, #18]
4dc0: 1a9b subs r3, r3, r2
draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2;
4dc2: b21b sxth r3, r3
4dc4: 0fda lsrs r2, r3, #31
4dc6: 18d3 adds r3, r2, r3
4dc8: 105b asrs r3, r3, #1
4dca: 80e3 strh r3, [r4, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
4dcc: 4a0c ldr r2, [pc, #48] ; (4e00 <lv_obj_init_draw_img_dsc+0x94>)
4dce: 0031 movs r1, r6
4dd0: 0028 movs r0, r5
4dd2: 4b09 ldr r3, [pc, #36] ; (4df8 <lv_obj_init_draw_img_dsc+0x8c>)
4dd4: 4798 blx r3
draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part);
4dd6: 72a0 strb r0, [r4, #10]
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
4dd8: 4a0a ldr r2, [pc, #40] ; (4e04 <lv_obj_init_draw_img_dsc+0x98>)
4dda: 0031 movs r1, r6
4ddc: 0028 movs r0, r5
4dde: 4b0a ldr r3, [pc, #40] ; (4e08 <lv_obj_init_draw_img_dsc+0x9c>)
4de0: 4798 blx r3
draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part);
4de2: 81a0 strh r0, [r4, #12]
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
4de4: 4a09 ldr r2, [pc, #36] ; (4e0c <lv_obj_init_draw_img_dsc+0xa0>)
4de6: 0031 movs r1, r6
4de8: 0028 movs r0, r5
4dea: 4b09 ldr r3, [pc, #36] ; (4e10 <lv_obj_init_draw_img_dsc+0xa4>)
4dec: 4798 blx r3
draw_dsc->blend_mode = lv_obj_get_style_image_blend_mode(obj, part);
4dee: 73a0 strb r0, [r4, #14]
4df0: e7c6 b.n 4d80 <lv_obj_init_draw_img_dsc+0x14>
4df2: 46c0 nop ; (mov r8, r8)
4df4: 000080ac .word 0x000080ac
4df8: 00003bed .word 0x00003bed
4dfc: 0000800c .word 0x0000800c
4e00: 000080ad .word 0x000080ad
4e04: 000080a9 .word 0x000080a9
4e08: 00003b49 .word 0x00003b49
4e0c: 000080a0 .word 0x000080a0
4e10: 00003a89 .word 0x00003a89
00004e14 <lv_obj_get_draw_rect_ext_pad_size>:
{
4e14: b5f0 push {r4, r5, r6, r7, lr}
4e16: 46de mov lr, fp
4e18: 4657 mov r7, sl
4e1a: 464e mov r6, r9
4e1c: b5c0 push {r6, r7, lr}
4e1e: b08a sub sp, #40 ; 0x28
4e20: 0004 movs r4, r0
4e22: 9104 str r1, [sp, #16]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
4e24: 2250 movs r2, #80 ; 0x50
4e26: 4b78 ldr r3, [pc, #480] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4e28: 4798 blx r3
4e2a: 0006 movs r6, r0
4e2c: 1e05 subs r5, r0, #0
if(sh_width) {
4e2e: d130 bne.n 4e92 <lv_obj_get_draw_rect_ext_pad_size+0x7e>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
4e30: 227f movs r2, #127 ; 0x7f
4e32: 9f04 ldr r7, [sp, #16]
4e34: 0039 movs r1, r7
4e36: 0020 movs r0, r4
4e38: 4b74 ldr r3, [pc, #464] ; (500c <lv_obj_get_draw_rect_ext_pad_size+0x1f8>)
4e3a: 4798 blx r3
4e3c: 1e06 subs r6, r0, #0
if(value_str) {
4e3e: d006 beq.n 4e4e <lv_obj_get_draw_rect_ext_pad_size+0x3a>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
4e40: 227c movs r2, #124 ; 0x7c
4e42: 0039 movs r1, r7
4e44: 0020 movs r0, r4
4e46: 4b72 ldr r3, [pc, #456] ; (5010 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
4e48: 4798 blx r3
if(value_opa > LV_OPA_MIN) {
4e4a: 2805 cmp r0, #5
4e4c: d850 bhi.n 4ef0 <lv_obj_get_draw_rect_ext_pad_size+0xdc>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
4e4e: 2240 movs r2, #64 ; 0x40
4e50: 9904 ldr r1, [sp, #16]
4e52: 0020 movs r0, r4
4e54: 4b6c ldr r3, [pc, #432] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4e56: 4798 blx r3
4e58: 1e06 subs r6, r0, #0
if(outline_width) {
4e5a: d000 beq.n 4e5e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
4e5c: e0c0 b.n 4fe0 <lv_obj_get_draw_rect_ext_pad_size+0x1cc>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4e5e: 2204 movs r2, #4
4e60: 9904 ldr r1, [sp, #16]
4e62: 0020 movs r0, r4
4e64: 4f68 ldr r7, [pc, #416] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4e66: 47b8 blx r7
4e68: 0006 movs r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4e6a: 2205 movs r2, #5
4e6c: 9904 ldr r1, [sp, #16]
4e6e: 0020 movs r0, r4
4e70: 47b8 blx r7
lv_coord_t wh = LV_MATH_MAX(w, h);
4e72: 1c03 adds r3, r0, #0
4e74: 42b0 cmp r0, r6
4e76: da00 bge.n 4e7a <lv_obj_get_draw_rect_ext_pad_size+0x66>
4e78: 1c33 adds r3, r6, #0
4e7a: b21a sxth r2, r3
if(wh > 0) s += wh;
4e7c: 2a00 cmp r2, #0
4e7e: dd01 ble.n 4e84 <lv_obj_get_draw_rect_ext_pad_size+0x70>
4e80: 18ed adds r5, r5, r3
4e82: b22d sxth r5, r5
}
4e84: 0028 movs r0, r5
4e86: b00a add sp, #40 ; 0x28
4e88: bc1c pop {r2, r3, r4}
4e8a: 4691 mov r9, r2
4e8c: 469a mov sl, r3
4e8e: 46a3 mov fp, r4
4e90: bdf0 pop {r4, r5, r6, r7, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
4e92: 225c movs r2, #92 ; 0x5c
4e94: 9904 ldr r1, [sp, #16]
4e96: 0020 movs r0, r4
4e98: 4b5d ldr r3, [pc, #372] ; (5010 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
4e9a: 4798 blx r3
lv_coord_t s = 0;
4e9c: 2500 movs r5, #0
if(sh_opa > LV_OPA_MIN) {
4e9e: 2805 cmp r0, #5
4ea0: d9c6 bls.n 4e30 <lv_obj_get_draw_rect_ext_pad_size+0x1c>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
4ea2: 2253 movs r2, #83 ; 0x53
4ea4: 9d04 ldr r5, [sp, #16]
4ea6: 0029 movs r1, r5
4ea8: 0020 movs r0, r4
4eaa: 4f57 ldr r7, [pc, #348] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4eac: 47b8 blx r7
sh_width = sh_width / 2; /*THe blur adds only half width*/
4eae: 0ff3 lsrs r3, r6, #31
4eb0: 199e adds r6, r3, r6
4eb2: 1076 asrs r6, r6, #1
sh_width++;
4eb4: 3601 adds r6, #1
sh_width += lv_obj_get_style_shadow_spread(obj, part);
4eb6: 1836 adds r6, r6, r0
4eb8: b2b6 uxth r6, r6
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4eba: 2251 movs r2, #81 ; 0x51
4ebc: 9504 str r5, [sp, #16]
4ebe: 0029 movs r1, r5
4ec0: 0020 movs r0, r4
4ec2: 47b8 blx r7
4ec4: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4ec6: 2252 movs r2, #82 ; 0x52
4ec8: 9904 ldr r1, [sp, #16]
4eca: 0020 movs r0, r4
4ecc: 47b8 blx r7
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
4ece: 17ea asrs r2, r5, #31
4ed0: 18ab adds r3, r5, r2
4ed2: 4053 eors r3, r2
4ed4: 17c2 asrs r2, r0, #31
4ed6: 1880 adds r0, r0, r2
4ed8: 4050 eors r0, r2
4eda: 4298 cmp r0, r3
4edc: da00 bge.n 4ee0 <lv_obj_get_draw_rect_ext_pad_size+0xcc>
4ede: 0018 movs r0, r3
4ee0: 1830 adds r0, r6, r0
s = LV_MATH_MAX(s, sh_width);
4ee2: 1c03 adds r3, r0, #0
4ee4: 0402 lsls r2, r0, #16
4ee6: d401 bmi.n 4eec <lv_obj_get_draw_rect_ext_pad_size+0xd8>
4ee8: b21d sxth r5, r3
4eea: e7a1 b.n 4e30 <lv_obj_get_draw_rect_ext_pad_size+0x1c>
4eec: 2300 movs r3, #0
4eee: e7fb b.n 4ee8 <lv_obj_get_draw_rect_ext_pad_size+0xd4>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
4ef0: 2270 movs r2, #112 ; 0x70
4ef2: 9f04 ldr r7, [sp, #16]
4ef4: 0039 movs r1, r7
4ef6: 0020 movs r0, r4
4ef8: 4b43 ldr r3, [pc, #268] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4efa: 4699 mov r9, r3
4efc: 4798 blx r3
4efe: 9005 str r0, [sp, #20]
4f00: 2270 movs r2, #112 ; 0x70
4f02: 0039 movs r1, r7
4f04: 0020 movs r0, r4
4f06: 47c8 blx r9
4f08: 4683 mov fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
4f0a: 227e movs r2, #126 ; 0x7e
4f0c: 9704 str r7, [sp, #16]
4f0e: 0039 movs r1, r7
4f10: 0020 movs r0, r4
4f12: 4b3e ldr r3, [pc, #248] ; (500c <lv_obj_get_draw_rect_ext_pad_size+0x1f8>)
4f14: 4798 blx r3
4f16: 0002 movs r2, r0
_lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE);
4f18: af06 add r7, sp, #24
4f1a: 2100 movs r1, #0
4f1c: 468a mov sl, r1
4f1e: 9102 str r1, [sp, #8]
4f20: 4b3c ldr r3, [pc, #240] ; (5014 <lv_obj_get_draw_rect_ext_pad_size+0x200>)
4f22: 9301 str r3, [sp, #4]
4f24: 4659 mov r1, fp
4f26: 9100 str r1, [sp, #0]
4f28: 9b05 ldr r3, [sp, #20]
4f2a: 0031 movs r1, r6
4f2c: 0038 movs r0, r7
4f2e: 4e3a ldr r6, [pc, #232] ; (5018 <lv_obj_get_draw_rect_ext_pad_size+0x204>)
4f30: 47b0 blx r6
value_area.x1 = 0;
4f32: ae08 add r6, sp, #32
4f34: 4653 mov r3, sl
4f36: 8033 strh r3, [r6, #0]
value_area.y1 = 0;
4f38: 8073 strh r3, [r6, #2]
value_area.x2 = txt_size.x - 1;
4f3a: 883b ldrh r3, [r7, #0]
4f3c: 3b01 subs r3, #1
4f3e: 80b3 strh r3, [r6, #4]
value_area.y2 = txt_size.y - 1;
4f40: 887b ldrh r3, [r7, #2]
4f42: 3b01 subs r3, #1
4f44: 80f3 strh r3, [r6, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4f46: 2275 movs r2, #117 ; 0x75
4f48: 9f04 ldr r7, [sp, #16]
4f4a: 0039 movs r1, r7
4f4c: 0020 movs r0, r4
4f4e: 47c8 blx r9
4f50: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
4f52: 2273 movs r2, #115 ; 0x73
4f54: 0039 movs r1, r7
4f56: 0020 movs r0, r4
4f58: 47c8 blx r9
4f5a: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
4f5c: 2274 movs r2, #116 ; 0x74
4f5e: 0039 movs r1, r7
4f60: 0020 movs r0, r4
4f62: 47c8 blx r9
4f64: 4681 mov r9, r0
_lv_area_align(&obj->coords, &value_area, align, &p_align);
4f66: aa07 add r2, sp, #28
4f68: 0013 movs r3, r2
4f6a: 466a mov r2, sp
4f6c: 7d12 ldrb r2, [r2, #20]
4f6e: 0020 movs r0, r4
4f70: 3010 adds r0, #16
4f72: 9305 str r3, [sp, #20]
4f74: 0031 movs r1, r6
4f76: 4f29 ldr r7, [pc, #164] ; (501c <lv_obj_get_draw_rect_ext_pad_size+0x208>)
4f78: 47b8 blx r7
value_area.x1 += p_align.x + xofs;
4f7a: 9a05 ldr r2, [sp, #20]
4f7c: 8813 ldrh r3, [r2, #0]
4f7e: 4453 add r3, sl
4f80: b29b uxth r3, r3
value_area.y1 += p_align.y + yofs;
4f82: 8852 ldrh r2, [r2, #2]
4f84: 444a add r2, r9
4f86: b292 uxth r2, r2
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
4f88: 2010 movs r0, #16
4f8a: 5e21 ldrsh r1, [r4, r0]
value_area.x1 += p_align.x + xofs;
4f8c: 8836 ldrh r6, [r6, #0]
4f8e: 199e adds r6, r3, r6
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
4f90: b236 sxth r6, r6
4f92: 1b8e subs r6, r1, r6
4f94: 42ae cmp r6, r5
4f96: da00 bge.n 4f9a <lv_obj_get_draw_rect_ext_pad_size+0x186>
4f98: 002e movs r6, r5
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
4f9a: 2112 movs r1, #18
4f9c: 5e60 ldrsh r0, [r4, r1]
value_area.y1 += p_align.y + yofs;
4f9e: a908 add r1, sp, #32
4fa0: 8849 ldrh r1, [r1, #2]
4fa2: 1851 adds r1, r2, r1
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
4fa4: b209 sxth r1, r1
4fa6: b236 sxth r6, r6
4fa8: 1a41 subs r1, r0, r1
4faa: 42b1 cmp r1, r6
4fac: da00 bge.n 4fb0 <lv_obj_get_draw_rect_ext_pad_size+0x19c>
4fae: 0031 movs r1, r6
value_area.x2 += p_align.x + xofs;
4fb0: a808 add r0, sp, #32
4fb2: 8880 ldrh r0, [r0, #4]
4fb4: 181b adds r3, r3, r0
s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2);
4fb6: b21b sxth r3, r3
4fb8: 2514 movs r5, #20
4fba: 5f60 ldrsh r0, [r4, r5]
4fbc: b209 sxth r1, r1
4fbe: 1a1b subs r3, r3, r0
4fc0: 428b cmp r3, r1
4fc2: da00 bge.n 4fc6 <lv_obj_get_draw_rect_ext_pad_size+0x1b2>
4fc4: 000b movs r3, r1
value_area.y2 += p_align.y + yofs;
4fc6: a908 add r1, sp, #32
4fc8: 88c9 ldrh r1, [r1, #6]
4fca: 1852 adds r2, r2, r1
s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2);
4fcc: b212 sxth r2, r2
4fce: 2016 movs r0, #22
4fd0: 5e21 ldrsh r1, [r4, r0]
4fd2: b21b sxth r3, r3
4fd4: 1a52 subs r2, r2, r1
4fd6: 429a cmp r2, r3
4fd8: da00 bge.n 4fdc <lv_obj_get_draw_rect_ext_pad_size+0x1c8>
4fda: 001a movs r2, r3
4fdc: b215 sxth r5, r2
4fde: e736 b.n 4e4e <lv_obj_get_draw_rect_ext_pad_size+0x3a>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
4fe0: 224c movs r2, #76 ; 0x4c
4fe2: 9904 ldr r1, [sp, #16]
4fe4: 0020 movs r0, r4
4fe6: 4b0a ldr r3, [pc, #40] ; (5010 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
4fe8: 4798 blx r3
if(outline_opa > LV_OPA_MIN) {
4fea: 2805 cmp r0, #5
4fec: d800 bhi.n 4ff0 <lv_obj_get_draw_rect_ext_pad_size+0x1dc>
4fee: e736 b.n 4e5e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
4ff0: 2241 movs r2, #65 ; 0x41
4ff2: 9904 ldr r1, [sp, #16]
4ff4: 0020 movs r0, r4
4ff6: 4b04 ldr r3, [pc, #16] ; (5008 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
4ff8: 4798 blx r3
s = LV_MATH_MAX(s, outline_pad + outline_width);
4ffa: 1986 adds r6, r0, r6
4ffc: 42ae cmp r6, r5
4ffe: da00 bge.n 5002 <lv_obj_get_draw_rect_ext_pad_size+0x1ee>
5000: 002e movs r6, r5
5002: b235 sxth r5, r6
5004: e72b b.n 4e5e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
5006: 46c0 nop ; (mov r8, r8)
5008: 00003a89 .word 0x00003a89
500c: 00003c99 .word 0x00003c99
5010: 00003bed .word 0x00003bed
5014: 00007c18 .word 0x00007c18
5018: 00013f3d .word 0x00013f3d
501c: 0001173d .word 0x0001173d
00005020 <lv_obj_signal>:
{
5020: b510 push {r4, lr}
5022: 0004 movs r4, r0
if(sign == LV_SIGNAL_GET_STYLE) {
5024: 2908 cmp r1, #8
5026: d01b beq.n 5060 <lv_obj_signal+0x40>
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
5028: 2907 cmp r1, #7
502a: d024 beq.n 5076 <lv_obj_signal+0x56>
if(sign == LV_SIGNAL_CHILD_CHG) {
502c: 2901 cmp r1, #1
502e: d027 beq.n 5080 <lv_obj_signal+0x60>
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
5030: 2906 cmp r1, #6
5032: d02b beq.n 508c <lv_obj_signal+0x6c>
else if(sign == LV_SIGNAL_PARENT_SIZE_CHG) {
5034: 2903 cmp r1, #3
5036: d035 beq.n 50a4 <lv_obj_signal+0x84>
else if(sign == LV_SIGNAL_STYLE_CHG) {
5038: 2904 cmp r1, #4
503a: d03d beq.n 50b8 <lv_obj_signal+0x98>
else if(sign == LV_SIGNAL_PRESSED) {
503c: 290b cmp r1, #11
503e: d03f beq.n 50c0 <lv_obj_signal+0xa0>
else if(sign == LV_SIGNAL_RELEASED || sign == LV_SIGNAL_PRESS_LOST) {
5040: 000b movs r3, r1
5042: 3b0d subs r3, #13
5044: 2b01 cmp r3, #1
5046: d940 bls.n 50ca <lv_obj_signal+0xaa>
else if(sign == LV_SIGNAL_FOCUS) {
5048: 2916 cmp r1, #22
504a: d043 beq.n 50d4 <lv_obj_signal+0xb4>
else if(sign == LV_SIGNAL_DEFOCUS) {
504c: 2917 cmp r1, #23
504e: d057 beq.n 5100 <lv_obj_signal+0xe0>
lv_res_t res = LV_RES_OK;
5050: 2001 movs r0, #1
else if(sign == LV_SIGNAL_CLEANUP) {
5052: 2900 cmp r1, #0
5054: d10a bne.n 506c <lv_obj_signal+0x4c>
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
5056: 0020 movs r0, r4
5058: 4b2c ldr r3, [pc, #176] ; (510c <lv_obj_signal+0xec>)
505a: 4798 blx r3
lv_res_t res = LV_RES_OK;
505c: 2001 movs r0, #1
505e: e005 b.n 506c <lv_obj_signal+0x4c>
if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list;
5060: 7813 ldrb r3, [r2, #0]
5062: 2b00 cmp r3, #0
5064: d103 bne.n 506e <lv_obj_signal+0x4e>
5066: 3428 adds r4, #40 ; 0x28
5068: 6054 str r4, [r2, #4]
return LV_RES_OK;
506a: 2001 movs r0, #1
}
506c: bd10 pop {r4, pc}
else info->result = NULL;
506e: 2300 movs r3, #0
5070: 6053 str r3, [r2, #4]
return LV_RES_OK;
5072: 2001 movs r0, #1
5074: e7fa b.n 506c <lv_obj_signal+0x4c>
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
5076: 4926 ldr r1, [pc, #152] ; (5110 <lv_obj_signal+0xf0>)
5078: 0010 movs r0, r2
507a: 4b26 ldr r3, [pc, #152] ; (5114 <lv_obj_signal+0xf4>)
507c: 4798 blx r3
507e: e7f5 b.n 506c <lv_obj_signal+0x4c>
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
5080: 4b25 ldr r3, [pc, #148] ; (5118 <lv_obj_signal+0xf8>)
5082: 4798 blx r3
5084: 2301 movs r3, #1
5086: 4058 eors r0, r3
return LV_RES_OK;
5088: b2c0 uxtb r0, r0
508a: e7ef b.n 506c <lv_obj_signal+0x4c>
lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN);
508c: 2100 movs r1, #0
508e: 4b23 ldr r3, [pc, #140] ; (511c <lv_obj_signal+0xfc>)
5090: 4798 blx r3
obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d);
5092: 8e63 ldrh r3, [r4, #50] ; 0x32
5094: 1c1a adds r2, r3, #0
5096: b21b sxth r3, r3
5098: 4283 cmp r3, r0
509a: da00 bge.n 509e <lv_obj_signal+0x7e>
509c: 1c02 adds r2, r0, #0
509e: 8662 strh r2, [r4, #50] ; 0x32
lv_res_t res = LV_RES_OK;
50a0: 2001 movs r0, #1
50a2: e7e3 b.n 506c <lv_obj_signal+0x4c>
if(obj->realign.auto_realign) {
50a4: 2349 movs r3, #73 ; 0x49
50a6: 5cc3 ldrb r3, [r0, r3]
lv_res_t res = LV_RES_OK;
50a8: 2001 movs r0, #1
if(obj->realign.auto_realign) {
50aa: 07db lsls r3, r3, #31
50ac: d5de bpl.n 506c <lv_obj_signal+0x4c>
lv_obj_realign(obj);
50ae: 0020 movs r0, r4
50b0: 4b1b ldr r3, [pc, #108] ; (5120 <lv_obj_signal+0x100>)
50b2: 4798 blx r3
lv_res_t res = LV_RES_OK;
50b4: 2001 movs r0, #1
50b6: e7d9 b.n 506c <lv_obj_signal+0x4c>
lv_obj_refresh_ext_draw_pad(obj);
50b8: 4b1a ldr r3, [pc, #104] ; (5124 <lv_obj_signal+0x104>)
50ba: 4798 blx r3
lv_res_t res = LV_RES_OK;
50bc: 2001 movs r0, #1
50be: e7d5 b.n 506c <lv_obj_signal+0x4c>
lv_obj_add_state(obj, LV_STATE_PRESSED);
50c0: 3105 adds r1, #5
50c2: 4b19 ldr r3, [pc, #100] ; (5128 <lv_obj_signal+0x108>)
50c4: 4798 blx r3
lv_res_t res = LV_RES_OK;
50c6: 2001 movs r0, #1
50c8: e7d0 b.n 506c <lv_obj_signal+0x4c>
lv_obj_clear_state(obj, LV_STATE_PRESSED);
50ca: 2110 movs r1, #16
50cc: 4b17 ldr r3, [pc, #92] ; (512c <lv_obj_signal+0x10c>)
50ce: 4798 blx r3
lv_res_t res = LV_RES_OK;
50d0: 2001 movs r0, #1
50d2: e7cb b.n 506c <lv_obj_signal+0x4c>
if(lv_group_get_editing(lv_obj_get_group(obj))) {
50d4: 4b16 ldr r3, [pc, #88] ; (5130 <lv_obj_signal+0x110>)
50d6: 4798 blx r3
50d8: 4b16 ldr r3, [pc, #88] ; (5134 <lv_obj_signal+0x114>)
50da: 4798 blx r3
50dc: 2800 cmp r0, #0
50de: d005 beq.n 50ec <lv_obj_signal+0xcc>
lv_obj_add_state(obj, state);
50e0: 2106 movs r1, #6
50e2: 0020 movs r0, r4
50e4: 4b10 ldr r3, [pc, #64] ; (5128 <lv_obj_signal+0x108>)
50e6: 4798 blx r3
lv_res_t res = LV_RES_OK;
50e8: 2001 movs r0, #1
50ea: e7bf b.n 506c <lv_obj_signal+0x4c>
lv_obj_add_state(obj, LV_STATE_FOCUSED);
50ec: 2102 movs r1, #2
50ee: 0020 movs r0, r4
50f0: 4b0d ldr r3, [pc, #52] ; (5128 <lv_obj_signal+0x108>)
50f2: 4798 blx r3
lv_obj_clear_state(obj, LV_STATE_EDITED);
50f4: 2104 movs r1, #4
50f6: 0020 movs r0, r4
50f8: 4b0c ldr r3, [pc, #48] ; (512c <lv_obj_signal+0x10c>)
50fa: 4798 blx r3
lv_res_t res = LV_RES_OK;
50fc: 2001 movs r0, #1
50fe: e7b5 b.n 506c <lv_obj_signal+0x4c>
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
5100: 3911 subs r1, #17
5102: 4b0a ldr r3, [pc, #40] ; (512c <lv_obj_signal+0x10c>)
5104: 4798 blx r3
lv_res_t res = LV_RES_OK;
5106: 2001 movs r0, #1
5108: e7b0 b.n 506c <lv_obj_signal+0x4c>
510a: 46c0 nop ; (mov r8, r8)
510c: 00002625 .word 0x00002625
5110: 00025d8c .word 0x00025d8c
5114: 000046d9 .word 0x000046d9
5118: 000039c5 .word 0x000039c5
511c: 00004e15 .word 0x00004e15
5120: 00002f2d .word 0x00002f2d
5124: 0000214d .word 0x0000214d
5128: 000042c5 .word 0x000042c5
512c: 00004325 .word 0x00004325
5130: 0000441d .word 0x0000441d
5134: 00001c53 .word 0x00001c53
00005138 <lv_refr_get_top_obj>:
* @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)
{
5138: b5f0 push {r4, r5, r6, r7, lr}
513a: 46ce mov lr, r9
513c: b500 push {lr}
513e: b082 sub sp, #8
5140: 0004 movs r4, r0
5142: 9001 str r0, [sp, #4]
5144: 000d movs r5, r1
lv_obj_t * found_p = NULL;
/*If this object is fully cover the draw area check the children too */
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
5146: 3110 adds r1, #16
5148: 2200 movs r2, #0
514a: 4b1f ldr r3, [pc, #124] ; (51c8 <lv_refr_get_top_obj+0x90>)
514c: 4798 blx r3
514e: 2800 cmp r0, #0
5150: d027 beq.n 51a2 <lv_refr_get_top_obj+0x6a>
5152: 2334 movs r3, #52 ; 0x34
5154: 5ceb ldrb r3, [r5, r3]
5156: 06db lsls r3, r3, #27
5158: d425 bmi.n 51a6 <lv_refr_get_top_obj+0x6e>
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
515a: 6a2b ldr r3, [r5, #32]
515c: 2b00 cmp r3, #0
515e: d028 beq.n 51b2 <lv_refr_get_top_obj+0x7a>
5160: 2202 movs r2, #2
5162: 0021 movs r1, r4
5164: 0028 movs r0, r5
5166: 4798 blx r3
5168: 4681 mov r9, r0
LV_DESIGN_COVER_CHK) : LV_DESIGN_RES_NOT_COVER;
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
516a: 2803 cmp r0, #3
516c: d01d beq.n 51aa <lv_refr_get_top_obj+0x72>
lv_obj_t * i;
_LV_LL_READ(obj->child_ll, i) {
516e: 1d2e adds r6, r5, #4
5170: 0030 movs r0, r6
5172: 4b16 ldr r3, [pc, #88] ; (51cc <lv_refr_get_top_obj+0x94>)
5174: 4798 blx r3
5176: 1e04 subs r4, r0, #0
5178: d00b beq.n 5192 <lv_refr_get_top_obj+0x5a>
517a: 4f15 ldr r7, [pc, #84] ; (51d0 <lv_refr_get_top_obj+0x98>)
found_p = lv_refr_get_top_obj(area_p, i);
517c: 0021 movs r1, r4
517e: 9801 ldr r0, [sp, #4]
5180: f7ff ffda bl 5138 <lv_refr_get_top_obj>
/*If a children is ok then break*/
if(found_p != NULL) {
5184: 2800 cmp r0, #0
5186: d108 bne.n 519a <lv_refr_get_top_obj+0x62>
_LV_LL_READ(obj->child_ll, i) {
5188: 0021 movs r1, r4
518a: 0030 movs r0, r6
518c: 47b8 blx r7
518e: 1e04 subs r4, r0, #0
5190: d1f4 bne.n 517c <lv_refr_get_top_obj+0x44>
5192: 2000 movs r0, #0
}
}
/*If no better children use this object*/
if(found_p == NULL) {
if(design_res == LV_DESIGN_RES_COVER) {
5194: 464b mov r3, r9
5196: 2b01 cmp r3, #1
5198: d009 beq.n 51ae <lv_refr_get_top_obj+0x76>
}
}
}
return found_p;
}
519a: b002 add sp, #8
519c: bc04 pop {r2}
519e: 4691 mov r9, r2
51a0: bdf0 pop {r4, r5, r6, r7, pc}
lv_obj_t * found_p = NULL;
51a2: 2000 movs r0, #0
51a4: e7f9 b.n 519a <lv_refr_get_top_obj+0x62>
51a6: 2000 movs r0, #0
51a8: e7f7 b.n 519a <lv_refr_get_top_obj+0x62>
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
51aa: 2000 movs r0, #0
51ac: e7f5 b.n 519a <lv_refr_get_top_obj+0x62>
found_p = obj;
51ae: 0028 movs r0, r5
51b0: e7f3 b.n 519a <lv_refr_get_top_obj+0x62>
_LV_LL_READ(obj->child_ll, i) {
51b2: 1d2e adds r6, r5, #4
51b4: 0030 movs r0, r6
51b6: 4b05 ldr r3, [pc, #20] ; (51cc <lv_refr_get_top_obj+0x94>)
51b8: 4798 blx r3
51ba: 0004 movs r4, r0
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
51bc: 2302 movs r3, #2
51be: 4699 mov r9, r3
_LV_LL_READ(obj->child_ll, i) {
51c0: 2800 cmp r0, #0
51c2: d1da bne.n 517a <lv_refr_get_top_obj+0x42>
51c4: e7e9 b.n 519a <lv_refr_get_top_obj+0x62>
51c6: 46c0 nop ; (mov r8, r8)
51c8: 00011699 .word 0x00011699
51cc: 00011e85 .word 0x00011e85
51d0: 00011e9d .word 0x00011e9d
000051d4 <lv_refr_obj>:
* Refresh an object an all of its children. (Called recursively)
* @param obj pointer to an object to refresh
* @param mask_ori_p pointer to an area, the objects will be drawn only here
*/
static void lv_refr_obj(lv_obj_t * obj, const lv_area_t * mask_ori_p)
{
51d4: b5f0 push {r4, r5, r6, r7, lr}
51d6: 46d6 mov lr, sl
51d8: 464f mov r7, r9
51da: b580 push {r7, lr}
51dc: b08d sub sp, #52 ; 0x34
51de: 0007 movs r7, r0
51e0: 000d movs r5, r1
/*Do not refresh hidden objects*/
if(obj->hidden != 0) return;
51e2: 2334 movs r3, #52 ; 0x34
51e4: 5cc3 ldrb r3, [r0, r3]
51e6: 06db lsls r3, r3, #27
51e8: d504 bpl.n 51f4 <lv_refr_obj+0x20>
}
/* If all the children are redrawn make 'post draw' design */
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
}
}
51ea: b00d add sp, #52 ; 0x34
51ec: bc0c pop {r2, r3}
51ee: 4691 mov r9, r2
51f0: 469a mov sl, r3
51f2: bdf0 pop {r4, r5, r6, r7, pc}
lv_coord_t ext_size = obj->ext_draw_pad;
51f4: 2332 movs r3, #50 ; 0x32
51f6: 5ec6 ldrsh r6, [r0, r3]
lv_obj_get_coords(obj, &obj_area);
51f8: ac06 add r4, sp, #24
51fa: 0021 movs r1, r4
51fc: 4b2e ldr r3, [pc, #184] ; (52b8 <lv_refr_obj+0xe4>)
51fe: 4798 blx r3
obj_area.x1 -= ext_size;
5200: b2b3 uxth r3, r6
5202: 8822 ldrh r2, [r4, #0]
5204: 1ad2 subs r2, r2, r3
5206: 8022 strh r2, [r4, #0]
obj_area.y1 -= ext_size;
5208: 8862 ldrh r2, [r4, #2]
520a: 1ad2 subs r2, r2, r3
520c: 8062 strh r2, [r4, #2]
obj_area.x2 += ext_size;
520e: 88a2 ldrh r2, [r4, #4]
5210: 189a adds r2, r3, r2
5212: 80a2 strh r2, [r4, #4]
obj_area.y2 += ext_size;
5214: 88e2 ldrh r2, [r4, #6]
5216: 189b adds r3, r3, r2
5218: 80e3 strh r3, [r4, #6]
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
521a: 0022 movs r2, r4
521c: 0029 movs r1, r5
521e: a808 add r0, sp, #32
5220: 4b26 ldr r3, [pc, #152] ; (52bc <lv_refr_obj+0xe8>)
5222: 4798 blx r3
if(union_ok != false) {
5224: 2800 cmp r0, #0
5226: d0e0 beq.n 51ea <lv_refr_obj+0x16>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN);
5228: 6a3b ldr r3, [r7, #32]
522a: 2b00 cmp r3, #0
522c: d003 beq.n 5236 <lv_refr_obj+0x62>
522e: 2200 movs r2, #0
5230: a908 add r1, sp, #32
5232: 0038 movs r0, r7
5234: 4798 blx r3
lv_obj_get_coords(obj, &obj_area);
5236: a906 add r1, sp, #24
5238: 0038 movs r0, r7
523a: 4b1f ldr r3, [pc, #124] ; (52b8 <lv_refr_obj+0xe4>)
523c: 4798 blx r3
union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area);
523e: aa06 add r2, sp, #24
5240: 0029 movs r1, r5
5242: a80a add r0, sp, #40 ; 0x28
5244: 4b1d ldr r3, [pc, #116] ; (52bc <lv_refr_obj+0xe8>)
5246: 4798 blx r3
if(union_ok != false) {
5248: 2800 cmp r0, #0
524a: d107 bne.n 525c <lv_refr_obj+0x88>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
524c: 6a3b ldr r3, [r7, #32]
524e: 2b00 cmp r3, #0
5250: d0cb beq.n 51ea <lv_refr_obj+0x16>
5252: 2201 movs r2, #1
5254: a908 add r1, sp, #32
5256: 0038 movs r0, r7
5258: 4798 blx r3
525a: e7c6 b.n 51ea <lv_refr_obj+0x16>
_LV_LL_READ_BACK(obj->child_ll, child_p) {
525c: 1d3b adds r3, r7, #4
525e: 9301 str r3, [sp, #4]
5260: 0018 movs r0, r3
5262: 4b17 ldr r3, [pc, #92] ; (52c0 <lv_refr_obj+0xec>)
5264: 4798 blx r3
5266: 1e05 subs r5, r0, #0
5268: d0f0 beq.n 524c <lv_refr_obj+0x78>
lv_obj_get_coords(child_p, &child_area);
526a: 4b13 ldr r3, [pc, #76] ; (52b8 <lv_refr_obj+0xe4>)
526c: 469a mov sl, r3
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
526e: 4b13 ldr r3, [pc, #76] ; (52bc <lv_refr_obj+0xe8>)
5270: 4699 mov r9, r3
_LV_LL_READ_BACK(obj->child_ll, child_p) {
5272: 4e14 ldr r6, [pc, #80] ; (52c4 <lv_refr_obj+0xf0>)
5274: e004 b.n 5280 <lv_refr_obj+0xac>
5276: 0029 movs r1, r5
5278: 9801 ldr r0, [sp, #4]
527a: 47b0 blx r6
527c: 1e05 subs r5, r0, #0
527e: d0e5 beq.n 524c <lv_refr_obj+0x78>
lv_obj_get_coords(child_p, &child_area);
5280: ac04 add r4, sp, #16
5282: 0021 movs r1, r4
5284: 0028 movs r0, r5
5286: 47d0 blx sl
child_area.x1 -= ext_size;
5288: 8e6b ldrh r3, [r5, #50] ; 0x32
528a: 8822 ldrh r2, [r4, #0]
528c: 1ad2 subs r2, r2, r3
528e: 8022 strh r2, [r4, #0]
child_area.y1 -= ext_size;
5290: 8862 ldrh r2, [r4, #2]
5292: 1ad2 subs r2, r2, r3
5294: 8062 strh r2, [r4, #2]
child_area.x2 += ext_size;
5296: 88a2 ldrh r2, [r4, #4]
5298: 189a adds r2, r3, r2
529a: 80a2 strh r2, [r4, #4]
child_area.y2 += ext_size;
529c: 88e2 ldrh r2, [r4, #6]
529e: 189b adds r3, r3, r2
52a0: 80e3 strh r3, [r4, #6]
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
52a2: 0022 movs r2, r4
52a4: a90a add r1, sp, #40 ; 0x28
52a6: a802 add r0, sp, #8
52a8: 47c8 blx r9
if(union_ok) {
52aa: 2800 cmp r0, #0
52ac: d0e3 beq.n 5276 <lv_refr_obj+0xa2>
lv_refr_obj(child_p, &mask_child);
52ae: a902 add r1, sp, #8
52b0: 0028 movs r0, r5
52b2: f7ff ff8f bl 51d4 <lv_refr_obj>
52b6: e7de b.n 5276 <lv_refr_obj+0xa2>
52b8: 0000237d .word 0x0000237d
52bc: 0001140b .word 0x0001140b
52c0: 00011e91 .word 0x00011e91
52c4: 00011ec5 .word 0x00011ec5
000052c8 <lv_refr_obj_and_children>:
{
52c8: b5f0 push {r4, r5, r6, r7, lr}
52ca: 46d6 mov lr, sl
52cc: b500 push {lr}
52ce: b082 sub sp, #8
52d0: 1e04 subs r4, r0, #0
52d2: 9101 str r1, [sp, #4]
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
52d4: d00d beq.n 52f2 <lv_refr_obj_and_children+0x2a>
lv_refr_obj(top_p, mask_p);
52d6: 9901 ldr r1, [sp, #4]
52d8: 0020 movs r0, r4
52da: 4b1a ldr r3, [pc, #104] ; (5344 <lv_refr_obj_and_children+0x7c>)
52dc: 4798 blx r3
par = lv_obj_get_parent(top_p);
52de: 0020 movs r0, r4
52e0: 4b19 ldr r3, [pc, #100] ; (5348 <lv_refr_obj_and_children+0x80>)
52e2: 4798 blx r3
52e4: 1e05 subs r5, r0, #0
while(par != NULL) {
52e6: d00a beq.n 52fe <lv_refr_obj_and_children+0x36>
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
52e8: 4b18 ldr r3, [pc, #96] ; (534c <lv_refr_obj_and_children+0x84>)
52ea: 469a mov sl, r3
lv_refr_obj(i, mask_p);
52ec: 4e15 ldr r6, [pc, #84] ; (5344 <lv_refr_obj_and_children+0x7c>)
i = _lv_ll_get_prev(&(par->child_ll), i);
52ee: 001f movs r7, r3
52f0: e010 b.n 5314 <lv_refr_obj_and_children+0x4c>
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
52f2: 4b17 ldr r3, [pc, #92] ; (5350 <lv_refr_obj_and_children+0x88>)
52f4: 6818 ldr r0, [r3, #0]
52f6: 4b17 ldr r3, [pc, #92] ; (5354 <lv_refr_obj_and_children+0x8c>)
52f8: 4798 blx r3
52fa: 1e04 subs r4, r0, #0
if(top_p == NULL) return; /*Shouldn't happen*/
52fc: d1eb bne.n 52d6 <lv_refr_obj_and_children+0xe>
}
52fe: b002 add sp, #8
5300: bc04 pop {r2}
5302: 4692 mov sl, r2
5304: bdf0 pop {r4, r5, r6, r7, pc}
par = lv_obj_get_parent(par);
5306: 0028 movs r0, r5
5308: 4b0f ldr r3, [pc, #60] ; (5348 <lv_refr_obj_and_children+0x80>)
530a: 4798 blx r3
530c: 002c movs r4, r5
while(par != NULL) {
530e: 2800 cmp r0, #0
5310: d0f5 beq.n 52fe <lv_refr_obj_and_children+0x36>
par = lv_obj_get_parent(par);
5312: 0005 movs r5, r0
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
5314: 1d2b adds r3, r5, #4
5316: 9300 str r3, [sp, #0]
5318: 0021 movs r1, r4
531a: 0018 movs r0, r3
531c: 47d0 blx sl
531e: 1e04 subs r4, r0, #0
while(i != NULL) {
5320: d007 beq.n 5332 <lv_refr_obj_and_children+0x6a>
lv_refr_obj(i, mask_p);
5322: 9901 ldr r1, [sp, #4]
5324: 0020 movs r0, r4
5326: 47b0 blx r6
i = _lv_ll_get_prev(&(par->child_ll), i);
5328: 0021 movs r1, r4
532a: 9800 ldr r0, [sp, #0]
532c: 47b8 blx r7
532e: 1e04 subs r4, r0, #0
while(i != NULL) {
5330: d1f7 bne.n 5322 <lv_refr_obj_and_children+0x5a>
if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST);
5332: 6a2b ldr r3, [r5, #32]
5334: 2b00 cmp r3, #0
5336: d0e6 beq.n 5306 <lv_refr_obj_and_children+0x3e>
5338: 2201 movs r2, #1
533a: 9901 ldr r1, [sp, #4]
533c: 0028 movs r0, r5
533e: 4798 blx r3
5340: e7e1 b.n 5306 <lv_refr_obj_and_children+0x3e>
5342: 46c0 nop ; (mov r8, r8)
5344: 000051d5 .word 0x000051d5
5348: 000021a5 .word 0x000021a5
534c: 00011ec5 .word 0x00011ec5
5350: 200026f8 .word 0x200026f8
5354: 00001845 .word 0x00001845
00005358 <lv_refr_vdb_flush>:
/**
* Flush the content of the VDB
*/
static void lv_refr_vdb_flush(void)
{
5358: b570 push {r4, r5, r6, lr}
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
535a: 4d1c ldr r5, [pc, #112] ; (53cc <lv_refr_vdb_flush+0x74>)
535c: 6828 ldr r0, [r5, #0]
535e: 4b1c ldr r3, [pc, #112] ; (53d0 <lv_refr_vdb_flush+0x78>)
5360: 4798 blx r3
5362: 0004 movs r4, r0
/*In double buffered mode wait until the other buffer is flushed before flushing the current
* one*/
if(lv_disp_is_double_buf(disp_refr)) {
5364: 6828 ldr r0, [r5, #0]
5366: 4b1b ldr r3, [pc, #108] ; (53d4 <lv_refr_vdb_flush+0x7c>)
5368: 4798 blx r3
536a: 2800 cmp r0, #0
536c: d10d bne.n 538a <lv_refr_vdb_flush+0x32>
while(vdb->flushing) {
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
}
}
vdb->flushing = 1;
536e: 2301 movs r3, #1
5370: 61a3 str r3, [r4, #24]
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
5372: 4b16 ldr r3, [pc, #88] ; (53cc <lv_refr_vdb_flush+0x74>)
5374: 6818 ldr r0, [r3, #0]
5376: 6843 ldr r3, [r0, #4]
5378: 6a1a ldr r2, [r3, #32]
537a: 07d2 lsls r2, r2, #31
537c: d50f bpl.n 539e <lv_refr_vdb_flush+0x46>
537e: 6a1b ldr r3, [r3, #32]
5380: 079b lsls r3, r3, #30
5382: d50c bpl.n 539e <lv_refr_vdb_flush+0x46>
5384: 2301 movs r3, #1
5386: 61e3 str r3, [r4, #28]
5388: e00b b.n 53a2 <lv_refr_vdb_flush+0x4a>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
538a: 4d10 ldr r5, [pc, #64] ; (53cc <lv_refr_vdb_flush+0x74>)
538c: 6828 ldr r0, [r5, #0]
while(vdb->flushing) {
538e: 69a3 ldr r3, [r4, #24]
5390: 2b00 cmp r3, #0
5392: d0ec beq.n 536e <lv_refr_vdb_flush+0x16>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
5394: 69c3 ldr r3, [r0, #28]
5396: 2b00 cmp r3, #0
5398: d0f9 beq.n 538e <lv_refr_vdb_flush+0x36>
539a: 4798 blx r3
539c: e7f6 b.n 538c <lv_refr_vdb_flush+0x34>
else vdb->flushing_last = 0;
539e: 2300 movs r3, #0
53a0: 61e3 str r3, [r4, #28]
/*Flush the rendered content to the display*/
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
if(disp->driver.flush_cb) disp->driver.flush_cb(&disp->driver, &vdb->area, vdb->buf_act);
53a2: 68c3 ldr r3, [r0, #12]
53a4: 2b00 cmp r3, #0
53a6: d003 beq.n 53b0 <lv_refr_vdb_flush+0x58>
53a8: 0021 movs r1, r4
53aa: 3110 adds r1, #16
53ac: 68a2 ldr r2, [r4, #8]
53ae: 4798 blx r3
if(vdb->buf1 && vdb->buf2) {
53b0: 6823 ldr r3, [r4, #0]
53b2: 2b00 cmp r3, #0
53b4: d006 beq.n 53c4 <lv_refr_vdb_flush+0x6c>
53b6: 6862 ldr r2, [r4, #4]
53b8: 2a00 cmp r2, #0
53ba: d003 beq.n 53c4 <lv_refr_vdb_flush+0x6c>
if(vdb->buf_act == vdb->buf1)
53bc: 68a1 ldr r1, [r4, #8]
53be: 428b cmp r3, r1
53c0: d001 beq.n 53c6 <lv_refr_vdb_flush+0x6e>
vdb->buf_act = vdb->buf2;
else
vdb->buf_act = vdb->buf1;
53c2: 60a3 str r3, [r4, #8]
}
}
53c4: bd70 pop {r4, r5, r6, pc}
vdb->buf_act = vdb->buf2;
53c6: 60a2 str r2, [r4, #8]
53c8: e7fc b.n 53c4 <lv_refr_vdb_flush+0x6c>
53ca: 46c0 nop ; (mov r8, r8)
53cc: 200026f8 .word 0x200026f8
53d0: 00010e75 .word 0x00010e75
53d4: 00010e79 .word 0x00010e79
000053d8 <lv_refr_area_part>:
{
53d8: b570 push {r4, r5, r6, lr}
53da: b082 sub sp, #8
53dc: 0005 movs r5, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
53de: 4e1c ldr r6, [pc, #112] ; (5450 <lv_refr_area_part+0x78>)
53e0: 6830 ldr r0, [r6, #0]
53e2: 4b1c ldr r3, [pc, #112] ; (5454 <lv_refr_area_part+0x7c>)
53e4: 4798 blx r3
53e6: 0004 movs r4, r0
if(lv_disp_is_double_buf(disp_refr) == false) {
53e8: 6830 ldr r0, [r6, #0]
53ea: 4b1b ldr r3, [pc, #108] ; (5458 <lv_refr_area_part+0x80>)
53ec: 4798 blx r3
53ee: 2800 cmp r0, #0
53f0: d109 bne.n 5406 <lv_refr_area_part+0x2e>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
53f2: 4e17 ldr r6, [pc, #92] ; (5450 <lv_refr_area_part+0x78>)
53f4: 6830 ldr r0, [r6, #0]
while(vdb->flushing) {
53f6: 69a3 ldr r3, [r4, #24]
53f8: 2b00 cmp r3, #0
53fa: d004 beq.n 5406 <lv_refr_area_part+0x2e>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
53fc: 69c3 ldr r3, [r0, #28]
53fe: 2b00 cmp r3, #0
5400: d0f9 beq.n 53f6 <lv_refr_area_part+0x1e>
5402: 4798 blx r3
5404: e7f6 b.n 53f4 <lv_refr_area_part+0x1c>
_lv_area_intersect(&start_mask, area_p, &vdb->area);
5406: 0022 movs r2, r4
5408: 3210 adds r2, #16
540a: 0029 movs r1, r5
540c: 4668 mov r0, sp
540e: 4b13 ldr r3, [pc, #76] ; (545c <lv_refr_area_part+0x84>)
5410: 4798 blx r3
top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr));
5412: 4c0f ldr r4, [pc, #60] ; (5450 <lv_refr_area_part+0x78>)
5414: 6820 ldr r0, [r4, #0]
5416: 4b12 ldr r3, [pc, #72] ; (5460 <lv_refr_area_part+0x88>)
5418: 4798 blx r3
541a: 0001 movs r1, r0
541c: 4668 mov r0, sp
541e: 4b11 ldr r3, [pc, #68] ; (5464 <lv_refr_area_part+0x8c>)
5420: 4798 blx r3
lv_refr_obj_and_children(top_p, &start_mask);
5422: 4669 mov r1, sp
5424: 4d10 ldr r5, [pc, #64] ; (5468 <lv_refr_area_part+0x90>)
5426: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask);
5428: 6820 ldr r0, [r4, #0]
542a: 4b10 ldr r3, [pc, #64] ; (546c <lv_refr_area_part+0x94>)
542c: 4798 blx r3
542e: 4669 mov r1, sp
5430: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask);
5432: 6820 ldr r0, [r4, #0]
5434: 4b0e ldr r3, [pc, #56] ; (5470 <lv_refr_area_part+0x98>)
5436: 4798 blx r3
5438: 4669 mov r1, sp
543a: 47a8 blx r5
if(lv_disp_is_true_double_buf(disp_refr) == false) {
543c: 6820 ldr r0, [r4, #0]
543e: 4b0d ldr r3, [pc, #52] ; (5474 <lv_refr_area_part+0x9c>)
5440: 4798 blx r3
5442: 2800 cmp r0, #0
5444: d001 beq.n 544a <lv_refr_area_part+0x72>
}
5446: b002 add sp, #8
5448: bd70 pop {r4, r5, r6, pc}
lv_refr_vdb_flush();
544a: 4b0b ldr r3, [pc, #44] ; (5478 <lv_refr_area_part+0xa0>)
544c: 4798 blx r3
}
544e: e7fa b.n 5446 <lv_refr_area_part+0x6e>
5450: 200026f8 .word 0x200026f8
5454: 00010e75 .word 0x00010e75
5458: 00010e79 .word 0x00010e79
545c: 0001140b .word 0x0001140b
5460: 00001845 .word 0x00001845
5464: 00005139 .word 0x00005139
5468: 000052c9 .word 0x000052c9
546c: 00001885 .word 0x00001885
5470: 000018c5 .word 0x000018c5
5474: 00010e91 .word 0x00010e91
5478: 00005359 .word 0x00005359
0000547c <_lv_refr_init>:
}
547c: 4770 bx lr
...
00005480 <_lv_inv_area>:
{
5480: b5f0 push {r4, r5, r6, r7, lr}
5482: b085 sub sp, #20
5484: 0005 movs r5, r0
5486: 000e movs r6, r1
if(!disp) disp = lv_disp_get_default();
5488: 2800 cmp r0, #0
548a: d057 beq.n 553c <_lv_inv_area+0xbc>
if(area_p == NULL) {
548c: 2e00 cmp r6, #0
548e: d05a beq.n 5546 <_lv_inv_area+0xc6>
scr_area.x1 = 0;
5490: ac02 add r4, sp, #8
5492: 2300 movs r3, #0
5494: 8023 strh r3, [r4, #0]
scr_area.y1 = 0;
5496: 8063 strh r3, [r4, #2]
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
5498: 0028 movs r0, r5
549a: 4b37 ldr r3, [pc, #220] ; (5578 <_lv_inv_area+0xf8>)
549c: 4798 blx r3
549e: 3801 subs r0, #1
54a0: 80a0 strh r0, [r4, #4]
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
54a2: 0028 movs r0, r5
54a4: 4b35 ldr r3, [pc, #212] ; (557c <_lv_inv_area+0xfc>)
54a6: 4798 blx r3
54a8: 3801 subs r0, #1
54aa: 80e0 strh r0, [r4, #6]
suc = _lv_area_intersect(&com_area, area_p, &scr_area);
54ac: 0022 movs r2, r4
54ae: 0031 movs r1, r6
54b0: 4668 mov r0, sp
54b2: 4b33 ldr r3, [pc, #204] ; (5580 <_lv_inv_area+0x100>)
54b4: 4798 blx r3
if(suc != false) {
54b6: 2800 cmp r0, #0
54b8: d04b beq.n 5552 <_lv_inv_area+0xd2>
if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area);
54ba: 692b ldr r3, [r5, #16]
54bc: 2b00 cmp r3, #0
54be: d002 beq.n 54c6 <_lv_inv_area+0x46>
54c0: 4669 mov r1, sp
54c2: 0028 movs r0, r5
54c4: 4798 blx r3
for(i = 0; i < disp->inv_p; i++) {
54c6: 23b4 movs r3, #180 ; 0xb4
54c8: 005b lsls r3, r3, #1
54ca: 5aeb ldrh r3, [r5, r3]
54cc: 059b lsls r3, r3, #22
54ce: 0d9b lsrs r3, r3, #22
54d0: 2b00 cmp r3, #0
54d2: dd14 ble.n 54fe <_lv_inv_area+0x7e>
54d4: 2100 movs r1, #0
54d6: 2400 movs r4, #0
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
54d8: 4e2a ldr r6, [pc, #168] ; (5584 <_lv_inv_area+0x104>)
for(i = 0; i < disp->inv_p; i++) {
54da: 27b4 movs r7, #180 ; 0xb4
54dc: 007f lsls r7, r7, #1
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
54de: 3109 adds r1, #9
54e0: 00c9 lsls r1, r1, #3
54e2: 1869 adds r1, r5, r1
54e4: 2200 movs r2, #0
54e6: 4668 mov r0, sp
54e8: 47b0 blx r6
54ea: 2800 cmp r0, #0
54ec: d131 bne.n 5552 <_lv_inv_area+0xd2>
for(i = 0; i < disp->inv_p; i++) {
54ee: 3401 adds r4, #1
54f0: b2a4 uxth r4, r4
54f2: 0021 movs r1, r4
54f4: 5beb ldrh r3, [r5, r7]
54f6: 059b lsls r3, r3, #22
54f8: 0d9b lsrs r3, r3, #22
54fa: 429c cmp r4, r3
54fc: dbef blt.n 54de <_lv_inv_area+0x5e>
if(disp->inv_p < LV_INV_BUF_SIZE) {
54fe: 2b1f cmp r3, #31
5500: dc29 bgt.n 5556 <_lv_inv_area+0xd6>
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
5502: 3309 adds r3, #9
5504: 00db lsls r3, r3, #3
5506: 18eb adds r3, r5, r3
5508: 2200 movs r2, #0
*d8 = *s8;
550a: 4669 mov r1, sp
550c: 5c51 ldrb r1, [r2, r1]
550e: 5499 strb r1, [r3, r2]
5510: 3201 adds r2, #1
while(len) {
5512: 2a08 cmp r2, #8
5514: d1f9 bne.n 550a <_lv_inv_area+0x8a>
disp->inv_p++;
5516: 21b4 movs r1, #180 ; 0xb4
5518: 0049 lsls r1, r1, #1
551a: 5a6b ldrh r3, [r5, r1]
551c: 059a lsls r2, r3, #22
551e: 2080 movs r0, #128 ; 0x80
5520: 03c0 lsls r0, r0, #15
5522: 4684 mov ip, r0
5524: 4462 add r2, ip
5526: 0d92 lsrs r2, r2, #22
5528: 0a9b lsrs r3, r3, #10
552a: 029b lsls r3, r3, #10
552c: 4313 orrs r3, r2
552e: 526b strh r3, [r5, r1]
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
5530: 6ae8 ldr r0, [r5, #44] ; 0x2c
5532: 3966 subs r1, #102 ; 0x66
5534: 39ff subs r1, #255 ; 0xff
5536: 4b14 ldr r3, [pc, #80] ; (5588 <_lv_inv_area+0x108>)
5538: 4798 blx r3
553a: e00a b.n 5552 <_lv_inv_area+0xd2>
if(!disp) disp = lv_disp_get_default();
553c: 4b13 ldr r3, [pc, #76] ; (558c <_lv_inv_area+0x10c>)
553e: 4798 blx r3
5540: 1e05 subs r5, r0, #0
if(!disp) return;
5542: d006 beq.n 5552 <_lv_inv_area+0xd2>
5544: e7a2 b.n 548c <_lv_inv_area+0xc>
disp->inv_p = 0;
5546: 22b4 movs r2, #180 ; 0xb4
5548: 0052 lsls r2, r2, #1
554a: 5aab ldrh r3, [r5, r2]
554c: 0a9b lsrs r3, r3, #10
554e: 029b lsls r3, r3, #10
5550: 52ab strh r3, [r5, r2]
}
5552: b005 add sp, #20
5554: bdf0 pop {r4, r5, r6, r7, pc}
disp->inv_p = 0;
5556: 22b4 movs r2, #180 ; 0xb4
5558: 0052 lsls r2, r2, #1
555a: 5aab ldrh r3, [r5, r2]
555c: 0a9b lsrs r3, r3, #10
555e: 029b lsls r3, r3, #10
5560: 52ab strh r3, [r5, r2]
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
5562: 0028 movs r0, r5
5564: 3048 adds r0, #72 ; 0x48
5566: 2300 movs r3, #0
*d8 = *s8;
5568: a902 add r1, sp, #8
556a: 5c5a ldrb r2, [r3, r1]
556c: 54c2 strb r2, [r0, r3]
556e: 3301 adds r3, #1
while(len) {
5570: 2b08 cmp r3, #8
5572: d1fa bne.n 556a <_lv_inv_area+0xea>
5574: e7cf b.n 5516 <_lv_inv_area+0x96>
5576: 46c0 nop ; (mov r8, r8)
5578: 00010d81 .word 0x00010d81
557c: 00010da9 .word 0x00010da9
5580: 0001140b .word 0x0001140b
5584: 00011699 .word 0x00011699
5588: 0001388d .word 0x0001388d
558c: 00010d75 .word 0x00010d75
00005590 <_lv_refr_get_disp_refreshing>:
return disp_refr;
5590: 4b01 ldr r3, [pc, #4] ; (5598 <_lv_refr_get_disp_refreshing+0x8>)
5592: 6818 ldr r0, [r3, #0]
}
5594: 4770 bx lr
5596: 46c0 nop ; (mov r8, r8)
5598: 200026f8 .word 0x200026f8
0000559c <_lv_disp_refr_task>:
{
559c: b5f0 push {r4, r5, r6, r7, lr}
559e: 46de mov lr, fp
55a0: 4657 mov r7, sl
55a2: 464e mov r6, r9
55a4: 4645 mov r5, r8
55a6: b5e0 push {r5, r6, r7, lr}
55a8: b08d sub sp, #52 ; 0x34
55aa: 0005 movs r5, r0
uint32_t start = lv_tick_get();
55ac: 4bd0 ldr r3, [pc, #832] ; (58f0 <_lv_disp_refr_task+0x354>)
55ae: 4798 blx r3
55b0: 9009 str r0, [sp, #36] ; 0x24
disp_refr = task->user_data;
55b2: 4cd0 ldr r4, [pc, #832] ; (58f4 <_lv_disp_refr_task+0x358>)
55b4: 68eb ldr r3, [r5, #12]
55b6: 6023 str r3, [r4, #0]
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
55b8: 2100 movs r1, #0
55ba: 0028 movs r0, r5
55bc: 4bce ldr r3, [pc, #824] ; (58f8 <_lv_disp_refr_task+0x35c>)
55be: 4798 blx r3
if(disp_refr->act_scr == NULL) {
55c0: 6820 ldr r0, [r4, #0]
55c2: 6bc3 ldr r3, [r0, #60] ; 0x3c
55c4: 2b00 cmp r3, #0
55c6: d00e beq.n 55e6 <_lv_disp_refr_task+0x4a>
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
55c8: 23b4 movs r3, #180 ; 0xb4
55ca: 005b lsls r3, r3, #1
55cc: 5ac3 ldrh r3, [r0, r3]
55ce: 059b lsls r3, r3, #22
55d0: 2748 movs r7, #72 ; 0x48
55d2: 2600 movs r6, #0
55d4: 2b00 cmp r3, #0
55d6: d100 bne.n 55da <_lv_disp_refr_task+0x3e>
55d8: e29e b.n 5b18 <_lv_disp_refr_task+0x57c>
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
55da: 4bc6 ldr r3, [pc, #792] ; (58f4 <_lv_disp_refr_task+0x358>)
55dc: 4698 mov r8, r3
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
55de: 4bc7 ldr r3, [pc, #796] ; (58fc <_lv_disp_refr_task+0x360>)
55e0: 469a mov sl, r3
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
55e2: 46c3 mov fp, r8
55e4: e056 b.n 5694 <_lv_disp_refr_task+0xf8>
disp_refr->inv_p = 0;
55e6: 22b4 movs r2, #180 ; 0xb4
55e8: 0052 lsls r2, r2, #1
55ea: 5a83 ldrh r3, [r0, r2]
55ec: 0a9b lsrs r3, r3, #10
55ee: 029b lsls r3, r3, #10
55f0: 5283 strh r3, [r0, r2]
return;
55f2: e287 b.n 5b04 <_lv_disp_refr_task+0x568>
disp_refr->inv_area_joined[join_from] = 1;
55f4: 192d adds r5, r5, r4
55f6: 3549 adds r5, #73 ; 0x49
55f8: 35ff adds r5, #255 ; 0xff
55fa: 3b07 subs r3, #7
55fc: 702b strb r3, [r5, #0]
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
55fe: 3401 adds r4, #1
5600: 4bbc ldr r3, [pc, #752] ; (58f4 <_lv_disp_refr_task+0x358>)
5602: 6818 ldr r0, [r3, #0]
5604: 23b4 movs r3, #180 ; 0xb4
5606: 005b lsls r3, r3, #1
5608: 5ac3 ldrh r3, [r0, r3]
560a: 059b lsls r3, r3, #22
560c: 0d9b lsrs r3, r3, #22
560e: 429c cmp r4, r3
5610: d235 bcs.n 567e <_lv_disp_refr_task+0xe2>
if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) {
5612: 1903 adds r3, r0, r4
5614: 3349 adds r3, #73 ; 0x49
5616: 33ff adds r3, #255 ; 0xff
5618: 781b ldrb r3, [r3, #0]
561a: 2b00 cmp r3, #0
561c: d1ef bne.n 55fe <_lv_disp_refr_task+0x62>
561e: 42a6 cmp r6, r4
5620: d0ed beq.n 55fe <_lv_disp_refr_task+0x62>
5622: 0025 movs r5, r4
5624: 3509 adds r5, #9
5626: 00ed lsls r5, r5, #3
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
5628: 1941 adds r1, r0, r5
562a: 19c0 adds r0, r0, r7
562c: 47d0 blx sl
562e: 2800 cmp r0, #0
5630: d0e5 beq.n 55fe <_lv_disp_refr_task+0x62>
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
5632: 465b mov r3, fp
5634: 6819 ldr r1, [r3, #0]
5636: 194a adds r2, r1, r5
5638: 19c9 adds r1, r1, r7
563a: a80a add r0, sp, #40 ; 0x28
563c: 4bb0 ldr r3, [pc, #704] ; (5900 <_lv_disp_refr_task+0x364>)
563e: 4798 blx r3
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
5640: a80a add r0, sp, #40 ; 0x28
5642: 4bb0 ldr r3, [pc, #704] ; (5904 <_lv_disp_refr_task+0x368>)
5644: 4699 mov r9, r3
5646: 4798 blx r3
5648: 9003 str r0, [sp, #12]
564a: 465b mov r3, fp
564c: 681b ldr r3, [r3, #0]
564e: 19d8 adds r0, r3, r7
5650: 47c8 blx r9
5652: 9004 str r0, [sp, #16]
lv_area_get_size(&disp_refr->inv_areas[join_from]))) {
5654: 465b mov r3, fp
5656: 681b ldr r3, [r3, #0]
5658: 1958 adds r0, r3, r5
565a: 47c8 blx r9
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
565c: 9b04 ldr r3, [sp, #16]
565e: 469c mov ip, r3
5660: 4460 add r0, ip
5662: 9b03 ldr r3, [sp, #12]
5664: 4283 cmp r3, r0
5666: d2ca bcs.n 55fe <_lv_disp_refr_task+0x62>
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
5668: 4ba2 ldr r3, [pc, #648] ; (58f4 <_lv_disp_refr_task+0x358>)
566a: 681d ldr r5, [r3, #0]
566c: 19e8 adds r0, r5, r7
566e: 2300 movs r3, #0
*d8 = *s8;
5670: a90a add r1, sp, #40 ; 0x28
5672: 5c5a ldrb r2, [r3, r1]
5674: 54c2 strb r2, [r0, r3]
5676: 3301 adds r3, #1
while(len) {
5678: 2b08 cmp r3, #8
567a: d1fa bne.n 5672 <_lv_disp_refr_task+0xd6>
567c: e7ba b.n 55f4 <_lv_disp_refr_task+0x58>
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
567e: 3601 adds r6, #1
5680: 4b9c ldr r3, [pc, #624] ; (58f4 <_lv_disp_refr_task+0x358>)
5682: 6818 ldr r0, [r3, #0]
5684: 23b4 movs r3, #180 ; 0xb4
5686: 005b lsls r3, r3, #1
5688: 5ac3 ldrh r3, [r0, r3]
568a: 059b lsls r3, r3, #22
568c: 0d9b lsrs r3, r3, #22
568e: 3708 adds r7, #8
5690: 429e cmp r6, r3
5692: d20f bcs.n 56b4 <_lv_disp_refr_task+0x118>
if(disp_refr->inv_area_joined[join_in] != 0) continue;
5694: 1980 adds r0, r0, r6
5696: 3049 adds r0, #73 ; 0x49
5698: 30ff adds r0, #255 ; 0xff
569a: 7803 ldrb r3, [r0, #0]
569c: 2b00 cmp r3, #0
569e: d1ee bne.n 567e <_lv_disp_refr_task+0xe2>
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
56a0: 4643 mov r3, r8
56a2: 6818 ldr r0, [r3, #0]
56a4: 23b4 movs r3, #180 ; 0xb4
56a6: 005b lsls r3, r3, #1
56a8: 5ac3 ldrh r3, [r0, r3]
56aa: 059b lsls r3, r3, #22
56ac: d100 bne.n 56b0 <_lv_disp_refr_task+0x114>
56ae: e215 b.n 5adc <_lv_disp_refr_task+0x540>
56b0: 2400 movs r4, #0
56b2: e7ae b.n 5612 <_lv_disp_refr_task+0x76>
px_num = 0;
56b4: 2100 movs r1, #0
56b6: 4a94 ldr r2, [pc, #592] ; (5908 <_lv_disp_refr_task+0x36c>)
56b8: 6011 str r1, [r2, #0]
if(disp_refr->inv_p == 0) return;
56ba: 22b4 movs r2, #180 ; 0xb4
56bc: 0052 lsls r2, r2, #1
56be: 5a82 ldrh r2, [r0, r2]
56c0: 0592 lsls r2, r2, #22
56c2: d100 bne.n 56c6 <_lv_disp_refr_task+0x12a>
56c4: e212 b.n 5aec <_lv_disp_refr_task+0x550>
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
56c6: 001a movs r2, r3
56c8: 3a01 subs r2, #1
56ca: 9207 str r2, [sp, #28]
56cc: d42d bmi.n 572a <_lv_disp_refr_task+0x18e>
if(disp_refr->inv_area_joined[i] == 0) {
56ce: 9907 ldr r1, [sp, #28]
56d0: 1842 adds r2, r0, r1
56d2: 3249 adds r2, #73 ; 0x49
56d4: 32ff adds r2, #255 ; 0xff
56d6: 7812 ldrb r2, [r2, #0]
56d8: 2a00 cmp r2, #0
56da: d00d beq.n 56f8 <_lv_disp_refr_task+0x15c>
56dc: 3347 adds r3, #71 ; 0x47
56de: 33ff adds r3, #255 ; 0xff
56e0: 18c3 adds r3, r0, r3
56e2: 000a movs r2, r1
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
56e4: 3a01 subs r2, #1
56e6: d305 bcc.n 56f4 <_lv_disp_refr_task+0x158>
56e8: 3b01 subs r3, #1
if(disp_refr->inv_area_joined[i] == 0) {
56ea: 7859 ldrb r1, [r3, #1]
56ec: 2900 cmp r1, #0
56ee: d1f9 bne.n 56e4 <_lv_disp_refr_task+0x148>
56f0: 9207 str r2, [sp, #28]
56f2: e001 b.n 56f8 <_lv_disp_refr_task+0x15c>
int32_t last_i = 0;
56f4: 2300 movs r3, #0
56f6: 9307 str r3, [sp, #28]
disp_refr->driver.buffer->last_area = 0;
56f8: 6841 ldr r1, [r0, #4]
56fa: 2320 movs r3, #32
56fc: 5cca ldrb r2, [r1, r3]
56fe: 2401 movs r4, #1
5700: 43a2 bics r2, r4
5702: 54ca strb r2, [r1, r3]
disp_refr->driver.buffer->last_part = 0;
5704: 6841 ldr r1, [r0, #4]
5706: 5cca ldrb r2, [r1, r3]
5708: 2002 movs r0, #2
570a: 4382 bics r2, r0
570c: 54ca strb r2, [r1, r3]
for(i = 0; i < disp_refr->inv_p; i++) {
570e: 4b79 ldr r3, [pc, #484] ; (58f4 <_lv_disp_refr_task+0x358>)
5710: 681c ldr r4, [r3, #0]
5712: 23b4 movs r3, #180 ; 0xb4
5714: 005b lsls r3, r3, #1
5716: 5ae3 ldrh r3, [r4, r3]
5718: 059b lsls r3, r3, #22
571a: d100 bne.n 571e <_lv_disp_refr_task+0x182>
571c: e1e6 b.n 5aec <_lv_disp_refr_task+0x550>
571e: 2348 movs r3, #72 ; 0x48
5720: 9306 str r3, [sp, #24]
5722: 2300 movs r3, #0
5724: 9304 str r3, [sp, #16]
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5726: 0027 movs r7, r4
5728: e045 b.n 57b6 <_lv_disp_refr_task+0x21a>
int32_t last_i = 0;
572a: 2300 movs r3, #0
572c: 9307 str r3, [sp, #28]
572e: e7e3 b.n 56f8 <_lv_disp_refr_task+0x15c>
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
5730: 6879 ldr r1, [r7, #4]
5732: 2220 movs r2, #32
5734: 5c8b ldrb r3, [r1, r2]
5736: 2001 movs r0, #1
5738: 4303 orrs r3, r0
573a: 548b strb r3, [r1, r2]
573c: e046 b.n 57cc <_lv_disp_refr_task+0x230>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
573e: 4c6d ldr r4, [pc, #436] ; (58f4 <_lv_disp_refr_task+0x358>)
5740: 6820 ldr r0, [r4, #0]
5742: 4b72 ldr r3, [pc, #456] ; (590c <_lv_disp_refr_task+0x370>)
5744: 4798 blx r3
5746: 0005 movs r5, r0
vdb->area.x1 = 0;
5748: 2600 movs r6, #0
574a: 8206 strh r6, [r0, #16]
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
574c: 6820 ldr r0, [r4, #0]
574e: 4b70 ldr r3, [pc, #448] ; (5910 <_lv_disp_refr_task+0x374>)
5750: 4798 blx r3
5752: 3801 subs r0, #1
5754: 82a8 strh r0, [r5, #20]
vdb->area.y1 = 0;
5756: 826e strh r6, [r5, #18]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
5758: 6820 ldr r0, [r4, #0]
575a: 4b6e ldr r3, [pc, #440] ; (5914 <_lv_disp_refr_task+0x378>)
575c: 4798 blx r3
575e: 3801 subs r0, #1
5760: 82e8 strh r0, [r5, #22]
disp_refr->driver.buffer->last_part = 1;
5762: 6823 ldr r3, [r4, #0]
5764: 6859 ldr r1, [r3, #4]
5766: 2220 movs r2, #32
5768: 5c8b ldrb r3, [r1, r2]
576a: 2002 movs r0, #2
576c: 4303 orrs r3, r0
576e: 548b strb r3, [r1, r2]
lv_refr_area_part(area_p);
5770: 9803 ldr r0, [sp, #12]
5772: 4b69 ldr r3, [pc, #420] ; (5918 <_lv_disp_refr_task+0x37c>)
5774: 4798 blx r3
if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]);
5776: 4b5f ldr r3, [pc, #380] ; (58f4 <_lv_disp_refr_task+0x358>)
5778: 6818 ldr r0, [r3, #0]
577a: 6983 ldr r3, [r0, #24]
577c: 2b00 cmp r3, #0
577e: d009 beq.n 5794 <_lv_disp_refr_task+0x1f8>
5780: 9b06 ldr r3, [sp, #24]
5782: 469c mov ip, r3
5784: 4460 add r0, ip
5786: 4b5f ldr r3, [pc, #380] ; (5904 <_lv_disp_refr_task+0x368>)
5788: 4798 blx r3
578a: 4b5f ldr r3, [pc, #380] ; (5908 <_lv_disp_refr_task+0x36c>)
578c: 681a ldr r2, [r3, #0]
578e: 4694 mov ip, r2
5790: 4460 add r0, ip
5792: 6018 str r0, [r3, #0]
for(i = 0; i < disp_refr->inv_p; i++) {
5794: 9b04 ldr r3, [sp, #16]
5796: 3301 adds r3, #1
5798: 001a movs r2, r3
579a: 9304 str r3, [sp, #16]
579c: 4b55 ldr r3, [pc, #340] ; (58f4 <_lv_disp_refr_task+0x358>)
579e: 681f ldr r7, [r3, #0]
57a0: 9b06 ldr r3, [sp, #24]
57a2: 3308 adds r3, #8
57a4: 9306 str r3, [sp, #24]
57a6: 23b4 movs r3, #180 ; 0xb4
57a8: 005b lsls r3, r3, #1
57aa: 5afb ldrh r3, [r7, r3]
57ac: 059b lsls r3, r3, #22
57ae: 0d9b lsrs r3, r3, #22
57b0: 429a cmp r2, r3
57b2: db00 blt.n 57b6 <_lv_disp_refr_task+0x21a>
57b4: e19a b.n 5aec <_lv_disp_refr_task+0x550>
if(disp_refr->inv_area_joined[i] == 0) {
57b6: 9a04 ldr r2, [sp, #16]
57b8: 18bb adds r3, r7, r2
57ba: 3349 adds r3, #73 ; 0x49
57bc: 33ff adds r3, #255 ; 0xff
57be: 781b ldrb r3, [r3, #0]
57c0: 2b00 cmp r3, #0
57c2: d1e7 bne.n 5794 <_lv_disp_refr_task+0x1f8>
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
57c4: 9b07 ldr r3, [sp, #28]
57c6: 0019 movs r1, r3
57c8: 4291 cmp r1, r2
57ca: d0b1 beq.n 5730 <_lv_disp_refr_task+0x194>
disp_refr->driver.buffer->last_part = 0;
57cc: 6879 ldr r1, [r7, #4]
57ce: 2220 movs r2, #32
57d0: 5c8b ldrb r3, [r1, r2]
57d2: 2002 movs r0, #2
57d4: 4383 bics r3, r0
57d6: 548b strb r3, [r1, r2]
lv_refr_area(&disp_refr->inv_areas[i]);
57d8: 9b06 ldr r3, [sp, #24]
57da: 469c mov ip, r3
57dc: 44bc add ip, r7
57de: 4663 mov r3, ip
57e0: 9303 str r3, [sp, #12]
if(lv_disp_is_true_double_buf(disp_refr)) {
57e2: 0038 movs r0, r7
57e4: 4b4d ldr r3, [pc, #308] ; (591c <_lv_disp_refr_task+0x380>)
57e6: 4798 blx r3
57e8: 2800 cmp r0, #0
57ea: d1a8 bne.n 573e <_lv_disp_refr_task+0x1a2>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
57ec: 4b41 ldr r3, [pc, #260] ; (58f4 <_lv_disp_refr_task+0x358>)
57ee: 469a mov sl, r3
57f0: 6818 ldr r0, [r3, #0]
57f2: 4b46 ldr r3, [pc, #280] ; (590c <_lv_disp_refr_task+0x370>)
57f4: 4798 blx r3
57f6: 0006 movs r6, r0
57f8: 9b04 ldr r3, [sp, #16]
57fa: 00db lsls r3, r3, #3
57fc: 18ff adds r7, r7, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
57fe: 234c movs r3, #76 ; 0x4c
5800: 5afc ldrh r4, [r7, r3]
5802: 3401 adds r4, #1
5804: 3b04 subs r3, #4
5806: 5afb ldrh r3, [r7, r3]
5808: 1ae4 subs r4, r4, r3
580a: b223 sxth r3, r4
580c: 4698 mov r8, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
580e: 234e movs r3, #78 ; 0x4e
5810: 5efc ldrsh r4, [r7, r3]
5812: 1c65 adds r5, r4, #1
5814: 234a movs r3, #74 ; 0x4a
5816: 5afb ldrh r3, [r7, r3]
5818: 1aed subs r5, r5, r3
581a: b22d sxth r5, r5
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
581c: 4653 mov r3, sl
581e: 6818 ldr r0, [r3, #0]
5820: 4b3c ldr r3, [pc, #240] ; (5914 <_lv_disp_refr_task+0x378>)
5822: 4798 blx r3
lv_coord_t y2 =
5824: 4284 cmp r4, r0
5826: da3c bge.n 58a2 <_lv_disp_refr_task+0x306>
5828: 234e movs r3, #78 ; 0x4e
582a: 5efb ldrsh r3, [r7, r3]
582c: 4699 mov r9, r3
int32_t max_row = (uint32_t)vdb->size / w;
582e: 4641 mov r1, r8
5830: 68f0 ldr r0, [r6, #12]
5832: 4b3b ldr r3, [pc, #236] ; (5920 <_lv_disp_refr_task+0x384>)
5834: 4798 blx r3
5836: 46a8 mov r8, r5
5838: 4285 cmp r5, r0
583a: dd00 ble.n 583e <_lv_disp_refr_task+0x2a2>
583c: 4680 mov r8, r0
if(disp_refr->driver.rounder_cb) {
583e: 4b2d ldr r3, [pc, #180] ; (58f4 <_lv_disp_refr_task+0x358>)
5840: 681b ldr r3, [r3, #0]
5842: 691b ldr r3, [r3, #16]
5844: 2b00 cmp r3, #0
5846: d03d beq.n 58c4 <_lv_disp_refr_task+0x328>
tmp.x1 = 0;
5848: ab0a add r3, sp, #40 ; 0x28
584a: 2200 movs r2, #0
584c: 801a strh r2, [r3, #0]
tmp.x2 = 0;
584e: 809a strh r2, [r3, #4]
tmp.y1 = 0;
5850: 805a strh r2, [r3, #2]
lv_coord_t h_tmp = max_row;
5852: 4643 mov r3, r8
5854: b21b sxth r3, r3
5856: 469a mov sl, r3
tmp.y2 = h_tmp - 1;
5858: ad0a add r5, sp, #40 ; 0x28
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
585a: 4b26 ldr r3, [pc, #152] ; (58f4 <_lv_disp_refr_task+0x358>)
585c: 469b mov fp, r3
585e: 4653 mov r3, sl
5860: 46b2 mov sl, r6
5862: 4642 mov r2, r8
5864: 46b8 mov r8, r7
5866: 0017 movs r7, r2
5868: 001e movs r6, r3
586a: 1e74 subs r4, r6, #1
586c: b224 sxth r4, r4
tmp.y2 = h_tmp - 1;
586e: 80ec strh r4, [r5, #6]
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
5870: 465b mov r3, fp
5872: 6818 ldr r0, [r3, #0]
5874: 6903 ldr r3, [r0, #16]
5876: 0029 movs r1, r5
5878: 4798 blx r3
587a: 2306 movs r3, #6
587c: 5ee9 ldrsh r1, [r5, r3]
587e: 1c4b adds r3, r1, #1
5880: 886a ldrh r2, [r5, #2]
5882: 1a9b subs r3, r3, r2
if(lv_area_get_height(&tmp) <= max_row) break;
5884: b21b sxth r3, r3
5886: 429f cmp r7, r3
5888: da13 bge.n 58b2 <_lv_disp_refr_task+0x316>
h_tmp--;
588a: 1e26 subs r6, r4, #0
} while(h_tmp > 0);
588c: dced bgt.n 586a <_lv_disp_refr_task+0x2ce>
LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to "
588e: 4b25 ldr r3, [pc, #148] ; (5924 <_lv_disp_refr_task+0x388>)
5890: 9300 str r3, [sp, #0]
5892: 4b25 ldr r3, [pc, #148] ; (5928 <_lv_disp_refr_task+0x38c>)
5894: 22a0 movs r2, #160 ; 0xa0
5896: 32ff adds r2, #255 ; 0xff
5898: 4924 ldr r1, [pc, #144] ; (592c <_lv_disp_refr_task+0x390>)
589a: 2002 movs r0, #2
589c: 4c24 ldr r4, [pc, #144] ; (5930 <_lv_disp_refr_task+0x394>)
589e: 47a0 blx r4
58a0: e769 b.n 5776 <_lv_disp_refr_task+0x1da>
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
58a2: 4b14 ldr r3, [pc, #80] ; (58f4 <_lv_disp_refr_task+0x358>)
58a4: 6818 ldr r0, [r3, #0]
58a6: 4b1b ldr r3, [pc, #108] ; (5914 <_lv_disp_refr_task+0x378>)
58a8: 4798 blx r3
58aa: 3801 subs r0, #1
lv_coord_t y2 =
58ac: b203 sxth r3, r0
58ae: 4699 mov r9, r3
58b0: e7bd b.n 582e <_lv_disp_refr_task+0x292>
58b2: 4647 mov r7, r8
58b4: 0033 movs r3, r6
58b6: 4656 mov r6, sl
58b8: 469a mov sl, r3
max_row = tmp.y2 + 1;
58ba: 1c4b adds r3, r1, #1
58bc: 4698 mov r8, r3
if(h_tmp <= 0) {
58be: 4653 mov r3, sl
58c0: 2b00 cmp r3, #0
58c2: dde4 ble.n 588e <_lv_disp_refr_task+0x2f2>
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
58c4: 234a movs r3, #74 ; 0x4a
58c6: 5efc ldrsh r4, [r7, r3]
58c8: 464b mov r3, r9
58ca: 9305 str r3, [sp, #20]
58cc: 4643 mov r3, r8
58ce: 18e3 adds r3, r4, r3
58d0: 3b01 subs r3, #1
58d2: 454b cmp r3, r9
58d4: dc71 bgt.n 59ba <_lv_disp_refr_task+0x41e>
vdb->area.y2 = row + max_row - 1;
58d6: 4643 mov r3, r8
58d8: 466a mov r2, sp
58da: 8453 strh r3, [r2, #34] ; 0x22
58dc: 8c53 ldrh r3, [r2, #34] ; 0x22
58de: 469a mov sl, r3
58e0: 2301 movs r3, #1
58e2: 425b negs r3, r3
58e4: 4453 add r3, sl
58e6: 469b mov fp, r3
58e8: 464b mov r3, r9
58ea: 46b9 mov r9, r7
58ec: 001f movs r7, r3
58ee: e02e b.n 594e <_lv_disp_refr_task+0x3b2>
58f0: 00010ef9 .word 0x00010ef9
58f4: 200026f8 .word 0x200026f8
58f8: 0001388d .word 0x0001388d
58fc: 00011655 .word 0x00011655
5900: 00011479 .word 0x00011479
5904: 000113ef .word 0x000113ef
5908: 200026fc .word 0x200026fc
590c: 00010e75 .word 0x00010e75
5910: 00010d81 .word 0x00010d81
5914: 00010da9 .word 0x00010da9
5918: 000053d9 .word 0x000053d9
591c: 00010e91 .word 0x00010e91
5920: 0001c0a5 .word 0x0001c0a5
5924: 00025dd8 .word 0x00025dd8
5928: 00025d94 .word 0x00025d94
592c: 00025da4 .word 0x00025da4
5930: 00012159 .word 0x00012159
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5934: 42af cmp r7, r5
5936: d01c beq.n 5972 <_lv_disp_refr_task+0x3d6>
lv_refr_area_part(area_p);
5938: 9803 ldr r0, [sp, #12]
593a: 4b7d ldr r3, [pc, #500] ; (5b30 <_lv_disp_refr_task+0x594>)
593c: 4798 blx r3
593e: 4454 add r4, sl
5940: b224 sxth r4, r4
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
5942: 4643 mov r3, r8
5944: 18e3 adds r3, r4, r3
5946: 3b01 subs r3, #1
5948: 9a05 ldr r2, [sp, #20]
594a: 4293 cmp r3, r2
594c: dc1a bgt.n 5984 <_lv_disp_refr_task+0x3e8>
vdb->area.x1 = area_p->x1;
594e: 2348 movs r3, #72 ; 0x48
5950: 464a mov r2, r9
5952: 5ed3 ldrsh r3, [r2, r3]
5954: 8233 strh r3, [r6, #16]
vdb->area.x2 = area_p->x2;
5956: 234c movs r3, #76 ; 0x4c
5958: 464a mov r2, r9
595a: 5ed3 ldrsh r3, [r2, r3]
595c: 82b3 strh r3, [r6, #20]
vdb->area.y1 = row;
595e: 8274 strh r4, [r6, #18]
5960: b2a4 uxth r4, r4
5962: 465b mov r3, fp
5964: 18e5 adds r5, r4, r3
5966: b22d sxth r5, r5
vdb->area.y2 = row + max_row - 1;
5968: 82f5 strh r5, [r6, #22]
if(vdb->area.y2 > y2) vdb->area.y2 = y2;
596a: 42af cmp r7, r5
596c: dae2 bge.n 5934 <_lv_disp_refr_task+0x398>
596e: 82f7 strh r7, [r6, #22]
row_last = vdb->area.y2;
5970: 003d movs r5, r7
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5972: 4b70 ldr r3, [pc, #448] ; (5b34 <_lv_disp_refr_task+0x598>)
5974: 681b ldr r3, [r3, #0]
5976: 6859 ldr r1, [r3, #4]
5978: 2220 movs r2, #32
597a: 5c8b ldrb r3, [r1, r2]
597c: 2002 movs r0, #2
597e: 4303 orrs r3, r0
5980: 548b strb r3, [r1, r2]
5982: e7d9 b.n 5938 <_lv_disp_refr_task+0x39c>
5984: 003b movs r3, r7
5986: 464f mov r7, r9
5988: 4699 mov r9, r3
if(y2 != row_last) {
598a: 45a9 cmp r9, r5
598c: d100 bne.n 5990 <_lv_disp_refr_task+0x3f4>
598e: e6f2 b.n 5776 <_lv_disp_refr_task+0x1da>
vdb->area.x1 = area_p->x1;
5990: 2348 movs r3, #72 ; 0x48
5992: 5efb ldrsh r3, [r7, r3]
5994: 8233 strh r3, [r6, #16]
vdb->area.x2 = area_p->x2;
5996: 234c movs r3, #76 ; 0x4c
5998: 5efb ldrsh r3, [r7, r3]
599a: 82b3 strh r3, [r6, #20]
vdb->area.y1 = row;
599c: 8274 strh r4, [r6, #18]
vdb->area.y2 = y2;
599e: 464b mov r3, r9
59a0: 82f3 strh r3, [r6, #22]
disp_refr->driver.buffer->last_part = 1;
59a2: 4b64 ldr r3, [pc, #400] ; (5b34 <_lv_disp_refr_task+0x598>)
59a4: 681b ldr r3, [r3, #0]
59a6: 6859 ldr r1, [r3, #4]
59a8: 2220 movs r2, #32
59aa: 5c8b ldrb r3, [r1, r2]
59ac: 2002 movs r0, #2
59ae: 4303 orrs r3, r0
59b0: 548b strb r3, [r1, r2]
lv_refr_area_part(area_p);
59b2: 9803 ldr r0, [sp, #12]
59b4: 4b5e ldr r3, [pc, #376] ; (5b30 <_lv_disp_refr_task+0x594>)
59b6: 4798 blx r3
59b8: e6dd b.n 5776 <_lv_disp_refr_task+0x1da>
lv_coord_t row_last = 0;
59ba: 2500 movs r5, #0
59bc: e7e5 b.n 598a <_lv_disp_refr_task+0x3ee>
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
59be: 4b5e ldr r3, [pc, #376] ; (5b38 <_lv_disp_refr_task+0x59c>)
59c0: 4798 blx r3
59c2: 2800 cmp r0, #0
59c4: d004 beq.n 59d0 <_lv_disp_refr_task+0x434>
59c6: 4b5b ldr r3, [pc, #364] ; (5b34 <_lv_disp_refr_task+0x598>)
59c8: 6818 ldr r0, [r3, #0]
59ca: 6943 ldr r3, [r0, #20]
59cc: 2b00 cmp r3, #0
59ce: d01f beq.n 5a10 <_lv_disp_refr_task+0x474>
_lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas));
59d0: 4c58 ldr r4, [pc, #352] ; (5b34 <_lv_disp_refr_task+0x598>)
59d2: 6820 ldr r0, [r4, #0]
59d4: 3048 adds r0, #72 ; 0x48
59d6: 2180 movs r1, #128 ; 0x80
59d8: 0049 lsls r1, r1, #1
59da: 4d58 ldr r5, [pc, #352] ; (5b3c <_lv_disp_refr_task+0x5a0>)
59dc: 47a8 blx r5
_lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined));
59de: 6820 ldr r0, [r4, #0]
59e0: 3049 adds r0, #73 ; 0x49
59e2: 30ff adds r0, #255 ; 0xff
59e4: 2120 movs r1, #32
59e6: 47a8 blx r5
disp_refr->inv_p = 0;
59e8: 6821 ldr r1, [r4, #0]
59ea: 22b4 movs r2, #180 ; 0xb4
59ec: 0052 lsls r2, r2, #1
59ee: 5a8b ldrh r3, [r1, r2]
59f0: 0a9b lsrs r3, r3, #10
59f2: 029b lsls r3, r3, #10
59f4: 528b strh r3, [r1, r2]
elaps = lv_tick_elaps(start);
59f6: 9809 ldr r0, [sp, #36] ; 0x24
59f8: 4b51 ldr r3, [pc, #324] ; (5b40 <_lv_disp_refr_task+0x5a4>)
59fa: 4798 blx r3
59fc: 0001 movs r1, r0
if(disp_refr->driver.monitor_cb) {
59fe: 6820 ldr r0, [r4, #0]
5a00: 6983 ldr r3, [r0, #24]
5a02: 2b00 cmp r3, #0
5a04: d100 bne.n 5a08 <_lv_disp_refr_task+0x46c>
5a06: e079 b.n 5afc <_lv_disp_refr_task+0x560>
disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num);
5a08: 4a4e ldr r2, [pc, #312] ; (5b44 <_lv_disp_refr_task+0x5a8>)
5a0a: 6812 ldr r2, [r2, #0]
5a0c: 4798 blx r3
5a0e: e075 b.n 5afc <_lv_disp_refr_task+0x560>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
5a10: 4b4d ldr r3, [pc, #308] ; (5b48 <_lv_disp_refr_task+0x5ac>)
5a12: 4798 blx r3
5a14: 0004 movs r4, r0
lv_refr_vdb_flush();
5a16: 4b4d ldr r3, [pc, #308] ; (5b4c <_lv_disp_refr_task+0x5b0>)
5a18: 4798 blx r3
while(vdb->flushing)
5a1a: 69a3 ldr r3, [r4, #24]
5a1c: 2b00 cmp r3, #0
5a1e: d1fc bne.n 5a1a <_lv_disp_refr_task+0x47e>
uint8_t * buf_act = (uint8_t *)vdb->buf_act;
5a20: 68a3 ldr r3, [r4, #8]
5a22: 469b mov fp, r3
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
5a24: 6823 ldr r3, [r4, #0]
5a26: 4699 mov r9, r3
5a28: 459b cmp fp, r3
5a2a: d101 bne.n 5a30 <_lv_disp_refr_task+0x494>
5a2c: 6863 ldr r3, [r4, #4]
5a2e: 4699 mov r9, r3
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
5a30: 4c40 ldr r4, [pc, #256] ; (5b34 <_lv_disp_refr_task+0x598>)
5a32: 6820 ldr r0, [r4, #0]
5a34: 4b46 ldr r3, [pc, #280] ; (5b50 <_lv_disp_refr_task+0x5b4>)
5a36: 4798 blx r3
5a38: 9003 str r0, [sp, #12]
for(a = 0; a < disp_refr->inv_p; a++) {
5a3a: 6823 ldr r3, [r4, #0]
5a3c: 22b4 movs r2, #180 ; 0xb4
5a3e: 0052 lsls r2, r2, #1
5a40: 5a9a ldrh r2, [r3, r2]
5a42: 0592 lsls r2, r2, #22
5a44: d0c4 beq.n 59d0 <_lv_disp_refr_task+0x434>
start_offs += hres * sizeof(lv_color_t);
5a46: 0042 lsls r2, r0, #1
5a48: 4692 mov sl, r2
5a4a: 2600 movs r6, #0
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
5a4c: 0035 movs r5, r6
5a4e: e00b b.n 5a68 <_lv_disp_refr_task+0x4cc>
for(a = 0; a < disp_refr->inv_p; a++) {
5a50: 3601 adds r6, #1
5a52: b2b6 uxth r6, r6
5a54: 0035 movs r5, r6
5a56: 4b37 ldr r3, [pc, #220] ; (5b34 <_lv_disp_refr_task+0x598>)
5a58: 681b ldr r3, [r3, #0]
5a5a: 22b4 movs r2, #180 ; 0xb4
5a5c: 0052 lsls r2, r2, #1
5a5e: 5a9a ldrh r2, [r3, r2]
5a60: 0592 lsls r2, r2, #22
5a62: 0d92 lsrs r2, r2, #22
5a64: 4296 cmp r6, r2
5a66: dab3 bge.n 59d0 <_lv_disp_refr_task+0x434>
if(disp_refr->inv_area_joined[a] == 0) {
5a68: 195a adds r2, r3, r5
5a6a: 3249 adds r2, #73 ; 0x49
5a6c: 32ff adds r2, #255 ; 0xff
5a6e: 7812 ldrb r2, [r2, #0]
5a70: 2a00 cmp r2, #0
5a72: d1ed bne.n 5a50 <_lv_disp_refr_task+0x4b4>
5a74: 00ea lsls r2, r5, #3
5a76: 189b adds r3, r3, r2
(hres * disp_refr->inv_areas[a].y1 + disp_refr->inv_areas[a].x1) * sizeof(lv_color_t);
5a78: 224a movs r2, #74 ; 0x4a
5a7a: 5e9f ldrsh r7, [r3, r2]
5a7c: 2248 movs r2, #72 ; 0x48
5a7e: 5e9a ldrsh r2, [r3, r2]
5a80: 9c03 ldr r4, [sp, #12]
5a82: 437c muls r4, r7
5a84: 18a4 adds r4, r4, r2
uint32_t start_offs =
5a86: 0064 lsls r4, r4, #1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5a88: 214c movs r1, #76 ; 0x4c
5a8a: 5a5b ldrh r3, [r3, r1]
5a8c: 3301 adds r3, #1
5a8e: 1a9b subs r3, r3, r2
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
5a90: b21b sxth r3, r3
5a92: 005b lsls r3, r3, #1
5a94: 9304 str r3, [sp, #16]
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
5a96: 002b movs r3, r5
5a98: 3309 adds r3, #9
5a9a: 00db lsls r3, r3, #3
5a9c: 4a25 ldr r2, [pc, #148] ; (5b34 <_lv_disp_refr_task+0x598>)
5a9e: 6812 ldr r2, [r2, #0]
5aa0: 9205 str r2, [sp, #20]
5aa2: 4694 mov ip, r2
5aa4: 4463 add r3, ip
5aa6: 2206 movs r2, #6
5aa8: 5e9b ldrsh r3, [r3, r2]
5aaa: 42bb cmp r3, r7
5aac: dbd0 blt.n 5a50 <_lv_disp_refr_task+0x4b4>
5aae: 46a0 mov r8, r4
5ab0: 44d8 add r8, fp
5ab2: 444c add r4, r9
5ab4: 3509 adds r5, #9
5ab6: 00ed lsls r5, r5, #3
_lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length);
5ab8: 9a04 ldr r2, [sp, #16]
5aba: 0021 movs r1, r4
5abc: 4640 mov r0, r8
5abe: 4b25 ldr r3, [pc, #148] ; (5b54 <_lv_disp_refr_task+0x5b8>)
5ac0: 4798 blx r3
5ac2: 3701 adds r7, #1
5ac4: b23f sxth r7, r7
5ac6: 44d0 add r8, sl
5ac8: 4454 add r4, sl
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
5aca: 4b1a ldr r3, [pc, #104] ; (5b34 <_lv_disp_refr_task+0x598>)
5acc: 681b ldr r3, [r3, #0]
5ace: 9305 str r3, [sp, #20]
5ad0: 195b adds r3, r3, r5
5ad2: 2206 movs r2, #6
5ad4: 5e9b ldrsh r3, [r3, r2]
5ad6: 42bb cmp r3, r7
5ad8: daee bge.n 5ab8 <_lv_disp_refr_task+0x51c>
5ada: e7b9 b.n 5a50 <_lv_disp_refr_task+0x4b4>
px_num = 0;
5adc: 2200 movs r2, #0
5ade: 4b19 ldr r3, [pc, #100] ; (5b44 <_lv_disp_refr_task+0x5a8>)
5ae0: 601a str r2, [r3, #0]
if(disp_refr->inv_p == 0) return;
5ae2: 23b4 movs r3, #180 ; 0xb4
5ae4: 005b lsls r3, r3, #1
5ae6: 5ac3 ldrh r3, [r0, r3]
5ae8: 059b lsls r3, r3, #22
5aea: d112 bne.n 5b12 <_lv_disp_refr_task+0x576>
if(disp_refr->inv_p != 0) {
5aec: 4b11 ldr r3, [pc, #68] ; (5b34 <_lv_disp_refr_task+0x598>)
5aee: 6818 ldr r0, [r3, #0]
5af0: 23b4 movs r3, #180 ; 0xb4
5af2: 005b lsls r3, r3, #1
5af4: 5ac3 ldrh r3, [r0, r3]
5af6: 059b lsls r3, r3, #22
5af8: d000 beq.n 5afc <_lv_disp_refr_task+0x560>
5afa: e760 b.n 59be <_lv_disp_refr_task+0x422>
_lv_mem_buf_free_all();
5afc: 4b16 ldr r3, [pc, #88] ; (5b58 <_lv_disp_refr_task+0x5bc>)
5afe: 4798 blx r3
_lv_font_clean_up_fmt_txt();
5b00: 4b16 ldr r3, [pc, #88] ; (5b5c <_lv_disp_refr_task+0x5c0>)
5b02: 4798 blx r3
}
5b04: b00d add sp, #52 ; 0x34
5b06: bc3c pop {r2, r3, r4, r5}
5b08: 4690 mov r8, r2
5b0a: 4699 mov r9, r3
5b0c: 46a2 mov sl, r4
5b0e: 46ab mov fp, r5
5b10: bdf0 pop {r4, r5, r6, r7, pc}
int32_t last_i = 0;
5b12: 2300 movs r3, #0
5b14: 9307 str r3, [sp, #28]
5b16: e5ef b.n 56f8 <_lv_disp_refr_task+0x15c>
px_num = 0;
5b18: 2200 movs r2, #0
5b1a: 4b0a ldr r3, [pc, #40] ; (5b44 <_lv_disp_refr_task+0x5a8>)
5b1c: 601a str r2, [r3, #0]
if(disp_refr->inv_p == 0) return;
5b1e: 23b4 movs r3, #180 ; 0xb4
5b20: 005b lsls r3, r3, #1
5b22: 5ac3 ldrh r3, [r0, r3]
5b24: 059b lsls r3, r3, #22
5b26: d0e9 beq.n 5afc <_lv_disp_refr_task+0x560>
int32_t last_i = 0;
5b28: 2300 movs r3, #0
5b2a: 9307 str r3, [sp, #28]
5b2c: e5e4 b.n 56f8 <_lv_disp_refr_task+0x15c>
5b2e: 46c0 nop ; (mov r8, r8)
5b30: 000053d9 .word 0x000053d9
5b34: 200026f8 .word 0x200026f8
5b38: 00010e91 .word 0x00010e91
5b3c: 00012975 .word 0x00012975
5b40: 00010f15 .word 0x00010f15
5b44: 200026fc .word 0x200026fc
5b48: 00010e75 .word 0x00010e75
5b4c: 00005359 .word 0x00005359
5b50: 00010d81 .word 0x00010d81
5b54: 00012545 .word 0x00012545
5b58: 000124ed .word 0x000124ed
5b5c: 00010b7d .word 0x00010b7d
00005b60 <lv_style_init>:
/**
* Initialize a style
* @param style pointer to a style to initialize
*/
void lv_style_init(lv_style_t * style)
{
5b60: b510 push {r4, lr}
_lv_memset_00(style, sizeof(lv_style_t));
5b62: 2104 movs r1, #4
5b64: 4b01 ldr r3, [pc, #4] ; (5b6c <lv_style_init+0xc>)
5b66: 4798 blx r3
#if LV_USE_ASSERT_STYLE
style->sentinel = LV_DEBUG_STYLE_SENTINEL_VALUE;
#endif
}
5b68: bd10 pop {r4, pc}
5b6a: 46c0 nop ; (mov r8, r8)
5b6c: 00012975 .word 0x00012975
00005b70 <lv_style_list_init>:
/**
* Initialize a style list
* @param list a style list to initialize
*/
void lv_style_list_init(lv_style_list_t * list)
{
5b70: b510 push {r4, lr}
_lv_memset_00(list, sizeof(lv_style_list_t));
5b72: 2108 movs r1, #8
5b74: 4b01 ldr r3, [pc, #4] ; (5b7c <lv_style_list_init+0xc>)
5b76: 4798 blx r3
#if LV_USE_ASSERT_STYLE
list->sentinel = LV_DEBUG_STYLE_LIST_SENTINEL_VALUE;
#endif
}
5b78: bd10 pop {r4, pc}
5b7a: 46c0 nop ; (mov r8, r8)
5b7c: 00012975 .word 0x00012975
00005b80 <_lv_style_list_remove_style>:
* Remove a style from a style list
* @param style_list pointer to a style list
* @param style pointer to a style to remove
*/
void _lv_style_list_remove_style(lv_style_list_t * list, lv_style_t * style)
{
5b80: b570 push {r4, r5, r6, lr}
5b82: b082 sub sp, #8
5b84: 0004 movs r4, r0
5b86: 000d movs r5, r1
LV_ASSERT_STYLE_LIST(list);
LV_ASSERT_STYLE(style);
if(list->style_cnt == 0) return;
5b88: 7906 ldrb r6, [r0, #4]
5b8a: 2e00 cmp r6, #0
5b8c: d025 beq.n 5bda <_lv_style_list_remove_style+0x5a>
/*Check if the style really exists here*/
uint8_t i;
bool found = false;
for(i = 0; i < list->style_cnt; i++) {
if(list->style_list[i] == style) {
5b8e: 6800 ldr r0, [r0, #0]
5b90: 6803 ldr r3, [r0, #0]
5b92: 4299 cmp r1, r3
5b94: d00c beq.n 5bb0 <_lv_style_list_remove_style+0x30>
5b96: 1d03 adds r3, r0, #4
5b98: 1e72 subs r2, r6, #1
5b9a: b2d2 uxtb r2, r2
5b9c: 3201 adds r2, #1
5b9e: 0092 lsls r2, r2, #2
5ba0: 1882 adds r2, r0, r2
for(i = 0; i < list->style_cnt; i++) {
5ba2: 429a cmp r2, r3
5ba4: d019 beq.n 5bda <_lv_style_list_remove_style+0x5a>
5ba6: 3304 adds r3, #4
if(list->style_list[i] == style) {
5ba8: 1f19 subs r1, r3, #4
5baa: 6809 ldr r1, [r1, #0]
5bac: 42a9 cmp r1, r5
5bae: d1f8 bne.n 5ba2 <_lv_style_list_remove_style+0x22>
break;
}
}
if(found == false) return;
if(list->style_cnt == 1) {
5bb0: 2e01 cmp r6, #1
5bb2: d014 beq.n 5bde <_lv_style_list_remove_style+0x5e>
list->style_cnt = 0;
list->has_local = 0;
return;
}
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
5bb4: 1e71 subs r1, r6, #1
5bb6: 0089 lsls r1, r1, #2
5bb8: 4b21 ldr r3, [pc, #132] ; (5c40 <_lv_style_list_remove_style+0xc0>)
5bba: 4798 blx r3
5bbc: 0006 movs r6, r0
LV_ASSERT_MEM(new_classes);
5bbe: 4b21 ldr r3, [pc, #132] ; (5c44 <_lv_style_list_remove_style+0xc4>)
5bc0: 4798 blx r3
5bc2: 2800 cmp r0, #0
5bc4: d015 beq.n 5bf2 <_lv_style_list_remove_style+0x72>
if(new_classes == NULL) {
5bc6: 2e00 cmp r6, #0
5bc8: d021 beq.n 5c0e <_lv_style_list_remove_style+0x8e>
LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list");
return;
}
uint8_t j;
for(i = 0, j = 0; i < list->style_cnt; i++) {
5bca: 7921 ldrb r1, [r4, #4]
5bcc: 2200 movs r2, #0
5bce: 2300 movs r3, #0
5bd0: 2900 cmp r1, #0
5bd2: d12b bne.n 5c2c <_lv_style_list_remove_style+0xac>
new_classes[j] = list->style_list[i];
j++;
}
list->style_cnt--;
5bd4: 3901 subs r1, #1
5bd6: 7121 strb r1, [r4, #4]
list->style_list = new_classes;
5bd8: 6026 str r6, [r4, #0]
}
5bda: b002 add sp, #8
5bdc: bd70 pop {r4, r5, r6, pc}
lv_mem_free(list->style_list);
5bde: 4b1a ldr r3, [pc, #104] ; (5c48 <_lv_style_list_remove_style+0xc8>)
5be0: 4798 blx r3
list->style_list = NULL;
5be2: 2300 movs r3, #0
5be4: 6023 str r3, [r4, #0]
list->style_cnt = 0;
5be6: 7123 strb r3, [r4, #4]
list->has_local = 0;
5be8: 7963 ldrb r3, [r4, #5]
5bea: 2201 movs r2, #1
5bec: 4393 bics r3, r2
5bee: 7163 strb r3, [r4, #5]
return;
5bf0: e7f3 b.n 5bda <_lv_style_list_remove_style+0x5a>
LV_ASSERT_MEM(new_classes);
5bf2: 4b16 ldr r3, [pc, #88] ; (5c4c <_lv_style_list_remove_style+0xcc>)
5bf4: 9300 str r3, [sp, #0]
5bf6: 2282 movs r2, #130 ; 0x82
5bf8: 0052 lsls r2, r2, #1
5bfa: 4915 ldr r1, [pc, #84] ; (5c50 <_lv_style_list_remove_style+0xd0>)
5bfc: 3003 adds r0, #3
5bfe: 4c15 ldr r4, [pc, #84] ; (5c54 <_lv_style_list_remove_style+0xd4>)
5c00: 47a0 blx r4
5c02: 0032 movs r2, r6
5c04: 2300 movs r3, #0
5c06: 4814 ldr r0, [pc, #80] ; (5c58 <_lv_style_list_remove_style+0xd8>)
5c08: 4914 ldr r1, [pc, #80] ; (5c5c <_lv_style_list_remove_style+0xdc>)
5c0a: 4788 blx r1
5c0c: e7fe b.n 5c0c <_lv_style_list_remove_style+0x8c>
LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list");
5c0e: 4b14 ldr r3, [pc, #80] ; (5c60 <_lv_style_list_remove_style+0xe0>)
5c10: 9300 str r3, [sp, #0]
5c12: 4b0e ldr r3, [pc, #56] ; (5c4c <_lv_style_list_remove_style+0xcc>)
5c14: 2283 movs r2, #131 ; 0x83
5c16: 0052 lsls r2, r2, #1
5c18: 490d ldr r1, [pc, #52] ; (5c50 <_lv_style_list_remove_style+0xd0>)
5c1a: 2002 movs r0, #2
5c1c: 4c0d ldr r4, [pc, #52] ; (5c54 <_lv_style_list_remove_style+0xd4>)
5c1e: 47a0 blx r4
return;
5c20: e7db b.n 5bda <_lv_style_list_remove_style+0x5a>
for(i = 0, j = 0; i < list->style_cnt; i++) {
5c22: 3301 adds r3, #1
5c24: b2db uxtb r3, r3
5c26: 7921 ldrb r1, [r4, #4]
5c28: 4299 cmp r1, r3
5c2a: d9d3 bls.n 5bd4 <_lv_style_list_remove_style+0x54>
if(list->style_list[i] == style) continue;
5c2c: 0099 lsls r1, r3, #2
5c2e: 6820 ldr r0, [r4, #0]
5c30: 5809 ldr r1, [r1, r0]
5c32: 428d cmp r5, r1
5c34: d0f5 beq.n 5c22 <_lv_style_list_remove_style+0xa2>
new_classes[j] = list->style_list[i];
5c36: 0090 lsls r0, r2, #2
5c38: 5181 str r1, [r0, r6]
j++;
5c3a: 3201 adds r2, #1
5c3c: b2d2 uxtb r2, r2
5c3e: e7f0 b.n 5c22 <_lv_style_list_remove_style+0xa2>
5c40: 000126fd .word 0x000126fd
5c44: 000017ad .word 0x000017ad
5c48: 000123c9 .word 0x000123c9
5c4c: 00025e44 .word 0x00025e44
5c50: 00025f58 .word 0x00025f58
5c54: 00012159 .word 0x00012159
5c58: 00025854 .word 0x00025854
5c5c: 000017b5 .word 0x000017b5
5c60: 00025f8c .word 0x00025f8c
00005c64 <_lv_style_list_add_style>:
{
5c64: b570 push {r4, r5, r6, lr}
5c66: b082 sub sp, #8
5c68: 0005 movs r5, r0
5c6a: 000c movs r4, r1
if(list == NULL) return;
5c6c: 2800 cmp r0, #0
5c6e: d030 beq.n 5cd2 <_lv_style_list_add_style+0x6e>
_lv_style_list_remove_style(list, style);
5c70: 4b27 ldr r3, [pc, #156] ; (5d10 <_lv_style_list_add_style+0xac>)
5c72: 4798 blx r3
if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *));
5c74: 792b ldrb r3, [r5, #4]
5c76: 2b00 cmp r3, #0
5c78: d12d bne.n 5cd6 <_lv_style_list_add_style+0x72>
5c7a: 2004 movs r0, #4
5c7c: 4b25 ldr r3, [pc, #148] ; (5d14 <_lv_style_list_add_style+0xb0>)
5c7e: 4798 blx r3
5c80: 0006 movs r6, r0
LV_ASSERT_MEM(new_classes);
5c82: 0030 movs r0, r6
5c84: 4b24 ldr r3, [pc, #144] ; (5d18 <_lv_style_list_add_style+0xb4>)
5c86: 4798 blx r3
5c88: 2800 cmp r0, #0
5c8a: d02b beq.n 5ce4 <_lv_style_list_add_style+0x80>
if(new_classes == NULL) {
5c8c: 2e00 cmp r6, #0
5c8e: d036 beq.n 5cfe <_lv_style_list_add_style+0x9a>
if(list->has_trans) first_style++;
5c90: 796b ldrb r3, [r5, #5]
5c92: 0859 lsrs r1, r3, #1
5c94: 2201 movs r2, #1
uint8_t first_style = 0;
5c96: 4011 ands r1, r2
if(list->has_local) first_style++;
5c98: 421a tst r2, r3
5c9a: d000 beq.n 5c9e <_lv_style_list_add_style+0x3a>
5c9c: 3101 adds r1, #1
for(i = list->style_cnt; i > first_style; i--) {
5c9e: 792a ldrb r2, [r5, #4]
5ca0: 4291 cmp r1, r2
5ca2: d210 bcs.n 5cc6 <_lv_style_list_add_style+0x62>
5ca4: 4b1d ldr r3, [pc, #116] ; (5d1c <_lv_style_list_add_style+0xb8>)
5ca6: 18d3 adds r3, r2, r3
5ca8: 009b lsls r3, r3, #2
5caa: 18f3 adds r3, r6, r3
5cac: 481c ldr r0, [pc, #112] ; (5d20 <_lv_style_list_add_style+0xbc>)
5cae: 1810 adds r0, r2, r0
5cb0: 3a01 subs r2, #1
5cb2: 1a52 subs r2, r2, r1
5cb4: b2d2 uxtb r2, r2
5cb6: 1a82 subs r2, r0, r2
5cb8: 0092 lsls r2, r2, #2
5cba: 18b2 adds r2, r6, r2
new_classes[i] = new_classes[i - 1];
5cbc: 6818 ldr r0, [r3, #0]
5cbe: 6058 str r0, [r3, #4]
5cc0: 3b04 subs r3, #4
for(i = list->style_cnt; i > first_style; i--) {
5cc2: 4293 cmp r3, r2
5cc4: d1fa bne.n 5cbc <_lv_style_list_add_style+0x58>
new_classes[first_style] = style;
5cc6: 0089 lsls r1, r1, #2
5cc8: 518c str r4, [r1, r6]
list->style_cnt++;
5cca: 792b ldrb r3, [r5, #4]
5ccc: 3301 adds r3, #1
5cce: 712b strb r3, [r5, #4]
list->style_list = new_classes;
5cd0: 602e str r6, [r5, #0]
}
5cd2: b002 add sp, #8
5cd4: bd70 pop {r4, r5, r6, pc}
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
5cd6: 3301 adds r3, #1
5cd8: 0099 lsls r1, r3, #2
5cda: 6828 ldr r0, [r5, #0]
5cdc: 4b11 ldr r3, [pc, #68] ; (5d24 <_lv_style_list_add_style+0xc0>)
5cde: 4798 blx r3
5ce0: 0006 movs r6, r0
5ce2: e7ce b.n 5c82 <_lv_style_list_add_style+0x1e>
LV_ASSERT_MEM(new_classes);
5ce4: 4b10 ldr r3, [pc, #64] ; (5d28 <_lv_style_list_add_style+0xc4>)
5ce6: 9300 str r3, [sp, #0]
5ce8: 22d0 movs r2, #208 ; 0xd0
5cea: 4910 ldr r1, [pc, #64] ; (5d2c <_lv_style_list_add_style+0xc8>)
5cec: 3003 adds r0, #3
5cee: 4c10 ldr r4, [pc, #64] ; (5d30 <_lv_style_list_add_style+0xcc>)
5cf0: 47a0 blx r4
5cf2: 0032 movs r2, r6
5cf4: 2300 movs r3, #0
5cf6: 480f ldr r0, [pc, #60] ; (5d34 <_lv_style_list_add_style+0xd0>)
5cf8: 490f ldr r1, [pc, #60] ; (5d38 <_lv_style_list_add_style+0xd4>)
5cfa: 4788 blx r1
5cfc: e7fe b.n 5cfc <_lv_style_list_add_style+0x98>
LV_LOG_WARN("lv_style_list_add_style: couldn't add the class");
5cfe: 4b0f ldr r3, [pc, #60] ; (5d3c <_lv_style_list_add_style+0xd8>)
5d00: 9300 str r3, [sp, #0]
5d02: 4b09 ldr r3, [pc, #36] ; (5d28 <_lv_style_list_add_style+0xc4>)
5d04: 22d2 movs r2, #210 ; 0xd2
5d06: 4909 ldr r1, [pc, #36] ; (5d2c <_lv_style_list_add_style+0xc8>)
5d08: 2002 movs r0, #2
5d0a: 4c09 ldr r4, [pc, #36] ; (5d30 <_lv_style_list_add_style+0xcc>)
5d0c: 47a0 blx r4
return;
5d0e: e7e0 b.n 5cd2 <_lv_style_list_add_style+0x6e>
5d10: 00005b81 .word 0x00005b81
5d14: 000122dd .word 0x000122dd
5d18: 000017ad .word 0x000017ad
5d1c: 3fffffff .word 0x3fffffff
5d20: 3ffffffe .word 0x3ffffffe
5d24: 000126fd .word 0x000126fd
5d28: 00025e28 .word 0x00025e28
5d2c: 00025f58 .word 0x00025f58
5d30: 00012159 .word 0x00012159
5d34: 00025854 .word 0x00025854
5d38: 000017b5 .word 0x000017b5
5d3c: 00025ee8 .word 0x00025ee8
00005d40 <get_alloc_local_style>:
* Get he local style from a style list. Allocate it if not exists yet.
* @param list pointer to a style list
* @return pointer to the local style
*/
static lv_style_t * get_alloc_local_style(lv_style_list_t * list)
{
5d40: b530 push {r4, r5, lr}
5d42: b083 sub sp, #12
5d44: 0005 movs r5, r0
LV_ASSERT_STYLE_LIST(list);
if(list->has_local) return lv_style_list_get_style(list, 0);
5d46: 7942 ldrb r2, [r0, #5]
5d48: 07d3 lsls r3, r2, #31
5d4a: d510 bpl.n 5d6e <get_alloc_local_style+0x2e>
5d4c: 2306 movs r3, #6
5d4e: 4013 ands r3, r2
5d50: 3b06 subs r3, #6
5d52: 425a negs r2, r3
5d54: 4153 adcs r3, r2
5d56: b2db uxtb r3, r3
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
5d58: 7902 ldrb r2, [r0, #4]
5d5a: 2a00 cmp r2, #0
5d5c: d033 beq.n 5dc6 <get_alloc_local_style+0x86>
5d5e: 429a cmp r2, r3
5d60: d933 bls.n 5dca <get_alloc_local_style+0x8a>
return list->style_list[id];
5d62: 6802 ldr r2, [r0, #0]
5d64: 009b lsls r3, r3, #2
5d66: 589c ldr r4, [r3, r2]
/*Add the local style to the furst place*/
_lv_style_list_add_style(list, local_style);
list->has_local = 1;
return local_style;
}
5d68: 0020 movs r0, r4
5d6a: b003 add sp, #12
5d6c: bd30 pop {r4, r5, pc}
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
5d6e: 2004 movs r0, #4
5d70: 4b17 ldr r3, [pc, #92] ; (5dd0 <get_alloc_local_style+0x90>)
5d72: 4798 blx r3
5d74: 0004 movs r4, r0
LV_ASSERT_MEM(local_style);
5d76: 4b17 ldr r3, [pc, #92] ; (5dd4 <get_alloc_local_style+0x94>)
5d78: 4798 blx r3
5d7a: 2800 cmp r0, #0
5d7c: d00d beq.n 5d9a <get_alloc_local_style+0x5a>
if(local_style == NULL) {
5d7e: 2c00 cmp r4, #0
5d80: d018 beq.n 5db4 <get_alloc_local_style+0x74>
lv_style_init(local_style);
5d82: 0020 movs r0, r4
5d84: 4b14 ldr r3, [pc, #80] ; (5dd8 <get_alloc_local_style+0x98>)
5d86: 4798 blx r3
_lv_style_list_add_style(list, local_style);
5d88: 0021 movs r1, r4
5d8a: 0028 movs r0, r5
5d8c: 4b13 ldr r3, [pc, #76] ; (5ddc <get_alloc_local_style+0x9c>)
5d8e: 4798 blx r3
list->has_local = 1;
5d90: 796b ldrb r3, [r5, #5]
5d92: 2201 movs r2, #1
5d94: 4313 orrs r3, r2
5d96: 716b strb r3, [r5, #5]
return local_style;
5d98: e7e6 b.n 5d68 <get_alloc_local_style+0x28>
LV_ASSERT_MEM(local_style);
5d9a: 4b11 ldr r3, [pc, #68] ; (5de0 <get_alloc_local_style+0xa0>)
5d9c: 9300 str r3, [sp, #0]
5d9e: 4a11 ldr r2, [pc, #68] ; (5de4 <get_alloc_local_style+0xa4>)
5da0: 4911 ldr r1, [pc, #68] ; (5de8 <get_alloc_local_style+0xa8>)
5da2: 3003 adds r0, #3
5da4: 4d11 ldr r5, [pc, #68] ; (5dec <get_alloc_local_style+0xac>)
5da6: 47a8 blx r5
5da8: 0022 movs r2, r4
5daa: 2300 movs r3, #0
5dac: 4810 ldr r0, [pc, #64] ; (5df0 <get_alloc_local_style+0xb0>)
5dae: 4911 ldr r1, [pc, #68] ; (5df4 <get_alloc_local_style+0xb4>)
5db0: 4788 blx r1
5db2: e7fe b.n 5db2 <get_alloc_local_style+0x72>
LV_LOG_WARN("get_local_style: couldn't create local style");
5db4: 4b10 ldr r3, [pc, #64] ; (5df8 <get_alloc_local_style+0xb8>)
5db6: 9300 str r3, [sp, #0]
5db8: 4b09 ldr r3, [pc, #36] ; (5de0 <get_alloc_local_style+0xa0>)
5dba: 4a10 ldr r2, [pc, #64] ; (5dfc <get_alloc_local_style+0xbc>)
5dbc: 490a ldr r1, [pc, #40] ; (5de8 <get_alloc_local_style+0xa8>)
5dbe: 2002 movs r0, #2
5dc0: 4d0a ldr r5, [pc, #40] ; (5dec <get_alloc_local_style+0xac>)
5dc2: 47a8 blx r5
return NULL;
5dc4: e7d0 b.n 5d68 <get_alloc_local_style+0x28>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
5dc6: 2400 movs r4, #0
5dc8: e7ce b.n 5d68 <get_alloc_local_style+0x28>
5dca: 2400 movs r4, #0
5dcc: e7cc b.n 5d68 <get_alloc_local_style+0x28>
5dce: 46c0 nop ; (mov r8, r8)
5dd0: 000122dd .word 0x000122dd
5dd4: 000017ad .word 0x000017ad
5dd8: 00005b61 .word 0x00005b61
5ddc: 00005c65 .word 0x00005c65
5de0: 00025ed0 .word 0x00025ed0
5de4: 00000435 .word 0x00000435
5de8: 00025f58 .word 0x00025f58
5dec: 00012159 .word 0x00012159
5df0: 00025854 .word 0x00025854
5df4: 000017b5 .word 0x000017b5
5df8: 00025fc8 .word 0x00025fc8
5dfc: 00000437 .word 0x00000437
00005e00 <lv_style_reset>:
{
5e00: b510 push {r4, lr}
5e02: 0004 movs r4, r0
lv_mem_free(style->map);
5e04: 6800 ldr r0, [r0, #0]
5e06: 4b02 ldr r3, [pc, #8] ; (5e10 <lv_style_reset+0x10>)
5e08: 4798 blx r3
style->map = NULL;
5e0a: 2300 movs r3, #0
5e0c: 6023 str r3, [r4, #0]
}
5e0e: bd10 pop {r4, pc}
5e10: 000123c9 .word 0x000123c9
00005e14 <_lv_style_get_mem_size>:
{
5e14: b510 push {r4, lr}
if(style->map == NULL) return 0;
5e16: 6801 ldr r1, [r0, #0]
5e18: 2900 cmp r1, #0
5e1a: d019 beq.n 5e50 <_lv_style_get_mem_size+0x3c>
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5e1c: 780b ldrb r3, [r1, #0]
5e1e: 2bff cmp r3, #255 ; 0xff
5e20: d012 beq.n 5e48 <_lv_style_get_mem_size+0x34>
5e22: 2000 movs r0, #0
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5e24: 240f movs r4, #15
5e26: e003 b.n 5e30 <_lv_style_get_mem_size+0x1c>
i += sizeof(lv_style_property_t);
5e28: 1c90 adds r0, r2, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5e2a: 5c0b ldrb r3, [r1, r0]
5e2c: 2bff cmp r3, #255 ; 0xff
5e2e: d00c beq.n 5e4a <_lv_style_get_mem_size+0x36>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5e30: 4023 ands r3, r4
5e32: 1c82 adds r2, r0, #2
5e34: 2b08 cmp r3, #8
5e36: ddf7 ble.n 5e28 <_lv_style_get_mem_size+0x14>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5e38: 1c82 adds r2, r0, #2
5e3a: 2b0b cmp r3, #11
5e3c: ddf4 ble.n 5e28 <_lv_style_get_mem_size+0x14>
else i += sizeof(const void *);
5e3e: 1d02 adds r2, r0, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
5e40: 2b0d cmp r3, #13
5e42: dcf1 bgt.n 5e28 <_lv_style_get_mem_size+0x14>
5e44: 1c42 adds r2, r0, #1
5e46: e7ef b.n 5e28 <_lv_style_get_mem_size+0x14>
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5e48: 2000 movs r0, #0
return i + sizeof(lv_style_property_t);
5e4a: 3002 adds r0, #2
5e4c: b280 uxth r0, r0
}
5e4e: bd10 pop {r4, pc}
if(style->map == NULL) return 0;
5e50: 2000 movs r0, #0
5e52: e7fc b.n 5e4e <_lv_style_get_mem_size+0x3a>
00005e54 <lv_style_copy>:
{
5e54: b570 push {r4, r5, r6, lr}
5e56: 0006 movs r6, r0
5e58: 1e0c subs r4, r1, #0
if(style_src == NULL) return;
5e5a: d00d beq.n 5e78 <lv_style_copy+0x24>
if(style_src->map == NULL) return;
5e5c: 680b ldr r3, [r1, #0]
5e5e: 2b00 cmp r3, #0
5e60: d00a beq.n 5e78 <lv_style_copy+0x24>
uint16_t size = _lv_style_get_mem_size(style_src);
5e62: 0008 movs r0, r1
5e64: 4b05 ldr r3, [pc, #20] ; (5e7c <lv_style_copy+0x28>)
5e66: 4798 blx r3
5e68: 0005 movs r5, r0
style_dest->map = lv_mem_alloc(size);
5e6a: 4b05 ldr r3, [pc, #20] ; (5e80 <lv_style_copy+0x2c>)
5e6c: 4798 blx r3
5e6e: 6030 str r0, [r6, #0]
_lv_memcpy(style_dest->map, style_src->map, size);
5e70: 6821 ldr r1, [r4, #0]
5e72: 002a movs r2, r5
5e74: 4b03 ldr r3, [pc, #12] ; (5e84 <lv_style_copy+0x30>)
5e76: 4798 blx r3
}
5e78: bd70 pop {r4, r5, r6, pc}
5e7a: 46c0 nop ; (mov r8, r8)
5e7c: 00005e15 .word 0x00005e15
5e80: 000122dd .word 0x000122dd
5e84: 00012545 .word 0x00012545
00005e88 <lv_style_remove_prop>:
{
5e88: b5f0 push {r4, r5, r6, r7, lr}
5e8a: 46de mov lr, fp
5e8c: 4657 mov r7, sl
5e8e: 464e mov r6, r9
5e90: 4645 mov r5, r8
5e92: b5e0 push {r5, r6, r7, lr}
5e94: b085 sub sp, #20
5e96: 1e06 subs r6, r0, #0
5e98: 9103 str r1, [sp, #12]
if(style == NULL) return false;
5e9a: d100 bne.n 5e9e <lv_style_remove_prop+0x16>
5e9c: e07b b.n 5f96 <lv_style_remove_prop+0x10e>
if(style->map == NULL) return -1;
5e9e: 6800 ldr r0, [r0, #0]
5ea0: 2800 cmp r0, #0
5ea2: d100 bne.n 5ea6 <lv_style_remove_prop+0x1e>
5ea4: e07b b.n 5f9e <lv_style_remove_prop+0x116>
uint8_t id_to_find = prop & 0xFF;
5ea6: b2cc uxtb r4, r1
attr.full = (prop >> 8) & 0xFF;
5ea8: 0a0b lsrs r3, r1, #8
5eaa: 4698 mov r8, r3
5eac: 1c19 adds r1, r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5eae: 7803 ldrb r3, [r0, #0]
5eb0: 2bff cmp r3, #255 ; 0xff
5eb2: d04e beq.n 5f52 <lv_style_remove_prop+0xca>
5eb4: 2201 movs r2, #1
5eb6: 4252 negs r2, r2
5eb8: 9202 str r2, [sp, #8]
5eba: 4693 mov fp, r2
5ebc: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
5ebe: 257f movs r5, #127 ; 0x7f
5ec0: 46aa mov sl, r5
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
5ec2: 0649 lsls r1, r1, #25
5ec4: 0e49 lsrs r1, r1, #25
5ec6: 468c mov ip, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5ec8: 3d70 subs r5, #112 ; 0x70
5eca: 46c1 mov r9, r8
5ecc: 46b0 mov r8, r6
5ece: e01c b.n 5f0a <lv_style_remove_prop+0x82>
attr_i.full = style->map[i + 1];
5ed0: 1881 adds r1, r0, r2
5ed2: 7849 ldrb r1, [r1, #1]
if(attr_i.bits.state == attr.bits.state) {
5ed4: 464f mov r7, r9
5ed6: 404f eors r7, r1
5ed8: 4656 mov r6, sl
5eda: 423e tst r6, r7
5edc: d00d beq.n 5efa <lv_style_remove_prop+0x72>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
5ede: 0649 lsls r1, r1, #25
5ee0: 0e49 lsrs r1, r1, #25
5ee2: 9101 str r1, [sp, #4]
5ee4: 000f movs r7, r1
5ee6: 4666 mov r6, ip
5ee8: 43b7 bics r7, r6
5eea: d110 bne.n 5f0e <lv_style_remove_prop+0x86>
if(attr_i.bits.state > weight) {
5eec: 4559 cmp r1, fp
5eee: dd0e ble.n 5f0e <lv_style_remove_prop+0x86>
weight = attr_i.bits.state;
5ef0: b209 sxth r1, r1
5ef2: 468b mov fp, r1
id_guess = i;
5ef4: b211 sxth r1, r2
5ef6: 9102 str r1, [sp, #8]
5ef8: e009 b.n 5f0e <lv_style_remove_prop+0x86>
5efa: 4643 mov r3, r8
5efc: 46c8 mov r8, r9
5efe: 001e movs r6, r3
5f00: e015 b.n 5f2e <lv_style_remove_prop+0xa6>
i += sizeof(lv_style_property_t);
5f02: 1c8a adds r2, r1, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5f04: 5c83 ldrb r3, [r0, r2]
5f06: 2bff cmp r3, #255 ; 0xff
5f08: d00d beq.n 5f26 <lv_style_remove_prop+0x9e>
if(style->map[i] == id_to_find) {
5f0a: 429c cmp r4, r3
5f0c: d0e0 beq.n 5ed0 <lv_style_remove_prop+0x48>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5f0e: 402b ands r3, r5
5f10: 1c91 adds r1, r2, #2
5f12: 2b08 cmp r3, #8
5f14: ddf5 ble.n 5f02 <lv_style_remove_prop+0x7a>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5f16: 1c91 adds r1, r2, #2
5f18: 2b0b cmp r3, #11
5f1a: ddf2 ble.n 5f02 <lv_style_remove_prop+0x7a>
else i += sizeof(const void *);
5f1c: 1d11 adds r1, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
5f1e: 2b0d cmp r3, #13
5f20: dcef bgt.n 5f02 <lv_style_remove_prop+0x7a>
5f22: 1c51 adds r1, r2, #1
5f24: e7ed b.n 5f02 <lv_style_remove_prop+0x7a>
5f26: 4643 mov r3, r8
5f28: 46c8 mov r8, r9
5f2a: 001e movs r6, r3
return id_guess;
5f2c: 9a02 ldr r2, [sp, #8]
if(id >= 0) {
5f2e: 2a00 cmp r2, #0
5f30: db33 blt.n 5f9a <lv_style_remove_prop+0x112>
attr_found.full = *(style->map + id + 1);
5f32: 0014 movs r4, r2
5f34: 1880 adds r0, r0, r2
if(attr_found.bits.state == attr_goal.bits.state) {
5f36: 7843 ldrb r3, [r0, #1]
5f38: 4642 mov r2, r8
5f3a: 405a eors r2, r3
5f3c: 0013 movs r3, r2
return false;
5f3e: 2000 movs r0, #0
if(attr_found.bits.state == attr_goal.bits.state) {
5f40: 065b lsls r3, r3, #25
5f42: d00a beq.n 5f5a <lv_style_remove_prop+0xd2>
}
5f44: b005 add sp, #20
5f46: bc3c pop {r2, r3, r4, r5}
5f48: 4690 mov r8, r2
5f4a: 4699 mov r9, r3
5f4c: 46a2 mov sl, r4
5f4e: 46ab mov fp, r5
5f50: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
5f52: 2301 movs r3, #1
5f54: 425b negs r3, r3
5f56: 9302 str r3, [sp, #8]
5f58: e7e8 b.n 5f2c <lv_style_remove_prop+0xa4>
uint32_t map_size = _lv_style_get_mem_size(style);
5f5a: 0030 movs r0, r6
5f5c: 4b11 ldr r3, [pc, #68] ; (5fa4 <lv_style_remove_prop+0x11c>)
5f5e: 4798 blx r3
if((prop & 0xF) < LV_STYLE_ID_COLOR) prop_size += sizeof(lv_style_int_t);
5f60: 230f movs r3, #15
5f62: 9a03 ldr r2, [sp, #12]
5f64: 4013 ands r3, r2
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
5f66: 2104 movs r1, #4
5f68: 2b0b cmp r3, #11
5f6a: dd03 ble.n 5f74 <lv_style_remove_prop+0xec>
else if((prop & 0xF) < LV_STYLE_ID_PTR) prop_size += sizeof(lv_opa_t);
5f6c: 3901 subs r1, #1
5f6e: 2b0d cmp r3, #13
5f70: dd00 ble.n 5f74 <lv_style_remove_prop+0xec>
else prop_size += sizeof(const void *);
5f72: 3103 adds r1, #3
for(i = id; i < map_size - prop_size; i++) {
5f74: 000d movs r5, r1
5f76: 1a41 subs r1, r0, r1
5f78: 428c cmp r4, r1
5f7a: d206 bcs.n 5f8a <lv_style_remove_prop+0x102>
style->map[i] = style->map[i + prop_size];
5f7c: 6833 ldr r3, [r6, #0]
5f7e: 195a adds r2, r3, r5
5f80: 5d12 ldrb r2, [r2, r4]
5f82: 551a strb r2, [r3, r4]
for(i = id; i < map_size - prop_size; i++) {
5f84: 3401 adds r4, #1
5f86: 428c cmp r4, r1
5f88: d1f8 bne.n 5f7c <lv_style_remove_prop+0xf4>
style->map = lv_mem_realloc(style->map, map_size - prop_size);
5f8a: 6830 ldr r0, [r6, #0]
5f8c: 4b06 ldr r3, [pc, #24] ; (5fa8 <lv_style_remove_prop+0x120>)
5f8e: 4798 blx r3
5f90: 6030 str r0, [r6, #0]
return true;
5f92: 2001 movs r0, #1
5f94: e7d6 b.n 5f44 <lv_style_remove_prop+0xbc>
if(style == NULL) return false;
5f96: 2000 movs r0, #0
5f98: e7d4 b.n 5f44 <lv_style_remove_prop+0xbc>
return false;
5f9a: 2000 movs r0, #0
5f9c: e7d2 b.n 5f44 <lv_style_remove_prop+0xbc>
5f9e: 2000 movs r0, #0
5fa0: e7d0 b.n 5f44 <lv_style_remove_prop+0xbc>
5fa2: 46c0 nop ; (mov r8, r8)
5fa4: 00005e15 .word 0x00005e15
5fa8: 000126fd .word 0x000126fd
00005fac <_lv_style_set_int>:
{
5fac: b5f0 push {r4, r5, r6, r7, lr}
5fae: 46de mov lr, fp
5fb0: 4657 mov r7, sl
5fb2: 464e mov r6, r9
5fb4: 4645 mov r5, r8
5fb6: b5e0 push {r5, r6, r7, lr}
5fb8: b089 sub sp, #36 ; 0x24
5fba: 0006 movs r6, r0
5fbc: 230e movs r3, #14
5fbe: a802 add r0, sp, #8
5fc0: 4684 mov ip, r0
5fc2: 4463 add r3, ip
5fc4: 8019 strh r1, [r3, #0]
5fc6: ab05 add r3, sp, #20
5fc8: 801a strh r2, [r3, #0]
if(style->map == NULL) return -1;
5fca: 6834 ldr r4, [r6, #0]
5fcc: 2c00 cmp r4, #0
5fce: d058 beq.n 6082 <_lv_style_set_int+0xd6>
uint8_t id_to_find = prop & 0xFF;
5fd0: b2cd uxtb r5, r1
attr.full = (prop >> 8) & 0xFF;
5fd2: 0a0b lsrs r3, r1, #8
5fd4: 469a mov sl, r3
5fd6: 1c19 adds r1, r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5fd8: 7823 ldrb r3, [r4, #0]
5fda: 2bff cmp r3, #255 ; 0xff
5fdc: d04d beq.n 607a <_lv_style_set_int+0xce>
5fde: 2201 movs r2, #1
5fe0: 4252 negs r2, r2
5fe2: 4690 mov r8, r2
5fe4: 4694 mov ip, r2
5fe6: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
5fe8: 207f movs r0, #127 ; 0x7f
5fea: 4683 mov fp, r0
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
5fec: 0649 lsls r1, r1, #25
5fee: 0e49 lsrs r1, r1, #25
5ff0: 4689 mov r9, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5ff2: 3870 subs r0, #112 ; 0x70
5ff4: 9604 str r6, [sp, #16]
5ff6: e01a b.n 602e <_lv_style_set_int+0x82>
attr_i.full = style->map[i + 1];
5ff8: 18a1 adds r1, r4, r2
5ffa: 7849 ldrb r1, [r1, #1]
if(attr_i.bits.state == attr.bits.state) {
5ffc: 4656 mov r6, sl
5ffe: 404e eors r6, r1
6000: 465f mov r7, fp
6002: 4237 tst r7, r6
6004: d00d beq.n 6022 <_lv_style_set_int+0x76>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6006: 0649 lsls r1, r1, #25
6008: 0e49 lsrs r1, r1, #25
600a: 9103 str r1, [sp, #12]
600c: 000e movs r6, r1
600e: 464f mov r7, r9
6010: 43be bics r6, r7
6012: d10e bne.n 6032 <_lv_style_set_int+0x86>
if(attr_i.bits.state > weight) {
6014: 4561 cmp r1, ip
6016: dd0c ble.n 6032 <_lv_style_set_int+0x86>
weight = attr_i.bits.state;
6018: b209 sxth r1, r1
601a: 468c mov ip, r1
id_guess = i;
601c: b211 sxth r1, r2
601e: 4688 mov r8, r1
6020: e007 b.n 6032 <_lv_style_set_int+0x86>
6022: 9e04 ldr r6, [sp, #16]
6024: e013 b.n 604e <_lv_style_set_int+0xa2>
i += sizeof(lv_style_property_t);
6026: 1c8a adds r2, r1, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
6028: 5ca3 ldrb r3, [r4, r2]
602a: 2bff cmp r3, #255 ; 0xff
602c: d00d beq.n 604a <_lv_style_set_int+0x9e>
if(style->map[i] == id_to_find) {
602e: 429d cmp r5, r3
6030: d0e2 beq.n 5ff8 <_lv_style_set_int+0x4c>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6032: 4003 ands r3, r0
6034: 1c91 adds r1, r2, #2
6036: 2b08 cmp r3, #8
6038: ddf5 ble.n 6026 <_lv_style_set_int+0x7a>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
603a: 1c91 adds r1, r2, #2
603c: 2b0b cmp r3, #11
603e: ddf2 ble.n 6026 <_lv_style_set_int+0x7a>
else i += sizeof(const void *);
6040: 1d11 adds r1, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
6042: 2b0d cmp r3, #13
6044: dcef bgt.n 6026 <_lv_style_set_int+0x7a>
6046: 1c51 adds r1, r2, #1
6048: e7ed b.n 6026 <_lv_style_set_int+0x7a>
604a: 9e04 ldr r6, [sp, #16]
return id_guess;
604c: 4642 mov r2, r8
if(id >= 0) {
604e: 2a00 cmp r2, #0
6050: db17 blt.n 6082 <_lv_style_set_int+0xd6>
attr_found.full = *(style->map + id + 1);
6052: 18a3 adds r3, r4, r2
if(attr_found.bits.state == attr_goal.bits.state) {
6054: 785b ldrb r3, [r3, #1]
6056: 4655 mov r5, sl
6058: 405d eors r5, r3
605a: 066b lsls r3, r5, #25
605c: d111 bne.n 6082 <_lv_style_set_int+0xd6>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t));
605e: 3202 adds r2, #2
6060: 18a4 adds r4, r4, r2
*d8 = *s8;
6062: ab05 add r3, sp, #20
6064: 781a ldrb r2, [r3, #0]
6066: 7022 strb r2, [r4, #0]
6068: 785b ldrb r3, [r3, #1]
606a: 7063 strb r3, [r4, #1]
}
606c: b009 add sp, #36 ; 0x24
606e: bc3c pop {r2, r3, r4, r5}
6070: 4690 mov r8, r2
6072: 4699 mov r9, r3
6074: 46a2 mov sl, r4
6076: 46ab mov fp, r5
6078: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
607a: 2301 movs r3, #1
607c: 425b negs r3, r3
607e: 4698 mov r8, r3
6080: e7e4 b.n 604c <_lv_style_set_int+0xa0>
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
6082: 22ff movs r2, #255 ; 0xff
6084: 2316 movs r3, #22
6086: a902 add r1, sp, #8
6088: 468c mov ip, r1
608a: 4463 add r3, ip
608c: 801a strh r2, [r3, #0]
uint16_t size = _lv_style_get_mem_size(style);
608e: 0030 movs r0, r6
6090: 4b20 ldr r3, [pc, #128] ; (6114 <_lv_style_set_int+0x168>)
6092: 4798 blx r3
if(size == 0) size += end_mark_size;
6094: 2800 cmp r0, #0
6096: d100 bne.n 609a <_lv_style_set_int+0xee>
6098: 3002 adds r0, #2
size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t);
609a: 3004 adds r0, #4
style->map = lv_mem_realloc(style->map, size);
609c: b285 uxth r5, r0
609e: 0029 movs r1, r5
60a0: 0020 movs r0, r4
60a2: 4b1d ldr r3, [pc, #116] ; (6118 <_lv_style_set_int+0x16c>)
60a4: 4798 blx r3
60a6: 6030 str r0, [r6, #0]
LV_ASSERT_MEM(style->map);
60a8: 4b1c ldr r3, [pc, #112] ; (611c <_lv_style_set_int+0x170>)
60aa: 4798 blx r3
60ac: 2800 cmp r0, #0
60ae: d022 beq.n 60f6 <_lv_style_set_int+0x14a>
if(style == NULL) return;
60b0: 2e00 cmp r6, #0
60b2: d0db beq.n 606c <_lv_style_set_int+0xc0>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
60b4: 1fab subs r3, r5, #6
60b6: 6832 ldr r2, [r6, #0]
60b8: 4694 mov ip, r2
60ba: 4463 add r3, ip
60bc: 220e movs r2, #14
60be: a902 add r1, sp, #8
60c0: 468c mov ip, r1
60c2: 4462 add r2, ip
60c4: 7811 ldrb r1, [r2, #0]
60c6: 7019 strb r1, [r3, #0]
60c8: 7852 ldrb r2, [r2, #1]
60ca: 705a strb r2, [r3, #1]
60cc: 1f2b subs r3, r5, #4
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
60ce: 6832 ldr r2, [r6, #0]
60d0: 4694 mov ip, r2
60d2: 4463 add r3, ip
60d4: aa05 add r2, sp, #20
60d6: 7811 ldrb r1, [r2, #0]
60d8: 7019 strb r1, [r3, #0]
60da: 7852 ldrb r2, [r2, #1]
60dc: 705a strb r2, [r3, #1]
60de: 3d02 subs r5, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
60e0: 6833 ldr r3, [r6, #0]
60e2: 195d adds r5, r3, r5
60e4: 2316 movs r3, #22
60e6: aa02 add r2, sp, #8
60e8: 4694 mov ip, r2
60ea: 4463 add r3, ip
60ec: 781a ldrb r2, [r3, #0]
60ee: 702a strb r2, [r5, #0]
60f0: 785b ldrb r3, [r3, #1]
60f2: 706b strb r3, [r5, #1]
60f4: e7ba b.n 606c <_lv_style_set_int+0xc0>
LV_ASSERT_MEM(style->map);
60f6: 4b0a ldr r3, [pc, #40] ; (6120 <_lv_style_set_int+0x174>)
60f8: 9300 str r3, [sp, #0]
60fa: 22c3 movs r2, #195 ; 0xc3
60fc: 0052 lsls r2, r2, #1
60fe: 4909 ldr r1, [pc, #36] ; (6124 <_lv_style_set_int+0x178>)
6100: 3003 adds r0, #3
6102: 4c09 ldr r4, [pc, #36] ; (6128 <_lv_style_set_int+0x17c>)
6104: 47a0 blx r4
6106: 6832 ldr r2, [r6, #0]
6108: 2300 movs r3, #0
610a: 4808 ldr r0, [pc, #32] ; (612c <_lv_style_set_int+0x180>)
610c: 4908 ldr r1, [pc, #32] ; (6130 <_lv_style_set_int+0x184>)
610e: 4788 blx r1
6110: e7fe b.n 6110 <_lv_style_set_int+0x164>
6112: 46c0 nop ; (mov r8, r8)
6114: 00005e15 .word 0x00005e15
6118: 000126fd .word 0x000126fd
611c: 000017ad .word 0x000017ad
6120: 00025e60 .word 0x00025e60
6124: 00025f58 .word 0x00025f58
6128: 00012159 .word 0x00012159
612c: 00025854 .word 0x00025854
6130: 000017b5 .word 0x000017b5
00006134 <_lv_style_set_color>:
{
6134: b5f0 push {r4, r5, r6, r7, lr}
6136: 46de mov lr, fp
6138: 4657 mov r7, sl
613a: 464e mov r6, r9
613c: 4645 mov r5, r8
613e: b5e0 push {r5, r6, r7, lr}
6140: b089 sub sp, #36 ; 0x24
6142: 0006 movs r6, r0
6144: ab05 add r3, sp, #20
6146: 801a strh r2, [r3, #0]
6148: 230e movs r3, #14
614a: aa02 add r2, sp, #8
614c: 4694 mov ip, r2
614e: 4463 add r3, ip
6150: 8019 strh r1, [r3, #0]
if(style->map == NULL) return -1;
6152: 6804 ldr r4, [r0, #0]
6154: 2c00 cmp r4, #0
6156: d058 beq.n 620a <_lv_style_set_color+0xd6>
uint8_t id_to_find = prop & 0xFF;
6158: b2cd uxtb r5, r1
attr.full = (prop >> 8) & 0xFF;
615a: 0a0b lsrs r3, r1, #8
615c: 469a mov sl, r3
615e: 1c19 adds r1, r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
6160: 7823 ldrb r3, [r4, #0]
6162: 2bff cmp r3, #255 ; 0xff
6164: d04d beq.n 6202 <_lv_style_set_color+0xce>
6166: 2201 movs r2, #1
6168: 4252 negs r2, r2
616a: 4690 mov r8, r2
616c: 4694 mov ip, r2
616e: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
6170: 207f movs r0, #127 ; 0x7f
6172: 4683 mov fp, r0
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6174: 0649 lsls r1, r1, #25
6176: 0e49 lsrs r1, r1, #25
6178: 4689 mov r9, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
617a: 3870 subs r0, #112 ; 0x70
617c: 9604 str r6, [sp, #16]
617e: e01a b.n 61b6 <_lv_style_set_color+0x82>
attr_i.full = style->map[i + 1];
6180: 18a1 adds r1, r4, r2
6182: 7849 ldrb r1, [r1, #1]
if(attr_i.bits.state == attr.bits.state) {
6184: 4656 mov r6, sl
6186: 404e eors r6, r1
6188: 465f mov r7, fp
618a: 4237 tst r7, r6
618c: d00d beq.n 61aa <_lv_style_set_color+0x76>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
618e: 0649 lsls r1, r1, #25
6190: 0e49 lsrs r1, r1, #25
6192: 9103 str r1, [sp, #12]
6194: 000e movs r6, r1
6196: 464f mov r7, r9
6198: 43be bics r6, r7
619a: d10e bne.n 61ba <_lv_style_set_color+0x86>
if(attr_i.bits.state > weight) {
619c: 4561 cmp r1, ip
619e: dd0c ble.n 61ba <_lv_style_set_color+0x86>
weight = attr_i.bits.state;
61a0: b209 sxth r1, r1
61a2: 468c mov ip, r1
id_guess = i;
61a4: b211 sxth r1, r2
61a6: 4688 mov r8, r1
61a8: e007 b.n 61ba <_lv_style_set_color+0x86>
61aa: 9e04 ldr r6, [sp, #16]
61ac: e013 b.n 61d6 <_lv_style_set_color+0xa2>
i += sizeof(lv_style_property_t);
61ae: 1c8a adds r2, r1, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
61b0: 5ca3 ldrb r3, [r4, r2]
61b2: 2bff cmp r3, #255 ; 0xff
61b4: d00d beq.n 61d2 <_lv_style_set_color+0x9e>
if(style->map[i] == id_to_find) {
61b6: 429d cmp r5, r3
61b8: d0e2 beq.n 6180 <_lv_style_set_color+0x4c>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
61ba: 4003 ands r3, r0
61bc: 1c91 adds r1, r2, #2
61be: 2b08 cmp r3, #8
61c0: ddf5 ble.n 61ae <_lv_style_set_color+0x7a>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
61c2: 1c91 adds r1, r2, #2
61c4: 2b0b cmp r3, #11
61c6: ddf2 ble.n 61ae <_lv_style_set_color+0x7a>
else i += sizeof(const void *);
61c8: 1d11 adds r1, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
61ca: 2b0d cmp r3, #13
61cc: dcef bgt.n 61ae <_lv_style_set_color+0x7a>
61ce: 1c51 adds r1, r2, #1
61d0: e7ed b.n 61ae <_lv_style_set_color+0x7a>
61d2: 9e04 ldr r6, [sp, #16]
return id_guess;
61d4: 4642 mov r2, r8
if(id >= 0) {
61d6: 2a00 cmp r2, #0
61d8: db17 blt.n 620a <_lv_style_set_color+0xd6>
attr_found.full = *(style->map + id + 1);
61da: 18a3 adds r3, r4, r2
if(attr_found.bits.state == attr_goal.bits.state) {
61dc: 785b ldrb r3, [r3, #1]
61de: 4655 mov r5, sl
61e0: 405d eors r5, r3
61e2: 066b lsls r3, r5, #25
61e4: d111 bne.n 620a <_lv_style_set_color+0xd6>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t));
61e6: 3202 adds r2, #2
61e8: 18a4 adds r4, r4, r2
61ea: ab05 add r3, sp, #20
61ec: 781a ldrb r2, [r3, #0]
61ee: 7022 strb r2, [r4, #0]
61f0: 785b ldrb r3, [r3, #1]
61f2: 7063 strb r3, [r4, #1]
}
61f4: b009 add sp, #36 ; 0x24
61f6: bc3c pop {r2, r3, r4, r5}
61f8: 4690 mov r8, r2
61fa: 4699 mov r9, r3
61fc: 46a2 mov sl, r4
61fe: 46ab mov fp, r5
6200: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6202: 2301 movs r3, #1
6204: 425b negs r3, r3
6206: 4698 mov r8, r3
6208: e7e4 b.n 61d4 <_lv_style_set_color+0xa0>
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
620a: 22ff movs r2, #255 ; 0xff
620c: 2316 movs r3, #22
620e: a902 add r1, sp, #8
6210: 468c mov ip, r1
6212: 4463 add r3, ip
6214: 801a strh r2, [r3, #0]
uint16_t size = _lv_style_get_mem_size(style);
6216: 0030 movs r0, r6
6218: 4b20 ldr r3, [pc, #128] ; (629c <_lv_style_set_color+0x168>)
621a: 4798 blx r3
if(size == 0) size += end_mark_size;
621c: 2800 cmp r0, #0
621e: d100 bne.n 6222 <_lv_style_set_color+0xee>
6220: 3002 adds r0, #2
size += sizeof(lv_style_property_t) + sizeof(lv_color_t);
6222: 3004 adds r0, #4
style->map = lv_mem_realloc(style->map, size);
6224: b285 uxth r5, r0
6226: 0029 movs r1, r5
6228: 0020 movs r0, r4
622a: 4b1d ldr r3, [pc, #116] ; (62a0 <_lv_style_set_color+0x16c>)
622c: 4798 blx r3
622e: 6030 str r0, [r6, #0]
LV_ASSERT_MEM(style->map);
6230: 4b1c ldr r3, [pc, #112] ; (62a4 <_lv_style_set_color+0x170>)
6232: 4798 blx r3
6234: 2800 cmp r0, #0
6236: d022 beq.n 627e <_lv_style_set_color+0x14a>
if(style == NULL) return;
6238: 2e00 cmp r6, #0
623a: d0db beq.n 61f4 <_lv_style_set_color+0xc0>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
623c: 1fab subs r3, r5, #6
623e: 6832 ldr r2, [r6, #0]
6240: 4694 mov ip, r2
6242: 4463 add r3, ip
6244: 220e movs r2, #14
6246: a902 add r1, sp, #8
6248: 468c mov ip, r1
624a: 4462 add r2, ip
624c: 7811 ldrb r1, [r2, #0]
624e: 7019 strb r1, [r3, #0]
6250: 7852 ldrb r2, [r2, #1]
6252: 705a strb r2, [r3, #1]
6254: 1f2b subs r3, r5, #4
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
6256: 6832 ldr r2, [r6, #0]
6258: 4694 mov ip, r2
625a: 4463 add r3, ip
625c: aa05 add r2, sp, #20
625e: 7811 ldrb r1, [r2, #0]
6260: 7019 strb r1, [r3, #0]
6262: 7852 ldrb r2, [r2, #1]
6264: 705a strb r2, [r3, #1]
6266: 3d02 subs r5, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
6268: 6833 ldr r3, [r6, #0]
626a: 195d adds r5, r3, r5
626c: 2316 movs r3, #22
626e: aa02 add r2, sp, #8
6270: 4694 mov ip, r2
6272: 4463 add r3, ip
6274: 781a ldrb r2, [r3, #0]
6276: 702a strb r2, [r5, #0]
6278: 785b ldrb r3, [r3, #1]
627a: 706b strb r3, [r5, #1]
627c: e7ba b.n 61f4 <_lv_style_set_color+0xc0>
LV_ASSERT_MEM(style->map);
627e: 4b0a ldr r3, [pc, #40] ; (62a8 <_lv_style_set_color+0x174>)
6280: 9300 str r3, [sp, #0]
6282: 22b6 movs r2, #182 ; 0xb6
6284: 32ff adds r2, #255 ; 0xff
6286: 4909 ldr r1, [pc, #36] ; (62ac <_lv_style_set_color+0x178>)
6288: 3003 adds r0, #3
628a: 4c09 ldr r4, [pc, #36] ; (62b0 <_lv_style_set_color+0x17c>)
628c: 47a0 blx r4
628e: 6832 ldr r2, [r6, #0]
6290: 2300 movs r3, #0
6292: 4808 ldr r0, [pc, #32] ; (62b4 <_lv_style_set_color+0x180>)
6294: 4908 ldr r1, [pc, #32] ; (62b8 <_lv_style_set_color+0x184>)
6296: 4788 blx r1
6298: e7fe b.n 6298 <_lv_style_set_color+0x164>
629a: 46c0 nop ; (mov r8, r8)
629c: 00005e15 .word 0x00005e15
62a0: 000126fd .word 0x000126fd
62a4: 000017ad .word 0x000017ad
62a8: 00025e74 .word 0x00025e74
62ac: 00025f58 .word 0x00025f58
62b0: 00012159 .word 0x00012159
62b4: 00025854 .word 0x00025854
62b8: 000017b5 .word 0x000017b5
000062bc <_lv_style_set_opa>:
{
62bc: b5f0 push {r4, r5, r6, r7, lr}
62be: 46de mov lr, fp
62c0: 4657 mov r7, sl
62c2: 464e mov r6, r9
62c4: 4645 mov r5, r8
62c6: b5e0 push {r5, r6, r7, lr}
62c8: b089 sub sp, #36 ; 0x24
62ca: 0006 movs r6, r0
62cc: 9203 str r2, [sp, #12]
62ce: 230e movs r3, #14
62d0: aa02 add r2, sp, #8
62d2: 4694 mov ip, r2
62d4: 4463 add r3, ip
62d6: 8019 strh r1, [r3, #0]
if(style->map == NULL) return -1;
62d8: 6804 ldr r4, [r0, #0]
62da: 2c00 cmp r4, #0
62dc: d055 beq.n 638a <_lv_style_set_opa+0xce>
uint8_t id_to_find = prop & 0xFF;
62de: b2c8 uxtb r0, r1
attr.full = (prop >> 8) & 0xFF;
62e0: 0a0b lsrs r3, r1, #8
62e2: 469a mov sl, r3
62e4: 1c19 adds r1, r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
62e6: 7823 ldrb r3, [r4, #0]
62e8: 2bff cmp r3, #255 ; 0xff
62ea: d04a beq.n 6382 <_lv_style_set_opa+0xc6>
62ec: 2201 movs r2, #1
62ee: 4252 negs r2, r2
62f0: 4690 mov r8, r2
62f2: 4694 mov ip, r2
62f4: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
62f6: 257f movs r5, #127 ; 0x7f
62f8: 46ab mov fp, r5
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
62fa: 0649 lsls r1, r1, #25
62fc: 0e49 lsrs r1, r1, #25
62fe: 4689 mov r9, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6300: 3d70 subs r5, #112 ; 0x70
6302: 9604 str r6, [sp, #16]
6304: e01a b.n 633c <_lv_style_set_opa+0x80>
attr_i.full = style->map[i + 1];
6306: 18a1 adds r1, r4, r2
6308: 7849 ldrb r1, [r1, #1]
if(attr_i.bits.state == attr.bits.state) {
630a: 4656 mov r6, sl
630c: 404e eors r6, r1
630e: 465f mov r7, fp
6310: 4237 tst r7, r6
6312: d00d beq.n 6330 <_lv_style_set_opa+0x74>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6314: 0649 lsls r1, r1, #25
6316: 0e49 lsrs r1, r1, #25
6318: 9102 str r1, [sp, #8]
631a: 000e movs r6, r1
631c: 464f mov r7, r9
631e: 43be bics r6, r7
6320: d10e bne.n 6340 <_lv_style_set_opa+0x84>
if(attr_i.bits.state > weight) {
6322: 4561 cmp r1, ip
6324: dd0c ble.n 6340 <_lv_style_set_opa+0x84>
weight = attr_i.bits.state;
6326: b209 sxth r1, r1
6328: 468c mov ip, r1
id_guess = i;
632a: b211 sxth r1, r2
632c: 4688 mov r8, r1
632e: e007 b.n 6340 <_lv_style_set_opa+0x84>
6330: 9e04 ldr r6, [sp, #16]
6332: e013 b.n 635c <_lv_style_set_opa+0xa0>
i += sizeof(lv_style_property_t);
6334: 1c8a adds r2, r1, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
6336: 5ca3 ldrb r3, [r4, r2]
6338: 2bff cmp r3, #255 ; 0xff
633a: d00d beq.n 6358 <_lv_style_set_opa+0x9c>
if(style->map[i] == id_to_find) {
633c: 4298 cmp r0, r3
633e: d0e2 beq.n 6306 <_lv_style_set_opa+0x4a>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6340: 402b ands r3, r5
6342: 1c91 adds r1, r2, #2
6344: 2b08 cmp r3, #8
6346: ddf5 ble.n 6334 <_lv_style_set_opa+0x78>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
6348: 1c91 adds r1, r2, #2
634a: 2b0b cmp r3, #11
634c: ddf2 ble.n 6334 <_lv_style_set_opa+0x78>
else i += sizeof(const void *);
634e: 1d11 adds r1, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
6350: 2b0d cmp r3, #13
6352: dcef bgt.n 6334 <_lv_style_set_opa+0x78>
6354: 1c51 adds r1, r2, #1
6356: e7ed b.n 6334 <_lv_style_set_opa+0x78>
6358: 9e04 ldr r6, [sp, #16]
return id_guess;
635a: 4642 mov r2, r8
if(id >= 0) {
635c: 2a00 cmp r2, #0
635e: db14 blt.n 638a <_lv_style_set_opa+0xce>
attr_found.full = *(style->map + id + 1);
6360: 18a3 adds r3, r4, r2
if(attr_found.bits.state == attr_goal.bits.state) {
6362: 785b ldrb r3, [r3, #1]
6364: 4650 mov r0, sl
6366: 4058 eors r0, r3
6368: 0643 lsls r3, r0, #25
636a: d10e bne.n 638a <_lv_style_set_opa+0xce>
636c: 18a2 adds r2, r4, r2
636e: 466b mov r3, sp
6370: 7b1b ldrb r3, [r3, #12]
6372: 7093 strb r3, [r2, #2]
}
6374: b009 add sp, #36 ; 0x24
6376: bc3c pop {r2, r3, r4, r5}
6378: 4690 mov r8, r2
637a: 4699 mov r9, r3
637c: 46a2 mov sl, r4
637e: 46ab mov fp, r5
6380: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6382: 2301 movs r3, #1
6384: 425b negs r3, r3
6386: 4698 mov r8, r3
6388: e7e7 b.n 635a <_lv_style_set_opa+0x9e>
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
638a: 22ff movs r2, #255 ; 0xff
638c: 2316 movs r3, #22
638e: a902 add r1, sp, #8
6390: 468c mov ip, r1
6392: 4463 add r3, ip
6394: 801a strh r2, [r3, #0]
uint16_t size = _lv_style_get_mem_size(style);
6396: 0030 movs r0, r6
6398: 4b1d ldr r3, [pc, #116] ; (6410 <_lv_style_set_opa+0x154>)
639a: 4798 blx r3
if(size == 0) size += end_mark_size;
639c: 2800 cmp r0, #0
639e: d100 bne.n 63a2 <_lv_style_set_opa+0xe6>
63a0: 3002 adds r0, #2
size += sizeof(lv_style_property_t) + sizeof(lv_opa_t);
63a2: 3003 adds r0, #3
style->map = lv_mem_realloc(style->map, size);
63a4: b285 uxth r5, r0
63a6: 0029 movs r1, r5
63a8: 0020 movs r0, r4
63aa: 4b1a ldr r3, [pc, #104] ; (6414 <_lv_style_set_opa+0x158>)
63ac: 4798 blx r3
63ae: 6030 str r0, [r6, #0]
LV_ASSERT_MEM(style->map);
63b0: 4b19 ldr r3, [pc, #100] ; (6418 <_lv_style_set_opa+0x15c>)
63b2: 4798 blx r3
63b4: 2800 cmp r0, #0
63b6: d01d beq.n 63f4 <_lv_style_set_opa+0x138>
if(style == NULL) return;
63b8: 2e00 cmp r6, #0
63ba: d0db beq.n 6374 <_lv_style_set_opa+0xb8>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
63bc: 1f6b subs r3, r5, #5
63be: 6832 ldr r2, [r6, #0]
63c0: 4694 mov ip, r2
63c2: 4463 add r3, ip
63c4: 220e movs r2, #14
63c6: a902 add r1, sp, #8
63c8: 468c mov ip, r1
63ca: 4462 add r2, ip
63cc: 7811 ldrb r1, [r2, #0]
63ce: 7019 strb r1, [r3, #0]
63d0: 7852 ldrb r2, [r2, #1]
63d2: 705a strb r2, [r3, #1]
63d4: 6833 ldr r3, [r6, #0]
63d6: 195b adds r3, r3, r5
63d8: 3b03 subs r3, #3
63da: 466a mov r2, sp
63dc: 7b12 ldrb r2, [r2, #12]
63de: 701a strb r2, [r3, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
63e0: 3d02 subs r5, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
63e2: 6833 ldr r3, [r6, #0]
63e4: 195d adds r5, r3, r5
63e6: 2316 movs r3, #22
63e8: 4463 add r3, ip
63ea: 781a ldrb r2, [r3, #0]
63ec: 702a strb r2, [r5, #0]
63ee: 785b ldrb r3, [r3, #1]
63f0: 706b strb r3, [r5, #1]
63f2: e7bf b.n 6374 <_lv_style_set_opa+0xb8>
LV_ASSERT_MEM(style->map);
63f4: 4b09 ldr r3, [pc, #36] ; (641c <_lv_style_set_opa+0x160>)
63f6: 9300 str r3, [sp, #0]
63f8: 22f2 movs r2, #242 ; 0xf2
63fa: 0052 lsls r2, r2, #1
63fc: 4908 ldr r1, [pc, #32] ; (6420 <_lv_style_set_opa+0x164>)
63fe: 3003 adds r0, #3
6400: 4c08 ldr r4, [pc, #32] ; (6424 <_lv_style_set_opa+0x168>)
6402: 47a0 blx r4
6404: 6832 ldr r2, [r6, #0]
6406: 2300 movs r3, #0
6408: 4807 ldr r0, [pc, #28] ; (6428 <_lv_style_set_opa+0x16c>)
640a: 4908 ldr r1, [pc, #32] ; (642c <_lv_style_set_opa+0x170>)
640c: 4788 blx r1
640e: e7fe b.n 640e <_lv_style_set_opa+0x152>
6410: 00005e15 .word 0x00005e15
6414: 000126fd .word 0x000126fd
6418: 000017ad .word 0x000017ad
641c: 00025e88 .word 0x00025e88
6420: 00025f58 .word 0x00025f58
6424: 00012159 .word 0x00012159
6428: 00025854 .word 0x00025854
642c: 000017b5 .word 0x000017b5
00006430 <_lv_style_set_ptr>:
{
6430: b5f0 push {r4, r5, r6, r7, lr}
6432: 46de mov lr, fp
6434: 4657 mov r7, sl
6436: 464e mov r6, r9
6438: 4645 mov r5, r8
643a: b5e0 push {r5, r6, r7, lr}
643c: b089 sub sp, #36 ; 0x24
643e: 0006 movs r6, r0
6440: 9204 str r2, [sp, #16]
6442: 230e movs r3, #14
6444: aa02 add r2, sp, #8
6446: 4694 mov ip, r2
6448: 4463 add r3, ip
644a: 8019 strh r1, [r3, #0]
if(style->map == NULL) return -1;
644c: 6804 ldr r4, [r0, #0]
644e: 2c00 cmp r4, #0
6450: d05c beq.n 650c <_lv_style_set_ptr+0xdc>
uint8_t id_to_find = prop & 0xFF;
6452: b2cd uxtb r5, r1
attr.full = (prop >> 8) & 0xFF;
6454: 0a0b lsrs r3, r1, #8
6456: 469a mov sl, r3
6458: 1c18 adds r0, r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
645a: 7823 ldrb r3, [r4, #0]
645c: 2bff cmp r3, #255 ; 0xff
645e: d051 beq.n 6504 <_lv_style_set_ptr+0xd4>
6460: 2201 movs r2, #1
6462: 4252 negs r2, r2
6464: 4690 mov r8, r2
6466: 4694 mov ip, r2
6468: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
646a: 217f movs r1, #127 ; 0x7f
646c: 468b mov fp, r1
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
646e: 0640 lsls r0, r0, #25
6470: 0e41 lsrs r1, r0, #25
6472: 4689 mov r9, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6474: 210f movs r1, #15
6476: 9603 str r6, [sp, #12]
6478: e01a b.n 64b0 <_lv_style_set_ptr+0x80>
attr_i.full = style->map[i + 1];
647a: 18a0 adds r0, r4, r2
647c: 7840 ldrb r0, [r0, #1]
if(attr_i.bits.state == attr.bits.state) {
647e: 4656 mov r6, sl
6480: 4046 eors r6, r0
6482: 465f mov r7, fp
6484: 4237 tst r7, r6
6486: d00d beq.n 64a4 <_lv_style_set_ptr+0x74>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6488: 0640 lsls r0, r0, #25
648a: 0e40 lsrs r0, r0, #25
648c: 9002 str r0, [sp, #8]
648e: 0006 movs r6, r0
6490: 464f mov r7, r9
6492: 43be bics r6, r7
6494: d10e bne.n 64b4 <_lv_style_set_ptr+0x84>
if(attr_i.bits.state > weight) {
6496: 4560 cmp r0, ip
6498: dd0c ble.n 64b4 <_lv_style_set_ptr+0x84>
weight = attr_i.bits.state;
649a: b200 sxth r0, r0
649c: 4684 mov ip, r0
id_guess = i;
649e: b210 sxth r0, r2
64a0: 4680 mov r8, r0
64a2: e007 b.n 64b4 <_lv_style_set_ptr+0x84>
64a4: 9e03 ldr r6, [sp, #12]
64a6: e013 b.n 64d0 <_lv_style_set_ptr+0xa0>
i += sizeof(lv_style_property_t);
64a8: 1c82 adds r2, r0, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
64aa: 5ca3 ldrb r3, [r4, r2]
64ac: 2bff cmp r3, #255 ; 0xff
64ae: d00d beq.n 64cc <_lv_style_set_ptr+0x9c>
if(style->map[i] == id_to_find) {
64b0: 429d cmp r5, r3
64b2: d0e2 beq.n 647a <_lv_style_set_ptr+0x4a>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
64b4: 400b ands r3, r1
64b6: 1c90 adds r0, r2, #2
64b8: 2b08 cmp r3, #8
64ba: ddf5 ble.n 64a8 <_lv_style_set_ptr+0x78>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
64bc: 1c90 adds r0, r2, #2
64be: 2b0b cmp r3, #11
64c0: ddf2 ble.n 64a8 <_lv_style_set_ptr+0x78>
else i += sizeof(const void *);
64c2: 1d10 adds r0, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
64c4: 2b0d cmp r3, #13
64c6: dcef bgt.n 64a8 <_lv_style_set_ptr+0x78>
64c8: 1c50 adds r0, r2, #1
64ca: e7ed b.n 64a8 <_lv_style_set_ptr+0x78>
64cc: 9e03 ldr r6, [sp, #12]
return id_guess;
64ce: 4642 mov r2, r8
if(id >= 0) {
64d0: 2a00 cmp r2, #0
64d2: db1b blt.n 650c <_lv_style_set_ptr+0xdc>
attr_found.full = *(style->map + id + 1);
64d4: 18a3 adds r3, r4, r2
if(attr_found.bits.state == attr_goal.bits.state) {
64d6: 785b ldrb r3, [r3, #1]
64d8: 4655 mov r5, sl
64da: 405d eors r5, r3
64dc: 066b lsls r3, r5, #25
64de: d115 bne.n 650c <_lv_style_set_ptr+0xdc>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *));
64e0: 3202 adds r2, #2
64e2: 18a4 adds r4, r4, r2
64e4: ab04 add r3, sp, #16
64e6: 781a ldrb r2, [r3, #0]
64e8: 7022 strb r2, [r4, #0]
64ea: 785a ldrb r2, [r3, #1]
64ec: 7062 strb r2, [r4, #1]
64ee: 789a ldrb r2, [r3, #2]
64f0: 70a2 strb r2, [r4, #2]
64f2: 78db ldrb r3, [r3, #3]
64f4: 70e3 strb r3, [r4, #3]
}
64f6: b009 add sp, #36 ; 0x24
64f8: bc3c pop {r2, r3, r4, r5}
64fa: 4690 mov r8, r2
64fc: 4699 mov r9, r3
64fe: 46a2 mov sl, r4
6500: 46ab mov fp, r5
6502: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6504: 2301 movs r3, #1
6506: 425b negs r3, r3
6508: 4698 mov r8, r3
650a: e7e0 b.n 64ce <_lv_style_set_ptr+0x9e>
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
650c: 22ff movs r2, #255 ; 0xff
650e: 2316 movs r3, #22
6510: a902 add r1, sp, #8
6512: 468c mov ip, r1
6514: 4463 add r3, ip
6516: 801a strh r2, [r3, #0]
uint16_t size = _lv_style_get_mem_size(style);
6518: 0030 movs r0, r6
651a: 4b22 ldr r3, [pc, #136] ; (65a4 <_lv_style_set_ptr+0x174>)
651c: 4798 blx r3
if(size == 0) size += end_mark_size;
651e: 2800 cmp r0, #0
6520: d100 bne.n 6524 <_lv_style_set_ptr+0xf4>
6522: 3002 adds r0, #2
size += sizeof(lv_style_property_t) + sizeof(const void *);
6524: 3006 adds r0, #6
style->map = lv_mem_realloc(style->map, size);
6526: b285 uxth r5, r0
6528: 0029 movs r1, r5
652a: 0020 movs r0, r4
652c: 4b1e ldr r3, [pc, #120] ; (65a8 <_lv_style_set_ptr+0x178>)
652e: 4798 blx r3
6530: 6030 str r0, [r6, #0]
LV_ASSERT_MEM(style->map);
6532: 4b1e ldr r3, [pc, #120] ; (65ac <_lv_style_set_ptr+0x17c>)
6534: 4798 blx r3
6536: 2800 cmp r0, #0
6538: d027 beq.n 658a <_lv_style_set_ptr+0x15a>
if(style == NULL) return;
653a: 2e00 cmp r6, #0
653c: d0db beq.n 64f6 <_lv_style_set_ptr+0xc6>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
653e: 002b movs r3, r5
6540: 3b08 subs r3, #8
6542: 6832 ldr r2, [r6, #0]
6544: 4694 mov ip, r2
6546: 4463 add r3, ip
6548: 220e movs r2, #14
654a: a902 add r1, sp, #8
654c: 468c mov ip, r1
654e: 4462 add r2, ip
6550: 7811 ldrb r1, [r2, #0]
6552: 7019 strb r1, [r3, #0]
6554: 7852 ldrb r2, [r2, #1]
6556: 705a strb r2, [r3, #1]
6558: 1fab subs r3, r5, #6
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
655a: 6832 ldr r2, [r6, #0]
655c: 4694 mov ip, r2
655e: 4463 add r3, ip
6560: aa04 add r2, sp, #16
6562: 7811 ldrb r1, [r2, #0]
6564: 7019 strb r1, [r3, #0]
6566: 7851 ldrb r1, [r2, #1]
6568: 7059 strb r1, [r3, #1]
656a: 7891 ldrb r1, [r2, #2]
656c: 7099 strb r1, [r3, #2]
656e: 78d2 ldrb r2, [r2, #3]
6570: 70da strb r2, [r3, #3]
6572: 3d02 subs r5, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
6574: 6833 ldr r3, [r6, #0]
6576: 195d adds r5, r3, r5
6578: 2316 movs r3, #22
657a: aa02 add r2, sp, #8
657c: 4694 mov ip, r2
657e: 4463 add r3, ip
6580: 781a ldrb r2, [r3, #0]
6582: 702a strb r2, [r5, #0]
6584: 785b ldrb r3, [r3, #1]
6586: 706b strb r3, [r5, #1]
6588: e7b5 b.n 64f6 <_lv_style_set_ptr+0xc6>
LV_ASSERT_MEM(style->map);
658a: 4b09 ldr r3, [pc, #36] ; (65b0 <_lv_style_set_ptr+0x180>)
658c: 9300 str r3, [sp, #0]
658e: 4a09 ldr r2, [pc, #36] ; (65b4 <_lv_style_set_ptr+0x184>)
6590: 4909 ldr r1, [pc, #36] ; (65b8 <_lv_style_set_ptr+0x188>)
6592: 3003 adds r0, #3
6594: 4c09 ldr r4, [pc, #36] ; (65bc <_lv_style_set_ptr+0x18c>)
6596: 47a0 blx r4
6598: 6832 ldr r2, [r6, #0]
659a: 2300 movs r3, #0
659c: 4808 ldr r0, [pc, #32] ; (65c0 <_lv_style_set_ptr+0x190>)
659e: 4909 ldr r1, [pc, #36] ; (65c4 <_lv_style_set_ptr+0x194>)
65a0: 4788 blx r1
65a2: e7fe b.n 65a2 <_lv_style_set_ptr+0x172>
65a4: 00005e15 .word 0x00005e15
65a8: 000126fd .word 0x000126fd
65ac: 000017ad .word 0x000017ad
65b0: 00025e9c .word 0x00025e9c
65b4: 00000213 .word 0x00000213
65b8: 00025f58 .word 0x00025f58
65bc: 00012159 .word 0x00012159
65c0: 00025854 .word 0x00025854
65c4: 000017b5 .word 0x000017b5
000065c8 <_lv_style_get_int>:
{
65c8: b5f0 push {r4, r5, r6, r7, lr}
65ca: 46de mov lr, fp
65cc: 4657 mov r7, sl
65ce: 464e mov r6, r9
65d0: 4645 mov r5, r8
65d2: b5e0 push {r5, r6, r7, lr}
65d4: b085 sub sp, #20
65d6: 4681 mov r9, r0
65d8: 9203 str r2, [sp, #12]
if(style == NULL) return -1;
65da: 2800 cmp r0, #0
65dc: d05b beq.n 6696 <_lv_style_get_int+0xce>
if(style->map == NULL) return -1;
65de: 6805 ldr r5, [r0, #0]
65e0: 2d00 cmp r5, #0
65e2: d05b beq.n 669c <_lv_style_get_int+0xd4>
uint8_t id_to_find = prop & 0xFF;
65e4: b2ce uxtb r6, r1
attr.full = (prop >> 8) & 0xFF;
65e6: 0a09 lsrs r1, r1, #8
65e8: 1c08 adds r0, r1, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
65ea: 782b ldrb r3, [r5, #0]
65ec: 2bff cmp r3, #255 ; 0xff
65ee: d04e beq.n 668e <_lv_style_get_int+0xc6>
65f0: 2201 movs r2, #1
65f2: 4252 negs r2, r2
65f4: 9202 str r2, [sp, #8]
65f6: 4693 mov fp, r2
65f8: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
65fa: 247f movs r4, #127 ; 0x7f
65fc: 46a2 mov sl, r4
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
65fe: 0640 lsls r0, r0, #25
6600: 0e40 lsrs r0, r0, #25
6602: 4684 mov ip, r0
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6604: 270f movs r7, #15
6606: 4688 mov r8, r1
6608: e01a b.n 6640 <_lv_style_get_int+0x78>
attr_i.full = style->map[i + 1];
660a: 18a8 adds r0, r5, r2
660c: 7840 ldrb r0, [r0, #1]
if(attr_i.bits.state == attr.bits.state) {
660e: 4644 mov r4, r8
6610: 4044 eors r4, r0
6612: 4651 mov r1, sl
6614: 4221 tst r1, r4
6616: d00d beq.n 6634 <_lv_style_get_int+0x6c>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6618: 0640 lsls r0, r0, #25
661a: 0e40 lsrs r0, r0, #25
661c: 9001 str r0, [sp, #4]
661e: 0004 movs r4, r0
6620: 4661 mov r1, ip
6622: 438c bics r4, r1
6624: d10e bne.n 6644 <_lv_style_get_int+0x7c>
if(attr_i.bits.state > weight) {
6626: 4558 cmp r0, fp
6628: dd0c ble.n 6644 <_lv_style_get_int+0x7c>
weight = attr_i.bits.state;
662a: b201 sxth r1, r0
662c: 468b mov fp, r1
id_guess = i;
662e: b211 sxth r1, r2
6630: 9102 str r1, [sp, #8]
6632: e007 b.n 6644 <_lv_style_get_int+0x7c>
6634: 4641 mov r1, r8
6636: e013 b.n 6660 <_lv_style_get_int+0x98>
i += sizeof(lv_style_property_t);
6638: 1c82 adds r2, r0, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
663a: 5cab ldrb r3, [r5, r2]
663c: 2bff cmp r3, #255 ; 0xff
663e: d00d beq.n 665c <_lv_style_get_int+0x94>
if(style->map[i] == id_to_find) {
6640: 429e cmp r6, r3
6642: d0e2 beq.n 660a <_lv_style_get_int+0x42>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6644: 403b ands r3, r7
6646: 1c90 adds r0, r2, #2
6648: 2b08 cmp r3, #8
664a: ddf5 ble.n 6638 <_lv_style_get_int+0x70>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
664c: 1c90 adds r0, r2, #2
664e: 2b0b cmp r3, #11
6650: ddf2 ble.n 6638 <_lv_style_get_int+0x70>
else i += sizeof(const void *);
6652: 1d10 adds r0, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
6654: 2b0d cmp r3, #13
6656: dcef bgt.n 6638 <_lv_style_get_int+0x70>
6658: 1c50 adds r0, r2, #1
665a: e7ed b.n 6638 <_lv_style_get_int+0x70>
665c: 4641 mov r1, r8
return id_guess;
665e: 9a02 ldr r2, [sp, #8]
if(id < 0) {
6660: 2a00 cmp r2, #0
6662: db1e blt.n 66a2 <_lv_style_get_int+0xda>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t));
6664: 1c93 adds r3, r2, #2
6666: 18ed adds r5, r5, r3
6668: 782b ldrb r3, [r5, #0]
666a: 9803 ldr r0, [sp, #12]
666c: 7003 strb r3, [r0, #0]
666e: 786b ldrb r3, [r5, #1]
6670: 7043 strb r3, [r0, #1]
attr_act.full = style->map[id + 1];
6672: 464b mov r3, r9
6674: 681b ldr r3, [r3, #0]
6676: 189a adds r2, r3, r2
6678: 7850 ldrb r0, [r2, #1]
return attr_act.bits.state & attr_goal.bits.state;
667a: 0649 lsls r1, r1, #25
667c: 0e49 lsrs r1, r1, #25
667e: 4008 ands r0, r1
}
6680: b005 add sp, #20
6682: bc3c pop {r2, r3, r4, r5}
6684: 4690 mov r8, r2
6686: 4699 mov r9, r3
6688: 46a2 mov sl, r4
668a: 46ab mov fp, r5
668c: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
668e: 2301 movs r3, #1
6690: 425b negs r3, r3
6692: 9302 str r3, [sp, #8]
6694: e7e3 b.n 665e <_lv_style_get_int+0x96>
if(style == NULL) return -1;
6696: 2001 movs r0, #1
6698: 4240 negs r0, r0
669a: e7f1 b.n 6680 <_lv_style_get_int+0xb8>
if(style->map == NULL) return -1;
669c: 2001 movs r0, #1
669e: 4240 negs r0, r0
66a0: e7ee b.n 6680 <_lv_style_get_int+0xb8>
return -1;
66a2: 2001 movs r0, #1
66a4: 4240 negs r0, r0
66a6: e7eb b.n 6680 <_lv_style_get_int+0xb8>
000066a8 <_lv_style_get_opa>:
{
66a8: b5f0 push {r4, r5, r6, r7, lr}
66aa: 46de mov lr, fp
66ac: 4657 mov r7, sl
66ae: 464e mov r6, r9
66b0: 4645 mov r5, r8
66b2: b5e0 push {r5, r6, r7, lr}
66b4: b085 sub sp, #20
66b6: 4681 mov r9, r0
66b8: 9203 str r2, [sp, #12]
if(style == NULL) return -1;
66ba: 2800 cmp r0, #0
66bc: d058 beq.n 6770 <_lv_style_get_opa+0xc8>
if(style->map == NULL) return -1;
66be: 6805 ldr r5, [r0, #0]
66c0: 2d00 cmp r5, #0
66c2: d058 beq.n 6776 <_lv_style_get_opa+0xce>
uint8_t id_to_find = prop & 0xFF;
66c4: b2ce uxtb r6, r1
attr.full = (prop >> 8) & 0xFF;
66c6: 0a09 lsrs r1, r1, #8
66c8: 1c08 adds r0, r1, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
66ca: 782b ldrb r3, [r5, #0]
66cc: 2bff cmp r3, #255 ; 0xff
66ce: d04b beq.n 6768 <_lv_style_get_opa+0xc0>
66d0: 2201 movs r2, #1
66d2: 4252 negs r2, r2
66d4: 9202 str r2, [sp, #8]
66d6: 4693 mov fp, r2
66d8: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
66da: 247f movs r4, #127 ; 0x7f
66dc: 46a2 mov sl, r4
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
66de: 0640 lsls r0, r0, #25
66e0: 0e40 lsrs r0, r0, #25
66e2: 4684 mov ip, r0
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
66e4: 270f movs r7, #15
66e6: 4688 mov r8, r1
66e8: e01a b.n 6720 <_lv_style_get_opa+0x78>
attr_i.full = style->map[i + 1];
66ea: 18a8 adds r0, r5, r2
66ec: 7840 ldrb r0, [r0, #1]
if(attr_i.bits.state == attr.bits.state) {
66ee: 4644 mov r4, r8
66f0: 4044 eors r4, r0
66f2: 4651 mov r1, sl
66f4: 4221 tst r1, r4
66f6: d00d beq.n 6714 <_lv_style_get_opa+0x6c>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
66f8: 0640 lsls r0, r0, #25
66fa: 0e40 lsrs r0, r0, #25
66fc: 9001 str r0, [sp, #4]
66fe: 0004 movs r4, r0
6700: 4661 mov r1, ip
6702: 438c bics r4, r1
6704: d10e bne.n 6724 <_lv_style_get_opa+0x7c>
if(attr_i.bits.state > weight) {
6706: 4558 cmp r0, fp
6708: dd0c ble.n 6724 <_lv_style_get_opa+0x7c>
weight = attr_i.bits.state;
670a: b201 sxth r1, r0
670c: 468b mov fp, r1
id_guess = i;
670e: b211 sxth r1, r2
6710: 9102 str r1, [sp, #8]
6712: e007 b.n 6724 <_lv_style_get_opa+0x7c>
6714: 4641 mov r1, r8
6716: e013 b.n 6740 <_lv_style_get_opa+0x98>
i += sizeof(lv_style_property_t);
6718: 1c82 adds r2, r0, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
671a: 5cab ldrb r3, [r5, r2]
671c: 2bff cmp r3, #255 ; 0xff
671e: d00d beq.n 673c <_lv_style_get_opa+0x94>
if(style->map[i] == id_to_find) {
6720: 429e cmp r6, r3
6722: d0e2 beq.n 66ea <_lv_style_get_opa+0x42>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
6724: 403b ands r3, r7
6726: 1c90 adds r0, r2, #2
6728: 2b08 cmp r3, #8
672a: ddf5 ble.n 6718 <_lv_style_get_opa+0x70>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
672c: 1c90 adds r0, r2, #2
672e: 2b0b cmp r3, #11
6730: ddf2 ble.n 6718 <_lv_style_get_opa+0x70>
else i += sizeof(const void *);
6732: 1d10 adds r0, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
6734: 2b0d cmp r3, #13
6736: dcef bgt.n 6718 <_lv_style_get_opa+0x70>
6738: 1c50 adds r0, r2, #1
673a: e7ed b.n 6718 <_lv_style_get_opa+0x70>
673c: 4641 mov r1, r8
return id_guess;
673e: 9a02 ldr r2, [sp, #8]
if(id < 0) {
6740: 2a00 cmp r2, #0
6742: db1b blt.n 677c <_lv_style_get_opa+0xd4>
6744: 18ad adds r5, r5, r2
6746: 78ab ldrb r3, [r5, #2]
6748: 9803 ldr r0, [sp, #12]
674a: 7003 strb r3, [r0, #0]
attr_act.full = style->map[id + 1];
674c: 464b mov r3, r9
674e: 681b ldr r3, [r3, #0]
6750: 189a adds r2, r3, r2
6752: 7850 ldrb r0, [r2, #1]
return attr_act.bits.state & attr_goal.bits.state;
6754: 0649 lsls r1, r1, #25
6756: 0e49 lsrs r1, r1, #25
6758: 4008 ands r0, r1
}
675a: b005 add sp, #20
675c: bc3c pop {r2, r3, r4, r5}
675e: 4690 mov r8, r2
6760: 4699 mov r9, r3
6762: 46a2 mov sl, r4
6764: 46ab mov fp, r5
6766: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6768: 2301 movs r3, #1
676a: 425b negs r3, r3
676c: 9302 str r3, [sp, #8]
676e: e7e6 b.n 673e <_lv_style_get_opa+0x96>
if(style == NULL) return -1;
6770: 2001 movs r0, #1
6772: 4240 negs r0, r0
6774: e7f1 b.n 675a <_lv_style_get_opa+0xb2>
if(style->map == NULL) return -1;
6776: 2001 movs r0, #1
6778: 4240 negs r0, r0
677a: e7ee b.n 675a <_lv_style_get_opa+0xb2>
return -1;
677c: 2001 movs r0, #1
677e: 4240 negs r0, r0
6780: e7eb b.n 675a <_lv_style_get_opa+0xb2>
00006782 <_lv_style_get_color>:
{
6782: b5f0 push {r4, r5, r6, r7, lr}
6784: 46de mov lr, fp
6786: 4657 mov r7, sl
6788: 464e mov r6, r9
678a: 4645 mov r5, r8
678c: b5e0 push {r5, r6, r7, lr}
678e: b085 sub sp, #20
6790: 4681 mov r9, r0
6792: 9203 str r2, [sp, #12]
if(style == NULL) return -1;
6794: 2800 cmp r0, #0
6796: d05b beq.n 6850 <_lv_style_get_color+0xce>
if(style->map == NULL) return -1;
6798: 6805 ldr r5, [r0, #0]
679a: 2d00 cmp r5, #0
679c: d05b beq.n 6856 <_lv_style_get_color+0xd4>
uint8_t id_to_find = prop & 0xFF;
679e: b2ce uxtb r6, r1
attr.full = (prop >> 8) & 0xFF;
67a0: 0a09 lsrs r1, r1, #8
67a2: 1c08 adds r0, r1, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
67a4: 782b ldrb r3, [r5, #0]
67a6: 2bff cmp r3, #255 ; 0xff
67a8: d04e beq.n 6848 <_lv_style_get_color+0xc6>
67aa: 2201 movs r2, #1
67ac: 4252 negs r2, r2
67ae: 9202 str r2, [sp, #8]
67b0: 4693 mov fp, r2
67b2: 2200 movs r2, #0
if(attr_i.bits.state == attr.bits.state) {
67b4: 247f movs r4, #127 ; 0x7f
67b6: 46a2 mov sl, r4
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
67b8: 0640 lsls r0, r0, #25
67ba: 0e40 lsrs r0, r0, #25
67bc: 4684 mov ip, r0
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
67be: 270f movs r7, #15
67c0: 4688 mov r8, r1
67c2: e01a b.n 67fa <_lv_style_get_color+0x78>
attr_i.full = style->map[i + 1];
67c4: 18a8 adds r0, r5, r2
67c6: 7840 ldrb r0, [r0, #1]
if(attr_i.bits.state == attr.bits.state) {
67c8: 4644 mov r4, r8
67ca: 4044 eors r4, r0
67cc: 4651 mov r1, sl
67ce: 4221 tst r1, r4
67d0: d00d beq.n 67ee <_lv_style_get_color+0x6c>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
67d2: 0640 lsls r0, r0, #25
67d4: 0e40 lsrs r0, r0, #25
67d6: 9001 str r0, [sp, #4]
67d8: 0004 movs r4, r0
67da: 4661 mov r1, ip
67dc: 438c bics r4, r1
67de: d10e bne.n 67fe <_lv_style_get_color+0x7c>
if(attr_i.bits.state > weight) {
67e0: 4558 cmp r0, fp
67e2: dd0c ble.n 67fe <_lv_style_get_color+0x7c>
weight = attr_i.bits.state;
67e4: b201 sxth r1, r0
67e6: 468b mov fp, r1
id_guess = i;
67e8: b211 sxth r1, r2
67ea: 9102 str r1, [sp, #8]
67ec: e007 b.n 67fe <_lv_style_get_color+0x7c>
67ee: 4641 mov r1, r8
67f0: e013 b.n 681a <_lv_style_get_color+0x98>
i += sizeof(lv_style_property_t);
67f2: 1c82 adds r2, r0, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
67f4: 5cab ldrb r3, [r5, r2]
67f6: 2bff cmp r3, #255 ; 0xff
67f8: d00d beq.n 6816 <_lv_style_get_color+0x94>
if(style->map[i] == id_to_find) {
67fa: 429e cmp r6, r3
67fc: d0e2 beq.n 67c4 <_lv_style_get_color+0x42>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
67fe: 403b ands r3, r7
6800: 1c90 adds r0, r2, #2
6802: 2b08 cmp r3, #8
6804: ddf5 ble.n 67f2 <_lv_style_get_color+0x70>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
6806: 1c90 adds r0, r2, #2
6808: 2b0b cmp r3, #11
680a: ddf2 ble.n 67f2 <_lv_style_get_color+0x70>
else i += sizeof(const void *);
680c: 1d10 adds r0, r2, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
680e: 2b0d cmp r3, #13
6810: dcef bgt.n 67f2 <_lv_style_get_color+0x70>
6812: 1c50 adds r0, r2, #1
6814: e7ed b.n 67f2 <_lv_style_get_color+0x70>
6816: 4641 mov r1, r8
return id_guess;
6818: 9a02 ldr r2, [sp, #8]
if(id < 0) {
681a: 2a00 cmp r2, #0
681c: db1e blt.n 685c <_lv_style_get_color+0xda>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_color_t));
681e: 1c93 adds r3, r2, #2
6820: 18ed adds r5, r5, r3
6822: 782b ldrb r3, [r5, #0]
6824: 9803 ldr r0, [sp, #12]
6826: 7003 strb r3, [r0, #0]
6828: 786b ldrb r3, [r5, #1]
682a: 7043 strb r3, [r0, #1]
attr_act.full = style->map[id + 1];
682c: 464b mov r3, r9
682e: 681b ldr r3, [r3, #0]
6830: 189a adds r2, r3, r2
6832: 7850 ldrb r0, [r2, #1]
return attr_act.bits.state & attr_goal.bits.state;
6834: 0649 lsls r1, r1, #25
6836: 0e49 lsrs r1, r1, #25
6838: 4008 ands r0, r1
}
683a: b005 add sp, #20
683c: bc3c pop {r2, r3, r4, r5}
683e: 4690 mov r8, r2
6840: 4699 mov r9, r3
6842: 46a2 mov sl, r4
6844: 46ab mov fp, r5
6846: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6848: 2301 movs r3, #1
684a: 425b negs r3, r3
684c: 9302 str r3, [sp, #8]
684e: e7e3 b.n 6818 <_lv_style_get_color+0x96>
if(style == NULL) return -1;
6850: 2001 movs r0, #1
6852: 4240 negs r0, r0
6854: e7f1 b.n 683a <_lv_style_get_color+0xb8>
if(style->map == NULL) return -1;
6856: 2001 movs r0, #1
6858: 4240 negs r0, r0
685a: e7ee b.n 683a <_lv_style_get_color+0xb8>
return -1;
685c: 2001 movs r0, #1
685e: 4240 negs r0, r0
6860: e7eb b.n 683a <_lv_style_get_color+0xb8>
00006862 <_lv_style_get_ptr>:
{
6862: b5f0 push {r4, r5, r6, r7, lr}
6864: 46de mov lr, fp
6866: 4657 mov r7, sl
6868: 464e mov r6, r9
686a: 4645 mov r5, r8
686c: b5e0 push {r5, r6, r7, lr}
686e: b085 sub sp, #20
6870: 4681 mov r9, r0
6872: 4693 mov fp, r2
if(style == NULL) return -1;
6874: 2800 cmp r0, #0
6876: d05f beq.n 6938 <_lv_style_get_ptr+0xd6>
if(style->map == NULL) return -1;
6878: 6806 ldr r6, [r0, #0]
687a: 2e00 cmp r6, #0
687c: d05f beq.n 693e <_lv_style_get_ptr+0xdc>
uint8_t id_to_find = prop & 0xFF;
687e: b2cf uxtb r7, r1
attr.full = (prop >> 8) & 0xFF;
6880: 0a0a lsrs r2, r1, #8
6882: 1c11 adds r1, r2, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
6884: 7833 ldrb r3, [r6, #0]
6886: 2bff cmp r3, #255 ; 0xff
6888: d052 beq.n 6930 <_lv_style_get_ptr+0xce>
688a: 2001 movs r0, #1
688c: 4240 negs r0, r0
688e: 9003 str r0, [sp, #12]
6890: 9002 str r0, [sp, #8]
6892: 2400 movs r4, #0
if(attr_i.bits.state == attr.bits.state) {
6894: 3080 adds r0, #128 ; 0x80
6896: 4682 mov sl, r0
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
6898: 0649 lsls r1, r1, #25
689a: 0e49 lsrs r1, r1, #25
689c: 468c mov ip, r1
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
689e: 210f movs r1, #15
68a0: 4690 mov r8, r2
68a2: e01b b.n 68dc <_lv_style_get_ptr+0x7a>
attr_i.full = style->map[i + 1];
68a4: 1932 adds r2, r6, r4
68a6: 7850 ldrb r0, [r2, #1]
if(attr_i.bits.state == attr.bits.state) {
68a8: 4642 mov r2, r8
68aa: 4042 eors r2, r0
68ac: 4655 mov r5, sl
68ae: 4215 tst r5, r2
68b0: d00e beq.n 68d0 <_lv_style_get_ptr+0x6e>
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
68b2: 0640 lsls r0, r0, #25
68b4: 0e40 lsrs r0, r0, #25
68b6: 9001 str r0, [sp, #4]
68b8: 0005 movs r5, r0
68ba: 4662 mov r2, ip
68bc: 4395 bics r5, r2
68be: d10f bne.n 68e0 <_lv_style_get_ptr+0x7e>
if(attr_i.bits.state > weight) {
68c0: 9a02 ldr r2, [sp, #8]
68c2: 4290 cmp r0, r2
68c4: dd0c ble.n 68e0 <_lv_style_get_ptr+0x7e>
weight = attr_i.bits.state;
68c6: b202 sxth r2, r0
68c8: 9202 str r2, [sp, #8]
id_guess = i;
68ca: b222 sxth r2, r4
68cc: 9203 str r2, [sp, #12]
68ce: e007 b.n 68e0 <_lv_style_get_ptr+0x7e>
68d0: 4642 mov r2, r8
68d2: e013 b.n 68fc <_lv_style_get_ptr+0x9a>
i += sizeof(lv_style_property_t);
68d4: 1c94 adds r4, r2, #2
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
68d6: 5d33 ldrb r3, [r6, r4]
68d8: 2bff cmp r3, #255 ; 0xff
68da: d00d beq.n 68f8 <_lv_style_get_ptr+0x96>
if(style->map[i] == id_to_find) {
68dc: 429f cmp r7, r3
68de: d0e1 beq.n 68a4 <_lv_style_get_ptr+0x42>
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
68e0: 400b ands r3, r1
68e2: 1ca2 adds r2, r4, #2
68e4: 2b08 cmp r3, #8
68e6: ddf5 ble.n 68d4 <_lv_style_get_ptr+0x72>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
68e8: 1ca2 adds r2, r4, #2
68ea: 2b0b cmp r3, #11
68ec: ddf2 ble.n 68d4 <_lv_style_get_ptr+0x72>
else i += sizeof(const void *);
68ee: 1d22 adds r2, r4, #4
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
68f0: 2b0d cmp r3, #13
68f2: dcef bgt.n 68d4 <_lv_style_get_ptr+0x72>
68f4: 1c62 adds r2, r4, #1
68f6: e7ed b.n 68d4 <_lv_style_get_ptr+0x72>
68f8: 4642 mov r2, r8
return id_guess;
68fa: 9c03 ldr r4, [sp, #12]
if(id < 0) {
68fc: 2c00 cmp r4, #0
68fe: db21 blt.n 6944 <_lv_style_get_ptr+0xe2>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *));
6900: 0020 movs r0, r4
6902: 3402 adds r4, #2
6904: 1936 adds r6, r6, r4
6906: 2300 movs r3, #0
6908: 465c mov r4, fp
690a: 5cf1 ldrb r1, [r6, r3]
690c: 54e1 strb r1, [r4, r3]
690e: 3301 adds r3, #1
while(len) {
6910: 2b04 cmp r3, #4
6912: d1fa bne.n 690a <_lv_style_get_ptr+0xa8>
attr_act.full = style->map[id + 1];
6914: 464b mov r3, r9
6916: 681b ldr r3, [r3, #0]
6918: 181b adds r3, r3, r0
691a: 7858 ldrb r0, [r3, #1]
return attr_act.bits.state & attr_goal.bits.state;
691c: 0652 lsls r2, r2, #25
691e: 0e52 lsrs r2, r2, #25
6920: 4010 ands r0, r2
}
6922: b005 add sp, #20
6924: bc3c pop {r2, r3, r4, r5}
6926: 4690 mov r8, r2
6928: 4699 mov r9, r3
692a: 46a2 mov sl, r4
692c: 46ab mov fp, r5
692e: bdf0 pop {r4, r5, r6, r7, pc}
int16_t id_guess = -1;
6930: 2301 movs r3, #1
6932: 425b negs r3, r3
6934: 9303 str r3, [sp, #12]
6936: e7e0 b.n 68fa <_lv_style_get_ptr+0x98>
if(style == NULL) return -1;
6938: 2001 movs r0, #1
693a: 4240 negs r0, r0
693c: e7f1 b.n 6922 <_lv_style_get_ptr+0xc0>
if(style->map == NULL) return -1;
693e: 2001 movs r0, #1
6940: 4240 negs r0, r0
6942: e7ee b.n 6922 <_lv_style_get_ptr+0xc0>
return -1;
6944: 2001 movs r0, #1
6946: 4240 negs r0, r0
6948: e7eb b.n 6922 <_lv_style_get_ptr+0xc0>
0000694a <lv_style_list_get_local_style>:
if(!list->has_local) return NULL;
694a: 7943 ldrb r3, [r0, #5]
694c: 07da lsls r2, r3, #31
694e: d507 bpl.n 6960 <lv_style_list_get_local_style+0x16>
if(list->has_trans) return list->style_list[1];
6950: 079b lsls r3, r3, #30
6952: d402 bmi.n 695a <lv_style_list_get_local_style+0x10>
else return list->style_list[0];
6954: 6803 ldr r3, [r0, #0]
6956: 6818 ldr r0, [r3, #0]
}
6958: 4770 bx lr
if(list->has_trans) return list->style_list[1];
695a: 6803 ldr r3, [r0, #0]
695c: 6858 ldr r0, [r3, #4]
695e: e7fb b.n 6958 <lv_style_list_get_local_style+0xe>
if(!list->has_local) return NULL;
6960: 2000 movs r0, #0
6962: e7f9 b.n 6958 <lv_style_list_get_local_style+0xe>
00006964 <_lv_style_list_get_transition_style>:
if(!list->has_trans) return NULL;
6964: 7943 ldrb r3, [r0, #5]
6966: 079b lsls r3, r3, #30
6968: d502 bpl.n 6970 <_lv_style_list_get_transition_style+0xc>
return list->style_list[0];
696a: 6803 ldr r3, [r0, #0]
696c: 6818 ldr r0, [r3, #0]
}
696e: 4770 bx lr
if(!list->has_trans) return NULL;
6970: 2000 movs r0, #0
6972: e7fc b.n 696e <_lv_style_list_get_transition_style+0xa>
00006974 <_lv_style_list_reset>:
{
6974: b570 push {r4, r5, r6, lr}
6976: 1e04 subs r4, r0, #0
if(list == NULL) return;
6978: d026 beq.n 69c8 <_lv_style_list_reset+0x54>
if(list->has_local) {
697a: 7943 ldrb r3, [r0, #5]
697c: 07db lsls r3, r3, #31
697e: d508 bpl.n 6992 <_lv_style_list_reset+0x1e>
lv_style_t * local = lv_style_list_get_local_style(list);
6980: 4b14 ldr r3, [pc, #80] ; (69d4 <_lv_style_list_reset+0x60>)
6982: 4798 blx r3
6984: 1e05 subs r5, r0, #0
if(local) {
6986: d004 beq.n 6992 <_lv_style_list_reset+0x1e>
lv_style_reset(local);
6988: 4b13 ldr r3, [pc, #76] ; (69d8 <_lv_style_list_reset+0x64>)
698a: 4798 blx r3
lv_mem_free(local);
698c: 0028 movs r0, r5
698e: 4b13 ldr r3, [pc, #76] ; (69dc <_lv_style_list_reset+0x68>)
6990: 4798 blx r3
if(list->has_trans) {
6992: 7963 ldrb r3, [r4, #5]
6994: 079b lsls r3, r3, #30
6996: d509 bpl.n 69ac <_lv_style_list_reset+0x38>
lv_style_t * trans = _lv_style_list_get_transition_style(list);
6998: 0020 movs r0, r4
699a: 4b11 ldr r3, [pc, #68] ; (69e0 <_lv_style_list_reset+0x6c>)
699c: 4798 blx r3
699e: 1e05 subs r5, r0, #0
if(trans) {
69a0: d004 beq.n 69ac <_lv_style_list_reset+0x38>
lv_style_reset(trans);
69a2: 4b0d ldr r3, [pc, #52] ; (69d8 <_lv_style_list_reset+0x64>)
69a4: 4798 blx r3
lv_mem_free(trans);
69a6: 0028 movs r0, r5
69a8: 4b0c ldr r3, [pc, #48] ; (69dc <_lv_style_list_reset+0x68>)
69aa: 4798 blx r3
if(list->style_cnt > 0) lv_mem_free(list->style_list);
69ac: 7923 ldrb r3, [r4, #4]
69ae: 2b00 cmp r3, #0
69b0: d10b bne.n 69ca <_lv_style_list_reset+0x56>
list->style_list = NULL;
69b2: 2300 movs r3, #0
69b4: 6023 str r3, [r4, #0]
list->style_cnt = 0;
69b6: 7123 strb r3, [r4, #4]
list->has_local = 0;
69b8: 7963 ldrb r3, [r4, #5]
list->has_trans = 0;
69ba: 2201 movs r2, #1
69bc: 4393 bics r3, r2
list->skip_trans = 0;
69be: 3201 adds r2, #1
69c0: 4393 bics r3, r2
69c2: 3202 adds r2, #2
69c4: 4393 bics r3, r2
69c6: 7163 strb r3, [r4, #5]
}
69c8: bd70 pop {r4, r5, r6, pc}
if(list->style_cnt > 0) lv_mem_free(list->style_list);
69ca: 6820 ldr r0, [r4, #0]
69cc: 4b03 ldr r3, [pc, #12] ; (69dc <_lv_style_list_reset+0x68>)
69ce: 4798 blx r3
69d0: e7ef b.n 69b2 <_lv_style_list_reset+0x3e>
69d2: 46c0 nop ; (mov r8, r8)
69d4: 0000694b .word 0x0000694b
69d8: 00005e01 .word 0x00005e01
69dc: 000123c9 .word 0x000123c9
69e0: 00006965 .word 0x00006965
000069e4 <lv_style_list_copy>:
{
69e4: b570 push {r4, r5, r6, lr}
69e6: 0005 movs r5, r0
69e8: 000c movs r4, r1
_lv_style_list_reset(list_dest);
69ea: 4b2b ldr r3, [pc, #172] ; (6a98 <lv_style_list_copy+0xb4>)
69ec: 4798 blx r3
if(list_src->style_list == NULL) return;
69ee: 6823 ldr r3, [r4, #0]
69f0: 2b00 cmp r3, #0
69f2: d03e beq.n 6a72 <lv_style_list_copy+0x8e>
if(list_src->has_local == 0) {
69f4: 7963 ldrb r3, [r4, #5]
69f6: 07da lsls r2, r3, #31
69f8: d41f bmi.n 6a3a <lv_style_list_copy+0x56>
if(list_src->has_trans) {
69fa: 079b lsls r3, r3, #30
69fc: d510 bpl.n 6a20 <lv_style_list_copy+0x3c>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
69fe: 7920 ldrb r0, [r4, #4]
6a00: 3801 subs r0, #1
6a02: 0080 lsls r0, r0, #2
6a04: 4b25 ldr r3, [pc, #148] ; (6a9c <lv_style_list_copy+0xb8>)
6a06: 4798 blx r3
6a08: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *));
6a0a: 7922 ldrb r2, [r4, #4]
6a0c: 3a01 subs r2, #1
6a0e: 0092 lsls r2, r2, #2
6a10: 6823 ldr r3, [r4, #0]
6a12: 1d19 adds r1, r3, #4
6a14: 4b22 ldr r3, [pc, #136] ; (6aa0 <lv_style_list_copy+0xbc>)
6a16: 4798 blx r3
list_dest->style_cnt = list_src->style_cnt - 1;
6a18: 7923 ldrb r3, [r4, #4]
6a1a: 3b01 subs r3, #1
6a1c: 712b strb r3, [r5, #4]
6a1e: e028 b.n 6a72 <lv_style_list_copy+0x8e>
list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *));
6a20: 7920 ldrb r0, [r4, #4]
6a22: 0080 lsls r0, r0, #2
6a24: 4b1d ldr r3, [pc, #116] ; (6a9c <lv_style_list_copy+0xb8>)
6a26: 4798 blx r3
6a28: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *));
6a2a: 7922 ldrb r2, [r4, #4]
6a2c: 0092 lsls r2, r2, #2
6a2e: 6821 ldr r1, [r4, #0]
6a30: 4b1b ldr r3, [pc, #108] ; (6aa0 <lv_style_list_copy+0xbc>)
6a32: 4798 blx r3
list_dest->style_cnt = list_src->style_cnt;
6a34: 7923 ldrb r3, [r4, #4]
6a36: 712b strb r3, [r5, #4]
6a38: e01b b.n 6a72 <lv_style_list_copy+0x8e>
if(list_src->has_trans) {
6a3a: 079b lsls r3, r3, #30
6a3c: d51a bpl.n 6a74 <lv_style_list_copy+0x90>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *));
6a3e: 7920 ldrb r0, [r4, #4]
6a40: 3802 subs r0, #2
6a42: 0080 lsls r0, r0, #2
6a44: 4b15 ldr r3, [pc, #84] ; (6a9c <lv_style_list_copy+0xb8>)
6a46: 4798 blx r3
6a48: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 2, (list_src->style_cnt - 2) * sizeof(lv_style_t *));
6a4a: 7922 ldrb r2, [r4, #4]
6a4c: 3a02 subs r2, #2
6a4e: 0092 lsls r2, r2, #2
6a50: 6821 ldr r1, [r4, #0]
6a52: 3108 adds r1, #8
6a54: 4b12 ldr r3, [pc, #72] ; (6aa0 <lv_style_list_copy+0xbc>)
6a56: 4798 blx r3
list_dest->style_cnt = list_src->style_cnt - 2;
6a58: 7923 ldrb r3, [r4, #4]
6a5a: 3b02 subs r3, #2
6a5c: 712b strb r3, [r5, #4]
lv_style_t * local_style = get_alloc_local_style(list_dest);
6a5e: 0028 movs r0, r5
6a60: 4d10 ldr r5, [pc, #64] ; (6aa4 <lv_style_list_copy+0xc0>)
6a62: 47a8 blx r5
6a64: 0006 movs r6, r0
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
6a66: 0020 movs r0, r4
6a68: 47a8 blx r5
6a6a: 0001 movs r1, r0
6a6c: 0030 movs r0, r6
6a6e: 4b0e ldr r3, [pc, #56] ; (6aa8 <lv_style_list_copy+0xc4>)
6a70: 4798 blx r3
}
6a72: bd70 pop {r4, r5, r6, pc}
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
6a74: 7920 ldrb r0, [r4, #4]
6a76: 3801 subs r0, #1
6a78: 0080 lsls r0, r0, #2
6a7a: 4b08 ldr r3, [pc, #32] ; (6a9c <lv_style_list_copy+0xb8>)
6a7c: 4798 blx r3
6a7e: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *));
6a80: 7922 ldrb r2, [r4, #4]
6a82: 3a01 subs r2, #1
6a84: 0092 lsls r2, r2, #2
6a86: 6823 ldr r3, [r4, #0]
6a88: 1d19 adds r1, r3, #4
6a8a: 4b05 ldr r3, [pc, #20] ; (6aa0 <lv_style_list_copy+0xbc>)
6a8c: 4798 blx r3
list_dest->style_cnt = list_src->style_cnt - 1;
6a8e: 7923 ldrb r3, [r4, #4]
6a90: 3b01 subs r3, #1
6a92: 712b strb r3, [r5, #4]
6a94: e7e3 b.n 6a5e <lv_style_list_copy+0x7a>
6a96: 46c0 nop ; (mov r8, r8)
6a98: 00006975 .word 0x00006975
6a9c: 000122dd .word 0x000122dd
6aa0: 00012545 .word 0x00012545
6aa4: 00005d41 .word 0x00005d41
6aa8: 00005e55 .word 0x00005e55
00006aac <_lv_style_list_add_trans_style>:
{
6aac: b530 push {r4, r5, lr}
6aae: b083 sub sp, #12
6ab0: 0005 movs r5, r0
if(list->has_trans) return _lv_style_list_get_transition_style(list);
6ab2: 7943 ldrb r3, [r0, #5]
6ab4: 079b lsls r3, r3, #30
6ab6: d505 bpl.n 6ac4 <_lv_style_list_add_trans_style+0x18>
6ab8: 4b1c ldr r3, [pc, #112] ; (6b2c <_lv_style_list_add_trans_style+0x80>)
6aba: 4798 blx r3
6abc: 0004 movs r4, r0
}
6abe: 0020 movs r0, r4
6ac0: b003 add sp, #12
6ac2: bd30 pop {r4, r5, pc}
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
6ac4: 2004 movs r0, #4
6ac6: 4b1a ldr r3, [pc, #104] ; (6b30 <_lv_style_list_add_trans_style+0x84>)
6ac8: 4798 blx r3
6aca: 0004 movs r4, r0
LV_ASSERT_MEM(trans_style);
6acc: 4b19 ldr r3, [pc, #100] ; (6b34 <_lv_style_list_add_trans_style+0x88>)
6ace: 4798 blx r3
6ad0: 2800 cmp r0, #0
6ad2: d015 beq.n 6b00 <_lv_style_list_add_trans_style+0x54>
if(trans_style == NULL) {
6ad4: 2c00 cmp r4, #0
6ad6: d020 beq.n 6b1a <_lv_style_list_add_trans_style+0x6e>
lv_style_init(trans_style);
6ad8: 0020 movs r0, r4
6ada: 4b17 ldr r3, [pc, #92] ; (6b38 <_lv_style_list_add_trans_style+0x8c>)
6adc: 4798 blx r3
_lv_style_list_add_style(list, trans_style);
6ade: 0021 movs r1, r4
6ae0: 0028 movs r0, r5
6ae2: 4b16 ldr r3, [pc, #88] ; (6b3c <_lv_style_list_add_trans_style+0x90>)
6ae4: 4798 blx r3
list->has_trans = 1;
6ae6: 796b ldrb r3, [r5, #5]
6ae8: 2202 movs r2, #2
6aea: 4313 orrs r3, r2
6aec: 716b strb r3, [r5, #5]
if(list->has_local) {
6aee: 07db lsls r3, r3, #31
6af0: d5e5 bpl.n 6abe <_lv_style_list_add_trans_style+0x12>
lv_style_t * tmp = list->style_list[0];
6af2: 682b ldr r3, [r5, #0]
6af4: 681a ldr r2, [r3, #0]
list->style_list[0] = list->style_list[1];
6af6: 6859 ldr r1, [r3, #4]
6af8: 6019 str r1, [r3, #0]
list->style_list[1] = tmp;
6afa: 682b ldr r3, [r5, #0]
6afc: 605a str r2, [r3, #4]
6afe: e7de b.n 6abe <_lv_style_list_add_trans_style+0x12>
LV_ASSERT_MEM(trans_style);
6b00: 4b0f ldr r3, [pc, #60] ; (6b40 <_lv_style_list_add_trans_style+0x94>)
6b02: 9300 str r3, [sp, #0]
6b04: 4a0f ldr r2, [pc, #60] ; (6b44 <_lv_style_list_add_trans_style+0x98>)
6b06: 4910 ldr r1, [pc, #64] ; (6b48 <_lv_style_list_add_trans_style+0x9c>)
6b08: 3003 adds r0, #3
6b0a: 4d10 ldr r5, [pc, #64] ; (6b4c <_lv_style_list_add_trans_style+0xa0>)
6b0c: 47a8 blx r5
6b0e: 0022 movs r2, r4
6b10: 2300 movs r3, #0
6b12: 480f ldr r0, [pc, #60] ; (6b50 <_lv_style_list_add_trans_style+0xa4>)
6b14: 490f ldr r1, [pc, #60] ; (6b54 <_lv_style_list_add_trans_style+0xa8>)
6b16: 4788 blx r1
6b18: e7fe b.n 6b18 <_lv_style_list_add_trans_style+0x6c>
LV_LOG_WARN("lv_style_list_add_trans_style: couldn't create transition style");
6b1a: 4b0f ldr r3, [pc, #60] ; (6b58 <_lv_style_list_add_trans_style+0xac>)
6b1c: 9300 str r3, [sp, #0]
6b1e: 4b08 ldr r3, [pc, #32] ; (6b40 <_lv_style_list_add_trans_style+0x94>)
6b20: 4a0e ldr r2, [pc, #56] ; (6b5c <_lv_style_list_add_trans_style+0xb0>)
6b22: 4909 ldr r1, [pc, #36] ; (6b48 <_lv_style_list_add_trans_style+0x9c>)
6b24: 2002 movs r0, #2
6b26: 4d09 ldr r5, [pc, #36] ; (6b4c <_lv_style_list_add_trans_style+0xa0>)
6b28: 47a8 blx r5
return NULL;
6b2a: e7c8 b.n 6abe <_lv_style_list_add_trans_style+0x12>
6b2c: 00006965 .word 0x00006965
6b30: 000122dd .word 0x000122dd
6b34: 000017ad .word 0x000017ad
6b38: 00005b61 .word 0x00005b61
6b3c: 00005c65 .word 0x00005c65
6b40: 00025eb0 .word 0x00025eb0
6b44: 000002cd .word 0x000002cd
6b48: 00025f58 .word 0x00025f58
6b4c: 00012159 .word 0x00012159
6b50: 00025854 .word 0x00025854
6b54: 000017b5 .word 0x000017b5
6b58: 00025f18 .word 0x00025f18
6b5c: 000002cf .word 0x000002cf
00006b60 <_lv_style_list_get_int>:
{
6b60: b5f0 push {r4, r5, r6, r7, lr}
6b62: 46d6 mov lr, sl
6b64: 464f mov r7, r9
6b66: 4646 mov r6, r8
6b68: b5c0 push {r6, r7, lr}
6b6a: b084 sub sp, #16
6b6c: 1e05 subs r5, r0, #0
6b6e: 9101 str r1, [sp, #4]
6b70: 4691 mov r9, r2
if(list == NULL) return LV_RES_INV;
6b72: d058 beq.n 6c26 <_lv_style_list_get_int+0xc6>
if(list->style_list == NULL) return LV_RES_INV;
6b74: 6803 ldr r3, [r0, #0]
6b76: 2b00 cmp r3, #0
6b78: d057 beq.n 6c2a <_lv_style_list_get_int+0xca>
int16_t weight_goal = attr.full;
6b7a: 0a0b lsrs r3, r1, #8
6b7c: 4698 mov r8, r3
lv_style_int_t value_act = 0;
6b7e: 2200 movs r2, #0
6b80: ab02 add r3, sp, #8
6b82: 80da strh r2, [r3, #6]
for(ci = 0; ci < list->style_cnt; ci++) {
6b84: 7902 ldrb r2, [r0, #4]
6b86: 2a00 cmp r2, #0
6b88: dd42 ble.n 6c10 <_lv_style_list_get_int+0xb0>
6b8a: 2400 movs r4, #0
6b8c: 2601 movs r6, #1
6b8e: 4276 negs r6, r6
if(list->has_trans && list->skip_trans) id++;
6b90: 2306 movs r3, #6
6b92: 469a mov sl, r3
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
6b94: 4f26 ldr r7, [pc, #152] ; (6c30 <_lv_style_list_get_int+0xd0>)
6b96: e016 b.n 6bc6 <_lv_style_list_get_int+0x66>
6b98: 3101 adds r1, #1
6b9a: b2c9 uxtb r1, r1
6b9c: e019 b.n 6bd2 <_lv_style_list_get_int+0x72>
*res = value_act;
6b9e: ab02 add r3, sp, #8
6ba0: 3306 adds r3, #6
6ba2: 881b ldrh r3, [r3, #0]
6ba4: 464a mov r2, r9
6ba6: 8013 strh r3, [r2, #0]
return LV_RES_OK;
6ba8: 2001 movs r0, #1
6baa: e036 b.n 6c1a <_lv_style_list_get_int+0xba>
else if(weight_act > weight) {
6bac: 42b3 cmp r3, r6
6bae: dd05 ble.n 6bbc <_lv_style_list_get_int+0x5c>
*res = value_act;
6bb0: ab02 add r3, sp, #8
6bb2: 3306 adds r3, #6
6bb4: 881b ldrh r3, [r3, #0]
6bb6: 464a mov r2, r9
6bb8: 8013 strh r3, [r2, #0]
weight = weight_act;
6bba: 0006 movs r6, r0
6bbc: 3401 adds r4, #1
6bbe: b224 sxth r4, r4
for(ci = 0; ci < list->style_cnt; ci++) {
6bc0: 792a ldrb r2, [r5, #4]
6bc2: 4294 cmp r4, r2
6bc4: da26 bge.n 6c14 <_lv_style_list_get_int+0xb4>
lv_style_t * class = lv_style_list_get_style(list, ci);
6bc6: b2e1 uxtb r1, r4
6bc8: 796b ldrb r3, [r5, #5]
6bca: 4650 mov r0, sl
6bcc: 4003 ands r3, r0
6bce: 2b06 cmp r3, #6
6bd0: d0e2 beq.n 6b98 <_lv_style_list_get_int+0x38>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
6bd2: 2000 movs r0, #0
6bd4: 2a00 cmp r2, #0
6bd6: d004 beq.n 6be2 <_lv_style_list_get_int+0x82>
6bd8: 4291 cmp r1, r2
6bda: d202 bcs.n 6be2 <_lv_style_list_get_int+0x82>
return list->style_list[id];
6bdc: 0089 lsls r1, r1, #2
6bde: 682b ldr r3, [r5, #0]
6be0: 58c8 ldr r0, [r1, r3]
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
6be2: ab02 add r3, sp, #8
6be4: 1d9a adds r2, r3, #6
6be6: 9901 ldr r1, [sp, #4]
6be8: 47b8 blx r7
6bea: 0003 movs r3, r0
if(weight_act == weight_goal) {
6bec: 4580 cmp r8, r0
6bee: d0d6 beq.n 6b9e <_lv_style_list_get_int+0x3e>
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
6bf0: 796a ldrb r2, [r5, #5]
6bf2: 0791 lsls r1, r2, #30
6bf4: d5da bpl.n 6bac <_lv_style_list_get_int+0x4c>
6bf6: 2800 cmp r0, #0
6bf8: dbd8 blt.n 6bac <_lv_style_list_get_int+0x4c>
6bfa: 2c00 cmp r4, #0
6bfc: d1d6 bne.n 6bac <_lv_style_list_get_int+0x4c>
6bfe: 0752 lsls r2, r2, #29
6c00: d4d4 bmi.n 6bac <_lv_style_list_get_int+0x4c>
*res = value_act;
6c02: ab02 add r3, sp, #8
6c04: 3306 adds r3, #6
6c06: 881b ldrh r3, [r3, #0]
6c08: 464a mov r2, r9
6c0a: 8013 strh r3, [r2, #0]
return LV_RES_OK;
6c0c: 2001 movs r0, #1
6c0e: e004 b.n 6c1a <_lv_style_list_get_int+0xba>
int16_t weight = -1;
6c10: 2601 movs r6, #1
6c12: 4276 negs r6, r6
if(weight >= 0) return LV_RES_OK;
6c14: 43f0 mvns r0, r6
6c16: b280 uxth r0, r0
if(list == NULL) return LV_RES_INV;
6c18: 0bc0 lsrs r0, r0, #15
}
6c1a: b004 add sp, #16
6c1c: bc1c pop {r2, r3, r4}
6c1e: 4690 mov r8, r2
6c20: 4699 mov r9, r3
6c22: 46a2 mov sl, r4
6c24: bdf0 pop {r4, r5, r6, r7, pc}
if(list == NULL) return LV_RES_INV;
6c26: 2000 movs r0, #0
6c28: e7f7 b.n 6c1a <_lv_style_list_get_int+0xba>
if(list->style_list == NULL) return LV_RES_INV;
6c2a: 2000 movs r0, #0
6c2c: e7f5 b.n 6c1a <_lv_style_list_get_int+0xba>
6c2e: 46c0 nop ; (mov r8, r8)
6c30: 000065c9 .word 0x000065c9
00006c34 <_lv_style_list_get_color>:
{
6c34: b5f0 push {r4, r5, r6, r7, lr}
6c36: 46d6 mov lr, sl
6c38: 464f mov r7, r9
6c3a: 4646 mov r6, r8
6c3c: b5c0 push {r6, r7, lr}
6c3e: b084 sub sp, #16
6c40: 1e05 subs r5, r0, #0
6c42: 9101 str r1, [sp, #4]
6c44: 4691 mov r9, r2
if(list == NULL) return LV_RES_INV;
6c46: d054 beq.n 6cf2 <_lv_style_list_get_color+0xbe>
if(list->style_list == NULL) return LV_RES_INV;
6c48: 6803 ldr r3, [r0, #0]
6c4a: 2b00 cmp r3, #0
6c4c: d053 beq.n 6cf6 <_lv_style_list_get_color+0xc2>
int16_t weight_goal = attr.full;
6c4e: 0a0b lsrs r3, r1, #8
6c50: 4698 mov r8, r3
lv_color_t value_act = { 0 };
6c52: 2200 movs r2, #0
6c54: ab03 add r3, sp, #12
6c56: 801a strh r2, [r3, #0]
for(ci = 0; ci < list->style_cnt; ci++) {
6c58: 7902 ldrb r2, [r0, #4]
6c5a: 2a00 cmp r2, #0
6c5c: dd3e ble.n 6cdc <_lv_style_list_get_color+0xa8>
6c5e: 2400 movs r4, #0
6c60: 2601 movs r6, #1
6c62: 4276 negs r6, r6
if(list->has_trans && list->skip_trans) id++;
6c64: 2306 movs r3, #6
6c66: 469a mov sl, r3
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
6c68: 4f24 ldr r7, [pc, #144] ; (6cfc <_lv_style_list_get_color+0xc8>)
6c6a: e014 b.n 6c96 <_lv_style_list_get_color+0x62>
6c6c: 3101 adds r1, #1
6c6e: b2c9 uxtb r1, r1
6c70: e017 b.n 6ca2 <_lv_style_list_get_color+0x6e>
*res = value_act;
6c72: ab03 add r3, sp, #12
6c74: 881b ldrh r3, [r3, #0]
6c76: 464a mov r2, r9
6c78: 8013 strh r3, [r2, #0]
return LV_RES_OK;
6c7a: 2001 movs r0, #1
6c7c: e033 b.n 6ce6 <_lv_style_list_get_color+0xb2>
else if(weight_act > weight) {
6c7e: 42b3 cmp r3, r6
6c80: dd04 ble.n 6c8c <_lv_style_list_get_color+0x58>
*res = value_act;
6c82: ab03 add r3, sp, #12
6c84: 881b ldrh r3, [r3, #0]
6c86: 464a mov r2, r9
6c88: 8013 strh r3, [r2, #0]
weight = weight_act;
6c8a: 0006 movs r6, r0
6c8c: 3401 adds r4, #1
6c8e: b224 sxth r4, r4
for(ci = 0; ci < list->style_cnt; ci++) {
6c90: 792a ldrb r2, [r5, #4]
6c92: 4294 cmp r4, r2
6c94: da24 bge.n 6ce0 <_lv_style_list_get_color+0xac>
lv_style_t * class = lv_style_list_get_style(list, ci);
6c96: b2e1 uxtb r1, r4
6c98: 796b ldrb r3, [r5, #5]
6c9a: 4650 mov r0, sl
6c9c: 4003 ands r3, r0
6c9e: 2b06 cmp r3, #6
6ca0: d0e4 beq.n 6c6c <_lv_style_list_get_color+0x38>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
6ca2: 2000 movs r0, #0
6ca4: 2a00 cmp r2, #0
6ca6: d004 beq.n 6cb2 <_lv_style_list_get_color+0x7e>
6ca8: 4291 cmp r1, r2
6caa: d202 bcs.n 6cb2 <_lv_style_list_get_color+0x7e>
return list->style_list[id];
6cac: 0089 lsls r1, r1, #2
6cae: 682b ldr r3, [r5, #0]
6cb0: 58c8 ldr r0, [r1, r3]
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
6cb2: aa03 add r2, sp, #12
6cb4: 9901 ldr r1, [sp, #4]
6cb6: 47b8 blx r7
6cb8: 0003 movs r3, r0
if(weight_act == weight_goal) {
6cba: 4580 cmp r8, r0
6cbc: d0d9 beq.n 6c72 <_lv_style_list_get_color+0x3e>
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
6cbe: 796a ldrb r2, [r5, #5]
6cc0: 0791 lsls r1, r2, #30
6cc2: d5dc bpl.n 6c7e <_lv_style_list_get_color+0x4a>
6cc4: 2800 cmp r0, #0
6cc6: dbda blt.n 6c7e <_lv_style_list_get_color+0x4a>
6cc8: 2c00 cmp r4, #0
6cca: d1d8 bne.n 6c7e <_lv_style_list_get_color+0x4a>
6ccc: 0752 lsls r2, r2, #29
6cce: d4d6 bmi.n 6c7e <_lv_style_list_get_color+0x4a>
*res = value_act;
6cd0: ab03 add r3, sp, #12
6cd2: 881b ldrh r3, [r3, #0]
6cd4: 464a mov r2, r9
6cd6: 8013 strh r3, [r2, #0]
return LV_RES_OK;
6cd8: 2001 movs r0, #1
6cda: e004 b.n 6ce6 <_lv_style_list_get_color+0xb2>
int16_t weight = -1;
6cdc: 2601 movs r6, #1
6cde: 4276 negs r6, r6
if(weight >= 0) return LV_RES_OK;
6ce0: 43f0 mvns r0, r6
6ce2: b280 uxth r0, r0
if(list == NULL) return LV_RES_INV;
6ce4: 0bc0 lsrs r0, r0, #15
}
6ce6: b004 add sp, #16
6ce8: bc1c pop {r2, r3, r4}
6cea: 4690 mov r8, r2
6cec: 4699 mov r9, r3
6cee: 46a2 mov sl, r4
6cf0: bdf0 pop {r4, r5, r6, r7, pc}
if(list == NULL) return LV_RES_INV;
6cf2: 2000 movs r0, #0
6cf4: e7f7 b.n 6ce6 <_lv_style_list_get_color+0xb2>
if(list->style_list == NULL) return LV_RES_INV;
6cf6: 2000 movs r0, #0
6cf8: e7f5 b.n 6ce6 <_lv_style_list_get_color+0xb2>
6cfa: 46c0 nop ; (mov r8, r8)
6cfc: 00006783 .word 0x00006783
00006d00 <_lv_style_list_get_opa>:
{
6d00: b5f0 push {r4, r5, r6, r7, lr}
6d02: 46d6 mov lr, sl
6d04: 464f mov r7, r9
6d06: 4646 mov r6, r8
6d08: b5c0 push {r6, r7, lr}
6d0a: b084 sub sp, #16
6d0c: 1e05 subs r5, r0, #0
6d0e: 9101 str r1, [sp, #4]
6d10: 4691 mov r9, r2
if(list == NULL) return LV_RES_INV;
6d12: d058 beq.n 6dc6 <_lv_style_list_get_opa+0xc6>
if(list->style_list == NULL) return LV_RES_INV;
6d14: 6803 ldr r3, [r0, #0]
6d16: 2b00 cmp r3, #0
6d18: d057 beq.n 6dca <_lv_style_list_get_opa+0xca>
int16_t weight_goal = attr.full;
6d1a: 0a0b lsrs r3, r1, #8
6d1c: 4698 mov r8, r3
lv_opa_t value_act = LV_OPA_TRANSP;
6d1e: 2200 movs r2, #0
6d20: ab02 add r3, sp, #8
6d22: 71da strb r2, [r3, #7]
for(ci = 0; ci < list->style_cnt; ci++) {
6d24: 7902 ldrb r2, [r0, #4]
6d26: 2a00 cmp r2, #0
6d28: dd42 ble.n 6db0 <_lv_style_list_get_opa+0xb0>
6d2a: 2400 movs r4, #0
6d2c: 2601 movs r6, #1
6d2e: 4276 negs r6, r6
if(list->has_trans && list->skip_trans) id++;
6d30: 2306 movs r3, #6
6d32: 469a mov sl, r3
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
6d34: 4f26 ldr r7, [pc, #152] ; (6dd0 <_lv_style_list_get_opa+0xd0>)
6d36: e016 b.n 6d66 <_lv_style_list_get_opa+0x66>
6d38: 3101 adds r1, #1
6d3a: b2c9 uxtb r1, r1
6d3c: e019 b.n 6d72 <_lv_style_list_get_opa+0x72>
*res = value_act;
6d3e: ab02 add r3, sp, #8
6d40: 3307 adds r3, #7
6d42: 781b ldrb r3, [r3, #0]
6d44: 464a mov r2, r9
6d46: 7013 strb r3, [r2, #0]
return LV_RES_OK;
6d48: 2001 movs r0, #1
6d4a: e036 b.n 6dba <_lv_style_list_get_opa+0xba>
else if(weight_act > weight) {
6d4c: 42b3 cmp r3, r6
6d4e: dd05 ble.n 6d5c <_lv_style_list_get_opa+0x5c>
*res = value_act;
6d50: ab02 add r3, sp, #8
6d52: 3307 adds r3, #7
6d54: 781b ldrb r3, [r3, #0]
6d56: 464a mov r2, r9
6d58: 7013 strb r3, [r2, #0]
weight = weight_act;
6d5a: 0006 movs r6, r0
6d5c: 3401 adds r4, #1
6d5e: b224 sxth r4, r4
for(ci = 0; ci < list->style_cnt; ci++) {
6d60: 792a ldrb r2, [r5, #4]
6d62: 4294 cmp r4, r2
6d64: da26 bge.n 6db4 <_lv_style_list_get_opa+0xb4>
lv_style_t * class = lv_style_list_get_style(list, ci);
6d66: b2e1 uxtb r1, r4
6d68: 796b ldrb r3, [r5, #5]
6d6a: 4650 mov r0, sl
6d6c: 4003 ands r3, r0
6d6e: 2b06 cmp r3, #6
6d70: d0e2 beq.n 6d38 <_lv_style_list_get_opa+0x38>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
6d72: 2000 movs r0, #0
6d74: 2a00 cmp r2, #0
6d76: d004 beq.n 6d82 <_lv_style_list_get_opa+0x82>
6d78: 4291 cmp r1, r2
6d7a: d202 bcs.n 6d82 <_lv_style_list_get_opa+0x82>
return list->style_list[id];
6d7c: 0089 lsls r1, r1, #2
6d7e: 682b ldr r3, [r5, #0]
6d80: 58c8 ldr r0, [r1, r3]
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
6d82: ab02 add r3, sp, #8
6d84: 1dda adds r2, r3, #7
6d86: 9901 ldr r1, [sp, #4]
6d88: 47b8 blx r7
6d8a: 0003 movs r3, r0
if(weight_act == weight_goal) {
6d8c: 4580 cmp r8, r0
6d8e: d0d6 beq.n 6d3e <_lv_style_list_get_opa+0x3e>
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
6d90: 796a ldrb r2, [r5, #5]
6d92: 0791 lsls r1, r2, #30
6d94: d5da bpl.n 6d4c <_lv_style_list_get_opa+0x4c>
6d96: 2800 cmp r0, #0
6d98: dbd8 blt.n 6d4c <_lv_style_list_get_opa+0x4c>
6d9a: 2c00 cmp r4, #0
6d9c: d1d6 bne.n 6d4c <_lv_style_list_get_opa+0x4c>
6d9e: 0752 lsls r2, r2, #29
6da0: d4d4 bmi.n 6d4c <_lv_style_list_get_opa+0x4c>
*res = value_act;
6da2: ab02 add r3, sp, #8
6da4: 3307 adds r3, #7
6da6: 781b ldrb r3, [r3, #0]
6da8: 464a mov r2, r9
6daa: 7013 strb r3, [r2, #0]
return LV_RES_OK;
6dac: 2001 movs r0, #1
6dae: e004 b.n 6dba <_lv_style_list_get_opa+0xba>
int16_t weight = -1;
6db0: 2601 movs r6, #1
6db2: 4276 negs r6, r6
if(weight >= 0) return LV_RES_OK;
6db4: 43f0 mvns r0, r6
6db6: b280 uxth r0, r0
if(list == NULL) return LV_RES_INV;
6db8: 0bc0 lsrs r0, r0, #15
}
6dba: b004 add sp, #16
6dbc: bc1c pop {r2, r3, r4}
6dbe: 4690 mov r8, r2
6dc0: 4699 mov r9, r3
6dc2: 46a2 mov sl, r4
6dc4: bdf0 pop {r4, r5, r6, r7, pc}
if(list == NULL) return LV_RES_INV;
6dc6: 2000 movs r0, #0
6dc8: e7f7 b.n 6dba <_lv_style_list_get_opa+0xba>
if(list->style_list == NULL) return LV_RES_INV;
6dca: 2000 movs r0, #0
6dcc: e7f5 b.n 6dba <_lv_style_list_get_opa+0xba>
6dce: 46c0 nop ; (mov r8, r8)
6dd0: 000066a9 .word 0x000066a9
00006dd4 <_lv_style_list_get_ptr>:
{
6dd4: b5f0 push {r4, r5, r6, r7, lr}
6dd6: 46d6 mov lr, sl
6dd8: 464f mov r7, r9
6dda: 4646 mov r6, r8
6ddc: b5c0 push {r6, r7, lr}
6dde: b084 sub sp, #16
6de0: 0005 movs r5, r0
6de2: 9101 str r1, [sp, #4]
6de4: 0017 movs r7, r2
if(list == NULL) return LV_RES_INV;
6de6: 2800 cmp r0, #0
6de8: d04c beq.n 6e84 <_lv_style_list_get_ptr+0xb0>
if(list->style_list == NULL) return LV_RES_INV;
6dea: 6803 ldr r3, [r0, #0]
6dec: 2b00 cmp r3, #0
6dee: d04b beq.n 6e88 <_lv_style_list_get_ptr+0xb4>
int16_t weight_goal = attr.full;
6df0: 0a0b lsrs r3, r1, #8
6df2: 4698 mov r8, r3
for(ci = 0; ci < list->style_cnt; ci++) {
6df4: 7902 ldrb r2, [r0, #4]
6df6: 2a00 cmp r2, #0
6df8: dd39 ble.n 6e6e <_lv_style_list_get_ptr+0x9a>
6dfa: 2400 movs r4, #0
6dfc: 2601 movs r6, #1
6dfe: 4276 negs r6, r6
if(list->has_trans && list->skip_trans) id++;
6e00: 2306 movs r3, #6
6e02: 469a mov sl, r3
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
6e04: 4b21 ldr r3, [pc, #132] ; (6e8c <_lv_style_list_get_ptr+0xb8>)
6e06: 4699 mov r9, r3
6e08: e010 b.n 6e2c <_lv_style_list_get_ptr+0x58>
6e0a: 3101 adds r1, #1
6e0c: b2c9 uxtb r1, r1
6e0e: e013 b.n 6e38 <_lv_style_list_get_ptr+0x64>
*res = value_act;
6e10: 9b03 ldr r3, [sp, #12]
6e12: 603b str r3, [r7, #0]
return LV_RES_OK;
6e14: 2001 movs r0, #1
6e16: e02f b.n 6e78 <_lv_style_list_get_ptr+0xa4>
else if(weight_act > weight) {
6e18: 42b3 cmp r3, r6
6e1a: dd02 ble.n 6e22 <_lv_style_list_get_ptr+0x4e>
*res = value_act;
6e1c: 9b03 ldr r3, [sp, #12]
6e1e: 603b str r3, [r7, #0]
weight = weight_act;
6e20: 0006 movs r6, r0
6e22: 3401 adds r4, #1
6e24: b224 sxth r4, r4
for(ci = 0; ci < list->style_cnt; ci++) {
6e26: 792a ldrb r2, [r5, #4]
6e28: 4294 cmp r4, r2
6e2a: da22 bge.n 6e72 <_lv_style_list_get_ptr+0x9e>
lv_style_t * class = lv_style_list_get_style(list, ci);
6e2c: b2e1 uxtb r1, r4
6e2e: 796b ldrb r3, [r5, #5]
6e30: 4650 mov r0, sl
6e32: 4003 ands r3, r0
6e34: 2b06 cmp r3, #6
6e36: d0e8 beq.n 6e0a <_lv_style_list_get_ptr+0x36>
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
6e38: 2000 movs r0, #0
6e3a: 2a00 cmp r2, #0
6e3c: d004 beq.n 6e48 <_lv_style_list_get_ptr+0x74>
6e3e: 4291 cmp r1, r2
6e40: d202 bcs.n 6e48 <_lv_style_list_get_ptr+0x74>
return list->style_list[id];
6e42: 0089 lsls r1, r1, #2
6e44: 682b ldr r3, [r5, #0]
6e46: 58c8 ldr r0, [r1, r3]
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
6e48: aa03 add r2, sp, #12
6e4a: 9901 ldr r1, [sp, #4]
6e4c: 47c8 blx r9
6e4e: 0003 movs r3, r0
if(weight_act == weight_goal) {
6e50: 4580 cmp r8, r0
6e52: d0dd beq.n 6e10 <_lv_style_list_get_ptr+0x3c>
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
6e54: 796a ldrb r2, [r5, #5]
6e56: 0791 lsls r1, r2, #30
6e58: d5de bpl.n 6e18 <_lv_style_list_get_ptr+0x44>
6e5a: 2800 cmp r0, #0
6e5c: dbdc blt.n 6e18 <_lv_style_list_get_ptr+0x44>
6e5e: 2c00 cmp r4, #0
6e60: d1da bne.n 6e18 <_lv_style_list_get_ptr+0x44>
6e62: 0752 lsls r2, r2, #29
6e64: d4d8 bmi.n 6e18 <_lv_style_list_get_ptr+0x44>
*res = value_act;
6e66: 9b03 ldr r3, [sp, #12]
6e68: 603b str r3, [r7, #0]
return LV_RES_OK;
6e6a: 2001 movs r0, #1
6e6c: e004 b.n 6e78 <_lv_style_list_get_ptr+0xa4>
int16_t weight = -1;
6e6e: 2601 movs r6, #1
6e70: 4276 negs r6, r6
if(weight >= 0) return LV_RES_OK;
6e72: 43f0 mvns r0, r6
6e74: b280 uxth r0, r0
if(list == NULL) return LV_RES_INV;
6e76: 0bc0 lsrs r0, r0, #15
}
6e78: b004 add sp, #16
6e7a: bc1c pop {r2, r3, r4}
6e7c: 4690 mov r8, r2
6e7e: 4699 mov r9, r3
6e80: 46a2 mov sl, r4
6e82: bdf0 pop {r4, r5, r6, r7, pc}
if(list == NULL) return LV_RES_INV;
6e84: 2000 movs r0, #0
6e86: e7f7 b.n 6e78 <_lv_style_list_get_ptr+0xa4>
if(list->style_list == NULL) return LV_RES_INV;
6e88: 2000 movs r0, #0
6e8a: e7f5 b.n 6e78 <_lv_style_list_get_ptr+0xa4>
6e8c: 00006863 .word 0x00006863
00006e90 <color_blend_true_color_additive>:
}
}
}
static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color_t bg, lv_opa_t opa)
{
6e90: b5f0 push {r4, r5, r6, r7, lr}
6e92: 1c05 adds r5, r0, #0
6e94: 06cb lsls r3, r1, #27
6e96: 0edb lsrs r3, r3, #27
6e98: 054f lsls r7, r1, #21
6e9a: 0ebf lsrs r7, r7, #26
6e9c: 0409 lsls r1, r1, #16
6e9e: 0ec9 lsrs r1, r1, #27
if(opa <= LV_OPA_MIN) return bg;
6ea0: 2a05 cmp r2, #5
6ea2: d93d bls.n 6f20 <color_blend_true_color_additive+0x90>
uint32_t tmp;
#if LV_COLOR_DEPTH == 1
tmp = bg.full + fg.full;
fg.full = LV_MATH_MIN(tmp, 1);
#else
tmp = bg.ch.red + fg.ch.red;
6ea4: 0428 lsls r0, r5, #16
6ea6: 0ec0 lsrs r0, r0, #27
6ea8: 1840 adds r0, r0, r1
#if LV_COLOR_DEPTH == 8
fg.ch.red = LV_MATH_MIN(tmp, 7);
#elif LV_COLOR_DEPTH == 16
fg.ch.red = LV_MATH_MIN(tmp, 31);
6eaa: 281f cmp r0, #31
6eac: d900 bls.n 6eb0 <color_blend_true_color_additive+0x20>
6eae: 201f movs r0, #31
6eb0: 241f movs r4, #31
6eb2: 4004 ands r4, r0
6eb4: 46a4 mov ip, r4
#if LV_COLOR_DEPTH == 8
fg.ch.green = LV_MATH_MIN(tmp, 7);
#elif LV_COLOR_DEPTH == 16
#if LV_COLOR_16_SWAP == 0
tmp = bg.ch.green + fg.ch.green;
6eb6: 056e lsls r6, r5, #21
6eb8: 0eb6 lsrs r6, r6, #26
6eba: 19f6 adds r6, r6, r7
fg.ch.green = LV_MATH_MIN(tmp, 63);
6ebc: 2e3f cmp r6, #63 ; 0x3f
6ebe: d900 bls.n 6ec2 <color_blend_true_color_additive+0x32>
6ec0: 263f movs r6, #63 ; 0x3f
6ec2: 243f movs r4, #63 ; 0x3f
6ec4: 4026 ands r6, r4
#elif LV_COLOR_DEPTH == 32
fg.ch.green = LV_MATH_MIN(tmp, 255);
#endif
tmp = bg.ch.blue + fg.ch.blue;
6ec6: 06ed lsls r5, r5, #27
6ec8: 0eed lsrs r5, r5, #27
6eca: 18ed adds r5, r5, r3
#if LV_COLOR_DEPTH == 8
fg.ch.blue = LV_MATH_MIN(tmp, 4);
#elif LV_COLOR_DEPTH == 16
fg.ch.blue = LV_MATH_MIN(tmp, 31);
6ecc: 2d1f cmp r5, #31
6ece: d900 bls.n 6ed2 <color_blend_true_color_additive+0x42>
6ed0: 251f movs r5, #31
6ed2: 241f movs r4, #31
6ed4: 402c ands r4, r5
#elif LV_COLOR_DEPTH == 32
fg.ch.blue = LV_MATH_MIN(tmp, 255);
#endif
#endif
if(opa == LV_OPA_COVER) return fg;
6ed6: 2aff cmp r2, #255 ; 0xff
6ed8: d027 beq.n 6f2a <color_blend_true_color_additive+0x9a>
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
6eda: 25ff movs r5, #255 ; 0xff
6edc: 1aad subs r5, r5, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
6ede: 4354 muls r4, r2
6ee0: 436b muls r3, r5
6ee2: 18e3 adds r3, r4, r3
6ee4: 0218 lsls r0, r3, #8
6ee6: 18c0 adds r0, r0, r3
6ee8: 01c0 lsls r0, r0, #7
6eea: 18c0 adds r0, r0, r3
6eec: 0100 lsls r0, r0, #4
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
6eee: 4356 muls r6, r2
6ef0: 436f muls r7, r5
6ef2: 19f7 adds r7, r6, r7
6ef4: 023e lsls r6, r7, #8
6ef6: 19f6 adds r6, r6, r7
6ef8: 01f6 lsls r6, r6, #7
6efa: 19f6 adds r6, r6, r7
6efc: 00f6 lsls r6, r6, #3
6efe: 0eb6 lsrs r6, r6, #26
6f00: 0176 lsls r6, r6, #5
6f02: 0ec0 lsrs r0, r0, #27
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
6f04: 4663 mov r3, ip
6f06: 435a muls r2, r3
6f08: 4369 muls r1, r5
6f0a: 1852 adds r2, r2, r1
6f0c: 0211 lsls r1, r2, #8
6f0e: 1889 adds r1, r1, r2
6f10: 01c9 lsls r1, r1, #7
6f12: 188a adds r2, r1, r2
6f14: 0dd2 lsrs r2, r2, #23
6f16: b2d2 uxtb r2, r2
6f18: 02d2 lsls r2, r2, #11
6f1a: 4330 orrs r0, r6
6f1c: 4310 orrs r0, r2
return lv_color_mix(fg, bg, opa);
}
6f1e: bdf0 pop {r4, r5, r6, r7, pc}
if(opa <= LV_OPA_MIN) return bg;
6f20: 0178 lsls r0, r7, #5
6f22: 02c9 lsls r1, r1, #11
6f24: 4318 orrs r0, r3
6f26: 4308 orrs r0, r1
6f28: e7f9 b.n 6f1e <color_blend_true_color_additive+0x8e>
if(opa == LV_OPA_COVER) return fg;
6f2a: 0170 lsls r0, r6, #5
6f2c: 4663 mov r3, ip
6f2e: 02da lsls r2, r3, #11
6f30: 4320 orrs r0, r4
6f32: 4310 orrs r0, r2
6f34: e7f3 b.n 6f1e <color_blend_true_color_additive+0x8e>
00006f36 <color_blend_true_color_subtractive>:
static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_color_t bg, lv_opa_t opa)
{
6f36: b5f0 push {r4, r5, r6, r7, lr}
6f38: 46c6 mov lr, r8
6f3a: b500 push {lr}
6f3c: 1c05 adds r5, r0, #0
6f3e: 06c8 lsls r0, r1, #27
6f40: 0ec3 lsrs r3, r0, #27
6f42: 4698 mov r8, r3
6f44: 054f lsls r7, r1, #21
6f46: 0ebf lsrs r7, r7, #26
6f48: 0409 lsls r1, r1, #16
6f4a: 0ec9 lsrs r1, r1, #27
if(opa <= LV_OPA_MIN) return bg;
6f4c: 2a05 cmp r2, #5
6f4e: d941 bls.n 6fd4 <color_blend_true_color_subtractive+0x9e>
int32_t tmp;
tmp = bg.ch.red - fg.ch.red;
6f50: 0428 lsls r0, r5, #16
6f52: 0ec0 lsrs r0, r0, #27
6f54: 1a08 subs r0, r1, r0
fg.ch.red = LV_MATH_MAX(tmp, 0);
6f56: 43c3 mvns r3, r0
6f58: 17db asrs r3, r3, #31
6f5a: 4018 ands r0, r3
6f5c: 231f movs r3, #31
6f5e: 4003 ands r3, r0
6f60: 469c mov ip, r3
#if LV_COLOR_16_SWAP == 0
tmp = bg.ch.green - fg.ch.green;
6f62: 056e lsls r6, r5, #21
6f64: 0eb6 lsrs r6, r6, #26
6f66: 1bb8 subs r0, r7, r6
fg.ch.green = LV_MATH_MAX(tmp, 0);
6f68: 43c3 mvns r3, r0
6f6a: 17db asrs r3, r3, #31
6f6c: 4018 ands r0, r3
6f6e: 263f movs r6, #63 ; 0x3f
6f70: 4006 ands r6, r0
tmp = LV_MATH_MAX(tmp, 0);
fg.ch.green_h = tmp >> 3;
fg.ch.green_l = tmp & 0x7;
#endif
tmp = bg.ch.blue - fg.ch.blue;
6f72: 06ed lsls r5, r5, #27
6f74: 0eed lsrs r5, r5, #27
6f76: 4643 mov r3, r8
6f78: 1b5d subs r5, r3, r5
fg.ch.blue = LV_MATH_MAX(tmp, 0);
6f7a: 43e8 mvns r0, r5
6f7c: 17c0 asrs r0, r0, #31
6f7e: 4005 ands r5, r0
6f80: 241f movs r4, #31
6f82: 402c ands r4, r5
if(opa == LV_OPA_COVER) return fg;
6f84: 2aff cmp r2, #255 ; 0xff
6f86: d02b beq.n 6fe0 <color_blend_true_color_subtractive+0xaa>
6f88: 25ff movs r5, #255 ; 0xff
6f8a: 1aad subs r5, r5, r2
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
6f8c: 4354 muls r4, r2
6f8e: 4640 mov r0, r8
6f90: 4368 muls r0, r5
6f92: 1824 adds r4, r4, r0
6f94: 0220 lsls r0, r4, #8
6f96: 1900 adds r0, r0, r4
6f98: 01c0 lsls r0, r0, #7
6f9a: 1900 adds r0, r0, r4
6f9c: 0100 lsls r0, r0, #4
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
6f9e: 4356 muls r6, r2
6fa0: 436f muls r7, r5
6fa2: 19f7 adds r7, r6, r7
6fa4: 023e lsls r6, r7, #8
6fa6: 19f6 adds r6, r6, r7
6fa8: 01f6 lsls r6, r6, #7
6faa: 19f6 adds r6, r6, r7
6fac: 00f6 lsls r6, r6, #3
6fae: 0eb6 lsrs r6, r6, #26
6fb0: 0176 lsls r6, r6, #5
6fb2: 0ec0 lsrs r0, r0, #27
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
6fb4: 4663 mov r3, ip
6fb6: 435a muls r2, r3
6fb8: 4369 muls r1, r5
6fba: 1852 adds r2, r2, r1
6fbc: 0211 lsls r1, r2, #8
6fbe: 1889 adds r1, r1, r2
6fc0: 01c9 lsls r1, r1, #7
6fc2: 188a adds r2, r1, r2
6fc4: 0dd2 lsrs r2, r2, #23
6fc6: b2d2 uxtb r2, r2
6fc8: 02d2 lsls r2, r2, #11
6fca: 4330 orrs r0, r6
6fcc: 4310 orrs r0, r2
return lv_color_mix(fg, bg, opa);
}
6fce: bc04 pop {r2}
6fd0: 4690 mov r8, r2
6fd2: bdf0 pop {r4, r5, r6, r7, pc}
if(opa <= LV_OPA_MIN) return bg;
6fd4: 0178 lsls r0, r7, #5
6fd6: 02c9 lsls r1, r1, #11
6fd8: 4303 orrs r3, r0
6fda: 0018 movs r0, r3
6fdc: 4308 orrs r0, r1
6fde: e7f6 b.n 6fce <color_blend_true_color_subtractive+0x98>
if(opa == LV_OPA_COVER) return fg;
6fe0: 0176 lsls r6, r6, #5
6fe2: 4663 mov r3, ip
6fe4: 02d8 lsls r0, r3, #11
6fe6: 4334 orrs r4, r6
6fe8: 4320 orrs r0, r4
6fea: e7f0 b.n 6fce <color_blend_true_color_subtractive+0x98>
00006fec <_lv_blend_fill>:
{
6fec: b5f0 push {r4, r5, r6, r7, lr}
6fee: 46de mov lr, fp
6ff0: 4657 mov r7, sl
6ff2: 464e mov r6, r9
6ff4: 4645 mov r5, r8
6ff6: b5e0 push {r5, r6, r7, lr}
6ff8: b093 sub sp, #76 ; 0x4c
6ffa: 0004 movs r4, r0
6ffc: 000d movs r5, r1
6ffe: 4669 mov r1, sp
7000: 828a strh r2, [r1, #20]
7002: 9306 str r3, [sp, #24]
7004: ab1c add r3, sp, #112 ; 0x70
7006: 781f ldrb r7, [r3, #0]
7008: ab1d add r3, sp, #116 ; 0x74
700a: 781b ldrb r3, [r3, #0]
700c: 469b mov fp, r3
700e: ab1e add r3, sp, #120 ; 0x78
7010: 781e ldrb r6, [r3, #0]
if(opa < LV_OPA_MIN) return;
7012: 465b mov r3, fp
7014: 2b04 cmp r3, #4
7016: d901 bls.n 701c <_lv_blend_fill+0x30>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
7018: 2f00 cmp r7, #0
701a: d106 bne.n 702a <_lv_blend_fill+0x3e>
}
701c: b013 add sp, #76 ; 0x4c
701e: bc3c pop {r2, r3, r4, r5}
7020: 4690 mov r8, r2
7022: 4699 mov r9, r3
7024: 46a2 mov sl, r4
7026: 46ab mov fp, r5
7028: bdf0 pop {r4, r5, r6, r7, pc}
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
702a: 4bbf ldr r3, [pc, #764] ; (7328 <_lv_blend_fill+0x33c>)
702c: 4798 blx r3
702e: 4682 mov sl, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
7030: 4bbe ldr r3, [pc, #760] ; (732c <_lv_blend_fill+0x340>)
7032: 4798 blx r3
7034: 4680 mov r8, r0
lv_color_t * disp_buf = vdb->buf_act;
7036: 6883 ldr r3, [r0, #8]
7038: 9304 str r3, [sp, #16]
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
703a: 002a movs r2, r5
703c: 0021 movs r1, r4
703e: a810 add r0, sp, #64 ; 0x40
7040: 4bbb ldr r3, [pc, #748] ; (7330 <_lv_blend_fill+0x344>)
7042: 4798 blx r3
if(!is_common) return;
7044: 2800 cmp r0, #0
7046: d0e9 beq.n 701c <_lv_blend_fill+0x30>
draw_area.x1 -= disp_area->x1;
7048: 4643 mov r3, r8
704a: 8a1a ldrh r2, [r3, #16]
704c: ab10 add r3, sp, #64 ; 0x40
704e: 8819 ldrh r1, [r3, #0]
7050: 1a89 subs r1, r1, r2
7052: b289 uxth r1, r1
7054: 910b str r1, [sp, #44] ; 0x2c
7056: 468c mov ip, r1
7058: b208 sxth r0, r1
705a: 900a str r0, [sp, #40] ; 0x28
705c: 8018 strh r0, [r3, #0]
draw_area.y1 -= disp_area->y1;
705e: 4640 mov r0, r8
7060: 8a41 ldrh r1, [r0, #18]
7062: 885d ldrh r5, [r3, #2]
7064: 1a6d subs r5, r5, r1
7066: b22d sxth r5, r5
7068: 805d strh r5, [r3, #2]
draw_area.x2 -= disp_area->x1;
706a: 8898 ldrh r0, [r3, #4]
706c: 1a80 subs r0, r0, r2
706e: b280 uxth r0, r0
7070: 8098 strh r0, [r3, #4]
draw_area.y2 -= disp_area->y1;
7072: 88da ldrh r2, [r3, #6]
7074: 1a52 subs r2, r2, r1
7076: b212 sxth r2, r2
7078: 4691 mov r9, r2
707a: 80da strh r2, [r3, #6]
if(mask && disp->driver.antialiasing == 0)
707c: 9a06 ldr r2, [sp, #24]
707e: 2a00 cmp r2, #0
7080: d018 beq.n 70b4 <_lv_blend_fill+0xc8>
7082: 4653 mov r3, sl
7084: 7a1b ldrb r3, [r3, #8]
7086: 07db lsls r3, r3, #31
7088: d414 bmi.n 70b4 <_lv_blend_fill+0xc8>
* @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)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
708a: 1c41 adds r1, r0, #1
708c: 4663 mov r3, ip
708e: 1ac9 subs r1, r1, r3
7090: b209 sxth r1, r1
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
7092: 2900 cmp r1, #0
7094: dd0e ble.n 70b4 <_lv_blend_fill+0xc8>
7096: 0013 movs r3, r2
7098: 4694 mov ip, r2
709a: 4461 add r1, ip
709c: 2480 movs r4, #128 ; 0x80
709e: 9a0a ldr r2, [sp, #40] ; 0x28
70a0: 4694 mov ip, r2
70a2: 781a ldrb r2, [r3, #0]
70a4: 4294 cmp r4, r2
70a6: 4192 sbcs r2, r2
70a8: 701a strb r2, [r3, #0]
70aa: 3301 adds r3, #1
70ac: 428b cmp r3, r1
70ae: d1f8 bne.n 70a2 <_lv_blend_fill+0xb6>
70b0: 4663 mov r3, ip
70b2: 930a str r3, [sp, #40] ; 0x28
if(disp->driver.set_px_cb) {
70b4: 4653 mov r3, sl
70b6: 695b ldr r3, [r3, #20]
70b8: 2b00 cmp r3, #0
70ba: d100 bne.n 70be <_lv_blend_fill+0xd2>
70bc: e08c b.n 71d8 <_lv_blend_fill+0x1ec>
70be: 466b mov r3, sp
70c0: 8a9e ldrh r6, [r3, #20]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
70c2: 4b99 ldr r3, [pc, #612] ; (7328 <_lv_blend_fill+0x33c>)
70c4: 4798 blx r3
70c6: 0005 movs r5, r0
70c8: 4643 mov r3, r8
70ca: 8a9b ldrh r3, [r3, #20]
70cc: 3301 adds r3, #1
70ce: 4642 mov r2, r8
70d0: 8a12 ldrh r2, [r2, #16]
70d2: 1a9b subs r3, r3, r2
70d4: b21b sxth r3, r3
70d6: 9305 str r3, [sp, #20]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
70d8: 2f01 cmp r7, #1
70da: d046 beq.n 716a <_lv_blend_fill+0x17e>
const lv_opa_t * mask_tmp = mask - draw_area->x1;
70dc: aa10 add r2, sp, #64 ; 0x40
70de: 2300 movs r3, #0
70e0: 5ed1 ldrsh r1, [r2, r3]
70e2: 9b06 ldr r3, [sp, #24]
70e4: 1a5b subs r3, r3, r1
70e6: 4698 mov r8, r3
70e8: 8893 ldrh r3, [r2, #4]
70ea: 3301 adds r3, #1
70ec: 1a5b subs r3, r3, r1
70ee: b21b sxth r3, r3
70f0: 9308 str r3, [sp, #32]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
70f2: 2102 movs r1, #2
70f4: 5e53 ldrsh r3, [r2, r1]
70f6: 0019 movs r1, r3
70f8: 9307 str r3, [sp, #28]
70fa: 2306 movs r3, #6
70fc: 5ed3 ldrsh r3, [r2, r3]
70fe: 4299 cmp r1, r3
7100: dd00 ble.n 7104 <_lv_blend_fill+0x118>
7102: e78b b.n 701c <_lv_blend_fill+0x30>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7104: af10 add r7, sp, #64 ; 0x40
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
7106: ab01 add r3, sp, #4
7108: 469a mov sl, r3
710a: 46b1 mov r9, r6
710c: 4646 mov r6, r8
for(x = draw_area->x1; x <= draw_area->x2; x++) {
710e: 2300 movs r3, #0
7110: 5efc ldrsh r4, [r7, r3]
7112: 2204 movs r2, #4
7114: 5ebb ldrsh r3, [r7, r2]
7116: 429c cmp r4, r3
7118: dc1b bgt.n 7152 <_lv_blend_fill+0x166>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
711a: 466b mov r3, sp
711c: 221c movs r2, #28
711e: 5e9b ldrsh r3, [r3, r2]
7120: 4698 mov r8, r3
7122: 9606 str r6, [sp, #24]
7124: b223 sxth r3, r4
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
7126: 9a06 ldr r2, [sp, #24]
7128: 5d12 ldrb r2, [r2, r4]
712a: 4659 mov r1, fp
712c: 434a muls r2, r1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
712e: 0a12 lsrs r2, r2, #8
7130: 9202 str r2, [sp, #8]
7132: 4652 mov r2, sl
7134: 4649 mov r1, r9
7136: 8011 strh r1, [r2, #0]
7138: 4642 mov r2, r8
713a: 9200 str r2, [sp, #0]
713c: 9a05 ldr r2, [sp, #20]
713e: 9904 ldr r1, [sp, #16]
7140: 0028 movs r0, r5
7142: 696e ldr r6, [r5, #20]
7144: 47b0 blx r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7146: 3401 adds r4, #1
7148: 2204 movs r2, #4
714a: 5ebb ldrsh r3, [r7, r2]
714c: 429c cmp r4, r3
714e: dde9 ble.n 7124 <_lv_blend_fill+0x138>
7150: 9e06 ldr r6, [sp, #24]
7152: 9b08 ldr r3, [sp, #32]
7154: 469c mov ip, r3
7156: 4466 add r6, ip
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7158: 9b07 ldr r3, [sp, #28]
715a: 3301 adds r3, #1
715c: 001a movs r2, r3
715e: 9307 str r3, [sp, #28]
7160: 2106 movs r1, #6
7162: 5e7b ldrsh r3, [r7, r1]
7164: 429a cmp r2, r3
7166: ddd2 ble.n 710e <_lv_blend_fill+0x122>
7168: e758 b.n 701c <_lv_blend_fill+0x30>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
716a: ab10 add r3, sp, #64 ; 0x40
716c: 2102 movs r1, #2
716e: 5e5a ldrsh r2, [r3, r1]
7170: 4692 mov sl, r2
7172: 2206 movs r2, #6
7174: 5e9b ldrsh r3, [r3, r2]
7176: 459a cmp sl, r3
7178: dd00 ble.n 717c <_lv_blend_fill+0x190>
717a: e74f b.n 701c <_lv_blend_fill+0x30>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
717c: ac10 add r4, sp, #64 ; 0x40
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
717e: ab01 add r3, sp, #4
7180: 4699 mov r9, r3
7182: 46b0 mov r8, r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7184: 2300 movs r3, #0
7186: 5ee7 ldrsh r7, [r4, r3]
7188: 2204 movs r2, #4
718a: 5ea3 ldrsh r3, [r4, r2]
718c: 429f cmp r7, r3
718e: dc1b bgt.n 71c8 <_lv_blend_fill+0x1dc>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
7190: 4653 mov r3, sl
7192: b21e sxth r6, r3
7194: 4642 mov r2, r8
7196: 4669 mov r1, sp
7198: 830a strh r2, [r1, #24]
719a: 46b0 mov r8, r6
719c: b23b sxth r3, r7
719e: 465a mov r2, fp
71a0: 9202 str r2, [sp, #8]
71a2: 464a mov r2, r9
71a4: 4669 mov r1, sp
71a6: 8b09 ldrh r1, [r1, #24]
71a8: 8011 strh r1, [r2, #0]
71aa: 4642 mov r2, r8
71ac: 9200 str r2, [sp, #0]
71ae: 9a05 ldr r2, [sp, #20]
71b0: 9904 ldr r1, [sp, #16]
71b2: 0028 movs r0, r5
71b4: 696e ldr r6, [r5, #20]
71b6: 47b0 blx r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
71b8: 3701 adds r7, #1
71ba: 2204 movs r2, #4
71bc: 5ea3 ldrsh r3, [r4, r2]
71be: 429f cmp r7, r3
71c0: ddec ble.n 719c <_lv_blend_fill+0x1b0>
71c2: 466b mov r3, sp
71c4: 8b1b ldrh r3, [r3, #24]
71c6: 4698 mov r8, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
71c8: 2301 movs r3, #1
71ca: 469c mov ip, r3
71cc: 44e2 add sl, ip
71ce: 2206 movs r2, #6
71d0: 5ea3 ldrsh r3, [r4, r2]
71d2: 459a cmp sl, r3
71d4: ddd6 ble.n 7184 <_lv_blend_fill+0x198>
71d6: e721 b.n 701c <_lv_blend_fill+0x30>
else if(mode == LV_BLEND_MODE_NORMAL) {
71d8: 2e00 cmp r6, #0
71da: d001 beq.n 71e0 <_lv_blend_fill+0x1f4>
71dc: f000 fc27 bl 7a2e <_lv_blend_fill+0xa42>
71e0: 466b mov r3, sp
71e2: 8a9b ldrh r3, [r3, #20]
71e4: 466a mov r2, sp
71e6: 8413 strh r3, [r2, #32]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
71e8: 4b4f ldr r3, [pc, #316] ; (7328 <_lv_blend_fill+0x33c>)
71ea: 4798 blx r3
71ec: 0004 movs r4, r0
71ee: 4643 mov r3, r8
71f0: 8a9d ldrh r5, [r3, #20]
71f2: 3501 adds r5, #1
71f4: 8a1b ldrh r3, [r3, #16]
71f6: 1aed subs r5, r5, r3
71f8: b22d sxth r5, r5
71fa: a810 add r0, sp, #64 ; 0x40
71fc: 2300 movs r3, #0
71fe: 5ec1 ldrsh r1, [r0, r3]
7200: 8883 ldrh r3, [r0, #4]
7202: 3301 adds r3, #1
7204: 1a5b subs r3, r3, r1
7206: b21b sxth r3, r3
7208: 930b str r3, [sp, #44] ; 0x2c
int32_t draw_area_w = lv_area_get_width(draw_area);
720a: 930a str r3, [sp, #40] ; 0x28
* @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)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
720c: 2306 movs r3, #6
720e: 5ec2 ldrsh r2, [r0, r3]
7210: 2302 movs r3, #2
7212: 5ec3 ldrsh r3, [r0, r3]
7214: 1c56 adds r6, r2, #1
7216: 1af6 subs r6, r6, r3
7218: b236 sxth r6, r6
int32_t draw_area_h = lv_area_get_height(draw_area);
721a: 960e str r6, [sp, #56] ; 0x38
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
721c: 930c str r3, [sp, #48] ; 0x30
721e: 436b muls r3, r5
7220: 185b adds r3, r3, r1
7222: 005b lsls r3, r3, #1
7224: 9904 ldr r1, [sp, #16]
7226: 468c mov ip, r1
7228: 4463 add r3, ip
722a: 9307 str r3, [sp, #28]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
722c: 2f01 cmp r7, #1
722e: d01e beq.n 726e <_lv_blend_fill+0x282>
if(opa > LV_OPA_MAX) {
7230: 465b mov r3, fp
7232: 2bfa cmp r3, #250 ; 0xfa
7234: d900 bls.n 7238 <_lv_blend_fill+0x24c>
7236: e127 b.n 7488 <_lv_blend_fill+0x49c>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7238: 9b0c ldr r3, [sp, #48] ; 0x30
723a: 4293 cmp r3, r2
723c: dd00 ble.n 7240 <_lv_blend_fill+0x254>
723e: e6ed b.n 701c <_lv_blend_fill+0x30>
last_dest_color.full = disp_buf_first[0].full;
7240: 9b07 ldr r3, [sp, #28]
7242: 881a ldrh r2, [r3, #0]
7244: 466b mov r3, sp
7246: 8a99 ldrh r1, [r3, #20]
7248: 040b lsls r3, r1, #16
724a: 0edb lsrs r3, r3, #27
724c: 9305 str r3, [sp, #20]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
724e: 054b lsls r3, r1, #21
7250: 0e9b lsrs r3, r3, #26
7252: 9308 str r3, [sp, #32]
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7254: 06cb lsls r3, r1, #27
7256: 0edb lsrs r3, r3, #27
7258: 469c mov ip, r3
disp_buf_first += disp_w;
725a: 006b lsls r3, r5, #1
725c: 930f str r3, [sp, #60] ; 0x3c
725e: 0013 movs r3, r2
7260: 2600 movs r6, #0
7262: 2000 movs r0, #0
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
7264: b289 uxth r1, r1
7266: 910e str r1, [sp, #56] ; 0x38
7268: 0002 movs r2, r0
726a: 4699 mov r9, r3
726c: e3d0 b.n 7a10 <_lv_blend_fill+0xa24>
if(opa > LV_OPA_MAX) {
726e: 465b mov r3, fp
7270: 2bfa cmp r3, #250 ; 0xfa
7272: d924 bls.n 72be <_lv_blend_fill+0x2d2>
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
7274: 6a63 ldr r3, [r4, #36] ; 0x24
7276: 2b00 cmp r3, #0
7278: d004 beq.n 7284 <_lv_blend_fill+0x298>
727a: a810 add r0, sp, #64 ; 0x40
727c: 4b2d ldr r3, [pc, #180] ; (7334 <_lv_blend_fill+0x348>)
727e: 4798 blx r3
7280: 28f0 cmp r0, #240 ; 0xf0
7282: d812 bhi.n 72aa <_lv_blend_fill+0x2be>
disp_buf_first += disp_w;
7284: 006d lsls r5, r5, #1
7286: 2400 movs r4, #0
for(y = 0; y < draw_area_h; y++) {
7288: 9b0e ldr r3, [sp, #56] ; 0x38
728a: 2b00 cmp r3, #0
728c: dc00 bgt.n 7290 <_lv_blend_fill+0x2a4>
728e: e6c5 b.n 701c <_lv_blend_fill+0x30>
lv_color_fill(disp_buf_first, color, draw_area_w);
7290: 4e29 ldr r6, [pc, #164] ; (7338 <_lv_blend_fill+0x34c>)
7292: 9f07 ldr r7, [sp, #28]
7294: 9a0b ldr r2, [sp, #44] ; 0x2c
7296: 466b mov r3, sp
7298: 8c19 ldrh r1, [r3, #32]
729a: 0038 movs r0, r7
729c: 47b0 blx r6
disp_buf_first += disp_w;
729e: 197f adds r7, r7, r5
for(y = 0; y < draw_area_h; y++) {
72a0: 3401 adds r4, #1
72a2: 9b0e ldr r3, [sp, #56] ; 0x38
72a4: 42a3 cmp r3, r4
72a6: dcf5 bgt.n 7294 <_lv_blend_fill+0x2a8>
72a8: e6b8 b.n 701c <_lv_blend_fill+0x30>
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
72aa: 466b mov r3, sp
72ac: 8a9a ldrh r2, [r3, #20]
72ae: 801a strh r2, [r3, #0]
72b0: 6a66 ldr r6, [r4, #36] ; 0x24
72b2: ab10 add r3, sp, #64 ; 0x40
72b4: 002a movs r2, r5
72b6: 9904 ldr r1, [sp, #16]
72b8: 0020 movs r0, r4
72ba: 47b0 blx r6
72bc: e6ae b.n 701c <_lv_blend_fill+0x30>
if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
72be: 6a23 ldr r3, [r4, #32]
72c0: 2b00 cmp r3, #0
72c2: d03d beq.n 7340 <_lv_blend_fill+0x354>
72c4: a810 add r0, sp, #64 ; 0x40
72c6: 4b1b ldr r3, [pc, #108] ; (7334 <_lv_blend_fill+0x348>)
72c8: 4798 blx r3
72ca: 28f0 cmp r0, #240 ; 0xf0
72cc: d938 bls.n 7340 <_lv_blend_fill+0x354>
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
72ce: 9b0a ldr r3, [sp, #40] ; 0x28
72d0: 2b00 cmp r3, #0
72d2: dd09 ble.n 72e8 <_lv_blend_fill+0x2fc>
72d4: 466b mov r3, sp
72d6: 8a9e ldrh r6, [r3, #20]
72d8: 4b18 ldr r3, [pc, #96] ; (733c <_lv_blend_fill+0x350>)
72da: 9a0b ldr r2, [sp, #44] ; 0x2c
72dc: 0052 lsls r2, r2, #1
72de: 189a adds r2, r3, r2
72e0: 801e strh r6, [r3, #0]
72e2: 3302 adds r3, #2
72e4: 4293 cmp r3, r2
72e6: d1fb bne.n 72e0 <_lv_blend_fill+0x2f4>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
72e8: ab10 add r3, sp, #64 ; 0x40
72ea: 2202 movs r2, #2
72ec: 5e9e ldrsh r6, [r3, r2]
72ee: 2206 movs r2, #6
72f0: 5e9b ldrsh r3, [r3, r2]
72f2: 429e cmp r6, r3
72f4: dd00 ble.n 72f8 <_lv_blend_fill+0x30c>
72f6: e691 b.n 701c <_lv_blend_fill+0x30>
disp_buf_first += disp_w;
72f8: 006d lsls r5, r5, #1
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
72fa: 4b10 ldr r3, [pc, #64] ; (733c <_lv_blend_fill+0x350>)
72fc: 4698 mov r8, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
72fe: af10 add r7, sp, #64 ; 0x40
7300: 46aa mov sl, r5
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
7302: 465b mov r3, fp
7304: 9300 str r3, [sp, #0]
7306: 9b0b ldr r3, [sp, #44] ; 0x2c
7308: 4642 mov r2, r8
730a: 9907 ldr r1, [sp, #28]
730c: 4689 mov r9, r1
730e: 0020 movs r0, r4
7310: 6a25 ldr r5, [r4, #32]
7312: 47a8 blx r5
disp_buf_first += disp_w;
7314: 46cc mov ip, r9
7316: 44d4 add ip, sl
7318: 4663 mov r3, ip
731a: 9307 str r3, [sp, #28]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
731c: 3601 adds r6, #1
731e: 2206 movs r2, #6
7320: 5ebb ldrsh r3, [r7, r2]
7322: 429e cmp r6, r3
7324: dded ble.n 7302 <_lv_blend_fill+0x316>
7326: e679 b.n 701c <_lv_blend_fill+0x30>
7328: 00005591 .word 0x00005591
732c: 00010e75 .word 0x00010e75
7330: 0001140b .word 0x0001140b
7334: 000113ef .word 0x000113ef
7338: 00011a31 .word 0x00011a31
733c: 20002700 .word 0x20002700
lv_color_t last_dest_color = LV_COLOR_BLACK;
7340: 2300 movs r3, #0
7342: 466a mov r2, sp
7344: 8313 strh r3, [r2, #24]
7346: 8a92 ldrh r2, [r2, #20]
7348: 06d3 lsls r3, r2, #27
734a: 0edb lsrs r3, r3, #27
734c: 469c mov ip, r3
734e: 1c13 adds r3, r2, #0
7350: 001a movs r2, r3
7352: 0557 lsls r7, r2, #21
7354: 0ebf lsrs r7, r7, #26
7356: 041c lsls r4, r3, #16
7358: 0ee4 lsrs r4, r4, #27
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
735a: 465b mov r3, fp
735c: 4363 muls r3, r4
735e: 0218 lsls r0, r3, #8
7360: 18c0 adds r0, r0, r3
7362: 01c0 lsls r0, r0, #7
7364: 18c0 adds r0, r0, r3
7366: 0dc0 lsrs r0, r0, #23
7368: 231f movs r3, #31
736a: 4698 mov r8, r3
736c: 4018 ands r0, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
736e: 465a mov r2, fp
7370: 437a muls r2, r7
7372: 0213 lsls r3, r2, #8
7374: 189b adds r3, r3, r2
7376: 01db lsls r3, r3, #7
7378: 189a adds r2, r3, r2
737a: 00d2 lsls r2, r2, #3
737c: 0e93 lsrs r3, r2, #26
737e: 469a mov sl, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7380: 4659 mov r1, fp
7382: 4663 mov r3, ip
7384: 4359 muls r1, r3
7386: 020b lsls r3, r1, #8
7388: 185b adds r3, r3, r1
738a: 01db lsls r3, r3, #7
738c: 1859 adds r1, r3, r1
738e: 0dc9 lsrs r1, r1, #23
7390: 4643 mov r3, r8
7392: 4019 ands r1, r3
}
LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out)
{
#if LV_COLOR_DEPTH != 1
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
7394: 465b mov r3, fp
7396: 466a mov r2, sp
7398: 8213 strh r3, [r2, #16]
739a: 8a13 ldrh r3, [r2, #16]
739c: 435c muls r4, r3
739e: 9405 str r4, [sp, #20]
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
73a0: 435f muls r7, r3
73a2: 9708 str r7, [sp, #32]
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
73a4: 4664 mov r4, ip
73a6: 435c muls r4, r3
73a8: 9409 str r4, [sp, #36] ; 0x24
lv_opa_t opa_inv = 255 - opa;
73aa: 465b mov r3, fp
73ac: 43df mvns r7, r3
73ae: b2ff uxtb r7, r7
for(y = 0; y < draw_area_h; y++) {
73b0: 9b0e ldr r3, [sp, #56] ; 0x38
73b2: 2b00 cmp r3, #0
73b4: dc00 bgt.n 73b8 <_lv_blend_fill+0x3cc>
73b6: e631 b.n 701c <_lv_blend_fill+0x30>
disp_buf_first += disp_w;
73b8: 006b lsls r3, r5, #1
73ba: 930e str r3, [sp, #56] ; 0x38
73bc: 1c73 adds r3, r6, #1
73be: 930d str r3, [sp, #52] ; 0x34
73c0: 9b0b ldr r3, [sp, #44] ; 0x2c
73c2: 005b lsls r3, r3, #1
73c4: 930f str r3, [sp, #60] ; 0x3c
73c6: 2301 movs r3, #1
73c8: 930c str r3, [sp, #48] ; 0x30
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
73ca: b2bf uxth r7, r7
73cc: 261f movs r6, #31
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
73ce: 333e adds r3, #62 ; 0x3e
73d0: 930b str r3, [sp, #44] ; 0x2c
disp_buf_first[x] = last_res_color;
73d2: 4b63 ldr r3, [pc, #396] ; (7560 <_lv_blend_fill+0x574>)
73d4: 4698 mov r8, r3
73d6: 2307 movs r3, #7
73d8: 4699 mov r9, r3
73da: 4652 mov r2, sl
73dc: e048 b.n 7470 <_lv_blend_fill+0x484>
73de: 782b ldrb r3, [r5, #0]
73e0: 43b3 bics r3, r6
73e2: 430b orrs r3, r1
73e4: 702b strb r3, [r5, #0]
73e6: 9b04 ldr r3, [sp, #16]
73e8: 015b lsls r3, r3, #5
73ea: 882f ldrh r7, [r5, #0]
73ec: 4642 mov r2, r8
73ee: 4017 ands r7, r2
73f0: 433b orrs r3, r7
73f2: 802b strh r3, [r5, #0]
73f4: 00c7 lsls r7, r0, #3
73f6: 0a1b lsrs r3, r3, #8
73f8: 464a mov r2, r9
73fa: 4013 ands r3, r2
73fc: 431f orrs r7, r3
73fe: 706f strb r7, [r5, #1]
7400: 3402 adds r4, #2
for(x = 0; x < draw_area_w; x++) {
7402: 4554 cmp r4, sl
7404: d026 beq.n 7454 <_lv_blend_fill+0x468>
if(last_dest_color.full != disp_buf_first[x].full) {
7406: 0025 movs r5, r4
7408: 466b mov r3, sp
740a: 8b1b ldrh r3, [r3, #24]
740c: 8827 ldrh r7, [r4, #0]
740e: 42bb cmp r3, r7
7410: d0e5 beq.n 73de <_lv_blend_fill+0x3f2>
last_dest_color = disp_buf_first[x];
7412: 466b mov r3, sp
7414: 831f strh r7, [r3, #24]
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
7416: 7860 ldrb r0, [r4, #1]
7418: 08c0 lsrs r0, r0, #3
741a: 4663 mov r3, ip
741c: 4358 muls r0, r3
741e: 9b05 ldr r3, [sp, #20]
7420: 469b mov fp, r3
7422: 4458 add r0, fp
7424: 0a00 lsrs r0, r0, #8
7426: 4030 ands r0, r6
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
7428: 057a lsls r2, r7, #21
742a: 0e92 lsrs r2, r2, #26
742c: 4663 mov r3, ip
742e: 435a muls r2, r3
7430: 9b08 ldr r3, [sp, #32]
7432: 469b mov fp, r3
7434: 445a add r2, fp
7436: 0a12 lsrs r2, r2, #8
7438: 9b0b ldr r3, [sp, #44] ; 0x2c
743a: 401a ands r2, r3
743c: 9204 str r2, [sp, #16]
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
743e: 7821 ldrb r1, [r4, #0]
7440: 06c9 lsls r1, r1, #27
7442: 0ec9 lsrs r1, r1, #27
7444: 4663 mov r3, ip
7446: 4359 muls r1, r3
7448: 9b09 ldr r3, [sp, #36] ; 0x24
744a: 469b mov fp, r3
744c: 4459 add r1, fp
744e: 0a09 lsrs r1, r1, #8
7450: 4031 ands r1, r6
7452: e7c4 b.n 73de <_lv_blend_fill+0x3f2>
7454: 9a04 ldr r2, [sp, #16]
7456: 4667 mov r7, ip
disp_buf_first += disp_w;
7458: 9b07 ldr r3, [sp, #28]
745a: 9c0e ldr r4, [sp, #56] ; 0x38
745c: 46a4 mov ip, r4
745e: 4463 add r3, ip
7460: 9307 str r3, [sp, #28]
7462: 9b0c ldr r3, [sp, #48] ; 0x30
7464: 3301 adds r3, #1
7466: 930c str r3, [sp, #48] ; 0x30
for(y = 0; y < draw_area_h; y++) {
7468: 9c0d ldr r4, [sp, #52] ; 0x34
746a: 429c cmp r4, r3
746c: d100 bne.n 7470 <_lv_blend_fill+0x484>
746e: e5d5 b.n 701c <_lv_blend_fill+0x30>
for(x = 0; x < draw_area_w; x++) {
7470: 9b0a ldr r3, [sp, #40] ; 0x28
7472: 2b00 cmp r3, #0
7474: ddf0 ble.n 7458 <_lv_blend_fill+0x46c>
7476: 9b07 ldr r3, [sp, #28]
7478: 001c movs r4, r3
747a: 9d0f ldr r5, [sp, #60] ; 0x3c
747c: 46aa mov sl, r5
747e: 4453 add r3, sl
7480: 9204 str r2, [sp, #16]
7482: 469a mov sl, r3
7484: 46bc mov ip, r7
7486: e7be b.n 7406 <_lv_blend_fill+0x41a>
for(y = 0; y < draw_area_h; y++) {
7488: 9b0e ldr r3, [sp, #56] ; 0x38
748a: 2b00 cmp r3, #0
748c: dc00 bgt.n 7490 <_lv_blend_fill+0x4a4>
748e: e5c5 b.n 701c <_lv_blend_fill+0x30>
int32_t x_end4 = draw_area_w - 4;
7490: 9b0b ldr r3, [sp, #44] ; 0x2c
7492: 3b04 subs r3, #4
7494: 9305 str r3, [sp, #20]
disp_buf_first += disp_w;
7496: 006b lsls r3, r5, #1
7498: 930f str r3, [sp, #60] ; 0x3c
749a: 9b06 ldr r3, [sp, #24]
749c: 9309 str r3, [sp, #36] ; 0x24
749e: 2300 movs r3, #0
74a0: 930d str r3, [sp, #52] ; 0x34
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
74a2: 466b mov r3, sp
74a4: 8c1a ldrh r2, [r3, #32]
74a6: 0417 lsls r7, r2, #16
74a8: 0efb lsrs r3, r7, #27
74aa: 9304 str r3, [sp, #16]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
74ac: 0553 lsls r3, r2, #21
74ae: 0e9b lsrs r3, r3, #26
74b0: 469a mov sl, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
74b2: 06d3 lsls r3, r2, #27
74b4: 0edb lsrs r3, r3, #27
74b6: 469b mov fp, r3
74b8: e213 b.n 78e2 <_lv_blend_fill+0x8f6>
FILL_NORMAL_MASK_PX(x, color)
74ba: 466a mov r2, sp
74bc: 8c12 ldrh r2, [r2, #32]
74be: 8032 strh r2, [r6, #0]
74c0: 3401 adds r4, #1
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
74c2: 3301 adds r3, #1
74c4: 4598 cmp r8, r3
74c6: dc01 bgt.n 74cc <_lv_blend_fill+0x4e0>
74c8: f000 fbf1 bl 7cae <_lv_blend_fill+0xcc2>
74cc: 3602 adds r6, #2
74ce: 07a2 lsls r2, r4, #30
74d0: d03f beq.n 7552 <_lv_blend_fill+0x566>
FILL_NORMAL_MASK_PX(x, color)
74d2: 7820 ldrb r0, [r4, #0]
74d4: 2800 cmp r0, #0
74d6: d0f3 beq.n 74c0 <_lv_blend_fill+0x4d4>
74d8: 28ff cmp r0, #255 ; 0xff
74da: d0ee beq.n 74ba <_lv_blend_fill+0x4ce>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
74dc: 22ff movs r2, #255 ; 0xff
74de: 1a15 subs r5, r2, r0
74e0: 9f04 ldr r7, [sp, #16]
74e2: 4347 muls r7, r0
74e4: 7871 ldrb r1, [r6, #1]
74e6: 08c9 lsrs r1, r1, #3
74e8: 4369 muls r1, r5
74ea: 187f adds r7, r7, r1
74ec: 023a lsls r2, r7, #8
74ee: 19d2 adds r2, r2, r7
74f0: 01d2 lsls r2, r2, #7
74f2: 19d2 adds r2, r2, r7
74f4: 0dd2 lsrs r2, r2, #23
74f6: 4649 mov r1, r9
74f8: 400a ands r2, r1
74fa: 9206 str r2, [sp, #24]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
74fc: 4657 mov r7, sl
74fe: 4347 muls r7, r0
7500: 8831 ldrh r1, [r6, #0]
7502: 0549 lsls r1, r1, #21
7504: 0e89 lsrs r1, r1, #26
7506: 4369 muls r1, r5
7508: 187f adds r7, r7, r1
750a: 0239 lsls r1, r7, #8
750c: 19c9 adds r1, r1, r7
750e: 01c9 lsls r1, r1, #7
7510: 19c9 adds r1, r1, r7
7512: 00c9 lsls r1, r1, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7514: 465f mov r7, fp
7516: 4378 muls r0, r7
7518: 7837 ldrb r7, [r6, #0]
751a: 06fa lsls r2, r7, #27
751c: 0ed2 lsrs r2, r2, #27
751e: 4355 muls r5, r2
7520: 1945 adds r5, r0, r5
7522: 0228 lsls r0, r5, #8
7524: 1940 adds r0, r0, r5
7526: 01c0 lsls r0, r0, #7
7528: 1940 adds r0, r0, r5
752a: 0dc0 lsrs r0, r0, #23
752c: 464a mov r2, r9
752e: 4010 ands r0, r2
7530: 4397 bics r7, r2
7532: 4338 orrs r0, r7
7534: 7030 strb r0, [r6, #0]
7536: 0e89 lsrs r1, r1, #26
7538: 0148 lsls r0, r1, #5
753a: 8831 ldrh r1, [r6, #0]
753c: 4d08 ldr r5, [pc, #32] ; (7560 <_lv_blend_fill+0x574>)
753e: 4029 ands r1, r5
7540: 4301 orrs r1, r0
7542: 8031 strh r1, [r6, #0]
7544: 9a06 ldr r2, [sp, #24]
7546: 00d2 lsls r2, r2, #3
7548: 0549 lsls r1, r1, #21
754a: 0f49 lsrs r1, r1, #29
754c: 430a orrs r2, r1
754e: 7072 strb r2, [r6, #1]
7550: e7b6 b.n 74c0 <_lv_blend_fill+0x4d4>
7552: 0022 movs r2, r4
for(; x <= x_end4; x += 4) {
7554: 9905 ldr r1, [sp, #20]
7556: 4299 cmp r1, r3
7558: db00 blt.n 755c <_lv_blend_fill+0x570>
755a: e3ad b.n 7cb8 <_lv_blend_fill+0xccc>
755c: e15e b.n 781c <_lv_blend_fill+0x830>
755e: 46c0 nop ; (mov r8, r8)
7560: fffff81f .word 0xfffff81f
disp_buf_first[x] = color;
7564: 4669 mov r1, sp
7566: 8c09 ldrh r1, [r1, #32]
7568: 8021 strh r1, [r4, #0]
disp_buf_first[x + 1] = color;
756a: 8061 strh r1, [r4, #2]
disp_buf_first[x + 2] = color;
756c: 80a1 strh r1, [r4, #4]
disp_buf_first[x + 3] = color;
756e: 80e1 strh r1, [r4, #6]
mask32++;
7570: 3204 adds r2, #4
for(; x <= x_end4; x += 4) {
7572: 3304 adds r3, #4
7574: 3408 adds r4, #8
7576: 9905 ldr r1, [sp, #20]
7578: 4299 cmp r1, r3
757a: da00 bge.n 757e <_lv_blend_fill+0x592>
757c: e149 b.n 7812 <_lv_blend_fill+0x826>
if(*mask32) {
757e: 6811 ldr r1, [r2, #0]
7580: 2900 cmp r1, #0
7582: d0f5 beq.n 7570 <_lv_blend_fill+0x584>
if((*mask32) == 0xFFFFFFFF) {
7584: 3101 adds r1, #1
7586: d0ed beq.n 7564 <_lv_blend_fill+0x578>
FILL_NORMAL_MASK_PX(x, color)
7588: 7815 ldrb r5, [r2, #0]
758a: 2d00 cmp r5, #0
758c: d046 beq.n 761c <_lv_blend_fill+0x630>
758e: 2dff cmp r5, #255 ; 0xff
7590: d100 bne.n 7594 <_lv_blend_fill+0x5a8>
7592: e12e b.n 77f2 <_lv_blend_fill+0x806>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
7594: 21ff movs r1, #255 ; 0xff
7596: 1b49 subs r1, r1, r5
7598: 468c mov ip, r1
759a: 9804 ldr r0, [sp, #16]
759c: 4368 muls r0, r5
759e: 7861 ldrb r1, [r4, #1]
75a0: 08c9 lsrs r1, r1, #3
75a2: 4666 mov r6, ip
75a4: 4371 muls r1, r6
75a6: 1840 adds r0, r0, r1
75a8: 0201 lsls r1, r0, #8
75aa: 1809 adds r1, r1, r0
75ac: 01c9 lsls r1, r1, #7
75ae: 1809 adds r1, r1, r0
75b0: 0dc9 lsrs r1, r1, #23
75b2: 4039 ands r1, r7
75b4: 468a mov sl, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
75b6: 0028 movs r0, r5
75b8: 9906 ldr r1, [sp, #24]
75ba: 4348 muls r0, r1
75bc: 4681 mov r9, r0
75be: 8820 ldrh r0, [r4, #0]
75c0: 0540 lsls r0, r0, #21
75c2: 0e80 lsrs r0, r0, #26
75c4: 4370 muls r0, r6
75c6: 4481 add r9, r0
75c8: 4648 mov r0, r9
75ca: 0200 lsls r0, r0, #8
75cc: 4448 add r0, r9
75ce: 01c0 lsls r0, r0, #7
75d0: 4448 add r0, r9
75d2: 00c0 lsls r0, r0, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
75d4: 465e mov r6, fp
75d6: 4375 muls r5, r6
75d8: 7826 ldrb r6, [r4, #0]
75da: 46b0 mov r8, r6
75dc: 06f6 lsls r6, r6, #27
75de: 0ef6 lsrs r6, r6, #27
75e0: 46b1 mov r9, r6
75e2: 4666 mov r6, ip
75e4: 4649 mov r1, r9
75e6: 434e muls r6, r1
75e8: 46b4 mov ip, r6
75ea: 44ac add ip, r5
75ec: 4661 mov r1, ip
75ee: 020d lsls r5, r1, #8
75f0: 4465 add r5, ip
75f2: 01ed lsls r5, r5, #7
75f4: 4465 add r5, ip
75f6: 0ded lsrs r5, r5, #23
75f8: 403d ands r5, r7
75fa: 4646 mov r6, r8
75fc: 43be bics r6, r7
75fe: 4335 orrs r5, r6
7600: 7025 strb r5, [r4, #0]
7602: 0e80 lsrs r0, r0, #26
7604: 0145 lsls r5, r0, #5
7606: 8820 ldrh r0, [r4, #0]
7608: 49be ldr r1, [pc, #760] ; (7904 <_lv_blend_fill+0x918>)
760a: 4008 ands r0, r1
760c: 4328 orrs r0, r5
760e: 8020 strh r0, [r4, #0]
7610: 4651 mov r1, sl
7612: 00c9 lsls r1, r1, #3
7614: 0540 lsls r0, r0, #21
7616: 0f40 lsrs r0, r0, #29
7618: 4301 orrs r1, r0
761a: 7061 strb r1, [r4, #1]
FILL_NORMAL_MASK_PX(x + 1, color)
761c: 7855 ldrb r5, [r2, #1]
761e: 2d00 cmp r5, #0
7620: d04a beq.n 76b8 <_lv_blend_fill+0x6cc>
7622: 2dff cmp r5, #255 ; 0xff
7624: d100 bne.n 7628 <_lv_blend_fill+0x63c>
7626: e0e8 b.n 77fa <_lv_blend_fill+0x80e>
7628: 1ca1 adds r1, r4, #2
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
762a: 20ff movs r0, #255 ; 0xff
762c: 1b40 subs r0, r0, r5
762e: 4684 mov ip, r0
7630: 9804 ldr r0, [sp, #16]
7632: 4368 muls r0, r5
7634: 4689 mov r9, r1
7636: 78e1 ldrb r1, [r4, #3]
7638: 08c9 lsrs r1, r1, #3
763a: 4666 mov r6, ip
763c: 4371 muls r1, r6
763e: 1840 adds r0, r0, r1
7640: 0201 lsls r1, r0, #8
7642: 1809 adds r1, r1, r0
7644: 01c9 lsls r1, r1, #7
7646: 1809 adds r1, r1, r0
7648: 0dc9 lsrs r1, r1, #23
764a: 4039 ands r1, r7
764c: 910c str r1, [sp, #48] ; 0x30
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
764e: 0028 movs r0, r5
7650: 9e06 ldr r6, [sp, #24]
7652: 4370 muls r0, r6
7654: 4682 mov sl, r0
7656: 8860 ldrh r0, [r4, #2]
7658: 0540 lsls r0, r0, #21
765a: 0e80 lsrs r0, r0, #26
765c: 4666 mov r6, ip
765e: 4370 muls r0, r6
7660: 4482 add sl, r0
7662: 4650 mov r0, sl
7664: 0200 lsls r0, r0, #8
7666: 4450 add r0, sl
7668: 01c0 lsls r0, r0, #7
766a: 4450 add r0, sl
766c: 00c0 lsls r0, r0, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
766e: 465e mov r6, fp
7670: 4375 muls r5, r6
7672: 78a6 ldrb r6, [r4, #2]
7674: 46b0 mov r8, r6
7676: 06f6 lsls r6, r6, #27
7678: 0ef6 lsrs r6, r6, #27
767a: 46b2 mov sl, r6
767c: 4666 mov r6, ip
767e: 4651 mov r1, sl
7680: 434e muls r6, r1
7682: 46b4 mov ip, r6
7684: 44ac add ip, r5
7686: 4661 mov r1, ip
7688: 020d lsls r5, r1, #8
768a: 4465 add r5, ip
768c: 01ed lsls r5, r5, #7
768e: 4465 add r5, ip
7690: 0ded lsrs r5, r5, #23
7692: 403d ands r5, r7
7694: 4646 mov r6, r8
7696: 43be bics r6, r7
7698: 4335 orrs r5, r6
769a: 70a5 strb r5, [r4, #2]
769c: 0e80 lsrs r0, r0, #26
769e: 0140 lsls r0, r0, #5
76a0: 8865 ldrh r5, [r4, #2]
76a2: 4998 ldr r1, [pc, #608] ; (7904 <_lv_blend_fill+0x918>)
76a4: 400d ands r5, r1
76a6: 4328 orrs r0, r5
76a8: 8060 strh r0, [r4, #2]
76aa: 990c ldr r1, [sp, #48] ; 0x30
76ac: 00c9 lsls r1, r1, #3
76ae: 0540 lsls r0, r0, #21
76b0: 0f40 lsrs r0, r0, #29
76b2: 4301 orrs r1, r0
76b4: 4648 mov r0, r9
76b6: 7041 strb r1, [r0, #1]
FILL_NORMAL_MASK_PX(x + 2, color)
76b8: 7895 ldrb r5, [r2, #2]
76ba: 2d00 cmp r5, #0
76bc: d04a beq.n 7754 <_lv_blend_fill+0x768>
76be: 2dff cmp r5, #255 ; 0xff
76c0: d100 bne.n 76c4 <_lv_blend_fill+0x6d8>
76c2: e09e b.n 7802 <_lv_blend_fill+0x816>
76c4: 1d21 adds r1, r4, #4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
76c6: 20ff movs r0, #255 ; 0xff
76c8: 1b40 subs r0, r0, r5
76ca: 4684 mov ip, r0
76cc: 9804 ldr r0, [sp, #16]
76ce: 4368 muls r0, r5
76d0: 4689 mov r9, r1
76d2: 7961 ldrb r1, [r4, #5]
76d4: 08c9 lsrs r1, r1, #3
76d6: 4666 mov r6, ip
76d8: 4371 muls r1, r6
76da: 1840 adds r0, r0, r1
76dc: 0201 lsls r1, r0, #8
76de: 1809 adds r1, r1, r0
76e0: 01c9 lsls r1, r1, #7
76e2: 1809 adds r1, r1, r0
76e4: 0dc9 lsrs r1, r1, #23
76e6: 4039 ands r1, r7
76e8: 910c str r1, [sp, #48] ; 0x30
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
76ea: 0028 movs r0, r5
76ec: 9e06 ldr r6, [sp, #24]
76ee: 4370 muls r0, r6
76f0: 4682 mov sl, r0
76f2: 88a0 ldrh r0, [r4, #4]
76f4: 0540 lsls r0, r0, #21
76f6: 0e80 lsrs r0, r0, #26
76f8: 4666 mov r6, ip
76fa: 4370 muls r0, r6
76fc: 4482 add sl, r0
76fe: 4650 mov r0, sl
7700: 0200 lsls r0, r0, #8
7702: 4450 add r0, sl
7704: 01c0 lsls r0, r0, #7
7706: 4450 add r0, sl
7708: 00c0 lsls r0, r0, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
770a: 465e mov r6, fp
770c: 4375 muls r5, r6
770e: 7926 ldrb r6, [r4, #4]
7710: 46b0 mov r8, r6
7712: 06f6 lsls r6, r6, #27
7714: 0ef6 lsrs r6, r6, #27
7716: 46b2 mov sl, r6
7718: 4666 mov r6, ip
771a: 4651 mov r1, sl
771c: 434e muls r6, r1
771e: 46b4 mov ip, r6
7720: 44ac add ip, r5
7722: 4661 mov r1, ip
7724: 020d lsls r5, r1, #8
7726: 4465 add r5, ip
7728: 01ed lsls r5, r5, #7
772a: 4465 add r5, ip
772c: 0ded lsrs r5, r5, #23
772e: 403d ands r5, r7
7730: 4646 mov r6, r8
7732: 43be bics r6, r7
7734: 4335 orrs r5, r6
7736: 7125 strb r5, [r4, #4]
7738: 0e80 lsrs r0, r0, #26
773a: 0140 lsls r0, r0, #5
773c: 88a5 ldrh r5, [r4, #4]
773e: 4971 ldr r1, [pc, #452] ; (7904 <_lv_blend_fill+0x918>)
7740: 400d ands r5, r1
7742: 4328 orrs r0, r5
7744: 80a0 strh r0, [r4, #4]
7746: 990c ldr r1, [sp, #48] ; 0x30
7748: 00c9 lsls r1, r1, #3
774a: 0540 lsls r0, r0, #21
774c: 0f40 lsrs r0, r0, #29
774e: 4301 orrs r1, r0
7750: 4648 mov r0, r9
7752: 7041 strb r1, [r0, #1]
FILL_NORMAL_MASK_PX(x + 3, color)
7754: 78d5 ldrb r5, [r2, #3]
7756: 2d00 cmp r5, #0
7758: d100 bne.n 775c <_lv_blend_fill+0x770>
775a: e709 b.n 7570 <_lv_blend_fill+0x584>
775c: 2dff cmp r5, #255 ; 0xff
775e: d054 beq.n 780a <_lv_blend_fill+0x81e>
7760: 1da1 adds r1, r4, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
7762: 20ff movs r0, #255 ; 0xff
7764: 1b40 subs r0, r0, r5
7766: 4684 mov ip, r0
7768: 9804 ldr r0, [sp, #16]
776a: 4368 muls r0, r5
776c: 4689 mov r9, r1
776e: 79e1 ldrb r1, [r4, #7]
7770: 08c9 lsrs r1, r1, #3
7772: 4666 mov r6, ip
7774: 4371 muls r1, r6
7776: 1840 adds r0, r0, r1
7778: 0201 lsls r1, r0, #8
777a: 1809 adds r1, r1, r0
777c: 01c9 lsls r1, r1, #7
777e: 1809 adds r1, r1, r0
7780: 0dc9 lsrs r1, r1, #23
7782: 4039 ands r1, r7
7784: 910c str r1, [sp, #48] ; 0x30
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
7786: 0028 movs r0, r5
7788: 9e06 ldr r6, [sp, #24]
778a: 4370 muls r0, r6
778c: 4682 mov sl, r0
778e: 88e0 ldrh r0, [r4, #6]
7790: 0540 lsls r0, r0, #21
7792: 0e80 lsrs r0, r0, #26
7794: 4666 mov r6, ip
7796: 4370 muls r0, r6
7798: 4482 add sl, r0
779a: 4650 mov r0, sl
779c: 0200 lsls r0, r0, #8
779e: 4450 add r0, sl
77a0: 01c0 lsls r0, r0, #7
77a2: 4450 add r0, sl
77a4: 00c0 lsls r0, r0, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
77a6: 465e mov r6, fp
77a8: 4375 muls r5, r6
77aa: 79a6 ldrb r6, [r4, #6]
77ac: 46b0 mov r8, r6
77ae: 06f6 lsls r6, r6, #27
77b0: 0ef6 lsrs r6, r6, #27
77b2: 46b2 mov sl, r6
77b4: 4666 mov r6, ip
77b6: 4651 mov r1, sl
77b8: 434e muls r6, r1
77ba: 46b4 mov ip, r6
77bc: 44ac add ip, r5
77be: 4661 mov r1, ip
77c0: 020d lsls r5, r1, #8
77c2: 4465 add r5, ip
77c4: 01ed lsls r5, r5, #7
77c6: 4465 add r5, ip
77c8: 0ded lsrs r5, r5, #23
77ca: 403d ands r5, r7
77cc: 4646 mov r6, r8
77ce: 43be bics r6, r7
77d0: 4335 orrs r5, r6
77d2: 71a5 strb r5, [r4, #6]
77d4: 0e80 lsrs r0, r0, #26
77d6: 0140 lsls r0, r0, #5
77d8: 88e5 ldrh r5, [r4, #6]
77da: 494a ldr r1, [pc, #296] ; (7904 <_lv_blend_fill+0x918>)
77dc: 400d ands r5, r1
77de: 4328 orrs r0, r5
77e0: 80e0 strh r0, [r4, #6]
77e2: 990c ldr r1, [sp, #48] ; 0x30
77e4: 00c9 lsls r1, r1, #3
77e6: 0540 lsls r0, r0, #21
77e8: 0f40 lsrs r0, r0, #29
77ea: 4301 orrs r1, r0
77ec: 4648 mov r0, r9
77ee: 7041 strb r1, [r0, #1]
77f0: e6be b.n 7570 <_lv_blend_fill+0x584>
FILL_NORMAL_MASK_PX(x, color)
77f2: 4669 mov r1, sp
77f4: 8c09 ldrh r1, [r1, #32]
77f6: 8021 strh r1, [r4, #0]
77f8: e710 b.n 761c <_lv_blend_fill+0x630>
FILL_NORMAL_MASK_PX(x + 1, color)
77fa: 4669 mov r1, sp
77fc: 8c09 ldrh r1, [r1, #32]
77fe: 8061 strh r1, [r4, #2]
7800: e75a b.n 76b8 <_lv_blend_fill+0x6cc>
FILL_NORMAL_MASK_PX(x + 2, color)
7802: 4669 mov r1, sp
7804: 8c09 ldrh r1, [r1, #32]
7806: 80a1 strh r1, [r4, #4]
7808: e7a4 b.n 7754 <_lv_blend_fill+0x768>
FILL_NORMAL_MASK_PX(x + 3, color)
780a: 4669 mov r1, sp
780c: 8c09 ldrh r1, [r1, #32]
780e: 80e1 strh r1, [r4, #6]
7810: e6ae b.n 7570 <_lv_blend_fill+0x584>
7812: 9906 ldr r1, [sp, #24]
7814: 468a mov sl, r1
for(; x < draw_area_w ; x++) {
7816: 990a ldr r1, [sp, #40] ; 0x28
7818: 4299 cmp r1, r3
781a: dd50 ble.n 78be <_lv_blend_fill+0x8d2>
781c: 005e lsls r6, r3, #1
781e: 9907 ldr r1, [sp, #28]
7820: 468c mov ip, r1
7822: 4466 add r6, ip
FILL_NORMAL_MASK_PX(x, color)
7824: 1ad2 subs r2, r2, r3
7826: 4690 mov r8, r2
7828: 9a0a ldr r2, [sp, #40] ; 0x28
782a: 4691 mov r9, r2
782c: e006 b.n 783c <_lv_blend_fill+0x850>
782e: 466a mov r2, sp
7830: 8c12 ldrh r2, [r2, #32]
7832: 8032 strh r2, [r6, #0]
for(; x < draw_area_w ; x++) {
7834: 3301 adds r3, #1
7836: 3602 adds r6, #2
7838: 4599 cmp r9, r3
783a: dd40 ble.n 78be <_lv_blend_fill+0x8d2>
FILL_NORMAL_MASK_PX(x, color)
783c: 4642 mov r2, r8
783e: 5cd0 ldrb r0, [r2, r3]
7840: 2800 cmp r0, #0
7842: d0f7 beq.n 7834 <_lv_blend_fill+0x848>
7844: 28ff cmp r0, #255 ; 0xff
7846: d0f2 beq.n 782e <_lv_blend_fill+0x842>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
7848: 22ff movs r2, #255 ; 0xff
784a: 1a14 subs r4, r2, r0
784c: 9a04 ldr r2, [sp, #16]
784e: 4342 muls r2, r0
7850: 7871 ldrb r1, [r6, #1]
7852: 08c9 lsrs r1, r1, #3
7854: 4361 muls r1, r4
7856: 1851 adds r1, r2, r1
7858: 020a lsls r2, r1, #8
785a: 1852 adds r2, r2, r1
785c: 01d2 lsls r2, r2, #7
785e: 1852 adds r2, r2, r1
7860: 0dd2 lsrs r2, r2, #23
7862: 271f movs r7, #31
7864: 403a ands r2, r7
7866: 9206 str r2, [sp, #24]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
7868: 4655 mov r5, sl
786a: 4345 muls r5, r0
786c: 8831 ldrh r1, [r6, #0]
786e: 0549 lsls r1, r1, #21
7870: 0e89 lsrs r1, r1, #26
7872: 4361 muls r1, r4
7874: 186d adds r5, r5, r1
7876: 0229 lsls r1, r5, #8
7878: 1949 adds r1, r1, r5
787a: 01c9 lsls r1, r1, #7
787c: 1949 adds r1, r1, r5
787e: 00c9 lsls r1, r1, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7880: 465d mov r5, fp
7882: 4368 muls r0, r5
7884: 7835 ldrb r5, [r6, #0]
7886: 06ea lsls r2, r5, #27
7888: 0ed2 lsrs r2, r2, #27
788a: 4354 muls r4, r2
788c: 1904 adds r4, r0, r4
788e: 0220 lsls r0, r4, #8
7890: 1900 adds r0, r0, r4
7892: 01c0 lsls r0, r0, #7
7894: 1900 adds r0, r0, r4
7896: 0dc0 lsrs r0, r0, #23
7898: 4007 ands r7, r0
789a: 201f movs r0, #31
789c: 4385 bics r5, r0
789e: 432f orrs r7, r5
78a0: 7037 strb r7, [r6, #0]
78a2: 0e89 lsrs r1, r1, #26
78a4: 0148 lsls r0, r1, #5
78a6: 8831 ldrh r1, [r6, #0]
78a8: 4c16 ldr r4, [pc, #88] ; (7904 <_lv_blend_fill+0x918>)
78aa: 4021 ands r1, r4
78ac: 4301 orrs r1, r0
78ae: 8031 strh r1, [r6, #0]
78b0: 9a06 ldr r2, [sp, #24]
78b2: 00d2 lsls r2, r2, #3
78b4: 0549 lsls r1, r1, #21
78b6: 0f49 lsrs r1, r1, #29
78b8: 430a orrs r2, r1
78ba: 7072 strb r2, [r6, #1]
78bc: e7ba b.n 7834 <_lv_blend_fill+0x848>
disp_buf_first += disp_w;
78be: 9b07 ldr r3, [sp, #28]
78c0: 9a0f ldr r2, [sp, #60] ; 0x3c
78c2: 4694 mov ip, r2
78c4: 4463 add r3, ip
78c6: 9307 str r3, [sp, #28]
78c8: 9b09 ldr r3, [sp, #36] ; 0x24
78ca: 9a0b ldr r2, [sp, #44] ; 0x2c
78cc: 4694 mov ip, r2
78ce: 4463 add r3, ip
78d0: 9309 str r3, [sp, #36] ; 0x24
for(y = 0; y < draw_area_h; y++) {
78d2: 9b0d ldr r3, [sp, #52] ; 0x34
78d4: 3301 adds r3, #1
78d6: 930d str r3, [sp, #52] ; 0x34
78d8: 9a0e ldr r2, [sp, #56] ; 0x38
78da: 429a cmp r2, r3
78dc: dc01 bgt.n 78e2 <_lv_blend_fill+0x8f6>
78de: f7ff fb9d bl 701c <_lv_blend_fill+0x30>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
78e2: 9a0a ldr r2, [sp, #40] ; 0x28
78e4: 2a00 cmp r2, #0
78e6: dc00 bgt.n 78ea <_lv_blend_fill+0x8fe>
78e8: e1ee b.n 7cc8 <_lv_blend_fill+0xcdc>
78ea: 9b09 ldr r3, [sp, #36] ; 0x24
78ec: 0799 lsls r1, r3, #30
78ee: d100 bne.n 78f2 <_lv_blend_fill+0x906>
78f0: e1ed b.n 7cce <_lv_blend_fill+0xce2>
78f2: 9e07 ldr r6, [sp, #28]
78f4: 4698 mov r8, r3
78f6: 2300 movs r3, #0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
78f8: 211f movs r1, #31
78fa: 4689 mov r9, r1
78fc: 4644 mov r4, r8
78fe: 4690 mov r8, r2
7900: e5e7 b.n 74d2 <_lv_blend_fill+0x4e6>
7902: 46c0 nop ; (mov r8, r8)
7904: fffff81f .word 0xfffff81f
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
7908: 9e0d ldr r6, [sp, #52] ; 0x34
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
790a: 2aff cmp r2, #255 ; 0xff
790c: d065 beq.n 79da <_lv_blend_fill+0x9ee>
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
790e: 2eff cmp r6, #255 ; 0xff
7910: d067 beq.n 79e2 <_lv_blend_fill+0x9f6>
7912: 23ff movs r3, #255 ; 0xff
7914: 1b9b subs r3, r3, r6
7916: 784a ldrb r2, [r1, #1]
7918: 08d2 lsrs r2, r2, #3
791a: 4699 mov r9, r3
791c: 435a muls r2, r3
791e: 9b05 ldr r3, [sp, #20]
7920: 4373 muls r3, r6
7922: 18d2 adds r2, r2, r3
7924: 0213 lsls r3, r2, #8
7926: 189b adds r3, r3, r2
7928: 01db lsls r3, r3, #7
792a: 189b adds r3, r3, r2
792c: 0ddb lsrs r3, r3, #23
792e: 221f movs r2, #31
7930: 401a ands r2, r3
7932: 9204 str r2, [sp, #16]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
7934: 880a ldrh r2, [r1, #0]
7936: 0552 lsls r2, r2, #21
7938: 0e92 lsrs r2, r2, #26
793a: 464b mov r3, r9
793c: 435a muls r2, r3
793e: 9b08 ldr r3, [sp, #32]
7940: 4373 muls r3, r6
7942: 469a mov sl, r3
7944: 4452 add r2, sl
7946: 0213 lsls r3, r2, #8
7948: 469a mov sl, r3
794a: 4492 add sl, r2
794c: 4653 mov r3, sl
794e: 01db lsls r3, r3, #7
7950: 469a mov sl, r3
7952: 4452 add r2, sl
7954: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7956: 780b ldrb r3, [r1, #0]
7958: 06db lsls r3, r3, #27
795a: 0edb lsrs r3, r3, #27
795c: 469a mov sl, r3
795e: 464b mov r3, r9
7960: 4654 mov r4, sl
7962: 4363 muls r3, r4
7964: 469a mov sl, r3
7966: 4663 mov r3, ip
7968: 4373 muls r3, r6
796a: 4699 mov r9, r3
796c: 44ca add sl, r9
796e: 4653 mov r3, sl
7970: 021b lsls r3, r3, #8
7972: 4699 mov r9, r3
7974: 44d1 add r9, sl
7976: 464b mov r3, r9
7978: 01db lsls r3, r3, #7
797a: 4699 mov r9, r3
797c: 44d1 add r9, sl
797e: 464b mov r3, r9
7980: 0ddb lsrs r3, r3, #23
7982: 241f movs r4, #31
7984: 4023 ands r3, r4
7986: 4699 mov r9, r3
7988: 9b09 ldr r3, [sp, #36] ; 0x24
798a: 43a3 bics r3, r4
798c: 469a mov sl, r3
798e: 464b mov r3, r9
7990: 4654 mov r4, sl
7992: 4323 orrs r3, r4
7994: 4699 mov r9, r3
7996: 233f movs r3, #63 ; 0x3f
7998: 401a ands r2, r3
799a: 0152 lsls r2, r2, #5
799c: 464b mov r3, r9
799e: 4644 mov r4, r8
79a0: 4023 ands r3, r4
79a2: 431a orrs r2, r3
79a4: 9b04 ldr r3, [sp, #16]
79a6: 02db lsls r3, r3, #11
79a8: 0552 lsls r2, r2, #21
79aa: 0d52 lsrs r2, r2, #21
79ac: 4313 orrs r3, r2
79ae: 466a mov r2, sp
79b0: 8493 strh r3, [r2, #36] ; 0x24
79b2: b29b uxth r3, r3
last_dest_color.full = disp_buf_first[x].full;
79b4: 880a ldrh r2, [r1, #0]
79b6: 4691 mov r9, r2
disp_buf_first[x] = last_res_color;
79b8: 800b strh r3, [r1, #0]
79ba: 002a movs r2, r5
mask_tmp_x++;
79bc: 3001 adds r0, #1
79be: 3102 adds r1, #2
for(x = 0; x < draw_area_w; x++) {
79c0: 42b8 cmp r0, r7
79c2: d010 beq.n 79e6 <_lv_blend_fill+0x9fa>
if(*mask_tmp_x) {
79c4: 7805 ldrb r5, [r0, #0]
79c6: 2d00 cmp r5, #0
79c8: d0f8 beq.n 79bc <_lv_blend_fill+0x9d0>
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
79ca: 4295 cmp r5, r2
79cc: d005 beq.n 79da <_lv_blend_fill+0x9ee>
79ce: 2dff cmp r5, #255 ; 0xff
79d0: d09a beq.n 7908 <_lv_blend_fill+0x91c>
(uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8;
79d2: 465e mov r6, fp
79d4: 436e muls r6, r5
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
79d6: 0a36 lsrs r6, r6, #8
79d8: e799 b.n 790e <_lv_blend_fill+0x922>
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
79da: 880a ldrh r2, [r1, #0]
79dc: 454a cmp r2, r9
79de: d196 bne.n 790e <_lv_blend_fill+0x922>
79e0: e7ea b.n 79b8 <_lv_blend_fill+0x9cc>
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
79e2: 9b0e ldr r3, [sp, #56] ; 0x38
79e4: e7e6 b.n 79b4 <_lv_blend_fill+0x9c8>
disp_buf_first += disp_w;
79e6: 9907 ldr r1, [sp, #28]
79e8: 980f ldr r0, [sp, #60] ; 0x3c
79ea: 4680 mov r8, r0
79ec: 4441 add r1, r8
79ee: 9107 str r1, [sp, #28]
79f0: 9906 ldr r1, [sp, #24]
79f2: 980b ldr r0, [sp, #44] ; 0x2c
79f4: 4680 mov r8, r0
79f6: 4441 add r1, r8
79f8: 9106 str r1, [sp, #24]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
79fa: 990c ldr r1, [sp, #48] ; 0x30
79fc: 3101 adds r1, #1
79fe: 0008 movs r0, r1
7a00: 910c str r1, [sp, #48] ; 0x30
7a02: a910 add r1, sp, #64 ; 0x40
7a04: 2406 movs r4, #6
7a06: 5f09 ldrsh r1, [r1, r4]
7a08: 4288 cmp r0, r1
7a0a: dd01 ble.n 7a10 <_lv_blend_fill+0xa24>
7a0c: f7ff fb06 bl 701c <_lv_blend_fill+0x30>
for(x = 0; x < draw_area_w; x++) {
7a10: 990a ldr r1, [sp, #40] ; 0x28
7a12: 2900 cmp r1, #0
7a14: dde7 ble.n 79e6 <_lv_blend_fill+0x9fa>
7a16: 9907 ldr r1, [sp, #28]
7a18: 9806 ldr r0, [sp, #24]
7a1a: 0004 movs r4, r0
7a1c: 9d0b ldr r5, [sp, #44] ; 0x2c
7a1e: 46a8 mov r8, r5
7a20: 4444 add r4, r8
7a22: 0027 movs r7, r4
7a24: 4cab ldr r4, [pc, #684] ; (7cd4 <_lv_blend_fill+0xce8>)
7a26: 46a0 mov r8, r4
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
7a28: 465c mov r4, fp
7a2a: 940d str r4, [sp, #52] ; 0x34
7a2c: e7ca b.n 79c4 <_lv_blend_fill+0x9d8>
7a2e: 466b mov r3, sp
7a30: 8a9c ldrh r4, [r3, #20]
switch(mode) {
7a32: 2e01 cmp r6, #1
7a34: d04e beq.n 7ad4 <_lv_blend_fill+0xae8>
7a36: 2e02 cmp r6, #2
7a38: d141 bne.n 7abe <_lv_blend_fill+0xad2>
blend_fp = color_blend_true_color_subtractive;
7a3a: 4ba7 ldr r3, [pc, #668] ; (7cd8 <_lv_blend_fill+0xcec>)
7a3c: 9309 str r3, [sp, #36] ; 0x24
7a3e: 466b mov r3, sp
7a40: 8a9a ldrh r2, [r3, #20]
7a42: 06d3 lsls r3, r2, #27
7a44: 0edb lsrs r3, r3, #27
7a46: 930e str r3, [sp, #56] ; 0x38
7a48: 0553 lsls r3, r2, #21
7a4a: 0e9b lsrs r3, r3, #26
7a4c: 930c str r3, [sp, #48] ; 0x30
7a4e: 0416 lsls r6, r2, #16
7a50: 0ef3 lsrs r3, r6, #27
7a52: 930d str r3, [sp, #52] ; 0x34
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
7a54: 4643 mov r3, r8
7a56: 8a9b ldrh r3, [r3, #20]
7a58: 3301 adds r3, #1
7a5a: 4642 mov r2, r8
7a5c: 8a12 ldrh r2, [r2, #16]
7a5e: 1a9b subs r3, r3, r2
7a60: b219 sxth r1, r3
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
7a62: 9508 str r5, [sp, #32]
7a64: 434d muls r5, r1
7a66: 006d lsls r5, r5, #1
7a68: 9b04 ldr r3, [sp, #16]
7a6a: 469c mov ip, r3
7a6c: 44ac add ip, r5
7a6e: 4663 mov r3, ip
7a70: 9307 str r3, [sp, #28]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
7a72: 2f01 cmp r7, #1
7a74: d031 beq.n 7ada <_lv_blend_fill+0xaee>
7a76: 3001 adds r0, #1
7a78: 9b0b ldr r3, [sp, #44] ; 0x2c
7a7a: 1ac0 subs r0, r0, r3
7a7c: b203 sxth r3, r0
7a7e: 4698 mov r8, r3
const lv_opa_t * mask_tmp = mask - draw_area->x1;
7a80: 9b06 ldr r3, [sp, #24]
7a82: 9a0a ldr r2, [sp, #40] ; 0x28
7a84: 1a9e subs r6, r3, r2
last_dest_color.full = disp_buf_tmp[0].full;
7a86: 9b07 ldr r3, [sp, #28]
7a88: 881a ldrh r2, [r3, #0]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7a8a: 9b08 ldr r3, [sp, #32]
7a8c: 454b cmp r3, r9
7a8e: dd01 ble.n 7a94 <_lv_blend_fill+0xaa8>
7a90: f7ff fac4 bl 701c <_lv_blend_fill+0x30>
disp_buf_tmp += disp_w;
7a94: 004b lsls r3, r1, #1
7a96: 930a str r3, [sp, #40] ; 0x28
7a98: 0010 movs r0, r2
7a9a: 2100 movs r1, #0
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
7a9c: 9b0c ldr r3, [sp, #48] ; 0x30
7a9e: 015b lsls r3, r3, #5
7aa0: 469a mov sl, r3
7aa2: 4643 mov r3, r8
7aa4: 930b str r3, [sp, #44] ; 0x2c
7aa6: 9b09 ldr r3, [sp, #36] ; 0x24
7aa8: 4698 mov r8, r3
7aaa: 9b0d ldr r3, [sp, #52] ; 0x34
7aac: 4699 mov r9, r3
7aae: 466b mov r3, sp
7ab0: 821c strh r4, [r3, #16]
7ab2: 0034 movs r4, r6
7ab4: 465b mov r3, fp
7ab6: 9306 str r3, [sp, #24]
7ab8: 9b0e ldr r3, [sp, #56] ; 0x38
7aba: 469b mov fp, r3
7abc: e0e9 b.n 7c92 <_lv_blend_fill+0xca6>
LV_LOG_WARN("fill_blended: unsupported blend mode");
7abe: 4b87 ldr r3, [pc, #540] ; (7cdc <_lv_blend_fill+0xcf0>)
7ac0: 9300 str r3, [sp, #0]
7ac2: 4b87 ldr r3, [pc, #540] ; (7ce0 <_lv_blend_fill+0xcf4>)
7ac4: 2284 movs r2, #132 ; 0x84
7ac6: 0092 lsls r2, r2, #2
7ac8: 4986 ldr r1, [pc, #536] ; (7ce4 <_lv_blend_fill+0xcf8>)
7aca: 2002 movs r0, #2
7acc: 4c86 ldr r4, [pc, #536] ; (7ce8 <_lv_blend_fill+0xcfc>)
7ace: 47a0 blx r4
7ad0: f7ff faa4 bl 701c <_lv_blend_fill+0x30>
blend_fp = color_blend_true_color_additive;
7ad4: 4b85 ldr r3, [pc, #532] ; (7cec <_lv_blend_fill+0xd00>)
7ad6: 9309 str r3, [sp, #36] ; 0x24
7ad8: e7b1 b.n 7a3e <_lv_blend_fill+0xa52>
lv_color_t last_dest_color = LV_COLOR_BLACK;
7ada: 2300 movs r3, #0
7adc: 466a mov r2, sp
7ade: 8293 strh r3, [r2, #20]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
7ae0: 465b mov r3, fp
7ae2: 9f0d ldr r7, [sp, #52] ; 0x34
7ae4: 437b muls r3, r7
7ae6: 0218 lsls r0, r3, #8
7ae8: 18c0 adds r0, r0, r3
7aea: 01c0 lsls r0, r0, #7
7aec: 18c0 adds r0, r0, r3
7aee: 0dc0 lsrs r0, r0, #23
7af0: 251f movs r5, #31
7af2: 4028 ands r0, r5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
7af4: 465a mov r2, fp
7af6: 9b0c ldr r3, [sp, #48] ; 0x30
7af8: 435a muls r2, r3
7afa: 0213 lsls r3, r2, #8
7afc: 189b adds r3, r3, r2
7afe: 01db lsls r3, r3, #7
7b00: 189b adds r3, r3, r2
7b02: 00db lsls r3, r3, #3
7b04: 0e9a lsrs r2, r3, #26
7b06: 4692 mov sl, r2
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
7b08: 465a mov r2, fp
7b0a: 9e0e ldr r6, [sp, #56] ; 0x38
7b0c: 4372 muls r2, r6
7b0e: 0213 lsls r3, r2, #8
7b10: 189b adds r3, r3, r2
7b12: 01db lsls r3, r3, #7
7b14: 189b adds r3, r3, r2
7b16: 0ddb lsrs r3, r3, #23
7b18: 401d ands r5, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7b1a: 9a08 ldr r2, [sp, #32]
7b1c: 454a cmp r2, r9
7b1e: dd01 ble.n 7b24 <_lv_blend_fill+0xb38>
7b20: f7ff fa7c bl 701c <_lv_blend_fill+0x30>
disp_buf_tmp += disp_w;
7b24: 004a lsls r2, r1, #1
7b26: 4691 mov r9, r2
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
7b28: 0033 movs r3, r6
7b2a: 221f movs r2, #31
7b2c: 4013 ands r3, r2
7b2e: 4698 mov r8, r3
7b30: 464a mov r2, r9
7b32: 920b str r2, [sp, #44] ; 0x2c
7b34: 46b9 mov r9, r7
7b36: 466b mov r3, sp
7b38: 831c strh r4, [r3, #24]
7b3a: 002c movs r4, r5
7b3c: 465a mov r2, fp
7b3e: 920a str r2, [sp, #40] ; 0x28
7b40: 9b0c ldr r3, [sp, #48] ; 0x30
7b42: 469b mov fp, r3
7b44: e050 b.n 7be8 <_lv_blend_fill+0xbfc>
disp_buf_tmp[x] = last_res_color;
7b46: 782b ldrb r3, [r5, #0]
7b48: 221f movs r2, #31
7b4a: 4393 bics r3, r2
7b4c: 9a04 ldr r2, [sp, #16]
7b4e: 4313 orrs r3, r2
7b50: 702b strb r3, [r5, #0]
7b52: 017a lsls r2, r7, #5
7b54: 882b ldrh r3, [r5, #0]
7b56: 469c mov ip, r3
7b58: 4b5e ldr r3, [pc, #376] ; (7cd4 <_lv_blend_fill+0xce8>)
7b5a: 4661 mov r1, ip
7b5c: 400b ands r3, r1
7b5e: 4313 orrs r3, r2
7b60: 802b strh r3, [r5, #0]
7b62: 00c2 lsls r2, r0, #3
7b64: 055b lsls r3, r3, #21
7b66: 0f5b lsrs r3, r3, #29
7b68: 4313 orrs r3, r2
7b6a: 706b strb r3, [r5, #1]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7b6c: 3401 adds r4, #1
7b6e: 3602 adds r6, #2
7b70: ab10 add r3, sp, #64 ; 0x40
7b72: 2204 movs r2, #4
7b74: 5e9b ldrsh r3, [r3, r2]
7b76: 429c cmp r4, r3
7b78: dc24 bgt.n 7bc4 <_lv_blend_fill+0xbd8>
if(last_dest_color.full != disp_buf_tmp[x].full) {
7b7a: 0035 movs r5, r6
7b7c: 466b mov r3, sp
7b7e: 8a9b ldrh r3, [r3, #20]
7b80: 8832 ldrh r2, [r6, #0]
7b82: 4293 cmp r3, r2
7b84: d0df beq.n 7b46 <_lv_blend_fill+0xb5a>
last_dest_color = disp_buf_tmp[x];
7b86: 0011 movs r1, r2
7b88: 466b mov r3, sp
7b8a: 829a strh r2, [r3, #20]
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
7b8c: 9806 ldr r0, [sp, #24]
7b8e: 231f movs r3, #31
7b90: 4398 bics r0, r3
7b92: 4643 mov r3, r8
7b94: 4318 orrs r0, r3
7b96: 465b mov r3, fp
7b98: 015b lsls r3, r3, #5
7b9a: 4f4e ldr r7, [pc, #312] ; (7cd4 <_lv_blend_fill+0xce8>)
7b9c: 4038 ands r0, r7
7b9e: 4318 orrs r0, r3
7ba0: 464b mov r3, r9
7ba2: 02db lsls r3, r3, #11
7ba4: 0540 lsls r0, r0, #21
7ba6: 0d40 lsrs r0, r0, #21
7ba8: 4318 orrs r0, r3
7baa: 466b mov r3, sp
7bac: 8318 strh r0, [r3, #24]
7bae: 9a0a ldr r2, [sp, #40] ; 0x28
7bb0: 9b09 ldr r3, [sp, #36] ; 0x24
7bb2: 4798 blx r3
7bb4: 06c1 lsls r1, r0, #27
7bb6: 0ecb lsrs r3, r1, #27
7bb8: 9304 str r3, [sp, #16]
7bba: 0547 lsls r7, r0, #21
7bbc: 0ebf lsrs r7, r7, #26
7bbe: 0400 lsls r0, r0, #16
7bc0: 0ec0 lsrs r0, r0, #27
7bc2: e7c0 b.n 7b46 <_lv_blend_fill+0xb5a>
7bc4: 9c04 ldr r4, [sp, #16]
7bc6: 46ba mov sl, r7
disp_buf_tmp += disp_w;
7bc8: 9b07 ldr r3, [sp, #28]
7bca: 9a0b ldr r2, [sp, #44] ; 0x2c
7bcc: 4694 mov ip, r2
7bce: 4463 add r3, ip
7bd0: 9307 str r3, [sp, #28]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7bd2: 9b08 ldr r3, [sp, #32]
7bd4: 3301 adds r3, #1
7bd6: 001a movs r2, r3
7bd8: 9308 str r3, [sp, #32]
7bda: ab10 add r3, sp, #64 ; 0x40
7bdc: 2106 movs r1, #6
7bde: 5e5b ldrsh r3, [r3, r1]
7be0: 429a cmp r2, r3
7be2: dd01 ble.n 7be8 <_lv_blend_fill+0xbfc>
7be4: f7ff fa1a bl 701c <_lv_blend_fill+0x30>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7be8: ab10 add r3, sp, #64 ; 0x40
7bea: 2200 movs r2, #0
7bec: 5e9e ldrsh r6, [r3, r2]
7bee: 0037 movs r7, r6
7bf0: 2204 movs r2, #4
7bf2: 5e9b ldrsh r3, [r3, r2]
7bf4: 429e cmp r6, r3
7bf6: dce7 bgt.n 7bc8 <_lv_blend_fill+0xbdc>
7bf8: 0076 lsls r6, r6, #1
7bfa: 9b07 ldr r3, [sp, #28]
7bfc: 469c mov ip, r3
7bfe: 4466 add r6, ip
7c00: 9404 str r4, [sp, #16]
7c02: 003c movs r4, r7
7c04: 4657 mov r7, sl
7c06: e7b8 b.n 7b7a <_lv_blend_fill+0xb8e>
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
7c08: 883a ldrh r2, [r7, #0]
7c0a: 4694 mov ip, r2
7c0c: 9a05 ldr r2, [sp, #20]
7c0e: 4594 cmp ip, r2
7c10: d124 bne.n 7c5c <_lv_blend_fill+0xc70>
7c12: e015 b.n 7c40 <_lv_blend_fill+0xc54>
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
7c14: 231f movs r3, #31
7c16: 9804 ldr r0, [sp, #16]
7c18: 4398 bics r0, r3
7c1a: 465b mov r3, fp
7c1c: 4318 orrs r0, r3
7c1e: 4b2d ldr r3, [pc, #180] ; (7cd4 <_lv_blend_fill+0xce8>)
7c20: 4018 ands r0, r3
7c22: 4653 mov r3, sl
7c24: 4318 orrs r0, r3
7c26: 464b mov r3, r9
7c28: 02db lsls r3, r3, #11
7c2a: 0540 lsls r0, r0, #21
7c2c: 0d40 lsrs r0, r0, #21
7c2e: 4318 orrs r0, r3
7c30: 466b mov r3, sp
7c32: 8218 strh r0, [r3, #16]
7c34: 8839 ldrh r1, [r7, #0]
7c36: 47c0 blx r8
7c38: b280 uxth r0, r0
last_mask = mask_tmp[x];
7c3a: 5da1 ldrb r1, [r4, r6]
last_dest_color.full = disp_buf_tmp[x].full;
7c3c: 883b ldrh r3, [r7, #0]
7c3e: 9305 str r3, [sp, #20]
disp_buf_tmp[x] = last_res_color;
7c40: 8038 strh r0, [r7, #0]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7c42: 3501 adds r5, #1
7c44: 3702 adds r7, #2
7c46: ab10 add r3, sp, #64 ; 0x40
7c48: 2604 movs r6, #4
7c4a: 5f9b ldrsh r3, [r3, r6]
7c4c: 429d cmp r5, r3
7c4e: dc0c bgt.n 7c6a <_lv_blend_fill+0xc7e>
7c50: 002e movs r6, r5
if(mask_tmp[x] == 0) continue;
7c52: 5d63 ldrb r3, [r4, r5]
7c54: 2b00 cmp r3, #0
7c56: d0f4 beq.n 7c42 <_lv_blend_fill+0xc56>
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
7c58: 428b cmp r3, r1
7c5a: d0d5 beq.n 7c08 <_lv_blend_fill+0xc1c>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
7c5c: 9906 ldr r1, [sp, #24]
7c5e: 000a movs r2, r1
7c60: 2bf9 cmp r3, #249 ; 0xf9
7c62: d8d7 bhi.n 7c14 <_lv_blend_fill+0xc28>
7c64: 435a muls r2, r3
7c66: 0a12 lsrs r2, r2, #8
7c68: e7d4 b.n 7c14 <_lv_blend_fill+0xc28>
7c6a: 9a05 ldr r2, [sp, #20]
disp_buf_tmp += disp_w;
7c6c: 9b07 ldr r3, [sp, #28]
7c6e: 9d0a ldr r5, [sp, #40] ; 0x28
7c70: 46ac mov ip, r5
7c72: 4463 add r3, ip
7c74: 9307 str r3, [sp, #28]
7c76: 9b0b ldr r3, [sp, #44] ; 0x2c
7c78: 469c mov ip, r3
7c7a: 4464 add r4, ip
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7c7c: 9b08 ldr r3, [sp, #32]
7c7e: 3301 adds r3, #1
7c80: 001d movs r5, r3
7c82: 9308 str r3, [sp, #32]
7c84: ab10 add r3, sp, #64 ; 0x40
7c86: 2606 movs r6, #6
7c88: 5f9b ldrsh r3, [r3, r6]
7c8a: 429d cmp r5, r3
7c8c: dd01 ble.n 7c92 <_lv_blend_fill+0xca6>
7c8e: f7ff f9c5 bl 701c <_lv_blend_fill+0x30>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7c92: ab10 add r3, sp, #64 ; 0x40
7c94: 2500 movs r5, #0
7c96: 5f5f ldrsh r7, [r3, r5]
7c98: 003d movs r5, r7
7c9a: 2604 movs r6, #4
7c9c: 5f9b ldrsh r3, [r3, r6]
7c9e: 429f cmp r7, r3
7ca0: dce4 bgt.n 7c6c <_lv_blend_fill+0xc80>
7ca2: 007f lsls r7, r7, #1
7ca4: 9b07 ldr r3, [sp, #28]
7ca6: 469c mov ip, r3
7ca8: 4467 add r7, ip
7caa: 9205 str r2, [sp, #20]
7cac: e7d0 b.n 7c50 <_lv_blend_fill+0xc64>
FILL_NORMAL_MASK_PX(x, color)
7cae: 0022 movs r2, r4
for(; x <= x_end4; x += 4) {
7cb0: 9905 ldr r1, [sp, #20]
7cb2: 4299 cmp r1, r3
7cb4: da00 bge.n 7cb8 <_lv_blend_fill+0xccc>
7cb6: e602 b.n 78be <_lv_blend_fill+0x8d2>
7cb8: 005c lsls r4, r3, #1
7cba: 9907 ldr r1, [sp, #28]
7cbc: 468c mov ip, r1
7cbe: 4464 add r4, ip
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
7cc0: 271f movs r7, #31
7cc2: 4651 mov r1, sl
7cc4: 9106 str r1, [sp, #24]
7cc6: e45a b.n 757e <_lv_blend_fill+0x592>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
7cc8: 9a09 ldr r2, [sp, #36] ; 0x24
7cca: 2300 movs r3, #0
7ccc: e7f0 b.n 7cb0 <_lv_blend_fill+0xcc4>
7cce: 9a09 ldr r2, [sp, #36] ; 0x24
7cd0: 2300 movs r3, #0
7cd2: e43f b.n 7554 <_lv_blend_fill+0x568>
7cd4: fffff81f .word 0xfffff81f
7cd8: 00006f37 .word 0x00006f37
7cdc: 0002604c .word 0x0002604c
7ce0: 00025ff8 .word 0x00025ff8
7ce4: 00026014 .word 0x00026014
7ce8: 00012159 .word 0x00012159
7cec: 00006e91 .word 0x00006e91
00007cf0 <_lv_blend_map>:
{
7cf0: b5f0 push {r4, r5, r6, r7, lr}
7cf2: 46de mov lr, fp
7cf4: 4657 mov r7, sl
7cf6: 464e mov r6, r9
7cf8: 4645 mov r5, r8
7cfa: b5e0 push {r5, r6, r7, lr}
7cfc: b093 sub sp, #76 ; 0x4c
7cfe: 000c movs r4, r1
7d00: 9207 str r2, [sp, #28]
7d02: 001d movs r5, r3
7d04: ab1c add r3, sp, #112 ; 0x70
7d06: 781f ldrb r7, [r3, #0]
7d08: ab1d add r3, sp, #116 ; 0x74
7d0a: 781b ldrb r3, [r3, #0]
7d0c: 469b mov fp, r3
7d0e: ab1e add r3, sp, #120 ; 0x78
7d10: 781e ldrb r6, [r3, #0]
if(opa < LV_OPA_MIN) return;
7d12: 465b mov r3, fp
7d14: 2b04 cmp r3, #4
7d16: d901 bls.n 7d1c <_lv_blend_map+0x2c>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
7d18: 2f00 cmp r7, #0
7d1a: d106 bne.n 7d2a <_lv_blend_map+0x3a>
}
7d1c: b013 add sp, #76 ; 0x4c
7d1e: bc3c pop {r2, r3, r4, r5}
7d20: 4690 mov r8, r2
7d22: 4699 mov r9, r3
7d24: 46a2 mov sl, r4
7d26: 46ab mov fp, r5
7d28: bdf0 pop {r4, r5, r6, r7, pc}
is_common = _lv_area_intersect(&draw_area, clip_area, map_area);
7d2a: 000a movs r2, r1
7d2c: 0001 movs r1, r0
7d2e: a810 add r0, sp, #64 ; 0x40
7d30: 4bd7 ldr r3, [pc, #860] ; (8090 <_lv_blend_map+0x3a0>)
7d32: 4798 blx r3
if(!is_common) return;
7d34: 2800 cmp r0, #0
7d36: d0f1 beq.n 7d1c <_lv_blend_map+0x2c>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
7d38: 4bd6 ldr r3, [pc, #856] ; (8094 <_lv_blend_map+0x3a4>)
7d3a: 4798 blx r3
7d3c: 4680 mov r8, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
7d3e: 4bd6 ldr r3, [pc, #856] ; (8098 <_lv_blend_map+0x3a8>)
7d40: 4798 blx r3
7d42: 4681 mov r9, r0
lv_color_t * disp_buf = vdb->buf_act;
7d44: 6883 ldr r3, [r0, #8]
7d46: 9305 str r3, [sp, #20]
draw_area.x1 -= disp_area->x1;
7d48: 8a02 ldrh r2, [r0, #16]
7d4a: ab10 add r3, sp, #64 ; 0x40
7d4c: 8819 ldrh r1, [r3, #0]
7d4e: 1a89 subs r1, r1, r2
7d50: b289 uxth r1, r1
7d52: 9109 str r1, [sp, #36] ; 0x24
7d54: 468c mov ip, r1
7d56: b208 sxth r0, r1
7d58: 4682 mov sl, r0
7d5a: 8018 strh r0, [r3, #0]
draw_area.y1 -= disp_area->y1;
7d5c: 4648 mov r0, r9
7d5e: 8a41 ldrh r1, [r0, #18]
7d60: 8858 ldrh r0, [r3, #2]
7d62: 1a40 subs r0, r0, r1
7d64: b280 uxth r0, r0
7d66: 900a str r0, [sp, #40] ; 0x28
7d68: b200 sxth r0, r0
7d6a: 9008 str r0, [sp, #32]
7d6c: 8058 strh r0, [r3, #2]
draw_area.x2 -= disp_area->x1;
7d6e: 8898 ldrh r0, [r3, #4]
7d70: 1a80 subs r0, r0, r2
7d72: b280 uxth r0, r0
7d74: 8098 strh r0, [r3, #4]
draw_area.y2 -= disp_area->y1;
7d76: 88da ldrh r2, [r3, #6]
7d78: 1a52 subs r2, r2, r1
7d7a: b292 uxth r2, r2
7d7c: 920b str r2, [sp, #44] ; 0x2c
7d7e: b212 sxth r2, r2
7d80: 920c str r2, [sp, #48] ; 0x30
7d82: 80da strh r2, [r3, #6]
if(mask && disp->driver.antialiasing == 0)
7d84: 2d00 cmp r5, #0
7d86: d014 beq.n 7db2 <_lv_blend_map+0xc2>
7d88: 4643 mov r3, r8
7d8a: 7a1b ldrb r3, [r3, #8]
7d8c: 07db lsls r3, r3, #31
7d8e: d410 bmi.n 7db2 <_lv_blend_map+0xc2>
7d90: 1c41 adds r1, r0, #1
7d92: 4663 mov r3, ip
7d94: 1ac9 subs r1, r1, r3
7d96: b209 sxth r1, r1
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
7d98: 2900 cmp r1, #0
7d9a: dd0a ble.n 7db2 <_lv_blend_map+0xc2>
7d9c: 002b movs r3, r5
7d9e: 1869 adds r1, r5, r1
7da0: 2280 movs r2, #128 ; 0x80
7da2: 4694 mov ip, r2
7da4: 781a ldrb r2, [r3, #0]
7da6: 4594 cmp ip, r2
7da8: 4192 sbcs r2, r2
7daa: 701a strb r2, [r3, #0]
7dac: 3301 adds r3, #1
7dae: 428b cmp r3, r1
7db0: d1f8 bne.n 7da4 <_lv_blend_map+0xb4>
if(disp->driver.set_px_cb) {
7db2: 4643 mov r3, r8
7db4: 695b ldr r3, [r3, #20]
7db6: 2b00 cmp r3, #0
7db8: d100 bne.n 7dbc <_lv_blend_map+0xcc>
7dba: e0c3 b.n 7f44 <_lv_blend_map+0x254>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
7dbc: 4bb5 ldr r3, [pc, #724] ; (8094 <_lv_blend_map+0x3a4>)
7dbe: 4798 blx r3
7dc0: 900c str r0, [sp, #48] ; 0x30
7dc2: 464b mov r3, r9
7dc4: 2210 movs r2, #16
7dc6: 5e9b ldrsh r3, [r3, r2]
7dc8: 4698 mov r8, r3
7dca: 464b mov r3, r9
7dcc: 8a9b ldrh r3, [r3, #20]
7dce: 3301 adds r3, #1
7dd0: 4642 mov r2, r8
7dd2: 1a9b subs r3, r3, r2
7dd4: b21b sxth r3, r3
7dd6: 9306 str r3, [sp, #24]
7dd8: a910 add r1, sp, #64 ; 0x40
7dda: 2300 movs r3, #0
7ddc: 5ec8 ldrsh r0, [r1, r3]
7dde: 2300 movs r3, #0
7de0: 5ee2 ldrsh r2, [r4, r3]
7de2: 88a3 ldrh r3, [r4, #4]
7de4: 3301 adds r3, #1
7de6: 1a9b subs r3, r3, r2
7de8: b21b sxth r3, r3
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
7dea: 2602 movs r6, #2
7dec: 5f89 ldrsh r1, [r1, r6]
7dee: 9109 str r1, [sp, #36] ; 0x24
7df0: 2602 movs r6, #2
7df2: 5fa4 ldrsh r4, [r4, r6]
7df4: 46a4 mov ip, r4
7df6: 464e mov r6, r9
7df8: 2412 movs r4, #18
7dfa: 5f36 ldrsh r6, [r6, r4]
7dfc: 4664 mov r4, ip
7dfe: 1ba4 subs r4, r4, r6
7e00: 1b0c subs r4, r1, r4
7e02: 435c muls r4, r3
map_buf_tmp += (draw_area->x1 - (map_area->x1 - disp_area->x1));
7e04: 4646 mov r6, r8
7e06: 1b92 subs r2, r2, r6
map_buf_tmp -= draw_area->x1;
7e08: 1aa4 subs r4, r4, r2
7e0a: 0064 lsls r4, r4, #1
7e0c: 9a07 ldr r2, [sp, #28]
7e0e: 4694 mov ip, r2
7e10: 44a4 add ip, r4
7e12: 4662 mov r2, ip
7e14: 9208 str r2, [sp, #32]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
7e16: 2f01 cmp r7, #1
7e18: d053 beq.n 7ec2 <_lv_blend_map+0x1d2>
const lv_opa_t * mask_tmp = mask - draw_area->x1;
7e1a: 1a2a subs r2, r5, r0
7e1c: 4690 mov r8, r2
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7e1e: aa10 add r2, sp, #64 ; 0x40
7e20: 2406 movs r4, #6
7e22: 5f12 ldrsh r2, [r2, r4]
7e24: 9c09 ldr r4, [sp, #36] ; 0x24
7e26: 4294 cmp r4, r2
7e28: dd00 ble.n 7e2c <_lv_blend_map+0x13c>
7e2a: e777 b.n 7d1c <_lv_blend_map+0x2c>
7e2c: aa10 add r2, sp, #64 ; 0x40
7e2e: 2404 movs r4, #4
7e30: 5f12 ldrsh r2, [r2, r4]
map_buf_tmp += map_w;
7e32: 005b lsls r3, r3, #1
7e34: 930a str r3, [sp, #40] ; 0x28
7e36: 9109 str r1, [sp, #36] ; 0x24
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7e38: ab10 add r3, sp, #64 ; 0x40
7e3a: 9307 str r3, [sp, #28]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
7e3c: ab01 add r3, sp, #4
7e3e: 469a mov sl, r3
7e40: 3201 adds r2, #1
7e42: 1a13 subs r3, r2, r0
mask_tmp += draw_area_w;
7e44: b21b sxth r3, r3
7e46: 930b str r3, [sp, #44] ; 0x2c
7e48: 9e0c ldr r6, [sp, #48] ; 0x30
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7e4a: 9a07 ldr r2, [sp, #28]
7e4c: 0013 movs r3, r2
7e4e: 2500 movs r5, #0
7e50: 5f5d ldrsh r5, [r3, r5]
7e52: 002c movs r4, r5
7e54: 0013 movs r3, r2
7e56: 2204 movs r2, #4
7e58: 5e9b ldrsh r3, [r3, r2]
7e5a: 429d cmp r5, r3
7e5c: dc1f bgt.n 7e9e <_lv_blend_map+0x1ae>
7e5e: 006d lsls r5, r5, #1
7e60: 9b08 ldr r3, [sp, #32]
7e62: 469c mov ip, r3
7e64: 4465 add r5, ip
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
7e66: 466b mov r3, sp
7e68: 2224 movs r2, #36 ; 0x24
7e6a: 5e9b ldrsh r3, [r3, r2]
7e6c: 4699 mov r9, r3
7e6e: b223 sxth r3, r4
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
7e70: 4642 mov r2, r8
7e72: 5d12 ldrb r2, [r2, r4]
7e74: 4659 mov r1, fp
7e76: 434a muls r2, r1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
7e78: 0a12 lsrs r2, r2, #8
7e7a: 9202 str r2, [sp, #8]
7e7c: 882a ldrh r2, [r5, #0]
7e7e: 4651 mov r1, sl
7e80: 800a strh r2, [r1, #0]
7e82: 464a mov r2, r9
7e84: 9200 str r2, [sp, #0]
7e86: 9a06 ldr r2, [sp, #24]
7e88: 9905 ldr r1, [sp, #20]
7e8a: 0030 movs r0, r6
7e8c: 6977 ldr r7, [r6, #20]
7e8e: 47b8 blx r7
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7e90: 3401 adds r4, #1
7e92: 3502 adds r5, #2
7e94: 9b07 ldr r3, [sp, #28]
7e96: 2204 movs r2, #4
7e98: 5e9b ldrsh r3, [r3, r2]
7e9a: 429c cmp r4, r3
7e9c: dde7 ble.n 7e6e <_lv_blend_map+0x17e>
7e9e: 9b0b ldr r3, [sp, #44] ; 0x2c
7ea0: 469c mov ip, r3
7ea2: 44e0 add r8, ip
map_buf_tmp += map_w;
7ea4: 9b08 ldr r3, [sp, #32]
7ea6: 9a0a ldr r2, [sp, #40] ; 0x28
7ea8: 4694 mov ip, r2
7eaa: 4463 add r3, ip
7eac: 9308 str r3, [sp, #32]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7eae: 9b09 ldr r3, [sp, #36] ; 0x24
7eb0: 3301 adds r3, #1
7eb2: 001a movs r2, r3
7eb4: 9309 str r3, [sp, #36] ; 0x24
7eb6: 9b07 ldr r3, [sp, #28]
7eb8: 2106 movs r1, #6
7eba: 5e5b ldrsh r3, [r3, r1]
7ebc: 429a cmp r2, r3
7ebe: ddc4 ble.n 7e4a <_lv_blend_map+0x15a>
7ec0: e72c b.n 7d1c <_lv_blend_map+0x2c>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7ec2: aa10 add r2, sp, #64 ; 0x40
7ec4: 2006 movs r0, #6
7ec6: 5e12 ldrsh r2, [r2, r0]
7ec8: 428a cmp r2, r1
7eca: da00 bge.n 7ece <_lv_blend_map+0x1de>
7ecc: e726 b.n 7d1c <_lv_blend_map+0x2c>
map_buf_tmp += map_w;
7ece: 005b lsls r3, r3, #1
7ed0: 9309 str r3, [sp, #36] ; 0x24
7ed2: 468a mov sl, r1
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7ed4: ab10 add r3, sp, #64 ; 0x40
7ed6: 9307 str r3, [sp, #28]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
7ed8: ab01 add r3, sp, #4
7eda: 4699 mov r9, r3
7edc: 9e0c ldr r6, [sp, #48] ; 0x30
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7ede: 9a07 ldr r2, [sp, #28]
7ee0: 0013 movs r3, r2
7ee2: 2700 movs r7, #0
7ee4: 5fdf ldrsh r7, [r3, r7]
7ee6: 003c movs r4, r7
7ee8: 0013 movs r3, r2
7eea: 2204 movs r2, #4
7eec: 5e9b ldrsh r3, [r3, r2]
7eee: 429f cmp r7, r3
7ef0: dc1a bgt.n 7f28 <_lv_blend_map+0x238>
7ef2: 007f lsls r7, r7, #1
7ef4: 9b08 ldr r3, [sp, #32]
7ef6: 469c mov ip, r3
7ef8: 4467 add r7, ip
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
7efa: 4653 mov r3, sl
7efc: b21b sxth r3, r3
7efe: 4698 mov r8, r3
7f00: b223 sxth r3, r4
7f02: 465a mov r2, fp
7f04: 9202 str r2, [sp, #8]
7f06: 883a ldrh r2, [r7, #0]
7f08: 4649 mov r1, r9
7f0a: 800a strh r2, [r1, #0]
7f0c: 4642 mov r2, r8
7f0e: 9200 str r2, [sp, #0]
7f10: 9a06 ldr r2, [sp, #24]
7f12: 9905 ldr r1, [sp, #20]
7f14: 0030 movs r0, r6
7f16: 6975 ldr r5, [r6, #20]
7f18: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
7f1a: 3401 adds r4, #1
7f1c: 3702 adds r7, #2
7f1e: 9b07 ldr r3, [sp, #28]
7f20: 2204 movs r2, #4
7f22: 5e9b ldrsh r3, [r3, r2]
7f24: 429c cmp r4, r3
7f26: ddeb ble.n 7f00 <_lv_blend_map+0x210>
map_buf_tmp += map_w;
7f28: 9b08 ldr r3, [sp, #32]
7f2a: 9a09 ldr r2, [sp, #36] ; 0x24
7f2c: 4694 mov ip, r2
7f2e: 4463 add r3, ip
7f30: 9308 str r3, [sp, #32]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
7f32: 2301 movs r3, #1
7f34: 469c mov ip, r3
7f36: 44e2 add sl, ip
7f38: 9b07 ldr r3, [sp, #28]
7f3a: 2206 movs r2, #6
7f3c: 5e9b ldrsh r3, [r3, r2]
7f3e: 459a cmp sl, r3
7f40: ddcd ble.n 7ede <_lv_blend_map+0x1ee>
7f42: e6eb b.n 7d1c <_lv_blend_map+0x2c>
else if(mode == LV_BLEND_MODE_NORMAL) {
7f44: 2e00 cmp r6, #0
7f46: d001 beq.n 7f4c <_lv_blend_map+0x25c>
7f48: f000 fbfd bl 8746 <_lv_blend_map+0xa56>
7f4c: 464b mov r3, r9
7f4e: 2210 movs r2, #16
7f50: 5e9b ldrsh r3, [r3, r2]
7f52: 001a movs r2, r3
7f54: 464b mov r3, r9
7f56: 8a9b ldrh r3, [r3, #20]
7f58: 3301 adds r3, #1
7f5a: 920d str r2, [sp, #52] ; 0x34
7f5c: 1a9b subs r3, r3, r2
7f5e: b21b sxth r3, r3
7f60: 4698 mov r8, r3
7f62: 3001 adds r0, #1
7f64: 9b09 ldr r3, [sp, #36] ; 0x24
7f66: 1ac0 subs r0, r0, r3
7f68: b203 sxth r3, r0
7f6a: 930c str r3, [sp, #48] ; 0x30
int32_t draw_area_w = lv_area_get_width(draw_area);
7f6c: 9306 str r3, [sp, #24]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
7f6e: 980b ldr r0, [sp, #44] ; 0x2c
7f70: 3001 adds r0, #1
7f72: 9b0a ldr r3, [sp, #40] ; 0x28
7f74: 1ac0 subs r0, r0, r3
int32_t draw_area_h = lv_area_get_height(draw_area);
7f76: b203 sxth r3, r0
7f78: 930b str r3, [sp, #44] ; 0x2c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
7f7a: 2300 movs r3, #0
7f7c: 5ee2 ldrsh r2, [r4, r3]
7f7e: 88a6 ldrh r6, [r4, #4]
7f80: 3601 adds r6, #1
7f82: 1ab6 subs r6, r6, r2
7f84: b236 sxth r6, r6
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
7f86: 9808 ldr r0, [sp, #32]
7f88: 0003 movs r3, r0
7f8a: 4641 mov r1, r8
7f8c: 434b muls r3, r1
7f8e: 4453 add r3, sl
7f90: 005b lsls r3, r3, #1
7f92: 9905 ldr r1, [sp, #20]
7f94: 468c mov ip, r1
7f96: 449c add ip, r3
7f98: 4663 mov r3, ip
7f9a: 9308 str r3, [sp, #32]
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
7f9c: 2102 movs r1, #2
7f9e: 5e63 ldrsh r3, [r4, r1]
7fa0: 4649 mov r1, r9
7fa2: 2412 movs r4, #18
7fa4: 5f09 ldrsh r1, [r1, r4]
7fa6: 1a5b subs r3, r3, r1
7fa8: 1ac3 subs r3, r0, r3
7faa: 4373 muls r3, r6
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
7fac: 990d ldr r1, [sp, #52] ; 0x34
7fae: 1a52 subs r2, r2, r1
7fb0: 4651 mov r1, sl
7fb2: 1a8a subs r2, r1, r2
7fb4: 189b adds r3, r3, r2
7fb6: 005b lsls r3, r3, #1
7fb8: 9a07 ldr r2, [sp, #28]
7fba: 4694 mov ip, r2
7fbc: 449c add ip, r3
7fbe: 4663 mov r3, ip
7fc0: 9309 str r3, [sp, #36] ; 0x24
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
7fc2: 4b34 ldr r3, [pc, #208] ; (8094 <_lv_blend_map+0x3a4>)
7fc4: 4798 blx r3
7fc6: 0004 movs r4, r0
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
7fc8: 2f01 cmp r7, #1
7fca: d015 beq.n 7ff8 <_lv_blend_map+0x308>
if(opa > LV_OPA_MAX) {
7fcc: 465b mov r3, fp
7fce: 2bfa cmp r3, #250 ; 0xfa
7fd0: d900 bls.n 7fd4 <_lv_blend_map+0x2e4>
7fd2: e0eb b.n 81ac <_lv_blend_map+0x4bc>
for(y = 0; y < draw_area_h; y++) {
7fd4: 9b0b ldr r3, [sp, #44] ; 0x2c
7fd6: 2b00 cmp r3, #0
7fd8: dc00 bgt.n 7fdc <_lv_blend_map+0x2ec>
7fda: e69f b.n 7d1c <_lv_blend_map+0x2c>
disp_buf_first += disp_w;
7fdc: 4643 mov r3, r8
7fde: 005b lsls r3, r3, #1
7fe0: 930e str r3, [sp, #56] ; 0x38
map_buf_first += map_w;
7fe2: 0073 lsls r3, r6, #1
7fe4: 930f str r3, [sp, #60] ; 0x3c
7fe6: 46a9 mov r9, r5
7fe8: 2300 movs r3, #0
7fea: 930d str r3, [sp, #52] ; 0x34
7fec: 331f adds r3, #31
7fee: 4698 mov r8, r3
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
7ff0: 465b mov r3, fp
7ff2: 9307 str r3, [sp, #28]
7ff4: 930a str r3, [sp, #40] ; 0x28
7ff6: e39a b.n 872e <_lv_blend_map+0xa3e>
if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) {
7ff8: 6a03 ldr r3, [r0, #32]
7ffa: 2b00 cmp r3, #0
7ffc: d02a beq.n 8054 <_lv_blend_map+0x364>
7ffe: a810 add r0, sp, #64 ; 0x40
8000: 4b26 ldr r3, [pc, #152] ; (809c <_lv_blend_map+0x3ac>)
8002: 4798 blx r3
8004: 28f0 cmp r0, #240 ; 0xf0
8006: d925 bls.n 8054 <_lv_blend_map+0x364>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
8008: ab10 add r3, sp, #64 ; 0x40
800a: 2202 movs r2, #2
800c: 5e9f ldrsh r7, [r3, r2]
800e: 2206 movs r2, #6
8010: 5e9b ldrsh r3, [r3, r2]
8012: 429f cmp r7, r3
8014: dd00 ble.n 8018 <_lv_blend_map+0x328>
8016: e681 b.n 7d1c <_lv_blend_map+0x2c>
disp_buf_first += disp_w;
8018: 4643 mov r3, r8
801a: 005b lsls r3, r3, #1
801c: 4698 mov r8, r3
map_buf_first += map_w;
801e: 0076 lsls r6, r6, #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
8020: ab10 add r3, sp, #64 ; 0x40
8022: 9305 str r3, [sp, #20]
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa);
8024: 465b mov r3, fp
8026: 9300 str r3, [sp, #0]
8028: 9b0c ldr r3, [sp, #48] ; 0x30
802a: 9a09 ldr r2, [sp, #36] ; 0x24
802c: 4692 mov sl, r2
802e: 9908 ldr r1, [sp, #32]
8030: 4689 mov r9, r1
8032: 0020 movs r0, r4
8034: 6a25 ldr r5, [r4, #32]
8036: 47a8 blx r5
disp_buf_first += disp_w;
8038: 464b mov r3, r9
803a: 4443 add r3, r8
803c: 9308 str r3, [sp, #32]
map_buf_first += map_w;
803e: 46d4 mov ip, sl
8040: 44b4 add ip, r6
8042: 4663 mov r3, ip
8044: 9309 str r3, [sp, #36] ; 0x24
for(y = draw_area->y1; y <= draw_area->y2; y++) {
8046: 3701 adds r7, #1
8048: 9b05 ldr r3, [sp, #20]
804a: 2206 movs r2, #6
804c: 5e9b ldrsh r3, [r3, r2]
804e: 429f cmp r7, r3
8050: dde8 ble.n 8024 <_lv_blend_map+0x334>
8052: e663 b.n 7d1c <_lv_blend_map+0x2c>
if(opa > LV_OPA_MAX) {
8054: 465b mov r3, fp
8056: 2bfa cmp r3, #250 ; 0xfa
8058: d824 bhi.n 80a4 <_lv_blend_map+0x3b4>
for(y = 0; y < draw_area_h; y++) {
805a: 9b0b ldr r3, [sp, #44] ; 0x2c
805c: 2b00 cmp r3, #0
805e: dc00 bgt.n 8062 <_lv_blend_map+0x372>
8060: e65c b.n 7d1c <_lv_blend_map+0x2c>
disp_buf_first += disp_w;
8062: 4643 mov r3, r8
8064: 005b lsls r3, r3, #1
8066: 930a str r3, [sp, #40] ; 0x28
map_buf_first += map_w;
8068: 0073 lsls r3, r6, #1
806a: 930d str r3, [sp, #52] ; 0x34
806c: 9b0c ldr r3, [sp, #48] ; 0x30
806e: 005b lsls r3, r3, #1
8070: 930c str r3, [sp, #48] ; 0x30
8072: 2300 movs r3, #0
8074: 9307 str r3, [sp, #28]
8076: 27ff movs r7, #255 ; 0xff
8078: 465b mov r3, fp
807a: 1aff subs r7, r7, r3
807c: 231f movs r3, #31
807e: 469c mov ip, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
8080: 3320 adds r3, #32
8082: 4699 mov r9, r3
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
8084: 4b06 ldr r3, [pc, #24] ; (80a0 <_lv_blend_map+0x3b0>)
8086: 469a mov sl, r3
8088: 46b8 mov r8, r7
808a: 465f mov r7, fp
808c: e03b b.n 8106 <_lv_blend_map+0x416>
808e: 46c0 nop ; (mov r8, r8)
8090: 0001140b .word 0x0001140b
8094: 00005591 .word 0x00005591
8098: 00010e75 .word 0x00010e75
809c: 000113ef .word 0x000113ef
80a0: fffff81f .word 0xfffff81f
for(y = 0; y < draw_area_h; y++) {
80a4: 9b0b ldr r3, [sp, #44] ; 0x2c
80a6: 2b00 cmp r3, #0
80a8: dc00 bgt.n 80ac <_lv_blend_map+0x3bc>
80aa: e637 b.n 7d1c <_lv_blend_map+0x2c>
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
80ac: 9b0c ldr r3, [sp, #48] ; 0x30
80ae: 005c lsls r4, r3, #1
disp_buf_first += disp_w;
80b0: 4643 mov r3, r8
80b2: 005b lsls r3, r3, #1
80b4: 4698 mov r8, r3
map_buf_first += map_w;
80b6: 0076 lsls r6, r6, #1
80b8: 2500 movs r5, #0
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
80ba: 4f80 ldr r7, [pc, #512] ; (82bc <_lv_blend_map+0x5cc>)
80bc: 0022 movs r2, r4
80be: 9b09 ldr r3, [sp, #36] ; 0x24
80c0: 469a mov sl, r3
80c2: 0019 movs r1, r3
80c4: 9b08 ldr r3, [sp, #32]
80c6: 4699 mov r9, r3
80c8: 0018 movs r0, r3
80ca: 47b8 blx r7
disp_buf_first += disp_w;
80cc: 464b mov r3, r9
80ce: 4443 add r3, r8
80d0: 9308 str r3, [sp, #32]
map_buf_first += map_w;
80d2: 46d4 mov ip, sl
80d4: 44b4 add ip, r6
80d6: 4663 mov r3, ip
80d8: 9309 str r3, [sp, #36] ; 0x24
for(y = 0; y < draw_area_h; y++) {
80da: 3501 adds r5, #1
80dc: 9b0b ldr r3, [sp, #44] ; 0x2c
80de: 42ab cmp r3, r5
80e0: dcec bgt.n 80bc <_lv_blend_map+0x3cc>
80e2: e61b b.n 7d1c <_lv_blend_map+0x2c>
disp_buf_first += disp_w;
80e4: 9b08 ldr r3, [sp, #32]
80e6: 9a0a ldr r2, [sp, #40] ; 0x28
80e8: 4693 mov fp, r2
80ea: 445b add r3, fp
80ec: 9308 str r3, [sp, #32]
map_buf_first += map_w;
80ee: 9b09 ldr r3, [sp, #36] ; 0x24
80f0: 9a0d ldr r2, [sp, #52] ; 0x34
80f2: 4693 mov fp, r2
80f4: 445b add r3, fp
80f6: 9309 str r3, [sp, #36] ; 0x24
for(y = 0; y < draw_area_h; y++) {
80f8: 9b07 ldr r3, [sp, #28]
80fa: 3301 adds r3, #1
80fc: 9307 str r3, [sp, #28]
80fe: 9a0b ldr r2, [sp, #44] ; 0x2c
8100: 429a cmp r2, r3
8102: dc00 bgt.n 8106 <_lv_blend_map+0x416>
8104: e60a b.n 7d1c <_lv_blend_map+0x2c>
for(x = 0; x < draw_area_w; x++) {
8106: 9b06 ldr r3, [sp, #24]
8108: 2b00 cmp r3, #0
810a: ddeb ble.n 80e4 <_lv_blend_map+0x3f4>
810c: 9b09 ldr r3, [sp, #36] ; 0x24
810e: 001e movs r6, r3
8110: 9d08 ldr r5, [sp, #32]
8112: 9a0c ldr r2, [sp, #48] ; 0x30
8114: 4693 mov fp, r2
8116: 445b add r3, fp
8118: 469b mov fp, r3
811a: 4641 mov r1, r8
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
811c: 7873 ldrb r3, [r6, #1]
811e: 08db lsrs r3, r3, #3
8120: 437b muls r3, r7
8122: 786a ldrb r2, [r5, #1]
8124: 08d2 lsrs r2, r2, #3
8126: 434a muls r2, r1
8128: 189a adds r2, r3, r2
812a: 0213 lsls r3, r2, #8
812c: 189b adds r3, r3, r2
812e: 01db lsls r3, r3, #7
8130: 189b adds r3, r3, r2
8132: 0ddb lsrs r3, r3, #23
8134: 4662 mov r2, ip
8136: 4013 ands r3, r2
8138: 9305 str r3, [sp, #20]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
813a: 8832 ldrh r2, [r6, #0]
813c: 0552 lsls r2, r2, #21
813e: 0e92 lsrs r2, r2, #26
8140: 437a muls r2, r7
8142: 882c ldrh r4, [r5, #0]
8144: 0564 lsls r4, r4, #21
8146: 0ea4 lsrs r4, r4, #26
8148: 434c muls r4, r1
814a: 1914 adds r4, r2, r4
814c: 0222 lsls r2, r4, #8
814e: 1912 adds r2, r2, r4
8150: 01d2 lsls r2, r2, #7
8152: 1912 adds r2, r2, r4
8154: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
8156: 7834 ldrb r4, [r6, #0]
8158: 06e4 lsls r4, r4, #27
815a: 0ee4 lsrs r4, r4, #27
815c: 437c muls r4, r7
815e: 7828 ldrb r0, [r5, #0]
8160: 4680 mov r8, r0
8162: 06c0 lsls r0, r0, #27
8164: 0ec0 lsrs r0, r0, #27
8166: 4348 muls r0, r1
8168: 1820 adds r0, r4, r0
816a: 0204 lsls r4, r0, #8
816c: 1824 adds r4, r4, r0
816e: 01e4 lsls r4, r4, #7
8170: 1824 adds r4, r4, r0
8172: 0de4 lsrs r4, r4, #23
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
8174: 4660 mov r0, ip
8176: 4004 ands r4, r0
8178: 4640 mov r0, r8
817a: 4663 mov r3, ip
817c: 4398 bics r0, r3
817e: 4304 orrs r4, r0
8180: 702c strb r4, [r5, #0]
8182: 464b mov r3, r9
8184: 401a ands r2, r3
8186: 0154 lsls r4, r2, #5
8188: 882a ldrh r2, [r5, #0]
818a: 4653 mov r3, sl
818c: 401a ands r2, r3
818e: 4322 orrs r2, r4
8190: 802a strh r2, [r5, #0]
8192: 9b05 ldr r3, [sp, #20]
8194: 00db lsls r3, r3, #3
8196: 0a12 lsrs r2, r2, #8
8198: 2007 movs r0, #7
819a: 4002 ands r2, r0
819c: 4313 orrs r3, r2
819e: 706b strb r3, [r5, #1]
81a0: 3602 adds r6, #2
81a2: 3502 adds r5, #2
for(x = 0; x < draw_area_w; x++) {
81a4: 455e cmp r6, fp
81a6: d1b9 bne.n 811c <_lv_blend_map+0x42c>
81a8: 4688 mov r8, r1
81aa: e79b b.n 80e4 <_lv_blend_map+0x3f4>
int32_t x_end4 = draw_area_w - 4;
81ac: 9b0c ldr r3, [sp, #48] ; 0x30
81ae: 3b04 subs r3, #4
81b0: 9307 str r3, [sp, #28]
for(y = 0; y < draw_area_h; y++) {
81b2: 9b0b ldr r3, [sp, #44] ; 0x2c
81b4: 2b00 cmp r3, #0
81b6: dc00 bgt.n 81ba <_lv_blend_map+0x4ca>
81b8: e5b0 b.n 7d1c <_lv_blend_map+0x2c>
disp_buf_first += disp_w;
81ba: 4643 mov r3, r8
81bc: 005b lsls r3, r3, #1
81be: 930e str r3, [sp, #56] ; 0x38
map_buf_first += map_w;
81c0: 0073 lsls r3, r6, #1
81c2: 930f str r3, [sp, #60] ; 0x3c
81c4: 950a str r5, [sp, #40] ; 0x28
81c6: 2300 movs r3, #0
81c8: 930d str r3, [sp, #52] ; 0x34
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
81ca: 331f adds r3, #31
81cc: 469b mov fp, r3
81ce: 9b06 ldr r3, [sp, #24]
81d0: 4699 mov r9, r3
81d2: e3b8 b.n 8946 <_lv_blend_map+0xc56>
MAP_NORMAL_MASK_PX(x)
81d4: 8803 ldrh r3, [r0, #0]
81d6: 800b strh r3, [r1, #0]
81d8: 3701 adds r7, #1
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
81da: 3601 adds r6, #1
81dc: 9b05 ldr r3, [sp, #20]
81de: 42b3 cmp r3, r6
81e0: dc00 bgt.n 81e4 <_lv_blend_map+0x4f4>
81e2: e393 b.n 890c <_lv_blend_map+0xc1c>
81e4: 3002 adds r0, #2
81e6: 3102 adds r1, #2
81e8: 2303 movs r3, #3
81ea: 421f tst r7, r3
81ec: d053 beq.n 8296 <_lv_blend_map+0x5a6>
MAP_NORMAL_MASK_PX(x)
81ee: 783d ldrb r5, [r7, #0]
81f0: 2d00 cmp r5, #0
81f2: d0f1 beq.n 81d8 <_lv_blend_map+0x4e8>
81f4: 2dff cmp r5, #255 ; 0xff
81f6: d0ed beq.n 81d4 <_lv_blend_map+0x4e4>
81f8: 23ff movs r3, #255 ; 0xff
81fa: 1b5b subs r3, r3, r5
81fc: 4699 mov r9, r3
81fe: 7843 ldrb r3, [r0, #1]
8200: 08db lsrs r3, r3, #3
8202: 436b muls r3, r5
8204: 784a ldrb r2, [r1, #1]
8206: 08d2 lsrs r2, r2, #3
8208: 464c mov r4, r9
820a: 4362 muls r2, r4
820c: 189a adds r2, r3, r2
820e: 0213 lsls r3, r2, #8
8210: 189b adds r3, r3, r2
8212: 01db lsls r3, r3, #7
8214: 189b adds r3, r3, r2
8216: 0ddb lsrs r3, r3, #23
8218: 465a mov r2, fp
821a: 4013 ands r3, r2
821c: 9306 str r3, [sp, #24]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
821e: 8802 ldrh r2, [r0, #0]
8220: 0552 lsls r2, r2, #21
8222: 0e92 lsrs r2, r2, #26
8224: 436a muls r2, r5
8226: 4694 mov ip, r2
8228: 880a ldrh r2, [r1, #0]
822a: 0552 lsls r2, r2, #21
822c: 0e92 lsrs r2, r2, #26
822e: 4362 muls r2, r4
8230: 4462 add r2, ip
8232: 0214 lsls r4, r2, #8
8234: 46a4 mov ip, r4
8236: 4494 add ip, r2
8238: 4664 mov r4, ip
823a: 01e4 lsls r4, r4, #7
823c: 46a4 mov ip, r4
823e: 4462 add r2, ip
8240: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
8242: 7804 ldrb r4, [r0, #0]
8244: 06e4 lsls r4, r4, #27
8246: 0ee4 lsrs r4, r4, #27
8248: 4365 muls r5, r4
824a: 780c ldrb r4, [r1, #0]
824c: 46a4 mov ip, r4
824e: 06e4 lsls r4, r4, #27
8250: 0ee4 lsrs r4, r4, #27
8252: 46a0 mov r8, r4
8254: 464c mov r4, r9
8256: 4643 mov r3, r8
8258: 435c muls r4, r3
825a: 46a0 mov r8, r4
825c: 44a8 add r8, r5
825e: 4643 mov r3, r8
8260: 021d lsls r5, r3, #8
8262: 4445 add r5, r8
8264: 01ed lsls r5, r5, #7
8266: 4445 add r5, r8
8268: 0ded lsrs r5, r5, #23
826a: 465b mov r3, fp
826c: 401d ands r5, r3
826e: 4664 mov r4, ip
8270: 439c bics r4, r3
8272: 4325 orrs r5, r4
8274: 700d strb r5, [r1, #0]
8276: 233f movs r3, #63 ; 0x3f
8278: 401a ands r2, r3
827a: 0155 lsls r5, r2, #5
827c: 880a ldrh r2, [r1, #0]
827e: 4653 mov r3, sl
8280: 401a ands r2, r3
8282: 432a orrs r2, r5
8284: 800a strh r2, [r1, #0]
8286: 9b06 ldr r3, [sp, #24]
8288: 00db lsls r3, r3, #3
828a: 0a12 lsrs r2, r2, #8
828c: 2407 movs r4, #7
828e: 4022 ands r2, r4
8290: 4313 orrs r3, r2
8292: 704b strb r3, [r1, #1]
8294: e7a0 b.n 81d8 <_lv_blend_map+0x4e8>
8296: 9b05 ldr r3, [sp, #20]
8298: 4699 mov r9, r3
for(; x < x_end4; x += 4) {
829a: 9b07 ldr r3, [sp, #28]
829c: 42b3 cmp r3, r6
829e: dc00 bgt.n 82a2 <_lv_blend_map+0x5b2>
82a0: e321 b.n 88e6 <_lv_blend_map+0xbf6>
82a2: 0070 lsls r0, r6, #1
82a4: 9b09 ldr r3, [sp, #36] ; 0x24
82a6: 181c adds r4, r3, r0
82a8: 9b08 ldr r3, [sp, #32]
82aa: 469c mov ip, r3
82ac: 4460 add r0, ip
MAP_NORMAL_MASK_PX(x + 3)
82ae: 4b04 ldr r3, [pc, #16] ; (82c0 <_lv_blend_map+0x5d0>)
82b0: 469a mov sl, r3
82b2: 464b mov r3, r9
82b4: 9306 str r3, [sp, #24]
82b6: 9605 str r6, [sp, #20]
82b8: e016 b.n 82e8 <_lv_blend_map+0x5f8>
82ba: 46c0 nop ; (mov r8, r8)
82bc: 00012545 .word 0x00012545
82c0: fffff81f .word 0xfffff81f
disp_buf_first[x] = map_buf_first[x];
82c4: 8823 ldrh r3, [r4, #0]
82c6: 8003 strh r3, [r0, #0]
disp_buf_first[x + 1] = map_buf_first[x + 1];
82c8: 8863 ldrh r3, [r4, #2]
82ca: 8043 strh r3, [r0, #2]
disp_buf_first[x + 2] = map_buf_first[x + 2];
82cc: 88a3 ldrh r3, [r4, #4]
82ce: 8083 strh r3, [r0, #4]
disp_buf_first[x + 3] = map_buf_first[x + 3];
82d0: 88e3 ldrh r3, [r4, #6]
82d2: 80c3 strh r3, [r0, #6]
mask32++;
82d4: 3704 adds r7, #4
for(; x < x_end4; x += 4) {
82d6: 9a05 ldr r2, [sp, #20]
82d8: 3204 adds r2, #4
82da: 9205 str r2, [sp, #20]
82dc: 3408 adds r4, #8
82de: 3008 adds r0, #8
82e0: 9b07 ldr r3, [sp, #28]
82e2: 4293 cmp r3, r2
82e4: dc00 bgt.n 82e8 <_lv_blend_map+0x5f8>
82e6: e14b b.n 8580 <_lv_blend_map+0x890>
if(*mask32) {
82e8: 683b ldr r3, [r7, #0]
82ea: 2b00 cmp r3, #0
82ec: d0f2 beq.n 82d4 <_lv_blend_map+0x5e4>
if((*mask32) == 0xFFFFFFFF) {
82ee: 3301 adds r3, #1
82f0: d0e8 beq.n 82c4 <_lv_blend_map+0x5d4>
MAP_NORMAL_MASK_PX(x)
82f2: 7839 ldrb r1, [r7, #0]
82f4: 2900 cmp r1, #0
82f6: d049 beq.n 838c <_lv_blend_map+0x69c>
82f8: 29ff cmp r1, #255 ; 0xff
82fa: d100 bne.n 82fe <_lv_blend_map+0x60e>
82fc: e134 b.n 8568 <_lv_blend_map+0x878>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
82fe: 23ff movs r3, #255 ; 0xff
8300: 1a5d subs r5, r3, r1
8302: 7862 ldrb r2, [r4, #1]
8304: 08d2 lsrs r2, r2, #3
8306: 0013 movs r3, r2
8308: 434b muls r3, r1
830a: 7842 ldrb r2, [r0, #1]
830c: 08d2 lsrs r2, r2, #3
830e: 436a muls r2, r5
8310: 189a adds r2, r3, r2
8312: 0213 lsls r3, r2, #8
8314: 189b adds r3, r3, r2
8316: 01db lsls r3, r3, #7
8318: 189b adds r3, r3, r2
831a: 0ddb lsrs r3, r3, #23
831c: 465a mov r2, fp
831e: 4013 ands r3, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
8320: 8822 ldrh r2, [r4, #0]
8322: 0552 lsls r2, r2, #21
8324: 0e92 lsrs r2, r2, #26
8326: 434a muls r2, r1
8328: 4694 mov ip, r2
832a: 8802 ldrh r2, [r0, #0]
832c: 0552 lsls r2, r2, #21
832e: 0e92 lsrs r2, r2, #26
8330: 436a muls r2, r5
8332: 4462 add r2, ip
8334: 0216 lsls r6, r2, #8
8336: 46b4 mov ip, r6
8338: 4494 add ip, r2
833a: 4666 mov r6, ip
833c: 01f6 lsls r6, r6, #7
833e: 46b4 mov ip, r6
8340: 4462 add r2, ip
8342: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
8344: 7826 ldrb r6, [r4, #0]
8346: 06f6 lsls r6, r6, #27
8348: 0ef6 lsrs r6, r6, #27
834a: 4371 muls r1, r6
834c: 7806 ldrb r6, [r0, #0]
834e: 46b4 mov ip, r6
8350: 06f6 lsls r6, r6, #27
8352: 0ef6 lsrs r6, r6, #27
8354: 4375 muls r5, r6
8356: 194d adds r5, r1, r5
8358: 0229 lsls r1, r5, #8
835a: 1949 adds r1, r1, r5
835c: 01c9 lsls r1, r1, #7
835e: 1949 adds r1, r1, r5
8360: 0dc9 lsrs r1, r1, #23
8362: 465d mov r5, fp
8364: 4029 ands r1, r5
8366: 4665 mov r5, ip
8368: 465e mov r6, fp
836a: 43b5 bics r5, r6
836c: 4329 orrs r1, r5
836e: 7001 strb r1, [r0, #0]
8370: 213f movs r1, #63 ; 0x3f
8372: 400a ands r2, r1
8374: 0151 lsls r1, r2, #5
8376: 8802 ldrh r2, [r0, #0]
8378: 4655 mov r5, sl
837a: 402a ands r2, r5
837c: 430a orrs r2, r1
837e: 8002 strh r2, [r0, #0]
8380: 00db lsls r3, r3, #3
8382: 0a12 lsrs r2, r2, #8
8384: 2107 movs r1, #7
8386: 400a ands r2, r1
8388: 4313 orrs r3, r2
838a: 7043 strb r3, [r0, #1]
MAP_NORMAL_MASK_PX(x + 1)
838c: 7879 ldrb r1, [r7, #1]
838e: 2900 cmp r1, #0
8390: d04b beq.n 842a <_lv_blend_map+0x73a>
8392: 29ff cmp r1, #255 ; 0xff
8394: d100 bne.n 8398 <_lv_blend_map+0x6a8>
8396: e0ea b.n 856e <_lv_blend_map+0x87e>
8398: 1c83 adds r3, r0, #2
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
839a: 22ff movs r2, #255 ; 0xff
839c: 1a55 subs r5, r2, r1
839e: 78e2 ldrb r2, [r4, #3]
83a0: 08d2 lsrs r2, r2, #3
83a2: 434a muls r2, r1
83a4: 4698 mov r8, r3
83a6: 78c3 ldrb r3, [r0, #3]
83a8: 08db lsrs r3, r3, #3
83aa: 436b muls r3, r5
83ac: 18d2 adds r2, r2, r3
83ae: 0213 lsls r3, r2, #8
83b0: 189b adds r3, r3, r2
83b2: 01db lsls r3, r3, #7
83b4: 189b adds r3, r3, r2
83b6: 0ddb lsrs r3, r3, #23
83b8: 465a mov r2, fp
83ba: 4013 ands r3, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
83bc: 8862 ldrh r2, [r4, #2]
83be: 0552 lsls r2, r2, #21
83c0: 0e92 lsrs r2, r2, #26
83c2: 434a muls r2, r1
83c4: 4694 mov ip, r2
83c6: 8842 ldrh r2, [r0, #2]
83c8: 0552 lsls r2, r2, #21
83ca: 0e92 lsrs r2, r2, #26
83cc: 436a muls r2, r5
83ce: 4462 add r2, ip
83d0: 0216 lsls r6, r2, #8
83d2: 46b4 mov ip, r6
83d4: 4494 add ip, r2
83d6: 4666 mov r6, ip
83d8: 01f6 lsls r6, r6, #7
83da: 46b4 mov ip, r6
83dc: 4462 add r2, ip
83de: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
83e0: 78a6 ldrb r6, [r4, #2]
83e2: 06f6 lsls r6, r6, #27
83e4: 0ef6 lsrs r6, r6, #27
83e6: 4371 muls r1, r6
83e8: 7886 ldrb r6, [r0, #2]
83ea: 46b4 mov ip, r6
83ec: 06f6 lsls r6, r6, #27
83ee: 0ef6 lsrs r6, r6, #27
83f0: 4375 muls r5, r6
83f2: 194d adds r5, r1, r5
83f4: 0229 lsls r1, r5, #8
83f6: 1949 adds r1, r1, r5
83f8: 01c9 lsls r1, r1, #7
83fa: 1949 adds r1, r1, r5
83fc: 0dc9 lsrs r1, r1, #23
83fe: 465d mov r5, fp
8400: 4029 ands r1, r5
8402: 4665 mov r5, ip
8404: 465e mov r6, fp
8406: 43b5 bics r5, r6
8408: 4329 orrs r1, r5
840a: 7081 strb r1, [r0, #2]
840c: 213f movs r1, #63 ; 0x3f
840e: 400a ands r2, r1
8410: 0151 lsls r1, r2, #5
8412: 8842 ldrh r2, [r0, #2]
8414: 4655 mov r5, sl
8416: 402a ands r2, r5
8418: 430a orrs r2, r1
841a: 8042 strh r2, [r0, #2]
841c: 00db lsls r3, r3, #3
841e: 0a12 lsrs r2, r2, #8
8420: 2107 movs r1, #7
8422: 400a ands r2, r1
8424: 4313 orrs r3, r2
8426: 4642 mov r2, r8
8428: 7053 strb r3, [r2, #1]
MAP_NORMAL_MASK_PX(x + 2)
842a: 78b9 ldrb r1, [r7, #2]
842c: 2900 cmp r1, #0
842e: d04b beq.n 84c8 <_lv_blend_map+0x7d8>
8430: 29ff cmp r1, #255 ; 0xff
8432: d100 bne.n 8436 <_lv_blend_map+0x746>
8434: e09e b.n 8574 <_lv_blend_map+0x884>
8436: 1d03 adds r3, r0, #4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
8438: 22ff movs r2, #255 ; 0xff
843a: 1a55 subs r5, r2, r1
843c: 7962 ldrb r2, [r4, #5]
843e: 08d2 lsrs r2, r2, #3
8440: 434a muls r2, r1
8442: 4698 mov r8, r3
8444: 7943 ldrb r3, [r0, #5]
8446: 08db lsrs r3, r3, #3
8448: 436b muls r3, r5
844a: 18d2 adds r2, r2, r3
844c: 0213 lsls r3, r2, #8
844e: 189b adds r3, r3, r2
8450: 01db lsls r3, r3, #7
8452: 189b adds r3, r3, r2
8454: 0ddb lsrs r3, r3, #23
8456: 465a mov r2, fp
8458: 4013 ands r3, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
845a: 88a2 ldrh r2, [r4, #4]
845c: 0552 lsls r2, r2, #21
845e: 0e92 lsrs r2, r2, #26
8460: 434a muls r2, r1
8462: 4694 mov ip, r2
8464: 8882 ldrh r2, [r0, #4]
8466: 0552 lsls r2, r2, #21
8468: 0e92 lsrs r2, r2, #26
846a: 436a muls r2, r5
846c: 4462 add r2, ip
846e: 0216 lsls r6, r2, #8
8470: 46b4 mov ip, r6
8472: 4494 add ip, r2
8474: 4666 mov r6, ip
8476: 01f6 lsls r6, r6, #7
8478: 46b4 mov ip, r6
847a: 4462 add r2, ip
847c: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
847e: 7926 ldrb r6, [r4, #4]
8480: 06f6 lsls r6, r6, #27
8482: 0ef6 lsrs r6, r6, #27
8484: 4371 muls r1, r6
8486: 7906 ldrb r6, [r0, #4]
8488: 46b4 mov ip, r6
848a: 06f6 lsls r6, r6, #27
848c: 0ef6 lsrs r6, r6, #27
848e: 4375 muls r5, r6
8490: 194d adds r5, r1, r5
8492: 0229 lsls r1, r5, #8
8494: 1949 adds r1, r1, r5
8496: 01c9 lsls r1, r1, #7
8498: 1949 adds r1, r1, r5
849a: 0dc9 lsrs r1, r1, #23
849c: 465d mov r5, fp
849e: 4029 ands r1, r5
84a0: 4665 mov r5, ip
84a2: 465e mov r6, fp
84a4: 43b5 bics r5, r6
84a6: 4329 orrs r1, r5
84a8: 7101 strb r1, [r0, #4]
84aa: 213f movs r1, #63 ; 0x3f
84ac: 400a ands r2, r1
84ae: 0151 lsls r1, r2, #5
84b0: 8882 ldrh r2, [r0, #4]
84b2: 4655 mov r5, sl
84b4: 402a ands r2, r5
84b6: 430a orrs r2, r1
84b8: 8082 strh r2, [r0, #4]
84ba: 00db lsls r3, r3, #3
84bc: 0a12 lsrs r2, r2, #8
84be: 2107 movs r1, #7
84c0: 400a ands r2, r1
84c2: 4313 orrs r3, r2
84c4: 4642 mov r2, r8
84c6: 7053 strb r3, [r2, #1]
MAP_NORMAL_MASK_PX(x + 3)
84c8: 78f9 ldrb r1, [r7, #3]
84ca: 2900 cmp r1, #0
84cc: d100 bne.n 84d0 <_lv_blend_map+0x7e0>
84ce: e701 b.n 82d4 <_lv_blend_map+0x5e4>
84d0: 29ff cmp r1, #255 ; 0xff
84d2: d052 beq.n 857a <_lv_blend_map+0x88a>
84d4: 1d83 adds r3, r0, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
84d6: 22ff movs r2, #255 ; 0xff
84d8: 1a55 subs r5, r2, r1
84da: 79e2 ldrb r2, [r4, #7]
84dc: 08d2 lsrs r2, r2, #3
84de: 434a muls r2, r1
84e0: 4698 mov r8, r3
84e2: 79c3 ldrb r3, [r0, #7]
84e4: 08db lsrs r3, r3, #3
84e6: 436b muls r3, r5
84e8: 18d2 adds r2, r2, r3
84ea: 0213 lsls r3, r2, #8
84ec: 189b adds r3, r3, r2
84ee: 01db lsls r3, r3, #7
84f0: 189b adds r3, r3, r2
84f2: 0ddb lsrs r3, r3, #23
84f4: 465a mov r2, fp
84f6: 4013 ands r3, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
84f8: 88e2 ldrh r2, [r4, #6]
84fa: 0552 lsls r2, r2, #21
84fc: 0e92 lsrs r2, r2, #26
84fe: 434a muls r2, r1
8500: 4694 mov ip, r2
8502: 88c2 ldrh r2, [r0, #6]
8504: 0552 lsls r2, r2, #21
8506: 0e92 lsrs r2, r2, #26
8508: 436a muls r2, r5
850a: 4462 add r2, ip
850c: 0216 lsls r6, r2, #8
850e: 46b4 mov ip, r6
8510: 4494 add ip, r2
8512: 4666 mov r6, ip
8514: 01f6 lsls r6, r6, #7
8516: 46b4 mov ip, r6
8518: 4462 add r2, ip
851a: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
851c: 79a6 ldrb r6, [r4, #6]
851e: 06f6 lsls r6, r6, #27
8520: 0ef6 lsrs r6, r6, #27
8522: 4371 muls r1, r6
8524: 7986 ldrb r6, [r0, #6]
8526: 46b4 mov ip, r6
8528: 06f6 lsls r6, r6, #27
852a: 0ef6 lsrs r6, r6, #27
852c: 4375 muls r5, r6
852e: 194d adds r5, r1, r5
8530: 0229 lsls r1, r5, #8
8532: 1949 adds r1, r1, r5
8534: 01c9 lsls r1, r1, #7
8536: 1949 adds r1, r1, r5
8538: 0dc9 lsrs r1, r1, #23
853a: 465d mov r5, fp
853c: 4029 ands r1, r5
853e: 4665 mov r5, ip
8540: 465e mov r6, fp
8542: 43b5 bics r5, r6
8544: 4329 orrs r1, r5
8546: 7181 strb r1, [r0, #6]
8548: 213f movs r1, #63 ; 0x3f
854a: 400a ands r2, r1
854c: 0151 lsls r1, r2, #5
854e: 88c2 ldrh r2, [r0, #6]
8550: 4655 mov r5, sl
8552: 402a ands r2, r5
8554: 430a orrs r2, r1
8556: 80c2 strh r2, [r0, #6]
8558: 00db lsls r3, r3, #3
855a: 0a12 lsrs r2, r2, #8
855c: 2107 movs r1, #7
855e: 400a ands r2, r1
8560: 4313 orrs r3, r2
8562: 4642 mov r2, r8
8564: 7053 strb r3, [r2, #1]
8566: e6b5 b.n 82d4 <_lv_blend_map+0x5e4>
MAP_NORMAL_MASK_PX(x)
8568: 8823 ldrh r3, [r4, #0]
856a: 8003 strh r3, [r0, #0]
856c: e70e b.n 838c <_lv_blend_map+0x69c>
MAP_NORMAL_MASK_PX(x + 1)
856e: 8863 ldrh r3, [r4, #2]
8570: 8043 strh r3, [r0, #2]
8572: e75a b.n 842a <_lv_blend_map+0x73a>
MAP_NORMAL_MASK_PX(x + 2)
8574: 88a3 ldrh r3, [r4, #4]
8576: 8083 strh r3, [r0, #4]
8578: e7a6 b.n 84c8 <_lv_blend_map+0x7d8>
MAP_NORMAL_MASK_PX(x + 3)
857a: 88e3 ldrh r3, [r4, #6]
857c: 80c3 strh r3, [r0, #6]
857e: e6a9 b.n 82d4 <_lv_blend_map+0x5e4>
8580: 9b06 ldr r3, [sp, #24]
8582: 4699 mov r9, r3
8584: 0016 movs r6, r2
for(; x < draw_area_w ; x++) {
8586: 4293 cmp r3, r2
8588: dc00 bgt.n 858c <_lv_blend_map+0x89c>
858a: e1c5 b.n 8918 <_lv_blend_map+0xc28>
mask32++;
858c: 003b movs r3, r7
858e: 0077 lsls r7, r6, #1
8590: 9a09 ldr r2, [sp, #36] ; 0x24
8592: 4690 mov r8, r2
8594: 44b8 add r8, r7
8596: 9a08 ldr r2, [sp, #32]
8598: 4694 mov ip, r2
859a: 4467 add r7, ip
MAP_NORMAL_MASK_PX(x)
859c: 1b9b subs r3, r3, r6
859e: 9305 str r3, [sp, #20]
85a0: 4bd2 ldr r3, [pc, #840] ; (88ec <_lv_blend_map+0xbfc>)
85a2: 469a mov sl, r3
85a4: 2307 movs r3, #7
85a6: 469c mov ip, r3
85a8: 4644 mov r4, r8
85aa: e007 b.n 85bc <_lv_blend_map+0x8cc>
85ac: 8823 ldrh r3, [r4, #0]
85ae: 803b strh r3, [r7, #0]
for(; x < draw_area_w ; x++) {
85b0: 3601 adds r6, #1
85b2: 3402 adds r4, #2
85b4: 3702 adds r7, #2
85b6: 45b1 cmp r9, r6
85b8: dc00 bgt.n 85bc <_lv_blend_map+0x8cc>
85ba: e1ad b.n 8918 <_lv_blend_map+0xc28>
MAP_NORMAL_MASK_PX(x)
85bc: 9b05 ldr r3, [sp, #20]
85be: 5d99 ldrb r1, [r3, r6]
85c0: 2900 cmp r1, #0
85c2: d0f5 beq.n 85b0 <_lv_blend_map+0x8c0>
85c4: 29ff cmp r1, #255 ; 0xff
85c6: d0f1 beq.n 85ac <_lv_blend_map+0x8bc>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
85c8: 23ff movs r3, #255 ; 0xff
85ca: 1a58 subs r0, r3, r1
85cc: 7862 ldrb r2, [r4, #1]
85ce: 08d2 lsrs r2, r2, #3
85d0: 434a muls r2, r1
85d2: 0015 movs r5, r2
85d4: 787a ldrb r2, [r7, #1]
85d6: 08d2 lsrs r2, r2, #3
85d8: 4342 muls r2, r0
85da: 18ad adds r5, r5, r2
85dc: 022b lsls r3, r5, #8
85de: 195b adds r3, r3, r5
85e0: 01db lsls r3, r3, #7
85e2: 195b adds r3, r3, r5
85e4: 0ddb lsrs r3, r3, #23
85e6: 465a mov r2, fp
85e8: 4013 ands r3, r2
85ea: 9306 str r3, [sp, #24]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
85ec: 8825 ldrh r5, [r4, #0]
85ee: 056d lsls r5, r5, #21
85f0: 0ead lsrs r5, r5, #26
85f2: 434d muls r5, r1
85f4: 883a ldrh r2, [r7, #0]
85f6: 0552 lsls r2, r2, #21
85f8: 0e92 lsrs r2, r2, #26
85fa: 4342 muls r2, r0
85fc: 18ad adds r5, r5, r2
85fe: 022a lsls r2, r5, #8
8600: 1952 adds r2, r2, r5
8602: 01d2 lsls r2, r2, #7
8604: 1952 adds r2, r2, r5
8606: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
8608: 7825 ldrb r5, [r4, #0]
860a: 06ed lsls r5, r5, #27
860c: 0eed lsrs r5, r5, #27
860e: 4369 muls r1, r5
8610: 783d ldrb r5, [r7, #0]
8612: 06eb lsls r3, r5, #27
8614: 0edb lsrs r3, r3, #27
8616: 4358 muls r0, r3
8618: 1808 adds r0, r1, r0
861a: 0201 lsls r1, r0, #8
861c: 1809 adds r1, r1, r0
861e: 01c9 lsls r1, r1, #7
8620: 1809 adds r1, r1, r0
8622: 0dc9 lsrs r1, r1, #23
8624: 465b mov r3, fp
8626: 4019 ands r1, r3
8628: 439d bics r5, r3
862a: 4329 orrs r1, r5
862c: 7039 strb r1, [r7, #0]
862e: 233f movs r3, #63 ; 0x3f
8630: 401a ands r2, r3
8632: 0151 lsls r1, r2, #5
8634: 883a ldrh r2, [r7, #0]
8636: 4653 mov r3, sl
8638: 401a ands r2, r3
863a: 430a orrs r2, r1
863c: 803a strh r2, [r7, #0]
863e: 9b06 ldr r3, [sp, #24]
8640: 00db lsls r3, r3, #3
8642: 0a12 lsrs r2, r2, #8
8644: 4661 mov r1, ip
8646: 400a ands r2, r1
8648: 4313 orrs r3, r2
864a: 707b strb r3, [r7, #1]
864c: e7b0 b.n 85b0 <_lv_blend_map+0x8c0>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
864e: 23ff movs r3, #255 ; 0xff
8650: 1a1d subs r5, r3, r0
8652: 784b ldrb r3, [r1, #1]
8654: 08db lsrs r3, r3, #3
8656: 4343 muls r3, r0
8658: 7872 ldrb r2, [r6, #1]
865a: 08d2 lsrs r2, r2, #3
865c: 436a muls r2, r5
865e: 189a adds r2, r3, r2
8660: 0213 lsls r3, r2, #8
8662: 189b adds r3, r3, r2
8664: 01db lsls r3, r3, #7
8666: 189b adds r3, r3, r2
8668: 0ddb lsrs r3, r3, #23
866a: 4642 mov r2, r8
866c: 4013 ands r3, r2
866e: 9305 str r3, [sp, #20]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
8670: 880a ldrh r2, [r1, #0]
8672: 0552 lsls r2, r2, #21
8674: 0e92 lsrs r2, r2, #26
8676: 4342 muls r2, r0
8678: 4691 mov r9, r2
867a: 8832 ldrh r2, [r6, #0]
867c: 0552 lsls r2, r2, #21
867e: 0e92 lsrs r2, r2, #26
8680: 436a muls r2, r5
8682: 444a add r2, r9
8684: 0213 lsls r3, r2, #8
8686: 4699 mov r9, r3
8688: 4491 add r9, r2
868a: 464b mov r3, r9
868c: 01db lsls r3, r3, #7
868e: 4699 mov r9, r3
8690: 444a add r2, r9
8692: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
8694: 780b ldrb r3, [r1, #0]
8696: 06db lsls r3, r3, #27
8698: 0edb lsrs r3, r3, #27
869a: 4343 muls r3, r0
869c: 4699 mov r9, r3
869e: 7833 ldrb r3, [r6, #0]
86a0: 469c mov ip, r3
86a2: 06db lsls r3, r3, #27
86a4: 0edb lsrs r3, r3, #27
86a6: 435d muls r5, r3
86a8: 44a9 add r9, r5
86aa: 464b mov r3, r9
86ac: 021d lsls r5, r3, #8
86ae: 444d add r5, r9
86b0: 01ed lsls r5, r5, #7
86b2: 444d add r5, r9
86b4: 0ded lsrs r5, r5, #23
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
86b6: 4643 mov r3, r8
86b8: 401d ands r5, r3
86ba: 4663 mov r3, ip
86bc: 4640 mov r0, r8
86be: 4383 bics r3, r0
86c0: 431d orrs r5, r3
86c2: 7035 strb r5, [r6, #0]
86c4: 233f movs r3, #63 ; 0x3f
86c6: 401a ands r2, r3
86c8: 0155 lsls r5, r2, #5
86ca: 8832 ldrh r2, [r6, #0]
86cc: 4b87 ldr r3, [pc, #540] ; (88ec <_lv_blend_map+0xbfc>)
86ce: 401a ands r2, r3
86d0: 432a orrs r2, r5
86d2: 8032 strh r2, [r6, #0]
86d4: 9b05 ldr r3, [sp, #20]
86d6: 00db lsls r3, r3, #3
86d8: 0a12 lsrs r2, r2, #8
86da: 4658 mov r0, fp
86dc: 4002 ands r2, r0
86de: 4313 orrs r3, r2
86e0: 7073 strb r3, [r6, #1]
for(x = 0; x < draw_area_w; x++) {
86e2: 3701 adds r7, #1
86e4: 3102 adds r1, #2
86e6: 3602 adds r6, #2
86e8: 9b06 ldr r3, [sp, #24]
86ea: 42bb cmp r3, r7
86ec: dd09 ble.n 8702 <_lv_blend_map+0xa12>
if(mask[x]) {
86ee: 5de5 ldrb r5, [r4, r7]
86f0: 2d00 cmp r5, #0
86f2: d0f6 beq.n 86e2 <_lv_blend_map+0x9f2>
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
86f4: 9807 ldr r0, [sp, #28]
86f6: 2df9 cmp r5, #249 ; 0xf9
86f8: d8a9 bhi.n 864e <_lv_blend_map+0x95e>
86fa: 9b0a ldr r3, [sp, #40] ; 0x28
86fc: 435d muls r5, r3
86fe: 0a28 lsrs r0, r5, #8
8700: e7a5 b.n 864e <_lv_blend_map+0x95e>
8702: 46a1 mov r9, r4
disp_buf_first += disp_w;
8704: 9b08 ldr r3, [sp, #32]
8706: 9a0e ldr r2, [sp, #56] ; 0x38
8708: 4694 mov ip, r2
870a: 4463 add r3, ip
870c: 9308 str r3, [sp, #32]
870e: 9b0c ldr r3, [sp, #48] ; 0x30
8710: 469c mov ip, r3
8712: 44e1 add r9, ip
map_buf_first += map_w;
8714: 9b09 ldr r3, [sp, #36] ; 0x24
8716: 9a0f ldr r2, [sp, #60] ; 0x3c
8718: 4694 mov ip, r2
871a: 4463 add r3, ip
871c: 9309 str r3, [sp, #36] ; 0x24
for(y = 0; y < draw_area_h; y++) {
871e: 9b0d ldr r3, [sp, #52] ; 0x34
8720: 3301 adds r3, #1
8722: 930d str r3, [sp, #52] ; 0x34
8724: 9a0b ldr r2, [sp, #44] ; 0x2c
8726: 429a cmp r2, r3
8728: dc01 bgt.n 872e <_lv_blend_map+0xa3e>
872a: f7ff faf7 bl 7d1c <_lv_blend_map+0x2c>
for(x = 0; x < draw_area_w; x++) {
872e: 9b06 ldr r3, [sp, #24]
8730: 2b00 cmp r3, #0
8732: dde7 ble.n 8704 <_lv_blend_map+0xa14>
8734: 9b09 ldr r3, [sp, #36] ; 0x24
8736: 469c mov ip, r3
8738: 9e08 ldr r6, [sp, #32]
873a: 2700 movs r7, #0
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
873c: 2307 movs r3, #7
873e: 469b mov fp, r3
8740: 4661 mov r1, ip
8742: 464c mov r4, r9
8744: e7d3 b.n 86ee <_lv_blend_map+0x9fe>
switch(mode) {
8746: 2e01 cmp r6, #1
8748: d055 beq.n 87f6 <_lv_blend_map+0xb06>
874a: 2e02 cmp r6, #2
874c: d149 bne.n 87e2 <_lv_blend_map+0xaf2>
blend_fp = color_blend_true_color_subtractive;
874e: 4b68 ldr r3, [pc, #416] ; (88f0 <_lv_blend_map+0xc00>)
8750: 930a str r3, [sp, #40] ; 0x28
8752: 464b mov r3, r9
8754: 2210 movs r2, #16
8756: 5e9b ldrsh r3, [r3, r2]
8758: 001a movs r2, r3
875a: 930b str r3, [sp, #44] ; 0x2c
875c: 464b mov r3, r9
875e: 8a9b ldrh r3, [r3, #20]
8760: 3301 adds r3, #1
8762: 1a9b subs r3, r3, r2
8764: b21b sxth r3, r3
8766: 469c mov ip, r3
8768: 2300 movs r3, #0
876a: 5ee2 ldrsh r2, [r4, r3]
876c: 920d str r2, [sp, #52] ; 0x34
876e: 88a3 ldrh r3, [r4, #4]
8770: 3301 adds r3, #1
8772: 1a9b subs r3, r3, r2
8774: b219 sxth r1, r3
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
8776: 9e08 ldr r6, [sp, #32]
8778: 4662 mov r2, ip
877a: 4372 muls r2, r6
877c: 0053 lsls r3, r2, #1
877e: 9a05 ldr r2, [sp, #20]
8780: 4690 mov r8, r2
8782: 4498 add r8, r3
8784: 4643 mov r3, r8
8786: 9306 str r3, [sp, #24]
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
8788: 2202 movs r2, #2
878a: 5ea3 ldrsh r3, [r4, r2]
878c: 464a mov r2, r9
878e: 2412 movs r4, #18
8790: 5f14 ldrsh r4, [r2, r4]
8792: 1b1b subs r3, r3, r4
8794: 1af3 subs r3, r6, r3
8796: 434b muls r3, r1
8798: 005b lsls r3, r3, #1
879a: 9a07 ldr r2, [sp, #28]
879c: 18d4 adds r4, r2, r3
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
879e: 2f01 cmp r7, #1
87a0: d02c beq.n 87fc <_lv_blend_map+0xb0c>
const lv_opa_t * mask_tmp = mask - draw_area->x1;
87a2: 4653 mov r3, sl
87a4: 1aeb subs r3, r5, r3
87a6: 001a movs r2, r3
map_buf_tmp -= draw_area->x1;
87a8: 4653 mov r3, sl
87aa: 005b lsls r3, r3, #1
87ac: 1ae3 subs r3, r4, r3
87ae: 4699 mov r9, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
87b0: 9b08 ldr r3, [sp, #32]
87b2: 9c0c ldr r4, [sp, #48] ; 0x30
87b4: 42a3 cmp r3, r4
87b6: dd01 ble.n 87bc <_lv_blend_map+0xacc>
87b8: f7ff fab0 bl 7d1c <_lv_blend_map+0x2c>
disp_buf_tmp += disp_w;
87bc: 4663 mov r3, ip
87be: 005b lsls r3, r3, #1
87c0: 4698 mov r8, r3
map_buf_tmp += map_w;
87c2: 004b lsls r3, r1, #1
87c4: 9307 str r3, [sp, #28]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
87c6: af10 add r7, sp, #64 ; 0x40
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
87c8: 465b mov r3, fp
87ca: 9305 str r3, [sp, #20]
87cc: 3001 adds r0, #1
87ce: 9b09 ldr r3, [sp, #36] ; 0x24
87d0: 1ac0 subs r0, r0, r3
mask_tmp += draw_area_w;
87d2: b203 sxth r3, r0
87d4: 9309 str r3, [sp, #36] ; 0x24
87d6: 9b0a ldr r3, [sp, #40] ; 0x28
87d8: 469a mov sl, r3
87da: 4643 mov r3, r8
87dc: 930a str r3, [sp, #40] ; 0x28
87de: 4690 mov r8, r2
87e0: e072 b.n 88c8 <_lv_blend_map+0xbd8>
LV_LOG_WARN("fill_blended: unsupported blend mode");
87e2: 4b44 ldr r3, [pc, #272] ; (88f4 <_lv_blend_map+0xc04>)
87e4: 9300 str r3, [sp, #0]
87e6: 4b44 ldr r3, [pc, #272] ; (88f8 <_lv_blend_map+0xc08>)
87e8: 4a44 ldr r2, [pc, #272] ; (88fc <_lv_blend_map+0xc0c>)
87ea: 4945 ldr r1, [pc, #276] ; (8900 <_lv_blend_map+0xc10>)
87ec: 2002 movs r0, #2
87ee: 4c45 ldr r4, [pc, #276] ; (8904 <_lv_blend_map+0xc14>)
87f0: 47a0 blx r4
87f2: f7ff fa93 bl 7d1c <_lv_blend_map+0x2c>
blend_fp = color_blend_true_color_additive;
87f6: 4b44 ldr r3, [pc, #272] ; (8908 <_lv_blend_map+0xc18>)
87f8: 930a str r3, [sp, #40] ; 0x28
87fa: e7aa b.n 8752 <_lv_blend_map+0xa62>
map_buf_tmp -= draw_area->x1;
87fc: 9b0b ldr r3, [sp, #44] ; 0x2c
87fe: 9a0d ldr r2, [sp, #52] ; 0x34
8800: 1a9b subs r3, r3, r2
8802: 005b lsls r3, r3, #1
8804: 46a1 mov r9, r4
8806: 4499 add r9, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
8808: 9a0c ldr r2, [sp, #48] ; 0x30
880a: 4296 cmp r6, r2
880c: dd01 ble.n 8812 <_lv_blend_map+0xb22>
880e: f7ff fa85 bl 7d1c <_lv_blend_map+0x2c>
disp_buf_tmp += disp_w;
8812: 4663 mov r3, ip
8814: 005b lsls r3, r3, #1
8816: 469a mov sl, r3
map_buf_tmp += map_w;
8818: 004b lsls r3, r1, #1
881a: 4698 mov r8, r3
for(x = draw_area->x1; x <= draw_area->x2; x++) {
881c: af10 add r7, sp, #64 ; 0x40
881e: 465b mov r3, fp
8820: 9305 str r3, [sp, #20]
8822: 46d3 mov fp, sl
8824: 9b0a ldr r3, [sp, #40] ; 0x28
8826: 469a mov sl, r3
8828: 2300 movs r3, #0
882a: 5efd ldrsh r5, [r7, r3]
882c: 002e movs r6, r5
882e: 2204 movs r2, #4
8830: 5ebb ldrsh r3, [r7, r2]
8832: 429d cmp r5, r3
8834: dc0f bgt.n 8856 <_lv_blend_map+0xb66>
8836: 006d lsls r5, r5, #1
8838: 9b06 ldr r3, [sp, #24]
883a: 195c adds r4, r3, r5
883c: 444d add r5, r9
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa);
883e: 8821 ldrh r1, [r4, #0]
8840: 8828 ldrh r0, [r5, #0]
8842: 9a05 ldr r2, [sp, #20]
8844: 47d0 blx sl
8846: 8020 strh r0, [r4, #0]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
8848: 3601 adds r6, #1
884a: 3402 adds r4, #2
884c: 3502 adds r5, #2
884e: 2204 movs r2, #4
8850: 5ebb ldrsh r3, [r7, r2]
8852: 429e cmp r6, r3
8854: ddf3 ble.n 883e <_lv_blend_map+0xb4e>
disp_buf_tmp += disp_w;
8856: 9b06 ldr r3, [sp, #24]
8858: 445b add r3, fp
885a: 9306 str r3, [sp, #24]
map_buf_tmp += map_w;
885c: 44c1 add r9, r8
for(y = draw_area->y1; y <= draw_area->y2; y++) {
885e: 9b08 ldr r3, [sp, #32]
8860: 3301 adds r3, #1
8862: 001a movs r2, r3
8864: 9308 str r3, [sp, #32]
8866: 2106 movs r1, #6
8868: 5e7b ldrsh r3, [r7, r1]
886a: 429a cmp r2, r3
886c: dddc ble.n 8828 <_lv_blend_map+0xb38>
886e: f7ff fa55 bl 7d1c <_lv_blend_map+0x2c>
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
8872: 8831 ldrh r1, [r6, #0]
8874: 8828 ldrh r0, [r5, #0]
8876: 47d0 blx sl
8878: 8030 strh r0, [r6, #0]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
887a: 3401 adds r4, #1
887c: 3602 adds r6, #2
887e: 3502 adds r5, #2
8880: 2204 movs r2, #4
8882: 5ebb ldrsh r3, [r7, r2]
8884: 429c cmp r4, r3
8886: dc0a bgt.n 889e <_lv_blend_map+0xbae>
if(mask_tmp[x] == 0) continue;
8888: 4643 mov r3, r8
888a: 5d1b ldrb r3, [r3, r4]
888c: 2b00 cmp r3, #0
888e: d0f4 beq.n 887a <_lv_blend_map+0xb8a>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
8890: 9a05 ldr r2, [sp, #20]
8892: 2bf9 cmp r3, #249 ; 0xf9
8894: d8ed bhi.n 8872 <_lv_blend_map+0xb82>
8896: 465a mov r2, fp
8898: 4353 muls r3, r2
889a: 0a1a lsrs r2, r3, #8
889c: e7e9 b.n 8872 <_lv_blend_map+0xb82>
disp_buf_tmp += disp_w;
889e: 9b06 ldr r3, [sp, #24]
88a0: 9a0a ldr r2, [sp, #40] ; 0x28
88a2: 4694 mov ip, r2
88a4: 4463 add r3, ip
88a6: 9306 str r3, [sp, #24]
88a8: 9b09 ldr r3, [sp, #36] ; 0x24
88aa: 469c mov ip, r3
88ac: 44e0 add r8, ip
map_buf_tmp += map_w;
88ae: 9b07 ldr r3, [sp, #28]
88b0: 469c mov ip, r3
88b2: 44e1 add r9, ip
for(y = draw_area->y1; y <= draw_area->y2; y++) {
88b4: 9b08 ldr r3, [sp, #32]
88b6: 3301 adds r3, #1
88b8: 001a movs r2, r3
88ba: 9308 str r3, [sp, #32]
88bc: 2106 movs r1, #6
88be: 5e7b ldrsh r3, [r7, r1]
88c0: 429a cmp r2, r3
88c2: dd01 ble.n 88c8 <_lv_blend_map+0xbd8>
88c4: f7ff fa2a bl 7d1c <_lv_blend_map+0x2c>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
88c8: 2300 movs r3, #0
88ca: 5efd ldrsh r5, [r7, r3]
88cc: 002c movs r4, r5
88ce: 2204 movs r2, #4
88d0: 5ebb ldrsh r3, [r7, r2]
88d2: 429d cmp r5, r3
88d4: dce3 bgt.n 889e <_lv_blend_map+0xbae>
88d6: 006d lsls r5, r5, #1
88d8: 9b06 ldr r3, [sp, #24]
88da: 195e adds r6, r3, r5
88dc: 444d add r5, r9
88de: e7d3 b.n 8888 <_lv_blend_map+0xb98>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
88e0: 9f0a ldr r7, [sp, #40] ; 0x28
88e2: 2600 movs r6, #0
88e4: e4d9 b.n 829a <_lv_blend_map+0x5aa>
for(; x < x_end4; x += 4) {
88e6: 003b movs r3, r7
88e8: e651 b.n 858e <_lv_blend_map+0x89e>
88ea: 46c0 nop ; (mov r8, r8)
88ec: fffff81f .word 0xfffff81f
88f0: 00006f37 .word 0x00006f37
88f4: 0002604c .word 0x0002604c
88f8: 00026008 .word 0x00026008
88fc: 00000353 .word 0x00000353
8900: 00026014 .word 0x00026014
8904: 00012159 .word 0x00012159
8908: 00006e91 .word 0x00006e91
890c: 9b05 ldr r3, [sp, #20]
890e: 4699 mov r9, r3
8910: 9b07 ldr r3, [sp, #28]
8912: 429e cmp r6, r3
8914: da00 bge.n 8918 <_lv_blend_map+0xc28>
8916: e4c4 b.n 82a2 <_lv_blend_map+0x5b2>
disp_buf_first += disp_w;
8918: 9b08 ldr r3, [sp, #32]
891a: 9a0e ldr r2, [sp, #56] ; 0x38
891c: 4694 mov ip, r2
891e: 4463 add r3, ip
8920: 9308 str r3, [sp, #32]
8922: 9b0a ldr r3, [sp, #40] ; 0x28
8924: 9a0c ldr r2, [sp, #48] ; 0x30
8926: 4694 mov ip, r2
8928: 4463 add r3, ip
892a: 930a str r3, [sp, #40] ; 0x28
map_buf_first += map_w;
892c: 9b09 ldr r3, [sp, #36] ; 0x24
892e: 9a0f ldr r2, [sp, #60] ; 0x3c
8930: 4694 mov ip, r2
8932: 4463 add r3, ip
8934: 9309 str r3, [sp, #36] ; 0x24
for(y = 0; y < draw_area_h; y++) {
8936: 9b0d ldr r3, [sp, #52] ; 0x34
8938: 3301 adds r3, #1
893a: 930d str r3, [sp, #52] ; 0x34
893c: 9a0b ldr r2, [sp, #44] ; 0x2c
893e: 429a cmp r2, r3
8940: dc01 bgt.n 8946 <_lv_blend_map+0xc56>
8942: f7ff f9eb bl 7d1c <_lv_blend_map+0x2c>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
8946: 464b mov r3, r9
8948: 2b00 cmp r3, #0
894a: dd0f ble.n 896c <_lv_blend_map+0xc7c>
894c: 9b0a ldr r3, [sp, #40] ; 0x28
894e: 2203 movs r2, #3
8950: 4213 tst r3, r2
8952: d0c5 beq.n 88e0 <_lv_blend_map+0xbf0>
8954: 9a09 ldr r2, [sp, #36] ; 0x24
8956: 4690 mov r8, r2
8958: 9a08 ldr r2, [sp, #32]
895a: 001f movs r7, r3
895c: 2600 movs r6, #0
MAP_NORMAL_MASK_PX(x)
895e: 4b05 ldr r3, [pc, #20] ; (8974 <_lv_blend_map+0xc84>)
8960: 469a mov sl, r3
8962: 464b mov r3, r9
8964: 9305 str r3, [sp, #20]
8966: 4640 mov r0, r8
8968: 0011 movs r1, r2
896a: e440 b.n 81ee <_lv_blend_map+0x4fe>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
896c: 9f0a ldr r7, [sp, #40] ; 0x28
896e: 2600 movs r6, #0
8970: e7ce b.n 8910 <_lv_blend_map+0xc20>
8972: 46c0 nop ; (mov r8, r8)
8974: fffff81f .word 0xfffff81f
00008978 <lv_draw_map>:
* @param antialias anti-alias transformations (rotate, zoom) or not
*/
LV_ATTRIBUTE_FAST_MEM static void lv_draw_map(const lv_area_t * map_area, const lv_area_t * clip_area,
const uint8_t * map_p,
lv_draw_img_dsc_t * draw_dsc, bool chroma_key, bool alpha_byte)
{
8978: b5f0 push {r4, r5, r6, r7, lr}
897a: 46de mov lr, fp
897c: 4657 mov r7, sl
897e: 464e mov r6, r9
8980: 4645 mov r5, r8
8982: b5e0 push {r5, r6, r7, lr}
8984: b0bf sub sp, #252 ; 0xfc
8986: 901c str r0, [sp, #112] ; 0x70
8988: 0008 movs r0, r1
898a: 9124 str r1, [sp, #144] ; 0x90
898c: 4690 mov r8, r2
898e: 930a str r3, [sp, #40] ; 0x28
8990: ab48 add r3, sp, #288 ; 0x120
8992: 781b ldrb r3, [r3, #0]
8994: 930b str r3, [sp, #44] ; 0x2c
8996: ab49 add r3, sp, #292 ; 0x124
8998: 781b ldrb r3, [r3, #0]
899a: 9307 str r3, [sp, #28]
899c: 2300 movs r3, #0
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
899e: a93c add r1, sp, #240 ; 0xf0
89a0: 5cc2 ldrb r2, [r0, r3]
89a2: 545a strb r2, [r3, r1]
89a4: 3301 adds r3, #1
while(len) {
89a6: 2b08 cmp r3, #8
89a8: d1fa bne.n 89a0 <lv_draw_map+0x28>
/* Use the clip area as draw area*/
lv_area_t draw_area;
lv_area_copy(&draw_area, clip_area);
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
89aa: 4bb7 ldr r3, [pc, #732] ; (8c88 <lv_draw_map+0x310>)
89ac: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
89ae: 4bb7 ldr r3, [pc, #732] ; (8c8c <lv_draw_map+0x314>)
89b0: 4798 blx r3
89b2: 9019 str r0, [sp, #100] ; 0x64
const lv_area_t * disp_area = &vdb->area;
/* Now `draw_area` has absolute coordinates.
* Make it relative to `disp_area` to simplify draw to `disp_buf`*/
draw_area.x1 -= disp_area->x1;
89b4: 8a04 ldrh r4, [r0, #16]
89b6: ab3c add r3, sp, #240 ; 0xf0
89b8: 881a ldrh r2, [r3, #0]
89ba: 1b12 subs r2, r2, r4
89bc: 801a strh r2, [r3, #0]
draw_area.y1 -= disp_area->y1;
89be: 8a40 ldrh r0, [r0, #18]
89c0: 885a ldrh r2, [r3, #2]
89c2: 1a12 subs r2, r2, r0
89c4: 805a strh r2, [r3, #2]
draw_area.x2 -= disp_area->x1;
89c6: 8899 ldrh r1, [r3, #4]
89c8: 1b09 subs r1, r1, r4
89ca: 8099 strh r1, [r3, #4]
draw_area.y2 -= disp_area->y1;
89cc: 88da ldrh r2, [r3, #6]
89ce: 1a12 subs r2, r2, r0
89d0: 80da strh r2, [r3, #6]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
89d2: 4baf ldr r3, [pc, #700] ; (8c90 <lv_draw_map+0x318>)
89d4: 4798 blx r3
89d6: 901a str r0, [sp, #104] ; 0x68
/*The simplest case just copy the pixels into the VDB*/
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
89d8: 2800 cmp r0, #0
89da: d108 bne.n 89ee <lv_draw_map+0x76>
89dc: 9a0a ldr r2, [sp, #40] ; 0x28
89de: 8853 ldrh r3, [r2, #2]
89e0: 2b00 cmp r3, #0
89e2: d104 bne.n 89ee <lv_draw_map+0x76>
89e4: 3301 adds r3, #1
89e6: 33ff adds r3, #255 ; 0xff
89e8: 8912 ldrh r2, [r2, #8]
89ea: 429a cmp r2, r3
89ec: d072 beq.n 8ad4 <lv_draw_map+0x15c>
draw_dsc->blend_mode);
}
/*In the other cases every pixel need to be checked one-by-one*/
else {
/*The pixel size in byte is different if an alpha byte is added too*/
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
89ee: 9b07 ldr r3, [sp, #28]
89f0: 1e5a subs r2, r3, #1
89f2: 4193 sbcs r3, r2
89f4: 3302 adds r3, #2
89f6: 4699 mov r9, r3
89f8: 9b1c ldr r3, [sp, #112] ; 0x70
89fa: 2200 movs r2, #0
89fc: 5e99 ldrsh r1, [r3, r2]
89fe: 468c mov ip, r1
8a00: 889f ldrh r7, [r3, #4]
8a02: 3701 adds r7, #1
8a04: 1a7f subs r7, r7, r1
8a06: b23f sxth r7, r7
/*Go to the first displayed pixel of the map*/
int32_t map_w = lv_area_get_width(map_area);
const uint8_t * map_buf_tmp = map_p;
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
8a08: a93c add r1, sp, #240 ; 0xf0
8a0a: 2202 movs r2, #2
8a0c: 5e8d ldrsh r5, [r1, r2]
8a0e: 9a19 ldr r2, [sp, #100] ; 0x64
8a10: 2612 movs r6, #18
8a12: 5f94 ldrsh r4, [r2, r6]
8a14: 46ca mov sl, r9
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
8a16: 2000 movs r0, #0
8a18: 5e0e ldrsh r6, [r1, r0]
8a1a: 2010 movs r0, #16
8a1c: 5e12 ldrsh r2, [r2, r0]
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
8a1e: 2002 movs r0, #2
8a20: 5e1b ldrsh r3, [r3, r0]
8a22: 1b1b subs r3, r3, r4
8a24: 1aeb subs r3, r5, r3
8a26: 437b muls r3, r7
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
8a28: 4660 mov r0, ip
8a2a: 1a80 subs r0, r0, r2
8a2c: 1a30 subs r0, r6, r0
8a2e: 18c0 adds r0, r0, r3
8a30: 464b mov r3, r9
8a32: 4358 muls r0, r3
8a34: 0003 movs r3, r0
8a36: 4443 add r3, r8
8a38: 9315 str r3, [sp, #84] ; 0x54
uint32_t px_i = 0;
const uint8_t * map_px;
lv_area_t blend_area;
blend_area.x1 = draw_area.x1 + disp_area->x1;
8a3a: b2b6 uxth r6, r6
8a3c: 18b2 adds r2, r6, r2
8a3e: b292 uxth r2, r2
8a40: a828 add r0, sp, #160 ; 0xa0
8a42: 8002 strh r2, [r0, #0]
8a44: 888b ldrh r3, [r1, #4]
8a46: 3301 adds r3, #1
8a48: 1b9b subs r3, r3, r6
8a4a: b29b uxth r3, r3
8a4c: b21e sxth r6, r3
8a4e: 9617 str r6, [sp, #92] ; 0x5c
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
8a50: 3b01 subs r3, #1
8a52: 18d3 adds r3, r2, r3
8a54: 8083 strh r3, [r0, #4]
blend_area.y1 = disp_area->y1 + draw_area.y1;
8a56: b2ad uxth r5, r5
8a58: 192c adds r4, r5, r4
8a5a: b224 sxth r4, r4
8a5c: 8044 strh r4, [r0, #2]
blend_area.y2 = blend_area.y1;
8a5e: 80c4 strh r4, [r0, #6]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
8a60: 88cb ldrh r3, [r1, #6]
8a62: 3301 adds r3, #1
8a64: 1b5d subs r5, r3, r5
8a66: b22d sxth r5, r5
lv_coord_t draw_area_h = lv_area_get_height(&draw_area);
lv_coord_t draw_area_w = lv_area_get_width(&draw_area);
#if LV_USE_IMG_TRANSFORM
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
8a68: 980a ldr r0, [sp, #40] ; 0x28
8a6a: 8843 ldrh r3, [r0, #2]
8a6c: 2b00 cmp r3, #0
8a6e: d000 beq.n 8a72 <lv_draw_map+0xfa>
8a70: e344 b.n 90fc <lv_draw_map+0x784>
8a72: 8902 ldrh r2, [r0, #8]
8a74: 1e53 subs r3, r2, #1
8a76: 3bff subs r3, #255 ; 0xff
8a78: 1e59 subs r1, r3, #1
8a7a: 418b sbcs r3, r1
8a7c: b2db uxtb r3, r3
8a7e: 469b mov fp, r3
#else
bool transform = false;
#endif
/*Simple ARGB image. Handle it as special case because it's very common*/
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
8a80: 9b1a ldr r3, [sp, #104] ; 0x68
8a82: 2b00 cmp r3, #0
8a84: d000 beq.n 8a88 <lv_draw_map+0x110>
8a86: e0d5 b.n 8c34 <lv_draw_map+0x2bc>
8a88: 3301 adds r3, #1
8a8a: 33ff adds r3, #255 ; 0xff
8a8c: 429a cmp r2, r3
8a8e: d000 beq.n 8a92 <lv_draw_map+0x11a>
8a90: e33a b.n 9108 <lv_draw_map+0x790>
8a92: 9b0b ldr r3, [sp, #44] ; 0x2c
8a94: 2b00 cmp r3, #0
8a96: d105 bne.n 8aa4 <lv_draw_map+0x12c>
8a98: 7a83 ldrb r3, [r0, #10]
8a9a: 2b00 cmp r3, #0
8a9c: d102 bne.n 8aa4 <lv_draw_map+0x12c>
8a9e: 9b07 ldr r3, [sp, #28]
8aa0: 2b00 cmp r3, #0
8aa2: d134 bne.n 8b0e <lv_draw_map+0x196>
_lv_mem_buf_release(map2);
}
/*Most complicated case: transform or other mask or chroma keyed*/
else {
/*Build the image and a mask line-by-line*/
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
8aa4: a83c add r0, sp, #240 ; 0xf0
8aa6: 4b7b ldr r3, [pc, #492] ; (8c94 <lv_draw_map+0x31c>)
8aa8: 4798 blx r3
8aaa: 23f0 movs r3, #240 ; 0xf0
8aac: 005b lsls r3, r3, #1
8aae: 4298 cmp r0, r3
8ab0: d800 bhi.n 8ab4 <lv_draw_map+0x13c>
8ab2: e0ca b.n 8c4a <lv_draw_map+0x2d2>
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
8ab4: 20f0 movs r0, #240 ; 0xf0
8ab6: 0080 lsls r0, r0, #2
8ab8: 4c77 ldr r4, [pc, #476] ; (8c98 <lv_draw_map+0x320>)
8aba: 47a0 blx r4
8abc: 901b str r0, [sp, #108] ; 0x6c
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8abe: 26f0 movs r6, #240 ; 0xf0
8ac0: 0076 lsls r6, r6, #1
8ac2: 0030 movs r0, r6
8ac4: 47a0 blx r4
8ac6: 9018 str r0, [sp, #96] ; 0x60
#if LV_USE_IMG_TRANSFORM
lv_img_transform_dsc_t trans_dsc;
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
8ac8: 2148 movs r1, #72 ; 0x48
8aca: a82a add r0, sp, #168 ; 0xa8
8acc: 4b73 ldr r3, [pc, #460] ; (8c9c <lv_draw_map+0x324>)
8ace: 4798 blx r3
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
8ad0: 961d str r6, [sp, #116] ; 0x74
8ad2: e355 b.n 9180 <lv_draw_map+0x808>
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
8ad4: 9b0b ldr r3, [sp, #44] ; 0x2c
8ad6: 2b00 cmp r3, #0
8ad8: d189 bne.n 89ee <lv_draw_map+0x76>
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
8ada: 9b07 ldr r3, [sp, #28]
8adc: 2b00 cmp r3, #0
8ade: d113 bne.n 8b08 <lv_draw_map+0x190>
8ae0: 9b0a ldr r3, [sp, #40] ; 0x28
8ae2: 7a9b ldrb r3, [r3, #10]
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
8ae4: 2202 movs r2, #2
8ae6: 4691 mov r9, r2
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
8ae8: 2b00 cmp r3, #0
8aea: d185 bne.n 89f8 <lv_draw_map+0x80>
_lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa,
8aec: 9a0a ldr r2, [sp, #40] ; 0x28
8aee: 7b93 ldrb r3, [r2, #14]
8af0: 9302 str r3, [sp, #8]
8af2: 7813 ldrb r3, [r2, #0]
8af4: 9301 str r3, [sp, #4]
8af6: 2301 movs r3, #1
8af8: 9300 str r3, [sp, #0]
8afa: 2300 movs r3, #0
8afc: 4642 mov r2, r8
8afe: 991c ldr r1, [sp, #112] ; 0x70
8b00: 9824 ldr r0, [sp, #144] ; 0x90
8b02: 4c67 ldr r4, [pc, #412] ; (8ca0 <lv_draw_map+0x328>)
8b04: 47a0 blx r4
8b06: e2dd b.n 90c4 <lv_draw_map+0x74c>
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
8b08: 2303 movs r3, #3
8b0a: 4699 mov r9, r3
8b0c: e774 b.n 89f8 <lv_draw_map+0x80>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
8b0e: a83c add r0, sp, #240 ; 0xf0
8b10: 4b60 ldr r3, [pc, #384] ; (8c94 <lv_draw_map+0x31c>)
8b12: 4798 blx r3
8b14: 23f0 movs r3, #240 ; 0xf0
8b16: 005b lsls r3, r3, #1
8b18: 4298 cmp r0, r3
8b1a: d819 bhi.n 8b50 <lv_draw_map+0x1d8>
8b1c: a83c add r0, sp, #240 ; 0xf0
8b1e: 4b5d ldr r3, [pc, #372] ; (8c94 <lv_draw_map+0x31c>)
8b20: 4798 blx r3
8b22: 9007 str r0, [sp, #28]
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
8b24: 9e07 ldr r6, [sp, #28]
8b26: 0070 lsls r0, r6, #1
8b28: 4c5b ldr r4, [pc, #364] ; (8c98 <lv_draw_map+0x320>)
8b2a: 47a0 blx r4
8b2c: 9005 str r0, [sp, #20]
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8b2e: 0030 movs r0, r6
8b30: 47a0 blx r4
8b32: 9006 str r0, [sp, #24]
for(y = 0; y < draw_area_h; y++) {
8b34: 2d00 cmp r5, #0
8b36: dd61 ble.n 8bfc <lv_draw_map+0x284>
map_buf_tmp += map_w * px_size_byte;
8b38: 4653 mov r3, sl
8b3a: 437b muls r3, r7
8b3c: 469a mov sl, r3
8b3e: 1c6b adds r3, r5, #1
8b40: 469b mov fp, r3
8b42: 2301 movs r3, #1
8b44: 4698 mov r8, r3
8b46: 2700 movs r7, #0
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
8b48: 9d17 ldr r5, [sp, #92] ; 0x5c
8b4a: 003e movs r6, r7
8b4c: 464c mov r4, r9
8b4e: e031 b.n 8bb4 <lv_draw_map+0x23c>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
8b50: 23f0 movs r3, #240 ; 0xf0
8b52: 005b lsls r3, r3, #1
8b54: 9307 str r3, [sp, #28]
8b56: e7e5 b.n 8b24 <lv_draw_map+0x1ac>
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
8b58: 3301 adds r3, #1
8b5a: 1912 adds r2, r2, r4
8b5c: 3702 adds r7, #2
8b5e: 42ab cmp r3, r5
8b60: da09 bge.n 8b76 <lv_draw_map+0x1fe>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
8b62: 7891 ldrb r1, [r2, #2]
mask_buf[px_i] = px_opa;
8b64: 54c1 strb r1, [r0, r3]
if(px_opa) {
8b66: 2900 cmp r1, #0
8b68: d0f6 beq.n 8b58 <lv_draw_map+0x1e0>
map2[px_i].full = map_px[0] + (map_px[1] << 8);
8b6a: 7856 ldrb r6, [r2, #1]
8b6c: 0236 lsls r6, r6, #8
8b6e: 7811 ldrb r1, [r2, #0]
8b70: 1989 adds r1, r1, r6
8b72: 8039 strh r1, [r7, #0]
8b74: e7f0 b.n 8b58 <lv_draw_map+0x1e0>
8b76: 4666 mov r6, ip
8b78: 9b17 ldr r3, [sp, #92] ; 0x5c
8b7a: 469c mov ip, r3
8b7c: 4466 add r6, ip
map_buf_tmp += map_w * px_size_byte;
8b7e: 9b15 ldr r3, [sp, #84] ; 0x54
8b80: 4453 add r3, sl
8b82: 9315 str r3, [sp, #84] ; 0x54
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
8b84: ab24 add r3, sp, #144 ; 0x90
8b86: 2264 movs r2, #100 ; 0x64
8b88: 189b adds r3, r3, r2
8b8a: 881b ldrh r3, [r3, #0]
8b8c: 3301 adds r3, #1
8b8e: aa24 add r2, sp, #144 ; 0x90
8b90: 2160 movs r1, #96 ; 0x60
8b92: 1852 adds r2, r2, r1
8b94: 8812 ldrh r2, [r2, #0]
8b96: 1a9b subs r3, r3, r2
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
8b98: b21b sxth r3, r3
8b9a: 199b adds r3, r3, r6
8b9c: 9a07 ldr r2, [sp, #28]
8b9e: 429a cmp r2, r3
8ba0: d917 bls.n 8bd2 <lv_draw_map+0x25a>
blend_area.y2 ++;
8ba2: aa28 add r2, sp, #160 ; 0xa0
8ba4: 88d3 ldrh r3, [r2, #6]
8ba6: 3301 adds r3, #1
8ba8: 80d3 strh r3, [r2, #6]
8baa: 2301 movs r3, #1
8bac: 469c mov ip, r3
8bae: 44e0 add r8, ip
for(y = 0; y < draw_area_h; y++) {
8bb0: 45d8 cmp r8, fp
8bb2: d023 beq.n 8bfc <lv_draw_map+0x284>
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
8bb4: 9b17 ldr r3, [sp, #92] ; 0x5c
8bb6: 2b00 cmp r3, #0
8bb8: dde1 ble.n 8b7e <lv_draw_map+0x206>
8bba: 0077 lsls r7, r6, #1
8bbc: 9b05 ldr r3, [sp, #20]
8bbe: 469c mov ip, r3
8bc0: 4467 add r7, ip
8bc2: 9a15 ldr r2, [sp, #84] ; 0x54
8bc4: 2300 movs r3, #0
mask_buf[px_i] = px_opa;
8bc6: 9906 ldr r1, [sp, #24]
8bc8: 468c mov ip, r1
8bca: 44b4 add ip, r6
8bcc: 4660 mov r0, ip
8bce: 46b4 mov ip, r6
8bd0: e7c7 b.n 8b62 <lv_draw_map+0x1ea>
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
8bd2: af28 add r7, sp, #160 ; 0xa0
8bd4: 9a0a ldr r2, [sp, #40] ; 0x28
8bd6: 7b93 ldrb r3, [r2, #14]
8bd8: 9302 str r3, [sp, #8]
8bda: 7813 ldrb r3, [r2, #0]
8bdc: 9301 str r3, [sp, #4]
8bde: 2302 movs r3, #2
8be0: 9300 str r3, [sp, #0]
8be2: 9b06 ldr r3, [sp, #24]
8be4: 9a05 ldr r2, [sp, #20]
8be6: 0039 movs r1, r7
8be8: 9824 ldr r0, [sp, #144] ; 0x90
8bea: 4e2d ldr r6, [pc, #180] ; (8ca0 <lv_draw_map+0x328>)
8bec: 47b0 blx r6
blend_area.y1 = blend_area.y2 + 1;
8bee: 88fb ldrh r3, [r7, #6]
8bf0: 3301 adds r3, #1
8bf2: b21b sxth r3, r3
8bf4: 807b strh r3, [r7, #2]
blend_area.y2 = blend_area.y1;
8bf6: 80fb strh r3, [r7, #6]
px_i = 0;
8bf8: 2600 movs r6, #0
8bfa: e7d6 b.n 8baa <lv_draw_map+0x232>
if(blend_area.y1 != blend_area.y2) {
8bfc: aa28 add r2, sp, #160 ; 0xa0
8bfe: 2106 movs r1, #6
8c00: 5e53 ldrsh r3, [r2, r1]
8c02: 2102 movs r1, #2
8c04: 5e52 ldrsh r2, [r2, r1]
8c06: 429a cmp r2, r3
8c08: d00e beq.n 8c28 <lv_draw_map+0x2b0>
blend_area.y2--;
8c0a: a928 add r1, sp, #160 ; 0xa0
8c0c: 3b01 subs r3, #1
8c0e: 80cb strh r3, [r1, #6]
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
8c10: 9a0a ldr r2, [sp, #40] ; 0x28
8c12: 7b93 ldrb r3, [r2, #14]
8c14: 9302 str r3, [sp, #8]
8c16: 7813 ldrb r3, [r2, #0]
8c18: 9301 str r3, [sp, #4]
8c1a: 2302 movs r3, #2
8c1c: 9300 str r3, [sp, #0]
8c1e: 9b06 ldr r3, [sp, #24]
8c20: 9a05 ldr r2, [sp, #20]
8c22: 9824 ldr r0, [sp, #144] ; 0x90
8c24: 4c1e ldr r4, [pc, #120] ; (8ca0 <lv_draw_map+0x328>)
8c26: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
8c28: 9806 ldr r0, [sp, #24]
8c2a: 4c1e ldr r4, [pc, #120] ; (8ca4 <lv_draw_map+0x32c>)
8c2c: 47a0 blx r4
_lv_mem_buf_release(map2);
8c2e: 9805 ldr r0, [sp, #20]
8c30: 47a0 blx r4
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
8c32: e247 b.n 90c4 <lv_draw_map+0x74c>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
8c34: a83c add r0, sp, #240 ; 0xf0
8c36: 4b17 ldr r3, [pc, #92] ; (8c94 <lv_draw_map+0x31c>)
8c38: 4798 blx r3
8c3a: 23f0 movs r3, #240 ; 0xf0
8c3c: 005b lsls r3, r3, #1
8c3e: 4298 cmp r0, r3
8c40: d903 bls.n 8c4a <lv_draw_map+0x2d2>
8c42: 23f0 movs r3, #240 ; 0xf0
8c44: 005b lsls r3, r3, #1
8c46: 931d str r3, [sp, #116] ; 0x74
8c48: e003 b.n 8c52 <lv_draw_map+0x2da>
8c4a: a83c add r0, sp, #240 ; 0xf0
8c4c: 4b11 ldr r3, [pc, #68] ; (8c94 <lv_draw_map+0x31c>)
8c4e: 4798 blx r3
8c50: 901d str r0, [sp, #116] ; 0x74
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
8c52: 9e1d ldr r6, [sp, #116] ; 0x74
8c54: 0070 lsls r0, r6, #1
8c56: 4c10 ldr r4, [pc, #64] ; (8c98 <lv_draw_map+0x320>)
8c58: 47a0 blx r4
8c5a: 901b str r0, [sp, #108] ; 0x6c
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8c5c: 0030 movs r0, r6
8c5e: 47a0 blx r4
8c60: 9018 str r0, [sp, #96] ; 0x60
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
8c62: 2148 movs r1, #72 ; 0x48
8c64: a82a add r0, sp, #168 ; 0xa8
8c66: 4b0d ldr r3, [pc, #52] ; (8c9c <lv_draw_map+0x324>)
8c68: 4798 blx r3
if(transform) {
8c6a: 465b mov r3, fp
8c6c: 2b00 cmp r3, #0
8c6e: d100 bne.n 8c72 <lv_draw_map+0x2fa>
8c70: e286 b.n 9180 <lv_draw_map+0x808>
8c72: e260 b.n 9136 <lv_draw_map+0x7be>
trans_dsc.cfg.antialias = draw_dsc->antialias;
_lv_img_buf_transform_init(&trans_dsc);
}
#endif
uint16_t recolor_premult[3] = {0};
8c74: 2300 movs r3, #0
8c76: 9314 str r3, [sp, #80] ; 0x50
8c78: 9312 str r3, [sp, #72] ; 0x48
8c7a: 9311 str r3, [sp, #68] ; 0x44
8c7c: e297 b.n 91ae <lv_draw_map+0x836>
draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
/*Prepare the `mask_buf`if there are other masks*/
if(other_mask_cnt) {
_lv_memset_ff(mask_buf, mask_buf_size);
8c7e: 991d ldr r1, [sp, #116] ; 0x74
8c80: 9818 ldr r0, [sp, #96] ; 0x60
8c82: 4b09 ldr r3, [pc, #36] ; (8ca8 <lv_draw_map+0x330>)
8c84: 4798 blx r3
8c86: e2a9 b.n 91dc <lv_draw_map+0x864>
8c88: 00005591 .word 0x00005591
8c8c: 00010e75 .word 0x00010e75
8c90: 0000bb6d .word 0x0000bb6d
8c94: 000113ef .word 0x000113ef
8c98: 000127a1 .word 0x000127a1
8c9c: 00012975 .word 0x00012975
8ca0: 00007cf1 .word 0x00007cf1
8ca4: 00012465 .word 0x00012465
8ca8: 00012a19 .word 0x00012a19
static inline bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y)
{
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
/*Get the target point relative coordinates to the pivot*/
int32_t xt = x - dsc->cfg.pivot_x;
8cac: 9b0d ldr r3, [sp, #52] ; 0x34
8cae: 18f3 adds r3, r6, r3
8cb0: b21b sxth r3, r3
8cb2: a92a add r1, sp, #168 ; 0xa8
8cb4: 2008 movs r0, #8
8cb6: 5e0a ldrsh r2, [r1, r0]
8cb8: 1a9b subs r3, r3, r2
int32_t yt = y - dsc->cfg.pivot_y;
8cba: 200a movs r0, #10
8cbc: 5e0a ldrsh r2, [r1, r0]
8cbe: 980e ldr r0, [sp, #56] ; 0x38
8cc0: 1a82 subs r2, r0, r2
int32_t xs;
int32_t ys;
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
8cc2: 2080 movs r0, #128 ; 0x80
8cc4: 0040 lsls r0, r0, #1
8cc6: 89c9 ldrh r1, [r1, #14]
8cc8: 4281 cmp r1, r0
8cca: d059 beq.n 8d80 <lv_draw_map+0x408>
/*Get the source pixel from the upscaled image*/
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
}
else if(dsc->cfg.angle == 0) {
8ccc: a92a add r1, sp, #168 ; 0xa8
8cce: 200c movs r0, #12
8cd0: 5e09 ldrsh r1, [r1, r0]
8cd2: 2900 cmp r1, #0
8cd4: d16b bne.n 8dae <lv_draw_map+0x436>
xt *= dsc->tmp.zoom_inv;
8cd6: a92a add r1, sp, #168 ; 0xa8
8cd8: 8ec8 ldrh r0, [r1, #54] ; 0x36
8cda: 4343 muls r3, r0
8cdc: 001d movs r5, r3
yt *= dsc->tmp.zoom_inv;
xs = xt + dsc->tmp.pivot_x_256;
8cde: 9b33 ldr r3, [sp, #204] ; 0xcc
8ce0: 469a mov sl, r3
8ce2: 44aa add sl, r5
yt *= dsc->tmp.zoom_inv;
8ce4: 4342 muls r2, r0
ys = yt + dsc->tmp.pivot_y_256;
8ce6: 9b34 ldr r3, [sp, #208] ; 0xd0
8ce8: 18d3 adds r3, r2, r3
8cea: 930c str r3, [sp, #48] ; 0x30
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
}
/*Get the integer part of the source pixel*/
int32_t xs_int = xs >> 8;
8cec: 4653 mov r3, sl
8cee: 121b asrs r3, r3, #8
8cf0: 4698 mov r8, r3
int32_t ys_int = ys >> 8;
if(xs_int >= dsc->cfg.src_w) return false;
8cf2: ab2a add r3, sp, #168 ; 0xa8
8cf4: 2204 movs r2, #4
8cf6: 5e9b ldrsh r3, [r3, r2]
8cf8: 4598 cmp r8, r3
8cfa: db00 blt.n 8cfe <lv_draw_map+0x386>
8cfc: e0b0 b.n 8e60 <lv_draw_map+0x4e8>
else if(xs_int < 0) return false;
8cfe: 4642 mov r2, r8
8d00: 2a00 cmp r2, #0
8d02: da00 bge.n 8d06 <lv_draw_map+0x38e>
8d04: e0ac b.n 8e60 <lv_draw_map+0x4e8>
int32_t ys_int = ys >> 8;
8d06: 9a0c ldr r2, [sp, #48] ; 0x30
8d08: 1212 asrs r2, r2, #8
8d0a: 0010 movs r0, r2
8d0c: 9216 str r2, [sp, #88] ; 0x58
if(ys_int >= dsc->cfg.src_h) return false;
8d0e: aa2a add r2, sp, #168 ; 0xa8
8d10: 2106 movs r1, #6
8d12: 5e52 ldrsh r2, [r2, r1]
8d14: 4290 cmp r0, r2
8d16: db00 blt.n 8d1a <lv_draw_map+0x3a2>
8d18: e0a2 b.n 8e60 <lv_draw_map+0x4e8>
else if(ys_int < 0) return false;
8d1a: 2800 cmp r0, #0
8d1c: da00 bge.n 8d20 <lv_draw_map+0x3a8>
8d1e: e09f b.n 8e60 <lv_draw_map+0x4e8>
uint8_t px_size;
uint32_t pxi;
if(dsc->tmp.native_color) {
8d20: 2234 movs r2, #52 ; 0x34
8d22: a92a add r1, sp, #168 ; 0xa8
8d24: 5c89 ldrb r1, [r1, r2]
8d26: 074a lsls r2, r1, #29
8d28: d56a bpl.n 8e00 <lv_draw_map+0x488>
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
8d2a: 9a2a ldr r2, [sp, #168] ; 0xa8
if(dsc->tmp.has_alpha == 0) {
8d2c: 0789 lsls r1, r1, #30
8d2e: d458 bmi.n 8de2 <lv_draw_map+0x46a>
px_size = LV_COLOR_SIZE >> 3;
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
8d30: 4343 muls r3, r0
8d32: 4443 add r3, r8
8d34: 005b lsls r3, r3, #1
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size);
8d36: 18d2 adds r2, r2, r3
*d8 = *s8;
8d38: 7810 ldrb r0, [r2, #0]
8d3a: a92a add r1, sp, #168 ; 0xa8
8d3c: 7508 strb r0, [r1, #20]
8d3e: 7852 ldrb r2, [r2, #1]
8d40: 754a strb r2, [r1, #21]
px_size = LV_COLOR_SIZE >> 3;
8d42: 2102 movs r1, #2
px_size = 0; /*unused*/
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
}
if(dsc->tmp.chroma_keyed) {
8d44: 2234 movs r2, #52 ; 0x34
8d46: a82a add r0, sp, #168 ; 0xa8
8d48: 5c82 ldrb r2, [r0, r2]
8d4a: 07d2 lsls r2, r2, #31
8d4c: d50f bpl.n 8d6e <lv_draw_map+0x3f6>
lv_color_t ct = LV_COLOR_TRANSP;
8d4e: 221f movs r2, #31
8d50: 9822 ldr r0, [sp, #136] ; 0x88
8d52: 4390 bics r0, r2
8d54: 22fc movs r2, #252 ; 0xfc
8d56: 00d2 lsls r2, r2, #3
8d58: 4302 orrs r2, r0
8d5a: 0552 lsls r2, r2, #21
8d5c: 0d52 lsrs r2, r2, #21
8d5e: 4668 mov r0, sp
8d60: 2588 movs r5, #136 ; 0x88
8d62: 1940 adds r0, r0, r5
8d64: 8002 strh r2, [r0, #0]
if(dsc->res.color.full == ct.full) return false;
8d66: a82a add r0, sp, #168 ; 0xa8
8d68: 8a80 ldrh r0, [r0, #20]
8d6a: 4290 cmp r0, r2
8d6c: d078 beq.n 8e60 <lv_draw_map+0x4e8>
}
if(dsc->cfg.antialias == false) return true;
8d6e: aa2a add r2, sp, #168 ; 0xa8
8d70: 7cd2 ldrb r2, [r2, #19]
8d72: 2a00 cmp r2, #0
8d74: d160 bne.n 8e38 <lv_draw_map+0x4c0>
if(ret == false) {
mask_buf[px_i] = LV_OPA_TRANSP;
continue;
}
else {
mask_buf[px_i] = trans_dsc.res.opa;
8d76: ab2a add r3, sp, #168 ; 0xa8
8d78: 7d9a ldrb r2, [r3, #22]
8d7a: 7022 strb r2, [r4, #0]
c.full = trans_dsc.res.color.full;
8d7c: 8a9b ldrh r3, [r3, #20]
8d7e: e080 b.n 8e82 <lv_draw_map+0x50a>
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
8d80: 9936 ldr r1, [sp, #216] ; 0xd8
8d82: 9835 ldr r0, [sp, #212] ; 0xd4
8d84: 0005 movs r5, r0
8d86: 910c str r1, [sp, #48] ; 0x30
8d88: 0008 movs r0, r1
8d8a: 4358 muls r0, r3
8d8c: 0029 movs r1, r5
8d8e: 4351 muls r1, r2
8d90: 1a41 subs r1, r0, r1
8d92: 11c9 asrs r1, r1, #7
8d94: 9833 ldr r0, [sp, #204] ; 0xcc
8d96: 9016 str r0, [sp, #88] ; 0x58
8d98: 4682 mov sl, r0
8d9a: 448a add sl, r1
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
8d9c: 436b muls r3, r5
8d9e: 980c ldr r0, [sp, #48] ; 0x30
8da0: 4342 muls r2, r0
8da2: 189b adds r3, r3, r2
8da4: 11db asrs r3, r3, #7
8da6: 9a34 ldr r2, [sp, #208] ; 0xd0
8da8: 189b adds r3, r3, r2
8daa: 930c str r3, [sp, #48] ; 0x30
8dac: e79e b.n 8cec <lv_draw_map+0x374>
xt *= dsc->tmp.zoom_inv;
8dae: a92a add r1, sp, #168 ; 0xa8
8db0: 8ec8 ldrh r0, [r1, #54] ; 0x36
8db2: 4343 muls r3, r0
8db4: 001d movs r5, r3
yt *= dsc->tmp.zoom_inv;
8db6: 4342 muls r2, r0
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
8db8: 9836 ldr r0, [sp, #216] ; 0xd8
8dba: 4358 muls r0, r3
8dbc: 4680 mov r8, r0
8dbe: 9835 ldr r0, [sp, #212] ; 0xd4
8dc0: 4350 muls r0, r2
8dc2: 4643 mov r3, r8
8dc4: 1a18 subs r0, r3, r0
8dc6: 13c0 asrs r0, r0, #15
8dc8: 9b33 ldr r3, [sp, #204] ; 0xcc
8dca: 469a mov sl, r3
8dcc: 4482 add sl, r0
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
8dce: 9b35 ldr r3, [sp, #212] ; 0xd4
8dd0: 436b muls r3, r5
8dd2: 9836 ldr r0, [sp, #216] ; 0xd8
8dd4: 4350 muls r0, r2
8dd6: 181b adds r3, r3, r0
8dd8: 13db asrs r3, r3, #15
8dda: 9a34 ldr r2, [sp, #208] ; 0xd0
8ddc: 189b adds r3, r3, r2
8dde: 930c str r3, [sp, #48] ; 0x30
8de0: e784 b.n 8cec <lv_draw_map+0x374>
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
8de2: 9916 ldr r1, [sp, #88] ; 0x58
8de4: 434b muls r3, r1
8de6: 4443 add r3, r8
8de8: 0059 lsls r1, r3, #1
8dea: 18cb adds r3, r1, r3
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1);
8dec: 18d2 adds r2, r2, r3
8dee: 7810 ldrb r0, [r2, #0]
8df0: a92a add r1, sp, #168 ; 0xa8
8df2: 7508 strb r0, [r1, #20]
8df4: 7850 ldrb r0, [r2, #1]
8df6: 7548 strb r0, [r1, #21]
dsc->res.opa = src_u8[pxi + px_size - 1];
8df8: 7892 ldrb r2, [r2, #2]
8dfa: 758a strb r2, [r1, #22]
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
8dfc: 2103 movs r1, #3
8dfe: e7a1 b.n 8d44 <lv_draw_map+0x3cc>
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
8e00: 4643 mov r3, r8
8e02: b219 sxth r1, r3
8e04: 466b mov r3, sp
8e06: 2258 movs r2, #88 ; 0x58
8e08: 189b adds r3, r3, r2
8e0a: 2200 movs r2, #0
8e0c: 5e9a ldrsh r2, [r3, r2]
8e0e: ab24 add r3, sp, #144 ; 0x90
8e10: 8d1b ldrh r3, [r3, #40] ; 0x28
8e12: 9226 str r2, [sp, #152] ; 0x98
8e14: 9125 str r1, [sp, #148] ; 0x94
8e16: a830 add r0, sp, #192 ; 0xc0
8e18: 4dae ldr r5, [pc, #696] ; (90d4 <lv_draw_map+0x75c>)
8e1a: 47a8 blx r5
8e1c: ab24 add r3, sp, #144 ; 0x90
8e1e: 8598 strh r0, [r3, #44] ; 0x2c
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
8e20: 9a26 ldr r2, [sp, #152] ; 0x98
8e22: 9925 ldr r1, [sp, #148] ; 0x94
8e24: a830 add r0, sp, #192 ; 0xc0
8e26: 4bac ldr r3, [pc, #688] ; (90d8 <lv_draw_map+0x760>)
8e28: 4798 blx r3
8e2a: ab24 add r3, sp, #144 ; 0x90
8e2c: 222e movs r2, #46 ; 0x2e
8e2e: 189b adds r3, r3, r2
8e30: 7018 strb r0, [r3, #0]
pxi = 0; /*unused*/
8e32: 2300 movs r3, #0
px_size = 0; /*unused*/
8e34: 2100 movs r1, #0
8e36: e785 b.n 8d44 <lv_draw_map+0x3cc>
dsc->tmp.xs = xs;
8e38: a82a add r0, sp, #168 ; 0xa8
8e3a: 4652 mov r2, sl
8e3c: 8702 strh r2, [r0, #56] ; 0x38
dsc->tmp.ys = ys;
8e3e: 466a mov r2, sp
8e40: 8e12 ldrh r2, [r2, #48] ; 0x30
8e42: 8742 strh r2, [r0, #58] ; 0x3a
dsc->tmp.xs_int = xs_int;
8e44: 4642 mov r2, r8
8e46: 8782 strh r2, [r0, #60] ; 0x3c
dsc->tmp.ys_int = ys_int;
8e48: 466a mov r2, sp
8e4a: 2558 movs r5, #88 ; 0x58
8e4c: 1952 adds r2, r2, r5
8e4e: 8812 ldrh r2, [r2, #0]
8e50: 87c2 strh r2, [r0, #62] ; 0x3e
dsc->tmp.pxi = pxi;
8e52: 6403 str r3, [r0, #64] ; 0x40
dsc->tmp.px_size = px_size;
8e54: 2344 movs r3, #68 ; 0x44
8e56: 54c1 strb r1, [r0, r3]
bool ret;
ret = _lv_img_buf_transform_anti_alias(dsc);
8e58: 4ba0 ldr r3, [pc, #640] ; (90dc <lv_draw_map+0x764>)
8e5a: 4798 blx r3
if(ret == false) {
8e5c: 2800 cmp r0, #0
8e5e: d18a bne.n 8d76 <lv_draw_map+0x3fe>
mask_buf[px_i] = LV_OPA_TRANSP;
8e60: 2300 movs r3, #0
8e62: 7023 strb r3, [r4, #0]
continue;
8e64: e042 b.n 8eec <lv_draw_map+0x574>
#endif
continue;
}
}
else {
mask_buf[px_i] = 0xFF;
8e66: 23ff movs r3, #255 ; 0xff
8e68: 7023 strb r3, [r4, #0]
}
#if LV_COLOR_DEPTH == 8
c.full = map_px[0];
#elif LV_COLOR_DEPTH == 16
c.full = map_px[0] + (map_px[1] << 8);
8e6a: 787a ldrb r2, [r7, #1]
8e6c: 0212 lsls r2, r2, #8
8e6e: 783b ldrb r3, [r7, #0]
8e70: 189b adds r3, r3, r2
8e72: b29b uxth r3, r3
#elif LV_COLOR_DEPTH == 32
c.full = *((uint32_t *)map_px);
c.ch.alpha = 0xFF;
#endif
if(chroma_key) {
8e74: 9a0b ldr r2, [sp, #44] ; 0x2c
8e76: 2a00 cmp r2, #0
8e78: d003 beq.n 8e82 <lv_draw_map+0x50a>
if(c.full == chroma_keyed_color.full) {
8e7a: 4a99 ldr r2, [pc, #612] ; (90e0 <lv_draw_map+0x768>)
8e7c: 8812 ldrh r2, [r2, #0]
8e7e: 429a cmp r2, r3
8e80: d04a beq.n 8f18 <lv_draw_map+0x5a0>
continue;
}
}
}
if(draw_dsc->recolor_opa != 0) {
8e82: 9a0a ldr r2, [sp, #40] ; 0x28
8e84: 7a92 ldrb r2, [r2, #10]
8e86: 2a00 cmp r2, #0
8e88: d02e beq.n 8ee8 <lv_draw_map+0x570>
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
8e8a: 466a mov r2, sp
8e8c: 214c movs r1, #76 ; 0x4c
8e8e: 1852 adds r2, r2, r1
8e90: 8812 ldrh r2, [r2, #0]
8e92: 0ad9 lsrs r1, r3, #11
8e94: 4694 mov ip, r2
8e96: 4351 muls r1, r2
8e98: 9a11 ldr r2, [sp, #68] ; 0x44
8e9a: 4690 mov r8, r2
8e9c: 4441 add r1, r8
8e9e: 04c9 lsls r1, r1, #19
8ea0: 0ec9 lsrs r1, r1, #27
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
8ea2: 0558 lsls r0, r3, #21
8ea4: 0e80 lsrs r0, r0, #26
8ea6: 4662 mov r2, ip
8ea8: 4350 muls r0, r2
8eaa: 9a12 ldr r2, [sp, #72] ; 0x48
8eac: 4690 mov r8, r2
8eae: 4440 add r0, r8
8eb0: 0480 lsls r0, r0, #18
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
8eb2: 06da lsls r2, r3, #27
8eb4: 0ed2 lsrs r2, r2, #27
8eb6: 4663 mov r3, ip
8eb8: 435a muls r2, r3
8eba: 9b14 ldr r3, [sp, #80] ; 0x50
8ebc: 469c mov ip, r3
8ebe: 4462 add r2, ip
8ec0: 04d2 lsls r2, r2, #19
8ec2: 0ed5 lsrs r5, r2, #27
8ec4: 231f movs r3, #31
8ec6: 9a08 ldr r2, [sp, #32]
8ec8: 439a bics r2, r3
8eca: 0013 movs r3, r2
8ecc: 002a movs r2, r5
8ece: 431a orrs r2, r3
8ed0: 0e80 lsrs r0, r0, #26
8ed2: 0140 lsls r0, r0, #5
8ed4: 4b83 ldr r3, [pc, #524] ; (90e4 <lv_draw_map+0x76c>)
8ed6: 4013 ands r3, r2
8ed8: 4303 orrs r3, r0
8eda: 02c9 lsls r1, r1, #11
8edc: 055b lsls r3, r3, #21
8ede: 0d5b lsrs r3, r3, #21
8ee0: 430b orrs r3, r1
8ee2: 466a mov r2, sp
8ee4: 8413 strh r3, [r2, #32]
8ee6: b29b uxth r3, r3
c = lv_color_mix_premult(recolor_premult, c, recolor_opa_inv);
}
map2[px_i].full = c.full;
8ee8: 9a05 ldr r2, [sp, #20]
8eea: 8013 strh r3, [r2, #0]
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
8eec: 3601 adds r6, #1
8eee: 9b06 ldr r3, [sp, #24]
8ef0: 469c mov ip, r3
8ef2: 4467 add r7, ip
8ef4: 3401 adds r4, #1
8ef6: 9b05 ldr r3, [sp, #20]
8ef8: 3302 adds r3, #2
8efa: 9305 str r3, [sp, #20]
8efc: 454e cmp r6, r9
8efe: da0e bge.n 8f1e <lv_draw_map+0x5a6>
if(transform) {
8f00: 465b mov r3, fp
8f02: 2b00 cmp r3, #0
8f04: d000 beq.n 8f08 <lv_draw_map+0x590>
8f06: e6d1 b.n 8cac <lv_draw_map+0x334>
if(alpha_byte) {
8f08: 9b07 ldr r3, [sp, #28]
8f0a: 2b00 cmp r3, #0
8f0c: d0ab beq.n 8e66 <lv_draw_map+0x4ee>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
8f0e: 78bb ldrb r3, [r7, #2]
mask_buf[px_i] = px_opa;
8f10: 7023 strb r3, [r4, #0]
if(px_opa == 0) {
8f12: 2b00 cmp r3, #0
8f14: d0ea beq.n 8eec <lv_draw_map+0x574>
8f16: e7a8 b.n 8e6a <lv_draw_map+0x4f2>
mask_buf[px_i] = LV_OPA_TRANSP;
8f18: 2300 movs r3, #0
8f1a: 7023 strb r3, [r4, #0]
continue;
8f1c: e7e6 b.n 8eec <lv_draw_map+0x574>
8f1e: 9b17 ldr r3, [sp, #92] ; 0x5c
8f20: 9a0f ldr r2, [sp, #60] ; 0x3c
8f22: 4694 mov ip, r2
8f24: 4463 add r3, ip
8f26: 001c movs r4, r3
}
/*Apply the masks if any*/
if(other_mask_cnt) {
8f28: 9b1a ldr r3, [sp, #104] ; 0x68
8f2a: 2b00 cmp r3, #0
8f2c: d148 bne.n 8fc0 <lv_draw_map+0x648>
else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) {
mask_res = LV_DRAW_MASK_RES_CHANGED;
}
}
map_buf_tmp += map_w * px_size_byte;
8f2e: 9b15 ldr r3, [sp, #84] ; 0x54
8f30: 9a1f ldr r2, [sp, #124] ; 0x7c
8f32: 4694 mov ip, r2
8f34: 4463 add r3, ip
8f36: 9315 str r3, [sp, #84] ; 0x54
8f38: ab24 add r3, sp, #144 ; 0x90
8f3a: 2264 movs r2, #100 ; 0x64
8f3c: 189b adds r3, r3, r2
8f3e: 881b ldrh r3, [r3, #0]
8f40: 3301 adds r3, #1
8f42: aa24 add r2, sp, #144 ; 0x90
8f44: 2160 movs r1, #96 ; 0x60
8f46: 1852 adds r2, r2, r1
8f48: 8812 ldrh r2, [r2, #0]
8f4a: 1a9b subs r3, r3, r2
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
8f4c: b21b sxth r3, r3
8f4e: 191b adds r3, r3, r4
8f50: 9a1d ldr r2, [sp, #116] ; 0x74
8f52: 429a cmp r2, r3
8f54: d96c bls.n 9030 <lv_draw_map+0x6b8>
blend_area.y2 ++;
8f56: aa28 add r2, sp, #160 ; 0xa0
8f58: 88d3 ldrh r3, [r2, #6]
8f5a: 3301 adds r3, #1
8f5c: 80d3 strh r3, [r2, #6]
8f5e: 940f str r4, [sp, #60] ; 0x3c
for(y = 0; y < draw_area_h; y++) {
8f60: 9b10 ldr r3, [sp, #64] ; 0x40
8f62: 3301 adds r3, #1
8f64: 9310 str r3, [sp, #64] ; 0x40
8f66: 9a20 ldr r2, [sp, #128] ; 0x80
8f68: 4293 cmp r3, r2
8f6a: db00 blt.n 8f6e <lv_draw_map+0x5f6>
8f6c: e08f b.n 908e <lv_draw_map+0x716>
int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1;
8f6e: 9b19 ldr r3, [sp, #100] ; 0x64
8f70: 2210 movs r2, #16
8f72: 5e9b ldrsh r3, [r3, r2]
8f74: aa24 add r2, sp, #144 ; 0x90
8f76: 2160 movs r1, #96 ; 0x60
8f78: 1852 adds r2, r2, r1
8f7a: 2100 movs r1, #0
8f7c: 5e52 ldrsh r2, [r2, r1]
8f7e: 189b adds r3, r3, r2
8f80: 9a1c ldr r2, [sp, #112] ; 0x70
8f82: 2100 movs r1, #0
8f84: 5e52 ldrsh r2, [r2, r1]
8f86: 1a9b subs r3, r3, r2
8f88: 930d str r3, [sp, #52] ; 0x34
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
8f8a: 9a17 ldr r2, [sp, #92] ; 0x5c
8f8c: 4691 mov r9, r2
8f8e: 2a00 cmp r2, #0
8f90: dd14 ble.n 8fbc <lv_draw_map+0x644>
8f92: 9b18 ldr r3, [sp, #96] ; 0x60
8f94: 4698 mov r8, r3
8f96: 9a0f ldr r2, [sp, #60] ; 0x3c
8f98: 4694 mov ip, r2
8f9a: 44e0 add r8, ip
8f9c: 0053 lsls r3, r2, #1
8f9e: 9a1b ldr r2, [sp, #108] ; 0x6c
8fa0: 4692 mov sl, r2
8fa2: 449a add sl, r3
8fa4: 9f15 ldr r7, [sp, #84] ; 0x54
8fa6: 2600 movs r6, #0
int32_t yt = y - dsc->cfg.pivot_y;
8fa8: 9b21 ldr r3, [sp, #132] ; 0x84
8faa: 9a10 ldr r2, [sp, #64] ; 0x40
8fac: 4694 mov ip, r2
8fae: 4463 add r3, ip
8fb0: b21b sxth r3, r3
8fb2: 930e str r3, [sp, #56] ; 0x38
8fb4: 4644 mov r4, r8
8fb6: 4653 mov r3, sl
8fb8: 9305 str r3, [sp, #20]
8fba: e7a1 b.n 8f00 <lv_draw_map+0x588>
8fbc: 9c0f ldr r4, [sp, #60] ; 0x3c
8fbe: e7b3 b.n 8f28 <lv_draw_map+0x5b0>
mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, draw_area.x1 + vdb->area.x1, y + draw_area.y1 + vdb->area.y1,
8fc0: 9b0f ldr r3, [sp, #60] ; 0x3c
8fc2: 9a18 ldr r2, [sp, #96] ; 0x60
8fc4: 4694 mov ip, r2
8fc6: 4463 add r3, ip
8fc8: 001d movs r5, r3
8fca: ab24 add r3, sp, #144 ; 0x90
8fcc: 2260 movs r2, #96 ; 0x60
8fce: 189b adds r3, r3, r2
8fd0: 8819 ldrh r1, [r3, #0]
8fd2: ab24 add r3, sp, #144 ; 0x90
8fd4: 3204 adds r2, #4
8fd6: 189b adds r3, r3, r2
8fd8: 881b ldrh r3, [r3, #0]
8fda: 3301 adds r3, #1
8fdc: 1a5b subs r3, r3, r1
8fde: b21b sxth r3, r3
8fe0: aa24 add r2, sp, #144 ; 0x90
8fe2: 2062 movs r0, #98 ; 0x62
8fe4: 1812 adds r2, r2, r0
8fe6: 8812 ldrh r2, [r2, #0]
8fe8: 9e19 ldr r6, [sp, #100] ; 0x64
8fea: 8a70 ldrh r0, [r6, #18]
8fec: 1812 adds r2, r2, r0
8fee: 9810 ldr r0, [sp, #64] ; 0x40
8ff0: 4684 mov ip, r0
8ff2: 4462 add r2, ip
8ff4: b212 sxth r2, r2
8ff6: 8a30 ldrh r0, [r6, #16]
8ff8: 1809 adds r1, r1, r0
8ffa: b209 sxth r1, r1
8ffc: 0028 movs r0, r5
8ffe: 4e3a ldr r6, [pc, #232] ; (90e8 <lv_draw_map+0x770>)
9000: 47b0 blx r6
if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) {
9002: 2800 cmp r0, #0
9004: d003 beq.n 900e <lv_draw_map+0x696>
else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) {
9006: 2802 cmp r0, #2
9008: d191 bne.n 8f2e <lv_draw_map+0x5b6>
mask_res = LV_DRAW_MASK_RES_CHANGED;
900a: 901e str r0, [sp, #120] ; 0x78
900c: e78f b.n 8f2e <lv_draw_map+0x5b6>
900e: ab24 add r3, sp, #144 ; 0x90
9010: 2264 movs r2, #100 ; 0x64
9012: 189b adds r3, r3, r2
9014: 8819 ldrh r1, [r3, #0]
9016: 3101 adds r1, #1
9018: ab24 add r3, sp, #144 ; 0x90
901a: 3a04 subs r2, #4
901c: 189b adds r3, r3, r2
901e: 881b ldrh r3, [r3, #0]
9020: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area));
9022: b209 sxth r1, r1
9024: 0028 movs r0, r5
9026: 4b31 ldr r3, [pc, #196] ; (90ec <lv_draw_map+0x774>)
9028: 4798 blx r3
mask_res = LV_DRAW_MASK_RES_CHANGED;
902a: 2302 movs r3, #2
902c: 931e str r3, [sp, #120] ; 0x78
902e: e77e b.n 8f2e <lv_draw_map+0x5b6>
}
else {
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
9030: ac28 add r4, sp, #160 ; 0xa0
9032: 9e0a ldr r6, [sp, #40] ; 0x28
9034: 7bb3 ldrb r3, [r6, #14]
9036: 9302 str r3, [sp, #8]
9038: 7833 ldrb r3, [r6, #0]
903a: 9301 str r3, [sp, #4]
903c: 9b1e ldr r3, [sp, #120] ; 0x78
903e: 9300 str r3, [sp, #0]
9040: 9b18 ldr r3, [sp, #96] ; 0x60
9042: 9a1b ldr r2, [sp, #108] ; 0x6c
9044: 0021 movs r1, r4
9046: 9824 ldr r0, [sp, #144] ; 0x90
9048: 4d29 ldr r5, [pc, #164] ; (90f0 <lv_draw_map+0x778>)
904a: 47a8 blx r5
blend_area.y1 = blend_area.y2 + 1;
904c: 88e3 ldrh r3, [r4, #6]
904e: 3301 adds r3, #1
9050: b21b sxth r3, r3
9052: 8063 strh r3, [r4, #2]
blend_area.y2 = blend_area.y1;
9054: 80e3 strh r3, [r4, #6]
px_i = 0;
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
9056: 2302 movs r3, #2
9058: 931e str r3, [sp, #120] ; 0x78
905a: 9b27 ldr r3, [sp, #156] ; 0x9c
905c: 2b00 cmp r3, #0
905e: d109 bne.n 9074 <lv_draw_map+0x6fc>
9060: 8873 ldrh r3, [r6, #2]
9062: 2b00 cmp r3, #0
9064: d106 bne.n 9074 <lv_draw_map+0x6fc>
9066: 8933 ldrh r3, [r6, #8]
9068: 3b01 subs r3, #1
906a: 3bff subs r3, #255 ; 0xff
906c: 1e5a subs r2, r3, #1
906e: 4193 sbcs r3, r2
9070: 3301 adds r3, #1
9072: 931e str r3, [sp, #120] ; 0x78
px_i = 0;
9074: 2300 movs r3, #0
9076: 930f str r3, [sp, #60] ; 0x3c
draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
/*Prepare the `mask_buf`if there are other masks*/
if(other_mask_cnt) {
9078: 9b1a ldr r3, [sp, #104] ; 0x68
907a: 2b00 cmp r3, #0
907c: d100 bne.n 9080 <lv_draw_map+0x708>
907e: e76f b.n 8f60 <lv_draw_map+0x5e8>
_lv_memset_ff(mask_buf, mask_buf_size);
9080: 991d ldr r1, [sp, #116] ; 0x74
9082: 9818 ldr r0, [sp, #96] ; 0x60
9084: 4b1b ldr r3, [pc, #108] ; (90f4 <lv_draw_map+0x77c>)
9086: 4798 blx r3
px_i = 0;
9088: 2300 movs r3, #0
908a: 930f str r3, [sp, #60] ; 0x3c
908c: e768 b.n 8f60 <lv_draw_map+0x5e8>
}
}
}
/*Flush the last part*/
if(blend_area.y1 != blend_area.y2) {
908e: aa28 add r2, sp, #160 ; 0xa0
9090: 2106 movs r1, #6
9092: 5e53 ldrsh r3, [r2, r1]
9094: 2102 movs r1, #2
9096: 5e52 ldrsh r2, [r2, r1]
9098: 429a cmp r2, r3
909a: d00e beq.n 90ba <lv_draw_map+0x742>
blend_area.y2--;
909c: a928 add r1, sp, #160 ; 0xa0
909e: 3b01 subs r3, #1
90a0: 80cb strh r3, [r1, #6]
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
90a2: 9a0a ldr r2, [sp, #40] ; 0x28
90a4: 7b93 ldrb r3, [r2, #14]
90a6: 9302 str r3, [sp, #8]
90a8: 7813 ldrb r3, [r2, #0]
90aa: 9301 str r3, [sp, #4]
90ac: 9b1e ldr r3, [sp, #120] ; 0x78
90ae: 9300 str r3, [sp, #0]
90b0: 9b18 ldr r3, [sp, #96] ; 0x60
90b2: 9a1b ldr r2, [sp, #108] ; 0x6c
90b4: 9824 ldr r0, [sp, #144] ; 0x90
90b6: 4c0e ldr r4, [pc, #56] ; (90f0 <lv_draw_map+0x778>)
90b8: 47a0 blx r4
}
_lv_mem_buf_release(mask_buf);
90ba: 9818 ldr r0, [sp, #96] ; 0x60
90bc: 4c0e ldr r4, [pc, #56] ; (90f8 <lv_draw_map+0x780>)
90be: 47a0 blx r4
_lv_mem_buf_release(map2);
90c0: 981b ldr r0, [sp, #108] ; 0x6c
90c2: 47a0 blx r4
}
}
}
90c4: b03f add sp, #252 ; 0xfc
90c6: bc3c pop {r2, r3, r4, r5}
90c8: 4690 mov r8, r2
90ca: 4699 mov r9, r3
90cc: 46a2 mov sl, r4
90ce: 46ab mov fp, r5
90d0: bdf0 pop {r4, r5, r6, r7, pc}
90d2: 46c0 nop ; (mov r8, r8)
90d4: 0000e5d5 .word 0x0000e5d5
90d8: 0000e6f5 .word 0x0000e6f5
90dc: 0000eafd .word 0x0000eafd
90e0: 00026072 .word 0x00026072
90e4: fffff81f .word 0xfffff81f
90e8: 0000bad1 .word 0x0000bad1
90ec: 00012975 .word 0x00012975
90f0: 00007cf1 .word 0x00007cf1
90f4: 00012a19 .word 0x00012a19
90f8: 00012465 .word 0x00012465
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
90fc: 2301 movs r3, #1
90fe: 469b mov fp, r3
9100: 9b1a ldr r3, [sp, #104] ; 0x68
9102: 2b00 cmp r3, #0
9104: d000 beq.n 9108 <lv_draw_map+0x790>
9106: e595 b.n 8c34 <lv_draw_map+0x2bc>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
9108: a83c add r0, sp, #240 ; 0xf0
910a: 4b41 ldr r3, [pc, #260] ; (9210 <lv_draw_map+0x898>)
910c: 4798 blx r3
910e: 23f0 movs r3, #240 ; 0xf0
9110: 005b lsls r3, r3, #1
9112: 4298 cmp r0, r3
9114: d800 bhi.n 9118 <lv_draw_map+0x7a0>
9116: e598 b.n 8c4a <lv_draw_map+0x2d2>
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
9118: 20f0 movs r0, #240 ; 0xf0
911a: 0080 lsls r0, r0, #2
911c: 4c3d ldr r4, [pc, #244] ; (9214 <lv_draw_map+0x89c>)
911e: 47a0 blx r4
9120: 901b str r0, [sp, #108] ; 0x6c
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
9122: 26f0 movs r6, #240 ; 0xf0
9124: 0076 lsls r6, r6, #1
9126: 0030 movs r0, r6
9128: 47a0 blx r4
912a: 9018 str r0, [sp, #96] ; 0x60
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
912c: 2148 movs r1, #72 ; 0x48
912e: a82a add r0, sp, #168 ; 0xa8
9130: 4b39 ldr r3, [pc, #228] ; (9218 <lv_draw_map+0x8a0>)
9132: 4798 blx r3
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
9134: 961d str r6, [sp, #116] ; 0x74
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
9136: 2205 movs r2, #5
9138: 9b07 ldr r3, [sp, #28]
913a: 2b00 cmp r3, #0
913c: d104 bne.n 9148 <lv_draw_map+0x7d0>
lv_img_cf_t cf = LV_IMG_CF_TRUE_COLOR;
913e: 3a01 subs r2, #1
else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED;
9140: 9b0b ldr r3, [sp, #44] ; 0x2c
9142: 2b00 cmp r3, #0
9144: d000 beq.n 9148 <lv_draw_map+0x7d0>
9146: 3202 adds r2, #2
trans_dsc.cfg.angle = draw_dsc->angle;
9148: a82a add r0, sp, #168 ; 0xa8
914a: 9c0a ldr r4, [sp, #40] ; 0x28
914c: 8863 ldrh r3, [r4, #2]
914e: 8183 strh r3, [r0, #12]
trans_dsc.cfg.zoom = draw_dsc->zoom;
9150: 8923 ldrh r3, [r4, #8]
9152: 81c3 strh r3, [r0, #14]
trans_dsc.cfg.src = map_p;
9154: 4643 mov r3, r8
9156: 932a str r3, [sp, #168] ; 0xa8
trans_dsc.cfg.src_w = map_w;
9158: 8087 strh r7, [r0, #4]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
915a: 991c ldr r1, [sp, #112] ; 0x70
915c: 88cb ldrh r3, [r1, #6]
915e: 3301 adds r3, #1
9160: 8849 ldrh r1, [r1, #2]
9162: 1a5b subs r3, r3, r1
trans_dsc.cfg.src_h = lv_area_get_height(map_area);;
9164: 80c3 strh r3, [r0, #6]
trans_dsc.cfg.cf = cf;
9166: 7482 strb r2, [r0, #18]
trans_dsc.cfg.pivot_x = draw_dsc->pivot.x;
9168: 88a3 ldrh r3, [r4, #4]
916a: 8103 strh r3, [r0, #8]
trans_dsc.cfg.pivot_y = draw_dsc->pivot.y;
916c: 88e3 ldrh r3, [r4, #6]
916e: 8143 strh r3, [r0, #10]
trans_dsc.cfg.color = draw_dsc->recolor;
9170: 89a3 ldrh r3, [r4, #12]
9172: 8203 strh r3, [r0, #16]
trans_dsc.cfg.antialias = draw_dsc->antialias;
9174: 7be3 ldrb r3, [r4, #15]
9176: 07db lsls r3, r3, #31
9178: 0fdb lsrs r3, r3, #31
917a: 74c3 strb r3, [r0, #19]
_lv_img_buf_transform_init(&trans_dsc);
917c: 4b27 ldr r3, [pc, #156] ; (921c <lv_draw_map+0x8a4>)
917e: 4798 blx r3
lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa;
9180: 990a ldr r1, [sp, #40] ; 0x28
9182: 7a8b ldrb r3, [r1, #10]
9184: 43da mvns r2, r3
9186: b2d2 uxtb r2, r2
9188: 9213 str r2, [sp, #76] ; 0x4c
if(draw_dsc->recolor_opa != 0) {
918a: 2b00 cmp r3, #0
918c: d100 bne.n 9190 <lv_draw_map+0x818>
918e: e571 b.n 8c74 <lv_draw_map+0x2fc>
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
9190: b29b uxth r3, r3
9192: 7b4a ldrb r2, [r1, #13]
9194: 08d2 lsrs r2, r2, #3
9196: 435a muls r2, r3
9198: 9211 str r2, [sp, #68] ; 0x44
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
919a: 898a ldrh r2, [r1, #12]
919c: 0552 lsls r2, r2, #21
919e: 0e92 lsrs r2, r2, #26
91a0: 435a muls r2, r3
91a2: 9212 str r2, [sp, #72] ; 0x48
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
91a4: 7b0a ldrb r2, [r1, #12]
91a6: 06d2 lsls r2, r2, #27
91a8: 0ed2 lsrs r2, r2, #27
91aa: 435a muls r2, r3
91ac: 9214 str r2, [sp, #80] ; 0x50
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
91ae: 9b0b ldr r3, [sp, #44] ; 0x2c
91b0: 9a07 ldr r2, [sp, #28]
91b2: 4313 orrs r3, r2
91b4: 9327 str r3, [sp, #156] ; 0x9c
91b6: 2202 movs r2, #2
91b8: 921e str r2, [sp, #120] ; 0x78
91ba: 2b00 cmp r3, #0
91bc: d10a bne.n 91d4 <lv_draw_map+0x85c>
91be: 9a0a ldr r2, [sp, #40] ; 0x28
91c0: 8853 ldrh r3, [r2, #2]
91c2: 2b00 cmp r3, #0
91c4: d106 bne.n 91d4 <lv_draw_map+0x85c>
91c6: 8913 ldrh r3, [r2, #8]
91c8: 3b01 subs r3, #1
91ca: 3bff subs r3, #255 ; 0xff
91cc: 1e5a subs r2, r3, #1
91ce: 4193 sbcs r3, r2
91d0: 3301 adds r3, #1
91d2: 931e str r3, [sp, #120] ; 0x78
if(other_mask_cnt) {
91d4: 9b1a ldr r3, [sp, #104] ; 0x68
91d6: 2b00 cmp r3, #0
91d8: d000 beq.n 91dc <lv_draw_map+0x864>
91da: e550 b.n 8c7e <lv_draw_map+0x306>
int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1;
91dc: 9b19 ldr r3, [sp, #100] ; 0x64
91de: 2212 movs r2, #18
91e0: 5e9b ldrsh r3, [r3, r2]
91e2: aa3c add r2, sp, #240 ; 0xf0
91e4: 2102 movs r1, #2
91e6: 5e52 ldrsh r2, [r2, r1]
91e8: 189b adds r3, r3, r2
91ea: 9a1c ldr r2, [sp, #112] ; 0x70
91ec: 2102 movs r1, #2
91ee: 5e52 ldrsh r2, [r2, r1]
91f0: 1a9b subs r3, r3, r2
91f2: 9321 str r3, [sp, #132] ; 0x84
for(y = 0; y < draw_area_h; y++) {
91f4: 9520 str r5, [sp, #128] ; 0x80
91f6: 2d00 cmp r5, #0
91f8: dc00 bgt.n 91fc <lv_draw_map+0x884>
91fa: e748 b.n 908e <lv_draw_map+0x716>
map_buf_tmp += map_w * px_size_byte;
91fc: 4653 mov r3, sl
91fe: 437b muls r3, r7
9200: 931f str r3, [sp, #124] ; 0x7c
9202: 2300 movs r3, #0
9204: 9310 str r3, [sp, #64] ; 0x40
9206: 930f str r3, [sp, #60] ; 0x3c
ret = _lv_img_buf_transform_anti_alias(dsc);
9208: 464b mov r3, r9
920a: 9306 str r3, [sp, #24]
920c: e6af b.n 8f6e <lv_draw_map+0x5f6>
920e: 46c0 nop ; (mov r8, r8)
9210: 000113ef .word 0x000113ef
9214: 000127a1 .word 0x000127a1
9218: 00012975 .word 0x00012975
921c: 0000e7f9 .word 0x0000e7f9
00009220 <show_error>:
static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg)
{
9220: b5f0 push {r4, r5, r6, r7, lr}
9222: b09f sub sp, #124 ; 0x7c
9224: 0005 movs r5, r0
9226: 000e movs r6, r1
9228: 0017 movs r7, r2
lv_draw_rect_dsc_t rect_dsc;
lv_draw_rect_dsc_init(&rect_dsc);
922a: ac09 add r4, sp, #36 ; 0x24
922c: 0020 movs r0, r4
922e: 4b0b ldr r3, [pc, #44] ; (925c <show_error+0x3c>)
9230: 4798 blx r3
rect_dsc.bg_color = LV_COLOR_WHITE;
9232: 4b0b ldr r3, [pc, #44] ; (9260 <show_error+0x40>)
9234: 881b ldrh r3, [r3, #0]
9236: 8063 strh r3, [r4, #2]
lv_draw_rect(coords, clip_area, &rect_dsc);
9238: 0022 movs r2, r4
923a: 0031 movs r1, r6
923c: 0028 movs r0, r5
923e: 4b09 ldr r3, [pc, #36] ; (9264 <show_error+0x44>)
9240: 4798 blx r3
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
9242: a802 add r0, sp, #8
9244: 4b08 ldr r3, [pc, #32] ; (9268 <show_error+0x48>)
9246: 4798 blx r3
lv_draw_label(coords, clip_area, &label_dsc, msg, NULL);
9248: 2300 movs r3, #0
924a: 9300 str r3, [sp, #0]
924c: 003b movs r3, r7
924e: aa02 add r2, sp, #8
9250: 0031 movs r1, r6
9252: 0028 movs r0, r5
9254: 4c05 ldr r4, [pc, #20] ; (926c <show_error+0x4c>)
9256: 47a0 blx r4
}
9258: b01f add sp, #124 ; 0x7c
925a: bdf0 pop {r4, r5, r6, r7, pc}
925c: 0000bfcd .word 0x0000bfcd
9260: 000260a0 .word 0x000260a0
9264: 0000c071 .word 0x0000c071
9268: 000095ed .word 0x000095ed
926c: 0000963d .word 0x0000963d
00009270 <lv_draw_img_dsc_init>:
{
9270: b510 push {r4, lr}
9272: 0004 movs r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
9274: 2110 movs r1, #16
9276: 4b0a ldr r3, [pc, #40] ; (92a0 <lv_draw_img_dsc_init+0x30>)
9278: 4798 blx r3
dsc->recolor = LV_COLOR_BLACK;
927a: 7b23 ldrb r3, [r4, #12]
927c: 221f movs r2, #31
927e: 4393 bics r3, r2
9280: 7323 strb r3, [r4, #12]
9282: 89a3 ldrh r3, [r4, #12]
9284: 4a07 ldr r2, [pc, #28] ; (92a4 <lv_draw_img_dsc_init+0x34>)
9286: 4013 ands r3, r2
9288: 81a3 strh r3, [r4, #12]
928a: 2300 movs r3, #0
928c: 7363 strb r3, [r4, #13]
dsc->opa = LV_OPA_COVER;
928e: 33ff adds r3, #255 ; 0xff
9290: 7023 strb r3, [r4, #0]
dsc->zoom = LV_IMG_ZOOM_NONE;
9292: 3301 adds r3, #1
9294: 8123 strh r3, [r4, #8]
dsc->antialias = LV_ANTIALIAS;
9296: 7be3 ldrb r3, [r4, #15]
9298: 2201 movs r2, #1
929a: 4313 orrs r3, r2
929c: 73e3 strb r3, [r4, #15]
}
929e: bd10 pop {r4, pc}
92a0: 00012975 .word 0x00012975
92a4: fffff81f .word 0xfffff81f
000092a8 <lv_img_cf_get_px_size>:
switch(cf) {
92a8: 3804 subs r0, #4
92aa: b2c3 uxtb r3, r0
92ac: 2b0a cmp r3, #10
92ae: d80f bhi.n 92d0 <lv_img_cf_get_px_size+0x28>
92b0: 0098 lsls r0, r3, #2
92b2: 4b08 ldr r3, [pc, #32] ; (92d4 <lv_img_cf_get_px_size+0x2c>)
92b4: 581b ldr r3, [r3, r0]
92b6: 469f mov pc, r3
px_size = LV_COLOR_SIZE;
92b8: 2010 movs r0, #16
92ba: e00a b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE << 3;
92bc: 2018 movs r0, #24
break;
92be: e008 b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = 1;
92c0: 2001 movs r0, #1
break;
92c2: e006 b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = 2;
92c4: 2002 movs r0, #2
break;
92c6: e004 b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = 4;
92c8: 2004 movs r0, #4
break;
92ca: e002 b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = 8;
92cc: 2008 movs r0, #8
break;
92ce: e000 b.n 92d2 <lv_img_cf_get_px_size+0x2a>
px_size = 0;
92d0: 2000 movs r0, #0
}
92d2: 4770 bx lr
92d4: 00026074 .word 0x00026074
000092d8 <lv_img_cf_is_chroma_keyed>:
switch(cf) {
92d8: 2803 cmp r0, #3
92da: d005 beq.n 92e8 <lv_img_cf_is_chroma_keyed+0x10>
92dc: d302 bcc.n 92e4 <lv_img_cf_is_chroma_keyed+0xc>
92de: 3806 subs r0, #6
92e0: 2804 cmp r0, #4
92e2: d901 bls.n 92e8 <lv_img_cf_is_chroma_keyed+0x10>
is_chroma_keyed = false;
92e4: 2000 movs r0, #0
}
92e6: 4770 bx lr
is_chroma_keyed = true;
92e8: 2001 movs r0, #1
92ea: e7fc b.n 92e6 <lv_img_cf_is_chroma_keyed+0xe>
000092ec <lv_img_cf_has_alpha>:
switch(cf) {
92ec: 2805 cmp r0, #5
92ee: d007 beq.n 9300 <lv_img_cf_has_alpha+0x14>
92f0: d803 bhi.n 92fa <lv_img_cf_has_alpha+0xe>
92f2: 2802 cmp r0, #2
92f4: d004 beq.n 9300 <lv_img_cf_has_alpha+0x14>
has_alpha = false;
92f6: 2000 movs r0, #0
}
92f8: 4770 bx lr
switch(cf) {
92fa: 3807 subs r0, #7
92fc: 2807 cmp r0, #7
92fe: d8fa bhi.n 92f6 <lv_img_cf_has_alpha+0xa>
has_alpha = true;
9300: 2001 movs r0, #1
9302: e7f9 b.n 92f8 <lv_img_cf_has_alpha+0xc>
00009304 <lv_draw_img>:
{
9304: b5f0 push {r4, r5, r6, r7, lr}
9306: 46de mov lr, fp
9308: 4657 mov r7, sl
930a: 464e mov r6, r9
930c: 4645 mov r5, r8
930e: b5e0 push {r5, r6, r7, lr}
9310: b091 sub sp, #68 ; 0x44
9312: 0004 movs r4, r0
9314: 9103 str r1, [sp, #12]
9316: 001e movs r6, r3
if(src == NULL) {
9318: 2a00 cmp r2, #0
931a: d009 beq.n 9330 <lv_draw_img+0x2c>
if(dsc->opa <= LV_OPA_MIN) return;
931c: 781b ldrb r3, [r3, #0]
931e: 2b05 cmp r3, #5
9320: d814 bhi.n 934c <lv_draw_img+0x48>
}
9322: b011 add sp, #68 ; 0x44
9324: bc3c pop {r2, r3, r4, r5}
9326: 4690 mov r8, r2
9328: 4699 mov r9, r3
932a: 46a2 mov sl, r4
932c: 46ab mov fp, r5
932e: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_WARN("Image draw: src is NULL");
9330: 4b81 ldr r3, [pc, #516] ; (9538 <lv_draw_img+0x234>)
9332: 9300 str r3, [sp, #0]
9334: 4b81 ldr r3, [pc, #516] ; (953c <lv_draw_img+0x238>)
9336: 324d adds r2, #77 ; 0x4d
9338: 4981 ldr r1, [pc, #516] ; (9540 <lv_draw_img+0x23c>)
933a: 2002 movs r0, #2
933c: 4d81 ldr r5, [pc, #516] ; (9544 <lv_draw_img+0x240>)
933e: 47a8 blx r5
show_error(coords, mask, "No\ndata");
9340: 4a81 ldr r2, [pc, #516] ; (9548 <lv_draw_img+0x244>)
9342: 9903 ldr r1, [sp, #12]
9344: 0020 movs r0, r4
9346: 4b81 ldr r3, [pc, #516] ; (954c <lv_draw_img+0x248>)
9348: 4798 blx r3
return;
934a: e7ea b.n 9322 <lv_draw_img+0x1e>
lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor);
934c: 89b1 ldrh r1, [r6, #12]
934e: 0010 movs r0, r2
9350: 4b7f ldr r3, [pc, #508] ; (9550 <lv_draw_img+0x24c>)
9352: 4798 blx r3
9354: 1e07 subs r7, r0, #0
if(cdsc == NULL) return LV_RES_INV;
9356: d100 bne.n 935a <lv_draw_img+0x56>
9358: e0b0 b.n 94bc <lv_draw_img+0x1b8>
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
935a: 7b05 ldrb r5, [r0, #12]
935c: 06ed lsls r5, r5, #27
935e: 0eed lsrs r5, r5, #27
9360: 0028 movs r0, r5
9362: 4b7c ldr r3, [pc, #496] ; (9554 <lv_draw_img+0x250>)
9364: 4798 blx r3
9366: 9004 str r0, [sp, #16]
9368: 9006 str r0, [sp, #24]
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
936a: 0028 movs r0, r5
936c: 4b7a ldr r3, [pc, #488] ; (9558 <lv_draw_img+0x254>)
936e: 4798 blx r3
9370: 9005 str r0, [sp, #20]
9372: 9007 str r0, [sp, #28]
if(cdsc->dec_dsc.error_msg != NULL) {
9374: 69bb ldr r3, [r7, #24]
9376: 2b00 cmp r3, #0
9378: d00d beq.n 9396 <lv_draw_img+0x92>
LV_LOG_WARN("Image draw error");
937a: 4b78 ldr r3, [pc, #480] ; (955c <lv_draw_img+0x258>)
937c: 9300 str r3, [sp, #0]
937e: 4b78 ldr r3, [pc, #480] ; (9560 <lv_draw_img+0x25c>)
9380: 22f7 movs r2, #247 ; 0xf7
9382: 496f ldr r1, [pc, #444] ; (9540 <lv_draw_img+0x23c>)
9384: 2002 movs r0, #2
9386: 4d6f ldr r5, [pc, #444] ; (9544 <lv_draw_img+0x240>)
9388: 47a8 blx r5
show_error(coords, clip_area, cdsc->dec_dsc.error_msg);
938a: 69ba ldr r2, [r7, #24]
938c: 9903 ldr r1, [sp, #12]
938e: 0020 movs r0, r4
9390: 4b6e ldr r3, [pc, #440] ; (954c <lv_draw_img+0x248>)
9392: 4798 blx r3
9394: e7c5 b.n 9322 <lv_draw_img+0x1e>
else if(cdsc->dec_dsc.img_data) {
9396: 693b ldr r3, [r7, #16]
9398: 2b00 cmp r3, #0
939a: d045 beq.n 9428 <lv_draw_img+0x124>
939c: 2300 movs r3, #0
939e: a90c add r1, sp, #48 ; 0x30
93a0: 5ce2 ldrb r2, [r4, r3]
93a2: 545a strb r2, [r3, r1]
93a4: 3301 adds r3, #1
while(len) {
93a6: 2b08 cmp r3, #8
93a8: d1fa bne.n 93a0 <lv_draw_img+0x9c>
if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) {
93aa: 8873 ldrh r3, [r6, #2]
93ac: 2b00 cmp r3, #0
93ae: d104 bne.n 93ba <lv_draw_img+0xb6>
93b0: 2280 movs r2, #128 ; 0x80
93b2: 0052 lsls r2, r2, #1
93b4: 8931 ldrh r1, [r6, #8]
93b6: 4291 cmp r1, r2
93b8: d023 beq.n 9402 <lv_draw_img+0xfe>
_lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot);
93ba: b21b sxth r3, r3
93bc: 88e2 ldrh r2, [r4, #6]
93be: 3201 adds r2, #1
93c0: 8861 ldrh r1, [r4, #2]
93c2: 1a52 subs r2, r2, r1
93c4: b212 sxth r2, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
93c6: 88a1 ldrh r1, [r4, #4]
93c8: 3101 adds r1, #1
93ca: 8820 ldrh r0, [r4, #0]
93cc: 1a09 subs r1, r1, r0
93ce: b209 sxth r1, r1
93d0: a80c add r0, sp, #48 ; 0x30
93d2: 0005 movs r5, r0
93d4: 1d30 adds r0, r6, #4
93d6: 9001 str r0, [sp, #4]
93d8: 8930 ldrh r0, [r6, #8]
93da: 9000 str r0, [sp, #0]
93dc: 9506 str r5, [sp, #24]
93de: 0028 movs r0, r5
93e0: 4d60 ldr r5, [pc, #384] ; (9564 <lv_draw_img+0x260>)
93e2: 47a8 blx r5
map_area_rot.x1 += coords->x1;
93e4: 8822 ldrh r2, [r4, #0]
93e6: 9806 ldr r0, [sp, #24]
93e8: 8803 ldrh r3, [r0, #0]
93ea: 18d3 adds r3, r2, r3
93ec: 8003 strh r3, [r0, #0]
map_area_rot.y1 += coords->y1;
93ee: 8863 ldrh r3, [r4, #2]
93f0: 8841 ldrh r1, [r0, #2]
93f2: 1859 adds r1, r3, r1
93f4: 8041 strh r1, [r0, #2]
map_area_rot.x2 += coords->x1;
93f6: 8881 ldrh r1, [r0, #4]
93f8: 1852 adds r2, r2, r1
93fa: 8082 strh r2, [r0, #4]
map_area_rot.y2 += coords->y1;
93fc: 88c2 ldrh r2, [r0, #6]
93fe: 189b adds r3, r3, r2
9400: 80c3 strh r3, [r0, #6]
union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot);
9402: aa0c add r2, sp, #48 ; 0x30
9404: 9903 ldr r1, [sp, #12]
9406: a80e add r0, sp, #56 ; 0x38
9408: 4b57 ldr r3, [pc, #348] ; (9568 <lv_draw_img+0x264>)
940a: 4798 blx r3
if(union_ok == false) {
940c: 2800 cmp r0, #0
940e: d100 bne.n 9412 <lv_draw_img+0x10e>
9410: e787 b.n 9322 <lv_draw_img+0x1e>
lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte);
9412: 693a ldr r2, [r7, #16]
9414: 9b05 ldr r3, [sp, #20]
9416: 9301 str r3, [sp, #4]
9418: 9b04 ldr r3, [sp, #16]
941a: 9300 str r3, [sp, #0]
941c: 0033 movs r3, r6
941e: a90e add r1, sp, #56 ; 0x38
9420: 0020 movs r0, r4
9422: 4c52 ldr r4, [pc, #328] ; (956c <lv_draw_img+0x268>)
9424: 47a0 blx r4
9426: e77c b.n 9322 <lv_draw_img+0x1e>
union_ok = _lv_area_intersect(&mask_com, clip_area, coords);
9428: 0022 movs r2, r4
942a: 9903 ldr r1, [sp, #12]
942c: a80a add r0, sp, #40 ; 0x28
942e: 4b4e ldr r3, [pc, #312] ; (9568 <lv_draw_img+0x264>)
9430: 4798 blx r3
if(union_ok == false) {
9432: 2800 cmp r0, #0
9434: d100 bne.n 9438 <lv_draw_img+0x134>
9436: e774 b.n 9322 <lv_draw_img+0x1e>
9438: aa0a add r2, sp, #40 ; 0x28
943a: 8893 ldrh r3, [r2, #4]
943c: 3301 adds r3, #1
943e: 8812 ldrh r2, [r2, #0]
9440: 1a9b subs r3, r3, r2
9442: b21b sxth r3, r3
9444: 9305 str r3, [sp, #20]
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
9446: 0058 lsls r0, r3, #1
9448: 469c mov ip, r3
944a: 4460 add r0, ip
944c: 4b48 ldr r3, [pc, #288] ; (9570 <lv_draw_img+0x26c>)
944e: 4798 blx r3
9450: 9004 str r0, [sp, #16]
9452: 2300 movs r3, #0
*d8 = *s8;
9454: a80c add r0, sp, #48 ; 0x30
9456: a90a add r1, sp, #40 ; 0x28
9458: 5c5a ldrb r2, [r3, r1]
945a: 541a strb r2, [r3, r0]
945c: 3301 adds r3, #1
while(len) {
945e: 2b08 cmp r3, #8
9460: d1fa bne.n 9458 <lv_draw_img+0x154>
lv_area_set_height(&line, 1);
9462: 2101 movs r1, #1
9464: a80c add r0, sp, #48 ; 0x30
9466: 4b43 ldr r3, [pc, #268] ; (9574 <lv_draw_img+0x270>)
9468: 4798 blx r3
int32_t x = mask_com.x1 - coords->x1;
946a: aa0a add r2, sp, #40 ; 0x28
946c: 2100 movs r1, #0
946e: 5e53 ldrsh r3, [r2, r1]
9470: 469c mov ip, r3
9472: 2000 movs r0, #0
9474: 5e21 ldrsh r1, [r4, r0]
int32_t y = mask_com.y1 - coords->y1;
9476: 2002 movs r0, #2
9478: 5e15 ldrsh r5, [r2, r0]
947a: 2302 movs r3, #2
947c: 5ee0 ldrsh r0, [r4, r3]
947e: 1a28 subs r0, r5, r0
for(row = mask_com.y1; row <= mask_com.y2; row++) {
9480: 2306 movs r3, #6
9482: 5ed2 ldrsh r2, [r2, r3]
9484: 4295 cmp r5, r2
9486: dc53 bgt.n 9530 <lv_draw_img+0x22c>
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
9488: 4a37 ldr r2, [pc, #220] ; (9568 <lv_draw_img+0x264>)
948a: 4693 mov fp, r2
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
948c: 4663 mov r3, ip
948e: 1a5b subs r3, r3, r1
9490: b21b sxth r3, r3
9492: 9308 str r3, [sp, #32]
9494: 9409 str r4, [sp, #36] ; 0x24
9496: 46b2 mov sl, r6
9498: 4680 mov r8, r0
949a: e023 b.n 94e4 <lv_draw_img+0x1e0>
949c: 9c09 ldr r4, [sp, #36] ; 0x24
lv_img_decoder_close(&cdsc->dec_dsc);
949e: 0038 movs r0, r7
94a0: 4b35 ldr r3, [pc, #212] ; (9578 <lv_draw_img+0x274>)
94a2: 4798 blx r3
LV_LOG_WARN("Image draw can't read the line");
94a4: 4b35 ldr r3, [pc, #212] ; (957c <lv_draw_img+0x278>)
94a6: 9300 str r3, [sp, #0]
94a8: 4b2d ldr r3, [pc, #180] ; (9560 <lv_draw_img+0x25c>)
94aa: 229a movs r2, #154 ; 0x9a
94ac: 0052 lsls r2, r2, #1
94ae: 4924 ldr r1, [pc, #144] ; (9540 <lv_draw_img+0x23c>)
94b0: 2002 movs r0, #2
94b2: 4d24 ldr r5, [pc, #144] ; (9544 <lv_draw_img+0x240>)
94b4: 47a8 blx r5
_lv_mem_buf_release(buf);
94b6: 9804 ldr r0, [sp, #16]
94b8: 4b31 ldr r3, [pc, #196] ; (9580 <lv_draw_img+0x27c>)
94ba: 4798 blx r3
LV_LOG_WARN("Image draw error");
94bc: 4b27 ldr r3, [pc, #156] ; (955c <lv_draw_img+0x258>)
94be: 9300 str r3, [sp, #0]
94c0: 4b1e ldr r3, [pc, #120] ; (953c <lv_draw_img+0x238>)
94c2: 2258 movs r2, #88 ; 0x58
94c4: 491e ldr r1, [pc, #120] ; (9540 <lv_draw_img+0x23c>)
94c6: 2002 movs r0, #2
94c8: 4d1e ldr r5, [pc, #120] ; (9544 <lv_draw_img+0x240>)
94ca: 47a8 blx r5
show_error(coords, mask, "No\ndata");
94cc: 4a1e ldr r2, [pc, #120] ; (9548 <lv_draw_img+0x244>)
94ce: 9903 ldr r1, [sp, #12]
94d0: 0020 movs r0, r4
94d2: 4b1e ldr r3, [pc, #120] ; (954c <lv_draw_img+0x248>)
94d4: 4798 blx r3
return;
94d6: e724 b.n 9322 <lv_draw_img+0x1e>
for(row = mask_com.y1; row <= mask_com.y2; row++) {
94d8: 3501 adds r5, #1
94da: ab0a add r3, sp, #40 ; 0x28
94dc: 2206 movs r2, #6
94de: 5e9b ldrsh r3, [r3, r2]
94e0: 429d cmp r5, r3
94e2: dc25 bgt.n 9530 <lv_draw_img+0x22c>
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
94e4: aa0c add r2, sp, #48 ; 0x30
94e6: 9903 ldr r1, [sp, #12]
94e8: a80e add r0, sp, #56 ; 0x38
94ea: 47d8 blx fp
if(union_ok == false) continue;
94ec: 2800 cmp r0, #0
94ee: d0f3 beq.n 94d8 <lv_draw_img+0x1d4>
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
94f0: 4643 mov r3, r8
94f2: b21a sxth r2, r3
94f4: 9b04 ldr r3, [sp, #16]
94f6: 9300 str r3, [sp, #0]
94f8: 9b05 ldr r3, [sp, #20]
94fa: 9908 ldr r1, [sp, #32]
94fc: 0038 movs r0, r7
94fe: 4c21 ldr r4, [pc, #132] ; (9584 <lv_draw_img+0x280>)
9500: 47a0 blx r4
if(read_res != LV_RES_OK) {
9502: 2801 cmp r0, #1
9504: d1ca bne.n 949c <lv_draw_img+0x198>
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
9506: ac0c add r4, sp, #48 ; 0x30
9508: 9b07 ldr r3, [sp, #28]
950a: 9301 str r3, [sp, #4]
950c: 9b06 ldr r3, [sp, #24]
950e: 9300 str r3, [sp, #0]
9510: 4653 mov r3, sl
9512: 9a04 ldr r2, [sp, #16]
9514: a90e add r1, sp, #56 ; 0x38
9516: 0020 movs r0, r4
9518: 4e14 ldr r6, [pc, #80] ; (956c <lv_draw_img+0x268>)
951a: 47b0 blx r6
line.y1++;
951c: 8863 ldrh r3, [r4, #2]
951e: 3301 adds r3, #1
9520: 8063 strh r3, [r4, #2]
line.y2++;
9522: 88e3 ldrh r3, [r4, #6]
9524: 3301 adds r3, #1
9526: 80e3 strh r3, [r4, #6]
y++;
9528: 2301 movs r3, #1
952a: 469c mov ip, r3
952c: 44e0 add r8, ip
952e: e7d3 b.n 94d8 <lv_draw_img+0x1d4>
_lv_mem_buf_release(buf);
9530: 9804 ldr r0, [sp, #16]
9532: 4b13 ldr r3, [pc, #76] ; (9580 <lv_draw_img+0x27c>)
9534: 4798 blx r3
9536: e6f4 b.n 9322 <lv_draw_img+0x1e>
9538: 000260fc .word 0x000260fc
953c: 000260a4 .word 0x000260a4
9540: 000260c4 .word 0x000260c4
9544: 00012159 .word 0x00012159
9548: 00026114 .word 0x00026114
954c: 00009221 .word 0x00009221
9550: 0000ef51 .word 0x0000ef51
9554: 000092d9 .word 0x000092d9
9558: 000092ed .word 0x000092ed
955c: 0002611c .word 0x0002611c
9560: 000260b0 .word 0x000260b0
9564: 0000e92d .word 0x0000e92d
9568: 0001140b .word 0x0001140b
956c: 00008979 .word 0x00008979
9570: 000127a1 .word 0x000127a1
9574: 000113e5 .word 0x000113e5
9578: 0000fd5d .word 0x0000fd5d
957c: 00026130 .word 0x00026130
9580: 00012465 .word 0x00012465
9584: 0000fd39 .word 0x0000fd39
00009588 <lv_img_src_get_type>:
if(src == NULL) return img_src_type;
9588: 2800 cmp r0, #0
958a: d008 beq.n 959e <lv_img_src_get_type+0x16>
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
958c: 7803 ldrb r3, [r0, #0]
958e: 001a movs r2, r3
9590: 3a20 subs r2, #32
img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/
9592: 2001 movs r0, #1
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
9594: 2a5f cmp r2, #95 ; 0x5f
9596: d901 bls.n 959c <lv_img_src_get_type+0x14>
img_src_type = LV_IMG_SRC_VARIABLE; /*`lv_img_dsc_t` is design to the first byte < 0x20*/
9598: 09d8 lsrs r0, r3, #7
959a: 0040 lsls r0, r0, #1
}
959c: 4770 bx lr
if(src == NULL) return img_src_type;
959e: 2003 movs r0, #3
95a0: e7fc b.n 959c <lv_img_src_get_type+0x14>
...
000095a4 <hex_char_to_num>:
*/
static uint8_t hex_char_to_num(char hex)
{
uint8_t result = 0;
if(hex >= '0' && hex <= '9') {
95a4: 0003 movs r3, r0
95a6: 3b30 subs r3, #48 ; 0x30
95a8: b2db uxtb r3, r3
result = hex - '0';
95aa: 001a movs r2, r3
if(hex >= '0' && hex <= '9') {
95ac: 2b09 cmp r3, #9
95ae: d918 bls.n 95e2 <hex_char_to_num+0x3e>
}
else {
if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/
95b0: 2860 cmp r0, #96 ; 0x60
95b2: d901 bls.n 95b8 <hex_char_to_num+0x14>
95b4: 3820 subs r0, #32
95b6: b2c0 uxtb r0, r0
switch(hex) {
95b8: 3841 subs r0, #65 ; 0x41
95ba: b2c3 uxtb r3, r0
95bc: 2b05 cmp r3, #5
95be: d80d bhi.n 95dc <hex_char_to_num+0x38>
95c0: 0098 lsls r0, r3, #2
95c2: 4b09 ldr r3, [pc, #36] ; (95e8 <hex_char_to_num+0x44>)
95c4: 581b ldr r3, [r3, r0]
95c6: 469f mov pc, r3
case 'A':
result = 10;
break;
case 'B':
result = 11;
95c8: 220b movs r2, #11
95ca: e00a b.n 95e2 <hex_char_to_num+0x3e>
break;
case 'C':
result = 12;
95cc: 220c movs r2, #12
break;
95ce: e008 b.n 95e2 <hex_char_to_num+0x3e>
case 'D':
result = 13;
95d0: 220d movs r2, #13
break;
95d2: e006 b.n 95e2 <hex_char_to_num+0x3e>
case 'E':
result = 14;
95d4: 220e movs r2, #14
break;
95d6: e004 b.n 95e2 <hex_char_to_num+0x3e>
case 'F':
result = 15;
95d8: 220f movs r2, #15
break;
95da: e002 b.n 95e2 <hex_char_to_num+0x3e>
default:
result = 0;
95dc: 2200 movs r2, #0
break;
95de: e000 b.n 95e2 <hex_char_to_num+0x3e>
result = 10;
95e0: 220a movs r2, #10
}
}
return result;
}
95e2: 0010 movs r0, r2
95e4: 4770 bx lr
95e6: 46c0 nop ; (mov r8, r8)
95e8: 00026150 .word 0x00026150
000095ec <lv_draw_label_dsc_init>:
{
95ec: b510 push {r4, lr}
95ee: 0004 movs r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
95f0: 211c movs r1, #28
95f2: 4b0f ldr r3, [pc, #60] ; (9630 <lv_draw_label_dsc_init+0x44>)
95f4: 4798 blx r3
dsc->opa = LV_OPA_COVER;
95f6: 23ff movs r3, #255 ; 0xff
95f8: 7223 strb r3, [r4, #8]
dsc->color = LV_COLOR_BLACK;
95fa: 7823 ldrb r3, [r4, #0]
95fc: 221f movs r2, #31
95fe: 4393 bics r3, r2
9600: 7023 strb r3, [r4, #0]
9602: 8822 ldrh r2, [r4, #0]
9604: 490b ldr r1, [pc, #44] ; (9634 <lv_draw_label_dsc_init+0x48>)
9606: 400a ands r2, r1
9608: 8022 strh r2, [r4, #0]
960a: 2300 movs r3, #0
960c: 7063 strb r3, [r4, #1]
dsc->font = LV_THEME_DEFAULT_FONT_NORMAL;
960e: 4b0a ldr r3, [pc, #40] ; (9638 <lv_draw_label_dsc_init+0x4c>)
9610: 6063 str r3, [r4, #4]
dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL;
9612: 2301 movs r3, #1
9614: 425b negs r3, r3
9616: 81e3 strh r3, [r4, #14]
dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL;
9618: 8223 strh r3, [r4, #16]
dsc->sel_color = LV_COLOR_BLUE;
961a: 78a2 ldrb r2, [r4, #2]
961c: 231f movs r3, #31
961e: 431a orrs r2, r3
9620: 70a2 strb r2, [r4, #2]
9622: 8863 ldrh r3, [r4, #2]
9624: 400b ands r3, r1
9626: 8063 strh r3, [r4, #2]
9628: 2300 movs r3, #0
962a: 70e3 strb r3, [r4, #3]
dsc->bidi_dir = LV_BIDI_DIR_LTR;
962c: 75a3 strb r3, [r4, #22]
}
962e: bd10 pop {r4, pc}
9630: 00012975 .word 0x00012975
9634: fffff81f .word 0xfffff81f
9638: 20000030 .word 0x20000030
0000963c <lv_draw_label>:
{
963c: b5f0 push {r4, r5, r6, r7, lr}
963e: 46de mov lr, fp
9640: 4657 mov r7, sl
9642: 464e mov r6, r9
9644: 4645 mov r5, r8
9646: b5e0 push {r5, r6, r7, lr}
9648: b0db sub sp, #364 ; 0x16c
964a: 9011 str r0, [sp, #68] ; 0x44
964c: 910f str r1, [sp, #60] ; 0x3c
964e: 0017 movs r7, r2
9650: 001a movs r2, r3
9652: 930e str r3, [sp, #56] ; 0x38
9654: 9b64 ldr r3, [sp, #400] ; 0x190
9656: 9307 str r3, [sp, #28]
if(dsc->opa <= LV_OPA_MIN) return;
9658: 7a3b ldrb r3, [r7, #8]
965a: 2b05 cmp r3, #5
965c: d902 bls.n 9664 <lv_draw_label+0x28>
if(txt[0] == '\0') return;
965e: 7813 ldrb r3, [r2, #0]
9660: 2b00 cmp r3, #0
9662: d106 bne.n 9672 <lv_draw_label+0x36>
}
9664: b05b add sp, #364 ; 0x16c
9666: bc3c pop {r2, r3, r4, r5}
9668: 4690 mov r8, r2
966a: 4699 mov r9, r3
966c: 46a2 mov sl, r4
966e: 46ab mov fp, r5
9670: bdf0 pop {r4, r5, r6, r7, pc}
const lv_font_t * font = dsc->font;
9672: 687b ldr r3, [r7, #4]
9674: 9305 str r3, [sp, #20]
bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask);
9676: 000a movs r2, r1
9678: 0004 movs r4, r0
967a: 0001 movs r1, r0
967c: a858 add r0, sp, #352 ; 0x160
967e: 4bcf ldr r3, [pc, #828] ; (99bc <lv_draw_label+0x380>)
9680: 4798 blx r3
if(!clip_ok) return;
9682: 2800 cmp r0, #0
9684: d0ee beq.n 9664 <lv_draw_label+0x28>
if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) {
9686: 7dfa ldrb r2, [r7, #23]
9688: 0791 lsls r1, r2, #30
968a: d424 bmi.n 96d6 <lv_draw_label+0x9a>
968c: 88a3 ldrh r3, [r4, #4]
968e: 3301 adds r3, #1
9690: 8822 ldrh r2, [r4, #0]
9692: 1a9b subs r3, r3, r2
w = lv_area_get_width(coords);
9694: b21b sxth r3, r3
int32_t line_height_font = lv_font_get_line_height(font);
9696: 9a05 ldr r2, [sp, #20]
9698: 2608 movs r6, #8
969a: 5f96 ldrsh r6, [r2, r6]
int32_t line_height = line_height_font + dsc->line_space;
969c: 210a movs r1, #10
969e: 5e7a ldrsh r2, [r7, r1]
96a0: 4691 mov r9, r2
96a2: 44b1 add r9, r6
pos.x = coords->x1;
96a4: 9a11 ldr r2, [sp, #68] ; 0x44
96a6: 2000 movs r0, #0
96a8: 5e11 ldrsh r1, [r2, r0]
96aa: 9124 str r1, [sp, #144] ; 0x90
pos.y = coords->y1;
96ac: 2002 movs r0, #2
96ae: 5e10 ldrsh r0, [r2, r0]
x_ofs = dsc->ofs_x;
96b0: 2112 movs r1, #18
96b2: 5e7a ldrsh r2, [r7, r1]
96b4: 9221 str r2, [sp, #132] ; 0x84
y_ofs = dsc->ofs_y;
96b6: 2214 movs r2, #20
96b8: 5eb9 ldrsh r1, [r7, r2]
pos.y += y_ofs;
96ba: 1842 adds r2, r0, r1
96bc: b292 uxth r2, r2
96be: b215 sxth r5, r2
if(hint && y_ofs == 0 && coords->y1 < 0) {
96c0: 9c07 ldr r4, [sp, #28]
96c2: 2c00 cmp r4, #0
96c4: d052 beq.n 976c <lv_draw_label+0x130>
96c6: 2900 cmp r1, #0
96c8: d154 bne.n 9774 <lv_draw_label+0x138>
96ca: 2800 cmp r0, #0
96cc: db14 blt.n 96f8 <lv_draw_label+0xbc>
pos.y += y_ofs;
96ce: 9513 str r5, [sp, #76] ; 0x4c
uint32_t line_start = 0;
96d0: 2200 movs r2, #0
96d2: 9206 str r2, [sp, #24]
96d4: e02e b.n 9734 <lv_draw_label+0xf8>
_lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
96d6: 210c movs r1, #12
96d8: 5e7b ldrsh r3, [r7, r1]
96da: ad3c add r5, sp, #240 ; 0xf0
96dc: 9202 str r2, [sp, #8]
96de: 4ab8 ldr r2, [pc, #736] ; (99c0 <lv_draw_label+0x384>)
96e0: 9201 str r2, [sp, #4]
96e2: 210a movs r1, #10
96e4: 5e7a ldrsh r2, [r7, r1]
96e6: 9200 str r2, [sp, #0]
96e8: 687a ldr r2, [r7, #4]
96ea: 990e ldr r1, [sp, #56] ; 0x38
96ec: 0028 movs r0, r5
96ee: 4eb5 ldr r6, [pc, #724] ; (99c4 <lv_draw_label+0x388>)
96f0: 47b0 blx r6
w = p.x;
96f2: 2200 movs r2, #0
96f4: 5eab ldrsh r3, [r5, r2]
96f6: e7ce b.n 9696 <lv_draw_label+0x5a>
if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) {
96f8: 68a1 ldr r1, [r4, #8]
96fa: 1a08 subs r0, r1, r0
96fc: 17c1 asrs r1, r0, #31
96fe: 1840 adds r0, r0, r1
9700: 4048 eors r0, r1
9702: 2180 movs r1, #128 ; 0x80
9704: 0089 lsls r1, r1, #2
9706: 464c mov r4, r9
9708: 1b09 subs r1, r1, r4
970a: 0049 lsls r1, r1, #1
970c: 4288 cmp r0, r1
970e: dd07 ble.n 9720 <lv_draw_label+0xe4>
hint->line_start = -1;
9710: 2201 movs r2, #1
9712: 4252 negs r2, r2
9714: 9907 ldr r1, [sp, #28]
9716: 600a str r2, [r1, #0]
pos.y += y_ofs;
9718: 9513 str r5, [sp, #76] ; 0x4c
uint32_t line_start = 0;
971a: 2200 movs r2, #0
971c: 9206 str r2, [sp, #24]
971e: e009 b.n 9734 <lv_draw_label+0xf8>
last_line_start = hint->line_start;
9720: 9807 ldr r0, [sp, #28]
9722: 6801 ldr r1, [r0, #0]
if(hint && last_line_start >= 0) {
9724: 2900 cmp r1, #0
9726: db29 blt.n 977c <lv_draw_label+0x140>
line_start = last_line_start;
9728: 9106 str r1, [sp, #24]
pos.y += hint->y;
972a: 6841 ldr r1, [r0, #4]
972c: 468c mov ip, r1
972e: 4462 add r2, ip
9730: b212 sxth r2, r2
9732: 9213 str r2, [sp, #76] ; 0x4c
uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
9734: b21b sxth r3, r3
9736: 0019 movs r1, r3
9738: 9317 str r3, [sp, #92] ; 0x5c
973a: 230c movs r3, #12
973c: 5efa ldrsh r2, [r7, r3]
973e: 9b0e ldr r3, [sp, #56] ; 0x38
9740: 0018 movs r0, r3
9742: 9c06 ldr r4, [sp, #24]
9744: 46a4 mov ip, r4
9746: 4460 add r0, ip
9748: 7dfb ldrb r3, [r7, #23]
974a: 9300 str r3, [sp, #0]
974c: 000b movs r3, r1
974e: 9905 ldr r1, [sp, #20]
9750: 4d9d ldr r5, [pc, #628] ; (99c8 <lv_draw_label+0x38c>)
9752: 47a8 blx r5
9754: 46a4 mov ip, r4
9756: 4460 add r0, ip
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
9758: 4a9b ldr r2, [pc, #620] ; (99c8 <lv_draw_label+0x38c>)
975a: 4692 mov sl, r2
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
975c: 4a9b ldr r2, [pc, #620] ; (99cc <lv_draw_label+0x390>)
975e: 4690 mov r8, r2
9760: 9608 str r6, [sp, #32]
9762: 0006 movs r6, r0
9764: 9d13 ldr r5, [sp, #76] ; 0x4c
9766: 46bb mov fp, r7
9768: 9f07 ldr r7, [sp, #28]
while(pos.y + line_height_font < mask->y1) {
976a: e011 b.n 9790 <lv_draw_label+0x154>
pos.y += y_ofs;
976c: 9513 str r5, [sp, #76] ; 0x4c
uint32_t line_start = 0;
976e: 2200 movs r2, #0
9770: 9206 str r2, [sp, #24]
9772: e7df b.n 9734 <lv_draw_label+0xf8>
pos.y += y_ofs;
9774: 9513 str r5, [sp, #76] ; 0x4c
uint32_t line_start = 0;
9776: 2200 movs r2, #0
9778: 9206 str r2, [sp, #24]
977a: e7db b.n 9734 <lv_draw_label+0xf8>
pos.y += y_ofs;
977c: 9513 str r5, [sp, #76] ; 0x4c
uint32_t line_start = 0;
977e: 2200 movs r2, #0
9780: 9206 str r2, [sp, #24]
9782: e7d7 b.n 9734 <lv_draw_label+0xf8>
9784: 9606 str r6, [sp, #24]
if(txt[line_start] == '\0') return;
9786: 7823 ldrb r3, [r4, #0]
9788: 2b00 cmp r3, #0
978a: d100 bne.n 978e <lv_draw_label+0x152>
978c: e76a b.n 9664 <lv_draw_label+0x28>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
978e: 0006 movs r6, r0
while(pos.y + line_height_font < mask->y1) {
9790: 9b08 ldr r3, [sp, #32]
9792: 18eb adds r3, r5, r3
9794: 9a0f ldr r2, [sp, #60] ; 0x3c
9796: 2102 movs r1, #2
9798: 5e52 ldrsh r2, [r2, r1]
979a: 4293 cmp r3, r2
979c: da20 bge.n 97e0 <lv_draw_label+0x1a4>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
979e: 9b0e ldr r3, [sp, #56] ; 0x38
97a0: 199c adds r4, r3, r6
97a2: 465b mov r3, fp
97a4: 220c movs r2, #12
97a6: 5e9a ldrsh r2, [r3, r2]
97a8: 465b mov r3, fp
97aa: 7ddb ldrb r3, [r3, #23]
97ac: 9300 str r3, [sp, #0]
97ae: 9b17 ldr r3, [sp, #92] ; 0x5c
97b0: 9905 ldr r1, [sp, #20]
97b2: 0020 movs r0, r4
97b4: 47d0 blx sl
97b6: 1980 adds r0, r0, r6
97b8: 444d add r5, r9
97ba: b22d sxth r5, r5
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
97bc: 2f00 cmp r7, #0
97be: d0e1 beq.n 9784 <lv_draw_label+0x148>
97c0: 4545 cmp r5, r8
97c2: dbdf blt.n 9784 <lv_draw_label+0x148>
97c4: 683b ldr r3, [r7, #0]
97c6: 2b00 cmp r3, #0
97c8: dadc bge.n 9784 <lv_draw_label+0x148>
hint->line_start = line_start;
97ca: 603e str r6, [r7, #0]
hint->y = pos.y - coords->y1;
97cc: 9a11 ldr r2, [sp, #68] ; 0x44
97ce: 2102 movs r1, #2
97d0: 5e53 ldrsh r3, [r2, r1]
97d2: 1aeb subs r3, r5, r3
97d4: 607b str r3, [r7, #4]
hint->coord_y = coords->y1;
97d6: 0013 movs r3, r2
97d8: 2202 movs r2, #2
97da: 5e9b ldrsh r3, [r3, r2]
97dc: 60bb str r3, [r7, #8]
97de: e7d1 b.n 9784 <lv_draw_label+0x148>
97e0: 960b str r6, [sp, #44] ; 0x2c
97e2: 9513 str r5, [sp, #76] ; 0x4c
97e4: 465f mov r7, fp
if(dsc->flag & LV_TXT_FLAG_CENTER) {
97e6: 7dfa ldrb r2, [r7, #23]
97e8: 0753 lsls r3, r2, #29
97ea: d42e bmi.n 984a <lv_draw_label+0x20e>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
97ec: 0713 lsls r3, r2, #28
97ee: d448 bmi.n 9882 <lv_draw_label+0x246>
lv_opa_t opa = dsc->opa;
97f0: 7a3b ldrb r3, [r7, #8]
97f2: 9310 str r3, [sp, #64] ; 0x40
uint16_t sel_start = dsc->sel_start;
97f4: 89fb ldrh r3, [r7, #14]
97f6: 001e movs r6, r3
uint16_t sel_end = dsc->sel_end;
97f8: 8a3a ldrh r2, [r7, #16]
97fa: 4692 mov sl, r2
if(sel_start > sel_end) {
97fc: 4553 cmp r3, sl
97fe: d901 bls.n 9804 <lv_draw_label+0x1c8>
sel_start = sel_end;
9800: 4656 mov r6, sl
sel_end = tmp;
9802: 469a mov sl, r3
if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) {
9804: 7e3b ldrb r3, [r7, #24]
9806: 079b lsls r3, r3, #30
9808: d155 bne.n 98b6 <lv_draw_label+0x27a>
lv_draw_rect_dsc_init(&draw_dsc_sel);
980a: ac3f add r4, sp, #252 ; 0xfc
980c: 0020 movs r0, r4
980e: 4b70 ldr r3, [pc, #448] ; (99d0 <lv_draw_label+0x394>)
9810: 4798 blx r3
draw_dsc_sel.bg_color = dsc->sel_color;
9812: 887b ldrh r3, [r7, #2]
9814: 8063 strh r3, [r4, #2]
9816: 9b10 ldr r3, [sp, #64] ; 0x40
9818: 2bfa cmp r3, #250 ; 0xfa
981a: d901 bls.n 9820 <lv_draw_label+0x1e4>
981c: 4b6d ldr r3, [pc, #436] ; (99d4 <lv_draw_label+0x398>)
981e: 781b ldrb r3, [r3, #0]
9820: b2db uxtb r3, r3
9822: 931e str r3, [sp, #120] ; 0x78
9824: 464b mov r3, r9
9826: 466a mov r2, sp
9828: 8393 strh r3, [r2, #28]
982a: 8b93 ldrh r3, [r2, #28]
982c: 931f str r3, [sp, #124] ; 0x7c
982e: 466b mov r3, sp
9830: 224c movs r2, #76 ; 0x4c
9832: 189b adds r3, r3, r2
9834: 881b ldrh r3, [r3, #0]
9836: 9318 str r3, [sp, #96] ; 0x60
while(txt[line_start] != '\0') {
9838: 9d24 ldr r5, [sp, #144] ; 0x90
uint16_t par_start = 0;
983a: 2300 movs r3, #0
983c: 9320 str r3, [sp, #128] ; 0x80
983e: 46b0 mov r8, r6
9840: 4653 mov r3, sl
9842: 930c str r3, [sp, #48] ; 0x30
9844: 003e movs r6, r7
while(txt[line_start] != '\0') {
9846: f000 fe0e bl a466 <lv_draw_label+0xe2a>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
984a: 210c movs r1, #12
984c: 5e7b ldrsh r3, [r7, r1]
984e: 9c06 ldr r4, [sp, #24]
9850: 1b31 subs r1, r6, r4
9852: b289 uxth r1, r1
9854: 980e ldr r0, [sp, #56] ; 0x38
9856: 46a4 mov ip, r4
9858: 4460 add r0, ip
985a: 9200 str r2, [sp, #0]
985c: 9a05 ldr r2, [sp, #20]
985e: 4c5e ldr r4, [pc, #376] ; (99d8 <lv_draw_label+0x39c>)
9860: 47a0 blx r4
9862: 9a11 ldr r2, [sp, #68] ; 0x44
9864: 8893 ldrh r3, [r2, #4]
9866: 3301 adds r3, #1
9868: 8812 ldrh r2, [r2, #0]
986a: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
986c: b21b sxth r3, r3
986e: 1a18 subs r0, r3, r0
9870: 0fc3 lsrs r3, r0, #31
9872: 181b adds r3, r3, r0
9874: 105b asrs r3, r3, #1
9876: 9a24 ldr r2, [sp, #144] ; 0x90
9878: 4694 mov ip, r2
987a: 4463 add r3, ip
987c: b21b sxth r3, r3
987e: 9324 str r3, [sp, #144] ; 0x90
9880: e7b6 b.n 97f0 <lv_draw_label+0x1b4>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
9882: 210c movs r1, #12
9884: 5e7b ldrsh r3, [r7, r1]
9886: 980b ldr r0, [sp, #44] ; 0x2c
9888: 9c06 ldr r4, [sp, #24]
988a: 1b01 subs r1, r0, r4
988c: b289 uxth r1, r1
988e: 980e ldr r0, [sp, #56] ; 0x38
9890: 46a4 mov ip, r4
9892: 4460 add r0, ip
9894: 9200 str r2, [sp, #0]
9896: 9a05 ldr r2, [sp, #20]
9898: 4c4f ldr r4, [pc, #316] ; (99d8 <lv_draw_label+0x39c>)
989a: 47a0 blx r4
989c: 9a11 ldr r2, [sp, #68] ; 0x44
989e: 8893 ldrh r3, [r2, #4]
98a0: 3301 adds r3, #1
98a2: 8812 ldrh r2, [r2, #0]
98a4: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
98a6: b21b sxth r3, r3
98a8: 1a1b subs r3, r3, r0
98aa: 9a24 ldr r2, [sp, #144] ; 0x90
98ac: 4694 mov ip, r2
98ae: 4463 add r3, ip
98b0: b21b sxth r3, r3
98b2: 9324 str r3, [sp, #144] ; 0x90
98b4: e79c b.n 97f0 <lv_draw_label+0x1b4>
lv_draw_line_dsc_init(&line_dsc);
98b6: ac55 add r4, sp, #340 ; 0x154
98b8: 0020 movs r0, r4
98ba: 4b48 ldr r3, [pc, #288] ; (99dc <lv_draw_label+0x3a0>)
98bc: 4798 blx r3
line_dsc.color = dsc->color;
98be: 883b ldrh r3, [r7, #0]
98c0: 8023 strh r3, [r4, #0]
line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/
98c2: 687b ldr r3, [r7, #4]
98c4: 2008 movs r0, #8
98c6: 5e18 ldrsh r0, [r3, r0]
98c8: 3005 adds r0, #5
98ca: 210a movs r1, #10
98cc: 4b44 ldr r3, [pc, #272] ; (99e0 <lv_draw_label+0x3a4>)
98ce: 4798 blx r3
98d0: 8060 strh r0, [r4, #2]
line_dsc.opa = dsc->opa;
98d2: 7a3b ldrb r3, [r7, #8]
98d4: 7223 strb r3, [r4, #8]
line_dsc.blend_mode = dsc->blend_mode;
98d6: 7e7a ldrb r2, [r7, #25]
98d8: 2303 movs r3, #3
98da: 401a ands r2, r3
98dc: 7a63 ldrb r3, [r4, #9]
98de: 2103 movs r1, #3
98e0: 438b bics r3, r1
98e2: 4313 orrs r3, r2
98e4: 7263 strb r3, [r4, #9]
98e6: e790 b.n 980a <lv_draw_label+0x1ce>
uint16_t logical_char_pos = 0;
98e8: 2500 movs r5, #0
98ea: e0c5 b.n 9a78 <lv_draw_label+0x43c>
if(cmd_state == CMD_STATE_WAIT) { /*Start char*/
98ec: 9b08 ldr r3, [sp, #32]
98ee: 2b00 cmp r3, #0
98f0: d107 bne.n 9902 <lv_draw_label+0x2c6>
par_start = i;
98f2: ab34 add r3, sp, #208 ; 0xd0
98f4: 2280 movs r2, #128 ; 0x80
98f6: 189b adds r3, r3, r2
98f8: 881b ldrh r3, [r3, #0]
98fa: 9320 str r3, [sp, #128] ; 0x80
cmd_state = CMD_STATE_PAR;
98fc: 2301 movs r3, #1
98fe: 9308 str r3, [sp, #32]
continue;
9900: e0a2 b.n 9a48 <lv_draw_label+0x40c>
else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */
9902: 9b08 ldr r3, [sp, #32]
9904: 2b01 cmp r3, #1
9906: d101 bne.n 990c <lv_draw_label+0x2d0>
9908: f000 fe2d bl a566 <lv_draw_label+0xf2a>
else if(cmd_state == CMD_STATE_IN) { /*Command end */
990c: 2b02 cmp r3, #2
990e: d101 bne.n 9914 <lv_draw_label+0x2d8>
9910: f000 fd70 bl a3f4 <lv_draw_label+0xdb8>
lv_color_t color = dsc->color;
9914: 464b mov r3, r9
9916: 881e ldrh r6, [r3, #0]
9918: e0cf b.n 9aba <lv_draw_label+0x47e>
if(letter == ' ') {
991a: 2c20 cmp r4, #32
991c: d000 beq.n 9920 <lv_draw_label+0x2e4>
991e: e093 b.n 9a48 <lv_draw_label+0x40c>
if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) {
9920: 9b54 ldr r3, [sp, #336] ; 0x150
9922: 9a20 ldr r2, [sp, #128] ; 0x80
9924: 1a9b subs r3, r3, r2
9926: 2b07 cmp r3, #7
9928: d005 beq.n 9936 <lv_draw_label+0x2fa>
recolor.full = dsc->color.full;
992a: 464b mov r3, r9
992c: 881b ldrh r3, [r3, #0]
992e: 9319 str r3, [sp, #100] ; 0x64
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
9930: 2302 movs r3, #2
9932: 9308 str r3, [sp, #32]
9934: e088 b.n 9a48 <lv_draw_label+0x40c>
_lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH);
9936: 9b0d ldr r3, [sp, #52] ; 0x34
9938: 4694 mov ip, r2
993a: 4463 add r3, ip
993c: 0018 movs r0, r3
993e: 2300 movs r3, #0
*d8 = *s8;
9940: a93c add r1, sp, #240 ; 0xf0
9942: 5cc2 ldrb r2, [r0, r3]
9944: 545a strb r2, [r3, r1]
9946: 3301 adds r3, #1
while(len) {
9948: 2b06 cmp r3, #6
994a: d1fa bne.n 9942 <lv_draw_label+0x306>
r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]);
994c: ad3c add r5, sp, #240 ; 0xf0
994e: 7828 ldrb r0, [r5, #0]
9950: 4b24 ldr r3, [pc, #144] ; (99e4 <lv_draw_label+0x3a8>)
9952: 4698 mov r8, r3
9954: 4798 blx r3
9956: 0004 movs r4, r0
9958: 7868 ldrb r0, [r5, #1]
995a: 47c0 blx r8
995c: 0124 lsls r4, r4, #4
995e: 1824 adds r4, r4, r0
g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]);
9960: 78a8 ldrb r0, [r5, #2]
9962: 47c0 blx r8
9964: 0006 movs r6, r0
9966: 78e8 ldrb r0, [r5, #3]
9968: 47c0 blx r8
996a: 0136 lsls r6, r6, #4
996c: 1836 adds r6, r6, r0
b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]);
996e: 7928 ldrb r0, [r5, #4]
9970: 47c0 blx r8
9972: 4682 mov sl, r0
9974: 7968 ldrb r0, [r5, #5]
9976: 47c0 blx r8
9978: 4653 mov r3, sl
997a: 011b lsls r3, r3, #4
997c: 1818 adds r0, r3, r0
#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/
#endif
static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
{
return LV_COLOR_MAKE(r, g, b);
997e: b2c2 uxtb r2, r0
9980: 08d2 lsrs r2, r2, #3
9982: 231f movs r3, #31
9984: 9934 ldr r1, [sp, #208] ; 0xd0
9986: 4399 bics r1, r3
9988: 000b movs r3, r1
998a: 4313 orrs r3, r2
998c: b2f6 uxtb r6, r6
998e: 08b6 lsrs r6, r6, #2
9990: 0176 lsls r6, r6, #5
9992: 4a15 ldr r2, [pc, #84] ; (99e8 <lv_draw_label+0x3ac>)
9994: 4013 ands r3, r2
9996: 4333 orrs r3, r6
9998: b2e4 uxtb r4, r4
999a: 08e4 lsrs r4, r4, #3
999c: 02e4 lsls r4, r4, #11
999e: 055b lsls r3, r3, #21
99a0: 0d5b lsrs r3, r3, #21
99a2: 4323 orrs r3, r4
99a4: 466a mov r2, sp
99a6: 21d0 movs r1, #208 ; 0xd0
99a8: 1852 adds r2, r2, r1
99aa: 8013 strh r3, [r2, #0]
99ac: b29b uxth r3, r3
99ae: 9319 str r3, [sp, #100] ; 0x64
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
99b0: 2302 movs r3, #2
99b2: 9308 str r3, [sp, #32]
99b4: e048 b.n 9a48 <lv_draw_label+0x40c>
if(cmd_state == CMD_STATE_IN) color = recolor;
99b6: 9e19 ldr r6, [sp, #100] ; 0x64
99b8: e07f b.n 9aba <lv_draw_label+0x47e>
99ba: 46c0 nop ; (mov r8, r8)
99bc: 0001140b .word 0x0001140b
99c0: 00007c18 .word 0x00007c18
99c4: 00013f3d .word 0x00013f3d
99c8: 00013c21 .word 0x00013c21
99cc: fffffc00 .word 0xfffffc00
99d0: 0000bfcd .word 0x0000bfcd
99d4: 00026168 .word 0x00026168
99d8: 00013e99 .word 0x00013e99
99dc: 0000a589 .word 0x0000a589
99e0: 0001c1b9 .word 0x0001c1b9
99e4: 000095a5 .word 0x000095a5
99e8: fffff81f .word 0xfffff81f
sel_coords.x1 = pos.x;
99ec: a83c add r0, sp, #240 ; 0xf0
99ee: 9a09 ldr r2, [sp, #36] ; 0x24
99f0: 8002 strh r2, [r0, #0]
sel_coords.y1 = pos.y;
99f2: 9913 ldr r1, [sp, #76] ; 0x4c
99f4: 8041 strh r1, [r0, #2]
sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1;
99f6: 464b mov r3, r9
99f8: 899b ldrh r3, [r3, #12]
99fa: 3b01 subs r3, #1
99fc: 4694 mov ip, r2
99fe: 4463 add r3, ip
9a00: 9a0a ldr r2, [sp, #40] ; 0x28
9a02: 4694 mov ip, r2
9a04: 4463 add r3, ip
9a06: 8083 strh r3, [r0, #4]
sel_coords.y2 = pos.y + line_height - 1;
9a08: 9b1f ldr r3, [sp, #124] ; 0x7c
9a0a: 3b01 subs r3, #1
9a0c: 468c mov ip, r1
9a0e: 4463 add r3, ip
9a10: 80c3 strh r3, [r0, #6]
lv_draw_rect(&sel_coords, mask, &draw_dsc_sel);
9a12: aa3f add r2, sp, #252 ; 0xfc
9a14: 990f ldr r1, [sp, #60] ; 0x3c
9a16: 4b7d ldr r3, [pc, #500] ; (9c0c <lv_draw_label+0x5d0>)
9a18: 4798 blx r3
9a1a: e05f b.n 9adc <lv_draw_label+0x4a0>
LV_LOG_WARN("lv_draw_letter: font is NULL");
9a1c: 4b7c ldr r3, [pc, #496] ; (9c10 <lv_draw_label+0x5d4>)
9a1e: 9300 str r3, [sp, #0]
9a20: 4b7c ldr r3, [pc, #496] ; (9c14 <lv_draw_label+0x5d8>)
9a22: 2298 movs r2, #152 ; 0x98
9a24: 32ff adds r2, #255 ; 0xff
9a26: 497c ldr r1, [pc, #496] ; (9c18 <lv_draw_label+0x5dc>)
9a28: 2002 movs r0, #2
9a2a: 4c7c ldr r4, [pc, #496] ; (9c1c <lv_draw_label+0x5e0>)
9a2c: 47a0 blx r4
if(letter_w > 0) {
9a2e: 9b07 ldr r3, [sp, #28]
9a30: 2b00 cmp r3, #0
9a32: dd09 ble.n 9a48 <lv_draw_label+0x40c>
pos.x += letter_w + dsc->letter_space;
9a34: 464b mov r3, r9
9a36: 899b ldrh r3, [r3, #12]
9a38: 9a09 ldr r2, [sp, #36] ; 0x24
9a3a: 4694 mov ip, r2
9a3c: 4463 add r3, ip
9a3e: 9a0a ldr r2, [sp, #40] ; 0x28
9a40: 4694 mov ip, r2
9a42: 4463 add r3, ip
9a44: b21b sxth r3, r3
9a46: 9309 str r3, [sp, #36] ; 0x24
while(i < line_end - line_start) {
9a48: 9954 ldr r1, [sp, #336] ; 0x150
9a4a: 9b0b ldr r3, [sp, #44] ; 0x2c
9a4c: 9a06 ldr r2, [sp, #24]
9a4e: 1a9b subs r3, r3, r2
9a50: 428b cmp r3, r1
9a52: d801 bhi.n 9a58 <lv_draw_label+0x41c>
9a54: f000 fcd2 bl a3fc <lv_draw_label+0xdc0>
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
9a58: 4b71 ldr r3, [pc, #452] ; (9c20 <lv_draw_label+0x5e4>)
9a5a: 429f cmp r7, r3
9a5c: d100 bne.n 9a60 <lv_draw_label+0x424>
9a5e: e743 b.n 98e8 <lv_draw_label+0x2ac>
uint16_t logical_char_pos = 0;
9a60: 2500 movs r5, #0
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
9a62: 9a0c ldr r2, [sp, #48] ; 0x30
9a64: 429a cmp r2, r3
9a66: d007 beq.n 9a78 <lv_draw_label+0x43c>
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
9a68: 9b06 ldr r3, [sp, #24]
9a6a: 469c mov ip, r3
9a6c: 4461 add r1, ip
9a6e: 980e ldr r0, [sp, #56] ; 0x38
9a70: 465b mov r3, fp
9a72: 681b ldr r3, [r3, #0]
9a74: 4798 blx r3
9a76: b285 uxth r5, r0
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
9a78: 4e6a ldr r6, [pc, #424] ; (9c24 <lv_draw_label+0x5e8>)
9a7a: a954 add r1, sp, #336 ; 0x150
9a7c: 9b0d ldr r3, [sp, #52] ; 0x34
9a7e: 4698 mov r8, r3
9a80: 0018 movs r0, r3
9a82: 6833 ldr r3, [r6, #0]
9a84: 4798 blx r3
9a86: 0004 movs r4, r0
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
9a88: 4643 mov r3, r8
9a8a: 9a54 ldr r2, [sp, #336] ; 0x150
9a8c: 4694 mov ip, r2
9a8e: 4463 add r3, ip
9a90: 0018 movs r0, r3
9a92: 6833 ldr r3, [r6, #0]
9a94: 2100 movs r1, #0
9a96: 4798 blx r3
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
9a98: 464b mov r3, r9
9a9a: 7ddb ldrb r3, [r3, #23]
9a9c: 07db lsls r3, r3, #31
9a9e: d506 bpl.n 9aae <lv_draw_label+0x472>
if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) {
9aa0: 2c23 cmp r4, #35 ; 0x23
9aa2: d100 bne.n 9aa6 <lv_draw_label+0x46a>
9aa4: e722 b.n 98ec <lv_draw_label+0x2b0>
if(cmd_state == CMD_STATE_PAR) {
9aa6: 9b08 ldr r3, [sp, #32]
9aa8: 2b01 cmp r3, #1
9aaa: d100 bne.n 9aae <lv_draw_label+0x472>
9aac: e735 b.n 991a <lv_draw_label+0x2de>
lv_color_t color = dsc->color;
9aae: 464b mov r3, r9
9ab0: 881e ldrh r6, [r3, #0]
if(cmd_state == CMD_STATE_IN) color = recolor;
9ab2: 9b08 ldr r3, [sp, #32]
9ab4: 2b02 cmp r3, #2
9ab6: d100 bne.n 9aba <lv_draw_label+0x47e>
9ab8: e77d b.n 99b6 <lv_draw_label+0x37a>
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
9aba: 0002 movs r2, r0
9abc: 0021 movs r1, r4
9abe: 9805 ldr r0, [sp, #20]
9ac0: 4b59 ldr r3, [pc, #356] ; (9c28 <lv_draw_label+0x5ec>)
9ac2: 4798 blx r3
9ac4: 900a str r0, [sp, #40] ; 0x28
9ac6: 9007 str r0, [sp, #28]
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
9ac8: 4b55 ldr r3, [pc, #340] ; (9c20 <lv_draw_label+0x5e4>)
9aca: 429f cmp r7, r3
9acc: d006 beq.n 9adc <lv_draw_label+0x4a0>
9ace: 990c ldr r1, [sp, #48] ; 0x30
9ad0: 4299 cmp r1, r3
9ad2: d003 beq.n 9adc <lv_draw_label+0x4a0>
if(logical_char_pos >= sel_start && logical_char_pos < sel_end) {
9ad4: 42af cmp r7, r5
9ad6: d801 bhi.n 9adc <lv_draw_label+0x4a0>
9ad8: 42a9 cmp r1, r5
9ada: d887 bhi.n 99ec <lv_draw_label+0x3b0>
if(opa < LV_OPA_MIN) return;
9adc: 9b10 ldr r3, [sp, #64] ; 0x40
9ade: 2b04 cmp r3, #4
9ae0: d9a5 bls.n 9a2e <lv_draw_label+0x3f2>
if(font_p == NULL) {
9ae2: 9b05 ldr r3, [sp, #20]
9ae4: 2b00 cmp r3, #0
9ae6: d099 beq.n 9a1c <lv_draw_label+0x3e0>
lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode);
9ae8: 464b mov r3, r9
9aea: 7e5b ldrb r3, [r3, #25]
9aec: 9315 str r3, [sp, #84] ; 0x54
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
9aee: 2300 movs r3, #0
9af0: 0022 movs r2, r4
9af2: a93c add r1, sp, #240 ; 0xf0
9af4: 9805 ldr r0, [sp, #20]
9af6: 4d4d ldr r5, [pc, #308] ; (9c2c <lv_draw_label+0x5f0>)
9af8: 47a8 blx r5
if(g_ret == false) {
9afa: 2800 cmp r0, #0
9afc: d10b bne.n 9b16 <lv_draw_label+0x4da>
if(letter >= 0x20) {
9afe: 2c1f cmp r4, #31
9b00: d995 bls.n 9a2e <lv_draw_label+0x3f2>
LV_LOG_WARN("lv_draw_letter: glyph dsc. not found");
9b02: 4b4b ldr r3, [pc, #300] ; (9c30 <lv_draw_label+0x5f4>)
9b04: 9300 str r3, [sp, #0]
9b06: 4b43 ldr r3, [pc, #268] ; (9c14 <lv_draw_label+0x5d8>)
9b08: 22a2 movs r2, #162 ; 0xa2
9b0a: 32ff adds r2, #255 ; 0xff
9b0c: 4942 ldr r1, [pc, #264] ; (9c18 <lv_draw_label+0x5dc>)
9b0e: 3002 adds r0, #2
9b10: 4c42 ldr r4, [pc, #264] ; (9c1c <lv_draw_label+0x5e0>)
9b12: 47a0 blx r4
9b14: e78b b.n 9a2e <lv_draw_label+0x3f2>
if((g.box_h == 0) && (g.box_w == 0)) return;
9b16: ab3c add r3, sp, #240 ; 0xf0
9b18: 889a ldrh r2, [r3, #4]
9b1a: 2a00 cmp r2, #0
9b1c: d102 bne.n 9b24 <lv_draw_label+0x4e8>
9b1e: 885b ldrh r3, [r3, #2]
9b20: 2b00 cmp r3, #0
9b22: d084 beq.n 9a2e <lv_draw_label+0x3f2>
int32_t pos_x = pos_p->x + g.ofs_x;
9b24: ab3c add r3, sp, #240 ; 0xf0
9b26: 2106 movs r1, #6
9b28: 5e5d ldrsh r5, [r3, r1]
9b2a: 9909 ldr r1, [sp, #36] ; 0x24
9b2c: 468c mov ip, r1
9b2e: 0029 movs r1, r5
9b30: 4461 add r1, ip
if(pos_x + g.box_w < clip_area->x1 ||
9b32: 885b ldrh r3, [r3, #2]
9b34: 9112 str r1, [sp, #72] ; 0x48
9b36: 468c mov ip, r1
9b38: 4463 add r3, ip
9b3a: 980f ldr r0, [sp, #60] ; 0x3c
9b3c: 2500 movs r5, #0
9b3e: 5f41 ldrsh r1, [r0, r5]
9b40: 428b cmp r3, r1
9b42: da00 bge.n 9b46 <lv_draw_label+0x50a>
9b44: e773 b.n 9a2e <lv_draw_label+0x3f2>
pos_x > clip_area->x2 ||
9b46: 0001 movs r1, r0
9b48: 2304 movs r3, #4
9b4a: 5ecb ldrsh r3, [r1, r3]
if(pos_x + g.box_w < clip_area->x1 ||
9b4c: 4661 mov r1, ip
9b4e: 4299 cmp r1, r3
9b50: dd00 ble.n 9b54 <lv_draw_label+0x518>
9b52: e76c b.n 9a2e <lv_draw_label+0x3f2>
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
9b54: 9905 ldr r1, [sp, #20]
9b56: 2508 movs r5, #8
9b58: 5f4b ldrsh r3, [r1, r5]
9b5a: 250a movs r5, #10
9b5c: 5f49 ldrsh r1, [r1, r5]
9b5e: 1a5b subs r3, r3, r1
9b60: 9913 ldr r1, [sp, #76] ; 0x4c
9b62: 468c mov ip, r1
9b64: 4463 add r3, ip
9b66: 1a99 subs r1, r3, r2
9b68: ab3c add r3, sp, #240 ; 0xf0
9b6a: 2508 movs r5, #8
9b6c: 5f5b ldrsh r3, [r3, r5]
9b6e: 1acb subs r3, r1, r3
9b70: 4698 mov r8, r3
pos_y + g.box_h < clip_area->y1 ||
9b72: 4442 add r2, r8
9b74: 0001 movs r1, r0
9b76: 2002 movs r0, #2
9b78: 5e0b ldrsh r3, [r1, r0]
pos_x > clip_area->x2 ||
9b7a: 429a cmp r2, r3
9b7c: da00 bge.n 9b80 <lv_draw_label+0x544>
9b7e: e756 b.n 9a2e <lv_draw_label+0x3f2>
pos_y > clip_area->y2) {
9b80: 2206 movs r2, #6
9b82: 5e8b ldrsh r3, [r1, r2]
pos_y + g.box_h < clip_area->y1 ||
9b84: 4598 cmp r8, r3
9b86: dd00 ble.n 9b8a <lv_draw_label+0x54e>
9b88: e751 b.n 9a2e <lv_draw_label+0x3f2>
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
9b8a: 0021 movs r1, r4
9b8c: 9805 ldr r0, [sp, #20]
9b8e: 4b29 ldr r3, [pc, #164] ; (9c34 <lv_draw_label+0x5f8>)
9b90: 4798 blx r3
9b92: 901b str r0, [sp, #108] ; 0x6c
if(map_p == NULL) {
9b94: 2800 cmp r0, #0
9b96: d023 beq.n 9be0 <lv_draw_label+0x5a4>
if(font_p->subpx) {
9b98: 9b05 ldr r3, [sp, #20]
9b9a: 7b1b ldrb r3, [r3, #12]
9b9c: 079b lsls r3, r3, #30
9b9e: d100 bne.n 9ba2 <lv_draw_label+0x566>
9ba0: e270 b.n a084 <lv_draw_label+0xa48>
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
9ba2: 466b mov r3, sp
9ba4: 2248 movs r2, #72 ; 0x48
9ba6: 189b adds r3, r3, r2
9ba8: 881b ldrh r3, [r3, #0]
9baa: b21b sxth r3, r3
9bac: 9314 str r3, [sp, #80] ; 0x50
9bae: 4643 mov r3, r8
9bb0: b21b sxth r3, r3
9bb2: 9316 str r3, [sp, #88] ; 0x58
9bb4: 466b mov r3, sp
9bb6: 3244 adds r2, #68 ; 0x44
9bb8: 189b adds r3, r3, r2
9bba: 801e strh r6, [r3, #0]
uint32_t bpp = g->bpp;
9bbc: ab3c add r3, sp, #240 ; 0xf0
9bbe: 7a9b ldrb r3, [r3, #10]
9bc0: 001e movs r6, r3
if(bpp == 3) bpp = 4;
9bc2: 2b03 cmp r3, #3
9bc4: d100 bne.n 9bc8 <lv_draw_label+0x58c>
9bc6: e10e b.n 9de6 <lv_draw_label+0x7aa>
switch(bpp) {
9bc8: 2b02 cmp r3, #2
9bca: d03b beq.n 9c44 <lv_draw_label+0x608>
9bcc: d812 bhi.n 9bf4 <lv_draw_label+0x5b8>
9bce: 2b01 cmp r3, #1
9bd0: d000 beq.n 9bd4 <lv_draw_label+0x598>
9bd2: e10e b.n 9df2 <lv_draw_label+0x7b6>
uint32_t bpp = g->bpp;
9bd4: 2601 movs r6, #1
bitmask_init = 0x80;
9bd6: 2380 movs r3, #128 ; 0x80
9bd8: 9322 str r3, [sp, #136] ; 0x88
bpp_opa_table = _lv_bpp1_opa_table;
9bda: 4b17 ldr r3, [pc, #92] ; (9c38 <lv_draw_label+0x5fc>)
9bdc: 9325 str r3, [sp, #148] ; 0x94
9bde: e035 b.n 9c4c <lv_draw_label+0x610>
LV_LOG_WARN("lv_draw_letter: character's bitmap not found");
9be0: 4b16 ldr r3, [pc, #88] ; (9c3c <lv_draw_label+0x600>)
9be2: 9300 str r3, [sp, #0]
9be4: 4b0b ldr r3, [pc, #44] ; (9c14 <lv_draw_label+0x5d8>)
9be6: 22b8 movs r2, #184 ; 0xb8
9be8: 32ff adds r2, #255 ; 0xff
9bea: 490b ldr r1, [pc, #44] ; (9c18 <lv_draw_label+0x5dc>)
9bec: 2002 movs r0, #2
9bee: 4c0b ldr r4, [pc, #44] ; (9c1c <lv_draw_label+0x5e0>)
9bf0: 47a0 blx r4
9bf2: e71c b.n 9a2e <lv_draw_label+0x3f2>
switch(bpp) {
9bf4: 2b04 cmp r3, #4
9bf6: d100 bne.n 9bfa <lv_draw_label+0x5be>
9bf8: e0f6 b.n 9de8 <lv_draw_label+0x7ac>
9bfa: 2b08 cmp r3, #8
9bfc: d000 beq.n 9c00 <lv_draw_label+0x5c4>
9bfe: e0f8 b.n 9df2 <lv_draw_label+0x7b6>
uint32_t bpp = g->bpp;
9c00: 2608 movs r6, #8
bitmask_init = 0xFF;
9c02: 23ff movs r3, #255 ; 0xff
9c04: 9322 str r3, [sp, #136] ; 0x88
bpp_opa_table = _lv_bpp8_opa_table;
9c06: 4b0e ldr r3, [pc, #56] ; (9c40 <lv_draw_label+0x604>)
9c08: 9325 str r3, [sp, #148] ; 0x94
9c0a: e01f b.n 9c4c <lv_draw_label+0x610>
9c0c: 0000c071 .word 0x0000c071
9c10: 000262f4 .word 0x000262f4
9c14: 0002616c .word 0x0002616c
9c18: 000262bc .word 0x000262bc
9c1c: 00012159 .word 0x00012159
9c20: 0000ffff .word 0x0000ffff
9c24: 2000005c .word 0x2000005c
9c28: 0000fe91 .word 0x0000fe91
9c2c: 0000fe89 .word 0x0000fe89
9c30: 00026314 .word 0x00026314
9c34: 0000fe81 .word 0x0000fe81
9c38: 000261a4 .word 0x000261a4
9c3c: 0002633c .word 0x0002633c
9c40: 000261bc .word 0x000261bc
bitmask_init = 0xC0;
9c44: 23c0 movs r3, #192 ; 0xc0
9c46: 9322 str r3, [sp, #136] ; 0x88
bpp_opa_table = _lv_bpp2_opa_table;
9c48: 4bd9 ldr r3, [pc, #868] ; (9fb0 <lv_draw_label+0x974>)
9c4a: 9325 str r3, [sp, #148] ; 0x94
int32_t box_w = g->box_w;
9c4c: ab3c add r3, sp, #240 ; 0xf0
9c4e: 885a ldrh r2, [r3, #2]
9c50: 921d str r2, [sp, #116] ; 0x74
int32_t box_h = g->box_h;
9c52: 889b ldrh r3, [r3, #4]
9c54: 931c str r3, [sp, #112] ; 0x70
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
9c56: 4372 muls r2, r6
9c58: 4692 mov sl, r2
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
9c5a: 9b0f ldr r3, [sp, #60] ; 0x3c
9c5c: 2200 movs r2, #0
9c5e: 5e9b ldrsh r3, [r3, r2]
9c60: 2200 movs r2, #0
9c62: 922d str r2, [sp, #180] ; 0xb4
9c64: 9914 ldr r1, [sp, #80] ; 0x50
9c66: 4299 cmp r1, r3
9c68: da03 bge.n 9c72 <lv_draw_label+0x636>
9c6a: 1a5b subs r3, r3, r1
9c6c: 005a lsls r2, r3, #1
9c6e: 18d3 adds r3, r2, r3
9c70: 932d str r3, [sp, #180] ; 0xb4
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
9c72: 9b0f ldr r3, [sp, #60] ; 0x3c
9c74: 2404 movs r4, #4
9c76: 5f1c ldrsh r4, [r3, r4]
9c78: 2103 movs r1, #3
9c7a: 9d1d ldr r5, [sp, #116] ; 0x74
9c7c: 0028 movs r0, r5
9c7e: 4bcd ldr r3, [pc, #820] ; (9fb4 <lv_draw_label+0x978>)
9c80: 4798 blx r3
9c82: 9a14 ldr r2, [sp, #80] ; 0x50
9c84: 4694 mov ip, r2
9c86: 4460 add r0, ip
9c88: 951a str r5, [sp, #104] ; 0x68
9c8a: 42a0 cmp r0, r4
9c8c: dd04 ble.n 9c98 <lv_draw_label+0x65c>
9c8e: 1aa4 subs r4, r4, r2
9c90: 3401 adds r4, #1
9c92: 0063 lsls r3, r4, #1
9c94: 191b adds r3, r3, r4
9c96: 931a str r3, [sp, #104] ; 0x68
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
9c98: 9b0f ldr r3, [sp, #60] ; 0x3c
9c9a: 2202 movs r2, #2
9c9c: 5e9b ldrsh r3, [r3, r2]
9c9e: 2200 movs r2, #0
9ca0: 922b str r2, [sp, #172] ; 0xac
9ca2: 9916 ldr r1, [sp, #88] ; 0x58
9ca4: 4299 cmp r1, r3
9ca6: da01 bge.n 9cac <lv_draw_label+0x670>
9ca8: 1a5b subs r3, r3, r1
9caa: 932b str r3, [sp, #172] ; 0xac
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
9cac: 9b0f ldr r3, [sp, #60] ; 0x3c
9cae: 2206 movs r2, #6
9cb0: 5e9b ldrsh r3, [r3, r2]
9cb2: 991c ldr r1, [sp, #112] ; 0x70
9cb4: 000a movs r2, r1
9cb6: 9c16 ldr r4, [sp, #88] ; 0x58
9cb8: 46a4 mov ip, r4
9cba: 4462 add r2, ip
9cbc: 912e str r1, [sp, #184] ; 0xb8
9cbe: 429a cmp r2, r3
9cc0: dd02 ble.n 9cc8 <lv_draw_label+0x68c>
9cc2: 1b1b subs r3, r3, r4
9cc4: 3301 adds r3, #1
9cc6: 932e str r3, [sp, #184] ; 0xb8
9cc8: 466b mov r3, sp
9cca: 228c movs r2, #140 ; 0x8c
9ccc: 189b adds r3, r3, r2
9cce: 881a ldrh r2, [r3, #0]
9cd0: 06d3 lsls r3, r2, #27
9cd2: 0edb lsrs r3, r3, #27
9cd4: 9328 str r3, [sp, #160] ; 0xa0
9cd6: 0553 lsls r3, r2, #21
9cd8: 0e9b lsrs r3, r3, #26
9cda: 932a str r3, [sp, #168] ; 0xa8
9cdc: 0413 lsls r3, r2, #16
9cde: 0edb lsrs r3, r3, #27
9ce0: 9329 str r3, [sp, #164] ; 0xa4
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
9ce2: 4653 mov r3, sl
9ce4: 9a2b ldr r2, [sp, #172] ; 0xac
9ce6: 4353 muls r3, r2
9ce8: 9a2d ldr r2, [sp, #180] ; 0xb4
9cea: 4372 muls r2, r6
9cec: 189b adds r3, r3, r2
map_p += bit_ofs >> 3;
9cee: 10dc asrs r4, r3, #3
9cf0: 9a1b ldr r2, [sp, #108] ; 0x6c
9cf2: 4694 mov ip, r2
9cf4: 4464 add r4, ip
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
9cf6: 2207 movs r2, #7
9cf8: 401a ands r2, r3
9cfa: 4692 mov sl, r2
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
9cfc: 9b1c ldr r3, [sp, #112] ; 0x70
9cfe: 9a1d ldr r2, [sp, #116] ; 0x74
9d00: 4353 muls r3, r2
9d02: 001a movs r2, r3
9d04: 932f str r3, [sp, #188] ; 0xbc
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
9d06: 23f0 movs r3, #240 ; 0xf0
9d08: 005b lsls r3, r3, #1
9d0a: 429a cmp r2, r3
9d0c: dd00 ble.n 9d10 <lv_draw_label+0x6d4>
9d0e: 932f str r3, [sp, #188] ; 0xbc
9d10: 9d2f ldr r5, [sp, #188] ; 0xbc
9d12: 0028 movs r0, r5
9d14: 4ba8 ldr r3, [pc, #672] ; (9fb8 <lv_draw_label+0x97c>)
9d16: 4798 blx r3
9d18: 9026 str r0, [sp, #152] ; 0x98
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
9d1a: 0068 lsls r0, r5, #1
9d1c: 4ba6 ldr r3, [pc, #664] ; (9fb8 <lv_draw_label+0x97c>)
9d1e: 4798 blx r3
9d20: 9027 str r0, [sp, #156] ; 0x9c
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
9d22: 4ba6 ldr r3, [pc, #664] ; (9fbc <lv_draw_label+0x980>)
9d24: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
9d26: 4ba6 ldr r3, [pc, #664] ; (9fc0 <lv_draw_label+0x984>)
9d28: 4798 blx r3
9d2a: 0005 movs r5, r0
9d2c: 2110 movs r1, #16
9d2e: 5e42 ldrsh r2, [r0, r1]
9d30: 8a83 ldrh r3, [r0, #20]
9d32: 3301 adds r3, #1
9d34: 921c str r2, [sp, #112] ; 0x70
9d36: 1a9b subs r3, r3, r2
int32_t vdb_width = lv_area_get_width(&vdb->area);
9d38: b21b sxth r3, r3
9d3a: 931b str r3, [sp, #108] ; 0x6c
lv_color_t * vdb_buf_tmp = vdb->buf_act;
9d3c: 6881 ldr r1, [r0, #8]
9d3e: 9123 str r1, [sp, #140] ; 0x8c
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
9d40: 2103 movs r1, #3
9d42: 982d ldr r0, [sp, #180] ; 0xb4
9d44: 4b9b ldr r3, [pc, #620] ; (9fb4 <lv_draw_label+0x978>)
9d46: 4798 blx r3
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
9d48: 002b movs r3, r5
9d4a: 2512 movs r5, #18
9d4c: 5f5b ldrsh r3, [r3, r5]
9d4e: 9d16 ldr r5, [sp, #88] ; 0x58
9d50: 1aeb subs r3, r5, r3
9d52: 991b ldr r1, [sp, #108] ; 0x6c
9d54: 434b muls r3, r1
9d56: 9d14 ldr r5, [sp, #80] ; 0x50
9d58: 46ac mov ip, r5
9d5a: 4463 add r3, ip
9d5c: 9a1c ldr r2, [sp, #112] ; 0x70
9d5e: 1a9b subs r3, r3, r2
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
9d60: 9a2b ldr r2, [sp, #172] ; 0xac
9d62: 434a muls r2, r1
9d64: 1812 adds r2, r2, r0
9d66: 189b adds r3, r3, r2
9d68: 005b lsls r3, r3, #1
9d6a: 9923 ldr r1, [sp, #140] ; 0x8c
9d6c: 468c mov ip, r1
9d6e: 449c add ip, r3
9d70: 4661 mov r1, ip
9d72: 911c str r1, [sp, #112] ; 0x70
map_area.x1 = col_start / 3 + pos_x;
9d74: 466b mov r3, sp
9d76: 2248 movs r2, #72 ; 0x48
9d78: 189b adds r3, r3, r2
9d7a: 881d ldrh r5, [r3, #0]
9d7c: 1828 adds r0, r5, r0
9d7e: a934 add r1, sp, #208 ; 0xd0
9d80: 8308 strh r0, [r1, #24]
map_area.x2 = col_end / 3 + pos_x - 1;
9d82: 2103 movs r1, #3
9d84: 981a ldr r0, [sp, #104] ; 0x68
9d86: 4a8b ldr r2, [pc, #556] ; (9fb4 <lv_draw_label+0x978>)
9d88: 4790 blx r2
9d8a: 3d01 subs r5, #1
9d8c: 1945 adds r5, r0, r5
9d8e: aa34 add r2, sp, #208 ; 0xd0
9d90: 8395 strh r5, [r2, #28]
map_area.y1 = row_start + pos_y;
9d92: 9d2b ldr r5, [sp, #172] ; 0xac
9d94: 002b movs r3, r5
9d96: 4443 add r3, r8
9d98: b21b sxth r3, r3
9d9a: 8353 strh r3, [r2, #26]
map_area.y2 = map_area.y1;
9d9c: 83d3 strh r3, [r2, #30]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
9d9e: 4b89 ldr r3, [pc, #548] ; (9fc4 <lv_draw_label+0x988>)
9da0: 4798 blx r3
9da2: 9030 str r0, [sp, #192] ; 0xc0
for(row = row_start ; row < row_end; row++) {
9da4: 002b movs r3, r5
9da6: 9d2e ldr r5, [sp, #184] ; 0xb8
9da8: 42ab cmp r3, r5
9daa: db00 blt.n 9dae <lv_draw_label+0x772>
9dac: e14f b.n a04e <lv_draw_label+0xa12>
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
9dae: 991a ldr r1, [sp, #104] ; 0x68
9db0: 982d ldr r0, [sp, #180] ; 0xb4
9db2: 1a0a subs r2, r1, r0
9db4: 9231 str r2, [sp, #196] ; 0xc4
col_bit += ((box_w - col_end) + col_start) * bpp;
9db6: 9d1d ldr r5, [sp, #116] ; 0x74
9db8: 1a6b subs r3, r5, r1
9dba: 4684 mov ip, r0
9dbc: 4463 add r3, ip
9dbe: 0019 movs r1, r3
9dc0: 4371 muls r1, r6
9dc2: 9132 str r1, [sp, #200] ; 0xc8
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
9dc4: 2103 movs r1, #3
9dc6: 4249 negs r1, r1
9dc8: 0010 movs r0, r2
9dca: 4b7a ldr r3, [pc, #488] ; (9fb4 <lv_draw_label+0x978>)
9dcc: 4798 blx r3
9dce: 9b1b ldr r3, [sp, #108] ; 0x6c
9dd0: 469c mov ip, r3
9dd2: 4460 add r0, ip
9dd4: 0043 lsls r3, r0, #1
9dd6: 9333 str r3, [sp, #204] ; 0xcc
9dd8: 2300 movs r3, #0
9dda: 932c str r3, [sp, #176] ; 0xb0
color_buf[mask_p] = res_color;
9ddc: 9736 str r7, [sp, #216] ; 0xd8
9dde: 464b mov r3, r9
9de0: 9337 str r3, [sp, #220] ; 0xdc
9de2: 46a1 mov r9, r4
9de4: e0cb b.n 9f7e <lv_draw_label+0x942>
if(bpp == 3) bpp = 4;
9de6: 2604 movs r6, #4
bitmask_init = 0xF0;
9de8: 23f0 movs r3, #240 ; 0xf0
9dea: 9322 str r3, [sp, #136] ; 0x88
bpp_opa_table = _lv_bpp4_opa_table;
9dec: 4b76 ldr r3, [pc, #472] ; (9fc8 <lv_draw_label+0x98c>)
9dee: 9325 str r3, [sp, #148] ; 0x94
9df0: e72c b.n 9c4c <lv_draw_label+0x610>
LV_LOG_WARN("lv_draw_letter: invalid bpp not found");
9df2: 4b76 ldr r3, [pc, #472] ; (9fcc <lv_draw_label+0x990>)
9df4: 9300 str r3, [sp, #0]
9df6: 4b76 ldr r3, [pc, #472] ; (9fd0 <lv_draw_label+0x994>)
9df8: 4a76 ldr r2, [pc, #472] ; (9fd4 <lv_draw_label+0x998>)
9dfa: 4977 ldr r1, [pc, #476] ; (9fd8 <lv_draw_label+0x99c>)
9dfc: 2002 movs r0, #2
9dfe: 4c77 ldr r4, [pc, #476] ; (9fdc <lv_draw_label+0x9a0>)
9e00: 47a0 blx r4
9e02: e614 b.n 9a2e <lv_draw_label+0x3f2>
px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px];
9e04: 2e08 cmp r6, #8
9e06: d00b beq.n 9e20 <lv_draw_label+0x7e4>
9e08: 4663 mov r3, ip
9e0a: 4018 ands r0, r3
9e0c: 9b25 ldr r3, [sp, #148] ; 0x94
9e0e: 5c1b ldrb r3, [r3, r0]
9e10: e006 b.n 9e20 <lv_draw_label+0x7e4>
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
9e12: 4663 mov r3, ip
9e14: 4003 ands r3, r0
9e16: 991e ldr r1, [sp, #120] ; 0x78
9e18: 434b muls r3, r1
9e1a: 0a1b lsrs r3, r3, #8
9e1c: e000 b.n 9e20 <lv_draw_label+0x7e4>
px_opa = 0;
9e1e: 2300 movs r3, #0
font_rgb[subpx_cnt] = px_opa;
9e20: 9916 ldr r1, [sp, #88] ; 0x58
9e22: 548b strb r3, [r1, r2]
subpx_cnt ++;
9e24: 3201 adds r2, #1
if(subpx_cnt == 3) {
9e26: 2a03 cmp r2, #3
9e28: d021 beq.n 9e6e <lv_draw_label+0x832>
if(col_bit < 8 - bpp) {
9e2a: 9814 ldr r0, [sp, #80] ; 0x50
9e2c: 991b ldr r1, [sp, #108] ; 0x6c
9e2e: 4288 cmp r0, r1
9e30: d27b bcs.n 9f2a <lv_draw_label+0x8ee>
col_bit += bpp;
9e32: 1833 adds r3, r6, r0
bitmask = bitmask >> bpp;
9e34: 40f5 lsrs r5, r6
for(col = col_start; col < col_end; col++) {
9e36: 3401 adds r4, #1
9e38: 991a ldr r1, [sp, #104] ; 0x68
9e3a: 42a1 cmp r1, r4
9e3c: d07b beq.n 9f36 <lv_draw_label+0x8fa>
letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp);
9e3e: 9314 str r3, [sp, #80] ; 0x50
9e40: 9912 ldr r1, [sp, #72] ; 0x48
9e42: 7808 ldrb r0, [r1, #0]
9e44: 4028 ands r0, r5
9e46: 2108 movs r1, #8
9e48: 1acb subs r3, r1, r3
9e4a: 1b9b subs r3, r3, r6
9e4c: 40d8 lsrs r0, r3
9e4e: b2c3 uxtb r3, r0
if(letter_px != 0) {
9e50: 2b00 cmp r3, #0
9e52: d0e4 beq.n 9e1e <lv_draw_label+0x7e2>
if(opa == LV_OPA_COVER) {
9e54: 991e ldr r1, [sp, #120] ; 0x78
9e56: 29ff cmp r1, #255 ; 0xff
9e58: d0d4 beq.n 9e04 <lv_draw_label+0x7c8>
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
9e5a: 2e08 cmp r6, #8
9e5c: d0d9 beq.n 9e12 <lv_draw_label+0x7d6>
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
9e5e: 4663 mov r3, ip
9e60: 4018 ands r0, r3
9e62: 9b25 ldr r3, [sp, #148] ; 0x94
9e64: 5c1b ldrb r3, [r3, r0]
9e66: 991e ldr r1, [sp, #120] ; 0x78
9e68: 434b muls r3, r1
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
9e6a: 0a1b lsrs r3, r3, #8
9e6c: e7d8 b.n 9e20 <lv_draw_label+0x7e4>
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
9e6e: 000f movs r7, r1
9e70: 7808 ldrb r0, [r1, #0]
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
9e72: 991c ldr r1, [sp, #112] ; 0x70
9e74: 784b ldrb r3, [r1, #1]
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
9e76: 08db lsrs r3, r3, #3
9e78: 4662 mov r2, ip
9e7a: 1a12 subs r2, r2, r0
9e7c: 4353 muls r3, r2
9e7e: 9a29 ldr r2, [sp, #164] ; 0xa4
9e80: 4342 muls r2, r0
9e82: 189b adds r3, r3, r2
9e84: 0a1b lsrs r3, r3, #8
9e86: 221f movs r2, #31
9e88: 401a ands r2, r3
9e8a: 9223 str r2, [sp, #140] ; 0x8c
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
9e8c: 78bb ldrb r3, [r7, #2]
9e8e: 4699 mov r9, r3
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
9e90: 780a ldrb r2, [r1, #0]
9e92: 06d2 lsls r2, r2, #27
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
9e94: 0ed2 lsrs r2, r2, #27
9e96: 4663 mov r3, ip
9e98: 464f mov r7, r9
9e9a: 1bdb subs r3, r3, r7
9e9c: 435a muls r2, r3
9e9e: 9b28 ldr r3, [sp, #160] ; 0xa0
9ea0: 437b muls r3, r7
9ea2: 18d2 adds r2, r2, r3
9ea4: 0a12 lsrs r2, r2, #8
9ea6: 231f movs r3, #31
9ea8: 401a ands r2, r3
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
9eaa: 9b16 ldr r3, [sp, #88] ; 0x58
9eac: 785b ldrb r3, [r3, #1]
9eae: 4698 mov r8, r3
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
9eb0: 880b ldrh r3, [r1, #0]
9eb2: 055b lsls r3, r3, #21
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
9eb4: 0e9b lsrs r3, r3, #26
9eb6: 4661 mov r1, ip
9eb8: 4647 mov r7, r8
9eba: 1bc9 subs r1, r1, r7
9ebc: 434b muls r3, r1
9ebe: 992a ldr r1, [sp, #168] ; 0xa8
9ec0: 4379 muls r1, r7
9ec2: 468a mov sl, r1
9ec4: 4453 add r3, sl
9ec6: 0a1b lsrs r3, r3, #8
9ec8: 213f movs r1, #63 ; 0x3f
9eca: 400b ands r3, r1
9ecc: 469a mov sl, r3
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
9ece: 2800 cmp r0, #0
9ed0: d108 bne.n 9ee4 <lv_draw_label+0x8a8>
9ed2: 2f00 cmp r7, #0
9ed4: d106 bne.n 9ee4 <lv_draw_label+0x8a8>
9ed6: 464b mov r3, r9
9ed8: 2b00 cmp r3, #0
9eda: d103 bne.n 9ee4 <lv_draw_label+0x8a8>
9edc: 9b26 ldr r3, [sp, #152] ; 0x98
9ede: 991d ldr r1, [sp, #116] ; 0x74
9ee0: 5458 strb r0, [r3, r1]
9ee2: e003 b.n 9eec <lv_draw_label+0x8b0>
else mask_buf[mask_p] = LV_OPA_COVER;
9ee4: 9b26 ldr r3, [sp, #152] ; 0x98
9ee6: 991d ldr r1, [sp, #116] ; 0x74
9ee8: 4660 mov r0, ip
9eea: 5458 strb r0, [r3, r1]
color_buf[mask_p] = res_color;
9eec: 991d ldr r1, [sp, #116] ; 0x74
9eee: 0048 lsls r0, r1, #1
9ef0: 9f27 ldr r7, [sp, #156] ; 0x9c
9ef2: 46b8 mov r8, r7
9ef4: 4440 add r0, r8
9ef6: 7807 ldrb r7, [r0, #0]
9ef8: 231f movs r3, #31
9efa: 439f bics r7, r3
9efc: 433a orrs r2, r7
9efe: 7002 strb r2, [r0, #0]
9f00: 4653 mov r3, sl
9f02: 015b lsls r3, r3, #5
9f04: 8802 ldrh r2, [r0, #0]
9f06: 4f36 ldr r7, [pc, #216] ; (9fe0 <lv_draw_label+0x9a4>)
9f08: 403a ands r2, r7
9f0a: 4313 orrs r3, r2
9f0c: 8003 strh r3, [r0, #0]
9f0e: 9a23 ldr r2, [sp, #140] ; 0x8c
9f10: 00d2 lsls r2, r2, #3
9f12: 0a1b lsrs r3, r3, #8
9f14: 2707 movs r7, #7
9f16: 403b ands r3, r7
9f18: 4313 orrs r3, r2
9f1a: 7043 strb r3, [r0, #1]
mask_p++;
9f1c: 1c4b adds r3, r1, #1
9f1e: 931d str r3, [sp, #116] ; 0x74
vdb_buf_tmp++;
9f20: 9b1c ldr r3, [sp, #112] ; 0x70
9f22: 3302 adds r3, #2
9f24: 931c str r3, [sp, #112] ; 0x70
subpx_cnt = 0;
9f26: 2200 movs r2, #0
9f28: e77f b.n 9e2a <lv_draw_label+0x7ee>
map_p++;
9f2a: 9b12 ldr r3, [sp, #72] ; 0x48
9f2c: 3301 adds r3, #1
9f2e: 9312 str r3, [sp, #72] ; 0x48
bitmask = bitmask_init;
9f30: 9d22 ldr r5, [sp, #136] ; 0x88
col_bit = 0;
9f32: 2300 movs r3, #0
9f34: e77f b.n 9e36 <lv_draw_label+0x7fa>
9f36: 9a12 ldr r2, [sp, #72] ; 0x48
9f38: 4691 mov r9, r2
9f3a: 469a mov sl, r3
if(other_mask_cnt) {
9f3c: 9b30 ldr r3, [sp, #192] ; 0xc0
9f3e: 2b00 cmp r3, #0
9f40: d150 bne.n 9fe4 <lv_draw_label+0x9a8>
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
9f42: 9b31 ldr r3, [sp, #196] ; 0xc4
9f44: 991d ldr r1, [sp, #116] ; 0x74
9f46: 468c mov ip, r1
9f48: 4463 add r3, ip
9f4a: 9a2f ldr r2, [sp, #188] ; 0xbc
9f4c: 429a cmp r2, r3
9f4e: d966 bls.n a01e <lv_draw_label+0x9e2>
map_area.y2 ++;
9f50: aa3a add r2, sp, #232 ; 0xe8
9f52: 88d3 ldrh r3, [r2, #6]
9f54: 3301 adds r3, #1
9f56: 80d3 strh r3, [r2, #6]
9f58: 912c str r1, [sp, #176] ; 0xb0
col_bit += ((box_w - col_end) + col_start) * bpp;
9f5a: 9b32 ldr r3, [sp, #200] ; 0xc8
9f5c: 4453 add r3, sl
map_p += (col_bit >> 3);
9f5e: 10da asrs r2, r3, #3
9f60: 4491 add r9, r2
col_bit = col_bit & 0x7;
9f62: 2207 movs r2, #7
9f64: 401a ands r2, r3
9f66: 4692 mov sl, r2
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
9f68: 9b1c ldr r3, [sp, #112] ; 0x70
9f6a: 9a33 ldr r2, [sp, #204] ; 0xcc
9f6c: 4694 mov ip, r2
9f6e: 4463 add r3, ip
9f70: 931c str r3, [sp, #112] ; 0x70
for(row = row_start ; row < row_end; row++) {
9f72: 9b2b ldr r3, [sp, #172] ; 0xac
9f74: 3301 adds r3, #1
9f76: 932b str r3, [sp, #172] ; 0xac
9f78: 9a2e ldr r2, [sp, #184] ; 0xb8
9f7a: 4293 cmp r3, r2
9f7c: da64 bge.n a048 <lv_draw_label+0xa0c>
bitmask = bitmask_init >> col_bit;
9f7e: 9d22 ldr r5, [sp, #136] ; 0x88
9f80: 4653 mov r3, sl
9f82: 40dd lsrs r5, r3
for(col = col_start; col < col_end; col++) {
9f84: 9c2d ldr r4, [sp, #180] ; 0xb4
9f86: 9a1a ldr r2, [sp, #104] ; 0x68
9f88: 4294 cmp r4, r2
9f8a: da0d bge.n 9fa8 <lv_draw_label+0x96c>
9f8c: 9b2c ldr r3, [sp, #176] ; 0xb0
9f8e: 931d str r3, [sp, #116] ; 0x74
9f90: 2200 movs r2, #0
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
9f92: 23ff movs r3, #255 ; 0xff
9f94: 469c mov ip, r3
font_rgb[subpx_cnt] = px_opa;
9f96: ab39 add r3, sp, #228 ; 0xe4
9f98: 9316 str r3, [sp, #88] ; 0x58
if(col_bit < 8 - bpp) {
9f9a: 2308 movs r3, #8
9f9c: 1b9b subs r3, r3, r6
9f9e: 931b str r3, [sp, #108] ; 0x6c
9fa0: 464b mov r3, r9
9fa2: 9312 str r3, [sp, #72] ; 0x48
9fa4: 4653 mov r3, sl
9fa6: e74a b.n 9e3e <lv_draw_label+0x802>
for(col = col_start; col < col_end; col++) {
9fa8: 9b2c ldr r3, [sp, #176] ; 0xb0
9faa: 931d str r3, [sp, #116] ; 0x74
9fac: e7c6 b.n 9f3c <lv_draw_label+0x900>
9fae: 46c0 nop ; (mov r8, r8)
9fb0: 000261a8 .word 0x000261a8
9fb4: 0001c1b9 .word 0x0001c1b9
9fb8: 000127a1 .word 0x000127a1
9fbc: 00005591 .word 0x00005591
9fc0: 00010e75 .word 0x00010e75
9fc4: 0000bb6d .word 0x0000bb6d
9fc8: 000261ac .word 0x000261ac
9fcc: 0002636c .word 0x0002636c
9fd0: 00026190 .word 0x00026190
9fd4: 0000027a .word 0x0000027a
9fd8: 000262bc .word 0x000262bc
9fdc: 00012159 .word 0x00012159
9fe0: fffff81f .word 0xfffff81f
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2,
9fe4: 9b2c ldr r3, [sp, #176] ; 0xb0
9fe6: 9a26 ldr r2, [sp, #152] ; 0x98
9fe8: 4694 mov ip, r2
9fea: 4463 add r3, ip
9fec: 001c movs r4, r3
9fee: aa3a add r2, sp, #232 ; 0xe8
9ff0: 2300 movs r3, #0
9ff2: 5ed1 ldrsh r1, [r2, r3]
9ff4: 8893 ldrh r3, [r2, #4]
9ff6: 3301 adds r3, #1
9ff8: 1a5b subs r3, r3, r1
9ffa: b21b sxth r3, r3
9ffc: 2006 movs r0, #6
9ffe: 5e12 ldrsh r2, [r2, r0]
a000: 0020 movs r0, r4
a002: 4dcf ldr r5, [pc, #828] ; (a340 <lv_draw_label+0xd04>)
a004: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
a006: 2800 cmp r0, #0
a008: d19b bne.n 9f42 <lv_draw_label+0x906>
a00a: ab3a add r3, sp, #232 ; 0xe8
a00c: 8899 ldrh r1, [r3, #4]
a00e: 3101 adds r1, #1
a010: 881b ldrh r3, [r3, #0]
a012: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area));
a014: b209 sxth r1, r1
a016: 0020 movs r0, r4
a018: 4bca ldr r3, [pc, #808] ; (a344 <lv_draw_label+0xd08>)
a01a: 4798 blx r3
a01c: e791 b.n 9f42 <lv_draw_label+0x906>
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
a01e: ac3a add r4, sp, #232 ; 0xe8
a020: 9b15 ldr r3, [sp, #84] ; 0x54
a022: 9302 str r3, [sp, #8]
a024: 9b1e ldr r3, [sp, #120] ; 0x78
a026: 9301 str r3, [sp, #4]
a028: 2302 movs r3, #2
a02a: 9300 str r3, [sp, #0]
a02c: 9b26 ldr r3, [sp, #152] ; 0x98
a02e: 9a27 ldr r2, [sp, #156] ; 0x9c
a030: 0021 movs r1, r4
a032: 980f ldr r0, [sp, #60] ; 0x3c
a034: 4dc4 ldr r5, [pc, #784] ; (a348 <lv_draw_label+0xd0c>)
a036: 47a8 blx r5
map_area.y1 = map_area.y2 + 1;
a038: 88e3 ldrh r3, [r4, #6]
a03a: 3301 adds r3, #1
a03c: b21b sxth r3, r3
a03e: 8063 strh r3, [r4, #2]
map_area.y2 = map_area.y1;
a040: 80e3 strh r3, [r4, #6]
mask_p = 0;
a042: 2300 movs r3, #0
a044: 932c str r3, [sp, #176] ; 0xb0
a046: e788 b.n 9f5a <lv_draw_label+0x91e>
a048: 9f36 ldr r7, [sp, #216] ; 0xd8
a04a: 9b37 ldr r3, [sp, #220] ; 0xdc
a04c: 4699 mov r9, r3
if(map_area.y1 != map_area.y2) {
a04e: aa3a add r2, sp, #232 ; 0xe8
a050: 2106 movs r1, #6
a052: 5e53 ldrsh r3, [r2, r1]
a054: 2102 movs r1, #2
a056: 5e52 ldrsh r2, [r2, r1]
a058: 429a cmp r2, r3
a05a: d00d beq.n a078 <lv_draw_label+0xa3c>
map_area.y2--;
a05c: a93a add r1, sp, #232 ; 0xe8
a05e: 3b01 subs r3, #1
a060: 80cb strh r3, [r1, #6]
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
a062: 9b15 ldr r3, [sp, #84] ; 0x54
a064: 9302 str r3, [sp, #8]
a066: 9b1e ldr r3, [sp, #120] ; 0x78
a068: 9301 str r3, [sp, #4]
a06a: 2302 movs r3, #2
a06c: 9300 str r3, [sp, #0]
a06e: 9b26 ldr r3, [sp, #152] ; 0x98
a070: 9a27 ldr r2, [sp, #156] ; 0x9c
a072: 980f ldr r0, [sp, #60] ; 0x3c
a074: 4cb4 ldr r4, [pc, #720] ; (a348 <lv_draw_label+0xd0c>)
a076: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
a078: 9826 ldr r0, [sp, #152] ; 0x98
a07a: 4cb4 ldr r4, [pc, #720] ; (a34c <lv_draw_label+0xd10>)
a07c: 47a0 blx r4
_lv_mem_buf_release(color_buf);
a07e: 9827 ldr r0, [sp, #156] ; 0x9c
a080: 47a0 blx r4
a082: e4d4 b.n 9a2e <lv_draw_label+0x3f2>
draw_letter_normal(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
a084: 466b mov r3, sp
a086: 2248 movs r2, #72 ; 0x48
a088: 189b adds r3, r3, r2
a08a: 881b ldrh r3, [r3, #0]
a08c: b21c sxth r4, r3
a08e: 4643 mov r3, r8
a090: b21b sxth r3, r3
a092: 469c mov ip, r3
a094: 466b mov r3, sp
a096: 325c adds r2, #92 ; 0x5c
a098: 189b adds r3, r3, r2
a09a: 801e strh r6, [r3, #0]
uint32_t bpp = g->bpp;
a09c: ab3c add r3, sp, #240 ; 0xf0
a09e: 7a9b ldrb r3, [r3, #10]
a0a0: 469a mov sl, r3
if(bpp == 3) bpp = 4;
a0a2: 2b03 cmp r3, #3
a0a4: d030 beq.n a108 <lv_draw_label+0xacc>
switch(bpp) {
a0a6: 2b02 cmp r3, #2
a0a8: d017 beq.n a0da <lv_draw_label+0xa9e>
a0aa: d809 bhi.n a0c0 <lv_draw_label+0xa84>
a0ac: 2b01 cmp r3, #1
a0ae: d133 bne.n a118 <lv_draw_label+0xadc>
uint32_t bpp = g->bpp;
a0b0: 2301 movs r3, #1
a0b2: 469a mov sl, r3
shades = 2;
a0b4: 2102 movs r1, #2
bitmask_init = 0x80;
a0b6: 337f adds r3, #127 ; 0x7f
a0b8: 9314 str r3, [sp, #80] ; 0x50
bpp_opa_table_p = _lv_bpp1_opa_table;
a0ba: 4ba5 ldr r3, [pc, #660] ; (a350 <lv_draw_label+0xd14>)
a0bc: 931d str r3, [sp, #116] ; 0x74
a0be: e011 b.n a0e4 <lv_draw_label+0xaa8>
switch(bpp) {
a0c0: 2b04 cmp r3, #4
a0c2: d023 beq.n a10c <lv_draw_label+0xad0>
a0c4: 2b08 cmp r3, #8
a0c6: d127 bne.n a118 <lv_draw_label+0xadc>
uint32_t bpp = g->bpp;
a0c8: 2308 movs r3, #8
a0ca: 469a mov sl, r3
shades = 256;
a0cc: 2180 movs r1, #128 ; 0x80
a0ce: 0049 lsls r1, r1, #1
bitmask_init = 0xFF;
a0d0: 33f7 adds r3, #247 ; 0xf7
a0d2: 9314 str r3, [sp, #80] ; 0x50
bpp_opa_table_p = _lv_bpp8_opa_table;
a0d4: 4b9f ldr r3, [pc, #636] ; (a354 <lv_draw_label+0xd18>)
a0d6: 931d str r3, [sp, #116] ; 0x74
a0d8: e004 b.n a0e4 <lv_draw_label+0xaa8>
shades = 4;
a0da: 2104 movs r1, #4
bitmask_init = 0xC0;
a0dc: 23c0 movs r3, #192 ; 0xc0
a0de: 9314 str r3, [sp, #80] ; 0x50
bpp_opa_table_p = _lv_bpp2_opa_table;
a0e0: 4b9d ldr r3, [pc, #628] ; (a358 <lv_draw_label+0xd1c>)
a0e2: 931d str r3, [sp, #116] ; 0x74
if(opa < LV_OPA_MAX) {
a0e4: 9a1e ldr r2, [sp, #120] ; 0x78
a0e6: 2af9 cmp r2, #249 ; 0xf9
a0e8: d83d bhi.n a166 <lv_draw_label+0xb2a>
if(prev_opa != opa || prev_bpp != bpp) {
a0ea: 4b9c ldr r3, [pc, #624] ; (a35c <lv_draw_label+0xd20>)
a0ec: 781b ldrb r3, [r3, #0]
a0ee: 4293 cmp r3, r2
a0f0: d01c beq.n a12c <lv_draw_label+0xaf0>
for(i = 0; i < shades; i++) {
a0f2: 2200 movs r2, #0
a0f4: 2900 cmp r1, #0
a0f6: d02b beq.n a150 <lv_draw_label+0xb14>
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
a0f8: 9b1e ldr r3, [sp, #120] ; 0x78
a0fa: 4899 ldr r0, [pc, #612] ; (a360 <lv_draw_label+0xd24>)
a0fc: 9716 str r7, [sp, #88] ; 0x58
a0fe: 9d12 ldr r5, [sp, #72] ; 0x48
a100: 001f movs r7, r3
a102: 9312 str r3, [sp, #72] ; 0x48
a104: 9e1d ldr r6, [sp, #116] ; 0x74
a106: e01b b.n a140 <lv_draw_label+0xb04>
if(bpp == 3) bpp = 4;
a108: 2304 movs r3, #4
a10a: 469a mov sl, r3
shades = 16;
a10c: 2110 movs r1, #16
bitmask_init = 0xF0;
a10e: 23f0 movs r3, #240 ; 0xf0
a110: 9314 str r3, [sp, #80] ; 0x50
bpp_opa_table_p = _lv_bpp4_opa_table;
a112: 4b94 ldr r3, [pc, #592] ; (a364 <lv_draw_label+0xd28>)
a114: 931d str r3, [sp, #116] ; 0x74
a116: e7e5 b.n a0e4 <lv_draw_label+0xaa8>
LV_LOG_WARN("lv_draw_letter: invalid bpp");
a118: 4b93 ldr r3, [pc, #588] ; (a368 <lv_draw_label+0xd2c>)
a11a: 9300 str r3, [sp, #0]
a11c: 4b93 ldr r3, [pc, #588] ; (a36c <lv_draw_label+0xd30>)
a11e: 22e6 movs r2, #230 ; 0xe6
a120: 32ff adds r2, #255 ; 0xff
a122: 4993 ldr r1, [pc, #588] ; (a370 <lv_draw_label+0xd34>)
a124: 2002 movs r0, #2
a126: 4c93 ldr r4, [pc, #588] ; (a374 <lv_draw_label+0xd38>)
a128: 47a0 blx r4
a12a: e480 b.n 9a2e <lv_draw_label+0x3f2>
if(prev_opa != opa || prev_bpp != bpp) {
a12c: 4b92 ldr r3, [pc, #584] ; (a378 <lv_draw_label+0xd3c>)
a12e: 681b ldr r3, [r3, #0]
a130: 459a cmp sl, r3
a132: d1de bne.n a0f2 <lv_draw_label+0xab6>
a134: e00c b.n a150 <lv_draw_label+0xb14>
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
a136: 9b12 ldr r3, [sp, #72] ; 0x48
a138: 5413 strb r3, [r2, r0]
for(i = 0; i < shades; i++) {
a13a: 3201 adds r2, #1
a13c: 428a cmp r2, r1
a13e: d005 beq.n a14c <lv_draw_label+0xb10>
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
a140: 5cb3 ldrb r3, [r6, r2]
a142: 2bff cmp r3, #255 ; 0xff
a144: d0f7 beq.n a136 <lv_draw_label+0xafa>
a146: 437b muls r3, r7
a148: 0a1b lsrs r3, r3, #8
a14a: e7f5 b.n a138 <lv_draw_label+0xafc>
a14c: 9f16 ldr r7, [sp, #88] ; 0x58
a14e: 9512 str r5, [sp, #72] ; 0x48
prev_opa = opa;
a150: 4b82 ldr r3, [pc, #520] ; (a35c <lv_draw_label+0xd20>)
a152: 466a mov r2, sp
a154: 2178 movs r1, #120 ; 0x78
a156: 1852 adds r2, r2, r1
a158: 7812 ldrb r2, [r2, #0]
a15a: 701a strb r2, [r3, #0]
prev_bpp = bpp;
a15c: 4b86 ldr r3, [pc, #536] ; (a378 <lv_draw_label+0xd3c>)
a15e: 4652 mov r2, sl
a160: 601a str r2, [r3, #0]
bpp_opa_table_p = opa_table;
a162: 4b7f ldr r3, [pc, #508] ; (a360 <lv_draw_label+0xd24>)
a164: 931d str r3, [sp, #116] ; 0x74
int32_t box_w = g->box_w;
a166: ab3c add r3, sp, #240 ; 0xf0
a168: 885a ldrh r2, [r3, #2]
a16a: 9227 str r2, [sp, #156] ; 0x9c
int32_t box_h = g->box_h;
a16c: 8899 ldrh r1, [r3, #4]
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
a16e: 4650 mov r0, sl
a170: 4350 muls r0, r2
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
a172: 9b0f ldr r3, [sp, #60] ; 0x3c
a174: 2200 movs r2, #0
a176: 5e9b ldrsh r3, [r3, r2]
a178: 2200 movs r2, #0
a17a: 9216 str r2, [sp, #88] ; 0x58
a17c: 429c cmp r4, r3
a17e: da01 bge.n a184 <lv_draw_label+0xb48>
a180: 1b1b subs r3, r3, r4
a182: 9316 str r3, [sp, #88] ; 0x58
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
a184: 9b0f ldr r3, [sp, #60] ; 0x3c
a186: 2204 movs r2, #4
a188: 5e9b ldrsh r3, [r3, r2]
a18a: 9d27 ldr r5, [sp, #156] ; 0x9c
a18c: 192a adds r2, r5, r4
a18e: 951c str r5, [sp, #112] ; 0x70
a190: 429a cmp r2, r3
a192: dd02 ble.n a19a <lv_draw_label+0xb5e>
a194: 1b1c subs r4, r3, r4
a196: 1c63 adds r3, r4, #1
a198: 931c str r3, [sp, #112] ; 0x70
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
a19a: 9b0f ldr r3, [sp, #60] ; 0x3c
a19c: 2202 movs r2, #2
a19e: 5e9b ldrsh r3, [r3, r2]
a1a0: 2200 movs r2, #0
a1a2: 921a str r2, [sp, #104] ; 0x68
a1a4: 459c cmp ip, r3
a1a6: da02 bge.n a1ae <lv_draw_label+0xb72>
a1a8: 4662 mov r2, ip
a1aa: 1a9b subs r3, r3, r2
a1ac: 931a str r3, [sp, #104] ; 0x68
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
a1ae: 9b0f ldr r3, [sp, #60] ; 0x3c
a1b0: 2206 movs r2, #6
a1b2: 5e9a ldrsh r2, [r3, r2]
a1b4: 4663 mov r3, ip
a1b6: 18cb adds r3, r1, r3
a1b8: 9123 str r1, [sp, #140] ; 0x8c
a1ba: 4293 cmp r3, r2
a1bc: dd03 ble.n a1c6 <lv_draw_label+0xb8a>
a1be: 4663 mov r3, ip
a1c0: 1ad2 subs r2, r2, r3
a1c2: 1c53 adds r3, r2, #1
a1c4: 9323 str r3, [sp, #140] ; 0x8c
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
a1c6: 9b16 ldr r3, [sp, #88] ; 0x58
a1c8: 9328 str r3, [sp, #160] ; 0xa0
a1ca: 9a1a ldr r2, [sp, #104] ; 0x68
a1cc: 4350 muls r0, r2
a1ce: 4654 mov r4, sl
a1d0: 435c muls r4, r3
a1d2: 1900 adds r0, r0, r4
map_p += bit_ofs >> 3;
a1d4: 08c6 lsrs r6, r0, #3
a1d6: 9b1b ldr r3, [sp, #108] ; 0x6c
a1d8: 469c mov ip, r3
a1da: 4466 add r6, ip
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
a1dc: 2407 movs r4, #7
a1de: 4004 ands r4, r0
uint32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : box_w * box_h;
a1e0: 9b27 ldr r3, [sp, #156] ; 0x9c
a1e2: 434b muls r3, r1
a1e4: 001a movs r2, r3
a1e6: 9325 str r3, [sp, #148] ; 0x94
a1e8: 23f0 movs r3, #240 ; 0xf0
a1ea: 005b lsls r3, r3, #1
a1ec: 429a cmp r2, r3
a1ee: dd00 ble.n a1f2 <lv_draw_label+0xbb6>
a1f0: 9325 str r3, [sp, #148] ; 0x94
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
a1f2: 9825 ldr r0, [sp, #148] ; 0x94
a1f4: 4b61 ldr r3, [pc, #388] ; (a37c <lv_draw_label+0xd40>)
a1f6: 4798 blx r3
a1f8: 9022 str r0, [sp, #136] ; 0x88
fill_area.x1 = col_start + pos_x;
a1fa: 466b mov r3, sp
a1fc: 2248 movs r2, #72 ; 0x48
a1fe: 189b adds r3, r3, r2
a200: 881d ldrh r5, [r3, #0]
a202: ab3a add r3, sp, #232 ; 0xe8
a204: 9a16 ldr r2, [sp, #88] ; 0x58
a206: 18aa adds r2, r5, r2
a208: 801a strh r2, [r3, #0]
fill_area.x2 = col_end + pos_x - 1;
a20a: 3d01 subs r5, #1
a20c: 991c ldr r1, [sp, #112] ; 0x70
a20e: 468c mov ip, r1
a210: 4465 add r5, ip
a212: 809d strh r5, [r3, #4]
fill_area.y1 = row_start + pos_y;
a214: 981a ldr r0, [sp, #104] ; 0x68
a216: 0005 movs r5, r0
a218: 4445 add r5, r8
a21a: b22a sxth r2, r5
a21c: 805a strh r2, [r3, #2]
fill_area.y2 = fill_area.y1;
a21e: 80da strh r2, [r3, #6]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
a220: 4b57 ldr r3, [pc, #348] ; (a380 <lv_draw_label+0xd44>)
a222: 4798 blx r3
a224: 9026 str r0, [sp, #152] ; 0x98
uint32_t col_bit_max = 8 - bpp;
a226: 2308 movs r3, #8
a228: 4655 mov r5, sl
a22a: 1b5d subs r5, r3, r5
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
a22c: 9b27 ldr r3, [sp, #156] ; 0x9c
a22e: 9a16 ldr r2, [sp, #88] ; 0x58
a230: 4694 mov ip, r2
a232: 4463 add r3, ip
a234: 991c ldr r1, [sp, #112] ; 0x70
a236: 1a5b subs r3, r3, r1
a238: 4652 mov r2, sl
a23a: 435a muls r2, r3
a23c: 9227 str r2, [sp, #156] ; 0x9c
for(row = row_start ; row < row_end; row++) {
a23e: 981a ldr r0, [sp, #104] ; 0x68
a240: 9b23 ldr r3, [sp, #140] ; 0x8c
a242: 4298 cmp r0, r3
a244: db00 blt.n a248 <lv_draw_label+0xc0c>
a246: e0b8 b.n a3ba <lv_draw_label+0xd7e>
a248: 2300 movs r3, #0
a24a: 931b str r3, [sp, #108] ; 0x6c
mask_buf[mask_p] = 0;
a24c: 972a str r7, [sp, #168] ; 0xa8
a24e: 9b1d ldr r3, [sp, #116] ; 0x74
a250: 4698 mov r8, r3
a252: 951d str r5, [sp, #116] ; 0x74
a254: 464b mov r3, r9
a256: 932b str r3, [sp, #172] ; 0xac
a258: e039 b.n a2ce <lv_draw_label+0xc92>
a25a: 2300 movs r3, #0
a25c: 7013 strb r3, [r2, #0]
a25e: e012 b.n a286 <lv_draw_label+0xc4a>
map_p++;
a260: 3601 adds r6, #1
bitmask = bitmask_init;
a262: 9914 ldr r1, [sp, #80] ; 0x50
col_bit = 0;
a264: 2400 movs r4, #0
a266: 3201 adds r2, #1
for(col = col_start; col < col_end; col++) {
a268: 9b12 ldr r3, [sp, #72] ; 0x48
a26a: 4293 cmp r3, r2
a26c: d010 beq.n a290 <lv_draw_label+0xc54>
letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit);
a26e: 7833 ldrb r3, [r6, #0]
a270: 400b ands r3, r1
a272: 1b28 subs r0, r5, r4
a274: 40c3 lsrs r3, r0
if(letter_px) {
a276: b2d8 uxtb r0, r3
a278: 2800 cmp r0, #0
a27a: d0ee beq.n a25a <lv_draw_label+0xc1e>
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
a27c: 4648 mov r0, r9
a27e: 4003 ands r3, r0
a280: 4640 mov r0, r8
a282: 5cc3 ldrb r3, [r0, r3]
a284: 7013 strb r3, [r2, #0]
if(col_bit < col_bit_max) {
a286: 42a5 cmp r5, r4
a288: d9ea bls.n a260 <lv_draw_label+0xc24>
col_bit += bpp;
a28a: 19e4 adds r4, r4, r7
bitmask = bitmask >> bpp;
a28c: 40f9 lsrs r1, r7
a28e: e7ea b.n a266 <lv_draw_label+0xc2a>
a290: 46ba mov sl, r7
a292: 951d str r5, [sp, #116] ; 0x74
a294: 4667 mov r7, ip
if(other_mask_cnt) {
a296: 9b26 ldr r3, [sp, #152] ; 0x98
a298: 2b00 cmp r3, #0
a29a: d133 bne.n a304 <lv_draw_label+0xcc8>
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
a29c: 9b1c ldr r3, [sp, #112] ; 0x70
a29e: 9a16 ldr r2, [sp, #88] ; 0x58
a2a0: 1a9b subs r3, r3, r2
a2a2: 19db adds r3, r3, r7
a2a4: 9a25 ldr r2, [sp, #148] ; 0x94
a2a6: 429a cmp r2, r3
a2a8: d96c bls.n a384 <lv_draw_label+0xd48>
fill_area.y2 ++;
a2aa: aa3a add r2, sp, #232 ; 0xe8
a2ac: 88d3 ldrh r3, [r2, #6]
a2ae: 3301 adds r3, #1
a2b0: 80d3 strh r3, [r2, #6]
a2b2: 971b str r7, [sp, #108] ; 0x6c
col_bit += col_bit_row_ofs;
a2b4: 9b27 ldr r3, [sp, #156] ; 0x9c
a2b6: 469c mov ip, r3
a2b8: 4464 add r4, ip
map_p += (col_bit >> 3);
a2ba: 08e3 lsrs r3, r4, #3
a2bc: 18f6 adds r6, r6, r3
col_bit = col_bit & 0x7;
a2be: 2307 movs r3, #7
a2c0: 401c ands r4, r3
for(row = row_start ; row < row_end; row++) {
a2c2: 9b1a ldr r3, [sp, #104] ; 0x68
a2c4: 3301 adds r3, #1
a2c6: 931a str r3, [sp, #104] ; 0x68
a2c8: 9a23 ldr r2, [sp, #140] ; 0x8c
a2ca: 4293 cmp r3, r2
a2cc: da72 bge.n a3b4 <lv_draw_label+0xd78>
bitmask = bitmask_init >> col_bit;
a2ce: 9914 ldr r1, [sp, #80] ; 0x50
a2d0: 40e1 lsrs r1, r4
for(col = col_start; col < col_end; col++) {
a2d2: 9b16 ldr r3, [sp, #88] ; 0x58
a2d4: 001a movs r2, r3
a2d6: 981c ldr r0, [sp, #112] ; 0x70
a2d8: 4282 cmp r2, r0
a2da: da11 bge.n a300 <lv_draw_label+0xcc4>
a2dc: 9f22 ldr r7, [sp, #136] ; 0x88
a2de: 003a movs r2, r7
a2e0: 9d1b ldr r5, [sp, #108] ; 0x6c
a2e2: 46ac mov ip, r5
a2e4: 4462 add r2, ip
a2e6: 0003 movs r3, r0
a2e8: 9828 ldr r0, [sp, #160] ; 0xa0
a2ea: 1a1b subs r3, r3, r0
a2ec: 449c add ip, r3
a2ee: 003b movs r3, r7
a2f0: 4463 add r3, ip
a2f2: 0018 movs r0, r3
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
a2f4: 23ff movs r3, #255 ; 0xff
a2f6: 4699 mov r9, r3
a2f8: 9012 str r0, [sp, #72] ; 0x48
a2fa: 4657 mov r7, sl
a2fc: 9d1d ldr r5, [sp, #116] ; 0x74
a2fe: e7b6 b.n a26e <lv_draw_label+0xc32>
for(col = col_start; col < col_end; col++) {
a300: 9f1b ldr r7, [sp, #108] ; 0x6c
a302: e7c8 b.n a296 <lv_draw_label+0xc5a>
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2,
a304: 9b1b ldr r3, [sp, #108] ; 0x6c
a306: 9a22 ldr r2, [sp, #136] ; 0x88
a308: 4694 mov ip, r2
a30a: 4463 add r3, ip
a30c: 4699 mov r9, r3
a30e: aa3a add r2, sp, #232 ; 0xe8
a310: 2300 movs r3, #0
a312: 5ed1 ldrsh r1, [r2, r3]
a314: 8893 ldrh r3, [r2, #4]
a316: 3301 adds r3, #1
a318: 1a5b subs r3, r3, r1
a31a: b21b sxth r3, r3
a31c: 2006 movs r0, #6
a31e: 5e12 ldrsh r2, [r2, r0]
a320: 4648 mov r0, r9
a322: 4d07 ldr r5, [pc, #28] ; (a340 <lv_draw_label+0xd04>)
a324: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
a326: 2800 cmp r0, #0
a328: d1b8 bne.n a29c <lv_draw_label+0xc60>
a32a: ab3a add r3, sp, #232 ; 0xe8
a32c: 8899 ldrh r1, [r3, #4]
a32e: 3101 adds r1, #1
a330: 881b ldrh r3, [r3, #0]
a332: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area));
a334: b209 sxth r1, r1
a336: 4648 mov r0, r9
a338: 4b02 ldr r3, [pc, #8] ; (a344 <lv_draw_label+0xd08>)
a33a: 4798 blx r3
a33c: e7ae b.n a29c <lv_draw_label+0xc60>
a33e: 46c0 nop ; (mov r8, r8)
a340: 0000bad1 .word 0x0000bad1
a344: 00012975 .word 0x00012975
a348: 00007cf1 .word 0x00007cf1
a34c: 00012465 .word 0x00012465
a350: 000261a4 .word 0x000261a4
a354: 000261bc .word 0x000261bc
a358: 000261a8 .word 0x000261a8
a35c: 20002bc4 .word 0x20002bc4
a360: 20002ac0 .word 0x20002ac0
a364: 000261ac .word 0x000261ac
a368: 00026394 .word 0x00026394
a36c: 0002617c .word 0x0002617c
a370: 000262bc .word 0x000262bc
a374: 00012159 .word 0x00012159
a378: 20002bc0 .word 0x20002bc0
a37c: 000127a1 .word 0x000127a1
a380: 0000bb6d .word 0x0000bb6d
_lv_blend_fill(clip_area, &fill_area,
a384: af3a add r7, sp, #232 ; 0xe8
a386: 9b15 ldr r3, [sp, #84] ; 0x54
a388: 9302 str r3, [sp, #8]
a38a: 23ff movs r3, #255 ; 0xff
a38c: 9301 str r3, [sp, #4]
a38e: 3bfd subs r3, #253 ; 0xfd
a390: 9300 str r3, [sp, #0]
a392: 9b22 ldr r3, [sp, #136] ; 0x88
a394: 466a mov r2, sp
a396: 21a4 movs r1, #164 ; 0xa4
a398: 1852 adds r2, r2, r1
a39a: 8812 ldrh r2, [r2, #0]
a39c: 0039 movs r1, r7
a39e: 980f ldr r0, [sp, #60] ; 0x3c
a3a0: 4d73 ldr r5, [pc, #460] ; (a570 <lv_draw_label+0xf34>)
a3a2: 47a8 blx r5
fill_area.y1 = fill_area.y2 + 1;
a3a4: 88fb ldrh r3, [r7, #6]
a3a6: 3301 adds r3, #1
a3a8: b21b sxth r3, r3
a3aa: 807b strh r3, [r7, #2]
fill_area.y2 = fill_area.y1;
a3ac: 80fb strh r3, [r7, #6]
mask_p = 0;
a3ae: 2300 movs r3, #0
a3b0: 931b str r3, [sp, #108] ; 0x6c
a3b2: e77f b.n a2b4 <lv_draw_label+0xc78>
a3b4: 9f2a ldr r7, [sp, #168] ; 0xa8
a3b6: 9b2b ldr r3, [sp, #172] ; 0xac
a3b8: 4699 mov r9, r3
if(fill_area.y1 != fill_area.y2) {
a3ba: aa3a add r2, sp, #232 ; 0xe8
a3bc: 2106 movs r1, #6
a3be: 5e53 ldrsh r3, [r2, r1]
a3c0: 2102 movs r1, #2
a3c2: 5e52 ldrsh r2, [r2, r1]
a3c4: 429a cmp r2, r3
a3c6: d010 beq.n a3ea <lv_draw_label+0xdae>
fill_area.y2--;
a3c8: a93a add r1, sp, #232 ; 0xe8
a3ca: 3b01 subs r3, #1
a3cc: 80cb strh r3, [r1, #6]
_lv_blend_fill(clip_area, &fill_area,
a3ce: 9b15 ldr r3, [sp, #84] ; 0x54
a3d0: 9302 str r3, [sp, #8]
a3d2: 23ff movs r3, #255 ; 0xff
a3d4: 9301 str r3, [sp, #4]
a3d6: 3bfd subs r3, #253 ; 0xfd
a3d8: 9300 str r3, [sp, #0]
a3da: 9b22 ldr r3, [sp, #136] ; 0x88
a3dc: 466a mov r2, sp
a3de: 20a4 movs r0, #164 ; 0xa4
a3e0: 1812 adds r2, r2, r0
a3e2: 8812 ldrh r2, [r2, #0]
a3e4: 980f ldr r0, [sp, #60] ; 0x3c
a3e6: 4c62 ldr r4, [pc, #392] ; (a570 <lv_draw_label+0xf34>)
a3e8: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
a3ea: 9822 ldr r0, [sp, #136] ; 0x88
a3ec: 4b61 ldr r3, [pc, #388] ; (a574 <lv_draw_label+0xf38>)
a3ee: 4798 blx r3
a3f0: f7ff fb1d bl 9a2e <lv_draw_label+0x3f2>
cmd_state = CMD_STATE_WAIT;
a3f4: 2300 movs r3, #0
a3f6: 9308 str r3, [sp, #32]
a3f8: f7ff fb26 bl 9a48 <lv_draw_label+0x40c>
a3fc: 46b8 mov r8, r7
a3fe: 464e mov r6, r9
if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) {
a400: 7e33 ldrb r3, [r6, #24]
a402: 079b lsls r3, r3, #30
a404: d447 bmi.n a496 <lv_draw_label+0xe5a>
if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) {
a406: 7e33 ldrb r3, [r6, #24]
a408: 07db lsls r3, r3, #31
a40a: d465 bmi.n a4d8 <lv_draw_label+0xe9c>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
a40c: 9b0e ldr r3, [sp, #56] ; 0x38
a40e: 001f movs r7, r3
a410: 9d0b ldr r5, [sp, #44] ; 0x2c
a412: 46ac mov ip, r5
a414: 4467 add r7, ip
a416: 230c movs r3, #12
a418: 5ef2 ldrsh r2, [r6, r3]
a41a: 7df3 ldrb r3, [r6, #23]
a41c: 9300 str r3, [sp, #0]
a41e: 9b17 ldr r3, [sp, #92] ; 0x5c
a420: 9905 ldr r1, [sp, #20]
a422: 0038 movs r0, r7
a424: 4c54 ldr r4, [pc, #336] ; (a578 <lv_draw_label+0xf3c>)
a426: 47a0 blx r4
a428: 1944 adds r4, r0, r5
pos.x = coords->x1;
a42a: 9b11 ldr r3, [sp, #68] ; 0x44
a42c: 2500 movs r5, #0
a42e: 5f5d ldrsh r5, [r3, r5]
if(dsc->flag & LV_TXT_FLAG_CENTER) {
a430: 7df2 ldrb r2, [r6, #23]
a432: 0753 lsls r3, r2, #29
a434: d470 bmi.n a518 <lv_draw_label+0xedc>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
a436: 0713 lsls r3, r2, #28
a438: d500 bpl.n a43c <lv_draw_label+0xe00>
a43a: e082 b.n a542 <lv_draw_label+0xf06>
a43c: 9b13 ldr r3, [sp, #76] ; 0x4c
a43e: 991f ldr r1, [sp, #124] ; 0x7c
a440: 468c mov ip, r1
a442: 4463 add r3, ip
a444: 9a18 ldr r2, [sp, #96] ; 0x60
a446: 4462 add r2, ip
a448: b292 uxth r2, r2
a44a: 9218 str r2, [sp, #96] ; 0x60
line_start = line_end;
a44c: 9a0b ldr r2, [sp, #44] ; 0x2c
a44e: 9206 str r2, [sp, #24]
pos.y += line_height;
a450: b21b sxth r3, r3
a452: 001a movs r2, r3
a454: 9313 str r3, [sp, #76] ; 0x4c
if(pos.y > mask->y2) return;
a456: 9b0f ldr r3, [sp, #60] ; 0x3c
a458: 2106 movs r1, #6
a45a: 5e5b ldrsh r3, [r3, r1]
a45c: 4293 cmp r3, r2
a45e: da01 bge.n a464 <lv_draw_label+0xe28>
a460: f7ff f900 bl 9664 <lv_draw_label+0x28>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
a464: 940b str r4, [sp, #44] ; 0x2c
while(txt[line_start] != '\0') {
a466: 9b0e ldr r3, [sp, #56] ; 0x38
a468: 9a06 ldr r2, [sp, #24]
a46a: 4694 mov ip, r2
a46c: 4463 add r3, ip
a46e: 930d str r3, [sp, #52] ; 0x34
a470: 781b ldrb r3, [r3, #0]
a472: 2b00 cmp r3, #0
a474: d101 bne.n a47a <lv_draw_label+0xe3e>
a476: f7ff f8f5 bl 9664 <lv_draw_label+0x28>
pos.x += x_ofs;
a47a: 9b21 ldr r3, [sp, #132] ; 0x84
a47c: 469c mov ip, r3
a47e: 4465 add r5, ip
a480: b22b sxth r3, r5
a482: 9309 str r3, [sp, #36] ; 0x24
i = 0;
a484: 2300 movs r3, #0
a486: 9354 str r3, [sp, #336] ; 0x150
cmd_state = CMD_STATE_WAIT;
a488: 9308 str r3, [sp, #32]
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
a48a: 4b3c ldr r3, [pc, #240] ; (a57c <lv_draw_label+0xf40>)
a48c: 469b mov fp, r3
a48e: 4647 mov r7, r8
a490: 46b1 mov r9, r6
while(i < line_end - line_start) {
a492: f7ff fad9 bl 9a48 <lv_draw_label+0x40c>
p1.x = pos_x_start;
a496: a83a add r0, sp, #232 ; 0xe8
a498: 466b mov r3, sp
a49a: 2290 movs r2, #144 ; 0x90
a49c: 189b adds r3, r3, r2
a49e: 881b ldrh r3, [r3, #0]
a4a0: 8003 strh r3, [r0, #0]
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
a4a2: 6873 ldr r3, [r6, #4]
a4a4: 2208 movs r2, #8
a4a6: 5e9b ldrsh r3, [r3, r2]
a4a8: 0fda lsrs r2, r3, #31
a4aa: 18d2 adds r2, r2, r3
a4ac: 1052 asrs r2, r2, #1
a4ae: ab55 add r3, sp, #340 ; 0x154
a4b0: 2102 movs r1, #2
a4b2: 5e5c ldrsh r4, [r3, r1]
a4b4: 0fe1 lsrs r1, r4, #31
a4b6: 1909 adds r1, r1, r4
a4b8: 1049 asrs r1, r1, #1
a4ba: 1852 adds r2, r2, r1
a4bc: 9918 ldr r1, [sp, #96] ; 0x60
a4be: 468c mov ip, r1
a4c0: 4462 add r2, ip
a4c2: b212 sxth r2, r2
a4c4: 8042 strh r2, [r0, #2]
p2.x = pos.x;
a4c6: a93c add r1, sp, #240 ; 0xf0
a4c8: 466c mov r4, sp
a4ca: 8ca4 ldrh r4, [r4, #36] ; 0x24
a4cc: 800c strh r4, [r1, #0]
p2.y = p1.y;
a4ce: 804a strh r2, [r1, #2]
lv_draw_line(&p1, &p2, mask, &line_dsc);
a4d0: 9a0f ldr r2, [sp, #60] ; 0x3c
a4d2: 4c2b ldr r4, [pc, #172] ; (a580 <lv_draw_label+0xf44>)
a4d4: 47a0 blx r4
a4d6: e796 b.n a406 <lv_draw_label+0xdca>
p1.x = pos_x_start;
a4d8: a83a add r0, sp, #232 ; 0xe8
a4da: 466b mov r3, sp
a4dc: 2290 movs r2, #144 ; 0x90
a4de: 189b adds r3, r3, r2
a4e0: 881b ldrh r3, [r3, #0]
a4e2: 8003 strh r3, [r0, #0]
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
a4e4: 6871 ldr r1, [r6, #4]
a4e6: ab55 add r3, sp, #340 ; 0x154
a4e8: 2202 movs r2, #2
a4ea: 5e9c ldrsh r4, [r3, r2]
a4ec: 0fe2 lsrs r2, r4, #31
a4ee: 1912 adds r2, r2, r4
a4f0: 1052 asrs r2, r2, #1
a4f2: 3201 adds r2, #1
a4f4: 890c ldrh r4, [r1, #8]
a4f6: 1912 adds r2, r2, r4
a4f8: 8949 ldrh r1, [r1, #10]
a4fa: 1a52 subs r2, r2, r1
a4fc: 9918 ldr r1, [sp, #96] ; 0x60
a4fe: 468c mov ip, r1
a500: 4462 add r2, ip
a502: b212 sxth r2, r2
a504: 8042 strh r2, [r0, #2]
p2.x = pos.x;
a506: a93c add r1, sp, #240 ; 0xf0
a508: 466c mov r4, sp
a50a: 8ca4 ldrh r4, [r4, #36] ; 0x24
a50c: 800c strh r4, [r1, #0]
p2.y = p1.y;
a50e: 804a strh r2, [r1, #2]
lv_draw_line(&p1, &p2, mask, &line_dsc);
a510: 9a0f ldr r2, [sp, #60] ; 0x3c
a512: 4c1b ldr r4, [pc, #108] ; (a580 <lv_draw_label+0xf44>)
a514: 47a0 blx r4
a516: e779 b.n a40c <lv_draw_label+0xdd0>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
a518: 210c movs r1, #12
a51a: 5e73 ldrsh r3, [r6, r1]
a51c: 9200 str r2, [sp, #0]
a51e: 9a05 ldr r2, [sp, #20]
a520: 0001 movs r1, r0
a522: 0038 movs r0, r7
a524: 4f17 ldr r7, [pc, #92] ; (a584 <lv_draw_label+0xf48>)
a526: 47b8 blx r7
a528: 9a11 ldr r2, [sp, #68] ; 0x44
a52a: 8893 ldrh r3, [r2, #4]
a52c: 3301 adds r3, #1
a52e: 8812 ldrh r2, [r2, #0]
a530: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
a532: b21b sxth r3, r3
a534: 1a18 subs r0, r3, r0
a536: 0fc3 lsrs r3, r0, #31
a538: 1818 adds r0, r3, r0
a53a: 1040 asrs r0, r0, #1
a53c: 1945 adds r5, r0, r5
a53e: b22d sxth r5, r5
a540: e77c b.n a43c <lv_draw_label+0xe00>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
a542: 210c movs r1, #12
a544: 5e73 ldrsh r3, [r6, r1]
a546: 9200 str r2, [sp, #0]
a548: 9a05 ldr r2, [sp, #20]
a54a: 0001 movs r1, r0
a54c: 0038 movs r0, r7
a54e: 4f0d ldr r7, [pc, #52] ; (a584 <lv_draw_label+0xf48>)
a550: 47b8 blx r7
a552: 9a11 ldr r2, [sp, #68] ; 0x44
a554: 8893 ldrh r3, [r2, #4]
a556: 3301 adds r3, #1
a558: 8812 ldrh r2, [r2, #0]
a55a: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
a55c: b21b sxth r3, r3
a55e: 1a18 subs r0, r3, r0
a560: 1945 adds r5, r0, r5
a562: b22d sxth r5, r5
a564: e76a b.n a43c <lv_draw_label+0xe00>
cmd_state = CMD_STATE_WAIT;
a566: 2300 movs r3, #0
a568: 9308 str r3, [sp, #32]
a56a: f7ff f9d3 bl 9914 <lv_draw_label+0x2d8>
a56e: 46c0 nop ; (mov r8, r8)
a570: 00006fed .word 0x00006fed
a574: 00012465 .word 0x00012465
a578: 00013c21 .word 0x00013c21
a57c: 20000058 .word 0x20000058
a580: 0000a5b9 .word 0x0000a5b9
a584: 00013e99 .word 0x00013e99
0000a588 <lv_draw_line_dsc_init>:
/**********************
* GLOBAL FUNCTIONS
**********************/
LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc)
{
a588: b510 push {r4, lr}
a58a: 0004 movs r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
a58c: 210a movs r1, #10
a58e: 4b08 ldr r3, [pc, #32] ; (a5b0 <lv_draw_line_dsc_init+0x28>)
a590: 4798 blx r3
dsc->width = 1;
a592: 2301 movs r3, #1
a594: 8063 strh r3, [r4, #2]
dsc->opa = LV_OPA_COVER;
a596: 33fe adds r3, #254 ; 0xfe
a598: 7223 strb r3, [r4, #8]
dsc->color = LV_COLOR_BLACK;
a59a: 7823 ldrb r3, [r4, #0]
a59c: 221f movs r2, #31
a59e: 4393 bics r3, r2
a5a0: 7023 strb r3, [r4, #0]
a5a2: 8823 ldrh r3, [r4, #0]
a5a4: 4a03 ldr r2, [pc, #12] ; (a5b4 <lv_draw_line_dsc_init+0x2c>)
a5a6: 4013 ands r3, r2
a5a8: 8023 strh r3, [r4, #0]
a5aa: 2300 movs r3, #0
a5ac: 7063 strb r3, [r4, #1]
}
a5ae: bd10 pop {r4, pc}
a5b0: 00012975 .word 0x00012975
a5b4: fffff81f .word 0xfffff81f
0000a5b8 <lv_draw_line>:
* @param style pointer to a line's style
* @param opa_scale scale down all opacities by the factor
*/
LV_ATTRIBUTE_FAST_MEM void lv_draw_line(const lv_point_t * point1, const lv_point_t * point2, const lv_area_t * clip,
lv_draw_line_dsc_t * dsc)
{
a5b8: b5f0 push {r4, r5, r6, r7, lr}
a5ba: 46de mov lr, fp
a5bc: 4657 mov r7, sl
a5be: 464e mov r6, r9
a5c0: 4645 mov r5, r8
a5c2: b5e0 push {r5, r6, r7, lr}
a5c4: b0cb sub sp, #300 ; 0x12c
a5c6: 9005 str r0, [sp, #20]
a5c8: 000e movs r6, r1
a5ca: 9106 str r1, [sp, #24]
a5cc: 9207 str r2, [sp, #28]
a5ce: 001c movs r4, r3
if(dsc->width == 0) return;
a5d0: 2202 movs r2, #2
a5d2: 5e9b ldrsh r3, [r3, r2]
a5d4: 2b00 cmp r3, #0
a5d6: d101 bne.n a5dc <lv_draw_line+0x24>
a5d8: f000 fc46 bl ae68 <lv_draw_line+0x8b0>
if(dsc->opa <= LV_OPA_MIN) return;
a5dc: 7a22 ldrb r2, [r4, #8]
a5de: 2a05 cmp r2, #5
a5e0: d801 bhi.n a5e6 <lv_draw_line+0x2e>
a5e2: f000 fc41 bl ae68 <lv_draw_line+0x8b0>
if(point1->x == point2->x && point1->y == point2->y) return;
a5e6: 0002 movs r2, r0
a5e8: 2000 movs r0, #0
a5ea: 5e11 ldrsh r1, [r2, r0]
a5ec: 2500 movs r5, #0
a5ee: 5f70 ldrsh r0, [r6, r5]
a5f0: 4281 cmp r1, r0
a5f2: d100 bne.n a5f6 <lv_draw_line+0x3e>
a5f4: e12b b.n a84e <lv_draw_line+0x296>
lv_area_t clip_line;
clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2;
a5f6: 0fda lsrs r2, r3, #31
a5f8: 18d3 adds r3, r2, r3
a5fa: 105b asrs r3, r3, #1
a5fc: b29b uxth r3, r3
a5fe: 1c0a adds r2, r1, #0
a600: 4281 cmp r1, r0
a602: dd00 ble.n a606 <lv_draw_line+0x4e>
a604: 1c02 adds r2, r0, #0
a606: 1ad2 subs r2, r2, r3
a608: ad48 add r5, sp, #288 ; 0x120
a60a: 802a strh r2, [r5, #0]
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
a60c: 1c0a adds r2, r1, #0
a60e: 4281 cmp r1, r0
a610: da00 bge.n a614 <lv_draw_line+0x5c>
a612: 1c02 adds r2, r0, #0
a614: 189a adds r2, r3, r2
a616: a948 add r1, sp, #288 ; 0x120
a618: 808a strh r2, [r1, #4]
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
a61a: 9a06 ldr r2, [sp, #24]
a61c: 2102 movs r1, #2
a61e: 5e52 ldrsh r2, [r2, r1]
a620: 9905 ldr r1, [sp, #20]
a622: 2002 movs r0, #2
a624: 5e08 ldrsh r0, [r1, r0]
a626: 1c11 adds r1, r2, #0
a628: 4282 cmp r2, r0
a62a: dd00 ble.n a62e <lv_draw_line+0x76>
a62c: 1c01 adds r1, r0, #0
a62e: 1ac9 subs r1, r1, r3
a630: ad48 add r5, sp, #288 ; 0x120
a632: 8069 strh r1, [r5, #2]
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
a634: 1c11 adds r1, r2, #0
a636: 4282 cmp r2, r0
a638: da00 bge.n a63c <lv_draw_line+0x84>
a63a: 1c01 adds r1, r0, #0
a63c: 185b adds r3, r3, r1
a63e: aa48 add r2, sp, #288 ; 0x120
a640: 80d3 strh r3, [r2, #6]
bool is_common;
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
a642: 9a07 ldr r2, [sp, #28]
a644: a948 add r1, sp, #288 ; 0x120
a646: 0008 movs r0, r1
a648: 4bd5 ldr r3, [pc, #852] ; (a9a0 <lv_draw_line+0x3e8>)
a64a: 4798 blx r3
if(!is_common) return;
a64c: 2800 cmp r0, #0
a64e: d101 bne.n a654 <lv_draw_line+0x9c>
a650: f000 fc0a bl ae68 <lv_draw_line+0x8b0>
if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc);
a654: 9b05 ldr r3, [sp, #20]
a656: 2602 movs r6, #2
a658: 5f9e ldrsh r6, [r3, r6]
a65a: 9b06 ldr r3, [sp, #24]
a65c: 2502 movs r5, #2
a65e: 5f5d ldrsh r5, [r3, r5]
a660: 42ae cmp r6, r5
a662: d100 bne.n a666 <lv_draw_line+0xae>
a664: e0fc b.n a860 <lv_draw_line+0x2a8>
else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc);
a666: 9b05 ldr r3, [sp, #20]
a668: 2200 movs r2, #0
a66a: 5e9a ldrsh r2, [r3, r2]
a66c: 0011 movs r1, r2
a66e: 9208 str r2, [sp, #32]
a670: 9b06 ldr r3, [sp, #24]
a672: 2200 movs r2, #0
a674: 5e9b ldrsh r3, [r3, r2]
a676: 469a mov sl, r3
a678: 4551 cmp r1, sl
a67a: d100 bne.n a67e <lv_draw_line+0xc6>
a67c: e206 b.n aa8c <lv_draw_line+0x4d4>
lv_draw_line_dsc_t * dsc)
{
/*Keep the great y in p1*/
lv_point_t p1;
lv_point_t p2;
if(point1->y < point2->y) {
a67e: 42ae cmp r6, r5
a680: db06 blt.n a690 <lv_draw_line+0xd8>
a682: 0033 movs r3, r6
p2.y = point2->y;
p1.x = point1->x;
p2.x = point2->x;
}
else {
p1.y = point2->y;
a684: 002e movs r6, r5
p2.y = point1->y;
a686: 001d movs r5, r3
if(point1->y < point2->y) {
a688: 9b08 ldr r3, [sp, #32]
p1.x = point2->x;
a68a: 4652 mov r2, sl
a68c: 9208 str r2, [sp, #32]
p2.x = point1->x;
a68e: 469a mov sl, r3
}
int32_t xdiff = p2.x - p1.x;
a690: 4653 mov r3, sl
a692: 9a08 ldr r2, [sp, #32]
a694: 1a9b subs r3, r3, r2
a696: 9309 str r3, [sp, #36] ; 0x24
int32_t ydiff = p2.y - p1.y;
a698: 1baa subs r2, r5, r6
a69a: 920a str r2, [sp, #40] ; 0x28
bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false;
a69c: 17d9 asrs r1, r3, #31
a69e: 185b adds r3, r3, r1
a6a0: 404b eors r3, r1
a6a2: 4699 mov r9, r3
a6a4: 17d1 asrs r1, r2, #31
a6a6: 1853 adds r3, r2, r1
a6a8: 404b eors r3, r1
a6aa: 469b mov fp, r3
143, 145, 147, 149, 151, 153, 155, 158,
160, 162, 165, 167, 170, 173, 175, 178,
181,
};
int32_t w = dsc->width;
a6ac: 2202 movs r2, #2
a6ae: 5ea3 ldrsh r3, [r4, r2]
a6b0: 4698 mov r8, r3
int32_t wcorr_i = 0;
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
a6b2: 45d9 cmp r9, fp
a6b4: dc00 bgt.n a6b8 <lv_draw_line+0x100>
a6b6: e2d0 b.n ac5a <lv_draw_line+0x6a2>
a6b8: 465b mov r3, fp
a6ba: 0158 lsls r0, r3, #5
a6bc: 4649 mov r1, r9
a6be: 4bb9 ldr r3, [pc, #740] ; (a9a4 <lv_draw_line+0x3ec>)
a6c0: 4798 blx r3
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
a6c2: 4bb9 ldr r3, [pc, #740] ; (a9a8 <lv_draw_line+0x3f0>)
a6c4: 5c1b ldrb r3, [r3, r0]
a6c6: 4642 mov r2, r8
a6c8: 435a muls r2, r3
a6ca: 0013 movs r3, r2
a6cc: 223f movs r2, #63 ; 0x3f
a6ce: 4690 mov r8, r2
a6d0: 4498 add r8, r3
a6d2: 4643 mov r3, r8
a6d4: 11db asrs r3, r3, #7
a6d6: 001f movs r7, r3
int32_t w_half0 = w >> 1;
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
lv_area_t draw_area;
draw_area.x1 = LV_MATH_MIN(p1.x, p2.x) - w;
a6d8: b29b uxth r3, r3
a6da: 4652 mov r2, sl
a6dc: 9808 ldr r0, [sp, #32]
a6de: 4582 cmp sl, r0
a6e0: dd00 ble.n a6e4 <lv_draw_line+0x12c>
a6e2: 1c02 adds r2, r0, #0
a6e4: 1ad2 subs r2, r2, r3
a6e6: a90e add r1, sp, #56 ; 0x38
a6e8: 800a strh r2, [r1, #0]
draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w;
a6ea: 4652 mov r2, sl
a6ec: 9808 ldr r0, [sp, #32]
a6ee: 4582 cmp sl, r0
a6f0: da00 bge.n a6f4 <lv_draw_line+0x13c>
a6f2: 1c02 adds r2, r0, #0
a6f4: 189a adds r2, r3, r2
a6f6: a90e add r1, sp, #56 ; 0x38
a6f8: 808a strh r2, [r1, #4]
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
a6fa: 1c2a adds r2, r5, #0
a6fc: 42b5 cmp r5, r6
a6fe: dd00 ble.n a702 <lv_draw_line+0x14a>
a700: 1c32 adds r2, r6, #0
a702: 1ad2 subs r2, r2, r3
a704: a90e add r1, sp, #56 ; 0x38
a706: 804a strh r2, [r1, #2]
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
a708: 1c2a adds r2, r5, #0
a70a: 42b5 cmp r5, r6
a70c: da00 bge.n a710 <lv_draw_line+0x158>
a70e: 1c32 adds r2, r6, #0
a710: 189b adds r3, r3, r2
a712: aa0e add r2, sp, #56 ; 0x38
a714: 80d3 strh r3, [r2, #6]
/* Get the union of `coords` and `clip`*/
/* `clip` is already truncated to the `vdb` size
* in 'lv_refr_area' function */
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
a716: aa48 add r2, sp, #288 ; 0x120
a718: a90e add r1, sp, #56 ; 0x38
a71a: 0008 movs r0, r1
a71c: 4ba0 ldr r3, [pc, #640] ; (a9a0 <lv_draw_line+0x3e8>)
a71e: 4798 blx r3
if(is_common == false) return;
a720: 2800 cmp r0, #0
a722: d100 bne.n a726 <lv_draw_line+0x16e>
a724: e39c b.n ae60 <lv_draw_line+0x8a8>
int32_t w_half0 = w >> 1;
a726: 4643 mov r3, r8
a728: 121b asrs r3, r3, #8
a72a: 4698 mov r8, r3
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
a72c: 2301 movs r3, #1
a72e: 403b ands r3, r7
a730: 4443 add r3, r8
a732: 930b str r3, [sp, #44] ; 0x2c
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) {
a734: 45d9 cmp r9, fp
a736: dc00 bgt.n a73a <lv_draw_line+0x182>
a738: e2ba b.n acb0 <lv_draw_line+0x6f8>
if(xdiff > 0) {
a73a: 9a09 ldr r2, [sp, #36] ; 0x24
a73c: 2a00 cmp r2, #0
a73e: dc00 bgt.n a742 <lv_draw_line+0x18a>
a740: e291 b.n ac66 <lv_draw_line+0x6ae>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
a742: b2b2 uxth r2, r6
a744: 4641 mov r1, r8
a746: 466b mov r3, sp
a748: 8619 strh r1, [r3, #48] ; 0x30
a74a: b28b uxth r3, r1
a74c: b2a9 uxth r1, r5
a74e: 4693 mov fp, r2
a750: 1ad2 subs r2, r2, r3
a752: b212 sxth r2, r2
a754: 2000 movs r0, #0
a756: 9001 str r0, [sp, #4]
a758: 4689 mov r9, r1
a75a: 1acb subs r3, r1, r3
a75c: b21b sxth r3, r3
a75e: 9300 str r3, [sp, #0]
a760: 4653 mov r3, sl
a762: 9908 ldr r1, [sp, #32]
a764: a812 add r0, sp, #72 ; 0x48
a766: 4f91 ldr r7, [pc, #580] ; (a9ac <lv_draw_line+0x3f4>)
a768: 47b8 blx r7
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,
a76a: 466b mov r3, sp
a76c: 8d9b ldrh r3, [r3, #44] ; 0x2c
a76e: 465a mov r2, fp
a770: 18d2 adds r2, r2, r3
a772: b212 sxth r2, r2
a774: 2101 movs r1, #1
a776: 9101 str r1, [sp, #4]
a778: 444b add r3, r9
a77a: b21b sxth r3, r3
a77c: 9300 str r3, [sp, #0]
a77e: 4653 mov r3, sl
a780: 9908 ldr r1, [sp, #32]
a782: a81d add r0, sp, #116 ; 0x74
a784: 47b8 blx r7
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);
a786: 2100 movs r1, #0
a788: a812 add r0, sp, #72 ; 0x48
a78a: 4b89 ldr r3, [pc, #548] ; (a9b0 <lv_draw_line+0x3f8>)
a78c: 4698 mov r8, r3
a78e: 4798 blx r3
a790: 900b str r0, [sp, #44] ; 0x2c
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
a792: 2100 movs r1, #0
a794: a81d add r0, sp, #116 ; 0x74
a796: 47c0 blx r8
a798: 900c str r0, [sp, #48] ; 0x30
int16_t mask_top_id = LV_MASK_ID_INV;
int16_t mask_bottom_id = LV_MASK_ID_INV;
if(!dsc->raw_end) {
a79a: 7a63 ldrb r3, [r4, #9]
a79c: 06db lsls r3, r3, #27
a79e: d400 bmi.n a7a2 <lv_draw_line+0x1ea>
a7a0: e2ac b.n acfc <lv_draw_line+0x744>
int16_t mask_bottom_id = LV_MASK_ID_INV;
a7a2: 2301 movs r3, #1
a7a4: 425b negs r3, r3
a7a6: 930d str r3, [sp, #52] ; 0x34
int16_t mask_top_id = LV_MASK_ID_INV;
a7a8: 930a str r3, [sp, #40] ; 0x28
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);
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
}
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a7aa: 4b82 ldr r3, [pc, #520] ; (a9b4 <lv_draw_line+0x3fc>)
a7ac: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a7ae: 4b82 ldr r3, [pc, #520] ; (a9b8 <lv_draw_line+0x400>)
a7b0: 4798 blx r3
a7b2: 4681 mov r9, r0
const lv_area_t * disp_area = &vdb->area;
/*Store the coordinates of the `draw_a` relative to the VDB */
draw_area.x1 -= disp_area->x1;
a7b4: 8a02 ldrh r2, [r0, #16]
a7b6: a80e add r0, sp, #56 ; 0x38
a7b8: 8805 ldrh r5, [r0, #0]
a7ba: 1aad subs r5, r5, r2
a7bc: b2ab uxth r3, r5
a7be: 8003 strh r3, [r0, #0]
draw_area.y1 -= disp_area->y1;
a7c0: 4649 mov r1, r9
a7c2: 8a49 ldrh r1, [r1, #18]
a7c4: 8845 ldrh r5, [r0, #2]
a7c6: 1a6d subs r5, r5, r1
a7c8: 8045 strh r5, [r0, #2]
draw_area.x2 -= disp_area->x1;
a7ca: 8885 ldrh r5, [r0, #4]
a7cc: 1aad subs r5, r5, r2
a7ce: b2ad uxth r5, r5
a7d0: 8085 strh r5, [r0, #4]
draw_area.y2 -= disp_area->y1;
a7d2: 88c2 ldrh r2, [r0, #6]
a7d4: 1a52 subs r2, r2, r1
a7d6: 80c2 strh r2, [r0, #6]
a7d8: 3501 adds r5, #1
a7da: 1aed subs r5, r5, r3
a7dc: b22d sxth r5, r5
* So deal with it only with steep lines. */
int32_t draw_area_w = lv_area_get_width(&draw_area);
/*Draw the background line by line*/
int32_t h;
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
a7de: 4b77 ldr r3, [pc, #476] ; (a9bc <lv_draw_line+0x404>)
a7e0: 4798 blx r3
a7e2: 23e0 movs r3, #224 ; 0xe0
a7e4: 33ff adds r3, #255 ; 0xff
a7e6: 4298 cmp r0, r3
a7e8: d800 bhi.n a7ec <lv_draw_line+0x234>
a7ea: e2b3 b.n ad54 <lv_draw_line+0x79c>
a7ec: 23f0 movs r3, #240 ; 0xf0
a7ee: 005b lsls r3, r3, #1
a7f0: 469b mov fp, r3
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
a7f2: 4658 mov r0, fp
a7f4: 4b72 ldr r3, [pc, #456] ; (a9c0 <lv_draw_line+0x408>)
a7f6: 4798 blx r3
a7f8: 4680 mov r8, r0
lv_area_t fill_area;
fill_area.x1 = draw_area.x1 + disp_area->x1;
a7fa: 464b mov r3, r9
a7fc: 8a1b ldrh r3, [r3, #16]
a7fe: af0e add r7, sp, #56 ; 0x38
a800: 883a ldrh r2, [r7, #0]
a802: 189a adds r2, r3, r2
a804: b212 sxth r2, r2
a806: 0011 movs r1, r2
a808: 9209 str r2, [sp, #36] ; 0x24
a80a: aa10 add r2, sp, #64 ; 0x40
a80c: 8011 strh r1, [r2, #0]
fill_area.x2 = draw_area.x2 + disp_area->x1;
a80e: 88b9 ldrh r1, [r7, #4]
a810: 185b adds r3, r3, r1
a812: 8093 strh r3, [r2, #4]
fill_area.y1 = draw_area.y1 + disp_area->y1;
a814: 887b ldrh r3, [r7, #2]
a816: 4649 mov r1, r9
a818: 8a49 ldrh r1, [r1, #18]
a81a: 185b adds r3, r3, r1
a81c: b21b sxth r3, r3
a81e: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
a820: 80d3 strh r3, [r2, #6]
int32_t x = vdb->area.x1 + draw_area.x1;
uint32_t mask_p = 0;
_lv_memset_ff(mask_buf, mask_buf_size);
a822: 4659 mov r1, fp
a824: 4b67 ldr r3, [pc, #412] ; (a9c4 <lv_draw_line+0x40c>)
a826: 4798 blx r3
/*Fill the first row with 'color'*/
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
a828: 464b mov r3, r9
a82a: 2212 movs r2, #18
a82c: 5e9a ldrsh r2, [r3, r2]
a82e: 2302 movs r3, #2
a830: 5efe ldrsh r6, [r7, r3]
a832: 18b6 adds r6, r6, r2
a834: 2106 movs r1, #6
a836: 5e7b ldrsh r3, [r7, r1]
a838: 189b adds r3, r3, r2
a83a: 429e cmp r6, r3
a83c: dd00 ble.n a840 <lv_draw_line+0x288>
a83e: e2ec b.n ae1a <lv_draw_line+0x862>
a840: 2700 movs r7, #0
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
a842: 4b61 ldr r3, [pc, #388] ; (a9c8 <lv_draw_line+0x410>)
a844: 469a mov sl, r3
mask_p += draw_area_w;
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
fill_area.y2 ++;
}
else {
_lv_blend_fill(&fill_area, clip,
a846: 0023 movs r3, r4
a848: 4644 mov r4, r8
a84a: 4698 mov r8, r3
a84c: e2d0 b.n adf0 <lv_draw_line+0x838>
if(point1->x == point2->x && point1->y == point2->y) return;
a84e: 2502 movs r5, #2
a850: 5f55 ldrsh r5, [r2, r5]
a852: 0032 movs r2, r6
a854: 2602 movs r6, #2
a856: 5f92 ldrsh r2, [r2, r6]
a858: 4295 cmp r5, r2
a85a: d000 beq.n a85e <lv_draw_line+0x2a6>
a85c: e6cb b.n a5f6 <lv_draw_line+0x3e>
a85e: e303 b.n ae68 <lv_draw_line+0x8b0>
lv_opa_t opa = dsc->opa;
a860: 7a23 ldrb r3, [r4, #8]
a862: 4698 mov r8, r3
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a864: 4b53 ldr r3, [pc, #332] ; (a9b4 <lv_draw_line+0x3fc>)
a866: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a868: 4b53 ldr r3, [pc, #332] ; (a9b8 <lv_draw_line+0x400>)
a86a: 4798 blx r3
a86c: 4681 mov r9, r0
int32_t w = dsc->width - 1;
a86e: 2202 movs r2, #2
a870: 5ea3 ldrsh r3, [r4, r2]
a872: 3b01 subs r3, #1
int32_t w_half0 = w >> 1;
a874: 105e asrs r6, r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
a876: 2501 movs r5, #1
a878: 401d ands r5, r3
a87a: 19ad adds r5, r5, r6
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
a87c: 2306 movs r3, #6
a87e: 5ee2 ldrsh r2, [r4, r3]
a880: 2300 movs r3, #0
a882: 2a00 cmp r2, #0
a884: d004 beq.n a890 <lv_draw_line+0x2d8>
a886: 2204 movs r2, #4
a888: 5ea3 ldrsh r3, [r4, r2]
a88a: 1e5a subs r2, r3, #1
a88c: 4193 sbcs r3, r2
a88e: b2db uxtb r3, r3
a890: 001f movs r7, r3
a892: 9309 str r3, [sp, #36] ; 0x24
if(lv_draw_mask_get_cnt()) simple_mode = false;
a894: 4b4d ldr r3, [pc, #308] ; (a9cc <lv_draw_line+0x414>)
a896: 4798 blx r3
a898: 2100 movs r1, #0
a89a: 2800 cmp r0, #0
a89c: d101 bne.n a8a2 <lv_draw_line+0x2ea>
else if(dashed) simple_mode = false;
a89e: 3101 adds r1, #1
a8a0: 4079 eors r1, r7
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
a8a2: 9b06 ldr r3, [sp, #24]
a8a4: 2200 movs r2, #0
a8a6: 5e9b ldrsh r3, [r3, r2]
a8a8: 9a05 ldr r2, [sp, #20]
a8aa: 2000 movs r0, #0
a8ac: 5e10 ldrsh r0, [r2, r0]
a8ae: 1c1a adds r2, r3, #0
a8b0: 4283 cmp r3, r0
a8b2: dd00 ble.n a8b6 <lv_draw_line+0x2fe>
a8b4: 1c02 adds r2, r0, #0
a8b6: af28 add r7, sp, #160 ; 0xa0
a8b8: 803a strh r2, [r7, #0]
draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1;
a8ba: 1c1a adds r2, r3, #0
a8bc: 4283 cmp r3, r0
a8be: da00 bge.n a8c2 <lv_draw_line+0x30a>
a8c0: 1c02 adds r2, r0, #0
a8c2: 3a01 subs r2, #1
a8c4: ab28 add r3, sp, #160 ; 0xa0
a8c6: 809a strh r2, [r3, #4]
draw_area.y1 = point1->y - w_half1;
a8c8: 9b05 ldr r3, [sp, #20]
a8ca: 885b ldrh r3, [r3, #2]
a8cc: aa28 add r2, sp, #160 ; 0xa0
a8ce: 1b5d subs r5, r3, r5
a8d0: 8055 strh r5, [r2, #2]
draw_area.y2 = point1->y + w_half0;
a8d2: 199e adds r6, r3, r6
a8d4: 80d6 strh r6, [r2, #6]
if(simple_mode) {
a8d6: 2900 cmp r1, #0
a8d8: d00e beq.n a8f8 <lv_draw_line+0x340>
_lv_blend_fill(clip, &draw_area,
a8da: 8822 ldrh r2, [r4, #0]
dsc->blend_mode);
a8dc: 7a63 ldrb r3, [r4, #9]
a8de: 079b lsls r3, r3, #30
_lv_blend_fill(clip, &draw_area,
a8e0: 0f9b lsrs r3, r3, #30
a8e2: 9302 str r3, [sp, #8]
a8e4: 4643 mov r3, r8
a8e6: 9301 str r3, [sp, #4]
a8e8: 2301 movs r3, #1
a8ea: 9300 str r3, [sp, #0]
a8ec: 2300 movs r3, #0
a8ee: a928 add r1, sp, #160 ; 0xa0
a8f0: a848 add r0, sp, #288 ; 0x120
a8f2: 4d37 ldr r5, [pc, #220] ; (a9d0 <lv_draw_line+0x418>)
a8f4: 47a8 blx r5
a8f6: e2b3 b.n ae60 <lv_draw_line+0x8a8>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
a8f8: aa28 add r2, sp, #160 ; 0xa0
a8fa: a948 add r1, sp, #288 ; 0x120
a8fc: 0010 movs r0, r2
a8fe: 4b28 ldr r3, [pc, #160] ; (a9a0 <lv_draw_line+0x3e8>)
a900: 4798 blx r3
if(!is_common) return;
a902: 2800 cmp r0, #0
a904: d100 bne.n a908 <lv_draw_line+0x350>
a906: e2ab b.n ae60 <lv_draw_line+0x8a8>
draw_area.x1 -= disp_area->x1;
a908: aa28 add r2, sp, #160 ; 0xa0
a90a: 2300 movs r3, #0
a90c: 5ed7 ldrsh r7, [r2, r3]
a90e: 464b mov r3, r9
a910: 2110 movs r1, #16
a912: 5e5b ldrsh r3, [r3, r1]
a914: 469b mov fp, r3
a916: 4669 mov r1, sp
a918: 840b strh r3, [r1, #32]
a91a: 8c0b ldrh r3, [r1, #32]
a91c: 1af9 subs r1, r7, r3
a91e: b289 uxth r1, r1
a920: 4688 mov r8, r1
a922: b209 sxth r1, r1
a924: 468a mov sl, r1
a926: 8011 strh r1, [r2, #0]
draw_area.y1 -= disp_area->y1;
a928: 2002 movs r0, #2
a92a: 5e11 ldrsh r1, [r2, r0]
a92c: 464d mov r5, r9
a92e: 8a6d ldrh r5, [r5, #18]
a930: 46ac mov ip, r5
a932: 1b4d subs r5, r1, r5
a934: 8055 strh r5, [r2, #2]
draw_area.x2 -= disp_area->x1;
a936: 2004 movs r0, #4
a938: 5e16 ldrsh r6, [r2, r0]
a93a: 1af3 subs r3, r6, r3
a93c: b29b uxth r3, r3
a93e: 8093 strh r3, [r2, #4]
draw_area.y2 -= disp_area->y1;
a940: 88d5 ldrh r5, [r2, #6]
a942: 4660 mov r0, ip
a944: 1a2d subs r5, r5, r0
a946: 80d5 strh r5, [r2, #6]
a948: 3301 adds r3, #1
a94a: 4642 mov r2, r8
a94c: 1a9b subs r3, r3, r2
a94e: b21b sxth r3, r3
a950: 930b str r3, [sp, #44] ; 0x2c
fill_area.x1 = draw_area.x1 + disp_area->x1;
a952: ab33 add r3, sp, #204 ; 0xcc
a954: 801f strh r7, [r3, #0]
fill_area.x2 = draw_area.x2 + disp_area->x1;
a956: 809e strh r6, [r3, #4]
fill_area.y1 = draw_area.y1 + disp_area->y1;
a958: 8059 strh r1, [r3, #2]
fill_area.y2 = fill_area.y1;
a95a: 80d9 strh r1, [r3, #6]
if(dashed) {
a95c: 2100 movs r1, #0
a95e: 9b09 ldr r3, [sp, #36] ; 0x24
a960: 2b00 cmp r3, #0
a962: d008 beq.n a976 <lv_draw_line+0x3be>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
a964: 4650 mov r0, sl
a966: 4458 add r0, fp
a968: 2306 movs r3, #6
a96a: 5ee1 ldrsh r1, [r4, r3]
a96c: 2204 movs r2, #4
a96e: 5ea3 ldrsh r3, [r4, r2]
a970: 18c9 adds r1, r1, r3
a972: 4b18 ldr r3, [pc, #96] ; (a9d4 <lv_draw_line+0x41c>)
a974: 4798 blx r3
a976: b20b sxth r3, r1
a978: 930c str r3, [sp, #48] ; 0x30
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a97a: 980b ldr r0, [sp, #44] ; 0x2c
a97c: 0007 movs r7, r0
a97e: 4b10 ldr r3, [pc, #64] ; (a9c0 <lv_draw_line+0x408>)
a980: 4798 blx r3
a982: 9008 str r0, [sp, #32]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
a984: ab28 add r3, sp, #160 ; 0xa0
a986: 2202 movs r2, #2
a988: 5e9e ldrsh r6, [r3, r2]
a98a: 2206 movs r2, #6
a98c: 5e9b ldrsh r3, [r3, r2]
a98e: 42b3 cmp r3, r6
a990: da00 bge.n a994 <lv_draw_line+0x3dc>
a992: e077 b.n aa84 <lv_draw_line+0x4cc>
_lv_memset_ff(mask_buf, draw_area_w);
a994: 4b0b ldr r3, [pc, #44] ; (a9c4 <lv_draw_line+0x40c>)
a996: 469b mov fp, r3
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
a998: 4b0b ldr r3, [pc, #44] ; (a9c8 <lv_draw_line+0x410>)
a99a: 469a mov sl, r3
a99c: 970a str r7, [sp, #40] ; 0x28
a99e: e050 b.n aa42 <lv_draw_line+0x48a>
a9a0: 0001140b .word 0x0001140b
a9a4: 0001c1b9 .word 0x0001c1b9
a9a8: 000263b0 .word 0x000263b0
a9ac: 0000bb91 .word 0x0000bb91
a9b0: 0000ba75 .word 0x0000ba75
a9b4: 00005591 .word 0x00005591
a9b8: 00010e75 .word 0x00010e75
a9bc: 000113ef .word 0x000113ef
a9c0: 000127a1 .word 0x000127a1
a9c4: 00012a19 .word 0x00012a19
a9c8: 0000bad1 .word 0x0000bad1
a9cc: 0000bb6d .word 0x0000bb6d
a9d0: 00006fed .word 0x00006fed
a9d4: 0001c385 .word 0x0001c385
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
a9d8: 2606 movs r6, #6
a9da: 5fa5 ldrsh r5, [r4, r6]
a9dc: 18ed adds r5, r5, r3
dash_cnt = 0;
a9de: 000b movs r3, r1
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
a9e0: 42aa cmp r2, r5
a9e2: da02 bge.n a9ea <lv_draw_line+0x432>
mask_buf[i] = 0x00;
a9e4: 9b08 ldr r3, [sp, #32]
a9e6: 5419 strb r1, [r3, r0]
a9e8: 0013 movs r3, r2
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
a9ea: 3001 adds r0, #1
a9ec: 3301 adds r3, #1
a9ee: b21a sxth r2, r3
a9f0: 4287 cmp r7, r0
a9f2: d907 bls.n aa04 <lv_draw_line+0x44c>
if(dash_cnt <= dsc->dash_width) {
a9f4: 2504 movs r5, #4
a9f6: 5f63 ldrsh r3, [r4, r5]
a9f8: 4293 cmp r3, r2
a9fa: dbed blt.n a9d8 <lv_draw_line+0x420>
int16_t diff = dsc->dash_width - dash_cnt;
a9fc: 1a9a subs r2, r3, r2
i += diff;
a9fe: b212 sxth r2, r2
aa00: 1880 adds r0, r0, r2
aa02: e7f2 b.n a9ea <lv_draw_line+0x432>
aa04: 970a str r7, [sp, #40] ; 0x28
aa06: 4666 mov r6, ip
mask_res = LV_DRAW_MASK_RES_CHANGED;
aa08: 2002 movs r0, #2
_lv_blend_fill(clip, &fill_area,
aa0a: 8822 ldrh r2, [r4, #0]
aa0c: ad33 add r5, sp, #204 ; 0xcc
dsc->blend_mode);
aa0e: 7a63 ldrb r3, [r4, #9]
aa10: 079b lsls r3, r3, #30
_lv_blend_fill(clip, &fill_area,
aa12: 0f9b lsrs r3, r3, #30
aa14: 9302 str r3, [sp, #8]
aa16: 7a23 ldrb r3, [r4, #8]
aa18: 9301 str r3, [sp, #4]
aa1a: 9000 str r0, [sp, #0]
aa1c: 9b08 ldr r3, [sp, #32]
aa1e: 0029 movs r1, r5
aa20: a848 add r0, sp, #288 ; 0x120
aa22: 4fd1 ldr r7, [pc, #836] ; (ad68 <lv_draw_line+0x7b0>)
aa24: 47b8 blx r7
fill_area.y1++;
aa26: 886b ldrh r3, [r5, #2]
aa28: 3301 adds r3, #1
aa2a: 806b strh r3, [r5, #2]
fill_area.y2++;
aa2c: 88eb ldrh r3, [r5, #6]
aa2e: 3301 adds r3, #1
aa30: 80eb strh r3, [r5, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
aa32: 3601 adds r6, #1
aa34: ab0a add r3, sp, #40 ; 0x28
aa36: 227e movs r2, #126 ; 0x7e
aa38: 189b adds r3, r3, r2
aa3a: 2200 movs r2, #0
aa3c: 5e9b ldrsh r3, [r3, r2]
aa3e: 429e cmp r6, r3
aa40: dc20 bgt.n aa84 <lv_draw_line+0x4cc>
_lv_memset_ff(mask_buf, draw_area_w);
aa42: 9f0a ldr r7, [sp, #40] ; 0x28
aa44: 0039 movs r1, r7
aa46: 9d08 ldr r5, [sp, #32]
aa48: 0028 movs r0, r5
aa4a: 47d8 blx fp
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
aa4c: 464b mov r3, r9
aa4e: 8a5a ldrh r2, [r3, #18]
aa50: 1992 adds r2, r2, r6
aa52: b212 sxth r2, r2
aa54: 8a19 ldrh r1, [r3, #16]
aa56: ab0a add r3, sp, #40 ; 0x28
aa58: 2078 movs r0, #120 ; 0x78
aa5a: 181b adds r3, r3, r0
aa5c: 881b ldrh r3, [r3, #0]
aa5e: 18c9 adds r1, r1, r3
aa60: b209 sxth r1, r1
aa62: 9b0b ldr r3, [sp, #44] ; 0x2c
aa64: 0028 movs r0, r5
aa66: 47d0 blx sl
if(dashed) {
aa68: 9b09 ldr r3, [sp, #36] ; 0x24
aa6a: 2b00 cmp r3, #0
aa6c: d0cd beq.n aa0a <lv_draw_line+0x452>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
aa6e: 2800 cmp r0, #0
aa70: d0cb beq.n aa0a <lv_draw_line+0x452>
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
aa72: 2f00 cmp r7, #0
aa74: d004 beq.n aa80 <lv_draw_line+0x4c8>
aa76: 9a0c ldr r2, [sp, #48] ; 0x30
aa78: 2000 movs r0, #0
dash_cnt = 0;
aa7a: 2100 movs r1, #0
aa7c: 46b4 mov ip, r6
aa7e: e7b9 b.n a9f4 <lv_draw_line+0x43c>
mask_res = LV_DRAW_MASK_RES_CHANGED;
aa80: 2002 movs r0, #2
aa82: e7c2 b.n aa0a <lv_draw_line+0x452>
_lv_mem_buf_release(mask_buf);
aa84: 9808 ldr r0, [sp, #32]
aa86: 4bb9 ldr r3, [pc, #740] ; (ad6c <lv_draw_line+0x7b4>)
aa88: 4798 blx r3
aa8a: e1e9 b.n ae60 <lv_draw_line+0x8a8>
lv_opa_t opa = dsc->opa;
aa8c: 7a23 ldrb r3, [r4, #8]
aa8e: 4698 mov r8, r3
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
aa90: 4bb7 ldr r3, [pc, #732] ; (ad70 <lv_draw_line+0x7b8>)
aa92: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
aa94: 4bb7 ldr r3, [pc, #732] ; (ad74 <lv_draw_line+0x7bc>)
aa96: 4798 blx r3
aa98: 0007 movs r7, r0
int32_t w = dsc->width - 1;
aa9a: 2202 movs r2, #2
aa9c: 5ea3 ldrsh r3, [r4, r2]
aa9e: 3b01 subs r3, #1
int32_t w_half0 = w >> 1;
aaa0: 105e asrs r6, r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
aaa2: 2501 movs r5, #1
aaa4: 401d ands r5, r3
aaa6: 19ad adds r5, r5, r6
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
aaa8: 2306 movs r3, #6
aaaa: 5ee2 ldrsh r2, [r4, r3]
aaac: 2300 movs r3, #0
aaae: 2a00 cmp r2, #0
aab0: d004 beq.n aabc <lv_draw_line+0x504>
aab2: 2204 movs r2, #4
aab4: 5ea3 ldrsh r3, [r4, r2]
aab6: 1e5a subs r2, r3, #1
aab8: 4193 sbcs r3, r2
aaba: b2db uxtb r3, r3
aabc: 4699 mov r9, r3
aabe: 930a str r3, [sp, #40] ; 0x28
if(lv_draw_mask_get_cnt()) simple_mode = false;
aac0: 4bad ldr r3, [pc, #692] ; (ad78 <lv_draw_line+0x7c0>)
aac2: 4798 blx r3
aac4: 2100 movs r1, #0
aac6: 2800 cmp r0, #0
aac8: d102 bne.n aad0 <lv_draw_line+0x518>
else if(dashed) simple_mode = false;
aaca: 3101 adds r1, #1
aacc: 464b mov r3, r9
aace: 4059 eors r1, r3
draw_area.x1 = point1->x - w_half1;
aad0: 9805 ldr r0, [sp, #20]
aad2: 8802 ldrh r2, [r0, #0]
aad4: ab28 add r3, sp, #160 ; 0xa0
aad6: 1b55 subs r5, r2, r5
aad8: 801d strh r5, [r3, #0]
draw_area.x2 = point1->x + w_half0;
aada: 1996 adds r6, r2, r6
aadc: 809e strh r6, [r3, #4]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
aade: 9a06 ldr r2, [sp, #24]
aae0: 2502 movs r5, #2
aae2: 5f52 ldrsh r2, [r2, r5]
aae4: 2502 movs r5, #2
aae6: 5f45 ldrsh r5, [r0, r5]
aae8: 1c10 adds r0, r2, #0
aaea: 42aa cmp r2, r5
aaec: dd00 ble.n aaf0 <lv_draw_line+0x538>
aaee: 1c28 adds r0, r5, #0
aaf0: 8058 strh r0, [r3, #2]
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
aaf2: 1c13 adds r3, r2, #0
aaf4: 42aa cmp r2, r5
aaf6: da00 bge.n aafa <lv_draw_line+0x542>
aaf8: 1c2b adds r3, r5, #0
aafa: 3b01 subs r3, #1
aafc: aa28 add r2, sp, #160 ; 0xa0
aafe: 80d3 strh r3, [r2, #6]
if(simple_mode) {
ab00: 2900 cmp r1, #0
ab02: d00e beq.n ab22 <lv_draw_line+0x56a>
_lv_blend_fill(clip, &draw_area,
ab04: 8822 ldrh r2, [r4, #0]
dsc->blend_mode);
ab06: 7a63 ldrb r3, [r4, #9]
ab08: 079b lsls r3, r3, #30
_lv_blend_fill(clip, &draw_area,
ab0a: 0f9b lsrs r3, r3, #30
ab0c: 9302 str r3, [sp, #8]
ab0e: 4643 mov r3, r8
ab10: 9301 str r3, [sp, #4]
ab12: 2301 movs r3, #1
ab14: 9300 str r3, [sp, #0]
ab16: 2300 movs r3, #0
ab18: a928 add r1, sp, #160 ; 0xa0
ab1a: a848 add r0, sp, #288 ; 0x120
ab1c: 4d92 ldr r5, [pc, #584] ; (ad68 <lv_draw_line+0x7b0>)
ab1e: 47a8 blx r5
ab20: e19e b.n ae60 <lv_draw_line+0x8a8>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
ab22: aa28 add r2, sp, #160 ; 0xa0
ab24: a948 add r1, sp, #288 ; 0x120
ab26: 0010 movs r0, r2
ab28: 4b94 ldr r3, [pc, #592] ; (ad7c <lv_draw_line+0x7c4>)
ab2a: 4798 blx r3
if(!is_common) return;
ab2c: 2800 cmp r0, #0
ab2e: d100 bne.n ab32 <lv_draw_line+0x57a>
ab30: e196 b.n ae60 <lv_draw_line+0x8a8>
draw_area.x1 -= vdb->area.x1;
ab32: aa28 add r2, sp, #160 ; 0xa0
ab34: 2100 movs r1, #0
ab36: 5e53 ldrsh r3, [r2, r1]
ab38: 469c mov ip, r3
ab3a: 8a3b ldrh r3, [r7, #16]
ab3c: 4661 mov r1, ip
ab3e: 1ac9 subs r1, r1, r3
ab40: b289 uxth r1, r1
ab42: 8011 strh r1, [r2, #0]
draw_area.y1 -= vdb->area.y1;
ab44: 2502 movs r5, #2
ab46: 5f50 ldrsh r0, [r2, r5]
ab48: 8a7d ldrh r5, [r7, #18]
ab4a: 46a8 mov r8, r5
ab4c: 1b45 subs r5, r0, r5
ab4e: 8055 strh r5, [r2, #2]
draw_area.x2 -= vdb->area.x1;
ab50: 2504 movs r5, #4
ab52: 5f56 ldrsh r6, [r2, r5]
ab54: 1af3 subs r3, r6, r3
ab56: b29b uxth r3, r3
ab58: 4699 mov r9, r3
ab5a: 8093 strh r3, [r2, #4]
draw_area.y2 -= vdb->area.y1;
ab5c: 88d5 ldrh r5, [r2, #6]
ab5e: 4643 mov r3, r8
ab60: 1aed subs r5, r5, r3
ab62: 80d5 strh r5, [r2, #6]
ab64: 464b mov r3, r9
ab66: 3301 adds r3, #1
ab68: 1a59 subs r1, r3, r1
ab6a: b20b sxth r3, r1
ab6c: 001a movs r2, r3
ab6e: 930b str r3, [sp, #44] ; 0x2c
fill_area.x1 = draw_area.x1 + disp_area->x1;
ab70: ab33 add r3, sp, #204 ; 0xcc
ab72: 4661 mov r1, ip
ab74: 8019 strh r1, [r3, #0]
fill_area.x2 = draw_area.x2 + disp_area->x1;
ab76: 809e strh r6, [r3, #4]
fill_area.y1 = draw_area.y1 + disp_area->y1;
ab78: 8058 strh r0, [r3, #2]
fill_area.y2 = fill_area.y1;
ab7a: 80d8 strh r0, [r3, #6]
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ab7c: 920c str r2, [sp, #48] ; 0x30
ab7e: 0010 movs r0, r2
ab80: 4b7f ldr r3, [pc, #508] ; (ad80 <lv_draw_line+0x7c8>)
ab82: 4798 blx r3
ab84: 9008 str r0, [sp, #32]
if(dashed) {
ab86: 2100 movs r1, #0
ab88: 9b0a ldr r3, [sp, #40] ; 0x28
ab8a: 2b00 cmp r3, #0
ab8c: d00c beq.n aba8 <lv_draw_line+0x5f0>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
ab8e: 2310 movs r3, #16
ab90: 5ef8 ldrsh r0, [r7, r3]
ab92: ab28 add r3, sp, #160 ; 0xa0
ab94: 2200 movs r2, #0
ab96: 5e9b ldrsh r3, [r3, r2]
ab98: 18c0 adds r0, r0, r3
ab9a: 2306 movs r3, #6
ab9c: 5ee1 ldrsh r1, [r4, r3]
ab9e: 2204 movs r2, #4
aba0: 5ea3 ldrsh r3, [r4, r2]
aba2: 18c9 adds r1, r1, r3
aba4: 4b77 ldr r3, [pc, #476] ; (ad84 <lv_draw_line+0x7cc>)
aba6: 4798 blx r3
aba8: b20b sxth r3, r1
abaa: 4699 mov r9, r3
for(h = draw_area.y1; h <= draw_area.y2; h++) {
abac: ab28 add r3, sp, #160 ; 0xa0
abae: 2202 movs r2, #2
abb0: 5e9e ldrsh r6, [r3, r2]
abb2: 2206 movs r2, #6
abb4: 5e9b ldrsh r3, [r3, r2]
abb6: 429e cmp r6, r3
abb8: dc4b bgt.n ac52 <lv_draw_line+0x69a>
_lv_memset_ff(mask_buf, draw_area_w);
abba: 4b73 ldr r3, [pc, #460] ; (ad88 <lv_draw_line+0x7d0>)
abbc: 469b mov fp, r3
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
abbe: 4b73 ldr r3, [pc, #460] ; (ad8c <lv_draw_line+0x7d4>)
abc0: 469a mov sl, r3
abc2: 46b8 mov r8, r7
abc4: 464b mov r3, r9
abc6: 9309 str r3, [sp, #36] ; 0x24
abc8: e01d b.n ac06 <lv_draw_line+0x64e>
dash_cnt ++;
abca: 9f09 ldr r7, [sp, #36] ; 0x24
abcc: 3701 adds r7, #1
abce: b23b sxth r3, r7
abd0: 9309 str r3, [sp, #36] ; 0x24
_lv_blend_fill(clip, &fill_area,
abd2: 8822 ldrh r2, [r4, #0]
abd4: ad33 add r5, sp, #204 ; 0xcc
abd6: 2300 movs r3, #0
abd8: 9302 str r3, [sp, #8]
abda: 7a23 ldrb r3, [r4, #8]
abdc: 9301 str r3, [sp, #4]
abde: 9000 str r0, [sp, #0]
abe0: 9b08 ldr r3, [sp, #32]
abe2: 0029 movs r1, r5
abe4: a848 add r0, sp, #288 ; 0x120
abe6: 4f60 ldr r7, [pc, #384] ; (ad68 <lv_draw_line+0x7b0>)
abe8: 47b8 blx r7
fill_area.y1++;
abea: 886b ldrh r3, [r5, #2]
abec: 3301 adds r3, #1
abee: 806b strh r3, [r5, #2]
fill_area.y2++;
abf0: 88eb ldrh r3, [r5, #6]
abf2: 3301 adds r3, #1
abf4: 80eb strh r3, [r5, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
abf6: 3601 adds r6, #1
abf8: ab0a add r3, sp, #40 ; 0x28
abfa: 227e movs r2, #126 ; 0x7e
abfc: 189b adds r3, r3, r2
abfe: 2200 movs r2, #0
ac00: 5e9b ldrsh r3, [r3, r2]
ac02: 429e cmp r6, r3
ac04: dc25 bgt.n ac52 <lv_draw_line+0x69a>
_lv_memset_ff(mask_buf, draw_area_w);
ac06: 990c ldr r1, [sp, #48] ; 0x30
ac08: 9d08 ldr r5, [sp, #32]
ac0a: 0028 movs r0, r5
ac0c: 47d8 blx fp
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
ac0e: 4643 mov r3, r8
ac10: 8a5a ldrh r2, [r3, #18]
ac12: 1992 adds r2, r2, r6
ac14: b212 sxth r2, r2
ac16: 8a19 ldrh r1, [r3, #16]
ac18: ab0a add r3, sp, #40 ; 0x28
ac1a: 2078 movs r0, #120 ; 0x78
ac1c: 181b adds r3, r3, r0
ac1e: 881b ldrh r3, [r3, #0]
ac20: 18c9 adds r1, r1, r3
ac22: b209 sxth r1, r1
ac24: 9b0b ldr r3, [sp, #44] ; 0x2c
ac26: 0028 movs r0, r5
ac28: 47d0 blx sl
if(dashed) {
ac2a: 9b0a ldr r3, [sp, #40] ; 0x28
ac2c: 2b00 cmp r3, #0
ac2e: d0d0 beq.n abd2 <lv_draw_line+0x61a>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
ac30: 2800 cmp r0, #0
ac32: d0ca beq.n abca <lv_draw_line+0x612>
if(dash_cnt > dsc->dash_width) {
ac34: 2304 movs r3, #4
ac36: 5ee2 ldrsh r2, [r4, r3]
ac38: 9b09 ldr r3, [sp, #36] ; 0x24
ac3a: 429a cmp r2, r3
ac3c: da00 bge.n ac40 <lv_draw_line+0x688>
mask_res = LV_DRAW_MASK_RES_TRANSP;
ac3e: 2000 movs r0, #0
if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
ac40: 2106 movs r1, #6
ac42: 5e63 ldrsh r3, [r4, r1]
ac44: 189b adds r3, r3, r2
ac46: 9a09 ldr r2, [sp, #36] ; 0x24
ac48: 429a cmp r2, r3
ac4a: dbbe blt.n abca <lv_draw_line+0x612>
dash_cnt = 0;
ac4c: 2300 movs r3, #0
ac4e: 9309 str r3, [sp, #36] ; 0x24
ac50: e7bb b.n abca <lv_draw_line+0x612>
_lv_mem_buf_release(mask_buf);
ac52: 9808 ldr r0, [sp, #32]
ac54: 4b45 ldr r3, [pc, #276] ; (ad6c <lv_draw_line+0x7b4>)
ac56: 4798 blx r3
ac58: e102 b.n ae60 <lv_draw_line+0x8a8>
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
ac5a: 464b mov r3, r9
ac5c: 0158 lsls r0, r3, #5
ac5e: 4659 mov r1, fp
ac60: 4b4b ldr r3, [pc, #300] ; (ad90 <lv_draw_line+0x7d8>)
ac62: 4798 blx r3
ac64: e52d b.n a6c2 <lv_draw_line+0x10a>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
ac66: b2b2 uxth r2, r6
ac68: 466b mov r3, sp
ac6a: 8d9b ldrh r3, [r3, #44] ; 0x2c
ac6c: b2a9 uxth r1, r5
ac6e: 4693 mov fp, r2
ac70: 18d2 adds r2, r2, r3
ac72: b212 sxth r2, r2
ac74: 2000 movs r0, #0
ac76: 9001 str r0, [sp, #4]
ac78: 910b str r1, [sp, #44] ; 0x2c
ac7a: 468c mov ip, r1
ac7c: 4463 add r3, ip
ac7e: b21b sxth r3, r3
ac80: 9300 str r3, [sp, #0]
ac82: 4653 mov r3, sl
ac84: 9908 ldr r1, [sp, #32]
ac86: a812 add r0, sp, #72 ; 0x48
ac88: 4f42 ldr r7, [pc, #264] ; (ad94 <lv_draw_line+0x7dc>)
ac8a: 47b8 blx r7
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
ac8c: 4643 mov r3, r8
ac8e: 466a mov r2, sp
ac90: 8613 strh r3, [r2, #48] ; 0x30
ac92: 8e13 ldrh r3, [r2, #48] ; 0x30
ac94: 465a mov r2, fp
ac96: 1ad2 subs r2, r2, r3
ac98: b212 sxth r2, r2
ac9a: 2101 movs r1, #1
ac9c: 9101 str r1, [sp, #4]
ac9e: 990b ldr r1, [sp, #44] ; 0x2c
aca0: 1acb subs r3, r1, r3
aca2: b21b sxth r3, r3
aca4: 9300 str r3, [sp, #0]
aca6: 4653 mov r3, sl
aca8: 9908 ldr r1, [sp, #32]
acaa: a81d add r0, sp, #116 ; 0x74
acac: 47b8 blx r7
acae: e56a b.n a786 <lv_draw_line+0x1ce>
lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y,
acb0: 466b mov r3, sp
acb2: 8c1a ldrh r2, [r3, #32]
acb4: 8d99 ldrh r1, [r3, #44] ; 0x2c
acb6: 4653 mov r3, sl
acb8: 4668 mov r0, sp
acba: 8583 strh r3, [r0, #44] ; 0x2c
acbc: 8d83 ldrh r3, [r0, #44] ; 0x2c
acbe: 469b mov fp, r3
acc0: 18cb adds r3, r1, r3
acc2: b21b sxth r3, r3
acc4: 920b str r2, [sp, #44] ; 0x2c
acc6: 4694 mov ip, r2
acc8: 4461 add r1, ip
acca: b209 sxth r1, r1
accc: 2200 movs r2, #0
acce: 9201 str r2, [sp, #4]
acd0: 9500 str r5, [sp, #0]
acd2: 0032 movs r2, r6
acd4: a812 add r0, sp, #72 ; 0x48
acd6: 4f2f ldr r7, [pc, #188] ; (ad94 <lv_draw_line+0x7dc>)
acd8: 47b8 blx r7
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
acda: 4643 mov r3, r8
acdc: 466a mov r2, sp
acde: 8613 strh r3, [r2, #48] ; 0x30
ace0: 8e12 ldrh r2, [r2, #48] ; 0x30
ace2: 465b mov r3, fp
ace4: 1a9b subs r3, r3, r2
ace6: b21b sxth r3, r3
ace8: 990b ldr r1, [sp, #44] ; 0x2c
acea: 1a8a subs r2, r1, r2
acec: b211 sxth r1, r2
acee: 2201 movs r2, #1
acf0: 9201 str r2, [sp, #4]
acf2: 9500 str r5, [sp, #0]
acf4: 0032 movs r2, r6
acf6: a81d add r0, sp, #116 ; 0x74
acf8: 47b8 blx r7
acfa: e544 b.n a786 <lv_draw_line+0x1ce>
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);
acfc: 466b mov r3, sp
acfe: 8d1b ldrh r3, [r3, #40] ; 0x28
ad00: 4699 mov r9, r3
ad02: 466b mov r3, sp
ad04: 8c9b ldrh r3, [r3, #36] ; 0x24
ad06: 4698 mov r8, r3
ad08: 464b mov r3, r9
ad0a: 9908 ldr r1, [sp, #32]
ad0c: 1acb subs r3, r1, r3
ad0e: b21b sxth r3, r3
ad10: 2203 movs r2, #3
ad12: 9201 str r2, [sp, #4]
ad14: 4642 mov r2, r8
ad16: 1992 adds r2, r2, r6
ad18: b212 sxth r2, r2
ad1a: 9200 str r2, [sp, #0]
ad1c: 0032 movs r2, r6
ad1e: a828 add r0, sp, #160 ; 0xa0
ad20: 4e1c ldr r6, [pc, #112] ; (ad94 <lv_draw_line+0x7dc>)
ad22: 47b0 blx r6
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);
ad24: 4653 mov r3, sl
ad26: 464a mov r2, r9
ad28: 1a9b subs r3, r3, r2
ad2a: b21b sxth r3, r3
ad2c: 2202 movs r2, #2
ad2e: 9201 str r2, [sp, #4]
ad30: 4642 mov r2, r8
ad32: 1952 adds r2, r2, r5
ad34: b212 sxth r2, r2
ad36: 9200 str r2, [sp, #0]
ad38: 002a movs r2, r5
ad3a: 4651 mov r1, sl
ad3c: a833 add r0, sp, #204 ; 0xcc
ad3e: 47b0 blx r6
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
ad40: 2100 movs r1, #0
ad42: a828 add r0, sp, #160 ; 0xa0
ad44: 4d14 ldr r5, [pc, #80] ; (ad98 <lv_draw_line+0x7e0>)
ad46: 47a8 blx r5
ad48: 900a str r0, [sp, #40] ; 0x28
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
ad4a: 2100 movs r1, #0
ad4c: a833 add r0, sp, #204 ; 0xcc
ad4e: 47a8 blx r5
ad50: 900d str r0, [sp, #52] ; 0x34
ad52: e52a b.n a7aa <lv_draw_line+0x1f2>
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
ad54: a80e add r0, sp, #56 ; 0x38
ad56: 4b11 ldr r3, [pc, #68] ; (ad9c <lv_draw_line+0x7e4>)
ad58: 4798 blx r3
ad5a: 4683 mov fp, r0
ad5c: e549 b.n a7f2 <lv_draw_line+0x23a>
_lv_memset_00(&mask_buf[mask_p], draw_area_w);
ad5e: 0029 movs r1, r5
ad60: 9808 ldr r0, [sp, #32]
ad62: 4b0f ldr r3, [pc, #60] ; (ada0 <lv_draw_line+0x7e8>)
ad64: 4798 blx r3
ad66: e04c b.n ae02 <lv_draw_line+0x84a>
ad68: 00006fed .word 0x00006fed
ad6c: 00012465 .word 0x00012465
ad70: 00005591 .word 0x00005591
ad74: 00010e75 .word 0x00010e75
ad78: 0000bb6d .word 0x0000bb6d
ad7c: 0001140b .word 0x0001140b
ad80: 000127a1 .word 0x000127a1
ad84: 0001c385 .word 0x0001c385
ad88: 00012a19 .word 0x00012a19
ad8c: 0000bad1 .word 0x0000bad1
ad90: 0001c1b9 .word 0x0001c1b9
ad94: 0000bb91 .word 0x0000bb91
ad98: 0000ba75 .word 0x0000ba75
ad9c: 000113ef .word 0x000113ef
ada0: 00012975 .word 0x00012975
_lv_blend_fill(&fill_area, clip,
ada4: 4643 mov r3, r8
ada6: 881a ldrh r2, [r3, #0]
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
dsc->blend_mode);
ada8: 7a5b ldrb r3, [r3, #9]
adaa: 079b lsls r3, r3, #30
_lv_blend_fill(&fill_area, clip,
adac: 0f9b lsrs r3, r3, #30
adae: 9302 str r3, [sp, #8]
adb0: 4643 mov r3, r8
adb2: 7a1b ldrb r3, [r3, #8]
adb4: 9301 str r3, [sp, #4]
adb6: 2302 movs r3, #2
adb8: 9300 str r3, [sp, #0]
adba: 0023 movs r3, r4
adbc: a948 add r1, sp, #288 ; 0x120
adbe: a810 add r0, sp, #64 ; 0x40
adc0: 4f4d ldr r7, [pc, #308] ; (aef8 <lv_draw_line+0x940>)
adc2: 47b8 blx r7
fill_area.y1 = fill_area.y2 + 1;
adc4: ab0a add r3, sp, #40 ; 0x28
adc6: 8bdb ldrh r3, [r3, #30]
adc8: 3301 adds r3, #1
adca: b21b sxth r3, r3
adcc: aa0a add r2, sp, #40 ; 0x28
adce: 8353 strh r3, [r2, #26]
fill_area.y2 = fill_area.y1;
add0: 83d3 strh r3, [r2, #30]
mask_p = 0;
_lv_memset_ff(mask_buf, mask_buf_size);
add2: 4659 mov r1, fp
add4: 0020 movs r0, r4
add6: 4b49 ldr r3, [pc, #292] ; (aefc <lv_draw_line+0x944>)
add8: 4798 blx r3
mask_p = 0;
adda: 2700 movs r7, #0
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
addc: 3601 adds r6, #1
adde: ab0e add r3, sp, #56 ; 0x38
ade0: 2206 movs r2, #6
ade2: 5e9b ldrsh r3, [r3, r2]
ade4: 464a mov r2, r9
ade6: 2112 movs r1, #18
ade8: 5e52 ldrsh r2, [r2, r1]
adea: 189b adds r3, r3, r2
adec: 429e cmp r6, r3
adee: dc11 bgt.n ae14 <lv_draw_line+0x85c>
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
adf0: 19e3 adds r3, r4, r7
adf2: 0018 movs r0, r3
adf4: 9308 str r3, [sp, #32]
adf6: b232 sxth r2, r6
adf8: 002b movs r3, r5
adfa: 9909 ldr r1, [sp, #36] ; 0x24
adfc: 47d0 blx sl
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
adfe: 2800 cmp r0, #0
ae00: d0ad beq.n ad5e <lv_draw_line+0x7a6>
mask_p += draw_area_w;
ae02: 197f adds r7, r7, r5
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
ae04: 19eb adds r3, r5, r7
ae06: 459b cmp fp, r3
ae08: d9cc bls.n ada4 <lv_draw_line+0x7ec>
fill_area.y2 ++;
ae0a: aa10 add r2, sp, #64 ; 0x40
ae0c: 88d3 ldrh r3, [r2, #6]
ae0e: 3301 adds r3, #1
ae10: 80d3 strh r3, [r2, #6]
ae12: e7e3 b.n addc <lv_draw_line+0x824>
ae14: 4643 mov r3, r8
ae16: 46a0 mov r8, r4
ae18: 001c movs r4, r3
}
}
/*Flush the last part*/
if(fill_area.y1 != fill_area.y2) {
ae1a: aa10 add r2, sp, #64 ; 0x40
ae1c: 2106 movs r1, #6
ae1e: 5e53 ldrsh r3, [r2, r1]
ae20: 2102 movs r1, #2
ae22: 5e52 ldrsh r2, [r2, r1]
ae24: 429a cmp r2, r3
ae26: d00f beq.n ae48 <lv_draw_line+0x890>
fill_area.y2--;
ae28: a810 add r0, sp, #64 ; 0x40
ae2a: 3b01 subs r3, #1
ae2c: 80c3 strh r3, [r0, #6]
_lv_blend_fill(&fill_area, clip,
ae2e: 8822 ldrh r2, [r4, #0]
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
dsc->blend_mode);
ae30: 7a63 ldrb r3, [r4, #9]
ae32: 079b lsls r3, r3, #30
_lv_blend_fill(&fill_area, clip,
ae34: 0f9b lsrs r3, r3, #30
ae36: 9302 str r3, [sp, #8]
ae38: 7a23 ldrb r3, [r4, #8]
ae3a: 9301 str r3, [sp, #4]
ae3c: 2302 movs r3, #2
ae3e: 9300 str r3, [sp, #0]
ae40: 4643 mov r3, r8
ae42: a948 add r1, sp, #288 ; 0x120
ae44: 4d2c ldr r5, [pc, #176] ; (aef8 <lv_draw_line+0x940>)
ae46: 47a8 blx r5
}
_lv_mem_buf_release(mask_buf);
ae48: 4640 mov r0, r8
ae4a: 4b2d ldr r3, [pc, #180] ; (af00 <lv_draw_line+0x948>)
ae4c: 4798 blx r3
lv_draw_mask_remove_id(mask_left_id);
ae4e: 980b ldr r0, [sp, #44] ; 0x2c
ae50: 4d2c ldr r5, [pc, #176] ; (af04 <lv_draw_line+0x94c>)
ae52: 47a8 blx r5
lv_draw_mask_remove_id(mask_right_id);
ae54: 980c ldr r0, [sp, #48] ; 0x30
ae56: 47a8 blx r5
lv_draw_mask_remove_id(mask_top_id);
ae58: 980a ldr r0, [sp, #40] ; 0x28
ae5a: 47a8 blx r5
lv_draw_mask_remove_id(mask_bottom_id);
ae5c: 980d ldr r0, [sp, #52] ; 0x34
ae5e: 47a8 blx r5
if(dsc->round_end || dsc->round_start) {
ae60: 7a63 ldrb r3, [r4, #9]
ae62: 220c movs r2, #12
ae64: 421a tst r2, r3
ae66: d106 bne.n ae76 <lv_draw_line+0x8be>
}
ae68: b04b add sp, #300 ; 0x12c
ae6a: bc3c pop {r2, r3, r4, r5}
ae6c: 4690 mov r8, r2
ae6e: 4699 mov r9, r3
ae70: 46a2 mov sl, r4
ae72: 46ab mov fp, r5
ae74: bdf0 pop {r4, r5, r6, r7, pc}
lv_draw_rect_dsc_init(&cir_dsc);
ae76: ad33 add r5, sp, #204 ; 0xcc
ae78: 0028 movs r0, r5
ae7a: 4b23 ldr r3, [pc, #140] ; (af08 <lv_draw_line+0x950>)
ae7c: 4798 blx r3
cir_dsc.bg_color = dsc->color;
ae7e: 8823 ldrh r3, [r4, #0]
ae80: 806b strh r3, [r5, #2]
cir_dsc.radius = LV_RADIUS_CIRCLE;
ae82: 4b22 ldr r3, [pc, #136] ; (af0c <lv_draw_line+0x954>)
ae84: 802b strh r3, [r5, #0]
cir_dsc.bg_opa = dsc->opa;
ae86: 7a23 ldrb r3, [r4, #8]
ae88: 732b strb r3, [r5, #12]
int32_t r = (dsc->width >> 1);
ae8a: 2202 movs r2, #2
ae8c: 5ea3 ldrsh r3, [r4, r2]
ae8e: 105e asrs r6, r3, #1
int32_t r_corr = (dsc->width & 1) ? 0 : 1;
ae90: 2201 movs r2, #1
ae92: 4053 eors r3, r2
ae94: 2501 movs r5, #1
ae96: 401d ands r5, r3
if(dsc->round_start) {
ae98: 7a63 ldrb r3, [r4, #9]
ae9a: 075b lsls r3, r3, #29
ae9c: d417 bmi.n aece <lv_draw_line+0x916>
if(dsc->round_end) {
ae9e: 7a63 ldrb r3, [r4, #9]
aea0: 071b lsls r3, r3, #28
aea2: d5e1 bpl.n ae68 <lv_draw_line+0x8b0>
cir_area.x1 = point2->x - r;
aea4: 9906 ldr r1, [sp, #24]
aea6: 880a ldrh r2, [r1, #0]
aea8: b2b6 uxth r6, r6
aeaa: a828 add r0, sp, #160 ; 0xa0
aeac: 1b93 subs r3, r2, r6
aeae: 8003 strh r3, [r0, #0]
cir_area.y1 = point2->y - r;
aeb0: 8849 ldrh r1, [r1, #2]
aeb2: 1b8b subs r3, r1, r6
aeb4: 8043 strh r3, [r0, #2]
cir_area.x2 = point2->x + r - r_corr;
aeb6: b2ad uxth r5, r5
aeb8: 1992 adds r2, r2, r6
aeba: 1b52 subs r2, r2, r5
aebc: 8082 strh r2, [r0, #4]
cir_area.y2 = point2->y + r - r_corr ;
aebe: 1876 adds r6, r6, r1
aec0: 1b76 subs r6, r6, r5
aec2: 80c6 strh r6, [r0, #6]
lv_draw_rect(&cir_area, clip, &cir_dsc);
aec4: aa33 add r2, sp, #204 ; 0xcc
aec6: 9907 ldr r1, [sp, #28]
aec8: 4b11 ldr r3, [pc, #68] ; (af10 <lv_draw_line+0x958>)
aeca: 4798 blx r3
aecc: e7cc b.n ae68 <lv_draw_line+0x8b0>
cir_area.x1 = point1->x - r;
aece: 9f05 ldr r7, [sp, #20]
aed0: 883a ldrh r2, [r7, #0]
aed2: b2b3 uxth r3, r6
aed4: a828 add r0, sp, #160 ; 0xa0
aed6: 1ad1 subs r1, r2, r3
aed8: 8001 strh r1, [r0, #0]
cir_area.y1 = point1->y - r;
aeda: 887f ldrh r7, [r7, #2]
aedc: 1af9 subs r1, r7, r3
aede: 8041 strh r1, [r0, #2]
cir_area.x2 = point1->x + r - r_corr;
aee0: b2a9 uxth r1, r5
aee2: 18d2 adds r2, r2, r3
aee4: 1a52 subs r2, r2, r1
aee6: 8082 strh r2, [r0, #4]
cir_area.y2 = point1->y + r - r_corr ;
aee8: 19db adds r3, r3, r7
aeea: 1a5b subs r3, r3, r1
aeec: 80c3 strh r3, [r0, #6]
lv_draw_rect(&cir_area, clip, &cir_dsc);
aeee: aa33 add r2, sp, #204 ; 0xcc
aef0: 9907 ldr r1, [sp, #28]
aef2: 4b07 ldr r3, [pc, #28] ; (af10 <lv_draw_line+0x958>)
aef4: 4798 blx r3
aef6: e7d2 b.n ae9e <lv_draw_line+0x8e6>
aef8: 00006fed .word 0x00006fed
aefc: 00012a19 .word 0x00012a19
af00: 00012465 .word 0x00012465
af04: 0000bb25 .word 0x0000bb25
af08: 0000bfcd .word 0x0000bfcd
af0c: 00007fff .word 0x00007fff
af10: 0000c071 .word 0x0000c071
0000af14 <lv_draw_mask_line>:
**********************/
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)
{
af14: b5f8 push {r3, r4, r5, r6, r7, lr}
af16: 46de mov lr, fp
af18: 4657 mov r7, sl
af1a: 464e mov r6, r9
af1c: 4645 mov r5, r8
af1e: b5e0 push {r5, r6, r7, lr}
af20: 9c0a ldr r4, [sp, #40] ; 0x28
/*Make to points relative to the vertex*/
abs_y -= p->origo.y;
af22: 8aa5 ldrh r5, [r4, #20]
af24: 1b52 subs r2, r2, r5
af26: b212 sxth r2, r2
abs_x -= p->origo.x;
af28: 8a65 ldrh r5, [r4, #18]
af2a: 1b4d subs r5, r1, r5
af2c: b22d sxth r5, r5
/*Handle special cases*/
if(p->steep == 0) {
af2e: 6a21 ldr r1, [r4, #32]
af30: 2900 cmp r1, #0
af32: d140 bne.n afb6 <lv_draw_mask_line+0xa2>
/*Horizontal*/
if(p->flat) {
af34: 3128 adds r1, #40 ; 0x28
af36: 5c61 ldrb r1, [r4, r1]
af38: 07c9 lsls r1, r1, #31
af3a: d511 bpl.n af60 <lv_draw_mask_line+0x4c>
/*Non sense: Can't be on the right/left of a horizontal line*/
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
af3c: 7c21 ldrb r1, [r4, #16]
af3e: 2303 movs r3, #3
af40: 400b ands r3, r1
af42: 2b01 cmp r3, #1
af44: d800 bhi.n af48 <lv_draw_mask_line+0x34>
af46: e1c5 b.n b2d4 <lv_draw_mask_line+0x3c0>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
af48: 2b02 cmp r3, #2
af4a: d006 beq.n af5a <lv_draw_mask_line+0x46>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
else {
return LV_DRAW_MASK_RES_TRANSP;
af4c: 2400 movs r4, #0
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
af4e: 2b03 cmp r3, #3
af50: d145 bne.n afde <lv_draw_mask_line+0xca>
af52: 17d4 asrs r4, r2, #31
af54: 1aa4 subs r4, r4, r2
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
af56: 0fe4 lsrs r4, r4, #31
af58: e041 b.n afde <lv_draw_mask_line+0xca>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
af5a: 3201 adds r2, #1
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
af5c: 0fd4 lsrs r4, r2, #31
af5e: e03e b.n afde <lv_draw_mask_line+0xca>
}
}
/*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 ||
af60: 7c21 ldrb r1, [r4, #16]
af62: 2203 movs r2, #3
af64: 400a ands r2, r1
af66: 1e91 subs r1, r2, #2
af68: 2901 cmp r1, #1
af6a: d800 bhi.n af6e <lv_draw_mask_line+0x5a>
af6c: e1b4 b.n b2d8 <lv_draw_mask_line+0x3c4>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER;
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
af6e: 2a01 cmp r2, #1
af70: d00f beq.n af92 <lv_draw_mask_line+0x7e>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) {
af72: 2a00 cmp r2, #0
af74: d110 bne.n af98 <lv_draw_mask_line+0x84>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
af76: 18e9 adds r1, r5, r3
af78: d500 bpl.n af7c <lv_draw_mask_line+0x68>
af7a: e1af b.n b2dc <lv_draw_mask_line+0x3c8>
else {
int32_t k = - abs_x;
af7c: 426d negs r5, r5
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
af7e: 2d00 cmp r5, #0
af80: da00 bge.n af84 <lv_draw_mask_line+0x70>
af82: e1ad b.n b2e0 <lv_draw_mask_line+0x3cc>
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
return LV_DRAW_MASK_RES_CHANGED;
af84: 2402 movs r4, #2
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
af86: 42ab cmp r3, r5
af88: dd29 ble.n afde <lv_draw_mask_line+0xca>
af8a: 1940 adds r0, r0, r5
af8c: 4bbd ldr r3, [pc, #756] ; (b284 <lv_draw_mask_line+0x370>)
af8e: 4798 blx r3
af90: e025 b.n afde <lv_draw_mask_line+0xca>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
af92: 2401 movs r4, #1
af94: 2d00 cmp r5, #0
af96: dc22 bgt.n afde <lv_draw_mask_line+0xca>
}
}
else {
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
af98: 001a movs r2, r3
af9a: 42dd cmn r5, r3
af9c: d500 bpl.n afa0 <lv_draw_mask_line+0x8c>
af9e: e1a1 b.n b2e4 <lv_draw_mask_line+0x3d0>
else {
int32_t k = - abs_x;
afa0: 4269 negs r1, r5
afa2: 43cb mvns r3, r1
afa4: 17db asrs r3, r3, #31
afa6: 4019 ands r1, r3
if(k < 0) k = 0;
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
afa8: 2400 movs r4, #0
afaa: 428a cmp r2, r1
afac: dd17 ble.n afde <lv_draw_mask_line+0xca>
else if(k >= 0 && k < len) _lv_memset_00(&mask_buf[0], k);
afae: 4bb5 ldr r3, [pc, #724] ; (b284 <lv_draw_mask_line+0x370>)
afb0: 4798 blx r3
return LV_DRAW_MASK_RES_CHANGED;
afb2: 3402 adds r4, #2
afb4: e013 b.n afde <lv_draw_mask_line+0xca>
}
}
}
lv_draw_mask_res_t res;
if(p->flat) {
afb6: 2128 movs r1, #40 ; 0x28
afb8: 5c61 ldrb r1, [r4, r1]
afba: 468b mov fp, r1
afbc: 07c9 lsls r1, r1, #31
afbe: d415 bmi.n afec <lv_draw_mask_line+0xd8>
{
int32_t k;
int32_t x_at_y;
/* At the beginning of the mask if the limit line is greater then 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;
afc0: 69a7 ldr r7, [r4, #24]
afc2: 0011 movs r1, r2
afc4: 4379 muls r1, r7
afc6: 1289 asrs r1, r1, #10
afc8: 468c mov ip, r1
if(p->xy_steep > 0) x_at_y++;
afca: 17f9 asrs r1, r7, #31
afcc: 1bc9 subs r1, r1, r7
afce: 0fc9 lsrs r1, r1, #31
afd0: 4461 add r1, ip
if(x_at_y < abs_x) {
afd2: 428d cmp r5, r1
afd4: dc00 bgt.n afd8 <lv_draw_mask_line+0xc4>
afd6: e096 b.n b106 <lv_draw_mask_line+0x1f2>
if(p->inv) {
afd8: 465b mov r3, fp
afda: 079c lsls r4, r3, #30
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
afdc: 0fe4 lsrs r4, r4, #31
}
afde: 0020 movs r0, r4
afe0: bc3c pop {r2, r3, r4, r5}
afe2: 4690 mov r8, r2
afe4: 4699 mov r9, r3
afe6: 46a2 mov sl, r4
afe8: 46ab mov fp, r5
afea: bdf8 pop {r3, r4, r5, r6, r7, pc}
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
afec: 69e1 ldr r1, [r4, #28]
afee: 002f movs r7, r5
aff0: 434f muls r7, r1
aff2: 12bf asrs r7, r7, #10
if(p->yx_steep > 0) {
aff4: 2900 cmp r1, #0
aff6: dd06 ble.n b006 <lv_draw_mask_line+0xf2>
if(y_at_x > abs_y) {
aff8: 4297 cmp r7, r2
affa: dc00 bgt.n affe <lv_draw_mask_line+0xea>
affc: e176 b.n b2ec <lv_draw_mask_line+0x3d8>
if(p->inv) {
affe: 465b mov r3, fp
b000: 079c lsls r4, r3, #30
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b002: 0fe4 lsrs r4, r4, #31
b004: e7eb b.n afde <lv_draw_mask_line+0xca>
if(y_at_x < abs_y) {
b006: 4297 cmp r7, r2
b008: db00 blt.n b00c <lv_draw_mask_line+0xf8>
b00a: e1ab b.n b364 <lv_draw_mask_line+0x450>
if(p->inv) {
b00c: 465b mov r3, fp
b00e: 079c lsls r4, r3, #30
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b010: 0fe4 lsrs r4, r4, #31
b012: e7e4 b.n afde <lv_draw_mask_line+0xca>
if(p->inv) {
b014: 465b mov r3, fp
b016: 085e lsrs r6, r3, #1
b018: 2401 movs r4, #1
b01a: 4066 eors r6, r4
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b01c: 2401 movs r4, #1
b01e: 4034 ands r4, r6
b020: e7dd b.n afde <lv_draw_mask_line+0xca>
if(p->inv) {
b022: 465b mov r3, fp
b024: 085e lsrs r6, r3, #1
b026: 2401 movs r4, #1
b028: 4066 eors r6, r4
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b02a: 2401 movs r4, #1
b02c: 4034 ands r4, r6
b02e: e7d6 b.n afde <lv_draw_mask_line+0xca>
LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new)
{
if(mask_new >= LV_OPA_MAX) return mask_act;
if(mask_new <= LV_OPA_MIN) return 0;
b030: 2100 movs r1, #0
b032: e190 b.n b356 <lv_draw_mask_line+0x442>
b034: 2100 movs r1, #0
mask_buf[k] = mask_mix(mask_buf[k], m);
b036: 464b mov r3, r9
b038: 54c1 strb r1, [r0, r3]
px_h -= p->spx;
b03a: 6a63 ldr r3, [r4, #36] ; 0x24
b03c: 1ad2 subs r2, r2, r3
k++;
b03e: 3501 adds r5, #1
if(k >= len) break;
b040: 42bd cmp r5, r7
b042: da43 bge.n b0cc <lv_draw_mask_line+0x1b8>
while(px_h > p->spx) {
b044: 6a63 ldr r3, [r4, #36] ; 0x24
b046: 429a cmp r2, r3
b048: dd1a ble.n b080 <lv_draw_mask_line+0x16c>
if(k >= 0 && k < len) {
b04a: 2d00 cmp r5, #0
b04c: dbf5 blt.n b03a <lv_draw_mask_line+0x126>
b04e: 42bd cmp r5, r7
b050: daf3 bge.n b03a <lv_draw_mask_line+0x126>
m = px_h - (p->spx >> 1);
b052: 105b asrs r3, r3, #1
b054: 1ad3 subs r3, r2, r3
b056: b2db uxtb r3, r3
if(p->inv) m = 255 - m;
b058: 4641 mov r1, r8
b05a: 5c61 ldrb r1, [r4, r1]
b05c: 420e tst r6, r1
b05e: d001 beq.n b064 <lv_draw_mask_line+0x150>
b060: 43db mvns r3, r3
b062: b2db uxtb r3, r3
b064: 46a9 mov r9, r5
mask_buf[k] = mask_mix(mask_buf[k], m);
b066: 5d41 ldrb r1, [r0, r5]
if(mask_new >= LV_OPA_MAX) return mask_act;
b068: 2bf9 cmp r3, #249 ; 0xf9
b06a: d8e4 bhi.n b036 <lv_draw_mask_line+0x122>
if(mask_new <= LV_OPA_MIN) return 0;
b06c: 2b05 cmp r3, #5
b06e: d9e1 bls.n b034 <lv_draw_mask_line+0x120>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b070: 434b muls r3, r1
b072: 0219 lsls r1, r3, #8
b074: 18c9 adds r1, r1, r3
b076: 01c9 lsls r1, r1, #7
b078: 18cb adds r3, r1, r3
b07a: 0ddb lsrs r3, r3, #23
b07c: b2d9 uxtb r1, r3
b07e: e7da b.n b036 <lv_draw_mask_line+0x122>
if(k < len && k >= 0) {
b080: 42bd cmp r5, r7
b082: da23 bge.n b0cc <lv_draw_mask_line+0x1b8>
b084: 2d00 cmp r5, #0
b086: db21 blt.n b0cc <lv_draw_mask_line+0x1b8>
int32_t x_inters = (px_h * p->xy_steep) >> 10;
b088: 69a3 ldr r3, [r4, #24]
b08a: 4353 muls r3, r2
b08c: 129b asrs r3, r3, #10
m = (x_inters * px_h) >> 9;
b08e: 4353 muls r3, r2
b090: 125b asrs r3, r3, #9
b092: b2db uxtb r3, r3
if(p->yx_steep < 0) m = 255 - m;
b094: 69e2 ldr r2, [r4, #28]
b096: 2a00 cmp r2, #0
b098: db13 blt.n b0c2 <lv_draw_mask_line+0x1ae>
if(p->inv) m = 255 - m;
b09a: 2228 movs r2, #40 ; 0x28
b09c: 5ca2 ldrb r2, [r4, r2]
b09e: 0792 lsls r2, r2, #30
b0a0: d501 bpl.n b0a6 <lv_draw_mask_line+0x192>
b0a2: 43db mvns r3, r3
b0a4: b2db uxtb r3, r3
mask_buf[k] = mask_mix(mask_buf[k], m);
b0a6: 1946 adds r6, r0, r5
b0a8: 7832 ldrb r2, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b0aa: 2bf9 cmp r3, #249 ; 0xf9
b0ac: d80d bhi.n b0ca <lv_draw_mask_line+0x1b6>
if(mask_new <= LV_OPA_MIN) return 0;
b0ae: 2b05 cmp r3, #5
b0b0: d90a bls.n b0c8 <lv_draw_mask_line+0x1b4>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b0b2: 4353 muls r3, r2
b0b4: 021a lsls r2, r3, #8
b0b6: 18d2 adds r2, r2, r3
b0b8: 01d2 lsls r2, r2, #7
b0ba: 18d3 adds r3, r2, r3
b0bc: 0ddb lsrs r3, r3, #23
b0be: b2da uxtb r2, r3
b0c0: e003 b.n b0ca <lv_draw_mask_line+0x1b6>
if(p->yx_steep < 0) m = 255 - m;
b0c2: 43db mvns r3, r3
b0c4: b2db uxtb r3, r3
b0c6: e7e8 b.n b09a <lv_draw_mask_line+0x186>
if(mask_new <= LV_OPA_MIN) return 0;
b0c8: 2200 movs r2, #0
mask_buf[k] = mask_mix(mask_buf[k], m);
b0ca: 7032 strb r2, [r6, #0]
if(p->inv) {
b0cc: 2328 movs r3, #40 ; 0x28
b0ce: 5ce3 ldrb r3, [r4, r3]
b0d0: 079b lsls r3, r3, #30
b0d2: d50c bpl.n b0ee <lv_draw_mask_line+0x1da>
return LV_DRAW_MASK_RES_TRANSP;
b0d4: 2400 movs r4, #0
if(k > len) {
b0d6: 4567 cmp r7, ip
b0d8: da00 bge.n b0dc <lv_draw_mask_line+0x1c8>
b0da: e780 b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b0dc: 3402 adds r4, #2
if(k >= 0) {
b0de: 4663 mov r3, ip
b0e0: 2b00 cmp r3, #0
b0e2: da00 bge.n b0e6 <lv_draw_mask_line+0x1d2>
b0e4: e77b b.n afde <lv_draw_mask_line+0xca>
_lv_memset_00(&mask_buf[0], k);
b0e6: 4661 mov r1, ip
b0e8: 4b66 ldr r3, [pc, #408] ; (b284 <lv_draw_mask_line+0x370>)
b0ea: 4798 blx r3
b0ec: e777 b.n afde <lv_draw_mask_line+0xca>
if(k < 0) {
b0ee: 3501 adds r5, #1
b0f0: d500 bpl.n b0f4 <lv_draw_mask_line+0x1e0>
b0f2: e0f9 b.n b2e8 <lv_draw_mask_line+0x3d4>
return LV_DRAW_MASK_RES_CHANGED;
b0f4: 2402 movs r4, #2
if(k <= len) {
b0f6: 42bd cmp r5, r7
b0f8: dd00 ble.n b0fc <lv_draw_mask_line+0x1e8>
b0fa: e770 b.n afde <lv_draw_mask_line+0xca>
_lv_memset_00(&mask_buf[k], len - k);
b0fc: 1b79 subs r1, r7, r5
b0fe: 1940 adds r0, r0, r5
b100: 4b60 ldr r3, [pc, #384] ; (b284 <lv_draw_mask_line+0x370>)
b102: 4798 blx r3
b104: e76b b.n afde <lv_draw_mask_line+0xca>
if(x_at_y > abs_x + len) {
b106: 4698 mov r8, r3
b108: 18e9 adds r1, r5, r3
b10a: 458c cmp ip, r1
b10c: dd06 ble.n b11c <lv_draw_mask_line+0x208>
if(p->inv) {
b10e: 465b mov r3, fp
b110: 085c lsrs r4, r3, #1
b112: 2601 movs r6, #1
b114: 4066 eors r6, r4
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b116: 2401 movs r4, #1
b118: 4034 ands r4, r6
b11a: e760 b.n afde <lv_draw_mask_line+0xca>
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
b11c: 0211 lsls r1, r2, #8
b11e: 4379 muls r1, r7
int32_t xsi = xs >> 8;
b120: 148e asrs r6, r1, #18
b122: 46b4 mov ip, r6
int32_t xsf = xs & 0xFF;
b124: 0389 lsls r1, r1, #14
b126: 0e09 lsrs r1, r1, #24
int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
b128: 3201 adds r2, #1
b12a: 0212 lsls r2, r2, #8
b12c: 437a muls r2, r7
int32_t xei = xe >> 8;
b12e: 1496 asrs r6, r2, #18
b130: 46b2 mov sl, r6
k = xsi - abs_x;
b132: 4666 mov r6, ip
b134: 1b76 subs r6, r6, r5
b136: 46b1 mov r9, r6
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
b138: 45d4 cmp ip, sl
b13a: d05c beq.n b1f6 <lv_draw_mask_line+0x2e2>
b13c: 2f00 cmp r7, #0
b13e: db52 blt.n b1e6 <lv_draw_mask_line+0x2d2>
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
b140: 22ff movs r2, #255 ; 0xff
b142: 1a51 subs r1, r2, r1
b144: 69e5 ldr r5, [r4, #28]
b146: 434d muls r5, r1
b148: 12ad asrs r5, r5, #10
if(k >= 0 && k < len) {
b14a: 2e00 cmp r6, #0
b14c: db19 blt.n b182 <lv_draw_mask_line+0x26e>
b14e: 45c8 cmp r8, r9
b150: dd17 ble.n b182 <lv_draw_mask_line+0x26e>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
b152: 4369 muls r1, r5
b154: 1249 asrs r1, r1, #9
b156: b2ca uxtb r2, r1
if(p->inv) m = 255 - m;
b158: 4659 mov r1, fp
b15a: 0789 lsls r1, r1, #30
b15c: d401 bmi.n b162 <lv_draw_mask_line+0x24e>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
b15e: 43d2 mvns r2, r2
b160: b2d2 uxtb r2, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b162: 4649 mov r1, r9
b164: 1846 adds r6, r0, r1
b166: 7831 ldrb r1, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b168: 2af9 cmp r2, #249 ; 0xf9
b16a: d809 bhi.n b180 <lv_draw_mask_line+0x26c>
if(mask_new <= LV_OPA_MIN) return 0;
b16c: 2a05 cmp r2, #5
b16e: d800 bhi.n b172 <lv_draw_mask_line+0x25e>
b170: e099 b.n b2a6 <lv_draw_mask_line+0x392>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b172: 434a muls r2, r1
b174: 0211 lsls r1, r2, #8
b176: 1889 adds r1, r1, r2
b178: 01c9 lsls r1, r1, #7
b17a: 188a adds r2, r1, r2
b17c: 0dd2 lsrs r2, r2, #23
b17e: b2d1 uxtb r1, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b180: 7031 strb r1, [r6, #0]
if(k >= 0 && k < len) {
b182: 464a mov r2, r9
b184: 1c51 adds r1, r2, #1
b186: d41d bmi.n b1c4 <lv_draw_mask_line+0x2b0>
b188: 4588 cmp r8, r1
b18a: dd1b ble.n b1c4 <lv_draw_mask_line+0x2b0>
int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10;
b18c: 22ff movs r2, #255 ; 0xff
b18e: 1b55 subs r5, r2, r5
b190: 69a2 ldr r2, [r4, #24]
b192: 436a muls r2, r5
b194: 1292 asrs r2, r2, #10
m = ((255 - y_inters) * x_inters) >> 9;
b196: 4355 muls r5, r2
b198: 126d asrs r5, r5, #9
b19a: b2ea uxtb r2, r5
if(p->inv) m = 255 - m;
b19c: 2528 movs r5, #40 ; 0x28
b19e: 5d65 ldrb r5, [r4, r5]
b1a0: 07ad lsls r5, r5, #30
b1a2: d501 bpl.n b1a8 <lv_draw_mask_line+0x294>
b1a4: 43d2 mvns r2, r2
b1a6: b2d2 uxtb r2, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b1a8: 1841 adds r1, r0, r1
b1aa: 780d ldrb r5, [r1, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b1ac: 2af9 cmp r2, #249 ; 0xf9
b1ae: d808 bhi.n b1c2 <lv_draw_mask_line+0x2ae>
if(mask_new <= LV_OPA_MIN) return 0;
b1b0: 2a05 cmp r2, #5
b1b2: d97a bls.n b2aa <lv_draw_mask_line+0x396>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b1b4: 436a muls r2, r5
b1b6: 0215 lsls r5, r2, #8
b1b8: 18ad adds r5, r5, r2
b1ba: 01ed lsls r5, r5, #7
b1bc: 18aa adds r2, r5, r2
b1be: 0dd2 lsrs r2, r2, #23
b1c0: b2d5 uxtb r5, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b1c2: 700d strb r5, [r1, #0]
if(p->inv) {
b1c4: 2228 movs r2, #40 ; 0x28
b1c6: 5ca2 ldrb r2, [r4, r2]
b1c8: 0792 lsls r2, r2, #30
b1ca: d570 bpl.n b2ae <lv_draw_mask_line+0x39a>
if(k > len) return LV_DRAW_MASK_RES_TRANSP;
b1cc: 2400 movs r4, #0
b1ce: 45c8 cmp r8, r9
b1d0: da00 bge.n b1d4 <lv_draw_mask_line+0x2c0>
b1d2: e704 b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b1d4: 3402 adds r4, #2
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
b1d6: 464b mov r3, r9
b1d8: 2b00 cmp r3, #0
b1da: da00 bge.n b1de <lv_draw_mask_line+0x2ca>
b1dc: e6ff b.n afde <lv_draw_mask_line+0xca>
b1de: 4649 mov r1, r9
b1e0: 4b28 ldr r3, [pc, #160] ; (b284 <lv_draw_mask_line+0x370>)
b1e2: 4798 blx r3
b1e4: e6fb b.n afde <lv_draw_mask_line+0xca>
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
b1e6: 2900 cmp r1, #0
b1e8: d000 beq.n b1ec <lv_draw_mask_line+0x2d8>
b1ea: e0cc b.n b386 <lv_draw_mask_line+0x472>
k--;
b1ec: 3901 subs r1, #1
b1ee: 468c mov ip, r1
b1f0: 44e1 add r9, ip
xsf = 0xFF;
b1f2: 3101 adds r1, #1
b1f4: 31ff adds r1, #255 ; 0xff
if(k >= 0 && k < len) {
b1f6: 464e mov r6, r9
b1f8: 2e00 cmp r6, #0
b1fa: db1b blt.n b234 <lv_draw_mask_line+0x320>
b1fc: 45c8 cmp r8, r9
b1fe: dd19 ble.n b234 <lv_draw_mask_line+0x320>
int32_t xef = xe & 0xFF;
b200: 0392 lsls r2, r2, #14
b202: 0e12 lsrs r2, r2, #24
m = (xsf + xef) >> 1;
b204: 1852 adds r2, r2, r1
b206: 0852 lsrs r2, r2, #1
if(p->inv) m = 255 - m;
b208: 4659 mov r1, fp
b20a: 0789 lsls r1, r1, #30
b20c: d501 bpl.n b212 <lv_draw_mask_line+0x2fe>
b20e: 43d2 mvns r2, r2
b210: b2d2 uxtb r2, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b212: 4649 mov r1, r9
b214: 1846 adds r6, r0, r1
b216: 7831 ldrb r1, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b218: 2af9 cmp r2, #249 ; 0xf9
b21a: d80a bhi.n b232 <lv_draw_mask_line+0x31e>
if(mask_new <= LV_OPA_MIN) return 0;
b21c: 2a05 cmp r2, #5
b21e: d907 bls.n b230 <lv_draw_mask_line+0x31c>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b220: 434a muls r2, r1
b222: 0211 lsls r1, r2, #8
b224: 1889 adds r1, r1, r2
b226: 01c9 lsls r1, r1, #7
b228: 188a adds r2, r1, r2
b22a: 0dd2 lsrs r2, r2, #23
b22c: b2d1 uxtb r1, r2
b22e: e000 b.n b232 <lv_draw_mask_line+0x31e>
if(mask_new <= LV_OPA_MIN) return 0;
b230: 2100 movs r1, #0
mask_buf[k] = mask_mix(mask_buf[k], m);
b232: 7031 strb r1, [r6, #0]
if(p->inv) {
b234: 2228 movs r2, #40 ; 0x28
b236: 5ca2 ldrb r2, [r4, r2]
b238: 0792 lsls r2, r2, #30
b23a: d50c bpl.n b256 <lv_draw_mask_line+0x342>
k = xsi - abs_x;
b23c: 4653 mov r3, sl
b23e: 1b59 subs r1, r3, r5
return LV_DRAW_MASK_RES_TRANSP;
b240: 2400 movs r4, #0
if(k >= len) {
b242: 4588 cmp r8, r1
b244: dc00 bgt.n b248 <lv_draw_mask_line+0x334>
b246: e6ca b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b248: 3402 adds r4, #2
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
b24a: 2900 cmp r1, #0
b24c: da00 bge.n b250 <lv_draw_mask_line+0x33c>
b24e: e6c6 b.n afde <lv_draw_mask_line+0xca>
b250: 4b0c ldr r3, [pc, #48] ; (b284 <lv_draw_mask_line+0x370>)
b252: 4798 blx r3
b254: e6c3 b.n afde <lv_draw_mask_line+0xca>
k++;
b256: 4649 mov r1, r9
b258: 3101 adds r1, #1
b25a: 001a movs r2, r3
b25c: 4588 cmp r8, r1
b25e: dd00 ble.n b262 <lv_draw_mask_line+0x34e>
b260: 000a movs r2, r1
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
b262: 2400 movs r4, #0
b264: 2a00 cmp r2, #0
b266: d100 bne.n b26a <lv_draw_mask_line+0x356>
b268: e6b9 b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b26a: 3402 adds r4, #2
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
b26c: 2a00 cmp r2, #0
b26e: dc00 bgt.n b272 <lv_draw_mask_line+0x35e>
b270: e6b5 b.n afde <lv_draw_mask_line+0xca>
b272: 1a99 subs r1, r3, r2
b274: 1880 adds r0, r0, r2
b276: 4b03 ldr r3, [pc, #12] ; (b284 <lv_draw_mask_line+0x370>)
b278: 4798 blx r3
b27a: e6b0 b.n afde <lv_draw_mask_line+0xca>
if(mask_new <= LV_OPA_MIN) return 0;
b27c: 2500 movs r5, #0
b27e: e0a1 b.n b3c4 <lv_draw_mask_line+0x4b0>
b280: 2500 movs r5, #0
b282: e0c2 b.n b40a <lv_draw_mask_line+0x4f6>
b284: 00012975 .word 0x00012975
k += 2;
b288: 464a mov r2, r9
b28a: 3201 adds r2, #1
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
b28c: 2401 movs r4, #1
b28e: 4590 cmp r8, r2
b290: da00 bge.n b294 <lv_draw_mask_line+0x380>
b292: e6a4 b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b294: 3401 adds r4, #1
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
b296: 2a00 cmp r2, #0
b298: da00 bge.n b29c <lv_draw_mask_line+0x388>
b29a: e6a0 b.n afde <lv_draw_mask_line+0xca>
b29c: 1a99 subs r1, r3, r2
b29e: 1880 adds r0, r0, r2
b2a0: 4b62 ldr r3, [pc, #392] ; (b42c <lv_draw_mask_line+0x518>)
b2a2: 4798 blx r3
b2a4: e69b b.n afde <lv_draw_mask_line+0xca>
if(mask_new <= LV_OPA_MIN) return 0;
b2a6: 2100 movs r1, #0
b2a8: e76a b.n b180 <lv_draw_mask_line+0x26c>
b2aa: 2500 movs r5, #0
b2ac: e789 b.n b1c2 <lv_draw_mask_line+0x2ae>
k++;
b2ae: 4649 mov r1, r9
b2b0: 3102 adds r1, #2
b2b2: 001a movs r2, r3
b2b4: 4588 cmp r8, r1
b2b6: dd00 ble.n b2ba <lv_draw_mask_line+0x3a6>
b2b8: 000a movs r2, r1
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
b2ba: 2400 movs r4, #0
b2bc: 2a00 cmp r2, #0
b2be: d100 bne.n b2c2 <lv_draw_mask_line+0x3ae>
b2c0: e68d b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_CHANGED;
b2c2: 3402 adds r4, #2
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
b2c4: 2a00 cmp r2, #0
b2c6: dc00 bgt.n b2ca <lv_draw_mask_line+0x3b6>
b2c8: e689 b.n afde <lv_draw_mask_line+0xca>
b2ca: 1a99 subs r1, r3, r2
b2cc: 1880 adds r0, r0, r2
b2ce: 4b57 ldr r3, [pc, #348] ; (b42c <lv_draw_mask_line+0x518>)
b2d0: 4798 blx r3
b2d2: e684 b.n afde <lv_draw_mask_line+0xca>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
b2d4: 2401 movs r4, #1
b2d6: e682 b.n afde <lv_draw_mask_line+0xca>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER;
b2d8: 2401 movs r4, #1
b2da: e680 b.n afde <lv_draw_mask_line+0xca>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
b2dc: 2401 movs r4, #1
b2de: e67e b.n afde <lv_draw_mask_line+0xca>
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
b2e0: 2400 movs r4, #0
b2e2: e67c b.n afde <lv_draw_mask_line+0xca>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
b2e4: 2400 movs r4, #0
b2e6: e67a b.n afde <lv_draw_mask_line+0xca>
return LV_DRAW_MASK_RES_TRANSP;
b2e8: 2400 movs r4, #0
b2ea: e678 b.n afde <lv_draw_mask_line+0xca>
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
b2ec: 001f movs r7, r3
b2ee: 18eb adds r3, r5, r3
b2f0: 4359 muls r1, r3
b2f2: 1289 asrs r1, r1, #10
if(y_at_x < abs_y) {
b2f4: 428a cmp r2, r1
b2f6: dd00 ble.n b2fa <lv_draw_mask_line+0x3e6>
b2f8: e68c b.n b014 <lv_draw_mask_line+0x100>
if(p->yx_steep > 0) xe = ((abs_y << 8) * p->xy_steep) >> 10;
b2fa: 0212 lsls r2, r2, #8
b2fc: 69a3 ldr r3, [r4, #24]
b2fe: 435a muls r2, r3
b300: 1292 asrs r2, r2, #10
int32_t xei = xe >> 8;
b302: 1211 asrs r1, r2, #8
int32_t xef = xe & 0xFF;
b304: 23ff movs r3, #255 ; 0xff
b306: 401a ands r2, r3
if(xef == 0) px_h = 255;
b308: d039 beq.n b37e <lv_draw_mask_line+0x46a>
else px_h = 255 - (((255 - xef) * p->spx) >> 8);
b30a: 469c mov ip, r3
b30c: 1a9b subs r3, r3, r2
b30e: 4698 mov r8, r3
b310: 6a63 ldr r3, [r4, #36] ; 0x24
b312: 4642 mov r2, r8
b314: 4353 muls r3, r2
b316: 121b asrs r3, r3, #8
b318: 4662 mov r2, ip
b31a: 1ad2 subs r2, r2, r3
int32_t k = xei - abs_x;
b31c: 1b49 subs r1, r1, r5
b31e: 468c mov ip, r1
if(k >= 0 && k < len) {
b320: d41a bmi.n b358 <lv_draw_mask_line+0x444>
b322: 42b9 cmp r1, r7
b324: da18 bge.n b358 <lv_draw_mask_line+0x444>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
b326: 4641 mov r1, r8
b328: 434b muls r3, r1
b32a: 125b asrs r3, r3, #9
b32c: b2db uxtb r3, r3
if(p->inv) m = 255 - m;
b32e: 4659 mov r1, fp
b330: 0789 lsls r1, r1, #30
b332: d401 bmi.n b338 <lv_draw_mask_line+0x424>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
b334: 43db mvns r3, r3
b336: b2db uxtb r3, r3
mask_buf[k] = mask_mix(mask_buf[k], m);
b338: 4661 mov r1, ip
b33a: 1845 adds r5, r0, r1
b33c: 7829 ldrb r1, [r5, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b33e: 2bf9 cmp r3, #249 ; 0xf9
b340: d809 bhi.n b356 <lv_draw_mask_line+0x442>
if(mask_new <= LV_OPA_MIN) return 0;
b342: 2b05 cmp r3, #5
b344: d800 bhi.n b348 <lv_draw_mask_line+0x434>
b346: e673 b.n b030 <lv_draw_mask_line+0x11c>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b348: 434b muls r3, r1
b34a: 0219 lsls r1, r3, #8
b34c: 18c9 adds r1, r1, r3
b34e: 01c9 lsls r1, r1, #7
b350: 18cb adds r3, r1, r3
b352: 0ddb lsrs r3, r3, #23
b354: b2d9 uxtb r1, r3
mask_buf[k] = mask_mix(mask_buf[k], m);
b356: 7029 strb r1, [r5, #0]
k++;
b358: 4663 mov r3, ip
b35a: 1c5d adds r5, r3, #1
if(p->inv) m = 255 - m;
b35c: 2328 movs r3, #40 ; 0x28
b35e: 4698 mov r8, r3
b360: 2602 movs r6, #2
b362: e66f b.n b044 <lv_draw_mask_line+0x130>
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
b364: 001f movs r7, r3
b366: 195b adds r3, r3, r5
b368: 4359 muls r1, r3
b36a: 1289 asrs r1, r1, #10
if(y_at_x > abs_y) {
b36c: 4291 cmp r1, r2
b36e: dd00 ble.n b372 <lv_draw_mask_line+0x45e>
b370: e657 b.n b022 <lv_draw_mask_line+0x10e>
else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
b372: 3201 adds r2, #1
b374: 0212 lsls r2, r2, #8
b376: 69a3 ldr r3, [r4, #24]
b378: 435a muls r2, r3
b37a: 1292 asrs r2, r2, #10
b37c: e7c1 b.n b302 <lv_draw_mask_line+0x3ee>
int32_t k = xei - abs_x;
b37e: 1b4d subs r5, r1, r5
b380: 46ac mov ip, r5
if(xef == 0) px_h = 255;
b382: 22ff movs r2, #255 ; 0xff
b384: e7ea b.n b35c <lv_draw_mask_line+0x448>
y_inters = (xsf * (-p->yx_steep)) >> 10;
b386: 69e2 ldr r2, [r4, #28]
b388: 4252 negs r2, r2
b38a: 434a muls r2, r1
b38c: 1292 asrs r2, r2, #10
if(k >= 0 && k < len) {
b38e: 2e00 cmp r6, #0
b390: db19 blt.n b3c6 <lv_draw_mask_line+0x4b2>
b392: 45c8 cmp r8, r9
b394: dd17 ble.n b3c6 <lv_draw_mask_line+0x4b2>
m = (y_inters * xsf) >> 9;
b396: 4351 muls r1, r2
b398: 1249 asrs r1, r1, #9
b39a: b2c9 uxtb r1, r1
if(p->inv) m = 255 - m;
b39c: 465d mov r5, fp
b39e: 07ad lsls r5, r5, #30
b3a0: d501 bpl.n b3a6 <lv_draw_mask_line+0x492>
b3a2: 43c9 mvns r1, r1
b3a4: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
b3a6: 464d mov r5, r9
b3a8: 1946 adds r6, r0, r5
b3aa: 7835 ldrb r5, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b3ac: 29f9 cmp r1, #249 ; 0xf9
b3ae: d809 bhi.n b3c4 <lv_draw_mask_line+0x4b0>
if(mask_new <= LV_OPA_MIN) return 0;
b3b0: 2905 cmp r1, #5
b3b2: d800 bhi.n b3b6 <lv_draw_mask_line+0x4a2>
b3b4: e762 b.n b27c <lv_draw_mask_line+0x368>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b3b6: 4369 muls r1, r5
b3b8: 020d lsls r5, r1, #8
b3ba: 186d adds r5, r5, r1
b3bc: 01ed lsls r5, r5, #7
b3be: 1869 adds r1, r5, r1
b3c0: 0dc9 lsrs r1, r1, #23
b3c2: b2cd uxtb r5, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
b3c4: 7035 strb r5, [r6, #0]
if(k >= 0 && k < len) {
b3c6: 4649 mov r1, r9
b3c8: 3901 subs r1, #1
b3ca: d41f bmi.n b40c <lv_draw_mask_line+0x4f8>
b3cc: 4588 cmp r8, r1
b3ce: dd1d ble.n b40c <lv_draw_mask_line+0x4f8>
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
b3d0: 25ff movs r5, #255 ; 0xff
b3d2: 1aaa subs r2, r5, r2
b3d4: 69a5 ldr r5, [r4, #24]
b3d6: 426d negs r5, r5
b3d8: 4355 muls r5, r2
b3da: 12ad asrs r5, r5, #10
m = 255 - (((255 - y_inters) * x_inters) >> 9);
b3dc: 436a muls r2, r5
b3de: 1252 asrs r2, r2, #9
b3e0: b2d2 uxtb r2, r2
if(p->inv) m = 255 - m;
b3e2: 2528 movs r5, #40 ; 0x28
b3e4: 5d65 ldrb r5, [r4, r5]
b3e6: 07ad lsls r5, r5, #30
b3e8: d401 bmi.n b3ee <lv_draw_mask_line+0x4da>
m = 255 - (((255 - y_inters) * x_inters) >> 9);
b3ea: 43d2 mvns r2, r2
b3ec: b2d2 uxtb r2, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b3ee: 1846 adds r6, r0, r1
b3f0: 7835 ldrb r5, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b3f2: 2af9 cmp r2, #249 ; 0xf9
b3f4: d809 bhi.n b40a <lv_draw_mask_line+0x4f6>
if(mask_new <= LV_OPA_MIN) return 0;
b3f6: 2a05 cmp r2, #5
b3f8: d800 bhi.n b3fc <lv_draw_mask_line+0x4e8>
b3fa: e741 b.n b280 <lv_draw_mask_line+0x36c>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b3fc: 436a muls r2, r5
b3fe: 0215 lsls r5, r2, #8
b400: 18ad adds r5, r5, r2
b402: 01ed lsls r5, r5, #7
b404: 18aa adds r2, r5, r2
b406: 0dd2 lsrs r2, r2, #23
b408: b2d5 uxtb r5, r2
mask_buf[k] = mask_mix(mask_buf[k], m);
b40a: 7035 strb r5, [r6, #0]
if(p->inv) {
b40c: 2228 movs r2, #40 ; 0x28
b40e: 5ca2 ldrb r2, [r4, r2]
b410: 0792 lsls r2, r2, #30
b412: d400 bmi.n b416 <lv_draw_mask_line+0x502>
b414: e738 b.n b288 <lv_draw_mask_line+0x374>
return LV_DRAW_MASK_RES_CHANGED;
b416: 2402 movs r4, #2
if(k > len) k = len;
b418: 4588 cmp r8, r1
b41a: da00 bge.n b41e <lv_draw_mask_line+0x50a>
b41c: e5df b.n afde <lv_draw_mask_line+0xca>
else if(k > 0) _lv_memset_00(&mask_buf[0], k);
b41e: 2900 cmp r1, #0
b420: dc00 bgt.n b424 <lv_draw_mask_line+0x510>
b422: e5dc b.n afde <lv_draw_mask_line+0xca>
b424: 4b01 ldr r3, [pc, #4] ; (b42c <lv_draw_mask_line+0x518>)
b426: 4798 blx r3
b428: e5d9 b.n afde <lv_draw_mask_line+0xca>
b42a: 46c0 nop ; (mov r8, r8)
b42c: 00012975 .word 0x00012975
0000b430 <lv_draw_mask_radius>:
{
b430: b5f0 push {r4, r5, r6, r7, lr}
b432: 46de mov lr, fp
b434: 4657 mov r7, sl
b436: 464e mov r6, r9
b438: 4645 mov r5, r8
b43a: b5e0 push {r5, r6, r7, lr}
b43c: b08d sub sp, #52 ; 0x34
b43e: 9001 str r0, [sp, #4]
b440: 4689 mov r9, r1
b442: 9300 str r3, [sp, #0]
b444: 9d16 ldr r5, [sp, #88] ; 0x58
bool outer = p->cfg.outer;
b446: 7cac ldrb r4, [r5, #18]
b448: 07e4 lsls r4, r4, #31
b44a: 0fe4 lsrs r4, r4, #31
int32_t radius = p->cfg.radius;
b44c: 2310 movs r3, #16
b44e: 5eee ldrsh r6, [r5, r3]
lv_area_copy(&rect, &p->cfg.rect);
b450: 002f movs r7, r5
b452: 3708 adds r7, #8
b454: 2300 movs r3, #0
*d8 = *s8;
b456: a80a add r0, sp, #40 ; 0x28
b458: 5cf9 ldrb r1, [r7, r3]
b45a: 5419 strb r1, [r3, r0]
b45c: 3301 adds r3, #1
while(len) {
b45e: 2b08 cmp r3, #8
b460: d1fa bne.n b458 <lv_draw_mask_radius+0x28>
if(outer == false) {
b462: 2c00 cmp r4, #0
b464: d145 bne.n b4f2 <lv_draw_mask_radius+0xc2>
if(abs_y < rect.y1 || abs_y > rect.y2) {
b466: ab0a add r3, sp, #40 ; 0x28
b468: 2102 movs r1, #2
b46a: 5e5b ldrsh r3, [r3, r1]
return LV_DRAW_MASK_RES_TRANSP;
b46c: 2000 movs r0, #0
if(abs_y < rect.y1 || abs_y > rect.y2) {
b46e: 4293 cmp r3, r2
b470: dc4a bgt.n b508 <lv_draw_mask_radius+0xd8>
b472: ab0a add r3, sp, #40 ; 0x28
b474: 2106 movs r1, #6
b476: 5e5b ldrsh r3, [r3, r1]
b478: 4293 cmp r3, r2
b47a: db45 blt.n b508 <lv_draw_mask_radius+0xd8>
int32_t radius = p->cfg.radius;
b47c: 46b4 mov ip, r6
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
b47e: ab0a add r3, sp, #40 ; 0x28
b480: 2000 movs r0, #0
b482: 5e1b ldrsh r3, [r3, r0]
b484: 469a mov sl, r3
b486: 18f3 adds r3, r6, r3
b488: 4599 cmp r9, r3
b48a: db08 blt.n b49e <lv_draw_mask_radius+0x6e>
b48c: 9b00 ldr r3, [sp, #0]
b48e: 444b add r3, r9
b490: 0018 movs r0, r3
b492: ab0a add r3, sp, #40 ; 0x28
b494: 2104 movs r1, #4
b496: 5e5b ldrsh r3, [r3, r1]
b498: 1b9b subs r3, r3, r6
b49a: 4298 cmp r0, r3
b49c: dd0b ble.n b4b6 <lv_draw_mask_radius+0x86>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
b49e: a80a add r0, sp, #40 ; 0x28
b4a0: 2702 movs r7, #2
b4a2: 5fc0 ldrsh r0, [r0, r7]
b4a4: 1987 adds r7, r0, r6
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
b4a6: 42ba cmp r2, r7
b4a8: db62 blt.n b570 <lv_draw_mask_radius+0x140>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
b4aa: af0a add r7, sp, #40 ; 0x28
b4ac: 2106 movs r1, #6
b4ae: 5e7f ldrsh r7, [r7, r1]
b4b0: 1bbf subs r7, r7, r6
b4b2: 42ba cmp r2, r7
b4b4: dc5c bgt.n b570 <lv_draw_mask_radius+0x140>
if(outer == false) {
b4b6: 2c00 cmp r4, #0
b4b8: d13c bne.n b534 <lv_draw_mask_radius+0x104>
int32_t last = rect.x1 - abs_x;
b4ba: 4653 mov r3, sl
b4bc: 464a mov r2, r9
b4be: 1a9c subs r4, r3, r2
if(last > len) return LV_DRAW_MASK_RES_TRANSP;
b4c0: 9d00 ldr r5, [sp, #0]
b4c2: 2000 movs r0, #0
b4c4: 42ac cmp r4, r5
b4c6: dc1f bgt.n b508 <lv_draw_mask_radius+0xd8>
if(last >= 0) {
b4c8: 2c00 cmp r4, #0
b4ca: db03 blt.n b4d4 <lv_draw_mask_radius+0xa4>
_lv_memset_00(&mask_buf[0], last);
b4cc: 0021 movs r1, r4
b4ce: 9801 ldr r0, [sp, #4]
b4d0: 4ba2 ldr r3, [pc, #648] ; (b75c <lv_draw_mask_radius+0x32c>)
b4d2: 4798 blx r3
int32_t first = rect.x2 - abs_x + 1;
b4d4: ab0a add r3, sp, #40 ; 0x28
b4d6: 2004 movs r0, #4
b4d8: 5e18 ldrsh r0, [r3, r0]
b4da: 464b mov r3, r9
b4dc: 1ac0 subs r0, r0, r3
b4de: 3001 adds r0, #1
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
b4e0: 2800 cmp r0, #0
b4e2: dc00 bgt.n b4e6 <lv_draw_mask_radius+0xb6>
b4e4: e20b b.n b8fe <lv_draw_mask_radius+0x4ce>
else if(first < len) {
b4e6: 4285 cmp r5, r0
b4e8: dc15 bgt.n b516 <lv_draw_mask_radius+0xe6>
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
b4ea: 2c00 cmp r4, #0
b4ec: d01e beq.n b52c <lv_draw_mask_radius+0xfc>
else return LV_DRAW_MASK_RES_CHANGED;
b4ee: 2002 movs r0, #2
b4f0: e00a b.n b508 <lv_draw_mask_radius+0xd8>
if(abs_y < rect.y1 || abs_y > rect.y2) {
b4f2: ab0a add r3, sp, #40 ; 0x28
b4f4: 2102 movs r1, #2
b4f6: 5e5b ldrsh r3, [r3, r1]
return LV_DRAW_MASK_RES_FULL_COVER;
b4f8: 2001 movs r0, #1
if(abs_y < rect.y1 || abs_y > rect.y2) {
b4fa: 4293 cmp r3, r2
b4fc: dc04 bgt.n b508 <lv_draw_mask_radius+0xd8>
b4fe: ab0a add r3, sp, #40 ; 0x28
b500: 2106 movs r1, #6
b502: 5e5b ldrsh r3, [r3, r1]
b504: 4293 cmp r3, r2
b506: dab9 bge.n b47c <lv_draw_mask_radius+0x4c>
}
b508: b00d add sp, #52 ; 0x34
b50a: bc3c pop {r2, r3, r4, r5}
b50c: 4690 mov r8, r2
b50e: 4699 mov r9, r3
b510: 46a2 mov sl, r4
b512: 46ab mov fp, r5
b514: bdf0 pop {r4, r5, r6, r7, pc}
_lv_memset_00(&mask_buf[first], len - first);
b516: 9b00 ldr r3, [sp, #0]
b518: 1a19 subs r1, r3, r0
b51a: 9b01 ldr r3, [sp, #4]
b51c: 469c mov ip, r3
b51e: 4460 add r0, ip
b520: 4b8e ldr r3, [pc, #568] ; (b75c <lv_draw_mask_radius+0x32c>)
b522: 4798 blx r3
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
b524: 2c00 cmp r4, #0
b526: d1e2 bne.n b4ee <lv_draw_mask_radius+0xbe>
else return LV_DRAW_MASK_RES_CHANGED;
b528: 2002 movs r0, #2
b52a: e7ed b.n b508 <lv_draw_mask_radius+0xd8>
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
b52c: 4285 cmp r5, r0
b52e: d1de bne.n b4ee <lv_draw_mask_radius+0xbe>
b530: 2001 movs r0, #1
b532: e7e9 b.n b508 <lv_draw_mask_radius+0xd8>
int32_t first = rect.x1 - abs_x;
b534: 4653 mov r3, sl
b536: 464a mov r2, r9
b538: 1a9b subs r3, r3, r2
b53a: 43da mvns r2, r3
b53c: 17d2 asrs r2, r2, #31
b53e: 4013 ands r3, r2
if(first <= len) {
b540: 9a00 ldr r2, [sp, #0]
return LV_DRAW_MASK_RES_CHANGED;
b542: 2002 movs r0, #2
if(first <= len) {
b544: 4293 cmp r3, r2
b546: dcdf bgt.n b508 <lv_draw_mask_radius+0xd8>
int32_t last = rect.x2 - abs_x - first + 1;
b548: a90a add r1, sp, #40 ; 0x28
b54a: 2004 movs r0, #4
b54c: 5e09 ldrsh r1, [r1, r0]
b54e: 4648 mov r0, r9
b550: 1a09 subs r1, r1, r0
b552: 1ac9 subs r1, r1, r3
b554: 3101 adds r1, #1
if(first + last > len) last = len - first;
b556: 1858 adds r0, r3, r1
b558: 4282 cmp r2, r0
b55a: da00 bge.n b55e <lv_draw_mask_radius+0x12e>
b55c: 1ad1 subs r1, r2, r3
return LV_DRAW_MASK_RES_CHANGED;
b55e: 2002 movs r0, #2
if(last >= 0) {
b560: 2900 cmp r1, #0
b562: dbd1 blt.n b508 <lv_draw_mask_radius+0xd8>
_lv_memset_00(&mask_buf[first], last);
b564: 9a01 ldr r2, [sp, #4]
b566: 18d0 adds r0, r2, r3
b568: 4b7c ldr r3, [pc, #496] ; (b75c <lv_draw_mask_radius+0x32c>)
b56a: 4798 blx r3
return LV_DRAW_MASK_RES_CHANGED;
b56c: 2002 movs r0, #2
b56e: e7cb b.n b508 <lv_draw_mask_radius+0xd8>
b570: ab0a add r3, sp, #40 ; 0x28
b572: 2104 movs r1, #4
b574: 5e5f ldrsh r7, [r3, r1]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b576: b280 uxth r0, r0
b578: 88db ldrh r3, [r3, #6]
b57a: 3301 adds r3, #1
b57c: 1a1b subs r3, r3, r0
int32_t h = lv_area_get_height(&rect);
b57e: b21b sxth r3, r3
abs_y -= rect.y1;
b580: 1a12 subs r2, r2, r0
uint32_t r2 = p->cfg.radius * p->cfg.radius;
b582: 0030 movs r0, r6
b584: 4370 muls r0, r6
b586: 4680 mov r8, r0
if(abs_y < radius || abs_y > h - radius - 1) {
b588: b212 sxth r2, r2
b58a: 4594 cmp ip, r2
b58c: dd00 ble.n b590 <lv_draw_mask_radius+0x160>
b58e: e1e0 b.n b952 <lv_draw_mask_radius+0x522>
b590: 1b98 subs r0, r3, r6
b592: 3801 subs r0, #1
b594: 4282 cmp r2, r0
b596: dd00 ble.n b59a <lv_draw_mask_radius+0x16a>
b598: e1b3 b.n b902 <lv_draw_mask_radius+0x4d2>
return LV_DRAW_MASK_RES_CHANGED;
b59a: 2002 movs r0, #2
b59c: e7b4 b.n b508 <lv_draw_mask_radius+0xd8>
x0.f = p->y_prev_x.f;
b59e: 8b6b ldrh r3, [r5, #26]
b5a0: aa06 add r2, sp, #24
b5a2: 8053 strh r3, [r2, #2]
x0.i = p->y_prev_x.i;
b5a4: 8b2b ldrh r3, [r5, #24]
b5a6: 8013 strh r3, [r2, #0]
b5a8: e1e9 b.n b97e <lv_draw_mask_radius+0x54e>
if(radius <= 256) sqrt_mask = 0x800;
b5aa: 2180 movs r1, #128 ; 0x80
b5ac: 0109 lsls r1, r1, #4
b5ae: 9102 str r1, [sp, #8]
b5b0: e1af b.n b912 <lv_draw_mask_radius+0x4e2>
x1.f = p->y_prev_x.f;
b5b2: ab07 add r3, sp, #28
b5b4: 8b6a ldrh r2, [r5, #26]
b5b6: 805a strh r2, [r3, #2]
x1.i = p->y_prev_x.i;
b5b8: 8b2a ldrh r2, [r5, #24]
b5ba: 801a strh r2, [r3, #0]
b5bc: e1b8 b.n b930 <lv_draw_mask_radius+0x500>
if(x0.i == x1.i - 1 && x1.f == 0) {
b5be: a907 add r1, sp, #28
b5c0: 8849 ldrh r1, [r1, #2]
b5c2: 2900 cmp r1, #0
b5c4: d000 beq.n b5c8 <lv_draw_mask_radius+0x198>
b5c6: e1f5 b.n b9b4 <lv_draw_mask_radius+0x584>
x1.i--;
b5c8: a907 add r1, sp, #28
b5ca: 3a01 subs r2, #1
b5cc: 800a strh r2, [r1, #0]
x1.f = 0xFF;
b5ce: 22ff movs r2, #255 ; 0xff
b5d0: 804a strh r2, [r1, #2]
b5d2: e1ef b.n b9b4 <lv_draw_mask_radius+0x584>
lv_opa_t m = (x0.f + x1.f) >> 1;
b5d4: a906 add r1, sp, #24
b5d6: 8849 ldrh r1, [r1, #2]
b5d8: ad07 add r5, sp, #28
b5da: 886d ldrh r5, [r5, #2]
b5dc: 1949 adds r1, r1, r5
b5de: 1049 asrs r1, r1, #1
b5e0: b2cf uxtb r7, r1
if(outer) m = 255 - m;
b5e2: 2c00 cmp r4, #0
b5e4: d001 beq.n b5ea <lv_draw_mask_radius+0x1ba>
b5e6: 43ff mvns r7, r7
b5e8: b2ff uxtb r7, r7
int32_t ofs = radius - x0.i - 1;
b5ea: 1af3 subs r3, r6, r3
b5ec: 3b01 subs r3, #1
if(kl >= 0 && kl < len) {
b5ee: 18c1 adds r1, r0, r3
b5f0: d412 bmi.n b618 <lv_draw_mask_radius+0x1e8>
b5f2: 9d00 ldr r5, [sp, #0]
b5f4: 42a9 cmp r1, r5
b5f6: da0f bge.n b618 <lv_draw_mask_radius+0x1e8>
mask_buf[kl] = mask_mix(mask_buf[kl], m);
b5f8: 9d01 ldr r5, [sp, #4]
b5fa: 186e adds r6, r5, r1
b5fc: 7835 ldrb r5, [r6, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b5fe: 2ff9 cmp r7, #249 ; 0xf9
b600: d809 bhi.n b616 <lv_draw_mask_radius+0x1e6>
if(mask_new <= LV_OPA_MIN) return 0;
b602: 2f05 cmp r7, #5
b604: d936 bls.n b674 <lv_draw_mask_radius+0x244>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b606: 437d muls r5, r7
b608: 46ac mov ip, r5
b60a: 022d lsls r5, r5, #8
b60c: 4465 add r5, ip
b60e: 01ed lsls r5, r5, #7
b610: 4465 add r5, ip
b612: 0ded lsrs r5, r5, #23
b614: b2ed uxtb r5, r5
mask_buf[kl] = mask_mix(mask_buf[kl], m);
b616: 7035 strb r5, [r6, #0]
int32_t kr = k + (w - ofs - 1);
b618: 1ad2 subs r2, r2, r3
b61a: 3a01 subs r2, #1
if(kr >= 0 && kr < len) {
b61c: 1815 adds r5, r2, r0
b61e: d411 bmi.n b644 <lv_draw_mask_radius+0x214>
b620: 9b00 ldr r3, [sp, #0]
b622: 429d cmp r5, r3
b624: da0e bge.n b644 <lv_draw_mask_radius+0x214>
mask_buf[kr] = mask_mix(mask_buf[kr], m);
b626: 9b01 ldr r3, [sp, #4]
b628: 195a adds r2, r3, r5
b62a: 7813 ldrb r3, [r2, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b62c: 2ff9 cmp r7, #249 ; 0xf9
b62e: d808 bhi.n b642 <lv_draw_mask_radius+0x212>
if(mask_new <= LV_OPA_MIN) return 0;
b630: 2f05 cmp r7, #5
b632: d921 bls.n b678 <lv_draw_mask_radius+0x248>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b634: 435f muls r7, r3
b636: 023b lsls r3, r7, #8
b638: 19db adds r3, r3, r7
b63a: 01db lsls r3, r3, #7
b63c: 19df adds r7, r3, r7
b63e: 0dff lsrs r7, r7, #23
b640: b2fb uxtb r3, r7
mask_buf[kr] = mask_mix(mask_buf[kr], m);
b642: 7013 strb r3, [r2, #0]
if(outer == false) {
b644: 2c00 cmp r4, #0
b646: d019 beq.n b67c <lv_draw_mask_radius+0x24c>
kl++;
b648: 1c48 adds r0, r1, #1
b64a: 43c3 mvns r3, r0
b64c: 17db asrs r3, r3, #31
b64e: 4018 ands r0, r3
if(len_tmp + first > len) len_tmp = len - first;
b650: 9a00 ldr r2, [sp, #0]
b652: 0013 movs r3, r2
b654: 1a11 subs r1, r2, r0
b656: 4295 cmp r5, r2
b658: dc00 bgt.n b65c <lv_draw_mask_radius+0x22c>
int32_t len_tmp = kr - first;
b65a: 1a29 subs r1, r5, r0
if(first < len && len_tmp >= 0) {
b65c: 4298 cmp r0, r3
b65e: db00 blt.n b662 <lv_draw_mask_radius+0x232>
b660: e12d b.n b8be <lv_draw_mask_radius+0x48e>
b662: 2900 cmp r1, #0
b664: da00 bge.n b668 <lv_draw_mask_radius+0x238>
b666: e12a b.n b8be <lv_draw_mask_radius+0x48e>
_lv_memset_00(&mask_buf[first], len_tmp);
b668: 9b01 ldr r3, [sp, #4]
b66a: 469c mov ip, r3
b66c: 4460 add r0, ip
b66e: 4b3b ldr r3, [pc, #236] ; (b75c <lv_draw_mask_radius+0x32c>)
b670: 4798 blx r3
b672: e124 b.n b8be <lv_draw_mask_radius+0x48e>
if(mask_new <= LV_OPA_MIN) return 0;
b674: 2500 movs r5, #0
b676: e7ce b.n b616 <lv_draw_mask_radius+0x1e6>
b678: 2300 movs r3, #0
b67a: e7e2 b.n b642 <lv_draw_mask_radius+0x212>
if(kl > len) {
b67c: 9c00 ldr r4, [sp, #0]
b67e: 42a1 cmp r1, r4
b680: dd00 ble.n b684 <lv_draw_mask_radius+0x254>
b682: e13a b.n b8fa <lv_draw_mask_radius+0x4ca>
if(kl >= 0) {
b684: 2900 cmp r1, #0
b686: db02 blt.n b68e <lv_draw_mask_radius+0x25e>
_lv_memset_00(&mask_buf[0], kl);
b688: 9801 ldr r0, [sp, #4]
b68a: 4b34 ldr r3, [pc, #208] ; (b75c <lv_draw_mask_radius+0x32c>)
b68c: 4798 blx r3
if(kr < 0) {
b68e: 1c68 adds r0, r5, #1
b690: d500 bpl.n b694 <lv_draw_mask_radius+0x264>
b692: e132 b.n b8fa <lv_draw_mask_radius+0x4ca>
if(kr <= len) {
b694: 42a0 cmp r0, r4
b696: dd00 ble.n b69a <lv_draw_mask_radius+0x26a>
b698: e111 b.n b8be <lv_draw_mask_radius+0x48e>
_lv_memset_00(&mask_buf[kr], len - kr);
b69a: 9b00 ldr r3, [sp, #0]
b69c: 1a19 subs r1, r3, r0
b69e: 9b01 ldr r3, [sp, #4]
b6a0: 469c mov ip, r3
b6a2: 4460 add r0, ip
b6a4: 4b2d ldr r3, [pc, #180] ; (b75c <lv_draw_mask_radius+0x32c>)
b6a6: 4798 blx r3
b6a8: e109 b.n b8be <lv_draw_mask_radius+0x48e>
_lv_sqrt(r2 - (i * i), &y_next, sqrt_mask);
b6aa: ad09 add r5, sp, #36 ; 0x24
b6ac: 9b05 ldr r3, [sp, #20]
b6ae: 0018 movs r0, r3
b6b0: 4358 muls r0, r3
b6b2: 4643 mov r3, r8
b6b4: 1a18 subs r0, r3, r0
b6b6: 9a02 ldr r2, [sp, #8]
b6b8: 0029 movs r1, r5
b6ba: 4b29 ldr r3, [pc, #164] ; (b760 <lv_draw_mask_radius+0x330>)
b6bc: 4798 blx r3
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
b6be: 886a ldrh r2, [r5, #2]
b6c0: ab06 add r3, sp, #24
b6c2: 8859 ldrh r1, [r3, #2]
b6c4: 23ff movs r3, #255 ; 0xff
b6c6: 1a59 subs r1, r3, r1
b6c8: 1a9b subs r3, r3, r2
b6ca: 434b muls r3, r1
b6cc: 125b asrs r3, r3, #9
b6ce: b2db uxtb r3, r3
if(outer) m = 255 - m;
b6d0: 2c00 cmp r4, #0
b6d2: d101 bne.n b6d8 <lv_draw_mask_radius+0x2a8>
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
b6d4: 43db mvns r3, r3
b6d6: b2db uxtb r3, r3
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b6d8: 9d03 ldr r5, [sp, #12]
b6da: 2d00 cmp r5, #0
b6dc: db14 blt.n b708 <lv_draw_mask_radius+0x2d8>
b6de: 9800 ldr r0, [sp, #0]
b6e0: 4285 cmp r5, r0
b6e2: da11 bge.n b708 <lv_draw_mask_radius+0x2d8>
b6e4: 9901 ldr r1, [sp, #4]
b6e6: 0008 movs r0, r1
b6e8: 46ac mov ip, r5
b6ea: 4460 add r0, ip
b6ec: 7801 ldrb r1, [r0, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b6ee: 2bf9 cmp r3, #249 ; 0xf9
b6f0: d809 bhi.n b706 <lv_draw_mask_radius+0x2d6>
if(mask_new <= LV_OPA_MIN) return 0;
b6f2: 2b05 cmp r3, #5
b6f4: d92b bls.n b74e <lv_draw_mask_radius+0x31e>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b6f6: 4359 muls r1, r3
b6f8: 000d movs r5, r1
b6fa: 0209 lsls r1, r1, #8
b6fc: 1949 adds r1, r1, r5
b6fe: 01c9 lsls r1, r1, #7
b700: 1949 adds r1, r1, r5
b702: 0dc9 lsrs r1, r1, #23
b704: b2c9 uxtb r1, r1
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b706: 7001 strb r1, [r0, #0]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b708: 9d04 ldr r5, [sp, #16]
b70a: 2d00 cmp r5, #0
b70c: db13 blt.n b736 <lv_draw_mask_radius+0x306>
b70e: 9800 ldr r0, [sp, #0]
b710: 4285 cmp r5, r0
b712: da10 bge.n b736 <lv_draw_mask_radius+0x306>
b714: 9901 ldr r1, [sp, #4]
b716: 0008 movs r0, r1
b718: 46ac mov ip, r5
b71a: 4460 add r0, ip
b71c: 7801 ldrb r1, [r0, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b71e: 2bf9 cmp r3, #249 ; 0xf9
b720: d808 bhi.n b734 <lv_draw_mask_radius+0x304>
if(mask_new <= LV_OPA_MIN) return 0;
b722: 2b05 cmp r3, #5
b724: d915 bls.n b752 <lv_draw_mask_radius+0x322>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b726: 434b muls r3, r1
b728: 0219 lsls r1, r3, #8
b72a: 18c9 adds r1, r1, r3
b72c: 01c9 lsls r1, r1, #7
b72e: 18c9 adds r1, r1, r3
b730: 0dc9 lsrs r1, r1, #23
b732: b2c9 uxtb r1, r1
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b734: 7001 strb r1, [r0, #0]
kl--;
b736: 9b03 ldr r3, [sp, #12]
b738: 3b01 subs r3, #1
b73a: 9303 str r3, [sp, #12]
kr++;
b73c: 9b04 ldr r3, [sp, #16]
b73e: 3301 adds r3, #1
b740: 9304 str r3, [sp, #16]
y_prev.f = y_next.f;
b742: ab08 add r3, sp, #32
b744: 805a strh r2, [r3, #2]
i++;
b746: 9b05 ldr r3, [sp, #20]
b748: 3301 adds r3, #1
b74a: 9305 str r3, [sp, #20]
b74c: e176 b.n ba3c <lv_draw_mask_radius+0x60c>
if(mask_new <= LV_OPA_MIN) return 0;
b74e: 2100 movs r1, #0
b750: e7d9 b.n b706 <lv_draw_mask_radius+0x2d6>
b752: 2100 movs r1, #0
b754: e7ee b.n b734 <lv_draw_mask_radius+0x304>
b756: 2200 movs r2, #0
b758: e03f b.n b7da <lv_draw_mask_radius+0x3aa>
b75a: 46c0 nop ; (mov r8, r8)
b75c: 00012975 .word 0x00012975
b760: 00012215 .word 0x00012215
b764: 2200 movs r2, #0
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b766: 9801 ldr r0, [sp, #4]
b768: 5442 strb r2, [r0, r1]
kl--;
b76a: 3c01 subs r4, #1
kr++;
b76c: 2201 movs r2, #1
b76e: 4694 mov ip, r2
b770: 44e2 add sl, ip
for(; i <= x1.i; i++) {
b772: 3701 adds r7, #1
y_prev.f = y_next.f;
b774: 002e movs r6, r5
for(; i <= x1.i; i++) {
b776: 455f cmp r7, fp
b778: d846 bhi.n b808 <lv_draw_mask_radius+0x3d8>
*/
LV_ATTRIBUTE_FAST_MEM static inline void sqrt_approx(lv_sqrt_res_t * q, lv_sqrt_res_t * ref, uint32_t x)
{
x = x << 8; /*Upscale for extra precision*/
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
b77a: 0935 lsrs r5, r6, #4
b77c: 9b02 ldr r3, [sp, #8]
b77e: 469c mov ip, r3
b780: 4465 add r5, ip
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
b782: 0038 movs r0, r7
b784: 4378 muls r0, r7
b786: 4643 mov r3, r8
b788: 1a18 subs r0, r3, r0
x = x << 8; /*Upscale for extra precision*/
b78a: 0200 lsls r0, r0, #8
uint32_t raw2 = raw * raw;
b78c: 002b movs r3, r5
b78e: 436b muls r3, r5
int32_t d = x - raw2;
b790: 1ac0 subs r0, r0, r3
d = (int32_t)d / (int32_t)(2 * raw) + raw;
b792: 0069 lsls r1, r5, #1
b794: 4bb4 ldr r3, [pc, #720] ; (ba68 <lv_draw_mask_radius+0x638>)
b796: 4798 blx r3
b798: 1945 adds r5, r0, r5
q->i = d >> 4;
b79a: 112b asrs r3, r5, #4
b79c: b29b uxth r3, r3
q->f = (d & 0xF) << 4;
b79e: 012d lsls r5, r5, #4
b7a0: 22ff movs r2, #255 ; 0xff
b7a2: 4015 ands r5, r2
m = (y_prev.f + y_next.f) >> 1;
b7a4: 1976 adds r6, r6, r5
b7a6: 1076 asrs r6, r6, #1
b7a8: b2f6 uxtb r6, r6
if(outer) m = 255 - m;
b7aa: 464a mov r2, r9
b7ac: 2a00 cmp r2, #0
b7ae: d001 beq.n b7b4 <lv_draw_mask_radius+0x384>
b7b0: 43f6 mvns r6, r6
b7b2: b2f6 uxtb r6, r6
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b7b4: 2c00 cmp r4, #0
b7b6: db12 blt.n b7de <lv_draw_mask_radius+0x3ae>
b7b8: 9a00 ldr r2, [sp, #0]
b7ba: 42a2 cmp r2, r4
b7bc: dd0f ble.n b7de <lv_draw_mask_radius+0x3ae>
b7be: 0020 movs r0, r4
b7c0: 9a01 ldr r2, [sp, #4]
b7c2: 5d12 ldrb r2, [r2, r4]
if(mask_new >= LV_OPA_MAX) return mask_act;
b7c4: 2ef9 cmp r6, #249 ; 0xf9
b7c6: d808 bhi.n b7da <lv_draw_mask_radius+0x3aa>
if(mask_new <= LV_OPA_MIN) return 0;
b7c8: 2e05 cmp r6, #5
b7ca: d9c4 bls.n b756 <lv_draw_mask_radius+0x326>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b7cc: 4372 muls r2, r6
b7ce: 0211 lsls r1, r2, #8
b7d0: 1889 adds r1, r1, r2
b7d2: 01c9 lsls r1, r1, #7
b7d4: 188a adds r2, r1, r2
b7d6: 0dd2 lsrs r2, r2, #23
b7d8: b2d2 uxtb r2, r2
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b7da: 9901 ldr r1, [sp, #4]
b7dc: 540a strb r2, [r1, r0]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b7de: 4652 mov r2, sl
b7e0: 2a00 cmp r2, #0
b7e2: dbc2 blt.n b76a <lv_draw_mask_radius+0x33a>
b7e4: 9a00 ldr r2, [sp, #0]
b7e6: 4552 cmp r2, sl
b7e8: ddbf ble.n b76a <lv_draw_mask_radius+0x33a>
b7ea: 4651 mov r1, sl
b7ec: 9a01 ldr r2, [sp, #4]
b7ee: 5c52 ldrb r2, [r2, r1]
if(mask_new >= LV_OPA_MAX) return mask_act;
b7f0: 2ef9 cmp r6, #249 ; 0xf9
b7f2: d8b8 bhi.n b766 <lv_draw_mask_radius+0x336>
if(mask_new <= LV_OPA_MIN) return 0;
b7f4: 2e05 cmp r6, #5
b7f6: d9b5 bls.n b764 <lv_draw_mask_radius+0x334>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b7f8: 4356 muls r6, r2
b7fa: 0232 lsls r2, r6, #8
b7fc: 1992 adds r2, r2, r6
b7fe: 01d2 lsls r2, r2, #7
b800: 1996 adds r6, r2, r6
b802: 0df6 lsrs r6, r6, #23
b804: b2f2 uxtb r2, r6
b806: e7ae b.n b766 <lv_draw_mask_radius+0x336>
b808: 464c mov r4, r9
b80a: 465a mov r2, fp
b80c: 43d2 mvns r2, r2
b80e: 9e05 ldr r6, [sp, #20]
b810: 46b4 mov ip, r6
b812: 4462 add r2, ip
b814: 9903 ldr r1, [sp, #12]
b816: 468c mov ip, r1
b818: 4494 add ip, r2
b81a: 4662 mov r2, ip
b81c: 9203 str r2, [sp, #12]
b81e: 465a mov r2, fp
b820: 1c50 adds r0, r2, #1
b822: 9a04 ldr r2, [sp, #16]
b824: 4694 mov ip, r2
b826: 4460 add r0, ip
b828: 1b82 subs r2, r0, r6
b82a: 9204 str r2, [sp, #16]
b82c: aa08 add r2, sp, #32
b82e: 8055 strh r5, [r2, #2]
b830: aa09 add r2, sp, #36 ; 0x24
b832: 8013 strh r3, [r2, #0]
b834: 8055 strh r5, [r2, #2]
if(y_prev.f) {
b836: ab08 add r3, sp, #32
b838: 885b ldrh r3, [r3, #2]
b83a: 2b00 cmp r3, #0
b83c: d03d beq.n b8ba <lv_draw_mask_radius+0x48a>
m = (y_prev.f * x1.f) >> 9;
b83e: aa07 add r2, sp, #28
b840: 8852 ldrh r2, [r2, #2]
b842: 4353 muls r3, r2
b844: 125b asrs r3, r3, #9
b846: b2db uxtb r3, r3
if(outer) m = 255 - m;
b848: 2c00 cmp r4, #0
b84a: d001 beq.n b850 <lv_draw_mask_radius+0x420>
b84c: 43db mvns r3, r3
b84e: b2db uxtb r3, r3
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b850: 9a03 ldr r2, [sp, #12]
b852: 2a00 cmp r2, #0
b854: db14 blt.n b880 <lv_draw_mask_radius+0x450>
b856: 9900 ldr r1, [sp, #0]
b858: 0008 movs r0, r1
b85a: 4290 cmp r0, r2
b85c: dd10 ble.n b880 <lv_draw_mask_radius+0x450>
b85e: 9901 ldr r1, [sp, #4]
b860: 4694 mov ip, r2
b862: 4461 add r1, ip
b864: 0008 movs r0, r1
b866: 780a ldrb r2, [r1, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b868: 2bf9 cmp r3, #249 ; 0xf9
b86a: d808 bhi.n b87e <lv_draw_mask_radius+0x44e>
if(mask_new <= LV_OPA_MIN) return 0;
b86c: 2b05 cmp r3, #5
b86e: d928 bls.n b8c2 <lv_draw_mask_radius+0x492>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b870: 435a muls r2, r3
b872: 0211 lsls r1, r2, #8
b874: 1889 adds r1, r1, r2
b876: 01c9 lsls r1, r1, #7
b878: 188a adds r2, r1, r2
b87a: 0dd2 lsrs r2, r2, #23
b87c: b2d2 uxtb r2, r2
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
b87e: 7002 strb r2, [r0, #0]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b880: 9a04 ldr r2, [sp, #16]
b882: 2a00 cmp r2, #0
b884: db13 blt.n b8ae <lv_draw_mask_radius+0x47e>
b886: 9900 ldr r1, [sp, #0]
b888: 0008 movs r0, r1
b88a: 4290 cmp r0, r2
b88c: dd0f ble.n b8ae <lv_draw_mask_radius+0x47e>
b88e: 9901 ldr r1, [sp, #4]
b890: 4694 mov ip, r2
b892: 4461 add r1, ip
b894: 780a ldrb r2, [r1, #0]
if(mask_new >= LV_OPA_MAX) return mask_act;
b896: 2bf9 cmp r3, #249 ; 0xf9
b898: d808 bhi.n b8ac <lv_draw_mask_radius+0x47c>
if(mask_new <= LV_OPA_MIN) return 0;
b89a: 2b05 cmp r3, #5
b89c: d913 bls.n b8c6 <lv_draw_mask_radius+0x496>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
b89e: 4353 muls r3, r2
b8a0: 021a lsls r2, r3, #8
b8a2: 18d2 adds r2, r2, r3
b8a4: 01d2 lsls r2, r2, #7
b8a6: 18d3 adds r3, r2, r3
b8a8: 0ddb lsrs r3, r3, #23
b8aa: b2da uxtb r2, r3
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
b8ac: 700a strb r2, [r1, #0]
kl--;
b8ae: 9b03 ldr r3, [sp, #12]
b8b0: 3b01 subs r3, #1
b8b2: 9303 str r3, [sp, #12]
kr++;
b8b4: 9b04 ldr r3, [sp, #16]
b8b6: 3301 adds r3, #1
b8b8: 9304 str r3, [sp, #16]
if(outer == 0) {
b8ba: 2c00 cmp r4, #0
b8bc: d005 beq.n b8ca <lv_draw_mask_radius+0x49a>
return LV_DRAW_MASK_RES_CHANGED;
b8be: 2002 movs r0, #2
b8c0: e622 b.n b508 <lv_draw_mask_radius+0xd8>
if(mask_new <= LV_OPA_MIN) return 0;
b8c2: 2200 movs r2, #0
b8c4: e7db b.n b87e <lv_draw_mask_radius+0x44e>
b8c6: 2200 movs r2, #0
b8c8: e7f0 b.n b8ac <lv_draw_mask_radius+0x47c>
kl++;
b8ca: 9903 ldr r1, [sp, #12]
b8cc: 3101 adds r1, #1
if(kl > len) {
b8ce: 9c00 ldr r4, [sp, #0]
b8d0: 42a1 cmp r1, r4
b8d2: dc12 bgt.n b8fa <lv_draw_mask_radius+0x4ca>
if(kl >= 0) _lv_memset_00(&mask_buf[0], kl);
b8d4: 2900 cmp r1, #0
b8d6: db02 blt.n b8de <lv_draw_mask_radius+0x4ae>
b8d8: 9801 ldr r0, [sp, #4]
b8da: 4b64 ldr r3, [pc, #400] ; (ba6c <lv_draw_mask_radius+0x63c>)
b8dc: 4798 blx r3
if(kr < 0) {
b8de: 9b04 ldr r3, [sp, #16]
b8e0: 2b00 cmp r3, #0
b8e2: db0a blt.n b8fa <lv_draw_mask_radius+0x4ca>
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
b8e4: 42a3 cmp r3, r4
b8e6: daea bge.n b8be <lv_draw_mask_radius+0x48e>
b8e8: 9a00 ldr r2, [sp, #0]
b8ea: 1ad1 subs r1, r2, r3
b8ec: 9a01 ldr r2, [sp, #4]
b8ee: 469c mov ip, r3
b8f0: 4462 add r2, ip
b8f2: 0010 movs r0, r2
b8f4: 4b5d ldr r3, [pc, #372] ; (ba6c <lv_draw_mask_radius+0x63c>)
b8f6: 4798 blx r3
b8f8: e7e1 b.n b8be <lv_draw_mask_radius+0x48e>
return LV_DRAW_MASK_RES_TRANSP;
b8fa: 2000 movs r0, #0
b8fc: e604 b.n b508 <lv_draw_mask_radius+0xd8>
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
b8fe: 2000 movs r0, #0
b900: e602 b.n b508 <lv_draw_mask_radius+0xd8>
if(radius <= 256) sqrt_mask = 0x800;
b902: 2080 movs r0, #128 ; 0x80
b904: 0040 lsls r0, r0, #1
b906: 4584 cmp ip, r0
b908: dc00 bgt.n b90c <lv_draw_mask_radius+0x4dc>
b90a: e64e b.n b5aa <lv_draw_mask_radius+0x17a>
b90c: 2180 movs r1, #128 ; 0x80
b90e: 0209 lsls r1, r1, #8
b910: 9102 str r1, [sp, #8]
y = radius - (h - abs_y) + 1;
b912: 1a9a subs r2, r3, r2
b914: 1ab0 subs r0, r6, r2
b916: 1c43 adds r3, r0, #1
b918: 469b mov fp, r3
if((y - 1) == p->y_prev) {
b91a: 696b ldr r3, [r5, #20]
b91c: 4298 cmp r0, r3
b91e: d100 bne.n b922 <lv_draw_mask_radius+0x4f2>
b920: e647 b.n b5b2 <lv_draw_mask_radius+0x182>
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
b922: 4340 muls r0, r0
b924: 4643 mov r3, r8
b926: 1a18 subs r0, r3, r0
b928: 9a02 ldr r2, [sp, #8]
b92a: a907 add r1, sp, #28
b92c: 4b50 ldr r3, [pc, #320] ; (ba70 <lv_draw_mask_radius+0x640>)
b92e: 4798 blx r3
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
b930: 4658 mov r0, fp
b932: 4340 muls r0, r0
b934: 4643 mov r3, r8
b936: 1a18 subs r0, r3, r0
b938: 9a02 ldr r2, [sp, #8]
b93a: a906 add r1, sp, #24
b93c: 4b4c ldr r3, [pc, #304] ; (ba70 <lv_draw_mask_radius+0x640>)
b93e: 4798 blx r3
p->y_prev = y;
b940: 465b mov r3, fp
b942: 616b str r3, [r5, #20]
p->y_prev_x.f = x0.f;
b944: ab06 add r3, sp, #24
b946: 885b ldrh r3, [r3, #2]
b948: 836b strh r3, [r5, #26]
p->y_prev_x.i = x0.i;
b94a: ab06 add r3, sp, #24
b94c: 881b ldrh r3, [r3, #0]
b94e: 832b strh r3, [r5, #24]
b950: e028 b.n b9a4 <lv_draw_mask_radius+0x574>
if(radius <= 256) sqrt_mask = 0x800;
b952: 2380 movs r3, #128 ; 0x80
b954: 005b lsls r3, r3, #1
b956: 459c cmp ip, r3
b958: dd00 ble.n b95c <lv_draw_mask_radius+0x52c>
b95a: e081 b.n ba60 <lv_draw_mask_radius+0x630>
b95c: 2380 movs r3, #128 ; 0x80
b95e: 011b lsls r3, r3, #4
b960: 9302 str r3, [sp, #8]
y = radius - abs_y;
b962: 1ab3 subs r3, r6, r2
b964: 469b mov fp, r3
if(y == p->y_prev) {
b966: 696b ldr r3, [r5, #20]
b968: 459b cmp fp, r3
b96a: d100 bne.n b96e <lv_draw_mask_radius+0x53e>
b96c: e617 b.n b59e <lv_draw_mask_radius+0x16e>
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
b96e: 4658 mov r0, fp
b970: 4340 muls r0, r0
b972: 4643 mov r3, r8
b974: 1a18 subs r0, r3, r0
b976: 9a02 ldr r2, [sp, #8]
b978: a906 add r1, sp, #24
b97a: 4b3d ldr r3, [pc, #244] ; (ba70 <lv_draw_mask_radius+0x640>)
b97c: 4798 blx r3
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
b97e: 465b mov r3, fp
b980: 3b01 subs r3, #1
b982: 0018 movs r0, r3
b984: 9303 str r3, [sp, #12]
b986: 4358 muls r0, r3
b988: 4642 mov r2, r8
b98a: 1a10 subs r0, r2, r0
b98c: 9a02 ldr r2, [sp, #8]
b98e: a907 add r1, sp, #28
b990: 4b37 ldr r3, [pc, #220] ; (ba70 <lv_draw_mask_radius+0x640>)
b992: 4798 blx r3
p->y_prev = y - 1;
b994: 9b03 ldr r3, [sp, #12]
b996: 616b str r3, [r5, #20]
p->y_prev_x.f = x1.f;
b998: ab06 add r3, sp, #24
b99a: 88db ldrh r3, [r3, #6]
b99c: 836b strh r3, [r5, #26]
p->y_prev_x.i = x1.i;
b99e: ab06 add r3, sp, #24
b9a0: 889b ldrh r3, [r3, #4]
b9a2: 832b strh r3, [r5, #24]
if(x0.i == x1.i - 1 && x1.f == 0) {
b9a4: ab06 add r3, sp, #24
b9a6: 881b ldrh r3, [r3, #0]
b9a8: aa07 add r2, sp, #28
b9aa: 8812 ldrh r2, [r2, #0]
b9ac: 1e51 subs r1, r2, #1
b9ae: 428b cmp r3, r1
b9b0: d100 bne.n b9b4 <lv_draw_mask_radius+0x584>
b9b2: e604 b.n b5be <lv_draw_mask_radius+0x18e>
int32_t k = rect.x1 - abs_x; /*First relevant coordinate on the of the mask*/
b9b4: 4652 mov r2, sl
b9b6: 4649 mov r1, r9
b9b8: 1a50 subs r0, r2, r1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b9ba: 3701 adds r7, #1
b9bc: 1aba subs r2, r7, r2
int32_t w = lv_area_get_width(&rect);
b9be: b212 sxth r2, r2
if(x0.i == x1.i) {
b9c0: a907 add r1, sp, #28
b9c2: 8809 ldrh r1, [r1, #0]
b9c4: 4299 cmp r1, r3
b9c6: d100 bne.n b9ca <lv_draw_mask_radius+0x59a>
b9c8: e604 b.n b5d4 <lv_draw_mask_radius+0x1a4>
int32_t ofs = radius - (x0.i + 1);
b9ca: 3301 adds r3, #1
b9cc: 1af6 subs r6, r6, r3
int32_t kl = k + ofs;
b9ce: 1983 adds r3, r0, r6
b9d0: 0019 movs r1, r3
b9d2: 9303 str r3, [sp, #12]
int32_t kr = k + (w - ofs - 1);
b9d4: 1b96 subs r6, r2, r6
b9d6: 3e01 subs r6, #1
b9d8: 1833 adds r3, r6, r0
b9da: 001d movs r5, r3
b9dc: 9304 str r3, [sp, #16]
if(outer) {
b9de: 2c00 cmp r4, #0
b9e0: d012 beq.n ba08 <lv_draw_mask_radius+0x5d8>
int32_t first = kl + 1;
b9e2: 1c48 adds r0, r1, #1
b9e4: 43c3 mvns r3, r0
b9e6: 17db asrs r3, r3, #31
b9e8: 4018 ands r0, r3
if(len_tmp + first > len) len_tmp = len - first;
b9ea: 9e00 ldr r6, [sp, #0]
b9ec: 0033 movs r3, r6
b9ee: 1a31 subs r1, r6, r0
b9f0: 42b5 cmp r5, r6
b9f2: dc00 bgt.n b9f6 <lv_draw_mask_radius+0x5c6>
int32_t len_tmp = kr - first;
b9f4: 1a29 subs r1, r5, r0
if(first < len && len_tmp >= 0) {
b9f6: 4298 cmp r0, r3
b9f8: da06 bge.n ba08 <lv_draw_mask_radius+0x5d8>
b9fa: 2900 cmp r1, #0
b9fc: db04 blt.n ba08 <lv_draw_mask_radius+0x5d8>
_lv_memset_00(&mask_buf[first], len_tmp);
b9fe: 9b01 ldr r3, [sp, #4]
ba00: 469c mov ip, r3
ba02: 4460 add r0, ip
ba04: 4b19 ldr r3, [pc, #100] ; (ba6c <lv_draw_mask_radius+0x63c>)
ba06: 4798 blx r3
uint32_t i = x0.i + 1;
ba08: ab06 add r3, sp, #24
ba0a: 8818 ldrh r0, [r3, #0]
ba0c: 1c43 adds r3, r0, #1
ba0e: 9305 str r3, [sp, #20]
_lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask);
ba10: ad08 add r5, sp, #32
ba12: 4340 muls r0, r0
ba14: 4643 mov r3, r8
ba16: 1a18 subs r0, r3, r0
ba18: 9a02 ldr r2, [sp, #8]
ba1a: 0029 movs r1, r5
ba1c: 4b14 ldr r3, [pc, #80] ; (ba70 <lv_draw_mask_radius+0x640>)
ba1e: 4798 blx r3
if(y_prev.f == 0) {
ba20: 886b ldrh r3, [r5, #2]
ba22: 2b00 cmp r3, #0
ba24: d105 bne.n ba32 <lv_draw_mask_radius+0x602>
y_prev.i--;
ba26: ab08 add r3, sp, #32
ba28: 881a ldrh r2, [r3, #0]
ba2a: 3a01 subs r2, #1
ba2c: 801a strh r2, [r3, #0]
y_prev.f = 0xFF;
ba2e: 22ff movs r2, #255 ; 0xff
ba30: 805a strh r2, [r3, #2]
if(y_prev.i >= y) {
ba32: ab08 add r3, sp, #32
ba34: 881b ldrh r3, [r3, #0]
ba36: 459b cmp fp, r3
ba38: dc00 bgt.n ba3c <lv_draw_mask_radius+0x60c>
ba3a: e636 b.n b6aa <lv_draw_mask_radius+0x27a>
for(; i <= x1.i; i++) {
ba3c: ab07 add r3, sp, #28
ba3e: 881b ldrh r3, [r3, #0]
ba40: 469b mov fp, r3
ba42: 9f05 ldr r7, [sp, #20]
ba44: 455f cmp r7, fp
ba46: d900 bls.n ba4a <lv_draw_mask_radius+0x61a>
ba48: e6f5 b.n b836 <lv_draw_mask_radius+0x406>
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
ba4a: ab08 add r3, sp, #32
ba4c: 881a ldrh r2, [r3, #0]
ba4e: 0112 lsls r2, r2, #4
ba50: 9202 str r2, [sp, #8]
ba52: 885e ldrh r6, [r3, #2]
ba54: 9b04 ldr r3, [sp, #16]
ba56: 469a mov sl, r3
ba58: 9b03 ldr r3, [sp, #12]
if(mask_new <= LV_OPA_MIN) return 0;
ba5a: 46a1 mov r9, r4
ba5c: 001c movs r4, r3
ba5e: e68c b.n b77a <lv_draw_mask_radius+0x34a>
if(radius <= 256) sqrt_mask = 0x800;
ba60: 2380 movs r3, #128 ; 0x80
ba62: 021b lsls r3, r3, #8
ba64: 9302 str r3, [sp, #8]
ba66: e77c b.n b962 <lv_draw_mask_radius+0x532>
ba68: 0001c1b9 .word 0x0001c1b9
ba6c: 00012975 .word 0x00012975
ba70: 00012215 .word 0x00012215
0000ba74 <lv_draw_mask_add>:
{
ba74: b510 push {r4, lr}
ba76: b082 sub sp, #8
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
ba78: 4b10 ldr r3, [pc, #64] ; (babc <lv_draw_mask_add+0x48>)
ba7a: 681b ldr r3, [r3, #0]
ba7c: 2b00 cmp r3, #0
ba7e: d014 beq.n baaa <lv_draw_mask_add+0x36>
ba80: 4a0e ldr r2, [pc, #56] ; (babc <lv_draw_mask_add+0x48>)
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
ba82: 2301 movs r3, #1
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
ba84: 6894 ldr r4, [r2, #8]
ba86: 2c00 cmp r4, #0
ba88: d010 beq.n baac <lv_draw_mask_add+0x38>
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
ba8a: 3301 adds r3, #1
ba8c: b2db uxtb r3, r3
ba8e: 3208 adds r2, #8
ba90: 2b10 cmp r3, #16
ba92: d1f7 bne.n ba84 <lv_draw_mask_add+0x10>
LV_LOG_WARN("lv_mask_add: no place to add the mask");
ba94: 4b0a ldr r3, [pc, #40] ; (bac0 <lv_draw_mask_add+0x4c>)
ba96: 9300 str r3, [sp, #0]
ba98: 4b0a ldr r3, [pc, #40] ; (bac4 <lv_draw_mask_add+0x50>)
ba9a: 2257 movs r2, #87 ; 0x57
ba9c: 490a ldr r1, [pc, #40] ; (bac8 <lv_draw_mask_add+0x54>)
ba9e: 2002 movs r0, #2
baa0: 4c0a ldr r4, [pc, #40] ; (bacc <lv_draw_mask_add+0x58>)
baa2: 47a0 blx r4
return LV_MASK_ID_INV;
baa4: 2001 movs r0, #1
baa6: 4240 negs r0, r0
baa8: e006 b.n bab8 <lv_draw_mask_add+0x44>
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
baaa: 2300 movs r3, #0
LV_GC_ROOT(_lv_draw_mask_list[i]).param = param;
baac: 4a03 ldr r2, [pc, #12] ; (babc <lv_draw_mask_add+0x48>)
baae: 00dc lsls r4, r3, #3
bab0: 50a0 str r0, [r4, r2]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id;
bab2: 1912 adds r2, r2, r4
bab4: 6051 str r1, [r2, #4]
return i;
bab6: b218 sxth r0, r3
}
bab8: b002 add sp, #8
baba: bd10 pop {r4, pc}
babc: 20004df4 .word 0x20004df4
bac0: 00026420 .word 0x00026420
bac4: 000263d4 .word 0x000263d4
bac8: 000263e8 .word 0x000263e8
bacc: 00012159 .word 0x00012159
0000bad0 <lv_draw_mask_apply>:
{
bad0: b5f0 push {r4, r5, r6, r7, lr}
bad2: b087 sub sp, #28
bad4: 9003 str r0, [sp, #12]
bad6: 9104 str r1, [sp, #16]
bad8: 0016 movs r6, r2
bada: 001f movs r7, r3
while(m->param) {
badc: 4b10 ldr r3, [pc, #64] ; (bb20 <lv_draw_mask_apply+0x50>)
bade: 681b ldr r3, [r3, #0]
bae0: 2b00 cmp r3, #0
bae2: d01b beq.n bb1c <lv_draw_mask_apply+0x4c>
bae4: 4c0e ldr r4, [pc, #56] ; (bb20 <lv_draw_mask_apply+0x50>)
bae6: 2200 movs r2, #0
bae8: 9205 str r2, [sp, #20]
baea: e003 b.n baf4 <lv_draw_mask_apply+0x24>
m++;
baec: 3408 adds r4, #8
while(m->param) {
baee: 6823 ldr r3, [r4, #0]
baf0: 2b00 cmp r3, #0
baf2: d00d beq.n bb10 <lv_draw_mask_apply+0x40>
res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param);
baf4: 9300 str r3, [sp, #0]
baf6: 681d ldr r5, [r3, #0]
baf8: 003b movs r3, r7
bafa: 0032 movs r2, r6
bafc: 9904 ldr r1, [sp, #16]
bafe: 9803 ldr r0, [sp, #12]
bb00: 47a8 blx r5
if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP;
bb02: 2800 cmp r0, #0
bb04: d008 beq.n bb18 <lv_draw_mask_apply+0x48>
else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true;
bb06: 2802 cmp r0, #2
bb08: d1f0 bne.n baec <lv_draw_mask_apply+0x1c>
bb0a: 2301 movs r3, #1
bb0c: 9305 str r3, [sp, #20]
bb0e: e7ed b.n baec <lv_draw_mask_apply+0x1c>
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
bb10: 9805 ldr r0, [sp, #20]
bb12: 1e43 subs r3, r0, #1
bb14: 4198 sbcs r0, r3
bb16: 3001 adds r0, #1
}
bb18: b007 add sp, #28
bb1a: bdf0 pop {r4, r5, r6, r7, pc}
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
bb1c: 2001 movs r0, #1
bb1e: e7fb b.n bb18 <lv_draw_mask_apply+0x48>
bb20: 20004df4 .word 0x20004df4
0000bb24 <lv_draw_mask_remove_id>:
if(id != LV_MASK_ID_INV) {
bb24: 1c43 adds r3, r0, #1
bb26: d007 beq.n bb38 <lv_draw_mask_remove_id+0x14>
p = LV_GC_ROOT(_lv_draw_mask_list[id]).param;
bb28: 4a04 ldr r2, [pc, #16] ; (bb3c <lv_draw_mask_remove_id+0x18>)
bb2a: 00c3 lsls r3, r0, #3
bb2c: 5898 ldr r0, [r3, r2]
LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL;
bb2e: 2100 movs r1, #0
bb30: 5099 str r1, [r3, r2]
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
bb32: 18d3 adds r3, r2, r3
bb34: 6059 str r1, [r3, #4]
}
bb36: 4770 bx lr
void * p = NULL;
bb38: 2000 movs r0, #0
return p;
bb3a: e7fc b.n bb36 <lv_draw_mask_remove_id+0x12>
bb3c: 20004df4 .word 0x20004df4
0000bb40 <lv_draw_mask_remove_custom>:
{
bb40: b530 push {r4, r5, lr}
bb42: 0001 movs r1, r0
bb44: 4b08 ldr r3, [pc, #32] ; (bb68 <lv_draw_mask_remove_custom+0x28>)
bb46: 001a movs r2, r3
bb48: 3280 adds r2, #128 ; 0x80
void * p = NULL;
bb4a: 2000 movs r0, #0
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
bb4c: 2400 movs r4, #0
bb4e: e002 b.n bb56 <lv_draw_mask_remove_custom+0x16>
bb50: 3308 adds r3, #8
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
bb52: 4293 cmp r3, r2
bb54: d006 beq.n bb64 <lv_draw_mask_remove_custom+0x24>
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
bb56: 685d ldr r5, [r3, #4]
bb58: 428d cmp r5, r1
bb5a: d1f9 bne.n bb50 <lv_draw_mask_remove_custom+0x10>
p = LV_GC_ROOT(_lv_draw_mask_list[i]).param;
bb5c: 6818 ldr r0, [r3, #0]
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
bb5e: 601c str r4, [r3, #0]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL;
bb60: 605c str r4, [r3, #4]
bb62: e7f5 b.n bb50 <lv_draw_mask_remove_custom+0x10>
}
bb64: bd30 pop {r4, r5, pc}
bb66: 46c0 nop ; (mov r8, r8)
bb68: 20004df4 .word 0x20004df4
0000bb6c <lv_draw_mask_get_cnt>:
{
bb6c: 4b07 ldr r3, [pc, #28] ; (bb8c <lv_draw_mask_get_cnt+0x20>)
bb6e: 001a movs r2, r3
bb70: 3280 adds r2, #128 ; 0x80
uint8_t cnt = 0;
bb72: 2000 movs r0, #0
bb74: e002 b.n bb7c <lv_draw_mask_get_cnt+0x10>
bb76: 3308 adds r3, #8
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
bb78: 4293 cmp r3, r2
bb7a: d005 beq.n bb88 <lv_draw_mask_get_cnt+0x1c>
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
bb7c: 6819 ldr r1, [r3, #0]
bb7e: 2900 cmp r1, #0
bb80: d0f9 beq.n bb76 <lv_draw_mask_get_cnt+0xa>
bb82: 3001 adds r0, #1
bb84: b2c0 uxtb r0, r0
bb86: e7f6 b.n bb76 <lv_draw_mask_get_cnt+0xa>
}
bb88: 4770 bx lr
bb8a: 46c0 nop ; (mov r8, r8)
bb8c: 20004df4 .word 0x20004df4
0000bb90 <lv_draw_mask_line_points_init>:
{
bb90: b5f8 push {r3, r4, r5, r6, r7, lr}
bb92: 46ce mov lr, r9
bb94: 4647 mov r7, r8
bb96: b580 push {r7, lr}
bb98: 0004 movs r4, r0
bb9a: 000f movs r7, r1
bb9c: 0015 movs r5, r2
bb9e: 4698 mov r8, r3
bba0: ab08 add r3, sp, #32
bba2: 2600 movs r6, #0
bba4: 5f9e ldrsh r6, [r3, r6]
bba6: ab09 add r3, sp, #36 ; 0x24
bba8: 781b ldrb r3, [r3, #0]
bbaa: 4699 mov r9, r3
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
bbac: 212c movs r1, #44 ; 0x2c
bbae: 4b51 ldr r3, [pc, #324] ; (bcf4 <lv_draw_mask_line_points_init+0x164>)
bbb0: 4798 blx r3
if(p1y > p2y) {
bbb2: 42b5 cmp r5, r6
bbb4: dd05 ble.n bbc2 <lv_draw_mask_line_points_init+0x32>
bbb6: 002b movs r3, r5
p1y = t;
bbb8: 0035 movs r5, r6
p2y = p1y;
bbba: 001e movs r6, r3
if(p1y > p2y) {
bbbc: 003b movs r3, r7
p1x = t;
bbbe: 4647 mov r7, r8
p2x = p1x;
bbc0: 4698 mov r8, r3
param->cfg.p1.x = p1x;
bbc2: 8127 strh r7, [r4, #8]
param->cfg.p1.y = p1y;
bbc4: 8165 strh r5, [r4, #10]
param->cfg.p2.x = p2x;
bbc6: 4643 mov r3, r8
bbc8: 81a3 strh r3, [r4, #12]
param->cfg.p2.y = p2y;
bbca: 81e6 strh r6, [r4, #14]
param->cfg.side = side;
bbcc: 2303 movs r3, #3
bbce: 464a mov r2, r9
bbd0: 4013 ands r3, r2
bbd2: 7c22 ldrb r2, [r4, #16]
bbd4: 2103 movs r1, #3
bbd6: 438a bics r2, r1
bbd8: 431a orrs r2, r3
bbda: 7422 strb r2, [r4, #16]
param->origo.x = p1x;
bbdc: 8267 strh r7, [r4, #18]
param->origo.y = p1y;
bbde: 82a5 strh r5, [r4, #20]
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
bbe0: 4643 mov r3, r8
bbe2: 1bdf subs r7, r3, r7
bbe4: 1b76 subs r6, r6, r5
bbe6: 17fb asrs r3, r7, #31
bbe8: 18fa adds r2, r7, r3
bbea: 405a eors r2, r3
bbec: 17f1 asrs r1, r6, #31
bbee: 1873 adds r3, r6, r1
bbf0: 404b eors r3, r1
bbf2: 2501 movs r5, #1
bbf4: 429a cmp r2, r3
bbf6: dc00 bgt.n bbfa <lv_draw_mask_line_points_init+0x6a>
bbf8: 2500 movs r5, #0
bbfa: 2128 movs r1, #40 ; 0x28
bbfc: 2201 movs r2, #1
bbfe: 002b movs r3, r5
bc00: 4013 ands r3, r2
bc02: 5c65 ldrb r5, [r4, r1]
bc04: 2001 movs r0, #1
bc06: 4385 bics r5, r0
bc08: 431d orrs r5, r3
bc0a: 5465 strb r5, [r4, r1]
param->yx_steep = 0;
bc0c: 2300 movs r3, #0
bc0e: 61e3 str r3, [r4, #28]
param->xy_steep = 0;
bc10: 61a3 str r3, [r4, #24]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
bc12: 4939 ldr r1, [pc, #228] ; (bcf8 <lv_draw_mask_line_points_init+0x168>)
bc14: 6021 str r1, [r4, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_LINE;
bc16: 7123 strb r3, [r4, #4]
if(param->flat) {
bc18: 422a tst r2, r5
bc1a: d027 beq.n bc6c <lv_draw_mask_line_points_init+0xdc>
if(dx) {
bc1c: 2f00 cmp r7, #0
bc1e: d007 beq.n bc30 <lv_draw_mask_line_points_init+0xa0>
m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/
bc20: 0039 movs r1, r7
bc22: 2080 movs r0, #128 ; 0x80
bc24: 0340 lsls r0, r0, #13
bc26: 4b35 ldr r3, [pc, #212] ; (bcfc <lv_draw_mask_line_points_init+0x16c>)
bc28: 4798 blx r3
param->yx_steep = (m * dy) >> 10;
bc2a: 4370 muls r0, r6
bc2c: 1280 asrs r0, r0, #10
bc2e: 61e0 str r0, [r4, #28]
if(dy) {
bc30: 2e00 cmp r6, #0
bc32: d007 beq.n bc44 <lv_draw_mask_line_points_init+0xb4>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
bc34: 0031 movs r1, r6
bc36: 2080 movs r0, #128 ; 0x80
bc38: 0340 lsls r0, r0, #13
bc3a: 4b30 ldr r3, [pc, #192] ; (bcfc <lv_draw_mask_line_points_init+0x16c>)
bc3c: 4798 blx r3
param->xy_steep = (m * dx) >> 10;
bc3e: 4347 muls r7, r0
bc40: 12bf asrs r7, r7, #10
bc42: 61a7 str r7, [r4, #24]
param->steep = param->yx_steep;
bc44: 69e3 ldr r3, [r4, #28]
bc46: 6223 str r3, [r4, #32]
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
bc48: 7c22 ldrb r2, [r4, #16]
bc4a: 2303 movs r3, #3
bc4c: 4013 ands r3, r2
bc4e: d124 bne.n bc9a <lv_draw_mask_line_points_init+0x10a>
bc50: 2228 movs r2, #40 ; 0x28
bc52: 5ca3 ldrb r3, [r4, r2]
bc54: 2102 movs r1, #2
bc56: 438b bics r3, r1
bc58: 54a3 strb r3, [r4, r2]
param->spx = param->steep >> 2;
bc5a: 6a23 ldr r3, [r4, #32]
bc5c: 109a asrs r2, r3, #2
if(param->steep < 0) param->spx = -param->spx;
bc5e: 2b00 cmp r3, #0
bc60: db45 blt.n bcee <lv_draw_mask_line_points_init+0x15e>
param->spx = param->steep >> 2;
bc62: 6262 str r2, [r4, #36] ; 0x24
}
bc64: bc0c pop {r2, r3}
bc66: 4690 mov r8, r2
bc68: 4699 mov r9, r3
bc6a: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(dy) {
bc6c: 2e00 cmp r6, #0
bc6e: d007 beq.n bc80 <lv_draw_mask_line_points_init+0xf0>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
bc70: 0031 movs r1, r6
bc72: 2080 movs r0, #128 ; 0x80
bc74: 0340 lsls r0, r0, #13
bc76: 4b21 ldr r3, [pc, #132] ; (bcfc <lv_draw_mask_line_points_init+0x16c>)
bc78: 4798 blx r3
param->xy_steep = (m * dx) >> 10;
bc7a: 4378 muls r0, r7
bc7c: 1280 asrs r0, r0, #10
bc7e: 61a0 str r0, [r4, #24]
if(dx) {
bc80: 2f00 cmp r7, #0
bc82: d007 beq.n bc94 <lv_draw_mask_line_points_init+0x104>
m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/
bc84: 0039 movs r1, r7
bc86: 2080 movs r0, #128 ; 0x80
bc88: 0340 lsls r0, r0, #13
bc8a: 4b1c ldr r3, [pc, #112] ; (bcfc <lv_draw_mask_line_points_init+0x16c>)
bc8c: 4798 blx r3
param->yx_steep = (m * dy) >> 10;
bc8e: 4370 muls r0, r6
bc90: 1280 asrs r0, r0, #10
bc92: 61e0 str r0, [r4, #28]
param->steep = param->xy_steep;
bc94: 69a3 ldr r3, [r4, #24]
bc96: 6223 str r3, [r4, #32]
bc98: e7d6 b.n bc48 <lv_draw_mask_line_points_init+0xb8>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
bc9a: 2b01 cmp r3, #1
bc9c: d00c beq.n bcb8 <lv_draw_mask_line_points_init+0x128>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) {
bc9e: 2b02 cmp r3, #2
bca0: d010 beq.n bcc4 <lv_draw_mask_line_points_init+0x134>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) {
bca2: 2b03 cmp r3, #3
bca4: d1d9 bne.n bc5a <lv_draw_mask_line_points_init+0xca>
if(param->steep > 0) param->inv = 0;
bca6: 6a23 ldr r3, [r4, #32]
bca8: 2b00 cmp r3, #0
bcaa: dd1a ble.n bce2 <lv_draw_mask_line_points_init+0x152>
bcac: 2228 movs r2, #40 ; 0x28
bcae: 5ca3 ldrb r3, [r4, r2]
bcb0: 2102 movs r1, #2
bcb2: 438b bics r3, r1
bcb4: 54a3 strb r3, [r4, r2]
bcb6: e7d0 b.n bc5a <lv_draw_mask_line_points_init+0xca>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
bcb8: 2228 movs r2, #40 ; 0x28
bcba: 5ca3 ldrb r3, [r4, r2]
bcbc: 2102 movs r1, #2
bcbe: 430b orrs r3, r1
bcc0: 54a3 strb r3, [r4, r2]
bcc2: e7ca b.n bc5a <lv_draw_mask_line_points_init+0xca>
if(param->steep > 0) param->inv = 1;
bcc4: 6a23 ldr r3, [r4, #32]
bcc6: 2b00 cmp r3, #0
bcc8: dd05 ble.n bcd6 <lv_draw_mask_line_points_init+0x146>
bcca: 2228 movs r2, #40 ; 0x28
bccc: 5ca3 ldrb r3, [r4, r2]
bcce: 2102 movs r1, #2
bcd0: 430b orrs r3, r1
bcd2: 54a3 strb r3, [r4, r2]
bcd4: e7c1 b.n bc5a <lv_draw_mask_line_points_init+0xca>
else param->inv = 0;
bcd6: 2228 movs r2, #40 ; 0x28
bcd8: 5ca3 ldrb r3, [r4, r2]
bcda: 2102 movs r1, #2
bcdc: 438b bics r3, r1
bcde: 54a3 strb r3, [r4, r2]
bce0: e7bb b.n bc5a <lv_draw_mask_line_points_init+0xca>
else param->inv = 1;
bce2: 2228 movs r2, #40 ; 0x28
bce4: 5ca3 ldrb r3, [r4, r2]
bce6: 2102 movs r1, #2
bce8: 430b orrs r3, r1
bcea: 54a3 strb r3, [r4, r2]
bcec: e7b5 b.n bc5a <lv_draw_mask_line_points_init+0xca>
if(param->steep < 0) param->spx = -param->spx;
bcee: 4252 negs r2, r2
bcf0: 6262 str r2, [r4, #36] ; 0x24
}
bcf2: e7b7 b.n bc64 <lv_draw_mask_line_points_init+0xd4>
bcf4: 00012975 .word 0x00012975
bcf8: 0000af15 .word 0x0000af15
bcfc: 0001c1b9 .word 0x0001c1b9
0000bd00 <lv_draw_mask_radius_init>:
{
bd00: b5f0 push {r4, r5, r6, r7, lr}
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
bd02: 88cc ldrh r4, [r1, #6]
bd04: 3401 adds r4, #1
bd06: 884d ldrh r5, [r1, #2]
bd08: 1b64 subs r4, r4, r5
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
bd0a: 888e ldrh r6, [r1, #4]
bd0c: 3601 adds r6, #1
bd0e: 880d ldrh r5, [r1, #0]
bd10: 1b76 subs r6, r6, r5
int32_t short_side = LV_MATH_MIN(w, h);
bd12: 1c25 adds r5, r4, #0
bd14: b224 sxth r4, r4
bd16: b237 sxth r7, r6
bd18: 42bc cmp r4, r7
bd1a: dd00 ble.n bd1e <lv_draw_mask_radius_init+0x1e>
bd1c: 1c35 adds r5, r6, #0
bd1e: b22d sxth r5, r5
if(radius > short_side >> 1) radius = short_side >> 1;
bd20: 106d asrs r5, r5, #1
bd22: 42aa cmp r2, r5
bd24: dd00 ble.n bd28 <lv_draw_mask_radius_init+0x28>
bd26: b22a sxth r2, r5
bd28: 000e movs r6, r1
bd2a: 3608 adds r6, #8
uint8_t * d8 = (uint8_t *)dst;
bd2c: 0004 movs r4, r0
bd2e: 3408 adds r4, #8
*d8 = *s8;
bd30: 780d ldrb r5, [r1, #0]
bd32: 7025 strb r5, [r4, #0]
d8++;
bd34: 3401 adds r4, #1
s8++;
bd36: 3101 adds r1, #1
while(len) {
bd38: 428e cmp r6, r1
bd3a: d1f9 bne.n bd30 <lv_draw_mask_radius_init+0x30>
param->cfg.radius = radius;
bd3c: 8202 strh r2, [r0, #16]
param->cfg.outer = inv ? 1 : 0;
bd3e: 2201 movs r2, #1
bd40: 401a ands r2, r3
bd42: 7c83 ldrb r3, [r0, #18]
bd44: 2101 movs r1, #1
bd46: 438b bics r3, r1
bd48: 4313 orrs r3, r2
bd4a: 7483 strb r3, [r0, #18]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius;
bd4c: 4b05 ldr r3, [pc, #20] ; (bd64 <lv_draw_mask_radius_init+0x64>)
bd4e: 6003 str r3, [r0, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS;
bd50: 2302 movs r3, #2
bd52: 7103 strb r3, [r0, #4]
param->y_prev = INT32_MIN;
bd54: 2380 movs r3, #128 ; 0x80
bd56: 061b lsls r3, r3, #24
bd58: 6143 str r3, [r0, #20]
param->y_prev_x.f = 0;
bd5a: 2300 movs r3, #0
bd5c: 8343 strh r3, [r0, #26]
param->y_prev_x.i = 0;
bd5e: 8303 strh r3, [r0, #24]
}
bd60: bdf0 pop {r4, r5, r6, r7, pc}
bd62: 46c0 nop ; (mov r8, r8)
bd64: 0000b431 .word 0x0000b431
0000bd68 <shadow_blur_corner>:
#endif
}
LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf)
{
bd68: b5f0 push {r4, r5, r6, r7, lr}
bd6a: 46de mov lr, fp
bd6c: 4657 mov r7, sl
bd6e: 464e mov r6, r9
bd70: 4645 mov r5, r8
bd72: b5e0 push {r5, r6, r7, lr}
bd74: b091 sub sp, #68 ; 0x44
bd76: 900d str r0, [sp, #52] ; 0x34
bd78: 9102 str r1, [sp, #8]
bd7a: 920c str r2, [sp, #48] ; 0x30
int32_t s_left = sw >> 1;
bd7c: 104b asrs r3, r1, #1
bd7e: 001e movs r6, r3
bd80: 930f str r3, [sp, #60] ; 0x3c
int32_t s_right = (sw >> 1);
if((sw & 1) == 0) s_left--;
bd82: 2301 movs r3, #1
bd84: 400b ands r3, r1
bd86: 425a negs r2, r3
bd88: 4153 adcs r3, r2
bd8a: 1af3 subs r3, r6, r3
bd8c: 001d movs r5, r3
bd8e: 930e str r3, [sp, #56] ; 0x38
/*Horizontal blur*/
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
bd90: 0004 movs r4, r0
bd92: 0047 lsls r7, r0, #1
bd94: 0038 movs r0, r7
bd96: 4b88 ldr r3, [pc, #544] ; (bfb8 <shadow_blur_corner+0x250>)
bd98: 4798 blx r3
bd9a: 9005 str r0, [sp, #20]
int32_t x;
int32_t y;
uint16_t * sh_ups_tmp_buf = sh_ups_buf;
for(y = 0; y < size; y++) {
bd9c: 1e23 subs r3, r4, #0
bd9e: dc00 bgt.n bda2 <shadow_blur_corner+0x3a>
bda0: e0db b.n bf5a <shadow_blur_corner+0x1f2>
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
bda2: 1eb9 subs r1, r7, #2
bda4: 9103 str r1, [sp, #12]
bda6: 3b01 subs r3, #1
bda8: 9306 str r3, [sp, #24]
bdaa: 468c mov ip, r1
bdac: 4460 add r0, ip
bdae: 9007 str r0, [sp, #28]
bdb0: 0019 movs r1, r3
bdb2: 1b49 subs r1, r1, r5
bdb4: 9108 str r1, [sp, #32]
bdb6: 0029 movs r1, r5
bdb8: 0028 movs r0, r5
bdba: 950a str r5, [sp, #40] ; 0x28
bdbc: 4b7f ldr r3, [pc, #508] ; (bfbc <shadow_blur_corner+0x254>)
bdbe: 46a4 mov ip, r4
bdc0: 4463 add r3, ip
bdc2: 1a5b subs r3, r3, r1
bdc4: 005d lsls r5, r3, #1
bdc6: 950b str r5, [sp, #44] ; 0x2c
bdc8: 0049 lsls r1, r1, #1
bdca: 000a movs r2, r1
bdcc: 9609 str r6, [sp, #36] ; 0x24
bdce: 0071 lsls r1, r6, #1
bdd0: 4688 mov r8, r1
bdd2: 9b0c ldr r3, [sp, #48] ; 0x30
bdd4: 4699 mov r9, r3
bdd6: 2300 movs r3, #0
bdd8: 9300 str r3, [sp, #0]
bdda: 2502 movs r5, #2
bddc: 426d negs r5, r5
bdde: 1a2b subs r3, r5, r0
uint32_t left_val;
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
else left_val = sh_ups_tmp_buf[x - s_left - 1];
v += left_val;
}
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
bde0: 9701 str r7, [sp, #4]
bde2: 469b mov fp, r3
bde4: 46ca mov sl, r9
bde6: 4691 mov r9, r2
bde8: e024 b.n be34 <shadow_blur_corner+0xcc>
v -= right_val;
bdea: 1a9b subs r3, r3, r2
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
bdec: 2e00 cmp r6, #0
bdee: db10 blt.n be12 <shadow_blur_corner+0xaa>
else left_val = sh_ups_tmp_buf[x - s_left - 1];
bdf0: 882a ldrh r2, [r5, #0]
v += left_val;
bdf2: 18d3 adds r3, r2, r3
bdf4: 3f02 subs r7, #2
bdf6: 3d02 subs r5, #2
bdf8: 3e01 subs r6, #1
for(x = size - 1; x >= 0; x--) {
bdfa: 455e cmp r6, fp
bdfc: d00c beq.n be18 <shadow_blur_corner+0xb0>
sh_ups_blur_buf[x] = v;
bdfe: 803b strh r3, [r7, #0]
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
be00: 1981 adds r1, r0, r6
be02: 2200 movs r2, #0
be04: 428c cmp r4, r1
be06: ddf0 ble.n bdea <shadow_blur_corner+0x82>
be08: 464a mov r2, r9
be0a: 18aa adds r2, r5, r2
be0c: 4442 add r2, r8
be0e: 8852 ldrh r2, [r2, #2]
be10: e7eb b.n bdea <shadow_blur_corner+0x82>
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
be12: 4652 mov r2, sl
be14: 8812 ldrh r2, [r2, #0]
be16: e7ec b.n bdf2 <shadow_blur_corner+0x8a>
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
be18: 9d01 ldr r5, [sp, #4]
be1a: 002a movs r2, r5
be1c: 9905 ldr r1, [sp, #20]
be1e: 4650 mov r0, sl
be20: 4b67 ldr r3, [pc, #412] ; (bfc0 <shadow_blur_corner+0x258>)
be22: 4798 blx r3
sh_ups_tmp_buf += size;
be24: 46ac mov ip, r5
be26: 44e2 add sl, ip
for(y = 0; y < size; y++) {
be28: 9b00 ldr r3, [sp, #0]
be2a: 3301 adds r3, #1
be2c: 9300 str r3, [sp, #0]
be2e: 42a3 cmp r3, r4
be30: db00 blt.n be34 <shadow_blur_corner+0xcc>
be32: e0aa b.n bf8a <shadow_blur_corner+0x222>
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
be34: 9a02 ldr r2, [sp, #8]
be36: 9204 str r2, [sp, #16]
be38: 4653 mov r3, sl
be3a: 9903 ldr r1, [sp, #12]
be3c: 5a5b ldrh r3, [r3, r1]
be3e: 4353 muls r3, r2
for(x = size - 1; x >= 0; x--) {
be40: 9a06 ldr r2, [sp, #24]
be42: 2a00 cmp r2, #0
be44: dbe8 blt.n be18 <shadow_blur_corner+0xb0>
be46: 9a0b ldr r2, [sp, #44] ; 0x2c
be48: 4452 add r2, sl
be4a: 0015 movs r5, r2
be4c: 9a08 ldr r2, [sp, #32]
be4e: 1e56 subs r6, r2, #1
be50: 9f07 ldr r7, [sp, #28]
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
be52: 9a09 ldr r2, [sp, #36] ; 0x24
be54: 1c50 adds r0, r2, #1
be56: 9a0a ldr r2, [sp, #40] ; 0x28
be58: 4694 mov ip, r2
be5a: 4460 add r0, ip
be5c: e7cf b.n bdfe <shadow_blur_corner+0x96>
}
/*Vertical blur*/
uint32_t i;
sh_ups_buf[0] = sh_ups_buf[0] / sw;
for(i = 1; i < (uint32_t)size * size; i++) {
be5e: 3601 adds r6, #1
be60: 3502 adds r5, #2
be62: 42a6 cmp r6, r4
be64: d207 bcs.n be76 <shadow_blur_corner+0x10e>
if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1];
be66: 8868 ldrh r0, [r5, #2]
be68: 882b ldrh r3, [r5, #0]
be6a: 4283 cmp r3, r0
be6c: d0f7 beq.n be5e <shadow_blur_corner+0xf6>
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
be6e: 9904 ldr r1, [sp, #16]
be70: 47c8 blx r9
be72: 8068 strh r0, [r5, #2]
be74: e7f3 b.n be5e <shadow_blur_corner+0xf6>
be76: 4644 mov r4, r8
}
for(x = 0; x < size; x++) {
be78: 2c00 cmp r4, #0
be7a: dc00 bgt.n be7e <shadow_blur_corner+0x116>
be7c: e07b b.n bf76 <shadow_blur_corner+0x20e>
be7e: 9b0c ldr r3, [sp, #48] ; 0x30
be80: 9303 str r3, [sp, #12]
be82: 980e ldr r0, [sp, #56] ; 0x38
be84: 1c42 adds r2, r0, #1
be86: 0013 movs r3, r2
be88: 437b muls r3, r7
be8a: 9308 str r3, [sp, #32]
be8c: 9d0f ldr r5, [sp, #60] ; 0x3c
be8e: 426b negs r3, r5
be90: 437b muls r3, r7
be92: 469b mov fp, r3
be94: 990d ldr r1, [sp, #52] ; 0x34
be96: 004b lsls r3, r1, #1
be98: 425b negs r3, r3
be9a: 435a muls r2, r3
be9c: 9200 str r2, [sp, #0]
v -= top_val;
/*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];
else bottom_val = sh_ups_buf[(size - 1) * size + x];
be9e: 000b movs r3, r1
bea0: 3b01 subs r3, #1
bea2: 434b muls r3, r1
bea4: 005b lsls r3, r3, #1
bea6: 9302 str r3, [sp, #8]
bea8: 2300 movs r3, #0
beaa: 9306 str r3, [sp, #24]
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
beac: 0003 movs r3, r0
beae: 2201 movs r2, #1
beb0: 4694 mov ip, r2
beb2: 4463 add r3, ip
beb4: 469a mov sl, r3
beb6: 46b8 mov r8, r7
beb8: 465b mov r3, fp
beba: 9301 str r3, [sp, #4]
bebc: 46ab mov fp, r5
bebe: e037 b.n bf30 <shadow_blur_corner+0x1c8>
bec0: 2100 movs r1, #0
bec2: e00f b.n bee4 <shadow_blur_corner+0x17c>
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
bec4: 4648 mov r0, r9
bec6: 8800 ldrh r0, [r0, #0]
bec8: e016 b.n bef8 <shadow_blur_corner+0x190>
else bottom_val = sh_ups_buf[(size - 1) * size + x];
beca: 4641 mov r1, r8
becc: 9802 ldr r0, [sp, #8]
bece: 5a09 ldrh r1, [r1, r0]
v += bottom_val;
bed0: 18cb adds r3, r1, r3
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
bed2: 3201 adds r2, #1
bed4: 44b9 add r9, r7
bed6: 19f6 adds r6, r6, r7
bed8: 3402 adds r4, #2
beda: 4562 cmp r2, ip
bedc: da12 bge.n bf04 <shadow_blur_corner+0x19c>
sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT);
bede: 2b00 cmp r3, #0
bee0: dbee blt.n bec0 <shadow_blur_corner+0x158>
bee2: 1199 asrs r1, r3, #6
bee4: 8021 strh r1, [r4, #0]
bee6: 0011 movs r1, r2
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
bee8: 4658 mov r0, fp
beea: 1a10 subs r0, r2, r0
beec: 2800 cmp r0, #0
beee: dde9 ble.n bec4 <shadow_blur_corner+0x15c>
else top_val = sh_ups_buf[(y - s_right) * size + x];
bef0: 9801 ldr r0, [sp, #4]
bef2: 1980 adds r0, r0, r6
bef4: 9d00 ldr r5, [sp, #0]
bef6: 5b40 ldrh r0, [r0, r5]
v -= top_val;
bef8: 1a1b subs r3, r3, r0
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
befa: 4451 add r1, sl
befc: 4561 cmp r1, ip
befe: dae4 bge.n beca <shadow_blur_corner+0x162>
bf00: 8831 ldrh r1, [r6, #0]
bf02: e7e5 b.n bed0 <shadow_blur_corner+0x168>
bf04: 4645 mov r5, r8
bf06: 46b8 mov r8, r7
bf08: 9f07 ldr r7, [sp, #28]
bf0a: 4664 mov r4, ip
bf0c: 2300 movs r3, #0
bf0e: 4641 mov r1, r8
}
/*Write back the result into `sh_ups_buf`*/
sh_ups_tmp_buf = &sh_ups_buf[x];
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
bf10: 883a ldrh r2, [r7, #0]
bf12: 802a strh r2, [r5, #0]
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
bf14: 3301 adds r3, #1
bf16: 186d adds r5, r5, r1
bf18: 3702 adds r7, #2
bf1a: 42a3 cmp r3, r4
bf1c: dbf8 blt.n bf10 <shadow_blur_corner+0x1a8>
bf1e: 4688 mov r8, r1
for(x = 0; x < size; x++) {
bf20: 9b06 ldr r3, [sp, #24]
bf22: 3301 adds r3, #1
bf24: 9306 str r3, [sp, #24]
bf26: 9a03 ldr r2, [sp, #12]
bf28: 3202 adds r2, #2
bf2a: 9203 str r2, [sp, #12]
bf2c: 42a3 cmp r3, r4
bf2e: da22 bge.n bf76 <shadow_blur_corner+0x20e>
sh_ups_tmp_buf = &sh_ups_buf[x];
bf30: 9a03 ldr r2, [sp, #12]
bf32: 0015 movs r5, r2
int32_t v = sh_ups_tmp_buf[0] * sw;
bf34: 8813 ldrh r3, [r2, #0]
bf36: 9904 ldr r1, [sp, #16]
bf38: 434b muls r3, r1
bf3a: 9908 ldr r1, [sp, #32]
bf3c: 000e movs r6, r1
bf3e: 4694 mov ip, r2
bf40: 4466 add r6, ip
bf42: 9a05 ldr r2, [sp, #20]
bf44: 0017 movs r7, r2
bf46: 4694 mov ip, r2
bf48: 46a9 mov r9, r5
bf4a: 2200 movs r2, #0
bf4c: 9707 str r7, [sp, #28]
bf4e: 4647 mov r7, r8
bf50: 0021 movs r1, r4
bf52: 4664 mov r4, ip
bf54: 468c mov ip, r1
bf56: 46a8 mov r8, r5
bf58: e7c1 b.n bede <shadow_blur_corner+0x176>
sh_ups_buf[0] = sh_ups_buf[0] / sw;
bf5a: 9b02 ldr r3, [sp, #8]
bf5c: 9304 str r3, [sp, #16]
bf5e: 9d0c ldr r5, [sp, #48] ; 0x30
bf60: 8828 ldrh r0, [r5, #0]
bf62: 0019 movs r1, r3
bf64: 4b17 ldr r3, [pc, #92] ; (bfc4 <shadow_blur_corner+0x25c>)
bf66: 4798 blx r3
bf68: 8028 strh r0, [r5, #0]
for(i = 1; i < (uint32_t)size * size; i++) {
bf6a: 9a0d ldr r2, [sp, #52] ; 0x34
bf6c: 0013 movs r3, r2
bf6e: 4353 muls r3, r2
bf70: 4698 mov r8, r3
bf72: 2b01 cmp r3, #1
bf74: d817 bhi.n bfa6 <shadow_blur_corner+0x23e>
}
}
_lv_mem_buf_release(sh_ups_blur_buf);
bf76: 9805 ldr r0, [sp, #20]
bf78: 4b13 ldr r3, [pc, #76] ; (bfc8 <shadow_blur_corner+0x260>)
bf7a: 4798 blx r3
}
bf7c: b011 add sp, #68 ; 0x44
bf7e: bc3c pop {r2, r3, r4, r5}
bf80: 4690 mov r8, r2
bf82: 4699 mov r9, r3
bf84: 46a2 mov sl, r4
bf86: 46ab mov fp, r5
bf88: bdf0 pop {r4, r5, r6, r7, pc}
bf8a: 9f01 ldr r7, [sp, #4]
sh_ups_buf[0] = sh_ups_buf[0] / sw;
bf8c: 9d0c ldr r5, [sp, #48] ; 0x30
bf8e: 8828 ldrh r0, [r5, #0]
bf90: 9904 ldr r1, [sp, #16]
bf92: 4b0c ldr r3, [pc, #48] ; (bfc4 <shadow_blur_corner+0x25c>)
bf94: 4798 blx r3
bf96: 8028 strh r0, [r5, #0]
for(i = 1; i < (uint32_t)size * size; i++) {
bf98: 9a0d ldr r2, [sp, #52] ; 0x34
bf9a: 0013 movs r3, r2
bf9c: 4353 muls r3, r2
bf9e: 4698 mov r8, r3
bfa0: 2b01 cmp r3, #1
bfa2: d800 bhi.n bfa6 <shadow_blur_corner+0x23e>
bfa4: e76b b.n be7e <shadow_blur_corner+0x116>
bfa6: 9d0c ldr r5, [sp, #48] ; 0x30
bfa8: 2601 movs r6, #1
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
bfaa: 4b06 ldr r3, [pc, #24] ; (bfc4 <shadow_blur_corner+0x25c>)
bfac: 4699 mov r9, r3
bfae: 4643 mov r3, r8
bfb0: 46a0 mov r8, r4
bfb2: 001c movs r4, r3
bfb4: e757 b.n be66 <shadow_blur_corner+0xfe>
bfb6: 46c0 nop ; (mov r8, r8)
bfb8: 000127a1 .word 0x000127a1
bfbc: 7ffffffe .word 0x7ffffffe
bfc0: 00012545 .word 0x00012545
bfc4: 0001c1b9 .word 0x0001c1b9
bfc8: 00012465 .word 0x00012465
0000bfcc <lv_draw_rect_dsc_init>:
{
bfcc: b510 push {r4, lr}
bfce: 0004 movs r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
bfd0: 2154 movs r1, #84 ; 0x54
bfd2: 4b23 ldr r3, [pc, #140] ; (c060 <lv_draw_rect_dsc_init+0x94>)
bfd4: 4798 blx r3
dsc->bg_color = LV_COLOR_WHITE;
bfd6: 4b23 ldr r3, [pc, #140] ; (c064 <lv_draw_rect_dsc_init+0x98>)
bfd8: 881b ldrh r3, [r3, #0]
bfda: 8063 strh r3, [r4, #2]
dsc->bg_grad_color = LV_COLOR_BLACK;
bfdc: 7923 ldrb r3, [r4, #4]
bfde: 221f movs r2, #31
bfe0: 4393 bics r3, r2
bfe2: 7123 strb r3, [r4, #4]
bfe4: 88a1 ldrh r1, [r4, #4]
bfe6: 4b20 ldr r3, [pc, #128] ; (c068 <lv_draw_rect_dsc_init+0x9c>)
bfe8: 4019 ands r1, r3
bfea: 80a1 strh r1, [r4, #4]
bfec: 2100 movs r1, #0
bfee: 7161 strb r1, [r4, #5]
dsc->border_color = LV_COLOR_BLACK;
bff0: 7ba1 ldrb r1, [r4, #14]
bff2: 4391 bics r1, r2
bff4: 73a1 strb r1, [r4, #14]
bff6: 89e1 ldrh r1, [r4, #14]
bff8: 4019 ands r1, r3
bffa: 81e1 strh r1, [r4, #14]
bffc: 2100 movs r1, #0
bffe: 73e1 strb r1, [r4, #15]
dsc->pattern_recolor = LV_COLOR_BLACK;
c000: 2034 movs r0, #52 ; 0x34
c002: 5c21 ldrb r1, [r4, r0]
c004: 4391 bics r1, r2
c006: 5421 strb r1, [r4, r0]
c008: 8ea1 ldrh r1, [r4, #52] ; 0x34
c00a: 4019 ands r1, r3
c00c: 86a1 strh r1, [r4, #52] ; 0x34
c00e: 0021 movs r1, r4
c010: 3134 adds r1, #52 ; 0x34
c012: 2000 movs r0, #0
c014: 7048 strb r0, [r1, #1]
dsc->value_color = LV_COLOR_BLACK;
c016: 2146 movs r1, #70 ; 0x46
c018: 5c60 ldrb r0, [r4, r1]
c01a: 4390 bics r0, r2
c01c: 5460 strb r0, [r4, r1]
c01e: 5a60 ldrh r0, [r4, r1]
c020: 4018 ands r0, r3
c022: 5260 strh r0, [r4, r1]
c024: 0021 movs r1, r4
c026: 3146 adds r1, #70 ; 0x46
c028: 2000 movs r0, #0
c02a: 7048 strb r0, [r1, #1]
dsc->shadow_color = LV_COLOR_BLACK;
c02c: 7fa1 ldrb r1, [r4, #30]
c02e: 4391 bics r1, r2
c030: 77a1 strb r1, [r4, #30]
c032: 8be2 ldrh r2, [r4, #30]
c034: 4013 ands r3, r2
c036: 83e3 strh r3, [r4, #30]
c038: 2300 movs r3, #0
c03a: 77e3 strb r3, [r4, #31]
dsc->bg_grad_color_stop = 0xFF;
c03c: 33ff adds r3, #255 ; 0xff
c03e: 8163 strh r3, [r4, #10]
dsc->bg_opa = LV_OPA_COVER;
c040: 7323 strb r3, [r4, #12]
dsc->outline_opa = LV_OPA_COVER;
c042: 7723 strb r3, [r4, #28]
dsc->border_opa = LV_OPA_COVER;
c044: 7523 strb r3, [r4, #20]
dsc->pattern_opa = LV_OPA_COVER;
c046: 2236 movs r2, #54 ; 0x36
c048: 54a3 strb r3, [r4, r2]
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
c04a: 4a08 ldr r2, [pc, #32] ; (c06c <lv_draw_rect_dsc_init+0xa0>)
c04c: 6322 str r2, [r4, #48] ; 0x30
dsc->value_opa = LV_OPA_COVER;
c04e: 2144 movs r1, #68 ; 0x44
c050: 5463 strb r3, [r4, r1]
dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL;
c052: 6422 str r2, [r4, #64] ; 0x40
dsc->shadow_opa = LV_OPA_COVER;
c054: 2228 movs r2, #40 ; 0x28
c056: 54a3 strb r3, [r4, r2]
dsc->border_side = LV_BORDER_SIDE_FULL;
c058: 3bf0 subs r3, #240 ; 0xf0
c05a: 8263 strh r3, [r4, #18]
}
c05c: bd10 pop {r4, pc}
c05e: 46c0 nop ; (mov r8, r8)
c060: 00012975 .word 0x00012975
c064: 00026448 .word 0x00026448
c068: fffff81f .word 0xfffff81f
c06c: 20000030 .word 0x20000030
0000c070 <lv_draw_rect>:
{
c070: b5f0 push {r4, r5, r6, r7, lr}
c072: 46de mov lr, fp
c074: 4657 mov r7, sl
c076: 464e mov r6, r9
c078: 4645 mov r5, r8
c07a: b5e0 push {r5, r6, r7, lr}
c07c: b0b1 sub sp, #196 ; 0xc4
c07e: 4681 mov r9, r0
c080: 9104 str r1, [sp, #16]
c082: 4693 mov fp, r2
* @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)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c084: 88c4 ldrh r4, [r0, #6]
c086: 8845 ldrh r5, [r0, #2]
c088: 1c63 adds r3, r4, #1
c08a: 1b5b subs r3, r3, r5
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
c08c: b21b sxth r3, r3
c08e: 2b00 cmp r3, #0
c090: dc01 bgt.n c096 <lv_draw_rect+0x26>
c092: f000 ffce bl d032 <lv_draw_rect+0xfc2>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c096: 8886 ldrh r6, [r0, #4]
c098: 8807 ldrh r7, [r0, #0]
c09a: 1c73 adds r3, r6, #1
c09c: 1bdb subs r3, r3, r7
c09e: b21b sxth r3, r3
c0a0: 2b00 cmp r3, #0
c0a2: dc01 bgt.n c0a8 <lv_draw_rect+0x38>
c0a4: f000 ffc5 bl d032 <lv_draw_rect+0xfc2>
if(dsc->shadow_width == 0) return;
c0a8: 0013 movs r3, r2
c0aa: 2220 movs r2, #32
c0ac: 5e9b ldrsh r3, [r3, r2]
c0ae: 4698 mov r8, r3
c0b0: 2b00 cmp r3, #0
c0b2: d101 bne.n c0b8 <lv_draw_rect+0x48>
c0b4: f000 fee1 bl ce7a <lv_draw_rect+0xe0a>
if(dsc->shadow_opa <= LV_OPA_MIN) return;
c0b8: 2328 movs r3, #40 ; 0x28
c0ba: 465a mov r2, fp
c0bc: 5cd3 ldrb r3, [r2, r3]
c0be: 9306 str r3, [sp, #24]
c0c0: 2b05 cmp r3, #5
c0c2: d801 bhi.n c0c8 <lv_draw_rect+0x58>
c0c4: f000 fed9 bl ce7a <lv_draw_rect+0xe0a>
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
c0c8: 6a13 ldr r3, [r2, #32]
c0ca: 2b01 cmp r3, #1
c0cc: d100 bne.n c0d0 <lv_draw_rect+0x60>
c0ce: e0e2 b.n c296 <lv_draw_rect+0x226>
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
c0d0: 465b mov r3, fp
c0d2: 8c59 ldrh r1, [r3, #34] ; 0x22
c0d4: 8cda ldrh r2, [r3, #38] ; 0x26
c0d6: 1a8b subs r3, r1, r2
c0d8: 18ff adds r7, r7, r3
c0da: b2bf uxth r7, r7
c0dc: ab14 add r3, sp, #80 ; 0x50
c0de: 801f strh r7, [r3, #0]
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
c0e0: 1889 adds r1, r1, r2
c0e2: 1876 adds r6, r6, r1
c0e4: b2b6 uxth r6, r6
c0e6: 809e strh r6, [r3, #4]
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
c0e8: 4659 mov r1, fp
c0ea: 8c89 ldrh r1, [r1, #36] ; 0x24
c0ec: 1a88 subs r0, r1, r2
c0ee: 182d adds r5, r5, r0
c0f0: b2ad uxth r5, r5
c0f2: 805d strh r5, [r3, #2]
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
c0f4: 1852 adds r2, r2, r1
c0f6: 18a4 adds r4, r4, r2
c0f8: b2a4 uxth r4, r4
c0fa: 80dc strh r4, [r3, #6]
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
c0fc: 4643 mov r3, r8
c0fe: 0fdb lsrs r3, r3, #31
c100: 4443 add r3, r8
c102: 1059 asrs r1, r3, #1
c104: 43c9 mvns r1, r1
c106: b289 uxth r1, r1
c108: aa16 add r2, sp, #88 ; 0x58
c10a: 1878 adds r0, r7, r1
c10c: 8010 strh r0, [r2, #0]
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
c10e: 105b asrs r3, r3, #1
c110: 3301 adds r3, #1
c112: b29b uxth r3, r3
c114: 18f0 adds r0, r6, r3
c116: 8090 strh r0, [r2, #4]
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
c118: 1869 adds r1, r5, r1
c11a: 8051 strh r1, [r2, #2]
sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1;
c11c: 18e3 adds r3, r4, r3
c11e: 80d3 strh r3, [r2, #6]
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
c120: 9b06 ldr r3, [sp, #24]
c122: 2bfa cmp r3, #250 ; 0xfa
c124: d901 bls.n c12a <lv_draw_rect+0xba>
c126: 23ff movs r3, #255 ; 0xff
c128: 9306 str r3, [sp, #24]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
c12a: 4b9f ldr r3, [pc, #636] ; (c3a8 <lv_draw_rect+0x338>)
c12c: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
c12e: 4b9f ldr r3, [pc, #636] ; (c3ac <lv_draw_rect+0x33c>)
c130: 4798 blx r3
c132: 4682 mov sl, r0
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
c134: 9a04 ldr r2, [sp, #16]
c136: a916 add r1, sp, #88 ; 0x58
c138: a818 add r0, sp, #96 ; 0x60
c13a: 4b9d ldr r3, [pc, #628] ; (c3b0 <lv_draw_rect+0x340>)
c13c: 4798 blx r3
if(is_common == false) return;
c13e: 2800 cmp r0, #0
c140: d101 bne.n c146 <lv_draw_rect+0xd6>
c142: f000 fe9a bl ce7a <lv_draw_rect+0xe0a>
draw_area.x1 -= disp_area->x1;
c146: 4653 mov r3, sl
c148: 8a1b ldrh r3, [r3, #16]
c14a: 469c mov ip, r3
c14c: ab18 add r3, sp, #96 ; 0x60
c14e: 881a ldrh r2, [r3, #0]
c150: 4661 mov r1, ip
c152: 1a52 subs r2, r2, r1
c154: 801a strh r2, [r3, #0]
draw_area.y1 -= disp_area->y1;
c156: 4652 mov r2, sl
c158: 8a50 ldrh r0, [r2, #18]
c15a: 885a ldrh r2, [r3, #2]
c15c: 1a12 subs r2, r2, r0
c15e: 805a strh r2, [r3, #2]
draw_area.x2 -= disp_area->x1;
c160: 8899 ldrh r1, [r3, #4]
c162: 4662 mov r2, ip
c164: 1a89 subs r1, r1, r2
c166: 8099 strh r1, [r3, #4]
draw_area.y2 -= disp_area->y1;
c168: 88da ldrh r2, [r3, #6]
c16a: 1a12 subs r2, r2, r0
c16c: 80da strh r2, [r3, #6]
c16e: 2300 movs r3, #0
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
c170: a91a add r1, sp, #104 ; 0x68
c172: 4648 mov r0, r9
c174: 5cc2 ldrb r2, [r0, r3]
c176: 545a strb r2, [r3, r1]
c178: 3301 adds r3, #1
while(len) {
c17a: 2b08 cmp r3, #8
c17c: d1fa bne.n c174 <lv_draw_rect+0x104>
c17e: 4681 mov r9, r0
bg_coords.x1 += 1;
c180: ab1a add r3, sp, #104 ; 0x68
c182: 8819 ldrh r1, [r3, #0]
c184: 3101 adds r1, #1
c186: b28a uxth r2, r1
c188: 4694 mov ip, r2
c18a: 801a strh r2, [r3, #0]
bg_coords.y1 += 1;
c18c: 8858 ldrh r0, [r3, #2]
c18e: 3001 adds r0, #1
c190: b282 uxth r2, r0
c192: 9205 str r2, [sp, #20]
c194: 466a mov r2, sp
c196: 8a92 ldrh r2, [r2, #20]
c198: 805a strh r2, [r3, #2]
bg_coords.x2 -= 1;
c19a: 8898 ldrh r0, [r3, #4]
c19c: 1e42 subs r2, r0, #1
c19e: 809a strh r2, [r3, #4]
bg_coords.y2 -= 1;
c1a0: 88da ldrh r2, [r3, #6]
c1a2: 1e51 subs r1, r2, #1
c1a4: 80d9 strh r1, [r3, #6]
int32_t r_bg = dsc->radius;
c1a6: 465b mov r3, fp
c1a8: 2100 movs r1, #0
c1aa: 5e5b ldrsh r3, [r3, r1]
c1ac: 4661 mov r1, ip
c1ae: 1a41 subs r1, r0, r1
c1b0: b209 sxth r1, r1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c1b2: 9805 ldr r0, [sp, #20]
c1b4: 1a10 subs r0, r2, r0
c1b6: b200 sxth r0, r0
int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords));
c1b8: 0002 movs r2, r0
c1ba: 4281 cmp r1, r0
c1bc: da00 bge.n c1c0 <lv_draw_rect+0x150>
c1be: 000a movs r2, r1
if(r_bg > short_side >> 1) r_bg = short_side >> 1;
c1c0: 1052 asrs r2, r2, #1
c1c2: 920f str r2, [sp, #60] ; 0x3c
c1c4: 429a cmp r2, r3
c1c6: dd00 ble.n c1ca <lv_draw_rect+0x15a>
c1c8: 930f str r3, [sp, #60] ; 0x3c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c1ca: 3601 adds r6, #1
c1cc: 1bf6 subs r6, r6, r7
c1ce: b2b2 uxth r2, r6
c1d0: 4692 mov sl, r2
c1d2: b211 sxth r1, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c1d4: 3401 adds r4, #1
c1d6: 1b65 subs r5, r4, r5
c1d8: b2ad uxth r5, r5
c1da: b22a sxth r2, r5
short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area));
c1dc: 0014 movs r4, r2
c1de: 4291 cmp r1, r2
c1e0: da00 bge.n c1e4 <lv_draw_rect+0x174>
c1e2: 000c movs r4, r1
if(r_sh > short_side >> 1) r_sh = short_side >> 1;
c1e4: 1064 asrs r4, r4, #1
c1e6: 429c cmp r4, r3
c1e8: dd00 ble.n c1ec <lv_draw_rect+0x17c>
c1ea: 001c movs r4, r3
int32_t corner_size = sw + r_sh;
c1ec: 44a0 add r8, r4
c1ee: 4643 mov r3, r8
c1f0: 9309 str r3, [sp, #36] ; 0x24
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
c1f2: 4640 mov r0, r8
c1f4: 4358 muls r0, r3
c1f6: 0040 lsls r0, r0, #1
c1f8: 4b6e ldr r3, [pc, #440] ; (c3b4 <lv_draw_rect+0x344>)
c1fa: 4798 blx r3
c1fc: 900e str r0, [sp, #56] ; 0x38
shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh);
c1fe: 465b mov r3, fp
c200: 2720 movs r7, #32
c202: 5fdf ldrsh r7, [r3, r7]
c204: b222 sxth r2, r4
int32_t sw_ori = sw;
c206: 46b8 mov r8, r7
int32_t size = sw_ori + r;
c208: 19d3 adds r3, r2, r7
c20a: 9307 str r3, [sp, #28]
c20c: 2300 movs r3, #0
*d8 = *s8;
c20e: a822 add r0, sp, #136 ; 0x88
c210: a914 add r1, sp, #80 ; 0x50
c212: 5c5e ldrb r6, [r3, r1]
c214: 541e strb r6, [r3, r0]
c216: 3301 adds r3, #1
while(len) {
c218: 2b08 cmp r3, #8
c21a: d1fa bne.n c212 <lv_draw_rect+0x1a2>
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
c21c: 0ffb lsrs r3, r7, #31
c21e: 19db adds r3, r3, r7
c220: 105b asrs r3, r3, #1
c222: b29b uxth r3, r3
c224: 2101 movs r1, #1
c226: 4039 ands r1, r7
c228: 000e movs r6, r1
c22a: 9110 str r1, [sp, #64] ; 0x40
c22c: 1e59 subs r1, r3, #1
c22e: 4270 negs r0, r6
c230: 4170 adcs r0, r6
c232: 1a09 subs r1, r1, r0
c234: 190c adds r4, r1, r4
c236: b2a4 uxth r4, r4
c238: a922 add r1, sp, #136 ; 0x88
c23a: 808c strh r4, [r1, #4]
sh_area.y1 = sw / 2 + 1;
c23c: 3301 adds r3, #1
c23e: b29b uxth r3, r3
c240: 804b strh r3, [r1, #2]
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
c242: 4650 mov r0, sl
c244: 1a24 subs r4, r4, r0
c246: 800c strh r4, [r1, #0]
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
c248: 18ed adds r5, r5, r3
c24a: 80cd strh r5, [r1, #6]
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
c24c: 2300 movs r3, #0
c24e: a829 add r0, sp, #164 ; 0xa4
c250: 4c59 ldr r4, [pc, #356] ; (c3b8 <lv_draw_rect+0x348>)
c252: 47a0 blx r4
if(sw_ori == 1) sw = 1;
c254: 4643 mov r3, r8
c256: 2b01 cmp r3, #1
c258: d101 bne.n c25e <lv_draw_rect+0x1ee>
c25a: f002 f979 bl e550 <lv_draw_rect+0x24e0>
c25e: 107b asrs r3, r7, #1
c260: 930d str r3, [sp, #52] ; 0x34
lv_opa_t * mask_line = _lv_mem_buf_get(size);
c262: 9c07 ldr r4, [sp, #28]
c264: 940c str r4, [sp, #48] ; 0x30
c266: 0020 movs r0, r4
c268: 4b52 ldr r3, [pc, #328] ; (c3b4 <lv_draw_rect+0x344>)
c26a: 4798 blx r3
c26c: 900a str r0, [sp, #40] ; 0x28
for(y = 0; y < size; y++) {
c26e: 2c00 cmp r4, #0
c270: dd61 ble.n c336 <lv_draw_rect+0x2c6>
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
c272: 9b0c ldr r3, [sp, #48] ; 0x30
c274: 005b lsls r3, r3, #1
c276: 930b str r3, [sp, #44] ; 0x2c
c278: 9b07 ldr r3, [sp, #28]
c27a: 4a50 ldr r2, [pc, #320] ; (c3bc <lv_draw_rect+0x34c>)
c27c: 4694 mov ip, r2
c27e: 4463 add r3, ip
c280: 005b lsls r3, r3, #1
c282: 9a0e ldr r2, [sp, #56] ; 0x38
c284: 4692 mov sl, r2
c286: 2200 movs r2, #0
c288: 4690 mov r8, r2
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
c28a: 4f4d ldr r7, [pc, #308] ; (c3c0 <lv_draw_rect+0x350>)
c28c: 4652 mov r2, sl
c28e: 9208 str r2, [sp, #32]
c290: 46ca mov sl, r9
c292: 4699 mov r9, r3
c294: e01c b.n c2d0 <lv_draw_rect+0x260>
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
c296: 465b mov r3, fp
c298: 2224 movs r2, #36 ; 0x24
c29a: 5e9b ldrsh r3, [r3, r2]
c29c: 2b00 cmp r3, #0
c29e: d000 beq.n c2a2 <lv_draw_rect+0x232>
c2a0: e716 b.n c0d0 <lv_draw_rect+0x60>
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
c2a2: 465b mov r3, fp
c2a4: 2226 movs r2, #38 ; 0x26
c2a6: 5e9b ldrsh r3, [r3, r2]
c2a8: 2b00 cmp r3, #0
c2aa: dd00 ble.n c2ae <lv_draw_rect+0x23e>
c2ac: e710 b.n c0d0 <lv_draw_rect+0x60>
c2ae: f000 fde4 bl ce7a <lv_draw_rect+0xe0a>
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
c2b2: 990b ldr r1, [sp, #44] ; 0x2c
c2b4: 9808 ldr r0, [sp, #32]
c2b6: 4b43 ldr r3, [pc, #268] ; (c3c4 <lv_draw_rect+0x354>)
c2b8: 4798 blx r3
sh_ups_tmp_buf += size;
c2ba: 9b08 ldr r3, [sp, #32]
c2bc: 9a0b ldr r2, [sp, #44] ; 0x2c
c2be: 4694 mov ip, r2
c2c0: 4463 add r3, ip
c2c2: 9308 str r3, [sp, #32]
for(y = 0; y < size; y++) {
c2c4: 2301 movs r3, #1
c2c6: 469c mov ip, r3
c2c8: 44e0 add r8, ip
c2ca: 9b07 ldr r3, [sp, #28]
c2cc: 4543 cmp r3, r8
c2ce: dd31 ble.n c334 <lv_draw_rect+0x2c4>
_lv_memset_ff(mask_line, size);
c2d0: 990c ldr r1, [sp, #48] ; 0x30
c2d2: 9c0a ldr r4, [sp, #40] ; 0x28
c2d4: 0020 movs r0, r4
c2d6: 4b3c ldr r3, [pc, #240] ; (c3c8 <lv_draw_rect+0x358>)
c2d8: 4798 blx r3
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
c2da: 466b mov r3, sp
c2dc: 221c movs r2, #28
c2de: 5e9b ldrsh r3, [r3, r2]
c2e0: 4642 mov r2, r8
c2e2: b212 sxth r2, r2
c2e4: a929 add r1, sp, #164 ; 0xa4
c2e6: 9100 str r1, [sp, #0]
c2e8: 2100 movs r1, #0
c2ea: 0020 movs r0, r4
c2ec: 9c29 ldr r4, [sp, #164] ; 0xa4
c2ee: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
c2f0: 2800 cmp r0, #0
c2f2: d0de beq.n c2b2 <lv_draw_rect+0x242>
sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw;
c2f4: 9b0d ldr r3, [sp, #52] ; 0x34
c2f6: 9305 str r3, [sp, #20]
c2f8: 9d0a ldr r5, [sp, #40] ; 0x28
c2fa: 7828 ldrb r0, [r5, #0]
c2fc: 0180 lsls r0, r0, #6
c2fe: 0019 movs r1, r3
c300: 4b2f ldr r3, [pc, #188] ; (c3c0 <lv_draw_rect+0x350>)
c302: 4798 blx r3
c304: 9b08 ldr r3, [sp, #32]
c306: 8018 strh r0, [r3, #0]
for(i = 1; i < size; i++) {
c308: 9a07 ldr r2, [sp, #28]
c30a: 2a01 cmp r2, #1
c30c: ddd5 ble.n c2ba <lv_draw_rect+0x24a>
c30e: 001c movs r4, r3
c310: 444b add r3, r9
c312: 001e movs r6, r3
c314: e005 b.n c322 <lv_draw_rect+0x2b2>
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
c316: 8823 ldrh r3, [r4, #0]
c318: 8063 strh r3, [r4, #2]
c31a: 3501 adds r5, #1
c31c: 3402 adds r4, #2
for(i = 1; i < size; i++) {
c31e: 42a6 cmp r6, r4
c320: d0cb beq.n c2ba <lv_draw_rect+0x24a>
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
c322: 7868 ldrb r0, [r5, #1]
c324: 782b ldrb r3, [r5, #0]
c326: 4283 cmp r3, r0
c328: d0f5 beq.n c316 <lv_draw_rect+0x2a6>
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
c32a: 0180 lsls r0, r0, #6
c32c: 9905 ldr r1, [sp, #20]
c32e: 47b8 blx r7
c330: 8060 strh r0, [r4, #2]
c332: e7f2 b.n c31a <lv_draw_rect+0x2aa>
c334: 46d1 mov r9, sl
_lv_mem_buf_release(mask_line);
c336: 980a ldr r0, [sp, #40] ; 0x28
c338: 4b24 ldr r3, [pc, #144] ; (c3cc <lv_draw_rect+0x35c>)
c33a: 4798 blx r3
if(sw == 1) {
c33c: 9b0d ldr r3, [sp, #52] ; 0x34
c33e: 2b01 cmp r3, #1
c340: d101 bne.n c346 <lv_draw_rect+0x2d6>
c342: f002 f914 bl e56e <lv_draw_rect+0x24fe>
shadow_blur_corner(size, sw, sh_buf);
c346: 466b mov r3, sp
c348: 221c movs r2, #28
c34a: 5e9b ldrsh r3, [r3, r2]
c34c: 9308 str r3, [sp, #32]
c34e: 9c0e ldr r4, [sp, #56] ; 0x38
c350: 0022 movs r2, r4
c352: 9d0d ldr r5, [sp, #52] ; 0x34
c354: 0029 movs r1, r5
c356: 0018 movs r0, r3
c358: 4b1d ldr r3, [pc, #116] ; (c3d0 <lv_draw_rect+0x360>)
c35a: 4798 blx r3
sw += sw_ori & 1;
c35c: 9b10 ldr r3, [sp, #64] ; 0x40
c35e: 46ac mov ip, r5
c360: 4463 add r3, ip
c362: b21f sxth r7, r3
if(sw > 1) {
c364: 2f01 cmp r7, #1
c366: dd3a ble.n c3de <lv_draw_rect+0x36e>
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
c368: 9705 str r7, [sp, #20]
c36a: 8820 ldrh r0, [r4, #0]
c36c: 0180 lsls r0, r0, #6
c36e: 0039 movs r1, r7
c370: 4b13 ldr r3, [pc, #76] ; (c3c0 <lv_draw_rect+0x350>)
c372: 4798 blx r3
c374: 8020 strh r0, [r4, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
c376: 9d0c ldr r5, [sp, #48] ; 0x30
c378: 436d muls r5, r5
c37a: 2d01 cmp r5, #1
c37c: d92a bls.n c3d4 <lv_draw_rect+0x364>
c37e: 4a0f ldr r2, [pc, #60] ; (c3bc <lv_draw_rect+0x34c>)
c380: 4694 mov ip, r2
c382: 4465 add r5, ip
c384: 006d lsls r5, r5, #1
c386: 46a4 mov ip, r4
c388: 4465 add r5, ip
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
c38a: 4e0d ldr r6, [pc, #52] ; (c3c0 <lv_draw_rect+0x350>)
c38c: e002 b.n c394 <lv_draw_rect+0x324>
c38e: 3402 adds r4, #2
for(i = 1; i < (uint32_t) size * size; i++) {
c390: 42a5 cmp r5, r4
c392: d01f beq.n c3d4 <lv_draw_rect+0x364>
if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1];
c394: 8860 ldrh r0, [r4, #2]
c396: 8823 ldrh r3, [r4, #0]
c398: 4283 cmp r3, r0
c39a: d0f8 beq.n c38e <lv_draw_rect+0x31e>
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
c39c: 0180 lsls r0, r0, #6
c39e: 9905 ldr r1, [sp, #20]
c3a0: 47b0 blx r6
c3a2: 8060 strh r0, [r4, #2]
c3a4: e7f3 b.n c38e <lv_draw_rect+0x31e>
c3a6: 46c0 nop ; (mov r8, r8)
c3a8: 00005591 .word 0x00005591
c3ac: 00010e75 .word 0x00010e75
c3b0: 0001140b .word 0x0001140b
c3b4: 000127a1 .word 0x000127a1
c3b8: 0000bd01 .word 0x0000bd01
c3bc: 7fffffff .word 0x7fffffff
c3c0: 0001c1b9 .word 0x0001c1b9
c3c4: 00012975 .word 0x00012975
c3c8: 00012a19 .word 0x00012a19
c3cc: 00012465 .word 0x00012465
c3d0: 0000bd69 .word 0x0000bd69
shadow_blur_corner(size, sw, sh_buf);
c3d4: 9a0e ldr r2, [sp, #56] ; 0x38
c3d6: 0039 movs r1, r7
c3d8: 9808 ldr r0, [sp, #32]
c3da: 4bb5 ldr r3, [pc, #724] ; (c6b0 <lv_draw_rect+0x640>)
c3dc: 4798 blx r3
for(x = 0; x < size * size; x++) {
c3de: 9f07 ldr r7, [sp, #28]
c3e0: 437f muls r7, r7
c3e2: 2f00 cmp r7, #0
c3e4: d00a beq.n c3fc <lv_draw_rect+0x38c>
c3e6: 9a0e ldr r2, [sp, #56] ; 0x38
c3e8: 0013 movs r3, r2
c3ea: 0078 lsls r0, r7, #1
c3ec: 4694 mov ip, r2
c3ee: 4460 add r0, ip
res_buf[x] = sh_buf[x];
c3f0: 8819 ldrh r1, [r3, #0]
c3f2: 7011 strb r1, [r2, #0]
c3f4: 3302 adds r3, #2
c3f6: 3201 adds r2, #1
for(x = 0; x < size * size; x++) {
c3f8: 4283 cmp r3, r0
c3fa: d1f9 bne.n c3f0 <lv_draw_rect+0x380>
lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2;
c3fc: a916 add r1, sp, #88 ; 0x58
c3fe: 884a ldrh r2, [r1, #2]
c400: 88cb ldrh r3, [r1, #6]
c402: 3301 adds r3, #1
c404: 1a9b subs r3, r3, r2
c406: b21b sxth r3, r3
c408: 0fd8 lsrs r0, r3, #31
c40a: 18c3 adds r3, r0, r3
c40c: 105b asrs r3, r3, #1
c40e: 18d3 adds r3, r2, r3
c410: b29b uxth r3, r3
c412: 9310 str r3, [sp, #64] ; 0x40
c414: b21b sxth r3, r3
c416: 930c str r3, [sp, #48] ; 0x30
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
c418: 880a ldrh r2, [r1, #0]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c41a: 888b ldrh r3, [r1, #4]
c41c: 3301 adds r3, #1
c41e: 1a9b subs r3, r3, r2
c420: b21b sxth r3, r3
c422: 0fd9 lsrs r1, r3, #31
c424: 18cb adds r3, r1, r3
c426: 105b asrs r3, r3, #1
c428: 18d3 adds r3, r2, r3
c42a: b29b uxth r3, r3
c42c: 9311 str r3, [sp, #68] ; 0x44
c42e: b21b sxth r3, r3
c430: 930d str r3, [sp, #52] ; 0x34
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
c432: 4ba0 ldr r3, [pc, #640] ; (c6b4 <lv_draw_rect+0x644>)
c434: 4798 blx r3
c436: 2300 movs r3, #0
c438: 9308 str r3, [sp, #32]
c43a: 2800 cmp r0, #0
c43c: d110 bne.n c460 <lv_draw_rect+0x3f0>
else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false;
c43e: 465b mov r3, fp
c440: 2222 movs r2, #34 ; 0x22
c442: 5e9b ldrsh r3, [r3, r2]
c444: 2b00 cmp r3, #0
c446: d10b bne.n c460 <lv_draw_rect+0x3f0>
c448: 465b mov r3, fp
c44a: 2224 movs r2, #36 ; 0x24
c44c: 5e9b ldrsh r3, [r3, r2]
c44e: 2b00 cmp r3, #0
c450: d106 bne.n c460 <lv_draw_rect+0x3f0>
else if(dsc->shadow_spread != 0) simple_mode = false;
c452: 465b mov r3, fp
c454: 2226 movs r2, #38 ; 0x26
c456: 5e9a ldrsh r2, [r3, r2]
c458: 4253 negs r3, r2
c45a: 4153 adcs r3, r2
c45c: b2db uxtb r3, r3
c45e: 9308 str r3, [sp, #32]
c460: ac16 add r4, sp, #88 ; 0x58
c462: 88a0 ldrh r0, [r4, #4]
c464: 3001 adds r0, #1
c466: 8823 ldrh r3, [r4, #0]
c468: 1ac0 subs r0, r0, r3
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
c46a: b200 sxth r0, r0
c46c: 4b92 ldr r3, [pc, #584] ; (c6b8 <lv_draw_rect+0x648>)
c46e: 4798 blx r3
c470: 9005 str r0, [sp, #20]
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
c472: 466b mov r3, sp
c474: 223c movs r2, #60 ; 0x3c
c476: 5e9a ldrsh r2, [r3, r2]
c478: 2301 movs r3, #1
c47a: a91a add r1, sp, #104 ; 0x68
c47c: a829 add r0, sp, #164 ; 0xa4
c47e: 4d8f ldr r5, [pc, #572] ; (c6bc <lv_draw_rect+0x64c>)
c480: 47a8 blx r5
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
c482: 2100 movs r1, #0
c484: a829 add r0, sp, #164 ; 0xa4
c486: 4b8e ldr r3, [pc, #568] ; (c6c0 <lv_draw_rect+0x650>)
c488: 4798 blx r3
c48a: 900f str r0, [sp, #60] ; 0x3c
a.x2 = sh_area.x2;
c48c: 2204 movs r2, #4
c48e: 5ea3 ldrsh r3, [r4, r2]
c490: a91c add r1, sp, #112 ; 0x70
c492: 808b strh r3, [r1, #4]
a.x1 = a.x2 - corner_size + 1;
c494: 466a mov r2, sp
c496: 8c92 ldrh r2, [r2, #36] ; 0x24
c498: 920a str r2, [sp, #40] ; 0x28
c49a: 3301 adds r3, #1
c49c: 1a9b subs r3, r3, r2
c49e: 800b strh r3, [r1, #0]
a.y1 = sh_area.y1;
c4a0: 2002 movs r0, #2
c4a2: 5e23 ldrsh r3, [r4, r0]
c4a4: 804b strh r3, [r1, #2]
a.y2 = a.y1 + corner_size - 1;
c4a6: 3b01 subs r3, #1
c4a8: 4694 mov ip, r2
c4aa: 4463 add r3, ip
c4ac: 80cb strh r3, [r1, #6]
bool has_com = _lv_area_intersect(&ca, &a, clip);
c4ae: 9a04 ldr r2, [sp, #16]
c4b0: a81e add r0, sp, #120 ; 0x78
c4b2: 4b84 ldr r3, [pc, #528] ; (c6c4 <lv_draw_rect+0x654>)
c4b4: 4798 blx r3
if(has_com) {
c4b6: 2800 cmp r0, #0
c4b8: d071 beq.n c59e <lv_draw_rect+0x52e>
if(ca.y2 > h_half) ca.y2 = h_half;
c4ba: ab1e add r3, sp, #120 ; 0x78
c4bc: 2206 movs r2, #6
c4be: 5e9b ldrsh r3, [r3, r2]
c4c0: 990c ldr r1, [sp, #48] ; 0x30
c4c2: 428b cmp r3, r1
c4c4: dd01 ble.n c4ca <lv_draw_rect+0x45a>
c4c6: ab1e add r3, sp, #120 ; 0x78
c4c8: 80d9 strh r1, [r3, #6]
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
c4ca: ab1e add r3, sp, #120 ; 0x78
c4cc: 2200 movs r2, #0
c4ce: 5e9b ldrsh r3, [r3, r2]
c4d0: 9a0d ldr r2, [sp, #52] ; 0x34
c4d2: 4293 cmp r3, r2
c4d4: dc03 bgt.n c4de <lv_draw_rect+0x46e>
c4d6: 9b11 ldr r3, [sp, #68] ; 0x44
c4d8: 3301 adds r3, #1
c4da: aa1e add r2, sp, #120 ; 0x78
c4dc: 8013 strh r3, [r2, #0]
c4de: ab1e add r3, sp, #120 ; 0x78
c4e0: 2100 movs r1, #0
c4e2: 5e5a ldrsh r2, [r3, r1]
c4e4: 889b ldrh r3, [r3, #4]
c4e6: 3301 adds r3, #1
c4e8: 1a9b subs r3, r3, r2
c4ea: b21b sxth r3, r3
c4ec: 930b str r3, [sp, #44] ; 0x2c
if(w > 0) {
c4ee: 2b00 cmp r3, #0
c4f0: dd55 ble.n c59e <lv_draw_rect+0x52e>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c4f2: ab1e add r3, sp, #120 ; 0x78
c4f4: 2106 movs r1, #6
c4f6: 5e5c ldrsh r4, [r3, r1]
c4f8: 2602 movs r6, #2
c4fa: 5f9e ldrsh r6, [r3, r6]
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
c4fc: ab1c add r3, sp, #112 ; 0x70
c4fe: 2102 movs r1, #2
c500: 5e5d ldrsh r5, [r3, r1]
c502: 1b75 subs r5, r6, r5
c504: 9909 ldr r1, [sp, #36] ; 0x24
c506: 434d muls r5, r1
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
c508: 2100 movs r1, #0
c50a: 5e5b ldrsh r3, [r3, r1]
c50c: 1ad2 subs r2, r2, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
c50e: 18ad adds r5, r5, r2
c510: 9b0e ldr r3, [sp, #56] ; 0x38
c512: 469c mov ip, r3
c514: 4465 add r5, ip
c516: 2300 movs r3, #0
*d8 = *s8;
c518: a822 add r0, sp, #136 ; 0x88
c51a: a91e add r1, sp, #120 ; 0x78
c51c: 5c5a ldrb r2, [r3, r1]
c51e: 541a strb r2, [r3, r0]
c520: 3301 adds r3, #1
while(len) {
c522: 2b08 cmp r3, #8
c524: d1fa bne.n c51c <lv_draw_rect+0x4ac>
fa.y2 = fa.y1;
c526: ab22 add r3, sp, #136 ; 0x88
c528: 885a ldrh r2, [r3, #2]
c52a: 80da strh r2, [r3, #6]
c52c: 3401 adds r4, #1
c52e: 1ba6 subs r6, r4, r6
c530: b236 sxth r6, r6
for(y = 0; y < h; y++) {
c532: 2e00 cmp r6, #0
c534: dd33 ble.n c59e <lv_draw_rect+0x52e>
c536: 1c73 adds r3, r6, #1
c538: 4698 mov r8, r3
c53a: 2601 movs r6, #1
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c53c: ac22 add r4, sp, #136 ; 0x88
c53e: 4b62 ldr r3, [pc, #392] ; (c6c8 <lv_draw_rect+0x658>)
c540: 469a mov sl, r3
c542: 9507 str r5, [sp, #28]
c544: 465f mov r7, fp
c546: e019 b.n c57c <lv_draw_rect+0x50c>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
c548: 8bfa ldrh r2, [r7, #30]
c54a: 2329 movs r3, #41 ; 0x29
c54c: 5cfb ldrb r3, [r7, r3]
c54e: 9302 str r3, [sp, #8]
c550: 9b06 ldr r3, [sp, #24]
c552: 9301 str r3, [sp, #4]
c554: 9000 str r0, [sp, #0]
c556: 9b05 ldr r3, [sp, #20]
c558: 0021 movs r1, r4
c55a: 9804 ldr r0, [sp, #16]
c55c: 4d5b ldr r5, [pc, #364] ; (c6cc <lv_draw_rect+0x65c>)
c55e: 47a8 blx r5
fa.y1++;
c560: 8863 ldrh r3, [r4, #2]
c562: 3301 adds r3, #1
c564: 8063 strh r3, [r4, #2]
fa.y2++;
c566: 88e3 ldrh r3, [r4, #6]
c568: 3301 adds r3, #1
c56a: 80e3 strh r3, [r4, #6]
c56c: 9b09 ldr r3, [sp, #36] ; 0x24
c56e: 469c mov ip, r3
c570: 9b07 ldr r3, [sp, #28]
c572: 4463 add r3, ip
c574: 9307 str r3, [sp, #28]
c576: 3601 adds r6, #1
for(y = 0; y < h; y++) {
c578: 45b0 cmp r8, r6
c57a: d00f beq.n c59c <lv_draw_rect+0x52c>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
c57c: 9a0b ldr r2, [sp, #44] ; 0x2c
c57e: 9907 ldr r1, [sp, #28]
c580: 9805 ldr r0, [sp, #20]
c582: 4b53 ldr r3, [pc, #332] ; (c6d0 <lv_draw_rect+0x660>)
c584: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c586: 2102 movs r1, #2
c588: 5e62 ldrsh r2, [r4, r1]
c58a: 2500 movs r5, #0
c58c: 5f61 ldrsh r1, [r4, r5]
c58e: 9b0b ldr r3, [sp, #44] ; 0x2c
c590: 9805 ldr r0, [sp, #20]
c592: 47d0 blx sl
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
c594: 2801 cmp r0, #1
c596: d1d7 bne.n c548 <lv_draw_rect+0x4d8>
c598: 3001 adds r0, #1
c59a: e7d5 b.n c548 <lv_draw_rect+0x4d8>
c59c: 46bb mov fp, r7
a.x2 = sh_area.x2;
c59e: aa16 add r2, sp, #88 ; 0x58
c5a0: 2104 movs r1, #4
c5a2: 5e53 ldrsh r3, [r2, r1]
c5a4: a91c add r1, sp, #112 ; 0x70
c5a6: 808b strh r3, [r1, #4]
a.x1 = a.x2 - corner_size + 1;
c5a8: 3301 adds r3, #1
c5aa: 980a ldr r0, [sp, #40] ; 0x28
c5ac: 1a1b subs r3, r3, r0
c5ae: 800b strh r3, [r1, #0]
a.y1 = sh_area.y2 - corner_size + 1;
c5b0: 2306 movs r3, #6
c5b2: 5ed2 ldrsh r2, [r2, r3]
c5b4: 1c53 adds r3, r2, #1
c5b6: 1a1b subs r3, r3, r0
c5b8: 804b strh r3, [r1, #2]
a.y2 = sh_area.y2;
c5ba: 80ca strh r2, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
c5bc: 9a04 ldr r2, [sp, #16]
c5be: a81e add r0, sp, #120 ; 0x78
c5c0: 4b40 ldr r3, [pc, #256] ; (c6c4 <lv_draw_rect+0x654>)
c5c2: 4798 blx r3
if(has_com) {
c5c4: 2800 cmp r0, #0
c5c6: d100 bne.n c5ca <lv_draw_rect+0x55a>
c5c8: e085 b.n c6d6 <lv_draw_rect+0x666>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
c5ca: ab1e add r3, sp, #120 ; 0x78
c5cc: 2202 movs r2, #2
c5ce: 5e9b ldrsh r3, [r3, r2]
c5d0: 9a0c ldr r2, [sp, #48] ; 0x30
c5d2: 4293 cmp r3, r2
c5d4: dc03 bgt.n c5de <lv_draw_rect+0x56e>
c5d6: 9b10 ldr r3, [sp, #64] ; 0x40
c5d8: 3301 adds r3, #1
c5da: aa1e add r2, sp, #120 ; 0x78
c5dc: 8053 strh r3, [r2, #2]
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
c5de: ab1e add r3, sp, #120 ; 0x78
c5e0: 2200 movs r2, #0
c5e2: 5e9b ldrsh r3, [r3, r2]
c5e4: 9a0d ldr r2, [sp, #52] ; 0x34
c5e6: 4293 cmp r3, r2
c5e8: dc03 bgt.n c5f2 <lv_draw_rect+0x582>
c5ea: 9b11 ldr r3, [sp, #68] ; 0x44
c5ec: 3301 adds r3, #1
c5ee: aa1e add r2, sp, #120 ; 0x78
c5f0: 8013 strh r3, [r2, #0]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c5f2: ab1e add r3, sp, #120 ; 0x78
c5f4: 2100 movs r1, #0
c5f6: 5e5a ldrsh r2, [r3, r1]
c5f8: 889b ldrh r3, [r3, #4]
c5fa: 3301 adds r3, #1
c5fc: 1a9b subs r3, r3, r2
c5fe: b21b sxth r3, r3
c600: 930b str r3, [sp, #44] ; 0x2c
if(w > 0) {
c602: 2b00 cmp r3, #0
c604: dd67 ble.n c6d6 <lv_draw_rect+0x666>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c606: ab1e add r3, sp, #120 ; 0x78
c608: 2106 movs r1, #6
c60a: 5e5c ldrsh r4, [r3, r1]
c60c: 2602 movs r6, #2
c60e: 5f9e ldrsh r6, [r3, r6]
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
c610: ab1c add r3, sp, #112 ; 0x70
c612: 2106 movs r1, #6
c614: 5e5d ldrsh r5, [r3, r1]
c616: 1b2d subs r5, r5, r4
c618: 9909 ldr r1, [sp, #36] ; 0x24
c61a: 434d muls r5, r1
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
c61c: 2100 movs r1, #0
c61e: 5e5b ldrsh r3, [r3, r1]
c620: 1ad2 subs r2, r2, r3
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
c622: 18ad adds r5, r5, r2
c624: 9b0e ldr r3, [sp, #56] ; 0x38
c626: 469c mov ip, r3
c628: 4465 add r5, ip
c62a: 2300 movs r3, #0
*d8 = *s8;
c62c: a822 add r0, sp, #136 ; 0x88
c62e: a91e add r1, sp, #120 ; 0x78
c630: 5c5a ldrb r2, [r3, r1]
c632: 541a strb r2, [r3, r0]
c634: 3301 adds r3, #1
while(len) {
c636: 2b08 cmp r3, #8
c638: d1fa bne.n c630 <lv_draw_rect+0x5c0>
fa.y1 = fa.y2; /*Fill from bottom to top*/
c63a: ab22 add r3, sp, #136 ; 0x88
c63c: 88da ldrh r2, [r3, #6]
c63e: 805a strh r2, [r3, #2]
c640: 3401 adds r4, #1
c642: 1ba6 subs r6, r4, r6
c644: b236 sxth r6, r6
for(y = 0; y < h; y++) {
c646: 2e00 cmp r6, #0
c648: dd45 ble.n c6d6 <lv_draw_rect+0x666>
c64a: 1c73 adds r3, r6, #1
c64c: 4698 mov r8, r3
c64e: 2601 movs r6, #1
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c650: ac22 add r4, sp, #136 ; 0x88
c652: 4b1d ldr r3, [pc, #116] ; (c6c8 <lv_draw_rect+0x658>)
c654: 469a mov sl, r3
c656: 9507 str r5, [sp, #28]
c658: 465f mov r7, fp
c65a: e019 b.n c690 <lv_draw_rect+0x620>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
c65c: 8bfa ldrh r2, [r7, #30]
c65e: 2329 movs r3, #41 ; 0x29
c660: 5cfb ldrb r3, [r7, r3]
c662: 9302 str r3, [sp, #8]
c664: 9b06 ldr r3, [sp, #24]
c666: 9301 str r3, [sp, #4]
c668: 9000 str r0, [sp, #0]
c66a: 9b05 ldr r3, [sp, #20]
c66c: 0021 movs r1, r4
c66e: 9804 ldr r0, [sp, #16]
c670: 4d16 ldr r5, [pc, #88] ; (c6cc <lv_draw_rect+0x65c>)
c672: 47a8 blx r5
fa.y1--;
c674: 8863 ldrh r3, [r4, #2]
c676: 3b01 subs r3, #1
c678: 8063 strh r3, [r4, #2]
fa.y2--;
c67a: 88e3 ldrh r3, [r4, #6]
c67c: 3b01 subs r3, #1
c67e: 80e3 strh r3, [r4, #6]
c680: 9b09 ldr r3, [sp, #36] ; 0x24
c682: 469c mov ip, r3
c684: 9b07 ldr r3, [sp, #28]
c686: 4463 add r3, ip
c688: 9307 str r3, [sp, #28]
c68a: 3601 adds r6, #1
for(y = 0; y < h; y++) {
c68c: 4546 cmp r6, r8
c68e: d021 beq.n c6d4 <lv_draw_rect+0x664>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
c690: 9a0b ldr r2, [sp, #44] ; 0x2c
c692: 9907 ldr r1, [sp, #28]
c694: 9805 ldr r0, [sp, #20]
c696: 4b0e ldr r3, [pc, #56] ; (c6d0 <lv_draw_rect+0x660>)
c698: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c69a: 2102 movs r1, #2
c69c: 5e62 ldrsh r2, [r4, r1]
c69e: 2500 movs r5, #0
c6a0: 5f61 ldrsh r1, [r4, r5]
c6a2: 9b0b ldr r3, [sp, #44] ; 0x2c
c6a4: 9805 ldr r0, [sp, #20]
c6a6: 47d0 blx sl
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
c6a8: 2801 cmp r0, #1
c6aa: d1d7 bne.n c65c <lv_draw_rect+0x5ec>
c6ac: 3001 adds r0, #1
c6ae: e7d5 b.n c65c <lv_draw_rect+0x5ec>
c6b0: 0000bd69 .word 0x0000bd69
c6b4: 0000bb6d .word 0x0000bb6d
c6b8: 000127a1 .word 0x000127a1
c6bc: 0000bd01 .word 0x0000bd01
c6c0: 0000ba75 .word 0x0000ba75
c6c4: 0001140b .word 0x0001140b
c6c8: 0000bad1 .word 0x0000bad1
c6cc: 00006fed .word 0x00006fed
c6d0: 00012545 .word 0x00012545
c6d4: 46bb mov fp, r7
a.x2 = sh_area.x2;
c6d6: aa16 add r2, sp, #88 ; 0x58
c6d8: 2104 movs r1, #4
c6da: 5e53 ldrsh r3, [r2, r1]
c6dc: a91c add r1, sp, #112 ; 0x70
c6de: 808b strh r3, [r1, #4]
a.x1 = a.x2 - corner_size + 1;
c6e0: 3301 adds r3, #1
c6e2: 980a ldr r0, [sp, #40] ; 0x28
c6e4: 1a1b subs r3, r3, r0
c6e6: 800b strh r3, [r1, #0]
a.y1 = sh_area.y1 + corner_size;
c6e8: 8853 ldrh r3, [r2, #2]
c6ea: 4684 mov ip, r0
c6ec: 4463 add r3, ip
c6ee: 804b strh r3, [r1, #2]
a.y2 = sh_area.y2 - corner_size;
c6f0: 88d3 ldrh r3, [r2, #6]
c6f2: 1a1b subs r3, r3, r0
c6f4: 80cb strh r3, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
c6f6: 9a04 ldr r2, [sp, #16]
c6f8: a81e add r0, sp, #120 ; 0x78
c6fa: 4bd1 ldr r3, [pc, #836] ; (ca40 <lv_draw_rect+0x9d0>)
c6fc: 4798 blx r3
if(has_com) {
c6fe: 2800 cmp r0, #0
c700: d06c beq.n c7dc <lv_draw_rect+0x76c>
if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2);
c702: 9b08 ldr r3, [sp, #32]
c704: 2b00 cmp r3, #0
c706: d00a beq.n c71e <lv_draw_rect+0x6ae>
c708: aa1e add r2, sp, #120 ; 0x78
c70a: 8810 ldrh r0, [r2, #0]
c70c: 464b mov r3, r9
c70e: 889b ldrh r3, [r3, #4]
c710: 1c19 adds r1, r3, #0
c712: b21b sxth r3, r3
c714: b204 sxth r4, r0
c716: 42a3 cmp r3, r4
c718: da00 bge.n c71c <lv_draw_rect+0x6ac>
c71a: 1c01 adds r1, r0, #0
c71c: 8011 strh r1, [r2, #0]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c71e: ab1e add r3, sp, #120 ; 0x78
c720: 2100 movs r1, #0
c722: 5e5a ldrsh r2, [r3, r1]
c724: 889b ldrh r3, [r3, #4]
c726: 3301 adds r3, #1
c728: 1a9b subs r3, r3, r2
c72a: b21b sxth r3, r3
c72c: 9307 str r3, [sp, #28]
if(w > 0) {
c72e: 2b00 cmp r3, #0
c730: dd54 ble.n c7dc <lv_draw_rect+0x76c>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c732: ab1e add r3, sp, #120 ; 0x78
c734: 88df ldrh r7, [r3, #6]
c736: 3701 adds r7, #1
c738: 885b ldrh r3, [r3, #2]
c73a: 1aff subs r7, r7, r3
c73c: b23f sxth r7, r7
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
c73e: 9909 ldr r1, [sp, #36] ; 0x24
c740: 000b movs r3, r1
c742: 3b01 subs r3, #1
c744: 434b muls r3, r1
sh_buf_tmp += ca.x1 - a.x1;
c746: a91c add r1, sp, #112 ; 0x70
c748: 2000 movs r0, #0
c74a: 5e09 ldrsh r1, [r1, r0]
c74c: 1a52 subs r2, r2, r1
c74e: 189a adds r2, r3, r2
c750: 0013 movs r3, r2
c752: 990e ldr r1, [sp, #56] ; 0x38
c754: 468c mov ip, r1
c756: 4463 add r3, ip
c758: 930b str r3, [sp, #44] ; 0x2c
c75a: 2300 movs r3, #0
*d8 = *s8;
c75c: a822 add r0, sp, #136 ; 0x88
c75e: a91e add r1, sp, #120 ; 0x78
c760: 5c5a ldrb r2, [r3, r1]
c762: 541a strb r2, [r3, r0]
c764: 3301 adds r3, #1
while(len) {
c766: 2b08 cmp r3, #8
c768: d1fa bne.n c760 <lv_draw_rect+0x6f0>
fa.y2 = fa.y1;
c76a: ab22 add r3, sp, #136 ; 0x88
c76c: 885a ldrh r2, [r3, #2]
c76e: 80da strh r2, [r3, #6]
for(y = 0; y < h; y++) {
c770: 2f00 cmp r7, #0
c772: dd33 ble.n c7dc <lv_draw_rect+0x76c>
c774: 2500 movs r5, #0
_lv_memcpy(mask_buf, sh_buf_tmp, w);
c776: 4bb3 ldr r3, [pc, #716] ; (ca44 <lv_draw_rect+0x9d4>)
c778: 4698 mov r8, r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c77a: ac22 add r4, sp, #136 ; 0x88
c77c: 9b08 ldr r3, [sp, #32]
c77e: 469a mov sl, r3
c780: 465e mov r6, fp
c782: 46bb mov fp, r7
c784: e015 b.n c7b2 <lv_draw_rect+0x742>
_lv_blend_fill(clip, &fa,
c786: 8bf2 ldrh r2, [r6, #30]
c788: 2329 movs r3, #41 ; 0x29
c78a: 5cf3 ldrb r3, [r6, r3]
c78c: 9302 str r3, [sp, #8]
c78e: 2328 movs r3, #40 ; 0x28
c790: 5cf3 ldrb r3, [r6, r3]
c792: 9301 str r3, [sp, #4]
c794: 9000 str r0, [sp, #0]
c796: 9b05 ldr r3, [sp, #20]
c798: 0021 movs r1, r4
c79a: 9804 ldr r0, [sp, #16]
c79c: 4faa ldr r7, [pc, #680] ; (ca48 <lv_draw_rect+0x9d8>)
c79e: 47b8 blx r7
fa.y1++;
c7a0: 8863 ldrh r3, [r4, #2]
c7a2: 3301 adds r3, #1
c7a4: 8063 strh r3, [r4, #2]
fa.y2++;
c7a6: 88e3 ldrh r3, [r4, #6]
c7a8: 3301 adds r3, #1
c7aa: 80e3 strh r3, [r4, #6]
for(y = 0; y < h; y++) {
c7ac: 3501 adds r5, #1
c7ae: 455d cmp r5, fp
c7b0: da13 bge.n c7da <lv_draw_rect+0x76a>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
c7b2: 9a07 ldr r2, [sp, #28]
c7b4: 990b ldr r1, [sp, #44] ; 0x2c
c7b6: 9805 ldr r0, [sp, #20]
c7b8: 47c0 blx r8
mask_res = LV_DRAW_MASK_RES_CHANGED;
c7ba: 2002 movs r0, #2
if(simple_mode) {
c7bc: 4653 mov r3, sl
c7be: 2b00 cmp r3, #0
c7c0: d1e1 bne.n c786 <lv_draw_rect+0x716>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c7c2: 2302 movs r3, #2
c7c4: 5ee2 ldrsh r2, [r4, r3]
c7c6: 2300 movs r3, #0
c7c8: 5ee1 ldrsh r1, [r4, r3]
c7ca: 9b07 ldr r3, [sp, #28]
c7cc: 9805 ldr r0, [sp, #20]
c7ce: 4f9f ldr r7, [pc, #636] ; (ca4c <lv_draw_rect+0x9dc>)
c7d0: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
c7d2: 2801 cmp r0, #1
c7d4: d1d7 bne.n c786 <lv_draw_rect+0x716>
c7d6: 3001 adds r0, #1
c7d8: e7d5 b.n c786 <lv_draw_rect+0x716>
c7da: 46b3 mov fp, r6
for(y = 0; y < corner_size; y++) {
c7dc: 9b09 ldr r3, [sp, #36] ; 0x24
c7de: 2b00 cmp r3, #0
c7e0: dd1f ble.n c822 <lv_draw_rect+0x7b2>
for(x = 0; x < corner_size / 2; x++) {
c7e2: 0fdf lsrs r7, r3, #31
c7e4: 469c mov ip, r3
c7e6: 4467 add r7, ip
c7e8: 107f asrs r7, r7, #1
c7ea: 9d0e ldr r5, [sp, #56] ; 0x38
c7ec: 2600 movs r6, #0
c7ee: 1e5a subs r2, r3, #1
c7f0: 4694 mov ip, r2
c7f2: 46b8 mov r8, r7
c7f4: 001f movs r7, r3
c7f6: e00b b.n c810 <lv_draw_rect+0x7a0>
lv_opa_t tmp = sh_buf_tmp[x];
c7f8: 7819 ldrb r1, [r3, #0]
sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1];
c7fa: 7810 ldrb r0, [r2, #0]
c7fc: 7018 strb r0, [r3, #0]
sh_buf_tmp[corner_size - x - 1] = tmp;
c7fe: 7011 strb r1, [r2, #0]
c800: 3301 adds r3, #1
c802: 3a01 subs r2, #1
for(x = 0; x < corner_size / 2; x++) {
c804: 429c cmp r4, r3
c806: d1f7 bne.n c7f8 <lv_draw_rect+0x788>
c808: 19ed adds r5, r5, r7
for(y = 0; y < corner_size; y++) {
c80a: 3601 adds r6, #1
c80c: 42b7 cmp r7, r6
c80e: d008 beq.n c822 <lv_draw_rect+0x7b2>
for(x = 0; x < corner_size / 2; x++) {
c810: 4643 mov r3, r8
c812: 2b00 cmp r3, #0
c814: d0f8 beq.n c808 <lv_draw_rect+0x798>
c816: 002b movs r3, r5
c818: 4662 mov r2, ip
c81a: 18aa adds r2, r5, r2
c81c: 4641 mov r1, r8
c81e: 186c adds r4, r5, r1
c820: e7ea b.n c7f8 <lv_draw_rect+0x788>
a.x1 = sh_area.x1;
c822: aa16 add r2, sp, #88 ; 0x58
c824: 2100 movs r1, #0
c826: 5e53 ldrsh r3, [r2, r1]
c828: a91c add r1, sp, #112 ; 0x70
c82a: 800b strh r3, [r1, #0]
a.x2 = a.x1 + corner_size - 1;
c82c: 3b01 subs r3, #1
c82e: 9c0a ldr r4, [sp, #40] ; 0x28
c830: 46a4 mov ip, r4
c832: 4463 add r3, ip
c834: 808b strh r3, [r1, #4]
a.y1 = sh_area.y1;
c836: 2302 movs r3, #2
c838: 5ed3 ldrsh r3, [r2, r3]
c83a: 804b strh r3, [r1, #2]
a.y2 = a.y1 + corner_size - 1;
c83c: 3b01 subs r3, #1
c83e: 4463 add r3, ip
c840: 80cb strh r3, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
c842: 9a04 ldr r2, [sp, #16]
c844: a81e add r0, sp, #120 ; 0x78
c846: 4b7e ldr r3, [pc, #504] ; (ca40 <lv_draw_rect+0x9d0>)
c848: 4798 blx r3
if(has_com) {
c84a: 2800 cmp r0, #0
c84c: d06f beq.n c92e <lv_draw_rect+0x8be>
if(ca.y2 > h_half) ca.y2 = h_half;
c84e: ab1e add r3, sp, #120 ; 0x78
c850: 2206 movs r2, #6
c852: 5e9b ldrsh r3, [r3, r2]
c854: 990c ldr r1, [sp, #48] ; 0x30
c856: 428b cmp r3, r1
c858: dd01 ble.n c85e <lv_draw_rect+0x7ee>
c85a: ab1e add r3, sp, #120 ; 0x78
c85c: 80d9 strh r1, [r3, #6]
if(ca.x2 > w_half) ca.x2 = w_half;
c85e: ab1e add r3, sp, #120 ; 0x78
c860: 2204 movs r2, #4
c862: 5e9b ldrsh r3, [r3, r2]
c864: 990d ldr r1, [sp, #52] ; 0x34
c866: 428b cmp r3, r1
c868: dd01 ble.n c86e <lv_draw_rect+0x7fe>
c86a: ab1e add r3, sp, #120 ; 0x78
c86c: 8099 strh r1, [r3, #4]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c86e: ab1e add r3, sp, #120 ; 0x78
c870: 2100 movs r1, #0
c872: 5e5a ldrsh r2, [r3, r1]
c874: 889b ldrh r3, [r3, #4]
c876: 3301 adds r3, #1
c878: 1a9b subs r3, r3, r2
c87a: b21b sxth r3, r3
c87c: 930b str r3, [sp, #44] ; 0x2c
if(w > 0) {
c87e: 2b00 cmp r3, #0
c880: dd55 ble.n c92e <lv_draw_rect+0x8be>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c882: ab1e add r3, sp, #120 ; 0x78
c884: 2106 movs r1, #6
c886: 5e5c ldrsh r4, [r3, r1]
c888: 2602 movs r6, #2
c88a: 5f9e ldrsh r6, [r3, r6]
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
c88c: ab1c add r3, sp, #112 ; 0x70
c88e: 2102 movs r1, #2
c890: 5e5d ldrsh r5, [r3, r1]
c892: 1b75 subs r5, r6, r5
c894: 9909 ldr r1, [sp, #36] ; 0x24
c896: 434d muls r5, r1
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
c898: 2100 movs r1, #0
c89a: 5e5b ldrsh r3, [r3, r1]
c89c: 1ad2 subs r2, r2, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
c89e: 18ad adds r5, r5, r2
c8a0: 9b0e ldr r3, [sp, #56] ; 0x38
c8a2: 469c mov ip, r3
c8a4: 4465 add r5, ip
c8a6: 2300 movs r3, #0
*d8 = *s8;
c8a8: a822 add r0, sp, #136 ; 0x88
c8aa: a91e add r1, sp, #120 ; 0x78
c8ac: 5c5a ldrb r2, [r3, r1]
c8ae: 541a strb r2, [r3, r0]
c8b0: 3301 adds r3, #1
while(len) {
c8b2: 2b08 cmp r3, #8
c8b4: d1fa bne.n c8ac <lv_draw_rect+0x83c>
fa.y2 = fa.y1;
c8b6: ab22 add r3, sp, #136 ; 0x88
c8b8: 885a ldrh r2, [r3, #2]
c8ba: 80da strh r2, [r3, #6]
c8bc: 3401 adds r4, #1
c8be: 1ba6 subs r6, r4, r6
c8c0: b236 sxth r6, r6
for(y = 0; y < h; y++) {
c8c2: 2e00 cmp r6, #0
c8c4: dd33 ble.n c92e <lv_draw_rect+0x8be>
c8c6: 1c73 adds r3, r6, #1
c8c8: 4698 mov r8, r3
c8ca: 2601 movs r6, #1
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c8cc: ac22 add r4, sp, #136 ; 0x88
c8ce: 4b5f ldr r3, [pc, #380] ; (ca4c <lv_draw_rect+0x9dc>)
c8d0: 469a mov sl, r3
c8d2: 9507 str r5, [sp, #28]
c8d4: 465f mov r7, fp
c8d6: e019 b.n c90c <lv_draw_rect+0x89c>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
c8d8: 8bfa ldrh r2, [r7, #30]
c8da: 2329 movs r3, #41 ; 0x29
c8dc: 5cfb ldrb r3, [r7, r3]
c8de: 9302 str r3, [sp, #8]
c8e0: 9b06 ldr r3, [sp, #24]
c8e2: 9301 str r3, [sp, #4]
c8e4: 9000 str r0, [sp, #0]
c8e6: 9b05 ldr r3, [sp, #20]
c8e8: 0021 movs r1, r4
c8ea: 9804 ldr r0, [sp, #16]
c8ec: 4d56 ldr r5, [pc, #344] ; (ca48 <lv_draw_rect+0x9d8>)
c8ee: 47a8 blx r5
fa.y1++;
c8f0: 8863 ldrh r3, [r4, #2]
c8f2: 3301 adds r3, #1
c8f4: 8063 strh r3, [r4, #2]
fa.y2++;
c8f6: 88e3 ldrh r3, [r4, #6]
c8f8: 3301 adds r3, #1
c8fa: 80e3 strh r3, [r4, #6]
c8fc: 9b09 ldr r3, [sp, #36] ; 0x24
c8fe: 469c mov ip, r3
c900: 9b07 ldr r3, [sp, #28]
c902: 4463 add r3, ip
c904: 9307 str r3, [sp, #28]
c906: 3601 adds r6, #1
for(y = 0; y < h; y++) {
c908: 4546 cmp r6, r8
c90a: d00f beq.n c92c <lv_draw_rect+0x8bc>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
c90c: 9a0b ldr r2, [sp, #44] ; 0x2c
c90e: 9907 ldr r1, [sp, #28]
c910: 9805 ldr r0, [sp, #20]
c912: 4b4c ldr r3, [pc, #304] ; (ca44 <lv_draw_rect+0x9d4>)
c914: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c916: 2102 movs r1, #2
c918: 5e62 ldrsh r2, [r4, r1]
c91a: 2500 movs r5, #0
c91c: 5f61 ldrsh r1, [r4, r5]
c91e: 9b0b ldr r3, [sp, #44] ; 0x2c
c920: 9805 ldr r0, [sp, #20]
c922: 47d0 blx sl
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
c924: 2801 cmp r0, #1
c926: d1d7 bne.n c8d8 <lv_draw_rect+0x868>
c928: 3001 adds r0, #1
c92a: e7d5 b.n c8d8 <lv_draw_rect+0x868>
c92c: 46bb mov fp, r7
a.x1 = sh_area.x1;
c92e: aa16 add r2, sp, #88 ; 0x58
c930: 2100 movs r1, #0
c932: 5e53 ldrsh r3, [r2, r1]
c934: a91c add r1, sp, #112 ; 0x70
c936: 800b strh r3, [r1, #0]
a.x2 = a.x1 + corner_size - 1;
c938: 3b01 subs r3, #1
c93a: 9c0a ldr r4, [sp, #40] ; 0x28
c93c: 46a4 mov ip, r4
c93e: 4463 add r3, ip
c940: 808b strh r3, [r1, #4]
a.y1 = sh_area.y2 - corner_size + 1;
c942: 2306 movs r3, #6
c944: 5ed2 ldrsh r2, [r2, r3]
c946: 1c53 adds r3, r2, #1
c948: 1b1b subs r3, r3, r4
c94a: 804b strh r3, [r1, #2]
a.y2 = sh_area.y2;
c94c: 80ca strh r2, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
c94e: 9a04 ldr r2, [sp, #16]
c950: a81e add r0, sp, #120 ; 0x78
c952: 4b3b ldr r3, [pc, #236] ; (ca40 <lv_draw_rect+0x9d0>)
c954: 4798 blx r3
if(has_com) {
c956: 2800 cmp r0, #0
c958: d100 bne.n c95c <lv_draw_rect+0x8ec>
c95a: e07a b.n ca52 <lv_draw_rect+0x9e2>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
c95c: ab1e add r3, sp, #120 ; 0x78
c95e: 2202 movs r2, #2
c960: 5e9b ldrsh r3, [r3, r2]
c962: 9a0c ldr r2, [sp, #48] ; 0x30
c964: 4293 cmp r3, r2
c966: dc03 bgt.n c970 <lv_draw_rect+0x900>
c968: 9b10 ldr r3, [sp, #64] ; 0x40
c96a: 3301 adds r3, #1
c96c: aa1e add r2, sp, #120 ; 0x78
c96e: 8053 strh r3, [r2, #2]
if(ca.x2 > w_half) ca.x2 = w_half;
c970: ab1e add r3, sp, #120 ; 0x78
c972: 2204 movs r2, #4
c974: 5e9b ldrsh r3, [r3, r2]
c976: 990d ldr r1, [sp, #52] ; 0x34
c978: 428b cmp r3, r1
c97a: dd01 ble.n c980 <lv_draw_rect+0x910>
c97c: ab1e add r3, sp, #120 ; 0x78
c97e: 8099 strh r1, [r3, #4]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
c980: ab1e add r3, sp, #120 ; 0x78
c982: 2100 movs r1, #0
c984: 5e5a ldrsh r2, [r3, r1]
c986: 889b ldrh r3, [r3, #4]
c988: 3301 adds r3, #1
c98a: 1a9b subs r3, r3, r2
c98c: b21b sxth r3, r3
c98e: 930b str r3, [sp, #44] ; 0x2c
if(w > 0) {
c990: 2b00 cmp r3, #0
c992: dd5e ble.n ca52 <lv_draw_rect+0x9e2>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
c994: ab1e add r3, sp, #120 ; 0x78
c996: 2106 movs r1, #6
c998: 5e5c ldrsh r4, [r3, r1]
c99a: 2602 movs r6, #2
c99c: 5f9e ldrsh r6, [r3, r6]
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
c99e: ab1c add r3, sp, #112 ; 0x70
c9a0: 2106 movs r1, #6
c9a2: 5e5d ldrsh r5, [r3, r1]
c9a4: 1b2d subs r5, r5, r4
c9a6: 9909 ldr r1, [sp, #36] ; 0x24
c9a8: 434d muls r5, r1
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
c9aa: 2100 movs r1, #0
c9ac: 5e5b ldrsh r3, [r3, r1]
c9ae: 1ad2 subs r2, r2, r3
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
c9b0: 18ad adds r5, r5, r2
c9b2: 9b0e ldr r3, [sp, #56] ; 0x38
c9b4: 469c mov ip, r3
c9b6: 4465 add r5, ip
c9b8: 2300 movs r3, #0
*d8 = *s8;
c9ba: a822 add r0, sp, #136 ; 0x88
c9bc: a91e add r1, sp, #120 ; 0x78
c9be: 5c5a ldrb r2, [r3, r1]
c9c0: 541a strb r2, [r3, r0]
c9c2: 3301 adds r3, #1
while(len) {
c9c4: 2b08 cmp r3, #8
c9c6: d1fa bne.n c9be <lv_draw_rect+0x94e>
fa.y1 = fa.y2; /*Fill from bottom to top*/
c9c8: ab22 add r3, sp, #136 ; 0x88
c9ca: 88da ldrh r2, [r3, #6]
c9cc: 805a strh r2, [r3, #2]
c9ce: 3401 adds r4, #1
c9d0: 1ba6 subs r6, r4, r6
c9d2: b236 sxth r6, r6
for(y = 0; y < h; y++) {
c9d4: 2e00 cmp r6, #0
c9d6: dd3c ble.n ca52 <lv_draw_rect+0x9e2>
c9d8: 1c73 adds r3, r6, #1
c9da: 4698 mov r8, r3
c9dc: 2601 movs r6, #1
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
c9de: ac22 add r4, sp, #136 ; 0x88
c9e0: 4b1a ldr r3, [pc, #104] ; (ca4c <lv_draw_rect+0x9dc>)
c9e2: 469a mov sl, r3
c9e4: 9507 str r5, [sp, #28]
c9e6: 465f mov r7, fp
c9e8: e019 b.n ca1e <lv_draw_rect+0x9ae>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
c9ea: 8bfa ldrh r2, [r7, #30]
c9ec: 2329 movs r3, #41 ; 0x29
c9ee: 5cfb ldrb r3, [r7, r3]
c9f0: 9302 str r3, [sp, #8]
c9f2: 9b06 ldr r3, [sp, #24]
c9f4: 9301 str r3, [sp, #4]
c9f6: 9000 str r0, [sp, #0]
c9f8: 9b05 ldr r3, [sp, #20]
c9fa: 0021 movs r1, r4
c9fc: 9804 ldr r0, [sp, #16]
c9fe: 4d12 ldr r5, [pc, #72] ; (ca48 <lv_draw_rect+0x9d8>)
ca00: 47a8 blx r5
fa.y1--;
ca02: 8863 ldrh r3, [r4, #2]
ca04: 3b01 subs r3, #1
ca06: 8063 strh r3, [r4, #2]
fa.y2--;
ca08: 88e3 ldrh r3, [r4, #6]
ca0a: 3b01 subs r3, #1
ca0c: 80e3 strh r3, [r4, #6]
ca0e: 9b09 ldr r3, [sp, #36] ; 0x24
ca10: 469c mov ip, r3
ca12: 9b07 ldr r3, [sp, #28]
ca14: 4463 add r3, ip
ca16: 9307 str r3, [sp, #28]
ca18: 3601 adds r6, #1
for(y = 0; y < h; y++) {
ca1a: 4546 cmp r6, r8
ca1c: d018 beq.n ca50 <lv_draw_rect+0x9e0>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
ca1e: 9a0b ldr r2, [sp, #44] ; 0x2c
ca20: 9907 ldr r1, [sp, #28]
ca22: 9805 ldr r0, [sp, #20]
ca24: 4b07 ldr r3, [pc, #28] ; (ca44 <lv_draw_rect+0x9d4>)
ca26: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
ca28: 2102 movs r1, #2
ca2a: 5e62 ldrsh r2, [r4, r1]
ca2c: 2500 movs r5, #0
ca2e: 5f61 ldrsh r1, [r4, r5]
ca30: 9b0b ldr r3, [sp, #44] ; 0x2c
ca32: 9805 ldr r0, [sp, #20]
ca34: 47d0 blx sl
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
ca36: 2801 cmp r0, #1
ca38: d1d7 bne.n c9ea <lv_draw_rect+0x97a>
ca3a: 3001 adds r0, #1
ca3c: e7d5 b.n c9ea <lv_draw_rect+0x97a>
ca3e: 46c0 nop ; (mov r8, r8)
ca40: 0001140b .word 0x0001140b
ca44: 00012545 .word 0x00012545
ca48: 00006fed .word 0x00006fed
ca4c: 0000bad1 .word 0x0000bad1
ca50: 46bb mov fp, r7
a.x1 = sh_area.x1;
ca52: aa16 add r2, sp, #88 ; 0x58
ca54: 2100 movs r1, #0
ca56: 5e53 ldrsh r3, [r2, r1]
ca58: a91c add r1, sp, #112 ; 0x70
ca5a: 800b strh r3, [r1, #0]
a.x2 = a.x1 + corner_size - 1;
ca5c: 3b01 subs r3, #1
ca5e: 9c0a ldr r4, [sp, #40] ; 0x28
ca60: 46a4 mov ip, r4
ca62: 4463 add r3, ip
ca64: 808b strh r3, [r1, #4]
a.y1 = sh_area.y1 + corner_size;
ca66: 8853 ldrh r3, [r2, #2]
ca68: 4463 add r3, ip
ca6a: 804b strh r3, [r1, #2]
a.y2 = sh_area.y2 - corner_size;
ca6c: 88d3 ldrh r3, [r2, #6]
ca6e: 1b1b subs r3, r3, r4
ca70: 80cb strh r3, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
ca72: 9a04 ldr r2, [sp, #16]
ca74: a81e add r0, sp, #120 ; 0x78
ca76: 4bc5 ldr r3, [pc, #788] ; (cd8c <lv_draw_rect+0xd1c>)
ca78: 4798 blx r3
if(has_com) {
ca7a: 2800 cmp r0, #0
ca7c: d06c beq.n cb58 <lv_draw_rect+0xae8>
if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2);
ca7e: 9b08 ldr r3, [sp, #32]
ca80: 2b00 cmp r3, #0
ca82: d00a beq.n ca9a <lv_draw_rect+0xa2a>
ca84: aa1e add r2, sp, #120 ; 0x78
ca86: 464b mov r3, r9
ca88: 8818 ldrh r0, [r3, #0]
ca8a: 8893 ldrh r3, [r2, #4]
ca8c: 1c19 adds r1, r3, #0
ca8e: b21b sxth r3, r3
ca90: b204 sxth r4, r0
ca92: 42a3 cmp r3, r4
ca94: dd00 ble.n ca98 <lv_draw_rect+0xa28>
ca96: 1c01 adds r1, r0, #0
ca98: 8091 strh r1, [r2, #4]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ca9a: ab1e add r3, sp, #120 ; 0x78
ca9c: 2100 movs r1, #0
ca9e: 5e5a ldrsh r2, [r3, r1]
caa0: 889b ldrh r3, [r3, #4]
caa2: 3301 adds r3, #1
caa4: 1a9b subs r3, r3, r2
caa6: b21b sxth r3, r3
caa8: 9307 str r3, [sp, #28]
if(w > 0) {
caaa: 2b00 cmp r3, #0
caac: dd54 ble.n cb58 <lv_draw_rect+0xae8>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
caae: ab1e add r3, sp, #120 ; 0x78
cab0: 88df ldrh r7, [r3, #6]
cab2: 3701 adds r7, #1
cab4: 885b ldrh r3, [r3, #2]
cab6: 1aff subs r7, r7, r3
cab8: b23f sxth r7, r7
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
caba: 9909 ldr r1, [sp, #36] ; 0x24
cabc: 000b movs r3, r1
cabe: 3b01 subs r3, #1
cac0: 434b muls r3, r1
sh_buf_tmp += ca.x1 - a.x1;
cac2: a91c add r1, sp, #112 ; 0x70
cac4: 2000 movs r0, #0
cac6: 5e09 ldrsh r1, [r1, r0]
cac8: 1a52 subs r2, r2, r1
caca: 189a adds r2, r3, r2
cacc: 0013 movs r3, r2
cace: 990e ldr r1, [sp, #56] ; 0x38
cad0: 468c mov ip, r1
cad2: 4463 add r3, ip
cad4: 930b str r3, [sp, #44] ; 0x2c
cad6: 2300 movs r3, #0
*d8 = *s8;
cad8: a822 add r0, sp, #136 ; 0x88
cada: a91e add r1, sp, #120 ; 0x78
cadc: 5c5a ldrb r2, [r3, r1]
cade: 541a strb r2, [r3, r0]
cae0: 3301 adds r3, #1
while(len) {
cae2: 2b08 cmp r3, #8
cae4: d1fa bne.n cadc <lv_draw_rect+0xa6c>
fa.y2 = fa.y1;
cae6: ab22 add r3, sp, #136 ; 0x88
cae8: 885a ldrh r2, [r3, #2]
caea: 80da strh r2, [r3, #6]
for(y = 0; y < h; y++) {
caec: 2f00 cmp r7, #0
caee: dd33 ble.n cb58 <lv_draw_rect+0xae8>
caf0: 2500 movs r5, #0
_lv_memcpy(mask_buf, sh_buf_tmp, w);
caf2: 4ba7 ldr r3, [pc, #668] ; (cd90 <lv_draw_rect+0xd20>)
caf4: 4698 mov r8, r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
caf6: ac22 add r4, sp, #136 ; 0x88
caf8: 9b08 ldr r3, [sp, #32]
cafa: 469a mov sl, r3
cafc: 465e mov r6, fp
cafe: 46bb mov fp, r7
cb00: e015 b.n cb2e <lv_draw_rect+0xabe>
_lv_blend_fill(clip, &fa,
cb02: 8bf2 ldrh r2, [r6, #30]
cb04: 2329 movs r3, #41 ; 0x29
cb06: 5cf3 ldrb r3, [r6, r3]
cb08: 9302 str r3, [sp, #8]
cb0a: 2328 movs r3, #40 ; 0x28
cb0c: 5cf3 ldrb r3, [r6, r3]
cb0e: 9301 str r3, [sp, #4]
cb10: 9000 str r0, [sp, #0]
cb12: 9b05 ldr r3, [sp, #20]
cb14: 0021 movs r1, r4
cb16: 9804 ldr r0, [sp, #16]
cb18: 4f9e ldr r7, [pc, #632] ; (cd94 <lv_draw_rect+0xd24>)
cb1a: 47b8 blx r7
fa.y1++;
cb1c: 8863 ldrh r3, [r4, #2]
cb1e: 3301 adds r3, #1
cb20: 8063 strh r3, [r4, #2]
fa.y2++;
cb22: 88e3 ldrh r3, [r4, #6]
cb24: 3301 adds r3, #1
cb26: 80e3 strh r3, [r4, #6]
for(y = 0; y < h; y++) {
cb28: 3501 adds r5, #1
cb2a: 455d cmp r5, fp
cb2c: da13 bge.n cb56 <lv_draw_rect+0xae6>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
cb2e: 9a07 ldr r2, [sp, #28]
cb30: 990b ldr r1, [sp, #44] ; 0x2c
cb32: 9805 ldr r0, [sp, #20]
cb34: 47c0 blx r8
mask_res = LV_DRAW_MASK_RES_CHANGED;
cb36: 2002 movs r0, #2
if(simple_mode) {
cb38: 4653 mov r3, sl
cb3a: 2b00 cmp r3, #0
cb3c: d1e1 bne.n cb02 <lv_draw_rect+0xa92>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
cb3e: 2302 movs r3, #2
cb40: 5ee2 ldrsh r2, [r4, r3]
cb42: 2300 movs r3, #0
cb44: 5ee1 ldrsh r1, [r4, r3]
cb46: 9b07 ldr r3, [sp, #28]
cb48: 9805 ldr r0, [sp, #20]
cb4a: 4f93 ldr r7, [pc, #588] ; (cd98 <lv_draw_rect+0xd28>)
cb4c: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
cb4e: 2801 cmp r0, #1
cb50: d1d7 bne.n cb02 <lv_draw_rect+0xa92>
cb52: 3001 adds r0, #1
cb54: e7d5 b.n cb02 <lv_draw_rect+0xa92>
cb56: 46b3 mov fp, r6
a.x1 = sh_area.x1 + corner_size;
cb58: a91c add r1, sp, #112 ; 0x70
cb5a: ab16 add r3, sp, #88 ; 0x58
cb5c: 881a ldrh r2, [r3, #0]
cb5e: 9c0a ldr r4, [sp, #40] ; 0x28
cb60: 46a4 mov ip, r4
cb62: 4462 add r2, ip
cb64: 800a strh r2, [r1, #0]
a.x2 = sh_area.x2 - corner_size;
cb66: 889a ldrh r2, [r3, #4]
cb68: 1b12 subs r2, r2, r4
cb6a: 808a strh r2, [r1, #4]
a.y1 = sh_area.y1;
cb6c: 2202 movs r2, #2
cb6e: 5e9b ldrsh r3, [r3, r2]
cb70: 804b strh r3, [r1, #2]
a.y2 = sh_area.y1 + corner_size - 1;
cb72: 3b01 subs r3, #1
cb74: 4463 add r3, ip
cb76: 80cb strh r3, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
cb78: 9a04 ldr r2, [sp, #16]
cb7a: a81e add r0, sp, #120 ; 0x78
cb7c: 4b83 ldr r3, [pc, #524] ; (cd8c <lv_draw_rect+0xd1c>)
cb7e: 4798 blx r3
if(has_com) {
cb80: 2800 cmp r0, #0
cb82: d076 beq.n cc72 <lv_draw_rect+0xc02>
if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1);
cb84: 9b08 ldr r3, [sp, #32]
cb86: 2b00 cmp r3, #0
cb88: d00a beq.n cba0 <lv_draw_rect+0xb30>
cb8a: aa1e add r2, sp, #120 ; 0x78
cb8c: 88d0 ldrh r0, [r2, #6]
cb8e: 464b mov r3, r9
cb90: 885b ldrh r3, [r3, #2]
cb92: 1c19 adds r1, r3, #0
cb94: b21b sxth r3, r3
cb96: b204 sxth r4, r0
cb98: 42a3 cmp r3, r4
cb9a: dd00 ble.n cb9e <lv_draw_rect+0xb2e>
cb9c: 1c01 adds r1, r0, #0
cb9e: 80d1 strh r1, [r2, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
cba0: aa1e add r2, sp, #120 ; 0x78
cba2: 8893 ldrh r3, [r2, #4]
cba4: 3301 adds r3, #1
cba6: 8811 ldrh r1, [r2, #0]
cba8: 1a5b subs r3, r3, r1
cbaa: b21b sxth r3, r3
cbac: 930b str r3, [sp, #44] ; 0x2c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
cbae: 2102 movs r1, #2
cbb0: 5e53 ldrsh r3, [r2, r1]
cbb2: 88d4 ldrh r4, [r2, #6]
cbb4: 3401 adds r4, #1
cbb6: 1ae4 subs r4, r4, r3
cbb8: b224 sxth r4, r4
sh_buf_tmp = sh_buf + corner_size - 1;
cbba: 9909 ldr r1, [sp, #36] ; 0x24
cbbc: 910c str r1, [sp, #48] ; 0x30
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
cbbe: aa1c add r2, sp, #112 ; 0x70
cbc0: 2502 movs r5, #2
cbc2: 5f55 ldrsh r5, [r2, r5]
cbc4: 1b5d subs r5, r3, r5
cbc6: 434d muls r5, r1
sh_buf_tmp = sh_buf + corner_size - 1;
cbc8: 1e4b subs r3, r1, #1
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
cbca: 18ed adds r5, r5, r3
cbcc: 9b0e ldr r3, [sp, #56] ; 0x38
cbce: 469c mov ip, r3
cbd0: 4465 add r5, ip
cbd2: 2300 movs r3, #0
*d8 = *s8;
cbd4: a822 add r0, sp, #136 ; 0x88
cbd6: a91e add r1, sp, #120 ; 0x78
cbd8: 5c5a ldrb r2, [r3, r1]
cbda: 541a strb r2, [r3, r0]
cbdc: 3301 adds r3, #1
while(len) {
cbde: 2b08 cmp r3, #8
cbe0: d1fa bne.n cbd8 <lv_draw_rect+0xb68>
fa.y2 = fa.y1;
cbe2: ab22 add r3, sp, #136 ; 0x88
cbe4: 885a ldrh r2, [r3, #2]
cbe6: 80da strh r2, [r3, #6]
for(y = 0; y < h; y++) {
cbe8: 2c00 cmp r4, #0
cbea: dd42 ble.n cc72 <lv_draw_rect+0xc02>
cbec: 1c63 adds r3, r4, #1
cbee: 4698 mov r8, r3
cbf0: 2601 movs r6, #1
_lv_memset(mask_buf, opa_tmp, w);
cbf2: 4b6a ldr r3, [pc, #424] ; (cd9c <lv_draw_rect+0xd2c>)
cbf4: 469a mov sl, r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
cbf6: ac22 add r4, sp, #136 ; 0x88
cbf8: 9507 str r5, [sp, #28]
cbfa: 465f mov r7, fp
cbfc: e01e b.n cc3c <lv_draw_rect+0xbcc>
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
cbfe: 9b06 ldr r3, [sp, #24]
cc00: 2bff cmp r3, #255 ; 0xff
cc02: d11f bne.n cc44 <lv_draw_rect+0xbd4>
lv_opa_t opa_tmp = sh_buf_tmp[0];
cc04: 9906 ldr r1, [sp, #24]
cc06: e020 b.n cc4a <lv_draw_rect+0xbda>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
cc08: 8bfa ldrh r2, [r7, #30]
cc0a: 2329 movs r3, #41 ; 0x29
cc0c: 5cfb ldrb r3, [r7, r3]
cc0e: 9302 str r3, [sp, #8]
cc10: 23ff movs r3, #255 ; 0xff
cc12: 9301 str r3, [sp, #4]
cc14: 9000 str r0, [sp, #0]
cc16: 9b05 ldr r3, [sp, #20]
cc18: 0021 movs r1, r4
cc1a: 9804 ldr r0, [sp, #16]
cc1c: 4d5d ldr r5, [pc, #372] ; (cd94 <lv_draw_rect+0xd24>)
cc1e: 47a8 blx r5
fa.y1++;
cc20: 8863 ldrh r3, [r4, #2]
cc22: 3301 adds r3, #1
cc24: 8063 strh r3, [r4, #2]
fa.y2++;
cc26: 88e3 ldrh r3, [r4, #6]
cc28: 3301 adds r3, #1
cc2a: 80e3 strh r3, [r4, #6]
sh_buf_tmp += corner_size;
cc2c: 9b0c ldr r3, [sp, #48] ; 0x30
cc2e: 469c mov ip, r3
cc30: 9b07 ldr r3, [sp, #28]
cc32: 4463 add r3, ip
cc34: 9307 str r3, [sp, #28]
cc36: 3601 adds r6, #1
for(y = 0; y < h; y++) {
cc38: 4546 cmp r6, r8
cc3a: d019 beq.n cc70 <lv_draw_rect+0xc00>
lv_opa_t opa_tmp = sh_buf_tmp[0];
cc3c: 9b07 ldr r3, [sp, #28]
cc3e: 7819 ldrb r1, [r3, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
cc40: 29ff cmp r1, #255 ; 0xff
cc42: d0dc beq.n cbfe <lv_draw_rect+0xb8e>
cc44: 9b06 ldr r3, [sp, #24]
cc46: 4359 muls r1, r3
cc48: 0a09 lsrs r1, r1, #8
_lv_memset(mask_buf, opa_tmp, w);
cc4a: 9a0b ldr r2, [sp, #44] ; 0x2c
cc4c: 9805 ldr r0, [sp, #20]
cc4e: 47d0 blx sl
mask_res = LV_DRAW_MASK_RES_CHANGED;
cc50: 2002 movs r0, #2
if(simple_mode) {
cc52: 9b08 ldr r3, [sp, #32]
cc54: 2b00 cmp r3, #0
cc56: d1d7 bne.n cc08 <lv_draw_rect+0xb98>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
cc58: 2302 movs r3, #2
cc5a: 5ee2 ldrsh r2, [r4, r3]
cc5c: 2300 movs r3, #0
cc5e: 5ee1 ldrsh r1, [r4, r3]
cc60: 9b0b ldr r3, [sp, #44] ; 0x2c
cc62: 9805 ldr r0, [sp, #20]
cc64: 4d4c ldr r5, [pc, #304] ; (cd98 <lv_draw_rect+0xd28>)
cc66: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
cc68: 2801 cmp r0, #1
cc6a: d1cd bne.n cc08 <lv_draw_rect+0xb98>
cc6c: 3001 adds r0, #1
cc6e: e7cb b.n cc08 <lv_draw_rect+0xb98>
cc70: 46bb mov fp, r7
a.x1 = sh_area.x1 + corner_size;
cc72: a91c add r1, sp, #112 ; 0x70
cc74: ab16 add r3, sp, #88 ; 0x58
cc76: 881a ldrh r2, [r3, #0]
cc78: 9c0a ldr r4, [sp, #40] ; 0x28
cc7a: 46a4 mov ip, r4
cc7c: 4462 add r2, ip
cc7e: 800a strh r2, [r1, #0]
a.x2 = sh_area.x2 - corner_size;
cc80: 889a ldrh r2, [r3, #4]
cc82: 1b12 subs r2, r2, r4
cc84: 808a strh r2, [r1, #4]
a.y1 = sh_area.y2 - corner_size + 1;
cc86: 2206 movs r2, #6
cc88: 5e9a ldrsh r2, [r3, r2]
cc8a: 1c53 adds r3, r2, #1
cc8c: 1b1b subs r3, r3, r4
cc8e: 804b strh r3, [r1, #2]
a.y2 = sh_area.y2;
cc90: 80ca strh r2, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
cc92: 9a04 ldr r2, [sp, #16]
cc94: a81e add r0, sp, #120 ; 0x78
cc96: 4b3d ldr r3, [pc, #244] ; (cd8c <lv_draw_rect+0xd1c>)
cc98: 4798 blx r3
if(has_com) {
cc9a: 2800 cmp r0, #0
cc9c: d100 bne.n cca0 <lv_draw_rect+0xc30>
cc9e: e081 b.n cda4 <lv_draw_rect+0xd34>
if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2);
cca0: 9b08 ldr r3, [sp, #32]
cca2: 2b00 cmp r3, #0
cca4: d00a beq.n ccbc <lv_draw_rect+0xc4c>
cca6: aa1e add r2, sp, #120 ; 0x78
cca8: 8850 ldrh r0, [r2, #2]
ccaa: 464b mov r3, r9
ccac: 88db ldrh r3, [r3, #6]
ccae: 1c19 adds r1, r3, #0
ccb0: b21b sxth r3, r3
ccb2: b204 sxth r4, r0
ccb4: 42a3 cmp r3, r4
ccb6: da00 bge.n ccba <lv_draw_rect+0xc4a>
ccb8: 1c01 adds r1, r0, #0
ccba: 8051 strh r1, [r2, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ccbc: aa1e add r2, sp, #120 ; 0x78
ccbe: 8893 ldrh r3, [r2, #4]
ccc0: 3301 adds r3, #1
ccc2: 8811 ldrh r1, [r2, #0]
ccc4: 1a5b subs r3, r3, r1
ccc6: b21b sxth r3, r3
ccc8: 930b str r3, [sp, #44] ; 0x2c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ccca: 2106 movs r1, #6
cccc: 5e53 ldrsh r3, [r2, r1]
ccce: 1c5c adds r4, r3, #1
ccd0: 8852 ldrh r2, [r2, #2]
ccd2: 1aa4 subs r4, r4, r2
ccd4: b224 sxth r4, r4
sh_buf_tmp = sh_buf + corner_size - 1;
ccd6: 9909 ldr r1, [sp, #36] ; 0x24
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
ccd8: aa1c add r2, sp, #112 ; 0x70
ccda: 2506 movs r5, #6
ccdc: 5f55 ldrsh r5, [r2, r5]
ccde: 1aed subs r5, r5, r3
cce0: 434d muls r5, r1
sh_buf_tmp = sh_buf + corner_size - 1;
cce2: 1e4b subs r3, r1, #1
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
cce4: 18ed adds r5, r5, r3
cce6: 9b0e ldr r3, [sp, #56] ; 0x38
cce8: 469c mov ip, r3
ccea: 4465 add r5, ip
ccec: 2300 movs r3, #0
*d8 = *s8;
ccee: a822 add r0, sp, #136 ; 0x88
ccf0: a91e add r1, sp, #120 ; 0x78
ccf2: 5c5a ldrb r2, [r3, r1]
ccf4: 541a strb r2, [r3, r0]
ccf6: 3301 adds r3, #1
while(len) {
ccf8: 2b08 cmp r3, #8
ccfa: d1fa bne.n ccf2 <lv_draw_rect+0xc82>
fa.y1 = fa.y2;
ccfc: ab22 add r3, sp, #136 ; 0x88
ccfe: 88da ldrh r2, [r3, #6]
cd00: 805a strh r2, [r3, #2]
for(y = 0; y < h; y++) {
cd02: 2c00 cmp r4, #0
cd04: dd4e ble.n cda4 <lv_draw_rect+0xd34>
cd06: 1c63 adds r3, r4, #1
cd08: 4698 mov r8, r3
cd0a: 2601 movs r6, #1
_lv_memset(mask_buf, opa_tmp, w);
cd0c: 4b23 ldr r3, [pc, #140] ; (cd9c <lv_draw_rect+0xd2c>)
cd0e: 469a mov sl, r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
cd10: ac22 add r4, sp, #136 ; 0x88
cd12: 9507 str r5, [sp, #28]
cd14: 465f mov r7, fp
cd16: 46cb mov fp, r9
cd18: e01e b.n cd58 <lv_draw_rect+0xce8>
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
cd1a: 9b06 ldr r3, [sp, #24]
cd1c: 2bff cmp r3, #255 ; 0xff
cd1e: d11f bne.n cd60 <lv_draw_rect+0xcf0>
lv_opa_t opa_tmp = sh_buf_tmp[0];
cd20: 9906 ldr r1, [sp, #24]
cd22: e020 b.n cd66 <lv_draw_rect+0xcf6>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
cd24: 8bfa ldrh r2, [r7, #30]
cd26: 2329 movs r3, #41 ; 0x29
cd28: 5cfb ldrb r3, [r7, r3]
cd2a: 9302 str r3, [sp, #8]
cd2c: 23ff movs r3, #255 ; 0xff
cd2e: 9301 str r3, [sp, #4]
cd30: 9000 str r0, [sp, #0]
cd32: 9b05 ldr r3, [sp, #20]
cd34: 0021 movs r1, r4
cd36: 9804 ldr r0, [sp, #16]
cd38: 4d16 ldr r5, [pc, #88] ; (cd94 <lv_draw_rect+0xd24>)
cd3a: 47a8 blx r5
fa.y1--;
cd3c: 8863 ldrh r3, [r4, #2]
cd3e: 3b01 subs r3, #1
cd40: 8063 strh r3, [r4, #2]
fa.y2--;
cd42: 88e3 ldrh r3, [r4, #6]
cd44: 3b01 subs r3, #1
cd46: 80e3 strh r3, [r4, #6]
sh_buf_tmp += corner_size;
cd48: 9b09 ldr r3, [sp, #36] ; 0x24
cd4a: 469c mov ip, r3
cd4c: 9b07 ldr r3, [sp, #28]
cd4e: 4463 add r3, ip
cd50: 9307 str r3, [sp, #28]
cd52: 3601 adds r6, #1
for(y = 0; y < h; y++) {
cd54: 45b0 cmp r8, r6
cd56: d023 beq.n cda0 <lv_draw_rect+0xd30>
lv_opa_t opa_tmp = sh_buf_tmp[0];
cd58: 9b07 ldr r3, [sp, #28]
cd5a: 7819 ldrb r1, [r3, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
cd5c: 29ff cmp r1, #255 ; 0xff
cd5e: d0dc beq.n cd1a <lv_draw_rect+0xcaa>
cd60: 9b06 ldr r3, [sp, #24]
cd62: 4359 muls r1, r3
cd64: 0a09 lsrs r1, r1, #8
_lv_memset(mask_buf, opa_tmp, w);
cd66: 9a0b ldr r2, [sp, #44] ; 0x2c
cd68: 9805 ldr r0, [sp, #20]
cd6a: 47d0 blx sl
mask_res = LV_DRAW_MASK_RES_CHANGED;
cd6c: 2002 movs r0, #2
if(simple_mode) {
cd6e: 9b08 ldr r3, [sp, #32]
cd70: 2b00 cmp r3, #0
cd72: d1d7 bne.n cd24 <lv_draw_rect+0xcb4>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
cd74: 2302 movs r3, #2
cd76: 5ee2 ldrsh r2, [r4, r3]
cd78: 2300 movs r3, #0
cd7a: 5ee1 ldrsh r1, [r4, r3]
cd7c: 9b0b ldr r3, [sp, #44] ; 0x2c
cd7e: 9805 ldr r0, [sp, #20]
cd80: 4d05 ldr r5, [pc, #20] ; (cd98 <lv_draw_rect+0xd28>)
cd82: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
cd84: 2801 cmp r0, #1
cd86: d1cd bne.n cd24 <lv_draw_rect+0xcb4>
cd88: 3001 adds r0, #1
cd8a: e7cb b.n cd24 <lv_draw_rect+0xcb4>
cd8c: 0001140b .word 0x0001140b
cd90: 00012545 .word 0x00012545
cd94: 00006fed .word 0x00006fed
cd98: 0000bad1 .word 0x0000bad1
cd9c: 000128d5 .word 0x000128d5
cda0: 46d9 mov r9, fp
cda2: 46bb mov fp, r7
a.x1 = sh_area.x1 + corner_size;
cda4: a91c add r1, sp, #112 ; 0x70
cda6: ab16 add r3, sp, #88 ; 0x58
cda8: 881a ldrh r2, [r3, #0]
cdaa: 9c0a ldr r4, [sp, #40] ; 0x28
cdac: 46a4 mov ip, r4
cdae: 4462 add r2, ip
cdb0: 800a strh r2, [r1, #0]
a.x2 = sh_area.x2 - corner_size;
cdb2: 889a ldrh r2, [r3, #4]
cdb4: 1b12 subs r2, r2, r4
cdb6: 808a strh r2, [r1, #4]
a.y1 = sh_area.y1 + corner_size;
cdb8: 885a ldrh r2, [r3, #2]
cdba: 4462 add r2, ip
cdbc: 804a strh r2, [r1, #2]
a.y2 = sh_area.y2 - corner_size;
cdbe: 88db ldrh r3, [r3, #6]
cdc0: 1b1b subs r3, r3, r4
cdc2: 80cb strh r3, [r1, #6]
has_com = _lv_area_intersect(&ca, &a, clip);
cdc4: 9a04 ldr r2, [sp, #16]
cdc6: a81e add r0, sp, #120 ; 0x78
cdc8: 4bc4 ldr r3, [pc, #784] ; (d0dc <lv_draw_rect+0x106c>)
cdca: 4798 blx r3
if(has_com && simple_mode == false) {
cdcc: 2800 cmp r0, #0
cdce: d04c beq.n ce6a <lv_draw_rect+0xdfa>
cdd0: 9b08 ldr r3, [sp, #32]
cdd2: 2b00 cmp r3, #0
cdd4: d149 bne.n ce6a <lv_draw_rect+0xdfa>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
cdd6: aa1e add r2, sp, #120 ; 0x78
cdd8: 8893 ldrh r3, [r2, #4]
cdda: 3301 adds r3, #1
cddc: 8811 ldrh r1, [r2, #0]
cdde: 1a5b subs r3, r3, r1
cde0: b21b sxth r3, r3
cde2: 9306 str r3, [sp, #24]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
cde4: 88d7 ldrh r7, [r2, #6]
cde6: 3701 adds r7, #1
cde8: 8853 ldrh r3, [r2, #2]
cdea: 1aff subs r7, r7, r3
cdec: b23f sxth r7, r7
cdee: 2300 movs r3, #0
*d8 = *s8;
cdf0: a822 add r0, sp, #136 ; 0x88
cdf2: 0011 movs r1, r2
cdf4: 5c5a ldrb r2, [r3, r1]
cdf6: 541a strb r2, [r3, r0]
cdf8: 3301 adds r3, #1
while(len) {
cdfa: 2b08 cmp r3, #8
cdfc: d1fa bne.n cdf4 <lv_draw_rect+0xd84>
fa.y2 = fa.y1;
cdfe: ab22 add r3, sp, #136 ; 0x88
ce00: 885a ldrh r2, [r3, #2]
ce02: 80da strh r2, [r3, #6]
for(y = 0; y < h; y++) {
ce04: 2f00 cmp r7, #0
ce06: dd30 ble.n ce6a <lv_draw_rect+0xdfa>
ce08: 3701 adds r7, #1
ce0a: 2501 movs r5, #1
_lv_memset(mask_buf, dsc->shadow_opa, w);
ce0c: 4bb4 ldr r3, [pc, #720] ; (d0e0 <lv_draw_rect+0x1070>)
ce0e: 469a mov sl, r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
ce10: ac22 add r4, sp, #136 ; 0x88
ce12: 4bb4 ldr r3, [pc, #720] ; (d0e4 <lv_draw_rect+0x1074>)
ce14: 4698 mov r8, r3
ce16: 465e mov r6, fp
ce18: 46bb mov fp, r7
ce1a: e014 b.n ce46 <lv_draw_rect+0xdd6>
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
ce1c: 8bf2 ldrh r2, [r6, #30]
ce1e: 2329 movs r3, #41 ; 0x29
ce20: 5cf3 ldrb r3, [r6, r3]
ce22: 9302 str r3, [sp, #8]
ce24: 23ff movs r3, #255 ; 0xff
ce26: 9301 str r3, [sp, #4]
ce28: 9000 str r0, [sp, #0]
ce2a: 9b05 ldr r3, [sp, #20]
ce2c: 0021 movs r1, r4
ce2e: 9804 ldr r0, [sp, #16]
ce30: 4fad ldr r7, [pc, #692] ; (d0e8 <lv_draw_rect+0x1078>)
ce32: 47b8 blx r7
fa.y1++;
ce34: 8863 ldrh r3, [r4, #2]
ce36: 3301 adds r3, #1
ce38: 8063 strh r3, [r4, #2]
fa.y2++;
ce3a: 88e3 ldrh r3, [r4, #6]
ce3c: 3301 adds r3, #1
ce3e: 80e3 strh r3, [r4, #6]
ce40: 3501 adds r5, #1
for(y = 0; y < h; y++) {
ce42: 45ab cmp fp, r5
ce44: d010 beq.n ce68 <lv_draw_rect+0xdf8>
_lv_memset(mask_buf, dsc->shadow_opa, w);
ce46: 2328 movs r3, #40 ; 0x28
ce48: 5cf1 ldrb r1, [r6, r3]
ce4a: 9a06 ldr r2, [sp, #24]
ce4c: 9f05 ldr r7, [sp, #20]
ce4e: 0038 movs r0, r7
ce50: 47d0 blx sl
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
ce52: 2102 movs r1, #2
ce54: 5e62 ldrsh r2, [r4, r1]
ce56: 2000 movs r0, #0
ce58: 5e21 ldrsh r1, [r4, r0]
ce5a: 9b06 ldr r3, [sp, #24]
ce5c: 0038 movs r0, r7
ce5e: 47c0 blx r8
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
ce60: 2801 cmp r0, #1
ce62: d1db bne.n ce1c <lv_draw_rect+0xdac>
ce64: 3001 adds r0, #1
ce66: e7d9 b.n ce1c <lv_draw_rect+0xdac>
ce68: 46b3 mov fp, r6
lv_draw_mask_remove_id(mask_rout_id);
ce6a: 980f ldr r0, [sp, #60] ; 0x3c
ce6c: 4b9f ldr r3, [pc, #636] ; (d0ec <lv_draw_rect+0x107c>)
ce6e: 4798 blx r3
_lv_mem_buf_release(mask_buf);
ce70: 9805 ldr r0, [sp, #20]
ce72: 4c9f ldr r4, [pc, #636] ; (d0f0 <lv_draw_rect+0x1080>)
ce74: 47a0 blx r4
_lv_mem_buf_release(sh_buf);
ce76: 980e ldr r0, [sp, #56] ; 0x38
ce78: 47a0 blx r4
if(dsc->bg_opa <= LV_OPA_MIN) return;
ce7a: 465b mov r3, fp
ce7c: 7b1b ldrb r3, [r3, #12]
ce7e: 469a mov sl, r3
ce80: 2b05 cmp r3, #5
ce82: d93f bls.n cf04 <lv_draw_rect+0xe94>
ce84: 2300 movs r3, #0
*d8 = *s8;
ce86: a91a add r1, sp, #104 ; 0x68
ce88: 4648 mov r0, r9
ce8a: 5cc2 ldrb r2, [r0, r3]
ce8c: 545a strb r2, [r3, r1]
ce8e: 3301 adds r3, #1
while(len) {
ce90: 2b08 cmp r3, #8
ce92: d1fa bne.n ce8a <lv_draw_rect+0xe1a>
ce94: 4681 mov r9, r0
if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) {
ce96: 465b mov r3, fp
ce98: 2210 movs r2, #16
ce9a: 5e9b ldrsh r3, [r3, r2]
ce9c: 2b01 cmp r3, #1
ce9e: dd1f ble.n cee0 <lv_draw_rect+0xe70>
cea0: 465b mov r3, fp
cea2: 7d1b ldrb r3, [r3, #20]
cea4: 2bf9 cmp r3, #249 ; 0xf9
cea6: d91b bls.n cee0 <lv_draw_rect+0xe70>
cea8: 465b mov r3, fp
ceaa: 2200 movs r2, #0
ceac: 5e9b ldrsh r3, [r3, r2]
ceae: 2b00 cmp r3, #0
ceb0: d016 beq.n cee0 <lv_draw_rect+0xe70>
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
ceb2: 465b mov r3, fp
ceb4: 8a58 ldrh r0, [r3, #18]
ceb6: ab1a add r3, sp, #104 ; 0x68
ceb8: 0881 lsrs r1, r0, #2
ceba: 2201 movs r2, #1
cebc: 4011 ands r1, r2
cebe: 881c ldrh r4, [r3, #0]
cec0: 1909 adds r1, r1, r4
cec2: 8019 strh r1, [r3, #0]
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
cec4: 0841 lsrs r1, r0, #1
cec6: 4011 ands r1, r2
cec8: 885c ldrh r4, [r3, #2]
ceca: 1909 adds r1, r1, r4
cecc: 8059 strh r1, [r3, #2]
coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0;
cece: 08c4 lsrs r4, r0, #3
ced0: 4014 ands r4, r2
ced2: 8899 ldrh r1, [r3, #4]
ced4: 1b09 subs r1, r1, r4
ced6: 8099 strh r1, [r3, #4]
coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0;
ced8: 4002 ands r2, r0
ceda: 88d9 ldrh r1, [r3, #6]
cedc: 1a8a subs r2, r1, r2
cede: 80da strh r2, [r3, #6]
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
cee0: 4653 mov r3, sl
cee2: 2bfa cmp r3, #250 ; 0xfa
cee4: d901 bls.n ceea <lv_draw_rect+0xe7a>
cee6: 23ff movs r3, #255 ; 0xff
cee8: 469a mov sl, r3
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
ceea: 4b82 ldr r3, [pc, #520] ; (d0f4 <lv_draw_rect+0x1084>)
ceec: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
ceee: 4b82 ldr r3, [pc, #520] ; (d0f8 <lv_draw_rect+0x1088>)
cef0: 4798 blx r3
cef2: 0007 movs r7, r0
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
cef4: 9a04 ldr r2, [sp, #16]
cef6: a91a add r1, sp, #104 ; 0x68
cef8: a81c add r0, sp, #112 ; 0x70
cefa: 4b78 ldr r3, [pc, #480] ; (d0dc <lv_draw_rect+0x106c>)
cefc: 4798 blx r3
if(is_common == false) return;
cefe: 2800 cmp r0, #0
cf00: d000 beq.n cf04 <lv_draw_rect+0xe94>
cf02: e09d b.n d040 <lv_draw_rect+0xfd0>
_lv_mem_buf_release(mask_buf);
}
static void draw_pattern(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc)
{
if(dsc->pattern_image == NULL) return;
cf04: 465b mov r3, fp
cf06: 6ad8 ldr r0, [r3, #44] ; 0x2c
cf08: 2800 cmp r0, #0
cf0a: d006 beq.n cf1a <lv_draw_rect+0xeaa>
if(dsc->pattern_opa <= LV_OPA_MIN) return;
cf0c: 2336 movs r3, #54 ; 0x36
cf0e: 465a mov r2, fp
cf10: 5cd3 ldrb r3, [r2, r3]
cf12: 2b05 cmp r3, #5
cf14: d901 bls.n cf1a <lv_draw_rect+0xeaa>
cf16: f000 fbd7 bl d6c8 <lv_draw_rect+0x1658>
if(dsc->border_opa <= LV_OPA_MIN) return;
cf1a: 465b mov r3, fp
cf1c: 7d1e ldrb r6, [r3, #20]
cf1e: 2e05 cmp r6, #5
cf20: d919 bls.n cf56 <lv_draw_rect+0xee6>
if(dsc->border_width == 0) return;
cf22: 2210 movs r2, #16
cf24: 5e9b ldrsh r3, [r3, r2]
cf26: 2b00 cmp r3, #0
cf28: d015 beq.n cf56 <lv_draw_rect+0xee6>
if(dsc->border_side == LV_BORDER_SIDE_NONE) return;
cf2a: 465b mov r3, fp
cf2c: 2212 movs r2, #18
cf2e: 5e9b ldrsh r3, [r3, r2]
cf30: 2b00 cmp r3, #0
cf32: d010 beq.n cf56 <lv_draw_rect+0xee6>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
cf34: 2efa cmp r6, #250 ; 0xfa
cf36: d900 bls.n cf3a <lv_draw_rect+0xeca>
cf38: 26ff movs r6, #255 ; 0xff
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
cf3a: 4b6e ldr r3, [pc, #440] ; (d0f4 <lv_draw_rect+0x1084>)
cf3c: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
cf3e: 4b6e ldr r3, [pc, #440] ; (d0f8 <lv_draw_rect+0x1088>)
cf40: 4798 blx r3
cf42: 0007 movs r7, r0
is_common = _lv_area_intersect(&draw_area, coords, clip);
cf44: 9a04 ldr r2, [sp, #16]
cf46: 4649 mov r1, r9
cf48: a818 add r0, sp, #96 ; 0x60
cf4a: 4b64 ldr r3, [pc, #400] ; (d0dc <lv_draw_rect+0x106c>)
cf4c: 4798 blx r3
if(is_common == false) return;
cf4e: 2800 cmp r0, #0
cf50: d001 beq.n cf56 <lv_draw_rect+0xee6>
cf52: f000 fd41 bl d9d8 <lv_draw_rect+0x1968>
}
static void draw_value(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc)
{
if(dsc->value_str == NULL) return;
cf56: 465b mov r3, fp
cf58: 6bd9 ldr r1, [r3, #60] ; 0x3c
cf5a: 2900 cmp r1, #0
cf5c: d006 beq.n cf6c <lv_draw_rect+0xefc>
if(dsc->value_opa <= LV_OPA_MIN) return;
cf5e: 2344 movs r3, #68 ; 0x44
cf60: 465a mov r2, fp
cf62: 5cd3 ldrb r3, [r2, r3]
cf64: 2b05 cmp r3, #5
cf66: d901 bls.n cf6c <lv_draw_rect+0xefc>
cf68: f001 f856 bl e018 <lv_draw_rect+0x1fa8>
if(dsc->outline_opa <= LV_OPA_MIN) return;
cf6c: 465b mov r3, fp
cf6e: 7f1b ldrb r3, [r3, #28]
cf70: 4698 mov r8, r3
cf72: 2b05 cmp r3, #5
cf74: d95d bls.n d032 <lv_draw_rect+0xfc2>
if(dsc->outline_width == 0) return;
cf76: 465b mov r3, fp
cf78: 2218 movs r2, #24
cf7a: 5e9b ldrsh r3, [r3, r2]
cf7c: 2b00 cmp r3, #0
cf7e: d058 beq.n d032 <lv_draw_rect+0xfc2>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
cf80: 4643 mov r3, r8
cf82: 2bfa cmp r3, #250 ; 0xfa
cf84: d901 bls.n cf8a <lv_draw_rect+0xf1a>
cf86: 23ff movs r3, #255 ; 0xff
cf88: 4698 mov r8, r3
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
cf8a: 4b5c ldr r3, [pc, #368] ; (d0fc <lv_draw_rect+0x108c>)
cf8c: 4798 blx r3
cf8e: 900a str r0, [sp, #40] ; 0x28
cf90: 2300 movs r3, #0
*d8 = *s8;
cf92: a916 add r1, sp, #88 ; 0x58
cf94: 4648 mov r0, r9
cf96: 5cc2 ldrb r2, [r0, r3]
cf98: 545a strb r2, [r3, r1]
cf9a: 3301 adds r3, #1
while(len) {
cf9c: 2b08 cmp r3, #8
cf9e: d1fa bne.n cf96 <lv_draw_rect+0xf26>
area_inner.x1 -= dsc->outline_pad;
cfa0: 465b mov r3, fp
cfa2: 8b5d ldrh r5, [r3, #26]
cfa4: ab16 add r3, sp, #88 ; 0x58
cfa6: 881a ldrh r2, [r3, #0]
cfa8: 1b52 subs r2, r2, r5
cfaa: b292 uxth r2, r2
cfac: 4692 mov sl, r2
cfae: 801a strh r2, [r3, #0]
area_inner.y1 -= dsc->outline_pad;
cfb0: 885a ldrh r2, [r3, #2]
cfb2: 1b52 subs r2, r2, r5
cfb4: b292 uxth r2, r2
cfb6: 9207 str r2, [sp, #28]
cfb8: 805a strh r2, [r3, #2]
area_inner.x2 += dsc->outline_pad;
cfba: 889f ldrh r7, [r3, #4]
cfbc: 19ef adds r7, r5, r7
cfbe: b2bf uxth r7, r7
cfc0: 809f strh r7, [r3, #4]
area_inner.y2 += dsc->outline_pad;
cfc2: 88da ldrh r2, [r3, #6]
cfc4: 18ad adds r5, r5, r2
cfc6: b2ad uxth r5, r5
cfc8: 80dd strh r5, [r3, #6]
int32_t rin = dsc->radius;
cfca: 465b mov r3, fp
cfcc: 2200 movs r2, #0
cfce: 5e9b ldrsh r3, [r3, r2]
cfd0: 9306 str r3, [sp, #24]
int32_t rout = rin + dsc->outline_width;
cfd2: 465b mov r3, fp
cfd4: 2218 movs r2, #24
cfd6: 5e9b ldrsh r3, [r3, r2]
cfd8: 9305 str r3, [sp, #20]
cfda: 2300 movs r3, #0
*d8 = *s8;
cfdc: a818 add r0, sp, #96 ; 0x60
cfde: a916 add r1, sp, #88 ; 0x58
cfe0: 5c5a ldrb r2, [r3, r1]
cfe2: 541a strb r2, [r3, r0]
cfe4: 3301 adds r3, #1
while(len) {
cfe6: 2b08 cmp r3, #8
cfe8: d1fa bne.n cfe0 <lv_draw_rect+0xf70>
area_outer.x1 -= dsc->outline_width;
cfea: 466b mov r3, sp
cfec: 8a9c ldrh r4, [r3, #20]
cfee: ae18 add r6, sp, #96 ; 0x60
cff0: 8833 ldrh r3, [r6, #0]
cff2: 1b1b subs r3, r3, r4
cff4: b29b uxth r3, r3
cff6: 9308 str r3, [sp, #32]
cff8: 8033 strh r3, [r6, #0]
area_outer.x2 += dsc->outline_width;
cffa: 88b3 ldrh r3, [r6, #4]
cffc: 18e3 adds r3, r4, r3
cffe: b29b uxth r3, r3
d000: 9309 str r3, [sp, #36] ; 0x24
d002: 80b3 strh r3, [r6, #4]
area_outer.y1 -= dsc->outline_width;
d004: 8873 ldrh r3, [r6, #2]
d006: 1b1b subs r3, r3, r4
d008: b29b uxth r3, r3
d00a: 930b str r3, [sp, #44] ; 0x2c
d00c: 8073 strh r3, [r6, #2]
area_outer.y2 += dsc->outline_width;
d00e: 88f3 ldrh r3, [r6, #6]
d010: 18e4 adds r4, r4, r3
d012: b2a4 uxth r4, r4
d014: 80f4 strh r4, [r6, #6]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
d016: 4b37 ldr r3, [pc, #220] ; (d0f4 <lv_draw_rect+0x1084>)
d018: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
d01a: 4b37 ldr r3, [pc, #220] ; (d0f8 <lv_draw_rect+0x1088>)
d01c: 4798 blx r3
d01e: 4681 mov r9, r0
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
d020: 9a04 ldr r2, [sp, #16]
d022: 0031 movs r1, r6
d024: a81a add r0, sp, #104 ; 0x68
d026: 4b2d ldr r3, [pc, #180] ; (d0dc <lv_draw_rect+0x106c>)
d028: 4798 blx r3
if(is_common == false) return;
d02a: 2800 cmp r0, #0
d02c: d001 beq.n d032 <lv_draw_rect+0xfc2>
d02e: f001 f84f bl e0d0 <lv_draw_rect+0x2060>
}
d032: b031 add sp, #196 ; 0xc4
d034: bc3c pop {r2, r3, r4, r5}
d036: 4690 mov r8, r2
d038: 4699 mov r9, r3
d03a: 46a2 mov sl, r4
d03c: 46ab mov fp, r5
d03e: bdf0 pop {r4, r5, r6, r7, pc}
draw_area.x1 -= disp_area->x1;
d040: 8a38 ldrh r0, [r7, #16]
d042: aa1c add r2, sp, #112 ; 0x70
d044: 8811 ldrh r1, [r2, #0]
d046: 1a09 subs r1, r1, r0
d048: b289 uxth r1, r1
d04a: 8011 strh r1, [r2, #0]
draw_area.y1 -= disp_area->y1;
d04c: 8a7d ldrh r5, [r7, #18]
d04e: 8854 ldrh r4, [r2, #2]
d050: 1b64 subs r4, r4, r5
d052: 8054 strh r4, [r2, #2]
draw_area.x2 -= disp_area->x1;
d054: 8893 ldrh r3, [r2, #4]
d056: 1a1b subs r3, r3, r0
d058: b29b uxth r3, r3
d05a: 8093 strh r3, [r2, #4]
draw_area.y2 -= disp_area->y1;
d05c: 88d0 ldrh r0, [r2, #6]
d05e: 1b40 subs r0, r0, r5
d060: 80d0 strh r0, [r2, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
d062: 3301 adds r3, #1
d064: 1a5b subs r3, r3, r1
d066: b21b sxth r3, r3
d068: 930a str r3, [sp, #40] ; 0x28
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
d06a: 930b str r3, [sp, #44] ; 0x2c
d06c: 0018 movs r0, r3
d06e: 4b24 ldr r3, [pc, #144] ; (d100 <lv_draw_rect+0x1090>)
d070: 4798 blx r3
d072: 9006 str r0, [sp, #24]
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
d074: 4b21 ldr r3, [pc, #132] ; (d0fc <lv_draw_rect+0x108c>)
d076: 4798 blx r3
d078: b283 uxth r3, r0
d07a: 930c str r3, [sp, #48] ; 0x30
if(other_mask_cnt) simple_mode = false;
d07c: 2200 movs r2, #0
d07e: 9207 str r2, [sp, #28]
d080: 2b00 cmp r3, #0
d082: d106 bne.n d092 <lv_draw_rect+0x1022>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false;
d084: 465b mov r3, fp
d086: 799b ldrb r3, [r3, #6]
d088: 3b02 subs r3, #2
d08a: 1e5a subs r2, r3, #1
d08c: 4193 sbcs r3, r2
d08e: b2db uxtb r3, r3
d090: 9307 str r3, [sp, #28]
d092: a91a add r1, sp, #104 ; 0x68
d094: 888c ldrh r4, [r1, #4]
d096: 3401 adds r4, #1
d098: 880b ldrh r3, [r1, #0]
d09a: 1ae4 subs r4, r4, r3
d09c: b224 sxth r4, r4
int32_t coords_w = lv_area_get_width(&coords_bg);
d09e: 0026 movs r6, r4
int32_t rout = dsc->radius;
d0a0: 465b mov r3, fp
d0a2: 2200 movs r2, #0
d0a4: 5e9a ldrsh r2, [r3, r2]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
d0a6: 88cb ldrh r3, [r1, #6]
d0a8: 3301 adds r3, #1
d0aa: 8849 ldrh r1, [r1, #2]
d0ac: 1a5b subs r3, r3, r1
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
d0ae: b21b sxth r3, r3
d0b0: 42a3 cmp r3, r4
d0b2: dd00 ble.n d0b6 <lv_draw_rect+0x1046>
d0b4: 0023 movs r3, r4
if(rout > short_side >> 1) rout = short_side >> 1;
d0b6: 105b asrs r3, r3, #1
d0b8: 4698 mov r8, r3
d0ba: 4293 cmp r3, r2
d0bc: dd00 ble.n d0c0 <lv_draw_rect+0x1050>
d0be: 4690 mov r8, r2
if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) {
d0c0: 9b07 ldr r3, [sp, #28]
d0c2: 2b00 cmp r3, #0
d0c4: d02f beq.n d126 <lv_draw_rect+0x10b6>
d0c6: 4643 mov r3, r8
d0c8: 2b00 cmp r3, #0
d0ca: d12c bne.n d126 <lv_draw_rect+0x10b6>
d0cc: 465b mov r3, fp
d0ce: 799b ldrb r3, [r3, #6]
d0d0: 2b00 cmp r3, #0
d0d2: d017 beq.n d104 <lv_draw_rect+0x1094>
int16_t mask_rout_id = LV_MASK_ID_INV;
d0d4: 2301 movs r3, #1
d0d6: 425b negs r3, r3
d0d8: 930f str r3, [sp, #60] ; 0x3c
d0da: e033 b.n d144 <lv_draw_rect+0x10d4>
d0dc: 0001140b .word 0x0001140b
d0e0: 000128d5 .word 0x000128d5
d0e4: 0000bad1 .word 0x0000bad1
d0e8: 00006fed .word 0x00006fed
d0ec: 0000bb25 .word 0x0000bb25
d0f0: 00012465 .word 0x00012465
d0f4: 00005591 .word 0x00005591
d0f8: 00010e75 .word 0x00010e75
d0fc: 0000bb6d .word 0x0000bb6d
d100: 000127a1 .word 0x000127a1
_lv_blend_fill(clip, &coords_bg,
d104: 465b mov r3, fp
d106: 885a ldrh r2, [r3, #2]
d108: 7b5b ldrb r3, [r3, #13]
d10a: 9302 str r3, [sp, #8]
d10c: 4653 mov r3, sl
d10e: 9301 str r3, [sp, #4]
d110: 2301 movs r3, #1
d112: 9300 str r3, [sp, #0]
d114: 2300 movs r3, #0
d116: a91a add r1, sp, #104 ; 0x68
d118: 9804 ldr r0, [sp, #16]
d11a: 4cae ldr r4, [pc, #696] ; (d3d4 <lv_draw_rect+0x1364>)
d11c: 47a0 blx r4
int16_t mask_rout_id = LV_MASK_ID_INV;
d11e: 2301 movs r3, #1
d120: 425b negs r3, r3
d122: 930f str r3, [sp, #60] ; 0x3c
d124: e277 b.n d616 <lv_draw_rect+0x15a6>
if(rout > 0) {
d126: 4643 mov r3, r8
d128: 2b00 cmp r3, #0
d12a: dd37 ble.n d19c <lv_draw_rect+0x112c>
lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false);
d12c: 4643 mov r3, r8
d12e: b21a sxth r2, r3
d130: 2300 movs r3, #0
d132: a91a add r1, sp, #104 ; 0x68
d134: a829 add r0, sp, #164 ; 0xa4
d136: 4da8 ldr r5, [pc, #672] ; (d3d8 <lv_draw_rect+0x1368>)
d138: 47a8 blx r5
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
d13a: 2100 movs r1, #0
d13c: a829 add r0, sp, #164 ; 0xa4
d13e: 4ba7 ldr r3, [pc, #668] ; (d3dc <lv_draw_rect+0x136c>)
d140: 4798 blx r3
d142: 900f str r0, [sp, #60] ; 0x3c
lv_color_t grad_color = dsc->bg_color;
d144: 465b mov r3, fp
d146: 885b ldrh r3, [r3, #2]
d148: 466a mov r2, sp
d14a: 8413 strh r3, [r2, #32]
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
d14c: 465b mov r3, fp
d14e: 799b ldrb r3, [r3, #6]
lv_color_t * grad_map = NULL;
d150: 2200 movs r2, #0
d152: 920d str r2, [sp, #52] ; 0x34
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
d154: 2b02 cmp r3, #2
d156: d025 beq.n d1a4 <lv_draw_rect+0x1134>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
d158: ab1a add r3, sp, #104 ; 0x68
d15a: 2204 movs r2, #4
d15c: 5e99 ldrsh r1, [r3, r2]
d15e: 2000 movs r0, #0
d160: 5e18 ldrsh r0, [r3, r0]
d162: 1c4b adds r3, r1, #1
d164: 1a1b subs r3, r3, r0
if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true;
d166: b21b sxth r3, r3
d168: 4642 mov r2, r8
d16a: 0052 lsls r2, r2, #1
d16c: 1a9b subs r3, r3, r2
d16e: 9309 str r3, [sp, #36] ; 0x24
fill_area.x1 = coords_bg.x1;
d170: aa1e add r2, sp, #120 ; 0x78
d172: 8010 strh r0, [r2, #0]
fill_area.x2 = coords_bg.x2;
d174: 8091 strh r1, [r2, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
d176: a91c add r1, sp, #112 ; 0x70
d178: 2302 movs r3, #2
d17a: 5ecd ldrsh r5, [r1, r3]
d17c: 8a7b ldrh r3, [r7, #18]
d17e: 195b adds r3, r3, r5
d180: b21b sxth r3, r3
d182: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
d184: 80d3 strh r3, [r2, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
d186: 2206 movs r2, #6
d188: 5e8b ldrsh r3, [r1, r2]
d18a: 429d cmp r5, r3
d18c: dd00 ble.n d190 <lv_draw_rect+0x1120>
d18e: e232 b.n d5f6 <lv_draw_rect+0x1586>
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
d190: 464b mov r3, r9
d192: 9310 str r3, [sp, #64] ; 0x40
d194: 46b9 mov r9, r7
d196: 465e mov r6, fp
d198: 46d3 mov fp, sl
d19a: e0e8 b.n d36e <lv_draw_rect+0x12fe>
int16_t mask_rout_id = LV_MASK_ID_INV;
d19c: 2301 movs r3, #1
d19e: 425b negs r3, r3
d1a0: 930f str r3, [sp, #60] ; 0x3c
d1a2: e7cf b.n d144 <lv_draw_rect+0x10d4>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
d1a4: 465b mov r3, fp
d1a6: 885a ldrh r2, [r3, #2]
d1a8: 889b ldrh r3, [r3, #4]
d1aa: 429a cmp r2, r3
d1ac: d0d4 beq.n d158 <lv_draw_rect+0x10e8>
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
d1ae: 0060 lsls r0, r4, #1
d1b0: 4b8b ldr r3, [pc, #556] ; (d3e0 <lv_draw_rect+0x1370>)
d1b2: 4798 blx r3
d1b4: 900d str r0, [sp, #52] ; 0x34
for(i = 0; i < coords_w; i++) {
d1b6: 2e00 cmp r6, #0
d1b8: ddce ble.n d158 <lv_draw_rect+0x10e8>
d1ba: 2500 movs r5, #0
grad_map[i] = grad_get(dsc, coords_w, i);
d1bc: 4642 mov r2, r8
d1be: 9209 str r2, [sp, #36] ; 0x24
d1c0: 46b0 mov r8, r6
d1c2: 002e movs r6, r5
d1c4: 465d mov r5, fp
d1c6: 46bb mov fp, r7
d1c8: 9005 str r0, [sp, #20]
d1ca: e01e b.n d20a <lv_draw_rect+0x119a>
if(i <= min) return dsc->bg_color;
d1cc: 78a9 ldrb r1, [r5, #2]
d1ce: 06c9 lsls r1, r1, #27
d1d0: 0ec8 lsrs r0, r1, #27
d1d2: 886b ldrh r3, [r5, #2]
d1d4: 055b lsls r3, r3, #21
d1d6: 0e9b lsrs r3, r3, #26
d1d8: 78ea ldrb r2, [r5, #3]
d1da: 08d2 lsrs r2, r2, #3
grad_map[i] = grad_get(dsc, coords_w, i);
d1dc: 7821 ldrb r1, [r4, #0]
d1de: 271f movs r7, #31
d1e0: 43b9 bics r1, r7
d1e2: 4301 orrs r1, r0
d1e4: 7021 strb r1, [r4, #0]
d1e6: 0159 lsls r1, r3, #5
d1e8: 8823 ldrh r3, [r4, #0]
d1ea: 487e ldr r0, [pc, #504] ; (d3e4 <lv_draw_rect+0x1374>)
d1ec: 4003 ands r3, r0
d1ee: 430b orrs r3, r1
d1f0: 8023 strh r3, [r4, #0]
d1f2: 00d2 lsls r2, r2, #3
d1f4: 0a1b lsrs r3, r3, #8
d1f6: 2107 movs r1, #7
d1f8: 400b ands r3, r1
d1fa: 4313 orrs r3, r2
d1fc: 7063 strb r3, [r4, #1]
for(i = 0; i < coords_w; i++) {
d1fe: 3601 adds r6, #1
d200: 9b05 ldr r3, [sp, #20]
d202: 3302 adds r3, #2
d204: 9305 str r3, [sp, #20]
d206: 45b0 cmp r8, r6
d208: dd58 ble.n d2bc <lv_draw_rect+0x124c>
grad_map[i] = grad_get(dsc, coords_w, i);
d20a: 9c05 ldr r4, [sp, #20]
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
d20c: 2308 movs r3, #8
d20e: 5ee9 ldrsh r1, [r5, r3]
d210: 4640 mov r0, r8
d212: 4348 muls r0, r1
d214: 1200 asrs r0, r0, #8
if(i <= min) return dsc->bg_color;
d216: b232 sxth r2, r6
d218: 4290 cmp r0, r2
d21a: dad7 bge.n d1cc <lv_draw_rect+0x115c>
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
d21c: 270a movs r7, #10
d21e: 5feb ldrsh r3, [r5, r7]
d220: 4647 mov r7, r8
d222: 435f muls r7, r3
d224: 123f asrs r7, r7, #8
if(i >= max) return dsc->bg_grad_color;
d226: 42ba cmp r2, r7
d228: da3f bge.n d2aa <lv_draw_rect+0x123a>
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
d22a: 1a59 subs r1, r3, r1
d = (s * d) >> 8;
d22c: 4643 mov r3, r8
d22e: 4359 muls r1, r3
i -= min;
d230: 1a30 subs r0, r6, r0
lv_opa_t mix = (i * 255) / d;
d232: b200 sxth r0, r0
d234: 0203 lsls r3, r0, #8
d236: 1a18 subs r0, r3, r0
d = (s * d) >> 8;
d238: 1209 asrs r1, r1, #8
lv_opa_t mix = (i * 255) / d;
d23a: 4b6b ldr r3, [pc, #428] ; (d3e8 <lv_draw_rect+0x1378>)
d23c: 4798 blx r3
d23e: 23ff movs r3, #255 ; 0xff
d240: 4018 ands r0, r3
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
d242: 1a19 subs r1, r3, r0
d244: 796a ldrb r2, [r5, #5]
d246: 08d2 lsrs r2, r2, #3
d248: 4342 muls r2, r0
d24a: 78eb ldrb r3, [r5, #3]
d24c: 08db lsrs r3, r3, #3
d24e: 434b muls r3, r1
d250: 18d3 adds r3, r2, r3
d252: 021a lsls r2, r3, #8
d254: 18d2 adds r2, r2, r3
d256: 01d2 lsls r2, r2, #7
d258: 18d2 adds r2, r2, r3
d25a: 0dd2 lsrs r2, r2, #23
d25c: 231f movs r3, #31
d25e: 401a ands r2, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
d260: 88ab ldrh r3, [r5, #4]
d262: 055b lsls r3, r3, #21
d264: 0e9b lsrs r3, r3, #26
d266: 4343 muls r3, r0
d268: 469c mov ip, r3
d26a: 886b ldrh r3, [r5, #2]
d26c: 055b lsls r3, r3, #21
d26e: 0e9b lsrs r3, r3, #26
d270: 434b muls r3, r1
d272: 4463 add r3, ip
d274: 021f lsls r7, r3, #8
d276: 46bc mov ip, r7
d278: 449c add ip, r3
d27a: 4667 mov r7, ip
d27c: 01ff lsls r7, r7, #7
d27e: 46bc mov ip, r7
d280: 4463 add r3, ip
d282: 0ddb lsrs r3, r3, #23
d284: 273f movs r7, #63 ; 0x3f
d286: 403b ands r3, r7
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
d288: 792f ldrb r7, [r5, #4]
d28a: 06ff lsls r7, r7, #27
d28c: 0eff lsrs r7, r7, #27
d28e: 4378 muls r0, r7
d290: 78af ldrb r7, [r5, #2]
d292: 06ff lsls r7, r7, #27
d294: 0eff lsrs r7, r7, #27
d296: 4379 muls r1, r7
d298: 1840 adds r0, r0, r1
d29a: 0201 lsls r1, r0, #8
d29c: 1809 adds r1, r1, r0
d29e: 01c9 lsls r1, r1, #7
d2a0: 1809 adds r1, r1, r0
d2a2: 0dc9 lsrs r1, r1, #23
d2a4: 201f movs r0, #31
d2a6: 4008 ands r0, r1
d2a8: e798 b.n d1dc <lv_draw_rect+0x116c>
if(i >= max) return dsc->bg_grad_color;
d2aa: 7929 ldrb r1, [r5, #4]
d2ac: 06c9 lsls r1, r1, #27
d2ae: 0ec8 lsrs r0, r1, #27
d2b0: 88ab ldrh r3, [r5, #4]
d2b2: 055b lsls r3, r3, #21
d2b4: 0e9b lsrs r3, r3, #26
d2b6: 796a ldrb r2, [r5, #5]
d2b8: 08d2 lsrs r2, r2, #3
d2ba: e78f b.n d1dc <lv_draw_rect+0x116c>
d2bc: 9b09 ldr r3, [sp, #36] ; 0x24
d2be: 4698 mov r8, r3
d2c0: 465f mov r7, fp
d2c2: 46ab mov fp, r5
d2c4: e748 b.n d158 <lv_draw_rect+0x10e8>
_lv_memset_ff(mask_buf, draw_area_w);
d2c6: 990b ldr r1, [sp, #44] ; 0x2c
d2c8: 9f06 ldr r7, [sp, #24]
d2ca: 0038 movs r0, r7
d2cc: 4b47 ldr r3, [pc, #284] ; (d3ec <lv_draw_rect+0x137c>)
d2ce: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
d2d0: 464b mov r3, r9
d2d2: 8a5a ldrh r2, [r3, #18]
d2d4: 1952 adds r2, r2, r5
d2d6: b212 sxth r2, r2
d2d8: 8a19 ldrh r1, [r3, #16]
d2da: ab0e add r3, sp, #56 ; 0x38
d2dc: 8f1b ldrh r3, [r3, #56] ; 0x38
d2de: 18c9 adds r1, r1, r3
d2e0: b209 sxth r1, r1
d2e2: 9b0a ldr r3, [sp, #40] ; 0x28
d2e4: 0038 movs r0, r7
d2e6: 4f42 ldr r7, [pc, #264] ; (d3f0 <lv_draw_rect+0x1380>)
d2e8: 47b8 blx r7
d2ea: 9005 str r0, [sp, #20]
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
d2ec: 79b3 ldrb r3, [r6, #6]
d2ee: 2b01 cmp r3, #1
d2f0: d119 bne.n d326 <lv_draw_rect+0x12b6>
d2f2: e081 b.n d3f8 <lv_draw_rect+0x1388>
_lv_memset_ff(mask_buf, draw_area_w);
d2f4: 990b ldr r1, [sp, #44] ; 0x2c
d2f6: 9f06 ldr r7, [sp, #24]
d2f8: 0038 movs r0, r7
d2fa: 4b3c ldr r3, [pc, #240] ; (d3ec <lv_draw_rect+0x137c>)
d2fc: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
d2fe: 464b mov r3, r9
d300: 8a5a ldrh r2, [r3, #18]
d302: 1952 adds r2, r2, r5
d304: b212 sxth r2, r2
d306: 8a19 ldrh r1, [r3, #16]
d308: ab0e add r3, sp, #56 ; 0x38
d30a: 8f1b ldrh r3, [r3, #56] ; 0x38
d30c: 18c9 adds r1, r1, r3
d30e: b209 sxth r1, r1
d310: 9b0a ldr r3, [sp, #40] ; 0x28
d312: 0038 movs r0, r7
d314: 4f36 ldr r7, [pc, #216] ; (d3f0 <lv_draw_rect+0x1380>)
d316: 47b8 blx r7
d318: 9005 str r0, [sp, #20]
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
d31a: 79b3 ldrb r3, [r6, #6]
d31c: 2b01 cmp r3, #1
d31e: d06b beq.n d3f8 <lv_draw_rect+0x1388>
if(simple_mode && split &&
d320: 9a07 ldr r2, [sp, #28]
d322: 2a00 cmp r2, #0
d324: d13e bne.n d3a4 <lv_draw_rect+0x1334>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
d326: 2b02 cmp r3, #2
d328: d100 bne.n d32c <lv_draw_rect+0x12bc>
d32a: e153 b.n d5d4 <lv_draw_rect+0x1564>
else if(other_mask_cnt != 0 || !split) {
d32c: 9b0c ldr r3, [sp, #48] ; 0x30
d32e: 2b00 cmp r3, #0
d330: d102 bne.n d338 <lv_draw_rect+0x12c8>
d332: 9b09 ldr r3, [sp, #36] ; 0x24
d334: 2b32 cmp r3, #50 ; 0x32
d336: dc0c bgt.n d352 <lv_draw_rect+0x12e2>
_lv_blend_fill(clip, &fill_area,
d338: 7b73 ldrb r3, [r6, #13]
d33a: 9302 str r3, [sp, #8]
d33c: 465b mov r3, fp
d33e: 9301 str r3, [sp, #4]
d340: 9b05 ldr r3, [sp, #20]
d342: 9300 str r3, [sp, #0]
d344: 9b06 ldr r3, [sp, #24]
d346: 466a mov r2, sp
d348: 8c12 ldrh r2, [r2, #32]
d34a: a91e add r1, sp, #120 ; 0x78
d34c: 9804 ldr r0, [sp, #16]
d34e: 4c21 ldr r4, [pc, #132] ; (d3d4 <lv_draw_rect+0x1364>)
d350: 47a0 blx r4
fill_area.y1++;
d352: ab1e add r3, sp, #120 ; 0x78
d354: 885a ldrh r2, [r3, #2]
d356: 3201 adds r2, #1
d358: 805a strh r2, [r3, #2]
fill_area.y2++;
d35a: 88da ldrh r2, [r3, #6]
d35c: 3201 adds r2, #1
d35e: 80da strh r2, [r3, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
d360: 3501 adds r5, #1
d362: ab0e add r3, sp, #56 ; 0x38
d364: 223e movs r2, #62 ; 0x3e
d366: 5e9b ldrsh r3, [r3, r2]
d368: 429d cmp r5, r3
d36a: dd00 ble.n d36e <lv_draw_rect+0x12fe>
d36c: e13f b.n d5ee <lv_draw_rect+0x157e>
int32_t y = h + vdb->area.y1;
d36e: 464b mov r3, r9
d370: 2412 movs r4, #18
d372: 5f1c ldrsh r4, [r3, r4]
d374: 1964 adds r4, r4, r5
if(y > coords_bg.y1 + rout + 1 &&
d376: ab1a add r3, sp, #104 ; 0x68
d378: 2202 movs r2, #2
d37a: 5e9b ldrsh r3, [r3, r2]
d37c: 4443 add r3, r8
d37e: 3301 adds r3, #1
d380: 429c cmp r4, r3
d382: ddb7 ble.n d2f4 <lv_draw_rect+0x1284>
y < coords_bg.y2 - rout - 1) {
d384: ab1a add r3, sp, #104 ; 0x68
d386: 2206 movs r2, #6
d388: 5e9b ldrsh r3, [r3, r2]
d38a: 4642 mov r2, r8
d38c: 1a9b subs r3, r3, r2
d38e: 3b01 subs r3, #1
if(y > coords_bg.y1 + rout + 1 &&
d390: 429c cmp r4, r3
d392: daaf bge.n d2f4 <lv_draw_rect+0x1284>
if(simple_mode == false) {
d394: 9b07 ldr r3, [sp, #28]
d396: 2b00 cmp r3, #0
d398: d095 beq.n d2c6 <lv_draw_rect+0x1256>
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
d39a: 79b3 ldrb r3, [r6, #6]
d39c: 2b01 cmp r3, #1
d39e: d029 beq.n d3f4 <lv_draw_rect+0x1384>
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
d3a0: 2201 movs r2, #1
d3a2: 9205 str r2, [sp, #20]
if(simple_mode && split &&
d3a4: 9a09 ldr r2, [sp, #36] ; 0x24
d3a6: 2a32 cmp r2, #50 ; 0x32
d3a8: dd00 ble.n d3ac <lv_draw_rect+0x133c>
d3aa: e0a0 b.n d4ee <lv_draw_rect+0x147e>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
d3ac: 2b02 cmp r3, #2
d3ae: d100 bne.n d3b2 <lv_draw_rect+0x1342>
d3b0: e110 b.n d5d4 <lv_draw_rect+0x1564>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
d3b2: 2b01 cmp r3, #1
d3b4: d1ba bne.n d32c <lv_draw_rect+0x12bc>
_lv_blend_fill(clip, &fill_area,
d3b6: 7b73 ldrb r3, [r6, #13]
d3b8: 9302 str r3, [sp, #8]
d3ba: 465b mov r3, fp
d3bc: 9301 str r3, [sp, #4]
d3be: 9b05 ldr r3, [sp, #20]
d3c0: 9300 str r3, [sp, #0]
d3c2: 9b06 ldr r3, [sp, #24]
d3c4: 466a mov r2, sp
d3c6: 8c12 ldrh r2, [r2, #32]
d3c8: a91e add r1, sp, #120 ; 0x78
d3ca: 9804 ldr r0, [sp, #16]
d3cc: 4c01 ldr r4, [pc, #4] ; (d3d4 <lv_draw_rect+0x1364>)
d3ce: 47a0 blx r4
d3d0: e7bf b.n d352 <lv_draw_rect+0x12e2>
d3d2: 46c0 nop ; (mov r8, r8)
d3d4: 00006fed .word 0x00006fed
d3d8: 0000bd01 .word 0x0000bd01
d3dc: 0000ba75 .word 0x0000ba75
d3e0: 000127a1 .word 0x000127a1
d3e4: fffff81f .word 0xfffff81f
d3e8: 0001c1b9 .word 0x0001c1b9
d3ec: 00012a19 .word 0x00012a19
d3f0: 0000bad1 .word 0x0000bad1
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
d3f4: 2301 movs r3, #1
d3f6: 9305 str r3, [sp, #20]
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
d3f8: 8872 ldrh r2, [r6, #2]
d3fa: 88b3 ldrh r3, [r6, #4]
d3fc: 429a cmp r2, r3
d3fe: d06d beq.n d4dc <lv_draw_rect+0x146c>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
d400: a91a add r1, sp, #104 ; 0x68
d402: 884a ldrh r2, [r1, #2]
grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1);
d404: 1aa3 subs r3, r4, r2
d406: b29b uxth r3, r3
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
d408: 2708 movs r7, #8
d40a: 5ff0 ldrsh r0, [r6, r7]
d40c: 4682 mov sl, r0
d40e: 88c9 ldrh r1, [r1, #6]
d410: 3101 adds r1, #1
d412: 1a89 subs r1, r1, r2
d414: b209 sxth r1, r1
d416: 0002 movs r2, r0
d418: 434a muls r2, r1
d41a: 1212 asrs r2, r2, #8
if(i <= min) return dsc->bg_color;
d41c: b218 sxth r0, r3
d41e: 4684 mov ip, r0
d420: 4282 cmp r2, r0
d422: da45 bge.n d4b0 <lv_draw_rect+0x1440>
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
d424: 270a movs r7, #10
d426: 5ff0 ldrsh r0, [r6, r7]
d428: 0007 movs r7, r0
d42a: 434f muls r7, r1
d42c: 123f asrs r7, r7, #8
if(i >= max) return dsc->bg_grad_color;
d42e: 45bc cmp ip, r7
d430: db00 blt.n d434 <lv_draw_rect+0x13c4>
d432: e0b1 b.n d598 <lv_draw_rect+0x1528>
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
d434: 4657 mov r7, sl
d436: 1bc0 subs r0, r0, r7
d = (s * d) >> 8;
d438: 4341 muls r1, r0
i -= min;
d43a: 1a9b subs r3, r3, r2
lv_opa_t mix = (i * 255) / d;
d43c: b21b sxth r3, r3
d43e: 0218 lsls r0, r3, #8
d440: 1ac0 subs r0, r0, r3
d = (s * d) >> 8;
d442: 1209 asrs r1, r1, #8
lv_opa_t mix = (i * 255) / d;
d444: 4bc0 ldr r3, [pc, #768] ; (d748 <lv_draw_rect+0x16d8>)
d446: 4798 blx r3
d448: 21ff movs r1, #255 ; 0xff
d44a: 4008 ands r0, r1
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
d44c: 1a09 subs r1, r1, r0
d44e: 7972 ldrb r2, [r6, #5]
d450: 08d2 lsrs r2, r2, #3
d452: 4342 muls r2, r0
d454: 78f3 ldrb r3, [r6, #3]
d456: 08db lsrs r3, r3, #3
d458: 434b muls r3, r1
d45a: 18d3 adds r3, r2, r3
d45c: 021a lsls r2, r3, #8
d45e: 18d2 adds r2, r2, r3
d460: 01d2 lsls r2, r2, #7
d462: 18d2 adds r2, r2, r3
d464: 0dd2 lsrs r2, r2, #23
d466: 231f movs r3, #31
d468: 469c mov ip, r3
d46a: 401a ands r2, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
d46c: 88b3 ldrh r3, [r6, #4]
d46e: 055b lsls r3, r3, #21
d470: 0e9b lsrs r3, r3, #26
d472: 4343 muls r3, r0
d474: 469a mov sl, r3
d476: 8873 ldrh r3, [r6, #2]
d478: 055b lsls r3, r3, #21
d47a: 0e9b lsrs r3, r3, #26
d47c: 434b muls r3, r1
d47e: 449a add sl, r3
d480: 4653 mov r3, sl
d482: 021b lsls r3, r3, #8
d484: 4453 add r3, sl
d486: 01db lsls r3, r3, #7
d488: 4453 add r3, sl
d48a: 00db lsls r3, r3, #3
d48c: 0e9b lsrs r3, r3, #26
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
d48e: 7937 ldrb r7, [r6, #4]
d490: 06ff lsls r7, r7, #27
d492: 0eff lsrs r7, r7, #27
d494: 4378 muls r0, r7
d496: 78b7 ldrb r7, [r6, #2]
d498: 06ff lsls r7, r7, #27
d49a: 0eff lsrs r7, r7, #27
d49c: 4379 muls r1, r7
d49e: 1841 adds r1, r0, r1
d4a0: 0208 lsls r0, r1, #8
d4a2: 1840 adds r0, r0, r1
d4a4: 01c0 lsls r0, r0, #7
d4a6: 1840 adds r0, r0, r1
d4a8: 0dc0 lsrs r0, r0, #23
d4aa: 4661 mov r1, ip
d4ac: 4008 ands r0, r1
d4ae: e007 b.n d4c0 <lv_draw_rect+0x1450>
if(i <= min) return dsc->bg_color;
d4b0: 78b1 ldrb r1, [r6, #2]
d4b2: 06c9 lsls r1, r1, #27
d4b4: 0ec8 lsrs r0, r1, #27
d4b6: 8873 ldrh r3, [r6, #2]
d4b8: 055b lsls r3, r3, #21
d4ba: 0e9b lsrs r3, r3, #26
d4bc: 78f2 ldrb r2, [r6, #3]
d4be: 08d2 lsrs r2, r2, #3
d4c0: 211f movs r1, #31
d4c2: 9f08 ldr r7, [sp, #32]
d4c4: 438f bics r7, r1
d4c6: 0039 movs r1, r7
d4c8: 4301 orrs r1, r0
d4ca: 0158 lsls r0, r3, #5
d4cc: 4b9f ldr r3, [pc, #636] ; (d74c <lv_draw_rect+0x16dc>)
d4ce: 400b ands r3, r1
d4d0: 4303 orrs r3, r0
d4d2: 02d2 lsls r2, r2, #11
d4d4: 055b lsls r3, r3, #21
d4d6: 0d5b lsrs r3, r3, #21
d4d8: 4313 orrs r3, r2
d4da: 9308 str r3, [sp, #32]
if(simple_mode && split &&
d4dc: 9b07 ldr r3, [sp, #28]
d4de: 2b00 cmp r3, #0
d4e0: d100 bne.n d4e4 <lv_draw_rect+0x1474>
d4e2: e768 b.n d3b6 <lv_draw_rect+0x1346>
d4e4: 2301 movs r3, #1
d4e6: 9a09 ldr r2, [sp, #36] ; 0x24
d4e8: 2a32 cmp r2, #50 ; 0x32
d4ea: dc00 bgt.n d4ee <lv_draw_rect+0x147e>
d4ec: e763 b.n d3b6 <lv_draw_rect+0x1346>
(y < coords_bg.y1 + rout + 1 ||
d4ee: aa1a add r2, sp, #104 ; 0x68
d4f0: 2102 movs r1, #2
d4f2: 5e52 ldrsh r2, [r2, r1]
d4f4: 4442 add r2, r8
d4f6: 3201 adds r2, #1
if(simple_mode && split &&
d4f8: 4294 cmp r4, r2
d4fa: db08 blt.n d50e <lv_draw_rect+0x149e>
y > coords_bg.y2 - rout - 1)) {
d4fc: aa1a add r2, sp, #104 ; 0x68
d4fe: 2106 movs r1, #6
d500: 5e52 ldrsh r2, [r2, r1]
d502: 4641 mov r1, r8
d504: 1a52 subs r2, r2, r1
d506: 3a01 subs r2, #1
(y < coords_bg.y1 + rout + 1 ||
d508: 4294 cmp r4, r2
d50a: dc00 bgt.n d50e <lv_draw_rect+0x149e>
d50c: e74e b.n d3ac <lv_draw_rect+0x133c>
fill_area2.x1 = coords_bg.x1;
d50e: ab1a add r3, sp, #104 ; 0x68
d510: 2200 movs r2, #0
d512: 5e9b ldrsh r3, [r3, r2]
d514: a922 add r1, sp, #136 ; 0x88
d516: 800b strh r3, [r1, #0]
fill_area2.x2 = coords_bg.x1 + rout - 1;
d518: 4642 mov r2, r8
d51a: 4668 mov r0, sp
d51c: 8702 strh r2, [r0, #56] ; 0x38
d51e: 8f04 ldrh r4, [r0, #56] ; 0x38
d520: 3b01 subs r3, #1
d522: 18e3 adds r3, r4, r3
d524: 808b strh r3, [r1, #4]
fill_area2.y1 = fill_area.y1;
d526: ab1e add r3, sp, #120 ; 0x78
d528: 885a ldrh r2, [r3, #2]
d52a: 804a strh r2, [r1, #2]
fill_area2.y2 = fill_area.y2;
d52c: 88db ldrh r3, [r3, #6]
d52e: 80cb strh r3, [r1, #6]
_lv_blend_fill(clip, &fill_area2,
d530: 7b73 ldrb r3, [r6, #13]
d532: 9302 str r3, [sp, #8]
d534: 465b mov r3, fp
d536: 9301 str r3, [sp, #4]
d538: 9b05 ldr r3, [sp, #20]
d53a: 9300 str r3, [sp, #0]
d53c: 9b06 ldr r3, [sp, #24]
d53e: 8c02 ldrh r2, [r0, #32]
d540: 9804 ldr r0, [sp, #16]
d542: 4f83 ldr r7, [pc, #524] ; (d750 <lv_draw_rect+0x16e0>)
d544: 47b8 blx r7
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
d546: 79b3 ldrb r3, [r6, #6]
d548: 2b01 cmp r3, #1
d54a: d02e beq.n d5aa <lv_draw_rect+0x153a>
fill_area2.x1 = coords_bg.x2 - rout + 1;
d54c: ab1a add r3, sp, #104 ; 0x68
d54e: 2204 movs r2, #4
d550: 5e9b ldrsh r3, [r3, r2]
d552: a922 add r1, sp, #136 ; 0x88
d554: 1c5a adds r2, r3, #1
d556: 1b14 subs r4, r2, r4
d558: 800c strh r4, [r1, #0]
fill_area2.x2 = coords_bg.x2;
d55a: 808b strh r3, [r1, #4]
int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
d55c: 4642 mov r2, r8
d55e: 1a9b subs r3, r3, r2
d560: 3301 adds r3, #1
d562: 464a mov r2, r9
d564: 2110 movs r1, #16
d566: 5e52 ldrsh r2, [r2, r1]
d568: a90e add r1, sp, #56 ; 0x38
d56a: 2038 movs r0, #56 ; 0x38
d56c: 5e09 ldrsh r1, [r1, r0]
d56e: 1852 adds r2, r2, r1
d570: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2,
d572: 43da mvns r2, r3
d574: 17d2 asrs r2, r2, #31
d576: 4013 ands r3, r2
d578: 9a06 ldr r2, [sp, #24]
d57a: 4694 mov ip, r2
d57c: 4463 add r3, ip
d57e: 7b72 ldrb r2, [r6, #13]
d580: 9202 str r2, [sp, #8]
d582: 465a mov r2, fp
d584: 9201 str r2, [sp, #4]
d586: 9a05 ldr r2, [sp, #20]
d588: 9200 str r2, [sp, #0]
d58a: 466a mov r2, sp
d58c: 8c12 ldrh r2, [r2, #32]
d58e: a922 add r1, sp, #136 ; 0x88
d590: 9804 ldr r0, [sp, #16]
d592: 4c6f ldr r4, [pc, #444] ; (d750 <lv_draw_rect+0x16e0>)
d594: 47a0 blx r4
d596: e6dc b.n d352 <lv_draw_rect+0x12e2>
if(i >= max) return dsc->bg_grad_color;
d598: 7931 ldrb r1, [r6, #4]
d59a: 06c9 lsls r1, r1, #27
d59c: 0ec8 lsrs r0, r1, #27
d59e: 88b3 ldrh r3, [r6, #4]
d5a0: 055b lsls r3, r3, #21
d5a2: 0e9b lsrs r3, r3, #26
d5a4: 7972 ldrb r2, [r6, #5]
d5a6: 08d2 lsrs r2, r2, #3
d5a8: e78a b.n d4c0 <lv_draw_rect+0x1450>
fill_area2.x1 = coords_bg.x1 + rout;
d5aa: a922 add r1, sp, #136 ; 0x88
d5ac: aa1a add r2, sp, #104 ; 0x68
d5ae: 8813 ldrh r3, [r2, #0]
d5b0: 18e3 adds r3, r4, r3
d5b2: 800b strh r3, [r1, #0]
fill_area2.x2 = coords_bg.x2 - rout;
d5b4: 8893 ldrh r3, [r2, #4]
d5b6: 1b1b subs r3, r3, r4
d5b8: 808b strh r3, [r1, #4]
_lv_blend_fill(clip, &fill_area2,
d5ba: 7b73 ldrb r3, [r6, #13]
d5bc: 9302 str r3, [sp, #8]
d5be: 465b mov r3, fp
d5c0: 9301 str r3, [sp, #4]
d5c2: 2301 movs r3, #1
d5c4: 9300 str r3, [sp, #0]
d5c6: 2300 movs r3, #0
d5c8: 466a mov r2, sp
d5ca: 8c12 ldrh r2, [r2, #32]
d5cc: 9804 ldr r0, [sp, #16]
d5ce: 4f60 ldr r7, [pc, #384] ; (d750 <lv_draw_rect+0x16e0>)
d5d0: 47b8 blx r7
d5d2: e7bb b.n d54c <lv_draw_rect+0x14dc>
_lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode);
d5d4: 7b73 ldrb r3, [r6, #13]
d5d6: 9302 str r3, [sp, #8]
d5d8: 465b mov r3, fp
d5da: 9301 str r3, [sp, #4]
d5dc: 9b05 ldr r3, [sp, #20]
d5de: 9300 str r3, [sp, #0]
d5e0: 9b06 ldr r3, [sp, #24]
d5e2: 9a0d ldr r2, [sp, #52] ; 0x34
d5e4: a91e add r1, sp, #120 ; 0x78
d5e6: 9804 ldr r0, [sp, #16]
d5e8: 4c5a ldr r4, [pc, #360] ; (d754 <lv_draw_rect+0x16e4>)
d5ea: 47a0 blx r4
d5ec: e6b1 b.n d352 <lv_draw_rect+0x12e2>
d5ee: 46da mov sl, fp
d5f0: 9b10 ldr r3, [sp, #64] ; 0x40
d5f2: 4699 mov r9, r3
d5f4: 46b3 mov fp, r6
if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) {
d5f6: 465b mov r3, fp
d5f8: 799b ldrb r3, [r3, #6]
d5fa: 2b00 cmp r3, #0
d5fc: d105 bne.n d60a <lv_draw_rect+0x159a>
d5fe: 9b0c ldr r3, [sp, #48] ; 0x30
d600: 2b00 cmp r3, #0
d602: d102 bne.n d60a <lv_draw_rect+0x159a>
d604: 9b09 ldr r3, [sp, #36] ; 0x24
d606: 2b32 cmp r3, #50 ; 0x32
d608: dc0c bgt.n d624 <lv_draw_rect+0x15b4>
if(grad_map) _lv_mem_buf_release(grad_map);
d60a: 9b0d ldr r3, [sp, #52] ; 0x34
d60c: 2b00 cmp r3, #0
d60e: d002 beq.n d616 <lv_draw_rect+0x15a6>
d610: 0018 movs r0, r3
d612: 4b51 ldr r3, [pc, #324] ; (d758 <lv_draw_rect+0x16e8>)
d614: 4798 blx r3
lv_draw_mask_remove_id(mask_rout_id);
d616: 980f ldr r0, [sp, #60] ; 0x3c
d618: 4b50 ldr r3, [pc, #320] ; (d75c <lv_draw_rect+0x16ec>)
d61a: 4798 blx r3
_lv_mem_buf_release(mask_buf);
d61c: 9806 ldr r0, [sp, #24]
d61e: 4b4e ldr r3, [pc, #312] ; (d758 <lv_draw_rect+0x16e8>)
d620: 4798 blx r3
d622: e46f b.n cf04 <lv_draw_rect+0xe94>
fill_area.x1 = coords_bg.x1 + rout;
d624: 4643 mov r3, r8
d626: 466a mov r2, sp
d628: 8293 strh r3, [r2, #20]
d62a: 8a96 ldrh r6, [r2, #20]
d62c: ac1e add r4, sp, #120 ; 0x78
d62e: ad1a add r5, sp, #104 ; 0x68
d630: 882b ldrh r3, [r5, #0]
d632: 18f3 adds r3, r6, r3
d634: 8023 strh r3, [r4, #0]
fill_area.x2 = coords_bg.x2 - rout;
d636: 88ab ldrh r3, [r5, #4]
d638: 1b9b subs r3, r3, r6
d63a: 80a3 strh r3, [r4, #4]
fill_area.y1 = coords_bg.y1;
d63c: 2202 movs r2, #2
d63e: 5eab ldrsh r3, [r5, r2]
d640: 8063 strh r3, [r4, #2]
fill_area.y2 = coords_bg.y1 + rout;
d642: 18f3 adds r3, r6, r3
d644: 80e3 strh r3, [r4, #6]
_lv_blend_fill(clip, &fill_area,
d646: 465b mov r3, fp
d648: 885a ldrh r2, [r3, #2]
d64a: 7b5b ldrb r3, [r3, #13]
d64c: 9302 str r3, [sp, #8]
d64e: 4653 mov r3, sl
d650: 9301 str r3, [sp, #4]
d652: 2301 movs r3, #1
d654: 9300 str r3, [sp, #0]
d656: 2300 movs r3, #0
d658: 0021 movs r1, r4
d65a: 9804 ldr r0, [sp, #16]
d65c: 4f3c ldr r7, [pc, #240] ; (d750 <lv_draw_rect+0x16e0>)
d65e: 47b8 blx r7
fill_area.y1 = coords_bg.y2 - rout;
d660: 2306 movs r3, #6
d662: 5ee9 ldrsh r1, [r5, r3]
d664: 1b8a subs r2, r1, r6
d666: b212 sxth r2, r2
d668: 8062 strh r2, [r4, #2]
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
d66a: 2006 movs r0, #6
d66c: 5e23 ldrsh r3, [r4, r0]
d66e: 429a cmp r2, r3
d670: dc02 bgt.n d678 <lv_draw_rect+0x1608>
d672: 3301 adds r3, #1
d674: aa1e add r2, sp, #120 ; 0x78
d676: 8053 strh r3, [r2, #2]
fill_area.y2 = coords_bg.y2;
d678: ac1e add r4, sp, #120 ; 0x78
d67a: 80e1 strh r1, [r4, #6]
_lv_blend_fill(clip, &fill_area,
d67c: 465b mov r3, fp
d67e: 885a ldrh r2, [r3, #2]
d680: 7b5b ldrb r3, [r3, #13]
d682: 9302 str r3, [sp, #8]
d684: 4653 mov r3, sl
d686: 9301 str r3, [sp, #4]
d688: 2701 movs r7, #1
d68a: 9700 str r7, [sp, #0]
d68c: 2300 movs r3, #0
d68e: 0021 movs r1, r4
d690: 9804 ldr r0, [sp, #16]
d692: 4d2f ldr r5, [pc, #188] ; (d750 <lv_draw_rect+0x16e0>)
d694: 47a8 blx r5
fill_area.x1 = coords_bg.x1;
d696: aa1a add r2, sp, #104 ; 0x68
d698: 8813 ldrh r3, [r2, #0]
d69a: 8023 strh r3, [r4, #0]
fill_area.x2 = coords_bg.x2;
d69c: 8893 ldrh r3, [r2, #4]
d69e: 80a3 strh r3, [r4, #4]
fill_area.y1 = coords_bg.y1 + rout + 1;
d6a0: 8853 ldrh r3, [r2, #2]
d6a2: 3301 adds r3, #1
d6a4: 18f3 adds r3, r6, r3
d6a6: 8063 strh r3, [r4, #2]
fill_area.y2 = coords_bg.y2 - rout - 1;
d6a8: 88d3 ldrh r3, [r2, #6]
d6aa: 3b01 subs r3, #1
d6ac: 1b9e subs r6, r3, r6
d6ae: 80e6 strh r6, [r4, #6]
_lv_blend_fill(clip, &fill_area,
d6b0: 465b mov r3, fp
d6b2: 885a ldrh r2, [r3, #2]
d6b4: 7b5b ldrb r3, [r3, #13]
d6b6: 9302 str r3, [sp, #8]
d6b8: 4653 mov r3, sl
d6ba: 9301 str r3, [sp, #4]
d6bc: 9700 str r7, [sp, #0]
d6be: 2300 movs r3, #0
d6c0: 0021 movs r1, r4
d6c2: 9804 ldr r0, [sp, #16]
d6c4: 47a8 blx r5
d6c6: e7a0 b.n d60a <lv_draw_rect+0x159a>
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
d6c8: 4b25 ldr r3, [pc, #148] ; (d760 <lv_draw_rect+0x16f0>)
d6ca: 4798 blx r3
d6cc: 0007 movs r7, r0
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
d6ce: 2801 cmp r0, #1
d6d0: d911 bls.n d6f6 <lv_draw_rect+0x1686>
else if(src_type == LV_IMG_SRC_SYMBOL) {
d6d2: 2802 cmp r0, #2
d6d4: d05a beq.n d78c <lv_draw_rect+0x171c>
LV_LOG_WARN("lv_img_design: image source type is unknown");
d6d6: 4b23 ldr r3, [pc, #140] ; (d764 <lv_draw_rect+0x16f4>)
d6d8: 9300 str r3, [sp, #0]
d6da: 4b23 ldr r3, [pc, #140] ; (d768 <lv_draw_rect+0x16f8>)
d6dc: 4a23 ldr r2, [pc, #140] ; (d76c <lv_draw_rect+0x16fc>)
d6de: 4924 ldr r1, [pc, #144] ; (d770 <lv_draw_rect+0x1700>)
d6e0: 2002 movs r0, #2
d6e2: 4c24 ldr r4, [pc, #144] ; (d774 <lv_draw_rect+0x1704>)
d6e4: 47a0 blx r4
lv_draw_img(coords, clip, NULL, NULL);
d6e6: 2300 movs r3, #0
d6e8: 2200 movs r2, #0
d6ea: 9904 ldr r1, [sp, #16]
d6ec: 4648 mov r0, r9
d6ee: 4c22 ldr r4, [pc, #136] ; (d778 <lv_draw_rect+0x1708>)
d6f0: 47a0 blx r4
d6f2: f7ff fc12 bl cf1a <lv_draw_rect+0xeaa>
lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header);
d6f6: a929 add r1, sp, #164 ; 0xa4
d6f8: 465b mov r3, fp
d6fa: 6ad8 ldr r0, [r3, #44] ; 0x2c
d6fc: 4b1f ldr r3, [pc, #124] ; (d77c <lv_draw_rect+0x170c>)
d6fe: 4798 blx r3
if(res != LV_RES_OK) {
d700: 2801 cmp r0, #1
d702: d009 beq.n d718 <lv_draw_rect+0x16a8>
LV_LOG_WARN("draw_img: can't get image info");
d704: 4b1e ldr r3, [pc, #120] ; (d780 <lv_draw_rect+0x1710>)
d706: 9300 str r3, [sp, #0]
d708: 4b17 ldr r3, [pc, #92] ; (d768 <lv_draw_rect+0x16f8>)
d70a: 4a1e ldr r2, [pc, #120] ; (d784 <lv_draw_rect+0x1714>)
d70c: 4918 ldr r1, [pc, #96] ; (d770 <lv_draw_rect+0x1700>)
d70e: 2002 movs r0, #2
d710: 4c18 ldr r4, [pc, #96] ; (d774 <lv_draw_rect+0x1704>)
d712: 47a0 blx r4
d714: f7ff fc01 bl cf1a <lv_draw_rect+0xeaa>
img_w = header.w;
d718: 9b29 ldr r3, [sp, #164] ; 0xa4
d71a: 02dd lsls r5, r3, #11
d71c: 0d6d lsrs r5, r5, #21
img_h = header.h;
d71e: 236e movs r3, #110 ; 0x6e
d720: aa0e add r2, sp, #56 ; 0x38
d722: 4694 mov ip, r2
d724: 4463 add r3, ip
d726: 881e ldrh r6, [r3, #0]
d728: 0976 lsrs r6, r6, #5
lv_draw_img_dsc_init(&img_dsc);
d72a: ac1e add r4, sp, #120 ; 0x78
d72c: 0020 movs r0, r4
d72e: 4b16 ldr r3, [pc, #88] ; (d788 <lv_draw_rect+0x1718>)
d730: 4798 blx r3
img_dsc.opa = dsc->pattern_opa;
d732: 2336 movs r3, #54 ; 0x36
d734: 465a mov r2, fp
d736: 5cd3 ldrb r3, [r2, r3]
d738: 7023 strb r3, [r4, #0]
img_dsc.recolor_opa = dsc->pattern_recolor_opa;
d73a: 2337 movs r3, #55 ; 0x37
d73c: 5cd3 ldrb r3, [r2, r3]
d73e: 72a3 strb r3, [r4, #10]
img_dsc.recolor = dsc->pattern_recolor;
d740: 8e93 ldrh r3, [r2, #52] ; 0x34
d742: 81a3 strh r3, [r4, #12]
d744: e045 b.n d7d2 <lv_draw_rect+0x1762>
d746: 46c0 nop ; (mov r8, r8)
d748: 0001c1b9 .word 0x0001c1b9
d74c: fffff81f .word 0xfffff81f
d750: 00006fed .word 0x00006fed
d754: 00007cf1 .word 0x00007cf1
d758: 00012465 .word 0x00012465
d75c: 0000bb25 .word 0x0000bb25
d760: 00009589 .word 0x00009589
d764: 000264b4 .word 0x000264b4
d768: 0002644c .word 0x0002644c
d76c: 000005ab .word 0x000005ab
d770: 0002645c .word 0x0002645c
d774: 00012159 .word 0x00012159
d778: 00009305 .word 0x00009305
d77c: 0000fc21 .word 0x0000fc21
d780: 00026494 .word 0x00026494
d784: 00000591 .word 0x00000591
d788: 00009271 .word 0x00009271
lv_draw_label_dsc_init(&label_dsc);
d78c: ac22 add r4, sp, #136 ; 0x88
d78e: 0020 movs r0, r4
d790: 4b87 ldr r3, [pc, #540] ; (d9b0 <lv_draw_rect+0x1940>)
d792: 4798 blx r3
label_dsc.color = dsc->pattern_recolor;
d794: 465b mov r3, fp
d796: 8e9b ldrh r3, [r3, #52] ; 0x34
d798: 8023 strh r3, [r4, #0]
label_dsc.font = dsc->pattern_font;
d79a: 465b mov r3, fp
d79c: 6b1b ldr r3, [r3, #48] ; 0x30
d79e: 6063 str r3, [r4, #4]
label_dsc.opa = dsc->pattern_opa;
d7a0: 2336 movs r3, #54 ; 0x36
d7a2: 465a mov r2, fp
d7a4: 5cd3 ldrb r3, [r2, r3]
d7a6: 7223 strb r3, [r4, #8]
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
d7a8: 220c movs r2, #12
d7aa: 5ea3 ldrsh r3, [r4, r2]
d7ac: ae29 add r6, sp, #164 ; 0xa4
d7ae: 2200 movs r2, #0
d7b0: 9202 str r2, [sp, #8]
d7b2: 4a80 ldr r2, [pc, #512] ; (d9b4 <lv_draw_rect+0x1944>)
d7b4: 9201 str r2, [sp, #4]
d7b6: 210a movs r1, #10
d7b8: 5e62 ldrsh r2, [r4, r1]
d7ba: 9200 str r2, [sp, #0]
d7bc: 465a mov r2, fp
d7be: 6b12 ldr r2, [r2, #48] ; 0x30
d7c0: 4659 mov r1, fp
d7c2: 6ac9 ldr r1, [r1, #44] ; 0x2c
d7c4: 0030 movs r0, r6
d7c6: 4c7c ldr r4, [pc, #496] ; (d9b8 <lv_draw_rect+0x1948>)
d7c8: 47a0 blx r4
img_w = s.x;
d7ca: 2300 movs r3, #0
d7cc: 5ef5 ldrsh r5, [r6, r3]
img_h = s.y;
d7ce: 2302 movs r3, #2
d7d0: 5ef6 ldrsh r6, [r6, r3]
if(dsc->pattern_repeat) {
d7d2: 2338 movs r3, #56 ; 0x38
d7d4: 465a mov r2, fp
d7d6: 5cd3 ldrb r3, [r2, r3]
d7d8: 07db lsls r3, r3, #31
d7da: d43d bmi.n d858 <lv_draw_rect+0x17e8>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
d7dc: 464b mov r3, r9
d7de: 8818 ldrh r0, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
d7e0: 8859 ldrh r1, [r3, #2]
d7e2: 88db ldrh r3, [r3, #6]
d7e4: 3301 adds r3, #1
d7e6: 1a5b subs r3, r3, r1
int32_t obj_h = lv_area_get_height(coords);
d7e8: b21b sxth r3, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
d7ea: 464a mov r2, r9
d7ec: 8892 ldrh r2, [r2, #4]
d7ee: 3201 adds r2, #1
d7f0: 1a12 subs r2, r2, r0
int32_t obj_w = lv_area_get_width(coords);
d7f2: b212 sxth r2, r2
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
d7f4: 1b52 subs r2, r2, r5
d7f6: 0fd4 lsrs r4, r2, #31
d7f8: 18a2 adds r2, r4, r2
d7fa: 1052 asrs r2, r2, #1
d7fc: 1880 adds r0, r0, r2
d7fe: b280 uxth r0, r0
d800: aa1c add r2, sp, #112 ; 0x70
d802: 8010 strh r0, [r2, #0]
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
d804: 1b9c subs r4, r3, r6
d806: 0fe3 lsrs r3, r4, #31
d808: 191b adds r3, r3, r4
d80a: 105b asrs r3, r3, #1
d80c: 18c9 adds r1, r1, r3
d80e: b289 uxth r1, r1
d810: 8051 strh r1, [r2, #2]
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
d812: 3d01 subs r5, #1
d814: 1945 adds r5, r0, r5
d816: 8095 strh r5, [r2, #4]
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
d818: 1e73 subs r3, r6, #1
d81a: 18cb adds r3, r1, r3
d81c: b29b uxth r3, r3
d81e: 80d3 strh r3, [r2, #6]
if(src_type == LV_IMG_SRC_SYMBOL) {
d820: 2f02 cmp r7, #2
d822: d100 bne.n d826 <lv_draw_rect+0x17b6>
d824: e09a b.n d95c <lv_draw_rect+0x18ec>
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
d826: 465b mov r3, fp
d828: 2200 movs r2, #0
d82a: 5e9a ldrsh r2, [r3, r2]
d82c: 4649 mov r1, r9
d82e: a81c add r0, sp, #112 ; 0x70
d830: 4b62 ldr r3, [pc, #392] ; (d9bc <lv_draw_rect+0x194c>)
d832: 4798 blx r3
int16_t radius_mask_id = LV_MASK_ID_INV;
d834: 2401 movs r4, #1
d836: 4264 negs r4, r4
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
d838: 2800 cmp r0, #0
d83a: d101 bne.n d840 <lv_draw_rect+0x17d0>
d83c: f000 feab bl e596 <lv_draw_rect+0x2526>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
d840: ab1e add r3, sp, #120 ; 0x78
d842: 465a mov r2, fp
d844: 6ad2 ldr r2, [r2, #44] ; 0x2c
d846: 9904 ldr r1, [sp, #16]
d848: a81c add r0, sp, #112 ; 0x70
d84a: 4d5d ldr r5, [pc, #372] ; (d9c0 <lv_draw_rect+0x1950>)
d84c: 47a8 blx r5
lv_draw_mask_remove_id(radius_mask_id);
d84e: 0020 movs r0, r4
d850: 4b5c ldr r3, [pc, #368] ; (d9c4 <lv_draw_rect+0x1954>)
d852: 4798 blx r3
d854: f7ff fb61 bl cf1a <lv_draw_rect+0xeaa>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
d858: 465b mov r3, fp
d85a: 2200 movs r2, #0
d85c: 5e9a ldrsh r2, [r3, r2]
d85e: 2300 movs r3, #0
d860: 4649 mov r1, r9
d862: a829 add r0, sp, #164 ; 0xa4
d864: 4c58 ldr r4, [pc, #352] ; (d9c8 <lv_draw_rect+0x1958>)
d866: 47a0 blx r4
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
d868: 2100 movs r1, #0
d86a: a829 add r0, sp, #164 ; 0xa4
d86c: 4b57 ldr r3, [pc, #348] ; (d9cc <lv_draw_rect+0x195c>)
d86e: 4798 blx r3
d870: 9007 str r0, [sp, #28]
d872: 464b mov r3, r9
d874: 8898 ldrh r0, [r3, #4]
d876: 3001 adds r0, #1
d878: 881b ldrh r3, [r3, #0]
d87a: 1ac0 subs r0, r0, r3
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
d87c: b200 sxth r0, r0
d87e: 4b54 ldr r3, [pc, #336] ; (d9d0 <lv_draw_rect+0x1960>)
d880: 4698 mov r8, r3
d882: 0029 movs r1, r5
d884: 4798 blx r3
d886: 0fcb lsrs r3, r1, #31
d888: 1859 adds r1, r3, r1
d88a: 104b asrs r3, r1, #1
d88c: 9306 str r3, [sp, #24]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
d88e: 464b mov r3, r9
d890: 2206 movs r2, #6
d892: 5e9b ldrsh r3, [r3, r2]
d894: 469a mov sl, r3
d896: 464b mov r3, r9
d898: 885c ldrh r4, [r3, #2]
d89a: 4653 mov r3, sl
d89c: 1c58 adds r0, r3, #1
d89e: 1b00 subs r0, r0, r4
int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2;
d8a0: b200 sxth r0, r0
d8a2: 0031 movs r1, r6
d8a4: 47c0 blx r8
d8a6: 0fcb lsrs r3, r1, #31
d8a8: 185b adds r3, r3, r1
d8aa: 105b asrs r3, r3, #1
coords_tmp.y1 = coords->y1 - ofs_y;
d8ac: 1ae4 subs r4, r4, r3
d8ae: b2a4 uxth r4, r4
d8b0: b223 sxth r3, r4
d8b2: aa1c add r2, sp, #112 ; 0x70
d8b4: 8053 strh r3, [r2, #2]
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
d8b6: b2b1 uxth r1, r6
d8b8: 4688 mov r8, r1
d8ba: 3901 subs r1, #1
d8bc: 1864 adds r4, r4, r1
d8be: 80d4 strh r4, [r2, #6]
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
d8c0: 459a cmp sl, r3
d8c2: db46 blt.n d952 <lv_draw_rect+0x18e2>
coords_tmp.x1 = coords->x1 - ofs_x;
d8c4: 0014 movs r4, r2
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
d8c6: b2ad uxth r5, r5
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
d8c8: 4b42 ldr r3, [pc, #264] ; (d9d4 <lv_draw_rect+0x1964>)
d8ca: 469a mov sl, r3
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
d8cc: 4e3c ldr r6, [pc, #240] ; (d9c0 <lv_draw_rect+0x1950>)
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
d8ce: 9205 str r2, [sp, #20]
d8d0: 464b mov r3, r9
d8d2: 46b9 mov r9, r7
d8d4: 001f movs r7, r3
d8d6: e02a b.n d92e <lv_draw_rect+0x18be>
d8d8: 2300 movs r3, #0
d8da: 9300 str r3, [sp, #0]
d8dc: 465b mov r3, fp
d8de: 6adb ldr r3, [r3, #44] ; 0x2c
d8e0: aa22 add r2, sp, #136 ; 0x88
d8e2: 9904 ldr r1, [sp, #16]
d8e4: 9805 ldr r0, [sp, #20]
d8e6: 47d0 blx sl
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
d8e8: 8823 ldrh r3, [r4, #0]
d8ea: 18eb adds r3, r5, r3
d8ec: b21b sxth r3, r3
d8ee: 8023 strh r3, [r4, #0]
d8f0: 88a2 ldrh r2, [r4, #4]
d8f2: 18aa adds r2, r5, r2
d8f4: 80a2 strh r2, [r4, #4]
d8f6: 464a mov r2, r9
d8f8: 2104 movs r1, #4
d8fa: 5e52 ldrsh r2, [r2, r1]
d8fc: 429a cmp r2, r3
d8fe: db08 blt.n d912 <lv_draw_rect+0x18a2>
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
d900: 2f02 cmp r7, #2
d902: d0e9 beq.n d8d8 <lv_draw_rect+0x1868>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
d904: ab1e add r3, sp, #120 ; 0x78
d906: 465a mov r2, fp
d908: 6ad2 ldr r2, [r2, #44] ; 0x2c
d90a: 9904 ldr r1, [sp, #16]
d90c: 9805 ldr r0, [sp, #20]
d90e: 47b0 blx r6
d910: e7ea b.n d8e8 <lv_draw_rect+0x1878>
d912: 464b mov r3, r9
d914: 46b9 mov r9, r7
d916: 001f movs r7, r3
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
d918: 8863 ldrh r3, [r4, #2]
d91a: 4443 add r3, r8
d91c: b21b sxth r3, r3
d91e: 8063 strh r3, [r4, #2]
d920: 88e2 ldrh r2, [r4, #6]
d922: 4442 add r2, r8
d924: 80e2 strh r2, [r4, #6]
d926: 2106 movs r1, #6
d928: 5e7a ldrsh r2, [r7, r1]
d92a: 429a cmp r2, r3
d92c: db10 blt.n d950 <lv_draw_rect+0x18e0>
coords_tmp.x1 = coords->x1 - ofs_x;
d92e: 883b ldrh r3, [r7, #0]
d930: 9a06 ldr r2, [sp, #24]
d932: 1a9b subs r3, r3, r2
d934: b29b uxth r3, r3
d936: b21a sxth r2, r3
d938: 8022 strh r2, [r4, #0]
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
d93a: 1e69 subs r1, r5, #1
d93c: 185b adds r3, r3, r1
d93e: 80a3 strh r3, [r4, #4]
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
d940: 2104 movs r1, #4
d942: 5e7b ldrsh r3, [r7, r1]
d944: 4293 cmp r3, r2
d946: dbe7 blt.n d918 <lv_draw_rect+0x18a8>
d948: 003b movs r3, r7
d94a: 464f mov r7, r9
d94c: 4699 mov r9, r3
d94e: e7d7 b.n d900 <lv_draw_rect+0x1890>
d950: 46b9 mov r9, r7
lv_draw_mask_remove_id(radius_mask_id);
d952: 9807 ldr r0, [sp, #28]
d954: 4b1b ldr r3, [pc, #108] ; (d9c4 <lv_draw_rect+0x1954>)
d956: 4798 blx r3
d958: f7ff fadf bl cf1a <lv_draw_rect+0xeaa>
coords_tmp.y1 += y_corr;
d95c: 2201 movs r2, #1
d95e: 4014 ands r4, r2
d960: a81c add r0, sp, #112 ; 0x70
d962: 1909 adds r1, r1, r4
d964: 8041 strh r1, [r0, #2]
coords_tmp.y2 += y_corr;
d966: 191b adds r3, r3, r4
d968: 80c3 strh r3, [r0, #6]
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
d96a: 465b mov r3, fp
d96c: 2200 movs r2, #0
d96e: 5e9a ldrsh r2, [r3, r2]
d970: 4649 mov r1, r9
d972: 4b12 ldr r3, [pc, #72] ; (d9bc <lv_draw_rect+0x194c>)
d974: 4798 blx r3
d976: 2800 cmp r0, #0
d978: d116 bne.n d9a8 <lv_draw_rect+0x1938>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
d97a: 465b mov r3, fp
d97c: 2200 movs r2, #0
d97e: 5e9a ldrsh r2, [r3, r2]
d980: 2300 movs r3, #0
d982: 4649 mov r1, r9
d984: a829 add r0, sp, #164 ; 0xa4
d986: 4c10 ldr r4, [pc, #64] ; (d9c8 <lv_draw_rect+0x1958>)
d988: 47a0 blx r4
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
d98a: 2100 movs r1, #0
d98c: a829 add r0, sp, #164 ; 0xa4
d98e: 4b0f ldr r3, [pc, #60] ; (d9cc <lv_draw_rect+0x195c>)
d990: 4798 blx r3
d992: 0004 movs r4, r0
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
d994: 2300 movs r3, #0
d996: 9300 str r3, [sp, #0]
d998: 465b mov r3, fp
d99a: 6adb ldr r3, [r3, #44] ; 0x2c
d99c: aa22 add r2, sp, #136 ; 0x88
d99e: 9904 ldr r1, [sp, #16]
d9a0: a81c add r0, sp, #112 ; 0x70
d9a2: 4d0c ldr r5, [pc, #48] ; (d9d4 <lv_draw_rect+0x1964>)
d9a4: 47a8 blx r5
d9a6: e752 b.n d84e <lv_draw_rect+0x17de>
int16_t radius_mask_id = LV_MASK_ID_INV;
d9a8: 2401 movs r4, #1
d9aa: 4264 negs r4, r4
d9ac: e7f2 b.n d994 <lv_draw_rect+0x1924>
d9ae: 46c0 nop ; (mov r8, r8)
d9b0: 000095ed .word 0x000095ed
d9b4: 00007c18 .word 0x00007c18
d9b8: 00013f3d .word 0x00013f3d
d9bc: 00011699 .word 0x00011699
d9c0: 00009305 .word 0x00009305
d9c4: 0000bb25 .word 0x0000bb25
d9c8: 0000bd01 .word 0x0000bd01
d9cc: 0000ba75 .word 0x0000ba75
d9d0: 0001c385 .word 0x0001c385
d9d4: 0000963d .word 0x0000963d
draw_area.x1 -= disp_area->x1;
d9d8: 8a38 ldrh r0, [r7, #16]
d9da: aa18 add r2, sp, #96 ; 0x60
d9dc: 8811 ldrh r1, [r2, #0]
d9de: 1a09 subs r1, r1, r0
d9e0: b289 uxth r1, r1
d9e2: 8011 strh r1, [r2, #0]
draw_area.y1 -= disp_area->y1;
d9e4: 8a7d ldrh r5, [r7, #18]
d9e6: 8854 ldrh r4, [r2, #2]
d9e8: 1b64 subs r4, r4, r5
d9ea: 8054 strh r4, [r2, #2]
draw_area.x2 -= disp_area->x1;
d9ec: 8893 ldrh r3, [r2, #4]
d9ee: 1a1b subs r3, r3, r0
d9f0: b29b uxth r3, r3
d9f2: 8093 strh r3, [r2, #4]
draw_area.y2 -= disp_area->y1;
d9f4: 88d0 ldrh r0, [r2, #6]
d9f6: 1b40 subs r0, r0, r5
d9f8: 80d0 strh r0, [r2, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
d9fa: 3301 adds r3, #1
d9fc: 1a5b subs r3, r3, r1
d9fe: b21b sxth r3, r3
da00: 930a str r3, [sp, #40] ; 0x28
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
da02: 930b str r3, [sp, #44] ; 0x2c
da04: 0018 movs r0, r3
da06: 4bb8 ldr r3, [pc, #736] ; (dce8 <lv_draw_rect+0x1c78>)
da08: 4798 blx r3
da0a: 9005 str r0, [sp, #20]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
da0c: 4bb7 ldr r3, [pc, #732] ; (dcec <lv_draw_rect+0x1c7c>)
da0e: 4798 blx r3
if(other_mask_cnt) simple_mode = false;
da10: 2500 movs r5, #0
da12: 2800 cmp r0, #0
da14: d106 bne.n da24 <lv_draw_rect+0x19b4>
else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false;
da16: 465b mov r3, fp
da18: 2512 movs r5, #18
da1a: 5f5d ldrsh r5, [r3, r5]
da1c: 3d0f subs r5, #15
da1e: 426a negs r2, r5
da20: 416a adcs r2, r5
da22: b2d5 uxtb r5, r2
int32_t rout = dsc->radius;
da24: 465b mov r3, fp
da26: 2100 movs r1, #0
da28: 5e59 ldrsh r1, [r3, r1]
da2a: 464b mov r3, r9
da2c: 889b ldrh r3, [r3, #4]
da2e: 3301 adds r3, #1
da30: 464a mov r2, r9
da32: 8812 ldrh r2, [r2, #0]
da34: 1a9b subs r3, r3, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
da36: 464a mov r2, r9
da38: 88d2 ldrh r2, [r2, #6]
da3a: 3201 adds r2, #1
da3c: 4648 mov r0, r9
da3e: 8840 ldrh r0, [r0, #2]
da40: 1a12 subs r2, r2, r0
int32_t coords_h = lv_area_get_height(coords);
da42: b212 sxth r2, r2
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
da44: b21b sxth r3, r3
da46: 4293 cmp r3, r2
da48: dd00 ble.n da4c <lv_draw_rect+0x19dc>
da4a: 0013 movs r3, r2
if(rout > short_side >> 1) rout = short_side >> 1;
da4c: 105b asrs r3, r3, #1
da4e: 9309 str r3, [sp, #36] ; 0x24
da50: 428b cmp r3, r1
da52: dd00 ble.n da56 <lv_draw_rect+0x19e6>
da54: 9109 str r1, [sp, #36] ; 0x24
if(rout > 0) {
da56: 9b09 ldr r3, [sp, #36] ; 0x24
da58: 2b00 cmp r3, #0
da5a: dc00 bgt.n da5e <lv_draw_rect+0x19ee>
da5c: e084 b.n db68 <lv_draw_rect+0x1af8>
lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false);
da5e: b21a sxth r2, r3
da60: 2300 movs r3, #0
da62: 4649 mov r1, r9
da64: a822 add r0, sp, #136 ; 0x88
da66: 4ca2 ldr r4, [pc, #648] ; (dcf0 <lv_draw_rect+0x1c80>)
da68: 47a0 blx r4
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
da6a: 2100 movs r1, #0
da6c: a822 add r0, sp, #136 ; 0x88
da6e: 4ba1 ldr r3, [pc, #644] ; (dcf4 <lv_draw_rect+0x1c84>)
da70: 4798 blx r3
da72: 900f str r0, [sp, #60] ; 0x3c
int32_t rin = rout - dsc->border_width;
da74: 465b mov r3, fp
da76: 2010 movs r0, #16
da78: 5e18 ldrsh r0, [r3, r0]
da7a: 2300 movs r3, #0
*d8 = *s8;
da7c: a91a add r1, sp, #104 ; 0x68
da7e: 464c mov r4, r9
da80: 5ce2 ldrb r2, [r4, r3]
da82: 545a strb r2, [r3, r1]
da84: 3301 adds r3, #1
while(len) {
da86: 2b08 cmp r3, #8
da88: d1fa bne.n da80 <lv_draw_rect+0x1a10>
da8a: 46a1 mov r9, r4
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
da8c: ab1a add r3, sp, #104 ; 0x68
da8e: 881a ldrh r2, [r3, #0]
da90: 465b mov r3, fp
da92: 8a5b ldrh r3, [r3, #18]
da94: 0759 lsls r1, r3, #29
da96: d56b bpl.n db70 <lv_draw_rect+0x1b00>
da98: b284 uxth r4, r0
da9a: a91a add r1, sp, #104 ; 0x68
da9c: 1912 adds r2, r2, r4
da9e: 800a strh r2, [r1, #0]
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
daa0: 888a ldrh r2, [r1, #4]
daa2: 0719 lsls r1, r3, #28
daa4: d569 bpl.n db7a <lv_draw_rect+0x1b0a>
daa6: b284 uxth r4, r0
daa8: a91a add r1, sp, #104 ; 0x68
daaa: 1b12 subs r2, r2, r4
daac: 808a strh r2, [r1, #4]
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
daae: 884a ldrh r2, [r1, #2]
dab0: 0799 lsls r1, r3, #30
dab2: d567 bpl.n db84 <lv_draw_rect+0x1b14>
dab4: b284 uxth r4, r0
dab6: a91a add r1, sp, #104 ; 0x68
dab8: 1912 adds r2, r2, r4
daba: 804a strh r2, [r1, #2]
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
dabc: 88ca ldrh r2, [r1, #6]
dabe: 07db lsls r3, r3, #31
dac0: d565 bpl.n db8e <lv_draw_rect+0x1b1e>
dac2: b283 uxth r3, r0
dac4: a91a add r1, sp, #104 ; 0x68
dac6: 1ad3 subs r3, r2, r3
dac8: 80cb strh r3, [r1, #6]
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
daca: 9b09 ldr r3, [sp, #36] ; 0x24
dacc: 4698 mov r8, r3
dace: 466a mov r2, sp
dad0: 8313 strh r3, [r2, #24]
dad2: 8b13 ldrh r3, [r2, #24]
dad4: 469a mov sl, r3
dad6: 1a1a subs r2, r3, r0
dad8: b212 sxth r2, r2
dada: 2301 movs r3, #1
dadc: a829 add r0, sp, #164 ; 0xa4
dade: 4c84 ldr r4, [pc, #528] ; (dcf0 <lv_draw_rect+0x1c80>)
dae0: 47a0 blx r4
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
dae2: 2100 movs r1, #0
dae4: a829 add r0, sp, #164 ; 0xa4
dae6: 4b83 ldr r3, [pc, #524] ; (dcf4 <lv_draw_rect+0x1c84>)
dae8: 4798 blx r3
daea: 9010 str r0, [sp, #64] ; 0x40
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
daec: 465b mov r3, fp
daee: 2010 movs r0, #16
daf0: 5e1b ldrsh r3, [r3, r0]
daf2: 3b01 subs r3, #1
daf4: 930d str r3, [sp, #52] ; 0x34
daf6: 4641 mov r1, r8
daf8: 4543 cmp r3, r8
dafa: da00 bge.n dafe <lv_draw_rect+0x1a8e>
dafc: 910d str r1, [sp, #52] ; 0x34
lv_color_t color = dsc->border_color;
dafe: 465b mov r3, fp
db00: 89db ldrh r3, [r3, #14]
db02: 9311 str r3, [sp, #68] ; 0x44
db04: 466a mov r2, sp
db06: 8393 strh r3, [r2, #28]
lv_blend_mode_t blend_mode = dsc->border_blend_mode;
db08: 465b mov r3, fp
db0a: 7d5b ldrb r3, [r3, #21]
db0c: 9306 str r3, [sp, #24]
if(simple_mode) {
db0e: 2d00 cmp r5, #0
db10: d100 bne.n db14 <lv_draw_rect+0x1aa4>
db12: e1bc b.n de8e <lv_draw_rect+0x1e1e>
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
db14: 2212 movs r2, #18
db16: 5ebb ldrsh r3, [r7, r2]
db18: 464a mov r2, r9
db1a: 2102 movs r1, #2
db1c: 5e52 ldrsh r2, [r2, r1]
db1e: 1ad2 subs r2, r2, r3
db20: 990d ldr r1, [sp, #52] ; 0x34
db22: 468c mov ip, r1
db24: 4462 add r2, ip
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
db26: a918 add r1, sp, #96 ; 0x60
db28: 2006 movs r0, #6
db2a: 5e09 ldrsh r1, [r1, r0]
db2c: 910c str r1, [sp, #48] ; 0x30
db2e: 4291 cmp r1, r2
db30: dd00 ble.n db34 <lv_draw_rect+0x1ac4>
db32: 920c str r2, [sp, #48] ; 0x30
fill_area.x1 = coords->x1;
db34: aa1c add r2, sp, #112 ; 0x70
db36: 4649 mov r1, r9
db38: 8809 ldrh r1, [r1, #0]
db3a: 8011 strh r1, [r2, #0]
fill_area.x2 = coords->x2;
db3c: 4649 mov r1, r9
db3e: 8889 ldrh r1, [r1, #4]
db40: 8091 strh r1, [r2, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
db42: a918 add r1, sp, #96 ; 0x60
db44: 2502 movs r5, #2
db46: 5f4d ldrsh r5, [r1, r5]
db48: 195b adds r3, r3, r5
db4a: b21b sxth r3, r3
db4c: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
db4e: 80d3 strh r3, [r2, #6]
for(h = draw_area.y1; h <= upper_corner_end; h++) {
db50: 9b0c ldr r3, [sp, #48] ; 0x30
db52: 42ab cmp r3, r5
db54: da00 bge.n db58 <lv_draw_rect+0x1ae8>
db56: e09f b.n dc98 <lv_draw_rect+0x1c28>
fill_area2.y1 = fill_area.y1;
db58: ac1e add r4, sp, #120 ; 0x78
db5a: 9508 str r5, [sp, #32]
db5c: 464b mov r3, r9
db5e: 46b1 mov r9, r6
db60: 465a mov r2, fp
db62: 920e str r2, [sp, #56] ; 0x38
db64: 001e movs r6, r3
db66: e047 b.n dbf8 <lv_draw_rect+0x1b88>
int16_t mask_rout_id = LV_MASK_ID_INV;
db68: 2301 movs r3, #1
db6a: 425b negs r3, r3
db6c: 930f str r3, [sp, #60] ; 0x3c
db6e: e781 b.n da74 <lv_draw_rect+0x1a04>
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
db70: 9909 ldr r1, [sp, #36] ; 0x24
db72: 1844 adds r4, r0, r1
db74: 4264 negs r4, r4
db76: b2a4 uxth r4, r4
db78: e78f b.n da9a <lv_draw_rect+0x1a2a>
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
db7a: 9909 ldr r1, [sp, #36] ; 0x24
db7c: 1844 adds r4, r0, r1
db7e: 4264 negs r4, r4
db80: b2a4 uxth r4, r4
db82: e791 b.n daa8 <lv_draw_rect+0x1a38>
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
db84: 9909 ldr r1, [sp, #36] ; 0x24
db86: 1844 adds r4, r0, r1
db88: 4264 negs r4, r4
db8a: b2a4 uxth r4, r4
db8c: e793 b.n dab6 <lv_draw_rect+0x1a46>
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
db8e: 9b09 ldr r3, [sp, #36] ; 0x24
db90: 18c3 adds r3, r0, r3
db92: 425b negs r3, r3
db94: b29b uxth r3, r3
db96: e795 b.n dac4 <lv_draw_rect+0x1a54>
fill_area2.x1 = coords->x2 - rout + 1;
db98: 2204 movs r2, #4
db9a: 5eb3 ldrsh r3, [r6, r2]
db9c: 1c5a adds r2, r3, #1
db9e: 4651 mov r1, sl
dba0: 1a52 subs r2, r2, r1
dba2: 8022 strh r2, [r4, #0]
fill_area2.x2 = coords->x2;
dba4: 80a3 strh r3, [r4, #4]
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
dba6: 9a09 ldr r2, [sp, #36] ; 0x24
dba8: 1a9a subs r2, r3, r2
dbaa: 3201 adds r2, #1
dbac: 2110 movs r1, #16
dbae: 5e7b ldrsh r3, [r7, r1]
dbb0: a90e add r1, sp, #56 ; 0x38
dbb2: 2028 movs r0, #40 ; 0x28
dbb4: 5e09 ldrsh r1, [r1, r0]
dbb6: 185b adds r3, r3, r1
dbb8: 1ad3 subs r3, r2, r3
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
dbba: 43da mvns r2, r3
dbbc: 17d2 asrs r2, r2, #31
dbbe: 4013 ands r3, r2
dbc0: 9a05 ldr r2, [sp, #20]
dbc2: 4694 mov ip, r2
dbc4: 4463 add r3, ip
dbc6: 9a06 ldr r2, [sp, #24]
dbc8: 9202 str r2, [sp, #8]
dbca: 464a mov r2, r9
dbcc: 9201 str r2, [sp, #4]
dbce: 4642 mov r2, r8
dbd0: 9200 str r2, [sp, #0]
dbd2: 466a mov r2, sp
dbd4: 8b92 ldrh r2, [r2, #28]
dbd6: 0021 movs r1, r4
dbd8: 9804 ldr r0, [sp, #16]
dbda: 4d47 ldr r5, [pc, #284] ; (dcf8 <lv_draw_rect+0x1c88>)
dbdc: 47a8 blx r5
fill_area.y1++;
dbde: ab1c add r3, sp, #112 ; 0x70
dbe0: 885a ldrh r2, [r3, #2]
dbe2: 3201 adds r2, #1
dbe4: 805a strh r2, [r3, #2]
fill_area.y2++;
dbe6: 88da ldrh r2, [r3, #6]
dbe8: 3201 adds r2, #1
dbea: 80da strh r2, [r3, #6]
for(h = draw_area.y1; h <= upper_corner_end; h++) {
dbec: 9a08 ldr r2, [sp, #32]
dbee: 3201 adds r2, #1
dbf0: 9208 str r2, [sp, #32]
dbf2: 9b0c ldr r3, [sp, #48] ; 0x30
dbf4: 4293 cmp r3, r2
dbf6: db4a blt.n dc8e <lv_draw_rect+0x1c1e>
_lv_memset_ff(mask_buf, draw_area_w);
dbf8: 990b ldr r1, [sp, #44] ; 0x2c
dbfa: 9d05 ldr r5, [sp, #20]
dbfc: 0028 movs r0, r5
dbfe: 4b3f ldr r3, [pc, #252] ; (dcfc <lv_draw_rect+0x1c8c>)
dc00: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
dc02: 8a7a ldrh r2, [r7, #18]
dc04: 9b08 ldr r3, [sp, #32]
dc06: 469c mov ip, r3
dc08: 4462 add r2, ip
dc0a: b212 sxth r2, r2
dc0c: 8a39 ldrh r1, [r7, #16]
dc0e: ab0e add r3, sp, #56 ; 0x38
dc10: 8d1b ldrh r3, [r3, #40] ; 0x28
dc12: 18c9 adds r1, r1, r3
dc14: b209 sxth r1, r1
dc16: 9b0a ldr r3, [sp, #40] ; 0x28
dc18: 9505 str r5, [sp, #20]
dc1a: 0028 movs r0, r5
dc1c: 4d38 ldr r5, [pc, #224] ; (dd00 <lv_draw_rect+0x1c90>)
dc1e: 47a8 blx r5
dc20: 4680 mov r8, r0
fill_area2.y1 = fill_area.y1;
dc22: ab1c add r3, sp, #112 ; 0x70
dc24: 885a ldrh r2, [r3, #2]
dc26: 8062 strh r2, [r4, #2]
fill_area2.y2 = fill_area.y2;
dc28: 88db ldrh r3, [r3, #6]
dc2a: 80e3 strh r3, [r4, #6]
fill_area2.x1 = coords->x1;
dc2c: 2200 movs r2, #0
dc2e: 5eb3 ldrsh r3, [r6, r2]
dc30: 8023 strh r3, [r4, #0]
fill_area2.x2 = coords->x1 + rout - 1;
dc32: 3b01 subs r3, #1
dc34: 4453 add r3, sl
dc36: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
dc38: 9a06 ldr r2, [sp, #24]
dc3a: 9202 str r2, [sp, #8]
dc3c: 464a mov r2, r9
dc3e: 9201 str r2, [sp, #4]
dc40: 9000 str r0, [sp, #0]
dc42: 9b05 ldr r3, [sp, #20]
dc44: 466a mov r2, sp
dc46: 8b92 ldrh r2, [r2, #28]
dc48: 0021 movs r1, r4
dc4a: 9804 ldr r0, [sp, #16]
dc4c: 4d2a ldr r5, [pc, #168] ; (dcf8 <lv_draw_rect+0x1c88>)
dc4e: 47a8 blx r5
if(fill_area2.y2 < coords->y1 + dsc->border_width) {
dc50: 2306 movs r3, #6
dc52: 5ee2 ldrsh r2, [r4, r3]
dc54: 2102 movs r1, #2
dc56: 5e73 ldrsh r3, [r6, r1]
dc58: 990e ldr r1, [sp, #56] ; 0x38
dc5a: 2010 movs r0, #16
dc5c: 5e09 ldrsh r1, [r1, r0]
dc5e: 185b adds r3, r3, r1
dc60: 429a cmp r2, r3
dc62: da99 bge.n db98 <lv_draw_rect+0x1b28>
fill_area2.x1 = coords->x1 + rout;
dc64: 8833 ldrh r3, [r6, #0]
dc66: 4453 add r3, sl
dc68: 8023 strh r3, [r4, #0]
fill_area2.x2 = coords->x2 - rout;
dc6a: 88b3 ldrh r3, [r6, #4]
dc6c: 4652 mov r2, sl
dc6e: 1a9b subs r3, r3, r2
dc70: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
dc72: 9b06 ldr r3, [sp, #24]
dc74: 9302 str r3, [sp, #8]
dc76: 464b mov r3, r9
dc78: 9301 str r3, [sp, #4]
dc7a: 2301 movs r3, #1
dc7c: 9300 str r3, [sp, #0]
dc7e: 2300 movs r3, #0
dc80: 466a mov r2, sp
dc82: 8b92 ldrh r2, [r2, #28]
dc84: 0021 movs r1, r4
dc86: 9804 ldr r0, [sp, #16]
dc88: 4d1b ldr r5, [pc, #108] ; (dcf8 <lv_draw_rect+0x1c88>)
dc8a: 47a8 blx r5
dc8c: e784 b.n db98 <lv_draw_rect+0x1b28>
dc8e: 0032 movs r2, r6
dc90: 464e mov r6, r9
dc92: 9b0e ldr r3, [sp, #56] ; 0x38
dc94: 469b mov fp, r3
dc96: 4691 mov r9, r2
int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size;
dc98: 2212 movs r2, #18
dc9a: 5ebb ldrsh r3, [r7, r2]
dc9c: 464a mov r2, r9
dc9e: 2106 movs r1, #6
dca0: 5e52 ldrsh r2, [r2, r1]
dca2: 1ad2 subs r2, r2, r3
dca4: 990d ldr r1, [sp, #52] ; 0x34
dca6: 1a52 subs r2, r2, r1
lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1);
dca8: a918 add r1, sp, #96 ; 0x60
dcaa: 2502 movs r5, #2
dcac: 5f4d ldrsh r5, [r1, r5]
dcae: 4295 cmp r5, r2
dcb0: da00 bge.n dcb4 <lv_draw_rect+0x1c44>
dcb2: 0015 movs r5, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
dcb4: 990c ldr r1, [sp, #48] ; 0x30
dcb6: 000a movs r2, r1
dcb8: 42a9 cmp r1, r5
dcba: db01 blt.n dcc0 <lv_draw_rect+0x1c50>
dcbc: 3201 adds r2, #1
dcbe: 0015 movs r5, r2
fill_area.y1 = disp_area->y1 + lower_corner_end;
dcc0: 195b adds r3, r3, r5
dcc2: b21b sxth r3, r3
dcc4: aa1c add r2, sp, #112 ; 0x70
dcc6: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
dcc8: 80d3 strh r3, [r2, #6]
for(h = lower_corner_end; h <= draw_area.y2; h++) {
dcca: ab18 add r3, sp, #96 ; 0x60
dccc: 2206 movs r2, #6
dcce: 5e9b ldrsh r3, [r3, r2]
dcd0: 429d cmp r5, r3
dcd2: dd00 ble.n dcd6 <lv_draw_rect+0x1c66>
dcd4: e099 b.n de0a <lv_draw_rect+0x1d9a>
fill_area2.x1 = coords->x1;
dcd6: ac1e add r4, sp, #120 ; 0x78
dcd8: 9508 str r5, [sp, #32]
dcda: 464b mov r3, r9
dcdc: 46b1 mov r9, r6
dcde: 465a mov r2, fp
dce0: 920c str r2, [sp, #48] ; 0x30
dce2: 001e movs r6, r3
dce4: e041 b.n dd6a <lv_draw_rect+0x1cfa>
dce6: 46c0 nop ; (mov r8, r8)
dce8: 000127a1 .word 0x000127a1
dcec: 0000bb6d .word 0x0000bb6d
dcf0: 0000bd01 .word 0x0000bd01
dcf4: 0000ba75 .word 0x0000ba75
dcf8: 00006fed .word 0x00006fed
dcfc: 00012a19 .word 0x00012a19
dd00: 0000bad1 .word 0x0000bad1
fill_area2.x1 = coords->x2 - rout + 1;
dd04: 2204 movs r2, #4
dd06: 5eb3 ldrsh r3, [r6, r2]
dd08: 1c5a adds r2, r3, #1
dd0a: 4651 mov r1, sl
dd0c: 1a52 subs r2, r2, r1
dd0e: 8022 strh r2, [r4, #0]
fill_area2.x2 = coords->x2;
dd10: 80a3 strh r3, [r4, #4]
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
dd12: 9a09 ldr r2, [sp, #36] ; 0x24
dd14: 1a9a subs r2, r3, r2
dd16: 3201 adds r2, #1
dd18: 2110 movs r1, #16
dd1a: 5e7b ldrsh r3, [r7, r1]
dd1c: a90e add r1, sp, #56 ; 0x38
dd1e: 2028 movs r0, #40 ; 0x28
dd20: 5e09 ldrsh r1, [r1, r0]
dd22: 185b adds r3, r3, r1
dd24: 1ad3 subs r3, r2, r3
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
dd26: 43da mvns r2, r3
dd28: 17d2 asrs r2, r2, #31
dd2a: 4013 ands r3, r2
dd2c: 9a05 ldr r2, [sp, #20]
dd2e: 4694 mov ip, r2
dd30: 4463 add r3, ip
dd32: 9a06 ldr r2, [sp, #24]
dd34: 9202 str r2, [sp, #8]
dd36: 464a mov r2, r9
dd38: 9201 str r2, [sp, #4]
dd3a: 4642 mov r2, r8
dd3c: 9200 str r2, [sp, #0]
dd3e: 466a mov r2, sp
dd40: 8b92 ldrh r2, [r2, #28]
dd42: 0021 movs r1, r4
dd44: 9804 ldr r0, [sp, #16]
dd46: 4daf ldr r5, [pc, #700] ; (e004 <lv_draw_rect+0x1f94>)
dd48: 47a8 blx r5
fill_area.y1++;
dd4a: ab1c add r3, sp, #112 ; 0x70
dd4c: 885a ldrh r2, [r3, #2]
dd4e: 3201 adds r2, #1
dd50: 805a strh r2, [r3, #2]
fill_area.y2++;
dd52: 88da ldrh r2, [r3, #6]
dd54: 3201 adds r2, #1
dd56: 80da strh r2, [r3, #6]
for(h = lower_corner_end; h <= draw_area.y2; h++) {
dd58: 9a08 ldr r2, [sp, #32]
dd5a: 3201 adds r2, #1
dd5c: 0011 movs r1, r2
dd5e: 9208 str r2, [sp, #32]
dd60: ab0e add r3, sp, #56 ; 0x38
dd62: 222e movs r2, #46 ; 0x2e
dd64: 5e9b ldrsh r3, [r3, r2]
dd66: 4299 cmp r1, r3
dd68: dc4a bgt.n de00 <lv_draw_rect+0x1d90>
_lv_memset_ff(mask_buf, draw_area_w);
dd6a: 990b ldr r1, [sp, #44] ; 0x2c
dd6c: 9d05 ldr r5, [sp, #20]
dd6e: 0028 movs r0, r5
dd70: 4ba5 ldr r3, [pc, #660] ; (e008 <lv_draw_rect+0x1f98>)
dd72: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
dd74: 8a7a ldrh r2, [r7, #18]
dd76: 9b08 ldr r3, [sp, #32]
dd78: 469c mov ip, r3
dd7a: 4462 add r2, ip
dd7c: b212 sxth r2, r2
dd7e: 8a39 ldrh r1, [r7, #16]
dd80: ab0e add r3, sp, #56 ; 0x38
dd82: 8d1b ldrh r3, [r3, #40] ; 0x28
dd84: 18c9 adds r1, r1, r3
dd86: b209 sxth r1, r1
dd88: 9b0a ldr r3, [sp, #40] ; 0x28
dd8a: 9505 str r5, [sp, #20]
dd8c: 0028 movs r0, r5
dd8e: 4d9f ldr r5, [pc, #636] ; (e00c <lv_draw_rect+0x1f9c>)
dd90: 47a8 blx r5
dd92: 4680 mov r8, r0
fill_area2.x1 = coords->x1;
dd94: 2200 movs r2, #0
dd96: 5eb3 ldrsh r3, [r6, r2]
dd98: 8023 strh r3, [r4, #0]
fill_area2.x2 = coords->x1 + rout - 1;
dd9a: 3b01 subs r3, #1
dd9c: 4453 add r3, sl
dd9e: 80a3 strh r3, [r4, #4]
fill_area2.y1 = fill_area.y1;
dda0: ab1c add r3, sp, #112 ; 0x70
dda2: 885a ldrh r2, [r3, #2]
dda4: 8062 strh r2, [r4, #2]
fill_area2.y2 = fill_area.y2;
dda6: 88db ldrh r3, [r3, #6]
dda8: 80e3 strh r3, [r4, #6]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
ddaa: 9a06 ldr r2, [sp, #24]
ddac: 9202 str r2, [sp, #8]
ddae: 464a mov r2, r9
ddb0: 9201 str r2, [sp, #4]
ddb2: 9000 str r0, [sp, #0]
ddb4: 9b05 ldr r3, [sp, #20]
ddb6: 466a mov r2, sp
ddb8: 8b92 ldrh r2, [r2, #28]
ddba: 0021 movs r1, r4
ddbc: 9804 ldr r0, [sp, #16]
ddbe: 4d91 ldr r5, [pc, #580] ; (e004 <lv_draw_rect+0x1f94>)
ddc0: 47a8 blx r5
if(fill_area2.y2 > coords->y2 - dsc->border_width) {
ddc2: 2306 movs r3, #6
ddc4: 5ee2 ldrsh r2, [r4, r3]
ddc6: 2106 movs r1, #6
ddc8: 5e73 ldrsh r3, [r6, r1]
ddca: 990c ldr r1, [sp, #48] ; 0x30
ddcc: 2010 movs r0, #16
ddce: 5e09 ldrsh r1, [r1, r0]
ddd0: 1a5b subs r3, r3, r1
ddd2: 429a cmp r2, r3
ddd4: dd96 ble.n dd04 <lv_draw_rect+0x1c94>
fill_area2.x1 = coords->x1 + rout;
ddd6: 8833 ldrh r3, [r6, #0]
ddd8: 4453 add r3, sl
ddda: 8023 strh r3, [r4, #0]
fill_area2.x2 = coords->x2 - rout;
dddc: 88b3 ldrh r3, [r6, #4]
ddde: 4652 mov r2, sl
dde0: 1a9b subs r3, r3, r2
dde2: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
dde4: 9b06 ldr r3, [sp, #24]
dde6: 9302 str r3, [sp, #8]
dde8: 464b mov r3, r9
ddea: 9301 str r3, [sp, #4]
ddec: 2301 movs r3, #1
ddee: 9300 str r3, [sp, #0]
ddf0: 2300 movs r3, #0
ddf2: 466a mov r2, sp
ddf4: 8b92 ldrh r2, [r2, #28]
ddf6: 0021 movs r1, r4
ddf8: 9804 ldr r0, [sp, #16]
ddfa: 4d82 ldr r5, [pc, #520] ; (e004 <lv_draw_rect+0x1f94>)
ddfc: 47a8 blx r5
ddfe: e781 b.n dd04 <lv_draw_rect+0x1c94>
de00: 0032 movs r2, r6
de02: 464e mov r6, r9
de04: 9b0c ldr r3, [sp, #48] ; 0x30
de06: 469b mov fp, r3
de08: 4691 mov r9, r2
fill_area.y1 = coords->y1 + corner_size + 1;
de0a: 466b mov r3, sp
de0c: 8e99 ldrh r1, [r3, #52] ; 0x34
de0e: ac1c add r4, sp, #112 ; 0x70
de10: 464b mov r3, r9
de12: 885a ldrh r2, [r3, #2]
de14: 3201 adds r2, #1
de16: 188a adds r2, r1, r2
de18: 8062 strh r2, [r4, #2]
fill_area.y2 = coords->y2 - corner_size - 1;
de1a: 88db ldrh r3, [r3, #6]
de1c: 3b01 subs r3, #1
de1e: 1a5b subs r3, r3, r1
de20: 80e3 strh r3, [r4, #6]
fill_area.x1 = coords->x1;
de22: 464b mov r3, r9
de24: 2200 movs r2, #0
de26: 5e9b ldrsh r3, [r3, r2]
de28: 8023 strh r3, [r4, #0]
fill_area.x2 = coords->x1 + dsc->border_width - 1;
de2a: 465a mov r2, fp
de2c: 8a12 ldrh r2, [r2, #16]
de2e: 3a01 subs r2, #1
de30: 189b adds r3, r3, r2
de32: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
de34: 9b06 ldr r3, [sp, #24]
de36: 9302 str r3, [sp, #8]
de38: 9601 str r6, [sp, #4]
de3a: 2701 movs r7, #1
de3c: 9700 str r7, [sp, #0]
de3e: 2300 movs r3, #0
de40: 466a mov r2, sp
de42: 2144 movs r1, #68 ; 0x44
de44: 1852 adds r2, r2, r1
de46: 8812 ldrh r2, [r2, #0]
de48: 0021 movs r1, r4
de4a: 9804 ldr r0, [sp, #16]
de4c: 4d6d ldr r5, [pc, #436] ; (e004 <lv_draw_rect+0x1f94>)
de4e: 47a8 blx r5
fill_area.x1 = coords->x2 - dsc->border_width + 1;
de50: 464a mov r2, r9
de52: 2104 movs r1, #4
de54: 5e52 ldrsh r2, [r2, r1]
de56: 4659 mov r1, fp
de58: 8a0b ldrh r3, [r1, #16]
de5a: 1ad3 subs r3, r2, r3
de5c: 3301 adds r3, #1
de5e: 8023 strh r3, [r4, #0]
fill_area.x2 = coords->x2;
de60: 80a2 strh r2, [r4, #4]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
de62: 9b06 ldr r3, [sp, #24]
de64: 9302 str r3, [sp, #8]
de66: 9601 str r6, [sp, #4]
de68: 9700 str r7, [sp, #0]
de6a: 2300 movs r3, #0
de6c: 466a mov r2, sp
de6e: 2144 movs r1, #68 ; 0x44
de70: 1852 adds r2, r2, r1
de72: 8812 ldrh r2, [r2, #0]
de74: 0021 movs r1, r4
de76: 9804 ldr r0, [sp, #16]
de78: 47a8 blx r5
lv_draw_mask_remove_id(mask_rin_id);
de7a: 9810 ldr r0, [sp, #64] ; 0x40
de7c: 4c64 ldr r4, [pc, #400] ; (e010 <lv_draw_rect+0x1fa0>)
de7e: 47a0 blx r4
lv_draw_mask_remove_id(mask_rout_id);
de80: 980f ldr r0, [sp, #60] ; 0x3c
de82: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
de84: 9805 ldr r0, [sp, #20]
de86: 4b63 ldr r3, [pc, #396] ; (e014 <lv_draw_rect+0x1fa4>)
de88: 4798 blx r3
de8a: f7ff f864 bl cf56 <lv_draw_rect+0xee6>
fill_area.x1 = coords->x1;
de8e: 464b mov r3, r9
de90: 2100 movs r1, #0
de92: 5e59 ldrsh r1, [r3, r1]
de94: a81c add r0, sp, #112 ; 0x70
de96: 8001 strh r1, [r0, #0]
fill_area.x2 = coords->x2;
de98: 464b mov r3, r9
de9a: 2204 movs r2, #4
de9c: 5e9a ldrsh r2, [r3, r2]
de9e: 8082 strh r2, [r0, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
dea0: ab18 add r3, sp, #96 ; 0x60
dea2: 2402 movs r4, #2
dea4: 5f1c ldrsh r4, [r3, r4]
dea6: 8a7b ldrh r3, [r7, #18]
dea8: 191b adds r3, r3, r4
deaa: b21b sxth r3, r3
deac: 8043 strh r3, [r0, #2]
fill_area.y2 = fill_area.y1;
deae: 80c3 strh r3, [r0, #6]
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
deb0: 465b mov r3, fp
deb2: 2012 movs r0, #18
deb4: 5e1b ldrsh r3, [r3, r0]
deb6: 2b04 cmp r3, #4
deb8: d02b beq.n df12 <lv_draw_rect+0x1ea2>
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
deba: 2b08 cmp r3, #8
debc: d045 beq.n df4a <lv_draw_rect+0x1eda>
volatile bool top_only = false;
debe: 2200 movs r2, #0
dec0: 2116 movs r1, #22
dec2: a80e add r0, sp, #56 ; 0x38
dec4: 4684 mov ip, r0
dec6: 4461 add r1, ip
dec8: 700a strb r2, [r1, #0]
volatile bool bottom_only = false;
deca: 2117 movs r1, #23
decc: 4461 add r1, ip
dece: 700a strb r2, [r1, #0]
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
ded0: 2b02 cmp r3, #2
ded2: d12c bne.n df2e <lv_draw_rect+0x1ebe>
ded4: 3201 adds r2, #1
ded6: 3314 adds r3, #20
ded8: 4463 add r3, ip
deda: 701a strb r2, [r3, #0]
volatile bool normal = !top_only && !bottom_only ? true : false;
dedc: 2316 movs r3, #22
dede: aa0e add r2, sp, #56 ; 0x38
dee0: 4694 mov ip, r2
dee2: 4463 add r3, ip
dee4: 781b ldrb r3, [r3, #0]
dee6: 2b00 cmp r3, #0
dee8: d104 bne.n def4 <lv_draw_rect+0x1e84>
deea: 3317 adds r3, #23
deec: 4463 add r3, ip
deee: 781b ldrb r3, [r3, #0]
def0: 2501 movs r5, #1
def2: 405d eors r5, r3
def4: 2301 movs r3, #1
def6: 401d ands r5, r3
def8: ab14 add r3, sp, #80 ; 0x50
defa: 701d strb r5, [r3, #0]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
defc: 0025 movs r5, r4
defe: ab18 add r3, sp, #96 ; 0x60
df00: 2206 movs r2, #6
df02: 5e9b ldrsh r3, [r3, r2]
df04: 429c cmp r4, r3
df06: dcb8 bgt.n de7a <lv_draw_rect+0x1e0a>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
df08: ac1c add r4, sp, #112 ; 0x70
_lv_memset_ff(mask_buf, draw_area_w);
df0a: 4b3f ldr r3, [pc, #252] ; (e008 <lv_draw_rect+0x1f98>)
df0c: 469a mov sl, r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
df0e: 46b0 mov r8, r6
df10: e051 b.n dfb6 <lv_draw_rect+0x1f46>
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
df12: 9a0d ldr r2, [sp, #52] ; 0x34
df14: 4694 mov ip, r2
df16: 4461 add r1, ip
df18: aa1c add r2, sp, #112 ; 0x70
df1a: 8091 strh r1, [r2, #4]
volatile bool top_only = false;
df1c: 2200 movs r2, #0
df1e: 2116 movs r1, #22
df20: a80e add r0, sp, #56 ; 0x38
df22: 4684 mov ip, r0
df24: 4461 add r1, ip
df26: 700a strb r2, [r1, #0]
volatile bool bottom_only = false;
df28: 2117 movs r1, #23
df2a: 4461 add r1, ip
df2c: 700a strb r2, [r1, #0]
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
df2e: 2b01 cmp r3, #1
df30: d010 beq.n df54 <lv_draw_rect+0x1ee4>
if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) {
df32: 2b03 cmp r3, #3
df34: d1d2 bne.n dedc <lv_draw_rect+0x1e6c>
top_only = true;
df36: 3b02 subs r3, #2
df38: 2216 movs r2, #22
df3a: a90e add r1, sp, #56 ; 0x38
df3c: 468c mov ip, r1
df3e: 4462 add r2, ip
df40: 7013 strb r3, [r2, #0]
bottom_only = true;
df42: 2217 movs r2, #23
df44: 4462 add r2, ip
df46: 7013 strb r3, [r2, #0]
df48: e7c8 b.n dedc <lv_draw_rect+0x1e6c>
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
df4a: 990d ldr r1, [sp, #52] ; 0x34
df4c: 1a52 subs r2, r2, r1
df4e: a91c add r1, sp, #112 ; 0x70
df50: 800a strh r2, [r1, #0]
df52: e7e3 b.n df1c <lv_draw_rect+0x1eac>
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
df54: 2201 movs r2, #1
df56: 3316 adds r3, #22
df58: a90e add r1, sp, #56 ; 0x38
df5a: 468c mov ip, r1
df5c: 4463 add r3, ip
df5e: 701a strb r2, [r3, #0]
df60: e7bc b.n dedc <lv_draw_rect+0x1e6c>
_lv_memset_ff(mask_buf, draw_area_w);
df62: 990b ldr r1, [sp, #44] ; 0x2c
df64: 9e05 ldr r6, [sp, #20]
df66: 0030 movs r0, r6
df68: 47d0 blx sl
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
df6a: 8a7a ldrh r2, [r7, #18]
df6c: 1952 adds r2, r2, r5
df6e: b212 sxth r2, r2
df70: 8a39 ldrh r1, [r7, #16]
df72: ab0e add r3, sp, #56 ; 0x38
df74: 8d1b ldrh r3, [r3, #40] ; 0x28
df76: 18c9 adds r1, r1, r3
df78: b209 sxth r1, r1
df7a: 9b0a ldr r3, [sp, #40] ; 0x28
df7c: 9605 str r6, [sp, #20]
df7e: 0030 movs r0, r6
df80: 4e22 ldr r6, [pc, #136] ; (e00c <lv_draw_rect+0x1f9c>)
df82: 47b0 blx r6
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
df84: 9a06 ldr r2, [sp, #24]
df86: 9202 str r2, [sp, #8]
df88: 4642 mov r2, r8
df8a: 9201 str r2, [sp, #4]
df8c: 9000 str r0, [sp, #0]
df8e: 9b05 ldr r3, [sp, #20]
df90: 466a mov r2, sp
df92: 8b92 ldrh r2, [r2, #28]
df94: 0021 movs r1, r4
df96: 9804 ldr r0, [sp, #16]
df98: 4e1a ldr r6, [pc, #104] ; (e004 <lv_draw_rect+0x1f94>)
df9a: 47b0 blx r6
fill_area.y1++;
df9c: 8863 ldrh r3, [r4, #2]
df9e: 3301 adds r3, #1
dfa0: 8063 strh r3, [r4, #2]
fill_area.y2++;
dfa2: 88e3 ldrh r3, [r4, #6]
dfa4: 3301 adds r3, #1
dfa6: 80e3 strh r3, [r4, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
dfa8: 3501 adds r5, #1
dfaa: ab0e add r3, sp, #56 ; 0x38
dfac: 222e movs r2, #46 ; 0x2e
dfae: 5e9b ldrsh r3, [r3, r2]
dfb0: 429d cmp r5, r3
dfb2: dd00 ble.n dfb6 <lv_draw_rect+0x1f46>
dfb4: e761 b.n de7a <lv_draw_rect+0x1e0a>
if(normal ||
dfb6: ab14 add r3, sp, #80 ; 0x50
dfb8: 781b ldrb r3, [r3, #0]
dfba: 2b00 cmp r3, #0
dfbc: d1d1 bne.n df62 <lv_draw_rect+0x1ef2>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
dfbe: 3316 adds r3, #22
dfc0: aa0e add r2, sp, #56 ; 0x38
dfc2: 4694 mov ip, r2
dfc4: 4463 add r3, ip
dfc6: 781b ldrb r3, [r3, #0]
if(normal ||
dfc8: 2b00 cmp r3, #0
dfca: d009 beq.n dfe0 <lv_draw_rect+0x1f70>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
dfcc: 2302 movs r3, #2
dfce: 5ee2 ldrsh r2, [r4, r3]
dfd0: 464b mov r3, r9
dfd2: 2102 movs r1, #2
dfd4: 5e5b ldrsh r3, [r3, r1]
dfd6: 990d ldr r1, [sp, #52] ; 0x34
dfd8: 468c mov ip, r1
dfda: 4463 add r3, ip
dfdc: 429a cmp r2, r3
dfde: ddc0 ble.n df62 <lv_draw_rect+0x1ef2>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
dfe0: 2317 movs r3, #23
dfe2: aa0e add r2, sp, #56 ; 0x38
dfe4: 4694 mov ip, r2
dfe6: 4463 add r3, ip
dfe8: 781b ldrb r3, [r3, #0]
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
dfea: 2b00 cmp r3, #0
dfec: d0d6 beq.n df9c <lv_draw_rect+0x1f2c>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
dfee: 2302 movs r3, #2
dff0: 5ee2 ldrsh r2, [r4, r3]
dff2: 464b mov r3, r9
dff4: 2106 movs r1, #6
dff6: 5e5b ldrsh r3, [r3, r1]
dff8: 990d ldr r1, [sp, #52] ; 0x34
dffa: 1a5b subs r3, r3, r1
dffc: 429a cmp r2, r3
dffe: dbcd blt.n df9c <lv_draw_rect+0x1f2c>
e000: e7af b.n df62 <lv_draw_rect+0x1ef2>
e002: 46c0 nop ; (mov r8, r8)
e004: 00006fed .word 0x00006fed
e008: 00012a19 .word 0x00012a19
e00c: 0000bad1 .word 0x0000bad1
e010: 0000bb25 .word 0x0000bb25
e014: 00012465 .word 0x00012465
lv_point_t s;
_lv_txt_get_size(&s, dsc->value_str, dsc->value_font, dsc->value_letter_space, dsc->value_line_space, LV_COORD_MAX,
e018: 234c movs r3, #76 ; 0x4c
e01a: 4698 mov r8, r3
e01c: 465b mov r3, fp
e01e: 4642 mov r2, r8
e020: 5e9b ldrsh r3, [r3, r2]
e022: ad1c add r5, sp, #112 ; 0x70
e024: 2600 movs r6, #0
e026: 9602 str r6, [sp, #8]
e028: 4abc ldr r2, [pc, #752] ; (e31c <lv_draw_rect+0x22ac>)
e02a: 9201 str r2, [sp, #4]
e02c: 465a mov r2, fp
e02e: 204e movs r0, #78 ; 0x4e
e030: 5e12 ldrsh r2, [r2, r0]
e032: 9200 str r2, [sp, #0]
e034: 465a mov r2, fp
e036: 6c12 ldr r2, [r2, #64] ; 0x40
e038: 0028 movs r0, r5
e03a: 4cb9 ldr r4, [pc, #740] ; (e320 <lv_draw_rect+0x22b0>)
e03c: 47a0 blx r4
LV_TXT_FLAG_NONE);
lv_area_t value_area;
value_area.x1 = 0;
e03e: ac22 add r4, sp, #136 ; 0x88
e040: 8026 strh r6, [r4, #0]
value_area.y1 = 0;
e042: 8066 strh r6, [r4, #2]
value_area.x2 = s.x - 1;
e044: 882b ldrh r3, [r5, #0]
e046: 3b01 subs r3, #1
e048: 80a3 strh r3, [r4, #4]
value_area.y2 = s.y - 1;
e04a: 886b ldrh r3, [r5, #2]
e04c: 3b01 subs r3, #1
e04e: 80e3 strh r3, [r4, #6]
lv_point_t p_align;
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
e050: ad1e add r5, sp, #120 ; 0x78
e052: 2350 movs r3, #80 ; 0x50
e054: 465a mov r2, fp
e056: 5cd2 ldrb r2, [r2, r3]
e058: 002b movs r3, r5
e05a: 0021 movs r1, r4
e05c: 4648 mov r0, r9
e05e: 4fb1 ldr r7, [pc, #708] ; (e324 <lv_draw_rect+0x22b4>)
e060: 47b8 blx r7
value_area.x1 += p_align.x + dsc->value_ofs_x;
e062: 882a ldrh r2, [r5, #0]
e064: 2348 movs r3, #72 ; 0x48
e066: 4659 mov r1, fp
e068: 5acb ldrh r3, [r1, r3]
e06a: 18d2 adds r2, r2, r3
e06c: b292 uxth r2, r2
e06e: 8823 ldrh r3, [r4, #0]
e070: 18d3 adds r3, r2, r3
e072: 8023 strh r3, [r4, #0]
value_area.y1 += p_align.y + dsc->value_ofs_y;
e074: 886b ldrh r3, [r5, #2]
e076: 214a movs r1, #74 ; 0x4a
e078: 4658 mov r0, fp
e07a: 5a41 ldrh r1, [r0, r1]
e07c: 185b adds r3, r3, r1
e07e: b29b uxth r3, r3
e080: 8861 ldrh r1, [r4, #2]
e082: 1859 adds r1, r3, r1
e084: 8061 strh r1, [r4, #2]
value_area.x2 += p_align.x + dsc->value_ofs_x;
e086: 88a1 ldrh r1, [r4, #4]
e088: 1852 adds r2, r2, r1
e08a: 80a2 strh r2, [r4, #4]
value_area.y2 += p_align.y + dsc->value_ofs_y;
e08c: 88e2 ldrh r2, [r4, #6]
e08e: 189b adds r3, r3, r2
e090: 80e3 strh r3, [r4, #6]
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
e092: ad29 add r5, sp, #164 ; 0xa4
e094: 0028 movs r0, r5
e096: 4ba4 ldr r3, [pc, #656] ; (e328 <lv_draw_rect+0x22b8>)
e098: 4798 blx r3
label_dsc.font = dsc->value_font;
e09a: 465b mov r3, fp
e09c: 6c1b ldr r3, [r3, #64] ; 0x40
e09e: 606b str r3, [r5, #4]
label_dsc.letter_space = dsc->value_letter_space;
e0a0: 465b mov r3, fp
e0a2: 4642 mov r2, r8
e0a4: 5a9b ldrh r3, [r3, r2]
e0a6: 81ab strh r3, [r5, #12]
label_dsc.line_space = dsc->value_line_space;
e0a8: 465b mov r3, fp
e0aa: 3202 adds r2, #2
e0ac: 5a9b ldrh r3, [r3, r2]
e0ae: 816b strh r3, [r5, #10]
label_dsc.color = dsc->value_color;
e0b0: 2346 movs r3, #70 ; 0x46
e0b2: 465a mov r2, fp
e0b4: 5ad3 ldrh r3, [r2, r3]
e0b6: 802b strh r3, [r5, #0]
label_dsc.opa = dsc->value_opa;
e0b8: 2344 movs r3, #68 ; 0x44
e0ba: 5cd3 ldrb r3, [r2, r3]
e0bc: 722b strb r3, [r5, #8]
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
e0be: 9600 str r6, [sp, #0]
e0c0: 6bd3 ldr r3, [r2, #60] ; 0x3c
e0c2: 002a movs r2, r5
e0c4: 9904 ldr r1, [sp, #16]
e0c6: 0020 movs r0, r4
e0c8: 4c98 ldr r4, [pc, #608] ; (e32c <lv_draw_rect+0x22bc>)
e0ca: 47a0 blx r4
e0cc: f7fe ff4e bl cf6c <lv_draw_rect+0xefc>
int32_t rin = dsc->radius;
e0d0: 9b06 ldr r3, [sp, #24]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e0d2: 3701 adds r7, #1
e0d4: 4652 mov r2, sl
e0d6: 1aba subs r2, r7, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e0d8: 3501 adds r5, #1
e0da: 9907 ldr r1, [sp, #28]
e0dc: 1a69 subs r1, r5, r1
int32_t inner_h = lv_area_get_height(&area_inner);
e0de: b209 sxth r1, r1
int32_t short_side = LV_MATH_MIN(inner_w, inner_h);
e0e0: b212 sxth r2, r2
e0e2: 428a cmp r2, r1
e0e4: dd00 ble.n e0e8 <lv_draw_rect+0x2078>
e0e6: 000a movs r2, r1
if(rin > short_side >> 1) rin = short_side >> 1;
e0e8: 1052 asrs r2, r2, #1
e0ea: 429a cmp r2, r3
e0ec: dd00 ble.n e0f0 <lv_draw_rect+0x2080>
e0ee: 9a06 ldr r2, [sp, #24]
int32_t rout = rin + dsc->outline_width;
e0f0: 9b05 ldr r3, [sp, #20]
e0f2: 1899 adds r1, r3, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e0f4: 9b09 ldr r3, [sp, #36] ; 0x24
e0f6: 3301 adds r3, #1
e0f8: 9808 ldr r0, [sp, #32]
e0fa: 1a1b subs r3, r3, r0
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e0fc: 3401 adds r4, #1
e0fe: 980b ldr r0, [sp, #44] ; 0x2c
e100: 1a20 subs r0, r4, r0
int32_t coords_out_h = lv_area_get_height(&area_outer);
e102: b200 sxth r0, r0
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
e104: b21b sxth r3, r3
e106: 4283 cmp r3, r0
e108: dd00 ble.n e10c <lv_draw_rect+0x209c>
e10a: 0003 movs r3, r0
if(rout > short_side >> 1) rout = short_side >> 1;
e10c: 105b asrs r3, r3, #1
e10e: 9307 str r3, [sp, #28]
e110: 428b cmp r3, r1
e112: dd00 ble.n e116 <lv_draw_rect+0x20a6>
e114: 9107 str r1, [sp, #28]
draw_area.x1 -= disp_area->x1;
e116: 464b mov r3, r9
e118: 8a1e ldrh r6, [r3, #16]
e11a: a91a add r1, sp, #104 ; 0x68
e11c: 880b ldrh r3, [r1, #0]
e11e: 1b9b subs r3, r3, r6
e120: b298 uxth r0, r3
e122: 8008 strh r0, [r1, #0]
draw_area.y1 -= disp_area->y1;
e124: 464b mov r3, r9
e126: 8a5c ldrh r4, [r3, #18]
e128: 884d ldrh r5, [r1, #2]
e12a: 1b2d subs r5, r5, r4
e12c: 804d strh r5, [r1, #2]
draw_area.x2 -= disp_area->x1;
e12e: 888b ldrh r3, [r1, #4]
e130: 1b9b subs r3, r3, r6
e132: b29b uxth r3, r3
e134: 808b strh r3, [r1, #4]
draw_area.y2 -= disp_area->y1;
e136: 88cd ldrh r5, [r1, #6]
e138: 1b2c subs r4, r5, r4
e13a: 80cc strh r4, [r1, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e13c: 3301 adds r3, #1
e13e: 1a1b subs r3, r3, r0
e140: b21b sxth r3, r3
e142: 001e movs r6, r3
e144: 9308 str r3, [sp, #32]
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
e146: b212 sxth r2, r2
e148: 2301 movs r3, #1
e14a: a916 add r1, sp, #88 ; 0x58
e14c: a822 add r0, sp, #136 ; 0x88
e14e: 4d78 ldr r5, [pc, #480] ; (e330 <lv_draw_rect+0x22c0>)
e150: 47a8 blx r5
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
e152: 2100 movs r1, #0
e154: a822 add r0, sp, #136 ; 0x88
e156: 4c77 ldr r4, [pc, #476] ; (e334 <lv_draw_rect+0x22c4>)
e158: 47a0 blx r4
e15a: 900e str r0, [sp, #56] ; 0x38
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
e15c: 9f07 ldr r7, [sp, #28]
e15e: b23a sxth r2, r7
e160: 2300 movs r3, #0
e162: a918 add r1, sp, #96 ; 0x60
e164: a829 add r0, sp, #164 ; 0xa4
e166: 47a8 blx r5
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
e168: 2100 movs r1, #0
e16a: a829 add r0, sp, #164 ; 0xa4
e16c: 47a0 blx r4
e16e: 900f str r0, [sp, #60] ; 0x3c
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
e170: 9609 str r6, [sp, #36] ; 0x24
e172: 0030 movs r0, r6
e174: 4b70 ldr r3, [pc, #448] ; (e338 <lv_draw_rect+0x22c8>)
e176: 4798 blx r3
e178: 9005 str r0, [sp, #20]
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
e17a: 465b mov r3, fp
e17c: 2218 movs r2, #24
e17e: 5e9b ldrsh r3, [r3, r2]
lv_color_t color = dsc->outline_color;
e180: 465a mov r2, fp
e182: 8ad2 ldrh r2, [r2, #22]
e184: 9211 str r2, [sp, #68] ; 0x44
e186: 4669 mov r1, sp
e188: 830a strh r2, [r1, #24]
lv_blend_mode_t blend_mode = dsc->outline_blend_mode;
e18a: 465a mov r2, fp
e18c: 7f52 ldrb r2, [r2, #29]
e18e: 4692 mov sl, r2
if(simple_mode) {
e190: 9a0a ldr r2, [sp, #40] ; 0x28
e192: 2a00 cmp r2, #0
e194: d000 beq.n e198 <lv_draw_rect+0x2128>
e196: e19b b.n e4d0 <lv_draw_rect+0x2460>
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
e198: 3b01 subs r3, #1
e19a: 9310 str r3, [sp, #64] ; 0x40
e19c: 42bb cmp r3, r7
e19e: da00 bge.n e1a2 <lv_draw_rect+0x2132>
e1a0: 9710 str r7, [sp, #64] ; 0x40
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
e1a2: 464b mov r3, r9
e1a4: 2212 movs r2, #18
e1a6: 5e9b ldrsh r3, [r3, r2]
e1a8: a918 add r1, sp, #96 ; 0x60
e1aa: 2002 movs r0, #2
e1ac: 5e0a ldrsh r2, [r1, r0]
e1ae: 1ad2 subs r2, r2, r3
e1b0: 9810 ldr r0, [sp, #64] ; 0x40
e1b2: 4684 mov ip, r0
e1b4: 4462 add r2, ip
e1b6: 0014 movs r4, r2
e1b8: 920c str r2, [sp, #48] ; 0x30
fill_area.x1 = area_outer.x1;
e1ba: aa1c add r2, sp, #112 ; 0x70
e1bc: 8808 ldrh r0, [r1, #0]
e1be: 8010 strh r0, [r2, #0]
fill_area.x2 = area_outer.x2;
e1c0: 8889 ldrh r1, [r1, #4]
e1c2: 8091 strh r1, [r2, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
e1c4: a91a add r1, sp, #104 ; 0x68
e1c6: 2702 movs r7, #2
e1c8: 5fcf ldrsh r7, [r1, r7]
e1ca: 19db adds r3, r3, r7
e1cc: b21b sxth r3, r3
e1ce: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
e1d0: 80d3 strh r3, [r2, #6]
for(h = draw_area.y1; h <= upper_corner_end; h++) {
e1d2: 42bc cmp r4, r7
e1d4: da00 bge.n e1d8 <lv_draw_rect+0x2168>
e1d6: e082 b.n e2de <lv_draw_rect+0x226e>
fill_area2.y1 = fill_area.y1;
e1d8: ac1e add r4, sp, #120 ; 0x78
e1da: 465b mov r3, fp
e1dc: 930d str r3, [sp, #52] ; 0x34
e1de: e02e b.n e23e <lv_draw_rect+0x21ce>
fill_area2.x1 = area_outer.x2 - rout + 1;
e1e0: ab18 add r3, sp, #96 ; 0x60
e1e2: 2204 movs r2, #4
e1e4: 5e9b ldrsh r3, [r3, r2]
e1e6: 1c5a adds r2, r3, #1
e1e8: 1b55 subs r5, r2, r5
e1ea: 8025 strh r5, [r4, #0]
fill_area2.x2 = area_outer.x2;
e1ec: 80a3 strh r3, [r4, #4]
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
e1ee: 9a07 ldr r2, [sp, #28]
e1f0: 1a9b subs r3, r3, r2
e1f2: 3301 adds r3, #1
e1f4: 464a mov r2, r9
e1f6: 2110 movs r1, #16
e1f8: 5e52 ldrsh r2, [r2, r1]
e1fa: a90e add r1, sp, #56 ; 0x38
e1fc: 2030 movs r0, #48 ; 0x30
e1fe: 5e09 ldrsh r1, [r1, r0]
e200: 1852 adds r2, r2, r1
e202: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
e204: 43da mvns r2, r3
e206: 17d2 asrs r2, r2, #31
e208: 4013 ands r3, r2
e20a: 9a05 ldr r2, [sp, #20]
e20c: 4694 mov ip, r2
e20e: 4463 add r3, ip
e210: 4652 mov r2, sl
e212: 9202 str r2, [sp, #8]
e214: 4642 mov r2, r8
e216: 9201 str r2, [sp, #4]
e218: 9a0a ldr r2, [sp, #40] ; 0x28
e21a: 9200 str r2, [sp, #0]
e21c: 466a mov r2, sp
e21e: 8b12 ldrh r2, [r2, #24]
e220: 0021 movs r1, r4
e222: 9804 ldr r0, [sp, #16]
e224: 4d45 ldr r5, [pc, #276] ; (e33c <lv_draw_rect+0x22cc>)
e226: 47a8 blx r5
fill_area.y1++;
e228: ab1c add r3, sp, #112 ; 0x70
e22a: 885a ldrh r2, [r3, #2]
e22c: 3201 adds r2, #1
e22e: 805a strh r2, [r3, #2]
fill_area.y2++;
e230: 88da ldrh r2, [r3, #6]
e232: 3201 adds r2, #1
e234: 80da strh r2, [r3, #6]
for(h = draw_area.y1; h <= upper_corner_end; h++) {
e236: 3701 adds r7, #1
e238: 9b0c ldr r3, [sp, #48] ; 0x30
e23a: 42bb cmp r3, r7
e23c: db4d blt.n e2da <lv_draw_rect+0x226a>
_lv_memset_ff(mask_buf, draw_area_w);
e23e: 9909 ldr r1, [sp, #36] ; 0x24
e240: 9e05 ldr r6, [sp, #20]
e242: 0030 movs r0, r6
e244: 4b3e ldr r3, [pc, #248] ; (e340 <lv_draw_rect+0x22d0>)
e246: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
e248: 464b mov r3, r9
e24a: 8a5a ldrh r2, [r3, #18]
e24c: 19d2 adds r2, r2, r7
e24e: b212 sxth r2, r2
e250: 8a19 ldrh r1, [r3, #16]
e252: ab0e add r3, sp, #56 ; 0x38
e254: 8e1b ldrh r3, [r3, #48] ; 0x30
e256: 18c9 adds r1, r1, r3
e258: b209 sxth r1, r1
e25a: 9b08 ldr r3, [sp, #32]
e25c: 0030 movs r0, r6
e25e: 4d39 ldr r5, [pc, #228] ; (e344 <lv_draw_rect+0x22d4>)
e260: 47a8 blx r5
e262: 900a str r0, [sp, #40] ; 0x28
fill_area2.y1 = fill_area.y1;
e264: ab1c add r3, sp, #112 ; 0x70
e266: 885a ldrh r2, [r3, #2]
e268: 8062 strh r2, [r4, #2]
fill_area2.y2 = fill_area.y2;
e26a: 88db ldrh r3, [r3, #6]
e26c: 80e3 strh r3, [r4, #6]
fill_area2.x1 = area_outer.x1;
e26e: ab18 add r3, sp, #96 ; 0x60
e270: 930b str r3, [sp, #44] ; 0x2c
e272: 2100 movs r1, #0
e274: 5e5b ldrsh r3, [r3, r1]
e276: 8023 strh r3, [r4, #0]
fill_area2.x2 = area_outer.x1 + rout - 1;
e278: 466a mov r2, sp
e27a: 8b95 ldrh r5, [r2, #28]
e27c: 3b01 subs r3, #1
e27e: 18eb adds r3, r5, r3
e280: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
e282: 4652 mov r2, sl
e284: 9202 str r2, [sp, #8]
e286: 4642 mov r2, r8
e288: 9201 str r2, [sp, #4]
e28a: 9000 str r0, [sp, #0]
e28c: 0033 movs r3, r6
e28e: 466a mov r2, sp
e290: 8b12 ldrh r2, [r2, #24]
e292: 0021 movs r1, r4
e294: 9804 ldr r0, [sp, #16]
e296: 4e29 ldr r6, [pc, #164] ; (e33c <lv_draw_rect+0x22cc>)
e298: 47b0 blx r6
if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) {
e29a: 2306 movs r3, #6
e29c: 5ee2 ldrsh r2, [r4, r3]
e29e: 9b0b ldr r3, [sp, #44] ; 0x2c
e2a0: 2102 movs r1, #2
e2a2: 5e5b ldrsh r3, [r3, r1]
e2a4: 990d ldr r1, [sp, #52] ; 0x34
e2a6: 2018 movs r0, #24
e2a8: 5e09 ldrsh r1, [r1, r0]
e2aa: 185b adds r3, r3, r1
e2ac: 429a cmp r2, r3
e2ae: da97 bge.n e1e0 <lv_draw_rect+0x2170>
fill_area2.x1 = area_outer.x1 + rout;
e2b0: aa18 add r2, sp, #96 ; 0x60
e2b2: 8813 ldrh r3, [r2, #0]
e2b4: 18eb adds r3, r5, r3
e2b6: 8023 strh r3, [r4, #0]
fill_area2.x2 = area_outer.x2 - rout;
e2b8: 8893 ldrh r3, [r2, #4]
e2ba: 1b5b subs r3, r3, r5
e2bc: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
e2be: 4653 mov r3, sl
e2c0: 9302 str r3, [sp, #8]
e2c2: 4643 mov r3, r8
e2c4: 9301 str r3, [sp, #4]
e2c6: 2301 movs r3, #1
e2c8: 9300 str r3, [sp, #0]
e2ca: 2300 movs r3, #0
e2cc: 466a mov r2, sp
e2ce: 8b12 ldrh r2, [r2, #24]
e2d0: 0021 movs r1, r4
e2d2: 9804 ldr r0, [sp, #16]
e2d4: 4e19 ldr r6, [pc, #100] ; (e33c <lv_draw_rect+0x22cc>)
e2d6: 47b0 blx r6
e2d8: e782 b.n e1e0 <lv_draw_rect+0x2170>
e2da: 9b0d ldr r3, [sp, #52] ; 0x34
e2dc: 469b mov fp, r3
int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size;
e2de: 464b mov r3, r9
e2e0: 2212 movs r2, #18
e2e2: 5e9b ldrsh r3, [r3, r2]
e2e4: aa18 add r2, sp, #96 ; 0x60
e2e6: 2706 movs r7, #6
e2e8: 5fd7 ldrsh r7, [r2, r7]
e2ea: 1aff subs r7, r7, r3
e2ec: 9a10 ldr r2, [sp, #64] ; 0x40
e2ee: 1abf subs r7, r7, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
e2f0: 990c ldr r1, [sp, #48] ; 0x30
e2f2: 000a movs r2, r1
e2f4: 42b9 cmp r1, r7
e2f6: db01 blt.n e2fc <lv_draw_rect+0x228c>
e2f8: 3201 adds r2, #1
e2fa: 0017 movs r7, r2
fill_area.y1 = disp_area->y1 + lower_corner_end;
e2fc: 19db adds r3, r3, r7
e2fe: b21b sxth r3, r3
e300: aa1c add r2, sp, #112 ; 0x70
e302: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
e304: 80d3 strh r3, [r2, #6]
for(h = lower_corner_end; h <= draw_area.y2; h++) {
e306: ab1a add r3, sp, #104 ; 0x68
e308: 2206 movs r2, #6
e30a: 5e9b ldrsh r3, [r3, r2]
e30c: 429f cmp r7, r3
e30e: dd00 ble.n e312 <lv_draw_rect+0x22a2>
e310: e09a b.n e448 <lv_draw_rect+0x23d8>
fill_area2.x1 = area_outer.x1;
e312: ac1e add r4, sp, #120 ; 0x78
e314: 465b mov r3, fp
e316: 930b str r3, [sp, #44] ; 0x2c
e318: e047 b.n e3aa <lv_draw_rect+0x233a>
e31a: 46c0 nop ; (mov r8, r8)
e31c: 00007c18 .word 0x00007c18
e320: 00013f3d .word 0x00013f3d
e324: 0001173d .word 0x0001173d
e328: 000095ed .word 0x000095ed
e32c: 0000963d .word 0x0000963d
e330: 0000bd01 .word 0x0000bd01
e334: 0000ba75 .word 0x0000ba75
e338: 000127a1 .word 0x000127a1
e33c: 00006fed .word 0x00006fed
e340: 00012a19 .word 0x00012a19
e344: 0000bad1 .word 0x0000bad1
fill_area2.x1 = area_outer.x2 - rout + 1;
e348: ab18 add r3, sp, #96 ; 0x60
e34a: 2204 movs r2, #4
e34c: 5e9b ldrsh r3, [r3, r2]
e34e: 1c5a adds r2, r3, #1
e350: 1b55 subs r5, r2, r5
e352: 8025 strh r5, [r4, #0]
fill_area2.x2 = area_outer.x2;
e354: 80a3 strh r3, [r4, #4]
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
e356: 9a07 ldr r2, [sp, #28]
e358: 1a9b subs r3, r3, r2
e35a: 3301 adds r3, #1
e35c: 464a mov r2, r9
e35e: 2110 movs r1, #16
e360: 5e52 ldrsh r2, [r2, r1]
e362: a90e add r1, sp, #56 ; 0x38
e364: 2030 movs r0, #48 ; 0x30
e366: 5e09 ldrsh r1, [r1, r0]
e368: 1852 adds r2, r2, r1
e36a: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
e36c: 43da mvns r2, r3
e36e: 17d2 asrs r2, r2, #31
e370: 4013 ands r3, r2
e372: 9a05 ldr r2, [sp, #20]
e374: 4694 mov ip, r2
e376: 4463 add r3, ip
e378: 4652 mov r2, sl
e37a: 9202 str r2, [sp, #8]
e37c: 4642 mov r2, r8
e37e: 9201 str r2, [sp, #4]
e380: 9a0a ldr r2, [sp, #40] ; 0x28
e382: 9200 str r2, [sp, #0]
e384: 466a mov r2, sp
e386: 8b12 ldrh r2, [r2, #24]
e388: 0021 movs r1, r4
e38a: 9804 ldr r0, [sp, #16]
e38c: 4d89 ldr r5, [pc, #548] ; (e5b4 <lv_draw_rect+0x2544>)
e38e: 47a8 blx r5
fill_area.y1++;
e390: ab1c add r3, sp, #112 ; 0x70
e392: 885a ldrh r2, [r3, #2]
e394: 3201 adds r2, #1
e396: 805a strh r2, [r3, #2]
fill_area.y2++;
e398: 88da ldrh r2, [r3, #6]
e39a: 3201 adds r2, #1
e39c: 80da strh r2, [r3, #6]
for(h = lower_corner_end; h <= draw_area.y2; h++) {
e39e: 3701 adds r7, #1
e3a0: ab0e add r3, sp, #56 ; 0x38
e3a2: 2236 movs r2, #54 ; 0x36
e3a4: 5e9b ldrsh r3, [r3, r2]
e3a6: 429f cmp r7, r3
e3a8: dc4c bgt.n e444 <lv_draw_rect+0x23d4>
_lv_memset_ff(mask_buf, draw_area_w);
e3aa: 9909 ldr r1, [sp, #36] ; 0x24
e3ac: 9e05 ldr r6, [sp, #20]
e3ae: 0030 movs r0, r6
e3b0: 4b81 ldr r3, [pc, #516] ; (e5b8 <lv_draw_rect+0x2548>)
e3b2: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
e3b4: 464b mov r3, r9
e3b6: 8a5a ldrh r2, [r3, #18]
e3b8: 19d2 adds r2, r2, r7
e3ba: b212 sxth r2, r2
e3bc: 8a19 ldrh r1, [r3, #16]
e3be: ab0e add r3, sp, #56 ; 0x38
e3c0: 8e1b ldrh r3, [r3, #48] ; 0x30
e3c2: 18c9 adds r1, r1, r3
e3c4: b209 sxth r1, r1
e3c6: 9b08 ldr r3, [sp, #32]
e3c8: 0030 movs r0, r6
e3ca: 4d7c ldr r5, [pc, #496] ; (e5bc <lv_draw_rect+0x254c>)
e3cc: 47a8 blx r5
e3ce: 900a str r0, [sp, #40] ; 0x28
fill_area2.x1 = area_outer.x1;
e3d0: ab0e add r3, sp, #56 ; 0x38
e3d2: 2128 movs r1, #40 ; 0x28
e3d4: 5e5b ldrsh r3, [r3, r1]
e3d6: 8023 strh r3, [r4, #0]
fill_area2.x2 = area_outer.x1 + rout - 1;
e3d8: 466a mov r2, sp
e3da: 8b95 ldrh r5, [r2, #28]
e3dc: 3b01 subs r3, #1
e3de: 18eb adds r3, r5, r3
e3e0: 80a3 strh r3, [r4, #4]
fill_area2.y1 = fill_area.y1;
e3e2: ab1c add r3, sp, #112 ; 0x70
e3e4: 885a ldrh r2, [r3, #2]
e3e6: 8062 strh r2, [r4, #2]
fill_area2.y2 = fill_area.y2;
e3e8: 88db ldrh r3, [r3, #6]
e3ea: 80e3 strh r3, [r4, #6]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
e3ec: 4652 mov r2, sl
e3ee: 9202 str r2, [sp, #8]
e3f0: 4642 mov r2, r8
e3f2: 9201 str r2, [sp, #4]
e3f4: 9000 str r0, [sp, #0]
e3f6: 0033 movs r3, r6
e3f8: 466a mov r2, sp
e3fa: 8b12 ldrh r2, [r2, #24]
e3fc: 0021 movs r1, r4
e3fe: 9804 ldr r0, [sp, #16]
e400: 4e6c ldr r6, [pc, #432] ; (e5b4 <lv_draw_rect+0x2544>)
e402: 47b0 blx r6
if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) {
e404: 2306 movs r3, #6
e406: 5ee2 ldrsh r2, [r4, r3]
e408: ab0e add r3, sp, #56 ; 0x38
e40a: 212e movs r1, #46 ; 0x2e
e40c: 5e5b ldrsh r3, [r3, r1]
e40e: 990b ldr r1, [sp, #44] ; 0x2c
e410: 2018 movs r0, #24
e412: 5e09 ldrsh r1, [r1, r0]
e414: 1a5b subs r3, r3, r1
e416: 429a cmp r2, r3
e418: dd96 ble.n e348 <lv_draw_rect+0x22d8>
fill_area2.x1 = area_outer.x1 + rout;
e41a: aa18 add r2, sp, #96 ; 0x60
e41c: 8813 ldrh r3, [r2, #0]
e41e: 18eb adds r3, r5, r3
e420: 8023 strh r3, [r4, #0]
fill_area2.x2 = area_outer.x2 - rout;
e422: 8893 ldrh r3, [r2, #4]
e424: 1b5b subs r3, r3, r5
e426: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
e428: 4653 mov r3, sl
e42a: 9302 str r3, [sp, #8]
e42c: 4643 mov r3, r8
e42e: 9301 str r3, [sp, #4]
e430: 2301 movs r3, #1
e432: 9300 str r3, [sp, #0]
e434: 2300 movs r3, #0
e436: 466a mov r2, sp
e438: 8b12 ldrh r2, [r2, #24]
e43a: 0021 movs r1, r4
e43c: 9804 ldr r0, [sp, #16]
e43e: 4e5d ldr r6, [pc, #372] ; (e5b4 <lv_draw_rect+0x2544>)
e440: 47b0 blx r6
e442: e781 b.n e348 <lv_draw_rect+0x22d8>
e444: 9b0b ldr r3, [sp, #44] ; 0x2c
e446: 469b mov fp, r3
fill_area.y1 = area_outer.y1 + corner_size + 1;
e448: 466b mov r3, sp
e44a: 2240 movs r2, #64 ; 0x40
e44c: 189b adds r3, r3, r2
e44e: 881b ldrh r3, [r3, #0]
e450: ac1c add r4, sp, #112 ; 0x70
e452: ad18 add r5, sp, #96 ; 0x60
e454: 886a ldrh r2, [r5, #2]
e456: 3201 adds r2, #1
e458: 189a adds r2, r3, r2
e45a: 8062 strh r2, [r4, #2]
fill_area.y2 = area_outer.y2 - corner_size - 1;
e45c: 88ea ldrh r2, [r5, #6]
e45e: 3a01 subs r2, #1
e460: 1ad3 subs r3, r2, r3
e462: 80e3 strh r3, [r4, #6]
fill_area.x1 = area_outer.x1;
e464: 2200 movs r2, #0
e466: 5eab ldrsh r3, [r5, r2]
e468: 8023 strh r3, [r4, #0]
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
e46a: 3b01 subs r3, #1
e46c: 465a mov r2, fp
e46e: 8b12 ldrh r2, [r2, #24]
e470: 18d3 adds r3, r2, r3
e472: 80a3 strh r3, [r4, #4]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
e474: 4653 mov r3, sl
e476: 9302 str r3, [sp, #8]
e478: 4643 mov r3, r8
e47a: 9301 str r3, [sp, #4]
e47c: 2701 movs r7, #1
e47e: 9700 str r7, [sp, #0]
e480: 2300 movs r3, #0
e482: 466a mov r2, sp
e484: 2144 movs r1, #68 ; 0x44
e486: 1852 adds r2, r2, r1
e488: 8812 ldrh r2, [r2, #0]
e48a: 0021 movs r1, r4
e48c: 9804 ldr r0, [sp, #16]
e48e: 4e49 ldr r6, [pc, #292] ; (e5b4 <lv_draw_rect+0x2544>)
e490: 47b0 blx r6
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
e492: 2304 movs r3, #4
e494: 5eea ldrsh r2, [r5, r3]
e496: 1c53 adds r3, r2, #1
e498: 4659 mov r1, fp
e49a: 8b09 ldrh r1, [r1, #24]
e49c: 1a5b subs r3, r3, r1
e49e: 8023 strh r3, [r4, #0]
fill_area.x2 = area_outer.x2;
e4a0: 80a2 strh r2, [r4, #4]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
e4a2: 4653 mov r3, sl
e4a4: 9302 str r3, [sp, #8]
e4a6: 4643 mov r3, r8
e4a8: 9301 str r3, [sp, #4]
e4aa: 9700 str r7, [sp, #0]
e4ac: 2300 movs r3, #0
e4ae: 466a mov r2, sp
e4b0: 2144 movs r1, #68 ; 0x44
e4b2: 1852 adds r2, r2, r1
e4b4: 8812 ldrh r2, [r2, #0]
e4b6: 0021 movs r1, r4
e4b8: 9804 ldr r0, [sp, #16]
e4ba: 47b0 blx r6
lv_draw_mask_remove_id(mask_rin_id);
e4bc: 980e ldr r0, [sp, #56] ; 0x38
e4be: 4c40 ldr r4, [pc, #256] ; (e5c0 <lv_draw_rect+0x2550>)
e4c0: 47a0 blx r4
lv_draw_mask_remove_id(mask_rout_id);
e4c2: 980f ldr r0, [sp, #60] ; 0x3c
e4c4: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
e4c6: 9805 ldr r0, [sp, #20]
e4c8: 4b3e ldr r3, [pc, #248] ; (e5c4 <lv_draw_rect+0x2554>)
e4ca: 4798 blx r3
e4cc: f7fe fdb1 bl d032 <lv_draw_rect+0xfc2>
fill_area.x1 = area_outer.x1;
e4d0: aa1c add r2, sp, #112 ; 0x70
e4d2: ab18 add r3, sp, #96 ; 0x60
e4d4: 8819 ldrh r1, [r3, #0]
e4d6: 8011 strh r1, [r2, #0]
fill_area.x2 = area_outer.x2;
e4d8: 889b ldrh r3, [r3, #4]
e4da: 8093 strh r3, [r2, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
e4dc: a91a add r1, sp, #104 ; 0x68
e4de: 2302 movs r3, #2
e4e0: 5ece ldrsh r6, [r1, r3]
e4e2: 464b mov r3, r9
e4e4: 8a5b ldrh r3, [r3, #18]
e4e6: 199b adds r3, r3, r6
e4e8: b21b sxth r3, r3
e4ea: 8053 strh r3, [r2, #2]
fill_area.y2 = fill_area.y1;
e4ec: 80d3 strh r3, [r2, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
e4ee: 2206 movs r2, #6
e4f0: 5e8b ldrsh r3, [r1, r2]
e4f2: 429e cmp r6, r3
e4f4: dce2 bgt.n e4bc <lv_draw_rect+0x244c>
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
e4f6: 4b31 ldr r3, [pc, #196] ; (e5bc <lv_draw_rect+0x254c>)
e4f8: 469b mov fp, r3
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
e4fa: 4f2e ldr r7, [pc, #184] ; (e5b4 <lv_draw_rect+0x2544>)
_lv_memset_ff(mask_buf, draw_area_w);
e4fc: 9909 ldr r1, [sp, #36] ; 0x24
e4fe: 9c05 ldr r4, [sp, #20]
e500: 0020 movs r0, r4
e502: 4b2d ldr r3, [pc, #180] ; (e5b8 <lv_draw_rect+0x2548>)
e504: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
e506: 464b mov r3, r9
e508: 8a5a ldrh r2, [r3, #18]
e50a: 1992 adds r2, r2, r6
e50c: b212 sxth r2, r2
e50e: ad1a add r5, sp, #104 ; 0x68
e510: 8a19 ldrh r1, [r3, #16]
e512: 882b ldrh r3, [r5, #0]
e514: 18c9 adds r1, r1, r3
e516: b209 sxth r1, r1
e518: 9b08 ldr r3, [sp, #32]
e51a: 9405 str r4, [sp, #20]
e51c: 0020 movs r0, r4
e51e: 47d8 blx fp
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
e520: ac1c add r4, sp, #112 ; 0x70
e522: 4652 mov r2, sl
e524: 9202 str r2, [sp, #8]
e526: 4642 mov r2, r8
e528: 9201 str r2, [sp, #4]
e52a: 9000 str r0, [sp, #0]
e52c: 9b05 ldr r3, [sp, #20]
e52e: 466a mov r2, sp
e530: 8b12 ldrh r2, [r2, #24]
e532: 0021 movs r1, r4
e534: 9804 ldr r0, [sp, #16]
e536: 47b8 blx r7
fill_area.y1++;
e538: 8863 ldrh r3, [r4, #2]
e53a: 3301 adds r3, #1
e53c: 8063 strh r3, [r4, #2]
fill_area.y2++;
e53e: 88e3 ldrh r3, [r4, #6]
e540: 3301 adds r3, #1
e542: 80e3 strh r3, [r4, #6]
for(h = draw_area.y1; h <= draw_area.y2; h++) {
e544: 3601 adds r6, #1
e546: 2206 movs r2, #6
e548: 5eab ldrsh r3, [r5, r2]
e54a: 429e cmp r6, r3
e54c: ddd6 ble.n e4fc <lv_draw_rect+0x248c>
e54e: e7b5 b.n e4bc <lv_draw_rect+0x244c>
lv_opa_t * mask_line = _lv_mem_buf_get(size);
e550: 9c07 ldr r4, [sp, #28]
e552: 940c str r4, [sp, #48] ; 0x30
e554: 0020 movs r0, r4
e556: 4b1c ldr r3, [pc, #112] ; (e5c8 <lv_draw_rect+0x2558>)
e558: 4798 blx r3
e55a: 900a str r0, [sp, #40] ; 0x28
for(y = 0; y < size; y++) {
e55c: 2201 movs r2, #1
e55e: 920d str r2, [sp, #52] ; 0x34
e560: 2c00 cmp r4, #0
e562: dd01 ble.n e568 <lv_draw_rect+0x24f8>
e564: f7fd fe85 bl c272 <lv_draw_rect+0x202>
_lv_mem_buf_release(mask_line);
e568: 980a ldr r0, [sp, #40] ; 0x28
e56a: 4b16 ldr r3, [pc, #88] ; (e5c4 <lv_draw_rect+0x2554>)
e56c: 4798 blx r3
for(i = 0; i < size * size; i++) {
e56e: 9f07 ldr r7, [sp, #28]
e570: 437f muls r7, r7
e572: 2f00 cmp r7, #0
e574: d101 bne.n e57a <lv_draw_rect+0x250a>
e576: f7fd ff41 bl c3fc <lv_draw_rect+0x38c>
e57a: 9a0e ldr r2, [sp, #56] ; 0x38
e57c: 0011 movs r1, r2
e57e: 0078 lsls r0, r7, #1
e580: 4694 mov ip, r2
e582: 4460 add r0, ip
res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT);
e584: 880b ldrh r3, [r1, #0]
e586: 099b lsrs r3, r3, #6
e588: 7013 strb r3, [r2, #0]
e58a: 3102 adds r1, #2
e58c: 3201 adds r2, #1
for(i = 0; i < size * size; i++) {
e58e: 4281 cmp r1, r0
e590: d1f8 bne.n e584 <lv_draw_rect+0x2514>
e592: f7fd ff33 bl c3fc <lv_draw_rect+0x38c>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
e596: 465b mov r3, fp
e598: 2200 movs r2, #0
e59a: 5e9a ldrsh r2, [r3, r2]
e59c: 2300 movs r3, #0
e59e: 4649 mov r1, r9
e5a0: a829 add r0, sp, #164 ; 0xa4
e5a2: 4c0a ldr r4, [pc, #40] ; (e5cc <lv_draw_rect+0x255c>)
e5a4: 47a0 blx r4
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
e5a6: 2100 movs r1, #0
e5a8: a829 add r0, sp, #164 ; 0xa4
e5aa: 4b09 ldr r3, [pc, #36] ; (e5d0 <lv_draw_rect+0x2560>)
e5ac: 4798 blx r3
e5ae: 0004 movs r4, r0
e5b0: f7ff f946 bl d840 <lv_draw_rect+0x17d0>
e5b4: 00006fed .word 0x00006fed
e5b8: 00012a19 .word 0x00012a19
e5bc: 0000bad1 .word 0x0000bad1
e5c0: 0000bb25 .word 0x0000bb25
e5c4: 00012465 .word 0x00012465
e5c8: 000127a1 .word 0x000127a1
e5cc: 0000bd01 .word 0x0000bd01
e5d0: 0000ba75 .word 0x0000ba75
0000e5d4 <lv_img_buf_get_px_color>:
* 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)
{
e5d4: b5f0 push {r4, r5, r6, r7, lr}
e5d6: b083 sub sp, #12
e5d8: 0004 movs r4, r0
e5da: 000e movs r6, r1
e5dc: 0017 movs r7, r2
lv_color_t p_color = LV_COLOR_BLACK;
e5de: aa01 add r2, sp, #4
e5e0: 7811 ldrb r1, [r2, #0]
e5e2: 201f movs r0, #31
e5e4: 4381 bics r1, r0
e5e6: 7011 strb r1, [r2, #0]
e5e8: 8811 ldrh r1, [r2, #0]
e5ea: 4840 ldr r0, [pc, #256] ; (e6ec <lv_img_buf_get_px_color+0x118>)
e5ec: 4001 ands r1, r0
e5ee: 8011 strh r1, [r2, #0]
e5f0: 2100 movs r1, #0
e5f2: 7051 strb r1, [r2, #1]
uint8_t * buf_u8 = (uint8_t *)dsc->data;
e5f4: 68a5 ldr r5, [r4, #8]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
e5f6: 7821 ldrb r1, [r4, #0]
e5f8: 221f movs r2, #31
e5fa: 400a ands r2, r1
e5fc: 1f11 subs r1, r2, #4
e5fe: 2902 cmp r1, #2
e600: d90d bls.n e61e <lv_img_buf_get_px_color+0x4a>
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
#if LV_COLOR_SIZE == 32
p_color.ch.alpha = 0xFF; /*Only the color should be get so use a deafult alpha value*/
#endif
}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT) {
e602: 2a07 cmp r2, #7
e604: d022 beq.n e64c <lv_img_buf_get_px_color+0x78>
* 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;
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_2BIT) {
e606: 2a08 cmp r2, #8
e608: d034 beq.n e674 <lv_img_buf_get_px_color+0xa0>
* 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;
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_4BIT) {
e60a: 2a09 cmp r2, #9
e60c: d048 beq.n e6a0 <lv_img_buf_get_px_color+0xcc>
* 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;
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) {
e60e: 2a0a cmp r2, #10
e610: d05e beq.n e6d0 <lv_img_buf_get_px_color+0xfc>
buf_u8 += 4 * 256;
uint32_t px = dsc->header.w * y + x;
p_color.full = buf_u8[px];
}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
e612: 3a0b subs r2, #11
e614: 2a03 cmp r2, #3
e616: d815 bhi.n e644 <lv_img_buf_get_px_color+0x70>
dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
p_color = color;
e618: aa01 add r2, sp, #4
e61a: 8013 strh r3, [r2, #0]
e61c: e012 b.n e644 <lv_img_buf_get_px_color+0x70>
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
e61e: 7820 ldrb r0, [r4, #0]
e620: 06c0 lsls r0, r0, #27
e622: 0ec0 lsrs r0, r0, #27
e624: 4b32 ldr r3, [pc, #200] ; (e6f0 <lv_img_buf_get_px_color+0x11c>)
e626: 4798 blx r3
uint32_t px = dsc->header.w * y * px_size + x * px_size;
e628: 6823 ldr r3, [r4, #0]
e62a: 02db lsls r3, r3, #11
e62c: 0d5b lsrs r3, r3, #21
e62e: 435f muls r7, r3
e630: 19be adds r6, r7, r6
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
e632: 08c0 lsrs r0, r0, #3
uint32_t px = dsc->header.w * y * px_size + x * px_size;
e634: b2c0 uxtb r0, r0
e636: 4370 muls r0, r6
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
e638: 1828 adds r0, r5, r0
*d8 = *s8;
e63a: ab01 add r3, sp, #4
e63c: 7802 ldrb r2, [r0, #0]
e63e: 701a strb r2, [r3, #0]
e640: 7842 ldrb r2, [r0, #1]
e642: 705a strb r2, [r3, #1]
}
return p_color;
e644: ab01 add r3, sp, #4
e646: 8818 ldrh r0, [r3, #0]
}
e648: b003 add sp, #12
e64a: bdf0 pop {r4, r5, r6, r7, pc}
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
e64c: 4032 ands r2, r6
e64e: 2307 movs r3, #7
e650: 1a9a subs r2, r3, r2
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
e652: 6820 ldr r0, [r4, #0]
e654: 02c0 lsls r0, r0, #11
e656: 0d40 lsrs r0, r0, #21
e658: 3007 adds r0, #7
e65a: 10c0 asrs r0, r0, #3
e65c: 4347 muls r7, r0
e65e: 10f6 asrs r6, r6, #3
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
e660: 19ed adds r5, r5, r7
e662: 19ae adds r6, r5, r6
e664: 7a31 ldrb r1, [r6, #8]
e666: 3b06 subs r3, #6
e668: 4093 lsls r3, r2
e66a: 400b ands r3, r1
e66c: 4113 asrs r3, r2
e66e: aa01 add r2, sp, #4
e670: 8013 strh r3, [r2, #0]
e672: e7e7 b.n e644 <lv_img_buf_get_px_color+0x70>
uint8_t bit = (x & 0x3) * 2;
e674: 3a05 subs r2, #5
e676: 4032 ands r2, r6
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
e678: 0052 lsls r2, r2, #1
e67a: 2306 movs r3, #6
e67c: 1a9a subs r2, r3, r2
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
e67e: 6820 ldr r0, [r4, #0]
e680: 02c0 lsls r0, r0, #11
e682: 0d40 lsrs r0, r0, #21
e684: 3003 adds r0, #3
e686: 1080 asrs r0, r0, #2
e688: 4347 muls r7, r0
e68a: 10b6 asrs r6, r6, #2
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
e68c: 19ed adds r5, r5, r7
e68e: 19ae adds r6, r5, r6
e690: 7c31 ldrb r1, [r6, #16]
e692: 3b03 subs r3, #3
e694: 4093 lsls r3, r2
e696: 400b ands r3, r1
e698: 4113 asrs r3, r2
e69a: aa01 add r2, sp, #4
e69c: 8013 strh r3, [r2, #0]
e69e: e7d1 b.n e644 <lv_img_buf_get_px_color+0x70>
uint8_t bit = (x & 0x1) * 4;
e6a0: 2301 movs r3, #1
e6a2: 4033 ands r3, r6
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
e6a4: 009b lsls r3, r3, #2
e6a6: 3a05 subs r2, #5
e6a8: 1ad3 subs r3, r2, r3
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
e6aa: 6820 ldr r0, [r4, #0]
e6ac: 02c0 lsls r0, r0, #11
e6ae: 0d40 lsrs r0, r0, #21
e6b0: 3001 adds r0, #1
e6b2: 1040 asrs r0, r0, #1
e6b4: 4347 muls r7, r0
e6b6: 1076 asrs r6, r6, #1
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
e6b8: 19ed adds r5, r5, r7
e6ba: 19ad adds r5, r5, r6
e6bc: 3540 adds r5, #64 ; 0x40
e6be: 7829 ldrb r1, [r5, #0]
e6c0: 320b adds r2, #11
e6c2: 409a lsls r2, r3
e6c4: 400a ands r2, r1
e6c6: 411a asrs r2, r3
e6c8: 0013 movs r3, r2
e6ca: aa01 add r2, sp, #4
e6cc: 8013 strh r3, [r2, #0]
e6ce: e7b9 b.n e644 <lv_img_buf_get_px_color+0x70>
uint32_t px = dsc->header.w * y + x;
e6d0: 6823 ldr r3, [r4, #0]
e6d2: 02db lsls r3, r3, #11
e6d4: 0d5b lsrs r3, r3, #21
e6d6: 437b muls r3, r7
p_color.full = buf_u8[px];
e6d8: 19ad adds r5, r5, r6
e6da: 18ed adds r5, r5, r3
e6dc: 2380 movs r3, #128 ; 0x80
e6de: 00db lsls r3, r3, #3
e6e0: 469c mov ip, r3
e6e2: 4465 add r5, ip
e6e4: 782a ldrb r2, [r5, #0]
e6e6: ab01 add r3, sp, #4
e6e8: 801a strh r2, [r3, #0]
e6ea: e7ab b.n e644 <lv_img_buf_get_px_color+0x70>
e6ec: fffff81f .word 0xfffff81f
e6f0: 000092a9 .word 0x000092a9
0000e6f4 <lv_img_buf_get_px_alpha>:
* @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)
{
e6f4: b5f0 push {r4, r5, r6, r7, lr}
e6f6: b087 sub sp, #28
e6f8: 0004 movs r4, r0
e6fa: 9201 str r2, [sp, #4]
uint8_t * buf_u8 = (uint8_t *)dsc->data;
e6fc: 6886 ldr r6, [r0, #8]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
e6fe: 7800 ldrb r0, [r0, #0]
e700: 231f movs r3, #31
e702: 4003 ands r3, r0
e704: 2b05 cmp r3, #5
e706: d00a beq.n e71e <lv_img_buf_get_px_alpha+0x2a>
uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE;
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) {
e708: 2b0b cmp r3, #11
e70a: d012 beq.n e732 <lv_img_buf_get_px_alpha+0x3e>
* so the possible real width are 8 ,16, 24 ...*/
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_2BIT) {
e70c: 2b0c cmp r3, #12
e70e: d028 beq.n e762 <lv_img_buf_get_px_alpha+0x6e>
* so the possible real width are 4 ,8, 12 ...*/
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
return opa_table[px_opa];
}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_4BIT) {
e710: 2b0d cmp r3, #13
e712: d047 beq.n e7a4 <lv_img_buf_get_px_alpha+0xb0>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
uint32_t px = dsc->header.w * y + x;
return buf_u8[px];
}
return LV_OPA_COVER;
e714: 20ff movs r0, #255 ; 0xff
else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
e716: 2b0e cmp r3, #14
e718: d064 beq.n e7e4 <lv_img_buf_get_px_alpha+0xf0>
}
e71a: b007 add sp, #28
e71c: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE;
e71e: 6823 ldr r3, [r4, #0]
e720: 02db lsls r3, r3, #11
e722: 0d5b lsrs r3, r3, #21
e724: 435a muls r2, r3
e726: 1851 adds r1, r2, r1
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
e728: 004a lsls r2, r1, #1
e72a: 1851 adds r1, r2, r1
e72c: 1871 adds r1, r6, r1
e72e: 7888 ldrb r0, [r1, #2]
e730: e7f3 b.n e71a <lv_img_buf_get_px_alpha+0x26>
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
e732: 2507 movs r5, #7
e734: 400d ands r5, r1
e736: 3b04 subs r3, #4
e738: 1b5d subs r5, r3, r5
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
e73a: 6823 ldr r3, [r4, #0]
e73c: 02db lsls r3, r3, #11
e73e: 0d5b lsrs r3, r3, #21
e740: 3307 adds r3, #7
e742: 10db asrs r3, r3, #3
e744: 9a01 ldr r2, [sp, #4]
e746: 435a muls r2, r3
e748: 10c9 asrs r1, r1, #3
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
e74a: 18b2 adds r2, r6, r2
e74c: 5c53 ldrb r3, [r2, r1]
e74e: 2001 movs r0, #1
e750: 40a8 lsls r0, r5
e752: 4018 ands r0, r3
e754: 4128 asrs r0, r5
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
e756: b2c3 uxtb r3, r0
e758: 4258 negs r0, r3
e75a: 4158 adcs r0, r3
e75c: 4240 negs r0, r0
e75e: b2c0 uxtb r0, r0
e760: e7db b.n e71a <lv_img_buf_get_px_alpha+0x26>
const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
e762: 2300 movs r3, #0
e764: a802 add r0, sp, #8
e766: 7003 strb r3, [r0, #0]
e768: 3355 adds r3, #85 ; 0x55
e76a: 7043 strb r3, [r0, #1]
e76c: 3355 adds r3, #85 ; 0x55
e76e: 7083 strb r3, [r0, #2]
e770: 20ff movs r0, #255 ; 0xff
e772: ab02 add r3, sp, #8
e774: 70d8 strb r0, [r3, #3]
uint8_t bit = (x & 0x3) * 2;
e776: 2503 movs r5, #3
e778: 400d ands r5, r1
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
e77a: 006d lsls r5, r5, #1
e77c: 2306 movs r3, #6
e77e: 1b5d subs r5, r3, r5
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
e780: 6823 ldr r3, [r4, #0]
e782: 02db lsls r3, r3, #11
e784: 0d5b lsrs r3, r3, #21
e786: 3303 adds r3, #3
e788: 109b asrs r3, r3, #2
e78a: 9a01 ldr r2, [sp, #4]
e78c: 435a muls r2, r3
e78e: 1089 asrs r1, r1, #2
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
e790: 18b2 adds r2, r6, r2
e792: 5c52 ldrb r2, [r2, r1]
e794: 2303 movs r3, #3
e796: 40ab lsls r3, r5
e798: 4013 ands r3, r2
e79a: 412b asrs r3, r5
return opa_table[px_opa];
e79c: 4003 ands r3, r0
e79e: aa02 add r2, sp, #8
e7a0: 5cd0 ldrb r0, [r2, r3]
e7a2: e7ba b.n e71a <lv_img_buf_get_px_alpha+0x26>
const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
e7a4: ab02 add r3, sp, #8
e7a6: 469c mov ip, r3
e7a8: 4b12 ldr r3, [pc, #72] ; (e7f4 <lv_img_buf_get_px_alpha+0x100>)
e7aa: 4665 mov r5, ip
e7ac: cb85 ldmia r3!, {r0, r2, r7}
e7ae: c585 stmia r5!, {r0, r2, r7}
e7b0: 681b ldr r3, [r3, #0]
e7b2: 602b str r3, [r5, #0]
uint8_t bit = (x & 0x1) * 4;
e7b4: 2501 movs r5, #1
e7b6: 400d ands r5, r1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
e7b8: 00ad lsls r5, r5, #2
e7ba: 2304 movs r3, #4
e7bc: 1b5d subs r5, r3, r5
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
e7be: 6823 ldr r3, [r4, #0]
e7c0: 02db lsls r3, r3, #11
e7c2: 0d5b lsrs r3, r3, #21
e7c4: 3301 adds r3, #1
e7c6: 105b asrs r3, r3, #1
e7c8: 9a01 ldr r2, [sp, #4]
e7ca: 435a muls r2, r3
e7cc: 1049 asrs r1, r1, #1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
e7ce: 18b2 adds r2, r6, r2
e7d0: 5c52 ldrb r2, [r2, r1]
e7d2: 230f movs r3, #15
e7d4: 40ab lsls r3, r5
e7d6: 4013 ands r3, r2
e7d8: 412b asrs r3, r5
return opa_table[px_opa];
e7da: 22ff movs r2, #255 ; 0xff
e7dc: 4013 ands r3, r2
e7de: 4662 mov r2, ip
e7e0: 5cd0 ldrb r0, [r2, r3]
e7e2: e79a b.n e71a <lv_img_buf_get_px_alpha+0x26>
uint32_t px = dsc->header.w * y + x;
e7e4: 6823 ldr r3, [r4, #0]
e7e6: 02db lsls r3, r3, #11
e7e8: 0d5b lsrs r3, r3, #21
e7ea: 9a01 ldr r2, [sp, #4]
e7ec: 435a muls r2, r3
return buf_u8[px];
e7ee: 1871 adds r1, r6, r1
e7f0: 5c88 ldrb r0, [r1, r2]
e7f2: e792 b.n e71a <lv_img_buf_get_px_alpha+0x26>
e7f4: 000264e0 .word 0x000264e0
0000e7f8 <_lv_img_buf_transform_init>:
/**
* Initialize a descriptor to tranform 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)
{
e7f8: b5f0 push {r4, r5, r6, r7, lr}
e7fa: 46de mov lr, fp
e7fc: 4657 mov r7, sl
e7fe: 464e mov r6, r9
e800: 4645 mov r5, r8
e802: b5e0 push {r5, r6, r7, lr}
e804: b083 sub sp, #12
e806: 0004 movs r4, r0
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
e808: 2208 movs r2, #8
e80a: 5e83 ldrsh r3, [r0, r2]
e80c: 021b lsls r3, r3, #8
e80e: 6243 str r3, [r0, #36] ; 0x24
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
e810: 220a movs r2, #10
e812: 5e83 ldrsh r3, [r0, r2]
e814: 021b lsls r3, r3, #8
e816: 6283 str r3, [r0, #40] ; 0x28
int32_t angle_low = dsc->cfg.angle / 10;
e818: 230c movs r3, #12
e81a: 5ec7 ldrsh r7, [r0, r3]
e81c: 4b3e ldr r3, [pc, #248] ; (e918 <_lv_img_buf_transform_init+0x120>)
e81e: 469b mov fp, r3
e820: 210a movs r1, #10
e822: 0038 movs r0, r7
e824: 4798 blx r3
e826: b205 sxth r5, r0
int32_t angle_hight = angle_low + 1;
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
e828: 260a movs r6, #10
e82a: 4276 negs r6, r6
e82c: 436e muls r6, r5
e82e: 19f6 adds r6, r6, r7
int32_t s1 = _lv_trigo_sin(-angle_low);
e830: b2ab uxth r3, r5
e832: 4698 mov r8, r3
e834: 4258 negs r0, r3
e836: b200 sxth r0, r0
e838: 4b38 ldr r3, [pc, #224] ; (e91c <_lv_img_buf_transform_init+0x124>)
e83a: 469a mov sl, r3
e83c: 4798 blx r3
e83e: 4681 mov r9, r0
int32_t angle_hight = angle_low + 1;
e840: 3501 adds r5, #1
int32_t s2 = _lv_trigo_sin(-angle_hight);
e842: b2ad uxth r5, r5
e844: 4268 negs r0, r5
e846: b200 sxth r0, r0
e848: 47d0 blx sl
e84a: 9001 str r0, [sp, #4]
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
e84c: 275a movs r7, #90 ; 0x5a
e84e: 4642 mov r2, r8
e850: 1ab8 subs r0, r7, r2
e852: b200 sxth r0, r0
e854: 47d0 blx sl
e856: 4680 mov r8, r0
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
e858: 1b7d subs r5, r7, r5
e85a: b228 sxth r0, r5
e85c: 47d0 blx sl
e85e: 0007 movs r7, r0
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
e860: 250a movs r5, #10
e862: 1bad subs r5, r5, r6
e864: 464b mov r3, r9
e866: 436b muls r3, r5
e868: 0018 movs r0, r3
e86a: 9b01 ldr r3, [sp, #4]
e86c: 4373 muls r3, r6
e86e: 18c0 adds r0, r0, r3
e870: 210a movs r1, #10
e872: 47d8 blx fp
e874: 62e0 str r0, [r4, #44] ; 0x2c
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
e876: 4643 mov r3, r8
e878: 435d muls r5, r3
e87a: 0030 movs r0, r6
e87c: 4378 muls r0, r7
e87e: 1828 adds r0, r5, r0
e880: 210a movs r1, #10
e882: 47d8 blx fp
e884: 6320 str r0, [r4, #48] ; 0x30
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
e886: 7ca0 ldrb r0, [r4, #18]
e888: 4b25 ldr r3, [pc, #148] ; (e920 <_lv_img_buf_transform_init+0x128>)
e88a: 4798 blx r3
e88c: 2634 movs r6, #52 ; 0x34
e88e: 2501 movs r5, #1
e890: 0003 movs r3, r0
e892: 402b ands r3, r5
e894: 5da0 ldrb r0, [r4, r6]
e896: 2201 movs r2, #1
e898: 4390 bics r0, r2
e89a: 4318 orrs r0, r3
e89c: 55a0 strb r0, [r4, r6]
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
e89e: 7ca0 ldrb r0, [r4, #18]
e8a0: 4b20 ldr r3, [pc, #128] ; (e924 <_lv_img_buf_transform_init+0x12c>)
e8a2: 4798 blx r3
e8a4: 4005 ands r5, r0
e8a6: 006d lsls r5, r5, #1
e8a8: 5da0 ldrb r0, [r4, r6]
e8aa: 2302 movs r3, #2
e8ac: 4398 bics r0, r3
e8ae: 4305 orrs r5, r0
e8b0: 55a5 strb r5, [r4, r6]
if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
e8b2: 7ca2 ldrb r2, [r4, #18]
e8b4: 1f13 subs r3, r2, #4
e8b6: 2b02 cmp r3, #2
e8b8: d928 bls.n e90c <_lv_img_buf_transform_init+0x114>
dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
dsc->tmp.native_color = 1;
}
else {
dsc->tmp.native_color = 0;
e8ba: 2134 movs r1, #52 ; 0x34
e8bc: 5c63 ldrb r3, [r4, r1]
e8be: 2004 movs r0, #4
e8c0: 4383 bics r3, r0
e8c2: 5463 strb r3, [r4, r1]
}
dsc->tmp.img_dsc.data = dsc->cfg.src;
e8c4: 6823 ldr r3, [r4, #0]
e8c6: 6223 str r3, [r4, #32]
dsc->tmp.img_dsc.header.always_zero = 0;
dsc->tmp.img_dsc.header.cf = dsc->cfg.cf;
e8c8: 231f movs r3, #31
e8ca: 4013 ands r3, r2
e8cc: 7623 strb r3, [r4, #24]
dsc->tmp.img_dsc.header.w = dsc->cfg.src_w;
e8ce: 88a3 ldrh r3, [r4, #4]
e8d0: 055b lsls r3, r3, #21
e8d2: 0ada lsrs r2, r3, #11
e8d4: 4b14 ldr r3, [pc, #80] ; (e928 <_lv_img_buf_transform_init+0x130>)
e8d6: 69a1 ldr r1, [r4, #24]
e8d8: 400b ands r3, r1
e8da: 4313 orrs r3, r2
e8dc: 61a3 str r3, [r4, #24]
dsc->tmp.img_dsc.header.h = dsc->cfg.src_h;
e8de: 88e2 ldrh r2, [r4, #6]
e8e0: 0152 lsls r2, r2, #5
e8e2: 02db lsls r3, r3, #11
e8e4: 0edb lsrs r3, r3, #27
e8e6: 4313 orrs r3, r2
e8e8: 8363 strh r3, [r4, #26]
dsc->tmp.zoom_inv = (256 * 256) / dsc->cfg.zoom;
e8ea: 89e1 ldrh r1, [r4, #14]
e8ec: 2080 movs r0, #128 ; 0x80
e8ee: 0240 lsls r0, r0, #9
e8f0: 4b09 ldr r3, [pc, #36] ; (e918 <_lv_img_buf_transform_init+0x120>)
e8f2: 4798 blx r3
e8f4: 86e0 strh r0, [r4, #54] ; 0x36
dsc->res.opa = LV_OPA_COVER;
e8f6: 23ff movs r3, #255 ; 0xff
e8f8: 75a3 strb r3, [r4, #22]
dsc->res.color = dsc->cfg.color;
e8fa: 8a23 ldrh r3, [r4, #16]
e8fc: 82a3 strh r3, [r4, #20]
}
e8fe: b003 add sp, #12
e900: bc3c pop {r2, r3, r4, r5}
e902: 4690 mov r8, r2
e904: 4699 mov r9, r3
e906: 46a2 mov sl, r4
e908: 46ab mov fp, r5
e90a: bdf0 pop {r4, r5, r6, r7, pc}
dsc->tmp.native_color = 1;
e90c: 2134 movs r1, #52 ; 0x34
e90e: b2eb uxtb r3, r5
e910: 2004 movs r0, #4
e912: 4303 orrs r3, r0
e914: 5463 strb r3, [r4, r1]
e916: e7d5 b.n e8c4 <_lv_img_buf_transform_init+0xcc>
e918: 0001c1b9 .word 0x0001c1b9
e91c: 000121a1 .word 0x000121a1
e920: 000092d9 .word 0x000092d9
e924: 000092ed .word 0x000092ed
e928: ffe003ff .word 0xffe003ff
0000e92c <_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,
lv_point_t * pivot)
{
e92c: b5f0 push {r4, r5, r6, r7, lr}
e92e: 46de mov lr, fp
e930: 4657 mov r7, sl
e932: 464e mov r6, r9
e934: 4645 mov r5, r8
e936: b5e0 push {r5, r6, r7, lr}
e938: b087 sub sp, #28
e93a: 9000 str r0, [sp, #0]
e93c: 9102 str r1, [sp, #8]
e93e: 9205 str r2, [sp, #20]
e940: 001d movs r5, r3
e942: ab10 add r3, sp, #64 ; 0x40
e944: 881b ldrh r3, [r3, #0]
e946: 469b mov fp, r3
#if LV_USE_IMG_TRANSFORM
int32_t angle_low = angle / 10;
e948: 4f6a ldr r7, [pc, #424] ; (eaf4 <_lv_img_buf_get_transformed_area+0x1c8>)
e94a: 210a movs r1, #10
e94c: 0028 movs r0, r5
e94e: 47b8 blx r7
e950: b204 sxth r4, r0
int32_t angle_hight = angle_low + 1;
e952: 1c66 adds r6, r4, #1
int32_t angle_rem = angle - (angle_low * 10);
e954: 200a movs r0, #10
e956: 4240 negs r0, r0
e958: 4360 muls r0, r4
e95a: 1945 adds r5, r0, r5
int32_t s1 = _lv_trigo_sin(angle_low);
e95c: 0020 movs r0, r4
e95e: 4b66 ldr r3, [pc, #408] ; (eaf8 <_lv_img_buf_get_transformed_area+0x1cc>)
e960: 4699 mov r9, r3
e962: 4798 blx r3
e964: 4680 mov r8, r0
int32_t s2 = _lv_trigo_sin(angle_hight);
e966: b230 sxth r0, r6
e968: 47c8 blx r9
e96a: 4682 mov sl, r0
int32_t c1 = _lv_trigo_sin(angle_low + 90);
e96c: 345a adds r4, #90 ; 0x5a
e96e: b220 sxth r0, r4
e970: 47c8 blx r9
e972: 0004 movs r4, r0
int32_t c2 = _lv_trigo_sin(angle_hight + 90);
e974: 365a adds r6, #90 ; 0x5a
e976: b230 sxth r0, r6
e978: 47c8 blx r9
e97a: 4681 mov r9, r0
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
e97c: 260a movs r6, #10
e97e: 1b76 subs r6, r6, r5
e980: 4640 mov r0, r8
e982: 4370 muls r0, r6
e984: 4653 mov r3, sl
e986: 436b muls r3, r5
e988: 18c0 adds r0, r0, r3
e98a: 210a movs r1, #10
e98c: 47b8 blx r7
e98e: 4680 mov r8, r0
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
e990: 4374 muls r4, r6
e992: 464b mov r3, r9
e994: 435d muls r5, r3
e996: 1960 adds r0, r4, r5
e998: 210a movs r1, #10
e99a: 47b8 blx r7
lv_coord_t xt;
lv_coord_t yt;
lv_area_t a;
a.x1 = ((-pivot->x) * zoom) >> 8;
e99c: 9b11 ldr r3, [sp, #68] ; 0x44
e99e: 2200 movs r2, #0
e9a0: 5e9a ldrsh r2, [r3, r2]
a.y1 = ((-pivot->y) * zoom) >> 8;
e9a2: 9b11 ldr r3, [sp, #68] ; 0x44
e9a4: 2702 movs r7, #2
e9a6: 5fdf ldrsh r7, [r3, r7]
a.x1 = ((-pivot->x) * zoom) >> 8;
e9a8: 4254 negs r4, r2
e9aa: 465b mov r3, fp
e9ac: 435c muls r4, r3
e9ae: 1224 asrs r4, r4, #8
a.x2 = ((w - pivot->x) * zoom) >> 8;
a.y2 = ((h - pivot->y) * zoom) >> 8;
xt = a.x1;
yt = a.y1;
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
e9b0: b224 sxth r4, r4
e9b2: 0023 movs r3, r4
e9b4: 4343 muls r3, r0
e9b6: 4699 mov r9, r3
a.y1 = ((-pivot->y) * zoom) >> 8;
e9b8: 427b negs r3, r7
e9ba: 465d mov r5, fp
e9bc: 436b muls r3, r5
e9be: 121b asrs r3, r3, #8
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
e9c0: b21b sxth r3, r3
e9c2: 4641 mov r1, r8
e9c4: 4359 muls r1, r3
e9c6: b296 uxth r6, r2
e9c8: 464d mov r5, r9
e9ca: 1a6d subs r5, r5, r1
e9cc: 13ed asrs r5, r5, #15
e9ce: 1975 adds r5, r6, r5
e9d0: b22d sxth r5, r5
e9d2: 46aa mov sl, r5
lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
e9d4: 4645 mov r5, r8
e9d6: 4365 muls r5, r4
e9d8: 4343 muls r3, r0
e9da: b2bc uxth r4, r7
e9dc: 9503 str r5, [sp, #12]
e9de: 18ed adds r5, r5, r3
e9e0: 13ed asrs r5, r5, #15
e9e2: 9401 str r4, [sp, #4]
e9e4: 46a4 mov ip, r4
e9e6: 4465 add r5, ip
e9e8: b22d sxth r5, r5
a.x2 = ((w - pivot->x) * zoom) >> 8;
e9ea: 9c02 ldr r4, [sp, #8]
e9ec: 1aa2 subs r2, r4, r2
e9ee: 465c mov r4, fp
e9f0: 4362 muls r2, r4
e9f2: 1212 asrs r2, r2, #8
xt = a.x2;
yt = a.y1;
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
e9f4: b212 sxth r2, r2
e9f6: 0014 movs r4, r2
e9f8: 4344 muls r4, r0
e9fa: 9402 str r4, [sp, #8]
e9fc: 1a61 subs r1, r4, r1
e9fe: 13c9 asrs r1, r1, #15
ea00: 1871 adds r1, r6, r1
ea02: b209 sxth r1, r1
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
ea04: 4644 mov r4, r8
ea06: 4362 muls r2, r4
ea08: 9204 str r2, [sp, #16]
ea0a: 4694 mov ip, r2
ea0c: 4463 add r3, ip
ea0e: 13db asrs r3, r3, #15
ea10: 9c01 ldr r4, [sp, #4]
ea12: 46a4 mov ip, r4
ea14: 4463 add r3, ip
ea16: b21b sxth r3, r3
a.y2 = ((h - pivot->y) * zoom) >> 8;
ea18: 9c05 ldr r4, [sp, #20]
ea1a: 1be7 subs r7, r4, r7
ea1c: 465c mov r4, fp
ea1e: 4367 muls r7, r4
ea20: 123f asrs r7, r7, #8
xt = a.x1;
yt = a.y2;
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
ea22: b23f sxth r7, r7
ea24: 4644 mov r4, r8
ea26: 437c muls r4, r7
ea28: 46a0 mov r8, r4
ea2a: 464c mov r4, r9
ea2c: 4642 mov r2, r8
ea2e: 1aa4 subs r4, r4, r2
ea30: 13e2 asrs r2, r4, #15
ea32: 4691 mov r9, r2
ea34: 44b1 add r9, r6
ea36: 464a mov r2, r9
ea38: b212 sxth r2, r2
ea3a: 4691 mov r9, r2
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
ea3c: 4378 muls r0, r7
ea3e: 9f03 ldr r7, [sp, #12]
ea40: 183f adds r7, r7, r0
ea42: 13ff asrs r7, r7, #15
ea44: 46e3 mov fp, ip
ea46: 4467 add r7, ip
ea48: b23f sxth r7, r7
xt = a.x2;
yt = a.y2;
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
ea4a: 9a02 ldr r2, [sp, #8]
ea4c: 4644 mov r4, r8
ea4e: 1b12 subs r2, r2, r4
ea50: 13d2 asrs r2, r2, #15
ea52: 4690 mov r8, r2
ea54: 4446 add r6, r8
ea56: b236 sxth r6, r6
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
ea58: 9a04 ldr r2, [sp, #16]
ea5a: 4694 mov ip, r2
ea5c: 4460 add r0, ip
ea5e: 13c0 asrs r0, r0, #15
ea60: 465a mov r2, fp
ea62: 1814 adds r4, r2, r0
ea64: b224 sxth r4, r4
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
ea66: 4652 mov r2, sl
ea68: 458a cmp sl, r1
ea6a: dd00 ble.n ea6e <_lv_img_buf_get_transformed_area+0x142>
ea6c: 1c0a adds r2, r1, #0
ea6e: 1c10 adds r0, r2, #0
ea70: b212 sxth r2, r2
ea72: 454a cmp r2, r9
ea74: dd00 ble.n ea78 <_lv_img_buf_get_transformed_area+0x14c>
ea76: 4648 mov r0, r9
ea78: 1c02 adds r2, r0, #0
ea7a: b200 sxth r0, r0
ea7c: 42b0 cmp r0, r6
ea7e: dd00 ble.n ea82 <_lv_img_buf_get_transformed_area+0x156>
ea80: 1c32 adds r2, r6, #0
ea82: 9800 ldr r0, [sp, #0]
ea84: 8002 strh r2, [r0, #0]
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
ea86: 4650 mov r0, sl
ea88: 458a cmp sl, r1
ea8a: da00 bge.n ea8e <_lv_img_buf_get_transformed_area+0x162>
ea8c: 1c08 adds r0, r1, #0
ea8e: 1c01 adds r1, r0, #0
ea90: b200 sxth r0, r0
ea92: 4548 cmp r0, r9
ea94: da00 bge.n ea98 <_lv_img_buf_get_transformed_area+0x16c>
ea96: 4649 mov r1, r9
ea98: 1c0a adds r2, r1, #0
ea9a: b209 sxth r1, r1
ea9c: 42b1 cmp r1, r6
ea9e: da00 bge.n eaa2 <_lv_img_buf_get_transformed_area+0x176>
eaa0: 1c32 adds r2, r6, #0
eaa2: 9900 ldr r1, [sp, #0]
eaa4: 808a strh r2, [r1, #4]
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
eaa6: 1c29 adds r1, r5, #0
eaa8: 429d cmp r5, r3
eaaa: dd00 ble.n eaae <_lv_img_buf_get_transformed_area+0x182>
eaac: 1c19 adds r1, r3, #0
eaae: 1c0a adds r2, r1, #0
eab0: b209 sxth r1, r1
eab2: 42b9 cmp r1, r7
eab4: dd00 ble.n eab8 <_lv_img_buf_get_transformed_area+0x18c>
eab6: 1c3a adds r2, r7, #0
eab8: 1c11 adds r1, r2, #0
eaba: b212 sxth r2, r2
eabc: 42a2 cmp r2, r4
eabe: dd00 ble.n eac2 <_lv_img_buf_get_transformed_area+0x196>
eac0: 1c21 adds r1, r4, #0
eac2: 9a00 ldr r2, [sp, #0]
eac4: 8051 strh r1, [r2, #2]
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
eac6: 1c2a adds r2, r5, #0
eac8: 429d cmp r5, r3
eaca: da00 bge.n eace <_lv_img_buf_get_transformed_area+0x1a2>
eacc: 1c1a adds r2, r3, #0
eace: 1c13 adds r3, r2, #0
ead0: b212 sxth r2, r2
ead2: 42ba cmp r2, r7
ead4: da00 bge.n ead8 <_lv_img_buf_get_transformed_area+0x1ac>
ead6: 1c3b adds r3, r7, #0
ead8: 1c1a adds r2, r3, #0
eada: b21b sxth r3, r3
eadc: 42a3 cmp r3, r4
eade: da00 bge.n eae2 <_lv_img_buf_get_transformed_area+0x1b6>
eae0: 1c22 adds r2, r4, #0
eae2: 9b00 ldr r3, [sp, #0]
eae4: 80da strh r2, [r3, #6]
res->x1 = 0;
res->y1 = 0;
res->x2 = w;
res->y2 = h;
#endif
}
eae6: b007 add sp, #28
eae8: bc3c pop {r2, r3, r4, r5}
eaea: 4690 mov r8, r2
eaec: 4699 mov r9, r3
eaee: 46a2 mov sl, r4
eaf0: 46ab mov fp, r5
eaf2: bdf0 pop {r4, r5, r6, r7, pc}
eaf4: 0001c1b9 .word 0x0001c1b9
eaf8: 000121a1 .word 0x000121a1
0000eafc <_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)
{
eafc: b5f0 push {r4, r5, r6, r7, lr}
eafe: 46de mov lr, fp
eb00: 4657 mov r7, sl
eb02: 464e mov r6, r9
eb04: 4645 mov r5, r8
eb06: b5e0 push {r5, r6, r7, lr}
eb08: b08b sub sp, #44 ; 0x2c
eb0a: 0004 movs r4, r0
const uint8_t * src_u8 = dsc->cfg.src;
/*Get the fractional part of the source pixel*/
int xs_fract = dsc->tmp.xs & 0xff;
eb0c: 2338 movs r3, #56 ; 0x38
eb0e: 5ec7 ldrsh r7, [r0, r3]
eb10: 23ff movs r3, #255 ; 0xff
eb12: 001a movs r2, r3
eb14: 403a ands r2, r7
int ys_fract = dsc->tmp.ys & 0xff;
eb16: 213a movs r1, #58 ; 0x3a
eb18: 5e46 ldrsh r6, [r0, r1]
eb1a: 4033 ands r3, r6
int32_t xn; /*x neightboor*/
lv_opa_t xr; /*x mix ratio*/
if(xs_fract < 0x70) {
eb1c: 2a6f cmp r2, #111 ; 0x6f
eb1e: dc7e bgt.n ec1e <_lv_img_buf_transform_anti_alias+0x122>
xn = - 1;
if(dsc->tmp.xs_int + xn < 0) xn = 0;
eb20: 223c movs r2, #60 ; 0x3c
eb22: 5e81 ldrsh r1, [r0, r2]
eb24: 4249 negs r1, r1
eb26: 17c9 asrs r1, r1, #31
xr = xs_fract + 0x80;
eb28: 3f80 subs r7, #128 ; 0x80
eb2a: b2ff uxtb r7, r7
}
int32_t yn; /*x neightboor*/
lv_opa_t yr; /*x mix ratio*/
if(ys_fract < 0x70) {
eb2c: 2b6f cmp r3, #111 ; 0x6f
eb2e: dd00 ble.n eb32 <_lv_img_buf_transform_anti_alias+0x36>
eb30: e087 b.n ec42 <_lv_img_buf_transform_anti_alias+0x146>
yn = - 1;
if(dsc->tmp.ys_int + yn < 0) yn = 0;
eb32: 233e movs r3, #62 ; 0x3e
eb34: 5ee2 ldrsh r2, [r4, r3]
eb36: 4252 negs r2, r2
eb38: 17d3 asrs r3, r2, #31
eb3a: 4698 mov r8, r3
yr = ys_fract + 0x80;
eb3c: 3e80 subs r6, #128 ; 0x80
eb3e: b2f6 uxtb r6, r6
else {
yn = 0;
yr = 0xFF;
}
lv_color_t c00 = dsc->res.color;
eb40: 7d25 ldrb r5, [r4, #20]
eb42: 06ed lsls r5, r5, #27
eb44: 0eeb lsrs r3, r5, #27
eb46: 9300 str r3, [sp, #0]
eb48: 8aa3 ldrh r3, [r4, #20]
eb4a: 055b lsls r3, r3, #21
eb4c: 0e9b lsrs r3, r3, #26
eb4e: 9301 str r3, [sp, #4]
eb50: 7d63 ldrb r3, [r4, #21]
eb52: 08db lsrs r3, r3, #3
eb54: 9302 str r3, [sp, #8]
lv_color_t c01;
lv_color_t c10;
lv_color_t c11;
lv_opa_t a00 = dsc->res.opa;
eb56: 7da3 ldrb r3, [r4, #22]
eb58: 9303 str r3, [sp, #12]
lv_opa_t a10 = 0;
lv_opa_t a01 = 0;
lv_opa_t a11 = 0;
if(dsc->tmp.native_color) {
eb5a: 2334 movs r3, #52 ; 0x34
eb5c: 5ce3 ldrb r3, [r4, r3]
eb5e: 4699 mov r9, r3
eb60: 075b lsls r3, r3, #29
eb62: d400 bmi.n eb66 <_lv_img_buf_transform_anti_alias+0x6a>
eb64: e081 b.n ec6a <_lv_img_buf_transform_anti_alias+0x16e>
const uint8_t * src_u8 = dsc->cfg.src;
eb66: 6823 ldr r3, [r4, #0]
_lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t));
eb68: 2244 movs r2, #68 ; 0x44
eb6a: 5ca2 ldrb r2, [r4, r2]
eb6c: 4694 mov ip, r2
eb6e: 4351 muls r1, r2
eb70: 6c22 ldr r2, [r4, #64] ; 0x40
eb72: 4692 mov sl, r2
eb74: 4451 add r1, sl
eb76: 1858 adds r0, r3, r1
eb78: aa09 add r2, sp, #36 ; 0x24
eb7a: 7805 ldrb r5, [r0, #0]
eb7c: 7015 strb r5, [r2, #0]
eb7e: 7840 ldrb r0, [r0, #1]
eb80: 7050 strb r0, [r2, #1]
_lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t));
eb82: 2004 movs r0, #4
eb84: 5e22 ldrsh r2, [r4, r0]
eb86: 4660 mov r0, ip
eb88: 4342 muls r2, r0
eb8a: 4640 mov r0, r8
eb8c: 4350 muls r0, r2
eb8e: 0002 movs r2, r0
eb90: 6c20 ldr r0, [r4, #64] ; 0x40
eb92: 4680 mov r8, r0
eb94: 4490 add r8, r2
eb96: 469a mov sl, r3
eb98: 44c2 add sl, r8
eb9a: a808 add r0, sp, #32
eb9c: 4655 mov r5, sl
eb9e: 782d ldrb r5, [r5, #0]
eba0: 7005 strb r5, [r0, #0]
eba2: 4655 mov r5, sl
eba4: 786d ldrb r5, [r5, #1]
eba6: 7045 strb r5, [r0, #1]
_lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn],
eba8: 188a adds r2, r1, r2
ebaa: 1898 adds r0, r3, r2
ebac: 4682 mov sl, r0
ebae: a807 add r0, sp, #28
ebb0: 4655 mov r5, sl
ebb2: 782d ldrb r5, [r5, #0]
ebb4: 7005 strb r5, [r0, #0]
ebb6: 4655 mov r5, sl
ebb8: 786d ldrb r5, [r5, #1]
ebba: 7045 strb r5, [r0, #1]
sizeof(lv_color_t));
if(dsc->tmp.has_alpha) {
ebbc: 4648 mov r0, r9
ebbe: 0780 lsls r0, r0, #30
ebc0: d400 bmi.n ebc4 <_lv_img_buf_transform_anti_alias+0xc8>
ebc2: e084 b.n ecce <_lv_img_buf_transform_anti_alias+0x1d2>
ebc4: 4660 mov r0, ip
ebc6: 3801 subs r0, #1
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
ebc8: 181b adds r3, r3, r0
ebca: 5c59 ldrb r1, [r3, r1]
ebcc: 4689 mov r9, r1
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
ebce: 4641 mov r1, r8
ebd0: 5c59 ldrb r1, [r3, r1]
ebd2: 468a mov sl, r1
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];
ebd4: 5c98 ldrb r0, [r3, r2]
}
lv_opa_t xr0 = xr;
lv_opa_t xr1 = xr;
if(dsc->tmp.has_alpha) {
lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8;
ebd6: 21ff movs r1, #255 ; 0xff
ebd8: 1bcb subs r3, r1, r7
ebda: 464a mov r2, r9
ebdc: 435a muls r2, r3
ebde: 4694 mov ip, r2
ebe0: 9a03 ldr r2, [sp, #12]
ebe2: 437a muls r2, r7
ebe4: 4462 add r2, ip
ebe6: 1212 asrs r2, r2, #8
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
ebe8: 4343 muls r3, r0
ebea: 4655 mov r5, sl
ebec: 437d muls r5, r7
ebee: 46ac mov ip, r5
ebf0: 4463 add r3, ip
ebf2: 121b asrs r3, r3, #8
ebf4: b2dd uxtb r5, r3
ebf6: 46ac mov ip, r5
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
ebf8: 400b ands r3, r1
ebfa: 1b8d subs r5, r1, r6
ebfc: 436b muls r3, r5
ebfe: 4011 ands r1, r2
ec00: 4371 muls r1, r6
ec02: 185b adds r3, r3, r1
ec04: 121b asrs r3, r3, #8
ec06: 75a3 strb r3, [r4, #22]
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
ec08: b2d2 uxtb r2, r2
ec0a: 2a05 cmp r2, #5
ec0c: d900 bls.n ec10 <_lv_img_buf_transform_anti_alias+0x114>
ec0e: e0dc b.n edca <_lv_img_buf_transform_anti_alias+0x2ce>
ec10: 2300 movs r3, #0
ec12: 4662 mov r2, ip
if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP;
ec14: 2600 movs r6, #0
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
ec16: 2a05 cmp r2, #5
ec18: d900 bls.n ec1c <_lv_img_buf_transform_anti_alias+0x120>
ec1a: e0da b.n edd2 <_lv_img_buf_transform_anti_alias+0x2d6>
ec1c: e0ab b.n ed76 <_lv_img_buf_transform_anti_alias+0x27a>
else if(xs_fract > 0x90) {
ec1e: 2a90 cmp r2, #144 ; 0x90
ec20: dd0c ble.n ec3c <_lv_img_buf_transform_anti_alias+0x140>
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
ec22: 213c movs r1, #60 ; 0x3c
ec24: 5e42 ldrsh r2, [r0, r1]
ec26: 3201 adds r2, #1
ec28: 2104 movs r1, #4
ec2a: 5e40 ldrsh r0, [r0, r1]
ec2c: 2101 movs r1, #1
ec2e: 4282 cmp r2, r0
ec30: db00 blt.n ec34 <_lv_img_buf_transform_anti_alias+0x138>
ec32: 2100 movs r1, #0
xr = (0xFF - xs_fract) + 0x80;
ec34: 227f movs r2, #127 ; 0x7f
ec36: 1bd7 subs r7, r2, r7
ec38: b2ff uxtb r7, r7
ec3a: e777 b.n eb2c <_lv_img_buf_transform_anti_alias+0x30>
xr = 0xFF;
ec3c: 27ff movs r7, #255 ; 0xff
xn = 0;
ec3e: 2100 movs r1, #0
ec40: e774 b.n eb2c <_lv_img_buf_transform_anti_alias+0x30>
else if(ys_fract > 0x90) {
ec42: 2b90 cmp r3, #144 ; 0x90
ec44: dd0d ble.n ec62 <_lv_img_buf_transform_anti_alias+0x166>
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
ec46: 223e movs r2, #62 ; 0x3e
ec48: 5ea3 ldrsh r3, [r4, r2]
ec4a: 3301 adds r3, #1
ec4c: 2206 movs r2, #6
ec4e: 5ea0 ldrsh r0, [r4, r2]
ec50: 2201 movs r2, #1
ec52: 4283 cmp r3, r0
ec54: db00 blt.n ec58 <_lv_img_buf_transform_anti_alias+0x15c>
ec56: 2200 movs r2, #0
yn = 1;
ec58: 4690 mov r8, r2
yr = (0xFF - ys_fract) + 0x80;
ec5a: 237f movs r3, #127 ; 0x7f
ec5c: 1b9e subs r6, r3, r6
ec5e: b2f6 uxtb r6, r6
ec60: e76e b.n eb40 <_lv_img_buf_transform_anti_alias+0x44>
yr = 0xFF;
ec62: 26ff movs r6, #255 ; 0xff
yn = 0;
ec64: 2300 movs r3, #0
ec66: 4698 mov r8, r3
ec68: e76a b.n eb40 <_lv_img_buf_transform_anti_alias+0x44>
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
ec6a: 2318 movs r3, #24
ec6c: 469c mov ip, r3
ec6e: 44a4 add ip, r4
ec70: 4665 mov r5, ip
ec72: b28b uxth r3, r1
ec74: 469b mov fp, r3
ec76: 8a23 ldrh r3, [r4, #16]
ec78: 213e movs r1, #62 ; 0x3e
ec7a: 5e62 ldrsh r2, [r4, r1]
ec7c: 8fa1 ldrh r1, [r4, #60] ; 0x3c
ec7e: 4459 add r1, fp
ec80: b209 sxth r1, r1
ec82: 9504 str r5, [sp, #16]
ec84: 4660 mov r0, ip
ec86: 4daf ldr r5, [pc, #700] ; (ef44 <_lv_img_buf_transform_anti_alias+0x448>)
ec88: 46a9 mov r9, r5
ec8a: 47a8 blx r5
ec8c: ab09 add r3, sp, #36 ; 0x24
ec8e: 8018 strh r0, [r3, #0]
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
ec90: 4642 mov r2, r8
ec92: 466b mov r3, sp
ec94: 82da strh r2, [r3, #22]
ec96: b292 uxth r2, r2
ec98: 4690 mov r8, r2
ec9a: 8a23 ldrh r3, [r4, #16]
ec9c: 8fe2 ldrh r2, [r4, #62] ; 0x3e
ec9e: 4442 add r2, r8
eca0: b212 sxth r2, r2
eca2: 203c movs r0, #60 ; 0x3c
eca4: 5e21 ldrsh r1, [r4, r0]
eca6: 9d04 ldr r5, [sp, #16]
eca8: 0028 movs r0, r5
ecaa: 47c8 blx r9
ecac: ab08 add r3, sp, #32
ecae: 8018 strh r0, [r3, #0]
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
ecb0: 8a23 ldrh r3, [r4, #16]
ecb2: 8fe2 ldrh r2, [r4, #62] ; 0x3e
ecb4: 4442 add r2, r8
ecb6: b212 sxth r2, r2
ecb8: 8fa1 ldrh r1, [r4, #60] ; 0x3c
ecba: 4459 add r1, fp
ecbc: b209 sxth r1, r1
ecbe: 0028 movs r0, r5
ecc0: 47c8 blx r9
ecc2: ab07 add r3, sp, #28
ecc4: 8018 strh r0, [r3, #0]
if(dsc->tmp.has_alpha) {
ecc6: 2334 movs r3, #52 ; 0x34
ecc8: 5ce3 ldrb r3, [r4, r3]
ecca: 079b lsls r3, r3, #30
eccc: d45b bmi.n ed86 <_lv_img_buf_transform_anti_alias+0x28a>
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
}
else {
xr0 = xr;
xr1 = xr;
dsc->res.opa = LV_OPA_COVER;
ecce: 23ff movs r3, #255 ; 0xff
ecd0: 75a3 strb r3, [r4, #22]
xr0 = xr;
ecd2: 003b movs r3, r7
}
lv_color_t c0;
if(xr0 == LV_OPA_TRANSP) c0 = c01;
ecd4: 2b00 cmp r3, #0
ecd6: d000 beq.n ecda <_lv_img_buf_transform_anti_alias+0x1de>
ecd8: e08d b.n edf6 <_lv_img_buf_transform_anti_alias+0x2fa>
ecda: ab09 add r3, sp, #36 ; 0x24
ecdc: 781d ldrb r5, [r3, #0]
ecde: 06ed lsls r5, r5, #27
ece0: 0eea lsrs r2, r5, #27
ece2: 9200 str r2, [sp, #0]
ece4: 881a ldrh r2, [r3, #0]
ece6: 0552 lsls r2, r2, #21
ece8: 0e92 lsrs r2, r2, #26
ecea: 9201 str r2, [sp, #4]
ecec: 785b ldrb r3, [r3, #1]
ecee: 08db lsrs r3, r3, #3
ecf0: 9302 str r3, [sp, #8]
else if(xr0 == LV_OPA_COVER) c0 = c00;
else c0 = lv_color_mix(c00, c01, xr0);
lv_color_t c1;
if(xr1 == LV_OPA_TRANSP) c1 = c11;
ecf2: 2f00 cmp r7, #0
ecf4: d000 beq.n ecf8 <_lv_img_buf_transform_anti_alias+0x1fc>
ecf6: e0b7 b.n ee68 <_lv_img_buf_transform_anti_alias+0x36c>
ecf8: aa07 add r2, sp, #28
ecfa: 7817 ldrb r7, [r2, #0]
ecfc: 06ff lsls r7, r7, #27
ecfe: 0eff lsrs r7, r7, #27
ed00: 8813 ldrh r3, [r2, #0]
ed02: 055b lsls r3, r3, #21
ed04: 0e9b lsrs r3, r3, #26
ed06: 7852 ldrb r2, [r2, #1]
ed08: 08d2 lsrs r2, r2, #3
else if(xr1 == LV_OPA_COVER) c1 = c10;
else c1 = lv_color_mix(c10, c11, xr1);
if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
ed0a: 2e00 cmp r6, #0
ed0c: d100 bne.n ed10 <_lv_img_buf_transform_anti_alias+0x214>
ed0e: e0f1 b.n eef4 <_lv_img_buf_transform_anti_alias+0x3f8>
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
ed10: 2eff cmp r6, #255 ; 0xff
ed12: d100 bne.n ed16 <_lv_img_buf_transform_anti_alias+0x21a>
ed14: e100 b.n ef18 <_lv_img_buf_transform_anti_alias+0x41c>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
ed16: 21ff movs r1, #255 ; 0xff
ed18: 1b89 subs r1, r1, r6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
ed1a: 9d00 ldr r5, [sp, #0]
ed1c: 4375 muls r5, r6
ed1e: 434f muls r7, r1
ed20: 19ef adds r7, r5, r7
ed22: 023d lsls r5, r7, #8
ed24: 19ed adds r5, r5, r7
ed26: 01ed lsls r5, r5, #7
ed28: 19ed adds r5, r5, r7
else dsc->res.color = lv_color_mix(c0, c1, yr);
ed2a: 012d lsls r5, r5, #4
ed2c: 0eed lsrs r5, r5, #27
ed2e: 7d20 ldrb r0, [r4, #20]
ed30: 271f movs r7, #31
ed32: 43b8 bics r0, r7
ed34: 4305 orrs r5, r0
ed36: 7525 strb r5, [r4, #20]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
ed38: 9801 ldr r0, [sp, #4]
ed3a: 4370 muls r0, r6
ed3c: 434b muls r3, r1
ed3e: 18c0 adds r0, r0, r3
ed40: 0203 lsls r3, r0, #8
ed42: 181b adds r3, r3, r0
ed44: 01db lsls r3, r3, #7
ed46: 181b adds r3, r3, r0
ed48: 00db lsls r3, r3, #3
ed4a: 0e9b lsrs r3, r3, #26
ed4c: 015b lsls r3, r3, #5
ed4e: 8aa0 ldrh r0, [r4, #20]
ed50: 4d7d ldr r5, [pc, #500] ; (ef48 <_lv_img_buf_transform_anti_alias+0x44c>)
ed52: 4028 ands r0, r5
ed54: 4303 orrs r3, r0
ed56: 82a3 strh r3, [r4, #20]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
ed58: 9802 ldr r0, [sp, #8]
ed5a: 4346 muls r6, r0
ed5c: 434a muls r2, r1
ed5e: 18b6 adds r6, r6, r2
ed60: 0232 lsls r2, r6, #8
ed62: 1992 adds r2, r2, r6
ed64: 01d2 lsls r2, r2, #7
ed66: 1996 adds r6, r2, r6
ed68: 0df6 lsrs r6, r6, #23
ed6a: 00f6 lsls r6, r6, #3
ed6c: 055b lsls r3, r3, #21
ed6e: 0f5b lsrs r3, r3, #29
ed70: 431e orrs r6, r3
ed72: 7566 strb r6, [r4, #21]
return true;
ed74: 2301 movs r3, #1
}
ed76: 0018 movs r0, r3
ed78: b00b add sp, #44 ; 0x2c
ed7a: bc3c pop {r2, r3, r4, r5}
ed7c: 4690 mov r8, r2
ed7e: 4699 mov r9, r3
ed80: 46a2 mov sl, r4
ed82: 46ab mov fp, r5
ed84: bdf0 pop {r4, r5, r6, r7, pc}
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
ed86: 233e movs r3, #62 ; 0x3e
ed88: 5ee2 ldrsh r2, [r4, r3]
ed8a: 8fa1 ldrh r1, [r4, #60] ; 0x3c
ed8c: 4459 add r1, fp
ed8e: b209 sxth r1, r1
ed90: 9d04 ldr r5, [sp, #16]
ed92: 0028 movs r0, r5
ed94: 4b6d ldr r3, [pc, #436] ; (ef4c <_lv_img_buf_transform_anti_alias+0x450>)
ed96: 4798 blx r3
ed98: 4681 mov r9, r0
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
ed9a: 8fe2 ldrh r2, [r4, #62] ; 0x3e
ed9c: 4442 add r2, r8
ed9e: b212 sxth r2, r2
eda0: 233c movs r3, #60 ; 0x3c
eda2: 5ee1 ldrsh r1, [r4, r3]
eda4: 0028 movs r0, r5
eda6: 4b69 ldr r3, [pc, #420] ; (ef4c <_lv_img_buf_transform_anti_alias+0x450>)
eda8: 4798 blx r3
edaa: 4682 mov sl, r0
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
edac: 8fe2 ldrh r2, [r4, #62] ; 0x3e
edae: 4442 add r2, r8
edb0: b212 sxth r2, r2
edb2: 8fa1 ldrh r1, [r4, #60] ; 0x3c
edb4: 4459 add r1, fp
edb6: b209 sxth r1, r1
edb8: 0028 movs r0, r5
edba: 4b64 ldr r3, [pc, #400] ; (ef4c <_lv_img_buf_transform_anti_alias+0x450>)
edbc: 4798 blx r3
if(dsc->tmp.has_alpha) {
edbe: 2334 movs r3, #52 ; 0x34
edc0: 5ce3 ldrb r3, [r4, r3]
edc2: 079b lsls r3, r3, #30
edc4: d500 bpl.n edc8 <_lv_img_buf_transform_anti_alias+0x2cc>
edc6: e706 b.n ebd6 <_lv_img_buf_transform_anti_alias+0xda>
edc8: e781 b.n ecce <_lv_img_buf_transform_anti_alias+0x1d2>
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
edca: 4663 mov r3, ip
edcc: 2b05 cmp r3, #5
edce: d800 bhi.n edd2 <_lv_img_buf_transform_anti_alias+0x2d6>
edd0: 26ff movs r6, #255 ; 0xff
lv_opa_t xr0 = xr;
edd2: 003b movs r3, r7
if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP;
edd4: 9a03 ldr r2, [sp, #12]
edd6: 2a05 cmp r2, #5
edd8: d800 bhi.n eddc <_lv_img_buf_transform_anti_alias+0x2e0>
edda: 2300 movs r3, #0
if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER;
eddc: 464a mov r2, r9
edde: 2a05 cmp r2, #5
ede0: d800 bhi.n ede4 <_lv_img_buf_transform_anti_alias+0x2e8>
ede2: 23ff movs r3, #255 ; 0xff
if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP;
ede4: 4652 mov r2, sl
ede6: 2a05 cmp r2, #5
ede8: d800 bhi.n edec <_lv_img_buf_transform_anti_alias+0x2f0>
edea: 2700 movs r7, #0
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
edec: 2805 cmp r0, #5
edee: d900 bls.n edf2 <_lv_img_buf_transform_anti_alias+0x2f6>
edf0: e770 b.n ecd4 <_lv_img_buf_transform_anti_alias+0x1d8>
edf2: 27ff movs r7, #255 ; 0xff
edf4: e76e b.n ecd4 <_lv_img_buf_transform_anti_alias+0x1d8>
else if(xr0 == LV_OPA_COVER) c0 = c00;
edf6: 2bff cmp r3, #255 ; 0xff
edf8: d100 bne.n edfc <_lv_img_buf_transform_anti_alias+0x300>
edfa: e77a b.n ecf2 <_lv_img_buf_transform_anti_alias+0x1f6>
edfc: 22ff movs r2, #255 ; 0xff
edfe: 1ad2 subs r2, r2, r3
ee00: a809 add r0, sp, #36 ; 0x24
ee02: 7841 ldrb r1, [r0, #1]
ee04: 08c9 lsrs r1, r1, #3
ee06: 4351 muls r1, r2
ee08: 9d02 ldr r5, [sp, #8]
ee0a: 435d muls r5, r3
ee0c: 46ac mov ip, r5
ee0e: 448c add ip, r1
ee10: 4661 mov r1, ip
ee12: 0209 lsls r1, r1, #8
ee14: 4461 add r1, ip
ee16: 01c9 lsls r1, r1, #7
ee18: 4461 add r1, ip
ee1a: 0dc9 lsrs r1, r1, #23
ee1c: 251f movs r5, #31
ee1e: 46ac mov ip, r5
ee20: 400d ands r5, r1
ee22: 9502 str r5, [sp, #8]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
ee24: 8801 ldrh r1, [r0, #0]
ee26: 0549 lsls r1, r1, #21
ee28: 0e89 lsrs r1, r1, #26
ee2a: 4351 muls r1, r2
ee2c: 9d01 ldr r5, [sp, #4]
ee2e: 435d muls r5, r3
ee30: 46a8 mov r8, r5
ee32: 4441 add r1, r8
ee34: 020d lsls r5, r1, #8
ee36: 46a8 mov r8, r5
ee38: 4488 add r8, r1
ee3a: 4645 mov r5, r8
ee3c: 01ed lsls r5, r5, #7
ee3e: 46a8 mov r8, r5
ee40: 4441 add r1, r8
ee42: 00c9 lsls r1, r1, #3
ee44: 0e89 lsrs r1, r1, #26
ee46: 9101 str r1, [sp, #4]
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
ee48: 7801 ldrb r1, [r0, #0]
ee4a: 06c9 lsls r1, r1, #27
ee4c: 0ec9 lsrs r1, r1, #27
ee4e: 434a muls r2, r1
ee50: 9d00 ldr r5, [sp, #0]
ee52: 435d muls r5, r3
ee54: 1952 adds r2, r2, r5
ee56: 0215 lsls r5, r2, #8
ee58: 18ad adds r5, r5, r2
ee5a: 01ed lsls r5, r5, #7
ee5c: 18ad adds r5, r5, r2
ee5e: 0ded lsrs r5, r5, #23
ee60: 4663 mov r3, ip
ee62: 401d ands r5, r3
ee64: 9500 str r5, [sp, #0]
ee66: e744 b.n ecf2 <_lv_img_buf_transform_anti_alias+0x1f6>
else if(xr1 == LV_OPA_COVER) c1 = c10;
ee68: 2fff cmp r7, #255 ; 0xff
ee6a: d039 beq.n eee0 <_lv_img_buf_transform_anti_alias+0x3e4>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
ee6c: 23ff movs r3, #255 ; 0xff
ee6e: 1bdb subs r3, r3, r7
ee70: 4698 mov r8, r3
ee72: a808 add r0, sp, #32
ee74: 7842 ldrb r2, [r0, #1]
ee76: 08d2 lsrs r2, r2, #3
ee78: 437a muls r2, r7
ee7a: a907 add r1, sp, #28
ee7c: 784b ldrb r3, [r1, #1]
ee7e: 08db lsrs r3, r3, #3
ee80: 4645 mov r5, r8
ee82: 436b muls r3, r5
ee84: 18d3 adds r3, r2, r3
ee86: 021a lsls r2, r3, #8
ee88: 18d2 adds r2, r2, r3
ee8a: 01d2 lsls r2, r2, #7
ee8c: 18d2 adds r2, r2, r3
ee8e: 0dd2 lsrs r2, r2, #23
ee90: 231f movs r3, #31
ee92: 469c mov ip, r3
ee94: 401a ands r2, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
ee96: 8803 ldrh r3, [r0, #0]
ee98: 055b lsls r3, r3, #21
ee9a: 0e9b lsrs r3, r3, #26
ee9c: 437b muls r3, r7
ee9e: 4699 mov r9, r3
eea0: 880b ldrh r3, [r1, #0]
eea2: 055b lsls r3, r3, #21
eea4: 0e9b lsrs r3, r3, #26
eea6: 436b muls r3, r5
eea8: 444b add r3, r9
eeaa: 021d lsls r5, r3, #8
eeac: 46a9 mov r9, r5
eeae: 4499 add r9, r3
eeb0: 464d mov r5, r9
eeb2: 01ed lsls r5, r5, #7
eeb4: 46a9 mov r9, r5
eeb6: 444b add r3, r9
eeb8: 00db lsls r3, r3, #3
eeba: 0e9b lsrs r3, r3, #26
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
eebc: 7800 ldrb r0, [r0, #0]
eebe: 06c0 lsls r0, r0, #27
eec0: 0ec0 lsrs r0, r0, #27
eec2: 4347 muls r7, r0
eec4: 7809 ldrb r1, [r1, #0]
eec6: 06c9 lsls r1, r1, #27
eec8: 0ec9 lsrs r1, r1, #27
eeca: 4640 mov r0, r8
eecc: 4341 muls r1, r0
eece: 1879 adds r1, r7, r1
eed0: 020f lsls r7, r1, #8
eed2: 187f adds r7, r7, r1
eed4: 01ff lsls r7, r7, #7
eed6: 187f adds r7, r7, r1
eed8: 0dff lsrs r7, r7, #23
eeda: 4661 mov r1, ip
eedc: 400f ands r7, r1
eede: e714 b.n ed0a <_lv_img_buf_transform_anti_alias+0x20e>
eee0: aa08 add r2, sp, #32
eee2: 7817 ldrb r7, [r2, #0]
eee4: 06ff lsls r7, r7, #27
eee6: 0eff lsrs r7, r7, #27
eee8: 8813 ldrh r3, [r2, #0]
eeea: 055b lsls r3, r3, #21
eeec: 0e9b lsrs r3, r3, #26
eeee: 7852 ldrb r2, [r2, #1]
eef0: 08d2 lsrs r2, r2, #3
eef2: e70a b.n ed0a <_lv_img_buf_transform_anti_alias+0x20e>
if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
eef4: 7d25 ldrb r5, [r4, #20]
eef6: 211f movs r1, #31
eef8: 438d bics r5, r1
eefa: 432f orrs r7, r5
eefc: 7527 strb r7, [r4, #20]
eefe: 0159 lsls r1, r3, #5
ef00: 8aa3 ldrh r3, [r4, #20]
ef02: 4811 ldr r0, [pc, #68] ; (ef48 <_lv_img_buf_transform_anti_alias+0x44c>)
ef04: 4003 ands r3, r0
ef06: 430b orrs r3, r1
ef08: 82a3 strh r3, [r4, #20]
ef0a: 00d2 lsls r2, r2, #3
ef0c: 055b lsls r3, r3, #21
ef0e: 0f5b lsrs r3, r3, #29
ef10: 431a orrs r2, r3
ef12: 7562 strb r2, [r4, #21]
return true;
ef14: 2301 movs r3, #1
ef16: e72e b.n ed76 <_lv_img_buf_transform_anti_alias+0x27a>
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
ef18: 7d23 ldrb r3, [r4, #20]
ef1a: 221f movs r2, #31
ef1c: 4393 bics r3, r2
ef1e: 9d00 ldr r5, [sp, #0]
ef20: 431d orrs r5, r3
ef22: 7525 strb r5, [r4, #20]
ef24: 9b01 ldr r3, [sp, #4]
ef26: 015a lsls r2, r3, #5
ef28: 8aa3 ldrh r3, [r4, #20]
ef2a: 4907 ldr r1, [pc, #28] ; (ef48 <_lv_img_buf_transform_anti_alias+0x44c>)
ef2c: 400b ands r3, r1
ef2e: 4313 orrs r3, r2
ef30: 82a3 strh r3, [r4, #20]
ef32: 9a02 ldr r2, [sp, #8]
ef34: 00d6 lsls r6, r2, #3
ef36: 055b lsls r3, r3, #21
ef38: 0f5b lsrs r3, r3, #29
ef3a: 4333 orrs r3, r6
ef3c: 7563 strb r3, [r4, #21]
return true;
ef3e: 2301 movs r3, #1
ef40: e719 b.n ed76 <_lv_img_buf_transform_anti_alias+0x27a>
ef42: 46c0 nop ; (mov r8, r8)
ef44: 0000e5d5 .word 0x0000e5d5
ef48: fffff81f .word 0xfffff81f
ef4c: 0000e6f5 .word 0x0000e6f5
0000ef50 <_lv_img_cache_open>:
* @param src source of the image. Path to file or pointer to an `lv_img_dsc_t` variable
* @param style style of the image
* @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)
{
ef50: b5f0 push {r4, r5, r6, r7, lr}
ef52: 46ce mov lr, r9
ef54: 4647 mov r7, r8
ef56: b580 push {r7, lr}
ef58: b085 sub sp, #20
ef5a: 4680 mov r8, r0
ef5c: 466b mov r3, sp
ef5e: 81d9 strh r1, [r3, #14]
if(entry_cnt == 0) {
ef60: 4b61 ldr r3, [pc, #388] ; (f0e8 <_lv_img_cache_open+0x198>)
ef62: 8819 ldrh r1, [r3, #0]
ef64: 2900 cmp r1, #0
ef66: d00c beq.n ef82 <_lv_img_cache_open+0x32>
LV_LOG_WARN("lv_img_cache_open: the cache size is 0");
return NULL;
}
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
ef68: 4b60 ldr r3, [pc, #384] ; (f0ec <_lv_img_cache_open+0x19c>)
ef6a: 681f ldr r7, [r3, #0]
ef6c: 003b movs r3, r7
ef6e: 3320 adds r3, #32
ef70: 3901 subs r1, #1
ef72: b28a uxth r2, r1
ef74: 00d1 lsls r1, r2, #3
ef76: 1889 adds r1, r1, r2
ef78: 0089 lsls r1, r1, #2
ef7a: 3144 adds r1, #68 ; 0x44
ef7c: 1879 adds r1, r7, r1
/*Decrement all lifes. Make the entries older*/
uint16_t i;
for(i = 0; i < entry_cnt; i++) {
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
ef7e: 485c ldr r0, [pc, #368] ; (f0f0 <_lv_img_cache_open+0x1a0>)
ef80: e00c b.n ef9c <_lv_img_cache_open+0x4c>
LV_LOG_WARN("lv_img_cache_open: the cache size is 0");
ef82: 4b5c ldr r3, [pc, #368] ; (f0f4 <_lv_img_cache_open+0x1a4>)
ef84: 9300 str r3, [sp, #0]
ef86: 4b5c ldr r3, [pc, #368] ; (f0f8 <_lv_img_cache_open+0x1a8>)
ef88: 2244 movs r2, #68 ; 0x44
ef8a: 495c ldr r1, [pc, #368] ; (f0fc <_lv_img_cache_open+0x1ac>)
ef8c: 2002 movs r0, #2
ef8e: 4c5c ldr r4, [pc, #368] ; (f100 <_lv_img_cache_open+0x1b0>)
ef90: 47a0 blx r4
return NULL;
ef92: 2400 movs r4, #0
ef94: e034 b.n f000 <_lv_img_cache_open+0xb0>
ef96: 3324 adds r3, #36 ; 0x24
for(i = 0; i < entry_cnt; i++) {
ef98: 428b cmp r3, r1
ef9a: d005 beq.n efa8 <_lv_img_cache_open+0x58>
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
ef9c: 681a ldr r2, [r3, #0]
ef9e: 4282 cmp r2, r0
efa0: dbf9 blt.n ef96 <_lv_img_cache_open+0x46>
cache[i].life -= LV_IMG_CACHE_AGING;
efa2: 3a01 subs r2, #1
efa4: 601a str r2, [r3, #0]
efa6: e7f6 b.n ef96 <_lv_img_cache_open+0x46>
efa8: 2500 movs r5, #0
/*Is the image cached?*/
lv_img_cache_entry_t * cached_src = NULL;
for(i = 0; i < entry_cnt; i++) {
bool match = false;
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
efaa: 4e56 ldr r6, [pc, #344] ; (f104 <_lv_img_cache_open+0x1b4>)
for(i = 0; i < entry_cnt; i++) {
efac: 4b4e ldr r3, [pc, #312] ; (f0e8 <_lv_img_cache_open+0x198>)
efae: 4699 mov r9, r3
efb0: e007 b.n efc2 <_lv_img_cache_open+0x72>
if(src_type == LV_IMG_SRC_VARIABLE) {
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
}
else if(src_type == LV_IMG_SRC_FILE) {
efb2: 2801 cmp r0, #1
efb4: d02a beq.n f00c <_lv_img_cache_open+0xbc>
for(i = 0; i < entry_cnt; i++) {
efb6: 3501 adds r5, #1
efb8: b2ad uxth r5, r5
efba: 464b mov r3, r9
efbc: 881b ldrh r3, [r3, #0]
efbe: 42ab cmp r3, r5
efc0: d92f bls.n f022 <_lv_img_cache_open+0xd2>
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
efc2: 00ec lsls r4, r5, #3
efc4: 1964 adds r4, r4, r5
efc6: 00a4 lsls r4, r4, #2
efc8: 193c adds r4, r7, r4
efca: 6860 ldr r0, [r4, #4]
efcc: 47b0 blx r6
if(src_type == LV_IMG_SRC_VARIABLE) {
efce: 2800 cmp r0, #0
efd0: d1ef bne.n efb2 <_lv_img_cache_open+0x62>
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
efd2: 6863 ldr r3, [r4, #4]
efd4: 4543 cmp r3, r8
efd6: d1ee bne.n efb6 <_lv_img_cache_open+0x66>
efd8: 8920 ldrh r0, [r4, #8]
efda: 466b mov r3, sp
efdc: 89db ldrh r3, [r3, #14]
efde: 1ac0 subs r0, r0, r3
efe0: 4242 negs r2, r0
efe2: 4142 adcs r2, r0
efe4: b2d0 uxtb r0, r2
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
}
if(match) {
efe6: 2800 cmp r0, #0
efe8: d0e5 beq.n efb6 <_lv_img_cache_open+0x66>
/* If opened increment its life.
* Image difficult to open should live longer to keep avoid frequent their recaching.
* Therefore increase `life` with `time_to_open`*/
cached_src = &cache[i];
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
efea: 6a23 ldr r3, [r4, #32]
efec: 6962 ldr r2, [r4, #20]
efee: 4694 mov ip, r2
eff0: 4463 add r3, ip
if(cached_src->life > LV_IMG_CACHE_LIFE_LIMIT) cached_src->life = LV_IMG_CACHE_LIFE_LIMIT;
eff2: 22fa movs r2, #250 ; 0xfa
eff4: 0092 lsls r2, r2, #2
eff6: 4293 cmp r3, r2
eff8: dd11 ble.n f01e <_lv_img_cache_open+0xce>
effa: 6222 str r2, [r4, #32]
break;
}
}
/*The image is not cached then cache it now*/
if(cached_src == NULL) {
effc: 2c00 cmp r4, #0
effe: d010 beq.n f022 <_lv_img_cache_open+0xd2>
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
}
return cached_src;
}
f000: 0020 movs r0, r4
f002: b005 add sp, #20
f004: bc0c pop {r2, r3}
f006: 4690 mov r8, r2
f008: 4699 mov r9, r3
f00a: bdf0 pop {r4, r5, r6, r7, pc}
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
f00c: 4641 mov r1, r8
f00e: 6860 ldr r0, [r4, #4]
f010: 4b3d ldr r3, [pc, #244] ; (f108 <_lv_img_cache_open+0x1b8>)
f012: 4798 blx r3
f014: 0003 movs r3, r0
f016: 4258 negs r0, r3
f018: 4158 adcs r0, r3
f01a: b2c0 uxtb r0, r0
f01c: e7e3 b.n efe6 <_lv_img_cache_open+0x96>
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
f01e: 6223 str r3, [r4, #32]
f020: e7ec b.n effc <_lv_img_cache_open+0xac>
for(i = 1; i < entry_cnt; i++) {
f022: 4b31 ldr r3, [pc, #196] ; (f0e8 <_lv_img_cache_open+0x198>)
f024: 881a ldrh r2, [r3, #0]
f026: 2a01 cmp r2, #1
f028: d913 bls.n f052 <_lv_img_cache_open+0x102>
f02a: 003b movs r3, r7
f02c: 3324 adds r3, #36 ; 0x24
f02e: 3a02 subs r2, #2
f030: b291 uxth r1, r2
f032: 00ca lsls r2, r1, #3
f034: 1852 adds r2, r2, r1
f036: 0092 lsls r2, r2, #2
f038: 3248 adds r2, #72 ; 0x48
f03a: 18ba adds r2, r7, r2
f03c: 003c movs r4, r7
f03e: e002 b.n f046 <_lv_img_cache_open+0xf6>
f040: 3324 adds r3, #36 ; 0x24
f042: 4293 cmp r3, r2
f044: d006 beq.n f054 <_lv_img_cache_open+0x104>
if(cache[i].life < cached_src->life) {
f046: 6a19 ldr r1, [r3, #32]
f048: 6a20 ldr r0, [r4, #32]
f04a: 4281 cmp r1, r0
f04c: daf8 bge.n f040 <_lv_img_cache_open+0xf0>
cached_src = &cache[i];
f04e: 001c movs r4, r3
f050: e7f6 b.n f040 <_lv_img_cache_open+0xf0>
for(i = 1; i < entry_cnt; i++) {
f052: 003c movs r4, r7
if(cached_src->dec_dsc.src) {
f054: 6863 ldr r3, [r4, #4]
f056: 2b00 cmp r3, #0
f058: d025 beq.n f0a6 <_lv_img_cache_open+0x156>
lv_img_decoder_close(&cached_src->dec_dsc);
f05a: 0020 movs r0, r4
f05c: 4b2b ldr r3, [pc, #172] ; (f10c <_lv_img_cache_open+0x1bc>)
f05e: 4798 blx r3
LV_LOG_INFO("image draw: cache miss, close and reuse an entry");
f060: 4b2b ldr r3, [pc, #172] ; (f110 <_lv_img_cache_open+0x1c0>)
f062: 9300 str r3, [sp, #0]
f064: 4b24 ldr r3, [pc, #144] ; (f0f8 <_lv_img_cache_open+0x1a8>)
f066: 2277 movs r2, #119 ; 0x77
f068: 4924 ldr r1, [pc, #144] ; (f0fc <_lv_img_cache_open+0x1ac>)
f06a: 2001 movs r0, #1
f06c: 4d24 ldr r5, [pc, #144] ; (f100 <_lv_img_cache_open+0x1b0>)
f06e: 47a8 blx r5
t_start = lv_tick_get();
f070: 4b28 ldr r3, [pc, #160] ; (f114 <_lv_img_cache_open+0x1c4>)
f072: 4798 blx r3
f074: 0005 movs r5, r0
cached_src->dec_dsc.time_to_open = 0;
f076: 2300 movs r3, #0
f078: 6163 str r3, [r4, #20]
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
f07a: 466b mov r3, sp
f07c: 89da ldrh r2, [r3, #14]
f07e: 4641 mov r1, r8
f080: 0020 movs r0, r4
f082: 4b25 ldr r3, [pc, #148] ; (f118 <_lv_img_cache_open+0x1c8>)
f084: 4798 blx r3
if(open_res == LV_RES_INV) {
f086: 2800 cmp r0, #0
f088: d016 beq.n f0b8 <_lv_img_cache_open+0x168>
cached_src->life = 0;
f08a: 2300 movs r3, #0
f08c: 6223 str r3, [r4, #32]
if(cached_src->dec_dsc.time_to_open == 0) {
f08e: 6963 ldr r3, [r4, #20]
f090: 2b00 cmp r3, #0
f092: d1b5 bne.n f000 <_lv_img_cache_open+0xb0>
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
f094: 0028 movs r0, r5
f096: 4b21 ldr r3, [pc, #132] ; (f11c <_lv_img_cache_open+0x1cc>)
f098: 4798 blx r3
f09a: 6160 str r0, [r4, #20]
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
f09c: 2800 cmp r0, #0
f09e: d1af bne.n f000 <_lv_img_cache_open+0xb0>
f0a0: 2301 movs r3, #1
f0a2: 6163 str r3, [r4, #20]
f0a4: e7ac b.n f000 <_lv_img_cache_open+0xb0>
LV_LOG_INFO("image draw: cache miss, cached to an empty entry");
f0a6: 4b1e ldr r3, [pc, #120] ; (f120 <_lv_img_cache_open+0x1d0>)
f0a8: 9300 str r3, [sp, #0]
f0aa: 4b13 ldr r3, [pc, #76] ; (f0f8 <_lv_img_cache_open+0x1a8>)
f0ac: 227a movs r2, #122 ; 0x7a
f0ae: 4913 ldr r1, [pc, #76] ; (f0fc <_lv_img_cache_open+0x1ac>)
f0b0: 2001 movs r0, #1
f0b2: 4d13 ldr r5, [pc, #76] ; (f100 <_lv_img_cache_open+0x1b0>)
f0b4: 47a8 blx r5
f0b6: e7db b.n f070 <_lv_img_cache_open+0x120>
LV_LOG_WARN("Image draw cannot open the image resource");
f0b8: 4b1a ldr r3, [pc, #104] ; (f124 <_lv_img_cache_open+0x1d4>)
f0ba: 9300 str r3, [sp, #0]
f0bc: 4b0e ldr r3, [pc, #56] ; (f0f8 <_lv_img_cache_open+0x1a8>)
f0be: 2283 movs r2, #131 ; 0x83
f0c0: 490e ldr r1, [pc, #56] ; (f0fc <_lv_img_cache_open+0x1ac>)
f0c2: 3002 adds r0, #2
f0c4: 4d0e ldr r5, [pc, #56] ; (f100 <_lv_img_cache_open+0x1b0>)
f0c6: 47a8 blx r5
lv_img_decoder_close(&cached_src->dec_dsc);
f0c8: 0020 movs r0, r4
f0ca: 4b10 ldr r3, [pc, #64] ; (f10c <_lv_img_cache_open+0x1bc>)
f0cc: 4798 blx r3
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
f0ce: 2120 movs r1, #32
f0d0: 0020 movs r0, r4
f0d2: 4d15 ldr r5, [pc, #84] ; (f128 <_lv_img_cache_open+0x1d8>)
f0d4: 47a8 blx r5
_lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t));
f0d6: 2124 movs r1, #36 ; 0x24
f0d8: 0020 movs r0, r4
f0da: 47a8 blx r5
cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */
f0dc: 2380 movs r3, #128 ; 0x80
f0de: 061b lsls r3, r3, #24
f0e0: 6223 str r3, [r4, #32]
return NULL;
f0e2: 2400 movs r4, #0
f0e4: e78c b.n f000 <_lv_img_cache_open+0xb0>
f0e6: 46c0 nop ; (mov r8, r8)
f0e8: 20002bc6 .word 0x20002bc6
f0ec: 20004de0 .word 0x20004de0
f0f0: 80000002 .word 0x80000002
f0f4: 00026554 .word 0x00026554
f0f8: 000264f0 .word 0x000264f0
f0fc: 0002651c .word 0x0002651c
f100: 00012159 .word 0x00012159
f104: 00009589 .word 0x00009589
f108: 0001c6e5 .word 0x0001c6e5
f10c: 0000fd5d .word 0x0000fd5d
f110: 0002657c .word 0x0002657c
f114: 00010ef9 .word 0x00010ef9
f118: 0000fc75 .word 0x0000fc75
f11c: 00010f15 .word 0x00010f15
f120: 000265b0 .word 0x000265b0
f124: 000265e4 .word 0x000265e4
f128: 00012975 .word 0x00012975
0000f12c <lv_img_cache_invalidate_src>:
* Invalidate an image source in the cache.
* Useful if the image source is updated therefore it needs to be cached again.
* @param src an image source path to a file or pointer to an `lv_img_dsc_t` variable.
*/
void lv_img_cache_invalidate_src(const void * src)
{
f12c: b5f8 push {r3, r4, r5, r6, r7, lr}
f12e: 46d6 mov lr, sl
f130: 4647 mov r7, r8
f132: b580 push {r7, lr}
f134: 0007 movs r7, r0
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
f136: 4b15 ldr r3, [pc, #84] ; (f18c <lv_img_cache_invalidate_src+0x60>)
f138: 681b ldr r3, [r3, #0]
f13a: 4698 mov r8, r3
uint16_t i;
for(i = 0; i < entry_cnt; i++) {
f13c: 4b14 ldr r3, [pc, #80] ; (f190 <lv_img_cache_invalidate_src+0x64>)
f13e: 881b ldrh r3, [r3, #0]
f140: 2b00 cmp r3, #0
f142: d01e beq.n f182 <lv_img_cache_invalidate_src+0x56>
f144: 2500 movs r5, #0
if(cache[i].dec_dsc.src == src || src == NULL) {
if(cache[i].dec_dsc.src != NULL) {
lv_img_decoder_close(&cache[i].dec_dsc);
}
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
f146: 4b13 ldr r3, [pc, #76] ; (f194 <lv_img_cache_invalidate_src+0x68>)
f148: 469a mov sl, r3
for(i = 0; i < entry_cnt; i++) {
f14a: 4e11 ldr r6, [pc, #68] ; (f190 <lv_img_cache_invalidate_src+0x64>)
f14c: e00f b.n f16e <lv_img_cache_invalidate_src+0x42>
if(cache[i].dec_dsc.src != NULL) {
f14e: 2b00 cmp r3, #0
f150: d002 beq.n f158 <lv_img_cache_invalidate_src+0x2c>
lv_img_decoder_close(&cache[i].dec_dsc);
f152: 0020 movs r0, r4
f154: 4b10 ldr r3, [pc, #64] ; (f198 <lv_img_cache_invalidate_src+0x6c>)
f156: 4798 blx r3
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
f158: 2120 movs r1, #32
f15a: 0020 movs r0, r4
f15c: 47d0 blx sl
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
f15e: 2124 movs r1, #36 ; 0x24
f160: 0020 movs r0, r4
f162: 47d0 blx sl
for(i = 0; i < entry_cnt; i++) {
f164: 3501 adds r5, #1
f166: b2ad uxth r5, r5
f168: 8833 ldrh r3, [r6, #0]
f16a: 42ab cmp r3, r5
f16c: d909 bls.n f182 <lv_img_cache_invalidate_src+0x56>
if(cache[i].dec_dsc.src == src || src == NULL) {
f16e: 00ec lsls r4, r5, #3
f170: 1964 adds r4, r4, r5
f172: 00a4 lsls r4, r4, #2
f174: 4444 add r4, r8
f176: 6863 ldr r3, [r4, #4]
f178: 42bb cmp r3, r7
f17a: d0e8 beq.n f14e <lv_img_cache_invalidate_src+0x22>
f17c: 2f00 cmp r7, #0
f17e: d1f1 bne.n f164 <lv_img_cache_invalidate_src+0x38>
f180: e7e5 b.n f14e <lv_img_cache_invalidate_src+0x22>
}
}
}
f182: bc0c pop {r2, r3}
f184: 4690 mov r8, r2
f186: 469a mov sl, r3
f188: bdf8 pop {r3, r4, r5, r6, r7, pc}
f18a: 46c0 nop ; (mov r8, r8)
f18c: 20004de0 .word 0x20004de0
f190: 20002bc6 .word 0x20002bc6
f194: 00012975 .word 0x00012975
f198: 0000fd5d .word 0x0000fd5d
0000f19c <lv_img_cache_set_size>:
{
f19c: b5f0 push {r4, r5, r6, r7, lr}
f19e: 46c6 mov lr, r8
f1a0: b500 push {lr}
f1a2: b082 sub sp, #8
f1a4: 0004 movs r4, r0
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
f1a6: 4b24 ldr r3, [pc, #144] ; (f238 <lv_img_cache_set_size+0x9c>)
f1a8: 681b ldr r3, [r3, #0]
f1aa: 2b00 cmp r3, #0
f1ac: d006 beq.n f1bc <lv_img_cache_set_size+0x20>
lv_img_cache_invalidate_src(NULL);
f1ae: 2000 movs r0, #0
f1b0: 4b22 ldr r3, [pc, #136] ; (f23c <lv_img_cache_set_size+0xa0>)
f1b2: 4798 blx r3
lv_mem_free(LV_GC_ROOT(_lv_img_cache_array));
f1b4: 4b20 ldr r3, [pc, #128] ; (f238 <lv_img_cache_set_size+0x9c>)
f1b6: 6818 ldr r0, [r3, #0]
f1b8: 4b21 ldr r3, [pc, #132] ; (f240 <lv_img_cache_set_size+0xa4>)
f1ba: 4798 blx r3
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
f1bc: 00e0 lsls r0, r4, #3
f1be: 1900 adds r0, r0, r4
f1c0: 0080 lsls r0, r0, #2
f1c2: 4b20 ldr r3, [pc, #128] ; (f244 <lv_img_cache_set_size+0xa8>)
f1c4: 4798 blx r3
f1c6: 4b1c ldr r3, [pc, #112] ; (f238 <lv_img_cache_set_size+0x9c>)
f1c8: 6018 str r0, [r3, #0]
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
f1ca: 4b1f ldr r3, [pc, #124] ; (f248 <lv_img_cache_set_size+0xac>)
f1cc: 4798 blx r3
f1ce: 2800 cmp r0, #0
f1d0: d020 beq.n f214 <lv_img_cache_set_size+0x78>
if(LV_GC_ROOT(_lv_img_cache_array) == NULL) {
f1d2: 4b19 ldr r3, [pc, #100] ; (f238 <lv_img_cache_set_size+0x9c>)
f1d4: 681b ldr r3, [r3, #0]
f1d6: 2b00 cmp r3, #0
f1d8: d02a beq.n f230 <lv_img_cache_set_size+0x94>
entry_cnt = new_entry_cnt;
f1da: 4b1c ldr r3, [pc, #112] ; (f24c <lv_img_cache_set_size+0xb0>)
f1dc: 801c strh r4, [r3, #0]
for(i = 0; i < entry_cnt; i++) {
f1de: 2c00 cmp r4, #0
f1e0: d014 beq.n f20c <lv_img_cache_set_size+0x70>
f1e2: 2400 movs r4, #0
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
f1e4: 4f14 ldr r7, [pc, #80] ; (f238 <lv_img_cache_set_size+0x9c>)
f1e6: 4e1a ldr r6, [pc, #104] ; (f250 <lv_img_cache_set_size+0xb4>)
for(i = 0; i < entry_cnt; i++) {
f1e8: 4698 mov r8, r3
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
f1ea: 00e5 lsls r5, r4, #3
f1ec: 192d adds r5, r5, r4
f1ee: 00ad lsls r5, r5, #2
f1f0: 683b ldr r3, [r7, #0]
f1f2: 1958 adds r0, r3, r5
f1f4: 2120 movs r1, #32
f1f6: 47b0 blx r6
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t));
f1f8: 683b ldr r3, [r7, #0]
f1fa: 1958 adds r0, r3, r5
f1fc: 2124 movs r1, #36 ; 0x24
f1fe: 47b0 blx r6
for(i = 0; i < entry_cnt; i++) {
f200: 3401 adds r4, #1
f202: b2a4 uxth r4, r4
f204: 4643 mov r3, r8
f206: 881b ldrh r3, [r3, #0]
f208: 42a3 cmp r3, r4
f20a: d8ee bhi.n f1ea <lv_img_cache_set_size+0x4e>
}
f20c: b002 add sp, #8
f20e: bc04 pop {r2}
f210: 4690 mov r8, r2
f212: bdf0 pop {r4, r5, r6, r7, pc}
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
f214: 4b0f ldr r3, [pc, #60] ; (f254 <lv_img_cache_set_size+0xb8>)
f216: 9300 str r3, [sp, #0]
f218: 22a8 movs r2, #168 ; 0xa8
f21a: 490f ldr r1, [pc, #60] ; (f258 <lv_img_cache_set_size+0xbc>)
f21c: 3003 adds r0, #3
f21e: 4c0f ldr r4, [pc, #60] ; (f25c <lv_img_cache_set_size+0xc0>)
f220: 47a0 blx r4
f222: 4b05 ldr r3, [pc, #20] ; (f238 <lv_img_cache_set_size+0x9c>)
f224: 681a ldr r2, [r3, #0]
f226: 2300 movs r3, #0
f228: 480d ldr r0, [pc, #52] ; (f260 <lv_img_cache_set_size+0xc4>)
f22a: 490e ldr r1, [pc, #56] ; (f264 <lv_img_cache_set_size+0xc8>)
f22c: 4788 blx r1
f22e: e7fe b.n f22e <lv_img_cache_set_size+0x92>
entry_cnt = 0;
f230: 2200 movs r2, #0
f232: 4b06 ldr r3, [pc, #24] ; (f24c <lv_img_cache_set_size+0xb0>)
f234: 801a strh r2, [r3, #0]
return;
f236: e7e9 b.n f20c <lv_img_cache_set_size+0x70>
f238: 20004de0 .word 0x20004de0
f23c: 0000f12d .word 0x0000f12d
f240: 000123c9 .word 0x000123c9
f244: 000122dd .word 0x000122dd
f248: 000017ad .word 0x000017ad
f24c: 20002bc6 .word 0x20002bc6
f250: 00012975 .word 0x00012975
f254: 00026504 .word 0x00026504
f258: 0002651c .word 0x0002651c
f25c: 00012159 .word 0x00012159
f260: 00025854 .word 0x00025854
f264: 000017b5 .word 0x000017b5
0000f268 <lv_img_decoder_built_in_info>:
* @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)
{
f268: b530 push {r4, r5, lr}
f26a: b087 sub sp, #28
f26c: 000c movs r4, r1
f26e: 0015 movs r5, r2
(void)decoder; /*Unused*/
lv_img_src_t src_type = lv_img_src_get_type(src);
f270: 0008 movs r0, r1
f272: 4b38 ldr r3, [pc, #224] ; (f354 <lv_img_decoder_built_in_info+0xec>)
f274: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
f276: 2800 cmp r0, #0
f278: d121 bne.n f2be <lv_img_decoder_built_in_info+0x56>
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
f27a: 7823 ldrb r3, [r4, #0]
f27c: 06db lsls r3, r3, #27
f27e: 0edb lsrs r3, r3, #27
if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV;
f280: 3b04 subs r3, #4
f282: b2db uxtb r3, r3
f284: 2b0a cmp r3, #10
f286: d828 bhi.n f2da <lv_img_decoder_built_in_info+0x72>
header->w = ((lv_img_dsc_t *)src)->header.w;
f288: 6823 ldr r3, [r4, #0]
f28a: 02db lsls r3, r3, #11
f28c: 0d5b lsrs r3, r3, #21
f28e: 029b lsls r3, r3, #10
f290: 4a31 ldr r2, [pc, #196] ; (f358 <lv_img_decoder_built_in_info+0xf0>)
f292: 6829 ldr r1, [r5, #0]
f294: 400a ands r2, r1
f296: 4313 orrs r3, r2
f298: 602b str r3, [r5, #0]
header->h = ((lv_img_dsc_t *)src)->header.h;
f29a: 8863 ldrh r3, [r4, #2]
f29c: 095b lsrs r3, r3, #5
f29e: 015a lsls r2, r3, #5
f2a0: 8869 ldrh r1, [r5, #2]
f2a2: 231f movs r3, #31
f2a4: 400b ands r3, r1
f2a6: 4313 orrs r3, r2
f2a8: 806b strh r3, [r5, #2]
header->cf = ((lv_img_dsc_t *)src)->header.cf;
f2aa: 7823 ldrb r3, [r4, #0]
f2ac: 06db lsls r3, r3, #27
f2ae: 0eda lsrs r2, r3, #27
f2b0: 782b ldrb r3, [r5, #0]
f2b2: 211f movs r1, #31
f2b4: 438b bics r3, r1
f2b6: 4313 orrs r3, r2
f2b8: 702b strb r3, [r5, #0]
}
else {
LV_LOG_WARN("Image get info found unknown src type");
return LV_RES_INV;
}
return LV_RES_OK;
f2ba: 3001 adds r0, #1
f2bc: e00d b.n f2da <lv_img_decoder_built_in_info+0x72>
else if(src_type == LV_IMG_SRC_FILE) {
f2be: 2801 cmp r0, #1
f2c0: d00d beq.n f2de <lv_img_decoder_built_in_info+0x76>
else if(src_type == LV_IMG_SRC_SYMBOL) {
f2c2: 2802 cmp r0, #2
f2c4: d036 beq.n f334 <lv_img_decoder_built_in_info+0xcc>
LV_LOG_WARN("Image get info found unknown src type");
f2c6: 4b25 ldr r3, [pc, #148] ; (f35c <lv_img_decoder_built_in_info+0xf4>)
f2c8: 9300 str r3, [sp, #0]
f2ca: 4b25 ldr r3, [pc, #148] ; (f360 <lv_img_decoder_built_in_info+0xf8>)
f2cc: 229a movs r2, #154 ; 0x9a
f2ce: 0052 lsls r2, r2, #1
f2d0: 4924 ldr r1, [pc, #144] ; (f364 <lv_img_decoder_built_in_info+0xfc>)
f2d2: 2002 movs r0, #2
f2d4: 4c24 ldr r4, [pc, #144] ; (f368 <lv_img_decoder_built_in_info+0x100>)
f2d6: 47a0 blx r4
return LV_RES_INV;
f2d8: 2000 movs r0, #0
}
f2da: b007 add sp, #28
f2dc: bd30 pop {r4, r5, pc}
res = lv_fs_open(&file, src, LV_FS_MODE_RD);
f2de: 2202 movs r2, #2
f2e0: 0021 movs r1, r4
f2e2: a804 add r0, sp, #16
f2e4: 4b21 ldr r3, [pc, #132] ; (f36c <lv_img_decoder_built_in_info+0x104>)
f2e6: 4798 blx r3
if(res == LV_FS_RES_OK) {
f2e8: 2800 cmp r0, #0
f2ea: d00a beq.n f302 <lv_img_decoder_built_in_info+0x9a>
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
f2ec: 782b ldrb r3, [r5, #0]
f2ee: 06db lsls r3, r3, #27
f2f0: 0edb lsrs r3, r3, #27
f2f2: 331c adds r3, #28
f2f4: 221f movs r2, #31
f2f6: 4013 ands r3, r2
return LV_RES_OK;
f2f8: 2001 movs r0, #1
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
f2fa: 2b0a cmp r3, #10
f2fc: d9ed bls.n f2da <lv_img_decoder_built_in_info+0x72>
return LV_RES_INV;
f2fe: 2000 movs r0, #0
f300: e7eb b.n f2da <lv_img_decoder_built_in_info+0x72>
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
f302: ab03 add r3, sp, #12
f304: 2204 movs r2, #4
f306: 0029 movs r1, r5
f308: a804 add r0, sp, #16
f30a: 4c19 ldr r4, [pc, #100] ; (f370 <lv_img_decoder_built_in_info+0x108>)
f30c: 47a0 blx r4
f30e: 0004 movs r4, r0
lv_fs_close(&file);
f310: a804 add r0, sp, #16
f312: 4b18 ldr r3, [pc, #96] ; (f374 <lv_img_decoder_built_in_info+0x10c>)
f314: 4798 blx r3
if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) {
f316: 2c00 cmp r4, #0
f318: d102 bne.n f320 <lv_img_decoder_built_in_info+0xb8>
f31a: 9b03 ldr r3, [sp, #12]
f31c: 2b04 cmp r3, #4
f31e: d0e5 beq.n f2ec <lv_img_decoder_built_in_info+0x84>
LV_LOG_WARN("Image get info get read file header");
f320: 4b15 ldr r3, [pc, #84] ; (f378 <lv_img_decoder_built_in_info+0x110>)
f322: 9300 str r3, [sp, #0]
f324: 4b0e ldr r3, [pc, #56] ; (f360 <lv_img_decoder_built_in_info+0xf8>)
f326: 2222 movs r2, #34 ; 0x22
f328: 32ff adds r2, #255 ; 0xff
f32a: 490e ldr r1, [pc, #56] ; (f364 <lv_img_decoder_built_in_info+0xfc>)
f32c: 2002 movs r0, #2
f32e: 4c0e ldr r4, [pc, #56] ; (f368 <lv_img_decoder_built_in_info+0x100>)
f330: 47a0 blx r4
return LV_RES_INV;
f332: e7e4 b.n f2fe <lv_img_decoder_built_in_info+0x96>
header->w = 1;
f334: 4a08 ldr r2, [pc, #32] ; (f358 <lv_img_decoder_built_in_info+0xf0>)
f336: 682b ldr r3, [r5, #0]
f338: 401a ands r2, r3
f33a: 2380 movs r3, #128 ; 0x80
f33c: 00db lsls r3, r3, #3
f33e: 4313 orrs r3, r2
f340: 602b str r3, [r5, #0]
header->h = 1;
f342: 2220 movs r2, #32
f344: 806a strh r2, [r5, #2]
header->cf = LV_IMG_CF_ALPHA_1BIT;
f346: 32c0 adds r2, #192 ; 0xc0
f348: 4013 ands r3, r2
f34a: 220b movs r2, #11
f34c: 4313 orrs r3, r2
f34e: 702b strb r3, [r5, #0]
return LV_RES_OK;
f350: 3801 subs r0, #1
f352: e7c2 b.n f2da <lv_img_decoder_built_in_info+0x72>
f354: 00009589 .word 0x00009589
f358: ffe003ff .word 0xffe003ff
f35c: 0002675c .word 0x0002675c
f360: 00026650 .word 0x00026650
f364: 00026700 .word 0x00026700
f368: 00012159 .word 0x00012159
f36c: 00011c25 .word 0x00011c25
f370: 00011b89 .word 0x00011b89
f374: 00011b59 .word 0x00011b59
f378: 00026738 .word 0x00026738
0000f37c <lv_img_decoder_built_in_close>:
* 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)
{
f37c: b570 push {r4, r5, r6, lr}
f37e: 000d movs r5, r1
(void)decoder; /*Unused*/
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
f380: 69cc ldr r4, [r1, #28]
if(user_data) {
f382: 2c00 cmp r4, #0
f384: d016 beq.n f3b4 <lv_img_decoder_built_in_close+0x38>
#if LV_USE_FILESYSTEM
if(user_data->f) {
f386: 6820 ldr r0, [r4, #0]
f388: 2800 cmp r0, #0
f38a: d004 beq.n f396 <lv_img_decoder_built_in_close+0x1a>
lv_fs_close(user_data->f);
f38c: 4b0a ldr r3, [pc, #40] ; (f3b8 <lv_img_decoder_built_in_close+0x3c>)
f38e: 4798 blx r3
lv_mem_free(user_data->f);
f390: 6820 ldr r0, [r4, #0]
f392: 4b0a ldr r3, [pc, #40] ; (f3bc <lv_img_decoder_built_in_close+0x40>)
f394: 4798 blx r3
}
#endif
if(user_data->palette) lv_mem_free(user_data->palette);
f396: 6860 ldr r0, [r4, #4]
f398: 2800 cmp r0, #0
f39a: d001 beq.n f3a0 <lv_img_decoder_built_in_close+0x24>
f39c: 4b07 ldr r3, [pc, #28] ; (f3bc <lv_img_decoder_built_in_close+0x40>)
f39e: 4798 blx r3
if(user_data->opa) lv_mem_free(user_data->opa);
f3a0: 68a0 ldr r0, [r4, #8]
f3a2: 2800 cmp r0, #0
f3a4: d001 beq.n f3aa <lv_img_decoder_built_in_close+0x2e>
f3a6: 4b05 ldr r3, [pc, #20] ; (f3bc <lv_img_decoder_built_in_close+0x40>)
f3a8: 4798 blx r3
lv_mem_free(user_data);
f3aa: 0020 movs r0, r4
f3ac: 4b03 ldr r3, [pc, #12] ; (f3bc <lv_img_decoder_built_in_close+0x40>)
f3ae: 4798 blx r3
dsc->user_data = NULL;
f3b0: 2300 movs r3, #0
f3b2: 61eb str r3, [r5, #28]
}
}
f3b4: bd70 pop {r4, r5, r6, pc}
f3b6: 46c0 nop ; (mov r8, r8)
f3b8: 00011b59 .word 0x00011b59
f3bc: 000123c9 .word 0x000123c9
0000f3c0 <lv_img_decoder_built_in_open>:
{
f3c0: b5f0 push {r4, r5, r6, r7, lr}
f3c2: 46de mov lr, fp
f3c4: 4657 mov r7, sl
f3c6: 464e mov r6, r9
f3c8: 4645 mov r5, r8
f3ca: b5e0 push {r5, r6, r7, lr}
f3cc: b087 sub sp, #28
f3ce: 0006 movs r6, r0
f3d0: 000c movs r4, r1
if(dsc->src_type == LV_IMG_SRC_FILE) {
f3d2: 7a8b ldrb r3, [r1, #10]
f3d4: 2b01 cmp r3, #1
f3d6: d019 beq.n f40c <lv_img_decoder_built_in_open+0x4c>
else if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
f3d8: 2b00 cmp r3, #0
f3da: d000 beq.n f3de <lv_img_decoder_built_in_open+0x1e>
f3dc: e1ae b.n f73c <lv_img_decoder_built_in_open+0x37c>
if(((lv_img_dsc_t *)dsc->src)->data == NULL) {
f3de: 684b ldr r3, [r1, #4]
f3e0: 689b ldr r3, [r3, #8]
f3e2: 2b00 cmp r3, #0
f3e4: d100 bne.n f3e8 <lv_img_decoder_built_in_open+0x28>
f3e6: e1a7 b.n f738 <lv_img_decoder_built_in_open+0x378>
lv_img_cf_t cf = dsc->header.cf;
f3e8: 7b08 ldrb r0, [r1, #12]
f3ea: 06c0 lsls r0, r0, #27
f3ec: 0ec0 lsrs r0, r0, #27
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
f3ee: 1f03 subs r3, r0, #4
f3f0: 2b02 cmp r3, #2
f3f2: d900 bls.n f3f6 <lv_img_decoder_built_in_open+0x36>
f3f4: e088 b.n f508 <lv_img_decoder_built_in_open+0x148>
dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data;
f3f6: 6863 ldr r3, [r4, #4]
f3f8: 689b ldr r3, [r3, #8]
f3fa: 6123 str r3, [r4, #16]
return LV_RES_OK;
f3fc: 2001 movs r0, #1
}
f3fe: b007 add sp, #28
f400: bc3c pop {r2, r3, r4, r5}
f402: 4690 mov r8, r2
f404: 4699 mov r9, r3
f406: 46a2 mov sl, r4
f408: 46ab mov fp, r5
f40a: bdf0 pop {r4, r5, r6, r7, pc}
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
f40c: 6848 ldr r0, [r1, #4]
f40e: 4bd1 ldr r3, [pc, #836] ; (f754 <lv_img_decoder_built_in_open+0x394>)
f410: 4798 blx r3
f412: 49d1 ldr r1, [pc, #836] ; (f758 <lv_img_decoder_built_in_open+0x398>)
f414: 4bd1 ldr r3, [pc, #836] ; (f75c <lv_img_decoder_built_in_open+0x39c>)
f416: 4798 blx r3
f418: 2800 cmp r0, #0
f41a: d12e bne.n f47a <lv_img_decoder_built_in_open+0xba>
lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD);
f41c: 2202 movs r2, #2
f41e: 6861 ldr r1, [r4, #4]
f420: a804 add r0, sp, #16
f422: 4bcf ldr r3, [pc, #828] ; (f760 <lv_img_decoder_built_in_open+0x3a0>)
f424: 4798 blx r3
if(res != LV_FS_RES_OK) {
f426: 2800 cmp r0, #0
f428: d11e bne.n f468 <lv_img_decoder_built_in_open+0xa8>
if(dsc->user_data == NULL) {
f42a: 69e3 ldr r3, [r4, #28]
f42c: 2b00 cmp r3, #0
f42e: d026 beq.n f47e <lv_img_decoder_built_in_open+0xbe>
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
f430: 69e5 ldr r5, [r4, #28]
user_data->f = lv_mem_alloc(sizeof(f));
f432: 2008 movs r0, #8
f434: 4bcb ldr r3, [pc, #812] ; (f764 <lv_img_decoder_built_in_open+0x3a4>)
f436: 4798 blx r3
f438: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(user_data->f);
f43a: 4bcb ldr r3, [pc, #812] ; (f768 <lv_img_decoder_built_in_open+0x3a8>)
f43c: 4798 blx r3
f43e: 2800 cmp r0, #0
f440: d044 beq.n f4cc <lv_img_decoder_built_in_open+0x10c>
if(user_data->f == NULL) {
f442: 682a ldr r2, [r5, #0]
f444: 2300 movs r3, #0
f446: a904 add r1, sp, #16
f448: 2a00 cmp r2, #0
f44a: d14d bne.n f4e8 <lv_img_decoder_built_in_open+0x128>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
f44c: 4bc7 ldr r3, [pc, #796] ; (f76c <lv_img_decoder_built_in_open+0x3ac>)
f44e: 9300 str r3, [sp, #0]
f450: 4bc7 ldr r3, [pc, #796] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f452: 2260 movs r2, #96 ; 0x60
f454: 32ff adds r2, #255 ; 0xff
f456: 49c7 ldr r1, [pc, #796] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f458: 2003 movs r0, #3
f45a: 4dc7 ldr r5, [pc, #796] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f45c: 47a8 blx r5
lv_img_decoder_built_in_close(decoder, dsc);
f45e: 0021 movs r1, r4
f460: 0030 movs r0, r6
f462: 4bc6 ldr r3, [pc, #792] ; (f77c <lv_img_decoder_built_in_open+0x3bc>)
f464: 4798 blx r3
return LV_RES_INV;
f466: e008 b.n f47a <lv_img_decoder_built_in_open+0xba>
LV_LOG_WARN("Built-in image decoder can't open the file");
f468: 4bc5 ldr r3, [pc, #788] ; (f780 <lv_img_decoder_built_in_open+0x3c0>)
f46a: 9300 str r3, [sp, #0]
f46c: 4bc0 ldr r3, [pc, #768] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f46e: 22a6 movs r2, #166 ; 0xa6
f470: 0052 lsls r2, r2, #1
f472: 49c0 ldr r1, [pc, #768] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f474: 2002 movs r0, #2
f476: 4cc0 ldr r4, [pc, #768] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f478: 47a0 blx r4
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
f47a: 2000 movs r0, #0
f47c: e7bf b.n f3fe <lv_img_decoder_built_in_open+0x3e>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
f47e: 200c movs r0, #12
f480: 4bb8 ldr r3, [pc, #736] ; (f764 <lv_img_decoder_built_in_open+0x3a4>)
f482: 4798 blx r3
f484: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
f486: 4bb8 ldr r3, [pc, #736] ; (f768 <lv_img_decoder_built_in_open+0x3a8>)
f488: 4798 blx r3
f48a: 2800 cmp r0, #0
f48c: d10d bne.n f4aa <lv_img_decoder_built_in_open+0xea>
f48e: 4bb8 ldr r3, [pc, #736] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f490: 9300 str r3, [sp, #0]
f492: 2254 movs r2, #84 ; 0x54
f494: 32ff adds r2, #255 ; 0xff
f496: 49b7 ldr r1, [pc, #732] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f498: 3003 adds r0, #3
f49a: 4db7 ldr r5, [pc, #732] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f49c: 47a8 blx r5
f49e: 69e2 ldr r2, [r4, #28]
f4a0: 2300 movs r3, #0
f4a2: 48b8 ldr r0, [pc, #736] ; (f784 <lv_img_decoder_built_in_open+0x3c4>)
f4a4: 49b8 ldr r1, [pc, #736] ; (f788 <lv_img_decoder_built_in_open+0x3c8>)
f4a6: 4788 blx r1
f4a8: e7fe b.n f4a8 <lv_img_decoder_built_in_open+0xe8>
if(dsc->user_data == NULL) {
f4aa: 69e0 ldr r0, [r4, #28]
f4ac: 2800 cmp r0, #0
f4ae: d109 bne.n f4c4 <lv_img_decoder_built_in_open+0x104>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
f4b0: 4bae ldr r3, [pc, #696] ; (f76c <lv_img_decoder_built_in_open+0x3ac>)
f4b2: 9300 str r3, [sp, #0]
f4b4: 4bae ldr r3, [pc, #696] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f4b6: 2256 movs r2, #86 ; 0x56
f4b8: 32ff adds r2, #255 ; 0xff
f4ba: 49ae ldr r1, [pc, #696] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f4bc: 3003 adds r0, #3
f4be: 4cae ldr r4, [pc, #696] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f4c0: 47a0 blx r4
return LV_RES_INV;
f4c2: e7da b.n f47a <lv_img_decoder_built_in_open+0xba>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
f4c4: 210c movs r1, #12
f4c6: 4bb1 ldr r3, [pc, #708] ; (f78c <lv_img_decoder_built_in_open+0x3cc>)
f4c8: 4798 blx r3
f4ca: e7b1 b.n f430 <lv_img_decoder_built_in_open+0x70>
LV_ASSERT_MEM(user_data->f);
f4cc: 4ba8 ldr r3, [pc, #672] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f4ce: 9300 str r3, [sp, #0]
f4d0: 225e movs r2, #94 ; 0x5e
f4d2: 32ff adds r2, #255 ; 0xff
f4d4: 49a7 ldr r1, [pc, #668] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f4d6: 3003 adds r0, #3
f4d8: 4ca7 ldr r4, [pc, #668] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f4da: 47a0 blx r4
f4dc: 682a ldr r2, [r5, #0]
f4de: 2300 movs r3, #0
f4e0: 48a8 ldr r0, [pc, #672] ; (f784 <lv_img_decoder_built_in_open+0x3c4>)
f4e2: 49a9 ldr r1, [pc, #676] ; (f788 <lv_img_decoder_built_in_open+0x3c8>)
f4e4: 4788 blx r1
f4e6: e7fe b.n f4e6 <lv_img_decoder_built_in_open+0x126>
f4e8: 5c58 ldrb r0, [r3, r1]
f4ea: 54d0 strb r0, [r2, r3]
f4ec: 3301 adds r3, #1
while(len) {
f4ee: 2b08 cmp r3, #8
f4f0: d1fa bne.n f4e8 <lv_img_decoder_built_in_open+0x128>
lv_img_cf_t cf = dsc->header.cf;
f4f2: 7b20 ldrb r0, [r4, #12]
f4f4: 06c0 lsls r0, r0, #27
f4f6: 0ec0 lsrs r0, r0, #27
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
f4f8: 1f03 subs r3, r0, #4
f4fa: 2b02 cmp r3, #2
f4fc: d804 bhi.n f508 <lv_img_decoder_built_in_open+0x148>
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
f4fe: 7aa3 ldrb r3, [r4, #10]
f500: 2b00 cmp r3, #0
f502: d100 bne.n f506 <lv_img_decoder_built_in_open+0x146>
f504: e777 b.n f3f6 <lv_img_decoder_built_in_open+0x36>
f506: e120 b.n f74a <lv_img_decoder_built_in_open+0x38a>
else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT ||
f508: 1fc3 subs r3, r0, #7
f50a: 2b03 cmp r3, #3
f50c: d907 bls.n f51e <lv_img_decoder_built_in_open+0x15e>
else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT ||
f50e: 380b subs r0, #11
f510: 2803 cmp r0, #3
f512: d900 bls.n f516 <lv_img_decoder_built_in_open+0x156>
f514: e101 b.n f71a <lv_img_decoder_built_in_open+0x35a>
dsc->img_data = NULL;
f516: 2300 movs r3, #0
f518: 6123 str r3, [r4, #16]
return LV_RES_OK; /*Nothing to process*/
f51a: 2001 movs r0, #1
f51c: e76f b.n f3fe <lv_img_decoder_built_in_open+0x3e>
uint8_t px_size = lv_img_cf_get_px_size(cf);
f51e: 4b9c ldr r3, [pc, #624] ; (f790 <lv_img_decoder_built_in_open+0x3d0>)
f520: 4798 blx r3
f522: 0007 movs r7, r0
if(dsc->user_data == NULL) {
f524: 69e3 ldr r3, [r4, #28]
f526: 2b00 cmp r3, #0
f528: d017 beq.n f55a <lv_img_decoder_built_in_open+0x19a>
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
f52a: 69e5 ldr r5, [r4, #28]
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
f52c: 2002 movs r0, #2
f52e: 40b8 lsls r0, r7
f530: 4b8c ldr r3, [pc, #560] ; (f764 <lv_img_decoder_built_in_open+0x3a4>)
f532: 4798 blx r3
f534: 6068 str r0, [r5, #4]
LV_ASSERT_MEM(user_data->palette);
f536: 4b8c ldr r3, [pc, #560] ; (f768 <lv_img_decoder_built_in_open+0x3a8>)
f538: 4798 blx r3
f53a: 2800 cmp r0, #0
f53c: d139 bne.n f5b2 <lv_img_decoder_built_in_open+0x1f2>
f53e: 4b8c ldr r3, [pc, #560] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f540: 9300 str r3, [sp, #0]
f542: 2298 movs r2, #152 ; 0x98
f544: 32ff adds r2, #255 ; 0xff
f546: 498b ldr r1, [pc, #556] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f548: 3003 adds r0, #3
f54a: 4c8b ldr r4, [pc, #556] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f54c: 47a0 blx r4
f54e: 686a ldr r2, [r5, #4]
f550: 2300 movs r3, #0
f552: 488c ldr r0, [pc, #560] ; (f784 <lv_img_decoder_built_in_open+0x3c4>)
f554: 498c ldr r1, [pc, #560] ; (f788 <lv_img_decoder_built_in_open+0x3c8>)
f556: 4788 blx r1
f558: e7fe b.n f558 <lv_img_decoder_built_in_open+0x198>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
f55a: 200c movs r0, #12
f55c: 4b81 ldr r3, [pc, #516] ; (f764 <lv_img_decoder_built_in_open+0x3a4>)
f55e: 4798 blx r3
f560: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
f562: 4b81 ldr r3, [pc, #516] ; (f768 <lv_img_decoder_built_in_open+0x3a8>)
f564: 4798 blx r3
f566: 2800 cmp r0, #0
f568: d10d bne.n f586 <lv_img_decoder_built_in_open+0x1c6>
f56a: 4b81 ldr r3, [pc, #516] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f56c: 9300 str r3, [sp, #0]
f56e: 22c6 movs r2, #198 ; 0xc6
f570: 0052 lsls r2, r2, #1
f572: 4980 ldr r1, [pc, #512] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f574: 3003 adds r0, #3
f576: 4d80 ldr r5, [pc, #512] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f578: 47a8 blx r5
f57a: 69e2 ldr r2, [r4, #28]
f57c: 2300 movs r3, #0
f57e: 4881 ldr r0, [pc, #516] ; (f784 <lv_img_decoder_built_in_open+0x3c4>)
f580: 4981 ldr r1, [pc, #516] ; (f788 <lv_img_decoder_built_in_open+0x3c8>)
f582: 4788 blx r1
f584: e7fe b.n f584 <lv_img_decoder_built_in_open+0x1c4>
if(dsc->user_data == NULL) {
f586: 69e0 ldr r0, [r4, #28]
f588: 2800 cmp r0, #0
f58a: d10e bne.n f5aa <lv_img_decoder_built_in_open+0x1ea>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
f58c: 4b77 ldr r3, [pc, #476] ; (f76c <lv_img_decoder_built_in_open+0x3ac>)
f58e: 9300 str r3, [sp, #0]
f590: 4b77 ldr r3, [pc, #476] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f592: 22c7 movs r2, #199 ; 0xc7
f594: 0052 lsls r2, r2, #1
f596: 4977 ldr r1, [pc, #476] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f598: 3003 adds r0, #3
f59a: 4d77 ldr r5, [pc, #476] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f59c: 47a8 blx r5
lv_img_decoder_built_in_close(decoder, dsc);
f59e: 0021 movs r1, r4
f5a0: 0030 movs r0, r6
f5a2: 4b76 ldr r3, [pc, #472] ; (f77c <lv_img_decoder_built_in_open+0x3bc>)
f5a4: 4798 blx r3
return LV_RES_INV;
f5a6: 2000 movs r0, #0
f5a8: e729 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
f5aa: 210c movs r1, #12
f5ac: 4b77 ldr r3, [pc, #476] ; (f78c <lv_img_decoder_built_in_open+0x3cc>)
f5ae: 4798 blx r3
f5b0: e7bb b.n f52a <lv_img_decoder_built_in_open+0x16a>
uint32_t palette_size = 1 << px_size;
f5b2: 2301 movs r3, #1
f5b4: 40bb lsls r3, r7
f5b6: 001f movs r7, r3
user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t));
f5b8: 0018 movs r0, r3
f5ba: 4b6a ldr r3, [pc, #424] ; (f764 <lv_img_decoder_built_in_open+0x3a4>)
f5bc: 4798 blx r3
f5be: 60a8 str r0, [r5, #8]
LV_ASSERT_MEM(user_data->opa);
f5c0: 4b69 ldr r3, [pc, #420] ; (f768 <lv_img_decoder_built_in_open+0x3a8>)
f5c2: 4798 blx r3
f5c4: 2800 cmp r0, #0
f5c6: d047 beq.n f658 <lv_img_decoder_built_in_open+0x298>
if(user_data->palette == NULL || user_data->opa == NULL) {
f5c8: 686b ldr r3, [r5, #4]
f5ca: 2b00 cmp r3, #0
f5cc: d052 beq.n f674 <lv_img_decoder_built_in_open+0x2b4>
f5ce: 68ab ldr r3, [r5, #8]
f5d0: 2b00 cmp r3, #0
f5d2: d04f beq.n f674 <lv_img_decoder_built_in_open+0x2b4>
if(dsc->src_type == LV_IMG_SRC_FILE) {
f5d4: 7aa3 ldrb r3, [r4, #10]
f5d6: 2b01 cmp r3, #1
f5d8: d05b beq.n f692 <lv_img_decoder_built_in_open+0x2d2>
lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data;
f5da: 6863 ldr r3, [r4, #4]
f5dc: 6898 ldr r0, [r3, #8]
for(i = 0; i < palette_size; i++) {
f5de: 2f00 cmp r7, #0
f5e0: d100 bne.n f5e4 <lv_img_decoder_built_in_open+0x224>
f5e2: e096 b.n f712 <lv_img_decoder_built_in_open+0x352>
f5e4: 2300 movs r3, #0
f5e6: 4698 mov r8, r3
#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/
#endif
static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
{
return LV_COLOR_MAKE(r, g, b);
f5e8: 333f adds r3, #63 ; 0x3f
f5ea: 469b mov fp, r3
f5ec: 3b20 subs r3, #32
f5ee: 4699 mov r9, r3
user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue);
f5f0: 4b68 ldr r3, [pc, #416] ; (f794 <lv_img_decoder_built_in_open+0x3d4>)
f5f2: 469a mov sl, r3
f5f4: 4641 mov r1, r8
f5f6: 9403 str r4, [sp, #12]
f5f8: 004a lsls r2, r1, #1
f5fa: 686b ldr r3, [r5, #4]
f5fc: 469c mov ip, r3
f5fe: 4462 add r2, ip
f600: 7843 ldrb r3, [r0, #1]
f602: 089c lsrs r4, r3, #2
f604: 9402 str r4, [sp, #8]
f606: 7886 ldrb r6, [r0, #2]
f608: 08f6 lsrs r6, r6, #3
f60a: 464c mov r4, r9
f60c: 4026 ands r6, r4
f60e: 7804 ldrb r4, [r0, #0]
f610: 08e4 lsrs r4, r4, #3
f612: 46a4 mov ip, r4
f614: 7814 ldrb r4, [r2, #0]
f616: 464b mov r3, r9
f618: 439c bics r4, r3
f61a: 46a0 mov r8, r4
f61c: 4664 mov r4, ip
f61e: 4643 mov r3, r8
f620: 431c orrs r4, r3
f622: 7014 strb r4, [r2, #0]
f624: 465b mov r3, fp
f626: 9c02 ldr r4, [sp, #8]
f628: 401c ands r4, r3
f62a: 0163 lsls r3, r4, #5
f62c: 469c mov ip, r3
f62e: 8813 ldrh r3, [r2, #0]
f630: 4654 mov r4, sl
f632: 4023 ands r3, r4
f634: 4664 mov r4, ip
f636: 4323 orrs r3, r4
f638: 8013 strh r3, [r2, #0]
f63a: 00f6 lsls r6, r6, #3
f63c: 0a1b lsrs r3, r3, #8
f63e: 2407 movs r4, #7
f640: 4023 ands r3, r4
f642: 4333 orrs r3, r6
f644: 7053 strb r3, [r2, #1]
user_data->opa[i] = palette_p[i].ch.alpha;
f646: 78c3 ldrb r3, [r0, #3]
f648: 68aa ldr r2, [r5, #8]
f64a: 5453 strb r3, [r2, r1]
for(i = 0; i < palette_size; i++) {
f64c: 3101 adds r1, #1
f64e: 3004 adds r0, #4
f650: 428f cmp r7, r1
f652: d1d1 bne.n f5f8 <lv_img_decoder_built_in_open+0x238>
f654: 9c03 ldr r4, [sp, #12]
f656: e05c b.n f712 <lv_img_decoder_built_in_open+0x352>
LV_ASSERT_MEM(user_data->opa);
f658: 4b45 ldr r3, [pc, #276] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f65a: 9300 str r3, [sp, #0]
f65c: 229a movs r2, #154 ; 0x9a
f65e: 32ff adds r2, #255 ; 0xff
f660: 4944 ldr r1, [pc, #272] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f662: 3003 adds r0, #3
f664: 4c44 ldr r4, [pc, #272] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f666: 47a0 blx r4
f668: 68aa ldr r2, [r5, #8]
f66a: 2300 movs r3, #0
f66c: 4845 ldr r0, [pc, #276] ; (f784 <lv_img_decoder_built_in_open+0x3c4>)
f66e: 4946 ldr r1, [pc, #280] ; (f788 <lv_img_decoder_built_in_open+0x3c8>)
f670: 4788 blx r1
f672: e7fe b.n f672 <lv_img_decoder_built_in_open+0x2b2>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
f674: 4b3d ldr r3, [pc, #244] ; (f76c <lv_img_decoder_built_in_open+0x3ac>)
f676: 9300 str r3, [sp, #0]
f678: 4b3d ldr r3, [pc, #244] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f67a: 229c movs r2, #156 ; 0x9c
f67c: 32ff adds r2, #255 ; 0xff
f67e: 493d ldr r1, [pc, #244] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f680: 2003 movs r0, #3
f682: 4d3d ldr r5, [pc, #244] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f684: 47a8 blx r5
lv_img_decoder_built_in_close(decoder, dsc);
f686: 0021 movs r1, r4
f688: 0030 movs r0, r6
f68a: 4b3c ldr r3, [pc, #240] ; (f77c <lv_img_decoder_built_in_open+0x3bc>)
f68c: 4798 blx r3
return LV_RES_INV;
f68e: 2000 movs r0, #0
f690: e6b5 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
lv_fs_seek(user_data->f, 4); /*Skip the header*/
f692: 2104 movs r1, #4
f694: 6828 ldr r0, [r5, #0]
f696: 4b40 ldr r3, [pc, #256] ; (f798 <lv_img_decoder_built_in_open+0x3d8>)
f698: 4798 blx r3
for(i = 0; i < palette_size; i++) {
f69a: 2f00 cmp r7, #0
f69c: d039 beq.n f712 <lv_img_decoder_built_in_open+0x352>
f69e: 2300 movs r3, #0
f6a0: 4698 mov r8, r3
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
f6a2: 4b3e ldr r3, [pc, #248] ; (f79c <lv_img_decoder_built_in_open+0x3dc>)
f6a4: 469b mov fp, r3
f6a6: 233f movs r3, #63 ; 0x3f
f6a8: 469a mov sl, r3
f6aa: 3b20 subs r3, #32
f6ac: 4699 mov r9, r3
f6ae: 0023 movs r3, r4
f6b0: 4644 mov r4, r8
f6b2: 4698 mov r8, r3
f6b4: ae04 add r6, sp, #16
f6b6: 2300 movs r3, #0
f6b8: 2204 movs r2, #4
f6ba: 0031 movs r1, r6
f6bc: 6828 ldr r0, [r5, #0]
f6be: 47d8 blx fp
user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue);
f6c0: 0062 lsls r2, r4, #1
f6c2: 686b ldr r3, [r5, #4]
f6c4: 469c mov ip, r3
f6c6: 4462 add r2, ip
f6c8: 7873 ldrb r3, [r6, #1]
f6ca: 0898 lsrs r0, r3, #2
f6cc: 9003 str r0, [sp, #12]
f6ce: 78b1 ldrb r1, [r6, #2]
f6d0: 08c9 lsrs r1, r1, #3
f6d2: 4648 mov r0, r9
f6d4: 4001 ands r1, r0
f6d6: 9102 str r1, [sp, #8]
f6d8: 7830 ldrb r0, [r6, #0]
f6da: 08c0 lsrs r0, r0, #3
f6dc: 7811 ldrb r1, [r2, #0]
f6de: 464b mov r3, r9
f6e0: 4399 bics r1, r3
f6e2: 4308 orrs r0, r1
f6e4: 7010 strb r0, [r2, #0]
f6e6: 4653 mov r3, sl
f6e8: 9803 ldr r0, [sp, #12]
f6ea: 4018 ands r0, r3
f6ec: 0140 lsls r0, r0, #5
f6ee: 8813 ldrh r3, [r2, #0]
f6f0: 4928 ldr r1, [pc, #160] ; (f794 <lv_img_decoder_built_in_open+0x3d4>)
f6f2: 400b ands r3, r1
f6f4: 4303 orrs r3, r0
f6f6: 8013 strh r3, [r2, #0]
f6f8: 9902 ldr r1, [sp, #8]
f6fa: 00c9 lsls r1, r1, #3
f6fc: 055b lsls r3, r3, #21
f6fe: 0f5b lsrs r3, r3, #29
f700: 430b orrs r3, r1
f702: 7053 strb r3, [r2, #1]
user_data->opa[i] = cur_color.ch.alpha;
f704: 78f3 ldrb r3, [r6, #3]
f706: 68aa ldr r2, [r5, #8]
f708: 5513 strb r3, [r2, r4]
for(i = 0; i < palette_size; i++) {
f70a: 3401 adds r4, #1
f70c: 42a7 cmp r7, r4
f70e: d1d1 bne.n f6b4 <lv_img_decoder_built_in_open+0x2f4>
f710: 4644 mov r4, r8
dsc->img_data = NULL;
f712: 2300 movs r3, #0
f714: 6123 str r3, [r4, #16]
return LV_RES_OK;
f716: 2001 movs r0, #1
f718: e671 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
lv_img_decoder_built_in_close(decoder, dsc);
f71a: 0021 movs r1, r4
f71c: 0030 movs r0, r6
f71e: 4b17 ldr r3, [pc, #92] ; (f77c <lv_img_decoder_built_in_open+0x3bc>)
f720: 4798 blx r3
LV_LOG_WARN("Image decoder open: unknown color format")
f722: 4b1f ldr r3, [pc, #124] ; (f7a0 <lv_img_decoder_built_in_open+0x3e0>)
f724: 9300 str r3, [sp, #0]
f726: 4b12 ldr r3, [pc, #72] ; (f770 <lv_img_decoder_built_in_open+0x3b0>)
f728: 22d4 movs r2, #212 ; 0xd4
f72a: 32ff adds r2, #255 ; 0xff
f72c: 4911 ldr r1, [pc, #68] ; (f774 <lv_img_decoder_built_in_open+0x3b4>)
f72e: 2002 movs r0, #2
f730: 4c11 ldr r4, [pc, #68] ; (f778 <lv_img_decoder_built_in_open+0x3b8>)
f732: 47a0 blx r4
return LV_RES_INV;
f734: 2000 movs r0, #0
f736: e662 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
return LV_RES_INV;
f738: 2000 movs r0, #0
f73a: e660 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
lv_img_cf_t cf = dsc->header.cf;
f73c: 7b08 ldrb r0, [r1, #12]
f73e: 06c0 lsls r0, r0, #27
f740: 0ec0 lsrs r0, r0, #27
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
f742: 1f03 subs r3, r0, #4
f744: 2b02 cmp r3, #2
f746: d900 bls.n f74a <lv_img_decoder_built_in_open+0x38a>
f748: e6de b.n f508 <lv_img_decoder_built_in_open+0x148>
dsc->img_data = NULL;
f74a: 2300 movs r3, #0
f74c: 6123 str r3, [r4, #16]
return LV_RES_OK;
f74e: 2001 movs r0, #1
f750: e655 b.n f3fe <lv_img_decoder_built_in_open+0x3e>
f752: 46c0 nop ; (mov r8, r8)
f754: 00011d09 .word 0x00011d09
f758: 00026784 .word 0x00026784
f75c: 0001c6e5 .word 0x0001c6e5
f760: 00011c25 .word 0x00011c25
f764: 000122dd .word 0x000122dd
f768: 000017ad .word 0x000017ad
f76c: 000267b4 .word 0x000267b4
f770: 00026670 .word 0x00026670
f774: 00026700 .word 0x00026700
f778: 00012159 .word 0x00012159
f77c: 0000f37d .word 0x0000f37d
f780: 00026788 .word 0x00026788
f784: 00025854 .word 0x00025854
f788: 000017b5 .word 0x000017b5
f78c: 00012975 .word 0x00012975
f790: 000092a9 .word 0x000092a9
f794: fffff81f .word 0xfffff81f
f798: 00011bcb .word 0x00011bcb
f79c: 00011b89 .word 0x00011b89
f7a0: 000267e0 .word 0x000267e0
0000f7a4 <lv_img_decoder_built_in_read_line>:
{
f7a4: b5f0 push {r4, r5, r6, r7, lr}
f7a6: 46de mov lr, fp
f7a8: 4657 mov r7, sl
f7aa: 464e mov r6, r9
f7ac: 4645 mov r5, r8
f7ae: b5e0 push {r5, r6, r7, lr}
f7b0: b08d sub sp, #52 ; 0x34
f7b2: 000d movs r5, r1
f7b4: 0017 movs r7, r2
f7b6: 9303 str r3, [sp, #12]
f7b8: ab16 add r3, sp, #88 ; 0x58
f7ba: 2600 movs r6, #0
f7bc: 5f9e ldrsh r6, [r3, r6]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
f7be: 7b0a ldrb r2, [r1, #12]
f7c0: 231f movs r3, #31
f7c2: 4013 ands r3, r2
f7c4: 1f1a subs r2, r3, #4
f7c6: 2a02 cmp r2, #2
f7c8: d846 bhi.n f858 <lv_img_decoder_built_in_read_line+0xb4>
if(dsc->src_type == LV_IMG_SRC_FILE) {
f7ca: 7a8b ldrb r3, [r1, #10]
lv_res_t res = LV_RES_INV;
f7cc: 2000 movs r0, #0
if(dsc->src_type == LV_IMG_SRC_FILE) {
f7ce: 2b01 cmp r3, #1
f7d0: d006 beq.n f7e0 <lv_img_decoder_built_in_read_line+0x3c>
}
f7d2: b00d add sp, #52 ; 0x34
f7d4: bc3c pop {r2, r3, r4, r5}
f7d6: 4690 mov r8, r2
f7d8: 4699 mov r9, r3
f7da: 46a2 mov sl, r4
f7dc: 46ab mov fp, r5
f7de: bdf0 pop {r4, r5, r6, r7, pc}
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)
{
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
f7e0: 69cb ldr r3, [r1, #28]
f7e2: 4699 mov r9, r3
lv_fs_res_t res;
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
f7e4: 7b08 ldrb r0, [r1, #12]
f7e6: 06c0 lsls r0, r0, #27
f7e8: 0ec0 lsrs r0, r0, #27
f7ea: 4bd6 ldr r3, [pc, #856] ; (fb44 <lv_img_decoder_built_in_read_line+0x3a0>)
f7ec: 4798 blx r3
f7ee: 4680 mov r8, r0
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
f7f0: 68e9 ldr r1, [r5, #12]
f7f2: 02c9 lsls r1, r1, #11
f7f4: 0d49 lsrs r1, r1, #21
f7f6: 9b03 ldr r3, [sp, #12]
f7f8: 434b muls r3, r1
f7fa: 19d9 adds r1, r3, r7
f7fc: 4341 muls r1, r0
f7fe: 10c9 asrs r1, r1, #3
pos += 4; /*Skip the header*/
f800: 3104 adds r1, #4
res = lv_fs_seek(user_data->f, pos);
f802: 464b mov r3, r9
f804: 6818 ldr r0, [r3, #0]
f806: 4bd0 ldr r3, [pc, #832] ; (fb48 <lv_img_decoder_built_in_read_line+0x3a4>)
f808: 4798 blx r3
if(res != LV_FS_RES_OK) {
f80a: 2800 cmp r0, #0
f80c: d11a bne.n f844 <lv_img_decoder_built_in_read_line+0xa0>
LV_LOG_WARN("Built-in image decoder seek failed");
return LV_RES_INV;
}
uint32_t btr = len * (px_size >> 3);
f80e: 4643 mov r3, r8
f810: 08db lsrs r3, r3, #3
f812: b2db uxtb r3, r3
f814: 435e muls r6, r3
uint32_t br = 0;
f816: 2300 movs r3, #0
f818: 9308 str r3, [sp, #32]
lv_fs_read(user_data->f, buf, btr, &br);
f81a: 464b mov r3, r9
f81c: 6818 ldr r0, [r3, #0]
f81e: ab08 add r3, sp, #32
f820: 0032 movs r2, r6
f822: 9917 ldr r1, [sp, #92] ; 0x5c
f824: 4cc9 ldr r4, [pc, #804] ; (fb4c <lv_img_decoder_built_in_read_line+0x3a8>)
f826: 47a0 blx r4
if(res != LV_FS_RES_OK || btr != br) {
LV_LOG_WARN("Built-in image decoder read failed");
return LV_RES_INV;
}
return LV_RES_OK;
f828: 2001 movs r0, #1
if(res != LV_FS_RES_OK || btr != br) {
f82a: 9b08 ldr r3, [sp, #32]
f82c: 429e cmp r6, r3
f82e: d0d0 beq.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
LV_LOG_WARN("Built-in image decoder read failed");
f830: 4bc7 ldr r3, [pc, #796] ; (fb50 <lv_img_decoder_built_in_read_line+0x3ac>)
f832: 9300 str r3, [sp, #0]
f834: 4bc7 ldr r3, [pc, #796] ; (fb54 <lv_img_decoder_built_in_read_line+0x3b0>)
f836: 4ac8 ldr r2, [pc, #800] ; (fb58 <lv_img_decoder_built_in_read_line+0x3b4>)
f838: 49c8 ldr r1, [pc, #800] ; (fb5c <lv_img_decoder_built_in_read_line+0x3b8>)
f83a: 3001 adds r0, #1
f83c: 4cc8 ldr r4, [pc, #800] ; (fb60 <lv_img_decoder_built_in_read_line+0x3bc>)
f83e: 47a0 blx r4
return LV_RES_INV;
f840: 2000 movs r0, #0
f842: e7c6 b.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
LV_LOG_WARN("Built-in image decoder seek failed");
f844: 4bc7 ldr r3, [pc, #796] ; (fb64 <lv_img_decoder_built_in_read_line+0x3c0>)
f846: 9300 str r3, [sp, #0]
f848: 4bc2 ldr r3, [pc, #776] ; (fb54 <lv_img_decoder_built_in_read_line+0x3b0>)
f84a: 4ac7 ldr r2, [pc, #796] ; (fb68 <lv_img_decoder_built_in_read_line+0x3c4>)
f84c: 49c3 ldr r1, [pc, #780] ; (fb5c <lv_img_decoder_built_in_read_line+0x3b8>)
f84e: 2002 movs r0, #2
f850: 4cc3 ldr r4, [pc, #780] ; (fb60 <lv_img_decoder_built_in_read_line+0x3bc>)
f852: 47a0 blx r4
return LV_RES_INV;
f854: 2000 movs r0, #0
f856: e7bc b.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
f858: 001a movs r2, r3
f85a: 3a0b subs r2, #11
f85c: 2a03 cmp r2, #3
f85e: d90e bls.n f87e <lv_img_decoder_built_in_read_line+0xda>
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT ||
f860: 3b07 subs r3, #7
f862: 2b03 cmp r3, #3
f864: d800 bhi.n f868 <lv_img_decoder_built_in_read_line+0xc4>
f866: e0f6 b.n fa56 <lv_img_decoder_built_in_read_line+0x2b2>
LV_LOG_WARN("Built-in image decoder read not supports the color format");
f868: 4bc0 ldr r3, [pc, #768] ; (fb6c <lv_img_decoder_built_in_read_line+0x3c8>)
f86a: 9300 str r3, [sp, #0]
f86c: 4bc0 ldr r3, [pc, #768] ; (fb70 <lv_img_decoder_built_in_read_line+0x3cc>)
f86e: 22fe movs r2, #254 ; 0xfe
f870: 0052 lsls r2, r2, #1
f872: 49ba ldr r1, [pc, #744] ; (fb5c <lv_img_decoder_built_in_read_line+0x3b8>)
f874: 2002 movs r0, #2
f876: 4cba ldr r4, [pc, #744] ; (fb60 <lv_img_decoder_built_in_read_line+0x3bc>)
f878: 47a0 blx r4
return LV_RES_INV;
f87a: 2000 movs r0, #0
f87c: e7a9 b.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
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)
{
#if LV_IMG_CF_ALPHA
const lv_opa_t alpha1_opa_table[2] = {0, 255}; /*Opacity mapping with bpp = 1 (Just for compatibility)*/
f87e: ab06 add r3, sp, #24
f880: 2100 movs r1, #0
f882: 7019 strb r1, [r3, #0]
f884: 22ff movs r2, #255 ; 0xff
f886: 705a strb r2, [r3, #1]
const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
f888: ab07 add r3, sp, #28
f88a: 7019 strb r1, [r3, #0]
f88c: 3155 adds r1, #85 ; 0x55
f88e: 7059 strb r1, [r3, #1]
f890: 3155 adds r1, #85 ; 0x55
f892: 7099 strb r1, [r3, #2]
f894: 70da strb r2, [r3, #3]
const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
f896: aa08 add r2, sp, #32
f898: 4bb6 ldr r3, [pc, #728] ; (fb74 <lv_img_decoder_built_in_read_line+0x3d0>)
f89a: cb13 ldmia r3!, {r0, r1, r4}
f89c: c213 stmia r2!, {r0, r1, r4}
f89e: 681b ldr r3, [r3, #0]
f8a0: 6013 str r3, [r2, #0]
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;
f8a2: 8929 ldrh r1, [r5, #8]
lv_coord_t i;
for(i = 0; i < len; i++) {
f8a4: 2e00 cmp r6, #0
f8a6: dd11 ble.n f8cc <lv_img_decoder_built_in_read_line+0x128>
#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;
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
f8a8: 0a08 lsrs r0, r1, #8
f8aa: 9c17 ldr r4, [sp, #92] ; 0x5c
f8ac: 1e72 subs r2, r6, #1
f8ae: b292 uxth r2, r2
f8b0: 3201 adds r2, #1
f8b2: 4694 mov ip, r2
f8b4: 0052 lsls r2, r2, #1
f8b6: 4462 add r2, ip
f8b8: 0023 movs r3, r4
f8ba: 46a4 mov ip, r4
f8bc: 4462 add r2, ip
f8be: 9c03 ldr r4, [sp, #12]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF;
f8c0: 7019 strb r1, [r3, #0]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
f8c2: 7058 strb r0, [r3, #1]
f8c4: 3303 adds r3, #3
for(i = 0; i < len; i++) {
f8c6: 429a cmp r2, r3
f8c8: d1fa bne.n f8c0 <lv_img_decoder_built_in_read_line+0x11c>
f8ca: 9403 str r4, [sp, #12]
#error "Invalid LV_COLOR_DEPTH. Check it in lv_conf.h"
#endif
}
const lv_opa_t * opa_table = NULL;
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
f8cc: 7b28 ldrb r0, [r5, #12]
f8ce: 06c0 lsls r0, r0, #27
f8d0: 0ec0 lsrs r0, r0, #27
f8d2: 4b9c ldr r3, [pc, #624] ; (fb44 <lv_img_decoder_built_in_read_line+0x3a0>)
f8d4: 4798 blx r3
f8d6: 4681 mov r9, r0
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
f8d8: 2301 movs r3, #1
f8da: 4083 lsls r3, r0
f8dc: 3b01 subs r3, #1
f8de: b29b uxth r3, r3
f8e0: 4698 mov r8, r3
lv_coord_t w = 0;
uint32_t ofs = 0;
int8_t pos = 0;
switch(dsc->header.cf) {
f8e2: 7b2b ldrb r3, [r5, #12]
f8e4: 06db lsls r3, r3, #27
f8e6: 0edb lsrs r3, r3, #27
f8e8: b2da uxtb r2, r3
f8ea: 2a0c cmp r2, #12
f8ec: d04d beq.n f98a <lv_img_decoder_built_in_read_line+0x1e6>
f8ee: d911 bls.n f914 <lv_img_decoder_built_in_read_line+0x170>
f8f0: b2da uxtb r2, r3
f8f2: 2a0d cmp r2, #13
f8f4: d05f beq.n f9b6 <lv_img_decoder_built_in_read_line+0x212>
f8f6: 2a0e cmp r2, #14
f8f8: d172 bne.n f9e0 <lv_img_decoder_built_in_read_line+0x23c>
ofs += w * y + (x >> 1); /*First pixel*/
pos = 4 - ((x & 0x1) * 4);
opa_table = alpha4_opa_table;
break;
case LV_IMG_CF_ALPHA_8BIT:
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
f8fa: 68eb ldr r3, [r5, #12]
f8fc: 02db lsls r3, r3, #11
f8fe: 0d5b lsrs r3, r3, #21
f900: b299 uxth r1, r3
f902: b21b sxth r3, r3
f904: 9304 str r3, [sp, #16]
ofs += w * y + x; /*First pixel*/
f906: 9c03 ldr r4, [sp, #12]
f908: 434c muls r4, r1
f90a: 19e4 adds r4, r4, r7
pos = 0;
f90c: 2700 movs r7, #0
const lv_opa_t * opa_table = NULL;
f90e: 2300 movs r3, #0
f910: 469a mov sl, r3
f912: e015 b.n f940 <lv_img_decoder_built_in_read_line+0x19c>
switch(dsc->header.cf) {
f914: 2a0b cmp r2, #11
f916: d163 bne.n f9e0 <lv_img_decoder_built_in_read_line+0x23c>
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
f918: 68eb ldr r3, [r5, #12]
f91a: 02db lsls r3, r3, #11
f91c: 0d5b lsrs r3, r3, #21
f91e: 10da asrs r2, r3, #3
if(dsc->header.w & 0x7) w++;
f920: 1c51 adds r1, r2, #1
f922: 9104 str r1, [sp, #16]
f924: 075b lsls r3, r3, #29
f926: d101 bne.n f92c <lv_img_decoder_built_in_read_line+0x188>
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
f928: b213 sxth r3, r2
f92a: 9304 str r3, [sp, #16]
ofs += w * y + (x >> 3); /*First pixel*/
f92c: 9b04 ldr r3, [sp, #16]
f92e: 9c03 ldr r4, [sp, #12]
f930: 435c muls r4, r3
f932: 10f9 asrs r1, r7, #3
f934: 1864 adds r4, r4, r1
pos = 7 - (x & 0x7);
f936: 2307 movs r3, #7
f938: 43bb bics r3, r7
f93a: 001f movs r7, r3
opa_table = alpha1_opa_table;
f93c: ab06 add r3, sp, #24
f93e: 469a mov sl, r3
break;
}
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
f940: 69eb ldr r3, [r5, #28]
f942: 469b mov fp, r3
uint8_t * fs_buf = _lv_mem_buf_get(w);
f944: 9804 ldr r0, [sp, #16]
f946: 4b8c ldr r3, [pc, #560] ; (fb78 <lv_img_decoder_built_in_read_line+0x3d4>)
f948: 4798 blx r3
f94a: 9005 str r0, [sp, #20]
#endif
const uint8_t * data_tmp = NULL;
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
f94c: 7aab ldrb r3, [r5, #10]
f94e: 2b00 cmp r3, #0
f950: d150 bne.n f9f4 <lv_img_decoder_built_in_read_line+0x250>
const lv_img_dsc_t * img_dsc = dsc->src;
data_tmp = img_dsc->data + ofs;
f952: 686b ldr r3, [r5, #4]
f954: 6899 ldr r1, [r3, #8]
f956: 190c adds r4, r1, r4
data_tmp = NULL; /*To avoid warnings*/
return LV_RES_INV;
#endif
}
for(i = 0; i < len; i++) {
f958: 2e00 cmp r6, #0
f95a: dd77 ble.n fa4c <lv_img_decoder_built_in_read_line+0x2a8>
f95c: 9b17 ldr r3, [sp, #92] ; 0x5c
f95e: 1c99 adds r1, r3, #2
f960: 3e01 subs r6, #1
f962: b2b6 uxth r6, r6
f964: 0070 lsls r0, r6, #1
f966: 1980 adds r0, r0, r6
f968: 3005 adds r0, #5
f96a: 469c mov ip, r3
f96c: 4460 add r0, ip
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
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];
f96e: 261f movs r6, #31
f970: 23ff movs r3, #255 ; 0xff
f972: 469c mov ip, r3
pos -= px_size;
if(pos < 0) {
pos = 8 - px_size;
f974: 2308 movs r3, #8
f976: 464a mov r2, r9
f978: 1a9b subs r3, r3, r2
f97a: b25b sxtb r3, r3
f97c: 9303 str r3, [sp, #12]
f97e: 46cb mov fp, r9
f980: 002b movs r3, r5
f982: 0005 movs r5, r0
f984: 4640 mov r0, r8
f986: 4698 mov r8, r3
f988: e04c b.n fa24 <lv_img_decoder_built_in_read_line+0x280>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
f98a: 68eb ldr r3, [r5, #12]
f98c: 02db lsls r3, r3, #11
f98e: 0d5b lsrs r3, r3, #21
f990: 109a asrs r2, r3, #2
if(dsc->header.w & 0x3) w++;
f992: 1c51 adds r1, r2, #1
f994: 9104 str r1, [sp, #16]
f996: 079b lsls r3, r3, #30
f998: d101 bne.n f99e <lv_img_decoder_built_in_read_line+0x1fa>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
f99a: b213 sxth r3, r2
f99c: 9304 str r3, [sp, #16]
ofs += w * y + (x >> 2); /*First pixel*/
f99e: 9b04 ldr r3, [sp, #16]
f9a0: 9c03 ldr r4, [sp, #12]
f9a2: 435c muls r4, r3
f9a4: 10b9 asrs r1, r7, #2
f9a6: 1864 adds r4, r4, r1
pos = 6 - ((x & 0x3) * 2);
f9a8: b2bb uxth r3, r7
f9aa: 2703 movs r7, #3
f9ac: 439f bics r7, r3
f9ae: 007f lsls r7, r7, #1
opa_table = alpha2_opa_table;
f9b0: ab07 add r3, sp, #28
f9b2: 469a mov sl, r3
f9b4: e7c4 b.n f940 <lv_img_decoder_built_in_read_line+0x19c>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
f9b6: 68eb ldr r3, [r5, #12]
f9b8: 02db lsls r3, r3, #11
f9ba: 0d5b lsrs r3, r3, #21
f9bc: 105a asrs r2, r3, #1
if(dsc->header.w & 0x1) w++;
f9be: 1c51 adds r1, r2, #1
f9c0: 9104 str r1, [sp, #16]
f9c2: 07db lsls r3, r3, #31
f9c4: d401 bmi.n f9ca <lv_img_decoder_built_in_read_line+0x226>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
f9c6: b213 sxth r3, r2
f9c8: 9304 str r3, [sp, #16]
ofs += w * y + (x >> 1); /*First pixel*/
f9ca: 9b04 ldr r3, [sp, #16]
f9cc: 9c03 ldr r4, [sp, #12]
f9ce: 435c muls r4, r3
f9d0: 1079 asrs r1, r7, #1
f9d2: 1864 adds r4, r4, r1
pos = 4 - ((x & 0x1) * 4);
f9d4: 07fb lsls r3, r7, #31
f9d6: d509 bpl.n f9ec <lv_img_decoder_built_in_read_line+0x248>
f9d8: 2700 movs r7, #0
opa_table = alpha4_opa_table;
f9da: ab08 add r3, sp, #32
f9dc: 469a mov sl, r3
f9de: e7af b.n f940 <lv_img_decoder_built_in_read_line+0x19c>
int8_t pos = 0;
f9e0: 2700 movs r7, #0
uint32_t ofs = 0;
f9e2: 2400 movs r4, #0
lv_coord_t w = 0;
f9e4: 2300 movs r3, #0
f9e6: 9304 str r3, [sp, #16]
const lv_opa_t * opa_table = NULL;
f9e8: 469a mov sl, r3
f9ea: e7a9 b.n f940 <lv_img_decoder_built_in_read_line+0x19c>
pos = 4 - ((x & 0x1) * 4);
f9ec: 2704 movs r7, #4
opa_table = alpha4_opa_table;
f9ee: ab08 add r3, sp, #32
f9f0: 469a mov sl, r3
f9f2: e7a5 b.n f940 <lv_img_decoder_built_in_read_line+0x19c>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
f9f4: 1d21 adds r1, r4, #4
f9f6: 465b mov r3, fp
f9f8: 6818 ldr r0, [r3, #0]
f9fa: 4b53 ldr r3, [pc, #332] ; (fb48 <lv_img_decoder_built_in_read_line+0x3a4>)
f9fc: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
f9fe: 465b mov r3, fp
fa00: 6818 ldr r0, [r3, #0]
fa02: 2300 movs r3, #0
fa04: 9a04 ldr r2, [sp, #16]
fa06: 9905 ldr r1, [sp, #20]
fa08: 4c50 ldr r4, [pc, #320] ; (fb4c <lv_img_decoder_built_in_read_line+0x3a8>)
fa0a: 47a0 blx r4
data_tmp = fs_buf;
fa0c: 9c05 ldr r4, [sp, #20]
fa0e: e7a3 b.n f958 <lv_img_decoder_built_in_read_line+0x1b4>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
fa10: b2db uxtb r3, r3
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
fa12: 700b strb r3, [r1, #0]
pos -= px_size;
fa14: 465b mov r3, fp
fa16: 1aff subs r7, r7, r3
fa18: b27f sxtb r7, r7
if(pos < 0) {
fa1a: 2f00 cmp r7, #0
fa1c: db13 blt.n fa46 <lv_img_decoder_built_in_read_line+0x2a2>
fa1e: 3103 adds r1, #3
for(i = 0; i < len; i++) {
fa20: 42a9 cmp r1, r5
fa22: d013 beq.n fa4c <lv_img_decoder_built_in_read_line+0x2a8>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
fa24: 7823 ldrb r3, [r4, #0]
fa26: 4699 mov r9, r3
fa28: 0003 movs r3, r0
fa2a: 40bb lsls r3, r7
fa2c: 464a mov r2, r9
fa2e: 4013 ands r3, r2
fa30: 413b asrs r3, r7
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
fa32: 4642 mov r2, r8
fa34: 7b12 ldrb r2, [r2, #12]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
fa36: 4032 ands r2, r6
fa38: 2a0e cmp r2, #14
fa3a: d0e9 beq.n fa10 <lv_img_decoder_built_in_read_line+0x26c>
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
fa3c: 4662 mov r2, ip
fa3e: 4013 ands r3, r2
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
fa40: 4652 mov r2, sl
fa42: 5cd3 ldrb r3, [r2, r3]
fa44: e7e5 b.n fa12 <lv_img_decoder_built_in_read_line+0x26e>
pos = 8 - px_size;
fa46: 9f03 ldr r7, [sp, #12]
data_tmp++;
fa48: 3401 adds r4, #1
fa4a: e7e8 b.n fa1e <lv_img_decoder_built_in_read_line+0x27a>
}
}
#if LV_USE_FILESYSTEM
_lv_mem_buf_release(fs_buf);
fa4c: 9805 ldr r0, [sp, #20]
fa4e: 4b4b ldr r3, [pc, #300] ; (fb7c <lv_img_decoder_built_in_read_line+0x3d8>)
fa50: 4798 blx r3
res = lv_img_decoder_built_in_line_alpha(dsc, x, y, len, buf);
fa52: 2001 movs r0, #1
fa54: e6bd b.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
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)
{
#if LV_IMG_CF_INDEXED
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
fa56: 7b08 ldrb r0, [r1, #12]
fa58: 06c0 lsls r0, r0, #27
fa5a: 0ec0 lsrs r0, r0, #27
fa5c: 4b39 ldr r3, [pc, #228] ; (fb44 <lv_img_decoder_built_in_read_line+0x3a0>)
fa5e: 4798 blx r3
fa60: 4681 mov r9, r0
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
fa62: 2301 movs r3, #1
fa64: 4083 lsls r3, r0
fa66: 3b01 subs r3, #1
fa68: b29b uxth r3, r3
fa6a: 4698 mov r8, r3
lv_coord_t w = 0;
int8_t pos = 0;
uint32_t ofs = 0;
switch(dsc->header.cf) {
fa6c: 7b2b ldrb r3, [r5, #12]
fa6e: 06db lsls r3, r3, #27
fa70: 0edb lsrs r3, r3, #27
fa72: b2da uxtb r2, r3
fa74: 2a08 cmp r2, #8
fa76: d04d beq.n fb14 <lv_img_decoder_built_in_read_line+0x370>
fa78: d915 bls.n faa6 <lv_img_decoder_built_in_read_line+0x302>
fa7a: b2da uxtb r2, r3
fa7c: 2a09 cmp r2, #9
fa7e: d100 bne.n fa82 <lv_img_decoder_built_in_read_line+0x2de>
fa80: e07e b.n fb80 <lv_img_decoder_built_in_read_line+0x3dc>
fa82: 2a0a cmp r2, #10
fa84: d000 beq.n fa88 <lv_img_decoder_built_in_read_line+0x2e4>
fa86: e093 b.n fbb0 <lv_img_decoder_built_in_read_line+0x40c>
ofs += w * y + (x >> 1); /*First pixel*/
ofs += 64; /*Skip the palette*/
pos = 4 - ((x & 0x1) * 4);
break;
case LV_IMG_CF_INDEXED_8BIT:
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
fa88: 68eb ldr r3, [r5, #12]
fa8a: 02db lsls r3, r3, #11
fa8c: 0d5b lsrs r3, r3, #21
fa8e: b29a uxth r2, r3
fa90: b21b sxth r3, r3
fa92: 469a mov sl, r3
ofs += w * y + x; /*First pixel*/
fa94: 9c03 ldr r4, [sp, #12]
fa96: 4354 muls r4, r2
fa98: 19e7 adds r7, r4, r7
ofs += 1024; /*Skip the palette*/
fa9a: 2380 movs r3, #128 ; 0x80
fa9c: 00db lsls r3, r3, #3
fa9e: 469b mov fp, r3
faa0: 44bb add fp, r7
pos = 0;
faa2: 2400 movs r4, #0
faa4: e016 b.n fad4 <lv_img_decoder_built_in_read_line+0x330>
switch(dsc->header.cf) {
faa6: 2a07 cmp r2, #7
faa8: d000 beq.n faac <lv_img_decoder_built_in_read_line+0x308>
faaa: e081 b.n fbb0 <lv_img_decoder_built_in_read_line+0x40c>
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
faac: 68eb ldr r3, [r5, #12]
faae: 02db lsls r3, r3, #11
fab0: 0d5b lsrs r3, r3, #21
fab2: 10da asrs r2, r3, #3
if(dsc->header.w & 0x7) w++;
fab4: 1c51 adds r1, r2, #1
fab6: 468a mov sl, r1
fab8: 075b lsls r3, r3, #29
faba: d101 bne.n fac0 <lv_img_decoder_built_in_read_line+0x31c>
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
fabc: b213 sxth r3, r2
fabe: 469a mov sl, r3
ofs += w * y + (x >> 3); /*First pixel*/
fac0: 4653 mov r3, sl
fac2: 9c03 ldr r4, [sp, #12]
fac4: 435c muls r4, r3
fac6: 10fb asrs r3, r7, #3
fac8: 18e4 adds r4, r4, r3
ofs += 8; /*Skip the palette*/
faca: 2308 movs r3, #8
facc: 469b mov fp, r3
face: 44a3 add fp, r4
pos = 7 - (x & 0x7);
fad0: 2407 movs r4, #7
fad2: 43bc bics r4, r7
break;
}
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
fad4: 69ef ldr r7, [r5, #28]
#if LV_USE_FILESYSTEM
uint8_t * fs_buf = _lv_mem_buf_get(w);
fad6: 4650 mov r0, sl
fad8: 4b27 ldr r3, [pc, #156] ; (fb78 <lv_img_decoder_built_in_read_line+0x3d4>)
fada: 4798 blx r3
fadc: 9004 str r0, [sp, #16]
#endif
const uint8_t * data_tmp = NULL;
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
fade: 7aab ldrb r3, [r5, #10]
fae0: 2b00 cmp r3, #0
fae2: d16a bne.n fbba <lv_img_decoder_built_in_read_line+0x416>
const lv_img_dsc_t * img_dsc = dsc->src;
data_tmp = img_dsc->data + ofs;
fae4: 686b ldr r3, [r5, #4]
fae6: 6899 ldr r1, [r3, #8]
fae8: 4459 add r1, fp
return LV_RES_INV;
#endif
}
lv_coord_t i;
for(i = 0; i < len; i++) {
faea: 2e00 cmp r6, #0
faec: dc00 bgt.n faf0 <lv_img_decoder_built_in_read_line+0x34c>
faee: e08b b.n fc08 <lv_img_decoder_built_in_read_line+0x464>
faf0: 9817 ldr r0, [sp, #92] ; 0x5c
faf2: 3e01 subs r6, #1
faf4: b2b6 uxth r6, r6
faf6: 3601 adds r6, #1
faf8: 0073 lsls r3, r6, #1
fafa: 199e adds r6, r3, r6
fafc: 4684 mov ip, r0
fafe: 4466 add r6, ip
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
lv_color_t color = user_data->palette[val_act];
fb00: 23ff movs r3, #255 ; 0xff
fb02: 469a mov sl, r3
#endif
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
pos -= px_size;
if(pos < 0) {
pos = 8 - px_size;
fb04: 2208 movs r2, #8
fb06: 464b mov r3, r9
fb08: 1ad2 subs r2, r2, r3
fb0a: b253 sxtb r3, r2
fb0c: 9303 str r3, [sp, #12]
fb0e: 46b4 mov ip, r6
fb10: 464e mov r6, r9
fb12: e062 b.n fbda <lv_img_decoder_built_in_read_line+0x436>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
fb14: 68eb ldr r3, [r5, #12]
fb16: 02db lsls r3, r3, #11
fb18: 0d5b lsrs r3, r3, #21
fb1a: 109a asrs r2, r3, #2
if(dsc->header.w & 0x3) w++;
fb1c: 1c51 adds r1, r2, #1
fb1e: 468a mov sl, r1
fb20: 079b lsls r3, r3, #30
fb22: d101 bne.n fb28 <lv_img_decoder_built_in_read_line+0x384>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
fb24: b213 sxth r3, r2
fb26: 469a mov sl, r3
ofs += w * y + (x >> 2); /*First pixel*/
fb28: 4653 mov r3, sl
fb2a: 9c03 ldr r4, [sp, #12]
fb2c: 435c muls r4, r3
fb2e: 10bb asrs r3, r7, #2
fb30: 18e4 adds r4, r4, r3
ofs += 16; /*Skip the palette*/
fb32: 2310 movs r3, #16
fb34: 469b mov fp, r3
fb36: 44a3 add fp, r4
pos = 6 - ((x & 0x3) * 2);
fb38: b2bf uxth r7, r7
fb3a: 2403 movs r4, #3
fb3c: 43bc bics r4, r7
fb3e: 0064 lsls r4, r4, #1
fb40: e7c8 b.n fad4 <lv_img_decoder_built_in_read_line+0x330>
fb42: 46c0 nop ; (mov r8, r8)
fb44: 000092a9 .word 0x000092a9
fb48: 00011bcb .word 0x00011bcb
fb4c: 00011b89 .word 0x00011b89
fb50: 00026830 .word 0x00026830
fb54: 000266b4 .word 0x000266b4
fb58: 00000235 .word 0x00000235
fb5c: 00026700 .word 0x00026700
fb60: 00012159 .word 0x00012159
fb64: 0002680c .word 0x0002680c
fb68: 0000022e .word 0x0000022e
fb6c: 00026854 .word 0x00026854
fb70: 00026690 .word 0x00026690
fb74: 00026610 .word 0x00026610
fb78: 000127a1 .word 0x000127a1
fb7c: 00012465 .word 0x00012465
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
fb80: 68eb ldr r3, [r5, #12]
fb82: 02db lsls r3, r3, #11
fb84: 0d5b lsrs r3, r3, #21
fb86: 105a asrs r2, r3, #1
if(dsc->header.w & 0x1) w++;
fb88: 1c51 adds r1, r2, #1
fb8a: 468a mov sl, r1
fb8c: 07db lsls r3, r3, #31
fb8e: d401 bmi.n fb94 <lv_img_decoder_built_in_read_line+0x3f0>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
fb90: b213 sxth r3, r2
fb92: 469a mov sl, r3
ofs += w * y + (x >> 1); /*First pixel*/
fb94: 4653 mov r3, sl
fb96: 9c03 ldr r4, [sp, #12]
fb98: 435c muls r4, r3
fb9a: 107b asrs r3, r7, #1
fb9c: 18e4 adds r4, r4, r3
ofs += 64; /*Skip the palette*/
fb9e: 2340 movs r3, #64 ; 0x40
fba0: 469b mov fp, r3
fba2: 44a3 add fp, r4
pos = 4 - ((x & 0x1) * 4);
fba4: 2401 movs r4, #1
fba6: 4027 ands r7, r4
fba8: 427c negs r4, r7
fbaa: 417c adcs r4, r7
fbac: 00a4 lsls r4, r4, #2
fbae: e791 b.n fad4 <lv_img_decoder_built_in_read_line+0x330>
uint32_t ofs = 0;
fbb0: 2300 movs r3, #0
fbb2: 469b mov fp, r3
int8_t pos = 0;
fbb4: 2400 movs r4, #0
lv_coord_t w = 0;
fbb6: 469a mov sl, r3
fbb8: e78c b.n fad4 <lv_img_decoder_built_in_read_line+0x330>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
fbba: 4659 mov r1, fp
fbbc: 3104 adds r1, #4
fbbe: 6838 ldr r0, [r7, #0]
fbc0: 4b14 ldr r3, [pc, #80] ; (fc14 <lv_img_decoder_built_in_read_line+0x470>)
fbc2: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
fbc4: 2300 movs r3, #0
fbc6: 4652 mov r2, sl
fbc8: 9904 ldr r1, [sp, #16]
fbca: 6838 ldr r0, [r7, #0]
fbcc: 4d12 ldr r5, [pc, #72] ; (fc18 <lv_img_decoder_built_in_read_line+0x474>)
fbce: 47a8 blx r5
data_tmp = fs_buf;
fbd0: 9904 ldr r1, [sp, #16]
fbd2: e78a b.n faea <lv_img_decoder_built_in_read_line+0x346>
fbd4: 3003 adds r0, #3
for(i = 0; i < len; i++) {
fbd6: 4560 cmp r0, ip
fbd8: d016 beq.n fc08 <lv_img_decoder_built_in_read_line+0x464>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
fbda: 780a ldrb r2, [r1, #0]
fbdc: 4643 mov r3, r8
fbde: 40a3 lsls r3, r4
fbe0: 4013 ands r3, r2
fbe2: 4123 asrs r3, r4
lv_color_t color = user_data->palette[val_act];
fbe4: 4652 mov r2, sl
fbe6: 4013 ands r3, r2
fbe8: 005a lsls r2, r3, #1
fbea: 687d ldr r5, [r7, #4]
fbec: 5b52 ldrh r2, [r2, r5]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF;
fbee: 7002 strb r2, [r0, #0]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF;
fbf0: 0a12 lsrs r2, r2, #8
fbf2: 7042 strb r2, [r0, #1]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
fbf4: 68ba ldr r2, [r7, #8]
fbf6: 5cd3 ldrb r3, [r2, r3]
fbf8: 7083 strb r3, [r0, #2]
pos -= px_size;
fbfa: 1ba4 subs r4, r4, r6
fbfc: b264 sxtb r4, r4
if(pos < 0) {
fbfe: 2c00 cmp r4, #0
fc00: dae8 bge.n fbd4 <lv_img_decoder_built_in_read_line+0x430>
pos = 8 - px_size;
fc02: 9c03 ldr r4, [sp, #12]
data_tmp++;
fc04: 3101 adds r1, #1
fc06: e7e5 b.n fbd4 <lv_img_decoder_built_in_read_line+0x430>
}
}
#if LV_USE_FILESYSTEM
_lv_mem_buf_release(fs_buf);
fc08: 9804 ldr r0, [sp, #16]
fc0a: 4b04 ldr r3, [pc, #16] ; (fc1c <lv_img_decoder_built_in_read_line+0x478>)
fc0c: 4798 blx r3
res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf);
fc0e: 2001 movs r0, #1
fc10: e5df b.n f7d2 <lv_img_decoder_built_in_read_line+0x2e>
fc12: 46c0 nop ; (mov r8, r8)
fc14: 00011bcb .word 0x00011bcb
fc18: 00011b89 .word 0x00011b89
fc1c: 00012465 .word 0x00012465
0000fc20 <lv_img_decoder_get_info>:
{
fc20: b5f0 push {r4, r5, r6, r7, lr}
fc22: b083 sub sp, #12
fc24: 9001 str r0, [sp, #4]
fc26: 000d movs r5, r1
header->always_zero = 0;
fc28: 780a ldrb r2, [r1, #0]
fc2a: 231f movs r3, #31
fc2c: 4013 ands r3, r2
fc2e: 700b strb r3, [r1, #0]
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
fc30: 480d ldr r0, [pc, #52] ; (fc68 <lv_img_decoder_get_info+0x48>)
fc32: 4b0e ldr r3, [pc, #56] ; (fc6c <lv_img_decoder_get_info+0x4c>)
fc34: 4798 blx r3
fc36: 1e04 subs r4, r0, #0
fc38: d014 beq.n fc64 <lv_img_decoder_get_info+0x44>
fc3a: 4e0d ldr r6, [pc, #52] ; (fc70 <lv_img_decoder_get_info+0x50>)
fc3c: e005 b.n fc4a <lv_img_decoder_get_info+0x2a>
res = LV_RES_INV;
fc3e: 2700 movs r7, #0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
fc40: 0021 movs r1, r4
fc42: 4809 ldr r0, [pc, #36] ; (fc68 <lv_img_decoder_get_info+0x48>)
fc44: 47b0 blx r6
fc46: 1e04 subs r4, r0, #0
fc48: d009 beq.n fc5e <lv_img_decoder_get_info+0x3e>
if(d->info_cb) {
fc4a: 6823 ldr r3, [r4, #0]
fc4c: 2b00 cmp r3, #0
fc4e: d0f6 beq.n fc3e <lv_img_decoder_get_info+0x1e>
res = d->info_cb(d, src, header);
fc50: 002a movs r2, r5
fc52: 9901 ldr r1, [sp, #4]
fc54: 0020 movs r0, r4
fc56: 4798 blx r3
fc58: 0007 movs r7, r0
if(res == LV_RES_OK) break;
fc5a: 2801 cmp r0, #1
fc5c: d1f0 bne.n fc40 <lv_img_decoder_get_info+0x20>
}
fc5e: 0038 movs r0, r7
fc60: b003 add sp, #12
fc62: bdf0 pop {r4, r5, r6, r7, pc}
lv_res_t res = LV_RES_INV;
fc64: 2700 movs r7, #0
fc66: e7fa b.n fc5e <lv_img_decoder_get_info+0x3e>
fc68: 20004d2c .word 0x20004d2c
fc6c: 00011e85 .word 0x00011e85
fc70: 00011e9d .word 0x00011e9d
0000fc74 <lv_img_decoder_open>:
{
fc74: b5f0 push {r4, r5, r6, r7, lr}
fc76: b083 sub sp, #12
fc78: 0007 movs r7, r0
fc7a: 9100 str r1, [sp, #0]
dsc->color = color;
fc7c: 8102 strh r2, [r0, #8]
dsc->src_type = lv_img_src_get_type(src);
fc7e: 0008 movs r0, r1
fc80: 4b25 ldr r3, [pc, #148] ; (fd18 <lv_img_decoder_open+0xa4>)
fc82: 4798 blx r3
fc84: 72b8 strb r0, [r7, #10]
dsc->user_data = NULL;
fc86: 2300 movs r3, #0
fc88: 61fb str r3, [r7, #28]
if(dsc->src_type == LV_IMG_SRC_FILE) {
fc8a: 2801 cmp r0, #1
fc8c: d00e beq.n fcac <lv_img_decoder_open+0x38>
dsc->src = src;
fc8e: 9b00 ldr r3, [sp, #0]
fc90: 607b str r3, [r7, #4]
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
fc92: 4822 ldr r0, [pc, #136] ; (fd1c <lv_img_decoder_open+0xa8>)
fc94: 4b22 ldr r3, [pc, #136] ; (fd20 <lv_img_decoder_open+0xac>)
fc96: 4798 blx r3
fc98: 1e04 subs r4, r0, #0
fc9a: d036 beq.n fd0a <lv_img_decoder_open+0x96>
fc9c: 2500 movs r5, #0
res = d->info_cb(d, src, &dsc->header);
fc9e: 230c movs r3, #12
fca0: 469c mov ip, r3
fca2: 44bc add ip, r7
fca4: 4663 mov r3, ip
fca6: 9301 str r3, [sp, #4]
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
fca8: 4e1e ldr r6, [pc, #120] ; (fd24 <lv_img_decoder_open+0xb0>)
fcaa: e010 b.n fcce <lv_img_decoder_open+0x5a>
size_t fnlen = strlen(src);
fcac: 9c00 ldr r4, [sp, #0]
fcae: 0020 movs r0, r4
fcb0: 4b1d ldr r3, [pc, #116] ; (fd28 <lv_img_decoder_open+0xb4>)
fcb2: 4798 blx r3
dsc->src = lv_mem_alloc(fnlen + 1);
fcb4: 3001 adds r0, #1
fcb6: 4b1d ldr r3, [pc, #116] ; (fd2c <lv_img_decoder_open+0xb8>)
fcb8: 4798 blx r3
fcba: 6078 str r0, [r7, #4]
strcpy((char *)dsc->src, src);
fcbc: 0021 movs r1, r4
fcbe: 4b1c ldr r3, [pc, #112] ; (fd30 <lv_img_decoder_open+0xbc>)
fcc0: 4798 blx r3
fcc2: e7e6 b.n fc92 <lv_img_decoder_open+0x1e>
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
fcc4: 0021 movs r1, r4
fcc6: 4815 ldr r0, [pc, #84] ; (fd1c <lv_img_decoder_open+0xa8>)
fcc8: 47b0 blx r6
fcca: 1e04 subs r4, r0, #0
fccc: d018 beq.n fd00 <lv_img_decoder_open+0x8c>
if(d->info_cb == NULL || d->open_cb == NULL) continue;
fcce: 6823 ldr r3, [r4, #0]
fcd0: 2b00 cmp r3, #0
fcd2: d0f7 beq.n fcc4 <lv_img_decoder_open+0x50>
fcd4: 6862 ldr r2, [r4, #4]
fcd6: 2a00 cmp r2, #0
fcd8: d0f4 beq.n fcc4 <lv_img_decoder_open+0x50>
res = d->info_cb(d, src, &dsc->header);
fcda: 9a01 ldr r2, [sp, #4]
fcdc: 9900 ldr r1, [sp, #0]
fcde: 0020 movs r0, r4
fce0: 4798 blx r3
fce2: 0005 movs r5, r0
if(res != LV_RES_OK) continue;
fce4: 2801 cmp r0, #1
fce6: d1ed bne.n fcc4 <lv_img_decoder_open+0x50>
dsc->error_msg = NULL;
fce8: 2300 movs r3, #0
fcea: 61bb str r3, [r7, #24]
dsc->img_data = NULL;
fcec: 613b str r3, [r7, #16]
dsc->decoder = d;
fcee: 603c str r4, [r7, #0]
res = d->open_cb(d, dsc);
fcf0: 0039 movs r1, r7
fcf2: 0020 movs r0, r4
fcf4: 6863 ldr r3, [r4, #4]
fcf6: 4798 blx r3
fcf8: 0005 movs r5, r0
if(res == LV_RES_OK) break;
fcfa: 2801 cmp r0, #1
fcfc: d1e2 bne.n fcc4 <lv_img_decoder_open+0x50>
fcfe: e001 b.n fd04 <lv_img_decoder_open+0x90>
if(res == LV_RES_INV) {
fd00: 2d00 cmp r5, #0
fd02: d003 beq.n fd0c <lv_img_decoder_open+0x98>
}
fd04: 0028 movs r0, r5
fd06: b003 add sp, #12
fd08: bdf0 pop {r4, r5, r6, r7, pc}
lv_res_t res = LV_RES_INV;
fd0a: 2500 movs r5, #0
_lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t));
fd0c: 2120 movs r1, #32
fd0e: 0038 movs r0, r7
fd10: 4b08 ldr r3, [pc, #32] ; (fd34 <lv_img_decoder_open+0xc0>)
fd12: 4798 blx r3
fd14: e7f6 b.n fd04 <lv_img_decoder_open+0x90>
fd16: 46c0 nop ; (mov r8, r8)
fd18: 00009589 .word 0x00009589
fd1c: 20004d2c .word 0x20004d2c
fd20: 00011e85 .word 0x00011e85
fd24: 00011e9d .word 0x00011e9d
fd28: 0001c709 .word 0x0001c709
fd2c: 000122dd .word 0x000122dd
fd30: 0001c6f9 .word 0x0001c6f9
fd34: 00012975 .word 0x00012975
0000fd38 <lv_img_decoder_read_line>:
{
fd38: b570 push {r4, r5, r6, lr}
fd3a: b082 sub sp, #8
if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf);
fd3c: 6805 ldr r5, [r0, #0]
fd3e: 68ac ldr r4, [r5, #8]
fd40: 2c00 cmp r4, #0
fd42: d009 beq.n fd58 <lv_img_decoder_read_line+0x20>
fd44: 9e06 ldr r6, [sp, #24]
fd46: 9601 str r6, [sp, #4]
fd48: 9300 str r3, [sp, #0]
fd4a: 0013 movs r3, r2
fd4c: 000a movs r2, r1
fd4e: 0001 movs r1, r0
fd50: 0028 movs r0, r5
fd52: 47a0 blx r4
}
fd54: b002 add sp, #8
fd56: bd70 pop {r4, r5, r6, pc}
lv_res_t res = LV_RES_INV;
fd58: 2000 movs r0, #0
fd5a: e7fb b.n fd54 <lv_img_decoder_read_line+0x1c>
0000fd5c <lv_img_decoder_close>:
{
fd5c: b510 push {r4, lr}
fd5e: 0004 movs r4, r0
if(dsc->decoder) {
fd60: 6800 ldr r0, [r0, #0]
fd62: 2800 cmp r0, #0
fd64: d007 beq.n fd76 <lv_img_decoder_close+0x1a>
if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
fd66: 68c3 ldr r3, [r0, #12]
fd68: 2b00 cmp r3, #0
fd6a: d001 beq.n fd70 <lv_img_decoder_close+0x14>
fd6c: 0021 movs r1, r4
fd6e: 4798 blx r3
if(dsc->src_type == LV_IMG_SRC_FILE) {
fd70: 7aa3 ldrb r3, [r4, #10]
fd72: 2b01 cmp r3, #1
fd74: d000 beq.n fd78 <lv_img_decoder_close+0x1c>
}
fd76: bd10 pop {r4, pc}
lv_mem_free(dsc->src);
fd78: 6860 ldr r0, [r4, #4]
fd7a: 4b02 ldr r3, [pc, #8] ; (fd84 <lv_img_decoder_close+0x28>)
fd7c: 4798 blx r3
dsc->src = NULL;
fd7e: 2300 movs r3, #0
fd80: 6063 str r3, [r4, #4]
}
fd82: e7f8 b.n fd76 <lv_img_decoder_close+0x1a>
fd84: 000123c9 .word 0x000123c9
0000fd88 <lv_img_decoder_create>:
{
fd88: b530 push {r4, r5, lr}
fd8a: b083 sub sp, #12
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
fd8c: 480e ldr r0, [pc, #56] ; (fdc8 <lv_img_decoder_create+0x40>)
fd8e: 4b0f ldr r3, [pc, #60] ; (fdcc <lv_img_decoder_create+0x44>)
fd90: 4798 blx r3
fd92: 0004 movs r4, r0
LV_ASSERT_MEM(decoder);
fd94: 4b0e ldr r3, [pc, #56] ; (fdd0 <lv_img_decoder_create+0x48>)
fd96: 4798 blx r3
fd98: 2800 cmp r0, #0
fd9a: d008 beq.n fdae <lv_img_decoder_create+0x26>
if(decoder == NULL) return NULL;
fd9c: 2c00 cmp r4, #0
fd9e: d003 beq.n fda8 <lv_img_decoder_create+0x20>
_lv_memset_00(decoder, sizeof(lv_img_decoder_t));
fda0: 2110 movs r1, #16
fda2: 0020 movs r0, r4
fda4: 4b0b ldr r3, [pc, #44] ; (fdd4 <lv_img_decoder_create+0x4c>)
fda6: 4798 blx r3
}
fda8: 0020 movs r0, r4
fdaa: b003 add sp, #12
fdac: bd30 pop {r4, r5, pc}
LV_ASSERT_MEM(decoder);
fdae: 4b0a ldr r3, [pc, #40] ; (fdd8 <lv_img_decoder_create+0x50>)
fdb0: 9300 str r3, [sp, #0]
fdb2: 22c9 movs r2, #201 ; 0xc9
fdb4: 4909 ldr r1, [pc, #36] ; (fddc <lv_img_decoder_create+0x54>)
fdb6: 3003 adds r0, #3
fdb8: 4d09 ldr r5, [pc, #36] ; (fde0 <lv_img_decoder_create+0x58>)
fdba: 47a8 blx r5
fdbc: 0022 movs r2, r4
fdbe: 2300 movs r3, #0
fdc0: 4808 ldr r0, [pc, #32] ; (fde4 <lv_img_decoder_create+0x5c>)
fdc2: 4909 ldr r1, [pc, #36] ; (fde8 <lv_img_decoder_create+0x60>)
fdc4: 4788 blx r1
fdc6: e7fe b.n fdc6 <lv_img_decoder_create+0x3e>
fdc8: 20004d2c .word 0x20004d2c
fdcc: 00011de5 .word 0x00011de5
fdd0: 000017ad .word 0x000017ad
fdd4: 00012975 .word 0x00012975
fdd8: 00026638 .word 0x00026638
fddc: 00026700 .word 0x00026700
fde0: 00012159 .word 0x00012159
fde4: 00025854 .word 0x00025854
fde8: 000017b5 .word 0x000017b5
0000fdec <_lv_img_decoder_init>:
{
fdec: b510 push {r4, lr}
fdee: b082 sub sp, #8
_lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t));
fdf0: 2110 movs r1, #16
fdf2: 4815 ldr r0, [pc, #84] ; (fe48 <_lv_img_decoder_init+0x5c>)
fdf4: 4b15 ldr r3, [pc, #84] ; (fe4c <_lv_img_decoder_init+0x60>)
fdf6: 4798 blx r3
decoder = lv_img_decoder_create();
fdf8: 4b15 ldr r3, [pc, #84] ; (fe50 <_lv_img_decoder_init+0x64>)
fdfa: 4798 blx r3
if(decoder == NULL) {
fdfc: 2800 cmp r0, #0
fdfe: d009 beq.n fe14 <_lv_img_decoder_init+0x28>
decoder->info_cb = info_cb;
fe00: 4b14 ldr r3, [pc, #80] ; (fe54 <_lv_img_decoder_init+0x68>)
fe02: 6003 str r3, [r0, #0]
decoder->open_cb = open_cb;
fe04: 4b14 ldr r3, [pc, #80] ; (fe58 <_lv_img_decoder_init+0x6c>)
fe06: 6043 str r3, [r0, #4]
decoder->read_line_cb = read_line_cb;
fe08: 4b14 ldr r3, [pc, #80] ; (fe5c <_lv_img_decoder_init+0x70>)
fe0a: 6083 str r3, [r0, #8]
decoder->close_cb = close_cb;
fe0c: 4b14 ldr r3, [pc, #80] ; (fe60 <_lv_img_decoder_init+0x74>)
fe0e: 60c3 str r3, [r0, #12]
}
fe10: b002 add sp, #8
fe12: bd10 pop {r4, pc}
LV_LOG_WARN("lv_img_decoder_init: out of memory");
fe14: 4b13 ldr r3, [pc, #76] ; (fe64 <_lv_img_decoder_init+0x78>)
fe16: 9300 str r3, [sp, #0]
fe18: 4b13 ldr r3, [pc, #76] ; (fe68 <_lv_img_decoder_init+0x7c>)
fe1a: 2247 movs r2, #71 ; 0x47
fe1c: 4913 ldr r1, [pc, #76] ; (fe6c <_lv_img_decoder_init+0x80>)
fe1e: 3002 adds r0, #2
fe20: 4c13 ldr r4, [pc, #76] ; (fe70 <_lv_img_decoder_init+0x84>)
fe22: 47a0 blx r4
LV_ASSERT_MEM(decoder);
fe24: 2000 movs r0, #0
fe26: 4b13 ldr r3, [pc, #76] ; (fe74 <_lv_img_decoder_init+0x88>)
fe28: 4798 blx r3
fe2a: 2800 cmp r0, #0
fe2c: d1f0 bne.n fe10 <_lv_img_decoder_init+0x24>
fe2e: 4b0e ldr r3, [pc, #56] ; (fe68 <_lv_img_decoder_init+0x7c>)
fe30: 9300 str r3, [sp, #0]
fe32: 2248 movs r2, #72 ; 0x48
fe34: 490d ldr r1, [pc, #52] ; (fe6c <_lv_img_decoder_init+0x80>)
fe36: 3003 adds r0, #3
fe38: 4c0d ldr r4, [pc, #52] ; (fe70 <_lv_img_decoder_init+0x84>)
fe3a: 47a0 blx r4
fe3c: 2200 movs r2, #0
fe3e: 2300 movs r3, #0
fe40: 480d ldr r0, [pc, #52] ; (fe78 <_lv_img_decoder_init+0x8c>)
fe42: 490e ldr r1, [pc, #56] ; (fe7c <_lv_img_decoder_init+0x90>)
fe44: 4788 blx r1
fe46: e7fe b.n fe46 <_lv_img_decoder_init+0x5a>
fe48: 20004d2c .word 0x20004d2c
fe4c: 00011dd1 .word 0x00011dd1
fe50: 0000fd89 .word 0x0000fd89
fe54: 0000f269 .word 0x0000f269
fe58: 0000f3c1 .word 0x0000f3c1
fe5c: 0000f7a5 .word 0x0000f7a5
fe60: 0000f37d .word 0x0000f37d
fe64: 000266dc .word 0x000266dc
fe68: 00026620 .word 0x00026620
fe6c: 00026700 .word 0x00026700
fe70: 00012159 .word 0x00012159
fe74: 000017ad .word 0x000017ad
fe78: 00025854 .word 0x00025854
fe7c: 000017b5 .word 0x000017b5
0000fe80 <lv_font_get_glyph_bitmap>:
* @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)
{
fe80: b510 push {r4, lr}
return font_p->get_glyph_bitmap(font_p, letter);
fe82: 6843 ldr r3, [r0, #4]
fe84: 4798 blx r3
}
fe86: bd10 pop {r4, pc}
0000fe88 <lv_font_get_glyph_dsc>:
* @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)
{
fe88: b510 push {r4, lr}
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
fe8a: 6804 ldr r4, [r0, #0]
fe8c: 47a0 blx r4
}
fe8e: bd10 pop {r4, pc}
0000fe90 <lv_font_get_glyph_width>:
* @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)
{
fe90: b510 push {r4, lr}
fe92: b084 sub sp, #16
fe94: 0013 movs r3, r2
lv_font_glyph_dsc_t g;
bool ret;
ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next);
fe96: 000a movs r2, r1
fe98: a901 add r1, sp, #4
fe9a: 4c05 ldr r4, [pc, #20] ; (feb0 <lv_font_get_glyph_width+0x20>)
fe9c: 47a0 blx r4
if(ret) return g.adv_w;
else return 0;
fe9e: 2300 movs r3, #0
if(ret) return g.adv_w;
fea0: 2800 cmp r0, #0
fea2: d001 beq.n fea8 <lv_font_get_glyph_width+0x18>
fea4: ab01 add r3, sp, #4
fea6: 881b ldrh r3, [r3, #0]
}
fea8: 0018 movs r0, r3
feaa: b004 add sp, #16
feac: bd10 pop {r4, pc}
feae: 46c0 nop ; (mov r8, r8)
feb0: 0000fe89 .word 0x0000fe89
0000feb4 <kern_pair_8_compare>:
{
const uint8_t * ref8_p = ref;
const uint8_t * element8_p = element;
/*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];
feb4: 7803 ldrb r3, [r0, #0]
feb6: 780a ldrb r2, [r1, #0]
feb8: 4293 cmp r3, r2
feba: d001 beq.n fec0 <kern_pair_8_compare+0xc>
febc: 1a98 subs r0, r3, r2
else return (int32_t) ref8_p[1] - element8_p[1];
}
febe: 4770 bx lr
else return (int32_t) ref8_p[1] - element8_p[1];
fec0: 7840 ldrb r0, [r0, #1]
fec2: 784b ldrb r3, [r1, #1]
fec4: 1ac0 subs r0, r0, r3
fec6: e7fa b.n febe <kern_pair_8_compare+0xa>
0000fec8 <kern_pair_16_compare>:
{
const uint16_t * ref16_p = ref;
const uint16_t * element16_p = element;
/*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];
fec8: 8803 ldrh r3, [r0, #0]
feca: 880a ldrh r2, [r1, #0]
fecc: 4293 cmp r3, r2
fece: d001 beq.n fed4 <kern_pair_16_compare+0xc>
fed0: 1a98 subs r0, r3, r2
else return (int32_t) ref16_p[1] - element16_p[1];
}
fed2: 4770 bx lr
else return (int32_t) ref16_p[1] - element16_p[1];
fed4: 8840 ldrh r0, [r0, #2]
fed6: 884b ldrh r3, [r1, #2]
fed8: 1ac0 subs r0, r0, r3
feda: e7fa b.n fed2 <kern_pair_16_compare+0xa>
0000fedc <unicode_list_compare>:
* @retval > 0 Reference is less than element.
*
*/
static int32_t unicode_list_compare(const void * ref, const void * element)
{
return ((int32_t)(*(uint16_t *)ref)) - ((int32_t)(*(uint16_t *)element));
fedc: 8800 ldrh r0, [r0, #0]
fede: 880b ldrh r3, [r1, #0]
fee0: 1ac0 subs r0, r0, r3
}
fee2: 4770 bx lr
0000fee4 <get_glyph_dsc_id>:
{
fee4: b5f0 push {r4, r5, r6, r7, lr}
fee6: b087 sub sp, #28
fee8: 000c movs r4, r1
if(letter == '\0') return 0;
feea: 1e0b subs r3, r1, #0
feec: d018 beq.n ff20 <get_glyph_dsc_id+0x3c>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
feee: 6906 ldr r6, [r0, #16]
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
fef0: 69b3 ldr r3, [r6, #24]
fef2: 4299 cmp r1, r3
fef4: d017 beq.n ff26 <get_glyph_dsc_id+0x42>
for(i = 0; i < fdsc->cmap_num; i++) {
fef6: 8a72 ldrh r2, [r6, #18]
fef8: 0592 lsls r2, r2, #22
fefa: 0d92 lsrs r2, r2, #22
fefc: 2a00 cmp r2, #0
fefe: dd62 ble.n ffc6 <get_glyph_dsc_id+0xe2>
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
ff00: 68b7 ldr r7, [r6, #8]
ff02: 683b ldr r3, [r7, #0]
ff04: 1ac8 subs r0, r1, r3
ff06: 9005 str r0, [sp, #20]
if(rcp > fdsc->cmaps[i].range_length) continue;
ff08: 88bb ldrh r3, [r7, #4]
ff0a: 4298 cmp r0, r3
ff0c: d80d bhi.n ff2a <get_glyph_dsc_id+0x46>
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
ff0e: 2300 movs r3, #0
ff10: 9303 str r3, [sp, #12]
if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) {
ff12: 7cba ldrb r2, [r7, #18]
ff14: 2a00 cmp r2, #0
ff16: d11a bne.n ff4e <get_glyph_dsc_id+0x6a>
glyph_id = fdsc->cmaps[i].glyph_id_start + rcp;
ff18: 88fb ldrh r3, [r7, #6]
ff1a: 181b adds r3, r3, r0
fdsc->last_letter = letter;
ff1c: 61b4 str r4, [r6, #24]
fdsc->last_glyph_id = glyph_id;
ff1e: 61f3 str r3, [r6, #28]
}
ff20: 0018 movs r0, r3
ff22: b007 add sp, #28
ff24: bdf0 pop {r4, r5, r6, r7, pc}
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
ff26: 69f3 ldr r3, [r6, #28]
ff28: e7fa b.n ff20 <get_glyph_dsc_id+0x3c>
if(rcp > fdsc->cmaps[i].range_length) continue;
ff2a: 2100 movs r1, #0
for(i = 0; i < fdsc->cmap_num; i++) {
ff2c: 3101 adds r1, #1
ff2e: b289 uxth r1, r1
ff30: 4291 cmp r1, r2
ff32: da48 bge.n ffc6 <get_glyph_dsc_id+0xe2>
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
ff34: 008b lsls r3, r1, #2
ff36: 185b adds r3, r3, r1
ff38: 009b lsls r3, r3, #2
ff3a: 9303 str r3, [sp, #12]
ff3c: 18fb adds r3, r7, r3
ff3e: 6818 ldr r0, [r3, #0]
ff40: 1a20 subs r0, r4, r0
ff42: 9005 str r0, [sp, #20]
if(rcp > fdsc->cmaps[i].range_length) continue;
ff44: 889d ldrh r5, [r3, #4]
ff46: 42a8 cmp r0, r5
ff48: d8f0 bhi.n ff2c <get_glyph_dsc_id+0x48>
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
ff4a: 001f movs r7, r3
ff4c: e7e1 b.n ff12 <get_glyph_dsc_id+0x2e>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) {
ff4e: 2a01 cmp r2, #1
ff50: d01b beq.n ff8a <get_glyph_dsc_id+0xa6>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) {
ff52: 2a02 cmp r2, #2
ff54: d01e beq.n ff94 <get_glyph_dsc_id+0xb0>
uint32_t glyph_id = 0;
ff56: 2300 movs r3, #0
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) {
ff58: 2a03 cmp r2, #3
ff5a: d1df bne.n ff1c <get_glyph_dsc_id+0x38>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
ff5c: 8a3a ldrh r2, [r7, #16]
ff5e: 68b9 ldr r1, [r7, #8]
ff60: 4b1b ldr r3, [pc, #108] ; (ffd0 <get_glyph_dsc_id+0xec>)
ff62: 9300 str r3, [sp, #0]
ff64: 2302 movs r3, #2
ff66: a805 add r0, sp, #20
ff68: 4f1a ldr r7, [pc, #104] ; (ffd4 <get_glyph_dsc_id+0xf0>)
ff6a: 47b8 blx r7
if(p) {
ff6c: 2800 cmp r0, #0
ff6e: d028 beq.n ffc2 <get_glyph_dsc_id+0xde>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
ff70: 9b03 ldr r3, [sp, #12]
ff72: 68b2 ldr r2, [r6, #8]
ff74: 4694 mov ip, r2
ff76: 4463 add r3, ip
ff78: 001d movs r5, r3
ff7a: 689b ldr r3, [r3, #8]
ff7c: 1ac0 subs r0, r0, r3
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
ff7e: 0840 lsrs r0, r0, #1
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
ff80: 68eb ldr r3, [r5, #12]
ff82: 5c18 ldrb r0, [r3, r0]
ff84: 88eb ldrh r3, [r5, #6]
ff86: 18c3 adds r3, r0, r3
ff88: e7c8 b.n ff1c <get_glyph_dsc_id+0x38>
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp];
ff8a: 68fb ldr r3, [r7, #12]
ff8c: 5c18 ldrb r0, [r3, r0]
ff8e: 88fb ldrh r3, [r7, #6]
ff90: 18c3 adds r3, r0, r3
ff92: e7c3 b.n ff1c <get_glyph_dsc_id+0x38>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
ff94: 8a3a ldrh r2, [r7, #16]
ff96: 68b9 ldr r1, [r7, #8]
ff98: 4b0d ldr r3, [pc, #52] ; (ffd0 <get_glyph_dsc_id+0xec>)
ff9a: 9300 str r3, [sp, #0]
ff9c: 2302 movs r3, #2
ff9e: a805 add r0, sp, #20
ffa0: 4f0c ldr r7, [pc, #48] ; (ffd4 <get_glyph_dsc_id+0xf0>)
ffa2: 47b8 blx r7
if(p) {
ffa4: 2800 cmp r0, #0
ffa6: d00a beq.n ffbe <get_glyph_dsc_id+0xda>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
ffa8: 9b03 ldr r3, [sp, #12]
ffaa: 68b2 ldr r2, [r6, #8]
ffac: 4694 mov ip, r2
ffae: 4463 add r3, ip
ffb0: 001d movs r5, r3
ffb2: 689b ldr r3, [r3, #8]
ffb4: 1ac0 subs r0, r0, r3
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
ffb6: 0840 lsrs r0, r0, #1
glyph_id = fdsc->cmaps[i].glyph_id_start + ofs;
ffb8: 88eb ldrh r3, [r5, #6]
ffba: 18c3 adds r3, r0, r3
ffbc: e7ae b.n ff1c <get_glyph_dsc_id+0x38>
uint32_t glyph_id = 0;
ffbe: 2300 movs r3, #0
ffc0: e7ac b.n ff1c <get_glyph_dsc_id+0x38>
ffc2: 2300 movs r3, #0
ffc4: e7aa b.n ff1c <get_glyph_dsc_id+0x38>
fdsc->last_letter = letter;
ffc6: 61b4 str r4, [r6, #24]
fdsc->last_glyph_id = 0;
ffc8: 2300 movs r3, #0
ffca: 61f3 str r3, [r6, #28]
return 0;
ffcc: e7a8 b.n ff20 <get_glyph_dsc_id+0x3c>
ffce: 46c0 nop ; (mov r8, r8)
ffd0: 0000fedd .word 0x0000fedd
ffd4: 0001406d .word 0x0001406d
0000ffd8 <lv_font_get_bitmap_fmt_txt>:
{
ffd8: b5f0 push {r4, r5, r6, r7, lr}
ffda: 46de mov lr, fp
ffdc: 4657 mov r7, sl
ffde: 464e mov r6, r9
ffe0: 4645 mov r5, r8
ffe2: b5e0 push {r5, r6, r7, lr}
ffe4: b09b sub sp, #108 ; 0x6c
if(unicode_letter == '\t') unicode_letter = ' ';
ffe6: 2909 cmp r1, #9
ffe8: d01c beq.n 10024 <lv_font_get_bitmap_fmt_txt+0x4c>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
ffea: 6905 ldr r5, [r0, #16]
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
ffec: 4bd0 ldr r3, [pc, #832] ; (10330 <lv_font_get_bitmap_fmt_txt+0x358>)
ffee: 4798 blx r3
if(!gid) return NULL;
fff0: 2800 cmp r0, #0
fff2: d101 bne.n fff8 <lv_font_get_bitmap_fmt_txt+0x20>
fff4: f000 fce7 bl 109c6 <lv_font_get_bitmap_fmt_txt+0x9ee>
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
fff8: 00c0 lsls r0, r0, #3
fffa: 686b ldr r3, [r5, #4]
fffc: 181e adds r6, r3, r0
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
fffe: 7d2b ldrb r3, [r5, #20]
10000: 079b lsls r3, r3, #30
10002: d111 bne.n 10028 <lv_font_get_bitmap_fmt_txt+0x50>
if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index];
10004: 2e00 cmp r6, #0
10006: d101 bne.n 1000c <lv_font_get_bitmap_fmt_txt+0x34>
10008: f000 fce0 bl 109cc <lv_font_get_bitmap_fmt_txt+0x9f4>
1000c: 6830 ldr r0, [r6, #0]
1000e: 0300 lsls r0, r0, #12
10010: 0b03 lsrs r3, r0, #12
10012: 6828 ldr r0, [r5, #0]
10014: 18c0 adds r0, r0, r3
}
10016: b01b add sp, #108 ; 0x6c
10018: bc3c pop {r2, r3, r4, r5}
1001a: 4690 mov r8, r2
1001c: 4699 mov r9, r3
1001e: 46a2 mov sl, r4
10020: 46ab mov fp, r5
10022: bdf0 pop {r4, r5, r6, r7, pc}
if(unicode_letter == '\t') unicode_letter = ' ';
10024: 3117 adds r1, #23
10026: e7e0 b.n ffea <lv_font_get_bitmap_fmt_txt+0x12>
uint32_t gsize = gdsc->box_w * gdsc->box_h;
10028: 7933 ldrb r3, [r6, #4]
1002a: 7974 ldrb r4, [r6, #5]
1002c: 435c muls r4, r3
if(gsize == 0) return NULL;
1002e: 2c00 cmp r4, #0
10030: d101 bne.n 10036 <lv_font_get_bitmap_fmt_txt+0x5e>
10032: f000 fcce bl 109d2 <lv_font_get_bitmap_fmt_txt+0x9fa>
switch(fdsc->bpp) {
10036: 7ceb ldrb r3, [r5, #19]
10038: 069b lsls r3, r3, #26
1003a: 0f1b lsrs r3, r3, #28
1003c: b2da uxtb r2, r3
1003e: 2a02 cmp r2, #2
10040: d100 bne.n 10044 <lv_font_get_bitmap_fmt_txt+0x6c>
10042: e08d b.n 10160 <lv_font_get_bitmap_fmt_txt+0x188>
10044: d908 bls.n 10058 <lv_font_get_bitmap_fmt_txt+0x80>
10046: b2da uxtb r2, r3
10048: 2a03 cmp r2, #3
1004a: d100 bne.n 1004e <lv_font_get_bitmap_fmt_txt+0x76>
1004c: e08b b.n 10166 <lv_font_get_bitmap_fmt_txt+0x18e>
1004e: 2a04 cmp r2, #4
10050: d104 bne.n 1005c <lv_font_get_bitmap_fmt_txt+0x84>
buf_size = (gsize + 1) >> 1;
10052: 3401 adds r4, #1
10054: 0864 lsrs r4, r4, #1
break;
10056: e001 b.n 1005c <lv_font_get_bitmap_fmt_txt+0x84>
switch(fdsc->bpp) {
10058: 2a01 cmp r2, #1
1005a: d07e beq.n 1015a <lv_font_get_bitmap_fmt_txt+0x182>
if(_lv_mem_get_size(decompr_buf) < buf_size) {
1005c: 4bb5 ldr r3, [pc, #724] ; (10334 <lv_font_get_bitmap_fmt_txt+0x35c>)
1005e: 6818 ldr r0, [r3, #0]
10060: 4bb5 ldr r3, [pc, #724] ; (10338 <lv_font_get_bitmap_fmt_txt+0x360>)
10062: 4798 blx r3
10064: 4284 cmp r4, r0
10066: d90f bls.n 10088 <lv_font_get_bitmap_fmt_txt+0xb0>
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
10068: 4fb2 ldr r7, [pc, #712] ; (10334 <lv_font_get_bitmap_fmt_txt+0x35c>)
1006a: 0021 movs r1, r4
1006c: 6838 ldr r0, [r7, #0]
1006e: 4bb3 ldr r3, [pc, #716] ; (1033c <lv_font_get_bitmap_fmt_txt+0x364>)
10070: 4798 blx r3
10072: 6038 str r0, [r7, #0]
LV_ASSERT_MEM(decompr_buf);
10074: 4bb2 ldr r3, [pc, #712] ; (10340 <lv_font_get_bitmap_fmt_txt+0x368>)
10076: 4798 blx r3
10078: 2800 cmp r0, #0
1007a: d077 beq.n 1016c <lv_font_get_bitmap_fmt_txt+0x194>
if(decompr_buf == NULL) return NULL;
1007c: 4bad ldr r3, [pc, #692] ; (10334 <lv_font_get_bitmap_fmt_txt+0x35c>)
1007e: 681b ldr r3, [r3, #0]
10080: 2b00 cmp r3, #0
10082: d101 bne.n 10088 <lv_font_get_bitmap_fmt_txt+0xb0>
10084: f000 fca8 bl 109d8 <lv_font_get_bitmap_fmt_txt+0xa00>
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
10088: 6833 ldr r3, [r6, #0]
1008a: 031b lsls r3, r3, #12
1008c: 0b1b lsrs r3, r3, #12
1008e: 682a ldr r2, [r5, #0]
10090: 18d2 adds r2, r2, r3
10092: 4ba8 ldr r3, [pc, #672] ; (10334 <lv_font_get_bitmap_fmt_txt+0x35c>)
10094: 681b ldr r3, [r3, #0]
10096: 9305 str r3, [sp, #20]
10098: 7933 ldrb r3, [r6, #4]
1009a: 930f str r3, [sp, #60] ; 0x3c
1009c: b21b sxth r3, r3
1009e: 9313 str r3, [sp, #76] ; 0x4c
100a0: 7973 ldrb r3, [r6, #5]
100a2: 9312 str r3, [sp, #72] ; 0x48
100a4: b21b sxth r3, r3
100a6: 9310 str r3, [sp, #64] ; 0x40
100a8: 7ceb ldrb r3, [r5, #19]
100aa: 069b lsls r3, r3, #26
100ac: 0f1b lsrs r3, r3, #28
100ae: b2d9 uxtb r1, r3
100b0: 9102 str r1, [sp, #8]
uint8_t wr_size = bpp;
100b2: 9108 str r1, [sp, #32]
if(bpp == 3) wr_size = 4;
100b4: 2903 cmp r1, #3
100b6: d067 beq.n 10188 <lv_font_get_bitmap_fmt_txt+0x1b0>
rle_in = in;
100b8: 49a2 ldr r1, [pc, #648] ; (10344 <lv_font_get_bitmap_fmt_txt+0x36c>)
100ba: 600a str r2, [r1, #0]
rle_bpp = bpp;
100bc: 4aa2 ldr r2, [pc, #648] ; (10348 <lv_font_get_bitmap_fmt_txt+0x370>)
100be: 7013 strb r3, [r2, #0]
rle_state = RLE_STATE_SINGLE;
100c0: 2300 movs r3, #0
100c2: 4aa2 ldr r2, [pc, #648] ; (1034c <lv_font_get_bitmap_fmt_txt+0x374>)
100c4: 7013 strb r3, [r2, #0]
rle_rdp = 0;
100c6: 4aa2 ldr r2, [pc, #648] ; (10350 <lv_font_get_bitmap_fmt_txt+0x378>)
100c8: 6013 str r3, [r2, #0]
rle_prev_v = 0;
100ca: 4aa2 ldr r2, [pc, #648] ; (10354 <lv_font_get_bitmap_fmt_txt+0x37c>)
100cc: 7013 strb r3, [r2, #0]
rle_cnt = 0;
100ce: 4aa2 ldr r2, [pc, #648] ; (10358 <lv_font_get_bitmap_fmt_txt+0x380>)
100d0: 7013 strb r3, [r2, #0]
uint8_t * line_buf1 = _lv_mem_buf_get(w);
100d2: 9f0f ldr r7, [sp, #60] ; 0x3c
100d4: 0038 movs r0, r7
100d6: 4ca1 ldr r4, [pc, #644] ; (1035c <lv_font_get_bitmap_fmt_txt+0x384>)
100d8: 47a0 blx r4
100da: 0005 movs r5, r0
100dc: 9019 str r0, [sp, #100] ; 0x64
uint8_t * line_buf2 = _lv_mem_buf_get(w);
100de: 0038 movs r0, r7
100e0: 47a0 blx r4
100e2: 9003 str r0, [sp, #12]
for(i = 0; i < w; i++) {
100e4: 9b13 ldr r3, [sp, #76] ; 0x4c
100e6: 2b00 cmp r3, #0
100e8: dc00 bgt.n 100ec <lv_font_get_bitmap_fmt_txt+0x114>
100ea: e26a b.n 105c2 <lv_font_get_bitmap_fmt_txt+0x5ea>
100ec: 4b99 ldr r3, [pc, #612] ; (10354 <lv_font_get_bitmap_fmt_txt+0x37c>)
100ee: 781b ldrb r3, [r3, #0]
100f0: 9304 str r3, [sp, #16]
100f2: 4b99 ldr r3, [pc, #612] ; (10358 <lv_font_get_bitmap_fmt_txt+0x380>)
100f4: 781b ldrb r3, [r3, #0]
100f6: 469a mov sl, r3
ret = get_bits(rle_in, rle_rdp, rle_bpp);
100f8: 4b92 ldr r3, [pc, #584] ; (10344 <lv_font_get_bitmap_fmt_txt+0x36c>)
100fa: 681e ldr r6, [r3, #0]
100fc: 4b94 ldr r3, [pc, #592] ; (10350 <lv_font_get_bitmap_fmt_txt+0x378>)
100fe: 6818 ldr r0, [r3, #0]
10100: 4b91 ldr r3, [pc, #580] ; (10348 <lv_font_get_bitmap_fmt_txt+0x370>)
10102: 781b ldrb r3, [r3, #0]
10104: 4699 mov r9, r3
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
10106: 2301 movs r3, #1
10108: 4649 mov r1, r9
1010a: 408b lsls r3, r1
1010c: 3b01 subs r3, #1
1010e: b2db uxtb r3, r3
10110: 930d str r3, [sp, #52] ; 0x34
10112: 2308 movs r3, #8
10114: 1a5b subs r3, r3, r1
10116: 930e str r3, [sp, #56] ; 0x38
10118: 2310 movs r3, #16
1011a: 1a5b subs r3, r3, r1
1011c: 930c str r3, [sp, #48] ; 0x30
1011e: 4b8b ldr r3, [pc, #556] ; (1034c <lv_font_get_bitmap_fmt_txt+0x374>)
10120: 781b ldrb r3, [r3, #0]
10122: 469c mov ip, r3
10124: 002c movs r4, r5
10126: 003b movs r3, r7
10128: 3b01 subs r3, #1
1012a: b29b uxth r3, r3
1012c: 3301 adds r3, #1
1012e: 9311 str r3, [sp, #68] ; 0x44
10130: 002a movs r2, r5
10132: 469b mov fp, r3
10134: 445a add r2, fp
10136: 920b str r2, [sp, #44] ; 0x2c
if(bit_pos + len >= 8) {
10138: 2300 movs r3, #0
1013a: 9307 str r3, [sp, #28]
1013c: 930a str r3, [sp, #40] ; 0x28
1013e: 2100 movs r1, #0
10140: 9309 str r3, [sp, #36] ; 0x24
switch(len) {
10142: 464b mov r3, r9
10144: 009b lsls r3, r3, #2
10146: 469b mov fp, r3
10148: 4b85 ldr r3, [pc, #532] ; (10360 <lv_font_get_bitmap_fmt_txt+0x388>)
1014a: 445b add r3, fp
1014c: 9314 str r3, [sp, #80] ; 0x50
1014e: 4653 mov r3, sl
10150: 9306 str r3, [sp, #24]
10152: 46a8 mov r8, r5
10154: 4667 mov r7, ip
10156: 464d mov r5, r9
10158: e038 b.n 101cc <lv_font_get_bitmap_fmt_txt+0x1f4>
buf_size = (gsize + 7) >> 3;
1015a: 3407 adds r4, #7
1015c: 08e4 lsrs r4, r4, #3
break;
1015e: e77d b.n 1005c <lv_font_get_bitmap_fmt_txt+0x84>
buf_size = (gsize + 3) >> 2;
10160: 3403 adds r4, #3
10162: 08a4 lsrs r4, r4, #2
break;
10164: e77a b.n 1005c <lv_font_get_bitmap_fmt_txt+0x84>
buf_size = (gsize + 1) >> 1;
10166: 3401 adds r4, #1
10168: 0864 lsrs r4, r4, #1
break;
1016a: e777 b.n 1005c <lv_font_get_bitmap_fmt_txt+0x84>
LV_ASSERT_MEM(decompr_buf);
1016c: 4b7d ldr r3, [pc, #500] ; (10364 <lv_font_get_bitmap_fmt_txt+0x38c>)
1016e: 9300 str r3, [sp, #0]
10170: 2272 movs r2, #114 ; 0x72
10172: 497d ldr r1, [pc, #500] ; (10368 <lv_font_get_bitmap_fmt_txt+0x390>)
10174: 3003 adds r0, #3
10176: 4c7d ldr r4, [pc, #500] ; (1036c <lv_font_get_bitmap_fmt_txt+0x394>)
10178: 47a0 blx r4
1017a: 4b6e ldr r3, [pc, #440] ; (10334 <lv_font_get_bitmap_fmt_txt+0x35c>)
1017c: 681a ldr r2, [r3, #0]
1017e: 2300 movs r3, #0
10180: 487b ldr r0, [pc, #492] ; (10370 <lv_font_get_bitmap_fmt_txt+0x398>)
10182: 497c ldr r1, [pc, #496] ; (10374 <lv_font_get_bitmap_fmt_txt+0x39c>)
10184: 4788 blx r1
10186: e7fe b.n 10186 <lv_font_get_bitmap_fmt_txt+0x1ae>
if(bpp == 3) wr_size = 4;
10188: 3101 adds r1, #1
1018a: 9108 str r1, [sp, #32]
1018c: e794 b.n 100b8 <lv_font_get_bitmap_fmt_txt+0xe0>
bit_mask = 0x3;
1018e: 2303 movs r3, #3
10190: 469c mov ip, r3
uint32_t byte_pos = bit_pos >> 3;
10192: 08c3 lsrs r3, r0, #3
bit_pos = bit_pos & 0x7;
10194: 2107 movs r1, #7
10196: 4001 ands r1, r0
if(bit_pos + len >= 8) {
10198: 194a adds r2, r1, r5
1019a: 2a07 cmp r2, #7
1019c: d82f bhi.n 101fe <lv_font_get_bitmap_fmt_txt+0x226>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
1019e: 5cf3 ldrb r3, [r6, r3]
101a0: 9a0e ldr r2, [sp, #56] ; 0x38
101a2: 1a51 subs r1, r2, r1
101a4: 410b asrs r3, r1
101a6: 4662 mov r2, ip
101a8: 401a ands r2, r3
101aa: 0013 movs r3, r2
if(rle_rdp != 0 && rle_prev_v == ret) {
101ac: 2800 cmp r0, #0
101ae: d002 beq.n 101b6 <lv_font_get_bitmap_fmt_txt+0x1de>
101b0: 9a04 ldr r2, [sp, #16]
101b2: 4293 cmp r3, r2
101b4: d031 beq.n 1021a <lv_font_get_bitmap_fmt_txt+0x242>
rle_rdp += rle_bpp;
101b6: 1940 adds r0, r0, r5
rle_prev_v = ret;
101b8: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
101ba: 2101 movs r1, #1
101bc: 2201 movs r2, #1
101be: 9209 str r2, [sp, #36] ; 0x24
out[i] = rle_next();
101c0: 7023 strb r3, [r4, #0]
101c2: 3401 adds r4, #1
for(i = 0; i < w; i++) {
101c4: 9b0b ldr r3, [sp, #44] ; 0x2c
101c6: 429c cmp r4, r3
101c8: d100 bne.n 101cc <lv_font_get_bitmap_fmt_txt+0x1f4>
101ca: e150 b.n 1046e <lv_font_get_bitmap_fmt_txt+0x496>
if(rle_state == RLE_STATE_SINGLE) {
101cc: 2f00 cmp r7, #0
101ce: d12c bne.n 1022a <lv_font_get_bitmap_fmt_txt+0x252>
switch(len) {
101d0: 464b mov r3, r9
101d2: 2b08 cmp r3, #8
101d4: d80d bhi.n 101f2 <lv_font_get_bitmap_fmt_txt+0x21a>
101d6: 4b68 ldr r3, [pc, #416] ; (10378 <lv_font_get_bitmap_fmt_txt+0x3a0>)
101d8: 465a mov r2, fp
101da: 589b ldr r3, [r3, r2]
101dc: 9309 str r3, [sp, #36] ; 0x24
101de: 469f mov pc, r3
bit_mask = 0x7;
101e0: 2307 movs r3, #7
101e2: 469c mov ip, r3
101e4: e7d5 b.n 10192 <lv_font_get_bitmap_fmt_txt+0x1ba>
bit_mask = 0xF;
101e6: 230f movs r3, #15
101e8: 469c mov ip, r3
101ea: e7d2 b.n 10192 <lv_font_get_bitmap_fmt_txt+0x1ba>
bit_mask = 0xFF;
101ec: 23ff movs r3, #255 ; 0xff
101ee: 469c mov ip, r3
101f0: e7cf b.n 10192 <lv_font_get_bitmap_fmt_txt+0x1ba>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
101f2: 9b0d ldr r3, [sp, #52] ; 0x34
101f4: 469c mov ip, r3
101f6: e7cc b.n 10192 <lv_font_get_bitmap_fmt_txt+0x1ba>
bit_mask = 0x1;
101f8: 2301 movs r3, #1
101fa: 469c mov ip, r3
101fc: e7c9 b.n 10192 <lv_font_get_bitmap_fmt_txt+0x1ba>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
101fe: 5cf2 ldrb r2, [r6, r3]
10200: 0212 lsls r2, r2, #8
10202: 4692 mov sl, r2
10204: 18f3 adds r3, r6, r3
10206: 785b ldrb r3, [r3, #1]
10208: 4453 add r3, sl
return (in16 >> (16 - bit_pos - len)) & bit_mask;
1020a: b29b uxth r3, r3
1020c: 9a0c ldr r2, [sp, #48] ; 0x30
1020e: 1a51 subs r1, r2, r1
10210: 410b asrs r3, r1
10212: 4662 mov r2, ip
10214: 401a ands r2, r3
10216: 0013 movs r3, r2
10218: e7c8 b.n 101ac <lv_font_get_bitmap_fmt_txt+0x1d4>
if(rle_rdp != 0 && rle_prev_v == ret) {
1021a: 2201 movs r2, #1
1021c: 9207 str r2, [sp, #28]
rle_cnt = 0;
1021e: 2200 movs r2, #0
10220: 9206 str r2, [sp, #24]
if(rle_rdp != 0 && rle_prev_v == ret) {
10222: 3201 adds r2, #1
10224: 920a str r2, [sp, #40] ; 0x28
rle_state = RLE_STATE_REPEATE;
10226: 2701 movs r7, #1
10228: e7c5 b.n 101b6 <lv_font_get_bitmap_fmt_txt+0x1de>
else if(rle_state == RLE_STATE_REPEATE) {
1022a: 2f01 cmp r7, #1
1022c: d011 beq.n 10252 <lv_font_get_bitmap_fmt_txt+0x27a>
uint8_t ret = 0;
1022e: 2300 movs r3, #0
else if(rle_state == RLE_STATE_COUNTER) {
10230: 2f02 cmp r7, #2
10232: d1c5 bne.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
rle_cnt--;
10234: 9a06 ldr r2, [sp, #24]
10236: 3a01 subs r2, #1
10238: b2d3 uxtb r3, r2
1023a: 9306 str r3, [sp, #24]
if(rle_cnt == 0) {
1023c: 2b00 cmp r3, #0
1023e: d000 beq.n 10242 <lv_font_get_bitmap_fmt_txt+0x26a>
10240: e111 b.n 10466 <lv_font_get_bitmap_fmt_txt+0x48e>
switch(len) {
10242: 464b mov r3, r9
10244: 2b08 cmp r3, #8
10246: d900 bls.n 1024a <lv_font_get_bitmap_fmt_txt+0x272>
10248: e0f6 b.n 10438 <lv_font_get_bitmap_fmt_txt+0x460>
1024a: 9b14 ldr r3, [sp, #80] ; 0x50
1024c: 681b ldr r3, [r3, #0]
1024e: 9304 str r3, [sp, #16]
10250: 469f mov pc, r3
uint32_t byte_pos = bit_pos >> 3;
10252: 08c3 lsrs r3, r0, #3
bit_pos = bit_pos & 0x7;
10254: 2107 movs r1, #7
10256: 4001 ands r1, r0
if(bit_pos + len >= 8) {
10258: 1c4a adds r2, r1, #1
1025a: 2a07 cmp r2, #7
1025c: d815 bhi.n 1028a <lv_font_get_bitmap_fmt_txt+0x2b2>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
1025e: 5cf3 ldrb r3, [r6, r3]
10260: 43c9 mvns r1, r1
10262: 3108 adds r1, #8
10264: 410b asrs r3, r1
10266: 2201 movs r2, #1
10268: 4013 ands r3, r2
rle_cnt++;
1026a: 9a06 ldr r2, [sp, #24]
1026c: 3201 adds r2, #1
1026e: b2d2 uxtb r2, r2
10270: 9206 str r2, [sp, #24]
rle_rdp += 1;
10272: 1c41 adds r1, r0, #1
if(v == 1) {
10274: 2b01 cmp r3, #1
10276: d015 beq.n 102a4 <lv_font_get_bitmap_fmt_txt+0x2cc>
switch(len) {
10278: 464b mov r3, r9
1027a: 2b08 cmp r3, #8
1027c: d900 bls.n 10280 <lv_font_get_bitmap_fmt_txt+0x2a8>
1027e: e0b0 b.n 103e2 <lv_font_get_bitmap_fmt_txt+0x40a>
10280: 4b3e ldr r3, [pc, #248] ; (1037c <lv_font_get_bitmap_fmt_txt+0x3a4>)
10282: 465a mov r2, fp
10284: 589b ldr r3, [r3, r2]
10286: 9304 str r3, [sp, #16]
10288: 469f mov pc, r3
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
1028a: 5cf2 ldrb r2, [r6, r3]
1028c: 0212 lsls r2, r2, #8
1028e: 4694 mov ip, r2
10290: 18f3 adds r3, r6, r3
10292: 785b ldrb r3, [r3, #1]
10294: 4463 add r3, ip
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10296: b29b uxth r3, r3
10298: 43c9 mvns r1, r1
1029a: 3110 adds r1, #16
1029c: 410b asrs r3, r1
1029e: 2201 movs r2, #1
102a0: 4013 ands r3, r2
102a2: e7e2 b.n 1026a <lv_font_get_bitmap_fmt_txt+0x292>
if(rle_cnt == 11) {
102a4: 2a0b cmp r2, #11
102a6: d005 beq.n 102b4 <lv_font_get_bitmap_fmt_txt+0x2dc>
rle_rdp += 1;
102a8: 0008 movs r0, r1
ret = rle_prev_v;
102aa: 9b04 ldr r3, [sp, #16]
if(rle_cnt == 11) {
102ac: 2201 movs r2, #1
102ae: 9207 str r2, [sp, #28]
102b0: 2101 movs r1, #1
102b2: e785 b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
uint32_t byte_pos = bit_pos >> 3;
102b4: 08cb lsrs r3, r1, #3
bit_pos = bit_pos & 0x7;
102b6: 2207 movs r2, #7
102b8: 4011 ands r1, r2
if(bit_pos + len >= 8) {
102ba: 1d8a adds r2, r1, #6
102bc: 2a07 cmp r2, #7
102be: d813 bhi.n 102e8 <lv_font_get_bitmap_fmt_txt+0x310>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
102c0: 5cf2 ldrb r2, [r6, r3]
102c2: 2302 movs r3, #2
102c4: 1a59 subs r1, r3, r1
102c6: 410a asrs r2, r1
102c8: 333d adds r3, #61 ; 0x3d
102ca: 401a ands r2, r3
102cc: 9206 str r2, [sp, #24]
rle_rdp += 6;
102ce: 3007 adds r0, #7
if(rle_cnt != 0) {
102d0: 9b06 ldr r3, [sp, #24]
102d2: 2b00 cmp r3, #0
102d4: d000 beq.n 102d8 <lv_font_get_bitmap_fmt_txt+0x300>
102d6: e0bf b.n 10458 <lv_font_get_bitmap_fmt_txt+0x480>
switch(len) {
102d8: 464b mov r3, r9
102da: 2b08 cmp r3, #8
102dc: d824 bhi.n 10328 <lv_font_get_bitmap_fmt_txt+0x350>
102de: 4b28 ldr r3, [pc, #160] ; (10380 <lv_font_get_bitmap_fmt_txt+0x3a8>)
102e0: 465a mov r2, fp
102e2: 589b ldr r3, [r3, r2]
102e4: 9304 str r3, [sp, #16]
102e6: 469f mov pc, r3
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
102e8: 5cf2 ldrb r2, [r6, r3]
102ea: 0212 lsls r2, r2, #8
102ec: 18f3 adds r3, r6, r3
102ee: 785b ldrb r3, [r3, #1]
102f0: 189a adds r2, r3, r2
return (in16 >> (16 - bit_pos - len)) & bit_mask;
102f2: b292 uxth r2, r2
102f4: 230a movs r3, #10
102f6: 1a59 subs r1, r3, r1
102f8: 410a asrs r2, r1
102fa: 3335 adds r3, #53 ; 0x35
102fc: 401a ands r2, r3
102fe: 9206 str r2, [sp, #24]
10300: e7e5 b.n 102ce <lv_font_get_bitmap_fmt_txt+0x2f6>
bit_mask = 0x3;
10302: 2303 movs r3, #3
uint32_t byte_pos = bit_pos >> 3;
10304: 08c7 lsrs r7, r0, #3
bit_pos = bit_pos & 0x7;
10306: 2107 movs r1, #7
10308: 4001 ands r1, r0
if(bit_pos + len >= 8) {
1030a: 194a adds r2, r1, r5
1030c: 2a07 cmp r2, #7
1030e: d839 bhi.n 10384 <lv_font_get_bitmap_fmt_txt+0x3ac>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
10310: 5df7 ldrb r7, [r6, r7]
10312: 9a0e ldr r2, [sp, #56] ; 0x38
10314: 1a51 subs r1, r2, r1
10316: 410f asrs r7, r1
10318: 403b ands r3, r7
1031a: e03e b.n 1039a <lv_font_get_bitmap_fmt_txt+0x3c2>
bit_mask = 0x7;
1031c: 2307 movs r3, #7
1031e: e7f1 b.n 10304 <lv_font_get_bitmap_fmt_txt+0x32c>
bit_mask = 0xF;
10320: 230f movs r3, #15
10322: e7ef b.n 10304 <lv_font_get_bitmap_fmt_txt+0x32c>
bit_mask = 0xFF;
10324: 23ff movs r3, #255 ; 0xff
10326: e7ed b.n 10304 <lv_font_get_bitmap_fmt_txt+0x32c>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
10328: 9b0d ldr r3, [sp, #52] ; 0x34
1032a: e7eb b.n 10304 <lv_font_get_bitmap_fmt_txt+0x32c>
bit_mask = 0x1;
1032c: 2301 movs r3, #1
1032e: e7e9 b.n 10304 <lv_font_get_bitmap_fmt_txt+0x32c>
10330: 0000fee5 .word 0x0000fee5
10334: 20002bc8 .word 0x20002bc8
10338: 00012445 .word 0x00012445
1033c: 000126fd .word 0x000126fd
10340: 000017ad .word 0x000017ad
10344: 20002bd0 .word 0x20002bd0
10348: 20002bcc .word 0x20002bcc
1034c: 20002bdc .word 0x20002bdc
10350: 20002bd8 .word 0x20002bd8
10354: 20002bd4 .word 0x20002bd4
10358: 20002bcd .word 0x20002bcd
1035c: 000127a1 .word 0x000127a1
10360: 000268b4 .word 0x000268b4
10364: 000269f0 .word 0x000269f0
10368: 00026a0c .word 0x00026a0c
1036c: 00012159 .word 0x00012159
10370: 00025854 .word 0x00025854
10374: 000017b5 .word 0x000017b5
10378: 00026890 .word 0x00026890
1037c: 000268d8 .word 0x000268d8
10380: 000268fc .word 0x000268fc
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
10384: 5df2 ldrb r2, [r6, r7]
10386: 0212 lsls r2, r2, #8
10388: 4694 mov ip, r2
1038a: 19f7 adds r7, r6, r7
1038c: 787f ldrb r7, [r7, #1]
1038e: 4467 add r7, ip
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10390: b2bf uxth r7, r7
10392: 9a0c ldr r2, [sp, #48] ; 0x30
10394: 1a51 subs r1, r2, r1
10396: 410f asrs r7, r1
10398: 403b ands r3, r7
rle_rdp += rle_bpp;
1039a: 1940 adds r0, r0, r5
rle_prev_v = ret;
1039c: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
1039e: 2201 movs r2, #1
103a0: 9207 str r2, [sp, #28]
103a2: 920a str r2, [sp, #40] ; 0x28
rle_state = RLE_STATE_SINGLE;
103a4: 2700 movs r7, #0
rle_rdp += rle_bpp;
103a6: 2101 movs r1, #1
103a8: 9209 str r2, [sp, #36] ; 0x24
103aa: e709 b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
bit_mask = 0x3;
103ac: 2303 movs r3, #3
uint32_t byte_pos = bit_pos >> 3;
103ae: 08cf lsrs r7, r1, #3
bit_pos = bit_pos & 0x7;
103b0: 2007 movs r0, #7
103b2: 4008 ands r0, r1
if(bit_pos + len >= 8) {
103b4: 1942 adds r2, r0, r5
103b6: 2a07 cmp r2, #7
103b8: d817 bhi.n 103ea <lv_font_get_bitmap_fmt_txt+0x412>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
103ba: 5df7 ldrb r7, [r6, r7]
103bc: 9a0e ldr r2, [sp, #56] ; 0x38
103be: 1a10 subs r0, r2, r0
103c0: 4107 asrs r7, r0
103c2: 403b ands r3, r7
rle_rdp += rle_bpp;
103c4: 1948 adds r0, r1, r5
rle_prev_v = ret;
103c6: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
103c8: 2201 movs r2, #1
103ca: 9207 str r2, [sp, #28]
103cc: 920a str r2, [sp, #40] ; 0x28
rle_state = RLE_STATE_SINGLE;
103ce: 2700 movs r7, #0
rle_rdp += rle_bpp;
103d0: 2101 movs r1, #1
103d2: 9209 str r2, [sp, #36] ; 0x24
103d4: e6f4 b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
bit_mask = 0x7;
103d6: 2307 movs r3, #7
103d8: e7e9 b.n 103ae <lv_font_get_bitmap_fmt_txt+0x3d6>
bit_mask = 0xF;
103da: 230f movs r3, #15
103dc: e7e7 b.n 103ae <lv_font_get_bitmap_fmt_txt+0x3d6>
bit_mask = 0xFF;
103de: 23ff movs r3, #255 ; 0xff
103e0: e7e5 b.n 103ae <lv_font_get_bitmap_fmt_txt+0x3d6>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
103e2: 9b0d ldr r3, [sp, #52] ; 0x34
103e4: e7e3 b.n 103ae <lv_font_get_bitmap_fmt_txt+0x3d6>
bit_mask = 0x1;
103e6: 2301 movs r3, #1
103e8: e7e1 b.n 103ae <lv_font_get_bitmap_fmt_txt+0x3d6>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
103ea: 5df2 ldrb r2, [r6, r7]
103ec: 0212 lsls r2, r2, #8
103ee: 4694 mov ip, r2
103f0: 19f7 adds r7, r6, r7
103f2: 787f ldrb r7, [r7, #1]
103f4: 4467 add r7, ip
return (in16 >> (16 - bit_pos - len)) & bit_mask;
103f6: b2bf uxth r7, r7
103f8: 9a0c ldr r2, [sp, #48] ; 0x30
103fa: 1a10 subs r0, r2, r0
103fc: 4107 asrs r7, r0
103fe: 403b ands r3, r7
10400: e7e0 b.n 103c4 <lv_font_get_bitmap_fmt_txt+0x3ec>
bit_mask = 0x3;
10402: 2303 movs r3, #3
uint32_t byte_pos = bit_pos >> 3;
10404: 08c7 lsrs r7, r0, #3
bit_pos = bit_pos & 0x7;
10406: 2107 movs r1, #7
10408: 4001 ands r1, r0
if(bit_pos + len >= 8) {
1040a: 194a adds r2, r1, r5
1040c: 2a07 cmp r2, #7
1040e: d817 bhi.n 10440 <lv_font_get_bitmap_fmt_txt+0x468>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
10410: 5df7 ldrb r7, [r6, r7]
10412: 9a0e ldr r2, [sp, #56] ; 0x38
10414: 1a51 subs r1, r2, r1
10416: 410f asrs r7, r1
10418: 403b ands r3, r7
rle_rdp += rle_bpp;
1041a: 1940 adds r0, r0, r5
rle_prev_v = ret;
1041c: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
1041e: 2201 movs r2, #1
10420: 9207 str r2, [sp, #28]
10422: 920a str r2, [sp, #40] ; 0x28
rle_state = RLE_STATE_SINGLE;
10424: 2700 movs r7, #0
rle_rdp += rle_bpp;
10426: 2101 movs r1, #1
10428: 9209 str r2, [sp, #36] ; 0x24
1042a: e6c9 b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
bit_mask = 0x7;
1042c: 2307 movs r3, #7
1042e: e7e9 b.n 10404 <lv_font_get_bitmap_fmt_txt+0x42c>
bit_mask = 0xF;
10430: 230f movs r3, #15
10432: e7e7 b.n 10404 <lv_font_get_bitmap_fmt_txt+0x42c>
bit_mask = 0xFF;
10434: 23ff movs r3, #255 ; 0xff
10436: e7e5 b.n 10404 <lv_font_get_bitmap_fmt_txt+0x42c>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
10438: 9b0d ldr r3, [sp, #52] ; 0x34
1043a: e7e3 b.n 10404 <lv_font_get_bitmap_fmt_txt+0x42c>
bit_mask = 0x1;
1043c: 2301 movs r3, #1
1043e: e7e1 b.n 10404 <lv_font_get_bitmap_fmt_txt+0x42c>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
10440: 5df2 ldrb r2, [r6, r7]
10442: 0212 lsls r2, r2, #8
10444: 4694 mov ip, r2
10446: 19f7 adds r7, r6, r7
10448: 787f ldrb r7, [r7, #1]
1044a: 4467 add r7, ip
return (in16 >> (16 - bit_pos - len)) & bit_mask;
1044c: b2bf uxth r7, r7
1044e: 9a0c ldr r2, [sp, #48] ; 0x30
10450: 1a51 subs r1, r2, r1
10452: 410f asrs r7, r1
10454: 403b ands r3, r7
10456: e7e0 b.n 1041a <lv_font_get_bitmap_fmt_txt+0x442>
ret = rle_prev_v;
10458: 9b04 ldr r3, [sp, #16]
if(rle_cnt != 0) {
1045a: 2201 movs r2, #1
1045c: 9207 str r2, [sp, #28]
1045e: 920a str r2, [sp, #40] ; 0x28
rle_state = RLE_STATE_COUNTER;
10460: 2702 movs r7, #2
if(rle_cnt != 0) {
10462: 2101 movs r1, #1
10464: e6ac b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
ret = rle_prev_v;
10466: 9b04 ldr r3, [sp, #16]
if(rle_cnt == 0) {
10468: 2201 movs r2, #1
1046a: 9207 str r2, [sp, #28]
1046c: e6a8 b.n 101c0 <lv_font_get_bitmap_fmt_txt+0x1e8>
1046e: 9b06 ldr r3, [sp, #24]
10470: 469a mov sl, r3
10472: 4645 mov r5, r8
10474: 46bc mov ip, r7
10476: 9b09 ldr r3, [sp, #36] ; 0x24
10478: 2b00 cmp r3, #0
1047a: d114 bne.n 104a6 <lv_font_get_bitmap_fmt_txt+0x4ce>
1047c: 2900 cmp r1, #0
1047e: d001 beq.n 10484 <lv_font_get_bitmap_fmt_txt+0x4ac>
10480: 4bcc ldr r3, [pc, #816] ; (107b4 <lv_font_get_bitmap_fmt_txt+0x7dc>)
10482: 6018 str r0, [r3, #0]
10484: 9b0a ldr r3, [sp, #40] ; 0x28
10486: 2b00 cmp r3, #0
10488: d002 beq.n 10490 <lv_font_get_bitmap_fmt_txt+0x4b8>
1048a: 4bcb ldr r3, [pc, #812] ; (107b8 <lv_font_get_bitmap_fmt_txt+0x7e0>)
1048c: 4662 mov r2, ip
1048e: 701a strb r2, [r3, #0]
10490: 9b07 ldr r3, [sp, #28]
10492: 2b00 cmp r3, #0
10494: d002 beq.n 1049c <lv_font_get_bitmap_fmt_txt+0x4c4>
10496: 4bc9 ldr r3, [pc, #804] ; (107bc <lv_font_get_bitmap_fmt_txt+0x7e4>)
10498: 4652 mov r2, sl
1049a: 701a strb r2, [r3, #0]
rle_rdp += rle_bpp;
1049c: 2600 movs r6, #0
if(len == 3) {
1049e: 9b02 ldr r3, [sp, #8]
104a0: 9304 str r3, [sp, #16]
val = 6;
104a2: 002f movs r7, r5
104a4: e023 b.n 104ee <lv_font_get_bitmap_fmt_txt+0x516>
104a6: 4bc6 ldr r3, [pc, #792] ; (107c0 <lv_font_get_bitmap_fmt_txt+0x7e8>)
104a8: 466a mov r2, sp
104aa: 7c12 ldrb r2, [r2, #16]
104ac: 701a strb r2, [r3, #0]
104ae: e7e5 b.n 1047c <lv_font_get_bitmap_fmt_txt+0x4a4>
len = 4;
104b0: 2304 movs r3, #4
val = 0;
104b2: 2200 movs r2, #0
bit_pos = bit_pos & 0x7;
104b4: 2107 movs r1, #7
104b6: 4031 ands r1, r6
104b8: 2508 movs r5, #8
104ba: 1a6d subs r5, r5, r1
bit_pos = 8 - bit_pos - len;
104bc: 1aed subs r5, r5, r3
out[byte_pos] &= ((~bit_mask) << bit_pos);
104be: 0371 lsls r1, r6, #13
104c0: 0c09 lsrs r1, r1, #16
104c2: 9805 ldr r0, [sp, #20]
104c4: 4684 mov ip, r0
104c6: 4461 add r1, ip
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
104c8: 2001 movs r0, #1
104ca: 4098 lsls r0, r3
104cc: 0003 movs r3, r0
104ce: 3b01 subs r3, #1
out[byte_pos] &= ((~bit_mask) << bit_pos);
104d0: b2db uxtb r3, r3
104d2: 43db mvns r3, r3
104d4: 40ab lsls r3, r5
104d6: 7808 ldrb r0, [r1, #0]
104d8: 4003 ands r3, r0
out[byte_pos] |= (val << bit_pos);
104da: 40aa lsls r2, r5
104dc: 431a orrs r2, r3
104de: 700a strb r2, [r1, #0]
wrp += wr_size;
104e0: 9a08 ldr r2, [sp, #32]
104e2: 0013 movs r3, r2
104e4: 4694 mov ip, r2
104e6: 4466 add r6, ip
104e8: 3701 adds r7, #1
for(x = 0; x < w; x++) {
104ea: 42a7 cmp r7, r4
104ec: d021 beq.n 10532 <lv_font_get_bitmap_fmt_txt+0x55a>
bits_write(out, wrp, line_buf1[x], bpp);
104ee: 783a ldrb r2, [r7, #0]
if(len == 3) {
104f0: 9b04 ldr r3, [sp, #16]
104f2: 9902 ldr r1, [sp, #8]
104f4: 2903 cmp r1, #3
104f6: d1dd bne.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
switch(val) {
104f8: 2a07 cmp r2, #7
104fa: d818 bhi.n 1052e <lv_font_get_bitmap_fmt_txt+0x556>
104fc: 0092 lsls r2, r2, #2
104fe: 4bb1 ldr r3, [pc, #708] ; (107c4 <lv_font_get_bitmap_fmt_txt+0x7ec>)
10500: 589b ldr r3, [r3, r2]
10502: 469f mov pc, r3
len = 4;
10504: 2304 movs r3, #4
val = 2;
10506: 2202 movs r2, #2
10508: e7d4 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
1050a: 2304 movs r3, #4
val = 4;
1050c: 2204 movs r2, #4
1050e: e7d1 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
10510: 2304 movs r3, #4
val = 6;
10512: 2206 movs r2, #6
10514: e7ce b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
10516: 2304 movs r3, #4
val = 9;
10518: 2209 movs r2, #9
1051a: e7cb b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
1051c: 2304 movs r3, #4
val = 11;
1051e: 220b movs r2, #11
10520: e7c8 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
10522: 2304 movs r3, #4
val = 13;
10524: 220d movs r2, #13
10526: e7c5 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
10528: 2304 movs r3, #4
val = 15;
1052a: 220f movs r2, #15
1052c: e7c2 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
len = 4;
1052e: 2304 movs r3, #4
10530: e7c0 b.n 104b4 <lv_font_get_bitmap_fmt_txt+0x4dc>
10532: 9a11 ldr r2, [sp, #68] ; 0x44
10534: 435a muls r2, r3
10536: 9211 str r2, [sp, #68] ; 0x44
for(y = 1; y < h; y++) {
10538: 9b10 ldr r3, [sp, #64] ; 0x40
1053a: 2b01 cmp r3, #1
1053c: dc00 bgt.n 10540 <lv_font_get_bitmap_fmt_txt+0x568>
1053e: e234 b.n 109aa <lv_font_get_bitmap_fmt_txt+0x9d2>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
10540: 4ba1 ldr r3, [pc, #644] ; (107c8 <lv_font_get_bitmap_fmt_txt+0x7f0>)
10542: 681b ldr r3, [r3, #0]
10544: 001e movs r6, r3
10546: 4ba1 ldr r3, [pc, #644] ; (107cc <lv_font_get_bitmap_fmt_txt+0x7f4>)
10548: 781b ldrb r3, [r3, #0]
1054a: 001a movs r2, r3
1054c: 930b str r3, [sp, #44] ; 0x2c
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
1054e: 2301 movs r3, #1
10550: 4093 lsls r3, r2
10552: 3b01 subs r3, #1
10554: b2db uxtb r3, r3
10556: 9314 str r3, [sp, #80] ; 0x50
if(bit_pos + len >= 8) {
10558: 4692 mov sl, r2
1055a: 4b98 ldr r3, [pc, #608] ; (107bc <lv_font_get_bitmap_fmt_txt+0x7e4>)
1055c: 781b ldrb r3, [r3, #0]
1055e: 4698 mov r8, r3
10560: 2308 movs r3, #8
10562: 1a9b subs r3, r3, r2
10564: 930e str r3, [sp, #56] ; 0x38
10566: 2310 movs r3, #16
10568: 1a9b subs r3, r3, r2
1056a: 9310 str r3, [sp, #64] ; 0x40
1056c: 4b94 ldr r3, [pc, #592] ; (107c0 <lv_font_get_bitmap_fmt_txt+0x7e8>)
1056e: 781b ldrb r3, [r3, #0]
10570: 9304 str r3, [sp, #16]
10572: 4b90 ldr r3, [pc, #576] ; (107b4 <lv_font_get_bitmap_fmt_txt+0x7dc>)
10574: 6818 ldr r0, [r3, #0]
10576: 4b90 ldr r3, [pc, #576] ; (107b8 <lv_font_get_bitmap_fmt_txt+0x7e0>)
10578: 7819 ldrb r1, [r3, #0]
1057a: 9b12 ldr r3, [sp, #72] ; 0x48
1057c: 3b02 subs r3, #2
1057e: b29b uxth r3, r3
10580: 3301 adds r3, #1
10582: 9315 str r3, [sp, #84] ; 0x54
10584: 9c08 ldr r4, [sp, #32]
10586: 9406 str r4, [sp, #24]
10588: 9b0f ldr r3, [sp, #60] ; 0x3c
1058a: 3b01 subs r3, #1
1058c: b29b uxth r3, r3
1058e: 001d movs r5, r3
10590: 9316 str r3, [sp, #88] ; 0x58
10592: 0023 movs r3, r4
10594: 436b muls r3, r5
10596: 9317 str r3, [sp, #92] ; 0x5c
10598: 2300 movs r3, #0
1059a: 9312 str r3, [sp, #72] ; 0x48
1059c: 930d str r3, [sp, #52] ; 0x34
1059e: 930f str r3, [sp, #60] ; 0x3c
105a0: 9309 str r3, [sp, #36] ; 0x24
105a2: 930a str r3, [sp, #40] ; 0x28
switch(len) {
105a4: 0093 lsls r3, r2, #2
105a6: 930c str r3, [sp, #48] ; 0x30
105a8: 4a89 ldr r2, [pc, #548] ; (107d0 <lv_font_get_bitmap_fmt_txt+0x7f8>)
105aa: 469c mov ip, r3
105ac: 4462 add r2, ip
105ae: 9218 str r2, [sp, #96] ; 0x60
105b0: 9b13 ldr r3, [sp, #76] ; 0x4c
105b2: 469b mov fp, r3
105b4: 4643 mov r3, r8
105b6: 9308 str r3, [sp, #32]
105b8: 9b19 ldr r3, [sp, #100] ; 0x64
105ba: 001d movs r5, r3
105bc: 468c mov ip, r1
105be: 46b1 mov r9, r6
105c0: e1cf b.n 10962 <lv_font_get_bitmap_fmt_txt+0x98a>
for(i = 0; i < w; i++) {
105c2: 2300 movs r3, #0
105c4: 9311 str r3, [sp, #68] ; 0x44
105c6: e7b7 b.n 10538 <lv_font_get_bitmap_fmt_txt+0x560>
bit_mask = 0x3;
105c8: 2303 movs r3, #3
105ca: e008 b.n 105de <lv_font_get_bitmap_fmt_txt+0x606>
bit_mask = 0x7;
105cc: 2307 movs r3, #7
105ce: e006 b.n 105de <lv_font_get_bitmap_fmt_txt+0x606>
bit_mask = 0xF;
105d0: 230f movs r3, #15
105d2: e004 b.n 105de <lv_font_get_bitmap_fmt_txt+0x606>
bit_mask = 0xFF;
105d4: 23ff movs r3, #255 ; 0xff
105d6: e002 b.n 105de <lv_font_get_bitmap_fmt_txt+0x606>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
105d8: 9b14 ldr r3, [sp, #80] ; 0x50
105da: e000 b.n 105de <lv_font_get_bitmap_fmt_txt+0x606>
bit_mask = 0x1;
105dc: 2301 movs r3, #1
uint32_t byte_pos = bit_pos >> 3;
105de: 08c5 lsrs r5, r0, #3
bit_pos = bit_pos & 0x7;
105e0: 2207 movs r2, #7
105e2: 4002 ands r2, r0
if(bit_pos + len >= 8) {
105e4: 1997 adds r7, r2, r6
105e6: 2f07 cmp r7, #7
105e8: d81f bhi.n 1062a <lv_font_get_bitmap_fmt_txt+0x652>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
105ea: 464f mov r7, r9
105ec: 5d7d ldrb r5, [r7, r5]
105ee: 9f0e ldr r7, [sp, #56] ; 0x38
105f0: 1aba subs r2, r7, r2
105f2: 4115 asrs r5, r2
105f4: 402b ands r3, r5
105f6: b2db uxtb r3, r3
if(rle_rdp != 0 && rle_prev_v == ret) {
105f8: 2800 cmp r0, #0
105fa: d002 beq.n 10602 <lv_font_get_bitmap_fmt_txt+0x62a>
105fc: 9a04 ldr r2, [sp, #16]
105fe: 429a cmp r2, r3
10600: d021 beq.n 10646 <lv_font_get_bitmap_fmt_txt+0x66e>
rle_rdp += rle_bpp;
10602: 1980 adds r0, r0, r6
rle_prev_v = ret;
10604: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
10606: 2201 movs r2, #1
10608: 9209 str r2, [sp, #36] ; 0x24
1060a: 920a str r2, [sp, #40] ; 0x28
out[i] = rle_next();
1060c: 7023 strb r3, [r4, #0]
1060e: 3401 adds r4, #1
for(i = 0; i < w; i++) {
10610: 4564 cmp r4, ip
10612: d100 bne.n 10616 <lv_font_get_bitmap_fmt_txt+0x63e>
10614: e141 b.n 1089a <lv_font_get_bitmap_fmt_txt+0x8c2>
if(rle_state == RLE_STATE_SINGLE) {
10616: 2900 cmp r1, #0
10618: d11d bne.n 10656 <lv_font_get_bitmap_fmt_txt+0x67e>
switch(len) {
1061a: 9b0b ldr r3, [sp, #44] ; 0x2c
1061c: 2b08 cmp r3, #8
1061e: d8db bhi.n 105d8 <lv_font_get_bitmap_fmt_txt+0x600>
10620: 9b0c ldr r3, [sp, #48] ; 0x30
10622: 4a6c ldr r2, [pc, #432] ; (107d4 <lv_font_get_bitmap_fmt_txt+0x7fc>)
10624: 58d3 ldr r3, [r2, r3]
10626: 9307 str r3, [sp, #28]
10628: 469f mov pc, r3
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
1062a: 464f mov r7, r9
1062c: 5d7f ldrb r7, [r7, r5]
1062e: 023f lsls r7, r7, #8
10630: 46ba mov sl, r7
10632: 444d add r5, r9
10634: 786d ldrb r5, [r5, #1]
10636: 4455 add r5, sl
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10638: b2ad uxth r5, r5
1063a: 9f10 ldr r7, [sp, #64] ; 0x40
1063c: 1aba subs r2, r7, r2
1063e: 4115 asrs r5, r2
10640: 402b ands r3, r5
10642: b2db uxtb r3, r3
10644: e7d8 b.n 105f8 <lv_font_get_bitmap_fmt_txt+0x620>
if(rle_rdp != 0 && rle_prev_v == ret) {
10646: 2201 movs r2, #1
10648: 920d str r2, [sp, #52] ; 0x34
rle_cnt = 0;
1064a: 2200 movs r2, #0
1064c: 9208 str r2, [sp, #32]
if(rle_rdp != 0 && rle_prev_v == ret) {
1064e: 3201 adds r2, #1
10650: 920f str r2, [sp, #60] ; 0x3c
rle_state = RLE_STATE_REPEATE;
10652: 2101 movs r1, #1
10654: e7d5 b.n 10602 <lv_font_get_bitmap_fmt_txt+0x62a>
else if(rle_state == RLE_STATE_REPEATE) {
10656: 2901 cmp r1, #1
10658: d011 beq.n 1067e <lv_font_get_bitmap_fmt_txt+0x6a6>
uint8_t ret = 0;
1065a: 2300 movs r3, #0
else if(rle_state == RLE_STATE_COUNTER) {
1065c: 2902 cmp r1, #2
1065e: d1d5 bne.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
rle_cnt--;
10660: 9b08 ldr r3, [sp, #32]
10662: 3b01 subs r3, #1
10664: b2db uxtb r3, r3
10666: 9308 str r3, [sp, #32]
if(rle_cnt == 0) {
10668: 2b00 cmp r3, #0
1066a: d000 beq.n 1066e <lv_font_get_bitmap_fmt_txt+0x696>
1066c: e111 b.n 10892 <lv_font_get_bitmap_fmt_txt+0x8ba>
switch(len) {
1066e: 9b0b ldr r3, [sp, #44] ; 0x2c
10670: 2b08 cmp r3, #8
10672: d900 bls.n 10676 <lv_font_get_bitmap_fmt_txt+0x69e>
10674: e0e0 b.n 10838 <lv_font_get_bitmap_fmt_txt+0x860>
10676: 9b18 ldr r3, [sp, #96] ; 0x60
10678: 681b ldr r3, [r3, #0]
1067a: 9304 str r3, [sp, #16]
1067c: 469f mov pc, r3
uint32_t byte_pos = bit_pos >> 3;
1067e: 08c3 lsrs r3, r0, #3
bit_pos = bit_pos & 0x7;
10680: 2207 movs r2, #7
10682: 4002 ands r2, r0
if(bit_pos + len >= 8) {
10684: 1c55 adds r5, r2, #1
10686: 2d07 cmp r5, #7
10688: d816 bhi.n 106b8 <lv_font_get_bitmap_fmt_txt+0x6e0>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
1068a: 464d mov r5, r9
1068c: 5ceb ldrb r3, [r5, r3]
1068e: 43d2 mvns r2, r2
10690: 3208 adds r2, #8
10692: 4113 asrs r3, r2
10694: 2201 movs r2, #1
10696: 4013 ands r3, r2
rle_cnt++;
10698: 9a08 ldr r2, [sp, #32]
1069a: 3201 adds r2, #1
1069c: b2d2 uxtb r2, r2
1069e: 9208 str r2, [sp, #32]
rle_rdp += 1;
106a0: 1c45 adds r5, r0, #1
if(v == 1) {
106a2: 2b01 cmp r3, #1
106a4: d015 beq.n 106d2 <lv_font_get_bitmap_fmt_txt+0x6fa>
switch(len) {
106a6: 9b0b ldr r3, [sp, #44] ; 0x2c
106a8: 2b08 cmp r3, #8
106aa: d900 bls.n 106ae <lv_font_get_bitmap_fmt_txt+0x6d6>
106ac: e080 b.n 107b0 <lv_font_get_bitmap_fmt_txt+0x7d8>
106ae: 4b4a ldr r3, [pc, #296] ; (107d8 <lv_font_get_bitmap_fmt_txt+0x800>)
106b0: 9a0c ldr r2, [sp, #48] ; 0x30
106b2: 589b ldr r3, [r3, r2]
106b4: 9304 str r3, [sp, #16]
106b6: 469f mov pc, r3
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
106b8: 464d mov r5, r9
106ba: 5ced ldrb r5, [r5, r3]
106bc: 022d lsls r5, r5, #8
106be: 444b add r3, r9
106c0: 785b ldrb r3, [r3, #1]
106c2: 195b adds r3, r3, r5
return (in16 >> (16 - bit_pos - len)) & bit_mask;
106c4: b29b uxth r3, r3
106c6: 43d2 mvns r2, r2
106c8: 3210 adds r2, #16
106ca: 4113 asrs r3, r2
106cc: 2201 movs r2, #1
106ce: 4013 ands r3, r2
106d0: e7e2 b.n 10698 <lv_font_get_bitmap_fmt_txt+0x6c0>
if(rle_cnt == 11) {
106d2: 2a0b cmp r2, #11
106d4: d005 beq.n 106e2 <lv_font_get_bitmap_fmt_txt+0x70a>
rle_rdp += 1;
106d6: 0028 movs r0, r5
ret = rle_prev_v;
106d8: 9b04 ldr r3, [sp, #16]
if(rle_cnt == 11) {
106da: 2201 movs r2, #1
106dc: 920d str r2, [sp, #52] ; 0x34
106de: 9209 str r2, [sp, #36] ; 0x24
106e0: e794 b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
uint32_t byte_pos = bit_pos >> 3;
106e2: 08eb lsrs r3, r5, #3
bit_pos = bit_pos & 0x7;
106e4: 2207 movs r2, #7
106e6: 4015 ands r5, r2
if(bit_pos + len >= 8) {
106e8: 1daa adds r2, r5, #6
106ea: 2a07 cmp r2, #7
106ec: d814 bhi.n 10718 <lv_font_get_bitmap_fmt_txt+0x740>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
106ee: 464a mov r2, r9
106f0: 5cd3 ldrb r3, [r2, r3]
106f2: 2202 movs r2, #2
106f4: 1b55 subs r5, r2, r5
106f6: 412b asrs r3, r5
106f8: 323d adds r2, #61 ; 0x3d
106fa: 401a ands r2, r3
106fc: 9208 str r2, [sp, #32]
rle_rdp += 6;
106fe: 3007 adds r0, #7
if(rle_cnt != 0) {
10700: 9b08 ldr r3, [sp, #32]
10702: 2b00 cmp r3, #0
10704: d000 beq.n 10708 <lv_font_get_bitmap_fmt_txt+0x730>
10706: e0bd b.n 10884 <lv_font_get_bitmap_fmt_txt+0x8ac>
switch(len) {
10708: 9b0b ldr r3, [sp, #44] ; 0x2c
1070a: 2b08 cmp r3, #8
1070c: d834 bhi.n 10778 <lv_font_get_bitmap_fmt_txt+0x7a0>
1070e: 4b33 ldr r3, [pc, #204] ; (107dc <lv_font_get_bitmap_fmt_txt+0x804>)
10710: 9a0c ldr r2, [sp, #48] ; 0x30
10712: 589b ldr r3, [r3, r2]
10714: 9304 str r3, [sp, #16]
10716: 469f mov pc, r3
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
10718: 464a mov r2, r9
1071a: 5cd2 ldrb r2, [r2, r3]
1071c: 0212 lsls r2, r2, #8
1071e: 444b add r3, r9
10720: 785b ldrb r3, [r3, #1]
10722: 189b adds r3, r3, r2
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10724: b29b uxth r3, r3
10726: 220a movs r2, #10
10728: 1b55 subs r5, r2, r5
1072a: 412b asrs r3, r5
1072c: 3235 adds r2, #53 ; 0x35
1072e: 401a ands r2, r3
10730: 9208 str r2, [sp, #32]
10732: e7e4 b.n 106fe <lv_font_get_bitmap_fmt_txt+0x726>
bit_mask = 0x3;
10734: 2303 movs r3, #3
10736: 469a mov sl, r3
uint32_t byte_pos = bit_pos >> 3;
10738: 08c5 lsrs r5, r0, #3
bit_pos = bit_pos & 0x7;
1073a: 2307 movs r3, #7
1073c: 4003 ands r3, r0
if(bit_pos + len >= 8) {
1073e: 199a adds r2, r3, r6
10740: 2a07 cmp r2, #7
10742: d81f bhi.n 10784 <lv_font_get_bitmap_fmt_txt+0x7ac>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
10744: 464a mov r2, r9
10746: 5d52 ldrb r2, [r2, r5]
10748: 990e ldr r1, [sp, #56] ; 0x38
1074a: 1acb subs r3, r1, r3
1074c: 411a asrs r2, r3
1074e: 4653 mov r3, sl
10750: 4013 ands r3, r2
10752: b2db uxtb r3, r3
rle_rdp += rle_bpp;
10754: 1980 adds r0, r0, r6
rle_prev_v = ret;
10756: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
10758: 2201 movs r2, #1
1075a: 920d str r2, [sp, #52] ; 0x34
1075c: 920f str r2, [sp, #60] ; 0x3c
rle_state = RLE_STATE_SINGLE;
1075e: 2100 movs r1, #0
rle_rdp += rle_bpp;
10760: 9209 str r2, [sp, #36] ; 0x24
10762: 920a str r2, [sp, #40] ; 0x28
10764: e752 b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
bit_mask = 0x7;
10766: 2307 movs r3, #7
10768: 469a mov sl, r3
1076a: e7e5 b.n 10738 <lv_font_get_bitmap_fmt_txt+0x760>
bit_mask = 0xF;
1076c: 230f movs r3, #15
1076e: 469a mov sl, r3
10770: e7e2 b.n 10738 <lv_font_get_bitmap_fmt_txt+0x760>
bit_mask = 0xFF;
10772: 23ff movs r3, #255 ; 0xff
10774: 469a mov sl, r3
10776: e7df b.n 10738 <lv_font_get_bitmap_fmt_txt+0x760>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
10778: 9b14 ldr r3, [sp, #80] ; 0x50
1077a: 469a mov sl, r3
1077c: e7dc b.n 10738 <lv_font_get_bitmap_fmt_txt+0x760>
bit_mask = 0x1;
1077e: 2301 movs r3, #1
10780: 469a mov sl, r3
10782: e7d9 b.n 10738 <lv_font_get_bitmap_fmt_txt+0x760>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
10784: 464a mov r2, r9
10786: 5d51 ldrb r1, [r2, r5]
10788: 0209 lsls r1, r1, #8
1078a: 444d add r5, r9
1078c: 786a ldrb r2, [r5, #1]
1078e: 1852 adds r2, r2, r1
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10790: b292 uxth r2, r2
10792: 9910 ldr r1, [sp, #64] ; 0x40
10794: 1acb subs r3, r1, r3
10796: 411a asrs r2, r3
10798: 4653 mov r3, sl
1079a: 4013 ands r3, r2
1079c: b2db uxtb r3, r3
1079e: e7d9 b.n 10754 <lv_font_get_bitmap_fmt_txt+0x77c>
bit_mask = 0x3;
107a0: 2303 movs r3, #3
107a2: e01e b.n 107e2 <lv_font_get_bitmap_fmt_txt+0x80a>
bit_mask = 0x7;
107a4: 2307 movs r3, #7
107a6: e01c b.n 107e2 <lv_font_get_bitmap_fmt_txt+0x80a>
bit_mask = 0xF;
107a8: 230f movs r3, #15
107aa: e01a b.n 107e2 <lv_font_get_bitmap_fmt_txt+0x80a>
bit_mask = 0xFF;
107ac: 23ff movs r3, #255 ; 0xff
107ae: e018 b.n 107e2 <lv_font_get_bitmap_fmt_txt+0x80a>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
107b0: 9b14 ldr r3, [sp, #80] ; 0x50
107b2: e016 b.n 107e2 <lv_font_get_bitmap_fmt_txt+0x80a>
107b4: 20002bd8 .word 0x20002bd8
107b8: 20002bdc .word 0x20002bdc
107bc: 20002bcd .word 0x20002bcd
107c0: 20002bd4 .word 0x20002bd4
107c4: 00026920 .word 0x00026920
107c8: 20002bd0 .word 0x20002bd0
107cc: 20002bcc .word 0x20002bcc
107d0: 00026964 .word 0x00026964
107d4: 00026940 .word 0x00026940
107d8: 00026988 .word 0x00026988
107dc: 000269ac .word 0x000269ac
bit_mask = 0x1;
107e0: 2301 movs r3, #1
uint32_t byte_pos = bit_pos >> 3;
107e2: 08e9 lsrs r1, r5, #3
bit_pos = bit_pos & 0x7;
107e4: 2207 movs r2, #7
107e6: 402a ands r2, r5
if(bit_pos + len >= 8) {
107e8: 1990 adds r0, r2, r6
107ea: 2807 cmp r0, #7
107ec: d80f bhi.n 1080e <lv_font_get_bitmap_fmt_txt+0x836>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
107ee: 4648 mov r0, r9
107f0: 5c41 ldrb r1, [r0, r1]
107f2: 980e ldr r0, [sp, #56] ; 0x38
107f4: 1a82 subs r2, r0, r2
107f6: 4111 asrs r1, r2
107f8: 400b ands r3, r1
107fa: b2db uxtb r3, r3
rle_rdp += rle_bpp;
107fc: 19a8 adds r0, r5, r6
rle_prev_v = ret;
107fe: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
10800: 2201 movs r2, #1
10802: 920d str r2, [sp, #52] ; 0x34
10804: 920f str r2, [sp, #60] ; 0x3c
rle_state = RLE_STATE_SINGLE;
10806: 2100 movs r1, #0
rle_rdp += rle_bpp;
10808: 9209 str r2, [sp, #36] ; 0x24
1080a: 920a str r2, [sp, #40] ; 0x28
1080c: e6fe b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
1080e: 4648 mov r0, r9
10810: 5c40 ldrb r0, [r0, r1]
10812: 0200 lsls r0, r0, #8
10814: 4449 add r1, r9
10816: 7849 ldrb r1, [r1, #1]
10818: 1809 adds r1, r1, r0
return (in16 >> (16 - bit_pos - len)) & bit_mask;
1081a: b289 uxth r1, r1
1081c: 9810 ldr r0, [sp, #64] ; 0x40
1081e: 1a82 subs r2, r0, r2
10820: 4111 asrs r1, r2
10822: 400b ands r3, r1
10824: b2db uxtb r3, r3
10826: e7e9 b.n 107fc <lv_font_get_bitmap_fmt_txt+0x824>
bit_mask = 0x3;
10828: 2303 movs r3, #3
1082a: e008 b.n 1083e <lv_font_get_bitmap_fmt_txt+0x866>
bit_mask = 0x7;
1082c: 2307 movs r3, #7
1082e: e006 b.n 1083e <lv_font_get_bitmap_fmt_txt+0x866>
bit_mask = 0xF;
10830: 230f movs r3, #15
10832: e004 b.n 1083e <lv_font_get_bitmap_fmt_txt+0x866>
bit_mask = 0xFF;
10834: 23ff movs r3, #255 ; 0xff
10836: e002 b.n 1083e <lv_font_get_bitmap_fmt_txt+0x866>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
10838: 9b14 ldr r3, [sp, #80] ; 0x50
1083a: e000 b.n 1083e <lv_font_get_bitmap_fmt_txt+0x866>
bit_mask = 0x1;
1083c: 2301 movs r3, #1
uint32_t byte_pos = bit_pos >> 3;
1083e: 08c1 lsrs r1, r0, #3
bit_pos = bit_pos & 0x7;
10840: 2207 movs r2, #7
10842: 4002 ands r2, r0
if(bit_pos + len >= 8) {
10844: 1995 adds r5, r2, r6
10846: 2d07 cmp r5, #7
10848: d80f bhi.n 1086a <lv_font_get_bitmap_fmt_txt+0x892>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
1084a: 464d mov r5, r9
1084c: 5c69 ldrb r1, [r5, r1]
1084e: 9d0e ldr r5, [sp, #56] ; 0x38
10850: 1aaa subs r2, r5, r2
10852: 4111 asrs r1, r2
10854: 400b ands r3, r1
10856: b2db uxtb r3, r3
rle_rdp += rle_bpp;
10858: 1980 adds r0, r0, r6
rle_prev_v = ret;
1085a: 9304 str r3, [sp, #16]
rle_rdp += rle_bpp;
1085c: 2201 movs r2, #1
1085e: 920d str r2, [sp, #52] ; 0x34
10860: 920f str r2, [sp, #60] ; 0x3c
rle_state = RLE_STATE_SINGLE;
10862: 2100 movs r1, #0
rle_rdp += rle_bpp;
10864: 9209 str r2, [sp, #36] ; 0x24
10866: 920a str r2, [sp, #40] ; 0x28
10868: e6d0 b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
1086a: 464d mov r5, r9
1086c: 5c6d ldrb r5, [r5, r1]
1086e: 022d lsls r5, r5, #8
10870: 4449 add r1, r9
10872: 7849 ldrb r1, [r1, #1]
10874: 1949 adds r1, r1, r5
return (in16 >> (16 - bit_pos - len)) & bit_mask;
10876: b289 uxth r1, r1
10878: 9d10 ldr r5, [sp, #64] ; 0x40
1087a: 1aaa subs r2, r5, r2
1087c: 4111 asrs r1, r2
1087e: 400b ands r3, r1
10880: b2db uxtb r3, r3
10882: e7e9 b.n 10858 <lv_font_get_bitmap_fmt_txt+0x880>
ret = rle_prev_v;
10884: 9b04 ldr r3, [sp, #16]
if(rle_cnt != 0) {
10886: 2201 movs r2, #1
10888: 920d str r2, [sp, #52] ; 0x34
1088a: 920f str r2, [sp, #60] ; 0x3c
rle_state = RLE_STATE_COUNTER;
1088c: 2102 movs r1, #2
if(rle_cnt != 0) {
1088e: 9209 str r2, [sp, #36] ; 0x24
10890: e6bc b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
ret = rle_prev_v;
10892: 9b04 ldr r3, [sp, #16]
if(rle_cnt == 0) {
10894: 2201 movs r2, #1
10896: 920d str r2, [sp, #52] ; 0x34
10898: e6b8 b.n 1060c <lv_font_get_bitmap_fmt_txt+0x634>
1089a: 468c mov ip, r1
1089c: 46b2 mov sl, r6
for(i = 0; i < w; i++) {
1089e: 9911 ldr r1, [sp, #68] ; 0x44
108a0: 2700 movs r7, #0
if(len == 3) {
108a2: 9b02 ldr r3, [sp, #8]
108a4: 9307 str r3, [sp, #28]
val = 6;
108a6: 0003 movs r3, r0
108a8: 4640 mov r0, r8
108aa: 4662 mov r2, ip
108ac: 9213 str r2, [sp, #76] ; 0x4c
108ae: 4698 mov r8, r3
108b0: e01e b.n 108f0 <lv_font_get_bitmap_fmt_txt+0x918>
len = 4;
108b2: 2304 movs r3, #4
val = 0;
108b4: 2400 movs r4, #0
bit_pos = bit_pos & 0x7;
108b6: 2207 movs r2, #7
108b8: 400a ands r2, r1
108ba: 2608 movs r6, #8
108bc: 1ab6 subs r6, r6, r2
bit_pos = 8 - bit_pos - len;
108be: 1af6 subs r6, r6, r3
out[byte_pos] &= ((~bit_mask) << bit_pos);
108c0: 034d lsls r5, r1, #13
108c2: 0c2d lsrs r5, r5, #16
108c4: 9a05 ldr r2, [sp, #20]
108c6: 4694 mov ip, r2
108c8: 4465 add r5, ip
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
108ca: 2201 movs r2, #1
108cc: 409a lsls r2, r3
108ce: 0013 movs r3, r2
108d0: 3b01 subs r3, #1
out[byte_pos] &= ((~bit_mask) << bit_pos);
108d2: b2db uxtb r3, r3
108d4: 43db mvns r3, r3
108d6: 40b3 lsls r3, r6
108d8: 782a ldrb r2, [r5, #0]
108da: 4013 ands r3, r2
out[byte_pos] |= (val << bit_pos);
108dc: 40b4 lsls r4, r6
108de: 4323 orrs r3, r4
108e0: 702b strb r3, [r5, #0]
108e2: 9b06 ldr r3, [sp, #24]
108e4: 469c mov ip, r3
108e6: 4461 add r1, ip
108e8: 3701 adds r7, #1
for(x = 0; x < w; x++) {
108ea: b23b sxth r3, r7
108ec: 459b cmp fp, r3
108ee: dd25 ble.n 1093c <lv_font_get_bitmap_fmt_txt+0x964>
line_buf1[x] = line_buf2[x] ^ line_buf1[x];
108f0: 9b03 ldr r3, [sp, #12]
108f2: 5ddc ldrb r4, [r3, r7]
108f4: 5dc3 ldrb r3, [r0, r7]
108f6: 405c eors r4, r3
108f8: 55c4 strb r4, [r0, r7]
if(len == 3) {
108fa: 9b07 ldr r3, [sp, #28]
108fc: 9a02 ldr r2, [sp, #8]
108fe: 2a03 cmp r2, #3
10900: d1d9 bne.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
switch(val) {
10902: 2c07 cmp r4, #7
10904: d818 bhi.n 10938 <lv_font_get_bitmap_fmt_txt+0x960>
10906: 00a4 lsls r4, r4, #2
10908: 4b35 ldr r3, [pc, #212] ; (109e0 <lv_font_get_bitmap_fmt_txt+0xa08>)
1090a: 591b ldr r3, [r3, r4]
1090c: 469f mov pc, r3
len = 4;
1090e: 2304 movs r3, #4
val = 2;
10910: 2402 movs r4, #2
10912: e7d0 b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
10914: 2304 movs r3, #4
val = 4;
10916: 2404 movs r4, #4
10918: e7cd b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
1091a: 2304 movs r3, #4
val = 6;
1091c: 2406 movs r4, #6
1091e: e7ca b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
10920: 2304 movs r3, #4
val = 9;
10922: 2409 movs r4, #9
10924: e7c7 b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
10926: 2304 movs r3, #4
val = 11;
10928: 240b movs r4, #11
1092a: e7c4 b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
1092c: 2304 movs r3, #4
val = 13;
1092e: 240d movs r4, #13
10930: e7c1 b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
10932: 2304 movs r3, #4
val = 15;
10934: 240f movs r4, #15
10936: e7be b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
len = 4;
10938: 2304 movs r3, #4
1093a: e7bc b.n 108b6 <lv_font_get_bitmap_fmt_txt+0x8de>
1093c: 0005 movs r5, r0
1093e: 9a13 ldr r2, [sp, #76] ; 0x4c
10940: 4694 mov ip, r2
10942: 4640 mov r0, r8
10944: 9b17 ldr r3, [sp, #92] ; 0x5c
10946: 9a06 ldr r2, [sp, #24]
10948: 4690 mov r8, r2
1094a: 4443 add r3, r8
1094c: 9a11 ldr r2, [sp, #68] ; 0x44
1094e: 4690 mov r8, r2
10950: 4498 add r8, r3
10952: 4643 mov r3, r8
10954: 9311 str r3, [sp, #68] ; 0x44
10956: 9b12 ldr r3, [sp, #72] ; 0x48
10958: 3301 adds r3, #1
1095a: 9312 str r3, [sp, #72] ; 0x48
for(y = 1; y < h; y++) {
1095c: 9a15 ldr r2, [sp, #84] ; 0x54
1095e: 4293 cmp r3, r2
10960: d00d beq.n 1097e <lv_font_get_bitmap_fmt_txt+0x9a6>
for(i = 0; i < w; i++) {
10962: 465b mov r3, fp
10964: 2b00 cmp r3, #0
10966: ddf6 ble.n 10956 <lv_font_get_bitmap_fmt_txt+0x97e>
10968: 9b03 ldr r3, [sp, #12]
1096a: 4698 mov r8, r3
1096c: 001c movs r4, r3
1096e: 9b16 ldr r3, [sp, #88] ; 0x58
10970: 1c5e adds r6, r3, #1
10972: 4446 add r6, r8
10974: 46a8 mov r8, r5
10976: 4661 mov r1, ip
10978: 46b4 mov ip, r6
1097a: 4656 mov r6, sl
1097c: e64b b.n 10616 <lv_font_get_bitmap_fmt_txt+0x63e>
1097e: 9b08 ldr r3, [sp, #32]
10980: 4698 mov r8, r3
10982: 4661 mov r1, ip
10984: 9b0a ldr r3, [sp, #40] ; 0x28
10986: 2b00 cmp r3, #0
10988: d118 bne.n 109bc <lv_font_get_bitmap_fmt_txt+0x9e4>
1098a: 9b09 ldr r3, [sp, #36] ; 0x24
1098c: 2b00 cmp r3, #0
1098e: d001 beq.n 10994 <lv_font_get_bitmap_fmt_txt+0x9bc>
10990: 4b14 ldr r3, [pc, #80] ; (109e4 <lv_font_get_bitmap_fmt_txt+0xa0c>)
10992: 6018 str r0, [r3, #0]
10994: 9b0f ldr r3, [sp, #60] ; 0x3c
10996: 2b00 cmp r3, #0
10998: d001 beq.n 1099e <lv_font_get_bitmap_fmt_txt+0x9c6>
1099a: 4b13 ldr r3, [pc, #76] ; (109e8 <lv_font_get_bitmap_fmt_txt+0xa10>)
1099c: 7019 strb r1, [r3, #0]
1099e: 9b0d ldr r3, [sp, #52] ; 0x34
109a0: 2b00 cmp r3, #0
109a2: d002 beq.n 109aa <lv_font_get_bitmap_fmt_txt+0x9d2>
109a4: 4b11 ldr r3, [pc, #68] ; (109ec <lv_font_get_bitmap_fmt_txt+0xa14>)
109a6: 4642 mov r2, r8
109a8: 701a strb r2, [r3, #0]
_lv_mem_buf_release(line_buf1);
109aa: 9819 ldr r0, [sp, #100] ; 0x64
109ac: 4c10 ldr r4, [pc, #64] ; (109f0 <lv_font_get_bitmap_fmt_txt+0xa18>)
109ae: 47a0 blx r4
_lv_mem_buf_release(line_buf2);
109b0: 9803 ldr r0, [sp, #12]
109b2: 47a0 blx r4
return decompr_buf;
109b4: 4b0f ldr r3, [pc, #60] ; (109f4 <lv_font_get_bitmap_fmt_txt+0xa1c>)
109b6: 6818 ldr r0, [r3, #0]
109b8: f7ff fb2d bl 10016 <lv_font_get_bitmap_fmt_txt+0x3e>
109bc: 4b0e ldr r3, [pc, #56] ; (109f8 <lv_font_get_bitmap_fmt_txt+0xa20>)
109be: 466a mov r2, sp
109c0: 7c12 ldrb r2, [r2, #16]
109c2: 701a strb r2, [r3, #0]
109c4: e7e1 b.n 1098a <lv_font_get_bitmap_fmt_txt+0x9b2>
if(!gid) return NULL;
109c6: 2000 movs r0, #0
109c8: f7ff fb25 bl 10016 <lv_font_get_bitmap_fmt_txt+0x3e>
return NULL;
109cc: 2000 movs r0, #0
109ce: f7ff fb22 bl 10016 <lv_font_get_bitmap_fmt_txt+0x3e>
if(gsize == 0) return NULL;
109d2: 2000 movs r0, #0
109d4: f7ff fb1f bl 10016 <lv_font_get_bitmap_fmt_txt+0x3e>
if(decompr_buf == NULL) return NULL;
109d8: 2000 movs r0, #0
109da: f7ff fb1c bl 10016 <lv_font_get_bitmap_fmt_txt+0x3e>
109de: 46c0 nop ; (mov r8, r8)
109e0: 000269d0 .word 0x000269d0
109e4: 20002bd8 .word 0x20002bd8
109e8: 20002bdc .word 0x20002bdc
109ec: 20002bcd .word 0x20002bcd
109f0: 00012465 .word 0x00012465
109f4: 20002bc8 .word 0x20002bc8
109f8: 20002bd4 .word 0x20002bd4
000109fc <lv_font_get_glyph_dsc_fmt_txt>:
{
109fc: b5f0 push {r4, r5, r6, r7, lr}
109fe: 46de mov lr, fp
10a00: 4657 mov r7, sl
10a02: 464e mov r6, r9
10a04: 4645 mov r5, r8
10a06: b5e0 push {r5, r6, r7, lr}
10a08: b085 sub sp, #20
10a0a: 4681 mov r9, r0
10a0c: 000c movs r4, r1
10a0e: 001f movs r7, r3
bool is_tab = false;
10a10: 2500 movs r5, #0
if(unicode_letter == '\t') {
10a12: 2a09 cmp r2, #9
10a14: d03a beq.n 10a8c <lv_font_get_glyph_dsc_fmt_txt+0x90>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
10a16: 464b mov r3, r9
10a18: 691e ldr r6, [r3, #16]
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
10a1a: 0011 movs r1, r2
10a1c: 4648 mov r0, r9
10a1e: 4b53 ldr r3, [pc, #332] ; (10b6c <lv_font_get_glyph_dsc_fmt_txt+0x170>)
10a20: 4798 blx r3
10a22: 4683 mov fp, r0
if(!gid) return false;
10a24: 2800 cmp r0, #0
10a26: d100 bne.n 10a2a <lv_font_get_glyph_dsc_fmt_txt+0x2e>
10a28: e094 b.n 10b54 <lv_font_get_glyph_dsc_fmt_txt+0x158>
if(fdsc->kern_dsc) {
10a2a: 68f3 ldr r3, [r6, #12]
10a2c: 2b00 cmp r3, #0
10a2e: d100 bne.n 10a32 <lv_font_get_glyph_dsc_fmt_txt+0x36>
10a30: e08e b.n 10b50 <lv_font_get_glyph_dsc_fmt_txt+0x154>
uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next);
10a32: 0039 movs r1, r7
10a34: 4648 mov r0, r9
10a36: 4b4d ldr r3, [pc, #308] ; (10b6c <lv_font_get_glyph_dsc_fmt_txt+0x170>)
10a38: 4798 blx r3
int8_t kvalue = 0;
10a3a: 2300 movs r3, #0
if(gid_next) {
10a3c: 2800 cmp r0, #0
10a3e: d128 bne.n 10a92 <lv_font_get_glyph_dsc_fmt_txt+0x96>
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
10a40: 465a mov r2, fp
10a42: 00d0 lsls r0, r2, #3
10a44: 6872 ldr r2, [r6, #4]
10a46: 4694 mov ip, r2
10a48: 4460 add r0, ip
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
10a4a: 8a32 ldrh r2, [r6, #16]
10a4c: 435a muls r2, r3
10a4e: 1112 asrs r2, r2, #4
uint32_t adv_w = gdsc->adv_w;
10a50: 8841 ldrh r1, [r0, #2]
10a52: 0909 lsrs r1, r1, #4
if(is_tab) adv_w *= 2;
10a54: 2d00 cmp r5, #0
10a56: d000 beq.n 10a5a <lv_font_get_glyph_dsc_fmt_txt+0x5e>
10a58: 0049 lsls r1, r1, #1
adv_w = (adv_w + (1 << 3)) >> 4;
10a5a: 0013 movs r3, r2
10a5c: 3308 adds r3, #8
10a5e: 185b adds r3, r3, r1
10a60: 091b lsrs r3, r3, #4
dsc_out->adv_w = adv_w;
10a62: 8023 strh r3, [r4, #0]
dsc_out->box_h = gdsc->box_h;
10a64: 7943 ldrb r3, [r0, #5]
10a66: 80a3 strh r3, [r4, #4]
dsc_out->box_w = gdsc->box_w;
10a68: 7902 ldrb r2, [r0, #4]
10a6a: 8062 strh r2, [r4, #2]
dsc_out->ofs_x = gdsc->ofs_x;
10a6c: 2306 movs r3, #6
10a6e: 56c3 ldrsb r3, [r0, r3]
10a70: 80e3 strh r3, [r4, #6]
dsc_out->ofs_y = gdsc->ofs_y;
10a72: 2307 movs r3, #7
10a74: 56c3 ldrsb r3, [r0, r3]
10a76: 8123 strh r3, [r4, #8]
dsc_out->bpp = (uint8_t)fdsc->bpp;
10a78: 7cf3 ldrb r3, [r6, #19]
10a7a: 069b lsls r3, r3, #26
10a7c: 0f1b lsrs r3, r3, #28
10a7e: 72a3 strb r3, [r4, #10]
if(is_tab) dsc_out->box_w = dsc_out->box_w * 2;
10a80: 2d00 cmp r5, #0
10a82: d100 bne.n 10a86 <lv_font_get_glyph_dsc_fmt_txt+0x8a>
10a84: e06f b.n 10b66 <lv_font_get_glyph_dsc_fmt_txt+0x16a>
10a86: 0052 lsls r2, r2, #1
10a88: 8062 strh r2, [r4, #2]
10a8a: e064 b.n 10b56 <lv_font_get_glyph_dsc_fmt_txt+0x15a>
is_tab = true;
10a8c: 3501 adds r5, #1
unicode_letter = ' ';
10a8e: 3217 adds r2, #23
10a90: e7c1 b.n 10a16 <lv_font_get_glyph_dsc_fmt_txt+0x1a>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
10a92: 464b mov r3, r9
10a94: 691b ldr r3, [r3, #16]
if(fdsc->kern_classes == 0) {
10a96: 7cda ldrb r2, [r3, #19]
10a98: 0652 lsls r2, r2, #25
10a9a: d442 bmi.n 10b22 <lv_font_get_glyph_dsc_fmt_txt+0x126>
const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc;
10a9c: 68db ldr r3, [r3, #12]
10a9e: 4698 mov r8, r3
if(kdsc->glyph_ids_size == 0) {
10aa0: 7adb ldrb r3, [r3, #11]
10aa2: 2203 movs r2, #3
10aa4: 401a ands r2, r3
10aa6: d01c beq.n 10ae2 <lv_font_get_glyph_dsc_fmt_txt+0xe6>
int8_t value = 0;
10aa8: 2300 movs r3, #0
else if(kdsc->glyph_ids_size == 1) {
10aaa: 2a01 cmp r2, #1
10aac: d1c8 bne.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
const uint16_t * g_ids = kdsc->glyph_ids;
10aae: 4643 mov r3, r8
10ab0: 681b ldr r3, [r3, #0]
10ab2: 4699 mov r9, r3
lv_uintptr_t g_id_both = (uint32_t)((uint32_t)gid_right << 8) + gid_left; /*Create one number from the ids*/
10ab4: 0200 lsls r0, r0, #8
10ab6: 4458 add r0, fp
10ab8: 9003 str r0, [sp, #12]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare);
10aba: 4643 mov r3, r8
10abc: 689b ldr r3, [r3, #8]
10abe: 021a lsls r2, r3, #8
10ac0: 0a12 lsrs r2, r2, #8
10ac2: 4b2b ldr r3, [pc, #172] ; (10b70 <lv_font_get_glyph_dsc_fmt_txt+0x174>)
10ac4: 9300 str r3, [sp, #0]
10ac6: 2304 movs r3, #4
10ac8: 4649 mov r1, r9
10aca: a803 add r0, sp, #12
10acc: 4f29 ldr r7, [pc, #164] ; (10b74 <lv_font_get_glyph_dsc_fmt_txt+0x178>)
10ace: 47b8 blx r7
if(kid_p) {
10ad0: 2800 cmp r0, #0
10ad2: d024 beq.n 10b1e <lv_font_get_glyph_dsc_fmt_txt+0x122>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids);
10ad4: 464b mov r3, r9
10ad6: 1ac0 subs r0, r0, r3
ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/
10ad8: 0900 lsrs r0, r0, #4
value = kdsc->values[ofs];
10ada: 4643 mov r3, r8
10adc: 685b ldr r3, [r3, #4]
10ade: 561b ldrsb r3, [r3, r0]
10ae0: e7ae b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
const uint8_t * g_ids = kdsc->glyph_ids;
10ae2: 4643 mov r3, r8
10ae4: 681b ldr r3, [r3, #0]
10ae6: 4699 mov r9, r3
uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/
10ae8: ab03 add r3, sp, #12
10aea: 469c mov ip, r3
10aec: 0200 lsls r0, r0, #8
10aee: 4458 add r0, fp
10af0: 8018 strh r0, [r3, #0]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
10af2: 4643 mov r3, r8
10af4: 689b ldr r3, [r3, #8]
10af6: 021a lsls r2, r3, #8
10af8: 0a12 lsrs r2, r2, #8
10afa: 4b1f ldr r3, [pc, #124] ; (10b78 <lv_font_get_glyph_dsc_fmt_txt+0x17c>)
10afc: 9300 str r3, [sp, #0]
10afe: 2302 movs r3, #2
10b00: 4649 mov r1, r9
10b02: 4660 mov r0, ip
10b04: 4f1b ldr r7, [pc, #108] ; (10b74 <lv_font_get_glyph_dsc_fmt_txt+0x178>)
10b06: 47b8 blx r7
if(kid_p) {
10b08: 2800 cmp r0, #0
10b0a: d006 beq.n 10b1a <lv_font_get_glyph_dsc_fmt_txt+0x11e>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids);
10b0c: 464b mov r3, r9
10b0e: 1ac0 subs r0, r0, r3
ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/
10b10: 0840 lsrs r0, r0, #1
value = kdsc->values[ofs];
10b12: 4643 mov r3, r8
10b14: 685b ldr r3, [r3, #4]
10b16: 561b ldrsb r3, [r3, r0]
10b18: e792 b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
int8_t value = 0;
10b1a: 2300 movs r3, #0
10b1c: e790 b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
10b1e: 2300 movs r3, #0
10b20: e78e b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
const lv_font_fmt_txt_kern_classes_t * kdsc = fdsc->kern_dsc;
10b22: 68da ldr r2, [r3, #12]
uint8_t left_class = kdsc->left_class_mapping[gid_left];
10b24: 6853 ldr r3, [r2, #4]
10b26: 4659 mov r1, fp
10b28: 5c59 ldrb r1, [r3, r1]
int8_t value = 0;
10b2a: 2300 movs r3, #0
if(left_class > 0 && right_class > 0) {
10b2c: 2900 cmp r1, #0
10b2e: d087 beq.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
uint8_t right_class = kdsc->right_class_mapping[gid_right];
10b30: 6893 ldr r3, [r2, #8]
10b32: 5c18 ldrb r0, [r3, r0]
int8_t value = 0;
10b34: 2300 movs r3, #0
if(left_class > 0 && right_class > 0) {
10b36: 2800 cmp r0, #0
10b38: d100 bne.n 10b3c <lv_font_get_glyph_dsc_fmt_txt+0x140>
10b3a: e781 b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)];
10b3c: 3901 subs r1, #1
10b3e: 7b53 ldrb r3, [r2, #13]
10b40: 434b muls r3, r1
10b42: 6811 ldr r1, [r2, #0]
10b44: 1809 adds r1, r1, r0
10b46: 18c9 adds r1, r1, r3
10b48: 3901 subs r1, #1
10b4a: 2300 movs r3, #0
10b4c: 56cb ldrsb r3, [r1, r3]
10b4e: e777 b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
int8_t kvalue = 0;
10b50: 2300 movs r3, #0
10b52: e775 b.n 10a40 <lv_font_get_glyph_dsc_fmt_txt+0x44>
if(!gid) return false;
10b54: 2500 movs r5, #0
}
10b56: 0028 movs r0, r5
10b58: b005 add sp, #20
10b5a: bc3c pop {r2, r3, r4, r5}
10b5c: 4690 mov r8, r2
10b5e: 4699 mov r9, r3
10b60: 46a2 mov sl, r4
10b62: 46ab mov fp, r5
10b64: bdf0 pop {r4, r5, r6, r7, pc}
return true;
10b66: 2501 movs r5, #1
10b68: e7f5 b.n 10b56 <lv_font_get_glyph_dsc_fmt_txt+0x15a>
10b6a: 46c0 nop ; (mov r8, r8)
10b6c: 0000fee5 .word 0x0000fee5
10b70: 0000fec9 .word 0x0000fec9
10b74: 0001406d .word 0x0001406d
10b78: 0000feb5 .word 0x0000feb5
00010b7c <_lv_font_clean_up_fmt_txt>:
{
10b7c: b510 push {r4, lr}
if(decompr_buf) {
10b7e: 4b05 ldr r3, [pc, #20] ; (10b94 <_lv_font_clean_up_fmt_txt+0x18>)
10b80: 6818 ldr r0, [r3, #0]
10b82: 2800 cmp r0, #0
10b84: d004 beq.n 10b90 <_lv_font_clean_up_fmt_txt+0x14>
lv_mem_free(decompr_buf);
10b86: 4b04 ldr r3, [pc, #16] ; (10b98 <_lv_font_clean_up_fmt_txt+0x1c>)
10b88: 4798 blx r3
decompr_buf = NULL;
10b8a: 2200 movs r2, #0
10b8c: 4b01 ldr r3, [pc, #4] ; (10b94 <_lv_font_clean_up_fmt_txt+0x18>)
10b8e: 601a str r2, [r3, #0]
}
10b90: bd10 pop {r4, pc}
10b92: 46c0 nop ; (mov r8, r8)
10b94: 20002bc8 .word 0x20002bc8
10b98: 000123c9 .word 0x000123c9
00010b9c <lv_disp_drv_init>:
* 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)
{
10b9c: b510 push {r4, lr}
10b9e: 0004 movs r4, r0
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
10ba0: 212c movs r1, #44 ; 0x2c
10ba2: 4b15 ldr r3, [pc, #84] ; (10bf8 <lv_disp_drv_init+0x5c>)
10ba4: 4798 blx r3
driver->flush_cb = NULL;
10ba6: 2200 movs r2, #0
10ba8: 60e2 str r2, [r4, #12]
driver->hor_res = LV_HOR_RES_MAX;
10baa: 23f0 movs r3, #240 ; 0xf0
10bac: 005b lsls r3, r3, #1
10bae: 8023 strh r3, [r4, #0]
driver->ver_res = LV_VER_RES_MAX;
10bb0: 3bd0 subs r3, #208 ; 0xd0
10bb2: 8063 strh r3, [r4, #2]
driver->buffer = NULL;
10bb4: 6062 str r2, [r4, #4]
driver->rotated = 0;
10bb6: 7a23 ldrb r3, [r4, #8]
10bb8: 2102 movs r1, #2
10bba: 438b bics r3, r1
10bbc: 7223 strb r3, [r4, #8]
driver->color_chroma_key = LV_COLOR_TRANSP;
10bbe: 3126 adds r1, #38 ; 0x26
10bc0: 5c63 ldrb r3, [r4, r1]
10bc2: 201f movs r0, #31
10bc4: 4383 bics r3, r0
10bc6: 5463 strb r3, [r4, r1]
10bc8: 8d21 ldrh r1, [r4, #40] ; 0x28
10bca: 23fc movs r3, #252 ; 0xfc
10bcc: 00db lsls r3, r3, #3
10bce: 430b orrs r3, r1
10bd0: 8523 strh r3, [r4, #40] ; 0x28
10bd2: 0021 movs r1, r4
10bd4: 3128 adds r1, #40 ; 0x28
10bd6: 055b lsls r3, r3, #21
10bd8: 0f5b lsrs r3, r3, #29
10bda: 704b strb r3, [r1, #1]
driver->dpi = LV_DPI;
10bdc: 8923 ldrh r3, [r4, #8]
10bde: 4907 ldr r1, [pc, #28] ; (10bfc <lv_disp_drv_init+0x60>)
10be0: 4019 ands r1, r3
10be2: 2382 movs r3, #130 ; 0x82
10be4: 009b lsls r3, r3, #2
10be6: 430b orrs r3, r1
10be8: 8123 strh r3, [r4, #8]
#if LV_ANTIALIAS
driver->antialiasing = true;
10bea: 2101 movs r1, #1
10bec: 430b orrs r3, r1
10bee: 7223 strb r3, [r4, #8]
#if LV_COLOR_SCREEN_TRANSP
driver->screen_transp = 1;
#endif
#if LV_USE_GPU
driver->gpu_blend_cb = NULL;
10bf0: 6222 str r2, [r4, #32]
driver->gpu_fill_cb = NULL;
10bf2: 6262 str r2, [r4, #36] ; 0x24
#if LV_USE_USER_DATA
driver->user_data = NULL;
#endif
driver->set_px_cb = NULL;
10bf4: 6162 str r2, [r4, #20]
}
10bf6: bd10 pop {r4, pc}
10bf8: 00012975 .word 0x00012975
10bfc: fffff003 .word 0xfffff003
00010c00 <lv_disp_buf_init>:
* 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_buf_init(lv_disp_buf_t * disp_buf, void * buf1, void * buf2, uint32_t size_in_px_cnt)
{
10c00: b5f8 push {r3, r4, r5, r6, r7, lr}
10c02: 0004 movs r4, r0
10c04: 000d movs r5, r1
10c06: 0017 movs r7, r2
10c08: 001e movs r6, r3
_lv_memset_00(disp_buf, sizeof(lv_disp_buf_t));
10c0a: 2124 movs r1, #36 ; 0x24
10c0c: 4b03 ldr r3, [pc, #12] ; (10c1c <lv_disp_buf_init+0x1c>)
10c0e: 4798 blx r3
disp_buf->buf1 = buf1;
10c10: 6025 str r5, [r4, #0]
disp_buf->buf2 = buf2;
10c12: 6067 str r7, [r4, #4]
disp_buf->buf_act = disp_buf->buf1;
10c14: 60a5 str r5, [r4, #8]
disp_buf->size = size_in_px_cnt;
10c16: 60e6 str r6, [r4, #12]
}
10c18: bdf8 pop {r3, r4, r5, r6, r7, pc}
10c1a: 46c0 nop ; (mov r8, r8)
10c1c: 00012975 .word 0x00012975
00010c20 <lv_disp_drv_register>:
* Automatically set the first display as active.
* @param driver pointer to an initialized 'lv_disp_drv_t' variable (can be local variable)
* @return pointer to the new display or NULL on error
*/
lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)
{
10c20: b570 push {r4, r5, r6, lr}
10c22: b082 sub sp, #8
10c24: 0005 movs r5, r0
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
10c26: 4840 ldr r0, [pc, #256] ; (10d28 <lv_disp_drv_register+0x108>)
10c28: 4b40 ldr r3, [pc, #256] ; (10d2c <lv_disp_drv_register+0x10c>)
10c2a: 4798 blx r3
10c2c: 1e04 subs r4, r0, #0
if(!disp) {
10c2e: d056 beq.n 10cde <lv_disp_drv_register+0xbe>
LV_ASSERT_MEM(disp);
return NULL;
}
_lv_memset_00(disp, sizeof(lv_disp_t));
10c30: 21b8 movs r1, #184 ; 0xb8
10c32: 0049 lsls r1, r1, #1
10c34: 4b3e ldr r3, [pc, #248] ; (10d30 <lv_disp_drv_register+0x110>)
10c36: 4798 blx r3
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
10c38: 222c movs r2, #44 ; 0x2c
10c3a: 0029 movs r1, r5
10c3c: 0020 movs r0, r4
10c3e: 4b3d ldr r3, [pc, #244] ; (10d34 <lv_disp_drv_register+0x114>)
10c40: 4798 blx r3
_lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t));
10c42: 0020 movs r0, r4
10c44: 3030 adds r0, #48 ; 0x30
10c46: 214c movs r1, #76 ; 0x4c
10c48: 4b3b ldr r3, [pc, #236] ; (10d38 <lv_disp_drv_register+0x118>)
10c4a: 4798 blx r3
disp->last_activity_time = 0;
10c4c: 2200 movs r2, #0
10c4e: 23b6 movs r3, #182 ; 0xb6
10c50: 005b lsls r3, r3, #1
10c52: 50e2 str r2, [r4, r3]
if(disp_def == NULL) disp_def = disp;
10c54: 4b39 ldr r3, [pc, #228] ; (10d3c <lv_disp_drv_register+0x11c>)
10c56: 681b ldr r3, [r3, #0]
10c58: 2b00 cmp r3, #0
10c5a: d052 beq.n 10d02 <lv_disp_drv_register+0xe2>
lv_disp_t * disp_def_tmp = disp_def;
10c5c: 4b37 ldr r3, [pc, #220] ; (10d3c <lv_disp_drv_register+0x11c>)
10c5e: 681e ldr r6, [r3, #0]
disp_def = disp; /*Temporarily change the default screen to create the default screens on the
10c60: 601c str r4, [r3, #0]
new display*/
/*Create a refresh task*/
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
10c62: 0023 movs r3, r4
10c64: 2203 movs r2, #3
10c66: 211e movs r1, #30
10c68: 4835 ldr r0, [pc, #212] ; (10d40 <lv_disp_drv_register+0x120>)
10c6a: 4d36 ldr r5, [pc, #216] ; (10d44 <lv_disp_drv_register+0x124>)
10c6c: 47a8 blx r5
10c6e: 62e0 str r0, [r4, #44] ; 0x2c
LV_ASSERT_MEM(disp->refr_task);
10c70: 4b35 ldr r3, [pc, #212] ; (10d48 <lv_disp_drv_register+0x128>)
10c72: 4798 blx r3
10c74: 2800 cmp r0, #0
10c76: d047 beq.n 10d08 <lv_disp_drv_register+0xe8>
if(disp->refr_task == NULL) return NULL;
10c78: 6ae3 ldr r3, [r4, #44] ; 0x2c
10c7a: 2b00 cmp r3, #0
10c7c: d051 beq.n 10d22 <lv_disp_drv_register+0x102>
disp->inv_p = 0;
10c7e: 22b4 movs r2, #180 ; 0xb4
10c80: 0052 lsls r2, r2, #1
10c82: 5aa3 ldrh r3, [r4, r2]
10c84: 0a9b lsrs r3, r3, #10
10c86: 029b lsls r3, r3, #10
10c88: 52a3 strh r3, [r4, r2]
disp->last_activity_time = 0;
10c8a: 2200 movs r2, #0
10c8c: 23b6 movs r3, #182 ; 0xb6
10c8e: 005b lsls r3, r3, #1
10c90: 50e2 str r2, [r4, r3]
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
10c92: 2100 movs r1, #0
10c94: 2000 movs r0, #0
10c96: 4d2d ldr r5, [pc, #180] ; (10d4c <lv_disp_drv_register+0x12c>)
10c98: 47a8 blx r5
10c9a: 63e0 str r0, [r4, #60] ; 0x3c
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
10c9c: 2100 movs r1, #0
10c9e: 2000 movs r0, #0
10ca0: 47a8 blx r5
10ca2: 6420 str r0, [r4, #64] ; 0x40
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
10ca4: 2100 movs r1, #0
10ca6: 2000 movs r0, #0
10ca8: 47a8 blx r5
10caa: 6460 str r0, [r4, #68] ; 0x44
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
10cac: 2100 movs r1, #0
10cae: 6c20 ldr r0, [r4, #64] ; 0x40
10cb0: 4d27 ldr r5, [pc, #156] ; (10d50 <lv_disp_drv_register+0x130>)
10cb2: 47a8 blx r5
lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN);
10cb4: 2100 movs r1, #0
10cb6: 6c60 ldr r0, [r4, #68] ; 0x44
10cb8: 47a8 blx r5
lv_obj_set_click(disp->top_layer, false);
10cba: 2100 movs r1, #0
10cbc: 6c20 ldr r0, [r4, #64] ; 0x40
10cbe: 4d25 ldr r5, [pc, #148] ; (10d54 <lv_disp_drv_register+0x134>)
10cc0: 47a8 blx r5
lv_obj_set_click(disp->sys_layer, false);
10cc2: 2100 movs r1, #0
10cc4: 6c60 ldr r0, [r4, #68] ; 0x44
10cc6: 47a8 blx r5
lv_obj_invalidate(disp->act_scr);
10cc8: 6be0 ldr r0, [r4, #60] ; 0x3c
10cca: 4b23 ldr r3, [pc, #140] ; (10d58 <lv_disp_drv_register+0x138>)
10ccc: 4798 blx r3
disp_def = disp_def_tmp; /*Revert the default display*/
10cce: 4b1b ldr r3, [pc, #108] ; (10d3c <lv_disp_drv_register+0x11c>)
10cd0: 601e str r6, [r3, #0]
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
10cd2: 6ae0 ldr r0, [r4, #44] ; 0x2c
10cd4: 4b21 ldr r3, [pc, #132] ; (10d5c <lv_disp_drv_register+0x13c>)
10cd6: 4798 blx r3
return disp;
}
10cd8: 0020 movs r0, r4
10cda: b002 add sp, #8
10cdc: bd70 pop {r4, r5, r6, pc}
LV_ASSERT_MEM(disp);
10cde: 2000 movs r0, #0
10ce0: 4b19 ldr r3, [pc, #100] ; (10d48 <lv_disp_drv_register+0x128>)
10ce2: 4798 blx r3
10ce4: 2800 cmp r0, #0
10ce6: d1f7 bne.n 10cd8 <lv_disp_drv_register+0xb8>
10ce8: 4b1d ldr r3, [pc, #116] ; (10d60 <lv_disp_drv_register+0x140>)
10cea: 9300 str r3, [sp, #0]
10cec: 227c movs r2, #124 ; 0x7c
10cee: 491d ldr r1, [pc, #116] ; (10d64 <lv_disp_drv_register+0x144>)
10cf0: 3003 adds r0, #3
10cf2: 4c1d ldr r4, [pc, #116] ; (10d68 <lv_disp_drv_register+0x148>)
10cf4: 47a0 blx r4
10cf6: 2200 movs r2, #0
10cf8: 2300 movs r3, #0
10cfa: 481c ldr r0, [pc, #112] ; (10d6c <lv_disp_drv_register+0x14c>)
10cfc: 491c ldr r1, [pc, #112] ; (10d70 <lv_disp_drv_register+0x150>)
10cfe: 4788 blx r1
10d00: e7fe b.n 10d00 <lv_disp_drv_register+0xe0>
if(disp_def == NULL) disp_def = disp;
10d02: 4b0e ldr r3, [pc, #56] ; (10d3c <lv_disp_drv_register+0x11c>)
10d04: 601c str r4, [r3, #0]
10d06: e7a9 b.n 10c5c <lv_disp_drv_register+0x3c>
LV_ASSERT_MEM(disp->refr_task);
10d08: 4b15 ldr r3, [pc, #84] ; (10d60 <lv_disp_drv_register+0x140>)
10d0a: 9300 str r3, [sp, #0]
10d0c: 228d movs r2, #141 ; 0x8d
10d0e: 4915 ldr r1, [pc, #84] ; (10d64 <lv_disp_drv_register+0x144>)
10d10: 3003 adds r0, #3
10d12: 4d15 ldr r5, [pc, #84] ; (10d68 <lv_disp_drv_register+0x148>)
10d14: 47a8 blx r5
10d16: 6ae2 ldr r2, [r4, #44] ; 0x2c
10d18: 2300 movs r3, #0
10d1a: 4814 ldr r0, [pc, #80] ; (10d6c <lv_disp_drv_register+0x14c>)
10d1c: 4914 ldr r1, [pc, #80] ; (10d70 <lv_disp_drv_register+0x150>)
10d1e: 4788 blx r1
10d20: e7fe b.n 10d20 <lv_disp_drv_register+0x100>
if(disp->refr_task == NULL) return NULL;
10d22: 2400 movs r4, #0
10d24: e7d8 b.n 10cd8 <lv_disp_drv_register+0xb8>
10d26: 46c0 nop ; (mov r8, r8)
10d28: 20004d20 .word 0x20004d20
10d2c: 00011de5 .word 0x00011de5
10d30: 00012975 .word 0x00012975
10d34: 00012545 .word 0x00012545
10d38: 00011dd1 .word 0x00011dd1
10d3c: 20002be0 .word 0x20002be0
10d40: 0000559d .word 0x0000559d
10d44: 0001391d .word 0x0001391d
10d48: 000017ad .word 0x000017ad
10d4c: 00003395 .word 0x00003395
10d50: 00003105 .word 0x00003105
10d54: 00001ea5 .word 0x00001ea5
10d58: 00002869 .word 0x00002869
10d5c: 0001398d .word 0x0001398d
10d60: 0002a6f0 .word 0x0002a6f0
10d64: 0002a708 .word 0x0002a708
10d68: 00012159 .word 0x00012159
10d6c: 00025854 .word 0x00025854
10d70: 000017b5 .word 0x000017b5
00010d74 <lv_disp_get_default>:
* Get the default display
* @return pointer to the default display
*/
lv_disp_t * lv_disp_get_default(void)
{
return disp_def;
10d74: 4b01 ldr r3, [pc, #4] ; (10d7c <lv_disp_get_default+0x8>)
10d76: 6818 ldr r0, [r3, #0]
}
10d78: 4770 bx lr
10d7a: 46c0 nop ; (mov r8, r8)
10d7c: 20002be0 .word 0x20002be0
00010d80 <lv_disp_get_hor_res>:
* 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)
{
10d80: 1e03 subs r3, r0, #0
if(disp == NULL) disp = lv_disp_get_default();
10d82: d005 beq.n 10d90 <lv_disp_get_hor_res+0x10>
if(disp == NULL)
return LV_HOR_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
10d84: 7a1a ldrb r2, [r3, #8]
10d86: 0792 lsls r2, r2, #30
10d88: d509 bpl.n 10d9e <lv_disp_get_hor_res+0x1e>
10d8a: 2002 movs r0, #2
10d8c: 5e18 ldrsh r0, [r3, r0]
}
10d8e: 4770 bx lr
return disp_def;
10d90: 4b04 ldr r3, [pc, #16] ; (10da4 <lv_disp_get_hor_res+0x24>)
10d92: 681b ldr r3, [r3, #0]
return LV_HOR_RES_MAX;
10d94: 20f0 movs r0, #240 ; 0xf0
10d96: 0040 lsls r0, r0, #1
if(disp == NULL)
10d98: 2b00 cmp r3, #0
10d9a: d0f8 beq.n 10d8e <lv_disp_get_hor_res+0xe>
10d9c: e7f2 b.n 10d84 <lv_disp_get_hor_res+0x4>
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
10d9e: 2000 movs r0, #0
10da0: 5e18 ldrsh r0, [r3, r0]
10da2: e7f4 b.n 10d8e <lv_disp_get_hor_res+0xe>
10da4: 20002be0 .word 0x20002be0
00010da8 <lv_disp_get_ver_res>:
* 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)
{
10da8: 1e03 subs r3, r0, #0
if(disp == NULL) disp = lv_disp_get_default();
10daa: d005 beq.n 10db8 <lv_disp_get_ver_res+0x10>
if(disp == NULL)
return LV_VER_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
10dac: 7a1a ldrb r2, [r3, #8]
10dae: 0792 lsls r2, r2, #30
10db0: d509 bpl.n 10dc6 <lv_disp_get_ver_res+0x1e>
10db2: 2000 movs r0, #0
10db4: 5e18 ldrsh r0, [r3, r0]
}
10db6: 4770 bx lr
return disp_def;
10db8: 4b04 ldr r3, [pc, #16] ; (10dcc <lv_disp_get_ver_res+0x24>)
10dba: 681b ldr r3, [r3, #0]
return LV_VER_RES_MAX;
10dbc: 2088 movs r0, #136 ; 0x88
10dbe: 0040 lsls r0, r0, #1
if(disp == NULL)
10dc0: 2b00 cmp r3, #0
10dc2: d0f8 beq.n 10db6 <lv_disp_get_ver_res+0xe>
10dc4: e7f2 b.n 10dac <lv_disp_get_ver_res+0x4>
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
10dc6: 2002 movs r0, #2
10dc8: 5e18 ldrsh r0, [r3, r0]
10dca: e7f4 b.n 10db6 <lv_disp_get_ver_res+0xe>
10dcc: 20002be0 .word 0x20002be0
00010dd0 <lv_disp_get_dpi>:
* Get the DPI of the display
* @param disp pointer to a display (NULL to use the default display)
* @return dpi of the display
*/
uint32_t lv_disp_get_dpi(lv_disp_t * disp)
{
10dd0: 1e03 subs r3, r0, #0
if(disp == NULL) disp = lv_disp_get_default();
10dd2: d003 beq.n 10ddc <lv_disp_get_dpi+0xc>
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
return disp->driver.dpi;
10dd4: 8918 ldrh r0, [r3, #8]
10dd6: 0500 lsls r0, r0, #20
10dd8: 0d80 lsrs r0, r0, #22
}
10dda: 4770 bx lr
return disp_def;
10ddc: 4b02 ldr r3, [pc, #8] ; (10de8 <lv_disp_get_dpi+0x18>)
10dde: 681b ldr r3, [r3, #0]
10de0: 2082 movs r0, #130 ; 0x82
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
10de2: 2b00 cmp r3, #0
10de4: d0f9 beq.n 10dda <lv_disp_get_dpi+0xa>
10de6: e7f5 b.n 10dd4 <lv_disp_get_dpi+0x4>
10de8: 20002be0 .word 0x20002be0
00010dec <lv_disp_get_size_category>:
* Get the size category of the display based on it's hor. res. and dpi.
* @param disp pointer to a display (NULL to use the default display)
* @return LV_DISP_SIZE_SMALL/MEDIUM/LARGE/EXTRA_LARGE
*/
lv_disp_size_t lv_disp_get_size_category(lv_disp_t * disp)
{
10dec: b570 push {r4, r5, r6, lr}
10dee: 1e05 subs r5, r0, #0
if(disp == NULL) disp = lv_disp_get_default();
10df0: d019 beq.n 10e26 <lv_disp_get_size_category+0x3a>
uint32_t w;
if(disp == NULL) w = LV_HOR_RES_MAX;
else w = lv_disp_get_hor_res(disp);
10df2: 0028 movs r0, r5
10df4: 4b0f ldr r3, [pc, #60] ; (10e34 <lv_disp_get_size_category+0x48>)
10df6: 4798 blx r3
10df8: 0004 movs r4, r0
uint32_t dpi = lv_disp_get_dpi(disp);
10dfa: 0028 movs r0, r5
10dfc: 4b0e ldr r3, [pc, #56] ; (10e38 <lv_disp_get_size_category+0x4c>)
10dfe: 4798 blx r3
10e00: 0001 movs r1, r0
w = w * 10 / dpi;
10e02: 00a0 lsls r0, r4, #2
10e04: 1900 adds r0, r0, r4
10e06: 0040 lsls r0, r0, #1
10e08: 4b0c ldr r3, [pc, #48] ; (10e3c <lv_disp_get_size_category+0x50>)
10e0a: 4798 blx r3
10e0c: 0002 movs r2, r0
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
10e0e: 2000 movs r0, #0
10e10: 2a1d cmp r2, #29
10e12: d907 bls.n 10e24 <lv_disp_get_size_category+0x38>
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
10e14: 3001 adds r0, #1
10e16: 2a31 cmp r2, #49 ; 0x31
10e18: d904 bls.n 10e24 <lv_disp_get_size_category+0x38>
if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE;
else return LV_DISP_SIZE_EXTRA_LARGE;
10e1a: 3044 adds r0, #68 ; 0x44
10e1c: 4290 cmp r0, r2
10e1e: 4180 sbcs r0, r0
10e20: 4240 negs r0, r0
10e22: 3002 adds r0, #2
}
10e24: bd70 pop {r4, r5, r6, pc}
return disp_def;
10e26: 4b06 ldr r3, [pc, #24] ; (10e40 <lv_disp_get_size_category+0x54>)
10e28: 681d ldr r5, [r3, #0]
10e2a: 24f0 movs r4, #240 ; 0xf0
10e2c: 0064 lsls r4, r4, #1
if(disp == NULL) w = LV_HOR_RES_MAX;
10e2e: 2d00 cmp r5, #0
10e30: d0e3 beq.n 10dfa <lv_disp_get_size_category+0xe>
10e32: e7de b.n 10df2 <lv_disp_get_size_category+0x6>
10e34: 00010d81 .word 0x00010d81
10e38: 00010dd1 .word 0x00010dd1
10e3c: 0001c0a5 .word 0x0001c0a5
10e40: 20002be0 .word 0x20002be0
00010e44 <lv_disp_flush_ready>:
if(disp_drv->screen_transp) {
_lv_memset_00(disp_drv->buffer->buf_act, disp_drv->buffer->size * sizeof(lv_color32_t));
}
#endif
disp_drv->buffer->flushing = 0;
10e44: 6842 ldr r2, [r0, #4]
10e46: 2300 movs r3, #0
10e48: 6193 str r3, [r2, #24]
disp_drv->buffer->flushing_last = 0;
10e4a: 6842 ldr r2, [r0, #4]
10e4c: 61d3 str r3, [r2, #28]
}
10e4e: 4770 bx lr
00010e50 <lv_disp_get_next>:
* 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)
{
10e50: b510 push {r4, lr}
if(disp == NULL)
10e52: 2800 cmp r0, #0
10e54: d004 beq.n 10e60 <lv_disp_get_next+0x10>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp);
10e56: 0001 movs r1, r0
10e58: 4803 ldr r0, [pc, #12] ; (10e68 <lv_disp_get_next+0x18>)
10e5a: 4b04 ldr r3, [pc, #16] ; (10e6c <lv_disp_get_next+0x1c>)
10e5c: 4798 blx r3
}
10e5e: bd10 pop {r4, pc}
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
10e60: 4801 ldr r0, [pc, #4] ; (10e68 <lv_disp_get_next+0x18>)
10e62: 4b03 ldr r3, [pc, #12] ; (10e70 <lv_disp_get_next+0x20>)
10e64: 4798 blx r3
10e66: e7fa b.n 10e5e <lv_disp_get_next+0xe>
10e68: 20004d20 .word 0x20004d20
10e6c: 00011e9d .word 0x00011e9d
10e70: 00011e85 .word 0x00011e85
00010e74 <lv_disp_get_buf>:
* @param disp pointer to a display
* @return pointer to the internal buffers
*/
lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp)
{
return disp->driver.buffer;
10e74: 6840 ldr r0, [r0, #4]
}
10e76: 4770 bx lr
00010e78 <lv_disp_is_double_buf>:
* @param disp pointer to to display to check
* @return true: double buffered; false: not double buffered
*/
bool lv_disp_is_double_buf(lv_disp_t * disp)
{
if(disp->driver.buffer->buf1 && disp->driver.buffer->buf2)
10e78: 6843 ldr r3, [r0, #4]
10e7a: 681a ldr r2, [r3, #0]
10e7c: 2a00 cmp r2, #0
10e7e: d004 beq.n 10e8a <lv_disp_is_double_buf+0x12>
10e80: 6858 ldr r0, [r3, #4]
10e82: 1e43 subs r3, r0, #1
10e84: 4198 sbcs r0, r3
10e86: b2c0 uxtb r0, r0
return true;
else
return false;
}
10e88: 4770 bx lr
return false;
10e8a: 2000 movs r0, #0
10e8c: e7fc b.n 10e88 <lv_disp_is_double_buf+0x10>
...
00010e90 <lv_disp_is_true_double_buf>:
* `size` is screen sized)
* @param disp pointer to to display to check
* @return true: double buffered; false: not double buffered
*/
bool lv_disp_is_true_double_buf(lv_disp_t * disp)
{
10e90: b510 push {r4, lr}
10e92: 0004 movs r4, r0
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
10e94: 4b07 ldr r3, [pc, #28] ; (10eb4 <lv_disp_is_true_double_buf+0x24>)
10e96: 4798 blx r3
10e98: 2800 cmp r0, #0
10e9a: d00a beq.n 10eb2 <lv_disp_is_true_double_buf+0x22>
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
10e9c: 2200 movs r2, #0
10e9e: 5ea3 ldrsh r3, [r4, r2]
10ea0: 2202 movs r2, #2
10ea2: 5ea0 ldrsh r0, [r4, r2]
10ea4: 4358 muls r0, r3
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
10ea6: 6863 ldr r3, [r4, #4]
10ea8: 68db ldr r3, [r3, #12]
10eaa: 1ac0 subs r0, r0, r3
10eac: 4243 negs r3, r0
10eae: 4158 adcs r0, r3
10eb0: b2c0 uxtb r0, r0
return true;
}
else {
return false;
}
}
10eb2: bd10 pop {r4, pc}
10eb4: 00010e79 .word 0x00010e79
00010eb8 <lv_indev_get_next>:
* @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)
{
10eb8: b510 push {r4, lr}
if(indev == NULL)
10eba: 2800 cmp r0, #0
10ebc: d004 beq.n 10ec8 <lv_indev_get_next+0x10>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev);
10ebe: 0001 movs r1, r0
10ec0: 4803 ldr r0, [pc, #12] ; (10ed0 <lv_indev_get_next+0x18>)
10ec2: 4b04 ldr r3, [pc, #16] ; (10ed4 <lv_indev_get_next+0x1c>)
10ec4: 4798 blx r3
}
10ec6: bd10 pop {r4, pc}
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
10ec8: 4801 ldr r0, [pc, #4] ; (10ed0 <lv_indev_get_next+0x18>)
10eca: 4b03 ldr r3, [pc, #12] ; (10ed8 <lv_indev_get_next+0x20>)
10ecc: 4798 blx r3
10ece: e7fa b.n 10ec6 <lv_indev_get_next+0xe>
10ed0: 20004d14 .word 0x20004d14
10ed4: 00011e9d .word 0x00011e9d
10ed8: 00011e85 .word 0x00011e85
00010edc <lv_tick_inc>:
* 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)
{
tick_irq_flag = 0;
10edc: 2200 movs r2, #0
10ede: 4b04 ldr r3, [pc, #16] ; (10ef0 <lv_tick_inc+0x14>)
10ee0: 701a strb r2, [r3, #0]
sys_time += tick_period;
10ee2: 4b04 ldr r3, [pc, #16] ; (10ef4 <lv_tick_inc+0x18>)
10ee4: 681a ldr r2, [r3, #0]
10ee6: 4694 mov ip, r2
10ee8: 4460 add r0, ip
10eea: 6018 str r0, [r3, #0]
}
10eec: 4770 bx lr
10eee: 46c0 nop ; (mov r8, r8)
10ef0: 20002be8 .word 0x20002be8
10ef4: 20002be4 .word 0x20002be4
00010ef8 <lv_tick_get>:
uint32_t lv_tick_get(void)
{
#if LV_TICK_CUSTOM == 0
uint32_t result;
do {
tick_irq_flag = 1;
10ef8: 4b04 ldr r3, [pc, #16] ; (10f0c <lv_tick_get+0x14>)
10efa: 2101 movs r1, #1
10efc: 7019 strb r1, [r3, #0]
result = sys_time;
} while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt.
10efe: 781a ldrb r2, [r3, #0]
10f00: 2a00 cmp r2, #0
10f02: d0fb beq.n 10efc <lv_tick_get+0x4>
result = sys_time;
10f04: 4b02 ldr r3, [pc, #8] ; (10f10 <lv_tick_get+0x18>)
Continue until make a non interrupted cycle */
return result;
10f06: 6818 ldr r0, [r3, #0]
#else
return LV_TICK_CUSTOM_SYS_TIME_EXPR;
#endif
}
10f08: 4770 bx lr
10f0a: 46c0 nop ; (mov r8, r8)
10f0c: 20002be8 .word 0x20002be8
10f10: 20002be4 .word 0x20002be4
00010f14 <lv_tick_elaps>:
* Get the elapsed milliseconds since a previous time stamp
* @param prev_tick a previous time stamp (return value of systick_get() )
* @return the elapsed milliseconds since 'prev_tick'
*/
uint32_t lv_tick_elaps(uint32_t prev_tick)
{
10f14: b510 push {r4, lr}
10f16: 0004 movs r4, r0
uint32_t act_time = lv_tick_get();
10f18: 4b01 ldr r3, [pc, #4] ; (10f20 <lv_tick_elaps+0xc>)
10f1a: 4798 blx r3
if(act_time >= prev_tick) {
prev_tick = act_time - prev_tick;
}
else {
prev_tick = UINT32_MAX - prev_tick + 1;
prev_tick += act_time;
10f1c: 1b00 subs r0, r0, r4
}
return prev_tick;
}
10f1e: bd10 pop {r4, pc}
10f20: 00010ef9 .word 0x00010ef9
00010f24 <lv_anim_path_linear>:
* Calculate the current value of an animation applying linear characteristic
* @param a pointer to an animation
* @return the current value to set
*/
lv_anim_value_t lv_anim_path_linear(const lv_anim_path_t * path, const lv_anim_t * a)
{
10f24: b510 push {r4, lr}
10f26: 000c movs r4, r1
/*Calculate the current step*/
uint32_t step;
if(a->time == a->act_time) {
10f28: 6a09 ldr r1, [r1, #32]
10f2a: 6a60 ldr r0, [r4, #36] ; 0x24
10f2c: 4281 cmp r1, r0
10f2e: d00a beq.n 10f46 <lv_anim_path_linear+0x22>
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
}
else {
step = ((int32_t)a->act_time * LV_ANIM_RESOLUTION) / a->time;
10f30: 0280 lsls r0, r0, #10
10f32: 4b06 ldr r3, [pc, #24] ; (10f4c <lv_anim_path_linear+0x28>)
10f34: 4798 blx r3
}
/* Get the new value which will be proportional to `step`
* and the `start` and `end` values*/
int32_t new_value;
new_value = (int32_t)step * (a->end - a->start);
10f36: 69a3 ldr r3, [r4, #24]
10f38: 69e2 ldr r2, [r4, #28]
10f3a: 1ad2 subs r2, r2, r3
10f3c: 4350 muls r0, r2
new_value = new_value >> LV_ANIM_RES_SHIFT;
10f3e: 1280 asrs r0, r0, #10
new_value += a->start;
10f40: 1818 adds r0, r3, r0
return (lv_anim_value_t)new_value;
10f42: b200 sxth r0, r0
}
10f44: bd10 pop {r4, pc}
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
10f46: 2080 movs r0, #128 ; 0x80
10f48: 00c0 lsls r0, r0, #3
10f4a: e7f4 b.n 10f36 <lv_anim_path_linear+0x12>
10f4c: 0001c0a5 .word 0x0001c0a5
00010f50 <anim_mark_list_change>:
}
return anim_list_changed;
}
static void anim_mark_list_change(void)
{
10f50: b510 push {r4, lr}
anim_list_changed = true;
10f52: 2201 movs r2, #1
10f54: 4b09 ldr r3, [pc, #36] ; (10f7c <anim_mark_list_change+0x2c>)
10f56: 701a strb r2, [r3, #0]
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
10f58: 4809 ldr r0, [pc, #36] ; (10f80 <anim_mark_list_change+0x30>)
10f5a: 4b0a ldr r3, [pc, #40] ; (10f84 <anim_mark_list_change+0x34>)
10f5c: 4798 blx r3
10f5e: 2800 cmp r0, #0
10f60: d005 beq.n 10f6e <anim_mark_list_change+0x1e>
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
else
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
10f62: 4b09 ldr r3, [pc, #36] ; (10f88 <anim_mark_list_change+0x38>)
10f64: 6818 ldr r0, [r3, #0]
10f66: 2104 movs r1, #4
10f68: 4b08 ldr r3, [pc, #32] ; (10f8c <anim_mark_list_change+0x3c>)
10f6a: 4798 blx r3
}
10f6c: bd10 pop {r4, pc}
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
10f6e: 4b06 ldr r3, [pc, #24] ; (10f88 <anim_mark_list_change+0x38>)
10f70: 6818 ldr r0, [r3, #0]
10f72: 2100 movs r1, #0
10f74: 4b05 ldr r3, [pc, #20] ; (10f8c <anim_mark_list_change+0x3c>)
10f76: 4798 blx r3
10f78: e7f8 b.n 10f6c <anim_mark_list_change+0x1c>
10f7a: 46c0 nop ; (mov r8, r8)
10f7c: 20002bf0 .word 0x20002bf0
10f80: 20004de4 .word 0x20004de4
10f84: 00011e85 .word 0x00011e85
10f88: 20002bec .word 0x20002bec
10f8c: 0001388d .word 0x0001388d
00010f90 <anim_task>:
{
10f90: b5f0 push {r4, r5, r6, r7, lr}
10f92: 46ce mov lr, r9
10f94: 4647 mov r7, r8
10f96: b580 push {r7, lr}
10f98: b091 sub sp, #68 ; 0x44
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
10f9a: 4865 ldr r0, [pc, #404] ; (11130 <anim_task+0x1a0>)
10f9c: 4b65 ldr r3, [pc, #404] ; (11134 <anim_task+0x1a4>)
10f9e: 4798 blx r3
10fa0: 2800 cmp r0, #0
10fa2: d00b beq.n 10fbc <anim_task+0x2c>
a->has_run = 0;
10fa4: 253c movs r5, #60 ; 0x3c
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
10fa6: 4c62 ldr r4, [pc, #392] ; (11130 <anim_task+0x1a0>)
10fa8: 4e63 ldr r6, [pc, #396] ; (11138 <anim_task+0x1a8>)
a->has_run = 0;
10faa: 5d43 ldrb r3, [r0, r5]
10fac: 2202 movs r2, #2
10fae: 4393 bics r3, r2
10fb0: 5543 strb r3, [r0, r5]
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
10fb2: 0001 movs r1, r0
10fb4: 0020 movs r0, r4
10fb6: 47b0 blx r6
10fb8: 2800 cmp r0, #0
10fba: d1f6 bne.n 10faa <anim_task+0x1a>
uint32_t elaps = lv_tick_elaps(last_task_run);
10fbc: 4b5f ldr r3, [pc, #380] ; (1113c <anim_task+0x1ac>)
10fbe: 6818 ldr r0, [r3, #0]
10fc0: 4b5f ldr r3, [pc, #380] ; (11140 <anim_task+0x1b0>)
10fc2: 4798 blx r3
10fc4: 0007 movs r7, r0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
10fc6: 485a ldr r0, [pc, #360] ; (11130 <anim_task+0x1a0>)
10fc8: 4b5a ldr r3, [pc, #360] ; (11134 <anim_task+0x1a4>)
10fca: 4798 blx r3
10fcc: 1e04 subs r4, r0, #0
while(a != NULL) {
10fce: d100 bne.n 10fd2 <anim_task+0x42>
10fd0: e08c b.n 110ec <anim_task+0x15c>
anim_list_changed = false;
10fd2: 4e5c ldr r6, [pc, #368] ; (11144 <anim_task+0x1b4>)
10fd4: 2500 movs r5, #0
if(anim_list_changed)
10fd6: 46b0 mov r8, r6
10fd8: e026 b.n 11028 <anim_task+0x98>
int32_t new_act_time = a->act_time + elaps;
10fda: 19db adds r3, r3, r7
if(a->act_time <= 0 && new_act_time >= 0) {
10fdc: 2b00 cmp r3, #0
10fde: da00 bge.n 10fe2 <anim_task+0x52>
10fe0: e08d b.n 110fe <anim_task+0x16e>
if(a->start_cb) a->start_cb(a);
10fe2: 68a2 ldr r2, [r4, #8]
10fe4: 2a00 cmp r2, #0
10fe6: d100 bne.n 10fea <anim_task+0x5a>
10fe8: e090 b.n 1110c <anim_task+0x17c>
10fea: 0020 movs r0, r4
10fec: 4790 blx r2
10fee: e028 b.n 11042 <anim_task+0xb2>
if(a->path.cb) new_value = a->path.cb(&a->path, a);
10ff0: 6923 ldr r3, [r4, #16]
10ff2: 2b00 cmp r3, #0
10ff4: d02f beq.n 11056 <anim_task+0xc6>
10ff6: 0020 movs r0, r4
10ff8: 3010 adds r0, #16
10ffa: 0021 movs r1, r4
10ffc: 4798 blx r3
if(a->exec_cb) a->exec_cb(a->var, new_value);
10ffe: 6863 ldr r3, [r4, #4]
11000: 2b00 cmp r3, #0
11002: d002 beq.n 1100a <anim_task+0x7a>
11004: b201 sxth r1, r0
11006: 6820 ldr r0, [r4, #0]
11008: 4798 blx r3
if(a->act_time >= a->time) {
1100a: 6a63 ldr r3, [r4, #36] ; 0x24
1100c: 6a22 ldr r2, [r4, #32]
1100e: 4293 cmp r3, r2
11010: d227 bcs.n 11062 <anim_task+0xd2>
if(anim_list_changed)
11012: 4643 mov r3, r8
11014: 781b ldrb r3, [r3, #0]
11016: 2b00 cmp r3, #0
11018: d100 bne.n 1101c <anim_task+0x8c>
1101a: e071 b.n 11100 <anim_task+0x170>
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
1101c: 4844 ldr r0, [pc, #272] ; (11130 <anim_task+0x1a0>)
1101e: 4b45 ldr r3, [pc, #276] ; (11134 <anim_task+0x1a4>)
11020: 4798 blx r3
11022: 0004 movs r4, r0
while(a != NULL) {
11024: 2c00 cmp r4, #0
11026: d061 beq.n 110ec <anim_task+0x15c>
anim_list_changed = false;
11028: 7035 strb r5, [r6, #0]
if(!a->has_run) {
1102a: 233c movs r3, #60 ; 0x3c
1102c: 5ce3 ldrb r3, [r4, r3]
1102e: 079b lsls r3, r3, #30
11030: d466 bmi.n 11100 <anim_task+0x170>
a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/
11032: 223c movs r2, #60 ; 0x3c
11034: 5ca3 ldrb r3, [r4, r2]
11036: 2102 movs r1, #2
11038: 430b orrs r3, r1
1103a: 54a3 strb r3, [r4, r2]
int32_t new_act_time = a->act_time + elaps;
1103c: 6a63 ldr r3, [r4, #36] ; 0x24
if(a->act_time <= 0 && new_act_time >= 0) {
1103e: 2b00 cmp r3, #0
11040: ddcb ble.n 10fda <anim_task+0x4a>
a->act_time += elaps;
11042: 6a63 ldr r3, [r4, #36] ; 0x24
11044: 18fb adds r3, r7, r3
11046: 6263 str r3, [r4, #36] ; 0x24
if(a->act_time >= 0) {
11048: 2b00 cmp r3, #0
1104a: dbe2 blt.n 11012 <anim_task+0x82>
if(a->act_time > a->time) a->act_time = a->time;
1104c: 6a22 ldr r2, [r4, #32]
1104e: 429a cmp r2, r3
11050: d2ce bcs.n 10ff0 <anim_task+0x60>
11052: 6262 str r2, [r4, #36] ; 0x24
11054: e7cc b.n 10ff0 <anim_task+0x60>
else new_value = lv_anim_path_linear(&a->path, a);
11056: 0020 movs r0, r4
11058: 3010 adds r0, #16
1105a: 0021 movs r1, r4
1105c: 4b3a ldr r3, [pc, #232] ; (11148 <anim_task+0x1b8>)
1105e: 4798 blx r3
11060: e7cd b.n 10ffe <anim_task+0x6e>
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
11062: 233c movs r3, #60 ; 0x3c
11064: 5ce3 ldrb r3, [r4, r3]
11066: 2201 movs r2, #1
11068: 4013 ands r3, r2
1106a: 1e18 subs r0, r3, #0
1106c: d107 bne.n 1107e <anim_task+0xee>
1106e: 8ea2 ldrh r2, [r4, #52] ; 0x34
11070: 2a00 cmp r2, #0
11072: d04d beq.n 11110 <anim_task+0x180>
11074: 4935 ldr r1, [pc, #212] ; (1114c <anim_task+0x1bc>)
11076: 428a cmp r2, r1
11078: d051 beq.n 1111e <anim_task+0x18e>
a->repeat_cnt--;
1107a: 3a01 subs r2, #1
1107c: 86a2 strh r2, [r4, #52] ; 0x34
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
1107e: 8ea2 ldrh r2, [r4, #52] ; 0x34
11080: 2a00 cmp r2, #0
11082: d01a beq.n 110ba <anim_task+0x12a>
a->act_time = -a->repeat_delay; /*Restart the animation*/
11084: 6b23 ldr r3, [r4, #48] ; 0x30
11086: 425a negs r2, r3
11088: 6262 str r2, [r4, #36] ; 0x24
if(a->playback_time != 0) {
1108a: 6ae2 ldr r2, [r4, #44] ; 0x2c
1108c: 2a00 cmp r2, #0
1108e: d0c0 beq.n 11012 <anim_task+0x82>
if(a->playback_now == 0) a->act_time = -a->playback_delay;
11090: 2800 cmp r0, #0
11092: d040 beq.n 11116 <anim_task+0x186>
a->playback_now = a->playback_now == 0 ? 1 : 0;
11094: 4243 negs r3, r0
11096: 4143 adcs r3, r0
11098: 4699 mov r9, r3
1109a: 203c movs r0, #60 ; 0x3c
1109c: 5c21 ldrb r1, [r4, r0]
1109e: 2301 movs r3, #1
110a0: 4399 bics r1, r3
110a2: 464b mov r3, r9
110a4: 430b orrs r3, r1
110a6: 5423 strb r3, [r4, r0]
tmp = a->start;
110a8: 69a1 ldr r1, [r4, #24]
a->start = a->end;
110aa: 69e0 ldr r0, [r4, #28]
110ac: 61a0 str r0, [r4, #24]
a->end = tmp;
110ae: 61e1 str r1, [r4, #28]
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
110b0: 07db lsls r3, r3, #31
110b2: d400 bmi.n 110b6 <anim_task+0x126>
110b4: 6ba2 ldr r2, [r4, #56] ; 0x38
110b6: 6222 str r2, [r4, #32]
110b8: e7ab b.n 11012 <anim_task+0x82>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
110ba: 6ae2 ldr r2, [r4, #44] ; 0x2c
110bc: 2a00 cmp r2, #0
110be: d001 beq.n 110c4 <anim_task+0x134>
110c0: 2800 cmp r0, #0
110c2: d028 beq.n 11116 <anim_task+0x186>
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
110c4: 2240 movs r2, #64 ; 0x40
110c6: 0021 movs r1, r4
110c8: 4668 mov r0, sp
110ca: 4b21 ldr r3, [pc, #132] ; (11150 <anim_task+0x1c0>)
110cc: 4798 blx r3
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
110ce: 0021 movs r1, r4
110d0: 4817 ldr r0, [pc, #92] ; (11130 <anim_task+0x1a0>)
110d2: 4b20 ldr r3, [pc, #128] ; (11154 <anim_task+0x1c4>)
110d4: 4798 blx r3
lv_mem_free(a);
110d6: 0020 movs r0, r4
110d8: 4b1f ldr r3, [pc, #124] ; (11158 <anim_task+0x1c8>)
110da: 4798 blx r3
anim_mark_list_change();
110dc: 4b1f ldr r3, [pc, #124] ; (1115c <anim_task+0x1cc>)
110de: 4798 blx r3
if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp);
110e0: 9b03 ldr r3, [sp, #12]
110e2: 2b00 cmp r3, #0
110e4: d095 beq.n 11012 <anim_task+0x82>
110e6: 4668 mov r0, sp
110e8: 4798 blx r3
110ea: e792 b.n 11012 <anim_task+0x82>
last_task_run = lv_tick_get();
110ec: 4b1c ldr r3, [pc, #112] ; (11160 <anim_task+0x1d0>)
110ee: 4798 blx r3
110f0: 4b12 ldr r3, [pc, #72] ; (1113c <anim_task+0x1ac>)
110f2: 6018 str r0, [r3, #0]
}
110f4: b011 add sp, #68 ; 0x44
110f6: bc0c pop {r2, r3}
110f8: 4690 mov r8, r2
110fa: 4699 mov r9, r3
110fc: bdf0 pop {r4, r5, r6, r7, pc}
a->act_time += elaps;
110fe: 6263 str r3, [r4, #36] ; 0x24
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
11100: 0021 movs r1, r4
11102: 480b ldr r0, [pc, #44] ; (11130 <anim_task+0x1a0>)
11104: 4b0c ldr r3, [pc, #48] ; (11138 <anim_task+0x1a8>)
11106: 4798 blx r3
11108: 0004 movs r4, r0
1110a: e78b b.n 11024 <anim_task+0x94>
a->act_time += elaps;
1110c: 6263 str r3, [r4, #36] ; 0x24
1110e: e79d b.n 1104c <anim_task+0xbc>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
11110: 6ae2 ldr r2, [r4, #44] ; 0x2c
11112: 2a00 cmp r2, #0
11114: d0d6 beq.n 110c4 <anim_task+0x134>
if(a->playback_now == 0) a->act_time = -a->playback_delay;
11116: 6aa3 ldr r3, [r4, #40] ; 0x28
11118: 4259 negs r1, r3
1111a: 6261 str r1, [r4, #36] ; 0x24
1111c: e7ba b.n 11094 <anim_task+0x104>
a->act_time = -a->repeat_delay; /*Restart the animation*/
1111e: 6b23 ldr r3, [r4, #48] ; 0x30
11120: 425a negs r2, r3
11122: 6262 str r2, [r4, #36] ; 0x24
if(a->playback_time != 0) {
11124: 6ae2 ldr r2, [r4, #44] ; 0x2c
11126: 2a00 cmp r2, #0
11128: d100 bne.n 1112c <anim_task+0x19c>
1112a: e772 b.n 11012 <anim_task+0x82>
1112c: e7f3 b.n 11116 <anim_task+0x186>
1112e: 46c0 nop ; (mov r8, r8)
11130: 20004de4 .word 0x20004de4
11134: 00011e85 .word 0x00011e85
11138: 00011e9d .word 0x00011e9d
1113c: 20002bf4 .word 0x20002bf4
11140: 00010f15 .word 0x00010f15
11144: 20002bf0 .word 0x20002bf0
11148: 00010f25 .word 0x00010f25
1114c: 0000ffff .word 0x0000ffff
11150: 00012545 .word 0x00012545
11154: 00011f6d .word 0x00011f6d
11158: 000123c9 .word 0x000123c9
1115c: 00010f51 .word 0x00010f51
11160: 00010ef9 .word 0x00010ef9
00011164 <_lv_anim_core_init>:
{
11164: b510 push {r4, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
11166: 2140 movs r1, #64 ; 0x40
11168: 480a ldr r0, [pc, #40] ; (11194 <_lv_anim_core_init+0x30>)
1116a: 4b0b ldr r3, [pc, #44] ; (11198 <_lv_anim_core_init+0x34>)
1116c: 4798 blx r3
last_task_run = lv_tick_get();
1116e: 4b0b ldr r3, [pc, #44] ; (1119c <_lv_anim_core_init+0x38>)
11170: 4798 blx r3
11172: 4b0b ldr r3, [pc, #44] ; (111a0 <_lv_anim_core_init+0x3c>)
11174: 6018 str r0, [r3, #0]
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
11176: 2300 movs r3, #0
11178: 2204 movs r2, #4
1117a: 211e movs r1, #30
1117c: 4809 ldr r0, [pc, #36] ; (111a4 <_lv_anim_core_init+0x40>)
1117e: 4c0a ldr r4, [pc, #40] ; (111a8 <_lv_anim_core_init+0x44>)
11180: 47a0 blx r4
11182: 4b0a ldr r3, [pc, #40] ; (111ac <_lv_anim_core_init+0x48>)
11184: 6018 str r0, [r3, #0]
anim_mark_list_change(); /*Turn off the animation task*/
11186: 4b0a ldr r3, [pc, #40] ; (111b0 <_lv_anim_core_init+0x4c>)
11188: 4798 blx r3
anim_list_changed = false; /*The list has not actaully changed*/
1118a: 2200 movs r2, #0
1118c: 4b09 ldr r3, [pc, #36] ; (111b4 <_lv_anim_core_init+0x50>)
1118e: 701a strb r2, [r3, #0]
}
11190: bd10 pop {r4, pc}
11192: 46c0 nop ; (mov r8, r8)
11194: 20004de4 .word 0x20004de4
11198: 00011dd1 .word 0x00011dd1
1119c: 00010ef9 .word 0x00010ef9
111a0: 20002bf4 .word 0x20002bf4
111a4: 00010f91 .word 0x00010f91
111a8: 0001391d .word 0x0001391d
111ac: 20002bec .word 0x20002bec
111b0: 00010f51 .word 0x00010f51
111b4: 20002bf0 .word 0x20002bf0
000111b8 <lv_anim_init>:
{
111b8: b510 push {r4, lr}
111ba: 0004 movs r4, r0
_lv_memset_00(a, sizeof(lv_anim_t));
111bc: 2140 movs r1, #64 ; 0x40
111be: 4b0d ldr r3, [pc, #52] ; (111f4 <lv_anim_init+0x3c>)
111c0: 4798 blx r3
a->time = 500;
111c2: 23fa movs r3, #250 ; 0xfa
111c4: 005b lsls r3, r3, #1
111c6: 6223 str r3, [r4, #32]
a->start = 0;
111c8: 2300 movs r3, #0
111ca: 61a3 str r3, [r4, #24]
a->end = 100;
111cc: 3364 adds r3, #100 ; 0x64
111ce: 61e3 str r3, [r4, #28]
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
111d0: 4b09 ldr r3, [pc, #36] ; (111f8 <lv_anim_init+0x40>)
111d2: 781a ldrb r2, [r3, #0]
111d4: 7422 strb r2, [r4, #16]
111d6: 785a ldrb r2, [r3, #1]
111d8: 7462 strb r2, [r4, #17]
111da: 789a ldrb r2, [r3, #2]
111dc: 74a2 strb r2, [r4, #18]
111de: 78db ldrb r3, [r3, #3]
111e0: 74e3 strb r3, [r4, #19]
a->repeat_cnt = 1;
111e2: 2301 movs r3, #1
111e4: 86a3 strh r3, [r4, #52] ; 0x34
a->early_apply = 1;
111e6: 2236 movs r2, #54 ; 0x36
111e8: 5ca3 ldrb r3, [r4, r2]
111ea: 2101 movs r1, #1
111ec: 430b orrs r3, r1
111ee: 54a3 strb r3, [r4, r2]
}
111f0: bd10 pop {r4, pc}
111f2: 46c0 nop ; (mov r8, r8)
111f4: 00012975 .word 0x00012975
111f8: 0002a74c .word 0x0002a74c
000111fc <lv_anim_del>:
{
111fc: b5f0 push {r4, r5, r6, r7, lr}
111fe: 46d6 mov lr, sl
11200: b500 push {lr}
11202: b082 sub sp, #8
11204: 0006 movs r6, r0
11206: 468a mov sl, r1
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
11208: 4815 ldr r0, [pc, #84] ; (11260 <lv_anim_del+0x64>)
1120a: 4b16 ldr r3, [pc, #88] ; (11264 <lv_anim_del+0x68>)
1120c: 4798 blx r3
1120e: 1e04 subs r4, r0, #0
while(a != NULL) {
11210: d01e beq.n 11250 <lv_anim_del+0x54>
11212: 2300 movs r3, #0
11214: 9301 str r3, [sp, #4]
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
11216: 4f14 ldr r7, [pc, #80] ; (11268 <lv_anim_del+0x6c>)
11218: e00c b.n 11234 <lv_anim_del+0x38>
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
1121a: 0021 movs r1, r4
1121c: 4810 ldr r0, [pc, #64] ; (11260 <lv_anim_del+0x64>)
1121e: 4b13 ldr r3, [pc, #76] ; (1126c <lv_anim_del+0x70>)
11220: 4798 blx r3
lv_mem_free(a);
11222: 0020 movs r0, r4
11224: 4b12 ldr r3, [pc, #72] ; (11270 <lv_anim_del+0x74>)
11226: 4798 blx r3
anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in
11228: 4b12 ldr r3, [pc, #72] ; (11274 <lv_anim_del+0x78>)
1122a: 4798 blx r3
del = true;
1122c: 2301 movs r3, #1
1122e: 9301 str r3, [sp, #4]
11230: 1e2c subs r4, r5, #0
while(a != NULL) {
11232: d00f beq.n 11254 <lv_anim_del+0x58>
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
11234: 0021 movs r1, r4
11236: 480a ldr r0, [pc, #40] ; (11260 <lv_anim_del+0x64>)
11238: 47b8 blx r7
1123a: 0005 movs r5, r0
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
1123c: 6823 ldr r3, [r4, #0]
1123e: 42b3 cmp r3, r6
11240: d1f6 bne.n 11230 <lv_anim_del+0x34>
11242: 6863 ldr r3, [r4, #4]
11244: 4553 cmp r3, sl
11246: d0e8 beq.n 1121a <lv_anim_del+0x1e>
11248: 4653 mov r3, sl
1124a: 2b00 cmp r3, #0
1124c: d1f0 bne.n 11230 <lv_anim_del+0x34>
1124e: e7e4 b.n 1121a <lv_anim_del+0x1e>
bool del = false;
11250: 2300 movs r3, #0
11252: 9301 str r3, [sp, #4]
}
11254: 9801 ldr r0, [sp, #4]
11256: b002 add sp, #8
11258: bc04 pop {r2}
1125a: 4692 mov sl, r2
1125c: bdf0 pop {r4, r5, r6, r7, pc}
1125e: 46c0 nop ; (mov r8, r8)
11260: 20004de4 .word 0x20004de4
11264: 00011e85 .word 0x00011e85
11268: 00011e9d .word 0x00011e9d
1126c: 00011f6d .word 0x00011f6d
11270: 000123c9 .word 0x000123c9
11274: 00010f51 .word 0x00010f51
00011278 <lv_anim_start>:
{
11278: b530 push {r4, r5, lr}
1127a: b083 sub sp, #12
1127c: 0005 movs r5, r0
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
1127e: 6841 ldr r1, [r0, #4]
11280: 2900 cmp r1, #0
11282: d002 beq.n 1128a <lv_anim_start+0x12>
11284: 6800 ldr r0, [r0, #0]
11286: 4b1e ldr r3, [pc, #120] ; (11300 <lv_anim_start+0x88>)
11288: 4798 blx r3
if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) {
1128a: 481e ldr r0, [pc, #120] ; (11304 <lv_anim_start+0x8c>)
1128c: 4b1e ldr r3, [pc, #120] ; (11308 <lv_anim_start+0x90>)
1128e: 4798 blx r3
11290: 2800 cmp r0, #0
11292: d121 bne.n 112d8 <lv_anim_start+0x60>
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
11294: 481b ldr r0, [pc, #108] ; (11304 <lv_anim_start+0x8c>)
11296: 4b1d ldr r3, [pc, #116] ; (1130c <lv_anim_start+0x94>)
11298: 4798 blx r3
1129a: 0004 movs r4, r0
LV_ASSERT_MEM(new_anim);
1129c: 4b1c ldr r3, [pc, #112] ; (11310 <lv_anim_start+0x98>)
1129e: 4798 blx r3
112a0: 2800 cmp r0, #0
112a2: d01f beq.n 112e4 <lv_anim_start+0x6c>
if(new_anim == NULL) return;
112a4: 2c00 cmp r4, #0
112a6: d015 beq.n 112d4 <lv_anim_start+0x5c>
a->time_orig = a->time;
112a8: 6a2b ldr r3, [r5, #32]
112aa: 63ab str r3, [r5, #56] ; 0x38
_lv_memcpy(new_anim, a, sizeof(lv_anim_t));
112ac: 2240 movs r2, #64 ; 0x40
112ae: 0029 movs r1, r5
112b0: 0020 movs r0, r4
112b2: 4b18 ldr r3, [pc, #96] ; (11314 <lv_anim_start+0x9c>)
112b4: 4798 blx r3
if(new_anim->early_apply) {
112b6: 2336 movs r3, #54 ; 0x36
112b8: 5ce3 ldrb r3, [r4, r3]
112ba: 07db lsls r3, r3, #31
112bc: d508 bpl.n 112d0 <lv_anim_start+0x58>
if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start);
112be: 6863 ldr r3, [r4, #4]
112c0: 2b00 cmp r3, #0
112c2: d005 beq.n 112d0 <lv_anim_start+0x58>
112c4: 6820 ldr r0, [r4, #0]
112c6: 2800 cmp r0, #0
112c8: d002 beq.n 112d0 <lv_anim_start+0x58>
112ca: 2218 movs r2, #24
112cc: 5ea1 ldrsh r1, [r4, r2]
112ce: 4798 blx r3
anim_mark_list_change();
112d0: 4b11 ldr r3, [pc, #68] ; (11318 <lv_anim_start+0xa0>)
112d2: 4798 blx r3
}
112d4: b003 add sp, #12
112d6: bd30 pop {r4, r5, pc}
last_task_run = lv_tick_get() - 1;
112d8: 4b10 ldr r3, [pc, #64] ; (1131c <lv_anim_start+0xa4>)
112da: 4798 blx r3
112dc: 3801 subs r0, #1
112de: 4b10 ldr r3, [pc, #64] ; (11320 <lv_anim_start+0xa8>)
112e0: 6018 str r0, [r3, #0]
112e2: e7d7 b.n 11294 <lv_anim_start+0x1c>
LV_ASSERT_MEM(new_anim);
112e4: 4b0f ldr r3, [pc, #60] ; (11324 <lv_anim_start+0xac>)
112e6: 9300 str r3, [sp, #0]
112e8: 226a movs r2, #106 ; 0x6a
112ea: 490f ldr r1, [pc, #60] ; (11328 <lv_anim_start+0xb0>)
112ec: 3003 adds r0, #3
112ee: 4d0f ldr r5, [pc, #60] ; (1132c <lv_anim_start+0xb4>)
112f0: 47a8 blx r5
112f2: 0022 movs r2, r4
112f4: 2300 movs r3, #0
112f6: 480e ldr r0, [pc, #56] ; (11330 <lv_anim_start+0xb8>)
112f8: 490e ldr r1, [pc, #56] ; (11334 <lv_anim_start+0xbc>)
112fa: 4788 blx r1
112fc: e7fe b.n 112fc <lv_anim_start+0x84>
112fe: 46c0 nop ; (mov r8, r8)
11300: 000111fd .word 0x000111fd
11304: 20004de4 .word 0x20004de4
11308: 0001212d .word 0x0001212d
1130c: 00011de5 .word 0x00011de5
11310: 000017ad .word 0x000017ad
11314: 00012545 .word 0x00012545
11318: 00010f51 .word 0x00010f51
1131c: 00010ef9 .word 0x00010ef9
11320: 20002bf4 .word 0x20002bf4
11324: 0002a73c .word 0x0002a73c
11328: 0002a754 .word 0x0002a754
1132c: 00012159 .word 0x00012159
11330: 00025854 .word 0x00025854
11334: 000017b5 .word 0x000017b5
00011338 <lv_anim_get>:
{
11338: b5f8 push {r3, r4, r5, r6, r7, lr}
1133a: 0004 movs r4, r0
1133c: 000f movs r7, r1
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
1133e: 480a ldr r0, [pc, #40] ; (11368 <lv_anim_get+0x30>)
11340: 4b0a ldr r3, [pc, #40] ; (1136c <lv_anim_get+0x34>)
11342: 4798 blx r3
11344: 2800 cmp r0, #0
11346: d00d beq.n 11364 <lv_anim_get+0x2c>
11348: 4e07 ldr r6, [pc, #28] ; (11368 <lv_anim_get+0x30>)
1134a: 4d09 ldr r5, [pc, #36] ; (11370 <lv_anim_get+0x38>)
1134c: e004 b.n 11358 <lv_anim_get+0x20>
1134e: 0001 movs r1, r0
11350: 0030 movs r0, r6
11352: 47a8 blx r5
11354: 2800 cmp r0, #0
11356: d005 beq.n 11364 <lv_anim_get+0x2c>
if(a->var == var && a->exec_cb == exec_cb) {
11358: 6803 ldr r3, [r0, #0]
1135a: 42a3 cmp r3, r4
1135c: d1f7 bne.n 1134e <lv_anim_get+0x16>
1135e: 6843 ldr r3, [r0, #4]
11360: 42bb cmp r3, r7
11362: d1f4 bne.n 1134e <lv_anim_get+0x16>
}
11364: bdf8 pop {r3, r4, r5, r6, r7, pc}
11366: 46c0 nop ; (mov r8, r8)
11368: 20004de4 .word 0x20004de4
1136c: 00011e85 .word 0x00011e85
11370: 00011e9d .word 0x00011e9d
00011374 <lv_anim_speed_to_time>:
{
11374: b510 push {r4, lr}
11376: 0003 movs r3, r0
int32_t d = LV_MATH_ABS((int32_t)start - end);
11378: 1a89 subs r1, r1, r2
1137a: 17ca asrs r2, r1, #31
1137c: 1889 adds r1, r1, r2
1137e: 4051 eors r1, r2
uint32_t time = (int32_t)((int32_t)(d * 1000) / speed);
11380: 20fa movs r0, #250 ; 0xfa
11382: 0080 lsls r0, r0, #2
11384: 4348 muls r0, r1
11386: 0019 movs r1, r3
11388: 4b05 ldr r3, [pc, #20] ; (113a0 <lv_anim_speed_to_time+0x2c>)
1138a: 4798 blx r3
1138c: 4b05 ldr r3, [pc, #20] ; (113a4 <lv_anim_speed_to_time+0x30>)
1138e: 4298 cmp r0, r3
11390: d900 bls.n 11394 <lv_anim_speed_to_time+0x20>
11392: 0018 movs r0, r3
if(time == 0) {
11394: 2800 cmp r0, #0
11396: d100 bne.n 1139a <lv_anim_speed_to_time+0x26>
time++;
11398: 3001 adds r0, #1
return time;
1139a: b280 uxth r0, r0
}
1139c: bd10 pop {r4, pc}
1139e: 46c0 nop ; (mov r8, r8)
113a0: 0001c1b9 .word 0x0001c1b9
113a4: 0000ffff .word 0x0000ffff
000113a8 <lv_point_within_circle>:
/**********************
* STATIC FUNCTIONS
**********************/
static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p)
{
113a8: b570 push {r4, r5, r6, lr}
lv_coord_t r = (area->x2 - area->x1) / 2;
113aa: 2300 movs r3, #0
113ac: 5ec6 ldrsh r6, [r0, r3]
113ae: 2304 movs r3, #4
113b0: 5ec2 ldrsh r2, [r0, r3]
113b2: 1b92 subs r2, r2, r6
113b4: 0fd4 lsrs r4, r2, #31
113b6: 18a4 adds r4, r4, r2
113b8: 1064 asrs r4, r4, #1
/* Circle center */
lv_coord_t cx = area->x1 + r;
113ba: b2a5 uxth r5, r4
/*Simplify the code by moving everything to (0, 0) */
lv_coord_t px = p->x - cx;
lv_coord_t py = p->y - cy;
int32_t r_sqrd = r * r;
113bc: b224 sxth r4, r4
lv_coord_t px = p->x - cx;
113be: 880b ldrh r3, [r1, #0]
113c0: 1b9b subs r3, r3, r6
113c2: 1b5b subs r3, r3, r5
int32_t dist = (px * px) + (py * py);
113c4: b21b sxth r3, r3
lv_coord_t py = p->y - cy;
113c6: 884a ldrh r2, [r1, #2]
113c8: 8841 ldrh r1, [r0, #2]
113ca: 1a52 subs r2, r2, r1
113cc: 1b52 subs r2, r2, r5
int32_t dist = (px * px) + (py * py);
113ce: b212 sxth r2, r2
int32_t r_sqrd = r * r;
113d0: 4364 muls r4, r4
int32_t dist = (px * px) + (py * py);
113d2: 435b muls r3, r3
113d4: 4352 muls r2, r2
113d6: 189b adds r3, r3, r2
if(dist <= r_sqrd)
113d8: 17e0 asrs r0, r4, #31
113da: 0fda lsrs r2, r3, #31
113dc: 429c cmp r4, r3
113de: 4150 adcs r0, r2
113e0: b2c0 uxtb r0, r0
return true;
else
return false;
}
113e2: bd70 pop {r4, r5, r6, pc}
000113e4 <lv_area_set_height>:
area_p->y2 = area_p->y1 + h - 1;
113e4: 1e4b subs r3, r1, #1
113e6: 8841 ldrh r1, [r0, #2]
113e8: 18c9 adds r1, r1, r3
113ea: 80c1 strh r1, [r0, #6]
}
113ec: 4770 bx lr
000113ee <lv_area_get_size>:
size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1);
113ee: 2304 movs r3, #4
113f0: 5ec2 ldrsh r2, [r0, r3]
113f2: 2100 movs r1, #0
113f4: 5e43 ldrsh r3, [r0, r1]
113f6: 1ad2 subs r2, r2, r3
113f8: 3201 adds r2, #1
113fa: 2106 movs r1, #6
113fc: 5e43 ldrsh r3, [r0, r1]
113fe: 2102 movs r1, #2
11400: 5e40 ldrsh r0, [r0, r1]
11402: 1a18 subs r0, r3, r0
11404: 3001 adds r0, #1
11406: 4350 muls r0, r2
}
11408: 4770 bx lr
0001140a <_lv_area_intersect>:
{
1140a: b5f0 push {r4, r5, r6, r7, lr}
1140c: 46c6 mov lr, r8
1140e: b500 push {lr}
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
11410: 880d ldrh r5, [r1, #0]
11412: 8813 ldrh r3, [r2, #0]
11414: 1c1c adds r4, r3, #0
11416: b21b sxth r3, r3
11418: b22e sxth r6, r5
1141a: 42b3 cmp r3, r6
1141c: da00 bge.n 11420 <_lv_area_intersect+0x16>
1141e: 1c2c adds r4, r5, #0
11420: b226 sxth r6, r4
11422: 8004 strh r4, [r0, #0]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
11424: 884d ldrh r5, [r1, #2]
11426: 8853 ldrh r3, [r2, #2]
11428: 1c1c adds r4, r3, #0
1142a: b21b sxth r3, r3
1142c: b22f sxth r7, r5
1142e: 42bb cmp r3, r7
11430: da00 bge.n 11434 <_lv_area_intersect+0x2a>
11432: 1c2c adds r4, r5, #0
11434: b227 sxth r7, r4
11436: 8044 strh r4, [r0, #2]
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
11438: 888d ldrh r5, [r1, #4]
1143a: 8893 ldrh r3, [r2, #4]
1143c: 1c1c adds r4, r3, #0
1143e: b21b sxth r3, r3
11440: 4698 mov r8, r3
11442: b22b sxth r3, r5
11444: 4598 cmp r8, r3
11446: dd00 ble.n 1144a <_lv_area_intersect+0x40>
11448: 1c2c adds r4, r5, #0
1144a: b225 sxth r5, r4
1144c: 8084 strh r4, [r0, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
1144e: 88c9 ldrh r1, [r1, #6]
11450: 88d3 ldrh r3, [r2, #6]
11452: 1c1a adds r2, r3, #0
11454: b21b sxth r3, r3
11456: b20c sxth r4, r1
11458: 42a3 cmp r3, r4
1145a: dd00 ble.n 1145e <_lv_area_intersect+0x54>
1145c: 1c0a adds r2, r1, #0
1145e: b213 sxth r3, r2
11460: 80c2 strh r2, [r0, #6]
union_ok = false;
11462: 2000 movs r0, #0
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
11464: 42ae cmp r6, r5
11466: dc04 bgt.n 11472 <_lv_area_intersect+0x68>
11468: 0ff8 lsrs r0, r7, #31
1146a: 17da asrs r2, r3, #31
1146c: 42bb cmp r3, r7
1146e: 4150 adcs r0, r2
11470: b2c0 uxtb r0, r0
}
11472: bc04 pop {r2}
11474: 4690 mov r8, r2
11476: bdf0 pop {r4, r5, r6, r7, pc}
00011478 <_lv_area_join>:
{
11478: b570 push {r4, r5, r6, lr}
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
1147a: 880d ldrh r5, [r1, #0]
1147c: 8813 ldrh r3, [r2, #0]
1147e: 1c1c adds r4, r3, #0
11480: b21b sxth r3, r3
11482: b22e sxth r6, r5
11484: 42b3 cmp r3, r6
11486: dd00 ble.n 1148a <_lv_area_join+0x12>
11488: 1c2c adds r4, r5, #0
1148a: 8004 strh r4, [r0, #0]
a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1);
1148c: 884d ldrh r5, [r1, #2]
1148e: 8853 ldrh r3, [r2, #2]
11490: 1c1c adds r4, r3, #0
11492: b21b sxth r3, r3
11494: b22e sxth r6, r5
11496: 42b3 cmp r3, r6
11498: dd00 ble.n 1149c <_lv_area_join+0x24>
1149a: 1c2c adds r4, r5, #0
1149c: 8044 strh r4, [r0, #2]
a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2);
1149e: 888d ldrh r5, [r1, #4]
114a0: 8893 ldrh r3, [r2, #4]
114a2: 1c1c adds r4, r3, #0
114a4: b21b sxth r3, r3
114a6: b22e sxth r6, r5
114a8: 42b3 cmp r3, r6
114aa: da00 bge.n 114ae <_lv_area_join+0x36>
114ac: 1c2c adds r4, r5, #0
114ae: 8084 strh r4, [r0, #4]
a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2);
114b0: 88c9 ldrh r1, [r1, #6]
114b2: 88d3 ldrh r3, [r2, #6]
114b4: 1c1a adds r2, r3, #0
114b6: b21b sxth r3, r3
114b8: b20c sxth r4, r1
114ba: 42a3 cmp r3, r4
114bc: da00 bge.n 114c0 <_lv_area_join+0x48>
114be: 1c0a adds r2, r1, #0
114c0: 80c2 strh r2, [r0, #6]
}
114c2: bd70 pop {r4, r5, r6, pc}
000114c4 <_lv_area_is_point_on>:
{
114c4: b5f0 push {r4, r5, r6, r7, lr}
114c6: 46de mov lr, fp
114c8: 4657 mov r7, sl
114ca: 464e mov r6, r9
114cc: 4645 mov r5, r8
114ce: b5e0 push {r5, r6, r7, lr}
114d0: b085 sub sp, #20
114d2: 000e movs r6, r1
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))) {
114d4: 2300 movs r3, #0
114d6: 5ecc ldrsh r4, [r1, r3]
114d8: 2300 movs r3, #0
114da: 5ec1 ldrsh r1, [r0, r3]
return false;
114dc: 2300 movs r3, #0
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))) {
114de: 428c cmp r4, r1
114e0: db5e blt.n 115a0 <_lv_area_is_point_on+0xdc>
114e2: 2504 movs r5, #4
114e4: 5f43 ldrsh r3, [r0, r5]
114e6: 4698 mov r8, r3
return false;
114e8: 2300 movs r3, #0
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))) {
114ea: 4544 cmp r4, r8
114ec: dc58 bgt.n 115a0 <_lv_area_is_point_on+0xdc>
114ee: 2302 movs r3, #2
114f0: 5ef4 ldrsh r4, [r6, r3]
114f2: 2502 movs r5, #2
114f4: 5f43 ldrsh r3, [r0, r5]
114f6: 469a mov sl, r3
return false;
114f8: 2300 movs r3, #0
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))) {
114fa: 4554 cmp r4, sl
114fc: db50 blt.n 115a0 <_lv_area_is_point_on+0xdc>
114fe: 2306 movs r3, #6
11500: 5ec3 ldrsh r3, [r0, r3]
11502: 001d movs r5, r3
11504: 9301 str r3, [sp, #4]
return false;
11506: 2300 movs r3, #0
if(!is_on_rect)
11508: 42ac cmp r4, r5
1150a: dc49 bgt.n 115a0 <_lv_area_is_point_on+0xdc>
if(radius <= 0) {
1150c: 2a00 cmp r2, #0
1150e: dc00 bgt.n 11512 <_lv_area_is_point_on+0x4e>
11510: e09b b.n 1164a <_lv_area_is_point_on+0x186>
* @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)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
11512: 4643 mov r3, r8
11514: 4668 mov r0, sp
11516: 8003 strh r3, [r0, #0]
11518: 8803 ldrh r3, [r0, #0]
1151a: 4699 mov r9, r3
1151c: b28c uxth r4, r1
* @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)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1151e: b2af uxth r7, r5
11520: 4653 mov r3, sl
11522: 8003 strh r3, [r0, #0]
11524: 8800 ldrh r0, [r0, #0]
corner_area.x1 = a_p->x1;
11526: ab02 add r3, sp, #8
11528: 8019 strh r1, [r3, #0]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1152a: 464b mov r3, r9
1152c: 3301 adds r3, #1
1152e: 1b1b subs r3, r3, r4
lv_coord_t w = lv_area_get_width(a_p) / 2;
11530: b21b sxth r3, r3
11532: 0fd9 lsrs r1, r3, #31
11534: 18cb adds r3, r1, r3
11536: 105b asrs r3, r3, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
11538: 1c79 adds r1, r7, #1
1153a: 1a09 subs r1, r1, r0
lv_coord_t h = lv_area_get_height(a_p) / 2;
1153c: b209 sxth r1, r1
1153e: 0fcd lsrs r5, r1, #31
11540: 186d adds r5, r5, r1
11542: 106d asrs r5, r5, #1
lv_coord_t max_radius = LV_MATH_MIN(w, h);
11544: 1c19 adds r1, r3, #0
11546: b21b sxth r3, r3
11548: 42ab cmp r3, r5
1154a: dd00 ble.n 1154e <_lv_area_is_point_on+0x8a>
1154c: 1c29 adds r1, r5, #0
corner_area.x2 = a_p->x1 + radius;
1154e: 1c0d adds r5, r1, #0
11550: b209 sxth r1, r1
11552: 4291 cmp r1, r2
11554: dd00 ble.n 11558 <_lv_area_is_point_on+0x94>
11556: 1c15 adds r5, r2, #0
11558: b2ad uxth r5, r5
1155a: 192c adds r4, r5, r4
1155c: b2a4 uxth r4, r4
1155e: ab02 add r3, sp, #8
11560: 809c strh r4, [r3, #4]
corner_area.y1 = a_p->y1;
11562: 4652 mov r2, sl
11564: 805a strh r2, [r3, #2]
corner_area.y2 = a_p->y1 + radius;
11566: 1828 adds r0, r5, r0
11568: b283 uxth r3, r0
1156a: 9300 str r3, [sp, #0]
1156c: 466b mov r3, sp
1156e: 2100 movs r1, #0
11570: 5e5a ldrsh r2, [r3, r1]
11572: 4693 mov fp, r2
11574: aa02 add r2, sp, #8
11576: 4659 mov r1, fp
11578: 80d1 strh r1, [r2, #6]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
1157a: 2200 movs r2, #0
1157c: 0031 movs r1, r6
1157e: a802 add r0, sp, #8
11580: f7ff ffa0 bl 114c4 <_lv_area_is_point_on>
11584: 2800 cmp r0, #0
11586: d013 beq.n 115b0 <_lv_area_is_point_on+0xec>
corner_area.x2 += radius;
11588: 192c adds r4, r5, r4
1158a: aa02 add r2, sp, #8
1158c: 8094 strh r4, [r2, #4]
corner_area.y2 += radius;
1158e: 9b00 ldr r3, [sp, #0]
11590: 469c mov ip, r3
11592: 4465 add r5, ip
11594: 80d5 strh r5, [r2, #6]
return lv_point_within_circle(&corner_area, p_p);
11596: 0031 movs r1, r6
11598: 0010 movs r0, r2
1159a: 4b2d ldr r3, [pc, #180] ; (11650 <_lv_area_is_point_on+0x18c>)
1159c: 4798 blx r3
1159e: 0003 movs r3, r0
}
115a0: 0018 movs r0, r3
115a2: b005 add sp, #20
115a4: bc3c pop {r2, r3, r4, r5}
115a6: 4690 mov r8, r2
115a8: 4699 mov r9, r3
115aa: 46a2 mov sl, r4
115ac: 46ab mov fp, r5
115ae: bdf0 pop {r4, r5, r6, r7, pc}
corner_area.y1 = a_p->y2 - radius;
115b0: 1b7f subs r7, r7, r5
115b2: b2bf uxth r7, r7
115b4: ab02 add r3, sp, #8
115b6: 805f strh r7, [r3, #2]
corner_area.y2 = a_p->y2;
115b8: 466a mov r2, sp
115ba: 8892 ldrh r2, [r2, #4]
115bc: 80da strh r2, [r3, #6]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
115be: 2200 movs r2, #0
115c0: 0031 movs r1, r6
115c2: 0018 movs r0, r3
115c4: f7ff ff7e bl 114c4 <_lv_area_is_point_on>
115c8: 2800 cmp r0, #0
115ca: d00a beq.n 115e2 <_lv_area_is_point_on+0x11e>
corner_area.x2 += radius;
115cc: 192c adds r4, r5, r4
115ce: ab02 add r3, sp, #8
115d0: 809c strh r4, [r3, #4]
corner_area.y1 -= radius;
115d2: 1b7d subs r5, r7, r5
115d4: 805d strh r5, [r3, #2]
return lv_point_within_circle(&corner_area, p_p);
115d6: 0031 movs r1, r6
115d8: 0018 movs r0, r3
115da: 4b1d ldr r3, [pc, #116] ; (11650 <_lv_area_is_point_on+0x18c>)
115dc: 4798 blx r3
115de: 0003 movs r3, r0
115e0: e7de b.n 115a0 <_lv_area_is_point_on+0xdc>
corner_area.x1 = a_p->x2 - radius;
115e2: 464b mov r3, r9
115e4: 1b5c subs r4, r3, r5
115e6: b2a4 uxth r4, r4
115e8: ab02 add r3, sp, #8
115ea: 801c strh r4, [r3, #0]
corner_area.x2 = a_p->x2;
115ec: 4642 mov r2, r8
115ee: 809a strh r2, [r3, #4]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
115f0: 2200 movs r2, #0
115f2: 0031 movs r1, r6
115f4: 0018 movs r0, r3
115f6: f7ff ff65 bl 114c4 <_lv_area_is_point_on>
115fa: 2800 cmp r0, #0
115fc: d00a beq.n 11614 <_lv_area_is_point_on+0x150>
corner_area.x1 -= radius;
115fe: 1b64 subs r4, r4, r5
11600: ab02 add r3, sp, #8
11602: 801c strh r4, [r3, #0]
corner_area.y1 -= radius;
11604: 1b7d subs r5, r7, r5
11606: 805d strh r5, [r3, #2]
return lv_point_within_circle(&corner_area, p_p);
11608: 0031 movs r1, r6
1160a: 0018 movs r0, r3
1160c: 4b10 ldr r3, [pc, #64] ; (11650 <_lv_area_is_point_on+0x18c>)
1160e: 4798 blx r3
11610: 0003 movs r3, r0
11612: e7c5 b.n 115a0 <_lv_area_is_point_on+0xdc>
corner_area.y1 = a_p->y1;
11614: ab02 add r3, sp, #8
11616: 4652 mov r2, sl
11618: 805a strh r2, [r3, #2]
corner_area.y2 = a_p->y1 + radius;
1161a: 465a mov r2, fp
1161c: 80da strh r2, [r3, #6]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
1161e: 2200 movs r2, #0
11620: 0031 movs r1, r6
11622: 0018 movs r0, r3
11624: f7ff ff4e bl 114c4 <_lv_area_is_point_on>
return true;
11628: 2301 movs r3, #1
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
1162a: 2800 cmp r0, #0
1162c: d0b8 beq.n 115a0 <_lv_area_is_point_on+0xdc>
corner_area.x1 -= radius;
1162e: 1b64 subs r4, r4, r5
11630: ab02 add r3, sp, #8
11632: 801c strh r4, [r3, #0]
corner_area.y2 += radius;
11634: 9b00 ldr r3, [sp, #0]
11636: 469c mov ip, r3
11638: 4465 add r5, ip
1163a: ab02 add r3, sp, #8
1163c: 80dd strh r5, [r3, #6]
return lv_point_within_circle(&corner_area, p_p);
1163e: 0031 movs r1, r6
11640: 0018 movs r0, r3
11642: 4b03 ldr r3, [pc, #12] ; (11650 <_lv_area_is_point_on+0x18c>)
11644: 4798 blx r3
11646: 0003 movs r3, r0
11648: e7aa b.n 115a0 <_lv_area_is_point_on+0xdc>
return true;
1164a: 2301 movs r3, #1
1164c: e7a8 b.n 115a0 <_lv_area_is_point_on+0xdc>
1164e: 46c0 nop ; (mov r8, r8)
11650: 000113a9 .word 0x000113a9
00011654 <_lv_area_is_on>:
{
11654: b510 push {r4, lr}
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)) {
11656: 2300 movs r3, #0
11658: 5ec4 ldrsh r4, [r0, r3]
1165a: 2304 movs r3, #4
1165c: 5eca ldrsh r2, [r1, r3]
return false;
1165e: 2300 movs r3, #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)) {
11660: 4294 cmp r4, r2
11662: dc16 bgt.n 11692 <_lv_area_is_on+0x3e>
11664: 2304 movs r3, #4
11666: 5ec4 ldrsh r4, [r0, r3]
11668: 2300 movs r3, #0
1166a: 5eca ldrsh r2, [r1, r3]
return false;
1166c: 2300 movs r3, #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)) {
1166e: 4294 cmp r4, r2
11670: db0f blt.n 11692 <_lv_area_is_on+0x3e>
11672: 2302 movs r3, #2
11674: 5ec4 ldrsh r4, [r0, r3]
11676: 2306 movs r3, #6
11678: 5eca ldrsh r2, [r1, r3]
return false;
1167a: 2300 movs r3, #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)) {
1167c: 4294 cmp r4, r2
1167e: dc08 bgt.n 11692 <_lv_area_is_on+0x3e>
11680: 2306 movs r3, #6
11682: 5ec4 ldrsh r4, [r0, r3]
11684: 2302 movs r3, #2
11686: 5eca ldrsh r2, [r1, r3]
11688: 17e3 asrs r3, r4, #31
1168a: 0fd0 lsrs r0, r2, #31
1168c: 4294 cmp r4, r2
1168e: 4143 adcs r3, r0
11690: b2db uxtb r3, r3
}
11692: 0018 movs r0, r3
11694: bd10 pop {r4, pc}
...
00011698 <_lv_area_is_in>:
{
11698: b5f0 push {r4, r5, r6, r7, lr}
1169a: 46c6 mov lr, r8
1169c: b500 push {lr}
1169e: b082 sub sp, #8
116a0: 0005 movs r5, r0
116a2: 000c movs r4, r1
116a4: 0016 movs r6, r2
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
116a6: 2300 movs r3, #0
116a8: 5ec7 ldrsh r7, [r0, r3]
116aa: 2200 movs r2, #0
116ac: 5e8b ldrsh r3, [r1, r2]
bool is_in = false;
116ae: 2000 movs r0, #0
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
116b0: 42bb cmp r3, r7
116b2: dc14 bgt.n 116de <_lv_area_is_in+0x46>
116b4: 2302 movs r3, #2
116b6: 5eea ldrsh r2, [r5, r3]
116b8: 2102 movs r1, #2
116ba: 5e63 ldrsh r3, [r4, r1]
116bc: 429a cmp r2, r3
116be: db0e blt.n 116de <_lv_area_is_in+0x46>
116c0: 2304 movs r3, #4
116c2: 5eea ldrsh r2, [r5, r3]
116c4: 2104 movs r1, #4
116c6: 5e63 ldrsh r3, [r4, r1]
116c8: 429a cmp r2, r3
116ca: dc08 bgt.n 116de <_lv_area_is_in+0x46>
116cc: 2206 movs r2, #6
116ce: 5eab ldrsh r3, [r5, r2]
116d0: 2106 movs r1, #6
116d2: 5e62 ldrsh r2, [r4, r1]
116d4: 0fd8 lsrs r0, r3, #31
116d6: 17d1 asrs r1, r2, #31
116d8: 429a cmp r2, r3
116da: 4148 adcs r0, r1
116dc: b2c0 uxtb r0, r0
if(radius == 0) return is_in;
116de: 2e00 cmp r6, #0
116e0: d103 bne.n 116ea <_lv_area_is_in+0x52>
}
116e2: b002 add sp, #8
116e4: bc04 pop {r2}
116e6: 4690 mov r8, r2
116e8: bdf0 pop {r4, r5, r6, r7, pc}
p.x = ain_p->x1;
116ea: a901 add r1, sp, #4
116ec: 800f strh r7, [r1, #0]
p.y = ain_p->y1;
116ee: 886b ldrh r3, [r5, #2]
116f0: 804b strh r3, [r1, #2]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
116f2: 0032 movs r2, r6
116f4: 0020 movs r0, r4
116f6: 4b10 ldr r3, [pc, #64] ; (11738 <_lv_area_is_in+0xa0>)
116f8: 4798 blx r3
116fa: 2800 cmp r0, #0
116fc: d0f1 beq.n 116e2 <_lv_area_is_in+0x4a>
p.x = ain_p->x2;
116fe: 2204 movs r2, #4
11700: 5eab ldrsh r3, [r5, r2]
11702: 4698 mov r8, r3
11704: a901 add r1, sp, #4
11706: 800b strh r3, [r1, #0]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
11708: 0032 movs r2, r6
1170a: 0020 movs r0, r4
1170c: 4b0a ldr r3, [pc, #40] ; (11738 <_lv_area_is_in+0xa0>)
1170e: 4798 blx r3
11710: 2800 cmp r0, #0
11712: d0e6 beq.n 116e2 <_lv_area_is_in+0x4a>
p.x = ain_p->x1;
11714: a901 add r1, sp, #4
11716: 800f strh r7, [r1, #0]
p.y = ain_p->y2;
11718: 88eb ldrh r3, [r5, #6]
1171a: 804b strh r3, [r1, #2]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
1171c: 0032 movs r2, r6
1171e: 0020 movs r0, r4
11720: 4b05 ldr r3, [pc, #20] ; (11738 <_lv_area_is_in+0xa0>)
11722: 4798 blx r3
11724: 2800 cmp r0, #0
11726: d0dc beq.n 116e2 <_lv_area_is_in+0x4a>
p.x = ain_p->x2;
11728: a901 add r1, sp, #4
1172a: 4643 mov r3, r8
1172c: 800b strh r3, [r1, #0]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
1172e: 0032 movs r2, r6
11730: 0020 movs r0, r4
11732: 4b01 ldr r3, [pc, #4] ; (11738 <_lv_area_is_in+0xa0>)
11734: 4798 blx r3
11736: e7d4 b.n 116e2 <_lv_area_is_in+0x4a>
11738: 000114c5 .word 0x000114c5
0001173c <_lv_area_align>:
{
1173c: b530 push {r4, r5, lr}
switch(align) {
1173e: 2a14 cmp r2, #20
11740: d827 bhi.n 11792 <_lv_area_align+0x56>
11742: 0092 lsls r2, r2, #2
11744: 4cb2 ldr r4, [pc, #712] ; (11a10 <_lv_area_align+0x2d4>)
11746: 58a2 ldr r2, [r4, r2]
11748: 4697 mov pc, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1174a: 8882 ldrh r2, [r0, #4]
1174c: 3201 adds r2, #1
1174e: 8804 ldrh r4, [r0, #0]
11750: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
11752: b212 sxth r2, r2
11754: 0fd4 lsrs r4, r2, #31
11756: 18a4 adds r4, r4, r2
11758: 1064 asrs r4, r4, #1
1175a: 888a ldrh r2, [r1, #4]
1175c: 3201 adds r2, #1
1175e: 880d ldrh r5, [r1, #0]
11760: 1b52 subs r2, r2, r5
11762: b212 sxth r2, r2
11764: 0fd5 lsrs r5, r2, #31
11766: 18aa adds r2, r5, r2
11768: 1052 asrs r2, r2, #1
1176a: 1aa2 subs r2, r4, r2
1176c: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1176e: 88c2 ldrh r2, [r0, #6]
11770: 3201 adds r2, #1
11772: 8844 ldrh r4, [r0, #2]
11774: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
11776: b212 sxth r2, r2
11778: 0fd4 lsrs r4, r2, #31
1177a: 18a4 adds r4, r4, r2
1177c: 1064 asrs r4, r4, #1
1177e: 88ca ldrh r2, [r1, #6]
11780: 3201 adds r2, #1
11782: 8849 ldrh r1, [r1, #2]
11784: 1a52 subs r2, r2, r1
11786: b212 sxth r2, r2
11788: 0fd1 lsrs r1, r2, #31
1178a: 188a adds r2, r1, r2
1178c: 1052 asrs r2, r2, #1
1178e: 1aa2 subs r2, r4, r2
11790: 805a strh r2, [r3, #2]
res->x += base->x1;
11792: 881a ldrh r2, [r3, #0]
11794: 8801 ldrh r1, [r0, #0]
11796: 1852 adds r2, r2, r1
11798: 801a strh r2, [r3, #0]
res->y += base->y1;
1179a: 885a ldrh r2, [r3, #2]
1179c: 8841 ldrh r1, [r0, #2]
1179e: 1852 adds r2, r2, r1
117a0: 805a strh r2, [r3, #2]
}
117a2: bd30 pop {r4, r5, pc}
res->x = 0;
117a4: 2200 movs r2, #0
117a6: 801a strh r2, [r3, #0]
res->y = 0;
117a8: 805a strh r2, [r3, #2]
break;
117aa: e7f2 b.n 11792 <_lv_area_align+0x56>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
117ac: 8882 ldrh r2, [r0, #4]
117ae: 3201 adds r2, #1
117b0: 8804 ldrh r4, [r0, #0]
117b2: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
117b4: b212 sxth r2, r2
117b6: 0fd4 lsrs r4, r2, #31
117b8: 18a4 adds r4, r4, r2
117ba: 1064 asrs r4, r4, #1
117bc: 888a ldrh r2, [r1, #4]
117be: 3201 adds r2, #1
117c0: 8809 ldrh r1, [r1, #0]
117c2: 1a52 subs r2, r2, r1
117c4: b212 sxth r2, r2
117c6: 0fd1 lsrs r1, r2, #31
117c8: 188a adds r2, r1, r2
117ca: 1052 asrs r2, r2, #1
117cc: 1aa2 subs r2, r4, r2
117ce: 801a strh r2, [r3, #0]
res->y = 0;
117d0: 2200 movs r2, #0
117d2: 805a strh r2, [r3, #2]
break;
117d4: e7dd b.n 11792 <_lv_area_align+0x56>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
117d6: 8882 ldrh r2, [r0, #4]
117d8: 888c ldrh r4, [r1, #4]
117da: 1b12 subs r2, r2, r4
117dc: 8804 ldrh r4, [r0, #0]
117de: 1b12 subs r2, r2, r4
117e0: 8809 ldrh r1, [r1, #0]
117e2: 1852 adds r2, r2, r1
117e4: 801a strh r2, [r3, #0]
res->y = 0;
117e6: 2200 movs r2, #0
117e8: 805a strh r2, [r3, #2]
break;
117ea: e7d2 b.n 11792 <_lv_area_align+0x56>
res->x = 0;
117ec: 2200 movs r2, #0
117ee: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
117f0: 88c2 ldrh r2, [r0, #6]
117f2: 88cc ldrh r4, [r1, #6]
117f4: 1b12 subs r2, r2, r4
117f6: 8844 ldrh r4, [r0, #2]
117f8: 1b12 subs r2, r2, r4
117fa: 8849 ldrh r1, [r1, #2]
117fc: 1852 adds r2, r2, r1
117fe: 805a strh r2, [r3, #2]
break;
11800: e7c7 b.n 11792 <_lv_area_align+0x56>
11802: 8882 ldrh r2, [r0, #4]
11804: 3201 adds r2, #1
11806: 8804 ldrh r4, [r0, #0]
11808: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
1180a: b212 sxth r2, r2
1180c: 0fd4 lsrs r4, r2, #31
1180e: 18a4 adds r4, r4, r2
11810: 1064 asrs r4, r4, #1
11812: 888a ldrh r2, [r1, #4]
11814: 3201 adds r2, #1
11816: 880d ldrh r5, [r1, #0]
11818: 1b52 subs r2, r2, r5
1181a: b212 sxth r2, r2
1181c: 0fd5 lsrs r5, r2, #31
1181e: 18aa adds r2, r5, r2
11820: 1052 asrs r2, r2, #1
11822: 1aa2 subs r2, r4, r2
11824: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
11826: 88c2 ldrh r2, [r0, #6]
11828: 88cc ldrh r4, [r1, #6]
1182a: 1b12 subs r2, r2, r4
1182c: 8844 ldrh r4, [r0, #2]
1182e: 1b12 subs r2, r2, r4
11830: 8849 ldrh r1, [r1, #2]
11832: 1852 adds r2, r2, r1
11834: 805a strh r2, [r3, #2]
break;
11836: e7ac b.n 11792 <_lv_area_align+0x56>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
11838: 8882 ldrh r2, [r0, #4]
1183a: 888c ldrh r4, [r1, #4]
1183c: 1b12 subs r2, r2, r4
1183e: 8804 ldrh r4, [r0, #0]
11840: 1b12 subs r2, r2, r4
11842: 880c ldrh r4, [r1, #0]
11844: 1912 adds r2, r2, r4
11846: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
11848: 88c2 ldrh r2, [r0, #6]
1184a: 88cc ldrh r4, [r1, #6]
1184c: 1b12 subs r2, r2, r4
1184e: 8844 ldrh r4, [r0, #2]
11850: 1b12 subs r2, r2, r4
11852: 8849 ldrh r1, [r1, #2]
11854: 1852 adds r2, r2, r1
11856: 805a strh r2, [r3, #2]
break;
11858: e79b b.n 11792 <_lv_area_align+0x56>
res->x = 0;
1185a: 2200 movs r2, #0
1185c: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1185e: 88c2 ldrh r2, [r0, #6]
11860: 3201 adds r2, #1
11862: 8844 ldrh r4, [r0, #2]
11864: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
11866: b212 sxth r2, r2
11868: 0fd4 lsrs r4, r2, #31
1186a: 18a4 adds r4, r4, r2
1186c: 1064 asrs r4, r4, #1
1186e: 88ca ldrh r2, [r1, #6]
11870: 3201 adds r2, #1
11872: 8849 ldrh r1, [r1, #2]
11874: 1a52 subs r2, r2, r1
11876: b212 sxth r2, r2
11878: 0fd1 lsrs r1, r2, #31
1187a: 188a adds r2, r1, r2
1187c: 1052 asrs r2, r2, #1
1187e: 1aa2 subs r2, r4, r2
11880: 805a strh r2, [r3, #2]
break;
11882: e786 b.n 11792 <_lv_area_align+0x56>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
11884: 8882 ldrh r2, [r0, #4]
11886: 888c ldrh r4, [r1, #4]
11888: 1b12 subs r2, r2, r4
1188a: 8804 ldrh r4, [r0, #0]
1188c: 1b12 subs r2, r2, r4
1188e: 880c ldrh r4, [r1, #0]
11890: 1912 adds r2, r2, r4
11892: 801a strh r2, [r3, #0]
11894: 88c2 ldrh r2, [r0, #6]
11896: 3201 adds r2, #1
11898: 8844 ldrh r4, [r0, #2]
1189a: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
1189c: b212 sxth r2, r2
1189e: 0fd4 lsrs r4, r2, #31
118a0: 18a4 adds r4, r4, r2
118a2: 1064 asrs r4, r4, #1
118a4: 88ca ldrh r2, [r1, #6]
118a6: 3201 adds r2, #1
118a8: 8849 ldrh r1, [r1, #2]
118aa: 1a52 subs r2, r2, r1
118ac: b212 sxth r2, r2
118ae: 0fd1 lsrs r1, r2, #31
118b0: 188a adds r2, r1, r2
118b2: 1052 asrs r2, r2, #1
118b4: 1aa2 subs r2, r4, r2
118b6: 805a strh r2, [r3, #2]
break;
118b8: e76b b.n 11792 <_lv_area_align+0x56>
res->x = 0;
118ba: 2200 movs r2, #0
118bc: 801a strh r2, [r3, #0]
118be: 88ca ldrh r2, [r1, #6]
118c0: 8849 ldrh r1, [r1, #2]
118c2: 1a52 subs r2, r2, r1
res->y = -lv_area_get_height(to_align);
118c4: 43d2 mvns r2, r2
118c6: 805a strh r2, [r3, #2]
break;
118c8: e763 b.n 11792 <_lv_area_align+0x56>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
118ca: 8882 ldrh r2, [r0, #4]
118cc: 3201 adds r2, #1
118ce: 8804 ldrh r4, [r0, #0]
118d0: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
118d2: b212 sxth r2, r2
118d4: 0fd4 lsrs r4, r2, #31
118d6: 18a4 adds r4, r4, r2
118d8: 1064 asrs r4, r4, #1
118da: 888a ldrh r2, [r1, #4]
118dc: 3201 adds r2, #1
118de: 880d ldrh r5, [r1, #0]
118e0: 1b52 subs r2, r2, r5
118e2: b212 sxth r2, r2
118e4: 0fd5 lsrs r5, r2, #31
118e6: 18aa adds r2, r5, r2
118e8: 1052 asrs r2, r2, #1
118ea: 1aa2 subs r2, r4, r2
118ec: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
118ee: 88ca ldrh r2, [r1, #6]
118f0: 8849 ldrh r1, [r1, #2]
118f2: 1a52 subs r2, r2, r1
res->y = -lv_area_get_height(to_align);
118f4: 43d2 mvns r2, r2
118f6: 805a strh r2, [r3, #2]
break;
118f8: e74b b.n 11792 <_lv_area_align+0x56>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
118fa: 8882 ldrh r2, [r0, #4]
118fc: 888c ldrh r4, [r1, #4]
118fe: 1b12 subs r2, r2, r4
11900: 8804 ldrh r4, [r0, #0]
11902: 1b12 subs r2, r2, r4
11904: 880c ldrh r4, [r1, #0]
11906: 1912 adds r2, r2, r4
11908: 801a strh r2, [r3, #0]
1190a: 88ca ldrh r2, [r1, #6]
1190c: 8849 ldrh r1, [r1, #2]
1190e: 1a52 subs r2, r2, r1
res->y = -lv_area_get_height(to_align);
11910: 43d2 mvns r2, r2
11912: 805a strh r2, [r3, #2]
break;
11914: e73d b.n 11792 <_lv_area_align+0x56>
res->x = 0;
11916: 2200 movs r2, #0
11918: 801a strh r2, [r3, #0]
1191a: 88c2 ldrh r2, [r0, #6]
1191c: 3201 adds r2, #1
1191e: 8841 ldrh r1, [r0, #2]
11920: 1a52 subs r2, r2, r1
res->y = lv_area_get_height(base);
11922: 805a strh r2, [r3, #2]
break;
11924: e735 b.n 11792 <_lv_area_align+0x56>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
11926: 8882 ldrh r2, [r0, #4]
11928: 3201 adds r2, #1
1192a: 8804 ldrh r4, [r0, #0]
1192c: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
1192e: b212 sxth r2, r2
11930: 0fd4 lsrs r4, r2, #31
11932: 18a4 adds r4, r4, r2
11934: 1064 asrs r4, r4, #1
11936: 888a ldrh r2, [r1, #4]
11938: 3201 adds r2, #1
1193a: 8809 ldrh r1, [r1, #0]
1193c: 1a52 subs r2, r2, r1
1193e: b212 sxth r2, r2
11940: 0fd1 lsrs r1, r2, #31
11942: 188a adds r2, r1, r2
11944: 1052 asrs r2, r2, #1
11946: 1aa2 subs r2, r4, r2
11948: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1194a: 88c2 ldrh r2, [r0, #6]
1194c: 3201 adds r2, #1
1194e: 8841 ldrh r1, [r0, #2]
11950: 1a52 subs r2, r2, r1
res->y = lv_area_get_height(base);
11952: 805a strh r2, [r3, #2]
break;
11954: e71d b.n 11792 <_lv_area_align+0x56>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
11956: 8882 ldrh r2, [r0, #4]
11958: 888c ldrh r4, [r1, #4]
1195a: 1b12 subs r2, r2, r4
1195c: 8804 ldrh r4, [r0, #0]
1195e: 1b12 subs r2, r2, r4
11960: 8809 ldrh r1, [r1, #0]
11962: 1852 adds r2, r2, r1
11964: 801a strh r2, [r3, #0]
11966: 88c2 ldrh r2, [r0, #6]
11968: 3201 adds r2, #1
1196a: 8841 ldrh r1, [r0, #2]
1196c: 1a52 subs r2, r2, r1
res->y = lv_area_get_height(base);
1196e: 805a strh r2, [r3, #2]
break;
11970: e70f b.n 11792 <_lv_area_align+0x56>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
11972: 888a ldrh r2, [r1, #4]
11974: 8809 ldrh r1, [r1, #0]
11976: 1a52 subs r2, r2, r1
res->x = -lv_area_get_width(to_align);
11978: 43d2 mvns r2, r2
1197a: 801a strh r2, [r3, #0]
res->y = 0;
1197c: 2200 movs r2, #0
1197e: 805a strh r2, [r3, #2]
break;
11980: e707 b.n 11792 <_lv_area_align+0x56>
11982: 888a ldrh r2, [r1, #4]
11984: 880c ldrh r4, [r1, #0]
11986: 1b12 subs r2, r2, r4
res->x = -lv_area_get_width(to_align);
11988: 43d2 mvns r2, r2
1198a: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1198c: 88c2 ldrh r2, [r0, #6]
1198e: 3201 adds r2, #1
11990: 8844 ldrh r4, [r0, #2]
11992: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
11994: b212 sxth r2, r2
11996: 0fd4 lsrs r4, r2, #31
11998: 18a4 adds r4, r4, r2
1199a: 1064 asrs r4, r4, #1
1199c: 88ca ldrh r2, [r1, #6]
1199e: 3201 adds r2, #1
119a0: 8849 ldrh r1, [r1, #2]
119a2: 1a52 subs r2, r2, r1
119a4: b212 sxth r2, r2
119a6: 0fd1 lsrs r1, r2, #31
119a8: 188a adds r2, r1, r2
119aa: 1052 asrs r2, r2, #1
119ac: 1aa2 subs r2, r4, r2
119ae: 805a strh r2, [r3, #2]
break;
119b0: e6ef b.n 11792 <_lv_area_align+0x56>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
119b2: 888a ldrh r2, [r1, #4]
119b4: 880c ldrh r4, [r1, #0]
119b6: 1b12 subs r2, r2, r4
res->x = -lv_area_get_width(to_align);
119b8: 43d2 mvns r2, r2
119ba: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
119bc: 88c2 ldrh r2, [r0, #6]
119be: 88cc ldrh r4, [r1, #6]
119c0: 1b12 subs r2, r2, r4
119c2: 8844 ldrh r4, [r0, #2]
119c4: 1b12 subs r2, r2, r4
119c6: 8849 ldrh r1, [r1, #2]
119c8: 1852 adds r2, r2, r1
119ca: 805a strh r2, [r3, #2]
break;
119cc: e6e1 b.n 11792 <_lv_area_align+0x56>
119ce: 8882 ldrh r2, [r0, #4]
119d0: 3201 adds r2, #1
119d2: 8801 ldrh r1, [r0, #0]
119d4: 1a52 subs r2, r2, r1
res->x = lv_area_get_width(base);
119d6: 801a strh r2, [r3, #0]
res->y = 0;
119d8: 2200 movs r2, #0
119da: 805a strh r2, [r3, #2]
break;
119dc: e6d9 b.n 11792 <_lv_area_align+0x56>
119de: 8882 ldrh r2, [r0, #4]
119e0: 3201 adds r2, #1
119e2: 8804 ldrh r4, [r0, #0]
119e4: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base);
119e6: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
119e8: 88c2 ldrh r2, [r0, #6]
119ea: 3201 adds r2, #1
119ec: 8844 ldrh r4, [r0, #2]
119ee: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
119f0: b212 sxth r2, r2
119f2: 0fd4 lsrs r4, r2, #31
119f4: 18a4 adds r4, r4, r2
119f6: 1064 asrs r4, r4, #1
119f8: 88ca ldrh r2, [r1, #6]
119fa: 3201 adds r2, #1
119fc: 8849 ldrh r1, [r1, #2]
119fe: 1a52 subs r2, r2, r1
11a00: b212 sxth r2, r2
11a02: 0fd1 lsrs r1, r2, #31
11a04: 188a adds r2, r1, r2
11a06: 1052 asrs r2, r2, #1
11a08: 1aa2 subs r2, r4, r2
11a0a: 805a strh r2, [r3, #2]
break;
11a0c: e6c1 b.n 11792 <_lv_area_align+0x56>
11a0e: 46c0 nop ; (mov r8, r8)
11a10: 0002a788 .word 0x0002a788
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
11a14: 8882 ldrh r2, [r0, #4]
11a16: 3201 adds r2, #1
11a18: 8804 ldrh r4, [r0, #0]
11a1a: 1b12 subs r2, r2, r4
res->x = lv_area_get_width(base);
11a1c: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
11a1e: 88c2 ldrh r2, [r0, #6]
11a20: 88cc ldrh r4, [r1, #6]
11a22: 1b12 subs r2, r2, r4
11a24: 8844 ldrh r4, [r0, #2]
11a26: 1b12 subs r2, r2, r4
11a28: 8849 ldrh r1, [r1, #2]
11a2a: 1852 adds r2, r2, r1
11a2c: 805a strh r2, [r3, #2]
break;
11a2e: e6b0 b.n 11792 <_lv_area_align+0x56>
00011a30 <lv_color_fill>:
/**********************
* STATIC FUNCTIONS
**********************/
LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num)
{
11a30: b530 push {r4, r5, lr}
11a32: b28d uxth r5, r1
#if LV_COLOR_DEPTH == 16
uintptr_t buf_int = (uintptr_t) buf;
if(buf_int & 0x3) {
11a34: 0783 lsls r3, r0, #30
11a36: d002 beq.n 11a3e <lv_color_fill+0xe>
*buf = color;
11a38: 8001 strh r1, [r0, #0]
buf++;
11a3a: 3002 adds r0, #2
px_num--;
11a3c: 3a01 subs r2, #1
}
uint32_t c32 = color.full + (color.full << 16);
11a3e: 0429 lsls r1, r5, #16
11a40: 1949 adds r1, r1, r5
uint32_t * buf32 = (uint32_t *)buf;
while(px_num > 16) {
11a42: 2a10 cmp r2, #16
11a44: d916 bls.n 11a74 <lv_color_fill+0x44>
11a46: 0003 movs r3, r0
11a48: 0014 movs r4, r2
*buf32 = c32;
11a4a: 6019 str r1, [r3, #0]
buf32++;
*buf32 = c32;
11a4c: 6059 str r1, [r3, #4]
buf32++;
*buf32 = c32;
11a4e: 6099 str r1, [r3, #8]
buf32++;
*buf32 = c32;
11a50: 60d9 str r1, [r3, #12]
buf32++;
*buf32 = c32;
11a52: 6119 str r1, [r3, #16]
buf32++;
*buf32 = c32;
11a54: 6159 str r1, [r3, #20]
buf32++;
*buf32 = c32;
11a56: 6199 str r1, [r3, #24]
buf32++;
*buf32 = c32;
11a58: 61d9 str r1, [r3, #28]
11a5a: 3320 adds r3, #32
buf32++;
px_num -= 16;
11a5c: 3c10 subs r4, #16
while(px_num > 16) {
11a5e: 2c10 cmp r4, #16
11a60: d8f3 bhi.n 11a4a <lv_color_fill+0x1a>
11a62: 0011 movs r1, r2
11a64: 3911 subs r1, #17
11a66: 0909 lsrs r1, r1, #4
11a68: 1c4c adds r4, r1, #1
11a6a: 0164 lsls r4, r4, #5
11a6c: 3a10 subs r2, #16
11a6e: 0109 lsls r1, r1, #4
11a70: 1a52 subs r2, r2, r1
buf32++;
11a72: 1900 adds r0, r0, r4
}
buf = (lv_color_t *)buf32;
while(px_num) {
11a74: 2a00 cmp r2, #0
11a76: d004 beq.n 11a82 <lv_color_fill+0x52>
*buf = color;
11a78: 8005 strh r5, [r0, #0]
buf++;
11a7a: 3002 adds r0, #2
px_num --;
11a7c: 3a01 subs r2, #1
while(px_num) {
11a7e: 2a00 cmp r2, #0
11a80: d1fa bne.n 11a78 <lv_color_fill+0x48>
*buf = color;
buf++;
px_num --;
}
#endif
}
11a82: bd30 pop {r4, r5, pc}
00011a84 <lv_color_lighten>:
lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)
{
11a84: b570 push {r4, r5, r6, lr}
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11a86: 014a lsls r2, r1, #5
11a88: 1a52 subs r2, r2, r1
11a8a: 24ff movs r4, #255 ; 0xff
11a8c: 1a64 subs r4, r4, r1
11a8e: 0403 lsls r3, r0, #16
11a90: 0edb lsrs r3, r3, #27
11a92: 4363 muls r3, r4
11a94: 189d adds r5, r3, r2
11a96: 022b lsls r3, r5, #8
11a98: 195b adds r3, r3, r5
11a9a: 01db lsls r3, r3, #7
11a9c: 195b adds r3, r3, r5
11a9e: 011b lsls r3, r3, #4
11aa0: 0edb lsrs r3, r3, #27
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
11aa2: 0545 lsls r5, r0, #21
11aa4: 0ead lsrs r5, r5, #26
11aa6: 4365 muls r5, r4
11aa8: 018e lsls r6, r1, #6
11aaa: 1a71 subs r1, r6, r1
11aac: 186d adds r5, r5, r1
11aae: 0229 lsls r1, r5, #8
11ab0: 1949 adds r1, r1, r5
11ab2: 01c9 lsls r1, r1, #7
11ab4: 1949 adds r1, r1, r5
11ab6: 00c9 lsls r1, r1, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11ab8: 06c0 lsls r0, r0, #27
11aba: 0ec0 lsrs r0, r0, #27
11abc: 4360 muls r0, r4
11abe: 1882 adds r2, r0, r2
11ac0: 0210 lsls r0, r2, #8
11ac2: 1880 adds r0, r0, r2
11ac4: 01c0 lsls r0, r0, #7
11ac6: 1880 adds r0, r0, r2
11ac8: 0100 lsls r0, r0, #4
11aca: 0e89 lsrs r1, r1, #26
11acc: 0149 lsls r1, r1, #5
11ace: 0ec0 lsrs r0, r0, #27
11ad0: 02db lsls r3, r3, #11
11ad2: 4308 orrs r0, r1
11ad4: 4318 orrs r0, r3
return lv_color_mix(LV_COLOR_WHITE, c, lvl);
}
11ad6: bd70 pop {r4, r5, r6, pc}
00011ad8 <lv_color_darken>:
lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)
{
11ad8: b510 push {r4, lr}
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11ada: 23ff movs r3, #255 ; 0xff
11adc: 1a59 subs r1, r3, r1
11ade: 0403 lsls r3, r0, #16
11ae0: 0edb lsrs r3, r3, #27
11ae2: 434b muls r3, r1
11ae4: 001a movs r2, r3
11ae6: 021b lsls r3, r3, #8
11ae8: 189b adds r3, r3, r2
11aea: 01db lsls r3, r3, #7
11aec: 189b adds r3, r3, r2
11aee: 011b lsls r3, r3, #4
11af0: 0edb lsrs r3, r3, #27
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
11af2: 0542 lsls r2, r0, #21
11af4: 0e92 lsrs r2, r2, #26
11af6: 434a muls r2, r1
11af8: 0014 movs r4, r2
11afa: 0212 lsls r2, r2, #8
11afc: 1912 adds r2, r2, r4
11afe: 01d2 lsls r2, r2, #7
11b00: 1912 adds r2, r2, r4
11b02: 00d2 lsls r2, r2, #3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11b04: 06c0 lsls r0, r0, #27
11b06: 0ec0 lsrs r0, r0, #27
11b08: 4341 muls r1, r0
11b0a: 0208 lsls r0, r1, #8
11b0c: 1840 adds r0, r0, r1
11b0e: 01c0 lsls r0, r0, #7
11b10: 1840 adds r0, r0, r1
11b12: 0100 lsls r0, r0, #4
11b14: 0e92 lsrs r2, r2, #26
11b16: 0152 lsls r2, r2, #5
11b18: 0ec0 lsrs r0, r0, #27
11b1a: 02db lsls r3, r3, #11
11b1c: 4310 orrs r0, r2
11b1e: 4318 orrs r0, r3
return lv_color_mix(LV_COLOR_BLACK, c, lvl);
}
11b20: bd10 pop {r4, pc}
00011b22 <lv_fs_get_real_path>:
static const char * lv_fs_get_real_path(const char * path)
{
/* Example path: "S:/folder/file.txt"
* Leave the letter and the : / \ characters*/
path++; /*Ignore the driver letter*/
11b22: 1c42 adds r2, r0, #1
while(*path != '\0') {
11b24: 7843 ldrb r3, [r0, #1]
11b26: 2b00 cmp r3, #0
11b28: d104 bne.n 11b34 <lv_fs_get_real_path+0x12>
11b2a: e009 b.n 11b40 <lv_fs_get_real_path+0x1e>
if(*path == ':' || *path == '\\' || *path == '/') {
path++;
11b2c: 3201 adds r2, #1
while(*path != '\0') {
11b2e: 7813 ldrb r3, [r2, #0]
11b30: 2b00 cmp r3, #0
11b32: d005 beq.n 11b40 <lv_fs_get_real_path+0x1e>
if(*path == ':' || *path == '\\' || *path == '/') {
11b34: 2b3a cmp r3, #58 ; 0x3a
11b36: d0f9 beq.n 11b2c <lv_fs_get_real_path+0xa>
11b38: 2b5c cmp r3, #92 ; 0x5c
11b3a: d0f7 beq.n 11b2c <lv_fs_get_real_path+0xa>
11b3c: 2b2f cmp r3, #47 ; 0x2f
11b3e: d0f5 beq.n 11b2c <lv_fs_get_real_path+0xa>
break;
}
}
return path;
}
11b40: 0010 movs r0, r2
11b42: 4770 bx lr
00011b44 <_lv_fs_init>:
{
11b44: b510 push {r4, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t));
11b46: 2144 movs r1, #68 ; 0x44
11b48: 4801 ldr r0, [pc, #4] ; (11b50 <_lv_fs_init+0xc>)
11b4a: 4b02 ldr r3, [pc, #8] ; (11b54 <_lv_fs_init+0x10>)
11b4c: 4798 blx r3
}
11b4e: bd10 pop {r4, pc}
11b50: 20004db8 .word 0x20004db8
11b54: 00011dd1 .word 0x00011dd1
00011b58 <lv_fs_close>:
{
11b58: b570 push {r4, r5, r6, lr}
11b5a: 0004 movs r4, r0
if(file_p->drv == NULL) {
11b5c: 6840 ldr r0, [r0, #4]
11b5e: 2800 cmp r0, #0
11b60: d00e beq.n 11b80 <lv_fs_close+0x28>
if(file_p->drv->close_cb == NULL) {
11b62: 6903 ldr r3, [r0, #16]
return LV_FS_RES_NOT_IMP;
11b64: 2509 movs r5, #9
if(file_p->drv->close_cb == NULL) {
11b66: 2b00 cmp r3, #0
11b68: d008 beq.n 11b7c <lv_fs_close+0x24>
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
11b6a: 6821 ldr r1, [r4, #0]
11b6c: 4798 blx r3
11b6e: 0005 movs r5, r0
lv_mem_free(file_p->file_d); /*Clean up*/
11b70: 6820 ldr r0, [r4, #0]
11b72: 4b04 ldr r3, [pc, #16] ; (11b84 <lv_fs_close+0x2c>)
11b74: 4798 blx r3
file_p->file_d = NULL;
11b76: 2300 movs r3, #0
11b78: 6023 str r3, [r4, #0]
file_p->drv = NULL;
11b7a: 6063 str r3, [r4, #4]
}
11b7c: 0028 movs r0, r5
11b7e: bd70 pop {r4, r5, r6, pc}
return LV_FS_RES_INV_PARAM;
11b80: 250b movs r5, #11
11b82: e7fb b.n 11b7c <lv_fs_close+0x24>
11b84: 000123c9 .word 0x000123c9
00011b88 <lv_fs_read>:
{
11b88: b570 push {r4, r5, r6, lr}
11b8a: b084 sub sp, #16
11b8c: 1e1c subs r4, r3, #0
if(br != NULL) *br = 0;
11b8e: d001 beq.n 11b94 <lv_fs_read+0xc>
11b90: 2300 movs r3, #0
11b92: 6023 str r3, [r4, #0]
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
11b94: 6845 ldr r5, [r0, #4]
11b96: 2d00 cmp r5, #0
11b98: d015 beq.n 11bc6 <lv_fs_read+0x3e>
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
11b9a: 69ae ldr r6, [r5, #24]
11b9c: 2309 movs r3, #9
11b9e: 2e00 cmp r6, #0
11ba0: d00e beq.n 11bc0 <lv_fs_read+0x38>
uint32_t br_tmp = 0;
11ba2: 2300 movs r3, #0
11ba4: 9303 str r3, [sp, #12]
lv_fs_res_t res = file_p->drv->read_cb(file_p->drv, file_p->file_d, buf, btr, &br_tmp);
11ba6: 6800 ldr r0, [r0, #0]
11ba8: ab03 add r3, sp, #12
11baa: 9300 str r3, [sp, #0]
11bac: 0013 movs r3, r2
11bae: 000a movs r2, r1
11bb0: 0001 movs r1, r0
11bb2: 0028 movs r0, r5
11bb4: 47b0 blx r6
11bb6: 0003 movs r3, r0
if(br != NULL) *br = br_tmp;
11bb8: 2c00 cmp r4, #0
11bba: d001 beq.n 11bc0 <lv_fs_read+0x38>
11bbc: 9a03 ldr r2, [sp, #12]
11bbe: 6022 str r2, [r4, #0]
}
11bc0: 0018 movs r0, r3
11bc2: b004 add sp, #16
11bc4: bd70 pop {r4, r5, r6, pc}
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
11bc6: 230b movs r3, #11
11bc8: e7fa b.n 11bc0 <lv_fs_read+0x38>
00011bca <lv_fs_seek>:
{
11bca: b570 push {r4, r5, r6, lr}
11bcc: 000a movs r2, r1
if(file_p->drv == NULL) {
11bce: 6844 ldr r4, [r0, #4]
11bd0: 2c00 cmp r4, #0
11bd2: d009 beq.n 11be8 <lv_fs_seek+0x1e>
if(file_p->drv->seek_cb == NULL) {
11bd4: 6a25 ldr r5, [r4, #32]
return LV_FS_RES_NOT_IMP;
11bd6: 2309 movs r3, #9
if(file_p->drv->seek_cb == NULL) {
11bd8: 2d00 cmp r5, #0
11bda: d003 beq.n 11be4 <lv_fs_seek+0x1a>
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
11bdc: 6801 ldr r1, [r0, #0]
11bde: 0020 movs r0, r4
11be0: 47a8 blx r5
11be2: 0003 movs r3, r0
}
11be4: 0018 movs r0, r3
11be6: bd70 pop {r4, r5, r6, pc}
return LV_FS_RES_INV_PARAM;
11be8: 230b movs r3, #11
11bea: e7fb b.n 11be4 <lv_fs_seek+0x1a>
00011bec <lv_fs_get_drv>:
{
11bec: b570 push {r4, r5, r6, lr}
11bee: 0004 movs r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
11bf0: 4809 ldr r0, [pc, #36] ; (11c18 <lv_fs_get_drv+0x2c>)
11bf2: 4b0a ldr r3, [pc, #40] ; (11c1c <lv_fs_get_drv+0x30>)
11bf4: 4798 blx r3
11bf6: 2800 cmp r0, #0
11bf8: d00c beq.n 11c14 <lv_fs_get_drv+0x28>
if(drv->letter == letter) {
11bfa: 7803 ldrb r3, [r0, #0]
11bfc: 42a3 cmp r3, r4
11bfe: d009 beq.n 11c14 <lv_fs_get_drv+0x28>
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
11c00: 4d05 ldr r5, [pc, #20] ; (11c18 <lv_fs_get_drv+0x2c>)
11c02: 4e07 ldr r6, [pc, #28] ; (11c20 <lv_fs_get_drv+0x34>)
11c04: 0001 movs r1, r0
11c06: 0028 movs r0, r5
11c08: 47b0 blx r6
11c0a: 2800 cmp r0, #0
11c0c: d002 beq.n 11c14 <lv_fs_get_drv+0x28>
if(drv->letter == letter) {
11c0e: 7803 ldrb r3, [r0, #0]
11c10: 42a3 cmp r3, r4
11c12: d1f7 bne.n 11c04 <lv_fs_get_drv+0x18>
}
11c14: bd70 pop {r4, r5, r6, pc}
11c16: 46c0 nop ; (mov r8, r8)
11c18: 20004db8 .word 0x20004db8
11c1c: 00011e85 .word 0x00011e85
11c20: 00011e9d .word 0x00011e9d
00011c24 <lv_fs_open>:
{
11c24: b5f0 push {r4, r5, r6, r7, lr}
11c26: 46d6 mov lr, sl
11c28: 464f mov r7, r9
11c2a: b580 push {r7, lr}
11c2c: b085 sub sp, #20
11c2e: 0004 movs r4, r0
11c30: 000f movs r7, r1
11c32: 9203 str r2, [sp, #12]
file_p->drv = NULL;
11c34: 2300 movs r3, #0
11c36: 6043 str r3, [r0, #4]
file_p->file_d = NULL;
11c38: 6003 str r3, [r0, #0]
if(path == NULL) return LV_FS_RES_INV_PARAM;
11c3a: 2900 cmp r1, #0
11c3c: d048 beq.n 11cd0 <lv_fs_open+0xac>
file_p->drv = lv_fs_get_drv(letter);
11c3e: 7808 ldrb r0, [r1, #0]
11c40: 4b27 ldr r3, [pc, #156] ; (11ce0 <lv_fs_open+0xbc>)
11c42: 4798 blx r3
11c44: 6060 str r0, [r4, #4]
if(file_p->drv == NULL) {
11c46: 2800 cmp r0, #0
11c48: d00a beq.n 11c60 <lv_fs_open+0x3c>
if(file_p->drv->ready_cb != NULL) {
11c4a: 6883 ldr r3, [r0, #8]
11c4c: 2b00 cmp r3, #0
11c4e: d00b beq.n 11c68 <lv_fs_open+0x44>
if(file_p->drv->ready_cb(file_p->drv) == false) {
11c50: 4798 blx r3
11c52: 2800 cmp r0, #0
11c54: d108 bne.n 11c68 <lv_fs_open+0x44>
file_p->drv = NULL;
11c56: 2300 movs r3, #0
11c58: 6063 str r3, [r4, #4]
file_p->file_d = NULL;
11c5a: 6023 str r3, [r4, #0]
return LV_FS_RES_HW_ERR;
11c5c: 2501 movs r5, #1
11c5e: e038 b.n 11cd2 <lv_fs_open+0xae>
file_p->file_d = NULL;
11c60: 2300 movs r3, #0
11c62: 6023 str r3, [r4, #0]
return LV_FS_RES_NOT_EX;
11c64: 2503 movs r5, #3
11c66: e034 b.n 11cd2 <lv_fs_open+0xae>
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
11c68: 6863 ldr r3, [r4, #4]
11c6a: 8858 ldrh r0, [r3, #2]
11c6c: 4b1d ldr r3, [pc, #116] ; (11ce4 <lv_fs_open+0xc0>)
11c6e: 4798 blx r3
11c70: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(file_p->file_d);
11c72: 4b1d ldr r3, [pc, #116] ; (11ce8 <lv_fs_open+0xc4>)
11c74: 4798 blx r3
11c76: 2800 cmp r0, #0
11c78: d006 beq.n 11c88 <lv_fs_open+0x64>
if(file_p->file_d == NULL) {
11c7a: 6823 ldr r3, [r4, #0]
11c7c: 469a mov sl, r3
11c7e: 2b00 cmp r3, #0
11c80: d10f bne.n 11ca2 <lv_fs_open+0x7e>
file_p->drv = NULL;
11c82: 6063 str r3, [r4, #4]
return LV_FS_RES_OUT_OF_MEM; /* Out of memory */
11c84: 250a movs r5, #10
11c86: e024 b.n 11cd2 <lv_fs_open+0xae>
LV_ASSERT_MEM(file_p->file_d);
11c88: 4b18 ldr r3, [pc, #96] ; (11cec <lv_fs_open+0xc8>)
11c8a: 9300 str r3, [sp, #0]
11c8c: 226f movs r2, #111 ; 0x6f
11c8e: 4918 ldr r1, [pc, #96] ; (11cf0 <lv_fs_open+0xcc>)
11c90: 3003 adds r0, #3
11c92: 4d18 ldr r5, [pc, #96] ; (11cf4 <lv_fs_open+0xd0>)
11c94: 47a8 blx r5
11c96: 6822 ldr r2, [r4, #0]
11c98: 2300 movs r3, #0
11c9a: 4817 ldr r0, [pc, #92] ; (11cf8 <lv_fs_open+0xd4>)
11c9c: 4917 ldr r1, [pc, #92] ; (11cfc <lv_fs_open+0xd8>)
11c9e: 4788 blx r1
11ca0: e7fe b.n 11ca0 <lv_fs_open+0x7c>
if(file_p->drv->open_cb == NULL) {
11ca2: 6863 ldr r3, [r4, #4]
11ca4: 4699 mov r9, r3
11ca6: 68de ldr r6, [r3, #12]
return LV_FS_RES_NOT_IMP;
11ca8: 2509 movs r5, #9
if(file_p->drv->open_cb == NULL) {
11caa: 2e00 cmp r6, #0
11cac: d011 beq.n 11cd2 <lv_fs_open+0xae>
const char * real_path = lv_fs_get_real_path(path);
11cae: 0038 movs r0, r7
11cb0: 4b13 ldr r3, [pc, #76] ; (11d00 <lv_fs_open+0xdc>)
11cb2: 4798 blx r3
11cb4: 0002 movs r2, r0
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
11cb6: 9b03 ldr r3, [sp, #12]
11cb8: 4651 mov r1, sl
11cba: 4648 mov r0, r9
11cbc: 47b0 blx r6
11cbe: 1e05 subs r5, r0, #0
if(res != LV_FS_RES_OK) {
11cc0: d007 beq.n 11cd2 <lv_fs_open+0xae>
lv_mem_free(file_p->file_d);
11cc2: 6820 ldr r0, [r4, #0]
11cc4: 4b0f ldr r3, [pc, #60] ; (11d04 <lv_fs_open+0xe0>)
11cc6: 4798 blx r3
file_p->file_d = NULL;
11cc8: 2300 movs r3, #0
11cca: 6023 str r3, [r4, #0]
file_p->drv = NULL;
11ccc: 6063 str r3, [r4, #4]
11cce: e000 b.n 11cd2 <lv_fs_open+0xae>
if(path == NULL) return LV_FS_RES_INV_PARAM;
11cd0: 250b movs r5, #11
}
11cd2: 0028 movs r0, r5
11cd4: b005 add sp, #20
11cd6: bc0c pop {r2, r3}
11cd8: 4691 mov r9, r2
11cda: 469a mov sl, r3
11cdc: bdf0 pop {r4, r5, r6, r7, pc}
11cde: 46c0 nop ; (mov r8, r8)
11ce0: 00011bed .word 0x00011bed
11ce4: 000122dd .word 0x000122dd
11ce8: 000017ad .word 0x000017ad
11cec: 0002a7dc .word 0x0002a7dc
11cf0: 0002a7e8 .word 0x0002a7e8
11cf4: 00012159 .word 0x00012159
11cf8: 00025854 .word 0x00025854
11cfc: 000017b5 .word 0x000017b5
11d00: 00011b23 .word 0x00011b23
11d04: 000123c9 .word 0x000123c9
00011d08 <lv_fs_get_ext>:
{
11d08: b510 push {r4, lr}
11d0a: 0004 movs r4, r0
for(i = strlen(fn); i > 0; i--) {
11d0c: 4b11 ldr r3, [pc, #68] ; (11d54 <lv_fs_get_ext+0x4c>)
11d0e: 4798 blx r3
11d10: 1e03 subs r3, r0, #0
11d12: d017 beq.n 11d44 <lv_fs_get_ext+0x3c>
if(fn[i] == '.') {
11d14: 5c22 ldrb r2, [r4, r0]
11d16: 2a2e cmp r2, #46 ; 0x2e
11d18: d00f beq.n 11d3a <lv_fs_get_ext+0x32>
else if(fn[i] == '/' || fn[i] == '\\') {
11d1a: 2a2f cmp r2, #47 ; 0x2f
11d1c: d014 beq.n 11d48 <lv_fs_get_ext+0x40>
11d1e: 2a5c cmp r2, #92 ; 0x5c
11d20: d014 beq.n 11d4c <lv_fs_get_ext+0x44>
for(i = strlen(fn); i > 0; i--) {
11d22: 3b01 subs r3, #1
11d24: 2b00 cmp r3, #0
11d26: d00b beq.n 11d40 <lv_fs_get_ext+0x38>
if(fn[i] == '.') {
11d28: 5ce2 ldrb r2, [r4, r3]
11d2a: 2a2e cmp r2, #46 ; 0x2e
11d2c: d005 beq.n 11d3a <lv_fs_get_ext+0x32>
else if(fn[i] == '/' || fn[i] == '\\') {
11d2e: 2a2f cmp r2, #47 ; 0x2f
11d30: d00e beq.n 11d50 <lv_fs_get_ext+0x48>
11d32: 2a5c cmp r2, #92 ; 0x5c
11d34: d1f5 bne.n 11d22 <lv_fs_get_ext+0x1a>
return ""; /*No extension if a '\' or '/' found*/
11d36: 4808 ldr r0, [pc, #32] ; (11d58 <lv_fs_get_ext+0x50>)
11d38: e001 b.n 11d3e <lv_fs_get_ext+0x36>
return &fn[i + 1];
11d3a: 3301 adds r3, #1
11d3c: 18e0 adds r0, r4, r3
}
11d3e: bd10 pop {r4, pc}
return ""; /*Empty string if no '.' in the file name. */
11d40: 4805 ldr r0, [pc, #20] ; (11d58 <lv_fs_get_ext+0x50>)
11d42: e7fc b.n 11d3e <lv_fs_get_ext+0x36>
11d44: 4804 ldr r0, [pc, #16] ; (11d58 <lv_fs_get_ext+0x50>)
11d46: e7fa b.n 11d3e <lv_fs_get_ext+0x36>
return ""; /*No extension if a '\' or '/' found*/
11d48: 4803 ldr r0, [pc, #12] ; (11d58 <lv_fs_get_ext+0x50>)
11d4a: e7f8 b.n 11d3e <lv_fs_get_ext+0x36>
11d4c: 4802 ldr r0, [pc, #8] ; (11d58 <lv_fs_get_ext+0x50>)
11d4e: e7f6 b.n 11d3e <lv_fs_get_ext+0x36>
11d50: 4801 ldr r0, [pc, #4] ; (11d58 <lv_fs_get_ext+0x50>)
11d52: e7f4 b.n 11d3e <lv_fs_get_ext+0x36>
11d54: 0001c709 .word 0x0001c709
11d58: 0002b0f0 .word 0x0002b0f0
00011d5c <node_set_next>:
* @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)
{
11d5c: b500 push {lr}
11d5e: b083 sub sp, #12
11d60: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the next node of `NULL`*/
11d62: 2900 cmp r1, #0
11d64: d00d beq.n 11d82 <node_set_next+0x26>
uint32_t node_p_size = sizeof(lv_ll_node_t *);
if(next)
11d66: 2a00 cmp r2, #0
11d68: d00d beq.n 11d86 <node_set_next+0x2a>
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
11d6a: 6800 ldr r0, [r0, #0]
11d6c: 3004 adds r0, #4
11d6e: 1809 adds r1, r1, r0
11d70: ab01 add r3, sp, #4
11d72: 781a ldrb r2, [r3, #0]
11d74: 700a strb r2, [r1, #0]
11d76: 785a ldrb r2, [r3, #1]
11d78: 704a strb r2, [r1, #1]
11d7a: 789a ldrb r2, [r3, #2]
11d7c: 708a strb r2, [r1, #2]
11d7e: 78db ldrb r3, [r3, #3]
11d80: 70cb strb r3, [r1, #3]
else
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
}
11d82: b003 add sp, #12
11d84: bd00 pop {pc}
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
11d86: 6800 ldr r0, [r0, #0]
11d88: 3004 adds r0, #4
11d8a: 1808 adds r0, r1, r0
11d8c: 2104 movs r1, #4
11d8e: 4b01 ldr r3, [pc, #4] ; (11d94 <node_set_next+0x38>)
11d90: 4798 blx r3
11d92: e7f6 b.n 11d82 <node_set_next+0x26>
11d94: 00012975 .word 0x00012975
00011d98 <node_set_prev>:
{
11d98: b500 push {lr}
11d9a: b083 sub sp, #12
11d9c: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the prev node of `NULL`*/
11d9e: 2900 cmp r1, #0
11da0: d00c beq.n 11dbc <node_set_prev+0x24>
if(prev)
11da2: 2a00 cmp r2, #0
11da4: d00c beq.n 11dc0 <node_set_prev+0x28>
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
11da6: 6800 ldr r0, [r0, #0]
11da8: 1809 adds r1, r1, r0
11daa: ab01 add r3, sp, #4
11dac: 781a ldrb r2, [r3, #0]
11dae: 700a strb r2, [r1, #0]
11db0: 785a ldrb r2, [r3, #1]
11db2: 704a strb r2, [r1, #1]
11db4: 789a ldrb r2, [r3, #2]
11db6: 708a strb r2, [r1, #2]
11db8: 78db ldrb r3, [r3, #3]
11dba: 70cb strb r3, [r1, #3]
}
11dbc: b003 add sp, #12
11dbe: bd00 pop {pc}
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
11dc0: 6800 ldr r0, [r0, #0]
11dc2: 1808 adds r0, r1, r0
11dc4: 2104 movs r1, #4
11dc6: 4b01 ldr r3, [pc, #4] ; (11dcc <node_set_prev+0x34>)
11dc8: 4798 blx r3
11dca: e7f7 b.n 11dbc <node_set_prev+0x24>
11dcc: 00012975 .word 0x00012975
00011dd0 <_lv_ll_init>:
ll_p->head = NULL;
11dd0: 2300 movs r3, #0
11dd2: 6043 str r3, [r0, #4]
ll_p->tail = NULL;
11dd4: 6083 str r3, [r0, #8]
if(node_size & 0x3) {
11dd6: 078b lsls r3, r1, #30
11dd8: d002 beq.n 11de0 <_lv_ll_init+0x10>
node_size = node_size & (~0x3);
11dda: 2303 movs r3, #3
11ddc: 4399 bics r1, r3
node_size += 4;
11dde: 3104 adds r1, #4
ll_p->n_size = node_size;
11de0: 6001 str r1, [r0, #0]
}
11de2: 4770 bx lr
00011de4 <_lv_ll_ins_head>:
{
11de4: b570 push {r4, r5, r6, lr}
11de6: 0004 movs r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
11de8: 6800 ldr r0, [r0, #0]
11dea: 3008 adds r0, #8
11dec: 4b0e ldr r3, [pc, #56] ; (11e28 <_lv_ll_ins_head+0x44>)
11dee: 4798 blx r3
11df0: 1e05 subs r5, r0, #0
if(n_new != NULL) {
11df2: d014 beq.n 11e1e <_lv_ll_ins_head+0x3a>
node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/
11df4: 2200 movs r2, #0
11df6: 0001 movs r1, r0
11df8: 0020 movs r0, r4
11dfa: 4b0c ldr r3, [pc, #48] ; (11e2c <_lv_ll_ins_head+0x48>)
11dfc: 4798 blx r3
node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/
11dfe: 6862 ldr r2, [r4, #4]
11e00: 0029 movs r1, r5
11e02: 0020 movs r0, r4
11e04: 4b0a ldr r3, [pc, #40] ; (11e30 <_lv_ll_ins_head+0x4c>)
11e06: 4798 blx r3
if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/
11e08: 6861 ldr r1, [r4, #4]
11e0a: 2900 cmp r1, #0
11e0c: d003 beq.n 11e16 <_lv_ll_ins_head+0x32>
node_set_prev(ll_p, ll_p->head, n_new);
11e0e: 002a movs r2, r5
11e10: 0020 movs r0, r4
11e12: 4b06 ldr r3, [pc, #24] ; (11e2c <_lv_ll_ins_head+0x48>)
11e14: 4798 blx r3
ll_p->head = n_new; /*Set the new head in the dsc.*/
11e16: 6065 str r5, [r4, #4]
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
11e18: 68a3 ldr r3, [r4, #8]
11e1a: 2b00 cmp r3, #0
11e1c: d001 beq.n 11e22 <_lv_ll_ins_head+0x3e>
}
11e1e: 0028 movs r0, r5
11e20: bd70 pop {r4, r5, r6, pc}
ll_p->tail = n_new;
11e22: 60a5 str r5, [r4, #8]
11e24: e7fb b.n 11e1e <_lv_ll_ins_head+0x3a>
11e26: 46c0 nop ; (mov r8, r8)
11e28: 000122dd .word 0x000122dd
11e2c: 00011d99 .word 0x00011d99
11e30: 00011d5d .word 0x00011d5d
00011e34 <_lv_ll_ins_tail>:
{
11e34: b570 push {r4, r5, r6, lr}
11e36: 0004 movs r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
11e38: 6800 ldr r0, [r0, #0]
11e3a: 3008 adds r0, #8
11e3c: 4b0e ldr r3, [pc, #56] ; (11e78 <_lv_ll_ins_tail+0x44>)
11e3e: 4798 blx r3
11e40: 1e05 subs r5, r0, #0
if(n_new != NULL) {
11e42: d014 beq.n 11e6e <_lv_ll_ins_tail+0x3a>
node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/
11e44: 2200 movs r2, #0
11e46: 0001 movs r1, r0
11e48: 0020 movs r0, r4
11e4a: 4b0c ldr r3, [pc, #48] ; (11e7c <_lv_ll_ins_tail+0x48>)
11e4c: 4798 blx r3
node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/
11e4e: 68a2 ldr r2, [r4, #8]
11e50: 0029 movs r1, r5
11e52: 0020 movs r0, r4
11e54: 4b0a ldr r3, [pc, #40] ; (11e80 <_lv_ll_ins_tail+0x4c>)
11e56: 4798 blx r3
if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/
11e58: 68a1 ldr r1, [r4, #8]
11e5a: 2900 cmp r1, #0
11e5c: d003 beq.n 11e66 <_lv_ll_ins_tail+0x32>
node_set_next(ll_p, ll_p->tail, n_new);
11e5e: 002a movs r2, r5
11e60: 0020 movs r0, r4
11e62: 4b06 ldr r3, [pc, #24] ; (11e7c <_lv_ll_ins_tail+0x48>)
11e64: 4798 blx r3
ll_p->tail = n_new; /*Set the new tail in the dsc.*/
11e66: 60a5 str r5, [r4, #8]
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
11e68: 6863 ldr r3, [r4, #4]
11e6a: 2b00 cmp r3, #0
11e6c: d001 beq.n 11e72 <_lv_ll_ins_tail+0x3e>
}
11e6e: 0028 movs r0, r5
11e70: bd70 pop {r4, r5, r6, pc}
ll_p->head = n_new;
11e72: 6065 str r5, [r4, #4]
11e74: e7fb b.n 11e6e <_lv_ll_ins_tail+0x3a>
11e76: 46c0 nop ; (mov r8, r8)
11e78: 000122dd .word 0x000122dd
11e7c: 00011d5d .word 0x00011d5d
11e80: 00011d99 .word 0x00011d99
00011e84 <_lv_ll_get_head>:
if(ll_p != NULL) {
11e84: 2800 cmp r0, #0
11e86: d001 beq.n 11e8c <_lv_ll_get_head+0x8>
head = ll_p->head;
11e88: 6840 ldr r0, [r0, #4]
}
11e8a: 4770 bx lr
void * head = NULL;
11e8c: 2000 movs r0, #0
return head;
11e8e: e7fc b.n 11e8a <_lv_ll_get_head+0x6>
00011e90 <_lv_ll_get_tail>:
if(ll_p != NULL) {
11e90: 2800 cmp r0, #0
11e92: d001 beq.n 11e98 <_lv_ll_get_tail+0x8>
tail = ll_p->tail;
11e94: 6880 ldr r0, [r0, #8]
}
11e96: 4770 bx lr
void * tail = NULL;
11e98: 2000 movs r0, #0
return tail;
11e9a: e7fc b.n 11e96 <_lv_ll_get_tail+0x6>
00011e9c <_lv_ll_get_next>:
{
11e9c: b082 sub sp, #8
void * next = NULL;
11e9e: 2300 movs r3, #0
11ea0: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
11ea2: 2800 cmp r0, #0
11ea4: d00b beq.n 11ebe <_lv_ll_get_next+0x22>
_lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *));
11ea6: 6803 ldr r3, [r0, #0]
11ea8: 3304 adds r3, #4
11eaa: 18c9 adds r1, r1, r3
11eac: ab01 add r3, sp, #4
11eae: 780a ldrb r2, [r1, #0]
11eb0: 701a strb r2, [r3, #0]
11eb2: 784a ldrb r2, [r1, #1]
11eb4: 705a strb r2, [r3, #1]
11eb6: 788a ldrb r2, [r1, #2]
11eb8: 709a strb r2, [r3, #2]
11eba: 78ca ldrb r2, [r1, #3]
11ebc: 70da strb r2, [r3, #3]
}
11ebe: 9801 ldr r0, [sp, #4]
11ec0: b002 add sp, #8
11ec2: 4770 bx lr
00011ec4 <_lv_ll_get_prev>:
{
11ec4: b082 sub sp, #8
void * prev = NULL;
11ec6: 2300 movs r3, #0
11ec8: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
11eca: 2800 cmp r0, #0
11ecc: d00a beq.n 11ee4 <_lv_ll_get_prev+0x20>
_lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *));
11ece: 6803 ldr r3, [r0, #0]
11ed0: 18c9 adds r1, r1, r3
11ed2: ab01 add r3, sp, #4
11ed4: 780a ldrb r2, [r1, #0]
11ed6: 701a strb r2, [r3, #0]
11ed8: 784a ldrb r2, [r1, #1]
11eda: 705a strb r2, [r3, #1]
11edc: 788a ldrb r2, [r1, #2]
11ede: 709a strb r2, [r3, #2]
11ee0: 78ca ldrb r2, [r1, #3]
11ee2: 70da strb r2, [r3, #3]
}
11ee4: 9801 ldr r0, [sp, #4]
11ee6: b002 add sp, #8
11ee8: 4770 bx lr
...
00011eec <_lv_ll_ins_prev>:
{
11eec: b5f0 push {r4, r5, r6, r7, lr}
11eee: 46c6 mov lr, r8
11ef0: b500 push {lr}
11ef2: 0004 movs r4, r0
11ef4: 000e movs r6, r1
if(NULL == ll_p || NULL == n_act) return NULL;
11ef6: 2800 cmp r0, #0
11ef8: d029 beq.n 11f4e <_lv_ll_ins_prev+0x62>
11efa: 2900 cmp r1, #0
11efc: d029 beq.n 11f52 <_lv_ll_ins_prev+0x66>
if(_lv_ll_get_head(ll_p) == n_act) {
11efe: 6843 ldr r3, [r0, #4]
11f00: 4299 cmp r1, r3
11f02: d021 beq.n 11f48 <_lv_ll_ins_prev+0x5c>
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
11f04: 6800 ldr r0, [r0, #0]
11f06: 3008 adds r0, #8
11f08: 4b13 ldr r3, [pc, #76] ; (11f58 <_lv_ll_ins_prev+0x6c>)
11f0a: 4798 blx r3
11f0c: 1e05 subs r5, r0, #0
if(n_new == NULL) return NULL;
11f0e: d018 beq.n 11f42 <_lv_ll_ins_prev+0x56>
n_prev = _lv_ll_get_prev(ll_p, n_act);
11f10: 0031 movs r1, r6
11f12: 0020 movs r0, r4
11f14: 4b11 ldr r3, [pc, #68] ; (11f5c <_lv_ll_ins_prev+0x70>)
11f16: 4798 blx r3
11f18: 0007 movs r7, r0
node_set_next(ll_p, n_prev, n_new);
11f1a: 002a movs r2, r5
11f1c: 0001 movs r1, r0
11f1e: 0020 movs r0, r4
11f20: 4b0f ldr r3, [pc, #60] ; (11f60 <_lv_ll_ins_prev+0x74>)
11f22: 4698 mov r8, r3
11f24: 4798 blx r3
node_set_prev(ll_p, n_new, n_prev);
11f26: 003a movs r2, r7
11f28: 0029 movs r1, r5
11f2a: 0020 movs r0, r4
11f2c: 4f0d ldr r7, [pc, #52] ; (11f64 <_lv_ll_ins_prev+0x78>)
11f2e: 47b8 blx r7
node_set_prev(ll_p, n_act, n_new);
11f30: 002a movs r2, r5
11f32: 0031 movs r1, r6
11f34: 0020 movs r0, r4
11f36: 47b8 blx r7
node_set_next(ll_p, n_new, n_act);
11f38: 0032 movs r2, r6
11f3a: 0029 movs r1, r5
11f3c: 0020 movs r0, r4
11f3e: 47c0 blx r8
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
11f40: 0028 movs r0, r5
}
11f42: bc04 pop {r2}
11f44: 4690 mov r8, r2
11f46: bdf0 pop {r4, r5, r6, r7, pc}
n_new = _lv_ll_ins_head(ll_p);
11f48: 4b07 ldr r3, [pc, #28] ; (11f68 <_lv_ll_ins_prev+0x7c>)
11f4a: 4798 blx r3
11f4c: e7f9 b.n 11f42 <_lv_ll_ins_prev+0x56>
if(NULL == ll_p || NULL == n_act) return NULL;
11f4e: 2000 movs r0, #0
11f50: e7f7 b.n 11f42 <_lv_ll_ins_prev+0x56>
11f52: 0008 movs r0, r1
11f54: e7f5 b.n 11f42 <_lv_ll_ins_prev+0x56>
11f56: 46c0 nop ; (mov r8, r8)
11f58: 000122dd .word 0x000122dd
11f5c: 00011ec5 .word 0x00011ec5
11f60: 00011d5d .word 0x00011d5d
11f64: 00011d99 .word 0x00011d99
11f68: 00011de5 .word 0x00011de5
00011f6c <_lv_ll_remove>:
{
11f6c: b570 push {r4, r5, r6, lr}
11f6e: 0004 movs r4, r0
11f70: 000d movs r5, r1
if(ll_p != NULL) {
11f72: 2800 cmp r0, #0
11f74: d02b beq.n 11fce <_lv_ll_remove+0x62>
if(_lv_ll_get_head(ll_p) == node_p) {
11f76: 6843 ldr r3, [r0, #4]
11f78: 4299 cmp r1, r3
11f7a: d02a beq.n 11fd2 <_lv_ll_remove+0x66>
else if(_lv_ll_get_tail(ll_p) == node_p) {
11f7c: 6883 ldr r3, [r0, #8]
11f7e: 4299 cmp r1, r3
11f80: d017 beq.n 11fb2 <_lv_ll_remove+0x46>
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
11f82: 0029 movs r1, r5
11f84: 0020 movs r0, r4
11f86: 4b19 ldr r3, [pc, #100] ; (11fec <_lv_ll_remove+0x80>)
11f88: 4798 blx r3
11f8a: 0006 movs r6, r0
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
11f8c: 0029 movs r1, r5
11f8e: 0020 movs r0, r4
11f90: 4b17 ldr r3, [pc, #92] ; (11ff0 <_lv_ll_remove+0x84>)
11f92: 4798 blx r3
11f94: 0005 movs r5, r0
node_set_next(ll_p, n_prev, n_next);
11f96: 0002 movs r2, r0
11f98: 0031 movs r1, r6
11f9a: 0020 movs r0, r4
11f9c: 4b15 ldr r3, [pc, #84] ; (11ff4 <_lv_ll_remove+0x88>)
11f9e: 4798 blx r3
node_set_prev(ll_p, n_next, n_prev);
11fa0: 0032 movs r2, r6
11fa2: 0029 movs r1, r5
11fa4: 0020 movs r0, r4
11fa6: 4b14 ldr r3, [pc, #80] ; (11ff8 <_lv_ll_remove+0x8c>)
11fa8: 4798 blx r3
}
11faa: bd70 pop {r4, r5, r6, pc}
ll_p->tail = NULL;
11fac: 2300 movs r3, #0
11fae: 60a3 str r3, [r4, #8]
11fb0: e7fb b.n 11faa <_lv_ll_remove+0x3e>
ll_p->tail = _lv_ll_get_prev(ll_p, node_p);
11fb2: 4b0e ldr r3, [pc, #56] ; (11fec <_lv_ll_remove+0x80>)
11fb4: 4798 blx r3
11fb6: 60a0 str r0, [r4, #8]
if(ll_p->tail == NULL) {
11fb8: 2800 cmp r0, #0
11fba: d005 beq.n 11fc8 <_lv_ll_remove+0x5c>
node_set_next(ll_p, ll_p->tail, NULL);
11fbc: 2200 movs r2, #0
11fbe: 0001 movs r1, r0
11fc0: 0020 movs r0, r4
11fc2: 4b0c ldr r3, [pc, #48] ; (11ff4 <_lv_ll_remove+0x88>)
11fc4: 4798 blx r3
11fc6: e7f0 b.n 11faa <_lv_ll_remove+0x3e>
ll_p->head = NULL;
11fc8: 2300 movs r3, #0
11fca: 6063 str r3, [r4, #4]
11fcc: e7ed b.n 11faa <_lv_ll_remove+0x3e>
if(_lv_ll_get_head(ll_p) == node_p) {
11fce: 2900 cmp r1, #0
11fd0: d1d7 bne.n 11f82 <_lv_ll_remove+0x16>
ll_p->head = _lv_ll_get_next(ll_p, node_p);
11fd2: 0029 movs r1, r5
11fd4: 0020 movs r0, r4
11fd6: 4b06 ldr r3, [pc, #24] ; (11ff0 <_lv_ll_remove+0x84>)
11fd8: 4798 blx r3
11fda: 6060 str r0, [r4, #4]
if(ll_p->head == NULL) {
11fdc: 2800 cmp r0, #0
11fde: d0e5 beq.n 11fac <_lv_ll_remove+0x40>
node_set_prev(ll_p, ll_p->head, NULL);
11fe0: 2200 movs r2, #0
11fe2: 0001 movs r1, r0
11fe4: 0020 movs r0, r4
11fe6: 4b04 ldr r3, [pc, #16] ; (11ff8 <_lv_ll_remove+0x8c>)
11fe8: 4798 blx r3
11fea: e7de b.n 11faa <_lv_ll_remove+0x3e>
11fec: 00011ec5 .word 0x00011ec5
11ff0: 00011e9d .word 0x00011e9d
11ff4: 00011d5d .word 0x00011d5d
11ff8: 00011d99 .word 0x00011d99
00011ffc <_lv_ll_chg_list>:
{
11ffc: b570 push {r4, r5, r6, lr}
11ffe: 000c movs r4, r1
12000: 0015 movs r5, r2
12002: 001e movs r6, r3
_lv_ll_remove(ll_ori_p, node);
12004: 0011 movs r1, r2
12006: 4b19 ldr r3, [pc, #100] ; (1206c <_lv_ll_chg_list+0x70>)
12008: 4798 blx r3
if(head) {
1200a: 2e00 cmp r6, #0
1200c: d017 beq.n 1203e <_lv_ll_chg_list+0x42>
node_set_prev(ll_new_p, node, NULL);
1200e: 2200 movs r2, #0
12010: 0029 movs r1, r5
12012: 0020 movs r0, r4
12014: 4b16 ldr r3, [pc, #88] ; (12070 <_lv_ll_chg_list+0x74>)
12016: 4798 blx r3
node_set_next(ll_new_p, node, ll_new_p->head);
12018: 6862 ldr r2, [r4, #4]
1201a: 0029 movs r1, r5
1201c: 0020 movs r0, r4
1201e: 4b15 ldr r3, [pc, #84] ; (12074 <_lv_ll_chg_list+0x78>)
12020: 4798 blx r3
if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/
12022: 6861 ldr r1, [r4, #4]
12024: 2900 cmp r1, #0
12026: d003 beq.n 12030 <_lv_ll_chg_list+0x34>
node_set_prev(ll_new_p, ll_new_p->head, node);
12028: 002a movs r2, r5
1202a: 0020 movs r0, r4
1202c: 4b10 ldr r3, [pc, #64] ; (12070 <_lv_ll_chg_list+0x74>)
1202e: 4798 blx r3
ll_new_p->head = node; /*Set the new head in the dsc.*/
12030: 6065 str r5, [r4, #4]
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
12032: 68a3 ldr r3, [r4, #8]
12034: 2b00 cmp r3, #0
12036: d000 beq.n 1203a <_lv_ll_chg_list+0x3e>
}
12038: bd70 pop {r4, r5, r6, pc}
ll_new_p->tail = node;
1203a: 60a5 str r5, [r4, #8]
1203c: e7fc b.n 12038 <_lv_ll_chg_list+0x3c>
node_set_prev(ll_new_p, node, ll_new_p->tail);
1203e: 68a2 ldr r2, [r4, #8]
12040: 0029 movs r1, r5
12042: 0020 movs r0, r4
12044: 4b0a ldr r3, [pc, #40] ; (12070 <_lv_ll_chg_list+0x74>)
12046: 4798 blx r3
node_set_next(ll_new_p, node, NULL);
12048: 2200 movs r2, #0
1204a: 0029 movs r1, r5
1204c: 0020 movs r0, r4
1204e: 4b09 ldr r3, [pc, #36] ; (12074 <_lv_ll_chg_list+0x78>)
12050: 4798 blx r3
if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/
12052: 68a1 ldr r1, [r4, #8]
12054: 2900 cmp r1, #0
12056: d003 beq.n 12060 <_lv_ll_chg_list+0x64>
node_set_next(ll_new_p, ll_new_p->tail, node);
12058: 002a movs r2, r5
1205a: 0020 movs r0, r4
1205c: 4b05 ldr r3, [pc, #20] ; (12074 <_lv_ll_chg_list+0x78>)
1205e: 4798 blx r3
ll_new_p->tail = node; /*Set the new tail in the dsc.*/
12060: 60a5 str r5, [r4, #8]
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
12062: 6863 ldr r3, [r4, #4]
12064: 2b00 cmp r3, #0
12066: d1e7 bne.n 12038 <_lv_ll_chg_list+0x3c>
ll_new_p->head = node;
12068: 6065 str r5, [r4, #4]
}
1206a: e7e5 b.n 12038 <_lv_ll_chg_list+0x3c>
1206c: 00011f6d .word 0x00011f6d
12070: 00011d99 .word 0x00011d99
12074: 00011d5d .word 0x00011d5d
00012078 <_lv_ll_move_before>:
{
12078: b5f8 push {r3, r4, r5, r6, r7, lr}
1207a: 46ce mov lr, r9
1207c: 4647 mov r7, r8
1207e: b580 push {r7, lr}
12080: 0005 movs r5, r0
12082: 000c movs r4, r1
12084: 0016 movs r6, r2
if(n_act == n_after) return; /*Can't move before itself*/
12086: 4291 cmp r1, r2
12088: d021 beq.n 120ce <_lv_ll_move_before+0x56>
if(n_after != NULL)
1208a: 2a00 cmp r2, #0
1208c: d023 beq.n 120d6 <_lv_ll_move_before+0x5e>
n_before = _lv_ll_get_prev(ll_p, n_after);
1208e: 0011 movs r1, r2
12090: 4b22 ldr r3, [pc, #136] ; (1211c <_lv_ll_move_before+0xa4>)
12092: 4798 blx r3
12094: 0007 movs r7, r0
if(n_act == n_before) return; /*Already before `n_after`*/
12096: 4284 cmp r4, r0
12098: d019 beq.n 120ce <_lv_ll_move_before+0x56>
_lv_ll_remove(ll_p, n_act);
1209a: 0021 movs r1, r4
1209c: 0028 movs r0, r5
1209e: 4b20 ldr r3, [pc, #128] ; (12120 <_lv_ll_move_before+0xa8>)
120a0: 4798 blx r3
node_set_next(ll_p, n_before, n_act);
120a2: 0022 movs r2, r4
120a4: 0039 movs r1, r7
120a6: 0028 movs r0, r5
120a8: 4b1e ldr r3, [pc, #120] ; (12124 <_lv_ll_move_before+0xac>)
120aa: 4698 mov r8, r3
120ac: 4798 blx r3
node_set_prev(ll_p, n_act, n_before);
120ae: 003a movs r2, r7
120b0: 0021 movs r1, r4
120b2: 0028 movs r0, r5
120b4: 4b1c ldr r3, [pc, #112] ; (12128 <_lv_ll_move_before+0xb0>)
120b6: 4699 mov r9, r3
120b8: 4798 blx r3
node_set_prev(ll_p, n_after, n_act);
120ba: 0022 movs r2, r4
120bc: 0031 movs r1, r6
120be: 0028 movs r0, r5
120c0: 47c8 blx r9
node_set_next(ll_p, n_act, n_after);
120c2: 0032 movs r2, r6
120c4: 0021 movs r1, r4
120c6: 0028 movs r0, r5
120c8: 47c0 blx r8
if(n_before == NULL) ll_p->head = n_act;
120ca: 2f00 cmp r7, #0
120cc: d021 beq.n 12112 <_lv_ll_move_before+0x9a>
}
120ce: bc0c pop {r2, r3}
120d0: 4690 mov r8, r2
120d2: 4699 mov r9, r3
120d4: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(ll_p != NULL) {
120d6: 2800 cmp r0, #0
120d8: d01d beq.n 12116 <_lv_ll_move_before+0x9e>
tail = ll_p->tail;
120da: 6887 ldr r7, [r0, #8]
if(n_act == n_before) return; /*Already before `n_after`*/
120dc: 42bc cmp r4, r7
120de: d0f6 beq.n 120ce <_lv_ll_move_before+0x56>
_lv_ll_remove(ll_p, n_act);
120e0: 0021 movs r1, r4
120e2: 0028 movs r0, r5
120e4: 4b0e ldr r3, [pc, #56] ; (12120 <_lv_ll_move_before+0xa8>)
120e6: 4798 blx r3
node_set_next(ll_p, n_before, n_act);
120e8: 0022 movs r2, r4
120ea: 0039 movs r1, r7
120ec: 0028 movs r0, r5
120ee: 4e0d ldr r6, [pc, #52] ; (12124 <_lv_ll_move_before+0xac>)
120f0: 47b0 blx r6
node_set_prev(ll_p, n_act, n_before);
120f2: 003a movs r2, r7
120f4: 0021 movs r1, r4
120f6: 0028 movs r0, r5
120f8: 4b0b ldr r3, [pc, #44] ; (12128 <_lv_ll_move_before+0xb0>)
120fa: 4698 mov r8, r3
120fc: 4798 blx r3
node_set_prev(ll_p, n_after, n_act);
120fe: 0022 movs r2, r4
12100: 2100 movs r1, #0
12102: 0028 movs r0, r5
12104: 47c0 blx r8
node_set_next(ll_p, n_act, n_after);
12106: 2200 movs r2, #0
12108: 0021 movs r1, r4
1210a: 0028 movs r0, r5
1210c: 47b0 blx r6
if(n_after == NULL) ll_p->tail = n_act;
1210e: 60ac str r4, [r5, #8]
12110: e7db b.n 120ca <_lv_ll_move_before+0x52>
if(n_before == NULL) ll_p->head = n_act;
12112: 606c str r4, [r5, #4]
12114: e7db b.n 120ce <_lv_ll_move_before+0x56>
void * tail = NULL;
12116: 0017 movs r7, r2
12118: e7e0 b.n 120dc <_lv_ll_move_before+0x64>
1211a: 46c0 nop ; (mov r8, r8)
1211c: 00011ec5 .word 0x00011ec5
12120: 00011f6d .word 0x00011f6d
12124: 00011d5d .word 0x00011d5d
12128: 00011d99 .word 0x00011d99
0001212c <_lv_ll_is_empty>:
if(ll_p == NULL) return true;
1212c: 2800 cmp r0, #0
1212e: d00a beq.n 12146 <_lv_ll_is_empty+0x1a>
return false;
12130: 2300 movs r3, #0
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
12132: 6842 ldr r2, [r0, #4]
12134: 2a00 cmp r2, #0
12136: d001 beq.n 1213c <_lv_ll_is_empty+0x10>
}
12138: 0018 movs r0, r3
1213a: 4770 bx lr
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
1213c: 6882 ldr r2, [r0, #8]
1213e: 4253 negs r3, r2
12140: 4153 adcs r3, r2
12142: b2db uxtb r3, r3
12144: e7f8 b.n 12138 <_lv_ll_is_empty+0xc>
if(ll_p == NULL) return true;
12146: 2301 movs r3, #1
12148: e7f6 b.n 12138 <_lv_ll_is_empty+0xc>
...
0001214c <lv_log_register_print_cb>:
* and send the formatted log message to a consol or serial port.
* @param print_cb a function pointer to print a log
*/
void lv_log_register_print_cb(lv_log_print_g_cb_t print_cb)
{
custom_print_cb = print_cb;
1214c: 4b01 ldr r3, [pc, #4] ; (12154 <lv_log_register_print_cb+0x8>)
1214e: 6018 str r0, [r3, #0]
}
12150: 4770 bx lr
12152: 46c0 nop ; (mov r8, r8)
12154: 20002bf8 .word 0x20002bf8
00012158 <_lv_log_add>:
* @param func name of the function when the log added
* @param format printf-like format string
* @param ... parameters for `format`
*/
void _lv_log_add(lv_log_level_t level, const char * file, int line, const char * func, const char * format, ...)
{
12158: b5f0 push {r4, r5, r6, r7, lr}
1215a: b0c7 sub sp, #284 ; 0x11c
1215c: 0007 movs r7, r0
1215e: 9103 str r1, [sp, #12]
12160: 0015 movs r5, r2
12162: 001e movs r6, r3
if(level >= _LV_LOG_LEVEL_NUM) return; /*Invalid level*/
if(level >= LV_LOG_LEVEL) {
12164: 1e43 subs r3, r0, #1
12166: b2db uxtb r3, r3
12168: 2b04 cmp r3, #4
1216a: d812 bhi.n 12192 <_lv_log_add+0x3a>
va_list args;
va_start(args, format);
1216c: ab4d add r3, sp, #308 ; 0x134
1216e: 9305 str r3, [sp, #20]
char buf[256];
lv_vsnprintf(buf, sizeof(buf), format, args);
12170: 9a4c ldr r2, [sp, #304] ; 0x130
12172: 2180 movs r1, #128 ; 0x80
12174: 0049 lsls r1, r1, #1
12176: a806 add r0, sp, #24
12178: 4c07 ldr r4, [pc, #28] ; (12198 <_lv_log_add+0x40>)
1217a: 47a0 blx r4
}
static const char * lvl_prefix[] = {"Trace", "Info", "Warn", "Error", "User"};
printf("%s: %s \t(%s #%d %s())\n", lvl_prefix[level], buf, &file[p], line, func);
#else
if(custom_print_cb) custom_print_cb(level, file, line, func, buf);
1217c: 4b07 ldr r3, [pc, #28] ; (1219c <_lv_log_add+0x44>)
1217e: 681c ldr r4, [r3, #0]
12180: 2c00 cmp r4, #0
12182: d006 beq.n 12192 <_lv_log_add+0x3a>
12184: ab06 add r3, sp, #24
12186: 9300 str r3, [sp, #0]
12188: 0033 movs r3, r6
1218a: 002a movs r2, r5
1218c: 9903 ldr r1, [sp, #12]
1218e: 0038 movs r0, r7
12190: 47a0 blx r4
#endif
}
}
12192: b047 add sp, #284 ; 0x11c
12194: bdf0 pop {r4, r5, r6, r7, pc}
12196: 46c0 nop ; (mov r8, r8)
12198: 00013485 .word 0x00013485
1219c: 20002bf8 .word 0x20002bf8
000121a0 <_lv_trigo_sin>:
* 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)
{
121a0: b510 push {r4, lr}
int16_t ret = 0;
angle = angle % 360;
121a2: 21b4 movs r1, #180 ; 0xb4
121a4: 0049 lsls r1, r1, #1
121a6: 4b19 ldr r3, [pc, #100] ; (1220c <_lv_trigo_sin+0x6c>)
121a8: 4798 blx r3
121aa: b209 sxth r1, r1
if(angle < 0) angle = 360 + angle;
121ac: 2900 cmp r1, #0
121ae: db16 blt.n 121de <_lv_trigo_sin+0x3e>
if(angle < 90) {
121b0: 2959 cmp r1, #89 ; 0x59
121b2: dd18 ble.n 121e6 <_lv_trigo_sin+0x46>
ret = sin0_90_table[angle];
}
else if(angle >= 90 && angle < 180) {
121b4: b289 uxth r1, r1
121b6: 000b movs r3, r1
121b8: 3b5a subs r3, #90 ; 0x5a
121ba: b29b uxth r3, r3
121bc: 2b59 cmp r3, #89 ; 0x59
121be: d916 bls.n 121ee <_lv_trigo_sin+0x4e>
angle = 180 - angle;
ret = sin0_90_table[angle];
}
else if(angle >= 180 && angle < 270) {
121c0: 000b movs r3, r1
121c2: 3bb4 subs r3, #180 ; 0xb4
121c4: b29b uxth r3, r3
121c6: 2b59 cmp r3, #89 ; 0x59
121c8: d918 bls.n 121fc <_lv_trigo_sin+0x5c>
angle = angle - 180;
ret = -sin0_90_table[angle];
}
else { /*angle >=270*/
angle = 360 - angle;
121ca: 23b4 movs r3, #180 ; 0xb4
121cc: 005b lsls r3, r3, #1
121ce: 1a59 subs r1, r3, r1
ret = -sin0_90_table[angle];
121d0: b209 sxth r1, r1
121d2: 0049 lsls r1, r1, #1
121d4: 4b0e ldr r3, [pc, #56] ; (12210 <_lv_trigo_sin+0x70>)
121d6: 5ac8 ldrh r0, [r1, r3]
121d8: 4240 negs r0, r0
121da: b200 sxth r0, r0
121dc: e006 b.n 121ec <_lv_trigo_sin+0x4c>
if(angle < 0) angle = 360 + angle;
121de: 3169 adds r1, #105 ; 0x69
121e0: 31ff adds r1, #255 ; 0xff
121e2: b209 sxth r1, r1
121e4: e7e4 b.n 121b0 <_lv_trigo_sin+0x10>
ret = sin0_90_table[angle];
121e6: 0049 lsls r1, r1, #1
121e8: 4b09 ldr r3, [pc, #36] ; (12210 <_lv_trigo_sin+0x70>)
121ea: 5ec8 ldrsh r0, [r1, r3]
}
return ret;
}
121ec: bd10 pop {r4, pc}
angle = 180 - angle;
121ee: 23b4 movs r3, #180 ; 0xb4
121f0: 1a59 subs r1, r3, r1
ret = sin0_90_table[angle];
121f2: b209 sxth r1, r1
121f4: 0049 lsls r1, r1, #1
121f6: 4b06 ldr r3, [pc, #24] ; (12210 <_lv_trigo_sin+0x70>)
121f8: 5ec8 ldrsh r0, [r1, r3]
121fa: e7f7 b.n 121ec <_lv_trigo_sin+0x4c>
ret = -sin0_90_table[angle];
121fc: b21b sxth r3, r3
121fe: 005b lsls r3, r3, #1
12200: 4a03 ldr r2, [pc, #12] ; (12210 <_lv_trigo_sin+0x70>)
12202: 5a98 ldrh r0, [r3, r2]
12204: 4240 negs r0, r0
12206: b200 sxth r0, r0
12208: e7f0 b.n 121ec <_lv_trigo_sin+0x4c>
1220a: 46c0 nop ; (mov r8, r8)
1220c: 0001c385 .word 0x0001c385
12210: 0002a818 .word 0x0002a818
00012214 <_lv_sqrt>:
* If root < 16: mask = 0x80
* If root < 256: mask = 0x800
* Else: mask = 0x8000
*/
LV_ATTRIBUTE_FAST_MEM void _lv_sqrt(uint32_t x, lv_sqrt_res_t * q, uint32_t mask)
{
12214: b530 push {r4, r5, lr}
x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/
12216: 0200 lsls r0, r0, #8
uint32_t root = 0;
12218: 2500 movs r5, #0
1221a: e001 b.n 12220 <_lv_sqrt+0xc>
uint32_t trial;
// http://ww1.microchip.com/...en/AppNotes/91040a.pdf
do {
trial = root + mask;
if((uint32_t)trial * trial <= x) root = trial;
mask = mask >> 1;
1221c: 0852 lsrs r2, r2, #1
} while(mask);
1221e: d006 beq.n 1222e <_lv_sqrt+0x1a>
trial = root + mask;
12220: 1953 adds r3, r2, r5
if((uint32_t)trial * trial <= x) root = trial;
12222: 001c movs r4, r3
12224: 435c muls r4, r3
12226: 42a0 cmp r0, r4
12228: d3f8 bcc.n 1221c <_lv_sqrt+0x8>
1222a: 001d movs r5, r3
1222c: e7f6 b.n 1221c <_lv_sqrt+0x8>
q->i = (uint32_t) root >> 4;
1222e: 092b lsrs r3, r5, #4
12230: 800b strh r3, [r1, #0]
q->f = (uint32_t)(root & 0xf) << 4;
12232: 012d lsls r5, r5, #4
12234: 23ff movs r3, #255 ; 0xff
12236: 401d ands r5, r3
12238: 804d strh r5, [r1, #2]
}
1223a: bd30 pop {r4, r5, pc}
0001223c <ent_get_next>:
*/
static lv_mem_ent_t * ent_get_next(lv_mem_ent_t * act_e)
{
lv_mem_ent_t * next_e = NULL;
if(act_e == NULL) { /*NULL means: get the first entry*/
1223c: 2800 cmp r0, #0
1223e: d00e beq.n 1225e <ent_get_next+0x22>
next_e = (lv_mem_ent_t *)work_mem;
}
else { /*Get the next entry */
uint8_t * data = &act_e->first_data;
12240: 1d03 adds r3, r0, #4
next_e = (lv_mem_ent_t *)&data[act_e->header.s.d_size];
12242: 6800 ldr r0, [r0, #0]
12244: 0840 lsrs r0, r0, #1
12246: 1818 adds r0, r3, r0
if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL;
12248: 1d02 adds r2, r0, #4
1224a: 4b06 ldr r3, [pc, #24] ; (12264 <ent_get_next+0x28>)
1224c: 681b ldr r3, [r3, #0]
1224e: 2180 movs r1, #128 ; 0x80
12250: 0189 lsls r1, r1, #6
12252: 468c mov ip, r1
12254: 4463 add r3, ip
12256: 429a cmp r2, r3
12258: 419b sbcs r3, r3
1225a: 4018 ands r0, r3
}
return next_e;
}
1225c: 4770 bx lr
next_e = (lv_mem_ent_t *)work_mem;
1225e: 4b01 ldr r3, [pc, #4] ; (12264 <ent_get_next+0x28>)
12260: 6818 ldr r0, [r3, #0]
12262: e7fb b.n 1225c <ent_get_next+0x20>
12264: 20002c20 .word 0x20002c20
00012268 <ent_trunc>:
* Truncate the data of entry to the given size
* @param e Pointer to an entry
* @param size new size in bytes
*/
static void ent_trunc(lv_mem_ent_t * e, size_t size)
{
12268: b530 push {r4, r5, lr}
size = size & (~0x7);
size += 8;
}
#else
/*Round the size up to 4*/
if(size & 0x3) {
1226a: 078b lsls r3, r1, #30
1226c: d002 beq.n 12274 <ent_trunc+0xc>
size = size & (~0x3);
1226e: 2303 movs r3, #3
12270: 4399 bics r1, r3
size += 4;
12272: 3104 adds r1, #4
}
#endif
/*Don't let empty space only for a header without data*/
if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) {
12274: 6803 ldr r3, [r0, #0]
12276: 085b lsrs r3, r3, #1
12278: 1d0a adds r2, r1, #4
1227a: 4293 cmp r3, r2
1227c: d017 beq.n 122ae <ent_trunc+0x46>
size = e->header.s.d_size;
}
/* Create the new entry after the current if there is space for it */
if(e->header.s.d_size != size) {
1227e: 4299 cmp r1, r3
12280: d00e beq.n 122a0 <ent_trunc+0x38>
uint8_t * e_data = &e->first_data;
12282: 1d02 adds r2, r0, #4
lv_mem_ent_t * after_new_e = (lv_mem_ent_t *)&e_data[size];
12284: 1852 adds r2, r2, r1
after_new_e->header.s.used = 0;
12286: 7813 ldrb r3, [r2, #0]
12288: 2401 movs r4, #1
1228a: 43a3 bics r3, r4
1228c: 7013 strb r3, [r2, #0]
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
1228e: 6803 ldr r3, [r0, #0]
12290: 085b lsrs r3, r3, #1
12292: 3b04 subs r3, #4
12294: 1a5b subs r3, r3, r1
12296: 005b lsls r3, r3, #1
12298: 6815 ldr r5, [r2, #0]
1229a: 402c ands r4, r5
1229c: 4323 orrs r3, r4
1229e: 6013 str r3, [r2, #0]
}
/* Set the new size for the original entry */
e->header.s.d_size = (uint32_t)size;
122a0: 0049 lsls r1, r1, #1
122a2: 2301 movs r3, #1
122a4: 6802 ldr r2, [r0, #0]
122a6: 4013 ands r3, r2
122a8: 4319 orrs r1, r3
122aa: 6001 str r1, [r0, #0]
}
122ac: bd30 pop {r4, r5, pc}
size = e->header.s.d_size;
122ae: 0011 movs r1, r2
122b0: e7f6 b.n 122a0 <ent_trunc+0x38>
...
000122b4 <_lv_mem_init>:
work_mem = (uint8_t *)work_mem_int;
122b4: 4b06 ldr r3, [pc, #24] ; (122d0 <_lv_mem_init+0x1c>)
122b6: 4a07 ldr r2, [pc, #28] ; (122d4 <_lv_mem_init+0x20>)
122b8: 6013 str r3, [r2, #0]
full->header.s.used = 0;
122ba: 7819 ldrb r1, [r3, #0]
122bc: 2201 movs r2, #1
122be: 4391 bics r1, r2
122c0: 7019 strb r1, [r3, #0]
full->header.s.d_size = LV_MEM_SIZE - sizeof(lv_mem_header_t);
122c2: 6819 ldr r1, [r3, #0]
122c4: 400a ands r2, r1
122c6: 4904 ldr r1, [pc, #16] ; (122d8 <_lv_mem_init+0x24>)
122c8: 430a orrs r2, r1
122ca: 601a str r2, [r3, #0]
}
122cc: 4770 bx lr
122ce: 46c0 nop ; (mov r8, r8)
122d0: 20002c24 .word 0x20002c24
122d4: 20002c20 .word 0x20002c20
122d8: 00003ff8 .word 0x00003ff8
000122dc <lv_mem_alloc>:
{
122dc: b5f0 push {r4, r5, r6, r7, lr}
122de: 46c6 mov lr, r8
122e0: b500 push {lr}
122e2: b082 sub sp, #8
122e4: 1e05 subs r5, r0, #0
if(size == 0) {
122e6: d02a beq.n 1233e <lv_mem_alloc+0x62>
if(size & 0x3) {
122e8: 0783 lsls r3, r0, #30
122ea: d002 beq.n 122f2 <lv_mem_alloc+0x16>
size = size & (~0x3);
122ec: 2303 movs r3, #3
122ee: 439d bics r5, r3
size += 4;
122f0: 3504 adds r5, #4
lv_mem_ent_t * e = NULL;
122f2: 2400 movs r4, #0
e = ent_get_next(e);
122f4: 4e14 ldr r6, [pc, #80] ; (12348 <lv_mem_alloc+0x6c>)
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
122f6: 2301 movs r3, #1
122f8: 4698 mov r8, r3
ent_trunc(e, size);
122fa: 4f14 ldr r7, [pc, #80] ; (1234c <lv_mem_alloc+0x70>)
122fc: e008 b.n 12310 <lv_mem_alloc+0x34>
122fe: 0029 movs r1, r5
12300: 47b8 blx r7
e->header.s.used = 1;
12302: 7823 ldrb r3, [r4, #0]
12304: 2201 movs r2, #1
12306: 4313 orrs r3, r2
12308: 7023 strb r3, [r4, #0]
alloc = &e->first_data;
1230a: 1d20 adds r0, r4, #4
} while(e != NULL && alloc == NULL);
1230c: 2800 cmp r0, #0
1230e: d117 bne.n 12340 <lv_mem_alloc+0x64>
e = ent_get_next(e);
12310: 0020 movs r0, r4
12312: 47b0 blx r6
12314: 1e04 subs r4, r0, #0
if(e != NULL) {
12316: d008 beq.n 1232a <lv_mem_alloc+0x4e>
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
12318: 7803 ldrb r3, [r0, #0]
1231a: 4642 mov r2, r8
1231c: 421a tst r2, r3
1231e: d1f7 bne.n 12310 <lv_mem_alloc+0x34>
12320: 6803 ldr r3, [r0, #0]
12322: 085b lsrs r3, r3, #1
12324: 429d cmp r5, r3
12326: d9ea bls.n 122fe <lv_mem_alloc+0x22>
12328: e7f2 b.n 12310 <lv_mem_alloc+0x34>
if(alloc == NULL) LV_LOG_WARN("Couldn't allocate memory");
1232a: 4b09 ldr r3, [pc, #36] ; (12350 <lv_mem_alloc+0x74>)
1232c: 9300 str r3, [sp, #0]
1232e: 4b09 ldr r3, [pc, #36] ; (12354 <lv_mem_alloc+0x78>)
12330: 22d1 movs r2, #209 ; 0xd1
12332: 4909 ldr r1, [pc, #36] ; (12358 <lv_mem_alloc+0x7c>)
12334: 2002 movs r0, #2
12336: 4c09 ldr r4, [pc, #36] ; (1235c <lv_mem_alloc+0x80>)
12338: 47a0 blx r4
return alloc;
1233a: 2000 movs r0, #0
1233c: e000 b.n 12340 <lv_mem_alloc+0x64>
return &zero_mem;
1233e: 4808 ldr r0, [pc, #32] ; (12360 <lv_mem_alloc+0x84>)
}
12340: b002 add sp, #8
12342: bc04 pop {r2}
12344: 4690 mov r8, r2
12346: bdf0 pop {r4, r5, r6, r7, pc}
12348: 0001223d .word 0x0001223d
1234c: 00012269 .word 0x00012269
12350: 0002aa14 .word 0x0002aa14
12354: 0002a8d0 .word 0x0002a8d0
12358: 0002a9e4 .word 0x0002a9e4
1235c: 00012159 .word 0x00012159
12360: 20004c24 .word 0x20004c24
00012364 <lv_mem_defrag>:
{
12364: b5f0 push {r4, r5, r6, r7, lr}
12366: 46c6 mov lr, r8
12368: b500 push {lr}
e_free = ent_get_next(NULL);
1236a: 2000 movs r0, #0
1236c: 4b15 ldr r3, [pc, #84] ; (123c4 <lv_mem_defrag+0x60>)
1236e: 4798 blx r3
12370: 0004 movs r4, r0
if(e_free->header.s.used != 0) {
12372: 2501 movs r5, #1
e_next = ent_get_next(e_free);
12374: 4f13 ldr r7, [pc, #76] ; (123c4 <lv_mem_defrag+0x60>)
e_next = ent_get_next(e_next);
12376: 003e movs r6, r7
e_free = ent_get_next(e_free);
12378: 46b8 mov r8, r7
1237a: e017 b.n 123ac <lv_mem_defrag+0x48>
e_next = ent_get_next(e_free);
1237c: 0020 movs r0, r4
1237e: 47b8 blx r7
while(e_next != NULL) {
12380: 2800 cmp r0, #0
12382: d01c beq.n 123be <lv_mem_defrag+0x5a>
if(e_next->header.s.used == 0) {
12384: 7803 ldrb r3, [r0, #0]
12386: 421d tst r5, r3
12388: d10f bne.n 123aa <lv_mem_defrag+0x46>
e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header);
1238a: 6822 ldr r2, [r4, #0]
1238c: 0853 lsrs r3, r2, #1
1238e: 3304 adds r3, #4
12390: 6801 ldr r1, [r0, #0]
12392: 0849 lsrs r1, r1, #1
12394: 185b adds r3, r3, r1
12396: 005b lsls r3, r3, #1
12398: 402a ands r2, r5
1239a: 4313 orrs r3, r2
1239c: 6023 str r3, [r4, #0]
e_next = ent_get_next(e_next);
1239e: 47b0 blx r6
while(e_next != NULL) {
123a0: 2800 cmp r0, #0
123a2: d00c beq.n 123be <lv_mem_defrag+0x5a>
if(e_next->header.s.used == 0) {
123a4: 7803 ldrb r3, [r0, #0]
123a6: 421d tst r5, r3
123a8: d0ef beq.n 1238a <lv_mem_defrag+0x26>
{
123aa: 0004 movs r4, r0
while(e_free != NULL) {
123ac: 2c00 cmp r4, #0
123ae: d006 beq.n 123be <lv_mem_defrag+0x5a>
if(e_free->header.s.used != 0) {
123b0: 7823 ldrb r3, [r4, #0]
123b2: 421d tst r5, r3
123b4: d0e2 beq.n 1237c <lv_mem_defrag+0x18>
e_free = ent_get_next(e_free);
123b6: 0020 movs r0, r4
123b8: 47c0 blx r8
123ba: 0004 movs r4, r0
123bc: e7f6 b.n 123ac <lv_mem_defrag+0x48>
}
123be: bc04 pop {r2}
123c0: 4690 mov r8, r2
123c2: bdf0 pop {r4, r5, r6, r7, pc}
123c4: 0001223d .word 0x0001223d
000123c8 <lv_mem_free>:
{
123c8: b570 push {r4, r5, r6, lr}
123ca: 0004 movs r4, r0
if(data == &zero_mem) return;
123cc: 4b19 ldr r3, [pc, #100] ; (12434 <lv_mem_free+0x6c>)
123ce: 4298 cmp r0, r3
123d0: d028 beq.n 12424 <lv_mem_free+0x5c>
if(data == NULL) return;
123d2: 2800 cmp r0, #0
123d4: d026 beq.n 12424 <lv_mem_free+0x5c>
e->header.s.used = 0;
123d6: 1f02 subs r2, r0, #4
123d8: 7813 ldrb r3, [r2, #0]
123da: 2101 movs r1, #1
123dc: 438b bics r3, r1
123de: 7013 strb r3, [r2, #0]
full_defrag_cnt++;
123e0: 4a15 ldr r2, [pc, #84] ; (12438 <lv_mem_free+0x70>)
123e2: 8813 ldrh r3, [r2, #0]
123e4: 3301 adds r3, #1
123e6: b29b uxth r3, r3
123e8: 8013 strh r3, [r2, #0]
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
123ea: 2b0f cmp r3, #15
123ec: d81b bhi.n 12426 <lv_mem_free+0x5e>
lv_mem_ent_t * e = (lv_mem_ent_t *)((uint8_t *)data - sizeof(lv_mem_header_t));
123ee: 3804 subs r0, #4
e_next = ent_get_next(e);
123f0: 4b12 ldr r3, [pc, #72] ; (1243c <lv_mem_free+0x74>)
123f2: 4798 blx r3
while(e_next != NULL) {
123f4: 2800 cmp r0, #0
123f6: d015 beq.n 12424 <lv_mem_free+0x5c>
if(e_next->header.s.used == 0) {
123f8: 7803 ldrb r3, [r0, #0]
123fa: 07db lsls r3, r3, #31
123fc: d412 bmi.n 12424 <lv_mem_free+0x5c>
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
123fe: 3c04 subs r4, #4
12400: 2501 movs r5, #1
e_next = ent_get_next(e_next);
12402: 4e0e ldr r6, [pc, #56] ; (1243c <lv_mem_free+0x74>)
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
12404: 6822 ldr r2, [r4, #0]
12406: 0853 lsrs r3, r2, #1
12408: 3304 adds r3, #4
1240a: 6801 ldr r1, [r0, #0]
1240c: 0849 lsrs r1, r1, #1
1240e: 185b adds r3, r3, r1
12410: 005b lsls r3, r3, #1
12412: 402a ands r2, r5
12414: 4313 orrs r3, r2
12416: 6023 str r3, [r4, #0]
e_next = ent_get_next(e_next);
12418: 47b0 blx r6
while(e_next != NULL) {
1241a: 2800 cmp r0, #0
1241c: d002 beq.n 12424 <lv_mem_free+0x5c>
if(e_next->header.s.used == 0) {
1241e: 7803 ldrb r3, [r0, #0]
12420: 421d tst r5, r3
12422: d0ef beq.n 12404 <lv_mem_free+0x3c>
}
12424: bd70 pop {r4, r5, r6, pc}
full_defrag_cnt = 0;
12426: 2200 movs r2, #0
12428: 4b03 ldr r3, [pc, #12] ; (12438 <lv_mem_free+0x70>)
1242a: 801a strh r2, [r3, #0]
lv_mem_defrag();
1242c: 4b04 ldr r3, [pc, #16] ; (12440 <lv_mem_free+0x78>)
1242e: 4798 blx r3
12430: e7f8 b.n 12424 <lv_mem_free+0x5c>
12432: 46c0 nop ; (mov r8, r8)
12434: 20004c24 .word 0x20004c24
12438: 20002bfc .word 0x20002bfc
1243c: 0001223d .word 0x0001223d
12440: 00012365 .word 0x00012365
00012444 <_lv_mem_get_size>:
if(data == NULL) return 0;
12444: 2800 cmp r0, #0
12446: d006 beq.n 12456 <_lv_mem_get_size+0x12>
if(data == &zero_mem) return 0;
12448: 4b05 ldr r3, [pc, #20] ; (12460 <_lv_mem_get_size+0x1c>)
1244a: 4298 cmp r0, r3
1244c: d005 beq.n 1245a <_lv_mem_get_size+0x16>
return e->header.s.d_size;
1244e: 3804 subs r0, #4
12450: 6800 ldr r0, [r0, #0]
12452: 0840 lsrs r0, r0, #1
}
12454: 4770 bx lr
if(data == NULL) return 0;
12456: 2000 movs r0, #0
12458: e7fc b.n 12454 <_lv_mem_get_size+0x10>
if(data == &zero_mem) return 0;
1245a: 2000 movs r0, #0
1245c: e7fa b.n 12454 <_lv_mem_get_size+0x10>
1245e: 46c0 nop ; (mov r8, r8)
12460: 20004c24 .word 0x20004c24
00012464 <_lv_mem_buf_release>:
{
12464: b510 push {r4, lr}
12466: b082 sub sp, #8
if(mem_buf_small[i].p == p) {
12468: 4b19 ldr r3, [pc, #100] ; (124d0 <_lv_mem_buf_release+0x6c>)
1246a: 681b ldr r3, [r3, #0]
1246c: 4298 cmp r0, r3
1246e: d01c beq.n 124aa <_lv_mem_buf_release+0x46>
12470: 4b17 ldr r3, [pc, #92] ; (124d0 <_lv_mem_buf_release+0x6c>)
12472: 689b ldr r3, [r3, #8]
12474: 2201 movs r2, #1
12476: 4283 cmp r3, r0
12478: d018 beq.n 124ac <_lv_mem_buf_release+0x48>
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
1247a: 4b16 ldr r3, [pc, #88] ; (124d4 <_lv_mem_buf_release+0x70>)
1247c: 681b ldr r3, [r3, #0]
1247e: 4298 cmp r0, r3
12480: d01c beq.n 124bc <_lv_mem_buf_release+0x58>
12482: 2301 movs r3, #1
12484: 4c13 ldr r4, [pc, #76] ; (124d4 <_lv_mem_buf_release+0x70>)
12486: 0019 movs r1, r3
12488: 00da lsls r2, r3, #3
1248a: 58a2 ldr r2, [r4, r2]
1248c: 4290 cmp r0, r2
1248e: d016 beq.n 124be <_lv_mem_buf_release+0x5a>
12490: 3301 adds r3, #1
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
12492: 2b10 cmp r3, #16
12494: d1f7 bne.n 12486 <_lv_mem_buf_release+0x22>
LV_LOG_ERROR("lv_mem_buf_release: p is not a known buffer")
12496: 4b10 ldr r3, [pc, #64] ; (124d8 <_lv_mem_buf_release+0x74>)
12498: 9300 str r3, [sp, #0]
1249a: 4b10 ldr r3, [pc, #64] ; (124dc <_lv_mem_buf_release+0x78>)
1249c: 4a10 ldr r2, [pc, #64] ; (124e0 <_lv_mem_buf_release+0x7c>)
1249e: 4911 ldr r1, [pc, #68] ; (124e4 <_lv_mem_buf_release+0x80>)
124a0: 2003 movs r0, #3
124a2: 4c11 ldr r4, [pc, #68] ; (124e8 <_lv_mem_buf_release+0x84>)
124a4: 47a0 blx r4
}
124a6: b002 add sp, #8
124a8: bd10 pop {r4, pc}
if(mem_buf_small[i].p == p) {
124aa: 2200 movs r2, #0
mem_buf_small[i].used = 0;
124ac: 00d2 lsls r2, r2, #3
124ae: 4b08 ldr r3, [pc, #32] ; (124d0 <_lv_mem_buf_release+0x6c>)
124b0: 189b adds r3, r3, r2
124b2: 799a ldrb r2, [r3, #6]
124b4: 2101 movs r1, #1
124b6: 438a bics r2, r1
124b8: 719a strb r2, [r3, #6]
return;
124ba: e7f4 b.n 124a6 <_lv_mem_buf_release+0x42>
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
124bc: 2100 movs r1, #0
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
124be: 00c9 lsls r1, r1, #3
124c0: 4b04 ldr r3, [pc, #16] ; (124d4 <_lv_mem_buf_release+0x70>)
124c2: 1859 adds r1, r3, r1
124c4: 798b ldrb r3, [r1, #6]
124c6: 2201 movs r2, #1
124c8: 4393 bics r3, r2
124ca: 718b strb r3, [r1, #6]
return;
124cc: e7eb b.n 124a6 <_lv_mem_buf_release+0x42>
124ce: 46c0 nop ; (mov r8, r8)
124d0: 20000044 .word 0x20000044
124d4: 20004d38 .word 0x20004d38
124d8: 0002a9b8 .word 0x0002a9b8
124dc: 0002a900 .word 0x0002a900
124e0: 00000232 .word 0x00000232
124e4: 0002a9e4 .word 0x0002a9e4
124e8: 00012159 .word 0x00012159
000124ec <_lv_mem_buf_free_all>:
{
124ec: b5f0 push {r4, r5, r6, r7, lr}
124ee: 46c6 mov lr, r8
124f0: b500 push {lr}
mem_buf_small[i].used = 0;
124f2: 4b11 ldr r3, [pc, #68] ; (12538 <_lv_mem_buf_free_all+0x4c>)
124f4: 799a ldrb r2, [r3, #6]
124f6: 2101 movs r1, #1
124f8: 438a bics r2, r1
124fa: 719a strb r2, [r3, #6]
124fc: 7b9a ldrb r2, [r3, #14]
124fe: 438a bics r2, r1
12500: 739a strb r2, [r3, #14]
12502: 4c0e ldr r4, [pc, #56] ; (1253c <_lv_mem_buf_free_all+0x50>)
12504: 2500 movs r5, #0
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
12506: 4b0e ldr r3, [pc, #56] ; (12540 <_lv_mem_buf_free_all+0x54>)
12508: 4698 mov r8, r3
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
1250a: 2600 movs r6, #0
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
1250c: 0027 movs r7, r4
1250e: e003 b.n 12518 <_lv_mem_buf_free_all+0x2c>
12510: 3501 adds r5, #1
12512: 3408 adds r4, #8
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
12514: 2d10 cmp r5, #16
12516: d00c beq.n 12532 <_lv_mem_buf_free_all+0x46>
if(LV_GC_ROOT(_lv_mem_buf[i]).p) {
12518: 6820 ldr r0, [r4, #0]
1251a: 2800 cmp r0, #0
1251c: d0f8 beq.n 12510 <_lv_mem_buf_free_all+0x24>
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
1251e: 47c0 blx r8
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
12520: 6026 str r6, [r4, #0]
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
12522: 00eb lsls r3, r5, #3
12524: 18fb adds r3, r7, r3
12526: 799a ldrb r2, [r3, #6]
12528: 2101 movs r1, #1
1252a: 438a bics r2, r1
1252c: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).size = 0;
1252e: 80a6 strh r6, [r4, #4]
12530: e7ee b.n 12510 <_lv_mem_buf_free_all+0x24>
}
12532: bc04 pop {r2}
12534: 4690 mov r8, r2
12536: bdf0 pop {r4, r5, r6, r7, pc}
12538: 20000044 .word 0x20000044
1253c: 20004d38 .word 0x20004d38
12540: 000123c9 .word 0x000123c9
00012544 <_lv_memcpy>:
{
12544: b5f0 push {r4, r5, r6, r7, lr}
12546: 46c6 mov lr, r8
12548: b500 push {lr}
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
1254a: 2303 movs r3, #3
1254c: 001c movs r4, r3
1254e: 4004 ands r4, r0
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
12550: 400b ands r3, r1
if(s_align != d_align) {
12552: 429c cmp r4, r3
12554: d067 beq.n 12626 <_lv_memcpy+0xe2>
while(len > 32) {
12556: 2a20 cmp r2, #32
12558: d963 bls.n 12622 <_lv_memcpy+0xde>
1255a: 2321 movs r3, #33 ; 0x21
1255c: 425b negs r3, r3
1255e: 469c mov ip, r3
12560: 4494 add ip, r2
12562: 4663 mov r3, ip
12564: 095f lsrs r7, r3, #5
12566: 1c7b adds r3, r7, #1
12568: 015b lsls r3, r3, #5
1256a: 18c5 adds r5, r0, r3
1256c: 000c movs r4, r1
1256e: 0003 movs r3, r0
REPEAT8(COPY8);
12570: 7826 ldrb r6, [r4, #0]
12572: 701e strb r6, [r3, #0]
12574: 7866 ldrb r6, [r4, #1]
12576: 705e strb r6, [r3, #1]
12578: 78a6 ldrb r6, [r4, #2]
1257a: 709e strb r6, [r3, #2]
1257c: 78e6 ldrb r6, [r4, #3]
1257e: 70de strb r6, [r3, #3]
12580: 7926 ldrb r6, [r4, #4]
12582: 711e strb r6, [r3, #4]
12584: 7966 ldrb r6, [r4, #5]
12586: 715e strb r6, [r3, #5]
12588: 79a6 ldrb r6, [r4, #6]
1258a: 719e strb r6, [r3, #6]
1258c: 79e6 ldrb r6, [r4, #7]
1258e: 71de strb r6, [r3, #7]
REPEAT8(COPY8);
12590: 7a26 ldrb r6, [r4, #8]
12592: 721e strb r6, [r3, #8]
12594: 7a66 ldrb r6, [r4, #9]
12596: 725e strb r6, [r3, #9]
12598: 7aa6 ldrb r6, [r4, #10]
1259a: 729e strb r6, [r3, #10]
1259c: 7ae6 ldrb r6, [r4, #11]
1259e: 72de strb r6, [r3, #11]
125a0: 7b26 ldrb r6, [r4, #12]
125a2: 731e strb r6, [r3, #12]
125a4: 7b66 ldrb r6, [r4, #13]
125a6: 735e strb r6, [r3, #13]
125a8: 7ba6 ldrb r6, [r4, #14]
125aa: 739e strb r6, [r3, #14]
125ac: 7be6 ldrb r6, [r4, #15]
125ae: 73de strb r6, [r3, #15]
REPEAT8(COPY8);
125b0: 7c26 ldrb r6, [r4, #16]
125b2: 741e strb r6, [r3, #16]
125b4: 7c66 ldrb r6, [r4, #17]
125b6: 745e strb r6, [r3, #17]
125b8: 7ca6 ldrb r6, [r4, #18]
125ba: 749e strb r6, [r3, #18]
125bc: 7ce6 ldrb r6, [r4, #19]
125be: 74de strb r6, [r3, #19]
125c0: 7d26 ldrb r6, [r4, #20]
125c2: 751e strb r6, [r3, #20]
125c4: 7d66 ldrb r6, [r4, #21]
125c6: 755e strb r6, [r3, #21]
125c8: 7da6 ldrb r6, [r4, #22]
125ca: 759e strb r6, [r3, #22]
125cc: 7de6 ldrb r6, [r4, #23]
125ce: 75de strb r6, [r3, #23]
REPEAT8(COPY8);
125d0: 7e26 ldrb r6, [r4, #24]
125d2: 761e strb r6, [r3, #24]
125d4: 7e66 ldrb r6, [r4, #25]
125d6: 765e strb r6, [r3, #25]
125d8: 7ea6 ldrb r6, [r4, #26]
125da: 769e strb r6, [r3, #26]
125dc: 7ee6 ldrb r6, [r4, #27]
125de: 76de strb r6, [r3, #27]
125e0: 7f26 ldrb r6, [r4, #28]
125e2: 771e strb r6, [r3, #28]
125e4: 7f66 ldrb r6, [r4, #29]
125e6: 775e strb r6, [r3, #29]
125e8: 7fa6 ldrb r6, [r4, #30]
125ea: 779e strb r6, [r3, #30]
125ec: 7fe6 ldrb r6, [r4, #31]
125ee: 77de strb r6, [r3, #31]
125f0: 3320 adds r3, #32
125f2: 3420 adds r4, #32
while(len > 32) {
125f4: 42ab cmp r3, r5
125f6: d1bb bne.n 12570 <_lv_memcpy+0x2c>
125f8: 231f movs r3, #31
125fa: 4665 mov r5, ip
125fc: 439d bics r5, r3
125fe: 3520 adds r5, #32
12600: 1943 adds r3, r0, r5
12602: 1949 adds r1, r1, r5
12604: 3a20 subs r2, #32
12606: 017f lsls r7, r7, #5
12608: 1bd2 subs r2, r2, r7
while(len) {
1260a: 2a00 cmp r2, #0
1260c: d006 beq.n 1261c <_lv_memcpy+0xd8>
1260e: 189a adds r2, r3, r2
COPY8
12610: 780c ldrb r4, [r1, #0]
12612: 701c strb r4, [r3, #0]
12614: 3301 adds r3, #1
12616: 3101 adds r1, #1
while(len) {
12618: 4293 cmp r3, r2
1261a: d1f9 bne.n 12610 <_lv_memcpy+0xcc>
}
1261c: bc04 pop {r2}
1261e: 4690 mov r8, r2
12620: bdf0 pop {r4, r5, r6, r7, pc}
while(len > 32) {
12622: 0003 movs r3, r0
12624: e7f1 b.n 1260a <_lv_memcpy+0xc6>
uint8_t * d8 = dst;
12626: 0005 movs r5, r0
if(d_align) {
12628: 2c00 cmp r4, #0
1262a: d014 beq.n 12656 <_lv_memcpy+0x112>
d_align = ALIGN_MASK + 1 - d_align;
1262c: 2504 movs r5, #4
1262e: 1b2d subs r5, r5, r4
while(d_align && len) {
12630: d00e beq.n 12650 <_lv_memcpy+0x10c>
12632: 2a00 cmp r2, #0
12634: d05f beq.n 126f6 <_lv_memcpy+0x1b2>
12636: 1945 adds r5, r0, r5
12638: 0003 movs r3, r0
COPY8;
1263a: 780c ldrb r4, [r1, #0]
1263c: 701c strb r4, [r3, #0]
1263e: 3301 adds r3, #1
12640: 3101 adds r1, #1
len--;
12642: 3a01 subs r2, #1
while(d_align && len) {
12644: 42ab cmp r3, r5
12646: d005 beq.n 12654 <_lv_memcpy+0x110>
12648: 2a00 cmp r2, #0
1264a: d1f6 bne.n 1263a <_lv_memcpy+0xf6>
while(len > 4) {
1264c: 2200 movs r2, #0
1264e: e048 b.n 126e2 <_lv_memcpy+0x19e>
uint8_t * d8 = dst;
12650: 0005 movs r5, r0
12652: e000 b.n 12656 <_lv_memcpy+0x112>
COPY8;
12654: 001d movs r5, r3
while(len > 32) {
12656: 2a20 cmp r2, #32
12658: d928 bls.n 126ac <_lv_memcpy+0x168>
1265a: 0017 movs r7, r2
1265c: 3f21 subs r7, #33 ; 0x21
1265e: 46b8 mov r8, r7
12660: 097b lsrs r3, r7, #5
12662: 469c mov ip, r3
12664: 1c5e adds r6, r3, #1
12666: 0176 lsls r6, r6, #5
12668: 19ae adds r6, r5, r6
1266a: 000c movs r4, r1
1266c: 002b movs r3, r5
REPEAT8(COPY32)
1266e: 6827 ldr r7, [r4, #0]
12670: 601f str r7, [r3, #0]
12672: 6867 ldr r7, [r4, #4]
12674: 605f str r7, [r3, #4]
12676: 68a7 ldr r7, [r4, #8]
12678: 609f str r7, [r3, #8]
1267a: 68e7 ldr r7, [r4, #12]
1267c: 60df str r7, [r3, #12]
1267e: 6927 ldr r7, [r4, #16]
12680: 611f str r7, [r3, #16]
12682: 6967 ldr r7, [r4, #20]
12684: 615f str r7, [r3, #20]
12686: 69a7 ldr r7, [r4, #24]
12688: 619f str r7, [r3, #24]
1268a: 69e7 ldr r7, [r4, #28]
1268c: 61df str r7, [r3, #28]
1268e: 3320 adds r3, #32
12690: 3420 adds r4, #32
while(len > 32) {
12692: 429e cmp r6, r3
12694: d1eb bne.n 1266e <_lv_memcpy+0x12a>
12696: 231f movs r3, #31
12698: 4647 mov r7, r8
1269a: 439f bics r7, r3
1269c: 3720 adds r7, #32
1269e: 19ed adds r5, r5, r7
126a0: 19c9 adds r1, r1, r7
126a2: 0013 movs r3, r2
126a4: 3b20 subs r3, #32
126a6: 4662 mov r2, ip
126a8: 0152 lsls r2, r2, #5
126aa: 1a9a subs r2, r3, r2
while(len > 4) {
126ac: 002b movs r3, r5
126ae: 2a04 cmp r2, #4
126b0: d917 bls.n 126e2 <_lv_memcpy+0x19e>
126b2: 1f53 subs r3, r2, #5
126b4: 469c mov ip, r3
126b6: 089b lsrs r3, r3, #2
126b8: 4698 mov r8, r3
126ba: 3301 adds r3, #1
126bc: 009b lsls r3, r3, #2
126be: 18eb adds r3, r5, r3
126c0: 000e movs r6, r1
126c2: 002c movs r4, r5
COPY32;
126c4: ce80 ldmia r6!, {r7}
126c6: c480 stmia r4!, {r7}
while(len > 4) {
126c8: 429c cmp r4, r3
126ca: d1fb bne.n 126c4 <_lv_memcpy+0x180>
126cc: 2303 movs r3, #3
126ce: 4664 mov r4, ip
126d0: 439c bics r4, r3
126d2: 0023 movs r3, r4
126d4: 3304 adds r3, #4
126d6: 1f14 subs r4, r2, #4
126d8: 4642 mov r2, r8
126da: 0092 lsls r2, r2, #2
126dc: 1aa2 subs r2, r4, r2
COPY32;
126de: 18c9 adds r1, r1, r3
126e0: 18eb adds r3, r5, r3
while(len) {
126e2: 2a00 cmp r2, #0
126e4: d09a beq.n 1261c <_lv_memcpy+0xd8>
126e6: 189a adds r2, r3, r2
COPY8
126e8: 780c ldrb r4, [r1, #0]
126ea: 701c strb r4, [r3, #0]
126ec: 3301 adds r3, #1
126ee: 3101 adds r1, #1
while(len) {
126f0: 4293 cmp r3, r2
126f2: d1f9 bne.n 126e8 <_lv_memcpy+0x1a4>
126f4: e792 b.n 1261c <_lv_memcpy+0xd8>
uint8_t * d8 = dst;
126f6: 0003 movs r3, r0
126f8: e7a8 b.n 1264c <_lv_memcpy+0x108>
...
000126fc <lv_mem_realloc>:
{
126fc: b5f0 push {r4, r5, r6, r7, lr}
126fe: b083 sub sp, #12
12700: 0005 movs r5, r0
12702: 000c movs r4, r1
if(new_size & 0x3) {
12704: 078b lsls r3, r1, #30
12706: d002 beq.n 1270e <lv_mem_realloc+0x12>
new_size = new_size & (~0x3);
12708: 2303 movs r3, #3
1270a: 439c bics r4, r3
new_size += 4;
1270c: 3404 adds r4, #4
if(data_p != NULL) {
1270e: 2d00 cmp r5, #0
12710: d004 beq.n 1271c <lv_mem_realloc+0x20>
if(e->header.s.used == 0) {
12712: 1f2b subs r3, r5, #4
12714: 781b ldrb r3, [r3, #0]
data_p = NULL;
12716: 07db lsls r3, r3, #31
12718: 17db asrs r3, r3, #31
1271a: 401d ands r5, r3
uint32_t old_size = _lv_mem_get_size(data_p);
1271c: 0028 movs r0, r5
1271e: 4b17 ldr r3, [pc, #92] ; (1277c <lv_mem_realloc+0x80>)
12720: 4798 blx r3
12722: 0007 movs r7, r0
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
12724: 4284 cmp r4, r0
12726: d027 beq.n 12778 <lv_mem_realloc+0x7c>
if(new_size < old_size) {
12728: d314 bcc.n 12754 <lv_mem_realloc+0x58>
new_p = lv_mem_alloc(new_size);
1272a: 0020 movs r0, r4
1272c: 4b14 ldr r3, [pc, #80] ; (12780 <lv_mem_realloc+0x84>)
1272e: 4798 blx r3
12730: 1e06 subs r6, r0, #0
if(new_p == NULL) {
12732: d017 beq.n 12764 <lv_mem_realloc+0x68>
if(data_p != NULL) {
12734: 2d00 cmp r5, #0
12736: d012 beq.n 1275e <lv_mem_realloc+0x62>
if(old_size != 0) {
12738: 2f00 cmp r7, #0
1273a: d010 beq.n 1275e <lv_mem_realloc+0x62>
_lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size));
1273c: 0022 movs r2, r4
1273e: 42bc cmp r4, r7
12740: d900 bls.n 12744 <lv_mem_realloc+0x48>
12742: 003a movs r2, r7
12744: 0029 movs r1, r5
12746: 0030 movs r0, r6
12748: 4b0e ldr r3, [pc, #56] ; (12784 <lv_mem_realloc+0x88>)
1274a: 4798 blx r3
lv_mem_free(data_p);
1274c: 0028 movs r0, r5
1274e: 4b0e ldr r3, [pc, #56] ; (12788 <lv_mem_realloc+0x8c>)
12750: 4798 blx r3
12752: e004 b.n 1275e <lv_mem_realloc+0x62>
lv_mem_ent_t * e = (lv_mem_ent_t *)((uint8_t *)data_p - sizeof(lv_mem_header_t));
12754: 1f28 subs r0, r5, #4
ent_trunc(e, new_size);
12756: 0021 movs r1, r4
12758: 4b0c ldr r3, [pc, #48] ; (1278c <lv_mem_realloc+0x90>)
1275a: 4798 blx r3
return &e->first_data;
1275c: 002e movs r6, r5
}
1275e: 0030 movs r0, r6
12760: b003 add sp, #12
12762: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_WARN("Couldn't allocate memory");
12764: 4b0a ldr r3, [pc, #40] ; (12790 <lv_mem_realloc+0x94>)
12766: 9300 str r3, [sp, #0]
12768: 4b0a ldr r3, [pc, #40] ; (12794 <lv_mem_realloc+0x98>)
1276a: 2240 movs r2, #64 ; 0x40
1276c: 32ff adds r2, #255 ; 0xff
1276e: 490a ldr r1, [pc, #40] ; (12798 <lv_mem_realloc+0x9c>)
12770: 2002 movs r0, #2
12772: 4c0a ldr r4, [pc, #40] ; (1279c <lv_mem_realloc+0xa0>)
12774: 47a0 blx r4
return NULL;
12776: e7f2 b.n 1275e <lv_mem_realloc+0x62>
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
12778: 002e movs r6, r5
1277a: e7f0 b.n 1275e <lv_mem_realloc+0x62>
1277c: 00012445 .word 0x00012445
12780: 000122dd .word 0x000122dd
12784: 00012545 .word 0x00012545
12788: 000123c9 .word 0x000123c9
1278c: 00012269 .word 0x00012269
12790: 0002aa14 .word 0x0002aa14
12794: 0002a8e0 .word 0x0002a8e0
12798: 0002a9e4 .word 0x0002a9e4
1279c: 00012159 .word 0x00012159
000127a0 <_lv_mem_buf_get>:
{
127a0: b5f0 push {r4, r5, r6, r7, lr}
127a2: b083 sub sp, #12
if(size == 0) return NULL;
127a4: 2800 cmp r0, #0
127a6: d100 bne.n 127aa <_lv_mem_buf_get+0xa>
127a8: e080 b.n 128ac <_lv_mem_buf_get+0x10c>
if(size <= MEM_BUF_SMALL_SIZE) {
127aa: 2810 cmp r0, #16
127ac: d807 bhi.n 127be <_lv_mem_buf_get+0x1e>
if(mem_buf_small[i].used == 0) {
127ae: 4b40 ldr r3, [pc, #256] ; (128b0 <_lv_mem_buf_get+0x110>)
127b0: 799b ldrb r3, [r3, #6]
127b2: 07db lsls r3, r3, #31
127b4: d513 bpl.n 127de <_lv_mem_buf_get+0x3e>
127b6: 4b3e ldr r3, [pc, #248] ; (128b0 <_lv_mem_buf_get+0x110>)
127b8: 7b9b ldrb r3, [r3, #14]
127ba: 07db lsls r3, r3, #31
127bc: d505 bpl.n 127ca <_lv_mem_buf_get+0x2a>
127be: 4c3d ldr r4, [pc, #244] ; (128b4 <_lv_mem_buf_get+0x114>)
127c0: 2300 movs r3, #0
127c2: 2601 movs r6, #1
127c4: 4276 negs r6, r6
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
127c6: 0027 movs r7, r4
127c8: e019 b.n 127fe <_lv_mem_buf_get+0x5e>
if(mem_buf_small[i].used == 0) {
127ca: 2301 movs r3, #1
mem_buf_small[i].used = 1;
127cc: 4938 ldr r1, [pc, #224] ; (128b0 <_lv_mem_buf_get+0x110>)
127ce: 00db lsls r3, r3, #3
127d0: 18c8 adds r0, r1, r3
127d2: 7982 ldrb r2, [r0, #6]
127d4: 2401 movs r4, #1
127d6: 4322 orrs r2, r4
127d8: 7182 strb r2, [r0, #6]
return mem_buf_small[i].p;
127da: 5858 ldr r0, [r3, r1]
127dc: e02d b.n 1283a <_lv_mem_buf_get+0x9a>
if(mem_buf_small[i].used == 0) {
127de: 2300 movs r3, #0
127e0: e7f4 b.n 127cc <_lv_mem_buf_get+0x2c>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
127e2: 4a34 ldr r2, [pc, #208] ; (128b4 <_lv_mem_buf_get+0x114>)
127e4: 00dd lsls r5, r3, #3
127e6: 1951 adds r1, r2, r5
127e8: 798b ldrb r3, [r1, #6]
127ea: 2001 movs r0, #1
127ec: 4303 orrs r3, r0
127ee: 718b strb r3, [r1, #6]
return LV_GC_ROOT(_lv_mem_buf[i]).p;
127f0: 58a8 ldr r0, [r5, r2]
127f2: e022 b.n 1283a <_lv_mem_buf_get+0x9a>
i_guess = i;
127f4: b25e sxtb r6, r3
127f6: 3301 adds r3, #1
127f8: 3408 adds r4, #8
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
127fa: 2b10 cmp r3, #16
127fc: d013 beq.n 12826 <_lv_mem_buf_get+0x86>
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
127fe: 00da lsls r2, r3, #3
12800: 18ba adds r2, r7, r2
12802: 7992 ldrb r2, [r2, #6]
12804: 07d2 lsls r2, r2, #31
12806: d4f6 bmi.n 127f6 <_lv_mem_buf_get+0x56>
12808: 88a2 ldrh r2, [r4, #4]
1280a: 4290 cmp r0, r2
1280c: d8f3 bhi.n 127f6 <_lv_mem_buf_get+0x56>
if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) {
1280e: d0e8 beq.n 127e2 <_lv_mem_buf_get+0x42>
else if(i_guess < 0) {
12810: 2e00 cmp r6, #0
12812: dbef blt.n 127f4 <_lv_mem_buf_get+0x54>
else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) {
12814: 00f1 lsls r1, r6, #3
12816: 4d27 ldr r5, [pc, #156] ; (128b4 <_lv_mem_buf_get+0x114>)
12818: 46ac mov ip, r5
1281a: 4461 add r1, ip
1281c: 8889 ldrh r1, [r1, #4]
1281e: 4291 cmp r1, r2
12820: d9e9 bls.n 127f6 <_lv_mem_buf_get+0x56>
i_guess = i;
12822: b25e sxtb r6, r3
12824: e7e7 b.n 127f6 <_lv_mem_buf_get+0x56>
if(i_guess >= 0) {
12826: 2e00 cmp r6, #0
12828: db09 blt.n 1283e <_lv_mem_buf_get+0x9e>
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
1282a: 4922 ldr r1, [pc, #136] ; (128b4 <_lv_mem_buf_get+0x114>)
1282c: 00f3 lsls r3, r6, #3
1282e: 18c8 adds r0, r1, r3
12830: 7982 ldrb r2, [r0, #6]
12832: 2401 movs r4, #1
12834: 4322 orrs r2, r4
12836: 7182 strb r2, [r0, #6]
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
12838: 5858 ldr r0, [r3, r1]
}
1283a: b003 add sp, #12
1283c: bdf0 pop {r4, r5, r6, r7, pc}
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) {
1283e: 4b1d ldr r3, [pc, #116] ; (128b4 <_lv_mem_buf_get+0x114>)
12840: 799a ldrb r2, [r3, #6]
12842: 2301 movs r3, #1
12844: 2400 movs r4, #0
12846: 07d2 lsls r2, r2, #31
12848: d513 bpl.n 12872 <_lv_mem_buf_get+0xd2>
1284a: 491a ldr r1, [pc, #104] ; (128b4 <_lv_mem_buf_get+0x114>)
1284c: 001c movs r4, r3
1284e: 00da lsls r2, r3, #3
12850: 188a adds r2, r1, r2
12852: 7992 ldrb r2, [r2, #6]
12854: 07d2 lsls r2, r2, #31
12856: d50c bpl.n 12872 <_lv_mem_buf_get+0xd2>
12858: 3301 adds r3, #1
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
1285a: 2b10 cmp r3, #16
1285c: d1f6 bne.n 1284c <_lv_mem_buf_get+0xac>
LV_LOG_ERROR("lv_mem_buf_get: no free buffer. Increase LV_DRAW_BUF_MAX_NUM.");
1285e: 4b16 ldr r3, [pc, #88] ; (128b8 <_lv_mem_buf_get+0x118>)
12860: 9300 str r3, [sp, #0]
12862: 4b16 ldr r3, [pc, #88] ; (128bc <_lv_mem_buf_get+0x11c>)
12864: 4a16 ldr r2, [pc, #88] ; (128c0 <_lv_mem_buf_get+0x120>)
12866: 4917 ldr r1, [pc, #92] ; (128c4 <_lv_mem_buf_get+0x124>)
12868: 2003 movs r0, #3
1286a: 4c17 ldr r4, [pc, #92] ; (128c8 <_lv_mem_buf_get+0x128>)
1286c: 47a0 blx r4
return NULL;
1286e: 2000 movs r0, #0
12870: e7e3 b.n 1283a <_lv_mem_buf_get+0x9a>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
12872: 4d10 ldr r5, [pc, #64] ; (128b4 <_lv_mem_buf_get+0x114>)
12874: 00e6 lsls r6, r4, #3
12876: 19ab adds r3, r5, r6
12878: 799a ldrb r2, [r3, #6]
1287a: 2101 movs r1, #1
1287c: 430a orrs r2, r1
1287e: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).size = size;
12880: 8098 strh r0, [r3, #4]
LV_GC_ROOT(_lv_mem_buf[i]).p = lv_mem_realloc(LV_GC_ROOT(_lv_mem_buf[i]).p, size);
12882: 0001 movs r1, r0
12884: 5970 ldr r0, [r6, r5]
12886: 4b11 ldr r3, [pc, #68] ; (128cc <_lv_mem_buf_get+0x12c>)
12888: 4798 blx r3
1288a: 5170 str r0, [r6, r5]
if(LV_GC_ROOT(_lv_mem_buf[i]).p == NULL) {
1288c: 2800 cmp r0, #0
1288e: d003 beq.n 12898 <_lv_mem_buf_get+0xf8>
return LV_GC_ROOT(_lv_mem_buf[i]).p;
12890: 00e4 lsls r4, r4, #3
12892: 4b08 ldr r3, [pc, #32] ; (128b4 <_lv_mem_buf_get+0x114>)
12894: 58e0 ldr r0, [r4, r3]
12896: e7d0 b.n 1283a <_lv_mem_buf_get+0x9a>
LV_LOG_ERROR("lv_mem_buf_get: Out of memory, can't allocate a new buffer (increase your LV_MEM_SIZE/heap size)")
12898: 4b0d ldr r3, [pc, #52] ; (128d0 <_lv_mem_buf_get+0x130>)
1289a: 9300 str r3, [sp, #0]
1289c: 4b07 ldr r3, [pc, #28] ; (128bc <_lv_mem_buf_get+0x11c>)
1289e: 2284 movs r2, #132 ; 0x84
128a0: 0092 lsls r2, r2, #2
128a2: 4908 ldr r1, [pc, #32] ; (128c4 <_lv_mem_buf_get+0x124>)
128a4: 3003 adds r0, #3
128a6: 4d08 ldr r5, [pc, #32] ; (128c8 <_lv_mem_buf_get+0x128>)
128a8: 47a8 blx r5
128aa: e7f1 b.n 12890 <_lv_mem_buf_get+0xf0>
if(size == 0) return NULL;
128ac: 2000 movs r0, #0
128ae: e7c4 b.n 1283a <_lv_mem_buf_get+0x9a>
128b0: 20000044 .word 0x20000044
128b4: 20004d38 .word 0x20004d38
128b8: 0002a978 .word 0x0002a978
128bc: 0002a8f0 .word 0x0002a8f0
128c0: 00000216 .word 0x00000216
128c4: 0002a9e4 .word 0x0002a9e4
128c8: 00012159 .word 0x00012159
128cc: 000126fd .word 0x000126fd
128d0: 0002a914 .word 0x0002a914
000128d4 <_lv_memset>:
{
128d4: b5f0 push {r4, r5, r6, r7, lr}
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
128d6: 2403 movs r4, #3
128d8: 4004 ands r4, r0
if(d_align) {
128da: d00e beq.n 128fa <_lv_memset+0x26>
d_align = ALIGN_MASK + 1 - d_align;
128dc: 2304 movs r3, #4
128de: 1b1b subs r3, r3, r4
while(d_align && len) {
128e0: d00b beq.n 128fa <_lv_memset+0x26>
128e2: 2a00 cmp r2, #0
128e4: d007 beq.n 128f6 <_lv_memset+0x22>
128e6: 18c3 adds r3, r0, r3
*d8 = v;
128e8: 7001 strb r1, [r0, #0]
d8++;
128ea: 3001 adds r0, #1
len--;
128ec: 3a01 subs r2, #1
while(d_align && len) {
128ee: 4298 cmp r0, r3
128f0: d003 beq.n 128fa <_lv_memset+0x26>
128f2: 2a00 cmp r2, #0
128f4: d1f8 bne.n 128e8 <_lv_memset+0x14>
while(len > 4) {
128f6: 2200 movs r2, #0
128f8: e034 b.n 12964 <_lv_memset+0x90>
uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24);
128fa: 020c lsls r4, r1, #8
128fc: 1864 adds r4, r4, r1
128fe: 040b lsls r3, r1, #16
12900: 18e4 adds r4, r4, r3
12902: 060b lsls r3, r1, #24
12904: 18e4 adds r4, r4, r3
while(len > 32) {
12906: 0006 movs r6, r0
12908: 2a20 cmp r2, #32
1290a: d918 bls.n 1293e <_lv_memset+0x6a>
1290c: 0016 movs r6, r2
1290e: 3e21 subs r6, #33 ; 0x21
12910: 0977 lsrs r7, r6, #5
12912: 1c7d adds r5, r7, #1
12914: 016d lsls r5, r5, #5
12916: 1945 adds r5, r0, r5
12918: 0003 movs r3, r0
SET32(v32);
1291a: 601c str r4, [r3, #0]
SET32(v32);
1291c: 605c str r4, [r3, #4]
SET32(v32);
1291e: 609c str r4, [r3, #8]
SET32(v32);
12920: 60dc str r4, [r3, #12]
SET32(v32);
12922: 611c str r4, [r3, #16]
SET32(v32);
12924: 615c str r4, [r3, #20]
SET32(v32);
12926: 619c str r4, [r3, #24]
SET32(v32);
12928: 61dc str r4, [r3, #28]
1292a: 3320 adds r3, #32
while(len > 32) {
1292c: 429d cmp r5, r3
1292e: d1f4 bne.n 1291a <_lv_memset+0x46>
12930: 231f movs r3, #31
12932: 439e bics r6, r3
12934: 3620 adds r6, #32
12936: 1986 adds r6, r0, r6
12938: 3a20 subs r2, #32
1293a: 017f lsls r7, r7, #5
1293c: 1bd2 subs r2, r2, r7
while(len > 4) {
1293e: 0030 movs r0, r6
12940: 2a04 cmp r2, #4
12942: d90f bls.n 12964 <_lv_memset+0x90>
12944: 1f50 subs r0, r2, #5
12946: 0887 lsrs r7, r0, #2
12948: 1c7d adds r5, r7, #1
1294a: 00ad lsls r5, r5, #2
1294c: 1975 adds r5, r6, r5
1294e: 0033 movs r3, r6
SET32(v32);
12950: c310 stmia r3!, {r4}
while(len > 4) {
12952: 42ab cmp r3, r5
12954: d1fc bne.n 12950 <_lv_memset+0x7c>
12956: 2303 movs r3, #3
12958: 4398 bics r0, r3
1295a: 3004 adds r0, #4
1295c: 3a04 subs r2, #4
1295e: 00bf lsls r7, r7, #2
12960: 1bd2 subs r2, r2, r7
SET32(v32);
12962: 1830 adds r0, r6, r0
while(len) {
12964: 2a00 cmp r2, #0
12966: d004 beq.n 12972 <_lv_memset+0x9e>
12968: 1882 adds r2, r0, r2
*d8 = v;
1296a: 7001 strb r1, [r0, #0]
d8++;
1296c: 3001 adds r0, #1
while(len) {
1296e: 4290 cmp r0, r2
12970: d1fb bne.n 1296a <_lv_memset+0x96>
}
12972: bdf0 pop {r4, r5, r6, r7, pc}
00012974 <_lv_memset_00>:
{
12974: b570 push {r4, r5, r6, lr}
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
12976: 2303 movs r3, #3
12978: 4003 ands r3, r0
if(d_align) {
1297a: d13a bne.n 129f2 <_lv_memset_00+0x7e>
while(len > 32) {
1297c: 2920 cmp r1, #32
1297e: d919 bls.n 129b4 <_lv_memset_00+0x40>
12980: 000d movs r5, r1
12982: 3d21 subs r5, #33 ; 0x21
12984: 096e lsrs r6, r5, #5
12986: 1c74 adds r4, r6, #1
12988: 0164 lsls r4, r4, #5
1298a: 1904 adds r4, r0, r4
1298c: 0003 movs r3, r0
SET32(0);
1298e: 2200 movs r2, #0
12990: 601a str r2, [r3, #0]
SET32(0);
12992: 605a str r2, [r3, #4]
SET32(0);
12994: 609a str r2, [r3, #8]
SET32(0);
12996: 60da str r2, [r3, #12]
SET32(0);
12998: 611a str r2, [r3, #16]
SET32(0);
1299a: 615a str r2, [r3, #20]
SET32(0);
1299c: 619a str r2, [r3, #24]
SET32(0);
1299e: 61da str r2, [r3, #28]
129a0: 3320 adds r3, #32
while(len > 32) {
129a2: 429c cmp r4, r3
129a4: d1f4 bne.n 12990 <_lv_memset_00+0x1c>
129a6: 231f movs r3, #31
129a8: 439d bics r5, r3
129aa: 3520 adds r5, #32
129ac: 1940 adds r0, r0, r5
129ae: 3920 subs r1, #32
129b0: 0176 lsls r6, r6, #5
129b2: 1b89 subs r1, r1, r6
while(len > 4) {
129b4: 0003 movs r3, r0
129b6: 2904 cmp r1, #4
129b8: d910 bls.n 129dc <_lv_memset_00+0x68>
129ba: 1f4b subs r3, r1, #5
129bc: 089e lsrs r6, r3, #2
129be: 1c74 adds r4, r6, #1
129c0: 00a4 lsls r4, r4, #2
129c2: 1904 adds r4, r0, r4
129c4: 0002 movs r2, r0
SET32(0);
129c6: 2500 movs r5, #0
129c8: c220 stmia r2!, {r5}
while(len > 4) {
129ca: 42a2 cmp r2, r4
129cc: d1fc bne.n 129c8 <_lv_memset_00+0x54>
129ce: 2203 movs r2, #3
129d0: 4393 bics r3, r2
129d2: 3304 adds r3, #4
129d4: 3904 subs r1, #4
129d6: 00b6 lsls r6, r6, #2
129d8: 1b89 subs r1, r1, r6
SET32(0);
129da: 18c3 adds r3, r0, r3
while(len) {
129dc: 2900 cmp r1, #0
129de: d005 beq.n 129ec <_lv_memset_00+0x78>
129e0: 1859 adds r1, r3, r1
*d8 = 0;
129e2: 2200 movs r2, #0
129e4: 701a strb r2, [r3, #0]
d8++;
129e6: 3301 adds r3, #1
while(len) {
129e8: 428b cmp r3, r1
129ea: d1fb bne.n 129e4 <_lv_memset_00+0x70>
}
129ec: bd70 pop {r4, r5, r6, pc}
d8++;
129ee: 0018 movs r0, r3
129f0: e7c4 b.n 1297c <_lv_memset_00+0x8>
d_align = ALIGN_MASK + 1 - d_align;
129f2: 2204 movs r2, #4
129f4: 1ad2 subs r2, r2, r3
while(d_align && len) {
129f6: d0c1 beq.n 1297c <_lv_memset_00+0x8>
129f8: 2900 cmp r1, #0
129fa: d00b beq.n 12a14 <_lv_memset_00+0xa0>
129fc: 1882 adds r2, r0, r2
129fe: 0003 movs r3, r0
*d8 = 0x00;
12a00: 2000 movs r0, #0
12a02: 7018 strb r0, [r3, #0]
d8++;
12a04: 3301 adds r3, #1
len--;
12a06: 3901 subs r1, #1
while(d_align && len) {
12a08: 4293 cmp r3, r2
12a0a: d0f0 beq.n 129ee <_lv_memset_00+0x7a>
12a0c: 2900 cmp r1, #0
12a0e: d1f8 bne.n 12a02 <_lv_memset_00+0x8e>
while(len > 4) {
12a10: 2100 movs r1, #0
12a12: e7e3 b.n 129dc <_lv_memset_00+0x68>
uint8_t * d8 = (uint8_t *) dst;
12a14: 0003 movs r3, r0
12a16: e7fb b.n 12a10 <_lv_memset_00+0x9c>
00012a18 <_lv_memset_ff>:
{
12a18: b570 push {r4, r5, r6, lr}
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
12a1a: 2303 movs r3, #3
12a1c: 4003 ands r3, r0
if(d_align) {
12a1e: d13c bne.n 12a9a <_lv_memset_ff+0x82>
while(len > 32) {
12a20: 2920 cmp r1, #32
12a22: d91a bls.n 12a5a <_lv_memset_ff+0x42>
12a24: 000d movs r5, r1
12a26: 3d21 subs r5, #33 ; 0x21
12a28: 096e lsrs r6, r5, #5
12a2a: 1c74 adds r4, r6, #1
12a2c: 0164 lsls r4, r4, #5
12a2e: 1904 adds r4, r0, r4
12a30: 0003 movs r3, r0
SET32(0xFFFFFFFF);
12a32: 2201 movs r2, #1
12a34: 4252 negs r2, r2
12a36: 601a str r2, [r3, #0]
SET32(0xFFFFFFFF);
12a38: 605a str r2, [r3, #4]
SET32(0xFFFFFFFF);
12a3a: 609a str r2, [r3, #8]
SET32(0xFFFFFFFF);
12a3c: 60da str r2, [r3, #12]
SET32(0xFFFFFFFF);
12a3e: 611a str r2, [r3, #16]
SET32(0xFFFFFFFF);
12a40: 615a str r2, [r3, #20]
SET32(0xFFFFFFFF);
12a42: 619a str r2, [r3, #24]
SET32(0xFFFFFFFF);
12a44: 61da str r2, [r3, #28]
12a46: 3320 adds r3, #32
while(len > 32) {
12a48: 429c cmp r4, r3
12a4a: d1f4 bne.n 12a36 <_lv_memset_ff+0x1e>
12a4c: 231f movs r3, #31
12a4e: 439d bics r5, r3
12a50: 3520 adds r5, #32
12a52: 1940 adds r0, r0, r5
12a54: 3920 subs r1, #32
12a56: 0176 lsls r6, r6, #5
12a58: 1b89 subs r1, r1, r6
while(len > 4) {
12a5a: 0003 movs r3, r0
12a5c: 2904 cmp r1, #4
12a5e: d911 bls.n 12a84 <_lv_memset_ff+0x6c>
12a60: 1f4b subs r3, r1, #5
12a62: 089e lsrs r6, r3, #2
12a64: 1c74 adds r4, r6, #1
12a66: 00a4 lsls r4, r4, #2
12a68: 1904 adds r4, r0, r4
12a6a: 0002 movs r2, r0
SET32(0xFFFFFFFF);
12a6c: 2501 movs r5, #1
12a6e: 426d negs r5, r5
12a70: c220 stmia r2!, {r5}
while(len > 4) {
12a72: 42a2 cmp r2, r4
12a74: d1fc bne.n 12a70 <_lv_memset_ff+0x58>
12a76: 2203 movs r2, #3
12a78: 4393 bics r3, r2
12a7a: 3304 adds r3, #4
12a7c: 3904 subs r1, #4
12a7e: 00b6 lsls r6, r6, #2
12a80: 1b89 subs r1, r1, r6
SET32(0xFFFFFFFF);
12a82: 18c3 adds r3, r0, r3
while(len) {
12a84: 2900 cmp r1, #0
12a86: d005 beq.n 12a94 <_lv_memset_ff+0x7c>
12a88: 1859 adds r1, r3, r1
*d8 = 0xFF;
12a8a: 22ff movs r2, #255 ; 0xff
12a8c: 701a strb r2, [r3, #0]
d8++;
12a8e: 3301 adds r3, #1
while(len) {
12a90: 428b cmp r3, r1
12a92: d1fb bne.n 12a8c <_lv_memset_ff+0x74>
}
12a94: bd70 pop {r4, r5, r6, pc}
d8++;
12a96: 0018 movs r0, r3
12a98: e7c2 b.n 12a20 <_lv_memset_ff+0x8>
d_align = ALIGN_MASK + 1 - d_align;
12a9a: 2204 movs r2, #4
12a9c: 1ad2 subs r2, r2, r3
while(d_align && len) {
12a9e: d0bf beq.n 12a20 <_lv_memset_ff+0x8>
12aa0: 2900 cmp r1, #0
12aa2: d00b beq.n 12abc <_lv_memset_ff+0xa4>
12aa4: 1882 adds r2, r0, r2
12aa6: 0003 movs r3, r0
*d8 = 0xFF;
12aa8: 20ff movs r0, #255 ; 0xff
12aaa: 7018 strb r0, [r3, #0]
d8++;
12aac: 3301 adds r3, #1
len--;
12aae: 3901 subs r1, #1
while(d_align && len) {
12ab0: 4293 cmp r3, r2
12ab2: d0f0 beq.n 12a96 <_lv_memset_ff+0x7e>
12ab4: 2900 cmp r1, #0
12ab6: d1f8 bne.n 12aaa <_lv_memset_ff+0x92>
while(len > 4) {
12ab8: 2100 movs r1, #0
12aba: e7e3 b.n 12a84 <_lv_memset_ff+0x6c>
uint8_t * d8 = (uint8_t *) dst;
12abc: 0003 movs r3, r0
12abe: e7fb b.n 12ab8 <_lv_memset_ff+0xa0>
00012ac0 <_out_buffer>:
// internal buffer output
static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen)
{
if(idx < maxlen) {
12ac0: 429a cmp r2, r3
12ac2: d200 bcs.n 12ac6 <_out_buffer+0x6>
((char *)buffer)[idx] = character;
12ac4: 5488 strb r0, [r1, r2]
}
}
12ac6: 4770 bx lr
00012ac8 <_out_null>:
{
(void)character;
(void)buffer;
(void)idx;
(void)maxlen;
}
12ac8: 4770 bx lr
00012aca <_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)
{
12aca: b5f0 push {r4, r5, r6, r7, lr}
12acc: 46de mov lr, fp
12ace: 4657 mov r7, sl
12ad0: 464e mov r6, r9
12ad2: 4645 mov r5, r8
12ad4: b5e0 push {r5, r6, r7, lr}
12ad6: b085 sub sp, #20
12ad8: 0007 movs r7, r0
12ada: 9101 str r1, [sp, #4]
12adc: 4693 mov fp, r2
12ade: 9302 str r3, [sp, #8]
12ae0: 9b0e ldr r3, [sp, #56] ; 0x38
12ae2: 469a mov sl, r3
12ae4: 9c0f ldr r4, [sp, #60] ; 0x3c
12ae6: ab10 add r3, sp, #64 ; 0x40
12ae8: 7818 ldrb r0, [r3, #0]
12aea: 9a12 ldr r2, [sp, #72] ; 0x48
12aec: 9b13 ldr r3, [sp, #76] ; 0x4c
12aee: 4699 mov r9, r3
12af0: 9914 ldr r1, [sp, #80] ; 0x50
// pad leading zeros
if(!(flags & FLAGS_LEFT)) {
12af2: 2302 movs r3, #2
12af4: 400b ands r3, r1
12af6: 4698 mov r8, r3
12af8: d137 bne.n 12b6a <_ntoa_format+0xa0>
if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
12afa: 464b mov r3, r9
12afc: 2b00 cmp r3, #0
12afe: d010 beq.n 12b22 <_ntoa_format+0x58>
12b00: 07cb lsls r3, r1, #31
12b02: d400 bmi.n 12b06 <_ntoa_format+0x3c>
12b04: e0bb b.n 12c7e <_ntoa_format+0x1b4>
12b06: 2800 cmp r0, #0
12b08: d102 bne.n 12b10 <_ntoa_format+0x46>
12b0a: 230c movs r3, #12
12b0c: 420b tst r3, r1
12b0e: d003 beq.n 12b18 <_ntoa_format+0x4e>
width--;
12b10: 2301 movs r3, #1
12b12: 425b negs r3, r3
12b14: 469c mov ip, r3
12b16: 44e1 add r9, ip
}
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b18: 4294 cmp r4, r2
12b1a: d212 bcs.n 12b42 <_ntoa_format+0x78>
12b1c: 2c1f cmp r4, #31
12b1e: d904 bls.n 12b2a <_ntoa_format+0x60>
12b20: e00f b.n 12b42 <_ntoa_format+0x78>
12b22: 4294 cmp r4, r2
12b24: d20b bcs.n 12b3e <_ntoa_format+0x74>
12b26: 2c1f cmp r4, #31
12b28: d809 bhi.n 12b3e <_ntoa_format+0x74>
12b2a: 4653 mov r3, sl
12b2c: 191b adds r3, r3, r4
buf[len++] = '0';
12b2e: 2530 movs r5, #48 ; 0x30
12b30: 3401 adds r4, #1
12b32: 701d strb r5, [r3, #0]
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b34: 42a2 cmp r2, r4
12b36: d902 bls.n 12b3e <_ntoa_format+0x74>
12b38: 3301 adds r3, #1
12b3a: 2c20 cmp r4, #32
12b3c: d1f8 bne.n 12b30 <_ntoa_format+0x66>
}
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b3e: 07cb lsls r3, r1, #31
12b40: d513 bpl.n 12b6a <_ntoa_format+0xa0>
12b42: 45a1 cmp r9, r4
12b44: d911 bls.n 12b6a <_ntoa_format+0xa0>
12b46: 2c1f cmp r4, #31
12b48: d80b bhi.n 12b62 <_ntoa_format+0x98>
12b4a: 4653 mov r3, sl
12b4c: 191b adds r3, r3, r4
buf[len++] = '0';
12b4e: 2530 movs r5, #48 ; 0x30
12b50: 464e mov r6, r9
12b52: 3401 adds r4, #1
12b54: 701d strb r5, [r3, #0]
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b56: 42b4 cmp r4, r6
12b58: d006 beq.n 12b68 <_ntoa_format+0x9e>
12b5a: 3301 adds r3, #1
12b5c: 2c20 cmp r4, #32
12b5e: d1f8 bne.n 12b52 <_ntoa_format+0x88>
12b60: 46b1 mov r9, r6
}
}
// handle hash
if(flags & FLAGS_HASH) {
12b62: 06cb lsls r3, r1, #27
12b64: d403 bmi.n 12b6e <_ntoa_format+0xa4>
12b66: e042 b.n 12bee <_ntoa_format+0x124>
12b68: 46a1 mov r9, r4
12b6a: 06cb lsls r3, r1, #27
12b6c: d513 bpl.n 12b96 <_ntoa_format+0xcc>
if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
12b6e: 054b lsls r3, r1, #21
12b70: d405 bmi.n 12b7e <_ntoa_format+0xb4>
12b72: 2c00 cmp r4, #0
12b74: d003 beq.n 12b7e <_ntoa_format+0xb4>
12b76: 42a2 cmp r2, r4
12b78: d01a beq.n 12bb0 <_ntoa_format+0xe6>
12b7a: 454c cmp r4, r9
12b7c: d018 beq.n 12bb0 <_ntoa_format+0xe6>
len--;
if(len && (base == 16U)) {
len--;
}
}
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b7e: 9b11 ldr r3, [sp, #68] ; 0x44
12b80: 2b10 cmp r3, #16
12b82: d020 beq.n 12bc6 <_ntoa_format+0xfc>
buf[len++] = 'x';
}
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = 'X';
}
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12b84: 9b11 ldr r3, [sp, #68] ; 0x44
12b86: 2b02 cmp r3, #2
12b88: d026 beq.n 12bd8 <_ntoa_format+0x10e>
buf[len++] = 'b';
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
12b8a: 2c1f cmp r4, #31
12b8c: d82f bhi.n 12bee <_ntoa_format+0x124>
buf[len++] = '0';
12b8e: 2330 movs r3, #48 ; 0x30
12b90: 4652 mov r2, sl
12b92: 5513 strb r3, [r2, r4]
12b94: 3401 adds r4, #1
}
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
12b96: 2c1f cmp r4, #31
12b98: d829 bhi.n 12bee <_ntoa_format+0x124>
if(negative) {
12b9a: 2800 cmp r0, #0
12b9c: d123 bne.n 12be6 <_ntoa_format+0x11c>
buf[len++] = '-';
}
else if(flags & FLAGS_PLUS) {
12b9e: 074b lsls r3, r1, #29
12ba0: d466 bmi.n 12c70 <_ntoa_format+0x1a6>
buf[len++] = '+'; // ignore the space if the '+' exists
}
else if(flags & FLAGS_SPACE) {
12ba2: 070b lsls r3, r1, #28
12ba4: d523 bpl.n 12bee <_ntoa_format+0x124>
buf[len++] = ' ';
12ba6: 2320 movs r3, #32
12ba8: 4652 mov r2, sl
12baa: 5513 strb r3, [r2, r4]
12bac: 3401 adds r4, #1
12bae: e01e b.n 12bee <_ntoa_format+0x124>
len--;
12bb0: 1e63 subs r3, r4, #1
if(len && (base == 16U)) {
12bb2: 2b00 cmp r3, #0
12bb4: d005 beq.n 12bc2 <_ntoa_format+0xf8>
12bb6: 9a11 ldr r2, [sp, #68] ; 0x44
len--;
12bb8: 3c02 subs r4, #2
if(len && (base == 16U)) {
12bba: 2a10 cmp r2, #16
12bbc: d003 beq.n 12bc6 <_ntoa_format+0xfc>
len--;
12bbe: 001c movs r4, r3
12bc0: e7e0 b.n 12b84 <_ntoa_format+0xba>
12bc2: 001c movs r4, r3
12bc4: e7db b.n 12b7e <_ntoa_format+0xb4>
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12bc6: 068b lsls r3, r1, #26
12bc8: d460 bmi.n 12c8c <_ntoa_format+0x1c2>
12bca: 2c1f cmp r4, #31
12bcc: d8dd bhi.n 12b8a <_ntoa_format+0xc0>
buf[len++] = 'x';
12bce: 2378 movs r3, #120 ; 0x78
12bd0: 4652 mov r2, sl
12bd2: 5513 strb r3, [r2, r4]
12bd4: 3401 adds r4, #1
12bd6: e7d8 b.n 12b8a <_ntoa_format+0xc0>
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12bd8: 2c1f cmp r4, #31
12bda: d808 bhi.n 12bee <_ntoa_format+0x124>
buf[len++] = 'b';
12bdc: 3360 adds r3, #96 ; 0x60
12bde: 4652 mov r2, sl
12be0: 5513 strb r3, [r2, r4]
12be2: 3401 adds r4, #1
12be4: e7d1 b.n 12b8a <_ntoa_format+0xc0>
buf[len++] = '-';
12be6: 232d movs r3, #45 ; 0x2d
12be8: 4652 mov r2, sl
12bea: 5513 strb r3, [r2, r4]
12bec: 3401 adds r4, #1
if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
12bee: 465e mov r6, fp
12bf0: 078b lsls r3, r1, #30
12bf2: d10d bne.n 12c10 <_ntoa_format+0x146>
for(i = len; i < width; i++) {
12bf4: 454c cmp r4, r9
12bf6: d20b bcs.n 12c10 <_ntoa_format+0x146>
12bf8: 465d mov r5, fp
12bfa: 444d add r5, r9
12bfc: 1b2d subs r5, r5, r4
12bfe: 465a mov r2, fp
out(' ', buffer, idx++, maxlen);
12c00: 1c56 adds r6, r2, #1
12c02: 9b02 ldr r3, [sp, #8]
12c04: 9901 ldr r1, [sp, #4]
12c06: 2020 movs r0, #32
12c08: 47b8 blx r7
12c0a: 0032 movs r2, r6
for(i = len; i < width; i++) {
12c0c: 42ae cmp r6, r5
12c0e: d1f7 bne.n 12c00 <_ntoa_format+0x136>
while(len) {
12c10: 0032 movs r2, r6
12c12: 1e25 subs r5, r4, #0
12c14: d010 beq.n 12c38 <_ntoa_format+0x16e>
12c16: 9603 str r6, [sp, #12]
12c18: 940f str r4, [sp, #60] ; 0x3c
12c1a: 4654 mov r4, sl
12c1c: 9b0f ldr r3, [sp, #60] ; 0x3c
12c1e: 469a mov sl, r3
out(buf[--len], buffer, idx++, maxlen);
12c20: 3d01 subs r5, #1
12c22: 1c56 adds r6, r2, #1
12c24: 5d60 ldrb r0, [r4, r5]
12c26: 9b02 ldr r3, [sp, #8]
12c28: 9901 ldr r1, [sp, #4]
12c2a: 47b8 blx r7
12c2c: 0032 movs r2, r6
while(len) {
12c2e: 2d00 cmp r5, #0
12c30: d1f6 bne.n 12c20 <_ntoa_format+0x156>
12c32: 9e03 ldr r6, [sp, #12]
12c34: 4654 mov r4, sl
12c36: 1936 adds r6, r6, r4
if(flags & FLAGS_LEFT) {
12c38: 0034 movs r4, r6
12c3a: 4643 mov r3, r8
12c3c: 2b00 cmp r3, #0
12c3e: d00f beq.n 12c60 <_ntoa_format+0x196>
while(idx - start_idx < width) {
12c40: 465b mov r3, fp
12c42: 1af3 subs r3, r6, r3
12c44: 454b cmp r3, r9
12c46: d218 bcs.n 12c7a <_ntoa_format+0x1b0>
12c48: 0032 movs r2, r6
12c4a: 465d mov r5, fp
12c4c: 464e mov r6, r9
out(' ', buffer, idx++, maxlen);
12c4e: 1c54 adds r4, r2, #1
12c50: 9b02 ldr r3, [sp, #8]
12c52: 9901 ldr r1, [sp, #4]
12c54: 2020 movs r0, #32
12c56: 47b8 blx r7
12c58: 0022 movs r2, r4
while(idx - start_idx < width) {
12c5a: 1b63 subs r3, r4, r5
12c5c: 42b3 cmp r3, r6
12c5e: d3f6 bcc.n 12c4e <_ntoa_format+0x184>
}
}
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
}
12c60: 0020 movs r0, r4
12c62: b005 add sp, #20
12c64: bc3c pop {r2, r3, r4, r5}
12c66: 4690 mov r8, r2
12c68: 4699 mov r9, r3
12c6a: 46a2 mov sl, r4
12c6c: 46ab mov fp, r5
12c6e: bdf0 pop {r4, r5, r6, r7, pc}
buf[len++] = '+'; // ignore the space if the '+' exists
12c70: 232b movs r3, #43 ; 0x2b
12c72: 4652 mov r2, sl
12c74: 5513 strb r3, [r2, r4]
12c76: 3401 adds r4, #1
12c78: e7b9 b.n 12bee <_ntoa_format+0x124>
while(idx - start_idx < width) {
12c7a: 0034 movs r4, r6
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
12c7c: e7f0 b.n 12c60 <_ntoa_format+0x196>
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12c7e: 4294 cmp r4, r2
12c80: d300 bcc.n 12c84 <_ntoa_format+0x1ba>
12c82: e772 b.n 12b6a <_ntoa_format+0xa0>
12c84: 2c1f cmp r4, #31
12c86: d800 bhi.n 12c8a <_ntoa_format+0x1c0>
12c88: e74f b.n 12b2a <_ntoa_format+0x60>
12c8a: e76e b.n 12b6a <_ntoa_format+0xa0>
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
12c8c: 2c1f cmp r4, #31
12c8e: d8ae bhi.n 12bee <_ntoa_format+0x124>
buf[len++] = 'X';
12c90: 2358 movs r3, #88 ; 0x58
12c92: 4652 mov r2, sl
12c94: 5513 strb r3, [r2, r4]
12c96: 3401 adds r4, #1
12c98: e777 b.n 12b8a <_ntoa_format+0xc0>
...
00012c9c <_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)
{
12c9c: b5f0 push {r4, r5, r6, r7, lr}
12c9e: 46de mov lr, fp
12ca0: 4657 mov r7, sl
12ca2: 464e mov r6, r9
12ca4: 4645 mov r5, r8
12ca6: b5e0 push {r5, r6, r7, lr}
12ca8: b095 sub sp, #84 ; 0x54
12caa: 9008 str r0, [sp, #32]
12cac: 9109 str r1, [sp, #36] ; 0x24
12cae: 920a str r2, [sp, #40] ; 0x28
12cb0: 930b str r3, [sp, #44] ; 0x2c
12cb2: ab1e add r3, sp, #120 ; 0x78
12cb4: cb10 ldmia r3!, {r4}
12cb6: 781b ldrb r3, [r3, #0]
12cb8: 469b mov fp, r3
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
12cba: 2c00 cmp r4, #0
12cbc: d107 bne.n 12cce <_ntoa_long+0x32>
flags &= ~FLAGS_HASH;
12cbe: 2310 movs r3, #16
12cc0: 9a23 ldr r2, [sp, #140] ; 0x8c
12cc2: 439a bics r2, r3
12cc4: 0013 movs r3, r2
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
12cc6: 9a23 ldr r2, [sp, #140] ; 0x8c
12cc8: 0552 lsls r2, r2, #21
12cca: d426 bmi.n 12d1a <_ntoa_long+0x7e>
flags &= ~FLAGS_HASH;
12ccc: 9323 str r3, [sp, #140] ; 0x8c
12cce: 2361 movs r3, #97 ; 0x61
12cd0: 9a23 ldr r2, [sp, #140] ; 0x8c
12cd2: 0692 lsls r2, r2, #26
12cd4: d500 bpl.n 12cd8 <_ntoa_long+0x3c>
12cd6: 2341 movs r3, #65 ; 0x41
12cd8: b2db uxtb r3, r3
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12cda: 2500 movs r5, #0
const char digit = (char)(value % base);
12cdc: 4a1d ldr r2, [pc, #116] ; (12d54 <_ntoa_long+0xb8>)
12cde: 4691 mov r9, r2
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12ce0: 220a movs r2, #10
12ce2: 4252 negs r2, r2
12ce4: 4692 mov sl, r2
12ce6: 449a add sl, r3
12ce8: af0c add r7, sp, #48 ; 0x30
value /= base;
12cea: 4b1b ldr r3, [pc, #108] ; (12d58 <_ntoa_long+0xbc>)
12cec: 4698 mov r8, r3
12cee: e00a b.n 12d06 <_ntoa_long+0x6a>
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12cf0: 4451 add r1, sl
12cf2: b2c9 uxtb r1, r1
12cf4: 5579 strb r1, [r7, r5]
value /= base;
12cf6: 9920 ldr r1, [sp, #128] ; 0x80
12cf8: 0020 movs r0, r4
12cfa: 47c0 blx r8
12cfc: 1e04 subs r4, r0, #0
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
12cfe: d00e beq.n 12d1e <_ntoa_long+0x82>
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12d00: 0035 movs r5, r6
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
12d02: 2e20 cmp r6, #32
12d04: d00b beq.n 12d1e <_ntoa_long+0x82>
const char digit = (char)(value % base);
12d06: 9920 ldr r1, [sp, #128] ; 0x80
12d08: 0020 movs r0, r4
12d0a: 47c8 blx r9
12d0c: b2c9 uxtb r1, r1
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12d0e: 1c6e adds r6, r5, #1
12d10: 2909 cmp r1, #9
12d12: d8ed bhi.n 12cf0 <_ntoa_long+0x54>
12d14: 3130 adds r1, #48 ; 0x30
12d16: b2c9 uxtb r1, r1
12d18: e7ec b.n 12cf4 <_ntoa_long+0x58>
flags &= ~FLAGS_HASH;
12d1a: 9323 str r3, [sp, #140] ; 0x8c
size_t len = 0U;
12d1c: 2600 movs r6, #0
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
12d1e: 9b23 ldr r3, [sp, #140] ; 0x8c
12d20: 9306 str r3, [sp, #24]
12d22: 9b22 ldr r3, [sp, #136] ; 0x88
12d24: 9305 str r3, [sp, #20]
12d26: 9b21 ldr r3, [sp, #132] ; 0x84
12d28: 9304 str r3, [sp, #16]
12d2a: 9b20 ldr r3, [sp, #128] ; 0x80
12d2c: 9303 str r3, [sp, #12]
12d2e: 465b mov r3, fp
12d30: 9302 str r3, [sp, #8]
12d32: 9601 str r6, [sp, #4]
12d34: ab0c add r3, sp, #48 ; 0x30
12d36: 9300 str r3, [sp, #0]
12d38: 9b0b ldr r3, [sp, #44] ; 0x2c
12d3a: 9a0a ldr r2, [sp, #40] ; 0x28
12d3c: 9909 ldr r1, [sp, #36] ; 0x24
12d3e: 9808 ldr r0, [sp, #32]
12d40: 4c06 ldr r4, [pc, #24] ; (12d5c <_ntoa_long+0xc0>)
12d42: 47a0 blx r4
}
12d44: b015 add sp, #84 ; 0x54
12d46: bc3c pop {r2, r3, r4, r5}
12d48: 4690 mov r8, r2
12d4a: 4699 mov r9, r3
12d4c: 46a2 mov sl, r4
12d4e: 46ab mov fp, r5
12d50: bdf0 pop {r4, r5, r6, r7, pc}
12d52: 46c0 nop ; (mov r8, r8)
12d54: 0001c1b1 .word 0x0001c1b1
12d58: 0001c0a5 .word 0x0001c0a5
12d5c: 00012acb .word 0x00012acb
00012d60 <_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)
{
12d60: b5f0 push {r4, r5, r6, r7, lr}
12d62: 46de mov lr, fp
12d64: 4657 mov r7, sl
12d66: 464e mov r6, r9
12d68: 4645 mov r5, r8
12d6a: b5e0 push {r5, r6, r7, lr}
12d6c: b099 sub sp, #100 ; 0x64
12d6e: 900c str r0, [sp, #48] ; 0x30
12d70: 910d str r1, [sp, #52] ; 0x34
12d72: 920e str r2, [sp, #56] ; 0x38
12d74: 930f str r3, [sp, #60] ; 0x3c
12d76: 9b22 ldr r3, [sp, #136] ; 0x88
12d78: 001a movs r2, r3
12d7a: 9309 str r3, [sp, #36] ; 0x24
12d7c: 9d23 ldr r5, [sp, #140] ; 0x8c
12d7e: ab24 add r3, sp, #144 ; 0x90
12d80: 781b ldrb r3, [r3, #0]
12d82: 4698 mov r8, r3
12d84: 9b26 ldr r3, [sp, #152] ; 0x98
12d86: 930a str r3, [sp, #40] ; 0x28
12d88: 9b27 ldr r3, [sp, #156] ; 0x9c
12d8a: 930b str r3, [sp, #44] ; 0x2c
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
12d8c: 0013 movs r3, r2
12d8e: 432b orrs r3, r5
12d90: d107 bne.n 12da2 <_ntoa_long_long+0x42>
flags &= ~FLAGS_HASH;
12d92: 3310 adds r3, #16
12d94: 9a2a ldr r2, [sp, #168] ; 0xa8
12d96: 439a bics r2, r3
12d98: 0013 movs r3, r2
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
12d9a: 9a2a ldr r2, [sp, #168] ; 0xa8
12d9c: 0552 lsls r2, r2, #21
12d9e: d42e bmi.n 12dfe <_ntoa_long_long+0x9e>
flags &= ~FLAGS_HASH;
12da0: 932a str r3, [sp, #168] ; 0xa8
12da2: 2361 movs r3, #97 ; 0x61
12da4: 9a2a ldr r2, [sp, #168] ; 0xa8
12da6: 0692 lsls r2, r2, #26
12da8: d500 bpl.n 12dac <_ntoa_long_long+0x4c>
12daa: 2341 movs r3, #65 ; 0x41
12dac: b2db uxtb r3, r3
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12dae: 2600 movs r6, #0
const char digit = (char)(value % base);
12db0: 4a22 ldr r2, [pc, #136] ; (12e3c <_ntoa_long_long+0xdc>)
12db2: 4692 mov sl, r2
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12db4: 220a movs r2, #10
12db6: 4252 negs r2, r2
12db8: 4693 mov fp, r2
12dba: 449b add fp, r3
12dbc: af10 add r7, sp, #64 ; 0x40
value /= base;
12dbe: 46d1 mov r9, sl
12dc0: 002c movs r4, r5
12dc2: e00e b.n 12de2 <_ntoa_long_long+0x82>
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12dc4: 445a add r2, fp
12dc6: b2d2 uxtb r2, r2
12dc8: 55ba strb r2, [r7, r6]
value /= base;
12dca: 9a0a ldr r2, [sp, #40] ; 0x28
12dcc: 9b0b ldr r3, [sp, #44] ; 0x2c
12dce: 9809 ldr r0, [sp, #36] ; 0x24
12dd0: 0021 movs r1, r4
12dd2: 47c8 blx r9
12dd4: 9009 str r0, [sp, #36] ; 0x24
12dd6: 000c movs r4, r1
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
12dd8: 4301 orrs r1, r0
12dda: d013 beq.n 12e04 <_ntoa_long_long+0xa4>
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12ddc: 002e movs r6, r5
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
12dde: 2d20 cmp r5, #32
12de0: d00b beq.n 12dfa <_ntoa_long_long+0x9a>
const char digit = (char)(value % base);
12de2: 9a0a ldr r2, [sp, #40] ; 0x28
12de4: 9b0b ldr r3, [sp, #44] ; 0x2c
12de6: 9809 ldr r0, [sp, #36] ; 0x24
12de8: 0021 movs r1, r4
12dea: 47d0 blx sl
12dec: b2d2 uxtb r2, r2
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
12dee: 1c75 adds r5, r6, #1
12df0: 2a09 cmp r2, #9
12df2: d8e7 bhi.n 12dc4 <_ntoa_long_long+0x64>
12df4: 3230 adds r2, #48 ; 0x30
12df6: b2d2 uxtb r2, r2
12df8: e7e6 b.n 12dc8 <_ntoa_long_long+0x68>
12dfa: 002c movs r4, r5
12dfc: e003 b.n 12e06 <_ntoa_long_long+0xa6>
flags &= ~FLAGS_HASH;
12dfe: 932a str r3, [sp, #168] ; 0xa8
size_t len = 0U;
12e00: 2400 movs r4, #0
12e02: e000 b.n 12e06 <_ntoa_long_long+0xa6>
12e04: 002c movs r4, r5
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
12e06: 9b2a ldr r3, [sp, #168] ; 0xa8
12e08: 9306 str r3, [sp, #24]
12e0a: 9b29 ldr r3, [sp, #164] ; 0xa4
12e0c: 9305 str r3, [sp, #20]
12e0e: 9b28 ldr r3, [sp, #160] ; 0xa0
12e10: 9304 str r3, [sp, #16]
12e12: 9b0a ldr r3, [sp, #40] ; 0x28
12e14: 9303 str r3, [sp, #12]
12e16: 4643 mov r3, r8
12e18: 9302 str r3, [sp, #8]
12e1a: 9401 str r4, [sp, #4]
12e1c: ab10 add r3, sp, #64 ; 0x40
12e1e: 9300 str r3, [sp, #0]
12e20: 9b0f ldr r3, [sp, #60] ; 0x3c
12e22: 9a0e ldr r2, [sp, #56] ; 0x38
12e24: 990d ldr r1, [sp, #52] ; 0x34
12e26: 980c ldr r0, [sp, #48] ; 0x30
12e28: 4c05 ldr r4, [pc, #20] ; (12e40 <_ntoa_long_long+0xe0>)
12e2a: 47a0 blx r4
}
12e2c: b019 add sp, #100 ; 0x64
12e2e: bc3c pop {r2, r3, r4, r5}
12e30: 4690 mov r8, r2
12e32: 4699 mov r9, r3
12e34: 46a2 mov sl, r4
12e36: 46ab mov fp, r5
12e38: bdf0 pop {r4, r5, r6, r7, pc}
12e3a: 46c0 nop ; (mov r8, r8)
12e3c: 0001c391 .word 0x0001c391
12e40: 00012acb .word 0x00012acb
00012e44 <_vsnprintf>:
#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)
{
12e44: b5f0 push {r4, r5, r6, r7, lr}
12e46: 46de mov lr, fp
12e48: 4657 mov r7, sl
12e4a: 464e mov r6, r9
12e4c: 4645 mov r5, r8
12e4e: b5e0 push {r5, r6, r7, lr}
12e50: b097 sub sp, #92 ; 0x5c
12e52: 4681 mov r9, r0
12e54: 910c str r1, [sp, #48] ; 0x30
12e56: 920b str r2, [sp, #44] ; 0x2c
12e58: 001c movs r4, r3
12e5a: 9b20 ldr r3, [sp, #128] ; 0x80
12e5c: 469a mov sl, r3
unsigned int flags, width, precision, n;
size_t idx = 0U;
if(!buffer) {
12e5e: 2900 cmp r1, #0
12e60: d014 beq.n 12e8c <_vsnprintf+0x48>
format++;
break;
}
case '%' :
out('%', buffer, idx++, maxlen);
12e62: 2700 movs r7, #0
switch(*format) {
12e64: 4bcd ldr r3, [pc, #820] ; (1319c <_vsnprintf+0x358>)
12e66: 469b mov fp, r3
12e68: 464b mov r3, r9
12e6a: 930d str r3, [sp, #52] ; 0x34
12e6c: 46d1 mov r9, sl
while(*format) {
12e6e: 7820 ldrb r0, [r4, #0]
12e70: 2800 cmp r0, #0
12e72: d100 bne.n 12e76 <_vsnprintf+0x32>
12e74: e26a b.n 1334c <_vsnprintf+0x508>
if(*format != '%') {
12e76: 2825 cmp r0, #37 ; 0x25
12e78: d00b beq.n 12e92 <_vsnprintf+0x4e>
out(*format, buffer, idx++, maxlen);
12e7a: 1c7e adds r6, r7, #1
12e7c: 9b0b ldr r3, [sp, #44] ; 0x2c
12e7e: 003a movs r2, r7
12e80: 990c ldr r1, [sp, #48] ; 0x30
12e82: 9d0d ldr r5, [sp, #52] ; 0x34
12e84: 47a8 blx r5
format++;
12e86: 3401 adds r4, #1
out(*format, buffer, idx++, maxlen);
12e88: 0037 movs r7, r6
continue;
12e8a: e7f0 b.n 12e6e <_vsnprintf+0x2a>
out = _out_null;
12e8c: 4bc4 ldr r3, [pc, #784] ; (131a0 <_vsnprintf+0x35c>)
12e8e: 4699 mov r9, r3
12e90: e7e7 b.n 12e62 <_vsnprintf+0x1e>
format++;
12e92: 1c62 adds r2, r4, #1
flags = 0U;
12e94: 2100 movs r1, #0
flags |= FLAGS_HASH;
12e96: 2310 movs r3, #16
12e98: 469a mov sl, r3
flags |= FLAGS_PLUS;
12e9a: 3b0c subs r3, #12
12e9c: 4698 mov r8, r3
flags |= FLAGS_LEFT;
12e9e: 3b02 subs r3, #2
12ea0: 469c mov ip, r3
flags |= FLAGS_ZEROPAD;
12ea2: 2601 movs r6, #1
12ea4: 9d0d ldr r5, [sp, #52] ; 0x34
12ea6: e001 b.n 12eac <_vsnprintf+0x68>
12ea8: 4331 orrs r1, r6
12eaa: 3201 adds r2, #1
12eac: 0014 movs r4, r2
switch(*format) {
12eae: 7813 ldrb r3, [r2, #0]
12eb0: 3b20 subs r3, #32
12eb2: b2d8 uxtb r0, r3
12eb4: 2810 cmp r0, #16
12eb6: d80f bhi.n 12ed8 <_vsnprintf+0x94>
12eb8: 0083 lsls r3, r0, #2
12eba: 4658 mov r0, fp
12ebc: 58c3 ldr r3, [r0, r3]
12ebe: 469f mov pc, r3
flags |= FLAGS_LEFT;
12ec0: 4663 mov r3, ip
12ec2: 4319 orrs r1, r3
break;
12ec4: e7f1 b.n 12eaa <_vsnprintf+0x66>
flags |= FLAGS_PLUS;
12ec6: 4643 mov r3, r8
12ec8: 4319 orrs r1, r3
break;
12eca: e7ee b.n 12eaa <_vsnprintf+0x66>
flags |= FLAGS_SPACE;
12ecc: 2308 movs r3, #8
12ece: 4319 orrs r1, r3
break;
12ed0: e7eb b.n 12eaa <_vsnprintf+0x66>
flags |= FLAGS_HASH;
12ed2: 4653 mov r3, sl
12ed4: 4319 orrs r1, r3
break;
12ed6: e7e8 b.n 12eaa <_vsnprintf+0x66>
12ed8: 950d str r5, [sp, #52] ; 0x34
if(_is_digit(*format)) {
12eda: 7823 ldrb r3, [r4, #0]
12edc: 001a movs r2, r3
12ede: 3a30 subs r2, #48 ; 0x30
12ee0: 2a09 cmp r2, #9
12ee2: d910 bls.n 12f06 <_vsnprintf+0xc2>
width = 0U;
12ee4: 2600 movs r6, #0
else if(*format == '*') {
12ee6: 2b2a cmp r3, #42 ; 0x2a
12ee8: d01d beq.n 12f26 <_vsnprintf+0xe2>
if(*format == '.') {
12eea: 7823 ldrb r3, [r4, #0]
precision = 0U;
12eec: 2200 movs r2, #0
12eee: 4692 mov sl, r2
if(*format == '.') {
12ef0: 2b2e cmp r3, #46 ; 0x2e
12ef2: d024 beq.n 12f3e <_vsnprintf+0xfa>
switch(*format) {
12ef4: 7823 ldrb r3, [r4, #0]
12ef6: 3b68 subs r3, #104 ; 0x68
12ef8: b2da uxtb r2, r3
12efa: 2a12 cmp r2, #18
12efc: d86a bhi.n 12fd4 <_vsnprintf+0x190>
12efe: 0093 lsls r3, r2, #2
12f00: 4aa8 ldr r2, [pc, #672] ; (131a4 <_vsnprintf+0x360>)
12f02: 58d3 ldr r3, [r2, r3]
12f04: 469f mov pc, r3
12f06: 2600 movs r6, #0
12f08: 001a movs r2, r3
i = i * 10U + (unsigned int)(*((*str)++) - '0');
12f0a: 3401 adds r4, #1
12f0c: 00b3 lsls r3, r6, #2
12f0e: 199b adds r3, r3, r6
12f10: 005b lsls r3, r3, #1
12f12: 189b adds r3, r3, r2
12f14: 3b30 subs r3, #48 ; 0x30
12f16: 001e movs r6, r3
while(_is_digit(**str)) {
12f18: 7822 ldrb r2, [r4, #0]
12f1a: 0013 movs r3, r2
12f1c: 3b30 subs r3, #48 ; 0x30
12f1e: 2b09 cmp r3, #9
12f20: d9f3 bls.n 12f0a <_vsnprintf+0xc6>
12f22: 950d str r5, [sp, #52] ; 0x34
12f24: e7e1 b.n 12eea <_vsnprintf+0xa6>
const int w = va_arg(va, int);
12f26: 464b mov r3, r9
12f28: 1d1a adds r2, r3, #4
12f2a: 681b ldr r3, [r3, #0]
width = (unsigned int)w;
12f2c: 1e1e subs r6, r3, #0
if(w < 0) {
12f2e: db02 blt.n 12f36 <_vsnprintf+0xf2>
format++;
12f30: 3401 adds r4, #1
const int w = va_arg(va, int);
12f32: 4691 mov r9, r2
12f34: e7d9 b.n 12eea <_vsnprintf+0xa6>
flags |= FLAGS_LEFT; // reverse padding
12f36: 2002 movs r0, #2
12f38: 4301 orrs r1, r0
width = (unsigned int) - w;
12f3a: 425e negs r6, r3
12f3c: e7f8 b.n 12f30 <_vsnprintf+0xec>
flags |= FLAGS_PRECISION;
12f3e: 2380 movs r3, #128 ; 0x80
12f40: 00db lsls r3, r3, #3
12f42: 4319 orrs r1, r3
format++;
12f44: 1c60 adds r0, r4, #1
if(_is_digit(*format)) {
12f46: 7863 ldrb r3, [r4, #1]
12f48: 001a movs r2, r3
12f4a: 3a30 subs r2, #48 ; 0x30
12f4c: 2a09 cmp r2, #9
12f4e: d905 bls.n 12f5c <_vsnprintf+0x118>
else if(*format == '*') {
12f50: 2b2a cmp r3, #42 ; 0x2a
12f52: d016 beq.n 12f82 <_vsnprintf+0x13e>
format++;
12f54: 0004 movs r4, r0
precision = 0U;
12f56: 2300 movs r3, #0
12f58: 469a mov sl, r3
12f5a: e7cb b.n 12ef4 <_vsnprintf+0xb0>
12f5c: 2200 movs r2, #0
12f5e: 001c movs r4, r3
12f60: 9d0d ldr r5, [sp, #52] ; 0x34
i = i * 10U + (unsigned int)(*((*str)++) - '0');
12f62: 3001 adds r0, #1
12f64: 0093 lsls r3, r2, #2
12f66: 189b adds r3, r3, r2
12f68: 005b lsls r3, r3, #1
12f6a: 191b adds r3, r3, r4
12f6c: 3b30 subs r3, #48 ; 0x30
12f6e: 001a movs r2, r3
while(_is_digit(**str)) {
12f70: 7804 ldrb r4, [r0, #0]
12f72: 0023 movs r3, r4
12f74: 3b30 subs r3, #48 ; 0x30
12f76: 2b09 cmp r3, #9
12f78: d9f3 bls.n 12f62 <_vsnprintf+0x11e>
12f7a: 4692 mov sl, r2
12f7c: 950d str r5, [sp, #52] ; 0x34
i = i * 10U + (unsigned int)(*((*str)++) - '0');
12f7e: 0004 movs r4, r0
12f80: e7b8 b.n 12ef4 <_vsnprintf+0xb0>
precision = prec > 0 ? (unsigned int)prec : 0U;
12f82: 464b mov r3, r9
12f84: 681b ldr r3, [r3, #0]
12f86: 469a mov sl, r3
12f88: 43db mvns r3, r3
12f8a: 17db asrs r3, r3, #31
12f8c: 4652 mov r2, sl
12f8e: 401a ands r2, r3
12f90: 4692 mov sl, r2
format++;
12f92: 3402 adds r4, #2
const int prec = (int)va_arg(va, int);
12f94: 2304 movs r3, #4
12f96: 469c mov ip, r3
12f98: 44e1 add r9, ip
12f9a: e7ab b.n 12ef4 <_vsnprintf+0xb0>
if(*format == 'l') {
12f9c: 7863 ldrb r3, [r4, #1]
12f9e: 2b6c cmp r3, #108 ; 0x6c
12fa0: d004 beq.n 12fac <_vsnprintf+0x168>
flags |= FLAGS_LONG;
12fa2: 2380 movs r3, #128 ; 0x80
12fa4: 005b lsls r3, r3, #1
12fa6: 4319 orrs r1, r3
format++;
12fa8: 3401 adds r4, #1
12faa: e013 b.n 12fd4 <_vsnprintf+0x190>
flags |= FLAGS_LONG_LONG;
12fac: 23c0 movs r3, #192 ; 0xc0
12fae: 009b lsls r3, r3, #2
12fb0: 4319 orrs r1, r3
format++;
12fb2: 3402 adds r4, #2
12fb4: e00e b.n 12fd4 <_vsnprintf+0x190>
if(*format == 'h') {
12fb6: 7863 ldrb r3, [r4, #1]
12fb8: 2b68 cmp r3, #104 ; 0x68
12fba: d003 beq.n 12fc4 <_vsnprintf+0x180>
flags |= FLAGS_SHORT;
12fbc: 2380 movs r3, #128 ; 0x80
12fbe: 4319 orrs r1, r3
format++;
12fc0: 3401 adds r4, #1
12fc2: e007 b.n 12fd4 <_vsnprintf+0x190>
flags |= FLAGS_CHAR;
12fc4: 23c0 movs r3, #192 ; 0xc0
12fc6: 4319 orrs r1, r3
format++;
12fc8: 3402 adds r4, #2
12fca: e003 b.n 12fd4 <_vsnprintf+0x190>
flags |= (sizeof(ptrdiff_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
12fcc: 2380 movs r3, #128 ; 0x80
12fce: 005b lsls r3, r3, #1
12fd0: 4319 orrs r1, r3
format++;
12fd2: 3401 adds r4, #1
switch(*format) {
12fd4: 7820 ldrb r0, [r4, #0]
12fd6: 0003 movs r3, r0
12fd8: 3b25 subs r3, #37 ; 0x25
12fda: b2da uxtb r2, r3
12fdc: 2a53 cmp r2, #83 ; 0x53
12fde: d900 bls.n 12fe2 <_vsnprintf+0x19e>
12fe0: e1ab b.n 1333a <_vsnprintf+0x4f6>
12fe2: 0093 lsls r3, r2, #2
12fe4: 4a70 ldr r2, [pc, #448] ; (131a8 <_vsnprintf+0x364>)
12fe6: 58d3 ldr r3, [r2, r3]
12fe8: 469f mov pc, r3
flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
12fea: 2380 movs r3, #128 ; 0x80
12fec: 009b lsls r3, r3, #2
12fee: 4319 orrs r1, r3
format++;
12ff0: 3401 adds r4, #1
break;
12ff2: e7ef b.n 12fd4 <_vsnprintf+0x190>
flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
12ff4: 2380 movs r3, #128 ; 0x80
12ff6: 005b lsls r3, r3, #1
12ff8: 4319 orrs r1, r3
format++;
12ffa: 3401 adds r4, #1
break;
12ffc: e7ea b.n 12fd4 <_vsnprintf+0x190>
if(*format == 'x' || *format == 'X') {
12ffe: 2878 cmp r0, #120 ; 0x78
13000: d100 bne.n 13004 <_vsnprintf+0x1c0>
13002: e237 b.n 13474 <_vsnprintf+0x630>
13004: 2858 cmp r0, #88 ; 0x58
13006: d100 bne.n 1300a <_vsnprintf+0x1c6>
13008: e1b3 b.n 13372 <_vsnprintf+0x52e>
else if(*format == 'o') {
1300a: 286f cmp r0, #111 ; 0x6f
1300c: d100 bne.n 13010 <_vsnprintf+0x1cc>
1300e: e233 b.n 13478 <_vsnprintf+0x634>
else if(*format == 'b') {
13010: 2862 cmp r0, #98 ; 0x62
13012: d100 bne.n 13016 <_vsnprintf+0x1d2>
13014: e232 b.n 1347c <_vsnprintf+0x638>
flags &= ~FLAGS_HASH; // no hash for dec format
13016: 2310 movs r3, #16
13018: 000a movs r2, r1
1301a: 439a bics r2, r3
1301c: 0013 movs r3, r2
if((*format != 'i') && (*format != 'd')) {
1301e: 2869 cmp r0, #105 ; 0x69
13020: d124 bne.n 1306c <_vsnprintf+0x228>
if(flags & FLAGS_PRECISION) {
13022: 054a lsls r2, r1, #21
13024: d500 bpl.n 13028 <_vsnprintf+0x1e4>
13026: e220 b.n 1346a <_vsnprintf+0x626>
base = 10U;
13028: 220a movs r2, #10
if(flags & FLAGS_LONG_LONG) {
1302a: 0599 lsls r1, r3, #22
1302c: d424 bmi.n 13078 <_vsnprintf+0x234>
else if(flags & FLAGS_LONG) {
1302e: 05d9 lsls r1, r3, #23
13030: d451 bmi.n 130d6 <_vsnprintf+0x292>
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va,
13032: 0659 lsls r1, r3, #25
13034: d468 bmi.n 13108 <_vsnprintf+0x2c4>
int) : va_arg(va, int);
13036: 0619 lsls r1, r3, #24
13038: d56c bpl.n 13114 <_vsnprintf+0x2d0>
1303a: 4649 mov r1, r9
1303c: 2000 movs r0, #0
1303e: 5e09 ldrsh r1, [r1, r0]
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va,
13040: 2004 movs r0, #4
13042: 4684 mov ip, r0
13044: 44e1 add r9, ip
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision,
13046: 9305 str r3, [sp, #20]
13048: 9604 str r6, [sp, #16]
1304a: 4653 mov r3, sl
1304c: 9303 str r3, [sp, #12]
1304e: 9202 str r2, [sp, #8]
13050: 0fcb lsrs r3, r1, #31
13052: 9301 str r3, [sp, #4]
13054: 17cb asrs r3, r1, #31
13056: 18c9 adds r1, r1, r3
13058: 4059 eors r1, r3
1305a: 9100 str r1, [sp, #0]
1305c: 9b0b ldr r3, [sp, #44] ; 0x2c
1305e: 003a movs r2, r7
13060: 990c ldr r1, [sp, #48] ; 0x30
13062: 980d ldr r0, [sp, #52] ; 0x34
13064: 4e51 ldr r6, [pc, #324] ; (131ac <_vsnprintf+0x368>)
13066: 47b0 blx r6
13068: 0007 movs r7, r0
1306a: e1b4 b.n 133d6 <_vsnprintf+0x592>
if((*format != 'i') && (*format != 'd')) {
1306c: 2864 cmp r0, #100 ; 0x64
1306e: d100 bne.n 13072 <_vsnprintf+0x22e>
13070: e1b3 b.n 133da <_vsnprintf+0x596>
flags &= ~FLAGS_HASH; // no hash for dec format
13072: 0011 movs r1, r2
base = 10U;
13074: 220a movs r2, #10
13076: e17f b.n 13378 <_vsnprintf+0x534>
const long long value = va_arg(va, long long);
13078: 4649 mov r1, r9
1307a: 3107 adds r1, #7
1307c: 2007 movs r0, #7
1307e: 4381 bics r1, r0
13080: 3001 adds r0, #1
13082: 4681 mov r9, r0
13084: 4489 add r9, r1
13086: 6808 ldr r0, [r1, #0]
13088: 6849 ldr r1, [r1, #4]
idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base,
1308a: 9308 str r3, [sp, #32]
1308c: 9607 str r6, [sp, #28]
1308e: 4653 mov r3, sl
13090: 9306 str r3, [sp, #24]
13092: 9204 str r2, [sp, #16]
13094: 2300 movs r3, #0
13096: 9305 str r3, [sp, #20]
13098: 0fcb lsrs r3, r1, #31
1309a: 9302 str r3, [sp, #8]
1309c: 17cb asrs r3, r1, #31
1309e: 9312 str r3, [sp, #72] ; 0x48
130a0: 9313 str r3, [sp, #76] ; 0x4c
130a2: 9a12 ldr r2, [sp, #72] ; 0x48
130a4: 9b13 ldr r3, [sp, #76] ; 0x4c
130a6: 0015 movs r5, r2
130a8: 4045 eors r5, r0
130aa: 9514 str r5, [sp, #80] ; 0x50
130ac: 0018 movs r0, r3
130ae: 4048 eors r0, r1
130b0: 9015 str r0, [sp, #84] ; 0x54
130b2: 9d14 ldr r5, [sp, #80] ; 0x50
130b4: 9e15 ldr r6, [sp, #84] ; 0x54
130b6: 0011 movs r1, r2
130b8: 001a movs r2, r3
130ba: 1a6d subs r5, r5, r1
130bc: 4196 sbcs r6, r2
130be: 002a movs r2, r5
130c0: 0033 movs r3, r6
130c2: 9200 str r2, [sp, #0]
130c4: 9301 str r3, [sp, #4]
130c6: 9b0b ldr r3, [sp, #44] ; 0x2c
130c8: 003a movs r2, r7
130ca: 990c ldr r1, [sp, #48] ; 0x30
130cc: 980d ldr r0, [sp, #52] ; 0x34
130ce: 4e38 ldr r6, [pc, #224] ; (131b0 <_vsnprintf+0x36c>)
130d0: 47b0 blx r6
130d2: 0007 movs r7, r0
130d4: e17f b.n 133d6 <_vsnprintf+0x592>
const long value = va_arg(va, long);
130d6: 2104 movs r1, #4
130d8: 4449 add r1, r9
130da: 4688 mov r8, r1
130dc: 4649 mov r1, r9
130de: 6809 ldr r1, [r1, #0]
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)(value > 0 ? value : 0 - value), value < 0, base, precision,
130e0: 9305 str r3, [sp, #20]
130e2: 9604 str r6, [sp, #16]
130e4: 4653 mov r3, sl
130e6: 9303 str r3, [sp, #12]
130e8: 9202 str r2, [sp, #8]
130ea: 0fcb lsrs r3, r1, #31
130ec: 9301 str r3, [sp, #4]
130ee: 17cb asrs r3, r1, #31
130f0: 18c9 adds r1, r1, r3
130f2: 4059 eors r1, r3
130f4: 9100 str r1, [sp, #0]
130f6: 9b0b ldr r3, [sp, #44] ; 0x2c
130f8: 003a movs r2, r7
130fa: 990c ldr r1, [sp, #48] ; 0x30
130fc: 980d ldr r0, [sp, #52] ; 0x34
130fe: 4e2b ldr r6, [pc, #172] ; (131ac <_vsnprintf+0x368>)
13100: 47b0 blx r6
13102: 0007 movs r7, r0
const long value = va_arg(va, long);
13104: 46c1 mov r9, r8
13106: e166 b.n 133d6 <_vsnprintf+0x592>
13108: 4649 mov r1, r9
1310a: 7809 ldrb r1, [r1, #0]
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va,
1310c: 2004 movs r0, #4
1310e: 4684 mov ip, r0
13110: 44e1 add r9, ip
13112: e798 b.n 13046 <_vsnprintf+0x202>
int) : va_arg(va, int);
13114: 4649 mov r1, r9
13116: 6809 ldr r1, [r1, #0]
13118: 2004 movs r0, #4
1311a: 4684 mov ip, r0
1311c: 44e1 add r9, ip
1311e: e792 b.n 13046 <_vsnprintf+0x202>
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
13120: 4649 mov r1, r9
13122: 3107 adds r1, #7
13124: 2007 movs r0, #7
13126: 4381 bics r1, r0
13128: 3001 adds r0, #1
1312a: 4681 mov r9, r0
1312c: 4489 add r9, r1
1312e: 9308 str r3, [sp, #32]
13130: 9607 str r6, [sp, #28]
13132: 4653 mov r3, sl
13134: 9306 str r3, [sp, #24]
13136: 9204 str r2, [sp, #16]
13138: 2300 movs r3, #0
1313a: 9305 str r3, [sp, #20]
1313c: 9302 str r3, [sp, #8]
1313e: 680a ldr r2, [r1, #0]
13140: 684b ldr r3, [r1, #4]
13142: 9200 str r2, [sp, #0]
13144: 9301 str r3, [sp, #4]
13146: 9b0b ldr r3, [sp, #44] ; 0x2c
13148: 003a movs r2, r7
1314a: 990c ldr r1, [sp, #48] ; 0x30
1314c: 980d ldr r0, [sp, #52] ; 0x34
1314e: 4e18 ldr r6, [pc, #96] ; (131b0 <_vsnprintf+0x36c>)
13150: 47b0 blx r6
13152: 0007 movs r7, r0
13154: e13f b.n 133d6 <_vsnprintf+0x592>
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
13156: 2104 movs r1, #4
13158: 4449 add r1, r9
1315a: 4688 mov r8, r1
1315c: 9305 str r3, [sp, #20]
1315e: 9604 str r6, [sp, #16]
13160: 4653 mov r3, sl
13162: 9303 str r3, [sp, #12]
13164: 9202 str r2, [sp, #8]
13166: 2300 movs r3, #0
13168: 9301 str r3, [sp, #4]
1316a: 464b mov r3, r9
1316c: 681b ldr r3, [r3, #0]
1316e: 9300 str r3, [sp, #0]
13170: 9b0b ldr r3, [sp, #44] ; 0x2c
13172: 003a movs r2, r7
13174: 990c ldr r1, [sp, #48] ; 0x30
13176: 980d ldr r0, [sp, #52] ; 0x34
13178: 4e0c ldr r6, [pc, #48] ; (131ac <_vsnprintf+0x368>)
1317a: 47b0 blx r6
1317c: 0007 movs r7, r0
1317e: 46c1 mov r9, r8
13180: e129 b.n 133d6 <_vsnprintf+0x592>
13182: 4649 mov r1, r9
13184: 7809 ldrb r1, [r1, #0]
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va,
13186: 2004 movs r0, #4
13188: 4684 mov ip, r0
1318a: 44e1 add r9, ip
1318c: e114 b.n 133b8 <_vsnprintf+0x574>
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
1318e: 4649 mov r1, r9
13190: 6809 ldr r1, [r1, #0]
13192: 2004 movs r0, #4
13194: 4684 mov ip, r0
13196: 44e1 add r9, ip
13198: e10e b.n 133b8 <_vsnprintf+0x574>
1319a: 46c0 nop ; (mov r8, r8)
1319c: 0002aa30 .word 0x0002aa30
131a0: 00012ac9 .word 0x00012ac9
131a4: 0002aa74 .word 0x0002aa74
131a8: 0002aac0 .word 0x0002aac0
131ac: 00012c9d .word 0x00012c9d
131b0: 00012d61 .word 0x00012d61
if(!(flags & FLAGS_LEFT)) {
131b4: 078b lsls r3, r1, #30
131b6: d500 bpl.n 131ba <_vsnprintf+0x376>
131b8: e113 b.n 133e2 <_vsnprintf+0x59e>
while(l++ < width) {
131ba: 2e01 cmp r6, #1
131bc: d800 bhi.n 131c0 <_vsnprintf+0x37c>
131be: e134 b.n 1342a <_vsnprintf+0x5e6>
131c0: 1e7b subs r3, r7, #1
131c2: 4698 mov r8, r3
131c4: 44b0 add r8, r6
131c6: 003a movs r2, r7
131c8: 4647 mov r7, r8
131ca: 9d0d ldr r5, [sp, #52] ; 0x34
out(' ', buffer, idx++, maxlen);
131cc: 1c56 adds r6, r2, #1
131ce: 9b0b ldr r3, [sp, #44] ; 0x2c
131d0: 990c ldr r1, [sp, #48] ; 0x30
131d2: 2020 movs r0, #32
131d4: 47a8 blx r5
131d6: 0032 movs r2, r6
while(l++ < width) {
131d8: 42be cmp r6, r7
131da: d1f7 bne.n 131cc <_vsnprintf+0x388>
131dc: 950d str r5, [sp, #52] ; 0x34
out((char)va_arg(va, int), buffer, idx++, maxlen);
131de: 2304 movs r3, #4
131e0: 444b add r3, r9
131e2: 4698 mov r8, r3
131e4: 1c77 adds r7, r6, #1
131e6: 464b mov r3, r9
131e8: 7818 ldrb r0, [r3, #0]
131ea: 9b0b ldr r3, [sp, #44] ; 0x2c
131ec: 0032 movs r2, r6
131ee: 990c ldr r1, [sp, #48] ; 0x30
131f0: 9d0d ldr r5, [sp, #52] ; 0x34
131f2: 47a8 blx r5
131f4: 46c1 mov r9, r8
format++;
131f6: 3401 adds r4, #1
break;
131f8: e639 b.n 12e6e <_vsnprintf+0x2a>
out((char)va_arg(va, int), buffer, idx++, maxlen);
131fa: 9b0e ldr r3, [sp, #56] ; 0x38
131fc: 4699 mov r9, r3
131fe: 4647 mov r7, r8
13200: e7f9 b.n 131f6 <_vsnprintf+0x3b2>
const char * p = va_arg(va, char *);
13202: 464b mov r3, r9
13204: 3304 adds r3, #4
13206: 9310 str r3, [sp, #64] ; 0x40
13208: 464b mov r3, r9
1320a: 681b ldr r3, [r3, #0]
1320c: 930e str r3, [sp, #56] ; 0x38
unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1);
1320e: 4652 mov r2, sl
13210: 2a00 cmp r2, #0
13212: d101 bne.n 13218 <_vsnprintf+0x3d4>
13214: 2201 movs r2, #1
13216: 4252 negs r2, r2
for(s = str; *s && maxsize--; ++s);
13218: 9b0e ldr r3, [sp, #56] ; 0x38
1321a: 7818 ldrb r0, [r3, #0]
1321c: 2800 cmp r0, #0
1321e: d00d beq.n 1323c <_vsnprintf+0x3f8>
13220: 468c mov ip, r1
13222: 9d0d ldr r5, [sp, #52] ; 0x34
13224: 3301 adds r3, #1
13226: 7819 ldrb r1, [r3, #0]
13228: 2900 cmp r1, #0
1322a: d005 beq.n 13238 <_vsnprintf+0x3f4>
1322c: 3a01 subs r2, #1
1322e: 2a00 cmp r2, #0
13230: d1f8 bne.n 13224 <_vsnprintf+0x3e0>
13232: 4661 mov r1, ip
13234: 950d str r5, [sp, #52] ; 0x34
13236: e001 b.n 1323c <_vsnprintf+0x3f8>
13238: 4661 mov r1, ip
1323a: 950d str r5, [sp, #52] ; 0x34
return (unsigned int)(s - str);
1323c: 9a0e ldr r2, [sp, #56] ; 0x38
1323e: 1a9b subs r3, r3, r2
13240: 001a movs r2, r3
13242: 930f str r3, [sp, #60] ; 0x3c
if(flags & FLAGS_PRECISION) {
13244: 2380 movs r3, #128 ; 0x80
13246: 00db lsls r3, r3, #3
13248: 400b ands r3, r1
1324a: 4699 mov r9, r3
1324c: d003 beq.n 13256 <_vsnprintf+0x412>
l = (l < precision ? l : precision);
1324e: 4552 cmp r2, sl
13250: d901 bls.n 13256 <_vsnprintf+0x412>
13252: 4653 mov r3, sl
13254: 930f str r3, [sp, #60] ; 0x3c
if(!(flags & FLAGS_LEFT)) {
13256: 2302 movs r3, #2
13258: 400b ands r3, r1
1325a: 9311 str r3, [sp, #68] ; 0x44
1325c: d000 beq.n 13260 <_vsnprintf+0x41c>
1325e: e0e9 b.n 13434 <_vsnprintf+0x5f0>
while(l++ < width) {
13260: 990f ldr r1, [sp, #60] ; 0x3c
13262: 000b movs r3, r1
13264: 3301 adds r3, #1
13266: 428e cmp r6, r1
13268: d800 bhi.n 1326c <_vsnprintf+0x428>
1326a: e0e0 b.n 1342e <_vsnprintf+0x5ea>
1326c: 19f3 adds r3, r6, r7
1326e: 1a5b subs r3, r3, r1
13270: 4698 mov r8, r3
13272: 003a movs r2, r7
13274: 0023 movs r3, r4
13276: 4644 mov r4, r8
13278: 9d0d ldr r5, [sp, #52] ; 0x34
1327a: 4698 mov r8, r3
out(' ', buffer, idx++, maxlen);
1327c: 1c57 adds r7, r2, #1
1327e: 9b0b ldr r3, [sp, #44] ; 0x2c
13280: 990c ldr r1, [sp, #48] ; 0x30
13282: 2020 movs r0, #32
13284: 47a8 blx r5
13286: 003a movs r2, r7
while(l++ < width) {
13288: 42a7 cmp r7, r4
1328a: d1f7 bne.n 1327c <_vsnprintf+0x438>
1328c: 4644 mov r4, r8
1328e: 950d str r5, [sp, #52] ; 0x34
13290: 1c73 adds r3, r6, #1
13292: 930f str r3, [sp, #60] ; 0x3c
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
13294: 9b0e ldr r3, [sp, #56] ; 0x38
13296: 7818 ldrb r0, [r3, #0]
13298: 0017 movs r7, r2
1329a: 2800 cmp r0, #0
1329c: d025 beq.n 132ea <_vsnprintf+0x4a6>
1329e: 9b0e ldr r3, [sp, #56] ; 0x38
132a0: 1a9b subs r3, r3, r2
132a2: 4698 mov r8, r3
132a4: 0023 movs r3, r4
132a6: 4654 mov r4, sl
132a8: 990d ldr r1, [sp, #52] ; 0x34
132aa: 464d mov r5, r9
132ac: 46b1 mov r9, r6
132ae: 000e movs r6, r1
132b0: 469a mov sl, r3
132b2: e009 b.n 132c8 <_vsnprintf+0x484>
132b4: 001c movs r4, r3
out(*(p++), buffer, idx++, maxlen);
132b6: 1c57 adds r7, r2, #1
132b8: 9b0b ldr r3, [sp, #44] ; 0x2c
132ba: 990c ldr r1, [sp, #48] ; 0x30
132bc: 47b0 blx r6
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
132be: 4643 mov r3, r8
132c0: 5dd8 ldrb r0, [r3, r7]
132c2: 2800 cmp r0, #0
132c4: d00a beq.n 132dc <_vsnprintf+0x498>
out(*(p++), buffer, idx++, maxlen);
132c6: 003a movs r2, r7
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
132c8: 2d00 cmp r5, #0
132ca: d0f4 beq.n 132b6 <_vsnprintf+0x472>
132cc: 1e63 subs r3, r4, #1
132ce: 2c00 cmp r4, #0
132d0: d1f0 bne.n 132b4 <_vsnprintf+0x470>
132d2: 4654 mov r4, sl
132d4: 960d str r6, [sp, #52] ; 0x34
132d6: 464e mov r6, r9
132d8: 0017 movs r7, r2
132da: e002 b.n 132e2 <_vsnprintf+0x49e>
132dc: 4654 mov r4, sl
132de: 960d str r6, [sp, #52] ; 0x34
132e0: 464e mov r6, r9
if(flags & FLAGS_LEFT) {
132e2: 9b11 ldr r3, [sp, #68] ; 0x44
132e4: 2b00 cmp r3, #0
132e6: d000 beq.n 132ea <_vsnprintf+0x4a6>
132e8: e0a8 b.n 1343c <_vsnprintf+0x5f8>
format++;
132ea: 3401 adds r4, #1
const char * p = va_arg(va, char *);
132ec: 9b10 ldr r3, [sp, #64] ; 0x40
132ee: 4699 mov r9, r3
break;
132f0: e5bd b.n 12e6e <_vsnprintf+0x2a>
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
132f2: 464b mov r3, r9
132f4: 1d1e adds r6, r3, #4
flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE;
132f6: 2321 movs r3, #33 ; 0x21
132f8: 4319 orrs r1, r3
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
132fa: 9105 str r1, [sp, #20]
132fc: 3b19 subs r3, #25
132fe: 9304 str r3, [sp, #16]
13300: 4653 mov r3, sl
13302: 9303 str r3, [sp, #12]
13304: 2310 movs r3, #16
13306: 9302 str r3, [sp, #8]
13308: 2300 movs r3, #0
1330a: 9301 str r3, [sp, #4]
1330c: 464b mov r3, r9
1330e: 681b ldr r3, [r3, #0]
13310: 9300 str r3, [sp, #0]
13312: 9b0b ldr r3, [sp, #44] ; 0x2c
13314: 003a movs r2, r7
13316: 990c ldr r1, [sp, #48] ; 0x30
13318: 980d ldr r0, [sp, #52] ; 0x34
1331a: 4f59 ldr r7, [pc, #356] ; (13480 <_vsnprintf+0x63c>)
1331c: 47b8 blx r7
1331e: 0007 movs r7, r0
format++;
13320: 3401 adds r4, #1
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
13322: 46b1 mov r9, r6
break;
13324: e5a3 b.n 12e6e <_vsnprintf+0x2a>
out('%', buffer, idx++, maxlen);
13326: 1c7e adds r6, r7, #1
13328: 9b0b ldr r3, [sp, #44] ; 0x2c
1332a: 003a movs r2, r7
1332c: 990c ldr r1, [sp, #48] ; 0x30
1332e: 2025 movs r0, #37 ; 0x25
13330: 9d0d ldr r5, [sp, #52] ; 0x34
13332: 47a8 blx r5
format++;
13334: 3401 adds r4, #1
out('%', buffer, idx++, maxlen);
13336: 0037 movs r7, r6
break;
13338: e599 b.n 12e6e <_vsnprintf+0x2a>
default :
out(*format, buffer, idx++, maxlen);
1333a: 1c7e adds r6, r7, #1
1333c: 9b0b ldr r3, [sp, #44] ; 0x2c
1333e: 003a movs r2, r7
13340: 990c ldr r1, [sp, #48] ; 0x30
13342: 9d0d ldr r5, [sp, #52] ; 0x34
13344: 47a8 blx r5
format++;
13346: 3401 adds r4, #1
out(*format, buffer, idx++, maxlen);
13348: 0037 movs r7, r6
break;
1334a: e590 b.n 12e6e <_vsnprintf+0x2a>
1334c: 9b0d ldr r3, [sp, #52] ; 0x34
1334e: 4699 mov r9, r3
13350: 003a movs r2, r7
}
}
// termination
out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
13352: 990b ldr r1, [sp, #44] ; 0x2c
13354: 428f cmp r7, r1
13356: d300 bcc.n 1335a <_vsnprintf+0x516>
13358: 1e4a subs r2, r1, #1
1335a: 9b0b ldr r3, [sp, #44] ; 0x2c
1335c: 990c ldr r1, [sp, #48] ; 0x30
1335e: 2000 movs r0, #0
13360: 47c8 blx r9
// return written chars without terminating \0
return (int)idx;
}
13362: 0038 movs r0, r7
13364: b017 add sp, #92 ; 0x5c
13366: bc3c pop {r2, r3, r4, r5}
13368: 4690 mov r8, r2
1336a: 4699 mov r9, r3
1336c: 46a2 mov sl, r4
1336e: 46ab mov fp, r5
13370: bdf0 pop {r4, r5, r6, r7, pc}
flags |= FLAGS_UPPERCASE;
13372: 2320 movs r3, #32
13374: 4319 orrs r1, r3
base = 16U;
13376: 2210 movs r2, #16
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
13378: 230c movs r3, #12
1337a: 000d movs r5, r1
1337c: 439d bics r5, r3
1337e: 002b movs r3, r5
if(flags & FLAGS_PRECISION) {
13380: 054d lsls r5, r1, #21
13382: d508 bpl.n 13396 <_vsnprintf+0x552>
flags &= ~FLAGS_ZEROPAD;
13384: 230d movs r3, #13
13386: 4399 bics r1, r3
13388: 000b movs r3, r1
if((*format == 'i') || (*format == 'd')) {
1338a: 2869 cmp r0, #105 ; 0x69
1338c: d100 bne.n 13390 <_vsnprintf+0x54c>
1338e: e64c b.n 1302a <_vsnprintf+0x1e6>
13390: 2864 cmp r0, #100 ; 0x64
13392: d100 bne.n 13396 <_vsnprintf+0x552>
13394: e649 b.n 1302a <_vsnprintf+0x1e6>
if(flags & FLAGS_LONG_LONG) {
13396: 0599 lsls r1, r3, #22
13398: d500 bpl.n 1339c <_vsnprintf+0x558>
1339a: e6c1 b.n 13120 <_vsnprintf+0x2dc>
else if(flags & FLAGS_LONG) {
1339c: 05d9 lsls r1, r3, #23
1339e: d500 bpl.n 133a2 <_vsnprintf+0x55e>
133a0: e6d9 b.n 13156 <_vsnprintf+0x312>
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
133a2: 0659 lsls r1, r3, #25
133a4: d500 bpl.n 133a8 <_vsnprintf+0x564>
133a6: e6ec b.n 13182 <_vsnprintf+0x33e>
133a8: 0619 lsls r1, r3, #24
133aa: d400 bmi.n 133ae <_vsnprintf+0x56a>
133ac: e6ef b.n 1318e <_vsnprintf+0x34a>
133ae: 4649 mov r1, r9
133b0: 8809 ldrh r1, [r1, #0]
133b2: 2004 movs r0, #4
133b4: 4684 mov ip, r0
133b6: 44e1 add r9, ip
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
133b8: 9305 str r3, [sp, #20]
133ba: 9604 str r6, [sp, #16]
133bc: 4653 mov r3, sl
133be: 9303 str r3, [sp, #12]
133c0: 9202 str r2, [sp, #8]
133c2: 2300 movs r3, #0
133c4: 9301 str r3, [sp, #4]
133c6: 9100 str r1, [sp, #0]
133c8: 9b0b ldr r3, [sp, #44] ; 0x2c
133ca: 003a movs r2, r7
133cc: 990c ldr r1, [sp, #48] ; 0x30
133ce: 980d ldr r0, [sp, #52] ; 0x34
133d0: 4e2b ldr r6, [pc, #172] ; (13480 <_vsnprintf+0x63c>)
133d2: 47b0 blx r6
133d4: 0007 movs r7, r0
format++;
133d6: 3401 adds r4, #1
break;
133d8: e549 b.n 12e6e <_vsnprintf+0x2a>
if(flags & FLAGS_PRECISION) {
133da: 054a lsls r2, r1, #21
133dc: d440 bmi.n 13460 <_vsnprintf+0x61c>
base = 10U;
133de: 220a movs r2, #10
133e0: e623 b.n 1302a <_vsnprintf+0x1e6>
out((char)va_arg(va, int), buffer, idx++, maxlen);
133e2: 464b mov r3, r9
133e4: 3304 adds r3, #4
133e6: 930e str r3, [sp, #56] ; 0x38
133e8: 1c7b adds r3, r7, #1
133ea: 4698 mov r8, r3
133ec: 464b mov r3, r9
133ee: 7818 ldrb r0, [r3, #0]
133f0: 9b0b ldr r3, [sp, #44] ; 0x2c
133f2: 003a movs r2, r7
133f4: 990c ldr r1, [sp, #48] ; 0x30
133f6: 9d0d ldr r5, [sp, #52] ; 0x34
133f8: 47a8 blx r5
while(l++ < width) {
133fa: 2e01 cmp r6, #1
133fc: d800 bhi.n 13400 <_vsnprintf+0x5bc>
133fe: e6fc b.n 131fa <_vsnprintf+0x3b6>
13400: 19f3 adds r3, r6, r7
13402: 4642 mov r2, r8
13404: 46b0 mov r8, r6
13406: 46a1 mov r9, r4
13408: 9e0d ldr r6, [sp, #52] ; 0x34
1340a: 001d movs r5, r3
out(' ', buffer, idx++, maxlen);
1340c: 1c54 adds r4, r2, #1
1340e: 9b0b ldr r3, [sp, #44] ; 0x2c
13410: 990c ldr r1, [sp, #48] ; 0x30
13412: 2020 movs r0, #32
13414: 47b0 blx r6
13416: 0022 movs r2, r4
while(l++ < width) {
13418: 42a5 cmp r5, r4
1341a: d1f7 bne.n 1340c <_vsnprintf+0x5c8>
1341c: 464c mov r4, r9
1341e: 960d str r6, [sp, #52] ; 0x34
13420: 4646 mov r6, r8
13422: 19bf adds r7, r7, r6
out((char)va_arg(va, int), buffer, idx++, maxlen);
13424: 9b0e ldr r3, [sp, #56] ; 0x38
13426: 4699 mov r9, r3
13428: e6e5 b.n 131f6 <_vsnprintf+0x3b2>
while(l++ < width) {
1342a: 003e movs r6, r7
1342c: e6d7 b.n 131de <_vsnprintf+0x39a>
while(l++ < width) {
1342e: 930f str r3, [sp, #60] ; 0x3c
13430: 003a movs r2, r7
13432: e72f b.n 13294 <_vsnprintf+0x450>
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
13434: 003a movs r2, r7
13436: 2800 cmp r0, #0
13438: d000 beq.n 1343c <_vsnprintf+0x5f8>
1343a: e730 b.n 1329e <_vsnprintf+0x45a>
while(l++ < width) {
1343c: 9a0f ldr r2, [sp, #60] ; 0x3c
1343e: 4296 cmp r6, r2
13440: d800 bhi.n 13444 <_vsnprintf+0x600>
13442: e752 b.n 132ea <_vsnprintf+0x4a6>
13444: 19f6 adds r6, r6, r7
13446: 1ab6 subs r6, r6, r2
13448: 003a movs r2, r7
1344a: 9d0d ldr r5, [sp, #52] ; 0x34
out(' ', buffer, idx++, maxlen);
1344c: 1c57 adds r7, r2, #1
1344e: 9b0b ldr r3, [sp, #44] ; 0x2c
13450: 990c ldr r1, [sp, #48] ; 0x30
13452: 2020 movs r0, #32
13454: 47a8 blx r5
13456: 003a movs r2, r7
while(l++ < width) {
13458: 42b7 cmp r7, r6
1345a: d1f7 bne.n 1344c <_vsnprintf+0x608>
1345c: 950d str r5, [sp, #52] ; 0x34
1345e: e744 b.n 132ea <_vsnprintf+0x4a6>
flags &= ~FLAGS_ZEROPAD;
13460: 2311 movs r3, #17
13462: 4399 bics r1, r3
13464: 000b movs r3, r1
base = 10U;
13466: 220a movs r2, #10
13468: e5df b.n 1302a <_vsnprintf+0x1e6>
flags &= ~FLAGS_ZEROPAD;
1346a: 2311 movs r3, #17
1346c: 4399 bics r1, r3
1346e: 000b movs r3, r1
base = 10U;
13470: 220a movs r2, #10
13472: e5da b.n 1302a <_vsnprintf+0x1e6>
base = 16U;
13474: 2210 movs r2, #16
13476: e77f b.n 13378 <_vsnprintf+0x534>
base = 8U;
13478: 2208 movs r2, #8
1347a: e77d b.n 13378 <_vsnprintf+0x534>
base = 2U;
1347c: 2202 movs r2, #2
1347e: e77b b.n 13378 <_vsnprintf+0x534>
13480: 00012c9d .word 0x00012c9d
00013484 <lv_vsnprintf>:
va_end(va);
return ret;
}
int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va)
{
13484: b510 push {r4, lr}
13486: b082 sub sp, #8
return _vsnprintf(_out_buffer, buffer, count, format, va);
13488: 9300 str r3, [sp, #0]
1348a: 0013 movs r3, r2
1348c: 000a movs r2, r1
1348e: 0001 movs r1, r0
13490: 4802 ldr r0, [pc, #8] ; (1349c <lv_vsnprintf+0x18>)
13492: 4c03 ldr r4, [pc, #12] ; (134a0 <lv_vsnprintf+0x1c>)
13494: 47a0 blx r4
}
13496: b002 add sp, #8
13498: bd10 pop {r4, pc}
1349a: 46c0 nop ; (mov r8, r8)
1349c: 00012ac1 .word 0x00012ac1
134a0: 00012e45 .word 0x00012e45
000134a4 <_lv_task_core_init>:
/**
* Init the lv_task module
*/
void _lv_task_core_init(void)
{
134a4: b510 push {r4, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t));
134a6: 2118 movs r1, #24
134a8: 4804 ldr r0, [pc, #16] ; (134bc <_lv_task_core_init+0x18>)
134aa: 4b05 ldr r3, [pc, #20] ; (134c0 <_lv_task_core_init+0x1c>)
134ac: 4798 blx r3
task_list_changed = false;
134ae: 2200 movs r2, #0
134b0: 4b04 ldr r3, [pc, #16] ; (134c4 <_lv_task_core_init+0x20>)
134b2: 701a strb r2, [r3, #0]
* Enable or disable the whole lv_task handling
* @param en: true: lv_task handling is running, false: lv_task handling is suspended
*/
void lv_task_enable(bool en)
{
lv_task_run = en;
134b4: 3201 adds r2, #1
134b6: 4b04 ldr r3, [pc, #16] ; (134c8 <_lv_task_core_init+0x24>)
134b8: 701a strb r2, [r3, #0]
}
134ba: bd10 pop {r4, pc}
134bc: 20004d08 .word 0x20004d08
134c0: 00011dd1 .word 0x00011dd1
134c4: 20004c3f .word 0x20004c3f
134c8: 20004c3c .word 0x20004c3c
000134cc <lv_task_create_basic>:
{
134cc: b570 push {r4, r5, r6, lr}
134ce: b082 sub sp, #8
tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
134d0: 4839 ldr r0, [pc, #228] ; (135b8 <lv_task_create_basic+0xec>)
134d2: 4b3a ldr r3, [pc, #232] ; (135bc <lv_task_create_basic+0xf0>)
134d4: 4798 blx r3
134d6: 1e04 subs r4, r0, #0
if(NULL == tmp) {
134d8: d01f beq.n 1351a <lv_task_create_basic+0x4e>
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
134da: 4d39 ldr r5, [pc, #228] ; (135c0 <lv_task_create_basic+0xf4>)
if(tmp->prio <= DEF_PRIO) {
134dc: 7d23 ldrb r3, [r4, #20]
134de: 075b lsls r3, r3, #29
134e0: 0f5b lsrs r3, r3, #29
134e2: 2b03 cmp r3, #3
134e4: dd31 ble.n 1354a <lv_task_create_basic+0x7e>
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
134e6: 0021 movs r1, r4
134e8: 4833 ldr r0, [pc, #204] ; (135b8 <lv_task_create_basic+0xec>)
134ea: 47a8 blx r5
134ec: 1e04 subs r4, r0, #0
} while(tmp != NULL);
134ee: d1f5 bne.n 134dc <lv_task_create_basic+0x10>
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
134f0: 4831 ldr r0, [pc, #196] ; (135b8 <lv_task_create_basic+0xec>)
134f2: 4b34 ldr r3, [pc, #208] ; (135c4 <lv_task_create_basic+0xf8>)
134f4: 4798 blx r3
134f6: 0005 movs r5, r0
LV_ASSERT_MEM(new_task);
134f8: 4b33 ldr r3, [pc, #204] ; (135c8 <lv_task_create_basic+0xfc>)
134fa: 4798 blx r3
134fc: 2800 cmp r0, #0
134fe: d158 bne.n 135b2 <lv_task_create_basic+0xe6>
13500: 4b32 ldr r3, [pc, #200] ; (135cc <lv_task_create_basic+0x100>)
13502: 9300 str r3, [sp, #0]
13504: 22e5 movs r2, #229 ; 0xe5
13506: 4932 ldr r1, [pc, #200] ; (135d0 <lv_task_create_basic+0x104>)
13508: 3003 adds r0, #3
1350a: 4c32 ldr r4, [pc, #200] ; (135d4 <lv_task_create_basic+0x108>)
1350c: 47a0 blx r4
1350e: 002a movs r2, r5
13510: 2300 movs r3, #0
13512: 4831 ldr r0, [pc, #196] ; (135d8 <lv_task_create_basic+0x10c>)
13514: 4931 ldr r1, [pc, #196] ; (135dc <lv_task_create_basic+0x110>)
13516: 4788 blx r1
13518: e7fe b.n 13518 <lv_task_create_basic+0x4c>
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
1351a: 4827 ldr r0, [pc, #156] ; (135b8 <lv_task_create_basic+0xec>)
1351c: 4b30 ldr r3, [pc, #192] ; (135e0 <lv_task_create_basic+0x114>)
1351e: 4798 blx r3
13520: 0005 movs r5, r0
LV_ASSERT_MEM(new_task);
13522: 4b29 ldr r3, [pc, #164] ; (135c8 <lv_task_create_basic+0xfc>)
13524: 4798 blx r3
13526: 2800 cmp r0, #0
13528: d10c bne.n 13544 <lv_task_create_basic+0x78>
1352a: 4b28 ldr r3, [pc, #160] ; (135cc <lv_task_create_basic+0x100>)
1352c: 9300 str r3, [sp, #0]
1352e: 22d3 movs r2, #211 ; 0xd3
13530: 4927 ldr r1, [pc, #156] ; (135d0 <lv_task_create_basic+0x104>)
13532: 3003 adds r0, #3
13534: 4c27 ldr r4, [pc, #156] ; (135d4 <lv_task_create_basic+0x108>)
13536: 47a0 blx r4
13538: 002a movs r2, r5
1353a: 2300 movs r3, #0
1353c: 4826 ldr r0, [pc, #152] ; (135d8 <lv_task_create_basic+0x10c>)
1353e: 4927 ldr r1, [pc, #156] ; (135dc <lv_task_create_basic+0x110>)
13540: 4788 blx r1
13542: e7fe b.n 13542 <lv_task_create_basic+0x76>
if(new_task == NULL) return NULL;
13544: 2d00 cmp r5, #0
13546: d10d bne.n 13564 <lv_task_create_basic+0x98>
13548: e023 b.n 13592 <lv_task_create_basic+0xc6>
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
1354a: 0021 movs r1, r4
1354c: 481a ldr r0, [pc, #104] ; (135b8 <lv_task_create_basic+0xec>)
1354e: 4b25 ldr r3, [pc, #148] ; (135e4 <lv_task_create_basic+0x118>)
13550: 4798 blx r3
13552: 0005 movs r5, r0
LV_ASSERT_MEM(new_task);
13554: 4b1c ldr r3, [pc, #112] ; (135c8 <lv_task_create_basic+0xfc>)
13556: 4798 blx r3
13558: 2800 cmp r0, #0
1355a: d01d beq.n 13598 <lv_task_create_basic+0xcc>
if(new_task == NULL) return NULL;
1355c: 2d00 cmp r5, #0
1355e: d018 beq.n 13592 <lv_task_create_basic+0xc6>
if(tmp == NULL) {
13560: 2c00 cmp r4, #0
13562: d0c5 beq.n 134f0 <lv_task_create_basic+0x24>
task_list_changed = true;
13564: 2401 movs r4, #1
13566: 4b20 ldr r3, [pc, #128] ; (135e8 <lv_task_create_basic+0x11c>)
13568: 701c strb r4, [r3, #0]
new_task->period = DEF_PERIOD;
1356a: 23fa movs r3, #250 ; 0xfa
1356c: 005b lsls r3, r3, #1
1356e: 602b str r3, [r5, #0]
new_task->task_cb = NULL;
13570: 2600 movs r6, #0
13572: 60ae str r6, [r5, #8]
new_task->prio = DEF_PRIO;
13574: 7d2b ldrb r3, [r5, #20]
13576: 2207 movs r2, #7
13578: 4393 bics r3, r2
1357a: 2203 movs r2, #3
1357c: 4313 orrs r3, r2
1357e: 752b strb r3, [r5, #20]
new_task->repeat_count = -1;
13580: 2301 movs r3, #1
13582: 425b negs r3, r3
13584: 612b str r3, [r5, #16]
new_task->last_run = lv_tick_get();
13586: 4b19 ldr r3, [pc, #100] ; (135ec <lv_task_create_basic+0x120>)
13588: 4798 blx r3
1358a: 6068 str r0, [r5, #4]
new_task->user_data = NULL;
1358c: 60ee str r6, [r5, #12]
task_created = true;
1358e: 4b18 ldr r3, [pc, #96] ; (135f0 <lv_task_create_basic+0x124>)
13590: 701c strb r4, [r3, #0]
}
13592: 0028 movs r0, r5
13594: b002 add sp, #8
13596: bd70 pop {r4, r5, r6, pc}
LV_ASSERT_MEM(new_task);
13598: 4b0c ldr r3, [pc, #48] ; (135cc <lv_task_create_basic+0x100>)
1359a: 9300 str r3, [sp, #0]
1359c: 22db movs r2, #219 ; 0xdb
1359e: 490c ldr r1, [pc, #48] ; (135d0 <lv_task_create_basic+0x104>)
135a0: 3003 adds r0, #3
135a2: 4c0c ldr r4, [pc, #48] ; (135d4 <lv_task_create_basic+0x108>)
135a4: 47a0 blx r4
135a6: 002a movs r2, r5
135a8: 2300 movs r3, #0
135aa: 480b ldr r0, [pc, #44] ; (135d8 <lv_task_create_basic+0x10c>)
135ac: 490b ldr r1, [pc, #44] ; (135dc <lv_task_create_basic+0x110>)
135ae: 4788 blx r1
135b0: e7fe b.n 135b0 <lv_task_create_basic+0xe4>
if(new_task == NULL) return NULL;
135b2: 2d00 cmp r5, #0
135b4: d1d6 bne.n 13564 <lv_task_create_basic+0x98>
135b6: e7ec b.n 13592 <lv_task_create_basic+0xc6>
135b8: 20004d08 .word 0x20004d08
135bc: 00011e85 .word 0x00011e85
135c0: 00011e9d .word 0x00011e9d
135c4: 00011e35 .word 0x00011e35
135c8: 000017ad .word 0x000017ad
135cc: 0002ac10 .word 0x0002ac10
135d0: 0002ac38 .word 0x0002ac38
135d4: 00012159 .word 0x00012159
135d8: 00025854 .word 0x00025854
135dc: 000017b5 .word 0x000017b5
135e0: 00011de5 .word 0x00011de5
135e4: 00011eed .word 0x00011eed
135e8: 20004c3f .word 0x20004c3f
135ec: 00010ef9 .word 0x00010ef9
135f0: 20004c3d .word 0x20004c3d
000135f4 <lv_task_del>:
{
135f4: b510 push {r4, lr}
135f6: 0004 movs r4, r0
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
135f8: 0001 movs r1, r0
135fa: 4809 ldr r0, [pc, #36] ; (13620 <lv_task_del+0x2c>)
135fc: 4b09 ldr r3, [pc, #36] ; (13624 <lv_task_del+0x30>)
135fe: 4798 blx r3
task_list_changed = true;
13600: 2201 movs r2, #1
13602: 4b09 ldr r3, [pc, #36] ; (13628 <lv_task_del+0x34>)
13604: 701a strb r2, [r3, #0]
lv_mem_free(task);
13606: 0020 movs r0, r4
13608: 4b08 ldr r3, [pc, #32] ; (1362c <lv_task_del+0x38>)
1360a: 4798 blx r3
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
1360c: 4b08 ldr r3, [pc, #32] ; (13630 <lv_task_del+0x3c>)
1360e: 681b ldr r3, [r3, #0]
13610: 429c cmp r4, r3
13612: d000 beq.n 13616 <lv_task_del+0x22>
}
13614: bd10 pop {r4, pc}
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
13616: 2201 movs r2, #1
13618: 4b06 ldr r3, [pc, #24] ; (13634 <lv_task_del+0x40>)
1361a: 701a strb r2, [r3, #0]
}
1361c: e7fa b.n 13614 <lv_task_del+0x20>
1361e: 46c0 nop ; (mov r8, r8)
13620: 20004d08 .word 0x20004d08
13624: 00011f6d .word 0x00011f6d
13628: 20004c3f .word 0x20004c3f
1362c: 000123c9 .word 0x000123c9
13630: 20004dd4 .word 0x20004dd4
13634: 20004c3e .word 0x20004c3e
00013638 <lv_task_exec>:
* Execute task if its the priority is appropriate
* @param task pointer to lv_task
* @return true: execute, false: not executed
*/
static bool lv_task_exec(lv_task_t * task)
{
13638: b510 push {r4, lr}
1363a: 0004 movs r4, r0
* @return the time remaining, or 0 if it needs to be run again
*/
static uint32_t lv_task_time_remaining(lv_task_t * task)
{
/*Check if at least 'period' time elapsed*/
uint32_t elp = lv_tick_elaps(task->last_run);
1363c: 6840 ldr r0, [r0, #4]
1363e: 4b13 ldr r3, [pc, #76] ; (1368c <lv_task_exec+0x54>)
13640: 4798 blx r3
bool exec = false;
13642: 2300 movs r3, #0
if(elp >= task->period)
13644: 6822 ldr r2, [r4, #0]
13646: 4290 cmp r0, r2
13648: d201 bcs.n 1364e <lv_task_exec+0x16>
}
1364a: 0018 movs r0, r3
1364c: bd10 pop {r4, pc}
task->last_run = lv_tick_get();
1364e: 4b10 ldr r3, [pc, #64] ; (13690 <lv_task_exec+0x58>)
13650: 4798 blx r3
13652: 6060 str r0, [r4, #4]
task_deleted = false;
13654: 2300 movs r3, #0
13656: 4a0f ldr r2, [pc, #60] ; (13694 <lv_task_exec+0x5c>)
13658: 7013 strb r3, [r2, #0]
task_created = false;
1365a: 4a0f ldr r2, [pc, #60] ; (13698 <lv_task_exec+0x60>)
1365c: 7013 strb r3, [r2, #0]
if(task->task_cb) task->task_cb(task);
1365e: 68a3 ldr r3, [r4, #8]
13660: 2b00 cmp r3, #0
13662: d005 beq.n 13670 <lv_task_exec+0x38>
13664: 0020 movs r0, r4
13666: 4798 blx r3
if(task_deleted == false) { /*The task might be deleted by itself as well*/
13668: 4b0a ldr r3, [pc, #40] ; (13694 <lv_task_exec+0x5c>)
1366a: 781b ldrb r3, [r3, #0]
1366c: 2b00 cmp r3, #0
1366e: d1ec bne.n 1364a <lv_task_exec+0x12>
if(task->repeat_count > 0) {
13670: 6923 ldr r3, [r4, #16]
13672: 2b00 cmp r3, #0
13674: dd01 ble.n 1367a <lv_task_exec+0x42>
task->repeat_count--;
13676: 3b01 subs r3, #1
13678: 6123 str r3, [r4, #16]
exec = true;
1367a: 2301 movs r3, #1
if(task->repeat_count == 0) {
1367c: 6922 ldr r2, [r4, #16]
1367e: 2a00 cmp r2, #0
13680: d1e3 bne.n 1364a <lv_task_exec+0x12>
lv_task_del(task);
13682: 0020 movs r0, r4
13684: 4b05 ldr r3, [pc, #20] ; (1369c <lv_task_exec+0x64>)
13686: 4798 blx r3
exec = true;
13688: 2301 movs r3, #1
1368a: e7de b.n 1364a <lv_task_exec+0x12>
1368c: 00010f15 .word 0x00010f15
13690: 00010ef9 .word 0x00010ef9
13694: 20004c3e .word 0x20004c3e
13698: 20004c3d .word 0x20004c3d
1369c: 000135f5 .word 0x000135f5
000136a0 <lv_task_handler>:
{
136a0: b5f0 push {r4, r5, r6, r7, lr}
136a2: 46de mov lr, fp
136a4: 4657 mov r7, sl
136a6: 464e mov r6, r9
136a8: b5c0 push {r6, r7, lr}
if(already_running) return 1;
136aa: 4b66 ldr r3, [pc, #408] ; (13844 <lv_task_handler+0x1a4>)
136ac: 781b ldrb r3, [r3, #0]
136ae: 2001 movs r0, #1
136b0: 2b00 cmp r3, #0
136b2: d109 bne.n 136c8 <lv_task_handler+0x28>
already_running = true;
136b4: 2201 movs r2, #1
136b6: 4b63 ldr r3, [pc, #396] ; (13844 <lv_task_handler+0x1a4>)
136b8: 701a strb r2, [r3, #0]
if(lv_task_run == false) {
136ba: 4b63 ldr r3, [pc, #396] ; (13848 <lv_task_handler+0x1a8>)
136bc: 781b ldrb r3, [r3, #0]
136be: 2b00 cmp r3, #0
136c0: d107 bne.n 136d2 <lv_task_handler+0x32>
already_running = false; /*Release mutex*/
136c2: 2200 movs r2, #0
136c4: 4b5f ldr r3, [pc, #380] ; (13844 <lv_task_handler+0x1a4>)
136c6: 701a strb r2, [r3, #0]
}
136c8: bc1c pop {r2, r3, r4}
136ca: 4691 mov r9, r2
136cc: 469a mov sl, r3
136ce: 46a3 mov fp, r4
136d0: bdf0 pop {r4, r5, r6, r7, pc}
handler_start = lv_tick_get();
136d2: 4b5e ldr r3, [pc, #376] ; (1384c <lv_task_handler+0x1ac>)
136d4: 4798 blx r3
136d6: 4b5e ldr r3, [pc, #376] ; (13850 <lv_task_handler+0x1b0>)
136d8: 6018 str r0, [r3, #0]
lv_task_t * task_interrupter = NULL;
136da: 2400 movs r4, #0
task_deleted = false;
136dc: 4b5d ldr r3, [pc, #372] ; (13854 <lv_task_handler+0x1b4>)
136de: 469b mov fp, r3
136e0: 2300 movs r3, #0
136e2: 4699 mov r9, r3
task_created = false;
136e4: 4b5c ldr r3, [pc, #368] ; (13858 <lv_task_handler+0x1b8>)
136e6: 469a mov sl, r3
136e8: e084 b.n 137f4 <lv_task_handler+0x154>
LV_GC_ROOT(_lv_task_act) = next;
136ea: 4b5c ldr r3, [pc, #368] ; (1385c <lv_task_handler+0x1bc>)
136ec: 601d str r5, [r3, #0]
task_interrupter = NULL; /*From this point only task after the interrupter comes, so
136ee: 2400 movs r4, #0
continue; /*Load the next task*/
136f0: e00f b.n 13712 <lv_task_handler+0x72>
lv_task_exec(LV_GC_ROOT(_lv_task_act));
136f2: 4b5b ldr r3, [pc, #364] ; (13860 <lv_task_handler+0x1c0>)
136f4: 4798 blx r3
if(task_created || task_deleted) {
136f6: 4b58 ldr r3, [pc, #352] ; (13858 <lv_task_handler+0x1b8>)
136f8: 781b ldrb r3, [r3, #0]
136fa: 2b00 cmp r3, #0
136fc: d12f bne.n 1375e <lv_task_handler+0xbe>
136fe: 4b55 ldr r3, [pc, #340] ; (13854 <lv_task_handler+0x1b4>)
13700: 781b ldrb r3, [r3, #0]
13702: 2b00 cmp r3, #0
13704: d12b bne.n 1375e <lv_task_handler+0xbe>
if(task_list_changed) {
13706: 4b57 ldr r3, [pc, #348] ; (13864 <lv_task_handler+0x1c4>)
13708: 781b ldrb r3, [r3, #0]
1370a: 2b00 cmp r3, #0
1370c: d16e bne.n 137ec <lv_task_handler+0x14c>
LV_GC_ROOT(_lv_task_act) = next; /*Load the next task*/
1370e: 4b53 ldr r3, [pc, #332] ; (1385c <lv_task_handler+0x1bc>)
13710: 601d str r5, [r3, #0]
while(LV_GC_ROOT(_lv_task_act)) {
13712: 6831 ldr r1, [r6, #0]
13714: 2900 cmp r1, #0
13716: d022 beq.n 1375e <lv_task_handler+0xbe>
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
13718: 4853 ldr r0, [pc, #332] ; (13868 <lv_task_handler+0x1c8>)
1371a: 47b8 blx r7
1371c: 0005 movs r5, r0
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) {
1371e: 4b4f ldr r3, [pc, #316] ; (1385c <lv_task_handler+0x1bc>)
13720: 6818 ldr r0, [r3, #0]
13722: 7d02 ldrb r2, [r0, #20]
13724: 2307 movs r3, #7
13726: 4013 ands r3, r2
13728: d019 beq.n 1375e <lv_task_handler+0xbe>
if(LV_GC_ROOT(_lv_task_act) == task_interrupter) {
1372a: 4284 cmp r4, r0
1372c: d0dd beq.n 136ea <lv_task_handler+0x4a>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) {
1372e: 2b05 cmp r3, #5
13730: d0df beq.n 136f2 <lv_task_handler+0x52>
else if(task_interrupter) {
13732: 2c00 cmp r4, #0
13734: d04b beq.n 137ce <lv_task_handler+0x12e>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) {
13736: 7d02 ldrb r2, [r0, #20]
13738: 0752 lsls r2, r2, #29
1373a: 0f52 lsrs r2, r2, #29
1373c: 7d23 ldrb r3, [r4, #20]
1373e: 075b lsls r3, r3, #29
13740: 0f5b lsrs r3, r3, #29
13742: 429a cmp r2, r3
13744: ddd7 ble.n 136f6 <lv_task_handler+0x56>
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
13746: 4b46 ldr r3, [pc, #280] ; (13860 <lv_task_handler+0x1c0>)
13748: 4798 blx r3
1374a: 2800 cmp r0, #0
1374c: d0d3 beq.n 136f6 <lv_task_handler+0x56>
if(!task_created && !task_deleted) {
1374e: 4b42 ldr r3, [pc, #264] ; (13858 <lv_task_handler+0x1b8>)
13750: 781b ldrb r3, [r3, #0]
13752: 2b00 cmp r3, #0
13754: d103 bne.n 1375e <lv_task_handler+0xbe>
13756: 4b3f ldr r3, [pc, #252] ; (13854 <lv_task_handler+0x1b4>)
13758: 781b ldrb r3, [r3, #0]
1375a: 2b00 cmp r3, #0
1375c: d034 beq.n 137c8 <lv_task_handler+0x128>
busy_time += lv_tick_elaps(handler_start);
1375e: 4b3c ldr r3, [pc, #240] ; (13850 <lv_task_handler+0x1b0>)
13760: 6818 ldr r0, [r3, #0]
13762: 4c42 ldr r4, [pc, #264] ; (1386c <lv_task_handler+0x1cc>)
13764: 47a0 blx r4
13766: 4b42 ldr r3, [pc, #264] ; (13870 <lv_task_handler+0x1d0>)
13768: 681a ldr r2, [r3, #0]
1376a: 4694 mov ip, r2
1376c: 4460 add r0, ip
1376e: 6018 str r0, [r3, #0]
uint32_t idle_period_time = lv_tick_elaps(idle_period_start);
13770: 4b40 ldr r3, [pc, #256] ; (13874 <lv_task_handler+0x1d4>)
13772: 6818 ldr r0, [r3, #0]
13774: 47a0 blx r4
if(idle_period_time >= IDLE_MEAS_PERIOD) {
13776: 23f4 movs r3, #244 ; 0xf4
13778: 33ff adds r3, #255 ; 0xff
1377a: 4298 cmp r0, r3
1377c: d917 bls.n 137ae <lv_task_handler+0x10e>
idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/
1377e: 4b3c ldr r3, [pc, #240] ; (13870 <lv_task_handler+0x1d0>)
13780: 6818 ldr r0, [r3, #0]
13782: 2364 movs r3, #100 ; 0x64
13784: 4358 muls r0, r3
13786: 21fa movs r1, #250 ; 0xfa
13788: 0049 lsls r1, r1, #1
1378a: 4b3b ldr r3, [pc, #236] ; (13878 <lv_task_handler+0x1d8>)
1378c: 4798 blx r3
1378e: b2c0 uxtb r0, r0
idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/
13790: 2300 movs r3, #0
13792: 2864 cmp r0, #100 ; 0x64
13794: d802 bhi.n 1379c <lv_task_handler+0xfc>
13796: 2364 movs r3, #100 ; 0x64
13798: 1a1b subs r3, r3, r0
1379a: b2db uxtb r3, r3
1379c: 4a37 ldr r2, [pc, #220] ; (1387c <lv_task_handler+0x1dc>)
1379e: 7013 strb r3, [r2, #0]
busy_time = 0;
137a0: 2200 movs r2, #0
137a2: 4b33 ldr r3, [pc, #204] ; (13870 <lv_task_handler+0x1d0>)
137a4: 601a str r2, [r3, #0]
idle_period_start = lv_tick_get();
137a6: 4b29 ldr r3, [pc, #164] ; (1384c <lv_task_handler+0x1ac>)
137a8: 4798 blx r3
137aa: 4b32 ldr r3, [pc, #200] ; (13874 <lv_task_handler+0x1d4>)
137ac: 6018 str r0, [r3, #0]
time_till_next = LV_NO_TASK_READY;
137ae: 2201 movs r2, #1
137b0: 4252 negs r2, r2
137b2: 4b33 ldr r3, [pc, #204] ; (13880 <lv_task_handler+0x1e0>)
137b4: 601a str r2, [r3, #0]
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
137b6: 482c ldr r0, [pc, #176] ; (13868 <lv_task_handler+0x1c8>)
137b8: 4b32 ldr r3, [pc, #200] ; (13884 <lv_task_handler+0x1e4>)
137ba: 4798 blx r3
137bc: 1e04 subs r4, r0, #0
while(next) {
137be: d03b beq.n 13838 <lv_task_handler+0x198>
uint32_t elp = lv_tick_elaps(task->last_run);
137c0: 4d2a ldr r5, [pc, #168] ; (1386c <lv_task_handler+0x1cc>)
if(delay < time_till_next)
137c2: 4f2f ldr r7, [pc, #188] ; (13880 <lv_task_handler+0x1e0>)
time_till_next = delay;
137c4: 003e movs r6, r7
137c6: e028 b.n 1381a <lv_task_handler+0x17a>
task_interrupter = LV_GC_ROOT(_lv_task_act);
137c8: 4b24 ldr r3, [pc, #144] ; (1385c <lv_task_handler+0x1bc>)
137ca: 681c ldr r4, [r3, #0]
break;
137cc: e012 b.n 137f4 <lv_task_handler+0x154>
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
137ce: 4b24 ldr r3, [pc, #144] ; (13860 <lv_task_handler+0x1c0>)
137d0: 4798 blx r3
137d2: 2800 cmp r0, #0
137d4: d08f beq.n 136f6 <lv_task_handler+0x56>
if(!task_created && !task_deleted) {
137d6: 4b20 ldr r3, [pc, #128] ; (13858 <lv_task_handler+0x1b8>)
137d8: 781b ldrb r3, [r3, #0]
137da: 2b00 cmp r3, #0
137dc: d1bf bne.n 1375e <lv_task_handler+0xbe>
137de: 4b1d ldr r3, [pc, #116] ; (13854 <lv_task_handler+0x1b4>)
137e0: 781b ldrb r3, [r3, #0]
137e2: 2b00 cmp r3, #0
137e4: d1bb bne.n 1375e <lv_task_handler+0xbe>
task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */
137e6: 4b1d ldr r3, [pc, #116] ; (1385c <lv_task_handler+0x1bc>)
137e8: 681c ldr r4, [r3, #0]
break;
137ea: e003 b.n 137f4 <lv_task_handler+0x154>
task_list_changed = false;
137ec: 4b1d ldr r3, [pc, #116] ; (13864 <lv_task_handler+0x1c4>)
137ee: 2200 movs r2, #0
137f0: 701a strb r2, [r3, #0]
task_interrupter = NULL;
137f2: 2400 movs r4, #0
task_deleted = false;
137f4: 465b mov r3, fp
137f6: 464a mov r2, r9
137f8: 701a strb r2, [r3, #0]
task_created = false;
137fa: 4653 mov r3, sl
137fc: 701a strb r2, [r3, #0]
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
137fe: 481a ldr r0, [pc, #104] ; (13868 <lv_task_handler+0x1c8>)
13800: 4b20 ldr r3, [pc, #128] ; (13884 <lv_task_handler+0x1e4>)
13802: 4798 blx r3
13804: 4b15 ldr r3, [pc, #84] ; (1385c <lv_task_handler+0x1bc>)
13806: 6018 str r0, [r3, #0]
while(LV_GC_ROOT(_lv_task_act)) {
13808: 001e movs r6, r3
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
1380a: 4f1f ldr r7, [pc, #124] ; (13888 <lv_task_handler+0x1e8>)
while(LV_GC_ROOT(_lv_task_act)) {
1380c: e781 b.n 13712 <lv_task_handler+0x72>
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
1380e: 0021 movs r1, r4
13810: 4815 ldr r0, [pc, #84] ; (13868 <lv_task_handler+0x1c8>)
13812: 4b1d ldr r3, [pc, #116] ; (13888 <lv_task_handler+0x1e8>)
13814: 4798 blx r3
13816: 1e04 subs r4, r0, #0
while(next) {
13818: d00e beq.n 13838 <lv_task_handler+0x198>
if(next->prio != LV_TASK_PRIO_OFF) {
1381a: 7d23 ldrb r3, [r4, #20]
1381c: 075b lsls r3, r3, #29
1381e: d0f6 beq.n 1380e <lv_task_handler+0x16e>
uint32_t elp = lv_tick_elaps(task->last_run);
13820: 6860 ldr r0, [r4, #4]
13822: 47a8 blx r5
if(elp >= task->period)
13824: 6822 ldr r2, [r4, #0]
return 0;
13826: 2300 movs r3, #0
if(elp >= task->period)
13828: 4290 cmp r0, r2
1382a: d200 bcs.n 1382e <lv_task_handler+0x18e>
return task->period - elp;
1382c: 1a13 subs r3, r2, r0
if(delay < time_till_next)
1382e: 683a ldr r2, [r7, #0]
13830: 429a cmp r2, r3
13832: d9ec bls.n 1380e <lv_task_handler+0x16e>
time_till_next = delay;
13834: 6033 str r3, [r6, #0]
13836: e7ea b.n 1380e <lv_task_handler+0x16e>
already_running = false; /*Release the mutex*/
13838: 2200 movs r2, #0
1383a: 4b02 ldr r3, [pc, #8] ; (13844 <lv_task_handler+0x1a4>)
1383c: 701a strb r2, [r3, #0]
return time_till_next;
1383e: 4b10 ldr r3, [pc, #64] ; (13880 <lv_task_handler+0x1e0>)
13840: 6818 ldr r0, [r3, #0]
13842: e741 b.n 136c8 <lv_task_handler+0x28>
13844: 20004c28 .word 0x20004c28
13848: 20004c3c .word 0x20004c3c
1384c: 00010ef9 .word 0x00010ef9
13850: 20004c30 .word 0x20004c30
13854: 20004c3e .word 0x20004c3e
13858: 20004c3d .word 0x20004c3d
1385c: 20004dd4 .word 0x20004dd4
13860: 00013639 .word 0x00013639
13864: 20004c3f .word 0x20004c3f
13868: 20004d08 .word 0x20004d08
1386c: 00010f15 .word 0x00010f15
13870: 20004c2c .word 0x20004c2c
13874: 20004c38 .word 0x20004c38
13878: 0001c0a5 .word 0x0001c0a5
1387c: 20004c34 .word 0x20004c34
13880: 20004c40 .word 0x20004c40
13884: 00011e85 .word 0x00011e85
13888: 00011e9d .word 0x00011e9d
0001388c <lv_task_set_prio>:
{
1388c: b5f0 push {r4, r5, r6, r7, lr}
1388e: 46ce mov lr, r9
13890: b500 push {lr}
13892: 0005 movs r5, r0
13894: 4689 mov r9, r1
if(task->prio == prio) return;
13896: 000e movs r6, r1
13898: 7d03 ldrb r3, [r0, #20]
1389a: 075b lsls r3, r3, #29
1389c: 0f5b lsrs r3, r3, #29
1389e: 428b cmp r3, r1
138a0: d028 beq.n 138f4 <lv_task_set_prio+0x68>
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
138a2: 4819 ldr r0, [pc, #100] ; (13908 <lv_task_set_prio+0x7c>)
138a4: 4b19 ldr r3, [pc, #100] ; (1390c <lv_task_set_prio+0x80>)
138a6: 4798 blx r3
138a8: 1e04 subs r4, r0, #0
138aa: d026 beq.n 138fa <lv_task_set_prio+0x6e>
if(i->prio <= prio) {
138ac: 7d03 ldrb r3, [r0, #20]
138ae: 075b lsls r3, r3, #29
138b0: 0f5b lsrs r3, r3, #29
138b2: 429e cmp r6, r3
138b4: da0a bge.n 138cc <lv_task_set_prio+0x40>
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
138b6: 4f16 ldr r7, [pc, #88] ; (13910 <lv_task_set_prio+0x84>)
138b8: 0021 movs r1, r4
138ba: 4813 ldr r0, [pc, #76] ; (13908 <lv_task_set_prio+0x7c>)
138bc: 47b8 blx r7
138be: 1e04 subs r4, r0, #0
138c0: d01b beq.n 138fa <lv_task_set_prio+0x6e>
if(i->prio <= prio) {
138c2: 7d23 ldrb r3, [r4, #20]
138c4: 075b lsls r3, r3, #29
138c6: 0f5b lsrs r3, r3, #29
138c8: 429e cmp r6, r3
138ca: dbf5 blt.n 138b8 <lv_task_set_prio+0x2c>
if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i);
138cc: 42a5 cmp r5, r4
138ce: d006 beq.n 138de <lv_task_set_prio+0x52>
138d0: 0022 movs r2, r4
138d2: 0029 movs r1, r5
138d4: 480c ldr r0, [pc, #48] ; (13908 <lv_task_set_prio+0x7c>)
138d6: 4b0f ldr r3, [pc, #60] ; (13914 <lv_task_set_prio+0x88>)
138d8: 4798 blx r3
if(i == NULL) {
138da: 2c00 cmp r4, #0
138dc: d00d beq.n 138fa <lv_task_set_prio+0x6e>
task_list_changed = true;
138de: 2201 movs r2, #1
138e0: 4b0d ldr r3, [pc, #52] ; (13918 <lv_task_set_prio+0x8c>)
138e2: 701a strb r2, [r3, #0]
task->prio = prio;
138e4: 3206 adds r2, #6
138e6: 464b mov r3, r9
138e8: 401a ands r2, r3
138ea: 7d2b ldrb r3, [r5, #20]
138ec: 2107 movs r1, #7
138ee: 438b bics r3, r1
138f0: 4313 orrs r3, r2
138f2: 752b strb r3, [r5, #20]
}
138f4: bc04 pop {r2}
138f6: 4691 mov r9, r2
138f8: bdf0 pop {r4, r5, r6, r7, pc}
_lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL);
138fa: 2200 movs r2, #0
138fc: 0029 movs r1, r5
138fe: 4802 ldr r0, [pc, #8] ; (13908 <lv_task_set_prio+0x7c>)
13900: 4b04 ldr r3, [pc, #16] ; (13914 <lv_task_set_prio+0x88>)
13902: 4798 blx r3
13904: e7eb b.n 138de <lv_task_set_prio+0x52>
13906: 46c0 nop ; (mov r8, r8)
13908: 20004d08 .word 0x20004d08
1390c: 00011e85 .word 0x00011e85
13910: 00011e9d .word 0x00011e9d
13914: 00012079 .word 0x00012079
13918: 20004c3f .word 0x20004c3f
0001391c <lv_task_create>:
{
1391c: b5f0 push {r4, r5, r6, r7, lr}
1391e: b085 sub sp, #20
13920: 0006 movs r6, r0
13922: 000f movs r7, r1
13924: 9203 str r2, [sp, #12]
13926: 001d movs r5, r3
lv_task_t * new_task = lv_task_create_basic();
13928: 4b10 ldr r3, [pc, #64] ; (1396c <lv_task_create+0x50>)
1392a: 4798 blx r3
1392c: 0004 movs r4, r0
LV_ASSERT_MEM(new_task);
1392e: 4b10 ldr r3, [pc, #64] ; (13970 <lv_task_create+0x54>)
13930: 4798 blx r3
13932: 2800 cmp r0, #0
13934: d00b beq.n 1394e <lv_task_create+0x32>
if(new_task == NULL) return NULL;
13936: 2c00 cmp r4, #0
13938: d006 beq.n 13948 <lv_task_create+0x2c>
task->task_cb = task_cb;
1393a: 60a6 str r6, [r4, #8]
task->period = period;
1393c: 6027 str r7, [r4, #0]
lv_task_set_prio(new_task, prio);
1393e: 9903 ldr r1, [sp, #12]
13940: 0020 movs r0, r4
13942: 4b0c ldr r3, [pc, #48] ; (13974 <lv_task_create+0x58>)
13944: 4798 blx r3
new_task->user_data = user_data;
13946: 60e5 str r5, [r4, #12]
}
13948: 0020 movs r0, r4
1394a: b005 add sp, #20
1394c: bdf0 pop {r4, r5, r6, r7, pc}
LV_ASSERT_MEM(new_task);
1394e: 4b0a ldr r3, [pc, #40] ; (13978 <lv_task_create+0x5c>)
13950: 9300 str r3, [sp, #0]
13952: 2283 movs r2, #131 ; 0x83
13954: 0052 lsls r2, r2, #1
13956: 4909 ldr r1, [pc, #36] ; (1397c <lv_task_create+0x60>)
13958: 3003 adds r0, #3
1395a: 4d09 ldr r5, [pc, #36] ; (13980 <lv_task_create+0x64>)
1395c: 47a8 blx r5
1395e: 0022 movs r2, r4
13960: 2300 movs r3, #0
13962: 4808 ldr r0, [pc, #32] ; (13984 <lv_task_create+0x68>)
13964: 4908 ldr r1, [pc, #32] ; (13988 <lv_task_create+0x6c>)
13966: 4788 blx r1
13968: e7fe b.n 13968 <lv_task_create+0x4c>
1396a: 46c0 nop ; (mov r8, r8)
1396c: 000134cd .word 0x000134cd
13970: 000017ad .word 0x000017ad
13974: 0001388d .word 0x0001388d
13978: 0002ac28 .word 0x0002ac28
1397c: 0002ac38 .word 0x0002ac38
13980: 00012159 .word 0x00012159
13984: 00025854 .word 0x00025854
13988: 000017b5 .word 0x000017b5
0001398c <lv_task_ready>:
{
1398c: b510 push {r4, lr}
1398e: 0004 movs r4, r0
task->last_run = lv_tick_get() - task->period - 1;
13990: 4b03 ldr r3, [pc, #12] ; (139a0 <lv_task_ready+0x14>)
13992: 4798 blx r3
13994: 6823 ldr r3, [r4, #0]
13996: 43db mvns r3, r3
13998: 1818 adds r0, r3, r0
1399a: 6060 str r0, [r4, #4]
}
1399c: bd10 pop {r4, pc}
1399e: 46c0 nop ; (mov r8, r8)
139a0: 00010ef9 .word 0x00010ef9
000139a4 <lv_txt_utf8_size>:
* @param str pointer to a character in a string
* @return length of the UTF-8 character (1,2,3 or 4). O on invalid code
*/
static uint8_t lv_txt_utf8_size(const char * str)
{
if((str[0] & 0x80) == 0)
139a4: 7803 ldrb r3, [r0, #0]
139a6: b25a sxtb r2, r3
return 1;
139a8: 2001 movs r0, #1
if((str[0] & 0x80) == 0)
139aa: 2a00 cmp r2, #0
139ac: db00 blt.n 139b0 <lv_txt_utf8_size+0xc>
else if((str[0] & 0xF0) == 0xE0)
return 3;
else if((str[0] & 0xF8) == 0xF0)
return 4;
return 0; /*If the char was invalid tell it's 1 byte long*/
}
139ae: 4770 bx lr
else if((str[0] & 0xE0) == 0xC0)
139b0: 221f movs r2, #31
139b2: 0019 movs r1, r3
139b4: 4391 bics r1, r2
return 2;
139b6: 3001 adds r0, #1
else if((str[0] & 0xE0) == 0xC0)
139b8: 29c0 cmp r1, #192 ; 0xc0
139ba: d0f8 beq.n 139ae <lv_txt_utf8_size+0xa>
else if((str[0] & 0xF0) == 0xE0)
139bc: 220f movs r2, #15
139be: 0019 movs r1, r3
139c0: 4391 bics r1, r2
return 3;
139c2: 3001 adds r0, #1
else if((str[0] & 0xF0) == 0xE0)
139c4: 29e0 cmp r1, #224 ; 0xe0
139c6: d0f2 beq.n 139ae <lv_txt_utf8_size+0xa>
else if((str[0] & 0xF8) == 0xF0)
139c8: 2207 movs r2, #7
139ca: 4393 bics r3, r2
return 0; /*If the char was invalid tell it's 1 byte long*/
139cc: 3bf0 subs r3, #240 ; 0xf0
139ce: 4258 negs r0, r3
139d0: 4158 adcs r0, r3
139d2: 0080 lsls r0, r0, #2
139d4: e7eb b.n 139ae <lv_txt_utf8_size+0xa>
000139d6 <lv_txt_utf8_next>:
* 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)
{
139d6: b5f0 push {r4, r5, r6, r7, lr}
139d8: b083 sub sp, #12
* */
uint32_t result = 0;
/*Dummy 'i' pointer is required*/
uint32_t i_tmp = 0;
139da: 2300 movs r3, #0
139dc: 9301 str r3, [sp, #4]
if(i == NULL) i = &i_tmp;
139de: 2900 cmp r1, #0
139e0: d00a beq.n 139f8 <lv_txt_utf8_next+0x22>
/*Normal ASCII*/
if((txt[*i] & 0x80) == 0) {
139e2: 680b ldr r3, [r1, #0]
139e4: 5cc2 ldrb r2, [r0, r3]
139e6: b254 sxtb r4, r2
139e8: 2c00 cmp r4, #0
139ea: db07 blt.n 139fc <lv_txt_utf8_next+0x26>
result = txt[*i];
139ec: 0014 movs r4, r2
(*i)++;
139ee: 3301 adds r3, #1
139f0: 600b str r3, [r1, #0]
else {
(*i)++; /*Not UTF-8 char. Go the next.*/
}
}
return result;
}
139f2: 0020 movs r0, r4
139f4: b003 add sp, #12
139f6: bdf0 pop {r4, r5, r6, r7, pc}
if(i == NULL) i = &i_tmp;
139f8: a901 add r1, sp, #4
139fa: e7f2 b.n 139e2 <lv_txt_utf8_next+0xc>
if((txt[*i] & 0xE0) == 0xC0) {
139fc: 241f movs r4, #31
139fe: 0015 movs r5, r2
13a00: 43a5 bics r5, r4
13a02: 2dc0 cmp r5, #192 ; 0xc0
13a04: d00d beq.n 13a22 <lv_txt_utf8_next+0x4c>
else if((txt[*i] & 0xF0) == 0xE0) {
13a06: 240f movs r4, #15
13a08: 0015 movs r5, r2
13a0a: 43a5 bics r5, r4
13a0c: 2de0 cmp r5, #224 ; 0xe0
13a0e: d01c beq.n 13a4a <lv_txt_utf8_next+0x74>
else if((txt[*i] & 0xF8) == 0xF0) {
13a10: 2407 movs r4, #7
13a12: 0015 movs r5, r2
13a14: 43a5 bics r5, r4
13a16: 2df0 cmp r5, #240 ; 0xf0
13a18: d036 beq.n 13a88 <lv_txt_utf8_next+0xb2>
(*i)++; /*Not UTF-8 char. Go the next.*/
13a1a: 3301 adds r3, #1
13a1c: 600b str r3, [r1, #0]
uint32_t result = 0;
13a1e: 2400 movs r4, #0
13a20: e7e7 b.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13a22: 1c5c adds r4, r3, #1
13a24: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13a26: 5d05 ldrb r5, [r0, r4]
13a28: 203f movs r0, #63 ; 0x3f
13a2a: 002c movs r4, r5
13a2c: 4384 bics r4, r0
13a2e: 0020 movs r0, r4
13a30: 2400 movs r4, #0
13a32: 2880 cmp r0, #128 ; 0x80
13a34: d1dd bne.n 139f2 <lv_txt_utf8_next+0x1c>
result = (uint32_t)(txt[*i] & 0x1F) << 6;
13a36: 0192 lsls r2, r2, #6
13a38: 24f8 movs r4, #248 ; 0xf8
13a3a: 00e4 lsls r4, r4, #3
13a3c: 4022 ands r2, r4
result += (txt[*i] & 0x3F);
13a3e: 243f movs r4, #63 ; 0x3f
13a40: 402c ands r4, r5
13a42: 18a4 adds r4, r4, r2
(*i)++;
13a44: 3302 adds r3, #2
13a46: 600b str r3, [r1, #0]
13a48: e7d3 b.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13a4a: 1c5c adds r4, r3, #1
13a4c: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13a4e: 5d05 ldrb r5, [r0, r4]
13a50: 243f movs r4, #63 ; 0x3f
13a52: 002e movs r6, r5
13a54: 43a6 bics r6, r4
13a56: 2400 movs r4, #0
13a58: 2e80 cmp r6, #128 ; 0x80
13a5a: d1ca bne.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13a5c: 1c9c adds r4, r3, #2
13a5e: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13a60: 5d00 ldrb r0, [r0, r4]
13a62: 243f movs r4, #63 ; 0x3f
13a64: 0006 movs r6, r0
13a66: 43a6 bics r6, r4
13a68: 2400 movs r4, #0
13a6a: 2e80 cmp r6, #128 ; 0x80
13a6c: d1c1 bne.n 139f2 <lv_txt_utf8_next+0x1c>
result = (uint32_t)(txt[*i] & 0x0F) << 12;
13a6e: 0714 lsls r4, r2, #28
13a70: 0c24 lsrs r4, r4, #16
result += (txt[*i] & 0x3F);
13a72: 223f movs r2, #63 ; 0x3f
13a74: 4010 ands r0, r2
13a76: 1824 adds r4, r4, r0
result += (uint32_t)(txt[*i] & 0x3F) << 6;
13a78: 01ad lsls r5, r5, #6
13a7a: 20fc movs r0, #252 ; 0xfc
13a7c: 0100 lsls r0, r0, #4
13a7e: 4005 ands r5, r0
result += (txt[*i] & 0x3F);
13a80: 192c adds r4, r5, r4
(*i)++;
13a82: 3303 adds r3, #3
13a84: 600b str r3, [r1, #0]
13a86: e7b4 b.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13a88: 1c5c adds r4, r3, #1
13a8a: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13a8c: 5d05 ldrb r5, [r0, r4]
13a8e: 243f movs r4, #63 ; 0x3f
13a90: 002e movs r6, r5
13a92: 43a6 bics r6, r4
13a94: 2400 movs r4, #0
13a96: 2e80 cmp r6, #128 ; 0x80
13a98: d1ab bne.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13a9a: 1c9c adds r4, r3, #2
13a9c: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13a9e: 5d06 ldrb r6, [r0, r4]
13aa0: 243f movs r4, #63 ; 0x3f
13aa2: 0037 movs r7, r6
13aa4: 43a7 bics r7, r4
13aa6: 2400 movs r4, #0
13aa8: 2f80 cmp r7, #128 ; 0x80
13aaa: d1a2 bne.n 139f2 <lv_txt_utf8_next+0x1c>
(*i)++;
13aac: 1cdc adds r4, r3, #3
13aae: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
13ab0: 5d00 ldrb r0, [r0, r4]
13ab2: 243f movs r4, #63 ; 0x3f
13ab4: 0007 movs r7, r0
13ab6: 43a7 bics r7, r4
13ab8: 2400 movs r4, #0
13aba: 2f80 cmp r7, #128 ; 0x80
13abc: d199 bne.n 139f2 <lv_txt_utf8_next+0x1c>
result = (uint32_t)(txt[*i] & 0x07) << 18;
13abe: 0492 lsls r2, r2, #18
13ac0: 24e0 movs r4, #224 ; 0xe0
13ac2: 0364 lsls r4, r4, #13
13ac4: 4022 ands r2, r4
result += (uint32_t)(txt[*i] & 0x3F) << 12;
13ac6: 032c lsls r4, r5, #12
13ac8: 25fc movs r5, #252 ; 0xfc
13aca: 02ad lsls r5, r5, #10
13acc: 402c ands r4, r5
13ace: 4322 orrs r2, r4
result += (uint32_t)(txt[*i] & 0x3F) << 6;
13ad0: 01b4 lsls r4, r6, #6
13ad2: 26fc movs r6, #252 ; 0xfc
13ad4: 0136 lsls r6, r6, #4
13ad6: 4034 ands r4, r6
result += txt[*i] & 0x3F;
13ad8: 253f movs r5, #63 ; 0x3f
13ada: 4028 ands r0, r5
13adc: 1824 adds r4, r4, r0
13ade: 18a4 adds r4, r4, r2
(*i)++;
13ae0: 3304 adds r3, #4
13ae2: 600b str r3, [r1, #0]
13ae4: e785 b.n 139f2 <lv_txt_utf8_next+0x1c>
...
00013ae8 <lv_txt_utf8_prev>:
* @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)
{
13ae8: b5f0 push {r4, r5, r6, r7, lr}
13aea: b083 sub sp, #12
13aec: 0006 movs r6, r0
13aee: 000d movs r5, r1
uint8_t c_size;
uint8_t cnt = 0;
/*Try to find a !0 long UTF-8 char by stepping one character back*/
(*i)--;
13af0: 680b ldr r3, [r1, #0]
13af2: 3b01 subs r3, #1
13af4: 600b str r3, [r1, #0]
13af6: 2404 movs r4, #4
do {
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
c_size = _lv_txt_encoded_size(&txt[*i]);
13af8: 4f0e ldr r7, [pc, #56] ; (13b34 <lv_txt_utf8_prev+0x4c>)
13afa: e005 b.n 13b08 <lv_txt_utf8_prev+0x20>
if(c_size == 0) {
if(*i != 0)
(*i)--;
13afc: 3801 subs r0, #1
13afe: 6028 str r0, [r5, #0]
13b00: 3c01 subs r4, #1
13b02: b2e4 uxtb r4, r4
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
13b04: 2c00 cmp r4, #0
13b06: d009 beq.n 13b1c <lv_txt_utf8_prev+0x34>
c_size = _lv_txt_encoded_size(&txt[*i]);
13b08: 682b ldr r3, [r5, #0]
13b0a: 18f0 adds r0, r6, r3
13b0c: 683b ldr r3, [r7, #0]
13b0e: 4798 blx r3
if(c_size == 0) {
13b10: 2800 cmp r0, #0
13b12: d105 bne.n 13b20 <lv_txt_utf8_prev+0x38>
if(*i != 0)
13b14: 6828 ldr r0, [r5, #0]
13b16: 2800 cmp r0, #0
13b18: d1f0 bne.n 13afc <lv_txt_utf8_prev+0x14>
13b1a: e008 b.n 13b2e <lv_txt_utf8_prev+0x46>
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
13b1c: 2000 movs r0, #0
13b1e: e006 b.n 13b2e <lv_txt_utf8_prev+0x46>
return 0;
}
cnt++;
} while(c_size == 0);
uint32_t i_tmp = *i;
13b20: 682b ldr r3, [r5, #0]
13b22: 9301 str r3, [sp, #4]
uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/
13b24: 4b04 ldr r3, [pc, #16] ; (13b38 <lv_txt_utf8_prev+0x50>)
13b26: 681b ldr r3, [r3, #0]
13b28: a901 add r1, sp, #4
13b2a: 0030 movs r0, r6
13b2c: 4798 blx r3
return letter;
}
13b2e: b003 add sp, #12
13b30: bdf0 pop {r4, r5, r6, r7, pc}
13b32: 46c0 nop ; (mov r8, r8)
13b34: 20000064 .word 0x20000064
13b38: 2000005c .word 0x2000005c
00013b3c <lv_txt_utf8_get_byte_id>:
* @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)
{
13b3c: b5f0 push {r4, r5, r6, r7, lr}
13b3e: 46c6 mov lr, r8
13b40: b500 push {lr}
13b42: 4680 mov r8, r0
13b44: 1e0f subs r7, r1, #0
uint32_t i;
uint32_t byte_cnt = 0;
for(i = 0; i < utf8_id; i++) {
13b46: d00f beq.n 13b68 <lv_txt_utf8_get_byte_id+0x2c>
13b48: 2400 movs r4, #0
13b4a: 2600 movs r6, #0
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
13b4c: 4d09 ldr r5, [pc, #36] ; (13b74 <lv_txt_utf8_get_byte_id+0x38>)
13b4e: e003 b.n 13b58 <lv_txt_utf8_get_byte_id+0x1c>
byte_cnt += c_size > 0 ? c_size : 1;
13b50: 1824 adds r4, r4, r0
for(i = 0; i < utf8_id; i++) {
13b52: 3601 adds r6, #1
13b54: 42b7 cmp r7, r6
13b56: d008 beq.n 13b6a <lv_txt_utf8_get_byte_id+0x2e>
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
13b58: 4643 mov r3, r8
13b5a: 1918 adds r0, r3, r4
13b5c: 682b ldr r3, [r5, #0]
13b5e: 4798 blx r3
byte_cnt += c_size > 0 ? c_size : 1;
13b60: 2800 cmp r0, #0
13b62: d1f5 bne.n 13b50 <lv_txt_utf8_get_byte_id+0x14>
13b64: 3001 adds r0, #1
13b66: e7f3 b.n 13b50 <lv_txt_utf8_get_byte_id+0x14>
uint32_t byte_cnt = 0;
13b68: 000c movs r4, r1
}
return byte_cnt;
}
13b6a: 0020 movs r0, r4
13b6c: bc04 pop {r2}
13b6e: 4690 mov r8, r2
13b70: bdf0 pop {r4, r5, r6, r7, pc}
13b72: 46c0 nop ; (mov r8, r8)
13b74: 20000064 .word 0x20000064
00013b78 <lv_txt_utf8_get_char_id>:
* @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)
{
13b78: b5f0 push {r4, r5, r6, r7, lr}
13b7a: b083 sub sp, #12
13b7c: 0006 movs r6, r0
13b7e: 000d movs r5, r1
uint32_t i = 0;
13b80: 2300 movs r3, #0
13b82: 9301 str r3, [sp, #4]
uint32_t char_cnt = 0;
while(i < byte_id) {
13b84: 2900 cmp r1, #0
13b86: d00c beq.n 13ba2 <lv_txt_utf8_get_char_id+0x2a>
13b88: 2400 movs r4, #0
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
13b8a: 4f07 ldr r7, [pc, #28] ; (13ba8 <lv_txt_utf8_get_char_id+0x30>)
13b8c: a901 add r1, sp, #4
13b8e: 0030 movs r0, r6
13b90: 683b ldr r3, [r7, #0]
13b92: 4798 blx r3
char_cnt++;
13b94: 3401 adds r4, #1
while(i < byte_id) {
13b96: 9b01 ldr r3, [sp, #4]
13b98: 42ab cmp r3, r5
13b9a: d3f7 bcc.n 13b8c <lv_txt_utf8_get_char_id+0x14>
}
return char_cnt;
}
13b9c: 0020 movs r0, r4
13b9e: b003 add sp, #12
13ba0: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t char_cnt = 0;
13ba2: 000c movs r4, r1
return char_cnt;
13ba4: e7fa b.n 13b9c <lv_txt_utf8_get_char_id+0x24>
13ba6: 46c0 nop ; (mov r8, r8)
13ba8: 2000005c .word 0x2000005c
00013bac <lv_txt_utf8_get_length>:
* 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)
{
13bac: b570 push {r4, r5, r6, lr}
13bae: b082 sub sp, #8
13bb0: 0004 movs r4, r0
uint32_t len = 0;
uint32_t i = 0;
13bb2: 2300 movs r3, #0
13bb4: 9301 str r3, [sp, #4]
while(txt[i] != '\0') {
13bb6: 7803 ldrb r3, [r0, #0]
13bb8: 2b00 cmp r3, #0
13bba: d00d beq.n 13bd8 <lv_txt_utf8_get_length+0x2c>
13bbc: 2500 movs r5, #0
_lv_txt_encoded_next(txt, &i);
13bbe: 4e07 ldr r6, [pc, #28] ; (13bdc <lv_txt_utf8_get_length+0x30>)
13bc0: a901 add r1, sp, #4
13bc2: 0020 movs r0, r4
13bc4: 6833 ldr r3, [r6, #0]
13bc6: 4798 blx r3
len++;
13bc8: 3501 adds r5, #1
while(txt[i] != '\0') {
13bca: 9b01 ldr r3, [sp, #4]
13bcc: 5ce3 ldrb r3, [r4, r3]
13bce: 2b00 cmp r3, #0
13bd0: d1f6 bne.n 13bc0 <lv_txt_utf8_get_length+0x14>
}
return len;
}
13bd2: 0028 movs r0, r5
13bd4: b002 add sp, #8
13bd6: bd70 pop {r4, r5, r6, pc}
uint32_t len = 0;
13bd8: 2500 movs r5, #0
return len;
13bda: e7fa b.n 13bd2 <lv_txt_utf8_get_length+0x26>
13bdc: 2000005c .word 0x2000005c
00013be0 <_lv_txt_is_cmd>:
if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) {
13be0: 2923 cmp r1, #35 ; 0x23
13be2: d005 beq.n 13bf0 <_lv_txt_is_cmd+0x10>
if(*state == LV_TXT_CMD_STATE_PAR) {
13be4: 7802 ldrb r2, [r0, #0]
bool ret = false;
13be6: 2300 movs r3, #0
if(*state == LV_TXT_CMD_STATE_PAR) {
13be8: 2a01 cmp r2, #1
13bea: d012 beq.n 13c12 <_lv_txt_is_cmd+0x32>
}
13bec: 0018 movs r0, r3
13bee: 4770 bx lr
if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/
13bf0: 7802 ldrb r2, [r0, #0]
13bf2: 2a00 cmp r2, #0
13bf4: d102 bne.n 13bfc <_lv_txt_is_cmd+0x1c>
*state = LV_TXT_CMD_STATE_PAR;
13bf6: 2301 movs r3, #1
13bf8: 7003 strb r3, [r0, #0]
13bfa: e7f7 b.n 13bec <_lv_txt_is_cmd+0xc>
else if(*state == LV_TXT_CMD_STATE_PAR) {
13bfc: 2a01 cmp r2, #1
13bfe: d005 beq.n 13c0c <_lv_txt_is_cmd+0x2c>
bool ret = false;
13c00: 2300 movs r3, #0
else if(*state == LV_TXT_CMD_STATE_IN) {
13c02: 2a02 cmp r2, #2
13c04: d1f2 bne.n 13bec <_lv_txt_is_cmd+0xc>
*state = LV_TXT_CMD_STATE_WAIT;
13c06: 7003 strb r3, [r0, #0]
ret = true;
13c08: 3301 adds r3, #1
13c0a: e7ef b.n 13bec <_lv_txt_is_cmd+0xc>
*state = LV_TXT_CMD_STATE_WAIT;
13c0c: 2300 movs r3, #0
13c0e: 7003 strb r3, [r0, #0]
13c10: e7ec b.n 13bec <_lv_txt_is_cmd+0xc>
ret = true;
13c12: 3301 adds r3, #1
if(c == ' ') {
13c14: 2920 cmp r1, #32
13c16: d1e9 bne.n 13bec <_lv_txt_is_cmd+0xc>
*state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/
13c18: 3301 adds r3, #1
13c1a: 7003 strb r3, [r0, #0]
ret = true;
13c1c: 3b01 subs r3, #1
13c1e: e7e5 b.n 13bec <_lv_txt_is_cmd+0xc>
00013c20 <_lv_txt_get_next_line>:
{
13c20: b5f0 push {r4, r5, r6, r7, lr}
13c22: 46de mov lr, fp
13c24: 4657 mov r7, sl
13c26: 464e mov r6, r9
13c28: 4645 mov r5, r8
13c2a: b5e0 push {r5, r6, r7, lr}
13c2c: b091 sub sp, #68 ; 0x44
13c2e: 9007 str r0, [sp, #28]
13c30: 9103 str r1, [sp, #12]
13c32: 4692 mov sl, r2
13c34: 9305 str r3, [sp, #20]
13c36: ab1a add r3, sp, #104 ; 0x68
13c38: 781b ldrb r3, [r3, #0]
13c3a: 001a movs r2, r3
13c3c: 930a str r3, [sp, #40] ; 0x28
if(txt == NULL) return 0;
13c3e: 2800 cmp r0, #0
13c40: d100 bne.n 13c44 <_lv_txt_get_next_line+0x24>
13c42: e10b b.n 13e5c <_lv_txt_get_next_line+0x23c>
if(font == NULL) return 0;
13c44: 2900 cmp r1, #0
13c46: d100 bne.n 13c4a <_lv_txt_get_next_line+0x2a>
13c48: e10a b.n 13e60 <_lv_txt_get_next_line+0x240>
if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) {
13c4a: 2312 movs r3, #18
13c4c: 4213 tst r3, r2
13c4e: d016 beq.n 13c7e <_lv_txt_get_next_line+0x5e>
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
13c50: 0002 movs r2, r0
13c52: 7803 ldrb r3, [r0, #0]
13c54: 2b0a cmp r3, #10
13c56: d100 bne.n 13c5a <_lv_txt_get_next_line+0x3a>
13c58: e104 b.n 13e64 <_lv_txt_get_next_line+0x244>
13c5a: 2b0d cmp r3, #13
13c5c: d100 bne.n 13c60 <_lv_txt_get_next_line+0x40>
13c5e: e10b b.n 13e78 <_lv_txt_get_next_line+0x258>
13c60: 2b00 cmp r3, #0
13c62: d100 bne.n 13c66 <_lv_txt_get_next_line+0x46>
13c64: e10a b.n 13e7c <_lv_txt_get_next_line+0x25c>
13c66: 2000 movs r0, #0
13c68: 3001 adds r0, #1
13c6a: 5c13 ldrb r3, [r2, r0]
13c6c: 2b0a cmp r3, #10
13c6e: d100 bne.n 13c72 <_lv_txt_get_next_line+0x52>
13c70: e0f9 b.n 13e66 <_lv_txt_get_next_line+0x246>
13c72: 2b0d cmp r3, #13
13c74: d100 bne.n 13c78 <_lv_txt_get_next_line+0x58>
13c76: e0f6 b.n 13e66 <_lv_txt_get_next_line+0x246>
13c78: 2b00 cmp r3, #0
13c7a: d1f5 bne.n 13c68 <_lv_txt_get_next_line+0x48>
13c7c: e0f4 b.n 13e68 <_lv_txt_get_next_line+0x248>
13c7e: 2302 movs r3, #2
13c80: 9a0a ldr r2, [sp, #40] ; 0x28
13c82: 401a ands r2, r3
13c84: 920b str r2, [sp, #44] ; 0x2c
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
13c86: d001 beq.n 13c8c <_lv_txt_get_next_line+0x6c>
13c88: 4b7d ldr r3, [pc, #500] ; (13e80 <_lv_txt_get_next_line+0x260>)
13c8a: 9305 str r3, [sp, #20]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
13c8c: 2300 movs r3, #0
13c8e: 220f movs r2, #15
13c90: a90c add r1, sp, #48 ; 0x30
13c92: 468c mov ip, r1
13c94: 4462 add r2, ip
13c96: 7013 strb r3, [r2, #0]
uint32_t i = 0; /* Iterating index into txt */
13c98: 930e str r3, [sp, #56] ; 0x38
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
13c9a: 4b7a ldr r3, [pc, #488] ; (13e84 <_lv_txt_get_next_line+0x264>)
13c9c: 4699 mov r9, r3
{
uint8_t i;
bool ret = false;
/*Compare the letter to TXT_BREAK_CHARS*/
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
13c9e: 4f7a ldr r7, [pc, #488] ; (13e88 <_lv_txt_get_next_line+0x268>)
13ca0: 4653 mov r3, sl
13ca2: 9304 str r3, [sp, #16]
while(txt[i] != '\0' && max_width > 0) {
13ca4: e083 b.n 13dae <_lv_txt_get_next_line+0x18e>
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
13ca6: 9a00 ldr r2, [sp, #0]
13ca8: 0021 movs r1, r4
13caa: 9803 ldr r0, [sp, #12]
13cac: 4b77 ldr r3, [pc, #476] ; (13e8c <_lv_txt_get_next_line+0x26c>)
13cae: 4798 blx r3
cur_w += letter_w;
13cb0: 1945 adds r5, r0, r5
13cb2: b2ad uxth r5, r5
if(letter_w > 0) {
13cb4: b200 sxth r0, r0
13cb6: 2800 cmp r0, #0
13cb8: dd03 ble.n 13cc2 <_lv_txt_get_next_line+0xa2>
cur_w += letter_space;
13cba: 9b04 ldr r3, [sp, #16]
13cbc: 469c mov ip, r3
13cbe: 4465 add r5, ip
13cc0: b2ad uxth r5, r5
13cc2: b22d sxth r5, r5
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
13cc4: 4643 mov r3, r8
13cc6: 3301 adds r3, #1
13cc8: d039 beq.n 13d3e <_lv_txt_get_next_line+0x11e>
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
13cca: 0022 movs r2, r4
13ccc: 3a0a subs r2, #10
13cce: 2a16 cmp r2, #22
13cd0: d83c bhi.n 13d4c <_lv_txt_get_next_line+0x12c>
13cd2: 4b6f ldr r3, [pc, #444] ; (13e90 <_lv_txt_get_next_line+0x270>)
13cd4: 40d3 lsrs r3, r2
13cd6: 2201 movs r2, #1
13cd8: 421a tst r2, r3
13cda: d13a bne.n 13d52 <_lv_txt_get_next_line+0x132>
13cdc: 2301 movs r3, #1
13cde: 322b adds r2, #43 ; 0x2b
if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) {
13ce0: 4294 cmp r4, r2
13ce2: d038 beq.n 13d56 <_lv_txt_get_next_line+0x136>
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
13ce4: 3301 adds r3, #1
13ce6: b2db uxtb r3, r3
13ce8: 5cfa ldrb r2, [r7, r3]
13cea: 2a00 cmp r2, #0
13cec: d1f8 bne.n 13ce0 <_lv_txt_get_next_line+0xc0>
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
13cee: 4643 mov r3, r8
13cf0: 3301 adds r3, #1
13cf2: d100 bne.n 13cf6 <_lv_txt_get_next_line+0xd6>
13cf4: e08d b.n 13e12 <_lv_txt_get_next_line+0x1f2>
i = i_next;
13cf6: 9e0c ldr r6, [sp, #48] ; 0x30
i_next = i_next_next;
13cf8: 9b0d ldr r3, [sp, #52] ; 0x34
13cfa: 930c str r3, [sp, #48] ; 0x30
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
13cfc: 9b02 ldr r3, [sp, #8]
13cfe: 9301 str r3, [sp, #4]
13d00: 9c00 ldr r4, [sp, #0]
while(txt[i] != '\0') {
13d02: 4653 mov r3, sl
13d04: 5d9b ldrb r3, [r3, r6]
13d06: 2b00 cmp r3, #0
13d08: d100 bne.n 13d0c <_lv_txt_get_next_line+0xec>
13d0a: e084 b.n 13e16 <_lv_txt_get_next_line+0x1f6>
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
13d0c: a90d add r1, sp, #52 ; 0x34
13d0e: 4650 mov r0, sl
13d10: 464b mov r3, r9
13d12: 681b ldr r3, [r3, #0]
13d14: 4798 blx r3
13d16: 9000 str r0, [sp, #0]
word_len++;
13d18: 9b01 ldr r3, [sp, #4]
13d1a: 3301 adds r3, #1
13d1c: 9302 str r3, [sp, #8]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
13d1e: 465b mov r3, fp
13d20: 2b00 cmp r3, #0
13d22: d0c0 beq.n 13ca6 <_lv_txt_get_next_line+0x86>
if(_lv_txt_is_cmd(cmd_state, letter) != false) {
13d24: 0021 movs r1, r4
13d26: 200f movs r0, #15
13d28: ab0c add r3, sp, #48 ; 0x30
13d2a: 469c mov ip, r3
13d2c: 4460 add r0, ip
13d2e: 4b59 ldr r3, [pc, #356] ; (13e94 <_lv_txt_get_next_line+0x274>)
13d30: 4798 blx r3
13d32: 2800 cmp r0, #0
13d34: d0b7 beq.n 13ca6 <_lv_txt_get_next_line+0x86>
i = i_next;
13d36: 9e0c ldr r6, [sp, #48] ; 0x30
i_next = i_next_next;
13d38: 9b0d ldr r3, [sp, #52] ; 0x34
13d3a: 930c str r3, [sp, #48] ; 0x30
13d3c: e7de b.n 13cfc <_lv_txt_get_next_line+0xdc>
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
13d3e: 9b04 ldr r3, [sp, #16]
13d40: 1aeb subs r3, r5, r3
13d42: 9a08 ldr r2, [sp, #32]
13d44: 4293 cmp r3, r2
13d46: ddc0 ble.n 13cca <_lv_txt_get_next_line+0xaa>
13d48: 46b0 mov r8, r6
13d4a: e7be b.n 13cca <_lv_txt_get_next_line+0xaa>
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
13d4c: 2301 movs r3, #1
13d4e: 222c movs r2, #44 ; 0x2c
13d50: e7c6 b.n 13ce0 <_lv_txt_get_next_line+0xc0>
13d52: 46b2 mov sl, r6
13d54: e000 b.n 13d58 <_lv_txt_get_next_line+0x138>
13d56: 46b2 mov sl, r6
if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w;
13d58: 4653 mov r3, sl
13d5a: 2b00 cmp r3, #0
13d5c: d15c bne.n 13e18 <_lv_txt_get_next_line+0x1f8>
13d5e: 4643 mov r3, r8
13d60: 3301 adds r3, #1
13d62: d15c bne.n 13e1e <_lv_txt_get_next_line+0x1fe>
13d64: 9506 str r5, [sp, #24]
if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next;
13d66: 9b01 ldr r3, [sp, #4]
13d68: 2b00 cmp r3, #0
13d6a: d004 beq.n 13d76 <_lv_txt_get_next_line+0x156>
13d6c: 2c0d cmp r4, #13
13d6e: d104 bne.n 13d7a <_lv_txt_get_next_line+0x15a>
13d70: 9b00 ldr r3, [sp, #0]
13d72: 2b0a cmp r3, #10
13d74: d101 bne.n 13d7a <_lv_txt_get_next_line+0x15a>
13d76: 9b0c ldr r3, [sp, #48] ; 0x30
13d78: 469a mov sl, r3
return i;
13d7a: 4653 mov r3, sl
13d7c: 466a mov r2, sp
13d7e: 8013 strh r3, [r2, #0]
13d80: 8816 ldrh r6, [r2, #0]
max_width -= word_w;
13d82: 9b05 ldr r3, [sp, #20]
13d84: 9a06 ldr r2, [sp, #24]
13d86: 1a9b subs r3, r3, r2
13d88: b21b sxth r3, r3
13d8a: 9305 str r3, [sp, #20]
if(advance == 0) {
13d8c: 2e00 cmp r6, #0
13d8e: d049 beq.n 13e24 <_lv_txt_get_next_line+0x204>
i += advance;
13d90: 9b0e ldr r3, [sp, #56] ; 0x38
13d92: 469c mov ip, r3
13d94: 4466 add r6, ip
13d96: 960e str r6, [sp, #56] ; 0x38
if(txt[0] == '\n' || txt[0] == '\r') break;
13d98: 9a07 ldr r2, [sp, #28]
13d9a: 7813 ldrb r3, [r2, #0]
13d9c: 2b0a cmp r3, #10
13d9e: d051 beq.n 13e44 <_lv_txt_get_next_line+0x224>
13da0: 2b0d cmp r3, #13
13da2: d04f beq.n 13e44 <_lv_txt_get_next_line+0x224>
if(txt[i] == '\n' || txt[i] == '\r') {
13da4: 5d93 ldrb r3, [r2, r6]
13da6: 2b0a cmp r3, #10
13da8: d04a beq.n 13e40 <_lv_txt_get_next_line+0x220>
13daa: 2b0d cmp r3, #13
13dac: d048 beq.n 13e40 <_lv_txt_get_next_line+0x220>
while(txt[i] != '\0' && max_width > 0) {
13dae: 9b0e ldr r3, [sp, #56] ; 0x38
13db0: 9309 str r3, [sp, #36] ; 0x24
13db2: 9a07 ldr r2, [sp, #28]
13db4: 469c mov ip, r3
13db6: 4462 add r2, ip
13db8: 0016 movs r6, r2
13dba: 7813 ldrb r3, [r2, #0]
13dbc: 2b00 cmp r3, #0
13dbe: d041 beq.n 13e44 <_lv_txt_get_next_line+0x224>
13dc0: 9b05 ldr r3, [sp, #20]
13dc2: 2b00 cmp r3, #0
13dc4: dd3e ble.n 13e44 <_lv_txt_get_next_line+0x224>
if(txt == NULL || txt[0] == '\0') return 0;
13dc6: 2e00 cmp r6, #0
13dc8: d02c beq.n 13e24 <_lv_txt_get_next_line+0x204>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
13dca: 9b05 ldr r3, [sp, #20]
13dcc: 9308 str r3, [sp, #32]
13dce: 9b0b ldr r3, [sp, #44] ; 0x2c
13dd0: 2b00 cmp r3, #0
13dd2: d001 beq.n 13dd8 <_lv_txt_get_next_line+0x1b8>
13dd4: 4b2a ldr r3, [pc, #168] ; (13e80 <_lv_txt_get_next_line+0x260>)
13dd6: 9308 str r3, [sp, #32]
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
13dd8: 2300 movs r3, #0
13dda: 930c str r3, [sp, #48] ; 0x30
13ddc: 930d str r3, [sp, #52] ; 0x34
letter = _lv_txt_encoded_next(txt, &i_next);
13dde: a90c add r1, sp, #48 ; 0x30
13de0: 0030 movs r0, r6
13de2: 4b28 ldr r3, [pc, #160] ; (13e84 <_lv_txt_get_next_line+0x264>)
13de4: 681b ldr r3, [r3, #0]
13de6: 9300 str r3, [sp, #0]
13de8: 4798 blx r3
13dea: 0004 movs r4, r0
i_next_next = i_next;
13dec: 9b0c ldr r3, [sp, #48] ; 0x30
13dee: 930d str r3, [sp, #52] ; 0x34
uint32_t word_w = 0;
13df0: 2300 movs r3, #0
13df2: 9306 str r3, [sp, #24]
uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */
13df4: 3b01 subs r3, #1
13df6: 4698 mov r8, r3
uint32_t word_len = 0; /* Number of characters in the transversed word */
13df8: 2300 movs r3, #0
13dfa: 9301 str r3, [sp, #4]
lv_coord_t cur_w = 0; /* Pixel Width of transversed string */
13dfc: 2500 movs r5, #0
uint32_t letter_next = 0; /* Letter at i_next */
13dfe: 9300 str r3, [sp, #0]
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
13e00: 469a mov sl, r3
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
13e02: 3301 adds r3, #1
13e04: 9a0a ldr r2, [sp, #40] ; 0x28
13e06: 4013 ands r3, r2
13e08: 469b mov fp, r3
13e0a: 4653 mov r3, sl
13e0c: 46b2 mov sl, r6
13e0e: 001e movs r6, r3
13e10: e777 b.n 13d02 <_lv_txt_get_next_line+0xe2>
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
13e12: 9506 str r5, [sp, #24]
13e14: e76f b.n 13cf6 <_lv_txt_get_next_line+0xd6>
13e16: 46b2 mov sl, r6
if(break_index == NO_BREAK_FOUND) {
13e18: 4643 mov r3, r8
13e1a: 3301 adds r3, #1
13e1c: d0a3 beq.n 13d66 <_lv_txt_get_next_line+0x146>
if(force) return break_index;
13e1e: 9b09 ldr r3, [sp, #36] ; 0x24
13e20: 2b00 cmp r3, #0
13e22: d008 beq.n 13e36 <_lv_txt_get_next_line+0x216>
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
13e24: 9b0e ldr r3, [sp, #56] ; 0x38
13e26: 2b00 cmp r3, #0
13e28: d10f bne.n 13e4a <_lv_txt_get_next_line+0x22a>
13e2a: 4b16 ldr r3, [pc, #88] ; (13e84 <_lv_txt_get_next_line+0x264>)
13e2c: 681b ldr r3, [r3, #0]
13e2e: a90e add r1, sp, #56 ; 0x38
13e30: 9807 ldr r0, [sp, #28]
13e32: 4798 blx r3
13e34: e006 b.n 13e44 <_lv_txt_get_next_line+0x224>
if(force) return break_index;
13e36: 4643 mov r3, r8
13e38: 466a mov r2, sp
13e3a: 8013 strh r3, [r2, #0]
13e3c: 8816 ldrh r6, [r2, #0]
13e3e: e7a0 b.n 13d82 <_lv_txt_get_next_line+0x162>
i++; /* Include the following newline in the current line */
13e40: 3601 adds r6, #1
13e42: 960e str r6, [sp, #56] ; 0x38
if(i == 0) {
13e44: 9b0e ldr r3, [sp, #56] ; 0x38
13e46: 2b00 cmp r3, #0
13e48: d002 beq.n 13e50 <_lv_txt_get_next_line+0x230>
return i;
13e4a: ab0c add r3, sp, #48 ; 0x30
13e4c: 8918 ldrh r0, [r3, #8]
13e4e: e00c b.n 13e6a <_lv_txt_get_next_line+0x24a>
_lv_txt_encoded_next(txt, &i);
13e50: 4b0c ldr r3, [pc, #48] ; (13e84 <_lv_txt_get_next_line+0x264>)
13e52: 681b ldr r3, [r3, #0]
13e54: a90e add r1, sp, #56 ; 0x38
13e56: 9807 ldr r0, [sp, #28]
13e58: 4798 blx r3
13e5a: e7f6 b.n 13e4a <_lv_txt_get_next_line+0x22a>
if(txt == NULL) return 0;
13e5c: 2000 movs r0, #0
13e5e: e004 b.n 13e6a <_lv_txt_get_next_line+0x24a>
if(font == NULL) return 0;
13e60: 2000 movs r0, #0
13e62: e002 b.n 13e6a <_lv_txt_get_next_line+0x24a>
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
13e64: 2000 movs r0, #0
if(txt[i] != '\0') i++; /*To go beyond `\n`*/
13e66: 3001 adds r0, #1
return i;
13e68: b280 uxth r0, r0
}
13e6a: b011 add sp, #68 ; 0x44
13e6c: bc3c pop {r2, r3, r4, r5}
13e6e: 4690 mov r8, r2
13e70: 4699 mov r9, r3
13e72: 46a2 mov sl, r4
13e74: 46ab mov fp, r5
13e76: bdf0 pop {r4, r5, r6, r7, pc}
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
13e78: 2000 movs r0, #0
13e7a: e7f4 b.n 13e66 <_lv_txt_get_next_line+0x246>
13e7c: 2000 movs r0, #0
13e7e: e7f3 b.n 13e68 <_lv_txt_get_next_line+0x248>
13e80: 00007c18 .word 0x00007c18
13e84: 2000005c .word 0x2000005c
13e88: 0002ac80 .word 0x0002ac80
13e8c: 0000fe91 .word 0x0000fe91
13e90: 00400009 .word 0x00400009
13e94: 00013be1 .word 0x00013be1
00013e98 <_lv_txt_get_width>:
{
13e98: b5f0 push {r4, r5, r6, r7, lr}
13e9a: 46ce mov lr, r9
13e9c: 4647 mov r7, r8
13e9e: b580 push {r7, lr}
13ea0: b085 sub sp, #20
13ea2: 0005 movs r5, r0
13ea4: 4689 mov r9, r1
13ea6: 9201 str r2, [sp, #4]
13ea8: 4698 mov r8, r3
13eaa: ab0c add r3, sp, #48 ; 0x30
13eac: 781f ldrb r7, [r3, #0]
if(txt == NULL) return 0;
13eae: 2800 cmp r0, #0
13eb0: d03a beq.n 13f28 <_lv_txt_get_width+0x90>
if(font == NULL) return 0;
13eb2: 2a00 cmp r2, #0
13eb4: d03a beq.n 13f2c <_lv_txt_get_width+0x94>
uint32_t i = 0;
13eb6: 2300 movs r3, #0
13eb8: 9303 str r3, [sp, #12]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
13eba: aa02 add r2, sp, #8
13ebc: 70d3 strb r3, [r2, #3]
13ebe: 2400 movs r4, #0
if(length != 0) {
13ec0: 2900 cmp r1, #0
13ec2: d02b beq.n 13f1c <_lv_txt_get_width+0x84>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
13ec4: 2301 movs r3, #1
13ec6: 401f ands r7, r3
13ec8: e00a b.n 13ee0 <_lv_txt_get_width+0x48>
lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next);
13eca: 0032 movs r2, r6
13ecc: 9900 ldr r1, [sp, #0]
13ece: 9801 ldr r0, [sp, #4]
13ed0: 4b17 ldr r3, [pc, #92] ; (13f30 <_lv_txt_get_width+0x98>)
13ed2: 4798 blx r3
if(char_width > 0) {
13ed4: b203 sxth r3, r0
13ed6: 2b00 cmp r3, #0
13ed8: dd02 ble.n 13ee0 <_lv_txt_get_width+0x48>
width += letter_space;
13eda: 4444 add r4, r8
13edc: 1904 adds r4, r0, r4
13ede: b224 sxth r4, r4
while(i < length) {
13ee0: 9b03 ldr r3, [sp, #12]
13ee2: 4599 cmp r9, r3
13ee4: d915 bls.n 13f12 <_lv_txt_get_width+0x7a>
uint32_t letter = _lv_txt_encoded_next(txt, &i);
13ee6: 4e13 ldr r6, [pc, #76] ; (13f34 <_lv_txt_get_width+0x9c>)
13ee8: a903 add r1, sp, #12
13eea: 0028 movs r0, r5
13eec: 6833 ldr r3, [r6, #0]
13eee: 4798 blx r3
13ef0: 9000 str r0, [sp, #0]
uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL);
13ef2: 9b03 ldr r3, [sp, #12]
13ef4: 18e8 adds r0, r5, r3
13ef6: 6833 ldr r3, [r6, #0]
13ef8: 2100 movs r1, #0
13efa: 4798 blx r3
13efc: 0006 movs r6, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
13efe: 2f00 cmp r7, #0
13f00: d0e3 beq.n 13eca <_lv_txt_get_width+0x32>
if(_lv_txt_is_cmd(&cmd_state, letter) != false) {
13f02: 9900 ldr r1, [sp, #0]
13f04: ab02 add r3, sp, #8
13f06: 1cd8 adds r0, r3, #3
13f08: 4b0b ldr r3, [pc, #44] ; (13f38 <_lv_txt_get_width+0xa0>)
13f0a: 4798 blx r3
13f0c: 2800 cmp r0, #0
13f0e: d1e7 bne.n 13ee0 <_lv_txt_get_width+0x48>
13f10: e7db b.n 13eca <_lv_txt_get_width+0x32>
if(width > 0) {
13f12: 2c00 cmp r4, #0
13f14: dd02 ble.n 13f1c <_lv_txt_get_width+0x84>
width -= letter_space; /*Trim the last letter space. Important if the text is center
13f16: 4643 mov r3, r8
13f18: 1ae4 subs r4, r4, r3
13f1a: b224 sxth r4, r4
}
13f1c: 0020 movs r0, r4
13f1e: b005 add sp, #20
13f20: bc0c pop {r2, r3}
13f22: 4690 mov r8, r2
13f24: 4699 mov r9, r3
13f26: bdf0 pop {r4, r5, r6, r7, pc}
if(txt == NULL) return 0;
13f28: 2400 movs r4, #0
13f2a: e7f7 b.n 13f1c <_lv_txt_get_width+0x84>
if(font == NULL) return 0;
13f2c: 2400 movs r4, #0
13f2e: e7f5 b.n 13f1c <_lv_txt_get_width+0x84>
13f30: 0000fe91 .word 0x0000fe91
13f34: 2000005c .word 0x2000005c
13f38: 00013be1 .word 0x00013be1
00013f3c <_lv_txt_get_size>:
{
13f3c: b5f0 push {r4, r5, r6, r7, lr}
13f3e: 46de mov lr, fp
13f40: 4657 mov r7, sl
13f42: 464e mov r6, r9
13f44: 4645 mov r5, r8
13f46: b5e0 push {r5, r6, r7, lr}
13f48: b089 sub sp, #36 ; 0x24
13f4a: 0004 movs r4, r0
13f4c: 4689 mov r9, r1
13f4e: 9202 str r2, [sp, #8]
13f50: 9303 str r3, [sp, #12]
13f52: ab12 add r3, sp, #72 ; 0x48
13f54: 2100 movs r1, #0
13f56: 5e5b ldrsh r3, [r3, r1]
13f58: 9306 str r3, [sp, #24]
13f5a: ab13 add r3, sp, #76 ; 0x4c
13f5c: 2100 movs r1, #0
13f5e: 5e5b ldrsh r3, [r3, r1]
13f60: 9304 str r3, [sp, #16]
13f62: ab14 add r3, sp, #80 ; 0x50
13f64: 781f ldrb r7, [r3, #0]
size_res->x = 0;
13f66: 2300 movs r3, #0
13f68: 8003 strh r3, [r0, #0]
size_res->y = 0;
13f6a: 8043 strh r3, [r0, #2]
if(text == NULL) return;
13f6c: 464b mov r3, r9
13f6e: 2b00 cmp r3, #0
13f70: d023 beq.n 13fba <_lv_txt_get_size+0x7e>
if(font == NULL) return;
13f72: 2a00 cmp r2, #0
13f74: d021 beq.n 13fba <_lv_txt_get_size+0x7e>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
13f76: 07bb lsls r3, r7, #30
13f78: d501 bpl.n 13f7e <_lv_txt_get_size+0x42>
13f7a: 4b34 ldr r3, [pc, #208] ; (1404c <_lv_txt_get_size+0x110>)
13f7c: 9304 str r3, [sp, #16]
* @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)
{
return font_p->line_height;
13f7e: 9b02 ldr r3, [sp, #8]
13f80: 2208 movs r2, #8
13f82: 5e9b ldrsh r3, [r3, r2]
13f84: 9307 str r3, [sp, #28]
uint16_t letter_height = lv_font_get_line_height(font);
13f86: b29a uxth r2, r3
while(text[line_start] != '\0') {
13f88: 464b mov r3, r9
13f8a: 781b ldrb r3, [r3, #0]
13f8c: 2b00 cmp r3, #0
13f8e: d058 beq.n 14042 <_lv_txt_get_size+0x106>
13f90: 464d mov r5, r9
13f92: 2600 movs r6, #0
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
13f94: 4b2e ldr r3, [pc, #184] ; (14050 <_lv_txt_get_size+0x114>)
13f96: 469b mov fp, r3
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
13f98: 9b06 ldr r3, [sp, #24]
13f9a: 469a mov sl, r3
13f9c: 4492 add sl, r2
13f9e: 4653 mov r3, sl
13fa0: 466a mov r2, sp
13fa2: 8293 strh r3, [r2, #20]
13fa4: 8a93 ldrh r3, [r2, #20]
13fa6: 4698 mov r8, r3
13fa8: e014 b.n 13fd4 <_lv_txt_get_size+0x98>
LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height");
13faa: 4b2a ldr r3, [pc, #168] ; (14054 <_lv_txt_get_size+0x118>)
13fac: 9300 str r3, [sp, #0]
13fae: 4b2a ldr r3, [pc, #168] ; (14058 <_lv_txt_get_size+0x11c>)
13fb0: 2271 movs r2, #113 ; 0x71
13fb2: 492a ldr r1, [pc, #168] ; (1405c <_lv_txt_get_size+0x120>)
13fb4: 2002 movs r0, #2
13fb6: 4c2a ldr r4, [pc, #168] ; (14060 <_lv_txt_get_size+0x124>)
13fb8: 47a0 blx r4
}
13fba: b009 add sp, #36 ; 0x24
13fbc: bc3c pop {r2, r3, r4, r5}
13fbe: 4690 mov r8, r2
13fc0: 4699 mov r9, r3
13fc2: 46a2 mov sl, r4
13fc4: 46ab mov fp, r5
13fc6: bdf0 pop {r4, r5, r6, r7, pc}
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
13fc8: 8022 strh r2, [r4, #0]
while(text[line_start] != '\0') {
13fca: 464b mov r3, r9
13fcc: 199d adds r5, r3, r6
13fce: 782b ldrb r3, [r5, #0]
13fd0: 2b00 cmp r3, #0
13fd2: d01f beq.n 14014 <_lv_txt_get_size+0xd8>
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
13fd4: 9700 str r7, [sp, #0]
13fd6: 9b04 ldr r3, [sp, #16]
13fd8: 9a03 ldr r2, [sp, #12]
13fda: 9902 ldr r1, [sp, #8]
13fdc: 0028 movs r0, r5
13fde: 47d8 blx fp
13fe0: 1836 adds r6, r6, r0
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
13fe2: 2202 movs r2, #2
13fe4: 5ea3 ldrsh r3, [r4, r2]
13fe6: 4652 mov r2, sl
13fe8: 18d1 adds r1, r2, r3
13fea: 4a1e ldr r2, [pc, #120] ; (14064 <_lv_txt_get_size+0x128>)
13fec: 4291 cmp r1, r2
13fee: d8dc bhi.n 13faa <_lv_txt_get_size+0x6e>
13ff0: 4642 mov r2, r8
13ff2: 9205 str r2, [sp, #20]
size_res->y += line_space;
13ff4: 4443 add r3, r8
13ff6: 8063 strh r3, [r4, #2]
lv_coord_t act_line_length = _lv_txt_get_width(&text[line_start], new_line_start - line_start, font, letter_space,
13ff8: 9700 str r7, [sp, #0]
13ffa: 9b03 ldr r3, [sp, #12]
13ffc: 9a02 ldr r2, [sp, #8]
13ffe: 0001 movs r1, r0
14000: 0028 movs r0, r5
14002: 4d19 ldr r5, [pc, #100] ; (14068 <_lv_txt_get_size+0x12c>)
14004: 47a8 blx r5
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
14006: 8823 ldrh r3, [r4, #0]
14008: 1c1a adds r2, r3, #0
1400a: b21b sxth r3, r3
1400c: 4283 cmp r3, r0
1400e: dadb bge.n 13fc8 <_lv_txt_get_size+0x8c>
14010: 1c02 adds r2, r0, #0
14012: e7d9 b.n 13fc8 <_lv_txt_get_size+0x8c>
if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) {
14014: 2e00 cmp r6, #0
14016: d006 beq.n 14026 <_lv_txt_get_size+0xea>
14018: 002e movs r6, r5
1401a: 3e01 subs r6, #1
1401c: 7833 ldrb r3, [r6, #0]
1401e: 2b0a cmp r3, #10
14020: d009 beq.n 14036 <_lv_txt_get_size+0xfa>
14022: 2b0d cmp r3, #13
14024: d007 beq.n 14036 <_lv_txt_get_size+0xfa>
if(size_res->y == 0)
14026: 2202 movs r2, #2
14028: 5ea3 ldrsh r3, [r4, r2]
1402a: 2b00 cmp r3, #0
1402c: d009 beq.n 14042 <_lv_txt_get_size+0x106>
size_res->y -= line_space;
1402e: 9a06 ldr r2, [sp, #24]
14030: 1a9b subs r3, r3, r2
14032: 8063 strh r3, [r4, #2]
14034: e7c1 b.n 13fba <_lv_txt_get_size+0x7e>
size_res->y += letter_height + line_space;
14036: 8863 ldrh r3, [r4, #2]
14038: 9a05 ldr r2, [sp, #20]
1403a: 4694 mov ip, r2
1403c: 4463 add r3, ip
1403e: 8063 strh r3, [r4, #2]
14040: e7f1 b.n 14026 <_lv_txt_get_size+0xea>
size_res->y = letter_height;
14042: 466b mov r3, sp
14044: 8b9b ldrh r3, [r3, #28]
14046: 8063 strh r3, [r4, #2]
14048: e7b7 b.n 13fba <_lv_txt_get_size+0x7e>
1404a: 46c0 nop ; (mov r8, r8)
1404c: 00007c18 .word 0x00007c18
14050: 00013c21 .word 0x00013c21
14054: 0002acb8 .word 0x0002acb8
14058: 0002ac6c .word 0x0002ac6c
1405c: 0002ac88 .word 0x0002ac88
14060: 00012159 .word 0x00012159
14064: 00007fff .word 0x00007fff
14068: 00013e99 .word 0x00013e99
0001406c <_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))
{
1406c: b5f0 push {r4, r5, r6, r7, lr}
1406e: 46d6 mov lr, sl
14070: 464f mov r7, r9
14072: 4646 mov r6, r8
14074: b5c0 push {r6, r7, lr}
14076: b082 sub sp, #8
14078: 9001 str r0, [sp, #4]
1407a: 000f movs r7, r1
1407c: 1e14 subs r4, r2, #0
1407e: 4699 mov r9, r3
14080: 9b0a ldr r3, [sp, #40] ; 0x28
14082: 469a mov sl, r3
const char * middle;
int32_t c;
for(middle = base; n != 0;) {
14084: d01d beq.n 140c2 <_lv_utils_bsearch+0x56>
middle += (n / 2) * size;
if((c = (*cmp)(key, middle)) > 0) {
n = (n / 2) - ((n & 1) == 0);
14086: 2301 movs r3, #1
14088: 4698 mov r8, r3
1408a: e004 b.n 14096 <_lv_utils_bsearch+0x2a>
base = (middle += size);
}
else if(c < 0) {
1408c: 2800 cmp r0, #0
1408e: da1a bge.n 140c6 <_lv_utils_bsearch+0x5a>
n /= 2;
14090: 0034 movs r4, r6
for(middle = base; n != 0;) {
14092: 2c00 cmp r4, #0
14094: d00e beq.n 140b4 <_lv_utils_bsearch+0x48>
middle += (n / 2) * size;
14096: 0866 lsrs r6, r4, #1
14098: 464d mov r5, r9
1409a: 4375 muls r5, r6
1409c: 197d adds r5, r7, r5
if((c = (*cmp)(key, middle)) > 0) {
1409e: 0029 movs r1, r5
140a0: 9801 ldr r0, [sp, #4]
140a2: 47d0 blx sl
140a4: 2800 cmp r0, #0
140a6: ddf1 ble.n 1408c <_lv_utils_bsearch+0x20>
n = (n / 2) - ((n & 1) == 0);
140a8: 4643 mov r3, r8
140aa: 43a3 bics r3, r4
140ac: 1af4 subs r4, r6, r3
base = (middle += size);
140ae: 444d add r5, r9
140b0: 002f movs r7, r5
140b2: e7ee b.n 14092 <_lv_utils_bsearch+0x26>
}
else {
return (char *)middle;
}
}
return NULL;
140b4: 2000 movs r0, #0
}
140b6: b002 add sp, #8
140b8: bc1c pop {r2, r3, r4}
140ba: 4690 mov r8, r2
140bc: 4699 mov r9, r3
140be: 46a2 mov sl, r4
140c0: bdf0 pop {r4, r5, r6, r7, pc}
return NULL;
140c2: 2000 movs r0, #0
140c4: e7f7 b.n 140b6 <_lv_utils_bsearch+0x4a>
middle += (n / 2) * size;
140c6: 0028 movs r0, r5
140c8: e7f5 b.n 140b6 <_lv_utils_bsearch+0x4a>
...
000140cc <lv_theme_set_act>:
* From now, all the created objects will use styles from this theme by default
* @param th pointer to theme (return value of: 'lv_theme_init_xxx()')
*/
void lv_theme_set_act(lv_theme_t * th)
{
act_theme = th;
140cc: 4b01 ldr r3, [pc, #4] ; (140d4 <lv_theme_set_act+0x8>)
140ce: 6018 str r0, [r3, #0]
}
140d0: 4770 bx lr
140d2: 46c0 nop ; (mov r8, r8)
140d4: 20004c44 .word 0x20004c44
000140d8 <lv_theme_get_font_normal>:
* Get the normal font of the theme
* @return pointer to the font
*/
const lv_font_t * lv_theme_get_font_normal(void)
{
return act_theme->font_normal;
140d8: 4b01 ldr r3, [pc, #4] ; (140e0 <lv_theme_get_font_normal+0x8>)
140da: 681b ldr r3, [r3, #0]
140dc: 68d8 ldr r0, [r3, #12]
}
140de: 4770 bx lr
140e0: 20004c44 .word 0x20004c44
000140e4 <lv_theme_apply>:
{
return act_theme->flags;
}
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
140e4: b510 push {r4, lr}
act_theme->apply_xcb(obj, name);
140e6: 4b02 ldr r3, [pc, #8] ; (140f0 <lv_theme_apply+0xc>)
140e8: 681b ldr r3, [r3, #0]
140ea: 681b ldr r3, [r3, #0]
140ec: 4798 blx r3
}
140ee: bd10 pop {r4, pc}
140f0: 20004c44 .word 0x20004c44
000140f4 <theme_apply>:
return &theme;
}
static void theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
140f4: b5f0 push {r4, r5, r6, r7, lr}
140f6: 46ce mov lr, r9
140f8: 4647 mov r7, r8
140fa: b580 push {r7, lr}
140fc: b083 sub sp, #12
140fe: 0004 movs r4, r0
lv_style_list_t * list;
switch(name) {
14100: 2928 cmp r1, #40 ; 0x28
14102: d80e bhi.n 14122 <theme_apply+0x2e>
14104: 0089 lsls r1, r1, #2
14106: 4be4 ldr r3, [pc, #912] ; (14498 <theme_apply+0x3a4>)
14108: 585b ldr r3, [r3, r1]
1410a: 469f mov pc, r3
case LV_THEME_NONE:
break;
case LV_THEME_SCR:
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
1410c: 2100 movs r1, #0
1410e: 4be3 ldr r3, [pc, #908] ; (1449c <theme_apply+0x3a8>)
14110: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
14112: 2100 movs r1, #0
14114: 0020 movs r0, r4
14116: 4be2 ldr r3, [pc, #904] ; (144a0 <theme_apply+0x3ac>)
14118: 4798 blx r3
_lv_style_list_add_style(list, &styles->scr);
1411a: 4be2 ldr r3, [pc, #904] ; (144a4 <theme_apply+0x3b0>)
1411c: 6819 ldr r1, [r3, #0]
1411e: 4be2 ldr r3, [pc, #904] ; (144a8 <theme_apply+0x3b4>)
14120: 4798 blx r3
#endif
default:
break;
}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
14122: 21ff movs r1, #255 ; 0xff
14124: 0020 movs r0, r4
14126: 4be1 ldr r3, [pc, #900] ; (144ac <theme_apply+0x3b8>)
14128: 4798 blx r3
}
1412a: b003 add sp, #12
1412c: bc0c pop {r2, r3}
1412e: 4690 mov r8, r2
14130: 4699 mov r9, r3
14132: bdf0 pop {r4, r5, r6, r7, pc}
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
14134: 2100 movs r1, #0
14136: 4bd9 ldr r3, [pc, #868] ; (1449c <theme_apply+0x3a8>)
14138: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
1413a: 2100 movs r1, #0
1413c: 0020 movs r0, r4
1413e: 4bd8 ldr r3, [pc, #864] ; (144a0 <theme_apply+0x3ac>)
14140: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
14142: 4bd8 ldr r3, [pc, #864] ; (144a4 <theme_apply+0x3b0>)
14144: 6819 ldr r1, [r3, #0]
14146: 3104 adds r1, #4
14148: 4bd7 ldr r3, [pc, #860] ; (144a8 <theme_apply+0x3b4>)
1414a: 4798 blx r3
break;
1414c: e7e9 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
1414e: 2100 movs r1, #0
14150: 4bd2 ldr r3, [pc, #840] ; (1449c <theme_apply+0x3a8>)
14152: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_CONT_PART_MAIN);
14154: 2100 movs r1, #0
14156: 0020 movs r0, r4
14158: 4bd1 ldr r3, [pc, #836] ; (144a0 <theme_apply+0x3ac>)
1415a: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
1415c: 4bd1 ldr r3, [pc, #836] ; (144a4 <theme_apply+0x3b0>)
1415e: 6819 ldr r1, [r3, #0]
14160: 3104 adds r1, #4
14162: 4bd1 ldr r3, [pc, #836] ; (144a8 <theme_apply+0x3b4>)
14164: 4798 blx r3
break;
14166: e7dc b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
14168: 2100 movs r1, #0
1416a: 4bcc ldr r3, [pc, #816] ; (1449c <theme_apply+0x3a8>)
1416c: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
1416e: 2100 movs r1, #0
14170: 0020 movs r0, r4
14172: 4bcb ldr r3, [pc, #812] ; (144a0 <theme_apply+0x3ac>)
14174: 4798 blx r3
_lv_style_list_add_style(list, &styles->btn);
14176: 4bcb ldr r3, [pc, #812] ; (144a4 <theme_apply+0x3b0>)
14178: 6819 ldr r1, [r3, #0]
1417a: 3110 adds r1, #16
1417c: 4bca ldr r3, [pc, #808] ; (144a8 <theme_apply+0x3b4>)
1417e: 4798 blx r3
break;
14180: e7cf b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
14182: 2100 movs r1, #0
14184: 4bc5 ldr r3, [pc, #788] ; (1449c <theme_apply+0x3a8>)
14186: 4699 mov r9, r3
14188: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
1418a: 2100 movs r1, #0
1418c: 0020 movs r0, r4
1418e: 4fc4 ldr r7, [pc, #784] ; (144a0 <theme_apply+0x3ac>)
14190: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
14192: 4ec4 ldr r6, [pc, #784] ; (144a4 <theme_apply+0x3b0>)
14194: 6833 ldr r3, [r6, #0]
14196: 1d19 adds r1, r3, #4
14198: 9001 str r0, [sp, #4]
1419a: 4dc3 ldr r5, [pc, #780] ; (144a8 <theme_apply+0x3b4>)
1419c: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
1419e: 6831 ldr r1, [r6, #0]
141a0: 3118 adds r1, #24
141a2: 9801 ldr r0, [sp, #4]
141a4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BTN);
141a6: 2101 movs r1, #1
141a8: 0020 movs r0, r4
141aa: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BTN);
141ac: 2101 movs r1, #1
141ae: 0020 movs r0, r4
141b0: 47b8 blx r7
141b2: 0007 movs r7, r0
_lv_style_list_add_style(list, &styles->bg);
141b4: 6833 ldr r3, [r6, #0]
141b6: 1d19 adds r1, r3, #4
141b8: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
141ba: 6831 ldr r1, [r6, #0]
141bc: 3108 adds r1, #8
141be: 0038 movs r0, r7
141c0: 47a8 blx r5
break;
141c2: e7ae b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
141c4: 2100 movs r1, #0
141c6: 4bb5 ldr r3, [pc, #724] ; (1449c <theme_apply+0x3a8>)
141c8: 4699 mov r9, r3
141ca: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
141cc: 2100 movs r1, #0
141ce: 0020 movs r0, r4
141d0: 4fb3 ldr r7, [pc, #716] ; (144a0 <theme_apply+0x3ac>)
141d2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
141d4: 4eb3 ldr r6, [pc, #716] ; (144a4 <theme_apply+0x3b0>)
141d6: 6831 ldr r1, [r6, #0]
141d8: 9001 str r0, [sp, #4]
141da: 4db3 ldr r5, [pc, #716] ; (144a8 <theme_apply+0x3b4>)
141dc: 47a8 blx r5
_lv_style_list_add_style(list, &styles->kb_bg);
141de: 6831 ldr r1, [r6, #0]
141e0: 3168 adds r1, #104 ; 0x68
141e2: 9801 ldr r0, [sp, #4]
141e4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN);
141e6: 2101 movs r1, #1
141e8: 0020 movs r0, r4
141ea: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
141ec: 2101 movs r1, #1
141ee: 0020 movs r0, r4
141f0: 47b8 blx r7
141f2: 0007 movs r7, r0
_lv_style_list_add_style(list, &styles->bg);
141f4: 6833 ldr r3, [r6, #0]
141f6: 1d19 adds r1, r3, #4
141f8: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
141fa: 6831 ldr r1, [r6, #0]
141fc: 3108 adds r1, #8
141fe: 0038 movs r0, r7
14200: 47a8 blx r5
break;
14202: e78e b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
14204: 2100 movs r1, #0
14206: 4ba5 ldr r3, [pc, #660] ; (1449c <theme_apply+0x3a8>)
14208: 4698 mov r8, r3
1420a: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
1420c: 2100 movs r1, #0
1420e: 0020 movs r0, r4
14210: 4fa3 ldr r7, [pc, #652] ; (144a0 <theme_apply+0x3ac>)
14212: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
14214: 4ea3 ldr r6, [pc, #652] ; (144a4 <theme_apply+0x3b0>)
14216: 6831 ldr r1, [r6, #0]
14218: 3124 adds r1, #36 ; 0x24
1421a: 4da3 ldr r5, [pc, #652] ; (144a8 <theme_apply+0x3b4>)
1421c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC);
1421e: 2101 movs r1, #1
14220: 0020 movs r0, r4
14222: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC);
14224: 2101 movs r1, #1
14226: 0020 movs r0, r4
14228: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
1422a: 6831 ldr r1, [r6, #0]
1422c: 3128 adds r1, #40 ; 0x28
1422e: 47a8 blx r5
break;
14230: e777 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
14232: 2100 movs r1, #0
14234: 4b99 ldr r3, [pc, #612] ; (1449c <theme_apply+0x3a8>)
14236: 4698 mov r8, r3
14238: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
1423a: 2100 movs r1, #0
1423c: 0020 movs r0, r4
1423e: 4f98 ldr r7, [pc, #608] ; (144a0 <theme_apply+0x3ac>)
14240: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
14242: 4e98 ldr r6, [pc, #608] ; (144a4 <theme_apply+0x3b0>)
14244: 6831 ldr r1, [r6, #0]
14246: 3124 adds r1, #36 ; 0x24
14248: 4d97 ldr r5, [pc, #604] ; (144a8 <theme_apply+0x3b4>)
1424a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC);
1424c: 2101 movs r1, #1
1424e: 0020 movs r0, r4
14250: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC);
14252: 2101 movs r1, #1
14254: 0020 movs r0, r4
14256: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
14258: 6831 ldr r1, [r6, #0]
1425a: 3128 adds r1, #40 ; 0x28
1425c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB);
1425e: 2102 movs r1, #2
14260: 0020 movs r0, r4
14262: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB);
14264: 2102 movs r1, #2
14266: 0020 movs r0, r4
14268: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sw_knob);
1426a: 6831 ldr r1, [r6, #0]
1426c: 319c adds r1, #156 ; 0x9c
1426e: 47a8 blx r5
break;
14270: e757 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN);
14272: 2100 movs r1, #0
14274: 4b89 ldr r3, [pc, #548] ; (1449c <theme_apply+0x3a8>)
14276: 4798 blx r3
break;
14278: e753 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_IMG_PART_MAIN);
1427a: 2100 movs r1, #0
1427c: 4b87 ldr r3, [pc, #540] ; (1449c <theme_apply+0x3a8>)
1427e: 4798 blx r3
break;
14280: e74f b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_IMG_PART_MAIN);
14282: 2100 movs r1, #0
14284: 4b85 ldr r3, [pc, #532] ; (1449c <theme_apply+0x3a8>)
14286: 4798 blx r3
break;
14288: e74b b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_LABEL_PART_MAIN);
1428a: 2100 movs r1, #0
1428c: 4b83 ldr r3, [pc, #524] ; (1449c <theme_apply+0x3a8>)
1428e: 4798 blx r3
break;
14290: e747 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_LABEL_PART_MAIN);
14292: 2100 movs r1, #0
14294: 4b81 ldr r3, [pc, #516] ; (1449c <theme_apply+0x3a8>)
14296: 4798 blx r3
break;
14298: e743 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
1429a: 2100 movs r1, #0
1429c: 4b7f ldr r3, [pc, #508] ; (1449c <theme_apply+0x3a8>)
1429e: 4699 mov r9, r3
142a0: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
142a2: 2100 movs r1, #0
142a4: 0020 movs r0, r4
142a6: 4f7e ldr r7, [pc, #504] ; (144a0 <theme_apply+0x3ac>)
142a8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
142aa: 4e7e ldr r6, [pc, #504] ; (144a4 <theme_apply+0x3b0>)
142ac: 6833 ldr r3, [r6, #0]
142ae: 1d19 adds r1, r3, #4
142b0: 9001 str r0, [sp, #4]
142b2: 4d7d ldr r5, [pc, #500] ; (144a8 <theme_apply+0x3b4>)
142b4: 47a8 blx r5
_lv_style_list_add_style(list, &styles->arc_bg);
142b6: 6831 ldr r1, [r6, #0]
142b8: 3120 adds r1, #32
142ba: 9801 ldr r0, [sp, #4]
142bc: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC);
142be: 2101 movs r1, #1
142c0: 0020 movs r0, r4
142c2: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC);
142c4: 2101 movs r1, #1
142c6: 0020 movs r0, r4
142c8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->arc_indic);
142ca: 6831 ldr r1, [r6, #0]
142cc: 311c adds r1, #28
142ce: 47a8 blx r5
break;
142d0: e727 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
142d2: 2100 movs r1, #0
142d4: 4b71 ldr r3, [pc, #452] ; (1449c <theme_apply+0x3a8>)
142d6: 4698 mov r8, r3
142d8: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
142da: 2100 movs r1, #0
142dc: 0020 movs r0, r4
142de: 4f70 ldr r7, [pc, #448] ; (144a0 <theme_apply+0x3ac>)
142e0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->arc_bg);
142e2: 4e70 ldr r6, [pc, #448] ; (144a4 <theme_apply+0x3b0>)
142e4: 6831 ldr r1, [r6, #0]
142e6: 3120 adds r1, #32
142e8: 4d6f ldr r5, [pc, #444] ; (144a8 <theme_apply+0x3b4>)
142ea: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC);
142ec: 2101 movs r1, #1
142ee: 0020 movs r0, r4
142f0: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC);
142f2: 2101 movs r1, #1
142f4: 0020 movs r0, r4
142f6: 47b8 blx r7
_lv_style_list_add_style(list, &styles->arc_indic);
142f8: 6831 ldr r1, [r6, #0]
142fa: 311c adds r1, #28
142fc: 47a8 blx r5
break;
142fe: e710 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
14300: 2100 movs r1, #0
14302: 4b66 ldr r3, [pc, #408] ; (1449c <theme_apply+0x3a8>)
14304: 4699 mov r9, r3
14306: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
14308: 2100 movs r1, #0
1430a: 0020 movs r0, r4
1430c: 4f64 ldr r7, [pc, #400] ; (144a0 <theme_apply+0x3ac>)
1430e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
14310: 4e64 ldr r6, [pc, #400] ; (144a4 <theme_apply+0x3b0>)
14312: 6831 ldr r1, [r6, #0]
14314: 3124 adds r1, #36 ; 0x24
14316: 9001 str r0, [sp, #4]
14318: 4d63 ldr r5, [pc, #396] ; (144a8 <theme_apply+0x3b4>)
1431a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->slider_bg);
1431c: 6831 ldr r1, [r6, #0]
1431e: 3194 adds r1, #148 ; 0x94
14320: 9801 ldr r0, [sp, #4]
14322: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC);
14324: 2101 movs r1, #1
14326: 0020 movs r0, r4
14328: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC);
1432a: 2101 movs r1, #1
1432c: 0020 movs r0, r4
1432e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
14330: 6831 ldr r1, [r6, #0]
14332: 3128 adds r1, #40 ; 0x28
14334: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB);
14336: 2102 movs r1, #2
14338: 0020 movs r0, r4
1433a: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB);
1433c: 2102 movs r1, #2
1433e: 0020 movs r0, r4
14340: 47b8 blx r7
_lv_style_list_add_style(list, &styles->slider_knob);
14342: 6831 ldr r1, [r6, #0]
14344: 3190 adds r1, #144 ; 0x90
14346: 47a8 blx r5
break;
14348: e6eb b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
1434a: 2100 movs r1, #0
1434c: 4b53 ldr r3, [pc, #332] ; (1449c <theme_apply+0x3a8>)
1434e: 4698 mov r8, r3
14350: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
14352: 2100 movs r1, #0
14354: 0020 movs r0, r4
14356: 4e52 ldr r6, [pc, #328] ; (144a0 <theme_apply+0x3ac>)
14358: 47b0 blx r6
_lv_style_list_add_style(list, &styles->cb_bg);
1435a: 4f52 ldr r7, [pc, #328] ; (144a4 <theme_apply+0x3b0>)
1435c: 6839 ldr r1, [r7, #0]
1435e: 314c adds r1, #76 ; 0x4c
14360: 4d51 ldr r5, [pc, #324] ; (144a8 <theme_apply+0x3b4>)
14362: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET);
14364: 2140 movs r1, #64 ; 0x40
14366: 0020 movs r0, r4
14368: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
1436a: 2140 movs r1, #64 ; 0x40
1436c: 0020 movs r0, r4
1436e: 47b0 blx r6
14370: 0006 movs r6, r0
_lv_style_list_add_style(list, &styles->btn);
14372: 6839 ldr r1, [r7, #0]
14374: 3110 adds r1, #16
14376: 47a8 blx r5
_lv_style_list_add_style(list, &styles->cb_bullet);
14378: 6839 ldr r1, [r7, #0]
1437a: 3150 adds r1, #80 ; 0x50
1437c: 0030 movs r0, r6
1437e: 47a8 blx r5
break;
14380: e6cf b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
14382: 2100 movs r1, #0
14384: 4b45 ldr r3, [pc, #276] ; (1449c <theme_apply+0x3a8>)
14386: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
14388: 2100 movs r1, #0
1438a: 0020 movs r0, r4
1438c: 4b44 ldr r3, [pc, #272] ; (144a0 <theme_apply+0x3ac>)
1438e: 4798 blx r3
14390: 0005 movs r5, r0
_lv_style_list_add_style(list, &styles->bg);
14392: 4f44 ldr r7, [pc, #272] ; (144a4 <theme_apply+0x3b0>)
14394: 683b ldr r3, [r7, #0]
14396: 1d19 adds r1, r3, #4
14398: 4e43 ldr r6, [pc, #268] ; (144a8 <theme_apply+0x3b4>)
1439a: 47b0 blx r6
_lv_style_list_add_style(list, &styles->mbox_bg);
1439c: 6839 ldr r1, [r7, #0]
1439e: 317c adds r1, #124 ; 0x7c
143a0: 0028 movs r0, r5
143a2: 47b0 blx r6
break;
143a4: e6bd b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
143a6: 2140 movs r1, #64 ; 0x40
143a8: 4b3c ldr r3, [pc, #240] ; (1449c <theme_apply+0x3a8>)
143aa: 4698 mov r8, r3
143ac: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
143ae: 2140 movs r1, #64 ; 0x40
143b0: 0020 movs r0, r4
143b2: 4f3b ldr r7, [pc, #236] ; (144a0 <theme_apply+0x3ac>)
143b4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_small);
143b6: 4e3b ldr r6, [pc, #236] ; (144a4 <theme_apply+0x3b0>)
143b8: 6831 ldr r1, [r6, #0]
143ba: 3118 adds r1, #24
143bc: 4d3a ldr r5, [pc, #232] ; (144a8 <theme_apply+0x3b4>)
143be: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN);
143c0: 2141 movs r1, #65 ; 0x41
143c2: 0020 movs r0, r4
143c4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN);
143c6: 2141 movs r1, #65 ; 0x41
143c8: 0020 movs r0, r4
143ca: 47b8 blx r7
_lv_style_list_add_style(list, &styles->btn);
143cc: 6831 ldr r1, [r6, #0]
143ce: 3110 adds r1, #16
143d0: 47a8 blx r5
break;
143d2: e6a6 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_LED_PART_MAIN);
143d4: 2100 movs r1, #0
143d6: 4b31 ldr r3, [pc, #196] ; (1449c <theme_apply+0x3a8>)
143d8: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN);
143da: 2100 movs r1, #0
143dc: 0020 movs r0, r4
143de: 4b30 ldr r3, [pc, #192] ; (144a0 <theme_apply+0x3ac>)
143e0: 4798 blx r3
_lv_style_list_add_style(list, &styles->led);
143e2: 4b30 ldr r3, [pc, #192] ; (144a4 <theme_apply+0x3b0>)
143e4: 6819 ldr r1, [r3, #0]
143e6: 316c adds r1, #108 ; 0x6c
143e8: 4b2f ldr r3, [pc, #188] ; (144a8 <theme_apply+0x3b4>)
143ea: 4798 blx r3
break;
143ec: e699 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
143ee: 2100 movs r1, #0
143f0: 4b2a ldr r3, [pc, #168] ; (1449c <theme_apply+0x3a8>)
143f2: 4698 mov r8, r3
143f4: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
143f6: 2100 movs r1, #0
143f8: 0020 movs r0, r4
143fa: 4f29 ldr r7, [pc, #164] ; (144a0 <theme_apply+0x3ac>)
143fc: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
143fe: 4e29 ldr r6, [pc, #164] ; (144a4 <theme_apply+0x3b0>)
14400: 6833 ldr r3, [r6, #0]
14402: 1d19 adds r1, r3, #4
14404: 4d28 ldr r5, [pc, #160] ; (144a8 <theme_apply+0x3b4>)
14406: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
14408: 2140 movs r1, #64 ; 0x40
1440a: 0020 movs r0, r4
1440c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
1440e: 2140 movs r1, #64 ; 0x40
14410: 0020 movs r0, r4
14412: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_inner);
14414: 6831 ldr r1, [r6, #0]
14416: 3114 adds r1, #20
14418: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLBAR);
1441a: 2101 movs r1, #1
1441c: 0020 movs r0, r4
1441e: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLBAR);
14420: 2101 movs r1, #1
14422: 0020 movs r0, r4
14424: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
14426: 6831 ldr r1, [r6, #0]
14428: 3180 adds r1, #128 ; 0x80
1442a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_EDGE_FLASH);
1442c: 2102 movs r1, #2
1442e: 0020 movs r0, r4
14430: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_EDGE_FLASH);
14432: 2102 movs r1, #2
14434: 0020 movs r0, r4
14436: 47b8 blx r7
_lv_style_list_add_style(list, &styles->edge_flash);
14438: 6831 ldr r1, [r6, #0]
1443a: 3184 adds r1, #132 ; 0x84
1443c: 47a8 blx r5
break;
1443e: e670 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
14440: 2100 movs r1, #0
14442: 4d16 ldr r5, [pc, #88] ; (1449c <theme_apply+0x3a8>)
14444: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
14446: 2100 movs r1, #0
14448: 0020 movs r0, r4
1444a: 4b15 ldr r3, [pc, #84] ; (144a0 <theme_apply+0x3ac>)
1444c: 4698 mov r8, r3
1444e: 4798 blx r3
_lv_style_list_add_style(list, &styles->scr);
14450: 4f14 ldr r7, [pc, #80] ; (144a4 <theme_apply+0x3b0>)
14452: 6839 ldr r1, [r7, #0]
14454: 4e14 ldr r6, [pc, #80] ; (144a8 <theme_apply+0x3b4>)
14456: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE);
14458: 2140 movs r1, #64 ; 0x40
1445a: 0020 movs r0, r4
1445c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG);
1445e: 2141 movs r1, #65 ; 0x41
14460: 0020 movs r0, r4
14462: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG);
14464: 2141 movs r1, #65 ; 0x41
14466: 0020 movs r0, r4
14468: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
1446a: 6839 ldr r1, [r7, #0]
1446c: 31a8 adds r1, #168 ; 0xa8
1446e: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC);
14470: 2143 movs r1, #67 ; 0x43
14472: 0020 movs r0, r4
14474: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC);
14476: 2143 movs r1, #67 ; 0x43
14478: 0020 movs r0, r4
1447a: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_indic);
1447c: 6839 ldr r1, [r7, #0]
1447e: 31ac adds r1, #172 ; 0xac
14480: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
14482: 2142 movs r1, #66 ; 0x42
14484: 0020 movs r0, r4
14486: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
14488: 2142 movs r1, #66 ; 0x42
1448a: 0020 movs r0, r4
1448c: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns);
1448e: 6839 ldr r1, [r7, #0]
14490: 31a4 adds r1, #164 ; 0xa4
14492: 47b0 blx r6
break;
14494: e645 b.n 14122 <theme_apply+0x2e>
14496: 46c0 nop ; (mov r8, r8)
14498: 0002acf8 .word 0x0002acf8
1449c: 00002625 .word 0x00002625
144a0: 00002549 .word 0x00002549
144a4: 20004c4c .word 0x20004c4c
144a8: 00005c65 .word 0x00005c65
144ac: 00002ff5 .word 0x00002ff5
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
144b0: 2100 movs r1, #0
144b2: 4df3 ldr r5, [pc, #972] ; (14880 <theme_apply+0x78c>)
144b4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
144b6: 2140 movs r1, #64 ; 0x40
144b8: 0020 movs r0, r4
144ba: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
144bc: 2140 movs r1, #64 ; 0x40
144be: 0020 movs r0, r4
144c0: 4bf0 ldr r3, [pc, #960] ; (14884 <theme_apply+0x790>)
144c2: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
144c4: 4bf0 ldr r3, [pc, #960] ; (14888 <theme_apply+0x794>)
144c6: 6819 ldr r1, [r3, #0]
144c8: 31b0 adds r1, #176 ; 0xb0
144ca: 4bf0 ldr r3, [pc, #960] ; (1488c <theme_apply+0x798>)
144cc: 4798 blx r3
break;
144ce: e628 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
144d0: 2100 movs r1, #0
144d2: 4beb ldr r3, [pc, #940] ; (14880 <theme_apply+0x78c>)
144d4: 4698 mov r8, r3
144d6: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
144d8: 2100 movs r1, #0
144da: 0020 movs r0, r4
144dc: 4fe9 ldr r7, [pc, #932] ; (14884 <theme_apply+0x790>)
144de: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
144e0: 4ee9 ldr r6, [pc, #932] ; (14888 <theme_apply+0x794>)
144e2: 6831 ldr r1, [r6, #0]
144e4: 4de9 ldr r5, [pc, #932] ; (1488c <theme_apply+0x798>)
144e6: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
144e8: 2101 movs r1, #1
144ea: 0020 movs r0, r4
144ec: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
144ee: 2101 movs r1, #1
144f0: 0020 movs r0, r4
144f2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
144f4: 6831 ldr r1, [r6, #0]
144f6: 3180 adds r1, #128 ; 0x80
144f8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
144fa: 2102 movs r1, #2
144fc: 0020 movs r0, r4
144fe: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
14500: 2102 movs r1, #2
14502: 0020 movs r0, r4
14504: 47b8 blx r7
_lv_style_list_add_style(list, &styles->edge_flash);
14506: 6831 ldr r1, [r6, #0]
14508: 3184 adds r1, #132 ; 0x84
1450a: 47a8 blx r5
break;
1450c: e609 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
1450e: 2100 movs r1, #0
14510: 4bdb ldr r3, [pc, #876] ; (14880 <theme_apply+0x78c>)
14512: 4699 mov r9, r3
14514: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
14516: 2100 movs r1, #0
14518: 0020 movs r0, r4
1451a: 4fda ldr r7, [pc, #872] ; (14884 <theme_apply+0x790>)
1451c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
1451e: 4eda ldr r6, [pc, #872] ; (14888 <theme_apply+0x794>)
14520: 6833 ldr r3, [r6, #0]
14522: 1d19 adds r1, r3, #4
14524: 9001 str r0, [sp, #4]
14526: 4dd9 ldr r5, [pc, #868] ; (1488c <theme_apply+0x798>)
14528: 47a8 blx r5
_lv_style_list_add_style(list, &styles->roller_bg);
1452a: 6831 ldr r1, [r6, #0]
1452c: 3188 adds r1, #136 ; 0x88
1452e: 9801 ldr r0, [sp, #4]
14530: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED);
14532: 2103 movs r1, #3
14534: 0020 movs r0, r4
14536: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED);
14538: 2103 movs r1, #3
1453a: 0020 movs r0, r4
1453c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->roller_sel);
1453e: 6831 ldr r1, [r6, #0]
14540: 318c adds r1, #140 ; 0x8c
14542: 47a8 blx r5
break;
14544: e5ed b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN);
14546: 2100 movs r1, #0
14548: 4bcd ldr r3, [pc, #820] ; (14880 <theme_apply+0x78c>)
1454a: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN);
1454c: 2100 movs r1, #0
1454e: 0020 movs r0, r4
14550: 4bcc ldr r3, [pc, #816] ; (14884 <theme_apply+0x790>)
14552: 4798 blx r3
break;
14554: e5e5 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
14556: 2100 movs r1, #0
14558: 4bc9 ldr r3, [pc, #804] ; (14880 <theme_apply+0x78c>)
1455a: 4698 mov r8, r3
1455c: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
1455e: 2100 movs r1, #0
14560: 0020 movs r0, r4
14562: 4fc8 ldr r7, [pc, #800] ; (14884 <theme_apply+0x790>)
14564: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
14566: 4ec8 ldr r6, [pc, #800] ; (14888 <theme_apply+0x794>)
14568: 6833 ldr r3, [r6, #0]
1456a: 1d19 adds r1, r3, #4
1456c: 9001 str r0, [sp, #4]
1456e: 4dc7 ldr r5, [pc, #796] ; (1488c <theme_apply+0x798>)
14570: 47a8 blx r5
_lv_style_list_add_style(list, &styles->list_bg);
14572: 6831 ldr r1, [r6, #0]
14574: 3174 adds r1, #116 ; 0x74
14576: 9801 ldr r0, [sp, #4]
14578: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE);
1457a: 2140 movs r1, #64 ; 0x40
1457c: 0020 movs r0, r4
1457e: 47c0 blx r8
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR);
14580: 2101 movs r1, #1
14582: 0020 movs r0, r4
14584: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR);
14586: 2101 movs r1, #1
14588: 0020 movs r0, r4
1458a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
1458c: 6831 ldr r1, [r6, #0]
1458e: 3180 adds r1, #128 ; 0x80
14590: 47a8 blx r5
break;
14592: e5c6 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
14594: 2100 movs r1, #0
14596: 4bba ldr r3, [pc, #744] ; (14880 <theme_apply+0x78c>)
14598: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
1459a: 2100 movs r1, #0
1459c: 0020 movs r0, r4
1459e: 4bb9 ldr r3, [pc, #740] ; (14884 <theme_apply+0x790>)
145a0: 4798 blx r3
_lv_style_list_add_style(list, &styles->list_btn);
145a2: 4bb9 ldr r3, [pc, #740] ; (14888 <theme_apply+0x794>)
145a4: 6819 ldr r1, [r3, #0]
145a6: 3178 adds r1, #120 ; 0x78
145a8: 4bb8 ldr r3, [pc, #736] ; (1488c <theme_apply+0x798>)
145aa: 4798 blx r3
break;
145ac: e5b9 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
145ae: 2100 movs r1, #0
145b0: 4bb3 ldr r3, [pc, #716] ; (14880 <theme_apply+0x78c>)
145b2: 4699 mov r9, r3
145b4: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
145b6: 2100 movs r1, #0
145b8: 0020 movs r0, r4
145ba: 4fb2 ldr r7, [pc, #712] ; (14884 <theme_apply+0x790>)
145bc: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
145be: 4eb2 ldr r6, [pc, #712] ; (14888 <theme_apply+0x794>)
145c0: 6833 ldr r3, [r6, #0]
145c2: 1d19 adds r1, r3, #4
145c4: 9001 str r0, [sp, #4]
145c6: 4db1 ldr r5, [pc, #708] ; (1488c <theme_apply+0x798>)
145c8: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
145ca: 6831 ldr r1, [r6, #0]
145cc: 3108 adds r1, #8
145ce: 9801 ldr r0, [sp, #4]
145d0: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
145d2: 6831 ldr r1, [r6, #0]
145d4: 3118 adds r1, #24
145d6: 9801 ldr r0, [sp, #4]
145d8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST);
145da: 2140 movs r1, #64 ; 0x40
145dc: 0020 movs r0, r4
145de: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
145e0: 2140 movs r1, #64 ; 0x40
145e2: 0020 movs r0, r4
145e4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
145e6: 6833 ldr r3, [r6, #0]
145e8: 1d19 adds r1, r3, #4
145ea: 9001 str r0, [sp, #4]
145ec: 47a8 blx r5
_lv_style_list_add_style(list, &styles->ddlist_page);
145ee: 6831 ldr r1, [r6, #0]
145f0: 3154 adds r1, #84 ; 0x54
145f2: 9801 ldr r0, [sp, #4]
145f4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
145f6: 2141 movs r1, #65 ; 0x41
145f8: 0020 movs r0, r4
145fa: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
145fc: 2141 movs r1, #65 ; 0x41
145fe: 0020 movs r0, r4
14600: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
14602: 6831 ldr r1, [r6, #0]
14604: 3180 adds r1, #128 ; 0x80
14606: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED);
14608: 2142 movs r1, #66 ; 0x42
1460a: 0020 movs r0, r4
1460c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED);
1460e: 2142 movs r1, #66 ; 0x42
14610: 0020 movs r0, r4
14612: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ddlist_sel);
14614: 6831 ldr r1, [r6, #0]
14616: 3158 adds r1, #88 ; 0x58
14618: 47a8 blx r5
break;
1461a: e582 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
1461c: 2100 movs r1, #0
1461e: 4b98 ldr r3, [pc, #608] ; (14880 <theme_apply+0x78c>)
14620: 4699 mov r9, r3
14622: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
14624: 2100 movs r1, #0
14626: 0020 movs r0, r4
14628: 4f96 ldr r7, [pc, #600] ; (14884 <theme_apply+0x790>)
1462a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
1462c: 4e96 ldr r6, [pc, #600] ; (14888 <theme_apply+0x794>)
1462e: 6833 ldr r3, [r6, #0]
14630: 1d19 adds r1, r3, #4
14632: 9001 str r0, [sp, #4]
14634: 4d95 ldr r5, [pc, #596] ; (1488c <theme_apply+0x798>)
14636: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_bg);
14638: 6831 ldr r1, [r6, #0]
1463a: 3140 adds r1, #64 ; 0x40
1463c: 9801 ldr r0, [sp, #4]
1463e: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
14640: 6831 ldr r1, [r6, #0]
14642: 3118 adds r1, #24
14644: 9801 ldr r0, [sp, #4]
14646: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG);
14648: 2101 movs r1, #1
1464a: 0020 movs r0, r4
1464c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
1464e: 2101 movs r1, #1
14650: 0020 movs r0, r4
14652: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_small);
14654: 6831 ldr r1, [r6, #0]
14656: 3118 adds r1, #24
14658: 9001 str r0, [sp, #4]
1465a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_series_bg);
1465c: 6831 ldr r1, [r6, #0]
1465e: 3144 adds r1, #68 ; 0x44
14660: 9801 ldr r0, [sp, #4]
14662: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES);
14664: 2102 movs r1, #2
14666: 0020 movs r0, r4
14668: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES);
1466a: 2102 movs r1, #2
1466c: 0020 movs r0, r4
1466e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->chart_series);
14670: 6831 ldr r1, [r6, #0]
14672: 3148 adds r1, #72 ; 0x48
14674: 47a8 blx r5
break;
14676: e554 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
14678: 2100 movs r1, #0
1467a: 4b81 ldr r3, [pc, #516] ; (14880 <theme_apply+0x78c>)
1467c: 4698 mov r8, r3
1467e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
14680: 2100 movs r1, #0
14682: 0020 movs r0, r4
14684: 4f7f ldr r7, [pc, #508] ; (14884 <theme_apply+0x790>)
14686: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
14688: 4e7f ldr r6, [pc, #508] ; (14888 <theme_apply+0x794>)
1468a: 6833 ldr r3, [r6, #0]
1468c: 1d19 adds r1, r3, #4
1468e: 4d7f ldr r5, [pc, #508] ; (1488c <theme_apply+0x798>)
14690: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1);
14692: 2101 movs r1, #1
14694: 0020 movs r0, r4
14696: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1);
14698: 2101 movs r1, #1
1469a: 0020 movs r0, r4
1469c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
1469e: 6831 ldr r1, [r6, #0]
146a0: 31a0 adds r1, #160 ; 0xa0
146a2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2);
146a4: 2102 movs r1, #2
146a6: 0020 movs r0, r4
146a8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2);
146aa: 2102 movs r1, #2
146ac: 0020 movs r0, r4
146ae: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
146b0: 6831 ldr r1, [r6, #0]
146b2: 31a0 adds r1, #160 ; 0xa0
146b4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3);
146b6: 2103 movs r1, #3
146b8: 0020 movs r0, r4
146ba: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3);
146bc: 2103 movs r1, #3
146be: 0020 movs r0, r4
146c0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
146c2: 6831 ldr r1, [r6, #0]
146c4: 31a0 adds r1, #160 ; 0xa0
146c6: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4);
146c8: 2104 movs r1, #4
146ca: 0020 movs r0, r4
146cc: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4);
146ce: 2104 movs r1, #4
146d0: 0020 movs r0, r4
146d2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
146d4: 6831 ldr r1, [r6, #0]
146d6: 31a0 adds r1, #160 ; 0xa0
146d8: 47a8 blx r5
break;
146da: e522 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
146dc: 2100 movs r1, #0
146de: 4b68 ldr r3, [pc, #416] ; (14880 <theme_apply+0x78c>)
146e0: 4698 mov r8, r3
146e2: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
146e4: 2100 movs r1, #0
146e6: 0020 movs r0, r4
146e8: 4f66 ldr r7, [pc, #408] ; (14884 <theme_apply+0x790>)
146ea: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
146ec: 4e66 ldr r6, [pc, #408] ; (14888 <theme_apply+0x794>)
146ee: 6831 ldr r1, [r6, #0]
146f0: 4d66 ldr r5, [pc, #408] ; (1488c <theme_apply+0x798>)
146f2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR);
146f4: 2142 movs r1, #66 ; 0x42
146f6: 0020 movs r0, r4
146f8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR);
146fa: 2142 movs r1, #66 ; 0x42
146fc: 0020 movs r0, r4
146fe: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
14700: 6831 ldr r1, [r6, #0]
14702: 3180 adds r1, #128 ; 0x80
14704: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
14706: 2141 movs r1, #65 ; 0x41
14708: 0020 movs r0, r4
1470a: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
1470c: 2141 movs r1, #65 ; 0x41
1470e: 0020 movs r0, r4
14710: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
14712: 6831 ldr r1, [r6, #0]
14714: 31b0 adds r1, #176 ; 0xb0
14716: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER);
14718: 2140 movs r1, #64 ; 0x40
1471a: 0020 movs r0, r4
1471c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER);
1471e: 2140 movs r1, #64 ; 0x40
14720: 0020 movs r0, r4
14722: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
14724: 6831 ldr r1, [r6, #0]
14726: 31a8 adds r1, #168 ; 0xa8
14728: 47a8 blx r5
break;
1472a: e4fa b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
1472c: 2100 movs r1, #0
1472e: 4b54 ldr r3, [pc, #336] ; (14880 <theme_apply+0x78c>)
14730: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
14732: 2100 movs r1, #0
14734: 0020 movs r0, r4
14736: 4b53 ldr r3, [pc, #332] ; (14884 <theme_apply+0x790>)
14738: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_btns);
1473a: 4b53 ldr r3, [pc, #332] ; (14888 <theme_apply+0x794>)
1473c: 6819 ldr r1, [r3, #0]
1473e: 31a4 adds r1, #164 ; 0xa4
14740: 4b52 ldr r3, [pc, #328] ; (1488c <theme_apply+0x798>)
14742: 4798 blx r3
break;
14744: e4ed b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
14746: 2100 movs r1, #0
14748: 4b4d ldr r3, [pc, #308] ; (14880 <theme_apply+0x78c>)
1474a: 4699 mov r9, r3
1474c: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
1474e: 2100 movs r1, #0
14750: 0020 movs r0, r4
14752: 4f4c ldr r7, [pc, #304] ; (14884 <theme_apply+0x790>)
14754: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
14756: 4e4c ldr r6, [pc, #304] ; (14888 <theme_apply+0x794>)
14758: 6833 ldr r3, [r6, #0]
1475a: 1d19 adds r1, r3, #4
1475c: 9001 str r0, [sp, #4]
1475e: 4d4b ldr r5, [pc, #300] ; (1488c <theme_apply+0x798>)
14760: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
14762: 6831 ldr r1, [r6, #0]
14764: 3118 adds r1, #24
14766: 9801 ldr r0, [sp, #4]
14768: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
1476a: 2104 movs r1, #4
1476c: 0020 movs r0, r4
1476e: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
14770: 2104 movs r1, #4
14772: 0020 movs r0, r4
14774: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_placeholder);
14776: 6831 ldr r1, [r6, #0]
14778: 31b8 adds r1, #184 ; 0xb8
1477a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR);
1477c: 2103 movs r1, #3
1477e: 0020 movs r0, r4
14780: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR);
14782: 2103 movs r1, #3
14784: 0020 movs r0, r4
14786: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_cursor);
14788: 6831 ldr r1, [r6, #0]
1478a: 31b4 adds r1, #180 ; 0xb4
1478c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
1478e: 2101 movs r1, #1
14790: 0020 movs r0, r4
14792: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
14794: 2101 movs r1, #1
14796: 0020 movs r0, r4
14798: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
1479a: 6831 ldr r1, [r6, #0]
1479c: 3180 adds r1, #128 ; 0x80
1479e: 47a8 blx r5
break;
147a0: e4bf b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
147a2: 2100 movs r1, #0
147a4: 4b36 ldr r3, [pc, #216] ; (14880 <theme_apply+0x78c>)
147a6: 4699 mov r9, r3
147a8: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
147aa: 2100 movs r1, #0
147ac: 0020 movs r0, r4
147ae: 4f35 ldr r7, [pc, #212] ; (14884 <theme_apply+0x790>)
147b0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
147b2: 4e35 ldr r6, [pc, #212] ; (14888 <theme_apply+0x794>)
147b4: 6833 ldr r3, [r6, #0]
147b6: 1d19 adds r1, r3, #4
147b8: 9001 str r0, [sp, #4]
147ba: 4d34 ldr r5, [pc, #208] ; (1488c <theme_apply+0x798>)
147bc: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
147be: 6831 ldr r1, [r6, #0]
147c0: 3118 adds r1, #24
147c2: 9801 ldr r0, [sp, #4]
147c4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR);
147c6: 2103 movs r1, #3
147c8: 0020 movs r0, r4
147ca: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR);
147cc: 2103 movs r1, #3
147ce: 0020 movs r0, r4
147d0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->spinbox_cursor);
147d2: 6831 ldr r1, [r6, #0]
147d4: 3198 adds r1, #152 ; 0x98
147d6: 47a8 blx r5
break;
147d8: e4a3 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
147da: 2100 movs r1, #0
147dc: 4b28 ldr r3, [pc, #160] ; (14880 <theme_apply+0x78c>)
147de: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
147e0: 2100 movs r1, #0
147e2: 0020 movs r0, r4
147e4: 4b27 ldr r3, [pc, #156] ; (14884 <theme_apply+0x790>)
147e6: 4798 blx r3
147e8: 0005 movs r5, r0
_lv_style_list_add_style(list, &styles->bg);
147ea: 4f27 ldr r7, [pc, #156] ; (14888 <theme_apply+0x794>)
147ec: 683b ldr r3, [r7, #0]
147ee: 1d19 adds r1, r3, #4
147f0: 4e26 ldr r6, [pc, #152] ; (1488c <theme_apply+0x798>)
147f2: 47b0 blx r6
_lv_style_list_add_style(list, &styles->bg_click);
147f4: 6839 ldr r1, [r7, #0]
147f6: 3108 adds r1, #8
147f8: 0028 movs r0, r5
147fa: 47b0 blx r6
break;
147fc: e491 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
147fe: 2100 movs r1, #0
14800: 4b1f ldr r3, [pc, #124] ; (14880 <theme_apply+0x78c>)
14802: 4698 mov r8, r3
14804: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
14806: 2100 movs r1, #0
14808: 0020 movs r0, r4
1480a: 4f1e ldr r7, [pc, #120] ; (14884 <theme_apply+0x790>)
1480c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
1480e: 4e1e ldr r6, [pc, #120] ; (14888 <theme_apply+0x794>)
14810: 6833 ldr r3, [r6, #0]
14812: 1d19 adds r1, r3, #4
14814: 4d1d ldr r5, [pc, #116] ; (1488c <theme_apply+0x798>)
14816: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE);
14818: 2103 movs r1, #3
1481a: 0020 movs r0, r4
1481c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE);
1481e: 2103 movs r1, #3
14820: 0020 movs r0, r4
14822: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_date_nums);
14824: 6831 ldr r1, [r6, #0]
14826: 312c adds r1, #44 ; 0x2c
14828: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER);
1482a: 2101 movs r1, #1
1482c: 0020 movs r0, r4
1482e: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER);
14830: 2101 movs r1, #1
14832: 0020 movs r0, r4
14834: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_header);
14836: 6831 ldr r1, [r6, #0]
14838: 3130 adds r1, #48 ; 0x30
1483a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
1483c: 2102 movs r1, #2
1483e: 0020 movs r0, r4
14840: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
14842: 2102 movs r1, #2
14844: 0020 movs r0, r4
14846: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_daynames);
14848: 6831 ldr r1, [r6, #0]
1484a: 3134 adds r1, #52 ; 0x34
1484c: 47a8 blx r5
break;
1484e: e468 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
14850: 2100 movs r1, #0
14852: 4b0b ldr r3, [pc, #44] ; (14880 <theme_apply+0x78c>)
14854: 4698 mov r8, r3
14856: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
14858: 2100 movs r1, #0
1485a: 0020 movs r0, r4
1485c: 4f09 ldr r7, [pc, #36] ; (14884 <theme_apply+0x790>)
1485e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_bg);
14860: 4e09 ldr r6, [pc, #36] ; (14888 <theme_apply+0x794>)
14862: 6831 ldr r1, [r6, #0]
14864: 3138 adds r1, #56 ; 0x38
14866: 4d09 ldr r5, [pc, #36] ; (1488c <theme_apply+0x798>)
14868: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB);
1486a: 2101 movs r1, #1
1486c: 0020 movs r0, r4
1486e: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB);
14870: 2101 movs r1, #1
14872: 0020 movs r0, r4
14874: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_indic);
14876: 6831 ldr r1, [r6, #0]
14878: 313c adds r1, #60 ; 0x3c
1487a: 47a8 blx r5
break;
1487c: e451 b.n 14122 <theme_apply+0x2e>
1487e: 46c0 nop ; (mov r8, r8)
14880: 00002625 .word 0x00002625
14884: 00002549 .word 0x00002549
14888: 20004c4c .word 0x20004c4c
1488c: 00005c65 .word 0x00005c65
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
14890: 2100 movs r1, #0
14892: 4b1b ldr r3, [pc, #108] ; (14900 <theme_apply+0x80c>)
14894: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
14896: 2100 movs r1, #0
14898: 0020 movs r0, r4
1489a: 4b1a ldr r3, [pc, #104] ; (14904 <theme_apply+0x810>)
1489c: 4798 blx r3
1489e: 0005 movs r5, r0
_lv_style_list_add_style(list, &styles->bg);
148a0: 4f19 ldr r7, [pc, #100] ; (14908 <theme_apply+0x814>)
148a2: 683b ldr r3, [r7, #0]
148a4: 1d19 adds r1, r3, #4
148a6: 4e19 ldr r6, [pc, #100] ; (1490c <theme_apply+0x818>)
148a8: 47b0 blx r6
_lv_style_list_add_style(list, &styles->lmeter);
148aa: 6839 ldr r1, [r7, #0]
148ac: 3170 adds r1, #112 ; 0x70
148ae: 0028 movs r0, r5
148b0: 47b0 blx r6
break;
148b2: e436 b.n 14122 <theme_apply+0x2e>
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
148b4: 2100 movs r1, #0
148b6: 4b12 ldr r3, [pc, #72] ; (14900 <theme_apply+0x80c>)
148b8: 4699 mov r9, r3
148ba: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
148bc: 2100 movs r1, #0
148be: 0020 movs r0, r4
148c0: 4f10 ldr r7, [pc, #64] ; (14904 <theme_apply+0x810>)
148c2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
148c4: 4e10 ldr r6, [pc, #64] ; (14908 <theme_apply+0x814>)
148c6: 6833 ldr r3, [r6, #0]
148c8: 1d19 adds r1, r3, #4
148ca: 9001 str r0, [sp, #4]
148cc: 4d0f ldr r5, [pc, #60] ; (1490c <theme_apply+0x818>)
148ce: 47a8 blx r5
_lv_style_list_add_style(list, &styles->gauge_main);
148d0: 6831 ldr r1, [r6, #0]
148d2: 315c adds r1, #92 ; 0x5c
148d4: 9801 ldr r0, [sp, #4]
148d6: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR);
148d8: 2101 movs r1, #1
148da: 0020 movs r0, r4
148dc: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR);
148de: 2101 movs r1, #1
148e0: 0020 movs r0, r4
148e2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_strong);
148e4: 6831 ldr r1, [r6, #0]
148e6: 3160 adds r1, #96 ; 0x60
148e8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE);
148ea: 2102 movs r1, #2
148ec: 0020 movs r0, r4
148ee: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE);
148f0: 2102 movs r1, #2
148f2: 0020 movs r0, r4
148f4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_needle);
148f6: 6831 ldr r1, [r6, #0]
148f8: 3164 adds r1, #100 ; 0x64
148fa: 47a8 blx r5
break;
148fc: f7ff fc11 bl 14122 <theme_apply+0x2e>
14900: 00002625 .word 0x00002625
14904: 00002549 .word 0x00002549
14908: 20004c4c .word 0x20004c4c
1490c: 00005c65 .word 0x00005c65
00014910 <style_init_reset>:
/**********************
* STATIC FUNCTIONS
**********************/
static void style_init_reset(lv_style_t * style)
{
14910: b510 push {r4, lr}
if(inited) lv_style_reset(style);
14912: 4b05 ldr r3, [pc, #20] ; (14928 <style_init_reset+0x18>)
14914: 781b ldrb r3, [r3, #0]
14916: 2b00 cmp r3, #0
14918: d102 bne.n 14920 <style_init_reset+0x10>
else lv_style_init(style);
1491a: 4b04 ldr r3, [pc, #16] ; (1492c <style_init_reset+0x1c>)
1491c: 4798 blx r3
}
1491e: bd10 pop {r4, pc}
if(inited) lv_style_reset(style);
14920: 4b03 ldr r3, [pc, #12] ; (14930 <style_init_reset+0x20>)
14922: 4798 blx r3
14924: e7fb b.n 1491e <style_init_reset+0xe>
14926: 46c0 nop ; (mov r8, r8)
14928: 20004c48 .word 0x20004c48
1492c: 00005b61 .word 0x00005b61
14930: 00005e01 .word 0x00005e01
00014934 <basic_init>:
{
14934: b5f8 push {r3, r4, r5, r6, r7, lr}
14936: 46ce mov lr, r9
14938: 4647 mov r7, r8
1493a: b580 push {r7, lr}
style_init_reset(&styles->scr);
1493c: 4cf9 ldr r4, [pc, #996] ; (14d24 <basic_init+0x3f0>)
1493e: 6820 ldr r0, [r4, #0]
14940: 4bf9 ldr r3, [pc, #996] ; (14d28 <basic_init+0x3f4>)
14942: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
14944: 22ff movs r2, #255 ; 0xff
14946: 212c movs r1, #44 ; 0x2c
14948: 6820 ldr r0, [r4, #0]
1494a: 4bf8 ldr r3, [pc, #992] ; (14d2c <basic_init+0x3f8>)
1494c: 4798 blx r3
lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR);
1494e: 6820 ldr r0, [r4, #0]
14950: 4bf7 ldr r3, [pc, #988] ; (14d30 <basic_init+0x3fc>)
14952: 699b ldr r3, [r3, #24]
14954: 079b lsls r3, r3, #30
14956: d501 bpl.n 1495c <basic_init+0x28>
14958: f000 fe5d bl 15616 <basic_init+0xce2>
1495c: 2308 movs r3, #8
1495e: 2112 movs r1, #18
14960: 220b movs r2, #11
14962: 0149 lsls r1, r1, #5
14964: 02db lsls r3, r3, #11
14966: 430a orrs r2, r1
14968: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1496a: 2129 movs r1, #41 ; 0x29
1496c: 4bf1 ldr r3, [pc, #964] ; (14d34 <basic_init+0x400>)
1496e: 4798 blx r3
lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
14970: 4bec ldr r3, [pc, #944] ; (14d24 <basic_init+0x3f0>)
14972: 6818 ldr r0, [r3, #0]
14974: 4bee ldr r3, [pc, #952] ; (14d30 <basic_init+0x3fc>)
14976: 699b ldr r3, [r3, #24]
14978: 079b lsls r3, r3, #30
1497a: d501 bpl.n 14980 <basic_init+0x4c>
1497c: f000 fe50 bl 15620 <basic_init+0xcec>
14980: 231c movs r3, #28
14982: 213a movs r1, #58 ; 0x3a
14984: 221d movs r2, #29
14986: 0149 lsls r1, r1, #5
14988: 02db lsls r3, r3, #11
1498a: 430a orrs r2, r1
1498c: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1498e: 49ea ldr r1, [pc, #936] ; (14d38 <basic_init+0x404>)
14990: 4be8 ldr r3, [pc, #928] ; (14d34 <basic_init+0x400>)
14992: 4798 blx r3
lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
14994: 4be3 ldr r3, [pc, #908] ; (14d24 <basic_init+0x3f0>)
14996: 6818 ldr r0, [r3, #0]
14998: 4be5 ldr r3, [pc, #916] ; (14d30 <basic_init+0x3fc>)
1499a: 699b ldr r3, [r3, #24]
1499c: 079b lsls r3, r3, #30
1499e: d501 bpl.n 149a4 <basic_init+0x70>
149a0: f000 fe43 bl 1562a <basic_init+0xcf6>
149a4: 231c movs r3, #28
149a6: 213a movs r1, #58 ; 0x3a
149a8: 221d movs r2, #29
149aa: 0149 lsls r1, r1, #5
149ac: 02db lsls r3, r3, #11
149ae: 430a orrs r2, r1
149b0: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
149b2: 2179 movs r1, #121 ; 0x79
149b4: 4bdf ldr r3, [pc, #892] ; (14d34 <basic_init+0x400>)
149b6: 4798 blx r3
lv_style_set_text_font(&styles->scr, LV_STATE_DEFAULT, theme.font_normal);
149b8: 4edd ldr r6, [pc, #884] ; (14d30 <basic_init+0x3fc>)
149ba: 4cda ldr r4, [pc, #872] ; (14d24 <basic_init+0x3f0>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
149bc: 68f2 ldr r2, [r6, #12]
149be: 49df ldr r1, [pc, #892] ; (14d3c <basic_init+0x408>)
149c0: 6820 ldr r0, [r4, #0]
149c2: 4ddf ldr r5, [pc, #892] ; (14d40 <basic_init+0x40c>)
149c4: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
149c6: 68f2 ldr r2, [r6, #12]
149c8: 217e movs r1, #126 ; 0x7e
149ca: 6820 ldr r0, [r4, #0]
149cc: 47a8 blx r5
style_init_reset(&styles->bg);
149ce: 6823 ldr r3, [r4, #0]
149d0: 1d18 adds r0, r3, #4
149d2: 4bd5 ldr r3, [pc, #852] ; (14d28 <basic_init+0x3f4>)
149d4: 4798 blx r3
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
149d6: 6824 ldr r4, [r4, #0]
149d8: 3404 adds r4, #4
149da: 2000 movs r0, #0
149dc: 4bd9 ldr r3, [pc, #868] ; (14d44 <basic_init+0x410>)
149de: 4798 blx r3
149e0: 300a adds r0, #10
149e2: 00c0 lsls r0, r0, #3
149e4: 2340 movs r3, #64 ; 0x40
149e6: 33ff adds r3, #255 ; 0xff
149e8: 2201 movs r2, #1
149ea: 4298 cmp r0, r3
149ec: d901 bls.n 149f2 <basic_init+0xbe>
149ee: f000 fe21 bl 15634 <basic_init+0xd00>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
149f2: 2101 movs r1, #1
149f4: 0020 movs r0, r4
149f6: 4bd4 ldr r3, [pc, #848] ; (14d48 <basic_init+0x414>)
149f8: 4798 blx r3
lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER);
149fa: 4cca ldr r4, [pc, #808] ; (14d24 <basic_init+0x3f0>)
149fc: 6823 ldr r3, [r4, #0]
149fe: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
14a00: 22ff movs r2, #255 ; 0xff
14a02: 212c movs r1, #44 ; 0x2c
14a04: 4bc9 ldr r3, [pc, #804] ; (14d2c <basic_init+0x3f8>)
14a06: 4798 blx r3
lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG);
14a08: 6820 ldr r0, [r4, #0]
14a0a: 3004 adds r0, #4
14a0c: 4bc8 ldr r3, [pc, #800] ; (14d30 <basic_init+0x3fc>)
14a0e: 699b ldr r3, [r3, #24]
14a10: 079b lsls r3, r3, #30
14a12: d501 bpl.n 14a18 <basic_init+0xe4>
14a14: f000 fe19 bl 1564a <basic_init+0xd16>
14a18: 230b movs r3, #11
14a1a: 2118 movs r1, #24
14a1c: 220e movs r2, #14
14a1e: 0149 lsls r1, r1, #5
14a20: 02db lsls r3, r3, #11
14a22: 430a orrs r2, r1
14a24: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
14a26: 2129 movs r1, #41 ; 0x29
14a28: 4bc2 ldr r3, [pc, #776] ; (14d34 <basic_init+0x400>)
14a2a: 4798 blx r3
lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
14a2c: 4bbd ldr r3, [pc, #756] ; (14d24 <basic_init+0x3f0>)
14a2e: 6818 ldr r0, [r3, #0]
14a30: 3004 adds r0, #4
14a32: 4bbf ldr r3, [pc, #764] ; (14d30 <basic_init+0x3fc>)
14a34: 699b ldr r3, [r3, #24]
14a36: 079b lsls r3, r3, #30
14a38: d501 bpl.n 14a3e <basic_init+0x10a>
14a3a: f000 fe0b bl 15654 <basic_init+0xd20>
14a3e: 2310 movs r3, #16
14a40: 2122 movs r1, #34 ; 0x22
14a42: 2212 movs r2, #18
14a44: 0149 lsls r1, r1, #5
14a46: 02db lsls r3, r3, #11
14a48: 430a orrs r2, r1
14a4a: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
14a4c: 2139 movs r1, #57 ; 0x39
14a4e: 4db9 ldr r5, [pc, #740] ; (14d34 <basic_init+0x400>)
14a50: 47a8 blx r5
lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary);
14a52: 4cb4 ldr r4, [pc, #720] ; (14d24 <basic_init+0x3f0>)
14a54: 6823 ldr r3, [r4, #0]
14a56: 1d18 adds r0, r3, #4
14a58: 4eb5 ldr r6, [pc, #724] ; (14d30 <basic_init+0x3fc>)
14a5a: 88b2 ldrh r2, [r6, #4]
14a5c: 49bb ldr r1, [pc, #748] ; (14d4c <basic_init+0x418>)
14a5e: 47a8 blx r5
lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary);
14a60: 6823 ldr r3, [r4, #0]
14a62: 1d18 adds r0, r3, #4
14a64: 88f2 ldrh r2, [r6, #6]
14a66: 49ba ldr r1, [pc, #744] ; (14d50 <basic_init+0x41c>)
14a68: 47a8 blx r5
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
14a6a: 6824 ldr r4, [r4, #0]
14a6c: 3404 adds r4, #4
14a6e: 2000 movs r0, #0
14a70: 4bb4 ldr r3, [pc, #720] ; (14d44 <basic_init+0x410>)
14a72: 4798 blx r3
14a74: 3028 adds r0, #40 ; 0x28
14a76: 0040 lsls r0, r0, #1
14a78: 2340 movs r3, #64 ; 0x40
14a7a: 33ff adds r3, #255 ; 0xff
14a7c: 2201 movs r2, #1
14a7e: 4298 cmp r0, r3
14a80: d901 bls.n 14a86 <basic_init+0x152>
14a82: f000 fdec bl 1565e <basic_init+0xd2a>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
14a86: 2130 movs r1, #48 ; 0x30
14a88: 0020 movs r0, r4
14a8a: 4daf ldr r5, [pc, #700] ; (14d48 <basic_init+0x414>)
14a8c: 47a8 blx r5
lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true);
14a8e: 4ca5 ldr r4, [pc, #660] ; (14d24 <basic_init+0x3f0>)
14a90: 6823 ldr r3, [r4, #0]
14a92: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
14a94: 2201 movs r2, #1
14a96: 2133 movs r1, #51 ; 0x33
14a98: 47a8 blx r5
lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
14a9a: 4da5 ldr r5, [pc, #660] ; (14d30 <basic_init+0x3fc>)
14a9c: 6823 ldr r3, [r4, #0]
14a9e: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
14aa0: 68ea ldr r2, [r5, #12]
14aa2: 49a6 ldr r1, [pc, #664] ; (14d3c <basic_init+0x408>)
14aa4: 4ba6 ldr r3, [pc, #664] ; (14d40 <basic_init+0x40c>)
14aa6: 4798 blx r3
lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
14aa8: 6820 ldr r0, [r4, #0]
14aaa: 3004 adds r0, #4
14aac: 69ab ldr r3, [r5, #24]
14aae: 079b lsls r3, r3, #30
14ab0: d501 bpl.n 14ab6 <basic_init+0x182>
14ab2: f000 fddf bl 15674 <basic_init+0xd40>
14ab6: 231f movs r3, #31
14ab8: 213f movs r1, #63 ; 0x3f
14aba: 221f movs r2, #31
14abc: 0149 lsls r1, r1, #5
14abe: 02db lsls r3, r3, #11
14ac0: 430a orrs r2, r1
14ac2: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
14ac4: 499c ldr r1, [pc, #624] ; (14d38 <basic_init+0x404>)
14ac6: 4b9b ldr r3, [pc, #620] ; (14d34 <basic_init+0x400>)
14ac8: 4798 blx r3
lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
14aca: 4c99 ldr r4, [pc, #612] ; (14d30 <basic_init+0x3fc>)
14acc: 4d95 ldr r5, [pc, #596] ; (14d24 <basic_init+0x3f0>)
14ace: 682b ldr r3, [r5, #0]
14ad0: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
14ad2: 68e2 ldr r2, [r4, #12]
14ad4: 217e movs r1, #126 ; 0x7e
14ad6: 4b9a ldr r3, [pc, #616] ; (14d40 <basic_init+0x40c>)
14ad8: 4798 blx r3
lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
14ada: 6828 ldr r0, [r5, #0]
14adc: 3004 adds r0, #4
14ade: 69a3 ldr r3, [r4, #24]
14ae0: 079b lsls r3, r3, #30
14ae2: d501 bpl.n 14ae8 <basic_init+0x1b4>
14ae4: f000 fdcb bl 1567e <basic_init+0xd4a>
14ae8: 231f movs r3, #31
14aea: 213f movs r1, #63 ; 0x3f
14aec: 221f movs r2, #31
14aee: 0149 lsls r1, r1, #5
14af0: 02db lsls r3, r3, #11
14af2: 430a orrs r2, r1
14af4: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
14af6: 2179 movs r1, #121 ; 0x79
14af8: 4b8e ldr r3, [pc, #568] ; (14d34 <basic_init+0x400>)
14afa: 4798 blx r3
lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
14afc: 4b89 ldr r3, [pc, #548] ; (14d24 <basic_init+0x3f0>)
14afe: 6818 ldr r0, [r3, #0]
14b00: 3004 adds r0, #4
14b02: 4b8b ldr r3, [pc, #556] ; (14d30 <basic_init+0x3fc>)
14b04: 699b ldr r3, [r3, #24]
14b06: 079b lsls r3, r3, #30
14b08: d501 bpl.n 14b0e <basic_init+0x1da>
14b0a: f000 fdbd bl 15688 <basic_init+0xd54>
14b0e: 231f movs r3, #31
14b10: 213f movs r1, #63 ; 0x3f
14b12: 221f movs r2, #31
14b14: 0149 lsls r1, r1, #5
14b16: 02db lsls r3, r3, #11
14b18: 430a orrs r2, r1
14b1a: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
14b1c: 498d ldr r1, [pc, #564] ; (14d54 <basic_init+0x420>)
14b1e: 4b85 ldr r3, [pc, #532] ; (14d34 <basic_init+0x400>)
14b20: 4798 blx r3
lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
14b22: 4b80 ldr r3, [pc, #512] ; (14d24 <basic_init+0x3f0>)
14b24: 6818 ldr r0, [r3, #0]
14b26: 3004 adds r0, #4
14b28: 4b81 ldr r3, [pc, #516] ; (14d30 <basic_init+0x3fc>)
14b2a: 699b ldr r3, [r3, #24]
14b2c: 079b lsls r3, r3, #30
14b2e: d501 bpl.n 14b34 <basic_init+0x200>
14b30: f000 fdaf bl 15692 <basic_init+0xd5e>
14b34: 231f movs r3, #31
14b36: 213f movs r1, #63 ; 0x3f
14b38: 221f movs r2, #31
14b3a: 0149 lsls r1, r1, #5
14b3c: 02db lsls r3, r3, #11
14b3e: 430a orrs r2, r1
14b40: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
14b42: 2199 movs r1, #153 ; 0x99
14b44: 4b7b ldr r3, [pc, #492] ; (14d34 <basic_init+0x400>)
14b46: 4798 blx r3
lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1);
14b48: 4c76 ldr r4, [pc, #472] ; (14d24 <basic_init+0x3f0>)
14b4a: 6823 ldr r3, [r4, #0]
14b4c: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
14b4e: 2201 movs r2, #1
14b50: 2190 movs r1, #144 ; 0x90
14b52: 4b7d ldr r3, [pc, #500] ; (14d48 <basic_init+0x414>)
14b54: 4798 blx r3
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
14b56: 6825 ldr r5, [r4, #0]
14b58: 3504 adds r5, #4
14b5a: 2000 movs r0, #0
14b5c: 4b7e ldr r3, [pc, #504] ; (14d58 <basic_init+0x424>)
14b5e: 4798 blx r3
14b60: 2801 cmp r0, #1
14b62: d801 bhi.n 14b68 <basic_init+0x234>
14b64: f000 fd9a bl 1569c <basic_init+0xd68>
14b68: 2000 movs r0, #0
14b6a: 4b76 ldr r3, [pc, #472] ; (14d44 <basic_init+0x410>)
14b6c: 4798 blx r3
14b6e: 0103 lsls r3, r0, #4
14b70: 1a18 subs r0, r3, r0
14b72: 0040 lsls r0, r0, #1
14b74: 3050 adds r0, #80 ; 0x50
14b76: 2340 movs r3, #64 ; 0x40
14b78: 33ff adds r3, #255 ; 0xff
14b7a: 2401 movs r4, #1
14b7c: 4298 cmp r0, r3
14b7e: d901 bls.n 14b84 <basic_init+0x250>
14b80: f000 fda5 bl 156ce <basic_init+0xd9a>
14b84: 2000 movs r0, #0
14b86: 4b6f ldr r3, [pc, #444] ; (14d44 <basic_init+0x410>)
14b88: 4798 blx r3
14b8a: 0003 movs r3, r0
14b8c: 3328 adds r3, #40 ; 0x28
14b8e: 005b lsls r3, r3, #1
14b90: 2140 movs r1, #64 ; 0x40
14b92: 31ff adds r1, #255 ; 0xff
14b94: 2201 movs r2, #1
14b96: 428b cmp r3, r1
14b98: d901 bls.n 14b9e <basic_init+0x26a>
14b9a: f000 fda5 bl 156e8 <basic_init+0xdb4>
14b9e: 18a2 adds r2, r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14ba0: b212 sxth r2, r2
14ba2: 2112 movs r1, #18
14ba4: 0028 movs r0, r5
14ba6: 4b68 ldr r3, [pc, #416] ; (14d48 <basic_init+0x414>)
14ba8: 4798 blx r3
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
14baa: 4b5e ldr r3, [pc, #376] ; (14d24 <basic_init+0x3f0>)
14bac: 681d ldr r5, [r3, #0]
14bae: 3504 adds r5, #4
14bb0: 2000 movs r0, #0
14bb2: 4b69 ldr r3, [pc, #420] ; (14d58 <basic_init+0x424>)
14bb4: 4798 blx r3
14bb6: 2801 cmp r0, #1
14bb8: d801 bhi.n 14bbe <basic_init+0x28a>
14bba: f000 fda0 bl 156fe <basic_init+0xdca>
14bbe: 2000 movs r0, #0
14bc0: 4b60 ldr r3, [pc, #384] ; (14d44 <basic_init+0x410>)
14bc2: 4798 blx r3
14bc4: 0103 lsls r3, r0, #4
14bc6: 1a18 subs r0, r3, r0
14bc8: 0040 lsls r0, r0, #1
14bca: 3050 adds r0, #80 ; 0x50
14bcc: 2340 movs r3, #64 ; 0x40
14bce: 33ff adds r3, #255 ; 0xff
14bd0: 2401 movs r4, #1
14bd2: 4298 cmp r0, r3
14bd4: d901 bls.n 14bda <basic_init+0x2a6>
14bd6: f000 fdab bl 15730 <basic_init+0xdfc>
14bda: 2000 movs r0, #0
14bdc: 4b59 ldr r3, [pc, #356] ; (14d44 <basic_init+0x410>)
14bde: 4798 blx r3
14be0: 0003 movs r3, r0
14be2: 3328 adds r3, #40 ; 0x28
14be4: 005b lsls r3, r3, #1
14be6: 2140 movs r1, #64 ; 0x40
14be8: 31ff adds r1, #255 ; 0xff
14bea: 2201 movs r2, #1
14bec: 428b cmp r3, r1
14bee: d901 bls.n 14bf4 <basic_init+0x2c0>
14bf0: f000 fdab bl 1574a <basic_init+0xe16>
14bf4: 18a2 adds r2, r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14bf6: b212 sxth r2, r2
14bf8: 2113 movs r1, #19
14bfa: 0028 movs r0, r5
14bfc: 4b52 ldr r3, [pc, #328] ; (14d48 <basic_init+0x414>)
14bfe: 4798 blx r3
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
14c00: 4b48 ldr r3, [pc, #288] ; (14d24 <basic_init+0x3f0>)
14c02: 681d ldr r5, [r3, #0]
14c04: 3504 adds r5, #4
14c06: 2000 movs r0, #0
14c08: 4b53 ldr r3, [pc, #332] ; (14d58 <basic_init+0x424>)
14c0a: 4798 blx r3
14c0c: 2801 cmp r0, #1
14c0e: d801 bhi.n 14c14 <basic_init+0x2e0>
14c10: f000 fda6 bl 15760 <basic_init+0xe2c>
14c14: 2000 movs r0, #0
14c16: 4b4b ldr r3, [pc, #300] ; (14d44 <basic_init+0x410>)
14c18: 4798 blx r3
14c1a: 0103 lsls r3, r0, #4
14c1c: 1a18 subs r0, r3, r0
14c1e: 0040 lsls r0, r0, #1
14c20: 3050 adds r0, #80 ; 0x50
14c22: 2340 movs r3, #64 ; 0x40
14c24: 33ff adds r3, #255 ; 0xff
14c26: 2401 movs r4, #1
14c28: 4298 cmp r0, r3
14c2a: d901 bls.n 14c30 <basic_init+0x2fc>
14c2c: f000 fdb1 bl 15792 <basic_init+0xe5e>
14c30: 2000 movs r0, #0
14c32: 4b44 ldr r3, [pc, #272] ; (14d44 <basic_init+0x410>)
14c34: 4798 blx r3
14c36: 0003 movs r3, r0
14c38: 3328 adds r3, #40 ; 0x28
14c3a: 005b lsls r3, r3, #1
14c3c: 2140 movs r1, #64 ; 0x40
14c3e: 31ff adds r1, #255 ; 0xff
14c40: 2201 movs r2, #1
14c42: 428b cmp r3, r1
14c44: d901 bls.n 14c4a <basic_init+0x316>
14c46: f000 fdb1 bl 157ac <basic_init+0xe78>
14c4a: 18a2 adds r2, r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14c4c: b212 sxth r2, r2
14c4e: 2110 movs r1, #16
14c50: 0028 movs r0, r5
14c52: 4b3d ldr r3, [pc, #244] ; (14d48 <basic_init+0x414>)
14c54: 4798 blx r3
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
14c56: 4b33 ldr r3, [pc, #204] ; (14d24 <basic_init+0x3f0>)
14c58: 681d ldr r5, [r3, #0]
14c5a: 3504 adds r5, #4
14c5c: 2000 movs r0, #0
14c5e: 4b3e ldr r3, [pc, #248] ; (14d58 <basic_init+0x424>)
14c60: 4798 blx r3
14c62: 2801 cmp r0, #1
14c64: d801 bhi.n 14c6a <basic_init+0x336>
14c66: f000 fdac bl 157c2 <basic_init+0xe8e>
14c6a: 2000 movs r0, #0
14c6c: 4b35 ldr r3, [pc, #212] ; (14d44 <basic_init+0x410>)
14c6e: 4798 blx r3
14c70: 0103 lsls r3, r0, #4
14c72: 1a18 subs r0, r3, r0
14c74: 0040 lsls r0, r0, #1
14c76: 3050 adds r0, #80 ; 0x50
14c78: 2340 movs r3, #64 ; 0x40
14c7a: 33ff adds r3, #255 ; 0xff
14c7c: 2401 movs r4, #1
14c7e: 4298 cmp r0, r3
14c80: d901 bls.n 14c86 <basic_init+0x352>
14c82: f000 fdb7 bl 157f4 <basic_init+0xec0>
14c86: 2000 movs r0, #0
14c88: 4b2e ldr r3, [pc, #184] ; (14d44 <basic_init+0x410>)
14c8a: 4798 blx r3
14c8c: 0003 movs r3, r0
14c8e: 3328 adds r3, #40 ; 0x28
14c90: 005b lsls r3, r3, #1
14c92: 2140 movs r1, #64 ; 0x40
14c94: 31ff adds r1, #255 ; 0xff
14c96: 2201 movs r2, #1
14c98: 428b cmp r3, r1
14c9a: d901 bls.n 14ca0 <basic_init+0x36c>
14c9c: f000 fdb7 bl 1580e <basic_init+0xeda>
14ca0: 18a2 adds r2, r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14ca2: b212 sxth r2, r2
14ca4: 2111 movs r1, #17
14ca6: 0028 movs r0, r5
14ca8: 4b27 ldr r3, [pc, #156] ; (14d48 <basic_init+0x414>)
14caa: 4798 blx r3
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
14cac: 4b1d ldr r3, [pc, #116] ; (14d24 <basic_init+0x3f0>)
14cae: 681c ldr r4, [r3, #0]
14cb0: 3404 adds r4, #4
14cb2: 2000 movs r0, #0
14cb4: 4b28 ldr r3, [pc, #160] ; (14d58 <basic_init+0x424>)
14cb6: 4798 blx r3
14cb8: 2801 cmp r0, #1
14cba: d801 bhi.n 14cc0 <basic_init+0x38c>
14cbc: f000 fdb2 bl 15824 <basic_init+0xef0>
14cc0: 2000 movs r0, #0
14cc2: 4b20 ldr r3, [pc, #128] ; (14d44 <basic_init+0x410>)
14cc4: 4798 blx r3
14cc6: 0103 lsls r3, r0, #4
14cc8: 1a1b subs r3, r3, r0
14cca: 005b lsls r3, r3, #1
14ccc: 3350 adds r3, #80 ; 0x50
14cce: 2140 movs r1, #64 ; 0x40
14cd0: 31ff adds r1, #255 ; 0xff
14cd2: 2201 movs r2, #1
14cd4: 428b cmp r3, r1
14cd6: d901 bls.n 14cdc <basic_init+0x3a8>
14cd8: f000 fdbd bl 15856 <basic_init+0xf22>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
14cdc: 2114 movs r1, #20
14cde: 0020 movs r0, r4
14ce0: 4d19 ldr r5, [pc, #100] ; (14d48 <basic_init+0x414>)
14ce2: 47a8 blx r5
lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME);
14ce4: 4c0f ldr r4, [pc, #60] ; (14d24 <basic_init+0x3f0>)
14ce6: 6823 ldr r3, [r4, #0]
14ce8: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
14cea: 2296 movs r2, #150 ; 0x96
14cec: 21b0 movs r1, #176 ; 0xb0
14cee: 47a8 blx r5
lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR);
14cf0: 6823 ldr r3, [r4, #0]
14cf2: 1d18 adds r0, r3, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
14cf4: 2239 movs r2, #57 ; 0x39
14cf6: 21b7 movs r1, #183 ; 0xb7
14cf8: 47a8 blx r5
style_init_reset(&styles->bg_sec);
14cfa: 6820 ldr r0, [r4, #0]
14cfc: 300c adds r0, #12
14cfe: 4b0a ldr r3, [pc, #40] ; (14d28 <basic_init+0x3f4>)
14d00: 4798 blx r3
lv_style_copy(&styles->bg_sec, &styles->bg);
14d02: 6820 ldr r0, [r4, #0]
14d04: 1d01 adds r1, r0, #4
14d06: 300c adds r0, #12
14d08: 4b14 ldr r3, [pc, #80] ; (14d5c <basic_init+0x428>)
14d0a: 4798 blx r3
lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC);
14d0c: 6820 ldr r0, [r4, #0]
14d0e: 300c adds r0, #12
14d10: 4b07 ldr r3, [pc, #28] ; (14d30 <basic_init+0x3fc>)
14d12: 699b ldr r3, [r3, #24]
14d14: 079b lsls r3, r3, #30
14d16: d501 bpl.n 14d1c <basic_init+0x3e8>
14d18: f000 fdaa bl 15870 <basic_init+0xf3c>
14d1c: 2308 movs r3, #8
14d1e: 2112 movs r1, #18
14d20: 2209 movs r2, #9
14d22: e01d b.n 14d60 <basic_init+0x42c>
14d24: 20004c4c .word 0x20004c4c
14d28: 00014911 .word 0x00014911
14d2c: 000062bd .word 0x000062bd
14d30: 20004c50 .word 0x20004c50
14d34: 00006135 .word 0x00006135
14d38: 00008089 .word 0x00008089
14d3c: 0000808e .word 0x0000808e
14d40: 00006431 .word 0x00006431
14d44: 00010dd1 .word 0x00010dd1
14d48: 00005fad .word 0x00005fad
14d4c: 00000239 .word 0x00000239
14d50: 00000439 .word 0x00000439
14d54: 000080a9 .word 0x000080a9
14d58: 00010ded .word 0x00010ded
14d5c: 00005e55 .word 0x00005e55
14d60: 0149 lsls r1, r1, #5
14d62: 02db lsls r3, r3, #11
14d64: 430a orrs r2, r1
14d66: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
14d68: 2129 movs r1, #41 ; 0x29
14d6a: 4bfb ldr r3, [pc, #1004] ; (15158 <basic_init+0x824>)
14d6c: 4798 blx r3
lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER);
14d6e: 4bfb ldr r3, [pc, #1004] ; (1515c <basic_init+0x828>)
14d70: 6818 ldr r0, [r3, #0]
14d72: 300c adds r0, #12
14d74: 4bfa ldr r3, [pc, #1000] ; (15160 <basic_init+0x82c>)
14d76: 699b ldr r3, [r3, #24]
14d78: 079b lsls r3, r3, #30
14d7a: d501 bpl.n 14d80 <basic_init+0x44c>
14d7c: f000 fd7d bl 1587a <basic_init+0xf46>
14d80: 2308 movs r3, #8
14d82: 2110 movs r1, #16
14d84: 2208 movs r2, #8
14d86: 0149 lsls r1, r1, #5
14d88: 02db lsls r3, r3, #11
14d8a: 430a orrs r2, r1
14d8c: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
14d8e: 2139 movs r1, #57 ; 0x39
14d90: 4bf1 ldr r3, [pc, #964] ; (15158 <basic_init+0x824>)
14d92: 4798 blx r3
lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
14d94: 4bf1 ldr r3, [pc, #964] ; (1515c <basic_init+0x828>)
14d96: 6818 ldr r0, [r3, #0]
14d98: 300c adds r0, #12
14d9a: 4bf1 ldr r3, [pc, #964] ; (15160 <basic_init+0x82c>)
14d9c: 699b ldr r3, [r3, #24]
14d9e: 079b lsls r3, r3, #30
14da0: d501 bpl.n 14da6 <basic_init+0x472>
14da2: f000 fd6f bl 15884 <basic_init+0xf50>
14da6: 2314 movs r3, #20
14da8: 212a movs r1, #42 ; 0x2a
14daa: 2215 movs r2, #21
14dac: 0149 lsls r1, r1, #5
14dae: 02db lsls r3, r3, #11
14db0: 430a orrs r2, r1
14db2: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
14db4: 49eb ldr r1, [pc, #940] ; (15164 <basic_init+0x830>)
14db6: 4be8 ldr r3, [pc, #928] ; (15158 <basic_init+0x824>)
14db8: 4798 blx r3
lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
14dba: 4be8 ldr r3, [pc, #928] ; (1515c <basic_init+0x828>)
14dbc: 6818 ldr r0, [r3, #0]
14dbe: 300c adds r0, #12
14dc0: 4be7 ldr r3, [pc, #924] ; (15160 <basic_init+0x82c>)
14dc2: 699b ldr r3, [r3, #24]
14dc4: 079b lsls r3, r3, #30
14dc6: d501 bpl.n 14dcc <basic_init+0x498>
14dc8: f000 fd61 bl 1588e <basic_init+0xf5a>
14dcc: 2314 movs r3, #20
14dce: 212a movs r1, #42 ; 0x2a
14dd0: 2215 movs r2, #21
14dd2: 0149 lsls r1, r1, #5
14dd4: 02db lsls r3, r3, #11
14dd6: 430a orrs r2, r1
14dd8: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
14dda: 2179 movs r1, #121 ; 0x79
14ddc: 4bde ldr r3, [pc, #888] ; (15158 <basic_init+0x824>)
14dde: 4798 blx r3
lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
14de0: 4bde ldr r3, [pc, #888] ; (1515c <basic_init+0x828>)
14de2: 6818 ldr r0, [r3, #0]
14de4: 300c adds r0, #12
14de6: 4bde ldr r3, [pc, #888] ; (15160 <basic_init+0x82c>)
14de8: 699b ldr r3, [r3, #24]
14dea: 079b lsls r3, r3, #30
14dec: d501 bpl.n 14df2 <basic_init+0x4be>
14dee: f000 fd53 bl 15898 <basic_init+0xf64>
14df2: 2314 movs r3, #20
14df4: 212a movs r1, #42 ; 0x2a
14df6: 2215 movs r2, #21
14df8: 0149 lsls r1, r1, #5
14dfa: 02db lsls r3, r3, #11
14dfc: 430a orrs r2, r1
14dfe: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
14e00: 49d9 ldr r1, [pc, #868] ; (15168 <basic_init+0x834>)
14e02: 4bd5 ldr r3, [pc, #852] ; (15158 <basic_init+0x824>)
14e04: 4798 blx r3
lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
14e06: 4bd5 ldr r3, [pc, #852] ; (1515c <basic_init+0x828>)
14e08: 6818 ldr r0, [r3, #0]
14e0a: 300c adds r0, #12
14e0c: 4bd4 ldr r3, [pc, #848] ; (15160 <basic_init+0x82c>)
14e0e: 699b ldr r3, [r3, #24]
14e10: 079b lsls r3, r3, #30
14e12: d501 bpl.n 14e18 <basic_init+0x4e4>
14e14: f000 fd45 bl 158a2 <basic_init+0xf6e>
14e18: 2314 movs r3, #20
14e1a: 212a movs r1, #42 ; 0x2a
14e1c: 2215 movs r2, #21
14e1e: 0149 lsls r1, r1, #5
14e20: 02db lsls r3, r3, #11
14e22: 430a orrs r2, r1
14e24: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
14e26: 2199 movs r1, #153 ; 0x99
14e28: 4bcb ldr r3, [pc, #812] ; (15158 <basic_init+0x824>)
14e2a: 4798 blx r3
style_init_reset(&styles->bg_click);
14e2c: 4ccb ldr r4, [pc, #812] ; (1515c <basic_init+0x828>)
14e2e: 6820 ldr r0, [r4, #0]
14e30: 3008 adds r0, #8
14e32: 4bce ldr r3, [pc, #824] ; (1516c <basic_init+0x838>)
14e34: 4798 blx r3
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR);
14e36: 6820 ldr r0, [r4, #0]
14e38: 3008 adds r0, #8
14e3a: 4bc9 ldr r3, [pc, #804] ; (15160 <basic_init+0x82c>)
14e3c: 699b ldr r3, [r3, #24]
14e3e: 079b lsls r3, r3, #30
14e40: d501 bpl.n 14e46 <basic_init+0x512>
14e42: f000 fd33 bl 158ac <basic_init+0xf78>
14e46: 2309 movs r3, #9
14e48: 2113 movs r1, #19
14e4a: 220a movs r2, #10
14e4c: 0149 lsls r1, r1, #5
14e4e: 02db lsls r3, r3, #11
14e50: 430a orrs r2, r1
14e52: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
14e54: 49c6 ldr r1, [pc, #792] ; (15170 <basic_init+0x83c>)
14e56: 4fc0 ldr r7, [pc, #768] ; (15158 <basic_init+0x824>)
14e58: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK);
14e5a: 4ec0 ldr r6, [pc, #768] ; (1515c <basic_init+0x828>)
14e5c: 6830 ldr r0, [r6, #0]
14e5e: 3008 adds r0, #8
14e60: 4dbf ldr r5, [pc, #764] ; (15160 <basic_init+0x82c>)
14e62: 88aa ldrh r2, [r5, #4]
14e64: 212a movs r1, #42 ; 0x2a
14e66: 31ff adds r1, #255 ; 0xff
14e68: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
14e6a: 6834 ldr r4, [r6, #0]
14e6c: 3408 adds r4, #8
14e6e: 88a8 ldrh r0, [r5, #4]
14e70: 2133 movs r1, #51 ; 0x33
14e72: 4bc0 ldr r3, [pc, #768] ; (15174 <basic_init+0x840>)
14e74: 4798 blx r3
14e76: 1c02 adds r2, r0, #0
14e78: 49bf ldr r1, [pc, #764] ; (15178 <basic_init+0x844>)
14e7a: 0020 movs r0, r4
14e7c: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS);
14e7e: 6830 ldr r0, [r6, #0]
14e80: 3008 adds r0, #8
14e82: 69ab ldr r3, [r5, #24]
14e84: 079b lsls r3, r3, #30
14e86: d501 bpl.n 14e8c <basic_init+0x558>
14e88: f000 fd15 bl 158b6 <basic_init+0xf82>
14e8c: 230b movs r3, #11
14e8e: 2118 movs r1, #24
14e90: 220e movs r2, #14
14e92: 0149 lsls r1, r1, #5
14e94: 02db lsls r3, r3, #11
14e96: 430a orrs r2, r1
14e98: 431a orrs r2, r3
14e9a: 49b8 ldr r1, [pc, #736] ; (1517c <basic_init+0x848>)
14e9c: 4fae ldr r7, [pc, #696] ; (15158 <basic_init+0x824>)
14e9e: 47b8 blx r7
lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0);
14ea0: 4dae ldr r5, [pc, #696] ; (1515c <basic_init+0x828>)
14ea2: 6828 ldr r0, [r5, #0]
14ea4: 3008 adds r0, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
14ea6: 2200 movs r2, #0
14ea8: 2198 movs r1, #152 ; 0x98
14eaa: 0049 lsls r1, r1, #1
14eac: 4bb4 ldr r3, [pc, #720] ; (15180 <basic_init+0x84c>)
14eae: 4798 blx r3
lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary,
14eb0: 682c ldr r4, [r5, #0]
14eb2: 3408 adds r4, #8
14eb4: 4eaa ldr r6, [pc, #680] ; (15160 <basic_init+0x82c>)
14eb6: 88b0 ldrh r0, [r6, #4]
14eb8: 2133 movs r1, #51 ; 0x33
14eba: 4bae ldr r3, [pc, #696] ; (15174 <basic_init+0x840>)
14ebc: 4798 blx r3
14ebe: 1c02 adds r2, r0, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
14ec0: 49b0 ldr r1, [pc, #704] ; (15184 <basic_init+0x850>)
14ec2: 0020 movs r0, r4
14ec4: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
14ec6: 6828 ldr r0, [r5, #0]
14ec8: 3008 adds r0, #8
14eca: 69b3 ldr r3, [r6, #24]
14ecc: 079b lsls r3, r3, #30
14ece: d501 bpl.n 14ed4 <basic_init+0x5a0>
14ed0: f000 fcf6 bl 158c0 <basic_init+0xf8c>
14ed4: 230b movs r3, #11
14ed6: 2119 movs r1, #25
14ed8: 220d movs r2, #13
14eda: 0149 lsls r1, r1, #5
14edc: 02db lsls r3, r3, #11
14ede: 430a orrs r2, r1
14ee0: 431a orrs r2, r3
14ee2: 49a9 ldr r1, [pc, #676] ; (15188 <basic_init+0x854>)
14ee4: 4b9c ldr r3, [pc, #624] ; (15158 <basic_init+0x824>)
14ee6: 4798 blx r3
lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK);
14ee8: 4b9c ldr r3, [pc, #624] ; (1515c <basic_init+0x828>)
14eea: 6818 ldr r0, [r3, #0]
14eec: 3008 adds r0, #8
14eee: 4b9c ldr r3, [pc, #624] ; (15160 <basic_init+0x82c>)
14ef0: 699b ldr r3, [r3, #24]
14ef2: 079b lsls r3, r3, #30
14ef4: d501 bpl.n 14efa <basic_init+0x5c6>
14ef6: f000 fce8 bl 158ca <basic_init+0xf96>
14efa: 230b movs r3, #11
14efc: 2119 movs r1, #25
14efe: 220d movs r2, #13
14f00: 0149 lsls r1, r1, #5
14f02: 02db lsls r3, r3, #11
14f04: 430a orrs r2, r1
14f06: 431a orrs r2, r3
14f08: 213a movs r1, #58 ; 0x3a
14f0a: 31ff adds r1, #255 ; 0xff
14f0c: 4b92 ldr r3, [pc, #584] ; (15158 <basic_init+0x824>)
14f0e: 4798 blx r3
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
14f10: 4b92 ldr r3, [pc, #584] ; (1515c <basic_init+0x828>)
14f12: 6818 ldr r0, [r3, #0]
14f14: 3008 adds r0, #8
14f16: 4b92 ldr r3, [pc, #584] ; (15160 <basic_init+0x82c>)
14f18: 699b ldr r3, [r3, #24]
14f1a: 079b lsls r3, r3, #30
14f1c: d501 bpl.n 14f22 <basic_init+0x5ee>
14f1e: f000 fcd9 bl 158d4 <basic_init+0xfa0>
14f22: 230b movs r3, #11
14f24: 2119 movs r1, #25
14f26: 220d movs r2, #13
14f28: 0149 lsls r1, r1, #5
14f2a: 02db lsls r3, r3, #11
14f2c: 430a orrs r2, r1
14f2e: 431a orrs r2, r3
14f30: 4996 ldr r1, [pc, #600] ; (1518c <basic_init+0x858>)
14f32: 4b89 ldr r3, [pc, #548] ; (15158 <basic_init+0x824>)
14f34: 4798 blx r3
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
14f36: 4b89 ldr r3, [pc, #548] ; (1515c <basic_init+0x828>)
14f38: 6818 ldr r0, [r3, #0]
14f3a: 3008 adds r0, #8
14f3c: 4b88 ldr r3, [pc, #544] ; (15160 <basic_init+0x82c>)
14f3e: 699b ldr r3, [r3, #24]
14f40: 079b lsls r3, r3, #30
14f42: d501 bpl.n 14f48 <basic_init+0x614>
14f44: f000 fccb bl 158de <basic_init+0xfaa>
14f48: 230b movs r3, #11
14f4a: 2119 movs r1, #25
14f4c: 220d movs r2, #13
14f4e: 0149 lsls r1, r1, #5
14f50: 02db lsls r3, r3, #11
14f52: 430a orrs r2, r1
14f54: 431a orrs r2, r3
14f56: 498e ldr r1, [pc, #568] ; (15190 <basic_init+0x85c>)
14f58: 4b7f ldr r3, [pc, #508] ; (15158 <basic_init+0x824>)
14f5a: 4798 blx r3
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
14f5c: 4b7f ldr r3, [pc, #508] ; (1515c <basic_init+0x828>)
14f5e: 6818 ldr r0, [r3, #0]
14f60: 3008 adds r0, #8
14f62: 4b7f ldr r3, [pc, #508] ; (15160 <basic_init+0x82c>)
14f64: 699b ldr r3, [r3, #24]
14f66: 079b lsls r3, r3, #30
14f68: d501 bpl.n 14f6e <basic_init+0x63a>
14f6a: f000 fcbd bl 158e8 <basic_init+0xfb4>
14f6e: 231f movs r3, #31
14f70: 213f movs r1, #63 ; 0x3f
14f72: 221f movs r2, #31
14f74: 241f movs r4, #31
14f76: 46a0 mov r8, r4
14f78: 0149 lsls r1, r1, #5
14f7a: 02db lsls r3, r3, #11
14f7c: 430a orrs r2, r1
14f7e: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
14f80: 4984 ldr r1, [pc, #528] ; (15194 <basic_init+0x860>)
14f82: 4f75 ldr r7, [pc, #468] ; (15158 <basic_init+0x824>)
14f84: 47b8 blx r7
lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
14f86: 4e75 ldr r6, [pc, #468] ; (1515c <basic_init+0x828>)
14f88: 6830 ldr r0, [r6, #0]
14f8a: 3008 adds r0, #8
14f8c: 25fc movs r5, #252 ; 0xfc
14f8e: 00ed lsls r5, r5, #3
14f90: 4642 mov r2, r8
14f92: 432a orrs r2, r5
14f94: 4c80 ldr r4, [pc, #512] ; (15198 <basic_init+0x864>)
14f96: 4322 orrs r2, r4
14f98: 4980 ldr r1, [pc, #512] ; (1519c <basic_init+0x868>)
14f9a: 47b8 blx r7
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
14f9c: 6830 ldr r0, [r6, #0]
14f9e: 3008 adds r0, #8
14fa0: 4642 mov r2, r8
14fa2: 432a orrs r2, r5
14fa4: 4322 orrs r2, r4
14fa6: 497e ldr r1, [pc, #504] ; (151a0 <basic_init+0x86c>)
14fa8: 47b8 blx r7
lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
14faa: 6830 ldr r0, [r6, #0]
14fac: 3008 adds r0, #8
14fae: 4b6c ldr r3, [pc, #432] ; (15160 <basic_init+0x82c>)
14fb0: 699b ldr r3, [r3, #24]
14fb2: 079b lsls r3, r3, #30
14fb4: d501 bpl.n 14fba <basic_init+0x686>
14fb6: f000 fc9c bl 158f2 <basic_init+0xfbe>
14fba: 2226 movs r2, #38 ; 0x26
14fbc: 2313 movs r3, #19
14fbe: 0152 lsls r2, r2, #5
14fc0: 02d9 lsls r1, r3, #11
14fc2: 431a orrs r2, r3
14fc4: 430a orrs r2, r1
14fc6: 4977 ldr r1, [pc, #476] ; (151a4 <basic_init+0x870>)
14fc8: 4b63 ldr r3, [pc, #396] ; (15158 <basic_init+0x824>)
14fca: 4798 blx r3
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
14fcc: 4b63 ldr r3, [pc, #396] ; (1515c <basic_init+0x828>)
14fce: 6818 ldr r0, [r3, #0]
14fd0: 3008 adds r0, #8
14fd2: 4b63 ldr r3, [pc, #396] ; (15160 <basic_init+0x82c>)
14fd4: 699b ldr r3, [r3, #24]
14fd6: 079b lsls r3, r3, #30
14fd8: d501 bpl.n 14fde <basic_init+0x6aa>
14fda: f000 fc8e bl 158fa <basic_init+0xfc6>
14fde: 231f movs r3, #31
14fe0: 213f movs r1, #63 ; 0x3f
14fe2: 221f movs r2, #31
14fe4: 241f movs r4, #31
14fe6: 46a0 mov r8, r4
14fe8: 0149 lsls r1, r1, #5
14fea: 02db lsls r3, r3, #11
14fec: 430a orrs r2, r1
14fee: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
14ff0: 496d ldr r1, [pc, #436] ; (151a8 <basic_init+0x874>)
14ff2: 4f59 ldr r7, [pc, #356] ; (15158 <basic_init+0x824>)
14ff4: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
14ff6: 4e59 ldr r6, [pc, #356] ; (1515c <basic_init+0x828>)
14ff8: 6830 ldr r0, [r6, #0]
14ffa: 3008 adds r0, #8
14ffc: 25fc movs r5, #252 ; 0xfc
14ffe: 00ed lsls r5, r5, #3
15000: 4642 mov r2, r8
15002: 432a orrs r2, r5
15004: 4c64 ldr r4, [pc, #400] ; (15198 <basic_init+0x864>)
15006: 4322 orrs r2, r4
15008: 4968 ldr r1, [pc, #416] ; (151ac <basic_init+0x878>)
1500a: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
1500c: 6830 ldr r0, [r6, #0]
1500e: 3008 adds r0, #8
15010: 4642 mov r2, r8
15012: 432a orrs r2, r5
15014: 4322 orrs r2, r4
15016: 4966 ldr r1, [pc, #408] ; (151b0 <basic_init+0x87c>)
15018: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
1501a: 6830 ldr r0, [r6, #0]
1501c: 3008 adds r0, #8
1501e: 4b50 ldr r3, [pc, #320] ; (15160 <basic_init+0x82c>)
15020: 699b ldr r3, [r3, #24]
15022: 079b lsls r3, r3, #30
15024: d501 bpl.n 1502a <basic_init+0x6f6>
15026: f000 fc6d bl 15904 <basic_init+0xfd0>
1502a: 2226 movs r2, #38 ; 0x26
1502c: 2313 movs r3, #19
1502e: 0152 lsls r2, r2, #5
15030: 02d9 lsls r1, r3, #11
15032: 431a orrs r2, r3
15034: 430a orrs r2, r1
15036: 495f ldr r1, [pc, #380] ; (151b4 <basic_init+0x880>)
15038: 4b47 ldr r3, [pc, #284] ; (15158 <basic_init+0x824>)
1503a: 4798 blx r3
lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
1503c: 4c47 ldr r4, [pc, #284] ; (1515c <basic_init+0x828>)
1503e: 6820 ldr r0, [r4, #0]
15040: 3008 adds r0, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
15042: 2229 movs r2, #41 ; 0x29
15044: 21b6 movs r1, #182 ; 0xb6
15046: 4d4e ldr r5, [pc, #312] ; (15180 <basic_init+0x84c>)
15048: 47a8 blx r5
style_init_reset(&styles->btn);
1504a: 6820 ldr r0, [r4, #0]
1504c: 3010 adds r0, #16
1504e: 4b47 ldr r3, [pc, #284] ; (1516c <basic_init+0x838>)
15050: 4798 blx r3
lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
15052: 6820 ldr r0, [r4, #0]
15054: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
15056: 4a58 ldr r2, [pc, #352] ; (151b8 <basic_init+0x884>)
15058: 2101 movs r1, #1
1505a: 47a8 blx r5
lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER);
1505c: 6820 ldr r0, [r4, #0]
1505e: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
15060: 22ff movs r2, #255 ; 0xff
15062: 212c movs r1, #44 ; 0x2c
15064: 4b55 ldr r3, [pc, #340] ; (151bc <basic_init+0x888>)
15066: 4798 blx r3
lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN);
15068: 6820 ldr r0, [r4, #0]
1506a: 3010 adds r0, #16
1506c: 4b3c ldr r3, [pc, #240] ; (15160 <basic_init+0x82c>)
1506e: 699b ldr r3, [r3, #24]
15070: 079b lsls r3, r3, #30
15072: d501 bpl.n 15078 <basic_init+0x744>
15074: f000 fc4a bl 1590c <basic_init+0xfd8>
15078: 230b movs r3, #11
1507a: 2118 movs r1, #24
1507c: 220e movs r2, #14
1507e: 0149 lsls r1, r1, #5
15080: 02db lsls r3, r3, #11
15082: 430a orrs r2, r1
15084: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
15086: 2129 movs r1, #41 ; 0x29
15088: 4b33 ldr r3, [pc, #204] ; (15158 <basic_init+0x824>)
1508a: 4798 blx r3
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
1508c: 4b33 ldr r3, [pc, #204] ; (1515c <basic_init+0x828>)
1508e: 6818 ldr r0, [r3, #0]
15090: 3010 adds r0, #16
15092: 4b33 ldr r3, [pc, #204] ; (15160 <basic_init+0x82c>)
15094: 699b ldr r3, [r3, #24]
15096: 079b lsls r3, r3, #30
15098: d401 bmi.n 1509e <basic_init+0x76a>
1509a: f000 fc3c bl 15916 <basic_init+0xfe2>
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
1509e: 4d30 ldr r5, [pc, #192] ; (15160 <basic_init+0x82c>)
150a0: 796a ldrb r2, [r5, #5]
150a2: 08d2 lsrs r2, r2, #3
150a4: 0093 lsls r3, r2, #2
150a6: 189b adds r3, r3, r2
150a8: 009a lsls r2, r3, #2
150aa: 189b adds r3, r3, r2
150ac: 4a44 ldr r2, [pc, #272] ; (151c0 <basic_init+0x88c>)
150ae: 4694 mov ip, r2
150b0: 4463 add r3, ip
150b2: 021a lsls r2, r3, #8
150b4: 18d2 adds r2, r2, r3
150b6: 01d2 lsls r2, r2, #7
150b8: 18d2 adds r2, r2, r3
150ba: 0dd2 lsrs r2, r2, #23
150bc: 211f movs r1, #31
150be: 400a ands r2, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
150c0: 88ac ldrh r4, [r5, #4]
150c2: 0564 lsls r4, r4, #21
150c4: 0ea3 lsrs r3, r4, #26
150c6: 009c lsls r4, r3, #2
150c8: 18e4 adds r4, r4, r3
150ca: 00a3 lsls r3, r4, #2
150cc: 18e4 adds r4, r4, r3
150ce: 4b3d ldr r3, [pc, #244] ; (151c4 <basic_init+0x890>)
150d0: 469c mov ip, r3
150d2: 4464 add r4, ip
150d4: 0223 lsls r3, r4, #8
150d6: 191b adds r3, r3, r4
150d8: 01db lsls r3, r3, #7
150da: 191b adds r3, r3, r4
150dc: 00db lsls r3, r3, #3
150de: 0e9b lsrs r3, r3, #26
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
150e0: 792c ldrb r4, [r5, #4]
150e2: 06e4 lsls r4, r4, #27
150e4: 0ee5 lsrs r5, r4, #27
150e6: 00ac lsls r4, r5, #2
150e8: 1964 adds r4, r4, r5
150ea: 00a5 lsls r5, r4, #2
150ec: 1964 adds r4, r4, r5
150ee: 4d34 ldr r5, [pc, #208] ; (151c0 <basic_init+0x88c>)
150f0: 46ac mov ip, r5
150f2: 4464 add r4, ip
150f4: 0225 lsls r5, r4, #8
150f6: 192d adds r5, r5, r4
150f8: 01ed lsls r5, r5, #7
150fa: 192c adds r4, r5, r4
150fc: 0de4 lsrs r4, r4, #23
150fe: 4021 ands r1, r4
15100: 015b lsls r3, r3, #5
15102: 02d2 lsls r2, r2, #11
15104: 430b orrs r3, r1
15106: 431a orrs r2, r3
15108: 4919 ldr r1, [pc, #100] ; (15170 <basic_init+0x83c>)
1510a: 4f13 ldr r7, [pc, #76] ; (15158 <basic_init+0x824>)
1510c: 47b8 blx r7
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK);
1510e: 4e13 ldr r6, [pc, #76] ; (1515c <basic_init+0x828>)
15110: 6830 ldr r0, [r6, #0]
15112: 3010 adds r0, #16
15114: 4d12 ldr r5, [pc, #72] ; (15160 <basic_init+0x82c>)
15116: 88aa ldrh r2, [r5, #4]
15118: 212a movs r1, #42 ; 0x2a
1511a: 31ff adds r1, #255 ; 0xff
1511c: 47b8 blx r7
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR);
1511e: 6834 ldr r4, [r6, #0]
15120: 3410 adds r4, #16
15122: 88a8 ldrh r0, [r5, #4]
15124: 214c movs r1, #76 ; 0x4c
15126: 4b13 ldr r3, [pc, #76] ; (15174 <basic_init+0x840>)
15128: 4798 blx r3
1512a: 1c02 adds r2, r0, #0
1512c: 4912 ldr r1, [pc, #72] ; (15178 <basic_init+0x844>)
1512e: 0020 movs r0, r4
15130: 47b8 blx r7
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN);
15132: 6830 ldr r0, [r6, #0]
15134: 3010 adds r0, #16
15136: 69ab ldr r3, [r5, #24]
15138: 079b lsls r3, r3, #30
1513a: d501 bpl.n 15140 <basic_init+0x80c>
1513c: f000 fc15 bl 1596a <basic_init+0x1036>
15140: 230b movs r3, #11
15142: 2118 movs r1, #24
15144: 220e movs r2, #14
15146: 0149 lsls r1, r1, #5
15148: 02db lsls r3, r3, #11
1514a: 430a orrs r2, r1
1514c: 431a orrs r2, r3
1514e: 490b ldr r1, [pc, #44] ; (1517c <basic_init+0x848>)
15150: 4b01 ldr r3, [pc, #4] ; (15158 <basic_init+0x824>)
15152: 4798 blx r3
15154: e038 b.n 151c8 <basic_init+0x894>
15156: 46c0 nop ; (mov r8, r8)
15158: 00006135 .word 0x00006135
1515c: 20004c4c .word 0x20004c4c
15160: 20004c50 .word 0x20004c50
15164: 00008089 .word 0x00008089
15168: 000080a9 .word 0x000080a9
1516c: 00014911 .word 0x00014911
15170: 00001029 .word 0x00001029
15174: 00011ad9 .word 0x00011ad9
15178: 00001129 .word 0x00001129
1517c: 00002029 .word 0x00002029
15180: 00005fad .word 0x00005fad
15184: 00001239 .word 0x00001239
15188: 00001039 .word 0x00001039
1518c: 00001139 .word 0x00001139
15190: 00002039 .word 0x00002039
15194: 00009089 .word 0x00009089
15198: fffff800 .word 0xfffff800
1519c: 00008189 .word 0x00008189
151a0: 00009189 .word 0x00009189
151a4: 0000a089 .word 0x0000a089
151a8: 000090a9 .word 0x000090a9
151ac: 000081a9 .word 0x000081a9
151b0: 000091a9 .word 0x000091a9
151b4: 0000a0a9 .word 0x0000a0a9
151b8: 00007fff .word 0x00007fff
151bc: 000062bd .word 0x000062bd
151c0: 00001bda .word 0x00001bda
151c4: 0000389a .word 0x0000389a
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS);
151c8: 4bf1 ldr r3, [pc, #964] ; (15590 <basic_init+0xc5c>)
151ca: 6818 ldr r0, [r3, #0]
151cc: 3010 adds r0, #16
151ce: 4bf1 ldr r3, [pc, #964] ; (15594 <basic_init+0xc60>)
151d0: 699b ldr r3, [r3, #24]
151d2: 079b lsls r3, r3, #30
151d4: d500 bpl.n 151d8 <basic_init+0x8a4>
151d6: e3cd b.n 15974 <basic_init+0x1040>
151d8: 2222 movs r2, #34 ; 0x22
151da: 2311 movs r3, #17
151dc: 0152 lsls r2, r2, #5
151de: 02d9 lsls r1, r3, #11
151e0: 431a orrs r2, r3
151e2: 430a orrs r2, r1
151e4: 49ec ldr r1, [pc, #944] ; (15598 <basic_init+0xc64>)
151e6: 4ded ldr r5, [pc, #948] ; (1559c <basic_init+0xc68>)
151e8: 47a8 blx r5
lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER);
151ea: 4ce9 ldr r4, [pc, #932] ; (15590 <basic_init+0xc5c>)
151ec: 6820 ldr r0, [r4, #0]
151ee: 3010 adds r0, #16
151f0: 4ee8 ldr r6, [pc, #928] ; (15594 <basic_init+0xc60>)
151f2: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
151f4: 2139 movs r1, #57 ; 0x39
151f6: 47a8 blx r5
lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR);
151f8: 6820 ldr r0, [r4, #0]
151fa: 3010 adds r0, #16
151fc: 88b2 ldrh r2, [r6, #4]
151fe: 49e8 ldr r1, [pc, #928] ; (155a0 <basic_init+0xc6c>)
15200: 47a8 blx r5
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
15202: 6820 ldr r0, [r4, #0]
15204: 3010 adds r0, #16
15206: 69b3 ldr r3, [r6, #24]
15208: 079b lsls r3, r3, #30
1520a: d500 bpl.n 1520e <basic_init+0x8da>
1520c: e3b5 b.n 1597a <basic_init+0x1046>
1520e: 2210 movs r2, #16
15210: 2308 movs r3, #8
15212: 0152 lsls r2, r2, #5
15214: 02d9 lsls r1, r3, #11
15216: 431a orrs r2, r3
15218: 430a orrs r2, r1
1521a: 49e2 ldr r1, [pc, #904] ; (155a4 <basic_init+0xc70>)
1521c: 4bdf ldr r3, [pc, #892] ; (1559c <basic_init+0xc68>)
1521e: 4798 blx r3
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
15220: 4bdb ldr r3, [pc, #876] ; (15590 <basic_init+0xc5c>)
15222: 681c ldr r4, [r3, #0]
15224: 3410 adds r4, #16
15226: 2000 movs r0, #0
15228: 4bdf ldr r3, [pc, #892] ; (155a8 <basic_init+0xc74>)
1522a: 4798 blx r3
1522c: 3028 adds r0, #40 ; 0x28
1522e: 0040 lsls r0, r0, #1
15230: 2340 movs r3, #64 ; 0x40
15232: 33ff adds r3, #255 ; 0xff
15234: 2201 movs r2, #1
15236: 4298 cmp r0, r3
15238: d900 bls.n 1523c <basic_init+0x908>
1523a: e3a1 b.n 15980 <basic_init+0x104c>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1523c: 2130 movs r1, #48 ; 0x30
1523e: 0020 movs r0, r4
15240: 4bda ldr r3, [pc, #872] ; (155ac <basic_init+0xc78>)
15242: 4798 blx r3
lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP);
15244: 4cd2 ldr r4, [pc, #840] ; (15590 <basic_init+0xc5c>)
15246: 6820 ldr r0, [r4, #0]
15248: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
1524a: 2200 movs r2, #0
1524c: 219e movs r1, #158 ; 0x9e
1524e: 0049 lsls r1, r1, #1
15250: 4bd7 ldr r3, [pc, #860] ; (155b0 <basic_init+0xc7c>)
15252: 4798 blx r3
lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
15254: 6820 ldr r0, [r4, #0]
15256: 3010 adds r0, #16
15258: 4bce ldr r3, [pc, #824] ; (15594 <basic_init+0xc60>)
1525a: 699b ldr r3, [r3, #24]
1525c: 079b lsls r3, r3, #30
1525e: d500 bpl.n 15262 <basic_init+0x92e>
15260: e398 b.n 15994 <basic_init+0x1060>
15262: 231f movs r3, #31
15264: 213f movs r1, #63 ; 0x3f
15266: 221f movs r2, #31
15268: 0149 lsls r1, r1, #5
1526a: 02db lsls r3, r3, #11
1526c: 430a orrs r2, r1
1526e: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
15270: 49d0 ldr r1, [pc, #832] ; (155b4 <basic_init+0xc80>)
15272: 4bca ldr r3, [pc, #808] ; (1559c <basic_init+0xc68>)
15274: 4798 blx r3
lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
15276: 4bc6 ldr r3, [pc, #792] ; (15590 <basic_init+0xc5c>)
15278: 6818 ldr r0, [r3, #0]
1527a: 3010 adds r0, #16
1527c: 4bc5 ldr r3, [pc, #788] ; (15594 <basic_init+0xc60>)
1527e: 699b ldr r3, [r3, #24]
15280: 079b lsls r3, r3, #30
15282: d500 bpl.n 15286 <basic_init+0x952>
15284: e38a b.n 1599c <basic_init+0x1068>
15286: 231f movs r3, #31
15288: 213f movs r1, #63 ; 0x3f
1528a: 221f movs r2, #31
1528c: 241f movs r4, #31
1528e: 46a0 mov r8, r4
15290: 0149 lsls r1, r1, #5
15292: 02db lsls r3, r3, #11
15294: 430a orrs r2, r1
15296: 431a orrs r2, r3
15298: 49c7 ldr r1, [pc, #796] ; (155b8 <basic_init+0xc84>)
1529a: 4dc0 ldr r5, [pc, #768] ; (1559c <basic_init+0xc68>)
1529c: 47a8 blx r5
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
1529e: 4cbc ldr r4, [pc, #752] ; (15590 <basic_init+0xc5c>)
152a0: 6820 ldr r0, [r4, #0]
152a2: 3010 adds r0, #16
152a4: 27fc movs r7, #252 ; 0xfc
152a6: 00ff lsls r7, r7, #3
152a8: 4642 mov r2, r8
152aa: 433a orrs r2, r7
152ac: 4ec3 ldr r6, [pc, #780] ; (155bc <basic_init+0xc88>)
152ae: 4332 orrs r2, r6
152b0: 49c3 ldr r1, [pc, #780] ; (155c0 <basic_init+0xc8c>)
152b2: 47a8 blx r5
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
152b4: 6820 ldr r0, [r4, #0]
152b6: 3010 adds r0, #16
152b8: 4642 mov r2, r8
152ba: 433a orrs r2, r7
152bc: 4332 orrs r2, r6
152be: 49c1 ldr r1, [pc, #772] ; (155c4 <basic_init+0xc90>)
152c0: 47a8 blx r5
lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
152c2: 6820 ldr r0, [r4, #0]
152c4: 3010 adds r0, #16
152c6: 4bc0 ldr r3, [pc, #768] ; (155c8 <basic_init+0xc94>)
152c8: 881a ldrh r2, [r3, #0]
152ca: 49c0 ldr r1, [pc, #768] ; (155cc <basic_init+0xc98>)
152cc: 47a8 blx r5
lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
152ce: 6820 ldr r0, [r4, #0]
152d0: 3010 adds r0, #16
152d2: 4bb0 ldr r3, [pc, #704] ; (15594 <basic_init+0xc60>)
152d4: 699b ldr r3, [r3, #24]
152d6: 079b lsls r3, r3, #30
152d8: d500 bpl.n 152dc <basic_init+0x9a8>
152da: e363 b.n 159a4 <basic_init+0x1070>
152dc: 231f movs r3, #31
152de: 213f movs r1, #63 ; 0x3f
152e0: 221f movs r2, #31
152e2: 0149 lsls r1, r1, #5
152e4: 02db lsls r3, r3, #11
152e6: 430a orrs r2, r1
152e8: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
152ea: 49b9 ldr r1, [pc, #740] ; (155d0 <basic_init+0xc9c>)
152ec: 4bab ldr r3, [pc, #684] ; (1559c <basic_init+0xc68>)
152ee: 4798 blx r3
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
152f0: 4ba7 ldr r3, [pc, #668] ; (15590 <basic_init+0xc5c>)
152f2: 6818 ldr r0, [r3, #0]
152f4: 3010 adds r0, #16
152f6: 4ba7 ldr r3, [pc, #668] ; (15594 <basic_init+0xc60>)
152f8: 699b ldr r3, [r3, #24]
152fa: 079b lsls r3, r3, #30
152fc: d500 bpl.n 15300 <basic_init+0x9cc>
152fe: e355 b.n 159ac <basic_init+0x1078>
15300: 231f movs r3, #31
15302: 213f movs r1, #63 ; 0x3f
15304: 221f movs r2, #31
15306: 261f movs r6, #31
15308: 0149 lsls r1, r1, #5
1530a: 02db lsls r3, r3, #11
1530c: 430a orrs r2, r1
1530e: 431a orrs r2, r3
15310: 49b0 ldr r1, [pc, #704] ; (155d4 <basic_init+0xca0>)
15312: 4da2 ldr r5, [pc, #648] ; (1559c <basic_init+0xc68>)
15314: 47a8 blx r5
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff));
15316: 4c9e ldr r4, [pc, #632] ; (15590 <basic_init+0xc5c>)
15318: 6820 ldr r0, [r4, #0]
1531a: 3010 adds r0, #16
1531c: 23fc movs r3, #252 ; 0xfc
1531e: 00db lsls r3, r3, #3
15320: 4699 mov r9, r3
15322: 001a movs r2, r3
15324: 4332 orrs r2, r6
15326: 4fa5 ldr r7, [pc, #660] ; (155bc <basic_init+0xc88>)
15328: 433a orrs r2, r7
1532a: 49aa ldr r1, [pc, #680] ; (155d4 <basic_init+0xca0>)
1532c: 47a8 blx r5
lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
1532e: 6820 ldr r0, [r4, #0]
15330: 3010 adds r0, #16
15332: 464a mov r2, r9
15334: 4332 orrs r2, r6
15336: 433a orrs r2, r7
15338: 49a7 ldr r1, [pc, #668] ; (155d8 <basic_init+0xca4>)
1533a: 47a8 blx r5
lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
1533c: 6820 ldr r0, [r4, #0]
1533e: 3010 adds r0, #16
15340: 4ba1 ldr r3, [pc, #644] ; (155c8 <basic_init+0xc94>)
15342: 881a ldrh r2, [r3, #0]
15344: 49a5 ldr r1, [pc, #660] ; (155dc <basic_init+0xca8>)
15346: 47a8 blx r5
lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
15348: 6820 ldr r0, [r4, #0]
1534a: 3010 adds r0, #16
1534c: 4b91 ldr r3, [pc, #580] ; (15594 <basic_init+0xc60>)
1534e: 699b ldr r3, [r3, #24]
15350: 079b lsls r3, r3, #30
15352: d500 bpl.n 15356 <basic_init+0xa22>
15354: e32e b.n 159b4 <basic_init+0x1080>
15356: 231f movs r3, #31
15358: 213f movs r1, #63 ; 0x3f
1535a: 221f movs r2, #31
1535c: 0149 lsls r1, r1, #5
1535e: 02db lsls r3, r3, #11
15360: 430a orrs r2, r1
15362: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
15364: 2179 movs r1, #121 ; 0x79
15366: 4b8d ldr r3, [pc, #564] ; (1559c <basic_init+0xc68>)
15368: 4798 blx r3
lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
1536a: 4b89 ldr r3, [pc, #548] ; (15590 <basic_init+0xc5c>)
1536c: 6818 ldr r0, [r3, #0]
1536e: 3010 adds r0, #16
15370: 4b88 ldr r3, [pc, #544] ; (15594 <basic_init+0xc60>)
15372: 699b ldr r3, [r3, #24]
15374: 079b lsls r3, r3, #30
15376: d500 bpl.n 1537a <basic_init+0xa46>
15378: e320 b.n 159bc <basic_init+0x1088>
1537a: 231f movs r3, #31
1537c: 213f movs r1, #63 ; 0x3f
1537e: 221f movs r2, #31
15380: 241f movs r4, #31
15382: 46a0 mov r8, r4
15384: 0149 lsls r1, r1, #5
15386: 02db lsls r3, r3, #11
15388: 430a orrs r2, r1
1538a: 431a orrs r2, r3
1538c: 4994 ldr r1, [pc, #592] ; (155e0 <basic_init+0xcac>)
1538e: 4d83 ldr r5, [pc, #524] ; (1559c <basic_init+0xc68>)
15390: 47a8 blx r5
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
15392: 4c7f ldr r4, [pc, #508] ; (15590 <basic_init+0xc5c>)
15394: 6820 ldr r0, [r4, #0]
15396: 3010 adds r0, #16
15398: 27fc movs r7, #252 ; 0xfc
1539a: 00ff lsls r7, r7, #3
1539c: 4642 mov r2, r8
1539e: 433a orrs r2, r7
153a0: 4e86 ldr r6, [pc, #536] ; (155bc <basic_init+0xc88>)
153a2: 4332 orrs r2, r6
153a4: 217a movs r1, #122 ; 0x7a
153a6: 31ff adds r1, #255 ; 0xff
153a8: 47a8 blx r5
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
153aa: 6820 ldr r0, [r4, #0]
153ac: 3010 adds r0, #16
153ae: 4642 mov r2, r8
153b0: 433a orrs r2, r7
153b2: 4332 orrs r2, r6
153b4: 498b ldr r1, [pc, #556] ; (155e4 <basic_init+0xcb0>)
153b6: 47a8 blx r5
lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
153b8: 6820 ldr r0, [r4, #0]
153ba: 3010 adds r0, #16
153bc: 4b82 ldr r3, [pc, #520] ; (155c8 <basic_init+0xc94>)
153be: 881a ldrh r2, [r3, #0]
153c0: 4989 ldr r1, [pc, #548] ; (155e8 <basic_init+0xcb4>)
153c2: 47a8 blx r5
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
153c4: 6824 ldr r4, [r4, #0]
153c6: 3410 adds r4, #16
153c8: 2000 movs r0, #0
153ca: 4b77 ldr r3, [pc, #476] ; (155a8 <basic_init+0xc74>)
153cc: 4798 blx r3
153ce: 0083 lsls r3, r0, #2
153d0: 181b adds r3, r3, r0
153d2: 00db lsls r3, r3, #3
153d4: 3350 adds r3, #80 ; 0x50
153d6: 2140 movs r1, #64 ; 0x40
153d8: 31ff adds r1, #255 ; 0xff
153da: 2201 movs r2, #1
153dc: 428b cmp r3, r1
153de: d900 bls.n 153e2 <basic_init+0xaae>
153e0: e2f0 b.n 159c4 <basic_init+0x1090>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
153e2: 2112 movs r1, #18
153e4: 0020 movs r0, r4
153e6: 4b71 ldr r3, [pc, #452] ; (155ac <basic_init+0xc78>)
153e8: 4798 blx r3
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
153ea: 4b69 ldr r3, [pc, #420] ; (15590 <basic_init+0xc5c>)
153ec: 681c ldr r4, [r3, #0]
153ee: 3410 adds r4, #16
153f0: 2000 movs r0, #0
153f2: 4b6d ldr r3, [pc, #436] ; (155a8 <basic_init+0xc74>)
153f4: 4798 blx r3
153f6: 0083 lsls r3, r0, #2
153f8: 181b adds r3, r3, r0
153fa: 00db lsls r3, r3, #3
153fc: 3350 adds r3, #80 ; 0x50
153fe: 2140 movs r1, #64 ; 0x40
15400: 31ff adds r1, #255 ; 0xff
15402: 2201 movs r2, #1
15404: 428b cmp r3, r1
15406: d900 bls.n 1540a <basic_init+0xad6>
15408: e2e9 b.n 159de <basic_init+0x10aa>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1540a: 2113 movs r1, #19
1540c: 0020 movs r0, r4
1540e: 4b67 ldr r3, [pc, #412] ; (155ac <basic_init+0xc78>)
15410: 4798 blx r3
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
15412: 4b5f ldr r3, [pc, #380] ; (15590 <basic_init+0xc5c>)
15414: 681c ldr r4, [r3, #0]
15416: 3410 adds r4, #16
15418: 2000 movs r0, #0
1541a: 4b63 ldr r3, [pc, #396] ; (155a8 <basic_init+0xc74>)
1541c: 4798 blx r3
1541e: 0103 lsls r3, r0, #4
15420: 1a18 subs r0, r3, r0
15422: 3050 adds r0, #80 ; 0x50
15424: 2340 movs r3, #64 ; 0x40
15426: 33ff adds r3, #255 ; 0xff
15428: 2201 movs r2, #1
1542a: 4298 cmp r0, r3
1542c: d900 bls.n 15430 <basic_init+0xafc>
1542e: e2e3 b.n 159f8 <basic_init+0x10c4>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15430: 2110 movs r1, #16
15432: 0020 movs r0, r4
15434: 4b5d ldr r3, [pc, #372] ; (155ac <basic_init+0xc78>)
15436: 4798 blx r3
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
15438: 4b55 ldr r3, [pc, #340] ; (15590 <basic_init+0xc5c>)
1543a: 681c ldr r4, [r3, #0]
1543c: 3410 adds r4, #16
1543e: 2000 movs r0, #0
15440: 4b59 ldr r3, [pc, #356] ; (155a8 <basic_init+0xc74>)
15442: 4798 blx r3
15444: 0103 lsls r3, r0, #4
15446: 1a18 subs r0, r3, r0
15448: 3050 adds r0, #80 ; 0x50
1544a: 2340 movs r3, #64 ; 0x40
1544c: 33ff adds r3, #255 ; 0xff
1544e: 2201 movs r2, #1
15450: 4298 cmp r0, r3
15452: d900 bls.n 15456 <basic_init+0xb22>
15454: e2e8 b.n 15a28 <basic_init+0x10f4>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15456: 2111 movs r1, #17
15458: 0020 movs r0, r4
1545a: 4b54 ldr r3, [pc, #336] ; (155ac <basic_init+0xc78>)
1545c: 4798 blx r3
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
1545e: 4b4c ldr r3, [pc, #304] ; (15590 <basic_init+0xc5c>)
15460: 681c ldr r4, [r3, #0]
15462: 3410 adds r4, #16
15464: 2000 movs r0, #0
15466: 4b50 ldr r3, [pc, #320] ; (155a8 <basic_init+0xc74>)
15468: 4798 blx r3
1546a: 0083 lsls r3, r0, #2
1546c: 181b adds r3, r3, r0
1546e: 009b lsls r3, r3, #2
15470: 3350 adds r3, #80 ; 0x50
15472: 2140 movs r1, #64 ; 0x40
15474: 31ff adds r1, #255 ; 0xff
15476: 2201 movs r2, #1
15478: 428b cmp r3, r1
1547a: d900 bls.n 1547e <basic_init+0xb4a>
1547c: e2df b.n 15a3e <basic_init+0x110a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1547e: 2114 movs r1, #20
15480: 0020 movs r0, r4
15482: 4d4a ldr r5, [pc, #296] ; (155ac <basic_init+0xc78>)
15484: 47a8 blx r5
lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3);
15486: 4c42 ldr r4, [pc, #264] ; (15590 <basic_init+0xc5c>)
15488: 6820 ldr r0, [r4, #0]
1548a: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
1548c: 2203 movs r2, #3
1548e: 2140 movs r1, #64 ; 0x40
15490: 47a8 blx r5
lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0);
15492: 6820 ldr r0, [r4, #0]
15494: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
15496: 2200 movs r2, #0
15498: 214c movs r1, #76 ; 0x4c
1549a: 4e45 ldr r6, [pc, #276] ; (155b0 <basic_init+0xc7c>)
1549c: 47b0 blx r6
lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50);
1549e: 6820 ldr r0, [r4, #0]
154a0: 3010 adds r0, #16
154a2: 227f movs r2, #127 ; 0x7f
154a4: 2193 movs r1, #147 ; 0x93
154a6: 0089 lsls r1, r1, #2
154a8: 47b0 blx r6
lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary);
154aa: 6820 ldr r0, [r4, #0]
154ac: 3010 adds r0, #16
154ae: 4f39 ldr r7, [pc, #228] ; (15594 <basic_init+0xc60>)
154b0: 88ba ldrh r2, [r7, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
154b2: 2149 movs r1, #73 ; 0x49
154b4: 4e39 ldr r6, [pc, #228] ; (1559c <basic_init+0xc68>)
154b6: 47b0 blx r6
lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary);
154b8: 6820 ldr r0, [r4, #0]
154ba: 3010 adds r0, #16
154bc: 88fa ldrh r2, [r7, #6]
154be: 494b ldr r1, [pc, #300] ; (155ec <basic_init+0xcb8>)
154c0: 47b0 blx r6
lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
154c2: 6820 ldr r0, [r4, #0]
154c4: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
154c6: 2296 movs r2, #150 ; 0x96
154c8: 21b0 movs r1, #176 ; 0xb0
154ca: 47a8 blx r5
lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA);
154cc: 6820 ldr r0, [r4, #0]
154ce: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
154d0: 223c movs r2, #60 ; 0x3c
154d2: 21b5 movs r1, #181 ; 0xb5
154d4: 47a8 blx r5
lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
154d6: 6820 ldr r0, [r4, #0]
154d8: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
154da: 2229 movs r2, #41 ; 0x29
154dc: 21b6 movs r1, #182 ; 0xb6
154de: 47a8 blx r5
lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
154e0: 6820 ldr r0, [r4, #0]
154e2: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
154e4: 224c movs r2, #76 ; 0x4c
154e6: 21b7 movs r1, #183 ; 0xb7
154e8: 47a8 blx r5
lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
154ea: 6820 ldr r0, [r4, #0]
154ec: 3010 adds r0, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
154ee: 2296 movs r2, #150 ; 0x96
154f0: 21b1 movs r1, #177 ; 0xb1
154f2: 47a8 blx r5
lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0);
154f4: 6820 ldr r0, [r4, #0]
154f6: 3010 adds r0, #16
154f8: 2200 movs r2, #0
154fa: 493d ldr r1, [pc, #244] ; (155f0 <basic_init+0xcbc>)
154fc: 47a8 blx r5
style_init_reset(&styles->pad_inner);
154fe: 6820 ldr r0, [r4, #0]
15500: 3014 adds r0, #20
15502: 4b3c ldr r3, [pc, #240] ; (155f4 <basic_init+0xcc0>)
15504: 4798 blx r3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15506: 6824 ldr r4, [r4, #0]
15508: 3414 adds r4, #20
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
1550a: 2000 movs r0, #0
1550c: 4b3a ldr r3, [pc, #232] ; (155f8 <basic_init+0xcc4>)
1550e: 4798 blx r3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15510: 2832 cmp r0, #50 ; 0x32
15512: d900 bls.n 15516 <basic_init+0xbe2>
15514: e2ad b.n 15a72 <basic_init+0x113e>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
15516: 2000 movs r0, #0
15518: 4b23 ldr r3, [pc, #140] ; (155a8 <basic_init+0xc74>)
1551a: 4798 blx r3
1551c: 0083 lsls r3, r0, #2
1551e: 181b adds r3, r3, r0
15520: 009b lsls r3, r3, #2
15522: 3350 adds r3, #80 ; 0x50
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15524: 2140 movs r1, #64 ; 0x40
15526: 31ff adds r1, #255 ; 0xff
15528: 2201 movs r2, #1
1552a: 428b cmp r3, r1
1552c: d900 bls.n 15530 <basic_init+0xbfc>
1552e: e293 b.n 15a58 <basic_init+0x1124>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
15530: 2114 movs r1, #20
15532: 0020 movs r0, r4
15534: 4b1d ldr r3, [pc, #116] ; (155ac <basic_init+0xc78>)
15536: 4798 blx r3
style_init_reset(&styles->pad_small);
15538: 4b15 ldr r3, [pc, #84] ; (15590 <basic_init+0xc5c>)
1553a: 6818 ldr r0, [r3, #0]
1553c: 3018 adds r0, #24
1553e: 4b2d ldr r3, [pc, #180] ; (155f4 <basic_init+0xcc0>)
15540: 4798 blx r3
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
15542: 2000 movs r0, #0
15544: 4b2c ldr r3, [pc, #176] ; (155f8 <basic_init+0xcc4>)
15546: 4798 blx r3
15548: 2832 cmp r0, #50 ; 0x32
1554a: d900 bls.n 1554e <basic_init+0xc1a>
1554c: e2b8 b.n 15ac0 <basic_init+0x118c>
1554e: 2000 movs r0, #0
15550: 4b15 ldr r3, [pc, #84] ; (155a8 <basic_init+0xc74>)
15552: 4798 blx r3
15554: 0003 movs r3, r0
15556: 0080 lsls r0, r0, #2
15558: 18c0 adds r0, r0, r3
1555a: 0040 lsls r0, r0, #1
1555c: 3050 adds r0, #80 ; 0x50
1555e: 2340 movs r3, #64 ; 0x40
15560: 33ff adds r3, #255 ; 0xff
15562: 2401 movs r4, #1
15564: 4298 cmp r0, r3
15566: d900 bls.n 1556a <basic_init+0xc36>
15568: e29d b.n 15aa6 <basic_init+0x1172>
lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1556a: 4e09 ldr r6, [pc, #36] ; (15590 <basic_init+0xc5c>)
1556c: 6830 ldr r0, [r6, #0]
1556e: 3018 adds r0, #24
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
15570: 0022 movs r2, r4
15572: 2112 movs r1, #18
15574: 4d0d ldr r5, [pc, #52] ; (155ac <basic_init+0xc78>)
15576: 47a8 blx r5
lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
15578: 6830 ldr r0, [r6, #0]
1557a: 3018 adds r0, #24
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1557c: 0022 movs r2, r4
1557e: 2113 movs r1, #19
15580: 47a8 blx r5
lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
15582: 6830 ldr r0, [r6, #0]
15584: 3018 adds r0, #24
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15586: 0022 movs r2, r4
15588: 2110 movs r1, #16
1558a: 47a8 blx r5
lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1558c: 6830 ldr r0, [r6, #0]
1558e: e035 b.n 155fc <basic_init+0xcc8>
15590: 20004c4c .word 0x20004c4c
15594: 20004c50 .word 0x20004c50
15598: 00002129 .word 0x00002129
1559c: 00006135 .word 0x00006135
155a0: 00001039 .word 0x00001039
155a4: 00002039 .word 0x00002039
155a8: 00010dd1 .word 0x00010dd1
155ac: 00005fad .word 0x00005fad
155b0: 000062bd .word 0x000062bd
155b4: 00008089 .word 0x00008089
155b8: 00009089 .word 0x00009089
155bc: fffff800 .word 0xfffff800
155c0: 00008189 .word 0x00008189
155c4: 00009189 .word 0x00009189
155c8: 0002ad9c .word 0x0002ad9c
155cc: 0000a089 .word 0x0000a089
155d0: 000080a9 .word 0x000080a9
155d4: 000090a9 .word 0x000090a9
155d8: 000091a9 .word 0x000091a9
155dc: 0000a0a9 .word 0x0000a0a9
155e0: 00001079 .word 0x00001079
155e4: 00001179 .word 0x00001179
155e8: 00002079 .word 0x00002079
155ec: 00000449 .word 0x00000449
155f0: 000010b1 .word 0x000010b1
155f4: 00014911 .word 0x00014911
155f8: 00010ded .word 0x00010ded
155fc: 3018 adds r0, #24
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
155fe: 0022 movs r2, r4
15600: 2111 movs r1, #17
15602: 47a8 blx r5
lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
15604: 6830 ldr r0, [r6, #0]
15606: 3018 adds r0, #24
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
15608: 0022 movs r2, r4
1560a: 2114 movs r1, #20
1560c: 47a8 blx r5
}
1560e: bc0c pop {r2, r3}
15610: 4690 mov r8, r2
15612: 4699 mov r9, r3
15614: bdf8 pop {r3, r4, r5, r6, r7, pc}
15616: 231d movs r3, #29
15618: 213b movs r1, #59 ; 0x3b
1561a: 221e movs r2, #30
1561c: f7ff f9a1 bl 14962 <basic_init+0x2e>
15620: 2307 movs r3, #7
15622: 210f movs r1, #15
15624: 2208 movs r2, #8
15626: f7ff f9ae bl 14986 <basic_init+0x52>
1562a: 2307 movs r3, #7
1562c: 210f movs r1, #15
1562e: 2208 movs r2, #8
15630: f7ff f9bb bl 149aa <basic_init+0x76>
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
15634: 2000 movs r0, #0
15636: 4bf6 ldr r3, [pc, #984] ; (15a10 <basic_init+0x10dc>)
15638: 4798 blx r3
1563a: 300a adds r0, #10
1563c: 00c0 lsls r0, r0, #3
1563e: 21a0 movs r1, #160 ; 0xa0
15640: 4bf4 ldr r3, [pc, #976] ; (15a14 <basic_init+0x10e0>)
15642: 4798 blx r3
15644: b202 sxth r2, r0
15646: f7ff f9d4 bl 149f2 <basic_init+0xbe>
1564a: 231f movs r3, #31
1564c: 213f movs r1, #63 ; 0x3f
1564e: 221f movs r2, #31
15650: f7ff f9e5 bl 14a1e <basic_init+0xea>
15654: 231a movs r3, #26
15656: 2137 movs r1, #55 ; 0x37
15658: 221c movs r2, #28
1565a: f7ff f9f3 bl 14a44 <basic_init+0x110>
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
1565e: 2000 movs r0, #0
15660: 4beb ldr r3, [pc, #940] ; (15a10 <basic_init+0x10dc>)
15662: 4798 blx r3
15664: 3028 adds r0, #40 ; 0x28
15666: 0040 lsls r0, r0, #1
15668: 21a0 movs r1, #160 ; 0xa0
1566a: 4bea ldr r3, [pc, #936] ; (15a14 <basic_init+0x10e0>)
1566c: 4798 blx r3
1566e: b202 sxth r2, r0
15670: f7ff fa09 bl 14a86 <basic_init+0x152>
15674: 2307 movs r3, #7
15676: 210f movs r1, #15
15678: 2208 movs r2, #8
1567a: f7ff fa1f bl 14abc <basic_init+0x188>
1567e: 2307 movs r3, #7
15680: 210f movs r1, #15
15682: 2208 movs r2, #8
15684: f7ff fa33 bl 14aee <basic_init+0x1ba>
15688: 2307 movs r3, #7
1568a: 210f movs r1, #15
1568c: 2208 movs r2, #8
1568e: f7ff fa41 bl 14b14 <basic_init+0x1e0>
15692: 2307 movs r3, #7
15694: 210f movs r1, #15
15696: 2208 movs r2, #8
15698: f7ff fa4f bl 14b3a <basic_init+0x206>
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
1569c: 2000 movs r0, #0
1569e: 4bdc ldr r3, [pc, #880] ; (15a10 <basic_init+0x10dc>)
156a0: 4798 blx r3
156a2: 0103 lsls r3, r0, #4
156a4: 1a18 subs r0, r3, r0
156a6: 3050 adds r0, #80 ; 0x50
156a8: 2340 movs r3, #64 ; 0x40
156aa: 33ff adds r3, #255 ; 0xff
156ac: 2401 movs r4, #1
156ae: 4298 cmp r0, r3
156b0: d801 bhi.n 156b6 <basic_init+0xd82>
156b2: f7ff fa67 bl 14b84 <basic_init+0x250>
156b6: 2000 movs r0, #0
156b8: 4bd5 ldr r3, [pc, #852] ; (15a10 <basic_init+0x10dc>)
156ba: 4798 blx r3
156bc: 0103 lsls r3, r0, #4
156be: 1a18 subs r0, r3, r0
156c0: 3050 adds r0, #80 ; 0x50
156c2: 21a0 movs r1, #160 ; 0xa0
156c4: 4bd3 ldr r3, [pc, #844] ; (15a14 <basic_init+0x10e0>)
156c6: 4798 blx r3
156c8: b284 uxth r4, r0
156ca: f7ff fa5b bl 14b84 <basic_init+0x250>
156ce: 2000 movs r0, #0
156d0: 4bcf ldr r3, [pc, #828] ; (15a10 <basic_init+0x10dc>)
156d2: 4798 blx r3
156d4: 0103 lsls r3, r0, #4
156d6: 1a18 subs r0, r3, r0
156d8: 0040 lsls r0, r0, #1
156da: 3050 adds r0, #80 ; 0x50
156dc: 21a0 movs r1, #160 ; 0xa0
156de: 4bcd ldr r3, [pc, #820] ; (15a14 <basic_init+0x10e0>)
156e0: 4798 blx r3
156e2: b284 uxth r4, r0
156e4: f7ff fa4e bl 14b84 <basic_init+0x250>
156e8: 2000 movs r0, #0
156ea: 4bc9 ldr r3, [pc, #804] ; (15a10 <basic_init+0x10dc>)
156ec: 4798 blx r3
156ee: 3028 adds r0, #40 ; 0x28
156f0: 0040 lsls r0, r0, #1
156f2: 21a0 movs r1, #160 ; 0xa0
156f4: 4bc7 ldr r3, [pc, #796] ; (15a14 <basic_init+0x10e0>)
156f6: 4798 blx r3
156f8: b282 uxth r2, r0
156fa: f7ff fa50 bl 14b9e <basic_init+0x26a>
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
156fe: 2000 movs r0, #0
15700: 4bc3 ldr r3, [pc, #780] ; (15a10 <basic_init+0x10dc>)
15702: 4798 blx r3
15704: 0103 lsls r3, r0, #4
15706: 1a18 subs r0, r3, r0
15708: 3050 adds r0, #80 ; 0x50
1570a: 2340 movs r3, #64 ; 0x40
1570c: 33ff adds r3, #255 ; 0xff
1570e: 2401 movs r4, #1
15710: 4298 cmp r0, r3
15712: d801 bhi.n 15718 <basic_init+0xde4>
15714: f7ff fa61 bl 14bda <basic_init+0x2a6>
15718: 2000 movs r0, #0
1571a: 4bbd ldr r3, [pc, #756] ; (15a10 <basic_init+0x10dc>)
1571c: 4798 blx r3
1571e: 0103 lsls r3, r0, #4
15720: 1a18 subs r0, r3, r0
15722: 3050 adds r0, #80 ; 0x50
15724: 21a0 movs r1, #160 ; 0xa0
15726: 4bbb ldr r3, [pc, #748] ; (15a14 <basic_init+0x10e0>)
15728: 4798 blx r3
1572a: b284 uxth r4, r0
1572c: f7ff fa55 bl 14bda <basic_init+0x2a6>
15730: 2000 movs r0, #0
15732: 4bb7 ldr r3, [pc, #732] ; (15a10 <basic_init+0x10dc>)
15734: 4798 blx r3
15736: 0103 lsls r3, r0, #4
15738: 1a18 subs r0, r3, r0
1573a: 0040 lsls r0, r0, #1
1573c: 3050 adds r0, #80 ; 0x50
1573e: 21a0 movs r1, #160 ; 0xa0
15740: 4bb4 ldr r3, [pc, #720] ; (15a14 <basic_init+0x10e0>)
15742: 4798 blx r3
15744: b284 uxth r4, r0
15746: f7ff fa48 bl 14bda <basic_init+0x2a6>
1574a: 2000 movs r0, #0
1574c: 4bb0 ldr r3, [pc, #704] ; (15a10 <basic_init+0x10dc>)
1574e: 4798 blx r3
15750: 3028 adds r0, #40 ; 0x28
15752: 0040 lsls r0, r0, #1
15754: 21a0 movs r1, #160 ; 0xa0
15756: 4baf ldr r3, [pc, #700] ; (15a14 <basic_init+0x10e0>)
15758: 4798 blx r3
1575a: b282 uxth r2, r0
1575c: f7ff fa4a bl 14bf4 <basic_init+0x2c0>
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
15760: 2000 movs r0, #0
15762: 4bab ldr r3, [pc, #684] ; (15a10 <basic_init+0x10dc>)
15764: 4798 blx r3
15766: 0103 lsls r3, r0, #4
15768: 1a18 subs r0, r3, r0
1576a: 3050 adds r0, #80 ; 0x50
1576c: 2340 movs r3, #64 ; 0x40
1576e: 33ff adds r3, #255 ; 0xff
15770: 2401 movs r4, #1
15772: 4298 cmp r0, r3
15774: d801 bhi.n 1577a <basic_init+0xe46>
15776: f7ff fa5b bl 14c30 <basic_init+0x2fc>
1577a: 2000 movs r0, #0
1577c: 4ba4 ldr r3, [pc, #656] ; (15a10 <basic_init+0x10dc>)
1577e: 4798 blx r3
15780: 0103 lsls r3, r0, #4
15782: 1a18 subs r0, r3, r0
15784: 3050 adds r0, #80 ; 0x50
15786: 21a0 movs r1, #160 ; 0xa0
15788: 4ba2 ldr r3, [pc, #648] ; (15a14 <basic_init+0x10e0>)
1578a: 4798 blx r3
1578c: b284 uxth r4, r0
1578e: f7ff fa4f bl 14c30 <basic_init+0x2fc>
15792: 2000 movs r0, #0
15794: 4b9e ldr r3, [pc, #632] ; (15a10 <basic_init+0x10dc>)
15796: 4798 blx r3
15798: 0103 lsls r3, r0, #4
1579a: 1a18 subs r0, r3, r0
1579c: 0040 lsls r0, r0, #1
1579e: 3050 adds r0, #80 ; 0x50
157a0: 21a0 movs r1, #160 ; 0xa0
157a2: 4b9c ldr r3, [pc, #624] ; (15a14 <basic_init+0x10e0>)
157a4: 4798 blx r3
157a6: b284 uxth r4, r0
157a8: f7ff fa42 bl 14c30 <basic_init+0x2fc>
157ac: 2000 movs r0, #0
157ae: 4b98 ldr r3, [pc, #608] ; (15a10 <basic_init+0x10dc>)
157b0: 4798 blx r3
157b2: 3028 adds r0, #40 ; 0x28
157b4: 0040 lsls r0, r0, #1
157b6: 21a0 movs r1, #160 ; 0xa0
157b8: 4b96 ldr r3, [pc, #600] ; (15a14 <basic_init+0x10e0>)
157ba: 4798 blx r3
157bc: b282 uxth r2, r0
157be: f7ff fa44 bl 14c4a <basic_init+0x316>
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
157c2: 2000 movs r0, #0
157c4: 4b92 ldr r3, [pc, #584] ; (15a10 <basic_init+0x10dc>)
157c6: 4798 blx r3
157c8: 0103 lsls r3, r0, #4
157ca: 1a18 subs r0, r3, r0
157cc: 3050 adds r0, #80 ; 0x50
157ce: 2340 movs r3, #64 ; 0x40
157d0: 33ff adds r3, #255 ; 0xff
157d2: 2401 movs r4, #1
157d4: 4298 cmp r0, r3
157d6: d801 bhi.n 157dc <basic_init+0xea8>
157d8: f7ff fa55 bl 14c86 <basic_init+0x352>
157dc: 2000 movs r0, #0
157de: 4b8c ldr r3, [pc, #560] ; (15a10 <basic_init+0x10dc>)
157e0: 4798 blx r3
157e2: 0103 lsls r3, r0, #4
157e4: 1a18 subs r0, r3, r0
157e6: 3050 adds r0, #80 ; 0x50
157e8: 21a0 movs r1, #160 ; 0xa0
157ea: 4b8a ldr r3, [pc, #552] ; (15a14 <basic_init+0x10e0>)
157ec: 4798 blx r3
157ee: b284 uxth r4, r0
157f0: f7ff fa49 bl 14c86 <basic_init+0x352>
157f4: 2000 movs r0, #0
157f6: 4b86 ldr r3, [pc, #536] ; (15a10 <basic_init+0x10dc>)
157f8: 4798 blx r3
157fa: 0103 lsls r3, r0, #4
157fc: 1a18 subs r0, r3, r0
157fe: 0040 lsls r0, r0, #1
15800: 3050 adds r0, #80 ; 0x50
15802: 21a0 movs r1, #160 ; 0xa0
15804: 4b83 ldr r3, [pc, #524] ; (15a14 <basic_init+0x10e0>)
15806: 4798 blx r3
15808: b284 uxth r4, r0
1580a: f7ff fa3c bl 14c86 <basic_init+0x352>
1580e: 2000 movs r0, #0
15810: 4b7f ldr r3, [pc, #508] ; (15a10 <basic_init+0x10dc>)
15812: 4798 blx r3
15814: 3028 adds r0, #40 ; 0x28
15816: 0040 lsls r0, r0, #1
15818: 21a0 movs r1, #160 ; 0xa0
1581a: 4b7e ldr r3, [pc, #504] ; (15a14 <basic_init+0x10e0>)
1581c: 4798 blx r3
1581e: b282 uxth r2, r0
15820: f7ff fa3e bl 14ca0 <basic_init+0x36c>
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
15824: 2000 movs r0, #0
15826: 4b7a ldr r3, [pc, #488] ; (15a10 <basic_init+0x10dc>)
15828: 4798 blx r3
1582a: 0103 lsls r3, r0, #4
1582c: 1a18 subs r0, r3, r0
1582e: 3050 adds r0, #80 ; 0x50
15830: 2340 movs r3, #64 ; 0x40
15832: 33ff adds r3, #255 ; 0xff
15834: 2201 movs r2, #1
15836: 4298 cmp r0, r3
15838: d801 bhi.n 1583e <basic_init+0xf0a>
1583a: f7ff fa4f bl 14cdc <basic_init+0x3a8>
1583e: 2000 movs r0, #0
15840: 4b73 ldr r3, [pc, #460] ; (15a10 <basic_init+0x10dc>)
15842: 4798 blx r3
15844: 0103 lsls r3, r0, #4
15846: 1a18 subs r0, r3, r0
15848: 3050 adds r0, #80 ; 0x50
1584a: 21a0 movs r1, #160 ; 0xa0
1584c: 4b71 ldr r3, [pc, #452] ; (15a14 <basic_init+0x10e0>)
1584e: 4798 blx r3
15850: b202 sxth r2, r0
15852: f7ff fa43 bl 14cdc <basic_init+0x3a8>
15856: 2000 movs r0, #0
15858: 4b6d ldr r3, [pc, #436] ; (15a10 <basic_init+0x10dc>)
1585a: 4798 blx r3
1585c: 0103 lsls r3, r0, #4
1585e: 1a18 subs r0, r3, r0
15860: 0040 lsls r0, r0, #1
15862: 3050 adds r0, #80 ; 0x50
15864: 21a0 movs r1, #160 ; 0xa0
15866: 4b6b ldr r3, [pc, #428] ; (15a14 <basic_init+0x10e0>)
15868: 4798 blx r3
1586a: b202 sxth r2, r0
1586c: f7ff fa36 bl 14cdc <basic_init+0x3a8>
15870: 231a movs r3, #26
15872: 2135 movs r1, #53 ; 0x35
15874: 221b movs r2, #27
15876: f7ff fa73 bl 14d60 <basic_init+0x42c>
1587a: 231b movs r3, #27
1587c: 2139 movs r1, #57 ; 0x39
1587e: 221d movs r2, #29
15880: f7ff fa81 bl 14d86 <basic_init+0x452>
15884: 2306 movs r3, #6
15886: 2110 movs r1, #16
15888: 2209 movs r2, #9
1588a: f7ff fa8f bl 14dac <basic_init+0x478>
1588e: 2306 movs r3, #6
15890: 2110 movs r1, #16
15892: 2209 movs r2, #9
15894: f7ff fa9d bl 14dd2 <basic_init+0x49e>
15898: 2306 movs r3, #6
1589a: 2110 movs r1, #16
1589c: 2209 movs r2, #9
1589e: f7ff faab bl 14df8 <basic_init+0x4c4>
158a2: 2306 movs r3, #6
158a4: 2110 movs r1, #16
158a6: 2209 movs r2, #9
158a8: f7ff fab9 bl 14e1e <basic_init+0x4ea>
158ac: 231d movs r3, #29
158ae: 213b movs r1, #59 ; 0x3b
158b0: 221d movs r2, #29
158b2: f7ff facb bl 14e4c <basic_init+0x518>
158b6: 231f movs r3, #31
158b8: 213f movs r1, #63 ; 0x3f
158ba: 221f movs r2, #31
158bc: f7ff fae9 bl 14e92 <basic_init+0x55e>
158c0: 2319 movs r3, #25
158c2: 2133 movs r1, #51 ; 0x33
158c4: 2219 movs r2, #25
158c6: f7ff fb08 bl 14eda <basic_init+0x5a6>
158ca: 2307 movs r3, #7
158cc: 210f movs r1, #15
158ce: 2208 movs r2, #8
158d0: f7ff fb16 bl 14f00 <basic_init+0x5cc>
158d4: 2307 movs r3, #7
158d6: 210f movs r1, #15
158d8: 2208 movs r2, #8
158da: f7ff fb25 bl 14f28 <basic_init+0x5f4>
158de: 231a movs r3, #26
158e0: 2137 movs r1, #55 ; 0x37
158e2: 221c movs r2, #28
158e4: f7ff fb33 bl 14f4e <basic_init+0x61a>
158e8: 2307 movs r3, #7
158ea: 210f movs r1, #15
158ec: 2208 movs r2, #8
158ee: f7ff fb41 bl 14f74 <basic_init+0x640>
158f2: 222a movs r2, #42 ; 0x2a
158f4: 2315 movs r3, #21
158f6: f7ff fb62 bl 14fbe <basic_init+0x68a>
158fa: 2307 movs r3, #7
158fc: 210f movs r1, #15
158fe: 2208 movs r2, #8
15900: f7ff fb70 bl 14fe4 <basic_init+0x6b0>
15904: 222a movs r2, #42 ; 0x2a
15906: 2315 movs r3, #21
15908: f7ff fb91 bl 1502e <basic_init+0x6fa>
1590c: 231f movs r3, #31
1590e: 213f movs r1, #63 ; 0x3f
15910: 221f movs r2, #31
15912: f7ff fbb4 bl 1507e <basic_init+0x74a>
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
15916: 4e40 ldr r6, [pc, #256] ; (15a18 <basic_init+0x10e4>)
15918: 7972 ldrb r2, [r6, #5]
1591a: 08d2 lsrs r2, r2, #3
1591c: 254c movs r5, #76 ; 0x4c
1591e: 436a muls r2, r5
15920: 4b3e ldr r3, [pc, #248] ; (15a1c <basic_init+0x10e8>)
15922: 18d3 adds r3, r2, r3
15924: 021a lsls r2, r3, #8
15926: 18d2 adds r2, r2, r3
15928: 01d2 lsls r2, r2, #7
1592a: 18d2 adds r2, r2, r3
1592c: 0dd2 lsrs r2, r2, #23
1592e: 211f movs r1, #31
15930: 400a ands r2, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
15932: 88b4 ldrh r4, [r6, #4]
15934: 0564 lsls r4, r4, #21
15936: 0ea4 lsrs r4, r4, #26
15938: 436c muls r4, r5
1593a: 4b39 ldr r3, [pc, #228] ; (15a20 <basic_init+0x10ec>)
1593c: 469c mov ip, r3
1593e: 4464 add r4, ip
15940: 0223 lsls r3, r4, #8
15942: 191b adds r3, r3, r4
15944: 01db lsls r3, r3, #7
15946: 191b adds r3, r3, r4
15948: 00db lsls r3, r3, #3
1594a: 0e9b lsrs r3, r3, #26
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
1594c: 7934 ldrb r4, [r6, #4]
1594e: 06e4 lsls r4, r4, #27
15950: 0ee4 lsrs r4, r4, #27
15952: 4365 muls r5, r4
15954: 4c33 ldr r4, [pc, #204] ; (15a24 <basic_init+0x10f0>)
15956: 46a4 mov ip, r4
15958: 4465 add r5, ip
1595a: 022c lsls r4, r5, #8
1595c: 1964 adds r4, r4, r5
1595e: 01e4 lsls r4, r4, #7
15960: 1964 adds r4, r4, r5
15962: 0de4 lsrs r4, r4, #23
15964: 4021 ands r1, r4
15966: f7ff fbcb bl 15100 <basic_init+0x7cc>
1596a: 231f movs r3, #31
1596c: 213f movs r1, #63 ; 0x3f
1596e: 221f movs r2, #31
15970: f7ff fbe9 bl 15146 <basic_init+0x812>
15974: 2233 movs r2, #51 ; 0x33
15976: 2319 movs r3, #25
15978: e430 b.n 151dc <basic_init+0x8a8>
1597a: 2222 movs r2, #34 ; 0x22
1597c: 2311 movs r3, #17
1597e: e448 b.n 15212 <basic_init+0x8de>
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
15980: 2000 movs r0, #0
15982: 4b23 ldr r3, [pc, #140] ; (15a10 <basic_init+0x10dc>)
15984: 4798 blx r3
15986: 3028 adds r0, #40 ; 0x28
15988: 0040 lsls r0, r0, #1
1598a: 21a0 movs r1, #160 ; 0xa0
1598c: 4b21 ldr r3, [pc, #132] ; (15a14 <basic_init+0x10e0>)
1598e: 4798 blx r3
15990: b202 sxth r2, r0
15992: e453 b.n 1523c <basic_init+0x908>
15994: 2306 movs r3, #6
15996: 2110 movs r1, #16
15998: 2209 movs r2, #9
1599a: e465 b.n 15268 <basic_init+0x934>
1599c: 2306 movs r3, #6
1599e: 2110 movs r1, #16
159a0: 2209 movs r2, #9
159a2: e473 b.n 1528c <basic_init+0x958>
159a4: 2306 movs r3, #6
159a6: 2110 movs r1, #16
159a8: 2209 movs r2, #9
159aa: e49a b.n 152e2 <basic_init+0x9ae>
159ac: 2306 movs r3, #6
159ae: 2110 movs r1, #16
159b0: 2209 movs r2, #9
159b2: e4a8 b.n 15306 <basic_init+0x9d2>
159b4: 2306 movs r3, #6
159b6: 2110 movs r1, #16
159b8: 2209 movs r2, #9
159ba: e4cf b.n 1535c <basic_init+0xa28>
159bc: 2306 movs r3, #6
159be: 2110 movs r1, #16
159c0: 2209 movs r2, #9
159c2: e4dd b.n 15380 <basic_init+0xa4c>
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
159c4: 2000 movs r0, #0
159c6: 4b12 ldr r3, [pc, #72] ; (15a10 <basic_init+0x10dc>)
159c8: 4798 blx r3
159ca: 0003 movs r3, r0
159cc: 0080 lsls r0, r0, #2
159ce: 18c0 adds r0, r0, r3
159d0: 00c0 lsls r0, r0, #3
159d2: 3050 adds r0, #80 ; 0x50
159d4: 21a0 movs r1, #160 ; 0xa0
159d6: 4b0f ldr r3, [pc, #60] ; (15a14 <basic_init+0x10e0>)
159d8: 4798 blx r3
159da: b202 sxth r2, r0
159dc: e501 b.n 153e2 <basic_init+0xaae>
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
159de: 2000 movs r0, #0
159e0: 4b0b ldr r3, [pc, #44] ; (15a10 <basic_init+0x10dc>)
159e2: 4798 blx r3
159e4: 0003 movs r3, r0
159e6: 0080 lsls r0, r0, #2
159e8: 18c0 adds r0, r0, r3
159ea: 00c0 lsls r0, r0, #3
159ec: 3050 adds r0, #80 ; 0x50
159ee: 21a0 movs r1, #160 ; 0xa0
159f0: 4b08 ldr r3, [pc, #32] ; (15a14 <basic_init+0x10e0>)
159f2: 4798 blx r3
159f4: b202 sxth r2, r0
159f6: e508 b.n 1540a <basic_init+0xad6>
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
159f8: 2000 movs r0, #0
159fa: 4b05 ldr r3, [pc, #20] ; (15a10 <basic_init+0x10dc>)
159fc: 4798 blx r3
159fe: 0103 lsls r3, r0, #4
15a00: 1a18 subs r0, r3, r0
15a02: 3050 adds r0, #80 ; 0x50
15a04: 21a0 movs r1, #160 ; 0xa0
15a06: 4b03 ldr r3, [pc, #12] ; (15a14 <basic_init+0x10e0>)
15a08: 4798 blx r3
15a0a: b202 sxth r2, r0
15a0c: e510 b.n 15430 <basic_init+0xafc>
15a0e: 46c0 nop ; (mov r8, r8)
15a10: 00010dd1 .word 0x00010dd1
15a14: 0001c0a5 .word 0x0001c0a5
15a18: 20004c50 .word 0x20004c50
15a1c: 000007b1 .word 0x000007b1
15a20: 000010c8 .word 0x000010c8
15a24: 000009ca .word 0x000009ca
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
15a28: 2000 movs r0, #0
15a2a: 4b33 ldr r3, [pc, #204] ; (15af8 <basic_init+0x11c4>)
15a2c: 4798 blx r3
15a2e: 0103 lsls r3, r0, #4
15a30: 1a18 subs r0, r3, r0
15a32: 3050 adds r0, #80 ; 0x50
15a34: 21a0 movs r1, #160 ; 0xa0
15a36: 4b31 ldr r3, [pc, #196] ; (15afc <basic_init+0x11c8>)
15a38: 4798 blx r3
15a3a: b202 sxth r2, r0
15a3c: e50b b.n 15456 <basic_init+0xb22>
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
15a3e: 2000 movs r0, #0
15a40: 4b2d ldr r3, [pc, #180] ; (15af8 <basic_init+0x11c4>)
15a42: 4798 blx r3
15a44: 0003 movs r3, r0
15a46: 0080 lsls r0, r0, #2
15a48: 18c0 adds r0, r0, r3
15a4a: 0080 lsls r0, r0, #2
15a4c: 3050 adds r0, #80 ; 0x50
15a4e: 21a0 movs r1, #160 ; 0xa0
15a50: 4b2a ldr r3, [pc, #168] ; (15afc <basic_init+0x11c8>)
15a52: 4798 blx r3
15a54: b202 sxth r2, r0
15a56: e512 b.n 1547e <basic_init+0xb4a>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
15a58: 2000 movs r0, #0
15a5a: 4b27 ldr r3, [pc, #156] ; (15af8 <basic_init+0x11c4>)
15a5c: 4798 blx r3
15a5e: 0003 movs r3, r0
15a60: 0080 lsls r0, r0, #2
15a62: 18c0 adds r0, r0, r3
15a64: 0080 lsls r0, r0, #2
15a66: 3050 adds r0, #80 ; 0x50
15a68: 21a0 movs r1, #160 ; 0xa0
15a6a: 4b24 ldr r3, [pc, #144] ; (15afc <basic_init+0x11c8>)
15a6c: 4798 blx r3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15a6e: b202 sxth r2, r0
15a70: e55e b.n 15530 <basic_init+0xbfc>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
15a72: 2000 movs r0, #0
15a74: 4b20 ldr r3, [pc, #128] ; (15af8 <basic_init+0x11c4>)
15a76: 4798 blx r3
15a78: 0083 lsls r3, r0, #2
15a7a: 181b adds r3, r3, r0
15a7c: 00db lsls r3, r3, #3
15a7e: 3350 adds r3, #80 ; 0x50
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15a80: 2140 movs r1, #64 ; 0x40
15a82: 31ff adds r1, #255 ; 0xff
15a84: 2201 movs r2, #1
15a86: 428b cmp r3, r1
15a88: d800 bhi.n 15a8c <basic_init+0x1158>
15a8a: e551 b.n 15530 <basic_init+0xbfc>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
15a8c: 2000 movs r0, #0
15a8e: 4b1a ldr r3, [pc, #104] ; (15af8 <basic_init+0x11c4>)
15a90: 4798 blx r3
15a92: 0003 movs r3, r0
15a94: 0080 lsls r0, r0, #2
15a96: 18c0 adds r0, r0, r3
15a98: 00c0 lsls r0, r0, #3
15a9a: 3050 adds r0, #80 ; 0x50
15a9c: 21a0 movs r1, #160 ; 0xa0
15a9e: 4b17 ldr r3, [pc, #92] ; (15afc <basic_init+0x11c8>)
15aa0: 4798 blx r3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
15aa2: b202 sxth r2, r0
15aa4: e544 b.n 15530 <basic_init+0xbfc>
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
15aa6: 2000 movs r0, #0
15aa8: 4b13 ldr r3, [pc, #76] ; (15af8 <basic_init+0x11c4>)
15aaa: 4798 blx r3
15aac: 0003 movs r3, r0
15aae: 0080 lsls r0, r0, #2
15ab0: 18c0 adds r0, r0, r3
15ab2: 0040 lsls r0, r0, #1
15ab4: 3050 adds r0, #80 ; 0x50
15ab6: 21a0 movs r1, #160 ; 0xa0
15ab8: 4b10 ldr r3, [pc, #64] ; (15afc <basic_init+0x11c8>)
15aba: 4798 blx r3
15abc: b204 sxth r4, r0
15abe: e554 b.n 1556a <basic_init+0xc36>
15ac0: 2000 movs r0, #0
15ac2: 4b0d ldr r3, [pc, #52] ; (15af8 <basic_init+0x11c4>)
15ac4: 4798 blx r3
15ac6: 0003 movs r3, r0
15ac8: 0080 lsls r0, r0, #2
15aca: 18c0 adds r0, r0, r3
15acc: 0080 lsls r0, r0, #2
15ace: 3050 adds r0, #80 ; 0x50
15ad0: 2340 movs r3, #64 ; 0x40
15ad2: 33ff adds r3, #255 ; 0xff
15ad4: 2401 movs r4, #1
15ad6: 4298 cmp r0, r3
15ad8: d800 bhi.n 15adc <basic_init+0x11a8>
15ada: e546 b.n 1556a <basic_init+0xc36>
15adc: 2000 movs r0, #0
15ade: 4b06 ldr r3, [pc, #24] ; (15af8 <basic_init+0x11c4>)
15ae0: 4798 blx r3
15ae2: 0003 movs r3, r0
15ae4: 0080 lsls r0, r0, #2
15ae6: 18c0 adds r0, r0, r3
15ae8: 0080 lsls r0, r0, #2
15aea: 3050 adds r0, #80 ; 0x50
15aec: 21a0 movs r1, #160 ; 0xa0
15aee: 4b03 ldr r3, [pc, #12] ; (15afc <basic_init+0x11c8>)
15af0: 4798 blx r3
15af2: b204 sxth r4, r0
15af4: e539 b.n 1556a <basic_init+0xc36>
15af6: 46c0 nop ; (mov r8, r8)
15af8: 00010dd1 .word 0x00010dd1
15afc: 0001c0a5 .word 0x0001c0a5
00015b00 <bar_init>:
{
15b00: b5f0 push {r4, r5, r6, r7, lr}
15b02: 46c6 mov lr, r8
15b04: b500 push {lr}
style_init_reset(&styles->bar_bg);
15b06: 4c49 ldr r4, [pc, #292] ; (15c2c <bar_init+0x12c>)
15b08: 6820 ldr r0, [r4, #0]
15b0a: 3024 adds r0, #36 ; 0x24
15b0c: 4b48 ldr r3, [pc, #288] ; (15c30 <bar_init+0x130>)
15b0e: 4798 blx r3
lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
15b10: 6820 ldr r0, [r4, #0]
15b12: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
15b14: 4a47 ldr r2, [pc, #284] ; (15c34 <bar_init+0x134>)
15b16: 2101 movs r1, #1
15b18: 4b47 ldr r3, [pc, #284] ; (15c38 <bar_init+0x138>)
15b1a: 4798 blx r3
lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
15b1c: 6820 ldr r0, [r4, #0]
15b1e: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
15b20: 22ff movs r2, #255 ; 0xff
15b22: 212c movs r1, #44 ; 0x2c
15b24: 4b45 ldr r3, [pc, #276] ; (15c3c <bar_init+0x13c>)
15b26: 4798 blx r3
lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
15b28: 6820 ldr r0, [r4, #0]
15b2a: 3024 adds r0, #36 ; 0x24
15b2c: 4b44 ldr r3, [pc, #272] ; (15c40 <bar_init+0x140>)
15b2e: 699b ldr r3, [r3, #24]
15b30: 079b lsls r3, r3, #30
15b32: d500 bpl.n 15b36 <bar_init+0x36>
15b34: e06e b.n 15c14 <bar_init+0x114>
15b36: 2308 movs r3, #8
15b38: 2112 movs r1, #18
15b3a: 2209 movs r2, #9
15b3c: 0149 lsls r1, r1, #5
15b3e: 02db lsls r3, r3, #11
15b40: 430a orrs r2, r1
15b42: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
15b44: 2129 movs r1, #41 ; 0x29
15b46: 4b3f ldr r3, [pc, #252] ; (15c44 <bar_init+0x144>)
15b48: 4798 blx r3
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
15b4a: 4b38 ldr r3, [pc, #224] ; (15c2c <bar_init+0x12c>)
15b4c: 6818 ldr r0, [r3, #0]
15b4e: 3024 adds r0, #36 ; 0x24
15b50: 4b3b ldr r3, [pc, #236] ; (15c40 <bar_init+0x140>)
15b52: 699b ldr r3, [r3, #24]
15b54: 079b lsls r3, r3, #30
15b56: d461 bmi.n 15c1c <bar_init+0x11c>
15b58: 231f movs r3, #31
15b5a: 213f movs r1, #63 ; 0x3f
15b5c: 221f movs r2, #31
15b5e: 0149 lsls r1, r1, #5
15b60: 02db lsls r3, r3, #11
15b62: 430a orrs r2, r1
15b64: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
15b66: 2179 movs r1, #121 ; 0x79
15b68: 4d36 ldr r5, [pc, #216] ; (15c44 <bar_init+0x144>)
15b6a: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary);
15b6c: 4c2f ldr r4, [pc, #188] ; (15c2c <bar_init+0x12c>)
15b6e: 6820 ldr r0, [r4, #0]
15b70: 3024 adds r0, #36 ; 0x24
15b72: 4e33 ldr r6, [pc, #204] ; (15c40 <bar_init+0x140>)
15b74: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
15b76: 2149 movs r1, #73 ; 0x49
15b78: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary);
15b7a: 6820 ldr r0, [r4, #0]
15b7c: 3024 adds r0, #36 ; 0x24
15b7e: 88f2 ldrh r2, [r6, #6]
15b80: 4931 ldr r1, [pc, #196] ; (15c48 <bar_init+0x148>)
15b82: 47a8 blx r5
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
15b84: 6820 ldr r0, [r4, #0]
15b86: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
15b88: 2200 movs r2, #0
15b8a: 214c movs r1, #76 ; 0x4c
15b8c: 4b2b ldr r3, [pc, #172] ; (15c3c <bar_init+0x13c>)
15b8e: 4698 mov r8, r3
15b90: 4798 blx r3
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50);
15b92: 6820 ldr r0, [r4, #0]
15b94: 3024 adds r0, #36 ; 0x24
15b96: 227f movs r2, #127 ; 0x7f
15b98: 2193 movs r1, #147 ; 0x93
15b9a: 0089 lsls r1, r1, #2
15b9c: 47c0 blx r8
lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3);
15b9e: 6820 ldr r0, [r4, #0]
15ba0: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
15ba2: 2203 movs r2, #3
15ba4: 2140 movs r1, #64 ; 0x40
15ba6: 4f24 ldr r7, [pc, #144] ; (15c38 <bar_init+0x138>)
15ba8: 47b8 blx r7
lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
15baa: 6820 ldr r0, [r4, #0]
15bac: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
15bae: 2296 movs r2, #150 ; 0x96
15bb0: 21b0 movs r1, #176 ; 0xb0
15bb2: 47b8 blx r7
lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
15bb4: 6820 ldr r0, [r4, #0]
15bb6: 3024 adds r0, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
15bb8: 224c movs r2, #76 ; 0x4c
15bba: 21b7 movs r1, #183 ; 0xb7
15bbc: 47b8 blx r7
style_init_reset(&styles->bar_indic);
15bbe: 6820 ldr r0, [r4, #0]
15bc0: 3028 adds r0, #40 ; 0x28
15bc2: 4b1b ldr r3, [pc, #108] ; (15c30 <bar_init+0x130>)
15bc4: 4798 blx r3
lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
15bc6: 6820 ldr r0, [r4, #0]
15bc8: 3028 adds r0, #40 ; 0x28
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
15bca: 22ff movs r2, #255 ; 0xff
15bcc: 212c movs r1, #44 ; 0x2c
15bce: 47c0 blx r8
lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
15bd0: 6820 ldr r0, [r4, #0]
15bd2: 3028 adds r0, #40 ; 0x28
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
15bd4: 4a17 ldr r2, [pc, #92] ; (15c34 <bar_init+0x134>)
15bd6: 2101 movs r1, #1
15bd8: 47b8 blx r7
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary);
15bda: 6820 ldr r0, [r4, #0]
15bdc: 3028 adds r0, #40 ; 0x28
15bde: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
15be0: 2129 movs r1, #41 ; 0x29
15be2: 47a8 blx r5
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888));
15be4: 6820 ldr r0, [r4, #0]
15be6: 3028 adds r0, #40 ; 0x28
15be8: 4b18 ldr r3, [pc, #96] ; (15c4c <bar_init+0x14c>)
15bea: 881a ldrh r2, [r3, #0]
15bec: 4918 ldr r1, [pc, #96] ; (15c50 <bar_init+0x150>)
15bee: 47a8 blx r5
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
15bf0: 6820 ldr r0, [r4, #0]
15bf2: 3028 adds r0, #40 ; 0x28
15bf4: 69b3 ldr r3, [r6, #24]
15bf6: 079b lsls r3, r3, #30
15bf8: d414 bmi.n 15c24 <bar_init+0x124>
15bfa: 231f movs r3, #31
15bfc: 213f movs r1, #63 ; 0x3f
15bfe: 221f movs r2, #31
15c00: 0149 lsls r1, r1, #5
15c02: 02db lsls r3, r3, #11
15c04: 430a orrs r2, r1
15c06: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
15c08: 2179 movs r1, #121 ; 0x79
15c0a: 4b0e ldr r3, [pc, #56] ; (15c44 <bar_init+0x144>)
15c0c: 4798 blx r3
}
15c0e: bc04 pop {r2}
15c10: 4690 mov r8, r2
15c12: bdf0 pop {r4, r5, r6, r7, pc}
15c14: 231a movs r3, #26
15c16: 2135 movs r1, #53 ; 0x35
15c18: 221b movs r2, #27
15c1a: e78f b.n 15b3c <bar_init+0x3c>
15c1c: 2306 movs r3, #6
15c1e: 2110 movs r1, #16
15c20: 2209 movs r2, #9
15c22: e79c b.n 15b5e <bar_init+0x5e>
15c24: 2308 movs r3, #8
15c26: 2110 movs r1, #16
15c28: 2209 movs r2, #9
15c2a: e7e9 b.n 15c00 <bar_init+0x100>
15c2c: 20004c4c .word 0x20004c4c
15c30: 00014911 .word 0x00014911
15c34: 00007fff .word 0x00007fff
15c38: 00005fad .word 0x00005fad
15c3c: 000062bd .word 0x000062bd
15c40: 20004c50 .word 0x20004c50
15c44: 00006135 .word 0x00006135
15c48: 00000449 .word 0x00000449
15c4c: 0002ad9c .word 0x0002ad9c
15c50: 00002029 .word 0x00002029
00015c54 <slider_init>:
{
15c54: b510 push {r4, lr}
style_init_reset(&styles->slider_knob);
15c56: 4c9a ldr r4, [pc, #616] ; (15ec0 <slider_init+0x26c>)
15c58: 6820 ldr r0, [r4, #0]
15c5a: 3090 adds r0, #144 ; 0x90
15c5c: 4b99 ldr r3, [pc, #612] ; (15ec4 <slider_init+0x270>)
15c5e: 4798 blx r3
lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
15c60: 6820 ldr r0, [r4, #0]
15c62: 3090 adds r0, #144 ; 0x90
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
15c64: 22ff movs r2, #255 ; 0xff
15c66: 212c movs r1, #44 ; 0x2c
15c68: 4b97 ldr r3, [pc, #604] ; (15ec8 <slider_init+0x274>)
15c6a: 4798 blx r3
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
15c6c: 6820 ldr r0, [r4, #0]
15c6e: 3090 adds r0, #144 ; 0x90
15c70: 4b96 ldr r3, [pc, #600] ; (15ecc <slider_init+0x278>)
15c72: 699b ldr r3, [r3, #24]
15c74: 079b lsls r3, r3, #30
15c76: d400 bmi.n 15c7a <slider_init+0x26>
15c78: e0bb b.n 15df2 <slider_init+0x19e>
15c7a: 4b94 ldr r3, [pc, #592] ; (15ecc <slider_init+0x278>)
15c7c: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
15c7e: 2129 movs r1, #41 ; 0x29
15c80: 4b93 ldr r3, [pc, #588] ; (15ed0 <slider_init+0x27c>)
15c82: 4798 blx r3
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
15c84: 4b8e ldr r3, [pc, #568] ; (15ec0 <slider_init+0x26c>)
15c86: 6818 ldr r0, [r3, #0]
15c88: 3090 adds r0, #144 ; 0x90
15c8a: 4b90 ldr r3, [pc, #576] ; (15ecc <slider_init+0x278>)
15c8c: 699b ldr r3, [r3, #24]
15c8e: 079b lsls r3, r3, #30
15c90: d500 bpl.n 15c94 <slider_init+0x40>
15c92: e0b1 b.n 15df8 <slider_init+0x1a4>
15c94: 231f movs r3, #31
15c96: 213f movs r1, #63 ; 0x3f
15c98: 221f movs r2, #31
15c9a: 0149 lsls r1, r1, #5
15c9c: 02db lsls r3, r3, #11
15c9e: 430a orrs r2, r1
15ca0: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
15ca2: 2179 movs r1, #121 ; 0x79
15ca4: 4b8a ldr r3, [pc, #552] ; (15ed0 <slider_init+0x27c>)
15ca6: 4798 blx r3
lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
15ca8: 4c85 ldr r4, [pc, #532] ; (15ec0 <slider_init+0x26c>)
15caa: 6820 ldr r0, [r4, #0]
15cac: 3090 adds r0, #144 ; 0x90
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
15cae: 4a89 ldr r2, [pc, #548] ; (15ed4 <slider_init+0x280>)
15cb0: 2101 movs r1, #1
15cb2: 4b89 ldr r3, [pc, #548] ; (15ed8 <slider_init+0x284>)
15cb4: 4798 blx r3
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15cb6: 6824 ldr r4, [r4, #0]
15cb8: 3490 adds r4, #144 ; 0x90
15cba: 2000 movs r0, #0
15cbc: 4b87 ldr r3, [pc, #540] ; (15edc <slider_init+0x288>)
15cbe: 4798 blx r3
15cc0: 00c3 lsls r3, r0, #3
15cc2: 1a18 subs r0, r3, r0
15cc4: 3050 adds r0, #80 ; 0x50
15cc6: 2340 movs r3, #64 ; 0x40
15cc8: 33ff adds r3, #255 ; 0xff
15cca: 2201 movs r2, #1
15ccc: 4298 cmp r0, r3
15cce: d900 bls.n 15cd2 <slider_init+0x7e>
15cd0: e096 b.n 15e00 <slider_init+0x1ac>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
15cd2: 2112 movs r1, #18
15cd4: 0020 movs r0, r4
15cd6: 4b80 ldr r3, [pc, #512] ; (15ed8 <slider_init+0x284>)
15cd8: 4798 blx r3
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15cda: 4b79 ldr r3, [pc, #484] ; (15ec0 <slider_init+0x26c>)
15cdc: 681c ldr r4, [r3, #0]
15cde: 3490 adds r4, #144 ; 0x90
15ce0: 2000 movs r0, #0
15ce2: 4b7e ldr r3, [pc, #504] ; (15edc <slider_init+0x288>)
15ce4: 4798 blx r3
15ce6: 00c3 lsls r3, r0, #3
15ce8: 1a18 subs r0, r3, r0
15cea: 3050 adds r0, #80 ; 0x50
15cec: 2340 movs r3, #64 ; 0x40
15cee: 33ff adds r3, #255 ; 0xff
15cf0: 2201 movs r2, #1
15cf2: 4298 cmp r0, r3
15cf4: d900 bls.n 15cf8 <slider_init+0xa4>
15cf6: e08e b.n 15e16 <slider_init+0x1c2>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15cf8: 2113 movs r1, #19
15cfa: 0020 movs r0, r4
15cfc: 4b76 ldr r3, [pc, #472] ; (15ed8 <slider_init+0x284>)
15cfe: 4798 blx r3
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15d00: 4b6f ldr r3, [pc, #444] ; (15ec0 <slider_init+0x26c>)
15d02: 681c ldr r4, [r3, #0]
15d04: 3490 adds r4, #144 ; 0x90
15d06: 2000 movs r0, #0
15d08: 4b74 ldr r3, [pc, #464] ; (15edc <slider_init+0x288>)
15d0a: 4798 blx r3
15d0c: 00c3 lsls r3, r0, #3
15d0e: 1a18 subs r0, r3, r0
15d10: 3050 adds r0, #80 ; 0x50
15d12: 2340 movs r3, #64 ; 0x40
15d14: 33ff adds r3, #255 ; 0xff
15d16: 2201 movs r2, #1
15d18: 4298 cmp r0, r3
15d1a: d900 bls.n 15d1e <slider_init+0xca>
15d1c: e086 b.n 15e2c <slider_init+0x1d8>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15d1e: 2110 movs r1, #16
15d20: 0020 movs r0, r4
15d22: 4b6d ldr r3, [pc, #436] ; (15ed8 <slider_init+0x284>)
15d24: 4798 blx r3
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15d26: 4b66 ldr r3, [pc, #408] ; (15ec0 <slider_init+0x26c>)
15d28: 681c ldr r4, [r3, #0]
15d2a: 3490 adds r4, #144 ; 0x90
15d2c: 2000 movs r0, #0
15d2e: 4b6b ldr r3, [pc, #428] ; (15edc <slider_init+0x288>)
15d30: 4798 blx r3
15d32: 00c3 lsls r3, r0, #3
15d34: 1a18 subs r0, r3, r0
15d36: 3050 adds r0, #80 ; 0x50
15d38: 2340 movs r3, #64 ; 0x40
15d3a: 33ff adds r3, #255 ; 0xff
15d3c: 2201 movs r2, #1
15d3e: 4298 cmp r0, r3
15d40: d900 bls.n 15d44 <slider_init+0xf0>
15d42: e07e b.n 15e42 <slider_init+0x1ee>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15d44: 2111 movs r1, #17
15d46: 0020 movs r0, r4
15d48: 4b63 ldr r3, [pc, #396] ; (15ed8 <slider_init+0x284>)
15d4a: 4798 blx r3
style_init_reset(&styles->slider_bg);
15d4c: 4c5c ldr r4, [pc, #368] ; (15ec0 <slider_init+0x26c>)
15d4e: 6820 ldr r0, [r4, #0]
15d50: 3094 adds r0, #148 ; 0x94
15d52: 4b5c ldr r3, [pc, #368] ; (15ec4 <slider_init+0x270>)
15d54: 4798 blx r3
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15d56: 6824 ldr r4, [r4, #0]
15d58: 3494 adds r4, #148 ; 0x94
15d5a: 2000 movs r0, #0
15d5c: 4b5f ldr r3, [pc, #380] ; (15edc <slider_init+0x288>)
15d5e: 4798 blx r3
15d60: 0083 lsls r3, r0, #2
15d62: 181b adds r3, r3, r0
15d64: 005b lsls r3, r3, #1
15d66: 3350 adds r3, #80 ; 0x50
15d68: 2140 movs r1, #64 ; 0x40
15d6a: 31ff adds r1, #255 ; 0xff
15d6c: 2201 movs r2, #1
15d6e: 428b cmp r3, r1
15d70: d900 bls.n 15d74 <slider_init+0x120>
15d72: e071 b.n 15e58 <slider_init+0x204>
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar)
15d74: 2117 movs r1, #23
15d76: 0020 movs r0, r4
15d78: 4b57 ldr r3, [pc, #348] ; (15ed8 <slider_init+0x284>)
15d7a: 4798 blx r3
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15d7c: 4b50 ldr r3, [pc, #320] ; (15ec0 <slider_init+0x26c>)
15d7e: 681c ldr r4, [r3, #0]
15d80: 3494 adds r4, #148 ; 0x94
15d82: 2000 movs r0, #0
15d84: 4b55 ldr r3, [pc, #340] ; (15edc <slider_init+0x288>)
15d86: 4798 blx r3
15d88: 0083 lsls r3, r0, #2
15d8a: 181b adds r3, r3, r0
15d8c: 005b lsls r3, r3, #1
15d8e: 3350 adds r3, #80 ; 0x50
15d90: 2140 movs r1, #64 ; 0x40
15d92: 31ff adds r1, #255 ; 0xff
15d94: 2201 movs r2, #1
15d96: 428b cmp r3, r1
15d98: d900 bls.n 15d9c <slider_init+0x148>
15d9a: e06a b.n 15e72 <slider_init+0x21e>
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar)
15d9c: 2118 movs r1, #24
15d9e: 0020 movs r0, r4
15da0: 4b4d ldr r3, [pc, #308] ; (15ed8 <slider_init+0x284>)
15da2: 4798 blx r3
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15da4: 4b46 ldr r3, [pc, #280] ; (15ec0 <slider_init+0x26c>)
15da6: 681c ldr r4, [r3, #0]
15da8: 3494 adds r4, #148 ; 0x94
15daa: 2000 movs r0, #0
15dac: 4b4b ldr r3, [pc, #300] ; (15edc <slider_init+0x288>)
15dae: 4798 blx r3
15db0: 0083 lsls r3, r0, #2
15db2: 181b adds r3, r3, r0
15db4: 005b lsls r3, r3, #1
15db6: 3350 adds r3, #80 ; 0x50
15db8: 2140 movs r1, #64 ; 0x40
15dba: 31ff adds r1, #255 ; 0xff
15dbc: 2201 movs r2, #1
15dbe: 428b cmp r3, r1
15dc0: d864 bhi.n 15e8c <slider_init+0x238>
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar)
15dc2: 2115 movs r1, #21
15dc4: 0020 movs r0, r4
15dc6: 4b44 ldr r3, [pc, #272] ; (15ed8 <slider_init+0x284>)
15dc8: 4798 blx r3
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15dca: 4b3d ldr r3, [pc, #244] ; (15ec0 <slider_init+0x26c>)
15dcc: 681c ldr r4, [r3, #0]
15dce: 3494 adds r4, #148 ; 0x94
15dd0: 2000 movs r0, #0
15dd2: 4b42 ldr r3, [pc, #264] ; (15edc <slider_init+0x288>)
15dd4: 4798 blx r3
15dd6: 0083 lsls r3, r0, #2
15dd8: 181b adds r3, r3, r0
15dda: 005b lsls r3, r3, #1
15ddc: 3350 adds r3, #80 ; 0x50
15dde: 2140 movs r1, #64 ; 0x40
15de0: 31ff adds r1, #255 ; 0xff
15de2: 2201 movs r2, #1
15de4: 428b cmp r3, r1
15de6: d85e bhi.n 15ea6 <slider_init+0x252>
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar)
15de8: 2116 movs r1, #22
15dea: 0020 movs r0, r4
15dec: 4b3a ldr r3, [pc, #232] ; (15ed8 <slider_init+0x284>)
15dee: 4798 blx r3
}
15df0: bd10 pop {r4, pc}
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
15df2: 4b3b ldr r3, [pc, #236] ; (15ee0 <slider_init+0x28c>)
15df4: 881a ldrh r2, [r3, #0]
15df6: e742 b.n 15c7e <slider_init+0x2a>
15df8: 2306 movs r3, #6
15dfa: 2110 movs r1, #16
15dfc: 2209 movs r2, #9
15dfe: e74c b.n 15c9a <slider_init+0x46>
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15e00: 2000 movs r0, #0
15e02: 4b36 ldr r3, [pc, #216] ; (15edc <slider_init+0x288>)
15e04: 4798 blx r3
15e06: 00c3 lsls r3, r0, #3
15e08: 1a18 subs r0, r3, r0
15e0a: 3050 adds r0, #80 ; 0x50
15e0c: 21a0 movs r1, #160 ; 0xa0
15e0e: 4b35 ldr r3, [pc, #212] ; (15ee4 <slider_init+0x290>)
15e10: 4798 blx r3
15e12: b202 sxth r2, r0
15e14: e75d b.n 15cd2 <slider_init+0x7e>
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15e16: 2000 movs r0, #0
15e18: 4b30 ldr r3, [pc, #192] ; (15edc <slider_init+0x288>)
15e1a: 4798 blx r3
15e1c: 00c3 lsls r3, r0, #3
15e1e: 1a18 subs r0, r3, r0
15e20: 3050 adds r0, #80 ; 0x50
15e22: 21a0 movs r1, #160 ; 0xa0
15e24: 4b2f ldr r3, [pc, #188] ; (15ee4 <slider_init+0x290>)
15e26: 4798 blx r3
15e28: b202 sxth r2, r0
15e2a: e765 b.n 15cf8 <slider_init+0xa4>
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15e2c: 2000 movs r0, #0
15e2e: 4b2b ldr r3, [pc, #172] ; (15edc <slider_init+0x288>)
15e30: 4798 blx r3
15e32: 00c3 lsls r3, r0, #3
15e34: 1a18 subs r0, r3, r0
15e36: 3050 adds r0, #80 ; 0x50
15e38: 21a0 movs r1, #160 ; 0xa0
15e3a: 4b2a ldr r3, [pc, #168] ; (15ee4 <slider_init+0x290>)
15e3c: 4798 blx r3
15e3e: b202 sxth r2, r0
15e40: e76d b.n 15d1e <slider_init+0xca>
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
15e42: 2000 movs r0, #0
15e44: 4b25 ldr r3, [pc, #148] ; (15edc <slider_init+0x288>)
15e46: 4798 blx r3
15e48: 00c3 lsls r3, r0, #3
15e4a: 1a18 subs r0, r3, r0
15e4c: 3050 adds r0, #80 ; 0x50
15e4e: 21a0 movs r1, #160 ; 0xa0
15e50: 4b24 ldr r3, [pc, #144] ; (15ee4 <slider_init+0x290>)
15e52: 4798 blx r3
15e54: b202 sxth r2, r0
15e56: e775 b.n 15d44 <slider_init+0xf0>
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15e58: 2000 movs r0, #0
15e5a: 4b20 ldr r3, [pc, #128] ; (15edc <slider_init+0x288>)
15e5c: 4798 blx r3
15e5e: 0003 movs r3, r0
15e60: 0080 lsls r0, r0, #2
15e62: 18c0 adds r0, r0, r3
15e64: 0040 lsls r0, r0, #1
15e66: 3050 adds r0, #80 ; 0x50
15e68: 21a0 movs r1, #160 ; 0xa0
15e6a: 4b1e ldr r3, [pc, #120] ; (15ee4 <slider_init+0x290>)
15e6c: 4798 blx r3
15e6e: b202 sxth r2, r0
15e70: e780 b.n 15d74 <slider_init+0x120>
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15e72: 2000 movs r0, #0
15e74: 4b19 ldr r3, [pc, #100] ; (15edc <slider_init+0x288>)
15e76: 4798 blx r3
15e78: 0003 movs r3, r0
15e7a: 0080 lsls r0, r0, #2
15e7c: 18c0 adds r0, r0, r3
15e7e: 0040 lsls r0, r0, #1
15e80: 3050 adds r0, #80 ; 0x50
15e82: 21a0 movs r1, #160 ; 0xa0
15e84: 4b17 ldr r3, [pc, #92] ; (15ee4 <slider_init+0x290>)
15e86: 4798 blx r3
15e88: b202 sxth r2, r0
15e8a: e787 b.n 15d9c <slider_init+0x148>
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15e8c: 2000 movs r0, #0
15e8e: 4b13 ldr r3, [pc, #76] ; (15edc <slider_init+0x288>)
15e90: 4798 blx r3
15e92: 0003 movs r3, r0
15e94: 0080 lsls r0, r0, #2
15e96: 18c0 adds r0, r0, r3
15e98: 0040 lsls r0, r0, #1
15e9a: 3050 adds r0, #80 ; 0x50
15e9c: 21a0 movs r1, #160 ; 0xa0
15e9e: 4b11 ldr r3, [pc, #68] ; (15ee4 <slider_init+0x290>)
15ea0: 4798 blx r3
15ea2: b202 sxth r2, r0
15ea4: e78d b.n 15dc2 <slider_init+0x16e>
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
15ea6: 2000 movs r0, #0
15ea8: 4b0c ldr r3, [pc, #48] ; (15edc <slider_init+0x288>)
15eaa: 4798 blx r3
15eac: 0003 movs r3, r0
15eae: 0080 lsls r0, r0, #2
15eb0: 18c0 adds r0, r0, r3
15eb2: 0040 lsls r0, r0, #1
15eb4: 3050 adds r0, #80 ; 0x50
15eb6: 21a0 movs r1, #160 ; 0xa0
15eb8: 4b0a ldr r3, [pc, #40] ; (15ee4 <slider_init+0x290>)
15eba: 4798 blx r3
15ebc: b202 sxth r2, r0
15ebe: e793 b.n 15de8 <slider_init+0x194>
15ec0: 20004c4c .word 0x20004c4c
15ec4: 00014911 .word 0x00014911
15ec8: 000062bd .word 0x000062bd
15ecc: 20004c50 .word 0x20004c50
15ed0: 00006135 .word 0x00006135
15ed4: 00007fff .word 0x00007fff
15ed8: 00005fad .word 0x00005fad
15edc: 00010dd1 .word 0x00010dd1
15ee0: 0002ada0 .word 0x0002ada0
15ee4: 0001c0a5 .word 0x0001c0a5
00015ee8 <switch_init>:
{
15ee8: b510 push {r4, lr}
style_init_reset(&styles->sw_knob);
15eea: 4c46 ldr r4, [pc, #280] ; (16004 <switch_init+0x11c>)
15eec: 6820 ldr r0, [r4, #0]
15eee: 309c adds r0, #156 ; 0x9c
15ef0: 4b45 ldr r3, [pc, #276] ; (16008 <switch_init+0x120>)
15ef2: 4798 blx r3
lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
15ef4: 6820 ldr r0, [r4, #0]
15ef6: 309c adds r0, #156 ; 0x9c
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
15ef8: 22ff movs r2, #255 ; 0xff
15efa: 212c movs r1, #44 ; 0x2c
15efc: 4b43 ldr r3, [pc, #268] ; (1600c <switch_init+0x124>)
15efe: 4798 blx r3
lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE);
15f00: 6820 ldr r0, [r4, #0]
15f02: 309c adds r0, #156 ; 0x9c
15f04: 4b42 ldr r3, [pc, #264] ; (16010 <switch_init+0x128>)
15f06: 881a ldrh r2, [r3, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
15f08: 2129 movs r1, #41 ; 0x29
15f0a: 4b42 ldr r3, [pc, #264] ; (16014 <switch_init+0x12c>)
15f0c: 4798 blx r3
lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
15f0e: 6820 ldr r0, [r4, #0]
15f10: 309c adds r0, #156 ; 0x9c
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
15f12: 4a41 ldr r2, [pc, #260] ; (16018 <switch_init+0x130>)
15f14: 2101 movs r1, #1
15f16: 4b41 ldr r3, [pc, #260] ; (1601c <switch_init+0x134>)
15f18: 4798 blx r3
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15f1a: 6824 ldr r4, [r4, #0]
15f1c: 349c adds r4, #156 ; 0x9c
15f1e: 2000 movs r0, #0
15f20: 4b3f ldr r3, [pc, #252] ; (16020 <switch_init+0x138>)
15f22: 4798 blx r3
15f24: 3014 adds r0, #20
15f26: 0080 lsls r0, r0, #2
15f28: 2340 movs r3, #64 ; 0x40
15f2a: 33ff adds r3, #255 ; 0xff
15f2c: 4298 cmp r0, r3
15f2e: d83c bhi.n 15faa <switch_init+0xc2>
15f30: 2201 movs r2, #1
15f32: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15f34: 2110 movs r1, #16
15f36: 0020 movs r0, r4
15f38: 4b38 ldr r3, [pc, #224] ; (1601c <switch_init+0x134>)
15f3a: 4798 blx r3
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15f3c: 4b31 ldr r3, [pc, #196] ; (16004 <switch_init+0x11c>)
15f3e: 681c ldr r4, [r3, #0]
15f40: 349c adds r4, #156 ; 0x9c
15f42: 2000 movs r0, #0
15f44: 4b36 ldr r3, [pc, #216] ; (16020 <switch_init+0x138>)
15f46: 4798 blx r3
15f48: 3014 adds r0, #20
15f4a: 0080 lsls r0, r0, #2
15f4c: 2340 movs r3, #64 ; 0x40
15f4e: 33ff adds r3, #255 ; 0xff
15f50: 4298 cmp r0, r3
15f52: d835 bhi.n 15fc0 <switch_init+0xd8>
15f54: 2201 movs r2, #1
15f56: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15f58: 2111 movs r1, #17
15f5a: 0020 movs r0, r4
15f5c: 4b2f ldr r3, [pc, #188] ; (1601c <switch_init+0x134>)
15f5e: 4798 blx r3
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15f60: 4b28 ldr r3, [pc, #160] ; (16004 <switch_init+0x11c>)
15f62: 681c ldr r4, [r3, #0]
15f64: 349c adds r4, #156 ; 0x9c
15f66: 2000 movs r0, #0
15f68: 4b2d ldr r3, [pc, #180] ; (16020 <switch_init+0x138>)
15f6a: 4798 blx r3
15f6c: 3014 adds r0, #20
15f6e: 0080 lsls r0, r0, #2
15f70: 2340 movs r3, #64 ; 0x40
15f72: 33ff adds r3, #255 ; 0xff
15f74: 4298 cmp r0, r3
15f76: d82e bhi.n 15fd6 <switch_init+0xee>
15f78: 2201 movs r2, #1
15f7a: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
15f7c: 2112 movs r1, #18
15f7e: 0020 movs r0, r4
15f80: 4b26 ldr r3, [pc, #152] ; (1601c <switch_init+0x134>)
15f82: 4798 blx r3
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15f84: 4b1f ldr r3, [pc, #124] ; (16004 <switch_init+0x11c>)
15f86: 681c ldr r4, [r3, #0]
15f88: 349c adds r4, #156 ; 0x9c
15f8a: 2000 movs r0, #0
15f8c: 4b24 ldr r3, [pc, #144] ; (16020 <switch_init+0x138>)
15f8e: 4798 blx r3
15f90: 3014 adds r0, #20
15f92: 0080 lsls r0, r0, #2
15f94: 2340 movs r3, #64 ; 0x40
15f96: 33ff adds r3, #255 ; 0xff
15f98: 4298 cmp r0, r3
15f9a: d827 bhi.n 15fec <switch_init+0x104>
15f9c: 2201 movs r2, #1
15f9e: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15fa0: 2113 movs r1, #19
15fa2: 0020 movs r0, r4
15fa4: 4b1d ldr r3, [pc, #116] ; (1601c <switch_init+0x134>)
15fa6: 4798 blx r3
}
15fa8: bd10 pop {r4, pc}
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15faa: 2000 movs r0, #0
15fac: 4b1c ldr r3, [pc, #112] ; (16020 <switch_init+0x138>)
15fae: 4798 blx r3
15fb0: 3014 adds r0, #20
15fb2: 0080 lsls r0, r0, #2
15fb4: 21a0 movs r1, #160 ; 0xa0
15fb6: 4b1b ldr r3, [pc, #108] ; (16024 <switch_init+0x13c>)
15fb8: 4798 blx r3
15fba: 4242 negs r2, r0
15fbc: b212 sxth r2, r2
15fbe: e7b9 b.n 15f34 <switch_init+0x4c>
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15fc0: 2000 movs r0, #0
15fc2: 4b17 ldr r3, [pc, #92] ; (16020 <switch_init+0x138>)
15fc4: 4798 blx r3
15fc6: 3014 adds r0, #20
15fc8: 0080 lsls r0, r0, #2
15fca: 21a0 movs r1, #160 ; 0xa0
15fcc: 4b15 ldr r3, [pc, #84] ; (16024 <switch_init+0x13c>)
15fce: 4798 blx r3
15fd0: 4242 negs r2, r0
15fd2: b212 sxth r2, r2
15fd4: e7c0 b.n 15f58 <switch_init+0x70>
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15fd6: 2000 movs r0, #0
15fd8: 4b11 ldr r3, [pc, #68] ; (16020 <switch_init+0x138>)
15fda: 4798 blx r3
15fdc: 3014 adds r0, #20
15fde: 0080 lsls r0, r0, #2
15fe0: 21a0 movs r1, #160 ; 0xa0
15fe2: 4b10 ldr r3, [pc, #64] ; (16024 <switch_init+0x13c>)
15fe4: 4798 blx r3
15fe6: 4242 negs r2, r0
15fe8: b212 sxth r2, r2
15fea: e7c7 b.n 15f7c <switch_init+0x94>
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
15fec: 2000 movs r0, #0
15fee: 4b0c ldr r3, [pc, #48] ; (16020 <switch_init+0x138>)
15ff0: 4798 blx r3
15ff2: 3014 adds r0, #20
15ff4: 0080 lsls r0, r0, #2
15ff6: 21a0 movs r1, #160 ; 0xa0
15ff8: 4b0a ldr r3, [pc, #40] ; (16024 <switch_init+0x13c>)
15ffa: 4798 blx r3
15ffc: 4242 negs r2, r0
15ffe: b212 sxth r2, r2
16000: e7ce b.n 15fa0 <switch_init+0xb8>
16002: 46c0 nop ; (mov r8, r8)
16004: 20004c4c .word 0x20004c4c
16008: 00014911 .word 0x00014911
1600c: 000062bd .word 0x000062bd
16010: 0002ada0 .word 0x0002ada0
16014: 00006135 .word 0x00006135
16018: 00007fff .word 0x00007fff
1601c: 00005fad .word 0x00005fad
16020: 00010dd1 .word 0x00010dd1
16024: 0001c0a5 .word 0x0001c0a5
00016028 <linemeter_init>:
{
16028: b570 push {r4, r5, r6, lr}
style_init_reset(&styles->lmeter);
1602a: 4c7f ldr r4, [pc, #508] ; (16228 <linemeter_init+0x200>)
1602c: 6820 ldr r0, [r4, #0]
1602e: 3070 adds r0, #112 ; 0x70
16030: 4b7e ldr r3, [pc, #504] ; (1622c <linemeter_init+0x204>)
16032: 4798 blx r3
lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
16034: 6820 ldr r0, [r4, #0]
16036: 3070 adds r0, #112 ; 0x70
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16038: 4a7d ldr r2, [pc, #500] ; (16230 <linemeter_init+0x208>)
1603a: 2101 movs r1, #1
1603c: 4b7d ldr r3, [pc, #500] ; (16234 <linemeter_init+0x20c>)
1603e: 4798 blx r3
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
16040: 6824 ldr r4, [r4, #0]
16042: 3470 adds r4, #112 ; 0x70
16044: 2000 movs r0, #0
16046: 4b7c ldr r3, [pc, #496] ; (16238 <linemeter_init+0x210>)
16048: 4798 blx r3
1604a: 0083 lsls r3, r0, #2
1604c: 181b adds r3, r3, r0
1604e: 009b lsls r3, r3, #2
16050: 3350 adds r3, #80 ; 0x50
16052: 2140 movs r1, #64 ; 0x40
16054: 31ff adds r1, #255 ; 0xff
16056: 2201 movs r2, #1
16058: 428b cmp r3, r1
1605a: d900 bls.n 1605e <linemeter_init+0x36>
1605c: e08c b.n 16178 <linemeter_init+0x150>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1605e: 2112 movs r1, #18
16060: 0020 movs r0, r4
16062: 4b74 ldr r3, [pc, #464] ; (16234 <linemeter_init+0x20c>)
16064: 4798 blx r3
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
16066: 4b70 ldr r3, [pc, #448] ; (16228 <linemeter_init+0x200>)
16068: 681c ldr r4, [r3, #0]
1606a: 3470 adds r4, #112 ; 0x70
1606c: 2000 movs r0, #0
1606e: 4b72 ldr r3, [pc, #456] ; (16238 <linemeter_init+0x210>)
16070: 4798 blx r3
16072: 0083 lsls r3, r0, #2
16074: 181b adds r3, r3, r0
16076: 009b lsls r3, r3, #2
16078: 3350 adds r3, #80 ; 0x50
1607a: 2140 movs r1, #64 ; 0x40
1607c: 31ff adds r1, #255 ; 0xff
1607e: 2201 movs r2, #1
16080: 428b cmp r3, r1
16082: d900 bls.n 16086 <linemeter_init+0x5e>
16084: e085 b.n 16192 <linemeter_init+0x16a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
16086: 2113 movs r1, #19
16088: 0020 movs r0, r4
1608a: 4b6a ldr r3, [pc, #424] ; (16234 <linemeter_init+0x20c>)
1608c: 4798 blx r3
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
1608e: 4b66 ldr r3, [pc, #408] ; (16228 <linemeter_init+0x200>)
16090: 681c ldr r4, [r3, #0]
16092: 3470 adds r4, #112 ; 0x70
16094: 2000 movs r0, #0
16096: 4b68 ldr r3, [pc, #416] ; (16238 <linemeter_init+0x210>)
16098: 4798 blx r3
1609a: 0083 lsls r3, r0, #2
1609c: 181b adds r3, r3, r0
1609e: 009b lsls r3, r3, #2
160a0: 3350 adds r3, #80 ; 0x50
160a2: 2140 movs r1, #64 ; 0x40
160a4: 31ff adds r1, #255 ; 0xff
160a6: 2201 movs r2, #1
160a8: 428b cmp r3, r1
160aa: d900 bls.n 160ae <linemeter_init+0x86>
160ac: e07e b.n 161ac <linemeter_init+0x184>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
160ae: 2110 movs r1, #16
160b0: 0020 movs r0, r4
160b2: 4b60 ldr r3, [pc, #384] ; (16234 <linemeter_init+0x20c>)
160b4: 4798 blx r3
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
160b6: 4b5c ldr r3, [pc, #368] ; (16228 <linemeter_init+0x200>)
160b8: 681c ldr r4, [r3, #0]
160ba: 3470 adds r4, #112 ; 0x70
160bc: 2000 movs r0, #0
160be: 4b5e ldr r3, [pc, #376] ; (16238 <linemeter_init+0x210>)
160c0: 4798 blx r3
160c2: 0103 lsls r3, r0, #4
160c4: 1a1b subs r3, r3, r0
160c6: 005b lsls r3, r3, #1
160c8: 3350 adds r3, #80 ; 0x50
160ca: 2140 movs r1, #64 ; 0x40
160cc: 31ff adds r1, #255 ; 0xff
160ce: 2201 movs r2, #1
160d0: 428b cmp r3, r1
160d2: d900 bls.n 160d6 <linemeter_init+0xae>
160d4: e077 b.n 161c6 <linemeter_init+0x19e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
160d6: 2114 movs r1, #20
160d8: 0020 movs r0, r4
160da: 4b56 ldr r3, [pc, #344] ; (16234 <linemeter_init+0x20c>)
160dc: 4798 blx r3
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
160de: 4b52 ldr r3, [pc, #328] ; (16228 <linemeter_init+0x200>)
160e0: 681c ldr r4, [r3, #0]
160e2: 3470 adds r4, #112 ; 0x70
160e4: 2000 movs r0, #0
160e6: 4b54 ldr r3, [pc, #336] ; (16238 <linemeter_init+0x210>)
160e8: 4798 blx r3
160ea: 0083 lsls r3, r0, #2
160ec: 1818 adds r0, r3, r0
160ee: 0083 lsls r3, r0, #2
160f0: 18c0 adds r0, r0, r3
160f2: 3050 adds r0, #80 ; 0x50
160f4: 2340 movs r3, #64 ; 0x40
160f6: 33ff adds r3, #255 ; 0xff
160f8: 2201 movs r2, #1
160fa: 4298 cmp r0, r3
160fc: d900 bls.n 16100 <linemeter_init+0xd8>
160fe: e06e b.n 161de <linemeter_init+0x1b6>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
#else
/*For compatibility*/
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, const void *, _ptr, scalar)
#endif
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
16100: 21c0 movs r1, #192 ; 0xc0
16102: 0020 movs r0, r4
16104: 4b4b ldr r3, [pc, #300] ; (16234 <linemeter_init+0x20c>)
16106: 4798 blx r3
lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
16108: 4c47 ldr r4, [pc, #284] ; (16228 <linemeter_init+0x200>)
1610a: 6820 ldr r0, [r4, #0]
1610c: 3070 adds r0, #112 ; 0x70
1610e: 4e4b ldr r6, [pc, #300] ; (1623c <linemeter_init+0x214>)
16110: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
16112: 2199 movs r1, #153 ; 0x99
16114: 4d4a ldr r5, [pc, #296] ; (16240 <linemeter_init+0x218>)
16116: 47a8 blx r5
lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
16118: 6820 ldr r0, [r4, #0]
1611a: 3070 adds r0, #112 ; 0x70
1611c: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_BORDER_WIDTH, scale_border_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
1611e: 21c9 movs r1, #201 ; 0xc9
16120: 47a8 blx r5
lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888));
16122: 6820 ldr r0, [r4, #0]
16124: 3070 adds r0, #112 ; 0x70
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
16126: 4b47 ldr r3, [pc, #284] ; (16244 <linemeter_init+0x21c>)
16128: 881a ldrh r2, [r3, #0]
1612a: 21ca movs r1, #202 ; 0xca
1612c: 47a8 blx r5
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
1612e: 6824 ldr r4, [r4, #0]
16130: 3470 adds r4, #112 ; 0x70
16132: 2000 movs r0, #0
16134: 4b40 ldr r3, [pc, #256] ; (16238 <linemeter_init+0x210>)
16136: 4798 blx r3
16138: 0083 lsls r3, r0, #2
1613a: 181b adds r3, r3, r0
1613c: 005b lsls r3, r3, #1
1613e: 3350 adds r3, #80 ; 0x50
16140: 2140 movs r1, #64 ; 0x40
16142: 31ff adds r1, #255 ; 0xff
16144: 2201 movs r2, #1
16146: 428b cmp r3, r1
16148: d856 bhi.n 161f8 <linemeter_init+0x1d0>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1614a: 2190 movs r1, #144 ; 0x90
1614c: 0020 movs r0, r4
1614e: 4b39 ldr r3, [pc, #228] ; (16234 <linemeter_init+0x20c>)
16150: 4798 blx r3
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
16152: 4b35 ldr r3, [pc, #212] ; (16228 <linemeter_init+0x200>)
16154: 681c ldr r4, [r3, #0]
16156: 3470 adds r4, #112 ; 0x70
16158: 2000 movs r0, #0
1615a: 4b37 ldr r3, [pc, #220] ; (16238 <linemeter_init+0x210>)
1615c: 4798 blx r3
1615e: 00c3 lsls r3, r0, #3
16160: 1a18 subs r0, r3, r0
16162: 3050 adds r0, #80 ; 0x50
16164: 2340 movs r3, #64 ; 0x40
16166: 33ff adds r3, #255 ; 0xff
16168: 2201 movs r2, #1
1616a: 4298 cmp r0, r3
1616c: d851 bhi.n 16212 <linemeter_init+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
1616e: 21c3 movs r1, #195 ; 0xc3
16170: 0020 movs r0, r4
16172: 4b30 ldr r3, [pc, #192] ; (16234 <linemeter_init+0x20c>)
16174: 4798 blx r3
}
16176: bd70 pop {r4, r5, r6, pc}
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
16178: 2000 movs r0, #0
1617a: 4b2f ldr r3, [pc, #188] ; (16238 <linemeter_init+0x210>)
1617c: 4798 blx r3
1617e: 0003 movs r3, r0
16180: 0080 lsls r0, r0, #2
16182: 18c0 adds r0, r0, r3
16184: 0080 lsls r0, r0, #2
16186: 3050 adds r0, #80 ; 0x50
16188: 21a0 movs r1, #160 ; 0xa0
1618a: 4b2f ldr r3, [pc, #188] ; (16248 <linemeter_init+0x220>)
1618c: 4798 blx r3
1618e: b202 sxth r2, r0
16190: e765 b.n 1605e <linemeter_init+0x36>
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
16192: 2000 movs r0, #0
16194: 4b28 ldr r3, [pc, #160] ; (16238 <linemeter_init+0x210>)
16196: 4798 blx r3
16198: 0003 movs r3, r0
1619a: 0080 lsls r0, r0, #2
1619c: 18c0 adds r0, r0, r3
1619e: 0080 lsls r0, r0, #2
161a0: 3050 adds r0, #80 ; 0x50
161a2: 21a0 movs r1, #160 ; 0xa0
161a4: 4b28 ldr r3, [pc, #160] ; (16248 <linemeter_init+0x220>)
161a6: 4798 blx r3
161a8: b202 sxth r2, r0
161aa: e76c b.n 16086 <linemeter_init+0x5e>
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
161ac: 2000 movs r0, #0
161ae: 4b22 ldr r3, [pc, #136] ; (16238 <linemeter_init+0x210>)
161b0: 4798 blx r3
161b2: 0003 movs r3, r0
161b4: 0080 lsls r0, r0, #2
161b6: 18c0 adds r0, r0, r3
161b8: 0080 lsls r0, r0, #2
161ba: 3050 adds r0, #80 ; 0x50
161bc: 21a0 movs r1, #160 ; 0xa0
161be: 4b22 ldr r3, [pc, #136] ; (16248 <linemeter_init+0x220>)
161c0: 4798 blx r3
161c2: b202 sxth r2, r0
161c4: e773 b.n 160ae <linemeter_init+0x86>
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
161c6: 2000 movs r0, #0
161c8: 4b1b ldr r3, [pc, #108] ; (16238 <linemeter_init+0x210>)
161ca: 4798 blx r3
161cc: 0103 lsls r3, r0, #4
161ce: 1a18 subs r0, r3, r0
161d0: 0040 lsls r0, r0, #1
161d2: 3050 adds r0, #80 ; 0x50
161d4: 21a0 movs r1, #160 ; 0xa0
161d6: 4b1c ldr r3, [pc, #112] ; (16248 <linemeter_init+0x220>)
161d8: 4798 blx r3
161da: b202 sxth r2, r0
161dc: e77b b.n 160d6 <linemeter_init+0xae>
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
161de: 2000 movs r0, #0
161e0: 4b15 ldr r3, [pc, #84] ; (16238 <linemeter_init+0x210>)
161e2: 4798 blx r3
161e4: 0083 lsls r3, r0, #2
161e6: 1818 adds r0, r3, r0
161e8: 0083 lsls r3, r0, #2
161ea: 18c0 adds r0, r0, r3
161ec: 3050 adds r0, #80 ; 0x50
161ee: 21a0 movs r1, #160 ; 0xa0
161f0: 4b15 ldr r3, [pc, #84] ; (16248 <linemeter_init+0x220>)
161f2: 4798 blx r3
161f4: b202 sxth r2, r0
161f6: e783 b.n 16100 <linemeter_init+0xd8>
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
161f8: 2000 movs r0, #0
161fa: 4b0f ldr r3, [pc, #60] ; (16238 <linemeter_init+0x210>)
161fc: 4798 blx r3
161fe: 0003 movs r3, r0
16200: 0080 lsls r0, r0, #2
16202: 18c0 adds r0, r0, r3
16204: 0040 lsls r0, r0, #1
16206: 3050 adds r0, #80 ; 0x50
16208: 21a0 movs r1, #160 ; 0xa0
1620a: 4b0f ldr r3, [pc, #60] ; (16248 <linemeter_init+0x220>)
1620c: 4798 blx r3
1620e: b202 sxth r2, r0
16210: e79b b.n 1614a <linemeter_init+0x122>
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
16212: 2000 movs r0, #0
16214: 4b08 ldr r3, [pc, #32] ; (16238 <linemeter_init+0x210>)
16216: 4798 blx r3
16218: 00c3 lsls r3, r0, #3
1621a: 1a18 subs r0, r3, r0
1621c: 3050 adds r0, #80 ; 0x50
1621e: 21a0 movs r1, #160 ; 0xa0
16220: 4b09 ldr r3, [pc, #36] ; (16248 <linemeter_init+0x220>)
16222: 4798 blx r3
16224: b202 sxth r2, r0
16226: e7a2 b.n 1616e <linemeter_init+0x146>
16228: 20004c4c .word 0x20004c4c
1622c: 00014911 .word 0x00014911
16230: 00007fff .word 0x00007fff
16234: 00005fad .word 0x00005fad
16238: 00010dd1 .word 0x00010dd1
1623c: 20004c50 .word 0x20004c50
16240: 00006135 .word 0x00006135
16244: 0002ad9c .word 0x0002ad9c
16248: 0001c0a5 .word 0x0001c0a5
0001624c <gauge_init>:
{
1624c: b5f0 push {r4, r5, r6, r7, lr}
1624e: 46c6 mov lr, r8
16250: b500 push {lr}
style_init_reset(&styles->gauge_main);
16252: 4de3 ldr r5, [pc, #908] ; (165e0 <gauge_init+0x394>)
16254: 6828 ldr r0, [r5, #0]
16256: 305c adds r0, #92 ; 0x5c
16258: 4be2 ldr r3, [pc, #904] ; (165e4 <gauge_init+0x398>)
1625a: 4798 blx r3
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
1625c: 6828 ldr r0, [r5, #0]
1625e: 305c adds r0, #92 ; 0x5c
16260: 2711 movs r7, #17
16262: 2488 movs r4, #136 ; 0x88
16264: 00e4 lsls r4, r4, #3
16266: 0022 movs r2, r4
16268: 433a orrs r2, r7
1626a: 0552 lsls r2, r2, #21
1626c: 0d52 lsrs r2, r2, #21
1626e: 4ede ldr r6, [pc, #888] ; (165e8 <gauge_init+0x39c>)
16270: 4332 orrs r2, r6
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
16272: 2199 movs r1, #153 ; 0x99
16274: 4bdd ldr r3, [pc, #884] ; (165ec <gauge_init+0x3a0>)
16276: 4698 mov r8, r3
16278: 4798 blx r3
lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
1627a: 6828 ldr r0, [r5, #0]
1627c: 305c adds r0, #92 ; 0x5c
1627e: 0022 movs r2, r4
16280: 433a orrs r2, r7
16282: 0552 lsls r2, r2, #21
16284: 0d52 lsrs r2, r2, #21
16286: 4332 orrs r2, r6
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
16288: 21c9 movs r1, #201 ; 0xc9
1628a: 47c0 blx r8
lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary);
1628c: 6828 ldr r0, [r5, #0]
1628e: 305c adds r0, #92 ; 0x5c
16290: 4bd7 ldr r3, [pc, #860] ; (165f0 <gauge_init+0x3a4>)
16292: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
16294: 21ca movs r1, #202 ; 0xca
16296: 47c0 blx r8
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
16298: 682c ldr r4, [r5, #0]
1629a: 345c adds r4, #92 ; 0x5c
1629c: 2000 movs r0, #0
1629e: 4bd5 ldr r3, [pc, #852] ; (165f4 <gauge_init+0x3a8>)
162a0: 4798 blx r3
162a2: 0083 lsls r3, r0, #2
162a4: 1818 adds r0, r3, r0
162a6: 3050 adds r0, #80 ; 0x50
162a8: 2340 movs r3, #64 ; 0x40
162aa: 33ff adds r3, #255 ; 0xff
162ac: 2201 movs r2, #1
162ae: 4298 cmp r0, r3
162b0: d900 bls.n 162b4 <gauge_init+0x68>
162b2: e15b b.n 1656c <gauge_init+0x320>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
162b4: 2190 movs r1, #144 ; 0x90
162b6: 0020 movs r0, r4
162b8: 4bcf ldr r3, [pc, #828] ; (165f8 <gauge_init+0x3ac>)
162ba: 4798 blx r3
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
162bc: 4bc8 ldr r3, [pc, #800] ; (165e0 <gauge_init+0x394>)
162be: 681c ldr r4, [r3, #0]
162c0: 345c adds r4, #92 ; 0x5c
162c2: 2000 movs r0, #0
162c4: 4bcb ldr r3, [pc, #812] ; (165f4 <gauge_init+0x3a8>)
162c6: 4798 blx r3
162c8: 3014 adds r0, #20
162ca: 0080 lsls r0, r0, #2
162cc: 2340 movs r3, #64 ; 0x40
162ce: 33ff adds r3, #255 ; 0xff
162d0: 2201 movs r2, #1
162d2: 4298 cmp r0, r3
162d4: d900 bls.n 162d8 <gauge_init+0x8c>
162d6: e155 b.n 16584 <gauge_init+0x338>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
162d8: 21c3 movs r1, #195 ; 0xc3
162da: 0020 movs r0, r4
162dc: 4bc6 ldr r3, [pc, #792] ; (165f8 <gauge_init+0x3ac>)
162de: 4798 blx r3
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
162e0: 4bbf ldr r3, [pc, #764] ; (165e0 <gauge_init+0x394>)
162e2: 681c ldr r4, [r3, #0]
162e4: 345c adds r4, #92 ; 0x5c
162e6: 2000 movs r0, #0
162e8: 4bc2 ldr r3, [pc, #776] ; (165f4 <gauge_init+0x3a8>)
162ea: 4798 blx r3
162ec: 300a adds r0, #10
162ee: 00c0 lsls r0, r0, #3
162f0: 2340 movs r3, #64 ; 0x40
162f2: 33ff adds r3, #255 ; 0xff
162f4: 2201 movs r2, #1
162f6: 4298 cmp r0, r3
162f8: d900 bls.n 162fc <gauge_init+0xb0>
162fa: e14d b.n 16598 <gauge_init+0x34c>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
162fc: 21c2 movs r1, #194 ; 0xc2
162fe: 0020 movs r0, r4
16300: 4bbd ldr r3, [pc, #756] ; (165f8 <gauge_init+0x3ac>)
16302: 4798 blx r3
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
16304: 4bb6 ldr r3, [pc, #728] ; (165e0 <gauge_init+0x394>)
16306: 681c ldr r4, [r3, #0]
16308: 345c adds r4, #92 ; 0x5c
1630a: 2000 movs r0, #0
1630c: 4bb9 ldr r3, [pc, #740] ; (165f4 <gauge_init+0x3a8>)
1630e: 4798 blx r3
16310: 0083 lsls r3, r0, #2
16312: 181b adds r3, r3, r0
16314: 009b lsls r3, r3, #2
16316: 3350 adds r3, #80 ; 0x50
16318: 2140 movs r1, #64 ; 0x40
1631a: 31ff adds r1, #255 ; 0xff
1631c: 2201 movs r2, #1
1631e: 428b cmp r3, r1
16320: d900 bls.n 16324 <gauge_init+0xd8>
16322: e143 b.n 165ac <gauge_init+0x360>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
16324: 2112 movs r1, #18
16326: 0020 movs r0, r4
16328: 4bb3 ldr r3, [pc, #716] ; (165f8 <gauge_init+0x3ac>)
1632a: 4798 blx r3
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1632c: 4bac ldr r3, [pc, #688] ; (165e0 <gauge_init+0x394>)
1632e: 681c ldr r4, [r3, #0]
16330: 345c adds r4, #92 ; 0x5c
16332: 2000 movs r0, #0
16334: 4baf ldr r3, [pc, #700] ; (165f4 <gauge_init+0x3a8>)
16336: 4798 blx r3
16338: 0083 lsls r3, r0, #2
1633a: 181b adds r3, r3, r0
1633c: 009b lsls r3, r3, #2
1633e: 3350 adds r3, #80 ; 0x50
16340: 2140 movs r1, #64 ; 0x40
16342: 31ff adds r1, #255 ; 0xff
16344: 2201 movs r2, #1
16346: 428b cmp r3, r1
16348: d900 bls.n 1634c <gauge_init+0x100>
1634a: e13c b.n 165c6 <gauge_init+0x37a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1634c: 2113 movs r1, #19
1634e: 0020 movs r0, r4
16350: 4ba9 ldr r3, [pc, #676] ; (165f8 <gauge_init+0x3ac>)
16352: 4798 blx r3
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
16354: 4ba2 ldr r3, [pc, #648] ; (165e0 <gauge_init+0x394>)
16356: 681c ldr r4, [r3, #0]
16358: 345c adds r4, #92 ; 0x5c
1635a: 2000 movs r0, #0
1635c: 4ba5 ldr r3, [pc, #660] ; (165f4 <gauge_init+0x3a8>)
1635e: 4798 blx r3
16360: 0083 lsls r3, r0, #2
16362: 181b adds r3, r3, r0
16364: 009b lsls r3, r3, #2
16366: 3350 adds r3, #80 ; 0x50
16368: 2140 movs r1, #64 ; 0x40
1636a: 31ff adds r1, #255 ; 0xff
1636c: 2201 movs r2, #1
1636e: 428b cmp r3, r1
16370: d900 bls.n 16374 <gauge_init+0x128>
16372: e149 b.n 16608 <gauge_init+0x3bc>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
16374: 2110 movs r1, #16
16376: 0020 movs r0, r4
16378: 4b9f ldr r3, [pc, #636] ; (165f8 <gauge_init+0x3ac>)
1637a: 4798 blx r3
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1637c: 4b98 ldr r3, [pc, #608] ; (165e0 <gauge_init+0x394>)
1637e: 681c ldr r4, [r3, #0]
16380: 345c adds r4, #92 ; 0x5c
16382: 2000 movs r0, #0
16384: 4b9b ldr r3, [pc, #620] ; (165f4 <gauge_init+0x3a8>)
16386: 4798 blx r3
16388: 0083 lsls r3, r0, #2
1638a: 181b adds r3, r3, r0
1638c: 009b lsls r3, r3, #2
1638e: 3350 adds r3, #80 ; 0x50
16390: 2140 movs r1, #64 ; 0x40
16392: 31ff adds r1, #255 ; 0xff
16394: 2201 movs r2, #1
16396: 428b cmp r3, r1
16398: d900 bls.n 1639c <gauge_init+0x150>
1639a: e142 b.n 16622 <gauge_init+0x3d6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1639c: 2114 movs r1, #20
1639e: 0020 movs r0, r4
163a0: 4b95 ldr r3, [pc, #596] ; (165f8 <gauge_init+0x3ac>)
163a2: 4798 blx r3
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
163a4: 4b8e ldr r3, [pc, #568] ; (165e0 <gauge_init+0x394>)
163a6: 681c ldr r4, [r3, #0]
163a8: 345c adds r4, #92 ; 0x5c
163aa: 2000 movs r0, #0
163ac: 4b91 ldr r3, [pc, #580] ; (165f4 <gauge_init+0x3a8>)
163ae: 4798 blx r3
163b0: 0103 lsls r3, r0, #4
163b2: 1a18 subs r0, r3, r0
163b4: 3050 adds r0, #80 ; 0x50
163b6: 2340 movs r3, #64 ; 0x40
163b8: 33ff adds r3, #255 ; 0xff
163ba: 2201 movs r2, #1
163bc: 4298 cmp r0, r3
163be: d900 bls.n 163c2 <gauge_init+0x176>
163c0: e13c b.n 1663c <gauge_init+0x3f0>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
163c2: 21c0 movs r1, #192 ; 0xc0
163c4: 0020 movs r0, r4
163c6: 4c8c ldr r4, [pc, #560] ; (165f8 <gauge_init+0x3ac>)
163c8: 47a0 blx r4
lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
163ca: 4d85 ldr r5, [pc, #532] ; (165e0 <gauge_init+0x394>)
163cc: 6828 ldr r0, [r5, #0]
163ce: 305c adds r0, #92 ; 0x5c
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
163d0: 4a8a ldr r2, [pc, #552] ; (165fc <gauge_init+0x3b0>)
163d2: 2101 movs r1, #1
163d4: 47a0 blx r4
style_init_reset(&styles->gauge_strong);
163d6: 6828 ldr r0, [r5, #0]
163d8: 3060 adds r0, #96 ; 0x60
163da: 4b82 ldr r3, [pc, #520] ; (165e4 <gauge_init+0x398>)
163dc: 4798 blx r3
lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
163de: 6828 ldr r0, [r5, #0]
163e0: 3060 adds r0, #96 ; 0x60
163e2: 2711 movs r7, #17
163e4: 2488 movs r4, #136 ; 0x88
163e6: 00e4 lsls r4, r4, #3
163e8: 0022 movs r2, r4
163ea: 433a orrs r2, r7
163ec: 0552 lsls r2, r2, #21
163ee: 0d52 lsrs r2, r2, #21
163f0: 4e7d ldr r6, [pc, #500] ; (165e8 <gauge_init+0x39c>)
163f2: 4332 orrs r2, r6
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
163f4: 2199 movs r1, #153 ; 0x99
163f6: 4b7d ldr r3, [pc, #500] ; (165ec <gauge_init+0x3a0>)
163f8: 4698 mov r8, r3
163fa: 4798 blx r3
lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
163fc: 6828 ldr r0, [r5, #0]
163fe: 3060 adds r0, #96 ; 0x60
16400: 0022 movs r2, r4
16402: 433a orrs r2, r7
16404: 0552 lsls r2, r2, #21
16406: 0d52 lsrs r2, r2, #21
16408: 4332 orrs r2, r6
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
1640a: 21c9 movs r1, #201 ; 0xc9
1640c: 47c0 blx r8
lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary);
1640e: 6828 ldr r0, [r5, #0]
16410: 3060 adds r0, #96 ; 0x60
16412: 4b77 ldr r3, [pc, #476] ; (165f0 <gauge_init+0x3a4>)
16414: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
16416: 21ca movs r1, #202 ; 0xca
16418: 47c0 blx r8
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
1641a: 682c ldr r4, [r5, #0]
1641c: 3460 adds r4, #96 ; 0x60
1641e: 2000 movs r0, #0
16420: 4b74 ldr r3, [pc, #464] ; (165f4 <gauge_init+0x3a8>)
16422: 4798 blx r3
16424: 300a adds r0, #10
16426: 00c0 lsls r0, r0, #3
16428: 2340 movs r3, #64 ; 0x40
1642a: 33ff adds r3, #255 ; 0xff
1642c: 2201 movs r2, #1
1642e: 4298 cmp r0, r3
16430: d900 bls.n 16434 <gauge_init+0x1e8>
16432: e10e b.n 16652 <gauge_init+0x406>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
16434: 2190 movs r1, #144 ; 0x90
16436: 0020 movs r0, r4
16438: 4b6f ldr r3, [pc, #444] ; (165f8 <gauge_init+0x3ac>)
1643a: 4798 blx r3
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
1643c: 4b68 ldr r3, [pc, #416] ; (165e0 <gauge_init+0x394>)
1643e: 681c ldr r4, [r3, #0]
16440: 3460 adds r4, #96 ; 0x60
16442: 2000 movs r0, #0
16444: 4b6b ldr r3, [pc, #428] ; (165f4 <gauge_init+0x3a8>)
16446: 4798 blx r3
16448: 300a adds r0, #10
1644a: 00c0 lsls r0, r0, #3
1644c: 2340 movs r3, #64 ; 0x40
1644e: 33ff adds r3, #255 ; 0xff
16450: 2201 movs r2, #1
16452: 4298 cmp r0, r3
16454: d900 bls.n 16458 <gauge_init+0x20c>
16456: e106 b.n 16666 <gauge_init+0x41a>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
16458: 21c3 movs r1, #195 ; 0xc3
1645a: 0020 movs r0, r4
1645c: 4b66 ldr r3, [pc, #408] ; (165f8 <gauge_init+0x3ac>)
1645e: 4798 blx r3
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
16460: 4b5f ldr r3, [pc, #380] ; (165e0 <gauge_init+0x394>)
16462: 681c ldr r4, [r3, #0]
16464: 3460 adds r4, #96 ; 0x60
16466: 2000 movs r0, #0
16468: 4b62 ldr r3, [pc, #392] ; (165f4 <gauge_init+0x3a8>)
1646a: 4798 blx r3
1646c: 0083 lsls r3, r0, #2
1646e: 1818 adds r0, r3, r0
16470: 0083 lsls r3, r0, #2
16472: 18c0 adds r0, r0, r3
16474: 3050 adds r0, #80 ; 0x50
16476: 2340 movs r3, #64 ; 0x40
16478: 33ff adds r3, #255 ; 0xff
1647a: 2201 movs r2, #1
1647c: 4298 cmp r0, r3
1647e: d900 bls.n 16482 <gauge_init+0x236>
16480: e0fb b.n 1667a <gauge_init+0x42e>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
16482: 21c0 movs r1, #192 ; 0xc0
16484: 0020 movs r0, r4
16486: 4b5c ldr r3, [pc, #368] ; (165f8 <gauge_init+0x3ac>)
16488: 4798 blx r3
style_init_reset(&styles->gauge_needle);
1648a: 4c55 ldr r4, [pc, #340] ; (165e0 <gauge_init+0x394>)
1648c: 6820 ldr r0, [r4, #0]
1648e: 3064 adds r0, #100 ; 0x64
16490: 4b54 ldr r3, [pc, #336] ; (165e4 <gauge_init+0x398>)
16492: 4798 blx r3
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
16494: 6820 ldr r0, [r4, #0]
16496: 3064 adds r0, #100 ; 0x64
16498: 4b55 ldr r3, [pc, #340] ; (165f0 <gauge_init+0x3a4>)
1649a: 699b ldr r3, [r3, #24]
1649c: 079b lsls r3, r3, #30
1649e: d500 bpl.n 164a2 <gauge_init+0x256>
164a0: e0f8 b.n 16694 <gauge_init+0x448>
164a2: 231f movs r3, #31
164a4: 213f movs r1, #63 ; 0x3f
164a6: 221f movs r2, #31
164a8: 0149 lsls r1, r1, #5
164aa: 02db lsls r3, r3, #11
164ac: 430a orrs r2, r1
164ae: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
164b0: 2199 movs r1, #153 ; 0x99
164b2: 4b4e ldr r3, [pc, #312] ; (165ec <gauge_init+0x3a0>)
164b4: 4798 blx r3
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
164b6: 4b4a ldr r3, [pc, #296] ; (165e0 <gauge_init+0x394>)
164b8: 681c ldr r4, [r3, #0]
164ba: 3464 adds r4, #100 ; 0x64
164bc: 2000 movs r0, #0
164be: 4b4d ldr r3, [pc, #308] ; (165f4 <gauge_init+0x3a8>)
164c0: 4798 blx r3
164c2: 300a adds r0, #10
164c4: 00c0 lsls r0, r0, #3
164c6: 2340 movs r3, #64 ; 0x40
164c8: 33ff adds r3, #255 ; 0xff
164ca: 2201 movs r2, #1
164cc: 4298 cmp r0, r3
164ce: d900 bls.n 164d2 <gauge_init+0x286>
164d0: e0e4 b.n 1669c <gauge_init+0x450>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
164d2: 2190 movs r1, #144 ; 0x90
164d4: 0020 movs r0, r4
164d6: 4b48 ldr r3, [pc, #288] ; (165f8 <gauge_init+0x3ac>)
164d8: 4798 blx r3
lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER);
164da: 4c41 ldr r4, [pc, #260] ; (165e0 <gauge_init+0x394>)
164dc: 6820 ldr r0, [r4, #0]
164de: 3064 adds r0, #100 ; 0x64
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
164e0: 22ff movs r2, #255 ; 0xff
164e2: 212c movs r1, #44 ; 0x2c
164e4: 4b46 ldr r3, [pc, #280] ; (16600 <gauge_init+0x3b4>)
164e6: 4798 blx r3
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
164e8: 6820 ldr r0, [r4, #0]
164ea: 3064 adds r0, #100 ; 0x64
164ec: 4b40 ldr r3, [pc, #256] ; (165f0 <gauge_init+0x3a4>)
164ee: 699b ldr r3, [r3, #24]
164f0: 079b lsls r3, r3, #30
164f2: d500 bpl.n 164f6 <gauge_init+0x2aa>
164f4: e0dc b.n 166b0 <gauge_init+0x464>
164f6: 231f movs r3, #31
164f8: 213f movs r1, #63 ; 0x3f
164fa: 221f movs r2, #31
164fc: 0149 lsls r1, r1, #5
164fe: 02db lsls r3, r3, #11
16500: 430a orrs r2, r1
16502: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
16504: 2129 movs r1, #41 ; 0x29
16506: 4b39 ldr r3, [pc, #228] ; (165ec <gauge_init+0x3a0>)
16508: 4798 blx r3
lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
1650a: 4c35 ldr r4, [pc, #212] ; (165e0 <gauge_init+0x394>)
1650c: 6820 ldr r0, [r4, #0]
1650e: 3064 adds r0, #100 ; 0x64
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16510: 4a3a ldr r2, [pc, #232] ; (165fc <gauge_init+0x3b0>)
16512: 2101 movs r1, #1
16514: 4b38 ldr r3, [pc, #224] ; (165f8 <gauge_init+0x3ac>)
16516: 4798 blx r3
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
16518: 6824 ldr r4, [r4, #0]
1651a: 3464 adds r4, #100 ; 0x64
1651c: 2000 movs r0, #0
1651e: 4b35 ldr r3, [pc, #212] ; (165f4 <gauge_init+0x3a8>)
16520: 4798 blx r3
16522: 0103 lsls r3, r0, #4
16524: 1a1b subs r3, r3, r0
16526: 005b lsls r3, r3, #1
16528: 3350 adds r3, #80 ; 0x50
1652a: 2140 movs r1, #64 ; 0x40
1652c: 31ff adds r1, #255 ; 0xff
1652e: 2201 movs r2, #1
16530: 428b cmp r3, r1
16532: d900 bls.n 16536 <gauge_init+0x2ea>
16534: e0c0 b.n 166b8 <gauge_init+0x46c>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
16536: 2103 movs r1, #3
16538: 0020 movs r0, r4
1653a: 4b2f ldr r3, [pc, #188] ; (165f8 <gauge_init+0x3ac>)
1653c: 4798 blx r3
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
1653e: 4b28 ldr r3, [pc, #160] ; (165e0 <gauge_init+0x394>)
16540: 681c ldr r4, [r3, #0]
16542: 3464 adds r4, #100 ; 0x64
16544: 2000 movs r0, #0
16546: 4b2b ldr r3, [pc, #172] ; (165f4 <gauge_init+0x3a8>)
16548: 4798 blx r3
1654a: 0083 lsls r3, r0, #2
1654c: 181b adds r3, r3, r0
1654e: 005b lsls r3, r3, #1
16550: 3350 adds r3, #80 ; 0x50
16552: 2140 movs r1, #64 ; 0x40
16554: 31ff adds r1, #255 ; 0xff
16556: 2201 movs r2, #1
16558: 428b cmp r3, r1
1655a: d900 bls.n 1655e <gauge_init+0x312>
1655c: e0b8 b.n 166d0 <gauge_init+0x484>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1655e: 2114 movs r1, #20
16560: 0020 movs r0, r4
16562: 4b25 ldr r3, [pc, #148] ; (165f8 <gauge_init+0x3ac>)
16564: 4798 blx r3
}
16566: bc04 pop {r2}
16568: 4690 mov r8, r2
1656a: bdf0 pop {r4, r5, r6, r7, pc}
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
1656c: 2000 movs r0, #0
1656e: 4b21 ldr r3, [pc, #132] ; (165f4 <gauge_init+0x3a8>)
16570: 4798 blx r3
16572: 0003 movs r3, r0
16574: 0080 lsls r0, r0, #2
16576: 18c0 adds r0, r0, r3
16578: 3050 adds r0, #80 ; 0x50
1657a: 21a0 movs r1, #160 ; 0xa0
1657c: 4b21 ldr r3, [pc, #132] ; (16604 <gauge_init+0x3b8>)
1657e: 4798 blx r3
16580: b202 sxth r2, r0
16582: e697 b.n 162b4 <gauge_init+0x68>
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
16584: 2000 movs r0, #0
16586: 4b1b ldr r3, [pc, #108] ; (165f4 <gauge_init+0x3a8>)
16588: 4798 blx r3
1658a: 3014 adds r0, #20
1658c: 0080 lsls r0, r0, #2
1658e: 21a0 movs r1, #160 ; 0xa0
16590: 4b1c ldr r3, [pc, #112] ; (16604 <gauge_init+0x3b8>)
16592: 4798 blx r3
16594: b202 sxth r2, r0
16596: e69f b.n 162d8 <gauge_init+0x8c>
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
16598: 2000 movs r0, #0
1659a: 4b16 ldr r3, [pc, #88] ; (165f4 <gauge_init+0x3a8>)
1659c: 4798 blx r3
1659e: 300a adds r0, #10
165a0: 00c0 lsls r0, r0, #3
165a2: 21a0 movs r1, #160 ; 0xa0
165a4: 4b17 ldr r3, [pc, #92] ; (16604 <gauge_init+0x3b8>)
165a6: 4798 blx r3
165a8: b202 sxth r2, r0
165aa: e6a7 b.n 162fc <gauge_init+0xb0>
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
165ac: 2000 movs r0, #0
165ae: 4b11 ldr r3, [pc, #68] ; (165f4 <gauge_init+0x3a8>)
165b0: 4798 blx r3
165b2: 0003 movs r3, r0
165b4: 0080 lsls r0, r0, #2
165b6: 18c0 adds r0, r0, r3
165b8: 0080 lsls r0, r0, #2
165ba: 3050 adds r0, #80 ; 0x50
165bc: 21a0 movs r1, #160 ; 0xa0
165be: 4b11 ldr r3, [pc, #68] ; (16604 <gauge_init+0x3b8>)
165c0: 4798 blx r3
165c2: b202 sxth r2, r0
165c4: e6ae b.n 16324 <gauge_init+0xd8>
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
165c6: 2000 movs r0, #0
165c8: 4b0a ldr r3, [pc, #40] ; (165f4 <gauge_init+0x3a8>)
165ca: 4798 blx r3
165cc: 0003 movs r3, r0
165ce: 0080 lsls r0, r0, #2
165d0: 18c0 adds r0, r0, r3
165d2: 0080 lsls r0, r0, #2
165d4: 3050 adds r0, #80 ; 0x50
165d6: 21a0 movs r1, #160 ; 0xa0
165d8: 4b0a ldr r3, [pc, #40] ; (16604 <gauge_init+0x3b8>)
165da: 4798 blx r3
165dc: b202 sxth r2, r0
165de: e6b5 b.n 1634c <gauge_init+0x100>
165e0: 20004c4c .word 0x20004c4c
165e4: 00014911 .word 0x00014911
165e8: ffff8800 .word 0xffff8800
165ec: 00006135 .word 0x00006135
165f0: 20004c50 .word 0x20004c50
165f4: 00010dd1 .word 0x00010dd1
165f8: 00005fad .word 0x00005fad
165fc: 00007fff .word 0x00007fff
16600: 000062bd .word 0x000062bd
16604: 0001c0a5 .word 0x0001c0a5
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
16608: 2000 movs r0, #0
1660a: 4b38 ldr r3, [pc, #224] ; (166ec <gauge_init+0x4a0>)
1660c: 4798 blx r3
1660e: 0003 movs r3, r0
16610: 0080 lsls r0, r0, #2
16612: 18c0 adds r0, r0, r3
16614: 0080 lsls r0, r0, #2
16616: 3050 adds r0, #80 ; 0x50
16618: 21a0 movs r1, #160 ; 0xa0
1661a: 4b35 ldr r3, [pc, #212] ; (166f0 <gauge_init+0x4a4>)
1661c: 4798 blx r3
1661e: b202 sxth r2, r0
16620: e6a8 b.n 16374 <gauge_init+0x128>
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
16622: 2000 movs r0, #0
16624: 4b31 ldr r3, [pc, #196] ; (166ec <gauge_init+0x4a0>)
16626: 4798 blx r3
16628: 0003 movs r3, r0
1662a: 0080 lsls r0, r0, #2
1662c: 18c0 adds r0, r0, r3
1662e: 0080 lsls r0, r0, #2
16630: 3050 adds r0, #80 ; 0x50
16632: 21a0 movs r1, #160 ; 0xa0
16634: 4b2e ldr r3, [pc, #184] ; (166f0 <gauge_init+0x4a4>)
16636: 4798 blx r3
16638: b202 sxth r2, r0
1663a: e6af b.n 1639c <gauge_init+0x150>
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
1663c: 2000 movs r0, #0
1663e: 4b2b ldr r3, [pc, #172] ; (166ec <gauge_init+0x4a0>)
16640: 4798 blx r3
16642: 0103 lsls r3, r0, #4
16644: 1a18 subs r0, r3, r0
16646: 3050 adds r0, #80 ; 0x50
16648: 21a0 movs r1, #160 ; 0xa0
1664a: 4b29 ldr r3, [pc, #164] ; (166f0 <gauge_init+0x4a4>)
1664c: 4798 blx r3
1664e: b202 sxth r2, r0
16650: e6b7 b.n 163c2 <gauge_init+0x176>
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
16652: 2000 movs r0, #0
16654: 4b25 ldr r3, [pc, #148] ; (166ec <gauge_init+0x4a0>)
16656: 4798 blx r3
16658: 300a adds r0, #10
1665a: 00c0 lsls r0, r0, #3
1665c: 21a0 movs r1, #160 ; 0xa0
1665e: 4b24 ldr r3, [pc, #144] ; (166f0 <gauge_init+0x4a4>)
16660: 4798 blx r3
16662: b202 sxth r2, r0
16664: e6e6 b.n 16434 <gauge_init+0x1e8>
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
16666: 2000 movs r0, #0
16668: 4b20 ldr r3, [pc, #128] ; (166ec <gauge_init+0x4a0>)
1666a: 4798 blx r3
1666c: 300a adds r0, #10
1666e: 00c0 lsls r0, r0, #3
16670: 21a0 movs r1, #160 ; 0xa0
16672: 4b1f ldr r3, [pc, #124] ; (166f0 <gauge_init+0x4a4>)
16674: 4798 blx r3
16676: b202 sxth r2, r0
16678: e6ee b.n 16458 <gauge_init+0x20c>
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
1667a: 2000 movs r0, #0
1667c: 4b1b ldr r3, [pc, #108] ; (166ec <gauge_init+0x4a0>)
1667e: 4798 blx r3
16680: 0083 lsls r3, r0, #2
16682: 1818 adds r0, r3, r0
16684: 0083 lsls r3, r0, #2
16686: 18c0 adds r0, r0, r3
16688: 3050 adds r0, #80 ; 0x50
1668a: 21a0 movs r1, #160 ; 0xa0
1668c: 4b18 ldr r3, [pc, #96] ; (166f0 <gauge_init+0x4a4>)
1668e: 4798 blx r3
16690: b202 sxth r2, r0
16692: e6f6 b.n 16482 <gauge_init+0x236>
16694: 2308 movs r3, #8
16696: 2112 movs r1, #18
16698: 220b movs r2, #11
1669a: e705 b.n 164a8 <gauge_init+0x25c>
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
1669c: 2000 movs r0, #0
1669e: 4b13 ldr r3, [pc, #76] ; (166ec <gauge_init+0x4a0>)
166a0: 4798 blx r3
166a2: 300a adds r0, #10
166a4: 00c0 lsls r0, r0, #3
166a6: 21a0 movs r1, #160 ; 0xa0
166a8: 4b11 ldr r3, [pc, #68] ; (166f0 <gauge_init+0x4a4>)
166aa: 4798 blx r3
166ac: b202 sxth r2, r0
166ae: e710 b.n 164d2 <gauge_init+0x286>
166b0: 2308 movs r3, #8
166b2: 2112 movs r1, #18
166b4: 220b movs r2, #11
166b6: e721 b.n 164fc <gauge_init+0x2b0>
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
166b8: 2000 movs r0, #0
166ba: 4b0c ldr r3, [pc, #48] ; (166ec <gauge_init+0x4a0>)
166bc: 4798 blx r3
166be: 0103 lsls r3, r0, #4
166c0: 1a18 subs r0, r3, r0
166c2: 0040 lsls r0, r0, #1
166c4: 3050 adds r0, #80 ; 0x50
166c6: 21a0 movs r1, #160 ; 0xa0
166c8: 4b09 ldr r3, [pc, #36] ; (166f0 <gauge_init+0x4a4>)
166ca: 4798 blx r3
166cc: b202 sxth r2, r0
166ce: e732 b.n 16536 <gauge_init+0x2ea>
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
166d0: 2000 movs r0, #0
166d2: 4b06 ldr r3, [pc, #24] ; (166ec <gauge_init+0x4a0>)
166d4: 4798 blx r3
166d6: 0003 movs r3, r0
166d8: 0080 lsls r0, r0, #2
166da: 18c0 adds r0, r0, r3
166dc: 0040 lsls r0, r0, #1
166de: 3050 adds r0, #80 ; 0x50
166e0: 21a0 movs r1, #160 ; 0xa0
166e2: 4b03 ldr r3, [pc, #12] ; (166f0 <gauge_init+0x4a4>)
166e4: 4798 blx r3
166e6: b202 sxth r2, r0
166e8: e739 b.n 1655e <gauge_init+0x312>
166ea: 46c0 nop ; (mov r8, r8)
166ec: 00010dd1 .word 0x00010dd1
166f0: 0001c0a5 .word 0x0001c0a5
000166f4 <arc_init>:
{
166f4: b570 push {r4, r5, r6, lr}
style_init_reset(&styles->arc_indic);
166f6: 4c39 ldr r4, [pc, #228] ; (167dc <arc_init+0xe8>)
166f8: 6820 ldr r0, [r4, #0]
166fa: 301c adds r0, #28
166fc: 4b38 ldr r3, [pc, #224] ; (167e0 <arc_init+0xec>)
166fe: 4798 blx r3
lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary);
16700: 6820 ldr r0, [r4, #0]
16702: 301c adds r0, #28
16704: 4b37 ldr r3, [pc, #220] ; (167e4 <arc_init+0xf0>)
16706: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
16708: 2199 movs r1, #153 ; 0x99
1670a: 4b37 ldr r3, [pc, #220] ; (167e8 <arc_init+0xf4>)
1670c: 4798 blx r3
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
1670e: 6824 ldr r4, [r4, #0]
16710: 341c adds r4, #28
16712: 2000 movs r0, #0
16714: 4b35 ldr r3, [pc, #212] ; (167ec <arc_init+0xf8>)
16716: 4798 blx r3
16718: 0083 lsls r3, r0, #2
1671a: 1818 adds r0, r3, r0
1671c: 0083 lsls r3, r0, #2
1671e: 18c0 adds r0, r0, r3
16720: 3050 adds r0, #80 ; 0x50
16722: 2340 movs r3, #64 ; 0x40
16724: 33ff adds r3, #255 ; 0xff
16726: 2201 movs r2, #1
16728: 4298 cmp r0, r3
1672a: d838 bhi.n 1679e <arc_init+0xaa>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1672c: 2190 movs r1, #144 ; 0x90
1672e: 0020 movs r0, r4
16730: 4d2f ldr r5, [pc, #188] ; (167f0 <arc_init+0xfc>)
16732: 47a8 blx r5
lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true);
16734: 4c29 ldr r4, [pc, #164] ; (167dc <arc_init+0xe8>)
16736: 6820 ldr r0, [r4, #0]
16738: 301c adds r0, #28
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
1673a: 2201 movs r2, #1
1673c: 2194 movs r1, #148 ; 0x94
1673e: 47a8 blx r5
style_init_reset(&styles->arc_bg);
16740: 6820 ldr r0, [r4, #0]
16742: 3020 adds r0, #32
16744: 4b26 ldr r3, [pc, #152] ; (167e0 <arc_init+0xec>)
16746: 4798 blx r3
lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
16748: 6820 ldr r0, [r4, #0]
1674a: 3020 adds r0, #32
1674c: 4b25 ldr r3, [pc, #148] ; (167e4 <arc_init+0xf0>)
1674e: 699b ldr r3, [r3, #24]
16750: 079b lsls r3, r3, #30
16752: d431 bmi.n 167b8 <arc_init+0xc4>
16754: 2308 movs r3, #8
16756: 2112 movs r1, #18
16758: 2209 movs r2, #9
1675a: 0149 lsls r1, r1, #5
1675c: 02db lsls r3, r3, #11
1675e: 430a orrs r2, r1
16760: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
16762: 2199 movs r1, #153 ; 0x99
16764: 4b20 ldr r3, [pc, #128] ; (167e8 <arc_init+0xf4>)
16766: 4798 blx r3
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
16768: 4b1c ldr r3, [pc, #112] ; (167dc <arc_init+0xe8>)
1676a: 681c ldr r4, [r3, #0]
1676c: 3420 adds r4, #32
1676e: 2000 movs r0, #0
16770: 4b1e ldr r3, [pc, #120] ; (167ec <arc_init+0xf8>)
16772: 4798 blx r3
16774: 0083 lsls r3, r0, #2
16776: 1818 adds r0, r3, r0
16778: 0083 lsls r3, r0, #2
1677a: 18c0 adds r0, r0, r3
1677c: 3050 adds r0, #80 ; 0x50
1677e: 2340 movs r3, #64 ; 0x40
16780: 33ff adds r3, #255 ; 0xff
16782: 2201 movs r2, #1
16784: 4298 cmp r0, r3
16786: d81b bhi.n 167c0 <arc_init+0xcc>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
16788: 2190 movs r1, #144 ; 0x90
1678a: 0020 movs r0, r4
1678c: 4c18 ldr r4, [pc, #96] ; (167f0 <arc_init+0xfc>)
1678e: 47a0 blx r4
lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true);
16790: 4b12 ldr r3, [pc, #72] ; (167dc <arc_init+0xe8>)
16792: 6818 ldr r0, [r3, #0]
16794: 3020 adds r0, #32
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
16796: 2201 movs r2, #1
16798: 2194 movs r1, #148 ; 0x94
1679a: 47a0 blx r4
}
1679c: bd70 pop {r4, r5, r6, pc}
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
1679e: 2000 movs r0, #0
167a0: 4b12 ldr r3, [pc, #72] ; (167ec <arc_init+0xf8>)
167a2: 4798 blx r3
167a4: 0083 lsls r3, r0, #2
167a6: 1818 adds r0, r3, r0
167a8: 0083 lsls r3, r0, #2
167aa: 18c0 adds r0, r0, r3
167ac: 3050 adds r0, #80 ; 0x50
167ae: 21a0 movs r1, #160 ; 0xa0
167b0: 4b10 ldr r3, [pc, #64] ; (167f4 <arc_init+0x100>)
167b2: 4798 blx r3
167b4: b202 sxth r2, r0
167b6: e7b9 b.n 1672c <arc_init+0x38>
167b8: 231a movs r3, #26
167ba: 2135 movs r1, #53 ; 0x35
167bc: 221b movs r2, #27
167be: e7cc b.n 1675a <arc_init+0x66>
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
167c0: 2000 movs r0, #0
167c2: 4b0a ldr r3, [pc, #40] ; (167ec <arc_init+0xf8>)
167c4: 4798 blx r3
167c6: 0083 lsls r3, r0, #2
167c8: 1818 adds r0, r3, r0
167ca: 0083 lsls r3, r0, #2
167cc: 18c0 adds r0, r0, r3
167ce: 3050 adds r0, #80 ; 0x50
167d0: 21a0 movs r1, #160 ; 0xa0
167d2: 4b08 ldr r3, [pc, #32] ; (167f4 <arc_init+0x100>)
167d4: 4798 blx r3
167d6: b202 sxth r2, r0
167d8: e7d6 b.n 16788 <arc_init+0x94>
167da: 46c0 nop ; (mov r8, r8)
167dc: 20004c4c .word 0x20004c4c
167e0: 00014911 .word 0x00014911
167e4: 20004c50 .word 0x20004c50
167e8: 00006135 .word 0x00006135
167ec: 00010dd1 .word 0x00010dd1
167f0: 00005fad .word 0x00005fad
167f4: 0001c0a5 .word 0x0001c0a5
000167f8 <led_init>:
{
167f8: b5f0 push {r4, r5, r6, r7, lr}
167fa: 46c6 mov lr, r8
167fc: b500 push {lr}
style_init_reset(&styles->led);
167fe: 4c39 ldr r4, [pc, #228] ; (168e4 <led_init+0xec>)
16800: 6820 ldr r0, [r4, #0]
16802: 306c adds r0, #108 ; 0x6c
16804: 4b38 ldr r3, [pc, #224] ; (168e8 <led_init+0xf0>)
16806: 4798 blx r3
lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER);
16808: 6820 ldr r0, [r4, #0]
1680a: 306c adds r0, #108 ; 0x6c
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1680c: 22ff movs r2, #255 ; 0xff
1680e: 212c movs r1, #44 ; 0x2c
16810: 4d36 ldr r5, [pc, #216] ; (168ec <led_init+0xf4>)
16812: 47a8 blx r5
lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
16814: 6820 ldr r0, [r4, #0]
16816: 306c adds r0, #108 ; 0x6c
16818: 4b35 ldr r3, [pc, #212] ; (168f0 <led_init+0xf8>)
1681a: 4698 mov r8, r3
1681c: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1681e: 2129 movs r1, #41 ; 0x29
16820: 4f34 ldr r7, [pc, #208] ; (168f4 <led_init+0xfc>)
16822: 47b8 blx r7
lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2);
16824: 6820 ldr r0, [r4, #0]
16826: 306c adds r0, #108 ; 0x6c
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
16828: 2202 movs r2, #2
1682a: 2130 movs r1, #48 ; 0x30
1682c: 4e32 ldr r6, [pc, #200] ; (168f8 <led_init+0x100>)
1682e: 47b0 blx r6
lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50);
16830: 6820 ldr r0, [r4, #0]
16832: 306c adds r0, #108 ; 0x6c
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
16834: 227f movs r2, #127 ; 0x7f
16836: 213c movs r1, #60 ; 0x3c
16838: 47a8 blx r5
lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30));
1683a: 6825 ldr r5, [r4, #0]
1683c: 356c adds r5, #108 ; 0x6c
1683e: 4643 mov r3, r8
16840: 8898 ldrh r0, [r3, #4]
16842: 214c movs r1, #76 ; 0x4c
16844: 4b2d ldr r3, [pc, #180] ; (168fc <led_init+0x104>)
16846: 4798 blx r3
16848: 1c02 adds r2, r0, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1684a: 2139 movs r1, #57 ; 0x39
1684c: 0028 movs r0, r5
1684e: 47b8 blx r7
lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
16850: 6820 ldr r0, [r4, #0]
16852: 306c adds r0, #108 ; 0x6c
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16854: 4a2a ldr r2, [pc, #168] ; (16900 <led_init+0x108>)
16856: 2101 movs r1, #1
16858: 47b0 blx r6
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
1685a: 6824 ldr r4, [r4, #0]
1685c: 346c adds r4, #108 ; 0x6c
1685e: 2000 movs r0, #0
16860: 4b28 ldr r3, [pc, #160] ; (16904 <led_init+0x10c>)
16862: 4798 blx r3
16864: 0103 lsls r3, r0, #4
16866: 1a18 subs r0, r3, r0
16868: 3050 adds r0, #80 ; 0x50
1686a: 2340 movs r3, #64 ; 0x40
1686c: 33ff adds r3, #255 ; 0xff
1686e: 2201 movs r2, #1
16870: 4298 cmp r0, r3
16872: d81f bhi.n 168b4 <led_init+0xbc>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
16874: 2150 movs r1, #80 ; 0x50
16876: 0020 movs r0, r4
16878: 4b1f ldr r3, [pc, #124] ; (168f8 <led_init+0x100>)
1687a: 4798 blx r3
lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
1687c: 4c19 ldr r4, [pc, #100] ; (168e4 <led_init+0xec>)
1687e: 6820 ldr r0, [r4, #0]
16880: 306c adds r0, #108 ; 0x6c
16882: 4b1b ldr r3, [pc, #108] ; (168f0 <led_init+0xf8>)
16884: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
16886: 2159 movs r1, #89 ; 0x59
16888: 4b1a ldr r3, [pc, #104] ; (168f4 <led_init+0xfc>)
1688a: 4798 blx r3
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
1688c: 6824 ldr r4, [r4, #0]
1688e: 346c adds r4, #108 ; 0x6c
16890: 2000 movs r0, #0
16892: 4b1c ldr r3, [pc, #112] ; (16904 <led_init+0x10c>)
16894: 4798 blx r3
16896: 0083 lsls r3, r0, #2
16898: 1818 adds r0, r3, r0
1689a: 3050 adds r0, #80 ; 0x50
1689c: 2340 movs r3, #64 ; 0x40
1689e: 33ff adds r3, #255 ; 0xff
168a0: 2201 movs r2, #1
168a2: 4298 cmp r0, r3
168a4: d811 bhi.n 168ca <led_init+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
168a6: 2153 movs r1, #83 ; 0x53
168a8: 0020 movs r0, r4
168aa: 4b13 ldr r3, [pc, #76] ; (168f8 <led_init+0x100>)
168ac: 4798 blx r3
}
168ae: bc04 pop {r2}
168b0: 4690 mov r8, r2
168b2: bdf0 pop {r4, r5, r6, r7, pc}
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
168b4: 2000 movs r0, #0
168b6: 4b13 ldr r3, [pc, #76] ; (16904 <led_init+0x10c>)
168b8: 4798 blx r3
168ba: 0103 lsls r3, r0, #4
168bc: 1a18 subs r0, r3, r0
168be: 3050 adds r0, #80 ; 0x50
168c0: 21a0 movs r1, #160 ; 0xa0
168c2: 4b11 ldr r3, [pc, #68] ; (16908 <led_init+0x110>)
168c4: 4798 blx r3
168c6: b202 sxth r2, r0
168c8: e7d4 b.n 16874 <led_init+0x7c>
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
168ca: 2000 movs r0, #0
168cc: 4b0d ldr r3, [pc, #52] ; (16904 <led_init+0x10c>)
168ce: 4798 blx r3
168d0: 0003 movs r3, r0
168d2: 0080 lsls r0, r0, #2
168d4: 18c0 adds r0, r0, r3
168d6: 3050 adds r0, #80 ; 0x50
168d8: 21a0 movs r1, #160 ; 0xa0
168da: 4b0b ldr r3, [pc, #44] ; (16908 <led_init+0x110>)
168dc: 4798 blx r3
168de: b202 sxth r2, r0
168e0: e7e1 b.n 168a6 <led_init+0xae>
168e2: 46c0 nop ; (mov r8, r8)
168e4: 20004c4c .word 0x20004c4c
168e8: 00014911 .word 0x00014911
168ec: 000062bd .word 0x000062bd
168f0: 20004c50 .word 0x20004c50
168f4: 00006135 .word 0x00006135
168f8: 00005fad .word 0x00005fad
168fc: 00011a85 .word 0x00011a85
16900: 00007fff .word 0x00007fff
16904: 00010dd1 .word 0x00010dd1
16908: 0001c0a5 .word 0x0001c0a5
0001690c <lv_theme_material_init>:
{
1690c: b5f0 push {r4, r5, r6, r7, lr}
1690e: 46c6 mov lr, r8
16910: b500 push {lr}
16912: 4680 mov r8, r0
16914: 1c0f adds r7, r1, #0
16916: 0015 movs r5, r2
16918: 001e movs r6, r3
if(!inited) {
1691a: 4bfe ldr r3, [pc, #1016] ; (16d14 <lv_theme_material_init+0x408>)
1691c: 781b ldrb r3, [r3, #0]
1691e: 2b00 cmp r3, #0
16920: d101 bne.n 16926 <lv_theme_material_init+0x1a>
16922: f001 fb9e bl 18062 <lv_theme_material_init+0x1756>
theme.color_primary = color_primary;
16926: 4cfc ldr r4, [pc, #1008] ; (16d18 <lv_theme_material_init+0x40c>)
16928: 4643 mov r3, r8
1692a: 80a3 strh r3, [r4, #4]
theme.color_secondary = color_secondary;
1692c: 80e7 strh r7, [r4, #6]
theme.font_small = font_small;
1692e: 60a6 str r6, [r4, #8]
theme.font_normal = font_normal;
16930: 9b06 ldr r3, [sp, #24]
16932: 60e3 str r3, [r4, #12]
theme.font_subtitle = font_subtitle;
16934: 9b07 ldr r3, [sp, #28]
16936: 6123 str r3, [r4, #16]
theme.font_title = font_title;
16938: 9b08 ldr r3, [sp, #32]
1693a: 6163 str r3, [r4, #20]
theme.flags = flags;
1693c: 61a5 str r5, [r4, #24]
basic_init();
1693e: 4bf7 ldr r3, [pc, #988] ; (16d1c <lv_theme_material_init+0x410>)
16940: 4798 blx r3
bar_init();
16942: 4bf7 ldr r3, [pc, #988] ; (16d20 <lv_theme_material_init+0x414>)
16944: 4798 blx r3
led_init();
16946: 4bf7 ldr r3, [pc, #988] ; (16d24 <lv_theme_material_init+0x418>)
16948: 4798 blx r3
slider_init();
1694a: 4bf7 ldr r3, [pc, #988] ; (16d28 <lv_theme_material_init+0x41c>)
1694c: 4798 blx r3
switch_init();
1694e: 4bf7 ldr r3, [pc, #988] ; (16d2c <lv_theme_material_init+0x420>)
16950: 4798 blx r3
linemeter_init();
16952: 4bf7 ldr r3, [pc, #988] ; (16d30 <lv_theme_material_init+0x424>)
16954: 4798 blx r3
gauge_init();
16956: 4bf7 ldr r3, [pc, #988] ; (16d34 <lv_theme_material_init+0x428>)
16958: 4798 blx r3
arc_init();
1695a: 4bf7 ldr r3, [pc, #988] ; (16d38 <lv_theme_material_init+0x42c>)
1695c: 4798 blx r3
style_init_reset(&styles->chart_bg);
1695e: 4df7 ldr r5, [pc, #988] ; (16d3c <lv_theme_material_init+0x430>)
16960: 6828 ldr r0, [r5, #0]
16962: 3040 adds r0, #64 ; 0x40
16964: 4bf6 ldr r3, [pc, #984] ; (16d40 <lv_theme_material_init+0x434>)
16966: 4798 blx r3
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
16968: 6828 ldr r0, [r5, #0]
1696a: 3040 adds r0, #64 ; 0x40
1696c: 69a3 ldr r3, [r4, #24]
1696e: 079b lsls r3, r3, #30
16970: d501 bpl.n 16976 <lv_theme_material_init+0x6a>
16972: f001 fb7f bl 18074 <lv_theme_material_init+0x1768>
16976: 2314 movs r3, #20
16978: 212b movs r1, #43 ; 0x2b
1697a: 2217 movs r2, #23
1697c: 0149 lsls r1, r1, #5
1697e: 02db lsls r3, r3, #11
16980: 430a orrs r2, r1
16982: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
16984: 49ef ldr r1, [pc, #956] ; (16d44 <lv_theme_material_init+0x438>)
16986: 4bf0 ldr r3, [pc, #960] ; (16d48 <lv_theme_material_init+0x43c>)
16988: 4798 blx r3
style_init_reset(&styles->chart_series_bg);
1698a: 4cec ldr r4, [pc, #944] ; (16d3c <lv_theme_material_init+0x430>)
1698c: 6820 ldr r0, [r4, #0]
1698e: 3044 adds r0, #68 ; 0x44
16990: 4beb ldr r3, [pc, #940] ; (16d40 <lv_theme_material_init+0x434>)
16992: 4798 blx r3
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
16994: 6824 ldr r4, [r4, #0]
16996: 3444 adds r4, #68 ; 0x44
16998: 2000 movs r0, #0
1699a: 4bec ldr r3, [pc, #944] ; (16d4c <lv_theme_material_init+0x440>)
1699c: 4798 blx r3
1699e: 3050 adds r0, #80 ; 0x50
169a0: 2340 movs r3, #64 ; 0x40
169a2: 33ff adds r3, #255 ; 0xff
169a4: 2201 movs r2, #1
169a6: 4298 cmp r0, r3
169a8: d901 bls.n 169ae <lv_theme_material_init+0xa2>
169aa: f001 fb68 bl 1807e <lv_theme_material_init+0x1772>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
169ae: 2190 movs r1, #144 ; 0x90
169b0: 0020 movs r0, r4
169b2: 4be7 ldr r3, [pc, #924] ; (16d50 <lv_theme_material_init+0x444>)
169b4: 4798 blx r3
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
169b6: 4be1 ldr r3, [pc, #900] ; (16d3c <lv_theme_material_init+0x430>)
169b8: 681c ldr r4, [r3, #0]
169ba: 3444 adds r4, #68 ; 0x44
169bc: 2000 movs r0, #0
169be: 4be3 ldr r3, [pc, #908] ; (16d4c <lv_theme_material_init+0x440>)
169c0: 4798 blx r3
169c2: 0083 lsls r3, r0, #2
169c4: 181b adds r3, r3, r0
169c6: 005b lsls r3, r3, #1
169c8: 3350 adds r3, #80 ; 0x50
169ca: 2140 movs r1, #64 ; 0x40
169cc: 31ff adds r1, #255 ; 0xff
169ce: 2201 movs r2, #1
169d0: 428b cmp r3, r1
169d2: d901 bls.n 169d8 <lv_theme_material_init+0xcc>
169d4: f001 fb5d bl 18092 <lv_theme_material_init+0x1786>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar)
169d8: 2192 movs r1, #146 ; 0x92
169da: 0020 movs r0, r4
169dc: 4bdc ldr r3, [pc, #880] ; (16d50 <lv_theme_material_init+0x444>)
169de: 4798 blx r3
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
169e0: 4bd6 ldr r3, [pc, #856] ; (16d3c <lv_theme_material_init+0x430>)
169e2: 681c ldr r4, [r3, #0]
169e4: 3444 adds r4, #68 ; 0x44
169e6: 2000 movs r0, #0
169e8: 4bd8 ldr r3, [pc, #864] ; (16d4c <lv_theme_material_init+0x440>)
169ea: 4798 blx r3
169ec: 0083 lsls r3, r0, #2
169ee: 181b adds r3, r3, r0
169f0: 005b lsls r3, r3, #1
169f2: 3350 adds r3, #80 ; 0x50
169f4: 2140 movs r1, #64 ; 0x40
169f6: 31ff adds r1, #255 ; 0xff
169f8: 2201 movs r2, #1
169fa: 428b cmp r3, r1
169fc: d901 bls.n 16a02 <lv_theme_material_init+0xf6>
169fe: f001 fb56 bl 180ae <lv_theme_material_init+0x17a2>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
16a02: 2193 movs r1, #147 ; 0x93
16a04: 0020 movs r0, r4
16a06: 4bd2 ldr r3, [pc, #840] ; (16d50 <lv_theme_material_init+0x444>)
16a08: 4798 blx r3
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
16a0a: 4bcc ldr r3, [pc, #816] ; (16d3c <lv_theme_material_init+0x430>)
16a0c: 6818 ldr r0, [r3, #0]
16a0e: 3044 adds r0, #68 ; 0x44
16a10: 4bc1 ldr r3, [pc, #772] ; (16d18 <lv_theme_material_init+0x40c>)
16a12: 699b ldr r3, [r3, #24]
16a14: 079b lsls r3, r3, #30
16a16: d501 bpl.n 16a1c <lv_theme_material_init+0x110>
16a18: f001 fb57 bl 180ca <lv_theme_material_init+0x17be>
16a1c: 2310 movs r3, #16
16a1e: 2122 movs r1, #34 ; 0x22
16a20: 2212 movs r2, #18
16a22: 0149 lsls r1, r1, #5
16a24: 02db lsls r3, r3, #11
16a26: 430a orrs r2, r1
16a28: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
16a2a: 2199 movs r1, #153 ; 0x99
16a2c: 4bc6 ldr r3, [pc, #792] ; (16d48 <lv_theme_material_init+0x43c>)
16a2e: 4798 blx r3
style_init_reset(&styles->chart_series);
16a30: 4cc2 ldr r4, [pc, #776] ; (16d3c <lv_theme_material_init+0x430>)
16a32: 6820 ldr r0, [r4, #0]
16a34: 3048 adds r0, #72 ; 0x48
16a36: 4bc2 ldr r3, [pc, #776] ; (16d40 <lv_theme_material_init+0x434>)
16a38: 4798 blx r3
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
16a3a: 6824 ldr r4, [r4, #0]
16a3c: 3448 adds r4, #72 ; 0x48
16a3e: 2000 movs r0, #0
16a40: 4bc2 ldr r3, [pc, #776] ; (16d4c <lv_theme_material_init+0x440>)
16a42: 4798 blx r3
16a44: 0043 lsls r3, r0, #1
16a46: 1818 adds r0, r3, r0
16a48: 3050 adds r0, #80 ; 0x50
16a4a: 2340 movs r3, #64 ; 0x40
16a4c: 33ff adds r3, #255 ; 0xff
16a4e: 2201 movs r2, #1
16a50: 4298 cmp r0, r3
16a52: d901 bls.n 16a58 <lv_theme_material_init+0x14c>
16a54: f001 fb3e bl 180d4 <lv_theme_material_init+0x17c8>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
16a58: 2190 movs r1, #144 ; 0x90
16a5a: 0020 movs r0, r4
16a5c: 4bbc ldr r3, [pc, #752] ; (16d50 <lv_theme_material_init+0x444>)
16a5e: 4798 blx r3
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
16a60: 4bb6 ldr r3, [pc, #728] ; (16d3c <lv_theme_material_init+0x430>)
16a62: 681c ldr r4, [r3, #0]
16a64: 3448 adds r4, #72 ; 0x48
16a66: 2000 movs r0, #0
16a68: 4bb8 ldr r3, [pc, #736] ; (16d4c <lv_theme_material_init+0x440>)
16a6a: 4798 blx r3
16a6c: 3014 adds r0, #20
16a6e: 0080 lsls r0, r0, #2
16a70: 2340 movs r3, #64 ; 0x40
16a72: 33ff adds r3, #255 ; 0xff
16a74: 2201 movs r2, #1
16a76: 4298 cmp r0, r3
16a78: d901 bls.n 16a7e <lv_theme_material_init+0x172>
16a7a: f001 fb38 bl 180ee <lv_theme_material_init+0x17e2>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
16a7e: 2103 movs r1, #3
16a80: 0020 movs r0, r4
16a82: 4bb3 ldr r3, [pc, #716] ; (16d50 <lv_theme_material_init+0x444>)
16a84: 4798 blx r3
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
16a86: 4bad ldr r3, [pc, #692] ; (16d3c <lv_theme_material_init+0x430>)
16a88: 681c ldr r4, [r3, #0]
16a8a: 3448 adds r4, #72 ; 0x48
16a8c: 2000 movs r0, #0
16a8e: 4baf ldr r3, [pc, #700] ; (16d4c <lv_theme_material_init+0x440>)
16a90: 4798 blx r3
16a92: 3028 adds r0, #40 ; 0x28
16a94: 0040 lsls r0, r0, #1
16a96: 2340 movs r3, #64 ; 0x40
16a98: 33ff adds r3, #255 ; 0xff
16a9a: 2201 movs r2, #1
16a9c: 4298 cmp r0, r3
16a9e: d901 bls.n 16aa4 <lv_theme_material_init+0x198>
16aa0: f001 fb30 bl 18104 <lv_theme_material_init+0x17f8>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
16aa4: 2114 movs r1, #20
16aa6: 0020 movs r0, r4
16aa8: 4ba9 ldr r3, [pc, #676] ; (16d50 <lv_theme_material_init+0x444>)
16aaa: 4798 blx r3
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
16aac: 4ba3 ldr r3, [pc, #652] ; (16d3c <lv_theme_material_init+0x430>)
16aae: 681c ldr r4, [r3, #0]
16ab0: 3448 adds r4, #72 ; 0x48
16ab2: 2000 movs r0, #0
16ab4: 4ba5 ldr r3, [pc, #660] ; (16d4c <lv_theme_material_init+0x440>)
16ab6: 4798 blx r3
16ab8: 3050 adds r0, #80 ; 0x50
16aba: 2340 movs r3, #64 ; 0x40
16abc: 33ff adds r3, #255 ; 0xff
16abe: 2201 movs r2, #1
16ac0: 4298 cmp r0, r3
16ac2: d901 bls.n 16ac8 <lv_theme_material_init+0x1bc>
16ac4: f001 fb29 bl 1811a <lv_theme_material_init+0x180e>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16ac8: 2101 movs r1, #1
16aca: 0020 movs r0, r4
16acc: 4ba0 ldr r3, [pc, #640] ; (16d50 <lv_theme_material_init+0x444>)
16ace: 4798 blx r3
style_init_reset(&styles->calendar_header);
16ad0: 4c9a ldr r4, [pc, #616] ; (16d3c <lv_theme_material_init+0x430>)
16ad2: 6820 ldr r0, [r4, #0]
16ad4: 3030 adds r0, #48 ; 0x30
16ad6: 4b9a ldr r3, [pc, #616] ; (16d40 <lv_theme_material_init+0x434>)
16ad8: 4798 blx r3
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
16ada: 6824 ldr r4, [r4, #0]
16adc: 3430 adds r4, #48 ; 0x30
16ade: 2000 movs r0, #0
16ae0: 4b9c ldr r3, [pc, #624] ; (16d54 <lv_theme_material_init+0x448>)
16ae2: 4798 blx r3
16ae4: 2801 cmp r0, #1
16ae6: d801 bhi.n 16aec <lv_theme_material_init+0x1e0>
16ae8: f001 fb21 bl 1812e <lv_theme_material_init+0x1822>
16aec: 2000 movs r0, #0
16aee: 4b97 ldr r3, [pc, #604] ; (16d4c <lv_theme_material_init+0x440>)
16af0: 4798 blx r3
16af2: 0103 lsls r3, r0, #4
16af4: 1a1b subs r3, r3, r0
16af6: 005b lsls r3, r3, #1
16af8: 3350 adds r3, #80 ; 0x50
16afa: 2140 movs r1, #64 ; 0x40
16afc: 31ff adds r1, #255 ; 0xff
16afe: 2201 movs r2, #1
16b00: 428b cmp r3, r1
16b02: d901 bls.n 16b08 <lv_theme_material_init+0x1fc>
16b04: f001 fb2c bl 18160 <lv_theme_material_init+0x1854>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
16b08: 2110 movs r1, #16
16b0a: 0020 movs r0, r4
16b0c: 4b90 ldr r3, [pc, #576] ; (16d50 <lv_theme_material_init+0x444>)
16b0e: 4798 blx r3
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
16b10: 4b8a ldr r3, [pc, #552] ; (16d3c <lv_theme_material_init+0x430>)
16b12: 681c ldr r4, [r3, #0]
16b14: 3430 adds r4, #48 ; 0x30
16b16: 2000 movs r0, #0
16b18: 4b8e ldr r3, [pc, #568] ; (16d54 <lv_theme_material_init+0x448>)
16b1a: 4798 blx r3
16b1c: 2801 cmp r0, #1
16b1e: d801 bhi.n 16b24 <lv_theme_material_init+0x218>
16b20: f001 fb2b bl 1817a <lv_theme_material_init+0x186e>
16b24: 2000 movs r0, #0
16b26: 4b89 ldr r3, [pc, #548] ; (16d4c <lv_theme_material_init+0x440>)
16b28: 4798 blx r3
16b2a: 0103 lsls r3, r0, #4
16b2c: 1a1b subs r3, r3, r0
16b2e: 005b lsls r3, r3, #1
16b30: 3350 adds r3, #80 ; 0x50
16b32: 2140 movs r1, #64 ; 0x40
16b34: 31ff adds r1, #255 ; 0xff
16b36: 2201 movs r2, #1
16b38: 428b cmp r3, r1
16b3a: d901 bls.n 16b40 <lv_theme_material_init+0x234>
16b3c: f001 fb36 bl 181ac <lv_theme_material_init+0x18a0>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
16b40: 2112 movs r1, #18
16b42: 0020 movs r0, r4
16b44: 4b82 ldr r3, [pc, #520] ; (16d50 <lv_theme_material_init+0x444>)
16b46: 4798 blx r3
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
16b48: 4b7c ldr r3, [pc, #496] ; (16d3c <lv_theme_material_init+0x430>)
16b4a: 681c ldr r4, [r3, #0]
16b4c: 3430 adds r4, #48 ; 0x30
16b4e: 2000 movs r0, #0
16b50: 4b80 ldr r3, [pc, #512] ; (16d54 <lv_theme_material_init+0x448>)
16b52: 4798 blx r3
16b54: 2801 cmp r0, #1
16b56: d801 bhi.n 16b5c <lv_theme_material_init+0x250>
16b58: f001 fb35 bl 181c6 <lv_theme_material_init+0x18ba>
16b5c: 2000 movs r0, #0
16b5e: 4b7b ldr r3, [pc, #492] ; (16d4c <lv_theme_material_init+0x440>)
16b60: 4798 blx r3
16b62: 0103 lsls r3, r0, #4
16b64: 1a1b subs r3, r3, r0
16b66: 005b lsls r3, r3, #1
16b68: 3350 adds r3, #80 ; 0x50
16b6a: 2140 movs r1, #64 ; 0x40
16b6c: 31ff adds r1, #255 ; 0xff
16b6e: 2201 movs r2, #1
16b70: 428b cmp r3, r1
16b72: d901 bls.n 16b78 <lv_theme_material_init+0x26c>
16b74: f001 fb40 bl 181f8 <lv_theme_material_init+0x18ec>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
16b78: 2113 movs r1, #19
16b7a: 0020 movs r0, r4
16b7c: 4b74 ldr r3, [pc, #464] ; (16d50 <lv_theme_material_init+0x444>)
16b7e: 4798 blx r3
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
16b80: 4b6e ldr r3, [pc, #440] ; (16d3c <lv_theme_material_init+0x430>)
16b82: 681c ldr r4, [r3, #0]
16b84: 3430 adds r4, #48 ; 0x30
16b86: 2000 movs r0, #0
16b88: 4b72 ldr r3, [pc, #456] ; (16d54 <lv_theme_material_init+0x448>)
16b8a: 4798 blx r3
16b8c: 2801 cmp r0, #1
16b8e: d801 bhi.n 16b94 <lv_theme_material_init+0x288>
16b90: f001 fb3f bl 18212 <lv_theme_material_init+0x1906>
16b94: 2000 movs r0, #0
16b96: 4b6d ldr r3, [pc, #436] ; (16d4c <lv_theme_material_init+0x440>)
16b98: 4798 blx r3
16b9a: 0103 lsls r3, r0, #4
16b9c: 1a1b subs r3, r3, r0
16b9e: 005b lsls r3, r3, #1
16ba0: 3350 adds r3, #80 ; 0x50
16ba2: 2140 movs r1, #64 ; 0x40
16ba4: 31ff adds r1, #255 ; 0xff
16ba6: 2201 movs r2, #1
16ba8: 428b cmp r3, r1
16baa: d901 bls.n 16bb0 <lv_theme_material_init+0x2a4>
16bac: f001 fb64 bl 18278 <lv_theme_material_init+0x196c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
16bb0: 2111 movs r1, #17
16bb2: 0020 movs r0, r4
16bb4: 4b66 ldr r3, [pc, #408] ; (16d50 <lv_theme_material_init+0x444>)
16bb6: 4798 blx r3
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
16bb8: 4b60 ldr r3, [pc, #384] ; (16d3c <lv_theme_material_init+0x430>)
16bba: 6818 ldr r0, [r3, #0]
16bbc: 3030 adds r0, #48 ; 0x30
16bbe: 4b56 ldr r3, [pc, #344] ; (16d18 <lv_theme_material_init+0x40c>)
16bc0: 699b ldr r3, [r3, #24]
16bc2: 079b lsls r3, r3, #30
16bc4: d501 bpl.n 16bca <lv_theme_material_init+0x2be>
16bc6: f001 fb64 bl 18292 <lv_theme_material_init+0x1986>
16bca: 223f movs r2, #63 ; 0x3f
16bcc: 231f movs r3, #31
16bce: 0152 lsls r2, r2, #5
16bd0: 02d9 lsls r1, r3, #11
16bd2: 431a orrs r2, r3
16bd4: 430a orrs r2, r1
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
16bd6: 4960 ldr r1, [pc, #384] ; (16d58 <lv_theme_material_init+0x44c>)
16bd8: 4b5b ldr r3, [pc, #364] ; (16d48 <lv_theme_material_init+0x43c>)
16bda: 4798 blx r3
style_init_reset(&styles->calendar_daynames);
16bdc: 4c57 ldr r4, [pc, #348] ; (16d3c <lv_theme_material_init+0x430>)
16bde: 6820 ldr r0, [r4, #0]
16be0: 3034 adds r0, #52 ; 0x34
16be2: 4b57 ldr r3, [pc, #348] ; (16d40 <lv_theme_material_init+0x434>)
16be4: 4798 blx r3
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
16be6: 6820 ldr r0, [r4, #0]
16be8: 3034 adds r0, #52 ; 0x34
16bea: 4b4b ldr r3, [pc, #300] ; (16d18 <lv_theme_material_init+0x40c>)
16bec: 699b ldr r3, [r3, #24]
16bee: 079b lsls r3, r3, #30
16bf0: d501 bpl.n 16bf6 <lv_theme_material_init+0x2ea>
16bf2: f001 fb52 bl 1829a <lv_theme_material_init+0x198e>
16bf6: 231d movs r3, #29
16bf8: 213b movs r1, #59 ; 0x3b
16bfa: 221d movs r2, #29
16bfc: 0149 lsls r1, r1, #5
16bfe: 02db lsls r3, r3, #11
16c00: 430a orrs r2, r1
16c02: 431a orrs r2, r3
16c04: 494f ldr r1, [pc, #316] ; (16d44 <lv_theme_material_init+0x438>)
16c06: 4b50 ldr r3, [pc, #320] ; (16d48 <lv_theme_material_init+0x43c>)
16c08: 4798 blx r3
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
16c0a: 4b4c ldr r3, [pc, #304] ; (16d3c <lv_theme_material_init+0x430>)
16c0c: 681c ldr r4, [r3, #0]
16c0e: 3434 adds r4, #52 ; 0x34
16c10: 2000 movs r0, #0
16c12: 4b50 ldr r3, [pc, #320] ; (16d54 <lv_theme_material_init+0x448>)
16c14: 4798 blx r3
16c16: 2801 cmp r0, #1
16c18: d801 bhi.n 16c1e <lv_theme_material_init+0x312>
16c1a: f001 fb43 bl 182a4 <lv_theme_material_init+0x1998>
16c1e: 2000 movs r0, #0
16c20: 4b4a ldr r3, [pc, #296] ; (16d4c <lv_theme_material_init+0x440>)
16c22: 4798 blx r3
16c24: 0103 lsls r3, r0, #4
16c26: 1a1b subs r3, r3, r0
16c28: 005b lsls r3, r3, #1
16c2a: 3350 adds r3, #80 ; 0x50
16c2c: 2140 movs r1, #64 ; 0x40
16c2e: 31ff adds r1, #255 ; 0xff
16c30: 2201 movs r2, #1
16c32: 428b cmp r3, r1
16c34: d901 bls.n 16c3a <lv_theme_material_init+0x32e>
16c36: f001 fb4e bl 182d6 <lv_theme_material_init+0x19ca>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
16c3a: 2112 movs r1, #18
16c3c: 0020 movs r0, r4
16c3e: 4b44 ldr r3, [pc, #272] ; (16d50 <lv_theme_material_init+0x444>)
16c40: 4798 blx r3
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
16c42: 4b3e ldr r3, [pc, #248] ; (16d3c <lv_theme_material_init+0x430>)
16c44: 681c ldr r4, [r3, #0]
16c46: 3434 adds r4, #52 ; 0x34
16c48: 2000 movs r0, #0
16c4a: 4b42 ldr r3, [pc, #264] ; (16d54 <lv_theme_material_init+0x448>)
16c4c: 4798 blx r3
16c4e: 2801 cmp r0, #1
16c50: d801 bhi.n 16c56 <lv_theme_material_init+0x34a>
16c52: f001 fb4d bl 182f0 <lv_theme_material_init+0x19e4>
16c56: 2000 movs r0, #0
16c58: 4b3c ldr r3, [pc, #240] ; (16d4c <lv_theme_material_init+0x440>)
16c5a: 4798 blx r3
16c5c: 0103 lsls r3, r0, #4
16c5e: 1a1b subs r3, r3, r0
16c60: 005b lsls r3, r3, #1
16c62: 3350 adds r3, #80 ; 0x50
16c64: 2140 movs r1, #64 ; 0x40
16c66: 31ff adds r1, #255 ; 0xff
16c68: 2201 movs r2, #1
16c6a: 428b cmp r3, r1
16c6c: d901 bls.n 16c72 <lv_theme_material_init+0x366>
16c6e: f001 fb58 bl 18322 <lv_theme_material_init+0x1a16>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
16c72: 2113 movs r1, #19
16c74: 0020 movs r0, r4
16c76: 4b36 ldr r3, [pc, #216] ; (16d50 <lv_theme_material_init+0x444>)
16c78: 4798 blx r3
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
16c7a: 4b30 ldr r3, [pc, #192] ; (16d3c <lv_theme_material_init+0x430>)
16c7c: 681c ldr r4, [r3, #0]
16c7e: 3434 adds r4, #52 ; 0x34
16c80: 2000 movs r0, #0
16c82: 4b34 ldr r3, [pc, #208] ; (16d54 <lv_theme_material_init+0x448>)
16c84: 4798 blx r3
16c86: 2801 cmp r0, #1
16c88: d801 bhi.n 16c8e <lv_theme_material_init+0x382>
16c8a: f001 fb57 bl 1833c <lv_theme_material_init+0x1a30>
16c8e: 2000 movs r0, #0
16c90: 4b2e ldr r3, [pc, #184] ; (16d4c <lv_theme_material_init+0x440>)
16c92: 4798 blx r3
16c94: 0103 lsls r3, r0, #4
16c96: 1a1b subs r3, r3, r0
16c98: 005b lsls r3, r3, #1
16c9a: 3350 adds r3, #80 ; 0x50
16c9c: 2140 movs r1, #64 ; 0x40
16c9e: 31ff adds r1, #255 ; 0xff
16ca0: 2201 movs r2, #1
16ca2: 428b cmp r3, r1
16ca4: d901 bls.n 16caa <lv_theme_material_init+0x39e>
16ca6: f001 fb62 bl 1836e <lv_theme_material_init+0x1a62>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
16caa: 2111 movs r1, #17
16cac: 0020 movs r0, r4
16cae: 4b28 ldr r3, [pc, #160] ; (16d50 <lv_theme_material_init+0x444>)
16cb0: 4798 blx r3
style_init_reset(&styles->calendar_date_nums);
16cb2: 4c22 ldr r4, [pc, #136] ; (16d3c <lv_theme_material_init+0x430>)
16cb4: 6820 ldr r0, [r4, #0]
16cb6: 302c adds r0, #44 ; 0x2c
16cb8: 4b21 ldr r3, [pc, #132] ; (16d40 <lv_theme_material_init+0x434>)
16cba: 4798 blx r3
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
16cbc: 6824 ldr r4, [r4, #0]
16cbe: 342c adds r4, #44 ; 0x2c
16cc0: 2000 movs r0, #0
16cc2: 4b22 ldr r3, [pc, #136] ; (16d4c <lv_theme_material_init+0x440>)
16cc4: 4798 blx r3
16cc6: 3014 adds r0, #20
16cc8: 0080 lsls r0, r0, #2
16cca: 2340 movs r3, #64 ; 0x40
16ccc: 33ff adds r3, #255 ; 0xff
16cce: 2201 movs r2, #1
16cd0: 4298 cmp r0, r3
16cd2: d901 bls.n 16cd8 <lv_theme_material_init+0x3cc>
16cd4: f001 fb58 bl 18388 <lv_theme_material_init+0x1a7c>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16cd8: 2101 movs r1, #1
16cda: 0020 movs r0, r4
16cdc: 4b1c ldr r3, [pc, #112] ; (16d50 <lv_theme_material_init+0x444>)
16cde: 4798 blx r3
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
16ce0: 4b16 ldr r3, [pc, #88] ; (16d3c <lv_theme_material_init+0x430>)
16ce2: 6818 ldr r0, [r3, #0]
16ce4: 302c adds r0, #44 ; 0x2c
16ce6: 4b0c ldr r3, [pc, #48] ; (16d18 <lv_theme_material_init+0x40c>)
16ce8: 699b ldr r3, [r3, #24]
16cea: 079b lsls r3, r3, #30
16cec: d501 bpl.n 16cf2 <lv_theme_material_init+0x3e6>
16cee: f001 fb56 bl 1839e <lv_theme_material_init+0x1a92>
16cf2: 231f movs r3, #31
16cf4: 213f movs r1, #63 ; 0x3f
16cf6: 221f movs r2, #31
16cf8: 0149 lsls r1, r1, #5
16cfa: 02db lsls r3, r3, #11
16cfc: 430a orrs r2, r1
16cfe: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
16d00: 4916 ldr r1, [pc, #88] ; (16d5c <lv_theme_material_init+0x450>)
16d02: 4b11 ldr r3, [pc, #68] ; (16d48 <lv_theme_material_init+0x43c>)
16d04: 4798 blx r3
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40);
16d06: 4b0d ldr r3, [pc, #52] ; (16d3c <lv_theme_material_init+0x430>)
16d08: 6818 ldr r0, [r3, #0]
16d0a: 302c adds r0, #44 ; 0x2c
16d0c: 4b02 ldr r3, [pc, #8] ; (16d18 <lv_theme_material_init+0x40c>)
16d0e: 699b ldr r3, [r3, #24]
16d10: 2233 movs r2, #51 ; 0x33
16d12: e025 b.n 16d60 <lv_theme_material_init+0x454>
16d14: 20004c48 .word 0x20004c48
16d18: 20004c50 .word 0x20004c50
16d1c: 00014935 .word 0x00014935
16d20: 00015b01 .word 0x00015b01
16d24: 000167f9 .word 0x000167f9
16d28: 00015c55 .word 0x00015c55
16d2c: 00015ee9 .word 0x00015ee9
16d30: 00016029 .word 0x00016029
16d34: 0001624d .word 0x0001624d
16d38: 000166f5 .word 0x000166f5
16d3c: 20004c4c .word 0x20004c4c
16d40: 00014911 .word 0x00014911
16d44: 00008089 .word 0x00008089
16d48: 00006135 .word 0x00006135
16d4c: 00010dd1 .word 0x00010dd1
16d50: 00005fad .word 0x00005fad
16d54: 00010ded .word 0x00010ded
16d58: 00009089 .word 0x00009089
16d5c: 00008189 .word 0x00008189
16d60: 079b lsls r3, r3, #30
16d62: d400 bmi.n 16d66 <lv_theme_material_init+0x45a>
16d64: 3233 adds r2, #51 ; 0x33
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
16d66: 2196 movs r1, #150 ; 0x96
16d68: 0049 lsls r1, r1, #1
16d6a: 4dfa ldr r5, [pc, #1000] ; (17154 <lv_theme_material_init+0x848>)
16d6c: 47a8 blx r5
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20);
16d6e: 4cfa ldr r4, [pc, #1000] ; (17158 <lv_theme_material_init+0x84c>)
16d70: 6820 ldr r0, [r4, #0]
16d72: 302c adds r0, #44 ; 0x2c
16d74: 2233 movs r2, #51 ; 0x33
16d76: 49f9 ldr r1, [pc, #996] ; (1715c <lv_theme_material_init+0x850>)
16d78: 47a8 blx r5
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER);
16d7a: 6820 ldr r0, [r4, #0]
16d7c: 302c adds r0, #44 ; 0x2c
16d7e: 22ff movs r2, #255 ; 0xff
16d80: 218b movs r1, #139 ; 0x8b
16d82: 0089 lsls r1, r1, #2
16d84: 47a8 blx r5
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE);
16d86: 6820 ldr r0, [r4, #0]
16d88: 302c adds r0, #44 ; 0x2c
16d8a: 4bf5 ldr r3, [pc, #980] ; (17160 <lv_theme_material_init+0x854>)
16d8c: 881a ldrh r2, [r3, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
16d8e: 49f5 ldr r1, [pc, #980] ; (17164 <lv_theme_material_init+0x858>)
16d90: 4ef5 ldr r6, [pc, #980] ; (17168 <lv_theme_material_init+0x85c>)
16d92: 47b0 blx r6
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary);
16d94: 6820 ldr r0, [r4, #0]
16d96: 302c adds r0, #44 ; 0x2c
16d98: 4df4 ldr r5, [pc, #976] ; (1716c <lv_theme_material_init+0x860>)
16d9a: 88aa ldrh r2, [r5, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
16d9c: 49f4 ldr r1, [pc, #976] ; (17170 <lv_theme_material_init+0x864>)
16d9e: 47b0 blx r6
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
16da0: 6820 ldr r0, [r4, #0]
16da2: 302c adds r0, #44 ; 0x2c
16da4: 69ab ldr r3, [r5, #24]
16da6: 079b lsls r3, r3, #30
16da8: d501 bpl.n 16dae <lv_theme_material_init+0x4a2>
16daa: f001 fafd bl 183a8 <lv_theme_material_init+0x1a9c>
16dae: 223f movs r2, #63 ; 0x3f
16db0: 231f movs r3, #31
16db2: 0152 lsls r2, r2, #5
16db4: 02d9 lsls r1, r3, #11
16db6: 431a orrs r2, r3
16db8: 430a orrs r2, r1
16dba: 2129 movs r1, #41 ; 0x29
16dbc: 4eea ldr r6, [pc, #936] ; (17168 <lv_theme_material_init+0x85c>)
16dbe: 47b0 blx r6
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
16dc0: 4ce5 ldr r4, [pc, #916] ; (17158 <lv_theme_material_init+0x84c>)
16dc2: 6820 ldr r0, [r4, #0]
16dc4: 302c adds r0, #44 ; 0x2c
16dc6: 4fe9 ldr r7, [pc, #932] ; (1716c <lv_theme_material_init+0x860>)
16dc8: 88ba ldrh r2, [r7, #4]
16dca: 212a movs r1, #42 ; 0x2a
16dcc: 31ff adds r1, #255 ; 0xff
16dce: 47b0 blx r6
lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2);
16dd0: 6820 ldr r0, [r4, #0]
16dd2: 302c adds r0, #44 ; 0x2c
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
16dd4: 2202 movs r2, #2
16dd6: 2198 movs r1, #152 ; 0x98
16dd8: 0049 lsls r1, r1, #1
16dda: 4de6 ldr r5, [pc, #920] ; (17174 <lv_theme_material_init+0x868>)
16ddc: 47a8 blx r5
lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT);
16dde: 6820 ldr r0, [r4, #0]
16de0: 302c adds r0, #44 ; 0x2c
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
16de2: 2204 movs r2, #4
16de4: 2132 movs r1, #50 ; 0x32
16de6: 31ff adds r1, #255 ; 0xff
16de8: 47a8 blx r5
lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
16dea: 6820 ldr r0, [r4, #0]
16dec: 302c adds r0, #44 ; 0x2c
16dee: 88ba ldrh r2, [r7, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
16df0: 213a movs r1, #58 ; 0x3a
16df2: 31ff adds r1, #255 ; 0xff
16df4: 47b0 blx r6
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
16df6: 6824 ldr r4, [r4, #0]
16df8: 342c adds r4, #44 ; 0x2c
16dfa: 2000 movs r0, #0
16dfc: 4bde ldr r3, [pc, #888] ; (17178 <lv_theme_material_init+0x86c>)
16dfe: 4798 blx r3
16e00: 0043 lsls r3, r0, #1
16e02: 1818 adds r0, r3, r0
16e04: 3050 adds r0, #80 ; 0x50
16e06: 2340 movs r3, #64 ; 0x40
16e08: 33ff adds r3, #255 ; 0xff
16e0a: 2201 movs r2, #1
16e0c: 4298 cmp r0, r3
16e0e: d901 bls.n 16e14 <lv_theme_material_init+0x508>
16e10: f001 face bl 183b0 <lv_theme_material_init+0x1aa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
16e14: 2114 movs r1, #20
16e16: 0020 movs r0, r4
16e18: 4bd6 ldr r3, [pc, #856] ; (17174 <lv_theme_material_init+0x868>)
16e1a: 4798 blx r3
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
16e1c: 4bce ldr r3, [pc, #824] ; (17158 <lv_theme_material_init+0x84c>)
16e1e: 681c ldr r4, [r3, #0]
16e20: 342c adds r4, #44 ; 0x2c
16e22: 2000 movs r0, #0
16e24: 4bd5 ldr r3, [pc, #852] ; (1717c <lv_theme_material_init+0x870>)
16e26: 4798 blx r3
16e28: 2801 cmp r0, #1
16e2a: d801 bhi.n 16e30 <lv_theme_material_init+0x524>
16e2c: f001 facd bl 183ca <lv_theme_material_init+0x1abe>
16e30: 2000 movs r0, #0
16e32: 4bd1 ldr r3, [pc, #836] ; (17178 <lv_theme_material_init+0x86c>)
16e34: 4798 blx r3
16e36: 0103 lsls r3, r0, #4
16e38: 1a1b subs r3, r3, r0
16e3a: 005b lsls r3, r3, #1
16e3c: 3350 adds r3, #80 ; 0x50
16e3e: 2140 movs r1, #64 ; 0x40
16e40: 31ff adds r1, #255 ; 0xff
16e42: 2201 movs r2, #1
16e44: 428b cmp r3, r1
16e46: d901 bls.n 16e4c <lv_theme_material_init+0x540>
16e48: f001 fad8 bl 183fc <lv_theme_material_init+0x1af0>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
16e4c: 2112 movs r1, #18
16e4e: 0020 movs r0, r4
16e50: 4bc8 ldr r3, [pc, #800] ; (17174 <lv_theme_material_init+0x868>)
16e52: 4798 blx r3
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
16e54: 4bc0 ldr r3, [pc, #768] ; (17158 <lv_theme_material_init+0x84c>)
16e56: 681c ldr r4, [r3, #0]
16e58: 342c adds r4, #44 ; 0x2c
16e5a: 2000 movs r0, #0
16e5c: 4bc7 ldr r3, [pc, #796] ; (1717c <lv_theme_material_init+0x870>)
16e5e: 4798 blx r3
16e60: 2801 cmp r0, #1
16e62: d801 bhi.n 16e68 <lv_theme_material_init+0x55c>
16e64: f001 fad7 bl 18416 <lv_theme_material_init+0x1b0a>
16e68: 2000 movs r0, #0
16e6a: 4bc3 ldr r3, [pc, #780] ; (17178 <lv_theme_material_init+0x86c>)
16e6c: 4798 blx r3
16e6e: 0103 lsls r3, r0, #4
16e70: 1a1b subs r3, r3, r0
16e72: 005b lsls r3, r3, #1
16e74: 3350 adds r3, #80 ; 0x50
16e76: 2140 movs r1, #64 ; 0x40
16e78: 31ff adds r1, #255 ; 0xff
16e7a: 2201 movs r2, #1
16e7c: 428b cmp r3, r1
16e7e: d901 bls.n 16e84 <lv_theme_material_init+0x578>
16e80: f001 fae2 bl 18448 <lv_theme_material_init+0x1b3c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
16e84: 2113 movs r1, #19
16e86: 0020 movs r0, r4
16e88: 4bba ldr r3, [pc, #744] ; (17174 <lv_theme_material_init+0x868>)
16e8a: 4798 blx r3
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
16e8c: 4bb2 ldr r3, [pc, #712] ; (17158 <lv_theme_material_init+0x84c>)
16e8e: 681c ldr r4, [r3, #0]
16e90: 342c adds r4, #44 ; 0x2c
16e92: 2000 movs r0, #0
16e94: 4bb9 ldr r3, [pc, #740] ; (1717c <lv_theme_material_init+0x870>)
16e96: 4798 blx r3
16e98: 2801 cmp r0, #1
16e9a: d801 bhi.n 16ea0 <lv_theme_material_init+0x594>
16e9c: f001 fae1 bl 18462 <lv_theme_material_init+0x1b56>
16ea0: 2000 movs r0, #0
16ea2: 4bb5 ldr r3, [pc, #724] ; (17178 <lv_theme_material_init+0x86c>)
16ea4: 4798 blx r3
16ea6: 0103 lsls r3, r0, #4
16ea8: 1a1b subs r3, r3, r0
16eaa: 005b lsls r3, r3, #1
16eac: 3350 adds r3, #80 ; 0x50
16eae: 2140 movs r1, #64 ; 0x40
16eb0: 31ff adds r1, #255 ; 0xff
16eb2: 2201 movs r2, #1
16eb4: 428b cmp r3, r1
16eb6: d901 bls.n 16ebc <lv_theme_material_init+0x5b0>
16eb8: f001 faec bl 18494 <lv_theme_material_init+0x1b88>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
16ebc: 2111 movs r1, #17
16ebe: 0020 movs r0, r4
16ec0: 4bac ldr r3, [pc, #688] ; (17174 <lv_theme_material_init+0x868>)
16ec2: 4798 blx r3
style_init_reset(&styles->cpicker_bg);
16ec4: 4ca4 ldr r4, [pc, #656] ; (17158 <lv_theme_material_init+0x84c>)
16ec6: 6820 ldr r0, [r4, #0]
16ec8: 3038 adds r0, #56 ; 0x38
16eca: 4bad ldr r3, [pc, #692] ; (17180 <lv_theme_material_init+0x874>)
16ecc: 4798 blx r3
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
16ece: 6824 ldr r4, [r4, #0]
16ed0: 3438 adds r4, #56 ; 0x38
16ed2: 2000 movs r0, #0
16ed4: 4ba8 ldr r3, [pc, #672] ; (17178 <lv_theme_material_init+0x86c>)
16ed6: 4798 blx r3
16ed8: 0103 lsls r3, r0, #4
16eda: 1a1b subs r3, r3, r0
16edc: 005b lsls r3, r3, #1
16ede: 3350 adds r3, #80 ; 0x50
16ee0: 2140 movs r1, #64 ; 0x40
16ee2: 31ff adds r1, #255 ; 0xff
16ee4: 2201 movs r2, #1
16ee6: 428b cmp r3, r1
16ee8: d901 bls.n 16eee <lv_theme_material_init+0x5e2>
16eea: f001 fae0 bl 184ae <lv_theme_material_init+0x1ba2>
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
16eee: 21c0 movs r1, #192 ; 0xc0
16ef0: 0020 movs r0, r4
16ef2: 4ba0 ldr r3, [pc, #640] ; (17174 <lv_theme_material_init+0x868>)
16ef4: 4798 blx r3
lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
16ef6: 4c98 ldr r4, [pc, #608] ; (17158 <lv_theme_material_init+0x84c>)
16ef8: 6820 ldr r0, [r4, #0]
16efa: 3038 adds r0, #56 ; 0x38
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
16efc: 22ff movs r2, #255 ; 0xff
16efe: 212c movs r1, #44 ; 0x2c
16f00: 4b94 ldr r3, [pc, #592] ; (17154 <lv_theme_material_init+0x848>)
16f02: 4798 blx r3
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
16f04: 6820 ldr r0, [r4, #0]
16f06: 3038 adds r0, #56 ; 0x38
16f08: 4b98 ldr r3, [pc, #608] ; (1716c <lv_theme_material_init+0x860>)
16f0a: 699b ldr r3, [r3, #24]
16f0c: 079b lsls r3, r3, #30
16f0e: d501 bpl.n 16f14 <lv_theme_material_init+0x608>
16f10: f001 fada bl 184c8 <lv_theme_material_init+0x1bbc>
16f14: 2308 movs r3, #8
16f16: 2112 movs r1, #18
16f18: 220b movs r2, #11
16f1a: 0149 lsls r1, r1, #5
16f1c: 02db lsls r3, r3, #11
16f1e: 430a orrs r2, r1
16f20: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
16f22: 2129 movs r1, #41 ; 0x29
16f24: 4b90 ldr r3, [pc, #576] ; (17168 <lv_theme_material_init+0x85c>)
16f26: 4798 blx r3
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
16f28: 4b8b ldr r3, [pc, #556] ; (17158 <lv_theme_material_init+0x84c>)
16f2a: 681c ldr r4, [r3, #0]
16f2c: 3438 adds r4, #56 ; 0x38
16f2e: 2000 movs r0, #0
16f30: 4b91 ldr r3, [pc, #580] ; (17178 <lv_theme_material_init+0x86c>)
16f32: 4798 blx r3
16f34: 0083 lsls r3, r0, #2
16f36: 181b adds r3, r3, r0
16f38: 009b lsls r3, r3, #2
16f3a: 3350 adds r3, #80 ; 0x50
16f3c: 2140 movs r1, #64 ; 0x40
16f3e: 31ff adds r1, #255 ; 0xff
16f40: 2201 movs r2, #1
16f42: 428b cmp r3, r1
16f44: d901 bls.n 16f4a <lv_theme_material_init+0x63e>
16f46: f001 fac4 bl 184d2 <lv_theme_material_init+0x1bc6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
16f4a: 2114 movs r1, #20
16f4c: 0020 movs r0, r4
16f4e: 4e89 ldr r6, [pc, #548] ; (17174 <lv_theme_material_init+0x868>)
16f50: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
16f52: 4d8c ldr r5, [pc, #560] ; (17184 <lv_theme_material_init+0x878>)
lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
16f54: 4c80 ldr r4, [pc, #512] ; (17158 <lv_theme_material_init+0x84c>)
16f56: 6820 ldr r0, [r4, #0]
16f58: 3038 adds r0, #56 ; 0x38
16f5a: 002a movs r2, r5
16f5c: 2101 movs r1, #1
16f5e: 47b0 blx r6
style_init_reset(&styles->cpicker_indic);
16f60: 6820 ldr r0, [r4, #0]
16f62: 303c adds r0, #60 ; 0x3c
16f64: 4b86 ldr r3, [pc, #536] ; (17180 <lv_theme_material_init+0x874>)
16f66: 4798 blx r3
lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
16f68: 6820 ldr r0, [r4, #0]
16f6a: 303c adds r0, #60 ; 0x3c
16f6c: 002a movs r2, r5
16f6e: 2101 movs r1, #1
16f70: 47b0 blx r6
lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE);
16f72: 6820 ldr r0, [r4, #0]
16f74: 303c adds r0, #60 ; 0x3c
16f76: 4f7a ldr r7, [pc, #488] ; (17160 <lv_theme_material_init+0x854>)
16f78: 883a ldrh r2, [r7, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
16f7a: 2129 movs r1, #41 ; 0x29
16f7c: 4d7a ldr r5, [pc, #488] ; (17168 <lv_theme_material_init+0x85c>)
16f7e: 47a8 blx r5
lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
16f80: 6820 ldr r0, [r4, #0]
16f82: 303c adds r0, #60 ; 0x3c
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
16f84: 22ff movs r2, #255 ; 0xff
16f86: 212c movs r1, #44 ; 0x2c
16f88: 4b72 ldr r3, [pc, #456] ; (17154 <lv_theme_material_init+0x848>)
16f8a: 4798 blx r3
lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2);
16f8c: 6820 ldr r0, [r4, #0]
16f8e: 303c adds r0, #60 ; 0x3c
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
16f90: 2202 movs r2, #2
16f92: 2130 movs r1, #48 ; 0x30
16f94: 47b0 blx r6
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY);
16f96: 6820 ldr r0, [r4, #0]
16f98: 303c adds r0, #60 ; 0x3c
16f9a: 88ba ldrh r2, [r7, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
16f9c: 2139 movs r1, #57 ; 0x39
16f9e: 47a8 blx r5
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary);
16fa0: 6820 ldr r0, [r4, #0]
16fa2: 303c adds r0, #60 ; 0x3c
16fa4: 4e71 ldr r6, [pc, #452] ; (1716c <lv_theme_material_init+0x860>)
16fa6: 88b2 ldrh r2, [r6, #4]
16fa8: 4977 ldr r1, [pc, #476] ; (17188 <lv_theme_material_init+0x87c>)
16faa: 47a8 blx r5
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary);
16fac: 6820 ldr r0, [r4, #0]
16fae: 303c adds r0, #60 ; 0x3c
16fb0: 88f2 ldrh r2, [r6, #6]
16fb2: 4976 ldr r1, [pc, #472] ; (1718c <lv_theme_material_init+0x880>)
16fb4: 47a8 blx r5
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
16fb6: 6824 ldr r4, [r4, #0]
16fb8: 343c adds r4, #60 ; 0x3c
16fba: 2000 movs r0, #0
16fbc: 4b6e ldr r3, [pc, #440] ; (17178 <lv_theme_material_init+0x86c>)
16fbe: 4798 blx r3
16fc0: 0003 movs r3, r0
16fc2: 0040 lsls r0, r0, #1
16fc4: 18c0 adds r0, r0, r3
16fc6: 0080 lsls r0, r0, #2
16fc8: 18c0 adds r0, r0, r3
16fca: 3050 adds r0, #80 ; 0x50
16fcc: 2340 movs r3, #64 ; 0x40
16fce: 33ff adds r3, #255 ; 0xff
16fd0: 2201 movs r2, #1
16fd2: 4298 cmp r0, r3
16fd4: d901 bls.n 16fda <lv_theme_material_init+0x6ce>
16fd6: f001 fa8a bl 184ee <lv_theme_material_init+0x1be2>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
16fda: 2112 movs r1, #18
16fdc: 0020 movs r0, r4
16fde: 4b65 ldr r3, [pc, #404] ; (17174 <lv_theme_material_init+0x868>)
16fe0: 4798 blx r3
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
16fe2: 4b5d ldr r3, [pc, #372] ; (17158 <lv_theme_material_init+0x84c>)
16fe4: 681c ldr r4, [r3, #0]
16fe6: 343c adds r4, #60 ; 0x3c
16fe8: 2000 movs r0, #0
16fea: 4b63 ldr r3, [pc, #396] ; (17178 <lv_theme_material_init+0x86c>)
16fec: 4798 blx r3
16fee: 0003 movs r3, r0
16ff0: 0040 lsls r0, r0, #1
16ff2: 18c0 adds r0, r0, r3
16ff4: 0080 lsls r0, r0, #2
16ff6: 18c0 adds r0, r0, r3
16ff8: 3050 adds r0, #80 ; 0x50
16ffa: 2340 movs r3, #64 ; 0x40
16ffc: 33ff adds r3, #255 ; 0xff
16ffe: 2201 movs r2, #1
17000: 4298 cmp r0, r3
17002: d901 bls.n 17008 <lv_theme_material_init+0x6fc>
17004: f001 fa82 bl 1850c <lv_theme_material_init+0x1c00>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17008: 2113 movs r1, #19
1700a: 0020 movs r0, r4
1700c: 4b59 ldr r3, [pc, #356] ; (17174 <lv_theme_material_init+0x868>)
1700e: 4798 blx r3
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
17010: 4b51 ldr r3, [pc, #324] ; (17158 <lv_theme_material_init+0x84c>)
17012: 681c ldr r4, [r3, #0]
17014: 343c adds r4, #60 ; 0x3c
17016: 2000 movs r0, #0
17018: 4b57 ldr r3, [pc, #348] ; (17178 <lv_theme_material_init+0x86c>)
1701a: 4798 blx r3
1701c: 0003 movs r3, r0
1701e: 0040 lsls r0, r0, #1
17020: 18c0 adds r0, r0, r3
17022: 0080 lsls r0, r0, #2
17024: 18c0 adds r0, r0, r3
17026: 3050 adds r0, #80 ; 0x50
17028: 2340 movs r3, #64 ; 0x40
1702a: 33ff adds r3, #255 ; 0xff
1702c: 2201 movs r2, #1
1702e: 4298 cmp r0, r3
17030: d901 bls.n 17036 <lv_theme_material_init+0x72a>
17032: f001 fa7a bl 1852a <lv_theme_material_init+0x1c1e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
17036: 2110 movs r1, #16
17038: 0020 movs r0, r4
1703a: 4b4e ldr r3, [pc, #312] ; (17174 <lv_theme_material_init+0x868>)
1703c: 4798 blx r3
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
1703e: 4b46 ldr r3, [pc, #280] ; (17158 <lv_theme_material_init+0x84c>)
17040: 681c ldr r4, [r3, #0]
17042: 343c adds r4, #60 ; 0x3c
17044: 2000 movs r0, #0
17046: 4b4c ldr r3, [pc, #304] ; (17178 <lv_theme_material_init+0x86c>)
17048: 4798 blx r3
1704a: 0003 movs r3, r0
1704c: 0040 lsls r0, r0, #1
1704e: 18c0 adds r0, r0, r3
17050: 0080 lsls r0, r0, #2
17052: 18c0 adds r0, r0, r3
17054: 3050 adds r0, #80 ; 0x50
17056: 2340 movs r3, #64 ; 0x40
17058: 33ff adds r3, #255 ; 0xff
1705a: 2201 movs r2, #1
1705c: 4298 cmp r0, r3
1705e: d901 bls.n 17064 <lv_theme_material_init+0x758>
17060: f001 fa72 bl 18548 <lv_theme_material_init+0x1c3c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
17064: 2111 movs r1, #17
17066: 0020 movs r0, r4
17068: 4b42 ldr r3, [pc, #264] ; (17174 <lv_theme_material_init+0x868>)
1706a: 4798 blx r3
style_init_reset(&styles->cb_bg);
1706c: 4c3a ldr r4, [pc, #232] ; (17158 <lv_theme_material_init+0x84c>)
1706e: 6820 ldr r0, [r4, #0]
17070: 304c adds r0, #76 ; 0x4c
17072: 4b43 ldr r3, [pc, #268] ; (17180 <lv_theme_material_init+0x874>)
17074: 4798 blx r3
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
17076: 6824 ldr r4, [r4, #0]
17078: 344c adds r4, #76 ; 0x4c
1707a: 2000 movs r0, #0
1707c: 4b3e ldr r3, [pc, #248] ; (17178 <lv_theme_material_init+0x86c>)
1707e: 4798 blx r3
17080: 3014 adds r0, #20
17082: 0080 lsls r0, r0, #2
17084: 2340 movs r3, #64 ; 0x40
17086: 33ff adds r3, #255 ; 0xff
17088: 2201 movs r2, #1
1708a: 4298 cmp r0, r3
1708c: d901 bls.n 17092 <lv_theme_material_init+0x786>
1708e: f001 fa6a bl 18566 <lv_theme_material_init+0x1c5a>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
17092: 2101 movs r1, #1
17094: 0020 movs r0, r4
17096: 4b37 ldr r3, [pc, #220] ; (17174 <lv_theme_material_init+0x868>)
17098: 4798 blx r3
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
1709a: 4b2f ldr r3, [pc, #188] ; (17158 <lv_theme_material_init+0x84c>)
1709c: 681c ldr r4, [r3, #0]
1709e: 344c adds r4, #76 ; 0x4c
170a0: 2000 movs r0, #0
170a2: 4b35 ldr r3, [pc, #212] ; (17178 <lv_theme_material_init+0x86c>)
170a4: 4798 blx r3
170a6: 0083 lsls r3, r0, #2
170a8: 181b adds r3, r3, r0
170aa: 005b lsls r3, r3, #1
170ac: 3350 adds r3, #80 ; 0x50
170ae: 2140 movs r1, #64 ; 0x40
170b0: 31ff adds r1, #255 ; 0xff
170b2: 2201 movs r2, #1
170b4: 428b cmp r3, r1
170b6: d901 bls.n 170bc <lv_theme_material_init+0x7b0>
170b8: f001 fa60 bl 1857c <lv_theme_material_init+0x1c70>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
170bc: 2114 movs r1, #20
170be: 0020 movs r0, r4
170c0: 4b2c ldr r3, [pc, #176] ; (17174 <lv_theme_material_init+0x868>)
170c2: 4798 blx r3
lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary);
170c4: 4c24 ldr r4, [pc, #144] ; (17158 <lv_theme_material_init+0x84c>)
170c6: 6820 ldr r0, [r4, #0]
170c8: 304c adds r0, #76 ; 0x4c
170ca: 4b28 ldr r3, [pc, #160] ; (1716c <lv_theme_material_init+0x860>)
170cc: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
170ce: 2149 movs r1, #73 ; 0x49
170d0: 4b25 ldr r3, [pc, #148] ; (17168 <lv_theme_material_init+0x85c>)
170d2: 4798 blx r3
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
170d4: 6820 ldr r0, [r4, #0]
170d6: 304c adds r0, #76 ; 0x4c
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
170d8: 2200 movs r2, #0
170da: 214c movs r1, #76 ; 0x4c
170dc: 4d1d ldr r5, [pc, #116] ; (17154 <lv_theme_material_init+0x848>)
170de: 47a8 blx r5
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50);
170e0: 6820 ldr r0, [r4, #0]
170e2: 304c adds r0, #76 ; 0x4c
170e4: 227f movs r2, #127 ; 0x7f
170e6: 2193 movs r1, #147 ; 0x93
170e8: 0089 lsls r1, r1, #2
170ea: 47a8 blx r5
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
170ec: 6824 ldr r4, [r4, #0]
170ee: 344c adds r4, #76 ; 0x4c
170f0: 2000 movs r0, #0
170f2: 4b21 ldr r3, [pc, #132] ; (17178 <lv_theme_material_init+0x86c>)
170f4: 4798 blx r3
170f6: 0043 lsls r3, r0, #1
170f8: 1818 adds r0, r3, r0
170fa: 3050 adds r0, #80 ; 0x50
170fc: 2340 movs r3, #64 ; 0x40
170fe: 33ff adds r3, #255 ; 0xff
17100: 2201 movs r2, #1
17102: 4298 cmp r0, r3
17104: d901 bls.n 1710a <lv_theme_material_init+0x7fe>
17106: f001 fa47 bl 18598 <lv_theme_material_init+0x1c8c>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
1710a: 2140 movs r1, #64 ; 0x40
1710c: 0020 movs r0, r4
1710e: 4b19 ldr r3, [pc, #100] ; (17174 <lv_theme_material_init+0x868>)
17110: 4798 blx r3
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
17112: 4b11 ldr r3, [pc, #68] ; (17158 <lv_theme_material_init+0x84c>)
17114: 681c ldr r4, [r3, #0]
17116: 344c adds r4, #76 ; 0x4c
17118: 2000 movs r0, #0
1711a: 4b17 ldr r3, [pc, #92] ; (17178 <lv_theme_material_init+0x86c>)
1711c: 4798 blx r3
1711e: 0083 lsls r3, r0, #2
17120: 181b adds r3, r3, r0
17122: 005b lsls r3, r3, #1
17124: 3350 adds r3, #80 ; 0x50
17126: 2140 movs r1, #64 ; 0x40
17128: 31ff adds r1, #255 ; 0xff
1712a: 2201 movs r2, #1
1712c: 428b cmp r3, r1
1712e: d901 bls.n 17134 <lv_theme_material_init+0x828>
17130: f001 fa3f bl 185b2 <lv_theme_material_init+0x1ca6>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
17134: 2141 movs r1, #65 ; 0x41
17136: 0020 movs r0, r4
17138: 4d0e ldr r5, [pc, #56] ; (17174 <lv_theme_material_init+0x868>)
1713a: 47a8 blx r5
lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
1713c: 4c06 ldr r4, [pc, #24] ; (17158 <lv_theme_material_init+0x84c>)
1713e: 6820 ldr r0, [r4, #0]
17140: 304c adds r0, #76 ; 0x4c
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
17142: 2296 movs r2, #150 ; 0x96
17144: 21b0 movs r1, #176 ; 0xb0
17146: 47a8 blx r5
lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
17148: 6820 ldr r0, [r4, #0]
1714a: 304c adds r0, #76 ; 0x4c
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
1714c: 224c movs r2, #76 ; 0x4c
1714e: 21b7 movs r1, #183 ; 0xb7
17150: e01e b.n 17190 <lv_theme_material_init+0x884>
17152: 46c0 nop ; (mov r8, r8)
17154: 000062bd .word 0x000062bd
17158: 20004c4c .word 0x20004c4c
1715c: 0000102c .word 0x0000102c
17160: 0002ada0 .word 0x0002ada0
17164: 00008289 .word 0x00008289
17168: 00006135 .word 0x00006135
1716c: 20004c50 .word 0x20004c50
17170: 00000229 .word 0x00000229
17174: 00005fad .word 0x00005fad
17178: 00010dd1 .word 0x00010dd1
1717c: 00010ded .word 0x00010ded
17180: 00014911 .word 0x00014911
17184: 00007fff .word 0x00007fff
17188: 00000239 .word 0x00000239
1718c: 00000439 .word 0x00000439
17190: 47a8 blx r5
style_init_reset(&styles->cb_bullet);
17192: 6820 ldr r0, [r4, #0]
17194: 3050 adds r0, #80 ; 0x50
17196: 4bfd ldr r3, [pc, #1012] ; (1758c <lv_theme_material_init+0xc80>)
17198: 4798 blx r3
lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP);
1719a: 6820 ldr r0, [r4, #0]
1719c: 3050 adds r0, #80 ; 0x50
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
1719e: 2200 movs r2, #0
171a0: 2193 movs r1, #147 ; 0x93
171a2: 0089 lsls r1, r1, #2
171a4: 4bfa ldr r3, [pc, #1000] ; (17590 <lv_theme_material_init+0xc84>)
171a6: 4798 blx r3
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
171a8: 6824 ldr r4, [r4, #0]
171aa: 3450 adds r4, #80 ; 0x50
171ac: 2000 movs r0, #0
171ae: 4bf9 ldr r3, [pc, #996] ; (17594 <lv_theme_material_init+0xc88>)
171b0: 4798 blx r3
171b2: 3014 adds r0, #20
171b4: 0080 lsls r0, r0, #2
171b6: 2340 movs r3, #64 ; 0x40
171b8: 33ff adds r3, #255 ; 0xff
171ba: 2201 movs r2, #1
171bc: 4298 cmp r0, r3
171be: d901 bls.n 171c4 <lv_theme_material_init+0x8b8>
171c0: f001 fa05 bl 185ce <lv_theme_material_init+0x1cc2>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
171c4: 2101 movs r1, #1
171c6: 0020 movs r0, r4
171c8: 4bf3 ldr r3, [pc, #972] ; (17598 <lv_theme_material_init+0xc8c>)
171ca: 4798 blx r3
lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK);
171cc: 4cf3 ldr r4, [pc, #972] ; (1759c <lv_theme_material_init+0xc90>)
171ce: 6820 ldr r0, [r4, #0]
171d0: 3050 adds r0, #80 ; 0x50
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
171d2: 4af3 ldr r2, [pc, #972] ; (175a0 <lv_theme_material_init+0xc94>)
171d4: 21b7 movs r1, #183 ; 0xb7
171d6: 0049 lsls r1, r1, #1
171d8: 4df2 ldr r5, [pc, #968] ; (175a4 <lv_theme_material_init+0xc98>)
171da: 47a8 blx r5
lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE);
171dc: 6820 ldr r0, [r4, #0]
171de: 3050 adds r0, #80 ; 0x50
171e0: 4bf1 ldr r3, [pc, #964] ; (175a8 <lv_theme_material_init+0xc9c>)
171e2: 881a ldrh r2, [r3, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
171e4: 216a movs r1, #106 ; 0x6a
171e6: 31ff adds r1, #255 ; 0xff
171e8: 4bf0 ldr r3, [pc, #960] ; (175ac <lv_theme_material_init+0xca0>)
171ea: 4798 blx r3
lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small);
171ec: 4bf0 ldr r3, [pc, #960] ; (175b0 <lv_theme_material_init+0xca4>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
171ee: 689a ldr r2, [r3, #8]
171f0: 6820 ldr r0, [r4, #0]
171f2: 3050 adds r0, #80 ; 0x50
171f4: 49ef ldr r1, [pc, #956] ; (175b4 <lv_theme_material_init+0xca8>)
171f6: 47a8 blx r5
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
171f8: 6824 ldr r4, [r4, #0]
171fa: 3450 adds r4, #80 ; 0x50
171fc: 2000 movs r0, #0
171fe: 4be5 ldr r3, [pc, #916] ; (17594 <lv_theme_material_init+0xc88>)
17200: 4798 blx r3
17202: 0043 lsls r3, r0, #1
17204: 1818 adds r0, r3, r0
17206: 3050 adds r0, #80 ; 0x50
17208: 2340 movs r3, #64 ; 0x40
1720a: 33ff adds r3, #255 ; 0xff
1720c: 2201 movs r2, #1
1720e: 4298 cmp r0, r3
17210: d901 bls.n 17216 <lv_theme_material_init+0x90a>
17212: f001 f9e7 bl 185e4 <lv_theme_material_init+0x1cd8>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17216: 2112 movs r1, #18
17218: 0020 movs r0, r4
1721a: 4bdf ldr r3, [pc, #892] ; (17598 <lv_theme_material_init+0xc8c>)
1721c: 4798 blx r3
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
1721e: 4bdf ldr r3, [pc, #892] ; (1759c <lv_theme_material_init+0xc90>)
17220: 681c ldr r4, [r3, #0]
17222: 3450 adds r4, #80 ; 0x50
17224: 2000 movs r0, #0
17226: 4bdb ldr r3, [pc, #876] ; (17594 <lv_theme_material_init+0xc88>)
17228: 4798 blx r3
1722a: 0043 lsls r3, r0, #1
1722c: 1818 adds r0, r3, r0
1722e: 3050 adds r0, #80 ; 0x50
17230: 2340 movs r3, #64 ; 0x40
17232: 33ff adds r3, #255 ; 0xff
17234: 2201 movs r2, #1
17236: 4298 cmp r0, r3
17238: d901 bls.n 1723e <lv_theme_material_init+0x932>
1723a: f001 f9e0 bl 185fe <lv_theme_material_init+0x1cf2>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1723e: 2113 movs r1, #19
17240: 0020 movs r0, r4
17242: 4bd5 ldr r3, [pc, #852] ; (17598 <lv_theme_material_init+0xc8c>)
17244: 4798 blx r3
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
17246: 4bd5 ldr r3, [pc, #852] ; (1759c <lv_theme_material_init+0xc90>)
17248: 681c ldr r4, [r3, #0]
1724a: 3450 adds r4, #80 ; 0x50
1724c: 2000 movs r0, #0
1724e: 4bd1 ldr r3, [pc, #836] ; (17594 <lv_theme_material_init+0xc88>)
17250: 4798 blx r3
17252: 0043 lsls r3, r0, #1
17254: 1818 adds r0, r3, r0
17256: 3050 adds r0, #80 ; 0x50
17258: 2340 movs r3, #64 ; 0x40
1725a: 33ff adds r3, #255 ; 0xff
1725c: 2201 movs r2, #1
1725e: 4298 cmp r0, r3
17260: d901 bls.n 17266 <lv_theme_material_init+0x95a>
17262: f001 f9d9 bl 18618 <lv_theme_material_init+0x1d0c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
17266: 2110 movs r1, #16
17268: 0020 movs r0, r4
1726a: 4bcb ldr r3, [pc, #812] ; (17598 <lv_theme_material_init+0xc8c>)
1726c: 4798 blx r3
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
1726e: 4bcb ldr r3, [pc, #812] ; (1759c <lv_theme_material_init+0xc90>)
17270: 681c ldr r4, [r3, #0]
17272: 3450 adds r4, #80 ; 0x50
17274: 2000 movs r0, #0
17276: 4bc7 ldr r3, [pc, #796] ; (17594 <lv_theme_material_init+0xc88>)
17278: 4798 blx r3
1727a: 0043 lsls r3, r0, #1
1727c: 1818 adds r0, r3, r0
1727e: 3050 adds r0, #80 ; 0x50
17280: 2340 movs r3, #64 ; 0x40
17282: 33ff adds r3, #255 ; 0xff
17284: 2201 movs r2, #1
17286: 4298 cmp r0, r3
17288: d901 bls.n 1728e <lv_theme_material_init+0x982>
1728a: f001 f9d2 bl 18632 <lv_theme_material_init+0x1d26>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1728e: 2111 movs r1, #17
17290: 0020 movs r0, r4
17292: 4dc1 ldr r5, [pc, #772] ; (17598 <lv_theme_material_init+0xc8c>)
17294: 47a8 blx r5
style_init_reset(&styles->kb_bg);
17296: 4cc1 ldr r4, [pc, #772] ; (1759c <lv_theme_material_init+0xc90>)
17298: 6820 ldr r0, [r4, #0]
1729a: 3068 adds r0, #104 ; 0x68
1729c: 4bbb ldr r3, [pc, #748] ; (1758c <lv_theme_material_init+0xc80>)
1729e: 4798 blx r3
lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0);
172a0: 6820 ldr r0, [r4, #0]
172a2: 3068 adds r0, #104 ; 0x68
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
172a4: 2200 movs r2, #0
172a6: 2101 movs r1, #1
172a8: 47a8 blx r5
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
172aa: 6824 ldr r4, [r4, #0]
172ac: 3468 adds r4, #104 ; 0x68
172ae: 2000 movs r0, #0
172b0: 4bb8 ldr r3, [pc, #736] ; (17594 <lv_theme_material_init+0xc88>)
172b2: 4798 blx r3
172b4: 3014 adds r0, #20
172b6: 0080 lsls r0, r0, #2
172b8: 2340 movs r3, #64 ; 0x40
172ba: 33ff adds r3, #255 ; 0xff
172bc: 2201 movs r2, #1
172be: 4298 cmp r0, r3
172c0: d901 bls.n 172c6 <lv_theme_material_init+0x9ba>
172c2: f001 f9c3 bl 1864c <lv_theme_material_init+0x1d40>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
172c6: 2130 movs r1, #48 ; 0x30
172c8: 0020 movs r0, r4
172ca: 4db3 ldr r5, [pc, #716] ; (17598 <lv_theme_material_init+0xc8c>)
172cc: 47a8 blx r5
lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);
172ce: 4cb3 ldr r4, [pc, #716] ; (1759c <lv_theme_material_init+0xc90>)
172d0: 6820 ldr r0, [r4, #0]
172d2: 3068 adds r0, #104 ; 0x68
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
172d4: 2202 movs r2, #2
172d6: 2131 movs r1, #49 ; 0x31
172d8: 47a8 blx r5
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
172da: 6820 ldr r0, [r4, #0]
172dc: 3068 adds r0, #104 ; 0x68
172de: 4bb4 ldr r3, [pc, #720] ; (175b0 <lv_theme_material_init+0xca4>)
172e0: 699b ldr r3, [r3, #24]
172e2: 079b lsls r3, r3, #30
172e4: d501 bpl.n 172ea <lv_theme_material_init+0x9de>
172e6: f001 f9bc bl 18662 <lv_theme_material_init+0x1d56>
172ea: 2300 movs r3, #0
172ec: 2100 movs r1, #0
172ee: 2200 movs r2, #0
172f0: 0149 lsls r1, r1, #5
172f2: 02db lsls r3, r3, #11
172f4: 430a orrs r2, r1
172f6: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
172f8: 2139 movs r1, #57 ; 0x39
172fa: 4dac ldr r5, [pc, #688] ; (175ac <lv_theme_material_init+0xca0>)
172fc: 47a8 blx r5
lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary);
172fe: 4ca7 ldr r4, [pc, #668] ; (1759c <lv_theme_material_init+0xc90>)
17300: 6820 ldr r0, [r4, #0]
17302: 3068 adds r0, #104 ; 0x68
17304: 4baa ldr r3, [pc, #680] ; (175b0 <lv_theme_material_init+0xca4>)
17306: 88da ldrh r2, [r3, #6]
17308: 49ab ldr r1, [pc, #684] ; (175b8 <lv_theme_material_init+0xcac>)
1730a: 47a8 blx r5
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
1730c: 6824 ldr r4, [r4, #0]
1730e: 3468 adds r4, #104 ; 0x68
17310: 2000 movs r0, #0
17312: 4ba0 ldr r3, [pc, #640] ; (17594 <lv_theme_material_init+0xc88>)
17314: 4798 blx r3
17316: 0083 lsls r3, r0, #2
17318: 1818 adds r0, r3, r0
1731a: 3050 adds r0, #80 ; 0x50
1731c: 2340 movs r3, #64 ; 0x40
1731e: 33ff adds r3, #255 ; 0xff
17320: 2201 movs r2, #1
17322: 4298 cmp r0, r3
17324: d901 bls.n 1732a <lv_theme_material_init+0xa1e>
17326: f001 f9a5 bl 18674 <lv_theme_material_init+0x1d68>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1732a: 2112 movs r1, #18
1732c: 0020 movs r0, r4
1732e: 4b9a ldr r3, [pc, #616] ; (17598 <lv_theme_material_init+0xc8c>)
17330: 4798 blx r3
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
17332: 4b9a ldr r3, [pc, #616] ; (1759c <lv_theme_material_init+0xc90>)
17334: 681c ldr r4, [r3, #0]
17336: 3468 adds r4, #104 ; 0x68
17338: 2000 movs r0, #0
1733a: 4b96 ldr r3, [pc, #600] ; (17594 <lv_theme_material_init+0xc88>)
1733c: 4798 blx r3
1733e: 0083 lsls r3, r0, #2
17340: 1818 adds r0, r3, r0
17342: 3050 adds r0, #80 ; 0x50
17344: 2340 movs r3, #64 ; 0x40
17346: 33ff adds r3, #255 ; 0xff
17348: 2201 movs r2, #1
1734a: 4298 cmp r0, r3
1734c: d901 bls.n 17352 <lv_theme_material_init+0xa46>
1734e: f001 f99e bl 1868e <lv_theme_material_init+0x1d82>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17352: 2113 movs r1, #19
17354: 0020 movs r0, r4
17356: 4b90 ldr r3, [pc, #576] ; (17598 <lv_theme_material_init+0xc8c>)
17358: 4798 blx r3
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
1735a: 4b90 ldr r3, [pc, #576] ; (1759c <lv_theme_material_init+0xc90>)
1735c: 681c ldr r4, [r3, #0]
1735e: 3468 adds r4, #104 ; 0x68
17360: 2000 movs r0, #0
17362: 4b8c ldr r3, [pc, #560] ; (17594 <lv_theme_material_init+0xc88>)
17364: 4798 blx r3
17366: 0083 lsls r3, r0, #2
17368: 1818 adds r0, r3, r0
1736a: 3050 adds r0, #80 ; 0x50
1736c: 2340 movs r3, #64 ; 0x40
1736e: 33ff adds r3, #255 ; 0xff
17370: 2201 movs r2, #1
17372: 4298 cmp r0, r3
17374: d901 bls.n 1737a <lv_theme_material_init+0xa6e>
17376: f001 f997 bl 186a8 <lv_theme_material_init+0x1d9c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1737a: 2110 movs r1, #16
1737c: 0020 movs r0, r4
1737e: 4b86 ldr r3, [pc, #536] ; (17598 <lv_theme_material_init+0xc8c>)
17380: 4798 blx r3
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
17382: 4b86 ldr r3, [pc, #536] ; (1759c <lv_theme_material_init+0xc90>)
17384: 681c ldr r4, [r3, #0]
17386: 3468 adds r4, #104 ; 0x68
17388: 2000 movs r0, #0
1738a: 4b82 ldr r3, [pc, #520] ; (17594 <lv_theme_material_init+0xc88>)
1738c: 4798 blx r3
1738e: 0083 lsls r3, r0, #2
17390: 1818 adds r0, r3, r0
17392: 3050 adds r0, #80 ; 0x50
17394: 2340 movs r3, #64 ; 0x40
17396: 33ff adds r3, #255 ; 0xff
17398: 2201 movs r2, #1
1739a: 4298 cmp r0, r3
1739c: d901 bls.n 173a2 <lv_theme_material_init+0xa96>
1739e: f001 f990 bl 186c2 <lv_theme_material_init+0x1db6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
173a2: 2111 movs r1, #17
173a4: 0020 movs r0, r4
173a6: 4b7c ldr r3, [pc, #496] ; (17598 <lv_theme_material_init+0xc8c>)
173a8: 4798 blx r3
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
173aa: 4b7c ldr r3, [pc, #496] ; (1759c <lv_theme_material_init+0xc90>)
173ac: 681c ldr r4, [r3, #0]
173ae: 3468 adds r4, #104 ; 0x68
173b0: 2000 movs r0, #0
173b2: 4b78 ldr r3, [pc, #480] ; (17594 <lv_theme_material_init+0xc88>)
173b4: 4798 blx r3
173b6: 0043 lsls r3, r0, #1
173b8: 1818 adds r0, r3, r0
173ba: 3050 adds r0, #80 ; 0x50
173bc: 2340 movs r3, #64 ; 0x40
173be: 33ff adds r3, #255 ; 0xff
173c0: 2201 movs r2, #1
173c2: 4298 cmp r0, r3
173c4: d901 bls.n 173ca <lv_theme_material_init+0xabe>
173c6: f001 f989 bl 186dc <lv_theme_material_init+0x1dd0>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
173ca: 2114 movs r1, #20
173cc: 0020 movs r0, r4
173ce: 4b72 ldr r3, [pc, #456] ; (17598 <lv_theme_material_init+0xc8c>)
173d0: 4798 blx r3
style_init_reset(&styles->mbox_bg);
173d2: 4c72 ldr r4, [pc, #456] ; (1759c <lv_theme_material_init+0xc90>)
173d4: 6820 ldr r0, [r4, #0]
173d6: 307c adds r0, #124 ; 0x7c
173d8: 4b6c ldr r3, [pc, #432] ; (1758c <lv_theme_material_init+0xc80>)
173da: 4798 blx r3
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
173dc: 6824 ldr r4, [r4, #0]
173de: 347c adds r4, #124 ; 0x7c
173e0: 2000 movs r0, #0
173e2: 4b6c ldr r3, [pc, #432] ; (17594 <lv_theme_material_init+0xc88>)
173e4: 4798 blx r3
173e6: 2332 movs r3, #50 ; 0x32
173e8: 4358 muls r0, r3
173ea: 3050 adds r0, #80 ; 0x50
173ec: 2340 movs r3, #64 ; 0x40
173ee: 33ff adds r3, #255 ; 0xff
173f0: 2201 movs r2, #1
173f2: 4298 cmp r0, r3
173f4: d901 bls.n 173fa <lv_theme_material_init+0xaee>
173f6: f001 f97e bl 186f6 <lv_theme_material_init+0x1dea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
173fa: 2150 movs r1, #80 ; 0x50
173fc: 0020 movs r0, r4
173fe: 4b66 ldr r3, [pc, #408] ; (17598 <lv_theme_material_init+0xc8c>)
17400: 4798 blx r3
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
17402: 4b66 ldr r3, [pc, #408] ; (1759c <lv_theme_material_init+0xc90>)
17404: 6818 ldr r0, [r3, #0]
17406: 307c adds r0, #124 ; 0x7c
17408: 4b69 ldr r3, [pc, #420] ; (175b0 <lv_theme_material_init+0xca4>)
1740a: 699b ldr r3, [r3, #24]
1740c: 079b lsls r3, r3, #30
1740e: d401 bmi.n 17414 <lv_theme_material_init+0xb08>
17410: f001 f97e bl 18710 <lv_theme_material_init+0x1e04>
17414: 2230 movs r2, #48 ; 0x30
17416: 2318 movs r3, #24
17418: 0152 lsls r2, r2, #5
1741a: 02d9 lsls r1, r3, #11
1741c: 431a orrs r2, r3
1741e: 430a orrs r2, r1
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
17420: 2159 movs r1, #89 ; 0x59
17422: 4b62 ldr r3, [pc, #392] ; (175ac <lv_theme_material_init+0xca0>)
17424: 4798 blx r3
style_init_reset(&styles->sb);
17426: 4c5d ldr r4, [pc, #372] ; (1759c <lv_theme_material_init+0xc90>)
17428: 6820 ldr r0, [r4, #0]
1742a: 3080 adds r0, #128 ; 0x80
1742c: 4b57 ldr r3, [pc, #348] ; (1758c <lv_theme_material_init+0xc80>)
1742e: 4798 blx r3
lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER);
17430: 6820 ldr r0, [r4, #0]
17432: 3080 adds r0, #128 ; 0x80
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17434: 22ff movs r2, #255 ; 0xff
17436: 212c movs r1, #44 ; 0x2c
17438: 4b55 ldr r3, [pc, #340] ; (17590 <lv_theme_material_init+0xc84>)
1743a: 4798 blx r3
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
1743c: 6820 ldr r0, [r4, #0]
1743e: 3080 adds r0, #128 ; 0x80
17440: 4b5b ldr r3, [pc, #364] ; (175b0 <lv_theme_material_init+0xca4>)
17442: 699b ldr r3, [r3, #24]
17444: 079b lsls r3, r3, #30
17446: d501 bpl.n 1744c <lv_theme_material_init+0xb40>
17448: f001 f966 bl 18718 <lv_theme_material_init+0x1e0c>
1744c: 230e movs r3, #14
1744e: 211f movs r1, #31
17450: 2210 movs r2, #16
17452: 0149 lsls r1, r1, #5
17454: 02db lsls r3, r3, #11
17456: 430a orrs r2, r1
17458: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1745a: 2129 movs r1, #41 ; 0x29
1745c: 4b53 ldr r3, [pc, #332] ; (175ac <lv_theme_material_init+0xca0>)
1745e: 4798 blx r3
lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
17460: 4c4e ldr r4, [pc, #312] ; (1759c <lv_theme_material_init+0xc90>)
17462: 6820 ldr r0, [r4, #0]
17464: 3080 adds r0, #128 ; 0x80
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
17466: 4a55 ldr r2, [pc, #340] ; (175bc <lv_theme_material_init+0xcb0>)
17468: 2101 movs r1, #1
1746a: 4b4b ldr r3, [pc, #300] ; (17598 <lv_theme_material_init+0xc8c>)
1746c: 4798 blx r3
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
1746e: 6824 ldr r4, [r4, #0]
17470: 3480 adds r4, #128 ; 0x80
17472: 2000 movs r0, #0
17474: 4b47 ldr r3, [pc, #284] ; (17594 <lv_theme_material_init+0xc88>)
17476: 4798 blx r3
17478: 00c3 lsls r3, r0, #3
1747a: 1a18 subs r0, r3, r0
1747c: 3050 adds r0, #80 ; 0x50
1747e: 2340 movs r3, #64 ; 0x40
17480: 33ff adds r3, #255 ; 0xff
17482: 2201 movs r2, #1
17484: 4298 cmp r0, r3
17486: d901 bls.n 1748c <lv_theme_material_init+0xb80>
17488: f001 f94b bl 18722 <lv_theme_material_init+0x1e16>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
1748c: 2103 movs r1, #3
1748e: 0020 movs r0, r4
17490: 4b41 ldr r3, [pc, #260] ; (17598 <lv_theme_material_init+0xc8c>)
17492: 4798 blx r3
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
17494: 4b41 ldr r3, [pc, #260] ; (1759c <lv_theme_material_init+0xc90>)
17496: 681c ldr r4, [r3, #0]
17498: 3480 adds r4, #128 ; 0x80
1749a: 2000 movs r0, #0
1749c: 4b3d ldr r3, [pc, #244] ; (17594 <lv_theme_material_init+0xc88>)
1749e: 4798 blx r3
174a0: 00c3 lsls r3, r0, #3
174a2: 1a18 subs r0, r3, r0
174a4: 3050 adds r0, #80 ; 0x50
174a6: 2340 movs r3, #64 ; 0x40
174a8: 33ff adds r3, #255 ; 0xff
174aa: 2201 movs r2, #1
174ac: 4298 cmp r0, r3
174ae: d901 bls.n 174b4 <lv_theme_material_init+0xba8>
174b0: f001 f943 bl 1873a <lv_theme_material_init+0x1e2e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
174b4: 2113 movs r1, #19
174b6: 0020 movs r0, r4
174b8: 4b37 ldr r3, [pc, #220] ; (17598 <lv_theme_material_init+0xc8c>)
174ba: 4798 blx r3
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
174bc: 4b37 ldr r3, [pc, #220] ; (1759c <lv_theme_material_init+0xc90>)
174be: 681c ldr r4, [r3, #0]
174c0: 3480 adds r4, #128 ; 0x80
174c2: 2000 movs r0, #0
174c4: 4b33 ldr r3, [pc, #204] ; (17594 <lv_theme_material_init+0xc88>)
174c6: 4798 blx r3
174c8: 00c3 lsls r3, r0, #3
174ca: 1a18 subs r0, r3, r0
174cc: 3050 adds r0, #80 ; 0x50
174ce: 2340 movs r3, #64 ; 0x40
174d0: 33ff adds r3, #255 ; 0xff
174d2: 2201 movs r2, #1
174d4: 4298 cmp r0, r3
174d6: d901 bls.n 174dc <lv_theme_material_init+0xbd0>
174d8: f001 f93b bl 18752 <lv_theme_material_init+0x1e46>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
174dc: 2111 movs r1, #17
174de: 0020 movs r0, r4
174e0: 4b2d ldr r3, [pc, #180] ; (17598 <lv_theme_material_init+0xc8c>)
174e2: 4798 blx r3
style_init_reset(&styles->edge_flash);
174e4: 4c2d ldr r4, [pc, #180] ; (1759c <lv_theme_material_init+0xc90>)
174e6: 6820 ldr r0, [r4, #0]
174e8: 3084 adds r0, #132 ; 0x84
174ea: 4d28 ldr r5, [pc, #160] ; (1758c <lv_theme_material_init+0xc80>)
174ec: 47a8 blx r5
lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER);
174ee: 6820 ldr r0, [r4, #0]
174f0: 3084 adds r0, #132 ; 0x84
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
174f2: 22ff movs r2, #255 ; 0xff
174f4: 212c movs r1, #44 ; 0x2c
174f6: 4b26 ldr r3, [pc, #152] ; (17590 <lv_theme_material_init+0xc84>)
174f8: 4798 blx r3
lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888));
174fa: 6820 ldr r0, [r4, #0]
174fc: 3084 adds r0, #132 ; 0x84
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
174fe: 4b30 ldr r3, [pc, #192] ; (175c0 <lv_theme_material_init+0xcb4>)
17500: 881a ldrh r2, [r3, #0]
17502: 2129 movs r1, #41 ; 0x29
17504: 4b29 ldr r3, [pc, #164] ; (175ac <lv_theme_material_init+0xca0>)
17506: 4798 blx r3
style_init_reset(&styles->ta_cursor);
17508: 6820 ldr r0, [r4, #0]
1750a: 30b4 adds r0, #180 ; 0xb4
1750c: 47a8 blx r5
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
1750e: 6820 ldr r0, [r4, #0]
17510: 30b4 adds r0, #180 ; 0xb4
17512: 4b27 ldr r3, [pc, #156] ; (175b0 <lv_theme_material_init+0xca4>)
17514: 699b ldr r3, [r3, #24]
17516: 079b lsls r3, r3, #30
17518: d501 bpl.n 1751e <lv_theme_material_init+0xc12>
1751a: f001 f926 bl 1876a <lv_theme_material_init+0x1e5e>
1751e: 2314 movs r3, #20
17520: 212a movs r1, #42 ; 0x2a
17522: 2215 movs r2, #21
17524: 0149 lsls r1, r1, #5
17526: 02db lsls r3, r3, #11
17528: 430a orrs r2, r1
1752a: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1752c: 2139 movs r1, #57 ; 0x39
1752e: 4b1f ldr r3, [pc, #124] ; (175ac <lv_theme_material_init+0xca0>)
17530: 4798 blx r3
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
17532: 4b1a ldr r3, [pc, #104] ; (1759c <lv_theme_material_init+0xc90>)
17534: 681c ldr r4, [r3, #0]
17536: 34b4 adds r4, #180 ; 0xb4
17538: 2000 movs r0, #0
1753a: 4b16 ldr r3, [pc, #88] ; (17594 <lv_theme_material_init+0xc88>)
1753c: 4798 blx r3
1753e: 3028 adds r0, #40 ; 0x28
17540: 0040 lsls r0, r0, #1
17542: 2340 movs r3, #64 ; 0x40
17544: 33ff adds r3, #255 ; 0xff
17546: 2201 movs r2, #1
17548: 4298 cmp r0, r3
1754a: d901 bls.n 17550 <lv_theme_material_init+0xc44>
1754c: f001 f912 bl 18774 <lv_theme_material_init+0x1e68>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
17550: 2130 movs r1, #48 ; 0x30
17552: 0020 movs r0, r4
17554: 4b10 ldr r3, [pc, #64] ; (17598 <lv_theme_material_init+0xc8c>)
17556: 4798 blx r3
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
17558: 4b10 ldr r3, [pc, #64] ; (1759c <lv_theme_material_init+0xc90>)
1755a: 681c ldr r4, [r3, #0]
1755c: 34b4 adds r4, #180 ; 0xb4
1755e: 2000 movs r0, #0
17560: 4b0c ldr r3, [pc, #48] ; (17594 <lv_theme_material_init+0xc88>)
17562: 4798 blx r3
17564: 3050 adds r0, #80 ; 0x50
17566: 2340 movs r3, #64 ; 0x40
17568: 33ff adds r3, #255 ; 0xff
1756a: 2201 movs r2, #1
1756c: 4298 cmp r0, r3
1756e: d901 bls.n 17574 <lv_theme_material_init+0xc68>
17570: f001 f90b bl 1878a <lv_theme_material_init+0x1e7e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17574: 2112 movs r1, #18
17576: 0020 movs r0, r4
17578: 4d07 ldr r5, [pc, #28] ; (17598 <lv_theme_material_init+0xc8c>)
1757a: 47a8 blx r5
lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT);
1757c: 4c07 ldr r4, [pc, #28] ; (1759c <lv_theme_material_init+0xc90>)
1757e: 6820 ldr r0, [r4, #0]
17580: 30b4 adds r0, #180 ; 0xb4
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
17582: 2204 movs r2, #4
17584: 2131 movs r1, #49 ; 0x31
17586: 47a8 blx r5
17588: e01c b.n 175c4 <lv_theme_material_init+0xcb8>
1758a: 46c0 nop ; (mov r8, r8)
1758c: 00014911 .word 0x00014911
17590: 000062bd .word 0x000062bd
17594: 00010dd1 .word 0x00010dd1
17598: 00005fad .word 0x00005fad
1759c: 20004c4c .word 0x20004c4c
175a0: 0002ada8 .word 0x0002ada8
175a4: 00006431 .word 0x00006431
175a8: 0002ada0 .word 0x0002ada0
175ac: 00006135 .word 0x00006135
175b0: 20004c50 .word 0x20004c50
175b4: 0000818e .word 0x0000818e
175b8: 00000439 .word 0x00000439
175bc: 00007fff .word 0x00007fff
175c0: 0002ad9c .word 0x0002ad9c
style_init_reset(&styles->ta_placeholder);
175c4: 6820 ldr r0, [r4, #0]
175c6: 30b8 adds r0, #184 ; 0xb8
175c8: 4bfb ldr r3, [pc, #1004] ; (179b8 <lv_theme_material_init+0x10ac>)
175ca: 4798 blx r3
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
175cc: 6820 ldr r0, [r4, #0]
175ce: 30b8 adds r0, #184 ; 0xb8
175d0: 4bfa ldr r3, [pc, #1000] ; (179bc <lv_theme_material_init+0x10b0>)
175d2: 699b ldr r3, [r3, #24]
175d4: 079b lsls r3, r3, #30
175d6: d501 bpl.n 175dc <lv_theme_material_init+0xcd0>
175d8: f001 f8e1 bl 1879e <lv_theme_material_init+0x1e92>
175dc: 2314 movs r3, #20
175de: 212b movs r1, #43 ; 0x2b
175e0: 2217 movs r2, #23
175e2: 0149 lsls r1, r1, #5
175e4: 02db lsls r3, r3, #11
175e6: 430a orrs r2, r1
175e8: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
175ea: 4ef5 ldr r6, [pc, #980] ; (179c0 <lv_theme_material_init+0x10b4>)
175ec: 0031 movs r1, r6
175ee: 4df5 ldr r5, [pc, #980] ; (179c4 <lv_theme_material_init+0x10b8>)
175f0: 47a8 blx r5
style_init_reset(&styles->spinbox_cursor);
175f2: 4cf5 ldr r4, [pc, #980] ; (179c8 <lv_theme_material_init+0x10bc>)
175f4: 6820 ldr r0, [r4, #0]
175f6: 3098 adds r0, #152 ; 0x98
175f8: 4bef ldr r3, [pc, #956] ; (179b8 <lv_theme_material_init+0x10ac>)
175fa: 4798 blx r3
lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER);
175fc: 6820 ldr r0, [r4, #0]
175fe: 3098 adds r0, #152 ; 0x98
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17600: 22ff movs r2, #255 ; 0xff
17602: 212c movs r1, #44 ; 0x2c
17604: 4bf1 ldr r3, [pc, #964] ; (179cc <lv_theme_material_init+0x10c0>)
17606: 4798 blx r3
lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary);
17608: 6820 ldr r0, [r4, #0]
1760a: 3098 adds r0, #152 ; 0x98
1760c: 4beb ldr r3, [pc, #940] ; (179bc <lv_theme_material_init+0x10b0>)
1760e: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17610: 2129 movs r1, #41 ; 0x29
17612: 47a8 blx r5
lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE);
17614: 6820 ldr r0, [r4, #0]
17616: 3098 adds r0, #152 ; 0x98
17618: 4bed ldr r3, [pc, #948] ; (179d0 <lv_theme_material_init+0x10c4>)
1761a: 881a ldrh r2, [r3, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1761c: 0031 movs r1, r6
1761e: 47a8 blx r5
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
17620: 6824 ldr r4, [r4, #0]
17622: 3498 adds r4, #152 ; 0x98
17624: 2000 movs r0, #0
17626: 4beb ldr r3, [pc, #940] ; (179d4 <lv_theme_material_init+0x10c8>)
17628: 4798 blx r3
1762a: 2364 movs r3, #100 ; 0x64
1762c: 4358 muls r0, r3
1762e: 3050 adds r0, #80 ; 0x50
17630: 2340 movs r3, #64 ; 0x40
17632: 33ff adds r3, #255 ; 0xff
17634: 2201 movs r2, #1
17636: 4298 cmp r0, r3
17638: d901 bls.n 1763e <lv_theme_material_init+0xd32>
1763a: f001 f8b5 bl 187a8 <lv_theme_material_init+0x1e9c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1763e: 2110 movs r1, #16
17640: 0020 movs r0, r4
17642: 4be5 ldr r3, [pc, #916] ; (179d8 <lv_theme_material_init+0x10cc>)
17644: 4798 blx r3
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
17646: 4be0 ldr r3, [pc, #896] ; (179c8 <lv_theme_material_init+0x10bc>)
17648: 681c ldr r4, [r3, #0]
1764a: 3498 adds r4, #152 ; 0x98
1764c: 2000 movs r0, #0
1764e: 4be1 ldr r3, [pc, #900] ; (179d4 <lv_theme_material_init+0x10c8>)
17650: 4798 blx r3
17652: 2364 movs r3, #100 ; 0x64
17654: 4358 muls r0, r3
17656: 3050 adds r0, #80 ; 0x50
17658: 2340 movs r3, #64 ; 0x40
1765a: 33ff adds r3, #255 ; 0xff
1765c: 2201 movs r2, #1
1765e: 4298 cmp r0, r3
17660: d901 bls.n 17666 <lv_theme_material_init+0xd5a>
17662: f001 f8ae bl 187c2 <lv_theme_material_init+0x1eb6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
17666: 2111 movs r1, #17
17668: 0020 movs r0, r4
1766a: 4ddb ldr r5, [pc, #876] ; (179d8 <lv_theme_material_init+0x10cc>)
1766c: 47a8 blx r5
style_init_reset(&styles->list_bg);
1766e: 4cd6 ldr r4, [pc, #856] ; (179c8 <lv_theme_material_init+0x10bc>)
17670: 6820 ldr r0, [r4, #0]
17672: 3074 adds r0, #116 ; 0x74
17674: 4ed0 ldr r6, [pc, #832] ; (179b8 <lv_theme_material_init+0x10ac>)
17676: 47b0 blx r6
lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true);
17678: 6820 ldr r0, [r4, #0]
1767a: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
1767c: 2201 movs r2, #1
1767e: 2102 movs r1, #2
17680: 47a8 blx r5
lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0);
17682: 6820 ldr r0, [r4, #0]
17684: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17686: 2200 movs r2, #0
17688: 2112 movs r1, #18
1768a: 47a8 blx r5
lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0);
1768c: 6820 ldr r0, [r4, #0]
1768e: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17690: 2200 movs r2, #0
17692: 2113 movs r1, #19
17694: 47a8 blx r5
lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0);
17696: 6820 ldr r0, [r4, #0]
17698: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1769a: 2200 movs r2, #0
1769c: 2110 movs r1, #16
1769e: 47a8 blx r5
lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0);
176a0: 6820 ldr r0, [r4, #0]
176a2: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
176a4: 2200 movs r2, #0
176a6: 2111 movs r1, #17
176a8: 47a8 blx r5
lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0);
176aa: 6820 ldr r0, [r4, #0]
176ac: 3074 adds r0, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
176ae: 2200 movs r2, #0
176b0: 2114 movs r1, #20
176b2: 47a8 blx r5
style_init_reset(&styles->list_btn);
176b4: 6820 ldr r0, [r4, #0]
176b6: 3078 adds r0, #120 ; 0x78
176b8: 47b0 blx r6
lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER);
176ba: 6820 ldr r0, [r4, #0]
176bc: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
176be: 22ff movs r2, #255 ; 0xff
176c0: 212c movs r1, #44 ; 0x2c
176c2: 4bc2 ldr r3, [pc, #776] ; (179cc <lv_theme_material_init+0x10c0>)
176c4: 4798 blx r3
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
176c6: 6820 ldr r0, [r4, #0]
176c8: 3078 adds r0, #120 ; 0x78
176ca: 4bbc ldr r3, [pc, #752] ; (179bc <lv_theme_material_init+0x10b0>)
176cc: 699b ldr r3, [r3, #24]
176ce: 079b lsls r3, r3, #30
176d0: d501 bpl.n 176d6 <lv_theme_material_init+0xdca>
176d2: f001 f883 bl 187dc <lv_theme_material_init+0x1ed0>
176d6: 230b movs r3, #11
176d8: 2118 movs r1, #24
176da: 220e movs r2, #14
176dc: 0149 lsls r1, r1, #5
176de: 02db lsls r3, r3, #11
176e0: 430a orrs r2, r1
176e2: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
176e4: 2129 movs r1, #41 ; 0x29
176e6: 4bb7 ldr r3, [pc, #732] ; (179c4 <lv_theme_material_init+0x10b8>)
176e8: 4798 blx r3
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
176ea: 4bb7 ldr r3, [pc, #732] ; (179c8 <lv_theme_material_init+0x10bc>)
176ec: 6818 ldr r0, [r3, #0]
176ee: 3078 adds r0, #120 ; 0x78
176f0: 4bb2 ldr r3, [pc, #712] ; (179bc <lv_theme_material_init+0x10b0>)
176f2: 699b ldr r3, [r3, #24]
176f4: 079b lsls r3, r3, #30
176f6: d501 bpl.n 176fc <lv_theme_material_init+0xdf0>
176f8: f001 f875 bl 187e6 <lv_theme_material_init+0x1eda>
176fc: 2309 movs r3, #9
176fe: 2113 movs r1, #19
17700: 220a movs r2, #10
17702: 0149 lsls r1, r1, #5
17704: 02db lsls r3, r3, #11
17706: 430a orrs r2, r1
17708: 431a orrs r2, r3
1770a: 49b4 ldr r1, [pc, #720] ; (179dc <lv_theme_material_init+0x10d0>)
1770c: 4bad ldr r3, [pc, #692] ; (179c4 <lv_theme_material_init+0x10b8>)
1770e: 4798 blx r3
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
17710: 4bad ldr r3, [pc, #692] ; (179c8 <lv_theme_material_init+0x10bc>)
17712: 6818 ldr r0, [r3, #0]
17714: 3078 adds r0, #120 ; 0x78
17716: 4ba9 ldr r3, [pc, #676] ; (179bc <lv_theme_material_init+0x10b0>)
17718: 699b ldr r3, [r3, #24]
1771a: 079b lsls r3, r3, #30
1771c: d501 bpl.n 17722 <lv_theme_material_init+0xe16>
1771e: f001 f867 bl 187f0 <lv_theme_material_init+0x1ee4>
17722: 230b movs r3, #11
17724: 2118 movs r1, #24
17726: 220e movs r2, #14
17728: 0149 lsls r1, r1, #5
1772a: 02db lsls r3, r3, #11
1772c: 430a orrs r2, r1
1772e: 431a orrs r2, r3
17730: 49ab ldr r1, [pc, #684] ; (179e0 <lv_theme_material_init+0x10d4>)
17732: 4ea4 ldr r6, [pc, #656] ; (179c4 <lv_theme_material_init+0x10b8>)
17734: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK);
17736: 4da4 ldr r5, [pc, #656] ; (179c8 <lv_theme_material_init+0x10bc>)
17738: 6828 ldr r0, [r5, #0]
1773a: 3078 adds r0, #120 ; 0x78
1773c: 4c9f ldr r4, [pc, #636] ; (179bc <lv_theme_material_init+0x10b0>)
1773e: 88a2 ldrh r2, [r4, #4]
17740: 212a movs r1, #42 ; 0x2a
17742: 31ff adds r1, #255 ; 0xff
17744: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK);
17746: 682f ldr r7, [r5, #0]
17748: 3778 adds r7, #120 ; 0x78
1774a: 88a0 ldrh r0, [r4, #4]
1774c: 2133 movs r1, #51 ; 0x33
1774e: 4ba5 ldr r3, [pc, #660] ; (179e4 <lv_theme_material_init+0x10d8>)
17750: 4798 blx r3
17752: 1c02 adds r2, r0, #0
17754: 49a4 ldr r1, [pc, #656] ; (179e8 <lv_theme_material_init+0x10dc>)
17756: 0038 movs r0, r7
17758: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
1775a: 6828 ldr r0, [r5, #0]
1775c: 3078 adds r0, #120 ; 0x78
1775e: 69a3 ldr r3, [r4, #24]
17760: 079b lsls r3, r3, #30
17762: d501 bpl.n 17768 <lv_theme_material_init+0xe5c>
17764: f001 f849 bl 187fa <lv_theme_material_init+0x1eee>
17768: 231f movs r3, #31
1776a: 213f movs r1, #63 ; 0x3f
1776c: 221f movs r2, #31
1776e: 0149 lsls r1, r1, #5
17770: 02db lsls r3, r3, #11
17772: 430a orrs r2, r1
17774: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17776: 4992 ldr r1, [pc, #584] ; (179c0 <lv_theme_material_init+0x10b4>)
17778: 4d92 ldr r5, [pc, #584] ; (179c4 <lv_theme_material_init+0x10b8>)
1777a: 47a8 blx r5
lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
1777c: 4c92 ldr r4, [pc, #584] ; (179c8 <lv_theme_material_init+0x10bc>)
1777e: 6820 ldr r0, [r4, #0]
17780: 3078 adds r0, #120 ; 0x78
17782: 2201 movs r2, #1
17784: 4252 negs r2, r2
17786: 4999 ldr r1, [pc, #612] ; (179ec <lv_theme_material_init+0x10e0>)
17788: 47a8 blx r5
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
1778a: 6820 ldr r0, [r4, #0]
1778c: 3078 adds r0, #120 ; 0x78
1778e: 4b8b ldr r3, [pc, #556] ; (179bc <lv_theme_material_init+0x10b0>)
17790: 699b ldr r3, [r3, #24]
17792: 079b lsls r3, r3, #30
17794: d501 bpl.n 1779a <lv_theme_material_init+0xe8e>
17796: f001 f835 bl 18804 <lv_theme_material_init+0x1ef8>
1779a: 2226 movs r2, #38 ; 0x26
1779c: 2313 movs r3, #19
1779e: 0152 lsls r2, r2, #5
177a0: 02d9 lsls r1, r3, #11
177a2: 431a orrs r2, r3
177a4: 430a orrs r2, r1
177a6: 4992 ldr r1, [pc, #584] ; (179f0 <lv_theme_material_init+0x10e4>)
177a8: 4b86 ldr r3, [pc, #536] ; (179c4 <lv_theme_material_init+0x10b8>)
177aa: 4798 blx r3
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
177ac: 4b86 ldr r3, [pc, #536] ; (179c8 <lv_theme_material_init+0x10bc>)
177ae: 6818 ldr r0, [r3, #0]
177b0: 3078 adds r0, #120 ; 0x78
177b2: 4b82 ldr r3, [pc, #520] ; (179bc <lv_theme_material_init+0x10b0>)
177b4: 699b ldr r3, [r3, #24]
177b6: 079b lsls r3, r3, #30
177b8: d501 bpl.n 177be <lv_theme_material_init+0xeb2>
177ba: f001 f827 bl 1880c <lv_theme_material_init+0x1f00>
177be: 231f movs r3, #31
177c0: 213f movs r1, #63 ; 0x3f
177c2: 221f movs r2, #31
177c4: 0149 lsls r1, r1, #5
177c6: 02db lsls r3, r3, #11
177c8: 430a orrs r2, r1
177ca: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
177cc: 4989 ldr r1, [pc, #548] ; (179f4 <lv_theme_material_init+0x10e8>)
177ce: 4d7d ldr r5, [pc, #500] ; (179c4 <lv_theme_material_init+0x10b8>)
177d0: 47a8 blx r5
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
177d2: 4c7d ldr r4, [pc, #500] ; (179c8 <lv_theme_material_init+0x10bc>)
177d4: 6820 ldr r0, [r4, #0]
177d6: 3078 adds r0, #120 ; 0x78
177d8: 2201 movs r2, #1
177da: 4252 negs r2, r2
177dc: 4986 ldr r1, [pc, #536] ; (179f8 <lv_theme_material_init+0x10ec>)
177de: 47a8 blx r5
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
177e0: 6820 ldr r0, [r4, #0]
177e2: 3078 adds r0, #120 ; 0x78
177e4: 4b75 ldr r3, [pc, #468] ; (179bc <lv_theme_material_init+0x10b0>)
177e6: 699b ldr r3, [r3, #24]
177e8: 079b lsls r3, r3, #30
177ea: d501 bpl.n 177f0 <lv_theme_material_init+0xee4>
177ec: f001 f813 bl 18816 <lv_theme_material_init+0x1f0a>
177f0: 2226 movs r2, #38 ; 0x26
177f2: 2313 movs r3, #19
177f4: 0152 lsls r2, r2, #5
177f6: 02d9 lsls r1, r3, #11
177f8: 431a orrs r2, r3
177fa: 430a orrs r2, r1
177fc: 497f ldr r1, [pc, #508] ; (179fc <lv_theme_material_init+0x10f0>)
177fe: 4b71 ldr r3, [pc, #452] ; (179c4 <lv_theme_material_init+0x10b8>)
17800: 4798 blx r3
lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
17802: 4c71 ldr r4, [pc, #452] ; (179c8 <lv_theme_material_init+0x10bc>)
17804: 6820 ldr r0, [r4, #0]
17806: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
17808: 2201 movs r2, #1
1780a: 2131 movs r1, #49 ; 0x31
1780c: 4b72 ldr r3, [pc, #456] ; (179d8 <lv_theme_material_init+0x10cc>)
1780e: 4798 blx r3
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
17810: 6820 ldr r0, [r4, #0]
17812: 3078 adds r0, #120 ; 0x78
17814: 4b69 ldr r3, [pc, #420] ; (179bc <lv_theme_material_init+0x10b0>)
17816: 699b ldr r3, [r3, #24]
17818: 079b lsls r3, r3, #30
1781a: d501 bpl.n 17820 <lv_theme_material_init+0xf14>
1781c: f000 ffff bl 1881e <lv_theme_material_init+0x1f12>
17820: 2310 movs r3, #16
17822: 2122 movs r1, #34 ; 0x22
17824: 2212 movs r2, #18
17826: 0149 lsls r1, r1, #5
17828: 02db lsls r3, r3, #11
1782a: 430a orrs r2, r1
1782c: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1782e: 2139 movs r1, #57 ; 0x39
17830: 4d64 ldr r5, [pc, #400] ; (179c4 <lv_theme_material_init+0x10b8>)
17832: 47a8 blx r5
lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary);
17834: 4c64 ldr r4, [pc, #400] ; (179c8 <lv_theme_material_init+0x10bc>)
17836: 6820 ldr r0, [r4, #0]
17838: 3078 adds r0, #120 ; 0x78
1783a: 4b60 ldr r3, [pc, #384] ; (179bc <lv_theme_material_init+0x10b0>)
1783c: 889a ldrh r2, [r3, #4]
1783e: 4970 ldr r1, [pc, #448] ; (17a00 <lv_theme_material_init+0x10f4>)
17840: 47a8 blx r5
lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1);
17842: 6820 ldr r0, [r4, #0]
17844: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
17846: 2201 movs r2, #1
17848: 2130 movs r1, #48 ; 0x30
1784a: 4b63 ldr r3, [pc, #396] ; (179d8 <lv_theme_material_init+0x10cc>)
1784c: 4798 blx r3
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1784e: 6824 ldr r4, [r4, #0]
17850: 3478 adds r4, #120 ; 0x78
17852: 2000 movs r0, #0
17854: 4b6b ldr r3, [pc, #428] ; (17a04 <lv_theme_material_init+0x10f8>)
17856: 4798 blx r3
17858: 2801 cmp r0, #1
1785a: d801 bhi.n 17860 <lv_theme_material_init+0xf54>
1785c: f000 ffe4 bl 18828 <lv_theme_material_init+0x1f1c>
17860: 2000 movs r0, #0
17862: 4b5c ldr r3, [pc, #368] ; (179d4 <lv_theme_material_init+0x10c8>)
17864: 4798 blx r3
17866: 0103 lsls r3, r0, #4
17868: 1a1b subs r3, r3, r0
1786a: 005b lsls r3, r3, #1
1786c: 3350 adds r3, #80 ; 0x50
1786e: 2140 movs r1, #64 ; 0x40
17870: 31ff adds r1, #255 ; 0xff
17872: 2201 movs r2, #1
17874: 428b cmp r3, r1
17876: d901 bls.n 1787c <lv_theme_material_init+0xf70>
17878: f000 ffef bl 1885a <lv_theme_material_init+0x1f4e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1787c: 2112 movs r1, #18
1787e: 0020 movs r0, r4
17880: 4b55 ldr r3, [pc, #340] ; (179d8 <lv_theme_material_init+0x10cc>)
17882: 4798 blx r3
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
17884: 4b50 ldr r3, [pc, #320] ; (179c8 <lv_theme_material_init+0x10bc>)
17886: 681c ldr r4, [r3, #0]
17888: 3478 adds r4, #120 ; 0x78
1788a: 2000 movs r0, #0
1788c: 4b5d ldr r3, [pc, #372] ; (17a04 <lv_theme_material_init+0x10f8>)
1788e: 4798 blx r3
17890: 2801 cmp r0, #1
17892: d801 bhi.n 17898 <lv_theme_material_init+0xf8c>
17894: f000 ffee bl 18874 <lv_theme_material_init+0x1f68>
17898: 2000 movs r0, #0
1789a: 4b4e ldr r3, [pc, #312] ; (179d4 <lv_theme_material_init+0x10c8>)
1789c: 4798 blx r3
1789e: 0103 lsls r3, r0, #4
178a0: 1a1b subs r3, r3, r0
178a2: 005b lsls r3, r3, #1
178a4: 3350 adds r3, #80 ; 0x50
178a6: 2140 movs r1, #64 ; 0x40
178a8: 31ff adds r1, #255 ; 0xff
178aa: 2201 movs r2, #1
178ac: 428b cmp r3, r1
178ae: d901 bls.n 178b4 <lv_theme_material_init+0xfa8>
178b0: f000 fff9 bl 188a6 <lv_theme_material_init+0x1f9a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
178b4: 2113 movs r1, #19
178b6: 0020 movs r0, r4
178b8: 4b47 ldr r3, [pc, #284] ; (179d8 <lv_theme_material_init+0x10cc>)
178ba: 4798 blx r3
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
178bc: 4b42 ldr r3, [pc, #264] ; (179c8 <lv_theme_material_init+0x10bc>)
178be: 681c ldr r4, [r3, #0]
178c0: 3478 adds r4, #120 ; 0x78
178c2: 2000 movs r0, #0
178c4: 4b4f ldr r3, [pc, #316] ; (17a04 <lv_theme_material_init+0x10f8>)
178c6: 4798 blx r3
178c8: 2801 cmp r0, #1
178ca: d801 bhi.n 178d0 <lv_theme_material_init+0xfc4>
178cc: f000 fff8 bl 188c0 <lv_theme_material_init+0x1fb4>
178d0: 2000 movs r0, #0
178d2: 4b40 ldr r3, [pc, #256] ; (179d4 <lv_theme_material_init+0x10c8>)
178d4: 4798 blx r3
178d6: 0103 lsls r3, r0, #4
178d8: 1a1b subs r3, r3, r0
178da: 005b lsls r3, r3, #1
178dc: 3350 adds r3, #80 ; 0x50
178de: 2140 movs r1, #64 ; 0x40
178e0: 31ff adds r1, #255 ; 0xff
178e2: 2201 movs r2, #1
178e4: 428b cmp r3, r1
178e6: d901 bls.n 178ec <lv_theme_material_init+0xfe0>
178e8: f001 f803 bl 188f2 <lv_theme_material_init+0x1fe6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
178ec: 2110 movs r1, #16
178ee: 0020 movs r0, r4
178f0: 4b39 ldr r3, [pc, #228] ; (179d8 <lv_theme_material_init+0x10cc>)
178f2: 4798 blx r3
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
178f4: 4b34 ldr r3, [pc, #208] ; (179c8 <lv_theme_material_init+0x10bc>)
178f6: 681c ldr r4, [r3, #0]
178f8: 3478 adds r4, #120 ; 0x78
178fa: 2000 movs r0, #0
178fc: 4b41 ldr r3, [pc, #260] ; (17a04 <lv_theme_material_init+0x10f8>)
178fe: 4798 blx r3
17900: 2801 cmp r0, #1
17902: d801 bhi.n 17908 <lv_theme_material_init+0xffc>
17904: f001 f802 bl 1890c <lv_theme_material_init+0x2000>
17908: 2000 movs r0, #0
1790a: 4b32 ldr r3, [pc, #200] ; (179d4 <lv_theme_material_init+0x10c8>)
1790c: 4798 blx r3
1790e: 0103 lsls r3, r0, #4
17910: 1a1b subs r3, r3, r0
17912: 005b lsls r3, r3, #1
17914: 3350 adds r3, #80 ; 0x50
17916: 2140 movs r1, #64 ; 0x40
17918: 31ff adds r1, #255 ; 0xff
1791a: 2201 movs r2, #1
1791c: 428b cmp r3, r1
1791e: d901 bls.n 17924 <lv_theme_material_init+0x1018>
17920: f001 f80d bl 1893e <lv_theme_material_init+0x2032>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
17924: 2111 movs r1, #17
17926: 0020 movs r0, r4
17928: 4b2b ldr r3, [pc, #172] ; (179d8 <lv_theme_material_init+0x10cc>)
1792a: 4798 blx r3
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1792c: 4b26 ldr r3, [pc, #152] ; (179c8 <lv_theme_material_init+0x10bc>)
1792e: 681c ldr r4, [r3, #0]
17930: 3478 adds r4, #120 ; 0x78
17932: 2000 movs r0, #0
17934: 4b33 ldr r3, [pc, #204] ; (17a04 <lv_theme_material_init+0x10f8>)
17936: 4798 blx r3
17938: 2801 cmp r0, #1
1793a: d801 bhi.n 17940 <lv_theme_material_init+0x1034>
1793c: f001 f80c bl 18958 <lv_theme_material_init+0x204c>
17940: 2000 movs r0, #0
17942: 4b24 ldr r3, [pc, #144] ; (179d4 <lv_theme_material_init+0x10c8>)
17944: 4798 blx r3
17946: 0103 lsls r3, r0, #4
17948: 1a1b subs r3, r3, r0
1794a: 005b lsls r3, r3, #1
1794c: 3350 adds r3, #80 ; 0x50
1794e: 2140 movs r1, #64 ; 0x40
17950: 31ff adds r1, #255 ; 0xff
17952: 2201 movs r2, #1
17954: 428b cmp r3, r1
17956: d901 bls.n 1795c <lv_theme_material_init+0x1050>
17958: f001 f817 bl 1898a <lv_theme_material_init+0x207e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1795c: 2114 movs r1, #20
1795e: 0020 movs r0, r4
17960: 4b1d ldr r3, [pc, #116] ; (179d8 <lv_theme_material_init+0x10cc>)
17962: 4798 blx r3
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
17964: 4b18 ldr r3, [pc, #96] ; (179c8 <lv_theme_material_init+0x10bc>)
17966: 681c ldr r4, [r3, #0]
17968: 3478 adds r4, #120 ; 0x78
1796a: 2000 movs r0, #0
1796c: 4b25 ldr r3, [pc, #148] ; (17a04 <lv_theme_material_init+0x10f8>)
1796e: 4798 blx r3
17970: 2801 cmp r0, #1
17972: d801 bhi.n 17978 <lv_theme_material_init+0x106c>
17974: f001 f816 bl 189a4 <lv_theme_material_init+0x2098>
17978: 2000 movs r0, #0
1797a: 4b16 ldr r3, [pc, #88] ; (179d4 <lv_theme_material_init+0x10c8>)
1797c: 4798 blx r3
1797e: 0103 lsls r3, r0, #4
17980: 1a18 subs r0, r3, r0
17982: 0040 lsls r0, r0, #1
17984: 3050 adds r0, #80 ; 0x50
17986: 2340 movs r3, #64 ; 0x40
17988: 33ff adds r3, #255 ; 0xff
1798a: 4298 cmp r0, r3
1798c: d901 bls.n 17992 <lv_theme_material_init+0x1086>
1798e: f001 f824 bl 189da <lv_theme_material_init+0x20ce>
17992: 2201 movs r2, #1
17994: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
17996: 2104 movs r1, #4
17998: 0020 movs r0, r4
1799a: 4d0f ldr r5, [pc, #60] ; (179d8 <lv_theme_material_init+0x10cc>)
1799c: 47a8 blx r5
lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0);
1799e: 4c0a ldr r4, [pc, #40] ; (179c8 <lv_theme_material_init+0x10bc>)
179a0: 6820 ldr r0, [r4, #0]
179a2: 3078 adds r0, #120 ; 0x78
179a4: 2200 movs r2, #0
179a6: 4918 ldr r1, [pc, #96] ; (17a08 <lv_theme_material_init+0x10fc>)
179a8: 47a8 blx r5
lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0);
179aa: 6820 ldr r0, [r4, #0]
179ac: 3078 adds r0, #120 ; 0x78
179ae: 2200 movs r2, #0
179b0: 2182 movs r1, #130 ; 0x82
179b2: 0049 lsls r1, r1, #1
179b4: 47a8 blx r5
179b6: e029 b.n 17a0c <lv_theme_material_init+0x1100>
179b8: 00014911 .word 0x00014911
179bc: 20004c50 .word 0x20004c50
179c0: 00008089 .word 0x00008089
179c4: 00006135 .word 0x00006135
179c8: 20004c4c .word 0x20004c4c
179cc: 000062bd .word 0x000062bd
179d0: 0002ada0 .word 0x0002ada0
179d4: 00010dd1 .word 0x00010dd1
179d8: 00005fad .word 0x00005fad
179dc: 00001029 .word 0x00001029
179e0: 00002029 .word 0x00002029
179e4: 00011ad9 .word 0x00011ad9
179e8: 00001129 .word 0x00001129
179ec: 00008189 .word 0x00008189
179f0: 0000a089 .word 0x0000a089
179f4: 000080a9 .word 0x000080a9
179f8: 000081a9 .word 0x000081a9
179fc: 0000a0a9 .word 0x0000a0a9
17a00: 00000239 .word 0x00000239
17a04: 00010ded .word 0x00010ded
17a08: 00001004 .word 0x00001004
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0);
17a0c: 6820 ldr r0, [r4, #0]
17a0e: 3078 adds r0, #120 ; 0x78
17a10: 2200 movs r2, #0
17a12: 49fa ldr r1, [pc, #1000] ; (17dfc <lv_theme_material_init+0x14f0>)
17a14: 47a8 blx r5
lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME);
17a16: 6820 ldr r0, [r4, #0]
17a18: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
17a1a: 2296 movs r2, #150 ; 0x96
17a1c: 21b0 movs r1, #176 ; 0xb0
17a1e: 47a8 blx r5
lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
17a20: 6820 ldr r0, [r4, #0]
17a22: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
17a24: 2229 movs r2, #41 ; 0x29
17a26: 21b7 movs r1, #183 ; 0xb7
17a28: 47a8 blx r5
lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH);
17a2a: 6820 ldr r0, [r4, #0]
17a2c: 3078 adds r0, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
17a2e: 2204 movs r2, #4
17a30: 21b6 movs r1, #182 ; 0xb6
17a32: 47a8 blx r5
style_init_reset(&styles->ddlist_page);
17a34: 6820 ldr r0, [r4, #0]
17a36: 3054 adds r0, #84 ; 0x54
17a38: 4bf1 ldr r3, [pc, #964] ; (17e00 <lv_theme_material_init+0x14f4>)
17a3a: 4798 blx r3
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
17a3c: 6824 ldr r4, [r4, #0]
17a3e: 3454 adds r4, #84 ; 0x54
17a40: 2000 movs r0, #0
17a42: 4bf0 ldr r3, [pc, #960] ; (17e04 <lv_theme_material_init+0x14f8>)
17a44: 4798 blx r3
17a46: 0083 lsls r3, r0, #2
17a48: 181b adds r3, r3, r0
17a4a: 009b lsls r3, r3, #2
17a4c: 3350 adds r3, #80 ; 0x50
17a4e: 2140 movs r1, #64 ; 0x40
17a50: 31ff adds r1, #255 ; 0xff
17a52: 2201 movs r2, #1
17a54: 428b cmp r3, r1
17a56: d901 bls.n 17a5c <lv_theme_material_init+0x1150>
17a58: f000 ffcd bl 189f6 <lv_theme_material_init+0x20ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
17a5c: 49ea ldr r1, [pc, #936] ; (17e08 <lv_theme_material_init+0x14fc>)
17a5e: 0020 movs r0, r4
17a60: 4dea ldr r5, [pc, #936] ; (17e0c <lv_theme_material_init+0x1500>)
17a62: 47a8 blx r5
lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true);
17a64: 4cea ldr r4, [pc, #936] ; (17e10 <lv_theme_material_init+0x1504>)
17a66: 6820 ldr r0, [r4, #0]
17a68: 3054 adds r0, #84 ; 0x54
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
17a6a: 2201 movs r2, #1
17a6c: 2102 movs r1, #2
17a6e: 47a8 blx r5
style_init_reset(&styles->ddlist_sel);
17a70: 6820 ldr r0, [r4, #0]
17a72: 3058 adds r0, #88 ; 0x58
17a74: 4be2 ldr r3, [pc, #904] ; (17e00 <lv_theme_material_init+0x14f4>)
17a76: 4798 blx r3
lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
17a78: 6820 ldr r0, [r4, #0]
17a7a: 3058 adds r0, #88 ; 0x58
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17a7c: 22ff movs r2, #255 ; 0xff
17a7e: 212c movs r1, #44 ; 0x2c
17a80: 4be4 ldr r3, [pc, #912] ; (17e14 <lv_theme_material_init+0x1508>)
17a82: 4798 blx r3
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary);
17a84: 6820 ldr r0, [r4, #0]
17a86: 3058 adds r0, #88 ; 0x58
17a88: 4de3 ldr r5, [pc, #908] ; (17e18 <lv_theme_material_init+0x150c>)
17a8a: 88aa ldrh r2, [r5, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17a8c: 2129 movs r1, #41 ; 0x29
17a8e: 4ee3 ldr r6, [pc, #908] ; (17e1c <lv_theme_material_init+0x1510>)
17a90: 47b0 blx r6
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff));
17a92: 6820 ldr r0, [r4, #0]
17a94: 3058 adds r0, #88 ; 0x58
17a96: 2201 movs r2, #1
17a98: 4252 negs r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17a9a: 49e1 ldr r1, [pc, #900] ; (17e20 <lv_theme_material_init+0x1514>)
17a9c: 47b0 blx r6
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
17a9e: 6820 ldr r0, [r4, #0]
17aa0: 3058 adds r0, #88 ; 0x58
17aa2: 69ab ldr r3, [r5, #24]
17aa4: 079b lsls r3, r3, #30
17aa6: d501 bpl.n 17aac <lv_theme_material_init+0x11a0>
17aa8: f000 ffb3 bl 18a12 <lv_theme_material_init+0x2106>
17aac: 2309 movs r3, #9
17aae: 2113 movs r1, #19
17ab0: 220a movs r2, #10
17ab2: 0149 lsls r1, r1, #5
17ab4: 02db lsls r3, r3, #11
17ab6: 430a orrs r2, r1
17ab8: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17aba: 49da ldr r1, [pc, #872] ; (17e24 <lv_theme_material_init+0x1518>)
17abc: 4bd7 ldr r3, [pc, #860] ; (17e1c <lv_theme_material_init+0x1510>)
17abe: 4798 blx r3
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
17ac0: 4bd3 ldr r3, [pc, #844] ; (17e10 <lv_theme_material_init+0x1504>)
17ac2: 6818 ldr r0, [r3, #0]
17ac4: 3058 adds r0, #88 ; 0x58
17ac6: 4bd4 ldr r3, [pc, #848] ; (17e18 <lv_theme_material_init+0x150c>)
17ac8: 699b ldr r3, [r3, #24]
17aca: 079b lsls r3, r3, #30
17acc: d501 bpl.n 17ad2 <lv_theme_material_init+0x11c6>
17ace: f000 ffa5 bl 18a1c <lv_theme_material_init+0x2110>
17ad2: 231f movs r3, #31
17ad4: 213f movs r1, #63 ; 0x3f
17ad6: 221f movs r2, #31
17ad8: 0149 lsls r1, r1, #5
17ada: 02db lsls r3, r3, #11
17adc: 430a orrs r2, r1
17ade: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17ae0: 49d1 ldr r1, [pc, #836] ; (17e28 <lv_theme_material_init+0x151c>)
17ae2: 4bce ldr r3, [pc, #824] ; (17e1c <lv_theme_material_init+0x1510>)
17ae4: 4798 blx r3
style_init_reset(&styles->roller_bg);
17ae6: 4cca ldr r4, [pc, #808] ; (17e10 <lv_theme_material_init+0x1504>)
17ae8: 6820 ldr r0, [r4, #0]
17aea: 3088 adds r0, #136 ; 0x88
17aec: 4bc4 ldr r3, [pc, #784] ; (17e00 <lv_theme_material_init+0x14f4>)
17aee: 4798 blx r3
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
17af0: 6824 ldr r4, [r4, #0]
17af2: 3488 adds r4, #136 ; 0x88
17af4: 2000 movs r0, #0
17af6: 4bc3 ldr r3, [pc, #780] ; (17e04 <lv_theme_material_init+0x14f8>)
17af8: 4798 blx r3
17afa: 0083 lsls r3, r0, #2
17afc: 1818 adds r0, r3, r0
17afe: 0083 lsls r3, r0, #2
17b00: 18c0 adds r0, r0, r3
17b02: 3050 adds r0, #80 ; 0x50
17b04: 2340 movs r3, #64 ; 0x40
17b06: 33ff adds r3, #255 ; 0xff
17b08: 2201 movs r2, #1
17b0a: 4298 cmp r0, r3
17b0c: d901 bls.n 17b12 <lv_theme_material_init+0x1206>
17b0e: f000 ff8a bl 18a26 <lv_theme_material_init+0x211a>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
17b12: 49bd ldr r1, [pc, #756] ; (17e08 <lv_theme_material_init+0x14fc>)
17b14: 0020 movs r0, r4
17b16: 4bbd ldr r3, [pc, #756] ; (17e0c <lv_theme_material_init+0x1500>)
17b18: 4798 blx r3
style_init_reset(&styles->roller_sel);
17b1a: 4cbd ldr r4, [pc, #756] ; (17e10 <lv_theme_material_init+0x1504>)
17b1c: 6820 ldr r0, [r4, #0]
17b1e: 308c adds r0, #140 ; 0x8c
17b20: 4fb7 ldr r7, [pc, #732] ; (17e00 <lv_theme_material_init+0x14f4>)
17b22: 47b8 blx r7
lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
17b24: 6820 ldr r0, [r4, #0]
17b26: 308c adds r0, #140 ; 0x8c
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17b28: 22ff movs r2, #255 ; 0xff
17b2a: 212c movs r1, #44 ; 0x2c
17b2c: 4eb9 ldr r6, [pc, #740] ; (17e14 <lv_theme_material_init+0x1508>)
17b2e: 47b0 blx r6
lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary);
17b30: 6820 ldr r0, [r4, #0]
17b32: 308c adds r0, #140 ; 0x8c
17b34: 4db8 ldr r5, [pc, #736] ; (17e18 <lv_theme_material_init+0x150c>)
17b36: 88aa ldrh r2, [r5, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17b38: 2129 movs r1, #41 ; 0x29
17b3a: 4bb8 ldr r3, [pc, #736] ; (17e1c <lv_theme_material_init+0x1510>)
17b3c: 4698 mov r8, r3
17b3e: 4798 blx r3
lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE);
17b40: 6820 ldr r0, [r4, #0]
17b42: 308c adds r0, #140 ; 0x8c
17b44: 4bb9 ldr r3, [pc, #740] ; (17e2c <lv_theme_material_init+0x1520>)
17b46: 881a ldrh r2, [r3, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17b48: 49b5 ldr r1, [pc, #724] ; (17e20 <lv_theme_material_init+0x1514>)
17b4a: 47c0 blx r8
style_init_reset(&styles->tabview_btns_bg);
17b4c: 6820 ldr r0, [r4, #0]
17b4e: 30a8 adds r0, #168 ; 0xa8
17b50: 47b8 blx r7
lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
17b52: 6820 ldr r0, [r4, #0]
17b54: 30a8 adds r0, #168 ; 0xa8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17b56: 22ff movs r2, #255 ; 0xff
17b58: 212c movs r1, #44 ; 0x2c
17b5a: 47b0 blx r6
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
17b5c: 6820 ldr r0, [r4, #0]
17b5e: 30a8 adds r0, #168 ; 0xa8
17b60: 69ab ldr r3, [r5, #24]
17b62: 079b lsls r3, r3, #30
17b64: d501 bpl.n 17b6a <lv_theme_material_init+0x125e>
17b66: f000 ff6c bl 18a42 <lv_theme_material_init+0x2136>
17b6a: 230b movs r3, #11
17b6c: 2118 movs r1, #24
17b6e: 220e movs r2, #14
17b70: 0149 lsls r1, r1, #5
17b72: 02db lsls r3, r3, #11
17b74: 430a orrs r2, r1
17b76: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17b78: 2129 movs r1, #41 ; 0x29
17b7a: 4ba8 ldr r3, [pc, #672] ; (17e1c <lv_theme_material_init+0x1510>)
17b7c: 4798 blx r3
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
17b7e: 4ba4 ldr r3, [pc, #656] ; (17e10 <lv_theme_material_init+0x1504>)
17b80: 6818 ldr r0, [r3, #0]
17b82: 30a8 adds r0, #168 ; 0xa8
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
17b84: 4ba4 ldr r3, [pc, #656] ; (17e18 <lv_theme_material_init+0x150c>)
17b86: 699b ldr r3, [r3, #24]
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
17b88: 079b lsls r3, r3, #30
17b8a: d501 bpl.n 17b90 <lv_theme_material_init+0x1284>
17b8c: f000 ff5e bl 18a4c <lv_theme_material_init+0x2140>
17b90: 2307 movs r3, #7
17b92: 210f movs r1, #15
17b94: 2208 movs r2, #8
17b96: 0149 lsls r1, r1, #5
17b98: 02db lsls r3, r3, #11
17b9a: 430a orrs r2, r1
17b9c: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
17b9e: 2139 movs r1, #57 ; 0x39
17ba0: 4b9e ldr r3, [pc, #632] ; (17e1c <lv_theme_material_init+0x1510>)
17ba2: 4798 blx r3
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
17ba4: 4b9a ldr r3, [pc, #616] ; (17e10 <lv_theme_material_init+0x1504>)
17ba6: 681c ldr r4, [r3, #0]
17ba8: 34a8 adds r4, #168 ; 0xa8
17baa: 2000 movs r0, #0
17bac: 4b95 ldr r3, [pc, #596] ; (17e04 <lv_theme_material_init+0x14f8>)
17bae: 4798 blx r3
17bb0: 0083 lsls r3, r0, #2
17bb2: 1818 adds r0, r3, r0
17bb4: 3050 adds r0, #80 ; 0x50
17bb6: 2340 movs r3, #64 ; 0x40
17bb8: 33ff adds r3, #255 ; 0xff
17bba: 2201 movs r2, #1
17bbc: 4298 cmp r0, r3
17bbe: d901 bls.n 17bc4 <lv_theme_material_init+0x12b8>
17bc0: f000 ff4e bl 18a60 <lv_theme_material_init+0x2154>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
17bc4: 2130 movs r1, #48 ; 0x30
17bc6: 0020 movs r0, r4
17bc8: 4d90 ldr r5, [pc, #576] ; (17e0c <lv_theme_material_init+0x1500>)
17bca: 47a8 blx r5
lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
17bcc: 4c90 ldr r4, [pc, #576] ; (17e10 <lv_theme_material_init+0x1504>)
17bce: 6820 ldr r0, [r4, #0]
17bd0: 30a8 adds r0, #168 ; 0xa8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
17bd2: 2201 movs r2, #1
17bd4: 2131 movs r1, #49 ; 0x31
17bd6: 47a8 blx r5
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
17bd8: 6820 ldr r0, [r4, #0]
17bda: 30a8 adds r0, #168 ; 0xa8
17bdc: 4b8e ldr r3, [pc, #568] ; (17e18 <lv_theme_material_init+0x150c>)
17bde: 699b ldr r3, [r3, #24]
17be0: 079b lsls r3, r3, #30
17be2: d501 bpl.n 17be8 <lv_theme_material_init+0x12dc>
17be4: f000 ff49 bl 18a7a <lv_theme_material_init+0x216e>
17be8: 231c movs r3, #28
17bea: 213a movs r1, #58 ; 0x3a
17bec: 221d movs r2, #29
17bee: 0149 lsls r1, r1, #5
17bf0: 02db lsls r3, r3, #11
17bf2: 430a orrs r2, r1
17bf4: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17bf6: 498a ldr r1, [pc, #552] ; (17e20 <lv_theme_material_init+0x1514>)
17bf8: 4d88 ldr r5, [pc, #544] ; (17e1c <lv_theme_material_init+0x1510>)
17bfa: 47a8 blx r5
lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal);
17bfc: 4b86 ldr r3, [pc, #536] ; (17e18 <lv_theme_material_init+0x150c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
17bfe: 68da ldr r2, [r3, #12]
17c00: 4c83 ldr r4, [pc, #524] ; (17e10 <lv_theme_material_init+0x1504>)
17c02: 6820 ldr r0, [r4, #0]
17c04: 30a8 adds r0, #168 ; 0xa8
17c06: 498a ldr r1, [pc, #552] ; (17e30 <lv_theme_material_init+0x1524>)
17c08: 4b8a ldr r3, [pc, #552] ; (17e34 <lv_theme_material_init+0x1528>)
17c0a: 4798 blx r3
lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f));
17c0c: 6820 ldr r0, [r4, #0]
17c0e: 30a8 adds r0, #168 ; 0xa8
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
17c10: 4b89 ldr r3, [pc, #548] ; (17e38 <lv_theme_material_init+0x152c>)
17c12: 881a ldrh r2, [r3, #0]
17c14: 4989 ldr r1, [pc, #548] ; (17e3c <lv_theme_material_init+0x1530>)
17c16: 47a8 blx r5
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
17c18: 6824 ldr r4, [r4, #0]
17c1a: 34a8 adds r4, #168 ; 0xa8
17c1c: 2000 movs r0, #0
17c1e: 4b79 ldr r3, [pc, #484] ; (17e04 <lv_theme_material_init+0x14f8>)
17c20: 4798 blx r3
17c22: 00c3 lsls r3, r0, #3
17c24: 1a18 subs r0, r3, r0
17c26: 3050 adds r0, #80 ; 0x50
17c28: 2340 movs r3, #64 ; 0x40
17c2a: 33ff adds r3, #255 ; 0xff
17c2c: 2201 movs r2, #1
17c2e: 4298 cmp r0, r3
17c30: d901 bls.n 17c36 <lv_theme_material_init+0x132a>
17c32: f000 ff27 bl 18a84 <lv_theme_material_init+0x2178>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
17c36: 2110 movs r1, #16
17c38: 0020 movs r0, r4
17c3a: 4b74 ldr r3, [pc, #464] ; (17e0c <lv_theme_material_init+0x1500>)
17c3c: 4798 blx r3
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
17c3e: 4b74 ldr r3, [pc, #464] ; (17e10 <lv_theme_material_init+0x1504>)
17c40: 681c ldr r4, [r3, #0]
17c42: 34a8 adds r4, #168 ; 0xa8
17c44: 2000 movs r0, #0
17c46: 4b6f ldr r3, [pc, #444] ; (17e04 <lv_theme_material_init+0x14f8>)
17c48: 4798 blx r3
17c4a: 00c3 lsls r3, r0, #3
17c4c: 1a18 subs r0, r3, r0
17c4e: 3050 adds r0, #80 ; 0x50
17c50: 2340 movs r3, #64 ; 0x40
17c52: 33ff adds r3, #255 ; 0xff
17c54: 2201 movs r2, #1
17c56: 4298 cmp r0, r3
17c58: d901 bls.n 17c5e <lv_theme_material_init+0x1352>
17c5a: f000 ff1f bl 18a9c <lv_theme_material_init+0x2190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17c5e: 2112 movs r1, #18
17c60: 0020 movs r0, r4
17c62: 4b6a ldr r3, [pc, #424] ; (17e0c <lv_theme_material_init+0x1500>)
17c64: 4798 blx r3
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
17c66: 4b6a ldr r3, [pc, #424] ; (17e10 <lv_theme_material_init+0x1504>)
17c68: 681c ldr r4, [r3, #0]
17c6a: 34a8 adds r4, #168 ; 0xa8
17c6c: 2000 movs r0, #0
17c6e: 4b65 ldr r3, [pc, #404] ; (17e04 <lv_theme_material_init+0x14f8>)
17c70: 4798 blx r3
17c72: 00c3 lsls r3, r0, #3
17c74: 1a18 subs r0, r3, r0
17c76: 3050 adds r0, #80 ; 0x50
17c78: 2340 movs r3, #64 ; 0x40
17c7a: 33ff adds r3, #255 ; 0xff
17c7c: 2201 movs r2, #1
17c7e: 4298 cmp r0, r3
17c80: d901 bls.n 17c86 <lv_theme_material_init+0x137a>
17c82: f000 ff17 bl 18ab4 <lv_theme_material_init+0x21a8>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17c86: 2113 movs r1, #19
17c88: 0020 movs r0, r4
17c8a: 4b60 ldr r3, [pc, #384] ; (17e0c <lv_theme_material_init+0x1500>)
17c8c: 4798 blx r3
style_init_reset(&styles->tabview_btns);
17c8e: 4c60 ldr r4, [pc, #384] ; (17e10 <lv_theme_material_init+0x1504>)
17c90: 6820 ldr r0, [r4, #0]
17c92: 30a4 adds r0, #164 ; 0xa4
17c94: 4b5a ldr r3, [pc, #360] ; (17e00 <lv_theme_material_init+0x14f4>)
17c96: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50);
17c98: 6820 ldr r0, [r4, #0]
17c9a: 30a4 adds r0, #164 ; 0xa4
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17c9c: 227f movs r2, #127 ; 0x7f
17c9e: 4968 ldr r1, [pc, #416] ; (17e40 <lv_theme_material_init+0x1534>)
17ca0: 4b5c ldr r3, [pc, #368] ; (17e14 <lv_theme_material_init+0x1508>)
17ca2: 4798 blx r3
lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888));
17ca4: 6820 ldr r0, [r4, #0]
17ca6: 30a4 adds r0, #164 ; 0xa4
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17ca8: 4b66 ldr r3, [pc, #408] ; (17e44 <lv_theme_material_init+0x1538>)
17caa: 881a ldrh r2, [r3, #0]
17cac: 495d ldr r1, [pc, #372] ; (17e24 <lv_theme_material_init+0x1518>)
17cae: 4b5b ldr r3, [pc, #364] ; (17e1c <lv_theme_material_init+0x1510>)
17cb0: 4798 blx r3
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
17cb2: 6820 ldr r0, [r4, #0]
17cb4: 30a4 adds r0, #164 ; 0xa4
17cb6: 4b58 ldr r3, [pc, #352] ; (17e18 <lv_theme_material_init+0x150c>)
17cb8: 699b ldr r3, [r3, #24]
17cba: 079b lsls r3, r3, #30
17cbc: d501 bpl.n 17cc2 <lv_theme_material_init+0x13b6>
17cbe: f000 ff05 bl 18acc <lv_theme_material_init+0x21c0>
17cc2: 231c movs r3, #28
17cc4: 213a movs r1, #58 ; 0x3a
17cc6: 221d movs r2, #29
17cc8: 0149 lsls r1, r1, #5
17cca: 02db lsls r3, r3, #11
17ccc: 430a orrs r2, r1
17cce: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17cd0: 495d ldr r1, [pc, #372] ; (17e48 <lv_theme_material_init+0x153c>)
17cd2: 4b52 ldr r3, [pc, #328] ; (17e1c <lv_theme_material_init+0x1510>)
17cd4: 4798 blx r3
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
17cd6: 4b4e ldr r3, [pc, #312] ; (17e10 <lv_theme_material_init+0x1504>)
17cd8: 681c ldr r4, [r3, #0]
17cda: 34a4 adds r4, #164 ; 0xa4
17cdc: 2000 movs r0, #0
17cde: 4b49 ldr r3, [pc, #292] ; (17e04 <lv_theme_material_init+0x14f8>)
17ce0: 4798 blx r3
17ce2: 0083 lsls r3, r0, #2
17ce4: 181b adds r3, r3, r0
17ce6: 009b lsls r3, r3, #2
17ce8: 3350 adds r3, #80 ; 0x50
17cea: 2140 movs r1, #64 ; 0x40
17cec: 31ff adds r1, #255 ; 0xff
17cee: 2201 movs r2, #1
17cf0: 428b cmp r3, r1
17cf2: d901 bls.n 17cf8 <lv_theme_material_init+0x13ec>
17cf4: f000 feef bl 18ad6 <lv_theme_material_init+0x21ca>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
17cf8: 2110 movs r1, #16
17cfa: 0020 movs r0, r4
17cfc: 4b43 ldr r3, [pc, #268] ; (17e0c <lv_theme_material_init+0x1500>)
17cfe: 4798 blx r3
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
17d00: 4b43 ldr r3, [pc, #268] ; (17e10 <lv_theme_material_init+0x1504>)
17d02: 681c ldr r4, [r3, #0]
17d04: 34a4 adds r4, #164 ; 0xa4
17d06: 2000 movs r0, #0
17d08: 4b3e ldr r3, [pc, #248] ; (17e04 <lv_theme_material_init+0x14f8>)
17d0a: 4798 blx r3
17d0c: 0083 lsls r3, r0, #2
17d0e: 181b adds r3, r3, r0
17d10: 009b lsls r3, r3, #2
17d12: 3350 adds r3, #80 ; 0x50
17d14: 2140 movs r1, #64 ; 0x40
17d16: 31ff adds r1, #255 ; 0xff
17d18: 2201 movs r2, #1
17d1a: 428b cmp r3, r1
17d1c: d901 bls.n 17d22 <lv_theme_material_init+0x1416>
17d1e: f000 fee8 bl 18af2 <lv_theme_material_init+0x21e6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
17d22: 2111 movs r1, #17
17d24: 0020 movs r0, r4
17d26: 4b39 ldr r3, [pc, #228] ; (17e0c <lv_theme_material_init+0x1500>)
17d28: 4798 blx r3
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary);
17d2a: 4c39 ldr r4, [pc, #228] ; (17e10 <lv_theme_material_init+0x1504>)
17d2c: 6820 ldr r0, [r4, #0]
17d2e: 30a4 adds r0, #164 ; 0xa4
17d30: 4e39 ldr r6, [pc, #228] ; (17e18 <lv_theme_material_init+0x150c>)
17d32: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
17d34: 4945 ldr r1, [pc, #276] ; (17e4c <lv_theme_material_init+0x1540>)
17d36: 4d39 ldr r5, [pc, #228] ; (17e1c <lv_theme_material_init+0x1510>)
17d38: 47a8 blx r5
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary);
17d3a: 6820 ldr r0, [r4, #0]
17d3c: 30a4 adds r0, #164 ; 0xa4
17d3e: 88f2 ldrh r2, [r6, #6]
17d40: 4943 ldr r1, [pc, #268] ; (17e50 <lv_theme_material_init+0x1544>)
17d42: 47a8 blx r5
style_init_reset(&styles->tabview_indic);
17d44: 6820 ldr r0, [r4, #0]
17d46: 30ac adds r0, #172 ; 0xac
17d48: 4b2d ldr r3, [pc, #180] ; (17e00 <lv_theme_material_init+0x14f4>)
17d4a: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
17d4c: 6820 ldr r0, [r4, #0]
17d4e: 30ac adds r0, #172 ; 0xac
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
17d50: 22ff movs r2, #255 ; 0xff
17d52: 212c movs r1, #44 ; 0x2c
17d54: 4b2f ldr r3, [pc, #188] ; (17e14 <lv_theme_material_init+0x1508>)
17d56: 4798 blx r3
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary);
17d58: 6820 ldr r0, [r4, #0]
17d5a: 30ac adds r0, #172 ; 0xac
17d5c: 88b2 ldrh r2, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
17d5e: 2129 movs r1, #41 ; 0x29
17d60: 47a8 blx r5
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary);
17d62: 6820 ldr r0, [r4, #0]
17d64: 30ac adds r0, #172 ; 0xac
17d66: 88f2 ldrh r2, [r6, #6]
17d68: 493a ldr r1, [pc, #232] ; (17e54 <lv_theme_material_init+0x1548>)
17d6a: 47a8 blx r5
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
17d6c: 6824 ldr r4, [r4, #0]
17d6e: 34ac adds r4, #172 ; 0xac
17d70: 2000 movs r0, #0
17d72: 4b24 ldr r3, [pc, #144] ; (17e04 <lv_theme_material_init+0x14f8>)
17d74: 4798 blx r3
17d76: 0083 lsls r3, r0, #2
17d78: 1818 adds r0, r3, r0
17d7a: 3050 adds r0, #80 ; 0x50
17d7c: 2340 movs r3, #64 ; 0x40
17d7e: 33ff adds r3, #255 ; 0xff
17d80: 2201 movs r2, #1
17d82: 4298 cmp r0, r3
17d84: d901 bls.n 17d8a <lv_theme_material_init+0x147e>
17d86: f000 fec2 bl 18b0e <lv_theme_material_init+0x2202>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
17d8a: 2103 movs r1, #3
17d8c: 0020 movs r0, r4
17d8e: 4d1f ldr r5, [pc, #124] ; (17e0c <lv_theme_material_init+0x1500>)
17d90: 47a8 blx r5
lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
17d92: 4c1f ldr r4, [pc, #124] ; (17e10 <lv_theme_material_init+0x1504>)
17d94: 6820 ldr r0, [r4, #0]
17d96: 30ac adds r0, #172 ; 0xac
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
17d98: 4a2f ldr r2, [pc, #188] ; (17e58 <lv_theme_material_init+0x154c>)
17d9a: 2101 movs r1, #1
17d9c: 47a8 blx r5
style_init_reset(&styles->tabview_page_scrl);
17d9e: 6820 ldr r0, [r4, #0]
17da0: 30b0 adds r0, #176 ; 0xb0
17da2: 4b17 ldr r3, [pc, #92] ; (17e00 <lv_theme_material_init+0x14f4>)
17da4: 4798 blx r3
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
17da6: 6824 ldr r4, [r4, #0]
17da8: 34b0 adds r4, #176 ; 0xb0
17daa: 2000 movs r0, #0
17dac: 4b2b ldr r3, [pc, #172] ; (17e5c <lv_theme_material_init+0x1550>)
17dae: 4798 blx r3
17db0: 2801 cmp r0, #1
17db2: d801 bhi.n 17db8 <lv_theme_material_init+0x14ac>
17db4: f000 feb8 bl 18b28 <lv_theme_material_init+0x221c>
17db8: 2000 movs r0, #0
17dba: 4b12 ldr r3, [pc, #72] ; (17e04 <lv_theme_material_init+0x14f8>)
17dbc: 4798 blx r3
17dbe: 0103 lsls r3, r0, #4
17dc0: 1a1b subs r3, r3, r0
17dc2: 005b lsls r3, r3, #1
17dc4: 3350 adds r3, #80 ; 0x50
17dc6: 2140 movs r1, #64 ; 0x40
17dc8: 31ff adds r1, #255 ; 0xff
17dca: 2201 movs r2, #1
17dcc: 428b cmp r3, r1
17dce: d901 bls.n 17dd4 <lv_theme_material_init+0x14c8>
17dd0: f000 fec3 bl 18b5a <lv_theme_material_init+0x224e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
17dd4: 2110 movs r1, #16
17dd6: 0020 movs r0, r4
17dd8: 4b0c ldr r3, [pc, #48] ; (17e0c <lv_theme_material_init+0x1500>)
17dda: 4798 blx r3
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
17ddc: 4b0c ldr r3, [pc, #48] ; (17e10 <lv_theme_material_init+0x1504>)
17dde: 681c ldr r4, [r3, #0]
17de0: 34b0 adds r4, #176 ; 0xb0
17de2: 2000 movs r0, #0
17de4: 4b1d ldr r3, [pc, #116] ; (17e5c <lv_theme_material_init+0x1550>)
17de6: 4798 blx r3
17de8: 2801 cmp r0, #1
17dea: d801 bhi.n 17df0 <lv_theme_material_init+0x14e4>
17dec: f000 fec2 bl 18b74 <lv_theme_material_init+0x2268>
17df0: 2000 movs r0, #0
17df2: 4b04 ldr r3, [pc, #16] ; (17e04 <lv_theme_material_init+0x14f8>)
17df4: 4798 blx r3
17df6: 0103 lsls r3, r0, #4
17df8: e032 b.n 17e60 <lv_theme_material_init+0x1554>
17dfa: 46c0 nop ; (mov r8, r8)
17dfc: 00002004 .word 0x00002004
17e00: 00014911 .word 0x00014911
17e04: 00010dd1 .word 0x00010dd1
17e08: 00008081 .word 0x00008081
17e0c: 00005fad .word 0x00005fad
17e10: 20004c4c .word 0x20004c4c
17e14: 000062bd .word 0x000062bd
17e18: 20004c50 .word 0x20004c50
17e1c: 00006135 .word 0x00006135
17e20: 00008089 .word 0x00008089
17e24: 00001029 .word 0x00001029
17e28: 00009089 .word 0x00009089
17e2c: 0002ada0 .word 0x0002ada0
17e30: 0000808e .word 0x0000808e
17e34: 00006431 .word 0x00006431
17e38: 0002ad9e .word 0x0002ad9e
17e3c: 000080a9 .word 0x000080a9
17e40: 0000102c .word 0x0000102c
17e44: 0002ad9c .word 0x0002ad9c
17e48: 00008189 .word 0x00008189
17e4c: 00008289 .word 0x00008289
17e50: 00008489 .word 0x00008489
17e54: 00000429 .word 0x00000429
17e58: 00007fff .word 0x00007fff
17e5c: 00010ded .word 0x00010ded
17e60: 1a1b subs r3, r3, r0
17e62: 005b lsls r3, r3, #1
17e64: 3350 adds r3, #80 ; 0x50
17e66: 2140 movs r1, #64 ; 0x40
17e68: 31ff adds r1, #255 ; 0xff
17e6a: 2201 movs r2, #1
17e6c: 428b cmp r3, r1
17e6e: d901 bls.n 17e74 <lv_theme_material_init+0x1568>
17e70: f000 fe99 bl 18ba6 <lv_theme_material_init+0x229a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
17e74: 2111 movs r1, #17
17e76: 0020 movs r0, r4
17e78: 4bf2 ldr r3, [pc, #968] ; (18244 <lv_theme_material_init+0x1938>)
17e7a: 4798 blx r3
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
17e7c: 4bf2 ldr r3, [pc, #968] ; (18248 <lv_theme_material_init+0x193c>)
17e7e: 681c ldr r4, [r3, #0]
17e80: 34b0 adds r4, #176 ; 0xb0
17e82: 2000 movs r0, #0
17e84: 4bf1 ldr r3, [pc, #964] ; (1824c <lv_theme_material_init+0x1940>)
17e86: 4798 blx r3
17e88: 2801 cmp r0, #1
17e8a: d801 bhi.n 17e90 <lv_theme_material_init+0x1584>
17e8c: f000 fe98 bl 18bc0 <lv_theme_material_init+0x22b4>
17e90: 2000 movs r0, #0
17e92: 4bef ldr r3, [pc, #956] ; (18250 <lv_theme_material_init+0x1944>)
17e94: 4798 blx r3
17e96: 0103 lsls r3, r0, #4
17e98: 1a1b subs r3, r3, r0
17e9a: 005b lsls r3, r3, #1
17e9c: 3350 adds r3, #80 ; 0x50
17e9e: 2140 movs r1, #64 ; 0x40
17ea0: 31ff adds r1, #255 ; 0xff
17ea2: 2201 movs r2, #1
17ea4: 428b cmp r3, r1
17ea6: d901 bls.n 17eac <lv_theme_material_init+0x15a0>
17ea8: f000 fea3 bl 18bf2 <lv_theme_material_init+0x22e6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17eac: 2112 movs r1, #18
17eae: 0020 movs r0, r4
17eb0: 4be4 ldr r3, [pc, #912] ; (18244 <lv_theme_material_init+0x1938>)
17eb2: 4798 blx r3
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
17eb4: 4be4 ldr r3, [pc, #912] ; (18248 <lv_theme_material_init+0x193c>)
17eb6: 681c ldr r4, [r3, #0]
17eb8: 34b0 adds r4, #176 ; 0xb0
17eba: 2000 movs r0, #0
17ebc: 4be3 ldr r3, [pc, #908] ; (1824c <lv_theme_material_init+0x1940>)
17ebe: 4798 blx r3
17ec0: 2801 cmp r0, #1
17ec2: d801 bhi.n 17ec8 <lv_theme_material_init+0x15bc>
17ec4: f000 fea2 bl 18c0c <lv_theme_material_init+0x2300>
17ec8: 2000 movs r0, #0
17eca: 4be1 ldr r3, [pc, #900] ; (18250 <lv_theme_material_init+0x1944>)
17ecc: 4798 blx r3
17ece: 0103 lsls r3, r0, #4
17ed0: 1a1b subs r3, r3, r0
17ed2: 005b lsls r3, r3, #1
17ed4: 3350 adds r3, #80 ; 0x50
17ed6: 2140 movs r1, #64 ; 0x40
17ed8: 31ff adds r1, #255 ; 0xff
17eda: 2201 movs r2, #1
17edc: 428b cmp r3, r1
17ede: d901 bls.n 17ee4 <lv_theme_material_init+0x15d8>
17ee0: f000 fead bl 18c3e <lv_theme_material_init+0x2332>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17ee4: 2113 movs r1, #19
17ee6: 0020 movs r0, r4
17ee8: 4bd6 ldr r3, [pc, #856] ; (18244 <lv_theme_material_init+0x1938>)
17eea: 4798 blx r3
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
17eec: 4bd6 ldr r3, [pc, #856] ; (18248 <lv_theme_material_init+0x193c>)
17eee: 681c ldr r4, [r3, #0]
17ef0: 34b0 adds r4, #176 ; 0xb0
17ef2: 2000 movs r0, #0
17ef4: 4bd5 ldr r3, [pc, #852] ; (1824c <lv_theme_material_init+0x1940>)
17ef6: 4798 blx r3
17ef8: 2801 cmp r0, #1
17efa: d801 bhi.n 17f00 <lv_theme_material_init+0x15f4>
17efc: f000 feac bl 18c58 <lv_theme_material_init+0x234c>
17f00: 2000 movs r0, #0
17f02: 4bd3 ldr r3, [pc, #844] ; (18250 <lv_theme_material_init+0x1944>)
17f04: 4798 blx r3
17f06: 0103 lsls r3, r0, #4
17f08: 1a1b subs r3, r3, r0
17f0a: 005b lsls r3, r3, #1
17f0c: 3350 adds r3, #80 ; 0x50
17f0e: 2140 movs r1, #64 ; 0x40
17f10: 31ff adds r1, #255 ; 0xff
17f12: 2201 movs r2, #1
17f14: 428b cmp r3, r1
17f16: d901 bls.n 17f1c <lv_theme_material_init+0x1610>
17f18: f000 feb7 bl 18c8a <lv_theme_material_init+0x237e>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
17f1c: 2114 movs r1, #20
17f1e: 0020 movs r0, r4
17f20: 4bc8 ldr r3, [pc, #800] ; (18244 <lv_theme_material_init+0x1938>)
17f22: 4798 blx r3
style_init_reset(&styles->table_cell);
17f24: 4cc8 ldr r4, [pc, #800] ; (18248 <lv_theme_material_init+0x193c>)
17f26: 6820 ldr r0, [r4, #0]
17f28: 30a0 adds r0, #160 ; 0xa0
17f2a: 4bca ldr r3, [pc, #808] ; (18254 <lv_theme_material_init+0x1948>)
17f2c: 4798 blx r3
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
17f2e: 6820 ldr r0, [r4, #0]
17f30: 30a0 adds r0, #160 ; 0xa0
17f32: 4bc9 ldr r3, [pc, #804] ; (18258 <lv_theme_material_init+0x194c>)
17f34: 699b ldr r3, [r3, #24]
17f36: 079b lsls r3, r3, #30
17f38: d501 bpl.n 17f3e <lv_theme_material_init+0x1632>
17f3a: f000 feb3 bl 18ca4 <lv_theme_material_init+0x2398>
17f3e: 2310 movs r3, #16
17f40: 2122 movs r1, #34 ; 0x22
17f42: 2212 movs r2, #18
17f44: 0149 lsls r1, r1, #5
17f46: 02db lsls r3, r3, #11
17f48: 430a orrs r2, r1
17f4a: 431a orrs r2, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
17f4c: 2139 movs r1, #57 ; 0x39
17f4e: 4bc3 ldr r3, [pc, #780] ; (1825c <lv_theme_material_init+0x1950>)
17f50: 4798 blx r3
lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1);
17f52: 4cbd ldr r4, [pc, #756] ; (18248 <lv_theme_material_init+0x193c>)
17f54: 6820 ldr r0, [r4, #0]
17f56: 30a0 adds r0, #160 ; 0xa0
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
17f58: 2201 movs r2, #1
17f5a: 2130 movs r1, #48 ; 0x30
17f5c: 4db9 ldr r5, [pc, #740] ; (18244 <lv_theme_material_init+0x1938>)
17f5e: 47a8 blx r5
lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM);
17f60: 6820 ldr r0, [r4, #0]
17f62: 30a0 adds r0, #160 ; 0xa0
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
17f64: 2203 movs r2, #3
17f66: 2131 movs r1, #49 ; 0x31
17f68: 47a8 blx r5
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
17f6a: 6824 ldr r4, [r4, #0]
17f6c: 34a0 adds r4, #160 ; 0xa0
17f6e: 2000 movs r0, #0
17f70: 4bb6 ldr r3, [pc, #728] ; (1824c <lv_theme_material_init+0x1940>)
17f72: 4798 blx r3
17f74: 2801 cmp r0, #1
17f76: d801 bhi.n 17f7c <lv_theme_material_init+0x1670>
17f78: f000 fe99 bl 18cae <lv_theme_material_init+0x23a2>
17f7c: 2000 movs r0, #0
17f7e: 4bb4 ldr r3, [pc, #720] ; (18250 <lv_theme_material_init+0x1944>)
17f80: 4798 blx r3
17f82: 0103 lsls r3, r0, #4
17f84: 1a1b subs r3, r3, r0
17f86: 005b lsls r3, r3, #1
17f88: 3350 adds r3, #80 ; 0x50
17f8a: 2140 movs r1, #64 ; 0x40
17f8c: 31ff adds r1, #255 ; 0xff
17f8e: 2201 movs r2, #1
17f90: 428b cmp r3, r1
17f92: d901 bls.n 17f98 <lv_theme_material_init+0x168c>
17f94: f000 fea4 bl 18ce0 <lv_theme_material_init+0x23d4>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
17f98: 2112 movs r1, #18
17f9a: 0020 movs r0, r4
17f9c: 4ba9 ldr r3, [pc, #676] ; (18244 <lv_theme_material_init+0x1938>)
17f9e: 4798 blx r3
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
17fa0: 4ba9 ldr r3, [pc, #676] ; (18248 <lv_theme_material_init+0x193c>)
17fa2: 681c ldr r4, [r3, #0]
17fa4: 34a0 adds r4, #160 ; 0xa0
17fa6: 2000 movs r0, #0
17fa8: 4ba8 ldr r3, [pc, #672] ; (1824c <lv_theme_material_init+0x1940>)
17faa: 4798 blx r3
17fac: 2801 cmp r0, #1
17fae: d801 bhi.n 17fb4 <lv_theme_material_init+0x16a8>
17fb0: f000 fea3 bl 18cfa <lv_theme_material_init+0x23ee>
17fb4: 2000 movs r0, #0
17fb6: 4ba6 ldr r3, [pc, #664] ; (18250 <lv_theme_material_init+0x1944>)
17fb8: 4798 blx r3
17fba: 0103 lsls r3, r0, #4
17fbc: 1a1b subs r3, r3, r0
17fbe: 005b lsls r3, r3, #1
17fc0: 3350 adds r3, #80 ; 0x50
17fc2: 2140 movs r1, #64 ; 0x40
17fc4: 31ff adds r1, #255 ; 0xff
17fc6: 2201 movs r2, #1
17fc8: 428b cmp r3, r1
17fca: d901 bls.n 17fd0 <lv_theme_material_init+0x16c4>
17fcc: f000 feae bl 18d2c <lv_theme_material_init+0x2420>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
17fd0: 2113 movs r1, #19
17fd2: 0020 movs r0, r4
17fd4: 4b9b ldr r3, [pc, #620] ; (18244 <lv_theme_material_init+0x1938>)
17fd6: 4798 blx r3
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
17fd8: 4b9b ldr r3, [pc, #620] ; (18248 <lv_theme_material_init+0x193c>)
17fda: 681c ldr r4, [r3, #0]
17fdc: 34a0 adds r4, #160 ; 0xa0
17fde: 2000 movs r0, #0
17fe0: 4b9a ldr r3, [pc, #616] ; (1824c <lv_theme_material_init+0x1940>)
17fe2: 4798 blx r3
17fe4: 2801 cmp r0, #1
17fe6: d801 bhi.n 17fec <lv_theme_material_init+0x16e0>
17fe8: f000 fead bl 18d46 <lv_theme_material_init+0x243a>
17fec: 2000 movs r0, #0
17fee: 4b98 ldr r3, [pc, #608] ; (18250 <lv_theme_material_init+0x1944>)
17ff0: 4798 blx r3
17ff2: 0103 lsls r3, r0, #4
17ff4: 1a1b subs r3, r3, r0
17ff6: 005b lsls r3, r3, #1
17ff8: 3350 adds r3, #80 ; 0x50
17ffa: 2140 movs r1, #64 ; 0x40
17ffc: 31ff adds r1, #255 ; 0xff
17ffe: 2201 movs r2, #1
18000: 428b cmp r3, r1
18002: d901 bls.n 18008 <lv_theme_material_init+0x16fc>
18004: f000 feb8 bl 18d78 <lv_theme_material_init+0x246c>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
18008: 2110 movs r1, #16
1800a: 0020 movs r0, r4
1800c: 4b8d ldr r3, [pc, #564] ; (18244 <lv_theme_material_init+0x1938>)
1800e: 4798 blx r3
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
18010: 4b8d ldr r3, [pc, #564] ; (18248 <lv_theme_material_init+0x193c>)
18012: 681c ldr r4, [r3, #0]
18014: 34a0 adds r4, #160 ; 0xa0
18016: 2000 movs r0, #0
18018: 4b8c ldr r3, [pc, #560] ; (1824c <lv_theme_material_init+0x1940>)
1801a: 4798 blx r3
1801c: 2801 cmp r0, #1
1801e: d801 bhi.n 18024 <lv_theme_material_init+0x1718>
18020: f000 feb7 bl 18d92 <lv_theme_material_init+0x2486>
18024: 2000 movs r0, #0
18026: 4b8a ldr r3, [pc, #552] ; (18250 <lv_theme_material_init+0x1944>)
18028: 4798 blx r3
1802a: 0103 lsls r3, r0, #4
1802c: 1a1b subs r3, r3, r0
1802e: 005b lsls r3, r3, #1
18030: 3350 adds r3, #80 ; 0x50
18032: 2140 movs r1, #64 ; 0x40
18034: 31ff adds r1, #255 ; 0xff
18036: 2201 movs r2, #1
18038: 428b cmp r3, r1
1803a: d901 bls.n 18040 <lv_theme_material_init+0x1734>
1803c: f000 fec2 bl 18dc4 <lv_theme_material_init+0x24b8>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
18040: 2111 movs r1, #17
18042: 0020 movs r0, r4
18044: 4b7f ldr r3, [pc, #508] ; (18244 <lv_theme_material_init+0x1938>)
18046: 4798 blx r3
theme.apply_xcb = theme_apply;
18048: 4c83 ldr r4, [pc, #524] ; (18258 <lv_theme_material_init+0x194c>)
1804a: 4b85 ldr r3, [pc, #532] ; (18260 <lv_theme_material_init+0x1954>)
1804c: 6023 str r3, [r4, #0]
inited = true;
1804e: 2201 movs r2, #1
18050: 4b84 ldr r3, [pc, #528] ; (18264 <lv_theme_material_init+0x1958>)
18052: 701a strb r2, [r3, #0]
lv_obj_report_style_mod(NULL);
18054: 2000 movs r0, #0
18056: 4b84 ldr r3, [pc, #528] ; (18268 <lv_theme_material_init+0x195c>)
18058: 4798 blx r3
}
1805a: 0020 movs r0, r4
1805c: bc04 pop {r2}
1805e: 4690 mov r8, r2
18060: bdf0 pop {r4, r5, r6, r7, pc}
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
18062: 20bc movs r0, #188 ; 0xbc
18064: 4b81 ldr r3, [pc, #516] ; (1826c <lv_theme_material_init+0x1960>)
18066: 4798 blx r3
18068: 4b81 ldr r3, [pc, #516] ; (18270 <lv_theme_material_init+0x1964>)
1806a: 6018 str r0, [r3, #0]
styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles);
1806c: 4b76 ldr r3, [pc, #472] ; (18248 <lv_theme_material_init+0x193c>)
1806e: 6018 str r0, [r3, #0]
18070: f7fe fc59 bl 16926 <lv_theme_material_init+0x1a>
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
18074: 2315 movs r3, #21
18076: 212a movs r1, #42 ; 0x2a
18078: 2215 movs r2, #21
1807a: f7fe fc7f bl 1697c <lv_theme_material_init+0x70>
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
1807e: 2000 movs r0, #0
18080: 4b73 ldr r3, [pc, #460] ; (18250 <lv_theme_material_init+0x1944>)
18082: 4798 blx r3
18084: 3050 adds r0, #80 ; 0x50
18086: 21a0 movs r1, #160 ; 0xa0
18088: 4b7a ldr r3, [pc, #488] ; (18274 <lv_theme_material_init+0x1968>)
1808a: 4798 blx r3
1808c: b202 sxth r2, r0
1808e: f7fe fc8e bl 169ae <lv_theme_material_init+0xa2>
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
18092: 2000 movs r0, #0
18094: 4b6e ldr r3, [pc, #440] ; (18250 <lv_theme_material_init+0x1944>)
18096: 4798 blx r3
18098: 0003 movs r3, r0
1809a: 0080 lsls r0, r0, #2
1809c: 18c0 adds r0, r0, r3
1809e: 0040 lsls r0, r0, #1
180a0: 3050 adds r0, #80 ; 0x50
180a2: 21a0 movs r1, #160 ; 0xa0
180a4: 4b73 ldr r3, [pc, #460] ; (18274 <lv_theme_material_init+0x1968>)
180a6: 4798 blx r3
180a8: b202 sxth r2, r0
180aa: f7fe fc95 bl 169d8 <lv_theme_material_init+0xcc>
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
180ae: 2000 movs r0, #0
180b0: 4b67 ldr r3, [pc, #412] ; (18250 <lv_theme_material_init+0x1944>)
180b2: 4798 blx r3
180b4: 0003 movs r3, r0
180b6: 0080 lsls r0, r0, #2
180b8: 18c0 adds r0, r0, r3
180ba: 0040 lsls r0, r0, #1
180bc: 3050 adds r0, #80 ; 0x50
180be: 21a0 movs r1, #160 ; 0xa0
180c0: 4b6c ldr r3, [pc, #432] ; (18274 <lv_theme_material_init+0x1968>)
180c2: 4798 blx r3
180c4: b202 sxth r2, r0
180c6: f7fe fc9c bl 16a02 <lv_theme_material_init+0xf6>
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
180ca: 231a movs r3, #26
180cc: 2137 movs r1, #55 ; 0x37
180ce: 221c movs r2, #28
180d0: f7fe fca7 bl 16a22 <lv_theme_material_init+0x116>
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
180d4: 2000 movs r0, #0
180d6: 4b5e ldr r3, [pc, #376] ; (18250 <lv_theme_material_init+0x1944>)
180d8: 4798 blx r3
180da: 0003 movs r3, r0
180dc: 0040 lsls r0, r0, #1
180de: 18c0 adds r0, r0, r3
180e0: 3050 adds r0, #80 ; 0x50
180e2: 21a0 movs r1, #160 ; 0xa0
180e4: 4b63 ldr r3, [pc, #396] ; (18274 <lv_theme_material_init+0x1968>)
180e6: 4798 blx r3
180e8: b202 sxth r2, r0
180ea: f7fe fcb5 bl 16a58 <lv_theme_material_init+0x14c>
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
180ee: 2000 movs r0, #0
180f0: 4b57 ldr r3, [pc, #348] ; (18250 <lv_theme_material_init+0x1944>)
180f2: 4798 blx r3
180f4: 3014 adds r0, #20
180f6: 0080 lsls r0, r0, #2
180f8: 21a0 movs r1, #160 ; 0xa0
180fa: 4b5e ldr r3, [pc, #376] ; (18274 <lv_theme_material_init+0x1968>)
180fc: 4798 blx r3
180fe: b202 sxth r2, r0
18100: f7fe fcbd bl 16a7e <lv_theme_material_init+0x172>
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
18104: 2000 movs r0, #0
18106: 4b52 ldr r3, [pc, #328] ; (18250 <lv_theme_material_init+0x1944>)
18108: 4798 blx r3
1810a: 3028 adds r0, #40 ; 0x28
1810c: 0040 lsls r0, r0, #1
1810e: 21a0 movs r1, #160 ; 0xa0
18110: 4b58 ldr r3, [pc, #352] ; (18274 <lv_theme_material_init+0x1968>)
18112: 4798 blx r3
18114: b202 sxth r2, r0
18116: f7fe fcc5 bl 16aa4 <lv_theme_material_init+0x198>
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
1811a: 2000 movs r0, #0
1811c: 4b4c ldr r3, [pc, #304] ; (18250 <lv_theme_material_init+0x1944>)
1811e: 4798 blx r3
18120: 3050 adds r0, #80 ; 0x50
18122: 21a0 movs r1, #160 ; 0xa0
18124: 4b53 ldr r3, [pc, #332] ; (18274 <lv_theme_material_init+0x1968>)
18126: 4798 blx r3
18128: b202 sxth r2, r0
1812a: f7fe fccd bl 16ac8 <lv_theme_material_init+0x1bc>
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
1812e: 2000 movs r0, #0
18130: 4b47 ldr r3, [pc, #284] ; (18250 <lv_theme_material_init+0x1944>)
18132: 4798 blx r3
18134: 0103 lsls r3, r0, #4
18136: 1a18 subs r0, r3, r0
18138: 3050 adds r0, #80 ; 0x50
1813a: 2340 movs r3, #64 ; 0x40
1813c: 33ff adds r3, #255 ; 0xff
1813e: 2201 movs r2, #1
18140: 4298 cmp r0, r3
18142: d801 bhi.n 18148 <lv_theme_material_init+0x183c>
18144: f7fe fce0 bl 16b08 <lv_theme_material_init+0x1fc>
18148: 2000 movs r0, #0
1814a: 4b41 ldr r3, [pc, #260] ; (18250 <lv_theme_material_init+0x1944>)
1814c: 4798 blx r3
1814e: 0103 lsls r3, r0, #4
18150: 1a18 subs r0, r3, r0
18152: 3050 adds r0, #80 ; 0x50
18154: 21a0 movs r1, #160 ; 0xa0
18156: 4b47 ldr r3, [pc, #284] ; (18274 <lv_theme_material_init+0x1968>)
18158: 4798 blx r3
1815a: b202 sxth r2, r0
1815c: f7fe fcd4 bl 16b08 <lv_theme_material_init+0x1fc>
18160: 2000 movs r0, #0
18162: 4b3b ldr r3, [pc, #236] ; (18250 <lv_theme_material_init+0x1944>)
18164: 4798 blx r3
18166: 0103 lsls r3, r0, #4
18168: 1a18 subs r0, r3, r0
1816a: 0040 lsls r0, r0, #1
1816c: 3050 adds r0, #80 ; 0x50
1816e: 21a0 movs r1, #160 ; 0xa0
18170: 4b40 ldr r3, [pc, #256] ; (18274 <lv_theme_material_init+0x1968>)
18172: 4798 blx r3
18174: b202 sxth r2, r0
18176: f7fe fcc7 bl 16b08 <lv_theme_material_init+0x1fc>
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
1817a: 2000 movs r0, #0
1817c: 4b34 ldr r3, [pc, #208] ; (18250 <lv_theme_material_init+0x1944>)
1817e: 4798 blx r3
18180: 0103 lsls r3, r0, #4
18182: 1a18 subs r0, r3, r0
18184: 3050 adds r0, #80 ; 0x50
18186: 2340 movs r3, #64 ; 0x40
18188: 33ff adds r3, #255 ; 0xff
1818a: 2201 movs r2, #1
1818c: 4298 cmp r0, r3
1818e: d801 bhi.n 18194 <lv_theme_material_init+0x1888>
18190: f7fe fcd6 bl 16b40 <lv_theme_material_init+0x234>
18194: 2000 movs r0, #0
18196: 4b2e ldr r3, [pc, #184] ; (18250 <lv_theme_material_init+0x1944>)
18198: 4798 blx r3
1819a: 0103 lsls r3, r0, #4
1819c: 1a18 subs r0, r3, r0
1819e: 3050 adds r0, #80 ; 0x50
181a0: 21a0 movs r1, #160 ; 0xa0
181a2: 4b34 ldr r3, [pc, #208] ; (18274 <lv_theme_material_init+0x1968>)
181a4: 4798 blx r3
181a6: b202 sxth r2, r0
181a8: f7fe fcca bl 16b40 <lv_theme_material_init+0x234>
181ac: 2000 movs r0, #0
181ae: 4b28 ldr r3, [pc, #160] ; (18250 <lv_theme_material_init+0x1944>)
181b0: 4798 blx r3
181b2: 0103 lsls r3, r0, #4
181b4: 1a18 subs r0, r3, r0
181b6: 0040 lsls r0, r0, #1
181b8: 3050 adds r0, #80 ; 0x50
181ba: 21a0 movs r1, #160 ; 0xa0
181bc: 4b2d ldr r3, [pc, #180] ; (18274 <lv_theme_material_init+0x1968>)
181be: 4798 blx r3
181c0: b202 sxth r2, r0
181c2: f7fe fcbd bl 16b40 <lv_theme_material_init+0x234>
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
181c6: 2000 movs r0, #0
181c8: 4b21 ldr r3, [pc, #132] ; (18250 <lv_theme_material_init+0x1944>)
181ca: 4798 blx r3
181cc: 0103 lsls r3, r0, #4
181ce: 1a18 subs r0, r3, r0
181d0: 3050 adds r0, #80 ; 0x50
181d2: 2340 movs r3, #64 ; 0x40
181d4: 33ff adds r3, #255 ; 0xff
181d6: 2201 movs r2, #1
181d8: 4298 cmp r0, r3
181da: d801 bhi.n 181e0 <lv_theme_material_init+0x18d4>
181dc: f7fe fccc bl 16b78 <lv_theme_material_init+0x26c>
181e0: 2000 movs r0, #0
181e2: 4b1b ldr r3, [pc, #108] ; (18250 <lv_theme_material_init+0x1944>)
181e4: 4798 blx r3
181e6: 0103 lsls r3, r0, #4
181e8: 1a18 subs r0, r3, r0
181ea: 3050 adds r0, #80 ; 0x50
181ec: 21a0 movs r1, #160 ; 0xa0
181ee: 4b21 ldr r3, [pc, #132] ; (18274 <lv_theme_material_init+0x1968>)
181f0: 4798 blx r3
181f2: b202 sxth r2, r0
181f4: f7fe fcc0 bl 16b78 <lv_theme_material_init+0x26c>
181f8: 2000 movs r0, #0
181fa: 4b15 ldr r3, [pc, #84] ; (18250 <lv_theme_material_init+0x1944>)
181fc: 4798 blx r3
181fe: 0103 lsls r3, r0, #4
18200: 1a18 subs r0, r3, r0
18202: 0040 lsls r0, r0, #1
18204: 3050 adds r0, #80 ; 0x50
18206: 21a0 movs r1, #160 ; 0xa0
18208: 4b1a ldr r3, [pc, #104] ; (18274 <lv_theme_material_init+0x1968>)
1820a: 4798 blx r3
1820c: b202 sxth r2, r0
1820e: f7fe fcb3 bl 16b78 <lv_theme_material_init+0x26c>
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
18212: 2000 movs r0, #0
18214: 4b0e ldr r3, [pc, #56] ; (18250 <lv_theme_material_init+0x1944>)
18216: 4798 blx r3
18218: 0103 lsls r3, r0, #4
1821a: 1a18 subs r0, r3, r0
1821c: 3050 adds r0, #80 ; 0x50
1821e: 2340 movs r3, #64 ; 0x40
18220: 33ff adds r3, #255 ; 0xff
18222: 2201 movs r2, #1
18224: 4298 cmp r0, r3
18226: d801 bhi.n 1822c <lv_theme_material_init+0x1920>
18228: f7fe fcc2 bl 16bb0 <lv_theme_material_init+0x2a4>
1822c: 2000 movs r0, #0
1822e: 4b08 ldr r3, [pc, #32] ; (18250 <lv_theme_material_init+0x1944>)
18230: 4798 blx r3
18232: 0103 lsls r3, r0, #4
18234: 1a18 subs r0, r3, r0
18236: 3050 adds r0, #80 ; 0x50
18238: 21a0 movs r1, #160 ; 0xa0
1823a: 4b0e ldr r3, [pc, #56] ; (18274 <lv_theme_material_init+0x1968>)
1823c: 4798 blx r3
1823e: b202 sxth r2, r0
18240: f7fe fcb6 bl 16bb0 <lv_theme_material_init+0x2a4>
18244: 00005fad .word 0x00005fad
18248: 20004c4c .word 0x20004c4c
1824c: 00010ded .word 0x00010ded
18250: 00010dd1 .word 0x00010dd1
18254: 00014911 .word 0x00014911
18258: 20004c50 .word 0x20004c50
1825c: 00006135 .word 0x00006135
18260: 000140f5 .word 0x000140f5
18264: 20004c48 .word 0x20004c48
18268: 000031c1 .word 0x000031c1
1826c: 000122dd .word 0x000122dd
18270: 20004dd0 .word 0x20004dd0
18274: 0001c0a5 .word 0x0001c0a5
18278: 2000 movs r0, #0
1827a: 4bfc ldr r3, [pc, #1008] ; (1866c <lv_theme_material_init+0x1d60>)
1827c: 4798 blx r3
1827e: 0103 lsls r3, r0, #4
18280: 1a18 subs r0, r3, r0
18282: 0040 lsls r0, r0, #1
18284: 3050 adds r0, #80 ; 0x50
18286: 21a0 movs r1, #160 ; 0xa0
18288: 4bf9 ldr r3, [pc, #996] ; (18670 <lv_theme_material_init+0x1d64>)
1828a: 4798 blx r3
1828c: b202 sxth r2, r0
1828e: f7fe fc8f bl 16bb0 <lv_theme_material_init+0x2a4>
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
18292: 2222 movs r2, #34 ; 0x22
18294: 2311 movs r3, #17
18296: f7fe fc9a bl 16bce <lv_theme_material_init+0x2c2>
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
1829a: 2306 movs r3, #6
1829c: 2110 movs r1, #16
1829e: 2209 movs r2, #9
182a0: f7fe fcac bl 16bfc <lv_theme_material_init+0x2f0>
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
182a4: 2000 movs r0, #0
182a6: 4bf1 ldr r3, [pc, #964] ; (1866c <lv_theme_material_init+0x1d60>)
182a8: 4798 blx r3
182aa: 0103 lsls r3, r0, #4
182ac: 1a18 subs r0, r3, r0
182ae: 3050 adds r0, #80 ; 0x50
182b0: 2340 movs r3, #64 ; 0x40
182b2: 33ff adds r3, #255 ; 0xff
182b4: 2201 movs r2, #1
182b6: 4298 cmp r0, r3
182b8: d801 bhi.n 182be <lv_theme_material_init+0x19b2>
182ba: f7fe fcbe bl 16c3a <lv_theme_material_init+0x32e>
182be: 2000 movs r0, #0
182c0: 4bea ldr r3, [pc, #936] ; (1866c <lv_theme_material_init+0x1d60>)
182c2: 4798 blx r3
182c4: 0103 lsls r3, r0, #4
182c6: 1a18 subs r0, r3, r0
182c8: 3050 adds r0, #80 ; 0x50
182ca: 21a0 movs r1, #160 ; 0xa0
182cc: 4be8 ldr r3, [pc, #928] ; (18670 <lv_theme_material_init+0x1d64>)
182ce: 4798 blx r3
182d0: b202 sxth r2, r0
182d2: f7fe fcb2 bl 16c3a <lv_theme_material_init+0x32e>
182d6: 2000 movs r0, #0
182d8: 4be4 ldr r3, [pc, #912] ; (1866c <lv_theme_material_init+0x1d60>)
182da: 4798 blx r3
182dc: 0103 lsls r3, r0, #4
182de: 1a18 subs r0, r3, r0
182e0: 0040 lsls r0, r0, #1
182e2: 3050 adds r0, #80 ; 0x50
182e4: 21a0 movs r1, #160 ; 0xa0
182e6: 4be2 ldr r3, [pc, #904] ; (18670 <lv_theme_material_init+0x1d64>)
182e8: 4798 blx r3
182ea: b202 sxth r2, r0
182ec: f7fe fca5 bl 16c3a <lv_theme_material_init+0x32e>
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
182f0: 2000 movs r0, #0
182f2: 4bde ldr r3, [pc, #888] ; (1866c <lv_theme_material_init+0x1d60>)
182f4: 4798 blx r3
182f6: 0103 lsls r3, r0, #4
182f8: 1a18 subs r0, r3, r0
182fa: 3050 adds r0, #80 ; 0x50
182fc: 2340 movs r3, #64 ; 0x40
182fe: 33ff adds r3, #255 ; 0xff
18300: 2201 movs r2, #1
18302: 4298 cmp r0, r3
18304: d801 bhi.n 1830a <lv_theme_material_init+0x19fe>
18306: f7fe fcb4 bl 16c72 <lv_theme_material_init+0x366>
1830a: 2000 movs r0, #0
1830c: 4bd7 ldr r3, [pc, #860] ; (1866c <lv_theme_material_init+0x1d60>)
1830e: 4798 blx r3
18310: 0103 lsls r3, r0, #4
18312: 1a18 subs r0, r3, r0
18314: 3050 adds r0, #80 ; 0x50
18316: 21a0 movs r1, #160 ; 0xa0
18318: 4bd5 ldr r3, [pc, #852] ; (18670 <lv_theme_material_init+0x1d64>)
1831a: 4798 blx r3
1831c: b202 sxth r2, r0
1831e: f7fe fca8 bl 16c72 <lv_theme_material_init+0x366>
18322: 2000 movs r0, #0
18324: 4bd1 ldr r3, [pc, #836] ; (1866c <lv_theme_material_init+0x1d60>)
18326: 4798 blx r3
18328: 0103 lsls r3, r0, #4
1832a: 1a18 subs r0, r3, r0
1832c: 0040 lsls r0, r0, #1
1832e: 3050 adds r0, #80 ; 0x50
18330: 21a0 movs r1, #160 ; 0xa0
18332: 4bcf ldr r3, [pc, #828] ; (18670 <lv_theme_material_init+0x1d64>)
18334: 4798 blx r3
18336: b202 sxth r2, r0
18338: f7fe fc9b bl 16c72 <lv_theme_material_init+0x366>
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
1833c: 2000 movs r0, #0
1833e: 4bcb ldr r3, [pc, #812] ; (1866c <lv_theme_material_init+0x1d60>)
18340: 4798 blx r3
18342: 0103 lsls r3, r0, #4
18344: 1a18 subs r0, r3, r0
18346: 3050 adds r0, #80 ; 0x50
18348: 2340 movs r3, #64 ; 0x40
1834a: 33ff adds r3, #255 ; 0xff
1834c: 2201 movs r2, #1
1834e: 4298 cmp r0, r3
18350: d801 bhi.n 18356 <lv_theme_material_init+0x1a4a>
18352: f7fe fcaa bl 16caa <lv_theme_material_init+0x39e>
18356: 2000 movs r0, #0
18358: 4bc4 ldr r3, [pc, #784] ; (1866c <lv_theme_material_init+0x1d60>)
1835a: 4798 blx r3
1835c: 0103 lsls r3, r0, #4
1835e: 1a18 subs r0, r3, r0
18360: 3050 adds r0, #80 ; 0x50
18362: 21a0 movs r1, #160 ; 0xa0
18364: 4bc2 ldr r3, [pc, #776] ; (18670 <lv_theme_material_init+0x1d64>)
18366: 4798 blx r3
18368: b202 sxth r2, r0
1836a: f7fe fc9e bl 16caa <lv_theme_material_init+0x39e>
1836e: 2000 movs r0, #0
18370: 4bbe ldr r3, [pc, #760] ; (1866c <lv_theme_material_init+0x1d60>)
18372: 4798 blx r3
18374: 0103 lsls r3, r0, #4
18376: 1a18 subs r0, r3, r0
18378: 0040 lsls r0, r0, #1
1837a: 3050 adds r0, #80 ; 0x50
1837c: 21a0 movs r1, #160 ; 0xa0
1837e: 4bbc ldr r3, [pc, #752] ; (18670 <lv_theme_material_init+0x1d64>)
18380: 4798 blx r3
18382: b202 sxth r2, r0
18384: f7fe fc91 bl 16caa <lv_theme_material_init+0x39e>
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
18388: 2000 movs r0, #0
1838a: 4bb8 ldr r3, [pc, #736] ; (1866c <lv_theme_material_init+0x1d60>)
1838c: 4798 blx r3
1838e: 3014 adds r0, #20
18390: 0080 lsls r0, r0, #2
18392: 21a0 movs r1, #160 ; 0xa0
18394: 4bb6 ldr r3, [pc, #728] ; (18670 <lv_theme_material_init+0x1d64>)
18396: 4798 blx r3
18398: b202 sxth r2, r0
1839a: f7fe fc9d bl 16cd8 <lv_theme_material_init+0x3cc>
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1839e: 2306 movs r3, #6
183a0: 2110 movs r1, #16
183a2: 2209 movs r2, #9
183a4: f7fe fca8 bl 16cf8 <lv_theme_material_init+0x3ec>
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
183a8: 2219 movs r2, #25
183aa: 230c movs r3, #12
183ac: f7fe fd01 bl 16db2 <lv_theme_material_init+0x4a6>
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
183b0: 2000 movs r0, #0
183b2: 4bae ldr r3, [pc, #696] ; (1866c <lv_theme_material_init+0x1d60>)
183b4: 4798 blx r3
183b6: 0003 movs r3, r0
183b8: 0040 lsls r0, r0, #1
183ba: 18c0 adds r0, r0, r3
183bc: 3050 adds r0, #80 ; 0x50
183be: 21a0 movs r1, #160 ; 0xa0
183c0: 4bab ldr r3, [pc, #684] ; (18670 <lv_theme_material_init+0x1d64>)
183c2: 4798 blx r3
183c4: b202 sxth r2, r0
183c6: f7fe fd25 bl 16e14 <lv_theme_material_init+0x508>
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
183ca: 2000 movs r0, #0
183cc: 4ba7 ldr r3, [pc, #668] ; (1866c <lv_theme_material_init+0x1d60>)
183ce: 4798 blx r3
183d0: 0103 lsls r3, r0, #4
183d2: 1a18 subs r0, r3, r0
183d4: 3050 adds r0, #80 ; 0x50
183d6: 2340 movs r3, #64 ; 0x40
183d8: 33ff adds r3, #255 ; 0xff
183da: 2201 movs r2, #1
183dc: 4298 cmp r0, r3
183de: d801 bhi.n 183e4 <lv_theme_material_init+0x1ad8>
183e0: f7fe fd34 bl 16e4c <lv_theme_material_init+0x540>
183e4: 2000 movs r0, #0
183e6: 4ba1 ldr r3, [pc, #644] ; (1866c <lv_theme_material_init+0x1d60>)
183e8: 4798 blx r3
183ea: 0103 lsls r3, r0, #4
183ec: 1a18 subs r0, r3, r0
183ee: 3050 adds r0, #80 ; 0x50
183f0: 21a0 movs r1, #160 ; 0xa0
183f2: 4b9f ldr r3, [pc, #636] ; (18670 <lv_theme_material_init+0x1d64>)
183f4: 4798 blx r3
183f6: b202 sxth r2, r0
183f8: f7fe fd28 bl 16e4c <lv_theme_material_init+0x540>
183fc: 2000 movs r0, #0
183fe: 4b9b ldr r3, [pc, #620] ; (1866c <lv_theme_material_init+0x1d60>)
18400: 4798 blx r3
18402: 0103 lsls r3, r0, #4
18404: 1a18 subs r0, r3, r0
18406: 0040 lsls r0, r0, #1
18408: 3050 adds r0, #80 ; 0x50
1840a: 21a0 movs r1, #160 ; 0xa0
1840c: 4b98 ldr r3, [pc, #608] ; (18670 <lv_theme_material_init+0x1d64>)
1840e: 4798 blx r3
18410: b202 sxth r2, r0
18412: f7fe fd1b bl 16e4c <lv_theme_material_init+0x540>
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
18416: 2000 movs r0, #0
18418: 4b94 ldr r3, [pc, #592] ; (1866c <lv_theme_material_init+0x1d60>)
1841a: 4798 blx r3
1841c: 0103 lsls r3, r0, #4
1841e: 1a18 subs r0, r3, r0
18420: 3050 adds r0, #80 ; 0x50
18422: 2340 movs r3, #64 ; 0x40
18424: 33ff adds r3, #255 ; 0xff
18426: 2201 movs r2, #1
18428: 4298 cmp r0, r3
1842a: d801 bhi.n 18430 <lv_theme_material_init+0x1b24>
1842c: f7fe fd2a bl 16e84 <lv_theme_material_init+0x578>
18430: 2000 movs r0, #0
18432: 4b8e ldr r3, [pc, #568] ; (1866c <lv_theme_material_init+0x1d60>)
18434: 4798 blx r3
18436: 0103 lsls r3, r0, #4
18438: 1a18 subs r0, r3, r0
1843a: 3050 adds r0, #80 ; 0x50
1843c: 21a0 movs r1, #160 ; 0xa0
1843e: 4b8c ldr r3, [pc, #560] ; (18670 <lv_theme_material_init+0x1d64>)
18440: 4798 blx r3
18442: b202 sxth r2, r0
18444: f7fe fd1e bl 16e84 <lv_theme_material_init+0x578>
18448: 2000 movs r0, #0
1844a: 4b88 ldr r3, [pc, #544] ; (1866c <lv_theme_material_init+0x1d60>)
1844c: 4798 blx r3
1844e: 0103 lsls r3, r0, #4
18450: 1a18 subs r0, r3, r0
18452: 0040 lsls r0, r0, #1
18454: 3050 adds r0, #80 ; 0x50
18456: 21a0 movs r1, #160 ; 0xa0
18458: 4b85 ldr r3, [pc, #532] ; (18670 <lv_theme_material_init+0x1d64>)
1845a: 4798 blx r3
1845c: b202 sxth r2, r0
1845e: f7fe fd11 bl 16e84 <lv_theme_material_init+0x578>
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
18462: 2000 movs r0, #0
18464: 4b81 ldr r3, [pc, #516] ; (1866c <lv_theme_material_init+0x1d60>)
18466: 4798 blx r3
18468: 0103 lsls r3, r0, #4
1846a: 1a18 subs r0, r3, r0
1846c: 3050 adds r0, #80 ; 0x50
1846e: 2340 movs r3, #64 ; 0x40
18470: 33ff adds r3, #255 ; 0xff
18472: 2201 movs r2, #1
18474: 4298 cmp r0, r3
18476: d801 bhi.n 1847c <lv_theme_material_init+0x1b70>
18478: f7fe fd20 bl 16ebc <lv_theme_material_init+0x5b0>
1847c: 2000 movs r0, #0
1847e: 4b7b ldr r3, [pc, #492] ; (1866c <lv_theme_material_init+0x1d60>)
18480: 4798 blx r3
18482: 0103 lsls r3, r0, #4
18484: 1a18 subs r0, r3, r0
18486: 3050 adds r0, #80 ; 0x50
18488: 21a0 movs r1, #160 ; 0xa0
1848a: 4b79 ldr r3, [pc, #484] ; (18670 <lv_theme_material_init+0x1d64>)
1848c: 4798 blx r3
1848e: b202 sxth r2, r0
18490: f7fe fd14 bl 16ebc <lv_theme_material_init+0x5b0>
18494: 2000 movs r0, #0
18496: 4b75 ldr r3, [pc, #468] ; (1866c <lv_theme_material_init+0x1d60>)
18498: 4798 blx r3
1849a: 0103 lsls r3, r0, #4
1849c: 1a18 subs r0, r3, r0
1849e: 0040 lsls r0, r0, #1
184a0: 3050 adds r0, #80 ; 0x50
184a2: 21a0 movs r1, #160 ; 0xa0
184a4: 4b72 ldr r3, [pc, #456] ; (18670 <lv_theme_material_init+0x1d64>)
184a6: 4798 blx r3
184a8: b202 sxth r2, r0
184aa: f7fe fd07 bl 16ebc <lv_theme_material_init+0x5b0>
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
184ae: 2000 movs r0, #0
184b0: 4b6e ldr r3, [pc, #440] ; (1866c <lv_theme_material_init+0x1d60>)
184b2: 4798 blx r3
184b4: 0103 lsls r3, r0, #4
184b6: 1a18 subs r0, r3, r0
184b8: 0040 lsls r0, r0, #1
184ba: 3050 adds r0, #80 ; 0x50
184bc: 21a0 movs r1, #160 ; 0xa0
184be: 4b6c ldr r3, [pc, #432] ; (18670 <lv_theme_material_init+0x1d64>)
184c0: 4798 blx r3
184c2: b202 sxth r2, r0
184c4: f7fe fd13 bl 16eee <lv_theme_material_init+0x5e2>
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
184c8: 231d movs r3, #29
184ca: 213b movs r1, #59 ; 0x3b
184cc: 221e movs r2, #30
184ce: f7fe fd24 bl 16f1a <lv_theme_material_init+0x60e>
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
184d2: 2000 movs r0, #0
184d4: 4b65 ldr r3, [pc, #404] ; (1866c <lv_theme_material_init+0x1d60>)
184d6: 4798 blx r3
184d8: 0003 movs r3, r0
184da: 0080 lsls r0, r0, #2
184dc: 18c0 adds r0, r0, r3
184de: 0080 lsls r0, r0, #2
184e0: 3050 adds r0, #80 ; 0x50
184e2: 21a0 movs r1, #160 ; 0xa0
184e4: 4b62 ldr r3, [pc, #392] ; (18670 <lv_theme_material_init+0x1d64>)
184e6: 4798 blx r3
184e8: b202 sxth r2, r0
184ea: f7fe fd2e bl 16f4a <lv_theme_material_init+0x63e>
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
184ee: 2000 movs r0, #0
184f0: 4b5e ldr r3, [pc, #376] ; (1866c <lv_theme_material_init+0x1d60>)
184f2: 4798 blx r3
184f4: 0003 movs r3, r0
184f6: 0040 lsls r0, r0, #1
184f8: 18c0 adds r0, r0, r3
184fa: 0080 lsls r0, r0, #2
184fc: 18c0 adds r0, r0, r3
184fe: 3050 adds r0, #80 ; 0x50
18500: 21a0 movs r1, #160 ; 0xa0
18502: 4b5b ldr r3, [pc, #364] ; (18670 <lv_theme_material_init+0x1d64>)
18504: 4798 blx r3
18506: b202 sxth r2, r0
18508: f7fe fd67 bl 16fda <lv_theme_material_init+0x6ce>
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
1850c: 2000 movs r0, #0
1850e: 4b57 ldr r3, [pc, #348] ; (1866c <lv_theme_material_init+0x1d60>)
18510: 4798 blx r3
18512: 0003 movs r3, r0
18514: 0040 lsls r0, r0, #1
18516: 18c0 adds r0, r0, r3
18518: 0080 lsls r0, r0, #2
1851a: 18c0 adds r0, r0, r3
1851c: 3050 adds r0, #80 ; 0x50
1851e: 21a0 movs r1, #160 ; 0xa0
18520: 4b53 ldr r3, [pc, #332] ; (18670 <lv_theme_material_init+0x1d64>)
18522: 4798 blx r3
18524: b202 sxth r2, r0
18526: f7fe fd6f bl 17008 <lv_theme_material_init+0x6fc>
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
1852a: 2000 movs r0, #0
1852c: 4b4f ldr r3, [pc, #316] ; (1866c <lv_theme_material_init+0x1d60>)
1852e: 4798 blx r3
18530: 0003 movs r3, r0
18532: 0040 lsls r0, r0, #1
18534: 18c0 adds r0, r0, r3
18536: 0080 lsls r0, r0, #2
18538: 18c0 adds r0, r0, r3
1853a: 3050 adds r0, #80 ; 0x50
1853c: 21a0 movs r1, #160 ; 0xa0
1853e: 4b4c ldr r3, [pc, #304] ; (18670 <lv_theme_material_init+0x1d64>)
18540: 4798 blx r3
18542: b202 sxth r2, r0
18544: f7fe fd77 bl 17036 <lv_theme_material_init+0x72a>
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
18548: 2000 movs r0, #0
1854a: 4b48 ldr r3, [pc, #288] ; (1866c <lv_theme_material_init+0x1d60>)
1854c: 4798 blx r3
1854e: 0003 movs r3, r0
18550: 0040 lsls r0, r0, #1
18552: 18c0 adds r0, r0, r3
18554: 0080 lsls r0, r0, #2
18556: 18c0 adds r0, r0, r3
18558: 3050 adds r0, #80 ; 0x50
1855a: 21a0 movs r1, #160 ; 0xa0
1855c: 4b44 ldr r3, [pc, #272] ; (18670 <lv_theme_material_init+0x1d64>)
1855e: 4798 blx r3
18560: b202 sxth r2, r0
18562: f7fe fd7f bl 17064 <lv_theme_material_init+0x758>
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
18566: 2000 movs r0, #0
18568: 4b40 ldr r3, [pc, #256] ; (1866c <lv_theme_material_init+0x1d60>)
1856a: 4798 blx r3
1856c: 3014 adds r0, #20
1856e: 0080 lsls r0, r0, #2
18570: 21a0 movs r1, #160 ; 0xa0
18572: 4b3f ldr r3, [pc, #252] ; (18670 <lv_theme_material_init+0x1d64>)
18574: 4798 blx r3
18576: b202 sxth r2, r0
18578: f7fe fd8b bl 17092 <lv_theme_material_init+0x786>
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
1857c: 2000 movs r0, #0
1857e: 4b3b ldr r3, [pc, #236] ; (1866c <lv_theme_material_init+0x1d60>)
18580: 4798 blx r3
18582: 0003 movs r3, r0
18584: 0080 lsls r0, r0, #2
18586: 18c0 adds r0, r0, r3
18588: 0040 lsls r0, r0, #1
1858a: 3050 adds r0, #80 ; 0x50
1858c: 21a0 movs r1, #160 ; 0xa0
1858e: 4b38 ldr r3, [pc, #224] ; (18670 <lv_theme_material_init+0x1d64>)
18590: 4798 blx r3
18592: b202 sxth r2, r0
18594: f7fe fd92 bl 170bc <lv_theme_material_init+0x7b0>
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
18598: 2000 movs r0, #0
1859a: 4b34 ldr r3, [pc, #208] ; (1866c <lv_theme_material_init+0x1d60>)
1859c: 4798 blx r3
1859e: 0003 movs r3, r0
185a0: 0040 lsls r0, r0, #1
185a2: 18c0 adds r0, r0, r3
185a4: 3050 adds r0, #80 ; 0x50
185a6: 21a0 movs r1, #160 ; 0xa0
185a8: 4b31 ldr r3, [pc, #196] ; (18670 <lv_theme_material_init+0x1d64>)
185aa: 4798 blx r3
185ac: b202 sxth r2, r0
185ae: f7fe fdac bl 1710a <lv_theme_material_init+0x7fe>
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
185b2: 2000 movs r0, #0
185b4: 4b2d ldr r3, [pc, #180] ; (1866c <lv_theme_material_init+0x1d60>)
185b6: 4798 blx r3
185b8: 0003 movs r3, r0
185ba: 0080 lsls r0, r0, #2
185bc: 18c0 adds r0, r0, r3
185be: 0040 lsls r0, r0, #1
185c0: 3050 adds r0, #80 ; 0x50
185c2: 21a0 movs r1, #160 ; 0xa0
185c4: 4b2a ldr r3, [pc, #168] ; (18670 <lv_theme_material_init+0x1d64>)
185c6: 4798 blx r3
185c8: b202 sxth r2, r0
185ca: f7fe fdb3 bl 17134 <lv_theme_material_init+0x828>
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
185ce: 2000 movs r0, #0
185d0: 4b26 ldr r3, [pc, #152] ; (1866c <lv_theme_material_init+0x1d60>)
185d2: 4798 blx r3
185d4: 3014 adds r0, #20
185d6: 0080 lsls r0, r0, #2
185d8: 21a0 movs r1, #160 ; 0xa0
185da: 4b25 ldr r3, [pc, #148] ; (18670 <lv_theme_material_init+0x1d64>)
185dc: 4798 blx r3
185de: b202 sxth r2, r0
185e0: f7fe fdf0 bl 171c4 <lv_theme_material_init+0x8b8>
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
185e4: 2000 movs r0, #0
185e6: 4b21 ldr r3, [pc, #132] ; (1866c <lv_theme_material_init+0x1d60>)
185e8: 4798 blx r3
185ea: 0003 movs r3, r0
185ec: 0040 lsls r0, r0, #1
185ee: 18c0 adds r0, r0, r3
185f0: 3050 adds r0, #80 ; 0x50
185f2: 21a0 movs r1, #160 ; 0xa0
185f4: 4b1e ldr r3, [pc, #120] ; (18670 <lv_theme_material_init+0x1d64>)
185f6: 4798 blx r3
185f8: b202 sxth r2, r0
185fa: f7fe fe0c bl 17216 <lv_theme_material_init+0x90a>
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
185fe: 2000 movs r0, #0
18600: 4b1a ldr r3, [pc, #104] ; (1866c <lv_theme_material_init+0x1d60>)
18602: 4798 blx r3
18604: 0003 movs r3, r0
18606: 0040 lsls r0, r0, #1
18608: 18c0 adds r0, r0, r3
1860a: 3050 adds r0, #80 ; 0x50
1860c: 21a0 movs r1, #160 ; 0xa0
1860e: 4b18 ldr r3, [pc, #96] ; (18670 <lv_theme_material_init+0x1d64>)
18610: 4798 blx r3
18612: b202 sxth r2, r0
18614: f7fe fe13 bl 1723e <lv_theme_material_init+0x932>
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
18618: 2000 movs r0, #0
1861a: 4b14 ldr r3, [pc, #80] ; (1866c <lv_theme_material_init+0x1d60>)
1861c: 4798 blx r3
1861e: 0003 movs r3, r0
18620: 0040 lsls r0, r0, #1
18622: 18c0 adds r0, r0, r3
18624: 3050 adds r0, #80 ; 0x50
18626: 21a0 movs r1, #160 ; 0xa0
18628: 4b11 ldr r3, [pc, #68] ; (18670 <lv_theme_material_init+0x1d64>)
1862a: 4798 blx r3
1862c: b202 sxth r2, r0
1862e: f7fe fe1a bl 17266 <lv_theme_material_init+0x95a>
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
18632: 2000 movs r0, #0
18634: 4b0d ldr r3, [pc, #52] ; (1866c <lv_theme_material_init+0x1d60>)
18636: 4798 blx r3
18638: 0003 movs r3, r0
1863a: 0040 lsls r0, r0, #1
1863c: 18c0 adds r0, r0, r3
1863e: 3050 adds r0, #80 ; 0x50
18640: 21a0 movs r1, #160 ; 0xa0
18642: 4b0b ldr r3, [pc, #44] ; (18670 <lv_theme_material_init+0x1d64>)
18644: 4798 blx r3
18646: b202 sxth r2, r0
18648: f7fe fe21 bl 1728e <lv_theme_material_init+0x982>
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
1864c: 2000 movs r0, #0
1864e: 4b07 ldr r3, [pc, #28] ; (1866c <lv_theme_material_init+0x1d60>)
18650: 4798 blx r3
18652: 3014 adds r0, #20
18654: 0080 lsls r0, r0, #2
18656: 21a0 movs r1, #160 ; 0xa0
18658: 4b05 ldr r3, [pc, #20] ; (18670 <lv_theme_material_init+0x1d64>)
1865a: 4798 blx r3
1865c: b202 sxth r2, r0
1865e: f7fe fe32 bl 172c6 <lv_theme_material_init+0x9ba>
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
18662: 2307 movs r3, #7
18664: 210f movs r1, #15
18666: 2208 movs r2, #8
18668: f7fe fe42 bl 172f0 <lv_theme_material_init+0x9e4>
1866c: 00010dd1 .word 0x00010dd1
18670: 0001c0a5 .word 0x0001c0a5
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
18674: 2000 movs r0, #0
18676: 4bf8 ldr r3, [pc, #992] ; (18a58 <lv_theme_material_init+0x214c>)
18678: 4798 blx r3
1867a: 0003 movs r3, r0
1867c: 0080 lsls r0, r0, #2
1867e: 18c0 adds r0, r0, r3
18680: 3050 adds r0, #80 ; 0x50
18682: 21a0 movs r1, #160 ; 0xa0
18684: 4bf5 ldr r3, [pc, #980] ; (18a5c <lv_theme_material_init+0x2150>)
18686: 4798 blx r3
18688: b202 sxth r2, r0
1868a: f7fe fe4e bl 1732a <lv_theme_material_init+0xa1e>
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
1868e: 2000 movs r0, #0
18690: 4bf1 ldr r3, [pc, #964] ; (18a58 <lv_theme_material_init+0x214c>)
18692: 4798 blx r3
18694: 0003 movs r3, r0
18696: 0080 lsls r0, r0, #2
18698: 18c0 adds r0, r0, r3
1869a: 3050 adds r0, #80 ; 0x50
1869c: 21a0 movs r1, #160 ; 0xa0
1869e: 4bef ldr r3, [pc, #956] ; (18a5c <lv_theme_material_init+0x2150>)
186a0: 4798 blx r3
186a2: b202 sxth r2, r0
186a4: f7fe fe55 bl 17352 <lv_theme_material_init+0xa46>
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
186a8: 2000 movs r0, #0
186aa: 4beb ldr r3, [pc, #940] ; (18a58 <lv_theme_material_init+0x214c>)
186ac: 4798 blx r3
186ae: 0003 movs r3, r0
186b0: 0080 lsls r0, r0, #2
186b2: 18c0 adds r0, r0, r3
186b4: 3050 adds r0, #80 ; 0x50
186b6: 21a0 movs r1, #160 ; 0xa0
186b8: 4be8 ldr r3, [pc, #928] ; (18a5c <lv_theme_material_init+0x2150>)
186ba: 4798 blx r3
186bc: b202 sxth r2, r0
186be: f7fe fe5c bl 1737a <lv_theme_material_init+0xa6e>
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
186c2: 2000 movs r0, #0
186c4: 4be4 ldr r3, [pc, #912] ; (18a58 <lv_theme_material_init+0x214c>)
186c6: 4798 blx r3
186c8: 0003 movs r3, r0
186ca: 0080 lsls r0, r0, #2
186cc: 18c0 adds r0, r0, r3
186ce: 3050 adds r0, #80 ; 0x50
186d0: 21a0 movs r1, #160 ; 0xa0
186d2: 4be2 ldr r3, [pc, #904] ; (18a5c <lv_theme_material_init+0x2150>)
186d4: 4798 blx r3
186d6: b202 sxth r2, r0
186d8: f7fe fe63 bl 173a2 <lv_theme_material_init+0xa96>
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
186dc: 2000 movs r0, #0
186de: 4bde ldr r3, [pc, #888] ; (18a58 <lv_theme_material_init+0x214c>)
186e0: 4798 blx r3
186e2: 0003 movs r3, r0
186e4: 0040 lsls r0, r0, #1
186e6: 18c0 adds r0, r0, r3
186e8: 3050 adds r0, #80 ; 0x50
186ea: 21a0 movs r1, #160 ; 0xa0
186ec: 4bdb ldr r3, [pc, #876] ; (18a5c <lv_theme_material_init+0x2150>)
186ee: 4798 blx r3
186f0: b202 sxth r2, r0
186f2: f7fe fe6a bl 173ca <lv_theme_material_init+0xabe>
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
186f6: 2000 movs r0, #0
186f8: 4bd7 ldr r3, [pc, #860] ; (18a58 <lv_theme_material_init+0x214c>)
186fa: 4798 blx r3
186fc: 0003 movs r3, r0
186fe: 2032 movs r0, #50 ; 0x32
18700: 4358 muls r0, r3
18702: 3050 adds r0, #80 ; 0x50
18704: 21a0 movs r1, #160 ; 0xa0
18706: 4bd5 ldr r3, [pc, #852] ; (18a5c <lv_theme_material_init+0x2150>)
18708: 4798 blx r3
1870a: b202 sxth r2, r0
1870c: f7fe fe75 bl 173fa <lv_theme_material_init+0xaee>
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
18710: 2226 movs r2, #38 ; 0x26
18712: 2313 movs r3, #19
18714: f7fe fe80 bl 17418 <lv_theme_material_init+0xb0c>
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
18718: 2319 movs r3, #25
1871a: 2133 movs r1, #51 ; 0x33
1871c: 221a movs r2, #26
1871e: f7fe fe98 bl 17452 <lv_theme_material_init+0xb46>
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
18722: 2000 movs r0, #0
18724: 4bcc ldr r3, [pc, #816] ; (18a58 <lv_theme_material_init+0x214c>)
18726: 4798 blx r3
18728: 00c3 lsls r3, r0, #3
1872a: 1a18 subs r0, r3, r0
1872c: 3050 adds r0, #80 ; 0x50
1872e: 21a0 movs r1, #160 ; 0xa0
18730: 4bca ldr r3, [pc, #808] ; (18a5c <lv_theme_material_init+0x2150>)
18732: 4798 blx r3
18734: b202 sxth r2, r0
18736: f7fe fea9 bl 1748c <lv_theme_material_init+0xb80>
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
1873a: 2000 movs r0, #0
1873c: 4bc6 ldr r3, [pc, #792] ; (18a58 <lv_theme_material_init+0x214c>)
1873e: 4798 blx r3
18740: 00c3 lsls r3, r0, #3
18742: 1a18 subs r0, r3, r0
18744: 3050 adds r0, #80 ; 0x50
18746: 21a0 movs r1, #160 ; 0xa0
18748: 4bc4 ldr r3, [pc, #784] ; (18a5c <lv_theme_material_init+0x2150>)
1874a: 4798 blx r3
1874c: b202 sxth r2, r0
1874e: f7fe feb1 bl 174b4 <lv_theme_material_init+0xba8>
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
18752: 2000 movs r0, #0
18754: 4bc0 ldr r3, [pc, #768] ; (18a58 <lv_theme_material_init+0x214c>)
18756: 4798 blx r3
18758: 00c3 lsls r3, r0, #3
1875a: 1a18 subs r0, r3, r0
1875c: 3050 adds r0, #80 ; 0x50
1875e: 21a0 movs r1, #160 ; 0xa0
18760: 4bbe ldr r3, [pc, #760] ; (18a5c <lv_theme_material_init+0x2150>)
18762: 4798 blx r3
18764: b202 sxth r2, r0
18766: f7fe feb9 bl 174dc <lv_theme_material_init+0xbd0>
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
1876a: 2306 movs r3, #6
1876c: 2110 movs r1, #16
1876e: 2209 movs r2, #9
18770: f7fe fed8 bl 17524 <lv_theme_material_init+0xc18>
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
18774: 2000 movs r0, #0
18776: 4bb8 ldr r3, [pc, #736] ; (18a58 <lv_theme_material_init+0x214c>)
18778: 4798 blx r3
1877a: 3028 adds r0, #40 ; 0x28
1877c: 0040 lsls r0, r0, #1
1877e: 21a0 movs r1, #160 ; 0xa0
18780: 4bb6 ldr r3, [pc, #728] ; (18a5c <lv_theme_material_init+0x2150>)
18782: 4798 blx r3
18784: b202 sxth r2, r0
18786: f7fe fee3 bl 17550 <lv_theme_material_init+0xc44>
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
1878a: 2000 movs r0, #0
1878c: 4bb2 ldr r3, [pc, #712] ; (18a58 <lv_theme_material_init+0x214c>)
1878e: 4798 blx r3
18790: 3050 adds r0, #80 ; 0x50
18792: 21a0 movs r1, #160 ; 0xa0
18794: 4bb1 ldr r3, [pc, #708] ; (18a5c <lv_theme_material_init+0x2150>)
18796: 4798 blx r3
18798: b202 sxth r2, r0
1879a: f7fe feeb bl 17574 <lv_theme_material_init+0xc68>
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
1879e: 2315 movs r3, #21
187a0: 212a movs r1, #42 ; 0x2a
187a2: 2215 movs r2, #21
187a4: f7fe ff1d bl 175e2 <lv_theme_material_init+0xcd6>
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
187a8: 2000 movs r0, #0
187aa: 4bab ldr r3, [pc, #684] ; (18a58 <lv_theme_material_init+0x214c>)
187ac: 4798 blx r3
187ae: 0003 movs r3, r0
187b0: 2064 movs r0, #100 ; 0x64
187b2: 4358 muls r0, r3
187b4: 3050 adds r0, #80 ; 0x50
187b6: 21a0 movs r1, #160 ; 0xa0
187b8: 4ba8 ldr r3, [pc, #672] ; (18a5c <lv_theme_material_init+0x2150>)
187ba: 4798 blx r3
187bc: b202 sxth r2, r0
187be: f7fe ff3e bl 1763e <lv_theme_material_init+0xd32>
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
187c2: 2000 movs r0, #0
187c4: 4ba4 ldr r3, [pc, #656] ; (18a58 <lv_theme_material_init+0x214c>)
187c6: 4798 blx r3
187c8: 0003 movs r3, r0
187ca: 2064 movs r0, #100 ; 0x64
187cc: 4358 muls r0, r3
187ce: 3050 adds r0, #80 ; 0x50
187d0: 21a0 movs r1, #160 ; 0xa0
187d2: 4ba2 ldr r3, [pc, #648] ; (18a5c <lv_theme_material_init+0x2150>)
187d4: 4798 blx r3
187d6: b202 sxth r2, r0
187d8: f7fe ff45 bl 17666 <lv_theme_material_init+0xd5a>
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
187dc: 231f movs r3, #31
187de: 213f movs r1, #63 ; 0x3f
187e0: 221f movs r2, #31
187e2: f7fe ff7b bl 176dc <lv_theme_material_init+0xdd0>
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
187e6: 231d movs r3, #29
187e8: 213b movs r1, #59 ; 0x3b
187ea: 221d movs r2, #29
187ec: f7fe ff89 bl 17702 <lv_theme_material_init+0xdf6>
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
187f0: 231f movs r3, #31
187f2: 213f movs r1, #63 ; 0x3f
187f4: 221f movs r2, #31
187f6: f7fe ff97 bl 17728 <lv_theme_material_init+0xe1c>
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
187fa: 2307 movs r3, #7
187fc: 210f movs r1, #15
187fe: 2208 movs r2, #8
18800: f7fe ffb5 bl 1776e <lv_theme_material_init+0xe62>
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
18804: 222a movs r2, #42 ; 0x2a
18806: 2315 movs r3, #21
18808: f7fe ffc9 bl 1779e <lv_theme_material_init+0xe92>
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
1880c: 2307 movs r3, #7
1880e: 210f movs r1, #15
18810: 2208 movs r2, #8
18812: f7fe ffd7 bl 177c4 <lv_theme_material_init+0xeb8>
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
18816: 222a movs r2, #42 ; 0x2a
18818: 2315 movs r3, #21
1881a: f7fe ffeb bl 177f4 <lv_theme_material_init+0xee8>
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
1881e: 231a movs r3, #26
18820: 2137 movs r1, #55 ; 0x37
18822: 221c movs r2, #28
18824: f7fe ffff bl 17826 <lv_theme_material_init+0xf1a>
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
18828: 2000 movs r0, #0
1882a: 4b8b ldr r3, [pc, #556] ; (18a58 <lv_theme_material_init+0x214c>)
1882c: 4798 blx r3
1882e: 0103 lsls r3, r0, #4
18830: 1a18 subs r0, r3, r0
18832: 3050 adds r0, #80 ; 0x50
18834: 2340 movs r3, #64 ; 0x40
18836: 33ff adds r3, #255 ; 0xff
18838: 2201 movs r2, #1
1883a: 4298 cmp r0, r3
1883c: d801 bhi.n 18842 <lv_theme_material_init+0x1f36>
1883e: f7ff f81d bl 1787c <lv_theme_material_init+0xf70>
18842: 2000 movs r0, #0
18844: 4b84 ldr r3, [pc, #528] ; (18a58 <lv_theme_material_init+0x214c>)
18846: 4798 blx r3
18848: 0103 lsls r3, r0, #4
1884a: 1a18 subs r0, r3, r0
1884c: 3050 adds r0, #80 ; 0x50
1884e: 21a0 movs r1, #160 ; 0xa0
18850: 4b82 ldr r3, [pc, #520] ; (18a5c <lv_theme_material_init+0x2150>)
18852: 4798 blx r3
18854: b202 sxth r2, r0
18856: f7ff f811 bl 1787c <lv_theme_material_init+0xf70>
1885a: 2000 movs r0, #0
1885c: 4b7e ldr r3, [pc, #504] ; (18a58 <lv_theme_material_init+0x214c>)
1885e: 4798 blx r3
18860: 0103 lsls r3, r0, #4
18862: 1a18 subs r0, r3, r0
18864: 0040 lsls r0, r0, #1
18866: 3050 adds r0, #80 ; 0x50
18868: 21a0 movs r1, #160 ; 0xa0
1886a: 4b7c ldr r3, [pc, #496] ; (18a5c <lv_theme_material_init+0x2150>)
1886c: 4798 blx r3
1886e: b202 sxth r2, r0
18870: f7ff f804 bl 1787c <lv_theme_material_init+0xf70>
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
18874: 2000 movs r0, #0
18876: 4b78 ldr r3, [pc, #480] ; (18a58 <lv_theme_material_init+0x214c>)
18878: 4798 blx r3
1887a: 0103 lsls r3, r0, #4
1887c: 1a18 subs r0, r3, r0
1887e: 3050 adds r0, #80 ; 0x50
18880: 2340 movs r3, #64 ; 0x40
18882: 33ff adds r3, #255 ; 0xff
18884: 2201 movs r2, #1
18886: 4298 cmp r0, r3
18888: d801 bhi.n 1888e <lv_theme_material_init+0x1f82>
1888a: f7ff f813 bl 178b4 <lv_theme_material_init+0xfa8>
1888e: 2000 movs r0, #0
18890: 4b71 ldr r3, [pc, #452] ; (18a58 <lv_theme_material_init+0x214c>)
18892: 4798 blx r3
18894: 0103 lsls r3, r0, #4
18896: 1a18 subs r0, r3, r0
18898: 3050 adds r0, #80 ; 0x50
1889a: 21a0 movs r1, #160 ; 0xa0
1889c: 4b6f ldr r3, [pc, #444] ; (18a5c <lv_theme_material_init+0x2150>)
1889e: 4798 blx r3
188a0: b202 sxth r2, r0
188a2: f7ff f807 bl 178b4 <lv_theme_material_init+0xfa8>
188a6: 2000 movs r0, #0
188a8: 4b6b ldr r3, [pc, #428] ; (18a58 <lv_theme_material_init+0x214c>)
188aa: 4798 blx r3
188ac: 0103 lsls r3, r0, #4
188ae: 1a18 subs r0, r3, r0
188b0: 0040 lsls r0, r0, #1
188b2: 3050 adds r0, #80 ; 0x50
188b4: 21a0 movs r1, #160 ; 0xa0
188b6: 4b69 ldr r3, [pc, #420] ; (18a5c <lv_theme_material_init+0x2150>)
188b8: 4798 blx r3
188ba: b202 sxth r2, r0
188bc: f7fe fffa bl 178b4 <lv_theme_material_init+0xfa8>
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
188c0: 2000 movs r0, #0
188c2: 4b65 ldr r3, [pc, #404] ; (18a58 <lv_theme_material_init+0x214c>)
188c4: 4798 blx r3
188c6: 0103 lsls r3, r0, #4
188c8: 1a18 subs r0, r3, r0
188ca: 3050 adds r0, #80 ; 0x50
188cc: 2340 movs r3, #64 ; 0x40
188ce: 33ff adds r3, #255 ; 0xff
188d0: 2201 movs r2, #1
188d2: 4298 cmp r0, r3
188d4: d801 bhi.n 188da <lv_theme_material_init+0x1fce>
188d6: f7ff f809 bl 178ec <lv_theme_material_init+0xfe0>
188da: 2000 movs r0, #0
188dc: 4b5e ldr r3, [pc, #376] ; (18a58 <lv_theme_material_init+0x214c>)
188de: 4798 blx r3
188e0: 0103 lsls r3, r0, #4
188e2: 1a18 subs r0, r3, r0
188e4: 3050 adds r0, #80 ; 0x50
188e6: 21a0 movs r1, #160 ; 0xa0
188e8: 4b5c ldr r3, [pc, #368] ; (18a5c <lv_theme_material_init+0x2150>)
188ea: 4798 blx r3
188ec: b202 sxth r2, r0
188ee: f7fe fffd bl 178ec <lv_theme_material_init+0xfe0>
188f2: 2000 movs r0, #0
188f4: 4b58 ldr r3, [pc, #352] ; (18a58 <lv_theme_material_init+0x214c>)
188f6: 4798 blx r3
188f8: 0103 lsls r3, r0, #4
188fa: 1a18 subs r0, r3, r0
188fc: 0040 lsls r0, r0, #1
188fe: 3050 adds r0, #80 ; 0x50
18900: 21a0 movs r1, #160 ; 0xa0
18902: 4b56 ldr r3, [pc, #344] ; (18a5c <lv_theme_material_init+0x2150>)
18904: 4798 blx r3
18906: b202 sxth r2, r0
18908: f7fe fff0 bl 178ec <lv_theme_material_init+0xfe0>
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1890c: 2000 movs r0, #0
1890e: 4b52 ldr r3, [pc, #328] ; (18a58 <lv_theme_material_init+0x214c>)
18910: 4798 blx r3
18912: 0103 lsls r3, r0, #4
18914: 1a18 subs r0, r3, r0
18916: 3050 adds r0, #80 ; 0x50
18918: 2340 movs r3, #64 ; 0x40
1891a: 33ff adds r3, #255 ; 0xff
1891c: 2201 movs r2, #1
1891e: 4298 cmp r0, r3
18920: d801 bhi.n 18926 <lv_theme_material_init+0x201a>
18922: f7fe ffff bl 17924 <lv_theme_material_init+0x1018>
18926: 2000 movs r0, #0
18928: 4b4b ldr r3, [pc, #300] ; (18a58 <lv_theme_material_init+0x214c>)
1892a: 4798 blx r3
1892c: 0103 lsls r3, r0, #4
1892e: 1a18 subs r0, r3, r0
18930: 3050 adds r0, #80 ; 0x50
18932: 21a0 movs r1, #160 ; 0xa0
18934: 4b49 ldr r3, [pc, #292] ; (18a5c <lv_theme_material_init+0x2150>)
18936: 4798 blx r3
18938: b202 sxth r2, r0
1893a: f7fe fff3 bl 17924 <lv_theme_material_init+0x1018>
1893e: 2000 movs r0, #0
18940: 4b45 ldr r3, [pc, #276] ; (18a58 <lv_theme_material_init+0x214c>)
18942: 4798 blx r3
18944: 0103 lsls r3, r0, #4
18946: 1a18 subs r0, r3, r0
18948: 0040 lsls r0, r0, #1
1894a: 3050 adds r0, #80 ; 0x50
1894c: 21a0 movs r1, #160 ; 0xa0
1894e: 4b43 ldr r3, [pc, #268] ; (18a5c <lv_theme_material_init+0x2150>)
18950: 4798 blx r3
18952: b202 sxth r2, r0
18954: f7fe ffe6 bl 17924 <lv_theme_material_init+0x1018>
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
18958: 2000 movs r0, #0
1895a: 4b3f ldr r3, [pc, #252] ; (18a58 <lv_theme_material_init+0x214c>)
1895c: 4798 blx r3
1895e: 0103 lsls r3, r0, #4
18960: 1a18 subs r0, r3, r0
18962: 3050 adds r0, #80 ; 0x50
18964: 2340 movs r3, #64 ; 0x40
18966: 33ff adds r3, #255 ; 0xff
18968: 2201 movs r2, #1
1896a: 4298 cmp r0, r3
1896c: d801 bhi.n 18972 <lv_theme_material_init+0x2066>
1896e: f7fe fff5 bl 1795c <lv_theme_material_init+0x1050>
18972: 2000 movs r0, #0
18974: 4b38 ldr r3, [pc, #224] ; (18a58 <lv_theme_material_init+0x214c>)
18976: 4798 blx r3
18978: 0103 lsls r3, r0, #4
1897a: 1a18 subs r0, r3, r0
1897c: 3050 adds r0, #80 ; 0x50
1897e: 21a0 movs r1, #160 ; 0xa0
18980: 4b36 ldr r3, [pc, #216] ; (18a5c <lv_theme_material_init+0x2150>)
18982: 4798 blx r3
18984: b202 sxth r2, r0
18986: f7fe ffe9 bl 1795c <lv_theme_material_init+0x1050>
1898a: 2000 movs r0, #0
1898c: 4b32 ldr r3, [pc, #200] ; (18a58 <lv_theme_material_init+0x214c>)
1898e: 4798 blx r3
18990: 0103 lsls r3, r0, #4
18992: 1a18 subs r0, r3, r0
18994: 0040 lsls r0, r0, #1
18996: 3050 adds r0, #80 ; 0x50
18998: 21a0 movs r1, #160 ; 0xa0
1899a: 4b30 ldr r3, [pc, #192] ; (18a5c <lv_theme_material_init+0x2150>)
1899c: 4798 blx r3
1899e: b202 sxth r2, r0
189a0: f7fe ffdc bl 1795c <lv_theme_material_init+0x1050>
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
189a4: 2000 movs r0, #0
189a6: 4b2c ldr r3, [pc, #176] ; (18a58 <lv_theme_material_init+0x214c>)
189a8: 4798 blx r3
189aa: 0103 lsls r3, r0, #4
189ac: 1a18 subs r0, r3, r0
189ae: 3050 adds r0, #80 ; 0x50
189b0: 2340 movs r3, #64 ; 0x40
189b2: 33ff adds r3, #255 ; 0xff
189b4: 4298 cmp r0, r3
189b6: d803 bhi.n 189c0 <lv_theme_material_init+0x20b4>
189b8: 2201 movs r2, #1
189ba: 4252 negs r2, r2
189bc: f7fe ffeb bl 17996 <lv_theme_material_init+0x108a>
189c0: 2000 movs r0, #0
189c2: 4b25 ldr r3, [pc, #148] ; (18a58 <lv_theme_material_init+0x214c>)
189c4: 4798 blx r3
189c6: 0103 lsls r3, r0, #4
189c8: 1a18 subs r0, r3, r0
189ca: 3050 adds r0, #80 ; 0x50
189cc: 21a0 movs r1, #160 ; 0xa0
189ce: 4b23 ldr r3, [pc, #140] ; (18a5c <lv_theme_material_init+0x2150>)
189d0: 4798 blx r3
189d2: 4242 negs r2, r0
189d4: b212 sxth r2, r2
189d6: f7fe ffde bl 17996 <lv_theme_material_init+0x108a>
189da: 2000 movs r0, #0
189dc: 4b1e ldr r3, [pc, #120] ; (18a58 <lv_theme_material_init+0x214c>)
189de: 4798 blx r3
189e0: 0103 lsls r3, r0, #4
189e2: 1a18 subs r0, r3, r0
189e4: 0040 lsls r0, r0, #1
189e6: 3050 adds r0, #80 ; 0x50
189e8: 21a0 movs r1, #160 ; 0xa0
189ea: 4b1c ldr r3, [pc, #112] ; (18a5c <lv_theme_material_init+0x2150>)
189ec: 4798 blx r3
189ee: 4242 negs r2, r0
189f0: b212 sxth r2, r2
189f2: f7fe ffd0 bl 17996 <lv_theme_material_init+0x108a>
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
189f6: 2000 movs r0, #0
189f8: 4b17 ldr r3, [pc, #92] ; (18a58 <lv_theme_material_init+0x214c>)
189fa: 4798 blx r3
189fc: 0003 movs r3, r0
189fe: 0080 lsls r0, r0, #2
18a00: 18c0 adds r0, r0, r3
18a02: 0080 lsls r0, r0, #2
18a04: 3050 adds r0, #80 ; 0x50
18a06: 21a0 movs r1, #160 ; 0xa0
18a08: 4b14 ldr r3, [pc, #80] ; (18a5c <lv_theme_material_init+0x2150>)
18a0a: 4798 blx r3
18a0c: b202 sxth r2, r0
18a0e: f7ff f825 bl 17a5c <lv_theme_material_init+0x1150>
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
18a12: 231d movs r3, #29
18a14: 213b movs r1, #59 ; 0x3b
18a16: 221d movs r2, #29
18a18: f7ff f84b bl 17ab2 <lv_theme_material_init+0x11a6>
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
18a1c: 2307 movs r3, #7
18a1e: 210f movs r1, #15
18a20: 2208 movs r2, #8
18a22: f7ff f859 bl 17ad8 <lv_theme_material_init+0x11cc>
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
18a26: 2000 movs r0, #0
18a28: 4b0b ldr r3, [pc, #44] ; (18a58 <lv_theme_material_init+0x214c>)
18a2a: 4798 blx r3
18a2c: 0083 lsls r3, r0, #2
18a2e: 1818 adds r0, r3, r0
18a30: 0083 lsls r3, r0, #2
18a32: 18c0 adds r0, r0, r3
18a34: 3050 adds r0, #80 ; 0x50
18a36: 21a0 movs r1, #160 ; 0xa0
18a38: 4b08 ldr r3, [pc, #32] ; (18a5c <lv_theme_material_init+0x2150>)
18a3a: 4798 blx r3
18a3c: b202 sxth r2, r0
18a3e: f7ff f868 bl 17b12 <lv_theme_material_init+0x1206>
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
18a42: 231f movs r3, #31
18a44: 213f movs r1, #63 ; 0x3f
18a46: 221f movs r2, #31
18a48: f7ff f892 bl 17b70 <lv_theme_material_init+0x1264>
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
18a4c: 231c movs r3, #28
18a4e: 213a movs r1, #58 ; 0x3a
18a50: 221e movs r2, #30
18a52: f7ff f8a0 bl 17b96 <lv_theme_material_init+0x128a>
18a56: 46c0 nop ; (mov r8, r8)
18a58: 00010dd1 .word 0x00010dd1
18a5c: 0001c0a5 .word 0x0001c0a5
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
18a60: 2000 movs r0, #0
18a62: 4bdf ldr r3, [pc, #892] ; (18de0 <lv_theme_material_init+0x24d4>)
18a64: 4798 blx r3
18a66: 0003 movs r3, r0
18a68: 0080 lsls r0, r0, #2
18a6a: 18c0 adds r0, r0, r3
18a6c: 3050 adds r0, #80 ; 0x50
18a6e: 21a0 movs r1, #160 ; 0xa0
18a70: 4bdc ldr r3, [pc, #880] ; (18de4 <lv_theme_material_init+0x24d8>)
18a72: 4798 blx r3
18a74: b202 sxth r2, r0
18a76: f7ff f8a5 bl 17bc4 <lv_theme_material_init+0x12b8>
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
18a7a: 2307 movs r3, #7
18a7c: 210f movs r1, #15
18a7e: 2208 movs r2, #8
18a80: f7ff f8b5 bl 17bee <lv_theme_material_init+0x12e2>
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
18a84: 2000 movs r0, #0
18a86: 4bd6 ldr r3, [pc, #856] ; (18de0 <lv_theme_material_init+0x24d4>)
18a88: 4798 blx r3
18a8a: 00c3 lsls r3, r0, #3
18a8c: 1a18 subs r0, r3, r0
18a8e: 3050 adds r0, #80 ; 0x50
18a90: 21a0 movs r1, #160 ; 0xa0
18a92: 4bd4 ldr r3, [pc, #848] ; (18de4 <lv_theme_material_init+0x24d8>)
18a94: 4798 blx r3
18a96: b202 sxth r2, r0
18a98: f7ff f8cd bl 17c36 <lv_theme_material_init+0x132a>
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
18a9c: 2000 movs r0, #0
18a9e: 4bd0 ldr r3, [pc, #832] ; (18de0 <lv_theme_material_init+0x24d4>)
18aa0: 4798 blx r3
18aa2: 00c3 lsls r3, r0, #3
18aa4: 1a18 subs r0, r3, r0
18aa6: 3050 adds r0, #80 ; 0x50
18aa8: 21a0 movs r1, #160 ; 0xa0
18aaa: 4bce ldr r3, [pc, #824] ; (18de4 <lv_theme_material_init+0x24d8>)
18aac: 4798 blx r3
18aae: b202 sxth r2, r0
18ab0: f7ff f8d5 bl 17c5e <lv_theme_material_init+0x1352>
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
18ab4: 2000 movs r0, #0
18ab6: 4bca ldr r3, [pc, #808] ; (18de0 <lv_theme_material_init+0x24d4>)
18ab8: 4798 blx r3
18aba: 00c3 lsls r3, r0, #3
18abc: 1a18 subs r0, r3, r0
18abe: 3050 adds r0, #80 ; 0x50
18ac0: 21a0 movs r1, #160 ; 0xa0
18ac2: 4bc8 ldr r3, [pc, #800] ; (18de4 <lv_theme_material_init+0x24d8>)
18ac4: 4798 blx r3
18ac6: b202 sxth r2, r0
18ac8: f7ff f8dd bl 17c86 <lv_theme_material_init+0x137a>
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
18acc: 2307 movs r3, #7
18ace: 210f movs r1, #15
18ad0: 2208 movs r2, #8
18ad2: f7ff f8f9 bl 17cc8 <lv_theme_material_init+0x13bc>
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
18ad6: 2000 movs r0, #0
18ad8: 4bc1 ldr r3, [pc, #772] ; (18de0 <lv_theme_material_init+0x24d4>)
18ada: 4798 blx r3
18adc: 0003 movs r3, r0
18ade: 0080 lsls r0, r0, #2
18ae0: 18c0 adds r0, r0, r3
18ae2: 0080 lsls r0, r0, #2
18ae4: 3050 adds r0, #80 ; 0x50
18ae6: 21a0 movs r1, #160 ; 0xa0
18ae8: 4bbe ldr r3, [pc, #760] ; (18de4 <lv_theme_material_init+0x24d8>)
18aea: 4798 blx r3
18aec: b202 sxth r2, r0
18aee: f7ff f903 bl 17cf8 <lv_theme_material_init+0x13ec>
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
18af2: 2000 movs r0, #0
18af4: 4bba ldr r3, [pc, #744] ; (18de0 <lv_theme_material_init+0x24d4>)
18af6: 4798 blx r3
18af8: 0003 movs r3, r0
18afa: 0080 lsls r0, r0, #2
18afc: 18c0 adds r0, r0, r3
18afe: 0080 lsls r0, r0, #2
18b00: 3050 adds r0, #80 ; 0x50
18b02: 21a0 movs r1, #160 ; 0xa0
18b04: 4bb7 ldr r3, [pc, #732] ; (18de4 <lv_theme_material_init+0x24d8>)
18b06: 4798 blx r3
18b08: b202 sxth r2, r0
18b0a: f7ff f90a bl 17d22 <lv_theme_material_init+0x1416>
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
18b0e: 2000 movs r0, #0
18b10: 4bb3 ldr r3, [pc, #716] ; (18de0 <lv_theme_material_init+0x24d4>)
18b12: 4798 blx r3
18b14: 0003 movs r3, r0
18b16: 0080 lsls r0, r0, #2
18b18: 18c0 adds r0, r0, r3
18b1a: 3050 adds r0, #80 ; 0x50
18b1c: 21a0 movs r1, #160 ; 0xa0
18b1e: 4bb1 ldr r3, [pc, #708] ; (18de4 <lv_theme_material_init+0x24d8>)
18b20: 4798 blx r3
18b22: b202 sxth r2, r0
18b24: f7ff f931 bl 17d8a <lv_theme_material_init+0x147e>
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
18b28: 2000 movs r0, #0
18b2a: 4bad ldr r3, [pc, #692] ; (18de0 <lv_theme_material_init+0x24d4>)
18b2c: 4798 blx r3
18b2e: 0103 lsls r3, r0, #4
18b30: 1a18 subs r0, r3, r0
18b32: 3050 adds r0, #80 ; 0x50
18b34: 2340 movs r3, #64 ; 0x40
18b36: 33ff adds r3, #255 ; 0xff
18b38: 2201 movs r2, #1
18b3a: 4298 cmp r0, r3
18b3c: d801 bhi.n 18b42 <lv_theme_material_init+0x2236>
18b3e: f7ff f949 bl 17dd4 <lv_theme_material_init+0x14c8>
18b42: 2000 movs r0, #0
18b44: 4ba6 ldr r3, [pc, #664] ; (18de0 <lv_theme_material_init+0x24d4>)
18b46: 4798 blx r3
18b48: 0103 lsls r3, r0, #4
18b4a: 1a18 subs r0, r3, r0
18b4c: 3050 adds r0, #80 ; 0x50
18b4e: 21a0 movs r1, #160 ; 0xa0
18b50: 4ba4 ldr r3, [pc, #656] ; (18de4 <lv_theme_material_init+0x24d8>)
18b52: 4798 blx r3
18b54: b202 sxth r2, r0
18b56: f7ff f93d bl 17dd4 <lv_theme_material_init+0x14c8>
18b5a: 2000 movs r0, #0
18b5c: 4ba0 ldr r3, [pc, #640] ; (18de0 <lv_theme_material_init+0x24d4>)
18b5e: 4798 blx r3
18b60: 0103 lsls r3, r0, #4
18b62: 1a18 subs r0, r3, r0
18b64: 0040 lsls r0, r0, #1
18b66: 3050 adds r0, #80 ; 0x50
18b68: 21a0 movs r1, #160 ; 0xa0
18b6a: 4b9e ldr r3, [pc, #632] ; (18de4 <lv_theme_material_init+0x24d8>)
18b6c: 4798 blx r3
18b6e: b202 sxth r2, r0
18b70: f7ff f930 bl 17dd4 <lv_theme_material_init+0x14c8>
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
18b74: 2000 movs r0, #0
18b76: 4b9a ldr r3, [pc, #616] ; (18de0 <lv_theme_material_init+0x24d4>)
18b78: 4798 blx r3
18b7a: 0103 lsls r3, r0, #4
18b7c: 1a18 subs r0, r3, r0
18b7e: 3050 adds r0, #80 ; 0x50
18b80: 2340 movs r3, #64 ; 0x40
18b82: 33ff adds r3, #255 ; 0xff
18b84: 2201 movs r2, #1
18b86: 4298 cmp r0, r3
18b88: d801 bhi.n 18b8e <lv_theme_material_init+0x2282>
18b8a: f7ff f973 bl 17e74 <lv_theme_material_init+0x1568>
18b8e: 2000 movs r0, #0
18b90: 4b93 ldr r3, [pc, #588] ; (18de0 <lv_theme_material_init+0x24d4>)
18b92: 4798 blx r3
18b94: 0103 lsls r3, r0, #4
18b96: 1a18 subs r0, r3, r0
18b98: 3050 adds r0, #80 ; 0x50
18b9a: 21a0 movs r1, #160 ; 0xa0
18b9c: 4b91 ldr r3, [pc, #580] ; (18de4 <lv_theme_material_init+0x24d8>)
18b9e: 4798 blx r3
18ba0: b202 sxth r2, r0
18ba2: f7ff f967 bl 17e74 <lv_theme_material_init+0x1568>
18ba6: 2000 movs r0, #0
18ba8: 4b8d ldr r3, [pc, #564] ; (18de0 <lv_theme_material_init+0x24d4>)
18baa: 4798 blx r3
18bac: 0103 lsls r3, r0, #4
18bae: 1a18 subs r0, r3, r0
18bb0: 0040 lsls r0, r0, #1
18bb2: 3050 adds r0, #80 ; 0x50
18bb4: 21a0 movs r1, #160 ; 0xa0
18bb6: 4b8b ldr r3, [pc, #556] ; (18de4 <lv_theme_material_init+0x24d8>)
18bb8: 4798 blx r3
18bba: b202 sxth r2, r0
18bbc: f7ff f95a bl 17e74 <lv_theme_material_init+0x1568>
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
18bc0: 2000 movs r0, #0
18bc2: 4b87 ldr r3, [pc, #540] ; (18de0 <lv_theme_material_init+0x24d4>)
18bc4: 4798 blx r3
18bc6: 0103 lsls r3, r0, #4
18bc8: 1a18 subs r0, r3, r0
18bca: 3050 adds r0, #80 ; 0x50
18bcc: 2340 movs r3, #64 ; 0x40
18bce: 33ff adds r3, #255 ; 0xff
18bd0: 2201 movs r2, #1
18bd2: 4298 cmp r0, r3
18bd4: d801 bhi.n 18bda <lv_theme_material_init+0x22ce>
18bd6: f7ff f969 bl 17eac <lv_theme_material_init+0x15a0>
18bda: 2000 movs r0, #0
18bdc: 4b80 ldr r3, [pc, #512] ; (18de0 <lv_theme_material_init+0x24d4>)
18bde: 4798 blx r3
18be0: 0103 lsls r3, r0, #4
18be2: 1a18 subs r0, r3, r0
18be4: 3050 adds r0, #80 ; 0x50
18be6: 21a0 movs r1, #160 ; 0xa0
18be8: 4b7e ldr r3, [pc, #504] ; (18de4 <lv_theme_material_init+0x24d8>)
18bea: 4798 blx r3
18bec: b202 sxth r2, r0
18bee: f7ff f95d bl 17eac <lv_theme_material_init+0x15a0>
18bf2: 2000 movs r0, #0
18bf4: 4b7a ldr r3, [pc, #488] ; (18de0 <lv_theme_material_init+0x24d4>)
18bf6: 4798 blx r3
18bf8: 0103 lsls r3, r0, #4
18bfa: 1a18 subs r0, r3, r0
18bfc: 0040 lsls r0, r0, #1
18bfe: 3050 adds r0, #80 ; 0x50
18c00: 21a0 movs r1, #160 ; 0xa0
18c02: 4b78 ldr r3, [pc, #480] ; (18de4 <lv_theme_material_init+0x24d8>)
18c04: 4798 blx r3
18c06: b202 sxth r2, r0
18c08: f7ff f950 bl 17eac <lv_theme_material_init+0x15a0>
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
18c0c: 2000 movs r0, #0
18c0e: 4b74 ldr r3, [pc, #464] ; (18de0 <lv_theme_material_init+0x24d4>)
18c10: 4798 blx r3
18c12: 0103 lsls r3, r0, #4
18c14: 1a18 subs r0, r3, r0
18c16: 3050 adds r0, #80 ; 0x50
18c18: 2340 movs r3, #64 ; 0x40
18c1a: 33ff adds r3, #255 ; 0xff
18c1c: 2201 movs r2, #1
18c1e: 4298 cmp r0, r3
18c20: d801 bhi.n 18c26 <lv_theme_material_init+0x231a>
18c22: f7ff f95f bl 17ee4 <lv_theme_material_init+0x15d8>
18c26: 2000 movs r0, #0
18c28: 4b6d ldr r3, [pc, #436] ; (18de0 <lv_theme_material_init+0x24d4>)
18c2a: 4798 blx r3
18c2c: 0103 lsls r3, r0, #4
18c2e: 1a18 subs r0, r3, r0
18c30: 3050 adds r0, #80 ; 0x50
18c32: 21a0 movs r1, #160 ; 0xa0
18c34: 4b6b ldr r3, [pc, #428] ; (18de4 <lv_theme_material_init+0x24d8>)
18c36: 4798 blx r3
18c38: b202 sxth r2, r0
18c3a: f7ff f953 bl 17ee4 <lv_theme_material_init+0x15d8>
18c3e: 2000 movs r0, #0
18c40: 4b67 ldr r3, [pc, #412] ; (18de0 <lv_theme_material_init+0x24d4>)
18c42: 4798 blx r3
18c44: 0103 lsls r3, r0, #4
18c46: 1a18 subs r0, r3, r0
18c48: 0040 lsls r0, r0, #1
18c4a: 3050 adds r0, #80 ; 0x50
18c4c: 21a0 movs r1, #160 ; 0xa0
18c4e: 4b65 ldr r3, [pc, #404] ; (18de4 <lv_theme_material_init+0x24d8>)
18c50: 4798 blx r3
18c52: b202 sxth r2, r0
18c54: f7ff f946 bl 17ee4 <lv_theme_material_init+0x15d8>
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
18c58: 2000 movs r0, #0
18c5a: 4b61 ldr r3, [pc, #388] ; (18de0 <lv_theme_material_init+0x24d4>)
18c5c: 4798 blx r3
18c5e: 0103 lsls r3, r0, #4
18c60: 1a18 subs r0, r3, r0
18c62: 3050 adds r0, #80 ; 0x50
18c64: 2340 movs r3, #64 ; 0x40
18c66: 33ff adds r3, #255 ; 0xff
18c68: 2201 movs r2, #1
18c6a: 4298 cmp r0, r3
18c6c: d801 bhi.n 18c72 <lv_theme_material_init+0x2366>
18c6e: f7ff f955 bl 17f1c <lv_theme_material_init+0x1610>
18c72: 2000 movs r0, #0
18c74: 4b5a ldr r3, [pc, #360] ; (18de0 <lv_theme_material_init+0x24d4>)
18c76: 4798 blx r3
18c78: 0103 lsls r3, r0, #4
18c7a: 1a18 subs r0, r3, r0
18c7c: 3050 adds r0, #80 ; 0x50
18c7e: 21a0 movs r1, #160 ; 0xa0
18c80: 4b58 ldr r3, [pc, #352] ; (18de4 <lv_theme_material_init+0x24d8>)
18c82: 4798 blx r3
18c84: b202 sxth r2, r0
18c86: f7ff f949 bl 17f1c <lv_theme_material_init+0x1610>
18c8a: 2000 movs r0, #0
18c8c: 4b54 ldr r3, [pc, #336] ; (18de0 <lv_theme_material_init+0x24d4>)
18c8e: 4798 blx r3
18c90: 0103 lsls r3, r0, #4
18c92: 1a18 subs r0, r3, r0
18c94: 0040 lsls r0, r0, #1
18c96: 3050 adds r0, #80 ; 0x50
18c98: 21a0 movs r1, #160 ; 0xa0
18c9a: 4b52 ldr r3, [pc, #328] ; (18de4 <lv_theme_material_init+0x24d8>)
18c9c: 4798 blx r3
18c9e: b202 sxth r2, r0
18ca0: f7ff f93c bl 17f1c <lv_theme_material_init+0x1610>
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
18ca4: 231a movs r3, #26
18ca6: 2137 movs r1, #55 ; 0x37
18ca8: 221c movs r2, #28
18caa: f7ff f94b bl 17f44 <lv_theme_material_init+0x1638>
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
18cae: 2000 movs r0, #0
18cb0: 4b4b ldr r3, [pc, #300] ; (18de0 <lv_theme_material_init+0x24d4>)
18cb2: 4798 blx r3
18cb4: 0103 lsls r3, r0, #4
18cb6: 1a18 subs r0, r3, r0
18cb8: 3050 adds r0, #80 ; 0x50
18cba: 2340 movs r3, #64 ; 0x40
18cbc: 33ff adds r3, #255 ; 0xff
18cbe: 2201 movs r2, #1
18cc0: 4298 cmp r0, r3
18cc2: d801 bhi.n 18cc8 <lv_theme_material_init+0x23bc>
18cc4: f7ff f968 bl 17f98 <lv_theme_material_init+0x168c>
18cc8: 2000 movs r0, #0
18cca: 4b45 ldr r3, [pc, #276] ; (18de0 <lv_theme_material_init+0x24d4>)
18ccc: 4798 blx r3
18cce: 0103 lsls r3, r0, #4
18cd0: 1a18 subs r0, r3, r0
18cd2: 3050 adds r0, #80 ; 0x50
18cd4: 21a0 movs r1, #160 ; 0xa0
18cd6: 4b43 ldr r3, [pc, #268] ; (18de4 <lv_theme_material_init+0x24d8>)
18cd8: 4798 blx r3
18cda: b202 sxth r2, r0
18cdc: f7ff f95c bl 17f98 <lv_theme_material_init+0x168c>
18ce0: 2000 movs r0, #0
18ce2: 4b3f ldr r3, [pc, #252] ; (18de0 <lv_theme_material_init+0x24d4>)
18ce4: 4798 blx r3
18ce6: 0103 lsls r3, r0, #4
18ce8: 1a18 subs r0, r3, r0
18cea: 0040 lsls r0, r0, #1
18cec: 3050 adds r0, #80 ; 0x50
18cee: 21a0 movs r1, #160 ; 0xa0
18cf0: 4b3c ldr r3, [pc, #240] ; (18de4 <lv_theme_material_init+0x24d8>)
18cf2: 4798 blx r3
18cf4: b202 sxth r2, r0
18cf6: f7ff f94f bl 17f98 <lv_theme_material_init+0x168c>
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
18cfa: 2000 movs r0, #0
18cfc: 4b38 ldr r3, [pc, #224] ; (18de0 <lv_theme_material_init+0x24d4>)
18cfe: 4798 blx r3
18d00: 0103 lsls r3, r0, #4
18d02: 1a18 subs r0, r3, r0
18d04: 3050 adds r0, #80 ; 0x50
18d06: 2340 movs r3, #64 ; 0x40
18d08: 33ff adds r3, #255 ; 0xff
18d0a: 2201 movs r2, #1
18d0c: 4298 cmp r0, r3
18d0e: d801 bhi.n 18d14 <lv_theme_material_init+0x2408>
18d10: f7ff f95e bl 17fd0 <lv_theme_material_init+0x16c4>
18d14: 2000 movs r0, #0
18d16: 4b32 ldr r3, [pc, #200] ; (18de0 <lv_theme_material_init+0x24d4>)
18d18: 4798 blx r3
18d1a: 0103 lsls r3, r0, #4
18d1c: 1a18 subs r0, r3, r0
18d1e: 3050 adds r0, #80 ; 0x50
18d20: 21a0 movs r1, #160 ; 0xa0
18d22: 4b30 ldr r3, [pc, #192] ; (18de4 <lv_theme_material_init+0x24d8>)
18d24: 4798 blx r3
18d26: b202 sxth r2, r0
18d28: f7ff f952 bl 17fd0 <lv_theme_material_init+0x16c4>
18d2c: 2000 movs r0, #0
18d2e: 4b2c ldr r3, [pc, #176] ; (18de0 <lv_theme_material_init+0x24d4>)
18d30: 4798 blx r3
18d32: 0103 lsls r3, r0, #4
18d34: 1a18 subs r0, r3, r0
18d36: 0040 lsls r0, r0, #1
18d38: 3050 adds r0, #80 ; 0x50
18d3a: 21a0 movs r1, #160 ; 0xa0
18d3c: 4b29 ldr r3, [pc, #164] ; (18de4 <lv_theme_material_init+0x24d8>)
18d3e: 4798 blx r3
18d40: b202 sxth r2, r0
18d42: f7ff f945 bl 17fd0 <lv_theme_material_init+0x16c4>
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
18d46: 2000 movs r0, #0
18d48: 4b25 ldr r3, [pc, #148] ; (18de0 <lv_theme_material_init+0x24d4>)
18d4a: 4798 blx r3
18d4c: 0103 lsls r3, r0, #4
18d4e: 1a18 subs r0, r3, r0
18d50: 3050 adds r0, #80 ; 0x50
18d52: 2340 movs r3, #64 ; 0x40
18d54: 33ff adds r3, #255 ; 0xff
18d56: 2201 movs r2, #1
18d58: 4298 cmp r0, r3
18d5a: d801 bhi.n 18d60 <lv_theme_material_init+0x2454>
18d5c: f7ff f954 bl 18008 <lv_theme_material_init+0x16fc>
18d60: 2000 movs r0, #0
18d62: 4b1f ldr r3, [pc, #124] ; (18de0 <lv_theme_material_init+0x24d4>)
18d64: 4798 blx r3
18d66: 0103 lsls r3, r0, #4
18d68: 1a18 subs r0, r3, r0
18d6a: 3050 adds r0, #80 ; 0x50
18d6c: 21a0 movs r1, #160 ; 0xa0
18d6e: 4b1d ldr r3, [pc, #116] ; (18de4 <lv_theme_material_init+0x24d8>)
18d70: 4798 blx r3
18d72: b202 sxth r2, r0
18d74: f7ff f948 bl 18008 <lv_theme_material_init+0x16fc>
18d78: 2000 movs r0, #0
18d7a: 4b19 ldr r3, [pc, #100] ; (18de0 <lv_theme_material_init+0x24d4>)
18d7c: 4798 blx r3
18d7e: 0103 lsls r3, r0, #4
18d80: 1a18 subs r0, r3, r0
18d82: 0040 lsls r0, r0, #1
18d84: 3050 adds r0, #80 ; 0x50
18d86: 21a0 movs r1, #160 ; 0xa0
18d88: 4b16 ldr r3, [pc, #88] ; (18de4 <lv_theme_material_init+0x24d8>)
18d8a: 4798 blx r3
18d8c: b202 sxth r2, r0
18d8e: f7ff f93b bl 18008 <lv_theme_material_init+0x16fc>
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
18d92: 2000 movs r0, #0
18d94: 4b12 ldr r3, [pc, #72] ; (18de0 <lv_theme_material_init+0x24d4>)
18d96: 4798 blx r3
18d98: 0103 lsls r3, r0, #4
18d9a: 1a18 subs r0, r3, r0
18d9c: 3050 adds r0, #80 ; 0x50
18d9e: 2340 movs r3, #64 ; 0x40
18da0: 33ff adds r3, #255 ; 0xff
18da2: 2201 movs r2, #1
18da4: 4298 cmp r0, r3
18da6: d801 bhi.n 18dac <lv_theme_material_init+0x24a0>
18da8: f7ff f94a bl 18040 <lv_theme_material_init+0x1734>
18dac: 2000 movs r0, #0
18dae: 4b0c ldr r3, [pc, #48] ; (18de0 <lv_theme_material_init+0x24d4>)
18db0: 4798 blx r3
18db2: 0103 lsls r3, r0, #4
18db4: 1a18 subs r0, r3, r0
18db6: 3050 adds r0, #80 ; 0x50
18db8: 21a0 movs r1, #160 ; 0xa0
18dba: 4b0a ldr r3, [pc, #40] ; (18de4 <lv_theme_material_init+0x24d8>)
18dbc: 4798 blx r3
18dbe: b202 sxth r2, r0
18dc0: f7ff f93e bl 18040 <lv_theme_material_init+0x1734>
18dc4: 2000 movs r0, #0
18dc6: 4b06 ldr r3, [pc, #24] ; (18de0 <lv_theme_material_init+0x24d4>)
18dc8: 4798 blx r3
18dca: 0103 lsls r3, r0, #4
18dcc: 1a18 subs r0, r3, r0
18dce: 0040 lsls r0, r0, #1
18dd0: 3050 adds r0, #80 ; 0x50
18dd2: 21a0 movs r1, #160 ; 0xa0
18dd4: 4b03 ldr r3, [pc, #12] ; (18de4 <lv_theme_material_init+0x24d8>)
18dd6: 4798 blx r3
18dd8: b202 sxth r2, r0
18dda: f7ff f931 bl 18040 <lv_theme_material_init+0x1734>
18dde: 46c0 nop ; (mov r8, r8)
18de0: 00010dd1 .word 0x00010dd1
18de4: 0001c0a5 .word 0x0001c0a5
00018de8 <lv_img_design>:
* LV_DESIGN_DRAW: draw the object (always return 'true')
* LV_DESIGN_DRAW_POST: drawing after every children are drawn
* @param return an element of `lv_design_res_t`
*/
static lv_design_res_t lv_img_design(lv_obj_t * img, const lv_area_t * clip_area, lv_design_mode_t mode)
{
18de8: b5f0 push {r4, r5, r6, r7, lr}
18dea: 46de mov lr, fp
18dec: 4657 mov r7, sl
18dee: 464e mov r6, r9
18df0: 4645 mov r5, r8
18df2: b5e0 push {r5, r6, r7, lr}
18df4: b0a7 sub sp, #156 ; 0x9c
18df6: 0004 movs r4, r0
18df8: 9103 str r1, [sp, #12]
18dfa: 0016 movs r6, r2
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
18dfc: 4bd2 ldr r3, [pc, #840] ; (19148 <lv_img_design+0x360>)
18dfe: 4798 blx r3
18e00: 0005 movs r5, r0
if(mode == LV_DESIGN_COVER_CHK) {
18e02: 2e02 cmp r6, #2
18e04: d100 bne.n 18e08 <lv_img_design+0x20>
18e06: e0a5 b.n 18f54 <lv_img_design+0x16c>
if(lv_obj_get_style_image_opa(img, LV_IMG_PART_MAIN) != LV_OPA_COVER) return LV_DESIGN_RES_NOT_COVER;
return LV_DESIGN_RES_COVER;
}
else if(mode == LV_DESIGN_DRAW_MAIN) {
18e08: 2e00 cmp r6, #0
18e0a: d000 beq.n 18e0e <lv_img_design+0x26>
18e0c: e1e2 b.n 191d4 <lv_img_design+0x3ec>
if(ext->h == 0 || ext->w == 0) return true;
18e0e: 220a movs r2, #10
18e10: 5e83 ldrsh r3, [r0, r2]
18e12: 2001 movs r0, #1
18e14: 2b00 cmp r3, #0
18e16: d100 bne.n 18e1a <lv_img_design+0x32>
18e18: e1df b.n 191da <lv_img_design+0x3f2>
18e1a: 2208 movs r2, #8
18e1c: 5eab ldrsh r3, [r5, r2]
18e1e: 2b00 cmp r3, #0
18e20: d100 bne.n 18e24 <lv_img_design+0x3c>
18e22: e1da b.n 191da <lv_img_design+0x3f2>
lv_area_t img_coords;
lv_obj_get_coords(img, &img_coords);
18e24: a904 add r1, sp, #16
18e26: 0020 movs r0, r4
18e28: 4bc8 ldr r3, [pc, #800] ; (1914c <lv_img_design+0x364>)
18e2a: 4798 blx r3
lv_draw_rect_dsc_t bg_dsc;
lv_draw_rect_dsc_init(&bg_dsc);
18e2c: a811 add r0, sp, #68 ; 0x44
18e2e: 4bc8 ldr r3, [pc, #800] ; (19150 <lv_img_design+0x368>)
18e30: 4798 blx r3
lv_obj_init_draw_rect_dsc(img, LV_IMG_PART_MAIN, &bg_dsc);
18e32: aa11 add r2, sp, #68 ; 0x44
18e34: 2100 movs r1, #0
18e36: 0020 movs r0, r4
18e38: 4bc6 ldr r3, [pc, #792] ; (19154 <lv_img_design+0x36c>)
18e3a: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
18e3c: 2233 movs r2, #51 ; 0x33
18e3e: 2100 movs r1, #0
18e40: 0020 movs r0, r4
18e42: 4bc5 ldr r3, [pc, #788] ; (19158 <lv_img_design+0x370>)
18e44: 4798 blx r3
/*If the border is drawn later disable loading its properties*/
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
18e46: 2800 cmp r0, #0
18e48: d002 beq.n 18e50 <lv_img_design+0x68>
bg_dsc.border_opa = LV_OPA_TRANSP;
18e4a: 2200 movs r2, #0
18e4c: ab11 add r3, sp, #68 ; 0x44
18e4e: 751a strb r2, [r3, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
18e50: 2207 movs r2, #7
18e52: 2100 movs r1, #0
18e54: 0020 movs r0, r4
18e56: 4bc0 ldr r3, [pc, #768] ; (19158 <lv_img_design+0x370>)
18e58: 4798 blx r3
}
int32_t zoom_final = lv_obj_get_style_transform_zoom(img, LV_IMG_PART_MAIN);
zoom_final = (zoom_final * ext->zoom) >> 8;
18e5a: 8a6e ldrh r6, [r5, #18]
18e5c: 4346 muls r6, r0
18e5e: 1236 asrs r6, r6, #8
if(zoom_final == 0) return LV_DESIGN_RES_OK;
18e60: 2000 movs r0, #0
18e62: 2e00 cmp r6, #0
18e64: d100 bne.n 18e68 <lv_img_design+0x80>
18e66: e1b8 b.n 191da <lv_img_design+0x3f2>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
18e68: 2206 movs r2, #6
18e6a: 2100 movs r1, #0
18e6c: 0020 movs r0, r4
18e6e: 4bba ldr r3, [pc, #744] ; (19158 <lv_img_design+0x370>)
18e70: 469a mov sl, r3
18e72: 4798 blx r3
int32_t angle_final = lv_obj_get_style_transform_angle(img, LV_IMG_PART_MAIN);
angle_final += ext->angle;
18e74: 89ab ldrh r3, [r5, #12]
18e76: 4698 mov r8, r3
18e78: 4480 add r8, r0
lv_area_t bg_coords;
_lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords),
18e7a: b2b3 uxth r3, r6
18e7c: 4699 mov r9, r3
18e7e: 4643 mov r3, r8
18e80: b21b sxth r3, r3
* @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)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
18e82: aa02 add r2, sp, #8
18e84: 89d2 ldrh r2, [r2, #14]
18e86: 3201 adds r2, #1
18e88: a902 add r1, sp, #8
18e8a: 8949 ldrh r1, [r1, #10]
18e8c: 1a52 subs r2, r2, r1
18e8e: b212 sxth r2, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
18e90: a902 add r1, sp, #8
18e92: 8989 ldrh r1, [r1, #12]
18e94: 3101 adds r1, #1
18e96: a802 add r0, sp, #8
18e98: 8900 ldrh r0, [r0, #8]
18e9a: 1a09 subs r1, r1, r0
18e9c: b209 sxth r1, r1
18e9e: ae06 add r6, sp, #24
18ea0: 0028 movs r0, r5
18ea2: 300e adds r0, #14
18ea4: 9001 str r0, [sp, #4]
18ea6: 4648 mov r0, r9
18ea8: 9000 str r0, [sp, #0]
18eaa: 0030 movs r0, r6
18eac: 4fab ldr r7, [pc, #684] ; (1915c <lv_img_design+0x374>)
18eae: 47b8 blx r7
angle_final, zoom_final, &ext->pivot);
bg_coords.x1 += img_coords.x1;
18eb0: ab02 add r3, sp, #8
18eb2: 891a ldrh r2, [r3, #8]
18eb4: 8833 ldrh r3, [r6, #0]
18eb6: 18d3 adds r3, r2, r3
18eb8: 8033 strh r3, [r6, #0]
bg_coords.y1 += img_coords.y1;
18eba: ab02 add r3, sp, #8
18ebc: 895b ldrh r3, [r3, #10]
18ebe: 8871 ldrh r1, [r6, #2]
18ec0: 1859 adds r1, r3, r1
18ec2: 8071 strh r1, [r6, #2]
bg_coords.x2 += img_coords.x1;
18ec4: 88b1 ldrh r1, [r6, #4]
18ec6: 1852 adds r2, r2, r1
18ec8: 80b2 strh r2, [r6, #4]
bg_coords.y2 += img_coords.y1;
18eca: 88f2 ldrh r2, [r6, #6]
18ecc: 189b adds r3, r3, r2
18ece: 80f3 strh r3, [r6, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
18ed0: 2212 movs r2, #18
18ed2: 2100 movs r1, #0
18ed4: 0020 movs r0, r4
18ed6: 47d0 blx sl
bg_coords.x1 -= lv_obj_get_style_pad_left(img, LV_IMG_PART_MAIN);
18ed8: 8833 ldrh r3, [r6, #0]
18eda: 1a18 subs r0, r3, r0
18edc: 8030 strh r0, [r6, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
18ede: 2213 movs r2, #19
18ee0: 2100 movs r1, #0
18ee2: 0020 movs r0, r4
18ee4: 47d0 blx sl
bg_coords.x2 += lv_obj_get_style_pad_right(img, LV_IMG_PART_MAIN);
18ee6: 88b3 ldrh r3, [r6, #4]
18ee8: 1818 adds r0, r3, r0
18eea: 80b0 strh r0, [r6, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
18eec: 2210 movs r2, #16
18eee: 2100 movs r1, #0
18ef0: 0020 movs r0, r4
18ef2: 47d0 blx sl
bg_coords.y1 -= lv_obj_get_style_pad_top(img, LV_IMG_PART_MAIN);
18ef4: 8873 ldrh r3, [r6, #2]
18ef6: 1a18 subs r0, r3, r0
18ef8: 8070 strh r0, [r6, #2]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
18efa: 2211 movs r2, #17
18efc: 2100 movs r1, #0
18efe: 0020 movs r0, r4
18f00: 47d0 blx sl
bg_coords.y2 += lv_obj_get_style_pad_bottom(img, LV_IMG_PART_MAIN);
18f02: 88f3 ldrh r3, [r6, #6]
18f04: 1818 adds r0, r3, r0
18f06: 80f0 strh r0, [r6, #6]
lv_draw_rect(&bg_coords, clip_area, &bg_dsc);
18f08: aa11 add r2, sp, #68 ; 0x44
18f0a: 9903 ldr r1, [sp, #12]
18f0c: 0030 movs r0, r6
18f0e: 4b94 ldr r3, [pc, #592] ; (19160 <lv_img_design+0x378>)
18f10: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
18f12: 2202 movs r2, #2
18f14: 2100 movs r1, #0
18f16: 0020 movs r0, r4
18f18: 47d0 blx sl
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
18f1a: 2800 cmp r0, #0
18f1c: d000 beq.n 18f20 <lv_img_design+0x138>
18f1e: e087 b.n 19030 <lv_img_design+0x248>
lv_draw_mask_radius_init(mp, &bg_coords, r, false);
/*Add the mask and use `img+8` as custom id. Don't use `obj` directly because it might be used by the user*/
lv_draw_mask_add(mp, img + 8);
}
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_VARIABLE) {
18f20: 7d2a ldrb r2, [r5, #20]
18f22: 2303 movs r3, #3
18f24: 4013 ands r3, r2
18f26: 2b01 cmp r3, #1
18f28: d800 bhi.n 18f2c <lv_img_design+0x144>
18f2a: e097 b.n 1905c <lv_img_design+0x274>
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
}
}
}
else if(ext->src_type == LV_IMG_SRC_SYMBOL) {
18f2c: 2b02 cmp r3, #2
18f2e: d100 bne.n 18f32 <lv_img_design+0x14a>
18f30: e138 b.n 191a4 <lv_img_design+0x3bc>
label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN);
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
}
else {
/*Trigger the error handler of image drawer*/
LV_LOG_WARN("lv_img_design: image source type is unknown");
18f32: 4b8c ldr r3, [pc, #560] ; (19164 <lv_img_design+0x37c>)
18f34: 9300 str r3, [sp, #0]
18f36: 4b8c ldr r3, [pc, #560] ; (19168 <lv_img_design+0x380>)
18f38: 4a8c ldr r2, [pc, #560] ; (1916c <lv_img_design+0x384>)
18f3a: 498d ldr r1, [pc, #564] ; (19170 <lv_img_design+0x388>)
18f3c: 2002 movs r0, #2
18f3e: 4e8d ldr r6, [pc, #564] ; (19174 <lv_img_design+0x38c>)
18f40: 47b0 blx r6
lv_draw_img(&img->coords, clip_area, NULL, NULL);
18f42: 0020 movs r0, r4
18f44: 3010 adds r0, #16
18f46: 2300 movs r3, #0
18f48: 2200 movs r2, #0
18f4a: 9903 ldr r1, [sp, #12]
18f4c: 4c8a ldr r4, [pc, #552] ; (19178 <lv_img_design+0x390>)
18f4e: 47a0 blx r4
lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc);
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
}
}
return LV_DESIGN_RES_OK;
18f50: 2000 movs r0, #0
18f52: e142 b.n 191da <lv_img_design+0x3f2>
18f54: 2202 movs r2, #2
18f56: 2100 movs r1, #0
18f58: 0020 movs r0, r4
18f5a: 4b7f ldr r3, [pc, #508] ; (19158 <lv_img_design+0x370>)
18f5c: 4798 blx r3
18f5e: 0003 movs r3, r0
if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED;
18f60: 2003 movs r0, #3
18f62: 2b00 cmp r3, #0
18f64: d000 beq.n 18f68 <lv_img_design+0x180>
18f66: e138 b.n 191da <lv_img_design+0x3f2>
if(ext->src_type == LV_IMG_SRC_UNKNOWN || ext->src_type == LV_IMG_SRC_SYMBOL) return LV_DESIGN_RES_NOT_COVER;
18f68: 7d2a ldrb r2, [r5, #20]
18f6a: 3303 adds r3, #3
18f6c: 4013 ands r3, r2
18f6e: 3b02 subs r3, #2
18f70: 3801 subs r0, #1
18f72: 2b01 cmp r3, #1
18f74: d800 bhi.n 18f78 <lv_img_design+0x190>
18f76: e130 b.n 191da <lv_img_design+0x3f2>
if(ext->cf != LV_IMG_CF_TRUE_COLOR && ext->cf != LV_IMG_CF_RAW) return LV_DESIGN_RES_NOT_COVER;
18f78: 2307 movs r3, #7
18f7a: 439a bics r2, r3
18f7c: 2a20 cmp r2, #32
18f7e: d002 beq.n 18f86 <lv_img_design+0x19e>
18f80: 2a08 cmp r2, #8
18f82: d000 beq.n 18f86 <lv_img_design+0x19e>
18f84: e129 b.n 191da <lv_img_design+0x3f2>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
18f86: 2206 movs r2, #6
18f88: 2100 movs r1, #0
18f8a: 0020 movs r0, r4
18f8c: 4b72 ldr r3, [pc, #456] ; (19158 <lv_img_design+0x370>)
18f8e: 4798 blx r3
angle_final += ext->angle;
18f90: 89ab ldrh r3, [r5, #12]
18f92: 181b adds r3, r3, r0
if(angle_final == 0) return LV_DESIGN_RES_NOT_COVER;
18f94: 2002 movs r0, #2
18f96: 2b00 cmp r3, #0
18f98: d100 bne.n 18f9c <lv_img_design+0x1b4>
18f9a: e11e b.n 191da <lv_img_design+0x3f2>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
18f9c: 2207 movs r2, #7
18f9e: 2100 movs r1, #0
18fa0: 0020 movs r0, r4
18fa2: 4b6d ldr r3, [pc, #436] ; (19158 <lv_img_design+0x370>)
18fa4: 4798 blx r3
zoom_final = (zoom_final * ext->zoom) >> 8;
18fa6: 8a6b ldrh r3, [r5, #18]
18fa8: 4343 muls r3, r0
18faa: 121b asrs r3, r3, #8
if(zoom_final != LV_IMG_ZOOM_NONE) {
18fac: 2280 movs r2, #128 ; 0x80
18fae: 0052 lsls r2, r2, #1
18fb0: 4293 cmp r3, r2
18fb2: d009 beq.n 18fc8 <lv_img_design+0x1e0>
if(_lv_area_is_in(clip_area, &img->coords, 0) == false) return LV_DESIGN_RES_NOT_COVER;
18fb4: 0021 movs r1, r4
18fb6: 3110 adds r1, #16
18fb8: 2200 movs r2, #0
18fba: 9803 ldr r0, [sp, #12]
18fbc: 4b6f ldr r3, [pc, #444] ; (1917c <lv_img_design+0x394>)
18fbe: 4798 blx r3
18fc0: 2800 cmp r0, #0
18fc2: d12b bne.n 1901c <lv_img_design+0x234>
18fc4: 3002 adds r0, #2
18fc6: e108 b.n 191da <lv_img_design+0x3f2>
_lv_img_buf_get_transformed_area(&a, lv_obj_get_width(img), lv_obj_get_height(img), 0, zoom_final, &ext->pivot);
18fc8: 0020 movs r0, r4
18fca: 4b6d ldr r3, [pc, #436] ; (19180 <lv_img_design+0x398>)
18fcc: 4798 blx r3
18fce: 0007 movs r7, r0
18fd0: 0020 movs r0, r4
18fd2: 4b6c ldr r3, [pc, #432] ; (19184 <lv_img_design+0x39c>)
18fd4: 4798 blx r3
18fd6: 0002 movs r2, r0
18fd8: ae11 add r6, sp, #68 ; 0x44
18fda: 350e adds r5, #14
18fdc: 9501 str r5, [sp, #4]
18fde: 2380 movs r3, #128 ; 0x80
18fe0: 005b lsls r3, r3, #1
18fe2: 9300 str r3, [sp, #0]
18fe4: 2300 movs r3, #0
18fe6: 0039 movs r1, r7
18fe8: 0030 movs r0, r6
18fea: 4f5c ldr r7, [pc, #368] ; (1915c <lv_img_design+0x374>)
18fec: 47b8 blx r7
a.x1 += img->coords.x1;
18fee: 8a22 ldrh r2, [r4, #16]
18ff0: 8833 ldrh r3, [r6, #0]
18ff2: 18d3 adds r3, r2, r3
18ff4: 8033 strh r3, [r6, #0]
a.y1 += img->coords.y1;
18ff6: 8a63 ldrh r3, [r4, #18]
18ff8: 8871 ldrh r1, [r6, #2]
18ffa: 1859 adds r1, r3, r1
18ffc: 8071 strh r1, [r6, #2]
a.x2 += img->coords.x1;
18ffe: 88b1 ldrh r1, [r6, #4]
19000: 1852 adds r2, r2, r1
19002: 80b2 strh r2, [r6, #4]
a.y2 += img->coords.y1;
19004: 88f2 ldrh r2, [r6, #6]
19006: 189b adds r3, r3, r2
19008: 80f3 strh r3, [r6, #6]
if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER;
1900a: 2200 movs r2, #0
1900c: 0031 movs r1, r6
1900e: 9803 ldr r0, [sp, #12]
19010: 4b5a ldr r3, [pc, #360] ; (1917c <lv_img_design+0x394>)
19012: 4798 blx r3
19014: 2800 cmp r0, #0
19016: d101 bne.n 1901c <lv_img_design+0x234>
19018: 3002 adds r0, #2
1901a: e0de b.n 191da <lv_img_design+0x3f2>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
1901c: 4a5a ldr r2, [pc, #360] ; (19188 <lv_img_design+0x3a0>)
1901e: 2100 movs r1, #0
19020: 0020 movs r0, r4
19022: 4b5a ldr r3, [pc, #360] ; (1918c <lv_img_design+0x3a4>)
19024: 4798 blx r3
return LV_DESIGN_RES_COVER;
19026: 38ff subs r0, #255 ; 0xff
19028: 1e43 subs r3, r0, #1
1902a: 4198 sbcs r0, r3
1902c: 3001 adds r0, #1
1902e: e0d4 b.n 191da <lv_img_design+0x3f2>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
19030: 201c movs r0, #28
19032: 4b57 ldr r3, [pc, #348] ; (19190 <lv_img_design+0x3a8>)
19034: 4798 blx r3
19036: 0006 movs r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
19038: 2201 movs r2, #1
1903a: 2100 movs r1, #0
1903c: 0020 movs r0, r4
1903e: 4b46 ldr r3, [pc, #280] ; (19158 <lv_img_design+0x370>)
19040: 4798 blx r3
19042: 0002 movs r2, r0
lv_draw_mask_radius_init(mp, &bg_coords, r, false);
19044: 2300 movs r3, #0
19046: a906 add r1, sp, #24
19048: 0030 movs r0, r6
1904a: 4f52 ldr r7, [pc, #328] ; (19194 <lv_img_design+0x3ac>)
1904c: 47b8 blx r7
lv_draw_mask_add(mp, img + 8);
1904e: 2398 movs r3, #152 ; 0x98
19050: 009b lsls r3, r3, #2
19052: 18e1 adds r1, r4, r3
19054: 0030 movs r0, r6
19056: 4b50 ldr r3, [pc, #320] ; (19198 <lv_img_design+0x3b0>)
19058: 4798 blx r3
1905a: e761 b.n 18f20 <lv_img_design+0x138>
img_coords.x1 += ext->offset.x;
1905c: aa04 add r2, sp, #16
1905e: 8813 ldrh r3, [r2, #0]
19060: 88a9 ldrh r1, [r5, #4]
19062: 1859 adds r1, r3, r1
19064: b289 uxth r1, r1
19066: b20e sxth r6, r1
19068: 8016 strh r6, [r2, #0]
img_coords.y1 += ext->offset.y;
1906a: 8853 ldrh r3, [r2, #2]
1906c: 88e8 ldrh r0, [r5, #6]
1906e: 181b adds r3, r3, r0
19070: b29b uxth r3, r3
19072: b218 sxth r0, r3
19074: 8050 strh r0, [r2, #2]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
19076: 2710 movs r7, #16
19078: 5fe2 ldrsh r2, [r4, r7]
1907a: 42b2 cmp r2, r6
1907c: da03 bge.n 19086 <lv_img_design+0x29e>
1907e: 892a ldrh r2, [r5, #8]
19080: 1a89 subs r1, r1, r2
19082: aa04 add r2, sp, #16
19084: 8011 strh r1, [r2, #0]
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
19086: 2112 movs r1, #18
19088: 5e62 ldrsh r2, [r4, r1]
1908a: 4282 cmp r2, r0
1908c: da03 bge.n 19096 <lv_img_design+0x2ae>
1908e: 896a ldrh r2, [r5, #10]
19090: 1a9b subs r3, r3, r2
19092: aa04 add r2, sp, #16
19094: 8053 strh r3, [r2, #2]
lv_draw_img_dsc_init(&img_dsc);
19096: ae0a add r6, sp, #40 ; 0x28
19098: 0030 movs r0, r6
1909a: 4b40 ldr r3, [pc, #256] ; (1919c <lv_img_design+0x3b4>)
1909c: 4798 blx r3
lv_obj_init_draw_img_dsc(img, LV_IMG_PART_MAIN, &img_dsc);
1909e: 0032 movs r2, r6
190a0: 2100 movs r1, #0
190a2: 0020 movs r0, r4
190a4: 4b3e ldr r3, [pc, #248] ; (191a0 <lv_img_design+0x3b8>)
190a6: 4798 blx r3
img_dsc.zoom = zoom_final;
190a8: 464b mov r3, r9
190aa: 8133 strh r3, [r6, #8]
if(img_dsc.zoom == 0) return LV_DESIGN_RES_OK;
190ac: 464b mov r3, r9
190ae: 2000 movs r0, #0
190b0: 2b00 cmp r3, #0
190b2: d100 bne.n 190b6 <lv_img_design+0x2ce>
190b4: e091 b.n 191da <lv_img_design+0x3f2>
img_dsc.angle = angle_final;
190b6: ab0a add r3, sp, #40 ; 0x28
190b8: 4642 mov r2, r8
190ba: 805a strh r2, [r3, #2]
img_dsc.pivot.x = ext->pivot.x;
190bc: 89ea ldrh r2, [r5, #14]
190be: 809a strh r2, [r3, #4]
img_dsc.pivot.y = ext->pivot.y;
190c0: 8a2a ldrh r2, [r5, #16]
190c2: 80da strh r2, [r3, #6]
img_dsc.antialias = ext->antialias;
190c4: 7d6a ldrb r2, [r5, #21]
190c6: 2101 movs r1, #1
190c8: 4011 ands r1, r2
190ca: 7bda ldrb r2, [r3, #15]
190cc: 2001 movs r0, #1
190ce: 4382 bics r2, r0
190d0: 430a orrs r2, r1
190d2: 73da strb r2, [r3, #15]
cords_tmp.y1 = img_coords.y1;
190d4: a904 add r1, sp, #16
190d6: 2202 movs r2, #2
190d8: 5e8b ldrsh r3, [r1, r2]
190da: a808 add r0, sp, #32
190dc: 8043 strh r3, [r0, #2]
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
190de: 1e5c subs r4, r3, #1
190e0: 896a ldrh r2, [r5, #10]
190e2: 1912 adds r2, r2, r4
190e4: 80c2 strh r2, [r0, #6]
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
190e6: 2206 movs r2, #6
190e8: 5e8a ldrsh r2, [r1, r2]
190ea: 429a cmp r2, r3
190ec: da00 bge.n 190f0 <lv_img_design+0x308>
190ee: e72f b.n 18f50 <lv_img_design+0x168>
cords_tmp.x1 = img_coords.x1;
190f0: ae04 add r6, sp, #16
190f2: 0004 movs r4, r0
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
190f4: 4f20 ldr r7, [pc, #128] ; (19178 <lv_img_design+0x390>)
cords_tmp.x1 = img_coords.x1;
190f6: 2200 movs r2, #0
190f8: 5eb3 ldrsh r3, [r6, r2]
190fa: 8023 strh r3, [r4, #0]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
190fc: 1e59 subs r1, r3, #1
190fe: 892a ldrh r2, [r5, #8]
19100: 1852 adds r2, r2, r1
19102: 80a2 strh r2, [r4, #4]
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
19104: 2104 movs r1, #4
19106: 5e72 ldrsh r2, [r6, r1]
19108: 429a cmp r2, r3
1910a: db10 blt.n 1912e <lv_img_design+0x346>
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
1910c: ab0a add r3, sp, #40 ; 0x28
1910e: 682a ldr r2, [r5, #0]
19110: 9903 ldr r1, [sp, #12]
19112: 0020 movs r0, r4
19114: 47b8 blx r7
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
19116: 892a ldrh r2, [r5, #8]
19118: 8823 ldrh r3, [r4, #0]
1911a: 18d3 adds r3, r2, r3
1911c: b21b sxth r3, r3
1911e: 8023 strh r3, [r4, #0]
19120: 88a1 ldrh r1, [r4, #4]
19122: 1852 adds r2, r2, r1
19124: 80a2 strh r2, [r4, #4]
19126: 2104 movs r1, #4
19128: 5e72 ldrsh r2, [r6, r1]
1912a: 429a cmp r2, r3
1912c: daee bge.n 1910c <lv_img_design+0x324>
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
1912e: 896a ldrh r2, [r5, #10]
19130: 8863 ldrh r3, [r4, #2]
19132: 18d3 adds r3, r2, r3
19134: b21b sxth r3, r3
19136: 8063 strh r3, [r4, #2]
19138: 88e1 ldrh r1, [r4, #6]
1913a: 1852 adds r2, r2, r1
1913c: 80e2 strh r2, [r4, #6]
1913e: 2106 movs r1, #6
19140: 5e72 ldrsh r2, [r6, r1]
19142: 429a cmp r2, r3
19144: dad7 bge.n 190f6 <lv_img_design+0x30e>
19146: e703 b.n 18f50 <lv_img_design+0x168>
19148: 000043d1 .word 0x000043d1
1914c: 0000237d .word 0x0000237d
19150: 0000bfcd .word 0x0000bfcd
19154: 00004701 .word 0x00004701
19158: 00003a89 .word 0x00003a89
1915c: 0000e92d .word 0x0000e92d
19160: 0000c071 .word 0x0000c071
19164: 000264b4 .word 0x000264b4
19168: 0002ade4 .word 0x0002ade4
1916c: 000002bb .word 0x000002bb
19170: 0002ae04 .word 0x0002ae04
19174: 00012159 .word 0x00012159
19178: 00009305 .word 0x00009305
1917c: 00011699 .word 0x00011699
19180: 000024a1 .word 0x000024a1
19184: 000024f5 .word 0x000024f5
19188: 000080ac .word 0x000080ac
1918c: 00003bed .word 0x00003bed
19190: 000127a1 .word 0x000127a1
19194: 0000bd01 .word 0x0000bd01
19198: 0000ba75 .word 0x0000ba75
1919c: 00009271 .word 0x00009271
191a0: 00004d6d .word 0x00004d6d
lv_draw_label_dsc_init(&label_dsc);
191a4: ae0a add r6, sp, #40 ; 0x28
191a6: 0030 movs r0, r6
191a8: 4b26 ldr r3, [pc, #152] ; (19244 <lv_img_design+0x45c>)
191aa: 4798 blx r3
lv_obj_init_draw_label_dsc(img, LV_IMG_PART_MAIN, &label_dsc);
191ac: 0032 movs r2, r6
191ae: 2100 movs r1, #0
191b0: 0020 movs r0, r4
191b2: 4b25 ldr r3, [pc, #148] ; (19248 <lv_img_design+0x460>)
191b4: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
191b6: 4a25 ldr r2, [pc, #148] ; (1924c <lv_img_design+0x464>)
191b8: 2100 movs r1, #0
191ba: 0020 movs r0, r4
191bc: 4b24 ldr r3, [pc, #144] ; (19250 <lv_img_design+0x468>)
191be: 4798 blx r3
label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN);
191c0: 8030 strh r0, [r6, #0]
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
191c2: 682b ldr r3, [r5, #0]
191c4: 2200 movs r2, #0
191c6: 9200 str r2, [sp, #0]
191c8: 0032 movs r2, r6
191ca: 9903 ldr r1, [sp, #12]
191cc: a804 add r0, sp, #16
191ce: 4c21 ldr r4, [pc, #132] ; (19254 <lv_img_design+0x46c>)
191d0: 47a0 blx r4
191d2: e6bd b.n 18f50 <lv_img_design+0x168>
return LV_DESIGN_RES_OK;
191d4: 2000 movs r0, #0
else if(mode == LV_DESIGN_DRAW_POST) {
191d6: 2e01 cmp r6, #1
191d8: d006 beq.n 191e8 <lv_img_design+0x400>
}
191da: b027 add sp, #156 ; 0x9c
191dc: bc3c pop {r2, r3, r4, r5}
191de: 4690 mov r8, r2
191e0: 4699 mov r9, r3
191e2: 46a2 mov sl, r4
191e4: 46ab mov fp, r5
191e6: bdf0 pop {r4, r5, r6, r7, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
191e8: 2202 movs r2, #2
191ea: 2100 movs r1, #0
191ec: 0020 movs r0, r4
191ee: 4b1a ldr r3, [pc, #104] ; (19258 <lv_img_design+0x470>)
191f0: 4798 blx r3
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
191f2: 2800 cmp r0, #0
191f4: d10b bne.n 1920e <lv_img_design+0x426>
lv_draw_rect_dsc_init(&draw_dsc);
191f6: a811 add r0, sp, #68 ; 0x44
191f8: 4b18 ldr r3, [pc, #96] ; (1925c <lv_img_design+0x474>)
191fa: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
191fc: 2233 movs r2, #51 ; 0x33
191fe: 2100 movs r1, #0
19200: 0020 movs r0, r4
19202: 4b15 ldr r3, [pc, #84] ; (19258 <lv_img_design+0x470>)
19204: 4798 blx r3
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
19206: 2800 cmp r0, #0
19208: d109 bne.n 1921e <lv_img_design+0x436>
return LV_DESIGN_RES_OK;
1920a: 2000 movs r0, #0
1920c: e7e5 b.n 191da <lv_img_design+0x3f2>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(img + 8);
1920e: 2398 movs r3, #152 ; 0x98
19210: 009b lsls r3, r3, #2
19212: 18e0 adds r0, r4, r3
19214: 4b12 ldr r3, [pc, #72] ; (19260 <lv_img_design+0x478>)
19216: 4798 blx r3
_lv_mem_buf_release(param);
19218: 4b12 ldr r3, [pc, #72] ; (19264 <lv_img_design+0x47c>)
1921a: 4798 blx r3
1921c: e7eb b.n 191f6 <lv_img_design+0x40e>
draw_dsc.bg_opa = LV_OPA_TRANSP;
1921e: ae11 add r6, sp, #68 ; 0x44
19220: 2300 movs r3, #0
19222: 7333 strb r3, [r6, #12]
draw_dsc.pattern_opa = LV_OPA_TRANSP;
19224: 2236 movs r2, #54 ; 0x36
19226: 54b3 strb r3, [r6, r2]
draw_dsc.shadow_opa = LV_OPA_TRANSP;
19228: 3a0e subs r2, #14
1922a: 54b3 strb r3, [r6, r2]
lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc);
1922c: 0032 movs r2, r6
1922e: 2100 movs r1, #0
19230: 0020 movs r0, r4
19232: 4b0d ldr r3, [pc, #52] ; (19268 <lv_img_design+0x480>)
19234: 4798 blx r3
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
19236: 0020 movs r0, r4
19238: 3010 adds r0, #16
1923a: 0032 movs r2, r6
1923c: 9903 ldr r1, [sp, #12]
1923e: 4b0b ldr r3, [pc, #44] ; (1926c <lv_img_design+0x484>)
19240: 4798 blx r3
19242: e7e2 b.n 1920a <lv_img_design+0x422>
19244: 000095ed .word 0x000095ed
19248: 00004ca5 .word 0x00004ca5
1924c: 000080a9 .word 0x000080a9
19250: 00003b49 .word 0x00003b49
19254: 0000963d .word 0x0000963d
19258: 00003a89 .word 0x00003a89
1925c: 0000bfcd .word 0x0000bfcd
19260: 0000bb41 .word 0x0000bb41
19264: 00012465 .word 0x00012465
19268: 00004701 .word 0x00004701
1926c: 0000c071 .word 0x0000c071
00019270 <lv_img_get_auto_size>:
{
19270: b530 push {r4, r5, lr}
19272: b083 sub sp, #12
19274: 0004 movs r4, r0
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
19276: 4b0d ldr r3, [pc, #52] ; (192ac <lv_img_get_auto_size+0x3c>)
19278: 4798 blx r3
1927a: 2800 cmp r0, #0
1927c: d10d bne.n 1929a <lv_img_get_auto_size+0x2a>
1927e: 4b0c ldr r3, [pc, #48] ; (192b0 <lv_img_get_auto_size+0x40>)
19280: 9300 str r3, [sp, #0]
19282: 22e7 movs r2, #231 ; 0xe7
19284: 0052 lsls r2, r2, #1
19286: 490b ldr r1, [pc, #44] ; (192b4 <lv_img_get_auto_size+0x44>)
19288: 3003 adds r0, #3
1928a: 4d0b ldr r5, [pc, #44] ; (192b8 <lv_img_get_auto_size+0x48>)
1928c: 47a8 blx r5
1928e: 0022 movs r2, r4
19290: 2300 movs r3, #0
19292: 480a ldr r0, [pc, #40] ; (192bc <lv_img_get_auto_size+0x4c>)
19294: 490a ldr r1, [pc, #40] ; (192c0 <lv_img_get_auto_size+0x50>)
19296: 4788 blx r1
19298: e7fe b.n 19298 <lv_img_get_auto_size+0x28>
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
1929a: 0020 movs r0, r4
1929c: 4b09 ldr r3, [pc, #36] ; (192c4 <lv_img_get_auto_size+0x54>)
1929e: 4798 blx r3
return ext->auto_size == 0 ? false : true;
192a0: 7d00 ldrb r0, [r0, #20]
192a2: 0740 lsls r0, r0, #29
192a4: 0fc0 lsrs r0, r0, #31
}
192a6: b003 add sp, #12
192a8: bd30 pop {r4, r5, pc}
192aa: 46c0 nop ; (mov r8, r8)
192ac: 000017ad .word 0x000017ad
192b0: 0002adcc .word 0x0002adcc
192b4: 0002ae04 .word 0x0002ae04
192b8: 00012159 .word 0x00012159
192bc: 00025d20 .word 0x00025d20
192c0: 000017b5 .word 0x000017b5
192c4: 000043d1 .word 0x000043d1
000192c8 <lv_img_set_src>:
{
192c8: b5f0 push {r4, r5, r6, r7, lr}
192ca: 46d6 mov lr, sl
192cc: 464f mov r7, r9
192ce: b580 push {r7, lr}
192d0: b089 sub sp, #36 ; 0x24
192d2: 0004 movs r4, r0
192d4: 9004 str r0, [sp, #16]
192d6: 000d movs r5, r1
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
192d8: 4b83 ldr r3, [pc, #524] ; (194e8 <lv_img_set_src+0x220>)
192da: 4798 blx r3
192dc: 2800 cmp r0, #0
192de: d10c bne.n 192fa <lv_img_set_src+0x32>
192e0: 4b82 ldr r3, [pc, #520] ; (194ec <lv_img_set_src+0x224>)
192e2: 9300 str r3, [sp, #0]
192e4: 228f movs r2, #143 ; 0x8f
192e6: 4982 ldr r1, [pc, #520] ; (194f0 <lv_img_set_src+0x228>)
192e8: 3003 adds r0, #3
192ea: 4d82 ldr r5, [pc, #520] ; (194f4 <lv_img_set_src+0x22c>)
192ec: 47a8 blx r5
192ee: 0022 movs r2, r4
192f0: 2300 movs r3, #0
192f2: 4881 ldr r0, [pc, #516] ; (194f8 <lv_img_set_src+0x230>)
192f4: 4981 ldr r1, [pc, #516] ; (194fc <lv_img_set_src+0x234>)
192f6: 4788 blx r1
192f8: e7fe b.n 192f8 <lv_img_set_src+0x30>
lv_img_src_t src_type = lv_img_src_get_type(src_img);
192fa: 0028 movs r0, r5
192fc: 4b80 ldr r3, [pc, #512] ; (19500 <lv_img_set_src+0x238>)
192fe: 4798 blx r3
19300: 4681 mov r9, r0
19302: 0007 movs r7, r0
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
19304: 9804 ldr r0, [sp, #16]
19306: 4b7f ldr r3, [pc, #508] ; (19504 <lv_img_set_src+0x23c>)
19308: 4798 blx r3
1930a: 0004 movs r4, r0
switch(src_type) {
1930c: 2f02 cmp r7, #2
1930e: d849 bhi.n 193a4 <lv_img_set_src+0xdc>
if(src_type == LV_IMG_SRC_UNKNOWN) {
19310: 2f03 cmp r7, #3
19312: d050 beq.n 193b6 <lv_img_set_src+0xee>
lv_img_decoder_get_info(src_img, &header);
19314: a907 add r1, sp, #28
19316: 0028 movs r0, r5
19318: 4b7b ldr r3, [pc, #492] ; (19508 <lv_img_set_src+0x240>)
1931a: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
1931c: 2f00 cmp r7, #0
1931e: d062 beq.n 193e6 <lv_img_set_src+0x11e>
else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) {
19320: 464b mov r3, r9
19322: 3b01 subs r3, #1
19324: b2db uxtb r3, r3
19326: 2b01 cmp r3, #1
19328: d800 bhi.n 1932c <lv_img_set_src+0x64>
1932a: e06f b.n 1940c <lv_img_set_src+0x144>
if(src_type == LV_IMG_SRC_SYMBOL) {
1932c: 2f02 cmp r7, #2
1932e: d100 bne.n 19332 <lv_img_set_src+0x6a>
19330: e0a0 b.n 19474 <lv_img_set_src+0x1ac>
ext->src_type = src_type;
19332: 2603 movs r6, #3
19334: 464b mov r3, r9
19336: 401e ands r6, r3
19338: 7d21 ldrb r1, [r4, #20]
1933a: 2303 movs r3, #3
1933c: 4399 bics r1, r3
ext->w = header.w;
1933e: 9b07 ldr r3, [sp, #28]
19340: 02db lsls r3, r3, #11
19342: 0d5b lsrs r3, r3, #21
19344: b298 uxth r0, r3
19346: 8123 strh r3, [r4, #8]
ext->h = header.h;
19348: 2316 movs r3, #22
1934a: aa02 add r2, sp, #8
1934c: 4694 mov ip, r2
1934e: 4463 add r3, ip
19350: 881a ldrh r2, [r3, #0]
19352: 0952 lsrs r2, r2, #5
19354: b295 uxth r5, r2
19356: 8162 strh r2, [r4, #10]
ext->cf = header.cf;
19358: ab07 add r3, sp, #28
1935a: 781a ldrb r2, [r3, #0]
1935c: 06d2 lsls r2, r2, #27
1935e: 0e12 lsrs r2, r2, #24
19360: 4331 orrs r1, r6
19362: 2307 movs r3, #7
19364: 400b ands r3, r1
19366: 4313 orrs r3, r2
19368: 7523 strb r3, [r4, #20]
ext->pivot.x = header.w / 2;
1936a: 0840 lsrs r0, r0, #1
1936c: 81e0 strh r0, [r4, #14]
ext->pivot.y = header.h / 2;
1936e: 086d lsrs r5, r5, #1
19370: 8225 strh r5, [r4, #16]
if(lv_img_get_auto_size(img) != false) {
19372: 9804 ldr r0, [sp, #16]
19374: 4b65 ldr r3, [pc, #404] ; (1950c <lv_img_set_src+0x244>)
19376: 4798 blx r3
19378: 2800 cmp r0, #0
1937a: d000 beq.n 1937e <lv_img_set_src+0xb6>
1937c: e0ab b.n 194d6 <lv_img_set_src+0x20e>
if(ext->angle || ext->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_pad(img);
1937e: 89a3 ldrh r3, [r4, #12]
19380: 2b00 cmp r3, #0
19382: d104 bne.n 1938e <lv_img_set_src+0xc6>
19384: 3301 adds r3, #1
19386: 33ff adds r3, #255 ; 0xff
19388: 8a62 ldrh r2, [r4, #18]
1938a: 429a cmp r2, r3
1938c: d002 beq.n 19394 <lv_img_set_src+0xcc>
1938e: 9804 ldr r0, [sp, #16]
19390: 4b5f ldr r3, [pc, #380] ; (19510 <lv_img_set_src+0x248>)
19392: 4798 blx r3
lv_obj_invalidate(img);
19394: 9804 ldr r0, [sp, #16]
19396: 4b5f ldr r3, [pc, #380] ; (19514 <lv_img_set_src+0x24c>)
19398: 4798 blx r3
}
1939a: b009 add sp, #36 ; 0x24
1939c: bc0c pop {r2, r3}
1939e: 4691 mov r9, r2
193a0: 469a mov sl, r3
193a2: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_WARN("lv_img_set_src: unknown type");
193a4: 4b5c ldr r3, [pc, #368] ; (19518 <lv_img_set_src+0x250>)
193a6: 9300 str r3, [sp, #0]
193a8: 4b50 ldr r3, [pc, #320] ; (194ec <lv_img_set_src+0x224>)
193aa: 22a0 movs r2, #160 ; 0xa0
193ac: 4950 ldr r1, [pc, #320] ; (194f0 <lv_img_set_src+0x228>)
193ae: 2002 movs r0, #2
193b0: 4e50 ldr r6, [pc, #320] ; (194f4 <lv_img_set_src+0x22c>)
193b2: 47b0 blx r6
193b4: e7ac b.n 19310 <lv_img_set_src+0x48>
LV_LOG_WARN("lv_img_set_src: unknown image type");
193b6: 4b59 ldr r3, [pc, #356] ; (1951c <lv_img_set_src+0x254>)
193b8: 9300 str r3, [sp, #0]
193ba: 4b4c ldr r3, [pc, #304] ; (194ec <lv_img_set_src+0x224>)
193bc: 22a6 movs r2, #166 ; 0xa6
193be: 494c ldr r1, [pc, #304] ; (194f0 <lv_img_set_src+0x228>)
193c0: 2002 movs r0, #2
193c2: 4d4c ldr r5, [pc, #304] ; (194f4 <lv_img_set_src+0x22c>)
193c4: 47a8 blx r5
if(ext->src_type == LV_IMG_SRC_SYMBOL || ext->src_type == LV_IMG_SRC_FILE) {
193c6: 7d22 ldrb r2, [r4, #20]
193c8: 2303 movs r3, #3
193ca: 4013 ands r3, r2
193cc: 3b01 subs r3, #1
193ce: 2b01 cmp r3, #1
193d0: d802 bhi.n 193d8 <lv_img_set_src+0x110>
lv_mem_free(ext->src);
193d2: 6820 ldr r0, [r4, #0]
193d4: 4b52 ldr r3, [pc, #328] ; (19520 <lv_img_set_src+0x258>)
193d6: 4798 blx r3
ext->src = NULL;
193d8: 2300 movs r3, #0
193da: 6023 str r3, [r4, #0]
ext->src_type = LV_IMG_SRC_UNKNOWN;
193dc: 7d23 ldrb r3, [r4, #20]
193de: 2203 movs r2, #3
193e0: 4313 orrs r3, r2
193e2: 7523 strb r3, [r4, #20]
return;
193e4: e7d9 b.n 1939a <lv_img_set_src+0xd2>
LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
193e6: 4b4f ldr r3, [pc, #316] ; (19524 <lv_img_set_src+0x25c>)
193e8: 9300 str r3, [sp, #0]
193ea: 4b40 ldr r3, [pc, #256] ; (194ec <lv_img_set_src+0x224>)
193ec: 22b4 movs r2, #180 ; 0xb4
193ee: 4940 ldr r1, [pc, #256] ; (194f0 <lv_img_set_src+0x228>)
193f0: 2001 movs r0, #1
193f2: 4e40 ldr r6, [pc, #256] ; (194f4 <lv_img_set_src+0x22c>)
193f4: 47b0 blx r6
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
193f6: 7d22 ldrb r2, [r4, #20]
193f8: 2303 movs r3, #3
193fa: 4013 ands r3, r2
193fc: 3b01 subs r3, #1
193fe: 2b01 cmp r3, #1
19400: d802 bhi.n 19408 <lv_img_set_src+0x140>
lv_mem_free(ext->src);
19402: 6820 ldr r0, [r4, #0]
19404: 4b46 ldr r3, [pc, #280] ; (19520 <lv_img_set_src+0x258>)
19406: 4798 blx r3
ext->src = src_img;
19408: 6025 str r5, [r4, #0]
1940a: e792 b.n 19332 <lv_img_set_src+0x6a>
if(ext->src != src_img) {
1940c: 6823 ldr r3, [r4, #0]
1940e: 469a mov sl, r3
19410: 429d cmp r5, r3
19412: d100 bne.n 19416 <lv_img_set_src+0x14e>
19414: e78a b.n 1932c <lv_img_set_src+0x64>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
19416: 7d22 ldrb r2, [r4, #20]
19418: 2303 movs r3, #3
1941a: 4013 ands r3, r2
1941c: 3b01 subs r3, #1
1941e: 2b01 cmp r3, #1
19420: d901 bls.n 19426 <lv_img_set_src+0x15e>
const void * old_src = NULL;
19422: 2300 movs r3, #0
19424: 469a mov sl, r3
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
19426: 0028 movs r0, r5
19428: 4b3f ldr r3, [pc, #252] ; (19528 <lv_img_set_src+0x260>)
1942a: 4798 blx r3
1942c: 3001 adds r0, #1
1942e: 4b3f ldr r3, [pc, #252] ; (1952c <lv_img_set_src+0x264>)
19430: 4798 blx r3
19432: 0006 movs r6, r0
LV_ASSERT_MEM(new_str);
19434: 4b2c ldr r3, [pc, #176] ; (194e8 <lv_img_set_src+0x220>)
19436: 4798 blx r3
19438: 2800 cmp r0, #0
1943a: d10c bne.n 19456 <lv_img_set_src+0x18e>
1943c: 4b2b ldr r3, [pc, #172] ; (194ec <lv_img_set_src+0x224>)
1943e: 9300 str r3, [sp, #0]
19440: 22c7 movs r2, #199 ; 0xc7
19442: 492b ldr r1, [pc, #172] ; (194f0 <lv_img_set_src+0x228>)
19444: 3003 adds r0, #3
19446: 4c2b ldr r4, [pc, #172] ; (194f4 <lv_img_set_src+0x22c>)
19448: 47a0 blx r4
1944a: 0032 movs r2, r6
1944c: 2300 movs r3, #0
1944e: 4838 ldr r0, [pc, #224] ; (19530 <lv_img_set_src+0x268>)
19450: 492a ldr r1, [pc, #168] ; (194fc <lv_img_set_src+0x234>)
19452: 4788 blx r1
19454: e7fe b.n 19454 <lv_img_set_src+0x18c>
if(new_str == NULL) return;
19456: 2e00 cmp r6, #0
19458: d09f beq.n 1939a <lv_img_set_src+0xd2>
strcpy(new_str, src_img);
1945a: 0029 movs r1, r5
1945c: 0030 movs r0, r6
1945e: 4b35 ldr r3, [pc, #212] ; (19534 <lv_img_set_src+0x26c>)
19460: 4798 blx r3
ext->src = new_str;
19462: 6026 str r6, [r4, #0]
if(old_src) lv_mem_free(old_src);
19464: 4653 mov r3, sl
19466: 2b00 cmp r3, #0
19468: d100 bne.n 1946c <lv_img_set_src+0x1a4>
1946a: e75f b.n 1932c <lv_img_set_src+0x64>
1946c: 4650 mov r0, sl
1946e: 4b2c ldr r3, [pc, #176] ; (19520 <lv_img_set_src+0x258>)
19470: 4798 blx r3
19472: e75b b.n 1932c <lv_img_set_src+0x64>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
19474: 4a30 ldr r2, [pc, #192] ; (19538 <lv_img_set_src+0x270>)
19476: 2100 movs r1, #0
19478: 9e04 ldr r6, [sp, #16]
1947a: 0030 movs r0, r6
1947c: 4b2f ldr r3, [pc, #188] ; (1953c <lv_img_set_src+0x274>)
1947e: 4798 blx r3
19480: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
19482: 4a2f ldr r2, [pc, #188] ; (19540 <lv_img_set_src+0x278>)
19484: 2100 movs r1, #0
19486: 9604 str r6, [sp, #16]
19488: 0030 movs r0, r6
1948a: 4e2e ldr r6, [pc, #184] ; (19544 <lv_img_set_src+0x27c>)
1948c: 47b0 blx r6
1948e: 0007 movs r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
19490: 4a2d ldr r2, [pc, #180] ; (19548 <lv_img_set_src+0x280>)
19492: 2100 movs r1, #0
19494: 9804 ldr r0, [sp, #16]
19496: 47b0 blx r6
_lv_txt_get_size(&size, src_img, font, letter_space, line_space,
19498: ae06 add r6, sp, #24
1949a: 2300 movs r3, #0
1949c: 9302 str r3, [sp, #8]
1949e: 4b2b ldr r3, [pc, #172] ; (1954c <lv_img_set_src+0x284>)
194a0: 9301 str r3, [sp, #4]
194a2: 9000 str r0, [sp, #0]
194a4: 003b movs r3, r7
194a6: 9a05 ldr r2, [sp, #20]
194a8: 0029 movs r1, r5
194aa: 0030 movs r0, r6
194ac: 4d28 ldr r5, [pc, #160] ; (19550 <lv_img_set_src+0x288>)
194ae: 47a8 blx r5
header.w = size.x;
194b0: 8833 ldrh r3, [r6, #0]
194b2: 055b lsls r3, r3, #21
194b4: 0ada lsrs r2, r3, #11
194b6: 4b27 ldr r3, [pc, #156] ; (19554 <lv_img_set_src+0x28c>)
194b8: 9907 ldr r1, [sp, #28]
194ba: 400b ands r3, r1
194bc: 4313 orrs r3, r2
194be: 9307 str r3, [sp, #28]
header.h = size.y;
194c0: 8872 ldrh r2, [r6, #2]
194c2: 0152 lsls r2, r2, #5
194c4: 02db lsls r3, r3, #11
194c6: 0edb lsrs r3, r3, #27
194c8: 4313 orrs r3, r2
194ca: 2216 movs r2, #22
194cc: a902 add r1, sp, #8
194ce: 468c mov ip, r1
194d0: 4462 add r2, ip
194d2: 8013 strh r3, [r2, #0]
194d4: e72d b.n 19332 <lv_img_set_src+0x6a>
lv_obj_set_size(img, ext->w, ext->h);
194d6: 230a movs r3, #10
194d8: 5ee2 ldrsh r2, [r4, r3]
194da: 2308 movs r3, #8
194dc: 5ee1 ldrsh r1, [r4, r3]
194de: 9804 ldr r0, [sp, #16]
194e0: 4b1d ldr r3, [pc, #116] ; (19558 <lv_img_set_src+0x290>)
194e2: 4798 blx r3
194e4: e74b b.n 1937e <lv_img_set_src+0xb6>
194e6: 46c0 nop ; (mov r8, r8)
194e8: 000017ad .word 0x000017ad
194ec: 0002adbc .word 0x0002adbc
194f0: 0002ae04 .word 0x0002ae04
194f4: 00012159 .word 0x00012159
194f8: 00025d20 .word 0x00025d20
194fc: 000017b5 .word 0x000017b5
19500: 00009589 .word 0x00009589
19504: 000043d1 .word 0x000043d1
19508: 0000fc21 .word 0x0000fc21
1950c: 00019271 .word 0x00019271
19510: 0000214d .word 0x0000214d
19514: 00002869 .word 0x00002869
19518: 0002ae38 .word 0x0002ae38
1951c: 0002ae58 .word 0x0002ae58
19520: 000123c9 .word 0x000123c9
19524: 0002ae7c .word 0x0002ae7c
19528: 0001c709 .word 0x0001c709
1952c: 000122dd .word 0x000122dd
19530: 00025854 .word 0x00025854
19534: 0001c6f9 .word 0x0001c6f9
19538: 0000808e .word 0x0000808e
1953c: 00003c99 .word 0x00003c99
19540: 00008080 .word 0x00008080
19544: 00003a89 .word 0x00003a89
19548: 00008081 .word 0x00008081
1954c: 00007c18 .word 0x00007c18
19550: 00013f3d .word 0x00013f3d
19554: ffe003ff .word 0xffe003ff
19558: 00003851 .word 0x00003851
0001955c <lv_img_create>:
{
1955c: b5f0 push {r4, r5, r6, r7, lr}
1955e: b085 sub sp, #20
19560: 9003 str r0, [sp, #12]
19562: 000e movs r6, r1
lv_obj_t * img = lv_obj_create(par, copy);
19564: 4b5c ldr r3, [pc, #368] ; (196d8 <lv_img_create+0x17c>)
19566: 4798 blx r3
19568: 0005 movs r5, r0
LV_ASSERT_MEM(img);
1956a: 4b5c ldr r3, [pc, #368] ; (196dc <lv_img_create+0x180>)
1956c: 4798 blx r3
1956e: 2800 cmp r0, #0
19570: d01c beq.n 195ac <lv_img_create+0x50>
if(img == NULL) return NULL;
19572: 2d00 cmp r5, #0
19574: d100 bne.n 19578 <lv_img_create+0x1c>
19576: e08d b.n 19694 <lv_img_create+0x138>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img);
19578: 4b59 ldr r3, [pc, #356] ; (196e0 <lv_img_create+0x184>)
1957a: 681b ldr r3, [r3, #0]
1957c: 2b00 cmp r3, #0
1957e: d022 beq.n 195c6 <lv_img_create+0x6a>
lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t));
19580: 2118 movs r1, #24
19582: 0028 movs r0, r5
19584: 4b57 ldr r3, [pc, #348] ; (196e4 <lv_img_create+0x188>)
19586: 4798 blx r3
19588: 0004 movs r4, r0
LV_ASSERT_MEM(ext);
1958a: 4b54 ldr r3, [pc, #336] ; (196dc <lv_img_create+0x180>)
1958c: 4798 blx r3
1958e: 2800 cmp r0, #0
19590: d11f bne.n 195d2 <lv_img_create+0x76>
19592: 4b55 ldr r3, [pc, #340] ; (196e8 <lv_img_create+0x18c>)
19594: 9300 str r3, [sp, #0]
19596: 2249 movs r2, #73 ; 0x49
19598: 4954 ldr r1, [pc, #336] ; (196ec <lv_img_create+0x190>)
1959a: 3003 adds r0, #3
1959c: 4d54 ldr r5, [pc, #336] ; (196f0 <lv_img_create+0x194>)
1959e: 47a8 blx r5
195a0: 0022 movs r2, r4
195a2: 2300 movs r3, #0
195a4: 4853 ldr r0, [pc, #332] ; (196f4 <lv_img_create+0x198>)
195a6: 4954 ldr r1, [pc, #336] ; (196f8 <lv_img_create+0x19c>)
195a8: 4788 blx r1
195aa: e7fe b.n 195aa <lv_img_create+0x4e>
LV_ASSERT_MEM(img);
195ac: 4b4e ldr r3, [pc, #312] ; (196e8 <lv_img_create+0x18c>)
195ae: 9300 str r3, [sp, #0]
195b0: 2242 movs r2, #66 ; 0x42
195b2: 494e ldr r1, [pc, #312] ; (196ec <lv_img_create+0x190>)
195b4: 3003 adds r0, #3
195b6: 4c4e ldr r4, [pc, #312] ; (196f0 <lv_img_create+0x194>)
195b8: 47a0 blx r4
195ba: 002a movs r2, r5
195bc: 2300 movs r3, #0
195be: 484d ldr r0, [pc, #308] ; (196f4 <lv_img_create+0x198>)
195c0: 494d ldr r1, [pc, #308] ; (196f8 <lv_img_create+0x19c>)
195c2: 4788 blx r1
195c4: e7fe b.n 195c4 <lv_img_create+0x68>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img);
195c6: 0028 movs r0, r5
195c8: 4b4c ldr r3, [pc, #304] ; (196fc <lv_img_create+0x1a0>)
195ca: 4798 blx r3
195cc: 4b44 ldr r3, [pc, #272] ; (196e0 <lv_img_create+0x184>)
195ce: 6018 str r0, [r3, #0]
195d0: e7d6 b.n 19580 <lv_img_create+0x24>
if(ext == NULL) {
195d2: 2c00 cmp r4, #0
195d4: d061 beq.n 1969a <lv_img_create+0x13e>
ext->src = NULL;
195d6: 2700 movs r7, #0
195d8: 6027 str r7, [r4, #0]
ext->src_type = LV_IMG_SRC_UNKNOWN;
195da: 7d23 ldrb r3, [r4, #20]
195dc: 2203 movs r2, #3
195de: 431a orrs r2, r3
ext->cf = LV_IMG_CF_UNKNOWN;
195e0: 2307 movs r3, #7
195e2: 4013 ands r3, r2
195e4: 7523 strb r3, [r4, #20]
ext->w = lv_obj_get_width(img);
195e6: 0028 movs r0, r5
195e8: 4b45 ldr r3, [pc, #276] ; (19700 <lv_img_create+0x1a4>)
195ea: 4798 blx r3
195ec: 8120 strh r0, [r4, #8]
ext->h = lv_obj_get_height(img);
195ee: 0028 movs r0, r5
195f0: 4b44 ldr r3, [pc, #272] ; (19704 <lv_img_create+0x1a8>)
195f2: 4798 blx r3
195f4: 8160 strh r0, [r4, #10]
ext->angle = 0;
195f6: 81a7 strh r7, [r4, #12]
ext->zoom = LV_IMG_ZOOM_NONE;
195f8: 2380 movs r3, #128 ; 0x80
195fa: 005b lsls r3, r3, #1
195fc: 8263 strh r3, [r4, #18]
ext->antialias = LV_ANTIALIAS ? 1 : 0;
195fe: 7d63 ldrb r3, [r4, #21]
19600: 2201 movs r2, #1
19602: 4313 orrs r3, r2
19604: 7563 strb r3, [r4, #21]
ext->auto_size = 1;
19606: 7d23 ldrb r3, [r4, #20]
19608: 2204 movs r2, #4
1960a: 4313 orrs r3, r2
1960c: 7523 strb r3, [r4, #20]
ext->offset.x = 0;
1960e: 80a7 strh r7, [r4, #4]
ext->offset.y = 0;
19610: 80e7 strh r7, [r4, #6]
ext->pivot.x = 0;
19612: 81e7 strh r7, [r4, #14]
ext->pivot.y = 0;
19614: 8227 strh r7, [r4, #16]
lv_obj_set_signal_cb(img, lv_img_signal);
19616: 493c ldr r1, [pc, #240] ; (19708 <lv_img_create+0x1ac>)
19618: 0028 movs r0, r5
1961a: 4b3c ldr r3, [pc, #240] ; (1970c <lv_img_create+0x1b0>)
1961c: 4798 blx r3
lv_obj_set_design_cb(img, lv_img_design);
1961e: 493c ldr r1, [pc, #240] ; (19710 <lv_img_create+0x1b4>)
19620: 0028 movs r0, r5
19622: 4b3c ldr r3, [pc, #240] ; (19714 <lv_img_create+0x1b8>)
19624: 4798 blx r3
if(copy == NULL) {
19626: 2e00 cmp r6, #0
19628: d03c beq.n 196a4 <lv_img_create+0x148>
lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
1962a: 0030 movs r0, r6
1962c: 4b3a ldr r3, [pc, #232] ; (19718 <lv_img_create+0x1bc>)
1962e: 4798 blx r3
ext->auto_size = copy_ext->auto_size;
19630: 7d03 ldrb r3, [r0, #20]
19632: 089b lsrs r3, r3, #2
19634: 2201 movs r2, #1
19636: 4013 ands r3, r2
19638: 009b lsls r3, r3, #2
1963a: 7d22 ldrb r2, [r4, #20]
1963c: 2104 movs r1, #4
1963e: 438a bics r2, r1
19640: 4313 orrs r3, r2
19642: 7523 strb r3, [r4, #20]
ext->zoom = copy_ext->zoom;
19644: 8a43 ldrh r3, [r0, #18]
19646: 8263 strh r3, [r4, #18]
ext->angle = copy_ext->angle;
19648: 8983 ldrh r3, [r0, #12]
1964a: 81a3 strh r3, [r4, #12]
ext->antialias = copy_ext->antialias;
1964c: 7d43 ldrb r3, [r0, #21]
1964e: 07db lsls r3, r3, #31
19650: 0fdb lsrs r3, r3, #31
19652: 7d62 ldrb r2, [r4, #21]
19654: 3903 subs r1, #3
19656: 438a bics r2, r1
19658: 4313 orrs r3, r2
1965a: 7563 strb r3, [r4, #21]
ext->offset.x = copy_ext->offset.x;
1965c: 2204 movs r2, #4
1965e: 5e83 ldrsh r3, [r0, r2]
19660: 80a3 strh r3, [r4, #4]
ext->offset.y = copy_ext->offset.y;
19662: 2206 movs r2, #6
19664: 5e83 ldrsh r3, [r0, r2]
19666: 80e3 strh r3, [r4, #6]
ext->pivot.x = copy_ext->pivot.x;
19668: 220e movs r2, #14
1966a: 5e83 ldrsh r3, [r0, r2]
1966c: 81e3 strh r3, [r4, #14]
ext->pivot.y = copy_ext->pivot.y;
1966e: 2210 movs r2, #16
19670: 5e83 ldrsh r3, [r0, r2]
19672: 8223 strh r3, [r4, #16]
lv_img_set_src(img, copy_ext->src);
19674: 6801 ldr r1, [r0, #0]
19676: 0028 movs r0, r5
19678: 4b28 ldr r3, [pc, #160] ; (1971c <lv_img_create+0x1c0>)
1967a: 4798 blx r3
lv_obj_refresh_style(img, LV_STYLE_PROP_ALL);
1967c: 21ff movs r1, #255 ; 0xff
1967e: 0028 movs r0, r5
19680: 4b27 ldr r3, [pc, #156] ; (19720 <lv_img_create+0x1c4>)
19682: 4798 blx r3
LV_LOG_INFO("image created");
19684: 4b27 ldr r3, [pc, #156] ; (19724 <lv_img_create+0x1c8>)
19686: 9300 str r3, [sp, #0]
19688: 4b17 ldr r3, [pc, #92] ; (196e8 <lv_img_create+0x18c>)
1968a: 227f movs r2, #127 ; 0x7f
1968c: 4917 ldr r1, [pc, #92] ; (196ec <lv_img_create+0x190>)
1968e: 2001 movs r0, #1
19690: 4c17 ldr r4, [pc, #92] ; (196f0 <lv_img_create+0x194>)
19692: 47a0 blx r4
}
19694: 0028 movs r0, r5
19696: b005 add sp, #20
19698: bdf0 pop {r4, r5, r6, r7, pc}
lv_obj_del(img);
1969a: 0028 movs r0, r5
1969c: 4b22 ldr r3, [pc, #136] ; (19728 <lv_img_create+0x1cc>)
1969e: 4798 blx r3
return NULL;
196a0: 2500 movs r5, #0
196a2: e7f7 b.n 19694 <lv_img_create+0x138>
lv_theme_apply(img, LV_THEME_IMAGE);
196a4: 210f movs r1, #15
196a6: 0028 movs r0, r5
196a8: 4b20 ldr r3, [pc, #128] ; (1972c <lv_img_create+0x1d0>)
196aa: 4798 blx r3
lv_obj_set_click(img, false);
196ac: 2100 movs r1, #0
196ae: 0028 movs r0, r5
196b0: 4b1f ldr r3, [pc, #124] ; (19730 <lv_img_create+0x1d4>)
196b2: 4798 blx r3
lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/
196b4: 2101 movs r1, #1
196b6: 0028 movs r0, r5
196b8: 4b1e ldr r3, [pc, #120] ; (19734 <lv_img_create+0x1d8>)
196ba: 4798 blx r3
if(par != NULL) {
196bc: 9b03 ldr r3, [sp, #12]
196be: 2b00 cmp r3, #0
196c0: d004 beq.n 196cc <lv_img_create+0x170>
ext->auto_size = 1;
196c2: 7d23 ldrb r3, [r4, #20]
196c4: 2204 movs r2, #4
196c6: 4313 orrs r3, r2
196c8: 7523 strb r3, [r4, #20]
196ca: e7db b.n 19684 <lv_img_create+0x128>
ext->auto_size = 0;
196cc: 7d23 ldrb r3, [r4, #20]
196ce: 2204 movs r2, #4
196d0: 4393 bics r3, r2
196d2: 7523 strb r3, [r4, #20]
196d4: e7d6 b.n 19684 <lv_img_create+0x128>
196d6: 46c0 nop ; (mov r8, r8)
196d8: 00003395 .word 0x00003395
196dc: 000017ad .word 0x000017ad
196e0: 20004c6c .word 0x20004c6c
196e4: 000020f1 .word 0x000020f1
196e8: 0002adac .word 0x0002adac
196ec: 0002ae04 .word 0x0002ae04
196f0: 00012159 .word 0x00012159
196f4: 00025854 .word 0x00025854
196f8: 000017b5 .word 0x000017b5
196fc: 00004385 .word 0x00004385
19700: 000024a1 .word 0x000024a1
19704: 000024f5 .word 0x000024f5
19708: 00019739 .word 0x00019739
1970c: 00002041 .word 0x00002041
19710: 00018de9 .word 0x00018de9
19714: 000020a5 .word 0x000020a5
19718: 000043d1 .word 0x000043d1
1971c: 000192c9 .word 0x000192c9
19720: 00002ff5 .word 0x00002ff5
19724: 0002adf4 .word 0x0002adf4
19728: 000045a9 .word 0x000045a9
1972c: 000140e5 .word 0x000140e5
19730: 00001ea5 .word 0x00001ea5
19734: 00001e4d .word 0x00001e4d
00019738 <lv_img_signal>:
* @param sign a signal type from lv_signal_t enum
* @param param pointer to a signal specific variable
* @return LV_RES_OK: the object is not deleted in the function; LV_RES_INV: the object is deleted
*/
static lv_res_t lv_img_signal(lv_obj_t * img, lv_signal_t sign, void * param)
{
19738: b5f0 push {r4, r5, r6, r7, lr}
1973a: 46c6 mov lr, r8
1973c: b500 push {lr}
1973e: b086 sub sp, #24
19740: 0005 movs r5, r0
19742: 000e movs r6, r1
19744: 0017 movs r7, r2
lv_res_t res;
if(sign == LV_SIGNAL_GET_STYLE) {
19746: 2908 cmp r1, #8
19748: d01f beq.n 1978a <lv_img_signal+0x52>
if(info->result != NULL) return LV_RES_OK;
else return ancestor_signal(img, sign, param);
}
/* Include the ancient signal function */
res = ancestor_signal(img, sign, param);
1974a: 4b90 ldr r3, [pc, #576] ; (1998c <lv_img_signal+0x254>)
1974c: 681b ldr r3, [r3, #0]
1974e: 4798 blx r3
19750: 0004 movs r4, r0
if(res != LV_RES_OK) return res;
19752: 2801 cmp r0, #1
19754: d124 bne.n 197a0 <lv_img_signal+0x68>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
19756: 2e07 cmp r6, #7
19758: d02e beq.n 197b8 <lv_img_signal+0x80>
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
1975a: 0028 movs r0, r5
1975c: 4b8c ldr r3, [pc, #560] ; (19990 <lv_img_signal+0x258>)
1975e: 4798 blx r3
19760: 4680 mov r8, r0
if(sign == LV_SIGNAL_CLEANUP) {
19762: 2e00 cmp r6, #0
19764: d12e bne.n 197c4 <lv_img_signal+0x8c>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
19766: 7d02 ldrb r2, [r0, #20]
19768: 2303 movs r3, #3
1976a: 4013 ands r3, r2
1976c: 3b01 subs r3, #1
1976e: 2b01 cmp r3, #1
19770: d816 bhi.n 197a0 <lv_img_signal+0x68>
lv_mem_free(ext->src);
19772: 6800 ldr r0, [r0, #0]
19774: 4b87 ldr r3, [pc, #540] ; (19994 <lv_img_signal+0x25c>)
19776: 4798 blx r3
ext->src = NULL;
19778: 2300 movs r3, #0
1977a: 4642 mov r2, r8
1977c: 6013 str r3, [r2, #0]
ext->src_type = LV_IMG_SRC_UNKNOWN;
1977e: 7d13 ldrb r3, [r2, #20]
19780: 2203 movs r2, #3
19782: 4313 orrs r3, r2
19784: 4642 mov r2, r8
19786: 7513 strb r3, [r2, #20]
19788: e00a b.n 197a0 <lv_img_signal+0x68>
static lv_style_list_t * lv_img_get_style(lv_obj_t * img, uint8_t type)
{
lv_style_list_t * style_dsc_p;
switch(type) {
1978a: 7811 ldrb r1, [r2, #0]
case LV_IMG_PART_MAIN:
style_dsc_p = &img->style_list;
1978c: 0002 movs r2, r0
1978e: 3228 adds r2, #40 ; 0x28
break;
default:
style_dsc_p = NULL;
19790: 424b negs r3, r1
19792: 414b adcs r3, r1
19794: 425b negs r3, r3
19796: 401a ands r2, r3
info->result = lv_img_get_style(img, info->part);
19798: 607a str r2, [r7, #4]
if(info->result != NULL) return LV_RES_OK;
1979a: 2401 movs r4, #1
1979c: 2a00 cmp r2, #0
1979e: d004 beq.n 197aa <lv_img_signal+0x72>
}
197a0: 0020 movs r0, r4
197a2: b006 add sp, #24
197a4: bc04 pop {r2}
197a6: 4690 mov r8, r2
197a8: bdf0 pop {r4, r5, r6, r7, pc}
else return ancestor_signal(img, sign, param);
197aa: 4b78 ldr r3, [pc, #480] ; (1998c <lv_img_signal+0x254>)
197ac: 681b ldr r3, [r3, #0]
197ae: 003a movs r2, r7
197b0: 2108 movs r1, #8
197b2: 4798 blx r3
197b4: 0004 movs r4, r0
197b6: e7f3 b.n 197a0 <lv_img_signal+0x68>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
197b8: 4977 ldr r1, [pc, #476] ; (19998 <lv_img_signal+0x260>)
197ba: 0038 movs r0, r7
197bc: 4b77 ldr r3, [pc, #476] ; (1999c <lv_img_signal+0x264>)
197be: 4798 blx r3
197c0: 0004 movs r4, r0
197c2: e7ed b.n 197a0 <lv_img_signal+0x68>
else if(sign == LV_SIGNAL_STYLE_CHG) {
197c4: 2e04 cmp r6, #4
197c6: d04f beq.n 19868 <lv_img_signal+0x130>
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
197c8: 2e06 cmp r6, #6
197ca: d058 beq.n 1987e <lv_img_signal+0x146>
else if(sign == LV_SIGNAL_HIT_TEST) {
197cc: 2e0a cmp r6, #10
197ce: d1e7 bne.n 197a0 <lv_img_signal+0x68>
if(ext->zoom != 256 && ext->angle == 0) {
197d0: 8a43 ldrh r3, [r0, #18]
197d2: 2280 movs r2, #128 ; 0x80
197d4: 0052 lsls r2, r2, #1
197d6: 4293 cmp r3, r2
197d8: d100 bne.n 197dc <lv_img_signal+0xa4>
197da: e0d1 b.n 19980 <lv_img_signal+0x248>
197dc: 8982 ldrh r2, [r0, #12]
197de: 2a00 cmp r2, #0
197e0: d000 beq.n 197e4 <lv_img_signal+0xac>
197e2: e0cd b.n 19980 <lv_img_signal+0x248>
197e4: 8aa8 ldrh r0, [r5, #20]
197e6: 3001 adds r0, #1
197e8: 8a2e ldrh r6, [r5, #16]
197ea: 1b86 subs r6, r0, r6
lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256;
197ec: b236 sxth r6, r6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
197ee: 8aea ldrh r2, [r5, #22]
197f0: 3201 adds r2, #1
197f2: 8a69 ldrh r1, [r5, #18]
197f4: 1a52 subs r2, r2, r1
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
197f6: b212 sxth r2, r2
lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256;
197f8: 0018 movs r0, r3
197fa: 4370 muls r0, r6
197fc: 21ff movs r1, #255 ; 0xff
197fe: 468c mov ip, r1
19800: 4484 add ip, r0
19802: 4661 mov r1, ip
19804: 17c8 asrs r0, r1, #31
19806: 21ff movs r1, #255 ; 0xff
19808: 4008 ands r0, r1
1980a: 4460 add r0, ip
1980c: 1200 asrs r0, r0, #8
lv_coord_t width_offset = (origin_width - scaled_width) / 2;
1980e: b200 sxth r0, r0
19810: 1a30 subs r0, r6, r0
19812: 0fc6 lsrs r6, r0, #31
19814: 1830 adds r0, r6, r0
19816: 1040 asrs r0, r0, #1
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
19818: 4353 muls r3, r2
1981a: 33ff adds r3, #255 ; 0xff
1981c: 17de asrs r6, r3, #31
1981e: 4031 ands r1, r6
19820: 18cb adds r3, r1, r3
19822: 121b asrs r3, r3, #8
lv_coord_t height_offset = (origin_height - scaled_height) / 2;
19824: b21b sxth r3, r3
19826: 1ad2 subs r2, r2, r3
19828: 0fd3 lsrs r3, r2, #31
1982a: 189b adds r3, r3, r2
1982c: 105e asrs r6, r3, #1
lv_area_copy(&coords, &img->coords);
1982e: 3510 adds r5, #16
19830: 2300 movs r3, #0
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
19832: a904 add r1, sp, #16
19834: 5cea ldrb r2, [r5, r3]
19836: 545a strb r2, [r3, r1]
19838: 3301 adds r3, #1
while(len) {
1983a: 2b08 cmp r3, #8
1983c: d1fa bne.n 19834 <lv_img_signal+0xfc>
coords.x1 += width_offset;
1983e: b283 uxth r3, r0
19840: a804 add r0, sp, #16
19842: 8802 ldrh r2, [r0, #0]
19844: 189a adds r2, r3, r2
19846: 8002 strh r2, [r0, #0]
coords.x2 -= width_offset;
19848: 8882 ldrh r2, [r0, #4]
1984a: 1ad3 subs r3, r2, r3
1984c: 8083 strh r3, [r0, #4]
coords.y1 += height_offset;
1984e: b2b3 uxth r3, r6
19850: 8842 ldrh r2, [r0, #2]
19852: 189a adds r2, r3, r2
19854: 8042 strh r2, [r0, #2]
coords.y2 -= height_offset;
19856: 88c2 ldrh r2, [r0, #6]
19858: 1ad3 subs r3, r2, r3
1985a: 80c3 strh r3, [r0, #6]
info->result = _lv_area_is_point_on(&coords, info->point, 0);
1985c: 2200 movs r2, #0
1985e: 6839 ldr r1, [r7, #0]
19860: 4b4f ldr r3, [pc, #316] ; (199a0 <lv_img_signal+0x268>)
19862: 4798 blx r3
19864: 7138 strb r0, [r7, #4]
if(ext->zoom != 256 && ext->angle == 0) {
19866: e79b b.n 197a0 <lv_img_signal+0x68>
if(ext->src_type == LV_IMG_SRC_SYMBOL) {
19868: 7d02 ldrb r2, [r0, #20]
1986a: 2303 movs r3, #3
1986c: 4013 ands r3, r2
1986e: 2b02 cmp r3, #2
19870: d000 beq.n 19874 <lv_img_signal+0x13c>
19872: e795 b.n 197a0 <lv_img_signal+0x68>
lv_img_set_src(img, ext->src);
19874: 6801 ldr r1, [r0, #0]
19876: 0028 movs r0, r5
19878: 4b4a ldr r3, [pc, #296] ; (199a4 <lv_img_signal+0x26c>)
1987a: 4798 blx r3
1987c: e790 b.n 197a0 <lv_img_signal+0x68>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
1987e: 2207 movs r2, #7
19880: 2100 movs r1, #0
19882: 0028 movs r0, r5
19884: 4f48 ldr r7, [pc, #288] ; (199a8 <lv_img_signal+0x270>)
19886: 47b8 blx r7
transf_zoom = (transf_zoom * ext->zoom) >> 8;
19888: 4643 mov r3, r8
1988a: 8a5e ldrh r6, [r3, #18]
1988c: 4346 muls r6, r0
1988e: 1236 asrs r6, r6, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
19890: 2206 movs r2, #6
19892: 2100 movs r1, #0
19894: 0028 movs r0, r5
19896: 47b8 blx r7
transf_angle += ext->angle;
19898: 4643 mov r3, r8
1989a: 899b ldrh r3, [r3, #12]
1989c: 181b adds r3, r3, r0
1989e: b21b sxth r3, r3
if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) {
198a0: 2b00 cmp r3, #0
198a2: d104 bne.n 198ae <lv_img_signal+0x176>
198a4: 2280 movs r2, #128 ; 0x80
198a6: 0052 lsls r2, r2, #1
198a8: b231 sxth r1, r6
198aa: 4291 cmp r1, r2
198ac: d039 beq.n 19922 <lv_img_signal+0x1ea>
_lv_img_buf_get_transformed_area(&a, ext->w, ext->h, transf_angle, transf_zoom, &ext->pivot);
198ae: 4642 mov r2, r8
198b0: 210a movs r1, #10
198b2: 5e52 ldrsh r2, [r2, r1]
198b4: 4641 mov r1, r8
198b6: 2008 movs r0, #8
198b8: 5e09 ldrsh r1, [r1, r0]
198ba: af04 add r7, sp, #16
198bc: 4640 mov r0, r8
198be: 300e adds r0, #14
198c0: 9001 str r0, [sp, #4]
198c2: b2b6 uxth r6, r6
198c4: 9600 str r6, [sp, #0]
198c6: 0038 movs r0, r7
198c8: 4e38 ldr r6, [pc, #224] ; (199ac <lv_img_signal+0x274>)
198ca: 47b0 blx r6
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1);
198cc: 2332 movs r3, #50 ; 0x32
198ce: 5ee9 ldrsh r1, [r5, r3]
198d0: 2200 movs r2, #0
198d2: 5ebb ldrsh r3, [r7, r2]
198d4: 1acb subs r3, r1, r3
198d6: 428b cmp r3, r1
198d8: da00 bge.n 198dc <lv_img_signal+0x1a4>
198da: 000b movs r3, r1
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1);
198dc: aa04 add r2, sp, #16
198de: 2002 movs r0, #2
198e0: 5e12 ldrsh r2, [r2, r0]
198e2: 1a8a subs r2, r1, r2
198e4: b21b sxth r3, r3
198e6: 4293 cmp r3, r2
198e8: da00 bge.n 198ec <lv_img_signal+0x1b4>
198ea: 0013 movs r3, r2
198ec: b21b sxth r3, r3
198ee: 866b strh r3, [r5, #50] ; 0x32
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w);
198f0: aa04 add r2, sp, #16
198f2: 2004 movs r0, #4
198f4: 5e12 ldrsh r2, [r2, r0]
198f6: 1852 adds r2, r2, r1
198f8: 4640 mov r0, r8
198fa: 2608 movs r6, #8
198fc: 5f80 ldrsh r0, [r0, r6]
198fe: 1a12 subs r2, r2, r0
19900: 429a cmp r2, r3
19902: da00 bge.n 19906 <lv_img_signal+0x1ce>
19904: 001a movs r2, r3
19906: b213 sxth r3, r2
19908: 866b strh r3, [r5, #50] ; 0x32
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.y2 - ext->h);
1990a: aa04 add r2, sp, #16
1990c: 2006 movs r0, #6
1990e: 5e12 ldrsh r2, [r2, r0]
19910: 1852 adds r2, r2, r1
19912: 4641 mov r1, r8
19914: 200a movs r0, #10
19916: 5e09 ldrsh r1, [r1, r0]
19918: 1a52 subs r2, r2, r1
1991a: 429a cmp r2, r3
1991c: da00 bge.n 19920 <lv_img_signal+0x1e8>
1991e: 001a movs r2, r3
19920: 866a strh r2, [r5, #50] ; 0x32
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
19922: 2212 movs r2, #18
19924: 2100 movs r1, #0
19926: 0028 movs r0, r5
19928: 4f1f ldr r7, [pc, #124] ; (199a8 <lv_img_signal+0x270>)
1992a: 47b8 blx r7
1992c: 9002 str r0, [sp, #8]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1992e: 2213 movs r2, #19
19930: 2100 movs r1, #0
19932: 0028 movs r0, r5
19934: 47b8 blx r7
19936: 0006 movs r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
19938: 2210 movs r2, #16
1993a: 2100 movs r1, #0
1993c: 0028 movs r0, r5
1993e: 47b8 blx r7
19940: 9003 str r0, [sp, #12]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
19942: 2211 movs r2, #17
19944: 2100 movs r1, #0
19946: 0028 movs r0, r5
19948: 47b8 blx r7
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, right);
1994a: 1c31 adds r1, r6, #0
1994c: 9a02 ldr r2, [sp, #8]
1994e: 4296 cmp r6, r2
19950: da00 bge.n 19954 <lv_img_signal+0x21c>
19952: 1c11 adds r1, r2, #0
19954: 8e6b ldrh r3, [r5, #50] ; 0x32
19956: 1c1a adds r2, r3, #0
19958: b21b sxth r3, r3
1995a: b20e sxth r6, r1
1995c: 42b3 cmp r3, r6
1995e: da00 bge.n 19962 <lv_img_signal+0x22a>
19960: 1c0a adds r2, r1, #0
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, top);
19962: 1c13 adds r3, r2, #0
19964: b212 sxth r2, r2
19966: 9e03 ldr r6, [sp, #12]
19968: b231 sxth r1, r6
1996a: 428a cmp r2, r1
1996c: da00 bge.n 19970 <lv_img_signal+0x238>
1996e: 1c33 adds r3, r6, #0
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, bottom);
19970: 1c1a adds r2, r3, #0
19972: b21b sxth r3, r3
19974: b201 sxth r1, r0
19976: 428b cmp r3, r1
19978: da00 bge.n 1997c <lv_img_signal+0x244>
1997a: 1c02 adds r2, r0, #0
1997c: 866a strh r2, [r5, #50] ; 0x32
1997e: e70f b.n 197a0 <lv_img_signal+0x68>
info->result = lv_obj_is_point_on_coords(img, info->point);
19980: 6839 ldr r1, [r7, #0]
19982: 0028 movs r0, r5
19984: 4b0a ldr r3, [pc, #40] ; (199b0 <lv_img_signal+0x278>)
19986: 4798 blx r3
19988: 7138 strb r0, [r7, #4]
1998a: e709 b.n 197a0 <lv_img_signal+0x68>
1998c: 20004c6c .word 0x20004c6c
19990: 000043d1 .word 0x000043d1
19994: 000123c9 .word 0x000123c9
19998: 0002aeb0 .word 0x0002aeb0
1999c: 000046d9 .word 0x000046d9
199a0: 000114c5 .word 0x000114c5
199a4: 000192c9 .word 0x000192c9
199a8: 00003a89 .word 0x00003a89
199ac: 0000e92d .word 0x0000e92d
199b0: 000046a1 .word 0x000046a1
000199b4 <lv_label_dot_tmp_free>:
* 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 * label)
{
199b4: b510 push {r4, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
199b6: 4b09 ldr r3, [pc, #36] ; (199dc <lv_label_dot_tmp_free+0x28>)
199b8: 4798 blx r3
199ba: 0004 movs r4, r0
if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) {
199bc: 7c43 ldrb r3, [r0, #17]
199be: 07db lsls r3, r3, #31
199c0: d504 bpl.n 199cc <lv_label_dot_tmp_free+0x18>
199c2: 6840 ldr r0, [r0, #4]
199c4: 2800 cmp r0, #0
199c6: d001 beq.n 199cc <lv_label_dot_tmp_free+0x18>
lv_mem_free(ext->dot.tmp_ptr);
199c8: 4b05 ldr r3, [pc, #20] ; (199e0 <lv_label_dot_tmp_free+0x2c>)
199ca: 4798 blx r3
}
ext->dot_tmp_alloc = false;
199cc: 7c63 ldrb r3, [r4, #17]
199ce: 2201 movs r2, #1
199d0: 4393 bics r3, r2
199d2: 7463 strb r3, [r4, #17]
ext->dot.tmp_ptr = NULL;
199d4: 2300 movs r3, #0
199d6: 6063 str r3, [r4, #4]
}
199d8: bd10 pop {r4, pc}
199da: 46c0 nop ; (mov r8, r8)
199dc: 000043d1 .word 0x000043d1
199e0: 000123c9 .word 0x000123c9
000199e4 <lv_label_revert_dots>:
{
199e4: b5f8 push {r3, r4, r5, r6, r7, lr}
199e6: 0004 movs r4, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
199e8: 4b1c ldr r3, [pc, #112] ; (19a5c <lv_label_revert_dots+0x78>)
199ea: 4798 blx r3
199ec: 0005 movs r5, r0
if(ext->long_mode != LV_LABEL_LONG_DOT) return;
199ee: 7c02 ldrb r2, [r0, #16]
199f0: 2307 movs r3, #7
199f2: 4013 ands r3, r2
199f4: 2b02 cmp r3, #2
199f6: d000 beq.n 199fa <lv_label_revert_dots+0x16>
}
199f8: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(ext->dot_end == LV_LABEL_DOT_END_INV) return;
199fa: 8901 ldrh r1, [r0, #8]
199fc: 4b18 ldr r3, [pc, #96] ; (19a60 <lv_label_revert_dots+0x7c>)
199fe: 4299 cmp r1, r3
19a00: d0fa beq.n 199f8 <lv_label_revert_dots+0x14>
uint32_t letter_i = ext->dot_end - LV_LABEL_DOT_NUM;
19a02: 3903 subs r1, #3
uint32_t byte_i = _lv_txt_encoded_get_byte_id(ext->text, letter_i);
19a04: 4b17 ldr r3, [pc, #92] ; (19a64 <lv_label_revert_dots+0x80>)
19a06: 681b ldr r3, [r3, #0]
19a08: 6800 ldr r0, [r0, #0]
19a0a: 4798 blx r3
19a0c: 0006 movs r6, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19a0e: 0020 movs r0, r4
19a10: 4b12 ldr r3, [pc, #72] ; (19a5c <lv_label_revert_dots+0x78>)
19a12: 4798 blx r3
if(ext->dot_tmp_alloc) {
19a14: 7c43 ldrb r3, [r0, #17]
return ext->dot.tmp;
19a16: 1d07 adds r7, r0, #4
if(ext->dot_tmp_alloc) {
19a18: 07db lsls r3, r3, #31
19a1a: d41b bmi.n 19a54 <lv_label_revert_dots+0x70>
while(ext->text[byte_i + i] != '\0') {
19a1c: 682b ldr r3, [r5, #0]
19a1e: 199a adds r2, r3, r6
19a20: 7813 ldrb r3, [r2, #0]
19a22: 2b00 cmp r3, #0
19a24: d018 beq.n 19a58 <lv_label_revert_dots+0x74>
19a26: 2100 movs r1, #0
19a28: 2300 movs r3, #0
ext->text[byte_i + i] = dot_tmp[i];
19a2a: 5c79 ldrb r1, [r7, r1]
19a2c: 7011 strb r1, [r2, #0]
i++;
19a2e: 3301 adds r3, #1
19a30: b2db uxtb r3, r3
while(ext->text[byte_i + i] != '\0') {
19a32: 0019 movs r1, r3
19a34: 18f2 adds r2, r6, r3
19a36: 6828 ldr r0, [r5, #0]
19a38: 4684 mov ip, r0
19a3a: 4462 add r2, ip
19a3c: 7810 ldrb r0, [r2, #0]
19a3e: 2800 cmp r0, #0
19a40: d1f3 bne.n 19a2a <lv_label_revert_dots+0x46>
ext->text[byte_i + i] = dot_tmp[i];
19a42: 5c7b ldrb r3, [r7, r1]
19a44: 7013 strb r3, [r2, #0]
lv_label_dot_tmp_free(label);
19a46: 0020 movs r0, r4
19a48: 4b07 ldr r3, [pc, #28] ; (19a68 <lv_label_revert_dots+0x84>)
19a4a: 4798 blx r3
ext->dot_end = LV_LABEL_DOT_END_INV;
19a4c: 2301 movs r3, #1
19a4e: 425b negs r3, r3
19a50: 812b strh r3, [r5, #8]
19a52: e7d1 b.n 199f8 <lv_label_revert_dots+0x14>
return ext->dot.tmp_ptr;
19a54: 6847 ldr r7, [r0, #4]
19a56: e7e1 b.n 19a1c <lv_label_revert_dots+0x38>
while(ext->text[byte_i + i] != '\0') {
19a58: 2100 movs r1, #0
19a5a: e7f2 b.n 19a42 <lv_label_revert_dots+0x5e>
19a5c: 000043d1 .word 0x000043d1
19a60: 0000ffff .word 0x0000ffff
19a64: 20000054 .word 0x20000054
19a68: 000199b5 .word 0x000199b5
00019a6c <lv_label_set_offset_y>:
{
19a6c: b570 push {r4, r5, r6, lr}
19a6e: 0004 movs r4, r0
19a70: 000d movs r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19a72: 4b03 ldr r3, [pc, #12] ; (19a80 <lv_label_set_offset_y+0x14>)
19a74: 4798 blx r3
ext->offset.y = y;
19a76: 81c5 strh r5, [r0, #14]
lv_obj_invalidate(label);
19a78: 0020 movs r0, r4
19a7a: 4b02 ldr r3, [pc, #8] ; (19a84 <lv_label_set_offset_y+0x18>)
19a7c: 4798 blx r3
}
19a7e: bd70 pop {r4, r5, r6, pc}
19a80: 000043d1 .word 0x000043d1
19a84: 00002869 .word 0x00002869
00019a88 <lv_label_set_offset_x>:
{
19a88: b570 push {r4, r5, r6, lr}
19a8a: 0004 movs r4, r0
19a8c: 000d movs r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19a8e: 4b03 ldr r3, [pc, #12] ; (19a9c <lv_label_set_offset_x+0x14>)
19a90: 4798 blx r3
ext->offset.x = x;
19a92: 8185 strh r5, [r0, #12]
lv_obj_invalidate(label);
19a94: 0020 movs r0, r4
19a96: 4b02 ldr r3, [pc, #8] ; (19aa0 <lv_label_set_offset_x+0x18>)
19a98: 4798 blx r3
}
19a9a: bd70 pop {r4, r5, r6, pc}
19a9c: 000043d1 .word 0x000043d1
19aa0: 00002869 .word 0x00002869
00019aa4 <get_txt_coords>:
static void get_txt_coords(const lv_obj_t * label, lv_area_t * area)
{
19aa4: b5f0 push {r4, r5, r6, r7, lr}
19aa6: 46ce mov lr, r9
19aa8: b500 push {lr}
19aaa: b082 sub sp, #8
19aac: 9001 str r0, [sp, #4]
19aae: 000c movs r4, r1
lv_obj_get_coords(label, area);
19ab0: 4b12 ldr r3, [pc, #72] ; (19afc <get_txt_coords+0x58>)
19ab2: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
19ab4: 2212 movs r2, #18
19ab6: 2100 movs r1, #0
19ab8: 9801 ldr r0, [sp, #4]
19aba: 4e11 ldr r6, [pc, #68] ; (19b00 <get_txt_coords+0x5c>)
19abc: 47b0 blx r6
19abe: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
19ac0: 2213 movs r2, #19
19ac2: 2100 movs r1, #0
19ac4: 9801 ldr r0, [sp, #4]
19ac6: 47b0 blx r6
19ac8: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
19aca: 2210 movs r2, #16
19acc: 2100 movs r1, #0
19ace: 9801 ldr r0, [sp, #4]
19ad0: 47b0 blx r6
19ad2: 0007 movs r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
19ad4: 2211 movs r2, #17
19ad6: 2100 movs r1, #0
19ad8: 9801 ldr r0, [sp, #4]
19ada: 47b0 blx r6
lv_coord_t left = lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN);
lv_coord_t right = lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN);
lv_coord_t top = lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN);
lv_coord_t bottom = lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
area->x1 += left;
19adc: 8823 ldrh r3, [r4, #0]
19ade: 444b add r3, r9
19ae0: 8023 strh r3, [r4, #0]
area->x2 -= right;
19ae2: 88a3 ldrh r3, [r4, #4]
19ae4: 1b5b subs r3, r3, r5
19ae6: 80a3 strh r3, [r4, #4]
area->y1 += top;
19ae8: 8863 ldrh r3, [r4, #2]
19aea: 19db adds r3, r3, r7
19aec: 8063 strh r3, [r4, #2]
area->y2 -= bottom;
19aee: 88e3 ldrh r3, [r4, #6]
19af0: 1a18 subs r0, r3, r0
19af2: 80e0 strh r0, [r4, #6]
}
19af4: b002 add sp, #8
19af6: bc04 pop {r2}
19af8: 4691 mov r9, r2
19afa: bdf0 pop {r4, r5, r6, r7, pc}
19afc: 0000237d .word 0x0000237d
19b00: 00003a89 .word 0x00003a89
00019b04 <lv_label_set_dot_tmp>:
{
19b04: b5f0 push {r4, r5, r6, r7, lr}
19b06: b083 sub sp, #12
19b08: 0007 movs r7, r0
19b0a: 000e movs r6, r1
19b0c: 0015 movs r5, r2
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19b0e: 4b18 ldr r3, [pc, #96] ; (19b70 <lv_label_set_dot_tmp+0x6c>)
19b10: 4798 blx r3
19b12: 0004 movs r4, r0
lv_label_dot_tmp_free(label); /* Deallocate any existing space */
19b14: 0038 movs r0, r7
19b16: 4b17 ldr r3, [pc, #92] ; (19b74 <lv_label_set_dot_tmp+0x70>)
19b18: 4798 blx r3
if(len > sizeof(char *)) {
19b1a: 2d04 cmp r5, #4
19b1c: d91c bls.n 19b58 <lv_label_set_dot_tmp+0x54>
ext->dot.tmp_ptr = lv_mem_alloc(len + 1);
19b1e: 1c68 adds r0, r5, #1
19b20: 4b15 ldr r3, [pc, #84] ; (19b78 <lv_label_set_dot_tmp+0x74>)
19b22: 4798 blx r3
19b24: 6060 str r0, [r4, #4]
if(ext->dot.tmp_ptr == NULL) {
19b26: 2800 cmp r0, #0
19b28: d00c beq.n 19b44 <lv_label_set_dot_tmp+0x40>
_lv_memcpy(ext->dot.tmp_ptr, data, len);
19b2a: 002a movs r2, r5
19b2c: 0031 movs r1, r6
19b2e: 4b13 ldr r3, [pc, #76] ; (19b7c <lv_label_set_dot_tmp+0x78>)
19b30: 4798 blx r3
ext->dot.tmp_ptr[len] = '\0';
19b32: 2300 movs r3, #0
19b34: 6862 ldr r2, [r4, #4]
19b36: 5553 strb r3, [r2, r5]
ext->dot_tmp_alloc = true;
19b38: 7c63 ldrb r3, [r4, #17]
19b3a: 2201 movs r2, #1
19b3c: 4313 orrs r3, r2
19b3e: 7463 strb r3, [r4, #17]
return true;
19b40: 2001 movs r0, #1
19b42: e013 b.n 19b6c <lv_label_set_dot_tmp+0x68>
LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr");
19b44: 4b0e ldr r3, [pc, #56] ; (19b80 <lv_label_set_dot_tmp+0x7c>)
19b46: 9300 str r3, [sp, #0]
19b48: 4b0e ldr r3, [pc, #56] ; (19b84 <lv_label_set_dot_tmp+0x80>)
19b4a: 4a0f ldr r2, [pc, #60] ; (19b88 <lv_label_set_dot_tmp+0x84>)
19b4c: 490f ldr r1, [pc, #60] ; (19b8c <lv_label_set_dot_tmp+0x88>)
19b4e: 3003 adds r0, #3
19b50: 4c0f ldr r4, [pc, #60] ; (19b90 <lv_label_set_dot_tmp+0x8c>)
19b52: 47a0 blx r4
return false;
19b54: 2000 movs r0, #0
19b56: e009 b.n 19b6c <lv_label_set_dot_tmp+0x68>
ext->dot_tmp_alloc = false;
19b58: 7c63 ldrb r3, [r4, #17]
19b5a: 2201 movs r2, #1
19b5c: 4393 bics r3, r2
19b5e: 7463 strb r3, [r4, #17]
_lv_memcpy(ext->dot.tmp, data, len);
19b60: 1d20 adds r0, r4, #4
19b62: 002a movs r2, r5
19b64: 0031 movs r1, r6
19b66: 4b05 ldr r3, [pc, #20] ; (19b7c <lv_label_set_dot_tmp+0x78>)
19b68: 4798 blx r3
return true;
19b6a: 2001 movs r0, #1
}
19b6c: b003 add sp, #12
19b6e: bdf0 pop {r4, r5, r6, r7, pc}
19b70: 000043d1 .word 0x000043d1
19b74: 000199b5 .word 0x000199b5
19b78: 000122dd .word 0x000122dd
19b7c: 00012545 .word 0x00012545
19b80: 0002b04c .word 0x0002b04c
19b84: 0002afe4 .word 0x0002afe4
19b88: 000005b5 .word 0x000005b5
19b8c: 0002b014 .word 0x0002b014
19b90: 00012159 .word 0x00012159
00019b94 <lv_label_set_align>:
{
19b94: b530 push {r4, r5, lr}
19b96: b083 sub sp, #12
19b98: 0004 movs r4, r0
19b9a: 000d movs r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19b9c: 4b13 ldr r3, [pc, #76] ; (19bec <lv_label_set_align+0x58>)
19b9e: 4798 blx r3
19ba0: 2800 cmp r0, #0
19ba2: d10d bne.n 19bc0 <lv_label_set_align+0x2c>
19ba4: 4b12 ldr r3, [pc, #72] ; (19bf0 <lv_label_set_align+0x5c>)
19ba6: 9300 str r3, [sp, #0]
19ba8: 22c4 movs r2, #196 ; 0xc4
19baa: 0052 lsls r2, r2, #1
19bac: 4911 ldr r1, [pc, #68] ; (19bf4 <lv_label_set_align+0x60>)
19bae: 3003 adds r0, #3
19bb0: 4d11 ldr r5, [pc, #68] ; (19bf8 <lv_label_set_align+0x64>)
19bb2: 47a8 blx r5
19bb4: 0022 movs r2, r4
19bb6: 2300 movs r3, #0
19bb8: 4810 ldr r0, [pc, #64] ; (19bfc <lv_label_set_align+0x68>)
19bba: 4911 ldr r1, [pc, #68] ; (19c00 <lv_label_set_align+0x6c>)
19bbc: 4788 blx r1
19bbe: e7fe b.n 19bbe <lv_label_set_align+0x2a>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19bc0: 0020 movs r0, r4
19bc2: 4b10 ldr r3, [pc, #64] ; (19c04 <lv_label_set_align+0x70>)
19bc4: 4798 blx r3
if(ext->align == align) return;
19bc6: 7c03 ldrb r3, [r0, #16]
19bc8: 069b lsls r3, r3, #26
19bca: 0f9b lsrs r3, r3, #30
19bcc: 42ab cmp r3, r5
19bce: d00a beq.n 19be6 <lv_label_set_align+0x52>
ext->align = align;
19bd0: 2303 movs r3, #3
19bd2: 402b ands r3, r5
19bd4: 011a lsls r2, r3, #4
19bd6: 7c03 ldrb r3, [r0, #16]
19bd8: 2130 movs r1, #48 ; 0x30
19bda: 438b bics r3, r1
19bdc: 4313 orrs r3, r2
19bde: 7403 strb r3, [r0, #16]
lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related
19be0: 0020 movs r0, r4
19be2: 4b09 ldr r3, [pc, #36] ; (19c08 <lv_label_set_align+0x74>)
19be4: 4798 blx r3
}
19be6: b003 add sp, #12
19be8: bd30 pop {r4, r5, pc}
19bea: 46c0 nop ; (mov r8, r8)
19bec: 000017ad .word 0x000017ad
19bf0: 0002af10 .word 0x0002af10
19bf4: 0002b014 .word 0x0002b014
19bf8: 00012159 .word 0x00012159
19bfc: 00025d20 .word 0x00025d20
19c00: 000017b5 .word 0x000017b5
19c04: 000043d1 .word 0x000043d1
19c08: 00002869 .word 0x00002869
00019c0c <lv_label_get_text>:
{
19c0c: b530 push {r4, r5, lr}
19c0e: b083 sub sp, #12
19c10: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19c12: 4b0c ldr r3, [pc, #48] ; (19c44 <lv_label_get_text+0x38>)
19c14: 4798 blx r3
19c16: 2800 cmp r0, #0
19c18: d10d bne.n 19c36 <lv_label_get_text+0x2a>
19c1a: 4b0b ldr r3, [pc, #44] ; (19c48 <lv_label_get_text+0x3c>)
19c1c: 9300 str r3, [sp, #0]
19c1e: 22f2 movs r2, #242 ; 0xf2
19c20: 0052 lsls r2, r2, #1
19c22: 490a ldr r1, [pc, #40] ; (19c4c <lv_label_get_text+0x40>)
19c24: 3003 adds r0, #3
19c26: 4d0a ldr r5, [pc, #40] ; (19c50 <lv_label_get_text+0x44>)
19c28: 47a8 blx r5
19c2a: 0022 movs r2, r4
19c2c: 2300 movs r3, #0
19c2e: 4809 ldr r0, [pc, #36] ; (19c54 <lv_label_get_text+0x48>)
19c30: 4909 ldr r1, [pc, #36] ; (19c58 <lv_label_get_text+0x4c>)
19c32: 4788 blx r1
19c34: e7fe b.n 19c34 <lv_label_get_text+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19c36: 0020 movs r0, r4
19c38: 4b08 ldr r3, [pc, #32] ; (19c5c <lv_label_get_text+0x50>)
19c3a: 4798 blx r3
return ext->text;
19c3c: 6800 ldr r0, [r0, #0]
}
19c3e: b003 add sp, #12
19c40: bd30 pop {r4, r5, pc}
19c42: 46c0 nop ; (mov r8, r8)
19c44: 000017ad .word 0x000017ad
19c48: 0002af3c .word 0x0002af3c
19c4c: 0002b014 .word 0x0002b014
19c50: 00012159 .word 0x00012159
19c54: 00025d20 .word 0x00025d20
19c58: 000017b5 .word 0x000017b5
19c5c: 000043d1 .word 0x000043d1
00019c60 <lv_label_get_long_mode>:
{
19c60: b530 push {r4, r5, lr}
19c62: b083 sub sp, #12
19c64: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19c66: 4b0d ldr r3, [pc, #52] ; (19c9c <lv_label_get_long_mode+0x3c>)
19c68: 4798 blx r3
19c6a: 2800 cmp r0, #0
19c6c: d10d bne.n 19c8a <lv_label_get_long_mode+0x2a>
19c6e: 4b0c ldr r3, [pc, #48] ; (19ca0 <lv_label_get_long_mode+0x40>)
19c70: 9300 str r3, [sp, #0]
19c72: 22f9 movs r2, #249 ; 0xf9
19c74: 0052 lsls r2, r2, #1
19c76: 490b ldr r1, [pc, #44] ; (19ca4 <lv_label_get_long_mode+0x44>)
19c78: 3003 adds r0, #3
19c7a: 4d0b ldr r5, [pc, #44] ; (19ca8 <lv_label_get_long_mode+0x48>)
19c7c: 47a8 blx r5
19c7e: 0022 movs r2, r4
19c80: 2300 movs r3, #0
19c82: 480a ldr r0, [pc, #40] ; (19cac <lv_label_get_long_mode+0x4c>)
19c84: 490a ldr r1, [pc, #40] ; (19cb0 <lv_label_get_long_mode+0x50>)
19c86: 4788 blx r1
19c88: e7fe b.n 19c88 <lv_label_get_long_mode+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19c8a: 0020 movs r0, r4
19c8c: 4b09 ldr r3, [pc, #36] ; (19cb4 <lv_label_get_long_mode+0x54>)
19c8e: 4798 blx r3
return ext->long_mode;
19c90: 7c00 ldrb r0, [r0, #16]
19c92: 0740 lsls r0, r0, #29
19c94: 0f40 lsrs r0, r0, #29
}
19c96: b003 add sp, #12
19c98: bd30 pop {r4, r5, pc}
19c9a: 46c0 nop ; (mov r8, r8)
19c9c: 000017ad .word 0x000017ad
19ca0: 0002af50 .word 0x0002af50
19ca4: 0002b014 .word 0x0002b014
19ca8: 00012159 .word 0x00012159
19cac: 00025d20 .word 0x00025d20
19cb0: 000017b5 .word 0x000017b5
19cb4: 000043d1 .word 0x000043d1
00019cb8 <lv_label_get_align>:
{
19cb8: b530 push {r4, r5, lr}
19cba: b083 sub sp, #12
19cbc: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19cbe: 4b0e ldr r3, [pc, #56] ; (19cf8 <lv_label_get_align+0x40>)
19cc0: 4798 blx r3
19cc2: 2800 cmp r0, #0
19cc4: d10c bne.n 19ce0 <lv_label_get_align+0x28>
19cc6: 4b0d ldr r3, [pc, #52] ; (19cfc <lv_label_get_align+0x44>)
19cc8: 9300 str r3, [sp, #0]
19cca: 4a0d ldr r2, [pc, #52] ; (19d00 <lv_label_get_align+0x48>)
19ccc: 490d ldr r1, [pc, #52] ; (19d04 <lv_label_get_align+0x4c>)
19cce: 3003 adds r0, #3
19cd0: 4d0d ldr r5, [pc, #52] ; (19d08 <lv_label_get_align+0x50>)
19cd2: 47a8 blx r5
19cd4: 0022 movs r2, r4
19cd6: 2300 movs r3, #0
19cd8: 480c ldr r0, [pc, #48] ; (19d0c <lv_label_get_align+0x54>)
19cda: 490d ldr r1, [pc, #52] ; (19d10 <lv_label_get_align+0x58>)
19cdc: 4788 blx r1
19cde: e7fe b.n 19cde <lv_label_get_align+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19ce0: 0020 movs r0, r4
19ce2: 4b0c ldr r3, [pc, #48] ; (19d14 <lv_label_get_align+0x5c>)
19ce4: 4798 blx r3
lv_label_align_t align = ext->align;
19ce6: 7c00 ldrb r0, [r0, #16]
19ce8: 0680 lsls r0, r0, #26
19cea: 0f80 lsrs r0, r0, #30
if(align == LV_LABEL_ALIGN_AUTO) {
19cec: 2803 cmp r0, #3
19cee: d001 beq.n 19cf4 <lv_label_get_align+0x3c>
}
19cf0: b003 add sp, #12
19cf2: bd30 pop {r4, r5, pc}
align = LV_LABEL_ALIGN_LEFT;
19cf4: 2000 movs r0, #0
19cf6: e7fb b.n 19cf0 <lv_label_get_align+0x38>
19cf8: 000017ad .word 0x000017ad
19cfc: 0002af68 .word 0x0002af68
19d00: 000001ff .word 0x000001ff
19d04: 0002b014 .word 0x0002b014
19d08: 00012159 .word 0x00012159
19d0c: 00025d20 .word 0x00025d20
19d10: 000017b5 .word 0x000017b5
19d14: 000043d1 .word 0x000043d1
00019d18 <lv_label_get_recolor>:
{
19d18: b530 push {r4, r5, lr}
19d1a: b083 sub sp, #12
19d1c: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19d1e: 4b0c ldr r3, [pc, #48] ; (19d50 <lv_label_get_recolor+0x38>)
19d20: 4798 blx r3
19d22: 2800 cmp r0, #0
19d24: d10c bne.n 19d40 <lv_label_get_recolor+0x28>
19d26: 4b0b ldr r3, [pc, #44] ; (19d54 <lv_label_get_recolor+0x3c>)
19d28: 9300 str r3, [sp, #0]
19d2a: 4a0b ldr r2, [pc, #44] ; (19d58 <lv_label_get_recolor+0x40>)
19d2c: 490b ldr r1, [pc, #44] ; (19d5c <lv_label_get_recolor+0x44>)
19d2e: 3003 adds r0, #3
19d30: 4d0b ldr r5, [pc, #44] ; (19d60 <lv_label_get_recolor+0x48>)
19d32: 47a8 blx r5
19d34: 0022 movs r2, r4
19d36: 2300 movs r3, #0
19d38: 480a ldr r0, [pc, #40] ; (19d64 <lv_label_get_recolor+0x4c>)
19d3a: 490b ldr r1, [pc, #44] ; (19d68 <lv_label_get_recolor+0x50>)
19d3c: 4788 blx r1
19d3e: e7fe b.n 19d3e <lv_label_get_recolor+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19d40: 0020 movs r0, r4
19d42: 4b0a ldr r3, [pc, #40] ; (19d6c <lv_label_get_recolor+0x54>)
19d44: 4798 blx r3
return ext->recolor == 0 ? false : true;
19d46: 7c00 ldrb r0, [r0, #16]
19d48: 0640 lsls r0, r0, #25
19d4a: 0fc0 lsrs r0, r0, #31
}
19d4c: b003 add sp, #12
19d4e: bd30 pop {r4, r5, pc}
19d50: 000017ad .word 0x000017ad
19d54: 0002af7c .word 0x0002af7c
19d58: 0000021b .word 0x0000021b
19d5c: 0002b014 .word 0x0002b014
19d60: 00012159 .word 0x00012159
19d64: 00025d20 .word 0x00025d20
19d68: 000017b5 .word 0x000017b5
19d6c: 000043d1 .word 0x000043d1
00019d70 <lv_label_get_letter_on>:
{
19d70: b5f0 push {r4, r5, r6, r7, lr}
19d72: 46de mov lr, fp
19d74: 4657 mov r7, sl
19d76: 464e mov r6, r9
19d78: 4645 mov r5, r8
19d7a: b5e0 push {r5, r6, r7, lr}
19d7c: b091 sub sp, #68 ; 0x44
19d7e: 0004 movs r4, r0
19d80: 9106 str r1, [sp, #24]
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
19d82: 4ba4 ldr r3, [pc, #656] ; (1a014 <lv_label_get_letter_on+0x2a4>)
19d84: 4798 blx r3
19d86: 2800 cmp r0, #0
19d88: d10c bne.n 19da4 <lv_label_get_letter_on+0x34>
19d8a: 4ba3 ldr r3, [pc, #652] ; (1a018 <lv_label_get_letter_on+0x2a8>)
19d8c: 9300 str r3, [sp, #0]
19d8e: 4aa3 ldr r2, [pc, #652] ; (1a01c <lv_label_get_letter_on+0x2ac>)
19d90: 49a3 ldr r1, [pc, #652] ; (1a020 <lv_label_get_letter_on+0x2b0>)
19d92: 3003 adds r0, #3
19d94: 4da3 ldr r5, [pc, #652] ; (1a024 <lv_label_get_letter_on+0x2b4>)
19d96: 47a8 blx r5
19d98: 0022 movs r2, r4
19d9a: 2300 movs r3, #0
19d9c: 48a2 ldr r0, [pc, #648] ; (1a028 <lv_label_get_letter_on+0x2b8>)
19d9e: 49a3 ldr r1, [pc, #652] ; (1a02c <lv_label_get_letter_on+0x2bc>)
19da0: 4788 blx r1
19da2: e7fe b.n 19da2 <lv_label_get_letter_on+0x32>
LV_ASSERT_NULL(pos);
19da4: 9d06 ldr r5, [sp, #24]
19da6: 0028 movs r0, r5
19da8: 4b9a ldr r3, [pc, #616] ; (1a014 <lv_label_get_letter_on+0x2a4>)
19daa: 4798 blx r3
19dac: 2800 cmp r0, #0
19dae: d10c bne.n 19dca <lv_label_get_letter_on+0x5a>
19db0: 4b99 ldr r3, [pc, #612] ; (1a018 <lv_label_get_letter_on+0x2a8>)
19db2: 9300 str r3, [sp, #0]
19db4: 4a9e ldr r2, [pc, #632] ; (1a030 <lv_label_get_letter_on+0x2c0>)
19db6: 499a ldr r1, [pc, #616] ; (1a020 <lv_label_get_letter_on+0x2b0>)
19db8: 3003 adds r0, #3
19dba: 4c9a ldr r4, [pc, #616] ; (1a024 <lv_label_get_letter_on+0x2b4>)
19dbc: 47a0 blx r4
19dbe: 002a movs r2, r5
19dc0: 2300 movs r3, #0
19dc2: 4899 ldr r0, [pc, #612] ; (1a028 <lv_label_get_letter_on+0x2b8>)
19dc4: 4999 ldr r1, [pc, #612] ; (1a02c <lv_label_get_letter_on+0x2bc>)
19dc6: 4788 blx r1
19dc8: e7fe b.n 19dc8 <lv_label_get_letter_on+0x58>
get_txt_coords(label, &txt_coords);
19dca: ad0e add r5, sp, #56 ; 0x38
19dcc: 0029 movs r1, r5
19dce: 0020 movs r0, r4
19dd0: 4b98 ldr r3, [pc, #608] ; (1a034 <lv_label_get_letter_on+0x2c4>)
19dd2: 4798 blx r3
const char * txt = lv_label_get_text(label);
19dd4: 0020 movs r0, r4
19dd6: 4b98 ldr r3, [pc, #608] ; (1a038 <lv_label_get_letter_on+0x2c8>)
19dd8: 4798 blx r3
19dda: 9003 str r0, [sp, #12]
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
19ddc: 0020 movs r0, r4
19dde: 4b97 ldr r3, [pc, #604] ; (1a03c <lv_label_get_letter_on+0x2cc>)
19de0: 4798 blx r3
19de2: 0006 movs r6, r0
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
19de4: 88ab ldrh r3, [r5, #4]
19de6: 3301 adds r3, #1
19de8: 882a ldrh r2, [r5, #0]
19dea: 1a9b subs r3, r3, r2
19dec: b21b sxth r3, r3
19dee: 9309 str r3, [sp, #36] ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
19df0: 4a93 ldr r2, [pc, #588] ; (1a040 <lv_label_get_letter_on+0x2d0>)
19df2: 2100 movs r1, #0
19df4: 0020 movs r0, r4
19df6: 4b93 ldr r3, [pc, #588] ; (1a044 <lv_label_get_letter_on+0x2d4>)
19df8: 4798 blx r3
19dfa: 0007 movs r7, r0
19dfc: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
19dfe: 4a92 ldr r2, [pc, #584] ; (1a048 <lv_label_get_letter_on+0x2d8>)
19e00: 2100 movs r1, #0
19e02: 0020 movs r0, r4
19e04: 4d91 ldr r5, [pc, #580] ; (1a04c <lv_label_get_letter_on+0x2dc>)
19e06: 47a8 blx r5
19e08: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
19e0a: 4a91 ldr r2, [pc, #580] ; (1a050 <lv_label_get_letter_on+0x2e0>)
19e0c: 2100 movs r1, #0
19e0e: 0020 movs r0, r4
19e10: 47a8 blx r5
19e12: 9008 str r0, [sp, #32]
19e14: 9007 str r0, [sp, #28]
* @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)
{
return font_p->line_height;
19e16: 2208 movs r2, #8
19e18: 5ebb ldrsh r3, [r7, r2]
19e1a: 469b mov fp, r3
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
19e1c: 7c33 ldrb r3, [r6, #16]
19e1e: 065e lsls r6, r3, #25
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
19e20: 0ff6 lsrs r6, r6, #31
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
19e22: b25a sxtb r2, r3
19e24: 2a00 cmp r2, #0
19e26: da01 bge.n 19e2c <lv_label_get_letter_on+0xbc>
19e28: 2202 movs r2, #2
19e2a: 4316 orrs r6, r2
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
19e2c: 075b lsls r3, r3, #29
19e2e: d101 bne.n 19e34 <lv_label_get_letter_on+0xc4>
19e30: 2310 movs r3, #16
19e32: 431e orrs r6, r3
lv_label_align_t align = lv_label_get_align(label);
19e34: 0020 movs r0, r4
19e36: 4b87 ldr r3, [pc, #540] ; (1a054 <lv_label_get_letter_on+0x2e4>)
19e38: 4798 blx r3
19e3a: 0007 movs r7, r0
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
19e3c: 2801 cmp r0, #1
19e3e: d13f bne.n 19ec0 <lv_label_get_letter_on+0x150>
19e40: 2304 movs r3, #4
19e42: 431e orrs r6, r3
while(txt[line_start] != '\0') {
19e44: 9b03 ldr r3, [sp, #12]
19e46: 781b ldrb r3, [r3, #0]
19e48: 2b00 cmp r3, #0
19e4a: d142 bne.n 19ed2 <lv_label_get_letter_on+0x162>
19e4c: 9b03 ldr r3, [sp, #12]
19e4e: 9304 str r3, [sp, #16]
19e50: 2300 movs r3, #0
19e52: 469a mov sl, r3
19e54: 2500 movs r5, #0
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
19e56: 4653 mov r3, sl
19e58: 1ae9 subs r1, r5, r3
19e5a: b289 uxth r1, r1
19e5c: 9600 str r6, [sp, #0]
19e5e: 9b08 ldr r3, [sp, #32]
19e60: 9a05 ldr r2, [sp, #20]
19e62: 9804 ldr r0, [sp, #16]
19e64: 4c7c ldr r4, [pc, #496] ; (1a058 <lv_label_get_letter_on+0x2e8>)
19e66: 47a0 blx r4
19e68: aa0e add r2, sp, #56 ; 0x38
19e6a: 8893 ldrh r3, [r2, #4]
19e6c: 3301 adds r3, #1
19e6e: 8812 ldrh r2, [r2, #0]
19e70: 1a9b subs r3, r3, r2
x += lv_area_get_width(&txt_coords) / 2 - line_w / 2;
19e72: b21b sxth r3, r3
19e74: 0fdc lsrs r4, r3, #31
19e76: 18e4 adds r4, r4, r3
19e78: 1064 asrs r4, r4, #1
19e7a: 0fc3 lsrs r3, r0, #31
19e7c: 1818 adds r0, r3, r0
19e7e: 1040 asrs r0, r0, #1
19e80: 1a24 subs r4, r4, r0
19e82: b224 sxth r4, r4
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
19e84: 2300 movs r3, #0
19e86: 2217 movs r2, #23
19e88: a908 add r1, sp, #32
19e8a: 468c mov ip, r1
19e8c: 4462 add r2, ip
19e8e: 7013 strb r3, [r2, #0]
uint32_t i = 0;
19e90: 930c str r3, [sp, #48] ; 0x30
19e92: 4698 mov r8, r3
if(new_line_start > 0) {
19e94: 2d00 cmp r5, #0
19e96: d000 beq.n 19e9a <lv_label_get_letter_on+0x12a>
19e98: e0ab b.n 19ff2 <lv_label_get_letter_on+0x282>
logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i);
19e9a: 4e70 ldr r6, [pc, #448] ; (1a05c <lv_label_get_letter_on+0x2ec>)
19e9c: 990c ldr r1, [sp, #48] ; 0x30
19e9e: 9804 ldr r0, [sp, #16]
19ea0: 6833 ldr r3, [r6, #0]
19ea2: 4798 blx r3
19ea4: 0004 movs r4, r0
return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start);
19ea6: 6833 ldr r3, [r6, #0]
19ea8: 4651 mov r1, sl
19eaa: 9803 ldr r0, [sp, #12]
19eac: 4798 blx r3
19eae: 1820 adds r0, r4, r0
19eb0: b280 uxth r0, r0
}
19eb2: b011 add sp, #68 ; 0x44
19eb4: bc3c pop {r2, r3, r4, r5}
19eb6: 4690 mov r8, r2
19eb8: 4699 mov r9, r3
19eba: 46a2 mov sl, r4
19ebc: 46ab mov fp, r5
19ebe: bdf0 pop {r4, r5, r6, r7, pc}
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
19ec0: 2802 cmp r0, #2
19ec2: d000 beq.n 19ec6 <lv_label_get_letter_on+0x156>
19ec4: e099 b.n 19ffa <lv_label_get_letter_on+0x28a>
19ec6: 2308 movs r3, #8
19ec8: 431e orrs r6, r3
while(txt[line_start] != '\0') {
19eca: 9b03 ldr r3, [sp, #12]
19ecc: 781b ldrb r3, [r3, #0]
19ece: 2b00 cmp r3, #0
19ed0: d048 beq.n 19f64 <lv_label_get_letter_on+0x1f4>
{
19ed2: 9b03 ldr r3, [sp, #12]
19ed4: 9304 str r3, [sp, #16]
19ed6: 2400 movs r4, #0
19ed8: 2300 movs r3, #0
19eda: 469a mov sl, r3
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
19edc: 4b60 ldr r3, [pc, #384] ; (1a060 <lv_label_get_letter_on+0x2f0>)
19ede: 4699 mov r9, r3
y += letter_height + line_space;
19ee0: 44d8 add r8, fp
19ee2: e00a b.n 19efa <lv_label_get_letter_on+0x18a>
19ee4: 4444 add r4, r8
19ee6: b224 sxth r4, r4
while(txt[line_start] != '\0') {
19ee8: 9b03 ldr r3, [sp, #12]
19eea: 469c mov ip, r3
19eec: 4484 add ip, r0
19eee: 4663 mov r3, ip
19ef0: 9304 str r3, [sp, #16]
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
19ef2: 4682 mov sl, r0
while(txt[line_start] != '\0') {
19ef4: 781b ldrb r3, [r3, #0]
19ef6: 2b00 cmp r3, #0
19ef8: d032 beq.n 19f60 <lv_label_get_letter_on+0x1f0>
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
19efa: 9600 str r6, [sp, #0]
19efc: 9b09 ldr r3, [sp, #36] ; 0x24
19efe: 9a07 ldr r2, [sp, #28]
19f00: 9905 ldr r1, [sp, #20]
19f02: 9804 ldr r0, [sp, #16]
19f04: 47c8 blx r9
19f06: 4450 add r0, sl
if(pos->y <= y + letter_height) {
19f08: 9b06 ldr r3, [sp, #24]
19f0a: 2202 movs r2, #2
19f0c: 5e9a ldrsh r2, [r3, r2]
19f0e: 465b mov r3, fp
19f10: 18e3 adds r3, r4, r3
19f12: 429a cmp r2, r3
19f14: dce6 bgt.n 19ee4 <lv_label_get_letter_on+0x174>
19f16: 0005 movs r5, r0
uint32_t tmp = new_line_start;
19f18: 900b str r0, [sp, #44] ; 0x2c
letter = _lv_txt_encoded_prev(txt, &tmp);
19f1a: 4b52 ldr r3, [pc, #328] ; (1a064 <lv_label_get_letter_on+0x2f4>)
19f1c: 681b ldr r3, [r3, #0]
19f1e: a90b add r1, sp, #44 ; 0x2c
19f20: 9c03 ldr r4, [sp, #12]
19f22: 0020 movs r0, r4
19f24: 4798 blx r3
if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++;
19f26: 280a cmp r0, #10
19f28: d003 beq.n 19f32 <lv_label_get_letter_on+0x1c2>
19f2a: 5d62 ldrb r2, [r4, r5]
19f2c: 4253 negs r3, r2
19f2e: 4153 adcs r3, r2
19f30: 18ed adds r5, r5, r3
if(align == LV_LABEL_ALIGN_CENTER) {
19f32: 2f01 cmp r7, #1
19f34: d100 bne.n 19f38 <lv_label_get_letter_on+0x1c8>
19f36: e78e b.n 19e56 <lv_label_get_letter_on+0xe6>
lv_coord_t x = 0;
19f38: 2400 movs r4, #0
else if(align == LV_LABEL_ALIGN_RIGHT) {
19f3a: 2f02 cmp r7, #2
19f3c: d1a2 bne.n 19e84 <lv_label_get_letter_on+0x114>
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
19f3e: 4653 mov r3, sl
19f40: 1ae9 subs r1, r5, r3
19f42: b289 uxth r1, r1
19f44: 9600 str r6, [sp, #0]
19f46: 9b08 ldr r3, [sp, #32]
19f48: 9a05 ldr r2, [sp, #20]
19f4a: 9804 ldr r0, [sp, #16]
19f4c: 4c42 ldr r4, [pc, #264] ; (1a058 <lv_label_get_letter_on+0x2e8>)
19f4e: 47a0 blx r4
19f50: ab0e add r3, sp, #56 ; 0x38
19f52: 889c ldrh r4, [r3, #4]
19f54: 3401 adds r4, #1
19f56: 881b ldrh r3, [r3, #0]
19f58: 1ae4 subs r4, r4, r3
x += lv_area_get_width(&txt_coords) - line_w;
19f5a: 1a24 subs r4, r4, r0
19f5c: b224 sxth r4, r4
19f5e: e791 b.n 19e84 <lv_label_get_letter_on+0x114>
19f60: 0005 movs r5, r0
19f62: e7e6 b.n 19f32 <lv_label_get_letter_on+0x1c2>
while(txt[line_start] != '\0') {
19f64: 9b03 ldr r3, [sp, #12]
19f66: 9304 str r3, [sp, #16]
19f68: 2300 movs r3, #0
19f6a: 469a mov sl, r3
19f6c: 2500 movs r5, #0
19f6e: e7e6 b.n 19f3e <lv_label_get_letter_on+0x1ce>
x += lv_font_get_glyph_width(font, letter, letter_next);
19f70: 9a09 ldr r2, [sp, #36] ; 0x24
19f72: 9908 ldr r1, [sp, #32]
19f74: 9805 ldr r0, [sp, #20]
19f76: 4b3c ldr r3, [pc, #240] ; (1a068 <lv_label_get_letter_on+0x2f8>)
19f78: 4798 blx r3
19f7a: 1903 adds r3, r0, r4
19f7c: b29b uxth r3, r3
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
19f7e: 9a06 ldr r2, [sp, #24]
19f80: 2100 movs r1, #0
19f82: 5e51 ldrsh r1, [r2, r1]
19f84: b21a sxth r2, r3
19f86: 4291 cmp r1, r2
19f88: db31 blt.n 19fee <lv_label_get_letter_on+0x27e>
19f8a: 9a0c ldr r2, [sp, #48] ; 0x30
19f8c: 4651 mov r1, sl
19f8e: 1851 adds r1, r2, r1
19f90: 42a9 cmp r1, r5
19f92: d02c beq.n 19fee <lv_label_get_letter_on+0x27e>
19f94: 9803 ldr r0, [sp, #12]
19f96: 5c41 ldrb r1, [r0, r1]
19f98: 2900 cmp r1, #0
19f9a: d028 beq.n 19fee <lv_label_get_letter_on+0x27e>
x += letter_space;
19f9c: 9907 ldr r1, [sp, #28]
19f9e: 468c mov ip, r1
19fa0: 4463 add r3, ip
19fa2: b21c sxth r4, r3
i_act = i;
19fa4: 0017 movs r7, r2
while(i + line_start < new_line_start) {
19fa6: 9b0c ldr r3, [sp, #48] ; 0x30
19fa8: 4453 add r3, sl
19faa: 42ab cmp r3, r5
19fac: d300 bcc.n 19fb0 <lv_label_get_letter_on+0x240>
19fae: e774 b.n 19e9a <lv_label_get_letter_on+0x12a>
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
19fb0: 4b2e ldr r3, [pc, #184] ; (1a06c <lv_label_get_letter_on+0x2fc>)
19fb2: 4699 mov r9, r3
19fb4: a90c add r1, sp, #48 ; 0x30
19fb6: 9804 ldr r0, [sp, #16]
19fb8: 681a ldr r2, [r3, #0]
19fba: 4790 blx r2
19fbc: 9008 str r0, [sp, #32]
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
19fbe: 9b04 ldr r3, [sp, #16]
19fc0: 0018 movs r0, r3
19fc2: 9a0c ldr r2, [sp, #48] ; 0x30
19fc4: 4694 mov ip, r2
19fc6: 4460 add r0, ip
19fc8: 464a mov r2, r9
19fca: 6813 ldr r3, [r2, #0]
19fcc: 2100 movs r1, #0
19fce: 4798 blx r3
19fd0: 9009 str r0, [sp, #36] ; 0x24
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
19fd2: 2e00 cmp r6, #0
19fd4: d0cc beq.n 19f70 <lv_label_get_letter_on+0x200>
if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) {
19fd6: 9b04 ldr r3, [sp, #16]
19fd8: 9a0c ldr r2, [sp, #48] ; 0x30
19fda: 5c99 ldrb r1, [r3, r2]
19fdc: 2017 movs r0, #23
19fde: ab08 add r3, sp, #32
19fe0: 469c mov ip, r3
19fe2: 4460 add r0, ip
19fe4: 4b22 ldr r3, [pc, #136] ; (1a070 <lv_label_get_letter_on+0x300>)
19fe6: 4798 blx r3
19fe8: 2800 cmp r0, #0
19fea: d1dc bne.n 19fa6 <lv_label_get_letter_on+0x236>
19fec: e7c0 b.n 19f70 <lv_label_get_letter_on+0x200>
i = i_act;
19fee: 970c str r7, [sp, #48] ; 0x30
break;
19ff0: e753 b.n 19e9a <lv_label_get_letter_on+0x12a>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
19ff2: 2301 movs r3, #1
19ff4: 401e ands r6, r3
19ff6: 4647 mov r7, r8
19ff8: e7d5 b.n 19fa6 <lv_label_get_letter_on+0x236>
while(txt[line_start] != '\0') {
19ffa: 9b03 ldr r3, [sp, #12]
19ffc: 781b ldrb r3, [r3, #0]
19ffe: 2b00 cmp r3, #0
1a000: d000 beq.n 1a004 <lv_label_get_letter_on+0x294>
1a002: e766 b.n 19ed2 <lv_label_get_letter_on+0x162>
1a004: 9b03 ldr r3, [sp, #12]
1a006: 9304 str r3, [sp, #16]
1a008: 2300 movs r3, #0
1a00a: 469a mov sl, r3
1a00c: 2500 movs r5, #0
lv_coord_t x = 0;
1a00e: 2400 movs r4, #0
1a010: e738 b.n 19e84 <lv_label_get_letter_on+0x114>
1a012: 46c0 nop ; (mov r8, r8)
1a014: 000017ad .word 0x000017ad
1a018: 0002af94 .word 0x0002af94
1a01c: 000002a5 .word 0x000002a5
1a020: 0002b014 .word 0x0002b014
1a024: 00012159 .word 0x00012159
1a028: 00025d20 .word 0x00025d20
1a02c: 000017b5 .word 0x000017b5
1a030: 000002a6 .word 0x000002a6
1a034: 00019aa5 .word 0x00019aa5
1a038: 00019c0d .word 0x00019c0d
1a03c: 000043d1 .word 0x000043d1
1a040: 0000808e .word 0x0000808e
1a044: 00003c99 .word 0x00003c99
1a048: 00008081 .word 0x00008081
1a04c: 00003a89 .word 0x00003a89
1a050: 00008080 .word 0x00008080
1a054: 00019cb9 .word 0x00019cb9
1a058: 00013e99 .word 0x00013e99
1a05c: 20000058 .word 0x20000058
1a060: 00013c21 .word 0x00013c21
1a064: 20000060 .word 0x20000060
1a068: 0000fe91 .word 0x0000fe91
1a06c: 2000005c .word 0x2000005c
1a070: 00013be1 .word 0x00013be1
0001a074 <lv_label_refr_text>:
{
1a074: b5f0 push {r4, r5, r6, r7, lr}
1a076: 46de mov lr, fp
1a078: 4657 mov r7, sl
1a07a: 464e mov r6, r9
1a07c: 4645 mov r5, r8
1a07e: b5e0 push {r5, r6, r7, lr}
1a080: b09b sub sp, #108 ; 0x6c
1a082: 0006 movs r6, r0
1a084: 9004 str r0, [sp, #16]
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1a086: 4bd0 ldr r3, [pc, #832] ; (1a3c8 <lv_label_refr_text+0x354>)
1a088: 4798 blx r3
1a08a: 0004 movs r4, r0
if(ext->text == NULL) return;
1a08c: 6803 ldr r3, [r0, #0]
1a08e: 2b00 cmp r3, #0
1a090: d040 beq.n 1a114 <lv_label_refr_text+0xa0>
get_txt_coords(label, &txt_coords);
1a092: ad18 add r5, sp, #96 ; 0x60
1a094: 0029 movs r1, r5
1a096: 0030 movs r0, r6
1a098: 4bcc ldr r3, [pc, #816] ; (1a3cc <lv_label_refr_text+0x358>)
1a09a: 4798 blx r3
1a09c: 88af ldrh r7, [r5, #4]
1a09e: 3701 adds r7, #1
1a0a0: 882b ldrh r3, [r5, #0]
1a0a2: 1aff subs r7, r7, r3
1a0a4: b23f sxth r7, r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
1a0a6: 4aca ldr r2, [pc, #808] ; (1a3d0 <lv_label_refr_text+0x35c>)
1a0a8: 2100 movs r1, #0
1a0aa: 0030 movs r0, r6
1a0ac: 4bc9 ldr r3, [pc, #804] ; (1a3d4 <lv_label_refr_text+0x360>)
1a0ae: 4798 blx r3
1a0b0: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
1a0b2: 4ac9 ldr r2, [pc, #804] ; (1a3d8 <lv_label_refr_text+0x364>)
1a0b4: 2100 movs r1, #0
1a0b6: 9604 str r6, [sp, #16]
1a0b8: 0030 movs r0, r6
1a0ba: 4ec8 ldr r6, [pc, #800] ; (1a3dc <lv_label_refr_text+0x368>)
1a0bc: 47b0 blx r6
1a0be: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
1a0c0: 4ac7 ldr r2, [pc, #796] ; (1a3e0 <lv_label_refr_text+0x36c>)
1a0c2: 2100 movs r1, #0
1a0c4: 9804 ldr r0, [sp, #16]
1a0c6: 47b0 blx r6
1a0c8: 0006 movs r6, r0
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
1a0ca: 7c22 ldrb r2, [r4, #16]
1a0cc: 0653 lsls r3, r2, #25
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
1a0ce: 0fdb lsrs r3, r3, #31
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
1a0d0: b251 sxtb r1, r2
1a0d2: 2900 cmp r1, #0
1a0d4: db25 blt.n 1a122 <lv_label_refr_text+0xae>
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
1a0d6: 0752 lsls r2, r2, #29
1a0d8: d101 bne.n 1a0de <lv_label_refr_text+0x6a>
1a0da: 2210 movs r2, #16
1a0dc: 4313 orrs r3, r2
_lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag);
1a0de: 6821 ldr r1, [r4, #0]
1a0e0: 9302 str r3, [sp, #8]
1a0e2: 9701 str r7, [sp, #4]
1a0e4: 9500 str r5, [sp, #0]
1a0e6: 0033 movs r3, r6
1a0e8: 9a05 ldr r2, [sp, #20]
1a0ea: a817 add r0, sp, #92 ; 0x5c
1a0ec: 4fbd ldr r7, [pc, #756] ; (1a3e4 <lv_label_refr_text+0x370>)
1a0ee: 47b8 blx r7
if(ext->long_mode == LV_LABEL_LONG_EXPAND) {
1a0f0: 7c22 ldrb r2, [r4, #16]
1a0f2: 2307 movs r3, #7
1a0f4: 4013 ands r3, r2
1a0f6: d017 beq.n 1a128 <lv_label_refr_text+0xb4>
else if(ext->long_mode == LV_LABEL_LONG_SROLL) {
1a0f8: 2b03 cmp r3, #3
1a0fa: d039 beq.n 1a170 <lv_label_refr_text+0xfc>
else if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
1a0fc: 2b04 cmp r3, #4
1a0fe: d100 bne.n 1a102 <lv_label_refr_text+0x8e>
1a100: e0e2 b.n 1a2c8 <lv_label_refr_text+0x254>
else if(ext->long_mode == LV_LABEL_LONG_DOT) {
1a102: 2b02 cmp r3, #2
1a104: d100 bne.n 1a108 <lv_label_refr_text+0x94>
1a106: e185 b.n 1a414 <lv_label_refr_text+0x3a0>
else if(ext->long_mode == LV_LABEL_LONG_BREAK) {
1a108: 2b01 cmp r3, #1
1a10a: d100 bne.n 1a10e <lv_label_refr_text+0x9a>
1a10c: e21a b.n 1a544 <lv_label_refr_text+0x4d0>
lv_obj_invalidate(label);
1a10e: 9804 ldr r0, [sp, #16]
1a110: 4bb5 ldr r3, [pc, #724] ; (1a3e8 <lv_label_refr_text+0x374>)
1a112: 4798 blx r3
}
1a114: b01b add sp, #108 ; 0x6c
1a116: bc3c pop {r2, r3, r4, r5}
1a118: 4690 mov r8, r2
1a11a: 4699 mov r9, r3
1a11c: 46a2 mov sl, r4
1a11e: 46ab mov fp, r5
1a120: bdf0 pop {r4, r5, r6, r7, pc}
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
1a122: 2102 movs r1, #2
1a124: 430b orrs r3, r1
1a126: e7d6 b.n 1a0d6 <lv_label_refr_text+0x62>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1a128: 2212 movs r2, #18
1a12a: 2100 movs r1, #0
1a12c: 9c04 ldr r4, [sp, #16]
1a12e: 0020 movs r0, r4
1a130: 4eaa ldr r6, [pc, #680] ; (1a3dc <lv_label_refr_text+0x368>)
1a132: 47b0 blx r6
1a134: 0007 movs r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1a136: 2213 movs r2, #19
1a138: 2100 movs r1, #0
1a13a: 0020 movs r0, r4
1a13c: 47b0 blx r6
size.x += lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN);
1a13e: ad17 add r5, sp, #92 ; 0x5c
1a140: 183f adds r7, r7, r0
1a142: 8828 ldrh r0, [r5, #0]
1a144: 19c0 adds r0, r0, r7
1a146: 8028 strh r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1a148: 2210 movs r2, #16
1a14a: 2100 movs r1, #0
1a14c: 0020 movs r0, r4
1a14e: 47b0 blx r6
1a150: 0007 movs r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1a152: 2211 movs r2, #17
1a154: 2100 movs r1, #0
1a156: 0020 movs r0, r4
1a158: 47b0 blx r6
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1a15a: 183f adds r7, r7, r0
1a15c: 886a ldrh r2, [r5, #2]
1a15e: 19d2 adds r2, r2, r7
1a160: b212 sxth r2, r2
1a162: 806a strh r2, [r5, #2]
lv_obj_set_size(label, size.x, size.y);
1a164: 2300 movs r3, #0
1a166: 5ee9 ldrsh r1, [r5, r3]
1a168: 0020 movs r0, r4
1a16a: 4ba0 ldr r3, [pc, #640] ; (1a3ec <lv_label_refr_text+0x378>)
1a16c: 4798 blx r3
1a16e: e7ce b.n 1a10e <lv_label_refr_text+0x9a>
lv_anim_init(&a);
1a170: af07 add r7, sp, #28
1a172: 0038 movs r0, r7
1a174: 4b9e ldr r3, [pc, #632] ; (1a3f0 <lv_label_refr_text+0x37c>)
1a176: 4798 blx r3
* @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)
{
a->var = var;
1a178: 9b04 ldr r3, [sp, #16]
1a17a: 9307 str r3, [sp, #28]
* @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)
{
a->repeat_cnt = cnt;
1a17c: 2301 movs r3, #1
1a17e: 425b negs r3, r3
1a180: 86bb strh r3, [r7, #52] ; 0x34
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
1a182: 2220 movs r2, #32
1a184: 2120 movs r1, #32
1a186: 9805 ldr r0, [sp, #20]
1a188: 4b9a ldr r3, [pc, #616] ; (1a3f4 <lv_label_refr_text+0x380>)
1a18a: 4798 blx r3
1a18c: 1986 adds r6, r0, r6
1a18e: 20fa movs r0, #250 ; 0xfa
1a190: 0080 lsls r0, r0, #2
1a192: 4370 muls r0, r6
ext->anim_speed) *
1a194: 8961 ldrh r1, [r4, #10]
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
1a196: 4b98 ldr r3, [pc, #608] ; (1a3f8 <lv_label_refr_text+0x384>)
1a198: 4798 blx r3
1a19a: 0043 lsls r3, r0, #1
1a19c: 18c0 adds r0, r0, r3
a->playback_delay = delay;
1a19e: b280 uxth r0, r0
1a1a0: 62b8 str r0, [r7, #40] ; 0x28
* @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, uint16_t delay)
{
a->repeat_delay = delay;
1a1a2: 6338 str r0, [r7, #48] ; 0x30
if(size.x > lv_area_get_width(&txt_coords)) {
1a1a4: ab17 add r3, sp, #92 ; 0x5c
1a1a6: 2200 movs r2, #0
1a1a8: 5e99 ldrsh r1, [r3, r2]
1a1aa: ab18 add r3, sp, #96 ; 0x60
1a1ac: 889a ldrh r2, [r3, #4]
1a1ae: 3201 adds r2, #1
1a1b0: 881b ldrh r3, [r3, #0]
1a1b2: 1ad2 subs r2, r2, r3
1a1b4: b292 uxth r2, r2
1a1b6: b213 sxth r3, r2
1a1b8: 4299 cmp r1, r3
1a1ba: dd3a ble.n 1a232 <lv_label_refr_text+0x1be>
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
1a1bc: 1a52 subs r2, r2, r1
1a1be: b212 sxth r2, r2
a->start = start;
1a1c0: 2300 movs r3, #0
1a1c2: 930d str r3, [sp, #52] ; 0x34
a->end = end;
1a1c4: 920e str r2, [sp, #56] ; 0x38
a->exec_cb = exec_cb;
1a1c6: 4d8d ldr r5, [pc, #564] ; (1a3fc <lv_label_refr_text+0x388>)
1a1c8: 9508 str r5, [sp, #32]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1a1ca: 8960 ldrh r0, [r4, #10]
1a1cc: 2100 movs r1, #0
1a1ce: 4b8c ldr r3, [pc, #560] ; (1a400 <lv_label_refr_text+0x38c>)
1a1d0: 4798 blx r3
a->time = duration;
1a1d2: 900f str r0, [sp, #60] ; 0x3c
a->playback_time = time;
1a1d4: 9012 str r0, [sp, #72] ; 0x48
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1a1d6: 0029 movs r1, r5
1a1d8: 9804 ldr r0, [sp, #16]
1a1da: 4b8a ldr r3, [pc, #552] ; (1a404 <lv_label_refr_text+0x390>)
1a1dc: 4798 blx r3
if(anim_cur) {
1a1de: 2800 cmp r0, #0
1a1e0: d024 beq.n 1a22c <lv_label_refr_text+0x1b8>
act_time = anim_cur->act_time;
1a1e2: 6a42 ldr r2, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
1a1e4: 233c movs r3, #60 ; 0x3c
1a1e6: 5cc3 ldrb r3, [r0, r3]
1a1e8: 07db lsls r3, r3, #31
1a1ea: 0fdb lsrs r3, r3, #31
if(act_time < a.time) {
1a1ec: 990f ldr r1, [sp, #60] ; 0x3c
1a1ee: 428a cmp r2, r1
1a1f0: d212 bcs.n 1a218 <lv_label_refr_text+0x1a4>
a.act_time = act_time; /*To keep the old position*/
1a1f2: a807 add r0, sp, #28
1a1f4: 9210 str r2, [sp, #64] ; 0x40
a.early_apply = 0;
1a1f6: 2136 movs r1, #54 ; 0x36
1a1f8: 5c42 ldrb r2, [r0, r1]
1a1fa: 2501 movs r5, #1
1a1fc: 43aa bics r2, r5
1a1fe: 5442 strb r2, [r0, r1]
if(playback_now) {
1a200: 2b00 cmp r3, #0
1a202: d009 beq.n 1a218 <lv_label_refr_text+0x1a4>
a.playback_now = 1;
1a204: 0003 movs r3, r0
1a206: 3106 adds r1, #6
1a208: 5c42 ldrb r2, [r0, r1]
1a20a: 2001 movs r0, #1
1a20c: 4302 orrs r2, r0
1a20e: 545a strb r2, [r3, r1]
tmp = a.start;
1a210: 699a ldr r2, [r3, #24]
a.start = a.end;
1a212: 69d9 ldr r1, [r3, #28]
1a214: 6199 str r1, [r3, #24]
a.end = tmp;
1a216: 61da str r2, [r3, #28]
lv_anim_start(&a);
1a218: a807 add r0, sp, #28
1a21a: 4b7b ldr r3, [pc, #492] ; (1a408 <lv_label_refr_text+0x394>)
1a21c: 4798 blx r3
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1a21e: 497b ldr r1, [pc, #492] ; (1a40c <lv_label_refr_text+0x398>)
1a220: 9804 ldr r0, [sp, #16]
1a222: 4b7b ldr r3, [pc, #492] ; (1a410 <lv_label_refr_text+0x39c>)
1a224: 4798 blx r3
ext->offset.y = 0;
1a226: 2300 movs r3, #0
1a228: 81e3 strh r3, [r4, #14]
1a22a: e770 b.n 1a10e <lv_label_refr_text+0x9a>
bool playback_now = false;
1a22c: 2300 movs r3, #0
uint32_t act_time = 0;
1a22e: 2200 movs r2, #0
1a230: e7dc b.n 1a1ec <lv_label_refr_text+0x178>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1a232: 4972 ldr r1, [pc, #456] ; (1a3fc <lv_label_refr_text+0x388>)
1a234: 9e04 ldr r6, [sp, #16]
1a236: 0030 movs r0, r6
1a238: 4b75 ldr r3, [pc, #468] ; (1a410 <lv_label_refr_text+0x39c>)
1a23a: 4798 blx r3
ext->offset.x = 0;
1a23c: 2300 movs r3, #0
1a23e: 81a3 strh r3, [r4, #12]
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1a240: ab17 add r3, sp, #92 ; 0x5c
1a242: 2202 movs r2, #2
1a244: 5e9a ldrsh r2, [r3, r2]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1a246: a918 add r1, sp, #96 ; 0x60
1a248: 88cb ldrh r3, [r1, #6]
1a24a: 3301 adds r3, #1
1a24c: 8849 ldrh r1, [r1, #2]
1a24e: 1a5b subs r3, r3, r1
1a250: b29b uxth r3, r3
1a252: b219 sxth r1, r3
1a254: 428a cmp r2, r1
1a256: dde2 ble.n 1a21e <lv_label_refr_text+0x1aa>
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
1a258: 1a9a subs r2, r3, r2
1a25a: 9b05 ldr r3, [sp, #20]
1a25c: 891b ldrh r3, [r3, #8]
1a25e: 1ad2 subs r2, r2, r3
1a260: b212 sxth r2, r2
a->start = start;
1a262: 2300 movs r3, #0
1a264: 930d str r3, [sp, #52] ; 0x34
a->end = end;
1a266: 920e str r2, [sp, #56] ; 0x38
a->exec_cb = exec_cb;
1a268: 4d68 ldr r5, [pc, #416] ; (1a40c <lv_label_refr_text+0x398>)
1a26a: 9508 str r5, [sp, #32]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1a26c: 8960 ldrh r0, [r4, #10]
1a26e: 2100 movs r1, #0
1a270: 4b63 ldr r3, [pc, #396] ; (1a400 <lv_label_refr_text+0x38c>)
1a272: 4798 blx r3
a->time = duration;
1a274: 900f str r0, [sp, #60] ; 0x3c
a->playback_time = time;
1a276: 9012 str r0, [sp, #72] ; 0x48
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1a278: 0029 movs r1, r5
1a27a: 0030 movs r0, r6
1a27c: 4b61 ldr r3, [pc, #388] ; (1a404 <lv_label_refr_text+0x390>)
1a27e: 4798 blx r3
if(anim_cur) {
1a280: 2800 cmp r0, #0
1a282: d01e beq.n 1a2c2 <lv_label_refr_text+0x24e>
act_time = anim_cur->act_time;
1a284: 6a42 ldr r2, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
1a286: 233c movs r3, #60 ; 0x3c
1a288: 5cc3 ldrb r3, [r0, r3]
1a28a: 07db lsls r3, r3, #31
1a28c: 0fdb lsrs r3, r3, #31
if(act_time < a.time) {
1a28e: 990f ldr r1, [sp, #60] ; 0x3c
1a290: 428a cmp r2, r1
1a292: d212 bcs.n 1a2ba <lv_label_refr_text+0x246>
a.act_time = act_time; /*To keep the old position*/
1a294: a907 add r1, sp, #28
1a296: 9210 str r2, [sp, #64] ; 0x40
a.early_apply = 0;
1a298: 2036 movs r0, #54 ; 0x36
1a29a: 5c0a ldrb r2, [r1, r0]
1a29c: 2501 movs r5, #1
1a29e: 43aa bics r2, r5
1a2a0: 540a strb r2, [r1, r0]
if(playback_now) {
1a2a2: 2b00 cmp r3, #0
1a2a4: d009 beq.n 1a2ba <lv_label_refr_text+0x246>
a.playback_now = 1;
1a2a6: 000b movs r3, r1
1a2a8: 213c movs r1, #60 ; 0x3c
1a2aa: 5c5a ldrb r2, [r3, r1]
1a2ac: 2001 movs r0, #1
1a2ae: 4302 orrs r2, r0
1a2b0: 545a strb r2, [r3, r1]
tmp = a.start;
1a2b2: 699a ldr r2, [r3, #24]
a.start = a.end;
1a2b4: 69d9 ldr r1, [r3, #28]
1a2b6: 6199 str r1, [r3, #24]
a.end = tmp;
1a2b8: 61da str r2, [r3, #28]
lv_anim_start(&a);
1a2ba: a807 add r0, sp, #28
1a2bc: 4b52 ldr r3, [pc, #328] ; (1a408 <lv_label_refr_text+0x394>)
1a2be: 4798 blx r3
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1a2c0: e725 b.n 1a10e <lv_label_refr_text+0x9a>
bool playback_now = false;
1a2c2: 2300 movs r3, #0
uint32_t act_time = 0;
1a2c4: 2200 movs r2, #0
1a2c6: e7e2 b.n 1a28e <lv_label_refr_text+0x21a>
lv_anim_init(&a);
1a2c8: ae07 add r6, sp, #28
1a2ca: 0030 movs r0, r6
1a2cc: 4b48 ldr r3, [pc, #288] ; (1a3f0 <lv_label_refr_text+0x37c>)
1a2ce: 4798 blx r3
a->var = var;
1a2d0: 9f04 ldr r7, [sp, #16]
1a2d2: 9707 str r7, [sp, #28]
a->repeat_cnt = cnt;
1a2d4: 2301 movs r3, #1
1a2d6: 425b negs r3, r3
1a2d8: 86b3 strh r3, [r6, #52] ; 0x34
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1a2da: aa18 add r2, sp, #96 ; 0x60
1a2dc: 8893 ldrh r3, [r2, #4]
1a2de: 3301 adds r3, #1
1a2e0: 8812 ldrh r2, [r2, #0]
1a2e2: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
1a2e4: aa17 add r2, sp, #92 ; 0x5c
1a2e6: 2100 movs r1, #0
1a2e8: 5e52 ldrsh r2, [r2, r1]
1a2ea: b21b sxth r3, r3
1a2ec: 429a cmp r2, r3
1a2ee: dd33 ble.n 1a358 <lv_label_refr_text+0x2e4>
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
1a2f0: 2220 movs r2, #32
1a2f2: 2120 movs r1, #32
1a2f4: 9805 ldr r0, [sp, #20]
1a2f6: 4b3f ldr r3, [pc, #252] ; (1a3f4 <lv_label_refr_text+0x380>)
1a2f8: 4798 blx r3
1a2fa: 0382 lsls r2, r0, #14
1a2fc: 1a12 subs r2, r2, r0
1a2fe: 0092 lsls r2, r2, #2
1a300: 1880 adds r0, r0, r2
1a302: ab17 add r3, sp, #92 ; 0x5c
1a304: 881a ldrh r2, [r3, #0]
1a306: 1a82 subs r2, r0, r2
1a308: b212 sxth r2, r2
a->start = start;
1a30a: 2300 movs r3, #0
1a30c: 930d str r3, [sp, #52] ; 0x34
a->end = end;
1a30e: 920e str r2, [sp, #56] ; 0x38
a->exec_cb = exec_cb;
1a310: 4d3a ldr r5, [pc, #232] ; (1a3fc <lv_label_refr_text+0x388>)
1a312: 9508 str r5, [sp, #32]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1a314: 8960 ldrh r0, [r4, #10]
1a316: 2100 movs r1, #0
1a318: 4b39 ldr r3, [pc, #228] ; (1a400 <lv_label_refr_text+0x38c>)
1a31a: 4798 blx r3
1a31c: 900f str r0, [sp, #60] ; 0x3c
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1a31e: 0029 movs r1, r5
1a320: 0038 movs r0, r7
1a322: 4b38 ldr r3, [pc, #224] ; (1a404 <lv_label_refr_text+0x390>)
1a324: 4798 blx r3
uint32_t act_time = anim_cur ? anim_cur->act_time : 0;
1a326: 2800 cmp r0, #0
1a328: d014 beq.n 1a354 <lv_label_refr_text+0x2e0>
1a32a: 6a43 ldr r3, [r0, #36] ; 0x24
if(act_time < a.time) {
1a32c: 9a0f ldr r2, [sp, #60] ; 0x3c
1a32e: 4293 cmp r3, r2
1a330: d206 bcs.n 1a340 <lv_label_refr_text+0x2cc>
a.act_time = act_time; /*To keep the old position*/
1a332: aa07 add r2, sp, #28
1a334: 9310 str r3, [sp, #64] ; 0x40
a.early_apply = 0;
1a336: 2136 movs r1, #54 ; 0x36
1a338: 5c53 ldrb r3, [r2, r1]
1a33a: 2001 movs r0, #1
1a33c: 4383 bics r3, r0
1a33e: 5453 strb r3, [r2, r1]
lv_anim_start(&a);
1a340: a807 add r0, sp, #28
1a342: 4b31 ldr r3, [pc, #196] ; (1a408 <lv_label_refr_text+0x394>)
1a344: 4798 blx r3
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1a346: 4931 ldr r1, [pc, #196] ; (1a40c <lv_label_refr_text+0x398>)
1a348: 9804 ldr r0, [sp, #16]
1a34a: 4b31 ldr r3, [pc, #196] ; (1a410 <lv_label_refr_text+0x39c>)
1a34c: 4798 blx r3
ext->offset.y = 0;
1a34e: 2300 movs r3, #0
1a350: 81e3 strh r3, [r4, #14]
1a352: e6dc b.n 1a10e <lv_label_refr_text+0x9a>
1a354: 2300 movs r3, #0
1a356: e7e9 b.n 1a32c <lv_label_refr_text+0x2b8>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1a358: 4928 ldr r1, [pc, #160] ; (1a3fc <lv_label_refr_text+0x388>)
1a35a: 9e04 ldr r6, [sp, #16]
1a35c: 0030 movs r0, r6
1a35e: 4b2c ldr r3, [pc, #176] ; (1a410 <lv_label_refr_text+0x39c>)
1a360: 4798 blx r3
ext->offset.x = 0;
1a362: 2300 movs r3, #0
1a364: 81a3 strh r3, [r4, #12]
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1a366: ab17 add r3, sp, #92 ; 0x5c
1a368: 2002 movs r0, #2
1a36a: 5e18 ldrsh r0, [r3, r0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1a36c: a918 add r1, sp, #96 ; 0x60
1a36e: 88cb ldrh r3, [r1, #6]
1a370: 3301 adds r3, #1
1a372: 884a ldrh r2, [r1, #2]
1a374: 1a9b subs r3, r3, r2
1a376: b21b sxth r3, r3
1a378: 4298 cmp r0, r3
1a37a: dde4 ble.n 1a346 <lv_label_refr_text+0x2d2>
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
1a37c: 9b05 ldr r3, [sp, #20]
1a37e: 891a ldrh r2, [r3, #8]
1a380: 1812 adds r2, r2, r0
1a382: 4252 negs r2, r2
1a384: b212 sxth r2, r2
a->start = start;
1a386: 2300 movs r3, #0
1a388: 930d str r3, [sp, #52] ; 0x34
a->end = end;
1a38a: 920e str r2, [sp, #56] ; 0x38
a->exec_cb = exec_cb;
1a38c: 4d1f ldr r5, [pc, #124] ; (1a40c <lv_label_refr_text+0x398>)
1a38e: 9508 str r5, [sp, #32]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1a390: 8960 ldrh r0, [r4, #10]
1a392: 2100 movs r1, #0
1a394: 4b1a ldr r3, [pc, #104] ; (1a400 <lv_label_refr_text+0x38c>)
1a396: 4798 blx r3
1a398: 900f str r0, [sp, #60] ; 0x3c
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1a39a: 0029 movs r1, r5
1a39c: 0030 movs r0, r6
1a39e: 4b19 ldr r3, [pc, #100] ; (1a404 <lv_label_refr_text+0x390>)
1a3a0: 4798 blx r3
uint32_t act_time = anim_cur ? anim_cur->act_time : 0;
1a3a2: 2800 cmp r0, #0
1a3a4: d00e beq.n 1a3c4 <lv_label_refr_text+0x350>
1a3a6: 6a43 ldr r3, [r0, #36] ; 0x24
if(act_time < a.time) {
1a3a8: 9a0f ldr r2, [sp, #60] ; 0x3c
1a3aa: 4293 cmp r3, r2
1a3ac: d206 bcs.n 1a3bc <lv_label_refr_text+0x348>
a.act_time = act_time; /*To keep the old position*/
1a3ae: aa07 add r2, sp, #28
1a3b0: 9310 str r3, [sp, #64] ; 0x40
a.early_apply = 0;
1a3b2: 2136 movs r1, #54 ; 0x36
1a3b4: 5c53 ldrb r3, [r2, r1]
1a3b6: 2001 movs r0, #1
1a3b8: 4383 bics r3, r0
1a3ba: 5453 strb r3, [r2, r1]
lv_anim_start(&a);
1a3bc: a807 add r0, sp, #28
1a3be: 4b12 ldr r3, [pc, #72] ; (1a408 <lv_label_refr_text+0x394>)
1a3c0: 4798 blx r3
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1a3c2: e6a4 b.n 1a10e <lv_label_refr_text+0x9a>
1a3c4: 2300 movs r3, #0
1a3c6: e7ef b.n 1a3a8 <lv_label_refr_text+0x334>
1a3c8: 000043d1 .word 0x000043d1
1a3cc: 00019aa5 .word 0x00019aa5
1a3d0: 0000808e .word 0x0000808e
1a3d4: 00003c99 .word 0x00003c99
1a3d8: 00008081 .word 0x00008081
1a3dc: 00003a89 .word 0x00003a89
1a3e0: 00008080 .word 0x00008080
1a3e4: 00013f3d .word 0x00013f3d
1a3e8: 00002869 .word 0x00002869
1a3ec: 00003851 .word 0x00003851
1a3f0: 000111b9 .word 0x000111b9
1a3f4: 0000fe91 .word 0x0000fe91
1a3f8: 0001c1b9 .word 0x0001c1b9
1a3fc: 00019a89 .word 0x00019a89
1a400: 00011375 .word 0x00011375
1a404: 00011339 .word 0x00011339
1a408: 00011279 .word 0x00011279
1a40c: 00019a6d .word 0x00019a6d
1a410: 000111fd .word 0x000111fd
1a414: aa18 add r2, sp, #96 ; 0x60
1a416: 88d3 ldrh r3, [r2, #6]
1a418: 3301 adds r3, #1
1a41a: 8852 ldrh r2, [r2, #2]
1a41c: 1a9b subs r3, r3, r2
if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/
1a41e: aa17 add r2, sp, #92 ; 0x5c
1a420: 2102 movs r1, #2
1a422: 5e52 ldrsh r2, [r2, r1]
1a424: b21b sxth r3, r3
1a426: 429a cmp r2, r3
1a428: dc03 bgt.n 1a432 <lv_label_refr_text+0x3be>
ext->dot_end = LV_LABEL_DOT_END_INV;
1a42a: 2301 movs r3, #1
1a42c: 425b negs r3, r3
1a42e: 8123 strh r3, [r4, #8]
1a430: e66d b.n 1a10e <lv_label_refr_text+0x9a>
else if(_lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/
1a432: 4b4f ldr r3, [pc, #316] ; (1a570 <lv_label_refr_text+0x4fc>)
1a434: 681b ldr r3, [r3, #0]
1a436: 6820 ldr r0, [r4, #0]
1a438: 4798 blx r3
1a43a: 2803 cmp r0, #3
1a43c: d803 bhi.n 1a446 <lv_label_refr_text+0x3d2>
ext->dot_end = LV_LABEL_DOT_END_INV;
1a43e: 2301 movs r3, #1
1a440: 425b negs r3, r3
1a442: 8123 strh r3, [r4, #8]
1a444: e663 b.n 1a10e <lv_label_refr_text+0x9a>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1a446: af18 add r7, sp, #96 ; 0x60
1a448: 88bb ldrh r3, [r7, #4]
1a44a: 3301 adds r3, #1
1a44c: 883a ldrh r2, [r7, #0]
1a44e: 1a9b subs r3, r3, r2
1a450: b29b uxth r3, r3
1a452: 469a mov sl, r3
(lv_font_get_glyph_width(font, '.', '.') + letter_space) *
1a454: 222e movs r2, #46 ; 0x2e
1a456: 212e movs r1, #46 ; 0x2e
1a458: 9805 ldr r0, [sp, #20]
1a45a: 4b46 ldr r3, [pc, #280] ; (1a574 <lv_label_refr_text+0x500>)
1a45c: 4798 blx r3
1a45e: 1986 adds r6, r0, r6
p.x = lv_area_get_width(&txt_coords) -
1a460: 03b0 lsls r0, r6, #14
1a462: 1b80 subs r0, r0, r6
1a464: 0080 lsls r0, r0, #2
1a466: 1836 adds r6, r6, r0
1a468: 4456 add r6, sl
1a46a: aa02 add r2, sp, #8
1a46c: 8216 strh r6, [r2, #16]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1a46e: 88fe ldrh r6, [r7, #6]
1a470: 3601 adds r6, #1
1a472: 887b ldrh r3, [r7, #2]
1a474: 1af6 subs r6, r6, r3
1a476: b2b6 uxth r6, r6
p.y -= p.y %
1a478: b230 sxth r0, r6
(lv_font_get_line_height(font) + line_space); /*Round down to the last line*/
1a47a: 9b05 ldr r3, [sp, #20]
1a47c: 2108 movs r1, #8
1a47e: 5e59 ldrsh r1, [r3, r1]
1a480: 1949 adds r1, r1, r5
p.y -= p.y %
1a482: 4b3d ldr r3, [pc, #244] ; (1a578 <lv_label_refr_text+0x504>)
1a484: 4798 blx r3
1a486: 1a76 subs r6, r6, r1
p.y -= line_space; /*Trim the last line space*/
1a488: 1b76 subs r6, r6, r5
1a48a: ab02 add r3, sp, #8
1a48c: 825e strh r6, [r3, #18]
uint32_t letter_id = lv_label_get_letter_on(label, &p);
1a48e: a906 add r1, sp, #24
1a490: 9804 ldr r0, [sp, #16]
1a492: 4b3a ldr r3, [pc, #232] ; (1a57c <lv_label_refr_text+0x508>)
1a494: 4798 blx r3
1a496: 0007 movs r7, r0
1a498: 0006 movs r6, r0
size_t txt_len = strlen(ext->text);
1a49a: 6825 ldr r5, [r4, #0]
1a49c: 0028 movs r0, r5
1a49e: 4b38 ldr r3, [pc, #224] ; (1a580 <lv_label_refr_text+0x50c>)
1a4a0: 4798 blx r3
1a4a2: 4681 mov r9, r0
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
1a4a4: 4b37 ldr r3, [pc, #220] ; (1a584 <lv_label_refr_text+0x510>)
1a4a6: 681b ldr r3, [r3, #0]
1a4a8: 0039 movs r1, r7
1a4aa: 0028 movs r0, r5
1a4ac: 4798 blx r3
1a4ae: 0005 movs r5, r0
1a4b0: 9007 str r0, [sp, #28]
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
1a4b2: 1cc7 adds r7, r0, #3
1a4b4: 45b9 cmp r9, r7
1a4b6: d20d bcs.n 1a4d4 <lv_label_refr_text+0x460>
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
1a4b8: 4b33 ldr r3, [pc, #204] ; (1a588 <lv_label_refr_text+0x514>)
1a4ba: 469a mov sl, r3
1a4bc: 6823 ldr r3, [r4, #0]
1a4be: 1958 adds r0, r3, r5
1a4c0: 4653 mov r3, sl
1a4c2: 681b ldr r3, [r3, #0]
1a4c4: 4798 blx r3
1a4c6: 9b07 ldr r3, [sp, #28]
1a4c8: 1a1d subs r5, r3, r0
1a4ca: 9507 str r5, [sp, #28]
letter_id--;
1a4cc: 3e01 subs r6, #1
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
1a4ce: 1cef adds r7, r5, #3
1a4d0: 45b9 cmp r9, r7
1a4d2: d3f3 bcc.n 1a4bc <lv_label_refr_text+0x448>
1a4d4: 2304 movs r3, #4
1a4d6: 4699 mov r9, r3
1a4d8: 2300 movs r3, #0
1a4da: 4698 mov r8, r3
len += _lv_txt_encoded_size(&ext->text[byte_id]);
1a4dc: 4b2a ldr r3, [pc, #168] ; (1a588 <lv_label_refr_text+0x514>)
1a4de: 469b mov fp, r3
_lv_txt_encoded_next(ext->text, &byte_id);
1a4e0: 4b2a ldr r3, [pc, #168] ; (1a58c <lv_label_refr_text+0x518>)
1a4e2: 469a mov sl, r3
len += _lv_txt_encoded_size(&ext->text[byte_id]);
1a4e4: 6823 ldr r3, [r4, #0]
1a4e6: 9a07 ldr r2, [sp, #28]
1a4e8: 4694 mov ip, r2
1a4ea: 4463 add r3, ip
1a4ec: 0018 movs r0, r3
1a4ee: 465b mov r3, fp
1a4f0: 681b ldr r3, [r3, #0]
1a4f2: 4798 blx r3
1a4f4: 4440 add r0, r8
1a4f6: b2c3 uxtb r3, r0
1a4f8: 4698 mov r8, r3
_lv_txt_encoded_next(ext->text, &byte_id);
1a4fa: a907 add r1, sp, #28
1a4fc: 6820 ldr r0, [r4, #0]
1a4fe: 4653 mov r3, sl
1a500: 681b ldr r3, [r3, #0]
1a502: 4798 blx r3
1a504: 2301 movs r3, #1
1a506: 425b negs r3, r3
1a508: 469c mov ip, r3
1a50a: 44e1 add r9, ip
for(i = 0; i <= LV_LABEL_DOT_NUM; i++) {
1a50c: 464b mov r3, r9
1a50e: 2b00 cmp r3, #0
1a510: d1e8 bne.n 1a4e4 <lv_label_refr_text+0x470>
if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) {
1a512: 4643 mov r3, r8
1a514: 466a mov r2, sp
1a516: 8293 strh r3, [r2, #20]
1a518: 8a92 ldrh r2, [r2, #20]
1a51a: 6823 ldr r3, [r4, #0]
1a51c: 1959 adds r1, r3, r5
1a51e: 9804 ldr r0, [sp, #16]
1a520: 4b1b ldr r3, [pc, #108] ; (1a590 <lv_label_refr_text+0x51c>)
1a522: 4798 blx r3
1a524: 2800 cmp r0, #0
1a526: d100 bne.n 1a52a <lv_label_refr_text+0x4b6>
1a528: e5f1 b.n 1a10e <lv_label_refr_text+0x9a>
1a52a: 1cea adds r2, r5, #3
ext->text[byte_id_ori + i] = '.';
1a52c: 232e movs r3, #46 ; 0x2e
1a52e: 6821 ldr r1, [r4, #0]
1a530: 554b strb r3, [r1, r5]
1a532: 3501 adds r5, #1
for(i = 0; i < LV_LABEL_DOT_NUM; i++) {
1a534: 4295 cmp r5, r2
1a536: d1fa bne.n 1a52e <lv_label_refr_text+0x4ba>
ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0';
1a538: 2300 movs r3, #0
1a53a: 6822 ldr r2, [r4, #0]
1a53c: 55d3 strb r3, [r2, r7]
ext->dot_end = letter_id + LV_LABEL_DOT_NUM;
1a53e: 3603 adds r6, #3
1a540: 8126 strh r6, [r4, #8]
1a542: e5e4 b.n 1a10e <lv_label_refr_text+0x9a>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1a544: 2210 movs r2, #16
1a546: 2100 movs r1, #0
1a548: 9c04 ldr r4, [sp, #16]
1a54a: 0020 movs r0, r4
1a54c: 4e11 ldr r6, [pc, #68] ; (1a594 <lv_label_refr_text+0x520>)
1a54e: 47b0 blx r6
1a550: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1a552: 2211 movs r2, #17
1a554: 2100 movs r1, #0
1a556: 0020 movs r0, r4
1a558: 47b0 blx r6
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1a55a: ab17 add r3, sp, #92 ; 0x5c
1a55c: 1828 adds r0, r5, r0
1a55e: 8859 ldrh r1, [r3, #2]
1a560: 1809 adds r1, r1, r0
1a562: b209 sxth r1, r1
1a564: 8059 strh r1, [r3, #2]
lv_obj_set_height(label, size.y);
1a566: 0020 movs r0, r4
1a568: 4b0b ldr r3, [pc, #44] ; (1a598 <lv_label_refr_text+0x524>)
1a56a: 4798 blx r3
1a56c: e5cf b.n 1a10e <lv_label_refr_text+0x9a>
1a56e: 46c0 nop ; (mov r8, r8)
1a570: 20000068 .word 0x20000068
1a574: 0000fe91 .word 0x0000fe91
1a578: 0001c385 .word 0x0001c385
1a57c: 00019d71 .word 0x00019d71
1a580: 0001c709 .word 0x0001c709
1a584: 20000054 .word 0x20000054
1a588: 20000064 .word 0x20000064
1a58c: 2000005c .word 0x2000005c
1a590: 00019b05 .word 0x00019b05
1a594: 00003a89 .word 0x00003a89
1a598: 00003961 .word 0x00003961
0001a59c <lv_label_set_text>:
{
1a59c: b5f0 push {r4, r5, r6, r7, lr}
1a59e: b083 sub sp, #12
1a5a0: 0005 movs r5, r0
1a5a2: 000e movs r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1a5a4: 4b42 ldr r3, [pc, #264] ; (1a6b0 <lv_label_set_text+0x114>)
1a5a6: 4798 blx r3
1a5a8: 2800 cmp r0, #0
1a5aa: d10c bne.n 1a5c6 <lv_label_set_text+0x2a>
1a5ac: 4b41 ldr r3, [pc, #260] ; (1a6b4 <lv_label_set_text+0x118>)
1a5ae: 9300 str r3, [sp, #0]
1a5b0: 22b8 movs r2, #184 ; 0xb8
1a5b2: 4941 ldr r1, [pc, #260] ; (1a6b8 <lv_label_set_text+0x11c>)
1a5b4: 3003 adds r0, #3
1a5b6: 4c41 ldr r4, [pc, #260] ; (1a6bc <lv_label_set_text+0x120>)
1a5b8: 47a0 blx r4
1a5ba: 002a movs r2, r5
1a5bc: 2300 movs r3, #0
1a5be: 4840 ldr r0, [pc, #256] ; (1a6c0 <lv_label_set_text+0x124>)
1a5c0: 4940 ldr r1, [pc, #256] ; (1a6c4 <lv_label_set_text+0x128>)
1a5c2: 4788 blx r1
1a5c4: e7fe b.n 1a5c4 <lv_label_set_text+0x28>
lv_obj_invalidate(label);
1a5c6: 0028 movs r0, r5
1a5c8: 4b3f ldr r3, [pc, #252] ; (1a6c8 <lv_label_set_text+0x12c>)
1a5ca: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1a5cc: 0028 movs r0, r5
1a5ce: 4b3f ldr r3, [pc, #252] ; (1a6cc <lv_label_set_text+0x130>)
1a5d0: 4798 blx r3
1a5d2: 0004 movs r4, r0
if(text == NULL) {
1a5d4: 2e00 cmp r6, #0
1a5d6: d022 beq.n 1a61e <lv_label_set_text+0x82>
LV_ASSERT_STR(text);
1a5d8: 0030 movs r0, r6
1a5da: 4b35 ldr r3, [pc, #212] ; (1a6b0 <lv_label_set_text+0x114>)
1a5dc: 4798 blx r3
1a5de: 2800 cmp r0, #0
1a5e0: d022 beq.n 1a628 <lv_label_set_text+0x8c>
if(ext->text == text && ext->static_txt == 0) {
1a5e2: 6827 ldr r7, [r4, #0]
1a5e4: 42be cmp r6, r7
1a5e6: d02c beq.n 1a642 <lv_label_set_text+0xa6>
if(ext->text != NULL && ext->static_txt == 0) {
1a5e8: 2f00 cmp r7, #0
1a5ea: d002 beq.n 1a5f2 <lv_label_set_text+0x56>
1a5ec: 7c23 ldrb r3, [r4, #16]
1a5ee: 071b lsls r3, r3, #28
1a5f0: d54a bpl.n 1a688 <lv_label_set_text+0xec>
size_t len = strlen(text) + 1;
1a5f2: 0030 movs r0, r6
1a5f4: 4b36 ldr r3, [pc, #216] ; (1a6d0 <lv_label_set_text+0x134>)
1a5f6: 4798 blx r3
1a5f8: 3001 adds r0, #1
ext->text = lv_mem_alloc(len);
1a5fa: 4b36 ldr r3, [pc, #216] ; (1a6d4 <lv_label_set_text+0x138>)
1a5fc: 4798 blx r3
1a5fe: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
1a600: 4b2b ldr r3, [pc, #172] ; (1a6b0 <lv_label_set_text+0x114>)
1a602: 4798 blx r3
1a604: 2800 cmp r0, #0
1a606: d045 beq.n 1a694 <lv_label_set_text+0xf8>
if(ext->text == NULL) return;
1a608: 6820 ldr r0, [r4, #0]
1a60a: 2800 cmp r0, #0
1a60c: d00a beq.n 1a624 <lv_label_set_text+0x88>
strcpy(ext->text, text);
1a60e: 0031 movs r1, r6
1a610: 4b31 ldr r3, [pc, #196] ; (1a6d8 <lv_label_set_text+0x13c>)
1a612: 4798 blx r3
ext->static_txt = 0;
1a614: 7c23 ldrb r3, [r4, #16]
1a616: 2208 movs r2, #8
1a618: 4393 bics r3, r2
1a61a: 7423 strb r3, [r4, #16]
1a61c: e030 b.n 1a680 <lv_label_set_text+0xe4>
lv_label_refr_text(label);
1a61e: 0028 movs r0, r5
1a620: 4b2e ldr r3, [pc, #184] ; (1a6dc <lv_label_set_text+0x140>)
1a622: 4798 blx r3
}
1a624: b003 add sp, #12
1a626: bdf0 pop {r4, r5, r6, r7, pc}
LV_ASSERT_STR(text);
1a628: 4b22 ldr r3, [pc, #136] ; (1a6b4 <lv_label_set_text+0x118>)
1a62a: 9300 str r3, [sp, #0]
1a62c: 22c4 movs r2, #196 ; 0xc4
1a62e: 4922 ldr r1, [pc, #136] ; (1a6b8 <lv_label_set_text+0x11c>)
1a630: 3003 adds r0, #3
1a632: 4c22 ldr r4, [pc, #136] ; (1a6bc <lv_label_set_text+0x120>)
1a634: 47a0 blx r4
1a636: 0032 movs r2, r6
1a638: 2300 movs r3, #0
1a63a: 4821 ldr r0, [pc, #132] ; (1a6c0 <lv_label_set_text+0x124>)
1a63c: 4921 ldr r1, [pc, #132] ; (1a6c4 <lv_label_set_text+0x128>)
1a63e: 4788 blx r1
1a640: e7fe b.n 1a640 <lv_label_set_text+0xa4>
if(ext->text == text && ext->static_txt == 0) {
1a642: 7c23 ldrb r3, [r4, #16]
1a644: 071b lsls r3, r3, #28
1a646: d4d4 bmi.n 1a5f2 <lv_label_set_text+0x56>
ext->text = lv_mem_realloc(ext->text, strlen(ext->text) + 1);
1a648: 0038 movs r0, r7
1a64a: 4b21 ldr r3, [pc, #132] ; (1a6d0 <lv_label_set_text+0x134>)
1a64c: 4798 blx r3
1a64e: 1c41 adds r1, r0, #1
1a650: 0038 movs r0, r7
1a652: 4b23 ldr r3, [pc, #140] ; (1a6e0 <lv_label_set_text+0x144>)
1a654: 4798 blx r3
1a656: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
1a658: 4b15 ldr r3, [pc, #84] ; (1a6b0 <lv_label_set_text+0x114>)
1a65a: 4798 blx r3
1a65c: 2800 cmp r0, #0
1a65e: d10c bne.n 1a67a <lv_label_set_text+0xde>
1a660: 4b14 ldr r3, [pc, #80] ; (1a6b4 <lv_label_set_text+0x118>)
1a662: 9300 str r3, [sp, #0]
1a664: 22d5 movs r2, #213 ; 0xd5
1a666: 4914 ldr r1, [pc, #80] ; (1a6b8 <lv_label_set_text+0x11c>)
1a668: 3003 adds r0, #3
1a66a: 4d14 ldr r5, [pc, #80] ; (1a6bc <lv_label_set_text+0x120>)
1a66c: 47a8 blx r5
1a66e: 6822 ldr r2, [r4, #0]
1a670: 2300 movs r3, #0
1a672: 481c ldr r0, [pc, #112] ; (1a6e4 <lv_label_set_text+0x148>)
1a674: 4913 ldr r1, [pc, #76] ; (1a6c4 <lv_label_set_text+0x128>)
1a676: 4788 blx r1
1a678: e7fe b.n 1a678 <lv_label_set_text+0xdc>
if(ext->text == NULL) return;
1a67a: 6823 ldr r3, [r4, #0]
1a67c: 2b00 cmp r3, #0
1a67e: d0d1 beq.n 1a624 <lv_label_set_text+0x88>
lv_label_refr_text(label);
1a680: 0028 movs r0, r5
1a682: 4b16 ldr r3, [pc, #88] ; (1a6dc <lv_label_set_text+0x140>)
1a684: 4798 blx r3
1a686: e7cd b.n 1a624 <lv_label_set_text+0x88>
lv_mem_free(ext->text);
1a688: 0038 movs r0, r7
1a68a: 4b17 ldr r3, [pc, #92] ; (1a6e8 <lv_label_set_text+0x14c>)
1a68c: 4798 blx r3
ext->text = NULL;
1a68e: 2300 movs r3, #0
1a690: 6023 str r3, [r4, #0]
1a692: e7ae b.n 1a5f2 <lv_label_set_text+0x56>
LV_ASSERT_MEM(ext->text);
1a694: 4b07 ldr r3, [pc, #28] ; (1a6b4 <lv_label_set_text+0x118>)
1a696: 9300 str r3, [sp, #0]
1a698: 22ee movs r2, #238 ; 0xee
1a69a: 4907 ldr r1, [pc, #28] ; (1a6b8 <lv_label_set_text+0x11c>)
1a69c: 3003 adds r0, #3
1a69e: 4d07 ldr r5, [pc, #28] ; (1a6bc <lv_label_set_text+0x120>)
1a6a0: 47a8 blx r5
1a6a2: 6822 ldr r2, [r4, #0]
1a6a4: 2300 movs r3, #0
1a6a6: 480f ldr r0, [pc, #60] ; (1a6e4 <lv_label_set_text+0x148>)
1a6a8: 4906 ldr r1, [pc, #24] ; (1a6c4 <lv_label_set_text+0x128>)
1a6aa: 4788 blx r1
1a6ac: e7fe b.n 1a6ac <lv_label_set_text+0x110>
1a6ae: 46c0 nop ; (mov r8, r8)
1a6b0: 000017ad .word 0x000017ad
1a6b4: 0002aec8 .word 0x0002aec8
1a6b8: 0002b014 .word 0x0002b014
1a6bc: 00012159 .word 0x00012159
1a6c0: 00025d20 .word 0x00025d20
1a6c4: 000017b5 .word 0x000017b5
1a6c8: 00002869 .word 0x00002869
1a6cc: 000043d1 .word 0x000043d1
1a6d0: 0001c709 .word 0x0001c709
1a6d4: 000122dd .word 0x000122dd
1a6d8: 0001c6f9 .word 0x0001c6f9
1a6dc: 0001a075 .word 0x0001a075
1a6e0: 000126fd .word 0x000126fd
1a6e4: 00025854 .word 0x00025854
1a6e8: 000123c9 .word 0x000123c9
0001a6ec <lv_label_set_text_static>:
{
1a6ec: b570 push {r4, r5, r6, lr}
1a6ee: b082 sub sp, #8
1a6f0: 0005 movs r5, r0
1a6f2: 000e movs r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1a6f4: 4b15 ldr r3, [pc, #84] ; (1a74c <lv_label_set_text_static+0x60>)
1a6f6: 4798 blx r3
1a6f8: 2800 cmp r0, #0
1a6fa: d10d bne.n 1a718 <lv_label_set_text_static+0x2c>
1a6fc: 4b14 ldr r3, [pc, #80] ; (1a750 <lv_label_set_text_static+0x64>)
1a6fe: 9300 str r3, [sp, #0]
1a700: 22a6 movs r2, #166 ; 0xa6
1a702: 0052 lsls r2, r2, #1
1a704: 4913 ldr r1, [pc, #76] ; (1a754 <lv_label_set_text_static+0x68>)
1a706: 3003 adds r0, #3
1a708: 4c13 ldr r4, [pc, #76] ; (1a758 <lv_label_set_text_static+0x6c>)
1a70a: 47a0 blx r4
1a70c: 002a movs r2, r5
1a70e: 2300 movs r3, #0
1a710: 4812 ldr r0, [pc, #72] ; (1a75c <lv_label_set_text_static+0x70>)
1a712: 4913 ldr r1, [pc, #76] ; (1a760 <lv_label_set_text_static+0x74>)
1a714: 4788 blx r1
1a716: e7fe b.n 1a716 <lv_label_set_text_static+0x2a>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1a718: 0028 movs r0, r5
1a71a: 4b12 ldr r3, [pc, #72] ; (1a764 <lv_label_set_text_static+0x78>)
1a71c: 4798 blx r3
1a71e: 0004 movs r4, r0
if(ext->static_txt == 0 && ext->text != NULL) {
1a720: 7c03 ldrb r3, [r0, #16]
1a722: 071b lsls r3, r3, #28
1a724: d406 bmi.n 1a734 <lv_label_set_text_static+0x48>
1a726: 6800 ldr r0, [r0, #0]
1a728: 2800 cmp r0, #0
1a72a: d003 beq.n 1a734 <lv_label_set_text_static+0x48>
lv_mem_free(ext->text);
1a72c: 4b0e ldr r3, [pc, #56] ; (1a768 <lv_label_set_text_static+0x7c>)
1a72e: 4798 blx r3
ext->text = NULL;
1a730: 2300 movs r3, #0
1a732: 6023 str r3, [r4, #0]
if(text != NULL) {
1a734: 2e00 cmp r6, #0
1a736: d004 beq.n 1a742 <lv_label_set_text_static+0x56>
ext->static_txt = 1;
1a738: 7c23 ldrb r3, [r4, #16]
1a73a: 2208 movs r2, #8
1a73c: 4313 orrs r3, r2
1a73e: 7423 strb r3, [r4, #16]
ext->text = (char *)text;
1a740: 6026 str r6, [r4, #0]
lv_label_refr_text(label);
1a742: 0028 movs r0, r5
1a744: 4b09 ldr r3, [pc, #36] ; (1a76c <lv_label_set_text_static+0x80>)
1a746: 4798 blx r3
}
1a748: b002 add sp, #8
1a74a: bd70 pop {r4, r5, r6, pc}
1a74c: 000017ad .word 0x000017ad
1a750: 0002aedc .word 0x0002aedc
1a754: 0002b014 .word 0x0002b014
1a758: 00012159 .word 0x00012159
1a75c: 00025d20 .word 0x00025d20
1a760: 000017b5 .word 0x000017b5
1a764: 000043d1 .word 0x000043d1
1a768: 000123c9 .word 0x000123c9
1a76c: 0001a075 .word 0x0001a075
0001a770 <lv_label_set_long_mode>:
{
1a770: b5f0 push {r4, r5, r6, r7, lr}
1a772: b083 sub sp, #12
1a774: 0005 movs r5, r0
1a776: 000f movs r7, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1a778: 4b25 ldr r3, [pc, #148] ; (1a810 <lv_label_set_long_mode+0xa0>)
1a77a: 4798 blx r3
1a77c: 2800 cmp r0, #0
1a77e: d10d bne.n 1a79c <lv_label_set_long_mode+0x2c>
1a780: 4b24 ldr r3, [pc, #144] ; (1a814 <lv_label_set_long_mode+0xa4>)
1a782: 9300 str r3, [sp, #0]
1a784: 2266 movs r2, #102 ; 0x66
1a786: 32ff adds r2, #255 ; 0xff
1a788: 4923 ldr r1, [pc, #140] ; (1a818 <lv_label_set_long_mode+0xa8>)
1a78a: 3003 adds r0, #3
1a78c: 4c23 ldr r4, [pc, #140] ; (1a81c <lv_label_set_long_mode+0xac>)
1a78e: 47a0 blx r4
1a790: 002a movs r2, r5
1a792: 2300 movs r3, #0
1a794: 4822 ldr r0, [pc, #136] ; (1a820 <lv_label_set_long_mode+0xb0>)
1a796: 4923 ldr r1, [pc, #140] ; (1a824 <lv_label_set_long_mode+0xb4>)
1a798: 4788 blx r1
1a79a: e7fe b.n 1a79a <lv_label_set_long_mode+0x2a>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1a79c: 0028 movs r0, r5
1a79e: 4b22 ldr r3, [pc, #136] ; (1a828 <lv_label_set_long_mode+0xb8>)
1a7a0: 4798 blx r3
1a7a2: 0004 movs r4, r0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
1a7a4: 4921 ldr r1, [pc, #132] ; (1a82c <lv_label_set_long_mode+0xbc>)
1a7a6: 0028 movs r0, r5
1a7a8: 4e21 ldr r6, [pc, #132] ; (1a830 <lv_label_set_long_mode+0xc0>)
1a7aa: 47b0 blx r6
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y);
1a7ac: 4921 ldr r1, [pc, #132] ; (1a834 <lv_label_set_long_mode+0xc4>)
1a7ae: 0028 movs r0, r5
1a7b0: 47b0 blx r6
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1a7b2: 4921 ldr r1, [pc, #132] ; (1a838 <lv_label_set_long_mode+0xc8>)
1a7b4: 0028 movs r0, r5
1a7b6: 47b0 blx r6
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1a7b8: 4920 ldr r1, [pc, #128] ; (1a83c <lv_label_set_long_mode+0xcc>)
1a7ba: 0028 movs r0, r5
1a7bc: 47b0 blx r6
ext->offset.x = 0;
1a7be: 2300 movs r3, #0
1a7c0: 81a3 strh r3, [r4, #12]
ext->offset.y = 0;
1a7c2: 81e3 strh r3, [r4, #14]
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
1a7c4: 1efb subs r3, r7, #3
1a7c6: 2b02 cmp r3, #2
1a7c8: d815 bhi.n 1a7f6 <lv_label_set_long_mode+0x86>
ext->expand = 1;
1a7ca: 7c22 ldrb r2, [r4, #16]
1a7cc: 2380 movs r3, #128 ; 0x80
1a7ce: 425b negs r3, r3
1a7d0: 4313 orrs r3, r2
1a7d2: 7423 strb r3, [r4, #16]
if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) {
1a7d4: 7c22 ldrb r2, [r4, #16]
1a7d6: 2307 movs r3, #7
1a7d8: 4013 ands r3, r2
1a7da: 2b02 cmp r3, #2
1a7dc: d010 beq.n 1a800 <lv_label_set_long_mode+0x90>
ext->long_mode = long_mode;
1a7de: 2307 movs r3, #7
1a7e0: 401f ands r7, r3
1a7e2: 7c23 ldrb r3, [r4, #16]
1a7e4: 2107 movs r1, #7
1a7e6: 438b bics r3, r1
1a7e8: 433b orrs r3, r7
1a7ea: 7423 strb r3, [r4, #16]
lv_label_refr_text(label);
1a7ec: 0028 movs r0, r5
1a7ee: 4b14 ldr r3, [pc, #80] ; (1a840 <lv_label_set_long_mode+0xd0>)
1a7f0: 4798 blx r3
}
1a7f2: b003 add sp, #12
1a7f4: bdf0 pop {r4, r5, r6, r7, pc}
ext->expand = 0;
1a7f6: 7c22 ldrb r2, [r4, #16]
1a7f8: 237f movs r3, #127 ; 0x7f
1a7fa: 4013 ands r3, r2
1a7fc: 7423 strb r3, [r4, #16]
1a7fe: e7e9 b.n 1a7d4 <lv_label_set_long_mode+0x64>
if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) {
1a800: 8922 ldrh r2, [r4, #8]
1a802: 4b10 ldr r3, [pc, #64] ; (1a844 <lv_label_set_long_mode+0xd4>)
1a804: 429a cmp r2, r3
1a806: d0ea beq.n 1a7de <lv_label_set_long_mode+0x6e>
lv_label_revert_dots(label);
1a808: 0028 movs r0, r5
1a80a: 4b0f ldr r3, [pc, #60] ; (1a848 <lv_label_set_long_mode+0xd8>)
1a80c: 4798 blx r3
1a80e: e7e6 b.n 1a7de <lv_label_set_long_mode+0x6e>
1a810: 000017ad .word 0x000017ad
1a814: 0002aef8 .word 0x0002aef8
1a818: 0002b014 .word 0x0002b014
1a81c: 00012159 .word 0x00012159
1a820: 00025d20 .word 0x00025d20
1a824: 000017b5 .word 0x000017b5
1a828: 000043d1 .word 0x000043d1
1a82c: 00002a71 .word 0x00002a71
1a830: 000111fd .word 0x000111fd
1a834: 00002ad1 .word 0x00002ad1
1a838: 00019a89 .word 0x00019a89
1a83c: 00019a6d .word 0x00019a6d
1a840: 0001a075 .word 0x0001a075
1a844: 0000ffff .word 0x0000ffff
1a848: 000199e5 .word 0x000199e5
0001a84c <lv_label_set_recolor>:
{
1a84c: b530 push {r4, r5, lr}
1a84e: b083 sub sp, #12
1a850: 0004 movs r4, r0
1a852: 000d movs r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1a854: 4b13 ldr r3, [pc, #76] ; (1a8a4 <lv_label_set_recolor+0x58>)
1a856: 4798 blx r3
1a858: 2800 cmp r0, #0
1a85a: d10d bne.n 1a878 <lv_label_set_recolor+0x2c>
1a85c: 4b12 ldr r3, [pc, #72] ; (1a8a8 <lv_label_set_recolor+0x5c>)
1a85e: 9300 str r3, [sp, #0]
1a860: 22cd movs r2, #205 ; 0xcd
1a862: 0052 lsls r2, r2, #1
1a864: 4911 ldr r1, [pc, #68] ; (1a8ac <lv_label_set_recolor+0x60>)
1a866: 3003 adds r0, #3
1a868: 4d11 ldr r5, [pc, #68] ; (1a8b0 <lv_label_set_recolor+0x64>)
1a86a: 47a8 blx r5
1a86c: 0022 movs r2, r4
1a86e: 2300 movs r3, #0
1a870: 4810 ldr r0, [pc, #64] ; (1a8b4 <lv_label_set_recolor+0x68>)
1a872: 4911 ldr r1, [pc, #68] ; (1a8b8 <lv_label_set_recolor+0x6c>)
1a874: 4788 blx r1
1a876: e7fe b.n 1a876 <lv_label_set_recolor+0x2a>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1a878: 0020 movs r0, r4
1a87a: 4b10 ldr r3, [pc, #64] ; (1a8bc <lv_label_set_recolor+0x70>)
1a87c: 4798 blx r3
if(ext->recolor == en) return;
1a87e: 7c03 ldrb r3, [r0, #16]
1a880: 065b lsls r3, r3, #25
1a882: 0fdb lsrs r3, r3, #31
1a884: 42ab cmp r3, r5
1a886: d00a beq.n 1a89e <lv_label_set_recolor+0x52>
ext->recolor = en == false ? 0 : 1;
1a888: 2301 movs r3, #1
1a88a: 402b ands r3, r5
1a88c: 019a lsls r2, r3, #6
1a88e: 7c03 ldrb r3, [r0, #16]
1a890: 2140 movs r1, #64 ; 0x40
1a892: 438b bics r3, r1
1a894: 4313 orrs r3, r2
1a896: 7403 strb r3, [r0, #16]
lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to
1a898: 0020 movs r0, r4
1a89a: 4b09 ldr r3, [pc, #36] ; (1a8c0 <lv_label_set_recolor+0x74>)
1a89c: 4798 blx r3
}
1a89e: b003 add sp, #12
1a8a0: bd30 pop {r4, r5, pc}
1a8a2: 46c0 nop ; (mov r8, r8)
1a8a4: 000017ad .word 0x000017ad
1a8a8: 0002af24 .word 0x0002af24
1a8ac: 0002b014 .word 0x0002b014
1a8b0: 00012159 .word 0x00012159
1a8b4: 00025d20 .word 0x00025d20
1a8b8: 000017b5 .word 0x000017b5
1a8bc: 000043d1 .word 0x000043d1
1a8c0: 0001a075 .word 0x0001a075
0001a8c4 <lv_label_create>:
{
1a8c4: b5f0 push {r4, r5, r6, r7, lr}
1a8c6: b085 sub sp, #20
1a8c8: 000f movs r7, r1
lv_obj_t * new_label = lv_obj_create(par, copy);
1a8ca: 4b7d ldr r3, [pc, #500] ; (1aac0 <lv_label_create+0x1fc>)
1a8cc: 4798 blx r3
1a8ce: 0004 movs r4, r0
LV_ASSERT_MEM(new_label);
1a8d0: 4b7c ldr r3, [pc, #496] ; (1aac4 <lv_label_create+0x200>)
1a8d2: 4798 blx r3
1a8d4: 2800 cmp r0, #0
1a8d6: d01f beq.n 1a918 <lv_label_create+0x54>
if(new_label == NULL) return NULL;
1a8d8: 2c00 cmp r4, #0
1a8da: d100 bne.n 1a8de <lv_label_create+0x1a>
1a8dc: e09f b.n 1aa1e <lv_label_create+0x15a>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_label);
1a8de: 4b7a ldr r3, [pc, #488] ; (1aac8 <lv_label_create+0x204>)
1a8e0: 681b ldr r3, [r3, #0]
1a8e2: 2b00 cmp r3, #0
1a8e4: d025 beq.n 1a932 <lv_label_create+0x6e>
lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t));
1a8e6: 2114 movs r1, #20
1a8e8: 0020 movs r0, r4
1a8ea: 4b78 ldr r3, [pc, #480] ; (1aacc <lv_label_create+0x208>)
1a8ec: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label);
1a8ee: 0020 movs r0, r4
1a8f0: 4b77 ldr r3, [pc, #476] ; (1aad0 <lv_label_create+0x20c>)
1a8f2: 4798 blx r3
1a8f4: 0005 movs r5, r0
LV_ASSERT_MEM(ext);
1a8f6: 4b73 ldr r3, [pc, #460] ; (1aac4 <lv_label_create+0x200>)
1a8f8: 4798 blx r3
1a8fa: 2800 cmp r0, #0
1a8fc: d11f bne.n 1a93e <lv_label_create+0x7a>
1a8fe: 4b75 ldr r3, [pc, #468] ; (1aad4 <lv_label_create+0x210>)
1a900: 9300 str r3, [sp, #0]
1a902: 225d movs r2, #93 ; 0x5d
1a904: 4974 ldr r1, [pc, #464] ; (1aad8 <lv_label_create+0x214>)
1a906: 3003 adds r0, #3
1a908: 4c74 ldr r4, [pc, #464] ; (1aadc <lv_label_create+0x218>)
1a90a: 47a0 blx r4
1a90c: 002a movs r2, r5
1a90e: 2300 movs r3, #0
1a910: 4873 ldr r0, [pc, #460] ; (1aae0 <lv_label_create+0x21c>)
1a912: 4974 ldr r1, [pc, #464] ; (1aae4 <lv_label_create+0x220>)
1a914: 4788 blx r1
1a916: e7fe b.n 1a916 <lv_label_create+0x52>
LV_ASSERT_MEM(new_label);
1a918: 4b6e ldr r3, [pc, #440] ; (1aad4 <lv_label_create+0x210>)
1a91a: 9300 str r3, [sp, #0]
1a91c: 2254 movs r2, #84 ; 0x54
1a91e: 496e ldr r1, [pc, #440] ; (1aad8 <lv_label_create+0x214>)
1a920: 3003 adds r0, #3
1a922: 4d6e ldr r5, [pc, #440] ; (1aadc <lv_label_create+0x218>)
1a924: 47a8 blx r5
1a926: 0022 movs r2, r4
1a928: 2300 movs r3, #0
1a92a: 486d ldr r0, [pc, #436] ; (1aae0 <lv_label_create+0x21c>)
1a92c: 496d ldr r1, [pc, #436] ; (1aae4 <lv_label_create+0x220>)
1a92e: 4788 blx r1
1a930: e7fe b.n 1a930 <lv_label_create+0x6c>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_label);
1a932: 0020 movs r0, r4
1a934: 4b6c ldr r3, [pc, #432] ; (1aae8 <lv_label_create+0x224>)
1a936: 4798 blx r3
1a938: 4b63 ldr r3, [pc, #396] ; (1aac8 <lv_label_create+0x204>)
1a93a: 6018 str r0, [r3, #0]
1a93c: e7d3 b.n 1a8e6 <lv_label_create+0x22>
if(ext == NULL) {
1a93e: 2d00 cmp r5, #0
1a940: d100 bne.n 1a944 <lv_label_create+0x80>
1a942: e06f b.n 1aa24 <lv_label_create+0x160>
ext->text = NULL;
1a944: 2200 movs r2, #0
1a946: 602a str r2, [r5, #0]
ext->static_txt = 0;
1a948: 7c2b ldrb r3, [r5, #16]
ext->recolor = 0;
1a94a: 2108 movs r1, #8
1a94c: 438b bics r3, r1
ext->align = LV_LABEL_ALIGN_AUTO;
1a94e: 3138 adds r1, #56 ; 0x38
1a950: 438b bics r3, r1
1a952: 2130 movs r1, #48 ; 0x30
1a954: 430b orrs r3, r1
ext->dot_end = LV_LABEL_DOT_END_INV;
1a956: 2101 movs r1, #1
1a958: 4249 negs r1, r1
1a95a: 8129 strh r1, [r5, #8]
ext->long_mode = LV_LABEL_LONG_EXPAND;
1a95c: 31f9 adds r1, #249 ; 0xf9
1a95e: 400b ands r3, r1
1a960: 742b strb r3, [r5, #16]
ext->anim_speed = LV_LABEL_DEF_SCROLL_SPEED;
1a962: 2319 movs r3, #25
1a964: 816b strh r3, [r5, #10]
ext->offset.x = 0;
1a966: 81aa strh r2, [r5, #12]
ext->offset.y = 0;
1a968: 81ea strh r2, [r5, #14]
ext->dot.tmp_ptr = NULL;
1a96a: 606a str r2, [r5, #4]
ext->dot_tmp_alloc = 0;
1a96c: 7c6b ldrb r3, [r5, #17]
1a96e: 3201 adds r2, #1
1a970: 4393 bics r3, r2
1a972: 746b strb r3, [r5, #17]
lv_obj_set_design_cb(new_label, lv_label_design);
1a974: 495d ldr r1, [pc, #372] ; (1aaec <lv_label_create+0x228>)
1a976: 0020 movs r0, r4
1a978: 4b5d ldr r3, [pc, #372] ; (1aaf0 <lv_label_create+0x22c>)
1a97a: 4798 blx r3
lv_obj_set_signal_cb(new_label, lv_label_signal);
1a97c: 495d ldr r1, [pc, #372] ; (1aaf4 <lv_label_create+0x230>)
1a97e: 0020 movs r0, r4
1a980: 4b5d ldr r3, [pc, #372] ; (1aaf8 <lv_label_create+0x234>)
1a982: 4798 blx r3
if(copy == NULL) {
1a984: 2f00 cmp r7, #0
1a986: d052 beq.n 1aa2e <lv_label_create+0x16a>
lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
1a988: 0038 movs r0, r7
1a98a: 4b51 ldr r3, [pc, #324] ; (1aad0 <lv_label_create+0x20c>)
1a98c: 4798 blx r3
1a98e: 0006 movs r6, r0
lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy));
1a990: 0038 movs r0, r7
1a992: 4b5a ldr r3, [pc, #360] ; (1aafc <lv_label_create+0x238>)
1a994: 4798 blx r3
1a996: 0001 movs r1, r0
1a998: 0020 movs r0, r4
1a99a: 4b59 ldr r3, [pc, #356] ; (1ab00 <lv_label_create+0x23c>)
1a99c: 4798 blx r3
lv_label_set_recolor(new_label, lv_label_get_recolor(copy));
1a99e: 0038 movs r0, r7
1a9a0: 4b58 ldr r3, [pc, #352] ; (1ab04 <lv_label_create+0x240>)
1a9a2: 4798 blx r3
1a9a4: 0001 movs r1, r0
1a9a6: 0020 movs r0, r4
1a9a8: 4b57 ldr r3, [pc, #348] ; (1ab08 <lv_label_create+0x244>)
1a9aa: 4798 blx r3
lv_label_set_align(new_label, lv_label_get_align(copy));
1a9ac: 0038 movs r0, r7
1a9ae: 4b57 ldr r3, [pc, #348] ; (1ab0c <lv_label_create+0x248>)
1a9b0: 4798 blx r3
1a9b2: 0001 movs r1, r0
1a9b4: 0020 movs r0, r4
1a9b6: 4b56 ldr r3, [pc, #344] ; (1ab10 <lv_label_create+0x24c>)
1a9b8: 4798 blx r3
if(copy_ext->static_txt == 0)
1a9ba: 7c33 ldrb r3, [r6, #16]
1a9bc: 071b lsls r3, r3, #28
1a9be: d447 bmi.n 1aa50 <lv_label_create+0x18c>
lv_label_set_text(new_label, lv_label_get_text(copy));
1a9c0: 0038 movs r0, r7
1a9c2: 4b54 ldr r3, [pc, #336] ; (1ab14 <lv_label_create+0x250>)
1a9c4: 4798 blx r3
1a9c6: 0001 movs r1, r0
1a9c8: 0020 movs r0, r4
1a9ca: 4b53 ldr r3, [pc, #332] ; (1ab18 <lv_label_create+0x254>)
1a9cc: 4798 blx r3
if(copy_ext->long_mode == LV_LABEL_LONG_DOT) {
1a9ce: 7c32 ldrb r2, [r6, #16]
1a9d0: 2307 movs r3, #7
1a9d2: 4013 ands r3, r2
1a9d4: 2b02 cmp r3, #2
1a9d6: d043 beq.n 1aa60 <lv_label_create+0x19c>
if(copy_ext->dot_tmp_alloc && copy_ext->dot.tmp_ptr) {
1a9d8: 7c73 ldrb r3, [r6, #17]
1a9da: 07db lsls r3, r3, #31
1a9dc: d568 bpl.n 1aab0 <lv_label_create+0x1ec>
1a9de: 6870 ldr r0, [r6, #4]
1a9e0: 2800 cmp r0, #0
1a9e2: d065 beq.n 1aab0 <lv_label_create+0x1ec>
uint16_t len = (uint16_t)strlen(copy_ext->dot.tmp_ptr);
1a9e4: 4b4d ldr r3, [pc, #308] ; (1ab1c <lv_label_create+0x258>)
1a9e6: 4798 blx r3
lv_label_set_dot_tmp(new_label, ext->dot.tmp_ptr, len);
1a9e8: b282 uxth r2, r0
1a9ea: 6869 ldr r1, [r5, #4]
1a9ec: 0020 movs r0, r4
1a9ee: 4b4c ldr r3, [pc, #304] ; (1ab20 <lv_label_create+0x25c>)
1a9f0: 4798 blx r3
ext->dot_tmp_alloc = copy_ext->dot_tmp_alloc;
1a9f2: 7c73 ldrb r3, [r6, #17]
1a9f4: 07db lsls r3, r3, #31
1a9f6: 0fda lsrs r2, r3, #31
1a9f8: 7c6b ldrb r3, [r5, #17]
1a9fa: 2101 movs r1, #1
1a9fc: 438b bics r3, r1
1a9fe: 4313 orrs r3, r2
1aa00: 746b strb r3, [r5, #17]
ext->dot_end = copy_ext->dot_end;
1aa02: 8933 ldrh r3, [r6, #8]
1aa04: 812b strh r3, [r5, #8]
lv_obj_refresh_style(new_label, LV_STYLE_PROP_ALL);
1aa06: 31fe adds r1, #254 ; 0xfe
1aa08: 0020 movs r0, r4
1aa0a: 4b46 ldr r3, [pc, #280] ; (1ab24 <lv_label_create+0x260>)
1aa0c: 4798 blx r3
LV_LOG_INFO("label created");
1aa0e: 4b46 ldr r3, [pc, #280] ; (1ab28 <lv_label_create+0x264>)
1aa10: 9300 str r3, [sp, #0]
1aa12: 4b30 ldr r3, [pc, #192] ; (1aad4 <lv_label_create+0x210>)
1aa14: 22a8 movs r2, #168 ; 0xa8
1aa16: 4930 ldr r1, [pc, #192] ; (1aad8 <lv_label_create+0x214>)
1aa18: 2001 movs r0, #1
1aa1a: 4d30 ldr r5, [pc, #192] ; (1aadc <lv_label_create+0x218>)
1aa1c: 47a8 blx r5
}
1aa1e: 0020 movs r0, r4
1aa20: b005 add sp, #20
1aa22: bdf0 pop {r4, r5, r6, r7, pc}
lv_obj_del(new_label);
1aa24: 0020 movs r0, r4
1aa26: 4b41 ldr r3, [pc, #260] ; (1ab2c <lv_label_create+0x268>)
1aa28: 4798 blx r3
return NULL;
1aa2a: 2400 movs r4, #0
1aa2c: e7f7 b.n 1aa1e <lv_label_create+0x15a>
lv_theme_apply(new_label, LV_THEME_LABEL);
1aa2e: 2112 movs r1, #18
1aa30: 0020 movs r0, r4
1aa32: 4b3f ldr r3, [pc, #252] ; (1ab30 <lv_label_create+0x26c>)
1aa34: 4798 blx r3
lv_obj_set_click(new_label, false);
1aa36: 2100 movs r1, #0
1aa38: 0020 movs r0, r4
1aa3a: 4b3e ldr r3, [pc, #248] ; (1ab34 <lv_label_create+0x270>)
1aa3c: 4798 blx r3
lv_label_set_long_mode(new_label, LV_LABEL_LONG_EXPAND);
1aa3e: 2100 movs r1, #0
1aa40: 0020 movs r0, r4
1aa42: 4b2f ldr r3, [pc, #188] ; (1ab00 <lv_label_create+0x23c>)
1aa44: 4798 blx r3
lv_label_set_text(new_label, "Text");
1aa46: 493c ldr r1, [pc, #240] ; (1ab38 <lv_label_create+0x274>)
1aa48: 0020 movs r0, r4
1aa4a: 4b33 ldr r3, [pc, #204] ; (1ab18 <lv_label_create+0x254>)
1aa4c: 4798 blx r3
1aa4e: e7de b.n 1aa0e <lv_label_create+0x14a>
lv_label_set_text_static(new_label, lv_label_get_text(copy));
1aa50: 0038 movs r0, r7
1aa52: 4b30 ldr r3, [pc, #192] ; (1ab14 <lv_label_create+0x250>)
1aa54: 4798 blx r3
1aa56: 0001 movs r1, r0
1aa58: 0020 movs r0, r4
1aa5a: 4b38 ldr r3, [pc, #224] ; (1ab3c <lv_label_create+0x278>)
1aa5c: 4798 blx r3
1aa5e: e7b6 b.n 1a9ce <lv_label_create+0x10a>
ext->text = lv_mem_realloc(ext->text, _lv_mem_get_size(copy_ext->text));
1aa60: 682f ldr r7, [r5, #0]
1aa62: 6830 ldr r0, [r6, #0]
1aa64: 4b36 ldr r3, [pc, #216] ; (1ab40 <lv_label_create+0x27c>)
1aa66: 4798 blx r3
1aa68: 0001 movs r1, r0
1aa6a: 0038 movs r0, r7
1aa6c: 4b35 ldr r3, [pc, #212] ; (1ab44 <lv_label_create+0x280>)
1aa6e: 4798 blx r3
1aa70: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(ext->text);
1aa72: 4b14 ldr r3, [pc, #80] ; (1aac4 <lv_label_create+0x200>)
1aa74: 4798 blx r3
1aa76: 2800 cmp r0, #0
1aa78: d10c bne.n 1aa94 <lv_label_create+0x1d0>
1aa7a: 4b16 ldr r3, [pc, #88] ; (1aad4 <lv_label_create+0x210>)
1aa7c: 9300 str r3, [sp, #0]
1aa7e: 2295 movs r2, #149 ; 0x95
1aa80: 4915 ldr r1, [pc, #84] ; (1aad8 <lv_label_create+0x214>)
1aa82: 3003 adds r0, #3
1aa84: 4c15 ldr r4, [pc, #84] ; (1aadc <lv_label_create+0x218>)
1aa86: 47a0 blx r4
1aa88: 682a ldr r2, [r5, #0]
1aa8a: 2300 movs r3, #0
1aa8c: 4814 ldr r0, [pc, #80] ; (1aae0 <lv_label_create+0x21c>)
1aa8e: 4915 ldr r1, [pc, #84] ; (1aae4 <lv_label_create+0x220>)
1aa90: 4788 blx r1
1aa92: e7fe b.n 1aa92 <lv_label_create+0x1ce>
if(ext->text == NULL) return NULL;
1aa94: 682f ldr r7, [r5, #0]
1aa96: 2f00 cmp r7, #0
1aa98: d010 beq.n 1aabc <lv_label_create+0x1f8>
_lv_memcpy(ext->text, copy_ext->text, _lv_mem_get_size(copy_ext->text));
1aa9a: 6833 ldr r3, [r6, #0]
1aa9c: 9303 str r3, [sp, #12]
1aa9e: 0018 movs r0, r3
1aaa0: 4b27 ldr r3, [pc, #156] ; (1ab40 <lv_label_create+0x27c>)
1aaa2: 4798 blx r3
1aaa4: 0002 movs r2, r0
1aaa6: 9903 ldr r1, [sp, #12]
1aaa8: 0038 movs r0, r7
1aaaa: 4b27 ldr r3, [pc, #156] ; (1ab48 <lv_label_create+0x284>)
1aaac: 4798 blx r3
1aaae: e793 b.n 1a9d8 <lv_label_create+0x114>
_lv_memcpy(ext->dot.tmp, copy_ext->dot.tmp, sizeof(ext->dot.tmp));
1aab0: 1d31 adds r1, r6, #4
1aab2: 1d28 adds r0, r5, #4
1aab4: 2204 movs r2, #4
1aab6: 4b24 ldr r3, [pc, #144] ; (1ab48 <lv_label_create+0x284>)
1aab8: 4798 blx r3
1aaba: e79a b.n 1a9f2 <lv_label_create+0x12e>
if(ext->text == NULL) return NULL;
1aabc: 2400 movs r4, #0
1aabe: e7ae b.n 1aa1e <lv_label_create+0x15a>
1aac0: 00003395 .word 0x00003395
1aac4: 000017ad .word 0x000017ad
1aac8: 20004c70 .word 0x20004c70
1aacc: 000020f1 .word 0x000020f1
1aad0: 000043d1 .word 0x000043d1
1aad4: 0002aeb8 .word 0x0002aeb8
1aad8: 0002b014 .word 0x0002b014
1aadc: 00012159 .word 0x00012159
1aae0: 00025854 .word 0x00025854
1aae4: 000017b5 .word 0x000017b5
1aae8: 00004385 .word 0x00004385
1aaec: 0001ace1 .word 0x0001ace1
1aaf0: 000020a5 .word 0x000020a5
1aaf4: 0001ab4d .word 0x0001ab4d
1aaf8: 00002041 .word 0x00002041
1aafc: 00019c61 .word 0x00019c61
1ab00: 0001a771 .word 0x0001a771
1ab04: 00019d19 .word 0x00019d19
1ab08: 0001a84d .word 0x0001a84d
1ab0c: 00019cb9 .word 0x00019cb9
1ab10: 00019b95 .word 0x00019b95
1ab14: 00019c0d .word 0x00019c0d
1ab18: 0001a59d .word 0x0001a59d
1ab1c: 0001c709 .word 0x0001c709
1ab20: 00019b05 .word 0x00019b05
1ab24: 00002ff5 .word 0x00002ff5
1ab28: 0002b004 .word 0x0002b004
1ab2c: 000045a9 .word 0x000045a9
1ab30: 000140e5 .word 0x000140e5
1ab34: 00001ea5 .word 0x00001ea5
1ab38: 0002affc .word 0x0002affc
1ab3c: 0001a6ed .word 0x0001a6ed
1ab40: 00012445 .word 0x00012445
1ab44: 000126fd .word 0x000126fd
1ab48: 00012545 .word 0x00012545
0001ab4c <lv_label_signal>:
{
1ab4c: b5f0 push {r4, r5, r6, r7, lr}
1ab4e: 46c6 mov lr, r8
1ab50: b500 push {lr}
1ab52: 0006 movs r6, r0
1ab54: 000d movs r5, r1
1ab56: 0017 movs r7, r2
if(sign == LV_SIGNAL_GET_STYLE) {
1ab58: 2908 cmp r1, #8
1ab5a: d014 beq.n 1ab86 <lv_label_signal+0x3a>
res = ancestor_signal(label, sign, param);
1ab5c: 4b31 ldr r3, [pc, #196] ; (1ac24 <lv_label_signal+0xd8>)
1ab5e: 681b ldr r3, [r3, #0]
1ab60: 4798 blx r3
1ab62: 0004 movs r4, r0
if(res != LV_RES_OK) return res;
1ab64: 2801 cmp r0, #1
1ab66: d119 bne.n 1ab9c <lv_label_signal+0x50>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
1ab68: 2d07 cmp r5, #7
1ab6a: d022 beq.n 1abb2 <lv_label_signal+0x66>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1ab6c: 0030 movs r0, r6
1ab6e: 4b2e ldr r3, [pc, #184] ; (1ac28 <lv_label_signal+0xdc>)
1ab70: 4798 blx r3
1ab72: 4680 mov r8, r0
if(sign == LV_SIGNAL_CLEANUP) {
1ab74: 2d00 cmp r5, #0
1ab76: d129 bne.n 1abcc <lv_label_signal+0x80>
if(ext->static_txt == 0) {
1ab78: 7c03 ldrb r3, [r0, #16]
1ab7a: 071b lsls r3, r3, #28
1ab7c: d51f bpl.n 1abbe <lv_label_signal+0x72>
lv_label_dot_tmp_free(label);
1ab7e: 0030 movs r0, r6
1ab80: 4b2a ldr r3, [pc, #168] ; (1ac2c <lv_label_signal+0xe0>)
1ab82: 4798 blx r3
1ab84: e00a b.n 1ab9c <lv_label_signal+0x50>
switch(type) {
1ab86: 7811 ldrb r1, [r2, #0]
style_dsc_p = &label->style_list;
1ab88: 0002 movs r2, r0
1ab8a: 3228 adds r2, #40 ; 0x28
style_dsc_p = NULL;
1ab8c: 424b negs r3, r1
1ab8e: 414b adcs r3, r1
1ab90: 425b negs r3, r3
1ab92: 401a ands r2, r3
info->result = lv_label_get_style(label, info->part);
1ab94: 607a str r2, [r7, #4]
if(info->result != NULL) return LV_RES_OK;
1ab96: 2401 movs r4, #1
1ab98: 2a00 cmp r2, #0
1ab9a: d003 beq.n 1aba4 <lv_label_signal+0x58>
}
1ab9c: 0020 movs r0, r4
1ab9e: bc04 pop {r2}
1aba0: 4690 mov r8, r2
1aba2: bdf0 pop {r4, r5, r6, r7, pc}
else return ancestor_signal(label, sign, param);
1aba4: 4b1f ldr r3, [pc, #124] ; (1ac24 <lv_label_signal+0xd8>)
1aba6: 681b ldr r3, [r3, #0]
1aba8: 003a movs r2, r7
1abaa: 2108 movs r1, #8
1abac: 4798 blx r3
1abae: 0004 movs r4, r0
1abb0: e7f4 b.n 1ab9c <lv_label_signal+0x50>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
1abb2: 491f ldr r1, [pc, #124] ; (1ac30 <lv_label_signal+0xe4>)
1abb4: 0038 movs r0, r7
1abb6: 4b1f ldr r3, [pc, #124] ; (1ac34 <lv_label_signal+0xe8>)
1abb8: 4798 blx r3
1abba: 0004 movs r4, r0
1abbc: e7ee b.n 1ab9c <lv_label_signal+0x50>
lv_mem_free(ext->text);
1abbe: 6800 ldr r0, [r0, #0]
1abc0: 4b1d ldr r3, [pc, #116] ; (1ac38 <lv_label_signal+0xec>)
1abc2: 4798 blx r3
ext->text = NULL;
1abc4: 2300 movs r3, #0
1abc6: 4642 mov r2, r8
1abc8: 6013 str r3, [r2, #0]
1abca: e7d8 b.n 1ab7e <lv_label_signal+0x32>
else if(sign == LV_SIGNAL_STYLE_CHG) {
1abcc: 2d04 cmp r5, #4
1abce: d014 beq.n 1abfa <lv_label_signal+0xae>
else if(sign == LV_SIGNAL_COORD_CHG) {
1abd0: 2d02 cmp r5, #2
1abd2: d1e3 bne.n 1ab9c <lv_label_signal+0x50>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1abd4: 88ba ldrh r2, [r7, #4]
1abd6: 3201 adds r2, #1
1abd8: 883b ldrh r3, [r7, #0]
1abda: 1ad2 subs r2, r2, r3
1abdc: 8ab3 ldrh r3, [r6, #20]
1abde: 3301 adds r3, #1
1abe0: 8a31 ldrh r1, [r6, #16]
1abe2: 1a5b subs r3, r3, r1
if(lv_area_get_width(&label->coords) != lv_area_get_width(param) ||
1abe4: b292 uxth r2, r2
1abe6: b29b uxth r3, r3
1abe8: 429a cmp r2, r3
1abea: d00d beq.n 1ac08 <lv_label_signal+0xbc>
lv_label_revert_dots(label);
1abec: 0030 movs r0, r6
1abee: 4b13 ldr r3, [pc, #76] ; (1ac3c <lv_label_signal+0xf0>)
1abf0: 4798 blx r3
lv_label_refr_text(label);
1abf2: 0030 movs r0, r6
1abf4: 4b12 ldr r3, [pc, #72] ; (1ac40 <lv_label_signal+0xf4>)
1abf6: 4798 blx r3
1abf8: e7d0 b.n 1ab9c <lv_label_signal+0x50>
lv_label_revert_dots(label);
1abfa: 0030 movs r0, r6
1abfc: 4b0f ldr r3, [pc, #60] ; (1ac3c <lv_label_signal+0xf0>)
1abfe: 4798 blx r3
lv_label_refr_text(label);
1ac00: 0030 movs r0, r6
1ac02: 4b0f ldr r3, [pc, #60] ; (1ac40 <lv_label_signal+0xf4>)
1ac04: 4798 blx r3
1ac06: e7c9 b.n 1ab9c <lv_label_signal+0x50>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1ac08: 88fa ldrh r2, [r7, #6]
1ac0a: 3201 adds r2, #1
1ac0c: 887b ldrh r3, [r7, #2]
1ac0e: 1ad2 subs r2, r2, r3
1ac10: 8af3 ldrh r3, [r6, #22]
1ac12: 3301 adds r3, #1
1ac14: 8a71 ldrh r1, [r6, #18]
1ac16: 1a5b subs r3, r3, r1
if(lv_area_get_width(&label->coords) != lv_area_get_width(param) ||
1ac18: b292 uxth r2, r2
1ac1a: b29b uxth r3, r3
1ac1c: 429a cmp r2, r3
1ac1e: d1e5 bne.n 1abec <lv_label_signal+0xa0>
1ac20: e7bc b.n 1ab9c <lv_label_signal+0x50>
1ac22: 46c0 nop ; (mov r8, r8)
1ac24: 20004c70 .word 0x20004c70
1ac28: 000043d1 .word 0x000043d1
1ac2c: 000199b5 .word 0x000199b5
1ac30: 0002b078 .word 0x0002b078
1ac34: 000046d9 .word 0x000046d9
1ac38: 000123c9 .word 0x000123c9
1ac3c: 000199e5 .word 0x000199e5
1ac40: 0001a075 .word 0x0001a075
0001ac44 <lv_label_get_text_sel_start>:
{
1ac44: b530 push {r4, r5, lr}
1ac46: b083 sub sp, #12
1ac48: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1ac4a: 4b0a ldr r3, [pc, #40] ; (1ac74 <lv_label_get_text_sel_start+0x30>)
1ac4c: 4798 blx r3
1ac4e: 2800 cmp r0, #0
1ac50: d002 beq.n 1ac58 <lv_label_get_text_sel_start+0x14>
}
1ac52: 4809 ldr r0, [pc, #36] ; (1ac78 <lv_label_get_text_sel_start+0x34>)
1ac54: b003 add sp, #12
1ac56: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1ac58: 4b08 ldr r3, [pc, #32] ; (1ac7c <lv_label_get_text_sel_start+0x38>)
1ac5a: 9300 str r3, [sp, #0]
1ac5c: 4a08 ldr r2, [pc, #32] ; (1ac80 <lv_label_get_text_sel_start+0x3c>)
1ac5e: 4909 ldr r1, [pc, #36] ; (1ac84 <lv_label_get_text_sel_start+0x40>)
1ac60: 3003 adds r0, #3
1ac62: 4d09 ldr r5, [pc, #36] ; (1ac88 <lv_label_get_text_sel_start+0x44>)
1ac64: 47a8 blx r5
1ac66: 0022 movs r2, r4
1ac68: 2300 movs r3, #0
1ac6a: 4808 ldr r0, [pc, #32] ; (1ac8c <lv_label_get_text_sel_start+0x48>)
1ac6c: 4908 ldr r1, [pc, #32] ; (1ac90 <lv_label_get_text_sel_start+0x4c>)
1ac6e: 4788 blx r1
1ac70: e7fe b.n 1ac70 <lv_label_get_text_sel_start+0x2c>
1ac72: 46c0 nop ; (mov r8, r8)
1ac74: 000017ad .word 0x000017ad
1ac78: 0000ffff .word 0x0000ffff
1ac7c: 0002afac .word 0x0002afac
1ac80: 0000031d .word 0x0000031d
1ac84: 0002b014 .word 0x0002b014
1ac88: 00012159 .word 0x00012159
1ac8c: 00025d20 .word 0x00025d20
1ac90: 000017b5 .word 0x000017b5
0001ac94 <lv_label_get_text_sel_end>:
{
1ac94: b530 push {r4, r5, lr}
1ac96: b083 sub sp, #12
1ac98: 0004 movs r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1ac9a: 4b0a ldr r3, [pc, #40] ; (1acc4 <lv_label_get_text_sel_end+0x30>)
1ac9c: 4798 blx r3
1ac9e: 2800 cmp r0, #0
1aca0: d002 beq.n 1aca8 <lv_label_get_text_sel_end+0x14>
}
1aca2: 4809 ldr r0, [pc, #36] ; (1acc8 <lv_label_get_text_sel_end+0x34>)
1aca4: b003 add sp, #12
1aca6: bd30 pop {r4, r5, pc}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1aca8: 4b08 ldr r3, [pc, #32] ; (1accc <lv_label_get_text_sel_end+0x38>)
1acaa: 9300 str r3, [sp, #0]
1acac: 22cc movs r2, #204 ; 0xcc
1acae: 0092 lsls r2, r2, #2
1acb0: 4907 ldr r1, [pc, #28] ; (1acd0 <lv_label_get_text_sel_end+0x3c>)
1acb2: 3003 adds r0, #3
1acb4: 4d07 ldr r5, [pc, #28] ; (1acd4 <lv_label_get_text_sel_end+0x40>)
1acb6: 47a8 blx r5
1acb8: 0022 movs r2, r4
1acba: 2300 movs r3, #0
1acbc: 4806 ldr r0, [pc, #24] ; (1acd8 <lv_label_get_text_sel_end+0x44>)
1acbe: 4907 ldr r1, [pc, #28] ; (1acdc <lv_label_get_text_sel_end+0x48>)
1acc0: 4788 blx r1
1acc2: e7fe b.n 1acc2 <lv_label_get_text_sel_end+0x2e>
1acc4: 000017ad .word 0x000017ad
1acc8: 0000ffff .word 0x0000ffff
1accc: 0002afc8 .word 0x0002afc8
1acd0: 0002b014 .word 0x0002b014
1acd4: 00012159 .word 0x00012159
1acd8: 00025d20 .word 0x00025d20
1acdc: 000017b5 .word 0x000017b5
0001ace0 <lv_label_design>:
{
1ace0: b5f0 push {r4, r5, r6, r7, lr}
1ace2: 46c6 mov lr, r8
1ace4: b500 push {lr}
1ace6: b0a8 sub sp, #160 ; 0xa0
1ace8: 0004 movs r4, r0
1acea: 000e movs r6, r1
return LV_DESIGN_RES_NOT_COVER;
1acec: 2002 movs r0, #2
if(mode == LV_DESIGN_COVER_CHK)
1acee: 2a02 cmp r2, #2
1acf0: d002 beq.n 1acf8 <lv_label_design+0x18>
return LV_DESIGN_RES_OK;
1acf2: 2000 movs r0, #0
else if(mode == LV_DESIGN_DRAW_MAIN) {
1acf4: 2a00 cmp r2, #0
1acf6: d003 beq.n 1ad00 <lv_label_design+0x20>
}
1acf8: b028 add sp, #160 ; 0xa0
1acfa: bc04 pop {r2}
1acfc: 4690 mov r8, r2
1acfe: bdf0 pop {r4, r5, r6, r7, pc}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1ad00: 0020 movs r0, r4
1ad02: 4b83 ldr r3, [pc, #524] ; (1af10 <lv_label_design+0x230>)
1ad04: 4798 blx r3
1ad06: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
1ad08: 2204 movs r2, #4
1ad0a: 2100 movs r1, #0
1ad0c: 0020 movs r0, r4
1ad0e: 4f81 ldr r7, [pc, #516] ; (1af14 <lv_label_design+0x234>)
1ad10: 47b8 blx r7
1ad12: 0005 movs r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
1ad14: 2205 movs r2, #5
1ad16: 2100 movs r1, #0
1ad18: 0020 movs r0, r4
1ad1a: 47b8 blx r7
lv_area_copy(&bg_coords, &label->coords);
1ad1c: 0027 movs r7, r4
1ad1e: 3710 adds r7, #16
1ad20: 2300 movs r3, #0
*d8 = *s8;
1ad22: a906 add r1, sp, #24
1ad24: 5cfa ldrb r2, [r7, r3]
1ad26: 545a strb r2, [r3, r1]
1ad28: 3301 adds r3, #1
while(len) {
1ad2a: 2b08 cmp r3, #8
1ad2c: d1fa bne.n 1ad24 <lv_label_design+0x44>
bg_coords.x1 -= w;
1ad2e: b2ad uxth r5, r5
1ad30: af06 add r7, sp, #24
1ad32: 883b ldrh r3, [r7, #0]
1ad34: 1b5b subs r3, r3, r5
1ad36: 803b strh r3, [r7, #0]
bg_coords.x2 += w;
1ad38: 88bb ldrh r3, [r7, #4]
1ad3a: 18ed adds r5, r5, r3
1ad3c: 80bd strh r5, [r7, #4]
bg_coords.y1 -= h;
1ad3e: b280 uxth r0, r0
1ad40: 887b ldrh r3, [r7, #2]
1ad42: 1a1b subs r3, r3, r0
1ad44: 807b strh r3, [r7, #2]
bg_coords.y2 += h;
1ad46: 88fb ldrh r3, [r7, #6]
1ad48: 18c0 adds r0, r0, r3
1ad4a: 80f8 strh r0, [r7, #6]
lv_draw_rect_dsc_init(&draw_rect_dsc);
1ad4c: a813 add r0, sp, #76 ; 0x4c
1ad4e: 4b72 ldr r3, [pc, #456] ; (1af18 <lv_label_design+0x238>)
1ad50: 4798 blx r3
lv_obj_init_draw_rect_dsc(label, LV_LABEL_PART_MAIN, &draw_rect_dsc);
1ad52: aa13 add r2, sp, #76 ; 0x4c
1ad54: 2100 movs r1, #0
1ad56: 0020 movs r0, r4
1ad58: 4b70 ldr r3, [pc, #448] ; (1af1c <lv_label_design+0x23c>)
1ad5a: 4798 blx r3
lv_draw_rect(&bg_coords, clip_area, &draw_rect_dsc);
1ad5c: aa13 add r2, sp, #76 ; 0x4c
1ad5e: 0031 movs r1, r6
1ad60: 0038 movs r0, r7
1ad62: 4b6f ldr r3, [pc, #444] ; (1af20 <lv_label_design+0x240>)
1ad64: 4798 blx r3
get_txt_coords(label, &txt_coords);
1ad66: a908 add r1, sp, #32
1ad68: 0020 movs r0, r4
1ad6a: 4b6e ldr r3, [pc, #440] ; (1af24 <lv_label_design+0x244>)
1ad6c: 4798 blx r3
bool is_common = _lv_area_intersect(&txt_clip, clip_area, &txt_coords);
1ad6e: aa08 add r2, sp, #32
1ad70: 0031 movs r1, r6
1ad72: a80a add r0, sp, #40 ; 0x28
1ad74: 4b6c ldr r3, [pc, #432] ; (1af28 <lv_label_design+0x248>)
1ad76: 4798 blx r3
if(!is_common) return LV_DESIGN_RES_OK;
1ad78: 2800 cmp r0, #0
1ad7a: d0bd beq.n 1acf8 <lv_label_design+0x18>
lv_label_align_t align = lv_label_get_align(label);
1ad7c: 0020 movs r0, r4
1ad7e: 4b6b ldr r3, [pc, #428] ; (1af2c <lv_label_design+0x24c>)
1ad80: 4798 blx r3
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
1ad82: 4643 mov r3, r8
1ad84: 7c1b ldrb r3, [r3, #16]
1ad86: 065e lsls r6, r3, #25
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
1ad88: 0ff6 lsrs r6, r6, #31
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
1ad8a: b25a sxtb r2, r3
1ad8c: 2a00 cmp r2, #0
1ad8e: db39 blt.n 1ae04 <lv_label_design+0x124>
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
1ad90: 075b lsls r3, r3, #29
1ad92: d101 bne.n 1ad98 <lv_label_design+0xb8>
1ad94: 2310 movs r3, #16
1ad96: 431e orrs r6, r3
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
1ad98: 2801 cmp r0, #1
1ad9a: d036 beq.n 1ae0a <lv_label_design+0x12a>
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
1ad9c: 2802 cmp r0, #2
1ad9e: d037 beq.n 1ae10 <lv_label_design+0x130>
lv_draw_label_dsc_init(&label_draw_dsc);
1ada0: ad0c add r5, sp, #48 ; 0x30
1ada2: 0028 movs r0, r5
1ada4: 4b62 ldr r3, [pc, #392] ; (1af30 <lv_label_design+0x250>)
1ada6: 4798 blx r3
label_draw_dsc.sel_start = lv_label_get_text_sel_start(label);
1ada8: 0020 movs r0, r4
1adaa: 4b62 ldr r3, [pc, #392] ; (1af34 <lv_label_design+0x254>)
1adac: 4798 blx r3
1adae: 81e8 strh r0, [r5, #14]
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
1adb0: 0020 movs r0, r4
1adb2: 4b61 ldr r3, [pc, #388] ; (1af38 <lv_label_design+0x258>)
1adb4: 4798 blx r3
1adb6: 8228 strh r0, [r5, #16]
label_draw_dsc.ofs_x = ext->offset.x;
1adb8: 4643 mov r3, r8
1adba: 220c movs r2, #12
1adbc: 5e9b ldrsh r3, [r3, r2]
1adbe: 826b strh r3, [r5, #18]
label_draw_dsc.ofs_y = ext->offset.y;
1adc0: 4643 mov r3, r8
1adc2: 220e movs r2, #14
1adc4: 5e9b ldrsh r3, [r3, r2]
1adc6: 82ab strh r3, [r5, #20]
label_draw_dsc.flag = flag;
1adc8: 75ee strb r6, [r5, #23]
lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc);
1adca: 002a movs r2, r5
1adcc: 2100 movs r1, #0
1adce: 0020 movs r0, r4
1add0: 4b5a ldr r3, [pc, #360] ; (1af3c <lv_label_design+0x25c>)
1add2: 4798 blx r3
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
1add4: 4643 mov r3, r8
1add6: 7c1a ldrb r2, [r3, #16]
1add8: 2307 movs r3, #7
1adda: 4013 ands r3, r2
1addc: 3b03 subs r3, #3
1adde: 2b01 cmp r3, #1
1ade0: d919 bls.n 1ae16 <lv_label_design+0x136>
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
1ade2: 4643 mov r3, r8
1ade4: 681b ldr r3, [r3, #0]
1ade6: 2200 movs r2, #0
1ade8: 9200 str r2, [sp, #0]
1adea: aa0c add r2, sp, #48 ; 0x30
1adec: a90a add r1, sp, #40 ; 0x28
1adee: a808 add r0, sp, #32
1adf0: 4c53 ldr r4, [pc, #332] ; (1af40 <lv_label_design+0x260>)
1adf2: 47a0 blx r4
if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
1adf4: 4643 mov r3, r8
1adf6: 7c1a ldrb r2, [r3, #16]
1adf8: 2307 movs r3, #7
1adfa: 4013 ands r3, r2
1adfc: 2b04 cmp r3, #4
1adfe: d030 beq.n 1ae62 <lv_label_design+0x182>
return LV_DESIGN_RES_OK;
1ae00: 2000 movs r0, #0
1ae02: e779 b.n 1acf8 <lv_label_design+0x18>
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
1ae04: 2202 movs r2, #2
1ae06: 4316 orrs r6, r2
1ae08: e7c2 b.n 1ad90 <lv_label_design+0xb0>
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
1ae0a: 2304 movs r3, #4
1ae0c: 431e orrs r6, r3
1ae0e: e7c7 b.n 1ada0 <lv_label_design+0xc0>
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
1ae10: 2308 movs r3, #8
1ae12: 431e orrs r6, r3
1ae14: e7c4 b.n 1ada0 <lv_label_design+0xc0>
(ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) {
1ae16: 2330 movs r3, #48 ; 0x30
1ae18: 401a ands r2, r3
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
1ae1a: 3a10 subs r2, #16
1ae1c: 33b0 adds r3, #176 ; 0xb0
1ae1e: 421a tst r2, r3
1ae20: d1df bne.n 1ade2 <lv_label_design+0x102>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
1ae22: a80c add r0, sp, #48 ; 0x30
1ae24: 220c movs r2, #12
1ae26: 5e83 ldrsh r3, [r0, r2]
1ae28: 9a0d ldr r2, [sp, #52] ; 0x34
1ae2a: 4641 mov r1, r8
1ae2c: 6809 ldr r1, [r1, #0]
1ae2e: ac05 add r4, sp, #20
1ae30: 9602 str r6, [sp, #8]
1ae32: 4d44 ldr r5, [pc, #272] ; (1af44 <lv_label_design+0x264>)
1ae34: 9501 str r5, [sp, #4]
1ae36: 250a movs r5, #10
1ae38: 5f40 ldrsh r0, [r0, r5]
1ae3a: 9000 str r0, [sp, #0]
1ae3c: 0020 movs r0, r4
1ae3e: 4d42 ldr r5, [pc, #264] ; (1af48 <lv_label_design+0x268>)
1ae40: 47a8 blx r5
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1ae42: aa08 add r2, sp, #32
1ae44: 8893 ldrh r3, [r2, #4]
1ae46: 3301 adds r3, #1
1ae48: 8812 ldrh r2, [r2, #0]
1ae4a: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
1ae4c: 2100 movs r1, #0
1ae4e: 5e62 ldrsh r2, [r4, r1]
1ae50: b21b sxth r3, r3
1ae52: 429a cmp r2, r3
1ae54: ddc5 ble.n 1ade2 <lv_label_design+0x102>
label_draw_dsc.flag &= ~LV_TXT_FLAG_CENTER;
1ae56: aa0c add r2, sp, #48 ; 0x30
1ae58: 7dd3 ldrb r3, [r2, #23]
1ae5a: 210c movs r1, #12
1ae5c: 438b bics r3, r1
1ae5e: 75d3 strb r3, [r2, #23]
1ae60: e7bf b.n 1ade2 <lv_label_design+0x102>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
1ae62: a80c add r0, sp, #48 ; 0x30
1ae64: 220c movs r2, #12
1ae66: 5e83 ldrsh r3, [r0, r2]
1ae68: 9a0d ldr r2, [sp, #52] ; 0x34
1ae6a: 4641 mov r1, r8
1ae6c: 6809 ldr r1, [r1, #0]
1ae6e: ac05 add r4, sp, #20
1ae70: 9602 str r6, [sp, #8]
1ae72: 4d34 ldr r5, [pc, #208] ; (1af44 <lv_label_design+0x264>)
1ae74: 9501 str r5, [sp, #4]
1ae76: 250a movs r5, #10
1ae78: 5f40 ldrsh r0, [r0, r5]
1ae7a: 9000 str r0, [sp, #0]
1ae7c: 0020 movs r0, r4
1ae7e: 4d32 ldr r5, [pc, #200] ; (1af48 <lv_label_design+0x268>)
1ae80: 47a8 blx r5
if(size.x > lv_area_get_width(&txt_coords)) {
1ae82: 2300 movs r3, #0
1ae84: 5ee1 ldrsh r1, [r4, r3]
1ae86: aa08 add r2, sp, #32
1ae88: 8893 ldrh r3, [r2, #4]
1ae8a: 3301 adds r3, #1
1ae8c: 8812 ldrh r2, [r2, #0]
1ae8e: 1a9b subs r3, r3, r2
1ae90: b21b sxth r3, r3
1ae92: 4299 cmp r1, r3
1ae94: dc1f bgt.n 1aed6 <lv_label_design+0x1f6>
if(size.y > lv_area_get_height(&txt_coords)) {
1ae96: ab05 add r3, sp, #20
1ae98: 2102 movs r1, #2
1ae9a: 5e59 ldrsh r1, [r3, r1]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1ae9c: aa08 add r2, sp, #32
1ae9e: 88d3 ldrh r3, [r2, #6]
1aea0: 3301 adds r3, #1
1aea2: 8852 ldrh r2, [r2, #2]
1aea4: 1a9b subs r3, r3, r2
1aea6: b21b sxth r3, r3
1aea8: 4299 cmp r1, r3
1aeaa: dda9 ble.n 1ae00 <lv_label_design+0x120>
label_draw_dsc.ofs_x = ext->offset.x;
1aeac: 4643 mov r3, r8
1aeae: 220c movs r2, #12
1aeb0: 5e9b ldrsh r3, [r3, r2]
1aeb2: aa0c add r2, sp, #48 ; 0x30
1aeb4: 8253 strh r3, [r2, #18]
label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font);
1aeb6: 6853 ldr r3, [r2, #4]
1aeb8: 891b ldrh r3, [r3, #8]
1aeba: 1859 adds r1, r3, r1
1aebc: 4643 mov r3, r8
1aebe: 89db ldrh r3, [r3, #14]
1aec0: 18c9 adds r1, r1, r3
1aec2: 8291 strh r1, [r2, #20]
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
1aec4: 4643 mov r3, r8
1aec6: 681b ldr r3, [r3, #0]
1aec8: 2100 movs r1, #0
1aeca: 9100 str r1, [sp, #0]
1aecc: a90a add r1, sp, #40 ; 0x28
1aece: a808 add r0, sp, #32
1aed0: 4c1b ldr r4, [pc, #108] ; (1af40 <lv_label_design+0x260>)
1aed2: 47a0 blx r4
1aed4: e794 b.n 1ae00 <lv_label_design+0x120>
label_draw_dsc.ofs_x = ext->offset.x + size.x +
1aed6: 4643 mov r3, r8
1aed8: 899c ldrh r4, [r3, #12]
1aeda: 1864 adds r4, r4, r1
1aedc: b2a4 uxth r4, r4
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
1aede: ad0c add r5, sp, #48 ; 0x30
1aee0: 2220 movs r2, #32
1aee2: 2120 movs r1, #32
1aee4: 980d ldr r0, [sp, #52] ; 0x34
1aee6: 4b19 ldr r3, [pc, #100] ; (1af4c <lv_label_design+0x26c>)
1aee8: 4798 blx r3
1aeea: 0043 lsls r3, r0, #1
1aeec: 18c0 adds r0, r0, r3
label_draw_dsc.ofs_x = ext->offset.x + size.x +
1aeee: 1824 adds r4, r4, r0
1aef0: 826c strh r4, [r5, #18]
label_draw_dsc.ofs_y = ext->offset.y;
1aef2: 4643 mov r3, r8
1aef4: 220e movs r2, #14
1aef6: 5e9b ldrsh r3, [r3, r2]
1aef8: 82ab strh r3, [r5, #20]
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
1aefa: 4643 mov r3, r8
1aefc: 681b ldr r3, [r3, #0]
1aefe: 2200 movs r2, #0
1af00: 9200 str r2, [sp, #0]
1af02: 002a movs r2, r5
1af04: a90a add r1, sp, #40 ; 0x28
1af06: a808 add r0, sp, #32
1af08: 4c0d ldr r4, [pc, #52] ; (1af40 <lv_label_design+0x260>)
1af0a: 47a0 blx r4
1af0c: e7c3 b.n 1ae96 <lv_label_design+0x1b6>
1af0e: 46c0 nop ; (mov r8, r8)
1af10: 000043d1 .word 0x000043d1
1af14: 00003a89 .word 0x00003a89
1af18: 0000bfcd .word 0x0000bfcd
1af1c: 00004701 .word 0x00004701
1af20: 0000c071 .word 0x0000c071
1af24: 00019aa5 .word 0x00019aa5
1af28: 0001140b .word 0x0001140b
1af2c: 00019cb9 .word 0x00019cb9
1af30: 000095ed .word 0x000095ed
1af34: 0001ac45 .word 0x0001ac45
1af38: 0001ac95 .word 0x0001ac95
1af3c: 00004ca5 .word 0x00004ca5
1af40: 0000963d .word 0x0000963d
1af44: 00007c18 .word 0x00007c18
1af48: 00013f3d .word 0x00013f3d
1af4c: 0000fe91 .word 0x0000fe91
0001af50 <ssd1963_init>:
/**********************
* GLOBAL FUNCTIONS
**********************/
void ssd1963_init(void)
{
1af50: b5f8 push {r3, r4, r5, r6, r7, lr}
1af52: 46de mov lr, fp
1af54: 4657 mov r7, sl
1af56: 464e mov r6, r9
1af58: 4645 mov r5, r8
1af5a: b5e0 push {r5, r6, r7, lr}
1af5c: 4eed ldr r6, [pc, #948] ; (1b314 <ssd1963_init+0x3c4>)
1af5e: 2310 movs r3, #16
1af60: 469b mov fp, r3
1af62: 61b3 str r3, [r6, #24]
static void ssd1963_reset(void)
{
/*Hardware reset*/
LV_DRV_DISP_RST(1);
LV_DRV_DELAY_MS(50);
1af64: 2000 movs r0, #0
1af66: 4bec ldr r3, [pc, #944] ; (1b318 <ssd1963_init+0x3c8>)
1af68: 4699 mov r9, r3
1af6a: 4798 blx r3
1af6c: 4beb ldr r3, [pc, #940] ; (1b31c <ssd1963_init+0x3cc>)
1af6e: 469a mov sl, r3
1af70: 2232 movs r2, #50 ; 0x32
1af72: 2300 movs r3, #0
1af74: 2100 movs r1, #0
1af76: 47d0 blx sl
1af78: 4ce9 ldr r4, [pc, #932] ; (1b320 <ssd1963_init+0x3d0>)
1af7a: 2500 movs r5, #0
1af7c: 1900 adds r0, r0, r4
1af7e: 4169 adcs r1, r5
1af80: 4be8 ldr r3, [pc, #928] ; (1b324 <ssd1963_init+0x3d4>)
1af82: 4698 mov r8, r3
1af84: 4ae8 ldr r2, [pc, #928] ; (1b328 <ssd1963_init+0x3d8>)
1af86: 2300 movs r3, #0
1af88: 47c0 blx r8
1af8a: 4fe8 ldr r7, [pc, #928] ; (1b32c <ssd1963_init+0x3dc>)
1af8c: 47b8 blx r7
} else {
port_base->OUTCLR.reg = pin_mask;
1af8e: 465b mov r3, fp
1af90: 6173 str r3, [r6, #20]
LV_DRV_DISP_RST(0);
LV_DRV_DELAY_MS(50);
1af92: 2000 movs r0, #0
1af94: 47c8 blx r9
1af96: 2232 movs r2, #50 ; 0x32
1af98: 2300 movs r3, #0
1af9a: 2100 movs r1, #0
1af9c: 47d0 blx sl
1af9e: 1900 adds r0, r0, r4
1afa0: 4169 adcs r1, r5
1afa2: 4ae1 ldr r2, [pc, #900] ; (1b328 <ssd1963_init+0x3d8>)
1afa4: 2300 movs r3, #0
1afa6: 47c0 blx r8
1afa8: 47b8 blx r7
port_base->OUTSET.reg = pin_mask;
1afaa: 465b mov r3, fp
1afac: 61b3 str r3, [r6, #24]
LV_DRV_DISP_RST(1);
LV_DRV_DELAY_MS(50);
1afae: 2000 movs r0, #0
1afb0: 47c8 blx r9
1afb2: 2232 movs r2, #50 ; 0x32
1afb4: 2300 movs r3, #0
1afb6: 2100 movs r1, #0
1afb8: 47d0 blx sl
1afba: 1900 adds r0, r0, r4
1afbc: 4169 adcs r1, r5
1afbe: 4ada ldr r2, [pc, #872] ; (1b328 <ssd1963_init+0x3d8>)
1afc0: 2300 movs r3, #0
1afc2: 47c0 blx r8
1afc4: 47b8 blx r7
port_base->OUTCLR.reg = pin_mask;
1afc6: 2340 movs r3, #64 ; 0x40
1afc8: 469a mov sl, r3
1afca: 6173 str r3, [r6, #20]
/*Chip enable*/
LV_DRV_DISP_PAR_CS(0);
LV_DRV_DELAY_MS(10);
1afcc: 2000 movs r0, #0
1afce: 47c8 blx r9
1afd0: 0002 movs r2, r0
1afd2: 2300 movs r3, #0
1afd4: 0f91 lsrs r1, r2, #30
1afd6: 0090 lsls r0, r2, #2
1afd8: 1880 adds r0, r0, r2
1afda: 4159 adcs r1, r3
1afdc: 1800 adds r0, r0, r0
1afde: 4149 adcs r1, r1
1afe0: 1900 adds r0, r0, r4
1afe2: 4169 adcs r1, r5
1afe4: 4ad0 ldr r2, [pc, #832] ; (1b328 <ssd1963_init+0x3d8>)
1afe6: 2300 movs r3, #0
1afe8: 47c0 blx r8
1afea: 47b8 blx r7
port_base->OUTSET.reg = pin_mask;
1afec: 4653 mov r3, sl
1afee: 61b3 str r3, [r6, #24]
LV_DRV_DISP_PAR_CS(1);
LV_DRV_DELAY_MS(5);
1aff0: 2000 movs r0, #0
1aff2: 47c8 blx r9
1aff4: 0002 movs r2, r0
1aff6: 2300 movs r3, #0
1aff8: 0f91 lsrs r1, r2, #30
1affa: 0090 lsls r0, r2, #2
1affc: 1880 adds r0, r0, r2
1affe: 4159 adcs r1, r3
1b000: 1900 adds r0, r0, r4
1b002: 4169 adcs r1, r5
1b004: 4ac8 ldr r2, [pc, #800] ; (1b328 <ssd1963_init+0x3d8>)
1b006: 2300 movs r3, #0
1b008: 47c0 blx r8
1b00a: 47b8 blx r7
port_base->OUTCLR.reg = pin_mask;
1b00c: 4653 mov r3, sl
1b00e: 6173 str r3, [r6, #20]
/**
* Command mode
*/
static inline void ssd1963_cmd_mode(void)
{
if(cmd_mode == false) {
1b010: 4bc7 ldr r3, [pc, #796] ; (1b330 <ssd1963_init+0x3e0>)
1b012: 781b ldrb r3, [r3, #0]
1b014: 2b00 cmp r3, #0
1b016: d104 bne.n 1b022 <ssd1963_init+0xd2>
1b018: 2220 movs r2, #32
1b01a: 6172 str r2, [r6, #20]
LV_DRV_DISP_CMD_DATA(SSD1963_CMD_MODE);
cmd_mode = true;
1b01c: 3a1f subs r2, #31
1b01e: 4bc4 ldr r3, [pc, #784] ; (1b330 <ssd1963_init+0x3e0>)
1b020: 701a strb r2, [r3, #0]
*/
static inline void ssd1963_cmd(uint16_t cmd)
{
LV_DRV_DISP_PAR_CS(0);
ssd1963_cmd_mode();
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b022: 2201 movs r2, #1
1b024: 49c3 ldr r1, [pc, #780] ; (1b334 <ssd1963_init+0x3e4>)
1b026: 48c4 ldr r0, [pc, #784] ; (1b338 <ssd1963_init+0x3e8>)
1b028: 4bc4 ldr r3, [pc, #784] ; (1b33c <ssd1963_init+0x3ec>)
1b02a: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b02c: 4cb9 ldr r4, [pc, #740] ; (1b314 <ssd1963_init+0x3c4>)
1b02e: 2540 movs r5, #64 ; 0x40
1b030: 61a5 str r5, [r4, #24]
LV_DRV_DELAY_MS(20);
1b032: 2000 movs r0, #0
1b034: 4bb8 ldr r3, [pc, #736] ; (1b318 <ssd1963_init+0x3c8>)
1b036: 4798 blx r3
1b038: 2214 movs r2, #20
1b03a: 2300 movs r3, #0
1b03c: 2100 movs r1, #0
1b03e: 4eb7 ldr r6, [pc, #732] ; (1b31c <ssd1963_init+0x3cc>)
1b040: 47b0 blx r6
1b042: 4ab7 ldr r2, [pc, #732] ; (1b320 <ssd1963_init+0x3d0>)
1b044: 2300 movs r3, #0
1b046: 1880 adds r0, r0, r2
1b048: 4159 adcs r1, r3
1b04a: 4ab7 ldr r2, [pc, #732] ; (1b328 <ssd1963_init+0x3d8>)
1b04c: 2300 movs r3, #0
1b04e: 4eb5 ldr r6, [pc, #724] ; (1b324 <ssd1963_init+0x3d4>)
1b050: 47b0 blx r6
1b052: 4bb6 ldr r3, [pc, #728] ; (1b32c <ssd1963_init+0x3dc>)
1b054: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b056: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b058: 4bb5 ldr r3, [pc, #724] ; (1b330 <ssd1963_init+0x3e0>)
1b05a: 781b ldrb r3, [r3, #0]
1b05c: 2b00 cmp r3, #0
1b05e: d104 bne.n 1b06a <ssd1963_init+0x11a>
1b060: 2220 movs r2, #32
1b062: 6162 str r2, [r4, #20]
cmd_mode = true;
1b064: 3a1f subs r2, #31
1b066: 4bb2 ldr r3, [pc, #712] ; (1b330 <ssd1963_init+0x3e0>)
1b068: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b06a: 2201 movs r2, #1
1b06c: 49b1 ldr r1, [pc, #708] ; (1b334 <ssd1963_init+0x3e4>)
1b06e: 48b2 ldr r0, [pc, #712] ; (1b338 <ssd1963_init+0x3e8>)
1b070: 4bb2 ldr r3, [pc, #712] ; (1b33c <ssd1963_init+0x3ec>)
1b072: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b074: 4ca7 ldr r4, [pc, #668] ; (1b314 <ssd1963_init+0x3c4>)
1b076: 2540 movs r5, #64 ; 0x40
1b078: 61a5 str r5, [r4, #24]
LV_DRV_DELAY_MS(20);
1b07a: 2000 movs r0, #0
1b07c: 4ba6 ldr r3, [pc, #664] ; (1b318 <ssd1963_init+0x3c8>)
1b07e: 4798 blx r3
1b080: 2214 movs r2, #20
1b082: 2300 movs r3, #0
1b084: 2100 movs r1, #0
1b086: 4ea5 ldr r6, [pc, #660] ; (1b31c <ssd1963_init+0x3cc>)
1b088: 47b0 blx r6
1b08a: 4aa5 ldr r2, [pc, #660] ; (1b320 <ssd1963_init+0x3d0>)
1b08c: 2300 movs r3, #0
1b08e: 1880 adds r0, r0, r2
1b090: 4159 adcs r1, r3
1b092: 4aa5 ldr r2, [pc, #660] ; (1b328 <ssd1963_init+0x3d8>)
1b094: 2300 movs r3, #0
1b096: 4ea3 ldr r6, [pc, #652] ; (1b324 <ssd1963_init+0x3d4>)
1b098: 47b0 blx r6
1b09a: 4ba4 ldr r3, [pc, #656] ; (1b32c <ssd1963_init+0x3dc>)
1b09c: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b09e: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b0a0: 4ba3 ldr r3, [pc, #652] ; (1b330 <ssd1963_init+0x3e0>)
1b0a2: 781b ldrb r3, [r3, #0]
1b0a4: 2b00 cmp r3, #0
1b0a6: d104 bne.n 1b0b2 <ssd1963_init+0x162>
1b0a8: 2220 movs r2, #32
1b0aa: 6162 str r2, [r4, #20]
cmd_mode = true;
1b0ac: 3a1f subs r2, #31
1b0ae: 4ba0 ldr r3, [pc, #640] ; (1b330 <ssd1963_init+0x3e0>)
1b0b0: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b0b2: 2201 movs r2, #1
1b0b4: 499f ldr r1, [pc, #636] ; (1b334 <ssd1963_init+0x3e4>)
1b0b6: 48a0 ldr r0, [pc, #640] ; (1b338 <ssd1963_init+0x3e8>)
1b0b8: 4ba0 ldr r3, [pc, #640] ; (1b33c <ssd1963_init+0x3ec>)
1b0ba: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b0bc: 4c95 ldr r4, [pc, #596] ; (1b314 <ssd1963_init+0x3c4>)
1b0be: 2540 movs r5, #64 ; 0x40
1b0c0: 61a5 str r5, [r4, #24]
LV_DRV_DELAY_MS(20);
1b0c2: 2000 movs r0, #0
1b0c4: 4b94 ldr r3, [pc, #592] ; (1b318 <ssd1963_init+0x3c8>)
1b0c6: 4798 blx r3
1b0c8: 2214 movs r2, #20
1b0ca: 2300 movs r3, #0
1b0cc: 2100 movs r1, #0
1b0ce: 4e93 ldr r6, [pc, #588] ; (1b31c <ssd1963_init+0x3cc>)
1b0d0: 47b0 blx r6
1b0d2: 4a93 ldr r2, [pc, #588] ; (1b320 <ssd1963_init+0x3d0>)
1b0d4: 2300 movs r3, #0
1b0d6: 1880 adds r0, r0, r2
1b0d8: 4159 adcs r1, r3
1b0da: 4a93 ldr r2, [pc, #588] ; (1b328 <ssd1963_init+0x3d8>)
1b0dc: 2300 movs r3, #0
1b0de: 4e91 ldr r6, [pc, #580] ; (1b324 <ssd1963_init+0x3d4>)
1b0e0: 47b0 blx r6
1b0e2: 4b92 ldr r3, [pc, #584] ; (1b32c <ssd1963_init+0x3dc>)
1b0e4: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b0e6: 6165 str r5, [r4, #20]
1b0e8: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b0ea: 4b91 ldr r3, [pc, #580] ; (1b330 <ssd1963_init+0x3e0>)
1b0ec: 781b ldrb r3, [r3, #0]
1b0ee: 2b00 cmp r3, #0
1b0f0: d104 bne.n 1b0fc <ssd1963_init+0x1ac>
1b0f2: 2220 movs r2, #32
1b0f4: 6162 str r2, [r4, #20]
cmd_mode = true;
1b0f6: 3a1f subs r2, #31
1b0f8: 4b8d ldr r3, [pc, #564] ; (1b330 <ssd1963_init+0x3e0>)
1b0fa: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b0fc: 22e2 movs r2, #226 ; 0xe2
1b0fe: 498d ldr r1, [pc, #564] ; (1b334 <ssd1963_init+0x3e4>)
1b100: 488d ldr r0, [pc, #564] ; (1b338 <ssd1963_init+0x3e8>)
1b102: 4b8e ldr r3, [pc, #568] ; (1b33c <ssd1963_init+0x3ec>)
1b104: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b106: 4b83 ldr r3, [pc, #524] ; (1b314 <ssd1963_init+0x3c4>)
1b108: 2240 movs r2, #64 ; 0x40
1b10a: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b10c: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b10e: 4b88 ldr r3, [pc, #544] ; (1b330 <ssd1963_init+0x3e0>)
1b110: 781b ldrb r3, [r3, #0]
1b112: 2b00 cmp r3, #0
1b114: d005 beq.n 1b122 <ssd1963_init+0x1d2>
port_base->OUTSET.reg = pin_mask;
1b116: 3a20 subs r2, #32
1b118: 4b7e ldr r3, [pc, #504] ; (1b314 <ssd1963_init+0x3c4>)
1b11a: 619a str r2, [r3, #24]
cmd_mode = false;
1b11c: 2200 movs r2, #0
1b11e: 4b84 ldr r3, [pc, #528] ; (1b330 <ssd1963_init+0x3e0>)
1b120: 701a strb r2, [r3, #0]
*/
static inline void ssd1963_data(uint16_t data)
{
LV_DRV_DISP_PAR_CS(0);
ssd1963_data_mode();
LV_DRV_DISP_PAR_WR_WORD(data);
1b122: 2223 movs r2, #35 ; 0x23
1b124: 4983 ldr r1, [pc, #524] ; (1b334 <ssd1963_init+0x3e4>)
1b126: 4884 ldr r0, [pc, #528] ; (1b338 <ssd1963_init+0x3e8>)
1b128: 4b84 ldr r3, [pc, #528] ; (1b33c <ssd1963_init+0x3ec>)
1b12a: 4798 blx r3
1b12c: 4b79 ldr r3, [pc, #484] ; (1b314 <ssd1963_init+0x3c4>)
1b12e: 2240 movs r2, #64 ; 0x40
1b130: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b132: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b134: 4b7e ldr r3, [pc, #504] ; (1b330 <ssd1963_init+0x3e0>)
1b136: 781b ldrb r3, [r3, #0]
1b138: 2b00 cmp r3, #0
1b13a: d005 beq.n 1b148 <ssd1963_init+0x1f8>
port_base->OUTSET.reg = pin_mask;
1b13c: 3a20 subs r2, #32
1b13e: 4b75 ldr r3, [pc, #468] ; (1b314 <ssd1963_init+0x3c4>)
1b140: 619a str r2, [r3, #24]
cmd_mode = false;
1b142: 2200 movs r2, #0
1b144: 4b7a ldr r3, [pc, #488] ; (1b330 <ssd1963_init+0x3e0>)
1b146: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b148: 2202 movs r2, #2
1b14a: 497a ldr r1, [pc, #488] ; (1b334 <ssd1963_init+0x3e4>)
1b14c: 487a ldr r0, [pc, #488] ; (1b338 <ssd1963_init+0x3e8>)
1b14e: 4b7b ldr r3, [pc, #492] ; (1b33c <ssd1963_init+0x3ec>)
1b150: 4798 blx r3
1b152: 4b70 ldr r3, [pc, #448] ; (1b314 <ssd1963_init+0x3c4>)
1b154: 2240 movs r2, #64 ; 0x40
1b156: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b158: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b15a: 4b75 ldr r3, [pc, #468] ; (1b330 <ssd1963_init+0x3e0>)
1b15c: 781b ldrb r3, [r3, #0]
1b15e: 2b00 cmp r3, #0
1b160: d005 beq.n 1b16e <ssd1963_init+0x21e>
port_base->OUTSET.reg = pin_mask;
1b162: 3a20 subs r2, #32
1b164: 4b6b ldr r3, [pc, #428] ; (1b314 <ssd1963_init+0x3c4>)
1b166: 619a str r2, [r3, #24]
cmd_mode = false;
1b168: 2200 movs r2, #0
1b16a: 4b71 ldr r3, [pc, #452] ; (1b330 <ssd1963_init+0x3e0>)
1b16c: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b16e: 2254 movs r2, #84 ; 0x54
1b170: 4970 ldr r1, [pc, #448] ; (1b334 <ssd1963_init+0x3e4>)
1b172: 4871 ldr r0, [pc, #452] ; (1b338 <ssd1963_init+0x3e8>)
1b174: 4b71 ldr r3, [pc, #452] ; (1b33c <ssd1963_init+0x3ec>)
1b176: 4798 blx r3
1b178: 4b66 ldr r3, [pc, #408] ; (1b314 <ssd1963_init+0x3c4>)
1b17a: 2240 movs r2, #64 ; 0x40
1b17c: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b17e: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b180: 4b6b ldr r3, [pc, #428] ; (1b330 <ssd1963_init+0x3e0>)
1b182: 781b ldrb r3, [r3, #0]
1b184: 2b00 cmp r3, #0
1b186: d105 bne.n 1b194 <ssd1963_init+0x244>
1b188: 3a20 subs r2, #32
1b18a: 4b62 ldr r3, [pc, #392] ; (1b314 <ssd1963_init+0x3c4>)
1b18c: 615a str r2, [r3, #20]
cmd_mode = true;
1b18e: 3a1f subs r2, #31
1b190: 4b67 ldr r3, [pc, #412] ; (1b330 <ssd1963_init+0x3e0>)
1b192: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b194: 22e0 movs r2, #224 ; 0xe0
1b196: 4967 ldr r1, [pc, #412] ; (1b334 <ssd1963_init+0x3e4>)
1b198: 4867 ldr r0, [pc, #412] ; (1b338 <ssd1963_init+0x3e8>)
1b19a: 4b68 ldr r3, [pc, #416] ; (1b33c <ssd1963_init+0x3ec>)
1b19c: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b19e: 4b5d ldr r3, [pc, #372] ; (1b314 <ssd1963_init+0x3c4>)
1b1a0: 2240 movs r2, #64 ; 0x40
1b1a2: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b1a4: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b1a6: 4b62 ldr r3, [pc, #392] ; (1b330 <ssd1963_init+0x3e0>)
1b1a8: 781b ldrb r3, [r3, #0]
1b1aa: 2b00 cmp r3, #0
1b1ac: d005 beq.n 1b1ba <ssd1963_init+0x26a>
port_base->OUTSET.reg = pin_mask;
1b1ae: 3a20 subs r2, #32
1b1b0: 4b58 ldr r3, [pc, #352] ; (1b314 <ssd1963_init+0x3c4>)
1b1b2: 619a str r2, [r3, #24]
cmd_mode = false;
1b1b4: 2200 movs r2, #0
1b1b6: 4b5e ldr r3, [pc, #376] ; (1b330 <ssd1963_init+0x3e0>)
1b1b8: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b1ba: 2201 movs r2, #1
1b1bc: 495d ldr r1, [pc, #372] ; (1b334 <ssd1963_init+0x3e4>)
1b1be: 485e ldr r0, [pc, #376] ; (1b338 <ssd1963_init+0x3e8>)
1b1c0: 4b5e ldr r3, [pc, #376] ; (1b33c <ssd1963_init+0x3ec>)
1b1c2: 4798 blx r3
1b1c4: 4c53 ldr r4, [pc, #332] ; (1b314 <ssd1963_init+0x3c4>)
1b1c6: 2540 movs r5, #64 ; 0x40
1b1c8: 61a5 str r5, [r4, #24]
delay_us(100);
1b1ca: 2000 movs r0, #0
1b1cc: 4b52 ldr r3, [pc, #328] ; (1b318 <ssd1963_init+0x3c8>)
1b1ce: 4798 blx r3
1b1d0: 2264 movs r2, #100 ; 0x64
1b1d2: 2300 movs r3, #0
1b1d4: 2100 movs r1, #0
1b1d6: 4e51 ldr r6, [pc, #324] ; (1b31c <ssd1963_init+0x3cc>)
1b1d8: 47b0 blx r6
1b1da: 4a59 ldr r2, [pc, #356] ; (1b340 <ssd1963_init+0x3f0>)
1b1dc: 2300 movs r3, #0
1b1de: 1880 adds r0, r0, r2
1b1e0: 4159 adcs r1, r3
1b1e2: 4a58 ldr r2, [pc, #352] ; (1b344 <ssd1963_init+0x3f4>)
1b1e4: 2300 movs r3, #0
1b1e6: 4e4f ldr r6, [pc, #316] ; (1b324 <ssd1963_init+0x3d4>)
1b1e8: 47b0 blx r6
1b1ea: 4b50 ldr r3, [pc, #320] ; (1b32c <ssd1963_init+0x3dc>)
1b1ec: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b1ee: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b1f0: 4b4f ldr r3, [pc, #316] ; (1b330 <ssd1963_init+0x3e0>)
1b1f2: 781b ldrb r3, [r3, #0]
1b1f4: 2b00 cmp r3, #0
1b1f6: d104 bne.n 1b202 <ssd1963_init+0x2b2>
1b1f8: 2220 movs r2, #32
1b1fa: 6162 str r2, [r4, #20]
cmd_mode = true;
1b1fc: 3a1f subs r2, #31
1b1fe: 4b4c ldr r3, [pc, #304] ; (1b330 <ssd1963_init+0x3e0>)
1b200: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b202: 22e0 movs r2, #224 ; 0xe0
1b204: 494b ldr r1, [pc, #300] ; (1b334 <ssd1963_init+0x3e4>)
1b206: 484c ldr r0, [pc, #304] ; (1b338 <ssd1963_init+0x3e8>)
1b208: 4b4c ldr r3, [pc, #304] ; (1b33c <ssd1963_init+0x3ec>)
1b20a: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b20c: 4b41 ldr r3, [pc, #260] ; (1b314 <ssd1963_init+0x3c4>)
1b20e: 2240 movs r2, #64 ; 0x40
1b210: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b212: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b214: 4b46 ldr r3, [pc, #280] ; (1b330 <ssd1963_init+0x3e0>)
1b216: 781b ldrb r3, [r3, #0]
1b218: 2b00 cmp r3, #0
1b21a: d005 beq.n 1b228 <ssd1963_init+0x2d8>
port_base->OUTSET.reg = pin_mask;
1b21c: 3a20 subs r2, #32
1b21e: 4b3d ldr r3, [pc, #244] ; (1b314 <ssd1963_init+0x3c4>)
1b220: 619a str r2, [r3, #24]
cmd_mode = false;
1b222: 2200 movs r2, #0
1b224: 4b42 ldr r3, [pc, #264] ; (1b330 <ssd1963_init+0x3e0>)
1b226: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b228: 2203 movs r2, #3
1b22a: 4942 ldr r1, [pc, #264] ; (1b334 <ssd1963_init+0x3e4>)
1b22c: 4842 ldr r0, [pc, #264] ; (1b338 <ssd1963_init+0x3e8>)
1b22e: 4b43 ldr r3, [pc, #268] ; (1b33c <ssd1963_init+0x3ec>)
1b230: 4798 blx r3
1b232: 4c38 ldr r4, [pc, #224] ; (1b314 <ssd1963_init+0x3c4>)
1b234: 2540 movs r5, #64 ; 0x40
1b236: 61a5 str r5, [r4, #24]
delay_ms(1);
1b238: 2000 movs r0, #0
1b23a: 4b37 ldr r3, [pc, #220] ; (1b318 <ssd1963_init+0x3c8>)
1b23c: 4798 blx r3
1b23e: 0002 movs r2, r0
1b240: 2300 movs r3, #0
1b242: 4837 ldr r0, [pc, #220] ; (1b320 <ssd1963_init+0x3d0>)
1b244: 2100 movs r1, #0
1b246: 1880 adds r0, r0, r2
1b248: 4159 adcs r1, r3
1b24a: 4a37 ldr r2, [pc, #220] ; (1b328 <ssd1963_init+0x3d8>)
1b24c: 2300 movs r3, #0
1b24e: 4e35 ldr r6, [pc, #212] ; (1b324 <ssd1963_init+0x3d4>)
1b250: 47b0 blx r6
1b252: 4b36 ldr r3, [pc, #216] ; (1b32c <ssd1963_init+0x3dc>)
1b254: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b256: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b258: 4b35 ldr r3, [pc, #212] ; (1b330 <ssd1963_init+0x3e0>)
1b25a: 781b ldrb r3, [r3, #0]
1b25c: 2b00 cmp r3, #0
1b25e: d104 bne.n 1b26a <ssd1963_init+0x31a>
1b260: 2220 movs r2, #32
1b262: 6162 str r2, [r4, #20]
cmd_mode = true;
1b264: 3a1f subs r2, #31
1b266: 4b32 ldr r3, [pc, #200] ; (1b330 <ssd1963_init+0x3e0>)
1b268: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b26a: 2201 movs r2, #1
1b26c: 4931 ldr r1, [pc, #196] ; (1b334 <ssd1963_init+0x3e4>)
1b26e: 4832 ldr r0, [pc, #200] ; (1b338 <ssd1963_init+0x3e8>)
1b270: 4b32 ldr r3, [pc, #200] ; (1b33c <ssd1963_init+0x3ec>)
1b272: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b274: 4c27 ldr r4, [pc, #156] ; (1b314 <ssd1963_init+0x3c4>)
1b276: 2540 movs r5, #64 ; 0x40
1b278: 61a5 str r5, [r4, #24]
delay_ms(1);
1b27a: 2000 movs r0, #0
1b27c: 4b26 ldr r3, [pc, #152] ; (1b318 <ssd1963_init+0x3c8>)
1b27e: 4798 blx r3
1b280: 0002 movs r2, r0
1b282: 2300 movs r3, #0
1b284: 4826 ldr r0, [pc, #152] ; (1b320 <ssd1963_init+0x3d0>)
1b286: 2100 movs r1, #0
1b288: 1880 adds r0, r0, r2
1b28a: 4159 adcs r1, r3
1b28c: 4a26 ldr r2, [pc, #152] ; (1b328 <ssd1963_init+0x3d8>)
1b28e: 2300 movs r3, #0
1b290: 4e24 ldr r6, [pc, #144] ; (1b324 <ssd1963_init+0x3d4>)
1b292: 47b0 blx r6
1b294: 4b25 ldr r3, [pc, #148] ; (1b32c <ssd1963_init+0x3dc>)
1b296: 4798 blx r3
port_base->OUTCLR.reg = pin_mask;
1b298: 6165 str r5, [r4, #20]
if(cmd_mode == false) {
1b29a: 4b25 ldr r3, [pc, #148] ; (1b330 <ssd1963_init+0x3e0>)
1b29c: 781b ldrb r3, [r3, #0]
1b29e: 2b00 cmp r3, #0
1b2a0: d104 bne.n 1b2ac <ssd1963_init+0x35c>
1b2a2: 2220 movs r2, #32
1b2a4: 6162 str r2, [r4, #20]
cmd_mode = true;
1b2a6: 3a1f subs r2, #31
1b2a8: 4b21 ldr r3, [pc, #132] ; (1b330 <ssd1963_init+0x3e0>)
1b2aa: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b2ac: 22e6 movs r2, #230 ; 0xe6
1b2ae: 4921 ldr r1, [pc, #132] ; (1b334 <ssd1963_init+0x3e4>)
1b2b0: 4821 ldr r0, [pc, #132] ; (1b338 <ssd1963_init+0x3e8>)
1b2b2: 4b22 ldr r3, [pc, #136] ; (1b33c <ssd1963_init+0x3ec>)
1b2b4: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b2b6: 4b17 ldr r3, [pc, #92] ; (1b314 <ssd1963_init+0x3c4>)
1b2b8: 2240 movs r2, #64 ; 0x40
1b2ba: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b2bc: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b2be: 4b1c ldr r3, [pc, #112] ; (1b330 <ssd1963_init+0x3e0>)
1b2c0: 781b ldrb r3, [r3, #0]
1b2c2: 2b00 cmp r3, #0
1b2c4: d005 beq.n 1b2d2 <ssd1963_init+0x382>
port_base->OUTSET.reg = pin_mask;
1b2c6: 3a20 subs r2, #32
1b2c8: 4b12 ldr r3, [pc, #72] ; (1b314 <ssd1963_init+0x3c4>)
1b2ca: 619a str r2, [r3, #24]
cmd_mode = false;
1b2cc: 2200 movs r2, #0
1b2ce: 4b18 ldr r3, [pc, #96] ; (1b330 <ssd1963_init+0x3e0>)
1b2d0: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b2d2: 2204 movs r2, #4
1b2d4: 4917 ldr r1, [pc, #92] ; (1b334 <ssd1963_init+0x3e4>)
1b2d6: 4818 ldr r0, [pc, #96] ; (1b338 <ssd1963_init+0x3e8>)
1b2d8: 4b18 ldr r3, [pc, #96] ; (1b33c <ssd1963_init+0x3ec>)
1b2da: 4798 blx r3
1b2dc: 4b0d ldr r3, [pc, #52] ; (1b314 <ssd1963_init+0x3c4>)
1b2de: 2240 movs r2, #64 ; 0x40
1b2e0: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b2e2: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b2e4: 4b12 ldr r3, [pc, #72] ; (1b330 <ssd1963_init+0x3e0>)
1b2e6: 781b ldrb r3, [r3, #0]
1b2e8: 2b00 cmp r3, #0
1b2ea: d005 beq.n 1b2f8 <ssd1963_init+0x3a8>
port_base->OUTSET.reg = pin_mask;
1b2ec: 3a20 subs r2, #32
1b2ee: 4b09 ldr r3, [pc, #36] ; (1b314 <ssd1963_init+0x3c4>)
1b2f0: 619a str r2, [r3, #24]
cmd_mode = false;
1b2f2: 2200 movs r2, #0
1b2f4: 4b0e ldr r3, [pc, #56] ; (1b330 <ssd1963_init+0x3e0>)
1b2f6: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b2f8: 223a movs r2, #58 ; 0x3a
1b2fa: 490e ldr r1, [pc, #56] ; (1b334 <ssd1963_init+0x3e4>)
1b2fc: 480e ldr r0, [pc, #56] ; (1b338 <ssd1963_init+0x3e8>)
1b2fe: 4b0f ldr r3, [pc, #60] ; (1b33c <ssd1963_init+0x3ec>)
1b300: 4798 blx r3
1b302: 4b04 ldr r3, [pc, #16] ; (1b314 <ssd1963_init+0x3c4>)
1b304: 2240 movs r2, #64 ; 0x40
1b306: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b308: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b30a: 4b09 ldr r3, [pc, #36] ; (1b330 <ssd1963_init+0x3e0>)
1b30c: 781b ldrb r3, [r3, #0]
1b30e: 2b00 cmp r3, #0
1b310: d020 beq.n 1b354 <ssd1963_init+0x404>
1b312: e019 b.n 1b348 <ssd1963_init+0x3f8>
1b314: 41004400 .word 0x41004400
1b318: 000013fd .word 0x000013fd
1b31c: 0001c3d1 .word 0x0001c3d1
1b320: 00001b57 .word 0x00001b57
1b324: 0001c391 .word 0x0001c391
1b328: 00001b58 .word 0x00001b58
1b32c: 20000001 .word 0x20000001
1b330: 2000006c .word 0x2000006c
1b334: 0000ffff .word 0x0000ffff
1b338: 41004480 .word 0x41004480
1b33c: 0001be6d .word 0x0001be6d
1b340: 006acfbf .word 0x006acfbf
1b344: 006acfc0 .word 0x006acfc0
port_base->OUTSET.reg = pin_mask;
1b348: 3a20 subs r2, #32
1b34a: 4be6 ldr r3, [pc, #920] ; (1b6e4 <ssd1963_init+0x794>)
1b34c: 619a str r2, [r3, #24]
cmd_mode = false;
1b34e: 2200 movs r2, #0
1b350: 4be5 ldr r3, [pc, #916] ; (1b6e8 <ssd1963_init+0x798>)
1b352: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b354: 22b6 movs r2, #182 ; 0xb6
1b356: 49e5 ldr r1, [pc, #916] ; (1b6ec <ssd1963_init+0x79c>)
1b358: 48e5 ldr r0, [pc, #916] ; (1b6f0 <ssd1963_init+0x7a0>)
1b35a: 4be6 ldr r3, [pc, #920] ; (1b6f4 <ssd1963_init+0x7a4>)
1b35c: 4798 blx r3
1b35e: 4be1 ldr r3, [pc, #900] ; (1b6e4 <ssd1963_init+0x794>)
1b360: 2240 movs r2, #64 ; 0x40
1b362: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b364: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b366: 4be0 ldr r3, [pc, #896] ; (1b6e8 <ssd1963_init+0x798>)
1b368: 781b ldrb r3, [r3, #0]
1b36a: 2b00 cmp r3, #0
1b36c: d105 bne.n 1b37a <ssd1963_init+0x42a>
1b36e: 3a20 subs r2, #32
1b370: 4bdc ldr r3, [pc, #880] ; (1b6e4 <ssd1963_init+0x794>)
1b372: 615a str r2, [r3, #20]
cmd_mode = true;
1b374: 3a1f subs r2, #31
1b376: 4bdc ldr r3, [pc, #880] ; (1b6e8 <ssd1963_init+0x798>)
1b378: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b37a: 22b0 movs r2, #176 ; 0xb0
1b37c: 49db ldr r1, [pc, #876] ; (1b6ec <ssd1963_init+0x79c>)
1b37e: 48dc ldr r0, [pc, #880] ; (1b6f0 <ssd1963_init+0x7a0>)
1b380: 4bdc ldr r3, [pc, #880] ; (1b6f4 <ssd1963_init+0x7a4>)
1b382: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b384: 4bd7 ldr r3, [pc, #860] ; (1b6e4 <ssd1963_init+0x794>)
1b386: 2240 movs r2, #64 ; 0x40
1b388: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b38a: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b38c: 4bd6 ldr r3, [pc, #856] ; (1b6e8 <ssd1963_init+0x798>)
1b38e: 781b ldrb r3, [r3, #0]
1b390: 2b00 cmp r3, #0
1b392: d005 beq.n 1b3a0 <ssd1963_init+0x450>
port_base->OUTSET.reg = pin_mask;
1b394: 3a20 subs r2, #32
1b396: 4bd3 ldr r3, [pc, #844] ; (1b6e4 <ssd1963_init+0x794>)
1b398: 619a str r2, [r3, #24]
cmd_mode = false;
1b39a: 2200 movs r2, #0
1b39c: 4bd2 ldr r3, [pc, #840] ; (1b6e8 <ssd1963_init+0x798>)
1b39e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b3a0: 2228 movs r2, #40 ; 0x28
1b3a2: 49d2 ldr r1, [pc, #840] ; (1b6ec <ssd1963_init+0x79c>)
1b3a4: 48d2 ldr r0, [pc, #840] ; (1b6f0 <ssd1963_init+0x7a0>)
1b3a6: 4bd3 ldr r3, [pc, #844] ; (1b6f4 <ssd1963_init+0x7a4>)
1b3a8: 4798 blx r3
1b3aa: 4bce ldr r3, [pc, #824] ; (1b6e4 <ssd1963_init+0x794>)
1b3ac: 2240 movs r2, #64 ; 0x40
1b3ae: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b3b0: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b3b2: 4bcd ldr r3, [pc, #820] ; (1b6e8 <ssd1963_init+0x798>)
1b3b4: 781b ldrb r3, [r3, #0]
1b3b6: 2b00 cmp r3, #0
1b3b8: d005 beq.n 1b3c6 <ssd1963_init+0x476>
port_base->OUTSET.reg = pin_mask;
1b3ba: 3a20 subs r2, #32
1b3bc: 4bc9 ldr r3, [pc, #804] ; (1b6e4 <ssd1963_init+0x794>)
1b3be: 619a str r2, [r3, #24]
cmd_mode = false;
1b3c0: 2200 movs r2, #0
1b3c2: 4bc9 ldr r3, [pc, #804] ; (1b6e8 <ssd1963_init+0x798>)
1b3c4: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b3c6: 2280 movs r2, #128 ; 0x80
1b3c8: 49c8 ldr r1, [pc, #800] ; (1b6ec <ssd1963_init+0x79c>)
1b3ca: 48c9 ldr r0, [pc, #804] ; (1b6f0 <ssd1963_init+0x7a0>)
1b3cc: 4bc9 ldr r3, [pc, #804] ; (1b6f4 <ssd1963_init+0x7a4>)
1b3ce: 4798 blx r3
1b3d0: 4cc4 ldr r4, [pc, #784] ; (1b6e4 <ssd1963_init+0x794>)
1b3d2: 2540 movs r5, #64 ; 0x40
1b3d4: 61a5 str r5, [r4, #24]
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
1b3d6: 4bc8 ldr r3, [pc, #800] ; (1b6f8 <ssd1963_init+0x7a8>)
1b3d8: 4798 blx r3
1b3da: 4bc8 ldr r3, [pc, #800] ; (1b6fc <ssd1963_init+0x7ac>)
1b3dc: 4798 blx r3
1b3de: 1e42 subs r2, r0, #1
1b3e0: 1212 asrs r2, r2, #8
1b3e2: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1b3e4: 6165 str r5, [r4, #20]
if(cmd_mode != false) {
1b3e6: 4bc0 ldr r3, [pc, #768] ; (1b6e8 <ssd1963_init+0x798>)
1b3e8: 781b ldrb r3, [r3, #0]
1b3ea: 2b00 cmp r3, #0
1b3ec: d004 beq.n 1b3f8 <ssd1963_init+0x4a8>
port_base->OUTSET.reg = pin_mask;
1b3ee: 2120 movs r1, #32
1b3f0: 61a1 str r1, [r4, #24]
cmd_mode = false;
1b3f2: 2100 movs r1, #0
1b3f4: 4bbc ldr r3, [pc, #752] ; (1b6e8 <ssd1963_init+0x798>)
1b3f6: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b3f8: 49bc ldr r1, [pc, #752] ; (1b6ec <ssd1963_init+0x79c>)
1b3fa: 48bd ldr r0, [pc, #756] ; (1b6f0 <ssd1963_init+0x7a0>)
1b3fc: 4bbd ldr r3, [pc, #756] ; (1b6f4 <ssd1963_init+0x7a4>)
1b3fe: 4798 blx r3
1b400: 4cb8 ldr r4, [pc, #736] ; (1b6e4 <ssd1963_init+0x794>)
1b402: 2540 movs r5, #64 ; 0x40
1b404: 61a5 str r5, [r4, #24]
ssd1963_data(SSD1963_HOR_RES-1);
1b406: 4bbc ldr r3, [pc, #752] ; (1b6f8 <ssd1963_init+0x7a8>)
1b408: 4798 blx r3
1b40a: 4bbc ldr r3, [pc, #752] ; (1b6fc <ssd1963_init+0x7ac>)
1b40c: 4798 blx r3
1b40e: 3801 subs r0, #1
1b410: b282 uxth r2, r0
port_base->OUTCLR.reg = pin_mask;
1b412: 6165 str r5, [r4, #20]
if(cmd_mode != false) {
1b414: 4bb4 ldr r3, [pc, #720] ; (1b6e8 <ssd1963_init+0x798>)
1b416: 781b ldrb r3, [r3, #0]
1b418: 2b00 cmp r3, #0
1b41a: d004 beq.n 1b426 <ssd1963_init+0x4d6>
port_base->OUTSET.reg = pin_mask;
1b41c: 2120 movs r1, #32
1b41e: 61a1 str r1, [r4, #24]
cmd_mode = false;
1b420: 2100 movs r1, #0
1b422: 4bb1 ldr r3, [pc, #708] ; (1b6e8 <ssd1963_init+0x798>)
1b424: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b426: 49b1 ldr r1, [pc, #708] ; (1b6ec <ssd1963_init+0x79c>)
1b428: 48b1 ldr r0, [pc, #708] ; (1b6f0 <ssd1963_init+0x7a0>)
1b42a: 4bb2 ldr r3, [pc, #712] ; (1b6f4 <ssd1963_init+0x7a4>)
1b42c: 4798 blx r3
1b42e: 4cad ldr r4, [pc, #692] ; (1b6e4 <ssd1963_init+0x794>)
1b430: 2540 movs r5, #64 ; 0x40
1b432: 61a5 str r5, [r4, #24]
ssd1963_data((SSD1963_VER_RES-1)>>8);
1b434: 4bb0 ldr r3, [pc, #704] ; (1b6f8 <ssd1963_init+0x7a8>)
1b436: 4798 blx r3
1b438: 4bb1 ldr r3, [pc, #708] ; (1b700 <ssd1963_init+0x7b0>)
1b43a: 4798 blx r3
1b43c: 1e42 subs r2, r0, #1
1b43e: 1212 asrs r2, r2, #8
1b440: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1b442: 6165 str r5, [r4, #20]
if(cmd_mode != false) {
1b444: 4ba8 ldr r3, [pc, #672] ; (1b6e8 <ssd1963_init+0x798>)
1b446: 781b ldrb r3, [r3, #0]
1b448: 2b00 cmp r3, #0
1b44a: d004 beq.n 1b456 <ssd1963_init+0x506>
port_base->OUTSET.reg = pin_mask;
1b44c: 2120 movs r1, #32
1b44e: 61a1 str r1, [r4, #24]
cmd_mode = false;
1b450: 2100 movs r1, #0
1b452: 4ba5 ldr r3, [pc, #660] ; (1b6e8 <ssd1963_init+0x798>)
1b454: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b456: 49a5 ldr r1, [pc, #660] ; (1b6ec <ssd1963_init+0x79c>)
1b458: 48a5 ldr r0, [pc, #660] ; (1b6f0 <ssd1963_init+0x7a0>)
1b45a: 4ba6 ldr r3, [pc, #664] ; (1b6f4 <ssd1963_init+0x7a4>)
1b45c: 4798 blx r3
1b45e: 4ca1 ldr r4, [pc, #644] ; (1b6e4 <ssd1963_init+0x794>)
1b460: 2540 movs r5, #64 ; 0x40
1b462: 61a5 str r5, [r4, #24]
ssd1963_data(SSD1963_VER_RES-1);
1b464: 4ba4 ldr r3, [pc, #656] ; (1b6f8 <ssd1963_init+0x7a8>)
1b466: 4798 blx r3
1b468: 4ba5 ldr r3, [pc, #660] ; (1b700 <ssd1963_init+0x7b0>)
1b46a: 4798 blx r3
1b46c: 3801 subs r0, #1
1b46e: b282 uxth r2, r0
port_base->OUTCLR.reg = pin_mask;
1b470: 6165 str r5, [r4, #20]
if(cmd_mode != false) {
1b472: 4b9d ldr r3, [pc, #628] ; (1b6e8 <ssd1963_init+0x798>)
1b474: 781b ldrb r3, [r3, #0]
1b476: 2b00 cmp r3, #0
1b478: d004 beq.n 1b484 <ssd1963_init+0x534>
port_base->OUTSET.reg = pin_mask;
1b47a: 2120 movs r1, #32
1b47c: 61a1 str r1, [r4, #24]
cmd_mode = false;
1b47e: 2100 movs r1, #0
1b480: 4b99 ldr r3, [pc, #612] ; (1b6e8 <ssd1963_init+0x798>)
1b482: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b484: 4999 ldr r1, [pc, #612] ; (1b6ec <ssd1963_init+0x79c>)
1b486: 489a ldr r0, [pc, #616] ; (1b6f0 <ssd1963_init+0x7a0>)
1b488: 4b9a ldr r3, [pc, #616] ; (1b6f4 <ssd1963_init+0x7a4>)
1b48a: 4798 blx r3
1b48c: 4b95 ldr r3, [pc, #596] ; (1b6e4 <ssd1963_init+0x794>)
1b48e: 2240 movs r2, #64 ; 0x40
1b490: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b492: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b494: 4b94 ldr r3, [pc, #592] ; (1b6e8 <ssd1963_init+0x798>)
1b496: 781b ldrb r3, [r3, #0]
1b498: 2b00 cmp r3, #0
1b49a: d005 beq.n 1b4a8 <ssd1963_init+0x558>
port_base->OUTSET.reg = pin_mask;
1b49c: 3a20 subs r2, #32
1b49e: 4b91 ldr r3, [pc, #580] ; (1b6e4 <ssd1963_init+0x794>)
1b4a0: 619a str r2, [r3, #24]
cmd_mode = false;
1b4a2: 2200 movs r2, #0
1b4a4: 4b90 ldr r3, [pc, #576] ; (1b6e8 <ssd1963_init+0x798>)
1b4a6: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b4a8: 2200 movs r2, #0
1b4aa: 4990 ldr r1, [pc, #576] ; (1b6ec <ssd1963_init+0x79c>)
1b4ac: 4890 ldr r0, [pc, #576] ; (1b6f0 <ssd1963_init+0x7a0>)
1b4ae: 4b91 ldr r3, [pc, #580] ; (1b6f4 <ssd1963_init+0x7a4>)
1b4b0: 4798 blx r3
1b4b2: 4b8c ldr r3, [pc, #560] ; (1b6e4 <ssd1963_init+0x794>)
1b4b4: 2240 movs r2, #64 ; 0x40
1b4b6: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b4b8: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b4ba: 4b8b ldr r3, [pc, #556] ; (1b6e8 <ssd1963_init+0x798>)
1b4bc: 781b ldrb r3, [r3, #0]
1b4be: 2b00 cmp r3, #0
1b4c0: d105 bne.n 1b4ce <ssd1963_init+0x57e>
1b4c2: 3a20 subs r2, #32
1b4c4: 4b87 ldr r3, [pc, #540] ; (1b6e4 <ssd1963_init+0x794>)
1b4c6: 615a str r2, [r3, #20]
cmd_mode = true;
1b4c8: 3a1f subs r2, #31
1b4ca: 4b87 ldr r3, [pc, #540] ; (1b6e8 <ssd1963_init+0x798>)
1b4cc: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b4ce: 22f0 movs r2, #240 ; 0xf0
1b4d0: 4986 ldr r1, [pc, #536] ; (1b6ec <ssd1963_init+0x79c>)
1b4d2: 4887 ldr r0, [pc, #540] ; (1b6f0 <ssd1963_init+0x7a0>)
1b4d4: 4b87 ldr r3, [pc, #540] ; (1b6f4 <ssd1963_init+0x7a4>)
1b4d6: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b4d8: 4b82 ldr r3, [pc, #520] ; (1b6e4 <ssd1963_init+0x794>)
1b4da: 2240 movs r2, #64 ; 0x40
1b4dc: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b4de: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b4e0: 4b81 ldr r3, [pc, #516] ; (1b6e8 <ssd1963_init+0x798>)
1b4e2: 781b ldrb r3, [r3, #0]
1b4e4: 2b00 cmp r3, #0
1b4e6: d005 beq.n 1b4f4 <ssd1963_init+0x5a4>
port_base->OUTSET.reg = pin_mask;
1b4e8: 3a20 subs r2, #32
1b4ea: 4b7e ldr r3, [pc, #504] ; (1b6e4 <ssd1963_init+0x794>)
1b4ec: 619a str r2, [r3, #24]
cmd_mode = false;
1b4ee: 2200 movs r2, #0
1b4f0: 4b7d ldr r3, [pc, #500] ; (1b6e8 <ssd1963_init+0x798>)
1b4f2: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b4f4: 2203 movs r2, #3
1b4f6: 497d ldr r1, [pc, #500] ; (1b6ec <ssd1963_init+0x79c>)
1b4f8: 487d ldr r0, [pc, #500] ; (1b6f0 <ssd1963_init+0x7a0>)
1b4fa: 4b7e ldr r3, [pc, #504] ; (1b6f4 <ssd1963_init+0x7a4>)
1b4fc: 4798 blx r3
1b4fe: 4b79 ldr r3, [pc, #484] ; (1b6e4 <ssd1963_init+0x794>)
1b500: 2240 movs r2, #64 ; 0x40
1b502: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b504: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b506: 4b78 ldr r3, [pc, #480] ; (1b6e8 <ssd1963_init+0x798>)
1b508: 781b ldrb r3, [r3, #0]
1b50a: 2b00 cmp r3, #0
1b50c: d105 bne.n 1b51a <ssd1963_init+0x5ca>
1b50e: 3a20 subs r2, #32
1b510: 4b74 ldr r3, [pc, #464] ; (1b6e4 <ssd1963_init+0x794>)
1b512: 615a str r2, [r3, #20]
cmd_mode = true;
1b514: 3a1f subs r2, #31
1b516: 4b74 ldr r3, [pc, #464] ; (1b6e8 <ssd1963_init+0x798>)
1b518: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b51a: 223a movs r2, #58 ; 0x3a
1b51c: 4973 ldr r1, [pc, #460] ; (1b6ec <ssd1963_init+0x79c>)
1b51e: 4874 ldr r0, [pc, #464] ; (1b6f0 <ssd1963_init+0x7a0>)
1b520: 4b74 ldr r3, [pc, #464] ; (1b6f4 <ssd1963_init+0x7a4>)
1b522: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b524: 4b6f ldr r3, [pc, #444] ; (1b6e4 <ssd1963_init+0x794>)
1b526: 2240 movs r2, #64 ; 0x40
1b528: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b52a: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b52c: 4b6e ldr r3, [pc, #440] ; (1b6e8 <ssd1963_init+0x798>)
1b52e: 781b ldrb r3, [r3, #0]
1b530: 2b00 cmp r3, #0
1b532: d005 beq.n 1b540 <ssd1963_init+0x5f0>
port_base->OUTSET.reg = pin_mask;
1b534: 3a20 subs r2, #32
1b536: 4b6b ldr r3, [pc, #428] ; (1b6e4 <ssd1963_init+0x794>)
1b538: 619a str r2, [r3, #24]
cmd_mode = false;
1b53a: 2200 movs r2, #0
1b53c: 4b6a ldr r3, [pc, #424] ; (1b6e8 <ssd1963_init+0x798>)
1b53e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b540: 2255 movs r2, #85 ; 0x55
1b542: 496a ldr r1, [pc, #424] ; (1b6ec <ssd1963_init+0x79c>)
1b544: 486a ldr r0, [pc, #424] ; (1b6f0 <ssd1963_init+0x7a0>)
1b546: 4b6b ldr r3, [pc, #428] ; (1b6f4 <ssd1963_init+0x7a4>)
1b548: 4798 blx r3
1b54a: 4b66 ldr r3, [pc, #408] ; (1b6e4 <ssd1963_init+0x794>)
1b54c: 2240 movs r2, #64 ; 0x40
1b54e: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b550: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b552: 4b65 ldr r3, [pc, #404] ; (1b6e8 <ssd1963_init+0x798>)
1b554: 781b ldrb r3, [r3, #0]
1b556: 2b00 cmp r3, #0
1b558: d105 bne.n 1b566 <ssd1963_init+0x616>
1b55a: 3a20 subs r2, #32
1b55c: 4b61 ldr r3, [pc, #388] ; (1b6e4 <ssd1963_init+0x794>)
1b55e: 615a str r2, [r3, #20]
cmd_mode = true;
1b560: 3a1f subs r2, #31
1b562: 4b61 ldr r3, [pc, #388] ; (1b6e8 <ssd1963_init+0x798>)
1b564: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b566: 22b4 movs r2, #180 ; 0xb4
1b568: 4960 ldr r1, [pc, #384] ; (1b6ec <ssd1963_init+0x79c>)
1b56a: 4861 ldr r0, [pc, #388] ; (1b6f0 <ssd1963_init+0x7a0>)
1b56c: 4b61 ldr r3, [pc, #388] ; (1b6f4 <ssd1963_init+0x7a4>)
1b56e: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b570: 4b5c ldr r3, [pc, #368] ; (1b6e4 <ssd1963_init+0x794>)
1b572: 2240 movs r2, #64 ; 0x40
1b574: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b576: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b578: 4b5b ldr r3, [pc, #364] ; (1b6e8 <ssd1963_init+0x798>)
1b57a: 781b ldrb r3, [r3, #0]
1b57c: 2b00 cmp r3, #0
1b57e: d005 beq.n 1b58c <ssd1963_init+0x63c>
port_base->OUTSET.reg = pin_mask;
1b580: 3a20 subs r2, #32
1b582: 4b58 ldr r3, [pc, #352] ; (1b6e4 <ssd1963_init+0x794>)
1b584: 619a str r2, [r3, #24]
cmd_mode = false;
1b586: 2200 movs r2, #0
1b588: 4b57 ldr r3, [pc, #348] ; (1b6e8 <ssd1963_init+0x798>)
1b58a: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b58c: 2202 movs r2, #2
1b58e: 4957 ldr r1, [pc, #348] ; (1b6ec <ssd1963_init+0x79c>)
1b590: 4857 ldr r0, [pc, #348] ; (1b6f0 <ssd1963_init+0x7a0>)
1b592: 4b58 ldr r3, [pc, #352] ; (1b6f4 <ssd1963_init+0x7a4>)
1b594: 4798 blx r3
1b596: 4b53 ldr r3, [pc, #332] ; (1b6e4 <ssd1963_init+0x794>)
1b598: 2240 movs r2, #64 ; 0x40
1b59a: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b59c: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b59e: 4b52 ldr r3, [pc, #328] ; (1b6e8 <ssd1963_init+0x798>)
1b5a0: 781b ldrb r3, [r3, #0]
1b5a2: 2b00 cmp r3, #0
1b5a4: d005 beq.n 1b5b2 <ssd1963_init+0x662>
port_base->OUTSET.reg = pin_mask;
1b5a6: 3a20 subs r2, #32
1b5a8: 4b4e ldr r3, [pc, #312] ; (1b6e4 <ssd1963_init+0x794>)
1b5aa: 619a str r2, [r3, #24]
cmd_mode = false;
1b5ac: 2200 movs r2, #0
1b5ae: 4b4e ldr r3, [pc, #312] ; (1b6e8 <ssd1963_init+0x798>)
1b5b0: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b5b2: 220d movs r2, #13
1b5b4: 494d ldr r1, [pc, #308] ; (1b6ec <ssd1963_init+0x79c>)
1b5b6: 484e ldr r0, [pc, #312] ; (1b6f0 <ssd1963_init+0x7a0>)
1b5b8: 4b4e ldr r3, [pc, #312] ; (1b6f4 <ssd1963_init+0x7a4>)
1b5ba: 4798 blx r3
1b5bc: 4b49 ldr r3, [pc, #292] ; (1b6e4 <ssd1963_init+0x794>)
1b5be: 2240 movs r2, #64 ; 0x40
1b5c0: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b5c2: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b5c4: 4b48 ldr r3, [pc, #288] ; (1b6e8 <ssd1963_init+0x798>)
1b5c6: 781b ldrb r3, [r3, #0]
1b5c8: 2b00 cmp r3, #0
1b5ca: d005 beq.n 1b5d8 <ssd1963_init+0x688>
port_base->OUTSET.reg = pin_mask;
1b5cc: 3a20 subs r2, #32
1b5ce: 4b45 ldr r3, [pc, #276] ; (1b6e4 <ssd1963_init+0x794>)
1b5d0: 619a str r2, [r3, #24]
cmd_mode = false;
1b5d2: 2200 movs r2, #0
1b5d4: 4b44 ldr r3, [pc, #272] ; (1b6e8 <ssd1963_init+0x798>)
1b5d6: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b5d8: 2200 movs r2, #0
1b5da: 4944 ldr r1, [pc, #272] ; (1b6ec <ssd1963_init+0x79c>)
1b5dc: 4844 ldr r0, [pc, #272] ; (1b6f0 <ssd1963_init+0x7a0>)
1b5de: 4b45 ldr r3, [pc, #276] ; (1b6f4 <ssd1963_init+0x7a4>)
1b5e0: 4798 blx r3
1b5e2: 4b40 ldr r3, [pc, #256] ; (1b6e4 <ssd1963_init+0x794>)
1b5e4: 2240 movs r2, #64 ; 0x40
1b5e6: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b5e8: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b5ea: 4b3f ldr r3, [pc, #252] ; (1b6e8 <ssd1963_init+0x798>)
1b5ec: 781b ldrb r3, [r3, #0]
1b5ee: 2b00 cmp r3, #0
1b5f0: d005 beq.n 1b5fe <ssd1963_init+0x6ae>
port_base->OUTSET.reg = pin_mask;
1b5f2: 3a20 subs r2, #32
1b5f4: 4b3b ldr r3, [pc, #236] ; (1b6e4 <ssd1963_init+0x794>)
1b5f6: 619a str r2, [r3, #24]
cmd_mode = false;
1b5f8: 2200 movs r2, #0
1b5fa: 4b3b ldr r3, [pc, #236] ; (1b6e8 <ssd1963_init+0x798>)
1b5fc: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b5fe: 222b movs r2, #43 ; 0x2b
1b600: 493a ldr r1, [pc, #232] ; (1b6ec <ssd1963_init+0x79c>)
1b602: 483b ldr r0, [pc, #236] ; (1b6f0 <ssd1963_init+0x7a0>)
1b604: 4b3b ldr r3, [pc, #236] ; (1b6f4 <ssd1963_init+0x7a4>)
1b606: 4798 blx r3
1b608: 4b36 ldr r3, [pc, #216] ; (1b6e4 <ssd1963_init+0x794>)
1b60a: 2240 movs r2, #64 ; 0x40
1b60c: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b60e: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b610: 4b35 ldr r3, [pc, #212] ; (1b6e8 <ssd1963_init+0x798>)
1b612: 781b ldrb r3, [r3, #0]
1b614: 2b00 cmp r3, #0
1b616: d005 beq.n 1b624 <ssd1963_init+0x6d4>
port_base->OUTSET.reg = pin_mask;
1b618: 3a20 subs r2, #32
1b61a: 4b32 ldr r3, [pc, #200] ; (1b6e4 <ssd1963_init+0x794>)
1b61c: 619a str r2, [r3, #24]
cmd_mode = false;
1b61e: 2200 movs r2, #0
1b620: 4b31 ldr r3, [pc, #196] ; (1b6e8 <ssd1963_init+0x798>)
1b622: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b624: 2228 movs r2, #40 ; 0x28
1b626: 4931 ldr r1, [pc, #196] ; (1b6ec <ssd1963_init+0x79c>)
1b628: 4831 ldr r0, [pc, #196] ; (1b6f0 <ssd1963_init+0x7a0>)
1b62a: 4b32 ldr r3, [pc, #200] ; (1b6f4 <ssd1963_init+0x7a4>)
1b62c: 4798 blx r3
1b62e: 4b2d ldr r3, [pc, #180] ; (1b6e4 <ssd1963_init+0x794>)
1b630: 2240 movs r2, #64 ; 0x40
1b632: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b634: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b636: 4b2c ldr r3, [pc, #176] ; (1b6e8 <ssd1963_init+0x798>)
1b638: 781b ldrb r3, [r3, #0]
1b63a: 2b00 cmp r3, #0
1b63c: d005 beq.n 1b64a <ssd1963_init+0x6fa>
port_base->OUTSET.reg = pin_mask;
1b63e: 3a20 subs r2, #32
1b640: 4b28 ldr r3, [pc, #160] ; (1b6e4 <ssd1963_init+0x794>)
1b642: 619a str r2, [r3, #24]
cmd_mode = false;
1b644: 2200 movs r2, #0
1b646: 4b28 ldr r3, [pc, #160] ; (1b6e8 <ssd1963_init+0x798>)
1b648: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b64a: 2200 movs r2, #0
1b64c: 4927 ldr r1, [pc, #156] ; (1b6ec <ssd1963_init+0x79c>)
1b64e: 4828 ldr r0, [pc, #160] ; (1b6f0 <ssd1963_init+0x7a0>)
1b650: 4b28 ldr r3, [pc, #160] ; (1b6f4 <ssd1963_init+0x7a4>)
1b652: 4798 blx r3
1b654: 4b23 ldr r3, [pc, #140] ; (1b6e4 <ssd1963_init+0x794>)
1b656: 2240 movs r2, #64 ; 0x40
1b658: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b65a: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b65c: 4b22 ldr r3, [pc, #136] ; (1b6e8 <ssd1963_init+0x798>)
1b65e: 781b ldrb r3, [r3, #0]
1b660: 2b00 cmp r3, #0
1b662: d005 beq.n 1b670 <ssd1963_init+0x720>
port_base->OUTSET.reg = pin_mask;
1b664: 3a20 subs r2, #32
1b666: 4b1f ldr r3, [pc, #124] ; (1b6e4 <ssd1963_init+0x794>)
1b668: 619a str r2, [r3, #24]
cmd_mode = false;
1b66a: 2200 movs r2, #0
1b66c: 4b1e ldr r3, [pc, #120] ; (1b6e8 <ssd1963_init+0x798>)
1b66e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b670: 2200 movs r2, #0
1b672: 491e ldr r1, [pc, #120] ; (1b6ec <ssd1963_init+0x79c>)
1b674: 481e ldr r0, [pc, #120] ; (1b6f0 <ssd1963_init+0x7a0>)
1b676: 4b1f ldr r3, [pc, #124] ; (1b6f4 <ssd1963_init+0x7a4>)
1b678: 4798 blx r3
1b67a: 4b1a ldr r3, [pc, #104] ; (1b6e4 <ssd1963_init+0x794>)
1b67c: 2240 movs r2, #64 ; 0x40
1b67e: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b680: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b682: 4b19 ldr r3, [pc, #100] ; (1b6e8 <ssd1963_init+0x798>)
1b684: 781b ldrb r3, [r3, #0]
1b686: 2b00 cmp r3, #0
1b688: d005 beq.n 1b696 <ssd1963_init+0x746>
port_base->OUTSET.reg = pin_mask;
1b68a: 3a20 subs r2, #32
1b68c: 4b15 ldr r3, [pc, #84] ; (1b6e4 <ssd1963_init+0x794>)
1b68e: 619a str r2, [r3, #24]
cmd_mode = false;
1b690: 2200 movs r2, #0
1b692: 4b15 ldr r3, [pc, #84] ; (1b6e8 <ssd1963_init+0x798>)
1b694: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b696: 2200 movs r2, #0
1b698: 4914 ldr r1, [pc, #80] ; (1b6ec <ssd1963_init+0x79c>)
1b69a: 4815 ldr r0, [pc, #84] ; (1b6f0 <ssd1963_init+0x7a0>)
1b69c: 4b15 ldr r3, [pc, #84] ; (1b6f4 <ssd1963_init+0x7a4>)
1b69e: 4798 blx r3
1b6a0: 4b10 ldr r3, [pc, #64] ; (1b6e4 <ssd1963_init+0x794>)
1b6a2: 2240 movs r2, #64 ; 0x40
1b6a4: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b6a6: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b6a8: 4b0f ldr r3, [pc, #60] ; (1b6e8 <ssd1963_init+0x798>)
1b6aa: 781b ldrb r3, [r3, #0]
1b6ac: 2b00 cmp r3, #0
1b6ae: d105 bne.n 1b6bc <ssd1963_init+0x76c>
1b6b0: 3a20 subs r2, #32
1b6b2: 4b0c ldr r3, [pc, #48] ; (1b6e4 <ssd1963_init+0x794>)
1b6b4: 615a str r2, [r3, #20]
cmd_mode = true;
1b6b6: 3a1f subs r2, #31
1b6b8: 4b0b ldr r3, [pc, #44] ; (1b6e8 <ssd1963_init+0x798>)
1b6ba: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b6bc: 22b6 movs r2, #182 ; 0xb6
1b6be: 490b ldr r1, [pc, #44] ; (1b6ec <ssd1963_init+0x79c>)
1b6c0: 480b ldr r0, [pc, #44] ; (1b6f0 <ssd1963_init+0x7a0>)
1b6c2: 4b0c ldr r3, [pc, #48] ; (1b6f4 <ssd1963_init+0x7a4>)
1b6c4: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b6c6: 4b07 ldr r3, [pc, #28] ; (1b6e4 <ssd1963_init+0x794>)
1b6c8: 2240 movs r2, #64 ; 0x40
1b6ca: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b6cc: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b6ce: 4b06 ldr r3, [pc, #24] ; (1b6e8 <ssd1963_init+0x798>)
1b6d0: 781b ldrb r3, [r3, #0]
1b6d2: 2b00 cmp r3, #0
1b6d4: d016 beq.n 1b704 <ssd1963_init+0x7b4>
port_base->OUTSET.reg = pin_mask;
1b6d6: 3a20 subs r2, #32
1b6d8: 4b02 ldr r3, [pc, #8] ; (1b6e4 <ssd1963_init+0x794>)
1b6da: 619a str r2, [r3, #24]
cmd_mode = false;
1b6dc: 2200 movs r2, #0
1b6de: 4b02 ldr r3, [pc, #8] ; (1b6e8 <ssd1963_init+0x798>)
1b6e0: 701a strb r2, [r3, #0]
1b6e2: e00f b.n 1b704 <ssd1963_init+0x7b4>
1b6e4: 41004400 .word 0x41004400
1b6e8: 2000006c .word 0x2000006c
1b6ec: 0000ffff .word 0x0000ffff
1b6f0: 41004480 .word 0x41004480
1b6f4: 0001be6d .word 0x0001be6d
1b6f8: 00010d75 .word 0x00010d75
1b6fc: 00010d81 .word 0x00010d81
1b700: 00010da9 .word 0x00010da9
LV_DRV_DISP_PAR_WR_WORD(data);
1b704: 2201 movs r2, #1
1b706: 49e4 ldr r1, [pc, #912] ; (1ba98 <ssd1963_init+0xb48>)
1b708: 48e4 ldr r0, [pc, #912] ; (1ba9c <ssd1963_init+0xb4c>)
1b70a: 4be5 ldr r3, [pc, #916] ; (1baa0 <ssd1963_init+0xb50>)
1b70c: 4798 blx r3
1b70e: 4be5 ldr r3, [pc, #916] ; (1baa4 <ssd1963_init+0xb54>)
1b710: 2240 movs r2, #64 ; 0x40
1b712: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b714: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b716: 4be4 ldr r3, [pc, #912] ; (1baa8 <ssd1963_init+0xb58>)
1b718: 781b ldrb r3, [r3, #0]
1b71a: 2b00 cmp r3, #0
1b71c: d005 beq.n 1b72a <ssd1963_init+0x7da>
port_base->OUTSET.reg = pin_mask;
1b71e: 3a20 subs r2, #32
1b720: 4be0 ldr r3, [pc, #896] ; (1baa4 <ssd1963_init+0xb54>)
1b722: 619a str r2, [r3, #24]
cmd_mode = false;
1b724: 2200 movs r2, #0
1b726: 4be0 ldr r3, [pc, #896] ; (1baa8 <ssd1963_init+0xb58>)
1b728: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b72a: 221d movs r2, #29
1b72c: 49da ldr r1, [pc, #872] ; (1ba98 <ssd1963_init+0xb48>)
1b72e: 48db ldr r0, [pc, #876] ; (1ba9c <ssd1963_init+0xb4c>)
1b730: 4bdb ldr r3, [pc, #876] ; (1baa0 <ssd1963_init+0xb50>)
1b732: 4798 blx r3
1b734: 4bdb ldr r3, [pc, #876] ; (1baa4 <ssd1963_init+0xb54>)
1b736: 2240 movs r2, #64 ; 0x40
1b738: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b73a: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b73c: 4bda ldr r3, [pc, #872] ; (1baa8 <ssd1963_init+0xb58>)
1b73e: 781b ldrb r3, [r3, #0]
1b740: 2b00 cmp r3, #0
1b742: d005 beq.n 1b750 <ssd1963_init+0x800>
port_base->OUTSET.reg = pin_mask;
1b744: 3a20 subs r2, #32
1b746: 4bd7 ldr r3, [pc, #860] ; (1baa4 <ssd1963_init+0xb54>)
1b748: 619a str r2, [r3, #24]
cmd_mode = false;
1b74a: 2200 movs r2, #0
1b74c: 4bd6 ldr r3, [pc, #856] ; (1baa8 <ssd1963_init+0xb58>)
1b74e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b750: 2200 movs r2, #0
1b752: 49d1 ldr r1, [pc, #836] ; (1ba98 <ssd1963_init+0xb48>)
1b754: 48d1 ldr r0, [pc, #836] ; (1ba9c <ssd1963_init+0xb4c>)
1b756: 4bd2 ldr r3, [pc, #840] ; (1baa0 <ssd1963_init+0xb50>)
1b758: 4798 blx r3
1b75a: 4bd2 ldr r3, [pc, #840] ; (1baa4 <ssd1963_init+0xb54>)
1b75c: 2240 movs r2, #64 ; 0x40
1b75e: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b760: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b762: 4bd1 ldr r3, [pc, #836] ; (1baa8 <ssd1963_init+0xb58>)
1b764: 781b ldrb r3, [r3, #0]
1b766: 2b00 cmp r3, #0
1b768: d005 beq.n 1b776 <ssd1963_init+0x826>
port_base->OUTSET.reg = pin_mask;
1b76a: 3a20 subs r2, #32
1b76c: 4bcd ldr r3, [pc, #820] ; (1baa4 <ssd1963_init+0xb54>)
1b76e: 619a str r2, [r3, #24]
cmd_mode = false;
1b770: 2200 movs r2, #0
1b772: 4bcd ldr r3, [pc, #820] ; (1baa8 <ssd1963_init+0xb58>)
1b774: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b776: 220c movs r2, #12
1b778: 49c7 ldr r1, [pc, #796] ; (1ba98 <ssd1963_init+0xb48>)
1b77a: 48c8 ldr r0, [pc, #800] ; (1ba9c <ssd1963_init+0xb4c>)
1b77c: 4bc8 ldr r3, [pc, #800] ; (1baa0 <ssd1963_init+0xb50>)
1b77e: 4798 blx r3
1b780: 4bc8 ldr r3, [pc, #800] ; (1baa4 <ssd1963_init+0xb54>)
1b782: 2240 movs r2, #64 ; 0x40
1b784: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b786: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b788: 4bc7 ldr r3, [pc, #796] ; (1baa8 <ssd1963_init+0xb58>)
1b78a: 781b ldrb r3, [r3, #0]
1b78c: 2b00 cmp r3, #0
1b78e: d005 beq.n 1b79c <ssd1963_init+0x84c>
port_base->OUTSET.reg = pin_mask;
1b790: 3a20 subs r2, #32
1b792: 4bc4 ldr r3, [pc, #784] ; (1baa4 <ssd1963_init+0xb54>)
1b794: 619a str r2, [r3, #24]
cmd_mode = false;
1b796: 2200 movs r2, #0
1b798: 4bc3 ldr r3, [pc, #780] ; (1baa8 <ssd1963_init+0xb58>)
1b79a: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b79c: 2209 movs r2, #9
1b79e: 49be ldr r1, [pc, #760] ; (1ba98 <ssd1963_init+0xb48>)
1b7a0: 48be ldr r0, [pc, #760] ; (1ba9c <ssd1963_init+0xb4c>)
1b7a2: 4bbf ldr r3, [pc, #764] ; (1baa0 <ssd1963_init+0xb50>)
1b7a4: 4798 blx r3
1b7a6: 4bbf ldr r3, [pc, #764] ; (1baa4 <ssd1963_init+0xb54>)
1b7a8: 2240 movs r2, #64 ; 0x40
1b7aa: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b7ac: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b7ae: 4bbe ldr r3, [pc, #760] ; (1baa8 <ssd1963_init+0xb58>)
1b7b0: 781b ldrb r3, [r3, #0]
1b7b2: 2b00 cmp r3, #0
1b7b4: d005 beq.n 1b7c2 <ssd1963_init+0x872>
port_base->OUTSET.reg = pin_mask;
1b7b6: 3a20 subs r2, #32
1b7b8: 4bba ldr r3, [pc, #744] ; (1baa4 <ssd1963_init+0xb54>)
1b7ba: 619a str r2, [r3, #24]
cmd_mode = false;
1b7bc: 2200 movs r2, #0
1b7be: 4bba ldr r3, [pc, #744] ; (1baa8 <ssd1963_init+0xb58>)
1b7c0: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b7c2: 2200 movs r2, #0
1b7c4: 49b4 ldr r1, [pc, #720] ; (1ba98 <ssd1963_init+0xb48>)
1b7c6: 48b5 ldr r0, [pc, #724] ; (1ba9c <ssd1963_init+0xb4c>)
1b7c8: 4bb5 ldr r3, [pc, #724] ; (1baa0 <ssd1963_init+0xb50>)
1b7ca: 4798 blx r3
1b7cc: 4bb5 ldr r3, [pc, #724] ; (1baa4 <ssd1963_init+0xb54>)
1b7ce: 2240 movs r2, #64 ; 0x40
1b7d0: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b7d2: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b7d4: 4bb4 ldr r3, [pc, #720] ; (1baa8 <ssd1963_init+0xb58>)
1b7d6: 781b ldrb r3, [r3, #0]
1b7d8: 2b00 cmp r3, #0
1b7da: d005 beq.n 1b7e8 <ssd1963_init+0x898>
port_base->OUTSET.reg = pin_mask;
1b7dc: 3a20 subs r2, #32
1b7de: 4bb1 ldr r3, [pc, #708] ; (1baa4 <ssd1963_init+0xb54>)
1b7e0: 619a str r2, [r3, #24]
cmd_mode = false;
1b7e2: 2200 movs r2, #0
1b7e4: 4bb0 ldr r3, [pc, #704] ; (1baa8 <ssd1963_init+0xb58>)
1b7e6: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b7e8: 2200 movs r2, #0
1b7ea: 49ab ldr r1, [pc, #684] ; (1ba98 <ssd1963_init+0xb48>)
1b7ec: 48ab ldr r0, [pc, #684] ; (1ba9c <ssd1963_init+0xb4c>)
1b7ee: 4bac ldr r3, [pc, #688] ; (1baa0 <ssd1963_init+0xb50>)
1b7f0: 4798 blx r3
1b7f2: 4bac ldr r3, [pc, #688] ; (1baa4 <ssd1963_init+0xb54>)
1b7f4: 2240 movs r2, #64 ; 0x40
1b7f6: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b7f8: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b7fa: 4bab ldr r3, [pc, #684] ; (1baa8 <ssd1963_init+0xb58>)
1b7fc: 781b ldrb r3, [r3, #0]
1b7fe: 2b00 cmp r3, #0
1b800: d105 bne.n 1b80e <ssd1963_init+0x8be>
1b802: 3a20 subs r2, #32
1b804: 4ba7 ldr r3, [pc, #668] ; (1baa4 <ssd1963_init+0xb54>)
1b806: 615a str r2, [r3, #20]
cmd_mode = true;
1b808: 3a1f subs r2, #31
1b80a: 4ba7 ldr r3, [pc, #668] ; (1baa8 <ssd1963_init+0xb58>)
1b80c: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b80e: 222a movs r2, #42 ; 0x2a
1b810: 49a1 ldr r1, [pc, #644] ; (1ba98 <ssd1963_init+0xb48>)
1b812: 48a2 ldr r0, [pc, #648] ; (1ba9c <ssd1963_init+0xb4c>)
1b814: 4ba2 ldr r3, [pc, #648] ; (1baa0 <ssd1963_init+0xb50>)
1b816: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b818: 4ba2 ldr r3, [pc, #648] ; (1baa4 <ssd1963_init+0xb54>)
1b81a: 2240 movs r2, #64 ; 0x40
1b81c: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b81e: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b820: 4ba1 ldr r3, [pc, #644] ; (1baa8 <ssd1963_init+0xb58>)
1b822: 781b ldrb r3, [r3, #0]
1b824: 2b00 cmp r3, #0
1b826: d005 beq.n 1b834 <ssd1963_init+0x8e4>
port_base->OUTSET.reg = pin_mask;
1b828: 3a20 subs r2, #32
1b82a: 4b9e ldr r3, [pc, #632] ; (1baa4 <ssd1963_init+0xb54>)
1b82c: 619a str r2, [r3, #24]
cmd_mode = false;
1b82e: 2200 movs r2, #0
1b830: 4b9d ldr r3, [pc, #628] ; (1baa8 <ssd1963_init+0xb58>)
1b832: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b834: 2200 movs r2, #0
1b836: 4998 ldr r1, [pc, #608] ; (1ba98 <ssd1963_init+0xb48>)
1b838: 4898 ldr r0, [pc, #608] ; (1ba9c <ssd1963_init+0xb4c>)
1b83a: 4b99 ldr r3, [pc, #612] ; (1baa0 <ssd1963_init+0xb50>)
1b83c: 4798 blx r3
1b83e: 4b99 ldr r3, [pc, #612] ; (1baa4 <ssd1963_init+0xb54>)
1b840: 2240 movs r2, #64 ; 0x40
1b842: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b844: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b846: 4b98 ldr r3, [pc, #608] ; (1baa8 <ssd1963_init+0xb58>)
1b848: 781b ldrb r3, [r3, #0]
1b84a: 2b00 cmp r3, #0
1b84c: d005 beq.n 1b85a <ssd1963_init+0x90a>
port_base->OUTSET.reg = pin_mask;
1b84e: 3a20 subs r2, #32
1b850: 4b94 ldr r3, [pc, #592] ; (1baa4 <ssd1963_init+0xb54>)
1b852: 619a str r2, [r3, #24]
cmd_mode = false;
1b854: 2200 movs r2, #0
1b856: 4b94 ldr r3, [pc, #592] ; (1baa8 <ssd1963_init+0xb58>)
1b858: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b85a: 2200 movs r2, #0
1b85c: 498e ldr r1, [pc, #568] ; (1ba98 <ssd1963_init+0xb48>)
1b85e: 488f ldr r0, [pc, #572] ; (1ba9c <ssd1963_init+0xb4c>)
1b860: 4b8f ldr r3, [pc, #572] ; (1baa0 <ssd1963_init+0xb50>)
1b862: 4798 blx r3
1b864: 4b8f ldr r3, [pc, #572] ; (1baa4 <ssd1963_init+0xb54>)
1b866: 2240 movs r2, #64 ; 0x40
1b868: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b86a: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b86c: 4b8e ldr r3, [pc, #568] ; (1baa8 <ssd1963_init+0xb58>)
1b86e: 781b ldrb r3, [r3, #0]
1b870: 2b00 cmp r3, #0
1b872: d005 beq.n 1b880 <ssd1963_init+0x930>
port_base->OUTSET.reg = pin_mask;
1b874: 3a20 subs r2, #32
1b876: 4b8b ldr r3, [pc, #556] ; (1baa4 <ssd1963_init+0xb54>)
1b878: 619a str r2, [r3, #24]
cmd_mode = false;
1b87a: 2200 movs r2, #0
1b87c: 4b8a ldr r3, [pc, #552] ; (1baa8 <ssd1963_init+0xb58>)
1b87e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b880: 2201 movs r2, #1
1b882: 4985 ldr r1, [pc, #532] ; (1ba98 <ssd1963_init+0xb48>)
1b884: 4885 ldr r0, [pc, #532] ; (1ba9c <ssd1963_init+0xb4c>)
1b886: 4b86 ldr r3, [pc, #536] ; (1baa0 <ssd1963_init+0xb50>)
1b888: 4798 blx r3
1b88a: 4b86 ldr r3, [pc, #536] ; (1baa4 <ssd1963_init+0xb54>)
1b88c: 2240 movs r2, #64 ; 0x40
1b88e: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b890: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b892: 4b85 ldr r3, [pc, #532] ; (1baa8 <ssd1963_init+0xb58>)
1b894: 781b ldrb r3, [r3, #0]
1b896: 2b00 cmp r3, #0
1b898: d005 beq.n 1b8a6 <ssd1963_init+0x956>
port_base->OUTSET.reg = pin_mask;
1b89a: 3a20 subs r2, #32
1b89c: 4b81 ldr r3, [pc, #516] ; (1baa4 <ssd1963_init+0xb54>)
1b89e: 619a str r2, [r3, #24]
cmd_mode = false;
1b8a0: 2200 movs r2, #0
1b8a2: 4b81 ldr r3, [pc, #516] ; (1baa8 <ssd1963_init+0xb58>)
1b8a4: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b8a6: 22df movs r2, #223 ; 0xdf
1b8a8: 497b ldr r1, [pc, #492] ; (1ba98 <ssd1963_init+0xb48>)
1b8aa: 487c ldr r0, [pc, #496] ; (1ba9c <ssd1963_init+0xb4c>)
1b8ac: 4b7c ldr r3, [pc, #496] ; (1baa0 <ssd1963_init+0xb50>)
1b8ae: 4798 blx r3
1b8b0: 4b7c ldr r3, [pc, #496] ; (1baa4 <ssd1963_init+0xb54>)
1b8b2: 2240 movs r2, #64 ; 0x40
1b8b4: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b8b6: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b8b8: 4b7b ldr r3, [pc, #492] ; (1baa8 <ssd1963_init+0xb58>)
1b8ba: 781b ldrb r3, [r3, #0]
1b8bc: 2b00 cmp r3, #0
1b8be: d105 bne.n 1b8cc <ssd1963_init+0x97c>
1b8c0: 3a20 subs r2, #32
1b8c2: 4b78 ldr r3, [pc, #480] ; (1baa4 <ssd1963_init+0xb54>)
1b8c4: 615a str r2, [r3, #20]
cmd_mode = true;
1b8c6: 3a1f subs r2, #31
1b8c8: 4b77 ldr r3, [pc, #476] ; (1baa8 <ssd1963_init+0xb58>)
1b8ca: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b8cc: 222b movs r2, #43 ; 0x2b
1b8ce: 4972 ldr r1, [pc, #456] ; (1ba98 <ssd1963_init+0xb48>)
1b8d0: 4872 ldr r0, [pc, #456] ; (1ba9c <ssd1963_init+0xb4c>)
1b8d2: 4b73 ldr r3, [pc, #460] ; (1baa0 <ssd1963_init+0xb50>)
1b8d4: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b8d6: 4b73 ldr r3, [pc, #460] ; (1baa4 <ssd1963_init+0xb54>)
1b8d8: 2240 movs r2, #64 ; 0x40
1b8da: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b8dc: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b8de: 4b72 ldr r3, [pc, #456] ; (1baa8 <ssd1963_init+0xb58>)
1b8e0: 781b ldrb r3, [r3, #0]
1b8e2: 2b00 cmp r3, #0
1b8e4: d005 beq.n 1b8f2 <ssd1963_init+0x9a2>
port_base->OUTSET.reg = pin_mask;
1b8e6: 3a20 subs r2, #32
1b8e8: 4b6e ldr r3, [pc, #440] ; (1baa4 <ssd1963_init+0xb54>)
1b8ea: 619a str r2, [r3, #24]
cmd_mode = false;
1b8ec: 2200 movs r2, #0
1b8ee: 4b6e ldr r3, [pc, #440] ; (1baa8 <ssd1963_init+0xb58>)
1b8f0: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b8f2: 2200 movs r2, #0
1b8f4: 4968 ldr r1, [pc, #416] ; (1ba98 <ssd1963_init+0xb48>)
1b8f6: 4869 ldr r0, [pc, #420] ; (1ba9c <ssd1963_init+0xb4c>)
1b8f8: 4b69 ldr r3, [pc, #420] ; (1baa0 <ssd1963_init+0xb50>)
1b8fa: 4798 blx r3
1b8fc: 4b69 ldr r3, [pc, #420] ; (1baa4 <ssd1963_init+0xb54>)
1b8fe: 2240 movs r2, #64 ; 0x40
1b900: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b902: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b904: 4b68 ldr r3, [pc, #416] ; (1baa8 <ssd1963_init+0xb58>)
1b906: 781b ldrb r3, [r3, #0]
1b908: 2b00 cmp r3, #0
1b90a: d005 beq.n 1b918 <ssd1963_init+0x9c8>
port_base->OUTSET.reg = pin_mask;
1b90c: 3a20 subs r2, #32
1b90e: 4b65 ldr r3, [pc, #404] ; (1baa4 <ssd1963_init+0xb54>)
1b910: 619a str r2, [r3, #24]
cmd_mode = false;
1b912: 2200 movs r2, #0
1b914: 4b64 ldr r3, [pc, #400] ; (1baa8 <ssd1963_init+0xb58>)
1b916: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b918: 2200 movs r2, #0
1b91a: 495f ldr r1, [pc, #380] ; (1ba98 <ssd1963_init+0xb48>)
1b91c: 485f ldr r0, [pc, #380] ; (1ba9c <ssd1963_init+0xb4c>)
1b91e: 4b60 ldr r3, [pc, #384] ; (1baa0 <ssd1963_init+0xb50>)
1b920: 4798 blx r3
1b922: 4b60 ldr r3, [pc, #384] ; (1baa4 <ssd1963_init+0xb54>)
1b924: 2240 movs r2, #64 ; 0x40
1b926: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b928: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b92a: 4b5f ldr r3, [pc, #380] ; (1baa8 <ssd1963_init+0xb58>)
1b92c: 781b ldrb r3, [r3, #0]
1b92e: 2b00 cmp r3, #0
1b930: d005 beq.n 1b93e <ssd1963_init+0x9ee>
port_base->OUTSET.reg = pin_mask;
1b932: 3a20 subs r2, #32
1b934: 4b5b ldr r3, [pc, #364] ; (1baa4 <ssd1963_init+0xb54>)
1b936: 619a str r2, [r3, #24]
cmd_mode = false;
1b938: 2200 movs r2, #0
1b93a: 4b5b ldr r3, [pc, #364] ; (1baa8 <ssd1963_init+0xb58>)
1b93c: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b93e: 2201 movs r2, #1
1b940: 4955 ldr r1, [pc, #340] ; (1ba98 <ssd1963_init+0xb48>)
1b942: 4856 ldr r0, [pc, #344] ; (1ba9c <ssd1963_init+0xb4c>)
1b944: 4b56 ldr r3, [pc, #344] ; (1baa0 <ssd1963_init+0xb50>)
1b946: 4798 blx r3
1b948: 4b56 ldr r3, [pc, #344] ; (1baa4 <ssd1963_init+0xb54>)
1b94a: 2240 movs r2, #64 ; 0x40
1b94c: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b94e: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b950: 4b55 ldr r3, [pc, #340] ; (1baa8 <ssd1963_init+0xb58>)
1b952: 781b ldrb r3, [r3, #0]
1b954: 2b00 cmp r3, #0
1b956: d005 beq.n 1b964 <ssd1963_init+0xa14>
port_base->OUTSET.reg = pin_mask;
1b958: 3a20 subs r2, #32
1b95a: 4b52 ldr r3, [pc, #328] ; (1baa4 <ssd1963_init+0xb54>)
1b95c: 619a str r2, [r3, #24]
cmd_mode = false;
1b95e: 2200 movs r2, #0
1b960: 4b51 ldr r3, [pc, #324] ; (1baa8 <ssd1963_init+0xb58>)
1b962: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b964: 220f movs r2, #15
1b966: 494c ldr r1, [pc, #304] ; (1ba98 <ssd1963_init+0xb48>)
1b968: 484c ldr r0, [pc, #304] ; (1ba9c <ssd1963_init+0xb4c>)
1b96a: 4b4d ldr r3, [pc, #308] ; (1baa0 <ssd1963_init+0xb50>)
1b96c: 4798 blx r3
1b96e: 4b4d ldr r3, [pc, #308] ; (1baa4 <ssd1963_init+0xb54>)
1b970: 2240 movs r2, #64 ; 0x40
1b972: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b974: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b976: 4b4c ldr r3, [pc, #304] ; (1baa8 <ssd1963_init+0xb58>)
1b978: 781b ldrb r3, [r3, #0]
1b97a: 2b00 cmp r3, #0
1b97c: d105 bne.n 1b98a <ssd1963_init+0xa3a>
1b97e: 3a20 subs r2, #32
1b980: 4b48 ldr r3, [pc, #288] ; (1baa4 <ssd1963_init+0xb54>)
1b982: 615a str r2, [r3, #20]
cmd_mode = true;
1b984: 3a1f subs r2, #31
1b986: 4b48 ldr r3, [pc, #288] ; (1baa8 <ssd1963_init+0xb58>)
1b988: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b98a: 2229 movs r2, #41 ; 0x29
1b98c: 4942 ldr r1, [pc, #264] ; (1ba98 <ssd1963_init+0xb48>)
1b98e: 4843 ldr r0, [pc, #268] ; (1ba9c <ssd1963_init+0xb4c>)
1b990: 4b43 ldr r3, [pc, #268] ; (1baa0 <ssd1963_init+0xb50>)
1b992: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b994: 4b43 ldr r3, [pc, #268] ; (1baa4 <ssd1963_init+0xb54>)
1b996: 2240 movs r2, #64 ; 0x40
1b998: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b99a: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1b99c: 4b42 ldr r3, [pc, #264] ; (1baa8 <ssd1963_init+0xb58>)
1b99e: 781b ldrb r3, [r3, #0]
1b9a0: 2b00 cmp r3, #0
1b9a2: d105 bne.n 1b9b0 <ssd1963_init+0xa60>
1b9a4: 3a20 subs r2, #32
1b9a6: 4b3f ldr r3, [pc, #252] ; (1baa4 <ssd1963_init+0xb54>)
1b9a8: 615a str r2, [r3, #20]
cmd_mode = true;
1b9aa: 3a1f subs r2, #31
1b9ac: 4b3e ldr r3, [pc, #248] ; (1baa8 <ssd1963_init+0xb58>)
1b9ae: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1b9b0: 22be movs r2, #190 ; 0xbe
1b9b2: 4939 ldr r1, [pc, #228] ; (1ba98 <ssd1963_init+0xb48>)
1b9b4: 4839 ldr r0, [pc, #228] ; (1ba9c <ssd1963_init+0xb4c>)
1b9b6: 4b3a ldr r3, [pc, #232] ; (1baa0 <ssd1963_init+0xb50>)
1b9b8: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1b9ba: 4b3a ldr r3, [pc, #232] ; (1baa4 <ssd1963_init+0xb54>)
1b9bc: 2240 movs r2, #64 ; 0x40
1b9be: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b9c0: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b9c2: 4b39 ldr r3, [pc, #228] ; (1baa8 <ssd1963_init+0xb58>)
1b9c4: 781b ldrb r3, [r3, #0]
1b9c6: 2b00 cmp r3, #0
1b9c8: d005 beq.n 1b9d6 <ssd1963_init+0xa86>
port_base->OUTSET.reg = pin_mask;
1b9ca: 3a20 subs r2, #32
1b9cc: 4b35 ldr r3, [pc, #212] ; (1baa4 <ssd1963_init+0xb54>)
1b9ce: 619a str r2, [r3, #24]
cmd_mode = false;
1b9d0: 2200 movs r2, #0
1b9d2: 4b35 ldr r3, [pc, #212] ; (1baa8 <ssd1963_init+0xb58>)
1b9d4: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b9d6: 2206 movs r2, #6
1b9d8: 492f ldr r1, [pc, #188] ; (1ba98 <ssd1963_init+0xb48>)
1b9da: 4830 ldr r0, [pc, #192] ; (1ba9c <ssd1963_init+0xb4c>)
1b9dc: 4b30 ldr r3, [pc, #192] ; (1baa0 <ssd1963_init+0xb50>)
1b9de: 4798 blx r3
1b9e0: 4b30 ldr r3, [pc, #192] ; (1baa4 <ssd1963_init+0xb54>)
1b9e2: 2240 movs r2, #64 ; 0x40
1b9e4: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1b9e6: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1b9e8: 4b2f ldr r3, [pc, #188] ; (1baa8 <ssd1963_init+0xb58>)
1b9ea: 781b ldrb r3, [r3, #0]
1b9ec: 2b00 cmp r3, #0
1b9ee: d005 beq.n 1b9fc <ssd1963_init+0xaac>
port_base->OUTSET.reg = pin_mask;
1b9f0: 3a20 subs r2, #32
1b9f2: 4b2c ldr r3, [pc, #176] ; (1baa4 <ssd1963_init+0xb54>)
1b9f4: 619a str r2, [r3, #24]
cmd_mode = false;
1b9f6: 2200 movs r2, #0
1b9f8: 4b2b ldr r3, [pc, #172] ; (1baa8 <ssd1963_init+0xb58>)
1b9fa: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1b9fc: 22ff movs r2, #255 ; 0xff
1b9fe: 4926 ldr r1, [pc, #152] ; (1ba98 <ssd1963_init+0xb48>)
1ba00: 4826 ldr r0, [pc, #152] ; (1ba9c <ssd1963_init+0xb4c>)
1ba02: 4b27 ldr r3, [pc, #156] ; (1baa0 <ssd1963_init+0xb50>)
1ba04: 4798 blx r3
1ba06: 4b27 ldr r3, [pc, #156] ; (1baa4 <ssd1963_init+0xb54>)
1ba08: 2240 movs r2, #64 ; 0x40
1ba0a: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1ba0c: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1ba0e: 4b26 ldr r3, [pc, #152] ; (1baa8 <ssd1963_init+0xb58>)
1ba10: 781b ldrb r3, [r3, #0]
1ba12: 2b00 cmp r3, #0
1ba14: d005 beq.n 1ba22 <ssd1963_init+0xad2>
port_base->OUTSET.reg = pin_mask;
1ba16: 3a20 subs r2, #32
1ba18: 4b22 ldr r3, [pc, #136] ; (1baa4 <ssd1963_init+0xb54>)
1ba1a: 619a str r2, [r3, #24]
cmd_mode = false;
1ba1c: 2200 movs r2, #0
1ba1e: 4b22 ldr r3, [pc, #136] ; (1baa8 <ssd1963_init+0xb58>)
1ba20: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1ba22: 2201 movs r2, #1
1ba24: 491c ldr r1, [pc, #112] ; (1ba98 <ssd1963_init+0xb48>)
1ba26: 481d ldr r0, [pc, #116] ; (1ba9c <ssd1963_init+0xb4c>)
1ba28: 4b1d ldr r3, [pc, #116] ; (1baa0 <ssd1963_init+0xb50>)
1ba2a: 4798 blx r3
1ba2c: 4b1d ldr r3, [pc, #116] ; (1baa4 <ssd1963_init+0xb54>)
1ba2e: 2240 movs r2, #64 ; 0x40
1ba30: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1ba32: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1ba34: 4b1c ldr r3, [pc, #112] ; (1baa8 <ssd1963_init+0xb58>)
1ba36: 781b ldrb r3, [r3, #0]
1ba38: 2b00 cmp r3, #0
1ba3a: d005 beq.n 1ba48 <ssd1963_init+0xaf8>
port_base->OUTSET.reg = pin_mask;
1ba3c: 3a20 subs r2, #32
1ba3e: 4b19 ldr r3, [pc, #100] ; (1baa4 <ssd1963_init+0xb54>)
1ba40: 619a str r2, [r3, #24]
cmd_mode = false;
1ba42: 2200 movs r2, #0
1ba44: 4b18 ldr r3, [pc, #96] ; (1baa8 <ssd1963_init+0xb58>)
1ba46: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1ba48: 22ff movs r2, #255 ; 0xff
1ba4a: 4913 ldr r1, [pc, #76] ; (1ba98 <ssd1963_init+0xb48>)
1ba4c: 4813 ldr r0, [pc, #76] ; (1ba9c <ssd1963_init+0xb4c>)
1ba4e: 4b14 ldr r3, [pc, #80] ; (1baa0 <ssd1963_init+0xb50>)
1ba50: 4798 blx r3
1ba52: 4b14 ldr r3, [pc, #80] ; (1baa4 <ssd1963_init+0xb54>)
1ba54: 2240 movs r2, #64 ; 0x40
1ba56: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1ba58: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1ba5a: 4b13 ldr r3, [pc, #76] ; (1baa8 <ssd1963_init+0xb58>)
1ba5c: 781b ldrb r3, [r3, #0]
1ba5e: 2b00 cmp r3, #0
1ba60: d005 beq.n 1ba6e <ssd1963_init+0xb1e>
port_base->OUTSET.reg = pin_mask;
1ba62: 3a20 subs r2, #32
1ba64: 4b0f ldr r3, [pc, #60] ; (1baa4 <ssd1963_init+0xb54>)
1ba66: 619a str r2, [r3, #24]
cmd_mode = false;
1ba68: 2200 movs r2, #0
1ba6a: 4b0f ldr r3, [pc, #60] ; (1baa8 <ssd1963_init+0xb58>)
1ba6c: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1ba6e: 2200 movs r2, #0
1ba70: 4909 ldr r1, [pc, #36] ; (1ba98 <ssd1963_init+0xb48>)
1ba72: 480a ldr r0, [pc, #40] ; (1ba9c <ssd1963_init+0xb4c>)
1ba74: 4b0a ldr r3, [pc, #40] ; (1baa0 <ssd1963_init+0xb50>)
1ba76: 4798 blx r3
1ba78: 4b0a ldr r3, [pc, #40] ; (1baa4 <ssd1963_init+0xb54>)
1ba7a: 2240 movs r2, #64 ; 0x40
1ba7c: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1ba7e: 615a str r2, [r3, #20]
if(cmd_mode != false) {
1ba80: 4b09 ldr r3, [pc, #36] ; (1baa8 <ssd1963_init+0xb58>)
1ba82: 781b ldrb r3, [r3, #0]
1ba84: 2b00 cmp r3, #0
1ba86: d011 beq.n 1baac <ssd1963_init+0xb5c>
port_base->OUTSET.reg = pin_mask;
1ba88: 3a20 subs r2, #32
1ba8a: 4b06 ldr r3, [pc, #24] ; (1baa4 <ssd1963_init+0xb54>)
1ba8c: 619a str r2, [r3, #24]
cmd_mode = false;
1ba8e: 2200 movs r2, #0
1ba90: 4b05 ldr r3, [pc, #20] ; (1baa8 <ssd1963_init+0xb58>)
1ba92: 701a strb r2, [r3, #0]
1ba94: e00a b.n 1baac <ssd1963_init+0xb5c>
1ba96: 46c0 nop ; (mov r8, r8)
1ba98: 0000ffff .word 0x0000ffff
1ba9c: 41004480 .word 0x41004480
1baa0: 0001be6d .word 0x0001be6d
1baa4: 41004400 .word 0x41004400
1baa8: 2000006c .word 0x2000006c
LV_DRV_DISP_PAR_WR_WORD(data);
1baac: 2201 movs r2, #1
1baae: 4907 ldr r1, [pc, #28] ; (1bacc <ssd1963_init+0xb7c>)
1bab0: 4807 ldr r0, [pc, #28] ; (1bad0 <ssd1963_init+0xb80>)
1bab2: 4b08 ldr r3, [pc, #32] ; (1bad4 <ssd1963_init+0xb84>)
1bab4: 4798 blx r3
1bab6: 4b08 ldr r3, [pc, #32] ; (1bad8 <ssd1963_init+0xb88>)
1bab8: 2240 movs r2, #64 ; 0x40
1baba: 619a str r2, [r3, #24]
1babc: 619a str r2, [r3, #24]
}
1babe: bc3c pop {r2, r3, r4, r5}
1bac0: 4690 mov r8, r2
1bac2: 4699 mov r9, r3
1bac4: 46a2 mov sl, r4
1bac6: 46ab mov fp, r5
1bac8: bdf8 pop {r3, r4, r5, r6, r7, pc}
1baca: 46c0 nop ; (mov r8, r8)
1bacc: 0000ffff .word 0x0000ffff
1bad0: 41004480 .word 0x41004480
1bad4: 0001be6d .word 0x0001be6d
1bad8: 41004400 .word 0x41004400
0001badc <ssd1963_flush>:
{
1badc: b5f0 push {r4, r5, r6, r7, lr}
1bade: 46de mov lr, fp
1bae0: 4657 mov r7, sl
1bae2: 464e mov r6, r9
1bae4: 4645 mov r5, r8
1bae6: b5e0 push {r5, r6, r7, lr}
1bae8: b083 sub sp, #12
1baea: 9000 str r0, [sp, #0]
1baec: 000f movs r7, r1
1baee: 0016 movs r6, r2
if(area->x2 < 0) return;
1baf0: 2204 movs r2, #4
1baf2: 5e8b ldrsh r3, [r1, r2]
1baf4: 2b00 cmp r3, #0
1baf6: db0c blt.n 1bb12 <ssd1963_flush+0x36>
if(area->y2 < 0) return;
1baf8: 2206 movs r2, #6
1bafa: 5e8b ldrsh r3, [r1, r2]
1bafc: 2b00 cmp r3, #0
1bafe: db08 blt.n 1bb12 <ssd1963_flush+0x36>
if(area->x1 > SSD1963_HOR_RES - 1) return;
1bb00: 2300 movs r3, #0
1bb02: 5ecc ldrsh r4, [r1, r3]
1bb04: 4bb3 ldr r3, [pc, #716] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bb06: 4798 blx r3
1bb08: 4bb3 ldr r3, [pc, #716] ; (1bdd8 <ssd1963_flush+0x2fc>)
1bb0a: 4798 blx r3
1bb0c: 3801 subs r0, #1
1bb0e: 4284 cmp r4, r0
1bb10: dd06 ble.n 1bb20 <ssd1963_flush+0x44>
}
1bb12: b003 add sp, #12
1bb14: bc3c pop {r2, r3, r4, r5}
1bb16: 4690 mov r8, r2
1bb18: 4699 mov r9, r3
1bb1a: 46a2 mov sl, r4
1bb1c: 46ab mov fp, r5
1bb1e: bdf0 pop {r4, r5, r6, r7, pc}
if(area->y1 > SSD1963_VER_RES - 1) return;
1bb20: 2302 movs r3, #2
1bb22: 5efc ldrsh r4, [r7, r3]
1bb24: 4bab ldr r3, [pc, #684] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bb26: 4798 blx r3
1bb28: 4bac ldr r3, [pc, #688] ; (1bddc <ssd1963_flush+0x300>)
1bb2a: 4798 blx r3
1bb2c: 3801 subs r0, #1
1bb2e: 4284 cmp r4, r0
1bb30: dcef bgt.n 1bb12 <ssd1963_flush+0x36>
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
1bb32: 883b ldrh r3, [r7, #0]
1bb34: 1c1d adds r5, r3, #0
1bb36: b21b sxth r3, r3
1bb38: 2b00 cmp r3, #0
1bb3a: da00 bge.n 1bb3e <ssd1963_flush+0x62>
1bb3c: e138 b.n 1bdb0 <ssd1963_flush+0x2d4>
1bb3e: b22b sxth r3, r5
1bb40: 4699 mov r9, r3
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
1bb42: 887b ldrh r3, [r7, #2]
1bb44: 1c1c adds r4, r3, #0
1bb46: b21b sxth r3, r3
1bb48: 2b00 cmp r3, #0
1bb4a: da00 bge.n 1bb4e <ssd1963_flush+0x72>
1bb4c: e132 b.n 1bdb4 <ssd1963_flush+0x2d8>
1bb4e: b224 sxth r4, r4
1bb50: 46a3 mov fp, r4
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1bb52: 2304 movs r3, #4
1bb54: 5efd ldrsh r5, [r7, r3]
1bb56: 4b9f ldr r3, [pc, #636] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bb58: 4798 blx r3
1bb5a: 4b9f ldr r3, [pc, #636] ; (1bdd8 <ssd1963_flush+0x2fc>)
1bb5c: 4798 blx r3
1bb5e: 3801 subs r0, #1
1bb60: 4285 cmp r5, r0
1bb62: dd00 ble.n 1bb66 <ssd1963_flush+0x8a>
1bb64: e128 b.n 1bdb8 <ssd1963_flush+0x2dc>
1bb66: 2304 movs r3, #4
1bb68: 5efd ldrsh r5, [r7, r3]
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
1bb6a: 2206 movs r2, #6
1bb6c: 5ebb ldrsh r3, [r7, r2]
1bb6e: 469a mov sl, r3
1bb70: 4b98 ldr r3, [pc, #608] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bb72: 4798 blx r3
1bb74: 4b99 ldr r3, [pc, #612] ; (1bddc <ssd1963_flush+0x300>)
1bb76: 4798 blx r3
1bb78: 3801 subs r0, #1
1bb7a: 4582 cmp sl, r0
1bb7c: dd00 ble.n 1bb80 <ssd1963_flush+0xa4>
1bb7e: e121 b.n 1bdc4 <ssd1963_flush+0x2e8>
1bb80: 2206 movs r2, #6
1bb82: 5ebb ldrsh r3, [r7, r2]
1bb84: 469a mov sl, r3
port_base->OUTCLR.reg = pin_mask;
1bb86: 2240 movs r2, #64 ; 0x40
1bb88: 4b95 ldr r3, [pc, #596] ; (1bde0 <ssd1963_flush+0x304>)
1bb8a: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1bb8c: 4b95 ldr r3, [pc, #596] ; (1bde4 <ssd1963_flush+0x308>)
1bb8e: 781b ldrb r3, [r3, #0]
1bb90: 2b00 cmp r3, #0
1bb92: d105 bne.n 1bba0 <ssd1963_flush+0xc4>
1bb94: 3a20 subs r2, #32
1bb96: 4b92 ldr r3, [pc, #584] ; (1bde0 <ssd1963_flush+0x304>)
1bb98: 615a str r2, [r3, #20]
cmd_mode = true;
1bb9a: 3a1f subs r2, #31
1bb9c: 4b91 ldr r3, [pc, #580] ; (1bde4 <ssd1963_flush+0x308>)
1bb9e: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1bba0: 222a movs r2, #42 ; 0x2a
1bba2: 4991 ldr r1, [pc, #580] ; (1bde8 <ssd1963_flush+0x30c>)
1bba4: 4891 ldr r0, [pc, #580] ; (1bdec <ssd1963_flush+0x310>)
1bba6: 4b92 ldr r3, [pc, #584] ; (1bdf0 <ssd1963_flush+0x314>)
1bba8: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1bbaa: 4b8d ldr r3, [pc, #564] ; (1bde0 <ssd1963_flush+0x304>)
1bbac: 2140 movs r1, #64 ; 0x40
1bbae: 6199 str r1, [r3, #24]
ssd1963_data(act_x1 >> 8);
1bbb0: 464a mov r2, r9
1bbb2: 1212 asrs r2, r2, #8
1bbb4: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1bbb6: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bbb8: 4b8a ldr r3, [pc, #552] ; (1bde4 <ssd1963_flush+0x308>)
1bbba: 781b ldrb r3, [r3, #0]
1bbbc: 2b00 cmp r3, #0
1bbbe: d005 beq.n 1bbcc <ssd1963_flush+0xf0>
port_base->OUTSET.reg = pin_mask;
1bbc0: 3920 subs r1, #32
1bbc2: 4b87 ldr r3, [pc, #540] ; (1bde0 <ssd1963_flush+0x304>)
1bbc4: 6199 str r1, [r3, #24]
cmd_mode = false;
1bbc6: 2100 movs r1, #0
1bbc8: 4b86 ldr r3, [pc, #536] ; (1bde4 <ssd1963_flush+0x308>)
1bbca: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bbcc: 4986 ldr r1, [pc, #536] ; (1bde8 <ssd1963_flush+0x30c>)
1bbce: 4887 ldr r0, [pc, #540] ; (1bdec <ssd1963_flush+0x310>)
1bbd0: 4b87 ldr r3, [pc, #540] ; (1bdf0 <ssd1963_flush+0x314>)
1bbd2: 4798 blx r3
1bbd4: 4b82 ldr r3, [pc, #520] ; (1bde0 <ssd1963_flush+0x304>)
1bbd6: 2140 movs r1, #64 ; 0x40
1bbd8: 6199 str r1, [r3, #24]
ssd1963_data(0x00FF & act_x1);
1bbda: 464a mov r2, r9
1bbdc: 4668 mov r0, sp
1bbde: 8082 strh r2, [r0, #4]
1bbe0: 8882 ldrh r2, [r0, #4]
1bbe2: 4691 mov r9, r2
1bbe4: 22ff movs r2, #255 ; 0xff
1bbe6: 4648 mov r0, r9
1bbe8: 4002 ands r2, r0
port_base->OUTCLR.reg = pin_mask;
1bbea: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bbec: 4b7d ldr r3, [pc, #500] ; (1bde4 <ssd1963_flush+0x308>)
1bbee: 781b ldrb r3, [r3, #0]
1bbf0: 2b00 cmp r3, #0
1bbf2: d005 beq.n 1bc00 <ssd1963_flush+0x124>
port_base->OUTSET.reg = pin_mask;
1bbf4: 3920 subs r1, #32
1bbf6: 4b7a ldr r3, [pc, #488] ; (1bde0 <ssd1963_flush+0x304>)
1bbf8: 6199 str r1, [r3, #24]
cmd_mode = false;
1bbfa: 2100 movs r1, #0
1bbfc: 4b79 ldr r3, [pc, #484] ; (1bde4 <ssd1963_flush+0x308>)
1bbfe: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bc00: 4979 ldr r1, [pc, #484] ; (1bde8 <ssd1963_flush+0x30c>)
1bc02: 487a ldr r0, [pc, #488] ; (1bdec <ssd1963_flush+0x310>)
1bc04: 4b7a ldr r3, [pc, #488] ; (1bdf0 <ssd1963_flush+0x314>)
1bc06: 4798 blx r3
1bc08: 4b75 ldr r3, [pc, #468] ; (1bde0 <ssd1963_flush+0x304>)
1bc0a: 2140 movs r1, #64 ; 0x40
1bc0c: 6199 str r1, [r3, #24]
ssd1963_data(act_x2 >> 8);
1bc0e: 122a asrs r2, r5, #8
1bc10: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1bc12: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bc14: 4b73 ldr r3, [pc, #460] ; (1bde4 <ssd1963_flush+0x308>)
1bc16: 781b ldrb r3, [r3, #0]
1bc18: 2b00 cmp r3, #0
1bc1a: d005 beq.n 1bc28 <ssd1963_flush+0x14c>
port_base->OUTSET.reg = pin_mask;
1bc1c: 3920 subs r1, #32
1bc1e: 4b70 ldr r3, [pc, #448] ; (1bde0 <ssd1963_flush+0x304>)
1bc20: 6199 str r1, [r3, #24]
cmd_mode = false;
1bc22: 2100 movs r1, #0
1bc24: 4b6f ldr r3, [pc, #444] ; (1bde4 <ssd1963_flush+0x308>)
1bc26: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bc28: 496f ldr r1, [pc, #444] ; (1bde8 <ssd1963_flush+0x30c>)
1bc2a: 4870 ldr r0, [pc, #448] ; (1bdec <ssd1963_flush+0x310>)
1bc2c: 4b70 ldr r3, [pc, #448] ; (1bdf0 <ssd1963_flush+0x314>)
1bc2e: 4798 blx r3
1bc30: 4b6b ldr r3, [pc, #428] ; (1bde0 <ssd1963_flush+0x304>)
1bc32: 2140 movs r1, #64 ; 0x40
1bc34: 6199 str r1, [r3, #24]
ssd1963_data(0x00FF & act_x2);
1bc36: b2ad uxth r5, r5
1bc38: 22ff movs r2, #255 ; 0xff
1bc3a: 402a ands r2, r5
port_base->OUTCLR.reg = pin_mask;
1bc3c: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bc3e: 4b69 ldr r3, [pc, #420] ; (1bde4 <ssd1963_flush+0x308>)
1bc40: 781b ldrb r3, [r3, #0]
1bc42: 2b00 cmp r3, #0
1bc44: d005 beq.n 1bc52 <ssd1963_flush+0x176>
port_base->OUTSET.reg = pin_mask;
1bc46: 3920 subs r1, #32
1bc48: 4b65 ldr r3, [pc, #404] ; (1bde0 <ssd1963_flush+0x304>)
1bc4a: 6199 str r1, [r3, #24]
cmd_mode = false;
1bc4c: 2100 movs r1, #0
1bc4e: 4b65 ldr r3, [pc, #404] ; (1bde4 <ssd1963_flush+0x308>)
1bc50: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bc52: 4965 ldr r1, [pc, #404] ; (1bde8 <ssd1963_flush+0x30c>)
1bc54: 4865 ldr r0, [pc, #404] ; (1bdec <ssd1963_flush+0x310>)
1bc56: 4b66 ldr r3, [pc, #408] ; (1bdf0 <ssd1963_flush+0x314>)
1bc58: 4798 blx r3
1bc5a: 4b61 ldr r3, [pc, #388] ; (1bde0 <ssd1963_flush+0x304>)
1bc5c: 2240 movs r2, #64 ; 0x40
1bc5e: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1bc60: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1bc62: 4b60 ldr r3, [pc, #384] ; (1bde4 <ssd1963_flush+0x308>)
1bc64: 781b ldrb r3, [r3, #0]
1bc66: 2b00 cmp r3, #0
1bc68: d105 bne.n 1bc76 <ssd1963_flush+0x19a>
1bc6a: 3a20 subs r2, #32
1bc6c: 4b5c ldr r3, [pc, #368] ; (1bde0 <ssd1963_flush+0x304>)
1bc6e: 615a str r2, [r3, #20]
cmd_mode = true;
1bc70: 3a1f subs r2, #31
1bc72: 4b5c ldr r3, [pc, #368] ; (1bde4 <ssd1963_flush+0x308>)
1bc74: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1bc76: 222b movs r2, #43 ; 0x2b
1bc78: 495b ldr r1, [pc, #364] ; (1bde8 <ssd1963_flush+0x30c>)
1bc7a: 485c ldr r0, [pc, #368] ; (1bdec <ssd1963_flush+0x310>)
1bc7c: 4b5c ldr r3, [pc, #368] ; (1bdf0 <ssd1963_flush+0x314>)
1bc7e: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1bc80: 4b57 ldr r3, [pc, #348] ; (1bde0 <ssd1963_flush+0x304>)
1bc82: 2140 movs r1, #64 ; 0x40
1bc84: 6199 str r1, [r3, #24]
ssd1963_data(act_y1 >> 8);
1bc86: 465a mov r2, fp
1bc88: 1212 asrs r2, r2, #8
1bc8a: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1bc8c: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bc8e: 4b55 ldr r3, [pc, #340] ; (1bde4 <ssd1963_flush+0x308>)
1bc90: 781b ldrb r3, [r3, #0]
1bc92: 2b00 cmp r3, #0
1bc94: d005 beq.n 1bca2 <ssd1963_flush+0x1c6>
port_base->OUTSET.reg = pin_mask;
1bc96: 3920 subs r1, #32
1bc98: 4b51 ldr r3, [pc, #324] ; (1bde0 <ssd1963_flush+0x304>)
1bc9a: 6199 str r1, [r3, #24]
cmd_mode = false;
1bc9c: 2100 movs r1, #0
1bc9e: 4b51 ldr r3, [pc, #324] ; (1bde4 <ssd1963_flush+0x308>)
1bca0: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bca2: 4951 ldr r1, [pc, #324] ; (1bde8 <ssd1963_flush+0x30c>)
1bca4: 4851 ldr r0, [pc, #324] ; (1bdec <ssd1963_flush+0x310>)
1bca6: 4b52 ldr r3, [pc, #328] ; (1bdf0 <ssd1963_flush+0x314>)
1bca8: 4798 blx r3
1bcaa: 4b4d ldr r3, [pc, #308] ; (1bde0 <ssd1963_flush+0x304>)
1bcac: 2140 movs r1, #64 ; 0x40
1bcae: 6199 str r1, [r3, #24]
ssd1963_data(0x00FF & act_y1);
1bcb0: 22ff movs r2, #255 ; 0xff
1bcb2: 4022 ands r2, r4
port_base->OUTCLR.reg = pin_mask;
1bcb4: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bcb6: 4b4b ldr r3, [pc, #300] ; (1bde4 <ssd1963_flush+0x308>)
1bcb8: 781b ldrb r3, [r3, #0]
1bcba: 2b00 cmp r3, #0
1bcbc: d005 beq.n 1bcca <ssd1963_flush+0x1ee>
port_base->OUTSET.reg = pin_mask;
1bcbe: 3920 subs r1, #32
1bcc0: 4b47 ldr r3, [pc, #284] ; (1bde0 <ssd1963_flush+0x304>)
1bcc2: 6199 str r1, [r3, #24]
cmd_mode = false;
1bcc4: 2100 movs r1, #0
1bcc6: 4b47 ldr r3, [pc, #284] ; (1bde4 <ssd1963_flush+0x308>)
1bcc8: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bcca: 4947 ldr r1, [pc, #284] ; (1bde8 <ssd1963_flush+0x30c>)
1bccc: 4847 ldr r0, [pc, #284] ; (1bdec <ssd1963_flush+0x310>)
1bcce: 4b48 ldr r3, [pc, #288] ; (1bdf0 <ssd1963_flush+0x314>)
1bcd0: 4798 blx r3
1bcd2: 4b43 ldr r3, [pc, #268] ; (1bde0 <ssd1963_flush+0x304>)
1bcd4: 2140 movs r1, #64 ; 0x40
1bcd6: 6199 str r1, [r3, #24]
ssd1963_data(act_y2 >> 8);
1bcd8: 4652 mov r2, sl
1bcda: 1212 asrs r2, r2, #8
1bcdc: b292 uxth r2, r2
port_base->OUTCLR.reg = pin_mask;
1bcde: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bce0: 4b40 ldr r3, [pc, #256] ; (1bde4 <ssd1963_flush+0x308>)
1bce2: 781b ldrb r3, [r3, #0]
1bce4: 2b00 cmp r3, #0
1bce6: d005 beq.n 1bcf4 <ssd1963_flush+0x218>
port_base->OUTSET.reg = pin_mask;
1bce8: 3920 subs r1, #32
1bcea: 4b3d ldr r3, [pc, #244] ; (1bde0 <ssd1963_flush+0x304>)
1bcec: 6199 str r1, [r3, #24]
cmd_mode = false;
1bcee: 2100 movs r1, #0
1bcf0: 4b3c ldr r3, [pc, #240] ; (1bde4 <ssd1963_flush+0x308>)
1bcf2: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bcf4: 493c ldr r1, [pc, #240] ; (1bde8 <ssd1963_flush+0x30c>)
1bcf6: 483d ldr r0, [pc, #244] ; (1bdec <ssd1963_flush+0x310>)
1bcf8: 4b3d ldr r3, [pc, #244] ; (1bdf0 <ssd1963_flush+0x314>)
1bcfa: 4798 blx r3
1bcfc: 4b38 ldr r3, [pc, #224] ; (1bde0 <ssd1963_flush+0x304>)
1bcfe: 2140 movs r1, #64 ; 0x40
1bd00: 6199 str r1, [r3, #24]
ssd1963_data(0x00FF & act_y2);
1bd02: 22ff movs r2, #255 ; 0xff
1bd04: 4650 mov r0, sl
1bd06: 4002 ands r2, r0
port_base->OUTCLR.reg = pin_mask;
1bd08: 6159 str r1, [r3, #20]
if(cmd_mode != false) {
1bd0a: 4b36 ldr r3, [pc, #216] ; (1bde4 <ssd1963_flush+0x308>)
1bd0c: 781b ldrb r3, [r3, #0]
1bd0e: 2b00 cmp r3, #0
1bd10: d005 beq.n 1bd1e <ssd1963_flush+0x242>
port_base->OUTSET.reg = pin_mask;
1bd12: 3920 subs r1, #32
1bd14: 4b32 ldr r3, [pc, #200] ; (1bde0 <ssd1963_flush+0x304>)
1bd16: 6199 str r1, [r3, #24]
cmd_mode = false;
1bd18: 2100 movs r1, #0
1bd1a: 4b32 ldr r3, [pc, #200] ; (1bde4 <ssd1963_flush+0x308>)
1bd1c: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(data);
1bd1e: 4932 ldr r1, [pc, #200] ; (1bde8 <ssd1963_flush+0x30c>)
1bd20: 4832 ldr r0, [pc, #200] ; (1bdec <ssd1963_flush+0x310>)
1bd22: 4b33 ldr r3, [pc, #204] ; (1bdf0 <ssd1963_flush+0x314>)
1bd24: 4798 blx r3
1bd26: 4b2e ldr r3, [pc, #184] ; (1bde0 <ssd1963_flush+0x304>)
1bd28: 2240 movs r2, #64 ; 0x40
1bd2a: 619a str r2, [r3, #24]
port_base->OUTCLR.reg = pin_mask;
1bd2c: 615a str r2, [r3, #20]
if(cmd_mode == false) {
1bd2e: 4b2d ldr r3, [pc, #180] ; (1bde4 <ssd1963_flush+0x308>)
1bd30: 781b ldrb r3, [r3, #0]
1bd32: 2b00 cmp r3, #0
1bd34: d105 bne.n 1bd42 <ssd1963_flush+0x266>
1bd36: 3a20 subs r2, #32
1bd38: 4b29 ldr r3, [pc, #164] ; (1bde0 <ssd1963_flush+0x304>)
1bd3a: 615a str r2, [r3, #20]
cmd_mode = true;
1bd3c: 3a1f subs r2, #31
1bd3e: 4b29 ldr r3, [pc, #164] ; (1bde4 <ssd1963_flush+0x308>)
1bd40: 701a strb r2, [r3, #0]
LV_DRV_DISP_PAR_WR_WORD(cmd);
1bd42: 222c movs r2, #44 ; 0x2c
1bd44: 4928 ldr r1, [pc, #160] ; (1bde8 <ssd1963_flush+0x30c>)
1bd46: 4829 ldr r0, [pc, #164] ; (1bdec <ssd1963_flush+0x310>)
1bd48: 4b29 ldr r3, [pc, #164] ; (1bdf0 <ssd1963_flush+0x314>)
1bd4a: 4798 blx r3
port_base->OUTSET.reg = pin_mask;
1bd4c: 2240 movs r2, #64 ; 0x40
1bd4e: 4b24 ldr r3, [pc, #144] ; (1bde0 <ssd1963_flush+0x304>)
1bd50: 619a str r2, [r3, #24]
uint16_t full_w = area->x2 - area->x1 + 1;
1bd52: 88bb ldrh r3, [r7, #4]
1bd54: 3301 adds r3, #1
1bd56: 883a ldrh r2, [r7, #0]
1bd58: 1a9b subs r3, r3, r2
1bd5a: b29f uxth r7, r3
if(cmd_mode != false) {
1bd5c: 4a21 ldr r2, [pc, #132] ; (1bde4 <ssd1963_flush+0x308>)
1bd5e: 7812 ldrb r2, [r2, #0]
1bd60: 2a00 cmp r2, #0
1bd62: d005 beq.n 1bd70 <ssd1963_flush+0x294>
1bd64: 2120 movs r1, #32
1bd66: 4a1e ldr r2, [pc, #120] ; (1bde0 <ssd1963_flush+0x304>)
1bd68: 6191 str r1, [r2, #24]
cmd_mode = false;
1bd6a: 2100 movs r1, #0
1bd6c: 4a1d ldr r2, [pc, #116] ; (1bde4 <ssd1963_flush+0x308>)
1bd6e: 7011 strb r1, [r2, #0]
port_base->OUTCLR.reg = pin_mask;
1bd70: 2140 movs r1, #64 ; 0x40
1bd72: 4a1b ldr r2, [pc, #108] ; (1bde0 <ssd1963_flush+0x304>)
1bd74: 6151 str r1, [r2, #20]
uint16_t act_w = act_x2 - act_x1 + 1;
1bd76: 464b mov r3, r9
1bd78: 1aed subs r5, r5, r3
1bd7a: 3501 adds r5, #1
1bd7c: b2ad uxth r5, r5
for(i = act_y1; i <= act_y2; i++) {
1bd7e: 45da cmp sl, fp
1bd80: db0f blt.n 1bda2 <ssd1963_flush+0x2c6>
color_p += full_w;
1bd82: 007f lsls r7, r7, #1
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
1bd84: 4b1b ldr r3, [pc, #108] ; (1bdf4 <ssd1963_flush+0x318>)
1bd86: 4698 mov r8, r3
1bd88: 9501 str r5, [sp, #4]
1bd8a: 003d movs r5, r7
1bd8c: 4657 mov r7, sl
1bd8e: 9b01 ldr r3, [sp, #4]
1bd90: 0032 movs r2, r6
1bd92: 4915 ldr r1, [pc, #84] ; (1bde8 <ssd1963_flush+0x30c>)
1bd94: 4815 ldr r0, [pc, #84] ; (1bdec <ssd1963_flush+0x310>)
1bd96: 47c0 blx r8
color_p += full_w;
1bd98: 1976 adds r6, r6, r5
1bd9a: 3401 adds r4, #1
1bd9c: b224 sxth r4, r4
for(i = act_y1; i <= act_y2; i++) {
1bd9e: 42a7 cmp r7, r4
1bda0: daf5 bge.n 1bd8e <ssd1963_flush+0x2b2>
port_base->OUTSET.reg = pin_mask;
1bda2: 2240 movs r2, #64 ; 0x40
1bda4: 4b0e ldr r3, [pc, #56] ; (1bde0 <ssd1963_flush+0x304>)
1bda6: 619a str r2, [r3, #24]
lv_disp_flush_ready(disp_drv);
1bda8: 9800 ldr r0, [sp, #0]
1bdaa: 4b13 ldr r3, [pc, #76] ; (1bdf8 <ssd1963_flush+0x31c>)
1bdac: 4798 blx r3
1bdae: e6b0 b.n 1bb12 <ssd1963_flush+0x36>
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
1bdb0: 2500 movs r5, #0
1bdb2: e6c4 b.n 1bb3e <ssd1963_flush+0x62>
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
1bdb4: 2400 movs r4, #0
1bdb6: e6ca b.n 1bb4e <ssd1963_flush+0x72>
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1bdb8: 4b06 ldr r3, [pc, #24] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bdba: 4798 blx r3
1bdbc: 4b06 ldr r3, [pc, #24] ; (1bdd8 <ssd1963_flush+0x2fc>)
1bdbe: 4798 blx r3
1bdc0: 1e45 subs r5, r0, #1
1bdc2: e6d2 b.n 1bb6a <ssd1963_flush+0x8e>
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
1bdc4: 4b03 ldr r3, [pc, #12] ; (1bdd4 <ssd1963_flush+0x2f8>)
1bdc6: 4798 blx r3
1bdc8: 4b04 ldr r3, [pc, #16] ; (1bddc <ssd1963_flush+0x300>)
1bdca: 4798 blx r3
1bdcc: 1e43 subs r3, r0, #1
1bdce: 469a mov sl, r3
1bdd0: e6d9 b.n 1bb86 <ssd1963_flush+0xaa>
1bdd2: 46c0 nop ; (mov r8, r8)
1bdd4: 00010d75 .word 0x00010d75
1bdd8: 00010d81 .word 0x00010d81
1bddc: 00010da9 .word 0x00010da9
1bde0: 41004400 .word 0x41004400
1bde4: 2000006c .word 0x2000006c
1bde8: 0000ffff .word 0x0000ffff
1bdec: 41004480 .word 0x41004480
1bdf0: 0001be6d .word 0x0001be6d
1bdf4: 0001be8d .word 0x0001be8d
1bdf8: 00010e45 .word 0x00010e45
0001bdfc <p_gpio_init>:
#include "p_gpio.h"
void p_gpio_init(void)
{
1bdfc: b530 push {r4, r5, lr}
1bdfe: b083 sub sp, #12
config->powersave = false;
1be00: aa01 add r2, sp, #4
1be02: 2400 movs r4, #0
1be04: 7094 strb r4, [r2, #2]
struct port_config data_port_config;
port_get_config_defaults(&data_port_config);
data_port_config.direction = SSD1963_TFT_DATA_DIR;
1be06: 2501 movs r5, #1
1be08: 7015 strb r5, [r2, #0]
data_port_config.input_pull = SSD1963_TFT_DATA_PULL;
1be0a: 7054 strb r4, [r2, #1]
port_group_set_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_port_config);
1be0c: 4912 ldr r1, [pc, #72] ; (1be58 <p_gpio_init+0x5c>)
1be0e: 4813 ldr r0, [pc, #76] ; (1be5c <p_gpio_init+0x60>)
1be10: 4b13 ldr r3, [pc, #76] ; (1be60 <p_gpio_init+0x64>)
1be12: 4798 blx r3
1be14: 466b mov r3, sp
1be16: 709c strb r4, [r3, #2]
struct port_config ssd1963_ctrl_pins_conf;
port_get_config_defaults(&ssd1963_ctrl_pins_conf);
ssd1963_ctrl_pins_conf.input_pull = PORT_PIN_PULL_DOWN;
1be18: 2302 movs r3, #2
1be1a: 466a mov r2, sp
1be1c: 7053 strb r3, [r2, #1]
ssd1963_ctrl_pins_conf.direction = PORT_PIN_DIR_OUTPUT;
1be1e: 7015 strb r5, [r2, #0]
port_pin_set_config(SSD1963_TFT_nRST, &ssd1963_ctrl_pins_conf);
1be20: 4669 mov r1, sp
1be22: 2004 movs r0, #4
1be24: 4c0f ldr r4, [pc, #60] ; (1be64 <p_gpio_init+0x68>)
1be26: 47a0 blx r4
port_pin_set_config(SSD1963_TFT_RSDC, &ssd1963_ctrl_pins_conf);
1be28: 4669 mov r1, sp
1be2a: 2005 movs r0, #5
1be2c: 47a0 blx r4
port_pin_set_config(SSD1963_TFT_nCS, &ssd1963_ctrl_pins_conf);
1be2e: 4669 mov r1, sp
1be30: 2006 movs r0, #6
1be32: 47a0 blx r4
port_pin_set_config(SSD1963_TFT_WR, &ssd1963_ctrl_pins_conf);
1be34: 4669 mov r1, sp
1be36: 2007 movs r0, #7
1be38: 47a0 blx r4
port_pin_set_config(SSD1963_TFT_RD, &ssd1963_ctrl_pins_conf);
1be3a: 4669 mov r1, sp
1be3c: 200a movs r0, #10
1be3e: 47a0 blx r4
port_base->OUTSET.reg = pin_mask;
1be40: 4b09 ldr r3, [pc, #36] ; (1be68 <p_gpio_init+0x6c>)
1be42: 2210 movs r2, #16
1be44: 619a str r2, [r3, #24]
1be46: 3230 adds r2, #48 ; 0x30
1be48: 619a str r2, [r3, #24]
1be4a: 3240 adds r2, #64 ; 0x40
1be4c: 619a str r2, [r3, #24]
1be4e: 2280 movs r2, #128 ; 0x80
1be50: 00d2 lsls r2, r2, #3
1be52: 619a str r2, [r3, #24]
port_pin_set_output_level(SSD1963_TFT_nRST, 1);
port_pin_set_output_level(SSD1963_TFT_nCS, 1);
port_pin_set_output_level(SSD1963_TFT_WR, 1);
port_pin_set_output_level(SSD1963_TFT_RD, 1);
}
1be54: b003 add sp, #12
1be56: bd30 pop {r4, r5, pc}
1be58: 0000ffff .word 0x0000ffff
1be5c: 41004480 .word 0x41004480
1be60: 00000e9d .word 0x00000e9d
1be64: 00000e79 .word 0x00000e79
1be68: 41004400 .word 0x41004400
0001be6c <p_gpio_parallel_wr_word>:
void p_gpio_parallel_wr_word(PortGroup* group, uint32_t mask, uint16_t data)
{
1be6c: b530 push {r4, r5, lr}
port_base->OUTCLR.reg = pin_mask;
1be6e: 4b06 ldr r3, [pc, #24] ; (1be88 <p_gpio_parallel_wr_word+0x1c>)
1be70: 2440 movs r4, #64 ; 0x40
1be72: 615c str r4, [r3, #20]
port->OUTSET.reg = (mask & level_mask);
1be74: 000d movs r5, r1
1be76: 4015 ands r5, r2
1be78: 6185 str r5, [r0, #24]
port->OUTCLR.reg = (mask & ~level_mask);
1be7a: 4391 bics r1, r2
1be7c: 6141 str r1, [r0, #20]
port_base->OUTCLR.reg = pin_mask;
1be7e: 2280 movs r2, #128 ; 0x80
1be80: 615a str r2, [r3, #20]
port_base->OUTSET.reg = pin_mask;
1be82: 619a str r2, [r3, #24]
1be84: 619c str r4, [r3, #24]
port_pin_set_output_level(SSD1963_TFT_nCS, 0);
port_group_set_output_level(group, mask, (uint32_t)data);
port_pin_set_output_level(SSD1963_TFT_WR, 0);
port_pin_set_output_level(SSD1963_TFT_WR, 1);
port_pin_set_output_level(SSD1963_TFT_nCS, 1);
}
1be86: bd30 pop {r4, r5, pc}
1be88: 41004400 .word 0x41004400
0001be8c <p_gpio_parallel_wr_arr>:
void p_gpio_parallel_wr_arr(PortGroup* group, uint32_t mask, uint16_t* data, uint16_t len)
{
1be8c: b5f0 push {r4, r5, r6, r7, lr}
1be8e: b085 sub sp, #20
1be90: 9001 str r0, [sp, #4]
1be92: 000d movs r5, r1
1be94: 0017 movs r7, r2
for(volatile int ind = 0; ind < len; ind++)
1be96: 2200 movs r2, #0
1be98: 9203 str r2, [sp, #12]
1be9a: 001e movs r6, r3
1be9c: 9b03 ldr r3, [sp, #12]
1be9e: 429e cmp r6, r3
1bea0: dd0c ble.n 1bebc <p_gpio_parallel_wr_arr+0x30>
{
p_gpio_parallel_wr_word(group, mask, data[ind]);
1bea2: 4c07 ldr r4, [pc, #28] ; (1bec0 <p_gpio_parallel_wr_arr+0x34>)
1bea4: 9a03 ldr r2, [sp, #12]
1bea6: 0052 lsls r2, r2, #1
1bea8: 5bd2 ldrh r2, [r2, r7]
1beaa: 0029 movs r1, r5
1beac: 9801 ldr r0, [sp, #4]
1beae: 47a0 blx r4
for(volatile int ind = 0; ind < len; ind++)
1beb0: 9a03 ldr r2, [sp, #12]
1beb2: 3201 adds r2, #1
1beb4: 9203 str r2, [sp, #12]
1beb6: 9b03 ldr r3, [sp, #12]
1beb8: 42b3 cmp r3, r6
1beba: dbf3 blt.n 1bea4 <p_gpio_parallel_wr_arr+0x18>
}
}
1bebc: b005 add sp, #20
1bebe: bdf0 pop {r4, r5, r6, r7, pc}
1bec0: 0001be6d .word 0x0001be6d
0001bec4 <p_i2c_init>:
#include "p_i2c.h"
void p_i2c_init(void)
{
1bec4: 4770 bx lr
...
0001bec8 <p_printf>:
p_printf("USART INIT\n");
lv_log_register_print_cb(p_debug_intf_cb);
}
void p_printf(const char* str, ...)
{
1bec8: b40f push {r0, r1, r2, r3}
1beca: b530 push {r4, r5, lr}
1becc: b0c3 sub sp, #268 ; 0x10c
1bece: ac46 add r4, sp, #280 ; 0x118
1bed0: cc20 ldmia r4!, {r5}
volatile uint8_t pprint_buffer[ORACLE_DEBUG_PRINT_BUFF_SIZE + 1];
memset(pprint_buffer, '\0', ORACLE_DEBUG_PRINT_BUFF_SIZE + 1);
1bed2: 2202 movs r2, #2
1bed4: 32ff adds r2, #255 ; 0xff
1bed6: 2100 movs r1, #0
1bed8: a801 add r0, sp, #4
1beda: 4b0f ldr r3, [pc, #60] ; (1bf18 <p_printf+0x50>)
1bedc: 4798 blx r3
va_list args;
va_start(args, str);
1bede: 9400 str r4, [sp, #0]
vsprintf(pprint_buffer, str, args);
1bee0: 0022 movs r2, r4
1bee2: 0029 movs r1, r5
1bee4: a801 add r0, sp, #4
1bee6: 4b0d ldr r3, [pc, #52] ; (1bf1c <p_printf+0x54>)
1bee8: 4798 blx r3
va_end(args);
uint16_t strsize = (uint16_t)strlen(pprint_buffer);
1beea: a801 add r0, sp, #4
1beec: 4b0c ldr r3, [pc, #48] ; (1bf20 <p_printf+0x58>)
1beee: 4798 blx r3
1bef0: b282 uxth r2, r0
if(strsize > ORACLE_DEBUG_PRINT_BUFF_SIZE)
1bef2: 2380 movs r3, #128 ; 0x80
1bef4: 005b lsls r3, r3, #1
1bef6: 429a cmp r2, r3
1bef8: d904 bls.n 1bf04 <p_printf+0x3c>
// return error
return;
}
usart_write_buffer_wait(&p_debug_inst, pprint_buffer, strsize);
usart_read_job(&p_debug_inst, &rx_char);
}
1befa: b043 add sp, #268 ; 0x10c
1befc: bc30 pop {r4, r5}
1befe: bc08 pop {r3}
1bf00: b004 add sp, #16
1bf02: 4718 bx r3
usart_write_buffer_wait(&p_debug_inst, pprint_buffer, strsize);
1bf04: 4c07 ldr r4, [pc, #28] ; (1bf24 <p_printf+0x5c>)
1bf06: a901 add r1, sp, #4
1bf08: 0020 movs r0, r4
1bf0a: 4b07 ldr r3, [pc, #28] ; (1bf28 <p_printf+0x60>)
1bf0c: 4798 blx r3
usart_read_job(&p_debug_inst, &rx_char);
1bf0e: 4907 ldr r1, [pc, #28] ; (1bf2c <p_printf+0x64>)
1bf10: 0020 movs r0, r4
1bf12: 4b07 ldr r3, [pc, #28] ; (1bf30 <p_printf+0x68>)
1bf14: 4798 blx r3
1bf16: e7f0 b.n 1befa <p_printf+0x32>
1bf18: 0001c671 .word 0x0001c671
1bf1c: 0001c749 .word 0x0001c749
1bf20: 0001c709 .word 0x0001c709
1bf24: 20004c74 .word 0x20004c74
1bf28: 00000a39 .word 0x00000a39
1bf2c: 20004e8c .word 0x20004e8c
1bf30: 00000b5d .word 0x00000b5d
0001bf34 <p_usart_init>:
{
1bf34: b570 push {r4, r5, r6, lr}
1bf36: b090 sub sp, #64 ; 0x40
{
/* Sanity check arguments */
Assert(config);
/* Set default config in the config struct */
config->data_order = USART_DATAORDER_LSB;
1bf38: 2380 movs r3, #128 ; 0x80
1bf3a: 05db lsls r3, r3, #23
1bf3c: 9300 str r3, [sp, #0]
config->transfer_mode = USART_TRANSFER_ASYNCHRONOUSLY;
1bf3e: 2300 movs r3, #0
1bf40: 9301 str r3, [sp, #4]
config->parity = USART_PARITY_NONE;
1bf42: 22ff movs r2, #255 ; 0xff
1bf44: 4669 mov r1, sp
1bf46: 810a strh r2, [r1, #8]
config->stopbits = USART_STOPBITS_1;
1bf48: 2200 movs r2, #0
1bf4a: 728b strb r3, [r1, #10]
config->character_size = USART_CHARACTER_SIZE_8BIT;
1bf4c: 72cb strb r3, [r1, #11]
config->baudrate = 9600;
config->receiver_enable = true;
1bf4e: 2401 movs r4, #1
1bf50: 2124 movs r1, #36 ; 0x24
1bf52: 4668 mov r0, sp
1bf54: 5444 strb r4, [r0, r1]
config->transmitter_enable = true;
1bf56: 3101 adds r1, #1
1bf58: 5444 strb r4, [r0, r1]
config->clock_polarity_inverted = false;
1bf5a: 3101 adds r1, #1
1bf5c: 5443 strb r3, [r0, r1]
config->use_external_clock = false;
1bf5e: 3101 adds r1, #1
1bf60: 5443 strb r3, [r0, r1]
config->ext_clock_freq = 0;
1bf62: 930a str r3, [sp, #40] ; 0x28
config->mux_setting = USART_RX_1_TX_2_XCK_3;
config->run_in_standby = false;
1bf64: 3105 adds r1, #5
1bf66: 5443 strb r3, [r0, r1]
config->generator_source = GCLK_GENERATOR_0;
1bf68: 3101 adds r1, #1
1bf6a: 5443 strb r3, [r0, r1]
config->pinmux_pad0 = PINMUX_DEFAULT;
config->pinmux_pad1 = PINMUX_DEFAULT;
config->pinmux_pad2 = PINMUX_DEFAULT;
config->pinmux_pad3 = PINMUX_DEFAULT;
#ifdef FEATURE_USART_OVER_SAMPLE
config->sample_adjustment = USART_SAMPLE_ADJUSTMENT_7_8_9;
1bf6c: 9305 str r3, [sp, #20]
config->sample_rate = USART_SAMPLE_RATE_16X_ARITHMETIC;
1bf6e: 8203 strh r3, [r0, #16]
#endif
#ifdef FEATURE_USART_LIN_SLAVE
config->lin_slave_enable = false;
1bf70: 76c3 strb r3, [r0, #27]
config->lin_header_delay = LIN_MASTER_HEADER_DELAY_0;
config->lin_break_length = LIN_MASTER_BREAK_LENGTH_13_BIT;
#endif
#ifdef FEATURE_USART_IMMEDIATE_BUFFER_OVERFLOW_NOTIFICATION
config->immediate_buffer_overflow_notification = false;
1bf72: 7602 strb r2, [r0, #24]
#endif
#ifdef FEATURE_USART_START_FRAME_DECTION
config->start_frame_detection_enable = false;
1bf74: 7702 strb r2, [r0, #28]
#endif
#ifdef FEATURE_USART_IRDA
config->encoding_format_enable = false;
1bf76: 7642 strb r2, [r0, #25]
config->receive_pulse_length = 19;
1bf78: 2313 movs r3, #19
1bf7a: 7683 strb r3, [r0, #26]
config->iso7816_config.inhibit_nack = ISO7816_INHIBIT_NACK_DISABLE;
config->iso7816_config.successive_recv_nack = ISO7816_SUCCESSIVE_RECV_NACK_DISABLE;
config->iso7816_config.max_iterations = 7;
#endif
#ifdef FEATURE_USART_COLLISION_DECTION
config->collision_detection_enable = false;
1bf7c: 7742 strb r2, [r0, #29]
p_debug_conf.baudrate = USART_DEBUG_BAUDRATE;
1bf7e: 23e1 movs r3, #225 ; 0xe1
1bf80: 025b lsls r3, r3, #9
1bf82: 9308 str r3, [sp, #32]
p_debug_conf.pinmux_pad0 = USART_DEBUG_PINMUX_PAD0;
1bf84: 4b1a ldr r3, [pc, #104] ; (1bff0 <p_usart_init+0xbc>)
1bf86: 930c str r3, [sp, #48] ; 0x30
p_debug_conf.pinmux_pad1 = USART_DEBUG_PINMUX_PAD1;
1bf88: 4b1a ldr r3, [pc, #104] ; (1bff4 <p_usart_init+0xc0>)
1bf8a: 930d str r3, [sp, #52] ; 0x34
p_debug_conf.pinmux_pad2 = USART_DEBUG_PINMUX_PAD2;
1bf8c: 2301 movs r3, #1
1bf8e: 425b negs r3, r3
1bf90: 930e str r3, [sp, #56] ; 0x38
p_debug_conf.pinmux_pad3 = USART_DEBUG_PINMUX_PAD3;
1bf92: 930f str r3, [sp, #60] ; 0x3c
p_debug_conf.mux_setting = USART_DEBUG_MUX_SETTING;
1bf94: 2380 movs r3, #128 ; 0x80
1bf96: 035b lsls r3, r3, #13
1bf98: 9303 str r3, [sp, #12]
usart_init(&p_debug_inst, USART_DEBUG_MODULE, &p_debug_conf);
1bf9a: 4e17 ldr r6, [pc, #92] ; (1bff8 <p_usart_init+0xc4>)
1bf9c: 466a mov r2, sp
1bf9e: 4917 ldr r1, [pc, #92] ; (1bffc <p_usart_init+0xc8>)
1bfa0: 0030 movs r0, r6
1bfa2: 4b17 ldr r3, [pc, #92] ; (1c000 <p_usart_init+0xcc>)
1bfa4: 4798 blx r3
/* Sanity check arguments */
Assert(module);
Assert(module->hw);
/* Get a pointer to the hardware module instance */
SercomUsart *const usart_hw = &(module->hw->USART);
1bfa6: 6835 ldr r5, [r6, #0]
#if USART_CALLBACK_MODE == true
/* Enable Global interrupt for module */
system_interrupt_enable(_sercom_get_interrupt_vector(module->hw));
1bfa8: 0028 movs r0, r5
1bfaa: 4b16 ldr r3, [pc, #88] ; (1c004 <p_usart_init+0xd0>)
1bfac: 4798 blx r3
* \param[in] vector Interrupt vector to enable
*/
static inline void system_interrupt_enable(
const enum system_interrupt_vector vector)
{
NVIC->ISER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
1bfae: 231f movs r3, #31
1bfb0: 4018 ands r0, r3
1bfb2: 4084 lsls r4, r0
1bfb4: 4b14 ldr r3, [pc, #80] ; (1c008 <p_usart_init+0xd4>)
1bfb6: 601c str r4, [r3, #0]
SercomUsart *const usart_hw = &(module->hw->USART);
1bfb8: 6832 ldr r2, [r6, #0]
return (usart_hw->SYNCBUSY.reg);
1bfba: 69d3 ldr r3, [r2, #28]
while (usart_is_syncing(module)) {
1bfbc: 2b00 cmp r3, #0
1bfbe: d1fc bne.n 1bfba <p_usart_init+0x86>
/* Wait until synchronization is complete */
_usart_wait_for_sync(module);
/* Enable USART module */
usart_hw->CTRLA.reg |= SERCOM_USART_CTRLA_ENABLE;
1bfc0: 682b ldr r3, [r5, #0]
1bfc2: 2202 movs r2, #2
1bfc4: 4313 orrs r3, r2
1bfc6: 602b str r3, [r5, #0]
usart_register_callback(&p_debug_inst, p_debug_rx_cb, USART_CALLBACK_BUFFER_RECEIVED);
1bfc8: 4c0b ldr r4, [pc, #44] ; (1bff8 <p_usart_init+0xc4>)
1bfca: 3a01 subs r2, #1
1bfcc: 490f ldr r1, [pc, #60] ; (1c00c <p_usart_init+0xd8>)
1bfce: 0020 movs r0, r4
1bfd0: 4b0f ldr r3, [pc, #60] ; (1c010 <p_usart_init+0xdc>)
1bfd2: 4798 blx r3
{
/* Sanity check arguments */
Assert(module);
/* Enable callback */
module->callback_enable_mask |= (1 << callback_type);
1bfd4: 2231 movs r2, #49 ; 0x31
1bfd6: 5ca3 ldrb r3, [r4, r2]
1bfd8: 2102 movs r1, #2
1bfda: 430b orrs r3, r1
1bfdc: 54a3 strb r3, [r4, r2]
p_printf("USART INIT\n");
1bfde: 480d ldr r0, [pc, #52] ; (1c014 <p_usart_init+0xe0>)
1bfe0: 4b0d ldr r3, [pc, #52] ; (1c018 <p_usart_init+0xe4>)
1bfe2: 4798 blx r3
lv_log_register_print_cb(p_debug_intf_cb);
1bfe4: 480d ldr r0, [pc, #52] ; (1c01c <p_usart_init+0xe8>)
1bfe6: 4b0e ldr r3, [pc, #56] ; (1c020 <p_usart_init+0xec>)
1bfe8: 4798 blx r3
}
1bfea: b010 add sp, #64 ; 0x40
1bfec: bd70 pop {r4, r5, r6, pc}
1bfee: 46c0 nop ; (mov r8, r8)
1bff0: 00160002 .word 0x00160002
1bff4: 00170002 .word 0x00170002
1bff8: 20004c74 .word 0x20004c74
1bffc: 42001400 .word 0x42001400
1c000: 000006d5 .word 0x000006d5
1c004: 00000d41 .word 0x00000d41
1c008: e000e100 .word 0xe000e100
1c00c: 0001c05d .word 0x0001c05d
1c010: 00000b45 .word 0x00000b45
1c014: 0002b0f8 .word 0x0002b0f8
1c018: 0001bec9 .word 0x0001bec9
1c01c: 0001c025 .word 0x0001c025
1c020: 0001214d .word 0x0001214d
0001c024 <p_debug_intf_cb>:
{
1c024: b5f0 push {r4, r5, r6, r7, lr}
1c026: b083 sub sp, #12
1c028: 0004 movs r4, r0
1c02a: 000d movs r5, r1
1c02c: 0016 movs r6, r2
1c02e: 001f movs r7, r3
p_printf("[%s][LVGL][%s][%s][%lu][%s]\n", p_get_time_str(), level_strings[level], file_name, line_num, description);
1c030: 4b06 ldr r3, [pc, #24] ; (1c04c <p_debug_intf_cb+0x28>)
1c032: 4798 blx r3
1c034: 0001 movs r1, r0
1c036: 0124 lsls r4, r4, #4
1c038: 4a05 ldr r2, [pc, #20] ; (1c050 <p_debug_intf_cb+0x2c>)
1c03a: 1912 adds r2, r2, r4
1c03c: 9701 str r7, [sp, #4]
1c03e: 9600 str r6, [sp, #0]
1c040: 002b movs r3, r5
1c042: 4804 ldr r0, [pc, #16] ; (1c054 <p_debug_intf_cb+0x30>)
1c044: 4c04 ldr r4, [pc, #16] ; (1c058 <p_debug_intf_cb+0x34>)
1c046: 47a0 blx r4
}
1c048: b003 add sp, #12
1c04a: bdf0 pop {r4, r5, r6, r7, pc}
1c04c: 0000017d .word 0x0000017d
1c050: 0002b084 .word 0x0002b084
1c054: 0002b0d4 .word 0x0002b0d4
1c058: 0001bec9 .word 0x0001bec9
0001c05c <p_debug_rx_cb>:
{
1c05c: b510 push {r4, lr}
p_printf("%c", (char)rx_char);
1c05e: 4b03 ldr r3, [pc, #12] ; (1c06c <p_debug_rx_cb+0x10>)
1c060: 8819 ldrh r1, [r3, #0]
1c062: b2c9 uxtb r1, r1
1c064: 4802 ldr r0, [pc, #8] ; (1c070 <p_debug_rx_cb+0x14>)
1c066: 4b03 ldr r3, [pc, #12] ; (1c074 <p_debug_rx_cb+0x18>)
1c068: 4798 blx r3
}
1c06a: bd10 pop {r4, pc}
1c06c: 20004e8c .word 0x20004e8c
1c070: 0002b0f4 .word 0x0002b0f4
1c074: 0001bec9 .word 0x0001bec9
0001c078 <p_debug_start_service>:
void p_debug_start_service(void)
{
1c078: b510 push {r4, lr}
usart_read_job(&p_debug_inst, &rx_char);
1c07a: 4902 ldr r1, [pc, #8] ; (1c084 <p_debug_start_service+0xc>)
1c07c: 4802 ldr r0, [pc, #8] ; (1c088 <p_debug_start_service+0x10>)
1c07e: 4b03 ldr r3, [pc, #12] ; (1c08c <p_debug_start_service+0x14>)
1c080: 4798 blx r3
}
1c082: bd10 pop {r4, pc}
1c084: 20004e8c .word 0x20004e8c
1c088: 20004c74 .word 0x20004c74
1c08c: 00000b5d .word 0x00000b5d
0001c090 <main>:
/*
* Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
*/
#include "oracle.h"
int main (void)
{
1c090: b510 push {r4, lr}
oracle_init();
1c092: 4b02 ldr r3, [pc, #8] ; (1c09c <main+0xc>)
1c094: 4798 blx r3
for(;;)
{
oracle_service();
1c096: 4c02 ldr r4, [pc, #8] ; (1c0a0 <main+0x10>)
1c098: 47a0 blx r4
1c09a: e7fd b.n 1c098 <main+0x8>
1c09c: 00000235 .word 0x00000235
1c0a0: 00000321 .word 0x00000321
0001c0a4 <__udivsi3>:
1c0a4: 2200 movs r2, #0
1c0a6: 0843 lsrs r3, r0, #1
1c0a8: 428b cmp r3, r1
1c0aa: d374 bcc.n 1c196 <__udivsi3+0xf2>
1c0ac: 0903 lsrs r3, r0, #4
1c0ae: 428b cmp r3, r1
1c0b0: d35f bcc.n 1c172 <__udivsi3+0xce>
1c0b2: 0a03 lsrs r3, r0, #8
1c0b4: 428b cmp r3, r1
1c0b6: d344 bcc.n 1c142 <__udivsi3+0x9e>
1c0b8: 0b03 lsrs r3, r0, #12
1c0ba: 428b cmp r3, r1
1c0bc: d328 bcc.n 1c110 <__udivsi3+0x6c>
1c0be: 0c03 lsrs r3, r0, #16
1c0c0: 428b cmp r3, r1
1c0c2: d30d bcc.n 1c0e0 <__udivsi3+0x3c>
1c0c4: 22ff movs r2, #255 ; 0xff
1c0c6: 0209 lsls r1, r1, #8
1c0c8: ba12 rev r2, r2
1c0ca: 0c03 lsrs r3, r0, #16
1c0cc: 428b cmp r3, r1
1c0ce: d302 bcc.n 1c0d6 <__udivsi3+0x32>
1c0d0: 1212 asrs r2, r2, #8
1c0d2: 0209 lsls r1, r1, #8
1c0d4: d065 beq.n 1c1a2 <__udivsi3+0xfe>
1c0d6: 0b03 lsrs r3, r0, #12
1c0d8: 428b cmp r3, r1
1c0da: d319 bcc.n 1c110 <__udivsi3+0x6c>
1c0dc: e000 b.n 1c0e0 <__udivsi3+0x3c>
1c0de: 0a09 lsrs r1, r1, #8
1c0e0: 0bc3 lsrs r3, r0, #15
1c0e2: 428b cmp r3, r1
1c0e4: d301 bcc.n 1c0ea <__udivsi3+0x46>
1c0e6: 03cb lsls r3, r1, #15
1c0e8: 1ac0 subs r0, r0, r3
1c0ea: 4152 adcs r2, r2
1c0ec: 0b83 lsrs r3, r0, #14
1c0ee: 428b cmp r3, r1
1c0f0: d301 bcc.n 1c0f6 <__udivsi3+0x52>
1c0f2: 038b lsls r3, r1, #14
1c0f4: 1ac0 subs r0, r0, r3
1c0f6: 4152 adcs r2, r2
1c0f8: 0b43 lsrs r3, r0, #13
1c0fa: 428b cmp r3, r1
1c0fc: d301 bcc.n 1c102 <__udivsi3+0x5e>
1c0fe: 034b lsls r3, r1, #13
1c100: 1ac0 subs r0, r0, r3
1c102: 4152 adcs r2, r2
1c104: 0b03 lsrs r3, r0, #12
1c106: 428b cmp r3, r1
1c108: d301 bcc.n 1c10e <__udivsi3+0x6a>
1c10a: 030b lsls r3, r1, #12
1c10c: 1ac0 subs r0, r0, r3
1c10e: 4152 adcs r2, r2
1c110: 0ac3 lsrs r3, r0, #11
1c112: 428b cmp r3, r1
1c114: d301 bcc.n 1c11a <__udivsi3+0x76>
1c116: 02cb lsls r3, r1, #11
1c118: 1ac0 subs r0, r0, r3
1c11a: 4152 adcs r2, r2
1c11c: 0a83 lsrs r3, r0, #10
1c11e: 428b cmp r3, r1
1c120: d301 bcc.n 1c126 <__udivsi3+0x82>
1c122: 028b lsls r3, r1, #10
1c124: 1ac0 subs r0, r0, r3
1c126: 4152 adcs r2, r2
1c128: 0a43 lsrs r3, r0, #9
1c12a: 428b cmp r3, r1
1c12c: d301 bcc.n 1c132 <__udivsi3+0x8e>
1c12e: 024b lsls r3, r1, #9
1c130: 1ac0 subs r0, r0, r3
1c132: 4152 adcs r2, r2
1c134: 0a03 lsrs r3, r0, #8
1c136: 428b cmp r3, r1
1c138: d301 bcc.n 1c13e <__udivsi3+0x9a>
1c13a: 020b lsls r3, r1, #8
1c13c: 1ac0 subs r0, r0, r3
1c13e: 4152 adcs r2, r2
1c140: d2cd bcs.n 1c0de <__udivsi3+0x3a>
1c142: 09c3 lsrs r3, r0, #7
1c144: 428b cmp r3, r1
1c146: d301 bcc.n 1c14c <__udivsi3+0xa8>
1c148: 01cb lsls r3, r1, #7
1c14a: 1ac0 subs r0, r0, r3
1c14c: 4152 adcs r2, r2
1c14e: 0983 lsrs r3, r0, #6
1c150: 428b cmp r3, r1
1c152: d301 bcc.n 1c158 <__udivsi3+0xb4>
1c154: 018b lsls r3, r1, #6
1c156: 1ac0 subs r0, r0, r3
1c158: 4152 adcs r2, r2
1c15a: 0943 lsrs r3, r0, #5
1c15c: 428b cmp r3, r1
1c15e: d301 bcc.n 1c164 <__udivsi3+0xc0>
1c160: 014b lsls r3, r1, #5
1c162: 1ac0 subs r0, r0, r3
1c164: 4152 adcs r2, r2
1c166: 0903 lsrs r3, r0, #4
1c168: 428b cmp r3, r1
1c16a: d301 bcc.n 1c170 <__udivsi3+0xcc>
1c16c: 010b lsls r3, r1, #4
1c16e: 1ac0 subs r0, r0, r3
1c170: 4152 adcs r2, r2
1c172: 08c3 lsrs r3, r0, #3
1c174: 428b cmp r3, r1
1c176: d301 bcc.n 1c17c <__udivsi3+0xd8>
1c178: 00cb lsls r3, r1, #3
1c17a: 1ac0 subs r0, r0, r3
1c17c: 4152 adcs r2, r2
1c17e: 0883 lsrs r3, r0, #2
1c180: 428b cmp r3, r1
1c182: d301 bcc.n 1c188 <__udivsi3+0xe4>
1c184: 008b lsls r3, r1, #2
1c186: 1ac0 subs r0, r0, r3
1c188: 4152 adcs r2, r2
1c18a: 0843 lsrs r3, r0, #1
1c18c: 428b cmp r3, r1
1c18e: d301 bcc.n 1c194 <__udivsi3+0xf0>
1c190: 004b lsls r3, r1, #1
1c192: 1ac0 subs r0, r0, r3
1c194: 4152 adcs r2, r2
1c196: 1a41 subs r1, r0, r1
1c198: d200 bcs.n 1c19c <__udivsi3+0xf8>
1c19a: 4601 mov r1, r0
1c19c: 4152 adcs r2, r2
1c19e: 4610 mov r0, r2
1c1a0: 4770 bx lr
1c1a2: e7ff b.n 1c1a4 <__udivsi3+0x100>
1c1a4: b501 push {r0, lr}
1c1a6: 2000 movs r0, #0
1c1a8: f000 f8f0 bl 1c38c <__aeabi_idiv0>
1c1ac: bd02 pop {r1, pc}
1c1ae: 46c0 nop ; (mov r8, r8)
0001c1b0 <__aeabi_uidivmod>:
1c1b0: 2900 cmp r1, #0
1c1b2: d0f7 beq.n 1c1a4 <__udivsi3+0x100>
1c1b4: e776 b.n 1c0a4 <__udivsi3>
1c1b6: 4770 bx lr
0001c1b8 <__divsi3>:
1c1b8: 4603 mov r3, r0
1c1ba: 430b orrs r3, r1
1c1bc: d47f bmi.n 1c2be <__divsi3+0x106>
1c1be: 2200 movs r2, #0
1c1c0: 0843 lsrs r3, r0, #1
1c1c2: 428b cmp r3, r1
1c1c4: d374 bcc.n 1c2b0 <__divsi3+0xf8>
1c1c6: 0903 lsrs r3, r0, #4
1c1c8: 428b cmp r3, r1
1c1ca: d35f bcc.n 1c28c <__divsi3+0xd4>
1c1cc: 0a03 lsrs r3, r0, #8
1c1ce: 428b cmp r3, r1
1c1d0: d344 bcc.n 1c25c <__divsi3+0xa4>
1c1d2: 0b03 lsrs r3, r0, #12
1c1d4: 428b cmp r3, r1
1c1d6: d328 bcc.n 1c22a <__divsi3+0x72>
1c1d8: 0c03 lsrs r3, r0, #16
1c1da: 428b cmp r3, r1
1c1dc: d30d bcc.n 1c1fa <__divsi3+0x42>
1c1de: 22ff movs r2, #255 ; 0xff
1c1e0: 0209 lsls r1, r1, #8
1c1e2: ba12 rev r2, r2
1c1e4: 0c03 lsrs r3, r0, #16
1c1e6: 428b cmp r3, r1
1c1e8: d302 bcc.n 1c1f0 <__divsi3+0x38>
1c1ea: 1212 asrs r2, r2, #8
1c1ec: 0209 lsls r1, r1, #8
1c1ee: d065 beq.n 1c2bc <__divsi3+0x104>
1c1f0: 0b03 lsrs r3, r0, #12
1c1f2: 428b cmp r3, r1
1c1f4: d319 bcc.n 1c22a <__divsi3+0x72>
1c1f6: e000 b.n 1c1fa <__divsi3+0x42>
1c1f8: 0a09 lsrs r1, r1, #8
1c1fa: 0bc3 lsrs r3, r0, #15
1c1fc: 428b cmp r3, r1
1c1fe: d301 bcc.n 1c204 <__divsi3+0x4c>
1c200: 03cb lsls r3, r1, #15
1c202: 1ac0 subs r0, r0, r3
1c204: 4152 adcs r2, r2
1c206: 0b83 lsrs r3, r0, #14
1c208: 428b cmp r3, r1
1c20a: d301 bcc.n 1c210 <__divsi3+0x58>
1c20c: 038b lsls r3, r1, #14
1c20e: 1ac0 subs r0, r0, r3
1c210: 4152 adcs r2, r2
1c212: 0b43 lsrs r3, r0, #13
1c214: 428b cmp r3, r1
1c216: d301 bcc.n 1c21c <__divsi3+0x64>
1c218: 034b lsls r3, r1, #13
1c21a: 1ac0 subs r0, r0, r3
1c21c: 4152 adcs r2, r2
1c21e: 0b03 lsrs r3, r0, #12
1c220: 428b cmp r3, r1
1c222: d301 bcc.n 1c228 <__divsi3+0x70>
1c224: 030b lsls r3, r1, #12
1c226: 1ac0 subs r0, r0, r3
1c228: 4152 adcs r2, r2
1c22a: 0ac3 lsrs r3, r0, #11
1c22c: 428b cmp r3, r1
1c22e: d301 bcc.n 1c234 <__divsi3+0x7c>
1c230: 02cb lsls r3, r1, #11
1c232: 1ac0 subs r0, r0, r3
1c234: 4152 adcs r2, r2
1c236: 0a83 lsrs r3, r0, #10
1c238: 428b cmp r3, r1
1c23a: d301 bcc.n 1c240 <__divsi3+0x88>
1c23c: 028b lsls r3, r1, #10
1c23e: 1ac0 subs r0, r0, r3
1c240: 4152 adcs r2, r2
1c242: 0a43 lsrs r3, r0, #9
1c244: 428b cmp r3, r1
1c246: d301 bcc.n 1c24c <__divsi3+0x94>
1c248: 024b lsls r3, r1, #9
1c24a: 1ac0 subs r0, r0, r3
1c24c: 4152 adcs r2, r2
1c24e: 0a03 lsrs r3, r0, #8
1c250: 428b cmp r3, r1
1c252: d301 bcc.n 1c258 <__divsi3+0xa0>
1c254: 020b lsls r3, r1, #8
1c256: 1ac0 subs r0, r0, r3
1c258: 4152 adcs r2, r2
1c25a: d2cd bcs.n 1c1f8 <__divsi3+0x40>
1c25c: 09c3 lsrs r3, r0, #7
1c25e: 428b cmp r3, r1
1c260: d301 bcc.n 1c266 <__divsi3+0xae>
1c262: 01cb lsls r3, r1, #7
1c264: 1ac0 subs r0, r0, r3
1c266: 4152 adcs r2, r2
1c268: 0983 lsrs r3, r0, #6
1c26a: 428b cmp r3, r1
1c26c: d301 bcc.n 1c272 <__divsi3+0xba>
1c26e: 018b lsls r3, r1, #6
1c270: 1ac0 subs r0, r0, r3
1c272: 4152 adcs r2, r2
1c274: 0943 lsrs r3, r0, #5
1c276: 428b cmp r3, r1
1c278: d301 bcc.n 1c27e <__divsi3+0xc6>
1c27a: 014b lsls r3, r1, #5
1c27c: 1ac0 subs r0, r0, r3
1c27e: 4152 adcs r2, r2
1c280: 0903 lsrs r3, r0, #4
1c282: 428b cmp r3, r1
1c284: d301 bcc.n 1c28a <__divsi3+0xd2>
1c286: 010b lsls r3, r1, #4
1c288: 1ac0 subs r0, r0, r3
1c28a: 4152 adcs r2, r2
1c28c: 08c3 lsrs r3, r0, #3
1c28e: 428b cmp r3, r1
1c290: d301 bcc.n 1c296 <__divsi3+0xde>
1c292: 00cb lsls r3, r1, #3
1c294: 1ac0 subs r0, r0, r3
1c296: 4152 adcs r2, r2
1c298: 0883 lsrs r3, r0, #2
1c29a: 428b cmp r3, r1
1c29c: d301 bcc.n 1c2a2 <__divsi3+0xea>
1c29e: 008b lsls r3, r1, #2
1c2a0: 1ac0 subs r0, r0, r3
1c2a2: 4152 adcs r2, r2
1c2a4: 0843 lsrs r3, r0, #1
1c2a6: 428b cmp r3, r1
1c2a8: d301 bcc.n 1c2ae <__divsi3+0xf6>
1c2aa: 004b lsls r3, r1, #1
1c2ac: 1ac0 subs r0, r0, r3
1c2ae: 4152 adcs r2, r2
1c2b0: 1a41 subs r1, r0, r1
1c2b2: d200 bcs.n 1c2b6 <__divsi3+0xfe>
1c2b4: 4601 mov r1, r0
1c2b6: 4152 adcs r2, r2
1c2b8: 4610 mov r0, r2
1c2ba: 4770 bx lr
1c2bc: e05d b.n 1c37a <__divsi3+0x1c2>
1c2be: 0fca lsrs r2, r1, #31
1c2c0: d000 beq.n 1c2c4 <__divsi3+0x10c>
1c2c2: 4249 negs r1, r1
1c2c4: 1003 asrs r3, r0, #32
1c2c6: d300 bcc.n 1c2ca <__divsi3+0x112>
1c2c8: 4240 negs r0, r0
1c2ca: 4053 eors r3, r2
1c2cc: 2200 movs r2, #0
1c2ce: 469c mov ip, r3
1c2d0: 0903 lsrs r3, r0, #4
1c2d2: 428b cmp r3, r1
1c2d4: d32d bcc.n 1c332 <__divsi3+0x17a>
1c2d6: 0a03 lsrs r3, r0, #8
1c2d8: 428b cmp r3, r1
1c2da: d312 bcc.n 1c302 <__divsi3+0x14a>
1c2dc: 22fc movs r2, #252 ; 0xfc
1c2de: 0189 lsls r1, r1, #6
1c2e0: ba12 rev r2, r2
1c2e2: 0a03 lsrs r3, r0, #8
1c2e4: 428b cmp r3, r1
1c2e6: d30c bcc.n 1c302 <__divsi3+0x14a>
1c2e8: 0189 lsls r1, r1, #6
1c2ea: 1192 asrs r2, r2, #6
1c2ec: 428b cmp r3, r1
1c2ee: d308 bcc.n 1c302 <__divsi3+0x14a>
1c2f0: 0189 lsls r1, r1, #6
1c2f2: 1192 asrs r2, r2, #6
1c2f4: 428b cmp r3, r1
1c2f6: d304 bcc.n 1c302 <__divsi3+0x14a>
1c2f8: 0189 lsls r1, r1, #6
1c2fa: d03a beq.n 1c372 <__divsi3+0x1ba>
1c2fc: 1192 asrs r2, r2, #6
1c2fe: e000 b.n 1c302 <__divsi3+0x14a>
1c300: 0989 lsrs r1, r1, #6
1c302: 09c3 lsrs r3, r0, #7
1c304: 428b cmp r3, r1
1c306: d301 bcc.n 1c30c <__divsi3+0x154>
1c308: 01cb lsls r3, r1, #7
1c30a: 1ac0 subs r0, r0, r3
1c30c: 4152 adcs r2, r2
1c30e: 0983 lsrs r3, r0, #6
1c310: 428b cmp r3, r1
1c312: d301 bcc.n 1c318 <__divsi3+0x160>
1c314: 018b lsls r3, r1, #6
1c316: 1ac0 subs r0, r0, r3
1c318: 4152 adcs r2, r2
1c31a: 0943 lsrs r3, r0, #5
1c31c: 428b cmp r3, r1
1c31e: d301 bcc.n 1c324 <__divsi3+0x16c>
1c320: 014b lsls r3, r1, #5
1c322: 1ac0 subs r0, r0, r3
1c324: 4152 adcs r2, r2
1c326: 0903 lsrs r3, r0, #4
1c328: 428b cmp r3, r1
1c32a: d301 bcc.n 1c330 <__divsi3+0x178>
1c32c: 010b lsls r3, r1, #4
1c32e: 1ac0 subs r0, r0, r3
1c330: 4152 adcs r2, r2
1c332: 08c3 lsrs r3, r0, #3
1c334: 428b cmp r3, r1
1c336: d301 bcc.n 1c33c <__divsi3+0x184>
1c338: 00cb lsls r3, r1, #3
1c33a: 1ac0 subs r0, r0, r3
1c33c: 4152 adcs r2, r2
1c33e: 0883 lsrs r3, r0, #2
1c340: 428b cmp r3, r1
1c342: d301 bcc.n 1c348 <__divsi3+0x190>
1c344: 008b lsls r3, r1, #2
1c346: 1ac0 subs r0, r0, r3
1c348: 4152 adcs r2, r2
1c34a: d2d9 bcs.n 1c300 <__divsi3+0x148>
1c34c: 0843 lsrs r3, r0, #1
1c34e: 428b cmp r3, r1
1c350: d301 bcc.n 1c356 <__divsi3+0x19e>
1c352: 004b lsls r3, r1, #1
1c354: 1ac0 subs r0, r0, r3
1c356: 4152 adcs r2, r2
1c358: 1a41 subs r1, r0, r1
1c35a: d200 bcs.n 1c35e <__divsi3+0x1a6>
1c35c: 4601 mov r1, r0
1c35e: 4663 mov r3, ip
1c360: 4152 adcs r2, r2
1c362: 105b asrs r3, r3, #1
1c364: 4610 mov r0, r2
1c366: d301 bcc.n 1c36c <__divsi3+0x1b4>
1c368: 4240 negs r0, r0
1c36a: 2b00 cmp r3, #0
1c36c: d500 bpl.n 1c370 <__divsi3+0x1b8>
1c36e: 4249 negs r1, r1
1c370: 4770 bx lr
1c372: 4663 mov r3, ip
1c374: 105b asrs r3, r3, #1
1c376: d300 bcc.n 1c37a <__divsi3+0x1c2>
1c378: 4240 negs r0, r0
1c37a: b501 push {r0, lr}
1c37c: 2000 movs r0, #0
1c37e: f000 f805 bl 1c38c <__aeabi_idiv0>
1c382: bd02 pop {r1, pc}
0001c384 <__aeabi_idivmod>:
1c384: 2900 cmp r1, #0
1c386: d0f8 beq.n 1c37a <__divsi3+0x1c2>
1c388: e716 b.n 1c1b8 <__divsi3>
1c38a: 4770 bx lr
0001c38c <__aeabi_idiv0>:
1c38c: 4770 bx lr
1c38e: 46c0 nop ; (mov r8, r8)
0001c390 <__aeabi_uldivmod>:
1c390: 2b00 cmp r3, #0
1c392: d111 bne.n 1c3b8 <__aeabi_uldivmod+0x28>
1c394: 2a00 cmp r2, #0
1c396: d10f bne.n 1c3b8 <__aeabi_uldivmod+0x28>
1c398: 2900 cmp r1, #0
1c39a: d100 bne.n 1c39e <__aeabi_uldivmod+0xe>
1c39c: 2800 cmp r0, #0
1c39e: d002 beq.n 1c3a6 <__aeabi_uldivmod+0x16>
1c3a0: 2100 movs r1, #0
1c3a2: 43c9 mvns r1, r1
1c3a4: 1c08 adds r0, r1, #0
1c3a6: b407 push {r0, r1, r2}
1c3a8: 4802 ldr r0, [pc, #8] ; (1c3b4 <__aeabi_uldivmod+0x24>)
1c3aa: a102 add r1, pc, #8 ; (adr r1, 1c3b4 <__aeabi_uldivmod+0x24>)
1c3ac: 1840 adds r0, r0, r1
1c3ae: 9002 str r0, [sp, #8]
1c3b0: bd03 pop {r0, r1, pc}
1c3b2: 46c0 nop ; (mov r8, r8)
1c3b4: ffffffd9 .word 0xffffffd9
1c3b8: b403 push {r0, r1}
1c3ba: 4668 mov r0, sp
1c3bc: b501 push {r0, lr}
1c3be: 9802 ldr r0, [sp, #8]
1c3c0: f000 f830 bl 1c424 <__udivmoddi4>
1c3c4: 9b01 ldr r3, [sp, #4]
1c3c6: 469e mov lr, r3
1c3c8: b002 add sp, #8
1c3ca: bc0c pop {r2, r3}
1c3cc: 4770 bx lr
1c3ce: 46c0 nop ; (mov r8, r8)
0001c3d0 <__aeabi_lmul>:
1c3d0: b5f0 push {r4, r5, r6, r7, lr}
1c3d2: 46ce mov lr, r9
1c3d4: 4647 mov r7, r8
1c3d6: 0415 lsls r5, r2, #16
1c3d8: 0c2d lsrs r5, r5, #16
1c3da: 002e movs r6, r5
1c3dc: b580 push {r7, lr}
1c3de: 0407 lsls r7, r0, #16
1c3e0: 0c14 lsrs r4, r2, #16
1c3e2: 0c3f lsrs r7, r7, #16
1c3e4: 4699 mov r9, r3
1c3e6: 0c03 lsrs r3, r0, #16
1c3e8: 437e muls r6, r7
1c3ea: 435d muls r5, r3
1c3ec: 4367 muls r7, r4
1c3ee: 4363 muls r3, r4
1c3f0: 197f adds r7, r7, r5
1c3f2: 0c34 lsrs r4, r6, #16
1c3f4: 19e4 adds r4, r4, r7
1c3f6: 469c mov ip, r3
1c3f8: 42a5 cmp r5, r4
1c3fa: d903 bls.n 1c404 <__aeabi_lmul+0x34>
1c3fc: 2380 movs r3, #128 ; 0x80
1c3fe: 025b lsls r3, r3, #9
1c400: 4698 mov r8, r3
1c402: 44c4 add ip, r8
1c404: 464b mov r3, r9
1c406: 4351 muls r1, r2
1c408: 4343 muls r3, r0
1c40a: 0436 lsls r6, r6, #16
1c40c: 0c36 lsrs r6, r6, #16
1c40e: 0c25 lsrs r5, r4, #16
1c410: 0424 lsls r4, r4, #16
1c412: 4465 add r5, ip
1c414: 19a4 adds r4, r4, r6
1c416: 1859 adds r1, r3, r1
1c418: 1949 adds r1, r1, r5
1c41a: 0020 movs r0, r4
1c41c: bc0c pop {r2, r3}
1c41e: 4690 mov r8, r2
1c420: 4699 mov r9, r3
1c422: bdf0 pop {r4, r5, r6, r7, pc}
0001c424 <__udivmoddi4>:
1c424: b5f0 push {r4, r5, r6, r7, lr}
1c426: 4657 mov r7, sl
1c428: 464e mov r6, r9
1c42a: 4645 mov r5, r8
1c42c: 46de mov lr, fp
1c42e: b5e0 push {r5, r6, r7, lr}
1c430: 0004 movs r4, r0
1c432: b083 sub sp, #12
1c434: 000d movs r5, r1
1c436: 4692 mov sl, r2
1c438: 4699 mov r9, r3
1c43a: 428b cmp r3, r1
1c43c: d82f bhi.n 1c49e <__udivmoddi4+0x7a>
1c43e: d02c beq.n 1c49a <__udivmoddi4+0x76>
1c440: 4649 mov r1, r9
1c442: 4650 mov r0, sl
1c444: f000 f8cc bl 1c5e0 <__clzdi2>
1c448: 0029 movs r1, r5
1c44a: 0006 movs r6, r0
1c44c: 0020 movs r0, r4
1c44e: f000 f8c7 bl 1c5e0 <__clzdi2>
1c452: 1a33 subs r3, r6, r0
1c454: 4698 mov r8, r3
1c456: 3b20 subs r3, #32
1c458: 469b mov fp, r3
1c45a: d500 bpl.n 1c45e <__udivmoddi4+0x3a>
1c45c: e074 b.n 1c548 <__udivmoddi4+0x124>
1c45e: 4653 mov r3, sl
1c460: 465a mov r2, fp
1c462: 4093 lsls r3, r2
1c464: 001f movs r7, r3
1c466: 4653 mov r3, sl
1c468: 4642 mov r2, r8
1c46a: 4093 lsls r3, r2
1c46c: 001e movs r6, r3
1c46e: 42af cmp r7, r5
1c470: d829 bhi.n 1c4c6 <__udivmoddi4+0xa2>
1c472: d026 beq.n 1c4c2 <__udivmoddi4+0x9e>
1c474: 465b mov r3, fp
1c476: 1ba4 subs r4, r4, r6
1c478: 41bd sbcs r5, r7
1c47a: 2b00 cmp r3, #0
1c47c: da00 bge.n 1c480 <__udivmoddi4+0x5c>
1c47e: e079 b.n 1c574 <__udivmoddi4+0x150>
1c480: 2200 movs r2, #0
1c482: 2300 movs r3, #0
1c484: 9200 str r2, [sp, #0]
1c486: 9301 str r3, [sp, #4]
1c488: 2301 movs r3, #1
1c48a: 465a mov r2, fp
1c48c: 4093 lsls r3, r2
1c48e: 9301 str r3, [sp, #4]
1c490: 2301 movs r3, #1
1c492: 4642 mov r2, r8
1c494: 4093 lsls r3, r2
1c496: 9300 str r3, [sp, #0]
1c498: e019 b.n 1c4ce <__udivmoddi4+0xaa>
1c49a: 4282 cmp r2, r0
1c49c: d9d0 bls.n 1c440 <__udivmoddi4+0x1c>
1c49e: 2200 movs r2, #0
1c4a0: 2300 movs r3, #0
1c4a2: 9200 str r2, [sp, #0]
1c4a4: 9301 str r3, [sp, #4]
1c4a6: 9b0c ldr r3, [sp, #48] ; 0x30
1c4a8: 2b00 cmp r3, #0
1c4aa: d001 beq.n 1c4b0 <__udivmoddi4+0x8c>
1c4ac: 601c str r4, [r3, #0]
1c4ae: 605d str r5, [r3, #4]
1c4b0: 9800 ldr r0, [sp, #0]
1c4b2: 9901 ldr r1, [sp, #4]
1c4b4: b003 add sp, #12
1c4b6: bc3c pop {r2, r3, r4, r5}
1c4b8: 4690 mov r8, r2
1c4ba: 4699 mov r9, r3
1c4bc: 46a2 mov sl, r4
1c4be: 46ab mov fp, r5
1c4c0: bdf0 pop {r4, r5, r6, r7, pc}
1c4c2: 42a3 cmp r3, r4
1c4c4: d9d6 bls.n 1c474 <__udivmoddi4+0x50>
1c4c6: 2200 movs r2, #0
1c4c8: 2300 movs r3, #0
1c4ca: 9200 str r2, [sp, #0]
1c4cc: 9301 str r3, [sp, #4]
1c4ce: 4643 mov r3, r8
1c4d0: 2b00 cmp r3, #0
1c4d2: d0e8 beq.n 1c4a6 <__udivmoddi4+0x82>
1c4d4: 07fb lsls r3, r7, #31
1c4d6: 0872 lsrs r2, r6, #1
1c4d8: 431a orrs r2, r3
1c4da: 4646 mov r6, r8
1c4dc: 087b lsrs r3, r7, #1
1c4de: e00e b.n 1c4fe <__udivmoddi4+0xda>
1c4e0: 42ab cmp r3, r5
1c4e2: d101 bne.n 1c4e8 <__udivmoddi4+0xc4>
1c4e4: 42a2 cmp r2, r4
1c4e6: d80c bhi.n 1c502 <__udivmoddi4+0xde>
1c4e8: 1aa4 subs r4, r4, r2
1c4ea: 419d sbcs r5, r3
1c4ec: 2001 movs r0, #1
1c4ee: 1924 adds r4, r4, r4
1c4f0: 416d adcs r5, r5
1c4f2: 2100 movs r1, #0
1c4f4: 3e01 subs r6, #1
1c4f6: 1824 adds r4, r4, r0
1c4f8: 414d adcs r5, r1
1c4fa: 2e00 cmp r6, #0
1c4fc: d006 beq.n 1c50c <__udivmoddi4+0xe8>
1c4fe: 42ab cmp r3, r5
1c500: d9ee bls.n 1c4e0 <__udivmoddi4+0xbc>
1c502: 3e01 subs r6, #1
1c504: 1924 adds r4, r4, r4
1c506: 416d adcs r5, r5
1c508: 2e00 cmp r6, #0
1c50a: d1f8 bne.n 1c4fe <__udivmoddi4+0xda>
1c50c: 465b mov r3, fp
1c50e: 9800 ldr r0, [sp, #0]
1c510: 9901 ldr r1, [sp, #4]
1c512: 1900 adds r0, r0, r4
1c514: 4169 adcs r1, r5
1c516: 2b00 cmp r3, #0
1c518: db22 blt.n 1c560 <__udivmoddi4+0x13c>
1c51a: 002b movs r3, r5
1c51c: 465a mov r2, fp
1c51e: 40d3 lsrs r3, r2
1c520: 002a movs r2, r5
1c522: 4644 mov r4, r8
1c524: 40e2 lsrs r2, r4
1c526: 001c movs r4, r3
1c528: 465b mov r3, fp
1c52a: 0015 movs r5, r2
1c52c: 2b00 cmp r3, #0
1c52e: db2c blt.n 1c58a <__udivmoddi4+0x166>
1c530: 0026 movs r6, r4
1c532: 409e lsls r6, r3
1c534: 0033 movs r3, r6
1c536: 0026 movs r6, r4
1c538: 4647 mov r7, r8
1c53a: 40be lsls r6, r7
1c53c: 0032 movs r2, r6
1c53e: 1a80 subs r0, r0, r2
1c540: 4199 sbcs r1, r3
1c542: 9000 str r0, [sp, #0]
1c544: 9101 str r1, [sp, #4]
1c546: e7ae b.n 1c4a6 <__udivmoddi4+0x82>
1c548: 4642 mov r2, r8
1c54a: 2320 movs r3, #32
1c54c: 1a9b subs r3, r3, r2
1c54e: 4652 mov r2, sl
1c550: 40da lsrs r2, r3
1c552: 4641 mov r1, r8
1c554: 0013 movs r3, r2
1c556: 464a mov r2, r9
1c558: 408a lsls r2, r1
1c55a: 0017 movs r7, r2
1c55c: 431f orrs r7, r3
1c55e: e782 b.n 1c466 <__udivmoddi4+0x42>
1c560: 4642 mov r2, r8
1c562: 2320 movs r3, #32
1c564: 1a9b subs r3, r3, r2
1c566: 002a movs r2, r5
1c568: 4646 mov r6, r8
1c56a: 409a lsls r2, r3
1c56c: 0023 movs r3, r4
1c56e: 40f3 lsrs r3, r6
1c570: 4313 orrs r3, r2
1c572: e7d5 b.n 1c520 <__udivmoddi4+0xfc>
1c574: 4642 mov r2, r8
1c576: 2320 movs r3, #32
1c578: 2100 movs r1, #0
1c57a: 1a9b subs r3, r3, r2
1c57c: 2200 movs r2, #0
1c57e: 9100 str r1, [sp, #0]
1c580: 9201 str r2, [sp, #4]
1c582: 2201 movs r2, #1
1c584: 40da lsrs r2, r3
1c586: 9201 str r2, [sp, #4]
1c588: e782 b.n 1c490 <__udivmoddi4+0x6c>
1c58a: 4642 mov r2, r8
1c58c: 2320 movs r3, #32
1c58e: 0026 movs r6, r4
1c590: 1a9b subs r3, r3, r2
1c592: 40de lsrs r6, r3
1c594: 002f movs r7, r5
1c596: 46b4 mov ip, r6
1c598: 4097 lsls r7, r2
1c59a: 4666 mov r6, ip
1c59c: 003b movs r3, r7
1c59e: 4333 orrs r3, r6
1c5a0: e7c9 b.n 1c536 <__udivmoddi4+0x112>
1c5a2: 46c0 nop ; (mov r8, r8)
0001c5a4 <__clzsi2>:
1c5a4: 211c movs r1, #28
1c5a6: 2301 movs r3, #1
1c5a8: 041b lsls r3, r3, #16
1c5aa: 4298 cmp r0, r3
1c5ac: d301 bcc.n 1c5b2 <__clzsi2+0xe>
1c5ae: 0c00 lsrs r0, r0, #16
1c5b0: 3910 subs r1, #16
1c5b2: 0a1b lsrs r3, r3, #8
1c5b4: 4298 cmp r0, r3
1c5b6: d301 bcc.n 1c5bc <__clzsi2+0x18>
1c5b8: 0a00 lsrs r0, r0, #8
1c5ba: 3908 subs r1, #8
1c5bc: 091b lsrs r3, r3, #4
1c5be: 4298 cmp r0, r3
1c5c0: d301 bcc.n 1c5c6 <__clzsi2+0x22>
1c5c2: 0900 lsrs r0, r0, #4
1c5c4: 3904 subs r1, #4
1c5c6: a202 add r2, pc, #8 ; (adr r2, 1c5d0 <__clzsi2+0x2c>)
1c5c8: 5c10 ldrb r0, [r2, r0]
1c5ca: 1840 adds r0, r0, r1
1c5cc: 4770 bx lr
1c5ce: 46c0 nop ; (mov r8, r8)
1c5d0: 02020304 .word 0x02020304
1c5d4: 01010101 .word 0x01010101
...
0001c5e0 <__clzdi2>:
1c5e0: b510 push {r4, lr}
1c5e2: 2900 cmp r1, #0
1c5e4: d103 bne.n 1c5ee <__clzdi2+0xe>
1c5e6: f7ff ffdd bl 1c5a4 <__clzsi2>
1c5ea: 3020 adds r0, #32
1c5ec: e002 b.n 1c5f4 <__clzdi2+0x14>
1c5ee: 1c08 adds r0, r1, #0
1c5f0: f7ff ffd8 bl 1c5a4 <__clzsi2>
1c5f4: bd10 pop {r4, pc}
1c5f6: 46c0 nop ; (mov r8, r8)
0001c5f8 <__libc_init_array>:
1c5f8: b570 push {r4, r5, r6, lr}
1c5fa: 2600 movs r6, #0
1c5fc: 4d0c ldr r5, [pc, #48] ; (1c630 <__libc_init_array+0x38>)
1c5fe: 4c0d ldr r4, [pc, #52] ; (1c634 <__libc_init_array+0x3c>)
1c600: 1b64 subs r4, r4, r5
1c602: 10a4 asrs r4, r4, #2
1c604: 42a6 cmp r6, r4
1c606: d109 bne.n 1c61c <__libc_init_array+0x24>
1c608: 2600 movs r6, #0
1c60a: f00e fd95 bl 2b138 <_init>
1c60e: 4d0a ldr r5, [pc, #40] ; (1c638 <__libc_init_array+0x40>)
1c610: 4c0a ldr r4, [pc, #40] ; (1c63c <__libc_init_array+0x44>)
1c612: 1b64 subs r4, r4, r5
1c614: 10a4 asrs r4, r4, #2
1c616: 42a6 cmp r6, r4
1c618: d105 bne.n 1c626 <__libc_init_array+0x2e>
1c61a: bd70 pop {r4, r5, r6, pc}
1c61c: 00b3 lsls r3, r6, #2
1c61e: 58eb ldr r3, [r5, r3]
1c620: 4798 blx r3
1c622: 3601 adds r6, #1
1c624: e7ee b.n 1c604 <__libc_init_array+0xc>
1c626: 00b3 lsls r3, r6, #2
1c628: 58eb ldr r3, [r5, r3]
1c62a: 4798 blx r3
1c62c: 3601 adds r6, #1
1c62e: e7f2 b.n 1c616 <__libc_init_array+0x1e>
1c630: 0002b144 .word 0x0002b144
1c634: 0002b144 .word 0x0002b144
1c638: 0002b144 .word 0x0002b144
1c63c: 0002b148 .word 0x0002b148
0001c640 <memcmp>:
1c640: b530 push {r4, r5, lr}
1c642: 2400 movs r4, #0
1c644: 42a2 cmp r2, r4
1c646: d101 bne.n 1c64c <memcmp+0xc>
1c648: 2000 movs r0, #0
1c64a: e005 b.n 1c658 <memcmp+0x18>
1c64c: 5d03 ldrb r3, [r0, r4]
1c64e: 1c65 adds r5, r4, #1
1c650: 5d0c ldrb r4, [r1, r4]
1c652: 42a3 cmp r3, r4
1c654: d001 beq.n 1c65a <memcmp+0x1a>
1c656: 1b18 subs r0, r3, r4
1c658: bd30 pop {r4, r5, pc}
1c65a: 002c movs r4, r5
1c65c: e7f2 b.n 1c644 <memcmp+0x4>
0001c65e <memcpy>:
1c65e: 2300 movs r3, #0
1c660: b510 push {r4, lr}
1c662: 429a cmp r2, r3
1c664: d100 bne.n 1c668 <memcpy+0xa>
1c666: bd10 pop {r4, pc}
1c668: 5ccc ldrb r4, [r1, r3]
1c66a: 54c4 strb r4, [r0, r3]
1c66c: 3301 adds r3, #1
1c66e: e7f8 b.n 1c662 <memcpy+0x4>
0001c670 <memset>:
1c670: 0003 movs r3, r0
1c672: 1882 adds r2, r0, r2
1c674: 4293 cmp r3, r2
1c676: d100 bne.n 1c67a <memset+0xa>
1c678: 4770 bx lr
1c67a: 7019 strb r1, [r3, #0]
1c67c: 3301 adds r3, #1
1c67e: e7f9 b.n 1c674 <memset+0x4>
0001c680 <sniprintf>:
1c680: b40c push {r2, r3}
1c682: b530 push {r4, r5, lr}
1c684: 4b16 ldr r3, [pc, #88] ; (1c6e0 <sniprintf+0x60>)
1c686: b09d sub sp, #116 ; 0x74
1c688: 1e0c subs r4, r1, #0
1c68a: 681d ldr r5, [r3, #0]
1c68c: da08 bge.n 1c6a0 <sniprintf+0x20>
1c68e: 238b movs r3, #139 ; 0x8b
1c690: 2001 movs r0, #1
1c692: 602b str r3, [r5, #0]
1c694: 4240 negs r0, r0
1c696: b01d add sp, #116 ; 0x74
1c698: bc30 pop {r4, r5}
1c69a: bc08 pop {r3}
1c69c: b002 add sp, #8
1c69e: 4718 bx r3
1c6a0: 2382 movs r3, #130 ; 0x82
1c6a2: a902 add r1, sp, #8
1c6a4: 009b lsls r3, r3, #2
1c6a6: 818b strh r3, [r1, #12]
1c6a8: 2300 movs r3, #0
1c6aa: 9002 str r0, [sp, #8]
1c6ac: 6108 str r0, [r1, #16]
1c6ae: 429c cmp r4, r3
1c6b0: d000 beq.n 1c6b4 <sniprintf+0x34>
1c6b2: 1e63 subs r3, r4, #1
1c6b4: 608b str r3, [r1, #8]
1c6b6: 614b str r3, [r1, #20]
1c6b8: 2301 movs r3, #1
1c6ba: 425b negs r3, r3
1c6bc: 81cb strh r3, [r1, #14]
1c6be: 9a20 ldr r2, [sp, #128] ; 0x80
1c6c0: ab21 add r3, sp, #132 ; 0x84
1c6c2: 0028 movs r0, r5
1c6c4: 9301 str r3, [sp, #4]
1c6c6: f000 f8ad bl 1c824 <_svfiprintf_r>
1c6ca: 1c43 adds r3, r0, #1
1c6cc: da01 bge.n 1c6d2 <sniprintf+0x52>
1c6ce: 238b movs r3, #139 ; 0x8b
1c6d0: 602b str r3, [r5, #0]
1c6d2: 2c00 cmp r4, #0
1c6d4: d0df beq.n 1c696 <sniprintf+0x16>
1c6d6: 2300 movs r3, #0
1c6d8: 9a02 ldr r2, [sp, #8]
1c6da: 7013 strb r3, [r2, #0]
1c6dc: e7db b.n 1c696 <sniprintf+0x16>
1c6de: 46c0 nop ; (mov r8, r8)
1c6e0: 20000070 .word 0x20000070
0001c6e4 <strcmp>:
1c6e4: 7802 ldrb r2, [r0, #0]
1c6e6: 780b ldrb r3, [r1, #0]
1c6e8: 2a00 cmp r2, #0
1c6ea: d003 beq.n 1c6f4 <strcmp+0x10>
1c6ec: 3001 adds r0, #1
1c6ee: 3101 adds r1, #1
1c6f0: 429a cmp r2, r3
1c6f2: d0f7 beq.n 1c6e4 <strcmp>
1c6f4: 1ad0 subs r0, r2, r3
1c6f6: 4770 bx lr
0001c6f8 <strcpy>:
1c6f8: 1c03 adds r3, r0, #0
1c6fa: 780a ldrb r2, [r1, #0]
1c6fc: 3101 adds r1, #1
1c6fe: 701a strb r2, [r3, #0]
1c700: 3301 adds r3, #1
1c702: 2a00 cmp r2, #0
1c704: d1f9 bne.n 1c6fa <strcpy+0x2>
1c706: 4770 bx lr
0001c708 <strlen>:
1c708: 2300 movs r3, #0
1c70a: 5cc2 ldrb r2, [r0, r3]
1c70c: 3301 adds r3, #1
1c70e: 2a00 cmp r2, #0
1c710: d1fb bne.n 1c70a <strlen+0x2>
1c712: 1e58 subs r0, r3, #1
1c714: 4770 bx lr
...
0001c718 <_vsiprintf_r>:
1c718: b530 push {r4, r5, lr}
1c71a: b09b sub sp, #108 ; 0x6c
1c71c: 9100 str r1, [sp, #0]
1c71e: 9104 str r1, [sp, #16]
1c720: 4908 ldr r1, [pc, #32] ; (1c744 <_vsiprintf_r+0x2c>)
1c722: 466d mov r5, sp
1c724: 9102 str r1, [sp, #8]
1c726: 9105 str r1, [sp, #20]
1c728: 2101 movs r1, #1
1c72a: 2482 movs r4, #130 ; 0x82
1c72c: 4249 negs r1, r1
1c72e: 81e9 strh r1, [r5, #14]
1c730: 00a4 lsls r4, r4, #2
1c732: 4669 mov r1, sp
1c734: 81ac strh r4, [r5, #12]
1c736: f000 f875 bl 1c824 <_svfiprintf_r>
1c73a: 2300 movs r3, #0
1c73c: 9a00 ldr r2, [sp, #0]
1c73e: 7013 strb r3, [r2, #0]
1c740: b01b add sp, #108 ; 0x6c
1c742: bd30 pop {r4, r5, pc}
1c744: 7fffffff .word 0x7fffffff
0001c748 <vsiprintf>:
1c748: b510 push {r4, lr}
1c74a: 0013 movs r3, r2
1c74c: 000a movs r2, r1
1c74e: 0001 movs r1, r0
1c750: 4802 ldr r0, [pc, #8] ; (1c75c <vsiprintf+0x14>)
1c752: 6800 ldr r0, [r0, #0]
1c754: f7ff ffe0 bl 1c718 <_vsiprintf_r>
1c758: bd10 pop {r4, pc}
1c75a: 46c0 nop ; (mov r8, r8)
1c75c: 20000070 .word 0x20000070
0001c760 <__ssputs_r>:
1c760: b5f0 push {r4, r5, r6, r7, lr}
1c762: 688e ldr r6, [r1, #8]
1c764: b085 sub sp, #20
1c766: 0007 movs r7, r0
1c768: 000c movs r4, r1
1c76a: 9203 str r2, [sp, #12]
1c76c: 9301 str r3, [sp, #4]
1c76e: 429e cmp r6, r3
1c770: d839 bhi.n 1c7e6 <__ssputs_r+0x86>
1c772: 2390 movs r3, #144 ; 0x90
1c774: 898a ldrh r2, [r1, #12]
1c776: 00db lsls r3, r3, #3
1c778: 421a tst r2, r3
1c77a: d034 beq.n 1c7e6 <__ssputs_r+0x86>
1c77c: 2503 movs r5, #3
1c77e: 6909 ldr r1, [r1, #16]
1c780: 6823 ldr r3, [r4, #0]
1c782: 1a5b subs r3, r3, r1
1c784: 9302 str r3, [sp, #8]
1c786: 6963 ldr r3, [r4, #20]
1c788: 9802 ldr r0, [sp, #8]
1c78a: 435d muls r5, r3
1c78c: 0feb lsrs r3, r5, #31
1c78e: 195d adds r5, r3, r5
1c790: 9b01 ldr r3, [sp, #4]
1c792: 106d asrs r5, r5, #1
1c794: 3301 adds r3, #1
1c796: 181b adds r3, r3, r0
1c798: 42ab cmp r3, r5
1c79a: d900 bls.n 1c79e <__ssputs_r+0x3e>
1c79c: 001d movs r5, r3
1c79e: 0553 lsls r3, r2, #21
1c7a0: d532 bpl.n 1c808 <__ssputs_r+0xa8>
1c7a2: 0029 movs r1, r5
1c7a4: 0038 movs r0, r7
1c7a6: f000 fb31 bl 1ce0c <_malloc_r>
1c7aa: 1e06 subs r6, r0, #0
1c7ac: d109 bne.n 1c7c2 <__ssputs_r+0x62>
1c7ae: 230c movs r3, #12
1c7b0: 603b str r3, [r7, #0]
1c7b2: 2340 movs r3, #64 ; 0x40
1c7b4: 2001 movs r0, #1
1c7b6: 89a2 ldrh r2, [r4, #12]
1c7b8: 4240 negs r0, r0
1c7ba: 4313 orrs r3, r2
1c7bc: 81a3 strh r3, [r4, #12]
1c7be: b005 add sp, #20
1c7c0: bdf0 pop {r4, r5, r6, r7, pc}
1c7c2: 9a02 ldr r2, [sp, #8]
1c7c4: 6921 ldr r1, [r4, #16]
1c7c6: f7ff ff4a bl 1c65e <memcpy>
1c7ca: 89a3 ldrh r3, [r4, #12]
1c7cc: 4a14 ldr r2, [pc, #80] ; (1c820 <__ssputs_r+0xc0>)
1c7ce: 401a ands r2, r3
1c7d0: 2380 movs r3, #128 ; 0x80
1c7d2: 4313 orrs r3, r2
1c7d4: 81a3 strh r3, [r4, #12]
1c7d6: 9b02 ldr r3, [sp, #8]
1c7d8: 6126 str r6, [r4, #16]
1c7da: 18f6 adds r6, r6, r3
1c7dc: 6026 str r6, [r4, #0]
1c7de: 6165 str r5, [r4, #20]
1c7e0: 9e01 ldr r6, [sp, #4]
1c7e2: 1aed subs r5, r5, r3
1c7e4: 60a5 str r5, [r4, #8]
1c7e6: 9b01 ldr r3, [sp, #4]
1c7e8: 42b3 cmp r3, r6
1c7ea: d200 bcs.n 1c7ee <__ssputs_r+0x8e>
1c7ec: 001e movs r6, r3
1c7ee: 0032 movs r2, r6
1c7f0: 9903 ldr r1, [sp, #12]
1c7f2: 6820 ldr r0, [r4, #0]
1c7f4: f000 faad bl 1cd52 <memmove>
1c7f8: 68a3 ldr r3, [r4, #8]
1c7fa: 2000 movs r0, #0
1c7fc: 1b9b subs r3, r3, r6
1c7fe: 60a3 str r3, [r4, #8]
1c800: 6823 ldr r3, [r4, #0]
1c802: 199e adds r6, r3, r6
1c804: 6026 str r6, [r4, #0]
1c806: e7da b.n 1c7be <__ssputs_r+0x5e>
1c808: 002a movs r2, r5
1c80a: 0038 movs r0, r7
1c80c: f000 fb5c bl 1cec8 <_realloc_r>
1c810: 1e06 subs r6, r0, #0
1c812: d1e0 bne.n 1c7d6 <__ssputs_r+0x76>
1c814: 6921 ldr r1, [r4, #16]
1c816: 0038 movs r0, r7
1c818: f000 faae bl 1cd78 <_free_r>
1c81c: e7c7 b.n 1c7ae <__ssputs_r+0x4e>
1c81e: 46c0 nop ; (mov r8, r8)
1c820: fffffb7f .word 0xfffffb7f
0001c824 <_svfiprintf_r>:
1c824: b5f0 push {r4, r5, r6, r7, lr}
1c826: b09f sub sp, #124 ; 0x7c
1c828: 9002 str r0, [sp, #8]
1c82a: 9305 str r3, [sp, #20]
1c82c: 898b ldrh r3, [r1, #12]
1c82e: 000f movs r7, r1
1c830: 0016 movs r6, r2
1c832: 061b lsls r3, r3, #24
1c834: d511 bpl.n 1c85a <_svfiprintf_r+0x36>
1c836: 690b ldr r3, [r1, #16]
1c838: 2b00 cmp r3, #0
1c83a: d10e bne.n 1c85a <_svfiprintf_r+0x36>
1c83c: 2140 movs r1, #64 ; 0x40
1c83e: f000 fae5 bl 1ce0c <_malloc_r>
1c842: 6038 str r0, [r7, #0]
1c844: 6138 str r0, [r7, #16]
1c846: 2800 cmp r0, #0
1c848: d105 bne.n 1c856 <_svfiprintf_r+0x32>
1c84a: 230c movs r3, #12
1c84c: 9a02 ldr r2, [sp, #8]
1c84e: 3801 subs r0, #1
1c850: 6013 str r3, [r2, #0]
1c852: b01f add sp, #124 ; 0x7c
1c854: bdf0 pop {r4, r5, r6, r7, pc}
1c856: 2340 movs r3, #64 ; 0x40
1c858: 617b str r3, [r7, #20]
1c85a: 2300 movs r3, #0
1c85c: ad06 add r5, sp, #24
1c85e: 616b str r3, [r5, #20]
1c860: 3320 adds r3, #32
1c862: 766b strb r3, [r5, #25]
1c864: 3310 adds r3, #16
1c866: 76ab strb r3, [r5, #26]
1c868: 0034 movs r4, r6
1c86a: 7823 ldrb r3, [r4, #0]
1c86c: 2b00 cmp r3, #0
1c86e: d147 bne.n 1c900 <_svfiprintf_r+0xdc>
1c870: 1ba3 subs r3, r4, r6
1c872: 9304 str r3, [sp, #16]
1c874: d00d beq.n 1c892 <_svfiprintf_r+0x6e>
1c876: 1ba3 subs r3, r4, r6
1c878: 0032 movs r2, r6
1c87a: 0039 movs r1, r7
1c87c: 9802 ldr r0, [sp, #8]
1c87e: f7ff ff6f bl 1c760 <__ssputs_r>
1c882: 1c43 adds r3, r0, #1
1c884: d100 bne.n 1c888 <_svfiprintf_r+0x64>
1c886: e0b5 b.n 1c9f4 <_svfiprintf_r+0x1d0>
1c888: 696a ldr r2, [r5, #20]
1c88a: 9b04 ldr r3, [sp, #16]
1c88c: 4694 mov ip, r2
1c88e: 4463 add r3, ip
1c890: 616b str r3, [r5, #20]
1c892: 7823 ldrb r3, [r4, #0]
1c894: 2b00 cmp r3, #0
1c896: d100 bne.n 1c89a <_svfiprintf_r+0x76>
1c898: e0ac b.n 1c9f4 <_svfiprintf_r+0x1d0>
1c89a: 2201 movs r2, #1
1c89c: 2300 movs r3, #0
1c89e: 4252 negs r2, r2
1c8a0: 606a str r2, [r5, #4]
1c8a2: a902 add r1, sp, #8
1c8a4: 3254 adds r2, #84 ; 0x54
1c8a6: 1852 adds r2, r2, r1
1c8a8: 3401 adds r4, #1
1c8aa: 602b str r3, [r5, #0]
1c8ac: 60eb str r3, [r5, #12]
1c8ae: 60ab str r3, [r5, #8]
1c8b0: 7013 strb r3, [r2, #0]
1c8b2: 65ab str r3, [r5, #88] ; 0x58
1c8b4: 4e58 ldr r6, [pc, #352] ; (1ca18 <_svfiprintf_r+0x1f4>)
1c8b6: 2205 movs r2, #5
1c8b8: 7821 ldrb r1, [r4, #0]
1c8ba: 0030 movs r0, r6
1c8bc: f000 fa3e bl 1cd3c <memchr>
1c8c0: 1c62 adds r2, r4, #1
1c8c2: 2800 cmp r0, #0
1c8c4: d120 bne.n 1c908 <_svfiprintf_r+0xe4>
1c8c6: 6829 ldr r1, [r5, #0]
1c8c8: 06cb lsls r3, r1, #27
1c8ca: d504 bpl.n 1c8d6 <_svfiprintf_r+0xb2>
1c8cc: 2353 movs r3, #83 ; 0x53
1c8ce: ae02 add r6, sp, #8
1c8d0: 3020 adds r0, #32
1c8d2: 199b adds r3, r3, r6
1c8d4: 7018 strb r0, [r3, #0]
1c8d6: 070b lsls r3, r1, #28
1c8d8: d504 bpl.n 1c8e4 <_svfiprintf_r+0xc0>
1c8da: 2353 movs r3, #83 ; 0x53
1c8dc: 202b movs r0, #43 ; 0x2b
1c8de: ae02 add r6, sp, #8
1c8e0: 199b adds r3, r3, r6
1c8e2: 7018 strb r0, [r3, #0]
1c8e4: 7823 ldrb r3, [r4, #0]
1c8e6: 2b2a cmp r3, #42 ; 0x2a
1c8e8: d016 beq.n 1c918 <_svfiprintf_r+0xf4>
1c8ea: 2000 movs r0, #0
1c8ec: 210a movs r1, #10
1c8ee: 9b09 ldr r3, [sp, #36] ; 0x24
1c8f0: 7822 ldrb r2, [r4, #0]
1c8f2: 3a30 subs r2, #48 ; 0x30
1c8f4: 2a09 cmp r2, #9
1c8f6: d955 bls.n 1c9a4 <_svfiprintf_r+0x180>
1c8f8: 2800 cmp r0, #0
1c8fa: d015 beq.n 1c928 <_svfiprintf_r+0x104>
1c8fc: 9309 str r3, [sp, #36] ; 0x24
1c8fe: e013 b.n 1c928 <_svfiprintf_r+0x104>
1c900: 2b25 cmp r3, #37 ; 0x25
1c902: d0b5 beq.n 1c870 <_svfiprintf_r+0x4c>
1c904: 3401 adds r4, #1
1c906: e7b0 b.n 1c86a <_svfiprintf_r+0x46>
1c908: 2301 movs r3, #1
1c90a: 1b80 subs r0, r0, r6
1c90c: 4083 lsls r3, r0
1c90e: 6829 ldr r1, [r5, #0]
1c910: 0014 movs r4, r2
1c912: 430b orrs r3, r1
1c914: 602b str r3, [r5, #0]
1c916: e7cd b.n 1c8b4 <_svfiprintf_r+0x90>
1c918: 9b05 ldr r3, [sp, #20]
1c91a: 1d18 adds r0, r3, #4
1c91c: 681b ldr r3, [r3, #0]
1c91e: 9005 str r0, [sp, #20]
1c920: 2b00 cmp r3, #0
1c922: db39 blt.n 1c998 <_svfiprintf_r+0x174>
1c924: 9309 str r3, [sp, #36] ; 0x24
1c926: 0014 movs r4, r2
1c928: 7823 ldrb r3, [r4, #0]
1c92a: 2b2e cmp r3, #46 ; 0x2e
1c92c: d10b bne.n 1c946 <_svfiprintf_r+0x122>
1c92e: 7863 ldrb r3, [r4, #1]
1c930: 1c62 adds r2, r4, #1
1c932: 2b2a cmp r3, #42 ; 0x2a
1c934: d13e bne.n 1c9b4 <_svfiprintf_r+0x190>
1c936: 9b05 ldr r3, [sp, #20]
1c938: 3402 adds r4, #2
1c93a: 1d1a adds r2, r3, #4
1c93c: 681b ldr r3, [r3, #0]
1c93e: 9205 str r2, [sp, #20]
1c940: 2b00 cmp r3, #0
1c942: db34 blt.n 1c9ae <_svfiprintf_r+0x18a>
1c944: 9307 str r3, [sp, #28]
1c946: 4e35 ldr r6, [pc, #212] ; (1ca1c <_svfiprintf_r+0x1f8>)
1c948: 7821 ldrb r1, [r4, #0]
1c94a: 2203 movs r2, #3
1c94c: 0030 movs r0, r6
1c94e: f000 f9f5 bl 1cd3c <memchr>
1c952: 2800 cmp r0, #0
1c954: d006 beq.n 1c964 <_svfiprintf_r+0x140>
1c956: 2340 movs r3, #64 ; 0x40
1c958: 1b80 subs r0, r0, r6
1c95a: 4083 lsls r3, r0
1c95c: 682a ldr r2, [r5, #0]
1c95e: 3401 adds r4, #1
1c960: 4313 orrs r3, r2
1c962: 602b str r3, [r5, #0]
1c964: 7821 ldrb r1, [r4, #0]
1c966: 2206 movs r2, #6
1c968: 482d ldr r0, [pc, #180] ; (1ca20 <_svfiprintf_r+0x1fc>)
1c96a: 1c66 adds r6, r4, #1
1c96c: 7629 strb r1, [r5, #24]
1c96e: f000 f9e5 bl 1cd3c <memchr>
1c972: 2800 cmp r0, #0
1c974: d046 beq.n 1ca04 <_svfiprintf_r+0x1e0>
1c976: 4b2b ldr r3, [pc, #172] ; (1ca24 <_svfiprintf_r+0x200>)
1c978: 2b00 cmp r3, #0
1c97a: d12f bne.n 1c9dc <_svfiprintf_r+0x1b8>
1c97c: 6829 ldr r1, [r5, #0]
1c97e: 9b05 ldr r3, [sp, #20]
1c980: 2207 movs r2, #7
1c982: 05c9 lsls r1, r1, #23
1c984: d528 bpl.n 1c9d8 <_svfiprintf_r+0x1b4>
1c986: 189b adds r3, r3, r2
1c988: 4393 bics r3, r2
1c98a: 3308 adds r3, #8
1c98c: 9305 str r3, [sp, #20]
1c98e: 696b ldr r3, [r5, #20]
1c990: 9a03 ldr r2, [sp, #12]
1c992: 189b adds r3, r3, r2
1c994: 616b str r3, [r5, #20]
1c996: e767 b.n 1c868 <_svfiprintf_r+0x44>
1c998: 425b negs r3, r3
1c99a: 60eb str r3, [r5, #12]
1c99c: 2302 movs r3, #2
1c99e: 430b orrs r3, r1
1c9a0: 602b str r3, [r5, #0]
1c9a2: e7c0 b.n 1c926 <_svfiprintf_r+0x102>
1c9a4: 434b muls r3, r1
1c9a6: 3401 adds r4, #1
1c9a8: 189b adds r3, r3, r2
1c9aa: 2001 movs r0, #1
1c9ac: e7a0 b.n 1c8f0 <_svfiprintf_r+0xcc>
1c9ae: 2301 movs r3, #1
1c9b0: 425b negs r3, r3
1c9b2: e7c7 b.n 1c944 <_svfiprintf_r+0x120>
1c9b4: 2300 movs r3, #0
1c9b6: 0014 movs r4, r2
1c9b8: 200a movs r0, #10
1c9ba: 001a movs r2, r3
1c9bc: 606b str r3, [r5, #4]
1c9be: 7821 ldrb r1, [r4, #0]
1c9c0: 3930 subs r1, #48 ; 0x30
1c9c2: 2909 cmp r1, #9
1c9c4: d903 bls.n 1c9ce <_svfiprintf_r+0x1aa>
1c9c6: 2b00 cmp r3, #0
1c9c8: d0bd beq.n 1c946 <_svfiprintf_r+0x122>
1c9ca: 9207 str r2, [sp, #28]
1c9cc: e7bb b.n 1c946 <_svfiprintf_r+0x122>
1c9ce: 4342 muls r2, r0
1c9d0: 3401 adds r4, #1
1c9d2: 1852 adds r2, r2, r1
1c9d4: 2301 movs r3, #1
1c9d6: e7f2 b.n 1c9be <_svfiprintf_r+0x19a>
1c9d8: 3307 adds r3, #7
1c9da: e7d5 b.n 1c988 <_svfiprintf_r+0x164>
1c9dc: ab05 add r3, sp, #20
1c9de: 9300 str r3, [sp, #0]
1c9e0: 003a movs r2, r7
1c9e2: 4b11 ldr r3, [pc, #68] ; (1ca28 <_svfiprintf_r+0x204>)
1c9e4: 0029 movs r1, r5
1c9e6: 9802 ldr r0, [sp, #8]
1c9e8: e000 b.n 1c9ec <_svfiprintf_r+0x1c8>
1c9ea: bf00 nop
1c9ec: 9003 str r0, [sp, #12]
1c9ee: 9b03 ldr r3, [sp, #12]
1c9f0: 3301 adds r3, #1
1c9f2: d1cc bne.n 1c98e <_svfiprintf_r+0x16a>
1c9f4: 89bb ldrh r3, [r7, #12]
1c9f6: 980b ldr r0, [sp, #44] ; 0x2c
1c9f8: 065b lsls r3, r3, #25
1c9fa: d400 bmi.n 1c9fe <_svfiprintf_r+0x1da>
1c9fc: e729 b.n 1c852 <_svfiprintf_r+0x2e>
1c9fe: 2001 movs r0, #1
1ca00: 4240 negs r0, r0
1ca02: e726 b.n 1c852 <_svfiprintf_r+0x2e>
1ca04: ab05 add r3, sp, #20
1ca06: 9300 str r3, [sp, #0]
1ca08: 003a movs r2, r7
1ca0a: 4b07 ldr r3, [pc, #28] ; (1ca28 <_svfiprintf_r+0x204>)
1ca0c: 0029 movs r1, r5
1ca0e: 9802 ldr r0, [sp, #8]
1ca10: f000 f87a bl 1cb08 <_printf_i>
1ca14: e7ea b.n 1c9ec <_svfiprintf_r+0x1c8>
1ca16: 46c0 nop ; (mov r8, r8)
1ca18: 0002b104 .word 0x0002b104
1ca1c: 0002b10a .word 0x0002b10a
1ca20: 0002b10e .word 0x0002b10e
1ca24: 00000000 .word 0x00000000
1ca28: 0001c761 .word 0x0001c761
0001ca2c <_printf_common>:
1ca2c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
1ca2e: 0015 movs r5, r2
1ca30: 9301 str r3, [sp, #4]
1ca32: 688a ldr r2, [r1, #8]
1ca34: 690b ldr r3, [r1, #16]
1ca36: 9000 str r0, [sp, #0]
1ca38: 000c movs r4, r1
1ca3a: 4293 cmp r3, r2
1ca3c: da00 bge.n 1ca40 <_printf_common+0x14>
1ca3e: 0013 movs r3, r2
1ca40: 0022 movs r2, r4
1ca42: 602b str r3, [r5, #0]
1ca44: 3243 adds r2, #67 ; 0x43
1ca46: 7812 ldrb r2, [r2, #0]
1ca48: 2a00 cmp r2, #0
1ca4a: d001 beq.n 1ca50 <_printf_common+0x24>
1ca4c: 3301 adds r3, #1
1ca4e: 602b str r3, [r5, #0]
1ca50: 6823 ldr r3, [r4, #0]
1ca52: 069b lsls r3, r3, #26
1ca54: d502 bpl.n 1ca5c <_printf_common+0x30>
1ca56: 682b ldr r3, [r5, #0]
1ca58: 3302 adds r3, #2
1ca5a: 602b str r3, [r5, #0]
1ca5c: 2706 movs r7, #6
1ca5e: 6823 ldr r3, [r4, #0]
1ca60: 401f ands r7, r3
1ca62: d027 beq.n 1cab4 <_printf_common+0x88>
1ca64: 0023 movs r3, r4
1ca66: 3343 adds r3, #67 ; 0x43
1ca68: 781b ldrb r3, [r3, #0]
1ca6a: 1e5a subs r2, r3, #1
1ca6c: 4193 sbcs r3, r2
1ca6e: 6822 ldr r2, [r4, #0]
1ca70: 0692 lsls r2, r2, #26
1ca72: d430 bmi.n 1cad6 <_printf_common+0xaa>
1ca74: 0022 movs r2, r4
1ca76: 9901 ldr r1, [sp, #4]
1ca78: 3243 adds r2, #67 ; 0x43
1ca7a: 9800 ldr r0, [sp, #0]
1ca7c: 9e08 ldr r6, [sp, #32]
1ca7e: 47b0 blx r6
1ca80: 1c43 adds r3, r0, #1
1ca82: d025 beq.n 1cad0 <_printf_common+0xa4>
1ca84: 2306 movs r3, #6
1ca86: 6820 ldr r0, [r4, #0]
1ca88: 682a ldr r2, [r5, #0]
1ca8a: 68e1 ldr r1, [r4, #12]
1ca8c: 4003 ands r3, r0
1ca8e: 2500 movs r5, #0
1ca90: 2b04 cmp r3, #4
1ca92: d103 bne.n 1ca9c <_printf_common+0x70>
1ca94: 1a8d subs r5, r1, r2
1ca96: 43eb mvns r3, r5
1ca98: 17db asrs r3, r3, #31
1ca9a: 401d ands r5, r3
1ca9c: 68a3 ldr r3, [r4, #8]
1ca9e: 6922 ldr r2, [r4, #16]
1caa0: 4293 cmp r3, r2
1caa2: dd01 ble.n 1caa8 <_printf_common+0x7c>
1caa4: 1a9b subs r3, r3, r2
1caa6: 18ed adds r5, r5, r3
1caa8: 2700 movs r7, #0
1caaa: 42bd cmp r5, r7
1caac: d120 bne.n 1caf0 <_printf_common+0xc4>
1caae: 2000 movs r0, #0
1cab0: e010 b.n 1cad4 <_printf_common+0xa8>
1cab2: 3701 adds r7, #1
1cab4: 68e3 ldr r3, [r4, #12]
1cab6: 682a ldr r2, [r5, #0]
1cab8: 1a9b subs r3, r3, r2
1caba: 429f cmp r7, r3
1cabc: dad2 bge.n 1ca64 <_printf_common+0x38>
1cabe: 0022 movs r2, r4
1cac0: 2301 movs r3, #1
1cac2: 3219 adds r2, #25
1cac4: 9901 ldr r1, [sp, #4]
1cac6: 9800 ldr r0, [sp, #0]
1cac8: 9e08 ldr r6, [sp, #32]
1caca: 47b0 blx r6
1cacc: 1c43 adds r3, r0, #1
1cace: d1f0 bne.n 1cab2 <_printf_common+0x86>
1cad0: 2001 movs r0, #1
1cad2: 4240 negs r0, r0
1cad4: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
1cad6: 2030 movs r0, #48 ; 0x30
1cad8: 18e1 adds r1, r4, r3
1cada: 3143 adds r1, #67 ; 0x43
1cadc: 7008 strb r0, [r1, #0]
1cade: 0021 movs r1, r4
1cae0: 1c5a adds r2, r3, #1
1cae2: 3145 adds r1, #69 ; 0x45
1cae4: 7809 ldrb r1, [r1, #0]
1cae6: 18a2 adds r2, r4, r2
1cae8: 3243 adds r2, #67 ; 0x43
1caea: 3302 adds r3, #2
1caec: 7011 strb r1, [r2, #0]
1caee: e7c1 b.n 1ca74 <_printf_common+0x48>
1caf0: 0022 movs r2, r4
1caf2: 2301 movs r3, #1
1caf4: 321a adds r2, #26
1caf6: 9901 ldr r1, [sp, #4]
1caf8: 9800 ldr r0, [sp, #0]
1cafa: 9e08 ldr r6, [sp, #32]
1cafc: 47b0 blx r6
1cafe: 1c43 adds r3, r0, #1
1cb00: d0e6 beq.n 1cad0 <_printf_common+0xa4>
1cb02: 3701 adds r7, #1
1cb04: e7d1 b.n 1caaa <_printf_common+0x7e>
...
0001cb08 <_printf_i>:
1cb08: b5f0 push {r4, r5, r6, r7, lr}
1cb0a: b08b sub sp, #44 ; 0x2c
1cb0c: 9206 str r2, [sp, #24]
1cb0e: 000a movs r2, r1
1cb10: 3243 adds r2, #67 ; 0x43
1cb12: 9307 str r3, [sp, #28]
1cb14: 9005 str r0, [sp, #20]
1cb16: 9204 str r2, [sp, #16]
1cb18: 7e0a ldrb r2, [r1, #24]
1cb1a: 000c movs r4, r1
1cb1c: 9b10 ldr r3, [sp, #64] ; 0x40
1cb1e: 2a6e cmp r2, #110 ; 0x6e
1cb20: d100 bne.n 1cb24 <_printf_i+0x1c>
1cb22: e08f b.n 1cc44 <_printf_i+0x13c>
1cb24: d817 bhi.n 1cb56 <_printf_i+0x4e>
1cb26: 2a63 cmp r2, #99 ; 0x63
1cb28: d02c beq.n 1cb84 <_printf_i+0x7c>
1cb2a: d808 bhi.n 1cb3e <_printf_i+0x36>
1cb2c: 2a00 cmp r2, #0
1cb2e: d100 bne.n 1cb32 <_printf_i+0x2a>
1cb30: e099 b.n 1cc66 <_printf_i+0x15e>
1cb32: 2a58 cmp r2, #88 ; 0x58
1cb34: d054 beq.n 1cbe0 <_printf_i+0xd8>
1cb36: 0026 movs r6, r4
1cb38: 3642 adds r6, #66 ; 0x42
1cb3a: 7032 strb r2, [r6, #0]
1cb3c: e029 b.n 1cb92 <_printf_i+0x8a>
1cb3e: 2a64 cmp r2, #100 ; 0x64
1cb40: d001 beq.n 1cb46 <_printf_i+0x3e>
1cb42: 2a69 cmp r2, #105 ; 0x69
1cb44: d1f7 bne.n 1cb36 <_printf_i+0x2e>
1cb46: 6821 ldr r1, [r4, #0]
1cb48: 681a ldr r2, [r3, #0]
1cb4a: 0608 lsls r0, r1, #24
1cb4c: d523 bpl.n 1cb96 <_printf_i+0x8e>
1cb4e: 1d11 adds r1, r2, #4
1cb50: 6019 str r1, [r3, #0]
1cb52: 6815 ldr r5, [r2, #0]
1cb54: e025 b.n 1cba2 <_printf_i+0x9a>
1cb56: 2a73 cmp r2, #115 ; 0x73
1cb58: d100 bne.n 1cb5c <_printf_i+0x54>
1cb5a: e088 b.n 1cc6e <_printf_i+0x166>
1cb5c: d808 bhi.n 1cb70 <_printf_i+0x68>
1cb5e: 2a6f cmp r2, #111 ; 0x6f
1cb60: d029 beq.n 1cbb6 <_printf_i+0xae>
1cb62: 2a70 cmp r2, #112 ; 0x70
1cb64: d1e7 bne.n 1cb36 <_printf_i+0x2e>
1cb66: 2220 movs r2, #32
1cb68: 6809 ldr r1, [r1, #0]
1cb6a: 430a orrs r2, r1
1cb6c: 6022 str r2, [r4, #0]
1cb6e: e003 b.n 1cb78 <_printf_i+0x70>
1cb70: 2a75 cmp r2, #117 ; 0x75
1cb72: d020 beq.n 1cbb6 <_printf_i+0xae>
1cb74: 2a78 cmp r2, #120 ; 0x78
1cb76: d1de bne.n 1cb36 <_printf_i+0x2e>
1cb78: 0022 movs r2, r4
1cb7a: 2178 movs r1, #120 ; 0x78
1cb7c: 3245 adds r2, #69 ; 0x45
1cb7e: 7011 strb r1, [r2, #0]
1cb80: 4a6c ldr r2, [pc, #432] ; (1cd34 <_printf_i+0x22c>)
1cb82: e030 b.n 1cbe6 <_printf_i+0xde>
1cb84: 000e movs r6, r1
1cb86: 681a ldr r2, [r3, #0]
1cb88: 3642 adds r6, #66 ; 0x42
1cb8a: 1d11 adds r1, r2, #4
1cb8c: 6019 str r1, [r3, #0]
1cb8e: 6813 ldr r3, [r2, #0]
1cb90: 7033 strb r3, [r6, #0]
1cb92: 2301 movs r3, #1
1cb94: e079 b.n 1cc8a <_printf_i+0x182>
1cb96: 0649 lsls r1, r1, #25
1cb98: d5d9 bpl.n 1cb4e <_printf_i+0x46>
1cb9a: 1d11 adds r1, r2, #4
1cb9c: 6019 str r1, [r3, #0]
1cb9e: 2300 movs r3, #0
1cba0: 5ed5 ldrsh r5, [r2, r3]
1cba2: 2d00 cmp r5, #0
1cba4: da03 bge.n 1cbae <_printf_i+0xa6>
1cba6: 232d movs r3, #45 ; 0x2d
1cba8: 9a04 ldr r2, [sp, #16]
1cbaa: 426d negs r5, r5
1cbac: 7013 strb r3, [r2, #0]
1cbae: 4b62 ldr r3, [pc, #392] ; (1cd38 <_printf_i+0x230>)
1cbb0: 270a movs r7, #10
1cbb2: 9303 str r3, [sp, #12]
1cbb4: e02f b.n 1cc16 <_printf_i+0x10e>
1cbb6: 6820 ldr r0, [r4, #0]
1cbb8: 6819 ldr r1, [r3, #0]
1cbba: 0605 lsls r5, r0, #24
1cbbc: d503 bpl.n 1cbc6 <_printf_i+0xbe>
1cbbe: 1d08 adds r0, r1, #4
1cbc0: 6018 str r0, [r3, #0]
1cbc2: 680d ldr r5, [r1, #0]
1cbc4: e005 b.n 1cbd2 <_printf_i+0xca>
1cbc6: 0640 lsls r0, r0, #25
1cbc8: d5f9 bpl.n 1cbbe <_printf_i+0xb6>
1cbca: 680d ldr r5, [r1, #0]
1cbcc: 1d08 adds r0, r1, #4
1cbce: 6018 str r0, [r3, #0]
1cbd0: b2ad uxth r5, r5
1cbd2: 4b59 ldr r3, [pc, #356] ; (1cd38 <_printf_i+0x230>)
1cbd4: 2708 movs r7, #8
1cbd6: 9303 str r3, [sp, #12]
1cbd8: 2a6f cmp r2, #111 ; 0x6f
1cbda: d018 beq.n 1cc0e <_printf_i+0x106>
1cbdc: 270a movs r7, #10
1cbde: e016 b.n 1cc0e <_printf_i+0x106>
1cbe0: 3145 adds r1, #69 ; 0x45
1cbe2: 700a strb r2, [r1, #0]
1cbe4: 4a54 ldr r2, [pc, #336] ; (1cd38 <_printf_i+0x230>)
1cbe6: 9203 str r2, [sp, #12]
1cbe8: 681a ldr r2, [r3, #0]
1cbea: 6821 ldr r1, [r4, #0]
1cbec: 1d10 adds r0, r2, #4
1cbee: 6018 str r0, [r3, #0]
1cbf0: 6815 ldr r5, [r2, #0]
1cbf2: 0608 lsls r0, r1, #24
1cbf4: d522 bpl.n 1cc3c <_printf_i+0x134>
1cbf6: 07cb lsls r3, r1, #31
1cbf8: d502 bpl.n 1cc00 <_printf_i+0xf8>
1cbfa: 2320 movs r3, #32
1cbfc: 4319 orrs r1, r3
1cbfe: 6021 str r1, [r4, #0]
1cc00: 2710 movs r7, #16
1cc02: 2d00 cmp r5, #0
1cc04: d103 bne.n 1cc0e <_printf_i+0x106>
1cc06: 2320 movs r3, #32
1cc08: 6822 ldr r2, [r4, #0]
1cc0a: 439a bics r2, r3
1cc0c: 6022 str r2, [r4, #0]
1cc0e: 0023 movs r3, r4
1cc10: 2200 movs r2, #0
1cc12: 3343 adds r3, #67 ; 0x43
1cc14: 701a strb r2, [r3, #0]
1cc16: 6863 ldr r3, [r4, #4]
1cc18: 60a3 str r3, [r4, #8]
1cc1a: 2b00 cmp r3, #0
1cc1c: db5c blt.n 1ccd8 <_printf_i+0x1d0>
1cc1e: 2204 movs r2, #4
1cc20: 6821 ldr r1, [r4, #0]
1cc22: 4391 bics r1, r2
1cc24: 6021 str r1, [r4, #0]
1cc26: 2d00 cmp r5, #0
1cc28: d158 bne.n 1ccdc <_printf_i+0x1d4>
1cc2a: 9e04 ldr r6, [sp, #16]
1cc2c: 2b00 cmp r3, #0
1cc2e: d064 beq.n 1ccfa <_printf_i+0x1f2>
1cc30: 0026 movs r6, r4
1cc32: 9b03 ldr r3, [sp, #12]
1cc34: 3642 adds r6, #66 ; 0x42
1cc36: 781b ldrb r3, [r3, #0]
1cc38: 7033 strb r3, [r6, #0]
1cc3a: e05e b.n 1ccfa <_printf_i+0x1f2>
1cc3c: 0648 lsls r0, r1, #25
1cc3e: d5da bpl.n 1cbf6 <_printf_i+0xee>
1cc40: b2ad uxth r5, r5
1cc42: e7d8 b.n 1cbf6 <_printf_i+0xee>
1cc44: 6809 ldr r1, [r1, #0]
1cc46: 681a ldr r2, [r3, #0]
1cc48: 0608 lsls r0, r1, #24
1cc4a: d505 bpl.n 1cc58 <_printf_i+0x150>
1cc4c: 1d11 adds r1, r2, #4
1cc4e: 6019 str r1, [r3, #0]
1cc50: 6813 ldr r3, [r2, #0]
1cc52: 6962 ldr r2, [r4, #20]
1cc54: 601a str r2, [r3, #0]
1cc56: e006 b.n 1cc66 <_printf_i+0x15e>
1cc58: 0649 lsls r1, r1, #25
1cc5a: d5f7 bpl.n 1cc4c <_printf_i+0x144>
1cc5c: 1d11 adds r1, r2, #4
1cc5e: 6019 str r1, [r3, #0]
1cc60: 6813 ldr r3, [r2, #0]
1cc62: 8aa2 ldrh r2, [r4, #20]
1cc64: 801a strh r2, [r3, #0]
1cc66: 2300 movs r3, #0
1cc68: 9e04 ldr r6, [sp, #16]
1cc6a: 6123 str r3, [r4, #16]
1cc6c: e054 b.n 1cd18 <_printf_i+0x210>
1cc6e: 681a ldr r2, [r3, #0]
1cc70: 1d11 adds r1, r2, #4
1cc72: 6019 str r1, [r3, #0]
1cc74: 6816 ldr r6, [r2, #0]
1cc76: 2100 movs r1, #0
1cc78: 6862 ldr r2, [r4, #4]
1cc7a: 0030 movs r0, r6
1cc7c: f000 f85e bl 1cd3c <memchr>
1cc80: 2800 cmp r0, #0
1cc82: d001 beq.n 1cc88 <_printf_i+0x180>
1cc84: 1b80 subs r0, r0, r6
1cc86: 6060 str r0, [r4, #4]
1cc88: 6863 ldr r3, [r4, #4]
1cc8a: 6123 str r3, [r4, #16]
1cc8c: 2300 movs r3, #0
1cc8e: 9a04 ldr r2, [sp, #16]
1cc90: 7013 strb r3, [r2, #0]
1cc92: e041 b.n 1cd18 <_printf_i+0x210>
1cc94: 6923 ldr r3, [r4, #16]
1cc96: 0032 movs r2, r6
1cc98: 9906 ldr r1, [sp, #24]
1cc9a: 9805 ldr r0, [sp, #20]
1cc9c: 9d07 ldr r5, [sp, #28]
1cc9e: 47a8 blx r5
1cca0: 1c43 adds r3, r0, #1
1cca2: d043 beq.n 1cd2c <_printf_i+0x224>
1cca4: 6823 ldr r3, [r4, #0]
1cca6: 2500 movs r5, #0
1cca8: 079b lsls r3, r3, #30
1ccaa: d40f bmi.n 1cccc <_printf_i+0x1c4>
1ccac: 9b09 ldr r3, [sp, #36] ; 0x24
1ccae: 68e0 ldr r0, [r4, #12]
1ccb0: 4298 cmp r0, r3
1ccb2: da3d bge.n 1cd30 <_printf_i+0x228>
1ccb4: 0018 movs r0, r3
1ccb6: e03b b.n 1cd30 <_printf_i+0x228>
1ccb8: 0022 movs r2, r4
1ccba: 2301 movs r3, #1
1ccbc: 3219 adds r2, #25
1ccbe: 9906 ldr r1, [sp, #24]
1ccc0: 9805 ldr r0, [sp, #20]
1ccc2: 9e07 ldr r6, [sp, #28]
1ccc4: 47b0 blx r6
1ccc6: 1c43 adds r3, r0, #1
1ccc8: d030 beq.n 1cd2c <_printf_i+0x224>
1ccca: 3501 adds r5, #1
1cccc: 68e3 ldr r3, [r4, #12]
1ccce: 9a09 ldr r2, [sp, #36] ; 0x24
1ccd0: 1a9b subs r3, r3, r2
1ccd2: 429d cmp r5, r3
1ccd4: dbf0 blt.n 1ccb8 <_printf_i+0x1b0>
1ccd6: e7e9 b.n 1ccac <_printf_i+0x1a4>
1ccd8: 2d00 cmp r5, #0
1ccda: d0a9 beq.n 1cc30 <_printf_i+0x128>
1ccdc: 9e04 ldr r6, [sp, #16]
1ccde: 0028 movs r0, r5
1cce0: 0039 movs r1, r7
1cce2: f7ff fa65 bl 1c1b0 <__aeabi_uidivmod>
1cce6: 9b03 ldr r3, [sp, #12]
1cce8: 3e01 subs r6, #1
1ccea: 5c5b ldrb r3, [r3, r1]
1ccec: 0028 movs r0, r5
1ccee: 7033 strb r3, [r6, #0]
1ccf0: 0039 movs r1, r7
1ccf2: f7ff f9d7 bl 1c0a4 <__udivsi3>
1ccf6: 1e05 subs r5, r0, #0
1ccf8: d1f1 bne.n 1ccde <_printf_i+0x1d6>
1ccfa: 2f08 cmp r7, #8
1ccfc: d109 bne.n 1cd12 <_printf_i+0x20a>
1ccfe: 6823 ldr r3, [r4, #0]
1cd00: 07db lsls r3, r3, #31
1cd02: d506 bpl.n 1cd12 <_printf_i+0x20a>
1cd04: 6863 ldr r3, [r4, #4]
1cd06: 6922 ldr r2, [r4, #16]
1cd08: 4293 cmp r3, r2
1cd0a: dc02 bgt.n 1cd12 <_printf_i+0x20a>
1cd0c: 2330 movs r3, #48 ; 0x30
1cd0e: 3e01 subs r6, #1
1cd10: 7033 strb r3, [r6, #0]
1cd12: 9b04 ldr r3, [sp, #16]
1cd14: 1b9b subs r3, r3, r6
1cd16: 6123 str r3, [r4, #16]
1cd18: 9b07 ldr r3, [sp, #28]
1cd1a: aa09 add r2, sp, #36 ; 0x24
1cd1c: 9300 str r3, [sp, #0]
1cd1e: 0021 movs r1, r4
1cd20: 9b06 ldr r3, [sp, #24]
1cd22: 9805 ldr r0, [sp, #20]
1cd24: f7ff fe82 bl 1ca2c <_printf_common>
1cd28: 1c43 adds r3, r0, #1
1cd2a: d1b3 bne.n 1cc94 <_printf_i+0x18c>
1cd2c: 2001 movs r0, #1
1cd2e: 4240 negs r0, r0
1cd30: b00b add sp, #44 ; 0x2c
1cd32: bdf0 pop {r4, r5, r6, r7, pc}
1cd34: 0002b126 .word 0x0002b126
1cd38: 0002b115 .word 0x0002b115
0001cd3c <memchr>:
1cd3c: b2c9 uxtb r1, r1
1cd3e: 1882 adds r2, r0, r2
1cd40: 4290 cmp r0, r2
1cd42: d101 bne.n 1cd48 <memchr+0xc>
1cd44: 2000 movs r0, #0
1cd46: 4770 bx lr
1cd48: 7803 ldrb r3, [r0, #0]
1cd4a: 428b cmp r3, r1
1cd4c: d0fb beq.n 1cd46 <memchr+0xa>
1cd4e: 3001 adds r0, #1
1cd50: e7f6 b.n 1cd40 <memchr+0x4>
0001cd52 <memmove>:
1cd52: b510 push {r4, lr}
1cd54: 4288 cmp r0, r1
1cd56: d902 bls.n 1cd5e <memmove+0xc>
1cd58: 188b adds r3, r1, r2
1cd5a: 4298 cmp r0, r3
1cd5c: d308 bcc.n 1cd70 <memmove+0x1e>
1cd5e: 2300 movs r3, #0
1cd60: 429a cmp r2, r3
1cd62: d007 beq.n 1cd74 <memmove+0x22>
1cd64: 5ccc ldrb r4, [r1, r3]
1cd66: 54c4 strb r4, [r0, r3]
1cd68: 3301 adds r3, #1
1cd6a: e7f9 b.n 1cd60 <memmove+0xe>
1cd6c: 5c8b ldrb r3, [r1, r2]
1cd6e: 5483 strb r3, [r0, r2]
1cd70: 3a01 subs r2, #1
1cd72: d2fb bcs.n 1cd6c <memmove+0x1a>
1cd74: bd10 pop {r4, pc}
...
0001cd78 <_free_r>:
1cd78: b570 push {r4, r5, r6, lr}
1cd7a: 0005 movs r5, r0
1cd7c: 2900 cmp r1, #0
1cd7e: d010 beq.n 1cda2 <_free_r+0x2a>
1cd80: 1f0c subs r4, r1, #4
1cd82: 6823 ldr r3, [r4, #0]
1cd84: 2b00 cmp r3, #0
1cd86: da00 bge.n 1cd8a <_free_r+0x12>
1cd88: 18e4 adds r4, r4, r3
1cd8a: 0028 movs r0, r5
1cd8c: f000 f8d4 bl 1cf38 <__malloc_lock>
1cd90: 4a1d ldr r2, [pc, #116] ; (1ce08 <_free_r+0x90>)
1cd92: 6813 ldr r3, [r2, #0]
1cd94: 2b00 cmp r3, #0
1cd96: d105 bne.n 1cda4 <_free_r+0x2c>
1cd98: 6063 str r3, [r4, #4]
1cd9a: 6014 str r4, [r2, #0]
1cd9c: 0028 movs r0, r5
1cd9e: f000 f8cc bl 1cf3a <__malloc_unlock>
1cda2: bd70 pop {r4, r5, r6, pc}
1cda4: 42a3 cmp r3, r4
1cda6: d909 bls.n 1cdbc <_free_r+0x44>
1cda8: 6821 ldr r1, [r4, #0]
1cdaa: 1860 adds r0, r4, r1
1cdac: 4283 cmp r3, r0
1cdae: d1f3 bne.n 1cd98 <_free_r+0x20>
1cdb0: 6818 ldr r0, [r3, #0]
1cdb2: 685b ldr r3, [r3, #4]
1cdb4: 1841 adds r1, r0, r1
1cdb6: 6021 str r1, [r4, #0]
1cdb8: e7ee b.n 1cd98 <_free_r+0x20>
1cdba: 0013 movs r3, r2
1cdbc: 685a ldr r2, [r3, #4]
1cdbe: 2a00 cmp r2, #0
1cdc0: d001 beq.n 1cdc6 <_free_r+0x4e>
1cdc2: 42a2 cmp r2, r4
1cdc4: d9f9 bls.n 1cdba <_free_r+0x42>
1cdc6: 6819 ldr r1, [r3, #0]
1cdc8: 1858 adds r0, r3, r1
1cdca: 42a0 cmp r0, r4
1cdcc: d10b bne.n 1cde6 <_free_r+0x6e>
1cdce: 6820 ldr r0, [r4, #0]
1cdd0: 1809 adds r1, r1, r0
1cdd2: 1858 adds r0, r3, r1
1cdd4: 6019 str r1, [r3, #0]
1cdd6: 4282 cmp r2, r0
1cdd8: d1e0 bne.n 1cd9c <_free_r+0x24>
1cdda: 6810 ldr r0, [r2, #0]
1cddc: 6852 ldr r2, [r2, #4]
1cdde: 1841 adds r1, r0, r1
1cde0: 6019 str r1, [r3, #0]
1cde2: 605a str r2, [r3, #4]
1cde4: e7da b.n 1cd9c <_free_r+0x24>
1cde6: 42a0 cmp r0, r4
1cde8: d902 bls.n 1cdf0 <_free_r+0x78>
1cdea: 230c movs r3, #12
1cdec: 602b str r3, [r5, #0]
1cdee: e7d5 b.n 1cd9c <_free_r+0x24>
1cdf0: 6821 ldr r1, [r4, #0]
1cdf2: 1860 adds r0, r4, r1
1cdf4: 4282 cmp r2, r0
1cdf6: d103 bne.n 1ce00 <_free_r+0x88>
1cdf8: 6810 ldr r0, [r2, #0]
1cdfa: 6852 ldr r2, [r2, #4]
1cdfc: 1841 adds r1, r0, r1
1cdfe: 6021 str r1, [r4, #0]
1ce00: 6062 str r2, [r4, #4]
1ce02: 605c str r4, [r3, #4]
1ce04: e7ca b.n 1cd9c <_free_r+0x24>
1ce06: 46c0 nop ; (mov r8, r8)
1ce08: 20004ca8 .word 0x20004ca8
0001ce0c <_malloc_r>:
1ce0c: 2303 movs r3, #3
1ce0e: b570 push {r4, r5, r6, lr}
1ce10: 1ccd adds r5, r1, #3
1ce12: 439d bics r5, r3
1ce14: 3508 adds r5, #8
1ce16: 0006 movs r6, r0
1ce18: 2d0c cmp r5, #12
1ce1a: d21e bcs.n 1ce5a <_malloc_r+0x4e>
1ce1c: 250c movs r5, #12
1ce1e: 42a9 cmp r1, r5
1ce20: d81d bhi.n 1ce5e <_malloc_r+0x52>
1ce22: 0030 movs r0, r6
1ce24: f000 f888 bl 1cf38 <__malloc_lock>
1ce28: 4a25 ldr r2, [pc, #148] ; (1cec0 <_malloc_r+0xb4>)
1ce2a: 6814 ldr r4, [r2, #0]
1ce2c: 0021 movs r1, r4
1ce2e: 2900 cmp r1, #0
1ce30: d119 bne.n 1ce66 <_malloc_r+0x5a>
1ce32: 4c24 ldr r4, [pc, #144] ; (1cec4 <_malloc_r+0xb8>)
1ce34: 6823 ldr r3, [r4, #0]
1ce36: 2b00 cmp r3, #0
1ce38: d103 bne.n 1ce42 <_malloc_r+0x36>
1ce3a: 0030 movs r0, r6
1ce3c: f000 f86a bl 1cf14 <_sbrk_r>
1ce40: 6020 str r0, [r4, #0]
1ce42: 0029 movs r1, r5
1ce44: 0030 movs r0, r6
1ce46: f000 f865 bl 1cf14 <_sbrk_r>
1ce4a: 1c43 adds r3, r0, #1
1ce4c: d12c bne.n 1cea8 <_malloc_r+0x9c>
1ce4e: 230c movs r3, #12
1ce50: 0030 movs r0, r6
1ce52: 6033 str r3, [r6, #0]
1ce54: f000 f871 bl 1cf3a <__malloc_unlock>
1ce58: e003 b.n 1ce62 <_malloc_r+0x56>
1ce5a: 2d00 cmp r5, #0
1ce5c: dadf bge.n 1ce1e <_malloc_r+0x12>
1ce5e: 230c movs r3, #12
1ce60: 6033 str r3, [r6, #0]
1ce62: 2000 movs r0, #0
1ce64: bd70 pop {r4, r5, r6, pc}
1ce66: 680b ldr r3, [r1, #0]
1ce68: 1b5b subs r3, r3, r5
1ce6a: d41a bmi.n 1cea2 <_malloc_r+0x96>
1ce6c: 2b0b cmp r3, #11
1ce6e: d903 bls.n 1ce78 <_malloc_r+0x6c>
1ce70: 600b str r3, [r1, #0]
1ce72: 18cc adds r4, r1, r3
1ce74: 6025 str r5, [r4, #0]
1ce76: e003 b.n 1ce80 <_malloc_r+0x74>
1ce78: 428c cmp r4, r1
1ce7a: d10e bne.n 1ce9a <_malloc_r+0x8e>
1ce7c: 6863 ldr r3, [r4, #4]
1ce7e: 6013 str r3, [r2, #0]
1ce80: 0030 movs r0, r6
1ce82: f000 f85a bl 1cf3a <__malloc_unlock>
1ce86: 0020 movs r0, r4
1ce88: 2207 movs r2, #7
1ce8a: 300b adds r0, #11
1ce8c: 1d23 adds r3, r4, #4
1ce8e: 4390 bics r0, r2
1ce90: 1ac3 subs r3, r0, r3
1ce92: d0e7 beq.n 1ce64 <_malloc_r+0x58>
1ce94: 425a negs r2, r3
1ce96: 50e2 str r2, [r4, r3]
1ce98: e7e4 b.n 1ce64 <_malloc_r+0x58>
1ce9a: 684b ldr r3, [r1, #4]
1ce9c: 6063 str r3, [r4, #4]
1ce9e: 000c movs r4, r1
1cea0: e7ee b.n 1ce80 <_malloc_r+0x74>
1cea2: 000c movs r4, r1
1cea4: 6849 ldr r1, [r1, #4]
1cea6: e7c2 b.n 1ce2e <_malloc_r+0x22>
1cea8: 2303 movs r3, #3
1ceaa: 1cc4 adds r4, r0, #3
1ceac: 439c bics r4, r3
1ceae: 42a0 cmp r0, r4
1ceb0: d0e0 beq.n 1ce74 <_malloc_r+0x68>
1ceb2: 1a21 subs r1, r4, r0
1ceb4: 0030 movs r0, r6
1ceb6: f000 f82d bl 1cf14 <_sbrk_r>
1ceba: 1c43 adds r3, r0, #1
1cebc: d1da bne.n 1ce74 <_malloc_r+0x68>
1cebe: e7c6 b.n 1ce4e <_malloc_r+0x42>
1cec0: 20004ca8 .word 0x20004ca8
1cec4: 20004cac .word 0x20004cac
0001cec8 <_realloc_r>:
1cec8: b5f8 push {r3, r4, r5, r6, r7, lr}
1ceca: 0007 movs r7, r0
1cecc: 000d movs r5, r1
1cece: 0016 movs r6, r2
1ced0: 2900 cmp r1, #0
1ced2: d105 bne.n 1cee0 <_realloc_r+0x18>
1ced4: 0011 movs r1, r2
1ced6: f7ff ff99 bl 1ce0c <_malloc_r>
1ceda: 0004 movs r4, r0
1cedc: 0020 movs r0, r4
1cede: bdf8 pop {r3, r4, r5, r6, r7, pc}
1cee0: 2a00 cmp r2, #0
1cee2: d103 bne.n 1ceec <_realloc_r+0x24>
1cee4: f7ff ff48 bl 1cd78 <_free_r>
1cee8: 0034 movs r4, r6
1ceea: e7f7 b.n 1cedc <_realloc_r+0x14>
1ceec: f000 f826 bl 1cf3c <_malloc_usable_size_r>
1cef0: 002c movs r4, r5
1cef2: 4286 cmp r6, r0
1cef4: d9f2 bls.n 1cedc <_realloc_r+0x14>
1cef6: 0031 movs r1, r6
1cef8: 0038 movs r0, r7
1cefa: f7ff ff87 bl 1ce0c <_malloc_r>
1cefe: 1e04 subs r4, r0, #0
1cf00: d0ec beq.n 1cedc <_realloc_r+0x14>
1cf02: 0029 movs r1, r5
1cf04: 0032 movs r2, r6
1cf06: f7ff fbaa bl 1c65e <memcpy>
1cf0a: 0029 movs r1, r5
1cf0c: 0038 movs r0, r7
1cf0e: f7ff ff33 bl 1cd78 <_free_r>
1cf12: e7e3 b.n 1cedc <_realloc_r+0x14>
0001cf14 <_sbrk_r>:
1cf14: 2300 movs r3, #0
1cf16: b570 push {r4, r5, r6, lr}
1cf18: 4c06 ldr r4, [pc, #24] ; (1cf34 <_sbrk_r+0x20>)
1cf1a: 0005 movs r5, r0
1cf1c: 0008 movs r0, r1
1cf1e: 6023 str r3, [r4, #0]
1cf20: f7e4 fc32 bl 1788 <_sbrk>
1cf24: 1c43 adds r3, r0, #1
1cf26: d103 bne.n 1cf30 <_sbrk_r+0x1c>
1cf28: 6823 ldr r3, [r4, #0]
1cf2a: 2b00 cmp r3, #0
1cf2c: d000 beq.n 1cf30 <_sbrk_r+0x1c>
1cf2e: 602b str r3, [r5, #0]
1cf30: bd70 pop {r4, r5, r6, pc}
1cf32: 46c0 nop ; (mov r8, r8)
1cf34: 20004e90 .word 0x20004e90
0001cf38 <__malloc_lock>:
1cf38: 4770 bx lr
0001cf3a <__malloc_unlock>:
1cf3a: 4770 bx lr
0001cf3c <_malloc_usable_size_r>:
1cf3c: 1f0b subs r3, r1, #4
1cf3e: 681b ldr r3, [r3, #0]
1cf40: 1f18 subs r0, r3, #4
1cf42: 2b00 cmp r3, #0
1cf44: da01 bge.n 1cf4a <_malloc_usable_size_r+0xe>
1cf46: 580b ldr r3, [r1, r0]
1cf48: 18c0 adds r0, r0, r3
1cf4a: 4770 bx lr
1cf4c: 3230255b .word 0x3230255b
1cf50: 30253a75 .word 0x30253a75
1cf54: 253a7532 .word 0x253a7532
1cf58: 3a753230 .word 0x3a753230
1cf5c: 75333025 .word 0x75333025
1cf60: 0000005d .word 0x0000005d
0001cf64 <hornet>:
1cf64: 1662e40a 0000855b 0001cf70 ..b.[...p...
0001cf70 <hornet_map>:
1cf70: ff07060b ffac882c ff871f25 ff895139 ....,...%...9Q..
1cf80: ffdcc46d ffc88348 ffc65632 ff46434d m...H...2V..MCF.
1cf90: ff480a16 ffbca25c ffc22d38 ff8b6c67 ..H.\...8-..gl..
1cfa0: ff48272d ff893622 ffc76d41 ffc38576 -'H."6..Am..v...
1cfb0: ffc6a49a ffa53520 ff692621 ffa95139 .... 5..!&i.9Q..
1cfc0: ffe8e2a9 ff26242e ffe96e40 ffe98843 .....$&.@n..C...
1cfd0: ffaea64b ff873848 ffc5c4c9 ffa86e33 K...H8......3n..
1cfe0: ff69646a ffe45640 ff69342e ff280917 jdi.@V...4i...(.
1cff0: ffa8554e ffe7a996 ff838383 ff67101b NU............g.
1d000: ff9e8880 ffc76e60 ffe7a65f ffe99647 ....`n.._...G...
1d010: ffe68779 ffa9202e ff694527 ff8a4335 y.... ..'Ei.5C..
1d020: ffa76f64 ff493329 ffc0b5af ff89575f do..)3I....._W..
1d030: ffc75543 ffa9462d ff9f9789 ffab603f CU..-F......?`..
1d040: ff882c1d ffc97948 ff27151b ffc69482 .,..Hy....'.....
1d050: ff69282f ffe6b669 ffdfd484 ff48151b /(i.i.........H.
1d060: ffc89364 ffe66e5b ffc14715 ffe4c4bc d...[n...G......
1d070: ff98371e ffc66343 ffe1e4e8 ff73542a .7..Cc......*Ts.
1d080: ff673a3e ffb7532b ff872b32 ffe68a60 >:g.+S..2+..`...
1d090: ff19141e ffd68448 ff38373f ffea9964 ....H...?78.d...
1d0a0: ffd69881 ff875f47 ff592621 ff37161a ....G_..!&Y...7.
1d0b0: ffe65550 ff886e77 ffd8a894 ffa97a73 PU..wn......sz..
1d0c0: ff571922 ffeba872 fff6f3de ffa3a59e ".W.r...........
1d0d0: ffe03d49 ff671c24 ffa28c94 ffa86254 I=..$.g.....Tb..
1d0e0: ffecc483 ffd76e48 ffa9473f ffa93a38 ....Hn..?G..8:..
1d0f0: ffd5d4d6 ffa77937 ffe76254 ff595861 ....7y..Tb..aXY.
1d100: ff884648 ffd6b4a7 ffb0999a ff9b5036 HF..........6P..
1d110: ff782620 ff392328 ffb3b5b4 ffe77a45 &x.(#9.....Ez..
1d120: ffe8b596 ff593331 ffd87a46 ffc19aa2 ....13Y.Fz......
1d130: ff160c16 ffb1887e ff886263 ff797679 ....~...cb..yvy.
1d140: ff762930 ffc13d43 ff973c30 ff79362d 0)v.C=..0<..-6y.
1d150: ff67474c ff994530 ffbfb560 fff7975f LGg.0E..`..._...
1d160: ffd7624b ffc9875c ff952d18 ffe87959 Kb..\....-..Yy..
1d170: ffc04945 ff94968f ff9c9729 ffebddae EI......).......
1d180: ffc0aa64 ffe99a78 fff3ead1 ffc56232 d...x.......2b..
1d190: ffd8343e ff685a61 ffda9842 fff1643e >4..aZh.B...>d..
1d1a0: ff928678 ffd8b859 ffc67a62 ffe4dcdd x...Y...bz......
1d1b0: ff867c7c ff574a54 ffdaa94f ffd58a7b ||..TJW.O...{...
1d1c0: ffafa9a4 ffd9a57b ffd6cdcd ff766b6f ....{.......okv.
1d1d0: ffecd27c fff7b894 ffa99931 ff84766c |.......1...lv..
1d1e0: ffe1cb82 ffd85019 fff5b57b ffb96d49 .....P..{...Im..
1d1f0: ffbb7947 ffac2b34 ffd7895e ffa48654 Gy..4+..^...T...
1d200: ff972129 ff570c18 ffc3aaaf ffede6bf )!....W.........
1d210: ffacac64 ff370815 fff9a55c ff7b4432 d.....7.\...2D{.
1d220: ffc1bcbf fff69b7e ff78575a ffb76e5f ....~...ZWx._n..
1d230: ff99614b ffb97a64 ff771a22 ff994747 Ka..dz..".w.GG..
1d240: ff986266 fff68745 fff6a996 ff77121c fb..E.........w.
1d250: fff7964c ffd8544a fffbc7b6 ff783a40 L...JT......@:x.
1d260: fffa875f fff5a67a ffae8b97 ff78484a _...z.......JHx.
1d270: fff8d7bb fffbfaf8 fff2c89a ffeeebeb ................
1d280: fffb6e49 ffb7624f fffb6459 ffd97965 In..Ob..Yd..ey..
1d290: ff883930 ff973747 ff483942 ff291825 09..G7..B9H.%.).
1d2a0: ffe4da9b ff481725 ffd79d99 ff381825 ....%.H.....%.8.
1d2b0: fff75652 ff995249 ffe5bcb4 ff5a373e RV..IR......>7Z.
1d2c0: ff98944c ffd99566 fffcd2d4 ffb7584e L...f.......NX..
1d2d0: ff97595d ffc3343f ffdc494b ff95786b ]Y..?4..KI..kx..
1d2e0: ffb9613b ff982931 fff97a43 ffd03c46 ;a..1)..Cz..F<..
1d2f0: fffb785b ff997b7b ffa63c23 ffc79d8b [x..{{..#<......
1d300: ffdadbdf ff885350 ff9f9b96 ffeab97a ....PS......z...
1d310: ffb7553a ff572a2f ffd7aba7 ffd9babb :U../*W.........
1d320: ff382938 ff8e8b89 ffdbbb69 ffecd7a1 8)8.....i.......
1d330: fff8b8ab ff966f68 ffab6c51 ffd86f5d ....ho..Ql..]o..
1d340: fffb6e5b ff997077 ffd56331 ffd14848 [n..wp..1c..HH..
1d350: fffc5a44 ffdccc73 ff4b4b54 ffc38c7a DZ..s...TKK.z...
1d360: ffc6ac9f ff2b2c37 ffcbcbcf ff6b6b6f ....7,+.....okk.
1d370: 70707070 70707070 70707070 70704870 pppppppppppppHpp
1d380: 48487070 36363648 e90c69cb 7744442d ppHHH666.i..-DDw
1d390: 771212e9 133179c8 c8763113 133179c8 ...w.y1..1v..y1.
1d3a0: e2e23131 407e40e2 40e2e2e2 25c531e2 11...@~@...@.1.%
1d3b0: 30c785a2 0d76b35e 46464646 404040dd ...0^.v.FFFF.@@@
1d3c0: d1135e5f 5f762bb3 c876765f 9ca240c8 _^...+v__vv..@..
1d3d0: e714c156 bd0439bd 9c263ae7 140404a7 V....9...:&.....
1d3e0: 7be0bce7 8047efef f3bc3d80 569c4733 ...{..G..=..3G.V
1d3f0: 5c56c1c1 9ce79cee 56ef39f9 9c86f93a ..V\.....9.V:...
1d400: 0e0ec785 9ccc55c7 c156e74b 9f35a2c2 .....U..K.V...5.
1d410: 9f9f9f9f 339f9f9f 67672033 20677979 .......33 ggyyg
1d420: dc132020 1e126717 7070704e 70707070 ...g..Nppppppp
1d430: 70707070 70487070 48487070 36364848 ppppppHpppHHHH66
1d440: 694e0c36 2b2b2d69 744e1e2b 3179c877 6.Nii-+++.Ntw.y1
1d450: 7631315e 3179c8c8 e2313113 3440e2e2 ^11v..y1.11...@4
1d460: e2313140 9f9fd731 c72825c5 76b35e30 @11.1....%(.0^.v
1d470: 4634340d 40407e46 13b37640 2b2bb3d1 .44FF~@@@v....++
1d480: 40765f5f 6e407676 86c1869c f9e73904 __v@vv@n.....9..
1d490: 559c3955 ee9c869c f4bc5c14 4783ef7b U9.U.....\..{..G
1d4a0: bc625e80 044720f3 c1c1c186 c28304f9 .^b.. G.........
1d4b0: 9c39f9e7 a7f9ccc1 35354b9c a75cd535 ..9......K555.\.
1d4c0: 565c55ef 3cd5efc1 7d7d7d7d 05050505 .U\V...<}}}}....
1d4d0: c59f9fa0 33333333 dc333333 77136e17 ....3333333..n.w
1d4e0: 7070740d 70707070 70707070 36487070 .tppppppppppppH6
1d4f0: 48707048 cb364848 4e4ecb36 bb1e1e0c HppHHH6.6.NN....
1d500: 4ec82bb3 2bc87777 79797979 79c8c876 .+.Nww.+yyyyv..y
1d510: 31131331 40e2e231 1331e240 13c5af33 1..11..@@.1.3...
1d520: 28f3e831 b35ee8f3 34340d76 7e7e4646 1..(..^.v.44FF~~
1d530: b3764040 2bb3d113 76315f2b 40767640 @@v....++_1v@vv@
1d540: 86a79c6e e7393a56 f955553a 9c86e726 n...V:9.:UU.&...
1d550: b59c83ee 83efbce0 7cb35e4b 6e13f3e0 ........K^.|...n
1d560: c1c186e7 a73a3ac1 550455e7 0483c19c .....::..U.U....
1d570: 67a2e73a 5c55a2a0 5c9e14a7 2683c156 :..g..U\...\V..&
1d580: 3c3c3cd5 7d7d3c3c 9f350505 9fdcdc9f .<<<<<}}..5.....
1d590: 3113c5c5 33336e0e 700d0d34 70707070 ...1.n334..ppppp
1d5a0: 70707070 48707070 70704836 36484848 pppppppH6HppHHH6
1d5b0: 1e6936cb bb790c0c c82bbbbb c877744e .6i...y...+.Ntw.
1d5c0: 2b2bc8c8 76c8c8c8 13133179 31313131 ..++...vy1..1111
1d5d0: c53176e2 7613c5af 25e83176 b3e841f3 .v1....vv1.%.A..
1d5e0: 340d76b3 34343434 5f114040 b3d1d1b3 .v.44444@@._....
1d5f0: 3131762b 76767676 c2e7f340 04a7c1c0 +v11vvvv@.......
1d600: 55553a04 86e72604 9ccc8d3a c2bce0b8 .:UU.&..:.......
1d610: b35e4bcc d13de07c c1a7396e 8383c1c1 .K^.|.=.n9......
1d620: 042639a7 14c19c55 9f4b9ee7 99853564 .9&.U.....K.d5..
1d630: 9e14a75c 83c186e7 7d3cd526 7d3c3c3c \.......&.<}<<<}
1d640: a005057d 33dc9f9f 13dcc5dc 0d794579 }......3....yEy.
1d650: 0d74680d 70707070 70707070 70707070 .ht.pppppppppppp
1d660: 70704836 36484870 cfcbcbcb 2b1e6912 6HpppHH6.....i.+
1d670: 2b6dbbbb 7774122b 762b2bc8 c8c8c876 ..m++.tw.++vv...
1d680: 13317976 13313113 9f133131 407933af vy1..11.11...3y@
1d690: 790d7676 5ee8e8e8 0d76b3b3 34343434 vv.y...^..v.4444
1d6a0: 11407e34 1313b35f 31767967 76767631 4~@._...gyv11vvv
1d6b0: 390e7676 c1c156ef 39cc043a 39260426 vv.9.V..:..9&.&9
1d6c0: cc8def86 bce0b89c 5e4bcc5c 3dbc7c64 ........\.K^d|.=
1d6d0: a7550ed1 a7c1c1c1 26e7a7cc 569c55ee ..U........&.U.V
1d6e0: 35475583 2149f1b0 14143a9c c186e79e .UG5..I!.:......
1d6f0: 3cd52683 7d7d7d7d 3505057d dc9fa035 .&.<}}}}}..55...
1d700: 13133333 0d767979 12743379 70707068 33..yyv.y3t.hppp
1d710: 70707070 70707070 70704848 36484870 ppppppppHHpppHH6
1d720: cbcbcb36 c80c3636 d344bb2b 7412bb79 6...66..+.D.y..t
1d730: 792bc877 76797979 3179c8c8 13131313 w.+yyyyv..y1....
1d740: af9f1331 763113dc e6344040 3131e22c 1.....1v@@4.,.11
1d750: 7679b35e 34340d0d 40403434 13b35f11 ^.yv..4444@@._..
1d760: 76b31313 7679315f 417676c8 c1c11439 ...v_1yv.vvA9...
1d770: 1404ccc1 26ee4be7 8d83a755 f4b89c3a .....K.&U...:...
1d780: 4bcce7bc bc7cb35e 260e133d c1c1c183 ...K^.|.=..&....
1d790: e7a79c83 e755e726 0e4befa7 a2f2f5dc ....&.U...K.....
1d7a0: 143acc5c ef55e714 d52683c1 a27d7d3c \.:...U...&.<}}.
1d7b0: 05057d7d 9f356e35 311333dc 40767979 }}..5n5..3.1yyv@
1d7c0: c87d3334 70701268 70707070 70704870 43}.h.pppppppHpp
1d7d0: 70707070 48487070 cbcbcb36 773636cb ppppppHH6....66w
1d7e0: 44bb2b76 1ee91ebb 2bc87774 31317979 v+.D....tw.+yy11
1d7f0: 79c8c879 e8e81331 c5b19fe8 31313131 y..y1.......1111
1d800: 647e0d40 5e406fc1 b35e5e5e 34340d76 @.~d.o@^^^^.v.44
1d810: 40343434 b35f4040 5e131313 31313176 444@@@_....^v111
1d820: 76767631 56ef3941 f914c1c1 397b5ca7 1vvvA9.V.....\{9
1d830: 83a72626 273a9c8d 3a39e0f4 b9b3804b &&....:'..9:K...
1d840: c5133dbc c1c18355 869c83c1 55e7269c .=..U........&.U
1d850: c75c3ae7 33e633dc 3a145cd5 bde714cc .:\..3.3.\.:....
1d860: 26ef865c 7d7d3c3c 05057d7d 35491735 \..&<<}}}}..5.I5
1d870: 1333dc9f 0d0d7979 c513680d 7074680d ..3.yy...h...htp
1d880: 48487070 70364870 70483670 48707070 ppHHpH6pp6HppppH
1d890: cbcbcb48 cbcbcbcb bb2b7677 771e6d44 H.......wv+.Dm.w
1d8a0: 77771277 3179792b c8c87931 e8131379 w.ww+yy11y..y...
1d8b0: d78e8ec5 31e2e231 024040e2 40a6c1be ....1..1.@@....@
1d8c0: 5e5e5e5e 340d76b3 0d346834 5f404040 ^^^^.v.44h4.@@@_
1d8d0: 1313135e 31315e5e 795e3131 5c264176 ^...^^1111^yvA&\
1d8e0: a7c1c186 7b9ca7f9 83264b55 3a048da7 .......{UK&....:
1d8f0: bdf4f44b 5e807b3a 5b3de030 c18699af K...:{.^0.=[....
1d900: 9c14c1c1 554b9c86 4be75555 662ce89f ......KUUU.K..,f
1d910: 145c4b33 e714cc3a efcc9ebd 7d3c7d85 3K\.:........}<}
1d920: 057d7d7d 6e176e05 33dc9f35 0d767913 }}}..n.n5..3.yv.
1d930: 79680d0d 74687413 70707070 48367070 ..hy.thtpppppp6H
1d940: 36367070 48707048 cbcb3648 69cbcbcb pp66HppHH6.....i
1d950: bb1e6936 bb44d344 777777c8 792b2b77 6i..D.D..wwww++y
1d960: c8c87979 e8137979 e8257d8e 40403113 yy..yy...}%..1@@
1d970: 4040e2e2 60c1fe68 5e5e3176 0d76b35e ..@@h..`v1^^^.v.
1d980: bb72680d 11e27eb2 13135e5f 315ee813 .hr..~.._^....^1
1d990: 5ee85e31 aa877931 c1c1869e 3aa7f9a7 1^.^1y.........:
1d9a0: 4b4b267b ee26a783 f4f44b3a 307b9cad {&KK..&.:K....{0
1d9b0: 17e0e85e 83c210b1 a7c1c156 4b9c869c ^.......V......K
1d9c0: 477b5555 6613dc0e 5c4bdc24 cc3a9ccc UU{G...f$.K\..:.
1d9d0: 5cbdade7 7d7dd55c 7d7d7d7d 49173505 ...\\.}}}}}}.5.I
1d9e0: dc9f9f35 76797913 340d0d0d 68687468 5....yyv...4hthh
1d9f0: 70707068 70707070 48703670 70484836 hpppppppp6pH6HHp
1da00: cbcb4848 cbcbcbcb 69cbcbcb 2b44d32d HH.........i-.D+
1da10: 770dc8ab 2b2b7777 c8c8792b 9f137979 ...www+++y..yy..
1da20: d7418e8e 344031e8 40e2e27e 5642e534 ..A..1@4~..@4.BV
1da30: 5e5fd156 76b35e5e 2eb20d0d 7e7766c1 V._^^^.v.....fw~
1da40: 135e31e2 5ee81313 13133131 6e311313 .1^....^11....1n
1da50: c156e7aa 863a86c1 4b4b7bcc 39a7cc4b ..V...:..{KKK..9
1da60: e04bf939 7be77bc6 27dc5e30 5510fc85 9.K..{.{0^.'...U
1da70: c1c1569c 9c86f9a7 bcad4b4b 67dce80e .V......KK.....g
1da80: d50eb4ac 9c9c3a5c 85ade7cc 7dd59e9e ....\:.........}
1da90: 7d7d7d7d 4935057d dc9f3535 79791333 }}}}}.5I55..3.yy
1daa0: 0d0d4076 6868340d 70707474 70707070 v@...4hhttpppppp
1dab0: 70487070 4836cf48 cb484870 cb15cbcb ppHpH.6HpHH.....
1dac0: 0ccbcbcb 44d32d0c 7979ab2b 2b77c840 .....-.D+.yy@.w+
1dad0: 7931792b 8edc7979 4141258e 7e1131d7 +y1yyy...%AA.1.~
1dae0: 11117e34 c3e10240 4053c1c3 b35e5e5e 4~..@.....S@^^^.
1daf0: 340d0d76 42c142bb 5e3134f1 13131313 v..4.B.B.41^....
1db00: 13135e5e dcc535e8 569c4b27 3a86c1c1 ^^...5..'K.V...:
1db10: 7b7bcca7 a73a4b4b 4bee2639 e7bcc6e0 ..{{KK:.9&.K....
1db20: 8ac5b97b 5b715255 c156ee47 86f9a7c1 {...URq[G.V.....
1db30: bc7b4b3a 1313e85d 0ed11ab4 9c3ae7d5 :K{.].........:.
1db40: ad5ccc9c a2555585 7d7d7d7d 05057d7d ..\..UU.}}}}}}..
1db50: 9f9f3505 793113dc 76767979 76767676 .5....1yyyvvvvvv
1db60: 70120d0d 48707070 70707070 36cfcf70 ...ppppHppppp..6
1db70: 36487036 69cbcbcb e9cb6969 6d4477c8 6pH6...iii...wDm
1db80: 132bd344 c80d795e dc13792b 8eaf1313 D.+.^y..+y......
1db90: 2541c525 11e2e841 117e347e 94684011 %.A%A...~4~..@h.
1dba0: 10c1c3c3 5e5e5e40 460d76b3 c172b240 ....@^^^.v.F@.r.
1dbb0: c894c1c1 131313e2 135e5e5e dc3939e8 ........^^^..99.
1dbc0: 9c47dcdc 56c1c156 27cca7f9 9c277bb8 ..G.V..V...'.{'.
1dbd0: 394b39a7 bcc6e07b d5f37b55 20b13755 .9K9{...U{..U7.
1dbe0: 86396ed1 f9a7c1c1 bc27efa7 e813e87f .n9.......'.....
1dbf0: 13ac6679 f9e7856e 5c3a5c5c d5d585bd yf..n...\\:\....
1dc00: 7d7d7dd5 05050505 35350505 1313dc35 .}}}......555...
1dc10: 79797979 79797979 c8797979 70707070 yyyyyyyyyyy.pppp
1dc20: 70707048 cbcf3600 48483636 cbcbcb36 Hppp.6..66HH6...
1dc30: cb696969 bb77c877 ababb3bb 0d763113 iii.w.w......1v.
1dc40: 13792bc8 9fb19fc5 41d7e813 e245e841 .+y........AA.E.
1dc50: 7e347e11 68401111 c1c3c32e 5e31c896 .~4~..@h......1^
1dc60: 0d76b35e 5940460d c1c1c194 2079d160 ^.v..F@Y....`.y
1dc70: 5eb3b3d1 9f9895e8 47313113 c1c1869c ...^.....11G....
1dc80: cca73a56 17b8bc27 b839a79c d0f4b8aa V:..'.....9.....
1dc90: 21b69ebc 205bb195 395dd1d1 a7c1c1a7 ...!..[ ..]9....
1dca0: 273aa7f9 1313dc3d be1a79e8 e7ad47e8 ..:'=....y...G..
1dcb0: 3a5ce79c a285bd5c 7da24bd5 a005057d ..\:\....K.}}...
1dcc0: 350505a0 13130e6e 79767979 31797979 ...5n...yyvyyyy1
1dcd0: 5e5e315e 70707079 70704848 36004870 ^1^^ypppHHpppH.6
1dce0: 48cb36cf cbcbcb48 69696915 c8c869cb .6.HH....iii.i..
1dcf0: b3b32b1e 4076b32b 79797940 138e8e13 .+..+.v@@yyy....
1dd00: 31317979 31314531 3440e2e2 40e2117e yy111E11..@4~..@
1dd10: c3c360c8 31d1c3c1 7679b313 46460d0d .`.....1..yv..FF
1dd20: c1e47734 53c3c1c1 b3b31379 9fd59f5e 4w.....Sy...^...
1dd30: 31311313 c1a70447 a73a56c1 b8e04bcc ..11G....V:..K..
1dd40: 55a7e7b5 e0b5bce0 babaadf4 b320c54c ...U........L. .
1dd50: 5db3d1b3 c1c18326 cc830486 13134127 ...]&.......'A..
1dd60: e4d81313 adad5db4 e7e79c9e 85bd5c3a .....]......:\..
1dd70: a285d5a2 a0057d7d a0a0a0a0 13339f9f ....}}........3.
1dd80: 0d2b7913 31797976 795e3131 70707979 .y+.vyy111^yyypp
1dd90: 70483648 480ce969 cb363670 cbcb4836 H6Hpi..Hp66.6H..
1dda0: 696915cb 794ecb69 abab6d77 40312b67 ..iii.Nywm..g+1@
1ddb0: 13131376 13af8e33 79797979 e2317979 v...3...yyyyyy1.
1ddc0: 4011e2e2 e2117e34 8f42e57e 53c1c342 ...@4~..~.B.B..S
1ddd0: b37913e2 460d0d76 72a44034 c1c156c1 ..y.v..F4@.r.V..
1dde0: b37971c1 13d75eb3 795e135e a7046e76 .qy..^..^.^yvn..
1ddf0: f956c1c1 e04b1414 14e7b8b5 bce06226 ..V...K.....&b..
1de00: babaadbc 5e807cad b3d1b364 c1cc265d .....|.^d...]&..
1de10: cc0486c1 31e8273a 24791331 ad47d860 ....:'.11.y$`.G.
1de20: e79c9e85 bd5c9ce7 85d5a285 7d7d7da2 ......\......}}}
1de30: a0a0057d 9f9fa0a0 79133333 760d0d0d }.......33.y...v
1de40: 5e793179 7079795e 36364870 0c0c7000 y1y^^yyppH66.p..
1de50: 367070cb cb484836 6969cbcb 4ecb6969 .pp66HH...iiii.N
1de60: bb1ee9c8 79b32b64 c5d71376 13c57d8e ....d+.yv....}..
1de70: 76767679 76797979 11e2e240 117e347e yvvvyyyv@...~4~.
1de80: c3e57ee2 c1c3e4e4 79137610 0d0d7679 .~.......v.yyv..
1de90: 5f403434 c3c16602 37c1c1c1 5e5eb3c8 44@_.f.....7..^^
1dea0: 315e5e5e ee6e7676 56c1c114 4b14ccf9 ^^^1vvn....V...K
1deb0: 39b5b5e0 bc414b3a adf0babd 80dabcbd ...9:KA.........
1dec0: 20b3645e 3a2641b3 0486c156 13179c9c ^d. .A&:V.......
1ded0: c8135e79 adc56aac 9c398585 5c9ce7e7 y^...j....9....\
1dee0: 4bd585bd 3c7dd5ad 7d7d3c3c a0a07d7d ...K..}<<<}}}}..
1def0: 3333339f 0d2b6733 79790d0d b3b35e79 .3333g+...yyy^..
1df00: 36367070 36000070 7048360c 48487070 pp66p..6.6HpppHH
1df10: 69cbcbcb cb696969 abe9cbcb 1364642b ...iiii.....+dd.
1df20: c5133179 13c57d0f 76767913 79797976 y1...}...yvvvyyy
1df30: 11404076 7e347e40 f17ee211 c36060c1 v@@.@~4~..~..``.
1df40: 137696c1 0d767979 11403446 6077e211 ..v.yyv.F4@...w`
1df50: 565642c3 5e0d6fc1 5e795e5e 5d40765e .BVV.o.^^^y^^v@]
1df60: c1c1cc39 14ccf956 b5bce026 8ed59c26 9...V...&...&...
1df70: e0f0d699 dae07be0 b3645e80 2741b320 .....{...^d. .A'
1df80: 86c186f9 49040404 31137913 f35ae4e5 .......I.y.1..Z.
1df90: 558555bd 9c9ee75c d5bdbd9c 9595b685 .U.U\...........
1dfa0: 216c2121 52525252 b13ce395 13339fa0 !!l!RRRR..<...3.
1dfb0: 0d34c879 b3797676 700036b3 70487048 y.4.vvy..6.pHpHp
1dfc0: 36363670 48707070 15cbcb48 69696969 p666pppHH...iiii
1dfd0: e90c69cb 206413bb c5137920 d7c58e0f .i....d y......
1dfe0: 76311313 79797676 11404079 347e4011 ..1vvvyyy@@..@~4
1dff0: 02e21134 fe60c15a d856c1c3 76797931 4...Z.`...V.1yyv
1e000: 40340d0d 11315f11 8fe4c12f 66c156c3 ..4@._1./....V.f
1e010: 765e5e0d 0d765e5e 56cc3941 3af956c1 .^^v^^v.A9.V.V.:
1e020: e0f426cc 219ebdb5 bc9eba65 e0bcc6c6 .&.....!e.......
1e030: 195e75da d7b32064 c1860427 ee048d86 .u^.d ..'.......
1e040: 1379136e f542e179 85555547 9e9ee755 n.y.y.B.GUU.U...
1e050: 99993a3a d2baf06c 3c4c9521 7d7d3c3c ::..l...!.L<<<}}
1e060: 4c3c7d7d fbce5252 c879139f 0d34340d }}<LRR....y..44.
1e070: 48697976 44480000 3648000c 70704836 vyiH..HD..H66Hpp
1e080: cbcb4848 69696969 4e126915 d1642be9 HH..iiii.i.N.+d.
1e090: af132041 41d7c50f 3113e8c5 79767679 A .....A...1yvvy
1e0a0: e2767979 7e1111e2 e2113434 96c16602 yyv....~44...f..
1e0b0: c1c1c31a 79137671 340d0d76 315f5f40 ....qv.yv..4@__1
1e0c0: 562e3480 568f6060 5e406fc1 76767676 .4.V``.V.o@^vvvv
1e0d0: 3a55410d f956c186 e026ccf9 ba997bbc .AU:..V...&..{..
1e0e0: 7bbc0f65 bcc6c6e0 5e75dae0 b3206419 e..{......u^.d .
1e0f0: a70427d7 8d8d86c1 79670e26 6094c813 .'......&.gy...`
1e100: 55394b5b e75c554b c0a78399 2121f0ba [K9UKU\.......!!
1e110: 7d7d3cd5 a0a0a005 339f9fa0 4c7df233 .<}}.......33.}L
1e120: 337d5252 74c8c876 70c87468 48007048 RR}3v..tht.pHp.H
1e130: 7048e91e 70483636 cb484870 6969cbcb ..Hp66HppHH...ii
1e140: 69690c69 b31ee969 b1c5c5c5 d713c593 i.iii...........
1e150: e8c54141 76763113 e2797979 11e2e2e2 AA...1vvyyy.....
1e160: 1134347e c19434e2 c1421afe 1376acc1 ~44..4....B...v.
1e170: 0dc87979 31114034 64e25e31 60968f42 yy..4@.11^.dB..`
1e180: 71c1c1c3 76767634 55e80d76 56c1a73a ...q4vvvv..U:..V
1e190: 55cc04f9 babaadbc e020afb6 c6c6deb8 ...U...... .....
1e1a0: 7550f4bc 2064195f 8d17e8b3 8da75683 ..Pu_.d .....V..
1e1b0: 130e4b92 60643167 39bdc56a c29e5555 .K..g1d`j..9UU..
1e1c0: a7a7c0ba a285b6c2 35057da2 9f9f9f35 .........}.55...
1e1d0: dcc59f9f 33333333 523cb19f c82bf2e3 ....3333..<R..+.
1e1e0: 74597477 00000070 3669cb00 70364870 wtYtp.....i6pH6p
1e1f0: 48487070 e91e69cb 690c6969 791e0c69 ppHH.i..ii.ii..y
1e200: 9325c5d7 e8d7c58e c541c5d7 3131e8d7 ..%.......A...11
1e210: 79797979 e2e2e276 34347e11 2e34e240 yyyyv....~44@.4.
1e220: 601afe56 d1c3c1c1 c8797979 e240340d V..`....yyy..4@.
1e230: 5e5e3131 96c1e140 c1c36060 763471c1 11^^@...``...q4v
1e240: e8c8c876 c1a7f926 cc04f956 b6baf0c2 v...&...V.......
1e250: 5e207f7b c6deb8f4 d0f4bcc6 64195f80 {. ^........._.d
1e260: 1713b3b3 a756cc8d 7d4b278d f5761333 ......V..'K}3.v.
1e270: bd41e642 c0f0e739 9899c2c0 d5ad5c14 B.A.9........\..
1e280: 3505a2a2 dc9fa035 9fa0359f 791313dc ...55....5.....y
1e290: c5331367 b15237a0 74770d2b 70700012 g.3..7R.+.wt..pp
1e2a0: 36700c70 00004836 48707070 e9776948 p.p66H..pppHHiw.
1e2b0: 690c0c0c 77e90c69 4c252013 c5d7138e ...ii..w. %L....
1e2c0: c5c5d7e8 41e8e8dc 79797913 e2407679 .......A.yyyyv@.
1e2d0: 347ee2e2 68e24034 1afec3ac c1c156fe ..~44@.h.....V..
1e2e0: 79797953 400d0dc8 e83131e2 ac0d315e Syyy...@.11.^1..
1e2f0: 606096c3 53c1c1c3 c8c87646 14f94b5e ..``...SFv..^K..
1e300: 9c3a5656 bcb6c0a7 b362e0bc b5b562b3 VV:.......b..b..
1e310: f4bcc6f4 195ff7d0 13b3b319 863a926b ......_.....k.:.
1e320: 26278da7 c81367a0 f3e1e494 bac0ef9e ..'&.g..........
1e330: 559e5c99 859c149c 05a2a2a2 9f9fa035 .\.U........5...
1e340: 8e359f9f 13dc9fa0 79767979 fbaf3313 ..5.....yyvy.3..
1e350: 462b0f52 70364677 48364844 70703670 R.+FwF6pDH6Hp6pp
1e360: 70707000 69776970 69e91e69 e94ee90c .ppppiwii..i..N.
1e370: 4caf672b 1313c58e d7d7d7e8 0edce8dc +g.L............
1e380: 797979dc 40767979 40e2e2e2 e2407e0d .yyyyyv@...@.~@.
1e390: fec3ac68 c1421a1a b37665c1 0d0dc879 h.....B..ev.y...
1e3a0: 3131e240 e2315e5e 6060c3e5 c1566060 @.11^^1...````V.
1e3b0: 2b46b4c1 044b31c8 a75656cc e0e7ccc0 ..F+.1K..VV.....
1e3c0: 62e0def4 b862b3b3 e0c6f4b5 5ff7d0f4 ...b..b........_
1e3d0: 64641919 f99216b3 278da786 5e67c54b ..dd.......'K.g^
1e3e0: f1fefe64 5cc0c0bd 55e75555 9c140455 d......\UU.UU...
1e3f0: 85d5a24b 9f9f3549 a09f9f9f c5a08e35 K...I5......5...
1e400: 79797913 3367c840 b1520faf e976462b .yyy@.g3..R.+Fv.
1e410: 0036cb48 70707036 36707070 e9e97036 H.6.6pppppp66p..
1e420: 2dbb6d15 4e0ce92d 93af79c8 31c5c525 .m.--..N.y..%..1
1e430: 13131379 dce8d7d7 797931e8 76797979 y........1yyyyyv
1e440: e2e2e2e2 e27e7e40 c31a34e2 601a1afe ....@~~..4.....`
1e450: d1c3c1c1 0d0d7979 31e2400d 315e5e31 ....yy...@.11^^1
1e460: c35a0d5e e4606096 6442c156 4b5ec80d ^.Z..``.V.Bd..^K
1e470: c156149c 2604e783 e0def4f4 6bb3b3b9 ..V....&.......k
1e480: c6c6de7b f7d0f4e0 b31919c9 925db364 {...........d.].
1e490: 8d8686f9 67136b27 6ae4f576 e799ba71 ....'k.gv..jq...
1e4a0: 39554b55 14e75555 85a2853a 0e35a2ad UKU9UU..:.....5.
1e4b0: dc9f9f35 358e9f9f 7913c59f 0d0d7931 5......5...y1y..
1e4c0: fbb1c579 2b2bafea 3600cbcb 70703670 y.....++...6p6pp
1e4d0: 70707070 69483648 6d1e0ccb 77e9e90c ppppH6Hi...m...w
1e4e0: 935bc82b 13d733c5 13137976 e8d7d713 +.[..3..vy......
1e4f0: 79793113 79797979 e2e2e276 31794031 .1yyyyyyv...1@y1
1e500: fe77e2e2 1a1afec3 c1c1c31a 407940be ..w..........@y@
1e510: e240340d 5e803131 bb5e315e 60968f60 .4@.11.^^1^.`..`
1e520: c156e460 130d7760 568683bd 8d269c56 `.V.`w.....VV.&.
1e530: c4f4f427 20b3b9e0 c6deb517 c6f4e0f8 '...... ........
1e540: 64bb19f7 f6b3b3b3 86a70427 311617ee ...d....'......1
1e550: 606679b3 4badb166 554b3939 e75555e7 .yf`f..K99KU.UU.
1e560: 4b55cc14 35a2ad85 dca00535 8e35dcdc ..UK...55.....5.
1e570: dc9f358e 76131313 c5793434 5b524cb1 .5.....v44y..LR[
1e580: 703600c8 70703636 70707070 48707048 ..6p66ppppppHppH
1e590: 6de9cb48 c8771e2d 0ff279b3 132067d1 H..m-.w..y...g .
1e5a0: 5e76c879 13131313 79793113 79137979 y.v^.....1yyyy.y
1e5b0: 31e27979 6edc3131 0de2e245 1afec3fe yy.111.nE.......
1e5c0: c1e41a1a 31798fc1 7e340d76 5e313111 ......y1v.4~.11^
1e5d0: 13315e5e 96c35179 8f606060 772ec1c1 ^^1.yQ..```....w
1e5e0: ccefba37 27f95686 f4f42692 b3b9e0c4 7....V.'.&......
1e5f0: dec43020 f4e0d0c6 bb19dac6 b3b313b3 0..............
1e600: 86042741 62170486 acb4f213 bc415afe A'.....b.....ZA.
1e610: 4b39394b 5555e755 55cccc39 47ad5555 K99KU.UU9..UUU.G
1e620: 8e7d8e35 35dcdc9f 35358e8e 203131c5 5.}....5..55.11
1e630: 68347613 ea0fc579 6970b3fb 70700036 .v4hy.....pi6.pp
1e640: 70707070 707036cf 0c693648 77771e0c pppp.6ppH6i...ww
1e650: 0faf792b 79677967 0dc82b79 79797976 +y..gygyy+..vyyy
1e660: 79797979 13dc1379 e2797931 b80e3131 yyyyy...1yy.11..
1e670: e2e24041 fec3fe0d fe1a1a1a 53c1c1c1 A@.............S
1e680: 34407640 31e24034 31315e5e acbbe85e @v@44@.1^^11^...
1e690: 6060968f c1c14260 39852ce6 f956a73a ..```B...,.9:.V.
1e6a0: e0272627 62e0c4f4 50b3b3b3 f4d0c6f4 '&'....b...P....
1e6b0: 1950f4f4 d7d7b3bb 041730d1 170486a7 ..P......0......
1e6c0: 24e30f3d 41f51a60 26264bbc 55394b4b =..$`..A.K&&KK9U
1e6d0: 14cc3955 85559e39 7d053547 dcdc3505 U9..9.U.G5.}.5..
1e6e0: 8e35359f 7979c535 7613c513 afb37468 .55.5.yy...vht..
1e6f0: 70f2ea37 70003636 70707070 70cbcf48 7..p66.pppppH..p
1e700: cb694870 771e1e0c 0ff2c82b 79792b67 pHi....w+...g+yy
1e710: c8791313 c80d0d77 79797979 e8dc6779 ..y.w...yyyyyg..
1e720: 79313113 b8353131 e2407687 c3ac68e2 .11y115..v@..h..
1e730: fe1a1afe c1c1421a 40764096 e240340d .....B...@v@.4@.
1e740: 31315e31 b3135e31 6096c30b c3e4e460 1^111^.....``...
1e750: 5daec1c1 56a7f939 272727f9 e0def4e0 ...]9..V.'''....
1e760: 1919b362 50c6f480 d0c6f4f4 6e1319c9 b......P.......n
1e770: 17e8d10e f986a704 5b52b6aa d8ac6066 ..........R[f`..
1e780: 264b475d 554b4b26 cc395555 e70404a7 ]GK&&KKUUU9.....
1e790: 0505a285 dc35057d 8e8e9fdc 79139f8e ....}.5........y
1e7a0: c5c51376 c8687613 fb52b120 70700070 v....vh. .R.p.pp
1e7b0: 70007070 70483836 e9484870 7777e90c pp.p68HppHH...ww
1e7c0: fb5bab2b 2b2bc803 79202079 0d0d77c8 +.[...++y y.w..
1e7d0: 31317976 13677979 31313131 6ee8e279 vy11yyg.1111y..n
1e7e0: 40403145 2e34e2e2 fe1afec3 c1fe1afe E1@@..4.........
1e7f0: 7e2cc1c1 34340d40 315ee240 135e3131 ..,~@.44@.^111^.
1e800: 8f2e2b13 e4606096 42c1c360 a7f926d8 .+...``.`..B.&..
1e810: 2717f956 bce0e027 19b3c6bc c6d07619 V..''........v..
1e820: c6f4f450 5db35ec6 13d1e817 86a78d6b P....^.]....k...
1e830: dc85ba83 6afefe2b 4b4b6e67 4b4b2626 ....+..jgnKK&&KK
1e840: 39555555 f99ca7cc 05a28504 35057d7d UUU9........}}.5
1e850: 8e9fdcdc 13dca08e d779c879 0d13c5c5 ........y.y.....
1e860: 375b2b74 000000e3 cf480070 690c3636 t+[7....p.H.66.i
1e870: 36367070 77e9e90c 37b02b2b 77c8c8d1 pp66...w++.7...w
1e880: 201379c8 0d77c879 1331790d 79797931 .y. y.w..y1.1yyy
1e890: 31131379 31e27931 40313131 34e2e240 y..11y.1111@@..4
1e8a0: 1afec32e 1afe1afe 96c1c142 3440400d ........B....@@4
1e8b0: 31114034 5e313131 72132013 60609642 4@.1111^. .rB.``
1e8c0: 56e4e460 9861fec1 173a56a7 b8de2717 `..V..a..V:..'..
1e8d0: 5ec6e0b8 7519bbbb f4c6f7d0 41f7c6c6 ...^...u.......A
1e8e0: d1d77c6b a7ee4920 164b1456 1ae4b4e2 k|.. I..V.K.....
1e8f0: 4b6e3166 4b26264b 5555554b 3a863a39 f1nKK&&KKUUU9:.:
1e900: 054b04f9 057d7d7d c5e8dc0e 9fc5a09f ..K.}}}.........
1e910: 76c86705 d7c5c513 79777479 0000102c .g.v....ytwy,...
1e920: 00707000 36361e0c cb707070 e90ccb0c .pp...66ppp.....
1e930: 37d82b79 0d2b2b5b 13792b77 0dc87913 y+.7[++.w+y..y..
1e940: 79790d0d 79793131 1313e831 e2793131 ..yy11yy1...11y.
1e950: 454531e2 e2117e76 fec36a34 1a1a1a1a .1EEv~..4j......
1e960: c156fe1a 40342cc1 117e3434 315fe25f ..V..,4@44~._._1
1e970: 4cafc513 fee42eb4 60e46060 57c1c1e4 ...L....``.`...W
1e980: 3a868609 b8271727 c6e0deaa bbbbbbb3 ...:'.'.........
1e990: 628075c9 f8c6c6f4 d7b9c4de 9c92f220 .u.b........ ...
1e9a0: 173a5686 60be768b 6e31e11a 26264b4b .V:..v.`..1nKK&&
1e9b0: 55554b26 863a3955 d5e7f93a 7d7d7d05 &KUUU9:.:....}}}
1e9c0: e8e89f05 c5c5dce8 c8793c8d 5e1331c8 .........<y..1.^
1e9d0: 74747679 00e3d119 cf007000 1e6d70e9 yvtt.....p...pm.
1e9e0: 70707070 0c69e936 37d8642b 0d2b2b5b pppp6.i.+d.7[++.
1e9f0: 79c8c8c8 c87913b3 c80d0d0d 79797979 ...y..y.....yyyy
1ea00: 130e0e13 79313131 e831e2e2 11404031 ....111y..1.1@@.
1ea10: c39434e2 1a1a1afe 8f1afe1a 46e4c1c1 .4.............F
1ea20: 34344040 5e315f40 4c37afe8 c372130f @@44@_1^..7L..r.
1ea30: 6060601a c14260e4 56cc81c1 b8b5273a .```.`B....V:'..
1ea40: e0f4e0aa bbbb5ec6 5ec97474 c6c6c6b9 .....^..tt.^....
1ea50: 50b527c4 9c845bd7 f956a79c ac768b27 .'.P.[....V.'.v.
1ea60: 45b4acfe 4b4b4b5d 554b2626 9c555555 ...E]KKK&&KUUUU.
1ea70: 55e73aa7 7da27d49 e89f357d 131333dc .:.UI}.}}5...3..
1ea80: 79338d05 76760dc8 4674740d 6f644674 ..3y..vv.ttFtFdo
1ea90: 00707070 cf1e6900 4870700c 69e93670 ppp..i...ppHp6.i
1eaa0: 37d1b3ab 772b2bb1 79c8760d 79202079 ...7.++w.v.yy y
1eab0: 0d0d0dc8 797979c8 13359f79 79313131 .....yyyy.5.111y
1eac0: 31e2e276 7e7e4031 94345f11 1a1afec3 v..11@~~._4.....
1ead0: fefefe1a c1c1c3fe 34400224 e8314034 ........$.@44@1.
1eae0: 0f4c4caf 775e13c5 60fe60fe 60e4e460 .LL...^w.`.``..`
1eaf0: 5742c1c3 b5273a56 f4f4b5b8 bb5ec6f4 ..BWV:'.......^.
1eb00: 743874bb c6f83019 b592dec6 043cd7b9 .t8t.0........<.
1eb10: 56149295 b41d27f9 d12eace4 4b4b5ddc ...V.'.......]KK
1eb20: 4b26264b 55555555 559ca79c 7d7d05a2 K&&KUUUU...U..}}
1eb30: dc8e7d7d 6733dce8 79f2a067 400dc879 }}....3gg..yy..@
1eb40: 68680d76 d8467474 00707010 48003648 v.hhttF..pp.H6.H
1eb50: 707036e9 cf360c48 37d12b0c 77b31393 .6ppH.6..+.7...w
1eb60: c80d7777 c5d71379 0d0d0d31 3179760d ww..y...1....vy1
1eb70: 13dc1379 79793179 e2407679 0d40e2e2 y...y1yyyv@...@.
1eb80: 34e2117e 1afec3e6 1a1a1a1a c1601afe ~..4..........`.
1eb90: 7ebbc3c1 c5314040 c58e4c93 b3132033 ...~@@1..L..3 ..
1eba0: acc3e10d e4606060 c1c1e4e4 171494fe ....```.........
1ebb0: c6de17de 5ec6c4c6 387474bb f880bb38 .......^.tt88...
1ebc0: 8ddec6c6 65fb7c27 148a4171 b927f956 ....'|.eqA..V.'.
1ebd0: 94ace4be 4b5d4131 26264b4b 55554b4b ....1A]KKK&&KKUU
1ebe0: 9ccc0455 7d49494b 0e05057d 13dc13e8 U...KII}}.......
1ebf0: 79676767 c8c87979 76131331 7459b246 gggyyy..1..vF.Yt
1ec00: 7070fcb4 44bb3600 70367070 69e97070 ..pp.6.Dpp6ppp.i
1ec10: 0f64ab0c 2b205b4c 77777777 411379c8 ..d.L[ +wwww.y.A
1ec20: 0d76130e 31790d0d 79797931 79797979 ..v...y11yyyyyyy
1ec30: 40767931 40e2e2e2 5f117e7e 60c35a02 1yv@...@~~._.Z.`
1ec40: 1a1a1aac 1afefe1a 94c1c142 0f3331b2 ........B....13.
1ec50: 13e8b137 13131313 e4ab76b3 6060fe1a 7........v....``
1ec60: 4260e460 7ae6c1c1 de17de27 f4c4c6c6 `.`B...z'.......
1ec70: 7474bb80 5ebb3838 dec6c6d0 5221268d ..tt88.^.....&!R
1ec80: 8ae8d1af 273a56cc ac60ac30 5ddc31be .....V:'0.`..1.]
1ec90: 264b4b4b 554b4b26 f9e75555 49a2d5e7 KKK&&KKUUU.....I
1eca0: 8e35057d 131313dc 67677913 c8797967 }.5......ygggyy.
1ecb0: afafc579 596876d7 70fcb474 70007070 y....vhYt..ppp.p
1ecc0: 703638e9 36704870 af2b1e69 b320c5ce .86ppHp6i.+... .
1ecd0: 777777c8 1379c877 7613c50e 79400d0d .wwww.y....v..@y
1ece0: 79793131 79767979 76793179 e2e2e240 11yyyyvyy1yv@...
1ecf0: 117e7e40 c3e17ee2 1a1aac60 1a1a1a1a @~~..~..`.......
1ed00: c156fe1a 37c572c1 313113af 13135e31 ..V..r.7..111^..
1ed10: 465eb35e 60ace494 e4e46060 c1c1c360 ^.^F...```..`...
1ed20: 17de178c c4c6c6de 7419b9f4 74383874 ...........tt88t
1ed30: c6c61d5e b6c2eede 5eb35e41 3a86cc49 ^.......A^.^I..:
1ed40: ace4c527 dc452c1a 4b4b4b5d 4b4b2626 '....,E.]KKK&&KK
1ed50: e755554b 49a255e7 35350549 1313dc35 KUU..U.II.555...
1ed60: 79797913 79797979 7d255ec8 4613af8e .yyyyyyy.^%}...F
1ed70: fcd85959 36000070 cf3669bb e9367070 YY..p..6.i6.pp6.
1ed80: d1abe936 b320afce 77777777 7976c877 6..... .wwwww.vy
1ed90: 13d7d713 400d0d76 79793179 76c87976 ....v..@y1yyvy.v
1eda0: 79797979 e2e24076 7e7e40e2 727ee240 yyyyv@...@~~@.~r
1edb0: 1aac6042 1a1a1a1a e41a1a1a e542c1c1 B`............B.
1edc0: 11e25f31 135e5f11 b3b35e13 2e42b440 1_..._^..^..@.B.
1edd0: 606060fe c16060e4 deb060c1 c6c6de17 .```.``..`......
1ede0: 1950f4c4 38387474 c6f7b374 9ec2adf4 ..P.tt88t.......
1edf0: b35e8016 863a495e 42be053a e8d8ac6a ..^.^I:.:..Bj...
1ee00: 4b4b5d41 4b26264b 554b4b4b a24b5555 A]KKK&&KKKKUUUK.
1ee10: 35350549 13e89f8e 79793113 79797979 I.55.....1yyyyyy
1ee20: a233c82b 138e8e7d d8595946 707070a6 +.3.}...FYY..ppp
1ee30: 361e6900 70707070 ab1e0ccd 1320b137 .i.6pppp....7. .
1ee40: 77c877c8 b3b3c877 13137979 0d0dc831 .w.ww...yy..1...
1ee50: 7979790d 76767979 79797976 e2407979 .yyyyyvvvyyyyy@.
1ee60: 7e40e2e2 7ee2117e 1ae442e5 1a1a1aac ..@~~..~.B......
1ee70: fe1a1a1a c1c1e41a 4011342e 5e5f1111 .........4.@.._^
1ee80: 79b3135e 60193179 6060ac1a 60e46060 ^..yy1.`..````.`
1ee90: 32c1c142 c6deb506 50f4c6c6 38747476 B..2.......Pvtt8
1eea0: 80b37438 9e99adc6 5ef78b27 f96e5eb3 8t......'..^.^n.
1eeb0: a6a03aa7 132e6ae4 4b5d0edc 26264b4b .:...j....]KKK&&
1eec0: 4b4b4b4b 47855555 35350549 139f3535 KKKKUU.GI.5555..
1eed0: 76791313 79797976 05797679 af8e8ed5 ..yvvyyyyvy.....
1eee0: 7454685e e970a6b4 703644bb cf707036 ^hTt..p..D6p6pp.
1eef0: bb6d4836 d164fb53 c8ab772b b379c8c8 6Hm.S.d.+w....y.
1ef00: 5e792b79 77c8795e 2b760d0d 79797979 y+y^^y.w..v+yyyy
1ef10: 79767679 40797979 40e2e2e2 e2117e7e yvvyyyy@...@~~..
1ef20: e460ab11 acacac1a 1a1a1a1a e41a1a1a ..`.............
1ef30: 025ac1c1 5f11115f b313b331 465e7679 ..Z._.._1...yv^F
1ef40: fe2ee466 60606060 c1566060 b5b54dc1 f...``````V..M..
1ef50: f4c6c6c6 74bb5ec6 64bb3838 7b99add7 .....^.t88.d...{
1ef60: f78b2626 5d5eb35e a3f9a704 666a1a60 &&..^.^]....`.jf
1ef70: 0e0e4131 264b4b47 4b4b4b26 4b55554b 1A..GKK&&KKKKUUK
1ef80: 353549a2 dc35350e 79311313 79797676 .I55.55...1yvvyy
1ef90: 33767979 258e8ed5 59597413 0065f574 yyv3...%.tYYt.e.
1efa0: bbbb0c48 707070cf 2a0c0ccf ab4d104d H....ppp...*M.M.
1efb0: c8ab77ab 7979c8c8 2bc8c879 c82b7979 .w....yyy..+yy+.
1efc0: c80d7777 79792bc8 76767979 76797979 ww...+yyyyvvyyyv
1efd0: e2e24040 117e7e40 ac77115f acacfe42 @@..@~~._.w.B...
1efe0: acacacac 1a1a1a1a c1c142fe 5fe2a4f5 .........B....._
1eff0: 135e315f 797679b3 6ae47240 6060601a _1^..yvy@r.j.```
1f000: 60fe6060 33acc1c1 c6c6c6b5 bb80f4f4 ``.`...3........
1f010: 77383874 bcbde3d8 8b2627c4 5eb35e80 t88w.....'&..^.^
1f020: 8da7ee5d 1a6a4271 0e414553 4b4b470e ]...qBj.SEA..GKK
1f030: 4b4b2626 85554b4b 35354947 0e0e0e0e &&KKKKU.GI55....
1f040: 793113dc 2b797676 2b2b2b2b 8e9fc520 ..1yvvy+++++ ...
1f050: 74590dc5 65f53859 70000048 7036e969 ..YtY8.eH..pi.6p
1f060: d3367070 ab5337ab 2bab77ab c8c82b79 pp6..7S..w.+y+..
1f070: 77770dc8 c82b792b 0d770dc8 7979c8c8 ..ww+y+...w...yy
1f080: 76797979 79797979 40404076 7e7e40e2 yyyvyyyyv@@@.@~~
1f090: 34e25f11 acfe4294 acacacac 1aacacac ._.4.B..........
1f0a0: 42fe1a1a 7ee5c1c1 5e315f5f 7679b35e ...B...~__1^^.yv
1f0b0: febb5f76 60962eac 60606060 c1c142fe v_.....`````.B..
1f0c0: c6f4168c b9c4f4c6 38387419 6b26e3e5 .........t88..&k
1f0d0: 2727c4c4 b35e808b 148df65e 9442a609 ..''..^.^.....B.
1f0e0: 0ee85b1a 4b47350e 2626264b 554b4b4b .[...5GKK&&&KKKU
1f0f0: 35354785 9f0e0e0e 31e8dc9f 79797679 .G55.......1yvyy
1f100: c8c8c879 13c8c8c8 747479dc f538a959 y........yttY.8.
1f110: 0c44446f 48700070 0c693670 03e32cab oDD.p.pHp6i..,..
1f120: 2b7777ab c82b3333 7777770d 79792bab .ww+33+..www.+yy
1f130: 0d0dc82b 7976c80d 79797976 79797976 +.....vyvyyyvyyy
1f140: 40407679 7e40e240 11e2117e fe42e134 yv@@@.@~~...4.B.
1f150: acacacac acacacac 1a1a1a1a 42c1c3fe ...............B
1f160: 5e311164 79b35e5e 465e7676 1a941a57 d.1^^^.yvv^FW...
1f170: 60606060 c160fe60 f43342c1 c4f4c6c6 `````.`..B3.....
1f180: 3874c98b 35d5102f 27c4c61d b35e8b27 ..t8/..5...''.^.
1f190: 92f65eb3 fefe71cc 8713ac57 49350e0e .^...q..W.....5I
1f1a0: 26264b4b 554b4b26 0e4b5555 dcdc410e KK&&&KKUUUK..A..
1f1b0: 33dcdcdc 79767613 c82b7913 7777c8c8 ...3.vvy.y+...ww
1f1c0: 1274c80d bb3b5459 0c36bebe 7036e944 ..t.YT;...6.D.6p
1f1d0: 69707070 2cced144 2b1e77ab c86705a0 pppiD..,.w.+..g.
1f1e0: 1e1277c8 792bab77 0dc82b79 79c80d0d .w..w.+yy+.....y
1f1f0: 79767979 79767676 40767979 40e24040 yyvyvvvyyyv@@@.@
1f200: e2117e7e 427240e2 acacac60 acacacac ~~...@rB`.......
1f210: 1aacacac c3feac1a 11b38fc1 b35e5e5e ............^^^.
1f220: 5e767679 941ae146 6060feac fefefefe yvv^F.....``....
1f230: 5ac1c142 c6c6c6b9 745ec4c4 c553a6b4 B..Z......^t..S.
1f240: c4c68013 5e8b2717 f65eb3b3 42bef992 .....'.^..^....B
1f250: 13a694ac 35350e41 264b476e 4b4b2626 ....A.55nGK&&&KK
1f260: 4b55554b 45e8e80e 13131345 76763113 KUUK...EE....1vv
1f270: 2b791379 77c8c8c8 54597474 543b0854 y.y+...wttYTT.;T
1f280: 00b46f64 36367000 70707070 cefbbf69 do...p66ppppi...
1f290: 771eabd1 ab670533 127777ab 2b77771e ...w3.g..ww..ww+
1f2a0: c8797979 760d0d0d 79797979 76767676 yyy....vyyyyvvvv
1f2b0: 76797979 e2e24040 e27e7e40 72d73131 yyyv@@..@~~.11.r
1f2c0: acace460 acacacac acacacac ac1a1aac `...............
1f2d0: 8fc1c3fe 5e5ee2b3 767679b3 fe2f405e ......^^.yvv^@/.
1f2e0: fe1a6a94 fefefefe c1c1fefe c6c65ee4 .j...........^..
1f2f0: 80dedec6 bbb4a6b4 c65e1964 8b2717c4 ........d.^...'.
1f300: 5eb3b35e a6842630 66ac9442 350e0e45 ^..^0&..B..fE..5
1f310: 4b476e35 4b262626 5555554b 45e86e4b 5nGK&&&KKUUUKn.E
1f320: 13311345 76791313 31137976 77c82b79 E.1...yvvy.1y+.w
1f330: 74597474 12595974 646fb459 00007036 ttYttYY.Y.od6p..
1f340: 70707000 d2bf4469 1e1e64b1 ab2b67ab .pppiD...d...g+.
1f350: 777777ab c8771e12 7979792b 0d0d4076 .www..w.+yyyv@..
1f360: 79797976 76767679 79797676 e2404076 vyyyyvvvvvyyv@@.
1f370: 407e4011 4c8ec531 ace46a4d acacac2e .@~@1..LMj......
1f380: acacacac acacacac c3feacac 5fb38fc1 ..............._
1f390: 7679b313 bf765e5f ac94941a fefe1afe ..yv_^v.........
1f3a0: 421afefe 50e1c1c1 b5dec6c6 38b4a647 ...B...P....G..8
1f3b0: c9191938 2717c650 5eb35e16 a326305e 8...P..'.^.^^0&.
1f3c0: 1ae660fe 350e8753 a2493535 2626264b .`..S..555I.K&&&
1f3d0: 55554b4b dc0e4b55 313145e8 79317979 KKUUUK...E11yy1y
1f3e0: 13797676 2b791313 c8127777 74591279 vvy...y+ww..y.Yt
1f3f0: bebe7412 cbe9e9bb 70707070 53d36970 .t......pppppi.S
1f400: 1eabd1ea 7777771e 7777abab 77771277 .....www..www.ww
1f410: 13792bc8 40763113 7979c80d 76797979 .+y..1v@..yyyyyv
1f420: 797676c8 40407679 76e2e211 8e4c7d13 .vvyyv@@...v.}L.
1f430: 42e60de8 2e2e2eac acacac2e acacacac ...B............
1f440: acacacac 42c1c3fe 795e76d8 5f5e5f76 .......B.v^yv_^_
1f450: 94942ebb fe1a1aac fefefefe fec156fe .............V..
1f460: dec6c65e 745bba9e 19193838 17c6f719 ^.....[t88......
1f470: b35e1627 17305e5e e6ace471 0e0eaf1a '.^.^^0.q.......
1f480: 49053535 264b4749 854b4b26 35475555 55.IIGK&&KK.UUG5
1f490: 45dc0e0e 79793113 76c8c879 13137979 ...E.1yyy..vyy..
1f4a0: 7474c879 54747479 10193ba9 697038f5 y.ttyttT.;...8pi
1f4b0: 367036cd 44e90ce9 1eab2c10 77777712 .6p6...D.,...www
1f4c0: 77777777 771e7777 792bc877 31e8d713 wwwwww.ww.+y...1
1f4d0: 79c84076 79797979 7676c876 40767679 v@.yyyyyv.vvyvv@
1f4e0: d71331e2 dc8e3c8e 0b7ee231 2e2e1a42 .1...<..1.~.B...
1f4f0: 2e2e2e2e acac2e2e acacacac c31aacac ................
1f500: 762cc3c1 5e5f76b3 9494745f 1a1a6a57 ..,v.v_^_t..Wj..
1f510: 1a1a1a1a c1e41afe c4d053c1 5e7bc0ad .........S....{^
1f520: 19383874 f85f1919 5e1627b5 415e5e5e t88..._..'.^^^^A
1f530: 9442945d 6e0e9457 0535350e 4b474949 ].B.W..n.55.IIGK
1f540: 4b4b2626 a24b554b 0e35356e 1313dc0e &&KKKUK.n55.....
1f550: 0dc87979 1379c80d 74c83113 12747474 yy....y..1.tttt.
1f560: b4385454 00546410 00707000 d30ce969 TT8..dT..pp.i...
1f570: 44bf10f5 7777771e c8777777 7777c82b ...D.wwwwww.+.ww
1f580: 2bc87777 d7c51379 7676795e 79797979 ww.+y...^yvvyyyy
1f590: 76c87679 79767676 0fdc3131 3113b14c yv.vvvvy11..L..1
1f5a0: 7e404031 2efefebf 2e2e2e2e 2e2e2e2e 1@@~............
1f5b0: acacacac acacacac c1c1e4ac 5e790d53 ............S.y^
1f5c0: 6a465f5e 1a6a576a 1a1a1a1a 1a1a1a1a ^_FjjWj.........
1f5d0: 80fec1c1 2755baad 38387480 c9191919 ......U'.t88....
1f5e0: 1627deda 5e805e5e 60fe4141 5d6694e6 ..'.^^.^AA.`..f]
1f5f0: 35350e6e 49494905 4b26264b a24b4b4b n.55.IIIK&&KKKK.
1f600: 3535356e dc0e0e35 767913e8 c8c8c80d n5555.....yv....
1f610: c879792b 74122bc8 64767454 a974be66 +yy..+.tTtvdf.t.
1f620: 70000000 6d360070 44e110bf c8771ee9 ...pp.6m...D..w.
1f630: c8c8c8c8 c8b31379 c8777777 d7137979 ....y...www.yy..
1f640: 767913c5 79797976 76767979 31797976 ..yvvyyyyyvvvyy1
1f650: 4c8e3313 40e2330f 4040e240 606a7440 .3.L.3.@@.@@@tj`
1f660: 2e2e2e2e 2e2e2e2e 2e6a6a2e acac6aac .........jj..j..
1f670: 96ac2eac 0d37c1c3 46315e31 6a576a94 ......7.1^1F.jWj
1f680: 1a1a1a1a 1a1a1a1a c1c1e4ac 27bcb671 ............q..'
1f690: 3846b926 19194638 27c45f46 808080c4 &.F88F..F_.'....
1f6a0: e4b106e8 716a321a 35350e6b 49494905 .....2jqk.55.III
1f6b0: 4b4ba26e 4947474b 0e0e0e0e 0e0e0e0e n.KKKGGI........
1f6c0: 13e89f0e c80dc879 c8c8c877 74c87974 ....y...w...ty.t
1f6d0: b3c85959 54b4a6b4 700069a9 cf703636 YY.....T.i.p66p.
1f6e0: bf6fe144 2b774ed3 b379b3b3 13d713b3 D.o..Nw+..y.....
1f6f0: 0d7777c8 b3b379c8 79e8c5e8 79797640 .ww..y.....y@vyy
1f700: 76797979 13797676 7d4c8e33 7ee231c5 yyyvvvy.3.L}.1.~
1f710: 40e2407e ed344040 a6942ee4 2e2e2e2e ~@.@@@4.........
1f720: 6a6a6a2e 6a6a6a6a 2e2e2e6a c18fac2e .jjjjjjjj.......
1f730: 5f11b365 57941a19 1aacac94 1a1a1a1a e.._...W........
1f740: c11a1a1a c4411ac1 c916928a c9463838 ......A.....88F.
1f750: 1dc94619 8030c4de 6645e830 ac322e42 .F....0.0.EfB.2.
1f760: 350e17b1 49050535 496e3549 0e6e4949 ...55..II5nIIIn.
1f770: 4545e841 e8e84545 dc0edcdc c87913e8 A.EEEE........y.
1f780: 77c8c8c8 77677777 c874592b bb6fbed1 ...wwwgw+Yt...o.
1f790: 700c4f08 70cb0ccb e16f780c 2b1e2dd3 .O.p...p.xo..-.+
1f7a0: d1b3b3b3 d720d1d1 0d77c813 135e76c8 ...... ...w..v^.
1f7b0: e8d71313 79764079 79767979 13797676 ....y@vyyyvyvvy.
1f7c0: c5fb37af 40e23113 e2400d0d 7e404040 .7...1.@..@.@@@~
1f7d0: 94ac6072 a6a69494 6a6a2e2e 6a6a6a6a r`........jjjjjj
1f7e0: 6a6a6a6a 2e2e2e2e 538fc196 326a5146 jjjj.......SFQj2
1f7f0: acac9457 acacacac 6a1a1aac 20c3c142 W..........jB..
1f800: 6b9227c4 467474c9 191919c9 7cc41d5f .'.k.ttF...._..|
1f810: 13303030 6694e41a 0e1735a6 05050535 000....f.5..5...
1f820: 35354949 0e353535 45e8dc41 31313131 II55555.A..E1111
1f830: e8133131 3113e8e8 c82b7679 2b7477c8 11.....1yv+..wt+
1f840: 7459c8c8 b4eb7119 364fa954 6de96970 ..Yt.q..T.O6pi.m
1f850: a6ae0c36 770c2dae d1b3b32b d7201320 6....-.w+... . .
1f860: 77c813d7 13c8c8c8 e813e8d7 764076e8 ...w.........v@v
1f870: 76797979 33797979 13b137fb 4040e231 yyyvyyy3.7..1.@@
1f880: 400d0d40 404040e2 1a1aab40 94949494 @..@.@@@@.......
1f890: 949494a6 6a949494 946a6a6a 2e2e2e6a .......jjjj.j...
1f8a0: e4ac2e2e 94fefec3 6a6a9457 acacacac ........W.jj....
1f8b0: acacacac c1c11a6a 8d271d5a 74745f17 ....j...Z.'.._tt
1f8c0: 46c9c946 b95f7619 30b9b962 32fee45b F..F.v_.b..0[..2
1f8d0: 496e9494 0505350e 35494905 0e0e0e35 ..nI.5...II55...
1f8e0: dcdc410e 313145e8 31793131 13133131 .A...E1111y111..
1f8f0: 13133131 74c87979 54591238 10ead174 11..yy.t8.YTt...
1f900: a94fa9bb 0ccf7070 240c69e9 69e92feb ..O.pp...i.$./.i
1f910: b32bc81e 201313d1 7713c520 c82b7977 ..+.... ..wwy+.
1f920: d7c5d7b3 4076e8d7 76797976 b1136779 ......v@vyyvyg..
1f930: 13330f4c e2404079 7e0d40e2 4040e240 L.3.y@@..@.~@.@@
1f940: e6344040 94949460 94949494 94949494 @@4.`...........
1f950: 94949494 a6949494 a62e2e2e 6060ac6a ............j.``
1f960: acfe6060 6a6a6a6a 6a6a6a6a 426a6a6a ``..jjjjjjjjjjjB
1f970: b5e8fec1 745e1792 c9c94674 76761946 ......^ttF..F.vv
1f980: 7c7c7c80 ace4be06 17716a5a 05350e6e .|||....Zjq.n.5.
1f990: 49050505 0e0e0e35 0edc0e0e e8dc410e ...I5........A..
1f9a0: 76313145 79797979 dc133179 2b870edc E11vyyyyy1.....+
1f9b0: 5974c874 eb2c5954 3ba9cdb4 3670703b t.tYTY,....;;pp6
1f9c0: d3cb0ccf 6db4d210 c81e0ccf 13d1b32b .......m....+...
1f9d0: 13d72020 797977c8 c513792b 79e84141 ...wyy+y..AA.y
1f9e0: 79797640 37af1379 3113c5fb 40767679 @vyyy..7...1yvv@
1f9f0: 7e40e2e2 40e2407e 7e404040 942e600b ..@~~@.@@@@~.`..
1fa00: 94949494 94949494 94949494 94949494 ................
1fa10: a6a6a694 949494a6 2eacac6a 6a6a6a6a ........j...jjjj
1fa20: 6a6a6a6a 946a6a6a 5bc1c31a 7517926b jjjjjjj....[k..u
1fa30: c9467446 761919c9 41305e76 602ee87c FtF....vv^0A|..`
1fa40: b1ac2494 35353517 35050505 0e0e3505 .$...555...5.5..
1fa50: dc87870e 41410e0e e8e84141 76793131 ......AAAA..11yv
1fa60: 13767676 dcb56edc 74797779 a6bb5459 vvv..n..ywytYT..
1fa70: 3ba9386f 70703b3b 69cbcf36 2f6fa678 o8.;;;pp6..ix.o/
1fa80: e90c69e9 b32bc877 2020d1d1 7977c813 .i..w.+... ..wy
1fa90: 137979b3 d74141d7 31764031 4cfb3313 .yy..AA.1@v1.3.L
1faa0: 797913b1 40767979 40e24040 e2e2407e ..yyyyv@@@.@~@..
1fab0: 40404040 ac1aab40 94949494 94949494 @@@@@...........
1fac0: 94949494 94949494 94949494 94949494 ................
1fad0: 94949494 6a6a6a94 6a6a6a6a 6a6a6a6a .....jjjjjjjjjjj
1fae0: c1e46a94 17264166 46461980 c9c9c9c9 .j..fA&...FF....
1faf0: 5e5e7676 96c57c06 2e3266fe 0e0e178e vv^^.|...f2.....
1fb00: 35050535 0e353535 dcdc870e 0e0e0edc 5..5555.........
1fb10: 350e4141 dc9f0e35 76767913 6eb5e879 AA.55....yvvy..n
1fb20: c8777933 71385412 543b2feb 0c3b3bcd 3yw..T8q./;T.;;.
1fb30: 0070cb0c 51a6892d 0c690cd3 2bc81ee9 ..p.-..Q..i....+
1fb40: 13b3b32b 0d792020 7979b3c8 41d7e8b3 +... y...yy...A
1fb50: 67795e30 0f4cb133 76791333 76797979 0^yg3.L.3.yvyyyv
1fb60: e2404040 e2404040 4040e2e2 e634e240 @@@.@@@...@@@.4.
1fb70: 949494fe 94949494 57575757 94575757 ........WWWWWWW.
1fb80: 94949494 94949494 94949494 94949494 ................
1fb90: 94949494 6a6a6a6a fe576a6a 263396c1 ....jjjjjjW...3&
1fba0: c9c9f727 c9c9c946 31767676 7180e831 '...F...vvv11..q
1fbb0: 5732ace4 0e6e0ea6 0505350e 35353535 ..2W..n..5..5555
1fbc0: dcdc870e 0e0edcdc 6b5d4141 a2a2a26e ........AA]kn...
1fbd0: 13dc35a2 6b5d7979 742b7913 b4595438 .5..yy]k.y+t8TY.
1fbe0: 3bb3e3eb 3b3bcd54 48700c44 a60bec48 ...;T.;;D.pHH...
1fbf0: cf36ecae 771e0c69 2b2b2bc8 b32013b3 ..6.i..w.+++.. .
1fc00: 79790d0d e8137979 20c54130 af3737af ..yyyy..0A. .77.
1fc10: 76767913 79797676 40e24076 e21140e2 .yvvvvyyv@.@.@..
1fc20: 40e23131 40404040 9494600b 94949494 11.@@@@@.`......
1fc30: 57575757 57575757 94945757 94949494 WWWWWWWWWW......
1fc40: 94949494 94949494 94579494 94949494 ..........W.....
1fc50: 57949494 f1c3c3ac 5fb92727 c9c9c95f ...W....''.__...
1fc60: 317676c9 31e8e85e 2494e4a6 0e0e6f6a .vv1^..1...$jo..
1fc70: 35350e0e 35353535 dcdc0e0e 0edcdcdc ..555555........
1fc80: de0e410e d5a2496b a2d58585 5de8e835 .A..kI......5..]
1fc90: c8c82b79 bb597474 79f26510 08080854 y+..ttY..e.yT...
1fca0: 70706908 e12d7036 0cd3aea6 1e69cbcf .ipp6p-.......i.
1fcb0: c8c87777 13b3b3c8 c877c8b3 79797979 ww........w.yyyy
1fcc0: 8e25c513 20b14c93 76797967 79767676 ..%..L. gyyvvvvy
1fcd0: 40407679 e240e240 e23131e2 e2404040 yv@@@.@..11.@@@.
1fce0: ac1a64e2 57949457 57575757 57575757 .d..W..WWWWWWWWW
1fcf0: 57575757 94949494 94949494 57575757 WWWW........WWWW
1fd00: 57575757 57575757 94949457 c1e49457 WWWWWWWWW...W...
1fd10: b94b355a 5f5f7575 5e76c95f 31dc35dc Z5K.uu___.v^.5.1
1fd20: 5796965b 0e712e24 350e0e0e 35353535 [..W$.q....55555
1fd30: dc0e3535 dcdcdcdc 6b410e0e a2490e6b 55........Akk.I.
1fd40: 858585d5 dc35a2d5 c8767913 77c8c877 ......5..yv.w..w
1fd50: b371eb53 0808a946 36cb0808 2d707048 S.q.F......6Hpp-
1fd60: d872a651 69cb0c64 bb771ee9 b32bc8c8 Q.r.d..i..w...+.
1fd70: 77c879b3 7979c877 93c51379 13c585b6 .y.ww.yyy.......
1fd80: 79797979 76404076 40767979 e2404040 yyyyv@@vyyv@@@@.
1fd90: 3131e2e2 e2404040 e64031e2 575757fe ..11@@@..1@..WWW
1fda0: 57575757 575757e6 57575757 57575757 WWWW.WWWWWWWWWWW
1fdb0: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
1fdc0: 57575757 96575757 4b1bacc1 80b975b9 WWWWWWW....K.u..
1fdd0: 5e5f5e5e e87dd533 1ae47131 afac3232 ^^_^3.}.1q..22..
1fde0: 0e0e0e35 3535350e 0e353535 dcdcdcdc 5....555555.....
1fdf0: 414141dc 490e0e5d 8585d5a2 9f8e7dd5 .AAA]..I.....}..
1fe00: 5e13c5dc 7720c879 d1e365e5 54125976 ...^y. w.e..vY.T
1fe10: 693b0808 48480069 ae659069 69e9d1e5 ..;ii.HHi.e....i
1fe20: 1e1e0c69 c8c8bb77 c8c82b2b 2bc87777 i...w...++..ww.+
1fe30: 933320b3 13258521 79797979 40407679 . 3.!.%.yyyyyv@@
1fe40: 76797976 40404040 31e2e2e2 40404031 vyyv@@@@...11@@@
1fe50: e23131e2 5794fed8 57e65757 e6e6e6e6 .11....WWW.W....
1fe60: e6e6e6e6 57e6e6e6 57e6e6e6 57575757 .......W...WWWWW
1fe70: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
1fe80: b08fc31a 62757c4b 5e5e8062 dc923c13 ....K|ubb.^^.<..
1fe90: e4a631e8 a666242e 0e0e35c5 35350e0e .1...$f..5....55
1fea0: 35353535 dcdcdc0e 4141e8e8 0e0e4187 5555......AA.A..
1feb0: d5d5a249 dc25a2d5 9f9fdcd7 13c85e33 I.....%.....3^..
1fec0: b4eb6f64 795477b3 3b080819 690c6969 do...wTy...;ii.i
1fed0: fcf56948 0c440cae 0c0c6969 bb77771e Hi....D.ii...ww.
1fee0: c82bc8ab c8777777 4cafd1b3 41f32537 ..+.www....L7%.A
1fef0: 7679795e 40767676 79797676 40404076 ^yyvvvv@vvyyv@@@
1ff00: 4040e240 4040e2e2 3131e240 ac2ec831 @.@@..@@@.111...
1ff10: e6e657e6 e6e6e6e6 e6e6e6e6 e6e6e6e6 .W..............
1ff20: e6e6e6e6 e6e6e6e6 e6e6e6e6 575757e6 .............WWW
1ff30: 57575757 57575757 c1426ae6 753d4924 WWWWWWWW.jB.$I=u
1ff40: 5e7ce062 dc05dc31 fed13113 94249496 b.|^1....1....$.
1ff50: 0e35dc66 350e0e0e 35353535 dcdc0e35 f.5....555555...
1ff60: 41e8e8dc 41dcdcdc a2a2490e dc8ea2a2 ...A...A.I......
1ff70: 9fdc1313 c813c59f 53eb7120 3838b377 ........ q.Sw.88
1ff80: 0808c8b3 6944cb3b 4d693648 692d7152 ....;.DiH6iMRq-i
1ff90: 44e96969 771ee96d c8ab7777 c87777c8 ii.Dm..www...ww.
1ffa0: 4cb1d179 301320b1 7979e841 76767679 y..L. .0A.yyyvvv
1ffb0: 79767640 e2e27679 40404040 40e2e240 @vvyyv..@@@@@..@
1ffc0: 31e24040 e1403131 e6e657fe e6e6e6e6 @@.111@..W......
1ffd0: e6e6e6e6 3281e6e6 e6323232 e6e6e6e6 .......2222.....
1ffe0: e6e6e6e6 e6e6e6e6 e6e6e6e6 57575757 ............WWWW
1fff0: e457e657 3d3510c1 7f7f6280 3113e830 W.W...5=.b..0..1
20000: 53313131 2432fee4 0e877194 0e0e0e0e 111S..2$.q......
20010: 35353535 dc0e3535 e8e8e8dc e8e8dcdc 555555..........
20020: a2490e41 9f35a2a2 dc1313e8 13c59f9f A.I...5.........
20030: 10ebb1c8 547459bb 0838b377 6969a554 .....YtTw.8.T.ii
20040: 0ccb69cb ca66521b e9690c0c 6d6dbfbf .i...Rf...i...mm
20050: 7777bb77 c877c877 4cfb5b2b 767967af w.www.w.+[.L.gyv
20060: 31307ce8 76767979 76764076 40767979 .|01yyvvv@vvyyv@
20070: 4040e2e2 e2e24040 e24040e2 e23131e2 ..@@@@...@@..11.
20080: 322eac2b e6e6e6e6 e6e6e6e6 578181e6 +..2...........W
20090: e6575757 32323232 e6e6e632 e6e6e6e6 WWW.22222.......
200a0: e6e6e6e6 57e6e6e6 e6e65757 35acc196 .......WWW.....5
200b0: 7f62807f 31e86e6b e2313131 32ac6094 ..b.kn.1111..`.2
200c0: 0eb16a24 0e0e0e0e 3535350e 0e353535 $j.......555555.
200d0: 45e8dcdc e8dcdce8 490edce8 9f35a2a2 ...E.......I..5.
200e0: 131333dc 209f9fdc 6565d179 a554775b .3..... y.ee[wT.
200f0: 59797754 0054a508 cb36e90c a6711b43 TwyY..T...6.C.q.
20100: 690c0c78 44e5440c 77bb77e9 2b777777 x..i.D.D.w.wwww+
20110: 0fe32c64 c879d15b 41415e0d 76797913 d,..[.y..^AA.yyv
20120: 76407676 76797979 e2e2e240 40407e40 vv@vyyyv@...@~@@
20130: 404040e2 31314040 fee17e31 323232e6 .@@@@@111~...222
20140: 81323232 e6e68181 9778781c 81e6e68c 222......xx.....
20150: 81818181 81818181 81818181 e6e6e681 ................
20160: 575757e6 96c31ae6 7c807f9f 4517276b .WWW.......|k'.E
20170: 31313131 94fefeb3 c52e3224 0e870e0e 1111....$2......
20180: 350e0e0e 0e353535 e8dcdc0e e8dce845 ...5555.....E...
20190: 0edce845 0e7da249 1313e8dc c59fdc13 E...I.}.........
201a0: ebe3d1b3 5474772c 54547438 3ba53b54 ....,wtT8tTTT;.;
201b0: 69704870 ae0c2a6d 0c44e165 bfe969cb pHpim*..e.D..i..
201c0: bb1ee944 2b7777bb 53e3b103 797967d1 D....ww+...S.gyy
201d0: 30790dc8 76791341 40767676 79797676 ..y0A.yvvvv@vvyy
201e0: 76407679 7e7e40e2 40e2e240 e2404011 yv@v.@~~@..@.@@.
201f0: 64e23131 32322eac 81818132 e6818181 11.d..222.......
20200: a91f0091 9078543b 818181e6 81818181 ....;Tx.........
20210: 81818181 81818181 e6e6e681 c32ee6e6 ................
20220: 807fafe4 6e27177c 31313145 1ae4f1e2 ....|.'nE111....
20230: 94662466 870e0ee8 0e0e0e0e 35353535 f$f.........5555
20240: e8dc0e0e dce84545 dce845e8 35a2350e ....EE...E...5.5
20250: 1333e8dc 9f331313 3f3713c5 54597453 ..3...3...7?StYT
20260: 3820d174 543b5408 36000054 48cb6d44 t. 8.T;TT..6Dm.H
20270: 2fa6102d 0c69690c 1ee94444 64ab1e1e -../.ii.DD.....d
20280: 5be3fbd1 79797967 400dc879 791341e8 ...[gyyyy..@.A.y
20290: 76797676 79767676 40767979 7e40e276 vvyvvvvyyyv@v.@~
202a0: e2e2407e 40404040 31e231e2 e6fe2440 ~@..@@@@.1.1@$..
202b0: 81813232 81818181 367036ed a93bcd4f 22.......6p6O.;.
202c0: e681784f 81818181 81818181 81818181 Ox..............
202d0: e6818181 94e6e6e6 6bb14242 17b85d30 ........BB.k0]..
202e0: 3131805d 60667e31 942432ac 0e0ee871 ].111~f`.2$.q...
202f0: 0e0e8787 0e350e0e dc0e0e0e 454545e8 ......5......EEE
20300: 4545e8e8 35350edc 13dcdc35 33133113 ..EE..555....1.3
20310: 3ffbc59f 7459bb37 b3d12b77 3b543854 ...?7.Ytw+..T8T;
20320: 70703808 69367070 eb0b6936 69690cbe .8pppp6i6i....ii
20330: 0c0c6d0c 64441e1e d1fb37b0 792b2b2b .m....Dd.7..+++y
20340: 0dc82b79 13d75e0d 79767679 76767676 y+...^..yvvyvvvv
20350: 40767979 40e27640 e2e24040 404040e2 yyv@@v.@@@...@@@
20360: e2e2e240 ac03e231 81328194 81818181 @...1.....2.....
20370: 70362281 4f4f361f ec1f4f4f 81ed81ed ."6p.6OOOO......
20380: edededed 81818181 81818181 e6e6e681 ................
20390: 71c3e457 1717416e 31807f17 1a793131 W..qnA.....111y.
203a0: 24246afe 0edc2c94 41410e0e 0e0e0e0e .j$$.,....AA....
203b0: 410e0e0e 454545dc 4545e845 0e41e845 ...A.EEEE.EEE.A.
203c0: dc9f0e0e 13131313 3ffb9f33 38382be3 ........3..?.+88
203d0: 202b2b5b 54191212 7077083b 6dcb0070 [++ ...T;.wpp..m
203e0: 69cb360c cf723f24 690c0c69 d864e90c .6.i$?r.i..i..d.
203f0: 03b1e32c 2bc8c82b c82b7979 13790d0d ,...+..+yy+...y.
20400: 76767931 76767676 76767976 e2e24076 1yvvvvvvvyvvv@..
20410: e24040e2 40e23131 e2e24040 7e31e2e2 .@@.11.@@@....1~
20420: 81e61a8c 81818181 709081ed 361f7070 ...........ppp.6
20430: 36363636 81ed6970 edededed edededed 6666pi..........
20440: 818181ed e6818181 c36057e6 6e5d5d37 .........W`.7]]n
20450: 067f476e b4e23131 24661a60 87339432 nG..11..`.f$2.3.
20460: 41870e0e 0e0e0e41 0e0e0e0e e845e8dc ...AA.........E.
20470: 45e84545 41e84531 dc0e0e0e 131313dc EE.E1E.A........
20480: 3ffb3313 747403fc 2b77d1b3 74775474 .3.?..tt..w+tTwt
20490: 773b3b54 0c007070 3636366d 2e6f2d70 T;;wpp..m666p-o.
204a0: 690ccd78 d8d30c69 032ce30f c8c877c8 x..ii.....,..w..
204b0: 2b797979 0d0d0dc8 76797979 76767676 yyy+....yyyvvvvv
204c0: 79797676 31e27676 e2e23131 e2456e45 vvyyvv.111..EnE.
204d0: e24040e2 31e23131 946aabe2 eded81ed .@@.11.1..j.....
204e0: 7381eded 1f707070 1f1f1f1f ec007070 ...sppp.....pp..
204f0: ededed81 edededed edededed 81818181 ................
20500: 96e632e6 5d0e10c3 6e475d06 7e313106 .2.....].]Gn.11~
20510: 24ace4be e866328c 87410e0e 0e414187 ...$.2f...A..AA.
20520: 0e0e0e0e e8dcdc0e e8e845e8 e8453145 .........E..E1E.
20530: 0e0e0e41 1313dc5d 3fb11313 7477b065 A...]......?e.wt
20540: 2bd1f22b 38593877 cd543b12 70707038 +..+w8Y8.;T.8ppp
20550: 70704870 d3693670 6978a6a6 bfd30c69 pHppp6i...xii...
20560: 64d8e3fb c8c877c8 797979c8 0dc8c82b ...d.w...yyy+...
20570: 79760d0d 76767976 79767676 31317931 ..vyvyvvvvvy1y11
20580: 31313131 456b2745 e2e23131 31313131 1111E'kE11..1111
20590: 90343131 eded811a edededed 70007073 114.........sp.p
205a0: 701f7070 70707070 ed819100 edededed pp.ppppp........
205b0: edededed 8181eded e6e68181 87fcc360 ............`...
205c0: 475d3130 3131806e 6afeac76 be578c24 01]Gn.11v..j$.W.
205d0: 410e0e45 41418787 0e0e0e0e 410e0e0e E..A..AA.......A
205e0: 454545e8 31311345 5d0edce8 13135dde .EEEE.11...].]..
205f0: ebf27913 192b2cd2 d15b2b74 74d17777 .y...,+.t+[.ww.t
20600: 54545454 707054cd 70000070 44697070 TTTT.Tppp..pppiD
20610: a6a6d3e9 bfd36978 bfe566be 77771ebb ....xi...f....ww
20620: 79792bc8 0dc87979 760d0d0d 79797679 .+yyyy.....vyvyy
20630: 76404076 31313179 45453131 06271745 v@@vy11111EEE.'.
20640: 31313145 313131e2 e2e23131 ed6a5777 E111.11111..wWj.
20650: edededed 004822ed 70707070 70707070 ....."H.pppppppp
20660: 97707070 222222ed eded2222 81ededed ppp.."""""......
20670: 97e68181 a6c372e9 30314531 3180416e .....r..1E10nA.1
20680: 1a60d8e2 94242457 0e0ee853 41414141 ..`.W$$.S...AAAA
20690: 0e0e0e41 0e0e0e0e 1345e8dc 31134513 A.........E..E.1
206a0: 41e84531 13dcde6b ea337931 2bb30fd2 1E.Ak...1y3....+
206b0: b37477c8 2b77bb2b 54545474 704ecdcd .wt.+.w+tTTT..Np
206c0: 70697070 69487070 2d0ce92d aee12e5a ppipppHi-..-Z...
206d0: 78bf24be 1e1e1ebb 7979c877 c8797979 .$.x....w.yyyyy.
206e0: 0d0d0dc8 76767676 76407676 31317976 ....vvvvvv@vvy11
206f0: 87414531 87174145 31314545 31313131 1EA.EA..EE111111
20700: e2313131 1aae40e2 ededed32 cbededed 111..@..2.......
20710: 70707000 70707070 00707070 9090edec .pppppppppp.....
20720: 22222290 ededed22 ca8181ed 6059081f ."""".........Y`
20730: 3131402e 31068745 60be4031 24e1321a .@11E..11@.`.2.$
20740: 41875b94 8787410e 0e0e4187 0e0e410e .[.A.A...A...A..
20750: 1345dc0e 31131313 45453131 e85dde41 ..E....111EEA.].
20760: 52333113 b3330fd2 7477192b 382bbb38 .13R..3.+.wt8.+8
20770: 54543838 1e543bcd 0c007048 36366944 88TT.;T.Hp..Di66
20780: 69cbcf36 a6e1e9cf 44ae6feb 1e1ebbe9 6..i.....o.D....
20790: 2bc8771e 7979b379 0d0d0dc8 7679760d .w.+y.yy.....vyv
207a0: 40767676 13133176 6e17e813 450645e8 vvv@v1.....n.E.E
207b0: 3145e845 31e23131 e2e2e231 b330e2e2 E.E111.11.....0.
207c0: ededaced edededed 7070004a 70707070 ........J.pppppp
207d0: 70700000 22ff7070 90909090 22222290 ..pppp."....."""
207e0: 9181eded 5954a900 31402e96 31313131 ......TY..@11111
207f0: ac763131 e124acfe 87135732 87414141 11v...$.2W..AAA.
20800: 0e418787 4141410e 45e8410e 13131313 ..A..AAA.A.E....
20810: 31313131 dc0e4145 e33313dc 33330fd2 1111EA....3...33
20820: 772b2bb3 b3777777 541212bb 54cdcd54 .++wwww....TT..T
20830: 707048cd 0c446900 3636cb69 72446936 .Hpp.iD.i.666iDr
20840: a6106610 bf72f5be c8772bbb 7979792b .f....r..+w.+yyy
20850: 0d0dc8c8 13790d0d 20136713 afaf9f5b ......y..g. [...
20860: aa17dc9f 31454587 3106f631 e2e2e231 .....EE11..11...
20870: e2e231e2 e8e2e2e2 5757e5f3 22eded22 .1........WW".."
20880: 700063ed 00000000 00000000 07007000 .c.p.........p..
20890: 73737322 22909073 73ed2222 3ba97070 "ssss..""".spp.;
208a0: 40a69659 31313131 d8e24531 e1941afe Y..@11111E......
208b0: 45be32e1 41414141 41878787 41410e41 .2.EAAAA...AA.AA
208c0: e8dc4141 13131313 31313113 dce83131 AA.......11111..
208d0: 52c5e8dc 3313b1d2 2b2bb333 c8c87777 ...R...33.++ww..
208e0: 12e87974 cdcd5454 0069e9cd 36007070 ty..TT....i.pp.6
208f0: cb6d0cd3 aed36936 e5ae53a6 a6102472 ..m.6i...S..r$..
20900: 0fe3e310 afb1b1b1 5bf2f2af 0faff2f2 ...........[....
20910: 0f0f0f93 c5afb10f aa6ee833 3145450e ........3.n..EE1
20920: 3106f645 40403131 e2e2e240 e2e2e2e2 E..111@@@.......
20930: ae413031 ed2281ac 48902222 00000000 10A..."."".H....
20940: 00000000 00707070 73737315 90737373 ....ppp..ssssss.
20950: ed222290 1f7000ec 6660593b 31313140 .""...p.;Y`f@111
20960: 11454531 321afe24 535724e1 41418745 1EE.$..2.$WSE.AA
20970: 87878741 87414141 dc414141 134545e8 A...AAA.AAA..EE.
20980: 31131313 13313131 529fdce8 b3790fd2 ...1111....R..y.
20990: 2bb33333 2b7777c8 796bc82b cdcd5454 33.+.ww++.kyTT..
209a0: 36e94ecd 70707000 2d2d3600 aed3cb2d .N.6.ppp.6---...
209b0: e5ae24a6 44e9e9ab 715372bf cecee337 .$.....D.rSq7...
209c0: 37e3cece 0ffbfb37 9f8e930f 79796733 ...77.......3gyy
209d0: 27e87979 1313135d e2314531 40403131 yy.']...1E1.11@@
209e0: e2e24040 e2e2e2e2 5de24040 8c2e222c @@......@@.],"..
209f0: ed902222 000000ca 00000000 00000000 ""..............
20a00: 731c7000 73737373 ed907373 70700089 .p.sssssss....pp
20a10: e4123b1f 31314071 45313131 acfe6a40 .;..q@11111E@j..
20a20: 9424e124 4187455b 06874141 dc878787 $.$.[E.AAA......
20a30: dcdc87e8 4545e8dc 87454545 31313145 ......EEEEE.E111
20a40: 52c51331 79130fd2 b32020b3 7777bb2b 1..R...y. .+.ww
20a50: dcdcb3b3 cd544e12 cfe9cdcd 70707048 .....NT.....Hppp
20a60: cb007070 782d2d69 bf782466 6dd3bbe5 pp..i--xf$x....m
20a70: 1ee92de9 d12b1e1e d1202020 79797967 .-....+. .gyyy
20a80: e8c51379 40767679 e8797976 313113e8 y...yvv@vyy...11
20a90: 40403131 40e231e2 e2404040 e2e2e231 11@@.1.@@@@.1...
20aa0: 9fe240e2 e6bf854c 90909094 00707390 .@..L........sp.
...
20ab8: 63000000 73739773 73737373 7000eced ...cs.ssssss...p
20ac8: bb081f70 31e22c42 45313131 1a1ad131 p...B,.1111E1...
20ad8: 24e1e194 e8061357 87414187 e8870606 ...$W....AA.....
20ae8: dcdce8e8 4545dc41 5d454545 76314516 ....A.EEEEE].E1v
20af8: e3137676 79130fd2 1313b379 7777bb79 vv.....yy...y.ww
20b08: 7979b3bb 544e4e1e cd0ccdcd 48487069 ..yy.NNT....ipHH
20b18: 48707070 782d3648 d3786671 bb444444 pppHH6-xqfx.DDD.
20b28: 6d6d2d44 bb1ee9e9 79b379c8 0d0dc879 D-mm.....y.yy...
20b38: dc13760d 79793113 79797976 31313179 .v...1yyvyyyy111
20b48: 40403131 e2e24040 e2e2e240 40e23131 11@@@@..@...11.@
20b58: 3cdc31e2 870e354c 73e69478 fa907390 .1.<L5..x..s.s..
...
20b74: 97977307 73737397 70707390 081f7070 .s...sss.spppp..
20b84: 3167420b 31313131 fee1e245 e1dbe61a .Bg11111E.......
20b94: 06315a32 8787dce8 06060606 e8e8e8e8 2Z1.............
20ba4: e8dc4141 f6454545 7631f6de e3797676 AA..EEE...1vvvy.
20bb4: 7979b1eb b3b37979 7777c8b3 772b7777 ..yyyy....wwww+w
20bc4: 77384e1e cfcdcd54 48700c69 70707048 .N8wT...i.pHHppp
20bd4: d3cb692d d3aee3db 6444440c d36dd364 -i.......DDdd.m.
20be4: 77e9e96d b32b2b2b 0dc82b79 e8790dc8 m..w+++.y+....y.
20bf4: 79e8e8d7 76767676 79797979 40e27679 ...yvvvvyyyyyv.@
20c04: e2404040 314531e2 40e23131 953c3340 @@@..1E111.@@3<.
20c14: 0e87dc7d 6a897e45 737373ed 0000ec73 }...E~.j.ssss...
...
20c2c: ff974a00 73979797 00639073 1f707070 .J.....ss.c.ppp.
20c3c: 401a9408 31313131 94764531 e124ac1a ...@11111Ev...$.
20c4c: 31e157e1 87e8e806 e8e806dc e8e8e830 .W.1........0...
20c5c: 4141dce8 41e845e8 7945dede e3794076 ..AA.E.A..Eyv@y.
20c6c: 7679b1eb 792b2b76 7477c82b 77777777 ..yvv++y+.wtwwww
20c7c: 1ee93877 cfcfe964 700c0ccf 48704848 w8..d......pHHpH
20c8c: ec6d0c70 780b1089 bf446969 bb6d44bf p.m....xiiD..Dm.
20c9c: e9e96dab 2b2b64bb c82b7979 790dc8c8 .m...d++yy+....y
20cac: 138741e8 76767979 76767676 76767679 .A..yyvvvvvvyvvv
20cbc: 407e7e40 874531e2 e2e2e231 4c527d13 @~~@.1E.1....}RL
20ccc: 0e87139f 6811e213 73226aff 15737373 .......h.j"ssss.
...
20ce4: 97ec0000 9797ff1c 4a907373 70707000 ........ss.J.ppp
20cf4: 53e44e1f 313113e2 d1311331 8c6a1a6a .N.S..111.1.j.j.
20d04: b49424e1 e8e8e831 e80687dc e8e8e8e8 .$..1...........
20d14: dce84545 4545e8dc 3141de16 e3790d79 EE....EE..A1y.y.
20d24: 76762ceb 7777c8c8 74777777 77777774 .,vv..wwwwwttwww
20d34: e91ebb74 cf0c64e9 690ccfcf 48483648 t....d.....iH6HH
20d44: 0c364848 782424ca d369692d 44e9d3bf HH6..$$x-ii....D
20d54: e91e64d1 2b2b77e9 2b2bb32b 0d0dc8c8 .d...w+++.++....
20d64: 13414131 76767979 76764076 79797676 1AA.yyvvv@vvvvyy
20d74: 7e7e4079 4545e240 1331e231 3595527d y@~~@.EE1.1.}R.5
20d84: 8745e213 4040e231 94736811 97739773 ..E.1.@@.hs.s.s.
20d94: 00001597 00000000 ec000000 971c1c97 ................
20da4: 73739797 707000cb e4e17070 31313176 ..ss..pppp..v111
20db4: e2453131 e6ac1af5 9424e1db e8453ed1 11E.......$..>E.
20dc4: e887dce8 06e845e8 4545e8e8 45e8dce8 .....E....EE...E
20dd4: 13f6de87 37797679 0d0db0fc 7774740d ....yvy7.....ttw
20de4: 74777777 77777474 bbbb77bb 69e90c38 wwwtttww.w..8..i
20df4: 0ccfcfcf 483648cf cbcb48cb 89579169 .....H6H.H..i.W.
20e04: 69690c2d e944bf44 1ebb6444 771e1e1e -.iiD.D.Dd.....w
20e14: 79792b77 0dc8c82b 4141e876 76797913 w+yy+...v.AA.yyv
20e24: 76404040 79797676 40763131 e2e24040 @@@vvvyy11v@@@..
20e34: 7d333140 13a09552 31e23131 404040e2 @13}R...11.1.@@@
20e44: 12114011 ff735722 4a979797 00000000 .@.."Ws....J....
20e54: 00000000 1c1c97ec 739797ff 70704897 ...........s.Hpp
20e64: 60cf7070 31134066 45313131 acace640 pp.`f@.1111E@...
20e74: 32e1db24 4545e2e6 87dce8e8 4545e806 $..2..EE......EE
20e84: 45e8e8e8 e8e8e845 13e80645 e3677631 ...EE...E...1vg.
20e94: 7774b0fc 74747477 77777777 38747474 ..twwtttwwwwttt8
20ea4: bb772b77 cde9bbab cfcfcf69 366969cf w+w.....i....ii6
20eb4: 6d69cbcb e61c6969 6969ec91 d1e5780c ..imii....ii.x..
20ec4: 1e6d6dab 1e1e6464 792b771e c8c82b2b .mm.dd...w+y++..
20ed4: 5d30790d 76791341 40404076 79767676 .y0]A.yvv@@@vvvy
20ee4: 79313179 31404040 523c9f13 e2319f4c y11y@@@1..<RL.1.
20ef4: 40313131 e2404040 40401131 57221211 111@@@@.1.@@.."W
20f04: 1cff1c73 00156397 70000000 1c1c4a00 s....c.....p.J..
20f14: 97ff1c1c 70489773 90007070 31312b42 ....s.Hppp..B+11
20f24: 31313131 ac6ab331 e1dbe16a 45112457 11111.j.j...W$.E
20f34: dce84545 45e80687 e8e84545 e8e81345 EE.....EEE..E...
20f44: 313113e8 e367765e c80d5bfc 770dc8c8 ..11^vg..[.....w
20f54: 77777777 77747777 bb2b7777 1ebb6477 wwwwwwtwww+.wd..
20f64: cfcfcd0c cb69cfcf 43ec6948 97eccb2a ......i.Hi.C*...
20f74: 69d378ed e5bf6969 e9bbc55b 1e64d1bb .x.iii..[.....d.
20f84: 2b771ee9 c8797979 415ec80d 761341f3 ..w+yyy...^A.A.v
20f94: 40404076 79764040 79793131 c5794040 v@@@@@vy11yy@@y.
20fa4: 7d95957d 404079dc 313131e2 e2404040 }..}.y@@.111@@@.
20fb4: 40114545 12114040 1c975773 1c1c1c1c EE.@@@..sW......
20fc4: 0048ec91 1c910000 1c1c1c89 701c971c ..H............p
20fd4: 91007070 317e5a42 31313131 1af5e231 pp..BZ~111111...
20fe4: dbdb57ac e2f1948c e8454531 e88741e8 .W......1EE..A..
20ff4: 45453145 133145e8 31311313 e3207631 E1EE.E1...111v .
21004: c846b0fc c8c8c8c8 77c8c8c8 38777777 ..F........wwww8
21014: 77bb2b77 bbbb7477 cf69e913 d3694fcf w+.wwt....i..Oi.
21024: 430c0c48 eccb694d 0c2d9097 d32d780c H..CMi....-..x-.
21034: 2025d8e5 abd1bb1e 77e94ee9 79797979 ..% .....N.wyyyy
21044: 5e760dc8 1341f37c 40407676 76404040 ..v^|.A.vv@@@@@v
21054: 79767979 950f3313 878e4c52 407e7e45 yyvy.3..RL..E~~@
21064: 31e24040 407e40e2 404031e2 40404040 @@.1.@~@.1@@@@@@
21074: e6ff12e2 891c1c73 631c1c89 89074afa ....s......c.J..
21084: 1c898989 1c971c1c 07700070 31741a1a ........p.p...t1
21094: 31313131 66403131 db24acac d16a24db 111111@f..$..$j.
210a4: 45313131 e8d7e8e8 314545e8 3145e831 111E.....EE11.E1
210b4: 795e5e5e fc5b7676 7446d852 c8c84674 ^^^yvv[.R.FttF..
210c4: c8c8c8c8 77777777 772bbb74 77747777 ....wwwwt.+wwwtw
210d4: cf1edcdc 694fcfcf 2d690cd3 cbcb2d4d ......Oi..i-M-..
210e4: d3e197ec bfae0c69 af2f642d bb1e6425 ....i...-d/.%d..
210f4: 1ee9e91e 13797977 760d7913 7cf37c5e ....wyy..y.v^|.|
21104: 40767913 400d0d0d 5b137640 ce6c520f .yv@...@@v.[.Rl.
21114: 871333b1 7e7ee287 76404040 7e4040e2 .3....~~@@@v.@@~
21124: 7e404040 40404040 68e24040 89738191 @@@~@@@@@@.h..s.
21134: 63891c1c 63636363 1c898963 1c1c1c1c ...cccccc.......
21144: 89cbcb97 117860e6 31313131 b3313131 .....`x.1111111.
21154: 8c6a6a6a 9432dbdb 31313179 d7e8e845 jjj...2.y111E...
21164: 454545e8 5e313131 5e5e5e31 655b7679 .EEE111^1^^^yv[e
21174: 46c820e3 77747474 77c8c8c8 bb747477 . .Ftttw...wwtt.
21184: bb7774bb 74771e77 64bb0e79 36cfcf0c .tw.w.wty..d...6
21194: 36486969 48cbd32a 241c6948 786d6978 iiH6*..HHi.$ximx
211a4: e5bf0cd3 6dd8255b e90ce9e9 dc79771e ....[%.m.....wy.
211b4: 0d79e85d 3d415ec8 4076e85d 400d0d40 ].y..^A=].v@@..@
211c4: 52fbf279 5b935265 e8407e79 40403187 y..ReR.[y~@..1@@
211d4: 4040407e 7e404040 40407e7e 4040407e ~@@@@@@~~~@@~@@@
211e4: 40404040 73d33411 07fa6373 2d2dcaca @@@@.4.ssc....--
211f4: ca2d2d2d 6363faca 739773ff 3497fe22 ---...cc.s.s"..4
21204: 31313131 e2313131 946aacb4 57dbdbdb 1111111...j....W
21214: 313111e6 e8453131 45e8e8e8 31313145 ..1111E....EE111
21224: 5e313131 65f27979 7676b337 747474c8 111^yy.e7.vv.ttt
21234: 74747474 38383838 7438bbbb c8c87477 tttt8888..8twt..
21244: 0c1e2b77 cfcfbb44 480c0c36 48cb0c69 w+..D...6..Hi..H
21254: 89cb4848 0c6991e6 440c6978 c55b5be5 HH....i.xi.D.[[.
21264: e90c0cbb 33ab1ee9 7979416b 7ce87679 .......3kAyyyv.|
21274: 79e8f33d af337979 ce52cefb 76315b0f =..yyy3...R..[1v
21284: e27e7e40 4040e213 407e7e40 40404040 @~~...@@@~~@@@@@
21294: 407e7e7e 7e7e7e7e 40404040 597e11e2 ~~~@~~~~@@@@..~Y
212a4: 7438d369 68684646 02020202 744646dd i.8tFFhh.....FFt
212b4: fffacae9 68901a22 3131e2e2 45313131 ...."..h..11111E
212c4: acac5a40 e1dbf132 3111e194 45313131 @Z..2......1111E
212d4: e8e8e8e8 3131315e 5e313131 65b179b3 ....^111111^.y.e
212e4: c8c87671 7446c8c8 38747474 77773838 qv....Ftttt888ww
212f4: 38777738 87c8771e 0ce91e2b 0c44690c 8ww8.w..+....iD.
21304: 2d69cbcb 6948480c 70704848 ae5a5aca ..i-.HHiHHpp.ZZ.
21314: 0c69780c 5b5be544 1e6dd1c5 1377771e .xi.D.[[..m..ww.
21324: 79135d6b 41e83179 93287f3d e3e3fb0f k].yy1.A=.(.....
21334: 13f2fbe3 40407679 347e4076 7e40407e ....yv@@v@~4~@@~
21344: 7e7e7e7e 407e4040 7e7e7e40 7e7e7e40 ~~~~@@~@@~~~@~~~
21354: 40407e7e 12120de2 1246dd46 cfcdcd54 ~~@@....F.F.T...
21364: 4f4fcfcf 5954cd4f c95fdd46 341c8938 ..OOO.TYF._.8..4
21374: 31e240e2 31313131 6a6a7631 dbf1246a .@.111111vjjj$..
21384: e2b46a8c 31313131 e8e8e8e8 3131315e .j..1111....^111
21394: 79313131 65fb1379 c8c8c82c 46c8c8c8 111yy..e,......F
213a4: 74774646 77383874 381e381e 0e771e38 FFwtt88w.8.88.w.
213b4: 0ce91e0e 6969690c cbcbcb69 480c69bb .....iiii....i.H
213c4: 70700ccb edca6970 69ca9065 d1d1440c ..pppi..e..i.D..
213d4: bbc525d8 13b32bbb 67131616 28252067 .%...+.....gg %(
213e4: f0f0b6ad af7d4c21 0d0d79d1 7979760d ....!L}..y...vyy
213f4: 0d407676 40400d34 7e7e7e7e 4040407e vv@.4.@@~~~~~@@@
21404: 7e404040 7e7e7e7e 407e7e7e dd7468e2 @@@~~~~~~~~@.ht.
21414: cf4e74dd cfcfcfcf 3636cfcf a9a9a936 .tN.......666...
21424: 544fa9a9 745fc974 e2e23412 31313131 ..OTt._t.4..1111
21434: acd8e231 f1db946a b39424db 31313131 1...j....$..1111
21444: e8e83131 31315ee8 79313131 fc371376 11...^11111yv.7.
21454: c8c876f2 77c8c8c8 77467774 38383874 .v.....wtwFwt888
21464: 38383838 13383838 e96d2bb5 69690c0c 8888888..+m...ii
21474: cbcbcbcf 69cb44cb 701ebbe9 36697070 .....D.i...pppi6
21484: 5a5af16d b0a02ce1 28c7b4e5 5bb4e55b m.ZZ.,.....([..[
21494: 8e8e6b6e 214c4c93 28adb6b6 1341f37f nk...LL!...(..A.
214a4: 0d0d0d40 76760d0d 40767679 400d340d @.....vvyvv@.4.@
214b4: 7e7e7e40 4040407e 40404040 7e7e4040 @~~~~@@@@@@@@@~~
214c4: 7e7e7e7e 744e117e 5454cd12 cfcfcdcd ~~~~~.Nt..TT....
214d4: 4f4f4fcf a9a9a91f 3b3ba9a9 12543b3b .OOO......;;;;T.
214e4: 34195e76 3131e2e2 5a403131 f1e66a6a v^.4..1111@Zjj..
214f4: 6632dbdb 5f313176 5e313131 31315ee8 ..2fv11_111^.^11
21504: 76765f31 10e32076 c8c8765b 77c8c8c8 1_vvv ..[v.....w
21514: 74747474 12387474 4e38384e 7738384e tttttt8.N88NN88w
21524: 441e336e 440c0ce9 cbcbcbe9 48e936cb n3.D...D.....6.H
21534: 44e96948 36707070 cbd3d348 4c3c5378 Hi.Dppp6H...xS<L
21544: f0e3be71 713721f0 8e8e6e8e c7930f0f q....!7q.n......
21554: 7c7c4125 41f3f37c 0d0d7613 400d0d0d %A|||..A.v.....@
21564: 76767976 0d347e40 7e7e4040 407e7e7e vyvv@~4.@@~~~~~@
21574: 40404040 40404040 7e7e7e7e 40407e7e @@@@@@@@~~~~~~@@
21584: 54cdcf4f cdcdcd4e 4f4fcfcf a9a9a9a9 O..TN.....OO....
21594: 08a9a9a9 54543b08 5e461259 31317e76 .....;TTY.F^v~11
215a4: 76313131 246a6a6a 94dbdbf1 5f311124 111vjjj$....$.1_
215b4: 31315f5f 5e5e135e 76765f31 37105b76 __11^.^^1_vvv[.7
215c4: c82b76d1 c8c8c8c8 38747477 38387438 .v+.....wtt88t88
215d4: 54545412 38384e54 bbe9132b d30c0c6d .TTTTN88+...m...
215e4: cbcf6d44 0c36cbcb cb697070 70704838 Dm....6.ppi.8Hpp
215f4: 36367070 03abcb48 5bbfaebf afafaf8e pp66H......[....
21604: ab2b2bd1 41d720b3 5e315ed7 f37c41e8 .++.. .A.^1^.A|.
21614: 4031d741 0d0d0d0d 76767640 340d4076 A.1@....@vvvv@.4
21624: 7e404034 7e7e4040 40404040 e2404040 4@@~@@~~@@@@@@@.
21634: 7e7e7e40 407e7e7e cd4f0d40 cd541254 @~~~~~~@@.O.T.T.
21644: 4fcfcfcd a9a9a9a9 a9a9a9a9 543b0808 ...O..........;T
21654: 74685954 314074c9 e2313131 6a94acd8 TYht.t@1111....j
21664: e1dbf1db 3111b46a 5f5f5f5f 5e135e31 ....j..1____1^.^
21674: 76767631 0ffcaf76 c8767679 19c8c8c8 1vvvv...yvv.....
21684: 74747477 38747474 54545412 38545454 wtttttt8.TTTTTT8
21694: 0ce91e1e 69690c6d cb690c0c 36cbcbcb ....m.ii..i....6
216a4: 4870700c 00cbe9cb 69697070 2d0c6948 .ppH....ppiiHi.-
216b4: 1ebf6d2d bb1e64b3 77c86464 205ec877 -m...d..dd.ww.^
216c4: 0dc8b313 d731760d e8417c7c 0d0d4076 .....v1.||A.v@..
216d4: 7640400d 0d407676 40403434 7e404040 .@@vvv@.44@@@@@~
216e4: 7e40407e 407e7e7e 7e404040 7e7e7e7e ~@@~~~~@@@@~~~~~
216f4: 34117e40 1e4e4ecf cfcdcd4e a9a9a94f @~.4.NN.N...O...
21704: a9a9a9a9 080808a9 68595454 e26838dd ........TTYh.8h.
21714: 313131e2 6a6ae140 dbf1f157 5fb36a24 .111@.jjW...$j._
21724: 5f5f5f31 5e5e315f 7676315e b1fcb176 1____1^^^1vvv...
21734: 76797679 464619c8 38747474 38747438 yvyv..FFttt88tt8
21744: 54545412 54545454 0c0ce94e 6969690c .TTTTTTTN....iii
21754: cf0c6969 cbcbcbcb 70704436 360c7070 ii......6Dpppp.6
21764: 2d707000 0cd3cb0c 780ccb69 6d6dd1bb .pp-....i..x..mm
21774: c8771e44 2bc8c8c8 7477c82b 760d3468 D.w....++.wth4.v
21784: 417c4131 0d7631d7 400d0d0d 40404040 1A|A.1v....@@@@@
21794: 4034340d 40407e40 40407e7e 7e7e7e7e .44@@~@@~~@@~~~~
217a4: 40404040 7e7e7e7e e240407e 674e0d31 @@@@~~~~~@@.1.Ng
217b4: cdcd3867 a9a94fcf a9a9a9a9 0808a9a9 g8...O..........
217c4: 68545408 e2685446 313131e2 94944031 .TThFTh..1111@..
217d4: f1f1246a 769432db 5f5f5f5f 5e315f5f j$...2.v______1^
217e4: 765e5e5e 5b10fb5e 795e7976 7446c879 ^^^v^..[vy^yy.Ft
217f4: 74747474 38381238 54545412 5454cd54 tttt8.88.TTTT.TT
21804: 0c0c4e4e 690c6969 440c6969 cbcb360c NN..ii.iii.D.6..
21814: 00bbcbcb 0c000000 70707036 d3cb0c2d ........6ppp-...
21824: 0c69692d 4441bb0c 1e1e6de9 77c82b1e -ii...AD.m...+.w
21834: 12772bc8 34681212 41e8760d 31e84141 .+w...h4.v.AAA.1
21844: 0d0d0d76 40404040 34343440 7e7e7e7e v...@@@@@444~~~~
21854: 7e7e7e7e 7e7e7e7e 40407e7e 7e347e7e ~~~~~~~~~~@@~~4~
21864: 31407e34 dc314545 544e2b17 a94fcdcd 4~@1EE1..+NT..O.
21874: a9a9a9a9 08a9a9a9 b2540808 e23454b2 ..........T..T4.
21884: 31e2e2e2 6ad1e231 f1db6a57 5a32dbf1 ...11..jWj....2Z
21894: 5f5f5fdd 5f5f5f5f 5f5e5e31 20e3e313 ._______1^^_...
218a4: 79797676 c8c87679 74747446 12123838 vvyyyv..Fttt88..
218b4: 12545459 cdcdcd54 0c4e54cd 0ce96969 YTT.T....TN.ii..
218c4: cb696969 cbcbcbcb 446936cb 00000070 iii......6iDp...
218d4: 4870360c 360c2d70 6969e96d f3200c69 .6pHp-.6m.iii. .
218e4: e90ce9d1 64bb1e1e c8b3771e 12121212 .......d.w......
218f4: 310d0d34 d7414141 0d407913 400d0d0d 4..1AAA..y@....@
21904: 34340d40 347e7e34 34347e34 407e7e7e @.444~~44~44~~~@
21914: 34347e7e 3434347e e27e347e 87e84145 ~~44~444~4~.EA..
21924: 12e933b5 4fcdcd54 a9a9a9a9 a9a9a9a9 .3..T..O........
21934: 23540808 11111254 e2e21111 e1403131 ..T#T.......11@.
21944: f157946a 94dbdbf1 5f317ef5 5f5f5f5f j.W......~1_____
21954: 315e315f 5e37fcc5 76767676 19c87676 _1^1..7^vvvvvv..
21964: 747477c8 59383838 38545959 cdcdcd54 .wtt888YYYT8T...
21974: cd54cdcd 0c696969 69696969 690c6969 ..T.iii.iiiiii.i
21984: 0c48cbcb 00704844 48360c00 cbcb4848 ..H.DHp...6HHH..
21994: 696dd3cb 44693669 e964c520 1ee91ee9 ..mii6iD .d.....
219a4: 2babab2b 121274b3 0d776812 4141e879 +..+.t...hw.y.AA
219b4: 7631e8d7 0d0d0d40 340d400d 0d0d3434 ..1v@....@.444..
219c4: 34343434 7e0d7e34 347e407e 34343434 44444~.~~@~44444
219d4: 407e7e34 0e5d06e2 4ee25db5 cdcd5454 4~~@..]..].NTT..
219e4: a9a94f4f a9a9a9a9 a5a50808 11e2676d OO..........mg..
219f4: 11111111 4031e2e2 246a5757 dbdbf10b ......1@WWj$....
21a04: 5f11d86a 765f5f5f 315f5f76 790feab1 j..____vv__1...y
21a14: 76767676 19c81976 74747419 59123838 vvvvv....ttt88.Y
21a24: 54545959 cdcdcd54 cdcdcdcd cf6969cd YYTTT........ii.
21a34: 696969cf 0c696969 48cb3669 4870440c .iiiiii.i6.H.DpH
21a44: 48cb7070 48cbcb48 4444cb70 6d36690c pp.HH..Hp.DD.i6m
21a54: d7d16d2d e91e6dbb 2bdc671e 1277c8bb -m...m...g.+..w.
21a64: 74121212 e879760d 13e8d7d7 40404079 ...t.vy.....y@@@
21a74: 7e407e7e 407e3434 3434347e 407e7e34 ~~@~44~@~4444~~@
21a84: 1268347e 347e3468 407e3434 5d41e831 ~4h.h4~444~@1.A]
21a94: e2316bb5 cd54cd34 4f4f4fcd a9a9a9a9 .k1.4.T..OOO....
21aa4: 080808a9 13051843 11111111 e2e21111 ....C...........
21ab4: 94e66a64 dbf10bdb 5f19948c 765f5f5f dj.........____v
21ac4: 31767676 76af65fb 76767676 1919c876 vvv1.e.vvvvvv...
21ad4: 74741919 12383838 54545454 cdcdcdcd ..tt888.TTTT....
21ae4: cdcdcdcd 0c0c0ccd 690c69cb 69cbcbcf .........i.i...i
21af4: cbcb0c0c 00d30c48 48484870 cb6d69cb ....H...pHHH.im.
21b04: 6dcb4848 cbcb690c 4469d36d 1e1ed120 HH.m.i..m.iD ...
21b14: 336e2be9 1e777777 12121212 0d0d0d68 .+n3www.....h...
21b24: e8e81379 0d7931e8 12541268 54545459 y....1y.h.T.YTTT
21b34: 7e343468 4040347e dd466812 68546846 h44~~4@@.hF.FhTh
21b44: 4034347e 5df34131 e2e86b6b cdcd4040 ~44@1A.]kk..@@..
21b54: 4f4fcdcd a9a94f3b 08080808 9a187a6d ..OO;O......mz..
21b64: 111131a0 e2111111 e66af57e f10b0b57 .1......~.j.W...
21b74: 346624db 5f5f5f5f 5e407676 7633fce3 .$f4____vv@^..3v
21b84: 76767676 c80dc876 7419c876 12383838 vvvvv...v..t888.
21b94: cd545454 cd3b3b3b cdcdcdcd e90ccdcd TTT.;;;.........
21ba4: cbcbcb0c 0c69cbcb 36692d2d 2d0c4836 ......i.--i66H.-
21bb4: 48487070 2ab02dcb 703636cb 36363648 ppHH.-.*.66pH666
21bc4: 690c0c69 bbd1ab0c 33dc1ee9 1e771e77 i..i.......3w.w.
21bd4: 124e4e12 0d341212 13790d0d 68c813e8 .NN...4...y....h
21be4: a1a1dd46 a1d9d9d9 6802dda1 407e6812 F..........h.h~@
21bf4: 75a15959 d95858df 7e7e1259 f3f306e2 YY.u.XX.Y.~~....
21c04: 31e85d5d 547e4040 4fcdcdcd 4f3b3b4f ]].1@@~T...OO;;O
21c14: 3b08a53b 7ad43b54 e2dc9a18 11111111 ;..;T;.z........
21c24: 94e67ee2 72723257 e1e60bf1 765f5fa4 .~..W2rr.....__v
21c34: 20407676 7613e310 0d0d7676 0d0d7676 vv@ ...vvv..vv..
21c44: 77c87676 12121274 cd545454 4f4f3bcd vv.wt...TTT..;OO
21c54: cdcdcd3b e9cdcd0c cfcb2d6d cbcb6969 ;.......m-..ii..
21c64: 6969cbcb 69483636 48484869 011b6936 ..ii66HiiHHH6i..
21c74: 3636cb2d 36487048 0c69cb36 646d0c0c -.66HpH66.i...md
21c84: 2b774e77 1e1e1eab 4e4e121e 68121212 wNw+......NN...h
21c94: 400d0d0d a168120d df5858df dfdfdfdf ...@..h..XX.....
21ca4: 58585858 5902d958 2323a5a9 df75a1a4 XXXXX..Y..##..u.
21cb4: 6868d9df f3f34511 3131e841 12407e40 ..hh.E..A.11@~@.
21cc4: cdcd5459 3b543b4f 54a53b3b 43a5543b YT..O;T;;;.T;T.C
21cd4: 619a187a 1111e231 6a2b1111 72db5732 z..a1.....+j2W.r
21ce4: 940bf172 765fddd8 af407676 76760f65 r....._vvv@.e.vv
21cf4: 0d767676 0d464646 46c8760d 59123874 vvv.FFF..v.Ft8.Y
21d04: 54545454 4f4f3bcd cd4f4f4f cdcd0ccd TTTT.;OOOOO.....
21d14: cf6d0c0c cbcb0c0c 696969cb 483636cb ..m......iii.66H
21d24: 48486936 8a43cb48 36cb6943 69707048 6iHHH.C.Ci.6Hppi
21d34: d3690c0c e90c44d3 4e4e77bb 1e1e2b1e ..i..D...wNN.+..
21d44: 12121e1e 12124e4e 0d343474 f7a15412 ....NN..t44..T..
21d54: dfdff7da d9757575 a1a1a1d9 58dfd90a ....uuu........X
21d64: a90802d9 a102b723 a1d9dfdf 6e413159 ....#.......Y1An
21d74: 40e23141 68407e40 cd546859 54544fcd A1.@@~@hYhT..OTT
21d84: 54cdcdcd 59cdcd54 187ad459 11e2dc01 ...TT..YY.z.....
21d94: 727e1111 7257326a dbf1722f 7611c86a ..~rj2Wr/r..j..v
21da4: 0f764076 7640f265 76767676 4646460d v@v.e.@vvvvv.FFF
21db4: 0d190d46 12387474 54545454 4f4fcdcd F...tt8.TTTT..OO
21dc4: cf4f4fa9 cd0ccdcd 69cbcfcd cbcb69cb .OO........i.i..
21dd4: cbcb6969 48483669 48cbcb48 050ccb48 ii..i6HHH..HH...
21de4: cbcb6961 cb704848 0c0ce9d3 0c446dd3 ai..HHp......mD.
21df4: 4e771ee9 1e64bb0c 381e1e1e 12544e12 ..wN..d....8.NT.
21e04: 0d777774 dadf744e 5f7575df a1a1a1a1 tww.Nt...uu_....
21e14: 0202a4a1 29a40202 df58d9a1 b2a5a9b2 .......)..X.....
21e24: d9dfa102 3d13b2a1 4040310e 0d407e7e .......=.1@@~~@.
21e34: 54590254 59a9cdcd cdcd5459 cd545954 T.YT...YYT..TYT.
21e44: a877b254 e21b8218 02111111 323294ed T.w...........22
21e54: 0b722fe5 11469424 e35edd40 76dd1310 ./r.$.F.@.^....v
21e64: 76767640 46464676 0d464646 12387446 @vvvvFFFFFF.Ft8.
21e74: 54545454 4fcdcdcd 4f4fa9a9 cfcdcdcf TTTT...O..OO....
21e84: cbcfcfcf 6969cb36 cbcbcbcb cb696969 ....6.ii....iii.
21e94: 48cb4848 43cb4848 cbcb6da0 70484836 HH.HHH.C.m..6HHp
21ea4: e9e9d369 446d0c69 77e90c0c ab2b4e4e i...i.mD...wNN+.
21eb4: 77771e1e 54121e1e c8771212 d9da46cd ..ww...T..w..F..
21ec4: 59b246dd a5a5a559 a5a5a5a5 23a5a5a5 .F.YY..........#
21ed4: a1a4b723 a5a1dfd9 a1a4b208 79b2a1d9 #..............y
21ee4: 7e40455d 0d403434 54b20254 a94fcd54 ]E@~44@.T..TT.O.
21ef4: cd5459b2 54595454 025954cd 1b82a8e5 .YT.TTYT.TY.....
21f04: 1111e231 32325777 0b2fe5db a45a320b 1...wW22../..2Z.
21f14: 655b4040 40dd7637 7676760d 46460d76 @@[e7v.@.vvvv.FF
21f24: 74747474 38747474 54545459 4fcdcdcd ttttttt8YTTT...O
21f34: 4f1fa94f 4fcfcf4f cbcb4f4f 69cbcb36 O..OO..OOO..6..i
21f44: cbcbcbcb 0c0c0c69 48367036 69484870 ....i...6p6HpHHi
21f54: cb366d43 70484848 1e697070 e90c69e9 Cm6.HHHpppi..i..
21f64: e90c0ce9 2b1e4e77 ab7777bb 121e1e77 ....wN.+.ww.w...
21f74: 7712124e ddf7464e 545959b2 a9a90808 N..wNF...YYT....
21f84: a9a9a9a9 a50808a9 23a5a5a5 d92902b7 ...........#..).
21f94: 23a546df 02a1d929 7e403112 68407e34 .F.#)....1@~4~@h
21fa4: 2302dd3b 1fcd5454 5459b254 59545454 ;..#TT..T.YTTTTY
21fb4: 59545459 824dddb2 e2e2311b ed6aae7e YTTY..M..1..~.j.
21fc4: 2fe57232 b494720b 650f7602 dddd40af 2r./.r...v.e.@..
21fd4: 0dc9c946 b2684646 687474b2 12126868 F...FFh..tthhh..
21fe4: 54545412 cfcdcdcd 1f1fa94f cfcf4f4f .TTT....O...OO..
21ff4: 36cbcf1f 69cb3636 696969cb 696969cb ...666.i.iii.iii
22004: 48484836 70004848 4848cb36 70484848 6HHHHH.p6.HHHHHp
22014: cf707070 e90c0c44 0ccd0cd3 1e387738 ppp.D.......8w8.
22024: 771e1e77 77777764 744e1212 4675121e w..wdwww..Nt..uF
22034: a9085459 59a508a9 020202b2 08a559b2 YT.....Y.....Y..
22044: 08a9a9a9 23a5a5a5 d9d929b7 a10259b2 .......#.)...Y..
22054: 7e68b2a4 4f683434 2302a13b 3b5454a5 ..h~44hO;..#.TT;
22064: 59b2b21f 54545454 5454b259 a102b754 ...YTTTTY.TTT...
22074: 11316143 572268e2 e5e58ced 94727272 Ca1..h"W....rrr.
22084: fcea25d1 dd407e13 464646dd 80d7e876 .%...~@..FFFv...
22094: b2685f5e 59595968 54545459 cfcdcdcd ^_h.hYYYYTTT....
220a4: 1fa94f4f cf4f1f1f cbcf1fcf 36363636 OO....O.....6666
220b4: 6969cb36 3636cbcb 48484848 00484848 6.ii..66HHHHHHH.
220c4: 48707000 70704848 1f1f7070 0ccf0c36 .ppHHHpppp..6...
220d4: cde9bf6d 381e4e0c 1e4e4e4e ab772b2b m....N.8NNN.++w.
220e4: 54121277 465f4e68 081fa954 58dfa1b2 w..ThN_FT......X
220f4: 58585858 58585858 02a1d958 a5a9a9a5 XXXXXXXXX.......
22104: 02232323 b2a1d9a4 a9235459 1fa95454 ###.....YT#.TT..
22114: 2302d959 54a5a5a5 59b23ba9 543b5454 Y..#...T.;.YTT;T
22124: 59b25954 b723543b 79775fdd 571e11e2 TY.Y;T#.._wy...W
22134: bf51eded 517272e5 f0d6afe6 40dd3425 ..Q..rrQ....%4.@
22144: 5e466846 e0e0e062 b9c6c6f4 59595968 FhF^b.......hYYY
22154: 54545459 cfcdcdcd 4f4f4fcf 4f1f1f1f YTTT.....OOO...O
22164: cb1fcbcf cbcb3636 69cbcb36 36cbcb69 ....66..6..ii..6
22174: 48484848 48484848 00000000 70707000 HHHHHHHH.....ppp
22184: 1f707070 cf363636 cd44d30c 4e4e0ccd ppp.666...D...NN
22194: 4e544e12 bbbbab1e 121e742b 68545454 .NTN....+t..TTTh
221a4: dd54a9a9 dff7f775 a1a1d975 a1a1a1a1 ..T.u...u.......
221b4: 88d90a0a 02d95858 a508a908 a4b72323 ....XX......##..
221c4: 02a429a1 b25423b2 23b2d9d9 a5a5a5a5 .)...#T....#....
221d4: b2b21f54 0854a559 5959a5a5 a5a554b2 T...Y.T...YY.T..
221e4: 75ddb7b7 787e3446 2f8c8c57 4d72e5bf ...uF4~xW../..rM
221f4: 216f5a8c 345e3d7c 625e0234 3d3df4f4 .Zo!|=^44.^b..==
22204: 5062623d 5959da50 54545459 4fcdcdcd =bbPP.YYYTTT...O
22214: cf4f4f4f 1f1f364f 7036cf1f cb363648 OOO.O6....6pH66.
22224: cb36cbcb 36cb6969 48483636 70707048 ..6.ii.666HHHppp
22234: 00007048 70000000 70707070 cf361f1f Hp.....ppppp..6.
22244: 0c6d0c0c cd5454cd 544e4e54 77777712 ..m..TT.TNNT.www
22254: 771277c8 3b545974 df5f54a9 a1d975df .w.wtYT;.T_..u..
22264: 29a1a1a1 a1a12929 2929a1a1 d9a1a129 ...)))....)))...
22274: b2dddf58 a5a5a523 a5080808 a1ddb259 X...#.......Y...
22284: a523a4d9 a5a5a5a5 02a5a9a5 54a523b2 ..#..........#.T
22294: 23a5a508 08b2b7b2 b7b723a5 08ddf7dd ...#.....#......
222a4: 908c3273 72bfbfbf 20e132e5 465e80d7 s2.....r.2. ..^F
222b4: f4625fb7 3d3d62c6 50626262 c950da50 ._b..b==bbbPP.P.
222c4: 54545454 cfcdcdcd cf4f4f4f 1f364fcf TTTT....OOO..O6.
222d4: 701f1f1f 36363670 363636cb cbcbcbcb ...pp666.666....
222e4: 48363636 48704848 7070fafd 00000000 666HHHpH..pp....
222f4: 70707000 4f1f1f1f cdcd0c0c 4e5454cd .ppp...O.....TTN
22304: 5454cd54 2b2b7454 74127777 12741277 T.TTTt++ww.tw.t.
22314: 75df46a9 dda1a1d9 02dda1dd 02020202 .F.u............
22324: a402b702 a12929a4 d90aa1a1 a1d9d9d9 .....)).........
22334: dddddda1 a1a1a1a1 a5a52302 a5a5a5a5 .........#......
22344: 02a9a5a5 a5a52302 a5540823 b259b2a5 .....#..#.T...Y.
22354: 23230859 daddb7b7 908c2274 bfbfab0b Y.##....t"......
22364: e5e6ae2f 23027640 f4f43002 62626262 /...@v.#.0..bbbb
22374: 50b95062 dff75050 545454a1 4fcdcdcd bP.PPP...TTT...O
22384: 4f4f4f4f 3636364f 1f1f1f1f 36cb1f70 OOOOO666....p..6
22394: 36363636 36cbcb36 36cbcb36 48484848 66666..66..6HHHH
223a4: 0063fafd 00000070 70700000 1f1f1f70 ..c.p.....ppp...
223b4: cdcdcf4f 5454cdcd 3b545454 2b12543b O.....TTTTT;;T.+
223c4: 74c8b3b3 74121277 7575a174 a1a1a15f ...tw..tt.uu_...
223d4: 23b202dd 080808a5 a5a50808 b7b723a5 ...#.........#..
223e4: a402b7b7 a1a1dda4 a1a1a1a1 b7b7a429 ............)...
223f4: a5a5a523 a5a5a5a5 021fa5a5 a52323a4 #............##.
22404: a50823a5 b223a5a5 a9b2a423 b7b72323 .#....#.#...##..
22414: 9081d3a4 bfbbae9b e6aeaebf 0223b274 ............t.#.
22424: 62f46280 b9505062 6262b9b9 a175f750 .b.bbPP...bbP.u.
22434: 543bb2dd 3bcdcdcd 364f4f4f 36363636 ..;T...;OOO66666
22444: 1f1f1f36 36367070 69364848 36363669 6...pp66HH6ii666
22454: cbcb3636 48484836 fdfa0715 70707000 66..6HHH.....ppp
22464: 70000070 1f1f7070 cdcdcfa9 54cd4ee9 p..ppp.......N.T
22474: cd545454 123b3b3b b3d1c877 1274c879 TTT.;;;.w...y.t.
22484: 5f75d946 a15fdda1 0808a5b2 08080808 F.u_.._.........
22494: a5080808 a5a5a5a5 232323a5 b7b72323 .........#####..
224a4: 23b7b7b7 a5a5a523 a5a5a5a5 a5a5a5a5 ...##...........
224b4: b2a9a5a5 2323b2a1 0823a5a5 a5a5a5a5 ......##..#.....
224c4: a123b2b2 23230868 ed63a5b7 bbbf9797 ..#.h.##..c.....
224d4: 72bfbfbf 305f6832 b97c6262 f7f7b9b9 ...r2h_0bb|.....
224e4: b950b9f7 02dd5f80 3b23b2b2 cdcd3b3b ..P.._....#;;;..
224f4: 4f4f4f4f 36363636 1f701f36 4870701f OOOO66666.p..ppH
22504: 48483648 36483636 cbcb3636 cbcbcbcb H6HH66H666......
22514: fd630715 70700015 00007000 1f707070 ..c...pp.p..ppp.
22524: 4fcfa91f cdcde9cd 54544e54 54545454 ...O....TNTTTTTT
22534: 2b771e54 771379b3 a15f7546 dda1dda1 T.w+.y.wFu_.....
22544: 08080823 08080808 08080808 08080808 #...............
22554: 08080808 a5a5a508 a5a5a5a5 a5a5a5a5 ................
22564: a5a5a5a5 a5a5a5a5 02a9a5a5 232302d9 ..............##
22574: 59a508a5 a5a5a5a9 b2b223a5 a5a1a123 ...Y.....#..#...
22584: 733b23a5 44979773 78bfbf44 f4f79090 .#;ss..DD..x....
22594: f7b9b962 daf7f7f7 75f7dada b2b234c9 b..........u.4..
225a4: a5b2b2b2 3b3b3b08 4f4f4f4f 3636364f .....;;;OOOOO666
225b4: 701f3636 70483670 48487070 48484848 66.pp6HpppHHHHHH
225c4: cbcbcb36 1e0ccbcb 4a63faec 00000048 6.........cJH...
225d4: 70000070 70707000 4f4f4fcf cde94e4f p..p.ppp.OOOON..
225e4: 4e4e5454 54545454 12125454 2b2bbb77 TTNNTTTTTT..w.++
225f4: a1d97546 a1a1a1a1 0808a5b2 08a9a908 Fu..............
22604: 0808a908 08080808 08080808 a508a508 ................
22614: a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 ................
22624: dd08a9a5 2323a4df 23a5a523 a5a508b2 ......###..#....
22634: b7a5a5a5 a1b7b702 2da502d9 891c9722 ...........-"...
22644: 7844441e f772ed44 f7f7f7b9 dadab9f7 .DDxD.r.........
22654: a4a1d9df 59686868 23235959 3b3b3b08 ....hhhYYY##.;;;
22664: 4f4f4f3b 36363636 70363636 70367070 ;OOO6666666ppp6p
22674: 70707070 48484870 69cb3648 3e0c6969 pppppHHHH6.iii.>
22684: 4a6391ab 00000048 00000000 70700000 ..cJH.........pp
22694: cf4fcfcf cd4ecd4f 545454cd cd54544e ..O.O.N..TTTNTT.
226a4: 4e54543b 12771212 46a1df68 cd545459 ;TTN..w.h..FYTT.
226b4: 232354cd a9a9a9a5 a9a9a9a9 080808a9 .T##............
226c4: 08080808 08080808 a5a5a508 a5a5a5a5 ................
226d4: a5a5a5a5 08a5a5a5 d9b2a9a9 2323a4df ..............##
226e4: a5a52323 a5a90223 a5a5a5a5 b202b7a5 ##..#...........
226f4: a4d9ddb7 89897391 4444e978 44ed4444 .....s..x.DDDD.D
22704: f7f7b975 5f75dff7 b702a4a1 59b2b2b7 u.....u_.......Y
22714: 54a55459 3b3ba93b 4f4fcdcd 1f4f3636 YT.T;.;;..OO66O.
22724: 1f363636 701f1f70 48707070 70707070 666.p..ppppHpppp
22734: cb364848 79690c69 ec89aef6 00000048 HH6.i.iy....H...
22744: 00000000 70000000 cd1fcd1f 4ecdcdcd .......p.......N
22754: 5454cdcd 54545454 54543b54 12124e54 ..TTTTTTT;TTTN..
22764: a968d959 1f1f1f1f 701f1f1f a9a5a5a9 Y.h........p....
22774: a9a9a9a9 a9a9a9a9 0808a908 08080808 ................
22784: a5080808 a5a5a5a5 a9a908a5 08a9a9a9 ................
22794: dfd90254 2323a4d9 a5a52323 08a423a5 T.....####...#..
227a4: a5a5a508 b7a5a5a5 02b7b2b2 89971c59 ............Y...
227b4: 6de96d89 2278d344 dd02dd74 a1a1a1a1 .m.mD.x"t.......
227c4: a4a4dda1 b2020202 54a55459 3ba90854 ........YT.TT..;
227d4: 4f3bcd3b 36361f4f 3636361f 361f1f70 ;.;OO.66.666p..6
227e4: 70707036 70707070 36cb3670 770c69cb 6pppppppp6.6.i.w
227f4: ec91338b 00000048 00007000 70000000 .3..H....p.....p
22804: 364fcf70 4e4fcdcd 54cd3b38 544e4e54 p.O6..ON8;.TTNNT
22814: 54545454 12545454 1f3bdd54 1f1f1f1f TTTTTTT.T.;.....
22824: 1f1f1f1f 0870701f a9a9a9a5 a9a9a9a9 .....pp.........
22834: a9a9a9a9 08080808 08080808 08a50808 ................
22844: b2a5a9a9 d9a1a1dd d95858d9 2323a4a1 .........XX...##
22854: a5232323 a4a5a5a5 a5a5a959 a5a5a5a5 ###.....Y.......
22864: b2b223a5 89970cb7 e9e97889 89e9d36d .#.......x..m...
22874: dfda021c 2323b2a1 23b7b7b7 54232323 ......##...####T
22884: 3b545454 3ba93b3b 4f3b3b3b 1f1f1f4f TTT;;;.;;;;OO...
22894: 361f1f36 3670701f 48707036 70707070 6..6.pp66ppHpppp
228a4: cb707048 6d69cf69 6944f606 00007036 Hpp.i.im..Di6p..
228b4: 00700000 00000000 36cd7000 cdcdcd1f ..p......p.6....
228c4: 4ecd4ee9 545454cd 54545454 54545454 .N.N.TTTTTTTTTTT
228d4: 1f3b5954 1f1f1fa9 1f1f1f1f 1f1f1f1f TY;.............
228e4: a9a5a970 a9a9a9a9 a9a9a9a9 0808a9a9 p...............
228f4: 08080808 a9080808 d9a10208 58585858 ............XXXX
22904: d9d9dfdf 2323a4a1 a5232323 a508a5a5 ......#####.....
22914: a51f0202 a5a5a5a5 23a5a5a5 97fae546 ...........#F...
22924: e9788989 e96de9e9 2308911c a1d9a102 ..x...m....#....
22934: a523b2a4 080808a5 cd54543b a93b3b3b ..#.....;TT.;;;.
22944: 1f4f3b3b 4fa91f1f 1f70704f 70707070 ;;O....OOpp.pppp
22954: 70707036 70707070 70363670 d30c6936 6pppppppp66p6i..
22964: 69798b67 007048cb 00000000 00000000 g.yi.Hp.........
22974: 4f700000 cdcd4f1f 543bcd1e 545438e9 ..pO.O....;T.8TT
22984: 5454544e 54545454 a9545459 1f1f1fa9 NTTTTTTTYTT.....
22994: 1f1f1f1f 1f1f1f1f a9701f1f a9a9a9a5 ..........p.....
229a4: a9a9a9a9 a9a9a9a9 0808a9a9 08a90808 ................
229b4: d9d9d9dd d9dfdfdf a1d9d9d9 23b702a1 ...............#
229c4: a5232323 08a5a5a5 a9a10223 a5a5a508 ###.....#.......
229d4: a5a5a5a5 6389e644 2d898989 6de90c0c ....D..c...-...m
229e4: 0a1effe9 b7b2dda1 020202b2 02a4a402 ................
229f4: 3ba559b2 3ba9a908 543ba9a9 d9a1ddb2 .Y.;...;..;T....
22a04: 4f298888 70701f70 48707070 70707070 ..)Op.pppppHpppp
22a14: cb487070 78693636 0c3e06e5 7048cb69 ppH.66ix..>.i.Hp
...
22a2c: 70700000 4f4f7070 cdcd1e4e bbbb4e4e ..ppppOON...NN..
22a3c: 54544e54 54545454 08545454 1f1f1fa9 TNTTTTTTTTT.....
22a4c: 1f1f1f1f 1f1f1f1f 1f1f1f1f a908a91f ................
22a5c: a9a9a9a9 a9a9a9a9 a9a9a9a9 591f08a9 ...............Y
22a6c: d9a1a1d9 dfdfdfdf a1d9d9d9 23b70229 ............)..#
22a7c: a5232323 a5a5a5a5 a1b22308 08a5a9b2 ###......#......
22a8c: 54a5a5a5 69bfe651 918991ff 2d0c0c0c ...TQ..i.......-
22a9c: 741c6d2d 58585888 0a0a8858 b202dda1 -m.t.XXXX.......
22aac: 88d9ddb2 d90ad9d9 88d9d9d9 88888888 ................
22abc: 88888888 701f7029 70707070 70707070 ....)p.ppppppppp
22acc: 70487070 892d6936 0ce2c889 4848cb69 ppHp6i-.....i.HH
22adc: 00000070 00000000 70000000 36707070 p..........pppp6
22aec: 3b381ecd 381eab1e 54543864 54545454 ..8;...8d8TTTTTT
22afc: cd545454 1f1fa9a9 1f1f1f1f 1f1f1f1f TTT.............
22b0c: 1f1f1f1f 081f1f1f a9a91f08 a9a9a9a9 ................
22b1c: a9a9a9a9 591f08a9 dfd9d958 d9d9df58 .......YX...X...
22b2c: a1a1d9d9 232302a4 a5232323 a5a5a5a5 ......#####.....
22b3c: b22308a5 08a9a1dd 44a508a5 08388ced ..#........D..8.
22b4c: 89911cca 0c0c0c91 63d30c2d d9a12923 ........-..c#)..
22b5c: 888888d9 58585858 59b229d9 d9d9a102 ....XXXX.).Y....
22b6c: 880a0ad9 0a0a0ad9 0a0a0a0a 704f0a0a ..............Op
22b7c: 70707070 70707070 48707070 89cacb48 pppppppppppHH...
22b8c: 4e0d2d91 4836cbcb 00007070 00000000 .-.N..6Hpp......
22b9c: 00000000 36707000 cd38cd1f bb1e7977 .....pp6..8.wy..
22bac: 54abbb1e 54545454 3b545454 a9a9083b ...TTTTTTTT;;...
22bbc: 1f1f1f1f a9a91f1f 1f1f1f1f 1f1f1f1f ................
22bcc: a9a90800 a9a9a9a9 a9a9a9a9 08a9a9a9 ................
22bdc: 0854dd88 d9465908 a1a1a1d9 b723b7a4 ..T..YF.......#.
22bec: a5232323 a5a5a5a5 2308a5a5 b2d902b2 ###........#....
22bfc: 5154081f a508bfed 918963a9 0ccdca63 ..TQ.....c..c...
22c0c: 910c2d0c a4a4b791 0a0aa1a1 dfd9d90a .-..............
22c1c: 5858dfdf 6859ddd9 a1a1a129 0a0a0a0a ..XX..Yh).......
22c2c: a1a10a0a cfdda1a1 70703670 70707070 ........p6pppppp
22c3c: 70707070 6391ec48 cdcd69ca 4836cbcb ppppH..c.i....6H
22c4c: 00007048 00000000 00000000 70700000 Hp............pp
22c5c: 4f4fcd4f 54c80e4e 641e1e1e 54545438 O.OON..T...d8TTT
22c6c: 54545454 a9083b3b 1f1f1fa9 1f1f1f1f TTTT;;..........
22c7c: 1f1fa9a9 1f1f1f1f 08a9cd1f a9a9a9a9 ................
22c8c: a9a9a9a9 1fa9a9a9 1f00a502 1f1f1f1f ................
22c9c: a1d9dda9 2323b702 a5a5a523 a5a5a5a5 ......###.......
22cac: 08a5a5a5 a1b2b223 e6d3540a 08084e90 ....#....T...N..
22cbc: 91ffcb08 690c6391 0c2d0c0c a4b72d63 .....c.i..-.c-..
22ccc: a1a12929 a1a1a1a1 88d9d9d9 d958dfd9 ))............X.
22cdc: a42959b2 a1a129a4 dda1a1a1 6846dddd .Y)..)........Fh
22cec: 7036703b 70707070 70707070 07910769 ;p6pppppppppi...
22cfc: 36484815 48483648 00707048 00000000 .HH6H6HHHpp.....
22d0c: 00000000 70007000 cdcd7070 12dc33cd .....p.ppp...3..
22d1c: 4e4e4e12 5454bbab 54545454 08543b54 .NNN..TTTTTTT;T.
22d2c: 1f1fa9a9 1f1f1f1f 1fa91fa9 1f1f1f1f ................
22d3c: 12131e1f a9a9a9a9 a9a9a9a9 1fa9a9a9 ................
22d4c: a9000808 a9a9a9a9 021f1fa9 2323b2a1 ..............##
22d5c: a5a5a523 a5a5a5a5 08a5a5a5 b2b22308 #............#..
22d6c: e69380a4 08080878 1c4a0808 69916391 ....x.....J..c.i
22d7c: 0c0c0c69 a5cf632d a40223a5 29a12929 i...-c...#..)).)
22d8c: a1a1a1a1 d9df88d9 cd0258df 54545968 .........X..hYTT
22d9c: 59595454 59595959 1f70cd54 70707070 TTYYYYYYT.p.pppp
22dac: cb707070 ec91fa4a 48707048 48484848 ppp.J...HppHHHHH
22dbc: 70704848 00000000 00000000 00000000 HHpp............
22dcc: 36367000 77791e4f 54e94e77 54ab1e54 .p66O.ywwN.TT..T
22ddc: 54545454 54545454 1fa9a908 1f1f1f1f TTTTTTTT........
22dec: a9a9a91f 1f1f1f1f 67331e1f a9084f79 ..........3gyO..
22dfc: 1fa9a9a9 a9a9a9a9 1f1fa91f 1f1f1f1f ................
22e0c: a9a9a91f 23dddd1f a5a52323 08a508a5 .......###......
22e1c: a5a5a5a5 b2230808 ceea5bb2 08a9a95e ......#..[..^...
22e2c: 63a90808 ca639163 0c0c6969 a963ca0c ...cc.c.ii....c.
22e3c: a5a508a5 a4a4b2a5 dda1dddd dfd9a1dd ................
22e4c: dfd9d9df b212cd68 595959b2 cdcd5454 ....h....YYYTT..
22e5c: 70cfcdcd 70707070 4acb7070 cbec0707 ...ppppppp.J....
22e6c: 70707048 48484870 48484848 00000070 HppppHHHHHHHp...
22e7c: 00000000 001f0000 4f700000 541ecd4f ..........pOO..T
22e8c: 4e4e774e 3838544e 54545454 54595454 NwNNNT88TTTTTTYT
22e9c: a9a90854 1f1f1f1f a9a91f1f 1f1f1fa9 T...............
22eac: 1379121f a9123113 a9a9a9a9 a9a91f1f ..y..1..........
22ebc: 1fa91fa9 1f1f1f1f a91f1f1f a1a91fa9 ................
22ecc: a5a5a5b2 08080808 08080808 23080808 ...............#
22edc: 5ba66619 08290aa1 3608a91f 639191ff .f.[..)....6...c
22eec: 0cec690c fa91ec2d a5a5a508 a5080808 .i..-...........
22efc: 020202b2 4646dddd d9dfd9a1 cf54d9d9 ......FF......T.
22f0c: 595454cd 59595959 cd545959 70707070 .TTYYYYYYYT.pppp
22f1c: ca154870 70cb4a07 70700000 48487070 pH...J.p..ppppHH
22f2c: 48484848 00007070 00000000 70000000 HHHHpp.........p
22f3c: 70000070 4ecf3b36 381e543b 1e544e4e p..p6;.N;T.8NNT.
22f4c: 54545454 59545454 08a53b59 a91f1fa9 TTTTTTTYY;......
22f5c: a9a91f1f 1fa9a9a9 0d34121f 79131379 ..........4.y..y
22f6c: a9a908a9 1f1f1fa9 a91fa9a9 1f1f1f1f ................
22f7c: 1f1f1f1f 1fa91f1f a5a5a454 08080808 ........T.......
22f8c: 08080808 cd08a508 7453a6f1 0aa12902 ..........St.)..
22f9c: 1f1f23a1 6391ff4a ec696991 63ec2d0c .#..J..c.ii..-.c
22fac: a5a508ca 3ba5a5a5 b2543b3b dd466802 .......;;;T..hF.
22fbc: d9dd5968 a1d9d9df cdcfcfcf cdcdcdcd hY..............
22fcc: 545454cd 7070704f 07ca1548 7070154a .TTTOpppH...J.pp
22fdc: 70700070 70707070 48484848 00707070 p.ppppppHHHHppp.
...
22ff8: 4f1f7000 38cd3b4e 544e5438 544e5454 .p.ON;.88TNTTTNT
23008: 54545454 a9595959 1fa9a908 a91f1f1f TTTTYYY.........
23018: 1fa9a9a9 686868a9 13790d34 08081279 .....hhh4.y.y...
23028: 1fa9a9a9 1f1f1f1f 1f1f1fa9 1f1f1f1f ................
23038: 1f1f1f1f b7b21fa9 080808a5 08080808 ................
23048: 44080808 596466e6 a1a40223 a4290a0a ...D.fdY#.....).
23058: 63fffaa9 69690763 0c0cecec 08086963 ...cc.ii....ci..
23068: 08080808 3b3b3b3b 6868593b 5468dd68 ....;;;;;Yhhh.hT
23078: a1d9d946 cdcb68d9 cdcdcdcd cdcdcd54 F....h......T...
23088: 36704f54 4a07caec 70704815 70007070 TOp6...J.Hpppp.p
23098: 70707070 70704848 70707070 00000000 ppppHHpppppp....
230a8: 70000000 0000701f 70707000 cd3b544f ...p.p...pppOT;.
230b8: 4e4e3838 4e4e5454 54545459 12595959 88NNTTNNYTTTYYY.
230c8: 1f1fa959 a9a91f1f a91f1f1f 68686854 Y...........Thhh
230d8: 76343468 08797979 a9a9a908 1f1f1f1f h44vyyy.........
230e8: 1f1fa91f 1f1f1f1f 1f1f1f1f 3b1fa91f ...............;
230f8: 0808a502 08080808 5154083b 23597294 ........;.TQ.rY#
23108: 02b223b2 a1a1a1a4 ffec0229 69ec631c .#......)....c.i
23118: ececec69 a5a963ca 3b3b3b08 3b3b3b3b i....c...;;;;;;;
23128: 54cdcd3b 46686868 d9745468 cfa1a1a1 ;..ThhhFhTt.....
23138: cdcdcdcf cdcdcdcd 1536cdcd cbec4aca ..........6..J..
23148: 70707070 70707070 70707000 70707070 pppppppp.ppppppp
23158: 70704870 00000070 00000000 001f7000 pHppp........p..
23168: a9700000 1f1f7070 381e38cd 3854544e ..p.pp...8.8NTT8
23178: 5454541e 12595959 3b591212 1f1f1fa9 .TTTYYY...Y;....
23188: 593ba91f 68b26868 34346868 310d0d0d ..;Yhh.hhh44...1
23198: a9a9a912 1f1fa9a9 1f081f1f 1f1f1f1f ................
231a8: 1f1f1f1f a9a91f1f 0823021f 3b080808 ..........#....;
231b8: e6783b3b a508e9ed 2323b259 a1a102b2 ;;x.....Y.##....
231c8: a5292929 699163ec ececec69 1ffa07ec )))..c.ii.......
231d8: 3b3b0808 3b3b3b4f cdcd3b3b 686854cd ..;;O;;;;;...Thh
231e8: cd6868b2 d9a1a168 cfcfcf54 cdcdcdcd .hh.h...T.......
231f8: 36cdcdcd 704815ec 70707070 70707070 ...6..Hppppppppp
23208: 70707070 70707070 70484870 00000070 pppppppppHHpp...
23218: 00000000 00707000 00000000 1f70701f .....pp......pp.
23228: 1e38cd1f 5454381e 5412bb12 59595959 ..8..8TT...TYYYY
23238: 59121259 59595959 0d741259 6868680d Y..YYYYYY.t..hhh
23248: 34346868 0d343434 a9a97931 1fa9a9a9 hh44444.1y......
23258: a91f1f1f 1f1f1fa9 1f1f1f1f a9a91f1f ................
23268: b259364f 08080808 94e1e908 3b083bae O6Y..........;.;
23278: 23b223a5 a4b259a5 29292929 ca697002 .#.#.Y..)))).pi.
23288: ecec6969 4a91ecec 08a94fa9 4f4f3b3b ii.....J.O..;;OO
23298: 3bcf4f4f 54cdcdcd 6868b2b2 a1ddcd54 OO.;...T..hhT...
232a8: cfcb46d9 cfcdcfcf cfcdcfcf 70707070 .F..........pppp
232b8: 70707070 70364848 70707070 70707070 ppppHH6ppppppppp
232c8: 70484870 00007070 00000000 00000000 pHHppp..........
232d8: 00000000 70707070 383b1f1f 544e3838 ....pppp..;888NT
232e8: 12771254 59595959 59681259 b2595959 T.w.YYYYY.hYYYY.
232f8: 683468b2 0dc82bc8 34686868 34343434 .h4h.+..hhh44444
23308: 3b131340 a9a9a9a9 1f1f1f1f 1f1f081f @..;............
23318: 1f1f1f1f a91f1f1f 0d1e4f4f 083b3bb2 ........OO...;;.
23328: 90e6ae08 083b08e9 59a5a53b b723a523 ......;.;..Y#.#.
23338: 2929a4b2 cba92929 ec6969cf 63ececec ..))))...ii....c
23348: a94fa9ec 4f4f4f4f cf4f4f4f cdcdcfcf ..O.OOOOOOO.....
23358: 59b259cd 546868b2 cfa14654 cfcfcfcf .Y.Y.hhTTF......
23368: cdcfcfcf 7070001f 70707070 36363636 ......pppppp6666
23378: 00707048 70700070 70487070 00007070 Hpp.p.ppppHppp..
...
23394: 701f7000 a91f7070 5454543b 38121254 .p.ppp..;TTTT..8
233a4: 12125959 68126812 34685959 0d0d6868 YY...h.hYYh4hh..
233b4: c8c87468 68340dc8 34343434 e8314034 ht....4h44444@1.
233c4: a9a9a912 1f1f1fa9 1f08701f 1f1f1f1f .........p......
233d4: 4fa9a91f 161e4f4f 0854b245 78e6ed6d ...OOO..E.T.m..x
233e4: 083b3b3b a5a53ba9 a5082359 2902b723 ;;;..;..Y#..#..)
233f4: 1fa5b729 151569cb ecececec a9a936fa )....i.......6..
23404: 4f4f4fa9 4f4f4f4f cfcfcfcf 54cdcd4f .OOOOOOO....O..T
23414: 36540259 54484848 cfcfcfcd cfcfcfcf Y.T6HHHT........
23424: 707070cf 48707070 4e4f3636 0070704f .ppppppH66ONOpp.
23434: 00000000 70707000 00000000 00000000 .....ppp........
23444: 00000000 00007070 00000000 3b707070 ....pp......ppp;
23454: 543ba9a9 59545454 59591259 68686868 ..;TTTTYY.YYhhhh
23464: 0db2b268 c8683476 6868680d 34c80d0d h...v4h..hhh...4
23474: 34340234 31403434 a9a9c813 1f1fa91f 4.4444@1........
23484: a91f1f1f 1f1f1fa9 a9a9a9a9 06774fa9 .............Ow.
23494: 4e23e8b5 0c51e697 3b3bcd08 a53ba93b ..#N..Q...;;;.;.
234a4: a52323a5 b702b2a5 00000008 15360000 .##...........6.
234b4: ecec1569 4f1ffafa a9a9a9a9 4f4f4f4f i......O....OOOO
234c4: cfcf4f4f cf4fcfcf 483659cd 48cbcb36 OO....O..Y6H6..H
234d4: cfcb4f36 cfcfcfcf 700036cf 36707070 6O.......6.pppp6
234e4: 404f3636 70703640 00000000 70000000 66O@@6pp.......p
234f4: 00000070 00000000 00000000 00000000 p...............
23504: 70000000 70700070 3b08a9a9 59125454 ...pp.pp...;TT.Y
23514: 77123812 68746812 b2b26868 3476130d .8.w.hthhh....v4
23524: b268c876 0d346868 34023434 40343434 v.h.hh4.44.4444@
23534: 3b797979 1f1f1fa9 701f1f1f a91fa9a9 yyy;.......p....
23544: 1fa9a9a9 31c8cd1f bf79f687 a9d3edbe .......1..y.....
23554: 3bcdcd3b 3ba9083b 23a5a5a5 08022308 ;..;;..;...#.#..
...
2356c: 70700000 1f15cb70 a9a9a9a9 4fa9a9a9 ..ppp..........O
2357c: 4f4f4f4f cfcfcf4f 481f59cf 48483636 OOOOO....Y.H66HH
2358c: cf4f3648 4f4fcfcf 7070cf4f 70707070 H6O...OOO.pppppp
2359c: 344f4f36 7036129d 00000070 00000000 6OO4..6pp.......
235ac: 00000070 70007070 00007070 70700000 p...pp.ppp....pp
235bc: 00000000 70007070 4f1f1f70 3838593b ....pp.pp..O;Y88
235cc: 12771212 74127477 68686868 340d68b2 ..w.wt.thhhh.h.4
235dc: 68767634 0d68b2b2 3434340d 34343434 4vvh..h..4444444
235ec: af79400d 1f1f08b4 1f1f1f1f 1fa91f1f .@y.............
235fc: 701fa9a9 79311e4f e35b7976 a94fbf5a ...pO.1yvy[.Z.O.
2360c: cdcd3b3b 4f3b3bcd a508a53b 0023b2a5 ;;...;;O;.....#.
...
23624: 70000000 701fa91f a94f1f4f a9a9a9a9 ...p...pO.O.....
23634: 4f4f4f4f cb364f4f 481f594f 48483636 OOOOOO6.OY.H66HH
23644: 363b4848 364fcfcf 0048cb36 70707070 HH;6..O66.H.pppp
23654: 124fcf36 364fe29d 00000070 70000000 6.O...O6p......p
23664: 00000000 48707000 70707048 00000070 .....ppHHpppp...
...
2367c: 1f1f7070 383854a9 77123838 59747412 pp...T8888.w.ttY
2368c: 68681268 59b26868 3468b2b2 68686834 h.hhhh.Y..h44hhh
2369c: 340dc8c8 34020234 fc37f279 a9543765 ...44..4y.7.e7T.
236ac: 1f1fa91f a91f1fa9 4f1f1fa9 7913791e ...........O.y.y
236bc: 65fbd176 3b081e0f cd3b4fa9 4f4fcdcd v..e...;.O;...OO
236cc: a53b3b4f 00a559a5 00000000 00000000 O;;..Y..........
236dc: 00000000 4f1f1f1f 1f361f1f 3636361f .......O..6..666
236ec: 4f4f3636 364f3636 48a95436 48484836 66OO66O66T.H6HHH
236fc: 1fcf4848 36364f36 0036cb36 70707070 HH..6O666.6.pppp
2370c: 4ecf3670 36129d3e 70007036 00000000 p6.N>..66p.p....
2371c: 70000070 48487070 48484848 00004848 p..pppHHHHHHHH..
...
23734: 1f707000 7454a91f 12383874 74741274 .pp...Ttt88.t.tt
23744: 68b25959 68686868 b2686868 686868b2 YY.hhhhhhhh..hhh
23754: c8790d68 2c2b3434 fbfc2ee3 c831795b h.y.44+,....[y1.
23764: a91f1fa9 a91f1fa9 1e4f1f1f 79314513 ..........O..E1y
23774: e3657167 4f740dd1 3b4fa908 4fcfcdcd gqe...tO..O;...O
23784: 3b4f4f4f 00a9233b 00000000 00000000 OOO;;#..........
23794: 00000000 701f1f70 3670a91f 361f1f1f ....p..p..p6...6
237a4: 36363636 364f4f36 70083b36 48484848 66666OO66;.pHHHH
237b4: 1f364848 36364f36 00363636 70707070 HH6.6O66666.pppp
237c4: 3b4f361f cde29d40 00004836 70007000 .6O;@...6H...p.p
237d4: 70707000 48484848 15484848 00fd1515 .pppHHHHHHH.....
237e4: 00007070 70000000 70707070 54a9361f pp.....ppppp.6.T
237f4: 74747412 68121212 68595974 68686868 .ttt...htYYhhhhh
23804: 68686868 68b26868 0d343468 fce32c79 hhhhhh.hh44.y,..
23814: 76d153e3 79764040 1fa97745 1f1f1f1f .S.v@@vyEw......
23824: 13c84ea9 133113e8 f2fcfcaf 0d0d0dc8 .N....1.........
23834: a9a9a93b cfcdcd4f a9a94f4f 00a9543b ;...O...OO..;T..
...
2384c: 48151500 1f007070 1fa9701f 36361f1f ...Hpp...p....66
2385c: 36361f1f 36363636 703b3b36 48484848 ..6666666;;pHHHH
2386c: a9364848 36364f1f 70363636 70707000 HH6..O66666p.ppp
2387c: 4f363670 123e3e12 00703636 00000000 p66O.>>.66p.....
2388c: 48487070 15484848 fd151515 07074a4a ppHHHHH.....JJ..
...
238a4: 1f700000 4f361f1f 7412543b 12681274 ..p...6O;T.tt.h.
238b4: 5959340d 740d6868 68687434 b2686868 .4YYhh.t4thhhhh.
238c4: c8346868 71fcfc53 34340dd1 76767676 hh4.S..q..44vvvv
238d4: 31453131 4e541277 e8e86777 af313113 11E1w.TNwg...11.
238e4: 79716510 0d0d0d0d a9a94e0d cfcf4fa9 .eqy.....N...O..
238f4: a94f4fcf 001fa5a9 00000000 00000000 .OO.............
23904: cb150000 70707048 1f1f7000 1f1f70a9 ....Hppp.p...p..
23914: 1f36361f 36363636 703b4f36 48484870 .66.66666O;ppHHH
23924: 1f364848 36363648 70483636 70707070 HH6.H66666Hppppp
23934: 36367070 343e403b 7048364f 00000000 pp66;@>4O6Hp....
23944: 48484870 15151548 07074afd 4a4a0707 pHHHH....J....JJ
23954: 000000fd 00000000 70700000 361f1f1f ..........pp...6
23964: 12543b4f 68127474 b268130d 0d68b2b2 O;T.tt.h..h...h.
23974: 34346874 68686868 712b6868 79b46ffc th44hhhhhh+q.o.y
23984: 340d0d0d 76797634 31313176 13e8e813 ...44vyvv111....
23994: 1313e845 37333113 76d13765 0d0dc876 E....137e7.vv...
239a4: 4f74770d cf4fa9a9 a94fcfcf 007008a9 .wtO..O...O...p.
...
239bc: 15480000 70707015 70007070 1f70a91f ..H..ppppp.p..p.
239cc: 361f1f1f 36363636 703b3636 70007070 ...6666666;ppp.p
239dc: 36484848 48484870 00704836 70707070 HHH6pHHH6Hp.pppp
239ec: 36707070 e23e1236 704836cd 48707070 ppp66.>..6HppppH
239fc: 48484848 4afd1515 4a070707 1515fd4a HHHH...J...JJ...
23a0c: 00004848 00000000 00000000 1f363670 HH..........p66.
23a1c: 543b4f36 12747459 68c80d74 68b25959 6O;TYtt.t..hYY.h
23a2c: 68686868 68686834 fc53c8b2 68345b10 hhhh4hhh..S..[4h
23a3c: 0dc8c834 79763434 31313176 13131331 4...44vyv1111...
23a4c: 13131313 650f1331 76795b10 c80dc876 ....1..e.[yvv...
23a5c: 7474770d 4f3b1f4e 4f4fcfcf 0070a93b .wttN.;O..OO;.p.
...
23a74: 15000000 700015cb 70707070 a91f0070 .......pppppp...
23a84: 36363670 36363636 704f3648 70701f70 p6666666H6Opp.pp
23a94: 48487070 36364870 70707048 70707070 ppHHpH66Hppppppp
23aa4: 36707070 e240cf36 483636cd 48484870 ppp66.@..66HpHHH
23ab4: 15484848 07074afd 15fd4a4a 48481515 HHH..J..JJ....HH
23ac4: 00484848 00000000 00000000 1f700000 HHH...........p.
23ad4: cd363670 59595454 74127459 68685912 p66.TTYYYt.t.Yhh
23ae4: 68686868 b2683468 711053c8 34767664 hhhhh4h..S.qdvv4
23af4: 0d0d3468 0d34340d 13137676 13133131 h4...44.vv..11..
23b04: 31131313 eafcaf13 797979b1 c8c8c876 ...1.....yyyv...
23b14: 74770dc8 1fcf7474 3bcdcd3b 00001f3b ..wttt..;..;;...
...
23b30: 00481515 70707070 00707070 36701f1f ..H.ppppppp...p6
23b40: 48363636 70a94f36 70701f70 70707070 666H6O.pp.pppppp
23b50: 48707070 70007070 70707070 70707070 pppHpp.ppppppppp
23b60: 34cd3636 483636cd 48484848 4afd1548 66.4.66HHHHHH..J
23b70: fd4a074a 48151515 48484848 00707048 J.J....HHHHHHpp.
23b80: 00000000 70000000 70000000 4f367070 .......p...ppp6O
23b90: 5454cdcd 12125959 68685974 0d686868 ..TTYY..tYhhhhh.
23ba0: 77b26868 2b241053 0d346868 34683434 hh.wS.$+hh4.44h4
23bb0: 34343434 31404034 31313113 13131313 44444@@1.111....
23bc0: 0f65e35b 79797967 c8c8c82b 777777c8 [.e.gyyy+....www
23bd0: 74383874 4f4f7070 0000701f 00000000 t88tppOO.p......
...
23be8: 48151548 70707000 70707070 00707070 H..H.pppppppppp.
23bf8: 361f7070 701fa936 70707070 70707070 pp.66..ppppppppp
23c08: 70707070 70707070 70707070 70707070 pppppppppppppppp
23c18: cf364870 48cbcbcf 15484848 074afd15 pH6....HHHH...J.
23c28: 1515fd4a 48484815 70484848 00000070 J....HHHHHHpp...
...
23c40: 70000070 4f487070 121254cf 12125959 p..pppHO.T..YY..
23c50: 68595974 68343434 f1746868 b2c85310 tYYh444hhht..S..
23c60: 68686868 34343468 34686868 400d3434 hhhhh444hhh444.@
23c70: 31311331 33313131 33e365fb 76797979 1.111113.e.3yyyv
23c80: c8c8c876 797977c8 38387477 00000038 v....wyywt888...
...
23ca0: 15154800 70700000 70707070 70707070 .H....pppppppppp
23cb0: 70000070 70707070 70707070 70707070 p..ppppppppppppp
23cc0: 70707070 70707070 70707070 70707070 pppppppppppppppp
23cd0: 36487070 cbcbcb36 fd151515 fd4a074a ppH66.......J.J.
23ce0: 48481515 48484848 00707048 00000000 ..HHHHHHHpp.....
...
23cf8: 70000000 36707070 0d12cdcd 59595968 ...pppp6....hYYY
23d08: 59595959 34686868 66e56868 34682bbe YYYYhhh4hh.f.+h4
23d18: 68686868 34686868 34686834 34343434 hhhhhhh44hh44444
23d28: 31317634 b1133131 79f210fc 76767979 4v1111.....yyyvv
23d38: c8c8c8c8 45c877c8 381e74c8 00006938 .....w.E.t.88i..
23d48: 00707070 00000000 00000000 00000000 ppp.............
23d58: 15150000 70000015 70707070 70707070 .......ppppppppp
23d68: 70707070 70707070 70707070 70707070 pppppppppppppppp
23d78: 70707070 70707070 70707070 70707070 pppppppppppppppp
23d88: 48487070 cbcbcbcb 074aec15 15fd4a07 ppHH......J..J..
23d98: 48484848 00704848 00000000 00000000 HHHHHHp.........
...
23db4: 70707070 4554cd4f 59595976 59595959 ppppO.TEvYYYYYYY
23dc4: 68685959 66be2b68 0d6868e5 68683434 YYhhh+.f.hh.44hh
23dd4: 68686868 34686868 34460d34 76763434 hhhhhhh44.F444vv
23de4: e3f27940 7967b1fc c8767679 c8c8c8c8 @y....gyyvv.....
23df4: 77777777 381e1e77 00483838 70707000 wwwww..888H..ppp
...
23e10: 15700000 00004815 70707070 70707070 ..p..H..pppppppp
23e20: 70707070 701f7070 70707070 70707070 pppppp.ppppppppp
23e30: 70707070 70707070 70707070 70707070 pppppppppppppppp
23e40: 48484848 15cb4848 ca91074a 4815694a HHHHHH..J...Ji.H
23e50: 70484848 00000000 00000000 00000000 HHHp............
...
23e6c: 70700000 ab4f3636 59126887 59595959 ..pp66O..h.YYYYY
23e7c: 68685959 dba6f174 6868b274 68340d0d YYhht...t.hh..4h
23e8c: 68686868 34686868 0d0d3434 40343446 hhhhhhh444..F44@
23e9c: e3372c79 764067b1 c8c8c876 77c8c8c8 y,7..g@vv......w
23eac: 77777777 1e1e1e1e 000c3838 70000000 wwww....88.....p
...
23ec8: 48000000 00701515 70707000 70707070 ...H..p..ppppppp
23ed8: 70707070 70707070 70707070 70707070 pppppppppppppppp
23ee8: 70707070 70707070 70707070 70707070 pppppppppppppppp
23ef8: 48484848 ca15cbcb eccafa91 4815e969 HHHH........i..H
23f08: 00004848 00000000 00000000 00000000 HH..............
...
23f20: 70000000 70007070 0c363636 121277dc ...ppp.p666..w..
23f30: 59595959 68595959 646666d1 68686868 YYYYYYYh.ffdhhhh
23f40: 68680d68 68686868 34686868 46346834 h.hhhhhhhhh44h4F
23f50: 2b34460d f27171f1 76767679 c8c8c876 .F4+.qq.yvvvv...
23f60: 7777c8c8 77777777 381e1e1e cb384e38 ..wwwwww...88N8.
23f70: 00000000 00000070 00000000 00000000 ....p...........
23f80: 00000000 00151515 70700000 70707070 ..........pppppp
23f90: 70707070 70707070 70707070 70707070 pppppppppppppppp
23fa0: 70707070 70707070 4f367070 48707070 pppppppppp6OpppH
23fb0: 48cb4848 6307fd48 15154a91 48e9e9cb HH.HH..c.J.....H
23fc0: 00007048 00000000 00000000 00000000 Hp..............
...
23fd8: 00007000 70707070 36cfcf1f 4e6979ab .p..pppp...6.yiN
23fe8: 54545454 12595959 74f16553 68686868 TTTTYYY.Se.thhhh
23ff8: 68686868 68686868 34686868 6868340d hhhhhhhhhhh4.4hh
24008: b02b4634 0d67f153 4076400d c80d0d0d 4F+.S.g..@v@....
24018: 7777c8c8 1e1e7777 381e1e1e e94ee938 ..wwww.....88.N.
24028: 00000048 00007000 00000000 00000000 H....p..........
24038: 00000000 1548fd00 70000000 70707070 ......H....ppppp
24048: 70707070 70707070 70707070 70707070 pppppppppppppppp
24058: 70707070 70707070 594f7070 4848703b ppppppppppOY;pHH
24068: 48cbcb48 9163faec 15cb154a 691e69cb H..H..c.J....i.i
24078: 00007048 00000000 00000000 00000000 Hp..............
...
24090: 00707000 70700000 4f367070 cf691e0c .pp...pppp6O..i.
240a0: 54cdcdcf bb545954 682b5a66 68686868 ...TTYT.fZ+hhhhh
240b0: 68686834 34686868 68686834 340d0d68 4hhhhhh44hhhh..4
240c0: b0640d68 34462bb0 0d0d0d34 0d0d0d0d h.d..+F44.......
240d0: 7777c8c8 1e1e1e77 381e1e1e 4ee9e9e9 ..www......8...N
240e0: 0000000c 00700000 00000000 00000000 ......p.........
240f0: 00000000 15fd4800 70000048 70707070 .....H..H..ppppp
24100: 70707070 70707070 70707070 70707070 pppppppppppppppp
24110: 70707070 70707070 59367070 48483659 pppppppppp6YY6HH
24120: ec4848cb 4a631c63 cbcb1515 124ecbcb .HH.c.cJ......N.
24130: 00007036 00000000 00000000 00000000 6p..............
...
24148: 70700000 70707070 36367070 cfcfcf36 ..pppppppp666...
24158: 59cdcfcf 2f545459 59597294 68686812 ...YYTT/.rYY.hhh
24168: 68346868 34686868 6874460d 0d466868 hh4hhhh4.FthhhF.
24178: 2b2bc80d 46464646 0d343446 0d0d0d0d ..++FFFFF44.....
24188: 7777c80d 1e1e7777 e91e3838 4ee9e9e9 ..wwww..88.....N
24198: 0000cb4e 70000000 00000000 00000000 N......p........
241a8: 00000000 15150000 00007015 70707070 .........p..pppp
241b8: 70707070 70707070 70707070 70707070 pppppppppppppppp
241c8: 48707070 70707048 cf487070 cb483654 pppHHpppppH.T6H.
241d8: 631548cb 154a6397 484815cb 12693648 .H.c.cJ...HHH6i.
241e8: 0070703b 00000000 00000000 00000000 ;pp.............
...
24200: 70700000 70707070 4f707070 3636364f ..pppppppppOO666
24210: 544fcf4f 0b545968 59a5bf94 74681259 O.OThYT....YY.ht
24220: 34686868 6868400d 74460d68 74686868 hhh4.@hhh.Fthhht
24230: 74460d0d 46746868 46746874 0d0d3434 ..FthhtFthtF44..
24240: c80dc80d 1e1e7779 e9e9381e 4ee9e9e9 ....yw...8.....N
24250: 00480c0c 00000000 00000070 00000000 ..H.....p.......
24260: 00000000 fd000000 00001548 70707000 ........H....ppp
24270: 70707070 70707070 70707070 70707070 pppppppppppppppp
24280: 361f7070 70363636 36707070 15cb36cf pp.6666pppp6.6..
24290: 73071548 48154a1c 48484848 4e484848 H..s.J.HHHHHHHHN
242a0: 00703612 00000000 00000000 00000000 .6p.............
...
242b8: 70700000 70707070 70707070 36364f4f ..ppppppppppOO66
242c8: cfcf3636 24387454 54541e94 12595959 66..Tt8$..TTYYY.
242d8: 68687474 6831f640 68686868 74686874 tthh@.1hhhhhthht
242e8: 68747474 68687468 74686868 0d464646 ttthhthhhhhtFFF.
242f8: 79c80d0d 387731f6 e9e9e938 0c0ce9e9 ...y.1w88.......
24308: 0069cdcd 00000000 00007000 00000000 ..i......p......
...
24320: 001548fd 70700000 70707070 70707070 .H....pppppppppp
24330: 70707070 70707070 36367070 4f543636 pppppppppp6666TO
24340: 48707070 15cb3636 73ff4acb 48481507 pppH66...J.s..HH
24350: 48484848 cb484848 70704f12 00000000 HHHHHHH..Opp....
...
24370: 70000000 70707070 701f1f70 36361f70 ...pppppp..pp.66
24380: cf363636 5a4ecdcf cd3b38e6 5959593b 666...NZ.8;.;YYY
24390: 68747412 3487f634 68686834 74747468 .tth4..44hhhhttt
243a0: 74747474 68687474 74746868 46467468 tttttthhhhtthtFF
243b0: 31c8c80d 1ec8f616 e9e9e91e cd0ce9e9 ...1............
243c0: cbcdcdcd 00000000 00000000 00000000 ................
243d0: 70700000 00000070 4848fd48 48000000 ..ppp...H.HH...H
243e0: 70707070 70707070 70707070 70707070 pppppppppppppppp
243f0: 36367070 59684f36 48484836 cb15cb36 pp666OhY6HHH6...
24400: 63736315 48154815 48484848 48484848 .csc.H.HHHHHHHHH
24410: 7070cdcd 00000000 00000000 00000000 ..pp............
...
2442c: 361f1f70 36361f1f 1f1f1f1f cf363636 p..6..66....666.
2443c: 32e9cfcf cd54e932 59543b3b 74746859 ...22.T.;;TYYhtt
2444c: 34877968 68686868 74746868 68686868 hy.4hhhhhhtthhhh
2445c: 68686874 74746868 74747468 79c80d74 thhhhhtthtttt..y
2446c: 7479165d e9e9e91e cd0c0c0c cdcdcdcd ].yt............
2447c: 00000048 00000000 70000000 36363636 H..........p6666
2448c: 00363636 48151500 00000000 70707048 666....H....Hppp
2449c: 70707070 70707070 70707070 36484870 pppppppppppppHH6
244ac: 34684f36 4848484f 15151548 4aff73ca 6Oh4OHHHH....s.J
244bc: 48481548 70704848 48487070 0048cd36 H.HHHHppppHH6.H.
...
244e4: 361f1f00 36363636 36363636 36363636 ...6666666666666
244f4: e66dcfcb 59544e5a 543b3b54 74125959 ..m.ZNTYT;;TYY.t
24504: 34406874 68686868 68686868 68686868 th@4hhhhhhhhhhhh
24514: 68121268 74741212 74686874 c80d7474 h..h..ttthhttt..
24524: 77e816f6 0ce9e91e cd0c0c0c cfcdcdcd ...w............
24534: 00007069 00000000 cb000000 36cbcfcf ip.............6
24544: 48703636 48fd0070 00000015 70704800 66pHp..H.....Hpp
24554: 70707070 70707070 70707070 36487070 ppppppppppppppH6
24564: 7e593636 48363654 fdcb1548 15fa901c 66Y~T66HH.......
24574: 48481515 70704848 70707070 00363648 ..HHHHppppppH66.
...
2459c: 1f1f0000 3636361f 36363636 36363636 .....66666666666
245ac: 576d4f36 54cf4e24 3b3b5974 12595954 6OmW$N.TtY;;TYY.
245bc: 68747474 68686868 12686812 12747474 ttthhhhh.hh.ttt.
245cc: 12121274 74121212 12127474 c8747412 t......ttt...tt.
245dc: c8871606 0ce9381e cdcdcd0c cfcfcfcd .....8..........
245ec: 0000cbcf 00000000 36000000 36cbcfcf ...........6...6
245fc: 48363636 fd707048 00004848 70700000 666HHpp.HH....pp
2460c: 70707070 70487070 48707070 48487048 ppppppHppppHHpHH
2461c: 7e543636 cb36cf68 071515cb 484aff73 66T~h.6.....s.JH
2462c: 48484815 70707048 70707070 70707070 .HHHHppppppppppp
...
24654: 1f000000 361f1f1f 36363636 36363636 .......666666666
24664: 57e93636 cfcd548c cd5454cf 59543b4f 66.W.T...TT.O;TY
24674: 74747459 12686868 12686812 38743812 Yttthhh..hh..8t8
24684: 12121212 12121212 12383812 74741212 .........88...tt
24694: c8f61613 0ce9381e cfcdcdcd cfcfcfcf .....8..........
246a4: 0048cfcf 00000000 70000000 cbcbcfcf ..H........p....
246b4: 483636cb 48704848 007048fd 70000000 .66HHHpH.Hp....p
246c4: 70707070 70707070 70707070 48484870 pppppppppppppHHH
246d4: 343b3636 cbcbcd68 1cfd4815 1515fa22 66;4h....H.."...
246e4: 48484815 70707048 70707070 00707070 .HHHHpppppppppp.
...
24710: 1f36361f 3636361f 36363636 e60c3636 .66..666666666..
24720: cdcfcded cfcfcfcf 3b4f4fcf 38121254 .........OO;T..8
24730: 12121238 12686812 12121212 12121212 8....hh.........
24740: 12121212 12125959 12121212 c8f6f60d ....YY..........
24750: 0ce93838 cfcfcdcd cfcfcfcf 70cfcfcf 88.............p
...
24768: cbcbcfcb 363636cb 70484848 004815fd .....666HHHp..H.
24778: 00000000 70707070 70707070 70707070 ....pppppppppppp
24788: 48487070 68cf3648 cbcb5402 7307cbcb ppHHH6.h.T.....s
24798: 1548fdff 70484848 70707070 70707070 ..H.HHHppppppppp
247a8: 00707070 00000000 00000000 00000000 ppp.............
...
247c8: 36363600 1f36361f 36361f1f edcd3636 .666.66...6666..
247d8: cf4f0c32 cfcfcfcf 3b4f54cf 12593b3b 2.O......TO;;;Y.
247e8: 12121212 12681212 12121259 12123838 ......h.Y...88..
247f8: 59121212 59595912 59595959 77310d12 ...Y.YYYYYYY..1w
24808: 0ce94e12 cfcfcfcd cfcfcfcf 36cfcfcf .N.............6
...
24820: cbcfcf70 36363636 48484848 4848fd70 p...6666HHHHp.HH
24830: 00000000 70707000 48707070 70707070 .....ppppppHpppp
24840: 48707070 59364848 69695402 226315cb pppHHH6Y.Tii..c"
24850: 151515fa 70484848 70707070 70707070 ....HHHppppppppp
24860: 70707070 00000000 00000000 00000000 pppp............
...
24880: 1f1f0000 1f361f1f 1f1f1f36 9bcf3636 ......6.6...66..
24890: cf366d57 cfcfcfcf 3636cfcf 593b4f36 Wm6.......666O;Y
248a0: 59121212 59125959 12121212 12121212 ...YYY.Y........
248b0: 59121212 54595959 54545454 4e125454 ...YYYYTTTTTTT.N
248c0: cd0c4e4e cfcfcfcf cfcfcfcf cb3636cb NN...........66.
248d0: 00000048 00000000 cbcfcb00 483636cb H............66H
248e0: 48484848 48fd4870 00000048 70700000 HHHHpH.HH.....pp
248f0: 70707070 70707048 70707070 cd484848 ppppHpppppppHHH.
24900: 69695968 7397eccb 4815484a 70704848 hYii...sJH.HHHpp
24910: 70707070 70707070 70707070 00000070 ppppppppppppp...
...
24938: 1f000000 1f1f1f1f 361f1f1f 891f361f ...........6.6..
24948: cb1f7857 cdcfcbcf 54cfcfcf 3b3b4fcd Wx.........T.O;;
24958: 59121259 59595959 59126812 59595959 Y..YYYYY.h.YYYYY
24968: 54595959 54545454 54545454 54545454 YYYTTTTTTTTTTTTT
24978: cdcdcd54 cfcfcfcf cbcbcbcf 363636cb T............666
24988: 00007036 00000000 cbcf7000 703636cb 6p.......p...66p
24998: 48487070 15157048 00007048 70000000 ppHHHp..Hp.....p
249a8: 70707070 70707070 70707070 36484870 pppppppppppppHH6
249b8: 15695454 6373cacb 48484815 70484848 TTi...sc.HHHHHHp
249c8: 70707070 70707070 00000070 00000000 ppppppppp.......
...
249f4: 70707070 1f707070 2d1f361f 364f9781 ppppppp..6.-..O6
24a04: cd4f3636 cf69cfcd 4f4f4fcd 125959cd 66O...i..OOO.YY.
24a14: 59595959 59121259 54545959 54545454 YYYYY..YYYTTTTTT
24a24: 54545454 54545454 cdcd5454 cfcdcdcd TTTTTTTTTT......
24a34: 4f4fcfcf 36363636 36363636 00003636 ..OO6666666666..
24a44: 00000000 cb360000 483636cb 48707048 ......6..66HHppH
24a54: fd704848 00004848 00000000 70707070 HHp.HH......pppp
24a64: 70707070 70707070 48487070 cbcbcf36 ppppppppppHH6...
24a74: ca736315 48481548 70707048 70707070 .cs.H.HHHppppppp
24a84: 70707070 00000070 00000000 00000000 ppppp...........
...
24aac: 70707000 70707070 cf1f1f70 1f692273 .pppppppp...s"i.
24abc: 36363636 cd69cf4f 36cf4e0c 5954cf36 6666O.i..N.66.TY
24acc: 54595959 54545459 54545454 54544e54 YYYTYTTTTTTTTNTT
24adc: 54545454 54545454 3bcdcd3b 4f4f3b3b TTTTTTTT;..;;;OO
24aec: 364f4f4f 36363636 36363636 00703636 OOO66666666666p.
24afc: 00000000 36000000 483636cb 48484848 .......6.66HHHHH
24b0c: 48484848 0048484a 00000000 70707000 HHHHJHH......ppp
24b1c: 70707070 70707070 48707070 cbcbcb48 pppppppppppHH...
24b2c: fd1c1cec 48481548 70707070 70707070 ....H.HHpppppppp
24b3c: 00707070 00000070 00000000 00000000 ppp.p...........
...
24b64: 70700000 70707070 1f707070 7091ed91 ..ppppppppp....p
24b74: 36361f70 0ccdcf36 cd2b2b0c cdcf4fcf p.666....++..O..
24b84: 54545454 54545454 54545454 54545454 TTTTTTTTTTTTTTTT
24b94: 54545454 3b54cd54 4fa9a9a9 1f1fa91f TTTTT.T;...O....
24ba4: 1f1f701f 361f1f1f 36361f1f 00701f36 .p.....6..666.p.
24bb4: 00000000 70000000 48363636 48704848 .......p666HHHpH
24bc4: 70484848 4848fd48 00000000 70480000 HHHpH.HH......Hp
24bd4: 70707048 70707070 48707070 cbcb4848 HppppppppppHHH..
24be4: 15631c4a 48484848 70707070 70707070 J.c.HHHHpppppppp
24bf4: 00000000 70007000 00000000 00000000 .....p.p........
...
24c1c: 70000000 70707070 70707070 361cff69 ...pppppppppi..6
24c2c: 36707070 cdcd3636 1e6eab0c 4f3636cf ppp666....n..66O
24c3c: 545454cf 54545454 54545454 54545454 .TTTTTTTTTTTTTTT
24c4c: 3b3b3b3b a93b3b3b 701f1f1f 70707070 ;;;;;;;....ppppp
24c5c: 70707070 701f1f70 70707070 70707070 ppppp..ppppppppp
...
24c74: 36367070 48484870 48487070 4815fd70 pp66pHHHppHHp..H
24c84: 00000070 70000000 70707070 70707070 p......ppppppppp
24c94: 48707070 48cb4848 48071c4a 70484848 pppHHH.HJ..HHHHp
24ca4: 00000070 00007000 00000000 00007000 p....p.......p..
...
24cd8: 70707070 70707070 4affca70 70707070 ppppppppp..Jpppp
24ce8: cf363636 0e6ee9cd 3636cf0c 54544f36 666...n...666OTT
24cf8: 3bcdcd54 cdcdcdcd 3b54cd3b 3b3b3b3b T..;....;.T;;;;;
24d08: 1f3b3b3b 7070701f 70707070 00007000 ;;;..ppppppp.p..
24d18: 70700000 70707070 00707070 00000000 ..ppppppppp.....
24d28: 00000000 48707000 70484848 48484848 .....ppHHHHpHHHH
24d38: 48fd0048 00000048 70000000 70707070 H..HH......ppppp
24d48: 70700070 48707070 48484848 484a634a p.pppppHHHHHJcJH
24d58: 70704848 00000070 00007070 00000070 HHppp...pp..p...
24d68: 00707000 00000000 00000000 00000000 .pp.............
...
24d90: 70707000 70707070 91633670 70707036 .pppppppp6c.6ppp
24da0: 36367070 b5670ccf 36cdcdab 3b4f3636 pp66..g....666O;
24db0: 3b3b3bcd 3b3b3b3b 4f3b3b3b 1f1fa94f .;;;;;;;;;;OO...
24dc0: 701fa9a9 70707070 00707070 00000000 ...pppppppp.....
24dd0: 00000000 00707000 00700000 00000000 .....pp...p.....
24de0: 00000000 70700000 70704870 70487070 ......pppHppppHp
24df0: 4a707048 00004848 00000000 00707000 HppJHH.......pp.
24e00: 00000000 70707000 48484848 48fd634a .....pppHHHHJc.H
24e10: 70704848 00007070 00000000 00000000 HHpppp..........
24e20: 70700000 00000070 00000000 00000000 ..ppp...........
...
24e48: 70700000 70707070 63ec7000 707070ec ..pppppp.p.c.ppp
24e58: 36707070 6e4e4f36 cf690c87 4f1f7036 ppp66ONn..i.6p.O
24e68: 3b3b3b3b a9080808 70a9a91f 1f707070 ;;;;.......pppp.
24e78: 7070701f 00707070 00000070 00000000 .pppppp.p.......
...
24e9c: 70000000 70707070 70707070 48007070 ...ppppppppppp.H
24eac: 007070fd 00000000 00700000 00000000 .pp.......p.....
24ebc: 70700000 48484848 4815fa4a 00704848 ..ppHHHHJ..HHHp.
24ecc: 00007000 00000000 00000000 70700000 .p............pp
24edc: 00007036 00000000 00000000 00000000 6p..............
...
24f00: 70000000 00707070 4a700000 000036fa ...pppp...pJ.6..
24f10: 70700000 2a363670 4f4f1e6e 70707036 ..ppp66*n.OO6ppp
24f20: 1f4f4f1f 1f1fa91f 70700070 70707070 .OO.....p.pppppp
24f30: 70707070 00707070 00000000 00000000 ppppppp.........
24f40: 00000000 00007000 00000000 00000000 .....p..........
...
24f58: 70707000 70707070 00707070 00701515 .pppppppppp...p.
...
24f74: 70700000 48484848 48154a4a 00704848 ..ppHHHHJJ.HHHp.
...
24f90: 70700000 00704f36 00000000 00000000 ..pp6Op.........
...
24fbc: 00007070 70000000 00704a4a 70000000 pp.....pJJp....p
24fcc: 36367070 4f4fab67 70703636 1f1f7070 pp66g.OO66pppp..
24fdc: 00707070 70707000 70707070 70707070 ppp..ppppppppppp
24fec: 70707070 00000000 00000000 00000000 pppp............
24ffc: 00700000 00000000 00000000 00000000 ..p.............
2500c: 00000000 70000000 00007070 00000000 .......ppp......
2501c: 70481500 00000000 00000000 00000000 ..Hp............
2502c: 70000000 48484848 48484afd 00007048 ...pHHHH.JHHHp..
...
25048: 70000000 00363b70 00000000 00000000 ...pp;6.........
...
25074: 00707000 00000000 70154a70 00000000 .pp.....pJ.p....
25084: 70707000 36364e4f 70703636 70707070 .pppON6666pppppp
25094: 70707070 00000070 70707000 70707070 ppppp....ppppppp
250a4: 00707070 00000000 00000000 00000000 ppp.............
...
250d4: 00150000 00000000 00000000 00000000 ................
250e4: 70000000 48484870 4848fdfd 00007048 ...ppHHH..HHHp..
...
25100: 70000000 703b4f70 00000000 00000000 ...ppO;p........
...
25134: cb4a4800 00000000 70700000 36707070 .HJ.......ppppp6
25144: 7070701f 70707070 70707070 00007070 .ppppppppppppp..
25154: 00000000 70000000 00000000 00000000 .......p........
...
2518c: 48700000 00000000 00000000 00000000 ..pH............
2519c: 00000000 48484870 4848fdfd 00007048 ....pHHH..HHHp..
...
251bc: 364f1f70 00000070 00000000 00000000 p.O6p...........
...
251ec: fd480000 00000048 00000000 70707070 ..H.H.......pppp
251fc: 70707070 70000070 70707070 00707070 ppppp..pppppppp.
...
25258: 48487070 48481515 00000070 00000000 ppHH..HHp.......
...
25274: 4f4f7000 00000070 00000000 00000000 .pOOp...........
...
252a4: 48000000 00004848 00000000 70000000 ...HHH.........p
252b4: 70707070 00000070 70707000 00000070 ppppp....pppp...
...
25310: 48487000 48481515 00000070 00000000 .pHH..HHp.......
...
2532c: 4f1f0000 0000001f 00000000 00000000 ...O............
...
2535c: 70000000 70484848 00000000 00000000 ...pHHHp........
2536c: 70000000 00000000 70000000 00000070 ...p.......pp...
...
253c8: 48700000 48481515 00000070 00000000 ..pH..HHp.......
...
253e4: 36700000 00007036 00000000 00000000 ..p66p..........
...
25418: 48484870 00000000 00000000 00000000 pHHH............
...
25480: 70000000 70481548 00000070 00000000 ...pH.Hpp.......
...
2549c: 70000000 00007036 00000000 00000000 ...p6p..........
...
254cc: 6c6c6548 6f57206f 00646c72 42000800 Hello World....B
254dc: 42000c00 42001000 42001400 42001800 ...B...B...B...B
254ec: 42001c00 00000ed2 00000ece 00000ece ...B............
254fc: 00000f34 00000f34 00000ee6 00000ed8 4...4...........
2550c: 00000eec 00000f22 000010f4 000010d4 ...."...........
2551c: 000010d4 00001160 000010e6 00001102 ....`...........
2552c: 000010d8 00001110 00001150 ........P...
00025538 <__func__.8431>:
25538: 645f766c 67756265 676f6c5f 7272655f lv_debug_log_err
25548: 0000726f or..
0002554c <hex.8421>:
2554c: 33323130 37363534 42413938 46454443 0123456789ABCDEF
2555c: 00000000 732f2e2e 412f6372 742f4653 ....../src/ASF/t
2556c: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
2557c: 6c2f6372 6f635f76 6c2f6572 65645f76 rc/lv_core/lv_de
2558c: 2e677562 00000063 645f766c 67756265 bug.c...lv_debug
2559c: 6568635f 735f6b63 203a7274 6f6e2061 _check_str: a no
255ac: 53412d6e 20494943 72616863 73616820 n-ASCII char has
255bc: 70657220 65746165 6f6d2064 74206572 repeated more t
255cc: 206e6168 445f564c 47554245 5254535f han LV_DEBUG_STR
255dc: 58414d5f 5045525f 20544145 656d6974 _MAX_REPEAT time
255ec: 00002973 645f766c 67756265 6568635f s)..lv_debug_che
255fc: 735f6b63 203a7274 61766e69 2064696c ck_str: invalid
2560c: 72616863 206e6920 20656874 69727473 char in the stri
2561c: 2820676e 3031203c 6c617620 00296575 ng (< 10 value).
2562c: 645f766c 67756265 6568635f 735f6b63 lv_debug_check_s
2563c: 203a7274 69727473 6920676e 6f6c2073 tr: string is lo
2564c: 7265676e 61687420 564c206e 4245445f nger than LV_DEB
2565c: 535f4755 4d5f5254 4c5f5841 54474e45 UG_STR_MAX_LENGT
2566c: 00000048 H...
00025670 <__func__.8384>:
25670: 645f766c 5f707369 5f746567 5f726373 lv_disp_get_scr_
25680: 00746361 act.
00025684 <__func__.8392>:
25684: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
25694: 6f745f72 00000070 r_top...
0002569c <__func__.8396>:
2569c: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
256ac: 79735f72 00000073 6c5f766c 72657961 r_sys...lv_layer
256bc: 7379735f 6f6e203a 73696420 79616c70 _sys: no display
256cc: 67657220 65747369 20646572 67206f74 registered to g
256dc: 69207465 73207374 202e7379 6579616c et its sys. laye
256ec: 00000072 6c5f766c 72657961 706f745f r...lv_layer_top
256fc: 6f6e203a 73696420 79616c70 67657220 : no display reg
2570c: 65747369 20646572 67206f74 69207465 istered to get i
2571c: 74207374 6c20706f 72657961 00000000 ts top layer....
2572c: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
2573c: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
2574c: 6f635f76 6c2f6572 69645f76 632e7073 v_core/lv_disp.c
2575c: 00000000 735f766c 615f7263 203a7463 ....lv_scr_act:
2576c: 64206f6e 6c707369 72207961 73696765 no display regis
2577c: 65726574 6f742064 74656720 73746920 tered to get its
2578c: 74636120 6373202e 6e656572 00000000 act. screen....
0002579c <__func__.8629>:
2579c: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj
257ac: 00000000 675f766c 70756f72 6464615f ....lv_group_add
257bc: 6a626f5f 6874203a 626f2065 7463656a _obj: the object
257cc: 20736920 65726c61 20796461 65646461 is already adde
257dc: 6f742064 69687420 72672073 0070756f d to this group.
257ec: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj
257fc: 7361203a 6e676973 6a626f20 20746365 : assign object
2580c: 61206f74 746f206e 20726568 756f7267 to an other grou
2581c: 00000070 732f2e2e 412f6372 742f4653 p...../src/ASF/t
2582c: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
2583c: 6c2f6372 6f635f76 6c2f6572 72675f76 rc/lv_core/lv_gr
2584c: 2e70756f 00000063 2074754f 6d20666f oup.c...Out of m
2585c: 726f6d65 f8000079 00002cde 00002d5a emory....,..Z-..
2586c: 00002d64 00002d7a 00002d8a 00002d9a d-..z-...-...-..
2587c: 00002db8 00002dd0 00002de6 00002e04 .-...-...-......
2588c: 00002e0e 00002e24 00002e34 00002e44 ....$...4...D...
2589c: 00002e62 00002e7a 00002e84 00002e9a b...z...........
258ac: 00002eaa 00002eba 00002ed8 0000ffff ................
000258bc <__func__.8789>:
258bc: 695f766c 0074696e lv_init.
000258c4 <__func__.8803>:
258c4: 6f5f766c 635f6a62 74616572 00000065 lv_obj_create...
000258d4 <__func__.8810>:
258d4: 6f5f766c 645f6a62 00006c65 lv_obj_del..
000258e0 <__func__.8837>:
258e0: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
258f0: 72615f65 00006165 e_area..
000258f8 <__func__.8852>:
258f8: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
25908: 00000065 e...
0002590c <__func__.8870>:
2590c: 6f5f766c 6d5f6a62 5f65766f 65726f66 lv_obj_move_fore
2591c: 756f7267 0000646e ground..
00025924 <__func__.8884>:
25924: 6f5f766c 735f6a62 705f7465 0000736f lv_obj_set_pos..
00025934 <__func__.8893>:
25934: 6f5f766c 735f6a62 785f7465 00000000 lv_obj_set_x....
00025944 <__func__.8899>:
25944: 6f5f766c 735f6a62 795f7465 00000000 lv_obj_set_y....
00025954 <__func__.8906>:
25954: 6f5f766c 735f6a62 735f7465 00657a69 lv_obj_set_size.
00025964 <__func__.8924>:
25964: 6f5f766c 735f6a62 685f7465 68676965 lv_obj_set_heigh
25974: 00000074 t...
00025978 <__func__.8957>:
25978: 6f5f766c 615f6a62 6e67696c 00000000 lv_obj_align....
00025988 <__func__.8971>:
25988: 6f5f766c 615f6a62 6e67696c 69726f5f lv_obj_align_ori
25998: 00006f67 go..
0002599c <__func__.9008>:
2599c: 6f5f766c 725f6a62 696c6165 00006e67 lv_obj_realign..
000259ac <__func__.9037>:
259ac: 6f5f766c 635f6a62 6e61656c 7974735f lv_obj_clean_sty
259bc: 6c5f656c 00747369 le_list.
000259c4 <__func__.9082>:
259c4: 6f5f766c 725f6a62 65726665 735f6873 lv_obj_refresh_s
259d4: 656c7974 00000000 tyle....
000259dc <__func__.9151>:
259dc: 6f5f766c 735f6a62 615f7465 685f7664 lv_obj_set_adv_h
259ec: 65747469 00007473 ittest..
000259f4 <__func__.9157>:
259f4: 6f5f766c 735f6a62 635f7465 6b63696c lv_obj_set_click
25a04: 00000000 ....
00025a08 <__func__.9220>:
25a08: 6f5f766c 735f6a62 735f7465 65746174 lv_obj_set_state
25a18: 00000000 ....
00025a1c <__func__.9243>:
25a1c: 6f5f766c 615f6a62 735f6464 65746174 lv_obj_add_state
25a2c: 00000000 ....
00025a30 <__func__.9250>:
25a30: 6f5f766c 635f6a62 7261656c 6174735f lv_obj_clear_sta
25a40: 00006574 te..
00025a44 <__func__.9272>:
25a44: 655f766c 746e6576 6e65735f 00000064 lv_event_send...
00025a54 <__func__.9281>:
25a54: 655f766c 746e6576 6e65735f 75665f64 lv_event_send_fu
25a64: 0000636e nc..
00025a68 <__func__.9294>:
25a68: 6f5f766c 735f6a62 735f7465 616e6769 lv_obj_set_signa
25a78: 62635f6c 00000000 l_cb....
00025a80 <__func__.9306>:
25a80: 6f5f766c 735f6a62 645f7465 67697365 lv_obj_set_desig
25a90: 62635f6e 00000000 n_cb....
00025a98 <__func__.9312>:
25a98: 6f5f766c 615f6a62 636f6c6c 5f657461 lv_obj_allocate_
25aa8: 5f747865 72747461 00000000 ext_attr....
00025ab4 <__func__.9318>:
25ab4: 6f5f766c 725f6a62 65726665 655f6873 lv_obj_refresh_e
25ac4: 645f7478 5f776172 00646170 xt_draw_pad.
00025ad0 <__func__.9323>:
25ad0: 6f5f766c 675f6a62 735f7465 65657263 lv_obj_get_scree
25ae0: 0000006e n...
00025ae4 <__func__.9332>:
25ae4: 6f5f766c 675f6a62 645f7465 00707369 lv_obj_get_disp.
00025af4 <__func__.9346>:
25af4: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren
25b04: 00000074 t...
00025b08 <__func__.9352>:
25b08: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child
25b18: 00000000 ....
00025b1c <__func__.9386>:
25b1c: 6f5f766c 675f6a62 635f7465 64726f6f lv_obj_get_coord
25b2c: 00000073 s...
00025b30 <__func__.9399>:
25b30: 6f5f766c 675f6a62 785f7465 00000000 lv_obj_get_x....
00025b40 <__func__.9406>:
25b40: 6f5f766c 675f6a62 795f7465 00000000 lv_obj_get_y....
00025b50 <__func__.9413>:
25b50: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width
25b60: 00000000 ....
00025b64 <__func__.9418>:
25b64: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh
25b74: 00000074 t...
00025b78 <__func__.9581>:
25b78: 6f5f766c 675f6a62 685f7465 65646469 lv_obj_get_hidde
25b88: 0000006e n...
00025b8c <__func__.9627>:
25b8c: 6f5f766c 675f6a62 625f7465 5f657361 lv_obj_get_base_
25b9c: 00726964 dir.
00025ba0 <__func__.9638>:
25ba0: 6f5f766c 695f6a62 72705f73 6365746f lv_obj_is_protec
25bb0: 00646574 ted.
00025bb4 <__func__.9644>:
25bb4: 6f5f766c 675f6a62 735f7465 65746174 lv_obj_get_state
25bc4: 00000000 ....
00025bc8 <__func__.9650>:
25bc8: 6f5f766c 675f6a62 735f7465 616e6769 lv_obj_get_signa
25bd8: 62635f6c 00000000 l_cb....
00025be0 <__func__.9665>:
25be0: 6f5f766c 675f6a62 655f7465 615f7478 lv_obj_get_ext_a
25bf0: 00727474 ttr.
00025bf4 <__func__.9686>:
25bf4: 6f5f766c 675f6a62 675f7465 70756f72 lv_obj_get_group
25c04: 00000000 ....
00025c08 <__func__.9691>:
25c08: 6f5f766c 695f6a62 6f665f73 65737563 lv_obj_is_focuse
25c18: 00000064 d...
00025c1c <__func__.9877>:
25c1c: 6e617274 72635f73 65746165 00000000 trans_create....
25c2c: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
25c3c: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
25c4c: 6f635f76 6c2f6572 626f5f76 00632e6a v_core/lv_obj.c.
25c5c: 695f766c 3a74696e 726c6120 79646165 lv_init: already
25c6c: 696e6920 00646574 695f766c 2074696e inited.lv_init
25c7c: 64616572 00000079 6f5f766c 635f6a62 ready...lv_obj_c
25c8c: 6e61656c 7974735f 6c5f656c 3a747369 lean_style_list:
25c9c: 6e616320 66207427 20646e69 6c797473 can't find styl
25cac: 69772065 60206874 74726170 00000060 e with `part`...
25cbc: 6f5f766c 635f6a62 74616572 6e203a65 lv_obj_create: n
25ccc: 6420746f 6c707369 63207961 74616572 ot display creat
25cdc: 74206465 6f73206f 72616620 6f4e202e ed to so far. No
25cec: 616c7020 74206563 7361206f 6e676973 place to assign
25cfc: 65687420 77656e20 72637320 006e6565 the new screen.
25d0c: 656a624f 63207463 74616572 65722065 Object create re
25d1c: 00796461 4c4c554e 696f7020 7265746e ady.NULL pointer
25d2c: 00000000 735f766c 675f7263 645f7465 ....lv_scr_get_d
25d3c: 3a707369 72637320 206e6565 20746f6e isp: screen not
25d4c: 6e756f66 00000064 6f5f766c 735f6a62 found...lv_obj_s
25d5c: 705f7465 203a736f 20746f6e 6e616863 et_pos: not chan
25d6c: 676e6967 736f7020 6f697469 666f206e ging position of
25d7c: 72637320 206e6565 656a626f 00007463 screen object..
25d8c: 6f5f766c 00006a62 lv_obj..
00025d94 <__func__.8615>:
25d94: 725f766c 5f726665 61657261 00000000 lv_refr_area....
25da4: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
25db4: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
25dc4: 6f635f76 6c2f6572 65725f76 632e7266 v_core/lv_refr.c
25dd4: 00000000 276e6143 65732074 44562074 ....Can't set VD
25de4: 65682042 74686769 69737520 7420676e B height using t
25df4: 72206568 646e756f 6e756620 6f697463 he round functio
25e04: 28202e6e 6e6f7257 6f722067 5f646e75 n. (Wrong round_
25e14: 6f206263 6f742072 616d7320 56206c6c cb or to small V
25e24: 00294244 DB).
00025e28 <__func__.8409>:
25e28: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
25e38: 735f6464 656c7974 00000000 dd_style....
00025e44 <__func__.8426>:
25e44: 5f766c5f 6c797473 696c5f65 725f7473 _lv_style_list_r
25e54: 766f6d65 74735f65 00656c79 emove_style.
00025e60 <__func__.8460>:
25e60: 5f766c5f 6c797473 65735f65 6e695f74 _lv_style_set_in
25e70: 00000074 t...
00025e74 <__func__.8474>:
25e74: 5f766c5f 6c797473 65735f65 6f635f74 _lv_style_set_co
25e84: 00726f6c lor.
00025e88 <__func__.8488>:
25e88: 5f766c5f 6c797473 65735f65 706f5f74 _lv_style_set_op
25e98: 00000061 a...
00025e9c <__func__.8502>:
25e9c: 5f766c5f 6c797473 65735f65 74705f74 _lv_style_set_pt
25eac: 00000072 r...
00025eb0 <__func__.8550>:
25eb0: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
25ec0: 745f6464 736e6172 7974735f 0000656c dd_trans_style..
00025ed0 <__func__.8654>:
25ed0: 5f746567 6f6c6c61 6f6c5f63 5f6c6163 get_alloc_local_
25ee0: 6c797473 00000065 735f766c 656c7974 style...lv_style
25ef0: 73696c5f 64615f74 74735f64 3a656c79 _list_add_style:
25f00: 756f6320 276e646c 64612074 68742064 couldn't add th
25f10: 6c632065 00737361 735f766c 656c7974 e class.lv_style
25f20: 73696c5f 64615f74 72745f64 5f736e61 _list_add_trans_
25f30: 6c797473 63203a65 646c756f 2074276e style: couldn't
25f40: 61657263 74206574 736e6172 6f697469 create transitio
25f50: 7473206e 00656c79 732f2e2e 412f6372 n style.../src/A
25f60: 742f4653 64726968 74726170 766c2f79 SF/thirdparty/lv
25f70: 732f6c67 6c2f6372 6f635f76 6c2f6572 gl/src/lv_core/l
25f80: 74735f76 2e656c79 00000063 735f766c v_style.c...lv_s
25f90: 656c7974 73696c5f 65725f74 65766f6d tyle_list_remove
25fa0: 7974735f 203a656c 6c756f63 74276e64 _style: couldn't
25fb0: 61657220 636f6c6c 20657461 73616c63 reallocate clas
25fc0: 696c2073 00007473 5f746567 61636f6c s list..get_loca
25fd0: 74735f6c 3a656c79 756f6320 276e646c l_style: couldn'
25fe0: 72632074 65746165 636f6c20 73206c61 t create local s
25ff0: 656c7974 00000000 tyle....
00025ff8 <__func__.8605>:
25ff8: 6c6c6966 656c625f 6465646e 00000000 fill_blended....
00026008 <__func__.8737>:
26008: 5f70616d 6e656c62 00646564 732f2e2e map_blended.../s
26018: 412f6372 742f4653 64726968 74726170 rc/ASF/thirdpart
26028: 766c2f79 732f6c67 6c2f6372 72645f76 y/lvgl/src/lv_dr
26038: 6c2f7761 72645f76 625f7761 646e656c aw/lv_draw_blend
26048: 0000632e 6c6c6966 656c625f 6465646e .c..fill_blended
26058: 6e75203a 70707573 6574726f 6c622064 : unsupported bl
26068: 20646e65 65646f6d 07e00000 000092b8 end mode........
26078: 000092bc 000092b8 000092c0 000092c4 ................
26088: 000092c8 000092cc 000092c0 000092c4 ................
26098: 000092c8 000092cc 0000ffff ............
000260a4 <__func__.8431>:
260a4: 645f766c 5f776172 00676d69 lv_draw_img.
000260b0 <__func__.8495>:
260b0: 695f766c 645f676d 5f776172 65726f63 lv_img_draw_core
260c0: 00000000 732f2e2e 412f6372 742f4653 ....../src/ASF/t
260d0: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
260e0: 6c2f6372 72645f76 6c2f7761 72645f76 rc/lv_draw/lv_dr
260f0: 695f7761 632e676d 00000000 67616d49 aw_img.c....Imag
26100: 72642065 203a7761 20637273 4e207369 e draw: src is N
26110: 004c4c55 640a6f4e 00617461 67616d49 ULL.No.data.Imag
26120: 72642065 65207761 726f7272 00000000 e draw error....
26130: 67616d49 72642065 63207761 74276e61 Image draw can't
26140: 61657220 68742064 696c2065 0000656e read the line..
26150: 000095e0 000095c8 000095cc 000095d0 ................
26160: 000095d4 000095d8 000000ff ............
0002616c <__func__.8491>:
2616c: 645f766c 5f776172 7474656c 00007265 lv_draw_letter..
0002617c <__func__.8518>:
2617c: 77617264 74656c5f 5f726574 6d726f6e draw_letter_norm
2618c: 00006c61 al..
00026190 <__func__.8573>:
26190: 77617264 74656c5f 5f726574 70627573 draw_letter_subp
261a0: 00000078 x...
000261a4 <_lv_bpp1_opa_table>:
261a4: 0000ff00 ....
000261a8 <_lv_bpp2_opa_table>:
261a8: ffaa5500 .U..
000261ac <_lv_bpp4_opa_table>:
261ac: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........
000261bc <_lv_bpp8_opa_table>:
261bc: 03020100 07060504 0b0a0908 0f0e0d0c ................
261cc: 13121110 17161514 1b1a1918 1f1e1d1c ................
261dc: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./
261ec: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>?
261fc: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO
2620c: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_
2621c: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno
2622c: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~.
2623c: 83828180 87868584 8b8a8988 8f8e8d8c ................
2624c: 93929190 97969594 9b9a9998 9f9e9d9c ................
2625c: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................
2626c: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................
2627c: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................
2628c: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................
2629c: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................
262ac: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................
262bc: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
262cc: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
262dc: 72645f76 6c2f7761 72645f76 6c5f7761 v_draw/lv_draw_l
262ec: 6c656261 0000632e 645f766c 5f776172 abel.c..lv_draw_
262fc: 7474656c 203a7265 746e6f66 20736920 letter: font is
2630c: 4c4c554e 00000000 645f766c 5f776172 NULL....lv_draw_
2631c: 7474656c 203a7265 70796c67 73642068 letter: glyph ds
2632c: 6e202e63 6620746f 646e756f 00000000 c. not found....
2633c: 645f766c 5f776172 7474656c 203a7265 lv_draw_letter:
2634c: 72616863 65746361 20732772 6d746962 character's bitm
2635c: 6e207061 6620746f 646e756f 00000000 ap not found....
2636c: 645f766c 5f776172 7474656c 203a7265 lv_draw_letter:
2637c: 61766e69 2064696c 20707062 20746f6e invalid bpp not
2638c: 6e756f66 00000064 645f766c 5f776172 found...lv_draw_
2639c: 7474656c 203a7265 61766e69 2064696c letter: invalid
263ac: 00707062 bpp.
000263b0 <wcorr.9246>:
263b0: 81808080 83828281 87868584 8d8c8a89 ................
263c0: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................
263d0: 000000b5 ....
000263d4 <__func__.8457>:
263d4: 645f766c 5f776172 6b73616d 6464615f lv_draw_mask_add
263e4: 00000000 732f2e2e 412f6372 742f4653 ....../src/ASF/t
263f4: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
26404: 6c2f6372 72645f76 6c2f7761 72645f76 rc/lv_draw/lv_dr
26414: 6d5f7761 2e6b7361 00000063 6d5f766c aw_mask.c...lv_m
26424: 5f6b7361 3a646461 206f6e20 63616c70 ask_add: no plac
26434: 6f742065 64646120 65687420 73616d20 e to add the mas
26444: 0000006b 0000ffff k.......
0002644c <__func__.8763>:
2644c: 77617264 7461705f 6e726574 00000000 draw_pattern....
2645c: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
2646c: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
2647c: 72645f76 6c2f7761 72645f76 725f7761 v_draw/lv_draw_r
2648c: 2e746365 00000063 77617264 676d695f ect.c...draw_img
2649c: 6163203a 2074276e 20746567 67616d69 : can't get imag
264ac: 6e692065 00006f66 695f766c 645f676d e info..lv_img_d
264bc: 67697365 69203a6e 6567616d 756f7320 esign: image sou
264cc: 20656372 65707974 20736920 6e6b6e75 rce type is unkn
264dc: 006e776f 33221100 77665544 bbaa9988 own..."3DUfw....
264ec: ffeeddcc ....
000264f0 <__func__.8405>:
264f0: 5f766c5f 5f676d69 68636163 706f5f65 _lv_img_cache_op
26500: 00006e65 en..
00026504 <__func__.8425>:
26504: 695f766c 635f676d 65686361 7465735f lv_img_cache_set
26514: 7a69735f 00000065 732f2e2e 412f6372 _size...../src/A
26524: 742f4653 64726968 74726170 766c2f79 SF/thirdparty/lv
26534: 732f6c67 6c2f6372 72645f76 6c2f7761 gl/src/lv_draw/l
26544: 6d695f76 61635f67 2e656863 00000063 v_img_cache.c...
26554: 695f766c 635f676d 65686361 65706f5f lv_img_cache_ope
26564: 74203a6e 63206568 65686361 7a697320 n: the cache siz
26574: 73692065 00003020 67616d69 72642065 e is 0..image dr
26584: 203a7761 68636163 696d2065 202c7373 aw: cache miss,
26594: 736f6c63 6e612065 65722064 20657375 close and reuse
265a4: 65206e61 7972746e 00000000 67616d69 an entry....imag
265b4: 72642065 203a7761 68636163 696d2065 e draw: cache mi
265c4: 202c7373 68636163 74206465 6e61206f ss, cached to an
265d4: 706d6520 65207974 7972746e 00000000 empty entry....
265e4: 67616d49 72642065 63207761 6f6e6e61 Image draw canno
265f4: 706f2074 74206e65 69206568 6567616d t open the image
26604: 73657220 6372756f 00000065 33221100 resource....."3
26614: 77665544 bbaa9988 ffeeddcc DUfw........
00026620 <__func__.8427>:
26620: 5f766c5f 5f676d69 6f636564 5f726564 _lv_img_decoder_
26630: 74696e69 00000000 init....
00026638 <__func__.8465>:
26638: 695f766c 645f676d 646f6365 635f7265 lv_img_decoder_c
26648: 74616572 00000065 reate...
00026650 <__func__.8496>:
26650: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
26660: 746c6975 5f6e695f 6f666e69 00000000 uilt_in_info....
00026670 <__func__.8503>:
26670: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
26680: 746c6975 5f6e695f 6e65706f 00000000 uilt_in_open....
00026690 <__func__.8533>:
26690: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
266a0: 746c6975 5f6e695f 64616572 6e696c5f uilt_in_read_lin
266b0: 00000065 e...
000266b4 <__func__.8550>:
266b4: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
266c4: 746c6975 5f6e695f 656e696c 7572745f uilt_in_line_tru
266d4: 6f635f65 00726f6c 695f766c 645f676d e_color.lv_img_d
266e4: 646f6365 695f7265 3a74696e 74756f20 ecoder_init: out
266f4: 20666f20 6f6d656d 00007972 732f2e2e of memory..../s
26704: 412f6372 742f4653 64726968 74726170 rc/ASF/thirdpart
26714: 766c2f79 732f6c67 6c2f6372 72645f76 y/lvgl/src/lv_dr
26724: 6c2f7761 6d695f76 65645f67 65646f63 aw/lv_img_decode
26734: 00632e72 67616d49 65672065 6e692074 r.c.Image get in
26744: 67206f66 72207465 20646165 656c6966 fo get read file
26754: 61656820 00726564 67616d49 65672065 header.Image ge
26764: 6e692074 66206f66 646e756f 6b6e7520 t info found unk
26774: 6e776f6e 63727320 70797420 00000065 nown src type...
26784: 006e6962 6c697542 6e692d74 616d6920 bin.Built-in ima
26794: 64206567 646f6365 63207265 74276e61 ge decoder can't
267a4: 65706f20 6874206e 69662065 0000656c open the file..
267b4: 5f676d69 6f636564 5f726564 6c697562 img_decoder_buil
267c4: 6e695f74 65706f5f 6f203a6e 6f207475 t_in_open: out o
267d4: 656d2066 79726f6d 00000000 67616d49 f memory....Imag
267e4: 65642065 65646f63 706f2072 203a6e65 e decoder open:
267f4: 6e6b6e75 206e776f 6f6c6f63 6f662072 unknown color fo
26804: 74616d72 00000000 6c697542 6e692d74 rmat....Built-in
26814: 616d6920 64206567 646f6365 73207265 image decoder s
26824: 206b6565 6c696166 00006465 6c697542 eek failed..Buil
26834: 6e692d74 616d6920 64206567 646f6365 t-in image decod
26844: 72207265 20646165 6c696166 00006465 er read failed..
26854: 6c697542 6e692d74 616d6920 64206567 Built-in image d
26864: 646f6365 72207265 20646165 20746f6e ecoder read not
26874: 70707573 7374726f 65687420 6c6f6320 supports the col
26884: 6620726f 616d726f 00000074 000101f2 or format.......
26894: 000101f8 0001018e 000101e0 000101e6 ................
268a4: 000101f2 000101f2 000101f2 000101ec ................
268b4: 00010438 0001043c 00010402 0001042c 8...<.......,...
268c4: 00010430 00010438 00010438 00010438 0...8...8...8...
268d4: 00010434 000103e2 000103e6 000103ac 4...............
268e4: 000103d6 000103da 000103e2 000103e2 ................
268f4: 000103e2 000103de 00010328 0001032c ........(...,...
26904: 00010302 0001031c 00010320 00010328 ........ ...(...
26914: 00010328 00010328 00010324 000104b0 (...(...$.......
26924: 00010504 0001050a 00010510 00010516 ................
26934: 0001051c 00010522 00010528 000105d8 ...."...(.......
26944: 000105dc 000105c8 000105cc 000105d0 ................
26954: 000105d8 000105d8 000105d8 000105d4 ................
26964: 00010838 0001083c 00010828 0001082c 8...<...(...,...
26974: 00010830 00010838 00010838 00010838 0...8...8...8...
26984: 00010834 000107b0 000107e0 000107a0 4...............
26994: 000107a4 000107a8 000107b0 000107b0 ................
269a4: 000107b0 000107ac 00010778 0001077e ........x...~...
269b4: 00010734 00010766 0001076c 00010778 4...f...l...x...
269c4: 00010778 00010778 00010772 000108b2 x...x...r.......
269d4: 0001090e 00010914 0001091a 00010920 ............ ...
269e4: 00010926 0001092c 00010932 &...,...2...
000269f0 <__func__.8529>:
269f0: 665f766c 5f746e6f 5f746567 6d746962 lv_font_get_bitm
26a00: 665f7061 745f746d 00007478 732f2e2e ap_fmt_txt..../s
26a10: 412f6372 742f4653 64726968 74726170 rc/ASF/thirdpart
26a20: 766c2f79 732f6c67 6c2f6372 6f665f76 y/lvgl/src/lv_fo
26a30: 6c2f746e 6f665f76 665f746e 745f746d nt/lv_font_fmt_t
26a40: 632e7478 00000000 xt.c....
00026a48 <cmaps>:
26a48: 00000020 0001005f 00000000 00000000 ..._...........
26a58: 00000000 000000b0 0060f7f3 0002a678 ..........`.x...
26a68: 00000000 0002003b ....;...
00026a70 <glyph_dsc>:
...
26a78: 04500000 00000000 04500000 00010c03 ..P.......P.....
26a88: 06400012 07010505 0b40001f 00000c0b ..@.......@.....
26a98: 09f00061 fe00100a 0d8000b1 00000c0d a...............
26aa8: 0b0000ff ff000d0b 03600147 07010502 ........G.`.....
26ab8: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p.....
26ac8: 06600188 05000707 095001a1 02010808 ..`.......P.....
26ad8: 03a001c1 fe000503 062001c9 03000306 .......... .....
26ae8: 03a001d2 00000303 05a001d7 feff1008 ................
26af8: 0ab00217 00000c0a 05f00253 00000c05 ........S.......
26b08: 09300271 00000c09 092002a7 00000c09 q.0....... .....
26b18: 0ab002dd 00000c0b 0930031f 00000c09 ..........0.....
26b28: 09e00355 00000c0a 09900391 00000c09 U...............
26b38: 0a5003c7 00000c0a 09e00403 00000c0a ..P.............
26b48: 03a0043f 00000903 03a0044d fd000c03 ?.......M.......
26b58: 0950045f 02010808 0950047f 03010608 _.P.......P.....
26b68: 09500497 02010808 093004b7 00000c09 ..P.......0.....
26b78: 109004ed fd000f10 0bb00565 00ff0c0d ........e.......
26b88: 0c2005b3 00010c0b 0b9005f5 00000c0b .. .............
26b98: 0d300637 00010c0c 0ac0067f 00010c09 7.0.............
26ba8: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`.....
26bb8: 0d000733 00010c0b 04f00775 00010c03 3.......u.......
26bc8: 08300787 00ff0c08 0b8007b7 00010c0b ..0.............
26bd8: 098007f9 00010c09 0f40082f 00010c0d ......../.@.....
26be8: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p.....
26bf8: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p.....
26c08: 0ba009b2 00010c0a 09f009ee 00000c0a ................
26c18: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f.......
26c28: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`.............
26c38: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`.....
26c48: 0a800bec 00000c0b 05500c2e fd010f05 ..........P.....
26c58: 05a00c54 feff1008 05500c94 fd000f04 T.........P.....
26c68: 09500cb2 02010708 08000cce fe000208 ..P.............
26c78: 09a00cd6 0a010205 09900cdb 00000909 ................
26c88: 0af00d04 00010c0a 09200d40 00000909 ........@. .....
26c98: 0af00d69 00000c0a 09d00da5 0000090a i...............
26ca8: 05a00dd2 00000c07 0b100dfc fd000c0a ................
26cb8: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p.....
26cc8: 04900e80 fdfe0f06 09e00ead 00010c09 ................
26cd8: 04700ee3 00010c02 10f00eef 0001090f ..p.............
26ce8: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0.....
26cf8: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................
26d08: 06901001 00010906 0800101c 00000908 ................
26d18: 06a01040 00000b07 0ad01067 00010909 @.......g.......
26d28: 08f01090 00ff090a 0e6010bd 0000090f ..........`.....
26d38: 08d01101 00000909 08f0112a fdff0c0a ........*.......
26d48: 08501166 00000908 05a0118a fd000f06 f.P.............
26d58: 04d011b7 fd010f03 05a011ce fd000f05 ................
26d68: 095011f4 04000509 06b0120b 06000606 ..P.............
26d78: 0500121d 03010403 10001223 fe001110 ........#.......
26d88: 100012ab 00000c10 1000130b ff000e10 ................
26d98: 1000137b 00000c10 0b0013db 00000c0b {...............
26da8: 1000141d fe001010 1000149d fe001010 ................
26db8: 1200151d ff000e12 1000159b fe001010 ................
26dc8: 1200161b 00000c12 10001687 fe001010 ................
26dd8: 08001707 ff000e08 0c00173f ff000e0c ........?.......
26de8: 12001793 fe001012 10001823 00000c10 ........#.......
26df8: 0e001883 fe02100a 0e0018d3 fd00120e ................
26e08: 0e001951 ff000f0e 0e0019ba ff000e0e Q...............
26e18: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l.......
26e28: 0a001adc ff000e0a 0a001b22 ff000e0a ........".......
26e38: 0e001b68 ff000e0e 0e001bca 0400040e h...............
26e48: 12001be6 00000c12 14001c52 fe001014 ........R.......
26e58: 12001cf2 feff1014 10001d92 fe001010 ................
26e68: 0e001e12 01000a0e 0e001e58 01000a0e ........X.......
26e78: 14001e9e ff000e14 10001f2a 00000c10 ........*.......
26e88: 10001f8a fe001010 1000200a feff1111 ......... ......
26e98: 0e00209b ff000e0f 0e002104 fe00100e . .......!......
26ea8: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!......
26eb8: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."......
26ec8: 12002316 00000c12 10002382 fdff1212 .#.......#......
26ed8: 0c002424 fe00100c 14002484 ff000f14 $$.......$......
26ee8: 1400251a 01000a14 1400257e 01000a14 .%......~%......
26ef8: 140025e2 01000a14 14002646 01000a14 .%......F&......
26f08: 140026aa 01000a14 1400270e ff000e15 .&.......'......
26f18: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(......
26f28: 10002871 fdff1111 14002902 00000c14 q(.......)......
26f38: 0c00297a fe00100c 102029da 01000b11 z).......) .....
00026f48 <gylph_bitmap>:
26f48: aff00bbf 089ee00a c0078cd0 bf100000 ................
26f58: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r...
26f68: e003c005 007a0000 0900005c 01a00780 ......z.\.......
26f78: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0.....
26f88: 0e100f00 f0020030 9f00f200 ffffffff ....0...........
26f98: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p..
26fa8: 79000000 00000000 00000079 20e9ff5c ...y....y...\..
26fb8: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y...
26fc8: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@..
26fd8: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../..
26fe8: ae03a0af 0000d7ff 00007900 00790000 .........y....y.
26ff8: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L.
27008: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P
27018: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<...
27028: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... <
27038: 0b003d00 09e20070 00d00680 00a0dd04 .=..p...........
27048: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}..
27058: a01cc00c ae3f0000 010000c1 0000c0df ......?.........
27068: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@...
27078: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0
27088: 000000a5 f5000000 72e4e4f5 f205da00 ...........r....
27098: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._
270a8: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0....
270b8: e900f601 ad00bc00 ad00ae00 e900bc00 ................
270c8: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+
270d8: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........
270e8: 10050000 500f0000 500f0000 511f0100 .......P...P...Q
270f8: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P
27108: fd520900 0fc5a00b 10110100 04f3ff1f ..R.............
27118: 12034044 00901efc 00f10500 00b00a00 D@..............
27128: 00600f00 00105f00 0000ab00 0000f600 ..`.._..........
27138: 0000f105 0000b00a 0000600f 0000104f .........`..O...
27148: 000000ac 040000f6 0a0000f1 0e0000c0 ................
27158: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............
27168: 00f50770 c00df20a 1ff80100 dc000080 p...............
27178: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`.........
27188: f80100c0 0a00f507 a8cf00f2 080070cf .............p..
27198: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0
271a8: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0.
271b8: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(.....
271c8: 00f20700 00af0000 804f0000 c03f0000 ..........O...?.
271d8: c13e0000 c12e0000 d12e0000 f82e0000 ..>.............
271e8: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww..
271f8: e10c0000 f3090000 f6050000 df000000 ................
27208: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d
27218: f3080040 fb8cc9bf d7ff7c00 01000000 @........|......
27228: 000000eb 0010be00 506f0000 2f000000 ..........oP.../
27238: 00000090 0000d00c 01f30800 f80300d5 ................
27248: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U
27258: 52f95655 2f000000 00000060 0500f602 UV.R.../`.......
27268: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........
27278: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. .
27288: 00f80400 920f0000 f6050050 fd8ad98f ........P.......
27298: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p.
272a8: 000000f8 0000d00c 00801f00 682f0000 ............../h
272b8: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../.......
272c8: f109f602 01f30600 b09f86de d8ef1900 ................
272d8: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU.
272e8: 00e00b00 00f80200 109f0000 b00f0000 ................
272f8: f4060000 dd000000 3f000000 0a000070 ...........?p...
27308: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v.
27318: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^.
27328: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O
27338: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l
27348: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P.
27358: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0.......
27368: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1.......
27378: 9f000000 8da70930 df0700f7 1e0040eb ....0........@..
27388: 1003fc92 00000000 1efc1203 fc921e90 ................
27398: 00001003 01000000 a8d01fe9 00a0300e .............0..
273a8: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}..........
273b8: 17000081 0000b4df 00d2af04 ef820100 ................
273c8: 45f3ffff 00515555 01000000 ef101111 ...EUUQ.........
273d8: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........
273e8: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... .
273f8: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w..
27408: cf000027 09000000 010000f0 010000ea '...............
27418: 000010dd 000010ce 0000603f 00003001 ........?`...0..
27428: 00000100 00f50600 405f0000 17000000 .........._@....
27438: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@
27448: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I....
27458: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@....
27468: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\...
27478: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@....
27488: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@
27498: 00000000 fb060000 00752353 17000000 ........S#u.....
274a8: 00a3fdce 02000000 000000fd f49f0000 ................
274b8: 00000000 00b09e0f f2060000 0000207f ............. ..
274c8: f801dc00 4f000000 00e00b60 00f00b00 .......O`.......
274d8: 0100604f ed1111fa ff8f0000 00f3ffff O`..............
274e8: 4444c40e f406a04f af000000 0000cd10 ..DDO...........
274f8: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@
27508: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:...
27518: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._
27528: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj..
27538: d7ffffff 8d020000 0400b4fe f99db8ff ................
27548: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........
27558: 0000f602 602f0000 00000000 000000fa ....../`........
27568: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._..
27578: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w
27588: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._
27598: 06000040 00405ff4 5ff60300 03000040 @...._@...._@...
275a8: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@.
275b8: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._
275c8: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@......
275d8: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD..
275e8: 5f000000 05000040 000000f4 7777975f ..._@......._.ww
275f8: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@
27608: f4050000 5f000000 05000040 102222f5 ......._@...."".
27618: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@.....
27628: 405f0000 f4050000 00000000 b5fe8d01 .._@............
27638: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`...
27648: 0f000000 000000a0 00602f00 2f000000 ........./`..../
27658: 09000060 00a00ff0 0bf00900 090000f2 `...............
27668: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O.......
27678: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@
27688: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U.
27698: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._
276a8: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU
276b8: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E
276c8: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww..
276d8: 00fa0000 00fa0000 00fa0000 00fa0000 ................
276e8: 00fa0000 00fa0000 07f90000 0df60320 ............ ...
276f8: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@.......
27708: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@.
27718: f4050030 0000909f 40efcf5f 91ff0500 0......._..@....
27728: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@
27738: 05f50900 0c0000f4 00405ff2 00f40500 ........._@.....
27748: 405f0000 f4050000 5f000000 05000040 .._@......._@...
27758: 000000f4 0000405f 0000f405 00405f00 ...._@......._@.
27768: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._
27778: 00000040 00fc951e f9080000 0000f55f @..........._...
27788: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_.
27798: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........
277a8: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._...
277b8: 7100305f f3950f00 00000000 00505ff9 _0.q........._P.
277c8: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU..
277d8: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@
277e8: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U.
277f8: f5df0000 0200405f 00f455ff 00f50600 ...._@...U......
27808: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. .
27818: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r
27828: 000000f6 602ff900 0f000000 0000fa90 ....../`........
27838: 0bf70300 000000f2 d22f20af 908f0000 ......... /.....
27848: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._..
27858: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@..
27868: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n.
27878: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._
27888: 00000040 0000405f 8d010000 0000b5fe @..._@..........
27898: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ......
278a8: af000000 00a00f20 703f0000 0000602f .... .....?p/`..
278b8: 2f900f00 00000060 901f900f 2f000000 .../`........../
278c8: 00f10b70 20af0000 0010fc03 0000f907 p...... ........
278d8: df78fa6f 030000b0 00c5ffae 00000000 o.x.............
278e8: b015d43e 02000000 0080ffbf 01000000 >...............
278f8: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@..
27908: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@...
27918: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._
27928: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\
27938: 0720d9ef 90af87fc 0100c00e 00800f10 .. .............
27948: f50d0000 03000000 0050eaef feae0500 ..........P.....
27958: 00000040 0000f14e 08f30500 f2080000 @...N...........
27968: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g
27978: 7277fb78 00f70100 f7010000 01000000 x.wr............
27988: 000000f7 0000f701 00f70100 f7010000 ................
27998: 01000000 000000f7 0000f701 00f70100 ................
279a8: f7010000 306f0000 168f0000 080000f3 ......o0........
279b8: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0..
279c8: 00f3168f 6ff10800 8f000030 0000f405 .......o0.......
279d8: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._....
279e8: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o
279f8: 0c000050 00fb00c0 00f60300 0000f209 P...............
27a08: 2f0000ae 901f0080 00ce0000 0000f207 .../............
27a18: db00f605 0e000000 00504fc0 3b8f0000 .........OP....;
27a28: 000000e0 00f8fb02 0b000000 000010ff ................
27a38: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........
27a48: ff020090 f0070040 0700e00b 0c0090fe ....@...........
27a58: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T.
27a68: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ .
27a78: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&....
27a88: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{...........
27a98: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ...
27aa8: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0...
27ab8: 0300802f 00d00cfa f3fb0700 0c000000 /...............
27ac8: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o
27ad8: 0020af60 ed01b02f 00f10c00 f607f804 `. ./...........
27ae8: f3090000 0000e00c f703f207 901f0000 ................
27af8: 0010af00 1f00109e 00f602a0 0bf30800 ................
27b08: 000000d0 00404fec fb5f0000 00000000 .....O@..._.....
27b18: 0000f20c f0090000 00000000 0000f009 ................
27b28: f0090000 00000000 0000f009 ffffff3f ............?...
27b38: 777701fd 0090bf77 c01e0000 0c000000 ..www...........
27b48: 000000f2 0000f508 00f90400 ec010000 ................
27b58: 00000000 000020cf 00508f00 904f0000 ..... ....P...O.
27b68: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_.
27b78: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0.
27b88: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0..
27b98: 00ff5f50 0000007e 0000401f 0000900c P_..~....@......
27ba8: 0000e007 0000f402 0000c900 00007e00 .............~..
27bb8: 00402f00 00900c00 00e00700 00f30200 ./@.............
27bc8: 00d90000 007e0000 302f0000 900d0000 ......~.../0....
27bd8: e0070000 ea35fabf ea00ea00 ea00ea00 ......5.........
27be8: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5.
27bf8: 2f00fabf 9d000080 f30000e0 d00600d5 .../............
27c08: 600c007b 103f201f 009a800b ffffe004 {..`. ?.........
27c18: 1111ffff f6071111 01e70300 0080fd9e ................
27c28: 90af87ce af000002 06000000 ffbe02f2 ................
27c38: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B...
27c48: 206ffbbf 0000008f 00008f00 008f0000 ..o ............
27c58: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0...
27c68: 208fc01e 8ff10700 f3050000 0700208f ... ......... ..
27c78: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+...
27c88: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........
27c98: 304f0000 f6030000 0d000000 100600d0 ..O0............
27ca8: f47cd74f c4ef3a00 00000000 0000f701 O.|..:..........
27cb8: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;......
27cc8: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0..
27cd8: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e..
27ce8: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. .
27cf8: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r
27d08: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:.
27d18: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p.......
27d28: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0...
27d38: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;..
27d48: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`...
27d58: 0000404f 00603ff9 d00ef901 04f90900 O@...?`.........
27d68: f8cf87fd b3ff3b00 000000f7 e909f405 .....;..........
27d78: 01b0af77 00d8ff7c 0000008f 0000f008 w...|...........
27d88: 00008f00 bff20800 fb8f10ea f808fd89 ................
27d98: 8ff40600 781f0010 f80000f0 0f00008f .......x........
27da8: 0000f088 00008ff8 00f0880f 1a9ef800 ................
27db8: f00800f2 8ff0088f 088ff008 f0088ff0 ................
27dc8: 00e20700 0000f309 f1070000 00f10700 ................
27dd8: 0700f107 f10700f1 00f10700 0700f107 ................
27de8: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ...
27df8: 00f00800 008f0000 f0080000 8fd11d00 ................
27e08: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p
27e18: bfe28f00 01f20830 008f10ee f008fb03 ....0...........
27e28: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................
27e38: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p
27e48: 00c09f00 00f1585f 0100f605 00008ff7 ...._X..........
27e58: 0f00404f 0400f088 f80000f4 4f00008f O@.............O
27e68: 880f0040 f40400f0 8ff80000 404f0000 @.............O@
27e78: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o
27e88: 0100f148 00008ff7 00f0880f 008ff800 H...............
27e98: f0880f00 8ff80000 800f0000 c4ef3b00 .............;..
27ea8: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`...
27eb8: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`.........
27ec8: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;.....
27ed8: 8f30df57 c00d0090 0700108f 00008ff1 W.0.............
27ee8: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x.
27ef8: fe2b8f30 008f00b3 8f000000 00000000 0.+.............
27f08: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;.........
27f18: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?`
27f28: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;.
27f38: 0000f7a3 00f70100 f7010000 01000000 ................
27f48: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ ....
27f58: 8f00008f 008f0000 00008f00 91fdae02 ................
27f68: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......`
27f78: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@
27f88: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0..
27f98: 305f0000 00f30500 00305f00 0000f404 .._0....._0.....
27fa8: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z....
27fb8: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y..
27fc8: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P
27fd8: 0000c00d 00f206cb f900f502 00e00900 ................
27fe8: 800f009e 6f602f00 c00c0010 050000cb ...../`o........
27ff8: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p....
28008: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`..
28018: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P.
28028: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O.
28038: ff040000 a0ef0040 e00e0000 00f40800 ....@...........
28048: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P......
28058: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................
28068: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@......
28078: f40200f3 0900ea00 108f00d0 1f00701f .............p..
28088: 00107f70 00d9e00a f2f90300 cf000000 p...............
28098: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y..
280a8: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[...
280b8: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@...
280c8: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a
280d8: 0000cc00 db0000db 00db0000 1f00ea02 ................
280e8: fa0500f4 00db0000 0000db00 cc0000db ................
280f8: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._..
28108: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._...
28118: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p...
28128: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p....
28138: 0090be40 00000000 00e43d00 f5860cb5 @........=......
28148: 03f0201e 000290ef 02001000 400d90ce . .............@
28158: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@.......
28168: 00f7e7ef 00000000 00000000 00000000 ................
28178: 00dc4900 16000000 00ffffbf ff8d0300 .I..............
28188: 00ffffff ffffcf00 00ffffff ffffff00 ................
28198: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q.......
281a8: 00ff0000 0000ff00 00ff0000 0000ff00 ................
281b8: 00ff0000 0000ff00 00ff0000 0000ff00 ................
281c8: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+....
281d8: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+.......
281e8: 2b000000 0000b2ff d0000000 ffffff0f ...+............
281f8: ff0df0ff 8888c8ff f0ffff8c 0000800f ................
28208: f00ff008 0000800f ff0ff008 000080ff ................
28218: f0ffff08 ccccec0f f00ff0ce ccccec0f ................
28228: ff0ff0ce 000080ff f0ffff08 0000800f ................
28238: f00ff008 0000800f ff0ff008 8888c8ff ................
28248: d0ffff8c ffffff0f df0df0ff ffff73ff .............s..
28258: fffdffff ffffa5ff ffffffff ffffa5ff ................
28268: dfffffff ffff73ff 00fdffff 00000000 .....s..........
28278: df000000 ffff73ff fffdffff ffffa5ff .....s..........
28288: ffffffff ffffa5ff dfffffff ffff73ff .............s..
28298: 00fdffff 00000000 df000000 ffff73ff .............s..
282a8: fffdffff ffffa5ff ffffffff ffffa5ff ................
282b8: dfffffff ffff73ff 00fdffff 00000000 .....s..........
282c8: 00b10a00 00000000 00fcbf00 00000000 ................
282d8: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................
282e8: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................
282f8: 0c0000fc ffbffbff 000000c0 fbffffcf ................
28308: 00000000 b0ffff0c 00000000 00fbbf00 ................
28318: 00000000 00b00b00 03000000 03000000 ................
28328: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,.
28338: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................
28348: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................
28358: f5dffcff d1ff0500 040000a4 000000a1 ................
28368: 0000e04f 10020000 1003f16f d05f0000 O.......o....._.
28378: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@
28388: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o.......
28398: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../....
283a8: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o..
283b8: af000000 10fe0ff0 ff050000 d3ff06a0 ................
283c8: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ...........
283d8: 30fdffff 17000000 0050cabd 00000000 ...0......P.....
283e8: 0000b88b 00000000 0000ffff 06300000 ..............0.
283f8: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@...
28408: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O..........
28418: ffff0220 f9ff0080 ff9f0000 f9ff0000 ...............
28428: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O..
28438: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................
28448: dffdffff 06300040 0360ffff 00000000 ....@.0...`.....
28458: 0000ffff 00000000 0000b88b 00000000 ................
28468: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O...
28478: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o..
28488: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S.........
28498: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@.............
284a8: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A..
284b8: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................
284c8: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................
284d8: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........
284e8: 00000000 ffff0000 00000000 ffff0000 ................
284f8: 00000000 ffff0000 00000000 ffff0000 ................
28508: 00000000 ffff0000 00000000 ffffff4f ............O...
28518: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................
28528: 000000fb ffff0b00 000000b0 fbbf0000 ................
28538: df000000 b11bfcff fffdffcf 2cc2ffff ...............,
28548: ffffffff ffffffff ffffffff ffffffff ................
28558: dfffe0f0 ffffffff 00fdffff ffffef04 ................
28568: 0040feff ffff1e00 e1ffffff b0af0000 ..@.............
28578: 0b000000 ff0500fa 00000010 1e50ff01 ..............P.
28588: 000000f6 e16f0000 0000b0af 0b000000 ......o.........
28598: fffffffa ff080080 ffffffff 1f00f1ff ................
285a8: ffffffff ffffffff ffffffff ffffffff ................
285b8: ffffffff ffffffff ffffffff ff8fffff ................
285c8: ffffffff 00f8ffff dabd0600 00ff0250 ............P...
285d8: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{....
285e8: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._
285f8: 0f0000f2 8fffffff 0f0000b0 00ffffff ................
...
28614: ff000000 00f0ffff fff80b00 00f0ffff ................
28624: fff42f00 002022fd ffe0cf00 0000c2ff ./..." .........
28634: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$...
28644: ff0050fe dbac0520 00000060 00000000 .P.. ...`.......
28654: 008d0000 00ff0800 dfff8f00 ffffffff ................
28664: ffffffff ffffffff ffffffff dfffffff ................
28674: 00ffffff 00ff8f00 00ff0800 008d0000 ................
...
28690: 0000008d 00ff0800 8f000000 cf0000ff ................
286a0: 01ffffff ffffff50 fff706ff 00ffffff ....P...........
286b0: ffffffbe ffae00ff 05ffffff ffffdff8 ................
286c0: 006002ff 00ff9f00 09000000 000000ff ..`.............
286d0: 009e0000 00000000 00000000 00000000 ................
286e0: 00100600 00000000 d21f0000 00000000 ................
286f0: 0300008d 000010ee 0a00ff08 00b02fb1 ............./..
28700: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_`
28710: fffffff9 0df706ff ffffbdc0 ae00ffff ................
28720: ff9ff009 00ffffff 8ff009ae ffffffff ................
28730: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`...
28740: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../.
28750: 8d000000 ee020000 00000010 1f000000 ................
28760: 000000d2 00000000 8f001006 ffffffff ................
28770: fff8ffff fffffffc ffffffff ffff2f20 ............ /..
28780: fcffffff ffff0c00 ffffffee feff2f20 ............ /..
28790: ffffef22 e2fffffc ffff2e00 20fe4efe "............N.
287a0: ffff0200 00c202e2 ffff0000 00000020 ............ ...
287b0: ffff0000 00000000 ffff0000 ffffffff ................
287c0: 8fffffff ffffffff 00f8ffff 00000000 ................
287d0: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@....
287e0: ffff3f40 ffff44ff ff9fffff ffffffff @?...D..........
287f0: ffffffff ffffffff ffffafff ff45ffff ..............E.
28800: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@..
28810: 0030ffff 0000cc01 00000000 00000000 ..0.............
28820: 918f0000 00000000 70ffff00 00000000 ...........p....
28830: 40fdffff ff000000 10faffff ffff0000 ...@............
28840: 00f7ffff ffffff00 00d5ffff ffffffff ................
28850: ffb2ffff ffffffff fffffdff ffffffff ................
28860: fffffffd b2ffffff ffffffff ff00d5ff ................
28870: f7ffffff ffff0000 0010faff fdffff00 ................
28880: 00000040 0070ffff 8e000000 000000a1 @.....p.........
...
288a0: 00f8ff8f fff8ff8f ff00ffff ffffffff ................
288b0: ffff00ff ffffffff ffffff00 00ffffff ................
288c0: ffffffff ff00ffff ffffffff ffff00ff ................
288d0: ffffffff ffffff00 00ffffff ffffffff ................
288e0: ff00ffff ffffffff ffff00ff ffffffff ................
288f0: ffffff00 00ffffff 7fffffff 7f00f7ff ................
28900: ff8ff7ff ffffffff fffffff8 ffffffff ................
28910: ffffffff ffffffff ffffffff ffffffff ................
28920: ffffffff ffffffff ffffffff ffffffff ................
28930: ffffffff ffffffff ffffffff ffffffff ................
28940: ffffffff ffffffff ffffffff ffffffff ................
28950: ffffffff ffffffff ffffffff ffff8fff ................
28960: f8ffffff 00000000 0010cc00 d2ffff03 ................
28970: ffff0400 ff0430fe 04f4ffff ffffffff .....0..........
28980: ffffff54 fffff9ff ffffffff ffffffff T...............
28990: ffffffff fffffff9 ffff44ff ff04f3ff .........D......
289a0: 0430feff 00d2ffff 10ccff04 00ff0300 ..0.............
289b0: 00000000 2d000000 000000d2 ef010000 .......-........
289c0: 000010fe ff1d0000 0000d1ff ffcf0000 ................
289d0: 0000fcff ffff0b00 00b0ffff ffffaf00 ................
289e0: 00faffff ffffff09 90ffffff ffffff0f ................
289f0: f0ffffff ffffff08 80ffffff 00000000 ................
28a00: 00000000 ffffff0c c0ffffff ffffff0f ................
28a10: f0ffffff ffffff0f f0ffffff ffffff0c ................
28a20: c0ffffff 1a000000 01000040 0000f0df ........@.......
28a30: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................
28a40: ff0c0000 0d0000a0 000080ff 00f8df01 ................
28a50: ff1d0000 01000080 0000f8df 80ff1d00 ................
28a60: df010000 000000f0 a104501b 0f000000 .........P......
28a70: 000010fd 00d1ff0a fdaf0000 0a000010 ................
28a80: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................
28a90: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................
28aa0: d1ff0800 fd0f0000 05000010 000000b1 ................
28ab0: ff040000 00000040 80ff0800 00000000 ....@...........
28ac0: 0080ff08 08000000 000080ff ff080000 ................
28ad0: 48000080 c8ff8c88 ffff8488 ffffffff ...H............
28ae0: ffffffff ffffffff ff8c8848 008488c8 ........H.......
28af0: 80ff0800 00000000 0080ff08 08000000 ................
28b00: 000080ff ff080000 00000080 40ff0400 ...............@
28b10: 44140000 44444444 ffffef41 feffffff ...DDDDDA.......
28b20: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........
28b30: daffad05 00000050 88fcdf04 0040fdcf ....P.........@.
28b40: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O
28b50: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO.............
28b60: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O..
28b70: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p.
28b80: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@
28b90: 05000000 50daffad 208c0000 00000000 .......P... ....
28ba0: 00000000 0000e4df 00000000 ff1b0000 ................
28bb0: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I..............
28bc0: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p.....
28bd0: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@
28be0: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-.
28bf0: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0..
28c00: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>.
28c10: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z
28c20: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N.
...
28c38: 0000c802 d22d0000 00000000 00000000 ......-.........
28c48: 0000fbbf 00000000 ffff0500 00000050 ............P...
28c58: 0d000000 00d0ffff 00000000 ffff7f00 ................
28c68: 000000f7 ff010000 10ff8dd8 00000000 ................
28c78: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?.....
28c88: 00000000 0cc0ffcf 0000fcff ffff0500 ................
28c98: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P...........
28ca8: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................
28cb8: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>......
28cc8: ffffffff f0ffffff ffffff08 ffffffff ................
28cd8: 000080ff 00000000 00000000 00000000 ................
28ce8: 000000d8 00000000 ffff80ff ff070070 ............p...
28cf8: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x.....
28d08: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ......
28d18: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^
28d28: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o.
28d38: fffffdff ff070070 0000f8ff 00000000 ....p...........
28d48: 000080ff 00000000 000000d8 00000000 ................
...
28d60: 01000000 000010dd ff1d0000 000000d1 ................
28d70: fdffdf01 1d000010 d1ff99ff f9df0100 ................
28d80: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................
28d90: 905ffb9f 09000000 000000f5 00000000 .._.............
28da0: 00000000 5f000000 00000090 f9bff509 ......._........
28db0: 9f000000 90ff1dfb d1ff0900 00f9df01 ................
28dc0: 0010fd9f ff99ff1d 010000d1 10fdffdf ................
28dd0: 1d000000 0000d1ff dd010000 00000010 ................
...
28df0: 00d11d00 00000000 df010000 ffef10fd ................
28e00: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................
28e10: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k.......
28e20: 0f0000f0 000000f0 00f00f00 00f00f00 ................
28e30: 0f000000 0f0000f0 000000f0 b6f11f6b ............k...
28e40: 00f00f00 cfcf0000 0f00fcfc faffffff ................
28e50: d1ffff1d ffff0d00 df01feff 000010fd ................
28e60: 00000000 00d11d00 00000000 00000000 ................
28e70: ff8f0000 0000e2ff ffff0000 0020feff .............. .
28e80: ffff0000 ffffffff fffff8ff ffffffff ................
28e90: ffffffff ffffffff ffffffff ffffffff ................
28ea0: ffffffff ffffffff ffffffff ffffffff ................
28eb0: ffffffff ffffffff ffffffff ffffffff ................
28ec0: ffffffff ffffffff ff8fffff ffffffff ................
28ed0: 0000f8ff 00b00b00 00000000 00fbbf00 ................
28ee0: 00000000 b0ffff0b 00000000 fbffffbf ................
28ef0: 0b000000 ffffffff 4f0000b0 ffffffff ...........O....
28f00: 000000f4 00ffff00 00000000 00ffff00 ................
28f10: 00000000 00ffff00 00000000 00ffff00 ................
28f20: 00000000 00ffff00 ffdf0000 0ffddff0 ................
28f30: fffffdff 9f0000f9 ffffffff ffffffff ................
28f40: ffffffff f0ffffff ffdfffe0 ffffffff ................
28f50: 0000fdff 00000000 00000000 00000000 ................
28f60: 0062ea0a 00000000 f0ffff02 00000000 ..b.............
28f70: ffff9f00 00000000 ffff0f00 000000d0 ................
28f80: ffff0200 000000fb ef030000 000070ff .............p..
28f90: 04000000 0000f2ff 00000000 0000fbbf ................
28fa0: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O...
28fb0: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o...........
28fc0: ffffef00 00d1ffff ffff0a00 0090ffff ................
28fd0: ff6f0000 0030fbff ff020000 000072db ..o...0......r..
28fe0: 08000000 000080ee ff086106 2d0080ff .........a.....-
28ff0: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?....
29000: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n...........
29010: ffef0200 000000f3 ffff2e00 08000030 ............0...
29020: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3
29030: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0...
29040: fddf0200 00e88e00 10660000 ffdf0000 ..........f.....
29050: 00200dff ffffff00 0000e20f 0fffffff .. .............
29060: fff0dffd 0020ffff fffff0ff ffffffff ...... .........
29070: fffffff0 f0ffffff ffffffff fff0ffff ................
29080: ffffffff fffff0ff ffffffff fffffff0 ................
29090: f0ffffff ffffffff fff0ffff ffffffff ................
290a0: ffdff0ff fffdffff 000000f9 ffff0000 ................
290b0: 00ffffff ffffdf00 0000fdff ffffff8f ................
290c0: ff00c2ff ffffffff 00ff20fe ff010000 ......... ......
290d0: 0000ffe2 fcff0000 000000ff ffffff00 ................
290e0: 00000000 ffffffff ffffffff ffffffff ................
290f0: ffffffff 11fbffff ffffffbf 1f00f1ff ................
29100: ffffffff ff1f00f1 fbffffff ffffbf11 ................
29110: ffffffff 8fffffff ffffffff df00f8ff ................
29120: 0000fdff fcffff01 ff030000 0000f7ff ................
29130: f2ffff06 ff080000 0000d0ff ffffff0a ................
29140: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. ..
29150: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P.
29160: fc2f0000 00000000 0000f35f a09f0000 ../....._.......
29170: 00000000 000010df 00d70000 04000000 ................
29180: 000040ee 99ffdf00 0000fdff ff99ffff .@..............
29190: ff0000ff ffffffff ffff0000 00000090 ................
291a0: 0dffff00 200dffff ff0fffff ffe20fff ....... ........
291b0: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... ....
291c0: ffffffff ff0fffff ffffffff ffff0fff ................
291d0: ffdfffff ffffff0f 0f0000ff ffffffff ................
291e0: ff0f0000 00ffffff ffff0d00 0000fdff ................
291f0: 0000cc00 02000000 000030ff ffbf0100 .........0......
29200: 000020fc ffffff1e 9f0000e1 f8ffffff . ..............
29210: ffef0000 00fdffff ffffff00 0100ffff ................
29220: ffffffff ff0300ff ffffffff ffff0830 ............0...
29230: 80ffffff ffffff1e cfe1ffff ffffffff ................
29240: ffcffcff ffffffff 000000fc 00000000 ................
29250: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@....
29260: ffffffff fff8ffff ffffffff ffffffff ................
29270: 0ff000ff 000ff000 f000ffff 0ff0000f ................
29280: ffffff00 ffffffff ffffffff 888008f8 ................
29290: ff8f8008 8008f8ff 8f800888 ffffffff ................
292a0: ffffffff 00ffffff 000000f0 ffff000f ................
292b0: 0000f000 ff000f00 ffffffff ffffffff ................
292c0: ffff8fff ffffffff 0000f8ff 00000000 ................
...
292d8: 70af0300 00000000 ffcf0400 000000f0 ...p............
292e8: ffdf0600 0000a0ff ffef1700 0030ffff ..............0.
292f8: ffff1800 00fcffff ffff2a00 f4ffffff .........*......
29308: ffff0800 ffffffff ff0f00d0 ffffffff ................
29318: 080060ff ffffffff 0000feff 00000000 .`..............
29328: 00f7ffff 00000000 f1ffff00 00000000 ................
29338: ffff0000 00000080 ff000000 000010ff ................
29348: 00000000 0000faff 00000000 00f2ff00 ................
29358: 00000000 808f0000 00000000 00000000 ................
29368: 00000000 f0ffffdf ffff00d2 20fef0ff ...............
29378: f0ffffff ffffe2ff fdfff0ff f2ffffff ................
29388: ffff0000 ffffffff ffffffff ffffffff ................
29398: ffffffff ffffffff ffffffff ffffffff ................
293a8: ffffffff ffffffff ffffffff ffffffff ................
293b8: ffffffff ffffffff ffffffff ffdfffff ................
293c8: fdffffff 00000000 00000000 00000000 ................
293d8: feef9c04 000040c9 ffef0700 feffffff .....@..........
293e8: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o...
293f8: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o.
29408: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M...
29418: 0000d4ff feff0500 ffef8aa8 01000050 ............P...
29428: 000070df 0010fd07 00120000 21000000 .p.............!
29438: 00000000 e44e0000 00000000 00000000 ......N.........
29448: 0000feef 00000000 feef0000 00000000 ................
29458: 00000000 0000e44e ff8f0000 ffffffff ....N...........
29468: 80ffffff ffffffff ffffffff 00fff0ff ................
29478: 00000000 fd0f0000 ffff0fff ffffffff ................
29488: 0fffff0f ffffffff ff00ffff ffff0fff ................
29498: ffffffff 0fffff00 ffffffff ff0fffff ................
294a8: 000000ff 00000000 fffffd0f ffffffff ................
294b8: f0ffffff ffffff8f ffffffff ff8f80ff ................
294c8: ffffffff 80ffffff ffffffff ffffffff ................
294d8: 00fff0ff 00000000 fd0f0000 ffff0fff ................
294e8: 00f0ffff 0fffff0f ffffffff ff0000f0 ................
294f8: ffff0fff 00f0ffff 0fffff00 ffffffff ................
29508: ff0f00f0 000000ff 00000000 fffffd0f ................
29518: ffffffff f0ffffff ffffff8f ffffffff ................
29528: ff8f80ff ffffffff 80ffffff ffffffff ................
29538: ffffffff 00fff0ff 00000000 fd0f0000 ................
29548: ffff0fff 000000ff 0fffff0f 00ffffff ................
29558: ff000000 ffff0fff 000000ff 0fffff00 ................
29568: 00ffffff ff0f0000 000000ff 00000000 ................
29578: fffffd0f ffffffff f0ffffff ffffff8f ................
29588: ffffffff ff8f80ff ffffffff 80ffffff ................
29598: ffffffff ffffffff 00fff0ff 00000000 ................
295a8: fd0f0000 f0ff0fff 00000000 0fffff0f ................
295b8: 0000f0ff ff000000 f0ff0fff 00000000 ................
295c8: 0fffff00 0000f0ff ff0f0000 000000ff ................
295d8: 00000000 fffffd0f ffffffff f0ffffff ................
295e8: ffffff8f ffffffff ff8f80ff ffffffff ................
295f8: 80ffffff ffffffff ffffffff 00fff0ff ................
29608: 00000000 fd0f0000 000000ff 00000000 ................
29618: 00ffff0f 00000000 ff000000 000000ff ................
29628: 00000000 00ffff00 00000000 ff0f0000 ................
29638: 000000ff 00000000 fffffd0f ffffffff ................
29648: f0ffffff ffffff8f ffffffff 000080ff ................
29658: 01000000 00000000 00000000 10fd0700 ................
29668: 00000000 cf010000 0000f5ff 00000000 ................
29678: fe29b900 00000010 3f000000 00000210 ..)........?....
29688: df030000 00900a80 70030000 77ffdf00 ...........p...w
29698: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU...........
296a8: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F..
296b8: 3302f201 00000010 09000000 00f9cfb1 ...3............
296c8: 00000000 ff0a0000 000090ff 00000000 ................
296d8: f9bf0000 00000000 00000000 00002201 ............."..
296e8: df180000 020092fd ffeffbef faff0d30 ............0...
296f8: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O..
29708: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=.............
29718: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y
29728: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._......
29738: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P.....
29748: 7f000000 0000f7ff ffffffef effeffff ................
29758: ffffffff 0000feff 00000000 ffff0f00 ................
29768: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................
29778: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................
29788: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................
29798: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................
297a8: 0ff09ff9 ffffffff ff08f0ff ffffffff ................
297b8: 00000080 7f000000 000000a0 8f000000 ................
297c8: 0000b0ff 0d000000 00a0ffff 8a000000 ................
297d8: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p....
297e8: 801dfaff 8f000000 00faffff 8f000000 ................
297f8: 80ffffff 8f000000 80ffffff 8f000000 ................
29808: 80ffffff 8f000000 80ffffff 6f000000 ...............o
29818: 80ffffff 0b000000 80ffffff 00000000 ................
29828: 80ffffdf 00000000 80ffff0e 00000000 ................
29838: 60dbde00 00000000 00000000 00000000 ...`............
29848: 00000000 ffffff1b e4ffffff ffdf0100 ................
29858: ffffffff 1d00feff effaffff ffffaffe ................
29868: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................
29878: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ......
29888: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... .
29898: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................
298a8: affeeffa 0100ffff ffffffdf feffffff ................
298b8: ff1b0000 ffffffff 0800e4ff e4ffffff ................
298c8: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@.....
298d8: f8ffff40 ff400b0f ffffffff ffffffff @.....@.........
298e8: ffffffff ffffffff ffffffff ffffffff ................
298f8: ffffffff ffffffff ffffffff ffffffff ................
29908: ffffffff ffffffff ffffffff ffefffff ................
29918: feffffff ffffff4e 0000e4ff 00000000 ....N...........
29928: 00000100 00000000 00e00300 00001000 ................
29938: 10ef0200 0000bf00 f17f0000 00f1cf00 ................
29948: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww.....
29958: ffffffff ffff17ff ffffffff ff07e0ff ................
29968: 000000f1 06000000 000010ff 00000000 ................
29978: 0000a005 00000000 ........
00029980 <kern_class_values>:
29980: 00000100 00000000 00000100 00000003 ................
29990: 00000200 00000000 00000000 00000000 ................
299a0: 00010000 00000000 00000000 00000000 ................
299b0: 000c0100 0000fa07 f1f20000 04060c02 ................
299c0: 010d02f6 0008030b 00000000 00000000 ................
299d0: 020f0000 000000fe 00000000 00000000 ................
299e0: f8000500 00000000 0504fb00 00fd0000 ................
299f0: fd0003fe fbfffd00 00000000 fd0000fd ................
29a00: fd0000fc 0000fb00 00000000 fd000000 ................
29a10: 00fc00fd 00e100f9 0500fb00 fb000008 ................
29a20: 05080303 000005fc 000000f1 00000000 ................
29a30: 00000000 000000f7 00000000 00000000 ................
29a40: f9000000 f600f3fd 000000fe 000a0100 ................
29a50: 01fffef8 0000fc00 0000edfe 00000000 ................
29a60: 00000000 0afeec00 00000000 00000000 ................
29a70: 00000000 000000f6 00000000 08000000 ................
29a80: 00000300 000000fb 00000000 00000000 ................
29a90: 00000000 020a0000 00000001 00000000 ................
...
29ac0: 000000f7 00000000 00000000 00000000 ................
29ad0: 00000000 02000000 fd080305 fd050000 ................
29ae0: 0702ddf8 00fd0105 00080009 00e80008 ................
29af0: 080008fd 000305fd 00fd0100 0014fc00 ................
29b00: 00080014 0804030b f7000000 00000000 ................
29b10: 0200fe01 02fbfdfb 0000fd00 0000f600 ................
...
29b28: 0000ef00 00000000 00000000 00000000 ................
29b38: 00f20100 000000f0 1900fe00 0303fdfd ................
29b48: 03fd00fe 00f20000 00000000 00000000 ................
29b58: 00e70000 00000003 00000000 00000000 ................
29b68: 0f00f000 00f70000 e7ef0008 0008fbef ................
29b78: 0300ef00 00fc00fa 00000000 00000000 ................
29b88: 07000000 0000e108 00000000 00000000 ................
29b98: 000c0000 00000002 02020000 ff00fbfd ................
29ba8: 0000fdff 000000fe 00fe00fb fa00fbfa ................
29bb8: 00fbf8f8 00fb00fb fe000000 00030000 ................
29bc8: 0100fd02 03000000 000000fe ff0303fe ................
29bd8: fb000000 0000ff00 01000000 00fe0300 ................
29be8: 00fc00fd 0800fe00 00fd0000 00000000 ................
29bf8: fefe01ff 00fd0000 000000fd 00000000 ................
29c08: ffff0000 00fdfd00 00000000 fe000001 ................
29c18: fdfdfd00 00000000 00000000 0000fe00 ................
29c28: fdfe0000 f800fc00 0005f8fe 0503fb00 ................
29c38: fffa0007 f4ff00fd f202fe03 01000003 ................
29c48: fef200f3 f300feea 00070500 00000003 ................
29c58: fb000100 00f800fd 00fd0000 00fd0000 ................
29c68: 00000000 ff00ffff 000000fd 00000000 ................
29c78: fe00fdfd 0000fefd 000000fd 00000000 ................
29c88: 00000000 fd00fefe fb00fe00 fd000003 ................
29c98: 00030301 00000000 0000fe00 02000000 ................
29ca8: 00fd0000 00fdfefd 00000000 00020000 ................
29cb8: 000000fe 00fcfd00 fe0800fb 0000f801 ................
29cc8: f5f3f307 fe0003fb fb00fbef fb04fb00 ................
29cd8: 00f900f0 02ff0100 000300fe f300f6f8 ................
29ce8: f8fafbfa fbfff9fd 010002f9 0000fd00 ................
29cf8: 03000200 00000000 00000000 fd000000 ................
29d08: ff00ff00 fafc00fd f800fffa 00000000 ................
29d18: 00fe0000 01000000 000000fe 00000003 ................
29d28: 00000000 00000c00 00000000 00000002 ................
29d38: 000000fd 00000000 00000000 000300fb ................
...
29d54: 000000fe 000000fb 00f8f300 f3fc0000 ................
29d64: 03fd0000 0000f900 00000000 00000000 ................
29d74: fb0000fc 00000000 00000000 00000000 ................
29d84: 00fb0003 03000000 fbfb0200 fdfdfd00 ................
29d94: 00000000 00f80000 fdfc00fd f8fafa00 ................
29da4: 00fb00fe 000000f8 00001400 fd000001 ................
29db4: f5000300 00000000 08fbe800 00f5fe08 ................
29dc4: f300fc03 ee03fdff 040003fd f8f7fcf7 ................
29dd4: f10000f5 00000f00 000000ff f9fdffff ................
29de4: 00e8fff8 00000000 00000000 00000001 ................
...
29e00: ff00fd00 0000fcfd 00fd00fb 00000000 ................
...
29e18: 00ff0000 050000fb fa0003ff f9fffe03 ................
29e28: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................
29e38: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................
29e48: 00000003 00000000 0003fb00 fdfe00fc ................
29e58: fefefef8 fffdfeff 00000000 fefefd00 ................
29e68: 00000000 fe00fe03 fe000000 fdfefefd ................
29e78: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................
29e88: 03fcf400 fe0002fc fc00f8fe fc000001 ................
29e98: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................
29ea8: 0008fcfb 00000000 00000000 00000003 ................
...
29ecc: 000000fc 00000000 00000000 00000000 ................
...
29ef8: 000000fe 00000000 00000000 00000000 ................
...
29f14: fdfe0000 00000000 00000000 00000000 ................
29f24: fd0000fc fdfd0000 00000000 000000fd ................
29f34: 0000ff00 fe000000 00000000 00fb00fc ................
29f44: 00f80000 0105fa02 0000f4fe f600fdfa ................
29f54: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................
29f64: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................
29f74: feee0000 f7fa0608 00f80100 05fdfef3 ................
29f84: 0001fde8 f3fdef00 0000edfd 010f00ee ................
29f94: 0000fe00 feff0000 ef00fef6 00000000 ................
29fa4: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................
29fb4: f4000000 fef8f8fd fcfdfafc f8fefb00 ................
29fc4: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................
29fd4: 03000000 0afb0200 fdfdfd00 00000000 ................
29fe4: 00f80000 fdfc00fd f8fafa00 02fb00fe ................
29ff4: 0000000a 00001400 fd000001 00000300 ................
2a004: 00000000 00ff0000 00000000 0000fbfe ................
2a014: ff000000 fd000000 fb0000fd fb0000fd ................
2a024: 00ff0400 00000000 00000100 05040000 ................
2a034: f800fe02 f80800fc 0afbfbf8 feea0305 ................
2a044: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................
2a054: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................
2a064: 00fc0003 080200f9 faf6f7fa ed010008 ................
2a074: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................
2a084: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................
2a094: fd000007 00fefb00 0400fbfd 000003f8 ................
2a0a4: fafd00f2 faf8fefc f800faf8 f8fbfafd ................
2a0b4: 010000fd f800fc0c fbfd00fd f6f9f9fa ................
2a0c4: 0005fbfd fdf300fc f7f80502 fd08f8fb ................
2a0d4: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................
2a0e4: 080000ff 00effe07 f606faf1 f5f7fbef ................
2a0f4: 0005f8f3 fd000000 fd030000 05fb0205 ................
2a104: fff80000 0100ff00 0000fe01 00000000 ................
2a114: 000000fd 01080200 0000fd00 fefe0000 ................
2a124: 000000fd 00000201 00020000 000a00fe ................
2a134: fd010105 00000500 00000200 00000000 ................
2a144: 00000000 07000800 00000000 00000000 ................
2a154: 00000000 00f10000 080004fd 03190000 ................
2a164: 0303fbfb 00f301fe 00f10c00 00000000 ................
2a174: 00000000 0aef0000 00000024 00000000 ........$.......
2a184: 00000000 0000f100 00000000 00000000 ................
...
2a1a4: fb0000fc 000000fe 00000000 00000000 ................
...
2a1bc: 00f900fe 00000100 fefb2103 03f90708 .........!......
2a1cc: 03030000 000000fd 00000000 00000000 ................
2a1dc: 000007df 00000000 00000000 00000000 ................
2a1ec: f9000000 f9000000 00000000 0000fffa ................
2a1fc: fd00fa00 0000f400 00000000 00000000 ................
2a20c: 0000ef00 00010000 00000000 0000fd00 ................
2a21c: 00fc00fb 000000f9 00fd03fc fafdf900 ................
2a22c: 00f90000 00f400fd eb0000fd f7fdf6fb ................
2a23c: 00ef0000 0000fff9 00000000 fbfc0000 ................
2a24c: 0000fcfe 00fa0000 05fd03fa fefafe00 ................
2a25c: fd00fbfc f902feff 000000ff 00fcfee9 ................
2a26c: f4fe00fa fe0000fe 000000fe fe000200 ................
2a27c: 0004fefc 00000000 00000000 00000000 ................
...
2a2a8: 00030000 00000000 fe00fa00 fb000000 ................
2a2b8: 00000003 00fbfdf9 fd00f900 0000f400 ................
2a2c8: 00e70000 00f3f7fb fe00ef00 000000fc ................
2a2d8: 00000000 fffcfd00 000001fc 0800fd04 ................
2a2e8: f8fdfd0d 06040d03 030b03f9 00070607 ................
...
2a300: 0c100000 fe00fdfb 00140b14 00030000 ................
2a310: 00000900 000000fc 00000000 00fe0000 ................
2a320: 00000000 04000000 00000000 f6fefdea ................
2a330: ef0000f3 00000000 00000000 00000000 ................
2a340: 00000000 0000fc00 00000000 fe000000 ................
...
2a358: 00000004 fefdea00 0000f3f6 000000f6 ................
...
2a378: 000000fe fd0003fa f8030502 03feff00 ................
2a388: 00000200 00fa0000 00fbfefe 1000f6fe ................
2a398: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................
...
2a3b0: 0000fe00 00000000 00040000 ea000000 ................
2a3c0: f3f6fefd 00ef0000 00000000 00000d00 ................
...
2a3d8: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................
2a3e8: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................
2a3f8: fefefdfd fe00fefd 040004ff 000800fe ................
...
2a410: fe000000 0000fdfd 00ff00f9 000000fc ................
...
2a428: 000000f1 00000000 00000000 fd00fdfd ................
2a438: 00000000 fc0000fe fc0003fd f900fefb ................
2a448: fdfefafe 0000fc00 00000000 00000000 ................
2a458: 0800ef00 00fb0000 fd000000 0000fd00 ................
2a468: fe0000ff 0000fa00 f8f8fd0b ff030302 ................
2a478: 020402f9 fe080208 f60000f9 f9f80000 ................
2a488: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................
2a498: 000009fd 00fb00fe 00fa0300 0002fd03 ................
2a4a8: fe00f800 03fd00ff 000000fe 00fafdf6 ................
2a4b8: f40000f8 00fd0900 000200fb f8fd00fd ................
2a4c8: 0003fd00 fe000000 fd030000 fd000001 ................
2a4d8: 00fd00fe 00000000 00000000 00000000 ................
2a4e8: 00000000 000600f0 0000fe00 00010000 ................
2a4f8: 0000fdfd 06000500 00000000 01f1f000 ................
2a508: f604080b 09000b02 00000500 00000000 ................
2a518: 00000000 00000e00 00000000 00000000 ................
...
0002a530 <kern_classes>:
2a530: 00029980 0002a540 0002a5dc 0000313d ....@.......=1..
0002a540 <kern_left_class_mapping>:
2a540: 02010000 05040300 08070602 0a090a09 ................
2a550: 0d000c0b 11100f0e 140c1312 00000014 ................
2a560: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. ..
2a570: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+.
2a580: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450--
2a590: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)...
2a5a0: 0000093d 00000000 00000000 00000000 =...............
...
0002a5dc <kern_right_class_mapping>:
2a5dc: 02010000 05040300 08070602 0a090a09 ................
2a5ec: 0e0d0c0b 0c11100f 15141312 00000015 ................
2a5fc: 19181716 19191917 1a191917 19191919 ................
2a60c: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#.
2a61c: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&**
2a62c: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#.
2a63c: 00000931 00000000 00000000 00000000 1...............
...
0002a678 <unicode_list_1>:
2a678: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a.
2a688: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x.
2a698: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................
2a6a8: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................
2a6b8: efc9efc8 efe3efcb f014efe5 f017f015 ................
2a6c8: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;...
2a6d8: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T.
2a6e8: f712f4aa 0000f7f2 ........
0002a6f0 <__func__.8542>:
2a6f0: 645f766c 5f707369 5f767264 69676572 lv_disp_drv_regi
2a700: 72657473 00000000 732f2e2e 412f6372 ster....../src/A
2a710: 742f4653 64726968 74726170 766c2f79 SF/thirdparty/lv
2a720: 732f6c67 6c2f6372 61685f76 766c2f6c gl/src/lv_hal/lv
2a730: 6c61685f 7369645f 00632e70 _hal_disp.c.
0002a73c <__func__.8420>:
2a73c: 615f766c 5f6d696e 72617473 00000074 lv_anim_start...
0002a74c <lv_anim_path_def>:
2a74c: 00010f25 00000000 732f2e2e 412f6372 %........./src/A
2a75c: 742f4653 64726968 74726170 766c2f79 SF/thirdparty/lv
2a76c: 732f6c67 6c2f6372 696d5f76 6c2f6373 gl/src/lv_misc/l
2a77c: 6e615f76 632e6d69 00000000 0001174a v_anim.c....J...
2a78c: 000117a4 000117ac 000117d6 000117ec ................
2a79c: 00011802 00011838 0001185a 00011884 ....8...Z.......
2a7ac: 000118ba 000118ca 000118fa 00011916 ................
2a7bc: 00011926 00011956 00011972 00011982 &...V...r.......
2a7cc: 000119b2 000119ce 000119de 00011a14 ................
0002a7dc <__func__.8415>:
2a7dc: 665f766c 706f5f73 00006e65 732f2e2e lv_fs_open..../s
2a7ec: 412f6372 742f4653 64726968 74726170 rc/ASF/thirdpart
2a7fc: 766c2f79 732f6c67 6c2f6372 696d5f76 y/lvgl/src/lv_mi
2a80c: 6c2f6373 73665f76 0000632e sc/lv_fs.c..
0002a818 <sin0_90_table>:
2a818: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a...
2a828: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!!
2a838: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2
2a848: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A
2a858: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI<K.M.N.P
2a868: 53f95246 574b55a5 5a8258ea 5d9c5c13 FR.S.UKW.X.Z.\.]
2a878: 609a5f1f 6379620d 663964dd 68d9678d ._.`.byc.d9f.g.h
2a888: 6b596a1d 6db76c8c 6ff36ed9 720c7104 .jYk.l.m.n.o.q.r
2a898: 7401730b 75d274ee 777f76ad 79067847 .s.t.t.u.v.wGx.y
2a8a8: 7a6779bb 7ba27b0a 7cb77c32 7da57d33 .ygz.{.{2|.|3}.}
2a8b8: 7e6c7e0d 7f0b7ec0 7f827f4b 7fd27faf .~l~.~..K.......
2a8c8: 7ffa7feb 00007fff ........
0002a8d0 <__func__.6099>:
2a8d0: 6d5f766c 615f6d65 636f6c6c 00000000 lv_mem_alloc....
0002a8e0 <__func__.6117>:
2a8e0: 6d5f766c 725f6d65 6c6c6165 0000636f lv_mem_realloc..
0002a8f0 <__func__.6160>:
2a8f0: 5f766c5f 5f6d656d 5f667562 00746567 _lv_mem_buf_get.
0002a900 <__func__.6174>:
2a900: 5f766c5f 5f6d656d 5f667562 656c6572 _lv_mem_buf_rele
2a910: 00657361 6d5f766c 625f6d65 675f6675 ase.lv_mem_buf_g
2a920: 203a7465 2074754f 6d20666f 726f6d65 et: Out of memor
2a930: 63202c79 74276e61 6c6c6120 7461636f y, can't allocat
2a940: 20612065 2077656e 66756220 20726566 e a new buffer
2a950: 636e6928 73616572 6f792065 4c207275 (increase your L
2a960: 454d5f56 49535f4d 682f455a 20706165 V_MEM_SIZE/heap
2a970: 657a6973 00000029 6d5f766c 625f6d65 size)...lv_mem_b
2a980: 675f6675 203a7465 66206f6e 20656572 uf_get: no free
2a990: 66667562 202e7265 72636e49 65736165 buffer. Increase
2a9a0: 5f564c20 57415244 4655425f 58414d5f LV_DRAW_BUF_MAX
2a9b0: 4d554e5f 0000002e 6d5f766c 625f6d65 _NUM....lv_mem_b
2a9c0: 725f6675 61656c65 203a6573 73692070 uf_release: p is
2a9d0: 746f6e20 6b206120 6e776f6e 66756220 not a known buf
2a9e0: 00726566 732f2e2e 412f6372 742f4653 fer.../src/ASF/t
2a9f0: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
2aa00: 6c2f6372 696d5f76 6c2f6373 656d5f76 rc/lv_misc/lv_me
2aa10: 00632e6d 6c756f43 74276e64 6c6c6120 m.c.Couldn't all
2aa20: 7461636f 656d2065 79726f6d 00000000 ocate memory....
2aa30: 00012ecc 00012ed8 00012ed8 00012ed2 ................
2aa40: 00012ed8 00012ed8 00012ed8 00012ed8 ................
2aa50: 00012ed8 00012ed8 00012ed8 00012ec6 ................
2aa60: 00012ed8 00012ec0 00012ed8 00012ed8 ................
2aa70: 00012ea8 00012fb6 00012fd4 00012fea ...../.../.../..
2aa80: 00012fd4 00012f9c 00012fd4 00012fd4 ./.../.../.../..
2aa90: 00012fd4 00012fd4 00012fd4 00012fd4 ./.../.../.../..
2aaa0: 00012fd4 00012fcc 00012fd4 00012fd4 ./.../.../.../..
2aab0: 00012fd4 00012fd4 00012fd4 00012ff4 ./.../.../.../..
2aac0: 00013326 0001333a 0001333a 0001333a &3..:3..:3..:3..
2aad0: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2aae0: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2aaf0: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab00: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab10: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab20: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab30: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab40: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab50: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab60: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab70: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2ab80: 0001333a 0001333a 0001333a 00012ffe :3..:3..:3.../..
2ab90: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2aba0: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2abb0: 0001333a 00012ffe 000131b4 00012ffe :3.../...1.../..
2abc0: 0001333a 0001333a 0001333a 0001333a :3..:3..:3..:3..
2abd0: 00012ffe 0001333a 0001333a 0001333a ./..:3..:3..:3..
2abe0: 0001333a 0001333a 00012ffe 000132f2 :3..:3.../...2..
2abf0: 0001333a 0001333a 00013202 0001333a :3..:3...2..:3..
2ac00: 00012ffe 0001333a 0001333a 00012ffe ./..:3..:3.../..
0002ac10 <__func__.8438>:
2ac10: 745f766c 5f6b7361 61657263 625f6574 lv_task_create_b
2ac20: 63697361 00000000 asic....
0002ac28 <__func__.8451>:
2ac28: 745f766c 5f6b7361 61657263 00006574 lv_task_create..
2ac38: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
2ac48: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
2ac58: 696d5f76 6c2f6373 61745f76 632e6b73 v_misc/lv_task.c
2ac68: 00000000 ....
0002ac6c <__func__.4965>:
2ac6c: 5f766c5f 5f747874 5f746567 657a6973 _lv_txt_get_size
2ac7c: 00000000 3b2e2c20 005f2d3a 732f2e2e .... ,.;:-_.../s
2ac8c: 412f6372 742f4653 64726968 74726170 rc/ASF/thirdpart
2ac9c: 766c2f79 732f6c67 6c2f6372 696d5f76 y/lvgl/src/lv_mi
2acac: 6c2f6373 78745f76 00632e74 745f766c sc/lv_txt.c.lv_t
2acbc: 675f7478 735f7465 3a657a69 746e6920 xt_get_size: int
2accc: 72656765 65766f20 6f6c6672 68772077 eger overflow wh
2acdc: 20656c69 636c6163 74616c75 20676e69 ile calculating
2acec: 74786574 69656820 00746867 00014122 text height."A..
2acfc: 0001410c 00014134 0001429a 00014204 .A..4A...B...B..
2ad0c: 00014168 00014182 000147fe 00014272 hA...A...G..rB..
2ad1c: 0001434a 0001461c 0001414e 00014850 JC...F..NA..PH..
2ad2c: 000145ae 000148b4 0001427a 00014282 .E...H..zB...B..
2ad3c: 000141c4 0001428a 000143d4 00014292 .A...B...C...B..
2ad4c: 00014556 00014594 00014890 00014382 VE...E...H...C..
2ad5c: 000143a6 00014546 000143ee 0001450e .C..FE...C...E..
2ad6c: 00014300 000147a2 000147da 000142d2 .C...G...G...B..
2ad7c: 00014232 00014678 00014440 000144b0 2B..xF..@D...D..
2ad8c: 00014746 000144d0 000146dc 0001472c FG...D...F..,G..
2ad9c: 94d38c51 0000ffff 00008410 008c80ef Q...............
0002adac <__func__.8683>:
2adac: 695f766c 635f676d 74616572 00000065 lv_img_create...
0002adbc <__func__.8692>:
2adbc: 695f766c 735f676d 735f7465 00006372 lv_img_set_src..
0002adcc <__func__.8775>:
2adcc: 695f766c 675f676d 615f7465 5f6f7475 lv_img_get_auto_
2addc: 657a6973 00000000 size....
0002ade4 <__func__.8840>:
2ade4: 695f766c 645f676d 67697365 0000006e lv_img_design...
2adf4: 67616d69 72632065 65746165 00000064 image created...
2ae04: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
2ae14: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
2ae24: 69775f76 74656764 766c2f73 676d695f v_widgets/lv_img
2ae34: 0000632e 695f766c 735f676d 735f7465 .c..lv_img_set_s
2ae44: 203a6372 6e6b6e75 206e776f 65707974 rc: unknown type
2ae54: 00000000 695f766c 735f676d 735f7465 ....lv_img_set_s
2ae64: 203a6372 6e6b6e75 206e776f 67616d69 rc: unknown imag
2ae74: 79742065 00006570 695f766c 735f676d e type..lv_img_s
2ae84: 735f7465 203a6372 564c6020 474d495f et_src: `LV_IMG
2ae94: 4352535f 5241565f 4c424149 74206045 _SRC_VARIABLE` t
2aea4: 20657079 6e756f66 00000064 695f766c ype found...lv_i
2aeb4: 0000676d mg..
0002aeb8 <__func__.8729>:
2aeb8: 6c5f766c 6c656261 6572635f 00657461 lv_label_create.
0002aec8 <__func__.8740>:
2aec8: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2aed8: 00000074 t...
0002aedc <__func__.8763>:
2aedc: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2aeec: 74735f74 63697461 00000000 t_static....
0002aef8 <__func__.8770>:
2aef8: 6c5f766c 6c656261 7465735f 6e6f6c5f lv_label_set_lon
2af08: 6f6d5f67 00006564 g_mode..
0002af10 <__func__.8777>:
2af10: 6c5f766c 6c656261 7465735f 696c615f lv_label_set_ali
2af20: 00006e67 gn..
0002af24 <__func__.8784>:
2af24: 6c5f766c 6c656261 7465735f 6365725f lv_label_set_rec
2af34: 726f6c6f 00000000 olor....
0002af3c <__func__.8809>:
2af3c: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2af4c: 00000074 t...
0002af50 <__func__.8815>:
2af50: 6c5f766c 6c656261 7465675f 6e6f6c5f lv_label_get_lon
2af60: 6f6d5f67 00006564 g_mode..
0002af68 <__func__.8821>:
2af68: 6c5f766c 6c656261 7465675f 696c615f lv_label_get_ali
2af78: 00006e67 gn..
0002af7c <__func__.8828>:
2af7c: 6c5f766c 6c656261 7465675f 6365725f lv_label_get_rec
2af8c: 726f6c6f 00000000 olor....
0002af94 <__func__.8871>:
2af94: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let
2afa4: 5f726574 00006e6f ter_on..
0002afac <__func__.8908>:
2afac: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2afbc: 65735f74 74735f6c 00747261 t_sel_start.
0002afc8 <__func__.8913>:
2afc8: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2afd8: 65735f74 6e655f6c 00000064 t_sel_end...
0002afe4 <__func__.9083>:
2afe4: 6c5f766c 6c656261 7465735f 746f645f lv_label_set_dot
2aff4: 706d745f 00000000 74786554 00000000 _tmp....Text....
2b004: 6562616c 7263206c 65746165 00000064 label created...
2b014: 732f2e2e 412f6372 742f4653 64726968 ../src/ASF/third
2b024: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
2b034: 69775f76 74656764 766c2f73 62616c5f v_widgets/lv_lab
2b044: 632e6c65 00000000 6c696146 74206465 el.c....Failed t
2b054: 6c61206f 61636f6c 6d206574 726f6d65 o allocate memor
2b064: 6f662079 6f642072 6d745f74 74705f70 y for dot_tmp_pt
2b074: 00000072 6c5f766c 6c656261 00000000 r...lv_label....
0002b084 <level_strings>:
2b084: 43415254 00000045 00000000 00000000 TRACE...........
2b094: 4f464e49 00000000 00000000 00000000 INFO............
2b0a4: 4e524157 00000000 00000000 00000000 WARN............
2b0b4: 4f525245 00000052 00000000 00000000 ERROR...........
2b0c4: 454e4f4e 00000000 00000000 00000000 NONE............
2b0d4: 5d73255b 47564c5b 255b5d4c 255b5d73 [%s][LVGL][%s][%
2b0e4: 255b5d73 5b5d756c 0a5d7325 00000000 s][%lu][%s].....
2b0f4: 00006325 52415355 4e492054 000a5449 %c..USART INIT..
2b104: 2b302d23 6c680020 6665004c 47464567 #-0+ .hlL.efgEFG
2b114: 32313000 36353433 41393837 45444342 .0123456789ABCDE
2b124: 31300046 35343332 39383736 64636261 F.0123456789abcd
2b134: 00006665 ef..
0002b138 <_init>:
2b138: b5f8 push {r3, r4, r5, r6, r7, lr}
2b13a: 46c0 nop ; (mov r8, r8)
2b13c: bcf8 pop {r3, r4, r5, r6, r7}
2b13e: bc08 pop {r3}
2b140: 469e mov lr, r3
2b142: 4770 bx lr
0002b144 <__init_array_start>:
2b144: 000000dd .word 0x000000dd
0002b148 <_fini>:
2b148: b5f8 push {r3, r4, r5, r6, r7, lr}
2b14a: 46c0 nop ; (mov r8, r8)
2b14c: bcf8 pop {r3, r4, r5, r6, r7}
2b14e: bc08 pop {r3}
2b150: 469e mov lr, r3
2b152: 4770 bx lr
0002b154 <__fini_array_start>:
2b154: 000000b5 .word 0x000000b5
Disassembly of section .relocate:
20000000 <portable_delay_cycles>:
RAMFUNC
void portable_delay_cycles(unsigned long n)
{
UNUSED(n);
__asm (
20000000: f3bf 8f5f dmb sy
20000004: 3801 subs r0, #1
20000006: 2800 cmp r0, #0
20000008: d1fa bne.n 20000000 <portable_delay_cycles>
"SUB r0, r0, #1 \n"
#endif
"CMP r0, #0 \n"
"BNE loop "
);
}
2000000a: 4770 bx lr
2000000c <g_interrupt_enabled>:
2000000c: 0001 0000 ....
20000010 <font_dsc>:
20000010: 6f48 0002 6a70 0002 6a48 0002 a530 0002 Ho..pj..Hj..0...
20000020: 0010 5002 0000 0000 0000 0000 0000 0000 ...P............
20000030 <lv_font_montserrat_16>:
20000030: 09fd 0001 ffd9 0000 0012 0003 0000 0000 ................
20000040: 0010 2000 ...
20000044 <mem_buf_small>:
20000044: 2c00 2000 0010 0000 2c10 2000 0010 0000 .,. .....,. ....
20000054 <_lv_txt_encoded_get_byte_id>:
20000054: 3b3d 0001 =;..
20000058 <_lv_txt_encoded_get_char_id>:
20000058: 3b79 0001 y;..
2000005c <_lv_txt_encoded_next>:
2000005c: 39d7 0001 .9..
20000060 <_lv_txt_encoded_prev>:
20000060: 3ae9 0001 .:..
20000064 <_lv_txt_encoded_size>:
20000064: 39a5 0001 .9..
20000068 <_lv_txt_get_encoded_length>:
20000068: 3bad 0001 .;..
2000006c <cmd_mode>:
2000006c: 0001 0000 ....
20000070 <_impure_ptr>:
20000070: 0074 2000 t..
20000074 <impure_data>:
...