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.

54819 lines
2.3 MiB
Plaintext

oracle-e54.elf: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00024720 00000000 00000000 00010000 2**3
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ARM.exidx 00000008 00024720 00024720 00034720 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .relocate 00000074 20000000 00024728 00040000 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .bkupram 00000000 47000000 47000000 00040074 2**0
CONTENTS
4 .qspi 00000000 04000000 04000000 00040074 2**0
CONTENTS
5 .bss 0000c788 20000078 000247a0 00040074 2**3
ALLOC
6 .stack 00010000 2000c800 00030f28 00040074 2**0
ALLOC
7 .ARM.attributes 0000002e 00000000 00000000 00040074 2**0
CONTENTS, READONLY
8 .comment 00000049 00000000 00000000 000400a2 2**0
CONTENTS, READONLY
9 .debug_info 000765d6 00000000 00000000 000400eb 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
10 .debug_abbrev 0000c4d1 00000000 00000000 000b66c1 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
11 .debug_loc 0003fa1e 00000000 00000000 000c2b92 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
12 .debug_aranges 00002108 00000000 00000000 001025b0 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
13 .debug_ranges 00008128 00000000 00000000 001046b8 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
14 .debug_macro 0003f84e 00000000 00000000 0010c7e0 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
15 .debug_line 00059830 00000000 00000000 0014c02e 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
16 .debug_str 001280ca 00000000 00000000 001a585e 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
17 .debug_frame 00006a3c 00000000 00000000 002cd928 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
00000000 <exception_table>:
/**********************
* GLOBAL FUNCTIONS
**********************/
void _lv_gc_clear_roots(void)
{
0: 00 c8 01 20 09 09 00 00 05 09 00 00 05 09 00 00 ... ............
#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)
10: 05 09 00 00 05 09 00 00 05 09 00 00 00 00 00 00 ................
...
2c: 05 09 00 00 05 09 00 00 00 00 00 00 05 09 00 00 ................
3c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
4c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
5c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
6c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
7c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
}
8c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
9c: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
ac: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
bc: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
cc: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
dc: 05 09 00 00 05 09 00 00 05 09 00 00 00 00 00 00 ................
...
f4: 8d 05 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
104: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
114: 05 09 00 00 61 08 00 00 cd 08 00 00 d5 08 00 00 ....a...........
124: dd 08 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
134: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
144: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
154: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
164: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
174: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
184: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
194: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
1a4: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
1b4: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
1c4: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
1d4: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
1e4: 05 09 00 00 05 09 00 00 e5 0e 00 00 05 09 00 00 ................
1f4: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
204: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
214: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
224: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
234: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
244: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
254: 05 09 00 00 05 09 00 00 05 09 00 00 05 09 00 00 ................
00000264 <__do_global_dtors_aux>:
264: b510 push {r4, lr}
266: 4c05 ldr r4, [pc, #20] ; (27c <__do_global_dtors_aux+0x18>)
268: 7823 ldrb r3, [r4, #0]
26a: b933 cbnz r3, 27a <__do_global_dtors_aux+0x16>
26c: 4b04 ldr r3, [pc, #16] ; (280 <__do_global_dtors_aux+0x1c>)
26e: b113 cbz r3, 276 <__do_global_dtors_aux+0x12>
270: 4804 ldr r0, [pc, #16] ; (284 <__do_global_dtors_aux+0x20>)
272: f3af 8000 nop.w
276: 2301 movs r3, #1
278: 7023 strb r3, [r4, #0]
27a: bd10 pop {r4, pc}
27c: 20000078 .word 0x20000078
280: 00000000 .word 0x00000000
284: 00024728 .word 0x00024728
00000288 <frame_dummy>:
288: b508 push {r3, lr}
28a: 4b03 ldr r3, [pc, #12] ; (298 <frame_dummy+0x10>)
28c: b11b cbz r3, 296 <frame_dummy+0xe>
28e: 4903 ldr r1, [pc, #12] ; (29c <frame_dummy+0x14>)
290: 4803 ldr r0, [pc, #12] ; (2a0 <frame_dummy+0x18>)
292: f3af 8000 nop.w
296: bd08 pop {r3, pc}
298: 00000000 .word 0x00000000
29c: 2000007c .word 0x2000007c
2a0: 00024728 .word 0x00024728
000002a4 <io_write>:
/**
* \brief I/O write interface
*/
int32_t io_write(struct io_descriptor *const io_descr, const uint8_t *const buf, const uint16_t length)
{
2a4: b570 push {r4, r5, r6, lr}
2a6: 460d mov r5, r1
2a8: 4616 mov r6, r2
ASSERT(io_descr && buf);
2aa: 4604 mov r4, r0
2ac: b110 cbz r0, 2b4 <io_write+0x10>
2ae: 1e08 subs r0, r1, #0
2b0: bf18 it ne
2b2: 2001 movne r0, #1
2b4: 4905 ldr r1, [pc, #20] ; (2cc <io_write+0x28>)
2b6: 4b06 ldr r3, [pc, #24] ; (2d0 <io_write+0x2c>)
2b8: 2234 movs r2, #52 ; 0x34
2ba: 4798 blx r3
return io_descr->write(io_descr, buf, length);
2bc: 6823 ldr r3, [r4, #0]
2be: 4632 mov r2, r6
2c0: 4629 mov r1, r5
2c2: 4620 mov r0, r4
}
2c4: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
return io_descr->write(io_descr, buf, length);
2c8: 4718 bx r3
2ca: bf00 nop
2cc: 0001638c .word 0x0001638c
2d0: 00000615 .word 0x00000615
000002d4 <_irq_set>:
*/
__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
if ((int32_t)(IRQn) >= 0)
{
NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
2d4: 0943 lsrs r3, r0, #5
2d6: 2201 movs r2, #1
2d8: f000 001f and.w r0, r0, #31
2dc: fa02 f000 lsl.w r0, r2, r0
2e0: 3340 adds r3, #64 ; 0x40
2e2: 4a02 ldr r2, [pc, #8] ; (2ec <_irq_set+0x18>)
2e4: f842 0023 str.w r0, [r2, r3, lsl #2]
* \brief Set the given IRQ
*/
void _irq_set(uint8_t n)
{
NVIC_SetPendingIRQ((IRQn_Type)n);
}
2e8: 4770 bx lr
2ea: bf00 nop
2ec: e000e100 .word 0xe000e100
000002f0 <_get_cycles_for_us>:
*/
static inline uint32_t _get_cycles_for_us_internal(const uint16_t us, const uint32_t freq, const uint8_t power)
{
switch (power) {
case 9:
return (us * (freq / 1000000) + 2) / 3;
2f0: 2377 movs r3, #119 ; 0x77
2f2: 4358 muls r0, r3
2f4: 3002 adds r0, #2
* \brief Retrieve the amount of cycles to delay for the given amount of us
*/
uint32_t _get_cycles_for_us(const uint16_t us)
{
return _get_cycles_for_us_internal(us, CONF_CPU_FREQUENCY, CPU_FREQ_POWER);
}
2f6: 2303 movs r3, #3
2f8: fbb0 f0f3 udiv r0, r0, r3
2fc: 4770 bx lr
000002fe <_get_cycles_for_ms>:
*/
static inline uint32_t _get_cycles_for_ms_internal(const uint16_t ms, const uint32_t freq, const uint8_t power)
{
switch (power) {
case 9:
return (ms * (freq / 1000000) + 2) / 3 * 1000;
2fe: 2377 movs r3, #119 ; 0x77
300: 4358 muls r0, r3
302: 3002 adds r0, #2
304: 2303 movs r3, #3
306: fbb0 f0f3 udiv r0, r0, r3
* \brief Retrieve the amount of cycles to delay for the given amount of ms
*/
uint32_t _get_cycles_for_ms(const uint16_t ms)
{
return _get_cycles_for_ms_internal(ms, CONF_CPU_FREQUENCY, CPU_FREQ_POWER);
}
30a: f44f 737a mov.w r3, #1000 ; 0x3e8
30e: 4358 muls r0, r3
310: 4770 bx lr
00000312 <_delay_init>:
* \brief Initialize delay functionality
*/
void _delay_init(void *const hw)
{
(void)hw;
}
312: 4770 bx lr
314: 0000 movs r0, r0
...
00000318 <_delay_cycles>:
__asm(".align 3 \n"
"__delay:\n"
"subs r1, r1, #1\n"
"bhi __delay\n");
#elif defined __GNUC__
__asm(".syntax unified\n"
318: 3901 subs r1, #1
31a: d8fd bhi.n 318 <_delay_cycles>
__asm("__delay:\n"
"subs r1, r1, #1\n"
"bhi.n __delay\n");
#endif
#endif
}
31c: 4770 bx lr
31e: bf00 nop
00000320 <timer_add_timer_task>:
* \param[in] head The pointer to the head of timer task list
* \param[in] task The pointer to task to add
* \param[in] time Current timer time
*/
static void timer_add_timer_task(struct list_descriptor *list, struct timer_task *const new_task, const uint32_t time)
{
320: b5f0 push {r4, r5, r6, r7, lr}
* \return A pointer to the head of the given list or NULL if the list is
* empty
*/
static inline void *list_get_head(const struct list_descriptor *const list)
{
return (void *)list->head;
322: 6805 ldr r5, [r0, #0]
struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list);
if (!head) {
324: b91d cbnz r5, 32e <timer_add_timer_task+0xe>
list_insert_as_head(list, new_task);
326: 4b0f ldr r3, [pc, #60] ; (364 <timer_add_timer_task+0x44>)
if (it == head) {
list_insert_as_head(list, new_task);
} else {
list_insert_after(prev, new_task);
}
}
328: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
list_insert_after(prev, new_task);
32c: 4718 bx r3
if (time_left >= new_task->interval)
32e: f8d1 c008 ldr.w ip, [r1, #8]
332: 462c mov r4, r5
struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list);
334: 2600 movs r6, #0
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
336: f1c2 0e01 rsb lr, r2, #1
time_left = it->interval - (time - it->time_label);
33a: e9d4 3701 ldrd r3, r7, [r4, #4]
if (it->time_label <= time) {
33e: 4293 cmp r3, r2
time_left = it->interval - (time - it->time_label);
340: bf95 itete ls
342: 19db addls r3, r3, r7
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
344: 4473 addhi r3, lr
time_left = it->interval - (time - it->time_label);
346: 1a9b subls r3, r3, r2
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
348: 19db addhi r3, r3, r7
if (time_left >= new_task->interval)
34a: 459c cmp ip, r3
34c: d907 bls.n 35e <timer_add_timer_task+0x3e>
* \return A pointer to the next list element or NULL if there is not next
* element
*/
static inline void *list_get_next_element(const void *const element)
{
return element ? ((struct list_element *)element)->next : NULL;
34e: 6823 ldr r3, [r4, #0]
for (it = head; it; it = (struct timer_task *)list_get_next_element(it)) {
350: 4626 mov r6, r4
352: b913 cbnz r3, 35a <timer_add_timer_task+0x3a>
list_insert_after(prev, new_task);
354: 4b04 ldr r3, [pc, #16] ; (368 <timer_add_timer_task+0x48>)
356: 4630 mov r0, r6
358: e7e6 b.n 328 <timer_add_timer_task+0x8>
35a: 461c mov r4, r3
35c: e7ed b.n 33a <timer_add_timer_task+0x1a>
if (it == head) {
35e: 42a5 cmp r5, r4
360: d0e1 beq.n 326 <timer_add_timer_task+0x6>
362: e7f7 b.n 354 <timer_add_timer_task+0x34>
364: 000005d5 .word 0x000005d5
368: 00000601 .word 0x00000601
0000036c <timer_process_counted>:
/**
* \internal Process interrupts
*/
static void timer_process_counted(struct _timer_device *device)
{
36c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
struct timer_descriptor *timer = CONTAINER_OF(device, struct timer_descriptor, device);
struct timer_task * it = (struct timer_task *)list_get_head(&timer->tasks);
uint32_t time = ++timer->time;
370: e9d0 6504 ldrd r6, r5, [r0, #16]
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
374: 7e03 ldrb r3, [r0, #24]
uint32_t time = ++timer->time;
376: 3601 adds r6, #1
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
378: 07da lsls r2, r3, #31
{
37a: 4604 mov r4, r0
uint32_t time = ++timer->time;
37c: 6106 str r6, [r0, #16]
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
37e: d41f bmi.n 3c0 <timer_process_counted+0x54>
380: 7e03 ldrb r3, [r0, #24]
382: 079b lsls r3, r3, #30
384: d41c bmi.n 3c0 <timer_process_counted+0x54>
}
while (it && ((time - it->time_label) >= it->interval)) {
struct timer_task *tmp = it;
list_remove_head(&timer->tasks);
386: f8df 8044 ldr.w r8, [pc, #68] ; 3cc <timer_process_counted+0x60>
if (TIMER_TASK_REPEAT == tmp->mode) {
tmp->time_label = time;
timer_add_timer_task(&timer->tasks, tmp, time);
38a: f8df 9044 ldr.w r9, [pc, #68] ; 3d0 <timer_process_counted+0x64>
list_remove_head(&timer->tasks);
38e: f100 0714 add.w r7, r0, #20
while (it && ((time - it->time_label) >= it->interval)) {
392: b1cd cbz r5, 3c8 <timer_process_counted+0x5c>
394: 686b ldr r3, [r5, #4]
396: 68aa ldr r2, [r5, #8]
398: 1af3 subs r3, r6, r3
39a: 4293 cmp r3, r2
39c: d314 bcc.n 3c8 <timer_process_counted+0x5c>
list_remove_head(&timer->tasks);
39e: 4638 mov r0, r7
3a0: 47c0 blx r8
if (TIMER_TASK_REPEAT == tmp->mode) {
3a2: 7c2b ldrb r3, [r5, #16]
3a4: 2b01 cmp r3, #1
3a6: d104 bne.n 3b2 <timer_process_counted+0x46>
tmp->time_label = time;
3a8: 606e str r6, [r5, #4]
timer_add_timer_task(&timer->tasks, tmp, time);
3aa: 4632 mov r2, r6
3ac: 4629 mov r1, r5
3ae: 4638 mov r0, r7
3b0: 47c8 blx r9
return (void *)list->head;
3b2: f8d4 a014 ldr.w sl, [r4, #20]
}
it = (struct timer_task *)list_get_head(&timer->tasks);
tmp->cb(tmp);
3b6: 68eb ldr r3, [r5, #12]
3b8: 4628 mov r0, r5
3ba: 4798 blx r3
it = (struct timer_task *)list_get_head(&timer->tasks);
3bc: 4655 mov r5, sl
3be: e7e8 b.n 392 <timer_process_counted+0x26>
timer->flags |= TIMER_FLAG_INTERRUPT_TRIGERRED;
3c0: 7e23 ldrb r3, [r4, #24]
3c2: f043 0302 orr.w r3, r3, #2
3c6: 7623 strb r3, [r4, #24]
}
}
3c8: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
3cc: 00000609 .word 0x00000609
3d0: 00000321 .word 0x00000321
000003d4 <timer_init>:
{
3d4: b538 push {r3, r4, r5, lr}
3d6: 460d mov r5, r1
ASSERT(descr && hw);
3d8: 4604 mov r4, r0
3da: b110 cbz r0, 3e2 <timer_init+0xe>
3dc: 1e08 subs r0, r1, #0
3de: bf18 it ne
3e0: 2001 movne r0, #1
3e2: 223b movs r2, #59 ; 0x3b
3e4: 4905 ldr r1, [pc, #20] ; (3fc <timer_init+0x28>)
3e6: 4b06 ldr r3, [pc, #24] ; (400 <timer_init+0x2c>)
3e8: 4798 blx r3
_timer_init(&descr->device, hw);
3ea: 4b06 ldr r3, [pc, #24] ; (404 <timer_init+0x30>)
3ec: 4629 mov r1, r5
3ee: 4620 mov r0, r4
3f0: 4798 blx r3
descr->device.timer_cb.period_expired = timer_process_counted;
3f2: 4b05 ldr r3, [pc, #20] ; (408 <timer_init+0x34>)
3f4: 6023 str r3, [r4, #0]
descr->time = 0;
3f6: 2000 movs r0, #0
3f8: 6120 str r0, [r4, #16]
}
3fa: bd38 pop {r3, r4, r5, pc}
3fc: 000163a0 .word 0x000163a0
400: 00000615 .word 0x00000615
404: 00000d39 .word 0x00000d39
408: 0000036d .word 0x0000036d
0000040c <timer_start>:
{
40c: b538 push {r3, r4, r5, lr}
ASSERT(descr);
40e: 4605 mov r5, r0
410: 3800 subs r0, #0
412: bf18 it ne
414: 2001 movne r0, #1
416: 4908 ldr r1, [pc, #32] ; (438 <timer_start+0x2c>)
418: 4b08 ldr r3, [pc, #32] ; (43c <timer_start+0x30>)
41a: 2253 movs r2, #83 ; 0x53
41c: 4798 blx r3
if (_timer_is_started(&descr->device)) {
41e: 4b08 ldr r3, [pc, #32] ; (440 <timer_start+0x34>)
420: 4628 mov r0, r5
422: 4798 blx r3
424: 4604 mov r4, r0
426: b920 cbnz r0, 432 <timer_start+0x26>
_timer_start(&descr->device);
428: 4628 mov r0, r5
42a: 4b06 ldr r3, [pc, #24] ; (444 <timer_start+0x38>)
42c: 4798 blx r3
return ERR_NONE;
42e: 4620 mov r0, r4
}
430: bd38 pop {r3, r4, r5, pc}
return ERR_DENIED;
432: f06f 0010 mvn.w r0, #16
436: e7fb b.n 430 <timer_start+0x24>
438: 000163a0 .word 0x000163a0
43c: 00000615 .word 0x00000615
440: 00000e89 .word 0x00000e89
444: 00000e75 .word 0x00000e75
00000448 <timer_add_task>:
{
448: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
44c: 460d mov r5, r1
ASSERT(descr && task);
44e: 4604 mov r4, r0
450: b110 cbz r0, 458 <timer_add_task+0x10>
452: 1e08 subs r0, r1, #0
454: bf18 it ne
456: 2001 movne r0, #1
458: 491e ldr r1, [pc, #120] ; (4d4 <timer_add_task+0x8c>)
45a: f8df 8090 ldr.w r8, [pc, #144] ; 4ec <timer_add_task+0xa4>
45e: 227a movs r2, #122 ; 0x7a
460: 47c0 blx r8
descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN;
462: 7e23 ldrb r3, [r4, #24]
if (is_list_element(&descr->tasks, task)) {
464: f104 0714 add.w r7, r4, #20
descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN;
468: f043 0301 orr.w r3, r3, #1
46c: 7623 strb r3, [r4, #24]
if (is_list_element(&descr->tasks, task)) {
46e: 4629 mov r1, r5
470: 4b19 ldr r3, [pc, #100] ; (4d8 <timer_add_task+0x90>)
472: 4638 mov r0, r7
474: 4798 blx r3
476: 4606 mov r6, r0
478: b160 cbz r0, 494 <timer_add_task+0x4c>
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
47a: 7e23 ldrb r3, [r4, #24]
ASSERT(false);
47c: 4915 ldr r1, [pc, #84] ; (4d4 <timer_add_task+0x8c>)
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
47e: f003 03fe and.w r3, r3, #254 ; 0xfe
ASSERT(false);
482: 2000 movs r0, #0
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
484: 7623 strb r3, [r4, #24]
ASSERT(false);
486: 227f movs r2, #127 ; 0x7f
488: 47c0 blx r8
return ERR_ALREADY_INITIALIZED;
48a: f06f 0011 mvn.w r0, #17
}
48e: b002 add sp, #8
490: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
task->time_label = descr->time;
494: 6922 ldr r2, [r4, #16]
timer_add_timer_task(&descr->tasks, task, descr->time);
496: 4b11 ldr r3, [pc, #68] ; (4dc <timer_add_task+0x94>)
task->time_label = descr->time;
498: 606a str r2, [r5, #4]
timer_add_timer_task(&descr->tasks, task, descr->time);
49a: 4629 mov r1, r5
49c: 4638 mov r0, r7
49e: 4798 blx r3
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
4a0: 7e23 ldrb r3, [r4, #24]
4a2: f003 03fe and.w r3, r3, #254 ; 0xfe
4a6: 7623 strb r3, [r4, #24]
if (descr->flags & TIMER_FLAG_INTERRUPT_TRIGERRED) {
4a8: 7e23 ldrb r3, [r4, #24]
4aa: f013 0302 ands.w r3, r3, #2
4ae: d00e beq.n 4ce <timer_add_task+0x86>
CRITICAL_SECTION_ENTER()
4b0: 4b0b ldr r3, [pc, #44] ; (4e0 <timer_add_task+0x98>)
4b2: a801 add r0, sp, #4
4b4: 4798 blx r3
descr->flags &= ~TIMER_FLAG_INTERRUPT_TRIGERRED;
4b6: 7e23 ldrb r3, [r4, #24]
4b8: f003 03fd and.w r3, r3, #253 ; 0xfd
4bc: 7623 strb r3, [r4, #24]
_timer_set_irq(&descr->device);
4be: 4620 mov r0, r4
4c0: 4b08 ldr r3, [pc, #32] ; (4e4 <timer_add_task+0x9c>)
4c2: 4798 blx r3
CRITICAL_SECTION_LEAVE()
4c4: a801 add r0, sp, #4
4c6: 4b08 ldr r3, [pc, #32] ; (4e8 <timer_add_task+0xa0>)
4c8: 4798 blx r3
return ERR_NONE;
4ca: 4630 mov r0, r6
4cc: e7df b.n 48e <timer_add_task+0x46>
4ce: 4618 mov r0, r3
4d0: e7dd b.n 48e <timer_add_task+0x46>
4d2: bf00 nop
4d4: 000163a0 .word 0x000163a0
4d8: 000005c5 .word 0x000005c5
4dc: 00000321 .word 0x00000321
4e0: 00000f01 .word 0x00000f01
4e4: 00000ea5 .word 0x00000ea5
4e8: 00000f0f .word 0x00000f0f
4ec: 00000615 .word 0x00000615
000004f0 <delay_init>:
/**
* \brief Initialize Delay driver
*/
void delay_init(void *const hw)
{
_delay_init(hardware = hw);
4f0: 4b01 ldr r3, [pc, #4] ; (4f8 <delay_init+0x8>)
4f2: 6018 str r0, [r3, #0]
4f4: 4b01 ldr r3, [pc, #4] ; (4fc <delay_init+0xc>)
4f6: 4718 bx r3
4f8: 20000094 .word 0x20000094
4fc: 00000313 .word 0x00000313
00000500 <delay_us>:
/**
* \brief Perform delay in us
*/
void delay_us(const uint16_t us)
{
_delay_cycles(hardware, _get_cycles_for_us(us));
500: 4b05 ldr r3, [pc, #20] ; (518 <delay_us+0x18>)
{
502: b510 push {r4, lr}
_delay_cycles(hardware, _get_cycles_for_us(us));
504: 681c ldr r4, [r3, #0]
506: 4b05 ldr r3, [pc, #20] ; (51c <delay_us+0x1c>)
508: 4798 blx r3
50a: 4b05 ldr r3, [pc, #20] ; (520 <delay_us+0x20>)
50c: 4601 mov r1, r0
50e: 4620 mov r0, r4
}
510: e8bd 4010 ldmia.w sp!, {r4, lr}
_delay_cycles(hardware, _get_cycles_for_us(us));
514: 4718 bx r3
516: bf00 nop
518: 20000094 .word 0x20000094
51c: 000002f1 .word 0x000002f1
520: 00000319 .word 0x00000319
00000524 <delay_ms>:
/**
* \brief Perform delay in ms
*/
void delay_ms(const uint16_t ms)
{
_delay_cycles(hardware, _get_cycles_for_ms(ms));
524: 4b05 ldr r3, [pc, #20] ; (53c <delay_ms+0x18>)
{
526: b510 push {r4, lr}
_delay_cycles(hardware, _get_cycles_for_ms(ms));
528: 681c ldr r4, [r3, #0]
52a: 4b05 ldr r3, [pc, #20] ; (540 <delay_ms+0x1c>)
52c: 4798 blx r3
52e: 4b05 ldr r3, [pc, #20] ; (544 <delay_ms+0x20>)
530: 4601 mov r1, r0
532: 4620 mov r0, r4
}
534: e8bd 4010 ldmia.w sp!, {r4, lr}
_delay_cycles(hardware, _get_cycles_for_ms(ms));
538: 4718 bx r3
53a: bf00 nop
53c: 20000094 .word 0x20000094
540: 000002ff .word 0x000002ff
544: 00000319 .word 0x00000319
00000548 <_init_chip>:
}
static inline void hri_nvmctrl_set_CTRLA_RWS_bf(const void *const hw, hri_nvmctrl_ctrla_reg_t mask)
{
NVMCTRL_CRITICAL_SECTION_ENTER();
((Nvmctrl *)hw)->CTRLA.reg |= NVMCTRL_CTRLA_RWS(mask);
548: 4a0a ldr r2, [pc, #40] ; (574 <_init_chip+0x2c>)
54a: 8813 ldrh r3, [r2, #0]
54c: b29b uxth r3, r3
/**
* \brief Initialize the hardware abstraction layer
*/
void _init_chip(void)
{
54e: b510 push {r4, lr}
550: f443 63a0 orr.w r3, r3, #1280 ; 0x500
554: 8013 strh r3, [r2, #0]
hri_nvmctrl_set_CTRLA_RWS_bf(NVMCTRL, CONF_NVM_WAIT_STATE);
_osc32kctrl_init_sources();
556: 4b08 ldr r3, [pc, #32] ; (578 <_init_chip+0x30>)
558: 4798 blx r3
_oscctrl_init_sources();
55a: 4b08 ldr r3, [pc, #32] ; (57c <_init_chip+0x34>)
55c: 4798 blx r3
_mclk_init();
55e: 4b08 ldr r3, [pc, #32] ; (580 <_init_chip+0x38>)
560: 4798 blx r3
#if _GCLK_INIT_1ST
_gclk_init_generators_by_fref(_GCLK_INIT_1ST);
#endif
_oscctrl_init_referenced_generators();
562: 4b08 ldr r3, [pc, #32] ; (584 <_init_chip+0x3c>)
564: 4798 blx r3
#endif
#if CONF_CMCC_ENABLE
cache_init();
#endif
}
566: e8bd 4010 ldmia.w sp!, {r4, lr}
_gclk_init_generators_by_fref(_GCLK_INIT_LAST);
56a: 4b07 ldr r3, [pc, #28] ; (588 <_init_chip+0x40>)
56c: f640 70ff movw r0, #4095 ; 0xfff
570: 4718 bx r3
572: bf00 nop
574: 41004000 .word 0x41004000
578: 000009ed .word 0x000009ed
57c: 0000061b .word 0x0000061b
580: 00000659 .word 0x00000659
584: 0000061d .word 0x0000061d
588: 000008e5 .word 0x000008e5
0000058c <RAMECC_Handler>:
return tmp;
}
static inline hri_ramecc_intflag_reg_t hri_ramecc_read_INTFLAG_reg(const void *const hw)
{
return ((Ramecc *)hw)->INTFLAG.reg;
58c: 4a0b ldr r2, [pc, #44] ; (5bc <RAMECC_Handler+0x30>)
58e: 7893 ldrb r3, [r2, #2]
/**
* \internal RAMECC interrupt handler
*/
void RAMECC_Handler(void)
{
590: b082 sub sp, #8
592: b2db uxtb r3, r3
struct _ramecc_device *dev = (struct _ramecc_device *)&device;
volatile uint32_t int_mask = hri_ramecc_read_INTFLAG_reg(RAMECC);
594: 9301 str r3, [sp, #4]
if (int_mask & RAMECC_INTFLAG_DUALE && dev->ramecc_cb.dual_bit_err) {
596: 9b01 ldr r3, [sp, #4]
598: 0799 lsls r1, r3, #30
59a: d505 bpl.n 5a8 <RAMECC_Handler+0x1c>
59c: 4b08 ldr r3, [pc, #32] ; (5c0 <RAMECC_Handler+0x34>)
59e: 681b ldr r3, [r3, #0]
5a0: b113 cbz r3, 5a8 <RAMECC_Handler+0x1c>
return tmp;
}
static inline hri_ramecc_erraddr_reg_t hri_ramecc_read_ERRADDR_reg(const void *const hw)
{
return ((Ramecc *)hw)->ERRADDR.reg;
5a2: 6850 ldr r0, [r2, #4]
} else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) {
dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC));
} else {
return;
}
}
5a4: b002 add sp, #8
dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC));
5a6: 4718 bx r3
} else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) {
5a8: 9b01 ldr r3, [sp, #4]
5aa: 07db lsls r3, r3, #31
5ac: d504 bpl.n 5b8 <RAMECC_Handler+0x2c>
5ae: 4b04 ldr r3, [pc, #16] ; (5c0 <RAMECC_Handler+0x34>)
5b0: 685b ldr r3, [r3, #4]
5b2: b10b cbz r3, 5b8 <RAMECC_Handler+0x2c>
5b4: 4a01 ldr r2, [pc, #4] ; (5bc <RAMECC_Handler+0x30>)
5b6: e7f4 b.n 5a2 <RAMECC_Handler+0x16>
}
5b8: b002 add sp, #8
5ba: 4770 bx lr
5bc: 41020000 .word 0x41020000
5c0: 20000098 .word 0x20000098
000005c4 <is_list_element>:
* \brief Check whether element belongs to list
*/
bool is_list_element(const struct list_descriptor *const list, const void *const element)
{
struct list_element *it;
for (it = list->head; it; it = it->next) {
5c4: 6800 ldr r0, [r0, #0]
5c6: b900 cbnz r0, 5ca <is_list_element+0x6>
5c8: 4770 bx lr
if (it == element) {
5ca: 4288 cmp r0, r1
5cc: d1fa bne.n 5c4 <is_list_element>
return true;
5ce: 2001 movs r0, #1
}
}
return false;
}
5d0: 4770 bx lr
...
000005d4 <list_insert_as_head>:
/**
* \brief Insert an element as list head
*/
void list_insert_as_head(struct list_descriptor *const list, void *const element)
{
5d4: b538 push {r3, r4, r5, lr}
ASSERT(!is_list_element(list, element));
5d6: 4b07 ldr r3, [pc, #28] ; (5f4 <list_insert_as_head+0x20>)
{
5d8: 4604 mov r4, r0
ASSERT(!is_list_element(list, element));
5da: 4798 blx r3
5dc: f080 0001 eor.w r0, r0, #1
{
5e0: 460d mov r5, r1
ASSERT(!is_list_element(list, element));
5e2: 4b05 ldr r3, [pc, #20] ; (5f8 <list_insert_as_head+0x24>)
5e4: 4905 ldr r1, [pc, #20] ; (5fc <list_insert_as_head+0x28>)
5e6: 2239 movs r2, #57 ; 0x39
5e8: b2c0 uxtb r0, r0
5ea: 4798 blx r3
((struct list_element *)element)->next = list->head;
5ec: 6823 ldr r3, [r4, #0]
5ee: 602b str r3, [r5, #0]
list->head = (struct list_element *)element;
5f0: 6025 str r5, [r4, #0]
}
5f2: bd38 pop {r3, r4, r5, pc}
5f4: 000005c5 .word 0x000005c5
5f8: 00000615 .word 0x00000615
5fc: 000163b7 .word 0x000163b7
00000600 <list_insert_after>:
/**
* \brief Insert an element after the given list element
*/
void list_insert_after(void *const after, void *const element)
{
((struct list_element *)element)->next = ((struct list_element *)after)->next;
600: 6803 ldr r3, [r0, #0]
602: 600b str r3, [r1, #0]
((struct list_element *)after)->next = (struct list_element *)element;
604: 6001 str r1, [r0, #0]
}
606: 4770 bx lr
00000608 <list_remove_head>:
/**
* \brief Removes list head
*/
void *list_remove_head(struct list_descriptor *const list)
{
if (list->head) {
608: 6803 ldr r3, [r0, #0]
60a: b10b cbz r3, 610 <list_remove_head+0x8>
struct list_element *tmp = list->head;
list->head = list->head->next;
60c: 681a ldr r2, [r3, #0]
60e: 6002 str r2, [r0, #0]
return (void *)tmp;
}
return NULL;
}
610: 4618 mov r0, r3
612: 4770 bx lr
00000614 <assert>:
/**
* \brief Assert function
*/
void assert(const bool condition, const char *const file, const int line)
{
if (!(condition)) {
614: b900 cbnz r0, 618 <assert+0x4>
__asm("BKPT #0");
616: be00 bkpt 0x0000
}
(void)file;
(void)line;
}
618: 4770 bx lr
0000061a <_oscctrl_init_sources>:
hri_oscctrl_set_XOSCCTRL_ONDEMAND_bit(hw, 1);
#endif
#endif
(void)hw;
}
61a: 4770 bx lr
0000061c <_oscctrl_init_referenced_generators>:
static inline void hri_oscctrl_write_DPLLRATIO_reg(const void *const hw, uint8_t submodule_index,
hri_oscctrl_dpllratio_reg_t data)
{
OSCCTRL_CRITICAL_SECTION_ENTER();
((Oscctrl *)hw)->Dpll[submodule_index].DPLLRATIO.reg = data;
61c: 4b0c ldr r3, [pc, #48] ; (650 <_oscctrl_init_referenced_generators+0x34>)
61e: 4a0d ldr r2, [pc, #52] ; (654 <_oscctrl_init_referenced_generators+0x38>)
620: 635a str r2, [r3, #52] ; 0x34
while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) {
622: 6bda ldr r2, [r3, #60] ; 0x3c
624: f012 0f06 tst.w r2, #6
628: d1fb bne.n 622 <_oscctrl_init_referenced_generators+0x6>
static inline void hri_oscctrl_write_DPLLCTRLB_reg(const void *const hw, uint8_t submodule_index,
hri_oscctrl_dpllctrlb_reg_t data)
{
OSCCTRL_CRITICAL_SECTION_ENTER();
((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLB.reg = data;
62a: f44f 6202 mov.w r2, #2080 ; 0x820
62e: 639a str r2, [r3, #56] ; 0x38
((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLA.reg = data;
630: 2202 movs r2, #2
632: f883 2030 strb.w r2, [r3, #48] ; 0x30
while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) {
636: 4a06 ldr r2, [pc, #24] ; (650 <_oscctrl_init_referenced_generators+0x34>)
638: 6bd3 ldr r3, [r2, #60] ; 0x3c
63a: 0798 lsls r0, r3, #30
63c: d4fc bmi.n 638 <_oscctrl_init_referenced_generators+0x1c>
return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_LOCK)
63e: 4b04 ldr r3, [pc, #16] ; (650 <_oscctrl_init_referenced_generators+0x34>)
640: 6c1a ldr r2, [r3, #64] ; 0x40
#endif
#endif
#if CONF_FDPLL0_CONFIG == 1
#if CONF_FDPLL0_ENABLE == 1
while (!(hri_oscctrl_get_DPLLSTATUS_LOCK_bit(hw, 0) || hri_oscctrl_get_DPLLSTATUS_CLKRDY_bit(hw, 0)))
642: 07d1 lsls r1, r2, #31
644: d402 bmi.n 64c <_oscctrl_init_referenced_generators+0x30>
return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_CLKRDY)
646: 6c1a ldr r2, [r3, #64] ; 0x40
648: 0792 lsls r2, r2, #30
64a: d5f9 bpl.n 640 <_oscctrl_init_referenced_generators+0x24>
hri_gclk_write_GENCTRL_SRC_bf(GCLK, 0, CONF_GCLK_GEN_0_SOURCE);
while (hri_gclk_get_SYNCBUSY_GENCTRL0_bit(GCLK))
;
#endif
(void)hw;
}
64c: 4770 bx lr
64e: bf00 nop
650: 40001000 .word 0x40001000
654: 00010e4d .word 0x00010e4d
00000658 <_mclk_init>:
}
static inline void hri_mclk_write_CPUDIV_reg(const void *const hw, hri_mclk_cpudiv_reg_t data)
{
MCLK_CRITICAL_SECTION_ENTER();
((Mclk *)hw)->CPUDIV.reg = data;
658: 4b01 ldr r3, [pc, #4] ; (660 <_mclk_init+0x8>)
65a: 2201 movs r2, #1
65c: 715a strb r2, [r3, #5]
*/
void _mclk_init(void)
{
void *hw = (void *)MCLK;
hri_mclk_write_CPUDIV_reg(hw, MCLK_CPUDIV_DIV(CONF_MCLK_CPUDIV));
}
65e: 4770 bx lr
660: 40000800 .word 0x40000800
00000664 <hri_sercomusart_wait_for_sync>:
return ((Sercom *)hw)->SPI.SYNCBUSY.reg & reg;
}
static inline void hri_sercomusart_wait_for_sync(const void *const hw, hri_sercomusart_syncbusy_reg_t reg)
{
while (((Sercom *)hw)->USART.SYNCBUSY.reg & reg) {
664: 69c3 ldr r3, [r0, #28]
666: 420b tst r3, r1
668: d1fc bne.n 664 <hri_sercomusart_wait_for_sync>
};
}
66a: 4770 bx lr
0000066c <hri_sercomusart_clear_CTRLA_ENABLE_bit>:
}
static inline void hri_sercomusart_clear_CTRLA_ENABLE_bit(const void *const hw)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.CTRLA.reg &= ~SERCOM_USART_CTRLA_ENABLE;
66c: 6802 ldr r2, [r0, #0]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
66e: 4b03 ldr r3, [pc, #12] ; (67c <hri_sercomusart_clear_CTRLA_ENABLE_bit+0x10>)
((Sercom *)hw)->USART.CTRLA.reg &= ~SERCOM_USART_CTRLA_ENABLE;
670: f022 0202 bic.w r2, r2, #2
674: 6002 str r2, [r0, #0]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
676: 2103 movs r1, #3
678: 4718 bx r3
67a: bf00 nop
67c: 00000665 .word 0x00000665
00000680 <_sercom_get_hardware_index>:
/**
* \brief Retrieve ordinal number of the given sercom hardware instance
*/
static uint8_t _sercom_get_hardware_index(const void *const hw)
{
680: b570 push {r4, r5, r6, lr}
Sercom *const sercom_modules[] = SERCOM_INSTS;
682: 4d0c ldr r5, [pc, #48] ; (6b4 <_sercom_get_hardware_index+0x34>)
{
684: 4606 mov r6, r0
Sercom *const sercom_modules[] = SERCOM_INSTS;
686: cd0f ldmia r5!, {r0, r1, r2, r3}
{
688: b088 sub sp, #32
Sercom *const sercom_modules[] = SERCOM_INSTS;
68a: 466c mov r4, sp
68c: c40f stmia r4!, {r0, r1, r2, r3}
68e: e895 000f ldmia.w r5, {r0, r1, r2, r3}
692: e884 000f stmia.w r4, {r0, r1, r2, r3}
/* Find index for SERCOM instance. */
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
696: 466a mov r2, sp
698: 2300 movs r3, #0
if ((uint32_t)hw == (uint32_t)sercom_modules[i]) {
69a: f852 1b04 ldr.w r1, [r2], #4
69e: 42b1 cmp r1, r6
6a0: d102 bne.n 6a8 <_sercom_get_hardware_index+0x28>
return i;
6a2: b2d8 uxtb r0, r3
}
}
return 0;
}
6a4: b008 add sp, #32
6a6: bd70 pop {r4, r5, r6, pc}
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
6a8: 3301 adds r3, #1
6aa: 2b08 cmp r3, #8
6ac: d1f5 bne.n 69a <_sercom_get_hardware_index+0x1a>
return 0;
6ae: 2000 movs r0, #0
6b0: e7f8 b.n 6a4 <_sercom_get_hardware_index+0x24>
6b2: bf00 nop
6b4: 000163f0 .word 0x000163f0
000006b8 <_sercom_get_irq_num>:
/**
* \brief Retrieve IRQ number for the given hardware instance
*/
static uint8_t _sercom_get_irq_num(const void *const hw)
{
6b8: b508 push {r3, lr}
return SERCOM0_0_IRQn + (_sercom_get_hardware_index(hw) << 2);
6ba: 4b03 ldr r3, [pc, #12] ; (6c8 <_sercom_get_irq_num+0x10>)
6bc: 4798 blx r3
6be: 0080 lsls r0, r0, #2
6c0: 302e adds r0, #46 ; 0x2e
}
6c2: f000 00fe and.w r0, r0, #254 ; 0xfe
6c6: bd08 pop {r3, pc}
6c8: 00000681 .word 0x00000681
000006cc <__NVIC_EnableIRQ>:
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
6cc: 0942 lsrs r2, r0, #5
6ce: 2301 movs r3, #1
6d0: f000 001f and.w r0, r0, #31
6d4: fa03 f000 lsl.w r0, r3, r0
6d8: 4b01 ldr r3, [pc, #4] ; (6e0 <__NVIC_EnableIRQ+0x14>)
6da: f843 0022 str.w r0, [r3, r2, lsl #2]
}
6de: 4770 bx lr
6e0: e000e100 .word 0xe000e100
000006e4 <__NVIC_DisableIRQ>:
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
6e4: 0943 lsrs r3, r0, #5
6e6: 2201 movs r2, #1
6e8: f000 001f and.w r0, r0, #31
6ec: fa02 f000 lsl.w r0, r2, r0
6f0: 3320 adds r3, #32
6f2: 4a04 ldr r2, [pc, #16] ; (704 <__NVIC_DisableIRQ+0x20>)
6f4: f842 0023 str.w r0, [r2, r3, lsl #2]
\details Acts as a special kind of Data Memory Barrier.
It completes when all explicit memory accesses before this instruction complete.
*/
__STATIC_FORCEINLINE void __DSB(void)
{
__ASM volatile ("dsb 0xF":::"memory");
6f8: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
6fc: f3bf 8f6f isb sy
}
700: 4770 bx lr
702: bf00 nop
704: e000e100 .word 0xe000e100
00000708 <__NVIC_ClearPendingIRQ>:
*/
__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
if ((int32_t)(IRQn) >= 0)
{
NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
708: 0943 lsrs r3, r0, #5
70a: 2201 movs r2, #1
70c: f000 001f and.w r0, r0, #31
710: fa02 f000 lsl.w r0, r2, r0
714: 3360 adds r3, #96 ; 0x60
716: 4a02 ldr r2, [pc, #8] ; (720 <__NVIC_ClearPendingIRQ+0x18>)
718: f842 0023 str.w r0, [r2, r3, lsl #2]
}
}
71c: 4770 bx lr
71e: bf00 nop
720: e000e100 .word 0xe000e100
00000724 <_usart_init>:
{
724: b538 push {r3, r4, r5, lr}
uint8_t sercom_offset = _sercom_get_hardware_index(hw);
726: 4b1b ldr r3, [pc, #108] ; (794 <_usart_init+0x70>)
{
728: 4604 mov r4, r0
uint8_t sercom_offset = _sercom_get_hardware_index(hw);
72a: 4798 blx r3
if (_usarts[i].number == sercom_offset) {
72c: 2802 cmp r0, #2
72e: d005 beq.n 73c <_usart_init+0x18>
ASSERT(false);
730: 4919 ldr r1, [pc, #100] ; (798 <_usart_init+0x74>)
732: 4b1a ldr r3, [pc, #104] ; (79c <_usart_init+0x78>)
734: f240 226b movw r2, #619 ; 0x26b
738: 2000 movs r0, #0
73a: 4798 blx r3
return ((Sercom *)hw)->USART.SYNCBUSY.reg & reg;
73c: 69e3 ldr r3, [r4, #28]
73e: 4d18 ldr r5, [pc, #96] ; (7a0 <_usart_init+0x7c>)
if (!hri_sercomusart_is_syncing(hw, SERCOM_USART_SYNCBUSY_SWRST)) {
740: f013 0f01 tst.w r3, #1
744: d10e bne.n 764 <_usart_init+0x40>
static inline hri_sercomusart_ctrla_reg_t hri_sercomusart_get_CTRLA_reg(const void *const hw,
hri_sercomusart_ctrla_reg_t mask)
{
uint32_t tmp;
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
746: 2103 movs r1, #3
748: 4620 mov r0, r4
74a: 47a8 blx r5
tmp = ((Sercom *)hw)->USART.CTRLA.reg;
74c: 6823 ldr r3, [r4, #0]
if (hri_sercomusart_get_CTRLA_reg(hw, SERCOM_USART_CTRLA_ENABLE)) {
74e: 079b lsls r3, r3, #30
750: d503 bpl.n 75a <_usart_init+0x36>
hri_sercomusart_clear_CTRLA_ENABLE_bit(hw);
752: 4b14 ldr r3, [pc, #80] ; (7a4 <_usart_init+0x80>)
754: 4798 blx r3
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_ENABLE);
756: 2102 movs r1, #2
758: 47a8 blx r5
}
static inline void hri_sercomusart_write_CTRLA_reg(const void *const hw, hri_sercomusart_ctrla_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.CTRLA.reg = data;
75a: 2305 movs r3, #5
75c: 6023 str r3, [r4, #0]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
75e: 2103 movs r1, #3
760: 4620 mov r0, r4
762: 47a8 blx r5
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST);
764: 4620 mov r0, r4
766: 2101 movs r1, #1
768: 47a8 blx r5
((Sercom *)hw)->USART.CTRLA.reg = data;
76a: 4b0f ldr r3, [pc, #60] ; (7a8 <_usart_init+0x84>)
76c: 6023 str r3, [r4, #0]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
76e: 2103 movs r1, #3
770: 47a8 blx r5
}
static inline void hri_sercomusart_write_CTRLB_reg(const void *const hw, hri_sercomusart_ctrlb_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.CTRLB.reg = data;
772: f44f 3340 mov.w r3, #196608 ; 0x30000
776: 6063 str r3, [r4, #4]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_MASK);
778: 211f movs r1, #31
77a: 47a8 blx r5
}
static inline void hri_sercomusart_write_CTRLC_reg(const void *const hw, hri_sercomusart_ctrlc_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.CTRLC.reg = data;
77c: 4b0b ldr r3, [pc, #44] ; (7ac <_usart_init+0x88>)
77e: 60a3 str r3, [r4, #8]
}
static inline void hri_sercomusart_write_BAUD_reg(const void *const hw, hri_sercomusart_baud_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.BAUD.reg = data;
780: f64f 4311 movw r3, #64529 ; 0xfc11
784: 81a3 strh r3, [r4, #12]
}
static inline void hri_sercomusart_write_RXPL_reg(const void *const hw, hri_sercomusart_rxpl_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.RXPL.reg = data;
786: 2300 movs r3, #0
788: 73a3 strb r3, [r4, #14]
}
78a: 4618 mov r0, r3
}
static inline void hri_sercomusart_write_DBGCTRL_reg(const void *const hw, hri_sercomusart_dbgctrl_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.DBGCTRL.reg = data;
78c: f884 3030 strb.w r3, [r4, #48] ; 0x30
790: bd38 pop {r3, r4, r5, pc}
792: bf00 nop
794: 00000681 .word 0x00000681
798: 000163d5 .word 0x000163d5
79c: 00000615 .word 0x00000615
7a0: 00000665 .word 0x00000665
7a4: 0000066d .word 0x0000066d
7a8: 40100004 .word 0x40100004
7ac: 00700002 .word 0x00700002
000007b0 <_usart_async_init>:
{
7b0: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
ASSERT(device);
7b4: 4605 mov r5, r0
7b6: 3800 subs r0, #0
7b8: bf18 it ne
7ba: 2001 movne r0, #1
7bc: 4b14 ldr r3, [pc, #80] ; (810 <_usart_async_init+0x60>)
{
7be: 460c mov r4, r1
ASSERT(device);
7c0: 22cb movs r2, #203 ; 0xcb
7c2: 4914 ldr r1, [pc, #80] ; (814 <_usart_async_init+0x64>)
7c4: 4798 blx r3
init_status = _usart_init(hw);
7c6: 4b14 ldr r3, [pc, #80] ; (818 <_usart_async_init+0x68>)
7c8: 4620 mov r0, r4
7ca: 4798 blx r3
if (init_status) {
7cc: 4606 mov r6, r0
7ce: b9d0 cbnz r0, 806 <_usart_async_init+0x56>
if (hw == SERCOM2) {
7d0: 4b12 ldr r3, [pc, #72] ; (81c <_usart_async_init+0x6c>)
device->hw = hw;
7d2: 61ac str r4, [r5, #24]
if (hw == SERCOM2) {
7d4: 429c cmp r4, r3
_sercom2_dev = (struct _usart_async_device *)dev;
7d6: bf08 it eq
7d8: 4b11 ldreq r3, [pc, #68] ; (820 <_usart_async_init+0x70>)
NVIC_DisableIRQ((IRQn_Type)irq);
7da: f8df 8054 ldr.w r8, [pc, #84] ; 830 <_usart_async_init+0x80>
_sercom2_dev = (struct _usart_async_device *)dev;
7de: bf08 it eq
7e0: 601d streq r5, [r3, #0]
uint8_t irq = _sercom_get_irq_num(hw);
7e2: 4620 mov r0, r4
7e4: 4b0f ldr r3, [pc, #60] ; (824 <_usart_async_init+0x74>)
NVIC_ClearPendingIRQ((IRQn_Type)irq);
7e6: 4f10 ldr r7, [pc, #64] ; (828 <_usart_async_init+0x78>)
NVIC_EnableIRQ((IRQn_Type)irq);
7e8: 4d10 ldr r5, [pc, #64] ; (82c <_usart_async_init+0x7c>)
uint8_t irq = _sercom_get_irq_num(hw);
7ea: 4798 blx r3
for (uint32_t i = 0; i < 4; i++) {
7ec: 2100 movs r1, #0
uint8_t irq = _sercom_get_irq_num(hw);
7ee: 4604 mov r4, r0
NVIC_DisableIRQ((IRQn_Type)irq);
7f0: 1863 adds r3, r4, r1
7f2: b2d8 uxtb r0, r3
7f4: 9001 str r0, [sp, #4]
7f6: 47c0 blx r8
NVIC_ClearPendingIRQ((IRQn_Type)irq);
7f8: 9801 ldr r0, [sp, #4]
7fa: 47b8 blx r7
for (uint32_t i = 0; i < 4; i++) {
7fc: 3101 adds r1, #1
NVIC_EnableIRQ((IRQn_Type)irq);
7fe: 9801 ldr r0, [sp, #4]
800: 47a8 blx r5
for (uint32_t i = 0; i < 4; i++) {
802: 2904 cmp r1, #4
804: d1f4 bne.n 7f0 <_usart_async_init+0x40>
}
806: 4630 mov r0, r6
808: b002 add sp, #8
80a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
80e: bf00 nop
810: 00000615 .word 0x00000615
814: 000163d5 .word 0x000163d5
818: 00000725 .word 0x00000725
81c: 41012000 .word 0x41012000
820: 200000a8 .word 0x200000a8
824: 000006b9 .word 0x000006b9
828: 00000709 .word 0x00000709
82c: 000006cd .word 0x000006cd
830: 000006e5 .word 0x000006e5
00000834 <_usart_async_enable>:
hri_sercomusart_set_CTRLA_ENABLE_bit(device->hw);
834: 6980 ldr r0, [r0, #24]
((Sercom *)hw)->USART.CTRLA.reg |= SERCOM_USART_CTRLA_ENABLE;
836: 6803 ldr r3, [r0, #0]
838: f043 0302 orr.w r3, r3, #2
83c: 6003 str r3, [r0, #0]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST | SERCOM_USART_SYNCBUSY_ENABLE);
83e: 2103 movs r1, #3
840: 4b00 ldr r3, [pc, #0] ; (844 <_usart_async_enable+0x10>)
842: 4718 bx r3
844: 00000665 .word 0x00000665
00000848 <_usart_async_write_byte>:
hri_sercomusart_write_DATA_reg(device->hw, data);
848: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.DATA.reg = data;
84a: 6299 str r1, [r3, #40] ; 0x28
}
84c: 4770 bx lr
0000084e <_usart_async_enable_byte_sent_irq>:
hri_sercomusart_set_INTEN_DRE_bit(device->hw);
84e: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_DRE;
850: 2201 movs r2, #1
852: 759a strb r2, [r3, #22]
}
854: 4770 bx lr
00000856 <_usart_async_enable_tx_done_irq>:
hri_sercomusart_set_INTEN_TXC_bit(device->hw);
856: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_TXC;
858: 2202 movs r2, #2
85a: 759a strb r2, [r3, #22]
}
85c: 4770 bx lr
...
00000860 <SERCOM2_0_Handler>:
/**
* \internal Sercom interrupt handler
*/
void SERCOM2_0_Handler(void)
{
_sercom_usart_interrupt_handler(_sercom2_dev);
860: 4b19 ldr r3, [pc, #100] ; (8c8 <SERCOM2_0_Handler+0x68>)
862: 6818 ldr r0, [r3, #0]
{
864: b510 push {r4, lr}
void *hw = device->hw;
866: 6984 ldr r4, [r0, #24]
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) >> SERCOM_USART_INTFLAG_DRE_Pos;
868: 7e23 ldrb r3, [r4, #24]
if (hri_sercomusart_get_interrupt_DRE_bit(hw) && hri_sercomusart_get_INTEN_DRE_bit(hw)) {
86a: 07da lsls r2, r3, #31
86c: d508 bpl.n 880 <SERCOM2_0_Handler+0x20>
return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_DRE) >> SERCOM_USART_INTENSET_DRE_Pos;
86e: 7da3 ldrb r3, [r4, #22]
870: 07db lsls r3, r3, #31
872: d505 bpl.n 880 <SERCOM2_0_Handler+0x20>
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_DRE;
874: 2301 movs r3, #1
876: 7523 strb r3, [r4, #20]
device->usart_cb.tx_byte_sent(device);
878: 6803 ldr r3, [r0, #0]
}
87a: e8bd 4010 ldmia.w sp!, {r4, lr}
device->usart_cb.tx_done_cb(device);
87e: 4718 bx r3
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_TXC) >> SERCOM_USART_INTFLAG_TXC_Pos;
880: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_TXC_bit(hw) && hri_sercomusart_get_INTEN_TXC_bit(hw)) {
882: 0799 lsls r1, r3, #30
884: d506 bpl.n 894 <SERCOM2_0_Handler+0x34>
return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_TXC) >> SERCOM_USART_INTENSET_TXC_Pos;
886: 7da3 ldrb r3, [r4, #22]
888: 079a lsls r2, r3, #30
88a: d503 bpl.n 894 <SERCOM2_0_Handler+0x34>
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_TXC;
88c: 2302 movs r3, #2
88e: 7523 strb r3, [r4, #20]
device->usart_cb.tx_done_cb(device);
890: 6883 ldr r3, [r0, #8]
892: e7f2 b.n 87a <SERCOM2_0_Handler+0x1a>
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_RXC) >> SERCOM_USART_INTFLAG_RXC_Pos;
894: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_RXC_bit(hw)) {
896: 075b lsls r3, r3, #29
898: d50c bpl.n 8b4 <SERCOM2_0_Handler+0x54>
SERCOM_CRITICAL_SECTION_LEAVE();
}
static inline hri_sercomusart_status_reg_t hri_sercomusart_read_STATUS_reg(const void *const hw)
{
return ((Sercom *)hw)->USART.STATUS.reg;
89a: 8b63 ldrh r3, [r4, #26]
if (hri_sercomusart_read_STATUS_reg(hw)
89c: f003 0337 and.w r3, r3, #55 ; 0x37
8a0: b113 cbz r3, 8a8 <SERCOM2_0_Handler+0x48>
((Sercom *)hw)->USART.STATUS.reg = mask;
8a2: 23ff movs r3, #255 ; 0xff
8a4: 8363 strh r3, [r4, #26]
}
8a6: bd10 pop {r4, pc}
return ((Sercom *)hw)->USART.DATA.reg;
8a8: 6aa1 ldr r1, [r4, #40] ; 0x28
device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw));
8aa: 6843 ldr r3, [r0, #4]
}
8ac: e8bd 4010 ldmia.w sp!, {r4, lr}
device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw));
8b0: b2c9 uxtb r1, r1
8b2: 4718 bx r3
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_ERROR) >> SERCOM_USART_INTFLAG_ERROR_Pos;
8b4: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_ERROR_bit(hw)) {
8b6: 09db lsrs r3, r3, #7
8b8: d0f5 beq.n 8a6 <SERCOM2_0_Handler+0x46>
((Sercom *)hw)->USART.INTFLAG.reg = SERCOM_USART_INTFLAG_ERROR;
8ba: 2380 movs r3, #128 ; 0x80
8bc: 7623 strb r3, [r4, #24]
device->usart_cb.error_cb(device);
8be: 68c3 ldr r3, [r0, #12]
8c0: 4798 blx r3
return ((Sercom *)hw)->USART.STATUS.reg;
8c2: 8b63 ldrh r3, [r4, #26]
8c4: b29b uxth r3, r3
8c6: e7ed b.n 8a4 <SERCOM2_0_Handler+0x44>
8c8: 200000a8 .word 0x200000a8
000008cc <SERCOM2_1_Handler>:
8cc: 4b00 ldr r3, [pc, #0] ; (8d0 <SERCOM2_1_Handler+0x4>)
8ce: 4718 bx r3
8d0: 00000861 .word 0x00000861
000008d4 <SERCOM2_2_Handler>:
8d4: 4b00 ldr r3, [pc, #0] ; (8d8 <SERCOM2_2_Handler+0x4>)
8d6: 4718 bx r3
8d8: 00000861 .word 0x00000861
000008dc <SERCOM2_3_Handler>:
8dc: 4b00 ldr r3, [pc, #0] ; (8e0 <SERCOM2_3_Handler+0x4>)
8de: 4718 bx r3
8e0: 00000861 .word 0x00000861
000008e4 <_gclk_init_generators_by_fref>:
void _gclk_init_generators_by_fref(uint32_t bm)
{
#if CONF_GCLK_GENERATOR_0_CONFIG == 1
if (bm & (1ul << 0)) {
8e4: 07c3 lsls r3, r0, #31
8e6: d507 bpl.n 8f8 <_gclk_init_generators_by_fref+0x14>
}
static inline void hri_gclk_write_GENCTRL_reg(const void *const hw, uint8_t index, hri_gclk_genctrl_reg_t data)
{
GCLK_CRITICAL_SECTION_ENTER();
((Gclk *)hw)->GENCTRL[index].reg = data;
8e8: 4b04 ldr r3, [pc, #16] ; (8fc <_gclk_init_generators_by_fref+0x18>)
8ea: 4a05 ldr r2, [pc, #20] ; (900 <_gclk_init_generators_by_fref+0x1c>)
8ec: 621a str r2, [r3, #32]
while (((Gclk *)hw)->SYNCBUSY.reg & reg) {
8ee: f643 72fd movw r2, #16381 ; 0x3ffd
8f2: 6859 ldr r1, [r3, #4]
8f4: 4211 tst r1, r2
8f6: d1fc bne.n 8f2 <_gclk_init_generators_by_fref+0xe>
| (CONF_GCLK_GEN_11_DIVSEL << GCLK_GENCTRL_DIVSEL_Pos) | (CONF_GCLK_GEN_11_OE << GCLK_GENCTRL_OE_Pos)
| (CONF_GCLK_GEN_11_OOV << GCLK_GENCTRL_OOV_Pos) | (CONF_GCLK_GEN_11_IDC << GCLK_GENCTRL_IDC_Pos)
| (CONF_GCLK_GENERATOR_11_CONFIG << GCLK_GENCTRL_GENEN_Pos) | CONF_GCLK_GEN_11_SOURCE);
}
#endif
}
8f8: 4770 bx lr
8fa: bf00 nop
8fc: 40001c00 .word 0x40001c00
900: 00010107 .word 0x00010107
00000904 <Dummy_Handler>:
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
904: e7fe b.n 904 <Dummy_Handler>
...
00000908 <Reset_Handler>:
if (pSrc != pDest) {
908: 4918 ldr r1, [pc, #96] ; (96c <Reset_Handler+0x64>)
90a: 4819 ldr r0, [pc, #100] ; (970 <Reset_Handler+0x68>)
90c: 4281 cmp r1, r0
{
90e: b510 push {r4, lr}
if (pSrc != pDest) {
910: d00a beq.n 928 <Reset_Handler+0x20>
*pDest++ = *pSrc++;
912: 4b18 ldr r3, [pc, #96] ; (974 <Reset_Handler+0x6c>)
914: 1cda adds r2, r3, #3
916: 1a12 subs r2, r2, r0
918: f022 0203 bic.w r2, r2, #3
91c: 1ec4 subs r4, r0, #3
91e: 42a3 cmp r3, r4
920: bf38 it cc
922: 2200 movcc r2, #0
924: 4b14 ldr r3, [pc, #80] ; (978 <Reset_Handler+0x70>)
926: 4798 blx r3
*pDest++ = 0;
928: 4b14 ldr r3, [pc, #80] ; (97c <Reset_Handler+0x74>)
92a: 4815 ldr r0, [pc, #84] ; (980 <Reset_Handler+0x78>)
92c: 1cda adds r2, r3, #3
92e: 1a12 subs r2, r2, r0
930: 1ec1 subs r1, r0, #3
932: f022 0203 bic.w r2, r2, #3
936: 4299 cmp r1, r3
938: bf88 it hi
93a: 2200 movhi r2, #0
93c: 4b11 ldr r3, [pc, #68] ; (984 <Reset_Handler+0x7c>)
93e: 2100 movs r1, #0
940: 4798 blx r3
SCB->VTOR = ((uint32_t)pSrc & SCB_VTOR_TBLOFF_Msk);
942: 4a11 ldr r2, [pc, #68] ; (988 <Reset_Handler+0x80>)
944: 4b11 ldr r3, [pc, #68] ; (98c <Reset_Handler+0x84>)
946: f022 027f bic.w r2, r2, #127 ; 0x7f
94a: 609a str r2, [r3, #8]
SCB->CPACR |= (0xFu << 20);
94c: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88
950: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000
954: f8c3 2088 str.w r2, [r3, #136] ; 0x88
__ASM volatile ("dsb 0xF":::"memory");
958: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
95c: f3bf 8f6f isb sy
__libc_init_array();
960: 4b0b ldr r3, [pc, #44] ; (990 <Reset_Handler+0x88>)
962: 4798 blx r3
main();
964: 4b0b ldr r3, [pc, #44] ; (994 <Reset_Handler+0x8c>)
966: 4798 blx r3
while (1)
968: e7fe b.n 968 <Reset_Handler+0x60>
96a: bf00 nop
96c: 00024728 .word 0x00024728
970: 20000000 .word 0x20000000
974: 20000074 .word 0x20000074
978: 000162f9 .word 0x000162f9
97c: 2000c800 .word 0x2000c800
980: 20000078 .word 0x20000078
984: 00016349 .word 0x00016349
988: 00000000 .word 0x00000000
98c: e000ed00 .word 0xe000ed00
990: 00016291 .word 0x00016291
994: 00000999 .word 0x00000999
00000998 <main>:
#include "oracle.h"
int main(void)
{
998: b508 push {r3, lr}
oracle_init();
99a: 4b02 ldr r3, [pc, #8] ; (9a4 <main+0xc>)
for(;;)
{
oracle_service();
99c: 4c02 ldr r4, [pc, #8] ; (9a8 <main+0x10>)
oracle_init();
99e: 4798 blx r3
oracle_service();
9a0: 47a0 blx r4
for(;;)
9a2: e7fd b.n 9a0 <main+0x8>
9a4: 000009ad .word 0x000009ad
9a8: 000009e5 .word 0x000009e5
000009ac <oracle_init>:
#include "p_ssd1963.h"
#include "p_screen.h"
void oracle_init(void)
{
9ac: b510 push {r4, lr}
* Currently the following initialization functions are supported:
* - System clock initialization
*/
static inline void init_mcu(void)
{
_init_chip();
9ae: 4b07 ldr r3, [pc, #28] ; (9cc <oracle_init+0x20>)
9b0: 4798 blx r3
// init mcu
init_mcu();
// uart init
p_usart_init();
9b2: 4b07 ldr r3, [pc, #28] ; (9d0 <oracle_init+0x24>)
9b4: 4798 blx r3
// i2c init
p_i2c_init();
9b6: 4b07 ldr r3, [pc, #28] ; (9d4 <oracle_init+0x28>)
9b8: 4798 blx r3
// gpio init
p_gpio_init();
9ba: 4b07 ldr r3, [pc, #28] ; (9d8 <oracle_init+0x2c>)
9bc: 4798 blx r3
// time init
p_tcc_init();
9be: 4b07 ldr r3, [pc, #28] ; (9dc <oracle_init+0x30>)
9c0: 4798 blx r3
p_screen_init();
}
9c2: e8bd 4010 ldmia.w sp!, {r4, lr}
p_screen_init();
9c6: 4b06 ldr r3, [pc, #24] ; (9e0 <oracle_init+0x34>)
9c8: 4718 bx r3
9ca: bf00 nop
9cc: 00000549 .word 0x00000549
9d0: 000012c5 .word 0x000012c5
9d4: 00001225 .word 0x00001225
9d8: 0000115d .word 0x0000115d
9dc: 0000124d .word 0x0000124d
9e0: 00001371 .word 0x00001371
000009e4 <oracle_service>:
void oracle_service(void)
{
p_screen_service();
9e4: 4b00 ldr r3, [pc, #0] ; (9e8 <oracle_service+0x4>)
9e6: 4718 bx r3
9e8: 0000141d .word 0x0000141d
000009ec <_osc32kctrl_init_sources>:
}
static inline void hri_osc32kctrl_write_XOSC32K_reg(const void *const hw, hri_osc32kctrl_xosc32k_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->XOSC32K.reg = data;
9ec: 4b06 ldr r3, [pc, #24] ; (a08 <_osc32kctrl_init_sources+0x1c>)
9ee: f242 328e movw r2, #9102 ; 0x238e
9f2: 829a strh r2, [r3, #20]
}
static inline void hri_osc32kctrl_write_CFDCTRL_reg(const void *const hw, hri_osc32kctrl_cfdctrl_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->CFDCTRL.reg = data;
9f4: 2200 movs r2, #0
9f6: 759a strb r2, [r3, #22]
}
static inline void hri_osc32kctrl_write_EVCTRL_reg(const void *const hw, hri_osc32kctrl_evctrl_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->EVCTRL.reg = data;
9f8: 75da strb r2, [r3, #23]
}
static inline hri_osc32kctrl_osculp32k_reg_t hri_osc32kctrl_read_OSCULP32K_CALIB_bf(const void *const hw)
{
uint32_t tmp;
tmp = ((Osc32kctrl *)hw)->OSCULP32K.reg;
9fa: 69da ldr r2, [r3, #28]
calib = hri_osc32kctrl_read_OSCULP32K_CALIB_bf(hw);
hri_osc32kctrl_write_OSCULP32K_reg(hw,
#if CONF_OSCULP32K_CALIB_ENABLE == 1
OSC32KCTRL_OSCULP32K_CALIB(CONF_OSCULP32K_CALIB)
#else
OSC32KCTRL_OSCULP32K_CALIB(calib)
9fc: f402 527c and.w r2, r2, #16128 ; 0x3f00
}
static inline void hri_osc32kctrl_write_OSCULP32K_reg(const void *const hw, hri_osc32kctrl_osculp32k_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->OSCULP32K.reg = data;
a00: 61da str r2, [r3, #28]
((Osc32kctrl *)hw)->RTCCTRL.reg = data;
a02: 2201 movs r2, #1
a04: 741a strb r2, [r3, #16]
#endif
#endif
hri_osc32kctrl_write_RTCCTRL_reg(hw, OSC32KCTRL_RTCCTRL_RTCSEL(CONF_RTCCTRL));
(void)calib;
}
a06: 4770 bx lr
a08: 40001400 .word 0x40001400
00000a0c <usart_transmission_complete>:
*/
static void usart_transmission_complete(struct _usart_async_device *device)
{
struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device);
descr->stat = 0;
a0c: 2300 movs r3, #0
a0e: 6283 str r3, [r0, #40] ; 0x28
if (descr->usart_cb.tx_done) {
a10: 69c3 ldr r3, [r0, #28]
a12: b10b cbz r3, a18 <usart_transmission_complete+0xc>
descr->usart_cb.tx_done(descr);
a14: 3808 subs r0, #8
a16: 4718 bx r3
}
}
a18: 4770 bx lr
00000a1a <usart_error>:
*/
static void usart_error(struct _usart_async_device *device)
{
struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device);
descr->stat = 0;
a1a: 2300 movs r3, #0
a1c: 6283 str r3, [r0, #40] ; 0x28
if (descr->usart_cb.error) {
a1e: 6a43 ldr r3, [r0, #36] ; 0x24
a20: b10b cbz r3, a26 <usart_error+0xc>
descr->usart_cb.error(descr);
a22: 3808 subs r0, #8
a24: 4718 bx r3
}
}
a26: 4770 bx lr
00000a28 <usart_fill_rx_buffer>:
{
a28: b570 push {r4, r5, r6, lr}
a2a: 4604 mov r4, r0
ringbuffer_put(&descr->rx, data);
a2c: 4b05 ldr r3, [pc, #20] ; (a44 <usart_fill_rx_buffer+0x1c>)
a2e: f1a0 0508 sub.w r5, r0, #8
a32: 302c adds r0, #44 ; 0x2c
a34: 4798 blx r3
if (descr->usart_cb.rx_done) {
a36: 6a23 ldr r3, [r4, #32]
a38: b11b cbz r3, a42 <usart_fill_rx_buffer+0x1a>
descr->usart_cb.rx_done(descr);
a3a: 4628 mov r0, r5
}
a3c: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
descr->usart_cb.rx_done(descr);
a40: 4718 bx r3
}
a42: bd70 pop {r4, r5, r6, pc}
a44: 00000c79 .word 0x00000c79
00000a48 <usart_async_write>:
{
a48: b570 push {r4, r5, r6, lr}
a4a: 460e mov r6, r1
a4c: 4615 mov r5, r2
ASSERT(descr && buf && length);
a4e: 4604 mov r4, r0
a50: b118 cbz r0, a5a <usart_async_write+0x12>
a52: b1d9 cbz r1, a8c <usart_async_write+0x44>
a54: 1e10 subs r0, r2, #0
a56: bf18 it ne
a58: 2001 movne r0, #1
a5a: 4b0f ldr r3, [pc, #60] ; (a98 <usart_async_write+0x50>)
a5c: 490f ldr r1, [pc, #60] ; (a9c <usart_async_write+0x54>)
a5e: f240 123b movw r2, #315 ; 0x13b
a62: 4798 blx r3
if (descr->tx_por != descr->tx_buffer_length) {
a64: f8b4 2044 ldrh.w r2, [r4, #68] ; 0x44
a68: f8b4 304c ldrh.w r3, [r4, #76] ; 0x4c
a6c: 429a cmp r2, r3
a6e: d10f bne.n a90 <usart_async_write+0x48>
descr->tx_por = 0;
a70: 2300 movs r3, #0
a72: f8a4 3044 strh.w r3, [r4, #68] ; 0x44
descr->stat = USART_ASYNC_STATUS_BUSY;
a76: 2301 movs r3, #1
a78: 6323 str r3, [r4, #48] ; 0x30
_usart_async_enable_byte_sent_irq(&descr->device);
a7a: f104 0008 add.w r0, r4, #8
a7e: 4b08 ldr r3, [pc, #32] ; (aa0 <usart_async_write+0x58>)
descr->tx_buffer = (uint8_t *)buf;
a80: 64a6 str r6, [r4, #72] ; 0x48
descr->tx_buffer_length = length;
a82: f8a4 504c strh.w r5, [r4, #76] ; 0x4c
_usart_async_enable_byte_sent_irq(&descr->device);
a86: 4798 blx r3
return (int32_t)length;
a88: 4628 mov r0, r5
}
a8a: bd70 pop {r4, r5, r6, pc}
ASSERT(descr && buf && length);
a8c: 4608 mov r0, r1
a8e: e7e4 b.n a5a <usart_async_write+0x12>
return ERR_NO_RESOURCE;
a90: f06f 001b mvn.w r0, #27
a94: e7f9 b.n a8a <usart_async_write+0x42>
a96: bf00 nop
a98: 00000615 .word 0x00000615
a9c: 00016439 .word 0x00016439
aa0: 0000084f .word 0x0000084f
00000aa4 <usart_process_byte_sent>:
if (descr->tx_por != descr->tx_buffer_length) {
aa4: 8f83 ldrh r3, [r0, #60] ; 0x3c
aa6: f8b0 2044 ldrh.w r2, [r0, #68] ; 0x44
aaa: 429a cmp r2, r3
{
aac: b510 push {r4, lr}
aae: 4604 mov r4, r0
if (descr->tx_por != descr->tx_buffer_length) {
ab0: d00a beq.n ac8 <usart_process_byte_sent+0x24>
_usart_async_write_byte(&descr->device, descr->tx_buffer[descr->tx_por++]);
ab2: 6c02 ldr r2, [r0, #64] ; 0x40
ab4: 1c59 adds r1, r3, #1
ab6: 8781 strh r1, [r0, #60] ; 0x3c
ab8: 5cd1 ldrb r1, [r2, r3]
aba: 4b04 ldr r3, [pc, #16] ; (acc <usart_process_byte_sent+0x28>)
abc: 4798 blx r3
_usart_async_enable_byte_sent_irq(&descr->device);
abe: 4b04 ldr r3, [pc, #16] ; (ad0 <usart_process_byte_sent+0x2c>)
ac0: 4620 mov r0, r4
}
ac2: e8bd 4010 ldmia.w sp!, {r4, lr}
_usart_async_enable_tx_done_irq(&descr->device);
ac6: 4718 bx r3
ac8: 4b02 ldr r3, [pc, #8] ; (ad4 <usart_process_byte_sent+0x30>)
aca: e7fa b.n ac2 <usart_process_byte_sent+0x1e>
acc: 00000849 .word 0x00000849
ad0: 0000084f .word 0x0000084f
ad4: 00000857 .word 0x00000857
00000ad8 <usart_async_read>:
{
ad8: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
adc: 460e mov r6, r1
ade: 4617 mov r7, r2
ASSERT(descr && buf && length);
ae0: 4604 mov r4, r0
ae2: b118 cbz r0, aec <usart_async_read+0x14>
ae4: b1e9 cbz r1, b22 <usart_async_read+0x4a>
ae6: 1e10 subs r0, r2, #0
ae8: bf18 it ne
aea: 2001 movne r0, #1
aec: 4910 ldr r1, [pc, #64] ; (b30 <usart_async_read+0x58>)
aee: 4b11 ldr r3, [pc, #68] ; (b34 <usart_async_read+0x5c>)
ringbuffer_get(&descr->rx, &buf[was_read++]);
af0: f8df 9050 ldr.w r9, [pc, #80] ; b44 <usart_async_read+0x6c>
ASSERT(descr && buf && length);
af4: f44f 72ac mov.w r2, #344 ; 0x158
af8: 4798 blx r3
num = ringbuffer_num(&descr->rx);
afa: 3434 adds r4, #52 ; 0x34
CRITICAL_SECTION_ENTER()
afc: 4b0e ldr r3, [pc, #56] ; (b38 <usart_async_read+0x60>)
afe: a801 add r0, sp, #4
b00: 4798 blx r3
num = ringbuffer_num(&descr->rx);
b02: 4b0e ldr r3, [pc, #56] ; (b3c <usart_async_read+0x64>)
b04: 4620 mov r0, r4
b06: 4798 blx r3
CRITICAL_SECTION_LEAVE()
b08: 4b0d ldr r3, [pc, #52] ; (b40 <usart_async_read+0x68>)
num = ringbuffer_num(&descr->rx);
b0a: 4680 mov r8, r0
CRITICAL_SECTION_LEAVE()
b0c: a801 add r0, sp, #4
b0e: 4798 blx r3
while ((was_read < num) && (was_read < length)) {
b10: 2500 movs r5, #0
b12: 45a8 cmp r8, r5
b14: d001 beq.n b1a <usart_async_read+0x42>
b16: 42bd cmp r5, r7
b18: d105 bne.n b26 <usart_async_read+0x4e>
}
b1a: 4628 mov r0, r5
b1c: b003 add sp, #12
b1e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
ASSERT(descr && buf && length);
b22: 4608 mov r0, r1
b24: e7e2 b.n aec <usart_async_read+0x14>
ringbuffer_get(&descr->rx, &buf[was_read++]);
b26: 1971 adds r1, r6, r5
b28: 4620 mov r0, r4
b2a: 47c8 blx r9
b2c: 3501 adds r5, #1
b2e: e7f0 b.n b12 <usart_async_read+0x3a>
b30: 00016439 .word 0x00016439
b34: 00000615 .word 0x00000615
b38: 00000f01 .word 0x00000f01
b3c: 00000cbd .word 0x00000cbd
b40: 00000f0f .word 0x00000f0f
b44: 00000c39 .word 0x00000c39
00000b48 <usart_async_init>:
{
b48: b5f8 push {r3, r4, r5, r6, r7, lr}
b4a: 460d mov r5, r1
b4c: 4616 mov r6, r2
b4e: 461f mov r7, r3
ASSERT(descr && hw && rx_buffer && rx_buffer_length);
b50: 4604 mov r4, r0
b52: b120 cbz r0, b5e <usart_async_init+0x16>
b54: b309 cbz r1, b9a <usart_async_init+0x52>
b56: b312 cbz r2, b9e <usart_async_init+0x56>
b58: 1e18 subs r0, r3, #0
b5a: bf18 it ne
b5c: 2001 movne r0, #1
b5e: 4912 ldr r1, [pc, #72] ; (ba8 <usart_async_init+0x60>)
b60: 4b12 ldr r3, [pc, #72] ; (bac <usart_async_init+0x64>)
b62: 223a movs r2, #58 ; 0x3a
b64: 4798 blx r3
if (ERR_NONE != ringbuffer_init(&descr->rx, rx_buffer, rx_buffer_length)) {
b66: 4b12 ldr r3, [pc, #72] ; (bb0 <usart_async_init+0x68>)
b68: 463a mov r2, r7
b6a: 4631 mov r1, r6
b6c: f104 0034 add.w r0, r4, #52 ; 0x34
b70: 4798 blx r3
b72: b9b0 cbnz r0, ba2 <usart_async_init+0x5a>
init_status = _usart_async_init(&descr->device, hw);
b74: 4b0f ldr r3, [pc, #60] ; (bb4 <usart_async_init+0x6c>)
b76: 4629 mov r1, r5
b78: f104 0008 add.w r0, r4, #8
b7c: 4798 blx r3
if (init_status) {
b7e: b958 cbnz r0, b98 <usart_async_init+0x50>
descr->io.read = usart_async_read;
b80: 4b0d ldr r3, [pc, #52] ; (bb8 <usart_async_init+0x70>)
b82: 6063 str r3, [r4, #4]
descr->io.write = usart_async_write;
b84: 4b0d ldr r3, [pc, #52] ; (bbc <usart_async_init+0x74>)
b86: 6023 str r3, [r4, #0]
descr->device.usart_cb.tx_byte_sent = usart_process_byte_sent;
b88: 4b0d ldr r3, [pc, #52] ; (bc0 <usart_async_init+0x78>)
b8a: 60a3 str r3, [r4, #8]
descr->device.usart_cb.rx_done_cb = usart_fill_rx_buffer;
b8c: 4b0d ldr r3, [pc, #52] ; (bc4 <usart_async_init+0x7c>)
b8e: 60e3 str r3, [r4, #12]
descr->device.usart_cb.tx_done_cb = usart_transmission_complete;
b90: 4b0d ldr r3, [pc, #52] ; (bc8 <usart_async_init+0x80>)
b92: 6123 str r3, [r4, #16]
descr->device.usart_cb.error_cb = usart_error;
b94: 4b0d ldr r3, [pc, #52] ; (bcc <usart_async_init+0x84>)
b96: 6163 str r3, [r4, #20]
}
b98: bdf8 pop {r3, r4, r5, r6, r7, pc}
ASSERT(descr && hw && rx_buffer && rx_buffer_length);
b9a: 4608 mov r0, r1
b9c: e7df b.n b5e <usart_async_init+0x16>
b9e: 4610 mov r0, r2
ba0: e7dd b.n b5e <usart_async_init+0x16>
return ERR_INVALID_ARG;
ba2: f06f 000c mvn.w r0, #12
ba6: e7f7 b.n b98 <usart_async_init+0x50>
ba8: 00016439 .word 0x00016439
bac: 00000615 .word 0x00000615
bb0: 00000bfd .word 0x00000bfd
bb4: 000007b1 .word 0x000007b1
bb8: 00000ad9 .word 0x00000ad9
bbc: 00000a49 .word 0x00000a49
bc0: 00000aa5 .word 0x00000aa5
bc4: 00000a29 .word 0x00000a29
bc8: 00000a0d .word 0x00000a0d
bcc: 00000a1b .word 0x00000a1b
00000bd0 <usart_async_enable>:
{
bd0: b510 push {r4, lr}
ASSERT(descr);
bd2: 4604 mov r4, r0
bd4: 3800 subs r0, #0
bd6: bf18 it ne
bd8: 2001 movne r0, #1
bda: 4905 ldr r1, [pc, #20] ; (bf0 <usart_async_enable+0x20>)
bdc: 4b05 ldr r3, [pc, #20] ; (bf4 <usart_async_enable+0x24>)
bde: 2261 movs r2, #97 ; 0x61
be0: 4798 blx r3
_usart_async_enable(&descr->device);
be2: f104 0008 add.w r0, r4, #8
be6: 4b04 ldr r3, [pc, #16] ; (bf8 <usart_async_enable+0x28>)
be8: 4798 blx r3
}
bea: 2000 movs r0, #0
bec: bd10 pop {r4, pc}
bee: bf00 nop
bf0: 00016439 .word 0x00016439
bf4: 00000615 .word 0x00000615
bf8: 00000835 .word 0x00000835
00000bfc <ringbuffer_init>:
/**
* \brief Ringbuffer init
*/
int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size)
{
bfc: b570 push {r4, r5, r6, lr}
bfe: 460e mov r6, r1
c00: 4614 mov r4, r2
ASSERT(rb && buf && size);
c02: 4605 mov r5, r0
c04: b118 cbz r0, c0e <ringbuffer_init+0x12>
c06: b189 cbz r1, c2c <ringbuffer_init+0x30>
c08: 1e10 subs r0, r2, #0
c0a: bf18 it ne
c0c: 2001 movne r0, #1
c0e: 4908 ldr r1, [pc, #32] ; (c30 <ringbuffer_init+0x34>)
c10: 4b08 ldr r3, [pc, #32] ; (c34 <ringbuffer_init+0x38>)
c12: 2228 movs r2, #40 ; 0x28
c14: 4798 blx r3
/*
* buf size must be aligned to power of 2
*/
if ((size & (size - 1)) != 0) {
c16: 1e63 subs r3, r4, #1
c18: ea13 0004 ands.w r0, r3, r4
return ERR_INVALID_ARG;
}
/* size - 1 is faster in calculation */
rb->size = size - 1;
rb->read_index = 0;
c1c: bf03 ittte eq
c1e: e9c5 3001 strdeq r3, r0, [r5, #4]
rb->write_index = rb->read_index;
c22: 60e8 streq r0, [r5, #12]
rb->buf = (uint8_t *)buf;
c24: 602e streq r6, [r5, #0]
return ERR_INVALID_ARG;
c26: f06f 000c mvnne.w r0, #12
return ERR_NONE;
}
c2a: bd70 pop {r4, r5, r6, pc}
ASSERT(rb && buf && size);
c2c: 4608 mov r0, r1
c2e: e7ee b.n c0e <ringbuffer_init+0x12>
c30: 00016456 .word 0x00016456
c34: 00000615 .word 0x00000615
00000c38 <ringbuffer_get>:
/**
* \brief Get one byte from ringbuffer
*
*/
int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data)
{
c38: b538 push {r3, r4, r5, lr}
c3a: 460d mov r5, r1
ASSERT(rb && data);
c3c: 4604 mov r4, r0
c3e: b110 cbz r0, c46 <ringbuffer_get+0xe>
c40: 1e08 subs r0, r1, #0
c42: bf18 it ne
c44: 2001 movne r0, #1
c46: 4b0a ldr r3, [pc, #40] ; (c70 <ringbuffer_get+0x38>)
c48: 490a ldr r1, [pc, #40] ; (c74 <ringbuffer_get+0x3c>)
c4a: 2240 movs r2, #64 ; 0x40
c4c: 4798 blx r3
if (rb->write_index != rb->read_index) {
c4e: e9d4 3202 ldrd r3, r2, [r4, #8]
c52: 429a cmp r2, r3
c54: d009 beq.n c6a <ringbuffer_get+0x32>
*data = rb->buf[rb->read_index & rb->size];
c56: 6862 ldr r2, [r4, #4]
c58: 4013 ands r3, r2
c5a: 6822 ldr r2, [r4, #0]
c5c: 5cd3 ldrb r3, [r2, r3]
c5e: 702b strb r3, [r5, #0]
rb->read_index++;
c60: 68a3 ldr r3, [r4, #8]
c62: 3301 adds r3, #1
c64: 60a3 str r3, [r4, #8]
return ERR_NONE;
c66: 2000 movs r0, #0
}
return ERR_NOT_FOUND;
}
c68: bd38 pop {r3, r4, r5, pc}
return ERR_NOT_FOUND;
c6a: f06f 0009 mvn.w r0, #9
c6e: e7fb b.n c68 <ringbuffer_get+0x30>
c70: 00000615 .word 0x00000615
c74: 00016456 .word 0x00016456
00000c78 <ringbuffer_put>:
/**
* \brief Put one byte to ringbuffer
*
*/
int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data)
{
c78: b538 push {r3, r4, r5, lr}
ASSERT(rb);
c7a: 4604 mov r4, r0
c7c: 3800 subs r0, #0
c7e: bf18 it ne
c80: 2001 movne r0, #1
{
c82: 460d mov r5, r1
ASSERT(rb);
c84: 4b0b ldr r3, [pc, #44] ; (cb4 <ringbuffer_put+0x3c>)
c86: 490c ldr r1, [pc, #48] ; (cb8 <ringbuffer_put+0x40>)
c88: 2251 movs r2, #81 ; 0x51
c8a: 4798 blx r3
rb->buf[rb->write_index & rb->size] = data;
c8c: 68e3 ldr r3, [r4, #12]
c8e: 6862 ldr r2, [r4, #4]
c90: 4013 ands r3, r2
c92: 6822 ldr r2, [r4, #0]
c94: 54d5 strb r5, [r2, r3]
/*
* buffer full strategy: new data will overwrite the oldest data in
* the buffer
*/
if ((rb->write_index - rb->read_index) > rb->size) {
c96: e9d4 2101 ldrd r2, r1, [r4, #4]
c9a: 68e3 ldr r3, [r4, #12]
c9c: 1a59 subs r1, r3, r1
c9e: 4291 cmp r1, r2
rb->read_index = rb->write_index - rb->size;
ca0: bf88 it hi
ca2: 1a9a subhi r2, r3, r2
}
rb->write_index++;
ca4: f103 0301 add.w r3, r3, #1
rb->read_index = rb->write_index - rb->size;
ca8: bf88 it hi
caa: 60a2 strhi r2, [r4, #8]
rb->write_index++;
cac: 60e3 str r3, [r4, #12]
return ERR_NONE;
}
cae: 2000 movs r0, #0
cb0: bd38 pop {r3, r4, r5, pc}
cb2: bf00 nop
cb4: 00000615 .word 0x00000615
cb8: 00016456 .word 0x00016456
00000cbc <ringbuffer_num>:
/**
* \brief Return the element number of ringbuffer
*/
uint32_t ringbuffer_num(const struct ringbuffer *const rb)
{
cbc: b510 push {r4, lr}
ASSERT(rb);
cbe: 4604 mov r4, r0
cc0: 3800 subs r0, #0
cc2: bf18 it ne
cc4: 2001 movne r0, #1
cc6: 4904 ldr r1, [pc, #16] ; (cd8 <ringbuffer_num+0x1c>)
cc8: 4b04 ldr r3, [pc, #16] ; (cdc <ringbuffer_num+0x20>)
cca: 2267 movs r2, #103 ; 0x67
ccc: 4798 blx r3
return rb->write_index - rb->read_index;
cce: e9d4 3002 ldrd r3, r0, [r4, #8]
}
cd2: 1ac0 subs r0, r0, r3
cd4: bd10 pop {r4, pc}
cd6: bf00 nop
cd8: 00016456 .word 0x00016456
cdc: 00000615 .word 0x00000615
00000ce0 <hri_tc_wait_for_sync>:
typedef uint8_t hri_tccount8_per_reg_t;
typedef uint8_t hri_tccount8_perbuf_reg_t;
static inline void hri_tc_wait_for_sync(const void *const hw, hri_tc_syncbusy_reg_t reg)
{
while (((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg) {
ce0: 6903 ldr r3, [r0, #16]
ce2: 420b tst r3, r1
ce4: d1fc bne.n ce0 <hri_tc_wait_for_sync>
};
}
ce6: 4770 bx lr
00000ce8 <get_tc_index>:
* \param[in] hw The pointer to hardware instance
*
* \return The index of TC configuration
*/
static int8_t get_tc_index(const void *const hw)
{
ce8: b570 push {r4, r5, r6, lr}
* \param[in] hw The pointer to hardware instance
*/
static inline uint8_t _get_hardware_offset(const void *const hw)
{
/* List of available TC modules. */
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
cea: 4d10 ldr r5, [pc, #64] ; (d2c <get_tc_index+0x44>)
{
cec: 4606 mov r6, r0
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
cee: cd0f ldmia r5!, {r0, r1, r2, r3}
{
cf0: b088 sub sp, #32
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
cf2: 466c mov r4, sp
cf4: c40f stmia r4!, {r0, r1, r2, r3}
cf6: e895 000f ldmia.w r5, {r0, r1, r2, r3}
cfa: e884 000f stmia.w r4, {r0, r1, r2, r3}
/* Find index for TC instance. */
for (uint32_t i = 0; i < TC_INST_NUM; i++) {
cfe: 466a mov r2, sp
d00: 2000 movs r0, #0
if ((uint32_t)hw == (uint32_t)tc_modules[i]) {
d02: f852 1b04 ldr.w r1, [r2], #4
d06: 42b1 cmp r1, r6
d08: d102 bne.n d10 <get_tc_index+0x28>
if (_tcs[i].number == index) {
d0a: b930 cbnz r0, d1a <get_tc_index+0x32>
}
d0c: b008 add sp, #32
d0e: bd70 pop {r4, r5, r6, pc}
for (uint32_t i = 0; i < TC_INST_NUM; i++) {
d10: 3001 adds r0, #1
d12: 2808 cmp r0, #8
d14: d1f5 bne.n d02 <get_tc_index+0x1a>
return i;
d16: 2000 movs r0, #0
d18: e7f8 b.n d0c <get_tc_index+0x24>
ASSERT(false);
d1a: 2000 movs r0, #0
d1c: 4904 ldr r1, [pc, #16] ; (d30 <get_tc_index+0x48>)
d1e: 4b05 ldr r3, [pc, #20] ; (d34 <get_tc_index+0x4c>)
d20: f44f 729e mov.w r2, #316 ; 0x13c
d24: 4798 blx r3
d26: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
d2a: e7ef b.n d0c <get_tc_index+0x24>
d2c: 00016490 .word 0x00016490
d30: 0001647a .word 0x0001647a
d34: 00000615 .word 0x00000615
00000d38 <_timer_init>:
{
d38: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
int8_t i = get_tc_index(hw);
d3c: 4b45 ldr r3, [pc, #276] ; (e54 <_timer_init+0x11c>)
{
d3e: 4681 mov r9, r0
int8_t i = get_tc_index(hw);
d40: 4608 mov r0, r1
{
d42: 460c mov r4, r1
int8_t i = get_tc_index(hw);
d44: 4798 blx r3
ASSERT(ARRAY_SIZE(_tcs));
d46: 4b44 ldr r3, [pc, #272] ; (e58 <_timer_init+0x120>)
d48: 4944 ldr r1, [pc, #272] ; (e5c <_timer_init+0x124>)
device->hw = hw;
d4a: f8c9 400c str.w r4, [r9, #12]
ASSERT(ARRAY_SIZE(_tcs));
d4e: 228d movs r2, #141 ; 0x8d
int8_t i = get_tc_index(hw);
d50: 4680 mov r8, r0
ASSERT(ARRAY_SIZE(_tcs));
d52: 2001 movs r0, #1
d54: 4798 blx r3
static inline bool hri_tc_is_syncing(const void *const hw, hri_tc_syncbusy_reg_t reg)
{
return ((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg;
d56: 6923 ldr r3, [r4, #16]
d58: 4a41 ldr r2, [pc, #260] ; (e60 <_timer_init+0x128>)
if (!hri_tc_is_syncing(hw, TC_SYNCBUSY_SWRST)) {
d5a: f013 0f01 tst.w r3, #1
d5e: d111 bne.n d84 <_timer_init+0x4c>
}
static inline hri_tc_ctrla_reg_t hri_tc_get_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t mask)
{
uint32_t tmp;
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
d60: 2103 movs r1, #3
d62: 4620 mov r0, r4
d64: 4790 blx r2
tmp = ((Tc *)hw)->COUNT16.CTRLA.reg;
d66: 6823 ldr r3, [r4, #0]
if (hri_tc_get_CTRLA_reg(hw, TC_CTRLA_ENABLE)) {
d68: 079b lsls r3, r3, #30
d6a: d506 bpl.n d7a <_timer_init+0x42>
((Tc *)hw)->COUNT16.CTRLA.reg &= ~TC_CTRLA_ENABLE;
d6c: 6823 ldr r3, [r4, #0]
d6e: f023 0302 bic.w r3, r3, #2
d72: 6023 str r3, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
d74: 4790 blx r2
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_ENABLE);
d76: 2102 movs r1, #2
d78: 4790 blx r2
}
static inline void hri_tc_write_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT16.CTRLA.reg = data;
d7a: 2301 movs r3, #1
d7c: 6023 str r3, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
d7e: 2103 movs r1, #3
d80: 4620 mov r0, r4
d82: 4790 blx r2
hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a);
d84: 4f37 ldr r7, [pc, #220] ; (e64 <_timer_init+0x12c>)
d86: 2514 movs r5, #20
d88: fb05 7508 mla r5, r5, r8, r7
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST);
d8c: 2101 movs r1, #1
d8e: 4620 mov r0, r4
d90: 4790 blx r2
hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a);
d92: 6a6e ldr r6, [r5, #36] ; 0x24
((Tc *)hw)->COUNT16.CTRLA.reg = data;
d94: 6026 str r6, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
d96: 2103 movs r1, #3
d98: 4790 blx r2
hri_tc_write_DBGCTRL_reg(hw, _tcs[i].dbg_ctrl);
d9a: f895 302a ldrb.w r3, [r5, #42] ; 0x2a
}
static inline void hri_tc_write_DBGCTRL_reg(const void *const hw, hri_tc_dbgctrl_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT16.DBGCTRL.reg = data;
d9e: 73e3 strb r3, [r4, #15]
if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) {
da0: f006 060c and.w r6, r6, #12
hri_tc_write_EVCTRL_reg(hw, _tcs[i].event_ctrl);
da4: 8d2b ldrh r3, [r5, #40] ; 0x28
((Tc *)hw)->COUNT16.EVCTRL.reg = data;
da6: 80e3 strh r3, [r4, #6]
if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) {
da8: 2e08 cmp r6, #8
((Tc *)hw)->COUNT16.WAVE.reg = data;
daa: f04f 0301 mov.w r3, #1
dae: 7323 strb r3, [r4, #12]
db0: d13a bne.n e28 <_timer_init+0xf0>
hri_tccount32_write_CC_reg(hw, 0, _tcs[i].cc0);
db2: 6aeb ldr r3, [r5, #44] ; 0x2c
}
static inline void hri_tccount32_write_CC_reg(const void *const hw, uint8_t index, hri_tccount32_cc_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT32.CC[index].reg = data;
db4: 61e3 str r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
db6: 21c0 movs r1, #192 ; 0xc0
db8: 4790 blx r2
((Tc *)hw)->COUNT32.CC[index].reg = data;
dba: 2300 movs r3, #0
dbc: 6223 str r3, [r4, #32]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER);
dbe: 4790 blx r2
((Tc *)hw)->COUNT16.INTENSET.reg = TC_INTENSET_OVF;
dc0: 2301 movs r3, #1
dc2: 7263 strb r3, [r4, #9]
if (hw == TC0) {
dc4: 4b28 ldr r3, [pc, #160] ; (e68 <_timer_init+0x130>)
dc6: 429c cmp r4, r3
_tc0_dev = (struct _timer_device *)dev;
dc8: bf04 itt eq
dca: 4b28 ldreq r3, [pc, #160] ; (e6c <_timer_init+0x134>)
dcc: f8c3 9000 streq.w r9, [r3]
NVIC_DisableIRQ(_tcs[i].irq);
dd0: 2314 movs r3, #20
dd2: fb03 7308 mla r3, r3, r8, r7
dd6: f9b3 3022 ldrsh.w r3, [r3, #34] ; 0x22
if ((int32_t)(IRQn) >= 0)
dda: 2b00 cmp r3, #0
ddc: db0d blt.n dfa <_timer_init+0xc2>
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
dde: 095a lsrs r2, r3, #5
de0: 2101 movs r1, #1
de2: f003 031f and.w r3, r3, #31
de6: fa01 f303 lsl.w r3, r1, r3
dea: 3220 adds r2, #32
dec: 4920 ldr r1, [pc, #128] ; (e70 <_timer_init+0x138>)
dee: f841 3022 str.w r3, [r1, r2, lsl #2]
__ASM volatile ("dsb 0xF":::"memory");
df2: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
df6: f3bf 8f6f isb sy
NVIC_ClearPendingIRQ(_tcs[i].irq);
dfa: 2014 movs r0, #20
dfc: fb00 7708 mla r7, r0, r8, r7
e00: f9b7 3022 ldrsh.w r3, [r7, #34] ; 0x22
if ((int32_t)(IRQn) >= 0)
e04: 2b00 cmp r3, #0
e06: db0c blt.n e22 <_timer_init+0xea>
NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
e08: f003 011f and.w r1, r3, #31
e0c: 095b lsrs r3, r3, #5
e0e: 009b lsls r3, r3, #2
e10: f103 4360 add.w r3, r3, #3758096384 ; 0xe0000000
e14: f503 4361 add.w r3, r3, #57600 ; 0xe100
e18: 2201 movs r2, #1
e1a: 408a lsls r2, r1
e1c: f8c3 2180 str.w r2, [r3, #384] ; 0x180
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
e20: 601a str r2, [r3, #0]
}
e22: 2000 movs r0, #0
e24: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
} else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT16) {
e28: b92e cbnz r6, e36 <_timer_init+0xfe>
hri_tccount16_write_CC_reg(hw, 0, (uint16_t)_tcs[i].cc0);
e2a: 8dab ldrh r3, [r5, #44] ; 0x2c
((Tc *)hw)->COUNT16.CC[index].reg = data;
e2c: 83a3 strh r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
e2e: 21c0 movs r1, #192 ; 0xc0
e30: 4790 blx r2
((Tc *)hw)->COUNT16.CC[index].reg = data;
e32: 83e6 strh r6, [r4, #30]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
e34: e7c3 b.n dbe <_timer_init+0x86>
} else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT8) {
e36: 2e04 cmp r6, #4
e38: d1c2 bne.n dc0 <_timer_init+0x88>
hri_tccount8_write_CC_reg(hw, 0, (uint8_t)_tcs[i].cc0);
e3a: f895 302c ldrb.w r3, [r5, #44] ; 0x2c
((Tc *)hw)->COUNT8.CC[index].reg = data;
e3e: 7723 strb r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
e40: 21c0 movs r1, #192 ; 0xc0
e42: 4790 blx r2
((Tc *)hw)->COUNT8.CC[index].reg = data;
e44: 2300 movs r3, #0
e46: 7763 strb r3, [r4, #29]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
e48: 4790 blx r2
hri_tccount8_write_PER_reg(hw, _tcs[i].per);
e4a: f895 302b ldrb.w r3, [r5, #43] ; 0x2b
((Tc *)hw)->COUNT8.PER.reg = data;
e4e: 76e3 strb r3, [r4, #27]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER);
e50: 2120 movs r1, #32
e52: e7b4 b.n dbe <_timer_init+0x86>
e54: 00000ce9 .word 0x00000ce9
e58: 00000615 .word 0x00000615
e5c: 0001647a .word 0x0001647a
e60: 00000ce1 .word 0x00000ce1
e64: 00016490 .word 0x00016490
e68: 40003800 .word 0x40003800
e6c: 200000ac .word 0x200000ac
e70: e000e100 .word 0xe000e100
00000e74 <_timer_start>:
hri_tc_set_CTRLA_ENABLE_bit(device->hw);
e74: 68c0 ldr r0, [r0, #12]
((Tc *)hw)->COUNT16.CTRLA.reg |= TC_CTRLA_ENABLE;
e76: 6803 ldr r3, [r0, #0]
e78: f043 0302 orr.w r3, r3, #2
e7c: 6003 str r3, [r0, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
e7e: 2103 movs r1, #3
e80: 4b00 ldr r3, [pc, #0] ; (e84 <_timer_start+0x10>)
e82: 4718 bx r3
e84: 00000ce1 .word 0x00000ce1
00000e88 <_timer_is_started>:
{
e88: b508 push {r3, lr}
return hri_tc_get_CTRLA_ENABLE_bit(device->hw);
e8a: 68c0 ldr r0, [r0, #12]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
e8c: 4b03 ldr r3, [pc, #12] ; (e9c <_timer_is_started+0x14>)
e8e: 2103 movs r1, #3
e90: 4798 blx r3
tmp = ((Tc *)hw)->COUNT16.CTRLA.reg;
e92: 6800 ldr r0, [r0, #0]
}
e94: f3c0 0040 ubfx r0, r0, #1, #1
e98: bd08 pop {r3, pc}
e9a: bf00 nop
e9c: 00000ce1 .word 0x00000ce1
00000ea0 <_tc_get_timer>:
}
ea0: 2000 movs r0, #0
ea2: 4770 bx lr
00000ea4 <_timer_set_irq>:
{
ea4: b510 push {r4, lr}
int8_t i = get_tc_index(hw);
ea6: 4b0a ldr r3, [pc, #40] ; (ed0 <_timer_set_irq+0x2c>)
ea8: 68c0 ldr r0, [r0, #12]
eaa: 4798 blx r3
ASSERT(ARRAY_SIZE(_tcs));
eac: 4b09 ldr r3, [pc, #36] ; (ed4 <_timer_set_irq+0x30>)
eae: 490a ldr r1, [pc, #40] ; (ed8 <_timer_set_irq+0x34>)
int8_t i = get_tc_index(hw);
eb0: 4604 mov r4, r0
ASSERT(ARRAY_SIZE(_tcs));
eb2: f240 120f movw r2, #271 ; 0x10f
eb6: 2001 movs r0, #1
eb8: 4798 blx r3
_irq_set(_tcs[i].irq);
eba: 4b08 ldr r3, [pc, #32] ; (edc <_timer_set_irq+0x38>)
ebc: 2014 movs r0, #20
ebe: fb00 3004 mla r0, r0, r4, r3
}
ec2: e8bd 4010 ldmia.w sp!, {r4, lr}
_irq_set(_tcs[i].irq);
ec6: f890 0022 ldrb.w r0, [r0, #34] ; 0x22
eca: 4b05 ldr r3, [pc, #20] ; (ee0 <_timer_set_irq+0x3c>)
ecc: 4718 bx r3
ece: bf00 nop
ed0: 00000ce9 .word 0x00000ce9
ed4: 00000615 .word 0x00000615
ed8: 0001647a .word 0x0001647a
edc: 00016490 .word 0x00016490
ee0: 000002d5 .word 0x000002d5
00000ee4 <TC0_Handler>:
tc_interrupt_handler(_tc0_dev);
ee4: 4b05 ldr r3, [pc, #20] ; (efc <TC0_Handler+0x18>)
ee6: 6818 ldr r0, [r3, #0]
void *const hw = device->hw;
ee8: 68c3 ldr r3, [r0, #12]
return (((Tc *)hw)->COUNT16.INTFLAG.reg & TC_INTFLAG_OVF) >> TC_INTFLAG_OVF_Pos;
eea: 7a9a ldrb r2, [r3, #10]
if (hri_tc_get_interrupt_OVF_bit(hw)) {
eec: 07d2 lsls r2, r2, #31
eee: d503 bpl.n ef8 <TC0_Handler+0x14>
((Tc *)hw)->COUNT16.INTFLAG.reg = TC_INTFLAG_OVF;
ef0: 2201 movs r2, #1
ef2: 729a strb r2, [r3, #10]
device->timer_cb.period_expired(device);
ef4: 6803 ldr r3, [r0, #0]
ef6: 4718 bx r3
}
ef8: 4770 bx lr
efa: bf00 nop
efc: 200000ac .word 0x200000ac
00000f00 <atomic_enter_critical>:
__ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
f00: f3ef 8310 mrs r3, PRIMASK
/**
* \brief Disable interrupts, enter critical section
*/
void atomic_enter_critical(hal_atomic_t volatile *atomic)
{
*atomic = __get_PRIMASK();
f04: 6003 str r3, [r0, #0]
__ASM volatile ("cpsid i" : : : "memory");
f06: b672 cpsid i
\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");
f08: f3bf 8f5f dmb sy
__disable_irq();
__DMB();
}
f0c: 4770 bx lr
00000f0e <atomic_leave_critical>:
f0e: f3bf 8f5f dmb sy
* \brief Exit atomic section
*/
void atomic_leave_critical(hal_atomic_t volatile *atomic)
{
__DMB();
__set_PRIMASK(*atomic);
f12: 6803 ldr r3, [r0, #0]
__ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
f14: f383 8810 msr PRIMASK, r3
}
f18: 4770 bx lr
...
00000f1c <gpio_set_pin_direction>:
* GPIO_DIRECTION_OFF = Disables the pin
* (low power state)
*/
static inline void gpio_set_pin_direction(const uint8_t pin, const enum gpio_direction direction)
{
_gpio_set_direction((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), direction);
f1c: 2201 movs r2, #1
f1e: 0943 lsrs r3, r0, #5
* \brief Set direction on port with mask
*/
static inline void _gpio_set_direction(const enum gpio_port port, const uint32_t mask,
const enum gpio_direction direction)
{
switch (direction) {
f20: 4291 cmp r1, r2
f22: f000 001f and.w r0, r0, #31
f26: fa02 f000 lsl.w r0, r2, r0
f2a: d010 beq.n f4e <gpio_set_pin_direction+0x32>
f2c: 2902 cmp r1, #2
f2e: d01f beq.n f70 <gpio_set_pin_direction+0x54>
f30: bb29 cbnz r1, f7e <gpio_set_pin_direction+0x62>
((Port *)hw)->Group[submodule_index].DIRCLR.reg = ~data;
}
static inline void hri_port_clear_DIR_reg(const void *const hw, uint8_t submodule_index, hri_port_dir_reg_t mask)
{
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
f32: 01db lsls r3, r3, #7
f34: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
f38: f503 4300 add.w r3, r3, #32768 ; 0x8000
f3c: 6058 str r0, [r3, #4]
| ((mask & 0xffff0000) >> 16));
break;
case GPIO_DIRECTION_OUT:
hri_port_set_DIR_reg(PORT, port, mask);
hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | (mask & 0xffff));
f3e: b282 uxth r2, r0
f40: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000
hri_port_write_WRCONFIG_reg(
PORT, port, PORT_WRCONFIG_HWSEL | PORT_WRCONFIG_WRPINCFG | ((mask & 0xffff0000) >> 16));
f44: 0c00 lsrs r0, r0, #16
static inline void hri_port_write_WRCONFIG_reg(const void *const hw, uint8_t submodule_index,
hri_port_wrconfig_reg_t data)
{
PORT_CRITICAL_SECTION_ENTER();
((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data;
f46: 629a str r2, [r3, #40] ; 0x28
hri_port_write_WRCONFIG_reg(
f48: f040 4040 orr.w r0, r0, #3221225472 ; 0xc0000000
f4c: e00e b.n f6c <gpio_set_pin_direction+0x50>
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
f4e: 01db lsls r3, r3, #7
hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | PORT_WRCONFIG_INEN | (mask & 0xffff));
f50: b282 uxth r2, r0
f52: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
f56: f503 4300 add.w r3, r3, #32768 ; 0x8000
f5a: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000
f5e: f442 3200 orr.w r2, r2, #131072 ; 0x20000
f62: 6058 str r0, [r3, #4]
((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data;
f64: 629a str r2, [r3, #40] ; 0x28
hri_port_write_WRCONFIG_reg(PORT,
f66: 4a08 ldr r2, [pc, #32] ; (f88 <gpio_set_pin_direction+0x6c>)
f68: ea42 4010 orr.w r0, r2, r0, lsr #16
f6c: 6298 str r0, [r3, #40] ; 0x28
}
f6e: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRSET.reg = mask;
f70: 01db lsls r3, r3, #7
f72: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
f76: f503 4300 add.w r3, r3, #32768 ; 0x8000
f7a: 6098 str r0, [r3, #8]
f7c: e7df b.n f3e <gpio_set_pin_direction+0x22>
break;
default:
ASSERT(false);
f7e: 4903 ldr r1, [pc, #12] ; (f8c <gpio_set_pin_direction+0x70>)
f80: 4b03 ldr r3, [pc, #12] ; (f90 <gpio_set_pin_direction+0x74>)
f82: 2246 movs r2, #70 ; 0x46
f84: 2000 movs r0, #0
f86: 4718 bx r3
f88: c0020000 .word 0xc0020000
f8c: 000164c4 .word 0x000164c4
f90: 00000615 .word 0x00000615
00000f94 <_gpio_set_pin_function>:
/**
* \brief Set gpio pin function
*/
static inline void _gpio_set_pin_function(const uint32_t gpio, const uint32_t function)
{
f94: b530 push {r4, r5, lr}
uint8_t port = GPIO_PORT(gpio);
uint8_t pin = GPIO_PIN(gpio);
if (function == GPIO_PIN_FUNCTION_OFF) {
f96: 1c4b adds r3, r1, #1
uint8_t pin = GPIO_PIN(gpio);
f98: b2c5 uxtb r5, r0
f9a: 4b18 ldr r3, [pc, #96] ; (ffc <_gpio_set_pin_function+0x68>)
f9c: f000 041f and.w r4, r0, #31
uint8_t port = GPIO_PORT(gpio);
fa0: ea4f 1050 mov.w r0, r0, lsr #5
fa4: ea4f 10c0 mov.w r0, r0, lsl #7
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
fa8: 4403 add r3, r0
if (function == GPIO_PIN_FUNCTION_OFF) {
faa: d107 bne.n fbc <_gpio_set_pin_function+0x28>
fac: 4423 add r3, r4
fae: f893 2040 ldrb.w r2, [r3, #64] ; 0x40
tmp &= ~PORT_PINCFG_PMUXEN;
fb2: f002 02fe and.w r2, r2, #254 ; 0xfe
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
fb6: f883 2040 strb.w r2, [r3, #64] ; 0x40
} else {
// Even numbered pin
hri_port_write_PMUX_PMUXE_bf(PORT, port, pin >> 1, function & 0xffff);
}
}
}
fba: bd30 pop {r4, r5, pc}
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
fbc: 1918 adds r0, r3, r4
fbe: eb03 0354 add.w r3, r3, r4, lsr #1
fc2: f890 2040 ldrb.w r2, [r0, #64] ; 0x40
tmp &= ~PORT_PINCFG_PMUXEN;
fc6: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
fca: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
fce: f880 2040 strb.w r2, [r0, #64] ; 0x40
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
fd2: f893 2030 ldrb.w r2, [r3, #48] ; 0x30
if (pin & 1) {
fd6: f015 0f01 tst.w r5, #1
hri_port_write_PMUX_PMUXO_bf(PORT, port, pin >> 1, function & 0xffff);
fda: b2c9 uxtb r1, r1
tmp &= ~PORT_PMUX_PMUXO_Msk;
fdc: bf19 ittee ne
fde: f002 020f andne.w r2, r2, #15
tmp |= PORT_PMUX_PMUXO(data);
fe2: ea42 1101 orrne.w r1, r2, r1, lsl #4
tmp |= PORT_PMUX_PMUXE(data);
fe6: f001 010f andeq.w r1, r1, #15
tmp &= ~PORT_PMUX_PMUXE_Msk;
fea: f002 02f0 andeq.w r2, r2, #240 ; 0xf0
tmp |= PORT_PMUX_PMUXO(data);
fee: bf14 ite ne
ff0: b2c9 uxtbne r1, r1
tmp |= PORT_PMUX_PMUXE(data);
ff2: 4311 orreq r1, r2
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
ff4: f883 1030 strb.w r1, [r3, #48] ; 0x30
}
ff8: e7df b.n fba <_gpio_set_pin_function+0x26>
ffa: bf00 nop
ffc: 41008000 .word 0x41008000
00001000 <gpio_set_pin_pull_mode>:
switch (pull_mode) {
1000: 2901 cmp r1, #1
_gpio_set_pin_pull_mode((enum gpio_port)GPIO_PORT(pin), pin & 0x1F, pull_mode);
1002: ea4f 1350 mov.w r3, r0, lsr #5
1006: f000 001f and.w r0, r0, #31
100a: d00f beq.n 102c <gpio_set_pin_pull_mode+0x2c>
100c: 2902 cmp r1, #2
100e: d01d beq.n 104c <gpio_set_pin_pull_mode+0x4c>
1010: bb69 cbnz r1, 106e <gpio_set_pin_pull_mode+0x6e>
((Port *)hw)->Group[submodule_index].PINCFG[index].reg &= ~PORT_PINCFG_PULLEN;
1012: eb00 10c3 add.w r0, r0, r3, lsl #7
1016: f100 4082 add.w r0, r0, #1090519040 ; 0x41000000
101a: f500 4000 add.w r0, r0, #32768 ; 0x8000
101e: f890 3040 ldrb.w r3, [r0, #64] ; 0x40
1022: f003 03fb and.w r3, r3, #251 ; 0xfb
1026: f880 3040 strb.w r3, [r0, #64] ; 0x40
}
102a: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
102c: 01db lsls r3, r3, #7
102e: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
1032: f503 4300 add.w r3, r3, #32768 ; 0x8000
hri_port_clear_DIR_reg(PORT, port, 1U << pin);
1036: 4081 lsls r1, r0
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
1038: 4418 add r0, r3
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
103a: 6059 str r1, [r3, #4]
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
103c: f890 2040 ldrb.w r2, [r0, #64] ; 0x40
1040: f042 0204 orr.w r2, r2, #4
1044: f880 2040 strb.w r2, [r0, #64] ; 0x40
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1048: 6199 str r1, [r3, #24]
}
104a: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
104c: 01db lsls r3, r3, #7
104e: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
1052: f503 4300 add.w r3, r3, #32768 ; 0x8000
hri_port_clear_DIR_reg(PORT, port, 1U << pin);
1056: 2201 movs r2, #1
1058: 4082 lsls r2, r0
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
105a: 4418 add r0, r3
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
105c: 605a str r2, [r3, #4]
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
105e: f890 1040 ldrb.w r1, [r0, #64] ; 0x40
1062: f041 0104 orr.w r1, r1, #4
1066: f880 1040 strb.w r1, [r0, #64] ; 0x40
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
106a: 615a str r2, [r3, #20]
}
106c: 4770 bx lr
ASSERT(false);
106e: 4902 ldr r1, [pc, #8] ; (1078 <gpio_set_pin_pull_mode+0x78>)
1070: 4b02 ldr r3, [pc, #8] ; (107c <gpio_set_pin_pull_mode+0x7c>)
1072: 2289 movs r2, #137 ; 0x89
1074: 2000 movs r0, #0
1076: 4718 bx r3
1078: 000164c4 .word 0x000164c4
107c: 00000615 .word 0x00000615
00001080 <p_gpio_set_port_data>:
}
}
void p_gpio_set_port_data(PortGroup* const port, const uint32_t mask, const uint32_t data)
{
uint32_t dword = (uint32_t)(SSD1963_TFT_DATA_FIX(data));
1080: 0053 lsls r3, r2, #1
{
1082: b510 push {r4, lr}
uint32_t dword = (uint32_t)(SSD1963_TFT_DATA_FIX(data));
1084: 0154 lsls r4, r2, #5
1086: f404 3470 and.w r4, r4, #245760 ; 0x3c000
108a: f403 737c and.w r3, r3, #1008 ; 0x3f0
108e: 4323 orrs r3, r4
1090: f002 0407 and.w r4, r2, #7
1094: 0352 lsls r2, r2, #13
1096: f002 52e0 and.w r2, r2, #469762048 ; 0x1c000000
109a: 4323 orrs r3, r4
109c: 4313 orrs r3, r2
port->OUTSET.reg = (mask & dword);
109e: ea03 0201 and.w r2, r3, r1
port->OUTCLR.reg = (mask & ~dword);
10a2: ea21 0103 bic.w r1, r1, r3
port->OUTSET.reg = (mask & dword);
10a6: 6182 str r2, [r0, #24]
port->OUTCLR.reg = (mask & ~dword);
10a8: 6141 str r1, [r0, #20]
}
10aa: bd10 pop {r4, pc}
000010ac <p_gpio_parallel_write>:
{
10ac: b538 push {r3, r4, r5, lr}
10ae: 4c05 ldr r4, [pc, #20] ; (10c4 <p_gpio_parallel_write+0x18>)
p_gpio_set_port_data(group, mask, (uint32_t)data);
10b0: 4b05 ldr r3, [pc, #20] ; (10c8 <p_gpio_parallel_write+0x1c>)
10b2: 2540 movs r5, #64 ; 0x40
10b4: 6165 str r5, [r4, #20]
10b6: 4798 blx r3
10b8: 2380 movs r3, #128 ; 0x80
10ba: 6163 str r3, [r4, #20]
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
10bc: 61a3 str r3, [r4, #24]
10be: 61a5 str r5, [r4, #24]
}
10c0: bd38 pop {r3, r4, r5, pc}
10c2: bf00 nop
10c4: 41008000 .word 0x41008000
10c8: 00001081 .word 0x00001081
000010cc <p_gpio_parallel_write_arr>:
{
10cc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
p_gpio_parallel_write(group, mask, data[ind]);
10d0: 4f07 ldr r7, [pc, #28] ; (10f0 <p_gpio_parallel_write_arr+0x24>)
{
10d2: 4688 mov r8, r1
10d4: 4616 mov r6, r2
10d6: 461d mov r5, r3
for(int ind = 0; ind < len; ind++)
10d8: 2400 movs r4, #0
10da: 42a5 cmp r5, r4
10dc: dc01 bgt.n 10e2 <p_gpio_parallel_write_arr+0x16>
}
10de: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
p_gpio_parallel_write(group, mask, data[ind]);
10e2: f836 2014 ldrh.w r2, [r6, r4, lsl #1]
10e6: 4641 mov r1, r8
10e8: 47b8 blx r7
for(int ind = 0; ind < len; ind++)
10ea: 3401 adds r4, #1
10ec: e7f5 b.n 10da <p_gpio_parallel_write_arr+0xe>
10ee: bf00 nop
10f0: 000010ad .word 0x000010ad
000010f4 <p_gpio_set_port_group_config>:
void p_gpio_set_port_group_config(enum gpio_port port, const uint32_t mask, p_port_config* config)
{
10f4: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
for(uint8_t i = 0; i < 32; i++)
{
if(mask & (1UL << i))
{
uint32_t _gpio_pin = GPIO(port, i);
10f8: 0147 lsls r7, r0, #5
gpio_set_pin_direction(_gpio_pin, config->direction);
10fa: 4b15 ldr r3, [pc, #84] ; (1150 <p_gpio_set_port_group_config+0x5c>)
_gpio_set_pin_function(pin, function);
10fc: f8df a058 ldr.w sl, [pc, #88] ; 1158 <p_gpio_set_port_group_config+0x64>
{
1100: 4688 mov r8, r1
1102: 4616 mov r6, r2
uint32_t _gpio_pin = GPIO(port, i);
1104: fa5f fb87 uxtb.w fp, r7
1108: 2500 movs r5, #0
if(mask & (1UL << i))
110a: fa28 f205 lsr.w r2, r8, r5
110e: 07d2 lsls r2, r2, #31
1110: d519 bpl.n 1146 <p_gpio_set_port_group_config+0x52>
uint32_t _gpio_pin = GPIO(port, i);
1112: 19ec adds r4, r5, r7
1114: b2e4 uxtb r4, r4
gpio_set_pin_direction(_gpio_pin, config->direction);
1116: 4620 mov r0, r4
1118: 7871 ldrb r1, [r6, #1]
111a: 4798 blx r3
111c: eb0b 0905 add.w r9, fp, r5
gpio_set_pin_pull_mode(_gpio_pin, config->pull_mode);
1120: 4b0c ldr r3, [pc, #48] ; (1154 <p_gpio_set_port_group_config+0x60>)
1122: 7831 ldrb r1, [r6, #0]
1124: 4620 mov r0, r4
1126: 4798 blx r3
1128: 6871 ldr r1, [r6, #4]
112a: 4648 mov r0, r9
112c: 47d0 blx sl
* \param[in] level true = Pin level set to "high" state
* false = Pin level set to "low" state
*/
static inline void gpio_set_pin_level(const uint8_t pin, const bool level)
{
_gpio_set_level((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), level);
112e: f004 011f and.w r1, r4, #31
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1132: 0964 lsrs r4, r4, #5
1134: 01e4 lsls r4, r4, #7
1136: f104 4482 add.w r4, r4, #1090519040 ; 0x41000000
113a: 2201 movs r2, #1
113c: f504 4400 add.w r4, r4, #32768 ; 0x8000
1140: 408a lsls r2, r1
1142: 4b03 ldr r3, [pc, #12] ; (1150 <p_gpio_set_port_group_config+0x5c>)
1144: 6162 str r2, [r4, #20]
for(uint8_t i = 0; i < 32; i++)
1146: 3501 adds r5, #1
1148: 2d20 cmp r5, #32
114a: d1de bne.n 110a <p_gpio_set_port_group_config+0x16>
gpio_set_pin_function(_gpio_pin, config->function);
gpio_set_pin_level(_gpio_pin, 0);
}
}
}
114c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1150: 00000f1d .word 0x00000f1d
1154: 00001001 .word 0x00001001
1158: 00000f95 .word 0x00000f95
0000115c <p_gpio_init>:
{
115c: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
memset(&data_config, 0, sizeof(data_config));
1160: f04f 0900 mov.w r9, #0
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
1164: 466a mov r2, sp
1166: 4b29 ldr r3, [pc, #164] ; (120c <p_gpio_init+0xb0>)
memset(&data_config, 0, sizeof(data_config));
1168: f8cd 9000 str.w r9, [sp]
data_config.direction = GPIO_DIRECTION_OUT;
116c: 2502 movs r5, #2
data_config.function = GPIO_PIN_FUNCTION_OFF;
116e: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
1172: 4927 ldr r1, [pc, #156] ; (1210 <p_gpio_init+0xb4>)
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
1174: f8df 80a8 ldr.w r8, [pc, #168] ; 1220 <p_gpio_init+0xc4>
data_config.direction = GPIO_DIRECTION_OUT;
1178: f88d 5001 strb.w r5, [sp, #1]
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
117c: 2001 movs r0, #1
data_config.function = GPIO_PIN_FUNCTION_OFF;
117e: 9401 str r4, [sp, #4]
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
1180: 4798 blx r3
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
1182: 4629 mov r1, r5
1184: 2006 movs r0, #6
gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF);
1186: 4f23 ldr r7, [pc, #140] ; (1214 <p_gpio_init+0xb8>)
_gpio_set_pin_function(pin, function);
1188: 4e23 ldr r6, [pc, #140] ; (1218 <p_gpio_init+0xbc>)
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
118a: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF);
118c: 4649 mov r1, r9
118e: 2006 movs r0, #6
1190: 47b8 blx r7
1192: 4621 mov r1, r4
1194: 2006 movs r0, #6
1196: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_nRST, GPIO_DIRECTION_OUT);
1198: 4629 mov r1, r5
119a: 2004 movs r0, #4
119c: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_nRST, GPIO_PULL_OFF);
119e: 4649 mov r1, r9
11a0: 2004 movs r0, #4
11a2: 47b8 blx r7
11a4: 4621 mov r1, r4
11a6: 2004 movs r0, #4
11a8: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_RD, GPIO_DIRECTION_OUT);
11aa: 4629 mov r1, r5
11ac: 2003 movs r0, #3
11ae: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_RD, GPIO_PULL_OFF);
11b0: 4649 mov r1, r9
11b2: 2003 movs r0, #3
11b4: 47b8 blx r7
11b6: 4621 mov r1, r4
11b8: 2003 movs r0, #3
11ba: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_RSDC, GPIO_DIRECTION_OUT);
11bc: 4629 mov r1, r5
11be: 2005 movs r0, #5
11c0: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_RSDC, GPIO_PULL_OFF);
11c2: 4649 mov r1, r9
11c4: 2005 movs r0, #5
11c6: 47b8 blx r7
11c8: 4621 mov r1, r4
11ca: 2005 movs r0, #5
11cc: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_WR, GPIO_DIRECTION_OUT);
11ce: 4629 mov r1, r5
11d0: 2007 movs r0, #7
11d2: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_WR, GPIO_PULL_OFF);
11d4: 4649 mov r1, r9
11d6: 2007 movs r0, #7
11d8: 47b8 blx r7
11da: 4621 mov r1, r4
11dc: 2007 movs r0, #7
11de: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_TE, GPIO_DIRECTION_IN);
11e0: 2101 movs r1, #1
11e2: 2068 movs r0, #104 ; 0x68
11e4: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_TE, GPIO_PULL_DOWN);
11e6: 4629 mov r1, r5
11e8: 2068 movs r0, #104 ; 0x68
11ea: 47b8 blx r7
11ec: 4621 mov r1, r4
11ee: 2068 movs r0, #104 ; 0x68
11f0: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
11f2: 4b0a ldr r3, [pc, #40] ; (121c <p_gpio_init+0xc0>)
11f4: 2240 movs r2, #64 ; 0x40
11f6: 619a str r2, [r3, #24]
11f8: 2210 movs r2, #16
11fa: 619a str r2, [r3, #24]
11fc: 2208 movs r2, #8
11fe: 619a str r2, [r3, #24]
1200: 2280 movs r2, #128 ; 0x80
1202: 619a str r2, [r3, #24]
}
1204: b003 add sp, #12
1206: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
120a: bf00 nop
120c: 000010f5 .word 0x000010f5
1210: 1c03c3f7 .word 0x1c03c3f7
1214: 00001001 .word 0x00001001
1218: 00000f95 .word 0x00000f95
121c: 41008000 .word 0x41008000
1220: 00000f1d .word 0x00000f1d
00001224 <p_i2c_init>:
//// port init
//gpio_set_pin_pull_mode(I2C_MASTER_SDA, GPIO_PULL_OFF);
//gpio_set_pin_function(I2C_MASTER_SDA, I2C_MASTER_SDA_MUX);
//gpio_set_pin_pull_mode(I2C_MASTER_SCL, GPIO_PULL_OFF);
//gpio_set_pin_function(I2C_MASTER_SCL, I2C_MASTER_SCL_MUX);
}
1224: 4770 bx lr
...
00001228 <TIMER_0_task1_cb>:
static volatile uint64_t sys_time = 0;
/**
* Example of using TIMER_0.
*/
static void TIMER_0_task1_cb(const struct timer_task *const timer_task)
{
1228: b410 push {r4}
sys_time++;
122a: 4c06 ldr r4, [pc, #24] ; (1244 <TIMER_0_task1_cb+0x1c>)
122c: e9d4 2300 ldrd r2, r3, [r4]
1230: 1c50 adds r0, r2, #1
1232: f143 0100 adc.w r1, r3, #0
1236: e9c4 0100 strd r0, r1, [r4]
lv_tick_inc(1);
123a: 4b03 ldr r3, [pc, #12] ; (1248 <TIMER_0_task1_cb+0x20>)
}
123c: f85d 4b04 ldr.w r4, [sp], #4
lv_tick_inc(1);
1240: 2001 movs r0, #1
1242: 4718 bx r3
1244: 200000b0 .word 0x200000b0
1248: 0000da79 .word 0x0000da79
0000124c <p_tcc_init>:
//timer_add_task(&p_tcc_inst, &TIMER_0_task2);
timer_start(&p_tcc_inst);
}
void p_tcc_init(void)
{
124c: b570 push {r4, r5, r6, lr}
delay_init(SysTick);
124e: 4812 ldr r0, [pc, #72] ; (1298 <p_tcc_init+0x4c>)
1250: 4b12 ldr r3, [pc, #72] ; (129c <p_tcc_init+0x50>)
hri_mclk_set_APBAMASK_TC0_bit(MCLK);
hri_gclk_write_PCHCTRL_reg(GCLK, TC0_GCLK_ID, CONF_GCLK_TC0_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));
timer_init(&p_tcc_inst, TC0, _tc_get_timer());
1252: 4c13 ldr r4, [pc, #76] ; (12a0 <p_tcc_init+0x54>)
delay_init(SysTick);
1254: 4798 blx r3
}
static inline void hri_mclk_set_APBAMASK_TC0_bit(const void *const hw)
{
MCLK_CRITICAL_SECTION_ENTER();
((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_TC0;
1256: 4a13 ldr r2, [pc, #76] ; (12a4 <p_tcc_init+0x58>)
1258: 6953 ldr r3, [r2, #20]
125a: f443 4380 orr.w r3, r3, #16384 ; 0x4000
125e: 6153 str r3, [r2, #20]
}
static inline void hri_gclk_write_PCHCTRL_reg(const void *const hw, uint8_t index, hri_gclk_pchctrl_reg_t data)
{
GCLK_CRITICAL_SECTION_ENTER();
((Gclk *)hw)->PCHCTRL[index].reg = data;
1260: 4b11 ldr r3, [pc, #68] ; (12a8 <p_tcc_init+0x5c>)
1262: 2240 movs r2, #64 ; 0x40
1264: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
timer_init(&p_tcc_inst, TC0, _tc_get_timer());
1268: 4b10 ldr r3, [pc, #64] ; (12ac <p_tcc_init+0x60>)
126a: 4798 blx r3
126c: f104 051c add.w r5, r4, #28
1270: 4602 mov r2, r0
1272: 490f ldr r1, [pc, #60] ; (12b0 <p_tcc_init+0x64>)
1274: 4b0f ldr r3, [pc, #60] ; (12b4 <p_tcc_init+0x68>)
1276: 4628 mov r0, r5
1278: 4798 blx r3
TIMER_0_task1.interval = 1;
127a: 2301 movs r3, #1
127c: 6123 str r3, [r4, #16]
TIMER_0_task1.cb = TIMER_0_task1_cb;
TIMER_0_task1.mode = TIMER_TASK_REPEAT;
127e: 7623 strb r3, [r4, #24]
TIMER_0_task1.cb = TIMER_0_task1_cb;
1280: 4a0d ldr r2, [pc, #52] ; (12b8 <p_tcc_init+0x6c>)
//TIMER_0_task2.interval = 200;
//TIMER_0_task2.cb = TIMER_0_task2_cb;
//TIMER_0_task2.mode = TIMER_TASK_REPEAT;
timer_add_task(&p_tcc_inst, &TIMER_0_task1);
1282: 4b0e ldr r3, [pc, #56] ; (12bc <p_tcc_init+0x70>)
TIMER_0_task1.cb = TIMER_0_task1_cb;
1284: 6162 str r2, [r4, #20]
timer_add_task(&p_tcc_inst, &TIMER_0_task1);
1286: f104 0108 add.w r1, r4, #8
128a: 4628 mov r0, r5
128c: 4798 blx r3
//timer_add_task(&p_tcc_inst, &TIMER_0_task2);
timer_start(&p_tcc_inst);
128e: 4628 mov r0, r5
1290: 4b0b ldr r3, [pc, #44] ; (12c0 <p_tcc_init+0x74>)
}
1292: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
timer_start(&p_tcc_inst);
1296: 4718 bx r3
1298: e000e010 .word 0xe000e010
129c: 000004f1 .word 0x000004f1
12a0: 200000b0 .word 0x200000b0
12a4: 40000800 .word 0x40000800
12a8: 40001c00 .word 0x40001c00
12ac: 00000ea1 .word 0x00000ea1
12b0: 40003800 .word 0x40003800
12b4: 000003d5 .word 0x000003d5
12b8: 00001229 .word 0x00001229
12bc: 00000449 .word 0x00000449
12c0: 0000040d .word 0x0000040d
000012c4 <p_usart_init>:
12c4: 4b21 ldr r3, [pc, #132] ; (134c <p_usart_init+0x88>)
static uint8_t example_USART_0[12] = "Hello World!";
static uint8_t debug_buffer[DEBUG_MAX_BUFFER_SIZE];
static uint8_t debug_rx_buff[DEBUG_USART_EX_BUFF_SIZE];
void p_usart_init(void)
{
12c6: b537 push {r0, r1, r2, r4, r5, lr}
12c8: 2240 movs r2, #64 ; 0x40
12ca: f8c3 20dc str.w r2, [r3, #220] ; 0xdc
12ce: 2243 movs r2, #67 ; 0x43
12d0: f8c3 208c str.w r2, [r3, #140] ; 0x8c
}
static inline void hri_mclk_set_APBBMASK_SERCOM2_bit(const void *const hw)
{
MCLK_CRITICAL_SECTION_ENTER();
((Mclk *)hw)->APBBMASK.reg |= MCLK_APBBMASK_SERCOM2;
12d4: 4a1e ldr r2, [pc, #120] ; (1350 <p_usart_init+0x8c>)
hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));
hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));
hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK);
usart_async_init(&p_usart_debug_inst, USART_DEBUG_SERCOM, debug_rx_buff, DEBUG_USART_EX_BUFF_SIZE, (void*)NULL);
12d6: 491f ldr r1, [pc, #124] ; (1354 <p_usart_init+0x90>)
12d8: 6993 ldr r3, [r2, #24]
12da: 4d1f ldr r5, [pc, #124] ; (1358 <p_usart_init+0x94>)
12dc: f443 7300 orr.w r3, r3, #512 ; 0x200
12e0: 6193 str r3, [r2, #24]
12e2: 4a1e ldr r2, [pc, #120] ; (135c <p_usart_init+0x98>)
12e4: 2300 movs r3, #0
12e6: f102 0410 add.w r4, r2, #16
12ea: 9300 str r3, [sp, #0]
12ec: 4620 mov r0, r4
12ee: 2310 movs r3, #16
12f0: 47a8 blx r5
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
12f2: 4b1b ldr r3, [pc, #108] ; (1360 <p_usart_init+0x9c>)
12f4: f893 20d8 ldrb.w r2, [r3, #216] ; 0xd8
tmp &= ~PORT_PINCFG_PMUXEN;
12f8: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
12fc: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
1300: f883 20d8 strb.w r2, [r3, #216] ; 0xd8
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
1304: f893 20bc ldrb.w r2, [r3, #188] ; 0xbc
tmp &= ~PORT_PMUX_PMUXE_Msk;
1308: f002 02f0 and.w r2, r2, #240 ; 0xf0
tmp |= PORT_PMUX_PMUXE(data);
130c: f042 0203 orr.w r2, r2, #3
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
1310: f883 20bc strb.w r2, [r3, #188] ; 0xbc
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
1314: f893 20d9 ldrb.w r2, [r3, #217] ; 0xd9
tmp &= ~PORT_PINCFG_PMUXEN;
1318: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
131c: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
1320: f883 20d9 strb.w r2, [r3, #217] ; 0xd9
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
1324: f893 20bc ldrb.w r2, [r3, #188] ; 0xbc
tmp &= ~PORT_PMUX_PMUXO_Msk;
1328: f002 020f and.w r2, r2, #15
tmp |= PORT_PMUX_PMUXO(data);
132c: f042 0230 orr.w r2, r2, #48 ; 0x30
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
1330: f883 20bc strb.w r2, [r3, #188] ; 0xbc
// port init
gpio_set_pin_function(USART_DEBUG_RX, USART_DEBUG_RX_MUX);
gpio_set_pin_function(USART_DEBUG_TX, USART_DEBUG_TX_MUX);
usart_async_enable(&p_usart_debug_inst);
1334: 4620 mov r0, r4
1336: 4b0b ldr r3, [pc, #44] ; (1364 <p_usart_init+0xa0>)
1338: 4798 blx r3
io_write(&p_usart_debug_inst.io, example_USART_0, 12);
133a: 490b ldr r1, [pc, #44] ; (1368 <p_usart_init+0xa4>)
133c: 4b0b ldr r3, [pc, #44] ; (136c <p_usart_init+0xa8>)
133e: 220c movs r2, #12
1340: 4620 mov r0, r4
}
1342: b003 add sp, #12
1344: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
io_write(&p_usart_debug_inst.io, example_USART_0, 12);
1348: 4718 bx r3
134a: bf00 nop
134c: 40001c00 .word 0x40001c00
1350: 40000800 .word 0x40000800
1354: 41012000 .word 0x41012000
1358: 00000b49 .word 0x00000b49
135c: 200000e8 .word 0x200000e8
1360: 41008000 .word 0x41008000
1364: 00000bd1 .word 0x00000bd1
1368: 20000000 .word 0x20000000
136c: 000002a5 .word 0x000002a5
00001370 <p_screen_init>:
static lv_disp_buf_t disp_buf;
static lv_color_t buf[LV_HOR_RES_MAX * 34]; /*Declare a buffer for 10 lines*/
void p_screen_init(void)
{
1370: b530 push {r4, r5, lr}
// devices init
lv_init();
1372: 4b1a ldr r3, [pc, #104] ; (13dc <p_screen_init+0x6c>)
ssd1963_init();
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 34); /*Initialize the display buffer*/
1374: 4c1a ldr r4, [pc, #104] ; (13e0 <p_screen_init+0x70>)
1376: 4d1b ldr r5, [pc, #108] ; (13e4 <p_screen_init+0x74>)
{
1378: b08d sub sp, #52 ; 0x34
lv_init();
137a: 4798 blx r3
ssd1963_init();
137c: 4b1a ldr r3, [pc, #104] ; (13e8 <p_screen_init+0x78>)
137e: 4798 blx r3
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 34); /*Initialize the display buffer*/
1380: 2200 movs r2, #0
1382: 491a ldr r1, [pc, #104] ; (13ec <p_screen_init+0x7c>)
1384: 4620 mov r0, r4
1386: f44f 537f mov.w r3, #16320 ; 0x3fc0
138a: 47a8 blx r5
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
138c: a801 add r0, sp, #4
138e: 4b18 ldr r3, [pc, #96] ; (13f0 <p_screen_init+0x80>)
1390: 4798 blx r3
disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/
1392: 4b18 ldr r3, [pc, #96] ; (13f4 <p_screen_init+0x84>)
1394: 9304 str r3, [sp, #16]
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
1396: a801 add r0, sp, #4
1398: 4b17 ldr r3, [pc, #92] ; (13f8 <p_screen_init+0x88>)
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
139a: 9402 str r4, [sp, #8]
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
139c: 4798 blx r3
lv_obj_t* scr = lv_disp_get_scr_act(NULL);
139e: 4b17 ldr r3, [pc, #92] ; (13fc <p_screen_init+0x8c>)
13a0: 2000 movs r0, #0
13a2: 4798 blx r3
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
13a4: 4b16 ldr r3, [pc, #88] ; (1400 <p_screen_init+0x90>)
13a6: 2100 movs r1, #0
lv_obj_t* scr = lv_disp_get_scr_act(NULL);
13a8: 4604 mov r4, r0
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
13aa: 4798 blx r3
lv_img_set_src(hornet_image, &hornet);
13ac: 4b15 ldr r3, [pc, #84] ; (1404 <p_screen_init+0x94>)
13ae: 4916 ldr r1, [pc, #88] ; (1408 <p_screen_init+0x98>)
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
13b0: 4605 mov r5, r0
lv_img_set_src(hornet_image, &hornet);
13b2: 4798 blx r3
lv_obj_set_pos(hornet_image, 0, 0);
13b4: 2200 movs r2, #0
13b6: 4611 mov r1, r2
13b8: 4628 mov r0, r5
13ba: 4d14 ldr r5, [pc, #80] ; (140c <p_screen_init+0x9c>)
13bc: 47a8 blx r5
lv_obj_t* random_text = lv_label_create(scr, NULL);
13be: 4b14 ldr r3, [pc, #80] ; (1410 <p_screen_init+0xa0>)
13c0: 2100 movs r1, #0
13c2: 4620 mov r0, r4
13c4: 4798 blx r3
lv_obj_set_pos(random_text, 90, 35);
13c6: 2223 movs r2, #35 ; 0x23
lv_obj_t* random_text = lv_label_create(scr, NULL);
13c8: 4604 mov r4, r0
lv_obj_set_pos(random_text, 90, 35);
13ca: 215a movs r1, #90 ; 0x5a
13cc: 47a8 blx r5
lv_label_set_text(random_text, "Hello World");
13ce: 4911 ldr r1, [pc, #68] ; (1414 <p_screen_init+0xa4>)
13d0: 4b11 ldr r3, [pc, #68] ; (1418 <p_screen_init+0xa8>)
13d2: 4620 mov r0, r4
13d4: 4798 blx r3
}
13d6: b00d add sp, #52 ; 0x34
13d8: bd30 pop {r4, r5, pc}
13da: bf00 nop
13dc: 00001cdd .word 0x00001cdd
13e0: 20000148 .word 0x20000148
13e4: 0000d7e1 .word 0x0000d7e1
13e8: 0000149d .word 0x0000149d
13ec: 2000016c .word 0x2000016c
13f0: 0000d7a1 .word 0x0000d7a1
13f4: 00001641 .word 0x00001641
13f8: 0000d801 .word 0x0000d801
13fc: 00001825 .word 0x00001825
1400: 0001475d .word 0x0001475d
1404: 00014509 .word 0x00014509
1408: 000164ec .word 0x000164ec
140c: 00002855 .word 0x00002855
1410: 0001597d .word 0x0001597d
1414: 000164e0 .word 0x000164e0
1418: 00015681 .word 0x00015681
0000141c <p_screen_service>:
void p_screen_service(void)
{
lv_task_handler();
141c: 4b00 ldr r3, [pc, #0] ; (1420 <p_screen_service+0x4>)
141e: 4718 bx r3
1420: 0000fa45 .word 0x0000fa45
00001424 <ssd1963_cmd>:
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1424: 4909 ldr r1, [pc, #36] ; (144c <ssd1963_cmd+0x28>)
/**
* Write command
* @param cmd the command
*/
static inline void ssd1963_cmd(uint8_t cmd)
{
1426: b508 push {r3, lr}
1428: 2340 movs r3, #64 ; 0x40
142a: 614b str r3, [r1, #20]
if(cmd_mode == false) {
142c: 4b08 ldr r3, [pc, #32] ; (1450 <ssd1963_cmd+0x2c>)
{
142e: 4602 mov r2, r0
if(cmd_mode == false) {
1430: 7818 ldrb r0, [r3, #0]
1432: b918 cbnz r0, 143c <ssd1963_cmd+0x18>
1434: 2020 movs r0, #32
1436: 6148 str r0, [r1, #20]
cmd_mode = true;
1438: 2101 movs r1, #1
143a: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_CS(0);
ssd1963_cmd_mode();
LV_DRV_DISP_PAR_WR_WORD(cmd);
143c: 4b05 ldr r3, [pc, #20] ; (1454 <ssd1963_cmd+0x30>)
143e: 4906 ldr r1, [pc, #24] ; (1458 <ssd1963_cmd+0x34>)
1440: 4806 ldr r0, [pc, #24] ; (145c <ssd1963_cmd+0x38>)
1442: 4798 blx r3
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1444: 4b01 ldr r3, [pc, #4] ; (144c <ssd1963_cmd+0x28>)
1446: 2240 movs r2, #64 ; 0x40
1448: 619a str r2, [r3, #24]
LV_DRV_DISP_PAR_CS(1);
}
144a: bd08 pop {r3, pc}
144c: 41008000 .word 0x41008000
1450: 2000000c .word 0x2000000c
1454: 000010ad .word 0x000010ad
1458: 1c03c3f7 .word 0x1c03c3f7
145c: 41008080 .word 0x41008080
00001460 <ssd1963_data>:
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1460: 4909 ldr r1, [pc, #36] ; (1488 <ssd1963_data+0x28>)
/**
* Write data
* @param data the data
*/
static inline void ssd1963_data(uint8_t data)
{
1462: b508 push {r3, lr}
1464: 2340 movs r3, #64 ; 0x40
1466: 614b str r3, [r1, #20]
if(cmd_mode != false) {
1468: 4b08 ldr r3, [pc, #32] ; (148c <ssd1963_data+0x2c>)
{
146a: 4602 mov r2, r0
if(cmd_mode != false) {
146c: 7818 ldrb r0, [r3, #0]
146e: b118 cbz r0, 1478 <ssd1963_data+0x18>
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1470: 2020 movs r0, #32
1472: 6188 str r0, [r1, #24]
cmd_mode = false;
1474: 2100 movs r1, #0
1476: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_CS(0);
ssd1963_data_mode();
LV_DRV_DISP_PAR_WR_WORD(data);
1478: 4b05 ldr r3, [pc, #20] ; (1490 <ssd1963_data+0x30>)
147a: 4906 ldr r1, [pc, #24] ; (1494 <ssd1963_data+0x34>)
147c: 4806 ldr r0, [pc, #24] ; (1498 <ssd1963_data+0x38>)
147e: 4798 blx r3
1480: 4b01 ldr r3, [pc, #4] ; (1488 <ssd1963_data+0x28>)
1482: 2240 movs r2, #64 ; 0x40
1484: 619a str r2, [r3, #24]
LV_DRV_DISP_PAR_CS(1);
}
1486: bd08 pop {r3, pc}
1488: 41008000 .word 0x41008000
148c: 2000000c .word 0x2000000c
1490: 000010ad .word 0x000010ad
1494: 1c03c3f7 .word 0x1c03c3f7
1498: 41008080 .word 0x41008080
0000149c <ssd1963_init>:
{
149c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
asm volatile("nop");
14a0: bf00 nop
14a2: 4f5f ldr r7, [pc, #380] ; (1620 <ssd1963_init+0x184>)
LV_DRV_DELAY_MS(50);
14a4: 4e5f ldr r6, [pc, #380] ; (1624 <ssd1963_init+0x188>)
14a6: 2410 movs r4, #16
14a8: 61bc str r4, [r7, #24]
14aa: 2032 movs r0, #50 ; 0x32
14ac: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
14ae: 617c str r4, [r7, #20]
asm volatile("nop");
14b0: bf00 nop
LV_DRV_DELAY_MS(50);
14b2: 2032 movs r0, #50 ; 0x32
14b4: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
14b6: 61bc str r4, [r7, #24]
LV_DRV_DELAY_MS(50);
14b8: 2032 movs r0, #50 ; 0x32
14ba: 47b0 blx r6
asm volatile("nop");
14bc: bf00 nop
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
14be: f04f 0840 mov.w r8, #64 ; 0x40
LV_DRV_DELAY_MS(10);
14c2: 200a movs r0, #10
14c4: f8c7 8014 str.w r8, [r7, #20]
14c8: 47b0 blx r6
LV_DRV_DELAY_MS(5);
14ca: 2005 movs r0, #5
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
14cc: f8c7 8018 str.w r8, [r7, #24]
ssd1963_cmd(0x01);
14d0: 4d55 ldr r5, [pc, #340] ; (1628 <ssd1963_init+0x18c>)
ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal
14d2: 4c56 ldr r4, [pc, #344] ; (162c <ssd1963_init+0x190>)
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
14d4: f8df 9160 ldr.w r9, [pc, #352] ; 1638 <ssd1963_init+0x19c>
LV_DRV_DELAY_MS(5);
14d8: 47b0 blx r6
ssd1963_cmd(0x01);
14da: 2001 movs r0, #1
14dc: 47a8 blx r5
LV_DRV_DELAY_MS(20);
14de: 2014 movs r0, #20
14e0: 47b0 blx r6
ssd1963_cmd(0x01);
14e2: 2001 movs r0, #1
14e4: 47a8 blx r5
LV_DRV_DELAY_MS(20);
14e6: 2014 movs r0, #20
14e8: 47b0 blx r6
ssd1963_cmd(0x01);
14ea: 2001 movs r0, #1
14ec: 47a8 blx r5
LV_DRV_DELAY_MS(20);
14ee: 2014 movs r0, #20
14f0: 47b0 blx r6
ssd1963_cmd(0xE2); //PLL multiplier, set PLL clock to 120M
14f2: 20e2 movs r0, #226 ; 0xe2
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
14f4: f8c7 8014 str.w r8, [r7, #20]
14f8: 47a8 blx r5
ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal
14fa: 202f movs r0, #47 ; 0x2f
14fc: 47a0 blx r4
ssd1963_data(0x03);
14fe: 2003 movs r0, #3
1500: 47a0 blx r4
ssd1963_data(0x54);
1502: 2054 movs r0, #84 ; 0x54
1504: 47a0 blx r4
ssd1963_cmd(0xE0); // PLL enable
1506: 20e0 movs r0, #224 ; 0xe0
1508: 47a8 blx r5
ssd1963_data(0x01);
150a: 2001 movs r0, #1
150c: 47a0 blx r4
delay_us(100);
150e: 4b48 ldr r3, [pc, #288] ; (1630 <ssd1963_init+0x194>)
1510: 2064 movs r0, #100 ; 0x64
1512: 4798 blx r3
ssd1963_cmd(0xE0);
1514: 20e0 movs r0, #224 ; 0xe0
1516: 47a8 blx r5
ssd1963_data(0x03); // now, use PLL output as system clock
1518: 2003 movs r0, #3
151a: 47a0 blx r4
delay_ms(1);
151c: 2001 movs r0, #1
151e: 47b0 blx r6
ssd1963_cmd(0x01);
1520: 2001 movs r0, #1
1522: 47a8 blx r5
delay_ms(1);
1524: 2001 movs r0, #1
1526: 47b0 blx r6
ssd1963_cmd(0xE6); //PLL setting for PCLK, depends on resolution
1528: 20e6 movs r0, #230 ; 0xe6
152a: 47a8 blx r5
ssd1963_data(0x01);
152c: 2001 movs r0, #1
152e: 47a0 blx r4
ssd1963_data(0xCC);
1530: 20cc movs r0, #204 ; 0xcc
1532: 47a0 blx r4
ssd1963_data(0xCC);
1534: 20cc movs r0, #204 ; 0xcc
1536: 47a0 blx r4
ssd1963_cmd(0xB0);
1538: 20b0 movs r0, #176 ; 0xb0
153a: 47a8 blx r5
ssd1963_data(0x28); // set 18-bit for 7" panel TY700TFT800480
153c: 2028 movs r0, #40 ; 0x28
153e: 47a0 blx r4
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
1540: 4e3c ldr r6, [pc, #240] ; (1634 <ssd1963_init+0x198>)
ssd1963_data(0x80); // set TTL mode
1542: 2080 movs r0, #128 ; 0x80
1544: 47a0 blx r4
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
1546: 47b0 blx r6
1548: 47c8 blx r9
154a: 3801 subs r0, #1
154c: f3c0 2007 ubfx r0, r0, #8, #8
1550: 47a0 blx r4
ssd1963_data(SSD1963_HOR_RES-1);
1552: 47b0 blx r6
1554: 47c8 blx r9
1556: 3801 subs r0, #1
1558: b2c0 uxtb r0, r0
155a: 47a0 blx r4
ssd1963_data((SSD1963_VER_RES-1)>>8);
155c: f8df 90dc ldr.w r9, [pc, #220] ; 163c <ssd1963_init+0x1a0>
1560: 47b0 blx r6
1562: 47c8 blx r9
1564: 3801 subs r0, #1
1566: f3c0 2007 ubfx r0, r0, #8, #8
156a: 47a0 blx r4
ssd1963_data(SSD1963_VER_RES-1);
156c: 47b0 blx r6
156e: 47c8 blx r9
1570: 3801 subs r0, #1
1572: b2c0 uxtb r0, r0
1574: 47a0 blx r4
ssd1963_data(0x00);
1576: 2000 movs r0, #0
1578: 47a0 blx r4
ssd1963_cmd(0xF0); //Pixel Data Interface Format
157a: 20f0 movs r0, #240 ; 0xf0
157c: 47a8 blx r5
ssd1963_data(0x03); //16-bit(565 format) data
157e: 2003 movs r0, #3
1580: 47a0 blx r4
ssd1963_cmd(0x3A); //Set the current pixel format for RGB image data
1582: 203a movs r0, #58 ; 0x3a
1584: 47a8 blx r5
ssd1963_data(0x55); //16-bit/pixel
1586: 2055 movs r0, #85 ; 0x55
1588: 47a0 blx r4
ssd1963_cmd(0xb4); //SET HBP,
158a: 20b4 movs r0, #180 ; 0xb4
158c: 47a8 blx r5
ssd1963_data(0x02); //SET HSYNC Tatol 525
158e: 2002 movs r0, #2
1590: 47a0 blx r4
ssd1963_data(0x0d);
1592: 200d movs r0, #13
1594: 47a0 blx r4
ssd1963_data(0x00); //SET HBP 43
1596: 2000 movs r0, #0
1598: 47a0 blx r4
ssd1963_data(0x2b);
159a: 202b movs r0, #43 ; 0x2b
159c: 47a0 blx r4
ssd1963_data(0x28); //SET VBP 41=40+1
159e: 2028 movs r0, #40 ; 0x28
15a0: 47a0 blx r4
ssd1963_data(0x00); //SET Hsync pulse start position
15a2: 2000 movs r0, #0
15a4: 47a0 blx r4
ssd1963_data(0x00);
15a6: 2000 movs r0, #0
15a8: 47a0 blx r4
ssd1963_data(0x00); //SET Hsync pulse subpixel start position
15aa: 2000 movs r0, #0
15ac: 47a0 blx r4
ssd1963_cmd(0xb6); //SET VBP,
15ae: 20b6 movs r0, #182 ; 0xb6
15b0: 47a8 blx r5
ssd1963_data(0x01); //SET Vsync total 286=285+1
15b2: 2001 movs r0, #1
15b4: 47a0 blx r4
ssd1963_data(0x1d);
15b6: 201d movs r0, #29
15b8: 47a0 blx r4
ssd1963_data(0x00); //SET VBP=12
15ba: 2000 movs r0, #0
15bc: 47a0 blx r4
ssd1963_data(0x0c);
15be: 200c movs r0, #12
15c0: 47a0 blx r4
ssd1963_data(0x09); //SET Vsync pulse 10=9+1
15c2: 2009 movs r0, #9
15c4: 47a0 blx r4
ssd1963_data(0x00); //SET Vsync pulse start position
15c6: 2000 movs r0, #0
15c8: 47a0 blx r4
ssd1963_data(0x00);
15ca: 2000 movs r0, #0
15cc: 47a0 blx r4
ssd1963_cmd(0x2a); //SET column address
15ce: 202a movs r0, #42 ; 0x2a
15d0: 47a8 blx r5
ssd1963_data(0x00); //SET start column address=0
15d2: 2000 movs r0, #0
15d4: 47a0 blx r4
ssd1963_data(0x00);
15d6: 2000 movs r0, #0
15d8: 47a0 blx r4
ssd1963_data(0x01); //SET end column address=479
15da: 2001 movs r0, #1
15dc: 47a0 blx r4
ssd1963_data(0xDF);
15de: 20df movs r0, #223 ; 0xdf
15e0: 47a0 blx r4
ssd1963_cmd(0x2b); //SET page address
15e2: 202b movs r0, #43 ; 0x2b
15e4: 47a8 blx r5
ssd1963_data(0x00); //SET start page address=0
15e6: 2000 movs r0, #0
15e8: 47a0 blx r4
ssd1963_data(0x00);
15ea: 2000 movs r0, #0
15ec: 47a0 blx r4
ssd1963_data(0x01); //SET end page address=271
15ee: 2001 movs r0, #1
15f0: 47a0 blx r4
ssd1963_data(0x0F);
15f2: 200f movs r0, #15
15f4: 47a0 blx r4
ssd1963_cmd(0x29); //display on
15f6: 2029 movs r0, #41 ; 0x29
15f8: 47a8 blx r5
ssd1963_cmd(0xBE);
15fa: 20be movs r0, #190 ; 0xbe
15fc: 47a8 blx r5
ssd1963_data(0x06);
15fe: 2006 movs r0, #6
1600: 47a0 blx r4
ssd1963_data(0xFF);
1602: 20ff movs r0, #255 ; 0xff
1604: 47a0 blx r4
ssd1963_data(0x01);
1606: 2001 movs r0, #1
1608: 47a0 blx r4
ssd1963_data(0xFF);
160a: 20ff movs r0, #255 ; 0xff
160c: 47a0 blx r4
ssd1963_data(0x00);
160e: 2000 movs r0, #0
1610: 47a0 blx r4
ssd1963_data(0x01);
1612: 2001 movs r0, #1
1614: 47a0 blx r4
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1616: f8c7 8018 str.w r8, [r7, #24]
}
161a: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
161e: bf00 nop
1620: 41008000 .word 0x41008000
1624: 00000525 .word 0x00000525
1628: 00001425 .word 0x00001425
162c: 00001461 .word 0x00001461
1630: 00000501 .word 0x00000501
1634: 0000d941 .word 0x0000d941
1638: 0000d94d .word 0x0000d94d
163c: 0000d971 .word 0x0000d971
00001640 <ssd1963_flush>:
{
1640: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(area->x2 < 0) return;
1644: f9b1 3004 ldrsh.w r3, [r1, #4]
{
1648: ed2d 8b02 vpush {d8}
if(area->x2 < 0) return;
164c: 2b00 cmp r3, #0
{
164e: ee08 0a10 vmov s16, r0
1652: b081 sub sp, #4
1654: 460d mov r5, r1
1656: 4690 mov r8, r2
if(area->x2 < 0) return;
1658: f2c0 8081 blt.w 175e <ssd1963_flush+0x11e>
if(area->y2 < 0) return;
165c: f9b1 3006 ldrsh.w r3, [r1, #6]
1660: 2b00 cmp r3, #0
1662: db7c blt.n 175e <ssd1963_flush+0x11e>
if(area->x1 > SSD1963_HOR_RES - 1) return;
1664: 4f40 ldr r7, [pc, #256] ; (1768 <ssd1963_flush+0x128>)
1666: f8df a118 ldr.w sl, [pc, #280] ; 1780 <ssd1963_flush+0x140>
166a: 47b8 blx r7
166c: 47d0 blx sl
166e: f9b5 3000 ldrsh.w r3, [r5]
1672: 4283 cmp r3, r0
1674: da73 bge.n 175e <ssd1963_flush+0x11e>
if(area->y1 > SSD1963_VER_RES - 1) return;
1676: 47b8 blx r7
1678: 4c3c ldr r4, [pc, #240] ; (176c <ssd1963_flush+0x12c>)
167a: 47a0 blx r4
167c: f9b5 6002 ldrsh.w r6, [r5, #2]
1680: 42b0 cmp r0, r6
1682: 46a3 mov fp, r4
1684: dd6b ble.n 175e <ssd1963_flush+0x11e>
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
1686: f9b5 4000 ldrsh.w r4, [r5]
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
168a: 47b8 blx r7
168c: 47d0 blx sl
168e: f9b5 3004 ldrsh.w r3, [r5, #4]
1692: 4298 cmp r0, r3
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
1694: ea24 74e4 bic.w r4, r4, r4, asr #31
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
1698: ea26 76e6 bic.w r6, r6, r6, asr #31
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
169c: dc52 bgt.n 1744 <ssd1963_flush+0x104>
169e: 47b8 blx r7
16a0: 47d0 blx sl
16a2: f100 3aff add.w sl, r0, #4294967295 ; 0xffffffff
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
16a6: 47b8 blx r7
16a8: 47d8 blx fp
16aa: f9b5 3006 ldrsh.w r3, [r5, #6]
16ae: 4298 cmp r0, r3
16b0: dc4a bgt.n 1748 <ssd1963_flush+0x108>
16b2: 47b8 blx r7
16b4: 47d8 blx fp
16b6: 1e47 subs r7, r0, #1
ssd1963_cmd(0x002A);
16b8: f8df 90c8 ldr.w r9, [pc, #200] ; 1784 <ssd1963_flush+0x144>
ssd1963_data(act_x1 >> 8);
16bc: f8df b0c8 ldr.w fp, [pc, #200] ; 1788 <ssd1963_flush+0x148>
ssd1963_cmd(0x002A);
16c0: 202a movs r0, #42 ; 0x2a
16c2: 47c8 blx r9
ssd1963_data(act_x1 >> 8);
16c4: f3c4 2007 ubfx r0, r4, #8, #8
16c8: 47d8 blx fp
ssd1963_data(0x00FF & act_x1);
16ca: b2e0 uxtb r0, r4
16cc: 47d8 blx fp
ssd1963_data(act_x2 >> 8);
16ce: f3ca 2007 ubfx r0, sl, #8, #8
16d2: 47d8 blx fp
ssd1963_data(0x00FF & act_x2);
16d4: fa5f f08a uxtb.w r0, sl
16d8: 47d8 blx fp
ssd1963_cmd(0x002B);
16da: 202b movs r0, #43 ; 0x2b
16dc: 47c8 blx r9
ssd1963_data(act_y1 >> 8);
16de: f3c6 2007 ubfx r0, r6, #8, #8
16e2: 47d8 blx fp
ssd1963_data(0x00FF & act_y1);
16e4: b2f0 uxtb r0, r6
16e6: 47d8 blx fp
ssd1963_data(act_y2 >> 8);
16e8: f3c7 2007 ubfx r0, r7, #8, #8
16ec: 47d8 blx fp
ssd1963_data(0x00FF & act_y2);
16ee: b2f8 uxtb r0, r7
16f0: 47d8 blx fp
ssd1963_cmd(0x2c);
16f2: 202c movs r0, #44 ; 0x2c
16f4: 47c8 blx r9
uint16_t full_w = area->x2 - area->x1 + 1;
16f6: 88ab ldrh r3, [r5, #4]
if(cmd_mode != false) {
16f8: 4a1d ldr r2, [pc, #116] ; (1770 <ssd1963_flush+0x130>)
uint16_t full_w = area->x2 - area->x1 + 1;
16fa: 882d ldrh r5, [r5, #0]
if(cmd_mode != false) {
16fc: 7811 ldrb r1, [r2, #0]
uint16_t full_w = area->x2 - area->x1 + 1;
16fe: 3301 adds r3, #1
1700: 1b5d subs r5, r3, r5
1702: b2ad uxth r5, r5
if(cmd_mode != false) {
1704: 4b1b ldr r3, [pc, #108] ; (1774 <ssd1963_flush+0x134>)
1706: b119 cbz r1, 1710 <ssd1963_flush+0xd0>
1708: 2120 movs r1, #32
170a: 6199 str r1, [r3, #24]
cmd_mode = false;
170c: 2100 movs r1, #0
170e: 7011 strb r1, [r2, #0]
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1710: 2240 movs r2, #64 ; 0x40
1712: 615a str r2, [r3, #20]
uint16_t act_w = act_x2 - act_x1 + 1;
1714: f1c4 0301 rsb r3, r4, #1
1718: 4453 add r3, sl
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
171a: 4817 ldr r0, [pc, #92] ; (1778 <ssd1963_flush+0x138>)
171c: f8df a06c ldr.w sl, [pc, #108] ; 178c <ssd1963_flush+0x14c>
1720: f8df b06c ldr.w fp, [pc, #108] ; 1790 <ssd1963_flush+0x150>
uint16_t act_w = act_x2 - act_x1 + 1;
1724: b29c uxth r4, r3
color_p += full_w;
1726: 006d lsls r5, r5, #1
for(i = act_y1; i <= act_y2; i++) {
1728: 42be cmp r6, r7
172a: dd0f ble.n 174c <ssd1963_flush+0x10c>
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
172c: 4b11 ldr r3, [pc, #68] ; (1774 <ssd1963_flush+0x134>)
172e: 2240 movs r2, #64 ; 0x40
1730: 619a str r2, [r3, #24]
lv_disp_flush_ready(disp_drv);
1732: ee18 0a10 vmov r0, s16
1736: 4b11 ldr r3, [pc, #68] ; (177c <ssd1963_flush+0x13c>)
}
1738: b001 add sp, #4
173a: ecbd 8b02 vpop {d8}
173e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_disp_flush_ready(disp_drv);
1742: 4718 bx r3
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1744: 469a mov sl, r3
1746: e7ae b.n 16a6 <ssd1963_flush+0x66>
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
1748: 461f mov r7, r3
174a: e7b5 b.n 16b8 <ssd1963_flush+0x78>
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
174c: 4642 mov r2, r8
174e: 4623 mov r3, r4
1750: 4651 mov r1, sl
1752: 3601 adds r6, #1
1754: 47d8 blx fp
color_p += full_w;
1756: 44a8 add r8, r5
for(i = act_y1; i <= act_y2; i++) {
1758: 4807 ldr r0, [pc, #28] ; (1778 <ssd1963_flush+0x138>)
175a: b236 sxth r6, r6
175c: e7e4 b.n 1728 <ssd1963_flush+0xe8>
}
175e: b001 add sp, #4
1760: ecbd 8b02 vpop {d8}
1764: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1768: 0000d941 .word 0x0000d941
176c: 0000d971 .word 0x0000d971
1770: 2000000c .word 0x2000000c
1774: 41008000 .word 0x41008000
1778: 41008080 .word 0x41008080
177c: 0000d9fd .word 0x0000d9fd
1780: 0000d94d .word 0x0000d94d
1784: 00001425 .word 0x00001425
1788: 00001461 .word 0x00001461
178c: 1c03c3f7 .word 0x1c03c3f7
1790: 000010cd .word 0x000010cd
00001794 <lv_debug_check_null>:
bool lv_debug_check_null(const void * p)
{
if(p) return true;
return false;
}
1794: 3800 subs r0, #0
1796: bf18 it ne
1798: 2001 movne r0, #1
179a: 4770 bx lr
0000179c <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)
{
179c: b5f0 push {r4, r5, r6, r7, lr}
static const char hex[] = "0123456789ABCDEF";
size_t msg_len = strlen(msg);
179e: 4b1b ldr r3, [pc, #108] ; (180c <lv_debug_log_error+0x70>)
{
17a0: b0c3 sub sp, #268 ; 0x10c
17a2: 4607 mov r7, r0
17a4: 4616 mov r6, r2
size_t msg_len = strlen(msg);
17a6: 4798 blx r3
uint32_t value_len = sizeof(unsigned long int);
if(msg_len < 230) {
17a8: 28e5 cmp r0, #229 ; 0xe5
size_t msg_len = strlen(msg);
17aa: 4604 mov r4, r0
if(msg_len < 230) {
17ac: d829 bhi.n 1802 <lv_debug_log_error+0x66>
char buf[255];
char * bufp = buf;
/*Add the function name*/
_lv_memcpy(bufp, msg, msg_len);
17ae: ad02 add r5, sp, #8
17b0: 4602 mov r2, r0
17b2: 4b17 ldr r3, [pc, #92] ; (1810 <lv_debug_log_error+0x74>)
17b4: 4639 mov r1, r7
17b6: 4628 mov r0, r5
17b8: 4798 blx r3
bufp += msg_len;
17ba: 192b adds r3, r5, r4
/*Add value in hey*/
*bufp = ' ';
17bc: 2220 movs r2, #32
17be: 552a strb r2, [r5, r4]
bufp ++;
*bufp = '(';
17c0: 2228 movs r2, #40 ; 0x28
17c2: 705a strb r2, [r3, #1]
bufp ++;
*bufp = '0';
17c4: 2230 movs r2, #48 ; 0x30
17c6: 709a strb r2, [r3, #2]
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];
17c8: 4c12 ldr r4, [pc, #72] ; (1814 <lv_debug_log_error+0x78>)
*bufp = 'x';
17ca: 2278 movs r2, #120 ; 0x78
17cc: 70da strb r2, [r3, #3]
bufp ++;
17ce: 1d18 adds r0, r3, #4
17d0: 221c movs r2, #28
uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF;
17d2: fa26 f102 lsr.w r1, r6, r2
*bufp = hex[x];
17d6: f001 010f and.w r1, r1, #15
17da: 4421 add r1, r4
for(i = value_len * 2 - 1; i >= 0; i--) {
17dc: 3a04 subs r2, #4
*bufp = hex[x];
17de: 7cc9 ldrb r1, [r1, #19]
17e0: f800 1b01 strb.w r1, [r0], #1
for(i = value_len * 2 - 1; i >= 0; i--) {
17e4: 1d11 adds r1, r2, #4
17e6: d1f4 bne.n 17d2 <lv_debug_log_error+0x36>
bufp++;
}
*bufp = ')';
17e8: 2229 movs r2, #41 ; 0x29
17ea: 731a strb r2, [r3, #12]
bufp ++;
*bufp = '\0';
17ec: 2200 movs r2, #0
17ee: 735a strb r2, [r3, #13]
LV_LOG_ERROR(buf);
17f0: 4b09 ldr r3, [pc, #36] ; (1818 <lv_debug_log_error+0x7c>)
17f2: 9500 str r5, [sp, #0]
17f4: 22bc movs r2, #188 ; 0xbc
}
else {
LV_LOG_ERROR(msg);
17f6: 4909 ldr r1, [pc, #36] ; (181c <lv_debug_log_error+0x80>)
17f8: 4c09 ldr r4, [pc, #36] ; (1820 <lv_debug_log_error+0x84>)
17fa: 2003 movs r0, #3
17fc: 47a0 blx r4
}
}
17fe: b043 add sp, #268 ; 0x10c
1800: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_ERROR(msg);
1802: 4b05 ldr r3, [pc, #20] ; (1818 <lv_debug_log_error+0x7c>)
1804: 9700 str r7, [sp, #0]
1806: 22bf movs r2, #191 ; 0xbf
1808: e7f5 b.n 17f6 <lv_debug_log_error+0x5a>
180a: bf00 nop
180c: 0001637d .word 0x0001637d
1810: 0000ec79 .word 0x0000ec79
1814: 0001eb5d .word 0x0001eb5d
1818: 0001eb81 .word 0x0001eb81
181c: 0001ea53 .word 0x0001ea53
1820: 0000e931 .word 0x0000e931
00001824 <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)
{
1824: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
1826: 4604 mov r4, r0
1828: b970 cbnz r0, 1848 <lv_disp_get_scr_act+0x24>
182a: 4b08 ldr r3, [pc, #32] ; (184c <lv_disp_get_scr_act+0x28>)
182c: 4798 blx r3
if(!disp) {
182e: 4604 mov r4, r0
1830: b950 cbnz r0, 1848 <lv_disp_get_scr_act+0x24>
LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen");
1832: 4b07 ldr r3, [pc, #28] ; (1850 <lv_disp_get_scr_act+0x2c>)
1834: 9300 str r3, [sp, #0]
1836: 4907 ldr r1, [pc, #28] ; (1854 <lv_disp_get_scr_act+0x30>)
1838: 4b07 ldr r3, [pc, #28] ; (1858 <lv_disp_get_scr_act+0x34>)
183a: 4d08 ldr r5, [pc, #32] ; (185c <lv_disp_get_scr_act+0x38>)
183c: 222e movs r2, #46 ; 0x2e
183e: 2002 movs r0, #2
1840: 47a8 blx r5
return NULL;
}
return disp->act_scr;
}
1842: 4620 mov r0, r4
1844: b003 add sp, #12
1846: bd30 pop {r4, r5, pc}
return disp->act_scr;
1848: 6be4 ldr r4, [r4, #60] ; 0x3c
184a: e7fa b.n 1842 <lv_disp_get_scr_act+0x1e>
184c: 0000d941 .word 0x0000d941
1850: 0001ebc4 .word 0x0001ebc4
1854: 0001eb94 .word 0x0001eb94
1858: 0001ed34 .word 0x0001ed34
185c: 0000e931 .word 0x0000e931
00001860 <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)
{
1860: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
1862: 4604 mov r4, r0
1864: b970 cbnz r0, 1884 <lv_disp_get_layer_top+0x24>
1866: 4b08 ldr r3, [pc, #32] ; (1888 <lv_disp_get_layer_top+0x28>)
1868: 4798 blx r3
if(!disp) {
186a: 4604 mov r4, r0
186c: b950 cbnz r0, 1884 <lv_disp_get_layer_top+0x24>
LV_LOG_WARN("lv_layer_top: no display registered to get its top layer");
186e: 4b07 ldr r3, [pc, #28] ; (188c <lv_disp_get_layer_top+0x2c>)
1870: 9300 str r3, [sp, #0]
1872: 4907 ldr r1, [pc, #28] ; (1890 <lv_disp_get_layer_top+0x30>)
1874: 4b07 ldr r3, [pc, #28] ; (1894 <lv_disp_get_layer_top+0x34>)
1876: 4d08 ldr r5, [pc, #32] ; (1898 <lv_disp_get_layer_top+0x38>)
1878: 224b movs r2, #75 ; 0x4b
187a: 2002 movs r0, #2
187c: 47a8 blx r5
return NULL;
}
return disp->top_layer;
}
187e: 4620 mov r0, r4
1880: b003 add sp, #12
1882: bd30 pop {r4, r5, pc}
return disp->top_layer;
1884: 6c24 ldr r4, [r4, #64] ; 0x40
1886: e7fa b.n 187e <lv_disp_get_layer_top+0x1e>
1888: 0000d941 .word 0x0000d941
188c: 0001ebfd .word 0x0001ebfd
1890: 0001eb94 .word 0x0001eb94
1894: 0001ed48 .word 0x0001ed48
1898: 0000e931 .word 0x0000e931
0000189c <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)
{
189c: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
189e: 4604 mov r4, r0
18a0: b970 cbnz r0, 18c0 <lv_disp_get_layer_sys+0x24>
18a2: 4b08 ldr r3, [pc, #32] ; (18c4 <lv_disp_get_layer_sys+0x28>)
18a4: 4798 blx r3
if(!disp) {
18a6: 4604 mov r4, r0
18a8: b950 cbnz r0, 18c0 <lv_disp_get_layer_sys+0x24>
LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer");
18aa: 4b07 ldr r3, [pc, #28] ; (18c8 <lv_disp_get_layer_sys+0x2c>)
18ac: 9300 str r3, [sp, #0]
18ae: 4907 ldr r1, [pc, #28] ; (18cc <lv_disp_get_layer_sys+0x30>)
18b0: 4b07 ldr r3, [pc, #28] ; (18d0 <lv_disp_get_layer_sys+0x34>)
18b2: 4d08 ldr r5, [pc, #32] ; (18d4 <lv_disp_get_layer_sys+0x38>)
18b4: 225c movs r2, #92 ; 0x5c
18b6: 2002 movs r0, #2
18b8: 47a8 blx r5
return NULL;
}
return disp->sys_layer;
}
18ba: 4620 mov r0, r4
18bc: b003 add sp, #12
18be: bd30 pop {r4, r5, pc}
return disp->sys_layer;
18c0: 6c64 ldr r4, [r4, #68] ; 0x44
18c2: e7fa b.n 18ba <lv_disp_get_layer_sys+0x1e>
18c4: 0000d941 .word 0x0000d941
18c8: 0001ec36 .word 0x0001ec36
18cc: 0001eb94 .word 0x0001eb94
18d0: 0001ed5e .word 0x0001ed5e
18d4: 0000e931 .word 0x0000e931
000018d8 <obj_to_foreground>:
if(group->focus_cb) group->focus_cb(group);
}
static void obj_to_foreground(lv_obj_t * obj)
{
18d8: b570 push {r4, r5, r6, lr}
/*Search for 'top' attribute*/
lv_obj_t * i = obj;
lv_obj_t * last_top = NULL;
while(i != NULL) {
if(i->top != 0) last_top = i;
i = lv_obj_get_parent(i);
18da: 4d09 ldr r5, [pc, #36] ; (1900 <obj_to_foreground+0x28>)
lv_obj_t * last_top = NULL;
18dc: 2400 movs r4, #0
while(i != NULL) {
18de: b928 cbnz r0, 18ec <obj_to_foreground+0x14>
}
if(last_top != NULL) {
18e0: b164 cbz r4, 18fc <obj_to_foreground+0x24>
/*Move the last_top object to the foreground*/
lv_obj_move_foreground(last_top);
18e2: 4620 mov r0, r4
18e4: 4b07 ldr r3, [pc, #28] ; (1904 <obj_to_foreground+0x2c>)
}
}
18e6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_move_foreground(last_top);
18ea: 4718 bx r3
if(i->top != 0) last_top = i;
18ec: f890 3034 ldrb.w r3, [r0, #52] ; 0x34
18f0: f013 0f20 tst.w r3, #32
18f4: bf18 it ne
18f6: 4604 movne r4, r0
i = lv_obj_get_parent(i);
18f8: 47a8 blx r5
18fa: e7f0 b.n 18de <obj_to_foreground+0x6>
}
18fc: bd70 pop {r4, r5, r6, pc}
18fe: bf00 nop
1900: 000020d5 .word 0x000020d5
1904: 000027c5 .word 0x000027c5
00001908 <focus_next_core>:
{
1908: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
if(group->frozen) return;
190c: 7d06 ldrb r6, [r0, #20]
190e: f016 0601 ands.w r6, r6, #1
{
1912: 4605 mov r5, r0
1914: 4688 mov r8, r1
1916: 4617 mov r7, r2
if(group->frozen) return;
1918: d15c bne.n 19d4 <focus_next_core+0xcc>
lv_obj_t ** obj_next = group->obj_focus;
191a: 68c4 ldr r4, [r0, #12]
if(!lv_obj_get_hidden(*obj_next)) break;
191c: f8df a0c8 ldr.w sl, [pc, #200] ; 19e8 <focus_next_core+0xe0>
bool can_begin = true;
1920: f04f 0901 mov.w r9, #1
if(obj_next == NULL) {
1924: 2c00 cmp r4, #0
1926: d14c bne.n 19c2 <focus_next_core+0xba>
if(group->wrap || obj_sentinel == NULL) {
1928: 7d2b ldrb r3, [r5, #20]
192a: 06db lsls r3, r3, #27
192c: d401 bmi.n 1932 <focus_next_core+0x2a>
192e: 2e00 cmp r6, #0
1930: d150 bne.n 19d4 <focus_next_core+0xcc>
if(!can_begin) return;
1932: f1b9 0f00 cmp.w r9, #0
1936: d04d beq.n 19d4 <focus_next_core+0xcc>
obj_next = begin(&group->obj_ll);
1938: 4628 mov r0, r5
193a: 47c0 blx r8
193c: 4604 mov r4, r0
if(obj_sentinel == NULL) {
193e: 2e00 cmp r6, #0
1940: d13a bne.n 19b8 <focus_next_core+0xb0>
if(obj_sentinel == NULL) return; /*Group is empty*/
1942: 2800 cmp r0, #0
1944: d046 beq.n 19d4 <focus_next_core+0xcc>
1946: 4606 mov r6, r0
can_begin = false;
1948: f04f 0900 mov.w r9, #0
if(!lv_obj_get_hidden(*obj_next)) break;
194c: 6820 ldr r0, [r4, #0]
194e: 47d0 blx sl
1950: 4602 mov r2, r0
1952: 2800 cmp r0, #0
1954: d1e6 bne.n 1924 <focus_next_core+0x1c>
if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/
1956: 68eb ldr r3, [r5, #12]
1958: 42a3 cmp r3, r4
195a: d03b beq.n 19d4 <focus_next_core+0xcc>
if(group->obj_focus) {
195c: 4e1f ldr r6, [pc, #124] ; (19dc <focus_next_core+0xd4>)
195e: b17b cbz r3, 1980 <focus_next_core+0x78>
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
1960: 6818 ldr r0, [r3, #0]
1962: 9201 str r2, [sp, #4]
1964: 69c3 ldr r3, [r0, #28]
1966: 2117 movs r1, #23
1968: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL);
196a: 68eb ldr r3, [r5, #12]
196c: 9a01 ldr r2, [sp, #4]
196e: 6818 ldr r0, [r3, #0]
1970: 210e movs r1, #14
1972: 47b0 blx r6
if(res != LV_RES_OK) return;
1974: 2801 cmp r0, #1
1976: d12d bne.n 19d4 <focus_next_core+0xcc>
lv_obj_invalidate(*group->obj_focus);
1978: 68eb ldr r3, [r5, #12]
197a: 6818 ldr r0, [r3, #0]
197c: 4b18 ldr r3, [pc, #96] ; (19e0 <focus_next_core+0xd8>)
197e: 4798 blx r3
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
1980: 6820 ldr r0, [r4, #0]
group->obj_focus = obj_next;
1982: 60ec str r4, [r5, #12]
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
1984: 69c3 ldr r3, [r0, #28]
1986: 2200 movs r2, #0
1988: 2116 movs r1, #22
198a: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL);
198c: 68eb ldr r3, [r5, #12]
198e: 2200 movs r2, #0
1990: 6818 ldr r0, [r3, #0]
1992: 210d movs r1, #13
1994: 47b0 blx r6
if(res != LV_RES_OK) return;
1996: 2801 cmp r0, #1
1998: d11c bne.n 19d4 <focus_next_core+0xcc>
obj_to_foreground(*group->obj_focus);
199a: 68eb ldr r3, [r5, #12]
199c: 6818 ldr r0, [r3, #0]
199e: 4b11 ldr r3, [pc, #68] ; (19e4 <focus_next_core+0xdc>)
19a0: 4798 blx r3
lv_obj_invalidate(*group->obj_focus);
19a2: 68eb ldr r3, [r5, #12]
19a4: 6818 ldr r0, [r3, #0]
19a6: 4b0e ldr r3, [pc, #56] ; (19e0 <focus_next_core+0xd8>)
19a8: 4798 blx r3
if(group->focus_cb) group->focus_cb(group);
19aa: 692b ldr r3, [r5, #16]
19ac: b193 cbz r3, 19d4 <focus_next_core+0xcc>
19ae: 4628 mov r0, r5
}
19b0: b002 add sp, #8
19b2: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
if(group->focus_cb) group->focus_cb(group);
19b6: 4718 bx r3
can_begin = false;
19b8: f04f 0900 mov.w r9, #0
if(obj_next == NULL) continue;
19bc: 2c00 cmp r4, #0
19be: d1c5 bne.n 194c <focus_next_core+0x44>
19c0: e7b2 b.n 1928 <focus_next_core+0x20>
obj_next = move(&group->obj_ll, obj_next);
19c2: 4621 mov r1, r4
19c4: 4628 mov r0, r5
19c6: 47b8 blx r7
if(obj_sentinel == NULL) {
19c8: 2e00 cmp r6, #0
19ca: bf08 it eq
19cc: 4626 moveq r6, r4
if(obj_next == obj_sentinel) return;
19ce: 42b0 cmp r0, r6
obj_next = move(&group->obj_ll, obj_next);
19d0: 4604 mov r4, r0
if(obj_next == obj_sentinel) return;
19d2: d1f3 bne.n 19bc <focus_next_core+0xb4>
}
19d4: b002 add sp, #8
19d6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
19da: bf00 nop
19dc: 00001f29 .word 0x00001f29
19e0: 00002739 .word 0x00002739
19e4: 000018d9 .word 0x000018d9
19e8: 000025d1 .word 0x000025d1
000019ec <_lv_group_init>:
_lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t));
19ec: 4801 ldr r0, [pc, #4] ; (19f4 <_lv_group_init+0x8>)
19ee: 4b02 ldr r3, [pc, #8] ; (19f8 <_lv_group_init+0xc>)
19f0: 2118 movs r1, #24
19f2: 4718 bx r3
19f4: 20008648 .word 0x20008648
19f8: 0000e64d .word 0x0000e64d
000019fc <lv_group_focus_next>:
focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
19fc: 4a01 ldr r2, [pc, #4] ; (1a04 <lv_group_focus_next+0x8>)
19fe: 4902 ldr r1, [pc, #8] ; (1a08 <lv_group_focus_next+0xc>)
1a00: 4b02 ldr r3, [pc, #8] ; (1a0c <lv_group_focus_next+0x10>)
1a02: 4718 bx r3
1a04: 0000e6fd .word 0x0000e6fd
1a08: 0000e6f1 .word 0x0000e6f1
1a0c: 00001909 .word 0x00001909
00001a10 <lv_group_focus_prev>:
focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
1a10: 4a01 ldr r2, [pc, #4] ; (1a18 <lv_group_focus_prev+0x8>)
1a12: 4902 ldr r1, [pc, #8] ; (1a1c <lv_group_focus_prev+0xc>)
1a14: 4b02 ldr r3, [pc, #8] ; (1a20 <lv_group_focus_prev+0x10>)
1a16: 4718 bx r3
1a18: 0000e71d .word 0x0000e71d
1a1c: 0000e6f7 .word 0x0000e6f7
1a20: 00001909 .word 0x00001909
00001a24 <lv_group_refocus>:
{
1a24: b538 push {r3, r4, r5, lr}
uint8_t temp_wrap = g->wrap;
1a26: 7d03 ldrb r3, [r0, #20]
1a28: f3c3 1500 ubfx r5, r3, #4, #1
g->wrap = 1;
1a2c: f043 0310 orr.w r3, r3, #16
1a30: 7503 strb r3, [r0, #20]
{
1a32: 4604 mov r4, r0
if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT)
1a34: 071b lsls r3, r3, #28
lv_group_focus_next(g);
1a36: bf54 ite pl
1a38: 4b03 ldrpl r3, [pc, #12] ; (1a48 <lv_group_refocus+0x24>)
lv_group_focus_prev(g);
1a3a: 4b04 ldrmi r3, [pc, #16] ; (1a4c <lv_group_refocus+0x28>)
1a3c: 4798 blx r3
g->wrap = temp_wrap;
1a3e: 7d23 ldrb r3, [r4, #20]
1a40: f365 1304 bfi r3, r5, #4, #1
1a44: 7523 strb r3, [r4, #20]
}
1a46: bd38 pop {r3, r4, r5, pc}
1a48: 000019fd .word 0x000019fd
1a4c: 00001a11 .word 0x00001a11
00001a50 <lv_group_add_obj>:
{
1a50: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
1a54: 460d mov r5, r1
if(group == NULL) return;
1a56: 4604 mov r4, r0
1a58: 2800 cmp r0, #0
1a5a: d036 beq.n 1aca <lv_group_add_obj+0x7a>
_LV_LL_READ(group->obj_ll, obj_i) {
1a5c: 4e25 ldr r6, [pc, #148] ; (1af4 <lv_group_add_obj+0xa4>)
1a5e: 47b0 blx r6
1a60: 46b0 mov r8, r6
1a62: 4e25 ldr r6, [pc, #148] ; (1af8 <lv_group_add_obj+0xa8>)
1a64: bb30 cbnz r0, 1ab4 <lv_group_add_obj+0x64>
if(obj->group_p) {
1a66: 6bab ldr r3, [r5, #56] ; 0x38
1a68: b173 cbz r3, 1a88 <lv_group_add_obj+0x38>
if(lv_obj_is_focused(obj)) {
1a6a: 4b24 ldr r3, [pc, #144] ; (1afc <lv_group_add_obj+0xac>)
1a6c: 4628 mov r0, r5
1a6e: 4798 blx r3
1a70: b150 cbz r0, 1a88 <lv_group_add_obj+0x38>
lv_group_refocus(obj->group_p);
1a72: 6ba8 ldr r0, [r5, #56] ; 0x38
1a74: 4b22 ldr r3, [pc, #136] ; (1b00 <lv_group_add_obj+0xb0>)
LV_LOG_INFO("lv_group_add_obj: assign object to an other group");
1a76: 4e23 ldr r6, [pc, #140] ; (1b04 <lv_group_add_obj+0xb4>)
lv_group_refocus(obj->group_p);
1a78: 4798 blx r3
LV_LOG_INFO("lv_group_add_obj: assign object to an other group");
1a7a: 4b23 ldr r3, [pc, #140] ; (1b08 <lv_group_add_obj+0xb8>)
1a7c: 9300 str r3, [sp, #0]
1a7e: 4923 ldr r1, [pc, #140] ; (1b0c <lv_group_add_obj+0xbc>)
1a80: 4b23 ldr r3, [pc, #140] ; (1b10 <lv_group_add_obj+0xc0>)
1a82: 227f movs r2, #127 ; 0x7f
1a84: 2001 movs r0, #1
1a86: 47b0 blx r6
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1a88: 4b22 ldr r3, [pc, #136] ; (1b14 <lv_group_add_obj+0xc4>)
obj->group_p = group;
1a8a: 63ac str r4, [r5, #56] ; 0x38
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1a8c: 4620 mov r0, r4
1a8e: 4798 blx r3
LV_ASSERT_MEM(next);
1a90: 4b21 ldr r3, [pc, #132] ; (1b18 <lv_group_add_obj+0xc8>)
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1a92: 4606 mov r6, r0
LV_ASSERT_MEM(next);
1a94: 4798 blx r3
1a96: 4607 mov r7, r0
1a98: b9f0 cbnz r0, 1ad8 <lv_group_add_obj+0x88>
1a9a: 4b1d ldr r3, [pc, #116] ; (1b10 <lv_group_add_obj+0xc0>)
1a9c: 491b ldr r1, [pc, #108] ; (1b0c <lv_group_add_obj+0xbc>)
1a9e: 9300 str r3, [sp, #0]
1aa0: 2285 movs r2, #133 ; 0x85
1aa2: 2003 movs r0, #3
1aa4: 4c17 ldr r4, [pc, #92] ; (1b04 <lv_group_add_obj+0xb4>)
1aa6: 47a0 blx r4
1aa8: 481c ldr r0, [pc, #112] ; (1b1c <lv_group_add_obj+0xcc>)
1aaa: 491d ldr r1, [pc, #116] ; (1b20 <lv_group_add_obj+0xd0>)
1aac: 4632 mov r2, r6
1aae: 463b mov r3, r7
1ab0: 4788 blx r1
1ab2: e7fe b.n 1ab2 <lv_group_add_obj+0x62>
if((*obj_i) == obj) {
1ab4: 6803 ldr r3, [r0, #0]
1ab6: 42ab cmp r3, r5
1ab8: d10a bne.n 1ad0 <lv_group_add_obj+0x80>
LV_LOG_INFO("lv_group_add_obj: the object is already added to this group");
1aba: 4b1a ldr r3, [pc, #104] ; (1b24 <lv_group_add_obj+0xd4>)
1abc: 9300 str r3, [sp, #0]
1abe: 4913 ldr r1, [pc, #76] ; (1b0c <lv_group_add_obj+0xbc>)
1ac0: 4b13 ldr r3, [pc, #76] ; (1b10 <lv_group_add_obj+0xc0>)
1ac2: 4c10 ldr r4, [pc, #64] ; (1b04 <lv_group_add_obj+0xb4>)
1ac4: 2275 movs r2, #117 ; 0x75
1ac6: 2001 movs r0, #1
1ac8: 47a0 blx r4
}
1aca: b002 add sp, #8
1acc: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
_LV_LL_READ(group->obj_ll, obj_i) {
1ad0: 4601 mov r1, r0
1ad2: 4620 mov r0, r4
1ad4: 47b0 blx r6
1ad6: e7c5 b.n 1a64 <lv_group_add_obj+0x14>
if(next == NULL) return;
1ad8: 2e00 cmp r6, #0
1ada: d0f6 beq.n 1aca <lv_group_add_obj+0x7a>
*next = obj;
1adc: 6035 str r5, [r6, #0]
if(_lv_ll_get_head(&group->obj_ll) == next) {
1ade: 4620 mov r0, r4
1ae0: 47c0 blx r8
1ae2: 4286 cmp r6, r0
1ae4: d1f1 bne.n 1aca <lv_group_add_obj+0x7a>
lv_group_refocus(group);
1ae6: 4b06 ldr r3, [pc, #24] ; (1b00 <lv_group_add_obj+0xb0>)
1ae8: 4620 mov r0, r4
}
1aea: b002 add sp, #8
1aec: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_group_refocus(group);
1af0: 4718 bx r3
1af2: bf00 nop
1af4: 0000e6f1 .word 0x0000e6f1
1af8: 0000e6fd .word 0x0000e6fd
1afc: 000041d9 .word 0x000041d9
1b00: 00001a25 .word 0x00001a25
1b04: 0000e931 .word 0x0000e931
1b08: 0001ee4c .word 0x0001ee4c
1b0c: 0001edd1 .word 0x0001edd1
1b10: 0001ee8e .word 0x0001ee8e
1b14: 0000e6a9 .word 0x0000e6a9
1b18: 00001795 .word 0x00001795
1b1c: 0001ee02 .word 0x0001ee02
1b20: 0000179d .word 0x0000179d
1b24: 0001ee10 .word 0x0001ee10
00001b28 <lv_group_remove_obj>:
{
1b28: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_group_t * g = obj->group_p;
1b2a: 6b84 ldr r4, [r0, #56] ; 0x38
{
1b2c: 4606 mov r6, r0
if(g == NULL) return;
1b2e: 2c00 cmp r4, #0
1b30: d033 beq.n 1b9a <lv_group_remove_obj+0x72>
if(g->obj_focus == NULL) return; /*Just to be sure (Not possible if there is at least one object in the group)*/
1b32: 68e3 ldr r3, [r4, #12]
1b34: 2b00 cmp r3, #0
1b36: d030 beq.n 1b9a <lv_group_remove_obj+0x72>
if(*g->obj_focus == obj) {
1b38: 681b ldr r3, [r3, #0]
1b3a: 4d1c ldr r5, [pc, #112] ; (1bac <lv_group_remove_obj+0x84>)
1b3c: 4283 cmp r3, r0
1b3e: d11b bne.n 1b78 <lv_group_remove_obj+0x50>
if(g->frozen) g->frozen = 0;
1b40: 7d23 ldrb r3, [r4, #20]
1b42: 07da lsls r2, r3, #31
1b44: bf44 itt mi
1b46: f36f 0300 bfcmi r3, #0, #1
1b4a: 7523 strbmi r3, [r4, #20]
if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) {
1b4c: 4620 mov r0, r4
1b4e: 47a8 blx r5
1b50: 68e3 ldr r3, [r4, #12]
1b52: 4283 cmp r3, r0
1b54: d122 bne.n 1b9c <lv_group_remove_obj+0x74>
1b56: 4b16 ldr r3, [pc, #88] ; (1bb0 <lv_group_remove_obj+0x88>)
1b58: 4620 mov r0, r4
1b5a: 4798 blx r3
1b5c: 68e3 ldr r3, [r4, #12]
1b5e: 4298 cmp r0, r3
1b60: d11c bne.n 1b9c <lv_group_remove_obj+0x74>
(*g->obj_focus)->signal_cb(*g->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
1b62: 6800 ldr r0, [r0, #0]
1b64: 2200 movs r2, #0
1b66: 69c3 ldr r3, [r0, #28]
1b68: 2117 movs r1, #23
1b6a: 4798 blx r3
if(*g->obj_focus == obj) {
1b6c: 68e3 ldr r3, [r4, #12]
1b6e: 681b ldr r3, [r3, #0]
1b70: 42b3 cmp r3, r6
g->obj_focus = NULL;
1b72: bf04 itt eq
1b74: 2300 moveq r3, #0
1b76: 60e3 streq r3, [r4, #12]
_LV_LL_READ(g->obj_ll, i) {
1b78: 4620 mov r0, r4
1b7a: 47a8 blx r5
1b7c: 4f0d ldr r7, [pc, #52] ; (1bb4 <lv_group_remove_obj+0x8c>)
1b7e: 4605 mov r5, r0
1b80: b15d cbz r5, 1b9a <lv_group_remove_obj+0x72>
if(*i == obj) {
1b82: 682b ldr r3, [r5, #0]
1b84: 42b3 cmp r3, r6
_lv_ll_remove(&g->obj_ll, i);
1b86: 4629 mov r1, r5
1b88: 4620 mov r0, r4
if(*i == obj) {
1b8a: d10b bne.n 1ba4 <lv_group_remove_obj+0x7c>
_lv_ll_remove(&g->obj_ll, i);
1b8c: 4b0a ldr r3, [pc, #40] ; (1bb8 <lv_group_remove_obj+0x90>)
1b8e: 4798 blx r3
lv_mem_free(i);
1b90: 4b0a ldr r3, [pc, #40] ; (1bbc <lv_group_remove_obj+0x94>)
1b92: 4628 mov r0, r5
1b94: 4798 blx r3
obj->group_p = NULL;
1b96: 2300 movs r3, #0
1b98: 63b3 str r3, [r6, #56] ; 0x38
}
1b9a: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_group_refocus(g);
1b9c: 4b08 ldr r3, [pc, #32] ; (1bc0 <lv_group_remove_obj+0x98>)
1b9e: 4620 mov r0, r4
1ba0: 4798 blx r3
1ba2: e7e3 b.n 1b6c <lv_group_remove_obj+0x44>
_LV_LL_READ(g->obj_ll, i) {
1ba4: 47b8 blx r7
1ba6: 4605 mov r5, r0
1ba8: e7ea b.n 1b80 <lv_group_remove_obj+0x58>
1baa: bf00 nop
1bac: 0000e6f1 .word 0x0000e6f1
1bb0: 0000e6f7 .word 0x0000e6f7
1bb4: 0000e6fd .word 0x0000e6fd
1bb8: 0000e7b5 .word 0x0000e7b5
1bbc: 0000eb2d .word 0x0000eb2d
1bc0: 00001a25 .word 0x00001a25
00001bc4 <lv_group_get_focused>:
if(!group) return NULL;
1bc4: b110 cbz r0, 1bcc <lv_group_get_focused+0x8>
if(group->obj_focus == NULL) return NULL;
1bc6: 68c0 ldr r0, [r0, #12]
1bc8: b100 cbz r0, 1bcc <lv_group_get_focused+0x8>
return *group->obj_focus;
1bca: 6800 ldr r0, [r0, #0]
}
1bcc: 4770 bx lr
00001bce <lv_group_get_editing>:
if(!group) return false;
1bce: b110 cbz r0, 1bd6 <lv_group_get_editing+0x8>
return group->editing ? true : false;
1bd0: 7d00 ldrb r0, [r0, #20]
1bd2: f3c0 0040 ubfx r0, r0, #1, #1
}
1bd6: 4770 bx lr
00001bd8 <lv_indev_reset.part.0>:
/**
* 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)
1bd8: b5f8 push {r3, r4, r5, r6, r7, lr}
if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) {
indev->proc.types.pointer.last_pressed = NULL;
}
}
else {
lv_indev_t * i = lv_indev_get_next(NULL);
1bda: 4d0c ldr r5, [pc, #48] ; (1c0c <lv_indev_reset.part.0+0x34>)
while(i) {
i->proc.reset_query = 1;
if(indev_act == i) indev_obj_act = NULL;
1bdc: 4e0c ldr r6, [pc, #48] ; (1c10 <lv_indev_reset.part.0+0x38>)
void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj)
1bde: 4604 mov r4, r0
lv_indev_t * i = lv_indev_get_next(NULL);
1be0: 2000 movs r0, #0
1be2: 47a8 blx r5
if(indev_act == i) indev_obj_act = NULL;
1be4: 2700 movs r7, #0
while(i) {
1be6: b900 cbnz r0, 1bea <lv_indev_reset.part.0+0x12>
i->proc.types.pointer.last_pressed = NULL;
}
i = lv_indev_get_next(i);
}
}
}
1be8: bdf8 pop {r3, r4, r5, r6, r7, pc}
i->proc.reset_query = 1;
1bea: f890 3050 ldrb.w r3, [r0, #80] ; 0x50
1bee: f043 0302 orr.w r3, r3, #2
1bf2: f880 3050 strb.w r3, [r0, #80] ; 0x50
if(indev_act == i) indev_obj_act = NULL;
1bf6: 6873 ldr r3, [r6, #4]
1bf8: 4298 cmp r0, r3
1bfa: bf08 it eq
1bfc: 6037 streq r7, [r6, #0]
if(obj == NULL || i->proc.types.pointer.last_pressed == obj) {
1bfe: b114 cbz r4, 1c06 <lv_indev_reset.part.0+0x2e>
1c00: 6bc3 ldr r3, [r0, #60] ; 0x3c
1c02: 429c cmp r4, r3
1c04: d100 bne.n 1c08 <lv_indev_reset.part.0+0x30>
i->proc.types.pointer.last_pressed = NULL;
1c06: 63c7 str r7, [r0, #60] ; 0x3c
i = lv_indev_get_next(i);
1c08: 47a8 blx r5
1c0a: e7ec b.n 1be6 <lv_indev_reset.part.0+0xe>
1c0c: 0000da5d .word 0x0000da5d
1c10: 200080ec .word 0x200080ec
00001c14 <_lv_indev_init>:
if(indev) {
1c14: 4b01 ldr r3, [pc, #4] ; (1c1c <_lv_indev_init+0x8>)
1c16: 2000 movs r0, #0
1c18: 4718 bx r3
1c1a: bf00 nop
1c1c: 00001bd9 .word 0x00001bd9
00001c20 <lv_indev_get_act>:
}
1c20: 4b01 ldr r3, [pc, #4] ; (1c28 <lv_indev_get_act+0x8>)
1c22: 6858 ldr r0, [r3, #4]
1c24: 4770 bx lr
1c26: bf00 nop
1c28: 200080ec .word 0x200080ec
00001c2c <lv_indev_reset>:
if(indev) {
1c2c: b190 cbz r0, 1c54 <lv_indev_reset+0x28>
indev->proc.reset_query = 1;
1c2e: f890 3050 ldrb.w r3, [r0, #80] ; 0x50
1c32: f043 0302 orr.w r3, r3, #2
1c36: f880 3050 strb.w r3, [r0, #80] ; 0x50
if(indev_act == indev) indev_obj_act = NULL;
1c3a: 4b08 ldr r3, [pc, #32] ; (1c5c <lv_indev_reset+0x30>)
1c3c: 685a ldr r2, [r3, #4]
1c3e: 4282 cmp r2, r0
1c40: bf04 itt eq
1c42: 2200 moveq r2, #0
1c44: 601a streq r2, [r3, #0]
if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) {
1c46: b111 cbz r1, 1c4e <lv_indev_reset+0x22>
1c48: 6bc3 ldr r3, [r0, #60] ; 0x3c
1c4a: 428b cmp r3, r1
1c4c: d105 bne.n 1c5a <lv_indev_reset+0x2e>
indev->proc.types.pointer.last_pressed = NULL;
1c4e: 2300 movs r3, #0
1c50: 63c3 str r3, [r0, #60] ; 0x3c
1c52: 4770 bx lr
1c54: 4b02 ldr r3, [pc, #8] ; (1c60 <lv_indev_reset+0x34>)
1c56: 4608 mov r0, r1
1c58: 4718 bx r3
}
1c5a: 4770 bx lr
1c5c: 200080ec .word 0x200080ec
1c60: 00001bd9 .word 0x00001bd9
00001c64 <lv_indev_get_obj_act>:
* @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;
}
1c64: 4b01 ldr r3, [pc, #4] ; (1c6c <lv_indev_get_obj_act+0x8>)
1c66: 6818 ldr r0, [r3, #0]
1c68: 4770 bx lr
1c6a: bf00 nop
1c6c: 200080ec .word 0x200080ec
00001c70 <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)
{
1c70: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_obj_t * i;
_LV_LL_READ(obj->child_ll, i) {
1c74: 1d05 adds r5, r0, #4
1c76: 4b12 ldr r3, [pc, #72] ; (1cc0 <refresh_children_position+0x50>)
1c78: f8df 9048 ldr.w r9, [pc, #72] ; 1cc4 <refresh_children_position+0x54>
1c7c: 4628 mov r0, r5
{
1c7e: 460e mov r6, r1
1c80: 4617 mov r7, r2
_LV_LL_READ(obj->child_ll, i) {
1c82: 4798 blx r3
i->coords.x1 += x_diff;
1c84: fa1f f886 uxth.w r8, r6
_LV_LL_READ(obj->child_ll, i) {
1c88: 4604 mov r4, r0
i->coords.y1 += y_diff;
1c8a: fa1f fa87 uxth.w sl, r7
_LV_LL_READ(obj->child_ll, i) {
1c8e: b90c cbnz r4, 1c94 <refresh_children_position+0x24>
i->coords.x2 += x_diff;
i->coords.y2 += y_diff;
refresh_children_position(i, x_diff, y_diff);
}
}
1c90: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
i->coords.x1 += x_diff;
1c94: 8a23 ldrh r3, [r4, #16]
1c96: 4443 add r3, r8
1c98: 8223 strh r3, [r4, #16]
i->coords.y1 += y_diff;
1c9a: 8a63 ldrh r3, [r4, #18]
1c9c: 4453 add r3, sl
1c9e: 8263 strh r3, [r4, #18]
i->coords.x2 += x_diff;
1ca0: 8aa3 ldrh r3, [r4, #20]
1ca2: 4443 add r3, r8
1ca4: 82a3 strh r3, [r4, #20]
i->coords.y2 += y_diff;
1ca6: 8ae3 ldrh r3, [r4, #22]
1ca8: 4453 add r3, sl
1caa: 82e3 strh r3, [r4, #22]
refresh_children_position(i, x_diff, y_diff);
1cac: 4620 mov r0, r4
1cae: 463a mov r2, r7
1cb0: 4631 mov r1, r6
1cb2: f7ff ffdd bl 1c70 <refresh_children_position>
_LV_LL_READ(obj->child_ll, i) {
1cb6: 4621 mov r1, r4
1cb8: 4628 mov r0, r5
1cba: 47c8 blx r9
1cbc: 4604 mov r4, r0
1cbe: e7e6 b.n 1c8e <refresh_children_position+0x1e>
1cc0: 0000e6f1 .word 0x0000e6f1
1cc4: 0000e6fd .word 0x0000e6fd
00001cc8 <lv_area_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;
while(len) {
1cc8: 3901 subs r1, #1
1cca: f100 0308 add.w r3, r0, #8
*d8 = *s8;
1cce: f811 2f01 ldrb.w r2, [r1, #1]!
1cd2: f800 2b01 strb.w r2, [r0], #1
while(len) {
1cd6: 4298 cmp r0, r3
1cd8: d1f9 bne.n 1cce <lv_area_copy+0x6>
* @param src pointer to the source area
*/
inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src)
{
_lv_memcpy_small(dest, src, sizeof(lv_area_t));
}
1cda: 4770 bx lr
00001cdc <lv_init>:
{
1cdc: b5f0 push {r4, r5, r6, r7, lr}
if(lv_initialized) {
1cde: 4e20 ldr r6, [pc, #128] ; (1d60 <lv_init+0x84>)
1ce0: 4d20 ldr r5, [pc, #128] ; (1d64 <lv_init+0x88>)
1ce2: 7833 ldrb r3, [r6, #0]
{
1ce4: b085 sub sp, #20
if(lv_initialized) {
1ce6: b143 cbz r3, 1cfa <lv_init+0x1e>
LV_LOG_WARN("lv_init: already inited");
1ce8: 4b1f ldr r3, [pc, #124] ; (1d68 <lv_init+0x8c>)
1cea: 9300 str r3, [sp, #0]
1cec: 491f ldr r1, [pc, #124] ; (1d6c <lv_init+0x90>)
1cee: 4b20 ldr r3, [pc, #128] ; (1d70 <lv_init+0x94>)
1cf0: 2278 movs r2, #120 ; 0x78
1cf2: 2002 movs r0, #2
LV_LOG_INFO("lv_init ready");
1cf4: 47a8 blx r5
}
1cf6: b005 add sp, #20
1cf8: bdf0 pop {r4, r5, r6, r7, pc}
_lv_mem_init();
1cfa: 4b1e ldr r3, [pc, #120] ; (1d74 <lv_init+0x98>)
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
1cfc: 4c1e ldr r4, [pc, #120] ; (1d78 <lv_init+0x9c>)
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
1cfe: 4f1f ldr r7, [pc, #124] ; (1d7c <lv_init+0xa0>)
_lv_mem_init();
1d00: 4798 blx r3
_lv_task_core_init();
1d02: 4b1f ldr r3, [pc, #124] ; (1d80 <lv_init+0xa4>)
1d04: 4798 blx r3
_lv_fs_init();
1d06: 4b1f ldr r3, [pc, #124] ; (1d84 <lv_init+0xa8>)
1d08: 4798 blx r3
_lv_anim_core_init();
1d0a: 4b1f ldr r3, [pc, #124] ; (1d88 <lv_init+0xac>)
1d0c: 4798 blx r3
_lv_group_init();
1d0e: 4b1f ldr r3, [pc, #124] ; (1d8c <lv_init+0xb0>)
1d10: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
1d12: 481f ldr r0, [pc, #124] ; (1d90 <lv_init+0xb4>)
1d14: 2110 movs r1, #16
1d16: 47a0 blx r4
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
1d18: 4b1e ldr r3, [pc, #120] ; (1d94 <lv_init+0xb8>)
1d1a: 9300 str r3, [sp, #0]
1d1c: 2202 movs r2, #2
1d1e: f04f 011f mov.w r1, #31
1d22: e9cd 3301 strd r3, r3, [sp, #4]
1d26: f64f 0000 movw r0, #63488 ; 0xf800
1d2a: 47b8 blx r7
lv_theme_set_act(th);
1d2c: 4b1a ldr r3, [pc, #104] ; (1d98 <lv_init+0xbc>)
1d2e: 4798 blx r3
_lv_refr_init();
1d30: 4b1a ldr r3, [pc, #104] ; (1d9c <lv_init+0xc0>)
1d32: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t));
1d34: 481a ldr r0, [pc, #104] ; (1da0 <lv_init+0xc4>)
1d36: f44f 71b8 mov.w r1, #368 ; 0x170
1d3a: 47a0 blx r4
_lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t));
1d3c: 2160 movs r1, #96 ; 0x60
1d3e: 4819 ldr r0, [pc, #100] ; (1da4 <lv_init+0xc8>)
1d40: 47a0 blx r4
_lv_indev_init();
1d42: 4b19 ldr r3, [pc, #100] ; (1da8 <lv_init+0xcc>)
1d44: 4798 blx r3
_lv_img_decoder_init();
1d46: 4b19 ldr r3, [pc, #100] ; (1dac <lv_init+0xd0>)
1d48: 4798 blx r3
lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE);
1d4a: 4b19 ldr r3, [pc, #100] ; (1db0 <lv_init+0xd4>)
1d4c: 2001 movs r0, #1
1d4e: 4798 blx r3
LV_LOG_INFO("lv_init ready");
1d50: 4b18 ldr r3, [pc, #96] ; (1db4 <lv_init+0xd8>)
1d52: 9300 str r3, [sp, #0]
lv_initialized = true;
1d54: 2001 movs r0, #1
LV_LOG_INFO("lv_init ready");
1d56: 4b06 ldr r3, [pc, #24] ; (1d70 <lv_init+0x94>)
1d58: 4904 ldr r1, [pc, #16] ; (1d6c <lv_init+0x90>)
lv_initialized = true;
1d5a: 7030 strb r0, [r6, #0]
LV_LOG_INFO("lv_init ready");
1d5c: 22a2 movs r2, #162 ; 0xa2
1d5e: e7c9 b.n 1cf4 <lv_init+0x18>
1d60: 200080f4 .word 0x200080f4
1d64: 0000e931 .word 0x0000e931
1d68: 0001eece .word 0x0001eece
1d6c: 0001ee9f .word 0x0001ee9f
1d70: 0001f0a6 .word 0x0001f0a6
1d74: 0000ea5d .word 0x0000ea5d
1d78: 0000e64d .word 0x0000e64d
1d7c: 0001255d .word 0x0001255d
1d80: 0000f879 .word 0x0000f879
1d84: 0000e421 .word 0x0000e421
1d88: 0000dc75 .word 0x0000dc75
1d8c: 000019ed .word 0x000019ed
1d90: 20008660 .word 0x20008660
1d94: 20000010 .word 0x20000010
1d98: 0001032d .word 0x0001032d
1d9c: 00004ef5 .word 0x00004ef5
1da0: 2000860c .word 0x2000860c
1da4: 20008618 .word 0x20008618
1da8: 00001c15 .word 0x00001c15
1dac: 0000d119 .word 0x0000d119
1db0: 0000c6f1 .word 0x0000c6f1
1db4: 0001eee6 .word 0x0001eee6
00001db8 <lv_obj_set_adv_hittest>:
{
1db8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1dba: 4b0e ldr r3, [pc, #56] ; (1df4 <lv_obj_set_adv_hittest+0x3c>)
{
1dbc: 4604 mov r4, r0
1dbe: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1dc0: 4798 blx r3
1dc2: 4605 mov r5, r0
1dc4: b968 cbnz r0, 1de2 <lv_obj_set_adv_hittest+0x2a>
1dc6: 4b0c ldr r3, [pc, #48] ; (1df8 <lv_obj_set_adv_hittest+0x40>)
1dc8: 490c ldr r1, [pc, #48] ; (1dfc <lv_obj_set_adv_hittest+0x44>)
1dca: 9300 str r3, [sp, #0]
1dcc: f240 5294 movw r2, #1428 ; 0x594
1dd0: 2003 movs r0, #3
1dd2: 4e0b ldr r6, [pc, #44] ; (1e00 <lv_obj_set_adv_hittest+0x48>)
1dd4: 47b0 blx r6
1dd6: 480b ldr r0, [pc, #44] ; (1e04 <lv_obj_set_adv_hittest+0x4c>)
1dd8: 490b ldr r1, [pc, #44] ; (1e08 <lv_obj_set_adv_hittest+0x50>)
1dda: 4622 mov r2, r4
1ddc: 462b mov r3, r5
1dde: 4788 blx r1
1de0: e7fe b.n 1de0 <lv_obj_set_adv_hittest+0x28>
obj->adv_hittest = en == false ? 0 : 1;
1de2: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
1de6: f366 13c7 bfi r3, r6, #7, #1
1dea: f884 3034 strb.w r3, [r4, #52] ; 0x34
}
1dee: b002 add sp, #8
1df0: bd70 pop {r4, r5, r6, pc}
1df2: bf00 nop
1df4: 00001795 .word 0x00001795
1df8: 0001f0fb .word 0x0001f0fb
1dfc: 0001ee9f .word 0x0001ee9f
1e00: 0000e931 .word 0x0000e931
1e04: 0001ef03 .word 0x0001ef03
1e08: 0000179d .word 0x0000179d
00001e0c <lv_obj_set_click>:
{
1e0c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1e0e: 4b0e ldr r3, [pc, #56] ; (1e48 <lv_obj_set_click+0x3c>)
{
1e10: 4604 mov r4, r0
1e12: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1e14: 4798 blx r3
1e16: 4605 mov r5, r0
1e18: b968 cbnz r0, 1e36 <lv_obj_set_click+0x2a>
1e1a: 4b0c ldr r3, [pc, #48] ; (1e4c <lv_obj_set_click+0x40>)
1e1c: 490c ldr r1, [pc, #48] ; (1e50 <lv_obj_set_click+0x44>)
1e1e: 9300 str r3, [sp, #0]
1e20: f44f 62b4 mov.w r2, #1440 ; 0x5a0
1e24: 2003 movs r0, #3
1e26: 4e0b ldr r6, [pc, #44] ; (1e54 <lv_obj_set_click+0x48>)
1e28: 47b0 blx r6
1e2a: 480b ldr r0, [pc, #44] ; (1e58 <lv_obj_set_click+0x4c>)
1e2c: 490b ldr r1, [pc, #44] ; (1e5c <lv_obj_set_click+0x50>)
1e2e: 4622 mov r2, r4
1e30: 462b mov r3, r5
1e32: 4788 blx r1
1e34: e7fe b.n 1e34 <lv_obj_set_click+0x28>
obj->click = (en == true ? 1 : 0);
1e36: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
1e3a: f366 0300 bfi r3, r6, #0, #1
1e3e: f884 3034 strb.w r3, [r4, #52] ; 0x34
}
1e42: b002 add sp, #8
1e44: bd70 pop {r4, r5, r6, pc}
1e46: bf00 nop
1e48: 00001795 .word 0x00001795
1e4c: 0001f112 .word 0x0001f112
1e50: 0001ee9f .word 0x0001ee9f
1e54: 0000e931 .word 0x0000e931
1e58: 0001ef03 .word 0x0001ef03
1e5c: 0000179d .word 0x0000179d
00001e60 <lv_event_send_func>:
{
1e60: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
1e64: 4680 mov r8, r0
1e66: b087 sub sp, #28
1e68: 4616 mov r6, r2
1e6a: 461f mov r7, r3
if(obj != NULL) {
1e6c: 460c mov r4, r1
1e6e: b191 cbz r1, 1e96 <lv_event_send_func+0x36>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1e70: 4b24 ldr r3, [pc, #144] ; (1f04 <lv_event_send_func+0xa4>)
1e72: 4608 mov r0, r1
1e74: 4798 blx r3
1e76: 4605 mov r5, r0
1e78: b968 cbnz r0, 1e96 <lv_event_send_func+0x36>
1e7a: 4b23 ldr r3, [pc, #140] ; (1f08 <lv_event_send_func+0xa8>)
1e7c: 4923 ldr r1, [pc, #140] ; (1f0c <lv_event_send_func+0xac>)
1e7e: 9300 str r3, [sp, #0]
1e80: f44f 62db mov.w r2, #1752 ; 0x6d8
1e84: 2003 movs r0, #3
1e86: 4e22 ldr r6, [pc, #136] ; (1f10 <lv_event_send_func+0xb0>)
1e88: 47b0 blx r6
1e8a: 4822 ldr r0, [pc, #136] ; (1f14 <lv_event_send_func+0xb4>)
1e8c: 4922 ldr r1, [pc, #136] ; (1f18 <lv_event_send_func+0xb8>)
1e8e: 4622 mov r2, r4
1e90: 462b mov r3, r5
1e92: 4788 blx r1
1e94: e7fe b.n 1e94 <lv_event_send_func+0x34>
if(event_temp_data_head) {
1e96: 4d21 ldr r5, [pc, #132] ; (1f1c <lv_event_send_func+0xbc>)
event_temp_data.obj = obj;
1e98: 9403 str r4, [sp, #12]
event_temp_data.deleted = false;
1e9a: 2300 movs r3, #0
1e9c: f88d 3010 strb.w r3, [sp, #16]
event_temp_data.prev = event_temp_data_head;
1ea0: 686b ldr r3, [r5, #4]
1ea2: 9305 str r3, [sp, #20]
event_temp_data_head = &event_temp_data;
1ea4: ab03 add r3, sp, #12
1ea6: 606b str r3, [r5, #4]
lv_indev_t * indev_act = lv_indev_get_act();
1ea8: 4b1d ldr r3, [pc, #116] ; (1f20 <lv_event_send_func+0xc0>)
const void * event_act_data_save = event_act_data;
1eaa: f8d5 9008 ldr.w r9, [r5, #8]
event_act_data = data;
1eae: 60af str r7, [r5, #8]
lv_indev_t * indev_act = lv_indev_get_act();
1eb0: 4798 blx r3
if(indev_act) {
1eb2: b118 cbz r0, 1ebc <lv_event_send_func+0x5c>
if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event);
1eb4: 6883 ldr r3, [r0, #8]
1eb6: b10b cbz r3, 1ebc <lv_event_send_func+0x5c>
1eb8: 4631 mov r1, r6
1eba: 4798 blx r3
if(event_xcb) event_xcb(obj, event);
1ebc: f1b8 0f00 cmp.w r8, #0
1ec0: d002 beq.n 1ec8 <lv_event_send_func+0x68>
1ec2: 4631 mov r1, r6
1ec4: 4620 mov r0, r4
1ec6: 47c0 blx r8
event_temp_data_head = event_temp_data_head->prev;
1ec8: 686b ldr r3, [r5, #4]
event_act_data = event_act_data_save;
1eca: f8c5 9008 str.w r9, [r5, #8]
event_temp_data_head = event_temp_data_head->prev;
1ece: 689b ldr r3, [r3, #8]
1ed0: 606b str r3, [r5, #4]
if(event_temp_data.deleted) {
1ed2: f89d 3010 ldrb.w r3, [sp, #16]
1ed6: b983 cbnz r3, 1efa <lv_event_send_func+0x9a>
if(obj) {
1ed8: b18c cbz r4, 1efe <lv_event_send_func+0x9e>
if(obj->parent_event && obj->parent) {
1eda: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
1ede: 065a lsls r2, r3, #25
1ee0: d50d bpl.n 1efe <lv_event_send_func+0x9e>
1ee2: 6820 ldr r0, [r4, #0]
1ee4: b158 cbz r0, 1efe <lv_event_send_func+0x9e>
lv_res_t res = lv_event_send(obj->parent, event, data);
1ee6: 4b0f ldr r3, [pc, #60] ; (1f24 <lv_event_send_func+0xc4>)
1ee8: 463a mov r2, r7
1eea: 4631 mov r1, r6
1eec: 4798 blx r3
return LV_RES_INV;
1eee: 1e43 subs r3, r0, #1
1ef0: 4258 negs r0, r3
1ef2: 4158 adcs r0, r3
}
1ef4: b007 add sp, #28
1ef6: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
return LV_RES_INV;
1efa: 2000 movs r0, #0
1efc: e7fa b.n 1ef4 <lv_event_send_func+0x94>
return LV_RES_OK;
1efe: 2001 movs r0, #1
1f00: e7f8 b.n 1ef4 <lv_event_send_func+0x94>
1f02: bf00 nop
1f04: 00001795 .word 0x00001795
1f08: 0001f1d7 .word 0x0001f1d7
1f0c: 0001ee9f .word 0x0001ee9f
1f10: 0000e931 .word 0x0000e931
1f14: 0001ef03 .word 0x0001ef03
1f18: 0000179d .word 0x0000179d
1f1c: 200080f4 .word 0x200080f4
1f20: 00001c21 .word 0x00001c21
1f24: 00001f29 .word 0x00001f29
00001f28 <lv_event_send>:
{
1f28: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
1f2a: 460e mov r6, r1
1f2c: 9203 str r2, [sp, #12]
if(obj == NULL) return LV_RES_OK;
1f2e: 4604 mov r4, r0
1f30: b1d8 cbz r0, 1f6a <lv_event_send+0x42>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1f32: 4a0f ldr r2, [pc, #60] ; (1f70 <lv_event_send+0x48>)
1f34: 4790 blx r2
1f36: 9b03 ldr r3, [sp, #12]
1f38: 4605 mov r5, r0
1f3a: b968 cbnz r0, 1f58 <lv_event_send+0x30>
1f3c: 4b0d ldr r3, [pc, #52] ; (1f74 <lv_event_send+0x4c>)
1f3e: 490e ldr r1, [pc, #56] ; (1f78 <lv_event_send+0x50>)
1f40: 9300 str r3, [sp, #0]
1f42: f240 62c4 movw r2, #1732 ; 0x6c4
1f46: 2003 movs r0, #3
1f48: 4e0c ldr r6, [pc, #48] ; (1f7c <lv_event_send+0x54>)
1f4a: 47b0 blx r6
1f4c: 480c ldr r0, [pc, #48] ; (1f80 <lv_event_send+0x58>)
1f4e: 490d ldr r1, [pc, #52] ; (1f84 <lv_event_send+0x5c>)
1f50: 4622 mov r2, r4
1f52: 462b mov r3, r5
1f54: 4788 blx r1
1f56: e7fe b.n 1f56 <lv_event_send+0x2e>
res = lv_event_send_func(obj->event_cb, obj, event, data);
1f58: 69a0 ldr r0, [r4, #24]
1f5a: 4621 mov r1, r4
1f5c: 4c0a ldr r4, [pc, #40] ; (1f88 <lv_event_send+0x60>)
1f5e: 4632 mov r2, r6
1f60: 46a4 mov ip, r4
}
1f62: b004 add sp, #16
1f64: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
res = lv_event_send_func(obj->event_cb, obj, event, data);
1f68: 4760 bx ip
}
1f6a: 2001 movs r0, #1
1f6c: b004 add sp, #16
1f6e: bd70 pop {r4, r5, r6, pc}
1f70: 00001795 .word 0x00001795
1f74: 0001f1ea .word 0x0001f1ea
1f78: 0001ee9f .word 0x0001ee9f
1f7c: 0000e931 .word 0x0000e931
1f80: 0001ef03 .word 0x0001ef03
1f84: 0000179d .word 0x0000179d
1f88: 00001e61 .word 0x00001e61
00001f8c <lv_obj_set_signal_cb>:
{
1f8c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1f8e: 4b0b ldr r3, [pc, #44] ; (1fbc <lv_obj_set_signal_cb+0x30>)
{
1f90: 4604 mov r4, r0
1f92: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1f94: 4798 blx r3
1f96: 4605 mov r5, r0
1f98: b968 cbnz r0, 1fb6 <lv_obj_set_signal_cb+0x2a>
1f9a: 4b09 ldr r3, [pc, #36] ; (1fc0 <lv_obj_set_signal_cb+0x34>)
1f9c: 4909 ldr r1, [pc, #36] ; (1fc4 <lv_obj_set_signal_cb+0x38>)
1f9e: 9300 str r3, [sp, #0]
1fa0: f240 721b movw r2, #1819 ; 0x71b
1fa4: 2003 movs r0, #3
1fa6: 4e08 ldr r6, [pc, #32] ; (1fc8 <lv_obj_set_signal_cb+0x3c>)
1fa8: 47b0 blx r6
1faa: 4808 ldr r0, [pc, #32] ; (1fcc <lv_obj_set_signal_cb+0x40>)
1fac: 4908 ldr r1, [pc, #32] ; (1fd0 <lv_obj_set_signal_cb+0x44>)
1fae: 4622 mov r2, r4
1fb0: 462b mov r3, r5
1fb2: 4788 blx r1
1fb4: e7fe b.n 1fb4 <lv_obj_set_signal_cb+0x28>
obj->signal_cb = signal_cb;
1fb6: 61e6 str r6, [r4, #28]
}
1fb8: b002 add sp, #8
1fba: bd70 pop {r4, r5, r6, pc}
1fbc: 00001795 .word 0x00001795
1fc0: 0001f1f8 .word 0x0001f1f8
1fc4: 0001ee9f .word 0x0001ee9f
1fc8: 0000e931 .word 0x0000e931
1fcc: 0001ef03 .word 0x0001ef03
1fd0: 0000179d .word 0x0000179d
00001fd4 <lv_signal_send>:
if(obj == NULL) return LV_RES_OK;
1fd4: b110 cbz r0, 1fdc <lv_signal_send+0x8>
if(obj->signal_cb) res = obj->signal_cb(obj, signal, param);
1fd6: 69c3 ldr r3, [r0, #28]
1fd8: b103 cbz r3, 1fdc <lv_signal_send+0x8>
1fda: 4718 bx r3
}
1fdc: 2001 movs r0, #1
1fde: 4770 bx lr
00001fe0 <lv_obj_set_design_cb>:
{
1fe0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1fe2: 4b0b ldr r3, [pc, #44] ; (2010 <lv_obj_set_design_cb+0x30>)
{
1fe4: 4604 mov r4, r0
1fe6: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
1fe8: 4798 blx r3
1fea: 4605 mov r5, r0
1fec: b968 cbnz r0, 200a <lv_obj_set_design_cb+0x2a>
1fee: 4b09 ldr r3, [pc, #36] ; (2014 <lv_obj_set_design_cb+0x34>)
1ff0: 4909 ldr r1, [pc, #36] ; (2018 <lv_obj_set_design_cb+0x38>)
1ff2: 9300 str r3, [sp, #0]
1ff4: f240 7237 movw r2, #1847 ; 0x737
1ff8: 2003 movs r0, #3
1ffa: 4e08 ldr r6, [pc, #32] ; (201c <lv_obj_set_design_cb+0x3c>)
1ffc: 47b0 blx r6
1ffe: 4808 ldr r0, [pc, #32] ; (2020 <lv_obj_set_design_cb+0x40>)
2000: 4908 ldr r1, [pc, #32] ; (2024 <lv_obj_set_design_cb+0x44>)
2002: 4622 mov r2, r4
2004: 462b mov r3, r5
2006: 4788 blx r1
2008: e7fe b.n 2008 <lv_obj_set_design_cb+0x28>
obj->design_cb = design_cb;
200a: 6226 str r6, [r4, #32]
}
200c: b002 add sp, #8
200e: bd70 pop {r4, r5, r6, pc}
2010: 00001795 .word 0x00001795
2014: 0001f20d .word 0x0001f20d
2018: 0001ee9f .word 0x0001ee9f
201c: 0000e931 .word 0x0000e931
2020: 0001ef03 .word 0x0001ef03
2024: 0000179d .word 0x0000179d
00002028 <lv_obj_allocate_ext_attr>:
{
2028: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
202a: 4b0e ldr r3, [pc, #56] ; (2064 <lv_obj_allocate_ext_attr+0x3c>)
{
202c: 9103 str r1, [sp, #12]
202e: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2030: 4798 blx r3
2032: 9903 ldr r1, [sp, #12]
2034: 4605 mov r5, r0
2036: b968 cbnz r0, 2054 <lv_obj_allocate_ext_attr+0x2c>
2038: 4b0b ldr r3, [pc, #44] ; (2068 <lv_obj_allocate_ext_attr+0x40>)
203a: 490c ldr r1, [pc, #48] ; (206c <lv_obj_allocate_ext_attr+0x44>)
203c: 9300 str r3, [sp, #0]
203e: f240 7249 movw r2, #1865 ; 0x749
2042: 2003 movs r0, #3
2044: 4e0a ldr r6, [pc, #40] ; (2070 <lv_obj_allocate_ext_attr+0x48>)
2046: 47b0 blx r6
2048: 480a ldr r0, [pc, #40] ; (2074 <lv_obj_allocate_ext_attr+0x4c>)
204a: 490b ldr r1, [pc, #44] ; (2078 <lv_obj_allocate_ext_attr+0x50>)
204c: 4622 mov r2, r4
204e: 462b mov r3, r5
2050: 4788 blx r1
2052: e7fe b.n 2052 <lv_obj_allocate_ext_attr+0x2a>
void * new_ext = lv_mem_realloc(obj->ext_attr, ext_size);
2054: 6a60 ldr r0, [r4, #36] ; 0x24
2056: 4b09 ldr r3, [pc, #36] ; (207c <lv_obj_allocate_ext_attr+0x54>)
2058: 4798 blx r3
if(new_ext == NULL) return NULL;
205a: b100 cbz r0, 205e <lv_obj_allocate_ext_attr+0x36>
obj->ext_attr = new_ext;
205c: 6260 str r0, [r4, #36] ; 0x24
}
205e: b004 add sp, #16
2060: bd70 pop {r4, r5, r6, pc}
2062: bf00 nop
2064: 00001795 .word 0x00001795
2068: 0001f222 .word 0x0001f222
206c: 0001ee9f .word 0x0001ee9f
2070: 0000e931 .word 0x0000e931
2074: 0001ef03 .word 0x0001ef03
2078: 0000179d .word 0x0000179d
207c: 0000ee5d .word 0x0000ee5d
00002080 <lv_obj_refresh_ext_draw_pad>:
{
2080: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2082: 4b0e ldr r3, [pc, #56] ; (20bc <lv_obj_refresh_ext_draw_pad+0x3c>)
{
2084: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2086: 4798 blx r3
2088: 4605 mov r5, r0
208a: b968 cbnz r0, 20a8 <lv_obj_refresh_ext_draw_pad+0x28>
208c: 4b0c ldr r3, [pc, #48] ; (20c0 <lv_obj_refresh_ext_draw_pad+0x40>)
208e: 490d ldr r1, [pc, #52] ; (20c4 <lv_obj_refresh_ext_draw_pad+0x44>)
2090: 9300 str r3, [sp, #0]
2092: f240 7259 movw r2, #1881 ; 0x759
2096: 2003 movs r0, #3
2098: 4e0b ldr r6, [pc, #44] ; (20c8 <lv_obj_refresh_ext_draw_pad+0x48>)
209a: 47b0 blx r6
209c: 480b ldr r0, [pc, #44] ; (20cc <lv_obj_refresh_ext_draw_pad+0x4c>)
209e: 490c ldr r1, [pc, #48] ; (20d0 <lv_obj_refresh_ext_draw_pad+0x50>)
20a0: 4622 mov r2, r4
20a2: 462b mov r3, r5
20a4: 4788 blx r1
20a6: e7fe b.n 20a6 <lv_obj_refresh_ext_draw_pad+0x26>
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
20a8: 69e3 ldr r3, [r4, #28]
obj->ext_draw_pad = 0;
20aa: 2200 movs r2, #0
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
20ac: 2106 movs r1, #6
20ae: 4620 mov r0, r4
obj->ext_draw_pad = 0;
20b0: 8662 strh r2, [r4, #50] ; 0x32
}
20b2: b002 add sp, #8
20b4: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
20b8: 4718 bx r3
20ba: bf00 nop
20bc: 00001795 .word 0x00001795
20c0: 0001f23b .word 0x0001f23b
20c4: 0001ee9f .word 0x0001ee9f
20c8: 0000e931 .word 0x0000e931
20cc: 0001ef03 .word 0x0001ef03
20d0: 0000179d .word 0x0000179d
000020d4 <lv_obj_get_parent>:
{
20d4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20d6: 4b0b ldr r3, [pc, #44] ; (2104 <lv_obj_get_parent+0x30>)
{
20d8: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20da: 4798 blx r3
20dc: 4605 mov r5, r0
20de: b968 cbnz r0, 20fc <lv_obj_get_parent+0x28>
20e0: 4b09 ldr r3, [pc, #36] ; (2108 <lv_obj_get_parent+0x34>)
20e2: 490a ldr r1, [pc, #40] ; (210c <lv_obj_get_parent+0x38>)
20e4: 9300 str r3, [sp, #0]
20e6: f240 729f movw r2, #1951 ; 0x79f
20ea: 2003 movs r0, #3
20ec: 4e08 ldr r6, [pc, #32] ; (2110 <lv_obj_get_parent+0x3c>)
20ee: 47b0 blx r6
20f0: 4808 ldr r0, [pc, #32] ; (2114 <lv_obj_get_parent+0x40>)
20f2: 4909 ldr r1, [pc, #36] ; (2118 <lv_obj_get_parent+0x44>)
20f4: 4622 mov r2, r4
20f6: 462b mov r3, r5
20f8: 4788 blx r1
20fa: e7fe b.n 20fa <lv_obj_get_parent+0x26>
}
20fc: 6820 ldr r0, [r4, #0]
20fe: b002 add sp, #8
2100: bd70 pop {r4, r5, r6, pc}
2102: bf00 nop
2104: 00001795 .word 0x00001795
2108: 0001f257 .word 0x0001f257
210c: 0001ee9f .word 0x0001ee9f
2110: 0000e931 .word 0x0000e931
2114: 0001ef03 .word 0x0001ef03
2118: 0000179d .word 0x0000179d
0000211c <lv_obj_get_screen>:
{
211c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
211e: 4b0e ldr r3, [pc, #56] ; (2158 <lv_obj_get_screen+0x3c>)
{
2120: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2122: 4798 blx r3
2124: 4605 mov r5, r0
2126: b148 cbz r0, 213c <lv_obj_get_screen+0x20>
par = lv_obj_get_parent(act_p);
2128: 4e0c ldr r6, [pc, #48] ; (215c <lv_obj_get_screen+0x40>)
212a: 4620 mov r0, r4
212c: 47b0 blx r6
} while(par != NULL);
212e: 4625 mov r5, r4
2130: 4604 mov r4, r0
2132: 2800 cmp r0, #0
2134: d1f9 bne.n 212a <lv_obj_get_screen+0xe>
}
2136: 4628 mov r0, r5
2138: b002 add sp, #8
213a: bd70 pop {r4, r5, r6, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
213c: 4b08 ldr r3, [pc, #32] ; (2160 <lv_obj_get_screen+0x44>)
213e: 4909 ldr r1, [pc, #36] ; (2164 <lv_obj_get_screen+0x48>)
2140: 9300 str r3, [sp, #0]
2142: f240 726b movw r2, #1899 ; 0x76b
2146: 2003 movs r0, #3
2148: 4e07 ldr r6, [pc, #28] ; (2168 <lv_obj_get_screen+0x4c>)
214a: 47b0 blx r6
214c: 4807 ldr r0, [pc, #28] ; (216c <lv_obj_get_screen+0x50>)
214e: 4908 ldr r1, [pc, #32] ; (2170 <lv_obj_get_screen+0x54>)
2150: 4622 mov r2, r4
2152: 462b mov r3, r5
2154: 4788 blx r1
2156: e7fe b.n 2156 <lv_obj_get_screen+0x3a>
2158: 00001795 .word 0x00001795
215c: 000020d5 .word 0x000020d5
2160: 0001f269 .word 0x0001f269
2164: 0001ee9f .word 0x0001ee9f
2168: 0000e931 .word 0x0000e931
216c: 0001ef03 .word 0x0001ef03
2170: 0000179d .word 0x0000179d
00002174 <lv_obj_get_disp>:
{
2174: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2178: 4b1e ldr r3, [pc, #120] ; (21f4 <lv_obj_get_disp+0x80>)
{
217a: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
217c: 4798 blx r3
217e: 4604 mov r4, r0
2180: b968 cbnz r0, 219e <lv_obj_get_disp+0x2a>
2182: 4b1d ldr r3, [pc, #116] ; (21f8 <lv_obj_get_disp+0x84>)
2184: 491d ldr r1, [pc, #116] ; (21fc <lv_obj_get_disp+0x88>)
2186: 9300 str r3, [sp, #0]
2188: f240 727f movw r2, #1919 ; 0x77f
218c: 2003 movs r0, #3
218e: 4e1c ldr r6, [pc, #112] ; (2200 <lv_obj_get_disp+0x8c>)
2190: 47b0 blx r6
2192: 481c ldr r0, [pc, #112] ; (2204 <lv_obj_get_disp+0x90>)
2194: 491c ldr r1, [pc, #112] ; (2208 <lv_obj_get_disp+0x94>)
2196: 462a mov r2, r5
2198: 4623 mov r3, r4
219a: 4788 blx r1
219c: e7fe b.n 219c <lv_obj_get_disp+0x28>
if(obj->parent == NULL)
219e: 682b ldr r3, [r5, #0]
21a0: b11b cbz r3, 21aa <lv_obj_get_disp+0x36>
scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/
21a2: 4628 mov r0, r5
21a4: 4b19 ldr r3, [pc, #100] ; (220c <lv_obj_get_disp+0x98>)
21a6: 4798 blx r3
21a8: 4605 mov r5, r0
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
21aa: 4819 ldr r0, [pc, #100] ; (2210 <lv_obj_get_disp+0x9c>)
21ac: 4e19 ldr r6, [pc, #100] ; (2214 <lv_obj_get_disp+0xa0>)
_LV_LL_READ(d->scr_ll, s) {
21ae: 4f1a ldr r7, [pc, #104] ; (2218 <lv_obj_get_disp+0xa4>)
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
21b0: f8df 805c ldr.w r8, [pc, #92] ; 2210 <lv_obj_get_disp+0x9c>
21b4: 47b0 blx r6
21b6: 4604 mov r4, r0
21b8: b964 cbnz r4, 21d4 <lv_obj_get_disp+0x60>
LV_LOG_WARN("lv_scr_get_disp: screen not found")
21ba: 4b18 ldr r3, [pc, #96] ; (221c <lv_obj_get_disp+0xa8>)
21bc: 9300 str r3, [sp, #0]
21be: 490f ldr r1, [pc, #60] ; (21fc <lv_obj_get_disp+0x88>)
21c0: 4b0d ldr r3, [pc, #52] ; (21f8 <lv_obj_get_disp+0x84>)
21c2: 4d0f ldr r5, [pc, #60] ; (2200 <lv_obj_get_disp+0x8c>)
21c4: f44f 62f2 mov.w r2, #1936 ; 0x790
21c8: 2002 movs r0, #2
21ca: 47a8 blx r5
}
21cc: 4620 mov r0, r4
21ce: b003 add sp, #12
21d0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
_LV_LL_READ(d->scr_ll, s) {
21d4: f104 0930 add.w r9, r4, #48 ; 0x30
21d8: 4648 mov r0, r9
21da: 47b0 blx r6
21dc: b920 cbnz r0, 21e8 <lv_obj_get_disp+0x74>
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
21de: 4621 mov r1, r4
21e0: 4640 mov r0, r8
21e2: 47b8 blx r7
21e4: 4604 mov r4, r0
21e6: e7e7 b.n 21b8 <lv_obj_get_disp+0x44>
if(s == scr) return d;
21e8: 4285 cmp r5, r0
21ea: d0ef beq.n 21cc <lv_obj_get_disp+0x58>
_LV_LL_READ(d->scr_ll, s) {
21ec: 4601 mov r1, r0
21ee: 4648 mov r0, r9
21f0: 47b8 blx r7
21f2: e7f3 b.n 21dc <lv_obj_get_disp+0x68>
21f4: 00001795 .word 0x00001795
21f8: 0001f27b .word 0x0001f27b
21fc: 0001ee9f .word 0x0001ee9f
2200: 0000e931 .word 0x0000e931
2204: 0001ef03 .word 0x0001ef03
2208: 0000179d .word 0x0000179d
220c: 0000211d .word 0x0000211d
2210: 2000860c .word 0x2000860c
2214: 0000e6f1 .word 0x0000e6f1
2218: 0000e6fd .word 0x0000e6fd
221c: 0001ef10 .word 0x0001ef10
00002220 <lv_obj_get_child>:
{
2220: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2222: 4b10 ldr r3, [pc, #64] ; (2264 <lv_obj_get_child+0x44>)
{
2224: 4604 mov r4, r0
2226: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2228: 4798 blx r3
222a: 4606 mov r6, r0
222c: b968 cbnz r0, 224a <lv_obj_get_child+0x2a>
222e: 4b0e ldr r3, [pc, #56] ; (2268 <lv_obj_get_child+0x48>)
2230: 490e ldr r1, [pc, #56] ; (226c <lv_obj_get_child+0x4c>)
2232: 9300 str r3, [sp, #0]
2234: f240 72ad movw r2, #1965 ; 0x7ad
2238: 2003 movs r0, #3
223a: 4d0d ldr r5, [pc, #52] ; (2270 <lv_obj_get_child+0x50>)
223c: 47a8 blx r5
223e: 480d ldr r0, [pc, #52] ; (2274 <lv_obj_get_child+0x54>)
2240: 490d ldr r1, [pc, #52] ; (2278 <lv_obj_get_child+0x58>)
2242: 4622 mov r2, r4
2244: 4633 mov r3, r6
2246: 4788 blx r1
2248: e7fe b.n 2248 <lv_obj_get_child+0x28>
result = _lv_ll_get_head(&obj->child_ll);
224a: 1d20 adds r0, r4, #4
if(child == NULL) {
224c: b925 cbnz r5, 2258 <lv_obj_get_child+0x38>
result = _lv_ll_get_head(&obj->child_ll);
224e: 4b0b ldr r3, [pc, #44] ; (227c <lv_obj_get_child+0x5c>)
}
2250: b002 add sp, #8
2252: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
result = _lv_ll_get_head(&obj->child_ll);
2256: 4718 bx r3
result = _lv_ll_get_next(&obj->child_ll, child);
2258: 4b09 ldr r3, [pc, #36] ; (2280 <lv_obj_get_child+0x60>)
225a: 4629 mov r1, r5
}
225c: b002 add sp, #8
225e: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
result = _lv_ll_get_next(&obj->child_ll, child);
2262: 4718 bx r3
2264: 00001795 .word 0x00001795
2268: 0001f28b .word 0x0001f28b
226c: 0001ee9f .word 0x0001ee9f
2270: 0000e931 .word 0x0000e931
2274: 0001ef03 .word 0x0001ef03
2278: 0000179d .word 0x0000179d
227c: 0000e6f1 .word 0x0000e6f1
2280: 0000e6fd .word 0x0000e6fd
00002284 <lv_obj_get_coords>:
{
2284: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2286: 4b0e ldr r3, [pc, #56] ; (22c0 <lv_obj_get_coords+0x3c>)
{
2288: 4604 mov r4, r0
228a: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
228c: 4798 blx r3
228e: 4605 mov r5, r0
2290: b968 cbnz r0, 22ae <lv_obj_get_coords+0x2a>
2292: 4b0c ldr r3, [pc, #48] ; (22c4 <lv_obj_get_coords+0x40>)
2294: 490c ldr r1, [pc, #48] ; (22c8 <lv_obj_get_coords+0x44>)
2296: 9300 str r3, [sp, #0]
2298: f640 0201 movw r2, #2049 ; 0x801
229c: 2003 movs r0, #3
229e: 4e0b ldr r6, [pc, #44] ; (22cc <lv_obj_get_coords+0x48>)
22a0: 47b0 blx r6
22a2: 480b ldr r0, [pc, #44] ; (22d0 <lv_obj_get_coords+0x4c>)
22a4: 490b ldr r1, [pc, #44] ; (22d4 <lv_obj_get_coords+0x50>)
22a6: 4622 mov r2, r4
22a8: 462b mov r3, r5
22aa: 4788 blx r1
22ac: e7fe b.n 22ac <lv_obj_get_coords+0x28>
lv_area_copy(cords_p, &obj->coords);
22ae: 4b0a ldr r3, [pc, #40] ; (22d8 <lv_obj_get_coords+0x54>)
22b0: f104 0110 add.w r1, r4, #16
22b4: 4630 mov r0, r6
}
22b6: b002 add sp, #8
22b8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_area_copy(cords_p, &obj->coords);
22bc: 4718 bx r3
22be: bf00 nop
22c0: 00001795 .word 0x00001795
22c4: 0001f2fc .word 0x0001f2fc
22c8: 0001ee9f .word 0x0001ee9f
22cc: 0000e931 .word 0x0000e931
22d0: 0001ef03 .word 0x0001ef03
22d4: 0000179d .word 0x0000179d
22d8: 00001cc9 .word 0x00001cc9
000022dc <lv_obj_get_x>:
{
22dc: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
22de: 4b10 ldr r3, [pc, #64] ; (2320 <lv_obj_get_x+0x44>)
{
22e0: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
22e2: 4798 blx r3
22e4: 4605 mov r5, r0
22e6: b968 cbnz r0, 2304 <lv_obj_get_x+0x28>
22e8: 4b0e ldr r3, [pc, #56] ; (2324 <lv_obj_get_x+0x48>)
22ea: 490f ldr r1, [pc, #60] ; (2328 <lv_obj_get_x+0x4c>)
22ec: 9300 str r3, [sp, #0]
22ee: f640 0222 movw r2, #2082 ; 0x822
22f2: 2003 movs r0, #3
22f4: 4e0d ldr r6, [pc, #52] ; (232c <lv_obj_get_x+0x50>)
22f6: 47b0 blx r6
22f8: 480d ldr r0, [pc, #52] ; (2330 <lv_obj_get_x+0x54>)
22fa: 490e ldr r1, [pc, #56] ; (2334 <lv_obj_get_x+0x58>)
22fc: 4622 mov r2, r4
22fe: 462b mov r3, r5
2300: 4788 blx r1
2302: e7fe b.n 2302 <lv_obj_get_x+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2304: 4b0c ldr r3, [pc, #48] ; (2338 <lv_obj_get_x+0x5c>)
2306: 4620 mov r0, r4
2308: 4798 blx r3
if(parent) {
230a: b128 cbz r0, 2318 <lv_obj_get_x+0x3c>
rel_x = obj->coords.x1 - parent->coords.x1;
230c: 8a23 ldrh r3, [r4, #16]
230e: 8a00 ldrh r0, [r0, #16]
2310: 1a18 subs r0, r3, r0
2312: b200 sxth r0, r0
}
2314: b002 add sp, #8
2316: bd70 pop {r4, r5, r6, pc}
rel_x = obj->coords.x1;
2318: f9b4 0010 ldrsh.w r0, [r4, #16]
231c: e7fa b.n 2314 <lv_obj_get_x+0x38>
231e: bf00 nop
2320: 00001795 .word 0x00001795
2324: 0001f30e .word 0x0001f30e
2328: 0001ee9f .word 0x0001ee9f
232c: 0000e931 .word 0x0000e931
2330: 0001ef03 .word 0x0001ef03
2334: 0000179d .word 0x0000179d
2338: 000020d5 .word 0x000020d5
0000233c <lv_obj_get_y>:
{
233c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
233e: 4b10 ldr r3, [pc, #64] ; (2380 <lv_obj_get_y+0x44>)
{
2340: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2342: 4798 blx r3
2344: 4605 mov r5, r0
2346: b968 cbnz r0, 2364 <lv_obj_get_y+0x28>
2348: 4b0e ldr r3, [pc, #56] ; (2384 <lv_obj_get_y+0x48>)
234a: 490f ldr r1, [pc, #60] ; (2388 <lv_obj_get_y+0x4c>)
234c: 9300 str r3, [sp, #0]
234e: f640 0236 movw r2, #2102 ; 0x836
2352: 2003 movs r0, #3
2354: 4e0d ldr r6, [pc, #52] ; (238c <lv_obj_get_y+0x50>)
2356: 47b0 blx r6
2358: 480d ldr r0, [pc, #52] ; (2390 <lv_obj_get_y+0x54>)
235a: 490e ldr r1, [pc, #56] ; (2394 <lv_obj_get_y+0x58>)
235c: 4622 mov r2, r4
235e: 462b mov r3, r5
2360: 4788 blx r1
2362: e7fe b.n 2362 <lv_obj_get_y+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2364: 4b0c ldr r3, [pc, #48] ; (2398 <lv_obj_get_y+0x5c>)
2366: 4620 mov r0, r4
2368: 4798 blx r3
if(parent) {
236a: b128 cbz r0, 2378 <lv_obj_get_y+0x3c>
rel_y = obj->coords.y1 - parent->coords.y1;
236c: 8a63 ldrh r3, [r4, #18]
236e: 8a40 ldrh r0, [r0, #18]
2370: 1a18 subs r0, r3, r0
2372: b200 sxth r0, r0
}
2374: b002 add sp, #8
2376: bd70 pop {r4, r5, r6, pc}
rel_y = obj->coords.y1;
2378: f9b4 0012 ldrsh.w r0, [r4, #18]
237c: e7fa b.n 2374 <lv_obj_get_y+0x38>
237e: bf00 nop
2380: 00001795 .word 0x00001795
2384: 0001f31b .word 0x0001f31b
2388: 0001ee9f .word 0x0001ee9f
238c: 0000e931 .word 0x0000e931
2390: 0001ef03 .word 0x0001ef03
2394: 0000179d .word 0x0000179d
2398: 000020d5 .word 0x000020d5
0000239c <lv_obj_get_width>:
{
239c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
239e: 4b0d ldr r3, [pc, #52] ; (23d4 <lv_obj_get_width+0x38>)
{
23a0: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23a2: 4798 blx r3
23a4: 4605 mov r5, r0
23a6: b968 cbnz r0, 23c4 <lv_obj_get_width+0x28>
23a8: 4b0b ldr r3, [pc, #44] ; (23d8 <lv_obj_get_width+0x3c>)
23aa: 490c ldr r1, [pc, #48] ; (23dc <lv_obj_get_width+0x40>)
23ac: 9300 str r3, [sp, #0]
23ae: f640 024a movw r2, #2122 ; 0x84a
23b2: 2003 movs r0, #3
23b4: 4e0a ldr r6, [pc, #40] ; (23e0 <lv_obj_get_width+0x44>)
23b6: 47b0 blx r6
23b8: 480a ldr r0, [pc, #40] ; (23e4 <lv_obj_get_width+0x48>)
23ba: 490b ldr r1, [pc, #44] ; (23e8 <lv_obj_get_width+0x4c>)
23bc: 4622 mov r2, r4
23be: 462b mov r3, r5
23c0: 4788 blx r1
23c2: e7fe b.n 23c2 <lv_obj_get_width+0x26>
* @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);
23c4: 8aa3 ldrh r3, [r4, #20]
23c6: 8a20 ldrh r0, [r4, #16]
23c8: 3301 adds r3, #1
23ca: 1a18 subs r0, r3, r0
}
23cc: b200 sxth r0, r0
23ce: b002 add sp, #8
23d0: bd70 pop {r4, r5, r6, pc}
23d2: bf00 nop
23d4: 00001795 .word 0x00001795
23d8: 0001f328 .word 0x0001f328
23dc: 0001ee9f .word 0x0001ee9f
23e0: 0000e931 .word 0x0000e931
23e4: 0001ef03 .word 0x0001ef03
23e8: 0000179d .word 0x0000179d
000023ec <lv_obj_get_height>:
{
23ec: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23ee: 4b0d ldr r3, [pc, #52] ; (2424 <lv_obj_get_height+0x38>)
{
23f0: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23f2: 4798 blx r3
23f4: 4605 mov r5, r0
23f6: b968 cbnz r0, 2414 <lv_obj_get_height+0x28>
23f8: 4b0b ldr r3, [pc, #44] ; (2428 <lv_obj_get_height+0x3c>)
23fa: 490c ldr r1, [pc, #48] ; (242c <lv_obj_get_height+0x40>)
23fc: 9300 str r3, [sp, #0]
23fe: f640 0256 movw r2, #2134 ; 0x856
2402: 2003 movs r0, #3
2404: 4e0a ldr r6, [pc, #40] ; (2430 <lv_obj_get_height+0x44>)
2406: 47b0 blx r6
2408: 480a ldr r0, [pc, #40] ; (2434 <lv_obj_get_height+0x48>)
240a: 490b ldr r1, [pc, #44] ; (2438 <lv_obj_get_height+0x4c>)
240c: 4622 mov r2, r4
240e: 462b mov r3, r5
2410: 4788 blx r1
2412: e7fe b.n 2412 <lv_obj_get_height+0x26>
* @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);
2414: 8ae3 ldrh r3, [r4, #22]
2416: 8a60 ldrh r0, [r4, #18]
2418: 3301 adds r3, #1
241a: 1a18 subs r0, r3, r0
}
241c: b200 sxth r0, r0
241e: b002 add sp, #8
2420: bd70 pop {r4, r5, r6, pc}
2422: bf00 nop
2424: 00001795 .word 0x00001795
2428: 0001f339 .word 0x0001f339
242c: 0001ee9f .word 0x0001ee9f
2430: 0000e931 .word 0x0000e931
2434: 0001ef03 .word 0x0001ef03
2438: 0000179d .word 0x0000179d
0000243c <lv_obj_get_style_list>:
{
243c: b513 push {r0, r1, r4, lr}
if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list;
243e: b911 cbnz r1, 2446 <lv_obj_get_style_list+0xa>
2440: 3028 adds r0, #40 ; 0x28
}
2442: b002 add sp, #8
2444: bd10 pop {r4, pc}
info.part = part;
2446: f88d 1000 strb.w r1, [sp]
info.result = NULL;
244a: 2400 movs r4, #0
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
244c: 4b04 ldr r3, [pc, #16] ; (2460 <lv_obj_get_style_list+0x24>)
info.result = NULL;
244e: 9401 str r4, [sp, #4]
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
2450: 466a mov r2, sp
2452: 2108 movs r1, #8
2454: 4798 blx r3
if(res != LV_RES_OK) return NULL;
2456: 2801 cmp r0, #1
return info.result;
2458: bf0c ite eq
245a: 9801 ldreq r0, [sp, #4]
if(res != LV_RES_OK) return NULL;
245c: 4620 movne r0, r4
245e: e7f0 b.n 2442 <lv_obj_get_style_list+0x6>
2460: 00001fd5 .word 0x00001fd5
00002464 <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)
{
2464: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
2468: 4607 mov r7, r0
246a: 4698 mov r8, 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));
246c: 4819 ldr r0, [pc, #100] ; (24d4 <trans_del+0x70>)
246e: 4b1a ldr r3, [pc, #104] ; (24d8 <trans_del+0x74>)
while(tr != NULL) {
if(tr == tr_limit) break;
/*'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);
2470: f8df 9060 ldr.w r9, [pc, #96] ; 24d4 <trans_del+0x70>
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
/* 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);
2474: f8df b07c ldr.w fp, [pc, #124] ; 24f4 <trans_del+0x90>
{
2478: 460d mov r5, r1
247a: 4616 mov r6, r2
tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll));
247c: 4798 blx r3
247e: 4604 mov r4, r0
while(tr != NULL) {
2480: b90c cbnz r4, 2486 <trans_del+0x22>
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
lv_mem_free(tr);
}
tr = tr_prev;
}
}
2482: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(tr == tr_limit) break;
2486: 4544 cmp r4, r8
2488: d0fb beq.n 2482 <trans_del+0x1e>
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
248a: 4b14 ldr r3, [pc, #80] ; (24dc <trans_del+0x78>)
248c: 4621 mov r1, r4
248e: 4648 mov r0, r9
2490: 4798 blx r3
2492: 4682 mov sl, r0
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
2494: 6820 ldr r0, [r4, #0]
2496: 42b8 cmp r0, r7
2498: d11a bne.n 24d0 <trans_del+0x6c>
249a: 79a1 ldrb r1, [r4, #6]
249c: 42a9 cmp r1, r5
249e: d001 beq.n 24a4 <trans_del+0x40>
24a0: 2dff cmp r5, #255 ; 0xff
24a2: d115 bne.n 24d0 <trans_del+0x6c>
24a4: 88a2 ldrh r2, [r4, #4]
24a6: 42b2 cmp r2, r6
24a8: d001 beq.n 24ae <trans_del+0x4a>
24aa: 2eff cmp r6, #255 ; 0xff
24ac: d110 bne.n 24d0 <trans_del+0x6c>
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
24ae: 47d8 blx fp
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
24b0: 4a0b ldr r2, [pc, #44] ; (24e0 <trans_del+0x7c>)
24b2: 4790 blx r2
lv_style_remove_prop(style_trans, tr->prop);
24b4: 88a1 ldrh r1, [r4, #4]
24b6: 4a0b ldr r2, [pc, #44] ; (24e4 <trans_del+0x80>)
24b8: 4790 blx r2
lv_anim_del(tr, NULL);
24ba: 4a0b ldr r2, [pc, #44] ; (24e8 <trans_del+0x84>)
24bc: 2100 movs r1, #0
24be: 4620 mov r0, r4
24c0: 4790 blx r2
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
24c2: 4a0a ldr r2, [pc, #40] ; (24ec <trans_del+0x88>)
24c4: 4648 mov r0, r9
24c6: 4621 mov r1, r4
24c8: 4790 blx r2
lv_mem_free(tr);
24ca: 4a09 ldr r2, [pc, #36] ; (24f0 <trans_del+0x8c>)
24cc: 4620 mov r0, r4
24ce: 4790 blx r2
{
24d0: 4654 mov r4, sl
24d2: e7d5 b.n 2480 <trans_del+0x1c>
24d4: 20008660 .word 0x20008660
24d8: 0000e6f7 .word 0x0000e6f7
24dc: 0000e71d .word 0x0000e71d
24e0: 00005cb5 .word 0x00005cb5
24e4: 0000580d .word 0x0000580d
24e8: 0000dcf5 .word 0x0000dcf5
24ec: 0000e7b5 .word 0x0000e7b5
24f0: 0000eb2d .word 0x0000eb2d
24f4: 0000243d .word 0x0000243d
000024f8 <lv_obj_clean_style_list>:
{
24f8: b537 push {r0, r1, r2, r4, r5, lr}
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
24fa: 4b0e ldr r3, [pc, #56] ; (2534 <lv_obj_clean_style_list+0x3c>)
{
24fc: 4604 mov r4, r0
24fe: 460d mov r5, r1
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
2500: 4798 blx r3
if(style_dsc == NULL) {
2502: b950 cbnz r0, 251a <lv_obj_clean_style_list+0x22>
LV_LOG_WARN("lv_obj_clean_style_list: can't find style with `part`");
2504: 4b0c ldr r3, [pc, #48] ; (2538 <lv_obj_clean_style_list+0x40>)
2506: 9300 str r3, [sp, #0]
2508: 490c ldr r1, [pc, #48] ; (253c <lv_obj_clean_style_list+0x44>)
250a: 4b0d ldr r3, [pc, #52] ; (2540 <lv_obj_clean_style_list+0x48>)
250c: 4c0d ldr r4, [pc, #52] ; (2544 <lv_obj_clean_style_list+0x4c>)
250e: f240 4292 movw r2, #1170 ; 0x492
2512: 2002 movs r0, #2
2514: 47a0 blx r4
}
2516: b003 add sp, #12
2518: bd30 pop {r4, r5, pc}
_lv_style_list_reset(style_dsc);
251a: 4b0b ldr r3, [pc, #44] ; (2548 <lv_obj_clean_style_list+0x50>)
251c: 4798 blx r3
trans_del(obj, part, 0xFF, NULL);
251e: 4620 mov r0, r4
2520: 4c0a ldr r4, [pc, #40] ; (254c <lv_obj_clean_style_list+0x54>)
2522: 2300 movs r3, #0
2524: 22ff movs r2, #255 ; 0xff
2526: 4629 mov r1, r5
2528: 46a4 mov ip, r4
}
252a: b003 add sp, #12
252c: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
trans_del(obj, part, 0xFF, NULL);
2530: 4760 bx ip
2532: bf00 nop
2534: 0000243d .word 0x0000243d
2538: 0001ef58 .word 0x0001ef58
253c: 0001ee9f .word 0x0001ee9f
2540: 0001f3f5 .word 0x0001f3f5
2544: 0000e931 .word 0x0000e931
2548: 00005cc5 .word 0x00005cc5
254c: 00002465 .word 0x00002465
00002550 <trans_anim_ready_cb>:
tr->prop = prop_tmp;
}
static void trans_anim_ready_cb(lv_anim_t * a)
{
2550: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
* 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) {
2554: 4b16 ldr r3, [pc, #88] ; (25b0 <trans_anim_ready_cb+0x60>)
lv_style_trans_t * tr = a->var;
2556: 6804 ldr r4, [r0, #0]
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2558: 4816 ldr r0, [pc, #88] ; (25b4 <trans_anim_ready_cb+0x64>)
255a: 4e16 ldr r6, [pc, #88] ; (25b4 <trans_anim_ready_cb+0x64>)
255c: 4f16 ldr r7, [pc, #88] ; (25b8 <trans_anim_ready_cb+0x68>)
255e: 4798 blx r3
bool running = false;
2560: 2500 movs r5, #0
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2562: b990 cbnz r0, 258a <trans_anim_ready_cb+0x3a>
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
running = true;
}
}
if(!running) {
2564: b945 cbnz r5, 2578 <trans_anim_ready_cb+0x28>
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
2566: 79a1 ldrb r1, [r4, #6]
2568: 4b14 ldr r3, [pc, #80] ; (25bc <trans_anim_ready_cb+0x6c>)
256a: 6820 ldr r0, [r4, #0]
256c: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
256e: 4b14 ldr r3, [pc, #80] ; (25c0 <trans_anim_ready_cb+0x70>)
2570: 4798 blx r3
lv_style_remove_prop(style_trans, tr->prop);
2572: 88a1 ldrh r1, [r4, #4]
2574: 4b13 ldr r3, [pc, #76] ; (25c4 <trans_anim_ready_cb+0x74>)
2576: 4798 blx r3
}
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
2578: 480e ldr r0, [pc, #56] ; (25b4 <trans_anim_ready_cb+0x64>)
257a: 4b13 ldr r3, [pc, #76] ; (25c8 <trans_anim_ready_cb+0x78>)
257c: 4621 mov r1, r4
257e: 4798 blx r3
lv_mem_free(tr);
2580: 4620 mov r0, r4
2582: 4b12 ldr r3, [pc, #72] ; (25cc <trans_anim_ready_cb+0x7c>)
}
2584: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_mem_free(tr);
2588: 4718 bx r3
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
258a: 42a0 cmp r0, r4
258c: d00c beq.n 25a8 <trans_anim_ready_cb+0x58>
258e: 6802 ldr r2, [r0, #0]
2590: 6823 ldr r3, [r4, #0]
2592: 429a cmp r2, r3
2594: d108 bne.n 25a8 <trans_anim_ready_cb+0x58>
2596: 6843 ldr r3, [r0, #4]
2598: f023 427f bic.w r2, r3, #4278190080 ; 0xff000000
259c: 6863 ldr r3, [r4, #4]
259e: f023 437f bic.w r3, r3, #4278190080 ; 0xff000000
running = true;
25a2: 429a cmp r2, r3
25a4: bf08 it eq
25a6: 2501 moveq r5, #1
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
25a8: 4601 mov r1, r0
25aa: 4630 mov r0, r6
25ac: 47b8 blx r7
25ae: e7d8 b.n 2562 <trans_anim_ready_cb+0x12>
25b0: 0000e6f1 .word 0x0000e6f1
25b4: 20008660 .word 0x20008660
25b8: 0000e6fd .word 0x0000e6fd
25bc: 0000243d .word 0x0000243d
25c0: 00005cb5 .word 0x00005cb5
25c4: 0000580d .word 0x0000580d
25c8: 0000e7b5 .word 0x0000e7b5
25cc: 0000eb2d .word 0x0000eb2d
000025d0 <lv_obj_get_hidden>:
{
25d0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
25d2: 4b0c ldr r3, [pc, #48] ; (2604 <lv_obj_get_hidden+0x34>)
{
25d4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
25d6: 4798 blx r3
25d8: 4605 mov r5, r0
25da: b968 cbnz r0, 25f8 <lv_obj_get_hidden+0x28>
25dc: 4b0a ldr r3, [pc, #40] ; (2608 <lv_obj_get_hidden+0x38>)
25de: 490b ldr r1, [pc, #44] ; (260c <lv_obj_get_hidden+0x3c>)
25e0: 9300 str r3, [sp, #0]
25e2: f640 2241 movw r2, #2625 ; 0xa41
25e6: 2003 movs r0, #3
25e8: 4e09 ldr r6, [pc, #36] ; (2610 <lv_obj_get_hidden+0x40>)
25ea: 47b0 blx r6
25ec: 4809 ldr r0, [pc, #36] ; (2614 <lv_obj_get_hidden+0x44>)
25ee: 490a ldr r1, [pc, #40] ; (2618 <lv_obj_get_hidden+0x48>)
25f0: 4622 mov r2, r4
25f2: 462b mov r3, r5
25f4: 4788 blx r1
25f6: e7fe b.n 25f6 <lv_obj_get_hidden+0x26>
return obj->hidden == 0 ? false : true;
25f8: f894 0034 ldrb.w r0, [r4, #52] ; 0x34
}
25fc: f3c0 1000 ubfx r0, r0, #4, #1
2600: b002 add sp, #8
2602: bd70 pop {r4, r5, r6, pc}
2604: 00001795 .word 0x00001795
2608: 0001f443 .word 0x0001f443
260c: 0001ee9f .word 0x0001ee9f
2610: 0000e931 .word 0x0000e931
2614: 0001ef03 .word 0x0001ef03
2618: 0000179d .word 0x0000179d
0000261c <lv_obj_invalidate_area>:
{
261c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2620: 4b35 ldr r3, [pc, #212] ; (26f8 <lv_obj_invalidate_area+0xdc>)
{
2622: b086 sub sp, #24
2624: 4604 mov r4, r0
2626: 4688 mov r8, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2628: 4798 blx r3
262a: 4605 mov r5, r0
262c: b968 cbnz r0, 264a <lv_obj_invalidate_area+0x2e>
262e: 4b33 ldr r3, [pc, #204] ; (26fc <lv_obj_invalidate_area+0xe0>)
2630: 4933 ldr r1, [pc, #204] ; (2700 <lv_obj_invalidate_area+0xe4>)
2632: 9300 str r3, [sp, #0]
2634: f44f 72f0 mov.w r2, #480 ; 0x1e0
2638: 2003 movs r0, #3
263a: 4e32 ldr r6, [pc, #200] ; (2704 <lv_obj_invalidate_area+0xe8>)
263c: 47b0 blx r6
263e: 4832 ldr r0, [pc, #200] ; (2708 <lv_obj_invalidate_area+0xec>)
2640: 4932 ldr r1, [pc, #200] ; (270c <lv_obj_invalidate_area+0xf0>)
2642: 4622 mov r2, r4
2644: 462b mov r3, r5
2646: 4788 blx r1
2648: e7fe b.n 2648 <lv_obj_invalidate_area+0x2c>
if(lv_obj_get_hidden(obj)) return;
264a: 4f31 ldr r7, [pc, #196] ; (2710 <lv_obj_invalidate_area+0xf4>)
264c: 4620 mov r0, r4
264e: 47b8 blx r7
2650: 2800 cmp r0, #0
2652: d141 bne.n 26d8 <lv_obj_invalidate_area+0xbc>
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
2654: 4b2f ldr r3, [pc, #188] ; (2714 <lv_obj_invalidate_area+0xf8>)
2656: 4620 mov r0, r4
2658: 4798 blx r3
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
265a: 4b2f ldr r3, [pc, #188] ; (2718 <lv_obj_invalidate_area+0xfc>)
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
265c: 4605 mov r5, r0
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
265e: 4798 blx r3
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2660: 4b2e ldr r3, [pc, #184] ; (271c <lv_obj_invalidate_area+0x100>)
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
2662: 4606 mov r6, r0
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2664: 4798 blx r3
2666: 4285 cmp r5, r0
2668: d12c bne.n 26c4 <lv_obj_invalidate_area+0xa8>
lv_coord_t ext_size = obj->ext_draw_pad;
266a: f9b4 5032 ldrsh.w r5, [r4, #50] ; 0x32
lv_area_copy(&obj_coords, &obj->coords);
266e: 4b2c ldr r3, [pc, #176] ; (2720 <lv_obj_invalidate_area+0x104>)
2670: f104 0110 add.w r1, r4, #16
2674: a802 add r0, sp, #8
2676: 4798 blx r3
obj_coords.x1 -= ext_size;
2678: f8bd 2008 ldrh.w r2, [sp, #8]
267c: b2ab uxth r3, r5
267e: 1ad2 subs r2, r2, r3
2680: f8ad 2008 strh.w r2, [sp, #8]
obj_coords.y1 -= ext_size;
2684: f8bd 200a ldrh.w r2, [sp, #10]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
2688: 4d26 ldr r5, [pc, #152] ; (2724 <lv_obj_invalidate_area+0x108>)
obj_coords.y1 -= ext_size;
268a: 1ad2 subs r2, r2, r3
268c: f8ad 200a strh.w r2, [sp, #10]
obj_coords.x2 += ext_size;
2690: f8bd 200c ldrh.w r2, [sp, #12]
2694: 441a add r2, r3
2696: f8ad 200c strh.w r2, [sp, #12]
obj_coords.y2 += ext_size;
269a: f8bd 200e ldrh.w r2, [sp, #14]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
269e: 4641 mov r1, r8
obj_coords.y2 += ext_size;
26a0: 4413 add r3, r2
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
26a2: a804 add r0, sp, #16
26a4: aa02 add r2, sp, #8
obj_coords.y2 += ext_size;
26a6: f8ad 300e strh.w r3, [sp, #14]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
26aa: 47a8 blx r5
if(is_common == false) return; /*The area is not on the object*/
26ac: b1a0 cbz r0, 26d8 <lv_obj_invalidate_area+0xbc>
lv_obj_t * par = lv_obj_get_parent(obj);
26ae: f8df 8084 ldr.w r8, [pc, #132] ; 2734 <lv_obj_invalidate_area+0x118>
26b2: 4620 mov r0, r4
par = lv_obj_get_parent(par);
26b4: 47c0 blx r8
26b6: 4604 mov r4, r0
while(par != NULL) {
26b8: b988 cbnz r0, 26de <lv_obj_invalidate_area+0xc2>
if(is_common) _lv_inv_area(disp, &area_trunc);
26ba: 4b1b ldr r3, [pc, #108] ; (2728 <lv_obj_invalidate_area+0x10c>)
26bc: a904 add r1, sp, #16
26be: 4630 mov r0, r6
26c0: 4798 blx r3
26c2: e009 b.n 26d8 <lv_obj_invalidate_area+0xbc>
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
26c4: 4b19 ldr r3, [pc, #100] ; (272c <lv_obj_invalidate_area+0x110>)
26c6: 4630 mov r0, r6
26c8: 4798 blx r3
26ca: 4285 cmp r5, r0
26cc: d0cd beq.n 266a <lv_obj_invalidate_area+0x4e>
obj_scr == lv_disp_get_layer_sys(disp)) {
26ce: 4b18 ldr r3, [pc, #96] ; (2730 <lv_obj_invalidate_area+0x114>)
26d0: 4630 mov r0, r6
26d2: 4798 blx r3
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
26d4: 4285 cmp r5, r0
26d6: d0c8 beq.n 266a <lv_obj_invalidate_area+0x4e>
}
26d8: b006 add sp, #24
26da: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords);
26de: a904 add r1, sp, #16
26e0: f104 0210 add.w r2, r4, #16
26e4: 4608 mov r0, r1
26e6: 47a8 blx r5
if(is_common == false) break; /*If no common parts with parent break;*/
26e8: 2800 cmp r0, #0
26ea: d0f5 beq.n 26d8 <lv_obj_invalidate_area+0xbc>
if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/
26ec: 4620 mov r0, r4
26ee: 47b8 blx r7
26f0: 2800 cmp r0, #0
26f2: d1f1 bne.n 26d8 <lv_obj_invalidate_area+0xbc>
par = lv_obj_get_parent(par);
26f4: 4620 mov r0, r4
26f6: e7dd b.n 26b4 <lv_obj_invalidate_area+0x98>
26f8: 00001795 .word 0x00001795
26fc: 0001f455 .word 0x0001f455
2700: 0001ee9f .word 0x0001ee9f
2704: 0000e931 .word 0x0000e931
2708: 0001ef03 .word 0x0001ef03
270c: 0000179d .word 0x0000179d
2710: 000025d1 .word 0x000025d1
2714: 0000211d .word 0x0000211d
2718: 00002175 .word 0x00002175
271c: 00001825 .word 0x00001825
2720: 00001cc9 .word 0x00001cc9
2724: 0000ded1 .word 0x0000ded1
2728: 00004ef9 .word 0x00004ef9
272c: 00001861 .word 0x00001861
2730: 0000189d .word 0x0000189d
2734: 000020d5 .word 0x000020d5
00002738 <lv_obj_invalidate>:
{
2738: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
273a: 4b1a ldr r3, [pc, #104] ; (27a4 <lv_obj_invalidate+0x6c>)
{
273c: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
273e: 4798 blx r3
2740: 4604 mov r4, r0
2742: b968 cbnz r0, 2760 <lv_obj_invalidate+0x28>
2744: 4b18 ldr r3, [pc, #96] ; (27a8 <lv_obj_invalidate+0x70>)
2746: 4919 ldr r1, [pc, #100] ; (27ac <lv_obj_invalidate+0x74>)
2748: 9300 str r3, [sp, #0]
274a: f240 220d movw r2, #525 ; 0x20d
274e: 2003 movs r0, #3
2750: 4e17 ldr r6, [pc, #92] ; (27b0 <lv_obj_invalidate+0x78>)
2752: 47b0 blx r6
2754: 4817 ldr r0, [pc, #92] ; (27b4 <lv_obj_invalidate+0x7c>)
2756: 4918 ldr r1, [pc, #96] ; (27b8 <lv_obj_invalidate+0x80>)
2758: 462a mov r2, r5
275a: 4623 mov r3, r4
275c: 4788 blx r1
275e: e7fe b.n 275e <lv_obj_invalidate+0x26>
lv_coord_t ext_size = obj->ext_draw_pad;
2760: f9b5 4032 ldrsh.w r4, [r5, #50] ; 0x32
lv_area_copy(&obj_coords, &obj->coords);
2764: 4b15 ldr r3, [pc, #84] ; (27bc <lv_obj_invalidate+0x84>)
2766: f105 0110 add.w r1, r5, #16
276a: a802 add r0, sp, #8
276c: 4798 blx r3
obj_coords.x1 -= ext_size;
276e: f8bd 2008 ldrh.w r2, [sp, #8]
2772: b2a3 uxth r3, r4
2774: 1ad2 subs r2, r2, r3
2776: f8ad 2008 strh.w r2, [sp, #8]
obj_coords.y1 -= ext_size;
277a: f8bd 200a ldrh.w r2, [sp, #10]
277e: 1ad2 subs r2, r2, r3
2780: f8ad 200a strh.w r2, [sp, #10]
obj_coords.x2 += ext_size;
2784: f8bd 200c ldrh.w r2, [sp, #12]
2788: 441a add r2, r3
278a: f8ad 200c strh.w r2, [sp, #12]
obj_coords.y2 += ext_size;
278e: f8bd 200e ldrh.w r2, [sp, #14]
2792: 4413 add r3, r2
2794: f8ad 300e strh.w r3, [sp, #14]
lv_obj_invalidate_area(obj, &obj_coords);
2798: a902 add r1, sp, #8
279a: 4b09 ldr r3, [pc, #36] ; (27c0 <lv_obj_invalidate+0x88>)
279c: 4628 mov r0, r5
279e: 4798 blx r3
}
27a0: b004 add sp, #16
27a2: bd70 pop {r4, r5, r6, pc}
27a4: 00001795 .word 0x00001795
27a8: 0001f46c .word 0x0001f46c
27ac: 0001ee9f .word 0x0001ee9f
27b0: 0000e931 .word 0x0000e931
27b4: 0001ef03 .word 0x0001ef03
27b8: 0000179d .word 0x0000179d
27bc: 00001cc9 .word 0x00001cc9
27c0: 0000261d .word 0x0000261d
000027c4 <lv_obj_move_foreground>:
{
27c4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
27c6: 4b19 ldr r3, [pc, #100] ; (282c <lv_obj_move_foreground+0x68>)
{
27c8: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
27ca: 4798 blx r3
27cc: 4604 mov r4, r0
27ce: b968 cbnz r0, 27ec <lv_obj_move_foreground+0x28>
27d0: 4b17 ldr r3, [pc, #92] ; (2830 <lv_obj_move_foreground+0x6c>)
27d2: 4918 ldr r1, [pc, #96] ; (2834 <lv_obj_move_foreground+0x70>)
27d4: 9300 str r3, [sp, #0]
27d6: f240 2262 movw r2, #610 ; 0x262
27da: 2003 movs r0, #3
27dc: 4e16 ldr r6, [pc, #88] ; (2838 <lv_obj_move_foreground+0x74>)
27de: 47b0 blx r6
27e0: 4816 ldr r0, [pc, #88] ; (283c <lv_obj_move_foreground+0x78>)
27e2: 4917 ldr r1, [pc, #92] ; (2840 <lv_obj_move_foreground+0x7c>)
27e4: 462a mov r2, r5
27e6: 4623 mov r3, r4
27e8: 4788 blx r1
27ea: e7fe b.n 27ea <lv_obj_move_foreground+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
27ec: 4b15 ldr r3, [pc, #84] ; (2844 <lv_obj_move_foreground+0x80>)
27ee: 4628 mov r0, r5
27f0: 4798 blx r3
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
27f2: 1d07 adds r7, r0, #4
27f4: 4b14 ldr r3, [pc, #80] ; (2848 <lv_obj_move_foreground+0x84>)
lv_obj_t * parent = lv_obj_get_parent(obj);
27f6: 4604 mov r4, r0
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
27f8: 4638 mov r0, r7
27fa: 4798 blx r3
27fc: 4285 cmp r5, r0
27fe: d013 beq.n 2828 <lv_obj_move_foreground+0x64>
lv_obj_invalidate(parent);
2800: 4e12 ldr r6, [pc, #72] ; (284c <lv_obj_move_foreground+0x88>)
2802: 4620 mov r0, r4
2804: 47b0 blx r6
_lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true);
2806: 462a mov r2, r5
2808: 4639 mov r1, r7
280a: 4638 mov r0, r7
280c: 2301 movs r3, #1
280e: 4f10 ldr r7, [pc, #64] ; (2850 <lv_obj_move_foreground+0x8c>)
2810: 47b8 blx r7
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj);
2812: 69e3 ldr r3, [r4, #28]
2814: 462a mov r2, r5
2816: 2101 movs r1, #1
2818: 4620 mov r0, r4
281a: 4798 blx r3
lv_obj_invalidate(parent);
281c: 4620 mov r0, r4
281e: 4633 mov r3, r6
}
2820: b003 add sp, #12
2822: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_obj_invalidate(parent);
2826: 4718 bx r3
}
2828: b003 add sp, #12
282a: bdf0 pop {r4, r5, r6, r7, pc}
282c: 00001795 .word 0x00001795
2830: 0001f47e .word 0x0001f47e
2834: 0001ee9f .word 0x0001ee9f
2838: 0000e931 .word 0x0000e931
283c: 0001ef03 .word 0x0001ef03
2840: 0000179d .word 0x0000179d
2844: 000020d5 .word 0x000020d5
2848: 0000e6f1 .word 0x0000e6f1
284c: 00002739 .word 0x00002739
2850: 0000e835 .word 0x0000e835
00002854 <lv_obj_set_pos>:
{
2854: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2858: 4b2e ldr r3, [pc, #184] ; (2914 <lv_obj_set_pos+0xc0>)
{
285a: b087 sub sp, #28
285c: 4604 mov r4, r0
285e: 4688 mov r8, r1
2860: 4617 mov r7, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2862: 4798 blx r3
2864: 4605 mov r5, r0
2866: b968 cbnz r0, 2884 <lv_obj_set_pos+0x30>
2868: 4b2b ldr r3, [pc, #172] ; (2918 <lv_obj_set_pos+0xc4>)
286a: 492c ldr r1, [pc, #176] ; (291c <lv_obj_set_pos+0xc8>)
286c: 9300 str r3, [sp, #0]
286e: f240 2296 movw r2, #662 ; 0x296
2872: 2003 movs r0, #3
2874: 4e2a ldr r6, [pc, #168] ; (2920 <lv_obj_set_pos+0xcc>)
2876: 47b0 blx r6
2878: 482a ldr r0, [pc, #168] ; (2924 <lv_obj_set_pos+0xd0>)
287a: 492b ldr r1, [pc, #172] ; (2928 <lv_obj_set_pos+0xd4>)
287c: 4622 mov r2, r4
287e: 462b mov r3, r5
2880: 4788 blx r1
2882: e7fe b.n 2882 <lv_obj_set_pos+0x2e>
lv_obj_t * par = obj->parent;
2884: 6826 ldr r6, [r4, #0]
if(par == NULL) {
2886: b95e cbnz r6, 28a0 <lv_obj_set_pos+0x4c>
LV_LOG_WARN("lv_obj_set_pos: not changing position of screen object");
2888: 4b28 ldr r3, [pc, #160] ; (292c <lv_obj_set_pos+0xd8>)
288a: 9300 str r3, [sp, #0]
288c: 4923 ldr r1, [pc, #140] ; (291c <lv_obj_set_pos+0xc8>)
288e: 4b22 ldr r3, [pc, #136] ; (2918 <lv_obj_set_pos+0xc4>)
2890: 4c23 ldr r4, [pc, #140] ; (2920 <lv_obj_set_pos+0xcc>)
2892: f44f 7227 mov.w r2, #668 ; 0x29c
2896: 2002 movs r0, #2
2898: 47a0 blx r4
}
289a: b007 add sp, #28
289c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
diff.x = x - obj->coords.x1;
28a0: 8a21 ldrh r1, [r4, #16]
28a2: 8a33 ldrh r3, [r6, #16]
diff.y = y - obj->coords.y1;
28a4: 8a62 ldrh r2, [r4, #18]
diff.x = x - obj->coords.x1;
28a6: 1a5b subs r3, r3, r1
28a8: eb03 0108 add.w r1, r3, r8
diff.y = y - obj->coords.y1;
28ac: 8a73 ldrh r3, [r6, #18]
28ae: 1a9b subs r3, r3, r2
28b0: 19da adds r2, r3, r7
28b2: b297 uxth r7, r2
diff.x = x - obj->coords.x1;
28b4: fa1f f881 uxth.w r8, r1
diff.y = y - obj->coords.y1;
28b8: b212 sxth r2, r2
if(diff.x == 0 && diff.y == 0) return;
28ba: ea58 0307 orrs.w r3, r8, r7
diff.x = x - obj->coords.x1;
28be: b20d sxth r5, r1
diff.y = y - obj->coords.y1;
28c0: 9203 str r2, [sp, #12]
if(diff.x == 0 && diff.y == 0) return;
28c2: d0ea beq.n 289a <lv_obj_set_pos+0x46>
lv_obj_invalidate(obj);
28c4: 4620 mov r0, r4
28c6: f8df 9070 ldr.w r9, [pc, #112] ; 2938 <lv_obj_set_pos+0xe4>
28ca: 47c8 blx r9
lv_obj_get_coords(obj, &ori);
28cc: a904 add r1, sp, #16
28ce: 4620 mov r0, r4
28d0: 4b17 ldr r3, [pc, #92] ; (2930 <lv_obj_set_pos+0xdc>)
28d2: 4798 blx r3
obj->coords.x1 += diff.x;
28d4: 8a23 ldrh r3, [r4, #16]
refresh_children_position(obj, diff.x, diff.y);
28d6: 9a03 ldr r2, [sp, #12]
obj->coords.x1 += diff.x;
28d8: 4443 add r3, r8
28da: 8223 strh r3, [r4, #16]
obj->coords.y1 += diff.y;
28dc: 8a63 ldrh r3, [r4, #18]
28de: 443b add r3, r7
28e0: 8263 strh r3, [r4, #18]
obj->coords.x2 += diff.x;
28e2: 8aa3 ldrh r3, [r4, #20]
28e4: 4498 add r8, r3
obj->coords.y2 += diff.y;
28e6: 8ae3 ldrh r3, [r4, #22]
obj->coords.x2 += diff.x;
28e8: f8a4 8014 strh.w r8, [r4, #20]
obj->coords.y2 += diff.y;
28ec: 441f add r7, r3
refresh_children_position(obj, diff.x, diff.y);
28ee: 4629 mov r1, r5
28f0: 4620 mov r0, r4
28f2: 4b10 ldr r3, [pc, #64] ; (2934 <lv_obj_set_pos+0xe0>)
obj->coords.y2 += diff.y;
28f4: 82e7 strh r7, [r4, #22]
refresh_children_position(obj, diff.x, diff.y);
28f6: 4798 blx r3
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
28f8: 69e3 ldr r3, [r4, #28]
28fa: aa04 add r2, sp, #16
28fc: 2102 movs r1, #2
28fe: 4620 mov r0, r4
2900: 4798 blx r3
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
2902: 69f3 ldr r3, [r6, #28]
2904: 4622 mov r2, r4
2906: 2101 movs r1, #1
2908: 4630 mov r0, r6
290a: 4798 blx r3
lv_obj_invalidate(obj);
290c: 4620 mov r0, r4
290e: 47c8 blx r9
2910: e7c3 b.n 289a <lv_obj_set_pos+0x46>
2912: bf00 nop
2914: 00001795 .word 0x00001795
2918: 0001f4ac .word 0x0001f4ac
291c: 0001ee9f .word 0x0001ee9f
2920: 0000e931 .word 0x0000e931
2924: 0001ef03 .word 0x0001ef03
2928: 0000179d .word 0x0000179d
292c: 0001ef8e .word 0x0001ef8e
2930: 00002285 .word 0x00002285
2934: 00001c71 .word 0x00001c71
2938: 00002739 .word 0x00002739
0000293c <lv_obj_set_x>:
{
293c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
293e: 4b0f ldr r3, [pc, #60] ; (297c <lv_obj_set_x+0x40>)
{
2940: 4604 mov r4, r0
2942: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2944: 4798 blx r3
2946: 4605 mov r5, r0
2948: b968 cbnz r0, 2966 <lv_obj_set_x+0x2a>
294a: 4b0d ldr r3, [pc, #52] ; (2980 <lv_obj_set_x+0x44>)
294c: 490d ldr r1, [pc, #52] ; (2984 <lv_obj_set_x+0x48>)
294e: 9300 str r3, [sp, #0]
2950: f44f 7233 mov.w r2, #716 ; 0x2cc
2954: 2003 movs r0, #3
2956: 4e0c ldr r6, [pc, #48] ; (2988 <lv_obj_set_x+0x4c>)
2958: 47b0 blx r6
295a: 480c ldr r0, [pc, #48] ; (298c <lv_obj_set_x+0x50>)
295c: 490c ldr r1, [pc, #48] ; (2990 <lv_obj_set_x+0x54>)
295e: 4622 mov r2, r4
2960: 462b mov r3, r5
2962: 4788 blx r1
2964: e7fe b.n 2964 <lv_obj_set_x+0x28>
lv_obj_set_pos(obj, x, lv_obj_get_y(obj));
2966: 4b0b ldr r3, [pc, #44] ; (2994 <lv_obj_set_x+0x58>)
2968: 4620 mov r0, r4
296a: 4798 blx r3
296c: 4b0a ldr r3, [pc, #40] ; (2998 <lv_obj_set_x+0x5c>)
296e: 4602 mov r2, r0
2970: 4631 mov r1, r6
2972: 4620 mov r0, r4
}
2974: b002 add sp, #8
2976: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_pos(obj, x, lv_obj_get_y(obj));
297a: 4718 bx r3
297c: 00001795 .word 0x00001795
2980: 0001f4bb .word 0x0001f4bb
2984: 0001ee9f .word 0x0001ee9f
2988: 0000e931 .word 0x0000e931
298c: 0001ef03 .word 0x0001ef03
2990: 0000179d .word 0x0000179d
2994: 0000233d .word 0x0000233d
2998: 00002855 .word 0x00002855
0000299c <lv_obj_set_y>:
{
299c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
299e: 4b0f ldr r3, [pc, #60] ; (29dc <lv_obj_set_y+0x40>)
{
29a0: 4604 mov r4, r0
29a2: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
29a4: 4798 blx r3
29a6: 4605 mov r5, r0
29a8: b968 cbnz r0, 29c6 <lv_obj_set_y+0x2a>
29aa: 4b0d ldr r3, [pc, #52] ; (29e0 <lv_obj_set_y+0x44>)
29ac: 490d ldr r1, [pc, #52] ; (29e4 <lv_obj_set_y+0x48>)
29ae: 9300 str r3, [sp, #0]
29b0: f44f 7236 mov.w r2, #728 ; 0x2d8
29b4: 2003 movs r0, #3
29b6: 4e0c ldr r6, [pc, #48] ; (29e8 <lv_obj_set_y+0x4c>)
29b8: 47b0 blx r6
29ba: 480c ldr r0, [pc, #48] ; (29ec <lv_obj_set_y+0x50>)
29bc: 490c ldr r1, [pc, #48] ; (29f0 <lv_obj_set_y+0x54>)
29be: 4622 mov r2, r4
29c0: 462b mov r3, r5
29c2: 4788 blx r1
29c4: e7fe b.n 29c4 <lv_obj_set_y+0x28>
lv_obj_set_pos(obj, lv_obj_get_x(obj), y);
29c6: 4b0b ldr r3, [pc, #44] ; (29f4 <lv_obj_set_y+0x58>)
29c8: 4620 mov r0, r4
29ca: 4798 blx r3
29cc: 4b0a ldr r3, [pc, #40] ; (29f8 <lv_obj_set_y+0x5c>)
29ce: 4601 mov r1, r0
29d0: 4632 mov r2, r6
29d2: 4620 mov r0, r4
}
29d4: b002 add sp, #8
29d6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_pos(obj, lv_obj_get_x(obj), y);
29da: 4718 bx r3
29dc: 00001795 .word 0x00001795
29e0: 0001f4c8 .word 0x0001f4c8
29e4: 0001ee9f .word 0x0001ee9f
29e8: 0000e931 .word 0x0000e931
29ec: 0001ef03 .word 0x0001ef03
29f0: 0000179d .word 0x0000179d
29f4: 000022dd .word 0x000022dd
29f8: 00002855 .word 0x00002855
000029fc <lv_obj_align>:
{
29fc: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a00: f8df 90d8 ldr.w r9, [pc, #216] ; 2adc <lv_obj_align+0xe0>
{
2a04: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30
2a08: 4604 mov r4, r0
2a0a: 460d mov r5, r1
2a0c: 4617 mov r7, r2
2a0e: 461e mov r6, r3
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a10: 47c8 blx r9
2a12: 4682 mov sl, r0
2a14: b968 cbnz r0, 2a32 <lv_obj_align+0x36>
2a16: 4b2a ldr r3, [pc, #168] ; (2ac0 <lv_obj_align+0xc4>)
2a18: 492a ldr r1, [pc, #168] ; (2ac4 <lv_obj_align+0xc8>)
2a1a: 9300 str r3, [sp, #0]
2a1c: f240 326d movw r2, #877 ; 0x36d
2a20: 2003 movs r0, #3
2a22: 4d29 ldr r5, [pc, #164] ; (2ac8 <lv_obj_align+0xcc>)
2a24: 47a8 blx r5
2a26: 4829 ldr r0, [pc, #164] ; (2acc <lv_obj_align+0xd0>)
2a28: 4929 ldr r1, [pc, #164] ; (2ad0 <lv_obj_align+0xd4>)
2a2a: 4622 mov r2, r4
2a2c: 4653 mov r3, sl
2a2e: 4788 blx r1
2a30: e7fe b.n 2a30 <lv_obj_align+0x34>
if(base == NULL) base = lv_obj_get_parent(obj);
2a32: b91d cbnz r5, 2a3c <lv_obj_align+0x40>
2a34: 4b27 ldr r3, [pc, #156] ; (2ad4 <lv_obj_align+0xd8>)
2a36: 4620 mov r0, r4
2a38: 4798 blx r3
2a3a: 4605 mov r5, r0
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2a3c: 4628 mov r0, r5
2a3e: 47c8 blx r9
2a40: 4681 mov r9, r0
2a42: b968 cbnz r0, 2a60 <lv_obj_align+0x64>
2a44: 4b1e ldr r3, [pc, #120] ; (2ac0 <lv_obj_align+0xc4>)
2a46: 491f ldr r1, [pc, #124] ; (2ac4 <lv_obj_align+0xc8>)
2a48: 9300 str r3, [sp, #0]
2a4a: f240 3271 movw r2, #881 ; 0x371
2a4e: 2003 movs r0, #3
2a50: 4c1d ldr r4, [pc, #116] ; (2ac8 <lv_obj_align+0xcc>)
2a52: 47a0 blx r4
2a54: 481d ldr r0, [pc, #116] ; (2acc <lv_obj_align+0xd0>)
2a56: 491e ldr r1, [pc, #120] ; (2ad0 <lv_obj_align+0xd4>)
2a58: 462a mov r2, r5
2a5a: 464b mov r3, r9
2a5c: 4788 blx r1
2a5e: e7fe b.n 2a5e <lv_obj_align+0x62>
_lv_area_align(&base->coords, &obj->coords, align, &new_pos);
2a60: 463a mov r2, r7
2a62: f104 0110 add.w r1, r4, #16
2a66: ab03 add r3, sp, #12
2a68: f105 0010 add.w r0, r5, #16
2a6c: f8df 9070 ldr.w r9, [pc, #112] ; 2ae0 <lv_obj_align+0xe4>
2a70: 47c8 blx r9
lv_obj_t * par = lv_obj_get_parent(obj);
2a72: 4b18 ldr r3, [pc, #96] ; (2ad4 <lv_obj_align+0xd8>)
2a74: 4620 mov r0, r4
2a76: 4798 blx r3
new_pos.y += y_ofs;
2a78: f8bd 200e ldrh.w r2, [sp, #14]
new_pos.x += x_ofs;
2a7c: f8bd 100c ldrh.w r1, [sp, #12]
lv_coord_t par_abs_y = par->coords.y1;
2a80: f9b0 3012 ldrsh.w r3, [r0, #18]
new_pos.x -= par_abs_x;
2a84: 8a00 ldrh r0, [r0, #16]
new_pos.y += y_ofs;
2a86: 4442 add r2, r8
new_pos.x += x_ofs;
2a88: 4431 add r1, r6
new_pos.x -= par_abs_x;
2a8a: 1a09 subs r1, r1, r0
new_pos.y -= par_abs_y;
2a8c: 1ad2 subs r2, r2, r3
new_pos.x -= par_abs_x;
2a8e: b209 sxth r1, r1
new_pos.y -= par_abs_y;
2a90: b212 sxth r2, r2
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2a92: 4b11 ldr r3, [pc, #68] ; (2ad8 <lv_obj_align+0xdc>)
new_pos.x -= par_abs_x;
2a94: f8ad 100c strh.w r1, [sp, #12]
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2a98: 4620 mov r0, r4
new_pos.y -= par_abs_y;
2a9a: f8ad 200e strh.w r2, [sp, #14]
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2a9e: 4798 blx r3
obj->realign.origo_align = 0;
2aa0: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
obj->realign.align = align;
2aa4: f884 7048 strb.w r7, [r4, #72] ; 0x48
obj->realign.origo_align = 0;
2aa8: f36f 0341 bfc r3, #1, #1
obj->realign.xofs = x_ofs;
2aac: f8a4 6044 strh.w r6, [r4, #68] ; 0x44
obj->realign.yofs = y_ofs;
2ab0: f8a4 8046 strh.w r8, [r4, #70] ; 0x46
obj->realign.base = base;
2ab4: 6425 str r5, [r4, #64] ; 0x40
obj->realign.origo_align = 0;
2ab6: f884 3049 strb.w r3, [r4, #73] ; 0x49
}
2aba: b004 add sp, #16
2abc: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
2ac0: 0001f4d5 .word 0x0001f4d5
2ac4: 0001ee9f .word 0x0001ee9f
2ac8: 0000e931 .word 0x0000e931
2acc: 0001ef03 .word 0x0001ef03
2ad0: 0000179d .word 0x0000179d
2ad4: 000020d5 .word 0x000020d5
2ad8: 00002855 .word 0x00002855
2adc: 00001795 .word 0x00001795
2ae0: 0000e179 .word 0x0000e179
00002ae4 <lv_obj_align_origo>:
{
2ae4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
2ae8: b087 sub sp, #28
2aea: e9cd 2303 strd r2, r3, [sp, #12]
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2aee: 4d5c ldr r5, [pc, #368] ; (2c60 <lv_obj_align_origo+0x17c>)
{
2af0: f9bd 3040 ldrsh.w r3, [sp, #64] ; 0x40
2af4: 9305 str r3, [sp, #20]
2af6: 4680 mov r8, r0
2af8: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2afa: 47a8 blx r5
2afc: 46ab mov fp, r5
2afe: 4604 mov r4, r0
2b00: b968 cbnz r0, 2b1e <lv_obj_align_origo+0x3a>
2b02: 4b58 ldr r3, [pc, #352] ; (2c64 <lv_obj_align_origo+0x180>)
2b04: 4958 ldr r1, [pc, #352] ; (2c68 <lv_obj_align_origo+0x184>)
2b06: 9300 str r3, [sp, #0]
2b08: f240 3295 movw r2, #917 ; 0x395
2b0c: 2003 movs r0, #3
2b0e: 4d57 ldr r5, [pc, #348] ; (2c6c <lv_obj_align_origo+0x188>)
2b10: 47a8 blx r5
2b12: 4857 ldr r0, [pc, #348] ; (2c70 <lv_obj_align_origo+0x18c>)
2b14: 4957 ldr r1, [pc, #348] ; (2c74 <lv_obj_align_origo+0x190>)
2b16: 4642 mov r2, r8
2b18: 4623 mov r3, r4
2b1a: 4788 blx r1
2b1c: e7fe b.n 2b1c <lv_obj_align_origo+0x38>
lv_coord_t new_x = lv_obj_get_x(obj);
2b1e: 4b56 ldr r3, [pc, #344] ; (2c78 <lv_obj_align_origo+0x194>)
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2b20: f8df 9168 ldr.w r9, [pc, #360] ; 2c8c <lv_obj_align_origo+0x1a8>
lv_coord_t new_x = lv_obj_get_x(obj);
2b24: 4640 mov r0, r8
2b26: 4798 blx r3
lv_coord_t new_y = lv_obj_get_y(obj);
2b28: 4b54 ldr r3, [pc, #336] ; (2c7c <lv_obj_align_origo+0x198>)
lv_coord_t new_x = lv_obj_get_x(obj);
2b2a: 4604 mov r4, r0
lv_coord_t new_y = lv_obj_get_y(obj);
2b2c: 4640 mov r0, r8
2b2e: 4798 blx r3
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2b30: 4b53 ldr r3, [pc, #332] ; (2c80 <lv_obj_align_origo+0x19c>)
lv_coord_t new_y = lv_obj_get_y(obj);
2b32: 4682 mov sl, r0
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2b34: 4640 mov r0, r8
2b36: 4798 blx r3
2b38: 4605 mov r5, r0
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2b3a: 4640 mov r0, r8
2b3c: 47c8 blx r9
2b3e: 4607 mov r7, r0
if(base == NULL) {
2b40: b91e cbnz r6, 2b4a <lv_obj_align_origo+0x66>
base = lv_obj_get_parent(obj);
2b42: 4950 ldr r1, [pc, #320] ; (2c84 <lv_obj_align_origo+0x1a0>)
2b44: 4640 mov r0, r8
2b46: 4788 blx r1
2b48: 4606 mov r6, r0
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2b4a: 4630 mov r0, r6
2b4c: 47d8 blx fp
2b4e: 4b4c ldr r3, [pc, #304] ; (2c80 <lv_obj_align_origo+0x19c>)
2b50: 4683 mov fp, r0
2b52: b968 cbnz r0, 2b70 <lv_obj_align_origo+0x8c>
2b54: 4b43 ldr r3, [pc, #268] ; (2c64 <lv_obj_align_origo+0x180>)
2b56: 4944 ldr r1, [pc, #272] ; (2c68 <lv_obj_align_origo+0x184>)
2b58: 9300 str r3, [sp, #0]
2b5a: f240 32a1 movw r2, #929 ; 0x3a1
2b5e: 2003 movs r0, #3
2b60: 4c42 ldr r4, [pc, #264] ; (2c6c <lv_obj_align_origo+0x188>)
2b62: 47a0 blx r4
2b64: 4842 ldr r0, [pc, #264] ; (2c70 <lv_obj_align_origo+0x18c>)
2b66: 4943 ldr r1, [pc, #268] ; (2c74 <lv_obj_align_origo+0x190>)
2b68: 4632 mov r2, r6
2b6a: 465b mov r3, fp
2b6c: 4788 blx r1
2b6e: e7fe b.n 2b6e <lv_obj_align_origo+0x8a>
switch(align) {
2b70: 9a03 ldr r2, [sp, #12]
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2b72: eb05 75d5 add.w r5, r5, r5, lsr #31
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2b76: eb07 77d7 add.w r7, r7, r7, lsr #31
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2b7a: f345 054f sbfx r5, r5, #1, #16
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2b7e: f347 074f sbfx r7, r7, #1, #16
switch(align) {
2b82: 2a14 cmp r2, #20
2b84: d826 bhi.n 2bd4 <lv_obj_align_origo+0xf0>
2b86: e8df f002 tbb [pc, r2]
2b8a: 590b .short 0x590b
2b8c: 4e5d5f1b .word 0x4e5d5f1b
2b90: 59635b67 .word 0x59635b67
2b94: 4e5d5f1b .word 0x4e5d5f1b
2b98: 5d5b5967 .word 0x5d5b5967
2b9c: 635f .short 0x635f
2b9e: 67 .byte 0x67
2b9f: 00 .byte 0x00
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2ba0: 4630 mov r0, r6
2ba2: 4798 blx r3
2ba4: eb00 70d0 add.w r0, r0, r0, lsr #31
2ba8: ebc5 0060 rsb r0, r5, r0, asr #1
new_x = lv_obj_get_width(base) - obj_w_half;
2bac: b204 sxth r4, r0
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2bae: 4630 mov r0, r6
2bb0: 47c8 blx r9
2bb2: eb00 70d0 add.w r0, r0, r0, lsr #31
2bb6: ebc7 0060 rsb r0, r7, r0, asr #1
new_y = lv_obj_get_height(base) - obj_h_half;
2bba: fa0f fa80 sxth.w sl, r0
break;
2bbe: e009 b.n 2bd4 <lv_obj_align_origo+0xf0>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2bc0: 4630 mov r0, r6
2bc2: 4798 blx r3
2bc4: eb00 70d0 add.w r0, r0, r0, lsr #31
2bc8: ebc5 0060 rsb r0, r5, r0, asr #1
new_y = -obj_h_half;
2bcc: 427f negs r7, r7
new_x = lv_obj_get_width(base) - obj_w_half;
2bce: b204 sxth r4, r0
new_y = -obj_h_half;
2bd0: fa0f fa87 sxth.w sl, r7
lv_obj_t * par = lv_obj_get_parent(obj);
2bd4: 4b2b ldr r3, [pc, #172] ; (2c84 <lv_obj_align_origo+0x1a0>)
2bd6: 4640 mov r0, r8
2bd8: 4798 blx r3
new_x += x_ofs + base_abs_x;
2bda: 9b04 ldr r3, [sp, #16]
2bdc: 8a31 ldrh r1, [r6, #16]
new_y += y_ofs + base_abs_y;
2bde: 9a05 ldr r2, [sp, #20]
new_x += x_ofs + base_abs_x;
2be0: 4419 add r1, r3
new_y += y_ofs + base_abs_y;
2be2: 8a73 ldrh r3, [r6, #18]
new_x += x_ofs + base_abs_x;
2be4: 440c add r4, r1
new_y += y_ofs + base_abs_y;
2be6: 4413 add r3, r2
new_x -= par_abs_x;
2be8: 8a01 ldrh r1, [r0, #16]
new_y -= par_abs_y;
2bea: 8a40 ldrh r0, [r0, #18]
new_y += y_ofs + base_abs_y;
2bec: eb03 020a add.w r2, r3, sl
new_x -= par_abs_x;
2bf0: 1a61 subs r1, r4, r1
new_y -= par_abs_y;
2bf2: 1a12 subs r2, r2, r0
lv_obj_set_pos(obj, new_x, new_y);
2bf4: 4b24 ldr r3, [pc, #144] ; (2c88 <lv_obj_align_origo+0x1a4>)
2bf6: b212 sxth r2, r2
2bf8: b209 sxth r1, r1
2bfa: 4640 mov r0, r8
2bfc: 4798 blx r3
obj->realign.align = align;
2bfe: 9b03 ldr r3, [sp, #12]
2c00: f888 3048 strb.w r3, [r8, #72] ; 0x48
obj->realign.xofs = x_ofs;
2c04: 9b04 ldr r3, [sp, #16]
2c06: f8a8 3044 strh.w r3, [r8, #68] ; 0x44
obj->realign.yofs = y_ofs;
2c0a: 9b05 ldr r3, [sp, #20]
2c0c: f8a8 3046 strh.w r3, [r8, #70] ; 0x46
obj->realign.origo_align = 1;
2c10: f898 3049 ldrb.w r3, [r8, #73] ; 0x49
obj->realign.base = base;
2c14: f8c8 6040 str.w r6, [r8, #64] ; 0x40
obj->realign.origo_align = 1;
2c18: f043 0302 orr.w r3, r3, #2
2c1c: f888 3049 strb.w r3, [r8, #73] ; 0x49
}
2c20: b007 add sp, #28
2c22: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2c26: 4630 mov r0, r6
2c28: 4798 blx r3
2c2a: eb00 70d0 add.w r0, r0, r0, lsr #31
2c2e: ebc5 0060 rsb r0, r5, r0, asr #1
new_x = lv_obj_get_width(base) - obj_w_half;
2c32: b204 sxth r4, r0
new_y = lv_obj_get_height(base) - obj_h_half;
2c34: 4630 mov r0, r6
2c36: 47c8 blx r9
2c38: 1bc0 subs r0, r0, r7
2c3a: e7be b.n 2bba <lv_obj_align_origo+0xd6>
new_x = -obj_w_half;
2c3c: 4268 negs r0, r5
2c3e: e7c5 b.n 2bcc <lv_obj_align_origo+0xe8>
new_x = -obj_w_half;
2c40: 4268 negs r0, r5
2c42: e7b3 b.n 2bac <lv_obj_align_origo+0xc8>
new_x = -obj_w_half;
2c44: 4268 negs r0, r5
2c46: e7f4 b.n 2c32 <lv_obj_align_origo+0x14e>
new_x = lv_obj_get_width(base) - obj_w_half;
2c48: 4630 mov r0, r6
2c4a: 4798 blx r3
2c4c: 1b40 subs r0, r0, r5
2c4e: e7bd b.n 2bcc <lv_obj_align_origo+0xe8>
new_x = lv_obj_get_width(base) - obj_w_half;
2c50: 4630 mov r0, r6
2c52: 4798 blx r3
2c54: 1b40 subs r0, r0, r5
2c56: e7a9 b.n 2bac <lv_obj_align_origo+0xc8>
new_x = lv_obj_get_width(base) - obj_w_half;
2c58: 4630 mov r0, r6
2c5a: 4798 blx r3
2c5c: 1b40 subs r0, r0, r5
2c5e: e7e8 b.n 2c32 <lv_obj_align_origo+0x14e>
2c60: 00001795 .word 0x00001795
2c64: 0001f4e2 .word 0x0001f4e2
2c68: 0001ee9f .word 0x0001ee9f
2c6c: 0000e931 .word 0x0000e931
2c70: 0001ef03 .word 0x0001ef03
2c74: 0000179d .word 0x0000179d
2c78: 000022dd .word 0x000022dd
2c7c: 0000233d .word 0x0000233d
2c80: 0000239d .word 0x0000239d
2c84: 000020d5 .word 0x000020d5
2c88: 00002855 .word 0x00002855
2c8c: 000023ed .word 0x000023ed
00002c90 <lv_obj_realign>:
{
2c90: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c92: 4b12 ldr r3, [pc, #72] ; (2cdc <lv_obj_realign+0x4c>)
{
2c94: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c96: 4798 blx r3
2c98: 4605 mov r5, r0
2c9a: b968 cbnz r0, 2cb8 <lv_obj_realign+0x28>
2c9c: 4b10 ldr r3, [pc, #64] ; (2ce0 <lv_obj_realign+0x50>)
2c9e: 4911 ldr r1, [pc, #68] ; (2ce4 <lv_obj_realign+0x54>)
2ca0: 9300 str r3, [sp, #0]
2ca2: f240 422a movw r2, #1066 ; 0x42a
2ca6: 2003 movs r0, #3
2ca8: 4e0f ldr r6, [pc, #60] ; (2ce8 <lv_obj_realign+0x58>)
2caa: 47b0 blx r6
2cac: 480f ldr r0, [pc, #60] ; (2cec <lv_obj_realign+0x5c>)
2cae: 4910 ldr r1, [pc, #64] ; (2cf0 <lv_obj_realign+0x60>)
2cb0: 4622 mov r2, r4
2cb2: 462b mov r3, r5
2cb4: 4788 blx r1
2cb6: e7fe b.n 2cb6 <lv_obj_realign+0x26>
if(obj->realign.origo_align)
2cb8: f894 5049 ldrb.w r5, [r4, #73] ; 0x49
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2cbc: f9b4 0046 ldrsh.w r0, [r4, #70] ; 0x46
2cc0: 6c21 ldr r1, [r4, #64] ; 0x40
2cc2: f894 2048 ldrb.w r2, [r4, #72] ; 0x48
2cc6: f9b4 3044 ldrsh.w r3, [r4, #68] ; 0x44
2cca: 9000 str r0, [sp, #0]
2ccc: 4620 mov r0, r4
if(obj->realign.origo_align)
2cce: 07ac lsls r4, r5, #30
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2cd0: bf4c ite mi
2cd2: 4c08 ldrmi r4, [pc, #32] ; (2cf4 <lv_obj_realign+0x64>)
lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2cd4: 4c08 ldrpl r4, [pc, #32] ; (2cf8 <lv_obj_realign+0x68>)
2cd6: 47a0 blx r4
}
2cd8: b002 add sp, #8
2cda: bd70 pop {r4, r5, r6, pc}
2cdc: 00001795 .word 0x00001795
2ce0: 0001f4f5 .word 0x0001f4f5
2ce4: 0001ee9f .word 0x0001ee9f
2ce8: 0000e931 .word 0x0000e931
2cec: 0001ef03 .word 0x0001ef03
2cf0: 0000179d .word 0x0000179d
2cf4: 00002ae5 .word 0x00002ae5
2cf8: 000029fd .word 0x000029fd
00002cfc <refresh_children_style>:
{
2cfc: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2cfe: 2100 movs r1, #0
2d00: 4d0b ldr r5, [pc, #44] ; (2d30 <refresh_children_style+0x34>)
lv_obj_invalidate(child);
2d02: 4f0c ldr r7, [pc, #48] ; (2d34 <refresh_children_style+0x38>)
{
2d04: 4606 mov r6, r0
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2d06: 47a8 blx r5
2d08: 4604 mov r4, r0
while(child != NULL) {
2d0a: b904 cbnz r4, 2d0e <refresh_children_style+0x12>
}
2d0c: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_obj_invalidate(child);
2d0e: 4620 mov r0, r4
2d10: 47b8 blx r7
child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL);
2d12: 69e3 ldr r3, [r4, #28]
2d14: 2200 movs r2, #0
2d16: 2104 movs r1, #4
2d18: 4620 mov r0, r4
2d1a: 4798 blx r3
lv_obj_invalidate(child);
2d1c: 4620 mov r0, r4
2d1e: 47b8 blx r7
refresh_children_style(child); /*Check children too*/
2d20: 4620 mov r0, r4
2d22: f7ff ffeb bl 2cfc <refresh_children_style>
child = lv_obj_get_child(obj, child);
2d26: 4621 mov r1, r4
2d28: 4630 mov r0, r6
2d2a: 47a8 blx r5
2d2c: 4604 mov r4, r0
2d2e: e7ec b.n 2d0a <refresh_children_style+0xe>
2d30: 00002221 .word 0x00002221
2d34: 00002739 .word 0x00002739
00002d38 <lv_obj_refresh_style>:
{
2d38: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2d3a: 4b46 ldr r3, [pc, #280] ; (2e54 <lv_obj_refresh_style+0x11c>)
{
2d3c: 4605 mov r5, r0
2d3e: 460c mov r4, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2d40: 4798 blx r3
2d42: 4606 mov r6, r0
2d44: b968 cbnz r0, 2d62 <lv_obj_refresh_style+0x2a>
2d46: 4b44 ldr r3, [pc, #272] ; (2e58 <lv_obj_refresh_style+0x120>)
2d48: 4944 ldr r1, [pc, #272] ; (2e5c <lv_obj_refresh_style+0x124>)
2d4a: 9300 str r3, [sp, #0]
2d4c: f240 521d movw r2, #1309 ; 0x51d
2d50: 2003 movs r0, #3
2d52: 4c43 ldr r4, [pc, #268] ; (2e60 <lv_obj_refresh_style+0x128>)
2d54: 47a0 blx r4
2d56: 4843 ldr r0, [pc, #268] ; (2e64 <lv_obj_refresh_style+0x12c>)
2d58: 4943 ldr r1, [pc, #268] ; (2e68 <lv_obj_refresh_style+0x130>)
2d5a: 462a mov r2, r5
2d5c: 4633 mov r3, r6
2d5e: 4788 blx r1
2d60: e7fe b.n 2d60 <lv_obj_refresh_style+0x28>
switch(prop) {
2d62: 2c7f cmp r4, #127 ; 0x7f
2d64: 4e41 ldr r6, [pc, #260] ; (2e6c <lv_obj_refresh_style+0x134>)
2d66: d857 bhi.n 2e18 <lv_obj_refresh_style+0xe0>
2d68: 2c6f cmp r4, #111 ; 0x6f
2d6a: d81a bhi.n 2da2 <lv_obj_refresh_style+0x6a>
2d6c: 2c5c cmp r4, #92 ; 0x5c
2d6e: d848 bhi.n 2e02 <lv_obj_refresh_style+0xca>
2d70: 2c3f cmp r4, #63 ; 0x3f
2d72: d83d bhi.n 2df0 <lv_obj_refresh_style+0xb8>
2d74: 2c07 cmp r4, #7
2d76: d84a bhi.n 2e0e <lv_obj_refresh_style+0xd6>
2d78: 2c01 cmp r4, #1
2d7a: d942 bls.n 2e02 <lv_obj_refresh_style+0xca>
lv_obj_invalidate(obj);
2d7c: 4628 mov r0, r5
2d7e: 47b0 blx r6
obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL);
2d80: 69eb ldr r3, [r5, #28]
2d82: 2200 movs r2, #0
2d84: 2104 movs r1, #4
2d86: 4628 mov r0, r5
2d88: 4798 blx r3
switch(prop) {
2d8a: 2c18 cmp r4, #24
2d8c: d855 bhi.n 2e3a <lv_obj_refresh_style+0x102>
2d8e: 2c14 cmp r4, #20
2d90: d955 bls.n 2e3e <lv_obj_refresh_style+0x106>
if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL);
2d92: 6828 ldr r0, [r5, #0]
2d94: 2800 cmp r0, #0
2d96: d052 beq.n 2e3e <lv_obj_refresh_style+0x106>
2d98: 69c3 ldr r3, [r0, #28]
2d9a: 2200 movs r2, #0
2d9c: 2101 movs r1, #1
2d9e: 4798 blx r3
2da0: e04d b.n 2e3e <lv_obj_refresh_style+0x106>
switch(prop) {
2da2: f1a4 0370 sub.w r3, r4, #112 ; 0x70
2da6: 2b0f cmp r3, #15
2da8: d82b bhi.n 2e02 <lv_obj_refresh_style+0xca>
2daa: a201 add r2, pc, #4 ; (adr r2, 2db0 <lv_obj_refresh_style+0x78>)
2dac: f852 f023 ldr.w pc, [r2, r3, lsl #2]
2db0: 00002d7d .word 0x00002d7d
2db4: 00002d7d .word 0x00002d7d
2db8: 00002e03 .word 0x00002e03
2dbc: 00002d7d .word 0x00002d7d
2dc0: 00002d7d .word 0x00002d7d
2dc4: 00002d7d .word 0x00002d7d
2dc8: 00002e03 .word 0x00002e03
2dcc: 00002e03 .word 0x00002e03
2dd0: 00002e03 .word 0x00002e03
2dd4: 00002e03 .word 0x00002e03
2dd8: 00002e03 .word 0x00002e03
2ddc: 00002e03 .word 0x00002e03
2de0: 00002d7d .word 0x00002d7d
2de4: 00002e03 .word 0x00002e03
2de8: 00002d7d .word 0x00002d7d
2dec: 00002d7d .word 0x00002d7d
2df0: f1a4 0240 sub.w r2, r4, #64 ; 0x40
2df4: b293 uxth r3, r2
2df6: 2201 movs r2, #1
2df8: 409a lsls r2, r3
2dfa: 4b1d ldr r3, [pc, #116] ; (2e70 <lv_obj_refresh_style+0x138>)
2dfc: 4013 ands r3, r2
2dfe: 2b00 cmp r3, #0
2e00: d1bc bne.n 2d7c <lv_obj_refresh_style+0x44>
lv_obj_invalidate(obj);
2e02: 4628 mov r0, r5
2e04: 4633 mov r3, r6
}
2e06: b002 add sp, #8
2e08: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
2e0c: 4718 bx r3
switch(prop) {
2e0e: f1a4 0310 sub.w r3, r4, #16
2e12: 2b08 cmp r3, #8
2e14: d8f5 bhi.n 2e02 <lv_obj_refresh_style+0xca>
2e16: e7b1 b.n 2d7c <lv_obj_refresh_style+0x44>
2e18: f248 0381 movw r3, #32897 ; 0x8081
2e1c: 429c cmp r4, r3
2e1e: d808 bhi.n 2e32 <lv_obj_refresh_style+0xfa>
2e20: f248 037f movw r3, #32895 ; 0x807f
2e24: 429c cmp r4, r3
2e26: d8a9 bhi.n 2d7c <lv_obj_refresh_style+0x44>
2e28: 2c90 cmp r4, #144 ; 0x90
2e2a: d0a7 beq.n 2d7c <lv_obj_refresh_style+0x44>
2e2c: 2cff cmp r4, #255 ; 0xff
2e2e: d1e8 bne.n 2e02 <lv_obj_refresh_style+0xca>
2e30: e7a4 b.n 2d7c <lv_obj_refresh_style+0x44>
2e32: f248 038e movw r3, #32910 ; 0x808e
2e36: 429c cmp r4, r3
2e38: e7f9 b.n 2e2e <lv_obj_refresh_style+0xf6>
switch(prop) {
2e3a: 2cff cmp r4, #255 ; 0xff
2e3c: d0a9 beq.n 2d92 <lv_obj_refresh_style+0x5a>
lv_obj_invalidate(obj);
2e3e: 4628 mov r0, r5
2e40: 47b0 blx r6
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
2e42: 2cff cmp r4, #255 ; 0xff
2e44: d001 beq.n 2e4a <lv_obj_refresh_style+0x112>
2e46: 0423 lsls r3, r4, #16
2e48: d502 bpl.n 2e50 <lv_obj_refresh_style+0x118>
2e4a: 4b0a ldr r3, [pc, #40] ; (2e74 <lv_obj_refresh_style+0x13c>)
2e4c: 4628 mov r0, r5
2e4e: e7da b.n 2e06 <lv_obj_refresh_style+0xce>
}
2e50: b002 add sp, #8
2e52: bd70 pop {r4, r5, r6, pc}
2e54: 00001795 .word 0x00001795
2e58: 0001f504 .word 0x0001f504
2e5c: 0001ee9f .word 0x0001ee9f
2e60: 0000e931 .word 0x0000e931
2e64: 0001ef03 .word 0x0001ef03
2e68: 0000179d .word 0x0000179d
2e6c: 00002739 .word 0x00002739
2e70: 100f1003 .word 0x100f1003
2e74: 00002cfd .word 0x00002cfd
00002e78 <lv_obj_reset_style_list>:
{
2e78: b510 push {r4, lr}
lv_obj_clean_style_list(obj, part);
2e7a: 4b04 ldr r3, [pc, #16] ; (2e8c <lv_obj_reset_style_list+0x14>)
{
2e7c: 4604 mov r4, r0
lv_obj_clean_style_list(obj, part);
2e7e: 4798 blx r3
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
2e80: 4620 mov r0, r4
2e82: 4b03 ldr r3, [pc, #12] ; (2e90 <lv_obj_reset_style_list+0x18>)
}
2e84: e8bd 4010 ldmia.w sp!, {r4, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
2e88: 21ff movs r1, #255 ; 0xff
2e8a: 4718 bx r3
2e8c: 000024f9 .word 0x000024f9
2e90: 00002d39 .word 0x00002d39
00002e94 <report_style_mod_core>:
{
2e94: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
2e96: 4c1e ldr r4, [pc, #120] ; (2f10 <report_style_mod_core+0x7c>)
{
2e98: 4606 mov r6, r0
2e9a: 460d mov r5, r1
2e9c: 2700 movs r7, #0
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
2e9e: b2f9 uxtb r1, r7
2ea0: 4628 mov r0, r5
2ea2: 47a0 blx r4
if(dsc == NULL) break;
2ea4: 4602 mov r2, r0
2ea6: b1f8 cbz r0, 2ee8 <report_style_mod_core+0x54>
for(ci = 0; ci < dsc->style_cnt; ci++) {
2ea8: 7901 ldrb r1, [r0, #4]
2eaa: f04f 0c00 mov.w ip, #0
2eae: fa5f f38c uxtb.w r3, ip
2eb2: 4299 cmp r1, r3
2eb4: d915 bls.n 2ee2 <report_style_mod_core+0x4e>
*/
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++;
2eb6: 7950 ldrb r0, [r2, #5]
2eb8: f000 0006 and.w r0, r0, #6
2ebc: 2806 cmp r0, #6
2ebe: d123 bne.n 2f08 <report_style_mod_core+0x74>
2ec0: 3301 adds r3, #1
2ec2: b2db uxtb r3, r3
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
2ec4: 4299 cmp r1, r3
2ec6: d916 bls.n 2ef6 <report_style_mod_core+0x62>
return list->style_list[id];
2ec8: 6810 ldr r0, [r2, #0]
2eca: f850 3023 ldr.w r3, [r0, r3, lsl #2]
if(class == style || style == NULL) {
2ece: 429e cmp r6, r3
2ed0: d003 beq.n 2eda <report_style_mod_core+0x46>
2ed2: f10c 0c01 add.w ip, ip, #1
2ed6: 2e00 cmp r6, #0
2ed8: d1e9 bne.n 2eae <report_style_mod_core+0x1a>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
2eda: 4b0e ldr r3, [pc, #56] ; (2f14 <report_style_mod_core+0x80>)
2edc: 21ff movs r1, #255 ; 0xff
2ede: 4628 mov r0, r5
2ee0: 4798 blx r3
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
2ee2: 3701 adds r7, #1
2ee4: 2f40 cmp r7, #64 ; 0x40
2ee6: d1da bne.n 2e9e <report_style_mod_core+0xa>
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2ee8: 4f0b ldr r7, [pc, #44] ; (2f18 <report_style_mod_core+0x84>)
2eea: 2100 movs r1, #0
2eec: 4628 mov r0, r5
child = lv_obj_get_child(obj, child);
2eee: 47b8 blx r7
2ef0: 4604 mov r4, r0
while(child) {
2ef2: b910 cbnz r0, 2efa <report_style_mod_core+0x66>
}
2ef4: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
2ef6: 2300 movs r3, #0
2ef8: e7e9 b.n 2ece <report_style_mod_core+0x3a>
report_style_mod_core(style, child);
2efa: 4621 mov r1, r4
2efc: 4630 mov r0, r6
2efe: f7ff ffc9 bl 2e94 <report_style_mod_core>
child = lv_obj_get_child(obj, child);
2f02: 4621 mov r1, r4
2f04: 4628 mov r0, r5
2f06: e7f2 b.n 2eee <report_style_mod_core+0x5a>
2f08: 2900 cmp r1, #0
2f0a: d1dd bne.n 2ec8 <report_style_mod_core+0x34>
2f0c: 460b mov r3, r1
2f0e: e7de b.n 2ece <report_style_mod_core+0x3a>
2f10: 0000243d .word 0x0000243d
2f14: 00002d39 .word 0x00002d39
2f18: 00002221 .word 0x00002221
00002f1c <lv_obj_report_style_mod>:
{
2f1c: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_disp_t * d = lv_disp_get_next(NULL);
2f20: 4e0f ldr r6, [pc, #60] ; (2f60 <lv_obj_report_style_mod+0x44>)
_LV_LL_READ(d->scr_ll, i) {
2f22: f8df 9040 ldr.w r9, [pc, #64] ; 2f64 <lv_obj_report_style_mod+0x48>
report_style_mod_core(style, i);
2f26: f8df a040 ldr.w sl, [pc, #64] ; 2f68 <lv_obj_report_style_mod+0x4c>
{
2f2a: 4607 mov r7, r0
lv_disp_t * d = lv_disp_get_next(NULL);
2f2c: 2000 movs r0, #0
2f2e: 47b0 blx r6
2f30: 4604 mov r4, r0
while(d) {
2f32: b90c cbnz r4, 2f38 <lv_obj_report_style_mod+0x1c>
}
2f34: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_LV_LL_READ(d->scr_ll, i) {
2f38: f104 0830 add.w r8, r4, #48 ; 0x30
2f3c: 4640 mov r0, r8
2f3e: 47c8 blx r9
2f40: f8df b028 ldr.w fp, [pc, #40] ; 2f6c <lv_obj_report_style_mod+0x50>
2f44: 4605 mov r5, r0
2f46: b91d cbnz r5, 2f50 <lv_obj_report_style_mod+0x34>
d = lv_disp_get_next(d);
2f48: 4620 mov r0, r4
2f4a: 47b0 blx r6
2f4c: 4604 mov r4, r0
2f4e: e7f0 b.n 2f32 <lv_obj_report_style_mod+0x16>
report_style_mod_core(style, i);
2f50: 4629 mov r1, r5
2f52: 4638 mov r0, r7
2f54: 47d0 blx sl
_LV_LL_READ(d->scr_ll, i) {
2f56: 4629 mov r1, r5
2f58: 4640 mov r0, r8
2f5a: 47d8 blx fp
2f5c: 4605 mov r5, r0
2f5e: e7f2 b.n 2f46 <lv_obj_report_style_mod+0x2a>
2f60: 0000da09 .word 0x0000da09
2f64: 0000e6f1 .word 0x0000e6f1
2f68: 00002e95 .word 0x00002e95
2f6c: 0000e6fd .word 0x0000e6fd
00002f70 <trans_anim_cb>:
{
2f70: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
2f74: 4b3a ldr r3, [pc, #232] ; (3060 <trans_anim_cb+0xf0>)
{
2f76: 4604 mov r4, r0
2f78: 460d mov r5, r1
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
2f7a: 7981 ldrb r1, [r0, #6]
2f7c: 6800 ldr r0, [r0, #0]
2f7e: 4798 blx r3
lv_style_t * style = _lv_style_list_get_transition_style(list);
2f80: 4b38 ldr r3, [pc, #224] ; (3064 <trans_anim_cb+0xf4>)
2f82: 4798 blx r3
if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/
2f84: 88a1 ldrh r1, [r4, #4]
2f86: f001 030f and.w r3, r1, #15
2f8a: 2b08 cmp r3, #8
2f8c: d816 bhi.n 2fbc <trans_anim_cb+0x4c>
if(v == 0) x = tr->start_value._int;
2f8e: b94d cbnz r5, 2fa4 <trans_anim_cb+0x34>
2f90: f9b4 2008 ldrsh.w r2, [r4, #8]
_lv_style_set_int(style, tr->prop, x);
2f94: 4b34 ldr r3, [pc, #208] ; (3068 <trans_anim_cb+0xf8>)
2f96: 4798 blx r3
lv_obj_refresh_style(tr->obj, tr->prop);
2f98: 88a1 ldrh r1, [r4, #4]
2f9a: 6820 ldr r0, [r4, #0]
2f9c: 4b33 ldr r3, [pc, #204] ; (306c <trans_anim_cb+0xfc>)
}
2f9e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_obj_refresh_style(tr->obj, tr->prop);
2fa2: 4718 bx r3
else if(v == 255) x = tr->end_value._int;
2fa4: 2dff cmp r5, #255 ; 0xff
2fa6: f9b4 200c ldrsh.w r2, [r4, #12]
2faa: d0f3 beq.n 2f94 <trans_anim_cb+0x24>
else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8);
2fac: f9b4 3008 ldrsh.w r3, [r4, #8]
2fb0: 1ad2 subs r2, r2, r3
2fb2: 4355 muls r5, r2
2fb4: eb03 2525 add.w r5, r3, r5, asr #8
2fb8: b22a sxth r2, r5
2fba: e7eb b.n 2f94 <trans_anim_cb+0x24>
else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
2fbc: 2b0b cmp r3, #11
2fbe: d836 bhi.n 302e <trans_anim_cb+0xbe>
if(v <= 0) x = tr->start_value._color;
2fc0: 2d00 cmp r5, #0
2fc2: dc03 bgt.n 2fcc <trans_anim_cb+0x5c>
2fc4: 8922 ldrh r2, [r4, #8]
_lv_style_set_color(style, tr->prop, x);
2fc6: 4b2a ldr r3, [pc, #168] ; (3070 <trans_anim_cb+0x100>)
2fc8: 4798 blx r3
2fca: e7e5 b.n 2f98 <trans_anim_cb+0x28>
else if(v >= 255) x = tr->end_value._color;
2fcc: 2dfe cmp r5, #254 ; 0xfe
2fce: dd01 ble.n 2fd4 <trans_anim_cb+0x64>
2fd0: 89a2 ldrh r2, [r4, #12]
2fd2: e7f8 b.n 2fc6 <trans_anim_cb+0x56>
{
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)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
2fd4: 8923 ldrh r3, [r4, #8]
2fd6: 89a6 ldrh r6, [r4, #12]
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
2fd8: 7a22 ldrb r2, [r4, #8]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
2fda: f1c5 0cff rsb ip, r5, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
2fde: f3c3 1345 ubfx r3, r3, #5, #6
2fe2: fb0c f303 mul.w r3, ip, r3
2fe6: f3c6 1645 ubfx r6, r6, #5, #6
2fea: fb15 3606 smlabb r6, r5, r6, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
2fee: 7b23 ldrb r3, [r4, #12]
2ff0: f002 021f and.w r2, r2, #31
2ff4: fb0c f202 mul.w r2, ip, r2
2ff8: f003 031f and.w r3, r3, #31
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
2ffc: f248 0781 movw r7, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
3000: fb15 2303 smlabb r3, r5, 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)));
3004: 437e muls r6, r7
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
3006: 437b muls r3, r7
3008: f3c6 56c5 ubfx r6, r6, #23, #6
300c: f3c3 53c4 ubfx r3, r3, #23, #5
3010: ea43 1346 orr.w r3, r3, r6, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
3014: 7a66 ldrb r6, [r4, #9]
3016: 7b62 ldrb r2, [r4, #13]
3018: 08f6 lsrs r6, r6, #3
301a: 08d2 lsrs r2, r2, #3
301c: fb0c fc06 mul.w ip, ip, r6
3020: fb15 c202 smlabb r2, r5, r2, ip
3024: 437a muls r2, r7
3026: 0dd2 lsrs r2, r2, #23
3028: ea43 22c2 orr.w r2, r3, r2, lsl #11
302c: e7cb b.n 2fc6 <trans_anim_cb+0x56>
else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
302e: 2b0d cmp r3, #13
3030: d80f bhi.n 3052 <trans_anim_cb+0xe2>
if(v <= 0) x = tr->start_value._opa;
3032: 2d00 cmp r5, #0
3034: dc03 bgt.n 303e <trans_anim_cb+0xce>
3036: 7a22 ldrb r2, [r4, #8]
_lv_style_set_opa(style, tr->prop, x);
3038: 4b0e ldr r3, [pc, #56] ; (3074 <trans_anim_cb+0x104>)
303a: 4798 blx r3
303c: e7ac b.n 2f98 <trans_anim_cb+0x28>
else if(v >= 255) x = tr->end_value._opa;
303e: 2dfe cmp r5, #254 ; 0xfe
3040: 7b22 ldrb r2, [r4, #12]
3042: dcf9 bgt.n 3038 <trans_anim_cb+0xc8>
else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8);
3044: 7a23 ldrb r3, [r4, #8]
3046: 1ad2 subs r2, r2, r3
3048: 4355 muls r5, r2
304a: eb03 2525 add.w r5, r3, r5, asr #8
304e: b2ea uxtb r2, r5
3050: e7f2 b.n 3038 <trans_anim_cb+0xc8>
if(v < 128) x = tr->start_value._ptr;
3052: 2d7f cmp r5, #127 ; 0x7f
3054: bfd4 ite le
3056: 68a2 ldrle r2, [r4, #8]
else x = tr->end_value._ptr;
3058: 68e2 ldrgt r2, [r4, #12]
_lv_style_set_ptr(style, tr->prop, x);
305a: 4b07 ldr r3, [pc, #28] ; (3078 <trans_anim_cb+0x108>)
305c: 4798 blx r3
305e: e79b b.n 2f98 <trans_anim_cb+0x28>
3060: 0000243d .word 0x0000243d
3064: 00005cb5 .word 0x00005cb5
3068: 00005875 .word 0x00005875
306c: 00002d39 .word 0x00002d39
3070: 00005945 .word 0x00005945
3074: 00005a15 .word 0x00005a15
3078: 00005ae9 .word 0x00005ae9
0000307c <lv_obj_get_base_dir>:
{
307c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
307e: 4b0b ldr r3, [pc, #44] ; (30ac <lv_obj_get_base_dir+0x30>)
{
3080: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3082: 4798 blx r3
3084: 4604 mov r4, r0
3086: b968 cbnz r0, 30a4 <lv_obj_get_base_dir+0x28>
3088: 4b09 ldr r3, [pc, #36] ; (30b0 <lv_obj_get_base_dir+0x34>)
308a: 490a ldr r1, [pc, #40] ; (30b4 <lv_obj_get_base_dir+0x38>)
308c: 9300 str r3, [sp, #0]
308e: f640 22b1 movw r2, #2737 ; 0xab1
3092: 2003 movs r0, #3
3094: 4e08 ldr r6, [pc, #32] ; (30b8 <lv_obj_get_base_dir+0x3c>)
3096: 47b0 blx r6
3098: 4808 ldr r0, [pc, #32] ; (30bc <lv_obj_get_base_dir+0x40>)
309a: 4909 ldr r1, [pc, #36] ; (30c0 <lv_obj_get_base_dir+0x44>)
309c: 462a mov r2, r5
309e: 4623 mov r3, r4
30a0: 4788 blx r1
30a2: e7fe b.n 30a2 <lv_obj_get_base_dir+0x26>
}
30a4: 2000 movs r0, #0
30a6: b002 add sp, #8
30a8: bd70 pop {r4, r5, r6, pc}
30aa: bf00 nop
30ac: 00001795 .word 0x00001795
30b0: 0001f5c5 .word 0x0001f5c5
30b4: 0001ee9f .word 0x0001ee9f
30b8: 0000e931 .word 0x0000e931
30bc: 0001ef03 .word 0x0001ef03
30c0: 0000179d .word 0x0000179d
000030c4 <lv_obj_create>:
{
30c4: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
30c8: 460d mov r5, r1
if(parent == NULL) {
30ca: 4606 mov r6, r0
30cc: 2800 cmp r0, #0
30ce: d177 bne.n 31c0 <lv_obj_create+0xfc>
lv_disp_t * disp = lv_disp_get_default();
30d0: 4b89 ldr r3, [pc, #548] ; (32f8 <lv_obj_create+0x234>)
30d2: 4798 blx r3
if(!disp) {
30d4: 4604 mov r4, r0
30d6: b940 cbnz r0, 30ea <lv_obj_create+0x26>
LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen");
30d8: 4b88 ldr r3, [pc, #544] ; (32fc <lv_obj_create+0x238>)
30da: 9300 str r3, [sp, #0]
30dc: 4988 ldr r1, [pc, #544] ; (3300 <lv_obj_create+0x23c>)
30de: 4b89 ldr r3, [pc, #548] ; (3304 <lv_obj_create+0x240>)
30e0: 22cf movs r2, #207 ; 0xcf
30e2: 2002 movs r0, #2
LV_LOG_INFO("Object create ready");
30e4: 4d88 ldr r5, [pc, #544] ; (3308 <lv_obj_create+0x244>)
30e6: 47a8 blx r5
return new_obj;
30e8: e016 b.n 3118 <lv_obj_create+0x54>
new_obj = _lv_ll_ins_head(&disp->scr_ll);
30ea: 4b88 ldr r3, [pc, #544] ; (330c <lv_obj_create+0x248>)
30ec: 3030 adds r0, #48 ; 0x30
30ee: 4798 blx r3
LV_ASSERT_MEM(new_obj);
30f0: 4b87 ldr r3, [pc, #540] ; (3310 <lv_obj_create+0x24c>)
new_obj = _lv_ll_ins_head(&disp->scr_ll);
30f2: 4604 mov r4, r0
LV_ASSERT_MEM(new_obj);
30f4: 4798 blx r3
30f6: 4607 mov r7, r0
30f8: b960 cbnz r0, 3114 <lv_obj_create+0x50>
30fa: 4b82 ldr r3, [pc, #520] ; (3304 <lv_obj_create+0x240>)
30fc: 4980 ldr r1, [pc, #512] ; (3300 <lv_obj_create+0x23c>)
30fe: 9300 str r3, [sp, #0]
3100: 22d4 movs r2, #212 ; 0xd4
3102: 2003 movs r0, #3
3104: 4d80 ldr r5, [pc, #512] ; (3308 <lv_obj_create+0x244>)
3106: 47a8 blx r5
3108: 4882 ldr r0, [pc, #520] ; (3314 <lv_obj_create+0x250>)
310a: 4983 ldr r1, [pc, #524] ; (3318 <lv_obj_create+0x254>)
310c: 4622 mov r2, r4
310e: 463b mov r3, r7
3110: 4788 blx r1
3112: e7fe b.n 3112 <lv_obj_create+0x4e>
if(new_obj == NULL) return NULL;
3114: b924 cbnz r4, 3120 <lv_obj_create+0x5c>
3116: 2400 movs r4, #0
}
3118: 4620 mov r0, r4
311a: b004 add sp, #16
311c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
_lv_memset_00(new_obj, sizeof(lv_obj_t));
3120: 214c movs r1, #76 ; 0x4c
3122: 4b7e ldr r3, [pc, #504] ; (331c <lv_obj_create+0x258>)
3124: 4620 mov r0, r4
3126: 4798 blx r3
new_obj->base_dir = LV_BIDI_DIR_LTR;
3128: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
new_obj->event_cb = NULL;
312c: 61a6 str r6, [r4, #24]
new_obj->base_dir = LV_BIDI_DIR_LTR;
312e: f366 1305 bfi r3, r6, #4, #2
3132: f884 3035 strb.w r3, [r4, #53] ; 0x35
new_obj->signal_cb = lv_obj_signal;
3136: 4b7a ldr r3, [pc, #488] ; (3320 <lv_obj_create+0x25c>)
3138: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
313a: 4b7a ldr r3, [pc, #488] ; (3324 <lv_obj_create+0x260>)
313c: 6223 str r3, [r4, #32]
new_obj->coords.x1 = 0;
313e: 6126 str r6, [r4, #16]
new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1;
3140: 4b79 ldr r3, [pc, #484] ; (3328 <lv_obj_create+0x264>)
3142: 4630 mov r0, r6
3144: 4798 blx r3
3146: 3801 subs r0, #1
3148: 82a0 strh r0, [r4, #20]
new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1;
314a: 4b78 ldr r3, [pc, #480] ; (332c <lv_obj_create+0x268>)
314c: 4630 mov r0, r6
314e: 4798 blx r3
3150: 3801 subs r0, #1
3152: 82e0 strh r0, [r4, #22]
_lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));
3154: 4b76 ldr r3, [pc, #472] ; (3330 <lv_obj_create+0x26c>)
3156: 214c movs r1, #76 ; 0x4c
3158: 1d20 adds r0, r4, #4
315a: 4798 blx r3
new_obj->realign.align = LV_ALIGN_CENTER;
315c: f8b4 3048 ldrh.w r3, [r4, #72] ; 0x48
3160: f423 73ff bic.w r3, r3, #510 ; 0x1fe
3164: f023 0301 bic.w r3, r3, #1
3168: f8a4 3048 strh.w r3, [r4, #72] ; 0x48
new_obj->click = 1;
316c: 8ea3 ldrh r3, [r4, #52] ; 0x34
316e: f423 637f bic.w r3, r3, #4080 ; 0xff0
3172: f023 030f bic.w r3, r3, #15
3176: f443 63e0 orr.w r3, r3, #1792 ; 0x700
new_obj->realign.base = NULL;
317a: 2200 movs r2, #0
new_obj->click = 1;
317c: f043 0301 orr.w r3, r3, #1
lv_style_list_init(&new_obj->style_list);
3180: f104 0028 add.w r0, r4, #40 ; 0x28
new_obj->click = 1;
3184: 86a3 strh r3, [r4, #52] ; 0x34
new_obj->realign.xofs = 0;
3186: e9c4 2210 strd r2, r2, [r4, #64] ; 0x40
lv_style_list_init(&new_obj->style_list);
318a: 4b6a ldr r3, [pc, #424] ; (3334 <lv_obj_create+0x270>)
new_obj->ext_click_pad_hor = 0;
318c: 6322 str r2, [r4, #48] ; 0x30
new_obj->group_p = NULL;
318e: 63a2 str r2, [r4, #56] ; 0x38
new_obj->protect = LV_PROTECT_NONE;
3190: 87a2 strh r2, [r4, #60] ; 0x3c
new_obj->ext_attr = NULL;
3192: 6262 str r2, [r4, #36] ; 0x24
lv_style_list_init(&new_obj->style_list);
3194: 9003 str r0, [sp, #12]
3196: 4798 blx r3
if(copy == NULL) {
3198: 9803 ldr r0, [sp, #12]
319a: 2d00 cmp r5, #0
319c: f040 80d8 bne.w 3350 <lv_obj_create+0x28c>
if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ);
31a0: 4b65 ldr r3, [pc, #404] ; (3338 <lv_obj_create+0x274>)
31a2: 2e00 cmp r6, #0
31a4: f000 809c beq.w 32e0 <lv_obj_create+0x21c>
31a8: 2102 movs r1, #2
31aa: 4620 mov r0, r4
31ac: 4798 blx r3
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj);
31ae: 69f3 ldr r3, [r6, #28]
31b0: 4622 mov r2, r4
31b2: 2101 movs r1, #1
31b4: 4630 mov r0, r6
31b6: 4798 blx r3
lv_obj_invalidate(new_obj);
31b8: 4b60 ldr r3, [pc, #384] ; (333c <lv_obj_create+0x278>)
31ba: 4620 mov r0, r4
31bc: 4798 blx r3
31be: e092 b.n 32e6 <lv_obj_create+0x222>
LV_ASSERT_OBJ(parent, LV_OBJX_NAME);
31c0: 4f53 ldr r7, [pc, #332] ; (3310 <lv_obj_create+0x24c>)
31c2: 47b8 blx r7
31c4: 4604 mov r4, r0
31c6: b960 cbnz r0, 31e2 <lv_obj_create+0x11e>
31c8: 4b4e ldr r3, [pc, #312] ; (3304 <lv_obj_create+0x240>)
31ca: 494d ldr r1, [pc, #308] ; (3300 <lv_obj_create+0x23c>)
31cc: 9300 str r3, [sp, #0]
31ce: 22ed movs r2, #237 ; 0xed
31d0: 2003 movs r0, #3
31d2: 4d4d ldr r5, [pc, #308] ; (3308 <lv_obj_create+0x244>)
31d4: 47a8 blx r5
31d6: 485a ldr r0, [pc, #360] ; (3340 <lv_obj_create+0x27c>)
31d8: 494f ldr r1, [pc, #316] ; (3318 <lv_obj_create+0x254>)
31da: 4632 mov r2, r6
31dc: 4623 mov r3, r4
31de: 4788 blx r1
31e0: e7fe b.n 31e0 <lv_obj_create+0x11c>
new_obj = _lv_ll_ins_head(&parent->child_ll);
31e2: 4b4a ldr r3, [pc, #296] ; (330c <lv_obj_create+0x248>)
31e4: 1d30 adds r0, r6, #4
31e6: 4798 blx r3
31e8: 4604 mov r4, r0
LV_ASSERT_MEM(new_obj);
31ea: 47b8 blx r7
31ec: 4607 mov r7, r0
31ee: b960 cbnz r0, 320a <lv_obj_create+0x146>
31f0: 4b44 ldr r3, [pc, #272] ; (3304 <lv_obj_create+0x240>)
31f2: 4943 ldr r1, [pc, #268] ; (3300 <lv_obj_create+0x23c>)
31f4: 9300 str r3, [sp, #0]
31f6: 22f0 movs r2, #240 ; 0xf0
31f8: 2003 movs r0, #3
31fa: 4d43 ldr r5, [pc, #268] ; (3308 <lv_obj_create+0x244>)
31fc: 47a8 blx r5
31fe: 4845 ldr r0, [pc, #276] ; (3314 <lv_obj_create+0x250>)
3200: 4945 ldr r1, [pc, #276] ; (3318 <lv_obj_create+0x254>)
3202: 4622 mov r2, r4
3204: 463b mov r3, r7
3206: 4788 blx r1
3208: e7fe b.n 3208 <lv_obj_create+0x144>
if(new_obj == NULL) return NULL;
320a: 2c00 cmp r4, #0
320c: d083 beq.n 3116 <lv_obj_create+0x52>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
320e: 4b43 ldr r3, [pc, #268] ; (331c <lv_obj_create+0x258>)
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
3210: f8df 9138 ldr.w r9, [pc, #312] ; 334c <lv_obj_create+0x288>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
3214: 214c movs r1, #76 ; 0x4c
3216: 4620 mov r0, r4
3218: 4798 blx r3
new_obj->base_dir = LV_BIDI_DIR_LTR;
321a: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
new_obj->parent = parent;
321e: 6026 str r6, [r4, #0]
new_obj->base_dir = LV_BIDI_DIR_LTR;
3220: f36f 1305 bfc r3, #4, #2
3224: f884 3035 strb.w r3, [r4, #53] ; 0x35
new_obj->signal_cb = lv_obj_signal;
3228: 4b3d ldr r3, [pc, #244] ; (3320 <lv_obj_create+0x25c>)
322a: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
322c: 4b3d ldr r3, [pc, #244] ; (3324 <lv_obj_create+0x260>)
322e: 6223 str r3, [r4, #32]
new_obj->event_cb = NULL;
3230: f04f 0800 mov.w r8, #0
new_obj->coords.y1 = parent->coords.y1;
3234: f9b6 3012 ldrsh.w r3, [r6, #18]
3238: 8263 strh r3, [r4, #18]
new_obj->event_cb = NULL;
323a: f8c4 8018 str.w r8, [r4, #24]
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
323e: 4640 mov r0, r8
3240: 8a77 ldrh r7, [r6, #18]
3242: 47c8 blx r9
3244: f04f 0a32 mov.w sl, #50 ; 0x32
3248: fb00 f00a mul.w r0, r0, sl
324c: 28ef cmp r0, #239 ; 0xef
324e: dd2b ble.n 32a8 <lv_obj_create+0x1e4>
3250: 4640 mov r0, r8
3252: 47c8 blx r9
3254: 2350 movs r3, #80 ; 0x50
3256: fb00 300a mla r0, r0, sl, r3
325a: 23a0 movs r3, #160 ; 0xa0
325c: fb90 f0f3 sdiv r0, r0, r3
3260: b280 uxth r0, r0
3262: 4438 add r0, r7
3264: 82e0 strh r0, [r4, #22]
if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) {
3266: 4b37 ldr r3, [pc, #220] ; (3344 <lv_obj_create+0x280>)
3268: 4620 mov r0, r4
326a: 4798 blx r3
326c: 2801 cmp r0, #1
326e: 4607 mov r7, r0
3270: d11c bne.n 32ac <lv_obj_create+0x1e8>
new_obj->coords.x2 = parent->coords.x2;
3272: f9b6 8014 ldrsh.w r8, [r6, #20]
3276: f8a4 8014 strh.w r8, [r4, #20]
new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH;
327a: 2000 movs r0, #0
327c: 47c8 blx r9
327e: f04f 0a64 mov.w sl, #100 ; 0x64
3282: fb00 f00a mul.w r0, r0, sl
3286: 28ef cmp r0, #239 ; 0xef
3288: fa1f f888 uxth.w r8, r8
328c: dd08 ble.n 32a0 <lv_obj_create+0x1dc>
328e: 2000 movs r0, #0
3290: 47c8 blx r9
3292: 2350 movs r3, #80 ; 0x50
3294: fb00 370a mla r7, r0, sl, r3
3298: 23a0 movs r3, #160 ; 0xa0
329a: fb97 f7f3 sdiv r7, r7, r3
329e: b2bf uxth r7, r7
32a0: eba8 0707 sub.w r7, r8, r7
32a4: 8227 strh r7, [r4, #16]
32a6: e755 b.n 3154 <lv_obj_create+0x90>
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
32a8: 2001 movs r0, #1
32aa: e7da b.n 3262 <lv_obj_create+0x19e>
new_obj->coords.x1 = parent->coords.x1;
32ac: f9b6 7010 ldrsh.w r7, [r6, #16]
32b0: 8227 strh r7, [r4, #16]
new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH;
32b2: 2000 movs r0, #0
32b4: 47c8 blx r9
32b6: f04f 0864 mov.w r8, #100 ; 0x64
32ba: fb00 f008 mul.w r0, r0, r8
32be: 28ef cmp r0, #239 ; 0xef
32c0: b2bf uxth r7, r7
32c2: dd0b ble.n 32dc <lv_obj_create+0x218>
32c4: 2000 movs r0, #0
32c6: 47c8 blx r9
32c8: 2350 movs r3, #80 ; 0x50
32ca: fb00 3008 mla r0, r0, r8, r3
32ce: 23a0 movs r3, #160 ; 0xa0
32d0: fb90 f0f3 sdiv r0, r0, r3
32d4: b280 uxth r0, r0
32d6: 4438 add r0, r7
32d8: 82a0 strh r0, [r4, #20]
32da: e73b b.n 3154 <lv_obj_create+0x90>
32dc: 2001 movs r0, #1
32de: e7fa b.n 32d6 <lv_obj_create+0x212>
else lv_theme_apply(new_obj, LV_THEME_SCR);
32e0: 2101 movs r1, #1
32e2: 4620 mov r0, r4
32e4: 4798 blx r3
LV_LOG_INFO("Object create ready");
32e6: 4b18 ldr r3, [pc, #96] ; (3348 <lv_obj_create+0x284>)
32e8: 9300 str r3, [sp, #0]
32ea: 4905 ldr r1, [pc, #20] ; (3300 <lv_obj_create+0x23c>)
32ec: 4b05 ldr r3, [pc, #20] ; (3304 <lv_obj_create+0x240>)
32ee: f240 1287 movw r2, #391 ; 0x187
32f2: 2001 movs r0, #1
32f4: e6f6 b.n 30e4 <lv_obj_create+0x20>
32f6: bf00 nop
32f8: 0000d941 .word 0x0000d941
32fc: 0001eff4 .word 0x0001eff4
3300: 0001ee9f .word 0x0001ee9f
3304: 0001f5d9 .word 0x0001f5d9
3308: 0000e931 .word 0x0000e931
330c: 0000e661 .word 0x0000e661
3310: 00001795 .word 0x00001795
3314: 0001ee02 .word 0x0001ee02
3318: 0000179d .word 0x0000179d
331c: 0000f061 .word 0x0000f061
3320: 00004b19 .word 0x00004b19
3324: 00004581 .word 0x00004581
3328: 0000d94d .word 0x0000d94d
332c: 0000d971 .word 0x0000d971
3330: 0000e64d .word 0x0000e64d
3334: 00005539 .word 0x00005539
3338: 00010345 .word 0x00010345
333c: 00002739 .word 0x00002739
3340: 0001ef03 .word 0x0001ef03
3344: 0000307d .word 0x0000307d
3348: 0001f044 .word 0x0001f044
334c: 0000d995 .word 0x0000d995
lv_style_list_copy(&new_obj->style_list, &copy->style_list);
3350: 4b54 ldr r3, [pc, #336] ; (34a4 <lv_obj_create+0x3e0>)
3352: f105 0128 add.w r1, r5, #40 ; 0x28
3356: 4798 blx r3
lv_area_copy(&new_obj->coords, &copy->coords);
3358: 4b53 ldr r3, [pc, #332] ; (34a8 <lv_obj_create+0x3e4>)
335a: f104 0010 add.w r0, r4, #16
335e: f105 0110 add.w r1, r5, #16
3362: 4798 blx r3
new_obj->ext_draw_pad = copy->ext_draw_pad;
3364: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32
3368: 8663 strh r3, [r4, #50] ; 0x32
new_obj->ext_click_pad_hor = copy->ext_click_pad_hor;
336a: f895 3030 ldrb.w r3, [r5, #48] ; 0x30
336e: f884 3030 strb.w r3, [r4, #48] ; 0x30
new_obj->ext_click_pad_ver = copy->ext_click_pad_ver;
3372: f895 3031 ldrb.w r3, [r5, #49] ; 0x31
3376: f884 3031 strb.w r3, [r4, #49] ; 0x31
new_obj->realign.align = copy->realign.align;
337a: f895 3048 ldrb.w r3, [r5, #72] ; 0x48
337e: f884 3048 strb.w r3, [r4, #72] ; 0x48
new_obj->realign.xofs = copy->realign.xofs;
3382: f9b5 3044 ldrsh.w r3, [r5, #68] ; 0x44
3386: f8a4 3044 strh.w r3, [r4, #68] ; 0x44
new_obj->realign.yofs = copy->realign.yofs;
338a: f9b5 3046 ldrsh.w r3, [r5, #70] ; 0x46
338e: f8a4 3046 strh.w r3, [r4, #70] ; 0x46
new_obj->realign.base = copy->realign.base;
3392: 6c2b ldr r3, [r5, #64] ; 0x40
new_obj->realign.auto_realign = copy->realign.auto_realign;
3394: f895 2049 ldrb.w r2, [r5, #73] ; 0x49
new_obj->realign.base = copy->realign.base;
3398: 6423 str r3, [r4, #64] ; 0x40
new_obj->realign.auto_realign = copy->realign.auto_realign;
339a: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
339e: f362 0300 bfi r3, r2, #0, #1
33a2: f884 3049 strb.w r3, [r4, #73] ; 0x49
new_obj->event_cb = copy->event_cb;
33a6: 69ab ldr r3, [r5, #24]
33a8: 61a3 str r3, [r4, #24]
new_obj->adv_hittest = copy->adv_hittest;
33aa: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
33ae: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
33b2: 09db lsrs r3, r3, #7
33b4: f363 12c7 bfi r2, r3, #7, #1
33b8: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->click = copy->click;
33bc: f895 2034 ldrb.w r2, [r5, #52] ; 0x34
33c0: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
33c4: f362 0300 bfi r3, r2, #0, #1
33c8: f884 3034 strb.w r3, [r4, #52] ; 0x34
new_obj->drag = copy->drag;
33cc: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
33d0: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
33d4: f3c3 0340 ubfx r3, r3, #1, #1
33d8: f363 0241 bfi r2, r3, #1, #1
33dc: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->drag_dir = copy->drag_dir;
33e0: f895 3035 ldrb.w r3, [r5, #53] ; 0x35
33e4: f894 2035 ldrb.w r2, [r4, #53] ; 0x35
33e8: f3c3 0342 ubfx r3, r3, #1, #3
33ec: f363 0243 bfi r2, r3, #1, #3
33f0: f884 2035 strb.w r2, [r4, #53] ; 0x35
new_obj->drag_throw = copy->drag_throw;
33f4: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
33f8: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
33fc: f3c3 0380 ubfx r3, r3, #2, #1
3400: f363 0282 bfi r2, r3, #2, #1
3404: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->drag_parent = copy->drag_parent;
3408: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
340c: b2d2 uxtb r2, r2
340e: f3c3 03c0 ubfx r3, r3, #3, #1
3412: f363 02c3 bfi r2, r3, #3, #1
3416: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->hidden = copy->hidden;
341a: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
341e: b2d2 uxtb r2, r2
3420: f3c3 1300 ubfx r3, r3, #4, #1
3424: f363 1204 bfi r2, r3, #4, #1
3428: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->top = copy->top;
342c: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
3430: b2d2 uxtb r2, r2
3432: f3c3 1340 ubfx r3, r3, #5, #1
3436: f363 1245 bfi r2, r3, #5, #1
343a: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->parent_event = copy->parent_event;
343e: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
3442: b2d2 uxtb r2, r2
3444: f3c3 1380 ubfx r3, r3, #6, #1
3448: f363 1286 bfi r2, r3, #6, #1
344c: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->protect = copy->protect;
3450: f895 303c ldrb.w r3, [r5, #60] ; 0x3c
3454: f884 303c strb.w r3, [r4, #60] ; 0x3c
new_obj->gesture_parent = copy->gesture_parent;
3458: f895 2035 ldrb.w r2, [r5, #53] ; 0x35
345c: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
3460: f362 0300 bfi r3, r2, #0, #1
3464: f884 3035 strb.w r3, [r4, #53] ; 0x35
if(copy->group_p != NULL) {
3468: 6ba8 ldr r0, [r5, #56] ; 0x38
346a: b110 cbz r0, 3472 <lv_obj_create+0x3ae>
lv_group_add_obj(copy->group_p, new_obj);
346c: 4b0f ldr r3, [pc, #60] ; (34ac <lv_obj_create+0x3e8>)
346e: 4621 mov r1, r4
3470: 4798 blx r3
if(lv_obj_get_parent(copy) != NULL && parent != NULL) {
3472: 4b0f ldr r3, [pc, #60] ; (34b0 <lv_obj_create+0x3ec>)
3474: 4628 mov r0, r5
3476: 4798 blx r3
3478: b178 cbz r0, 349a <lv_obj_create+0x3d6>
347a: 2e00 cmp r6, #0
347c: f43f af33 beq.w 32e6 <lv_obj_create+0x222>
lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy));
3480: 4b0c ldr r3, [pc, #48] ; (34b4 <lv_obj_create+0x3f0>)
3482: 4628 mov r0, r5
3484: 4798 blx r3
3486: 4b0c ldr r3, [pc, #48] ; (34b8 <lv_obj_create+0x3f4>)
3488: 9003 str r0, [sp, #12]
348a: 4628 mov r0, r5
348c: 4798 blx r3
348e: 9903 ldr r1, [sp, #12]
3490: 4b0a ldr r3, [pc, #40] ; (34bc <lv_obj_create+0x3f8>)
3492: 4602 mov r2, r0
3494: 4620 mov r0, r4
3496: 4798 blx r3
if(parent != NULL) {
3498: e689 b.n 31ae <lv_obj_create+0xea>
349a: 2e00 cmp r6, #0
349c: f47f ae87 bne.w 31ae <lv_obj_create+0xea>
34a0: e721 b.n 32e6 <lv_obj_create+0x222>
34a2: bf00 nop
34a4: 00005d29 .word 0x00005d29
34a8: 00001cc9 .word 0x00001cc9
34ac: 00001a51 .word 0x00001a51
34b0: 000020d5 .word 0x000020d5
34b4: 000022dd .word 0x000022dd
34b8: 0000233d .word 0x0000233d
34bc: 00002855 .word 0x00002855
000034c0 <lv_obj_set_size>:
{
34c0: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
34c4: 4b33 ldr r3, [pc, #204] ; (3594 <lv_obj_set_size+0xd4>)
{
34c6: 4604 mov r4, r0
34c8: 460d mov r5, r1
34ca: 4617 mov r7, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
34cc: 4798 blx r3
34ce: 4606 mov r6, r0
34d0: b968 cbnz r0, 34ee <lv_obj_set_size+0x2e>
34d2: 4b31 ldr r3, [pc, #196] ; (3598 <lv_obj_set_size+0xd8>)
34d4: 4931 ldr r1, [pc, #196] ; (359c <lv_obj_set_size+0xdc>)
34d6: 9300 str r3, [sp, #0]
34d8: f240 22e5 movw r2, #741 ; 0x2e5
34dc: 2003 movs r0, #3
34de: 4d30 ldr r5, [pc, #192] ; (35a0 <lv_obj_set_size+0xe0>)
34e0: 47a8 blx r5
34e2: 4830 ldr r0, [pc, #192] ; (35a4 <lv_obj_set_size+0xe4>)
34e4: 4930 ldr r1, [pc, #192] ; (35a8 <lv_obj_set_size+0xe8>)
34e6: 4622 mov r2, r4
34e8: 4633 mov r3, r6
34ea: 4788 blx r1
34ec: e7fe b.n 34ec <lv_obj_set_size+0x2c>
if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) {
34ee: 4b2f ldr r3, [pc, #188] ; (35ac <lv_obj_set_size+0xec>)
34f0: 4620 mov r0, r4
34f2: 4798 blx r3
34f4: 4285 cmp r5, r0
34f6: d104 bne.n 3502 <lv_obj_set_size+0x42>
34f8: 4b2d ldr r3, [pc, #180] ; (35b0 <lv_obj_set_size+0xf0>)
34fa: 4620 mov r0, r4
34fc: 4798 blx r3
34fe: 4287 cmp r7, r0
3500: d03a beq.n 3578 <lv_obj_set_size+0xb8>
lv_obj_invalidate(obj);
3502: 4620 mov r0, r4
3504: 4e2b ldr r6, [pc, #172] ; (35b4 <lv_obj_set_size+0xf4>)
3506: 47b0 blx r6
lv_obj_get_coords(obj, &ori);
3508: a902 add r1, sp, #8
350a: 4b2b ldr r3, [pc, #172] ; (35b8 <lv_obj_set_size+0xf8>)
350c: 4620 mov r0, r4
350e: 4798 blx r3
obj->coords.y2 = obj->coords.y1 + h - 1;
3510: 8a62 ldrh r2, [r4, #18]
if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) {
3512: 4b2a ldr r3, [pc, #168] ; (35bc <lv_obj_set_size+0xfc>)
obj->coords.y2 = obj->coords.y1 + h - 1;
3514: 3f01 subs r7, #1
3516: 4417 add r7, r2
3518: 82e7 strh r7, [r4, #22]
if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) {
351a: 4620 mov r0, r4
351c: 4798 blx r3
351e: 2801 cmp r0, #1
obj->coords.x1 = obj->coords.x2 - w + 1;
3520: b2ad uxth r5, r5
3522: bf0b itete eq
3524: 8aa3 ldrheq r3, [r4, #20]
obj->coords.x2 = obj->coords.x1 + w - 1;
3526: 8a23 ldrhne r3, [r4, #16]
obj->coords.x1 = obj->coords.x2 - w + 1;
3528: f1c5 0501 rsbeq r5, r5, #1
obj->coords.x2 = obj->coords.x1 + w - 1;
352c: f105 35ff addne.w r5, r5, #4294967295 ; 0xffffffff
obj->coords.x1 = obj->coords.x2 - w + 1;
3530: bf0a itet eq
3532: 18ed addeq r5, r5, r3
obj->coords.x2 = obj->coords.x1 + w - 1;
3534: 18ed addne r5, r5, r3
obj->coords.x1 = obj->coords.x2 - w + 1;
3536: 8225 strheq r5, [r4, #16]
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
3538: 69e3 ldr r3, [r4, #28]
obj->coords.x2 = obj->coords.x1 + w - 1;
353a: bf18 it ne
353c: 82a5 strhne r5, [r4, #20]
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
353e: aa02 add r2, sp, #8
3540: 2102 movs r1, #2
3542: 4620 mov r0, r4
3544: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
3546: 4b1e ldr r3, [pc, #120] ; (35c0 <lv_obj_set_size+0x100>)
3548: 4620 mov r0, r4
354a: 4798 blx r3
if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
354c: b118 cbz r0, 3556 <lv_obj_set_size+0x96>
354e: 69c3 ldr r3, [r0, #28]
3550: 4622 mov r2, r4
3552: 2101 movs r1, #1
3554: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
3556: 1d27 adds r7, r4, #4
3558: 4b1a ldr r3, [pc, #104] ; (35c4 <lv_obj_set_size+0x104>)
355a: f8df 8070 ldr.w r8, [pc, #112] ; 35cc <lv_obj_set_size+0x10c>
355e: 4638 mov r0, r7
3560: 4798 blx r3
3562: 4605 mov r5, r0
3564: b95d cbnz r5, 357e <lv_obj_set_size+0xbe>
lv_obj_invalidate(obj);
3566: 4620 mov r0, r4
3568: 47b0 blx r6
if(obj->realign.auto_realign) lv_obj_realign(obj);
356a: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
356e: 07db lsls r3, r3, #31
3570: d502 bpl.n 3578 <lv_obj_set_size+0xb8>
3572: 4b15 ldr r3, [pc, #84] ; (35c8 <lv_obj_set_size+0x108>)
3574: 4620 mov r0, r4
3576: 4798 blx r3
}
3578: b004 add sp, #16
357a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, &ori);
357e: 69eb ldr r3, [r5, #28]
3580: aa02 add r2, sp, #8
3582: 2103 movs r1, #3
3584: 4628 mov r0, r5
3586: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
3588: 4629 mov r1, r5
358a: 4638 mov r0, r7
358c: 47c0 blx r8
358e: 4605 mov r5, r0
3590: e7e8 b.n 3564 <lv_obj_set_size+0xa4>
3592: bf00 nop
3594: 00001795 .word 0x00001795
3598: 0001f5f9 .word 0x0001f5f9
359c: 0001ee9f .word 0x0001ee9f
35a0: 0000e931 .word 0x0000e931
35a4: 0001ef03 .word 0x0001ef03
35a8: 0000179d .word 0x0000179d
35ac: 0000239d .word 0x0000239d
35b0: 000023ed .word 0x000023ed
35b4: 00002739 .word 0x00002739
35b8: 00002285 .word 0x00002285
35bc: 0000307d .word 0x0000307d
35c0: 000020d5 .word 0x000020d5
35c4: 0000e6f1 .word 0x0000e6f1
35c8: 00002c91 .word 0x00002c91
35cc: 0000e6fd .word 0x0000e6fd
000035d0 <lv_obj_set_height>:
{
35d0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
35d2: 4b0f ldr r3, [pc, #60] ; (3610 <lv_obj_set_height+0x40>)
{
35d4: 4604 mov r4, r0
35d6: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
35d8: 4798 blx r3
35da: 4605 mov r5, r0
35dc: b968 cbnz r0, 35fa <lv_obj_set_height+0x2a>
35de: 4b0d ldr r3, [pc, #52] ; (3614 <lv_obj_set_height+0x44>)
35e0: 490d ldr r1, [pc, #52] ; (3618 <lv_obj_set_height+0x48>)
35e2: 9300 str r3, [sp, #0]
35e4: f240 3227 movw r2, #807 ; 0x327
35e8: 2003 movs r0, #3
35ea: 4e0c ldr r6, [pc, #48] ; (361c <lv_obj_set_height+0x4c>)
35ec: 47b0 blx r6
35ee: 480c ldr r0, [pc, #48] ; (3620 <lv_obj_set_height+0x50>)
35f0: 490c ldr r1, [pc, #48] ; (3624 <lv_obj_set_height+0x54>)
35f2: 4622 mov r2, r4
35f4: 462b mov r3, r5
35f6: 4788 blx r1
35f8: e7fe b.n 35f8 <lv_obj_set_height+0x28>
lv_obj_set_size(obj, lv_obj_get_width(obj), h);
35fa: 4b0b ldr r3, [pc, #44] ; (3628 <lv_obj_set_height+0x58>)
35fc: 4620 mov r0, r4
35fe: 4798 blx r3
3600: 4b0a ldr r3, [pc, #40] ; (362c <lv_obj_set_height+0x5c>)
3602: 4601 mov r1, r0
3604: 4632 mov r2, r6
3606: 4620 mov r0, r4
}
3608: b002 add sp, #8
360a: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_size(obj, lv_obj_get_width(obj), h);
360e: 4718 bx r3
3610: 00001795 .word 0x00001795
3614: 0001f61a .word 0x0001f61a
3618: 0001ee9f .word 0x0001ee9f
361c: 0000e931 .word 0x0000e931
3620: 0001ef03 .word 0x0001ef03
3624: 0000179d .word 0x0000179d
3628: 0000239d .word 0x0000239d
362c: 000034c1 .word 0x000034c1
00003630 <lv_obj_is_protected>:
{
3630: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3632: 4b0e ldr r3, [pc, #56] ; (366c <lv_obj_is_protected+0x3c>)
{
3634: 4604 mov r4, r0
3636: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3638: 4798 blx r3
363a: 4605 mov r5, r0
363c: b968 cbnz r0, 365a <lv_obj_is_protected+0x2a>
363e: 4b0c ldr r3, [pc, #48] ; (3670 <lv_obj_is_protected+0x40>)
3640: 490c ldr r1, [pc, #48] ; (3674 <lv_obj_is_protected+0x44>)
3642: 9300 str r3, [sp, #0]
3644: f640 22d7 movw r2, #2775 ; 0xad7
3648: 2003 movs r0, #3
364a: 4e0b ldr r6, [pc, #44] ; (3678 <lv_obj_is_protected+0x48>)
364c: 47b0 blx r6
364e: 480b ldr r0, [pc, #44] ; (367c <lv_obj_is_protected+0x4c>)
3650: 490b ldr r1, [pc, #44] ; (3680 <lv_obj_is_protected+0x50>)
3652: 4622 mov r2, r4
3654: 462b mov r3, r5
3656: 4788 blx r1
3658: e7fe b.n 3658 <lv_obj_is_protected+0x28>
return (obj->protect & prot) == 0 ? false : true;
365a: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
365e: 421e tst r6, r3
}
3660: bf14 ite ne
3662: 2001 movne r0, #1
3664: 2000 moveq r0, #0
3666: b002 add sp, #8
3668: bd70 pop {r4, r5, r6, pc}
366a: bf00 nop
366c: 00001795 .word 0x00001795
3670: 0001f63f .word 0x0001f63f
3674: 0001ee9f .word 0x0001ee9f
3678: 0000e931 .word 0x0000e931
367c: 0001ef03 .word 0x0001ef03
3680: 0000179d .word 0x0000179d
00003684 <lv_obj_get_state>:
{
3684: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3686: 4b13 ldr r3, [pc, #76] ; (36d4 <lv_obj_get_state+0x50>)
{
3688: 4604 mov r4, r0
368a: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
368c: 4798 blx r3
368e: 4606 mov r6, r0
3690: b968 cbnz r0, 36ae <lv_obj_get_state+0x2a>
3692: 4b11 ldr r3, [pc, #68] ; (36d8 <lv_obj_get_state+0x54>)
3694: 4911 ldr r1, [pc, #68] ; (36dc <lv_obj_get_state+0x58>)
3696: 9300 str r3, [sp, #0]
3698: f640 22de movw r2, #2782 ; 0xade
369c: 2003 movs r0, #3
369e: 4d10 ldr r5, [pc, #64] ; (36e0 <lv_obj_get_state+0x5c>)
36a0: 47a8 blx r5
36a2: 4810 ldr r0, [pc, #64] ; (36e4 <lv_obj_get_state+0x60>)
36a4: 4910 ldr r1, [pc, #64] ; (36e8 <lv_obj_get_state+0x64>)
36a6: 4622 mov r2, r4
36a8: 4633 mov r3, r6
36aa: 4788 blx r1
36ac: e7fe b.n 36ac <lv_obj_get_state+0x28>
if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state;
36ae: 2d3f cmp r5, #63 ; 0x3f
36b0: d803 bhi.n 36ba <lv_obj_get_state+0x36>
36b2: f894 003d ldrb.w r0, [r4, #61] ; 0x3d
}
36b6: b004 add sp, #16
36b8: bd70 pop {r4, r5, r6, pc}
info.result = LV_STATE_DEFAULT;
36ba: 2300 movs r3, #0
36bc: f88d 300d strb.w r3, [sp, #13]
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
36c0: aa03 add r2, sp, #12
36c2: 4b0a ldr r3, [pc, #40] ; (36ec <lv_obj_get_state+0x68>)
info.part = part;
36c4: f88d 500c strb.w r5, [sp, #12]
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
36c8: 2109 movs r1, #9
36ca: 4620 mov r0, r4
36cc: 4798 blx r3
return info.result;
36ce: f89d 000d ldrb.w r0, [sp, #13]
36d2: e7f0 b.n 36b6 <lv_obj_get_state+0x32>
36d4: 00001795 .word 0x00001795
36d8: 0001f653 .word 0x0001f653
36dc: 0001ee9f .word 0x0001ee9f
36e0: 0000e931 .word 0x0000e931
36e4: 0001ef03 .word 0x0001ef03
36e8: 0000179d .word 0x0000179d
36ec: 00001fd5 .word 0x00001fd5
000036f0 <_lv_obj_get_style_int>:
{
36f0: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
36f4: f8df a094 ldr.w sl, [pc, #148] ; 378c <_lv_obj_get_style_int+0x9c>
res = _lv_style_list_get_int(dsc, prop, &value_act);
36f8: f8df b094 ldr.w fp, [pc, #148] ; 3790 <_lv_obj_get_style_int+0xa0>
{
36fc: 4605 mov r5, r0
36fe: 460e mov r6, r1
3700: 4617 mov r7, r2
attr.full = prop_ori >> 8;
3702: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
3706: 4614 mov r4, r2
3708: b96d cbnz r5, 3726 <_lv_obj_get_style_int+0x36>
prop = prop & (~LV_STYLE_STATE_MASK);
370a: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
370e: 2c22 cmp r4, #34 ; 0x22
prop = prop & (~LV_STYLE_STATE_MASK);
3710: b2a3 uxth r3, r4
switch(prop) {
3712: d030 beq.n 3776 <_lv_obj_get_style_int+0x86>
3714: d828 bhi.n 3768 <_lv_obj_get_style_int+0x78>
3716: 2b03 cmp r3, #3
3718: d02f beq.n 377a <_lv_obj_get_style_int+0x8a>
return LV_IMG_ZOOM_NONE;
371a: 2b07 cmp r3, #7
371c: bf14 ite ne
371e: 2000 movne r0, #0
3720: f44f 7080 moveq.w r0, #256 ; 0x100
3724: e013 b.n 374e <_lv_obj_get_style_int+0x5e>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3726: 4b17 ldr r3, [pc, #92] ; (3784 <_lv_obj_get_style_int+0x94>)
3728: 4631 mov r1, r6
372a: 4628 mov r0, r5
372c: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
372e: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3730: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
3732: 4628 mov r0, r5
3734: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3736: eb07 2000 add.w r0, r7, r0, lsl #8
373a: b284 uxth r4, r0
res = _lv_style_list_get_int(dsc, prop, &value_act);
373c: f10d 0206 add.w r2, sp, #6
3740: 4621 mov r1, r4
3742: 4648 mov r0, r9
3744: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
3746: 2801 cmp r0, #1
3748: d104 bne.n 3754 <_lv_obj_get_style_int+0x64>
374a: f9bd 0006 ldrsh.w r0, [sp, #6]
}
374e: b003 add sp, #12
3750: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
3754: f018 0f80 tst.w r8, #128 ; 0x80
3758: d0d7 beq.n 370a <_lv_obj_get_style_int+0x1a>
if(part != LV_OBJ_PART_MAIN) {
375a: b91e cbnz r6, 3764 <_lv_obj_get_style_int+0x74>
parent = lv_obj_get_parent(parent);
375c: 4628 mov r0, r5
375e: 4b0a ldr r3, [pc, #40] ; (3788 <_lv_obj_get_style_int+0x98>)
3760: 4798 blx r3
3762: 4605 mov r5, r0
{
3764: 2600 movs r6, #0
3766: e7cf b.n 3708 <_lv_obj_get_style_int+0x18>
switch(prop) {
3768: 2b31 cmp r3, #49 ; 0x31
376a: d008 beq.n 377e <_lv_obj_get_style_int+0x8e>
return LV_DPI / 8;
376c: 2bc0 cmp r3, #192 ; 0xc0
376e: bf14 ite ne
3770: 2000 movne r0, #0
3772: 2010 moveq r0, #16
3774: e7eb b.n 374e <_lv_obj_get_style_int+0x5e>
return 255;
3776: 20ff movs r0, #255 ; 0xff
3778: e7e9 b.n 374e <_lv_obj_get_style_int+0x5e>
switch(prop) {
377a: 2006 movs r0, #6
377c: e7e7 b.n 374e <_lv_obj_get_style_int+0x5e>
return LV_BORDER_SIDE_FULL;
377e: 200f movs r0, #15
3780: e7e5 b.n 374e <_lv_obj_get_style_int+0x5e>
3782: bf00 nop
3784: 0000243d .word 0x0000243d
3788: 000020d5 .word 0x000020d5
378c: 00003685 .word 0x00003685
3790: 00005e89 .word 0x00005e89
00003794 <_lv_obj_get_style_color>:
{
3794: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
3798: f8df a074 ldr.w sl, [pc, #116] ; 3810 <_lv_obj_get_style_color+0x7c>
res = _lv_style_list_get_color(dsc, prop, &value_act);
379c: f8df b074 ldr.w fp, [pc, #116] ; 3814 <_lv_obj_get_style_color+0x80>
{
37a0: 4605 mov r5, r0
37a2: 460e mov r6, r1
37a4: 4617 mov r7, r2
attr.full = prop_ori >> 8;
37a6: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
37aa: 4614 mov r4, r2
37ac: b94d cbnz r5, 37c2 <_lv_obj_get_style_color+0x2e>
prop = prop & (~LV_STYLE_STATE_MASK);
37ae: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
37b2: 3c29 subs r4, #41 ; 0x29
37b4: 2c01 cmp r4, #1
return LV_COLOR_WHITE;
37b6: bf96 itet ls
37b8: 4b12 ldrls r3, [pc, #72] ; (3804 <_lv_obj_get_style_color+0x70>)
return LV_COLOR_BLACK;
37ba: 2000 movhi r0, #0
return LV_COLOR_WHITE;
37bc: f8b3 0602 ldrhls.w r0, [r3, #1538] ; 0x602
return LV_COLOR_BLACK;
37c0: e012 b.n 37e8 <_lv_obj_get_style_color+0x54>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
37c2: 4b11 ldr r3, [pc, #68] ; (3808 <_lv_obj_get_style_color+0x74>)
37c4: 4631 mov r1, r6
37c6: 4628 mov r0, r5
37c8: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
37ca: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
37cc: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
37ce: 4628 mov r0, r5
37d0: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
37d2: eb07 2000 add.w r0, r7, r0, lsl #8
37d6: b284 uxth r4, r0
res = _lv_style_list_get_color(dsc, prop, &value_act);
37d8: aa01 add r2, sp, #4
37da: 4621 mov r1, r4
37dc: 4648 mov r0, r9
37de: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
37e0: 2801 cmp r0, #1
37e2: d104 bne.n 37ee <_lv_obj_get_style_color+0x5a>
37e4: f8bd 0004 ldrh.w r0, [sp, #4]
}
37e8: b003 add sp, #12
37ea: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
37ee: f018 0f80 tst.w r8, #128 ; 0x80
37f2: d0dc beq.n 37ae <_lv_obj_get_style_color+0x1a>
if(part != LV_OBJ_PART_MAIN) {
37f4: b91e cbnz r6, 37fe <_lv_obj_get_style_color+0x6a>
parent = lv_obj_get_parent(parent);
37f6: 4628 mov r0, r5
37f8: 4b04 ldr r3, [pc, #16] ; (380c <_lv_obj_get_style_color+0x78>)
37fa: 4798 blx r3
37fc: 4605 mov r5, r0
{
37fe: 2600 movs r6, #0
3800: e7d4 b.n 37ac <_lv_obj_get_style_color+0x18>
3802: bf00 nop
3804: 0001f0a6 .word 0x0001f0a6
3808: 0000243d .word 0x0000243d
380c: 000020d5 .word 0x000020d5
3810: 00003685 .word 0x00003685
3814: 00005f11 .word 0x00005f11
00003818 <_lv_obj_get_style_opa>:
{
3818: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
381c: f8df a080 ldr.w sl, [pc, #128] ; 38a0 <_lv_obj_get_style_opa+0x88>
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3820: f8df b080 ldr.w fp, [pc, #128] ; 38a4 <_lv_obj_get_style_opa+0x8c>
{
3824: 4605 mov r5, r0
3826: 460e mov r6, r1
3828: 4617 mov r7, r2
attr.full = prop_ori >> 8;
382a: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
382e: 4614 mov r4, r2
3830: b975 cbnz r5, 3850 <_lv_obj_get_style_opa+0x38>
prop = prop & (~LV_STYLE_STATE_MASK);
3832: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
3836: 2c6d cmp r4, #109 ; 0x6d
prop = prop & (~LV_STYLE_STATE_MASK);
3838: b2a0 uxth r0, r4
switch(prop) {
383a: d02a beq.n 3892 <_lv_obj_get_style_opa+0x7a>
383c: f248 03ad movw r3, #32941 ; 0x80ad
3840: 4298 cmp r0, r3
3842: d026 beq.n 3892 <_lv_obj_get_style_opa+0x7a>
3844: 382c subs r0, #44 ; 0x2c
3846: bf18 it ne
3848: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
384c: b2c0 uxtb r0, r0
384e: e013 b.n 3878 <_lv_obj_get_style_opa+0x60>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3850: 4b11 ldr r3, [pc, #68] ; (3898 <_lv_obj_get_style_opa+0x80>)
3852: 4631 mov r1, r6
3854: 4628 mov r0, r5
3856: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
3858: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
385a: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
385c: 4628 mov r0, r5
385e: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3860: eb07 2000 add.w r0, r7, r0, lsl #8
3864: b284 uxth r4, r0
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3866: f10d 0207 add.w r2, sp, #7
386a: 4621 mov r1, r4
386c: 4648 mov r0, r9
386e: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
3870: 2801 cmp r0, #1
3872: d104 bne.n 387e <_lv_obj_get_style_opa+0x66>
3874: f89d 0007 ldrb.w r0, [sp, #7]
}
3878: b003 add sp, #12
387a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
387e: f018 0f80 tst.w r8, #128 ; 0x80
3882: d0d6 beq.n 3832 <_lv_obj_get_style_opa+0x1a>
if(part != LV_OBJ_PART_MAIN) {
3884: b91e cbnz r6, 388e <_lv_obj_get_style_opa+0x76>
parent = lv_obj_get_parent(parent);
3886: 4628 mov r0, r5
3888: 4b04 ldr r3, [pc, #16] ; (389c <_lv_obj_get_style_opa+0x84>)
388a: 4798 blx r3
388c: 4605 mov r5, r0
{
388e: 2600 movs r6, #0
3890: e7ce b.n 3830 <_lv_obj_get_style_opa+0x18>
return LV_OPA_TRANSP;
3892: 2000 movs r0, #0
3894: e7f0 b.n 3878 <_lv_obj_get_style_opa+0x60>
3896: bf00 nop
3898: 0000243d .word 0x0000243d
389c: 000020d5 .word 0x000020d5
38a0: 00003685 .word 0x00003685
38a4: 00005f99 .word 0x00005f99
000038a8 <_lv_obj_get_style_ptr>:
{
38a8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
38ac: f8df a084 ldr.w sl, [pc, #132] ; 3934 <_lv_obj_get_style_ptr+0x8c>
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
38b0: f8df b084 ldr.w fp, [pc, #132] ; 3938 <_lv_obj_get_style_ptr+0x90>
{
38b4: 4605 mov r5, r0
38b6: 460e mov r6, r1
38b8: 4617 mov r7, r2
attr.full = prop_ori >> 8;
38ba: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
38be: 4614 mov r4, r2
38c0: b96d cbnz r5, 38de <_lv_obj_get_style_ptr+0x36>
prop = prop & (~LV_STYLE_STATE_MASK);
38c2: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
38c6: 2cbe cmp r4, #190 ; 0xbe
prop = prop & (~LV_STYLE_STATE_MASK);
38c8: b2a3 uxth r3, r4
switch(prop) {
38ca: d027 beq.n 391c <_lv_obj_get_style_ptr+0x74>
38cc: f248 028e movw r2, #32910 ; 0x808e
38d0: 4293 cmp r3, r2
38d2: d001 beq.n 38d8 <_lv_obj_get_style_ptr+0x30>
38d4: 2b7e cmp r3, #126 ; 0x7e
38d6: d123 bne.n 3920 <_lv_obj_get_style_ptr+0x78>
return lv_theme_get_font_normal();
38d8: 4b12 ldr r3, [pc, #72] ; (3924 <_lv_obj_get_style_ptr+0x7c>)
38da: 4798 blx r3
38dc: e011 b.n 3902 <_lv_obj_get_style_ptr+0x5a>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
38de: 4b12 ldr r3, [pc, #72] ; (3928 <_lv_obj_get_style_ptr+0x80>)
38e0: 4631 mov r1, r6
38e2: 4628 mov r0, r5
38e4: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
38e6: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
38e8: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
38ea: 4628 mov r0, r5
38ec: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
38ee: eb07 2000 add.w r0, r7, r0, lsl #8
38f2: b284 uxth r4, r0
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
38f4: aa01 add r2, sp, #4
38f6: 4621 mov r1, r4
38f8: 4648 mov r0, r9
38fa: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
38fc: 2801 cmp r0, #1
38fe: d103 bne.n 3908 <_lv_obj_get_style_ptr+0x60>
3900: 9801 ldr r0, [sp, #4]
}
3902: b003 add sp, #12
3904: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
3908: f018 0f80 tst.w r8, #128 ; 0x80
390c: d0d9 beq.n 38c2 <_lv_obj_get_style_ptr+0x1a>
if(part != LV_OBJ_PART_MAIN) {
390e: b91e cbnz r6, 3918 <_lv_obj_get_style_ptr+0x70>
parent = lv_obj_get_parent(parent);
3910: 4628 mov r0, r5
3912: 4b06 ldr r3, [pc, #24] ; (392c <_lv_obj_get_style_ptr+0x84>)
3914: 4798 blx r3
3916: 4605 mov r5, r0
{
3918: 2600 movs r6, #0
391a: e7d1 b.n 38c0 <_lv_obj_get_style_ptr+0x18>
return &lv_anim_path_def;
391c: 4804 ldr r0, [pc, #16] ; (3930 <_lv_obj_get_style_ptr+0x88>)
391e: e7f0 b.n 3902 <_lv_obj_get_style_ptr+0x5a>
switch(prop) {
3920: 2000 movs r0, #0
3922: e7ee b.n 3902 <_lv_obj_get_style_ptr+0x5a>
3924: 00010339 .word 0x00010339
3928: 0000243d .word 0x0000243d
392c: 000020d5 .word 0x000020d5
3930: 00023f68 .word 0x00023f68
3934: 00003685 .word 0x00003685
3938: 00006021 .word 0x00006021
0000393c <trans_anim_start_cb>:
{
393c: b570 push {r4, r5, r6, lr}
lv_style_trans_t * tr = a->var;
393e: 6804 ldr r4, [r0, #0]
lv_style_property_t prop_tmp = tr->prop;
3940: 88a5 ldrh r5, [r4, #4]
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3942: 6820 ldr r0, [r4, #0]
3944: 79a1 ldrb r1, [r4, #6]
3946: f005 030f and.w r3, r5, #15
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
394a: 2b08 cmp r3, #8
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
394c: 462a mov r2, r5
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
394e: d80c bhi.n 396a <trans_anim_start_cb+0x2e>
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3950: 4b0d ldr r3, [pc, #52] ; (3988 <trans_anim_start_cb+0x4c>)
3952: 4798 blx r3
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
3954: 8120 strh r0, [r4, #8]
tr->prop = 0;
3956: 2300 movs r3, #0
3958: 80a3 strh r3, [r4, #4]
trans_del(tr->obj, tr->part, prop_tmp, tr);
395a: 79a1 ldrb r1, [r4, #6]
395c: 6820 ldr r0, [r4, #0]
395e: 4e0b ldr r6, [pc, #44] ; (398c <trans_anim_start_cb+0x50>)
3960: 4623 mov r3, r4
3962: 462a mov r2, r5
3964: 47b0 blx r6
tr->prop = prop_tmp;
3966: 80a5 strh r5, [r4, #4]
}
3968: bd70 pop {r4, r5, r6, pc}
else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
396a: 2b0b cmp r3, #11
396c: d802 bhi.n 3974 <trans_anim_start_cb+0x38>
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
396e: 4b08 ldr r3, [pc, #32] ; (3990 <trans_anim_start_cb+0x54>)
3970: 4798 blx r3
3972: e7ef b.n 3954 <trans_anim_start_cb+0x18>
else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3974: 2b0d cmp r3, #13
3976: d803 bhi.n 3980 <trans_anim_start_cb+0x44>
tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp);
3978: 4b06 ldr r3, [pc, #24] ; (3994 <trans_anim_start_cb+0x58>)
397a: 4798 blx r3
397c: 7220 strb r0, [r4, #8]
397e: e7ea b.n 3956 <trans_anim_start_cb+0x1a>
tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp);
3980: 4b05 ldr r3, [pc, #20] ; (3998 <trans_anim_start_cb+0x5c>)
3982: 4798 blx r3
3984: 60a0 str r0, [r4, #8]
3986: e7e6 b.n 3956 <trans_anim_start_cb+0x1a>
3988: 000036f1 .word 0x000036f1
398c: 00002465 .word 0x00002465
3990: 00003795 .word 0x00003795
3994: 00003819 .word 0x00003819
3998: 000038a9 .word 0x000038a9
0000399c <lv_obj_set_state>:
{
399c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(obj->state == new_state) return;
39a0: f890 303d ldrb.w r3, [r0, #61] ; 0x3d
39a4: 428b cmp r3, r1
{
39a6: b09f sub sp, #124 ; 0x7c
39a8: 4604 mov r4, r0
39aa: 4688 mov r8, r1
if(obj->state == new_state) return;
39ac: f000 8242 beq.w 3e34 <lv_obj_set_state+0x498>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
39b0: 4b95 ldr r3, [pc, #596] ; (3c08 <lv_obj_set_state+0x26c>)
39b2: 4798 blx r3
39b4: 4605 mov r5, r0
39b6: b968 cbnz r0, 39d4 <lv_obj_set_state+0x38>
39b8: 4b94 ldr r3, [pc, #592] ; (3c0c <lv_obj_set_state+0x270>)
39ba: 4995 ldr r1, [pc, #596] ; (3c10 <lv_obj_set_state+0x274>)
39bc: 9300 str r3, [sp, #0]
39be: f240 6237 movw r2, #1591 ; 0x637
39c2: 2003 movs r0, #3
39c4: 4e93 ldr r6, [pc, #588] ; (3c14 <lv_obj_set_state+0x278>)
39c6: 47b0 blx r6
39c8: 4893 ldr r0, [pc, #588] ; (3c18 <lv_obj_set_state+0x27c>)
39ca: 4994 ldr r1, [pc, #592] ; (3c1c <lv_obj_set_state+0x280>)
39cc: 4622 mov r2, r4
39ce: 462b mov r3, r5
39d0: 4788 blx r1
39d2: e7fe b.n 39d2 <lv_obj_set_state+0x36>
lv_state_t prev_state = obj->state;
39d4: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
39d8: 9302 str r3, [sp, #8]
obj->state = new_state;
39da: 2300 movs r3, #0
39dc: f884 803d strb.w r8, [r4, #61] ; 0x3d
39e0: 9303 str r3, [sp, #12]
39e2: f89d 600c ldrb.w r6, [sp, #12]
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
39e6: 4b8e ldr r3, [pc, #568] ; (3c20 <lv_obj_set_state+0x284>)
39e8: 4631 mov r1, r6
39ea: 4620 mov r0, r4
39ec: 4798 blx r3
if(style_list == NULL) break; /*No more style lists*/
39ee: 9005 str r0, [sp, #20]
39f0: b140 cbz r0, 3a04 <lv_obj_set_state+0x68>
if(style_list->ignore_trans) continue;
39f2: 7947 ldrb r7, [r0, #5]
39f4: f017 0708 ands.w r7, r7, #8
39f8: d00b beq.n 3a12 <lv_obj_set_state+0x76>
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
39fa: 9b03 ldr r3, [sp, #12]
39fc: 3301 adds r3, #1
39fe: 2b40 cmp r3, #64 ; 0x40
3a00: 9303 str r3, [sp, #12]
3a02: d1ee bne.n 39e2 <lv_obj_set_state+0x46>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3a04: 4b87 ldr r3, [pc, #540] ; (3c24 <lv_obj_set_state+0x288>)
3a06: 21ff movs r1, #255 ; 0xff
3a08: 4620 mov r0, r4
}
3a0a: b01f add sp, #124 ; 0x7c
3a0c: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3a10: 4718 bx r3
_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)
3a12: 4d85 ldr r5, [pc, #532] ; (3c28 <lv_obj_set_state+0x28c>)
3a14: 22b0 movs r2, #176 ; 0xb0
3a16: 4631 mov r1, r6
3a18: 4620 mov r0, r4
3a1a: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3a1c: 22b1 movs r2, #177 ; 0xb1
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
3a1e: 9009 str r0, [sp, #36] ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3a20: 4631 mov r1, r6
3a22: 4620 mov r0, r4
3a24: 47a8 blx r5
_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)
3a26: 4b81 ldr r3, [pc, #516] ; (3c2c <lv_obj_set_state+0x290>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3a28: 9008 str r0, [sp, #32]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
3a2a: 22be movs r2, #190 ; 0xbe
3a2c: 4631 mov r1, r6
3a2e: 4620 mov r0, r4
3a30: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
3a32: 22b2 movs r2, #178 ; 0xb2
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
3a34: 9006 str r0, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
3a36: 4631 mov r1, r6
3a38: 4620 mov r0, r4
3a3a: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
3a3c: 22b3 movs r2, #179 ; 0xb3
props[0] = lv_obj_get_style_transition_prop_1(obj, part);
3a3e: f8ad 002c strh.w r0, [sp, #44] ; 0x2c
3a42: 4631 mov r1, r6
3a44: 4620 mov r0, r4
3a46: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
3a48: 22b4 movs r2, #180 ; 0xb4
props[1] = lv_obj_get_style_transition_prop_2(obj, part);
3a4a: f8ad 002e strh.w r0, [sp, #46] ; 0x2e
3a4e: 4631 mov r1, r6
3a50: 4620 mov r0, r4
3a52: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
3a54: 22b5 movs r2, #181 ; 0xb5
props[2] = lv_obj_get_style_transition_prop_3(obj, part);
3a56: f8ad 0030 strh.w r0, [sp, #48] ; 0x30
3a5a: 4631 mov r1, r6
3a5c: 4620 mov r0, r4
3a5e: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
3a60: 22b6 movs r2, #182 ; 0xb6
props[3] = lv_obj_get_style_transition_prop_4(obj, part);
3a62: f8ad 0032 strh.w r0, [sp, #50] ; 0x32
3a66: 4631 mov r1, r6
3a68: 4620 mov r0, r4
3a6a: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
3a6c: 22b7 movs r2, #183 ; 0xb7
props[4] = lv_obj_get_style_transition_prop_5(obj, part);
3a6e: f8ad 0034 strh.w r0, [sp, #52] ; 0x34
3a72: 4631 mov r1, r6
3a74: 4620 mov r0, r4
3a76: 47a8 blx r5
props[5] = lv_obj_get_style_transition_prop_6(obj, part);
3a78: 9704 str r7, [sp, #16]
3a7a: f8ad 0036 strh.w r0, [sp, #54] ; 0x36
if(props[i] != 0) {
3a7e: 9a04 ldr r2, [sp, #16]
3a80: ab0b add r3, sp, #44 ; 0x2c
3a82: f833 7012 ldrh.w r7, [r3, r2, lsl #1]
3a86: 2f00 cmp r7, #0
3a88: f000 80b6 beq.w 3bf8 <lv_obj_set_state+0x25c>
_lv_style_list_add_trans_style(style_list);
3a8c: 4b68 ldr r3, [pc, #416] ; (3c30 <lv_obj_set_state+0x294>)
3a8e: 9805 ldr r0, [sp, #20]
3a90: 4798 blx r3
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3a92: 4b63 ldr r3, [pc, #396] ; (3c20 <lv_obj_set_state+0x284>)
3a94: 4631 mov r1, r6
3a96: 4620 mov r0, r4
3a98: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3a9a: 4b66 ldr r3, [pc, #408] ; (3c34 <lv_obj_set_state+0x298>)
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3a9c: 4605 mov r5, r0
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3a9e: 4798 blx r3
3aa0: f007 030f and.w r3, r7, #15
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3aa4: 2b08 cmp r3, #8
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3aa6: 4682 mov sl, r0
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3aa8: f200 80dc bhi.w 3c64 <lv_obj_set_state+0x2c8>
style_list->skip_trans = 1;
3aac: 796b ldrb r3, [r5, #5]
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3aae: f8df b178 ldr.w fp, [pc, #376] ; 3c28 <lv_obj_set_state+0x28c>
style_list->skip_trans = 1;
3ab2: f043 0304 orr.w r3, r3, #4
3ab6: 716b strb r3, [r5, #5]
obj->state = prev_state;
3ab8: 9b02 ldr r3, [sp, #8]
3aba: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3abe: 463a mov r2, r7
3ac0: 4631 mov r1, r6
3ac2: 4620 mov r0, r4
3ac4: 47d8 blx fp
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3ac6: 463a mov r2, r7
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3ac8: 9007 str r0, [sp, #28]
obj->state = new_state;
3aca: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3ace: 4631 mov r1, r6
3ad0: 4620 mov r0, r4
3ad2: 47d8 blx fp
style_list->skip_trans = 0;
3ad4: 796a ldrb r2, [r5, #5]
if(int1 == int2) return NULL;
3ad6: 9b07 ldr r3, [sp, #28]
style_list->skip_trans = 0;
3ad8: f36f 0282 bfc r2, #2, #1
if(int1 == int2) return NULL;
3adc: 4283 cmp r3, r0
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3ade: 4681 mov r9, r0
style_list->skip_trans = 0;
3ae0: 716a strb r2, [r5, #5]
if(int1 == int2) return NULL;
3ae2: f000 8089 beq.w 3bf8 <lv_obj_set_state+0x25c>
obj->state = prev_state;
3ae6: 9b02 ldr r3, [sp, #8]
3ae8: f884 303d strb.w r3, [r4, #61] ; 0x3d
int1 = _lv_obj_get_style_int(obj, part, prop);
3aec: 463a mov r2, r7
3aee: 4631 mov r1, r6
3af0: 4620 mov r0, r4
3af2: 47d8 blx fp
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3af4: 4b50 ldr r3, [pc, #320] ; (3c38 <lv_obj_set_state+0x29c>)
obj->state = new_state;
3af6: f884 803d strb.w r8, [r4, #61] ; 0x3d
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3afa: 4602 mov r2, r0
int1 = _lv_obj_get_style_int(obj, part, prop);
3afc: 4683 mov fp, r0
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3afe: 4639 mov r1, r7
3b00: 4650 mov r0, sl
3b02: 4798 blx r3
if(prop == LV_STYLE_RADIUS) {
3b04: 2f01 cmp r7, #1
3b06: d122 bne.n 3b4e <lv_obj_set_state+0x1b2>
if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) {
3b08: f647 73ff movw r3, #32767 ; 0x7fff
3b0c: 459b cmp fp, r3
3b0e: d001 beq.n 3b14 <lv_obj_set_state+0x178>
3b10: 4599 cmp r9, r3
3b12: d11c bne.n 3b4e <lv_obj_set_state+0x1b2>
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
3b14: f8df a148 ldr.w sl, [pc, #328] ; 3c60 <lv_obj_set_state+0x2c4>
3b18: 4620 mov r0, r4
3b1a: 47d0 blx sl
3b1c: eb00 70d0 add.w r0, r0, r0, lsr #31
3b20: f340 054f sbfx r5, r0, #1, #16
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3b24: 4620 mov r0, r4
3b26: 47d0 blx sl
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b28: f647 72ff movw r2, #32767 ; 0x7fff
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3b2c: eb00 70d0 add.w r0, r0, r0, lsr #31
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b30: 4593 cmp fp, r2
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3b32: f340 034f sbfx r3, r0, #1, #16
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b36: d12a bne.n 3b8e <lv_obj_set_state+0x1f2>
3b38: 429d cmp r5, r3
3b3a: da1e bge.n 3b7a <lv_obj_set_state+0x1de>
3b3c: f105 0b01 add.w fp, r5, #1
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b40: 4591 cmp r9, r2
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b42: fa0f fb8b sxth.w fp, fp
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b46: d102 bne.n 3b4e <lv_obj_set_state+0x1b2>
3b48: 3501 adds r5, #1
3b4a: fa0f f985 sxth.w r9, r5
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3b4e: 4b3b ldr r3, [pc, #236] ; (3c3c <lv_obj_set_state+0x2a0>)
3b50: 483b ldr r0, [pc, #236] ; (3c40 <lv_obj_set_state+0x2a4>)
3b52: 4798 blx r3
LV_ASSERT_MEM(tr);
3b54: 4b2c ldr r3, [pc, #176] ; (3c08 <lv_obj_set_state+0x26c>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3b56: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3b58: 4798 blx r3
3b5a: 4682 mov sl, r0
3b5c: b9e0 cbnz r0, 3b98 <lv_obj_set_state+0x1fc>
3b5e: 4b39 ldr r3, [pc, #228] ; (3c44 <lv_obj_set_state+0x2a8>)
3b60: 492b ldr r1, [pc, #172] ; (3c10 <lv_obj_set_state+0x274>)
3b62: 9300 str r3, [sp, #0]
3b64: f640 62b2 movw r2, #3762 ; 0xeb2
3b68: 2003 movs r0, #3
3b6a: 4c2a ldr r4, [pc, #168] ; (3c14 <lv_obj_set_state+0x278>)
3b6c: 47a0 blx r4
3b6e: 4836 ldr r0, [pc, #216] ; (3c48 <lv_obj_set_state+0x2ac>)
3b70: 492a ldr r1, [pc, #168] ; (3c1c <lv_obj_set_state+0x280>)
3b72: 462a mov r2, r5
3b74: 4653 mov r3, sl
3b76: 4788 blx r1
3b78: e7fe b.n 3b78 <lv_obj_set_state+0x1dc>
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b7a: f103 0b01 add.w fp, r3, #1
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b7e: 4591 cmp r9, r2
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b80: fa0f fb8b sxth.w fp, fp
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3b84: d1e3 bne.n 3b4e <lv_obj_set_state+0x1b2>
3b86: 3301 adds r3, #1
3b88: fa0f f983 sxth.w r9, r3
3b8c: e7df b.n 3b4e <lv_obj_set_state+0x1b2>
3b8e: 4591 cmp r9, r2
3b90: d1dd bne.n 3b4e <lv_obj_set_state+0x1b2>
3b92: 429d cmp r5, r3
3b94: daf7 bge.n 3b86 <lv_obj_set_state+0x1ea>
3b96: e7d7 b.n 3b48 <lv_obj_set_state+0x1ac>
if(tr == NULL) return NULL;
3b98: 2d00 cmp r5, #0
3b9a: d02d beq.n 3bf8 <lv_obj_set_state+0x25c>
tr->start_value._int = int1;
3b9c: f8a5 b008 strh.w fp, [r5, #8]
tr->end_value._int = int2;
3ba0: f8a5 900c strh.w r9, [r5, #12]
lv_anim_init(&a);
3ba4: 4b29 ldr r3, [pc, #164] ; (3c4c <lv_obj_set_state+0x2b0>)
tr->obj = obj;
3ba6: 602c str r4, [r5, #0]
tr->prop = props[i];
3ba8: 80af strh r7, [r5, #4]
tr->part = part;
3baa: 71ae strb r6, [r5, #6]
lv_anim_init(&a);
3bac: a80e add r0, sp, #56 ; 0x38
3bae: 4798 blx r3
* 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;
3bb0: 4b27 ldr r3, [pc, #156] ; (3c50 <lv_obj_set_state+0x2b4>)
3bb2: 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;
3bb4: 4b27 ldr r3, [pc, #156] ; (3c54 <lv_obj_set_state+0x2b8>)
3bb6: 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;
3bb8: 4b27 ldr r3, [pc, #156] ; (3c58 <lv_obj_set_state+0x2bc>)
3bba: 9311 str r3, [sp, #68] ; 0x44
a->end = end;
3bbc: 2200 movs r2, #0
3bbe: 23ff movs r3, #255 ; 0xff
3bc0: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50
a->time = duration;
3bc4: 9b09 ldr r3, [sp, #36] ; 0x24
3bc6: 9316 str r3, [sp, #88] ; 0x58
a->act_time = (int32_t)(-delay);
3bc8: 9b08 ldr r3, [sp, #32]
3bca: 9a06 ldr r2, [sp, #24]
a->var = var;
3bcc: 950e str r5, [sp, #56] ; 0x38
a->act_time = (int32_t)(-delay);
3bce: 425b negs r3, r3
3bd0: 9317 str r3, [sp, #92] ; 0x5c
3bd2: 9b06 ldr r3, [sp, #24]
3bd4: 1dd1 adds r1, r2, #7
3bd6: 3b01 subs r3, #1
uint8_t * d8 = (uint8_t *)dst;
3bd8: aa12 add r2, sp, #72 ; 0x48
*d8 = *s8;
3bda: f813 0f01 ldrb.w r0, [r3, #1]!
3bde: f802 0b01 strb.w r0, [r2], #1
while(len) {
3be2: 4299 cmp r1, r3
3be4: d1f9 bne.n 3bda <lv_obj_set_state+0x23e>
a.early_apply = 0;
3be6: f89d 306e ldrb.w r3, [sp, #110] ; 0x6e
3bea: f36f 0300 bfc r3, #0, #1
3bee: f88d 306e strb.w r3, [sp, #110] ; 0x6e
lv_anim_start(&a);
3bf2: a80e add r0, sp, #56 ; 0x38
3bf4: 4b19 ldr r3, [pc, #100] ; (3c5c <lv_obj_set_state+0x2c0>)
3bf6: 4798 blx r3
for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) {
3bf8: 9b04 ldr r3, [sp, #16]
3bfa: 3301 adds r3, #1
3bfc: 2b06 cmp r3, #6
3bfe: 9304 str r3, [sp, #16]
3c00: f47f af3d bne.w 3a7e <lv_obj_set_state+0xe2>
3c04: e6f9 b.n 39fa <lv_obj_set_state+0x5e>
3c06: bf00 nop
3c08: 00001795 .word 0x00001795
3c0c: 0001f6aa .word 0x0001f6aa
3c10: 0001ee9f .word 0x0001ee9f
3c14: 0000e931 .word 0x0000e931
3c18: 0001ef03 .word 0x0001ef03
3c1c: 0000179d .word 0x0000179d
3c20: 0000243d .word 0x0000243d
3c24: 00002d39 .word 0x00002d39
3c28: 000036f1 .word 0x000036f1
3c2c: 000038a9 .word 0x000038a9
3c30: 00005ddd .word 0x00005ddd
3c34: 00005cb5 .word 0x00005cb5
3c38: 00005875 .word 0x00005875
3c3c: 0000e661 .word 0x0000e661
3c40: 20008660 .word 0x20008660
3c44: 0001f6bb .word 0x0001f6bb
3c48: 0001ee02 .word 0x0001ee02
3c4c: 0000dcbd .word 0x0000dcbd
3c50: 00002f71 .word 0x00002f71
3c54: 0000393d .word 0x0000393d
3c58: 00002551 .word 0x00002551
3c5c: 0000dd65 .word 0x0000dd65
3c60: 0000239d .word 0x0000239d
else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3c64: 2b0b cmp r3, #11
3c66: d84b bhi.n 3d00 <lv_obj_set_state+0x364>
style_list->skip_trans = 1;
3c68: 796b ldrb r3, [r5, #5]
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3c6a: f8df b200 ldr.w fp, [pc, #512] ; 3e6c <lv_obj_set_state+0x4d0>
style_list->skip_trans = 1;
3c6e: f043 0304 orr.w r3, r3, #4
3c72: 716b strb r3, [r5, #5]
obj->state = prev_state;
3c74: 9b02 ldr r3, [sp, #8]
3c76: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3c7a: 463a mov r2, r7
3c7c: 4631 mov r1, r6
3c7e: 4620 mov r0, r4
3c80: 47d8 blx fp
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3c82: 463a mov r2, r7
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3c84: 4681 mov r9, r0
obj->state = new_state;
3c86: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3c8a: 4631 mov r1, r6
3c8c: 4620 mov r0, r4
3c8e: 47d8 blx fp
style_list->skip_trans = 0;
3c90: 796a ldrb r2, [r5, #5]
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3c92: f8ad 001c strh.w r0, [sp, #28]
style_list->skip_trans = 0;
3c96: f36f 0282 bfc r2, #2, #1
3c9a: 716a strb r2, [r5, #5]
if(c1.full == c2.full) return NULL;
3c9c: fa1f f989 uxth.w r9, r9
3ca0: b282 uxth r2, r0
3ca2: 4591 cmp r9, r2
3ca4: d0a8 beq.n 3bf8 <lv_obj_set_state+0x25c>
obj->state = prev_state;
3ca6: 9b02 ldr r3, [sp, #8]
3ca8: f884 303d strb.w r3, [r4, #61] ; 0x3d
c1 = _lv_obj_get_style_color(obj, part, prop);
3cac: 463a mov r2, r7
3cae: 4631 mov r1, r6
3cb0: 4620 mov r0, r4
3cb2: 47d8 blx fp
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
3cb4: 4639 mov r1, r7
3cb6: 4602 mov r2, r0
3cb8: 4b60 ldr r3, [pc, #384] ; (3e3c <lv_obj_set_state+0x4a0>)
obj->state = new_state;
3cba: f884 803d strb.w r8, [r4, #61] ; 0x3d
c1 = _lv_obj_get_style_color(obj, part, prop);
3cbe: 4681 mov r9, r0
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
3cc0: 4650 mov r0, sl
3cc2: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3cc4: 4b5e ldr r3, [pc, #376] ; (3e40 <lv_obj_set_state+0x4a4>)
3cc6: 485f ldr r0, [pc, #380] ; (3e44 <lv_obj_set_state+0x4a8>)
3cc8: 4798 blx r3
LV_ASSERT_MEM(tr);
3cca: 4b5f ldr r3, [pc, #380] ; (3e48 <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3ccc: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3cce: 4798 blx r3
3cd0: 4682 mov sl, r0
3cd2: b968 cbnz r0, 3cf0 <lv_obj_set_state+0x354>
3cd4: 4b5d ldr r3, [pc, #372] ; (3e4c <lv_obj_set_state+0x4b0>)
3cd6: 495e ldr r1, [pc, #376] ; (3e50 <lv_obj_set_state+0x4b4>)
3cd8: 9300 str r3, [sp, #0]
3cda: f640 62c6 movw r2, #3782 ; 0xec6
3cde: 2003 movs r0, #3
3ce0: 4c5c ldr r4, [pc, #368] ; (3e54 <lv_obj_set_state+0x4b8>)
3ce2: 47a0 blx r4
3ce4: 485c ldr r0, [pc, #368] ; (3e58 <lv_obj_set_state+0x4bc>)
3ce6: 495d ldr r1, [pc, #372] ; (3e5c <lv_obj_set_state+0x4c0>)
3ce8: 462a mov r2, r5
3cea: 4653 mov r3, sl
3cec: 4788 blx r1
3cee: e7fe b.n 3cee <lv_obj_set_state+0x352>
if(tr == NULL) return NULL;
3cf0: 2d00 cmp r5, #0
3cf2: d081 beq.n 3bf8 <lv_obj_set_state+0x25c>
tr->end_value._color = c2;
3cf4: f8bd 301c ldrh.w r3, [sp, #28]
tr->start_value._color = c1;
3cf8: f8a5 9008 strh.w r9, [r5, #8]
tr->end_value._color = c2;
3cfc: 81ab strh r3, [r5, #12]
3cfe: e751 b.n 3ba4 <lv_obj_set_state+0x208>
else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3d00: 2b0d cmp r3, #13
3d02: d849 bhi.n 3d98 <lv_obj_set_state+0x3fc>
style_list->skip_trans = 1;
3d04: 796b ldrb r3, [r5, #5]
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3d06: f8df b168 ldr.w fp, [pc, #360] ; 3e70 <lv_obj_set_state+0x4d4>
style_list->skip_trans = 1;
3d0a: f043 0304 orr.w r3, r3, #4
3d0e: 716b strb r3, [r5, #5]
obj->state = prev_state;
3d10: 9b02 ldr r3, [sp, #8]
3d12: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3d16: 463a mov r2, r7
3d18: 4631 mov r1, r6
3d1a: 4620 mov r0, r4
3d1c: 47d8 blx fp
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3d1e: 463a mov r2, r7
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3d20: 9007 str r0, [sp, #28]
obj->state = new_state;
3d22: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3d26: 4631 mov r1, r6
3d28: 4620 mov r0, r4
3d2a: 47d8 blx fp
style_list->skip_trans = 0;
3d2c: 796a ldrb r2, [r5, #5]
if(o1 == o2) return NULL;
3d2e: 9b07 ldr r3, [sp, #28]
style_list->skip_trans = 0;
3d30: f36f 0282 bfc r2, #2, #1
if(o1 == o2) return NULL;
3d34: 4283 cmp r3, r0
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3d36: 4681 mov r9, r0
style_list->skip_trans = 0;
3d38: 716a strb r2, [r5, #5]
if(o1 == o2) return NULL;
3d3a: f43f af5d beq.w 3bf8 <lv_obj_set_state+0x25c>
obj->state = prev_state;
3d3e: 9b02 ldr r3, [sp, #8]
3d40: f884 303d strb.w r3, [r4, #61] ; 0x3d
o1 = _lv_obj_get_style_opa(obj, part, prop);
3d44: 463a mov r2, r7
3d46: 4631 mov r1, r6
3d48: 4620 mov r0, r4
3d4a: 47d8 blx fp
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
3d4c: 4639 mov r1, r7
3d4e: 4602 mov r2, r0
3d50: 4b43 ldr r3, [pc, #268] ; (3e60 <lv_obj_set_state+0x4c4>)
obj->state = new_state;
3d52: f884 803d strb.w r8, [r4, #61] ; 0x3d
o1 = _lv_obj_get_style_opa(obj, part, prop);
3d56: 4683 mov fp, r0
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
3d58: 4650 mov r0, sl
3d5a: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3d5c: 4b38 ldr r3, [pc, #224] ; (3e40 <lv_obj_set_state+0x4a4>)
3d5e: 4839 ldr r0, [pc, #228] ; (3e44 <lv_obj_set_state+0x4a8>)
3d60: 4798 blx r3
LV_ASSERT_MEM(tr);
3d62: 4b39 ldr r3, [pc, #228] ; (3e48 <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3d64: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3d66: 4798 blx r3
3d68: 4682 mov sl, r0
3d6a: b968 cbnz r0, 3d88 <lv_obj_set_state+0x3ec>
3d6c: 4b37 ldr r3, [pc, #220] ; (3e4c <lv_obj_set_state+0x4b0>)
3d6e: 4938 ldr r1, [pc, #224] ; (3e50 <lv_obj_set_state+0x4b4>)
3d70: 9300 str r3, [sp, #0]
3d72: f640 62db movw r2, #3803 ; 0xedb
3d76: 2003 movs r0, #3
3d78: 4c36 ldr r4, [pc, #216] ; (3e54 <lv_obj_set_state+0x4b8>)
3d7a: 47a0 blx r4
3d7c: 4836 ldr r0, [pc, #216] ; (3e58 <lv_obj_set_state+0x4bc>)
3d7e: 4937 ldr r1, [pc, #220] ; (3e5c <lv_obj_set_state+0x4c0>)
3d80: 462a mov r2, r5
3d82: 4653 mov r3, sl
3d84: 4788 blx r1
3d86: e7fe b.n 3d86 <lv_obj_set_state+0x3ea>
if(tr == NULL) return NULL;
3d88: 2d00 cmp r5, #0
3d8a: f43f af35 beq.w 3bf8 <lv_obj_set_state+0x25c>
tr->start_value._opa = o1;
3d8e: f885 b008 strb.w fp, [r5, #8]
tr->end_value._opa = o2;
3d92: f885 900c strb.w r9, [r5, #12]
3d96: e705 b.n 3ba4 <lv_obj_set_state+0x208>
obj->state = prev_state;
3d98: 9b02 ldr r3, [sp, #8]
3d9a: f884 303d strb.w r3, [r4, #61] ; 0x3d
style_list->skip_trans = 1;
3d9e: 796b ldrb r3, [r5, #5]
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
3da0: f8df b0d0 ldr.w fp, [pc, #208] ; 3e74 <lv_obj_set_state+0x4d8>
style_list->skip_trans = 1;
3da4: f043 0304 orr.w r3, r3, #4
3da8: 716b strb r3, [r5, #5]
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
3daa: 463a mov r2, r7
3dac: 4631 mov r1, r6
3dae: 4620 mov r0, r4
3db0: 47d8 blx fp
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
3db2: 463a mov r2, r7
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
3db4: 900a str r0, [sp, #40] ; 0x28
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
3db6: 4631 mov r1, r6
obj->state = new_state;
3db8: f884 803d strb.w r8, [r4, #61] ; 0x3d
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
3dbc: 4620 mov r0, r4
3dbe: 47d8 blx fp
3dc0: 900e str r0, [sp, #56] ; 0x38
style_list->skip_trans = 0;
3dc2: 796b ldrb r3, [r5, #5]
3dc4: f36f 0382 bfc r3, #2, #1
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
3dc8: 4681 mov r9, r0
style_list->skip_trans = 0;
3dca: 716b strb r3, [r5, #5]
if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL;
3dcc: 2204 movs r2, #4
3dce: 4b25 ldr r3, [pc, #148] ; (3e64 <lv_obj_set_state+0x4c8>)
3dd0: a90e add r1, sp, #56 ; 0x38
3dd2: a80a add r0, sp, #40 ; 0x28
3dd4: 4798 blx r3
3dd6: 2800 cmp r0, #0
3dd8: f43f af0e beq.w 3bf8 <lv_obj_set_state+0x25c>
obj->state = prev_state;
3ddc: 9b02 ldr r3, [sp, #8]
3dde: f884 303d strb.w r3, [r4, #61] ; 0x3d
p1 = _lv_obj_get_style_ptr(obj, part, prop);
3de2: 463a mov r2, r7
3de4: 4631 mov r1, r6
3de6: 4620 mov r0, r4
3de8: 47d8 blx fp
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
3dea: 4639 mov r1, r7
3dec: 4602 mov r2, r0
3dee: 4b1e ldr r3, [pc, #120] ; (3e68 <lv_obj_set_state+0x4cc>)
p1 = _lv_obj_get_style_ptr(obj, part, prop);
3df0: 900a str r0, [sp, #40] ; 0x28
3df2: 4683 mov fp, r0
obj->state = new_state;
3df4: f884 803d strb.w r8, [r4, #61] ; 0x3d
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
3df8: 4650 mov r0, sl
3dfa: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3dfc: 4b10 ldr r3, [pc, #64] ; (3e40 <lv_obj_set_state+0x4a4>)
3dfe: 4811 ldr r0, [pc, #68] ; (3e44 <lv_obj_set_state+0x4a8>)
3e00: 4798 blx r3
LV_ASSERT_MEM(tr);
3e02: 4b11 ldr r3, [pc, #68] ; (3e48 <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3e04: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3e06: 4798 blx r3
3e08: 4682 mov sl, r0
3e0a: b968 cbnz r0, 3e28 <lv_obj_set_state+0x48c>
3e0c: 4b0f ldr r3, [pc, #60] ; (3e4c <lv_obj_set_state+0x4b0>)
3e0e: 4910 ldr r1, [pc, #64] ; (3e50 <lv_obj_set_state+0x4b4>)
3e10: 9300 str r3, [sp, #0]
3e12: f640 62ef movw r2, #3823 ; 0xeef
3e16: 2003 movs r0, #3
3e18: 4c0e ldr r4, [pc, #56] ; (3e54 <lv_obj_set_state+0x4b8>)
3e1a: 47a0 blx r4
3e1c: 480e ldr r0, [pc, #56] ; (3e58 <lv_obj_set_state+0x4bc>)
3e1e: 490f ldr r1, [pc, #60] ; (3e5c <lv_obj_set_state+0x4c0>)
3e20: 462a mov r2, r5
3e22: 4653 mov r3, sl
3e24: 4788 blx r1
3e26: e7fe b.n 3e26 <lv_obj_set_state+0x48a>
if(tr == NULL) return NULL;
3e28: 2d00 cmp r5, #0
3e2a: f43f aee5 beq.w 3bf8 <lv_obj_set_state+0x25c>
tr->end_value._ptr = p2;
3e2e: e9c5 b902 strd fp, r9, [r5, #8]
3e32: e6b7 b.n 3ba4 <lv_obj_set_state+0x208>
}
3e34: b01f add sp, #124 ; 0x7c
3e36: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
3e3a: bf00 nop
3e3c: 00005945 .word 0x00005945
3e40: 0000e661 .word 0x0000e661
3e44: 20008660 .word 0x20008660
3e48: 00001795 .word 0x00001795
3e4c: 0001f6bb .word 0x0001f6bb
3e50: 0001ee9f .word 0x0001ee9f
3e54: 0000e931 .word 0x0000e931
3e58: 0001ee02 .word 0x0001ee02
3e5c: 0000179d .word 0x0000179d
3e60: 00005a15 .word 0x00005a15
3e64: 000162d9 .word 0x000162d9
3e68: 00005ae9 .word 0x00005ae9
3e6c: 00003795 .word 0x00003795
3e70: 00003819 .word 0x00003819
3e74: 000038a9 .word 0x000038a9
00003e78 <lv_obj_add_state>:
{
3e78: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3e7a: 4b11 ldr r3, [pc, #68] ; (3ec0 <lv_obj_add_state+0x48>)
{
3e7c: 4604 mov r4, r0
3e7e: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3e80: 4798 blx r3
3e82: 4606 mov r6, r0
3e84: b968 cbnz r0, 3ea2 <lv_obj_add_state+0x2a>
3e86: 4b0f ldr r3, [pc, #60] ; (3ec4 <lv_obj_add_state+0x4c>)
3e88: 490f ldr r1, [pc, #60] ; (3ec8 <lv_obj_add_state+0x50>)
3e8a: 9300 str r3, [sp, #0]
3e8c: f240 627e movw r2, #1662 ; 0x67e
3e90: 2003 movs r0, #3
3e92: 4d0e ldr r5, [pc, #56] ; (3ecc <lv_obj_add_state+0x54>)
3e94: 47a8 blx r5
3e96: 480e ldr r0, [pc, #56] ; (3ed0 <lv_obj_add_state+0x58>)
3e98: 490e ldr r1, [pc, #56] ; (3ed4 <lv_obj_add_state+0x5c>)
3e9a: 4622 mov r2, r4
3e9c: 4633 mov r3, r6
3e9e: 4788 blx r1
3ea0: e7fe b.n 3ea0 <lv_obj_add_state+0x28>
lv_state_t new_state = obj->state | state;
3ea2: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
3ea6: ea43 0105 orr.w r1, r3, r5
if(obj->state != new_state) {
3eaa: ea35 0303 bics.w r3, r5, r3
3eae: d005 beq.n 3ebc <lv_obj_add_state+0x44>
lv_obj_set_state(obj, new_state);
3eb0: 4b09 ldr r3, [pc, #36] ; (3ed8 <lv_obj_add_state+0x60>)
3eb2: 4620 mov r0, r4
}
3eb4: b002 add sp, #8
3eb6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_state(obj, new_state);
3eba: 4718 bx r3
}
3ebc: b002 add sp, #8
3ebe: bd70 pop {r4, r5, r6, pc}
3ec0: 00001795 .word 0x00001795
3ec4: 0001f6c8 .word 0x0001f6c8
3ec8: 0001ee9f .word 0x0001ee9f
3ecc: 0000e931 .word 0x0000e931
3ed0: 0001ef03 .word 0x0001ef03
3ed4: 0000179d .word 0x0000179d
3ed8: 0000399d .word 0x0000399d
00003edc <lv_obj_clear_state>:
{
3edc: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3ede: 4b11 ldr r3, [pc, #68] ; (3f24 <lv_obj_clear_state+0x48>)
{
3ee0: 4604 mov r4, r0
3ee2: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3ee4: 4798 blx r3
3ee6: 4606 mov r6, r0
3ee8: b968 cbnz r0, 3f06 <lv_obj_clear_state+0x2a>
3eea: 4b0f ldr r3, [pc, #60] ; (3f28 <lv_obj_clear_state+0x4c>)
3eec: 490f ldr r1, [pc, #60] ; (3f2c <lv_obj_clear_state+0x50>)
3eee: 9300 str r3, [sp, #0]
3ef0: f240 628f movw r2, #1679 ; 0x68f
3ef4: 2003 movs r0, #3
3ef6: 4d0e ldr r5, [pc, #56] ; (3f30 <lv_obj_clear_state+0x54>)
3ef8: 47a8 blx r5
3efa: 480e ldr r0, [pc, #56] ; (3f34 <lv_obj_clear_state+0x58>)
3efc: 490e ldr r1, [pc, #56] ; (3f38 <lv_obj_clear_state+0x5c>)
3efe: 4622 mov r2, r4
3f00: 4633 mov r3, r6
3f02: 4788 blx r1
3f04: e7fe b.n 3f04 <lv_obj_clear_state+0x28>
lv_state_t new_state = obj->state & (~state);
3f06: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
if(obj->state != new_state) {
3f0a: 421d tst r5, r3
lv_state_t new_state = obj->state & (~state);
3f0c: ea23 0105 bic.w r1, r3, r5
if(obj->state != new_state) {
3f10: d005 beq.n 3f1e <lv_obj_clear_state+0x42>
lv_obj_set_state(obj, new_state);
3f12: 4b0a ldr r3, [pc, #40] ; (3f3c <lv_obj_clear_state+0x60>)
3f14: 4620 mov r0, r4
}
3f16: b002 add sp, #8
3f18: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_state(obj, new_state);
3f1c: 4718 bx r3
}
3f1e: b002 add sp, #8
3f20: bd70 pop {r4, r5, r6, pc}
3f22: bf00 nop
3f24: 00001795 .word 0x00001795
3f28: 0001f6d9 .word 0x0001f6d9
3f2c: 0001ee9f .word 0x0001ee9f
3f30: 0000e931 .word 0x0000e931
3f34: 0001ef03 .word 0x0001ef03
3f38: 0000179d .word 0x0000179d
3f3c: 0000399d .word 0x0000399d
00003f40 <lv_obj_get_signal_cb>:
{
3f40: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3f42: 4b0b ldr r3, [pc, #44] ; (3f70 <lv_obj_get_signal_cb+0x30>)
{
3f44: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3f46: 4798 blx r3
3f48: 4605 mov r5, r0
3f4a: b968 cbnz r0, 3f68 <lv_obj_get_signal_cb+0x28>
3f4c: 4b09 ldr r3, [pc, #36] ; (3f74 <lv_obj_get_signal_cb+0x34>)
3f4e: 490a ldr r1, [pc, #40] ; (3f78 <lv_obj_get_signal_cb+0x38>)
3f50: 9300 str r3, [sp, #0]
3f52: f640 22f5 movw r2, #2805 ; 0xaf5
3f56: 2003 movs r0, #3
3f58: 4e08 ldr r6, [pc, #32] ; (3f7c <lv_obj_get_signal_cb+0x3c>)
3f5a: 47b0 blx r6
3f5c: 4808 ldr r0, [pc, #32] ; (3f80 <lv_obj_get_signal_cb+0x40>)
3f5e: 4909 ldr r1, [pc, #36] ; (3f84 <lv_obj_get_signal_cb+0x44>)
3f60: 4622 mov r2, r4
3f62: 462b mov r3, r5
3f64: 4788 blx r1
3f66: e7fe b.n 3f66 <lv_obj_get_signal_cb+0x26>
}
3f68: 69e0 ldr r0, [r4, #28]
3f6a: b002 add sp, #8
3f6c: bd70 pop {r4, r5, r6, pc}
3f6e: bf00 nop
3f70: 00001795 .word 0x00001795
3f74: 0001f6ec .word 0x0001f6ec
3f78: 0001ee9f .word 0x0001ee9f
3f7c: 0000e931 .word 0x0000e931
3f80: 0001ef03 .word 0x0001ef03
3f84: 0000179d .word 0x0000179d
00003f88 <lv_obj_get_ext_attr>:
{
3f88: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3f8a: 4b0b ldr r3, [pc, #44] ; (3fb8 <lv_obj_get_ext_attr+0x30>)
{
3f8c: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3f8e: 4798 blx r3
3f90: 4605 mov r5, r0
3f92: b968 cbnz r0, 3fb0 <lv_obj_get_ext_attr+0x28>
3f94: 4b09 ldr r3, [pc, #36] ; (3fbc <lv_obj_get_ext_attr+0x34>)
3f96: 490a ldr r1, [pc, #40] ; (3fc0 <lv_obj_get_ext_attr+0x38>)
3f98: 9300 str r3, [sp, #0]
3f9a: f640 321e movw r2, #2846 ; 0xb1e
3f9e: 2003 movs r0, #3
3fa0: 4e08 ldr r6, [pc, #32] ; (3fc4 <lv_obj_get_ext_attr+0x3c>)
3fa2: 47b0 blx r6
3fa4: 4808 ldr r0, [pc, #32] ; (3fc8 <lv_obj_get_ext_attr+0x40>)
3fa6: 4909 ldr r1, [pc, #36] ; (3fcc <lv_obj_get_ext_attr+0x44>)
3fa8: 4622 mov r2, r4
3faa: 462b mov r3, r5
3fac: 4788 blx r1
3fae: e7fe b.n 3fae <lv_obj_get_ext_attr+0x26>
}
3fb0: 6a60 ldr r0, [r4, #36] ; 0x24
3fb2: b002 add sp, #8
3fb4: bd70 pop {r4, r5, r6, pc}
3fb6: bf00 nop
3fb8: 00001795 .word 0x00001795
3fbc: 0001f72a .word 0x0001f72a
3fc0: 0001ee9f .word 0x0001ee9f
3fc4: 0000e931 .word 0x0000e931
3fc8: 0001ef03 .word 0x0001ef03
3fcc: 0000179d .word 0x0000179d
00003fd0 <lv_obj_get_group>:
{
3fd0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3fd2: 4b0b ldr r3, [pc, #44] ; (4000 <lv_obj_get_group+0x30>)
{
3fd4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3fd6: 4798 blx r3
3fd8: 4605 mov r5, r0
3fda: b968 cbnz r0, 3ff8 <lv_obj_get_group+0x28>
3fdc: 4b09 ldr r3, [pc, #36] ; (4004 <lv_obj_get_group+0x34>)
3fde: 490a ldr r1, [pc, #40] ; (4008 <lv_obj_get_group+0x38>)
3fe0: 9300 str r3, [sp, #0]
3fe2: f640 326f movw r2, #2927 ; 0xb6f
3fe6: 2003 movs r0, #3
3fe8: 4e08 ldr r6, [pc, #32] ; (400c <lv_obj_get_group+0x3c>)
3fea: 47b0 blx r6
3fec: 4808 ldr r0, [pc, #32] ; (4010 <lv_obj_get_group+0x40>)
3fee: 4909 ldr r1, [pc, #36] ; (4014 <lv_obj_get_group+0x44>)
3ff0: 4622 mov r2, r4
3ff2: 462b mov r3, r5
3ff4: 4788 blx r1
3ff6: e7fe b.n 3ff6 <lv_obj_get_group+0x26>
}
3ff8: 6ba0 ldr r0, [r4, #56] ; 0x38
3ffa: b002 add sp, #8
3ffc: bd70 pop {r4, r5, r6, pc}
3ffe: bf00 nop
4000: 00001795 .word 0x00001795
4004: 0001f74e .word 0x0001f74e
4008: 0001ee9f .word 0x0001ee9f
400c: 0000e931 .word 0x0000e931
4010: 0001ef03 .word 0x0001ef03
4014: 0000179d .word 0x0000179d
00004018 <obj_del_core>:
{
4018: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_event_send(obj, LV_EVENT_DELETE, NULL);
401c: 4b39 ldr r3, [pc, #228] ; (4104 <obj_del_core+0xec>)
{
401e: 4604 mov r4, r0
lv_event_send(obj, LV_EVENT_DELETE, NULL);
4020: 2200 movs r2, #0
4022: 2115 movs r1, #21
4024: 4798 blx r3
lv_group_t * group = lv_obj_get_group(obj);
4026: 4b38 ldr r3, [pc, #224] ; (4108 <obj_del_core+0xf0>)
4028: 4620 mov r0, r4
402a: 4798 blx r3
if(group) lv_group_remove_obj(obj);
402c: 4607 mov r7, r0
402e: b110 cbz r0, 4036 <obj_del_core+0x1e>
4030: 4b36 ldr r3, [pc, #216] ; (410c <obj_del_core+0xf4>)
4032: 4620 mov r0, r4
4034: 4798 blx r3
lv_anim_del(obj, NULL);
4036: 4b36 ldr r3, [pc, #216] ; (4110 <obj_del_core+0xf8>)
trans_del(obj, 0xFF, 0xFF, NULL);
4038: 4d36 ldr r5, [pc, #216] ; (4114 <obj_del_core+0xfc>)
i_next = _lv_ll_get_next(&(obj->child_ll), i);
403a: f8df 90f4 ldr.w r9, [pc, #244] ; 4130 <obj_del_core+0x118>
lv_anim_del(obj, NULL);
403e: 2100 movs r1, #0
4040: 4620 mov r0, r4
4042: 4798 blx r3
trans_del(obj, 0xFF, 0xFF, NULL);
4044: 22ff movs r2, #255 ; 0xff
4046: 2300 movs r3, #0
4048: 4611 mov r1, r2
404a: 4620 mov r0, r4
i = _lv_ll_get_head(&(obj->child_ll));
404c: f104 0804 add.w r8, r4, #4
trans_del(obj, 0xFF, 0xFF, NULL);
4050: 47a8 blx r5
i = _lv_ll_get_head(&(obj->child_ll));
4052: 4b31 ldr r3, [pc, #196] ; (4118 <obj_del_core+0x100>)
4054: 4640 mov r0, r8
4056: 4798 blx r3
4058: 4605 mov r5, r0
while(i != NULL) {
405a: bb3d cbnz r5, 40ac <obj_del_core+0x94>
#endif
static void lv_event_mark_deleted(lv_obj_t * obj)
{
lv_event_temp_data_t * t = event_temp_data_head;
405c: 4b2f ldr r3, [pc, #188] ; (411c <obj_del_core+0x104>)
405e: 685e ldr r6, [r3, #4]
while(t) {
if(t->obj == obj) t->deleted = true;
4060: 2301 movs r3, #1
while(t) {
4062: bb66 cbnz r6, 40be <obj_del_core+0xa6>
lv_indev_t * indev = lv_indev_get_next(NULL);
4064: f8df 80cc ldr.w r8, [pc, #204] ; 4134 <obj_del_core+0x11c>
lv_indev_reset(indev, obj);
4068: f8df 90cc ldr.w r9, [pc, #204] ; 4138 <obj_del_core+0x120>
if(indev->group == group && obj == lv_indev_get_obj_act()) {
406c: f8df a0cc ldr.w sl, [pc, #204] ; 413c <obj_del_core+0x124>
lv_indev_t * indev = lv_indev_get_next(NULL);
4070: 4630 mov r0, r6
4072: 47c0 blx r8
4074: 4605 mov r5, r0
while(indev) {
4076: bb45 cbnz r5, 40ca <obj_del_core+0xb2>
obj->signal_cb(obj, LV_SIGNAL_CLEANUP, NULL);
4078: 462a mov r2, r5
407a: 4629 mov r1, r5
407c: 69e3 ldr r3, [r4, #28]
407e: 4d28 ldr r5, [pc, #160] ; (4120 <obj_del_core+0x108>)
4080: 4620 mov r0, r4
4082: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
4084: 4b27 ldr r3, [pc, #156] ; (4124 <obj_del_core+0x10c>)
4086: 4620 mov r0, r4
4088: 4798 blx r3
if(par == NULL) { /*It is a screen*/
408a: 2800 cmp r0, #0
408c: d137 bne.n 40fe <obj_del_core+0xe6>
lv_disp_t * d = lv_obj_get_disp(obj);
408e: 4b26 ldr r3, [pc, #152] ; (4128 <obj_del_core+0x110>)
4090: 4620 mov r0, r4
4092: 4798 blx r3
_lv_ll_remove(&d->scr_ll, obj);
4094: 4621 mov r1, r4
4096: 3030 adds r0, #48 ; 0x30
_lv_ll_remove(&(par->child_ll), obj);
4098: 47a8 blx r5
if(obj->ext_attr != NULL) lv_mem_free(obj->ext_attr);
409a: 6a60 ldr r0, [r4, #36] ; 0x24
409c: 4d23 ldr r5, [pc, #140] ; (412c <obj_del_core+0x114>)
409e: b100 cbz r0, 40a2 <obj_del_core+0x8a>
40a0: 47a8 blx r5
lv_mem_free(obj); /*Free the object itself*/
40a2: 4620 mov r0, r4
40a4: 462b mov r3, r5
}
40a6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_mem_free(obj); /*Free the object itself*/
40aa: 4718 bx r3
i_next = _lv_ll_get_next(&(obj->child_ll), i);
40ac: 4629 mov r1, r5
40ae: 4640 mov r0, r8
40b0: 47c8 blx r9
40b2: 4606 mov r6, r0
obj_del_core(i);
40b4: 4628 mov r0, r5
40b6: f7ff ffaf bl 4018 <obj_del_core>
i = i_next;
40ba: 4635 mov r5, r6
40bc: e7cd b.n 405a <obj_del_core+0x42>
if(t->obj == obj) t->deleted = true;
40be: 6832 ldr r2, [r6, #0]
40c0: 4294 cmp r4, r2
40c2: bf08 it eq
40c4: 7133 strbeq r3, [r6, #4]
t = t->prev;
40c6: 68b6 ldr r6, [r6, #8]
40c8: e7cb b.n 4062 <obj_del_core+0x4a>
if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) {
40ca: 6b6b ldr r3, [r5, #52] ; 0x34
40cc: 42a3 cmp r3, r4
40ce: d002 beq.n 40d6 <obj_del_core+0xbe>
40d0: 6bab ldr r3, [r5, #56] ; 0x38
40d2: 42a3 cmp r3, r4
40d4: d102 bne.n 40dc <obj_del_core+0xc4>
lv_indev_reset(indev, obj);
40d6: 4621 mov r1, r4
40d8: 4628 mov r0, r5
40da: 47c8 blx r9
if(indev->proc.types.pointer.last_pressed == obj) {
40dc: 6beb ldr r3, [r5, #60] ; 0x3c
40de: 42a3 cmp r3, r4
if(indev->group == group && obj == lv_indev_get_obj_act()) {
40e0: 6dab ldr r3, [r5, #88] ; 0x58
indev->proc.types.pointer.last_pressed = NULL;
40e2: bf08 it eq
40e4: 63ee streq r6, [r5, #60] ; 0x3c
if(indev->group == group && obj == lv_indev_get_obj_act()) {
40e6: 42bb cmp r3, r7
40e8: d105 bne.n 40f6 <obj_del_core+0xde>
40ea: 47d0 blx sl
40ec: 4284 cmp r4, r0
40ee: d102 bne.n 40f6 <obj_del_core+0xde>
lv_indev_reset(indev, obj);
40f0: 4621 mov r1, r4
40f2: 4628 mov r0, r5
40f4: 47c8 blx r9
indev = lv_indev_get_next(indev);
40f6: 4628 mov r0, r5
40f8: 47c0 blx r8
40fa: 4605 mov r5, r0
40fc: e7bb b.n 4076 <obj_del_core+0x5e>
_lv_ll_remove(&(par->child_ll), obj);
40fe: 4621 mov r1, r4
4100: 3004 adds r0, #4
4102: e7c9 b.n 4098 <obj_del_core+0x80>
4104: 00001f29 .word 0x00001f29
4108: 00003fd1 .word 0x00003fd1
410c: 00001b29 .word 0x00001b29
4110: 0000dcf5 .word 0x0000dcf5
4114: 00002465 .word 0x00002465
4118: 0000e6f1 .word 0x0000e6f1
411c: 200080f4 .word 0x200080f4
4120: 0000e7b5 .word 0x0000e7b5
4124: 000020d5 .word 0x000020d5
4128: 00002175 .word 0x00002175
412c: 0000eb2d .word 0x0000eb2d
4130: 0000e6fd .word 0x0000e6fd
4134: 0000da5d .word 0x0000da5d
4138: 00001c2d .word 0x00001c2d
413c: 00001c65 .word 0x00001c65
00004140 <lv_obj_del>:
{
4140: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4142: 4b1b ldr r3, [pc, #108] ; (41b0 <lv_obj_del+0x70>)
{
4144: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4146: 4798 blx r3
4148: 4605 mov r5, r0
414a: b968 cbnz r0, 4168 <lv_obj_del+0x28>
414c: 4b19 ldr r3, [pc, #100] ; (41b4 <lv_obj_del+0x74>)
414e: 491a ldr r1, [pc, #104] ; (41b8 <lv_obj_del+0x78>)
4150: 9300 str r3, [sp, #0]
4152: f240 1293 movw r2, #403 ; 0x193
4156: 2003 movs r0, #3
4158: 4e18 ldr r6, [pc, #96] ; (41bc <lv_obj_del+0x7c>)
415a: 47b0 blx r6
415c: 4818 ldr r0, [pc, #96] ; (41c0 <lv_obj_del+0x80>)
415e: 4919 ldr r1, [pc, #100] ; (41c4 <lv_obj_del+0x84>)
4160: 4622 mov r2, r4
4162: 462b mov r3, r5
4164: 4788 blx r1
4166: e7fe b.n 4166 <lv_obj_del+0x26>
lv_obj_invalidate(obj);
4168: 4b17 ldr r3, [pc, #92] ; (41c8 <lv_obj_del+0x88>)
416a: 4620 mov r0, r4
416c: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
416e: 4b17 ldr r3, [pc, #92] ; (41cc <lv_obj_del+0x8c>)
4170: 4620 mov r0, r4
4172: 4798 blx r3
if(par == NULL) {
4174: 4606 mov r6, r0
4176: b9b8 cbnz r0, 41a8 <lv_obj_del+0x68>
disp = lv_obj_get_disp(obj);
4178: 4b15 ldr r3, [pc, #84] ; (41d0 <lv_obj_del+0x90>)
417a: 4620 mov r0, r4
417c: 4798 blx r3
if(!disp) return LV_RES_INV; /*Shouldn't happen*/
417e: 4605 mov r5, r0
4180: b178 cbz r0, 41a2 <lv_obj_del+0x62>
if(disp->act_scr == obj) act_scr_del = true;
4182: 6bc7 ldr r7, [r0, #60] ; 0x3c
4184: 1b3b subs r3, r7, r4
4186: 425f negs r7, r3
4188: 415f adcs r7, r3
obj_del_core(obj);
418a: 4b12 ldr r3, [pc, #72] ; (41d4 <lv_obj_del+0x94>)
418c: 4620 mov r0, r4
418e: 4798 blx r3
if(par) {
4190: b126 cbz r6, 419c <lv_obj_del+0x5c>
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, NULL);
4192: 69f3 ldr r3, [r6, #28]
4194: 2200 movs r2, #0
4196: 2101 movs r1, #1
4198: 4630 mov r0, r6
419a: 4798 blx r3
if(act_scr_del) {
419c: b10f cbz r7, 41a2 <lv_obj_del+0x62>
disp->act_scr = NULL;
419e: 2300 movs r3, #0
41a0: 63eb str r3, [r5, #60] ; 0x3c
}
41a2: 2000 movs r0, #0
41a4: b003 add sp, #12
41a6: bdf0 pop {r4, r5, r6, r7, pc}
bool act_scr_del = false;
41a8: 2700 movs r7, #0
lv_disp_t * disp = NULL;
41aa: 463d mov r5, r7
41ac: e7ed b.n 418a <lv_obj_del+0x4a>
41ae: bf00 nop
41b0: 00001795 .word 0x00001795
41b4: 0001f75f .word 0x0001f75f
41b8: 0001ee9f .word 0x0001ee9f
41bc: 0000e931 .word 0x0000e931
41c0: 0001ef03 .word 0x0001ef03
41c4: 0000179d .word 0x0000179d
41c8: 00002739 .word 0x00002739
41cc: 000020d5 .word 0x000020d5
41d0: 00002175 .word 0x00002175
41d4: 00004019 .word 0x00004019
000041d8 <lv_obj_is_focused>:
{
41d8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
41da: 4b0e ldr r3, [pc, #56] ; (4214 <lv_obj_is_focused+0x3c>)
{
41dc: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
41de: 4798 blx r3
41e0: 4605 mov r5, r0
41e2: b968 cbnz r0, 4200 <lv_obj_is_focused+0x28>
41e4: 4b0c ldr r3, [pc, #48] ; (4218 <lv_obj_is_focused+0x40>)
41e6: 490d ldr r1, [pc, #52] ; (421c <lv_obj_is_focused+0x44>)
41e8: 9300 str r3, [sp, #0]
41ea: f44f 6238 mov.w r2, #2944 ; 0xb80
41ee: 2003 movs r0, #3
41f0: 4e0b ldr r6, [pc, #44] ; (4220 <lv_obj_is_focused+0x48>)
41f2: 47b0 blx r6
41f4: 480b ldr r0, [pc, #44] ; (4224 <lv_obj_is_focused+0x4c>)
41f6: 490c ldr r1, [pc, #48] ; (4228 <lv_obj_is_focused+0x50>)
41f8: 4622 mov r2, r4
41fa: 462b mov r3, r5
41fc: 4788 blx r1
41fe: e7fe b.n 41fe <lv_obj_is_focused+0x26>
if(obj->group_p) {
4200: 6ba0 ldr r0, [r4, #56] ; 0x38
4202: b120 cbz r0, 420e <lv_obj_is_focused+0x36>
if(lv_group_get_focused(obj->group_p) == obj) return true;
4204: 4b09 ldr r3, [pc, #36] ; (422c <lv_obj_is_focused+0x54>)
4206: 4798 blx r3
4208: 1a23 subs r3, r4, r0
420a: 4258 negs r0, r3
420c: 4158 adcs r0, r3
}
420e: b002 add sp, #8
4210: bd70 pop {r4, r5, r6, pc}
4212: bf00 nop
4214: 00001795 .word 0x00001795
4218: 0001f78b .word 0x0001f78b
421c: 0001ee9f .word 0x0001ee9f
4220: 0000e931 .word 0x0000e931
4224: 0001ef03 .word 0x0001ef03
4228: 0000179d .word 0x0000179d
422c: 00001bc5 .word 0x00001bc5
00004230 <lv_obj_is_point_on_coords>:
{
4230: b507 push {r0, r1, r2, lr}
ext_area.x1 = obj->coords.x1 - obj->ext_click_pad_hor;
4232: 8a02 ldrh r2, [r0, #16]
4234: f890 3030 ldrb.w r3, [r0, #48] ; 0x30
4238: 1ad2 subs r2, r2, r3
423a: f8ad 2000 strh.w r2, [sp]
ext_area.x2 = obj->coords.x2 + obj->ext_click_pad_hor;
423e: 8a82 ldrh r2, [r0, #20]
4240: 4413 add r3, r2
4242: f8ad 3004 strh.w r3, [sp, #4]
ext_area.y1 = obj->coords.y1 - obj->ext_click_pad_ver;
4246: 8a42 ldrh r2, [r0, #18]
4248: f890 3031 ldrb.w r3, [r0, #49] ; 0x31
424c: 1ad2 subs r2, r2, r3
424e: f8ad 2002 strh.w r2, [sp, #2]
ext_area.y2 = obj->coords.y2 + obj->ext_click_pad_ver;
4252: 8ac2 ldrh r2, [r0, #22]
4254: 4413 add r3, r2
4256: f8ad 3006 strh.w r3, [sp, #6]
if(!_lv_area_is_point_on(&ext_area, point, 0)) {
425a: 2200 movs r2, #0
425c: 4b02 ldr r3, [pc, #8] ; (4268 <lv_obj_is_point_on_coords+0x38>)
425e: 4668 mov r0, sp
4260: 4798 blx r3
}
4262: b003 add sp, #12
4264: f85d fb04 ldr.w pc, [sp], #4
4268: 0000df69 .word 0x0000df69
0000426c <lv_obj_handle_get_type_signal>:
{
426c: b510 push {r4, lr}
426e: 2300 movs r3, #0
if(buf->type[i] == NULL) break;
4270: f850 4023 ldr.w r4, [r0, r3, lsl #2]
4274: b2da uxtb r2, r3
4276: b11c cbz r4, 4280 <lv_obj_handle_get_type_signal+0x14>
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
4278: 3301 adds r3, #1
427a: 2b07 cmp r3, #7
427c: d1f8 bne.n 4270 <lv_obj_handle_get_type_signal+0x4>
427e: 461a mov r2, r3
buf->type[i] = name;
4280: f840 1022 str.w r1, [r0, r2, lsl #2]
}
4284: 2001 movs r0, #1
4286: bd10 pop {r4, pc}
00004288 <lv_obj_init_draw_rect_dsc>:
{
4288: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
428c: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
428e: 4fb7 ldr r7, [pc, #732] ; (456c <lv_obj_init_draw_rect_dsc+0x2e4>)
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4290: f8df 82e4 ldr.w r8, [pc, #740] ; 4578 <lv_obj_init_draw_rect_dsc+0x2f0>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4294: 2201 movs r2, #1
4296: 4605 mov r5, r0
4298: 460e mov r6, r1
429a: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
429c: f248 020c movw r2, #32780 ; 0x800c
draw_dsc->radius = lv_obj_get_style_radius(obj, part);
42a0: 8020 strh r0, [r4, #0]
42a2: 4631 mov r1, r6
42a4: 4628 mov r0, r5
42a6: 47c0 blx r8
if(opa_scale <= LV_OPA_MIN) {
42a8: 2805 cmp r0, #5
42aa: 4681 mov r9, r0
42ac: d80a bhi.n 42c4 <lv_obj_init_draw_rect_dsc+0x3c>
draw_dsc->bg_opa = LV_OPA_TRANSP;
42ae: 2300 movs r3, #0
42b0: 7323 strb r3, [r4, #12]
draw_dsc->border_opa = LV_OPA_TRANSP;
42b2: 7523 strb r3, [r4, #20]
draw_dsc->shadow_opa = LV_OPA_TRANSP;
42b4: f884 3028 strb.w r3, [r4, #40] ; 0x28
draw_dsc->pattern_opa = LV_OPA_TRANSP;
42b8: f884 3036 strb.w r3, [r4, #54] ; 0x36
draw_dsc->value_opa = LV_OPA_TRANSP;
42bc: f884 3044 strb.w r3, [r4, #68] ; 0x44
}
42c0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
42c4: 7b23 ldrb r3, [r4, #12]
42c6: b343 cbz r3, 431a <lv_obj_init_draw_rect_dsc+0x92>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
42c8: 222c movs r2, #44 ; 0x2c
42ca: 4631 mov r1, r6
42cc: 4628 mov r0, r5
42ce: 47c0 blx r8
if(draw_dsc->bg_opa > LV_OPA_MIN) {
42d0: 2805 cmp r0, #5
draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
42d2: 7320 strb r0, [r4, #12]
if(draw_dsc->bg_opa > LV_OPA_MIN) {
42d4: d921 bls.n 431a <lv_obj_init_draw_rect_dsc+0x92>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
42d6: 2229 movs r2, #41 ; 0x29
42d8: 4631 mov r1, r6
42da: f8df a294 ldr.w sl, [pc, #660] ; 4570 <lv_obj_init_draw_rect_dsc+0x2e8>
42de: 4628 mov r0, r5
42e0: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
42e2: 2223 movs r2, #35 ; 0x23
draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part);
42e4: 8060 strh r0, [r4, #2]
42e6: 4631 mov r1, r6
42e8: 4628 mov r0, r5
42ea: 47b8 blx r7
42ec: b2c0 uxtb r0, r0
draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part);
42ee: 71a0 strb r0, [r4, #6]
if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) {
42f0: b170 cbz r0, 4310 <lv_obj_init_draw_rect_dsc+0x88>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
42f2: 222a movs r2, #42 ; 0x2a
42f4: 4631 mov r1, r6
42f6: 4628 mov r0, r5
42f8: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
42fa: 2221 movs r2, #33 ; 0x21
draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part);
42fc: 80a0 strh r0, [r4, #4]
42fe: 4631 mov r1, r6
4300: 4628 mov r0, r5
4302: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
4304: 2222 movs r2, #34 ; 0x22
draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part);
4306: 8120 strh r0, [r4, #8]
4308: 4631 mov r1, r6
430a: 4628 mov r0, r5
430c: 47b8 blx r7
draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part);
430e: 8160 strh r0, [r4, #10]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
4310: 2220 movs r2, #32
4312: 4631 mov r1, r6
4314: 4628 mov r0, r5
4316: 47b8 blx r7
4318: 7360 strb r0, [r4, #13]
if(draw_dsc->border_opa != LV_OPA_TRANSP) {
431a: 7d23 ldrb r3, [r4, #20]
431c: b1eb cbz r3, 435a <lv_obj_init_draw_rect_dsc+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
431e: 2230 movs r2, #48 ; 0x30
4320: 4631 mov r1, r6
4322: 4628 mov r0, r5
4324: 47b8 blx r7
draw_dsc->border_width = lv_obj_get_style_border_width(obj, part);
4326: 8220 strh r0, [r4, #16]
if(draw_dsc->border_width) {
4328: b1b8 cbz r0, 435a <lv_obj_init_draw_rect_dsc+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
432a: 223c movs r2, #60 ; 0x3c
432c: 4631 mov r1, r6
432e: 4628 mov r0, r5
4330: 47c0 blx r8
if(draw_dsc->border_opa > LV_OPA_MIN) {
4332: 2805 cmp r0, #5
draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part);
4334: 7520 strb r0, [r4, #20]
if(draw_dsc->border_opa > LV_OPA_MIN) {
4336: d90b bls.n 4350 <lv_obj_init_draw_rect_dsc+0xc8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
4338: 2231 movs r2, #49 ; 0x31
433a: 4631 mov r1, r6
433c: 4628 mov r0, r5
433e: 47b8 blx r7
draw_dsc->border_side = lv_obj_get_style_border_side(obj, part);
4340: b2c0 uxtb r0, r0
4342: 8260 strh r0, [r4, #18]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
4344: 4b8a ldr r3, [pc, #552] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
4346: 2239 movs r2, #57 ; 0x39
4348: 4631 mov r1, r6
434a: 4628 mov r0, r5
434c: 4798 blx r3
draw_dsc->border_color = lv_obj_get_style_border_color(obj, part);
434e: 81e0 strh r0, [r4, #14]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
4350: 2232 movs r2, #50 ; 0x32
4352: 4631 mov r1, r6
4354: 4628 mov r0, r5
4356: 47b8 blx r7
4358: 7560 strb r0, [r4, #21]
if(draw_dsc->outline_opa != LV_OPA_TRANSP) {
435a: 7f23 ldrb r3, [r4, #28]
435c: b1e3 cbz r3, 4398 <lv_obj_init_draw_rect_dsc+0x110>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
435e: 2240 movs r2, #64 ; 0x40
4360: 4631 mov r1, r6
4362: 4628 mov r0, r5
4364: 47b8 blx r7
draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part);
4366: 8320 strh r0, [r4, #24]
if(draw_dsc->outline_width) {
4368: b1b0 cbz r0, 4398 <lv_obj_init_draw_rect_dsc+0x110>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
436a: 224c movs r2, #76 ; 0x4c
436c: 4631 mov r1, r6
436e: 4628 mov r0, r5
4370: 47c0 blx r8
if(draw_dsc->outline_opa > LV_OPA_MIN) {
4372: 2805 cmp r0, #5
draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part);
4374: 7720 strb r0, [r4, #28]
if(draw_dsc->outline_opa > LV_OPA_MIN) {
4376: d90a bls.n 438e <lv_obj_init_draw_rect_dsc+0x106>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
4378: 2241 movs r2, #65 ; 0x41
437a: 4631 mov r1, r6
437c: 4628 mov r0, r5
437e: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
4380: 4b7b ldr r3, [pc, #492] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part);
4382: 8360 strh r0, [r4, #26]
4384: 2249 movs r2, #73 ; 0x49
4386: 4631 mov r1, r6
4388: 4628 mov r0, r5
438a: 4798 blx r3
draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part);
438c: 82e0 strh r0, [r4, #22]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar)
438e: 2242 movs r2, #66 ; 0x42
4390: 4631 mov r1, r6
4392: 4628 mov r0, r5
4394: 47b8 blx r7
4396: 7760 strb r0, [r4, #29]
if(draw_dsc->pattern_opa != LV_OPA_TRANSP) {
4398: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
439c: 2b00 cmp r3, #0
439e: d03b beq.n 4418 <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
43a0: f8df a1d8 ldr.w sl, [pc, #472] ; 457c <lv_obj_init_draw_rect_dsc+0x2f4>
43a4: 226e movs r2, #110 ; 0x6e
43a6: 4631 mov r1, r6
43a8: 4628 mov r0, r5
43aa: 47d0 blx sl
draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part);
43ac: 62e0 str r0, [r4, #44] ; 0x2c
if(draw_dsc->pattern_image) {
43ae: 2800 cmp r0, #0
43b0: d032 beq.n 4418 <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar)
43b2: 226c movs r2, #108 ; 0x6c
43b4: 4631 mov r1, r6
43b6: 4628 mov r0, r5
43b8: 47c0 blx r8
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
43ba: 2805 cmp r0, #5
draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part);
43bc: f884 0036 strb.w r0, [r4, #54] ; 0x36
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
43c0: d92a bls.n 4418 <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar)
43c2: 226d movs r2, #109 ; 0x6d
43c4: 4631 mov r1, r6
43c6: 4628 mov r0, r5
43c8: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar)
43ca: 2261 movs r2, #97 ; 0x61
draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part);
43cc: f884 0037 strb.w r0, [r4, #55] ; 0x37
43d0: 4631 mov r1, r6
43d2: 4628 mov r0, r5
43d4: 47b8 blx r7
draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part);
43d6: f894 3038 ldrb.w r3, [r4, #56] ; 0x38
43da: 3800 subs r0, #0
43dc: bf18 it ne
43de: 2001 movne r0, #1
43e0: f360 0300 bfi r3, r0, #0, #1
43e4: f884 3038 strb.w r3, [r4, #56] ; 0x38
if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) {
43e8: 6ae0 ldr r0, [r4, #44] ; 0x2c
43ea: 4b62 ldr r3, [pc, #392] ; (4574 <lv_obj_init_draw_rect_dsc+0x2ec>)
43ec: 4798 blx r3
43ee: 2802 cmp r0, #2
43f0: f040 80af bne.w 4552 <lv_obj_init_draw_rect_dsc+0x2ca>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
43f4: 4b5e ldr r3, [pc, #376] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
43f6: 2269 movs r2, #105 ; 0x69
43f8: 4631 mov r1, r6
43fa: 4628 mov r0, r5
43fc: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
43fe: f248 028e movw r2, #32910 ; 0x808e
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
4402: 86a0 strh r0, [r4, #52] ; 0x34
4404: 4631 mov r1, r6
4406: 4628 mov r0, r5
4408: 47d0 blx sl
draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part);
440a: 6320 str r0, [r4, #48] ; 0x30
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar)
440c: 2260 movs r2, #96 ; 0x60
440e: 4631 mov r1, r6
4410: 4628 mov r0, r5
4412: 47b8 blx r7
4414: f884 0039 strb.w r0, [r4, #57] ; 0x39
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
4418: f894 3028 ldrb.w r3, [r4, #40] ; 0x28
441c: 2b05 cmp r3, #5
441e: d928 bls.n 4472 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
4420: 2250 movs r2, #80 ; 0x50
4422: 4631 mov r1, r6
4424: 4628 mov r0, r5
4426: 47b8 blx r7
draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part);
4428: 8420 strh r0, [r4, #32]
if(draw_dsc->shadow_width) {
442a: b310 cbz r0, 4472 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
442c: 225c movs r2, #92 ; 0x5c
442e: 4631 mov r1, r6
4430: 4628 mov r0, r5
4432: 47c0 blx r8
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
4434: 2805 cmp r0, #5
draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part);
4436: f884 0028 strb.w r0, [r4, #40] ; 0x28
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
443a: d91a bls.n 4472 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
443c: 2251 movs r2, #81 ; 0x51
443e: 4631 mov r1, r6
4440: 4628 mov r0, r5
4442: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4444: 2252 movs r2, #82 ; 0x52
draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part);
4446: 8460 strh r0, [r4, #34] ; 0x22
4448: 4631 mov r1, r6
444a: 4628 mov r0, r5
444c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
444e: 2253 movs r2, #83 ; 0x53
draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part);
4450: 84a0 strh r0, [r4, #36] ; 0x24
4452: 4631 mov r1, r6
4454: 4628 mov r0, r5
4456: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
4458: 4b45 ldr r3, [pc, #276] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part);
445a: 84e0 strh r0, [r4, #38] ; 0x26
445c: 2259 movs r2, #89 ; 0x59
445e: 4631 mov r1, r6
4460: 4628 mov r0, r5
4462: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar)
4464: 2254 movs r2, #84 ; 0x54
draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part);
4466: 83e0 strh r0, [r4, #30]
4468: 4631 mov r1, r6
446a: 4628 mov r0, r5
446c: 47b8 blx r7
446e: f884 0029 strb.w r0, [r4, #41] ; 0x29
if(draw_dsc->value_opa > LV_OPA_MIN) {
4472: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
4476: 2b05 cmp r3, #5
4478: d940 bls.n 44fc <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
447a: f8df a100 ldr.w sl, [pc, #256] ; 457c <lv_obj_init_draw_rect_dsc+0x2f4>
447e: 227f movs r2, #127 ; 0x7f
4480: 4631 mov r1, r6
4482: 4628 mov r0, r5
4484: 47d0 blx sl
draw_dsc->value_str = lv_obj_get_style_value_str(obj, part);
4486: 63e0 str r0, [r4, #60] ; 0x3c
if(draw_dsc->value_str) {
4488: 2800 cmp r0, #0
448a: d037 beq.n 44fc <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
448c: 227c movs r2, #124 ; 0x7c
448e: 4631 mov r1, r6
4490: 4628 mov r0, r5
4492: 47c0 blx r8
if(draw_dsc->value_opa > LV_OPA_MIN) {
4494: 2805 cmp r0, #5
draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part);
4496: f884 0044 strb.w r0, [r4, #68] ; 0x44
if(draw_dsc->value_opa > LV_OPA_MIN) {
449a: d92f bls.n 44fc <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
449c: 2273 movs r2, #115 ; 0x73
449e: 4631 mov r1, r6
44a0: 4628 mov r0, r5
44a2: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
44a4: 2274 movs r2, #116 ; 0x74
draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part);
44a6: f8a4 0048 strh.w r0, [r4, #72] ; 0x48
44aa: 4631 mov r1, r6
44ac: 4628 mov r0, r5
44ae: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
44b0: 4b2f ldr r3, [pc, #188] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part);
44b2: f8a4 004a strh.w r0, [r4, #74] ; 0x4a
44b6: 2279 movs r2, #121 ; 0x79
44b8: 4631 mov r1, r6
44ba: 4628 mov r0, r5
44bc: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
44be: 227e movs r2, #126 ; 0x7e
draw_dsc->value_color = lv_obj_get_style_value_color(obj, part);
44c0: f8a4 0046 strh.w r0, [r4, #70] ; 0x46
44c4: 4631 mov r1, r6
44c6: 4628 mov r0, r5
44c8: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
44ca: 2270 movs r2, #112 ; 0x70
draw_dsc->value_font = lv_obj_get_style_value_font(obj, part);
44cc: 6420 str r0, [r4, #64] ; 0x40
44ce: 4631 mov r1, r6
44d0: 4628 mov r0, r5
44d2: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar)
44d4: 2271 movs r2, #113 ; 0x71
draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part);
44d6: f8a4 004c strh.w r0, [r4, #76] ; 0x4c
44da: 4631 mov r1, r6
44dc: 4628 mov r0, r5
44de: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
44e0: 2275 movs r2, #117 ; 0x75
draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part);
44e2: f8a4 004e strh.w r0, [r4, #78] ; 0x4e
44e6: 4631 mov r1, r6
44e8: 4628 mov r0, r5
44ea: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
44ec: 2272 movs r2, #114 ; 0x72
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
44ee: f884 0050 strb.w r0, [r4, #80] ; 0x50
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
44f2: 4631 mov r1, r6
44f4: 4628 mov r0, r5
44f6: 47b8 blx r7
44f8: f884 0051 strb.w r0, [r4, #81] ; 0x51
if(opa_scale < LV_OPA_MAX) {
44fc: f1b9 0ff9 cmp.w r9, #249 ; 0xf9
4500: f63f aede bhi.w 42c0 <lv_obj_init_draw_rect_dsc+0x38>
draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8;
4504: 7b23 ldrb r3, [r4, #12]
4506: fa1f f089 uxth.w r0, r9
450a: fb13 f300 smulbb r3, r3, r0
450e: f3c3 2307 ubfx r3, r3, #8, #8
4512: 7323 strb r3, [r4, #12]
draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8;
4514: 7d23 ldrb r3, [r4, #20]
4516: fb13 f300 smulbb r3, r3, r0
451a: f3c3 2307 ubfx r3, r3, #8, #8
451e: 7523 strb r3, [r4, #20]
draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8;
4520: f894 3028 ldrb.w r3, [r4, #40] ; 0x28
4524: fb13 f300 smulbb r3, r3, r0
4528: f3c3 2307 ubfx r3, r3, #8, #8
452c: f884 3028 strb.w r3, [r4, #40] ; 0x28
draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8;
4530: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
4534: fb13 f300 smulbb r3, r3, r0
4538: f3c3 2307 ubfx r3, r3, #8, #8
453c: f884 3036 strb.w r3, [r4, #54] ; 0x36
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
4540: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
4544: fb13 f000 smulbb r0, r3, r0
4548: f3c0 2007 ubfx r0, r0, #8, #8
454c: f884 0044 strb.w r0, [r4, #68] ; 0x44
4550: e6b6 b.n 42c0 <lv_obj_init_draw_rect_dsc+0x38>
else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) {
4552: f894 3037 ldrb.w r3, [r4, #55] ; 0x37
4556: 2b05 cmp r3, #5
4558: f67f af58 bls.w 440c <lv_obj_init_draw_rect_dsc+0x184>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
455c: 4b04 ldr r3, [pc, #16] ; (4570 <lv_obj_init_draw_rect_dsc+0x2e8>)
455e: 2269 movs r2, #105 ; 0x69
4560: 4631 mov r1, r6
4562: 4628 mov r0, r5
4564: 4798 blx r3
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
4566: 86a0 strh r0, [r4, #52] ; 0x34
4568: e750 b.n 440c <lv_obj_init_draw_rect_dsc+0x184>
456a: bf00 nop
456c: 000036f1 .word 0x000036f1
4570: 00003795 .word 0x00003795
4574: 00007811 .word 0x00007811
4578: 00003819 .word 0x00003819
457c: 000038a9 .word 0x000038a9
00004580 <lv_obj_design>:
{
4580: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(mode == LV_DESIGN_COVER_CHK) {
4584: 2a02 cmp r2, #2
{
4586: b099 sub sp, #100 ; 0x64
4588: 4604 mov r4, r0
458a: 460f mov r7, r1
458c: 4615 mov r5, r2
if(mode == LV_DESIGN_COVER_CHK) {
458e: d159 bne.n 4644 <lv_obj_design+0xc4>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4590: f8df 9214 ldr.w r9, [pc, #532] ; 47a8 <lv_obj_design+0x228>
4594: 2100 movs r1, #0
4596: 47c8 blx r9
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
4598: 4606 mov r6, r0
459a: 2800 cmp r0, #0
459c: d150 bne.n 4640 <lv_obj_design+0xc0>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
459e: 4601 mov r1, r0
45a0: 2201 movs r2, #1
45a2: 4620 mov r0, r4
45a4: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
45a6: 2204 movs r2, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
45a8: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
45aa: 4631 mov r1, r6
45ac: 4620 mov r0, r4
45ae: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
45b0: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
45b2: 4683 mov fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
45b4: 4631 mov r1, r6
45b6: 4620 mov r0, r4
45b8: 47c8 blx r9
lv_area_copy(&coords, &obj->coords);
45ba: 4b77 ldr r3, [pc, #476] ; (4798 <lv_obj_design+0x218>)
45bc: 4680 mov r8, r0
45be: f104 0110 add.w r1, r4, #16
45c2: a803 add r0, sp, #12
45c4: 4798 blx r3
coords.x1 -= w;
45c6: f8bd 300c ldrh.w r3, [sp, #12]
coords.y1 -= h;
45ca: f8bd 200e ldrh.w r2, [sp, #14]
coords.x1 -= w;
45ce: fa1f f08b uxth.w r0, fp
45d2: 1a1b subs r3, r3, r0
45d4: f8ad 300c strh.w r3, [sp, #12]
coords.x2 += w;
45d8: f8bd 3010 ldrh.w r3, [sp, #16]
45dc: 4418 add r0, r3
45de: f8ad 0010 strh.w r0, [sp, #16]
coords.y2 += h;
45e2: f8bd 0012 ldrh.w r0, [sp, #18]
coords.y1 -= h;
45e6: fa1f f388 uxth.w r3, r8
45ea: 1ad2 subs r2, r2, r3
coords.y2 += h;
45ec: 4403 add r3, r0
coords.y1 -= h;
45ee: f8ad 200e strh.w r2, [sp, #14]
coords.y2 += h;
45f2: f8ad 3012 strh.w r3, [sp, #18]
if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER;
45f6: 4652 mov r2, sl
45f8: 4b68 ldr r3, [pc, #416] ; (479c <lv_obj_design+0x21c>)
45fa: a903 add r1, sp, #12
45fc: 4638 mov r0, r7
45fe: 4798 blx r3
4600: b1d0 cbz r0, 4638 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
4602: 4f67 ldr r7, [pc, #412] ; (47a0 <lv_obj_design+0x220>)
4604: 222c movs r2, #44 ; 0x2c
4606: 4631 mov r1, r6
4608: 4620 mov r0, r4
460a: 47b8 blx r7
if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER;
460c: 28f9 cmp r0, #249 ; 0xf9
460e: d913 bls.n 4638 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
4610: 4631 mov r1, r6
4612: 2220 movs r2, #32
4614: 4620 mov r0, r4
4616: 47c8 blx r9
if(lv_obj_get_style_bg_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
4618: f010 01ff ands.w r1, r0, #255 ; 0xff
461c: d10c bne.n 4638 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
461e: 2232 movs r2, #50 ; 0x32
4620: 4620 mov r0, r4
4622: 47c8 blx r9
if(lv_obj_get_style_border_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
4624: f010 01ff ands.w r1, r0, #255 ; 0xff
4628: d106 bne.n 4638 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
462a: f248 020c movw r2, #32780 ; 0x800c
462e: 4620 mov r0, r4
4630: 47b8 blx r7
return LV_DESIGN_RES_COVER;
4632: 28f9 cmp r0, #249 ; 0xf9
4634: bf88 it hi
4636: 2501 movhi r5, #1
}
4638: 4628 mov r0, r5
463a: b019 add sp, #100 ; 0x64
463c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
4640: 2503 movs r5, #3
4642: e7f9 b.n 4638 <lv_obj_design+0xb8>
else if(mode == LV_DESIGN_DRAW_MAIN) {
4644: 2a00 cmp r2, #0
4646: d156 bne.n 46f6 <lv_obj_design+0x176>
lv_draw_rect_dsc_init(&draw_dsc);
4648: 4b56 ldr r3, [pc, #344] ; (47a4 <lv_obj_design+0x224>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
464a: 4e57 ldr r6, [pc, #348] ; (47a8 <lv_obj_design+0x228>)
464c: a803 add r0, sp, #12
464e: 4798 blx r3
4650: 2233 movs r2, #51 ; 0x33
4652: 4629 mov r1, r5
4654: 4620 mov r0, r4
4656: 47b0 blx r6
4658: 46b0 mov r8, r6
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
465a: b108 cbz r0, 4660 <lv_obj_design+0xe0>
draw_dsc.border_opa = LV_OPA_TRANSP;
465c: f88d 5020 strb.w r5, [sp, #32]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
4660: 4b52 ldr r3, [pc, #328] ; (47ac <lv_obj_design+0x22c>)
4662: aa03 add r2, sp, #12
4664: 2100 movs r1, #0
4666: 4620 mov r0, r4
4668: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
466a: 2204 movs r2, #4
466c: 2100 movs r1, #0
466e: 4620 mov r0, r4
4670: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4672: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4674: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4676: 2100 movs r1, #0
4678: 4620 mov r0, r4
467a: 47c0 blx r8
lv_area_copy(&coords, &obj->coords);
467c: f104 0910 add.w r9, r4, #16
4680: 4b45 ldr r3, [pc, #276] ; (4798 <lv_obj_design+0x218>)
4682: 4682 mov sl, r0
4684: 4649 mov r1, r9
4686: a801 add r0, sp, #4
4688: 4798 blx r3
coords.x2 += w;
468a: f8bd 0008 ldrh.w r0, [sp, #8]
coords.x1 -= w;
468e: f8bd 2004 ldrh.w r2, [sp, #4]
4692: b2b3 uxth r3, r6
4694: 1ad2 subs r2, r2, r3
coords.x2 += w;
4696: 4403 add r3, r0
4698: f8ad 3008 strh.w r3, [sp, #8]
coords.y1 -= h;
469c: f8bd 3006 ldrh.w r3, [sp, #6]
coords.x1 -= w;
46a0: f8ad 2004 strh.w r2, [sp, #4]
coords.y1 -= h;
46a4: fa1f f08a uxth.w r0, sl
46a8: 1a1b subs r3, r3, r0
46aa: f8ad 3006 strh.w r3, [sp, #6]
coords.y2 += h;
46ae: f8bd 300a ldrh.w r3, [sp, #10]
46b2: 4418 add r0, r3
46b4: f8ad 000a strh.w r0, [sp, #10]
lv_draw_rect(&coords, clip_area, &draw_dsc);
46b8: aa03 add r2, sp, #12
46ba: 4639 mov r1, r7
46bc: a801 add r0, sp, #4
46be: 4b3c ldr r3, [pc, #240] ; (47b0 <lv_obj_design+0x230>)
46c0: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
46c2: 2202 movs r2, #2
46c4: 2100 movs r1, #0
46c6: 4620 mov r0, r4
46c8: 47c0 blx r8
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
46ca: 2800 cmp r0, #0
46cc: d0b4 beq.n 4638 <lv_obj_design+0xb8>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
46ce: 4b39 ldr r3, [pc, #228] ; (47b4 <lv_obj_design+0x234>)
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
46d0: 4f39 ldr r7, [pc, #228] ; (47b8 <lv_obj_design+0x238>)
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
46d2: 201c movs r0, #28
46d4: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
46d6: 2201 movs r2, #1
46d8: 4606 mov r6, r0
46da: 2100 movs r1, #0
46dc: 4620 mov r0, r4
46de: 47c0 blx r8
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
46e0: 4649 mov r1, r9
46e2: 4602 mov r2, r0
46e4: 2300 movs r3, #0
46e6: 4630 mov r0, r6
46e8: 47b8 blx r7
lv_draw_mask_add(mp, obj + 8);
46ea: 4b34 ldr r3, [pc, #208] ; (47bc <lv_obj_design+0x23c>)
46ec: f504 7118 add.w r1, r4, #608 ; 0x260
46f0: 4630 mov r0, r6
46f2: 4798 blx r3
46f4: e7a0 b.n 4638 <lv_obj_design+0xb8>
else if(mode == LV_DESIGN_DRAW_POST) {
46f6: 2a01 cmp r2, #1
46f8: d001 beq.n 46fe <lv_obj_design+0x17e>
return LV_DESIGN_RES_OK;
46fa: 2500 movs r5, #0
46fc: e79c b.n 4638 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
46fe: 4d2a ldr r5, [pc, #168] ; (47a8 <lv_obj_design+0x228>)
4700: 2202 movs r2, #2
4702: 2100 movs r1, #0
4704: 47a8 blx r5
4706: 46a8 mov r8, r5
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
4708: b128 cbz r0, 4716 <lv_obj_design+0x196>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8);
470a: 4b2d ldr r3, [pc, #180] ; (47c0 <lv_obj_design+0x240>)
470c: f504 7018 add.w r0, r4, #608 ; 0x260
4710: 4798 blx r3
_lv_mem_buf_release(param);
4712: 4b2c ldr r3, [pc, #176] ; (47c4 <lv_obj_design+0x244>)
4714: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
4716: 2233 movs r2, #51 ; 0x33
4718: 2100 movs r1, #0
471a: 4620 mov r0, r4
471c: 47c0 blx r8
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
471e: 2800 cmp r0, #0
4720: d0eb beq.n 46fa <lv_obj_design+0x17a>
draw_dsc.bg_opa = LV_OPA_TRANSP;
4722: 2500 movs r5, #0
lv_draw_rect_dsc_init(&draw_dsc);
4724: a803 add r0, sp, #12
4726: 4b1f ldr r3, [pc, #124] ; (47a4 <lv_obj_design+0x224>)
4728: 4798 blx r3
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
472a: 4b20 ldr r3, [pc, #128] ; (47ac <lv_obj_design+0x22c>)
draw_dsc.bg_opa = LV_OPA_TRANSP;
472c: f88d 5018 strb.w r5, [sp, #24]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
4730: aa03 add r2, sp, #12
4732: 4629 mov r1, r5
4734: 4620 mov r0, r4
draw_dsc.pattern_opa = LV_OPA_TRANSP;
4736: f88d 5042 strb.w r5, [sp, #66] ; 0x42
draw_dsc.shadow_opa = LV_OPA_TRANSP;
473a: f88d 5034 strb.w r5, [sp, #52] ; 0x34
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
473e: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4740: 4629 mov r1, r5
4742: 2204 movs r2, #4
4744: 4620 mov r0, r4
4746: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4748: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
474a: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
474c: 4629 mov r1, r5
474e: 4620 mov r0, r4
4750: 47c0 blx r8
lv_area_copy(&coords, &obj->coords);
4752: f104 0110 add.w r1, r4, #16
4756: 4680 mov r8, r0
4758: 4b0f ldr r3, [pc, #60] ; (4798 <lv_obj_design+0x218>)
475a: a801 add r0, sp, #4
475c: 4798 blx r3
coords.x2 += w;
475e: f8bd 0008 ldrh.w r0, [sp, #8]
coords.x1 -= w;
4762: f8bd 2004 ldrh.w r2, [sp, #4]
4766: b2b3 uxth r3, r6
4768: 1ad2 subs r2, r2, r3
coords.x2 += w;
476a: 4403 add r3, r0
476c: f8ad 3008 strh.w r3, [sp, #8]
coords.y1 -= h;
4770: f8bd 3006 ldrh.w r3, [sp, #6]
coords.x1 -= w;
4774: f8ad 2004 strh.w r2, [sp, #4]
coords.y1 -= h;
4778: fa1f f088 uxth.w r0, r8
477c: 1a1b subs r3, r3, r0
477e: f8ad 3006 strh.w r3, [sp, #6]
coords.y2 += h;
4782: f8bd 300a ldrh.w r3, [sp, #10]
4786: 4418 add r0, r3
4788: f8ad 000a strh.w r0, [sp, #10]
lv_draw_rect(&coords, clip_area, &draw_dsc);
478c: 4b08 ldr r3, [pc, #32] ; (47b0 <lv_obj_design+0x230>)
478e: aa03 add r2, sp, #12
4790: 4639 mov r1, r7
4792: a801 add r0, sp, #4
4794: 4798 blx r3
4796: e74f b.n 4638 <lv_obj_design+0xb8>
4798: 00001cc9 .word 0x00001cc9
479c: 0000e0d9 .word 0x0000e0d9
47a0: 00003819 .word 0x00003819
47a4: 00009bb5 .word 0x00009bb5
47a8: 000036f1 .word 0x000036f1
47ac: 00004289 .word 0x00004289
47b0: 00009c01 .word 0x00009c01
47b4: 0000eefd .word 0x0000eefd
47b8: 00009925 .word 0x00009925
47bc: 00009719 .word 0x00009719
47c0: 000097d5 .word 0x000097d5
47c4: 0000ebb1 .word 0x0000ebb1
000047c8 <lv_obj_init_draw_label_dsc>:
{
47c8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
47cc: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar)
47ce: 4f28 ldr r7, [pc, #160] ; (4870 <lv_obj_init_draw_label_dsc+0xa8>)
47d0: f248 028c movw r2, #32908 ; 0x808c
47d4: 4605 mov r5, r0
47d6: 460e mov r6, r1
47d8: 47b8 blx r7
if(draw_dsc->opa <= LV_OPA_MIN) return;
47da: 2805 cmp r0, #5
draw_dsc->opa = lv_obj_get_style_text_opa(obj, part);
47dc: 7220 strb r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
47de: d945 bls.n 486c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
47e0: f248 020c movw r2, #32780 ; 0x800c
47e4: 4631 mov r1, r6
47e6: 4628 mov r0, r5
47e8: 47b8 blx r7
if(opa_scale < LV_OPA_MAX) {
47ea: 28f9 cmp r0, #249 ; 0xf9
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
47ec: bf9f itttt ls
47ee: 7a23 ldrbls r3, [r4, #8]
47f0: fb13 f000 smulbbls r0, r3, r0
47f4: f3c0 2007 ubfxls r0, r0, #8, #8
47f8: 7220 strbls r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
47fa: 7a23 ldrb r3, [r4, #8]
47fc: 2b05 cmp r3, #5
47fe: d935 bls.n 486c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
4800: f248 0289 movw r2, #32905 ; 0x8089
4804: 4631 mov r1, r6
4806: f8df 8074 ldr.w r8, [pc, #116] ; 487c <lv_obj_init_draw_label_dsc+0xb4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
480a: 4f1a ldr r7, [pc, #104] ; (4874 <lv_obj_init_draw_label_dsc+0xac>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
480c: 4628 mov r0, r5
480e: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
4810: f248 0280 movw r2, #32896 ; 0x8080
draw_dsc->color = lv_obj_get_style_text_color(obj, part);
4814: 8020 strh r0, [r4, #0]
4816: 4631 mov r1, r6
4818: 4628 mov r0, r5
481a: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
481c: f248 0281 movw r2, #32897 ; 0x8081
draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part);
4820: 81a0 strh r0, [r4, #12]
4822: 4631 mov r1, r6
4824: 4628 mov r0, r5
4826: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
4828: f248 0282 movw r2, #32898 ; 0x8082
draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part);
482c: 8160 strh r0, [r4, #10]
482e: 4631 mov r1, r6
4830: 4628 mov r0, r5
4832: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4834: f248 0283 movw r2, #32899 ; 0x8083
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
4838: 7620 strb r0, [r4, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
483a: 4631 mov r1, r6
483c: 4628 mov r0, r5
483e: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4840: 4b0d ldr r3, [pc, #52] ; (4878 <lv_obj_init_draw_label_dsc+0xb0>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4842: 7660 strb r0, [r4, #25]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4844: f248 028e movw r2, #32910 ; 0x808e
4848: 4631 mov r1, r6
484a: 4628 mov r0, r5
484c: 4798 blx r3
if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) {
484e: 89e2 ldrh r2, [r4, #14]
draw_dsc->font = lv_obj_get_style_text_font(obj, part);
4850: 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) {
4852: f64f 73ff movw r3, #65535 ; 0xffff
4856: 429a cmp r2, r3
4858: d008 beq.n 486c <lv_obj_init_draw_label_dsc+0xa4>
485a: 8a22 ldrh r2, [r4, #16]
485c: 429a cmp r2, r3
485e: d005 beq.n 486c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar)
4860: f248 028a movw r2, #32906 ; 0x808a
4864: 4631 mov r1, r6
4866: 4628 mov r0, r5
4868: 47c0 blx r8
draw_dsc->color = lv_obj_get_style_text_sel_color(obj, part);
486a: 8020 strh r0, [r4, #0]
}
486c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
4870: 00003819 .word 0x00003819
4874: 000036f1 .word 0x000036f1
4878: 000038a9 .word 0x000038a9
487c: 00003795 .word 0x00003795
00004880 <lv_obj_init_draw_img_dsc>:
{
4880: b5f8 push {r3, r4, r5, r6, r7, lr}
4882: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
4884: 4f23 ldr r7, [pc, #140] ; (4914 <lv_obj_init_draw_img_dsc+0x94>)
4886: f248 02ac movw r2, #32940 ; 0x80ac
488a: 4605 mov r5, r0
488c: 460e mov r6, r1
488e: 47b8 blx r7
if(draw_dsc->opa <= LV_OPA_MIN) return;
4890: 2805 cmp r0, #5
draw_dsc->opa = lv_obj_get_style_image_opa(obj, part);
4892: 7020 strb r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4894: d93c bls.n 4910 <lv_obj_init_draw_img_dsc+0x90>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4896: f248 020c movw r2, #32780 ; 0x800c
489a: 4631 mov r1, r6
489c: 4628 mov r0, r5
489e: 47b8 blx r7
if(opa_scale < LV_OPA_MAX) {
48a0: 28f9 cmp r0, #249 ; 0xf9
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
48a2: bf9f itttt ls
48a4: 7823 ldrbls r3, [r4, #0]
48a6: fb13 f000 smulbbls r0, r3, r0
48aa: f3c0 2007 ubfxls r0, r0, #8, #8
48ae: 7020 strbls r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
48b0: 7823 ldrb r3, [r4, #0]
48b2: 2b05 cmp r3, #5
48b4: d92c bls.n 4910 <lv_obj_init_draw_img_dsc+0x90>
draw_dsc->angle = 0;
48b6: 2300 movs r3, #0
48b8: 8063 strh r3, [r4, #2]
draw_dsc->zoom = LV_IMG_ZOOM_NONE;
48ba: f44f 7380 mov.w r3, #256 ; 0x100
48be: 8123 strh r3, [r4, #8]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
48c0: 8aab ldrh r3, [r5, #20]
48c2: 8a2a ldrh r2, [r5, #16]
48c4: 3301 adds r3, #1
48c6: 1a9b subs r3, r3, r2
draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2;
48c8: f3c3 32c0 ubfx r2, r3, #15, #1
48cc: fa02 f383 sxtah r3, r2, r3
48d0: 105b asrs r3, r3, #1
48d2: 80a3 strh r3, [r4, #4]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
48d4: 8aeb ldrh r3, [r5, #22]
48d6: 8a6a ldrh r2, [r5, #18]
48d8: 3301 adds r3, #1
48da: 1a9b subs r3, r3, r2
draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2;
48dc: f3c3 32c0 ubfx r2, r3, #15, #1
48e0: fa02 f383 sxtah r3, r2, r3
48e4: 105b asrs r3, r3, #1
48e6: 80e3 strh r3, [r4, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
48e8: f248 02ad movw r2, #32941 ; 0x80ad
48ec: 4631 mov r1, r6
48ee: 4628 mov r0, r5
48f0: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
48f2: 4b09 ldr r3, [pc, #36] ; (4918 <lv_obj_init_draw_img_dsc+0x98>)
draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part);
48f4: 72a0 strb r0, [r4, #10]
48f6: f248 02a9 movw r2, #32937 ; 0x80a9
48fa: 4631 mov r1, r6
48fc: 4628 mov r0, r5
48fe: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
4900: 4b06 ldr r3, [pc, #24] ; (491c <lv_obj_init_draw_img_dsc+0x9c>)
draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part);
4902: 81a0 strh r0, [r4, #12]
4904: f248 02a0 movw r2, #32928 ; 0x80a0
4908: 4631 mov r1, r6
490a: 4628 mov r0, r5
490c: 4798 blx r3
490e: 73a0 strb r0, [r4, #14]
}
4910: bdf8 pop {r3, r4, r5, r6, r7, pc}
4912: bf00 nop
4914: 00003819 .word 0x00003819
4918: 00003795 .word 0x00003795
491c: 000036f1 .word 0x000036f1
00004920 <lv_obj_get_draw_rect_ext_pad_size>:
{
4920: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
4924: 2250 movs r2, #80 ; 0x50
4926: 4f77 ldr r7, [pc, #476] ; (4b04 <lv_obj_get_draw_rect_ext_pad_size+0x1e4>)
4928: b08a sub sp, #40 ; 0x28
492a: 4604 mov r4, r0
492c: 460e mov r6, r1
492e: 47b8 blx r7
if(sh_width) {
4930: 4605 mov r5, r0
4932: 2800 cmp r0, #0
4934: f040 80b7 bne.w 4aa6 <lv_obj_get_draw_rect_ext_pad_size+0x186>
lv_coord_t s = 0;
4938: 2500 movs r5, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
493a: f8df 91d0 ldr.w r9, [pc, #464] ; 4b0c <lv_obj_get_draw_rect_ext_pad_size+0x1ec>
493e: 227f movs r2, #127 ; 0x7f
4940: 4631 mov r1, r6
4942: 4620 mov r0, r4
4944: 47c8 blx r9
if(value_str) {
4946: 4680 mov r8, r0
4948: 2800 cmp r0, #0
494a: f000 8081 beq.w 4a50 <lv_obj_get_draw_rect_ext_pad_size+0x130>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
494e: 4b6e ldr r3, [pc, #440] ; (4b08 <lv_obj_get_draw_rect_ext_pad_size+0x1e8>)
4950: 227c movs r2, #124 ; 0x7c
4952: 4631 mov r1, r6
4954: 4620 mov r0, r4
4956: 4798 blx r3
if(value_opa > LV_OPA_MIN) {
4958: 2805 cmp r0, #5
495a: d979 bls.n 4a50 <lv_obj_get_draw_rect_ext_pad_size+0x130>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
495c: 2270 movs r2, #112 ; 0x70
495e: 4631 mov r1, r6
4960: 4620 mov r0, r4
4962: 47b8 blx r7
4964: 2270 movs r2, #112 ; 0x70
4966: 9005 str r0, [sp, #20]
4968: 4631 mov r1, r6
496a: 4620 mov r0, r4
496c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
496e: 227e movs r2, #126 ; 0x7e
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
4970: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
4972: 4631 mov r1, r6
4974: 4620 mov r0, r4
4976: 47c8 blx r9
_lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE);
4978: f04f 0900 mov.w r9, #0
497c: f647 4118 movw r1, #31768 ; 0x7c18
4980: e9cd 1901 strd r1, r9, [sp, #4]
4984: 4602 mov r2, r0
4986: 4641 mov r1, r8
4988: 9b05 ldr r3, [sp, #20]
498a: f8df 8184 ldr.w r8, [pc, #388] ; 4b10 <lv_obj_get_draw_rect_ext_pad_size+0x1f0>
498e: f8cd a000 str.w sl, [sp]
4992: a806 add r0, sp, #24
4994: 47c0 blx r8
value_area.x2 = txt_size.x - 1;
4996: f8bd 3018 ldrh.w r3, [sp, #24]
value_area.x1 = 0;
499a: f8ad 9020 strh.w r9, [sp, #32]
value_area.x2 = txt_size.x - 1;
499e: 3b01 subs r3, #1
49a0: f8ad 3024 strh.w r3, [sp, #36] ; 0x24
value_area.y2 = txt_size.y - 1;
49a4: f8bd 301a ldrh.w r3, [sp, #26]
value_area.y1 = 0;
49a8: f8ad 9022 strh.w r9, [sp, #34] ; 0x22
value_area.y2 = txt_size.y - 1;
49ac: 3b01 subs r3, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
49ae: 2275 movs r2, #117 ; 0x75
49b0: 4631 mov r1, r6
49b2: 4620 mov r0, r4
49b4: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
49b8: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
49ba: 2273 movs r2, #115 ; 0x73
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
49bc: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
49be: 4631 mov r1, r6
49c0: 4620 mov r0, r4
49c2: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
49c4: 2274 movs r2, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
49c6: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
49c8: 4631 mov r1, r6
49ca: 4620 mov r0, r4
49cc: 47b8 blx r7
_lv_area_align(&obj->coords, &value_area, align, &p_align);
49ce: fa5f f28a uxtb.w r2, sl
49d2: 4680 mov r8, r0
49d4: ab07 add r3, sp, #28
49d6: a908 add r1, sp, #32
49d8: f104 0010 add.w r0, r4, #16
49dc: f8df a134 ldr.w sl, [pc, #308] ; 4b14 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>
49e0: 47d0 blx sl
value_area.x1 += p_align.x + xofs;
49e2: f8bd 301c ldrh.w r3, [sp, #28]
49e6: f8bd 1020 ldrh.w r1, [sp, #32]
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
49ea: f9b4 2010 ldrsh.w r2, [r4, #16]
value_area.y1 += p_align.y + yofs;
49ee: f8bd 001e ldrh.w r0, [sp, #30]
value_area.x1 += p_align.x + xofs;
49f2: 444b add r3, r9
49f4: fa11 f183 uxtah r1, r1, r3
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
49f8: b209 sxth r1, r1
49fa: 1a52 subs r2, r2, r1
49fc: 42aa cmp r2, r5
49fe: bfb8 it lt
4a00: 462a movlt r2, r5
value_area.y1 += p_align.y + yofs;
4a02: f8bd 5022 ldrh.w r5, [sp, #34] ; 0x22
4a06: 4440 add r0, r8
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
4a08: 4611 mov r1, r2
value_area.y1 += p_align.y + yofs;
4a0a: fa15 f580 uxtah r5, r5, r0
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
4a0e: f9b4 2012 ldrsh.w r2, [r4, #18]
4a12: b22d sxth r5, r5
4a14: 1b55 subs r5, r2, r5
4a16: b20a sxth r2, r1
4a18: 4295 cmp r5, r2
4a1a: bfb8 it lt
4a1c: 4615 movlt r5, r2
value_area.x2 += p_align.x + xofs;
4a1e: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
4a22: fa12 f383 uxtah r3, r2, r3
s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2);
4a26: f9b4 2014 ldrsh.w r2, [r4, #20]
4a2a: b21b sxth r3, r3
4a2c: 1a9b subs r3, r3, r2
4a2e: b22d sxth r5, r5
4a30: 42ab cmp r3, r5
4a32: bfb8 it lt
4a34: 462b movlt r3, r5
value_area.y2 += p_align.y + yofs;
4a36: f8bd 5026 ldrh.w r5, [sp, #38] ; 0x26
4a3a: fa15 f580 uxtah r5, r5, r0
s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2);
4a3e: f9b4 0016 ldrsh.w r0, [r4, #22]
4a42: b22d sxth r5, r5
4a44: 1a2d subs r5, r5, r0
4a46: b21b sxth r3, r3
4a48: 42ab cmp r3, r5
4a4a: bfb8 it lt
4a4c: 462b movlt r3, r5
4a4e: b21d sxth r5, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
4a50: 2240 movs r2, #64 ; 0x40
4a52: 4631 mov r1, r6
4a54: 4620 mov r0, r4
4a56: 47b8 blx r7
if(outline_width) {
4a58: 4680 mov r8, r0
4a5a: b178 cbz r0, 4a7c <lv_obj_get_draw_rect_ext_pad_size+0x15c>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
4a5c: 4b2a ldr r3, [pc, #168] ; (4b08 <lv_obj_get_draw_rect_ext_pad_size+0x1e8>)
4a5e: 224c movs r2, #76 ; 0x4c
4a60: 4631 mov r1, r6
4a62: 4620 mov r0, r4
4a64: 4798 blx r3
if(outline_opa > LV_OPA_MIN) {
4a66: 2805 cmp r0, #5
4a68: d908 bls.n 4a7c <lv_obj_get_draw_rect_ext_pad_size+0x15c>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
4a6a: 2241 movs r2, #65 ; 0x41
4a6c: 4631 mov r1, r6
4a6e: 4620 mov r0, r4
4a70: 47b8 blx r7
s = LV_MATH_MAX(s, outline_pad + outline_width);
4a72: 4440 add r0, r8
4a74: 4285 cmp r5, r0
4a76: bfb8 it lt
4a78: 4605 movlt r5, r0
4a7a: b22d sxth r5, r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4a7c: 4631 mov r1, r6
4a7e: 2204 movs r2, #4
4a80: 4620 mov r0, r4
4a82: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4a84: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4a86: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4a88: 4631 mov r1, r6
4a8a: 4620 mov r0, r4
4a8c: 47b8 blx r7
lv_coord_t wh = LV_MATH_MAX(w, h);
4a8e: 4540 cmp r0, r8
4a90: bfb8 it lt
4a92: 4640 movlt r0, r8
4a94: b200 sxth r0, r0
if(wh > 0) s += wh;
4a96: 2800 cmp r0, #0
4a98: bfc4 itt gt
4a9a: 182d addgt r5, r5, r0
4a9c: b22d sxthgt r5, r5
}
4a9e: 4628 mov r0, r5
4aa0: b00a add sp, #40 ; 0x28
4aa2: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
4aa6: 4b18 ldr r3, [pc, #96] ; (4b08 <lv_obj_get_draw_rect_ext_pad_size+0x1e8>)
4aa8: 225c movs r2, #92 ; 0x5c
4aaa: 4631 mov r1, r6
4aac: 4620 mov r0, r4
4aae: 4798 blx r3
if(sh_opa > LV_OPA_MIN) {
4ab0: 2805 cmp r0, #5
4ab2: f67f af41 bls.w 4938 <lv_obj_get_draw_rect_ext_pad_size+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
4ab6: 2253 movs r2, #83 ; 0x53
4ab8: 4631 mov r1, r6
4aba: 4620 mov r0, r4
4abc: 47b8 blx r7
sh_width = sh_width / 2; /*THe blur adds only half width*/
4abe: eb05 75d5 add.w r5, r5, r5, lsr #31
sh_width++;
4ac2: eb00 0565 add.w r5, r0, r5, asr #1
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4ac6: 2251 movs r2, #81 ; 0x51
4ac8: 4631 mov r1, r6
4aca: 4620 mov r0, r4
4acc: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4ace: 2252 movs r2, #82 ; 0x52
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4ad0: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4ad2: 4631 mov r1, r6
4ad4: 4620 mov r0, r4
4ad6: 47b8 blx r7
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
4ad8: 2800 cmp r0, #0
4ada: bfb8 it lt
4adc: 4240 neglt r0, r0
4ade: f1b8 0f00 cmp.w r8, #0
4ae2: bfb8 it lt
4ae4: f1c8 0800 rsblt r8, r8, #0
sh_width += lv_obj_get_style_shadow_spread(obj, part);
4ae8: 3501 adds r5, #1
4aea: b2ad uxth r5, r5
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
4aec: b280 uxth r0, r0
4aee: fa1f f888 uxth.w r8, r8
4af2: 4540 cmp r0, r8
4af4: bf2c ite cs
4af6: 182d addcs r5, r5, r0
4af8: 4445 addcc r5, r8
s = LV_MATH_MAX(s, sh_width);
4afa: b22d sxth r5, r5
4afc: ea25 75e5 bic.w r5, r5, r5, asr #31
4b00: e71b b.n 493a <lv_obj_get_draw_rect_ext_pad_size+0x1a>
4b02: bf00 nop
4b04: 000036f1 .word 0x000036f1
4b08: 00003819 .word 0x00003819
4b0c: 000038a9 .word 0x000038a9
4b10: 000101fd .word 0x000101fd
4b14: 0000e179 .word 0x0000e179
00004b18 <lv_obj_signal>:
if(sign == LV_SIGNAL_GET_STYLE) {
4b18: 2908 cmp r1, #8
{
4b1a: b510 push {r4, lr}
4b1c: 4604 mov r4, r0
if(sign == LV_SIGNAL_GET_STYLE) {
4b1e: d108 bne.n 4b32 <lv_obj_signal+0x1a>
if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list;
4b20: 7813 ldrb r3, [r2, #0]
4b22: b91b cbnz r3, 4b2c <lv_obj_signal+0x14>
4b24: 3428 adds r4, #40 ; 0x28
4b26: 6054 str r4, [r2, #4]
lv_res_t res = LV_RES_OK;
4b28: 2401 movs r4, #1
4b2a: e011 b.n 4b50 <lv_obj_signal+0x38>
else info->result = NULL;
4b2c: 2300 movs r3, #0
4b2e: 6053 str r3, [r2, #4]
4b30: e7fa b.n 4b28 <lv_obj_signal+0x10>
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
4b32: 2907 cmp r1, #7
4b34: d105 bne.n 4b42 <lv_obj_signal+0x2a>
}
4b36: e8bd 4010 ldmia.w sp!, {r4, lr}
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
4b3a: 4927 ldr r1, [pc, #156] ; (4bd8 <lv_obj_signal+0xc0>)
4b3c: 4b27 ldr r3, [pc, #156] ; (4bdc <lv_obj_signal+0xc4>)
4b3e: 4610 mov r0, r2
4b40: 4718 bx r3
if(sign == LV_SIGNAL_CHILD_CHG) {
4b42: 2901 cmp r1, #1
4b44: d106 bne.n 4b54 <lv_obj_signal+0x3c>
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
4b46: 4b26 ldr r3, [pc, #152] ; (4be0 <lv_obj_signal+0xc8>)
4b48: 4798 blx r3
4b4a: f080 0001 eor.w r0, r0, #1
return LV_RES_OK;
4b4e: b2c4 uxtb r4, r0
}
4b50: 4620 mov r0, r4
4b52: bd10 pop {r4, pc}
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
4b54: 2906 cmp r1, #6
4b56: d109 bne.n 4b6c <lv_obj_signal+0x54>
lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN);
4b58: 4b22 ldr r3, [pc, #136] ; (4be4 <lv_obj_signal+0xcc>)
4b5a: 2100 movs r1, #0
4b5c: 4798 blx r3
obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d);
4b5e: f9b4 3032 ldrsh.w r3, [r4, #50] ; 0x32
4b62: 4298 cmp r0, r3
4b64: bfb8 it lt
4b66: 4618 movlt r0, r3
4b68: 8660 strh r0, [r4, #50] ; 0x32
4b6a: e7dd b.n 4b28 <lv_obj_signal+0x10>
else if(sign == LV_SIGNAL_PARENT_SIZE_CHG) {
4b6c: 2903 cmp r1, #3
4b6e: d107 bne.n 4b80 <lv_obj_signal+0x68>
if(obj->realign.auto_realign) {
4b70: f890 4049 ldrb.w r4, [r0, #73] ; 0x49
4b74: f014 0401 ands.w r4, r4, #1
4b78: d0d6 beq.n 4b28 <lv_obj_signal+0x10>
lv_obj_realign(obj);
4b7a: 4b1b ldr r3, [pc, #108] ; (4be8 <lv_obj_signal+0xd0>)
4b7c: 4798 blx r3
4b7e: e7e7 b.n 4b50 <lv_obj_signal+0x38>
else if(sign == LV_SIGNAL_STYLE_CHG) {
4b80: 2904 cmp r1, #4
4b82: d102 bne.n 4b8a <lv_obj_signal+0x72>
lv_obj_refresh_ext_draw_pad(obj);
4b84: 4b19 ldr r3, [pc, #100] ; (4bec <lv_obj_signal+0xd4>)
4b86: 4798 blx r3
4b88: e7ce b.n 4b28 <lv_obj_signal+0x10>
else if(sign == LV_SIGNAL_PRESSED) {
4b8a: 290b cmp r1, #11
4b8c: d103 bne.n 4b96 <lv_obj_signal+0x7e>
lv_obj_add_state(obj, LV_STATE_PRESSED);
4b8e: 4b18 ldr r3, [pc, #96] ; (4bf0 <lv_obj_signal+0xd8>)
4b90: 2110 movs r1, #16
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
4b92: 4798 blx r3
4b94: e7c8 b.n 4b28 <lv_obj_signal+0x10>
else if(sign == LV_SIGNAL_RELEASED || sign == LV_SIGNAL_PRESS_LOST) {
4b96: f1a1 020d sub.w r2, r1, #13
4b9a: 2a01 cmp r2, #1
4b9c: d802 bhi.n 4ba4 <lv_obj_signal+0x8c>
lv_obj_clear_state(obj, LV_STATE_PRESSED);
4b9e: 2110 movs r1, #16
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
4ba0: 4b14 ldr r3, [pc, #80] ; (4bf4 <lv_obj_signal+0xdc>)
4ba2: e7f6 b.n 4b92 <lv_obj_signal+0x7a>
else if(sign == LV_SIGNAL_FOCUS) {
4ba4: 2916 cmp r1, #22
4ba6: d10e bne.n 4bc6 <lv_obj_signal+0xae>
if(lv_group_get_editing(lv_obj_get_group(obj))) {
4ba8: 4b13 ldr r3, [pc, #76] ; (4bf8 <lv_obj_signal+0xe0>)
4baa: 4798 blx r3
4bac: 4b13 ldr r3, [pc, #76] ; (4bfc <lv_obj_signal+0xe4>)
4bae: 4798 blx r3
4bb0: 4b0f ldr r3, [pc, #60] ; (4bf0 <lv_obj_signal+0xd8>)
4bb2: b110 cbz r0, 4bba <lv_obj_signal+0xa2>
lv_obj_add_state(obj, state);
4bb4: 2106 movs r1, #6
4bb6: 4620 mov r0, r4
4bb8: e7eb b.n 4b92 <lv_obj_signal+0x7a>
lv_obj_add_state(obj, LV_STATE_FOCUSED);
4bba: 2102 movs r1, #2
4bbc: 4620 mov r0, r4
4bbe: 4798 blx r3
lv_obj_clear_state(obj, LV_STATE_EDITED);
4bc0: 2104 movs r1, #4
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
4bc2: 4620 mov r0, r4
4bc4: e7ec b.n 4ba0 <lv_obj_signal+0x88>
else if(sign == LV_SIGNAL_DEFOCUS) {
4bc6: 2917 cmp r1, #23
4bc8: d101 bne.n 4bce <lv_obj_signal+0xb6>
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
4bca: 2106 movs r1, #6
4bcc: e7f9 b.n 4bc2 <lv_obj_signal+0xaa>
else if(sign == LV_SIGNAL_CLEANUP) {
4bce: 2900 cmp r1, #0
4bd0: d1aa bne.n 4b28 <lv_obj_signal+0x10>
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
4bd2: 4b0b ldr r3, [pc, #44] ; (4c00 <lv_obj_signal+0xe8>)
4bd4: e7dd b.n 4b92 <lv_obj_signal+0x7a>
4bd6: bf00 nop
4bd8: 0001f09f .word 0x0001f09f
4bdc: 0000426d .word 0x0000426d
4be0: 00003631 .word 0x00003631
4be4: 00004921 .word 0x00004921
4be8: 00002c91 .word 0x00002c91
4bec: 00002081 .word 0x00002081
4bf0: 00003e79 .word 0x00003e79
4bf4: 00003edd .word 0x00003edd
4bf8: 00003fd1 .word 0x00003fd1
4bfc: 00001bcf .word 0x00001bcf
4c00: 000024f9 .word 0x000024f9
00004c04 <lv_refr_vdb_flush>:
/**
* Flush the content of the VDB
*/
static void lv_refr_vdb_flush(void)
{
4c04: b538 push {r3, r4, r5, lr}
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4c06: 4d17 ldr r5, [pc, #92] ; (4c64 <lv_refr_vdb_flush+0x60>)
4c08: 4b17 ldr r3, [pc, #92] ; (4c68 <lv_refr_vdb_flush+0x64>)
4c0a: 6828 ldr r0, [r5, #0]
4c0c: 4798 blx r3
/*In double buffered mode wait until the other buffer is flushed before flushing the current
* one*/
if(lv_disp_is_double_buf(disp_refr)) {
4c0e: 4b17 ldr r3, [pc, #92] ; (4c6c <lv_refr_vdb_flush+0x68>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4c10: 4604 mov r4, r0
if(lv_disp_is_double_buf(disp_refr)) {
4c12: 6828 ldr r0, [r5, #0]
4c14: 4798 blx r3
4c16: b958 cbnz r0, 4c30 <lv_refr_vdb_flush+0x2c>
}
}
vdb->flushing = 1;
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4c18: 6828 ldr r0, [r5, #0]
vdb->flushing = 1;
4c1a: 2301 movs r3, #1
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4c1c: 6842 ldr r2, [r0, #4]
vdb->flushing = 1;
4c1e: 61a3 str r3, [r4, #24]
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4c20: 6a11 ldr r1, [r2, #32]
4c22: 07c9 lsls r1, r1, #31
4c24: d409 bmi.n 4c3a <lv_refr_vdb_flush+0x36>
else vdb->flushing_last = 0;
4c26: 2300 movs r3, #0
4c28: e00a b.n 4c40 <lv_refr_vdb_flush+0x3c>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
4c2a: 69c3 ldr r3, [r0, #28]
4c2c: b10b cbz r3, 4c32 <lv_refr_vdb_flush+0x2e>
4c2e: 4798 blx r3
4c30: 6828 ldr r0, [r5, #0]
while(vdb->flushing) {
4c32: 69a3 ldr r3, [r4, #24]
4c34: 2b00 cmp r3, #0
4c36: d1f8 bne.n 4c2a <lv_refr_vdb_flush+0x26>
4c38: e7ee b.n 4c18 <lv_refr_vdb_flush+0x14>
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4c3a: 6a12 ldr r2, [r2, #32]
4c3c: 0792 lsls r2, r2, #30
4c3e: d5f2 bpl.n 4c26 <lv_refr_vdb_flush+0x22>
else vdb->flushing_last = 0;
4c40: 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);
4c42: 68c3 ldr r3, [r0, #12]
4c44: b11b cbz r3, 4c4e <lv_refr_vdb_flush+0x4a>
4c46: 68a2 ldr r2, [r4, #8]
4c48: f104 0110 add.w r1, r4, #16
4c4c: 4798 blx r3
if(vdb->buf1 && vdb->buf2) {
4c4e: 6822 ldr r2, [r4, #0]
4c50: b132 cbz r2, 4c60 <lv_refr_vdb_flush+0x5c>
4c52: 6863 ldr r3, [r4, #4]
4c54: b123 cbz r3, 4c60 <lv_refr_vdb_flush+0x5c>
if(vdb->buf_act == vdb->buf1)
4c56: 68a1 ldr r1, [r4, #8]
vdb->buf_act = vdb->buf2;
4c58: 428a cmp r2, r1
4c5a: bf18 it ne
4c5c: 4613 movne r3, r2
4c5e: 60a3 str r3, [r4, #8]
else
vdb->buf_act = vdb->buf1;
}
}
4c60: bd38 pop {r3, r4, r5, pc}
4c62: bf00 nop
4c64: 20008100 .word 0x20008100
4c68: 0000da25 .word 0x0000da25
4c6c: 0000da29 .word 0x0000da29
00004c70 <lv_refr_get_top_obj>:
{
4c70: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4c74: 2200 movs r2, #0
{
4c76: 460c mov r4, r1
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4c78: 4b17 ldr r3, [pc, #92] ; (4cd8 <lv_refr_get_top_obj+0x68>)
4c7a: 3110 adds r1, #16
{
4c7c: 4607 mov r7, r0
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4c7e: 4798 blx r3
4c80: b910 cbnz r0, 4c88 <lv_refr_get_top_obj+0x18>
lv_obj_t * found_p = NULL;
4c82: 2000 movs r0, #0
}
4c84: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4c88: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
4c8c: 06db lsls r3, r3, #27
4c8e: d4f8 bmi.n 4c82 <lv_refr_get_top_obj+0x12>
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4c90: 6a23 ldr r3, [r4, #32]
4c92: b19b cbz r3, 4cbc <lv_refr_get_top_obj+0x4c>
4c94: 2202 movs r2, #2
4c96: 4639 mov r1, r7
4c98: 4620 mov r0, r4
4c9a: 4798 blx r3
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
4c9c: 2803 cmp r0, #3
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4c9e: 4606 mov r6, r0
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
4ca0: d0ef beq.n 4c82 <lv_refr_get_top_obj+0x12>
_LV_LL_READ(obj->child_ll, i) {
4ca2: f104 0804 add.w r8, r4, #4
4ca6: 4b0d ldr r3, [pc, #52] ; (4cdc <lv_refr_get_top_obj+0x6c>)
4ca8: f8df 9034 ldr.w r9, [pc, #52] ; 4ce0 <lv_refr_get_top_obj+0x70>
4cac: 4640 mov r0, r8
4cae: 4798 blx r3
4cb0: 4605 mov r5, r0
4cb2: b92d cbnz r5, 4cc0 <lv_refr_get_top_obj+0x50>
if(design_res == LV_DESIGN_RES_COVER) {
4cb4: 2e01 cmp r6, #1
4cb6: d1e4 bne.n 4c82 <lv_refr_get_top_obj+0x12>
4cb8: 4620 mov r0, r4
4cba: e7e3 b.n 4c84 <lv_refr_get_top_obj+0x14>
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4cbc: 2602 movs r6, #2
4cbe: e7f0 b.n 4ca2 <lv_refr_get_top_obj+0x32>
found_p = lv_refr_get_top_obj(area_p, i);
4cc0: 4629 mov r1, r5
4cc2: 4638 mov r0, r7
4cc4: f7ff ffd4 bl 4c70 <lv_refr_get_top_obj>
if(found_p != NULL) {
4cc8: 2800 cmp r0, #0
4cca: d1db bne.n 4c84 <lv_refr_get_top_obj+0x14>
_LV_LL_READ(obj->child_ll, i) {
4ccc: 4629 mov r1, r5
4cce: 4640 mov r0, r8
4cd0: 47c8 blx r9
4cd2: 4605 mov r5, r0
4cd4: e7ed b.n 4cb2 <lv_refr_get_top_obj+0x42>
4cd6: bf00 nop
4cd8: 0000e0d9 .word 0x0000e0d9
4cdc: 0000e6f1 .word 0x0000e6f1
4ce0: 0000e6fd .word 0x0000e6fd
00004ce4 <lv_refr_obj>:
{
4ce4: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
if(obj->hidden != 0) return;
4ce8: f890 9034 ldrb.w r9, [r0, #52] ; 0x34
4cec: f019 0910 ands.w r9, r9, #16
{
4cf0: b08b sub sp, #44 ; 0x2c
4cf2: 4604 mov r4, r0
4cf4: 4688 mov r8, r1
if(obj->hidden != 0) return;
4cf6: d13c bne.n 4d72 <lv_refr_obj+0x8e>
lv_coord_t ext_size = obj->ext_draw_pad;
4cf8: f9b0 5032 ldrsh.w r5, [r0, #50] ; 0x32
lv_obj_get_coords(obj, &obj_area);
4cfc: 4e31 ldr r6, [pc, #196] ; (4dc4 <lv_refr_obj+0xe0>)
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4cfe: 4f32 ldr r7, [pc, #200] ; (4dc8 <lv_refr_obj+0xe4>)
lv_obj_get_coords(obj, &obj_area);
4d00: a904 add r1, sp, #16
4d02: 47b0 blx r6
obj_area.x1 -= ext_size;
4d04: f8bd 2010 ldrh.w r2, [sp, #16]
4d08: b2ab uxth r3, r5
4d0a: 1ad2 subs r2, r2, r3
4d0c: f8ad 2010 strh.w r2, [sp, #16]
obj_area.y1 -= ext_size;
4d10: f8bd 2012 ldrh.w r2, [sp, #18]
4d14: 1ad2 subs r2, r2, r3
4d16: f8ad 2012 strh.w r2, [sp, #18]
obj_area.x2 += ext_size;
4d1a: f8bd 2014 ldrh.w r2, [sp, #20]
4d1e: 441a add r2, r3
4d20: f8ad 2014 strh.w r2, [sp, #20]
obj_area.y2 += ext_size;
4d24: f8bd 2016 ldrh.w r2, [sp, #22]
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4d28: 4641 mov r1, r8
obj_area.y2 += ext_size;
4d2a: 4413 add r3, r2
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4d2c: a802 add r0, sp, #8
4d2e: aa04 add r2, sp, #16
obj_area.y2 += ext_size;
4d30: f8ad 3016 strh.w r3, [sp, #22]
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4d34: 47b8 blx r7
if(union_ok != false) {
4d36: b1e0 cbz r0, 4d72 <lv_refr_obj+0x8e>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN);
4d38: 6a23 ldr r3, [r4, #32]
4d3a: b11b cbz r3, 4d44 <lv_refr_obj+0x60>
4d3c: 464a mov r2, r9
4d3e: a902 add r1, sp, #8
4d40: 4620 mov r0, r4
4d42: 4798 blx r3
lv_obj_get_coords(obj, &obj_area);
4d44: a904 add r1, sp, #16
4d46: 4620 mov r0, r4
4d48: 47b0 blx r6
union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area);
4d4a: aa04 add r2, sp, #16
4d4c: 4641 mov r1, r8
4d4e: 4668 mov r0, sp
4d50: 47b8 blx r7
if(union_ok != false) {
4d52: b140 cbz r0, 4d66 <lv_refr_obj+0x82>
_LV_LL_READ_BACK(obj->child_ll, child_p) {
4d54: f104 0804 add.w r8, r4, #4
4d58: 4b1c ldr r3, [pc, #112] ; (4dcc <lv_refr_obj+0xe8>)
4d5a: f8df 9074 ldr.w r9, [pc, #116] ; 4dd0 <lv_refr_obj+0xec>
4d5e: 4640 mov r0, r8
4d60: 4798 blx r3
4d62: 4605 mov r5, r0
4d64: b945 cbnz r5, 4d78 <lv_refr_obj+0x94>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
4d66: 6a23 ldr r3, [r4, #32]
4d68: b11b cbz r3, 4d72 <lv_refr_obj+0x8e>
4d6a: 2201 movs r2, #1
4d6c: a902 add r1, sp, #8
4d6e: 4620 mov r0, r4
4d70: 4798 blx r3
}
4d72: b00b add sp, #44 ; 0x2c
4d74: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
lv_obj_get_coords(child_p, &child_area);
4d78: a908 add r1, sp, #32
4d7a: 4628 mov r0, r5
4d7c: 47b0 blx r6
child_area.x1 -= ext_size;
4d7e: 8e6b ldrh r3, [r5, #50] ; 0x32
4d80: f8bd 2020 ldrh.w r2, [sp, #32]
4d84: 1ad2 subs r2, r2, r3
4d86: f8ad 2020 strh.w r2, [sp, #32]
child_area.y1 -= ext_size;
4d8a: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
4d8e: 1ad2 subs r2, r2, r3
4d90: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
child_area.x2 += ext_size;
4d94: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
4d98: 441a add r2, r3
4d9a: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
child_area.y2 += ext_size;
4d9e: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
4da2: 4669 mov r1, sp
child_area.y2 += ext_size;
4da4: 4413 add r3, r2
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
4da6: a806 add r0, sp, #24
4da8: aa08 add r2, sp, #32
child_area.y2 += ext_size;
4daa: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
4dae: 47b8 blx r7
if(union_ok) {
4db0: b118 cbz r0, 4dba <lv_refr_obj+0xd6>
lv_refr_obj(child_p, &mask_child);
4db2: a906 add r1, sp, #24
4db4: 4628 mov r0, r5
4db6: f7ff ff95 bl 4ce4 <lv_refr_obj>
_LV_LL_READ_BACK(obj->child_ll, child_p) {
4dba: 4629 mov r1, r5
4dbc: 4640 mov r0, r8
4dbe: 47c8 blx r9
4dc0: 4605 mov r5, r0
4dc2: e7cf b.n 4d64 <lv_refr_obj+0x80>
4dc4: 00002285 .word 0x00002285
4dc8: 0000ded1 .word 0x0000ded1
4dcc: 0000e6f7 .word 0x0000e6f7
4dd0: 0000e71d .word 0x0000e71d
00004dd4 <lv_refr_obj_and_children>:
{
4dd4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
4dd8: 460e mov r6, r1
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
4dda: 4604 mov r4, r0
4ddc: b928 cbnz r0, 4dea <lv_refr_obj_and_children+0x16>
4dde: 4b15 ldr r3, [pc, #84] ; (4e34 <lv_refr_obj_and_children+0x60>)
4de0: 6818 ldr r0, [r3, #0]
4de2: 4b15 ldr r3, [pc, #84] ; (4e38 <lv_refr_obj_and_children+0x64>)
4de4: 4798 blx r3
if(top_p == NULL) return; /*Shouldn't happen*/
4de6: 4604 mov r4, r0
4de8: b158 cbz r0, 4e02 <lv_refr_obj_and_children+0x2e>
lv_refr_obj(top_p, mask_p);
4dea: 4631 mov r1, r6
4dec: 4620 mov r0, r4
4dee: 4f13 ldr r7, [pc, #76] ; (4e3c <lv_refr_obj_and_children+0x68>)
par = lv_obj_get_parent(top_p);
4df0: f8df 804c ldr.w r8, [pc, #76] ; 4e40 <lv_refr_obj_and_children+0x6c>
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
4df4: f8df 904c ldr.w r9, [pc, #76] ; 4e44 <lv_refr_obj_and_children+0x70>
lv_refr_obj(top_p, mask_p);
4df8: 47b8 blx r7
par = lv_obj_get_parent(top_p);
4dfa: 4620 mov r0, r4
4dfc: 47c0 blx r8
4dfe: 4605 mov r5, r0
while(par != NULL) {
4e00: b90d cbnz r5, 4e06 <lv_refr_obj_and_children+0x32>
}
4e02: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
4e06: f105 0a04 add.w sl, r5, #4
i = _lv_ll_get_prev(&(par->child_ll), i);
4e0a: 4621 mov r1, r4
4e0c: 4650 mov r0, sl
4e0e: 47c8 blx r9
4e10: 4604 mov r4, r0
while(i != NULL) {
4e12: b950 cbnz r0, 4e2a <lv_refr_obj_and_children+0x56>
if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST);
4e14: 6a2b ldr r3, [r5, #32]
4e16: b11b cbz r3, 4e20 <lv_refr_obj_and_children+0x4c>
4e18: 2201 movs r2, #1
4e1a: 4631 mov r1, r6
4e1c: 4628 mov r0, r5
4e1e: 4798 blx r3
par = lv_obj_get_parent(par);
4e20: 4628 mov r0, r5
4e22: 47c0 blx r8
4e24: 462c mov r4, r5
4e26: 4605 mov r5, r0
4e28: e7ea b.n 4e00 <lv_refr_obj_and_children+0x2c>
lv_refr_obj(i, mask_p);
4e2a: 4631 mov r1, r6
4e2c: 4620 mov r0, r4
4e2e: 47b8 blx r7
4e30: e7eb b.n 4e0a <lv_refr_obj_and_children+0x36>
4e32: bf00 nop
4e34: 20008100 .word 0x20008100
4e38: 00001825 .word 0x00001825
4e3c: 00004ce5 .word 0x00004ce5
4e40: 000020d5 .word 0x000020d5
4e44: 0000e71d .word 0x0000e71d
00004e48 <lv_refr_area_part>:
{
4e48: b573 push {r0, r1, r4, r5, r6, lr}
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4e4a: 4c1a ldr r4, [pc, #104] ; (4eb4 <lv_refr_area_part+0x6c>)
4e4c: 4b1a ldr r3, [pc, #104] ; (4eb8 <lv_refr_area_part+0x70>)
{
4e4e: 4606 mov r6, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4e50: 6820 ldr r0, [r4, #0]
4e52: 4798 blx r3
if(lv_disp_is_double_buf(disp_refr) == false) {
4e54: 4b19 ldr r3, [pc, #100] ; (4ebc <lv_refr_area_part+0x74>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4e56: 4605 mov r5, r0
if(lv_disp_is_double_buf(disp_refr) == false) {
4e58: 6820 ldr r0, [r4, #0]
4e5a: 4798 blx r3
4e5c: b320 cbz r0, 4ea8 <lv_refr_area_part+0x60>
_lv_area_intersect(&start_mask, area_p, &vdb->area);
4e5e: f105 0210 add.w r2, r5, #16
4e62: 4631 mov r1, r6
4e64: 4b16 ldr r3, [pc, #88] ; (4ec0 <lv_refr_area_part+0x78>)
lv_refr_obj_and_children(top_p, &start_mask);
4e66: 4d17 ldr r5, [pc, #92] ; (4ec4 <lv_refr_area_part+0x7c>)
_lv_area_intersect(&start_mask, area_p, &vdb->area);
4e68: 4668 mov r0, sp
4e6a: 4798 blx r3
top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr));
4e6c: 4b16 ldr r3, [pc, #88] ; (4ec8 <lv_refr_area_part+0x80>)
4e6e: 6820 ldr r0, [r4, #0]
4e70: 4798 blx r3
4e72: 4b16 ldr r3, [pc, #88] ; (4ecc <lv_refr_area_part+0x84>)
4e74: 4601 mov r1, r0
4e76: 4668 mov r0, sp
4e78: 4798 blx r3
lv_refr_obj_and_children(top_p, &start_mask);
4e7a: 4669 mov r1, sp
4e7c: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask);
4e7e: 4b14 ldr r3, [pc, #80] ; (4ed0 <lv_refr_area_part+0x88>)
4e80: 6820 ldr r0, [r4, #0]
4e82: 4798 blx r3
4e84: 4669 mov r1, sp
4e86: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask);
4e88: 4b12 ldr r3, [pc, #72] ; (4ed4 <lv_refr_area_part+0x8c>)
4e8a: 6820 ldr r0, [r4, #0]
4e8c: 4798 blx r3
4e8e: 4669 mov r1, sp
4e90: 47a8 blx r5
if(lv_disp_is_true_double_buf(disp_refr) == false) {
4e92: 6820 ldr r0, [r4, #0]
4e94: 4b10 ldr r3, [pc, #64] ; (4ed8 <lv_refr_area_part+0x90>)
4e96: 4798 blx r3
4e98: b908 cbnz r0, 4e9e <lv_refr_area_part+0x56>
lv_refr_vdb_flush();
4e9a: 4b10 ldr r3, [pc, #64] ; (4edc <lv_refr_area_part+0x94>)
4e9c: 4798 blx r3
}
4e9e: b002 add sp, #8
4ea0: bd70 pop {r4, r5, r6, pc}
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
4ea2: 69c3 ldr r3, [r0, #28]
4ea4: b10b cbz r3, 4eaa <lv_refr_area_part+0x62>
4ea6: 4798 blx r3
4ea8: 6820 ldr r0, [r4, #0]
while(vdb->flushing) {
4eaa: 69ab ldr r3, [r5, #24]
4eac: 2b00 cmp r3, #0
4eae: d1f8 bne.n 4ea2 <lv_refr_area_part+0x5a>
4eb0: e7d5 b.n 4e5e <lv_refr_area_part+0x16>
4eb2: bf00 nop
4eb4: 20008100 .word 0x20008100
4eb8: 0000da25 .word 0x0000da25
4ebc: 0000da29 .word 0x0000da29
4ec0: 0000ded1 .word 0x0000ded1
4ec4: 00004dd5 .word 0x00004dd5
4ec8: 00001825 .word 0x00001825
4ecc: 00004c71 .word 0x00004c71
4ed0: 00001861 .word 0x00001861
4ed4: 0000189d .word 0x0000189d
4ed8: 0000da39 .word 0x0000da39
4edc: 00004c05 .word 0x00004c05
00004ee0 <lv_area_copy>:
4ee0: 3901 subs r1, #1
4ee2: f100 0308 add.w r3, r0, #8
*d8 = *s8;
4ee6: f811 2f01 ldrb.w r2, [r1, #1]!
4eea: f800 2b01 strb.w r2, [r0], #1
while(len) {
4eee: 4298 cmp r0, r3
4ef0: d1f9 bne.n 4ee6 <lv_area_copy+0x6>
}
4ef2: 4770 bx lr
00004ef4 <_lv_refr_init>:
}
4ef4: 4770 bx lr
...
00004ef8 <_lv_inv_area>:
{
4ef8: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
4efc: 460d mov r5, r1
if(!disp) disp = lv_disp_get_default();
4efe: 4604 mov r4, r0
4f00: b918 cbnz r0, 4f0a <_lv_inv_area+0x12>
4f02: 4b2f ldr r3, [pc, #188] ; (4fc0 <_lv_inv_area+0xc8>)
4f04: 4798 blx r3
if(!disp) return;
4f06: 4604 mov r4, r0
4f08: b130 cbz r0, 4f18 <_lv_inv_area+0x20>
if(area_p == NULL) {
4f0a: b945 cbnz r5, 4f1e <_lv_inv_area+0x26>
disp->inv_p = 0;
4f0c: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
4f10: f365 0309 bfi r3, r5, #0, #10
4f14: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
}
4f18: b004 add sp, #16
4f1a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
scr_area.x1 = 0;
4f1e: 2300 movs r3, #0
4f20: f8ad 3000 strh.w r3, [sp]
scr_area.y1 = 0;
4f24: f8ad 3002 strh.w r3, [sp, #2]
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
4f28: 4620 mov r0, r4
4f2a: 4b26 ldr r3, [pc, #152] ; (4fc4 <_lv_inv_area+0xcc>)
4f2c: 4798 blx r3
4f2e: 3801 subs r0, #1
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
4f30: 4b25 ldr r3, [pc, #148] ; (4fc8 <_lv_inv_area+0xd0>)
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
4f32: f8ad 0004 strh.w r0, [sp, #4]
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
4f36: 4620 mov r0, r4
4f38: 4798 blx r3
4f3a: 3801 subs r0, #1
4f3c: f8ad 0006 strh.w r0, [sp, #6]
suc = _lv_area_intersect(&com_area, area_p, &scr_area);
4f40: 4b22 ldr r3, [pc, #136] ; (4fcc <_lv_inv_area+0xd4>)
4f42: 466a mov r2, sp
4f44: 4629 mov r1, r5
4f46: a802 add r0, sp, #8
4f48: 4798 blx r3
if(suc != false) {
4f4a: 2800 cmp r0, #0
4f4c: d0e4 beq.n 4f18 <_lv_inv_area+0x20>
if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area);
4f4e: 6923 ldr r3, [r4, #16]
4f50: b113 cbz r3, 4f58 <_lv_inv_area+0x60>
4f52: a902 add r1, sp, #8
4f54: 4620 mov r0, r4
4f56: 4798 blx r3
4f58: f104 0548 add.w r5, r4, #72 ; 0x48
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
4f5c: f8df 8078 ldr.w r8, [pc, #120] ; 4fd8 <_lv_inv_area+0xe0>
{
4f60: 2600 movs r6, #0
4f62: 462f mov r7, r5
for(i = 0; i < disp->inv_p; i++) {
4f64: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
4f68: b2b2 uxth r2, r6
4f6a: f3c3 0009 ubfx r0, r3, #0, #10
4f6e: 4290 cmp r0, r2
4f70: d81c bhi.n 4fac <_lv_inv_area+0xb4>
if(disp->inv_p < LV_INV_BUF_SIZE) {
4f72: 281f cmp r0, #31
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
4f74: bf9b ittet ls
4f76: 3009 addls r0, #9
4f78: f3c0 0009 ubfxls r0, r0, #0, #10
disp->inv_p = 0;
4f7c: f36f 0309 bfchi r3, #0, #10
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
4f80: a902 addls r1, sp, #8
4f82: bf91 iteee ls
4f84: eb04 00c0 addls.w r0, r4, r0, lsl #3
disp->inv_p = 0;
4f88: f8a4 3168 strhhi.w r3, [r4, #360] ; 0x168
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
4f8c: 4669 movhi r1, sp
4f8e: 4638 movhi r0, r7
4f90: 4a0f ldr r2, [pc, #60] ; (4fd0 <_lv_inv_area+0xd8>)
4f92: 4790 blx r2
disp->inv_p++;
4f94: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
4f98: 6ae0 ldr r0, [r4, #44] ; 0x2c
disp->inv_p++;
4f9a: 1c5a adds r2, r3, #1
4f9c: f362 0309 bfi r3, r2, #0, #10
4fa0: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
4fa4: 2103 movs r1, #3
4fa6: 4b0b ldr r3, [pc, #44] ; (4fd4 <_lv_inv_area+0xdc>)
4fa8: 4798 blx r3
4faa: e7b5 b.n 4f18 <_lv_inv_area+0x20>
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
4fac: 4629 mov r1, r5
4fae: 2200 movs r2, #0
4fb0: a802 add r0, sp, #8
4fb2: 47c0 blx r8
4fb4: 3601 adds r6, #1
4fb6: 3508 adds r5, #8
4fb8: 2800 cmp r0, #0
4fba: d0d3 beq.n 4f64 <_lv_inv_area+0x6c>
4fbc: e7ac b.n 4f18 <_lv_inv_area+0x20>
4fbe: bf00 nop
4fc0: 0000d941 .word 0x0000d941
4fc4: 0000d94d .word 0x0000d94d
4fc8: 0000d971 .word 0x0000d971
4fcc: 0000ded1 .word 0x0000ded1
4fd0: 00004ee1 .word 0x00004ee1
4fd4: 0000fbc9 .word 0x0000fbc9
4fd8: 0000e0d9 .word 0x0000e0d9
00004fdc <_lv_refr_get_disp_refreshing>:
}
4fdc: 4b01 ldr r3, [pc, #4] ; (4fe4 <_lv_refr_get_disp_refreshing+0x8>)
4fde: 6818 ldr r0, [r3, #0]
4fe0: 4770 bx lr
4fe2: bf00 nop
4fe4: 20008100 .word 0x20008100
00004fe8 <_lv_disp_refr_task>:
{
4fe8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
4fec: ed2d 8b02 vpush {d8}
uint32_t start = lv_tick_get();
4ff0: 4b83 ldr r3, [pc, #524] ; (5200 <_lv_disp_refr_task+0x218>)
disp_refr = task->user_data;
4ff2: 4c84 ldr r4, [pc, #528] ; (5204 <_lv_disp_refr_task+0x21c>)
{
4ff4: b08b sub sp, #44 ; 0x2c
4ff6: 4605 mov r5, r0
uint32_t start = lv_tick_get();
4ff8: 4798 blx r3
disp_refr = task->user_data;
4ffa: 68eb ldr r3, [r5, #12]
4ffc: 6023 str r3, [r4, #0]
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
4ffe: 2100 movs r1, #0
5000: 4b81 ldr r3, [pc, #516] ; (5208 <_lv_disp_refr_task+0x220>)
uint32_t start = lv_tick_get();
5002: ee08 0a90 vmov s17, r0
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
5006: 4628 mov r0, r5
5008: 4798 blx r3
if(disp_refr->act_scr == NULL) {
500a: 6823 ldr r3, [r4, #0]
500c: 6bd9 ldr r1, [r3, #60] ; 0x3c
500e: 2900 cmp r1, #0
5010: f040 808b bne.w 512a <_lv_disp_refr_task+0x142>
disp_refr->inv_p = 0;
5014: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
5018: f361 0209 bfi r2, r1, #0, #10
501c: f8a3 2168 strh.w r2, [r3, #360] ; 0x168
}
5020: b00b add sp, #44 ; 0x2c
5022: ecbd 8b02 vpop {d8}
5026: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(disp_refr->inv_area_joined[join_in] != 0) continue;
502a: 4433 add r3, r6
502c: f893 5148 ldrb.w r5, [r3, #328] ; 0x148
5030: 2d00 cmp r5, #0
5032: d03c beq.n 50ae <_lv_disp_refr_task+0xc6>
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
5034: 3601 adds r6, #1
5036: 6823 ldr r3, [r4, #0]
5038: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
503c: f3c2 0109 ubfx r1, r2, #0, #10
5040: 428e cmp r6, r1
5042: d3f2 bcc.n 502a <_lv_disp_refr_task+0x42>
px_num = 0;
5044: 2000 movs r0, #0
5046: 6060 str r0, [r4, #4]
if(disp_refr->inv_p == 0) return;
5048: 2900 cmp r1, #0
504a: d171 bne.n 5130 <_lv_disp_refr_task+0x148>
if(disp_refr->inv_p != 0) {
504c: 4f6d ldr r7, [pc, #436] ; (5204 <_lv_disp_refr_task+0x21c>)
504e: 6838 ldr r0, [r7, #0]
5050: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168
5054: f3c3 0309 ubfx r3, r3, #0, #10
5058: b303 cbz r3, 509c <_lv_disp_refr_task+0xb4>
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
505a: 4b6c ldr r3, [pc, #432] ; (520c <_lv_disp_refr_task+0x224>)
505c: 4798 blx r3
505e: 2800 cmp r0, #0
5060: f040 81a5 bne.w 53ae <_lv_disp_refr_task+0x3c6>
_lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas));
5064: 6820 ldr r0, [r4, #0]
5066: 4d6a ldr r5, [pc, #424] ; (5210 <_lv_disp_refr_task+0x228>)
5068: f44f 7180 mov.w r1, #256 ; 0x100
506c: 3048 adds r0, #72 ; 0x48
506e: 47a8 blx r5
_lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined));
5070: 6820 ldr r0, [r4, #0]
5072: 2120 movs r1, #32
5074: f500 70a4 add.w r0, r0, #328 ; 0x148
5078: 47a8 blx r5
disp_refr->inv_p = 0;
507a: 6823 ldr r3, [r4, #0]
507c: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
5080: f36f 0209 bfc r2, #0, #10
5084: f8a3 2168 strh.w r2, [r3, #360] ; 0x168
elaps = lv_tick_elaps(start);
5088: ee18 0a90 vmov r0, s17
508c: 4b61 ldr r3, [pc, #388] ; (5214 <_lv_disp_refr_task+0x22c>)
508e: 4798 blx r3
5090: 4601 mov r1, r0
if(disp_refr->driver.monitor_cb) {
5092: 6820 ldr r0, [r4, #0]
5094: 6983 ldr r3, [r0, #24]
5096: 2b00 cmp r3, #0
5098: f040 81e1 bne.w 545e <_lv_disp_refr_task+0x476>
_lv_mem_buf_free_all();
509c: 4b5e ldr r3, [pc, #376] ; (5218 <_lv_disp_refr_task+0x230>)
509e: 4798 blx r3
_lv_font_clean_up_fmt_txt();
50a0: 4b5e ldr r3, [pc, #376] ; (521c <_lv_disp_refr_task+0x234>)
}
50a2: b00b add sp, #44 ; 0x2c
50a4: ecbd 8b02 vpop {d8}
50a8: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
_lv_font_clean_up_fmt_txt();
50ac: 4718 bx r3
50ae: ea4f 09c6 mov.w r9, r6, lsl #3
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
50b2: f8df a188 ldr.w sl, [pc, #392] ; 523c <_lv_disp_refr_task+0x254>
50b6: f109 0948 add.w r9, r9, #72 ; 0x48
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
50ba: 6820 ldr r0, [r4, #0]
50bc: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168
50c0: f3c3 0309 ubfx r3, r3, #0, #10
50c4: 429d cmp r5, r3
50c6: d2b5 bcs.n 5034 <_lv_disp_refr_task+0x4c>
if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) {
50c8: 1943 adds r3, r0, r5
50ca: f893 3148 ldrb.w r3, [r3, #328] ; 0x148
50ce: bb53 cbnz r3, 5126 <_lv_disp_refr_task+0x13e>
50d0: 42ae cmp r6, r5
50d2: d028 beq.n 5126 <_lv_disp_refr_task+0x13e>
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
50d4: ea4f 0bc5 mov.w fp, r5, lsl #3
50d8: f10b 0b48 add.w fp, fp, #72 ; 0x48
50dc: eb00 010b add.w r1, r0, fp
50e0: 4448 add r0, r9
50e2: 47b8 blx r7
50e4: b1f8 cbz r0, 5126 <_lv_disp_refr_task+0x13e>
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
50e6: 6821 ldr r1, [r4, #0]
50e8: 4b4d ldr r3, [pc, #308] ; (5220 <_lv_disp_refr_task+0x238>)
50ea: eb01 020b add.w r2, r1, fp
50ee: a808 add r0, sp, #32
50f0: 4449 add r1, r9
50f2: 4798 blx r3
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
50f4: a808 add r0, sp, #32
50f6: 47d0 blx sl
50f8: 4680 mov r8, r0
50fa: 6820 ldr r0, [r4, #0]
50fc: 4448 add r0, r9
50fe: 47d0 blx sl
5100: 9003 str r0, [sp, #12]
lv_area_get_size(&disp_refr->inv_areas[join_from]))) {
5102: 6820 ldr r0, [r4, #0]
5104: 4458 add r0, fp
5106: 47d0 blx sl
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
5108: 9b03 ldr r3, [sp, #12]
510a: 4418 add r0, r3
510c: 4580 cmp r8, r0
510e: d20a bcs.n 5126 <_lv_disp_refr_task+0x13e>
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
5110: f8d4 b000 ldr.w fp, [r4]
5114: 4b43 ldr r3, [pc, #268] ; (5224 <_lv_disp_refr_task+0x23c>)
5116: eb0b 0009 add.w r0, fp, r9
511a: a908 add r1, sp, #32
disp_refr->inv_area_joined[join_from] = 1;
511c: 44ab add fp, r5
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
511e: 4798 blx r3
disp_refr->inv_area_joined[join_from] = 1;
5120: 2301 movs r3, #1
5122: f88b 3148 strb.w r3, [fp, #328] ; 0x148
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
5126: 3501 adds r5, #1
5128: e7c7 b.n 50ba <_lv_disp_refr_task+0xd2>
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
512a: 4f3f ldr r7, [pc, #252] ; (5228 <_lv_disp_refr_task+0x240>)
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
512c: 2600 movs r6, #0
512e: e782 b.n 5036 <_lv_disp_refr_task+0x4e>
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
5130: 1e4f subs r7, r1, #1
if(disp_refr->inv_area_joined[i] == 0) {
5132: f503 72a4 add.w r2, r3, #328 ; 0x148
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
5136: 1c79 adds r1, r7, #1
5138: d15c bne.n 51f4 <_lv_disp_refr_task+0x20c>
int32_t last_i = 0;
513a: 2700 movs r7, #0
disp_refr->driver.buffer->last_area = 0;
513c: 685b ldr r3, [r3, #4]
for(i = 0; i < disp_refr->inv_p; i++) {
513e: f8df 80c4 ldr.w r8, [pc, #196] ; 5204 <_lv_disp_refr_task+0x21c>
disp_refr->driver.buffer->last_area = 0;
5142: f893 2020 ldrb.w r2, [r3, #32]
5146: f36f 0200 bfc r2, #0, #1
514a: f883 2020 strb.w r2, [r3, #32]
disp_refr->driver.buffer->last_part = 0;
514e: f893 2020 ldrb.w r2, [r3, #32]
5152: f36f 0241 bfc r2, #1, #1
5156: f883 2020 strb.w r2, [r3, #32]
for(i = 0; i < disp_refr->inv_p; i++) {
515a: f04f 0b00 mov.w fp, #0
515e: f8d8 9000 ldr.w r9, [r8]
5162: f8b9 3168 ldrh.w r3, [r9, #360] ; 0x168
5166: f3c3 0309 ubfx r3, r3, #0, #10
516a: 459b cmp fp, r3
516c: f6bf af6e bge.w 504c <_lv_disp_refr_task+0x64>
if(disp_refr->inv_area_joined[i] == 0) {
5170: eb09 030b add.w r3, r9, fp
5174: f893 3148 ldrb.w r3, [r3, #328] ; 0x148
5178: 2b00 cmp r3, #0
517a: f040 80ca bne.w 5312 <_lv_disp_refr_task+0x32a>
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
517e: f8d9 3004 ldr.w r3, [r9, #4]
5182: 45bb cmp fp, r7
5184: bf02 ittt eq
5186: f893 2020 ldrbeq.w r2, [r3, #32]
518a: f042 0201 orreq.w r2, r2, #1
518e: f883 2020 strbeq.w r2, [r3, #32]
disp_refr->driver.buffer->last_part = 0;
5192: f893 2020 ldrb.w r2, [r3, #32]
5196: ea4f 05cb mov.w r5, fp, lsl #3
519a: f36f 0241 bfc r2, #1, #1
519e: f883 2020 strb.w r2, [r3, #32]
lv_refr_area(&disp_refr->inv_areas[i]);
51a2: f105 0348 add.w r3, r5, #72 ; 0x48
51a6: 9304 str r3, [sp, #16]
51a8: 444b add r3, r9
51aa: ee08 3a10 vmov s16, r3
if(lv_disp_is_true_double_buf(disp_refr)) {
51ae: 4648 mov r0, r9
51b0: 4b16 ldr r3, [pc, #88] ; (520c <_lv_disp_refr_task+0x224>)
51b2: 4798 blx r3
51b4: 4b1d ldr r3, [pc, #116] ; (522c <_lv_disp_refr_task+0x244>)
51b6: 2800 cmp r0, #0
51b8: d042 beq.n 5240 <_lv_disp_refr_task+0x258>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
51ba: 6820 ldr r0, [r4, #0]
51bc: 4798 blx r3
vdb->area.x1 = 0;
51be: 2600 movs r6, #0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
51c0: 4605 mov r5, r0
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
51c2: 4b1b ldr r3, [pc, #108] ; (5230 <_lv_disp_refr_task+0x248>)
vdb->area.x1 = 0;
51c4: 8206 strh r6, [r0, #16]
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
51c6: 6820 ldr r0, [r4, #0]
51c8: 4798 blx r3
51ca: 3801 subs r0, #1
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
51cc: 4b19 ldr r3, [pc, #100] ; (5234 <_lv_disp_refr_task+0x24c>)
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
51ce: 82a8 strh r0, [r5, #20]
vdb->area.y1 = 0;
51d0: 826e strh r6, [r5, #18]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
51d2: 6820 ldr r0, [r4, #0]
51d4: 4798 blx r3
disp_refr->driver.buffer->last_part = 1;
51d6: 6823 ldr r3, [r4, #0]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
51d8: 3801 subs r0, #1
disp_refr->driver.buffer->last_part = 1;
51da: 685a ldr r2, [r3, #4]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
51dc: 82e8 strh r0, [r5, #22]
disp_refr->driver.buffer->last_part = 1;
51de: f892 3020 ldrb.w r3, [r2, #32]
51e2: f043 0302 orr.w r3, r3, #2
51e6: f882 3020 strb.w r3, [r2, #32]
lv_refr_area_part(area_p);
51ea: ee18 0a10 vmov r0, s16
51ee: 4b12 ldr r3, [pc, #72] ; (5238 <_lv_disp_refr_task+0x250>)
51f0: 4798 blx r3
51f2: e081 b.n 52f8 <_lv_disp_refr_task+0x310>
if(disp_refr->inv_area_joined[i] == 0) {
51f4: 5dd1 ldrb r1, [r2, r7]
51f6: 2900 cmp r1, #0
51f8: d0a0 beq.n 513c <_lv_disp_refr_task+0x154>
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
51fa: 3f01 subs r7, #1
51fc: e79b b.n 5136 <_lv_disp_refr_task+0x14e>
51fe: bf00 nop
5200: 0000da8d .word 0x0000da8d
5204: 20008100 .word 0x20008100
5208: 0000fbc9 .word 0x0000fbc9
520c: 0000da39 .word 0x0000da39
5210: 0000f061 .word 0x0000f061
5214: 0000daa1 .word 0x0000daa1
5218: 0000ec25 .word 0x0000ec25
521c: 0000d785 .word 0x0000d785
5220: 0000df25 .word 0x0000df25
5224: 00004ee1 .word 0x00004ee1
5228: 0000e09d .word 0x0000e09d
522c: 0000da25 .word 0x0000da25
5230: 0000d94d .word 0x0000d94d
5234: 0000d971 .word 0x0000d971
5238: 00004e49 .word 0x00004e49
523c: 0000deb5 .word 0x0000deb5
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
5240: 444d add r5, r9
5242: 6820 ldr r0, [r4, #0]
5244: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5246: f8b5 904c ldrh.w r9, [r5, #76] ; 0x4c
524a: f8b5 3048 ldrh.w r3, [r5, #72] ; 0x48
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
524e: f9b5 204e ldrsh.w r2, [r5, #78] ; 0x4e
5252: 9203 str r2, [sp, #12]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5254: f109 0901 add.w r9, r9, #1
5258: eba9 0903 sub.w r9, r9, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
525c: f8b5 304a ldrh.w r3, [r5, #74] ; 0x4a
5260: f102 0a01 add.w sl, r2, #1
5264: ebaa 0a03 sub.w sl, sl, r3
5268: 4606 mov r6, r0
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
526a: 4b7e ldr r3, [pc, #504] ; (5464 <_lv_disp_refr_task+0x47c>)
526c: 6820 ldr r0, [r4, #0]
526e: 4798 blx r3
lv_coord_t y2 =
5270: 9a03 ldr r2, [sp, #12]
5272: 4b7c ldr r3, [pc, #496] ; (5464 <_lv_disp_refr_task+0x47c>)
5274: 4282 cmp r2, r0
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5276: fa0f f989 sxth.w r9, r9
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
527a: fa0f fa8a sxth.w sl, sl
527e: db4b blt.n 5318 <_lv_disp_refr_task+0x330>
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
5280: 6820 ldr r0, [r4, #0]
5282: 4798 blx r3
5284: 3801 subs r0, #1
lv_coord_t y2 =
5286: b203 sxth r3, r0
int32_t max_row = (uint32_t)vdb->size / w;
5288: 68f2 ldr r2, [r6, #12]
528a: fbb2 f9f9 udiv r9, r2, r9
if(disp_refr->driver.rounder_cb) {
528e: f8d8 2000 ldr.w r2, [r8]
5292: 6912 ldr r2, [r2, #16]
5294: 45ca cmp sl, r9
5296: bfa8 it ge
5298: 46ca movge sl, r9
529a: 2a00 cmp r2, #0
529c: d043 beq.n 5326 <_lv_disp_refr_task+0x33e>
tmp.x1 = 0;
529e: 2200 movs r2, #0
52a0: f8ad 2020 strh.w r2, [sp, #32]
tmp.x2 = 0;
52a4: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
tmp.y1 = 0;
52a8: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
lv_coord_t h_tmp = max_row;
52ac: fa0f f98a sxth.w r9, sl
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
52b0: f8d8 0000 ldr.w r0, [r8]
52b4: f8cd 900c str.w r9, [sp, #12]
52b8: f109 39ff add.w r9, r9, #4294967295 ; 0xffffffff
52bc: fa0f f989 sxth.w r9, r9
52c0: 6902 ldr r2, [r0, #16]
tmp.y2 = h_tmp - 1;
52c2: f8ad 9026 strh.w r9, [sp, #38] ; 0x26
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
52c6: a908 add r1, sp, #32
52c8: 9305 str r3, [sp, #20]
52ca: 4790 blx r2
52cc: f9bd 1026 ldrsh.w r1, [sp, #38] ; 0x26
52d0: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
if(lv_area_get_height(&tmp) <= max_row) break;
52d4: 9b05 ldr r3, [sp, #20]
52d6: 3101 adds r1, #1
52d8: 1a8a subs r2, r1, r2
52da: b212 sxth r2, r2
52dc: 4592 cmp sl, r2
52de: da1e bge.n 531e <_lv_disp_refr_task+0x336>
} while(h_tmp > 0);
52e0: f1b9 0f00 cmp.w r9, #0
52e4: dce4 bgt.n 52b0 <_lv_disp_refr_task+0x2c8>
LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to "
52e6: 4b60 ldr r3, [pc, #384] ; (5468 <_lv_disp_refr_task+0x480>)
52e8: 9300 str r3, [sp, #0]
52ea: 4960 ldr r1, [pc, #384] ; (546c <_lv_disp_refr_task+0x484>)
52ec: 4b60 ldr r3, [pc, #384] ; (5470 <_lv_disp_refr_task+0x488>)
52ee: 4d61 ldr r5, [pc, #388] ; (5474 <_lv_disp_refr_task+0x48c>)
52f0: f44f 72cf mov.w r2, #414 ; 0x19e
52f4: 2002 movs r0, #2
52f6: 47a8 blx r5
if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]);
52f8: f8d8 0000 ldr.w r0, [r8]
52fc: 6983 ldr r3, [r0, #24]
52fe: b143 cbz r3, 5312 <_lv_disp_refr_task+0x32a>
5300: 9b04 ldr r3, [sp, #16]
5302: 4418 add r0, r3
5304: 4b5c ldr r3, [pc, #368] ; (5478 <_lv_disp_refr_task+0x490>)
5306: 4798 blx r3
5308: f8d8 3004 ldr.w r3, [r8, #4]
530c: 4418 add r0, r3
530e: f8c8 0004 str.w r0, [r8, #4]
for(i = 0; i < disp_refr->inv_p; i++) {
5312: f10b 0b01 add.w fp, fp, #1
5316: e722 b.n 515e <_lv_disp_refr_task+0x176>
lv_coord_t y2 =
5318: f9b5 304e ldrsh.w r3, [r5, #78] ; 0x4e
531c: e7b4 b.n 5288 <_lv_disp_refr_task+0x2a0>
if(h_tmp <= 0) {
531e: 9a03 ldr r2, [sp, #12]
5320: 2a00 cmp r2, #0
5322: dde0 ble.n 52e6 <_lv_disp_refr_task+0x2fe>
max_row = tmp.y2 + 1;
5324: 468a mov sl, r1
vdb->area.y2 = row + max_row - 1;
5326: fa1f f18a uxth.w r1, sl
532a: 1e48 subs r0, r1, #1
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
532c: f9b5 204a ldrsh.w r2, [r5, #74] ; 0x4a
5330: 9005 str r0, [sp, #20]
lv_coord_t row_last = 0;
5332: f04f 0900 mov.w r9, #0
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
5336: eb02 000a add.w r0, r2, sl
533a: 3801 subs r0, #1
533c: 4298 cmp r0, r3
533e: dd0c ble.n 535a <_lv_disp_refr_task+0x372>
if(y2 != row_last) {
5340: 454b cmp r3, r9
5342: d0d9 beq.n 52f8 <_lv_disp_refr_task+0x310>
vdb->area.x1 = area_p->x1;
5344: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5348: 6821 ldr r1, [r4, #0]
vdb->area.x1 = area_p->x1;
534a: 8230 strh r0, [r6, #16]
vdb->area.x2 = area_p->x2;
534c: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c
5350: 82b0 strh r0, [r6, #20]
vdb->area.y1 = row;
5352: 8272 strh r2, [r6, #18]
vdb->area.y2 = y2;
5354: 82f3 strh r3, [r6, #22]
disp_refr->driver.buffer->last_part = 1;
5356: 684a ldr r2, [r1, #4]
5358: e741 b.n 51de <_lv_disp_refr_task+0x1f6>
vdb->area.x1 = area_p->x1;
535a: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48
535e: 8230 strh r0, [r6, #16]
vdb->area.x2 = area_p->x2;
5360: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c
5364: 82b0 strh r0, [r6, #20]
vdb->area.y1 = row;
5366: b290 uxth r0, r2
5368: 9003 str r0, [sp, #12]
536a: 9805 ldr r0, [sp, #20]
536c: 8272 strh r2, [r6, #18]
vdb->area.y2 = row + max_row - 1;
536e: fa10 f982 uxtah r9, r0, r2
5372: fa0f f989 sxth.w r9, r9
5376: 4599 cmp r9, r3
5378: bfa8 it ge
537a: 4699 movge r9, r3
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
537c: 454b cmp r3, r9
vdb->area.y2 = row + max_row - 1;
537e: f8a6 9016 strh.w r9, [r6, #22]
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5382: d108 bne.n 5396 <_lv_disp_refr_task+0x3ae>
5384: f8d8 2000 ldr.w r2, [r8]
5388: 6850 ldr r0, [r2, #4]
538a: f890 2020 ldrb.w r2, [r0, #32]
538e: f042 0202 orr.w r2, r2, #2
5392: f880 2020 strb.w r2, [r0, #32]
lv_refr_area_part(area_p);
5396: 4a39 ldr r2, [pc, #228] ; (547c <_lv_disp_refr_task+0x494>)
5398: ee18 0a10 vmov r0, s16
539c: e9cd 3106 strd r3, r1, [sp, #24]
53a0: 4790 blx r2
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
53a2: 9a03 ldr r2, [sp, #12]
53a4: 9907 ldr r1, [sp, #28]
53a6: 9b06 ldr r3, [sp, #24]
53a8: 440a add r2, r1
53aa: b212 sxth r2, r2
53ac: e7c3 b.n 5336 <_lv_disp_refr_task+0x34e>
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
53ae: 6838 ldr r0, [r7, #0]
53b0: 6943 ldr r3, [r0, #20]
53b2: 2b00 cmp r3, #0
53b4: f47f ae56 bne.w 5064 <_lv_disp_refr_task+0x7c>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
53b8: 4b31 ldr r3, [pc, #196] ; (5480 <_lv_disp_refr_task+0x498>)
53ba: 4798 blx r3
lv_refr_vdb_flush();
53bc: 4b31 ldr r3, [pc, #196] ; (5484 <_lv_disp_refr_task+0x49c>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
53be: 4605 mov r5, r0
lv_refr_vdb_flush();
53c0: 4798 blx r3
while(vdb->flushing)
53c2: 69ab ldr r3, [r5, #24]
53c4: 2b00 cmp r3, #0
53c6: d1fc bne.n 53c2 <_lv_disp_refr_task+0x3da>
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
53c8: f8d5 9000 ldr.w r9, [r5]
uint8_t * buf_act = (uint8_t *)vdb->buf_act;
53cc: f8d5 b008 ldr.w fp, [r5, #8]
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
53d0: 4b2d ldr r3, [pc, #180] ; (5488 <_lv_disp_refr_task+0x4a0>)
53d2: 6838 ldr r0, [r7, #0]
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
53d4: 45d9 cmp r9, fp
53d6: bf08 it eq
53d8: f8d5 9004 ldreq.w r9, [r5, #4]
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
53dc: 4798 blx r3
for(a = 0; a < disp_refr->inv_p; a++) {
53de: 2500 movs r5, #0
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
53e0: 4680 mov r8, r0
start_offs += hres * sizeof(lv_color_t);
53e2: 0043 lsls r3, r0, #1
for(a = 0; a < disp_refr->inv_p; a++) {
53e4: 683a ldr r2, [r7, #0]
53e6: f8b2 1168 ldrh.w r1, [r2, #360] ; 0x168
53ea: b2a8 uxth r0, r5
53ec: f3c1 0109 ubfx r1, r1, #0, #10
53f0: 4281 cmp r1, r0
53f2: f67f ae37 bls.w 5064 <_lv_disp_refr_task+0x7c>
if(disp_refr->inv_area_joined[a] == 0) {
53f6: 1951 adds r1, r2, r5
53f8: f891 1148 ldrb.w r1, [r1, #328] ; 0x148
53fc: b109 cbz r1, 5402 <_lv_disp_refr_task+0x41a>
for(a = 0; a < disp_refr->inv_p; a++) {
53fe: 3501 adds r5, #1
5400: e7f0 b.n 53e4 <_lv_disp_refr_task+0x3fc>
uint32_t start_offs =
5402: eb02 02c5 add.w r2, r2, r5, lsl #3
(hres * disp_refr->inv_areas[a].y1 + disp_refr->inv_areas[a].x1) * sizeof(lv_color_t);
5406: f9b2 0048 ldrsh.w r0, [r2, #72] ; 0x48
540a: f9b2 604a ldrsh.w r6, [r2, #74] ; 0x4a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
540e: f8b2 204c ldrh.w r2, [r2, #76] ; 0x4c
5412: 3201 adds r2, #1
5414: fb08 0106 mla r1, r8, r6, r0
5418: 1a12 subs r2, r2, r0
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
541a: f105 0009 add.w r0, r5, #9
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
541e: b212 sxth r2, r2
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
5420: 00c0 lsls r0, r0, #3
5422: eb0b 0a41 add.w sl, fp, r1, lsl #1
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
5426: ea4f 0c42 mov.w ip, r2, lsl #1
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
542a: eb09 0141 add.w r1, r9, r1, lsl #1
542e: 9003 str r0, [sp, #12]
5430: 6838 ldr r0, [r7, #0]
5432: 9a03 ldr r2, [sp, #12]
5434: 4410 add r0, r2
5436: f9b0 0006 ldrsh.w r0, [r0, #6]
543a: 42b0 cmp r0, r6
543c: dbdf blt.n 53fe <_lv_disp_refr_task+0x416>
543e: 9306 str r3, [sp, #24]
_lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length);
5440: 4662 mov r2, ip
5442: 4b12 ldr r3, [pc, #72] ; (548c <_lv_disp_refr_task+0x4a4>)
5444: 4650 mov r0, sl
5446: e9cd 1c04 strd r1, ip, [sp, #16]
544a: 4798 blx r3
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
544c: 9b06 ldr r3, [sp, #24]
544e: 9904 ldr r1, [sp, #16]
5450: f8dd c014 ldr.w ip, [sp, #20]
5454: 3601 adds r6, #1
5456: b236 sxth r6, r6
5458: 449a add sl, r3
545a: 4419 add r1, r3
545c: e7e8 b.n 5430 <_lv_disp_refr_task+0x448>
disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num);
545e: 6862 ldr r2, [r4, #4]
5460: 4798 blx r3
5462: e61b b.n 509c <_lv_disp_refr_task+0xb4>
5464: 0000d971 .word 0x0000d971
5468: 0001f7cd .word 0x0001f7cd
546c: 0001f79d .word 0x0001f79d
5470: 0001f81d .word 0x0001f81d
5474: 0000e931 .word 0x0000e931
5478: 0000deb5 .word 0x0000deb5
547c: 00004e49 .word 0x00004e49
5480: 0000da25 .word 0x0000da25
5484: 00004c05 .word 0x00004c05
5488: 0000d94d .word 0x0000d94d
548c: 0000ec79 .word 0x0000ec79
00005490 <lv_style_list_get_style>:
if(list->has_trans && list->skip_trans) id++;
5490: 7943 ldrb r3, [r0, #5]
5492: f003 0306 and.w r3, r3, #6
5496: 2b06 cmp r3, #6
5498: bf08 it eq
549a: 3101 addeq r1, #1
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
549c: 7903 ldrb r3, [r0, #4]
if(list->has_trans && list->skip_trans) id++;
549e: bf08 it eq
54a0: b2c9 uxtbeq r1, r1
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
54a2: 428b cmp r3, r1
return list->style_list[id];
54a4: bf86 itte hi
54a6: 6803 ldrhi r3, [r0, #0]
54a8: f853 0021 ldrhi.w r0, [r3, r1, lsl #2]
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
54ac: 2000 movls r0, #0
}
54ae: 4770 bx lr
000054b0 <get_property_index.isra.0>:
* @param style pointer to a style
* @param prop a style property ORed with a state.
* E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
* @return
*/
LV_ATTRIBUTE_FAST_MEM static inline int32_t get_property_index(const lv_style_t * style, lv_style_property_t prop)
54b0: b5f0 push {r4, r5, r6, r7, lr}
{
LV_ASSERT_STYLE(style);
if(style->map == NULL) return -1;
54b2: b378 cbz r0, 5514 <get_property_index.isra.0+0x64>
uint8_t id_to_find = prop & 0xFF;
lv_style_attr_t attr;
attr.full = (prop >> 8) & 0xFF;
int16_t weight = -1;
int16_t id_guess = -1;
54b4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
uint8_t id_to_find = prop & 0xFF;
54b8: b2cf uxtb r7, r1
attr.full = (prop >> 8) & 0xFF;
54ba: ea4f 2c11 mov.w ip, r1, lsr #8
size_t i = 0;
54be: 2300 movs r3, #0
int16_t weight = -1;
54c0: 4616 mov r6, r2
if(attr_i.bits.state == attr.bits.state) {
return i;
}
/* Be sure the property not specifies other state than the requested.
* E.g. For HOVER+PRESS, HOVER only is OK, but HOVER+FOCUS not*/
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
54c2: f3c1 2406 ubfx r4, r1, #8, #7
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
54c6: 5cc1 ldrb r1, [r0, r3]
54c8: 29ff cmp r1, #255 ; 0xff
54ca: d101 bne.n 54d0 <get_property_index.isra.0+0x20>
else i += sizeof(const void *);
i += sizeof(lv_style_property_t);
}
return id_guess;
54cc: 4610 mov r0, r2
54ce: e009 b.n 54e4 <get_property_index.isra.0+0x34>
if(style->map[i] == id_to_find) {
54d0: 428f cmp r7, r1
54d2: d111 bne.n 54f8 <get_property_index.isra.0+0x48>
attr_i.full = style->map[i + 1];
54d4: 18c5 adds r5, r0, r3
54d6: 786d ldrb r5, [r5, #1]
if(attr_i.bits.state == attr.bits.state) {
54d8: ea8c 0e05 eor.w lr, ip, r5
54dc: f01e 0f7f tst.w lr, #127 ; 0x7f
54e0: d101 bne.n 54e6 <get_property_index.isra.0+0x36>
return i;
54e2: 4618 mov r0, r3
}
54e4: bdf0 pop {r4, r5, r6, r7, pc}
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
54e6: f005 057f and.w r5, r5, #127 ; 0x7f
54ea: ea35 0e04 bics.w lr, r5, r4
54ee: d103 bne.n 54f8 <get_property_index.isra.0+0x48>
if(attr_i.bits.state > weight) {
54f0: 42b5 cmp r5, r6
weight = attr_i.bits.state;
54f2: bfc4 itt gt
54f4: b22e sxthgt r6, r5
id_guess = i;
54f6: b21a sxthgt r2, r3
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
54f8: f001 010f and.w r1, r1, #15
54fc: 2908 cmp r1, #8
54fe: d802 bhi.n 5506 <get_property_index.isra.0+0x56>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5500: 3302 adds r3, #2
i += sizeof(lv_style_property_t);
5502: 3302 adds r3, #2
5504: e7df b.n 54c6 <get_property_index.isra.0+0x16>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5506: 290b cmp r1, #11
5508: d9fa bls.n 5500 <get_property_index.isra.0+0x50>
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
550a: 290d cmp r1, #13
550c: bf94 ite ls
550e: 3301 addls r3, #1
else i += sizeof(const void *);
5510: 3304 addhi r3, #4
5512: e7f6 b.n 5502 <get_property_index.isra.0+0x52>
if(style->map == NULL) return -1;
5514: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5518: e7e4 b.n 54e4 <get_property_index.isra.0+0x34>
0000551a <_lv_memcpy_small.isra.0>:
551a: 3901 subs r1, #1
551c: 4402 add r2, r0
*d8 = *s8;
551e: f811 3f01 ldrb.w r3, [r1, #1]!
5522: f800 3b01 strb.w r3, [r0], #1
while(len) {
5526: 4290 cmp r0, r2
5528: d1f9 bne.n 551e <_lv_memcpy_small.isra.0+0x4>
s8++;
len--;
}
return dst;
}
552a: 4770 bx lr
0000552c <lv_style_init>:
_lv_memset_00(style, sizeof(lv_style_t));
552c: 4b01 ldr r3, [pc, #4] ; (5534 <lv_style_init+0x8>)
552e: 2104 movs r1, #4
5530: 4718 bx r3
5532: bf00 nop
5534: 0000f061 .word 0x0000f061
00005538 <lv_style_list_init>:
_lv_memset_00(list, sizeof(lv_style_list_t));
5538: 4b01 ldr r3, [pc, #4] ; (5540 <lv_style_list_init+0x8>)
553a: 2108 movs r1, #8
553c: 4718 bx r3
553e: bf00 nop
5540: 0000f061 .word 0x0000f061
00005544 <_lv_style_list_remove_style>:
{
5544: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
if(list->style_cnt == 0) return;
5546: 7903 ldrb r3, [r0, #4]
{
5548: 4604 mov r4, r0
554a: 460e mov r6, r1
if(list->style_cnt == 0) return;
554c: b14b cbz r3, 5562 <_lv_style_list_remove_style+0x1e>
if(list->style_list[i] == style) {
554e: 6800 ldr r0, [r0, #0]
5550: 2200 movs r2, #0
5552: f850 1022 ldr.w r1, [r0, r2, lsl #2]
5556: 42b1 cmp r1, r6
5558: d03c beq.n 55d4 <_lv_style_list_remove_style+0x90>
for(i = 0; i < list->style_cnt; i++) {
555a: 3201 adds r2, #1
555c: b2d1 uxtb r1, r2
555e: 428b cmp r3, r1
5560: d8f7 bhi.n 5552 <_lv_style_list_remove_style+0xe>
}
5562: b003 add sp, #12
5564: bdf0 pop {r4, r5, r6, r7, pc}
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
5566: 3b01 subs r3, #1
5568: 0099 lsls r1, r3, #2
556a: 4b21 ldr r3, [pc, #132] ; (55f0 <_lv_style_list_remove_style+0xac>)
556c: 4798 blx r3
LV_ASSERT_MEM(new_classes);
556e: 4b21 ldr r3, [pc, #132] ; (55f4 <_lv_style_list_remove_style+0xb0>)
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
5570: 4605 mov r5, r0
LV_ASSERT_MEM(new_classes);
5572: 4798 blx r3
5574: 4607 mov r7, r0
5576: b968 cbnz r0, 5594 <_lv_style_list_remove_style+0x50>
5578: 4b1f ldr r3, [pc, #124] ; (55f8 <_lv_style_list_remove_style+0xb4>)
557a: 4920 ldr r1, [pc, #128] ; (55fc <_lv_style_list_remove_style+0xb8>)
557c: 9300 str r3, [sp, #0]
557e: f44f 7282 mov.w r2, #260 ; 0x104
5582: 2003 movs r0, #3
5584: 4c1e ldr r4, [pc, #120] ; (5600 <_lv_style_list_remove_style+0xbc>)
5586: 47a0 blx r4
5588: 481e ldr r0, [pc, #120] ; (5604 <_lv_style_list_remove_style+0xc0>)
558a: 491f ldr r1, [pc, #124] ; (5608 <_lv_style_list_remove_style+0xc4>)
558c: 462a mov r2, r5
558e: 463b mov r3, r7
5590: 4788 blx r1
5592: e7fe b.n 5592 <_lv_style_list_remove_style+0x4e>
if(new_classes == NULL) {
5594: b14d cbz r5, 55aa <_lv_style_list_remove_style+0x66>
for(i = 0, j = 0; i < list->style_cnt; i++) {
5596: 2300 movs r3, #0
5598: 7921 ldrb r1, [r4, #4]
559a: 461a mov r2, r3
559c: b2d8 uxtb r0, r3
559e: 4288 cmp r0, r1
55a0: d30d bcc.n 55be <_lv_style_list_remove_style+0x7a>
list->style_cnt--;
55a2: 3901 subs r1, #1
55a4: 7121 strb r1, [r4, #4]
list->style_list = new_classes;
55a6: 6025 str r5, [r4, #0]
55a8: e7db b.n 5562 <_lv_style_list_remove_style+0x1e>
LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list");
55aa: 4b18 ldr r3, [pc, #96] ; (560c <_lv_style_list_remove_style+0xc8>)
55ac: 9300 str r3, [sp, #0]
55ae: 4913 ldr r1, [pc, #76] ; (55fc <_lv_style_list_remove_style+0xb8>)
55b0: 4b11 ldr r3, [pc, #68] ; (55f8 <_lv_style_list_remove_style+0xb4>)
55b2: 4c13 ldr r4, [pc, #76] ; (5600 <_lv_style_list_remove_style+0xbc>)
55b4: f44f 7283 mov.w r2, #262 ; 0x106
55b8: 2002 movs r0, #2
55ba: 47a0 blx r4
return;
55bc: e7d1 b.n 5562 <_lv_style_list_remove_style+0x1e>
if(list->style_list[i] == style) continue;
55be: 6820 ldr r0, [r4, #0]
55c0: f850 0023 ldr.w r0, [r0, r3, lsl #2]
55c4: 42b0 cmp r0, r6
new_classes[j] = list->style_list[i];
55c6: bf1e ittt ne
55c8: f845 0022 strne.w r0, [r5, r2, lsl #2]
j++;
55cc: 3201 addne r2, #1
55ce: b2d2 uxtbne r2, r2
for(i = 0, j = 0; i < list->style_cnt; i++) {
55d0: 3301 adds r3, #1
55d2: e7e3 b.n 559c <_lv_style_list_remove_style+0x58>
if(list->style_cnt == 1) {
55d4: 2b01 cmp r3, #1
55d6: d1c6 bne.n 5566 <_lv_style_list_remove_style+0x22>
lv_mem_free(list->style_list);
55d8: 4b0d ldr r3, [pc, #52] ; (5610 <_lv_style_list_remove_style+0xcc>)
55da: 4798 blx r3
list->style_list = NULL;
55dc: 2300 movs r3, #0
55de: 6023 str r3, [r4, #0]
list->style_cnt = 0;
55e0: 88a3 ldrh r3, [r4, #4]
55e2: f423 73ff bic.w r3, r3, #510 ; 0x1fe
55e6: f023 0301 bic.w r3, r3, #1
55ea: 80a3 strh r3, [r4, #4]
return;
55ec: e7b9 b.n 5562 <_lv_style_list_remove_style+0x1e>
55ee: bf00 nop
55f0: 0000ee5d .word 0x0000ee5d
55f4: 00001795 .word 0x00001795
55f8: 0001f933 .word 0x0001f933
55fc: 0001f82a .word 0x0001f82a
5600: 0000e931 .word 0x0000e931
5604: 0001ee02 .word 0x0001ee02
5608: 0000179d .word 0x0000179d
560c: 0001f85b .word 0x0001f85b
5610: 0000eb2d .word 0x0000eb2d
00005614 <_lv_style_list_add_style>:
{
5614: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
5618: 460f mov r7, r1
if(list == NULL) return;
561a: 4605 mov r5, r0
561c: b338 cbz r0, 566e <_lv_style_list_add_style+0x5a>
_lv_style_list_remove_style(list, style);
561e: 4b29 ldr r3, [pc, #164] ; (56c4 <_lv_style_list_add_style+0xb0>)
5620: 4798 blx r3
if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *));
5622: 7929 ldrb r1, [r5, #4]
5624: b9a1 cbnz r1, 5650 <_lv_style_list_add_style+0x3c>
5626: 4b28 ldr r3, [pc, #160] ; (56c8 <_lv_style_list_add_style+0xb4>)
5628: 2004 movs r0, #4
562a: 4798 blx r3
LV_ASSERT_MEM(new_classes);
562c: 4b27 ldr r3, [pc, #156] ; (56cc <_lv_style_list_add_style+0xb8>)
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
562e: 4604 mov r4, r0
LV_ASSERT_MEM(new_classes);
5630: 4798 blx r3
5632: 4606 mov r6, r0
5634: b990 cbnz r0, 565c <_lv_style_list_add_style+0x48>
5636: 4b26 ldr r3, [pc, #152] ; (56d0 <_lv_style_list_add_style+0xbc>)
5638: 4926 ldr r1, [pc, #152] ; (56d4 <_lv_style_list_add_style+0xc0>)
563a: 9300 str r3, [sp, #0]
563c: 22d0 movs r2, #208 ; 0xd0
563e: 2003 movs r0, #3
5640: 4d25 ldr r5, [pc, #148] ; (56d8 <_lv_style_list_add_style+0xc4>)
5642: 47a8 blx r5
5644: 4825 ldr r0, [pc, #148] ; (56dc <_lv_style_list_add_style+0xc8>)
5646: 4926 ldr r1, [pc, #152] ; (56e0 <_lv_style_list_add_style+0xcc>)
5648: 4622 mov r2, r4
564a: 4633 mov r3, r6
564c: 4788 blx r1
564e: e7fe b.n 564e <_lv_style_list_add_style+0x3a>
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
5650: 3101 adds r1, #1
5652: 6828 ldr r0, [r5, #0]
5654: 4b23 ldr r3, [pc, #140] ; (56e4 <_lv_style_list_add_style+0xd0>)
5656: 0089 lsls r1, r1, #2
5658: 4798 blx r3
565a: e7e7 b.n 562c <_lv_style_list_add_style+0x18>
if(new_classes == NULL) {
565c: b954 cbnz r4, 5674 <_lv_style_list_add_style+0x60>
LV_LOG_WARN("lv_style_list_add_style: couldn't add the class");
565e: 4b22 ldr r3, [pc, #136] ; (56e8 <_lv_style_list_add_style+0xd4>)
5660: 9300 str r3, [sp, #0]
5662: 491c ldr r1, [pc, #112] ; (56d4 <_lv_style_list_add_style+0xc0>)
5664: 4b1a ldr r3, [pc, #104] ; (56d0 <_lv_style_list_add_style+0xbc>)
5666: 4c1c ldr r4, [pc, #112] ; (56d8 <_lv_style_list_add_style+0xc4>)
5668: 22d2 movs r2, #210 ; 0xd2
566a: 2002 movs r0, #2
566c: 47a0 blx r4
}
566e: b002 add sp, #8
5670: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(list->has_trans) first_style++;
5674: 796b ldrb r3, [r5, #5]
for(i = list->style_cnt; i > first_style; i--) {
5676: 792e ldrb r6, [r5, #4]
if(list->has_trans) first_style++;
5678: f3c3 0840 ubfx r8, r3, #1, #1
if(list->has_local) first_style++;
567c: 07db lsls r3, r3, #31
567e: bf48 it mi
5680: f108 0801 addmi.w r8, r8, #1
new_classes[i] = new_classes[i - 1];
5684: eba6 0208 sub.w r2, r6, r8
5688: b2d2 uxtb r2, r2
568a: 4546 cmp r6, r8
568c: f1c2 0001 rsb r0, r2, #1
5690: f106 4180 add.w r1, r6, #1073741824 ; 0x40000000
5694: ea4f 0080 mov.w r0, r0, lsl #2
5698: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff
569c: bf38 it cc
569e: 2004 movcc r0, #4
56a0: eb00 0181 add.w r1, r0, r1, lsl #2
56a4: eb00 0086 add.w r0, r0, r6, lsl #2
56a8: ea4f 0282 mov.w r2, r2, lsl #2
56ac: 4b0f ldr r3, [pc, #60] ; (56ec <_lv_style_list_add_style+0xd8>)
56ae: bf38 it cc
56b0: 2200 movcc r2, #0
56b2: 4421 add r1, r4
56b4: 4420 add r0, r4
list->style_cnt++;
56b6: 3601 adds r6, #1
new_classes[i] = new_classes[i - 1];
56b8: 4798 blx r3
new_classes[first_style] = style;
56ba: f844 7028 str.w r7, [r4, r8, lsl #2]
list->style_cnt++;
56be: 712e strb r6, [r5, #4]
list->style_list = new_classes;
56c0: 602c str r4, [r5, #0]
56c2: e7d4 b.n 566e <_lv_style_list_add_style+0x5a>
56c4: 00005545 .word 0x00005545
56c8: 0000ea75 .word 0x0000ea75
56cc: 00001795 .word 0x00001795
56d0: 0001f94f .word 0x0001f94f
56d4: 0001f82a .word 0x0001f82a
56d8: 0000e931 .word 0x0000e931
56dc: 0001ee02 .word 0x0001ee02
56e0: 0000179d .word 0x0000179d
56e4: 0000ee5d .word 0x0000ee5d
56e8: 0001f896 .word 0x0001f896
56ec: 00016315 .word 0x00016315
000056f0 <get_alloc_local_style>:
*/
static lv_style_t * get_alloc_local_style(lv_style_list_t * list)
{
LV_ASSERT_STYLE_LIST(list);
if(list->has_local) return lv_style_list_get_style(list, 0);
56f0: 7943 ldrb r3, [r0, #5]
56f2: 07db lsls r3, r3, #31
{
56f4: b573 push {r0, r1, r4, r5, r6, lr}
56f6: 4605 mov r5, r0
if(list->has_local) return lv_style_list_get_style(list, 0);
56f8: d505 bpl.n 5706 <get_alloc_local_style+0x16>
56fa: 4b1a ldr r3, [pc, #104] ; (5764 <get_alloc_local_style+0x74>)
56fc: 2100 movs r1, #0
/*Add the local style to the furst place*/
_lv_style_list_add_style(list, local_style);
list->has_local = 1;
return local_style;
}
56fe: b002 add sp, #8
5700: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(list->has_local) return lv_style_list_get_style(list, 0);
5704: 4718 bx r3
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
5706: 4b18 ldr r3, [pc, #96] ; (5768 <get_alloc_local_style+0x78>)
5708: 2004 movs r0, #4
570a: 4798 blx r3
LV_ASSERT_MEM(local_style);
570c: 4b17 ldr r3, [pc, #92] ; (576c <get_alloc_local_style+0x7c>)
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
570e: 4604 mov r4, r0
LV_ASSERT_MEM(local_style);
5710: 4798 blx r3
5712: 4606 mov r6, r0
5714: b968 cbnz r0, 5732 <get_alloc_local_style+0x42>
5716: 4b16 ldr r3, [pc, #88] ; (5770 <get_alloc_local_style+0x80>)
5718: 4916 ldr r1, [pc, #88] ; (5774 <get_alloc_local_style+0x84>)
571a: 9300 str r3, [sp, #0]
571c: f240 4235 movw r2, #1077 ; 0x435
5720: 2003 movs r0, #3
5722: 4d15 ldr r5, [pc, #84] ; (5778 <get_alloc_local_style+0x88>)
5724: 47a8 blx r5
5726: 4815 ldr r0, [pc, #84] ; (577c <get_alloc_local_style+0x8c>)
5728: 4915 ldr r1, [pc, #84] ; (5780 <get_alloc_local_style+0x90>)
572a: 4622 mov r2, r4
572c: 4633 mov r3, r6
572e: 4788 blx r1
5730: e7fe b.n 5730 <get_alloc_local_style+0x40>
if(local_style == NULL) {
5732: b95c cbnz r4, 574c <get_alloc_local_style+0x5c>
LV_LOG_WARN("get_local_style: couldn't create local style");
5734: 4b13 ldr r3, [pc, #76] ; (5784 <get_alloc_local_style+0x94>)
5736: 9300 str r3, [sp, #0]
5738: 490e ldr r1, [pc, #56] ; (5774 <get_alloc_local_style+0x84>)
573a: 4b0d ldr r3, [pc, #52] ; (5770 <get_alloc_local_style+0x80>)
573c: 4d0e ldr r5, [pc, #56] ; (5778 <get_alloc_local_style+0x88>)
573e: f240 4237 movw r2, #1079 ; 0x437
5742: 2002 movs r0, #2
5744: 47a8 blx r5
}
5746: 4620 mov r0, r4
5748: b002 add sp, #8
574a: bd70 pop {r4, r5, r6, pc}
lv_style_init(local_style);
574c: 4b0e ldr r3, [pc, #56] ; (5788 <get_alloc_local_style+0x98>)
574e: 4620 mov r0, r4
5750: 4798 blx r3
_lv_style_list_add_style(list, local_style);
5752: 4b0e ldr r3, [pc, #56] ; (578c <get_alloc_local_style+0x9c>)
5754: 4621 mov r1, r4
5756: 4628 mov r0, r5
5758: 4798 blx r3
list->has_local = 1;
575a: 796b ldrb r3, [r5, #5]
575c: f043 0301 orr.w r3, r3, #1
5760: 716b strb r3, [r5, #5]
return local_style;
5762: e7f0 b.n 5746 <get_alloc_local_style+0x56>
5764: 00005491 .word 0x00005491
5768: 0000ea75 .word 0x0000ea75
576c: 00001795 .word 0x00001795
5770: 0001f968 .word 0x0001f968
5774: 0001f82a .word 0x0001f82a
5778: 0000e931 .word 0x0000e931
577c: 0001ee02 .word 0x0001ee02
5780: 0000179d .word 0x0000179d
5784: 0001f8c6 .word 0x0001f8c6
5788: 0000552d .word 0x0000552d
578c: 00005615 .word 0x00005615
00005790 <lv_style_reset>:
{
5790: b510 push {r4, lr}
lv_mem_free(style->map);
5792: 4b03 ldr r3, [pc, #12] ; (57a0 <lv_style_reset+0x10>)
{
5794: 4604 mov r4, r0
lv_mem_free(style->map);
5796: 6800 ldr r0, [r0, #0]
5798: 4798 blx r3
style->map = NULL;
579a: 2300 movs r3, #0
579c: 6023 str r3, [r4, #0]
}
579e: bd10 pop {r4, pc}
57a0: 0000eb2d .word 0x0000eb2d
000057a4 <_lv_style_get_mem_size>:
if(style->map == NULL) return 0;
57a4: 6800 ldr r0, [r0, #0]
57a6: b128 cbz r0, 57b4 <_lv_style_get_mem_size+0x10>
size_t i = 0;
57a8: 2300 movs r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
57aa: 5cc2 ldrb r2, [r0, r3]
57ac: 2aff cmp r2, #255 ; 0xff
57ae: d102 bne.n 57b6 <_lv_style_get_mem_size+0x12>
return i + sizeof(lv_style_property_t);
57b0: 3302 adds r3, #2
57b2: b298 uxth r0, r3
}
57b4: 4770 bx lr
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
57b6: f002 020f and.w r2, r2, #15
57ba: 2a08 cmp r2, #8
57bc: d802 bhi.n 57c4 <_lv_style_get_mem_size+0x20>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
57be: 3302 adds r3, #2
i += sizeof(lv_style_property_t);
57c0: 3302 adds r3, #2
57c2: e7f2 b.n 57aa <_lv_style_get_mem_size+0x6>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
57c4: 2a0b cmp r2, #11
57c6: d9fa bls.n 57be <_lv_style_get_mem_size+0x1a>
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
57c8: 2a0d cmp r2, #13
57ca: bf94 ite ls
57cc: 3301 addls r3, #1
else i += sizeof(const void *);
57ce: 3304 addhi r3, #4
57d0: e7f6 b.n 57c0 <_lv_style_get_mem_size+0x1c>
...
000057d4 <lv_style_copy>:
{
57d4: b537 push {r0, r1, r2, r4, r5, lr}
57d6: 4605 mov r5, r0
if(style_src == NULL) return;
57d8: 460c mov r4, r1
57da: b179 cbz r1, 57fc <lv_style_copy+0x28>
if(style_src->map == NULL) return;
57dc: 680b ldr r3, [r1, #0]
57de: b16b cbz r3, 57fc <lv_style_copy+0x28>
uint16_t size = _lv_style_get_mem_size(style_src);
57e0: 4608 mov r0, r1
57e2: 4b07 ldr r3, [pc, #28] ; (5800 <lv_style_copy+0x2c>)
57e4: 4798 blx r3
style_dest->map = lv_mem_alloc(size);
57e6: 4b07 ldr r3, [pc, #28] ; (5804 <lv_style_copy+0x30>)
uint16_t size = _lv_style_get_mem_size(style_src);
57e8: 9001 str r0, [sp, #4]
style_dest->map = lv_mem_alloc(size);
57ea: 4798 blx r3
57ec: 6028 str r0, [r5, #0]
_lv_memcpy(style_dest->map, style_src->map, size);
57ee: 9a01 ldr r2, [sp, #4]
57f0: 6821 ldr r1, [r4, #0]
57f2: 4b05 ldr r3, [pc, #20] ; (5808 <lv_style_copy+0x34>)
}
57f4: b003 add sp, #12
57f6: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
_lv_memcpy(style_dest->map, style_src->map, size);
57fa: 4718 bx r3
}
57fc: b003 add sp, #12
57fe: bd30 pop {r4, r5, pc}
5800: 000057a5 .word 0x000057a5
5804: 0000ea75 .word 0x0000ea75
5808: 0000ec79 .word 0x0000ec79
0000580c <lv_style_remove_prop>:
{
580c: b5f8 push {r3, r4, r5, r6, r7, lr}
580e: 460f mov r7, r1
if(style == NULL) return false;
5810: 4604 mov r4, r0
5812: b330 cbz r0, 5862 <lv_style_remove_prop+0x56>
int32_t id = get_property_index(style, prop);
5814: 6806 ldr r6, [r0, #0]
5816: 4b14 ldr r3, [pc, #80] ; (5868 <lv_style_remove_prop+0x5c>)
5818: 4630 mov r0, r6
581a: 4798 blx r3
if(id >= 0) {
581c: 1e05 subs r5, r0, #0
581e: db20 blt.n 5862 <lv_style_remove_prop+0x56>
attr_found.full = *(style->map + id + 1);
5820: 442e add r6, r5
if(attr_found.bits.state == attr_goal.bits.state) {
5822: 7873 ldrb r3, [r6, #1]
5824: ea83 2317 eor.w r3, r3, r7, lsr #8
5828: 065b lsls r3, r3, #25
582a: d11a bne.n 5862 <lv_style_remove_prop+0x56>
uint32_t map_size = _lv_style_get_mem_size(style);
582c: 4b0f ldr r3, [pc, #60] ; (586c <lv_style_remove_prop+0x60>)
582e: 4620 mov r0, r4
5830: f007 010f and.w r1, r7, #15
5834: 4798 blx r3
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
5836: 290b cmp r1, #11
5838: d90c bls.n 5854 <lv_style_remove_prop+0x48>
else prop_size += sizeof(const void *);
583a: 290e cmp r1, #14
583c: bf34 ite cc
583e: 2303 movcc r3, #3
5840: 2306 movcs r3, #6
for(i = id; i < map_size - prop_size; i++) {
5842: 1ac1 subs r1, r0, r3
5844: 42a9 cmp r1, r5
style->map[i] = style->map[i + prop_size];
5846: 6820 ldr r0, [r4, #0]
for(i = id; i < map_size - prop_size; i++) {
5848: d806 bhi.n 5858 <lv_style_remove_prop+0x4c>
style->map = lv_mem_realloc(style->map, map_size - prop_size);
584a: 4b09 ldr r3, [pc, #36] ; (5870 <lv_style_remove_prop+0x64>)
584c: 4798 blx r3
584e: 6020 str r0, [r4, #0]
return true;
5850: 2001 movs r0, #1
}
5852: bdf8 pop {r3, r4, r5, r6, r7, pc}
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
5854: 2304 movs r3, #4
5856: e7f4 b.n 5842 <lv_style_remove_prop+0x36>
style->map[i] = style->map[i + prop_size];
5858: 1942 adds r2, r0, r5
585a: 5cd2 ldrb r2, [r2, r3]
585c: 5542 strb r2, [r0, r5]
for(i = id; i < map_size - prop_size; i++) {
585e: 3501 adds r5, #1
5860: e7f0 b.n 5844 <lv_style_remove_prop+0x38>
if(style == NULL) return false;
5862: 2000 movs r0, #0
5864: e7f5 b.n 5852 <lv_style_remove_prop+0x46>
5866: bf00 nop
5868: 000054b1 .word 0x000054b1
586c: 000057a5 .word 0x000057a5
5870: 0000ee5d .word 0x0000ee5d
00005874 <_lv_style_set_int>:
{
5874: b570 push {r4, r5, r6, lr}
5876: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5878: 4b28 ldr r3, [pc, #160] ; (591c <_lv_style_set_int+0xa8>)
{
587a: b086 sub sp, #24
587c: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
587e: 4630 mov r0, r6
{
5880: f8ad 100e strh.w r1, [sp, #14]
5884: f8ad 200c strh.w r2, [sp, #12]
int32_t id = get_property_index(style, prop);
5888: 460c mov r4, r1
588a: 4798 blx r3
if(id >= 0) {
588c: 2800 cmp r0, #0
588e: db0d blt.n 58ac <_lv_style_set_int+0x38>
attr_found.full = *(style->map + id + 1);
5890: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5892: 785b ldrb r3, [r3, #1]
5894: ea83 2314 eor.w r3, r3, r4, lsr #8
5898: 065b lsls r3, r3, #25
589a: d107 bne.n 58ac <_lv_style_set_int+0x38>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t));
589c: 3002 adds r0, #2
589e: 4b20 ldr r3, [pc, #128] ; (5920 <_lv_style_set_int+0xac>)
58a0: 2202 movs r2, #2
58a2: a903 add r1, sp, #12
58a4: 4430 add r0, r6
58a6: 4798 blx r3
}
58a8: b006 add sp, #24
58aa: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
58ac: 23ff movs r3, #255 ; 0xff
58ae: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
58b2: 4628 mov r0, r5
58b4: 4b1b ldr r3, [pc, #108] ; (5924 <_lv_style_set_int+0xb0>)
58b6: 4798 blx r3
if(size == 0) size += end_mark_size;
58b8: 1e04 subs r4, r0, #0
58ba: bf08 it eq
58bc: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t);
58be: 3404 adds r4, #4
style->map = lv_mem_realloc(style->map, size);
58c0: b2a4 uxth r4, r4
58c2: 4b19 ldr r3, [pc, #100] ; (5928 <_lv_style_set_int+0xb4>)
58c4: 4621 mov r1, r4
58c6: 4630 mov r0, r6
58c8: 4798 blx r3
LV_ASSERT_MEM(style->map);
58ca: 4b18 ldr r3, [pc, #96] ; (592c <_lv_style_set_int+0xb8>)
style->map = lv_mem_realloc(style->map, size);
58cc: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
58ce: 4798 blx r3
58d0: 4606 mov r6, r0
58d2: b968 cbnz r0, 58f0 <_lv_style_set_int+0x7c>
58d4: 4b16 ldr r3, [pc, #88] ; (5930 <_lv_style_set_int+0xbc>)
58d6: 4917 ldr r1, [pc, #92] ; (5934 <_lv_style_set_int+0xc0>)
58d8: 9300 str r3, [sp, #0]
58da: f44f 72c3 mov.w r2, #390 ; 0x186
58de: 2003 movs r0, #3
58e0: 4c15 ldr r4, [pc, #84] ; (5938 <_lv_style_set_int+0xc4>)
58e2: 47a0 blx r4
58e4: 682a ldr r2, [r5, #0]
58e6: 4815 ldr r0, [pc, #84] ; (593c <_lv_style_set_int+0xc8>)
58e8: 4915 ldr r1, [pc, #84] ; (5940 <_lv_style_set_int+0xcc>)
58ea: 4633 mov r3, r6
58ec: 4788 blx r1
58ee: e7fe b.n 58ee <_lv_style_set_int+0x7a>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
58f0: 6828 ldr r0, [r5, #0]
58f2: 4e0b ldr r6, [pc, #44] ; (5920 <_lv_style_set_int+0xac>)
58f4: 1fa3 subs r3, r4, #6
58f6: f10d 010e add.w r1, sp, #14
58fa: 4418 add r0, r3
58fc: 2202 movs r2, #2
58fe: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
5900: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5902: 1f23 subs r3, r4, #4
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
5904: a903 add r1, sp, #12
5906: 4418 add r0, r3
5908: 2202 movs r2, #2
590a: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
590c: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
590e: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5910: 2202 movs r2, #2
5912: f10d 0116 add.w r1, sp, #22
5916: 4420 add r0, r4
5918: 47b0 blx r6
591a: e7c5 b.n 58a8 <_lv_style_set_int+0x34>
591c: 000054b1 .word 0x000054b1
5920: 0000551b .word 0x0000551b
5924: 000057a5 .word 0x000057a5
5928: 0000ee5d .word 0x0000ee5d
592c: 00001795 .word 0x00001795
5930: 0001f97e .word 0x0001f97e
5934: 0001f82a .word 0x0001f82a
5938: 0000e931 .word 0x0000e931
593c: 0001ee02 .word 0x0001ee02
5940: 0000179d .word 0x0000179d
00005944 <_lv_style_set_color>:
{
5944: b570 push {r4, r5, r6, lr}
5946: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5948: 4b28 ldr r3, [pc, #160] ; (59ec <_lv_style_set_color+0xa8>)
{
594a: b086 sub sp, #24
594c: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
594e: 4630 mov r0, r6
{
5950: f8ad 200c strh.w r2, [sp, #12]
5954: f8ad 100e strh.w r1, [sp, #14]
int32_t id = get_property_index(style, prop);
5958: 460c mov r4, r1
595a: 4798 blx r3
if(id >= 0) {
595c: 2800 cmp r0, #0
595e: db0d blt.n 597c <_lv_style_set_color+0x38>
attr_found.full = *(style->map + id + 1);
5960: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5962: 785b ldrb r3, [r3, #1]
5964: ea83 2314 eor.w r3, r3, r4, lsr #8
5968: 065b lsls r3, r3, #25
596a: d107 bne.n 597c <_lv_style_set_color+0x38>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t));
596c: 3002 adds r0, #2
596e: 4b20 ldr r3, [pc, #128] ; (59f0 <_lv_style_set_color+0xac>)
5970: 2202 movs r2, #2
5972: a903 add r1, sp, #12
5974: 4430 add r0, r6
5976: 4798 blx r3
}
5978: b006 add sp, #24
597a: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
597c: 23ff movs r3, #255 ; 0xff
597e: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5982: 4628 mov r0, r5
5984: 4b1b ldr r3, [pc, #108] ; (59f4 <_lv_style_set_color+0xb0>)
5986: 4798 blx r3
if(size == 0) size += end_mark_size;
5988: 1e04 subs r4, r0, #0
598a: bf08 it eq
598c: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_color_t);
598e: 3404 adds r4, #4
style->map = lv_mem_realloc(style->map, size);
5990: b2a4 uxth r4, r4
5992: 4b19 ldr r3, [pc, #100] ; (59f8 <_lv_style_set_color+0xb4>)
5994: 4621 mov r1, r4
5996: 4630 mov r0, r6
5998: 4798 blx r3
LV_ASSERT_MEM(style->map);
599a: 4b18 ldr r3, [pc, #96] ; (59fc <_lv_style_set_color+0xb8>)
style->map = lv_mem_realloc(style->map, size);
599c: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
599e: 4798 blx r3
59a0: 4606 mov r6, r0
59a2: b968 cbnz r0, 59c0 <_lv_style_set_color+0x7c>
59a4: 4b16 ldr r3, [pc, #88] ; (5a00 <_lv_style_set_color+0xbc>)
59a6: 4917 ldr r1, [pc, #92] ; (5a04 <_lv_style_set_color+0xc0>)
59a8: 9300 str r3, [sp, #0]
59aa: f240 12b5 movw r2, #437 ; 0x1b5
59ae: 2003 movs r0, #3
59b0: 4c15 ldr r4, [pc, #84] ; (5a08 <_lv_style_set_color+0xc4>)
59b2: 47a0 blx r4
59b4: 682a ldr r2, [r5, #0]
59b6: 4815 ldr r0, [pc, #84] ; (5a0c <_lv_style_set_color+0xc8>)
59b8: 4915 ldr r1, [pc, #84] ; (5a10 <_lv_style_set_color+0xcc>)
59ba: 4633 mov r3, r6
59bc: 4788 blx r1
59be: e7fe b.n 59be <_lv_style_set_color+0x7a>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
59c0: 6828 ldr r0, [r5, #0]
59c2: 4e0b ldr r6, [pc, #44] ; (59f0 <_lv_style_set_color+0xac>)
59c4: 1fa3 subs r3, r4, #6
59c6: f10d 010e add.w r1, sp, #14
59ca: 4418 add r0, r3
59cc: 2202 movs r2, #2
59ce: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
59d0: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
59d2: 1f23 subs r3, r4, #4
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
59d4: a903 add r1, sp, #12
59d6: 4418 add r0, r3
59d8: 2202 movs r2, #2
59da: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
59dc: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
59de: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
59e0: 2202 movs r2, #2
59e2: f10d 0116 add.w r1, sp, #22
59e6: 4420 add r0, r4
59e8: 47b0 blx r6
59ea: e7c5 b.n 5978 <_lv_style_set_color+0x34>
59ec: 000054b1 .word 0x000054b1
59f0: 0000551b .word 0x0000551b
59f4: 000057a5 .word 0x000057a5
59f8: 0000ee5d .word 0x0000ee5d
59fc: 00001795 .word 0x00001795
5a00: 0001f990 .word 0x0001f990
5a04: 0001f82a .word 0x0001f82a
5a08: 0000e931 .word 0x0000e931
5a0c: 0001ee02 .word 0x0001ee02
5a10: 0000179d .word 0x0000179d
00005a14 <_lv_style_set_opa>:
{
5a14: b570 push {r4, r5, r6, lr}
5a16: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5a18: 4b29 ldr r3, [pc, #164] ; (5ac0 <_lv_style_set_opa+0xac>)
{
5a1a: b086 sub sp, #24
5a1c: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5a1e: 4630 mov r0, r6
{
5a20: f8ad 100e strh.w r1, [sp, #14]
5a24: f88d 200d strb.w r2, [sp, #13]
int32_t id = get_property_index(style, prop);
5a28: 460c mov r4, r1
5a2a: 4798 blx r3
if(id >= 0) {
5a2c: 2800 cmp r0, #0
5a2e: db0e blt.n 5a4e <_lv_style_set_opa+0x3a>
attr_found.full = *(style->map + id + 1);
5a30: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5a32: 785b ldrb r3, [r3, #1]
5a34: ea83 2314 eor.w r3, r3, r4, lsr #8
5a38: 065b lsls r3, r3, #25
5a3a: d108 bne.n 5a4e <_lv_style_set_opa+0x3a>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &opa, sizeof(lv_opa_t));
5a3c: 3002 adds r0, #2
5a3e: 4b21 ldr r3, [pc, #132] ; (5ac4 <_lv_style_set_opa+0xb0>)
5a40: 2201 movs r2, #1
5a42: f10d 010d add.w r1, sp, #13
5a46: 4430 add r0, r6
5a48: 4798 blx r3
}
5a4a: b006 add sp, #24
5a4c: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5a4e: 23ff movs r3, #255 ; 0xff
5a50: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5a54: 4628 mov r0, r5
5a56: 4b1c ldr r3, [pc, #112] ; (5ac8 <_lv_style_set_opa+0xb4>)
5a58: 4798 blx r3
if(size == 0) size += end_mark_size;
5a5a: 1e04 subs r4, r0, #0
5a5c: bf08 it eq
5a5e: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_opa_t);
5a60: 3403 adds r4, #3
style->map = lv_mem_realloc(style->map, size);
5a62: b2a4 uxth r4, r4
5a64: 4b19 ldr r3, [pc, #100] ; (5acc <_lv_style_set_opa+0xb8>)
5a66: 4621 mov r1, r4
5a68: 4630 mov r0, r6
5a6a: 4798 blx r3
LV_ASSERT_MEM(style->map);
5a6c: 4b18 ldr r3, [pc, #96] ; (5ad0 <_lv_style_set_opa+0xbc>)
style->map = lv_mem_realloc(style->map, size);
5a6e: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5a70: 4798 blx r3
5a72: 4606 mov r6, r0
5a74: b968 cbnz r0, 5a92 <_lv_style_set_opa+0x7e>
5a76: 4b17 ldr r3, [pc, #92] ; (5ad4 <_lv_style_set_opa+0xc0>)
5a78: 4917 ldr r1, [pc, #92] ; (5ad8 <_lv_style_set_opa+0xc4>)
5a7a: 9300 str r3, [sp, #0]
5a7c: f44f 72f2 mov.w r2, #484 ; 0x1e4
5a80: 2003 movs r0, #3
5a82: 4c16 ldr r4, [pc, #88] ; (5adc <_lv_style_set_opa+0xc8>)
5a84: 47a0 blx r4
5a86: 682a ldr r2, [r5, #0]
5a88: 4815 ldr r0, [pc, #84] ; (5ae0 <_lv_style_set_opa+0xcc>)
5a8a: 4916 ldr r1, [pc, #88] ; (5ae4 <_lv_style_set_opa+0xd0>)
5a8c: 4633 mov r3, r6
5a8e: 4788 blx r1
5a90: e7fe b.n 5a90 <_lv_style_set_opa+0x7c>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5a92: 6828 ldr r0, [r5, #0]
5a94: 4e0b ldr r6, [pc, #44] ; (5ac4 <_lv_style_set_opa+0xb0>)
5a96: 1f63 subs r3, r4, #5
5a98: f10d 010e add.w r1, sp, #14
5a9c: 4418 add r0, r3
5a9e: 2202 movs r2, #2
5aa0: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5aa2: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5aa4: 1ee3 subs r3, r4, #3
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5aa6: f10d 010d add.w r1, sp, #13
5aaa: 4418 add r0, r3
5aac: 2201 movs r2, #1
5aae: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5ab0: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5ab2: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5ab4: 2202 movs r2, #2
5ab6: f10d 0116 add.w r1, sp, #22
5aba: 4420 add r0, r4
5abc: 47b0 blx r6
5abe: e7c4 b.n 5a4a <_lv_style_set_opa+0x36>
5ac0: 000054b1 .word 0x000054b1
5ac4: 0000551b .word 0x0000551b
5ac8: 000057a5 .word 0x000057a5
5acc: 0000ee5d .word 0x0000ee5d
5ad0: 00001795 .word 0x00001795
5ad4: 0001f9a4 .word 0x0001f9a4
5ad8: 0001f82a .word 0x0001f82a
5adc: 0000e931 .word 0x0000e931
5ae0: 0001ee02 .word 0x0001ee02
5ae4: 0000179d .word 0x0000179d
00005ae8 <_lv_style_set_ptr>:
{
5ae8: b570 push {r4, r5, r6, lr}
5aea: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5aec: 4b28 ldr r3, [pc, #160] ; (5b90 <_lv_style_set_ptr+0xa8>)
{
5aee: b086 sub sp, #24
5af0: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5af2: 4630 mov r0, r6
{
5af4: 9202 str r2, [sp, #8]
5af6: f8ad 100e strh.w r1, [sp, #14]
int32_t id = get_property_index(style, prop);
5afa: 460c mov r4, r1
5afc: 4798 blx r3
if(id >= 0) {
5afe: 2800 cmp r0, #0
5b00: db0d blt.n 5b1e <_lv_style_set_ptr+0x36>
attr_found.full = *(style->map + id + 1);
5b02: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5b04: 785b ldrb r3, [r3, #1]
5b06: ea83 2314 eor.w r3, r3, r4, lsr #8
5b0a: 065b lsls r3, r3, #25
5b0c: d107 bne.n 5b1e <_lv_style_set_ptr+0x36>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *));
5b0e: 3002 adds r0, #2
5b10: 4b20 ldr r3, [pc, #128] ; (5b94 <_lv_style_set_ptr+0xac>)
5b12: 2204 movs r2, #4
5b14: a902 add r1, sp, #8
5b16: 4430 add r0, r6
5b18: 4798 blx r3
}
5b1a: b006 add sp, #24
5b1c: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5b1e: 23ff movs r3, #255 ; 0xff
5b20: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5b24: 4628 mov r0, r5
5b26: 4b1c ldr r3, [pc, #112] ; (5b98 <_lv_style_set_ptr+0xb0>)
5b28: 4798 blx r3
if(size == 0) size += end_mark_size;
5b2a: 1e04 subs r4, r0, #0
5b2c: bf08 it eq
5b2e: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(const void *);
5b30: 3406 adds r4, #6
style->map = lv_mem_realloc(style->map, size);
5b32: b2a4 uxth r4, r4
5b34: 4b19 ldr r3, [pc, #100] ; (5b9c <_lv_style_set_ptr+0xb4>)
5b36: 4621 mov r1, r4
5b38: 4630 mov r0, r6
5b3a: 4798 blx r3
LV_ASSERT_MEM(style->map);
5b3c: 4b18 ldr r3, [pc, #96] ; (5ba0 <_lv_style_set_ptr+0xb8>)
style->map = lv_mem_realloc(style->map, size);
5b3e: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5b40: 4798 blx r3
5b42: 4606 mov r6, r0
5b44: b968 cbnz r0, 5b62 <_lv_style_set_ptr+0x7a>
5b46: 4b17 ldr r3, [pc, #92] ; (5ba4 <_lv_style_set_ptr+0xbc>)
5b48: 4917 ldr r1, [pc, #92] ; (5ba8 <_lv_style_set_ptr+0xc0>)
5b4a: 9300 str r3, [sp, #0]
5b4c: f240 2213 movw r2, #531 ; 0x213
5b50: 2003 movs r0, #3
5b52: 4c16 ldr r4, [pc, #88] ; (5bac <_lv_style_set_ptr+0xc4>)
5b54: 47a0 blx r4
5b56: 682a ldr r2, [r5, #0]
5b58: 4815 ldr r0, [pc, #84] ; (5bb0 <_lv_style_set_ptr+0xc8>)
5b5a: 4916 ldr r1, [pc, #88] ; (5bb4 <_lv_style_set_ptr+0xcc>)
5b5c: 4633 mov r3, r6
5b5e: 4788 blx r1
5b60: e7fe b.n 5b60 <_lv_style_set_ptr+0x78>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5b62: 6828 ldr r0, [r5, #0]
5b64: 4e0b ldr r6, [pc, #44] ; (5b94 <_lv_style_set_ptr+0xac>)
5b66: f1a4 0308 sub.w r3, r4, #8
5b6a: f10d 010e add.w r1, sp, #14
5b6e: 4418 add r0, r3
5b70: 2202 movs r2, #2
5b72: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5b74: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5b76: 1fa3 subs r3, r4, #6
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5b78: a902 add r1, sp, #8
5b7a: 4418 add r0, r3
5b7c: 2204 movs r2, #4
5b7e: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5b80: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5b82: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5b84: 2202 movs r2, #2
5b86: f10d 0116 add.w r1, sp, #22
5b8a: 4420 add r0, r4
5b8c: 47b0 blx r6
5b8e: e7c4 b.n 5b1a <_lv_style_set_ptr+0x32>
5b90: 000054b1 .word 0x000054b1
5b94: 0000551b .word 0x0000551b
5b98: 000057a5 .word 0x000057a5
5b9c: 0000ee5d .word 0x0000ee5d
5ba0: 00001795 .word 0x00001795
5ba4: 0001f9b6 .word 0x0001f9b6
5ba8: 0001f82a .word 0x0001f82a
5bac: 0000e931 .word 0x0000e931
5bb0: 0001ee02 .word 0x0001ee02
5bb4: 0000179d .word 0x0000179d
00005bb8 <_lv_style_get_int>:
{
5bb8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5bbc: 460e mov r6, r1
5bbe: 4617 mov r7, r2
if(style == NULL) return -1;
5bc0: 4605 mov r5, r0
5bc2: b1c0 cbz r0, 5bf6 <_lv_style_get_int+0x3e>
if(style->map == NULL) return -1;
5bc4: f8d0 8000 ldr.w r8, [r0]
5bc8: f1b8 0f00 cmp.w r8, #0
5bcc: d013 beq.n 5bf6 <_lv_style_get_int+0x3e>
int32_t id = get_property_index(style, prop);
5bce: 4b0b ldr r3, [pc, #44] ; (5bfc <_lv_style_get_int+0x44>)
5bd0: 4640 mov r0, r8
5bd2: 4798 blx r3
if(id < 0) {
5bd4: 1e04 subs r4, r0, #0
5bd6: db0e blt.n 5bf6 <_lv_style_get_int+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t));
5bd8: 1ca1 adds r1, r4, #2
5bda: 4b09 ldr r3, [pc, #36] ; (5c00 <_lv_style_get_int+0x48>)
5bdc: 4638 mov r0, r7
5bde: 2202 movs r2, #2
5be0: 4441 add r1, r8
5be2: 4798 blx r3
attr_act.full = style->map[id + 1];
5be4: 6828 ldr r0, [r5, #0]
5be6: 4404 add r4, r0
5be8: 7863 ldrb r3, [r4, #1]
return attr_act.bits.state & attr_goal.bits.state;
5bea: f3c3 0306 ubfx r3, r3, #0, #7
5bee: ea03 2016 and.w r0, r3, r6, lsr #8
}
5bf2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5bf6: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5bfa: e7fa b.n 5bf2 <_lv_style_get_int+0x3a>
5bfc: 000054b1 .word 0x000054b1
5c00: 0000551b .word 0x0000551b
00005c04 <_lv_style_get_opa>:
{
5c04: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5c08: 460e mov r6, r1
5c0a: 4617 mov r7, r2
if(style == NULL) return -1;
5c0c: 4605 mov r5, r0
5c0e: b1c0 cbz r0, 5c42 <_lv_style_get_opa+0x3e>
if(style->map == NULL) return -1;
5c10: f8d0 8000 ldr.w r8, [r0]
5c14: f1b8 0f00 cmp.w r8, #0
5c18: d013 beq.n 5c42 <_lv_style_get_opa+0x3e>
int32_t id = get_property_index(style, prop);
5c1a: 4b0b ldr r3, [pc, #44] ; (5c48 <_lv_style_get_opa+0x44>)
5c1c: 4640 mov r0, r8
5c1e: 4798 blx r3
if(id < 0) {
5c20: 1e04 subs r4, r0, #0
5c22: db0e blt.n 5c42 <_lv_style_get_opa+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_opa_t));
5c24: 1ca1 adds r1, r4, #2
5c26: 4b09 ldr r3, [pc, #36] ; (5c4c <_lv_style_get_opa+0x48>)
5c28: 4638 mov r0, r7
5c2a: 2201 movs r2, #1
5c2c: 4441 add r1, r8
5c2e: 4798 blx r3
attr_act.full = style->map[id + 1];
5c30: 6828 ldr r0, [r5, #0]
5c32: 4404 add r4, r0
5c34: 7863 ldrb r3, [r4, #1]
return attr_act.bits.state & attr_goal.bits.state;
5c36: f3c3 0306 ubfx r3, r3, #0, #7
5c3a: ea03 2016 and.w r0, r3, r6, lsr #8
}
5c3e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5c42: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5c46: e7fa b.n 5c3e <_lv_style_get_opa+0x3a>
5c48: 000054b1 .word 0x000054b1
5c4c: 0000551b .word 0x0000551b
00005c50 <_lv_style_get_ptr>:
{
5c50: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5c54: 460e mov r6, r1
5c56: 4617 mov r7, r2
if(style == NULL) return -1;
5c58: 4605 mov r5, r0
5c5a: b1c0 cbz r0, 5c8e <_lv_style_get_ptr+0x3e>
if(style->map == NULL) return -1;
5c5c: f8d0 8000 ldr.w r8, [r0]
5c60: f1b8 0f00 cmp.w r8, #0
5c64: d013 beq.n 5c8e <_lv_style_get_ptr+0x3e>
int32_t id = get_property_index(style, prop);
5c66: 4b0b ldr r3, [pc, #44] ; (5c94 <_lv_style_get_ptr+0x44>)
5c68: 4640 mov r0, r8
5c6a: 4798 blx r3
if(id < 0) {
5c6c: 1e04 subs r4, r0, #0
5c6e: db0e blt.n 5c8e <_lv_style_get_ptr+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *));
5c70: 1ca1 adds r1, r4, #2
5c72: 4b09 ldr r3, [pc, #36] ; (5c98 <_lv_style_get_ptr+0x48>)
5c74: 4638 mov r0, r7
5c76: 2204 movs r2, #4
5c78: 4441 add r1, r8
5c7a: 4798 blx r3
attr_act.full = style->map[id + 1];
5c7c: 6828 ldr r0, [r5, #0]
5c7e: 4404 add r4, r0
5c80: 7863 ldrb r3, [r4, #1]
return attr_act.bits.state & attr_goal.bits.state;
5c82: f3c3 0306 ubfx r3, r3, #0, #7
5c86: ea03 2016 and.w r0, r3, r6, lsr #8
}
5c8a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5c8e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5c92: e7fa b.n 5c8a <_lv_style_get_ptr+0x3a>
5c94: 000054b1 .word 0x000054b1
5c98: 0000551b .word 0x0000551b
00005c9c <lv_style_list_get_local_style>:
if(!list->has_local) return NULL;
5c9c: 7942 ldrb r2, [r0, #5]
5c9e: f012 0301 ands.w r3, r2, #1
5ca2: d005 beq.n 5cb0 <lv_style_list_get_local_style+0x14>
if(list->has_trans) return list->style_list[1];
5ca4: 6803 ldr r3, [r0, #0]
5ca6: 0792 lsls r2, r2, #30
5ca8: bf4c ite mi
5caa: 6858 ldrmi r0, [r3, #4]
else return list->style_list[0];
5cac: 6818 ldrpl r0, [r3, #0]
5cae: 4770 bx lr
if(!list->has_local) return NULL;
5cb0: 4618 mov r0, r3
}
5cb2: 4770 bx lr
00005cb4 <_lv_style_list_get_transition_style>:
if(!list->has_trans) return NULL;
5cb4: 7943 ldrb r3, [r0, #5]
5cb6: f013 0302 ands.w r3, r3, #2
return list->style_list[0];
5cba: bf1a itte ne
5cbc: 6803 ldrne r3, [r0, #0]
5cbe: 6818 ldrne r0, [r3, #0]
if(!list->has_trans) return NULL;
5cc0: 4618 moveq r0, r3
}
5cc2: 4770 bx lr
00005cc4 <_lv_style_list_reset>:
{
5cc4: b538 push {r3, r4, r5, lr}
if(list == NULL) return;
5cc6: 4604 mov r4, r0
5cc8: b328 cbz r0, 5d16 <_lv_style_list_reset+0x52>
if(list->has_local) {
5cca: 7943 ldrb r3, [r0, #5]
5ccc: 07da lsls r2, r3, #31
5cce: d508 bpl.n 5ce2 <_lv_style_list_reset+0x1e>
lv_style_t * local = lv_style_list_get_local_style(list);
5cd0: 4b11 ldr r3, [pc, #68] ; (5d18 <_lv_style_list_reset+0x54>)
5cd2: 4798 blx r3
if(local) {
5cd4: 4605 mov r5, r0
5cd6: b120 cbz r0, 5ce2 <_lv_style_list_reset+0x1e>
lv_style_reset(local);
5cd8: 4b10 ldr r3, [pc, #64] ; (5d1c <_lv_style_list_reset+0x58>)
5cda: 4798 blx r3
lv_mem_free(local);
5cdc: 4b10 ldr r3, [pc, #64] ; (5d20 <_lv_style_list_reset+0x5c>)
5cde: 4628 mov r0, r5
5ce0: 4798 blx r3
if(list->has_trans) {
5ce2: 7963 ldrb r3, [r4, #5]
5ce4: 079b lsls r3, r3, #30
5ce6: d509 bpl.n 5cfc <_lv_style_list_reset+0x38>
lv_style_t * trans = _lv_style_list_get_transition_style(list);
5ce8: 4b0e ldr r3, [pc, #56] ; (5d24 <_lv_style_list_reset+0x60>)
5cea: 4620 mov r0, r4
5cec: 4798 blx r3
if(trans) {
5cee: 4605 mov r5, r0
5cf0: b120 cbz r0, 5cfc <_lv_style_list_reset+0x38>
lv_style_reset(trans);
5cf2: 4b0a ldr r3, [pc, #40] ; (5d1c <_lv_style_list_reset+0x58>)
5cf4: 4798 blx r3
lv_mem_free(trans);
5cf6: 4b0a ldr r3, [pc, #40] ; (5d20 <_lv_style_list_reset+0x5c>)
5cf8: 4628 mov r0, r5
5cfa: 4798 blx r3
if(list->style_cnt > 0) lv_mem_free(list->style_list);
5cfc: 7923 ldrb r3, [r4, #4]
5cfe: b113 cbz r3, 5d06 <_lv_style_list_reset+0x42>
5d00: 6820 ldr r0, [r4, #0]
5d02: 4b07 ldr r3, [pc, #28] ; (5d20 <_lv_style_list_reset+0x5c>)
5d04: 4798 blx r3
list->style_list = NULL;
5d06: 2300 movs r3, #0
5d08: 6023 str r3, [r4, #0]
list->style_cnt = 0;
5d0a: 88a3 ldrh r3, [r4, #4]
5d0c: f423 63ff bic.w r3, r3, #2040 ; 0x7f8
5d10: f023 0307 bic.w r3, r3, #7
5d14: 80a3 strh r3, [r4, #4]
}
5d16: bd38 pop {r3, r4, r5, pc}
5d18: 00005c9d .word 0x00005c9d
5d1c: 00005791 .word 0x00005791
5d20: 0000eb2d .word 0x0000eb2d
5d24: 00005cb5 .word 0x00005cb5
00005d28 <lv_style_list_copy>:
{
5d28: b570 push {r4, r5, r6, lr}
5d2a: 460c mov r4, r1
_lv_style_list_reset(list_dest);
5d2c: 4b26 ldr r3, [pc, #152] ; (5dc8 <lv_style_list_copy+0xa0>)
{
5d2e: 4605 mov r5, r0
_lv_style_list_reset(list_dest);
5d30: 4798 blx r3
if(list_src->style_list == NULL) return;
5d32: 6823 ldr r3, [r4, #0]
5d34: b1b3 cbz r3, 5d64 <lv_style_list_copy+0x3c>
if(list_src->has_local == 0) {
5d36: 7963 ldrb r3, [r4, #5]
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
5d38: 7920 ldrb r0, [r4, #4]
5d3a: 4e24 ldr r6, [pc, #144] ; (5dcc <lv_style_list_copy+0xa4>)
if(list_src->has_local == 0) {
5d3c: f013 0f01 tst.w r3, #1
if(list_src->has_trans) {
5d40: f003 0202 and.w r2, r3, #2
5d44: 4b22 ldr r3, [pc, #136] ; (5dd0 <lv_style_list_copy+0xa8>)
if(list_src->has_local == 0) {
5d46: d117 bne.n 5d78 <lv_style_list_copy+0x50>
if(list_src->has_trans) {
5d48: b16a cbz r2, 5d66 <lv_style_list_copy+0x3e>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
5d4a: 3801 subs r0, #1
5d4c: 0080 lsls r0, r0, #2
5d4e: 4798 blx r3
5d50: 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 *));
5d52: 7922 ldrb r2, [r4, #4]
5d54: 6821 ldr r1, [r4, #0]
5d56: 3a01 subs r2, #1
5d58: 0092 lsls r2, r2, #2
5d5a: 3104 adds r1, #4
5d5c: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 1;
5d5e: 7923 ldrb r3, [r4, #4]
5d60: 3b01 subs r3, #1
list_dest->style_cnt = list_src->style_cnt;
5d62: 712b strb r3, [r5, #4]
}
5d64: bd70 pop {r4, r5, r6, pc}
list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *));
5d66: 0080 lsls r0, r0, #2
5d68: 4798 blx r3
5d6a: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *));
5d6c: 7922 ldrb r2, [r4, #4]
5d6e: 6821 ldr r1, [r4, #0]
5d70: 0092 lsls r2, r2, #2
5d72: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt;
5d74: 7923 ldrb r3, [r4, #4]
5d76: e7f4 b.n 5d62 <lv_style_list_copy+0x3a>
if(list_src->has_trans) {
5d78: b1c2 cbz r2, 5dac <lv_style_list_copy+0x84>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *));
5d7a: 3802 subs r0, #2
5d7c: 0080 lsls r0, r0, #2
5d7e: 4798 blx r3
5d80: 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 *));
5d82: 7922 ldrb r2, [r4, #4]
5d84: 6821 ldr r1, [r4, #0]
5d86: 3a02 subs r2, #2
5d88: 0092 lsls r2, r2, #2
5d8a: 3108 adds r1, #8
5d8c: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 2;
5d8e: 7923 ldrb r3, [r4, #4]
5d90: 3b02 subs r3, #2
list_dest->style_cnt = list_src->style_cnt - 1;
5d92: 712b strb r3, [r5, #4]
lv_style_t * local_style = get_alloc_local_style(list_dest);
5d94: 4e0f ldr r6, [pc, #60] ; (5dd4 <lv_style_list_copy+0xac>)
5d96: 4628 mov r0, r5
5d98: 47b0 blx r6
5d9a: 4605 mov r5, r0
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
5d9c: 4620 mov r0, r4
5d9e: 47b0 blx r6
5da0: 4b0d ldr r3, [pc, #52] ; (5dd8 <lv_style_list_copy+0xb0>)
5da2: 4601 mov r1, r0
5da4: 4628 mov r0, r5
}
5da6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
5daa: 4718 bx r3
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
5dac: 3801 subs r0, #1
5dae: 0080 lsls r0, r0, #2
5db0: 4798 blx r3
5db2: 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 *));
5db4: 7922 ldrb r2, [r4, #4]
5db6: 6821 ldr r1, [r4, #0]
5db8: 3a01 subs r2, #1
5dba: 0092 lsls r2, r2, #2
5dbc: 3104 adds r1, #4
5dbe: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 1;
5dc0: 7923 ldrb r3, [r4, #4]
5dc2: 3b01 subs r3, #1
5dc4: e7e5 b.n 5d92 <lv_style_list_copy+0x6a>
5dc6: bf00 nop
5dc8: 00005cc5 .word 0x00005cc5
5dcc: 0000ec79 .word 0x0000ec79
5dd0: 0000ea75 .word 0x0000ea75
5dd4: 000056f1 .word 0x000056f1
5dd8: 000057d5 .word 0x000057d5
00005ddc <_lv_style_list_add_trans_style>:
if(list->has_trans) return _lv_style_list_get_transition_style(list);
5ddc: 7943 ldrb r3, [r0, #5]
5dde: 079a lsls r2, r3, #30
{
5de0: b573 push {r0, r1, r4, r5, r6, lr}
5de2: 4605 mov r5, r0
if(list->has_trans) return _lv_style_list_get_transition_style(list);
5de4: d504 bpl.n 5df0 <_lv_style_list_add_trans_style+0x14>
5de6: 4b1d ldr r3, [pc, #116] ; (5e5c <_lv_style_list_add_trans_style+0x80>)
}
5de8: b002 add sp, #8
5dea: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(list->has_trans) return _lv_style_list_get_transition_style(list);
5dee: 4718 bx r3
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
5df0: 4b1b ldr r3, [pc, #108] ; (5e60 <_lv_style_list_add_trans_style+0x84>)
5df2: 2004 movs r0, #4
5df4: 4798 blx r3
LV_ASSERT_MEM(trans_style);
5df6: 4b1b ldr r3, [pc, #108] ; (5e64 <_lv_style_list_add_trans_style+0x88>)
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
5df8: 4604 mov r4, r0
LV_ASSERT_MEM(trans_style);
5dfa: 4798 blx r3
5dfc: 4606 mov r6, r0
5dfe: b968 cbnz r0, 5e1c <_lv_style_list_add_trans_style+0x40>
5e00: 4b19 ldr r3, [pc, #100] ; (5e68 <_lv_style_list_add_trans_style+0x8c>)
5e02: 491a ldr r1, [pc, #104] ; (5e6c <_lv_style_list_add_trans_style+0x90>)
5e04: 9300 str r3, [sp, #0]
5e06: f240 22cd movw r2, #717 ; 0x2cd
5e0a: 2003 movs r0, #3
5e0c: 4d18 ldr r5, [pc, #96] ; (5e70 <_lv_style_list_add_trans_style+0x94>)
5e0e: 47a8 blx r5
5e10: 4818 ldr r0, [pc, #96] ; (5e74 <_lv_style_list_add_trans_style+0x98>)
5e12: 4919 ldr r1, [pc, #100] ; (5e78 <_lv_style_list_add_trans_style+0x9c>)
5e14: 4622 mov r2, r4
5e16: 4633 mov r3, r6
5e18: 4788 blx r1
5e1a: e7fe b.n 5e1a <_lv_style_list_add_trans_style+0x3e>
if(trans_style == NULL) {
5e1c: b95c cbnz r4, 5e36 <_lv_style_list_add_trans_style+0x5a>
LV_LOG_WARN("lv_style_list_add_trans_style: couldn't create transition style");
5e1e: 4b17 ldr r3, [pc, #92] ; (5e7c <_lv_style_list_add_trans_style+0xa0>)
5e20: 9300 str r3, [sp, #0]
5e22: 4912 ldr r1, [pc, #72] ; (5e6c <_lv_style_list_add_trans_style+0x90>)
5e24: 4b10 ldr r3, [pc, #64] ; (5e68 <_lv_style_list_add_trans_style+0x8c>)
5e26: 4d12 ldr r5, [pc, #72] ; (5e70 <_lv_style_list_add_trans_style+0x94>)
5e28: f240 22cf movw r2, #719 ; 0x2cf
5e2c: 2002 movs r0, #2
5e2e: 47a8 blx r5
}
5e30: 4620 mov r0, r4
5e32: b002 add sp, #8
5e34: bd70 pop {r4, r5, r6, pc}
lv_style_init(trans_style);
5e36: 4b12 ldr r3, [pc, #72] ; (5e80 <_lv_style_list_add_trans_style+0xa4>)
5e38: 4620 mov r0, r4
5e3a: 4798 blx r3
_lv_style_list_add_style(list, trans_style);
5e3c: 4621 mov r1, r4
5e3e: 4b11 ldr r3, [pc, #68] ; (5e84 <_lv_style_list_add_trans_style+0xa8>)
5e40: 4628 mov r0, r5
5e42: 4798 blx r3
list->has_trans = 1;
5e44: 796b ldrb r3, [r5, #5]
5e46: f043 0302 orr.w r3, r3, #2
5e4a: 716b strb r3, [r5, #5]
if(list->has_local) {
5e4c: 07db lsls r3, r3, #31
lv_style_t * tmp = list->style_list[0];
5e4e: bf42 ittt mi
5e50: 682b ldrmi r3, [r5, #0]
list->style_list[0] = list->style_list[1];
5e52: e9d3 2100 ldrdmi r2, r1, [r3]
list->style_list[1] = tmp;
5e56: e9c3 1200 strdmi r1, r2, [r3]
5e5a: e7e9 b.n 5e30 <_lv_style_list_add_trans_style+0x54>
5e5c: 00005cb5 .word 0x00005cb5
5e60: 0000ea75 .word 0x0000ea75
5e64: 00001795 .word 0x00001795
5e68: 0001f9c8 .word 0x0001f9c8
5e6c: 0001f82a .word 0x0001f82a
5e70: 0000e931 .word 0x0000e931
5e74: 0001ee02 .word 0x0001ee02
5e78: 0000179d .word 0x0000179d
5e7c: 0001f8f3 .word 0x0001f8f3
5e80: 0000552d .word 0x0000552d
5e84: 00005615 .word 0x00005615
00005e88 <_lv_style_list_get_int>:
{
5e88: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
5e8c: 460f mov r7, r1
5e8e: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
5e90: 4605 mov r5, r0
5e92: b318 cbz r0, 5edc <_lv_style_list_get_int+0x54>
if(list->style_list == NULL) return LV_RES_INV;
5e94: 6800 ldr r0, [r0, #0]
5e96: b308 cbz r0, 5edc <_lv_style_list_get_int+0x54>
lv_style_int_t value_act = 0;
5e98: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
5e9a: 4b1b ldr r3, [pc, #108] ; (5f08 <_lv_style_list_get_int+0x80>)
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
5e9c: f8df b06c ldr.w fp, [pc, #108] ; 5f0c <_lv_style_list_get_int+0x84>
lv_style_int_t value_act = 0;
5ea0: f8ad 6006 strh.w r6, [sp, #6]
int16_t weight_goal = attr.full;
5ea4: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
5ea8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
5eac: 792a ldrb r2, [r5, #4]
5eae: fa0f f986 sxth.w r9, r6
5eb2: 4591 cmp r9, r2
5eb4: db03 blt.n 5ebe <_lv_style_list_get_int+0x36>
if(weight >= 0) return LV_RES_OK;
5eb6: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
5eb8: f3c0 30c0 ubfx r0, r0, #15, #1
5ebc: e00e b.n 5edc <_lv_style_list_get_int+0x54>
lv_style_t * class = lv_style_list_get_style(list, ci);
5ebe: b2f1 uxtb r1, r6
5ec0: 4628 mov r0, r5
5ec2: 4798 blx r3
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
5ec4: f10d 0206 add.w r2, sp, #6
5ec8: 4639 mov r1, r7
5eca: 47d8 blx fp
if(weight_act == weight_goal) {
5ecc: 4582 cmp sl, r0
5ece: 4b0e ldr r3, [pc, #56] ; (5f08 <_lv_style_list_get_int+0x80>)
5ed0: d107 bne.n 5ee2 <_lv_style_list_get_int+0x5a>
*res = value_act;
5ed2: f8bd 3006 ldrh.w r3, [sp, #6]
5ed6: f8a8 3000 strh.w r3, [r8]
return LV_RES_OK;
5eda: 2001 movs r0, #1
}
5edc: b003 add sp, #12
5ede: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
5ee2: 796a ldrb r2, [r5, #5]
5ee4: 0791 lsls r1, r2, #30
5ee6: d506 bpl.n 5ef6 <_lv_style_list_get_int+0x6e>
5ee8: 2800 cmp r0, #0
5eea: db04 blt.n 5ef6 <_lv_style_list_get_int+0x6e>
5eec: f1b9 0f00 cmp.w r9, #0
5ef0: d101 bne.n 5ef6 <_lv_style_list_get_int+0x6e>
5ef2: 0752 lsls r2, r2, #29
5ef4: d5ed bpl.n 5ed2 <_lv_style_list_get_int+0x4a>
else if(weight_act > weight) {
5ef6: 4284 cmp r4, r0
*res = value_act;
5ef8: bfbe ittt lt
5efa: f8bd 2006 ldrhlt.w r2, [sp, #6]
5efe: f8a8 2000 strhlt.w r2, [r8]
5f02: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
5f04: 3601 adds r6, #1
5f06: e7d1 b.n 5eac <_lv_style_list_get_int+0x24>
5f08: 00005491 .word 0x00005491
5f0c: 00005bb9 .word 0x00005bb9
00005f10 <_lv_style_list_get_color>:
{
5f10: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
5f14: 460f mov r7, r1
5f16: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
5f18: 4605 mov r5, r0
5f1a: b310 cbz r0, 5f62 <_lv_style_list_get_color+0x52>
if(list->style_list == NULL) return LV_RES_INV;
5f1c: 6800 ldr r0, [r0, #0]
5f1e: b300 cbz r0, 5f62 <_lv_style_list_get_color+0x52>
lv_color_t value_act = { 0 };
5f20: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
5f22: 4b1b ldr r3, [pc, #108] ; (5f90 <_lv_style_list_get_color+0x80>)
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
5f24: f8df b06c ldr.w fp, [pc, #108] ; 5f94 <_lv_style_list_get_color+0x84>
lv_color_t value_act = { 0 };
5f28: f8ad 6004 strh.w r6, [sp, #4]
int16_t weight_goal = attr.full;
5f2c: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
5f30: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
5f34: 792a ldrb r2, [r5, #4]
5f36: fa0f f986 sxth.w r9, r6
5f3a: 4591 cmp r9, r2
5f3c: db03 blt.n 5f46 <_lv_style_list_get_color+0x36>
if(weight >= 0) return LV_RES_OK;
5f3e: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
5f40: f3c0 30c0 ubfx r0, r0, #15, #1
5f44: e00d b.n 5f62 <_lv_style_list_get_color+0x52>
lv_style_t * class = lv_style_list_get_style(list, ci);
5f46: b2f1 uxtb r1, r6
5f48: 4628 mov r0, r5
5f4a: 4798 blx r3
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
5f4c: aa01 add r2, sp, #4
5f4e: 4639 mov r1, r7
5f50: 47d8 blx fp
if(weight_act == weight_goal) {
5f52: 4582 cmp sl, r0
5f54: 4b0e ldr r3, [pc, #56] ; (5f90 <_lv_style_list_get_color+0x80>)
5f56: d107 bne.n 5f68 <_lv_style_list_get_color+0x58>
*res = value_act;
5f58: f8bd 3004 ldrh.w r3, [sp, #4]
5f5c: f8a8 3000 strh.w r3, [r8]
return LV_RES_OK;
5f60: 2001 movs r0, #1
}
5f62: b003 add sp, #12
5f64: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
5f68: 796a ldrb r2, [r5, #5]
5f6a: 0791 lsls r1, r2, #30
5f6c: d506 bpl.n 5f7c <_lv_style_list_get_color+0x6c>
5f6e: 2800 cmp r0, #0
5f70: db04 blt.n 5f7c <_lv_style_list_get_color+0x6c>
5f72: f1b9 0f00 cmp.w r9, #0
5f76: d101 bne.n 5f7c <_lv_style_list_get_color+0x6c>
5f78: 0752 lsls r2, r2, #29
5f7a: d5ed bpl.n 5f58 <_lv_style_list_get_color+0x48>
else if(weight_act > weight) {
5f7c: 4284 cmp r4, r0
*res = value_act;
5f7e: bfbe ittt lt
5f80: f8bd 2004 ldrhlt.w r2, [sp, #4]
5f84: f8a8 2000 strhlt.w r2, [r8]
5f88: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
5f8a: 3601 adds r6, #1
5f8c: e7d2 b.n 5f34 <_lv_style_list_get_color+0x24>
5f8e: bf00 nop
5f90: 00005491 .word 0x00005491
5f94: 00005bb9 .word 0x00005bb9
00005f98 <_lv_style_list_get_opa>:
{
5f98: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
5f9c: 460f mov r7, r1
5f9e: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
5fa0: 4605 mov r5, r0
5fa2: b318 cbz r0, 5fec <_lv_style_list_get_opa+0x54>
if(list->style_list == NULL) return LV_RES_INV;
5fa4: 6800 ldr r0, [r0, #0]
5fa6: b308 cbz r0, 5fec <_lv_style_list_get_opa+0x54>
lv_opa_t value_act = LV_OPA_TRANSP;
5fa8: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
5faa: 4b1b ldr r3, [pc, #108] ; (6018 <_lv_style_list_get_opa+0x80>)
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
5fac: f8df b06c ldr.w fp, [pc, #108] ; 601c <_lv_style_list_get_opa+0x84>
lv_opa_t value_act = LV_OPA_TRANSP;
5fb0: f88d 6007 strb.w r6, [sp, #7]
int16_t weight_goal = attr.full;
5fb4: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
5fb8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
5fbc: 792a ldrb r2, [r5, #4]
5fbe: fa0f f986 sxth.w r9, r6
5fc2: 4591 cmp r9, r2
5fc4: db03 blt.n 5fce <_lv_style_list_get_opa+0x36>
if(weight >= 0) return LV_RES_OK;
5fc6: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
5fc8: f3c0 30c0 ubfx r0, r0, #15, #1
5fcc: e00e b.n 5fec <_lv_style_list_get_opa+0x54>
lv_style_t * class = lv_style_list_get_style(list, ci);
5fce: b2f1 uxtb r1, r6
5fd0: 4628 mov r0, r5
5fd2: 4798 blx r3
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
5fd4: f10d 0207 add.w r2, sp, #7
5fd8: 4639 mov r1, r7
5fda: 47d8 blx fp
if(weight_act == weight_goal) {
5fdc: 4582 cmp sl, r0
5fde: 4b0e ldr r3, [pc, #56] ; (6018 <_lv_style_list_get_opa+0x80>)
5fe0: d107 bne.n 5ff2 <_lv_style_list_get_opa+0x5a>
*res = value_act;
5fe2: f89d 3007 ldrb.w r3, [sp, #7]
5fe6: f888 3000 strb.w r3, [r8]
return LV_RES_OK;
5fea: 2001 movs r0, #1
}
5fec: b003 add sp, #12
5fee: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
5ff2: 796a ldrb r2, [r5, #5]
5ff4: 0791 lsls r1, r2, #30
5ff6: d506 bpl.n 6006 <_lv_style_list_get_opa+0x6e>
5ff8: 2800 cmp r0, #0
5ffa: db04 blt.n 6006 <_lv_style_list_get_opa+0x6e>
5ffc: f1b9 0f00 cmp.w r9, #0
6000: d101 bne.n 6006 <_lv_style_list_get_opa+0x6e>
6002: 0752 lsls r2, r2, #29
6004: d5ed bpl.n 5fe2 <_lv_style_list_get_opa+0x4a>
else if(weight_act > weight) {
6006: 4284 cmp r4, r0
*res = value_act;
6008: bfbe ittt lt
600a: f89d 2007 ldrblt.w r2, [sp, #7]
600e: f888 2000 strblt.w r2, [r8]
6012: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
6014: 3601 adds r6, #1
6016: e7d1 b.n 5fbc <_lv_style_list_get_opa+0x24>
6018: 00005491 .word 0x00005491
601c: 00005c05 .word 0x00005c05
00006020 <_lv_style_list_get_ptr>:
{
6020: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
6024: 460f mov r7, r1
6026: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
6028: 4605 mov r5, r0
602a: b1f8 cbz r0, 606c <_lv_style_list_get_ptr+0x4c>
if(list->style_list == NULL) return LV_RES_INV;
602c: 6800 ldr r0, [r0, #0]
602e: b1e8 cbz r0, 606c <_lv_style_list_get_ptr+0x4c>
lv_style_t * class = lv_style_list_get_style(list, ci);
6030: 4b19 ldr r3, [pc, #100] ; (6098 <_lv_style_list_get_ptr+0x78>)
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
6032: f8df b068 ldr.w fp, [pc, #104] ; 609c <_lv_style_list_get_ptr+0x7c>
int16_t weight_goal = attr.full;
6036: ea4f 2a11 mov.w sl, r1, lsr #8
for(ci = 0; ci < list->style_cnt; ci++) {
603a: 2600 movs r6, #0
int16_t weight = -1;
603c: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
6040: 792a ldrb r2, [r5, #4]
6042: fa0f f986 sxth.w r9, r6
6046: 4591 cmp r9, r2
6048: db03 blt.n 6052 <_lv_style_list_get_ptr+0x32>
if(weight >= 0) return LV_RES_OK;
604a: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
604c: f3c0 30c0 ubfx r0, r0, #15, #1
6050: e00c b.n 606c <_lv_style_list_get_ptr+0x4c>
lv_style_t * class = lv_style_list_get_style(list, ci);
6052: b2f1 uxtb r1, r6
6054: 4628 mov r0, r5
6056: 4798 blx r3
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
6058: aa01 add r2, sp, #4
605a: 4639 mov r1, r7
605c: 47d8 blx fp
if(weight_act == weight_goal) {
605e: 4582 cmp sl, r0
6060: 4b0d ldr r3, [pc, #52] ; (6098 <_lv_style_list_get_ptr+0x78>)
6062: d106 bne.n 6072 <_lv_style_list_get_ptr+0x52>
*res = value_act;
6064: 9b01 ldr r3, [sp, #4]
6066: f8c8 3000 str.w r3, [r8]
return LV_RES_OK;
606a: 2001 movs r0, #1
}
606c: b003 add sp, #12
606e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
6072: 796a ldrb r2, [r5, #5]
6074: 0791 lsls r1, r2, #30
6076: d506 bpl.n 6086 <_lv_style_list_get_ptr+0x66>
6078: 2800 cmp r0, #0
607a: db04 blt.n 6086 <_lv_style_list_get_ptr+0x66>
607c: f1b9 0f00 cmp.w r9, #0
6080: d101 bne.n 6086 <_lv_style_list_get_ptr+0x66>
6082: 0752 lsls r2, r2, #29
6084: d5ee bpl.n 6064 <_lv_style_list_get_ptr+0x44>
else if(weight_act > weight) {
6086: 4284 cmp r4, r0
*res = value_act;
6088: bfbe ittt lt
608a: 9a01 ldrlt r2, [sp, #4]
608c: f8c8 2000 strlt.w r2, [r8]
6090: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
6092: 3601 adds r6, #1
6094: e7d4 b.n 6040 <_lv_style_list_get_ptr+0x20>
6096: bf00 nop
6098: 00005491 .word 0x00005491
609c: 00005c51 .word 0x00005c51
000060a0 <lv_color_mix>:
* @param c2 the second color to mix (usually the background)
* @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2`
* @return the mixed color
*/
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
60a0: b5f0 push {r4, r5, r6, r7, lr}
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)));
60a2: f1c2 03ff rsb r3, r2, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
60a6: f3c1 1445 ubfx r4, r1, #5, #6
60aa: f3c0 1545 ubfx r5, r0, #5, #6
60ae: 435c muls r4, r3
60b0: f248 0681 movw r6, #32897 ; 0x8081
60b4: fb05 4402 mla r4, r5, r2, r4
60b8: 4374 muls r4, r6
#else
/*LV_COLOR_DEPTH == 1*/
ret.full = mix > LV_OPA_50 ? c1.full : c2.full;
#endif
return ret;
60ba: f3c4 55c5 ubfx r5, r4, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
60be: f001 041f and.w r4, r1, #31
60c2: f000 071f and.w r7, r0, #31
60c6: 435c muls r4, r3
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
60c8: f3c1 21c4 ubfx r1, r1, #11, #5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
60cc: fb07 4402 mla r4, r7, r2, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
60d0: f3c0 20c4 ubfx r0, r0, #11, #5
60d4: 4359 muls r1, r3
60d6: fb00 1302 mla r3, r0, r2, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
60da: 4374 muls r4, r6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
60dc: 4373 muls r3, r6
return ret;
60de: f3c4 54c4 ubfx r4, r4, #23, #5
60e2: ea44 1445 orr.w r4, r4, r5, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
60e6: 0ddb lsrs r3, r3, #23
}
60e8: ea44 20c3 orr.w r0, r4, r3, lsl #11
60ec: bdf0 pop {r4, r5, r6, r7, pc}
...
000060f0 <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)
{
60f0: 460b mov r3, r1
if(opa <= LV_OPA_MIN) return bg;
60f2: 2a05 cmp r2, #5
{
60f4: b4f0 push {r4, r5, r6, r7}
60f6: f003 071f and.w r7, r3, #31
60fa: f3c3 1545 ubfx r5, r3, #5, #6
60fe: f3c3 24c4 ubfx r4, r3, #11, #5
if(opa <= LV_OPA_MIN) return bg;
6102: d802 bhi.n 610a <color_blend_true_color_additive+0x1a>
6104: 4608 mov r0, r1
#endif
if(opa == LV_OPA_COVER) return fg;
return lv_color_mix(fg, bg, opa);
}
6106: bcf0 pop {r4, r5, r6, r7}
6108: 4770 bx lr
tmp = bg.ch.red + fg.ch.red;
610a: f3c0 23c4 ubfx r3, r0, #11, #5
610e: 4423 add r3, r4
tmp = bg.ch.green + fg.ch.green;
6110: f3c0 1445 ubfx r4, r0, #5, #6
6114: 442c add r4, r5
fg.ch.red = LV_MATH_MIN(tmp, 31);
6116: 2b1f cmp r3, #31
tmp = bg.ch.blue + fg.ch.blue;
6118: f000 051f and.w r5, r0, #31
611c: 443d add r5, r7
fg.ch.red = LV_MATH_MIN(tmp, 31);
611e: bf28 it cs
6120: 231f movcs r3, #31
fg.ch.green = LV_MATH_MIN(tmp, 63);
6122: 2c3f cmp r4, #63 ; 0x3f
6124: bf28 it cs
6126: 243f movcs r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MIN(tmp, 31);
6128: 2d1f cmp r5, #31
612a: bf28 it cs
612c: 251f movcs r5, #31
if(opa == LV_OPA_COVER) return fg;
612e: 2aff cmp r2, #255 ; 0xff
fg.ch.red = LV_MATH_MIN(tmp, 31);
6130: f003 031f and.w r3, r3, #31
fg.ch.green = LV_MATH_MIN(tmp, 63);
6134: f004 043f and.w r4, r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MIN(tmp, 31);
6138: f005 051f and.w r5, r5, #31
if(opa == LV_OPA_COVER) return fg;
613c: d108 bne.n 6150 <color_blend_true_color_additive+0x60>
613e: f04f 0000 mov.w r0, #0
6142: f365 0004 bfi r0, r5, #0, #5
6146: f364 104a bfi r0, r4, #5, #6
614a: f363 20cf bfi r0, r3, #11, #5
614e: e7da b.n 6106 <color_blend_true_color_additive+0x16>
return lv_color_mix(fg, bg, opa);
6150: f365 0004 bfi r0, r5, #0, #5
6154: f364 104a bfi r0, r4, #5, #6
6158: f363 20cf bfi r0, r3, #11, #5
}
615c: bcf0 pop {r4, r5, r6, r7}
return lv_color_mix(fg, bg, opa);
615e: 4b01 ldr r3, [pc, #4] ; (6164 <color_blend_true_color_additive+0x74>)
6160: 4718 bx r3
6162: bf00 nop
6164: 000060a1 .word 0x000060a1
00006168 <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)
{
6168: 460b mov r3, r1
if(opa <= LV_OPA_MIN) return bg;
616a: 2a05 cmp r2, #5
{
616c: b4f0 push {r4, r5, r6, r7}
616e: f003 061f and.w r6, r3, #31
6172: f3c3 1545 ubfx r5, r3, #5, #6
6176: f3c3 24c4 ubfx r4, r3, #11, #5
if(opa <= LV_OPA_MIN) return bg;
617a: d802 bhi.n 6182 <color_blend_true_color_subtractive+0x1a>
617c: 4608 mov r0, r1
fg.ch.blue = LV_MATH_MAX(tmp, 0);
if(opa == LV_OPA_COVER) return fg;
return lv_color_mix(fg, bg, opa);
}
617e: bcf0 pop {r4, r5, r6, r7}
6180: 4770 bx lr
tmp = bg.ch.red - fg.ch.red;
6182: f3c0 23c4 ubfx r3, r0, #11, #5
6186: 1ae3 subs r3, r4, r3
tmp = bg.ch.green - fg.ch.green;
6188: f3c0 1445 ubfx r4, r0, #5, #6
618c: 1b2c subs r4, r5, r4
tmp = bg.ch.blue - fg.ch.blue;
618e: f000 051f and.w r5, r0, #31
6192: 1b75 subs r5, r6, r5
fg.ch.red = LV_MATH_MAX(tmp, 0);
6194: ea23 73e3 bic.w r3, r3, r3, asr #31
fg.ch.green = LV_MATH_MAX(tmp, 0);
6198: ea24 74e4 bic.w r4, r4, r4, asr #31
fg.ch.blue = LV_MATH_MAX(tmp, 0);
619c: ea25 75e5 bic.w r5, r5, r5, asr #31
if(opa == LV_OPA_COVER) return fg;
61a0: 2aff cmp r2, #255 ; 0xff
fg.ch.red = LV_MATH_MAX(tmp, 0);
61a2: f003 031f and.w r3, r3, #31
fg.ch.green = LV_MATH_MAX(tmp, 0);
61a6: f004 043f and.w r4, r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MAX(tmp, 0);
61aa: f005 051f and.w r5, r5, #31
if(opa == LV_OPA_COVER) return fg;
61ae: d108 bne.n 61c2 <color_blend_true_color_subtractive+0x5a>
61b0: f04f 0000 mov.w r0, #0
61b4: f365 0004 bfi r0, r5, #0, #5
61b8: f364 104a bfi r0, r4, #5, #6
61bc: f363 20cf bfi r0, r3, #11, #5
61c0: e7dd b.n 617e <color_blend_true_color_subtractive+0x16>
return lv_color_mix(fg, bg, opa);
61c2: f365 0004 bfi r0, r5, #0, #5
61c6: f364 104a bfi r0, r4, #5, #6
61ca: f363 20cf bfi r0, r3, #11, #5
}
61ce: bcf0 pop {r4, r5, r6, r7}
return lv_color_mix(fg, bg, opa);
61d0: 4b00 ldr r3, [pc, #0] ; (61d4 <color_blend_true_color_subtractive+0x6c>)
61d2: 4718 bx r3
61d4: 000060a1 .word 0x000060a1
000061d8 <_lv_blend_fill>:
{
61d8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
61dc: b08d sub sp, #52 ; 0x34
61de: 4605 mov r5, r0
61e0: 9306 str r3, [sp, #24]
61e2: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c
61e6: f89d 7058 ldrb.w r7, [sp, #88] ; 0x58
61ea: f89d b060 ldrb.w fp, [sp, #96] ; 0x60
61ee: 9305 str r3, [sp, #20]
if(opa < LV_OPA_MIN) return;
61f0: 2b04 cmp r3, #4
{
61f2: 468a mov sl, r1
61f4: 4614 mov r4, r2
if(opa < LV_OPA_MIN) return;
61f6: f240 80a5 bls.w 6344 <_lv_blend_fill+0x16c>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
61fa: 2f00 cmp r7, #0
61fc: f000 80a2 beq.w 6344 <_lv_blend_fill+0x16c>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6200: 4ba4 ldr r3, [pc, #656] ; (6494 <_lv_blend_fill+0x2bc>)
6202: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6204: 4ba4 ldr r3, [pc, #656] ; (6498 <_lv_blend_fill+0x2c0>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6206: 4606 mov r6, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6208: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
620a: 4ba4 ldr r3, [pc, #656] ; (649c <_lv_blend_fill+0x2c4>)
lv_color_t * disp_buf = vdb->buf_act;
620c: f8d0 9008 ldr.w r9, [r0, #8]
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6210: 4680 mov r8, r0
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
6212: 4652 mov r2, sl
6214: 4629 mov r1, r5
6216: a80a add r0, sp, #40 ; 0x28
6218: 4798 blx r3
if(!is_common) return;
621a: 2800 cmp r0, #0
621c: f000 8092 beq.w 6344 <_lv_blend_fill+0x16c>
draw_area.x1 -= disp_area->x1;
6220: f8bd 1028 ldrh.w r1, [sp, #40] ; 0x28
6224: f8b8 0010 ldrh.w r0, [r8, #16]
draw_area.x2 -= disp_area->x1;
6228: f8bd 202c ldrh.w r2, [sp, #44] ; 0x2c
draw_area.y1 -= disp_area->y1;
622c: f8b8 c012 ldrh.w ip, [r8, #18]
6230: f8bd 502a ldrh.w r5, [sp, #42] ; 0x2a
draw_area.x1 -= disp_area->x1;
6234: 1a0b subs r3, r1, r0
draw_area.x2 -= disp_area->x1;
6236: 1a10 subs r0, r2, r0
6238: f8ad 002c strh.w r0, [sp, #44] ; 0x2c
draw_area.y2 -= disp_area->y1;
623c: f8bd 002e ldrh.w r0, [sp, #46] ; 0x2e
draw_area.y1 -= disp_area->y1;
6240: eba5 050c sub.w r5, r5, ip
draw_area.y2 -= disp_area->y1;
6244: eba0 0c0c sub.w ip, r0, ip
if(mask && disp->driver.antialiasing == 0)
6248: 9806 ldr r0, [sp, #24]
draw_area.y2 -= disp_area->y1;
624a: f8ad c02e strh.w ip, [sp, #46] ; 0x2e
draw_area.x1 -= disp_area->x1;
624e: b21b sxth r3, r3
draw_area.y1 -= disp_area->y1;
6250: b22d sxth r5, r5
draw_area.x1 -= disp_area->x1;
6252: 9307 str r3, [sp, #28]
6254: f8ad 3028 strh.w r3, [sp, #40] ; 0x28
draw_area.y1 -= disp_area->y1;
6258: f8ad 502a strh.w r5, [sp, #42] ; 0x2a
if(mask && disp->driver.antialiasing == 0)
625c: 2800 cmp r0, #0
625e: d140 bne.n 62e2 <_lv_blend_fill+0x10a>
if(disp->driver.set_px_cb) {
6260: 6970 ldr r0, [r6, #20]
6262: 2800 cmp r0, #0
6264: d15b bne.n 631e <_lv_blend_fill+0x146>
else if(mode == LV_BLEND_MODE_NORMAL) {
6266: f1bb 0f00 cmp.w fp, #0
626a: f040 821d bne.w 66a8 <_lv_blend_fill+0x4d0>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
626e: 4b89 ldr r3, [pc, #548] ; (6494 <_lv_blend_fill+0x2bc>)
6270: 4798 blx r3
* @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);
6272: f8b8 6014 ldrh.w r6, [r8, #20]
6276: f8b8 3010 ldrh.w r3, [r8, #16]
627a: f9bd 2028 ldrsh.w r2, [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);
627e: f8bd 102e ldrh.w r1, [sp, #46] ; 0x2e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6282: 3601 adds r6, #1
6284: 1af6 subs r6, r6, r3
6286: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c
628a: 3301 adds r3, #1
628c: 1a9b subs r3, r3, r2
628e: b21b sxth r3, r3
6290: 9307 str r3, [sp, #28]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
6292: f9bd 302a ldrsh.w r3, [sp, #42] ; 0x2a
6296: 3101 adds r1, #1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6298: b236 sxth r6, r6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
629a: 1ac9 subs r1, r1, r3
int32_t draw_area_h = lv_area_get_height(draw_area);
629c: b209 sxth r1, r1
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
629e: fb06 2203 mla r2, r6, r3, r2
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
62a2: 2f01 cmp r7, #1
62a4: b2a5 uxth r5, r4
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
62a6: 4682 mov sl, r0
int32_t draw_area_h = lv_area_get_height(draw_area);
62a8: 9108 str r1, [sp, #32]
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
62aa: eb09 0842 add.w r8, r9, r2, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
62ae: f040 812f bne.w 6510 <_lv_blend_fill+0x338>
if(opa > LV_OPA_MAX) {
62b2: 9b05 ldr r3, [sp, #20]
62b4: 2bfa cmp r3, #250 ; 0xfa
62b6: f240 80a4 bls.w 6402 <_lv_blend_fill+0x22a>
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
62ba: 6a43 ldr r3, [r0, #36] ; 0x24
62bc: 2b00 cmp r3, #0
62be: f000 809c beq.w 63fa <_lv_blend_fill+0x222>
62c2: 4b77 ldr r3, [pc, #476] ; (64a0 <_lv_blend_fill+0x2c8>)
62c4: a80a add r0, sp, #40 ; 0x28
62c6: 4798 blx r3
62c8: 28f0 cmp r0, #240 ; 0xf0
62ca: f240 8096 bls.w 63fa <_lv_blend_fill+0x222>
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
62ce: f8da 5024 ldr.w r5, [sl, #36] ; 0x24
62d2: f8ad 4000 strh.w r4, [sp]
62d6: ab0a add r3, sp, #40 ; 0x28
62d8: 4632 mov r2, r6
62da: 4649 mov r1, r9
62dc: 4650 mov r0, sl
62de: 47a8 blx r5
return;
62e0: e030 b.n 6344 <_lv_blend_fill+0x16c>
if(mask && disp->driver.antialiasing == 0)
62e2: 7a30 ldrb r0, [r6, #8]
62e4: 07c3 lsls r3, r0, #31
62e6: d4bb bmi.n 6260 <_lv_blend_fill+0x88>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
62e8: 9806 ldr r0, [sp, #24]
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
62ea: 9b06 ldr r3, [sp, #24]
62ec: f102 0a01 add.w sl, r2, #1
62f0: ebaa 0a01 sub.w sl, sl, r1
int32_t mask_w = lv_area_get_width(&draw_area);
62f4: fa0f fa8a sxth.w sl, sl
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
62f8: 3801 subs r0, #1
62fa: f1c3 0e01 rsb lr, r3, #1
62fe: eb0e 0c00 add.w ip, lr, r0
6302: 45e2 cmp sl, ip
6304: ddac ble.n 6260 <_lv_blend_fill+0x88>
6306: f810 cf01 ldrb.w ip, [r0, #1]!
630a: f1bc 0f80 cmp.w ip, #128 ; 0x80
630e: f04f 3cff mov.w ip, #4294967295 ; 0xffffffff
6312: bf98 it ls
6314: f04f 0c00 movls.w ip, #0
6318: f880 c000 strb.w ip, [r0]
631c: e7ef b.n 62fe <_lv_blend_fill+0x126>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
631e: 4b5d ldr r3, [pc, #372] ; (6494 <_lv_blend_fill+0x2bc>)
6320: 4798 blx r3
6322: f8b8 2014 ldrh.w r2, [r8, #20]
6326: f8b8 3010 ldrh.w r3, [r8, #16]
632a: f9bd 502a ldrsh.w r5, [sp, #42] ; 0x2a
632e: 3201 adds r2, #1
6330: 1ad2 subs r2, r2, r3
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6332: 2f01 cmp r7, #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6334: 4606 mov r6, r0
6336: b212 sxth r2, r2
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6338: d121 bne.n 637e <_lv_blend_fill+0x1a6>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
633a: 46aa mov sl, r5
633c: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6340: 459a cmp sl, r3
6342: dd02 ble.n 634a <_lv_blend_fill+0x172>
}
6344: b00d add sp, #52 ; 0x34
6346: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
for(x = draw_area->x1; x <= draw_area->x2; x++) {
634a: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
634e: fa0f f88a sxth.w r8, sl
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6352: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
6356: 429f cmp r7, r3
6358: dd02 ble.n 6360 <_lv_blend_fill+0x188>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
635a: f10a 0a01 add.w sl, sl, #1
635e: e7ed b.n 633c <_lv_blend_fill+0x164>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
6360: 9b05 ldr r3, [sp, #20]
6362: 9302 str r3, [sp, #8]
6364: f8ad 4004 strh.w r4, [sp, #4]
6368: f8cd 8000 str.w r8, [sp]
636c: b23b sxth r3, r7
636e: 6975 ldr r5, [r6, #20]
6370: 9206 str r2, [sp, #24]
6372: 4649 mov r1, r9
6374: 4630 mov r0, r6
6376: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6378: 3701 adds r7, #1
637a: 9a06 ldr r2, [sp, #24]
637c: e7e9 b.n 6352 <_lv_blend_fill+0x17a>
637e: f8bd 802c ldrh.w r8, [sp, #44] ; 0x2c
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6382: f9bd 3028 ldrsh.w r3, [sp, #40] ; 0x28
6386: 9906 ldr r1, [sp, #24]
6388: f108 0801 add.w r8, r8, #1
638c: 1ac9 subs r1, r1, r3
638e: eba8 0803 sub.w r8, r8, r3
6392: 9106 str r1, [sp, #24]
6394: fa0f f888 sxth.w r8, r8
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6398: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
639c: 429d cmp r5, r3
639e: dcd1 bgt.n 6344 <_lv_blend_fill+0x16c>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
63a0: f9bd a028 ldrsh.w sl, [sp, #40] ; 0x28
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
63a4: fa0f fb85 sxth.w fp, r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
63a8: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
63ac: 459a cmp sl, r3
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
63ae: 9b06 ldr r3, [sp, #24]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
63b0: dd03 ble.n 63ba <_lv_blend_fill+0x1e2>
mask_tmp += draw_area_w;
63b2: 4443 add r3, r8
63b4: 9306 str r3, [sp, #24]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
63b6: 3501 adds r5, #1
63b8: e7ee b.n 6398 <_lv_blend_fill+0x1c0>
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
63ba: f813 300a ldrb.w r3, [r3, sl]
63be: 9905 ldr r1, [sp, #20]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
63c0: f8ad 4004 strh.w r4, [sp, #4]
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
63c4: fb13 f301 smulbb r3, r3, r1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
63c8: 0a1b lsrs r3, r3, #8
63ca: 9302 str r3, [sp, #8]
63cc: f8cd b000 str.w fp, [sp]
63d0: fa0f f38a sxth.w r3, sl
63d4: 6977 ldr r7, [r6, #20]
63d6: 9207 str r2, [sp, #28]
63d8: 4649 mov r1, r9
63da: 4630 mov r0, r6
63dc: 47b8 blx r7
for(x = draw_area->x1; x <= draw_area->x2; x++) {
63de: f10a 0a01 add.w sl, sl, #1
63e2: 9a07 ldr r2, [sp, #28]
63e4: e7e0 b.n 63a8 <_lv_blend_fill+0x1d0>
lv_color_fill(disp_buf_first, color, draw_area_w);
63e6: 4640 mov r0, r8
63e8: 9a07 ldr r2, [sp, #28]
63ea: 4629 mov r1, r5
63ec: 47b8 blx r7
disp_buf_first += disp_w;
63ee: 44b0 add r8, r6
for(y = 0; y < draw_area_h; y++) {
63f0: 3401 adds r4, #1
63f2: 9b08 ldr r3, [sp, #32]
63f4: 42a3 cmp r3, r4
63f6: dcf6 bgt.n 63e6 <_lv_blend_fill+0x20e>
63f8: e7a4 b.n 6344 <_lv_blend_fill+0x16c>
lv_color_fill(disp_buf_first, color, draw_area_w);
63fa: 4f2a ldr r7, [pc, #168] ; (64a4 <_lv_blend_fill+0x2cc>)
disp_buf_first += disp_w;
63fc: 0076 lsls r6, r6, #1
63fe: 2400 movs r4, #0
6400: e7f7 b.n 63f2 <_lv_blend_fill+0x21a>
if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
6402: 6a03 ldr r3, [r0, #32]
6404: b30b cbz r3, 644a <_lv_blend_fill+0x272>
6406: 4b26 ldr r3, [pc, #152] ; (64a0 <_lv_blend_fill+0x2c8>)
6408: a80a add r0, sp, #40 ; 0x28
640a: 4798 blx r3
640c: 28f0 cmp r0, #240 ; 0xf0
640e: d91c bls.n 644a <_lv_blend_fill+0x272>
6410: 4b25 ldr r3, [pc, #148] ; (64a8 <_lv_blend_fill+0x2d0>)
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
6412: 9a07 ldr r2, [sp, #28]
6414: 455a cmp r2, fp
6416: dc13 bgt.n 6440 <_lv_blend_fill+0x268>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6418: f9bd 502a ldrsh.w r5, [sp, #42] ; 0x2a
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
641c: 4f22 ldr r7, [pc, #136] ; (64a8 <_lv_blend_fill+0x2d0>)
disp_buf_first += disp_w;
641e: 0076 lsls r6, r6, #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6420: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6424: 429d cmp r5, r3
6426: dc8d bgt.n 6344 <_lv_blend_fill+0x16c>
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
6428: 9b05 ldr r3, [sp, #20]
642a: 9300 str r3, [sp, #0]
642c: 4641 mov r1, r8
642e: f8da 4020 ldr.w r4, [sl, #32]
6432: 9b07 ldr r3, [sp, #28]
6434: 463a mov r2, r7
6436: 4650 mov r0, sl
6438: 47a0 blx r4
disp_buf_first += disp_w;
643a: 44b0 add r8, r6
for(y = draw_area->y1; y <= draw_area->y2; y++) {
643c: 3501 adds r5, #1
643e: e7ef b.n 6420 <_lv_blend_fill+0x248>
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
6440: f823 5b02 strh.w r5, [r3], #2
6444: f10b 0b01 add.w fp, fp, #1
6448: e7e3 b.n 6412 <_lv_blend_fill+0x23a>
lv_color_t last_dest_color = LV_COLOR_BLACK;
644a: f04f 0700 mov.w r7, #0
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
644e: 9a05 ldr r2, [sp, #20]
6450: 4b16 ldr r3, [pc, #88] ; (64ac <_lv_blend_fill+0x2d4>)
6452: 4620 mov r0, r4
6454: 4639 mov r1, r7
6456: 4798 blx 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;
6458: f3c4 2bc4 ubfx fp, r4, #11, #5
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
645c: f3c4 1a45 ubfx sl, r4, #5, #6
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
6460: f004 041f and.w r4, r4, #31
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
6464: fb0b fb02 mul.w fp, fp, r2
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
6468: fb0a fa02 mul.w sl, sl, r2
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
646c: 4354 muls r4, r2
disp_buf_first += disp_w;
646e: 0073 lsls r3, r6, #1
lv_opa_t opa_inv = 255 - opa;
6470: 43d2 mvns r2, r2
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
6472: f000 051f and.w r5, r0, #31
6476: f3c0 1c45 ubfx ip, r0, #5, #6
disp_buf_first += disp_w;
647a: 9305 str r3, [sp, #20]
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
647c: f3c0 20c4 ubfx r0, r0, #11, #5
for(y = 0; y < draw_area_h; y++) {
6480: f04f 0e00 mov.w lr, #0
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);
6484: b2d2 uxtb r2, r2
6486: 9b08 ldr r3, [sp, #32]
6488: 4573 cmp r3, lr
648a: f77f af5b ble.w 6344 <_lv_blend_fill+0x16c>
648e: 4643 mov r3, r8
for(x = 0; x < draw_area_w; x++) {
6490: 2600 movs r6, #0
6492: e035 b.n 6500 <_lv_blend_fill+0x328>
6494: 00004fdd .word 0x00004fdd
6498: 0000da25 .word 0x0000da25
649c: 0000ded1 .word 0x0000ded1
64a0: 0000deb5 .word 0x0000deb5
64a4: 0000e351 .word 0x0000e351
64a8: 20008108 .word 0x20008108
64ac: 000060a1 .word 0x000060a1
if(last_dest_color.full != disp_buf_first[x].full) {
64b0: 8819 ldrh r1, [r3, #0]
64b2: fa1f f987 uxth.w r9, r7
64b6: 4589 cmp r9, r1
64b8: d013 beq.n 64e2 <_lv_blend_fill+0x30a>
64ba: 7858 ldrb r0, [r3, #1]
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
64bc: 781d ldrb r5, [r3, #0]
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
64be: 08c0 lsrs r0, r0, #3
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
64c0: f3c1 1c45 ubfx ip, r1, #5, #6
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
64c4: f005 051f and.w r5, r5, #31
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
64c8: fb00 b002 mla r0, r0, r2, fp
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
64cc: fb0c ac02 mla ip, ip, r2, sl
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
64d0: fb05 4502 mla r5, r5, r2, r4
last_dest_color = disp_buf_first[x];
64d4: 460f mov r7, r1
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
64d6: f3c0 2004 ubfx r0, r0, #8, #5
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
64da: f3cc 2c05 ubfx ip, ip, #8, #6
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
64de: f3c5 2504 ubfx r5, r5, #8, #5
disp_buf_first[x] = last_res_color;
64e2: 7819 ldrb r1, [r3, #0]
64e4: f365 0104 bfi r1, r5, #0, #5
64e8: 7019 strb r1, [r3, #0]
64ea: 8819 ldrh r1, [r3, #0]
64ec: f36c 114a bfi r1, ip, #5, #6
64f0: 8019 strh r1, [r3, #0]
64f2: f3c1 2107 ubfx r1, r1, #8, #8
64f6: f360 01c7 bfi r1, r0, #3, #5
64fa: 7059 strb r1, [r3, #1]
for(x = 0; x < draw_area_w; x++) {
64fc: 3601 adds r6, #1
64fe: 3302 adds r3, #2
6500: 9907 ldr r1, [sp, #28]
6502: 42b1 cmp r1, r6
6504: dcd4 bgt.n 64b0 <_lv_blend_fill+0x2d8>
disp_buf_first += disp_w;
6506: 9b05 ldr r3, [sp, #20]
for(y = 0; y < draw_area_h; y++) {
6508: f10e 0e01 add.w lr, lr, #1
disp_buf_first += disp_w;
650c: 4498 add r8, r3
for(y = 0; y < draw_area_h; y++) {
650e: e7ba b.n 6486 <_lv_blend_fill+0x2ae>
disp_buf_first += disp_w;
6510: 0071 lsls r1, r6, #1
6512: 9109 str r1, [sp, #36] ; 0x24
if(opa > LV_OPA_MAX) {
6514: 9905 ldr r1, [sp, #20]
6516: 29fa cmp r1, #250 ; 0xfa
6518: d810 bhi.n 653c <_lv_blend_fill+0x364>
last_dest_color.full = disp_buf_first[0].full;
651a: f839 c012 ldrh.w ip, [r9, r2, lsl #1]
else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp);
651e: f8df 9298 ldr.w r9, [pc, #664] ; 67b8 <_lv_blend_fill+0x5e0>
last_res_color.full = disp_buf_first[0].full;
6522: 4660 mov r0, ip
lv_opa_t opa_tmp = LV_OPA_TRANSP;
6524: 465a mov r2, fp
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6526: f9bd 102e ldrsh.w r1, [sp, #46] ; 0x2e
652a: 428b cmp r3, r1
652c: f73f af0a bgt.w 6344 <_lv_blend_fill+0x16c>
6530: 9906 ldr r1, [sp, #24]
6532: 4644 mov r4, r8
6534: 1e4e subs r6, r1, #1
for(x = 0; x < draw_area_w; x++) {
6536: f1c1 0a01 rsb sl, r1, #1
653a: e0a9 b.n 6690 <_lv_blend_fill+0x4b8>
int32_t x_end4 = draw_area_w - 4;
653c: 9b07 ldr r3, [sp, #28]
FILL_NORMAL_MASK_PX(x, color)
653e: 4f9e ldr r7, [pc, #632] ; (67b8 <_lv_blend_fill+0x5e0>)
int32_t x_end4 = draw_area_w - 4;
6540: 3b04 subs r3, #4
6542: 9305 str r3, [sp, #20]
for(y = 0; y < draw_area_h; y++) {
6544: 9b08 ldr r3, [sp, #32]
6546: 455b cmp r3, fp
6548: f77f aefc ble.w 6344 <_lv_blend_fill+0x16c>
654c: f8dd a018 ldr.w sl, [sp, #24]
6550: 46c1 mov r9, r8
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6552: 2400 movs r4, #0
6554: e009 b.n 656a <_lv_blend_fill+0x392>
FILL_NORMAL_MASK_PX(x, color)
6556: f81a 2b01 ldrb.w r2, [sl], #1
655a: b11a cbz r2, 6564 <_lv_blend_fill+0x38c>
655c: 2aff cmp r2, #255 ; 0xff
655e: d11f bne.n 65a0 <_lv_blend_fill+0x3c8>
6560: f8a9 5000 strh.w r5, [r9]
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6564: 3401 adds r4, #1
6566: f109 0902 add.w r9, r9, #2
656a: 9b07 ldr r3, [sp, #28]
656c: 42a3 cmp r3, r4
656e: 4656 mov r6, sl
6570: dd02 ble.n 6578 <_lv_blend_fill+0x3a0>
6572: f01a 0f03 tst.w sl, #3
6576: d1ee bne.n 6556 <_lv_blend_fill+0x37e>
6578: eb08 0944 add.w r9, r8, r4, lsl #1
for(; x <= x_end4; x += 4) {
657c: 9b05 ldr r3, [sp, #20]
657e: 42a3 cmp r3, r4
6580: da15 bge.n 65ae <_lv_blend_fill+0x3d6>
6582: eb08 0944 add.w r9, r8, r4, lsl #1
6586: 3e01 subs r6, #1
for(; x < draw_area_w ; x++) {
6588: 9b07 ldr r3, [sp, #28]
658a: 42a3 cmp r3, r4
658c: dc53 bgt.n 6636 <_lv_blend_fill+0x45e>
disp_buf_first += disp_w;
658e: 9b09 ldr r3, [sp, #36] ; 0x24
6590: 4498 add r8, r3
mask += draw_area_w;
6592: e9dd 3206 ldrd r3, r2, [sp, #24]
6596: 4413 add r3, r2
6598: 9306 str r3, [sp, #24]
for(y = 0; y < draw_area_h; y++) {
659a: f10b 0b01 add.w fp, fp, #1
659e: e7d1 b.n 6544 <_lv_blend_fill+0x36c>
FILL_NORMAL_MASK_PX(x, color)
65a0: f8b9 1000 ldrh.w r1, [r9]
65a4: 4628 mov r0, r5
65a6: 47b8 blx r7
65a8: f8a9 0000 strh.w r0, [r9]
65ac: e7da b.n 6564 <_lv_blend_fill+0x38c>
if(*mask32) {
65ae: 6833 ldr r3, [r6, #0]
65b0: b14b cbz r3, 65c6 <_lv_blend_fill+0x3ee>
if((*mask32) == 0xFFFFFFFF) {
65b2: 3301 adds r3, #1
65b4: d10c bne.n 65d0 <_lv_blend_fill+0x3f8>
disp_buf_first[x] = color;
65b6: f8a9 5000 strh.w r5, [r9]
disp_buf_first[x + 1] = color;
65ba: f8a9 5002 strh.w r5, [r9, #2]
disp_buf_first[x + 2] = color;
65be: f8a9 5004 strh.w r5, [r9, #4]
FILL_NORMAL_MASK_PX(x + 3, color)
65c2: f8a9 5006 strh.w r5, [r9, #6]
mask32++;
65c6: 3604 adds r6, #4
for(; x <= x_end4; x += 4) {
65c8: 3404 adds r4, #4
65ca: f109 0908 add.w r9, r9, #8
65ce: e7d5 b.n 657c <_lv_blend_fill+0x3a4>
FILL_NORMAL_MASK_PX(x, color)
65d0: 7832 ldrb r2, [r6, #0]
65d2: b11a cbz r2, 65dc <_lv_blend_fill+0x404>
65d4: 2aff cmp r2, #255 ; 0xff
65d6: d119 bne.n 660c <_lv_blend_fill+0x434>
65d8: f8a9 5000 strh.w r5, [r9]
FILL_NORMAL_MASK_PX(x + 1, color)
65dc: 7872 ldrb r2, [r6, #1]
65de: b11a cbz r2, 65e8 <_lv_blend_fill+0x410>
65e0: 2aff cmp r2, #255 ; 0xff
65e2: d11a bne.n 661a <_lv_blend_fill+0x442>
65e4: f8a9 5002 strh.w r5, [r9, #2]
FILL_NORMAL_MASK_PX(x + 2, color)
65e8: 78b2 ldrb r2, [r6, #2]
65ea: b11a cbz r2, 65f4 <_lv_blend_fill+0x41c>
65ec: 2aff cmp r2, #255 ; 0xff
65ee: d11b bne.n 6628 <_lv_blend_fill+0x450>
65f0: f8a9 5004 strh.w r5, [r9, #4]
FILL_NORMAL_MASK_PX(x + 3, color)
65f4: 78f2 ldrb r2, [r6, #3]
65f6: 2a00 cmp r2, #0
65f8: d0e5 beq.n 65c6 <_lv_blend_fill+0x3ee>
65fa: 2aff cmp r2, #255 ; 0xff
65fc: d0e1 beq.n 65c2 <_lv_blend_fill+0x3ea>
65fe: f8b9 1006 ldrh.w r1, [r9, #6]
6602: 4628 mov r0, r5
6604: 47b8 blx r7
6606: f8a9 0006 strh.w r0, [r9, #6]
660a: e7dc b.n 65c6 <_lv_blend_fill+0x3ee>
FILL_NORMAL_MASK_PX(x, color)
660c: f8b9 1000 ldrh.w r1, [r9]
6610: 4628 mov r0, r5
6612: 47b8 blx r7
6614: f8a9 0000 strh.w r0, [r9]
6618: e7e0 b.n 65dc <_lv_blend_fill+0x404>
FILL_NORMAL_MASK_PX(x + 1, color)
661a: f8b9 1002 ldrh.w r1, [r9, #2]
661e: 4628 mov r0, r5
6620: 47b8 blx r7
6622: f8a9 0002 strh.w r0, [r9, #2]
6626: e7df b.n 65e8 <_lv_blend_fill+0x410>
FILL_NORMAL_MASK_PX(x + 2, color)
6628: f8b9 1004 ldrh.w r1, [r9, #4]
662c: 4628 mov r0, r5
662e: 47b8 blx r7
6630: f8a9 0004 strh.w r0, [r9, #4]
6634: e7de b.n 65f4 <_lv_blend_fill+0x41c>
FILL_NORMAL_MASK_PX(x, color)
6636: f816 2f01 ldrb.w r2, [r6, #1]!
663a: b11a cbz r2, 6644 <_lv_blend_fill+0x46c>
663c: 2aff cmp r2, #255 ; 0xff
663e: d105 bne.n 664c <_lv_blend_fill+0x474>
6640: f8a9 5000 strh.w r5, [r9]
for(; x < draw_area_w ; x++) {
6644: 3401 adds r4, #1
6646: f109 0902 add.w r9, r9, #2
664a: e79d b.n 6588 <_lv_blend_fill+0x3b0>
FILL_NORMAL_MASK_PX(x, color)
664c: f8b9 1000 ldrh.w r1, [r9]
6650: 4628 mov r0, r5
6652: 47b8 blx r7
6654: f8a9 0000 strh.w r0, [r9]
6658: e7f4 b.n 6644 <_lv_blend_fill+0x46c>
if(*mask_tmp_x) {
665a: f816 1f01 ldrb.w r1, [r6, #1]!
665e: b1b1 cbz r1, 668e <_lv_blend_fill+0x4b6>
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
6660: 4559 cmp r1, fp
6662: d010 beq.n 6686 <_lv_blend_fill+0x4ae>
6664: 29ff cmp r1, #255 ; 0xff
(uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8;
6666: 9a05 ldr r2, [sp, #20]
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
6668: d002 beq.n 6670 <_lv_blend_fill+0x498>
(uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8;
666a: fb11 f202 smulbb r2, r1, r2
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
666e: 0a12 lsrs r2, r2, #8
else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp);
6670: 8821 ldrh r1, [r4, #0]
6672: 9308 str r3, [sp, #32]
6674: 4628 mov r0, r5
6676: 47c8 blx r9
last_mask = *mask_tmp_x;
6678: f896 b000 ldrb.w fp, [r6]
last_dest_color.full = disp_buf_first[x].full;
667c: f8b4 c000 ldrh.w ip, [r4]
6680: 9b08 ldr r3, [sp, #32]
else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp);
6682: b280 uxth r0, r0
last_dest_color.full = disp_buf_first[x].full;
6684: e002 b.n 668c <_lv_blend_fill+0x4b4>
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
6686: 8821 ldrh r1, [r4, #0]
6688: 4561 cmp r1, ip
668a: d1f1 bne.n 6670 <_lv_blend_fill+0x498>
disp_buf_first[x] = last_res_color;
668c: 8020 strh r0, [r4, #0]
for(x = 0; x < draw_area_w; x++) {
668e: 3402 adds r4, #2
6690: 9f07 ldr r7, [sp, #28]
6692: eb0a 0106 add.w r1, sl, r6
6696: 428f cmp r7, r1
6698: dcdf bgt.n 665a <_lv_blend_fill+0x482>
disp_buf_first += disp_w;
669a: 9909 ldr r1, [sp, #36] ; 0x24
669c: 4488 add r8, r1
mask += draw_area_w;
669e: 9906 ldr r1, [sp, #24]
66a0: 4439 add r1, r7
66a2: 9106 str r1, [sp, #24]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
66a4: 3301 adds r3, #1
66a6: e73e b.n 6526 <_lv_blend_fill+0x34e>
switch(mode) {
66a8: f1bb 0f01 cmp.w fp, #1
66ac: f9b8 0010 ldrsh.w r0, [r8, #16]
66b0: f9b8 6014 ldrsh.w r6, [r8, #20]
66b4: d00c beq.n 66d0 <_lv_blend_fill+0x4f8>
66b6: f1bb 0f02 cmp.w fp, #2
66ba: d02f beq.n 671c <_lv_blend_fill+0x544>
LV_LOG_WARN("fill_blended: unsupported blend mode");
66bc: 4b3f ldr r3, [pc, #252] ; (67bc <_lv_blend_fill+0x5e4>)
66be: 9300 str r3, [sp, #0]
66c0: 493f ldr r1, [pc, #252] ; (67c0 <_lv_blend_fill+0x5e8>)
66c2: 4b40 ldr r3, [pc, #256] ; (67c4 <_lv_blend_fill+0x5ec>)
66c4: 4c40 ldr r4, [pc, #256] ; (67c8 <_lv_blend_fill+0x5f0>)
66c6: f44f 7204 mov.w r2, #528 ; 0x210
66ca: 2002 movs r0, #2
66cc: 47a0 blx r4
return;
66ce: e639 b.n 6344 <_lv_blend_fill+0x16c>
blend_fp = color_blend_true_color_additive;
66d0: f8df b0f8 ldr.w fp, [pc, #248] ; 67cc <_lv_blend_fill+0x5f4>
66d4: 3601 adds r6, #1
66d6: 1a36 subs r6, r6, r0
66d8: b236 sxth r6, r6
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
66da: fb06 f005 mul.w r0, r6, r5
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
66de: 2f01 cmp r7, #1
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
66e0: eb09 0a40 add.w sl, r9, r0, lsl #1
disp_buf_tmp += disp_w;
66e4: ea4f 0646 mov.w r6, r6, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
66e8: d129 bne.n 673e <_lv_blend_fill+0x566>
lv_color_t last_dest_color = LV_COLOR_BLACK;
66ea: f04f 0800 mov.w r8, #0
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
66ee: 9a05 ldr r2, [sp, #20]
66f0: 4b31 ldr r3, [pc, #196] ; (67b8 <_lv_blend_fill+0x5e0>)
66f2: 4641 mov r1, r8
66f4: 4620 mov r0, r4
66f6: 4798 blx r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
66f8: f9bd 702a ldrsh.w r7, [sp, #42] ; 0x2a
66fc: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6700: 429f cmp r7, r3
6702: f73f ae1f bgt.w 6344 <_lv_blend_fill+0x16c>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6706: f9bd 5028 ldrsh.w r5, [sp, #40] ; 0x28
670a: eb0a 0945 add.w r9, sl, r5, lsl #1
670e: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
6712: 429d cmp r5, r3
6714: dd05 ble.n 6722 <_lv_blend_fill+0x54a>
disp_buf_tmp += disp_w;
6716: 44b2 add sl, r6
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6718: 3701 adds r7, #1
671a: e7ef b.n 66fc <_lv_blend_fill+0x524>
switch(mode) {
671c: f8df b0b0 ldr.w fp, [pc, #176] ; 67d0 <_lv_blend_fill+0x5f8>
6720: e7d8 b.n 66d4 <_lv_blend_fill+0x4fc>
if(last_dest_color.full != disp_buf_tmp[x].full) {
6722: f8b9 1000 ldrh.w r1, [r9]
6726: fa1f f388 uxth.w r3, r8
672a: 428b cmp r3, r1
672c: d003 beq.n 6736 <_lv_blend_fill+0x55e>
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
672e: 9a05 ldr r2, [sp, #20]
6730: 4620 mov r0, r4
last_dest_color = disp_buf_tmp[x];
6732: 4688 mov r8, r1
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
6734: 47d8 blx fp
disp_buf_tmp[x] = last_res_color;
6736: f829 0b02 strh.w r0, [r9], #2
for(x = draw_area->x1; x <= draw_area->x2; x++) {
673a: 3501 adds r5, #1
673c: e7e7 b.n 670e <_lv_blend_fill+0x536>
673e: f1c1 0801 rsb r8, r1, #1
6742: 4490 add r8, r2
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6744: e9dd 3206 ldrd r3, r2, [sp, #24]
last_dest_color.full = disp_buf_tmp[0].full;
6748: f839 1010 ldrh.w r1, [r9, r0, lsl #1]
674c: fa0f f888 sxth.w r8, r8
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6750: 1a9f subs r7, r3, r2
last_res_color.full = disp_buf_tmp[0].full;
6752: 4608 mov r0, r1
lv_opa_t last_mask = LV_OPA_TRANSP;
6754: f04f 0c00 mov.w ip, #0
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6758: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
675c: 429d cmp r5, r3
675e: f73f adf1 bgt.w 6344 <_lv_blend_fill+0x16c>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6762: f9bd 9028 ldrsh.w r9, [sp, #40] ; 0x28
6766: eb0a 0349 add.w r3, sl, r9, lsl #1
676a: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c
676e: 4591 cmp r9, r2
6770: dd03 ble.n 677a <_lv_blend_fill+0x5a2>
disp_buf_tmp += disp_w;
6772: 44b2 add sl, r6
mask_tmp += draw_area_w;
6774: 4447 add r7, r8
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6776: 3501 adds r5, #1
6778: e7ee b.n 6758 <_lv_blend_fill+0x580>
if(mask_tmp[x] == 0) continue;
677a: f817 2009 ldrb.w r2, [r7, r9]
677e: b1ba cbz r2, 67b0 <_lv_blend_fill+0x5d8>
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
6780: 4562 cmp r2, ip
6782: d103 bne.n 678c <_lv_blend_fill+0x5b4>
6784: f8b3 e000 ldrh.w lr, [r3]
6788: 458e cmp lr, r1
678a: d010 beq.n 67ae <_lv_blend_fill+0x5d6>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
678c: 2af9 cmp r2, #249 ; 0xf9
678e: bf94 ite ls
6790: 9905 ldrls r1, [sp, #20]
6792: 9a05 ldrhi r2, [sp, #20]
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
6794: 9306 str r3, [sp, #24]
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
6796: bf9c itt ls
6798: fb12 f201 smulbbls r2, r2, r1
679c: 0a12 lsrls r2, r2, #8
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
679e: 8819 ldrh r1, [r3, #0]
67a0: 4620 mov r0, r4
67a2: 47d8 blx fp
last_dest_color.full = disp_buf_tmp[x].full;
67a4: 9b06 ldr r3, [sp, #24]
last_mask = mask_tmp[x];
67a6: f817 c009 ldrb.w ip, [r7, r9]
last_dest_color.full = disp_buf_tmp[x].full;
67aa: 8819 ldrh r1, [r3, #0]
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
67ac: b280 uxth r0, r0
disp_buf_tmp[x] = last_res_color;
67ae: 8018 strh r0, [r3, #0]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
67b0: f109 0901 add.w r9, r9, #1
67b4: 3302 adds r3, #2
67b6: e7d8 b.n 676a <_lv_blend_fill+0x592>
67b8: 000060a1 .word 0x000060a1
67bc: 0001fa1d .word 0x0001fa1d
67c0: 0001f9e7 .word 0x0001f9e7
67c4: 0001fa42 .word 0x0001fa42
67c8: 0000e931 .word 0x0000e931
67cc: 000060f1 .word 0x000060f1
67d0: 00006169 .word 0x00006169
000067d4 <_lv_blend_map>:
{
67d4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
67d8: b08f sub sp, #60 ; 0x3c
67da: 468b mov fp, r1
67dc: f89d a064 ldrb.w sl, [sp, #100] ; 0x64
67e0: 9305 str r3, [sp, #20]
if(opa < LV_OPA_MIN) return;
67e2: f1ba 0f04 cmp.w sl, #4
{
67e6: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60
67ea: f89d 9068 ldrb.w r9, [sp, #104] ; 0x68
67ee: 9208 str r2, [sp, #32]
67f0: 930a str r3, [sp, #40] ; 0x28
if(opa < LV_OPA_MIN) return;
67f2: f240 80d9 bls.w 69a8 <_lv_blend_map+0x1d4>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
67f6: 2b00 cmp r3, #0
67f8: f000 80d6 beq.w 69a8 <_lv_blend_map+0x1d4>
is_common = _lv_area_intersect(&draw_area, clip_area, map_area);
67fc: 460a mov r2, r1
67fe: 4bb7 ldr r3, [pc, #732] ; (6adc <_lv_blend_map+0x308>)
6800: 4601 mov r1, r0
6802: a80c add r0, sp, #48 ; 0x30
6804: 4798 blx r3
if(!is_common) return;
6806: 2800 cmp r0, #0
6808: f000 80ce beq.w 69a8 <_lv_blend_map+0x1d4>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
680c: 4bb4 ldr r3, [pc, #720] ; (6ae0 <_lv_blend_map+0x30c>)
680e: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6810: 4bb4 ldr r3, [pc, #720] ; (6ae4 <_lv_blend_map+0x310>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6812: 4606 mov r6, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6814: 4798 blx r3
6816: 4604 mov r4, r0
lv_color_t * disp_buf = vdb->buf_act;
6818: 6883 ldr r3, [r0, #8]
draw_area.y1 -= disp_area->y1;
681a: f8bd e032 ldrh.w lr, [sp, #50] ; 0x32
draw_area.y2 -= disp_area->y1;
681e: f8bd 1036 ldrh.w r1, [sp, #54] ; 0x36
lv_color_t * disp_buf = vdb->buf_act;
6822: 9307 str r3, [sp, #28]
draw_area.y1 -= disp_area->y1;
6824: 8a63 ldrh r3, [r4, #18]
draw_area.x1 -= disp_area->x1;
6826: f8bd 5030 ldrh.w r5, [sp, #48] ; 0x30
682a: 8a00 ldrh r0, [r0, #16]
draw_area.x2 -= disp_area->x1;
682c: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34
draw_area.y1 -= disp_area->y1;
6830: ebae 0803 sub.w r8, lr, r3
draw_area.y2 -= disp_area->y1;
6834: 1acb subs r3, r1, r3
draw_area.x1 -= disp_area->x1;
6836: eba5 0c00 sub.w ip, r5, r0
draw_area.y2 -= disp_area->y1;
683a: f8ad 3036 strh.w r3, [sp, #54] ; 0x36
if(mask && disp->driver.antialiasing == 0)
683e: 9b05 ldr r3, [sp, #20]
draw_area.x1 -= disp_area->x1;
6840: fa0f fc8c sxth.w ip, ip
draw_area.y1 -= disp_area->y1;
6844: fa0f f888 sxth.w r8, r8
draw_area.x2 -= disp_area->x1;
6848: 1a10 subs r0, r2, r0
draw_area.x1 -= disp_area->x1;
684a: f8ad c030 strh.w ip, [sp, #48] ; 0x30
draw_area.y1 -= disp_area->y1;
684e: f8ad 8032 strh.w r8, [sp, #50] ; 0x32
draw_area.x2 -= disp_area->x1;
6852: f8ad 0034 strh.w r0, [sp, #52] ; 0x34
if(mask && disp->driver.antialiasing == 0)
6856: 2b00 cmp r3, #0
6858: d15c bne.n 6914 <_lv_blend_map+0x140>
if(disp->driver.set_px_cb) {
685a: 6973 ldr r3, [r6, #20]
685c: 2b00 cmp r3, #0
685e: d172 bne.n 6946 <_lv_blend_map+0x172>
6860: f1c5 0501 rsb r5, r5, #1
6864: 4415 add r5, r2
6866: b22a sxth r2, r5
6868: 8aa6 ldrh r6, [r4, #20]
686a: f8bb 7004 ldrh.w r7, [fp, #4]
686e: f9b4 3010 ldrsh.w r3, [r4, #16]
6872: f9bb 0000 ldrsh.w r0, [fp]
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6876: f9b4 4012 ldrsh.w r4, [r4, #18]
687a: 9206 str r2, [sp, #24]
687c: f9bb 2002 ldrsh.w r2, [fp, #2]
6880: 3601 adds r6, #1
6882: 3701 adds r7, #1
6884: 1af6 subs r6, r6, r3
6886: 1a3f subs r7, r7, r0
6888: 1b14 subs r4, r2, r4
688a: b236 sxth r6, r6
688c: b23f sxth r7, r7
688e: eba8 0404 sub.w r4, r8, r4
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
6892: fb06 f508 mul.w r5, r6, r8
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6896: 437c muls r4, r7
else if(mode == LV_BLEND_MODE_NORMAL) {
6898: f1b9 0f00 cmp.w r9, #0
689c: f040 81f8 bne.w 6c90 <_lv_blend_map+0x4bc>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
68a0: f1ce 0201 rsb r2, lr, #1
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
68a4: 1ac3 subs r3, r0, r3
68a6: 440a add r2, r1
int32_t draw_area_h = lv_area_get_height(draw_area);
68a8: b212 sxth r2, r2
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
68aa: 4465 add r5, ip
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
68ac: ebac 0c03 sub.w ip, ip, r3
68b0: 9b08 ldr r3, [sp, #32]
int32_t draw_area_h = lv_area_get_height(draw_area);
68b2: 9209 str r2, [sp, #36] ; 0x24
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
68b4: 4464 add r4, ip
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
68b6: 9a07 ldr r2, [sp, #28]
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
68b8: eb03 0444 add.w r4, r3, r4, lsl #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
68bc: 4b88 ldr r3, [pc, #544] ; (6ae0 <_lv_blend_map+0x30c>)
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
68be: eb02 0545 add.w r5, r2, r5, lsl #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
68c2: 4798 blx r3
disp_buf_first += disp_w;
68c4: 0073 lsls r3, r6, #1
68c6: 9307 str r3, [sp, #28]
map_buf_first += map_w;
68c8: 007b lsls r3, r7, #1
68ca: 9308 str r3, [sp, #32]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
68cc: 9b0a ldr r3, [sp, #40] ; 0x28
68ce: 2b01 cmp r3, #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
68d0: 4680 mov r8, r0
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
68d2: f040 80ed bne.w 6ab0 <_lv_blend_map+0x2dc>
if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) {
68d6: 6a03 ldr r3, [r0, #32]
68d8: 2b00 cmp r3, #0
68da: f000 80ba beq.w 6a52 <_lv_blend_map+0x27e>
68de: 4b82 ldr r3, [pc, #520] ; (6ae8 <_lv_blend_map+0x314>)
68e0: a80c add r0, sp, #48 ; 0x30
68e2: 4798 blx r3
68e4: 28f0 cmp r0, #240 ; 0xf0
68e6: f240 80b4 bls.w 6a52 <_lv_blend_map+0x27e>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
68ea: f9bd 7032 ldrsh.w r7, [sp, #50] ; 0x32
68ee: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
68f2: 429f cmp r7, r3
68f4: dc58 bgt.n 69a8 <_lv_blend_map+0x1d4>
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa);
68f6: f8cd a000 str.w sl, [sp]
68fa: 9b06 ldr r3, [sp, #24]
68fc: f8d8 6020 ldr.w r6, [r8, #32]
6900: 4622 mov r2, r4
6902: 4629 mov r1, r5
6904: 4640 mov r0, r8
6906: 47b0 blx r6
disp_buf_first += disp_w;
6908: 9b07 ldr r3, [sp, #28]
690a: 441d add r5, r3
map_buf_first += map_w;
690c: 9b08 ldr r3, [sp, #32]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
690e: 3701 adds r7, #1
map_buf_first += map_w;
6910: 441c add r4, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6912: e7ec b.n 68ee <_lv_blend_map+0x11a>
if(mask && disp->driver.antialiasing == 0)
6914: 7a33 ldrb r3, [r6, #8]
6916: 07db lsls r3, r3, #31
6918: d49f bmi.n 685a <_lv_blend_map+0x86>
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
691a: 9f05 ldr r7, [sp, #20]
691c: 9805 ldr r0, [sp, #20]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
691e: 1c53 adds r3, r2, #1
6920: 1b5b subs r3, r3, r5
6922: f1c7 0701 rsb r7, r7, #1
int32_t mask_w = lv_area_get_width(&draw_area);
6926: b21b sxth r3, r3
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
6928: 3801 subs r0, #1
692a: 9706 str r7, [sp, #24]
692c: 9f06 ldr r7, [sp, #24]
692e: 4407 add r7, r0
6930: 42bb cmp r3, r7
6932: dd92 ble.n 685a <_lv_blend_map+0x86>
6934: f810 7f01 ldrb.w r7, [r0, #1]!
6938: 2f80 cmp r7, #128 ; 0x80
693a: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff
693e: bf98 it ls
6940: 2700 movls r7, #0
6942: 7007 strb r7, [r0, #0]
6944: e7f2 b.n 692c <_lv_blend_map+0x158>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6946: 4b66 ldr r3, [pc, #408] ; (6ae0 <_lv_blend_map+0x30c>)
6948: 4798 blx r3
694a: f8bb 5004 ldrh.w r5, [fp, #4]
694e: f9b4 c010 ldrsh.w ip, [r4, #16]
6952: 8aa2 ldrh r2, [r4, #20]
6954: f9bb e000 ldrsh.w lr, [fp]
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6958: f9bb 8002 ldrsh.w r8, [fp, #2]
695c: f9b4 4012 ldrsh.w r4, [r4, #18]
6960: f9bd 6032 ldrsh.w r6, [sp, #50] ; 0x32
6964: f9bd 1030 ldrsh.w r1, [sp, #48] ; 0x30
6968: 3501 adds r5, #1
696a: eba8 0404 sub.w r4, r8, r4
696e: eba5 050e sub.w r5, r5, lr
6972: b22d sxth r5, r5
6974: eba6 0804 sub.w r8, r6, r4
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6978: 4607 mov r7, r0
map_buf_tmp -= draw_area->x1;
697a: ebac 040e sub.w r4, ip, lr
697e: 9808 ldr r0, [sp, #32]
6980: fb05 4408 mla r4, r5, r8, r4
6984: eb00 0444 add.w r4, r0, r4, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6988: 980a ldr r0, [sp, #40] ; 0x28
698a: 3201 adds r2, #1
698c: eba2 020c sub.w r2, r2, ip
6990: 2801 cmp r0, #1
6992: ea4f 0045 mov.w r0, r5, lsl #1
6996: b212 sxth r2, r2
6998: f1c1 0300 rsb r3, r1, #0
699c: 9006 str r0, [sp, #24]
699e: d125 bne.n 69ec <_lv_blend_map+0x218>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
69a0: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
69a4: 429e cmp r6, r3
69a6: dd02 ble.n 69ae <_lv_blend_map+0x1da>
}
69a8: b00f add sp, #60 ; 0x3c
69aa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
for(x = draw_area->x1; x <= draw_area->x2; x++) {
69ae: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
69b2: fa0f f986 sxth.w r9, r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
69b6: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
69ba: 4598 cmp r8, r3
69bc: dd03 ble.n 69c6 <_lv_blend_map+0x1f2>
map_buf_tmp += map_w;
69be: 9b06 ldr r3, [sp, #24]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
69c0: 3601 adds r6, #1
map_buf_tmp += map_w;
69c2: 441c add r4, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
69c4: e7ec b.n 69a0 <_lv_blend_map+0x1cc>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
69c6: f8cd a008 str.w sl, [sp, #8]
69ca: f834 3018 ldrh.w r3, [r4, r8, lsl #1]
69ce: f8ad 3004 strh.w r3, [sp, #4]
69d2: f8cd 9000 str.w r9, [sp]
69d6: fa0f f388 sxth.w r3, r8
69da: 9907 ldr r1, [sp, #28]
69dc: 697d ldr r5, [r7, #20]
69de: 9205 str r2, [sp, #20]
69e0: 4638 mov r0, r7
69e2: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
69e4: f108 0801 add.w r8, r8, #1
69e8: 9a05 ldr r2, [sp, #20]
69ea: e7e4 b.n 69b6 <_lv_blend_map+0x1e2>
69ec: f8bd 8034 ldrh.w r8, [sp, #52] ; 0x34
69f0: f108 0801 add.w r8, r8, #1
69f4: eba8 0801 sub.w r8, r8, r1
const lv_opa_t * mask_tmp = mask - draw_area->x1;
69f8: 9905 ldr r1, [sp, #20]
69fa: 4419 add r1, r3
69fc: fa0f f888 sxth.w r8, r8
6a00: 468b mov fp, r1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6a02: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6a06: 429e cmp r6, r3
6a08: dcce bgt.n 69a8 <_lv_blend_map+0x1d4>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6a0a: b233 sxth r3, r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6a0c: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6a10: 9305 str r3, [sp, #20]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6a12: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6a16: 4599 cmp r9, r3
6a18: dd04 ble.n 6a24 <_lv_blend_map+0x250>
map_buf_tmp += map_w;
6a1a: 9b06 ldr r3, [sp, #24]
mask_tmp += draw_area_w;
6a1c: 44c3 add fp, r8
map_buf_tmp += map_w;
6a1e: 441c add r4, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6a20: 3601 adds r6, #1
6a22: e7ee b.n 6a02 <_lv_blend_map+0x22e>
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
6a24: f81b 3009 ldrb.w r3, [fp, r9]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6a28: 9907 ldr r1, [sp, #28]
6a2a: 9208 str r2, [sp, #32]
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
6a2c: fb13 f30a smulbb r3, r3, sl
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6a30: 0a1b lsrs r3, r3, #8
6a32: 9302 str r3, [sp, #8]
6a34: f834 3019 ldrh.w r3, [r4, r9, lsl #1]
6a38: f8ad 3004 strh.w r3, [sp, #4]
6a3c: 9b05 ldr r3, [sp, #20]
6a3e: 9300 str r3, [sp, #0]
6a40: 697d ldr r5, [r7, #20]
6a42: fa0f f389 sxth.w r3, r9
6a46: 4638 mov r0, r7
6a48: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6a4a: f109 0901 add.w r9, r9, #1
6a4e: 9a08 ldr r2, [sp, #32]
6a50: e7df b.n 6a12 <_lv_blend_map+0x23e>
if(opa > LV_OPA_MAX) {
6a52: f1ba 0ffa cmp.w sl, #250 ; 0xfa
6a56: d927 bls.n 6aa8 <_lv_blend_map+0x2d4>
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
6a58: 9b06 ldr r3, [sp, #24]
6a5a: f8df 8090 ldr.w r8, [pc, #144] ; 6aec <_lv_blend_map+0x318>
6a5e: 005f lsls r7, r3, #1
for(y = 0; y < draw_area_h; y++) {
6a60: 2600 movs r6, #0
6a62: 9b09 ldr r3, [sp, #36] ; 0x24
6a64: 42b3 cmp r3, r6
6a66: dd9f ble.n 69a8 <_lv_blend_map+0x1d4>
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
6a68: 4621 mov r1, r4
6a6a: 4628 mov r0, r5
6a6c: 463a mov r2, r7
6a6e: 47c0 blx r8
disp_buf_first += disp_w;
6a70: 9b07 ldr r3, [sp, #28]
6a72: 441d add r5, r3
map_buf_first += map_w;
6a74: 9b08 ldr r3, [sp, #32]
for(y = 0; y < draw_area_h; y++) {
6a76: 3601 adds r6, #1
map_buf_first += map_w;
6a78: 441c add r4, r3
for(y = 0; y < draw_area_h; y++) {
6a7a: e7f2 b.n 6a62 <_lv_blend_map+0x28e>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
6a7c: f835 1016 ldrh.w r1, [r5, r6, lsl #1]
6a80: f834 0016 ldrh.w r0, [r4, r6, lsl #1]
6a84: 4652 mov r2, sl
6a86: 47c0 blx r8
6a88: f825 0016 strh.w r0, [r5, r6, lsl #1]
for(x = 0; x < draw_area_w; x++) {
6a8c: 3601 adds r6, #1
6a8e: 9b06 ldr r3, [sp, #24]
6a90: 42b3 cmp r3, r6
6a92: dcf3 bgt.n 6a7c <_lv_blend_map+0x2a8>
disp_buf_first += disp_w;
6a94: 9b07 ldr r3, [sp, #28]
6a96: 441d add r5, r3
map_buf_first += map_w;
6a98: 9b08 ldr r3, [sp, #32]
for(y = 0; y < draw_area_h; y++) {
6a9a: 3701 adds r7, #1
map_buf_first += map_w;
6a9c: 441c add r4, r3
for(y = 0; y < draw_area_h; y++) {
6a9e: 9b09 ldr r3, [sp, #36] ; 0x24
6aa0: 42bb cmp r3, r7
6aa2: dd81 ble.n 69a8 <_lv_blend_map+0x1d4>
for(x = 0; x < draw_area_w; x++) {
6aa4: 2600 movs r6, #0
6aa6: e7f2 b.n 6a8e <_lv_blend_map+0x2ba>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
6aa8: f8df 8044 ldr.w r8, [pc, #68] ; 6af0 <_lv_blend_map+0x31c>
for(y = 0; y < draw_area_h; y++) {
6aac: 2700 movs r7, #0
6aae: e7f6 b.n 6a9e <_lv_blend_map+0x2ca>
if(opa > LV_OPA_MAX) {
6ab0: f1ba 0ffa cmp.w sl, #250 ; 0xfa
6ab4: f240 80ea bls.w 6c8c <_lv_blend_map+0x4b8>
int32_t x_end4 = draw_area_w - 4;
6ab8: 9b06 ldr r3, [sp, #24]
MAP_NORMAL_MASK_PX(x)
6aba: f8df 8034 ldr.w r8, [pc, #52] ; 6af0 <_lv_blend_map+0x31c>
int32_t x_end4 = draw_area_w - 4;
6abe: 3b04 subs r3, #4
for(y = 0; y < draw_area_h; y++) {
6ac0: e9cd 930a strd r9, r3, [sp, #40] ; 0x28
6ac4: e9dd 3209 ldrd r3, r2, [sp, #36] ; 0x24
6ac8: 4293 cmp r3, r2
6aca: f77f af6d ble.w 69a8 <_lv_blend_map+0x1d4>
6ace: f8dd a014 ldr.w sl, [sp, #20]
6ad2: 46a9 mov r9, r5
6ad4: 46a3 mov fp, r4
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6ad6: 2600 movs r6, #0
6ad8: e01a b.n 6b10 <_lv_blend_map+0x33c>
6ada: bf00 nop
6adc: 0000ded1 .word 0x0000ded1
6ae0: 00004fdd .word 0x00004fdd
6ae4: 0000da25 .word 0x0000da25
6ae8: 0000deb5 .word 0x0000deb5
6aec: 0000ec79 .word 0x0000ec79
6af0: 000060a1 .word 0x000060a1
MAP_NORMAL_MASK_PX(x)
6af4: f81a 2b01 ldrb.w r2, [sl], #1
6af8: b12a cbz r2, 6b06 <_lv_blend_map+0x332>
6afa: 2aff cmp r2, #255 ; 0xff
6afc: d12a bne.n 6b54 <_lv_blend_map+0x380>
6afe: f8bb 3000 ldrh.w r3, [fp]
6b02: f8a9 3000 strh.w r3, [r9]
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6b06: 3601 adds r6, #1
6b08: f109 0902 add.w r9, r9, #2
6b0c: f10b 0b02 add.w fp, fp, #2
6b10: 9b06 ldr r3, [sp, #24]
6b12: 42b3 cmp r3, r6
6b14: 4657 mov r7, sl
6b16: dd02 ble.n 6b1e <_lv_blend_map+0x34a>
6b18: f01a 0f03 tst.w sl, #3
6b1c: d1ea bne.n 6af4 <_lv_blend_map+0x320>
6b1e: eb05 0946 add.w r9, r5, r6, lsl #1
6b22: eb04 0a46 add.w sl, r4, r6, lsl #1
for(; x < x_end4; x += 4) {
6b26: 9b0b ldr r3, [sp, #44] ; 0x2c
6b28: 42b3 cmp r3, r6
6b2a: dc1b bgt.n 6b64 <_lv_blend_map+0x390>
6b2c: eb05 0946 add.w r9, r5, r6, lsl #1
6b30: eb04 0a46 add.w sl, r4, r6, lsl #1
6b34: 3f01 subs r7, #1
for(; x < draw_area_w ; x++) {
6b36: 9b06 ldr r3, [sp, #24]
6b38: 42b3 cmp r3, r6
6b3a: dc6b bgt.n 6c14 <_lv_blend_map+0x440>
disp_buf_first += disp_w;
6b3c: 9b07 ldr r3, [sp, #28]
6b3e: 441d add r5, r3
mask += draw_area_w;
6b40: e9dd 3205 ldrd r3, r2, [sp, #20]
6b44: 4413 add r3, r2
6b46: 9305 str r3, [sp, #20]
map_buf_first += map_w;
6b48: 9b08 ldr r3, [sp, #32]
6b4a: 441c add r4, r3
for(y = 0; y < draw_area_h; y++) {
6b4c: 9b0a ldr r3, [sp, #40] ; 0x28
6b4e: 3301 adds r3, #1
6b50: 930a str r3, [sp, #40] ; 0x28
6b52: e7b7 b.n 6ac4 <_lv_blend_map+0x2f0>
MAP_NORMAL_MASK_PX(x)
6b54: f8b9 1000 ldrh.w r1, [r9]
6b58: f8bb 0000 ldrh.w r0, [fp]
6b5c: 47c0 blx r8
6b5e: f8a9 0000 strh.w r0, [r9]
6b62: e7d0 b.n 6b06 <_lv_blend_map+0x332>
if(*mask32) {
6b64: 683b ldr r3, [r7, #0]
6b66: b18b cbz r3, 6b8c <_lv_blend_map+0x3b8>
if((*mask32) == 0xFFFFFFFF) {
6b68: 3301 adds r3, #1
6b6a: d116 bne.n 6b9a <_lv_blend_map+0x3c6>
disp_buf_first[x] = map_buf_first[x];
6b6c: f8ba 3000 ldrh.w r3, [sl]
6b70: f8a9 3000 strh.w r3, [r9]
disp_buf_first[x + 1] = map_buf_first[x + 1];
6b74: f8ba 3002 ldrh.w r3, [sl, #2]
6b78: f8a9 3002 strh.w r3, [r9, #2]
disp_buf_first[x + 2] = map_buf_first[x + 2];
6b7c: f8ba 3004 ldrh.w r3, [sl, #4]
6b80: f8a9 3004 strh.w r3, [r9, #4]
MAP_NORMAL_MASK_PX(x + 3)
6b84: f8ba 3006 ldrh.w r3, [sl, #6]
6b88: f8a9 3006 strh.w r3, [r9, #6]
mask32++;
6b8c: 3704 adds r7, #4
for(; x < x_end4; x += 4) {
6b8e: 3604 adds r6, #4
6b90: f109 0908 add.w r9, r9, #8
6b94: f10a 0a08 add.w sl, sl, #8
6b98: e7c5 b.n 6b26 <_lv_blend_map+0x352>
MAP_NORMAL_MASK_PX(x)
6b9a: 783a ldrb r2, [r7, #0]
6b9c: b12a cbz r2, 6baa <_lv_blend_map+0x3d6>
6b9e: 2aff cmp r2, #255 ; 0xff
6ba0: d120 bne.n 6be4 <_lv_blend_map+0x410>
6ba2: f8ba 3000 ldrh.w r3, [sl]
6ba6: f8a9 3000 strh.w r3, [r9]
MAP_NORMAL_MASK_PX(x + 1)
6baa: 787a ldrb r2, [r7, #1]
6bac: b12a cbz r2, 6bba <_lv_blend_map+0x3e6>
6bae: 2aff cmp r2, #255 ; 0xff
6bb0: d120 bne.n 6bf4 <_lv_blend_map+0x420>
6bb2: f8ba 3002 ldrh.w r3, [sl, #2]
6bb6: f8a9 3002 strh.w r3, [r9, #2]
MAP_NORMAL_MASK_PX(x + 2)
6bba: 78ba ldrb r2, [r7, #2]
6bbc: b12a cbz r2, 6bca <_lv_blend_map+0x3f6>
6bbe: 2aff cmp r2, #255 ; 0xff
6bc0: d120 bne.n 6c04 <_lv_blend_map+0x430>
6bc2: f8ba 3004 ldrh.w r3, [sl, #4]
6bc6: f8a9 3004 strh.w r3, [r9, #4]
MAP_NORMAL_MASK_PX(x + 3)
6bca: 78fa ldrb r2, [r7, #3]
6bcc: 2a00 cmp r2, #0
6bce: d0dd beq.n 6b8c <_lv_blend_map+0x3b8>
6bd0: 2aff cmp r2, #255 ; 0xff
6bd2: d0d7 beq.n 6b84 <_lv_blend_map+0x3b0>
6bd4: f8b9 1006 ldrh.w r1, [r9, #6]
6bd8: f8ba 0006 ldrh.w r0, [sl, #6]
6bdc: 47c0 blx r8
6bde: f8a9 0006 strh.w r0, [r9, #6]
6be2: e7d3 b.n 6b8c <_lv_blend_map+0x3b8>
MAP_NORMAL_MASK_PX(x)
6be4: f8b9 1000 ldrh.w r1, [r9]
6be8: f8ba 0000 ldrh.w r0, [sl]
6bec: 47c0 blx r8
6bee: f8a9 0000 strh.w r0, [r9]
6bf2: e7da b.n 6baa <_lv_blend_map+0x3d6>
MAP_NORMAL_MASK_PX(x + 1)
6bf4: f8b9 1002 ldrh.w r1, [r9, #2]
6bf8: f8ba 0002 ldrh.w r0, [sl, #2]
6bfc: 47c0 blx r8
6bfe: f8a9 0002 strh.w r0, [r9, #2]
6c02: e7da b.n 6bba <_lv_blend_map+0x3e6>
MAP_NORMAL_MASK_PX(x + 2)
6c04: f8b9 1004 ldrh.w r1, [r9, #4]
6c08: f8ba 0004 ldrh.w r0, [sl, #4]
6c0c: 47c0 blx r8
6c0e: f8a9 0004 strh.w r0, [r9, #4]
6c12: e7da b.n 6bca <_lv_blend_map+0x3f6>
MAP_NORMAL_MASK_PX(x)
6c14: f817 2f01 ldrb.w r2, [r7, #1]!
6c18: b12a cbz r2, 6c26 <_lv_blend_map+0x452>
6c1a: 2aff cmp r2, #255 ; 0xff
6c1c: d109 bne.n 6c32 <_lv_blend_map+0x45e>
6c1e: f8ba 3000 ldrh.w r3, [sl]
6c22: f8a9 3000 strh.w r3, [r9]
for(; x < draw_area_w ; x++) {
6c26: 3601 adds r6, #1
6c28: f109 0902 add.w r9, r9, #2
6c2c: f10a 0a02 add.w sl, sl, #2
6c30: e781 b.n 6b36 <_lv_blend_map+0x362>
MAP_NORMAL_MASK_PX(x)
6c32: f8b9 1000 ldrh.w r1, [r9]
6c36: f8ba 0000 ldrh.w r0, [sl]
6c3a: 47c0 blx r8
6c3c: f8a9 0000 strh.w r0, [r9]
6c40: e7f1 b.n 6c26 <_lv_blend_map+0x452>
if(mask[x]) {
6c42: 9b05 ldr r3, [sp, #20]
6c44: 5d9a ldrb r2, [r3, r6]
6c46: b16a cbz r2, 6c64 <_lv_blend_map+0x490>
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
6c48: 2af9 cmp r2, #249 ; 0xf9
6c4a: bf98 it ls
6c4c: fb1a f202 smulbbls r2, sl, r2
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6c50: f835 1016 ldrh.w r1, [r5, r6, lsl #1]
6c54: f834 0016 ldrh.w r0, [r4, r6, lsl #1]
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
6c58: bf94 ite ls
6c5a: 0a12 lsrls r2, r2, #8
6c5c: 4652 movhi r2, sl
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6c5e: 47b8 blx r7
6c60: f825 0016 strh.w r0, [r5, r6, lsl #1]
for(x = 0; x < draw_area_w; x++) {
6c64: 3601 adds r6, #1
6c66: 9b06 ldr r3, [sp, #24]
6c68: 42b3 cmp r3, r6
6c6a: dcea bgt.n 6c42 <_lv_blend_map+0x46e>
disp_buf_first += disp_w;
6c6c: 9b07 ldr r3, [sp, #28]
6c6e: 441d add r5, r3
mask += draw_area_w;
6c70: e9dd 3205 ldrd r3, r2, [sp, #20]
6c74: 4413 add r3, r2
6c76: 9305 str r3, [sp, #20]
map_buf_first += map_w;
6c78: 9b08 ldr r3, [sp, #32]
for(y = 0; y < draw_area_h; y++) {
6c7a: f109 0901 add.w r9, r9, #1
map_buf_first += map_w;
6c7e: 441c add r4, r3
for(y = 0; y < draw_area_h; y++) {
6c80: 9b09 ldr r3, [sp, #36] ; 0x24
6c82: 454b cmp r3, r9
6c84: f77f ae90 ble.w 69a8 <_lv_blend_map+0x1d4>
for(x = 0; x < draw_area_w; x++) {
6c88: 2600 movs r6, #0
6c8a: e7ec b.n 6c66 <_lv_blend_map+0x492>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6c8c: 4f38 ldr r7, [pc, #224] ; (6d70 <_lv_blend_map+0x59c>)
6c8e: e7f7 b.n 6c80 <_lv_blend_map+0x4ac>
switch(mode) {
6c90: f1b9 0f01 cmp.w r9, #1
6c94: d00c beq.n 6cb0 <_lv_blend_map+0x4dc>
6c96: f1b9 0f02 cmp.w r9, #2
6c9a: d02b beq.n 6cf4 <_lv_blend_map+0x520>
LV_LOG_WARN("fill_blended: unsupported blend mode");
6c9c: 4b35 ldr r3, [pc, #212] ; (6d74 <_lv_blend_map+0x5a0>)
6c9e: 9300 str r3, [sp, #0]
6ca0: 4935 ldr r1, [pc, #212] ; (6d78 <_lv_blend_map+0x5a4>)
6ca2: 4b36 ldr r3, [pc, #216] ; (6d7c <_lv_blend_map+0x5a8>)
6ca4: 4c36 ldr r4, [pc, #216] ; (6d80 <_lv_blend_map+0x5ac>)
6ca6: f240 3253 movw r2, #851 ; 0x353
6caa: 2002 movs r0, #2
6cac: 47a0 blx r4
return;
6cae: e67b b.n 69a8 <_lv_blend_map+0x1d4>
blend_fp = color_blend_true_color_additive;
6cb0: f8df b0d0 ldr.w fp, [pc, #208] ; 6d84 <_lv_blend_map+0x5b0>
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
6cb4: 9a07 ldr r2, [sp, #28]
6cb6: eb02 0545 add.w r5, r2, r5, lsl #1
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6cba: 9a08 ldr r2, [sp, #32]
6cbc: eb02 0444 add.w r4, r2, r4, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6cc0: 9a0a ldr r2, [sp, #40] ; 0x28
6cc2: 2a01 cmp r2, #1
disp_buf_first += disp_w;
6cc4: ea4f 0646 mov.w r6, r6, lsl #1
map_buf_first += map_w;
6cc8: ea4f 0747 mov.w r7, r7, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6ccc: d120 bne.n 6d10 <_lv_blend_map+0x53c>
map_buf_tmp -= draw_area->x1;
6cce: 1a1b subs r3, r3, r0
6cd0: eb04 0443 add.w r4, r4, r3, lsl #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6cd4: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6cd8: 4598 cmp r8, r3
6cda: f73f ae65 bgt.w 69a8 <_lv_blend_map+0x1d4>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6cde: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30
6ce2: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6ce6: 4599 cmp r9, r3
6ce8: dd07 ble.n 6cfa <_lv_blend_map+0x526>
disp_buf_tmp += disp_w;
6cea: 4435 add r5, r6
map_buf_tmp += map_w;
6cec: 443c add r4, r7
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6cee: f108 0801 add.w r8, r8, #1
6cf2: e7ef b.n 6cd4 <_lv_blend_map+0x500>
switch(mode) {
6cf4: f8df b090 ldr.w fp, [pc, #144] ; 6d88 <_lv_blend_map+0x5b4>
6cf8: e7dc b.n 6cb4 <_lv_blend_map+0x4e0>
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa);
6cfa: f835 1019 ldrh.w r1, [r5, r9, lsl #1]
6cfe: f834 0019 ldrh.w r0, [r4, r9, lsl #1]
6d02: 4652 mov r2, sl
6d04: 47d8 blx fp
6d06: f825 0019 strh.w r0, [r5, r9, lsl #1]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6d0a: f109 0901 add.w r9, r9, #1
6d0e: e7e8 b.n 6ce2 <_lv_blend_map+0x50e>
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6d10: 9b05 ldr r3, [sp, #20]
6d12: eba3 030c sub.w r3, r3, ip
6d16: 9305 str r3, [sp, #20]
map_buf_tmp -= draw_area->x1;
6d18: eba4 044c sub.w r4, r4, ip, lsl #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6d1c: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6d20: 4598 cmp r8, r3
6d22: f73f ae41 bgt.w 69a8 <_lv_blend_map+0x1d4>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6d26: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30
6d2a: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6d2e: 4599 cmp r9, r3
6d30: dd08 ble.n 6d44 <_lv_blend_map+0x570>
mask_tmp += draw_area_w;
6d32: e9dd 3205 ldrd r3, r2, [sp, #20]
6d36: 4413 add r3, r2
disp_buf_tmp += disp_w;
6d38: 4435 add r5, r6
mask_tmp += draw_area_w;
6d3a: 9305 str r3, [sp, #20]
map_buf_tmp += map_w;
6d3c: 443c add r4, r7
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6d3e: f108 0801 add.w r8, r8, #1
6d42: e7eb b.n 6d1c <_lv_blend_map+0x548>
if(mask_tmp[x] == 0) continue;
6d44: 9b05 ldr r3, [sp, #20]
6d46: f813 2009 ldrb.w r2, [r3, r9]
6d4a: b16a cbz r2, 6d68 <_lv_blend_map+0x594>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
6d4c: 2af9 cmp r2, #249 ; 0xf9
6d4e: bf98 it ls
6d50: fb1a f202 smulbbls r2, sl, r2
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
6d54: f835 1019 ldrh.w r1, [r5, r9, lsl #1]
6d58: f834 0019 ldrh.w r0, [r4, r9, lsl #1]
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
6d5c: bf94 ite ls
6d5e: 0a12 lsrls r2, r2, #8
6d60: 4652 movhi r2, sl
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
6d62: 47d8 blx fp
6d64: f825 0019 strh.w r0, [r5, r9, lsl #1]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6d68: f109 0901 add.w r9, r9, #1
6d6c: e7dd b.n 6d2a <_lv_blend_map+0x556>
6d6e: bf00 nop
6d70: 000060a1 .word 0x000060a1
6d74: 0001fa1d .word 0x0001fa1d
6d78: 0001f9e7 .word 0x0001f9e7
6d7c: 0001fa4f .word 0x0001fa4f
6d80: 0000e931 .word 0x0000e931
6d84: 000060f1 .word 0x000060f1
6d88: 00006169 .word 0x00006169
00006d8c <show_error>:
}
}
}
static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg)
{
6d8c: b530 push {r4, r5, lr}
6d8e: b0a1 sub sp, #132 ; 0x84
6d90: 4604 mov r4, r0
6d92: 9203 str r2, [sp, #12]
lv_draw_rect_dsc_t rect_dsc;
lv_draw_rect_dsc_init(&rect_dsc);
6d94: a80b add r0, sp, #44 ; 0x2c
6d96: 4a0c ldr r2, [pc, #48] ; (6dc8 <show_error+0x3c>)
{
6d98: 9102 str r1, [sp, #8]
lv_draw_rect_dsc_init(&rect_dsc);
6d9a: 4790 blx r2
rect_dsc.bg_color = LV_COLOR_WHITE;
6d9c: 4a0b ldr r2, [pc, #44] ; (6dcc <show_error+0x40>)
lv_draw_rect(coords, clip_area, &rect_dsc);
6d9e: 9902 ldr r1, [sp, #8]
rect_dsc.bg_color = LV_COLOR_WHITE;
6da0: 8812 ldrh r2, [r2, #0]
6da2: f8ad 202e strh.w r2, [sp, #46] ; 0x2e
lv_draw_rect(coords, clip_area, &rect_dsc);
6da6: 4620 mov r0, r4
6da8: aa0b add r2, sp, #44 ; 0x2c
6daa: 4d09 ldr r5, [pc, #36] ; (6dd0 <show_error+0x44>)
6dac: 47a8 blx r5
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
6dae: a804 add r0, sp, #16
6db0: 4a08 ldr r2, [pc, #32] ; (6dd4 <show_error+0x48>)
6db2: 4790 blx r2
lv_draw_label(coords, clip_area, &label_dsc, msg, NULL);
6db4: 2200 movs r2, #0
6db6: 9200 str r2, [sp, #0]
6db8: 4620 mov r0, r4
6dba: 9b03 ldr r3, [sp, #12]
6dbc: 9902 ldr r1, [sp, #8]
6dbe: 4c06 ldr r4, [pc, #24] ; (6dd8 <show_error+0x4c>)
6dc0: aa04 add r2, sp, #16
6dc2: 47a0 blx r4
}
6dc4: b021 add sp, #132 ; 0x84
6dc6: bd30 pop {r4, r5, pc}
6dc8: 00009bb5 .word 0x00009bb5
6dcc: 0001fae0 .word 0x0001fae0
6dd0: 00009c01 .word 0x00009c01
6dd4: 00007855 .word 0x00007855
6dd8: 00007885 .word 0x00007885
00006ddc <lv_area_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;
while(len) {
6ddc: 3901 subs r1, #1
6dde: f100 0308 add.w r3, r0, #8
*d8 = *s8;
6de2: f811 2f01 ldrb.w r2, [r1, #1]!
6de6: f800 2b01 strb.w r2, [r0], #1
while(len) {
6dea: 4298 cmp r0, r3
6dec: d1f9 bne.n 6de2 <lv_area_copy+0x6>
}
6dee: 4770 bx lr
00006df0 <lv_draw_map>:
{
6df0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
6df4: ed2d 8b02 vpush {d8}
6df8: b0b9 sub sp, #228 ; 0xe4
6dfa: 461c mov r4, r3
6dfc: f89d 3110 ldrb.w r3, [sp, #272] ; 0x110
6e00: 930c str r3, [sp, #48] ; 0x30
6e02: f89d 3114 ldrb.w r3, [sp, #276] ; 0x114
6e06: 9307 str r3, [sp, #28]
6e08: 4682 mov sl, r0
lv_area_copy(&draw_area, clip_area);
6e0a: 4b9d ldr r3, [pc, #628] ; (7080 <lv_draw_map+0x290>)
6e0c: a822 add r0, sp, #136 ; 0x88
{
6e0e: 4689 mov r9, r1
6e10: 4615 mov r5, r2
lv_area_copy(&draw_area, clip_area);
6e12: 4798 blx r3
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6e14: 4b9b ldr r3, [pc, #620] ; (7084 <lv_draw_map+0x294>)
6e16: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6e18: 4b9b ldr r3, [pc, #620] ; (7088 <lv_draw_map+0x298>)
6e1a: 4798 blx r3
draw_area.x1 -= disp_area->x1;
6e1c: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88
6e20: 8a06 ldrh r6, [r0, #16]
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6e22: 9004 str r0, [sp, #16]
draw_area.x1 -= disp_area->x1;
6e24: 1b9b subs r3, r3, r6
draw_area.y1 -= disp_area->y1;
6e26: 8a40 ldrh r0, [r0, #18]
draw_area.x1 -= disp_area->x1;
6e28: f8ad 3088 strh.w r3, [sp, #136] ; 0x88
draw_area.y2 -= disp_area->y1;
6e2c: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e
draw_area.y1 -= disp_area->y1;
6e30: f8bd 108a ldrh.w r1, [sp, #138] ; 0x8a
draw_area.x2 -= disp_area->x1;
6e34: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c
draw_area.y2 -= disp_area->y1;
6e38: 1a1b subs r3, r3, r0
draw_area.y1 -= disp_area->y1;
6e3a: 1a09 subs r1, r1, r0
draw_area.x2 -= disp_area->x1;
6e3c: 1b92 subs r2, r2, r6
draw_area.y2 -= disp_area->y1;
6e3e: f8ad 308e strh.w r3, [sp, #142] ; 0x8e
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
6e42: 4b92 ldr r3, [pc, #584] ; (708c <lv_draw_map+0x29c>)
draw_area.y1 -= disp_area->y1;
6e44: f8ad 108a strh.w r1, [sp, #138] ; 0x8a
draw_area.x2 -= disp_area->x1;
6e48: f8ad 208c strh.w r2, [sp, #140] ; 0x8c
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
6e4c: 4798 blx r3
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
6e4e: 900b str r0, [sp, #44] ; 0x2c
6e50: b9f8 cbnz r0, 6e92 <lv_draw_map+0xa2>
6e52: 8863 ldrh r3, [r4, #2]
6e54: b9eb cbnz r3, 6e92 <lv_draw_map+0xa2>
6e56: 8923 ldrh r3, [r4, #8]
6e58: f5b3 7f80 cmp.w r3, #256 ; 0x100
6e5c: d119 bne.n 6e92 <lv_draw_map+0xa2>
6e5e: 9b0c ldr r3, [sp, #48] ; 0x30
6e60: b9bb cbnz r3, 6e92 <lv_draw_map+0xa2>
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
6e62: 9b07 ldr r3, [sp, #28]
6e64: 2b00 cmp r3, #0
6e66: f040 809b bne.w 6fa0 <lv_draw_map+0x1b0>
6e6a: 7aa3 ldrb r3, [r4, #10]
6e6c: 2b00 cmp r3, #0
6e6e: f040 8099 bne.w 6fa4 <lv_draw_map+0x1b4>
_lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa,
6e72: 7ba2 ldrb r2, [r4, #14]
6e74: 9202 str r2, [sp, #8]
6e76: 7822 ldrb r2, [r4, #0]
6e78: 9201 str r2, [sp, #4]
6e7a: 2201 movs r2, #1
6e7c: 9200 str r2, [sp, #0]
6e7e: 4c84 ldr r4, [pc, #528] ; (7090 <lv_draw_map+0x2a0>)
6e80: 462a mov r2, r5
6e82: 4651 mov r1, sl
6e84: 4648 mov r0, r9
6e86: 47a0 blx r4
}
6e88: b039 add sp, #228 ; 0xe4
6e8a: ecbd 8b02 vpop {d8}
6e8e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
6e92: 9b07 ldr r3, [sp, #28]
6e94: 2b00 cmp r3, #0
6e96: bf14 ite ne
6e98: 2303 movne r3, #3
6e9a: 2302 moveq r3, #2
6e9c: 9305 str r3, [sp, #20]
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
6e9e: 9b04 ldr r3, [sp, #16]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6ea0: f8ba 8004 ldrh.w r8, [sl, #4]
6ea4: f9b3 1012 ldrsh.w r1, [r3, #18]
6ea8: f9ba 2000 ldrsh.w r2, [sl]
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
6eac: f9b3 3010 ldrsh.w r3, [r3, #16]
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
6eb0: f9ba 7002 ldrsh.w r7, [sl, #2]
6eb4: f9bd 008a ldrsh.w r0, [sp, #138] ; 0x8a
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
6eb8: f9bd 6088 ldrsh.w r6, [sp, #136] ; 0x88
6ebc: f108 0801 add.w r8, r8, #1
6ec0: eba8 0802 sub.w r8, r8, r2
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
6ec4: 1a7f subs r7, r7, r1
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
6ec6: 1ad2 subs r2, r2, r3
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
6ec8: 1bc7 subs r7, r0, r7
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
6eca: 1ab2 subs r2, r6, r2
6ecc: fa0f f888 sxth.w r8, r8
6ed0: fb08 2207 mla r2, r8, r7, r2
6ed4: 9f05 ldr r7, [sp, #20]
6ed6: fb02 5207 mla r2, r2, r7, r5
6eda: 9208 str r2, [sp, #32]
6edc: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c
6ee0: 3201 adds r2, #1
blend_area.x1 = draw_area.x1 + disp_area->x1;
6ee2: fa13 f386 uxtah r3, r3, r6
6ee6: 1b96 subs r6, r2, r6
6ee8: b2b2 uxth r2, r6
6eea: b29b uxth r3, r3
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
6eec: 3a01 subs r2, #1
blend_area.x1 = draw_area.x1 + disp_area->x1;
6eee: f8ad 3090 strh.w r3, [sp, #144] ; 0x90
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
6ef2: 4413 add r3, r2
6ef4: f8ad 3094 strh.w r3, [sp, #148] ; 0x94
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
6ef8: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e
6efc: 3301 adds r3, #1
blend_area.y1 = disp_area->y1 + draw_area.y1;
6efe: fa11 f180 uxtah r1, r1, r0
6f02: 1a18 subs r0, r3, r0
6f04: b203 sxth r3, r0
6f06: 9317 str r3, [sp, #92] ; 0x5c
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
6f08: 8863 ldrh r3, [r4, #2]
blend_area.y1 = disp_area->y1 + draw_area.y1;
6f0a: b209 sxth r1, r1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6f0c: b236 sxth r6, r6
6f0e: 9611 str r6, [sp, #68] ; 0x44
6f10: f8ad 1092 strh.w r1, [sp, #146] ; 0x92
blend_area.y2 = blend_area.y1;
6f14: f8ad 1096 strh.w r1, [sp, #150] ; 0x96
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
6f18: 2b00 cmp r3, #0
6f1a: f040 8264 bne.w 73e6 <lv_draw_map+0x5f6>
6f1e: 8923 ldrh r3, [r4, #8]
6f20: f5b3 7280 subs.w r2, r3, #256 ; 0x100
6f24: bf18 it ne
6f26: 2201 movne r2, #1
6f28: 9215 str r2, [sp, #84] ; 0x54
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
6f2a: 9a0b ldr r2, [sp, #44] ; 0x2c
6f2c: 2a00 cmp r2, #0
6f2e: f040 825c bne.w 73ea <lv_draw_map+0x5fa>
6f32: f5b3 7f80 cmp.w r3, #256 ; 0x100
6f36: f040 8258 bne.w 73ea <lv_draw_map+0x5fa>
6f3a: 9b0c ldr r3, [sp, #48] ; 0x30
6f3c: 2b00 cmp r3, #0
6f3e: f040 8254 bne.w 73ea <lv_draw_map+0x5fa>
6f42: 7aa3 ldrb r3, [r4, #10]
6f44: 2b00 cmp r3, #0
6f46: f040 8250 bne.w 73ea <lv_draw_map+0x5fa>
6f4a: 9b07 ldr r3, [sp, #28]
6f4c: 2b00 cmp r3, #0
6f4e: f000 824c beq.w 73ea <lv_draw_map+0x5fa>
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);
6f52: 4d50 ldr r5, [pc, #320] ; (7094 <lv_draw_map+0x2a4>)
6f54: a822 add r0, sp, #136 ; 0x88
6f56: 47a8 blx r5
6f58: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
6f5c: d824 bhi.n 6fa8 <lv_draw_map+0x1b8>
6f5e: a822 add r0, sp, #136 ; 0x88
6f60: 47a8 blx r5
6f62: 4607 mov r7, r0
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
6f64: 4e4c ldr r6, [pc, #304] ; (7098 <lv_draw_map+0x2a8>)
6f66: 0078 lsls r0, r7, #1
6f68: 47b0 blx r6
6f6a: ee08 0a10 vmov s16, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
6f6e: 4638 mov r0, r7
6f70: 47b0 blx r6
map_buf_tmp += map_w * px_size_byte;
6f72: 9b05 ldr r3, [sp, #20]
6f74: 9a11 ldr r2, [sp, #68] ; 0x44
6f76: fb13 fa08 smulbb sl, r3, r8
6f7a: ea22 72e2 bic.w r2, r2, r2, asr #31
for(y = 0; y < draw_area_h; y++) {
6f7e: f04f 0800 mov.w r8, #0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
6f82: 4606 mov r6, r0
uint32_t px_i = 0;
6f84: 4643 mov r3, r8
6f86: 9204 str r2, [sp, #16]
for(y = 0; y < draw_area_h; y++) {
6f88: 9a17 ldr r2, [sp, #92] ; 0x5c
6f8a: 4542 cmp r2, r8
6f8c: dd4e ble.n 702c <lv_draw_map+0x23c>
6f8e: ee18 2a10 vmov r2, s16
6f92: eb06 0c03 add.w ip, r6, r3
6f96: eb02 0e43 add.w lr, r2, r3, lsl #1
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
6f9a: 2100 movs r1, #0
map_px = map_buf_tmp;
6f9c: 9a08 ldr r2, [sp, #32]
6f9e: e014 b.n 6fca <lv_draw_map+0x1da>
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
6fa0: 2303 movs r3, #3
6fa2: e77b b.n 6e9c <lv_draw_map+0xac>
6fa4: 2302 movs r3, #2
6fa6: e779 b.n 6e9c <lv_draw_map+0xac>
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);
6fa8: f44f 77f0 mov.w r7, #480 ; 0x1e0
6fac: e7da b.n 6f64 <lv_draw_map+0x174>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
6fae: 7890 ldrb r0, [r2, #2]
mask_buf[px_i] = px_opa;
6fb0: f80c 0b01 strb.w r0, [ip], #1
if(px_opa) {
6fb4: b130 cbz r0, 6fc4 <lv_draw_map+0x1d4>
map2[px_i].full = map_px[0] + (map_px[1] << 8);
6fb6: f892 b001 ldrb.w fp, [r2, #1]
6fba: 7810 ldrb r0, [r2, #0]
6fbc: eb00 200b add.w r0, r0, fp, lsl #8
6fc0: f82e 0011 strh.w r0, [lr, r1, lsl #1]
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
6fc4: 9805 ldr r0, [sp, #20]
6fc6: 3101 adds r1, #1
6fc8: 4402 add r2, r0
6fca: 9811 ldr r0, [sp, #68] ; 0x44
6fcc: 4288 cmp r0, r1
6fce: dcee bgt.n 6fae <lv_draw_map+0x1be>
6fd0: 9a04 ldr r2, [sp, #16]
6fd2: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88
6fd6: 4413 add r3, r2
map_buf_tmp += map_w * px_size_byte;
6fd8: 9a08 ldr r2, [sp, #32]
6fda: 4452 add r2, sl
6fdc: 9208 str r2, [sp, #32]
6fde: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c
6fe2: 3201 adds r2, #1
6fe4: 1a52 subs r2, r2, r1
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
6fe6: fa03 f282 sxtah r2, r3, r2
6fea: 42ba cmp r2, r7
6fec: d207 bcs.n 6ffe <lv_draw_map+0x20e>
blend_area.y2 ++;
6fee: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96
6ff2: 3201 adds r2, #1
6ff4: f8ad 2096 strh.w r2, [sp, #150] ; 0x96
for(y = 0; y < draw_area_h; y++) {
6ff8: f108 0801 add.w r8, r8, #1
6ffc: e7c4 b.n 6f88 <lv_draw_map+0x198>
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
6ffe: 7ba3 ldrb r3, [r4, #14]
7000: 9302 str r3, [sp, #8]
7002: 7823 ldrb r3, [r4, #0]
7004: 9301 str r3, [sp, #4]
7006: 2302 movs r3, #2
7008: 9300 str r3, [sp, #0]
700a: ee18 2a10 vmov r2, s16
700e: 4633 mov r3, r6
7010: 4d1f ldr r5, [pc, #124] ; (7090 <lv_draw_map+0x2a0>)
7012: a924 add r1, sp, #144 ; 0x90
7014: 4648 mov r0, r9
7016: 47a8 blx r5
blend_area.y1 = blend_area.y2 + 1;
7018: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
701c: 3301 adds r3, #1
701e: b21b sxth r3, r3
7020: f8ad 3092 strh.w r3, [sp, #146] ; 0x92
blend_area.y2 = blend_area.y1;
7024: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
px_i = 0;
7028: 2300 movs r3, #0
702a: e7e5 b.n 6ff8 <lv_draw_map+0x208>
if(blend_area.y1 != blend_area.y2) {
702c: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96
7030: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92
7034: 429a cmp r2, r3
7036: d00f beq.n 7058 <lv_draw_map+0x268>
blend_area.y2--;
7038: 3b01 subs r3, #1
703a: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
703e: 7ba3 ldrb r3, [r4, #14]
7040: 9302 str r3, [sp, #8]
7042: 7823 ldrb r3, [r4, #0]
7044: 9301 str r3, [sp, #4]
7046: 2302 movs r3, #2
7048: 9300 str r3, [sp, #0]
704a: ee18 2a10 vmov r2, s16
704e: 4c10 ldr r4, [pc, #64] ; (7090 <lv_draw_map+0x2a0>)
7050: 4633 mov r3, r6
7052: a924 add r1, sp, #144 ; 0x90
7054: 4648 mov r0, r9
7056: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
7058: 4630 mov r0, r6
_lv_mem_buf_release(mask_buf);
705a: 4c10 ldr r4, [pc, #64] ; (709c <lv_draw_map+0x2ac>)
705c: 47a0 blx r4
_lv_mem_buf_release(map2);
705e: ee18 0a10 vmov r0, s16
7062: 47a0 blx r4
}
7064: e710 b.n 6e88 <lv_draw_map+0x98>
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);
7066: f44f 73f0 mov.w r3, #480 ; 0x1e0
706a: 930a str r3, [sp, #40] ; 0x28
706c: e1c7 b.n 73fe <lv_draw_map+0x60e>
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
706e: 2205 movs r2, #5
7070: e1dd b.n 742e <lv_draw_map+0x63e>
uint16_t recolor_premult[3] = {0};
7072: 9310 str r3, [sp, #64] ; 0x40
7074: 9316 str r3, [sp, #88] ; 0x58
7076: 9319 str r3, [sp, #100] ; 0x64
7078: e212 b.n 74a0 <lv_draw_map+0x6b0>
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
707a: f04f 0b02 mov.w fp, #2
707e: e223 b.n 74c8 <lv_draw_map+0x6d8>
7080: 00006ddd .word 0x00006ddd
7084: 00004fdd .word 0x00004fdd
7088: 0000da25 .word 0x0000da25
708c: 000097fd .word 0x000097fd
7090: 000067d5 .word 0x000067d5
7094: 0000deb5 .word 0x0000deb5
7098: 0000eefd .word 0x0000eefd
709c: 0000ebb1 .word 0x0000ebb1
int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1;
70a0: 9b04 ldr r3, [sp, #16]
70a2: f9bd 2088 ldrsh.w r2, [sp, #136] ; 0x88
70a6: f9b3 3010 ldrsh.w r3, [r3, #16]
70aa: 4413 add r3, r2
70ac: f9ba 2000 ldrsh.w r2, [sl]
70b0: 1a9b subs r3, r3, r2
70b2: 931c str r3, [sp, #112] ; 0x70
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
70b4: eb07 0308 add.w r3, r7, r8
70b8: ee08 3a90 vmov s17, r3
70bc: 9306 str r3, [sp, #24]
70be: ee18 3a10 vmov r3, s16
70c2: eb03 0348 add.w r3, r3, r8, lsl #1
70c6: 931d str r3, [sp, #116] ; 0x74
map_px = map_buf_tmp;
70c8: 9b08 ldr r3, [sp, #32]
70ca: 930d str r3, [sp, #52] ; 0x34
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
70cc: 2300 movs r3, #0
{
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;
int32_t yt = y - dsc->cfg.pivot_y;
70ce: 9a09 ldr r2, [sp, #36] ; 0x24
70d0: 930e str r3, [sp, #56] ; 0x38
70d2: 9b1b ldr r3, [sp, #108] ; 0x6c
70d4: 4413 add r3, r2
70d6: b21b sxth r3, r3
70d8: 931e str r3, [sp, #120] ; 0x78
70da: 9b11 ldr r3, [sp, #68] ; 0x44
70dc: 9a0e ldr r2, [sp, #56] ; 0x38
70de: 4293 cmp r3, r2
70e0: dc43 bgt.n 716a <lv_draw_map+0x37a>
70e2: 9b1f ldr r3, [sp, #124] ; 0x7c
70e4: 4498 add r8, r3
if(other_mask_cnt) {
70e6: 9b0b ldr r3, [sp, #44] ; 0x2c
70e8: b333 cbz r3, 7138 <lv_draw_map+0x348>
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,
70ea: 9804 ldr r0, [sp, #16]
70ec: f8bd 208a ldrh.w r2, [sp, #138] ; 0x8a
70f0: 8a40 ldrh r0, [r0, #18]
70f2: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c
70f6: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88
70fa: 4d9d ldr r5, [pc, #628] ; (7370 <lv_draw_map+0x580>)
70fc: 4402 add r2, r0
70fe: 9809 ldr r0, [sp, #36] ; 0x24
7100: 4402 add r2, r0
7102: 9804 ldr r0, [sp, #16]
7104: 8a00 ldrh r0, [r0, #16]
7106: 3301 adds r3, #1
7108: 1a5b subs r3, r3, r1
710a: 4401 add r1, r0
710c: b21b sxth r3, r3
710e: ee18 0a90 vmov r0, s17
7112: b212 sxth r2, r2
7114: b209 sxth r1, r1
7116: 47a8 blx r5
if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) {
7118: 2800 cmp r0, #0
711a: f040 8124 bne.w 7366 <lv_draw_map+0x576>
711e: f8bd 108c ldrh.w r1, [sp, #140] ; 0x8c
7122: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88
7126: 3101 adds r1, #1
7128: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area));
712a: ee18 0a90 vmov r0, s17
712e: 4b91 ldr r3, [pc, #580] ; (7374 <lv_draw_map+0x584>)
7130: b209 sxth r1, r1
7132: 4798 blx r3
mask_res = LV_DRAW_MASK_RES_CHANGED;
7134: f04f 0b02 mov.w fp, #2
map_buf_tmp += map_w * px_size_byte;
7138: 9b08 ldr r3, [sp, #32]
713a: 9a1a ldr r2, [sp, #104] ; 0x68
713c: 4413 add r3, r2
713e: 9308 str r3, [sp, #32]
7140: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c
7144: f8bd 2088 ldrh.w r2, [sp, #136] ; 0x88
7148: 3301 adds r3, #1
714a: 1a9b subs r3, r3, r2
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
714c: 9a0a ldr r2, [sp, #40] ; 0x28
714e: fa08 f383 sxtah r3, r8, r3
7152: 4293 cmp r3, r2
7154: f080 8116 bcs.w 7384 <lv_draw_map+0x594>
blend_area.y2 ++;
7158: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
715c: 3301 adds r3, #1
715e: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
for(y = 0; y < draw_area_h; y++) {
7162: 9b09 ldr r3, [sp, #36] ; 0x24
7164: 3301 adds r3, #1
7166: 9309 str r3, [sp, #36] ; 0x24
7168: e1c9 b.n 74fe <lv_draw_map+0x70e>
if(transform) {
716a: 9b15 ldr r3, [sp, #84] ; 0x54
716c: 2b00 cmp r3, #0
716e: f000 80d8 beq.w 7322 <lv_draw_map+0x532>
int32_t xt = x - dsc->cfg.pivot_x;
7172: 9a0e ldr r2, [sp, #56] ; 0x38
7174: 9b1c ldr r3, [sp, #112] ; 0x70
7176: f9bd 50a0 ldrsh.w r5, [sp, #160] ; 0xa0
717a: 4413 add r3, r2
717c: b21b sxth r3, r3
int32_t yt = y - dsc->cfg.pivot_y;
717e: 9a1e ldr r2, [sp, #120] ; 0x78
int32_t xt = x - dsc->cfg.pivot_x;
7180: 1b5b subs r3, r3, r5
int32_t yt = y - dsc->cfg.pivot_y;
7182: f9bd 50a2 ldrsh.w r5, [sp, #162] ; 0xa2
7186: 1b55 subs r5, r2, r5
int32_t xs;
int32_t ys;
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
7188: f8bd 20a6 ldrh.w r2, [sp, #166] ; 0xa6
718c: f5b2 7f80 cmp.w r2, #256 ; 0x100
/*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;
7190: e9dd 602f ldrd r6, r0, [sp, #188] ; 0xbc
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
7194: d119 bne.n 71ca <lv_draw_map+0x3da>
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
7196: e9dd c131 ldrd ip, r1, [sp, #196] ; 0xc4
719a: fb01 f203 mul.w r2, r1, r3
719e: fb0c 2215 mls r2, ip, r5, r2
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
71a2: 434d muls r5, r1
71a4: fb0c 5303 mla r3, ip, r3, r5
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
71a8: eb06 16e2 add.w r6, r6, r2, asr #7
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
71ac: eb00 13e3 add.w r3, r0, r3, asr #7
/*Get the integer part of the source pixel*/
int32_t xs_int = xs >> 8;
int32_t ys_int = ys >> 8;
if(xs_int >= dsc->cfg.src_w) return false;
71b0: f9bd 209c ldrsh.w r2, [sp, #156] ; 0x9c
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
71b4: 930f str r3, [sp, #60] ; 0x3c
if(xs_int >= dsc->cfg.src_w) return false;
71b6: ebb2 2f26 cmp.w r2, r6, asr #8
int32_t xs_int = xs >> 8;
71ba: ea4f 2326 mov.w r3, r6, asr #8
71be: 9318 str r3, [sp, #96] ; 0x60
if(xs_int >= dsc->cfg.src_w) return false;
71c0: dc1c bgt.n 71fc <lv_draw_map+0x40c>
mask_buf[px_i] = LV_OPA_TRANSP;
71c2: 9a06 ldr r2, [sp, #24]
71c4: 2300 movs r3, #0
71c6: 7013 strb r3, [r2, #0]
continue;
71c8: e0b2 b.n 7330 <lv_draw_map+0x540>
xt *= dsc->tmp.zoom_inv;
71ca: f8bd 20ce ldrh.w r2, [sp, #206] ; 0xce
else if(dsc->cfg.angle == 0) {
71ce: f9bd 10a4 ldrsh.w r1, [sp, #164] ; 0xa4
xt *= dsc->tmp.zoom_inv;
71d2: 4353 muls r3, r2
yt *= dsc->tmp.zoom_inv;
71d4: 436a muls r2, r5
else if(dsc->cfg.angle == 0) {
71d6: b911 cbnz r1, 71de <lv_draw_map+0x3ee>
xs = xt + dsc->tmp.pivot_x_256;
71d8: 441e add r6, r3
ys = yt + dsc->tmp.pivot_y_256;
71da: 1813 adds r3, r2, r0
71dc: e7e8 b.n 71b0 <lv_draw_map+0x3c0>
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
71de: e9dd c131 ldrd ip, r1, [sp, #196] ; 0xc4
71e2: fb03 f501 mul.w r5, r3, r1
71e6: fb02 551c mls r5, r2, ip, r5
71ea: eb06 36e5 add.w r6, r6, r5, asr #15
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
71ee: fb02 f501 mul.w r5, r2, r1
71f2: fb03 550c mla r5, r3, ip, r5
71f6: eb00 33e5 add.w r3, r0, r5, asr #15
71fa: e7d9 b.n 71b0 <lv_draw_map+0x3c0>
else if(xs_int < 0) return false;
71fc: 1233 asrs r3, r6, #8
71fe: 2b00 cmp r3, #0
7200: dbdf blt.n 71c2 <lv_draw_map+0x3d2>
int32_t ys_int = ys >> 8;
7202: 9b0f ldr r3, [sp, #60] ; 0x3c
if(ys_int >= dsc->cfg.src_h) return false;
7204: 990f ldr r1, [sp, #60] ; 0x3c
int32_t ys_int = ys >> 8;
7206: 121b asrs r3, r3, #8
7208: 9312 str r3, [sp, #72] ; 0x48
if(ys_int >= dsc->cfg.src_h) return false;
720a: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
720e: ebb3 2f21 cmp.w r3, r1, asr #8
7212: ddd6 ble.n 71c2 <lv_draw_map+0x3d2>
else if(ys_int < 0) return false;
7214: 9b12 ldr r3, [sp, #72] ; 0x48
7216: 2b00 cmp r3, #0
7218: dbd3 blt.n 71c2 <lv_draw_map+0x3d2>
uint8_t px_size;
uint32_t pxi;
if(dsc->tmp.native_color) {
721a: f89d 50cc ldrb.w r5, [sp, #204] ; 0xcc
721e: f015 0104 ands.w r1, r5, #4
7222: 9113 str r1, [sp, #76] ; 0x4c
7224: d067 beq.n 72f6 <lv_draw_map+0x506>
7226: 1230 asrs r0, r6, #8
7228: fb02 0203 mla r2, r2, r3, r0
if(dsc->tmp.has_alpha == 0) {
722c: f015 0f02 tst.w r5, #2
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
7230: 9926 ldr r1, [sp, #152] ; 0x98
if(dsc->tmp.has_alpha == 0) {
7232: ea4f 0342 mov.w r3, r2, lsl #1
7236: d151 bne.n 72dc <lv_draw_map+0x4ec>
*d8 = *s8;
7238: f811 2012 ldrb.w r2, [r1, r2, lsl #1]
723c: f88d 20ac strb.w r2, [sp, #172] ; 0xac
px_size = LV_COLOR_SIZE >> 3;
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size);
7240: 18c8 adds r0, r1, r3
7242: 7842 ldrb r2, [r0, #1]
7244: f88d 20ad strb.w r2, [sp, #173] ; 0xad
px_size = LV_COLOR_SIZE >> 3;
7248: 2202 movs r2, #2
}
else {
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
724a: 9213 str r2, [sp, #76] ; 0x4c
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) {
724c: f89d 20cc ldrb.w r2, [sp, #204] ; 0xcc
7250: 07d2 lsls r2, r2, #31
7252: d504 bpl.n 725e <lv_draw_map+0x46e>
lv_color_t ct = LV_COLOR_TRANSP;
if(dsc->res.color.full == ct.full) return false;
7254: f8bd 20ac ldrh.w r2, [sp, #172] ; 0xac
7258: f5b2 6ffc cmp.w r2, #2016 ; 0x7e0
725c: d0b1 beq.n 71c2 <lv_draw_map+0x3d2>
}
if(dsc->cfg.antialias == false) return true;
725e: f89d 20ab ldrb.w r2, [sp, #171] ; 0xab
7262: b19a cbz r2, 728c <lv_draw_map+0x49c>
dsc->tmp.xs = xs;
dsc->tmp.ys = ys;
7264: 9a0f ldr r2, [sp, #60] ; 0x3c
7266: f8ad 20d2 strh.w r2, [sp, #210] ; 0xd2
dsc->tmp.xs_int = xs_int;
dsc->tmp.ys_int = ys_int;
dsc->tmp.pxi = pxi;
726a: 9336 str r3, [sp, #216] ; 0xd8
dsc->tmp.xs_int = xs_int;
726c: 9a18 ldr r2, [sp, #96] ; 0x60
dsc->tmp.px_size = px_size;
726e: 9b13 ldr r3, [sp, #76] ; 0x4c
dsc->tmp.xs_int = xs_int;
7270: f8ad 20d4 strh.w r2, [sp, #212] ; 0xd4
dsc->tmp.px_size = px_size;
7274: f88d 30dc strb.w r3, [sp, #220] ; 0xdc
dsc->tmp.ys_int = ys_int;
7278: 9a12 ldr r2, [sp, #72] ; 0x48
bool ret;
ret = _lv_img_buf_transform_anti_alias(dsc);
727a: 4b3f ldr r3, [pc, #252] ; (7378 <lv_draw_map+0x588>)
dsc->tmp.xs = xs;
727c: f8ad 60d0 strh.w r6, [sp, #208] ; 0xd0
ret = _lv_img_buf_transform_anti_alias(dsc);
7280: a826 add r0, sp, #152 ; 0x98
dsc->tmp.ys_int = ys_int;
7282: f8ad 20d6 strh.w r2, [sp, #214] ; 0xd6
ret = _lv_img_buf_transform_anti_alias(dsc);
7286: 4798 blx r3
if(ret == false) {
7288: 2800 cmp r0, #0
728a: d09a beq.n 71c2 <lv_draw_map+0x3d2>
mask_buf[px_i] = trans_dsc.res.opa;
728c: 9a06 ldr r2, [sp, #24]
728e: f89d 30ae ldrb.w r3, [sp, #174] ; 0xae
7292: 7013 strb r3, [r2, #0]
c.full = trans_dsc.res.color.full;
7294: f8bd 30ac ldrh.w r3, [sp, #172] ; 0xac
if(draw_dsc->recolor_opa != 0) {
7298: 7aa2 ldrb r2, [r4, #10]
729a: b1d2 cbz r2, 72d2 <lv_draw_map+0x4e2>
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
729c: 9916 ldr r1, [sp, #88] ; 0x58
729e: 9814 ldr r0, [sp, #80] ; 0x50
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
72a0: 9d14 ldr r5, [sp, #80] ; 0x50
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
72a2: f3c3 1245 ubfx r2, r3, #5, #6
72a6: fb02 1200 mla r2, r2, r0, r1
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
72aa: 9810 ldr r0, [sp, #64] ; 0x40
72ac: f003 011f and.w r1, r3, #31
72b0: 08d2 lsrs r2, r2, #3
72b2: fb01 0105 mla r1, r1, r5, r0
72b6: f3c1 2104 ubfx r1, r1, #8, #5
72ba: f402 62fc and.w r2, r2, #2016 ; 0x7e0
72be: 430a orrs r2, r1
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
72c0: 9919 ldr r1, [sp, #100] ; 0x64
72c2: 0adb lsrs r3, r3, #11
72c4: fb03 1305 mla r3, r3, r5, r1
72c8: f3c3 2307 ubfx r3, r3, #8, #8
72cc: ea42 23c3 orr.w r3, r2, r3, lsl #11
72d0: b29b uxth r3, r3
map2[px_i].full = c.full;
72d2: 9a1d ldr r2, [sp, #116] ; 0x74
72d4: 990e ldr r1, [sp, #56] ; 0x38
72d6: f822 3011 strh.w r3, [r2, r1, lsl #1]
72da: e029 b.n 7330 <lv_draw_map+0x540>
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
72dc: 4413 add r3, r2
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1);
72de: 18ca adds r2, r1, r3
72e0: 5cc9 ldrb r1, [r1, r3]
72e2: f88d 10ac strb.w r1, [sp, #172] ; 0xac
72e6: 7851 ldrb r1, [r2, #1]
72e8: f88d 10ad strb.w r1, [sp, #173] ; 0xad
dsc->res.opa = src_u8[pxi + px_size - 1];
72ec: 7892 ldrb r2, [r2, #2]
72ee: f88d 20ae strb.w r2, [sp, #174] ; 0xae
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
72f2: 2203 movs r2, #3
72f4: e7a9 b.n 724a <lv_draw_map+0x45a>
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
72f6: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60
72fa: f9bd 2048 ldrsh.w r2, [sp, #72] ; 0x48
72fe: f8bd 30a8 ldrh.w r3, [sp, #168] ; 0xa8
7302: 4d1e ldr r5, [pc, #120] ; (737c <lv_draw_map+0x58c>)
7304: a82c add r0, sp, #176 ; 0xb0
7306: e9cd 1220 strd r1, r2, [sp, #128] ; 0x80
730a: 47a8 blx r5
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
730c: 4b1c ldr r3, [pc, #112] ; (7380 <lv_draw_map+0x590>)
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
730e: f8ad 00ac strh.w r0, [sp, #172] ; 0xac
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
7312: e9dd 1220 ldrd r1, r2, [sp, #128] ; 0x80
7316: a82c add r0, sp, #176 ; 0xb0
7318: 4798 blx r3
pxi = 0; /*unused*/
731a: 9b13 ldr r3, [sp, #76] ; 0x4c
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
731c: f88d 00ae strb.w r0, [sp, #174] ; 0xae
7320: e794 b.n 724c <lv_draw_map+0x45c>
if(alpha_byte) {
7322: 9b07 ldr r3, [sp, #28]
7324: b17b cbz r3, 7346 <lv_draw_map+0x556>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
7326: 9b0d ldr r3, [sp, #52] ; 0x34
mask_buf[px_i] = px_opa;
7328: 9a06 ldr r2, [sp, #24]
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
732a: 789b ldrb r3, [r3, #2]
mask_buf[px_i] = px_opa;
732c: 7013 strb r3, [r2, #0]
if(px_opa == 0) {
732e: b96b cbnz r3, 734c <lv_draw_map+0x55c>
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
7330: 9b0e ldr r3, [sp, #56] ; 0x38
7332: 9a05 ldr r2, [sp, #20]
7334: 3301 adds r3, #1
7336: 930e str r3, [sp, #56] ; 0x38
7338: 9b0d ldr r3, [sp, #52] ; 0x34
733a: 4413 add r3, r2
733c: 930d str r3, [sp, #52] ; 0x34
733e: 9b06 ldr r3, [sp, #24]
7340: 3301 adds r3, #1
7342: 9306 str r3, [sp, #24]
7344: e6c9 b.n 70da <lv_draw_map+0x2ea>
mask_buf[px_i] = 0xFF;
7346: 9a06 ldr r2, [sp, #24]
7348: 23ff movs r3, #255 ; 0xff
734a: 7013 strb r3, [r2, #0]
c.full = map_px[0] + (map_px[1] << 8);
734c: 9b0d ldr r3, [sp, #52] ; 0x34
734e: 785a ldrb r2, [r3, #1]
7350: 781b ldrb r3, [r3, #0]
7352: eb03 2302 add.w r3, r3, r2, lsl #8
if(chroma_key) {
7356: 9a0c ldr r2, [sp, #48] ; 0x30
c.full = map_px[0] + (map_px[1] << 8);
7358: b29b uxth r3, r3
if(chroma_key) {
735a: 2a00 cmp r2, #0
735c: d09c beq.n 7298 <lv_draw_map+0x4a8>
if(c.full == chroma_keyed_color.full) {
735e: f5b3 6ffc cmp.w r3, #2016 ; 0x7e0
7362: d199 bne.n 7298 <lv_draw_map+0x4a8>
7364: e72d b.n 71c2 <lv_draw_map+0x3d2>
mask_res = LV_DRAW_MASK_RES_CHANGED;
7366: 2802 cmp r0, #2
7368: bf08 it eq
736a: f04f 0b02 moveq.w fp, #2
736e: e6e3 b.n 7138 <lv_draw_map+0x348>
7370: 00009769 .word 0x00009769
7374: 0000f061 .word 0x0000f061
7378: 0000c22d .word 0x0000c22d
737c: 0000bdc5 .word 0x0000bdc5
7380: 0000bebd .word 0x0000bebd
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
7384: 7ba3 ldrb r3, [r4, #14]
7386: 9302 str r3, [sp, #8]
7388: 7823 ldrb r3, [r4, #0]
738a: 4d6b ldr r5, [pc, #428] ; (7538 <lv_draw_map+0x748>)
738c: e9cd b300 strd fp, r3, [sp]
7390: ee18 2a10 vmov r2, s16
7394: 463b mov r3, r7
7396: a924 add r1, sp, #144 ; 0x90
7398: 4648 mov r0, r9
739a: 47a8 blx r5
blend_area.y1 = blend_area.y2 + 1;
739c: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
73a0: 3301 adds r3, #1
73a2: b21b sxth r3, r3
73a4: f8ad 3092 strh.w r3, [sp, #146] ; 0x92
blend_area.y2 = blend_area.y1;
73a8: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
73ac: 9b07 ldr r3, [sp, #28]
73ae: b9a3 cbnz r3, 73da <lv_draw_map+0x5ea>
73b0: 9b0c ldr r3, [sp, #48] ; 0x30
73b2: b993 cbnz r3, 73da <lv_draw_map+0x5ea>
73b4: 8863 ldrh r3, [r4, #2]
73b6: b983 cbnz r3, 73da <lv_draw_map+0x5ea>
73b8: 8923 ldrh r3, [r4, #8]
73ba: f5b3 7f80 cmp.w r3, #256 ; 0x100
73be: bf14 ite ne
73c0: f04f 0b02 movne.w fp, #2
73c4: f04f 0b01 moveq.w fp, #1
if(other_mask_cnt) {
73c8: 9b0b ldr r3, [sp, #44] ; 0x2c
73ca: b14b cbz r3, 73e0 <lv_draw_map+0x5f0>
_lv_memset_ff(mask_buf, mask_buf_size);
73cc: 990a ldr r1, [sp, #40] ; 0x28
73ce: 4b5b ldr r3, [pc, #364] ; (753c <lv_draw_map+0x74c>)
73d0: 4638 mov r0, r7
73d2: 4798 blx r3
px_i = 0;
73d4: f04f 0800 mov.w r8, #0
73d8: e6c3 b.n 7162 <lv_draw_map+0x372>
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
73da: f04f 0b02 mov.w fp, #2
73de: e7f3 b.n 73c8 <lv_draw_map+0x5d8>
px_i = 0;
73e0: f8dd 802c ldr.w r8, [sp, #44] ; 0x2c
73e4: e6bd b.n 7162 <lv_draw_map+0x372>
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
73e6: 2301 movs r3, #1
73e8: 9315 str r3, [sp, #84] ; 0x54
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);
73ea: 4e55 ldr r6, [pc, #340] ; (7540 <lv_draw_map+0x750>)
73ec: a822 add r0, sp, #136 ; 0x88
73ee: 47b0 blx r6
73f0: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
73f4: f63f ae37 bhi.w 7066 <lv_draw_map+0x276>
73f8: a822 add r0, sp, #136 ; 0x88
73fa: 47b0 blx r6
73fc: 900a str r0, [sp, #40] ; 0x28
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
73fe: 9b0a ldr r3, [sp, #40] ; 0x28
7400: 4e50 ldr r6, [pc, #320] ; (7544 <lv_draw_map+0x754>)
7402: 0058 lsls r0, r3, #1
7404: 47b0 blx r6
7406: ee08 0a10 vmov s16, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
740a: 980a ldr r0, [sp, #40] ; 0x28
740c: 47b0 blx r6
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
740e: 4b4e ldr r3, [pc, #312] ; (7548 <lv_draw_map+0x758>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
7410: 4607 mov r7, r0
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
7412: 2148 movs r1, #72 ; 0x48
7414: a826 add r0, sp, #152 ; 0x98
7416: 4798 blx r3
if(transform) {
7418: 9b15 ldr r3, [sp, #84] ; 0x54
741a: b363 cbz r3, 7476 <lv_draw_map+0x686>
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
741c: 9b07 ldr r3, [sp, #28]
741e: 2b00 cmp r3, #0
7420: f47f ae25 bne.w 706e <lv_draw_map+0x27e>
else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED;
7424: 9b0c ldr r3, [sp, #48] ; 0x30
7426: 2b00 cmp r3, #0
7428: bf0c ite eq
742a: 2204 moveq r2, #4
742c: 2206 movne r2, #6
trans_dsc.cfg.angle = draw_dsc->angle;
742e: 8863 ldrh r3, [r4, #2]
7430: f8ad 30a4 strh.w r3, [sp, #164] ; 0xa4
trans_dsc.cfg.zoom = draw_dsc->zoom;
7434: 8923 ldrh r3, [r4, #8]
7436: f8ad 30a6 strh.w r3, [sp, #166] ; 0xa6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
743a: f8ba 3006 ldrh.w r3, [sl, #6]
743e: f8ba 1002 ldrh.w r1, [sl, #2]
trans_dsc.cfg.src = map_p;
7442: 9526 str r5, [sp, #152] ; 0x98
7444: 3301 adds r3, #1
7446: 1a5b subs r3, r3, r1
trans_dsc.cfg.src_h = lv_area_get_height(map_area);;
7448: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
trans_dsc.cfg.pivot_x = draw_dsc->pivot.x;
744c: 88a3 ldrh r3, [r4, #4]
744e: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0
trans_dsc.cfg.pivot_y = draw_dsc->pivot.y;
7452: 88e3 ldrh r3, [r4, #6]
7454: f8ad 30a2 strh.w r3, [sp, #162] ; 0xa2
trans_dsc.cfg.color = draw_dsc->recolor;
7458: 89a3 ldrh r3, [r4, #12]
745a: f8ad 30a8 strh.w r3, [sp, #168] ; 0xa8
trans_dsc.cfg.antialias = draw_dsc->antialias;
745e: 7be3 ldrb r3, [r4, #15]
trans_dsc.cfg.src_w = map_w;
7460: f8ad 809c strh.w r8, [sp, #156] ; 0x9c
trans_dsc.cfg.antialias = draw_dsc->antialias;
7464: f3c3 0300 ubfx r3, r3, #0, #1
7468: f88d 30ab strb.w r3, [sp, #171] ; 0xab
_lv_img_buf_transform_init(&trans_dsc);
746c: a826 add r0, sp, #152 ; 0x98
746e: 4b37 ldr r3, [pc, #220] ; (754c <lv_draw_map+0x75c>)
trans_dsc.cfg.cf = cf;
7470: f88d 20aa strb.w r2, [sp, #170] ; 0xaa
_lv_img_buf_transform_init(&trans_dsc);
7474: 4798 blx r3
lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa;
7476: 7aa3 ldrb r3, [r4, #10]
7478: 43da mvns r2, r3
747a: b2d2 uxtb r2, r2
747c: 9214 str r2, [sp, #80] ; 0x50
if(draw_dsc->recolor_opa != 0) {
747e: 2b00 cmp r3, #0
7480: f43f adf7 beq.w 7072 <lv_draw_map+0x282>
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
7484: 7b62 ldrb r2, [r4, #13]
7486: 08d2 lsrs r2, r2, #3
7488: 435a muls r2, r3
748a: 9219 str r2, [sp, #100] ; 0x64
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
748c: 89a2 ldrh r2, [r4, #12]
748e: f3c2 1245 ubfx r2, r2, #5, #6
7492: 435a muls r2, r3
7494: 9216 str r2, [sp, #88] ; 0x58
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
7496: 7b22 ldrb r2, [r4, #12]
7498: f002 021f and.w r2, r2, #31
749c: 4353 muls r3, r2
749e: 9310 str r3, [sp, #64] ; 0x40
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
74a0: 9b07 ldr r3, [sp, #28]
74a2: 2b00 cmp r3, #0
74a4: f47f ade9 bne.w 707a <lv_draw_map+0x28a>
74a8: 9b0c ldr r3, [sp, #48] ; 0x30
74aa: 2b00 cmp r3, #0
74ac: f47f ade5 bne.w 707a <lv_draw_map+0x28a>
74b0: 8863 ldrh r3, [r4, #2]
74b2: 2b00 cmp r3, #0
74b4: f47f ade1 bne.w 707a <lv_draw_map+0x28a>
74b8: 8923 ldrh r3, [r4, #8]
74ba: f5b3 7f80 cmp.w r3, #256 ; 0x100
74be: bf14 ite ne
74c0: f04f 0b02 movne.w fp, #2
74c4: f04f 0b01 moveq.w fp, #1
if(other_mask_cnt) {
74c8: 9b0b ldr r3, [sp, #44] ; 0x2c
74ca: b11b cbz r3, 74d4 <lv_draw_map+0x6e4>
_lv_memset_ff(mask_buf, mask_buf_size);
74cc: 990a ldr r1, [sp, #40] ; 0x28
74ce: 4b1b ldr r3, [pc, #108] ; (753c <lv_draw_map+0x74c>)
74d0: 4638 mov r0, r7
74d2: 4798 blx r3
int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1;
74d4: 9b04 ldr r3, [sp, #16]
74d6: f9bd 208a ldrsh.w r2, [sp, #138] ; 0x8a
74da: f9b3 3012 ldrsh.w r3, [r3, #18]
74de: 4413 add r3, r2
74e0: f9ba 2002 ldrsh.w r2, [sl, #2]
74e4: 1a9b subs r3, r3, r2
74e6: 931b str r3, [sp, #108] ; 0x6c
map_buf_tmp += map_w * px_size_byte;
74e8: 9b05 ldr r3, [sp, #20]
74ea: fb13 f308 smulbb r3, r3, r8
74ee: 931a str r3, [sp, #104] ; 0x68
for(y = 0; y < draw_area_h; y++) {
74f0: 2300 movs r3, #0
74f2: 9309 str r3, [sp, #36] ; 0x24
uint32_t px_i = 0;
74f4: 4698 mov r8, r3
74f6: 9b11 ldr r3, [sp, #68] ; 0x44
74f8: ea23 73e3 bic.w r3, r3, r3, asr #31
74fc: 931f str r3, [sp, #124] ; 0x7c
for(y = 0; y < draw_area_h; y++) {
74fe: 9b17 ldr r3, [sp, #92] ; 0x5c
7500: 9a09 ldr r2, [sp, #36] ; 0x24
7502: 4293 cmp r3, r2
7504: f73f adcc bgt.w 70a0 <lv_draw_map+0x2b0>
if(blend_area.y1 != blend_area.y2) {
7508: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96
750c: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92
7510: 429a cmp r2, r3
7512: d00e beq.n 7532 <lv_draw_map+0x742>
blend_area.y2--;
7514: 3b01 subs r3, #1
7516: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
751a: 7ba3 ldrb r3, [r4, #14]
751c: 9302 str r3, [sp, #8]
751e: 7823 ldrb r3, [r4, #0]
7520: 4c05 ldr r4, [pc, #20] ; (7538 <lv_draw_map+0x748>)
7522: e9cd b300 strd fp, r3, [sp]
7526: ee18 2a10 vmov r2, s16
752a: 463b mov r3, r7
752c: a924 add r1, sp, #144 ; 0x90
752e: 4648 mov r0, r9
7530: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
7532: 4638 mov r0, r7
7534: e591 b.n 705a <lv_draw_map+0x26a>
7536: bf00 nop
7538: 000067d5 .word 0x000067d5
753c: 0000f0bd .word 0x0000f0bd
7540: 0000deb5 .word 0x0000deb5
7544: 0000eefd .word 0x0000eefd
7548: 0000f061 .word 0x0000f061
754c: 0000bfa9 .word 0x0000bfa9
00007550 <lv_draw_img_dsc_init>:
{
7550: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
7552: 4b08 ldr r3, [pc, #32] ; (7574 <lv_draw_img_dsc_init+0x24>)
{
7554: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
7556: 2110 movs r1, #16
7558: 4798 blx r3
dsc->recolor = LV_COLOR_BLACK;
755a: 2300 movs r3, #0
755c: 81a3 strh r3, [r4, #12]
dsc->opa = LV_OPA_COVER;
755e: 23ff movs r3, #255 ; 0xff
7560: 7023 strb r3, [r4, #0]
dsc->zoom = LV_IMG_ZOOM_NONE;
7562: f44f 7380 mov.w r3, #256 ; 0x100
7566: 8123 strh r3, [r4, #8]
dsc->antialias = LV_ANTIALIAS;
7568: 7be3 ldrb r3, [r4, #15]
756a: f043 0301 orr.w r3, r3, #1
756e: 73e3 strb r3, [r4, #15]
}
7570: bd10 pop {r4, pc}
7572: bf00 nop
7574: 0000f061 .word 0x0000f061
00007578 <lv_img_cf_get_px_size>:
switch(cf) {
7578: 3804 subs r0, #4
757a: b2c0 uxtb r0, r0
757c: 280a cmp r0, #10
757e: bf9d ittte ls
7580: 4b02 ldrls r3, [pc, #8] ; (758c <lv_img_cf_get_px_size+0x14>)
7582: 18c0 addls r0, r0, r3
7584: 7880 ldrbls r0, [r0, #2]
{
7586: 2000 movhi r0, #0
}
7588: 4770 bx lr
758a: bf00 nop
758c: 0001fae0 .word 0x0001fae0
00007590 <lv_img_cf_is_chroma_keyed>:
switch(cf) {
7590: 2803 cmp r0, #3
7592: d005 beq.n 75a0 <lv_img_cf_is_chroma_keyed+0x10>
7594: 3806 subs r0, #6
7596: 2804 cmp r0, #4
7598: bf8c ite hi
759a: 2000 movhi r0, #0
759c: 2001 movls r0, #1
759e: 4770 bx lr
is_chroma_keyed = true;
75a0: 2001 movs r0, #1
}
75a2: 4770 bx lr
000075a4 <lv_img_cf_has_alpha>:
switch(cf) {
75a4: 280e cmp r0, #14
75a6: d809 bhi.n 75bc <lv_img_cf_has_alpha+0x18>
75a8: 2301 movs r3, #1
75aa: fa03 f000 lsl.w r0, r3, r0
75ae: f647 73a4 movw r3, #32676 ; 0x7fa4
75b2: 4218 tst r0, r3
75b4: bf14 ite ne
75b6: 2001 movne r0, #1
75b8: 2000 moveq r0, #0
75ba: 4770 bx lr
{
75bc: 2000 movs r0, #0
}
75be: 4770 bx lr
000075c0 <lv_draw_img>:
{
75c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
75c4: ed2d 8b02 vpush {d8}
75c8: 4604 mov r4, r0
75ca: b08d sub sp, #52 ; 0x34
75cc: 4688 mov r8, r1
75ce: 461f mov r7, r3
if(src == NULL) {
75d0: 4610 mov r0, r2
75d2: b94a cbnz r2, 75e8 <lv_draw_img+0x28>
LV_LOG_WARN("Image draw: src is NULL");
75d4: 4b79 ldr r3, [pc, #484] ; (77bc <lv_draw_img+0x1fc>)
75d6: 9300 str r3, [sp, #0]
75d8: 4b79 ldr r3, [pc, #484] ; (77c0 <lv_draw_img+0x200>)
75da: 224d movs r2, #77 ; 0x4d
LV_LOG_WARN("Image draw error");
75dc: 4979 ldr r1, [pc, #484] ; (77c4 <lv_draw_img+0x204>)
75de: 4d7a ldr r5, [pc, #488] ; (77c8 <lv_draw_img+0x208>)
75e0: 2002 movs r0, #2
75e2: 47a8 blx r5
show_error(coords, mask, "No\ndata");
75e4: 4a79 ldr r2, [pc, #484] ; (77cc <lv_draw_img+0x20c>)
75e6: e014 b.n 7612 <lv_draw_img+0x52>
if(dsc->opa <= LV_OPA_MIN) return;
75e8: 781b ldrb r3, [r3, #0]
75ea: 2b05 cmp r3, #5
75ec: d96a bls.n 76c4 <lv_draw_img+0x104>
lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor);
75ee: 89b9 ldrh r1, [r7, #12]
75f0: 4b77 ldr r3, [pc, #476] ; (77d0 <lv_draw_img+0x210>)
75f2: 4798 blx r3
if(cdsc == NULL) return LV_RES_INV;
75f4: 4605 mov r5, r0
75f6: 2800 cmp r0, #0
75f8: f000 80bf beq.w 777a <lv_draw_img+0x1ba>
if(cdsc->dec_dsc.error_msg != NULL) {
75fc: 6983 ldr r3, [r0, #24]
75fe: b18b cbz r3, 7624 <lv_draw_img+0x64>
LV_LOG_WARN("Image draw error");
7600: 4b74 ldr r3, [pc, #464] ; (77d4 <lv_draw_img+0x214>)
7602: 9300 str r3, [sp, #0]
7604: 22f7 movs r2, #247 ; 0xf7
7606: 4b74 ldr r3, [pc, #464] ; (77d8 <lv_draw_img+0x218>)
7608: 496e ldr r1, [pc, #440] ; (77c4 <lv_draw_img+0x204>)
760a: 4e6f ldr r6, [pc, #444] ; (77c8 <lv_draw_img+0x208>)
760c: 2002 movs r0, #2
760e: 47b0 blx r6
show_error(coords, clip_area, cdsc->dec_dsc.error_msg);
7610: 69aa ldr r2, [r5, #24]
show_error(coords, mask, "No\ndata");
7612: 4b72 ldr r3, [pc, #456] ; (77dc <lv_draw_img+0x21c>)
7614: 4641 mov r1, r8
7616: 4620 mov r0, r4
}
7618: b00d add sp, #52 ; 0x34
761a: ecbd 8b02 vpop {d8}
761e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
show_error(coords, mask, "No\ndata");
7622: 4718 bx r3
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
7624: 7b03 ldrb r3, [r0, #12]
7626: 4a6e ldr r2, [pc, #440] ; (77e0 <lv_draw_img+0x220>)
7628: f8df b1dc ldr.w fp, [pc, #476] ; 7808 <lv_draw_img+0x248>
762c: f003 031f and.w r3, r3, #31
7630: 4618 mov r0, r3
7632: 4790 blx r2
7634: 9003 str r0, [sp, #12]
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
7636: 4618 mov r0, r3
7638: 4b6a ldr r3, [pc, #424] ; (77e4 <lv_draw_img+0x224>)
763a: 4798 blx r3
else if(cdsc->dec_dsc.img_data) {
763c: 692b ldr r3, [r5, #16]
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
763e: 9004 str r0, [sp, #16]
else if(cdsc->dec_dsc.img_data) {
7640: 2b00 cmp r3, #0
7642: d044 beq.n 76ce <lv_draw_img+0x10e>
lv_area_copy(&map_area_rot, coords);
7644: 4b68 ldr r3, [pc, #416] ; (77e8 <lv_draw_img+0x228>)
7646: a808 add r0, sp, #32
7648: 4621 mov r1, r4
764a: 4798 blx r3
if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) {
764c: 887b ldrh r3, [r7, #2]
764e: 8938 ldrh r0, [r7, #8]
7650: b913 cbnz r3, 7658 <lv_draw_img+0x98>
7652: f5b0 7f80 cmp.w r0, #256 ; 0x100
7656: d026 beq.n 76a6 <lv_draw_img+0xe6>
7658: 88e2 ldrh r2, [r4, #6]
765a: 8861 ldrh r1, [r4, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
765c: 8826 ldrh r6, [r4, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
765e: 3201 adds r2, #1
7660: 1a52 subs r2, r2, r1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
7662: 88a1 ldrh r1, [r4, #4]
7664: 3101 adds r1, #1
7666: 1b89 subs r1, r1, r6
_lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot);
7668: 1d3e adds r6, r7, #4
766a: e9cd 0600 strd r0, r6, [sp]
766e: b21b sxth r3, r3
7670: b212 sxth r2, r2
7672: b209 sxth r1, r1
7674: 4e5d ldr r6, [pc, #372] ; (77ec <lv_draw_img+0x22c>)
7676: a808 add r0, sp, #32
7678: 47b0 blx r6
map_area_rot.x1 += coords->x1;
767a: 8822 ldrh r2, [r4, #0]
767c: f8bd 3020 ldrh.w r3, [sp, #32]
map_area_rot.y1 += coords->y1;
7680: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
map_area_rot.x1 += coords->x1;
7684: 4413 add r3, r2
7686: f8ad 3020 strh.w r3, [sp, #32]
map_area_rot.y1 += coords->y1;
768a: 8863 ldrh r3, [r4, #2]
768c: 4419 add r1, r3
768e: f8ad 1022 strh.w r1, [sp, #34] ; 0x22
map_area_rot.x2 += coords->x1;
7692: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24
7696: 440a add r2, r1
7698: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
map_area_rot.y2 += coords->y1;
769c: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
76a0: 4413 add r3, r2
76a2: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot);
76a6: aa08 add r2, sp, #32
76a8: 4641 mov r1, r8
76aa: a80a add r0, sp, #40 ; 0x28
76ac: 47d8 blx fp
if(union_ok == false) {
76ae: b148 cbz r0, 76c4 <lv_draw_img+0x104>
lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte);
76b0: 9b04 ldr r3, [sp, #16]
76b2: 9301 str r3, [sp, #4]
76b4: 9b03 ldr r3, [sp, #12]
76b6: 9300 str r3, [sp, #0]
76b8: 4620 mov r0, r4
76ba: 692a ldr r2, [r5, #16]
76bc: 4c4c ldr r4, [pc, #304] ; (77f0 <lv_draw_img+0x230>)
76be: 463b mov r3, r7
76c0: a90a add r1, sp, #40 ; 0x28
76c2: 47a0 blx r4
}
76c4: b00d add sp, #52 ; 0x34
76c6: ecbd 8b02 vpop {d8}
76ca: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
union_ok = _lv_area_intersect(&mask_com, clip_area, coords);
76ce: 4622 mov r2, r4
76d0: 4641 mov r1, r8
76d2: a806 add r0, sp, #24
76d4: 47d8 blx fp
if(union_ok == false) {
76d6: 2800 cmp r0, #0
76d8: d0f4 beq.n 76c4 <lv_draw_img+0x104>
76da: f8bd 601c ldrh.w r6, [sp, #28]
76de: f8bd 3018 ldrh.w r3, [sp, #24]
76e2: 3601 adds r6, #1
76e4: 1af6 subs r6, r6, r3
76e6: b236 sxth r6, r6
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
76e8: 4b42 ldr r3, [pc, #264] ; (77f4 <lv_draw_img+0x234>)
76ea: eb06 0046 add.w r0, r6, r6, lsl #1
76ee: 4798 blx r3
lv_area_copy(&line, &mask_com);
76f0: 4b3d ldr r3, [pc, #244] ; (77e8 <lv_draw_img+0x228>)
76f2: a906 add r1, sp, #24
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
76f4: 4681 mov r9, r0
lv_area_copy(&line, &mask_com);
76f6: a808 add r0, sp, #32
76f8: 4798 blx r3
lv_area_set_height(&line, 1);
76fa: 4b3f ldr r3, [pc, #252] ; (77f8 <lv_draw_img+0x238>)
76fc: 2101 movs r1, #1
76fe: a808 add r0, sp, #32
7700: 4798 blx r3
int32_t x = mask_com.x1 - coords->x1;
7702: f9bd 3018 ldrsh.w r3, [sp, #24]
7706: f9b4 2000 ldrsh.w r2, [r4]
int32_t y = mask_com.y1 - coords->y1;
770a: f9bd a01a ldrsh.w sl, [sp, #26]
770e: f9b4 1002 ldrsh.w r1, [r4, #2]
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
7712: f8cd b014 str.w fp, [sp, #20]
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
7716: 1a9b subs r3, r3, r2
7718: b21b sxth r3, r3
int32_t y = mask_com.y1 - coords->y1;
771a: ebaa 0101 sub.w r1, sl, r1
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
771e: ee08 3a10 vmov s16, r3
int32_t y = mask_com.y1 - coords->y1;
7722: 9102 str r1, [sp, #8]
for(row = mask_com.y1; row <= mask_com.y2; row++) {
7724: f9bd 301e ldrsh.w r3, [sp, #30]
7728: 459a cmp sl, r3
772a: dd03 ble.n 7734 <lv_draw_img+0x174>
_lv_mem_buf_release(buf);
772c: 4b33 ldr r3, [pc, #204] ; (77fc <lv_draw_img+0x23c>)
772e: 4648 mov r0, r9
7730: 4798 blx r3
if(res == LV_RES_INV) {
7732: e7c7 b.n 76c4 <lv_draw_img+0x104>
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
7734: 9b05 ldr r3, [sp, #20]
7736: aa08 add r2, sp, #32
7738: 4641 mov r1, r8
773a: a80a add r0, sp, #40 ; 0x28
773c: 4798 blx r3
if(union_ok == false) continue;
773e: 2800 cmp r0, #0
7740: d038 beq.n 77b4 <lv_draw_img+0x1f4>
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
7742: f9bd 2008 ldrsh.w r2, [sp, #8]
7746: f8df b0c4 ldr.w fp, [pc, #196] ; 780c <lv_draw_img+0x24c>
774a: f8cd 9000 str.w r9, [sp]
774e: ee18 1a10 vmov r1, s16
7752: 4633 mov r3, r6
7754: 4628 mov r0, r5
7756: 47d8 blx fp
if(read_res != LV_RES_OK) {
7758: 2801 cmp r0, #1
775a: d013 beq.n 7784 <lv_draw_img+0x1c4>
lv_img_decoder_close(&cdsc->dec_dsc);
775c: 4628 mov r0, r5
775e: 4b28 ldr r3, [pc, #160] ; (7800 <lv_draw_img+0x240>)
LV_LOG_WARN("Image draw can't read the line");
7760: 4d19 ldr r5, [pc, #100] ; (77c8 <lv_draw_img+0x208>)
lv_img_decoder_close(&cdsc->dec_dsc);
7762: 4798 blx r3
LV_LOG_WARN("Image draw can't read the line");
7764: 4b27 ldr r3, [pc, #156] ; (7804 <lv_draw_img+0x244>)
7766: 9300 str r3, [sp, #0]
7768: 2002 movs r0, #2
776a: 4b1b ldr r3, [pc, #108] ; (77d8 <lv_draw_img+0x218>)
776c: 4915 ldr r1, [pc, #84] ; (77c4 <lv_draw_img+0x204>)
776e: f44f 729a mov.w r2, #308 ; 0x134
7772: 47a8 blx r5
_lv_mem_buf_release(buf);
7774: 4b21 ldr r3, [pc, #132] ; (77fc <lv_draw_img+0x23c>)
7776: 4648 mov r0, r9
7778: 4798 blx r3
LV_LOG_WARN("Image draw error");
777a: 4b16 ldr r3, [pc, #88] ; (77d4 <lv_draw_img+0x214>)
777c: 9300 str r3, [sp, #0]
777e: 2258 movs r2, #88 ; 0x58
7780: 4b0f ldr r3, [pc, #60] ; (77c0 <lv_draw_img+0x200>)
7782: e72b b.n 75dc <lv_draw_img+0x1c>
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
7784: 9b04 ldr r3, [sp, #16]
7786: 9301 str r3, [sp, #4]
7788: 9b03 ldr r3, [sp, #12]
778a: 9300 str r3, [sp, #0]
778c: f8df b060 ldr.w fp, [pc, #96] ; 77f0 <lv_draw_img+0x230>
7790: 463b mov r3, r7
7792: 464a mov r2, r9
7794: a90a add r1, sp, #40 ; 0x28
7796: a808 add r0, sp, #32
7798: 47d8 blx fp
line.y1++;
779a: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22
779e: 3301 adds r3, #1
77a0: f8ad 3022 strh.w r3, [sp, #34] ; 0x22
line.y2++;
77a4: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
77a8: 3301 adds r3, #1
77aa: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
y++;
77ae: 9b02 ldr r3, [sp, #8]
77b0: 3301 adds r3, #1
77b2: 9302 str r3, [sp, #8]
for(row = mask_com.y1; row <= mask_com.y2; row++) {
77b4: f10a 0a01 add.w sl, sl, #1
77b8: e7b4 b.n 7724 <lv_draw_img+0x164>
77ba: bf00 nop
77bc: 0001fa8f .word 0x0001fa8f
77c0: 0001faed .word 0x0001faed
77c4: 0001fa5b .word 0x0001fa5b
77c8: 0000e931 .word 0x0000e931
77cc: 0001faa7 .word 0x0001faa7
77d0: 0000c4ed .word 0x0000c4ed
77d4: 0001faaf .word 0x0001faaf
77d8: 0001faf9 .word 0x0001faf9
77dc: 00006d8d .word 0x00006d8d
77e0: 00007591 .word 0x00007591
77e4: 000075a5 .word 0x000075a5
77e8: 00006ddd .word 0x00006ddd
77ec: 0000c0a5 .word 0x0000c0a5
77f0: 00006df1 .word 0x00006df1
77f4: 0000eefd .word 0x0000eefd
77f8: 0000deab .word 0x0000deab
77fc: 0000ebb1 .word 0x0000ebb1
7800: 0000d091 .word 0x0000d091
7804: 0001fac0 .word 0x0001fac0
7808: 0000ded1 .word 0x0000ded1
780c: 0000d071 .word 0x0000d071
00007810 <lv_img_src_get_type>:
if(src == NULL) return img_src_type;
7810: b150 cbz r0, 7828 <lv_img_src_get_type+0x18>
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
7812: 7803 ldrb r3, [r0, #0]
7814: f1a3 0220 sub.w r2, r3, #32
7818: 2a5f cmp r2, #95 ; 0x5f
781a: d907 bls.n 782c <lv_img_src_get_type+0x1c>
img_src_type = LV_IMG_SRC_SYMBOL; /*Symbols begins after 0x7F*/
781c: f013 0f80 tst.w r3, #128 ; 0x80
7820: bf0c ite eq
7822: 2000 moveq r0, #0
7824: 2002 movne r0, #2
7826: 4770 bx lr
if(src == NULL) return img_src_type;
7828: 2003 movs r0, #3
782a: 4770 bx lr
img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/
782c: 2001 movs r0, #1
}
782e: 4770 bx lr
00007830 <hex_char_to_num>:
*/
static uint8_t hex_char_to_num(char hex)
{
uint8_t result = 0;
if(hex >= '0' && hex <= '9') {
7830: f1a0 0330 sub.w r3, r0, #48 ; 0x30
7834: b2db uxtb r3, r3
7836: 2b09 cmp r3, #9
7838: d90a bls.n 7850 <hex_char_to_num+0x20>
result = hex - '0';
}
else {
if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/
783a: 2860 cmp r0, #96 ; 0x60
783c: bf84 itt hi
783e: 3820 subhi r0, #32
7840: b2c0 uxtbhi r0, r0
switch(hex) {
7842: f1a0 0341 sub.w r3, r0, #65 ; 0x41
7846: 2b05 cmp r3, #5
7848: bf9a itte ls
784a: 3837 subls r0, #55 ; 0x37
784c: b2c3 uxtbls r3, r0
{
784e: 2300 movhi r3, #0
break;
}
}
return result;
}
7850: 4618 mov r0, r3
7852: 4770 bx lr
00007854 <lv_draw_label_dsc_init>:
{
7854: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
7856: 4b09 ldr r3, [pc, #36] ; (787c <lv_draw_label_dsc_init+0x28>)
{
7858: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
785a: 211c movs r1, #28
785c: 4798 blx r3
dsc->opa = LV_OPA_COVER;
785e: 23ff movs r3, #255 ; 0xff
7860: 7223 strb r3, [r4, #8]
dsc->font = LV_THEME_DEFAULT_FONT_NORMAL;
7862: 4b07 ldr r3, [pc, #28] ; (7880 <lv_draw_label_dsc_init+0x2c>)
7864: 6063 str r3, [r4, #4]
dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL;
7866: f64f 73ff movw r3, #65535 ; 0xffff
786a: 81e3 strh r3, [r4, #14]
dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL;
786c: 8223 strh r3, [r4, #16]
dsc->color = LV_COLOR_BLACK;
786e: f44f 13f8 mov.w r3, #2031616 ; 0x1f0000
7872: 6023 str r3, [r4, #0]
dsc->bidi_dir = LV_BIDI_DIR_LTR;
7874: 2300 movs r3, #0
7876: 75a3 strb r3, [r4, #22]
}
7878: bd10 pop {r4, pc}
787a: bf00 nop
787c: 0000f061 .word 0x0000f061
7880: 20000010 .word 0x20000010
00007884 <lv_draw_label>:
{
7884: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
7888: ed2d 8b04 vpush {d8-d9}
788c: b0d1 sub sp, #324 ; 0x144
788e: 468a mov sl, r1
7890: 930a str r3, [sp, #40] ; 0x28
7892: 2300 movs r3, #0
7894: 9321 str r3, [sp, #132] ; 0x84
if(dsc->opa <= LV_OPA_MIN) return;
7896: 7a13 ldrb r3, [r2, #8]
{
7898: 9c5e ldr r4, [sp, #376] ; 0x178
789a: 9005 str r0, [sp, #20]
if(dsc->opa <= LV_OPA_MIN) return;
789c: 2b05 cmp r3, #5
{
789e: 4693 mov fp, r2
if(dsc->opa <= LV_OPA_MIN) return;
78a0: f240 80db bls.w 7a5a <lv_draw_label+0x1d6>
if(txt[0] == '\0') return;
78a4: 9b0a ldr r3, [sp, #40] ; 0x28
78a6: 781b ldrb r3, [r3, #0]
78a8: 2b00 cmp r3, #0
78aa: f000 80d6 beq.w 7a5a <lv_draw_label+0x1d6>
const lv_font_t * font = dsc->font;
78ae: 6853 ldr r3, [r2, #4]
bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask);
78b0: 460a mov r2, r1
const lv_font_t * font = dsc->font;
78b2: ee08 3a10 vmov s16, r3
bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask);
78b6: 4601 mov r1, r0
78b8: 4b9c ldr r3, [pc, #624] ; (7b2c <lv_draw_label+0x2a8>)
78ba: a831 add r0, sp, #196 ; 0xc4
78bc: 4798 blx r3
if(!clip_ok) return;
78be: 2800 cmp r0, #0
78c0: f000 80cb beq.w 7a5a <lv_draw_label+0x1d6>
if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) {
78c4: f89b 3017 ldrb.w r3, [fp, #23]
78c8: 079f lsls r7, r3, #30
78ca: f100 80cb bmi.w 7a64 <lv_draw_label+0x1e0>
78ce: 9b05 ldr r3, [sp, #20]
78d0: 9a05 ldr r2, [sp, #20]
78d2: 889b ldrh r3, [r3, #4]
78d4: 8812 ldrh r2, [r2, #0]
78d6: 3301 adds r3, #1
78d8: 1a9b subs r3, r3, r2
w = lv_area_get_width(coords);
78da: b21b sxth r3, r3
int32_t line_height_font = lv_font_get_line_height(font);
78dc: ee18 2a10 vmov r2, s16
78e0: f9b2 7008 ldrsh.w r7, [r2, #8]
pos.x = coords->x1;
78e4: 9a05 ldr r2, [sp, #20]
y_ofs = dsc->ofs_y;
78e6: f9bb 1014 ldrsh.w r1, [fp, #20]
pos.x = coords->x1;
78ea: f9b2 2000 ldrsh.w r2, [r2]
78ee: 920b str r2, [sp, #44] ; 0x2c
pos.y = coords->y1;
78f0: 9a05 ldr r2, [sp, #20]
int32_t line_height = line_height_font + dsc->line_space;
78f2: f9bb 500a ldrsh.w r5, [fp, #10]
pos.y = coords->y1;
78f6: f9b2 6002 ldrsh.w r6, [r2, #2]
x_ofs = dsc->ofs_x;
78fa: f9bb 2012 ldrsh.w r2, [fp, #18]
78fe: 9225 str r2, [sp, #148] ; 0x94
pos.y += y_ofs;
7900: 1872 adds r2, r6, r1
7902: b290 uxth r0, r2
7904: b212 sxth r2, r2
int32_t line_height = line_height_font + dsc->line_space;
7906: 443d add r5, r7
pos.y += y_ofs;
7908: 9206 str r2, [sp, #24]
if(hint && y_ofs == 0 && coords->y1 < 0) {
790a: 2c00 cmp r4, #0
790c: f000 80bc beq.w 7a88 <lv_draw_label+0x204>
7910: 2900 cmp r1, #0
7912: f040 80bd bne.w 7a90 <lv_draw_label+0x20c>
7916: 2e00 cmp r6, #0
7918: f280 80b8 bge.w 7a8c <lv_draw_label+0x208>
if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) {
791c: 68a2 ldr r2, [r4, #8]
791e: 1b92 subs r2, r2, r6
7920: 2a00 cmp r2, #0
7922: bfb8 it lt
7924: 4252 neglt r2, r2
7926: f5c5 7100 rsb r1, r5, #512 ; 0x200
792a: ebb2 0f41 cmp.w r2, r1, lsl #1
hint->line_start = -1;
792e: bfc4 itt gt
7930: f04f 32ff movgt.w r2, #4294967295 ; 0xffffffff
7934: 6022 strgt r2, [r4, #0]
last_line_start = hint->line_start;
7936: 6822 ldr r2, [r4, #0]
if(hint && last_line_start >= 0) {
7938: 2a00 cmp r2, #0
793a: f2c0 80a9 blt.w 7a90 <lv_draw_label+0x20c>
line_start = last_line_start;
793e: 9204 str r2, [sp, #16]
pos.y += hint->y;
7940: 6862 ldr r2, [r4, #4]
7942: 4402 add r2, r0
7944: b212 sxth r2, r2
7946: 9206 str r2, [sp, #24]
uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7948: b21b sxth r3, r3
794a: 9e04 ldr r6, [sp, #16]
794c: 980a ldr r0, [sp, #40] ; 0x28
794e: f9bb 200c ldrsh.w r2, [fp, #12]
7952: ee09 3a10 vmov s18, r3
7956: f89b 3017 ldrb.w r3, [fp, #23]
795a: 9300 str r3, [sp, #0]
795c: 4430 add r0, r6
795e: ee19 3a10 vmov r3, s18
7962: ee18 1a10 vmov r1, s16
7966: 4e72 ldr r6, [pc, #456] ; (7b30 <lv_draw_label+0x2ac>)
7968: 47b0 blx r6
796a: 9b04 ldr r3, [sp, #16]
796c: 18c3 adds r3, r0, r3
796e: 9307 str r3, [sp, #28]
while(pos.y + line_height_font < mask->y1) {
7970: 9a06 ldr r2, [sp, #24]
7972: f9ba 1002 ldrsh.w r1, [sl, #2]
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7976: f89b 3017 ldrb.w r3, [fp, #23]
while(pos.y + line_height_font < mask->y1) {
797a: 443a add r2, r7
797c: 428a cmp r2, r1
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
797e: 9a0a ldr r2, [sp, #40] ; 0x28
while(pos.y + line_height_font < mask->y1) {
7980: f2c0 8089 blt.w 7a96 <lv_draw_label+0x212>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7984: 9904 ldr r1, [sp, #16]
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7986: 075e lsls r6, r3, #29
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7988: eb02 0001 add.w r0, r2, r1
if(dsc->flag & LV_TXT_FLAG_CENTER) {
798c: f140 80ad bpl.w 7aea <lv_draw_label+0x266>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7990: 9a07 ldr r2, [sp, #28]
7992: 9300 str r3, [sp, #0]
7994: 1a51 subs r1, r2, r1
7996: f9bb 300c ldrsh.w r3, [fp, #12]
799a: 4c66 ldr r4, [pc, #408] ; (7b34 <lv_draw_label+0x2b0>)
799c: ee18 2a10 vmov r2, s16
79a0: b289 uxth r1, r1
79a2: 47a0 blx r4
79a4: 9b05 ldr r3, [sp, #20]
79a6: 9a05 ldr r2, [sp, #20]
79a8: 889b ldrh r3, [r3, #4]
79aa: 8812 ldrh r2, [r2, #0]
79ac: 3301 adds r3, #1
79ae: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
79b0: b21b sxth r3, r3
79b2: 1a18 subs r0, r3, r0
79b4: 9b0b ldr r3, [sp, #44] ; 0x2c
79b6: eb00 70d0 add.w r0, r0, r0, lsr #31
79ba: eb03 0060 add.w r0, r3, r0, asr #1
pos.x += lv_area_get_width(coords) - line_width;
79be: b203 sxth r3, r0
79c0: 930b str r3, [sp, #44] ; 0x2c
lv_opa_t opa = dsc->opa;
79c2: f89b 3008 ldrb.w r3, [fp, #8]
79c6: 9320 str r3, [sp, #128] ; 0x80
uint16_t sel_start = dsc->sel_start;
79c8: f8bb 300e ldrh.w r3, [fp, #14]
79cc: 9311 str r3, [sp, #68] ; 0x44
uint16_t sel_end = dsc->sel_end;
79ce: f8bb 3010 ldrh.w r3, [fp, #16]
79d2: 9312 str r3, [sp, #72] ; 0x48
if(sel_start > sel_end) {
79d4: e9dd 3211 ldrd r3, r2, [sp, #68] ; 0x44
79d8: 4293 cmp r3, r2
79da: bf88 it hi
79dc: e9cd 2311 strdhi r2, r3, [sp, #68] ; 0x44
if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) {
79e0: f89b 3018 ldrb.w r3, [fp, #24]
79e4: 0799 lsls r1, r3, #30
79e6: d01c beq.n 7a22 <lv_draw_label+0x19e>
lv_draw_line_dsc_init(&line_dsc);
79e8: 4b53 ldr r3, [pc, #332] ; (7b38 <lv_draw_label+0x2b4>)
79ea: a835 add r0, sp, #212 ; 0xd4
79ec: 4798 blx r3
line_dsc.color = dsc->color;
79ee: f8bb 3000 ldrh.w r3, [fp]
79f2: f8ad 30d4 strh.w r3, [sp, #212] ; 0xd4
line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/
79f6: f8db 3004 ldr.w r3, [fp, #4]
79fa: f9b3 3008 ldrsh.w r3, [r3, #8]
79fe: 220a movs r2, #10
7a00: 3305 adds r3, #5
7a02: fb93 f3f2 sdiv r3, r3, r2
7a06: f8ad 30d6 strh.w r3, [sp, #214] ; 0xd6
line_dsc.opa = dsc->opa;
7a0a: f89b 3008 ldrb.w r3, [fp, #8]
line_dsc.blend_mode = dsc->blend_mode;
7a0e: f89b 2019 ldrb.w r2, [fp, #25]
line_dsc.opa = dsc->opa;
7a12: f88d 30dc strb.w r3, [sp, #220] ; 0xdc
line_dsc.blend_mode = dsc->blend_mode;
7a16: f89d 30dd ldrb.w r3, [sp, #221] ; 0xdd
7a1a: f362 0301 bfi r3, r2, #0, #2
7a1e: f88d 30dd strb.w r3, [sp, #221] ; 0xdd
lv_draw_rect_dsc_init(&draw_dsc_sel);
7a22: 4b46 ldr r3, [pc, #280] ; (7b3c <lv_draw_label+0x2b8>)
7a24: a83b add r0, sp, #236 ; 0xec
7a26: 4798 blx r3
draw_dsc_sel.bg_color = dsc->sel_color;
7a28: f8bb 3002 ldrh.w r3, [fp, #2]
7a2c: f8ad 30ee strh.w r3, [sp, #238] ; 0xee
while(txt[line_start] != '\0') {
7a30: 9b20 ldr r3, [sp, #128] ; 0x80
7a32: 9c0b ldr r4, [sp, #44] ; 0x2c
7a34: 2bfa cmp r3, #250 ; 0xfa
7a36: bf88 it hi
7a38: 23ff movhi r3, #255 ; 0xff
7a3a: 9309 str r3, [sp, #36] ; 0x24
7a3c: b2ab uxth r3, r5
7a3e: 9322 str r3, [sp, #136] ; 0x88
7a40: f8bd 3018 ldrh.w r3, [sp, #24]
7a44: 931e str r3, [sp, #120] ; 0x78
uint16_t par_start = 0;
7a46: 2300 movs r3, #0
7a48: 931d str r3, [sp, #116] ; 0x74
while(txt[line_start] != '\0') {
7a4a: 9a04 ldr r2, [sp, #16]
7a4c: 9b0a ldr r3, [sp, #40] ; 0x28
7a4e: 4413 add r3, r2
7a50: 931c str r3, [sp, #112] ; 0x70
7a52: 9b0a ldr r3, [sp, #40] ; 0x28
7a54: 5c9b ldrb r3, [r3, r2]
7a56: 2b00 cmp r3, #0
7a58: d160 bne.n 7b1c <lv_draw_label+0x298>
}
7a5a: b051 add sp, #324 ; 0x144
7a5c: ecbd 8b04 vpop {d8-d9}
7a60: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
7a64: 9302 str r3, [sp, #8]
7a66: f647 4318 movw r3, #31768 ; 0x7c18
7a6a: 9301 str r3, [sp, #4]
7a6c: f9bb 300a ldrsh.w r3, [fp, #10]
7a70: 9300 str r3, [sp, #0]
7a72: f8db 2004 ldr.w r2, [fp, #4]
7a76: f9bb 300c ldrsh.w r3, [fp, #12]
7a7a: 990a ldr r1, [sp, #40] ; 0x28
7a7c: 4d30 ldr r5, [pc, #192] ; (7b40 <lv_draw_label+0x2bc>)
7a7e: a83b add r0, sp, #236 ; 0xec
7a80: 47a8 blx r5
w = p.x;
7a82: f9bd 30ec ldrsh.w r3, [sp, #236] ; 0xec
7a86: e729 b.n 78dc <lv_draw_label+0x58>
uint32_t line_start = 0;
7a88: 9404 str r4, [sp, #16]
7a8a: e75d b.n 7948 <lv_draw_label+0xc4>
7a8c: 9104 str r1, [sp, #16]
7a8e: e75b b.n 7948 <lv_draw_label+0xc4>
7a90: 2200 movs r2, #0
7a92: 9204 str r2, [sp, #16]
7a94: e758 b.n 7948 <lv_draw_label+0xc4>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7a96: 9907 ldr r1, [sp, #28]
7a98: 9300 str r3, [sp, #0]
7a9a: eb02 0801 add.w r8, r2, r1
7a9e: ee19 3a10 vmov r3, s18
7aa2: f9bb 200c ldrsh.w r2, [fp, #12]
7aa6: ee18 1a10 vmov r1, s16
7aaa: 4640 mov r0, r8
7aac: 47b0 blx r6
7aae: 9b07 ldr r3, [sp, #28]
7ab0: 4418 add r0, r3
pos.y += line_height;
7ab2: 9b06 ldr r3, [sp, #24]
7ab4: 442b add r3, r5
7ab6: b21b sxth r3, r3
7ab8: 9306 str r3, [sp, #24]
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
7aba: b174 cbz r4, 7ada <lv_draw_label+0x256>
7abc: f513 6f80 cmn.w r3, #1024 ; 0x400
7ac0: db0b blt.n 7ada <lv_draw_label+0x256>
7ac2: 6823 ldr r3, [r4, #0]
7ac4: 2b00 cmp r3, #0
7ac6: da08 bge.n 7ada <lv_draw_label+0x256>
hint->line_start = line_start;
7ac8: 9b07 ldr r3, [sp, #28]
7aca: 6023 str r3, [r4, #0]
hint->y = pos.y - coords->y1;
7acc: 9b05 ldr r3, [sp, #20]
7ace: 9a06 ldr r2, [sp, #24]
7ad0: f9b3 3002 ldrsh.w r3, [r3, #2]
7ad4: 1ad2 subs r2, r2, r3
hint->coord_y = coords->y1;
7ad6: e9c4 2301 strd r2, r3, [r4, #4]
if(txt[line_start] == '\0') return;
7ada: 9b07 ldr r3, [sp, #28]
7adc: 9304 str r3, [sp, #16]
7ade: f898 3000 ldrb.w r3, [r8]
7ae2: 2b00 cmp r3, #0
7ae4: d0b9 beq.n 7a5a <lv_draw_label+0x1d6>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7ae6: 9007 str r0, [sp, #28]
7ae8: e742 b.n 7970 <lv_draw_label+0xec>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
7aea: 071c lsls r4, r3, #28
7aec: f57f af69 bpl.w 79c2 <lv_draw_label+0x13e>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7af0: 9a07 ldr r2, [sp, #28]
7af2: 9904 ldr r1, [sp, #16]
7af4: 9300 str r3, [sp, #0]
7af6: 1a51 subs r1, r2, r1
7af8: f9bb 300c ldrsh.w r3, [fp, #12]
7afc: 4c0d ldr r4, [pc, #52] ; (7b34 <lv_draw_label+0x2b0>)
7afe: ee18 2a10 vmov r2, s16
7b02: b289 uxth r1, r1
7b04: 47a0 blx r4
7b06: 9b05 ldr r3, [sp, #20]
7b08: 9a05 ldr r2, [sp, #20]
7b0a: 889b ldrh r3, [r3, #4]
7b0c: 8812 ldrh r2, [r2, #0]
7b0e: 3301 adds r3, #1
7b10: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
7b12: b21b sxth r3, r3
7b14: 1a18 subs r0, r3, r0
7b16: 9b0b ldr r3, [sp, #44] ; 0x2c
7b18: 4418 add r0, r3
7b1a: e750 b.n 79be <lv_draw_label+0x13a>
pos.x += x_ofs;
7b1c: 9b25 ldr r3, [sp, #148] ; 0x94
7b1e: 441c add r4, r3
7b20: b223 sxth r3, r4
7b22: 930c str r3, [sp, #48] ; 0x30
i = 0;
7b24: 2300 movs r3, #0
7b26: 9330 str r3, [sp, #192] ; 0xc0
cmd_state = CMD_STATE_WAIT;
7b28: 9308 str r3, [sp, #32]
7b2a: e0bf b.n 7cac <lv_draw_label+0x428>
7b2c: 0000ded1 .word 0x0000ded1
7b30: 00010025 .word 0x00010025
7b34: 0000ff7d .word 0x0000ff7d
7b38: 000085fd .word 0x000085fd
7b3c: 00009bb5 .word 0x00009bb5
7b40: 000101fd .word 0x000101fd
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7b44: 9a11 ldr r2, [sp, #68] ; 0x44
7b46: f64f 73ff movw r3, #65535 ; 0xffff
7b4a: 429a cmp r2, r3
7b4c: d024 beq.n 7b98 <lv_draw_label+0x314>
7b4e: 9a12 ldr r2, [sp, #72] ; 0x48
7b50: 429a cmp r2, r3
7b52: d021 beq.n 7b98 <lv_draw_label+0x314>
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
7b54: 9a04 ldr r2, [sp, #16]
7b56: 4ba1 ldr r3, [pc, #644] ; (7ddc <lv_draw_label+0x558>)
7b58: 980a ldr r0, [sp, #40] ; 0x28
7b5a: 681b ldr r3, [r3, #0]
7b5c: 4411 add r1, r2
7b5e: 4798 blx r3
7b60: b286 uxth r6, r0
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
7b62: 4c9f ldr r4, [pc, #636] ; (7de0 <lv_draw_label+0x55c>)
7b64: 981c ldr r0, [sp, #112] ; 0x70
7b66: 6823 ldr r3, [r4, #0]
7b68: a930 add r1, sp, #192 ; 0xc0
7b6a: 4798 blx r3
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7b6c: 9a1c ldr r2, [sp, #112] ; 0x70
7b6e: 6823 ldr r3, [r4, #0]
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
7b70: 4605 mov r5, r0
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7b72: 9830 ldr r0, [sp, #192] ; 0xc0
7b74: 2100 movs r1, #0
7b76: 4410 add r0, r2
7b78: 4798 blx r3
7b7a: f89b 3017 ldrb.w r3, [fp, #23]
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
7b7e: f013 0301 ands.w r3, r3, #1
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7b82: 4602 mov r2, r0
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
7b84: f000 8122 beq.w 7dcc <lv_draw_label+0x548>
if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) {
7b88: 2d23 cmp r5, #35 ; 0x23
7b8a: d10f bne.n 7bac <lv_draw_label+0x328>
if(cmd_state == CMD_STATE_WAIT) { /*Start char*/
7b8c: 9908 ldr r1, [sp, #32]
7b8e: b929 cbnz r1, 7b9c <lv_draw_label+0x318>
par_start = i;
7b90: f8bd 20c0 ldrh.w r2, [sp, #192] ; 0xc0
7b94: 921d str r2, [sp, #116] ; 0x74
continue;
7b96: e7c7 b.n 7b28 <lv_draw_label+0x2a4>
uint16_t logical_char_pos = 0;
7b98: 2600 movs r6, #0
7b9a: e7e2 b.n 7b62 <lv_draw_label+0x2de>
else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */
7b9c: 9b08 ldr r3, [sp, #32]
7b9e: 2b01 cmp r3, #1
7ba0: d045 beq.n 7c2e <lv_draw_label+0x3aa>
else if(cmd_state == CMD_STATE_IN) { /*Command end */
7ba2: 2b02 cmp r3, #2
7ba4: f040 8112 bne.w 7dcc <lv_draw_label+0x548>
cmd_state = CMD_STATE_WAIT;
7ba8: 2300 movs r3, #0
7baa: e7bd b.n 7b28 <lv_draw_label+0x2a4>
if(cmd_state == CMD_STATE_PAR) {
7bac: 9b08 ldr r3, [sp, #32]
7bae: 2b01 cmp r3, #1
7bb0: f040 810c bne.w 7dcc <lv_draw_label+0x548>
if(letter == ' ') {
7bb4: 2d20 cmp r5, #32
7bb6: d179 bne.n 7cac <lv_draw_label+0x428>
if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) {
7bb8: 9b30 ldr r3, [sp, #192] ; 0xc0
7bba: 9a1d ldr r2, [sp, #116] ; 0x74
7bbc: 1a9b subs r3, r3, r2
7bbe: 2b07 cmp r3, #7
7bc0: d132 bne.n 7c28 <lv_draw_label+0x3a4>
_lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH);
7bc2: 9b1c ldr r3, [sp, #112] ; 0x70
7bc4: 991d ldr r1, [sp, #116] ; 0x74
7bc6: 189a adds r2, r3, r2
7bc8: 5858 ldr r0, [r3, r1]
7bca: 8893 ldrh r3, [r2, #4]
7bcc: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4
r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]);
7bd0: 4a84 ldr r2, [pc, #528] ; (7de4 <lv_draw_label+0x560>)
7bd2: 9038 str r0, [sp, #224] ; 0xe0
7bd4: f3c0 4507 ubfx r5, r0, #16, #8
7bd8: f3c0 6407 ubfx r4, r0, #24, #8
7bdc: f3c0 2607 ubfx r6, r0, #8, #8
7be0: b2c0 uxtb r0, r0
7be2: 4790 blx r2
7be4: 4601 mov r1, r0
7be6: b2f0 uxtb r0, r6
7be8: 4790 blx r2
7bea: eb00 1101 add.w r1, r0, r1, lsl #4
g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]);
7bee: b2e8 uxtb r0, r5
7bf0: 4790 blx r2
7bf2: 4605 mov r5, r0
7bf4: b2e0 uxtb r0, r4
7bf6: 4790 blx r2
7bf8: eb00 1405 add.w r4, r0, r5, lsl #4
b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]);
7bfc: f89d 00e4 ldrb.w r0, [sp, #228] ; 0xe4
7c00: 4790 blx r2
7c02: 4605 mov r5, r0
7c04: f89d 00e5 ldrb.w r0, [sp, #229] ; 0xe5
7c08: 4790 blx r2
7c0a: eb00 1005 add.w r0, r0, r5, lsl #4
7c0e: f3c0 00c4 ubfx r0, r0, #3, #5
7c12: f3c4 0485 ubfx r4, r4, #2, #6
7c16: ea40 1444 orr.w r4, r0, r4, lsl #5
7c1a: f3c1 01c4 ubfx r1, r1, #3, #5
7c1e: ea44 23c1 orr.w r3, r4, r1, lsl #11
recolor.full = dsc->color.full;
7c22: 9321 str r3, [sp, #132] ; 0x84
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
7c24: 2302 movs r3, #2
7c26: e77f b.n 7b28 <lv_draw_label+0x2a4>
recolor.full = dsc->color.full;
7c28: f8bb 3000 ldrh.w r3, [fp]
7c2c: e7f9 b.n 7c22 <lv_draw_label+0x39e>
cmd_state = CMD_STATE_WAIT;
7c2e: 2300 movs r3, #0
lv_color_t color = dsc->color;
7c30: f8bb 4000 ldrh.w r4, [fp]
cmd_state = CMD_STATE_WAIT;
7c34: 9308 str r3, [sp, #32]
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
7c36: 4b6c ldr r3, [pc, #432] ; (7de8 <lv_draw_label+0x564>)
7c38: ee18 0a10 vmov r0, s16
7c3c: 4629 mov r1, r5
7c3e: 4798 blx r3
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7c40: 9a11 ldr r2, [sp, #68] ; 0x44
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
7c42: 901f str r0, [sp, #124] ; 0x7c
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7c44: f64f 73ff movw r3, #65535 ; 0xffff
7c48: 429a cmp r2, r3
7c4a: d020 beq.n 7c8e <lv_draw_label+0x40a>
7c4c: 9a12 ldr r2, [sp, #72] ; 0x48
7c4e: 429a cmp r2, r3
7c50: d01d beq.n 7c8e <lv_draw_label+0x40a>
if(logical_char_pos >= sel_start && logical_char_pos < sel_end) {
7c52: 9b11 ldr r3, [sp, #68] ; 0x44
7c54: 42b3 cmp r3, r6
7c56: d81a bhi.n 7c8e <lv_draw_label+0x40a>
7c58: 42b2 cmp r2, r6
7c5a: d918 bls.n 7c8e <lv_draw_label+0x40a>
sel_coords.x1 = pos.x;
7c5c: 9b0c ldr r3, [sp, #48] ; 0x30
7c5e: f8ad 30e0 strh.w r3, [sp, #224] ; 0xe0
sel_coords.y1 = pos.y;
7c62: 9b06 ldr r3, [sp, #24]
7c64: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1;
7c68: f8bb 300c ldrh.w r3, [fp, #12]
7c6c: 9a0c ldr r2, [sp, #48] ; 0x30
7c6e: 3b01 subs r3, #1
7c70: 4413 add r3, r2
7c72: 4403 add r3, r0
7c74: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4
sel_coords.y2 = pos.y + line_height - 1;
7c78: 9b22 ldr r3, [sp, #136] ; 0x88
7c7a: 9a06 ldr r2, [sp, #24]
7c7c: 3b01 subs r3, #1
7c7e: 4413 add r3, r2
7c80: f8ad 30e6 strh.w r3, [sp, #230] ; 0xe6
lv_draw_rect(&sel_coords, mask, &draw_dsc_sel);
7c84: aa3b add r2, sp, #236 ; 0xec
7c86: 4b59 ldr r3, [pc, #356] ; (7dec <lv_draw_label+0x568>)
7c88: 4651 mov r1, sl
7c8a: a838 add r0, sp, #224 ; 0xe0
7c8c: 4798 blx r3
if(opa < LV_OPA_MIN) return;
7c8e: 9b20 ldr r3, [sp, #128] ; 0x80
7c90: 2b04 cmp r3, #4
7c92: f200 848a bhi.w 85aa <lv_draw_label+0xd26>
if(letter_w > 0) {
7c96: 9b1f ldr r3, [sp, #124] ; 0x7c
7c98: b143 cbz r3, 7cac <lv_draw_label+0x428>
pos.x += letter_w + dsc->letter_space;
7c9a: f8bb 400c ldrh.w r4, [fp, #12]
7c9e: 9b0c ldr r3, [sp, #48] ; 0x30
7ca0: 4423 add r3, r4
7ca2: 461c mov r4, r3
7ca4: 9b1f ldr r3, [sp, #124] ; 0x7c
7ca6: 4423 add r3, r4
7ca8: b21b sxth r3, r3
7caa: 930c str r3, [sp, #48] ; 0x30
while(i < line_end - line_start) {
7cac: 9b07 ldr r3, [sp, #28]
7cae: 9a04 ldr r2, [sp, #16]
7cb0: 9930 ldr r1, [sp, #192] ; 0xc0
7cb2: 1a9b subs r3, r3, r2
7cb4: 428b cmp r3, r1
7cb6: f63f af45 bhi.w 7b44 <lv_draw_label+0x2c0>
if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) {
7cba: f89b 3018 ldrb.w r3, [fp, #24]
7cbe: 079d lsls r5, r3, #30
7cc0: d51f bpl.n 7d02 <lv_draw_label+0x47e>
p1.x = pos_x_start;
7cc2: 9b0b ldr r3, [sp, #44] ; 0x2c
7cc4: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7cc8: f8db 3004 ldr.w r3, [fp, #4]
7ccc: f9bd 20d6 ldrsh.w r2, [sp, #214] ; 0xd6
7cd0: f9b3 3008 ldrsh.w r3, [r3, #8]
lv_draw_line(&p1, &p2, mask, &line_dsc);
7cd4: 4c46 ldr r4, [pc, #280] ; (7df0 <lv_draw_label+0x56c>)
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7cd6: eb02 72d2 add.w r2, r2, r2, lsr #31
7cda: eb03 71d3 add.w r1, r3, r3, lsr #31
7cde: 1053 asrs r3, r2, #1
7ce0: 9a1e ldr r2, [sp, #120] ; 0x78
7ce2: eb03 0361 add.w r3, r3, r1, asr #1
7ce6: 4413 add r3, r2
7ce8: b21b sxth r3, r3
p2.x = pos.x;
7cea: 9a0c ldr r2, [sp, #48] ; 0x30
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7cec: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
p2.x = pos.x;
7cf0: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0
p2.y = p1.y;
7cf4: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
lv_draw_line(&p1, &p2, mask, &line_dsc);
7cf8: 4652 mov r2, sl
7cfa: ab35 add r3, sp, #212 ; 0xd4
7cfc: a938 add r1, sp, #224 ; 0xe0
7cfe: a833 add r0, sp, #204 ; 0xcc
7d00: 47a0 blx r4
if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) {
7d02: f89b 3018 ldrb.w r3, [fp, #24]
7d06: 07dc lsls r4, r3, #31
7d08: d51e bpl.n 7d48 <lv_draw_label+0x4c4>
p1.x = pos_x_start;
7d0a: 9b0b ldr r3, [sp, #44] ; 0x2c
7d0c: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7d10: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6
7d14: f8db 2004 ldr.w r2, [fp, #4]
lv_draw_line(&p1, &p2, mask, &line_dsc);
7d18: 4c35 ldr r4, [pc, #212] ; (7df0 <lv_draw_label+0x56c>)
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7d1a: 8911 ldrh r1, [r2, #8]
7d1c: 8952 ldrh r2, [r2, #10]
7d1e: eb03 73d3 add.w r3, r3, r3, lsr #31
7d22: 105b asrs r3, r3, #1
7d24: 3301 adds r3, #1
7d26: 440b add r3, r1
7d28: 1a9b subs r3, r3, r2
7d2a: 9a1e ldr r2, [sp, #120] ; 0x78
7d2c: 4413 add r3, r2
7d2e: b21b sxth r3, r3
p2.x = pos.x;
7d30: 9a0c ldr r2, [sp, #48] ; 0x30
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7d32: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
p2.x = pos.x;
7d36: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0
p2.y = p1.y;
7d3a: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
lv_draw_line(&p1, &p2, mask, &line_dsc);
7d3e: 4652 mov r2, sl
7d40: ab35 add r3, sp, #212 ; 0xd4
7d42: a938 add r1, sp, #224 ; 0xe0
7d44: a833 add r0, sp, #204 ; 0xcc
7d46: 47a0 blx r4
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7d48: 9b0a ldr r3, [sp, #40] ; 0x28
7d4a: 9a07 ldr r2, [sp, #28]
7d4c: 4c29 ldr r4, [pc, #164] ; (7df4 <lv_draw_label+0x570>)
7d4e: 189e adds r6, r3, r2
7d50: f89b 3017 ldrb.w r3, [fp, #23]
7d54: 9300 str r3, [sp, #0]
7d56: ee18 1a10 vmov r1, s16
7d5a: ee19 3a10 vmov r3, s18
7d5e: f9bb 200c ldrsh.w r2, [fp, #12]
7d62: 4630 mov r0, r6
7d64: 47a0 blx r4
7d66: 9b07 ldr r3, [sp, #28]
7d68: 18c5 adds r5, r0, r3
pos.x = coords->x1;
7d6a: 9b05 ldr r3, [sp, #20]
7d6c: f9b3 4000 ldrsh.w r4, [r3]
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7d70: f89b 3017 ldrb.w r3, [fp, #23]
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7d74: 4601 mov r1, r0
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7d76: 0758 lsls r0, r3, #29
7d78: f140 8401 bpl.w 857e <lv_draw_label+0xcfa>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7d7c: ee18 2a10 vmov r2, s16
7d80: 9300 str r3, [sp, #0]
7d82: 4630 mov r0, r6
7d84: f9bb 300c ldrsh.w r3, [fp, #12]
7d88: 4e1b ldr r6, [pc, #108] ; (7df8 <lv_draw_label+0x574>)
7d8a: 47b0 blx r6
7d8c: 9b05 ldr r3, [sp, #20]
7d8e: 9a05 ldr r2, [sp, #20]
7d90: 889b ldrh r3, [r3, #4]
7d92: 8812 ldrh r2, [r2, #0]
7d94: 3301 adds r3, #1
7d96: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
7d98: b21b sxth r3, r3
7d9a: 1a18 subs r0, r3, r0
7d9c: eb00 70d0 add.w r0, r0, r0, lsr #31
7da0: eb04 0460 add.w r4, r4, r0, asr #1
pos.x += lv_area_get_width(coords) - line_width;
7da4: b224 sxth r4, r4
pos.y += line_height;
7da6: 9a22 ldr r2, [sp, #136] ; 0x88
7da8: 9b06 ldr r3, [sp, #24]
7daa: 4413 add r3, r2
7dac: b21b sxth r3, r3
7dae: 9306 str r3, [sp, #24]
if(pos.y > mask->y2) return;
7db0: 9b1e ldr r3, [sp, #120] ; 0x78
7db2: 4413 add r3, r2
7db4: b29b uxth r3, r3
7db6: 931e str r3, [sp, #120] ; 0x78
line_start = line_end;
7db8: 9b07 ldr r3, [sp, #28]
if(pos.y > mask->y2) return;
7dba: 9a06 ldr r2, [sp, #24]
line_start = line_end;
7dbc: 9304 str r3, [sp, #16]
if(pos.y > mask->y2) return;
7dbe: f9ba 3006 ldrsh.w r3, [sl, #6]
7dc2: 4293 cmp r3, r2
7dc4: f6ff ae49 blt.w 7a5a <lv_draw_label+0x1d6>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7dc8: 9507 str r5, [sp, #28]
7dca: e63e b.n 7a4a <lv_draw_label+0x1c6>
lv_color_t color = dsc->color;
7dcc: f8bb 4000 ldrh.w r4, [fp]
if(cmd_state == CMD_STATE_IN) color = recolor;
7dd0: 9b21 ldr r3, [sp, #132] ; 0x84
7dd2: 9908 ldr r1, [sp, #32]
7dd4: 2902 cmp r1, #2
7dd6: bf08 it eq
7dd8: 461c moveq r4, r3
7dda: e72c b.n 7c36 <lv_draw_label+0x3b2>
7ddc: 20000064 .word 0x20000064
7de0: 20000058 .word 0x20000058
7de4: 00007831 .word 0x00007831
7de8: 0000d1b9 .word 0x0000d1b9
7dec: 00009c01 .word 0x00009c01
7df0: 00008619 .word 0x00008619
7df4: 00010025 .word 0x00010025
7df8: 0000ff7d .word 0x0000ff7d
if((g.box_h == 0) && (g.box_w == 0)) return;
7dfc: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
7e00: f8bd 30e2 ldrh.w r3, [sp, #226] ; 0xe2
7e04: ea52 0103 orrs.w r1, r2, r3
7e08: f43f af45 beq.w 7c96 <lv_draw_label+0x412>
int32_t pos_x = pos_p->x + g.ofs_x;
7e0c: f9bd 10e6 ldrsh.w r1, [sp, #230] ; 0xe6
7e10: 980c ldr r0, [sp, #48] ; 0x30
7e12: 4401 add r1, r0
if(pos_x + g.box_w < clip_area->x1 ||
7e14: 440b add r3, r1
int32_t pos_x = pos_p->x + g.ofs_x;
7e16: 910d str r1, [sp, #52] ; 0x34
if(pos_x + g.box_w < clip_area->x1 ||
7e18: f9ba 1000 ldrsh.w r1, [sl]
7e1c: 428b cmp r3, r1
7e1e: f6ff af3a blt.w 7c96 <lv_draw_label+0x412>
pos_x > clip_area->x2 ||
7e22: f9ba 3004 ldrsh.w r3, [sl, #4]
if(pos_x + g.box_w < clip_area->x1 ||
7e26: 990d ldr r1, [sp, #52] ; 0x34
7e28: 4299 cmp r1, r3
7e2a: f73f af34 bgt.w 7c96 <lv_draw_label+0x412>
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
7e2e: ee18 3a10 vmov r3, s16
7e32: ee18 1a10 vmov r1, s16
7e36: f9b3 3008 ldrsh.w r3, [r3, #8]
7e3a: f9b1 100a ldrsh.w r1, [r1, #10]
7e3e: 1a5b subs r3, r3, r1
7e40: 9906 ldr r1, [sp, #24]
7e42: 440b add r3, r1
7e44: f9bd 10e8 ldrsh.w r1, [sp, #232] ; 0xe8
7e48: 1a9b subs r3, r3, r2
7e4a: 1a5b subs r3, r3, r1
pos_y + g.box_h < clip_area->y1 ||
7e4c: 441a add r2, r3
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
7e4e: 9316 str r3, [sp, #88] ; 0x58
pos_y + g.box_h < clip_area->y1 ||
7e50: f9ba 3002 ldrsh.w r3, [sl, #2]
pos_x > clip_area->x2 ||
7e54: 429a cmp r2, r3
7e56: f6ff af1e blt.w 7c96 <lv_draw_label+0x412>
pos_y > clip_area->y2) {
7e5a: f9ba 3006 ldrsh.w r3, [sl, #6]
pos_y + g.box_h < clip_area->y1 ||
7e5e: 9a16 ldr r2, [sp, #88] ; 0x58
7e60: 429a cmp r2, r3
7e62: f73f af18 bgt.w 7c96 <lv_draw_label+0x412>
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
7e66: ee18 0a10 vmov r0, s16
7e6a: 4ba9 ldr r3, [pc, #676] ; (8110 <lv_draw_label+0x88c>)
7e6c: 4629 mov r1, r5
7e6e: 4798 blx r3
if(map_p == NULL) {
7e70: 4607 mov r7, r0
7e72: b928 cbnz r0, 7e80 <lv_draw_label+0x5fc>
LV_LOG_WARN("lv_draw_letter: character's bitmap not found");
7e74: 4ba7 ldr r3, [pc, #668] ; (8114 <lv_draw_label+0x890>)
7e76: 9300 str r3, [sp, #0]
7e78: f240 12b7 movw r2, #439 ; 0x1b7
7e7c: 4ba6 ldr r3, [pc, #664] ; (8118 <lv_draw_label+0x894>)
7e7e: e3a9 b.n 85d4 <lv_draw_label+0xd50>
if(font_p->subpx) {
7e80: ee18 2a10 vmov r2, s16
7e84: 7b12 ldrb r2, [r2, #12]
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
7e86: f9bd 6034 ldrsh.w r6, [sp, #52] ; 0x34
7e8a: f9bd 8058 ldrsh.w r8, [sp, #88] ; 0x58
uint32_t bpp = g->bpp;
7e8e: f89d 30ea ldrb.w r3, [sp, #234] ; 0xea
if(font_p->subpx) {
7e92: 0792 lsls r2, r2, #30
7e94: f000 81fe beq.w 8294 <lv_draw_label+0xa10>
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
7e98: f004 021f and.w r2, r4, #31
7e9c: 922b str r2, [sp, #172] ; 0xac
7e9e: f3c4 1245 ubfx r2, r4, #5, #6
7ea2: 922a str r2, [sp, #168] ; 0xa8
if(bpp == 3) bpp = 4;
7ea4: 2b03 cmp r3, #3
7ea6: f3c4 22c4 ubfx r2, r4, #11, #5
7eaa: 9229 str r2, [sp, #164] ; 0xa4
7eac: f000 80e1 beq.w 8072 <lv_draw_label+0x7ee>
switch(bpp) {
7eb0: 3b01 subs r3, #1
7eb2: 2b07 cmp r3, #7
7eb4: f200 80d7 bhi.w 8066 <lv_draw_label+0x7e2>
7eb8: e8df f013 tbh [pc, r3, lsl #1]
7ebc: 00e00008 .word 0x00e00008
7ec0: 00db00d5 .word 0x00db00d5
7ec4: 00d500d5 .word 0x00d500d5
7ec8: 00d000d5 .word 0x00d000d5
7ecc: 2380 movs r3, #128 ; 0x80
7ece: 9314 str r3, [sp, #80] ; 0x50
7ed0: 4b92 ldr r3, [pc, #584] ; (811c <lv_draw_label+0x898>)
7ed2: 2401 movs r4, #1
bpp_opa_table = _lv_bpp2_opa_table;
7ed4: 9315 str r3, [sp, #84] ; 0x54
int32_t box_w = g->box_w;
7ed6: f8bd 30e2 ldrh.w r3, [sp, #226] ; 0xe2
7eda: 9317 str r3, [sp, #92] ; 0x5c
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
7edc: fb04 f103 mul.w r1, r4, r3
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
7ee0: f9ba 3000 ldrsh.w r3, [sl]
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
7ee4: 9d17 ldr r5, [sp, #92] ; 0x5c
int32_t box_h = g->box_h;
7ee6: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
7eea: 42b3 cmp r3, r6
7eec: bfc6 itte gt
7eee: 1b9b subgt r3, r3, r6
7ef0: eb03 0343 addgt.w r3, r3, r3, lsl #1
7ef4: 2300 movle r3, #0
7ef6: 9313 str r3, [sp, #76] ; 0x4c
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
7ef8: f9ba 3004 ldrsh.w r3, [sl, #4]
7efc: 2003 movs r0, #3
7efe: fbb5 f0f0 udiv r0, r5, r0
7f02: 4430 add r0, r6
7f04: 4298 cmp r0, r3
7f06: bfc5 ittet gt
7f08: 1b9b subgt r3, r3, r6
7f0a: 3301 addgt r3, #1
7f0c: 9b17 ldrle r3, [sp, #92] ; 0x5c
7f0e: eb03 0343 addgt.w r3, r3, r3, lsl #1
7f12: 9319 str r3, [sp, #100] ; 0x64
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
7f14: f9ba 3002 ldrsh.w r3, [sl, #2]
7f18: 4543 cmp r3, r8
7f1a: bfcc ite gt
7f1c: eba3 0308 subgt.w r3, r3, r8
7f20: 2300 movle r3, #0
7f22: 930e str r3, [sp, #56] ; 0x38
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
7f24: f9ba 3006 ldrsh.w r3, [sl, #6]
7f28: eb02 0008 add.w r0, r2, r8
7f2c: 4298 cmp r0, r3
7f2e: bfc2 ittt gt
7f30: eba3 0308 subgt.w r3, r3, r8
7f34: 3301 addgt r3, #1
7f36: 9324 strgt r3, [sp, #144] ; 0x90
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
7f38: 9b13 ldr r3, [sp, #76] ; 0x4c
7f3a: 980e ldr r0, [sp, #56] ; 0x38
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
7f3c: bfd8 it le
7f3e: 9224 strle r2, [sp, #144] ; 0x90
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
7f40: 4363 muls r3, r4
7f42: fb00 3301 mla r3, r0, r1, r3
map_p += bit_ofs >> 3;
7f46: eb07 01e3 add.w r1, r7, r3, asr #3
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
7f4a: f003 0307 and.w r3, r3, #7
7f4e: 930f str r3, [sp, #60] ; 0x3c
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
7f50: 9b17 ldr r3, [sp, #92] ; 0x5c
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
7f52: 4f73 ldr r7, [pc, #460] ; (8120 <lv_draw_label+0x89c>)
map_p += bit_ofs >> 3;
7f54: 911a str r1, [sp, #104] ; 0x68
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
7f56: 4353 muls r3, r2
7f58: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0
7f5c: bfa8 it ge
7f5e: f44f 73f0 movge.w r3, #480 ; 0x1e0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
7f62: 4618 mov r0, r3
7f64: 9318 str r3, [sp, #96] ; 0x60
7f66: 47b8 blx r7
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
7f68: 9b18 ldr r3, [sp, #96] ; 0x60
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
7f6a: 4605 mov r5, r0
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
7f6c: 0058 lsls r0, r3, #1
7f6e: 47b8 blx r7
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
7f70: 4b6c ldr r3, [pc, #432] ; (8124 <lv_draw_label+0x8a0>)
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
7f72: ee08 0a90 vmov s17, r0
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
7f76: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
7f78: 4b6b ldr r3, [pc, #428] ; (8128 <lv_draw_label+0x8a4>)
7f7a: 4798 blx r3
7f7c: f8b0 9014 ldrh.w r9, [r0, #20]
7f80: f9b0 c010 ldrsh.w ip, [r0, #16]
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
7f84: 9b13 ldr r3, [sp, #76] ; 0x4c
lv_color_t * vdb_buf_tmp = vdb->buf_act;
7f86: 6887 ldr r7, [r0, #8]
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
7f88: 2203 movs r2, #3
7f8a: f109 0901 add.w r9, r9, #1
7f8e: fb93 f1f2 sdiv r1, r3, r2
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
7f92: f9b0 3012 ldrsh.w r3, [r0, #18]
map_area.x1 = col_start / 3 + pos_x;
7f96: 980d ldr r0, [sp, #52] ; 0x34
7f98: eba9 090c sub.w r9, r9, ip
7f9c: fa0f f989 sxth.w r9, r9
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
7fa0: eba8 0303 sub.w r3, r8, r3
7fa4: fb09 6303 mla r3, r9, r3, r6
7fa8: eba3 0c0c sub.w ip, r3, ip
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
7fac: 9b0e ldr r3, [sp, #56] ; 0x38
7fae: fb09 1303 mla r3, r9, r3, r1
7fb2: 449c add ip, r3
7fb4: eb07 034c add.w r3, r7, ip, lsl #1
7fb8: 9310 str r3, [sp, #64] ; 0x40
map_area.x1 = col_start / 3 + pos_x;
7fba: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34
7fbe: fa11 f180 uxtah r1, r1, r0
map_area.x2 = col_end / 3 + pos_x - 1;
7fc2: 3b01 subs r3, #1
map_area.x1 = col_start / 3 + pos_x;
7fc4: f8ad 10cc strh.w r1, [sp, #204] ; 0xcc
map_area.x2 = col_end / 3 + pos_x - 1;
7fc8: 9919 ldr r1, [sp, #100] ; 0x64
7fca: fb91 f2f2 sdiv r2, r1, r2
7fce: 441a add r2, r3
7fd0: f8ad 20d0 strh.w r2, [sp, #208] ; 0xd0
map_area.y1 = row_start + pos_y;
7fd4: 9b16 ldr r3, [sp, #88] ; 0x58
7fd6: 9a0e ldr r2, [sp, #56] ; 0x38
7fd8: 4413 add r3, r2
7fda: b21b sxth r3, r3
7fdc: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
map_area.y2 = map_area.y1;
7fe0: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
7fe4: 4b51 ldr r3, [pc, #324] ; (812c <lv_draw_label+0x8a8>)
7fe6: 4798 blx r3
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
7fe8: 9a13 ldr r2, [sp, #76] ; 0x4c
7fea: 9b19 ldr r3, [sp, #100] ; 0x64
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
7fec: 9026 str r0, [sp, #152] ; 0x98
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
7fee: 1a9b subs r3, r3, r2
7ff0: 9323 str r3, [sp, #140] ; 0x8c
col_bit += ((box_w - col_end) + col_start) * bpp;
7ff2: 9b17 ldr r3, [sp, #92] ; 0x5c
7ff4: 4413 add r3, r2
7ff6: 9a19 ldr r2, [sp, #100] ; 0x64
7ff8: 1a9b subs r3, r3, r2
7ffa: 4363 muls r3, r4
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
7ffc: 9a23 ldr r2, [sp, #140] ; 0x8c
col_bit += ((box_w - col_end) + col_start) * bpp;
7ffe: 9327 str r3, [sp, #156] ; 0x9c
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
8000: f06f 0302 mvn.w r3, #2
8004: fb92 f3f3 sdiv r3, r2, r3
8008: 4499 add r9, r3
800a: ea4f 0349 mov.w r3, r9, lsl #1
800e: 9328 str r3, [sp, #160] ; 0xa0
if(col_bit < (int32_t) (8 - bpp)) {
8010: f1c4 0308 rsb r3, r4, #8
int32_t mask_p = 0;
8014: f04f 0800 mov.w r8, #0
if(col_bit < (int32_t) (8 - bpp)) {
8018: 932d str r3, [sp, #180] ; 0xb4
for(row = row_start ; row < row_end; row++) {
801a: 9b0e ldr r3, [sp, #56] ; 0x38
801c: 9a24 ldr r2, [sp, #144] ; 0x90
801e: 4293 cmp r3, r2
8020: db31 blt.n 8086 <lv_draw_label+0x802>
if(map_area.y1 != map_area.y2) {
8022: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2
8026: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce
802a: 429a cmp r2, r3
802c: d00f beq.n 804e <lv_draw_label+0x7ca>
map_area.y2--;
802e: 3b01 subs r3, #1
8030: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
8034: 9b1b ldr r3, [sp, #108] ; 0x6c
8036: 9302 str r3, [sp, #8]
8038: 9b09 ldr r3, [sp, #36] ; 0x24
803a: 9301 str r3, [sp, #4]
803c: 2302 movs r3, #2
803e: 9300 str r3, [sp, #0]
8040: ee18 2a90 vmov r2, s17
8044: 4c3a ldr r4, [pc, #232] ; (8130 <lv_draw_label+0x8ac>)
8046: 462b mov r3, r5
8048: a933 add r1, sp, #204 ; 0xcc
804a: 4650 mov r0, sl
804c: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
804e: 4628 mov r0, r5
8050: 4c38 ldr r4, [pc, #224] ; (8134 <lv_draw_label+0x8b0>)
8052: 47a0 blx r4
_lv_mem_buf_release(color_buf);
8054: ee18 0a90 vmov r0, s17
8058: 47a0 blx r4
805a: e61c b.n 7c96 <lv_draw_label+0x412>
bitmask_init = 0xFF;
805c: 23ff movs r3, #255 ; 0xff
805e: 9314 str r3, [sp, #80] ; 0x50
break; /*No opa table, pixel value will be used directly*/
8060: 2408 movs r4, #8
bpp_opa_table = _lv_bpp8_opa_table;
8062: 4b35 ldr r3, [pc, #212] ; (8138 <lv_draw_label+0x8b4>)
8064: e736 b.n 7ed4 <lv_draw_label+0x650>
LV_LOG_WARN("lv_draw_letter: invalid bpp not found");
8066: 4b35 ldr r3, [pc, #212] ; (813c <lv_draw_label+0x8b8>)
8068: 9300 str r3, [sp, #0]
806a: f240 227a movw r2, #634 ; 0x27a
806e: 4b34 ldr r3, [pc, #208] ; (8140 <lv_draw_label+0x8bc>)
8070: e2b0 b.n 85d4 <lv_draw_label+0xd50>
bitmask_init = 0xF0;
8072: 23f0 movs r3, #240 ; 0xf0
8074: 9314 str r3, [sp, #80] ; 0x50
if(bpp == 3) bpp = 4;
8076: 2404 movs r4, #4
bpp_opa_table = _lv_bpp4_opa_table;
8078: 4b32 ldr r3, [pc, #200] ; (8144 <lv_draw_label+0x8c0>)
807a: e72b b.n 7ed4 <lv_draw_label+0x650>
bitmask_init = 0xC0;
807c: 23c0 movs r3, #192 ; 0xc0
807e: 9314 str r3, [sp, #80] ; 0x50
switch(bpp) {
8080: 2402 movs r4, #2
bpp_opa_table = _lv_bpp2_opa_table;
8082: 4b31 ldr r3, [pc, #196] ; (8148 <lv_draw_label+0x8c4>)
8084: e726 b.n 7ed4 <lv_draw_label+0x650>
bitmask = bitmask_init >> col_bit;
8086: 9b14 ldr r3, [sp, #80] ; 0x50
8088: 9a0f ldr r2, [sp, #60] ; 0x3c
808a: fa23 fe02 lsr.w lr, r3, r2
for(col = col_start; col < col_end; col++) {
808e: 9b13 ldr r3, [sp, #76] ; 0x4c
8090: 930d str r3, [sp, #52] ; 0x34
8092: 4646 mov r6, r8
uint32_t subpx_cnt = 0;
8094: 2200 movs r2, #0
for(col = col_start; col < col_end; col++) {
8096: 9b19 ldr r3, [sp, #100] ; 0x64
8098: 990d ldr r1, [sp, #52] ; 0x34
809a: 428b cmp r3, r1
809c: dc5a bgt.n 8154 <lv_draw_label+0x8d0>
if(other_mask_cnt) {
809e: 9b26 ldr r3, [sp, #152] ; 0x98
80a0: b1bb cbz r3, 80d2 <lv_draw_label+0x84e>
80a2: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2,
80a6: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc
80aa: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2
80ae: 4f27 ldr r7, [pc, #156] ; (814c <lv_draw_label+0x8c8>)
80b0: 3301 adds r3, #1
80b2: 44a8 add r8, r5
80b4: 1a5b subs r3, r3, r1
80b6: b21b sxth r3, r3
80b8: 4640 mov r0, r8
80ba: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
80bc: b948 cbnz r0, 80d2 <lv_draw_label+0x84e>
80be: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0
80c2: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc
80c6: 3101 adds r1, #1
80c8: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area));
80ca: b209 sxth r1, r1
80cc: 4b20 ldr r3, [pc, #128] ; (8150 <lv_draw_label+0x8cc>)
80ce: 4640 mov r0, r8
80d0: 4798 blx r3
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
80d2: 9b23 ldr r3, [sp, #140] ; 0x8c
80d4: 9a18 ldr r2, [sp, #96] ; 0x60
80d6: 18f3 adds r3, r6, r3
80d8: 429a cmp r2, r3
80da: f340 80c4 ble.w 8266 <lv_draw_label+0x9e2>
map_area.y2 ++;
80de: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
80e2: 3301 adds r3, #1
80e4: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
col_bit += ((box_w - col_end) + col_start) * bpp;
80e8: 9b0f ldr r3, [sp, #60] ; 0x3c
80ea: 9a27 ldr r2, [sp, #156] ; 0x9c
80ec: 4413 add r3, r2
map_p += (col_bit >> 3);
80ee: 9a1a ldr r2, [sp, #104] ; 0x68
80f0: eb02 02e3 add.w r2, r2, r3, asr #3
col_bit = col_bit & 0x7;
80f4: f003 0307 and.w r3, r3, #7
map_p += (col_bit >> 3);
80f8: 921a str r2, [sp, #104] ; 0x68
col_bit = col_bit & 0x7;
80fa: 930f str r3, [sp, #60] ; 0x3c
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
80fc: 9a10 ldr r2, [sp, #64] ; 0x40
80fe: 9b28 ldr r3, [sp, #160] ; 0xa0
8100: 441a add r2, r3
for(row = row_start ; row < row_end; row++) {
8102: 9b0e ldr r3, [sp, #56] ; 0x38
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
8104: 9210 str r2, [sp, #64] ; 0x40
for(row = row_start ; row < row_end; row++) {
8106: 3301 adds r3, #1
8108: 930e str r3, [sp, #56] ; 0x38
810a: 46b0 mov r8, r6
810c: e785 b.n 801a <lv_draw_label+0x796>
810e: bf00 nop
8110: 0000d1a9 .word 0x0000d1a9
8114: 0001fb65 .word 0x0001fb65
8118: 0001fcea .word 0x0001fcea
811c: 0001fce8 .word 0x0001fce8
8120: 0000eefd .word 0x0000eefd
8124: 00004fdd .word 0x00004fdd
8128: 0000da25 .word 0x0000da25
812c: 000097fd .word 0x000097fd
8130: 000067d5 .word 0x000067d5
8134: 0000ebb1 .word 0x0000ebb1
8138: 0001fbd4 .word 0x0001fbd4
813c: 0001fb92 .word 0x0001fb92
8140: 0001fcf9 .word 0x0001fcf9
8144: 0001fcd4 .word 0x0001fcd4
8148: 0001fce4 .word 0x0001fce4
814c: 00009769 .word 0x00009769
8150: 0000f061 .word 0x0000f061
letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp);
8154: 9b0f ldr r3, [sp, #60] ; 0x3c
8156: 18e3 adds r3, r4, r3
8158: 9316 str r3, [sp, #88] ; 0x58
815a: 9b1a ldr r3, [sp, #104] ; 0x68
815c: 9916 ldr r1, [sp, #88] ; 0x58
815e: 781b ldrb r3, [r3, #0]
8160: f1c1 0108 rsb r1, r1, #8
8164: ea03 030e and.w r3, r3, lr
8168: 40cb lsrs r3, r1
if(letter_px != 0) {
816a: f013 03ff ands.w r3, r3, #255 ; 0xff
816e: d006 beq.n 817e <lv_draw_label+0x8fa>
if(opa == LV_OPA_COVER) {
8170: 9909 ldr r1, [sp, #36] ; 0x24
8172: 29ff cmp r1, #255 ; 0xff
8174: d161 bne.n 823a <lv_draw_label+0x9b6>
px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px];
8176: 2c08 cmp r4, #8
8178: d001 beq.n 817e <lv_draw_label+0x8fa>
817a: 9915 ldr r1, [sp, #84] ; 0x54
817c: 5ccb ldrb r3, [r1, r3]
font_rgb[subpx_cnt] = px_opa;
817e: f502 71a0 add.w r1, r2, #320 ; 0x140
8182: 4469 add r1, sp
subpx_cnt ++;
8184: 3201 adds r2, #1
if(subpx_cnt == 3) {
8186: 2a03 cmp r2, #3
font_rgb[subpx_cnt] = px_opa;
8188: f801 3c84 strb.w r3, [r1, #-132]
if(subpx_cnt == 3) {
818c: d149 bne.n 8222 <lv_draw_label+0x99e>
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
818e: 9b10 ldr r3, [sp, #64] ; 0x40
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
8190: f89d 00bc ldrb.w r0, [sp, #188] ; 0xbc
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
8194: 785b ldrb r3, [r3, #1]
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
8196: 9929 ldr r1, [sp, #164] ; 0xa4
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
8198: f89d 90be ldrb.w r9, [sp, #190] ; 0xbe
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
819c: f89d 70bd ldrb.w r7, [sp, #189] ; 0xbd
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
81a0: f1c0 02ff rsb r2, r0, #255 ; 0xff
81a4: fb10 fc01 smulbb ip, r0, r1
81a8: 08db lsrs r3, r3, #3
81aa: fb02 cc03 mla ip, r2, r3, ip
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
81ae: 9b10 ldr r3, [sp, #64] ; 0x40
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
81b0: 992b ldr r1, [sp, #172] ; 0xac
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
81b2: 781b ldrb r3, [r3, #0]
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
81b4: f1c9 02ff rsb r2, r9, #255 ; 0xff
81b8: f003 031f and.w r3, r3, #31
81bc: fb19 f101 smulbb r1, r9, r1
81c0: fb02 1103 mla r1, r2, r3, r1
81c4: 0a0b lsrs r3, r1, #8
81c6: 9317 str r3, [sp, #92] ; 0x5c
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
81c8: 9b10 ldr r3, [sp, #64] ; 0x40
81ca: 881b ldrh r3, [r3, #0]
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
81cc: f3c3 1345 ubfx r3, r3, #5, #6
81d0: 461a mov r2, r3
81d2: f1c7 03ff rsb r3, r7, #255 ; 0xff
81d6: 932c str r3, [sp, #176] ; 0xb0
81d8: 9b2a ldr r3, [sp, #168] ; 0xa8
81da: 4611 mov r1, r2
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
81dc: ea40 0009 orr.w r0, r0, r9
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
81e0: 9a2c ldr r2, [sp, #176] ; 0xb0
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
81e2: 4338 orrs r0, r7
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
81e4: fb17 f303 smulbb r3, r7, r3
81e8: fb02 3301 mla r3, r2, r1, r3
else mask_buf[mask_p] = LV_OPA_COVER;
81ec: bf1c itt ne
81ee: f04f 32ff movne.w r2, #4294967295 ; 0xffffffff
81f2: 55aa strbne r2, [r5, r6]
color_buf[mask_p] = res_color;
81f4: 9a17 ldr r2, [sp, #92] ; 0x5c
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
81f6: bf08 it eq
81f8: 55a8 strbeq r0, [r5, r6]
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
81fa: 0a1b lsrs r3, r3, #8
color_buf[mask_p] = res_color;
81fc: f002 011f and.w r1, r2, #31
8200: f003 033f and.w r3, r3, #63 ; 0x3f
8204: ee18 2a90 vmov r2, s17
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
8208: ea4f 2c1c mov.w ip, ip, lsr #8
color_buf[mask_p] = res_color;
820c: ea41 1343 orr.w r3, r1, r3, lsl #5
8210: ea43 23cc orr.w r3, r3, ip, lsl #11
8214: f822 3016 strh.w r3, [r2, r6, lsl #1]
vdb_buf_tmp++;
8218: 9b10 ldr r3, [sp, #64] ; 0x40
821a: 3302 adds r3, #2
mask_p++;
821c: 3601 adds r6, #1
vdb_buf_tmp++;
821e: 9310 str r3, [sp, #64] ; 0x40
subpx_cnt = 0;
8220: 2200 movs r2, #0
if(col_bit < (int32_t) (8 - bpp)) {
8222: 9b0f ldr r3, [sp, #60] ; 0x3c
8224: 992d ldr r1, [sp, #180] ; 0xb4
8226: 428b cmp r3, r1
8228: da15 bge.n 8256 <lv_draw_label+0x9d2>
col_bit += bpp;
822a: 9b16 ldr r3, [sp, #88] ; 0x58
822c: 930f str r3, [sp, #60] ; 0x3c
bitmask = bitmask >> bpp;
822e: fa2e fe04 lsr.w lr, lr, r4
for(col = col_start; col < col_end; col++) {
8232: 9b0d ldr r3, [sp, #52] ; 0x34
8234: 3301 adds r3, #1
8236: 930d str r3, [sp, #52] ; 0x34
8238: e72d b.n 8096 <lv_draw_label+0x812>
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
823a: 2c08 cmp r4, #8
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
823c: bf17 itett ne
823e: 9915 ldrne r1, [sp, #84] ; 0x54
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
8240: 9909 ldreq r1, [sp, #36] ; 0x24
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
8242: 5ccb ldrbne r3, [r1, r3]
8244: 9909 ldrne r1, [sp, #36] ; 0x24
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
8246: bf0b itete eq
8248: 434b muleq r3, r1
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
824a: fb13 f301 smulbbne r3, r3, r1
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
824e: f3c3 2307 ubfxeq r3, r3, #8, #8
8252: 0a1b lsrne r3, r3, #8
8254: e793 b.n 817e <lv_draw_label+0x8fa>
map_p++;
8256: 9b1a ldr r3, [sp, #104] ; 0x68
bitmask = bitmask_init;
8258: f8dd e050 ldr.w lr, [sp, #80] ; 0x50
map_p++;
825c: 3301 adds r3, #1
825e: 931a str r3, [sp, #104] ; 0x68
col_bit = 0;
8260: 2300 movs r3, #0
8262: 930f str r3, [sp, #60] ; 0x3c
8264: e7e5 b.n 8232 <lv_draw_label+0x9ae>
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
8266: 9b1b ldr r3, [sp, #108] ; 0x6c
8268: 9302 str r3, [sp, #8]
826a: 9b09 ldr r3, [sp, #36] ; 0x24
826c: 9301 str r3, [sp, #4]
826e: 2302 movs r3, #2
8270: 4ea8 ldr r6, [pc, #672] ; (8514 <lv_draw_label+0xc90>)
8272: 9300 str r3, [sp, #0]
8274: ee18 2a90 vmov r2, s17
8278: 462b mov r3, r5
827a: a933 add r1, sp, #204 ; 0xcc
827c: 4650 mov r0, sl
827e: 47b0 blx r6
map_area.y1 = map_area.y2 + 1;
8280: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
8284: 3301 adds r3, #1
8286: b21b sxth r3, r3
8288: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
map_area.y2 = map_area.y1;
828c: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
mask_p = 0;
8290: 2600 movs r6, #0
8292: e729 b.n 80e8 <lv_draw_label+0x864>
if(bpp == 3) bpp = 4;
8294: 2b03 cmp r3, #3
8296: ee09 4a90 vmov s19, r4
829a: f000 80ba beq.w 8412 <lv_draw_label+0xb8e>
switch(bpp) {
829e: 3b01 subs r3, #1
82a0: 2b07 cmp r3, #7
82a2: f200 80b0 bhi.w 8406 <lv_draw_label+0xb82>
82a6: e8df f003 tbb [pc, r3]
82aa: ba04 .short 0xba04
82ac: aeaeb4ae .word 0xaeaeb4ae
82b0: a7ae .short 0xa7ae
82b2: 2280 movs r2, #128 ; 0x80
82b4: 9213 str r2, [sp, #76] ; 0x4c
82b6: 4a98 ldr r2, [pc, #608] ; (8518 <lv_draw_label+0xc94>)
82b8: 2501 movs r5, #1
82ba: 2302 movs r3, #2
bpp_opa_table_p = _lv_bpp2_opa_table;
82bc: 920e str r2, [sp, #56] ; 0x38
if(opa < LV_OPA_MAX) {
82be: 9a09 ldr r2, [sp, #36] ; 0x24
82c0: 2af9 cmp r2, #249 ; 0xf9
82c2: d812 bhi.n 82ea <lv_draw_label+0xa66>
if(prev_opa != opa || prev_bpp != bpp) {
82c4: 4a95 ldr r2, [pc, #596] ; (851c <lv_draw_label+0xc98>)
82c6: 9809 ldr r0, [sp, #36] ; 0x24
82c8: f892 1100 ldrb.w r1, [r2, #256] ; 0x100
82cc: 4281 cmp r1, r0
82ce: f040 80ac bne.w 842a <lv_draw_label+0xba6>
82d2: f8d2 2104 ldr.w r2, [r2, #260] ; 0x104
82d6: 42aa cmp r2, r5
82d8: f040 80a7 bne.w 842a <lv_draw_label+0xba6>
prev_opa = opa;
82dc: 4b8f ldr r3, [pc, #572] ; (851c <lv_draw_label+0xc98>)
82de: 9a09 ldr r2, [sp, #36] ; 0x24
82e0: f883 2100 strb.w r2, [r3, #256] ; 0x100
prev_bpp = bpp;
82e4: f8c3 5104 str.w r5, [r3, #260] ; 0x104
bpp_opa_table_p = opa_table;
82e8: 930e str r3, [sp, #56] ; 0x38
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
82ea: f9ba 3000 ldrsh.w r3, [sl]
int32_t box_w = g->box_w;
82ee: f8bd 90e2 ldrh.w r9, [sp, #226] ; 0xe2
int32_t box_h = g->box_h;
82f2: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
82f6: 42b3 cmp r3, r6
82f8: bfcc ite gt
82fa: 1b9b subgt r3, r3, r6
82fc: 2300 movle r3, #0
82fe: 930f str r3, [sp, #60] ; 0x3c
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
8300: f9ba 3004 ldrsh.w r3, [sl, #4]
8304: eb09 0006 add.w r0, r9, r6
8308: 4298 cmp r0, r3
830a: bfc4 itt gt
830c: 1b9b subgt r3, r3, r6
830e: 3301 addgt r3, #1
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
8310: f9ba 6002 ldrsh.w r6, [sl, #2]
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
8314: bfc8 it gt
8316: 9310 strgt r3, [sp, #64] ; 0x40
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
8318: f9ba 3006 ldrsh.w r3, [sl, #6]
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
831c: bfd8 it le
831e: f8cd 9040 strle.w r9, [sp, #64] ; 0x40
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
8322: eb02 0008 add.w r0, r2, r8
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
8326: 4546 cmp r6, r8
8328: bfcc ite gt
832a: eba6 0608 subgt.w r6, r6, r8
832e: 2600 movle r6, #0
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
8330: 4298 cmp r0, r3
8332: bfc2 ittt gt
8334: eba3 0308 subgt.w r3, r3, r8
8338: 3301 addgt r3, #1
833a: 9317 strgt r3, [sp, #92] ; 0x5c
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
833c: 9b0f ldr r3, [sp, #60] ; 0x3c
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
833e: bfd8 it le
8340: 9217 strle r2, [sp, #92] ; 0x5c
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
8342: fb05 f109 mul.w r1, r5, r9
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
8346: fb03 f405 mul.w r4, r3, r5
834a: fb06 4401 mla r4, r6, r1, r4
map_p += bit_ofs >> 3;
834e: eb07 03d4 add.w r3, r7, r4, lsr #3
8352: 9314 str r3, [sp, #80] ; 0x50
uint32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : box_w * box_h;
8354: fb02 f309 mul.w r3, r2, r9
8358: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0
835c: bfa8 it ge
835e: f44f 73f0 movge.w r3, #480 ; 0x1e0
8362: 9315 str r3, [sp, #84] ; 0x54
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8364: 4618 mov r0, r3
8366: 4b6e ldr r3, [pc, #440] ; (8520 <lv_draw_label+0xc9c>)
8368: 4798 blx r3
fill_area.x1 = col_start + pos_x;
836a: 9a0d ldr r2, [sp, #52] ; 0x34
836c: 990f ldr r1, [sp, #60] ; 0x3c
836e: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34
8372: fa11 f282 uxtah r2, r1, r2
8376: f8ad 20cc strh.w r2, [sp, #204] ; 0xcc
fill_area.x2 = col_end + pos_x - 1;
837a: 9a10 ldr r2, [sp, #64] ; 0x40
837c: 3b01 subs r3, #1
837e: 4413 add r3, r2
8380: f8ad 30d0 strh.w r3, [sp, #208] ; 0xd0
fill_area.y1 = row_start + pos_y;
8384: 9b16 ldr r3, [sp, #88] ; 0x58
8386: 4433 add r3, r6
8388: b21b sxth r3, r3
838a: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
fill_area.y2 = fill_area.y1;
838e: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8392: 4b64 ldr r3, [pc, #400] ; (8524 <lv_draw_label+0xca0>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8394: ee08 0a90 vmov s17, r0
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8398: 4798 blx r3
uint32_t col_bit_max = 8 - bpp;
839a: f1c5 0308 rsb r3, r5, #8
839e: 930d str r3, [sp, #52] ; 0x34
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
83a0: 9b0f ldr r3, [sp, #60] ; 0x3c
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
83a2: 9019 str r0, [sp, #100] ; 0x64
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
83a4: 4499 add r9, r3
83a6: 9b10 ldr r3, [sp, #64] ; 0x40
83a8: eba9 0903 sub.w r9, r9, r3
83ac: fb05 f309 mul.w r3, r5, r9
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
83b0: f004 0407 and.w r4, r4, #7
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
83b4: 931a str r3, [sp, #104] ; 0x68
int32_t mask_p = 0;
83b6: f04f 0900 mov.w r9, #0
for(row = row_start ; row < row_end; row++) {
83ba: 9b17 ldr r3, [sp, #92] ; 0x5c
83bc: 429e cmp r6, r3
83be: db45 blt.n 844c <lv_draw_label+0xbc8>
if(fill_area.y1 != fill_area.y2) {
83c0: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2
83c4: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce
83c8: 429a cmp r2, r3
83ca: d010 beq.n 83ee <lv_draw_label+0xb6a>
fill_area.y2--;
83cc: 3b01 subs r3, #1
83ce: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
_lv_blend_fill(clip_area, &fill_area,
83d2: 9b1b ldr r3, [sp, #108] ; 0x6c
83d4: 9302 str r3, [sp, #8]
83d6: 26ff movs r6, #255 ; 0xff
83d8: 2302 movs r3, #2
83da: e9cd 3600 strd r3, r6, [sp]
83de: ee19 2a90 vmov r2, s19
83e2: ee18 3a90 vmov r3, s17
83e6: 4c50 ldr r4, [pc, #320] ; (8528 <lv_draw_label+0xca4>)
83e8: a933 add r1, sp, #204 ; 0xcc
83ea: 4650 mov r0, sl
83ec: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
83ee: ee18 0a90 vmov r0, s17
83f2: 4b4e ldr r3, [pc, #312] ; (852c <lv_draw_label+0xca8>)
83f4: 4798 blx r3
83f6: e44e b.n 7c96 <lv_draw_label+0x412>
bitmask_init = 0xFF;
83f8: 22ff movs r2, #255 ; 0xff
83fa: 9213 str r2, [sp, #76] ; 0x4c
break; /*No opa table, pixel value will be used directly*/
83fc: 2508 movs r5, #8
bpp_opa_table_p = _lv_bpp8_opa_table;
83fe: 4a4c ldr r2, [pc, #304] ; (8530 <lv_draw_label+0xcac>)
shades = 256;
8400: f44f 7380 mov.w r3, #256 ; 0x100
8404: e75a b.n 82bc <lv_draw_label+0xa38>
LV_LOG_WARN("lv_draw_letter: invalid bpp");
8406: 4b4b ldr r3, [pc, #300] ; (8534 <lv_draw_label+0xcb0>)
8408: 9300 str r3, [sp, #0]
840a: f240 12e5 movw r2, #485 ; 0x1e5
840e: 4b4a ldr r3, [pc, #296] ; (8538 <lv_draw_label+0xcb4>)
8410: e0e0 b.n 85d4 <lv_draw_label+0xd50>
bitmask_init = 0xF0;
8412: 22f0 movs r2, #240 ; 0xf0
8414: 9213 str r2, [sp, #76] ; 0x4c
if(bpp == 3) bpp = 4;
8416: 2504 movs r5, #4
bpp_opa_table_p = _lv_bpp4_opa_table;
8418: 4a48 ldr r2, [pc, #288] ; (853c <lv_draw_label+0xcb8>)
shades = 16;
841a: 2310 movs r3, #16
841c: e74e b.n 82bc <lv_draw_label+0xa38>
bitmask_init = 0xC0;
841e: 22c0 movs r2, #192 ; 0xc0
8420: 9213 str r2, [sp, #76] ; 0x4c
switch(bpp) {
8422: 2502 movs r5, #2
bpp_opa_table_p = _lv_bpp2_opa_table;
8424: 4a46 ldr r2, [pc, #280] ; (8540 <lv_draw_label+0xcbc>)
shades = 4;
8426: 2304 movs r3, #4
8428: e748 b.n 82bc <lv_draw_label+0xa38>
842a: 990e ldr r1, [sp, #56] ; 0x38
842c: 483b ldr r0, [pc, #236] ; (851c <lv_draw_label+0xc98>)
842e: 440b add r3, r1
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
8430: f811 2b01 ldrb.w r2, [r1], #1
8434: 2aff cmp r2, #255 ; 0xff
8436: bf17 itett ne
8438: 9c09 ldrne r4, [sp, #36] ; 0x24
843a: 9a09 ldreq r2, [sp, #36] ; 0x24
843c: fb12 f204 smulbbne r2, r2, r4
8440: 0a12 lsrne r2, r2, #8
for(i = 0; i < shades; i++) {
8442: 4299 cmp r1, r3
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
8444: f800 2b01 strb.w r2, [r0], #1
for(i = 0; i < shades; i++) {
8448: d1f2 bne.n 8430 <lv_draw_label+0xbac>
844a: e747 b.n 82dc <lv_draw_label+0xa58>
bitmask = bitmask_init >> col_bit;
844c: 9b13 ldr r3, [sp, #76] ; 0x4c
for(col = col_start; col < col_end; col++) {
844e: 980f ldr r0, [sp, #60] ; 0x3c
8450: f8cd 908c str.w r9, [sp, #140] ; 0x8c
bitmask = bitmask_init >> col_bit;
8454: fa23 f104 lsr.w r1, r3, r4
for(col = col_start; col < col_end; col++) {
8458: ee18 3a90 vmov r3, s17
845c: eb03 0809 add.w r8, r3, r9
8460: 4642 mov r2, r8
8462: 9b10 ldr r3, [sp, #64] ; 0x40
8464: 4283 cmp r3, r0
8466: dc39 bgt.n 84dc <lv_draw_label+0xc58>
8468: 9a0f ldr r2, [sp, #60] ; 0x3c
846a: 9910 ldr r1, [sp, #64] ; 0x40
846c: 1a9b subs r3, r3, r2
846e: 9316 str r3, [sp, #88] ; 0x58
8470: 428a cmp r2, r1
8472: bfc8 it gt
8474: 2300 movgt r3, #0
8476: 9318 str r3, [sp, #96] ; 0x60
8478: 4499 add r9, r3
if(other_mask_cnt) {
847a: 9b19 ldr r3, [sp, #100] ; 0x64
847c: b1b3 cbz r3, 84ac <lv_draw_label+0xc28>
847e: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2,
8482: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc
8486: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2
848a: 4f2e ldr r7, [pc, #184] ; (8544 <lv_draw_label+0xcc0>)
848c: 3301 adds r3, #1
848e: 1a5b subs r3, r3, r1
8490: b21b sxth r3, r3
8492: 4640 mov r0, r8
8494: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
8496: b948 cbnz r0, 84ac <lv_draw_label+0xc28>
8498: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0
849c: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc
84a0: 3101 adds r1, #1
84a2: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area));
84a4: b209 sxth r1, r1
84a6: 4b28 ldr r3, [pc, #160] ; (8548 <lv_draw_label+0xcc4>)
84a8: 4640 mov r0, r8
84aa: 4798 blx r3
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
84ac: 9b18 ldr r3, [sp, #96] ; 0x60
84ae: 9a16 ldr r2, [sp, #88] ; 0x58
84b0: 4413 add r3, r2
84b2: 4698 mov r8, r3
84b4: 9b23 ldr r3, [sp, #140] ; 0x8c
84b6: 4498 add r8, r3
84b8: 9b15 ldr r3, [sp, #84] ; 0x54
84ba: 4543 cmp r3, r8
84bc: d946 bls.n 854c <lv_draw_label+0xcc8>
fill_area.y2 ++;
84be: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
84c2: 3301 adds r3, #1
84c4: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
col_bit += col_bit_row_ofs;
84c8: 9b1a ldr r3, [sp, #104] ; 0x68
84ca: 441c add r4, r3
map_p += (col_bit >> 3);
84cc: 9b14 ldr r3, [sp, #80] ; 0x50
84ce: eb03 03d4 add.w r3, r3, r4, lsr #3
84d2: 9314 str r3, [sp, #80] ; 0x50
col_bit = col_bit & 0x7;
84d4: f004 0407 and.w r4, r4, #7
for(row = row_start ; row < row_end; row++) {
84d8: 3601 adds r6, #1
84da: e76e b.n 83ba <lv_draw_label+0xb36>
letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit);
84dc: 9b14 ldr r3, [sp, #80] ; 0x50
84de: 9f0d ldr r7, [sp, #52] ; 0x34
84e0: 781b ldrb r3, [r3, #0]
84e2: eba7 0c04 sub.w ip, r7, r4
84e6: 400b ands r3, r1
84e8: fa23 f30c lsr.w r3, r3, ip
if(letter_px) {
84ec: f013 03ff ands.w r3, r3, #255 ; 0xff
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
84f0: bf1c itt ne
84f2: 9f0e ldrne r7, [sp, #56] ; 0x38
84f4: 5cfb ldrbne r3, [r7, r3]
mask_buf[mask_p] = 0;
84f6: 7013 strb r3, [r2, #0]
if(col_bit < col_bit_max) {
84f8: 9b0d ldr r3, [sp, #52] ; 0x34
84fa: 42a3 cmp r3, r4
map_p++;
84fc: bf9d ittte ls
84fe: 9b14 ldrls r3, [sp, #80] ; 0x50
bitmask = bitmask_init;
8500: 9913 ldrls r1, [sp, #76] ; 0x4c
map_p++;
8502: 3301 addls r3, #1
col_bit += bpp;
8504: 1964 addhi r4, r4, r5
bitmask = bitmask >> bpp;
8506: bf8e itee hi
8508: 40e9 lsrhi r1, r5
map_p++;
850a: 9314 strls r3, [sp, #80] ; 0x50
col_bit = 0;
850c: 2400 movls r4, #0
for(col = col_start; col < col_end; col++) {
850e: 3001 adds r0, #1
8510: 3201 adds r2, #1
8512: e7a6 b.n 8462 <lv_draw_label+0xbde>
8514: 000067d5 .word 0x000067d5
8518: 0001fce8 .word 0x0001fce8
851c: 200084c8 .word 0x200084c8
8520: 0000eefd .word 0x0000eefd
8524: 000097fd .word 0x000097fd
8528: 000061d9 .word 0x000061d9
852c: 0000ebb1 .word 0x0000ebb1
8530: 0001fbd4 .word 0x0001fbd4
8534: 0001fbb8 .word 0x0001fbb8
8538: 0001fd0b .word 0x0001fd0b
853c: 0001fcd4 .word 0x0001fcd4
8540: 0001fce4 .word 0x0001fce4
8544: 00009769 .word 0x00009769
8548: 0000f061 .word 0x0000f061
_lv_blend_fill(clip_area, &fill_area,
854c: 9b1b ldr r3, [sp, #108] ; 0x6c
854e: 9302 str r3, [sp, #8]
8550: 27ff movs r7, #255 ; 0xff
8552: 2302 movs r3, #2
8554: e9cd 3700 strd r3, r7, [sp]
8558: ee19 2a90 vmov r2, s19
855c: ee18 3a90 vmov r3, s17
8560: 4f1f ldr r7, [pc, #124] ; (85e0 <lv_draw_label+0xd5c>)
8562: a933 add r1, sp, #204 ; 0xcc
8564: 4650 mov r0, sl
8566: 47b8 blx r7
fill_area.y1 = fill_area.y2 + 1;
8568: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
856c: 3301 adds r3, #1
856e: b21b sxth r3, r3
8570: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
fill_area.y2 = fill_area.y1;
8574: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
mask_p = 0;
8578: f04f 0900 mov.w r9, #0
857c: e7a4 b.n 84c8 <lv_draw_label+0xc44>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
857e: 071a lsls r2, r3, #28
8580: f57f ac11 bpl.w 7da6 <lv_draw_label+0x522>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
8584: ee18 2a10 vmov r2, s16
8588: 9300 str r3, [sp, #0]
858a: 4630 mov r0, r6
858c: f9bb 300c ldrsh.w r3, [fp, #12]
8590: 4e14 ldr r6, [pc, #80] ; (85e4 <lv_draw_label+0xd60>)
8592: 47b0 blx r6
8594: 9b05 ldr r3, [sp, #20]
8596: 9a05 ldr r2, [sp, #20]
8598: 889b ldrh r3, [r3, #4]
859a: 8812 ldrh r2, [r2, #0]
859c: 3301 adds r3, #1
859e: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
85a0: b21b sxth r3, r3
85a2: 1a18 subs r0, r3, r0
85a4: 4404 add r4, r0
85a6: f7ff bbfd b.w 7da4 <lv_draw_label+0x520>
lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode);
85aa: f89b 3019 ldrb.w r3, [fp, #25]
85ae: 931b str r3, [sp, #108] ; 0x6c
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
85b0: ee18 0a10 vmov r0, s16
85b4: 4e0c ldr r6, [pc, #48] ; (85e8 <lv_draw_label+0xd64>)
85b6: 2300 movs r3, #0
85b8: 462a mov r2, r5
85ba: a938 add r1, sp, #224 ; 0xe0
85bc: 47b0 blx r6
if(g_ret == false) {
85be: 2800 cmp r0, #0
85c0: f47f ac1c bne.w 7dfc <lv_draw_label+0x578>
if(letter >= 0x20) {
85c4: 2d1f cmp r5, #31
85c6: f67f ab66 bls.w 7c96 <lv_draw_label+0x412>
LV_LOG_WARN("lv_draw_letter: glyph dsc. not found");
85ca: 4b08 ldr r3, [pc, #32] ; (85ec <lv_draw_label+0xd68>)
85cc: 9300 str r3, [sp, #0]
85ce: 4b08 ldr r3, [pc, #32] ; (85f0 <lv_draw_label+0xd6c>)
85d0: f240 12a1 movw r2, #417 ; 0x1a1
LV_LOG_WARN("lv_draw_letter: invalid bpp");
85d4: 4907 ldr r1, [pc, #28] ; (85f4 <lv_draw_label+0xd70>)
85d6: 4c08 ldr r4, [pc, #32] ; (85f8 <lv_draw_label+0xd74>)
85d8: 2002 movs r0, #2
85da: 47a0 blx r4
return; /*Invalid bpp. Can't render the letter*/
85dc: f7ff bb5b b.w 7c96 <lv_draw_label+0x412>
85e0: 000061d9 .word 0x000061d9
85e4: 0000ff7d .word 0x0000ff7d
85e8: 0000d1ad .word 0x0000d1ad
85ec: 0001fb40 .word 0x0001fb40
85f0: 0001fcea .word 0x0001fcea
85f4: 0001fb0a .word 0x0001fb0a
85f8: 0000e931 .word 0x0000e931
000085fc <lv_draw_line_dsc_init>:
/**********************
* GLOBAL FUNCTIONS
**********************/
LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc)
{
85fc: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
85fe: 4b05 ldr r3, [pc, #20] ; (8614 <lv_draw_line_dsc_init+0x18>)
{
8600: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
8602: 210a movs r1, #10
8604: 4798 blx r3
dsc->width = 1;
dsc->opa = LV_OPA_COVER;
8606: 23ff movs r3, #255 ; 0xff
8608: 7223 strb r3, [r4, #8]
dsc->color = LV_COLOR_BLACK;
860a: 2300 movs r3, #0
860c: 8023 strh r3, [r4, #0]
dsc->width = 1;
860e: 2301 movs r3, #1
8610: 8063 strh r3, [r4, #2]
}
8612: bd10 pop {r4, pc}
8614: 0000f061 .word 0x0000f061
00008618 <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)
{
8618: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
861c: ed2d 8b04 vpush {d8-d9}
8620: 469b mov fp, r3
if(dsc->width == 0) return;
8622: f9b3 3002 ldrsh.w r3, [r3, #2]
{
8626: b0c7 sub sp, #284 ; 0x11c
8628: e9cd 0105 strd r0, r1, [sp, #20]
862c: ee08 2a90 vmov s17, r2
if(dsc->width == 0) return;
8630: 2b00 cmp r3, #0
8632: f000 80e3 beq.w 87fc <lv_draw_line+0x1e4>
if(dsc->opa <= LV_OPA_MIN) return;
8636: f89b 2008 ldrb.w r2, [fp, #8]
863a: 2a05 cmp r2, #5
863c: f240 80de bls.w 87fc <lv_draw_line+0x1e4>
if(point1->x == point2->x && point1->y == point2->y) return;
8640: 9a05 ldr r2, [sp, #20]
8642: f9b0 4000 ldrsh.w r4, [r0]
8646: f9b1 0000 ldrsh.w r0, [r1]
864a: f9b2 1002 ldrsh.w r1, [r2, #2]
864e: 9a06 ldr r2, [sp, #24]
8650: 4284 cmp r4, r0
8652: f9b2 2002 ldrsh.w r2, [r2, #2]
8656: d102 bne.n 865e <lv_draw_line+0x46>
8658: 4291 cmp r1, r2
865a: f000 80cf beq.w 87fc <lv_draw_line+0x1e4>
lv_area_t clip_line;
clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2;
865e: eb03 73d3 add.w r3, r3, r3, lsr #31
8662: f3c3 034f ubfx r3, r3, #1, #16
8666: 4284 cmp r4, r0
8668: bfd4 ite le
866a: ebc3 0504 rsble r5, r3, r4
866e: ebc3 0500 rsbgt r5, r3, r0
8672: f8ad 5028 strh.w r5, [sp, #40] ; 0x28
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
8676: 4284 cmp r4, r0
8678: bfac ite ge
867a: 191d addge r5, r3, r4
867c: 181d addlt r5, r3, r0
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
867e: 4291 cmp r1, r2
8680: bfd4 ite le
8682: ebc3 0001 rsble r0, r3, r1
8686: ebc3 0002 rsbgt r0, r3, r2
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
868a: 4291 cmp r1, r2
868c: bfac ite ge
868e: 185b addge r3, r3, r1
8690: 189b addlt r3, r3, r2
bool is_common;
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
8692: a90a add r1, sp, #40 ; 0x28
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
8694: f8ad 002a strh.w r0, [sp, #42] ; 0x2a
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
8698: ee18 2a90 vmov r2, s17
869c: 4ca9 ldr r4, [pc, #676] ; (8944 <lv_draw_line+0x32c>)
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
869e: f8ad 502c strh.w r5, [sp, #44] ; 0x2c
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
86a2: 4608 mov r0, r1
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
86a4: f8ad 302e strh.w r3, [sp, #46] ; 0x2e
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
86a8: 47a0 blx r4
if(!is_common) return;
86aa: 2800 cmp r0, #0
86ac: f000 80a6 beq.w 87fc <lv_draw_line+0x1e4>
if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc);
86b0: 9b05 ldr r3, [sp, #20]
86b2: f9b3 9002 ldrsh.w r9, [r3, #2]
86b6: 9b06 ldr r3, [sp, #24]
86b8: f9b3 8002 ldrsh.w r8, [r3, #2]
86bc: 45c1 cmp r9, r8
86be: f040 8157 bne.w 8970 <lv_draw_line+0x358>
const lv_area_t * clip,
lv_draw_line_dsc_t * dsc)
{
lv_opa_t opa = dsc->opa;
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
86c2: 4ba1 ldr r3, [pc, #644] ; (8948 <lv_draw_line+0x330>)
lv_opa_t opa = dsc->opa;
86c4: f89b 4008 ldrb.w r4, [fp, #8]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
86c8: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
86ca: 4ba0 ldr r3, [pc, #640] ; (894c <lv_draw_line+0x334>)
86cc: 4798 blx r3
const lv_area_t * disp_area = &vdb->area;
int32_t w = dsc->width - 1;
86ce: f9bb 6002 ldrsh.w r6, [fp, #2]
int32_t w_half0 = w >> 1;
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
86d2: f9bb 5006 ldrsh.w r5, [fp, #6]
int32_t w = dsc->width - 1;
86d6: 1e73 subs r3, r6, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
86d8: f003 0601 and.w r6, r3, #1
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
86dc: 4680 mov r8, r0
int32_t w_half0 = w >> 1;
86de: 105f asrs r7, r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
86e0: eb06 0663 add.w r6, r6, r3, asr #1
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
86e4: b125 cbz r5, 86f0 <lv_draw_line+0xd8>
86e6: f9bb 5004 ldrsh.w r5, [fp, #4]
86ea: 3d00 subs r5, #0
86ec: bf18 it ne
86ee: 2501 movne r5, #1
bool simple_mode = true;
if(lv_draw_mask_get_cnt()) simple_mode = false;
86f0: 4b97 ldr r3, [pc, #604] ; (8950 <lv_draw_line+0x338>)
86f2: 4798 blx r3
86f4: 2800 cmp r0, #0
86f6: f040 8086 bne.w 8806 <lv_draw_line+0x1ee>
else if(dashed) simple_mode = false;
86fa: f085 0201 eor.w r2, r5, #1
lv_area_t draw_area;
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
86fe: 9b06 ldr r3, [sp, #24]
8700: 9905 ldr r1, [sp, #20]
8702: f9b3 3000 ldrsh.w r3, [r3]
8706: f9b1 1000 ldrsh.w r1, [r1]
870a: 428b cmp r3, r1
870c: 4618 mov r0, r3
870e: bfa8 it ge
8710: 4608 movge r0, r1
draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1;
8712: 428b cmp r3, r1
8714: bfb8 it lt
8716: 460b movlt r3, r1
8718: 3b01 subs r3, #1
871a: f8ad 309c strh.w r3, [sp, #156] ; 0x9c
draw_area.y1 = point1->y - w_half1;
871e: 9b05 ldr r3, [sp, #20]
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
8720: f8ad 0098 strh.w r0, [sp, #152] ; 0x98
draw_area.y1 = point1->y - w_half1;
8724: 885b ldrh r3, [r3, #2]
8726: 1b9e subs r6, r3, r6
draw_area.y2 = point1->y + w_half0;
8728: 443b add r3, r7
draw_area.y1 = point1->y - w_half1;
872a: f8ad 609a strh.w r6, [sp, #154] ; 0x9a
draw_area.y2 = point1->y + w_half0;
872e: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
/*If there is no mask then simply draw a rectangle*/
if(simple_mode) {
8732: 2a00 cmp r2, #0
8734: d069 beq.n 880a <lv_draw_line+0x1f2>
_lv_blend_fill(clip, &draw_area,
dsc->color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa,
dsc->blend_mode);
8736: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &draw_area,
873a: f003 0303 and.w r3, r3, #3
873e: e9cd 4301 strd r4, r3, [sp, #4]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
/*If there is no mask then simply draw a rectangle*/
if(simple_mode) {
_lv_blend_fill(clip, &draw_area,
8742: 2301 movs r3, #1
8744: 9300 str r3, [sp, #0]
8746: f8bb 2000 ldrh.w r2, [fp]
874a: 4c82 ldr r4, [pc, #520] ; (8954 <lv_draw_line+0x33c>)
874c: 2300 movs r3, #0
874e: a926 add r1, sp, #152 ; 0x98
8750: a80a add r0, sp, #40 ; 0x28
8752: 47a0 blx r4
if(dsc->round_end || dsc->round_start) {
8754: f89b 3009 ldrb.w r3, [fp, #9]
8758: f013 0f0c tst.w r3, #12
875c: d04e beq.n 87fc <lv_draw_line+0x1e4>
lv_draw_rect_dsc_init(&cir_dsc);
875e: 4b7e ldr r3, [pc, #504] ; (8958 <lv_draw_line+0x340>)
8760: a831 add r0, sp, #196 ; 0xc4
8762: 4798 blx r3
cir_dsc.bg_color = dsc->color;
8764: f8bb 3000 ldrh.w r3, [fp]
8768: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
cir_dsc.radius = LV_RADIUS_CIRCLE;
876c: f647 73ff movw r3, #32767 ; 0x7fff
8770: f8ad 30c4 strh.w r3, [sp, #196] ; 0xc4
cir_dsc.bg_opa = dsc->opa;
8774: f89b 3008 ldrb.w r3, [fp, #8]
8778: f88d 30d0 strb.w r3, [sp, #208] ; 0xd0
int32_t r = (dsc->width >> 1);
877c: f9bb 3002 ldrsh.w r3, [fp, #2]
8780: 105c asrs r4, r3, #1
int32_t r_corr = (dsc->width & 1) ? 0 : 1;
8782: 43db mvns r3, r3
8784: f003 0501 and.w r5, r3, #1
if(dsc->round_start) {
8788: f89b 3009 ldrb.w r3, [fp, #9]
878c: 075a lsls r2, r3, #29
878e: d518 bpl.n 87c2 <lv_draw_line+0x1aa>
cir_area.x1 = point1->x - r;
8790: 9b05 ldr r3, [sp, #20]
8792: 881a ldrh r2, [r3, #0]
8794: b2a3 uxth r3, r4
8796: 1ad1 subs r1, r2, r3
8798: f8ad 1098 strh.w r1, [sp, #152] ; 0x98
cir_area.y1 = point1->y - r;
879c: 9905 ldr r1, [sp, #20]
879e: 8849 ldrh r1, [r1, #2]
cir_area.x2 = point1->x + r - r_corr;
87a0: 441a add r2, r3
cir_area.y1 = point1->y - r;
87a2: 1ac8 subs r0, r1, r3
cir_area.y2 = point1->y + r - r_corr ;
87a4: 440b add r3, r1
cir_area.x2 = point1->x + r - r_corr;
87a6: 1b52 subs r2, r2, r5
cir_area.y2 = point1->y + r - r_corr ;
87a8: 1b5b subs r3, r3, r5
cir_area.y1 = point1->y - r;
87aa: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
cir_area.x2 = point1->x + r - r_corr;
87ae: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
cir_area.y2 = point1->y + r - r_corr ;
87b2: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
lv_draw_rect(&cir_area, clip, &cir_dsc);
87b6: ee18 1a90 vmov r1, s17
87ba: 4b68 ldr r3, [pc, #416] ; (895c <lv_draw_line+0x344>)
87bc: aa31 add r2, sp, #196 ; 0xc4
87be: a826 add r0, sp, #152 ; 0x98
87c0: 4798 blx r3
if(dsc->round_end) {
87c2: f89b 3009 ldrb.w r3, [fp, #9]
87c6: 071b lsls r3, r3, #28
87c8: d518 bpl.n 87fc <lv_draw_line+0x1e4>
cir_area.x1 = point2->x - r;
87ca: 9b06 ldr r3, [sp, #24]
87cc: 881a ldrh r2, [r3, #0]
87ce: b2a3 uxth r3, r4
87d0: 1ad1 subs r1, r2, r3
87d2: f8ad 1098 strh.w r1, [sp, #152] ; 0x98
cir_area.y1 = point2->y - r;
87d6: 9906 ldr r1, [sp, #24]
87d8: 8849 ldrh r1, [r1, #2]
cir_area.x2 = point2->x + r - r_corr;
87da: 441a add r2, r3
cir_area.y1 = point2->y - r;
87dc: 1ac8 subs r0, r1, r3
cir_area.y2 = point2->y + r - r_corr ;
87de: 440b add r3, r1
cir_area.x2 = point2->x + r - r_corr;
87e0: 1b52 subs r2, r2, r5
cir_area.y2 = point2->y + r - r_corr ;
87e2: 1b5b subs r3, r3, r5
cir_area.y1 = point2->y - r;
87e4: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
cir_area.x2 = point2->x + r - r_corr;
87e8: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
cir_area.y2 = point2->y + r - r_corr ;
87ec: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
lv_draw_rect(&cir_area, clip, &cir_dsc);
87f0: ee18 1a90 vmov r1, s17
87f4: 4b59 ldr r3, [pc, #356] ; (895c <lv_draw_line+0x344>)
87f6: aa31 add r2, sp, #196 ; 0xc4
87f8: a826 add r0, sp, #152 ; 0x98
87fa: 4798 blx r3
}
87fc: b047 add sp, #284 ; 0x11c
87fe: ecbd 8b04 vpop {d8-d9}
8802: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(lv_draw_mask_get_cnt()) simple_mode = false;
8806: 2200 movs r2, #0
8808: e779 b.n 86fe <lv_draw_line+0xe6>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
880a: aa26 add r2, sp, #152 ; 0x98
880c: 4b4d ldr r3, [pc, #308] ; (8944 <lv_draw_line+0x32c>)
880e: a90a add r1, sp, #40 ; 0x28
8810: 4610 mov r0, r2
8812: 4798 blx r3
if(!is_common) return;
8814: 2800 cmp r0, #0
8816: d09d beq.n 8754 <lv_draw_line+0x13c>
draw_area.y1 -= disp_area->y1;
8818: f8b8 4012 ldrh.w r4, [r8, #18]
881c: f9bd 009a ldrsh.w r0, [sp, #154] ; 0x9a
draw_area.x1 -= disp_area->x1;
8820: f8b8 1010 ldrh.w r1, [r8, #16]
8824: f9b8 6010 ldrsh.w r6, [r8, #16]
8828: f8bd 7098 ldrh.w r7, [sp, #152] ; 0x98
draw_area.x2 -= disp_area->x1;
882c: f9bd c09c ldrsh.w ip, [sp, #156] ; 0x9c
draw_area.x1 -= disp_area->x1;
8830: f9bd e098 ldrsh.w lr, [sp, #152] ; 0x98
fill_area.x1 = draw_area.x1 + disp_area->x1;
8834: f8ad e0c4 strh.w lr, [sp, #196] ; 0xc4
draw_area.y1 -= disp_area->y1;
8838: 1b03 subs r3, r0, r4
883a: f8ad 309a strh.w r3, [sp, #154] ; 0x9a
draw_area.x2 -= disp_area->x1;
883e: f8bd 309c ldrh.w r3, [sp, #156] ; 0x9c
fill_area.x2 = draw_area.x2 + disp_area->x1;
8842: f8ad c0c8 strh.w ip, [sp, #200] ; 0xc8
draw_area.x1 -= disp_area->x1;
8846: 1a7a subs r2, r7, r1
draw_area.x2 -= disp_area->x1;
8848: 1a59 subs r1, r3, r1
884a: f8ad 109c strh.w r1, [sp, #156] ; 0x9c
draw_area.y2 -= disp_area->y1;
884e: f8bd 109e ldrh.w r1, [sp, #158] ; 0x9e
fill_area.y1 = draw_area.y1 + disp_area->y1;
8852: f8ad 00c6 strh.w r0, [sp, #198] ; 0xc6
draw_area.y2 -= disp_area->y1;
8856: 1b09 subs r1, r1, r4
8858: 1c5c adds r4, r3, #1
draw_area.x1 -= disp_area->x1;
885a: b212 sxth r2, r2
885c: 1be4 subs r4, r4, r7
885e: f8ad 2098 strh.w r2, [sp, #152] ; 0x98
draw_area.y2 -= disp_area->y1;
8862: f8ad 109e strh.w r1, [sp, #158] ; 0x9e
8866: b224 sxth r4, r4
fill_area.y2 = fill_area.y1;
8868: f8ad 00ca strh.w r0, [sp, #202] ; 0xca
if(dashed) {
886c: b1dd cbz r5, 88a6 <lv_draw_line+0x28e>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
886e: 4416 add r6, r2
8870: f9bb 3004 ldrsh.w r3, [fp, #4]
8874: f9bb 2006 ldrsh.w r2, [fp, #6]
8878: 441a add r2, r3
887a: fb96 f3f2 sdiv r3, r6, r2
887e: fb02 6613 mls r6, r2, r3, r6
8882: b233 sxth r3, r6
8884: 9307 str r3, [sp, #28]
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8886: 4b36 ldr r3, [pc, #216] ; (8960 <lv_draw_line+0x348>)
_lv_blend_fill(clip, &fill_area,
8888: f8df a0c8 ldr.w sl, [pc, #200] ; 8954 <lv_draw_line+0x33c>
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
888c: 4620 mov r0, r4
888e: 4798 blx r3
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8890: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8894: 4607 mov r7, r0
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8896: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
889a: 4599 cmp r9, r3
889c: dd05 ble.n 88aa <lv_draw_line+0x292>
_lv_mem_buf_release(mask_buf);
889e: 4638 mov r0, r7
LV_BLEND_MODE_NORMAL);
fill_area.y1++;
fill_area.y2++;
}
_lv_mem_buf_release(mask_buf);
88a0: 4b30 ldr r3, [pc, #192] ; (8964 <lv_draw_line+0x34c>)
88a2: 4798 blx r3
88a4: e756 b.n 8754 <lv_draw_line+0x13c>
lv_style_int_t dash_start = 0;
88a6: 9507 str r5, [sp, #28]
88a8: e7ed b.n 8886 <lv_draw_line+0x26e>
_lv_memset_ff(mask_buf, draw_area_w);
88aa: 4b2f ldr r3, [pc, #188] ; (8968 <lv_draw_line+0x350>)
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);
88ac: 4e2f ldr r6, [pc, #188] ; (896c <lv_draw_line+0x354>)
_lv_memset_ff(mask_buf, draw_area_w);
88ae: 4621 mov r1, r4
88b0: 4638 mov r0, r7
88b2: 4798 blx 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);
88b4: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98
88b8: f8b8 2012 ldrh.w r2, [r8, #18]
88bc: f8b8 1010 ldrh.w r1, [r8, #16]
88c0: 444a add r2, r9
88c2: 4419 add r1, r3
88c4: b212 sxth r2, r2
88c6: 4623 mov r3, r4
88c8: b209 sxth r1, r1
88ca: 4638 mov r0, r7
88cc: 47b0 blx r6
88ce: 4602 mov r2, r0
if(dashed) {
88d0: b195 cbz r5, 88f8 <lv_draw_line+0x2e0>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
88d2: b188 cbz r0, 88f8 <lv_draw_line+0x2e0>
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
88d4: 2300 movs r3, #0
lv_style_int_t dash_cnt = dash_start;
88d6: 9907 ldr r1, [sp, #28]
88d8: 4618 mov r0, r3
88da: e00a b.n 88f2 <lv_draw_line+0x2da>
if(dash_cnt <= dsc->dash_width) {
88dc: f9bb 2004 ldrsh.w r2, [fp, #4]
88e0: 428a cmp r2, r1
88e2: db25 blt.n 8930 <lv_draw_line+0x318>
i += diff;
88e4: 4413 add r3, r2
88e6: 1a5b subs r3, r3, r1
88e8: b21b sxth r3, r3
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
88ea: 3301 adds r3, #1
88ec: 3201 adds r2, #1
88ee: b21b sxth r3, r3
88f0: b211 sxth r1, r2
88f2: 429c cmp r4, r3
88f4: dcf2 bgt.n 88dc <lv_draw_line+0x2c4>
mask_res = LV_DRAW_MASK_RES_CHANGED;
88f6: 2202 movs r2, #2
dsc->blend_mode);
88f8: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &fill_area,
88fc: f003 0303 and.w r3, r3, #3
8900: 9302 str r3, [sp, #8]
8902: f89b 3008 ldrb.w r3, [fp, #8]
8906: a931 add r1, sp, #196 ; 0xc4
8908: e9cd 2300 strd r2, r3, [sp]
890c: a80a add r0, sp, #40 ; 0x28
890e: 463b mov r3, r7
8910: f8bb 2000 ldrh.w r2, [fp]
8914: 47d0 blx sl
fill_area.y1++;
8916: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6
891a: 3301 adds r3, #1
891c: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
fill_area.y2++;
8920: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca
8924: 3301 adds r3, #1
8926: f8ad 30ca strh.w r3, [sp, #202] ; 0xca
for(h = draw_area.y1; h <= draw_area.y2; h++) {
892a: f109 0901 add.w r9, r9, #1
892e: e7b2 b.n 8896 <lv_draw_line+0x27e>
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
8930: f9bb c006 ldrsh.w ip, [fp, #6]
8934: 4462 add r2, ip
8936: 4291 cmp r1, r2
mask_buf[i] = 0x00;
8938: bfba itte lt
893a: 54f8 strblt r0, [r7, r3]
893c: 460a movlt r2, r1
dash_cnt = 0;
893e: 2200 movge r2, #0
8940: e7d3 b.n 88ea <lv_draw_line+0x2d2>
8942: bf00 nop
8944: 0000ded1 .word 0x0000ded1
8948: 00004fdd .word 0x00004fdd
894c: 0000da25 .word 0x0000da25
8950: 000097fd .word 0x000097fd
8954: 000061d9 .word 0x000061d9
8958: 00009bb5 .word 0x00009bb5
895c: 00009c01 .word 0x00009c01
8960: 0000eefd .word 0x0000eefd
8964: 0000ebb1 .word 0x0000ebb1
8968: 0000f0bd .word 0x0000f0bd
896c: 00009769 .word 0x00009769
else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc);
8970: 9b05 ldr r3, [sp, #20]
8972: f9b3 7000 ldrsh.w r7, [r3]
8976: 9b06 ldr r3, [sp, #24]
8978: f9b3 6000 ldrsh.w r6, [r3]
897c: 42b7 cmp r7, r6
897e: f040 80db bne.w 8b38 <lv_draw_line+0x520>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8982: 4b66 ldr r3, [pc, #408] ; (8b1c <lv_draw_line+0x504>)
lv_opa_t opa = dsc->opa;
8984: f89b 6008 ldrb.w r6, [fp, #8]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8988: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
898a: 4b65 ldr r3, [pc, #404] ; (8b20 <lv_draw_line+0x508>)
898c: 4798 blx r3
int32_t w = dsc->width - 1;
898e: f9bb 8002 ldrsh.w r8, [fp, #2]
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
8992: f9bb 5006 ldrsh.w r5, [fp, #6]
int32_t w = dsc->width - 1;
8996: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
899a: f003 0801 and.w r8, r3, #1
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
899e: 4607 mov r7, r0
int32_t w_half0 = w >> 1;
89a0: ea4f 0963 mov.w r9, r3, asr #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
89a4: eb08 0863 add.w r8, r8, r3, asr #1
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
89a8: b125 cbz r5, 89b4 <lv_draw_line+0x39c>
89aa: f9bb 5004 ldrsh.w r5, [fp, #4]
89ae: 3d00 subs r5, #0
89b0: bf18 it ne
89b2: 2501 movne r5, #1
if(lv_draw_mask_get_cnt()) simple_mode = false;
89b4: 4b5b ldr r3, [pc, #364] ; (8b24 <lv_draw_line+0x50c>)
89b6: 4798 blx r3
89b8: bb20 cbnz r0, 8a04 <lv_draw_line+0x3ec>
else if(dashed) simple_mode = false;
89ba: f085 0201 eor.w r2, r5, #1
draw_area.x1 = point1->x - w_half1;
89be: 9b05 ldr r3, [sp, #20]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
89c0: 9905 ldr r1, [sp, #20]
draw_area.x1 = point1->x - w_half1;
89c2: 881b ldrh r3, [r3, #0]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
89c4: f9b1 1002 ldrsh.w r1, [r1, #2]
draw_area.x1 = point1->x - w_half1;
89c8: eba3 0808 sub.w r8, r3, r8
draw_area.x2 = point1->x + w_half0;
89cc: 444b add r3, r9
89ce: f8ad 309c strh.w r3, [sp, #156] ; 0x9c
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
89d2: 9b06 ldr r3, [sp, #24]
draw_area.x1 = point1->x - w_half1;
89d4: f8ad 8098 strh.w r8, [sp, #152] ; 0x98
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
89d8: f9b3 3002 ldrsh.w r3, [r3, #2]
89dc: 428b cmp r3, r1
89de: 4618 mov r0, r3
89e0: bfa8 it ge
89e2: 4608 movge r0, r1
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
89e4: 428b cmp r3, r1
89e6: bfb8 it lt
89e8: 460b movlt r3, r1
89ea: 3b01 subs r3, #1
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
89ec: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
89f0: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
if(simple_mode) {
89f4: b142 cbz r2, 8a08 <lv_draw_line+0x3f0>
dsc->blend_mode);
89f6: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &draw_area,
89fa: f003 0303 and.w r3, r3, #3
89fe: e9cd 6301 strd r6, r3, [sp, #4]
8a02: e69e b.n 8742 <lv_draw_line+0x12a>
if(lv_draw_mask_get_cnt()) simple_mode = false;
8a04: 2200 movs r2, #0
8a06: e7da b.n 89be <lv_draw_line+0x3a6>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
8a08: aa26 add r2, sp, #152 ; 0x98
8a0a: a90a add r1, sp, #40 ; 0x28
8a0c: 4610 mov r0, r2
8a0e: 47a0 blx r4
if(!is_common) return;
8a10: 2800 cmp r0, #0
8a12: f43f ae9f beq.w 8754 <lv_draw_line+0x13c>
draw_area.x1 -= vdb->area.x1;
8a16: 8a3a ldrh r2, [r7, #16]
8a18: f8bd c098 ldrh.w ip, [sp, #152] ; 0x98
draw_area.y1 -= vdb->area.y1;
8a1c: 8a7e ldrh r6, [r7, #18]
8a1e: f9bd 109a ldrsh.w r1, [sp, #154] ; 0x9a
draw_area.x1 -= vdb->area.x1;
8a22: f9bd 4098 ldrsh.w r4, [sp, #152] ; 0x98
draw_area.x2 -= vdb->area.x1;
8a26: f9bd 009c ldrsh.w r0, [sp, #156] ; 0x9c
fill_area.x2 = draw_area.x2 + disp_area->x1;
8a2a: f8ad 00c8 strh.w r0, [sp, #200] ; 0xc8
draw_area.x1 -= vdb->area.x1;
8a2e: ebac 0302 sub.w r3, ip, r2
8a32: f8ad 3098 strh.w r3, [sp, #152] ; 0x98
draw_area.y1 -= vdb->area.y1;
8a36: 1b8b subs r3, r1, r6
8a38: f8ad 309a strh.w r3, [sp, #154] ; 0x9a
draw_area.x2 -= vdb->area.x1;
8a3c: f8bd 309c ldrh.w r3, [sp, #156] ; 0x9c
fill_area.x1 = draw_area.x1 + disp_area->x1;
8a40: f8ad 40c4 strh.w r4, [sp, #196] ; 0xc4
draw_area.x2 -= vdb->area.x1;
8a44: 1a9a subs r2, r3, r2
8a46: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
draw_area.y2 -= vdb->area.y1;
8a4a: f8bd 209e ldrh.w r2, [sp, #158] ; 0x9e
fill_area.y1 = draw_area.y1 + disp_area->y1;
8a4e: f8ad 10c6 strh.w r1, [sp, #198] ; 0xc6
draw_area.y2 -= vdb->area.y1;
8a52: 1b92 subs r2, r2, r6
8a54: 1c5e adds r6, r3, #1
8a56: eba6 060c sub.w r6, r6, ip
8a5a: b233 sxth r3, r6
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8a5c: 4618 mov r0, r3
8a5e: ee08 3a10 vmov s16, r3
draw_area.y2 -= vdb->area.y1;
8a62: f8ad 209e strh.w r2, [sp, #158] ; 0x9e
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8a66: 4b30 ldr r3, [pc, #192] ; (8b28 <lv_draw_line+0x510>)
fill_area.y2 = fill_area.y1;
8a68: f8ad 10ca strh.w r1, [sp, #202] ; 0xca
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8a6c: 4798 blx r3
8a6e: 4680 mov r8, r0
if(dashed) {
8a70: b1c5 cbz r5, 8aa4 <lv_draw_line+0x48c>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
8a72: f9bd 3098 ldrsh.w r3, [sp, #152] ; 0x98
8a76: f9b7 4010 ldrsh.w r4, [r7, #16]
8a7a: f9bb 2004 ldrsh.w r2, [fp, #4]
8a7e: 441c add r4, r3
8a80: f9bb 3006 ldrsh.w r3, [fp, #6]
8a84: 4413 add r3, r2
8a86: fb94 f2f3 sdiv r2, r4, r3
8a8a: fb03 4412 mls r4, r3, r2, r4
8a8e: b224 sxth r4, r4
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8a90: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a
_lv_blend_fill(clip, &fill_area,
8a94: f8df a09c ldr.w sl, [pc, #156] ; 8b34 <lv_draw_line+0x51c>
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8a98: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
8a9c: 4599 cmp r9, r3
8a9e: dd03 ble.n 8aa8 <lv_draw_line+0x490>
_lv_mem_buf_release(mask_buf);
8aa0: 4640 mov r0, r8
8aa2: e6fd b.n 88a0 <lv_draw_line+0x288>
lv_style_int_t dash_start = 0;
8aa4: 462c mov r4, r5
8aa6: e7f3 b.n 8a90 <lv_draw_line+0x478>
_lv_memset_ff(mask_buf, draw_area_w);
8aa8: ee18 1a10 vmov r1, s16
8aac: 4b1f ldr r3, [pc, #124] ; (8b2c <lv_draw_line+0x514>)
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);
8aae: 4e20 ldr r6, [pc, #128] ; (8b30 <lv_draw_line+0x518>)
_lv_memset_ff(mask_buf, draw_area_w);
8ab0: 4640 mov r0, r8
8ab2: 4798 blx 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);
8ab4: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98
8ab8: 8a7a ldrh r2, [r7, #18]
8aba: 8a39 ldrh r1, [r7, #16]
8abc: 444a add r2, r9
8abe: 4419 add r1, r3
8ac0: b212 sxth r2, r2
8ac2: ee18 3a10 vmov r3, s16
8ac6: b209 sxth r1, r1
8ac8: 4640 mov r0, r8
8aca: 47b0 blx r6
if(dashed) {
8acc: b16d cbz r5, 8aea <lv_draw_line+0x4d2>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
8ace: b150 cbz r0, 8ae6 <lv_draw_line+0x4ce>
if(dash_cnt > dsc->dash_width) {
8ad0: f9bb 2004 ldrsh.w r2, [fp, #4]
if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
8ad4: f9bb 3006 ldrsh.w r3, [fp, #6]
8ad8: 4413 add r3, r2
mask_res = LV_DRAW_MASK_RES_TRANSP;
8ada: 42a2 cmp r2, r4
8adc: bfb8 it lt
8ade: 2000 movlt r0, #0
dash_cnt = 0;
8ae0: 429c cmp r4, r3
8ae2: bfa8 it ge
8ae4: 2400 movge r4, #0
dash_cnt ++;
8ae6: 3401 adds r4, #1
8ae8: b224 sxth r4, r4
_lv_blend_fill(clip, &fill_area,
8aea: 2300 movs r3, #0
8aec: 9302 str r3, [sp, #8]
8aee: f89b 3008 ldrb.w r3, [fp, #8]
8af2: f8bb 2000 ldrh.w r2, [fp]
8af6: e9cd 0300 strd r0, r3, [sp]
8afa: a931 add r1, sp, #196 ; 0xc4
8afc: 4643 mov r3, r8
8afe: a80a add r0, sp, #40 ; 0x28
8b00: 47d0 blx sl
fill_area.y1++;
8b02: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6
8b06: 3301 adds r3, #1
8b08: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
fill_area.y2++;
8b0c: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca
8b10: 3301 adds r3, #1
8b12: f8ad 30ca strh.w r3, [sp, #202] ; 0xca
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8b16: f109 0901 add.w r9, r9, #1
8b1a: e7bd b.n 8a98 <lv_draw_line+0x480>
8b1c: 00004fdd .word 0x00004fdd
8b20: 0000da25 .word 0x0000da25
8b24: 000097fd .word 0x000097fd
8b28: 0000eefd .word 0x0000eefd
8b2c: 0000f0bd .word 0x0000f0bd
8b30: 00009769 .word 0x00009769
8b34: 000061d9 .word 0x000061d9
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) {
8b38: 45c1 cmp r9, r8
8b3a: db05 blt.n 8b48 <lv_draw_line+0x530>
8b3c: 464b mov r3, r9
8b3e: 46c1 mov r9, r8
8b40: 4698 mov r8, r3
8b42: 463b mov r3, r7
8b44: 4637 mov r7, r6
8b46: 461e mov r6, r3
p2.y = point1->y;
p1.x = point2->x;
p2.x = point1->x;
}
int32_t xdiff = p2.x - p1.x;
8b48: 1bf3 subs r3, r6, r7
8b4a: 9309 str r3, [sp, #36] ; 0x24
int32_t ydiff = p2.y - p1.y;
8b4c: eba8 0309 sub.w r3, r8, r9
8b50: 9308 str r3, [sp, #32]
bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false;
8b52: 1bf3 subs r3, r6, r7
8b54: ea83 72e3 eor.w r2, r3, r3, asr #31
8b58: eba2 72e3 sub.w r2, r2, r3, asr #31
8b5c: 9b08 ldr r3, [sp, #32]
8b5e: 9207 str r2, [sp, #28]
8b60: ea83 7ae3 eor.w sl, r3, r3, asr #31
8b64: ebaa 7ae3 sub.w sl, sl, r3, asr #31
181,
};
int32_t w = dsc->width;
int32_t wcorr_i = 0;
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8b68: 4552 cmp r2, sl
8b6a: 4613 mov r3, r2
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8b6c: bfd8 it le
8b6e: 9b07 ldrle r3, [sp, #28]
int32_t w = dsc->width;
8b70: f9bb 5002 ldrsh.w r5, [fp, #2]
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8b74: bfca itet gt
8b76: ea4f 134a movgt.w r3, sl, lsl #5
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8b7a: 015b lslle r3, r3, #5
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8b7c: fbb3 f3f2 udivgt r3, r3, r2
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8b80: 4ab3 ldr r2, [pc, #716] ; (8e50 <lv_draw_line+0x838>)
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8b82: bfd8 it le
8b84: fbb3 f3fa udivle r3, r3, sl
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8b88: 5cd1 ldrb r1, [r2, r3]
8b8a: 233f movs r3, #63 ; 0x3f
8b8c: fb15 3501 smlabb r5, r5, r1, 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;
8b90: f3c5 13cf ubfx r3, r5, #7, #16
8b94: 42be cmp r6, r7
8b96: bfd4 ite le
8b98: ebc3 0206 rsble r2, r3, r6
8b9c: ebc3 0207 rsbgt r2, r3, r7
8ba0: f8ad 2030 strh.w r2, [sp, #48] ; 0x30
draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w;
8ba4: 42be cmp r6, r7
8ba6: bfac ite ge
8ba8: 199a addge r2, r3, r6
8baa: 19da addlt r2, r3, r7
8bac: f8ad 2034 strh.w r2, [sp, #52] ; 0x34
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
/* 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);
8bb0: a90c add r1, sp, #48 ; 0x30
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
8bb2: 45c8 cmp r8, r9
8bb4: bfd4 ite le
8bb6: ebc3 0208 rsble r2, r3, r8
8bba: ebc3 0209 rsbgt r2, r3, r9
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
8bbe: 45c8 cmp r8, r9
8bc0: bfac ite ge
8bc2: 4443 addge r3, r8
8bc4: 444b addlt r3, r9
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
8bc6: f8ad 2032 strh.w r2, [sp, #50] ; 0x32
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
8bca: f8ad 3036 strh.w r3, [sp, #54] ; 0x36
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
8bce: aa0a add r2, sp, #40 ; 0x28
8bd0: 4ba0 ldr r3, [pc, #640] ; (8e54 <lv_draw_line+0x83c>)
8bd2: 4608 mov r0, r1
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8bd4: 11ec asrs r4, r5, #7
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
8bd6: 4798 blx r3
if(is_common == false) return;
8bd8: 2800 cmp r0, #0
8bda: f43f adbb beq.w 8754 <lv_draw_line+0x13c>
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) {
8bde: 9b07 ldr r3, [sp, #28]
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8be0: f004 0401 and.w r4, r4, #1
8be4: eb04 2425 add.w r4, r4, r5, asr #8
if(flat) {
8be8: 4553 cmp r3, sl
if(xdiff > 0) {
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
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,
8bea: b2a4 uxth r4, r4
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8bec: f3c5 250f ubfx r5, r5, #8, #16
if(flat) {
8bf0: f340 80ed ble.w 8dce <lv_draw_line+0x7b6>
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8bf4: fa14 f389 uxtah r3, r4, r9
8bf8: b21b sxth r3, r3
8bfa: ee08 3a10 vmov s16, r3
if(xdiff > 0) {
8bfe: 1bf3 subs r3, r6, r7
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8c00: eba9 0a05 sub.w sl, r9, r5
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8c04: fa14 f488 uxtah r4, r4, r8
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8c08: eba8 0505 sub.w r5, r8, r5
if(xdiff > 0) {
8c0c: 2b00 cmp r3, #0
8c0e: f04f 0300 mov.w r3, #0
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8c12: b224 sxth r4, r4
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8c14: fa0f fa8a sxth.w sl, sl
8c18: b22d sxth r5, r5
8c1a: 9301 str r3, [sp, #4]
if(xdiff > 0) {
8c1c: f340 80c6 ble.w 8dac <lv_draw_line+0x794>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8c20: 9500 str r5, [sp, #0]
8c22: 4633 mov r3, r6
8c24: 4652 mov r2, sl
8c26: 4639 mov r1, r7
8c28: a810 add r0, sp, #64 ; 0x40
8c2a: 4d8b ldr r5, [pc, #556] ; (8e58 <lv_draw_line+0x840>)
8c2c: 47a8 blx r5
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8c2e: 2301 movs r3, #1
8c30: e9cd 4300 strd r4, r3, [sp]
8c34: ee18 2a10 vmov r2, s16
8c38: 4633 mov r3, r6
8c3a: 4639 mov r1, r7
8c3c: a81b add r0, sp, #108 ; 0x6c
8c3e: 47a8 blx r5
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);
8c40: f8df a240 ldr.w sl, [pc, #576] ; 8e84 <lv_draw_line+0x86c>
8c44: 2100 movs r1, #0
8c46: a810 add r0, sp, #64 ; 0x40
8c48: 47d0 blx sl
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8c4a: 2100 movs r1, #0
int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL);
8c4c: ee09 0a10 vmov s18, r0
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8c50: a81b add r0, sp, #108 ; 0x6c
8c52: 47d0 blx sl
int16_t mask_top_id = LV_MASK_ID_INV;
int16_t mask_bottom_id = LV_MASK_ID_INV;
if(!dsc->raw_end) {
8c54: f89b 5009 ldrb.w r5, [fp, #9]
8c58: f015 0510 ands.w r5, r5, #16
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8c5c: ee09 0a90 vmov s19, r0
if(!dsc->raw_end) {
8c60: f040 80cf bne.w 8e02 <lv_draw_line+0x7ea>
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);
8c64: 2203 movs r2, #3
8c66: f8bd 4020 ldrh.w r4, [sp, #32]
8c6a: 9201 str r2, [sp, #4]
8c6c: 1bf2 subs r2, r6, r7
8c6e: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
8c72: 9307 str r3, [sp, #28]
8c74: fa19 f282 uxtah r2, r9, r2
8c78: 1b3b subs r3, r7, r4
8c7a: b212 sxth r2, r2
8c7c: 4639 mov r1, r7
8c7e: 9200 str r2, [sp, #0]
8c80: 4f75 ldr r7, [pc, #468] ; (8e58 <lv_draw_line+0x840>)
8c82: b21b sxth r3, r3
8c84: 464a mov r2, r9
8c86: a826 add r0, sp, #152 ; 0x98
8c88: 47b8 blx r7
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);
8c8a: 2202 movs r2, #2
8c8c: 9201 str r2, [sp, #4]
8c8e: 9a07 ldr r2, [sp, #28]
8c90: 4442 add r2, r8
8c92: b212 sxth r2, r2
8c94: 1b33 subs r3, r6, r4
8c96: b21b sxth r3, r3
8c98: 9200 str r2, [sp, #0]
8c9a: 4631 mov r1, r6
8c9c: 4642 mov r2, r8
8c9e: a831 add r0, sp, #196 ; 0xc4
8ca0: 47b8 blx r7
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
8ca2: 4629 mov r1, r5
8ca4: a826 add r0, sp, #152 ; 0x98
8ca6: 47d0 blx sl
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
8ca8: 4629 mov r1, r5
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
8caa: 9009 str r0, [sp, #36] ; 0x24
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
8cac: a831 add r0, sp, #196 ; 0xc4
8cae: 47d0 blx sl
8cb0: 4682 mov sl, r0
}
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8cb2: 4b6a ldr r3, [pc, #424] ; (8e5c <lv_draw_line+0x844>)
* 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);
8cb4: 4e6a ldr r6, [pc, #424] ; (8e60 <lv_draw_line+0x848>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8cb6: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8cb8: 4b6a ldr r3, [pc, #424] ; (8e64 <lv_draw_line+0x84c>)
8cba: 4798 blx r3
draw_area.x1 -= disp_area->x1;
8cbc: f8bd 1030 ldrh.w r1, [sp, #48] ; 0x30
8cc0: 8a02 ldrh r2, [r0, #16]
8cc2: 1a8b subs r3, r1, r2
8cc4: f8ad 3030 strh.w r3, [sp, #48] ; 0x30
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8cc8: 4605 mov r5, r0
draw_area.y1 -= disp_area->y1;
8cca: f8bd 3032 ldrh.w r3, [sp, #50] ; 0x32
8cce: 8a40 ldrh r0, [r0, #18]
8cd0: 1a1b subs r3, r3, r0
8cd2: f8ad 3032 strh.w r3, [sp, #50] ; 0x32
draw_area.x2 -= disp_area->x1;
8cd6: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34
8cda: 1a9a subs r2, r3, r2
8cdc: f8ad 2034 strh.w r2, [sp, #52] ; 0x34
8ce0: 1c5c adds r4, r3, #1
draw_area.y2 -= disp_area->y1;
8ce2: f8bd 2036 ldrh.w r2, [sp, #54] ; 0x36
8ce6: 1a64 subs r4, r4, r1
8ce8: 1a12 subs r2, r2, r0
8cea: b223 sxth r3, r4
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
8cec: a80c add r0, sp, #48 ; 0x30
draw_area.y2 -= disp_area->y1;
8cee: f8ad 2036 strh.w r2, [sp, #54] ; 0x36
8cf2: 9307 str r3, [sp, #28]
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
8cf4: 47b0 blx r6
8cf6: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
8cfa: f080 8087 bcs.w 8e0c <lv_draw_line+0x7f4>
8cfe: a80c add r0, sp, #48 ; 0x30
8d00: 47b0 blx r6
8d02: 4607 mov r7, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8d04: 4b58 ldr r3, [pc, #352] ; (8e68 <lv_draw_line+0x850>)
8d06: 4638 mov r0, r7
8d08: 4798 blx r3
lv_area_t fill_area;
fill_area.x1 = draw_area.x1 + disp_area->x1;
8d0a: 8a2b ldrh r3, [r5, #16]
8d0c: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30
8d10: 441a add r2, r3
8d12: b212 sxth r2, r2
8d14: 9208 str r2, [sp, #32]
8d16: f8ad 2038 strh.w r2, [sp, #56] ; 0x38
fill_area.x2 = draw_area.x2 + disp_area->x1;
8d1a: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34
8d1e: 4413 add r3, r2
8d20: f8ad 303c strh.w r3, [sp, #60] ; 0x3c
fill_area.y1 = draw_area.y1 + disp_area->y1;
8d24: 8a6a ldrh r2, [r5, #18]
8d26: f8bd 3032 ldrh.w r3, [sp, #50] ; 0x32
8d2a: 4413 add r3, r2
8d2c: b21b sxth r3, r3
8d2e: f8ad 303a strh.w r3, [sp, #58] ; 0x3a
fill_area.y2 = fill_area.y1;
8d32: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
int32_t x = vdb->area.x1 + draw_area.x1;
uint32_t mask_p = 0;
_lv_memset_ff(mask_buf, mask_buf_size);
8d36: 4639 mov r1, r7
8d38: 4b4c ldr r3, [pc, #304] ; (8e6c <lv_draw_line+0x854>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8d3a: 4606 mov r6, r0
_lv_memset_ff(mask_buf, mask_buf_size);
8d3c: 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++) {
8d3e: f9bd 8032 ldrsh.w r8, [sp, #50] ; 0x32
8d42: f9b5 3012 ldrsh.w r3, [r5, #18]
uint32_t mask_p = 0;
8d46: f04f 0900 mov.w r9, #0
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
8d4a: 4498 add r8, r3
8d4c: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
8d50: f9b5 2012 ldrsh.w r2, [r5, #18]
8d54: 4413 add r3, r2
8d56: 4598 cmp r8, r3
8d58: dd5b ble.n 8e12 <lv_draw_line+0x7fa>
_lv_memset_ff(mask_buf, mask_buf_size);
}
}
/*Flush the last part*/
if(fill_area.y1 != fill_area.y2) {
8d5a: f9bd 303e ldrsh.w r3, [sp, #62] ; 0x3e
8d5e: f9bd 203a ldrsh.w r2, [sp, #58] ; 0x3a
8d62: 429a cmp r2, r3
8d64: d013 beq.n 8d8e <lv_draw_line+0x776>
fill_area.y2--;
8d66: 3b01 subs r3, #1
8d68: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
_lv_blend_fill(&fill_area, clip,
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
dsc->blend_mode);
8d6c: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(&fill_area, clip,
8d70: f8bb 2000 ldrh.w r2, [fp]
8d74: 4c3e ldr r4, [pc, #248] ; (8e70 <lv_draw_line+0x858>)
8d76: f003 0303 and.w r3, r3, #3
8d7a: 9302 str r3, [sp, #8]
8d7c: f89b 3008 ldrb.w r3, [fp, #8]
8d80: 9301 str r3, [sp, #4]
8d82: 2302 movs r3, #2
8d84: 9300 str r3, [sp, #0]
8d86: a90a add r1, sp, #40 ; 0x28
8d88: 4633 mov r3, r6
8d8a: a80e add r0, sp, #56 ; 0x38
8d8c: 47a0 blx r4
}
_lv_mem_buf_release(mask_buf);
8d8e: 4b39 ldr r3, [pc, #228] ; (8e74 <lv_draw_line+0x85c>)
lv_draw_mask_remove_id(mask_left_id);
8d90: 4c39 ldr r4, [pc, #228] ; (8e78 <lv_draw_line+0x860>)
_lv_mem_buf_release(mask_buf);
8d92: 4630 mov r0, r6
8d94: 4798 blx r3
lv_draw_mask_remove_id(mask_left_id);
8d96: ee19 0a10 vmov r0, s18
8d9a: 47a0 blx r4
lv_draw_mask_remove_id(mask_right_id);
8d9c: ee19 0a90 vmov r0, s19
8da0: 47a0 blx r4
lv_draw_mask_remove_id(mask_top_id);
8da2: 9809 ldr r0, [sp, #36] ; 0x24
8da4: 47a0 blx r4
lv_draw_mask_remove_id(mask_bottom_id);
8da6: 4650 mov r0, sl
8da8: 47a0 blx r4
8daa: e4d3 b.n 8754 <lv_draw_line+0x13c>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8dac: ee18 2a10 vmov r2, s16
8db0: 9400 str r4, [sp, #0]
8db2: 4633 mov r3, r6
8db4: 4639 mov r1, r7
8db6: 4c28 ldr r4, [pc, #160] ; (8e58 <lv_draw_line+0x840>)
8db8: a810 add r0, sp, #64 ; 0x40
8dba: 47a0 blx r4
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8dbc: 2301 movs r3, #1
8dbe: e9cd 5300 strd r5, r3, [sp]
8dc2: 4652 mov r2, sl
8dc4: 4633 mov r3, r6
8dc6: 4639 mov r1, r7
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
8dc8: a81b add r0, sp, #108 ; 0x6c
8dca: 47a0 blx r4
8dcc: e738 b.n 8c40 <lv_draw_line+0x628>
lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y,
8dce: fa14 f386 uxtah r3, r4, r6
8dd2: 2200 movs r2, #0
8dd4: fa14 f487 uxtah r4, r4, r7
8dd8: b221 sxth r1, r4
8dda: e9cd 8200 strd r8, r2, [sp]
8dde: b21b sxth r3, r3
8de0: 464a mov r2, r9
8de2: 4c1d ldr r4, [pc, #116] ; (8e58 <lv_draw_line+0x840>)
8de4: a810 add r0, sp, #64 ; 0x40
8de6: 47a0 blx r4
8de8: fa1f fa86 uxth.w sl, r6
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
8dec: b2ba uxth r2, r7
8dee: 1b51 subs r1, r2, r5
8df0: ebaa 0305 sub.w r3, sl, r5
8df4: 2201 movs r2, #1
8df6: e9cd 8200 strd r8, r2, [sp]
8dfa: b21b sxth r3, r3
8dfc: 464a mov r2, r9
8dfe: b209 sxth r1, r1
8e00: e7e2 b.n 8dc8 <lv_draw_line+0x7b0>
int16_t mask_bottom_id = LV_MASK_ID_INV;
8e02: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff
int16_t mask_top_id = LV_MASK_ID_INV;
8e06: f8cd a024 str.w sl, [sp, #36] ; 0x24
8e0a: e752 b.n 8cb2 <lv_draw_line+0x69a>
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
8e0c: f44f 77f0 mov.w r7, #480 ; 0x1e0
8e10: e778 b.n 8d04 <lv_draw_line+0x6ec>
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
8e12: eb06 0309 add.w r3, r6, r9
8e16: ee08 3a10 vmov s16, r3
8e1a: 9908 ldr r1, [sp, #32]
8e1c: 9b07 ldr r3, [sp, #28]
8e1e: 4c17 ldr r4, [pc, #92] ; (8e7c <lv_draw_line+0x864>)
8e20: ee18 0a10 vmov r0, s16
8e24: fa0f f288 sxth.w r2, r8
8e28: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
8e2a: b920 cbnz r0, 8e36 <lv_draw_line+0x81e>
_lv_memset_00(&mask_buf[mask_p], draw_area_w);
8e2c: 9907 ldr r1, [sp, #28]
8e2e: 4b14 ldr r3, [pc, #80] ; (8e80 <lv_draw_line+0x868>)
8e30: ee18 0a10 vmov r0, s16
8e34: 4798 blx r3
mask_p += draw_area_w;
8e36: 9b07 ldr r3, [sp, #28]
8e38: 4499 add r9, r3
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
8e3a: 444b add r3, r9
8e3c: 429f cmp r7, r3
8e3e: d923 bls.n 8e88 <lv_draw_line+0x870>
fill_area.y2 ++;
8e40: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e
8e44: 3301 adds r3, #1
8e46: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
8e4a: f108 0801 add.w r8, r8, #1
8e4e: e77d b.n 8d4c <lv_draw_line+0x734>
8e50: 0001fd26 .word 0x0001fd26
8e54: 0000ded1 .word 0x0000ded1
8e58: 00009819 .word 0x00009819
8e5c: 00004fdd .word 0x00004fdd
8e60: 0000deb5 .word 0x0000deb5
8e64: 0000da25 .word 0x0000da25
8e68: 0000eefd .word 0x0000eefd
8e6c: 0000f0bd .word 0x0000f0bd
8e70: 000061d9 .word 0x000061d9
8e74: 0000ebb1 .word 0x0000ebb1
8e78: 000097ad .word 0x000097ad
8e7c: 00009769 .word 0x00009769
8e80: 0000f061 .word 0x0000f061
8e84: 00009719 .word 0x00009719
dsc->blend_mode);
8e88: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(&fill_area, clip,
8e8c: f8bb 2000 ldrh.w r2, [fp]
8e90: 4c0d ldr r4, [pc, #52] ; (8ec8 <lv_draw_line+0x8b0>)
8e92: f003 0303 and.w r3, r3, #3
8e96: 9302 str r3, [sp, #8]
8e98: f89b 3008 ldrb.w r3, [fp, #8]
8e9c: 9301 str r3, [sp, #4]
8e9e: 2302 movs r3, #2
8ea0: 9300 str r3, [sp, #0]
8ea2: a90a add r1, sp, #40 ; 0x28
8ea4: 4633 mov r3, r6
8ea6: a80e add r0, sp, #56 ; 0x38
8ea8: 47a0 blx r4
fill_area.y1 = fill_area.y2 + 1;
8eaa: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e
8eae: 3301 adds r3, #1
8eb0: b21b sxth r3, r3
8eb2: f8ad 303a strh.w r3, [sp, #58] ; 0x3a
fill_area.y2 = fill_area.y1;
8eb6: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
_lv_memset_ff(mask_buf, mask_buf_size);
8eba: 4639 mov r1, r7
8ebc: 4b03 ldr r3, [pc, #12] ; (8ecc <lv_draw_line+0x8b4>)
8ebe: 4630 mov r0, r6
8ec0: 4798 blx r3
mask_p = 0;
8ec2: f04f 0900 mov.w r9, #0
8ec6: e7c0 b.n 8e4a <lv_draw_line+0x832>
8ec8: 000061d9 .word 0x000061d9
8ecc: 0000f0bd .word 0x0000f0bd
00008ed0 <mask_mix>:
}
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;
8ed0: 29f9 cmp r1, #249 ; 0xf9
8ed2: d80a bhi.n 8eea <mask_mix+0x1a>
if(mask_new <= LV_OPA_MIN) return 0;
8ed4: 2905 cmp r1, #5
8ed6: d907 bls.n 8ee8 <mask_mix+0x18>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
8ed8: fb10 f001 smulbb r0, r0, r1
8edc: f248 0181 movw r1, #32897 ; 0x8081
8ee0: 4348 muls r0, r1
8ee2: f3c0 50c7 ubfx r0, r0, #23, #8
8ee6: 4770 bx lr
if(mask_new <= LV_OPA_MIN) return 0;
8ee8: 2000 movs r0, #0
}
8eea: 4770 bx lr
00008eec <lv_draw_mask_line>:
{
8eec: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
8ef0: 9d08 ldr r5, [sp, #32]
abs_x -= p->origo.x;
8ef2: 8a6e ldrh r6, [r5, #18]
if(p->flat) {
8ef4: f895 7028 ldrb.w r7, [r5, #40] ; 0x28
abs_x -= p->origo.x;
8ef8: 1b89 subs r1, r1, r6
{
8efa: 4604 mov r4, r0
abs_y -= p->origo.y;
8efc: 8aa8 ldrh r0, [r5, #20]
abs_x -= p->origo.x;
8efe: b20e sxth r6, r1
if(p->steep == 0) {
8f00: 6a29 ldr r1, [r5, #32]
abs_y -= p->origo.y;
8f02: 1a12 subs r2, r2, r0
8f04: b212 sxth r2, r2
if(p->flat) {
8f06: f007 0001 and.w r0, r7, #1
if(p->steep == 0) {
8f0a: bb99 cbnz r1, 8f74 <lv_draw_mask_line+0x88>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
8f0c: 7c2d ldrb r5, [r5, #16]
8f0e: f005 0702 and.w r7, r5, #2
if(p->flat) {
8f12: b180 cbz r0, 8f36 <lv_draw_mask_line+0x4a>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
8f14: b13f cbz r7, 8f26 <lv_draw_mask_line+0x3a>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
8f16: f005 0503 and.w r5, r5, #3
8f1a: 2d02 cmp r5, #2
8f1c: d105 bne.n 8f2a <lv_draw_mask_line+0x3e>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
8f1e: 3201 adds r2, #1
8f20: bfac ite ge
8f22: 2000 movge r0, #0
8f24: 2001 movlt r0, #1
}
8f26: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
8f2a: 2d03 cmp r5, #3
8f2c: d101 bne.n 8f32 <lv_draw_mask_line+0x46>
8f2e: 2a00 cmp r2, #0
8f30: dcf9 bgt.n 8f26 <lv_draw_mask_line+0x3a>
return LV_DRAW_MASK_RES_TRANSP;
8f32: 2000 movs r0, #0
8f34: e7f7 b.n 8f26 <lv_draw_mask_line+0x3a>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP ||
8f36: 2f00 cmp r7, #0
8f38: f040 816c bne.w 9214 <lv_draw_mask_line+0x328>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
8f3c: f005 0003 and.w r0, r5, #3
8f40: 2801 cmp r0, #1
8f42: d10a bne.n 8f5a <lv_draw_mask_line+0x6e>
8f44: 2e00 cmp r6, #0
8f46: dcee bgt.n 8f26 <lv_draw_mask_line+0x3a>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
8f48: 42de cmn r6, r3
8f4a: d4f2 bmi.n 8f32 <lv_draw_mask_line+0x46>
if(k < 0) k = 0;
8f4c: 2e00 cmp r6, #0
8f4e: f300 8163 bgt.w 9218 <lv_draw_mask_line+0x32c>
int32_t k = - abs_x;
8f52: 4271 negs r1, r6
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
8f54: 428b cmp r3, r1
8f56: ddec ble.n 8f32 <lv_draw_mask_line+0x46>
8f58: e098 b.n 908c <lv_draw_mask_line+0x1a0>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) {
8f5a: 2800 cmp r0, #0
8f5c: d1f4 bne.n 8f48 <lv_draw_mask_line+0x5c>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
8f5e: 18f1 adds r1, r6, r3
8f60: f100 8158 bmi.w 9214 <lv_draw_mask_line+0x328>
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
8f64: 2e00 cmp r6, #0
8f66: dce4 bgt.n 8f32 <lv_draw_mask_line+0x46>
int32_t k = - abs_x;
8f68: 4270 negs r0, r6
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
8f6a: 4298 cmp r0, r3
8f6c: f2c0 8099 blt.w 90a2 <lv_draw_mask_line+0x1b6>
return LV_DRAW_MASK_RES_CHANGED;
8f70: 2002 movs r0, #2
8f72: e7d8 b.n 8f26 <lv_draw_mask_line+0x3a>
if(p->flat) {
8f74: f007 0c02 and.w ip, r7, #2
8f78: 2800 cmp r0, #0
8f7a: f000 8096 beq.w 90aa <lv_draw_mask_line+0x1be>
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
8f7e: 69ef ldr r7, [r5, #28]
8f80: fb06 f107 mul.w r1, r6, r7
if(p->yx_steep > 0) {
8f84: 2f00 cmp r7, #0
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
8f86: ea4f 21a1 mov.w r1, r1, asr #10
if(p->inv) {
8f8a: fa5f f08c uxtb.w r0, ip
if(p->yx_steep > 0) {
8f8e: dd05 ble.n 8f9c <lv_draw_mask_line+0xb0>
if(y_at_x > abs_y) {
8f90: 428a cmp r2, r1
8f92: da05 bge.n 8fa0 <lv_draw_mask_line+0xb4>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
8f94: 3800 subs r0, #0
8f96: bf18 it ne
8f98: 2001 movne r0, #1
8f9a: e7c4 b.n 8f26 <lv_draw_mask_line+0x3a>
if(y_at_x < abs_y) {
8f9c: 428a cmp r2, r1
8f9e: dcf9 bgt.n 8f94 <lv_draw_mask_line+0xa8>
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
8fa0: 18f1 adds r1, r6, r3
8fa2: 4379 muls r1, r7
if(p->yx_steep > 0) {
8fa4: 2f00 cmp r7, #0
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
8fa6: ea4f 21a1 mov.w r1, r1, asr #10
if(p->yx_steep > 0) {
8faa: dd05 ble.n 8fb8 <lv_draw_mask_line+0xcc>
if(y_at_x < abs_y) {
8fac: 428a cmp r2, r1
8fae: dd06 ble.n 8fbe <lv_draw_mask_line+0xd2>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
8fb0: fab0 f080 clz r0, r0
8fb4: 0940 lsrs r0, r0, #5
8fb6: e7b6 b.n 8f26 <lv_draw_mask_line+0x3a>
if(y_at_x > abs_y) {
8fb8: 428a cmp r2, r1
8fba: dbf9 blt.n 8fb0 <lv_draw_mask_line+0xc4>
else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
8fbc: 3201 adds r2, #1
8fbe: 69a9 ldr r1, [r5, #24]
8fc0: 0212 lsls r2, r2, #8
8fc2: 434a muls r2, r1
8fc4: 1292 asrs r2, r2, #10
int32_t xei = xe >> 8;
8fc6: ea4f 2c22 mov.w ip, r2, asr #8
if(xef == 0) px_h = 255;
8fca: f012 02ff ands.w r2, r2, #255 ; 0xff
else px_h = 255 - (((255 - xef) * p->spx) >> 8);
8fce: bf1f itttt ne
8fd0: 6a69 ldrne r1, [r5, #36] ; 0x24
8fd2: f1c2 07ff rsbne r7, r2, #255 ; 0xff
8fd6: 434f mulne r7, r1
8fd8: 123f asrne r7, r7, #8
8fda: bf14 ite ne
8fdc: f1c7 07ff rsbne r7, r7, #255 ; 0xff
if(xef == 0) px_h = 255;
8fe0: 27ff moveq r7, #255 ; 0xff
int32_t k = xei - abs_x;
8fe2: ebac 0606 sub.w r6, ip, r6
if(xef) {
8fe6: 2a00 cmp r2, #0
8fe8: d052 beq.n 9090 <lv_draw_mask_line+0x1a4>
if(k >= 0 && k < len) {
8fea: 2e00 cmp r6, #0
8fec: db0f blt.n 900e <lv_draw_mask_line+0x122>
8fee: 42b3 cmp r3, r6
8ff0: dd0d ble.n 900e <lv_draw_mask_line+0x122>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
8ff2: f1c2 02ff rsb r2, r2, #255 ; 0xff
8ff6: f1c7 01ff rsb r1, r7, #255 ; 0xff
8ffa: 4351 muls r1, r2
8ffc: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
9000: b908 cbnz r0, 9006 <lv_draw_mask_line+0x11a>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
9002: 43c9 mvns r1, r1
9004: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9006: 5da0 ldrb r0, [r4, r6]
9008: 4a94 ldr r2, [pc, #592] ; (925c <lv_draw_mask_line+0x370>)
900a: 4790 blx r2
900c: 55a0 strb r0, [r4, r6]
k++;
900e: 1c72 adds r2, r6, #1
mask_buf[k] = mask_mix(mask_buf[k], m);
9010: f8df 8248 ldr.w r8, [pc, #584] ; 925c <lv_draw_mask_line+0x370>
while(px_h > p->spx) {
9014: 6a69 ldr r1, [r5, #36] ; 0x24
if(p->inv) m = 255 - m;
9016: f895 0028 ldrb.w r0, [r5, #40] ; 0x28
while(px_h > p->spx) {
901a: 428f cmp r7, r1
if(p->inv) m = 255 - m;
901c: f000 0002 and.w r0, r0, #2
while(px_h > p->spx) {
9020: dc16 bgt.n 9050 <lv_draw_mask_line+0x164>
if(k < len && k >= 0) {
9022: 4293 cmp r3, r2
9024: dd27 ble.n 9076 <lv_draw_mask_line+0x18a>
9026: 2a00 cmp r2, #0
9028: db25 blt.n 9076 <lv_draw_mask_line+0x18a>
int32_t x_inters = (px_h * p->xy_steep) >> 10;
902a: 69a9 ldr r1, [r5, #24]
902c: 4379 muls r1, r7
902e: 1289 asrs r1, r1, #10
m = (x_inters * px_h) >> 9;
9030: 4379 muls r1, r7
if(p->yx_steep < 0) m = 255 - m;
9032: 69ef ldr r7, [r5, #28]
m = (x_inters * px_h) >> 9;
9034: f3c1 2147 ubfx r1, r1, #9, #8
if(p->yx_steep < 0) m = 255 - m;
9038: 2f00 cmp r7, #0
903a: bfbc itt lt
903c: 43c9 mvnlt r1, r1
903e: b2c9 uxtblt r1, r1
if(p->inv) m = 255 - m;
9040: b108 cbz r0, 9046 <lv_draw_mask_line+0x15a>
9042: 43c9 mvns r1, r1
9044: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9046: 5ca0 ldrb r0, [r4, r2]
9048: 4f84 ldr r7, [pc, #528] ; (925c <lv_draw_mask_line+0x370>)
904a: 47b8 blx r7
904c: 54a0 strb r0, [r4, r2]
904e: e012 b.n 9076 <lv_draw_mask_line+0x18a>
if(k >= 0 && k < len) {
9050: 2a00 cmp r2, #0
9052: db0a blt.n 906a <lv_draw_mask_line+0x17e>
9054: 4293 cmp r3, r2
9056: dd08 ble.n 906a <lv_draw_mask_line+0x17e>
m = px_h - (p->spx >> 1);
9058: eba7 0161 sub.w r1, r7, r1, asr #1
905c: b2c9 uxtb r1, r1
if(p->inv) m = 255 - m;
905e: b108 cbz r0, 9064 <lv_draw_mask_line+0x178>
9060: 43c9 mvns r1, r1
9062: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9064: 5ca0 ldrb r0, [r4, r2]
9066: 47c0 blx r8
9068: 54a0 strb r0, [r4, r2]
px_h -= p->spx;
906a: 6a69 ldr r1, [r5, #36] ; 0x24
k++;
906c: 3201 adds r2, #1
if(k >= len) break;
906e: 4293 cmp r3, r2
px_h -= p->spx;
9070: eba7 0701 sub.w r7, r7, r1
if(k >= len) break;
9074: dcce bgt.n 9014 <lv_draw_mask_line+0x128>
if(p->inv) {
9076: f895 1028 ldrb.w r1, [r5, #40] ; 0x28
907a: 0789 lsls r1, r1, #30
907c: d50a bpl.n 9094 <lv_draw_mask_line+0x1a8>
if(k > len) {
907e: 42b3 cmp r3, r6
9080: f6ff af57 blt.w 8f32 <lv_draw_mask_line+0x46>
if(k >= 0) {
9084: 2e00 cmp r6, #0
9086: f6ff af73 blt.w 8f70 <lv_draw_mask_line+0x84>
_lv_memset_00(&mask_buf[0], k);
908a: 4631 mov r1, r6
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
908c: 4620 mov r0, r4
908e: e009 b.n 90a4 <lv_draw_mask_line+0x1b8>
int32_t k = xei - abs_x;
9090: 4632 mov r2, r6
9092: e7bd b.n 9010 <lv_draw_mask_line+0x124>
if(k < 0) {
9094: 1c50 adds r0, r2, #1
9096: f53f af4c bmi.w 8f32 <lv_draw_mask_line+0x46>
if(k <= len) {
909a: 4283 cmp r3, r0
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
909c: f6ff af68 blt.w 8f70 <lv_draw_mask_line+0x84>
90a0: 1a19 subs r1, r3, r0
90a2: 4420 add r0, r4
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
90a4: 4b6e ldr r3, [pc, #440] ; (9260 <lv_draw_mask_line+0x374>)
90a6: 4798 blx r3
90a8: e762 b.n 8f70 <lv_draw_mask_line+0x84>
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
90aa: 69a9 ldr r1, [r5, #24]
90ac: fb01 f702 mul.w r7, r1, r2
if(p->xy_steep > 0) x_at_y++;
90b0: 2900 cmp r1, #0
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
90b2: ea4f 27a7 mov.w r7, r7, asr #10
if(p->xy_steep > 0) x_at_y++;
90b6: bfcc ite gt
90b8: f107 0e01 addgt.w lr, r7, #1
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
90bc: 46be movle lr, r7
if(x_at_y < abs_x) {
90be: 4576 cmp r6, lr
if(p->inv) {
90c0: fa5f f08c uxtb.w r0, ip
if(x_at_y < abs_x) {
90c4: f73f af66 bgt.w 8f94 <lv_draw_mask_line+0xa8>
if(x_at_y > abs_x + len) {
90c8: eb06 0c03 add.w ip, r6, r3
90cc: 4567 cmp r7, ip
90ce: f73f af6f bgt.w 8fb0 <lv_draw_mask_line+0xc4>
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
90d2: ea4f 2e02 mov.w lr, r2, lsl #8
int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
90d6: 3201 adds r2, #1
90d8: 0212 lsls r2, r2, #8
90da: 434a muls r2, r1
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
90dc: fb01 fe0e mul.w lr, r1, lr
int32_t xei = xe >> 8;
90e0: ea4f 48a2 mov.w r8, r2, asr #18
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
90e4: ebb8 4fae cmp.w r8, lr, asr #18
int32_t xsf = xs & 0xFF;
90e8: f3ce 2c87 ubfx ip, lr, #10, #8
k = xsi - abs_x;
90ec: ebc6 47ae rsb r7, r6, lr, asr #18
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
90f0: f000 8097 beq.w 9222 <lv_draw_mask_line+0x336>
90f4: 2900 cmp r1, #0
90f6: da53 bge.n 91a0 <lv_draw_mask_line+0x2b4>
k--;
90f8: f107 39ff add.w r9, r7, #4294967295 ; 0xffffffff
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
90fc: f1bc 0f00 cmp.w ip, #0
9100: f000 808c beq.w 921c <lv_draw_mask_line+0x330>
y_inters = (xsf * (-p->yx_steep)) >> 10;
9104: 69ee ldr r6, [r5, #28]
9106: 4276 negs r6, r6
9108: fb0c f606 mul.w r6, ip, r6
if(k >= 0 && k < len) {
910c: 2f00 cmp r7, #0
y_inters = (xsf * (-p->yx_steep)) >> 10;
910e: ea4f 26a6 mov.w r6, r6, asr #10
if(k >= 0 && k < len) {
9112: db0c blt.n 912e <lv_draw_mask_line+0x242>
9114: 42bb cmp r3, r7
9116: dd0a ble.n 912e <lv_draw_mask_line+0x242>
m = (y_inters * xsf) >> 9;
9118: fb06 f10c mul.w r1, r6, ip
911c: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
9120: b108 cbz r0, 9126 <lv_draw_mask_line+0x23a>
9122: 43c9 mvns r1, r1
9124: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9126: 5de0 ldrb r0, [r4, r7]
9128: 4a4c ldr r2, [pc, #304] ; (925c <lv_draw_mask_line+0x370>)
912a: 4790 blx r2
912c: 55e0 strb r0, [r4, r7]
if(k >= 0 && k < len) {
912e: f1b9 0f00 cmp.w r9, #0
9132: db17 blt.n 9164 <lv_draw_mask_line+0x278>
9134: 454b cmp r3, r9
9136: dd15 ble.n 9164 <lv_draw_mask_line+0x278>
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
9138: 69aa ldr r2, [r5, #24]
mask_buf[k] = mask_mix(mask_buf[k], m);
913a: f814 0009 ldrb.w r0, [r4, r9]
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
913e: f1c6 06ff rsb r6, r6, #255 ; 0xff
9142: 4251 negs r1, r2
9144: 4371 muls r1, r6
if(p->inv) m = 255 - m;
9146: f895 2028 ldrb.w r2, [r5, #40] ; 0x28
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
914a: 1289 asrs r1, r1, #10
m = 255 - (((255 - y_inters) * x_inters) >> 9);
914c: 4371 muls r1, r6
914e: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
9152: 0796 lsls r6, r2, #30
m = 255 - (((255 - y_inters) * x_inters) >> 9);
9154: bf58 it pl
9156: 43c9 mvnpl r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9158: 4a40 ldr r2, [pc, #256] ; (925c <lv_draw_mask_line+0x370>)
m = 255 - (((255 - y_inters) * x_inters) >> 9);
915a: bf58 it pl
915c: b2c9 uxtbpl r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
915e: 4790 blx r2
9160: f804 0009 strb.w r0, [r4, r9]
if(p->inv) {
9164: f895 2028 ldrb.w r2, [r5, #40] ; 0x28
9168: 0795 lsls r5, r2, #30
916a: d514 bpl.n 9196 <lv_draw_mask_line+0x2aa>
if(k > len) k = len;
916c: 454b cmp r3, r9
916e: f6ff aeff blt.w 8f70 <lv_draw_mask_line+0x84>
else if(k > 0) _lv_memset_00(&mask_buf[0], k);
9172: f1b9 0f00 cmp.w r9, #0
9176: f77f aefb ble.w 8f70 <lv_draw_mask_line+0x84>
917a: 4649 mov r1, r9
917c: e786 b.n 908c <lv_draw_mask_line+0x1a0>
k++;
917e: 3701 adds r7, #1
9180: 429f cmp r7, r3
9182: bfa8 it ge
9184: 461f movge r7, r3
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
9186: 2f00 cmp r7, #0
9188: f43f aed3 beq.w 8f32 <lv_draw_mask_line+0x46>
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
918c: f77f aef0 ble.w 8f70 <lv_draw_mask_line+0x84>
9190: 1bd9 subs r1, r3, r7
9192: 19e0 adds r0, r4, r7
9194: e786 b.n 90a4 <lv_draw_mask_line+0x1b8>
k += 2;
9196: 1c78 adds r0, r7, #1
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
9198: 4283 cmp r3, r0
919a: db3b blt.n 9214 <lv_draw_mask_line+0x328>
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
919c: 2800 cmp r0, #0
919e: e77d b.n 909c <lv_draw_mask_line+0x1b0>
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
91a0: 69ea ldr r2, [r5, #28]
91a2: f1cc 01ff rsb r1, ip, #255 ; 0xff
91a6: 434a muls r2, r1
if(k >= 0 && k < len) {
91a8: 2f00 cmp r7, #0
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
91aa: ea4f 22a2 mov.w r2, r2, asr #10
if(k >= 0 && k < len) {
91ae: db0b blt.n 91c8 <lv_draw_mask_line+0x2dc>
91b0: 42bb cmp r3, r7
91b2: dd09 ble.n 91c8 <lv_draw_mask_line+0x2dc>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
91b4: 4351 muls r1, r2
91b6: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
91ba: b908 cbnz r0, 91c0 <lv_draw_mask_line+0x2d4>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
91bc: 43c9 mvns r1, r1
91be: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
91c0: 5de0 ldrb r0, [r4, r7]
91c2: 4e26 ldr r6, [pc, #152] ; (925c <lv_draw_mask_line+0x370>)
91c4: 47b0 blx r6
91c6: 55e0 strb r0, [r4, r7]
if(k >= 0 && k < len) {
91c8: 1c7e adds r6, r7, #1
91ca: d415 bmi.n 91f8 <lv_draw_mask_line+0x30c>
91cc: 42b3 cmp r3, r6
91ce: dd13 ble.n 91f8 <lv_draw_mask_line+0x30c>
int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10;
91d0: f1c2 00ff rsb r0, r2, #255 ; 0xff
91d4: 69aa ldr r2, [r5, #24]
91d6: fb02 f100 mul.w r1, r2, r0
91da: 1289 asrs r1, r1, #10
if(p->inv) m = 255 - m;
91dc: f895 2028 ldrb.w r2, [r5, #40] ; 0x28
m = ((255 - y_inters) * x_inters) >> 9;
91e0: 4341 muls r1, r0
91e2: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
91e6: 0790 lsls r0, r2, #30
91e8: bf48 it mi
91ea: 43c9 mvnmi r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
91ec: 5da0 ldrb r0, [r4, r6]
91ee: 4a1b ldr r2, [pc, #108] ; (925c <lv_draw_mask_line+0x370>)
if(p->inv) m = 255 - m;
91f0: bf48 it mi
91f2: b2c9 uxtbmi r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
91f4: 4790 blx r2
91f6: 55a0 strb r0, [r4, r6]
if(p->inv) {
91f8: f895 2028 ldrb.w r2, [r5, #40] ; 0x28
91fc: 0792 lsls r2, r2, #30
91fe: d507 bpl.n 9210 <lv_draw_mask_line+0x324>
if(k > len) return LV_DRAW_MASK_RES_TRANSP;
9200: 42bb cmp r3, r7
9202: f6ff ae96 blt.w 8f32 <lv_draw_mask_line+0x46>
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
9206: 2f00 cmp r7, #0
9208: f6ff aeb2 blt.w 8f70 <lv_draw_mask_line+0x84>
920c: 4639 mov r1, r7
920e: e73d b.n 908c <lv_draw_mask_line+0x1a0>
k++;
9210: 3702 adds r7, #2
9212: e7b5 b.n 9180 <lv_draw_mask_line+0x294>
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
9214: 2001 movs r0, #1
9216: e686 b.n 8f26 <lv_draw_mask_line+0x3a>
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
9218: 2b00 cmp r3, #0
921a: e69c b.n 8f56 <lv_draw_mask_line+0x6a>
k--;
921c: 464f mov r7, r9
xsf = 0xFF;
921e: f04f 0cff mov.w ip, #255 ; 0xff
if(k >= 0 && k < len) {
9222: 2f00 cmp r7, #0
9224: db0d blt.n 9242 <lv_draw_mask_line+0x356>
9226: 42bb cmp r3, r7
9228: dd0b ble.n 9242 <lv_draw_mask_line+0x356>
int32_t xef = xe & 0xFF;
922a: f3c2 2187 ubfx r1, r2, #10, #8
m = (xsf + xef) >> 1;
922e: 4461 add r1, ip
9230: f3c1 0147 ubfx r1, r1, #1, #8
if(p->inv) m = 255 - m;
9234: b108 cbz r0, 923a <lv_draw_mask_line+0x34e>
9236: 43c9 mvns r1, r1
9238: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
923a: 5de0 ldrb r0, [r4, r7]
923c: 4a07 ldr r2, [pc, #28] ; (925c <lv_draw_mask_line+0x370>)
923e: 4790 blx r2
9240: 55e0 strb r0, [r4, r7]
if(p->inv) {
9242: f895 2028 ldrb.w r2, [r5, #40] ; 0x28
9246: 0792 lsls r2, r2, #30
9248: d599 bpl.n 917e <lv_draw_mask_line+0x292>
k = xsi - abs_x;
924a: eba8 0106 sub.w r1, r8, r6
if(k >= len) {
924e: 428b cmp r3, r1
9250: f77f ae6f ble.w 8f32 <lv_draw_mask_line+0x46>
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
9254: 2900 cmp r1, #0
9256: f6ff ae8b blt.w 8f70 <lv_draw_mask_line+0x84>
925a: e717 b.n 908c <lv_draw_mask_line+0x1a0>
925c: 00008ed1 .word 0x00008ed1
9260: 0000f061 .word 0x0000f061
00009264 <lv_area_copy>:
while(len) {
9264: 3901 subs r1, #1
9266: f100 0308 add.w r3, r0, #8
*d8 = *s8;
926a: f811 2f01 ldrb.w r2, [r1, #1]!
926e: f800 2b01 strb.w r2, [r0], #1
while(len) {
9272: 4298 cmp r0, r3
9274: d1f9 bne.n 926a <lv_area_copy+0x6>
}
9276: 4770 bx lr
00009278 <lv_draw_mask_radius>:
{
9278: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
927c: b08b sub sp, #44 ; 0x2c
927e: 4606 mov r6, r0
9280: f8dd 8050 ldr.w r8, [sp, #80] ; 0x50
bool outer = p->cfg.outer;
9284: f898 9012 ldrb.w r9, [r8, #18]
int32_t radius = p->cfg.radius;
9288: f9b8 a010 ldrsh.w sl, [r8, #16]
{
928c: 468b mov fp, r1
928e: 461d mov r5, r3
lv_area_copy(&rect, &p->cfg.rect);
9290: f108 0108 add.w r1, r8, #8
9294: 4b92 ldr r3, [pc, #584] ; (94e0 <lv_draw_mask_radius+0x268>)
9296: a808 add r0, sp, #32
bool outer = p->cfg.outer;
9298: f009 0901 and.w r9, r9, #1
{
929c: 4617 mov r7, r2
lv_area_copy(&rect, &p->cfg.rect);
929e: 4798 blx r3
if(outer == false) {
92a0: f9bd 2022 ldrsh.w r2, [sp, #34] ; 0x22
92a4: f1b9 0f00 cmp.w r9, #0
92a8: d13a bne.n 9320 <lv_draw_mask_radius+0xa8>
if(abs_y < rect.y1 || abs_y > rect.y2) {
92aa: 42ba cmp r2, r7
92ac: dd01 ble.n 92b2 <lv_draw_mask_radius+0x3a>
return LV_DRAW_MASK_RES_TRANSP;
92ae: 2000 movs r0, #0
92b0: e039 b.n 9326 <lv_draw_mask_radius+0xae>
if(abs_y < rect.y1 || abs_y > rect.y2) {
92b2: f9bd 3026 ldrsh.w r3, [sp, #38] ; 0x26
92b6: 42bb cmp r3, r7
92b8: dbf9 blt.n 92ae <lv_draw_mask_radius+0x36>
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
92ba: f9bd 1020 ldrsh.w r1, [sp, #32]
92be: eb01 030a add.w r3, r1, sl
92c2: 459b cmp fp, r3
92c4: eba1 040b sub.w r4, r1, fp
92c8: db07 blt.n 92da <lv_draw_mask_radius+0x62>
92ca: f9bd 3024 ldrsh.w r3, [sp, #36] ; 0x24
92ce: eb05 000b add.w r0, r5, fp
92d2: eba3 030a sub.w r3, r3, sl
92d6: 4298 cmp r0, r3
92d8: dd09 ble.n 92ee <lv_draw_mask_radius+0x76>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
92da: eb02 030a add.w r3, r2, sl
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
92de: 429f cmp r7, r3
if(abs_y < rect.y1 || abs_y > rect.y2) {
92e0: f9bd 0026 ldrsh.w r0, [sp, #38] ; 0x26
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
92e4: db3e blt.n 9364 <lv_draw_mask_radius+0xec>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
92e6: eba0 030a sub.w r3, r0, sl
92ea: 429f cmp r7, r3
92ec: dc3a bgt.n 9364 <lv_draw_mask_radius+0xec>
if(outer == false) {
92ee: f1b9 0f00 cmp.w r9, #0
92f2: d125 bne.n 9340 <lv_draw_mask_radius+0xc8>
if(last > len) return LV_DRAW_MASK_RES_TRANSP;
92f4: 42a5 cmp r5, r4
92f6: dbda blt.n 92ae <lv_draw_mask_radius+0x36>
if(last >= 0) {
92f8: 2c00 cmp r4, #0
92fa: db03 blt.n 9304 <lv_draw_mask_radius+0x8c>
_lv_memset_00(&mask_buf[0], last);
92fc: 4b79 ldr r3, [pc, #484] ; (94e4 <lv_draw_mask_radius+0x26c>)
92fe: 4621 mov r1, r4
9300: 4630 mov r0, r6
9302: 4798 blx r3
int32_t first = rect.x2 - abs_x + 1;
9304: f9bd 0024 ldrsh.w r0, [sp, #36] ; 0x24
9308: eba0 010b sub.w r1, r0, fp
930c: 1c48 adds r0, r1, #1
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
930e: 2800 cmp r0, #0
9310: ddcd ble.n 92ae <lv_draw_mask_radius+0x36>
else if(first < len) {
9312: 42a8 cmp r0, r5
9314: da0f bge.n 9336 <lv_draw_mask_radius+0xbe>
_lv_memset_00(&mask_buf[first], len - first);
9316: 1a29 subs r1, r5, r0
_lv_memset_00(&mask_buf[first], len_tmp);
9318: 4430 add r0, r6
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
931a: 4b72 ldr r3, [pc, #456] ; (94e4 <lv_draw_mask_radius+0x26c>)
931c: 4798 blx r3
931e: e00d b.n 933c <lv_draw_mask_radius+0xc4>
if(abs_y < rect.y1 || abs_y > rect.y2) {
9320: 42ba cmp r2, r7
9322: dd03 ble.n 932c <lv_draw_mask_radius+0xb4>
return LV_DRAW_MASK_RES_FULL_COVER;
9324: 2001 movs r0, #1
}
9326: b00b add sp, #44 ; 0x2c
9328: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(abs_y < rect.y1 || abs_y > rect.y2) {
932c: f9bd 3026 ldrsh.w r3, [sp, #38] ; 0x26
9330: 42bb cmp r3, r7
9332: dac2 bge.n 92ba <lv_draw_mask_radius+0x42>
9334: e7f6 b.n 9324 <lv_draw_mask_radius+0xac>
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
9336: b90c cbnz r4, 933c <lv_draw_mask_radius+0xc4>
9338: 42a8 cmp r0, r5
933a: d0f3 beq.n 9324 <lv_draw_mask_radius+0xac>
return LV_DRAW_MASK_RES_CHANGED;
933c: 2002 movs r0, #2
933e: e7f2 b.n 9326 <lv_draw_mask_radius+0xae>
if(first < 0) first = 0;
9340: ea24 74e4 bic.w r4, r4, r4, asr #31
if(first <= len) {
9344: 42ac cmp r4, r5
9346: dcf9 bgt.n 933c <lv_draw_mask_radius+0xc4>
int32_t last = rect.x2 - abs_x - first + 1;
9348: f9bd 1024 ldrsh.w r1, [sp, #36] ; 0x24
934c: eba1 010b sub.w r1, r1, fp
9350: 1b09 subs r1, r1, r4
9352: 3101 adds r1, #1
if(first + last > len) last = len - first;
9354: 1863 adds r3, r4, r1
9356: 42ab cmp r3, r5
9358: bfc8 it gt
935a: 1b29 subgt r1, r5, r4
if(last >= 0) {
935c: 2900 cmp r1, #0
935e: dbed blt.n 933c <lv_draw_mask_radius+0xc4>
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
9360: 1930 adds r0, r6, r4
9362: e7da b.n 931a <lv_draw_mask_radius+0xa2>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9364: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
9368: 3301 adds r3, #1
936a: 1a5b subs r3, r3, r1
int32_t w = lv_area_get_width(&rect);
936c: b21b sxth r3, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
936e: b292 uxth r2, r2
9370: 9302 str r3, [sp, #8]
abs_y -= rect.y1;
9372: 1abf subs r7, r7, r2
uint32_t r2 = p->cfg.radius * p->cfg.radius;
9374: f9b8 3010 ldrsh.w r3, [r8, #16]
9378: 3001 adds r0, #1
abs_y -= rect.y1;
937a: b23f sxth r7, r7
937c: 1a80 subs r0, r0, r2
uint32_t r2 = p->cfg.radius * p->cfg.radius;
937e: 435b muls r3, r3
if(abs_y < radius || abs_y > h - radius - 1) {
9380: 45ba cmp sl, r7
int32_t h = lv_area_get_height(&rect);
9382: b200 sxth r0, r0
uint32_t r2 = p->cfg.radius * p->cfg.radius;
9384: 9301 str r3, [sp, #4]
if(abs_y < radius || abs_y > h - radius - 1) {
9386: f300 81aa bgt.w 96de <lv_draw_mask_radius+0x466>
938a: eba0 030a sub.w r3, r0, sl
938e: 429f cmp r7, r3
9390: dbd4 blt.n 933c <lv_draw_mask_radius+0xc4>
y = radius - (h - abs_y) + 1;
9392: 1bc0 subs r0, r0, r7
if((y - 1) == p->y_prev) {
9394: f8d8 3014 ldr.w r3, [r8, #20]
if(radius <= 256) sqrt_mask = 0x800;
9398: f5ba 7f80 cmp.w sl, #256 ; 0x100
y = radius - (h - abs_y) + 1;
939c: ebaa 0000 sub.w r0, sl, r0
if(radius <= 256) sqrt_mask = 0x800;
93a0: bfd4 ite le
93a2: f44f 6200 movle.w r2, #2048 ; 0x800
93a6: f44f 4200 movgt.w r2, #32768 ; 0x8000
if((y - 1) == p->y_prev) {
93aa: 4298 cmp r0, r3
y = radius - (h - abs_y) + 1;
93ac: f100 0701 add.w r7, r0, #1
if((y - 1) == p->y_prev) {
93b0: d070 beq.n 9494 <lv_draw_mask_radius+0x21c>
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
93b2: 9b01 ldr r3, [sp, #4]
93b4: 9203 str r2, [sp, #12]
93b6: fb00 3010 mls r0, r0, r0, r3
93ba: a905 add r1, sp, #20
93bc: 4b4a ldr r3, [pc, #296] ; (94e8 <lv_draw_mask_radius+0x270>)
93be: 4798 blx r3
93c0: 9a03 ldr r2, [sp, #12]
93c2: e06f b.n 94a4 <lv_draw_mask_radius+0x22c>
x0.f = p->y_prev_x.f;
93c4: f8b8 301a ldrh.w r3, [r8, #26]
93c8: f8ad 3012 strh.w r3, [sp, #18]
x0.i = p->y_prev_x.i;
93cc: f8b8 3018 ldrh.w r3, [r8, #24]
93d0: f8ad 3010 strh.w r3, [sp, #16]
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
93d4: 9b01 ldr r3, [sp, #4]
93d6: 9203 str r2, [sp, #12]
93d8: f107 3bff add.w fp, r7, #4294967295 ; 0xffffffff
93dc: fb0b 301b mls r0, fp, fp, r3
93e0: a905 add r1, sp, #20
93e2: 4b41 ldr r3, [pc, #260] ; (94e8 <lv_draw_mask_radius+0x270>)
93e4: 4798 blx r3
p->y_prev_x.f = x1.f;
93e6: f8bd 3016 ldrh.w r3, [sp, #22]
93ea: f8a8 301a strh.w r3, [r8, #26]
p->y_prev_x.i = x1.i;
93ee: f8bd 3014 ldrh.w r3, [sp, #20]
p->y_prev = y - 1;
93f2: f8c8 b014 str.w fp, [r8, #20]
if(x0.i == x1.i - 1 && x1.f == 0) {
93f6: f8bd 1014 ldrh.w r1, [sp, #20]
p->y_prev_x.i = x0.i;
93fa: f8a8 3018 strh.w r3, [r8, #24]
if(x0.i == x1.i - 1 && x1.f == 0) {
93fe: f8bd 3010 ldrh.w r3, [sp, #16]
p->y_prev_x.i = x0.i;
9402: 9a03 ldr r2, [sp, #12]
if(x0.i == x1.i - 1 && x1.f == 0) {
9404: 3901 subs r1, #1
9406: 428b cmp r3, r1
9408: d107 bne.n 941a <lv_draw_mask_radius+0x1a2>
940a: f8bd 1016 ldrh.w r1, [sp, #22]
940e: b921 cbnz r1, 941a <lv_draw_mask_radius+0x1a2>
x1.f = 0xFF;
9410: 21ff movs r1, #255 ; 0xff
x1.i--;
9412: f8ad 3014 strh.w r3, [sp, #20]
x1.f = 0xFF;
9416: f8ad 1016 strh.w r1, [sp, #22]
if(x0.i == x1.i) {
941a: f8bd 1014 ldrh.w r1, [sp, #20]
941e: 4299 cmp r1, r3
9420: d166 bne.n 94f0 <lv_draw_mask_radius+0x278>
lv_opa_t m = (x0.f + x1.f) >> 1;
9422: f8bd 2012 ldrh.w r2, [sp, #18]
9426: f8bd 1016 ldrh.w r1, [sp, #22]
942a: 440a add r2, r1
942c: f3c2 0247 ubfx r2, r2, #1, #8
if(outer) m = 255 - m;
9430: f1b9 0f00 cmp.w r9, #0
9434: d001 beq.n 943a <lv_draw_mask_radius+0x1c2>
9436: 43d2 mvns r2, r2
9438: b2d2 uxtb r2, r2
int32_t ofs = radius - x0.i - 1;
943a: ebaa 0303 sub.w r3, sl, r3
943e: 3b01 subs r3, #1
if(kl >= 0 && kl < len) {
9440: 18e7 adds r7, r4, r3
9442: d407 bmi.n 9454 <lv_draw_mask_radius+0x1dc>
9444: 42af cmp r7, r5
9446: da05 bge.n 9454 <lv_draw_mask_radius+0x1dc>
mask_buf[kl] = mask_mix(mask_buf[kl], m);
9448: 5df0 ldrb r0, [r6, r7]
944a: f8df 80a0 ldr.w r8, [pc, #160] ; 94ec <lv_draw_mask_radius+0x274>
944e: 4611 mov r1, r2
9450: 47c0 blx r8
9452: 55f0 strb r0, [r6, r7]
int32_t kr = k + (w - ofs - 1);
9454: 9902 ldr r1, [sp, #8]
9456: 1acb subs r3, r1, r3
9458: 1e58 subs r0, r3, #1
if(kr >= 0 && kr < len) {
945a: 1904 adds r4, r0, r4
945c: d406 bmi.n 946c <lv_draw_mask_radius+0x1f4>
945e: 42ac cmp r4, r5
9460: da04 bge.n 946c <lv_draw_mask_radius+0x1f4>
mask_buf[kr] = mask_mix(mask_buf[kr], m);
9462: 5d30 ldrb r0, [r6, r4]
9464: 4b21 ldr r3, [pc, #132] ; (94ec <lv_draw_mask_radius+0x274>)
9466: 4611 mov r1, r2
9468: 4798 blx r3
946a: 5530 strb r0, [r6, r4]
if(outer == false) {
946c: f1b9 0f00 cmp.w r9, #0
9470: d128 bne.n 94c4 <lv_draw_mask_radius+0x24c>
if(kl > len) {
9472: 42af cmp r7, r5
9474: f73f af1b bgt.w 92ae <lv_draw_mask_radius+0x36>
if(kl >= 0) {
9478: 2f00 cmp r7, #0
947a: db03 blt.n 9484 <lv_draw_mask_radius+0x20c>
_lv_memset_00(&mask_buf[0], kl);
947c: 4b19 ldr r3, [pc, #100] ; (94e4 <lv_draw_mask_radius+0x26c>)
947e: 4639 mov r1, r7
9480: 4630 mov r0, r6
9482: 4798 blx r3
if(kr < 0) {
9484: 3401 adds r4, #1
9486: f53f af12 bmi.w 92ae <lv_draw_mask_radius+0x36>
if(kr <= len) {
948a: 42ac cmp r4, r5
948c: f73f af56 bgt.w 933c <lv_draw_mask_radius+0xc4>
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
9490: 1b29 subs r1, r5, r4
9492: e765 b.n 9360 <lv_draw_mask_radius+0xe8>
x1.f = p->y_prev_x.f;
9494: f8b8 301a ldrh.w r3, [r8, #26]
9498: f8ad 3016 strh.w r3, [sp, #22]
x1.i = p->y_prev_x.i;
949c: f8b8 3018 ldrh.w r3, [r8, #24]
94a0: f8ad 3014 strh.w r3, [sp, #20]
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
94a4: 9b01 ldr r3, [sp, #4]
94a6: 9203 str r2, [sp, #12]
94a8: fb07 3017 mls r0, r7, r7, r3
94ac: a904 add r1, sp, #16
94ae: 4b0e ldr r3, [pc, #56] ; (94e8 <lv_draw_mask_radius+0x270>)
94b0: 4798 blx r3
p->y_prev_x.f = x0.f;
94b2: f8bd 3012 ldrh.w r3, [sp, #18]
94b6: f8a8 301a strh.w r3, [r8, #26]
p->y_prev = y;
94ba: f8c8 7014 str.w r7, [r8, #20]
p->y_prev_x.i = x0.i;
94be: f8bd 3010 ldrh.w r3, [sp, #16]
94c2: e798 b.n 93f6 <lv_draw_mask_radius+0x17e>
kl++;
94c4: 1c78 adds r0, r7, #1
94c6: ea20 70e0 bic.w r0, r0, r0, asr #31
if(len_tmp + first > len) len_tmp = len - first;
94ca: 42ac cmp r4, r5
int32_t len_tmp = kr - first;
94cc: bfd4 ite le
94ce: 1a21 suble r1, r4, r0
if(len_tmp + first > len) len_tmp = len - first;
94d0: 1a29 subgt r1, r5, r0
if(first < len && len_tmp >= 0) {
94d2: 42a8 cmp r0, r5
94d4: f6bf af32 bge.w 933c <lv_draw_mask_radius+0xc4>
94d8: 2900 cmp r1, #0
94da: f6ff af2f blt.w 933c <lv_draw_mask_radius+0xc4>
94de: e71b b.n 9318 <lv_draw_mask_radius+0xa0>
94e0: 00009265 .word 0x00009265
94e4: 0000f061 .word 0x0000f061
94e8: 0000e9dd .word 0x0000e9dd
94ec: 00008ed1 .word 0x00008ed1
int32_t ofs = radius - (x0.i + 1);
94f0: 3301 adds r3, #1
94f2: ebaa 0a03 sub.w sl, sl, r3
int32_t kr = k + (w - ofs - 1);
94f6: 9b02 ldr r3, [sp, #8]
int32_t kl = k + ofs;
94f8: eb04 080a add.w r8, r4, sl
int32_t kr = k + (w - ofs - 1);
94fc: eba3 0a0a sub.w sl, r3, sl
9500: f10a 3aff add.w sl, sl, #4294967295 ; 0xffffffff
9504: 4454 add r4, sl
if(outer) {
9506: f1b9 0f00 cmp.w r9, #0
950a: d010 beq.n 952e <lv_draw_mask_radius+0x2b6>
int32_t first = kl + 1;
950c: f108 0001 add.w r0, r8, #1
if(first < 0) first = 0;
9510: ea20 70e0 bic.w r0, r0, r0, asr #31
if(len_tmp + first > len) len_tmp = len - first;
9514: 42a5 cmp r5, r4
int32_t len_tmp = kr - first;
9516: bfac ite ge
9518: 1a21 subge r1, r4, r0
if(len_tmp + first > len) len_tmp = len - first;
951a: 1a29 sublt r1, r5, r0
if(first < len && len_tmp >= 0) {
951c: 42a8 cmp r0, r5
951e: da06 bge.n 952e <lv_draw_mask_radius+0x2b6>
9520: 2900 cmp r1, #0
9522: db04 blt.n 952e <lv_draw_mask_radius+0x2b6>
_lv_memset_00(&mask_buf[first], len_tmp);
9524: 4b79 ldr r3, [pc, #484] ; (970c <lv_draw_mask_radius+0x494>)
9526: 9202 str r2, [sp, #8]
9528: 4430 add r0, r6
952a: 4798 blx r3
952c: 9a02 ldr r2, [sp, #8]
uint32_t i = x0.i + 1;
952e: f8bd b010 ldrh.w fp, [sp, #16]
_lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask);
9532: 9b01 ldr r3, [sp, #4]
9534: 9202 str r2, [sp, #8]
9536: a906 add r1, sp, #24
9538: fb0b 301b mls r0, fp, fp, r3
953c: 4b74 ldr r3, [pc, #464] ; (9710 <lv_draw_mask_radius+0x498>)
953e: 4798 blx r3
if(y_prev.f == 0) {
9540: f8bd 101a ldrh.w r1, [sp, #26]
9544: 4b72 ldr r3, [pc, #456] ; (9710 <lv_draw_mask_radius+0x498>)
9546: 9a02 ldr r2, [sp, #8]
uint32_t i = x0.i + 1;
9548: f10b 0a01 add.w sl, fp, #1
if(y_prev.f == 0) {
954c: b939 cbnz r1, 955e <lv_draw_mask_radius+0x2e6>
y_prev.i--;
954e: f8bd 1018 ldrh.w r1, [sp, #24]
9552: 3901 subs r1, #1
9554: f8ad 1018 strh.w r1, [sp, #24]
y_prev.f = 0xFF;
9558: 21ff movs r1, #255 ; 0xff
955a: f8ad 101a strh.w r1, [sp, #26]
if(y_prev.i >= y) {
955e: f8bd 1018 ldrh.w r1, [sp, #24]
9562: 42b9 cmp r1, r7
9564: db30 blt.n 95c8 <lv_draw_mask_radius+0x350>
_lv_sqrt(r2 - (i * i), &y_next, sqrt_mask);
9566: 9801 ldr r0, [sp, #4]
9568: a907 add r1, sp, #28
956a: fb0a 001a mls r0, sl, sl, r0
956e: 4798 blx r3
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
9570: f8bd 201e ldrh.w r2, [sp, #30]
9574: f8bd 3012 ldrh.w r3, [sp, #18]
9578: f1c2 01ff rsb r1, r2, #255 ; 0xff
957c: f1c3 03ff rsb r3, r3, #255 ; 0xff
9580: 434b muls r3, r1
9582: f3c3 2347 ubfx r3, r3, #9, #8
if(outer) m = 255 - m;
9586: f1b9 0f00 cmp.w r9, #0
958a: d101 bne.n 9590 <lv_draw_mask_radius+0x318>
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
958c: 43db mvns r3, r3
958e: b2db uxtb r3, r3
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
9590: f1b8 0f00 cmp.w r8, #0
9594: db08 blt.n 95a8 <lv_draw_mask_radius+0x330>
9596: 4545 cmp r5, r8
9598: dd06 ble.n 95a8 <lv_draw_mask_radius+0x330>
959a: f816 0008 ldrb.w r0, [r6, r8]
959e: 4f5d ldr r7, [pc, #372] ; (9714 <lv_draw_mask_radius+0x49c>)
95a0: 4619 mov r1, r3
95a2: 47b8 blx r7
95a4: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
95a8: 2c00 cmp r4, #0
95aa: db06 blt.n 95ba <lv_draw_mask_radius+0x342>
95ac: 42a5 cmp r5, r4
95ae: dd04 ble.n 95ba <lv_draw_mask_radius+0x342>
95b0: 5d30 ldrb r0, [r6, r4]
95b2: 4619 mov r1, r3
95b4: 4b57 ldr r3, [pc, #348] ; (9714 <lv_draw_mask_radius+0x49c>)
95b6: 4798 blx r3
95b8: 5530 strb r0, [r6, r4]
kl--;
95ba: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
95be: 3401 adds r4, #1
y_prev.f = y_next.f;
95c0: f8ad 201a strh.w r2, [sp, #26]
i++;
95c4: f10b 0a02 add.w sl, fp, #2
for(; i <= x1.i; i++) {
95c8: f8bd 3014 ldrh.w r3, [sp, #20]
*/
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);
95cc: f8bd b018 ldrh.w fp, [sp, #24]
for(; i <= x1.i; i++) {
95d0: 9302 str r3, [sp, #8]
95d2: f8bd 101a ldrh.w r1, [sp, #26]
95d6: f8bd 201c ldrh.w r2, [sp, #28]
95da: f8bd 301e ldrh.w r3, [sp, #30]
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
95de: ea4f 1b0b mov.w fp, fp, lsl #4
95e2: 2000 movs r0, #0
for(; i <= x1.i; i++) {
95e4: 9f02 ldr r7, [sp, #8]
95e6: 4557 cmp r7, sl
95e8: d240 bcs.n 966c <lv_draw_mask_radius+0x3f4>
95ea: b128 cbz r0, 95f8 <lv_draw_mask_radius+0x380>
95ec: f8ad 101a strh.w r1, [sp, #26]
95f0: f8ad 201c strh.w r2, [sp, #28]
95f4: f8ad 301e strh.w r3, [sp, #30]
if(y_prev.f) {
95f8: f8bd 101a ldrh.w r1, [sp, #26]
95fc: b309 cbz r1, 9642 <lv_draw_mask_radius+0x3ca>
m = (y_prev.f * x1.f) >> 9;
95fe: f8bd 3016 ldrh.w r3, [sp, #22]
9602: 434b muls r3, r1
9604: f3c3 2347 ubfx r3, r3, #9, #8
if(outer) m = 255 - m;
9608: f1b9 0f00 cmp.w r9, #0
960c: d001 beq.n 9612 <lv_draw_mask_radius+0x39a>
960e: 43db mvns r3, r3
9610: b2db uxtb r3, r3
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
9612: f1b8 0f00 cmp.w r8, #0
9616: db08 blt.n 962a <lv_draw_mask_radius+0x3b2>
9618: 4545 cmp r5, r8
961a: dd06 ble.n 962a <lv_draw_mask_radius+0x3b2>
961c: f816 0008 ldrb.w r0, [r6, r8]
9620: 4a3c ldr r2, [pc, #240] ; (9714 <lv_draw_mask_radius+0x49c>)
9622: 4619 mov r1, r3
9624: 4790 blx r2
9626: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
962a: 2c00 cmp r4, #0
962c: db06 blt.n 963c <lv_draw_mask_radius+0x3c4>
962e: 42a5 cmp r5, r4
9630: dd04 ble.n 963c <lv_draw_mask_radius+0x3c4>
9632: 5d30 ldrb r0, [r6, r4]
9634: 4619 mov r1, r3
9636: 4b37 ldr r3, [pc, #220] ; (9714 <lv_draw_mask_radius+0x49c>)
9638: 4798 blx r3
963a: 5530 strb r0, [r6, r4]
kl--;
963c: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
9640: 3401 adds r4, #1
if(outer == 0) {
9642: f1b9 0f00 cmp.w r9, #0
9646: f47f ae79 bne.w 933c <lv_draw_mask_radius+0xc4>
kl++;
964a: f108 0101 add.w r1, r8, #1
if(kl > len) {
964e: 428d cmp r5, r1
9650: f6ff ae2d blt.w 92ae <lv_draw_mask_radius+0x36>
if(kl >= 0) _lv_memset_00(&mask_buf[0], kl);
9654: 2900 cmp r1, #0
9656: db02 blt.n 965e <lv_draw_mask_radius+0x3e6>
9658: 4b2c ldr r3, [pc, #176] ; (970c <lv_draw_mask_radius+0x494>)
965a: 4630 mov r0, r6
965c: 4798 blx r3
if(kr < 0) {
965e: 2c00 cmp r4, #0
9660: f6ff ae25 blt.w 92ae <lv_draw_mask_radius+0x36>
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
9664: 42a5 cmp r5, r4
9666: f77f ae69 ble.w 933c <lv_draw_mask_radius+0xc4>
966a: e711 b.n 9490 <lv_draw_mask_radius+0x218>
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
966c: f3c1 130f ubfx r3, r1, #4, #16
9670: eb03 020b add.w r2, r3, fp
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
9674: 9b01 ldr r3, [sp, #4]
uint32_t raw2 = raw * raw;
9676: fb02 f002 mul.w r0, r2, r2
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
967a: fb0a 331a mls r3, sl, sl, r3
int32_t d = x - raw2;
967e: ebc0 2303 rsb r3, r0, r3, lsl #8
d = (int32_t)d / (int32_t)(2 * raw) + raw;
9682: 0050 lsls r0, r2, #1
9684: fb93 f3f0 sdiv r3, r3, r0
9688: 4413 add r3, r2
q->i = d >> 4;
968a: f3c3 120f ubfx r2, r3, #4, #16
q->f = (d & 0xF) << 4;
968e: 011b lsls r3, r3, #4
9690: f003 03f0 and.w r3, r3, #240 ; 0xf0
m = (y_prev.f + y_next.f) >> 1;
9694: 4419 add r1, r3
9696: f3c1 0147 ubfx r1, r1, #1, #8
if(outer) m = 255 - m;
969a: f1b9 0f00 cmp.w r9, #0
969e: d001 beq.n 96a4 <lv_draw_mask_radius+0x42c>
96a0: 43c9 mvns r1, r1
96a2: b2c9 uxtb r1, r1
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
96a4: f1b8 0f00 cmp.w r8, #0
96a8: db09 blt.n 96be <lv_draw_mask_radius+0x446>
96aa: 4545 cmp r5, r8
96ac: dd07 ble.n 96be <lv_draw_mask_radius+0x446>
96ae: f816 0008 ldrb.w r0, [r6, r8]
96b2: 4f18 ldr r7, [pc, #96] ; (9714 <lv_draw_mask_radius+0x49c>)
96b4: 9103 str r1, [sp, #12]
96b6: 47b8 blx r7
96b8: 9903 ldr r1, [sp, #12]
96ba: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
96be: 2c00 cmp r4, #0
96c0: db05 blt.n 96ce <lv_draw_mask_radius+0x456>
96c2: 42a5 cmp r5, r4
96c4: dd03 ble.n 96ce <lv_draw_mask_radius+0x456>
96c6: 5d30 ldrb r0, [r6, r4]
96c8: 4f12 ldr r7, [pc, #72] ; (9714 <lv_draw_mask_radius+0x49c>)
96ca: 47b8 blx r7
96cc: 5530 strb r0, [r6, r4]
kl--;
96ce: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
96d2: 3401 adds r4, #1
for(; i <= x1.i; i++) {
96d4: f10a 0a01 add.w sl, sl, #1
y_prev.f = y_next.f;
96d8: 4619 mov r1, r3
for(; i <= x1.i; i++) {
96da: 2001 movs r0, #1
96dc: e782 b.n 95e4 <lv_draw_mask_radius+0x36c>
if(y == p->y_prev) {
96de: f8d8 3014 ldr.w r3, [r8, #20]
if(radius <= 256) sqrt_mask = 0x800;
96e2: f5ba 7f80 cmp.w sl, #256 ; 0x100
y = radius - abs_y;
96e6: ebaa 0707 sub.w r7, sl, r7
if(radius <= 256) sqrt_mask = 0x800;
96ea: bfd4 ite le
96ec: f44f 6200 movle.w r2, #2048 ; 0x800
96f0: f44f 4200 movgt.w r2, #32768 ; 0x8000
if(y == p->y_prev) {
96f4: 42bb cmp r3, r7
96f6: f43f ae65 beq.w 93c4 <lv_draw_mask_radius+0x14c>
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
96fa: 9b01 ldr r3, [sp, #4]
96fc: 9203 str r2, [sp, #12]
96fe: fb07 3017 mls r0, r7, r7, r3
9702: a904 add r1, sp, #16
9704: 4b02 ldr r3, [pc, #8] ; (9710 <lv_draw_mask_radius+0x498>)
9706: 4798 blx r3
9708: 9a03 ldr r2, [sp, #12]
970a: e663 b.n 93d4 <lv_draw_mask_radius+0x15c>
970c: 0000f061 .word 0x0000f061
9710: 0000e9dd .word 0x0000e9dd
9714: 00008ed1 .word 0x00008ed1
00009718 <lv_draw_mask_add>:
{
9718: b573 push {r0, r1, r4, r5, r6, lr}
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
971a: 4c0e ldr r4, [pc, #56] ; (9754 <lv_draw_mask_add+0x3c>)
{
971c: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
971e: f854 6033 ldr.w r6, [r4, r3, lsl #3]
9722: b2da uxtb r2, r3
9724: eb04 05c3 add.w r5, r4, r3, lsl #3
9728: b176 cbz r6, 9748 <lv_draw_mask_add+0x30>
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
972a: 3301 adds r3, #1
972c: 2b10 cmp r3, #16
972e: d1f6 bne.n 971e <lv_draw_mask_add+0x6>
LV_LOG_WARN("lv_mask_add: no place to add the mask");
9730: 4b09 ldr r3, [pc, #36] ; (9758 <lv_draw_mask_add+0x40>)
9732: 9300 str r3, [sp, #0]
9734: 2002 movs r0, #2
9736: 4b09 ldr r3, [pc, #36] ; (975c <lv_draw_mask_add+0x44>)
9738: 4909 ldr r1, [pc, #36] ; (9760 <lv_draw_mask_add+0x48>)
973a: 4c0a ldr r4, [pc, #40] ; (9764 <lv_draw_mask_add+0x4c>)
973c: 2257 movs r2, #87 ; 0x57
973e: 47a0 blx r4
return LV_MASK_ID_INV;
9740: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
}
9744: b002 add sp, #8
9746: bd70 pop {r4, r5, r6, pc}
LV_GC_ROOT(_lv_draw_mask_list[i]).param = param;
9748: f844 0033 str.w r0, [r4, r3, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id;
974c: 6069 str r1, [r5, #4]
return i;
974e: b210 sxth r0, r2
9750: e7f8 b.n 9744 <lv_draw_mask_add+0x2c>
9752: bf00 nop
9754: 200086f4 .word 0x200086f4
9758: 0001fd7c .word 0x0001fd7c
975c: 0001fda2 .word 0x0001fda2
9760: 0001fd47 .word 0x0001fd47
9764: 0000e931 .word 0x0000e931
00009768 <lv_draw_mask_apply>:
{
9768: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
_lv_draw_mask_saved_t * m = LV_GC_ROOT(_lv_draw_mask_list);
976c: 4e0e ldr r6, [pc, #56] ; (97a8 <lv_draw_mask_apply+0x40>)
{
976e: 4607 mov r7, r0
9770: 4688 mov r8, r1
9772: 4691 mov r9, r2
9774: 469a mov sl, r3
bool changed = false;
9776: 2500 movs r5, #0
while(m->param) {
9778: 6834 ldr r4, [r6, #0]
977a: b934 cbnz r4, 978a <lv_draw_mask_apply+0x22>
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
977c: 2d00 cmp r5, #0
977e: bf14 ite ne
9780: 2002 movne r0, #2
9782: 2001 moveq r0, #1
}
9784: b002 add sp, #8
9786: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param);
978a: 9400 str r4, [sp, #0]
978c: 6824 ldr r4, [r4, #0]
978e: 4653 mov r3, sl
9790: 464a mov r2, r9
9792: 4641 mov r1, r8
9794: 4638 mov r0, r7
9796: 47a0 blx r4
if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP;
9798: 2800 cmp r0, #0
979a: d0f3 beq.n 9784 <lv_draw_mask_apply+0x1c>
else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true;
979c: 2802 cmp r0, #2
979e: bf08 it eq
97a0: 2501 moveq r5, #1
m++;
97a2: 3608 adds r6, #8
97a4: e7e8 b.n 9778 <lv_draw_mask_apply+0x10>
97a6: bf00 nop
97a8: 200086f4 .word 0x200086f4
000097ac <lv_draw_mask_remove_id>:
if(id != LV_MASK_ID_INV) {
97ac: 1c43 adds r3, r0, #1
p = LV_GC_ROOT(_lv_draw_mask_list[id]).param;
97ae: bf18 it ne
97b0: 4b07 ldrne r3, [pc, #28] ; (97d0 <lv_draw_mask_remove_id+0x24>)
97b2: f04f 0200 mov.w r2, #0
97b6: bf1d ittte ne
97b8: f853 1030 ldrne.w r1, [r3, r0, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL;
97bc: f843 2030 strne.w r2, [r3, r0, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
97c0: eb03 03c0 addne.w r3, r3, r0, lsl #3
void * p = NULL;
97c4: 4611 moveq r1, r2
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
97c6: bf18 it ne
97c8: 605a strne r2, [r3, #4]
}
97ca: 4608 mov r0, r1
97cc: 4770 bx lr
97ce: bf00 nop
97d0: 200086f4 .word 0x200086f4
000097d4 <lv_draw_mask_remove_custom>:
{
97d4: 2200 movs r2, #0
97d6: 4b08 ldr r3, [pc, #32] ; (97f8 <lv_draw_mask_remove_custom+0x24>)
97d8: b530 push {r4, r5, lr}
void * p = NULL;
97da: 4611 mov r1, r2
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
97dc: 4614 mov r4, r2
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
97de: 685d ldr r5, [r3, #4]
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
97e0: 3201 adds r2, #1
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
97e2: 4285 cmp r5, r0
p = LV_GC_ROOT(_lv_draw_mask_list[i]).param;
97e4: bf04 itt eq
97e6: 6819 ldreq r1, [r3, #0]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL;
97e8: e9c3 4400 strdeq r4, r4, [r3]
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
97ec: 2a10 cmp r2, #16
97ee: f103 0308 add.w r3, r3, #8
97f2: d1f4 bne.n 97de <lv_draw_mask_remove_custom+0xa>
}
97f4: 4608 mov r0, r1
97f6: bd30 pop {r4, r5, pc}
97f8: 200086f4 .word 0x200086f4
000097fc <lv_draw_mask_get_cnt>:
{
97fc: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
97fe: 4a05 ldr r2, [pc, #20] ; (9814 <lv_draw_mask_get_cnt+0x18>)
uint8_t cnt = 0;
9800: 4618 mov r0, r3
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
9802: f852 1033 ldr.w r1, [r2, r3, lsl #3]
9806: b109 cbz r1, 980c <lv_draw_mask_get_cnt+0x10>
9808: 3001 adds r0, #1
980a: b2c0 uxtb r0, r0
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
980c: 3301 adds r3, #1
980e: 2b10 cmp r3, #16
9810: d1f7 bne.n 9802 <lv_draw_mask_get_cnt+0x6>
}
9812: 4770 bx lr
9814: 200086f4 .word 0x200086f4
00009818 <lv_draw_mask_line_points_init>:
{
9818: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
981c: f9bd 8018 ldrsh.w r8, [sp, #24]
9820: 4615 mov r5, r2
9822: 460e mov r6, r1
9824: 461f mov r7, r3
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
9826: 212c movs r1, #44 ; 0x2c
9828: 4b3c ldr r3, [pc, #240] ; (991c <lv_draw_mask_line_points_init+0x104>)
{
982a: 4604 mov r4, r0
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
982c: 4798 blx r3
if(p1y > p2y) {
982e: 4545 cmp r5, r8
9830: dd05 ble.n 983e <lv_draw_mask_line_points_init+0x26>
9832: 462b mov r3, r5
9834: 4645 mov r5, r8
9836: 4698 mov r8, r3
9838: 4633 mov r3, r6
p1x = t;
983a: 463e mov r6, r7
p2x = p1x;
983c: 461f mov r7, r3
param->cfg.side = side;
983e: 7c23 ldrb r3, [r4, #16]
9840: f89d 201c ldrb.w r2, [sp, #28]
param->cfg.p1.y = p1y;
9844: 8165 strh r5, [r4, #10]
param->cfg.side = side;
9846: f362 0301 bfi r3, r2, #0, #2
984a: 7423 strb r3, [r4, #16]
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
984c: eba8 0205 sub.w r2, r8, r5
9850: 1bbb subs r3, r7, r6
9852: ea83 70e3 eor.w r0, r3, r3, asr #31
9856: ea82 71e2 eor.w r1, r2, r2, asr #31
985a: eba0 70e3 sub.w r0, r0, r3, asr #31
985e: eba1 71e2 sub.w r1, r1, r2, asr #31
9862: 4288 cmp r0, r1
9864: f894 1028 ldrb.w r1, [r4, #40] ; 0x28
param->origo.y = p1y;
9868: 82a5 strh r5, [r4, #20]
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
986a: bfd4 ite le
986c: 2000 movle r0, #0
986e: 2001 movgt r0, #1
9870: f360 0100 bfi r1, r0, #0, #1
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
9874: 4d2a ldr r5, [pc, #168] ; (9920 <lv_draw_mask_line_points_init+0x108>)
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
9876: f884 1028 strb.w r1, [r4, #40] ; 0x28
param->yx_steep = 0;
987a: 2000 movs r0, #0
if(param->flat) {
987c: 07c9 lsls r1, r1, #31
param->xy_steep = 0;
987e: e9c4 0006 strd r0, r0, [r4, #24]
param->cfg.p1.x = p1x;
9882: 8126 strh r6, [r4, #8]
param->cfg.p2.x = p2x;
9884: 81a7 strh r7, [r4, #12]
param->cfg.p2.y = p2y;
9886: f8a4 800e strh.w r8, [r4, #14]
param->origo.x = p1x;
988a: 8266 strh r6, [r4, #18]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
988c: 6025 str r5, [r4, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_LINE;
988e: 7120 strb r0, [r4, #4]
if(param->flat) {
9890: d524 bpl.n 98dc <lv_draw_mask_line_points_init+0xc4>
if(dx) {
9892: b133 cbz r3, 98a2 <lv_draw_mask_line_points_init+0x8a>
m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/
9894: f44f 1180 mov.w r1, #1048576 ; 0x100000
9898: fb91 f1f3 sdiv r1, r1, r3
param->yx_steep = (m * dy) >> 10;
989c: 4351 muls r1, r2
989e: 1289 asrs r1, r1, #10
98a0: 61e1 str r1, [r4, #28]
if(dy) {
98a2: b132 cbz r2, 98b2 <lv_draw_mask_line_points_init+0x9a>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
98a4: f44f 1180 mov.w r1, #1048576 ; 0x100000
98a8: fb91 f2f2 sdiv r2, r1, r2
param->xy_steep = (m * dx) >> 10;
98ac: 4353 muls r3, r2
98ae: 129b asrs r3, r3, #10
98b0: 61a3 str r3, [r4, #24]
param->steep = param->yx_steep;
98b2: 69e3 ldr r3, [r4, #28]
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
98b4: 7c22 ldrb r2, [r4, #16]
param->steep = param->xy_steep;
98b6: 6223 str r3, [r4, #32]
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
98b8: f012 0203 ands.w r2, r2, #3
if(param->steep > 0) param->inv = 1;
98bc: 6a21 ldr r1, [r4, #32]
98be: f894 3028 ldrb.w r3, [r4, #40] ; 0x28
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
98c2: d11d bne.n 9900 <lv_draw_mask_line_points_init+0xe8>
98c4: f36f 0341 bfc r3, #1, #1
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
98c8: f884 3028 strb.w r3, [r4, #40] ; 0x28
if(param->steep < 0) param->spx = -param->spx;
98cc: 2900 cmp r1, #0
param->spx = param->steep >> 2;
98ce: ea4f 03a1 mov.w r3, r1, asr #2
if(param->steep < 0) param->spx = -param->spx;
98d2: bfb8 it lt
98d4: 425b neglt r3, r3
98d6: 6263 str r3, [r4, #36] ; 0x24
}
98d8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(dy) {
98dc: b132 cbz r2, 98ec <lv_draw_mask_line_points_init+0xd4>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
98de: f44f 1180 mov.w r1, #1048576 ; 0x100000
98e2: fb91 f1f2 sdiv r1, r1, r2
param->xy_steep = (m * dx) >> 10;
98e6: 4359 muls r1, r3
98e8: 1289 asrs r1, r1, #10
98ea: 61a1 str r1, [r4, #24]
if(dx) {
98ec: b133 cbz r3, 98fc <lv_draw_mask_line_points_init+0xe4>
m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/
98ee: f44f 1180 mov.w r1, #1048576 ; 0x100000
98f2: fb91 f3f3 sdiv r3, r1, r3
param->yx_steep = (m * dy) >> 10;
98f6: 435a muls r2, r3
98f8: 1292 asrs r2, r2, #10
98fa: 61e2 str r2, [r4, #28]
param->steep = param->xy_steep;
98fc: 69a3 ldr r3, [r4, #24]
98fe: e7d9 b.n 98b4 <lv_draw_mask_line_points_init+0x9c>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
9900: 2a01 cmp r2, #1
9902: d102 bne.n 990a <lv_draw_mask_line_points_init+0xf2>
9904: f043 0302 orr.w r3, r3, #2
9908: e7de b.n 98c8 <lv_draw_mask_line_points_init+0xb0>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) {
990a: 2a02 cmp r2, #2
990c: d102 bne.n 9914 <lv_draw_mask_line_points_init+0xfc>
if(param->steep > 0) param->inv = 1;
990e: 2900 cmp r1, #0
9910: dcf8 bgt.n 9904 <lv_draw_mask_line_points_init+0xec>
9912: e7d7 b.n 98c4 <lv_draw_mask_line_points_init+0xac>
if(param->steep > 0) param->inv = 0;
9914: 2900 cmp r1, #0
9916: dcd5 bgt.n 98c4 <lv_draw_mask_line_points_init+0xac>
9918: e7f4 b.n 9904 <lv_draw_mask_line_points_init+0xec>
991a: bf00 nop
991c: 0000f061 .word 0x0000f061
9920: 00008eed .word 0x00008eed
00009924 <lv_draw_mask_radius_init>:
{
9924: b5f8 push {r3, r4, r5, r6, r7, lr}
9926: 4604 mov r4, r0
9928: 88c8 ldrh r0, [r1, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
992a: 888d ldrh r5, [r1, #4]
992c: 461f mov r7, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
992e: 884b ldrh r3, [r1, #2]
9930: 3001 adds r0, #1
9932: 1ac0 subs r0, r0, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9934: 880b ldrh r3, [r1, #0]
9936: 3501 adds r5, #1
9938: 1aed subs r5, r5, r3
int32_t short_side = LV_MATH_MIN(w, h);
993a: b200 sxth r0, r0
993c: b22d sxth r5, r5
993e: 42a8 cmp r0, r5
9940: bfa8 it ge
9942: 4628 movge r0, r5
if(radius > short_side >> 1) radius = short_side >> 1;
9944: ebb2 0f60 cmp.w r2, r0, asr #1
9948: ea4f 0360 mov.w r3, r0, asr #1
{
994c: 4616 mov r6, r2
lv_area_copy(&param->cfg.rect, rect);
994e: f104 0008 add.w r0, r4, #8
if(radius > short_side >> 1) radius = short_side >> 1;
9952: bfc8 it gt
9954: b21e sxthgt r6, r3
lv_area_copy(&param->cfg.rect, rect);
9956: 4b08 ldr r3, [pc, #32] ; (9978 <lv_draw_mask_radius_init+0x54>)
9958: 4798 blx r3
param->cfg.outer = inv ? 1 : 0;
995a: 7ca3 ldrb r3, [r4, #18]
param->cfg.radius = radius;
995c: 8226 strh r6, [r4, #16]
param->cfg.outer = inv ? 1 : 0;
995e: f367 0300 bfi r3, r7, #0, #1
9962: 74a3 strb r3, [r4, #18]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius;
9964: 4b05 ldr r3, [pc, #20] ; (997c <lv_draw_mask_radius_init+0x58>)
9966: 6023 str r3, [r4, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS;
9968: 2302 movs r3, #2
996a: 7123 strb r3, [r4, #4]
param->y_prev_x.i = 0;
996c: f04f 4200 mov.w r2, #2147483648 ; 0x80000000
9970: 2300 movs r3, #0
9972: e9c4 2305 strd r2, r3, [r4, #20]
}
9976: bdf8 pop {r3, r4, r5, r6, r7, pc}
9978: 00009265 .word 0x00009265
997c: 00009279 .word 0x00009279
00009980 <grad_get>:
_lv_mem_buf_release(mask_buf);
}
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t grad_get(lv_draw_rect_dsc_t * dsc, lv_coord_t s, lv_coord_t i)
{
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
9980: f9b0 3008 ldrsh.w r3, [r0, #8]
{
9984: b570 push {r4, r5, r6, lr}
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
9986: fb03 f401 mul.w r4, r3, r1
if(i <= min) return dsc->bg_color;
998a: ebb2 2f24 cmp.w r2, r4, asr #8
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
998e: ea4f 2524 mov.w r5, r4, asr #8
if(i <= min) return dsc->bg_color;
9992: dc01 bgt.n 9998 <grad_get+0x18>
9994: 8840 ldrh r0, [r0, #2]
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
d = (s * d) >> 8;
i -= min;
lv_opa_t mix = (i * 255) / d;
return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix);
}
9996: bd70 pop {r4, r5, r6, pc}
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
9998: f9b0 400a ldrsh.w r4, [r0, #10]
999c: fb01 f604 mul.w r6, r1, r4
if(i >= max) return dsc->bg_grad_color;
99a0: ebb2 2f26 cmp.w r2, r6, asr #8
99a4: db01 blt.n 99aa <grad_get+0x2a>
99a6: 8880 ldrh r0, [r0, #4]
99a8: e7f5 b.n 9996 <grad_get+0x16>
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
99aa: 1ae4 subs r4, r4, r3
i -= min;
99ac: 1b52 subs r2, r2, r5
d = (s * d) >> 8;
99ae: fb01 f304 mul.w r3, r1, r4
lv_opa_t mix = (i * 255) / d;
99b2: b212 sxth r2, r2
99b4: ebc2 2202 rsb r2, r2, r2, lsl #8
d = (s * d) >> 8;
99b8: 121b asrs r3, r3, #8
lv_opa_t mix = (i * 255) / d;
99ba: fb92 f3f3 sdiv r3, r2, r3
{
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)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
99be: 8882 ldrh r2, [r0, #4]
99c0: f3c2 1445 ubfx r4, r2, #5, #6
99c4: 8842 ldrh r2, [r0, #2]
99c6: b2db uxtb r3, r3
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
99c8: f1c3 05ff rsb r5, r3, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
99cc: f3c2 1245 ubfx r2, r2, #5, #6
99d0: 436a muls r2, r5
99d2: f248 0181 movw r1, #32897 ; 0x8081
99d6: fb03 2204 mla r2, r3, r4, r2
99da: 434a muls r2, r1
99dc: f3c2 54c5 ubfx r4, r2, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
99e0: 7902 ldrb r2, [r0, #4]
99e2: f002 061f and.w r6, r2, #31
99e6: 7882 ldrb r2, [r0, #2]
99e8: f002 021f and.w r2, r2, #31
99ec: 436a muls r2, r5
99ee: fb03 2206 mla r2, r3, r6, r2
99f2: 434a muls r2, r1
99f4: f3c2 52c4 ubfx r2, r2, #23, #5
99f8: ea42 1244 orr.w r2, r2, r4, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
99fc: 7944 ldrb r4, [r0, #5]
99fe: 78c0 ldrb r0, [r0, #3]
9a00: 08c0 lsrs r0, r0, #3
9a02: 08e4 lsrs r4, r4, #3
9a04: 4368 muls r0, r5
9a06: fb03 0004 mla r0, r3, r4, r0
9a0a: 4348 muls r0, r1
9a0c: 0dc0 lsrs r0, r0, #23
9a0e: ea42 20c0 orr.w r0, r2, r0, lsl #11
return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix);
9a12: e7c0 b.n 9996 <grad_get+0x16>
00009a14 <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)
{
9a14: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
int32_t s_left = sw >> 1;
int32_t s_right = (sw >> 1);
if((sw & 1) == 0) s_left--;
9a18: 07cb lsls r3, r1, #31
int32_t s_left = sw >> 1;
9a1a: ea4f 0a61 mov.w sl, r1, asr #1
/*Horizontal blur*/
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9a1e: ea4f 0540 mov.w r5, r0, lsl #1
{
9a22: b087 sub sp, #28
9a24: bf58 it pl
9a26: f10a 38ff addpl.w r8, sl, #4294967295 ; 0xffffffff
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9a2a: 4b5a ldr r3, [pc, #360] ; (9b94 <shadow_blur_corner+0x180>)
{
9a2c: 4604 mov r4, r0
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9a2e: 4628 mov r0, r5
{
9a30: 460e mov r6, r1
9a32: 4617 mov r7, r2
9a34: bf54 ite pl
9a36: fa0f f888 sxthpl.w r8, r8
9a3a: 46d0 movmi r8, sl
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9a3c: 4798 blx r3
int32_t y;
uint16_t * sh_ups_tmp_buf = sh_ups_buf;
for(y = 0; y < size; y++) {
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
9a3e: 1eab subs r3, r5, #2
9a40: 9301 str r3, [sp, #4]
9a42: ea4f 034a mov.w r3, sl, lsl #1
9a46: 9302 str r3, [sp, #8]
9a48: f06f 0301 mvn.w r3, #1
9a4c: fb08 3303 mla r3, r8, r3, r3
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9a50: 4601 mov r1, r0
for(y = 0; y < size; y++) {
9a52: 46b9 mov r9, r7
9a54: f04f 0b00 mov.w fp, #0
9a58: 9303 str r3, [sp, #12]
9a5a: 455c cmp r4, fp
9a5c: dc25 bgt.n 9aaa <shadow_blur_corner+0x96>
sh_ups_tmp_buf += size;
}
/*Vertical blur*/
uint32_t i;
sh_ups_buf[0] = sh_ups_buf[0] / sw;
9a5e: 883b ldrh r3, [r7, #0]
9a60: fb93 f3f6 sdiv r3, r3, r6
for(i = 1; i < (uint32_t)size * size; i++) {
9a64: fb04 f904 mul.w r9, r4, r4
sh_ups_buf[0] = sh_ups_buf[0] / sw;
9a68: 803b strh r3, [r7, #0]
for(i = 1; i < (uint32_t)size * size; i++) {
9a6a: 463a mov r2, r7
9a6c: 463b mov r3, r7
9a6e: f04f 0c01 mov.w ip, #1
9a72: 45e1 cmp r9, ip
9a74: d844 bhi.n 9b00 <shadow_blur_corner+0xec>
9a76: fb04 f30a mul.w r3, r4, sl
9a7a: f06f 0001 mvn.w r0, #1
9a7e: 4343 muls r3, r0
9a80: 9304 str r3, [sp, #16]
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];
9a82: 1e63 subs r3, r4, #1
9a84: fb05 7303 mla r3, r5, r3, r7
9a88: 9302 str r3, [sp, #8]
9a8a: f108 0301 add.w r3, r8, #1
9a8e: 9301 str r3, [sp, #4]
9a90: fb08 5305 mla r3, r8, r5, r5
9a94: 9303 str r3, [sp, #12]
for(x = 0; x < size; x++) {
9a96: f04f 0c00 mov.w ip, #0
9a9a: 4564 cmp r4, ip
9a9c: dc3e bgt.n 9b1c <shadow_blur_corner+0x108>
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
}
}
_lv_mem_buf_release(sh_ups_blur_buf);
9a9e: 4b3e ldr r3, [pc, #248] ; (9b98 <shadow_blur_corner+0x184>)
9aa0: 4608 mov r0, r1
}
9aa2: b007 add sp, #28
9aa4: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
_lv_mem_buf_release(sh_ups_blur_buf);
9aa8: 4718 bx r3
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
9aaa: 9b01 ldr r3, [sp, #4]
9aac: 9802 ldr r0, [sp, #8]
9aae: f839 2003 ldrh.w r2, [r9, r3]
9ab2: eb00 0c09 add.w ip, r0, r9
9ab6: 9803 ldr r0, [sp, #12]
9ab8: 4372 muls r2, r6
for(x = size - 1; x >= 0; x--) {
9aba: 1e63 subs r3, r4, #1
9abc: 4448 add r0, r9
sh_ups_blur_buf[x] = v;
9abe: f821 2013 strh.w r2, [r1, r3, lsl #1]
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
9ac2: eb03 0e0a add.w lr, r3, sl
9ac6: 4574 cmp r4, lr
9ac8: bfcc ite gt
9aca: f83c e013 ldrhgt.w lr, [ip, r3, lsl #1]
uint32_t right_val = 0;
9ace: f04f 0e00 movle.w lr, #0
v -= right_val;
9ad2: eba2 0e0e sub.w lr, r2, lr
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
9ad6: eba3 0208 sub.w r2, r3, r8
9ada: 2a00 cmp r2, #0
9adc: bfd4 ite le
9ade: f8b9 2000 ldrhle.w r2, [r9]
else left_val = sh_ups_tmp_buf[x - s_left - 1];
9ae2: f830 2013 ldrhgt.w r2, [r0, r3, lsl #1]
for(x = size - 1; x >= 0; x--) {
9ae6: 3b01 subs r3, #1
v += left_val;
9ae8: 4472 add r2, lr
for(x = size - 1; x >= 0; x--) {
9aea: d2e8 bcs.n 9abe <shadow_blur_corner+0xaa>
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
9aec: 4648 mov r0, r9
9aee: 4b2b ldr r3, [pc, #172] ; (9b9c <shadow_blur_corner+0x188>)
9af0: 9104 str r1, [sp, #16]
9af2: 462a mov r2, r5
9af4: 4798 blx r3
sh_ups_tmp_buf += size;
9af6: 44a9 add r9, r5
for(y = 0; y < size; y++) {
9af8: 9904 ldr r1, [sp, #16]
9afa: f10b 0b01 add.w fp, fp, #1
9afe: e7ac b.n 9a5a <shadow_blur_corner+0x46>
if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1];
9b00: 8858 ldrh r0, [r3, #2]
9b02: f833 eb02 ldrh.w lr, [r3], #2
9b06: 4570 cmp r0, lr
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
9b08: bf1c itt ne
9b0a: fb90 f0f6 sdivne r0, r0, r6
9b0e: fa1f fe80 uxthne.w lr, r0
9b12: f8a3 e000 strh.w lr, [r3]
for(i = 1; i < (uint32_t)size * size; i++) {
9b16: f10c 0c01 add.w ip, ip, #1
9b1a: e7aa b.n 9a72 <shadow_blur_corner+0x5e>
sh_ups_tmp_buf = &sh_ups_buf[x];
9b1c: 9804 ldr r0, [sp, #16]
int32_t v = sh_ups_tmp_buf[0] * sw;
9b1e: 8813 ldrh r3, [r2, #0]
9b20: eb00 0902 add.w r9, r0, r2
9b24: 9803 ldr r0, [sp, #12]
9b26: 2700 movs r7, #0
9b28: 4410 add r0, r2
9b2a: 9005 str r0, [sp, #20]
sh_ups_tmp_buf = &sh_ups_buf[x];
9b2c: 4696 mov lr, r2
int32_t v = sh_ups_tmp_buf[0] * sw;
9b2e: 4373 muls r3, r6
9b30: 4690 mov r8, r2
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9b32: 4638 mov r0, r7
sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT);
9b34: 2b00 cmp r3, #0
9b36: bfac ite ge
9b38: f3c3 1b8f ubfxge fp, r3, #6, #16
9b3c: f04f 0b00 movlt.w fp, #0
9b40: f821 b010 strh.w fp, [r1, r0, lsl #1]
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
9b44: eba0 0b0a sub.w fp, r0, sl
9b48: f1bb 0f00 cmp.w fp, #0
9b4c: bfd4 ite le
9b4e: f8b8 b000 ldrhle.w fp, [r8]
else top_val = sh_ups_buf[(y - s_right) * size + x];
9b52: f839 b007 ldrhgt.w fp, [r9, r7]
v -= top_val;
9b56: eba3 0b0b sub.w fp, r3, fp
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
9b5a: 9b01 ldr r3, [sp, #4]
9b5c: 4403 add r3, r0
9b5e: 429c cmp r4, r3
9b60: bfcb itete gt
9b62: 9b05 ldrgt r3, [sp, #20]
else bottom_val = sh_ups_buf[(size - 1) * size + x];
9b64: 9b02 ldrle r3, [sp, #8]
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
9b66: 5bdb ldrhgt r3, [r3, r7]
else bottom_val = sh_ups_buf[(size - 1) * size + x];
9b68: f833 301c ldrhle.w r3, [r3, ip, lsl #1]
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9b6c: 3001 adds r0, #1
9b6e: 4284 cmp r4, r0
v += bottom_val;
9b70: 445b add r3, fp
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9b72: 44a8 add r8, r5
9b74: 442f add r7, r5
9b76: dcdd bgt.n 9b34 <shadow_blur_corner+0x120>
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
9b78: 2300 movs r3, #0
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
9b7a: f831 0013 ldrh.w r0, [r1, r3, lsl #1]
9b7e: f8ae 0000 strh.w r0, [lr]
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
9b82: 3301 adds r3, #1
9b84: 429c cmp r4, r3
9b86: 44ae add lr, r5
9b88: dcf7 bgt.n 9b7a <shadow_blur_corner+0x166>
for(x = 0; x < size; x++) {
9b8a: f10c 0c01 add.w ip, ip, #1
9b8e: 3202 adds r2, #2
9b90: e783 b.n 9a9a <shadow_blur_corner+0x86>
9b92: bf00 nop
9b94: 0000eefd .word 0x0000eefd
9b98: 0000ebb1 .word 0x0000ebb1
9b9c: 0000ec79 .word 0x0000ec79
00009ba0 <lv_area_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;
while(len) {
9ba0: 3901 subs r1, #1
9ba2: f100 0308 add.w r3, r0, #8
*d8 = *s8;
9ba6: f811 2f01 ldrb.w r2, [r1, #1]!
9baa: f800 2b01 strb.w r2, [r0], #1
while(len) {
9bae: 4298 cmp r0, r3
9bb0: d1f9 bne.n 9ba6 <lv_area_copy+0x6>
* @param src pointer to the source area
*/
inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src)
{
_lv_memcpy_small(dest, src, sizeof(lv_area_t));
}
9bb2: 4770 bx lr
00009bb4 <lv_draw_rect_dsc_init>:
{
9bb4: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
9bb6: 4b0f ldr r3, [pc, #60] ; (9bf4 <lv_draw_rect_dsc_init+0x40>)
9bb8: 2154 movs r1, #84 ; 0x54
{
9bba: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
9bbc: 4798 blx r3
dsc->bg_color = LV_COLOR_WHITE;
9bbe: 4b0e ldr r3, [pc, #56] ; (9bf8 <lv_draw_rect_dsc_init+0x44>)
9bc0: 881b ldrh r3, [r3, #0]
9bc2: 8063 strh r3, [r4, #2]
dsc->bg_grad_color = LV_COLOR_BLACK;
9bc4: 2200 movs r2, #0
dsc->bg_grad_color_stop = 0xFF;
9bc6: 23ff movs r3, #255 ; 0xff
dsc->bg_grad_color = LV_COLOR_BLACK;
9bc8: 80a2 strh r2, [r4, #4]
dsc->border_color = LV_COLOR_BLACK;
9bca: 81e2 strh r2, [r4, #14]
dsc->value_color = LV_COLOR_BLACK;
9bcc: f8a4 2046 strh.w r2, [r4, #70] ; 0x46
dsc->shadow_color = LV_COLOR_BLACK;
9bd0: 83e2 strh r2, [r4, #30]
dsc->bg_grad_color_stop = 0xFF;
9bd2: 8163 strh r3, [r4, #10]
dsc->bg_opa = LV_OPA_COVER;
9bd4: 7323 strb r3, [r4, #12]
dsc->outline_opa = LV_OPA_COVER;
9bd6: 7723 strb r3, [r4, #28]
dsc->border_opa = LV_OPA_COVER;
9bd8: 7523 strb r3, [r4, #20]
dsc->pattern_recolor = LV_COLOR_BLACK;
9bda: 86a2 strh r2, [r4, #52] ; 0x34
dsc->pattern_opa = LV_OPA_COVER;
9bdc: f884 3036 strb.w r3, [r4, #54] ; 0x36
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
9be0: 4a06 ldr r2, [pc, #24] ; (9bfc <lv_draw_rect_dsc_init+0x48>)
dsc->value_opa = LV_OPA_COVER;
9be2: f884 3044 strb.w r3, [r4, #68] ; 0x44
dsc->shadow_opa = LV_OPA_COVER;
9be6: f884 3028 strb.w r3, [r4, #40] ; 0x28
dsc->border_side = LV_BORDER_SIDE_FULL;
9bea: 230f movs r3, #15
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
9bec: 6322 str r2, [r4, #48] ; 0x30
dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL;
9bee: 6422 str r2, [r4, #64] ; 0x40
dsc->border_side = LV_BORDER_SIDE_FULL;
9bf0: 8263 strh r3, [r4, #18]
}
9bf2: bd10 pop {r4, pc}
9bf4: 0000f061 .word 0x0000f061
9bf8: 0001fe34 .word 0x0001fe34
9bfc: 20000010 .word 0x20000010
00009c00 <lv_draw_rect>:
{
9c00: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
9c04: ed2d 8b04 vpush {d8-d9}
9c08: b0ad sub sp, #180 ; 0xb4
* @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);
9c0a: 4603 mov r3, r0
9c0c: 9004 str r0, [sp, #16]
9c0e: 88c0 ldrh r0, [r0, #6]
9c10: 885d ldrh r5, [r3, #2]
9c12: 1c43 adds r3, r0, #1
9c14: 1b5b subs r3, r3, r5
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
9c16: b21b sxth r3, r3
9c18: 2b00 cmp r3, #0
{
9c1a: 4688 mov r8, r1
9c1c: 4691 mov r9, r2
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
9c1e: f341 8181 ble.w af24 <lv_draw_rect+0x1324>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9c22: 9b04 ldr r3, [sp, #16]
9c24: 889a ldrh r2, [r3, #4]
9c26: 8819 ldrh r1, [r3, #0]
9c28: 1c53 adds r3, r2, #1
9c2a: 1a5b subs r3, r3, r1
9c2c: b21b sxth r3, r3
9c2e: 2b00 cmp r3, #0
9c30: f341 8178 ble.w af24 <lv_draw_rect+0x1324>
if(dsc->shadow_width == 0) return;
9c34: f9b9 4020 ldrsh.w r4, [r9, #32]
9c38: 2c00 cmp r4, #0
9c3a: f000 8551 beq.w a6e0 <lv_draw_rect+0xae0>
if(dsc->shadow_opa <= LV_OPA_MIN) return;
9c3e: f899 3028 ldrb.w r3, [r9, #40] ; 0x28
9c42: 9307 str r3, [sp, #28]
9c44: 2b05 cmp r3, #5
9c46: f240 854b bls.w a6e0 <lv_draw_rect+0xae0>
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
9c4a: f8d9 7020 ldr.w r7, [r9, #32]
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
9c4e: f9b9 6024 ldrsh.w r6, [r9, #36] ; 0x24
9c52: f9b9 3026 ldrsh.w r3, [r9, #38] ; 0x26
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
9c56: 2f01 cmp r7, #1
9c58: d103 bne.n 9c62 <lv_draw_rect+0x62>
9c5a: b916 cbnz r6, 9c62 <lv_draw_rect+0x62>
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
9c5c: 2b00 cmp r3, #0
9c5e: f340 853f ble.w a6e0 <lv_draw_rect+0xae0>
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9c62: f8b9 7022 ldrh.w r7, [r9, #34] ; 0x22
9c66: b29b uxth r3, r3
9c68: eba7 0c03 sub.w ip, r7, r3
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9c6c: b2b6 uxth r6, r6
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
9c6e: 441f add r7, r3
9c70: 443a add r2, r7
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9c72: 1af7 subs r7, r6, r3
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
9c74: 4433 add r3, r6
9c76: 4403 add r3, r0
9c78: b298 uxth r0, r3
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9c7a: eb04 73d4 add.w r3, r4, r4, lsr #31
9c7e: ea6f 0663 mvn.w r6, r3, asr #1
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
9c82: 105b asrs r3, r3, #1
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
9c84: b292 uxth r2, r2
9c86: 3301 adds r3, #1
9c88: f8ad 2044 strh.w r2, [sp, #68] ; 0x44
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
9c8c: fa12 f283 uxtah r2, r2, r3
sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1;
9c90: fa10 f383 uxtah r3, r0, r3
9c94: f8ad 304e strh.w r3, [sp, #78] ; 0x4e
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9c98: 9b07 ldr r3, [sp, #28]
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
9c9a: f8ad 204c strh.w r2, [sp, #76] ; 0x4c
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9c9e: 4461 add r1, ip
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9ca0: 443d add r5, r7
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9ca2: 2bfb cmp r3, #251 ; 0xfb
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9ca4: b289 uxth r1, r1
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9ca6: b2ad uxth r5, r5
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9ca8: bf28 it cs
9caa: 23ff movcs r3, #255 ; 0xff
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9cac: f8ad 1040 strh.w r1, [sp, #64] ; 0x40
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9cb0: f8ad 5042 strh.w r5, [sp, #66] ; 0x42
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9cb4: fa11 f186 uxtah r1, r1, r6
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
9cb8: fa15 f586 uxtah r5, r5, r6
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9cbc: f8ad 1048 strh.w r1, [sp, #72] ; 0x48
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
9cc0: f8ad 504a strh.w r5, [sp, #74] ; 0x4a
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9cc4: 9307 str r3, [sp, #28]
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
9cc6: f8ad 0046 strh.w r0, [sp, #70] ; 0x46
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
9cca: 4b7b ldr r3, [pc, #492] ; (9eb8 <lv_draw_rect+0x2b8>)
9ccc: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
9cce: 4b7b ldr r3, [pc, #492] ; (9ebc <lv_draw_rect+0x2bc>)
9cd0: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
9cd2: 4b7b ldr r3, [pc, #492] ; (9ec0 <lv_draw_rect+0x2c0>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
9cd4: 4605 mov r5, r0
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
9cd6: 4642 mov r2, r8
9cd8: a912 add r1, sp, #72 ; 0x48
9cda: a814 add r0, sp, #80 ; 0x50
9cdc: 4798 blx r3
if(is_common == false) return;
9cde: 2800 cmp r0, #0
9ce0: f000 84fe beq.w a6e0 <lv_draw_rect+0xae0>
draw_area.x1 -= disp_area->x1;
9ce4: 8a2e ldrh r6, [r5, #16]
9ce6: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
draw_area.y1 -= disp_area->y1;
9cea: 8a68 ldrh r0, [r5, #18]
9cec: f8bd 1052 ldrh.w r1, [sp, #82] ; 0x52
draw_area.x2 -= disp_area->x1;
9cf0: f8bd 2054 ldrh.w r2, [sp, #84] ; 0x54
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
9cf4: 4d73 ldr r5, [pc, #460] ; (9ec4 <lv_draw_rect+0x2c4>)
draw_area.x1 -= disp_area->x1;
9cf6: 1b9b subs r3, r3, r6
9cf8: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
draw_area.y2 -= disp_area->y1;
9cfc: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56
draw_area.x2 -= disp_area->x1;
9d00: 1b92 subs r2, r2, r6
draw_area.y1 -= disp_area->y1;
9d02: 1a09 subs r1, r1, r0
draw_area.y2 -= disp_area->y1;
9d04: 1a1b subs r3, r3, r0
draw_area.y1 -= disp_area->y1;
9d06: f8ad 1052 strh.w r1, [sp, #82] ; 0x52
draw_area.x2 -= disp_area->x1;
9d0a: f8ad 2054 strh.w r2, [sp, #84] ; 0x54
lv_area_copy(&bg_coords, coords);
9d0e: 9904 ldr r1, [sp, #16]
draw_area.y2 -= disp_area->y1;
9d10: f8ad 3056 strh.w r3, [sp, #86] ; 0x56
lv_area_copy(&bg_coords, coords);
9d14: a816 add r0, sp, #88 ; 0x58
9d16: 4b6c ldr r3, [pc, #432] ; (9ec8 <lv_draw_rect+0x2c8>)
9d18: 4798 blx r3
bg_coords.y1 += 1;
9d1a: f8bd 105a ldrh.w r1, [sp, #90] ; 0x5a
bg_coords.x1 += 1;
9d1e: f8bd b058 ldrh.w fp, [sp, #88] ; 0x58
bg_coords.x2 -= 1;
9d22: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
9d26: f8bd 7044 ldrh.w r7, [sp, #68] ; 0x44
bg_coords.y1 += 1;
9d2a: 3101 adds r1, #1
9d2c: b288 uxth r0, r1
bg_coords.x1 += 1;
9d2e: f10b 0b01 add.w fp, fp, #1
bg_coords.y2 -= 1;
9d32: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e
bg_coords.y1 += 1;
9d36: f8ad 005a strh.w r0, [sp, #90] ; 0x5a
bg_coords.x2 -= 1;
9d3a: 1e5a subs r2, r3, #1
bg_coords.x1 += 1;
9d3c: fa1f fb8b uxth.w fp, fp
9d40: f8ad b058 strh.w fp, [sp, #88] ; 0x58
bg_coords.x2 -= 1;
9d44: f8ad 205c strh.w r2, [sp, #92] ; 0x5c
9d48: eba3 0b0b sub.w fp, r3, fp
bg_coords.y2 -= 1;
9d4c: 1e4a subs r2, r1, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9d4e: 1a09 subs r1, r1, r0
9d50: b20b sxth r3, r1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9d52: fa0f fb8b sxth.w fp, fp
int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords));
9d56: 459b cmp fp, r3
9d58: bfa8 it ge
9d5a: 469b movge fp, r3
bg_coords.y2 -= 1;
9d5c: f8ad 205e strh.w r2, [sp, #94] ; 0x5e
int32_t r_bg = dsc->radius;
9d60: f9b9 2000 ldrsh.w r2, [r9]
9d64: f8bd 3040 ldrh.w r3, [sp, #64] ; 0x40
if(r_bg > short_side >> 1) r_bg = short_side >> 1;
9d68: ea4f 0b6b mov.w fp, fp, asr #1
9d6c: 4593 cmp fp, r2
9d6e: f107 0701 add.w r7, r7, #1
9d72: 4659 mov r1, fp
9d74: eba7 0703 sub.w r7, r7, r3
9d78: bfa8 it ge
9d7a: 4611 movge r1, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9d7c: f8bd 3046 ldrh.w r3, [sp, #70] ; 0x46
9d80: ee08 1a90 vmov s17, r1
9d84: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42
9d88: 3301 adds r3, #1
9d8a: 1a5b subs r3, r3, r1
9d8c: b21b sxth r3, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9d8e: b23f sxth r7, r7
short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area));
9d90: 429f cmp r7, r3
9d92: bfa8 it ge
9d94: 461f movge r7, r3
if(r_sh > short_side >> 1) r_sh = short_side >> 1;
9d96: 107f asrs r7, r7, #1
9d98: 4297 cmp r7, r2
9d9a: bfa8 it ge
9d9c: 4617 movge r7, r2
int32_t corner_size = sw + r_sh;
9d9e: eb04 0a07 add.w sl, r4, r7
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
9da2: fb0a f00a mul.w r0, sl, sl
9da6: 0040 lsls r0, r0, #1
9da8: 47a8 blx r5
shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh);
9daa: f9b9 4020 ldrsh.w r4, [r9, #32]
lv_area_copy(&sh_area, coords);
9dae: 4b46 ldr r3, [pc, #280] ; (9ec8 <lv_draw_rect+0x2c8>)
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
9db0: 9005 str r0, [sp, #20]
lv_area_copy(&sh_area, coords);
9db2: a910 add r1, sp, #64 ; 0x40
9db4: a81e add r0, sp, #120 ; 0x78
9db6: 4798 blx r3
9db8: f004 0201 and.w r2, r4, #1
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
9dbc: eb04 73d4 add.w r3, r4, r4, lsr #31
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
9dc0: f8bd 1044 ldrh.w r1, [sp, #68] ; 0x44
9dc4: 9209 str r2, [sp, #36] ; 0x24
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
9dc6: f3c3 034f ubfx r3, r3, #1, #16
9dca: f064 0201 orn r2, r4, #1
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
9dce: f8bd 0040 ldrh.w r0, [sp, #64] ; 0x40
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
9dd2: 441a add r2, r3
9dd4: 443a add r2, r7
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
9dd6: 43c9 mvns r1, r1
9dd8: 4401 add r1, r0
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
9dda: b292 uxth r2, r2
9ddc: f8ad 207c strh.w r2, [sp, #124] ; 0x7c
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
9de0: 440a add r2, r1
9de2: f8ad 2078 strh.w r2, [sp, #120] ; 0x78
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9de6: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46
9dea: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42
sh_area.y1 = sw / 2 + 1;
9dee: 3301 adds r3, #1
9df0: 3201 adds r2, #1
9df2: 1a52 subs r2, r2, r1
9df4: b29b uxth r3, r3
9df6: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
9dfa: 4413 add r3, r2
int32_t size = sw_ori + r;
9dfc: 193e adds r6, r7, r4
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
9dfe: 463a mov r2, r7
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
9e00: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
9e04: 4f31 ldr r7, [pc, #196] ; (9ecc <lv_draw_rect+0x2cc>)
9e06: 2300 movs r3, #0
9e08: a91e add r1, sp, #120 ; 0x78
9e0a: a825 add r0, sp, #148 ; 0x94
9e0c: 47b8 blx r7
if(sw_ori == 1) sw = 1;
9e0e: 2c01 cmp r4, #1
lv_opa_t * mask_line = _lv_mem_buf_get(size);
9e10: 4630 mov r0, r6
else sw = sw_ori >> 1;
9e12: bf18 it ne
9e14: 1064 asrne r4, r4, #1
lv_opa_t * mask_line = _lv_mem_buf_get(size);
9e16: 47a8 blx r5
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
9e18: 0073 lsls r3, r6, #1
9e1a: 9308 str r3, [sp, #32]
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
9e1c: 9b05 ldr r3, [sp, #20]
9e1e: 9306 str r3, [sp, #24]
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
9e20: b233 sxth r3, r6
9e22: ee08 3a10 vmov s16, r3
lv_opa_t * mask_line = _lv_mem_buf_get(size);
9e26: 4607 mov r7, r0
for(y = 0; y < size; y++) {
9e28: f04f 0b00 mov.w fp, #0
9e2c: 455e cmp r6, fp
9e2e: dc09 bgt.n 9e44 <lv_draw_rect+0x244>
_lv_mem_buf_release(mask_line);
9e30: 4b27 ldr r3, [pc, #156] ; (9ed0 <lv_draw_rect+0x2d0>)
9e32: 4638 mov r0, r7
9e34: 4798 blx r3
if(sw == 1) {
9e36: 2c01 cmp r4, #1
for(x = 0; x < size * size; x++) {
9e38: fb06 f506 mul.w r5, r6, r6
if(sw == 1) {
9e3c: f040 819d bne.w a17a <lv_draw_rect+0x57a>
for(i = 0; i < size * size; i++) {
9e40: 2300 movs r3, #0
9e42: e052 b.n 9eea <lv_draw_rect+0x2ea>
_lv_memset_ff(mask_line, size);
9e44: 4b23 ldr r3, [pc, #140] ; (9ed4 <lv_draw_rect+0x2d4>)
9e46: 4631 mov r1, r6
9e48: 4638 mov r0, r7
9e4a: 4798 blx r3
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
9e4c: ab25 add r3, sp, #148 ; 0x94
9e4e: 9300 str r3, [sp, #0]
9e50: 9d25 ldr r5, [sp, #148] ; 0x94
9e52: ee18 3a10 vmov r3, s16
9e56: fa0f f28b sxth.w r2, fp
9e5a: 2100 movs r1, #0
9e5c: 4638 mov r0, r7
9e5e: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
9e60: b950 cbnz r0, 9e78 <lv_draw_rect+0x278>
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
9e62: 9908 ldr r1, [sp, #32]
9e64: 9806 ldr r0, [sp, #24]
9e66: 4b1c ldr r3, [pc, #112] ; (9ed8 <lv_draw_rect+0x2d8>)
9e68: 4798 blx r3
sh_ups_tmp_buf += size;
9e6a: 9a06 ldr r2, [sp, #24]
9e6c: 9b08 ldr r3, [sp, #32]
9e6e: 441a add r2, r3
9e70: 9206 str r2, [sp, #24]
for(y = 0; y < size; y++) {
9e72: f10b 0b01 add.w fp, fp, #1
9e76: e7d9 b.n 9e2c <lv_draw_rect+0x22c>
sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw;
9e78: 783a ldrb r2, [r7, #0]
9e7a: 9b06 ldr r3, [sp, #24]
9e7c: 9806 ldr r0, [sp, #24]
9e7e: 0192 lsls r2, r2, #6
9e80: fb92 f2f4 sdiv r2, r2, r4
9e84: f823 2b02 strh.w r2, [r3], #2
for(i = 1; i < size; i++) {
9e88: 9a08 ldr r2, [sp, #32]
9e8a: 4639 mov r1, r7
9e8c: 1810 adds r0, r2, r0
9e8e: 4298 cmp r0, r3
9e90: d0eb beq.n 9e6a <lv_draw_rect+0x26a>
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
9e92: 468c mov ip, r1
9e94: f811 2f01 ldrb.w r2, [r1, #1]!
9e98: f89c c000 ldrb.w ip, [ip]
9e9c: 4594 cmp ip, r2
9e9e: bf0c ite eq
9ea0: f833 2c02 ldrheq.w r2, [r3, #-2]
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
9ea4: 0192 lslne r2, r2, #6
9ea6: f103 0302 add.w r3, r3, #2
9eaa: bf18 it ne
9eac: fb92 f2f4 sdivne r2, r2, r4
9eb0: f823 2c02 strh.w r2, [r3, #-2]
for(i = 1; i < size; i++) {
9eb4: e7eb b.n 9e8e <lv_draw_rect+0x28e>
9eb6: bf00 nop
9eb8: 00004fdd .word 0x00004fdd
9ebc: 0000da25 .word 0x0000da25
9ec0: 0000ded1 .word 0x0000ded1
9ec4: 0000eefd .word 0x0000eefd
9ec8: 00009ba1 .word 0x00009ba1
9ecc: 00009925 .word 0x00009925
9ed0: 0000ebb1 .word 0x0000ebb1
9ed4: 0000f0bd .word 0x0000f0bd
9ed8: 0000f061 .word 0x0000f061
res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT);
9edc: 9a05 ldr r2, [sp, #20]
9ede: 9905 ldr r1, [sp, #20]
9ee0: f832 2013 ldrh.w r2, [r2, r3, lsl #1]
9ee4: 0992 lsrs r2, r2, #6
9ee6: 54ca strb r2, [r1, r3]
for(i = 0; i < size * size; i++) {
9ee8: 3301 adds r3, #1
9eea: 42ab cmp r3, r5
9eec: d1f6 bne.n 9edc <lv_draw_rect+0x2dc>
9eee: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2;
9ef2: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a
9ef6: 3301 adds r3, #1
9ef8: 1a9b subs r3, r3, r2
9efa: f3c3 31c0 ubfx r1, r3, #15, #1
9efe: fa01 f383 sxtah r3, r1, r3
9f02: eb02 0363 add.w r3, r2, r3, asr #1
9f06: b29a uxth r2, r3
9f08: b21b sxth r3, r3
9f0a: 9308 str r3, [sp, #32]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9f0c: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
9f10: 920a str r2, [sp, #40] ; 0x28
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
9f12: f8bd 2048 ldrh.w r2, [sp, #72] ; 0x48
9f16: 3301 adds r3, #1
9f18: 1a9b subs r3, r3, r2
9f1a: f3c3 31c0 ubfx r1, r3, #15, #1
9f1e: fa01 f383 sxtah r3, r1, r3
9f22: eb02 0363 add.w r3, r2, r3, asr #1
9f26: b29a uxth r2, r3
9f28: b21b sxth r3, r3
9f2a: 9309 str r3, [sp, #36] ; 0x24
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
9f2c: 4bad ldr r3, [pc, #692] ; (a1e4 <lv_draw_rect+0x5e4>)
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
9f2e: 920b str r2, [sp, #44] ; 0x2c
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
9f30: 4798 blx r3
9f32: 2800 cmp r0, #0
9f34: f040 814f bne.w a1d6 <lv_draw_rect+0x5d6>
else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false;
9f38: f9b9 5022 ldrsh.w r5, [r9, #34] ; 0x22
9f3c: 2d00 cmp r5, #0
9f3e: f040 814c bne.w a1da <lv_draw_rect+0x5da>
9f42: f9b9 3024 ldrsh.w r3, [r9, #36] ; 0x24
9f46: 2b00 cmp r3, #0
9f48: f040 8149 bne.w a1de <lv_draw_rect+0x5de>
else if(dsc->shadow_spread != 0) simple_mode = false;
9f4c: f9b9 5026 ldrsh.w r5, [r9, #38] ; 0x26
9f50: fab5 f385 clz r3, r5
9f54: 095b lsrs r3, r3, #5
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
9f56: 9306 str r3, [sp, #24]
9f58: f8bd 004c ldrh.w r0, [sp, #76] ; 0x4c
9f5c: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
9f60: 4da1 ldr r5, [pc, #644] ; (a1e8 <lv_draw_rect+0x5e8>)
9f62: 3001 adds r0, #1
9f64: 1ac0 subs r0, r0, r3
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
9f66: b200 sxth r0, r0
9f68: 4ba0 ldr r3, [pc, #640] ; (a1ec <lv_draw_rect+0x5ec>)
9f6a: 4798 blx r3
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
9f6c: ee18 2a90 vmov r2, s17
9f70: 2301 movs r3, #1
9f72: a916 add r1, sp, #88 ; 0x58
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
9f74: ee08 0a10 vmov s16, r0
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
9f78: a825 add r0, sp, #148 ; 0x94
9f7a: 47a8 blx r5
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
9f7c: 4b9c ldr r3, [pc, #624] ; (a1f0 <lv_draw_rect+0x5f0>)
9f7e: 2100 movs r1, #0
9f80: a825 add r0, sp, #148 ; 0x94
9f82: 4798 blx r3
a.x2 = sh_area.x2;
9f84: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
9f88: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
9f8c: fa1f fb8a uxth.w fp, sl
9f90: 3301 adds r3, #1
9f92: eba3 030b sub.w r3, r3, fp
9f96: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y1;
9f9a: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
9f9e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = a.y1 + corner_size - 1;
9fa2: 3b01 subs r3, #1
9fa4: 445b add r3, fp
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
9fa6: ee08 0a90 vmov s17, r0
a.y2 = a.y1 + corner_size - 1;
9faa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
bool has_com = _lv_area_intersect(&ca, &a, clip);
9fae: 4642 mov r2, r8
9fb0: 4b90 ldr r3, [pc, #576] ; (a1f4 <lv_draw_rect+0x5f4>)
9fb2: a918 add r1, sp, #96 ; 0x60
9fb4: a81a add r0, sp, #104 ; 0x68
9fb6: 4798 blx r3
if(has_com) {
9fb8: 2800 cmp r0, #0
9fba: d038 beq.n a02e <lv_draw_rect+0x42e>
if(ca.y2 > h_half) ca.y2 = h_half;
9fbc: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
9fc0: 9a08 ldr r2, [sp, #32]
9fc2: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
9fc6: 4293 cmp r3, r2
9fc8: bfc4 itt gt
9fca: 4613 movgt r3, r2
9fcc: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
9fd0: 9a09 ldr r2, [sp, #36] ; 0x24
9fd2: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
9fd6: 4293 cmp r3, r2
9fd8: bfde ittt le
9fda: 9b0b ldrle r3, [sp, #44] ; 0x2c
9fdc: 3301 addle r3, #1
9fde: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68
9fe2: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
9fe6: 3601 adds r6, #1
9fe8: 1b76 subs r6, r6, r5
9fea: b236 sxth r6, r6
if(w > 0) {
9fec: 2e00 cmp r6, #0
9fee: dd1e ble.n a02e <lv_draw_rect+0x42e>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9ff0: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
9ff4: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
9ff8: 3301 adds r3, #1
9ffa: 1a9b subs r3, r3, r2
9ffc: b21b sxth r3, r3
9ffe: 930c str r3, [sp, #48] ; 0x30
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a000: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
a004: 1ad2 subs r2, r2, r3
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a006: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60
a00a: 1aed subs r5, r5, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a00c: 9b05 ldr r3, [sp, #20]
a00e: fb0a 5502 mla r5, sl, r2, r5
a012: 441d add r5, r3
lv_area_copy(&fa, &ca);
a014: a91a add r1, sp, #104 ; 0x68
a016: 4b78 ldr r3, [pc, #480] ; (a1f8 <lv_draw_rect+0x5f8>)
a018: a81e add r0, sp, #120 ; 0x78
a01a: 4798 blx r3
fa.y2 = fa.y1;
a01c: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a020: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a024: 2700 movs r7, #0
a026: 9b0c ldr r3, [sp, #48] ; 0x30
a028: 429f cmp r7, r3
a02a: f2c0 80e9 blt.w a200 <lv_draw_rect+0x600>
a.x2 = sh_area.x2;
a02e: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
a.y1 = sh_area.y2 - corner_size + 1;
a032: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a.x2 = sh_area.x2;
a036: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
a03a: 3301 adds r3, #1
a03c: eba3 030b sub.w r3, r3, fp
a040: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y2 - corner_size + 1;
a044: 1c53 adds r3, r2, #1
a046: eba3 030b sub.w r3, r3, fp
a04a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2;
a04e: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a052: 4b68 ldr r3, [pc, #416] ; (a1f4 <lv_draw_rect+0x5f4>)
a054: 4642 mov r2, r8
a056: a918 add r1, sp, #96 ; 0x60
a058: a81a add r0, sp, #104 ; 0x68
a05a: 4798 blx r3
if(has_com) {
a05c: 2800 cmp r0, #0
a05e: d03a beq.n a0d6 <lv_draw_rect+0x4d6>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a060: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a
a064: 9a08 ldr r2, [sp, #32]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a066: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a06a: 4293 cmp r3, r2
a06c: bfd8 it le
a06e: 9b0a ldrle r3, [sp, #40] ; 0x28
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
a070: 9a09 ldr r2, [sp, #36] ; 0x24
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a072: bfdc itt le
a074: 3301 addle r3, #1
a076: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
a07a: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
a07e: 4293 cmp r3, r2
a080: bfde ittt le
a082: 9b0b ldrle r3, [sp, #44] ; 0x2c
a084: 3301 addle r3, #1
a086: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68
a08a: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a08e: 3601 adds r6, #1
a090: 1b76 subs r6, r6, r5
a092: b236 sxth r6, r6
if(w > 0) {
a094: 2e00 cmp r6, #0
a096: dd1e ble.n a0d6 <lv_draw_rect+0x4d6>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a098: f9bd 106e ldrsh.w r1, [sp, #110] ; 0x6e
a09c: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
a0a0: 1c4a adds r2, r1, #1
a0a2: 1ad2 subs r2, r2, r3
a0a4: b213 sxth r3, r2
a0a6: 930b str r3, [sp, #44] ; 0x2c
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a0a8: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a0ac: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a0b0: 1aad subs r5, r5, r2
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a0b2: 1a5b subs r3, r3, r1
a0b4: fb0a 5503 mla r5, sl, r3, r5
a0b8: 9b05 ldr r3, [sp, #20]
lv_area_copy(&fa, &ca);
a0ba: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a0bc: 441d add r5, r3
lv_area_copy(&fa, &ca);
a0be: a81e add r0, sp, #120 ; 0x78
a0c0: 4b4d ldr r3, [pc, #308] ; (a1f8 <lv_draw_rect+0x5f8>)
a0c2: 4798 blx r3
fa.y1 = fa.y2; /*Fill from bottom to top*/
a0c4: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a0c8: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a0cc: 2700 movs r7, #0
a0ce: 9b0b ldr r3, [sp, #44] ; 0x2c
a0d0: 429f cmp r7, r3
a0d2: f2c0 80c2 blt.w a25a <lv_draw_rect+0x65a>
a.x2 = sh_area.x2;
a0d6: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
a0da: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
a0de: 3301 adds r3, #1
a0e0: eba3 030b sub.w r3, r3, fp
a0e4: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y1 + corner_size;
a0e8: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a0ec: 445b add r3, fp
a0ee: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a0f2: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a0f6: eba3 030b sub.w r3, r3, fp
a0fa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a0fe: 4642 mov r2, r8
a100: 4b3c ldr r3, [pc, #240] ; (a1f4 <lv_draw_rect+0x5f4>)
a102: a918 add r1, sp, #96 ; 0x60
a104: a81a add r0, sp, #104 ; 0x68
a106: 4798 blx r3
if(has_com) {
a108: b390 cbz r0, a170 <lv_draw_rect+0x570>
if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2);
a10a: 9b06 ldr r3, [sp, #24]
a10c: b14b cbz r3, a122 <lv_draw_rect+0x522>
a10e: 9b04 ldr r3, [sp, #16]
a110: f9bd 2068 ldrsh.w r2, [sp, #104] ; 0x68
a114: f9b3 3004 ldrsh.w r3, [r3, #4]
a118: 4293 cmp r3, r2
a11a: bfb8 it lt
a11c: 4613 movlt r3, r2
a11e: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a122: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a126: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
a12a: 3501 adds r5, #1
a12c: 1aed subs r5, r5, r3
a12e: b22d sxth r5, r5
if(w > 0) {
a130: 2d00 cmp r5, #0
a132: dd1d ble.n a170 <lv_draw_rect+0x570>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a134: f8bd 206e ldrh.w r2, [sp, #110] ; 0x6e
a138: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a
a13c: 3201 adds r2, #1
a13e: 1a52 subs r2, r2, r1
a140: b212 sxth r2, r2
a142: 920b str r2, [sp, #44] ; 0x2c
sh_buf_tmp += ca.x1 - a.x1;
a144: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
a148: f10a 36ff add.w r6, sl, #4294967295 ; 0xffffffff
sh_buf_tmp += ca.x1 - a.x1;
a14c: 1a9b subs r3, r3, r2
a14e: fb0a 3606 mla r6, sl, r6, r3
a152: 9b05 ldr r3, [sp, #20]
lv_area_copy(&fa, &ca);
a154: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += ca.x1 - a.x1;
a156: 441e add r6, r3
lv_area_copy(&fa, &ca);
a158: a81e add r0, sp, #120 ; 0x78
a15a: 4b27 ldr r3, [pc, #156] ; (a1f8 <lv_draw_rect+0x5f8>)
a15c: 4798 blx r3
fa.y2 = fa.y1;
a15e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a162: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a166: 2700 movs r7, #0
a168: 9b0b ldr r3, [sp, #44] ; 0x2c
a16a: 429f cmp r7, r3
a16c: f2c0 80a2 blt.w a2b4 <lv_draw_rect+0x6b4>
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
a170: 9a05 ldr r2, [sp, #20]
for(x = 0; x < corner_size / 2; x++) {
a172: ea4f 066a mov.w r6, sl, asr #1
a176: 2000 movs r0, #0
a178: e0d7 b.n a32a <lv_draw_rect+0x72a>
shadow_blur_corner(size, sw, sh_buf);
a17a: b230 sxth r0, r6
a17c: 4621 mov r1, r4
a17e: 9a05 ldr r2, [sp, #20]
a180: 4f1e ldr r7, [pc, #120] ; (a1fc <lv_draw_rect+0x5fc>)
a182: 9006 str r0, [sp, #24]
a184: 47b8 blx r7
sw += sw_ori & 1;
a186: 9909 ldr r1, [sp, #36] ; 0x24
a188: 4421 add r1, r4
if(sw > 1) {
a18a: 2901 cmp r1, #1
a18c: dd0c ble.n a1a8 <lv_draw_rect+0x5a8>
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a18e: 9b05 ldr r3, [sp, #20]
a190: 9a05 ldr r2, [sp, #20]
a192: 881b ldrh r3, [r3, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a194: 9806 ldr r0, [sp, #24]
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a196: 019b lsls r3, r3, #6
for(i = 1; i < (uint32_t) size * size; i++) {
a198: 2401 movs r4, #1
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a19a: fbb3 f3f1 udiv r3, r3, r1
a19e: 8013 strh r3, [r2, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a1a0: 42ac cmp r4, r5
a1a2: d303 bcc.n a1ac <lv_draw_rect+0x5ac>
shadow_blur_corner(size, sw, sh_buf);
a1a4: 9a05 ldr r2, [sp, #20]
a1a6: 47b8 blx r7
for(i = 1; i < (uint32_t) size * size; i++) {
a1a8: 2300 movs r3, #0
a1aa: e011 b.n a1d0 <lv_draw_rect+0x5d0>
if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1];
a1ac: 8853 ldrh r3, [r2, #2]
a1ae: f832 6b02 ldrh.w r6, [r2], #2
a1b2: 42b3 cmp r3, r6
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
a1b4: bf1e ittt ne
a1b6: 019e lslne r6, r3, #6
a1b8: fbb6 f6f1 udivne r6, r6, r1
a1bc: b2b6 uxthne r6, r6
a1be: 8016 strh r6, [r2, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a1c0: 3401 adds r4, #1
a1c2: e7ed b.n a1a0 <lv_draw_rect+0x5a0>
res_buf[x] = sh_buf[x];
a1c4: 9a05 ldr r2, [sp, #20]
a1c6: 9905 ldr r1, [sp, #20]
a1c8: f832 2013 ldrh.w r2, [r2, r3, lsl #1]
a1cc: 54ca strb r2, [r1, r3]
for(x = 0; x < size * size; x++) {
a1ce: 3301 adds r3, #1
a1d0: 42ab cmp r3, r5
a1d2: d1f7 bne.n a1c4 <lv_draw_rect+0x5c4>
a1d4: e68b b.n 9eee <lv_draw_rect+0x2ee>
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
a1d6: 2300 movs r3, #0
a1d8: e6bd b.n 9f56 <lv_draw_rect+0x356>
a1da: 9006 str r0, [sp, #24]
a1dc: e6bc b.n 9f58 <lv_draw_rect+0x358>
a1de: 9506 str r5, [sp, #24]
a1e0: e6ba b.n 9f58 <lv_draw_rect+0x358>
a1e2: bf00 nop
a1e4: 000097fd .word 0x000097fd
a1e8: 00009925 .word 0x00009925
a1ec: 0000eefd .word 0x0000eefd
a1f0: 00009719 .word 0x00009719
a1f4: 0000ded1 .word 0x0000ded1
a1f8: 00009ba1 .word 0x00009ba1
a1fc: 00009a15 .word 0x00009a15
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a200: 4629 mov r1, r5
a202: 4b4d ldr r3, [pc, #308] ; (a338 <lv_draw_rect+0x738>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a204: 4c4d ldr r4, [pc, #308] ; (a33c <lv_draw_rect+0x73c>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a206: 4632 mov r2, r6
a208: ee18 0a10 vmov r0, s16
a20c: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a20e: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a212: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a216: 4633 mov r3, r6
a218: ee18 0a10 vmov r0, s16
a21c: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a21e: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
a222: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a224: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a226: 9b07 ldr r3, [sp, #28]
a228: 4c45 ldr r4, [pc, #276] ; (a340 <lv_draw_rect+0x740>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a22a: bf08 it eq
a22c: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a22e: e9cd 0300 strd r0, r3, [sp]
a232: a91e add r1, sp, #120 ; 0x78
a234: ee18 3a10 vmov r3, s16
a238: f8b9 201e ldrh.w r2, [r9, #30]
a23c: 4640 mov r0, r8
a23e: 47a0 blx r4
fa.y1++;
a240: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a244: 3301 adds r3, #1
a246: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
a24a: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a24e: 3301 adds r3, #1
a250: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
a254: 4455 add r5, sl
for(y = 0; y < h; y++) {
a256: 3701 adds r7, #1
a258: e6e5 b.n a026 <lv_draw_rect+0x426>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a25a: 4629 mov r1, r5
a25c: 4b36 ldr r3, [pc, #216] ; (a338 <lv_draw_rect+0x738>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a25e: 4c37 ldr r4, [pc, #220] ; (a33c <lv_draw_rect+0x73c>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a260: 4632 mov r2, r6
a262: ee18 0a10 vmov r0, s16
a266: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a268: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a26c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a270: 4633 mov r3, r6
a272: ee18 0a10 vmov r0, s16
a276: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a278: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
a27c: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a27e: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a280: 9b07 ldr r3, [sp, #28]
a282: 4c2f ldr r4, [pc, #188] ; (a340 <lv_draw_rect+0x740>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a284: bf08 it eq
a286: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a288: e9cd 0300 strd r0, r3, [sp]
a28c: a91e add r1, sp, #120 ; 0x78
a28e: ee18 3a10 vmov r3, s16
a292: f8b9 201e ldrh.w r2, [r9, #30]
a296: 4640 mov r0, r8
a298: 47a0 blx r4
fa.y1--;
a29a: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a29e: 3b01 subs r3, #1
a2a0: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
a2a4: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a2a8: 3b01 subs r3, #1
a2aa: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
a2ae: 4455 add r5, sl
for(y = 0; y < h; y++) {
a2b0: 3701 adds r7, #1
a2b2: e70c b.n a0ce <lv_draw_rect+0x4ce>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a2b4: 4b20 ldr r3, [pc, #128] ; (a338 <lv_draw_rect+0x738>)
a2b6: ee18 0a10 vmov r0, s16
a2ba: 462a mov r2, r5
a2bc: 4631 mov r1, r6
a2be: 4798 blx r3
if(simple_mode) {
a2c0: 9b06 ldr r3, [sp, #24]
a2c2: b953 cbnz r3, a2da <lv_draw_rect+0x6da>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a2c4: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a2c8: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a2cc: 4c1b ldr r4, [pc, #108] ; (a33c <lv_draw_rect+0x73c>)
a2ce: ee18 0a10 vmov r0, s16
a2d2: 462b mov r3, r5
a2d4: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a2d6: 2801 cmp r0, #1
a2d8: d100 bne.n a2dc <lv_draw_rect+0x6dc>
a2da: 2002 movs r0, #2
_lv_blend_fill(clip, &fa,
a2dc: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
a2e0: 9302 str r3, [sp, #8]
a2e2: f899 3028 ldrb.w r3, [r9, #40] ; 0x28
a2e6: 4c16 ldr r4, [pc, #88] ; (a340 <lv_draw_rect+0x740>)
a2e8: e9cd 0300 strd r0, r3, [sp]
a2ec: a91e add r1, sp, #120 ; 0x78
a2ee: ee18 3a10 vmov r3, s16
a2f2: f8b9 201e ldrh.w r2, [r9, #30]
a2f6: 4640 mov r0, r8
a2f8: 47a0 blx r4
fa.y1++;
a2fa: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a2fe: 3301 adds r3, #1
a300: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
a304: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a308: 3301 adds r3, #1
a30a: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a30e: 3701 adds r7, #1
a310: e72a b.n a168 <lv_draw_rect+0x568>
lv_opa_t tmp = sh_buf_tmp[x];
a312: f811 7f01 ldrb.w r7, [r1, #1]!
sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1];
a316: f813 cd01 ldrb.w ip, [r3, #-1]!
a31a: f881 c000 strb.w ip, [r1]
sh_buf_tmp[corner_size - x - 1] = tmp;
a31e: 701f strb r7, [r3, #0]
for(x = 0; x < corner_size / 2; x++) {
a320: 1aef subs r7, r5, r3
a322: 42be cmp r6, r7
a324: dcf5 bgt.n a312 <lv_draw_rect+0x712>
sh_buf_tmp += corner_size;
a326: 4452 add r2, sl
for(y = 0; y < corner_size; y++) {
a328: 3001 adds r0, #1
a32a: 4582 cmp sl, r0
a32c: dd0a ble.n a344 <lv_draw_rect+0x744>
a32e: eb02 050a add.w r5, r2, sl
a332: 1e51 subs r1, r2, #1
a334: 462b mov r3, r5
a336: e7f3 b.n a320 <lv_draw_rect+0x720>
a338: 0000ec79 .word 0x0000ec79
a33c: 00009769 .word 0x00009769
a340: 000061d9 .word 0x000061d9
a.x1 = sh_area.x1;
a344: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a348: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a34c: 3b01 subs r3, #1
a34e: 445b add r3, fp
a350: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1;
a354: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
a358: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = a.y1 + corner_size - 1;
a35c: 3b01 subs r3, #1
a35e: 445b add r3, fp
a360: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a364: 4642 mov r2, r8
a366: 4bb9 ldr r3, [pc, #740] ; (a64c <lv_draw_rect+0xa4c>)
a368: a918 add r1, sp, #96 ; 0x60
a36a: a81a add r0, sp, #104 ; 0x68
a36c: 4798 blx r3
if(has_com) {
a36e: 2800 cmp r0, #0
a370: d037 beq.n a3e2 <lv_draw_rect+0x7e2>
if(ca.y2 > h_half) ca.y2 = h_half;
a372: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
a376: 9a08 ldr r2, [sp, #32]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a378: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a37c: 4293 cmp r3, r2
a37e: bfc4 itt gt
a380: 4613 movgt r3, r2
a382: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e
if(ca.x2 > w_half) ca.x2 = w_half;
a386: 9a09 ldr r2, [sp, #36] ; 0x24
a388: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c
a38c: 4293 cmp r3, r2
a38e: bfc4 itt gt
a390: 4613 movgt r3, r2
a392: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c
a396: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a39a: 3601 adds r6, #1
a39c: 1b76 subs r6, r6, r5
a39e: b236 sxth r6, r6
if(w > 0) {
a3a0: 2e00 cmp r6, #0
a3a2: dd1e ble.n a3e2 <lv_draw_rect+0x7e2>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a3a4: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
a3a8: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
a3ac: 3301 adds r3, #1
a3ae: 1a9b subs r3, r3, r2
a3b0: b21b sxth r3, r3
a3b2: 930b str r3, [sp, #44] ; 0x2c
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a3b4: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
a3b8: 1ad2 subs r2, r2, r3
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a3ba: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60
a3be: 1aed subs r5, r5, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a3c0: 9b05 ldr r3, [sp, #20]
a3c2: fb0a 5502 mla r5, sl, r2, r5
a3c6: 441d add r5, r3
lv_area_copy(&fa, &ca);
a3c8: a91a add r1, sp, #104 ; 0x68
a3ca: 4ba1 ldr r3, [pc, #644] ; (a650 <lv_draw_rect+0xa50>)
a3cc: a81e add r0, sp, #120 ; 0x78
a3ce: 4798 blx r3
fa.y2 = fa.y1;
a3d0: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a3d4: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a3d8: 2700 movs r7, #0
a3da: 9b0b ldr r3, [sp, #44] ; 0x2c
a3dc: 429f cmp r7, r3
a3de: f2c0 85a6 blt.w af2e <lv_draw_rect+0x132e>
a.x1 = sh_area.x1;
a3e2: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a.y1 = sh_area.y2 - corner_size + 1;
a3e6: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a.x1 = sh_area.x1;
a3ea: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a3ee: 3b01 subs r3, #1
a3f0: 445b add r3, fp
a3f2: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y2 - corner_size + 1;
a3f6: 1c53 adds r3, r2, #1
a3f8: eba3 030b sub.w r3, r3, fp
a3fc: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2;
a400: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a404: 4b91 ldr r3, [pc, #580] ; (a64c <lv_draw_rect+0xa4c>)
a406: 4642 mov r2, r8
a408: a918 add r1, sp, #96 ; 0x60
a40a: a81a add r0, sp, #104 ; 0x68
a40c: 4798 blx r3
if(has_com) {
a40e: 2800 cmp r0, #0
a410: d039 beq.n a486 <lv_draw_rect+0x886>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a412: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a
a416: 9a08 ldr r2, [sp, #32]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a418: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a41c: 4293 cmp r3, r2
a41e: bfd8 it le
a420: 9b0a ldrle r3, [sp, #40] ; 0x28
if(ca.x2 > w_half) ca.x2 = w_half;
a422: 9a09 ldr r2, [sp, #36] ; 0x24
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a424: bfdc itt le
a426: 3301 addle r3, #1
a428: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
if(ca.x2 > w_half) ca.x2 = w_half;
a42c: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c
a430: 4293 cmp r3, r2
a432: bfc4 itt gt
a434: 4613 movgt r3, r2
a436: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c
a43a: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a43e: 3601 adds r6, #1
a440: 1b76 subs r6, r6, r5
a442: b236 sxth r6, r6
if(w > 0) {
a444: 2e00 cmp r6, #0
a446: dd1e ble.n a486 <lv_draw_rect+0x886>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a448: f9bd 106e ldrsh.w r1, [sp, #110] ; 0x6e
a44c: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
a450: 1c4a adds r2, r1, #1
a452: 1ad2 subs r2, r2, r3
a454: b213 sxth r3, r2
a456: 9308 str r3, [sp, #32]
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a458: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a45c: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a460: 1aad subs r5, r5, r2
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a462: 1a5b subs r3, r3, r1
a464: fb0a 5503 mla r5, sl, r3, r5
a468: 9b05 ldr r3, [sp, #20]
lv_area_copy(&fa, &ca);
a46a: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a46c: 441d add r5, r3
lv_area_copy(&fa, &ca);
a46e: a81e add r0, sp, #120 ; 0x78
a470: 4b77 ldr r3, [pc, #476] ; (a650 <lv_draw_rect+0xa50>)
a472: 4798 blx r3
fa.y1 = fa.y2; /*Fill from bottom to top*/
a474: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a478: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a47c: 2700 movs r7, #0
a47e: 9b08 ldr r3, [sp, #32]
a480: 429f cmp r7, r3
a482: f2c0 8582 blt.w af8a <lv_draw_rect+0x138a>
a.x1 = sh_area.x1;
a486: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a48a: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a48e: 3b01 subs r3, #1
a490: 445b add r3, fp
a492: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1 + corner_size;
a496: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a49a: 445b add r3, fp
a49c: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a4a0: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a4a4: eba3 030b sub.w r3, r3, fp
a4a8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a4ac: 4642 mov r2, r8
a4ae: 4b67 ldr r3, [pc, #412] ; (a64c <lv_draw_rect+0xa4c>)
a4b0: a918 add r1, sp, #96 ; 0x60
a4b2: a81a add r0, sp, #104 ; 0x68
a4b4: 4798 blx r3
if(has_com) {
a4b6: b390 cbz r0, a51e <lv_draw_rect+0x91e>
if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2);
a4b8: 9b06 ldr r3, [sp, #24]
a4ba: b14b cbz r3, a4d0 <lv_draw_rect+0x8d0>
a4bc: 9b04 ldr r3, [sp, #16]
a4be: f9bd 206c ldrsh.w r2, [sp, #108] ; 0x6c
a4c2: f9b3 3000 ldrsh.w r3, [r3]
a4c6: 4293 cmp r3, r2
a4c8: bfa8 it ge
a4ca: 4613 movge r3, r2
a4cc: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a4d0: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a4d4: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
a4d8: 3501 adds r5, #1
a4da: 1aed subs r5, r5, r3
a4dc: b22d sxth r5, r5
if(w > 0) {
a4de: 2d00 cmp r5, #0
a4e0: dd1d ble.n a51e <lv_draw_rect+0x91e>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a4e2: f8bd 206e ldrh.w r2, [sp, #110] ; 0x6e
a4e6: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a
a4ea: 3201 adds r2, #1
a4ec: 1a52 subs r2, r2, r1
a4ee: b212 sxth r2, r2
a4f0: 9208 str r2, [sp, #32]
sh_buf_tmp += ca.x1 - a.x1;
a4f2: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
a4f6: f10a 36ff add.w r6, sl, #4294967295 ; 0xffffffff
sh_buf_tmp += ca.x1 - a.x1;
a4fa: 1a9b subs r3, r3, r2
a4fc: fb0a 3606 mla r6, sl, r6, r3
a500: 9b05 ldr r3, [sp, #20]
lv_area_copy(&fa, &ca);
a502: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += ca.x1 - a.x1;
a504: 441e add r6, r3
lv_area_copy(&fa, &ca);
a506: a81e add r0, sp, #120 ; 0x78
a508: 4b51 ldr r3, [pc, #324] ; (a650 <lv_draw_rect+0xa50>)
a50a: 4798 blx r3
fa.y2 = fa.y1;
a50c: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a510: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a514: 2700 movs r7, #0
a516: 9b08 ldr r3, [sp, #32]
a518: 429f cmp r7, r3
a51a: f2c0 8564 blt.w afe6 <lv_draw_rect+0x13e6>
a.x1 = sh_area.x1 + corner_size;
a51e: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a522: 445b add r3, fp
a524: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a528: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a52c: eba3 030b sub.w r3, r3, fp
a530: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1;
a534: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
a538: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y1 + corner_size - 1;
a53c: 3b01 subs r3, #1
a53e: 445b add r3, fp
a540: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a544: 4642 mov r2, r8
a546: 4b41 ldr r3, [pc, #260] ; (a64c <lv_draw_rect+0xa4c>)
a548: a918 add r1, sp, #96 ; 0x60
a54a: a81a add r0, sp, #104 ; 0x68
a54c: 4798 blx r3
if(has_com) {
a54e: b380 cbz r0, a5b2 <lv_draw_rect+0x9b2>
if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1);
a550: 9b06 ldr r3, [sp, #24]
a552: b14b cbz r3, a568 <lv_draw_rect+0x968>
a554: 9b04 ldr r3, [sp, #16]
a556: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
a55a: f9b3 3002 ldrsh.w r3, [r3, #2]
a55e: 4293 cmp r3, r2
a560: bfa8 it ge
a562: 4613 movge r3, r2
a564: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a568: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a56c: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a570: f9bd 606a ldrsh.w r6, [sp, #106] ; 0x6a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a574: 3501 adds r5, #1
a576: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a578: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
a57c: 3301 adds r3, #1
a57e: 1b9b subs r3, r3, r6
a580: b21b sxth r3, r3
a582: 9308 str r3, [sp, #32]
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a584: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
a588: 1af6 subs r6, r6, r3
sh_buf_tmp = sh_buf + corner_size - 1;
a58a: f10a 33ff add.w r3, sl, #4294967295 ; 0xffffffff
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a58e: fb0a 3606 mla r6, sl, r6, r3
a592: 9b05 ldr r3, [sp, #20]
lv_area_copy(&fa, &ca);
a594: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a596: 441e add r6, r3
lv_area_copy(&fa, &ca);
a598: a81e add r0, sp, #120 ; 0x78
a59a: 4b2d ldr r3, [pc, #180] ; (a650 <lv_draw_rect+0xa50>)
a59c: 4798 blx r3
fa.y2 = fa.y1;
a59e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a5a2: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a5a6: b22d sxth r5, r5
for(y = 0; y < h; y++) {
a5a8: 2700 movs r7, #0
a5aa: 9b08 ldr r3, [sp, #32]
a5ac: 429f cmp r7, r3
a5ae: f2c0 8561 blt.w b074 <lv_draw_rect+0x1474>
a.x1 = sh_area.x1 + corner_size;
a5b2: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a.y1 = sh_area.y2 - corner_size + 1;
a5b6: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a.y2 = sh_area.y2;
a5ba: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
a.x1 = sh_area.x1 + corner_size;
a5be: 445b add r3, fp
a5c0: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a5c4: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a5c8: eba3 030b sub.w r3, r3, fp
a5cc: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y2 - corner_size + 1;
a5d0: 1c53 adds r3, r2, #1
a5d2: eba3 030b sub.w r3, r3, fp
a5d6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
has_com = _lv_area_intersect(&ca, &a, clip);
a5da: 4642 mov r2, r8
a5dc: 4b1b ldr r3, [pc, #108] ; (a64c <lv_draw_rect+0xa4c>)
a5de: a918 add r1, sp, #96 ; 0x60
a5e0: a81a add r0, sp, #104 ; 0x68
a5e2: 4798 blx r3
if(has_com) {
a5e4: 2800 cmp r0, #0
a5e6: d035 beq.n a654 <lv_draw_rect+0xa54>
if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2);
a5e8: 9b06 ldr r3, [sp, #24]
a5ea: b14b cbz r3, a600 <lv_draw_rect+0xa00>
a5ec: 9b04 ldr r3, [sp, #16]
a5ee: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
a5f2: f9b3 3006 ldrsh.w r3, [r3, #6]
a5f6: 4293 cmp r3, r2
a5f8: bfb8 it lt
a5fa: 4613 movlt r3, r2
a5fc: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
a600: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a604: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a608: f9bd 6066 ldrsh.w r6, [sp, #102] ; 0x66
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a60c: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a610: 3501 adds r5, #1
a612: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a614: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
a618: 1c5a adds r2, r3, #1
a61a: 1af3 subs r3, r6, r3
sh_buf_tmp = sh_buf + corner_size - 1;
a61c: f10a 36ff add.w r6, sl, #4294967295 ; 0xffffffff
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a620: fb0a 6603 mla r6, sl, r3, r6
a624: 9b05 ldr r3, [sp, #20]
a626: 1a52 subs r2, r2, r1
a628: b212 sxth r2, r2
a62a: 441e add r6, r3
lv_area_copy(&fa, &ca);
a62c: a91a add r1, sp, #104 ; 0x68
a62e: 4b08 ldr r3, [pc, #32] ; (a650 <lv_draw_rect+0xa50>)
a630: 9208 str r2, [sp, #32]
a632: a81e add r0, sp, #120 ; 0x78
a634: 4798 blx r3
fa.y1 = fa.y2;
a636: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a63a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a63e: b22d sxth r5, r5
for(y = 0; y < h; y++) {
a640: 2700 movs r7, #0
a642: 9b08 ldr r3, [sp, #32]
a644: 429f cmp r7, r3
a646: f2c0 854e blt.w b0e6 <lv_draw_rect+0x14e6>
a64a: e003 b.n a654 <lv_draw_rect+0xa54>
a64c: 0000ded1 .word 0x0000ded1
a650: 00009ba1 .word 0x00009ba1
a.x1 = sh_area.x1 + corner_size;
a654: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a658: 445b add r3, fp
a65a: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a65e: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a662: eba3 030b sub.w r3, r3, fp
a666: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1 + corner_size;
a66a: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a66e: 445b add r3, fp
a670: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a674: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a678: eba3 0b0b sub.w fp, r3, fp
a67c: f8ad b066 strh.w fp, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a680: 4bb9 ldr r3, [pc, #740] ; (a968 <lv_draw_rect+0xd68>)
a682: 4642 mov r2, r8
a684: a918 add r1, sp, #96 ; 0x60
a686: a81a add r0, sp, #104 ; 0x68
a688: 4798 blx r3
if(has_com && simple_mode == false) {
a68a: b1f8 cbz r0, a6cc <lv_draw_rect+0xacc>
a68c: 9b06 ldr r3, [sp, #24]
a68e: b9eb cbnz r3, a6cc <lv_draw_rect+0xacc>
a690: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a694: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a698: f8bd 706e ldrh.w r7, [sp, #110] ; 0x6e
_lv_memset(mask_buf, dsc->shadow_opa, w);
a69c: f8df a30c ldr.w sl, [pc, #780] ; a9ac <lv_draw_rect+0xdac>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a6a0: f8df b30c ldr.w fp, [pc, #780] ; a9b0 <lv_draw_rect+0xdb0>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a6a4: 3601 adds r6, #1
a6a6: 1af6 subs r6, r6, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a6a8: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
a6ac: 3701 adds r7, #1
a6ae: 1aff subs r7, r7, r3
lv_area_copy(&fa, &ca);
a6b0: a91a add r1, sp, #104 ; 0x68
a6b2: 4bae ldr r3, [pc, #696] ; (a96c <lv_draw_rect+0xd6c>)
a6b4: a81e add r0, sp, #120 ; 0x78
a6b6: 4798 blx r3
fa.y2 = fa.y1;
a6b8: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a6bc: 9d06 ldr r5, [sp, #24]
fa.y2 = fa.y1;
a6be: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a6c2: b236 sxth r6, r6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a6c4: b23f sxth r7, r7
for(y = 0; y < h; y++) {
a6c6: 42bd cmp r5, r7
a6c8: f2c0 8546 blt.w b158 <lv_draw_rect+0x1558>
lv_draw_mask_remove_id(mask_rout_id);
a6cc: 4ba8 ldr r3, [pc, #672] ; (a970 <lv_draw_rect+0xd70>)
_lv_mem_buf_release(mask_buf);
a6ce: 4ca9 ldr r4, [pc, #676] ; (a974 <lv_draw_rect+0xd74>)
lv_draw_mask_remove_id(mask_rout_id);
a6d0: ee18 0a90 vmov r0, s17
a6d4: 4798 blx r3
_lv_mem_buf_release(mask_buf);
a6d6: ee18 0a10 vmov r0, s16
a6da: 47a0 blx r4
_lv_mem_buf_release(sh_buf);
a6dc: 9805 ldr r0, [sp, #20]
a6de: 47a0 blx r4
if(dsc->bg_opa <= LV_OPA_MIN) return;
a6e0: f899 300c ldrb.w r3, [r9, #12]
a6e4: 2b05 cmp r3, #5
a6e6: f240 80ab bls.w a840 <lv_draw_rect+0xc40>
lv_area_copy(&coords_bg, coords);
a6ea: 4ba0 ldr r3, [pc, #640] ; (a96c <lv_draw_rect+0xd6c>)
a6ec: 9904 ldr r1, [sp, #16]
a6ee: a816 add r0, sp, #88 ; 0x58
a6f0: 4798 blx r3
if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) {
a6f2: f9b9 3010 ldrsh.w r3, [r9, #16]
a6f6: 2b01 cmp r3, #1
a6f8: dd24 ble.n a744 <lv_draw_rect+0xb44>
a6fa: f899 3014 ldrb.w r3, [r9, #20]
a6fe: 2bf9 cmp r3, #249 ; 0xf9
a700: d920 bls.n a744 <lv_draw_rect+0xb44>
a702: f9b9 3000 ldrsh.w r3, [r9]
a706: b1eb cbz r3, a744 <lv_draw_rect+0xb44>
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
a708: f8b9 3012 ldrh.w r3, [r9, #18]
a70c: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58
a710: f3c3 0280 ubfx r2, r3, #2, #1
a714: 440a add r2, r1
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
a716: f8bd 105a ldrh.w r1, [sp, #90] ; 0x5a
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
a71a: f8ad 2058 strh.w r2, [sp, #88] ; 0x58
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
a71e: f3c3 0240 ubfx r2, r3, #1, #1
a722: 440a add r2, r1
a724: f8ad 205a strh.w r2, [sp, #90] ; 0x5a
coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0;
a728: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c
a72c: f3c3 01c0 ubfx r1, r3, #3, #1
a730: 1a52 subs r2, r2, r1
a732: f8ad 205c strh.w r2, [sp, #92] ; 0x5c
coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0;
a736: f8bd 205e ldrh.w r2, [sp, #94] ; 0x5e
a73a: f003 0301 and.w r3, r3, #1
a73e: 1ad3 subs r3, r2, r3
a740: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
lv_opa_t opa = dsc->bg_opa;
a744: f899 a00c ldrb.w sl, [r9, #12]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a748: 4b8b ldr r3, [pc, #556] ; (a978 <lv_draw_rect+0xd78>)
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
a74a: f1ba 0ffb cmp.w sl, #251 ; 0xfb
a74e: bf28 it cs
a750: f04f 0aff movcs.w sl, #255 ; 0xff
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a754: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a756: 4b89 ldr r3, [pc, #548] ; (a97c <lv_draw_rect+0xd7c>)
a758: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
a75a: 4b83 ldr r3, [pc, #524] ; (a968 <lv_draw_rect+0xd68>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a75c: 9005 str r0, [sp, #20]
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
a75e: 4642 mov r2, r8
a760: a916 add r1, sp, #88 ; 0x58
a762: a818 add r0, sp, #96 ; 0x60
a764: 4798 blx r3
if(is_common == false) return;
a766: 2800 cmp r0, #0
a768: d06a beq.n a840 <lv_draw_rect+0xc40>
draw_area.x1 -= disp_area->x1;
a76a: 9b05 ldr r3, [sp, #20]
a76c: f8bd 0060 ldrh.w r0, [sp, #96] ; 0x60
a770: 8a1a ldrh r2, [r3, #16]
draw_area.y1 -= disp_area->y1;
a772: f8bd 1062 ldrh.w r1, [sp, #98] ; 0x62
draw_area.x1 -= disp_area->x1;
a776: 1a83 subs r3, r0, r2
a778: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
draw_area.y1 -= disp_area->y1;
a77c: 9b05 ldr r3, [sp, #20]
a77e: 8a5c ldrh r4, [r3, #18]
draw_area.x2 -= disp_area->x1;
a780: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64
a784: 1a9a subs r2, r3, r2
a786: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a78a: f103 0b01 add.w fp, r3, #1
draw_area.y2 -= disp_area->y1;
a78e: f8bd 2066 ldrh.w r2, [sp, #102] ; 0x66
a792: ebab 0b00 sub.w fp, fp, r0
draw_area.y1 -= disp_area->y1;
a796: 1b09 subs r1, r1, r4
draw_area.y2 -= disp_area->y1;
a798: 1b12 subs r2, r2, r4
a79a: fa0f f38b sxth.w r3, fp
draw_area.y1 -= disp_area->y1;
a79e: f8ad 1062 strh.w r1, [sp, #98] ; 0x62
draw_area.y2 -= disp_area->y1;
a7a2: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a7a6: 4618 mov r0, r3
a7a8: ee08 3a10 vmov s16, r3
a7ac: 4b74 ldr r3, [pc, #464] ; (a980 <lv_draw_rect+0xd80>)
a7ae: 4798 blx r3
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
a7b0: 4b74 ldr r3, [pc, #464] ; (a984 <lv_draw_rect+0xd84>)
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a7b2: 4605 mov r5, r0
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
a7b4: 4798 blx r3
a7b6: 900c str r0, [sp, #48] ; 0x30
a7b8: f8bd 3030 ldrh.w r3, [sp, #48] ; 0x30
a7bc: 930d str r3, [sp, #52] ; 0x34
if(other_mask_cnt) simple_mode = false;
a7be: 2b00 cmp r3, #0
a7c0: f040 84f6 bne.w b1b0 <lv_draw_rect+0x15b0>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false;
a7c4: f899 3006 ldrb.w r3, [r9, #6]
a7c8: 3b02 subs r3, #2
a7ca: bf18 it ne
a7cc: 2301 movne r3, #1
a7ce: f8bd 605c ldrh.w r6, [sp, #92] ; 0x5c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a7d2: f8bd 405e ldrh.w r4, [sp, #94] ; 0x5e
if(other_mask_cnt) simple_mode = false;
a7d6: 9308 str r3, [sp, #32]
a7d8: f8bd 205a ldrh.w r2, [sp, #90] ; 0x5a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7dc: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
a7e0: 3601 adds r6, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a7e2: 3401 adds r4, #1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7e4: 1af6 subs r6, r6, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a7e6: 1aa4 subs r4, r4, r2
int32_t coords_h = lv_area_get_height(&coords_bg);
a7e8: b224 sxth r4, r4
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7ea: b236 sxth r6, r6
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
a7ec: 42b4 cmp r4, r6
int32_t rout = dsc->radius;
a7ee: f9b9 3000 ldrsh.w r3, [r9]
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
a7f2: bfa8 it ge
a7f4: 4634 movge r4, r6
if(rout > short_side >> 1) rout = short_side >> 1;
a7f6: 1064 asrs r4, r4, #1
a7f8: 429c cmp r4, r3
a7fa: bfa8 it ge
a7fc: 461c movge r4, r3
if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) {
a7fe: 9b08 ldr r3, [sp, #32]
a800: 2b00 cmp r3, #0
a802: f000 84d8 beq.w b1b6 <lv_draw_rect+0x15b6>
a806: 2c00 cmp r4, #0
a808: f040 84d5 bne.w b1b6 <lv_draw_rect+0x15b6>
a80c: f899 3006 ldrb.w r3, [r9, #6]
a810: 2b00 cmp r3, #0
a812: f040 8580 bne.w b316 <lv_draw_rect+0x1716>
_lv_blend_fill(clip, &coords_bg,
a816: f899 200d ldrb.w r2, [r9, #13]
a81a: 4c5b ldr r4, [pc, #364] ; (a988 <lv_draw_rect+0xd88>)
a81c: e9cd a201 strd sl, r2, [sp, #4]
a820: 2201 movs r2, #1
a822: 9200 str r2, [sp, #0]
a824: f8b9 2002 ldrh.w r2, [r9, #2]
a828: a916 add r1, sp, #88 ; 0x58
a82a: 4640 mov r0, r8
a82c: 47a0 blx r4
int16_t mask_rout_id = LV_MASK_ID_INV;
a82e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
a832: 9309 str r3, [sp, #36] ; 0x24
lv_draw_mask_remove_id(mask_rout_id);
a834: 4b4e ldr r3, [pc, #312] ; (a970 <lv_draw_rect+0xd70>)
a836: 9809 ldr r0, [sp, #36] ; 0x24
a838: 4798 blx r3
_lv_mem_buf_release(mask_buf);
a83a: 4b4e ldr r3, [pc, #312] ; (a974 <lv_draw_rect+0xd74>)
a83c: 4628 mov r0, r5
a83e: 4798 blx r3
_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;
a840: f8d9 002c ldr.w r0, [r9, #44] ; 0x2c
a844: b1d0 cbz r0, a87c <lv_draw_rect+0xc7c>
if(dsc->pattern_opa <= LV_OPA_MIN) return;
a846: f899 3036 ldrb.w r3, [r9, #54] ; 0x36
a84a: 2b05 cmp r3, #5
a84c: d916 bls.n a87c <lv_draw_rect+0xc7c>
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
a84e: 4b4f ldr r3, [pc, #316] ; (a98c <lv_draw_rect+0xd8c>)
a850: 4798 blx r3
lv_draw_img_dsc_t img_dsc;
lv_draw_label_dsc_t label_dsc;
int32_t img_w;
int32_t img_h;
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
a852: 2801 cmp r0, #1
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
a854: 4606 mov r6, r0
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
a856: f200 86b9 bhi.w b5cc <lv_draw_rect+0x19cc>
lv_img_header_t header;
lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header);
a85a: f8d9 002c ldr.w r0, [r9, #44] ; 0x2c
a85e: 4b4c ldr r3, [pc, #304] ; (a990 <lv_draw_rect+0xd90>)
a860: a925 add r1, sp, #148 ; 0x94
a862: 4798 blx r3
if(res != LV_RES_OK) {
a864: 2801 cmp r0, #1
a866: f000 8652 beq.w b50e <lv_draw_rect+0x190e>
LV_LOG_WARN("draw_img: can't get image info");
a86a: 4b4a ldr r3, [pc, #296] ; (a994 <lv_draw_rect+0xd94>)
a86c: 9300 str r3, [sp, #0]
a86e: 494a ldr r1, [pc, #296] ; (a998 <lv_draw_rect+0xd98>)
a870: 4b4a ldr r3, [pc, #296] ; (a99c <lv_draw_rect+0xd9c>)
a872: 4c4b ldr r4, [pc, #300] ; (a9a0 <lv_draw_rect+0xda0>)
a874: f240 5294 movw r2, #1428 ; 0x594
a878: 2002 movs r0, #2
a87a: 47a0 blx r4
if(dsc->border_opa <= LV_OPA_MIN) return;
a87c: f899 3014 ldrb.w r3, [r9, #20]
a880: 9305 str r3, [sp, #20]
a882: 2b05 cmp r3, #5
a884: f240 817a bls.w ab7c <lv_draw_rect+0xf7c>
if(dsc->border_width == 0) return;
a888: f9b9 3010 ldrsh.w r3, [r9, #16]
a88c: 2b00 cmp r3, #0
a88e: f000 8175 beq.w ab7c <lv_draw_rect+0xf7c>
if(dsc->border_side == LV_BORDER_SIDE_NONE) return;
a892: f9b9 3012 ldrsh.w r3, [r9, #18]
a896: 2b00 cmp r3, #0
a898: f000 8170 beq.w ab7c <lv_draw_rect+0xf7c>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
a89c: 9b05 ldr r3, [sp, #20]
a89e: 2bfb cmp r3, #251 ; 0xfb
a8a0: bf28 it cs
a8a2: 23ff movcs r3, #255 ; 0xff
a8a4: 9305 str r3, [sp, #20]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a8a6: 4b34 ldr r3, [pc, #208] ; (a978 <lv_draw_rect+0xd78>)
a8a8: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a8aa: 4b34 ldr r3, [pc, #208] ; (a97c <lv_draw_rect+0xd7c>)
a8ac: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, coords, clip);
a8ae: 9904 ldr r1, [sp, #16]
a8b0: 4b2d ldr r3, [pc, #180] ; (a968 <lv_draw_rect+0xd68>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a8b2: 4683 mov fp, r0
is_common = _lv_area_intersect(&draw_area, coords, clip);
a8b4: 4642 mov r2, r8
a8b6: a814 add r0, sp, #80 ; 0x50
a8b8: 4798 blx r3
if(is_common == false) return;
a8ba: 2800 cmp r0, #0
a8bc: f000 815e beq.w ab7c <lv_draw_rect+0xf7c>
draw_area.x1 -= disp_area->x1;
a8c0: f8bb 2010 ldrh.w r2, [fp, #16]
a8c4: f8bd 0050 ldrh.w r0, [sp, #80] ; 0x50
draw_area.y1 -= disp_area->y1;
a8c8: f8bb 4012 ldrh.w r4, [fp, #18]
a8cc: f8bd 1052 ldrh.w r1, [sp, #82] ; 0x52
draw_area.x1 -= disp_area->x1;
a8d0: 1a83 subs r3, r0, r2
a8d2: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
draw_area.x2 -= disp_area->x1;
a8d6: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
a8da: 1a9a subs r2, r3, r2
a8dc: f8ad 2054 strh.w r2, [sp, #84] ; 0x54
a8e0: f103 0a01 add.w sl, r3, #1
draw_area.y2 -= disp_area->y1;
a8e4: f8bd 2056 ldrh.w r2, [sp, #86] ; 0x56
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a8e8: 4b25 ldr r3, [pc, #148] ; (a980 <lv_draw_rect+0xd80>)
a8ea: ebaa 0a00 sub.w sl, sl, r0
draw_area.y1 -= disp_area->y1;
a8ee: 1b09 subs r1, r1, r4
draw_area.y2 -= disp_area->y1;
a8f0: 1b12 subs r2, r2, r4
a8f2: fa0f fa8a sxth.w sl, sl
draw_area.y1 -= disp_area->y1;
a8f6: f8ad 1052 strh.w r1, [sp, #82] ; 0x52
draw_area.y2 -= disp_area->y1;
a8fa: f8ad 2056 strh.w r2, [sp, #86] ; 0x56
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a8fe: 4650 mov r0, sl
a900: 4798 blx r3
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
a902: 4b20 ldr r3, [pc, #128] ; (a984 <lv_draw_rect+0xd84>)
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a904: 4604 mov r4, r0
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
a906: 4798 blx r3
if(other_mask_cnt) simple_mode = false;
a908: 2800 cmp r0, #0
a90a: f040 874a bne.w b7a2 <lv_draw_rect+0x1ba2>
else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false;
a90e: f9b9 3012 ldrsh.w r3, [r9, #18]
a912: f1a3 050f sub.w r5, r3, #15
a916: 426b negs r3, r5
a918: 416b adcs r3, r5
if(other_mask_cnt) simple_mode = false;
a91a: 461f mov r7, r3
a91c: 9b04 ldr r3, [sp, #16]
a91e: 9904 ldr r1, [sp, #16]
a920: 889b ldrh r3, [r3, #4]
a922: 8809 ldrh r1, [r1, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a924: 9804 ldr r0, [sp, #16]
int32_t rout = dsc->radius;
a926: f9b9 2000 ldrsh.w r2, [r9]
a92a: 8840 ldrh r0, [r0, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a92c: 3301 adds r3, #1
a92e: 1a5b subs r3, r3, r1
int32_t coords_w = lv_area_get_width(coords);
a930: b219 sxth r1, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a932: 9b04 ldr r3, [sp, #16]
a934: 88db ldrh r3, [r3, #6]
a936: 3301 adds r3, #1
a938: 1a1b subs r3, r3, r0
int32_t coords_h = lv_area_get_height(coords);
a93a: b21b sxth r3, r3
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
a93c: 428b cmp r3, r1
a93e: bfa8 it ge
a940: 460b movge r3, r1
if(rout > short_side >> 1) rout = short_side >> 1;
a942: 105b asrs r3, r3, #1
a944: 4293 cmp r3, r2
a946: bfa8 it ge
a948: 4613 movge r3, r2
if(rout > 0) {
a94a: 2b00 cmp r3, #0
a94c: 9308 str r3, [sp, #32]
a94e: f340 872b ble.w b7a8 <lv_draw_rect+0x1ba8>
lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false);
a952: 9a08 ldr r2, [sp, #32]
a954: 9904 ldr r1, [sp, #16]
a956: 4d13 ldr r5, [pc, #76] ; (a9a4 <lv_draw_rect+0xda4>)
a958: 2300 movs r3, #0
a95a: a81e add r0, sp, #120 ; 0x78
a95c: 47a8 blx r5
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
a95e: 4b12 ldr r3, [pc, #72] ; (a9a8 <lv_draw_rect+0xda8>)
a960: 2100 movs r1, #0
a962: a81e add r0, sp, #120 ; 0x78
a964: e026 b.n a9b4 <lv_draw_rect+0xdb4>
a966: bf00 nop
a968: 0000ded1 .word 0x0000ded1
a96c: 00009ba1 .word 0x00009ba1
a970: 000097ad .word 0x000097ad
a974: 0000ebb1 .word 0x0000ebb1
a978: 00004fdd .word 0x00004fdd
a97c: 0000da25 .word 0x0000da25
a980: 0000eefd .word 0x0000eefd
a984: 000097fd .word 0x000097fd
a988: 000061d9 .word 0x000061d9
a98c: 00007811 .word 0x00007811
a990: 0000cf6d .word 0x0000cf6d
a994: 0001fde8 .word 0x0001fde8
a998: 0001fdb3 .word 0x0001fdb3
a99c: 0001fe36 .word 0x0001fe36
a9a0: 0000e931 .word 0x0000e931
a9a4: 00009925 .word 0x00009925
a9a8: 00009719 .word 0x00009719
a9ac: 0000f001 .word 0x0000f001
a9b0: 00009769 .word 0x00009769
a9b4: 4798 blx r3
a9b6: 900b str r0, [sp, #44] ; 0x2c
lv_area_copy(&area_small, coords);
a9b8: a816 add r0, sp, #88 ; 0x58
a9ba: 9904 ldr r1, [sp, #16]
a9bc: 4bc2 ldr r3, [pc, #776] ; (acc8 <lv_draw_rect+0x10c8>)
a9be: 4798 blx r3
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
a9c0: f8b9 1012 ldrh.w r1, [r9, #18]
a9c4: f8bd 5020 ldrh.w r5, [sp, #32]
a9c8: f8b9 3010 ldrh.w r3, [r9, #16]
a9cc: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58
a9d0: 0748 lsls r0, r1, #29
a9d2: bf5e ittt pl
a9d4: 195b addpl r3, r3, r5
a9d6: 425b negpl r3, r3
a9d8: b29b uxthpl r3, r3
a9da: 4413 add r3, r2
a9dc: f8b9 2010 ldrh.w r2, [r9, #16]
a9e0: f8ad 3058 strh.w r3, [sp, #88] ; 0x58
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
a9e4: 070b lsls r3, r1, #28
a9e6: bf58 it pl
a9e8: 1953 addpl r3, r2, r5
a9ea: f8bd 005c ldrh.w r0, [sp, #92] ; 0x5c
a9ee: bf56 itet pl
a9f0: 425b negpl r3, r3
a9f2: 4613 movmi r3, r2
a9f4: b29b uxthpl r3, r3
a9f6: 1ac3 subs r3, r0, r3
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
a9f8: 078e lsls r6, r1, #30
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
a9fa: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
a9fe: bf58 it pl
aa00: 1953 addpl r3, r2, r5
aa02: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
aa06: 4eb1 ldr r6, [pc, #708] ; (accc <lv_draw_rect+0x10cc>)
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
aa08: bf56 itet pl
aa0a: 425b negpl r3, r3
aa0c: 4613 movmi r3, r2
aa0e: b29b uxthpl r3, r3
aa10: 4403 add r3, r0
aa12: f8ad 305a strh.w r3, [sp, #90] ; 0x5a
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
aa16: 07cb lsls r3, r1, #31
aa18: bf5c itt pl
aa1a: 1953 addpl r3, r2, r5
aa1c: 425b negpl r3, r3
aa1e: f8bd 005e ldrh.w r0, [sp, #94] ; 0x5e
aa22: bf4c ite mi
aa24: 4613 movmi r3, r2
aa26: b29b uxthpl r3, r3
aa28: 1ac3 subs r3, r0, r3
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
aa2a: 1aaa subs r2, r5, r2
aa2c: b212 sxth r2, r2
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
aa2e: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
aa32: a916 add r1, sp, #88 ; 0x58
aa34: 2301 movs r3, #1
aa36: a825 add r0, sp, #148 ; 0x94
aa38: 47b0 blx r6
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
aa3a: 4ba5 ldr r3, [pc, #660] ; (acd0 <lv_draw_rect+0x10d0>)
aa3c: 2100 movs r1, #0
aa3e: a825 add r0, sp, #148 ; 0x94
aa40: 4798 blx r3
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
aa42: f9b9 3010 ldrsh.w r3, [r9, #16]
aa46: 9a08 ldr r2, [sp, #32]
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
aa48: f9bb c012 ldrsh.w ip, [fp, #18]
fill_area.y1 = disp_area->y1 + draw_area.y1;
aa4c: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
aa50: 429a cmp r2, r3
aa52: bfac ite ge
aa54: 9b08 ldrge r3, [sp, #32]
aa56: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff
aa5a: 9307 str r3, [sp, #28]
lv_color_t color = dsc->border_color;
aa5c: f8b9 300e ldrh.w r3, [r9, #14]
aa60: ee08 3a10 vmov s16, r3
lv_blend_mode_t blend_mode = dsc->border_blend_mode;
aa64: f899 3015 ldrb.w r3, [r9, #21]
aa68: 9306 str r3, [sp, #24]
fill_area.x1 = coords->x1;
aa6a: 9b04 ldr r3, [sp, #16]
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
aa6c: ee08 0a90 vmov s17, r0
fill_area.y1 = disp_area->y1 + draw_area.y1;
aa70: eb0c 0006 add.w r0, ip, r6
fill_area.x1 = coords->x1;
aa74: f9b3 1000 ldrsh.w r1, [r3]
fill_area.x2 = coords->x2;
aa78: f9b3 2004 ldrsh.w r2, [r3, #4]
fill_area.y1 = disp_area->y1 + draw_area.y1;
aa7c: b200 sxth r0, r0
if(simple_mode) {
aa7e: 2f00 cmp r7, #0
aa80: f000 87a6 beq.w b9d0 <lv_draw_rect+0x1dd0>
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
aa84: 9b04 ldr r3, [sp, #16]
aa86: 9f07 ldr r7, [sp, #28]
aa88: f9b3 3002 ldrsh.w r3, [r3, #2]
fill_area.x1 = coords->x1;
aa8c: f8ad 1060 strh.w r1, [sp, #96] ; 0x60
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
aa90: eba3 030c sub.w r3, r3, ip
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
aa94: f9bd c056 ldrsh.w ip, [sp, #86] ; 0x56
fill_area.x2 = coords->x2;
aa98: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
aa9c: 443b add r3, r7
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
aa9e: 459c cmp ip, r3
aaa0: bfa8 it ge
aaa2: 469c movge ip, r3
aaa4: f8cd c024 str.w ip, [sp, #36] ; 0x24
fill_area.y1 = disp_area->y1 + draw_area.y1;
aaa8: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
aaac: f8ad 0066 strh.w r0, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
aab0: 9b09 ldr r3, [sp, #36] ; 0x24
aab2: 42b3 cmp r3, r6
aab4: f280 867d bge.w b7b2 <lv_draw_rect+0x1bb2>
int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size;
aab8: 9a04 ldr r2, [sp, #16]
aaba: f9bb 3012 ldrsh.w r3, [fp, #18]
aabe: f9b2 6006 ldrsh.w r6, [r2, #6]
aac2: 9a07 ldr r2, [sp, #28]
aac4: 1af6 subs r6, r6, r3
aac6: 1ab2 subs r2, r6, r2
lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1);
aac8: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52
aacc: 4296 cmp r6, r2
aace: bfb8 it lt
aad0: 4616 movlt r6, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
aad2: 9a09 ldr r2, [sp, #36] ; 0x24
aad4: 42b2 cmp r2, r6
aad6: bfa4 itt ge
aad8: 4616 movge r6, r2
aada: 3601 addge r6, #1
fill_area.y1 = disp_area->y1 + lower_corner_end;
aadc: 4433 add r3, r6
aade: b21b sxth r3, r3
aae0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
aae4: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
aae8: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
aaec: 429e cmp r6, r3
aaee: f340 86df ble.w b8b0 <lv_draw_rect+0x1cb0>
fill_area.y1 = coords->y1 + corner_size + 1;
aaf2: 9b04 ldr r3, [sp, #16]
aaf4: 9a07 ldr r2, [sp, #28]
aaf6: 885b ldrh r3, [r3, #2]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
aaf8: 4d76 ldr r5, [pc, #472] ; (acd4 <lv_draw_rect+0x10d4>)
fill_area.y1 = coords->y1 + corner_size + 1;
aafa: 3301 adds r3, #1
aafc: fa13 f382 uxtah r3, r3, r2
ab00: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = coords->y2 - corner_size - 1;
ab04: 9b04 ldr r3, [sp, #16]
ab06: 88db ldrh r3, [r3, #6]
ab08: 3b01 subs r3, #1
ab0a: 1a9b subs r3, r3, r2
ab0c: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
fill_area.x1 = coords->x1;
ab10: 9b04 ldr r3, [sp, #16]
fill_area.x2 = coords->x1 + dsc->border_width - 1;
ab12: f8b9 2010 ldrh.w r2, [r9, #16]
fill_area.x1 = coords->x1;
ab16: f9b3 3000 ldrsh.w r3, [r3]
ab1a: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
fill_area.x2 = coords->x1 + dsc->border_width - 1;
ab1e: 3a01 subs r2, #1
ab20: 4413 add r3, r2
ab22: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ab26: 9b06 ldr r3, [sp, #24]
ab28: 9302 str r3, [sp, #8]
ab2a: 2601 movs r6, #1
ab2c: 9b05 ldr r3, [sp, #20]
ab2e: 9301 str r3, [sp, #4]
ab30: ee18 2a10 vmov r2, s16
ab34: 2300 movs r3, #0
ab36: a918 add r1, sp, #96 ; 0x60
ab38: 4640 mov r0, r8
ab3a: 9600 str r6, [sp, #0]
ab3c: 47a8 blx r5
fill_area.x1 = coords->x2 - dsc->border_width + 1;
ab3e: 9b04 ldr r3, [sp, #16]
ab40: f9b3 2004 ldrsh.w r2, [r3, #4]
ab44: f8b9 3010 ldrh.w r3, [r9, #16]
fill_area.x2 = coords->x2;
ab48: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.x1 = coords->x2 - dsc->border_width + 1;
ab4c: 1af3 subs r3, r6, r3
ab4e: 4413 add r3, r2
ab50: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ab54: 9b06 ldr r3, [sp, #24]
ab56: 9302 str r3, [sp, #8]
ab58: 9b05 ldr r3, [sp, #20]
ab5a: ee18 2a10 vmov r2, s16
ab5e: e9cd 6300 strd r6, r3, [sp]
ab62: a918 add r1, sp, #96 ; 0x60
ab64: 2300 movs r3, #0
ab66: 4640 mov r0, r8
ab68: 47a8 blx r5
lv_draw_mask_remove_id(mask_rin_id);
ab6a: 4d5b ldr r5, [pc, #364] ; (acd8 <lv_draw_rect+0x10d8>)
ab6c: ee18 0a90 vmov r0, s17
ab70: 47a8 blx r5
lv_draw_mask_remove_id(mask_rout_id);
ab72: 980b ldr r0, [sp, #44] ; 0x2c
ab74: 47a8 blx r5
_lv_mem_buf_release(mask_buf);
ab76: 4b59 ldr r3, [pc, #356] ; (acdc <lv_draw_rect+0x10dc>)
ab78: 4620 mov r0, r4
ab7a: 4798 blx r3
}
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;
ab7c: f8d9 103c ldr.w r1, [r9, #60] ; 0x3c
ab80: 2900 cmp r1, #0
ab82: d067 beq.n ac54 <lv_draw_rect+0x1054>
if(dsc->value_opa <= LV_OPA_MIN) return;
ab84: f899 3044 ldrb.w r3, [r9, #68] ; 0x44
ab88: 2b05 cmp r3, #5
ab8a: d963 bls.n ac54 <lv_draw_rect+0x1054>
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,
ab8c: 2400 movs r4, #0
ab8e: f647 4318 movw r3, #31768 ; 0x7c18
ab92: e9cd 3401 strd r3, r4, [sp, #4]
ab96: f9b9 304e ldrsh.w r3, [r9, #78] ; 0x4e
ab9a: 9300 str r3, [sp, #0]
ab9c: f9b9 304c ldrsh.w r3, [r9, #76] ; 0x4c
aba0: f8d9 2040 ldr.w r2, [r9, #64] ; 0x40
aba4: 4d4e ldr r5, [pc, #312] ; (ace0 <lv_draw_rect+0x10e0>)
aba6: a818 add r0, sp, #96 ; 0x60
aba8: 47a8 blx r5
LV_TXT_FLAG_NONE);
lv_area_t value_area;
value_area.x1 = 0;
value_area.y1 = 0;
value_area.x2 = s.x - 1;
abaa: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
value_area.y2 = s.y - 1;
lv_point_t p_align;
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
abae: f899 2050 ldrb.w r2, [r9, #80] ; 0x50
abb2: 9804 ldr r0, [sp, #16]
value_area.x1 = 0;
abb4: f8ad 4078 strh.w r4, [sp, #120] ; 0x78
value_area.x2 = s.x - 1;
abb8: 3b01 subs r3, #1
abba: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
value_area.y2 = s.y - 1;
abbe: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
value_area.y1 = 0;
abc2: f8ad 407a strh.w r4, [sp, #122] ; 0x7a
value_area.y2 = s.y - 1;
abc6: 3b01 subs r3, #1
abc8: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
abcc: a91e add r1, sp, #120 ; 0x78
abce: ab1a add r3, sp, #104 ; 0x68
abd0: 4d44 ldr r5, [pc, #272] ; (ace4 <lv_draw_rect+0x10e4>)
abd2: 47a8 blx r5
value_area.x1 += p_align.x + dsc->value_ofs_x;
abd4: f8b9 3048 ldrh.w r3, [r9, #72] ; 0x48
abd8: f8bd 2068 ldrh.w r2, [sp, #104] ; 0x68
value_area.y1 += p_align.y + dsc->value_ofs_y;
abdc: f8b9 104a ldrh.w r1, [r9, #74] ; 0x4a
value_area.x1 += p_align.x + dsc->value_ofs_x;
abe0: 441a add r2, r3
abe2: f8bd 3078 ldrh.w r3, [sp, #120] ; 0x78
abe6: fa13 f382 uxtah r3, r3, r2
abea: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
value_area.y1 += p_align.y + dsc->value_ofs_y;
abee: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
abf2: 440b add r3, r1
abf4: f8bd 107a ldrh.w r1, [sp, #122] ; 0x7a
abf8: fa11 f183 uxtah r1, r1, r3
abfc: f8ad 107a strh.w r1, [sp, #122] ; 0x7a
value_area.x2 += p_align.x + dsc->value_ofs_x;
ac00: f8bd 107c ldrh.w r1, [sp, #124] ; 0x7c
ac04: fa11 f282 uxtah r2, r1, r2
ac08: f8ad 207c strh.w r2, [sp, #124] ; 0x7c
value_area.y2 += p_align.y + dsc->value_ofs_y;
ac0c: f8bd 207e ldrh.w r2, [sp, #126] ; 0x7e
ac10: fa12 f383 uxtah r3, r2, r3
ac14: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
ac18: a825 add r0, sp, #148 ; 0x94
ac1a: 4b33 ldr r3, [pc, #204] ; (ace8 <lv_draw_rect+0x10e8>)
ac1c: 4798 blx r3
label_dsc.font = dsc->value_font;
ac1e: f8d9 3040 ldr.w r3, [r9, #64] ; 0x40
ac22: 9326 str r3, [sp, #152] ; 0x98
label_dsc.letter_space = dsc->value_letter_space;
ac24: f8b9 304c ldrh.w r3, [r9, #76] ; 0x4c
ac28: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0
label_dsc.line_space = dsc->value_line_space;
ac2c: f8b9 304e ldrh.w r3, [r9, #78] ; 0x4e
ac30: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
label_dsc.color = dsc->value_color;
ac34: f8b9 3046 ldrh.w r3, [r9, #70] ; 0x46
ac38: f8ad 3094 strh.w r3, [sp, #148] ; 0x94
label_dsc.opa = dsc->value_opa;
ac3c: f899 3044 ldrb.w r3, [r9, #68] ; 0x44
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
ac40: 9400 str r4, [sp, #0]
label_dsc.opa = dsc->value_opa;
ac42: f88d 309c strb.w r3, [sp, #156] ; 0x9c
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
ac46: 4c29 ldr r4, [pc, #164] ; (acec <lv_draw_rect+0x10ec>)
ac48: f8d9 303c ldr.w r3, [r9, #60] ; 0x3c
ac4c: aa25 add r2, sp, #148 ; 0x94
ac4e: 4641 mov r1, r8
ac50: a81e add r0, sp, #120 ; 0x78
ac52: 47a0 blx r4
if(dsc->outline_opa <= LV_OPA_MIN) return;
ac54: f899 301c ldrb.w r3, [r9, #28]
ac58: 9305 str r3, [sp, #20]
ac5a: 2b05 cmp r3, #5
ac5c: f240 8162 bls.w af24 <lv_draw_rect+0x1324>
if(dsc->outline_width == 0) return;
ac60: f9b9 3018 ldrsh.w r3, [r9, #24]
ac64: 2b00 cmp r3, #0
ac66: f000 815d beq.w af24 <lv_draw_rect+0x1324>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
ac6a: 9b05 ldr r3, [sp, #20]
lv_area_copy(&area_inner, coords);
ac6c: 4d16 ldr r5, [pc, #88] ; (acc8 <lv_draw_rect+0x10c8>)
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
ac6e: 2bfb cmp r3, #251 ; 0xfb
ac70: bf28 it cs
ac72: 23ff movcs r3, #255 ; 0xff
ac74: 9305 str r3, [sp, #20]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
ac76: 4b1e ldr r3, [pc, #120] ; (acf0 <lv_draw_rect+0x10f0>)
ac78: 4798 blx r3
lv_area_copy(&area_inner, coords);
ac7a: 9904 ldr r1, [sp, #16]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
ac7c: 900a str r0, [sp, #40] ; 0x28
lv_area_copy(&area_inner, coords);
ac7e: a812 add r0, sp, #72 ; 0x48
ac80: 47a8 blx r5
area_inner.x1 -= dsc->outline_pad;
ac82: f8b9 701a ldrh.w r7, [r9, #26]
ac86: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
area_inner.y1 -= dsc->outline_pad;
ac8a: f8bd a04a ldrh.w sl, [sp, #74] ; 0x4a
area_inner.x1 -= dsc->outline_pad;
ac8e: 9306 str r3, [sp, #24]
ac90: 1bdb subs r3, r3, r7
ac92: f8ad 3048 strh.w r3, [sp, #72] ; 0x48
area_inner.y1 -= dsc->outline_pad;
ac96: ebaa 0307 sub.w r3, sl, r7
ac9a: f8ad 304a strh.w r3, [sp, #74] ; 0x4a
area_inner.y2 += dsc->outline_pad;
ac9e: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
area_inner.x2 += dsc->outline_pad;
aca2: f8bd 404c ldrh.w r4, [sp, #76] ; 0x4c
area_inner.y2 += dsc->outline_pad;
aca6: 443b add r3, r7
aca8: b29b uxth r3, r3
area_inner.x2 += dsc->outline_pad;
acaa: 443c add r4, r7
area_inner.y2 += dsc->outline_pad;
acac: 9307 str r3, [sp, #28]
acae: f8ad 304e strh.w r3, [sp, #78] ; 0x4e
area_inner.x2 += dsc->outline_pad;
acb2: b2a4 uxth r4, r4
int32_t rin = dsc->radius;
acb4: f9b9 3000 ldrsh.w r3, [r9]
acb8: 930b str r3, [sp, #44] ; 0x2c
lv_area_copy(&area_outer, &area_inner);
acba: a912 add r1, sp, #72 ; 0x48
int32_t rout = rin + dsc->outline_width;
acbc: f9b9 3018 ldrsh.w r3, [r9, #24]
area_inner.x2 += dsc->outline_pad;
acc0: f8ad 404c strh.w r4, [sp, #76] ; 0x4c
acc4: e016 b.n acf4 <lv_draw_rect+0x10f4>
acc6: bf00 nop
acc8: 00009ba1 .word 0x00009ba1
accc: 00009925 .word 0x00009925
acd0: 00009719 .word 0x00009719
acd4: 000061d9 .word 0x000061d9
acd8: 000097ad .word 0x000097ad
acdc: 0000ebb1 .word 0x0000ebb1
ace0: 000101fd .word 0x000101fd
ace4: 0000e179 .word 0x0000e179
ace8: 00007855 .word 0x00007855
acec: 00007885 .word 0x00007885
acf0: 000097fd .word 0x000097fd
lv_area_copy(&area_outer, &area_inner);
acf4: a814 add r0, sp, #80 ; 0x50
int32_t rout = rin + dsc->outline_width;
acf6: 930c str r3, [sp, #48] ; 0x30
lv_area_copy(&area_outer, &area_inner);
acf8: 47a8 blx r5
area_outer.x1 -= dsc->outline_width;
acfa: f8b9 6018 ldrh.w r6, [r9, #24]
acfe: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
area_outer.x2 += dsc->outline_width;
ad02: f8bd b054 ldrh.w fp, [sp, #84] ; 0x54
area_outer.y2 += dsc->outline_width;
ad06: f8bd 5056 ldrh.w r5, [sp, #86] ; 0x56
area_outer.x1 -= dsc->outline_width;
ad0a: 9308 str r3, [sp, #32]
ad0c: 1b9b subs r3, r3, r6
ad0e: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
area_outer.y1 -= dsc->outline_width;
ad12: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
ad16: 9309 str r3, [sp, #36] ; 0x24
area_outer.x2 += dsc->outline_width;
ad18: 44b3 add fp, r6
area_outer.y2 += dsc->outline_width;
ad1a: 4435 add r5, r6
area_outer.y1 -= dsc->outline_width;
ad1c: 1b9b subs r3, r3, r6
area_outer.x2 += dsc->outline_width;
ad1e: fa1f fb8b uxth.w fp, fp
area_outer.y2 += dsc->outline_width;
ad22: b2ad uxth r5, r5
area_outer.y1 -= dsc->outline_width;
ad24: f8ad 3052 strh.w r3, [sp, #82] ; 0x52
area_outer.x2 += dsc->outline_width;
ad28: f8ad b054 strh.w fp, [sp, #84] ; 0x54
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
ad2c: 4bc6 ldr r3, [pc, #792] ; (b048 <lv_draw_rect+0x1448>)
area_outer.y2 += dsc->outline_width;
ad2e: f8ad 5056 strh.w r5, [sp, #86] ; 0x56
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
ad32: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
ad34: 4bc5 ldr r3, [pc, #788] ; (b04c <lv_draw_rect+0x144c>)
ad36: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
ad38: 4bc5 ldr r3, [pc, #788] ; (b050 <lv_draw_rect+0x1450>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
ad3a: 9004 str r0, [sp, #16]
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
ad3c: 4642 mov r2, r8
ad3e: a914 add r1, sp, #80 ; 0x50
ad40: a816 add r0, sp, #88 ; 0x58
ad42: 4798 blx r3
if(is_common == false) return;
ad44: 2800 cmp r0, #0
ad46: f000 80ed beq.w af24 <lv_draw_rect+0x1324>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ad4a: 9b06 ldr r3, [sp, #24]
ad4c: 9908 ldr r1, [sp, #32]
draw_area.x1 -= disp_area->x1;
ad4e: f8bd 0058 ldrh.w r0, [sp, #88] ; 0x58
ad52: f1c3 0201 rsb r2, r3, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ad56: f1ca 0a01 rsb sl, sl, #1
ad5a: 9b07 ldr r3, [sp, #28]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ad5c: f1c1 0101 rsb r1, r1, #1
ad60: 4431 add r1, r6
ad62: 443a add r2, r7
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ad64: 4457 add r7, sl
ad66: 443b add r3, r7
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ad68: 4422 add r2, r4
ad6a: 448b add fp, r1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ad6c: 9909 ldr r1, [sp, #36] ; 0x24
int32_t inner_h = lv_area_get_height(&area_inner);
ad6e: b21c sxth r4, r3
int32_t inner_w = lv_area_get_width(&area_inner);
ad70: b212 sxth r2, r2
int32_t short_side = LV_MATH_MIN(inner_w, inner_h);
ad72: 42a2 cmp r2, r4
ad74: f1c1 0101 rsb r1, r1, #1
ad78: 9b0b ldr r3, [sp, #44] ; 0x2c
ad7a: bfa8 it ge
ad7c: 4622 movge r2, r4
ad7e: 440e add r6, r1
if(rin > short_side >> 1) rin = short_side >> 1;
ad80: 1052 asrs r2, r2, #1
ad82: 442e add r6, r5
ad84: 429a cmp r2, r3
int32_t coords_out_h = lv_area_get_height(&area_outer);
ad86: b236 sxth r6, r6
int32_t coords_out_w = lv_area_get_width(&area_outer);
ad88: fa0f fb8b sxth.w fp, fp
ad8c: bfa8 it ge
ad8e: 461a movge r2, r3
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
ad90: 455e cmp r6, fp
int32_t rout = rin + dsc->outline_width;
ad92: 9b0c ldr r3, [sp, #48] ; 0x30
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
ad94: bfa8 it ge
ad96: 465e movge r6, fp
int32_t rout = rin + dsc->outline_width;
ad98: 4413 add r3, r2
if(rout > short_side >> 1) rout = short_side >> 1;
ad9a: ea4f 0b66 mov.w fp, r6, asr #1
ad9e: 459b cmp fp, r3
ada0: bfa8 it ge
ada2: 469b movge fp, r3
draw_area.x1 -= disp_area->x1;
ada4: 9b04 ldr r3, [sp, #16]
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
ada6: 4eab ldr r6, [pc, #684] ; (b054 <lv_draw_rect+0x1454>)
draw_area.x1 -= disp_area->x1;
ada8: 8a19 ldrh r1, [r3, #16]
adaa: 1a43 subs r3, r0, r1
adac: f8ad 3058 strh.w r3, [sp, #88] ; 0x58
draw_area.y1 -= disp_area->y1;
adb0: 9b04 ldr r3, [sp, #16]
adb2: 8a5c ldrh r4, [r3, #18]
adb4: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
adb8: 1b1b subs r3, r3, r4
adba: f8ad 305a strh.w r3, [sp, #90] ; 0x5a
draw_area.x2 -= disp_area->x1;
adbe: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
adc2: 1a59 subs r1, r3, r1
adc4: f8ad 105c strh.w r1, [sp, #92] ; 0x5c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
adc8: 1c5d adds r5, r3, #1
draw_area.y2 -= disp_area->y1;
adca: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e
adce: 1a2d subs r5, r5, r0
add0: 1b09 subs r1, r1, r4
add2: b22b sxth r3, r5
add4: ee08 3a10 vmov s16, r3
add8: f8ad 105e strh.w r1, [sp, #94] ; 0x5e
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
addc: 2301 movs r3, #1
adde: a912 add r1, sp, #72 ; 0x48
ade0: a81e add r0, sp, #120 ; 0x78
ade2: 47b0 blx r6
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
ade4: 4c9c ldr r4, [pc, #624] ; (b058 <lv_draw_rect+0x1458>)
ade6: 2100 movs r1, #0
ade8: a81e add r0, sp, #120 ; 0x78
adea: 47a0 blx r4
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
adec: fa0f f28b sxth.w r2, fp
adf0: 2300 movs r3, #0
adf2: a914 add r1, sp, #80 ; 0x50
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
adf4: ee08 0a90 vmov s17, r0
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
adf8: a825 add r0, sp, #148 ; 0x94
adfa: 47b0 blx r6
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
adfc: 2100 movs r1, #0
adfe: a825 add r0, sp, #148 ; 0x94
ae00: 47a0 blx r4
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ae02: 4b96 ldr r3, [pc, #600] ; (b05c <lv_draw_rect+0x145c>)
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
ae04: ee09 0a10 vmov s18, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ae08: ee18 0a10 vmov r0, s16
ae0c: 4798 blx r3
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
ae0e: f9b9 3018 ldrsh.w r3, [r9, #24]
fill_area.y1 = disp_area->y1 + draw_area.y1;
ae12: f9bd 605a ldrsh.w r6, [sp, #90] ; 0x5a
if(simple_mode) {
ae16: 9a0a ldr r2, [sp, #40] ; 0x28
lv_color_t color = dsc->outline_color;
ae18: f8b9 7016 ldrh.w r7, [r9, #22]
fill_area.x2 = area_outer.x2;
ae1c: f9bd 1054 ldrsh.w r1, [sp, #84] ; 0x54
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
ae20: 459b cmp fp, r3
ae22: bfbc itt lt
ae24: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff
ae28: 9307 strlt r3, [sp, #28]
lv_blend_mode_t blend_mode = dsc->outline_blend_mode;
ae2a: f899 301d ldrb.w r3, [r9, #29]
ae2e: 9306 str r3, [sp, #24]
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
ae30: 9b04 ldr r3, [sp, #16]
ae32: bfa8 it ge
ae34: f8cd b01c strge.w fp, [sp, #28]
ae38: f9b3 c012 ldrsh.w ip, [r3, #18]
fill_area.y1 = disp_area->y1 + draw_area.y1;
ae3c: eb0c 0306 add.w r3, ip, r6
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ae40: 4604 mov r4, r0
fill_area.y1 = disp_area->y1 + draw_area.y1;
ae42: b21b sxth r3, r3
fill_area.x1 = area_outer.x1;
ae44: f9bd 0050 ldrsh.w r0, [sp, #80] ; 0x50
if(simple_mode) {
ae48: 2a00 cmp r2, #0
ae4a: f040 8749 bne.w bce0 <lv_draw_rect+0x20e0>
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
ae4e: f9bd 2052 ldrsh.w r2, [sp, #82] ; 0x52
ae52: 9d07 ldr r5, [sp, #28]
fill_area.x1 = area_outer.x1;
ae54: f8ad 0060 strh.w r0, [sp, #96] ; 0x60
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
ae58: eba2 020c sub.w r2, r2, ip
ae5c: eb02 0a05 add.w sl, r2, r5
fill_area.x2 = area_outer.x2;
ae60: f8ad 1064 strh.w r1, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
ae64: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
ae68: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
ae6c: 45b2 cmp sl, r6
ae6e: f280 8630 bge.w bad2 <lv_draw_rect+0x1ed2>
int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size;
ae72: 9b04 ldr r3, [sp, #16]
ae74: f9bd 6056 ldrsh.w r6, [sp, #86] ; 0x56
ae78: f9b3 3012 ldrsh.w r3, [r3, #18]
ae7c: 9a07 ldr r2, [sp, #28]
ae7e: 1af6 subs r6, r6, r3
ae80: 1ab6 subs r6, r6, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
ae82: 45b2 cmp sl, r6
ae84: bfa8 it ge
ae86: f10a 0601 addge.w r6, sl, #1
fill_area.y1 = disp_area->y1 + lower_corner_end;
ae8a: 4433 add r3, r6
ae8c: b21b sxth r3, r3
ae8e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
ae92: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
ae96: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
ae9a: 429e cmp r6, r3
ae9c: f340 869a ble.w bbd4 <lv_draw_rect+0x1fd4>
fill_area.y1 = area_outer.y1 + corner_size + 1;
aea0: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
aea4: 9a07 ldr r2, [sp, #28]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
aea6: 4d6e ldr r5, [pc, #440] ; (b060 <lv_draw_rect+0x1460>)
fill_area.y1 = area_outer.y1 + corner_size + 1;
aea8: 3301 adds r3, #1
aeaa: fa13 f382 uxtah r3, r3, r2
aeae: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = area_outer.y2 - corner_size - 1;
aeb2: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56
aeb6: 3b01 subs r3, #1
aeb8: 1a9b subs r3, r3, r2
aeba: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
fill_area.x1 = area_outer.x1;
aebe: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
aec2: f8b9 2018 ldrh.w r2, [r9, #24]
fill_area.x1 = area_outer.x1;
aec6: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
aeca: 3b01 subs r3, #1
aecc: 4413 add r3, r2
aece: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
aed2: 9b06 ldr r3, [sp, #24]
aed4: 9302 str r3, [sp, #8]
aed6: 2601 movs r6, #1
aed8: 9b05 ldr r3, [sp, #20]
aeda: 9301 str r3, [sp, #4]
aedc: 463a mov r2, r7
aede: 2300 movs r3, #0
aee0: a918 add r1, sp, #96 ; 0x60
aee2: 4640 mov r0, r8
aee4: 9600 str r6, [sp, #0]
aee6: 47a8 blx r5
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
aee8: f9bd 2054 ldrsh.w r2, [sp, #84] ; 0x54
aeec: f8b9 1018 ldrh.w r1, [r9, #24]
fill_area.x2 = area_outer.x2;
aef0: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
aef4: 1993 adds r3, r2, r6
aef6: 1a5b subs r3, r3, r1
aef8: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
aefc: 9b06 ldr r3, [sp, #24]
aefe: 9302 str r3, [sp, #8]
af00: 9b05 ldr r3, [sp, #20]
af02: 463a mov r2, r7
af04: e9cd 6300 strd r6, r3, [sp]
af08: a918 add r1, sp, #96 ; 0x60
af0a: 2300 movs r3, #0
af0c: 4640 mov r0, r8
af0e: 47a8 blx r5
lv_draw_mask_remove_id(mask_rin_id);
af10: 4d54 ldr r5, [pc, #336] ; (b064 <lv_draw_rect+0x1464>)
af12: ee18 0a90 vmov r0, s17
af16: 47a8 blx r5
lv_draw_mask_remove_id(mask_rout_id);
af18: ee19 0a10 vmov r0, s18
af1c: 47a8 blx r5
_lv_mem_buf_release(mask_buf);
af1e: 4b52 ldr r3, [pc, #328] ; (b068 <lv_draw_rect+0x1468>)
af20: 4620 mov r0, r4
af22: 4798 blx r3
}
af24: b02d add sp, #180 ; 0xb4
af26: ecbd 8b04 vpop {d8-d9}
af2a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_memcpy(mask_buf, sh_buf_tmp, w);
af2e: 4629 mov r1, r5
af30: 4b4e ldr r3, [pc, #312] ; (b06c <lv_draw_rect+0x146c>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
af32: 4c4f ldr r4, [pc, #316] ; (b070 <lv_draw_rect+0x1470>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
af34: 4632 mov r2, r6
af36: ee18 0a10 vmov r0, s16
af3a: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
af3c: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
af40: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
af44: 4633 mov r3, r6
af46: ee18 0a10 vmov r0, s16
af4a: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
af4c: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
af50: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
af52: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
af54: 9b07 ldr r3, [sp, #28]
af56: 4c42 ldr r4, [pc, #264] ; (b060 <lv_draw_rect+0x1460>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
af58: bf08 it eq
af5a: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
af5c: e9cd 0300 strd r0, r3, [sp]
af60: a91e add r1, sp, #120 ; 0x78
af62: ee18 3a10 vmov r3, s16
af66: f8b9 201e ldrh.w r2, [r9, #30]
af6a: 4640 mov r0, r8
af6c: 47a0 blx r4
fa.y1++;
af6e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
af72: 3301 adds r3, #1
af74: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
af78: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
af7c: 3301 adds r3, #1
af7e: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
af82: 4455 add r5, sl
for(y = 0; y < h; y++) {
af84: 3701 adds r7, #1
af86: f7ff ba28 b.w a3da <lv_draw_rect+0x7da>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
af8a: 4629 mov r1, r5
af8c: 4b37 ldr r3, [pc, #220] ; (b06c <lv_draw_rect+0x146c>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
af8e: 4c38 ldr r4, [pc, #224] ; (b070 <lv_draw_rect+0x1470>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
af90: 4632 mov r2, r6
af92: ee18 0a10 vmov r0, s16
af96: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
af98: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
af9c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
afa0: 4633 mov r3, r6
afa2: ee18 0a10 vmov r0, s16
afa6: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
afa8: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
afac: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
afae: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
afb0: 9b07 ldr r3, [sp, #28]
afb2: 4c2b ldr r4, [pc, #172] ; (b060 <lv_draw_rect+0x1460>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
afb4: bf08 it eq
afb6: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
afb8: e9cd 0300 strd r0, r3, [sp]
afbc: a91e add r1, sp, #120 ; 0x78
afbe: ee18 3a10 vmov r3, s16
afc2: f8b9 201e ldrh.w r2, [r9, #30]
afc6: 4640 mov r0, r8
afc8: 47a0 blx r4
fa.y1--;
afca: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
afce: 3b01 subs r3, #1
afd0: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
afd4: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
afd8: 3b01 subs r3, #1
afda: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
afde: 4455 add r5, sl
for(y = 0; y < h; y++) {
afe0: 3701 adds r7, #1
afe2: f7ff ba4c b.w a47e <lv_draw_rect+0x87e>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
afe6: 4b21 ldr r3, [pc, #132] ; (b06c <lv_draw_rect+0x146c>)
afe8: ee18 0a10 vmov r0, s16
afec: 462a mov r2, r5
afee: 4631 mov r1, r6
aff0: 4798 blx r3
if(simple_mode) {
aff2: 9b06 ldr r3, [sp, #24]
aff4: b953 cbnz r3, b00c <lv_draw_rect+0x140c>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
aff6: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
affa: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
affe: 4c1c ldr r4, [pc, #112] ; (b070 <lv_draw_rect+0x1470>)
b000: ee18 0a10 vmov r0, s16
b004: 462b mov r3, r5
b006: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b008: 2801 cmp r0, #1
b00a: d100 bne.n b00e <lv_draw_rect+0x140e>
b00c: 2002 movs r0, #2
_lv_blend_fill(clip, &fa,
b00e: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
b012: 9302 str r3, [sp, #8]
b014: f899 3028 ldrb.w r3, [r9, #40] ; 0x28
b018: 4c11 ldr r4, [pc, #68] ; (b060 <lv_draw_rect+0x1460>)
b01a: e9cd 0300 strd r0, r3, [sp]
b01e: a91e add r1, sp, #120 ; 0x78
b020: ee18 3a10 vmov r3, s16
b024: f8b9 201e ldrh.w r2, [r9, #30]
b028: 4640 mov r0, r8
b02a: 47a0 blx r4
fa.y1++;
b02c: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b030: 3301 adds r3, #1
b032: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b036: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b03a: 3301 adds r3, #1
b03c: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
b040: 3701 adds r7, #1
b042: f7ff ba68 b.w a516 <lv_draw_rect+0x916>
b046: bf00 nop
b048: 00004fdd .word 0x00004fdd
b04c: 0000da25 .word 0x0000da25
b050: 0000ded1 .word 0x0000ded1
b054: 00009925 .word 0x00009925
b058: 00009719 .word 0x00009719
b05c: 0000eefd .word 0x0000eefd
b060: 000061d9 .word 0x000061d9
b064: 000097ad .word 0x000097ad
b068: 0000ebb1 .word 0x0000ebb1
b06c: 0000ec79 .word 0x0000ec79
b070: 00009769 .word 0x00009769
lv_opa_t opa_tmp = sh_buf_tmp[0];
b074: 7833 ldrb r3, [r6, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
b076: 9a07 ldr r2, [sp, #28]
b078: ea02 0103 and.w r1, r2, r3
b07c: 29ff cmp r1, #255 ; 0xff
b07e: bf1c itt ne
b080: fb12 f303 smulbbne r3, r2, r3
b084: f3c3 2107 ubfxne r1, r3, #8, #8
_lv_memset(mask_buf, opa_tmp, w);
b088: ee18 0a10 vmov r0, s16
b08c: 4baa ldr r3, [pc, #680] ; (b338 <lv_draw_rect+0x1738>)
b08e: 462a mov r2, r5
b090: 4798 blx r3
if(simple_mode) {
b092: 9b06 ldr r3, [sp, #24]
b094: b953 cbnz r3, b0ac <lv_draw_rect+0x14ac>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b096: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b09a: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b09e: 4ca7 ldr r4, [pc, #668] ; (b33c <lv_draw_rect+0x173c>)
b0a0: ee18 0a10 vmov r0, s16
b0a4: 462b mov r3, r5
b0a6: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b0a8: 2801 cmp r0, #1
b0aa: d100 bne.n b0ae <lv_draw_rect+0x14ae>
b0ac: 2002 movs r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b0ae: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
b0b2: 9302 str r3, [sp, #8]
b0b4: 23ff movs r3, #255 ; 0xff
b0b6: e9cd 0300 strd r0, r3, [sp]
b0ba: 4ca1 ldr r4, [pc, #644] ; (b340 <lv_draw_rect+0x1740>)
b0bc: f8b9 201e ldrh.w r2, [r9, #30]
b0c0: ee18 3a10 vmov r3, s16
b0c4: a91e add r1, sp, #120 ; 0x78
b0c6: 4640 mov r0, r8
b0c8: 47a0 blx r4
fa.y1++;
b0ca: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b0ce: 3301 adds r3, #1
b0d0: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b0d4: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b0d8: 3301 adds r3, #1
b0da: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
b0de: 4456 add r6, sl
for(y = 0; y < h; y++) {
b0e0: 3701 adds r7, #1
b0e2: f7ff ba62 b.w a5aa <lv_draw_rect+0x9aa>
lv_opa_t opa_tmp = sh_buf_tmp[0];
b0e6: 7833 ldrb r3, [r6, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
b0e8: 9a07 ldr r2, [sp, #28]
b0ea: ea02 0103 and.w r1, r2, r3
b0ee: 29ff cmp r1, #255 ; 0xff
b0f0: bf1c itt ne
b0f2: fb12 f303 smulbbne r3, r2, r3
b0f6: f3c3 2107 ubfxne r1, r3, #8, #8
_lv_memset(mask_buf, opa_tmp, w);
b0fa: ee18 0a10 vmov r0, s16
b0fe: 4b8e ldr r3, [pc, #568] ; (b338 <lv_draw_rect+0x1738>)
b100: 462a mov r2, r5
b102: 4798 blx r3
if(simple_mode) {
b104: 9b06 ldr r3, [sp, #24]
b106: b953 cbnz r3, b11e <lv_draw_rect+0x151e>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b108: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b10c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b110: 4c8a ldr r4, [pc, #552] ; (b33c <lv_draw_rect+0x173c>)
b112: ee18 0a10 vmov r0, s16
b116: 462b mov r3, r5
b118: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b11a: 2801 cmp r0, #1
b11c: d100 bne.n b120 <lv_draw_rect+0x1520>
b11e: 2002 movs r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b120: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
b124: 9302 str r3, [sp, #8]
b126: 23ff movs r3, #255 ; 0xff
b128: e9cd 0300 strd r0, r3, [sp]
b12c: 4c84 ldr r4, [pc, #528] ; (b340 <lv_draw_rect+0x1740>)
b12e: f8b9 201e ldrh.w r2, [r9, #30]
b132: ee18 3a10 vmov r3, s16
b136: a91e add r1, sp, #120 ; 0x78
b138: 4640 mov r0, r8
b13a: 47a0 blx r4
fa.y1--;
b13c: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b140: 3b01 subs r3, #1
b142: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
b146: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b14a: 3b01 subs r3, #1
b14c: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
b150: 4456 add r6, sl
for(y = 0; y < h; y++) {
b152: 3701 adds r7, #1
b154: f7ff ba75 b.w a642 <lv_draw_rect+0xa42>
_lv_memset(mask_buf, dsc->shadow_opa, w);
b158: f899 1028 ldrb.w r1, [r9, #40] ; 0x28
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b15c: 4c78 ldr r4, [pc, #480] ; (b340 <lv_draw_rect+0x1740>)
_lv_memset(mask_buf, dsc->shadow_opa, w);
b15e: ee18 0a10 vmov r0, s16
b162: 4632 mov r2, r6
b164: 47d0 blx sl
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b166: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b16a: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b16e: 4633 mov r3, r6
b170: ee18 0a10 vmov r0, s16
b174: 47d8 blx fp
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b176: f899 3029 ldrb.w r3, [r9, #41] ; 0x29
b17a: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b17c: 2801 cmp r0, #1
b17e: bf08 it eq
b180: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b182: 23ff movs r3, #255 ; 0xff
b184: e9cd 0300 strd r0, r3, [sp]
b188: a91e add r1, sp, #120 ; 0x78
b18a: ee18 3a10 vmov r3, s16
b18e: f8b9 201e ldrh.w r2, [r9, #30]
b192: 4640 mov r0, r8
b194: 47a0 blx r4
fa.y1++;
b196: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b19a: 3301 adds r3, #1
b19c: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b1a0: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b1a4: 3301 adds r3, #1
b1a6: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
b1aa: 3501 adds r5, #1
b1ac: f7ff ba8b b.w a6c6 <lv_draw_rect+0xac6>
if(other_mask_cnt) simple_mode = false;
b1b0: 2300 movs r3, #0
b1b2: f7ff bb0c b.w a7ce <lv_draw_rect+0xbce>
if(rout > 0) {
b1b6: 2c00 cmp r4, #0
b1b8: f340 80ad ble.w b316 <lv_draw_rect+0x1716>
lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false);
b1bc: 2300 movs r3, #0
b1be: 4622 mov r2, r4
b1c0: a916 add r1, sp, #88 ; 0x58
b1c2: a825 add r0, sp, #148 ; 0x94
b1c4: 4f5f ldr r7, [pc, #380] ; (b344 <lv_draw_rect+0x1744>)
b1c6: 47b8 blx r7
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
b1c8: 4b5f ldr r3, [pc, #380] ; (b348 <lv_draw_rect+0x1748>)
b1ca: 2100 movs r1, #0
b1cc: a825 add r0, sp, #148 ; 0x94
b1ce: 4798 blx r3
b1d0: 9009 str r0, [sp, #36] ; 0x24
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
b1d2: f899 3006 ldrb.w r3, [r9, #6]
lv_color_t grad_color = dsc->bg_color;
b1d6: f8b9 b002 ldrh.w fp, [r9, #2]
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
b1da: 2b02 cmp r3, #2
b1dc: f040 80a8 bne.w b330 <lv_draw_rect+0x1730>
b1e0: f8b9 2004 ldrh.w r2, [r9, #4]
b1e4: 455a cmp r2, fp
b1e6: f000 80a3 beq.w b330 <lv_draw_rect+0x1730>
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
b1ea: 4b58 ldr r3, [pc, #352] ; (b34c <lv_draw_rect+0x174c>)
b1ec: 0070 lsls r0, r6, #1
b1ee: 4798 blx r3
for(i = 0; i < coords_w; i++) {
b1f0: 2700 movs r7, #0
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
b1f2: 9006 str r0, [sp, #24]
for(i = 0; i < coords_w; i++) {
b1f4: 42be cmp r6, r7
b1f6: 4b56 ldr r3, [pc, #344] ; (b350 <lv_draw_rect+0x1750>)
b1f8: f300 8091 bgt.w b31e <lv_draw_rect+0x171e>
b1fc: f9bd 205c ldrsh.w r2, [sp, #92] ; 0x5c
b200: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
fill_area.x2 = coords_bg.x2;
b204: f8ad 206c strh.w r2, [sp, #108] ; 0x6c
b208: 1c53 adds r3, r2, #1
b20a: 1a5b subs r3, r3, r1
if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true;
b20c: b21b sxth r3, r3
b20e: eba3 0344 sub.w r3, r3, r4, lsl #1
b212: 930a str r3, [sp, #40] ; 0x28
fill_area.y1 = disp_area->y1 + draw_area.y1;
b214: 9b05 ldr r3, [sp, #20]
b216: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
b21a: 8a5b ldrh r3, [r3, #18]
fill_area.x1 = coords_bg.x1;
b21c: f8ad 1068 strh.w r1, [sp, #104] ; 0x68
fill_area.y1 = disp_area->y1 + draw_area.y1;
b220: 4413 add r3, r2
b222: b21b sxth r3, r3
b224: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area.y2 = fill_area.y1;
b228: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b22c: 9207 str r2, [sp, #28]
b22e: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
b232: 9a07 ldr r2, [sp, #28]
b234: 429a cmp r2, r3
b236: f340 808f ble.w b358 <lv_draw_rect+0x1758>
if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) {
b23a: f899 3006 ldrb.w r3, [r9, #6]
b23e: 9a0c ldr r2, [sp, #48] ; 0x30
b240: 431a orrs r2, r3
b242: f012 03ff ands.w r3, r2, #255 ; 0xff
b246: d15d bne.n b304 <lv_draw_rect+0x1704>
b248: 9a0a ldr r2, [sp, #40] ; 0x28
b24a: 2a32 cmp r2, #50 ; 0x32
b24c: dd5a ble.n b304 <lv_draw_rect+0x1704>
fill_area.x1 = coords_bg.x1 + rout;
b24e: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58
b252: b2a6 uxth r6, r4
b254: fa12 f484 uxtah r4, r2, r4
fill_area.x2 = coords_bg.x2 - rout;
b258: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c
fill_area.x1 = coords_bg.x1 + rout;
b25c: f8ad 4068 strh.w r4, [sp, #104] ; 0x68
fill_area.x2 = coords_bg.x2 - rout;
b260: 1b92 subs r2, r2, r6
b262: f8ad 206c strh.w r2, [sp, #108] ; 0x6c
fill_area.y1 = coords_bg.y1;
b266: f9bd 205a ldrsh.w r2, [sp, #90] ; 0x5a
b26a: f8ad 206a strh.w r2, [sp, #106] ; 0x6a
fill_area.y2 = coords_bg.y1 + rout;
b26e: 4432 add r2, r6
b270: f8ad 206e strh.w r2, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b274: f899 200d ldrb.w r2, [r9, #13]
b278: 4c31 ldr r4, [pc, #196] ; (b340 <lv_draw_rect+0x1740>)
b27a: e9cd a201 strd sl, r2, [sp, #4]
b27e: 2201 movs r2, #1
b280: 9200 str r2, [sp, #0]
b282: f8b9 2002 ldrh.w r2, [r9, #2]
b286: a91a add r1, sp, #104 ; 0x68
b288: 4640 mov r0, r8
b28a: 47a0 blx r4
fill_area.y1 = coords_bg.y2 - rout;
b28c: f9bd 105e ldrsh.w r1, [sp, #94] ; 0x5e
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b290: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b294: 4c2a ldr r4, [pc, #168] ; (b340 <lv_draw_rect+0x1740>)
fill_area.y2 = coords_bg.y2;
b296: f8ad 106e strh.w r1, [sp, #110] ; 0x6e
fill_area.y1 = coords_bg.y2 - rout;
b29a: 1b8a subs r2, r1, r6
b29c: b212 sxth r2, r2
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b29e: 429a cmp r2, r3
b2a0: bfd8 it le
b2a2: 3301 addle r3, #1
fill_area.y1 = coords_bg.y2 - rout;
b2a4: f8ad 206a strh.w r2, [sp, #106] ; 0x6a
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b2a8: bfd8 it le
b2aa: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
_lv_blend_fill(clip, &fill_area,
b2ae: f899 300d ldrb.w r3, [r9, #13]
b2b2: e9cd a301 strd sl, r3, [sp, #4]
b2b6: 2701 movs r7, #1
b2b8: 9700 str r7, [sp, #0]
b2ba: f8b9 2002 ldrh.w r2, [r9, #2]
b2be: 2300 movs r3, #0
b2c0: a91a add r1, sp, #104 ; 0x68
b2c2: 4640 mov r0, r8
b2c4: 47a0 blx r4
fill_area.x1 = coords_bg.x1;
b2c6: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
b2ca: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area.x2 = coords_bg.x2;
b2ce: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
b2d2: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area.y1 = coords_bg.y1 + rout + 1;
b2d6: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
b2da: 443b add r3, r7
b2dc: 4433 add r3, r6
b2de: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area.y2 = coords_bg.y2 - rout - 1;
b2e2: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e
b2e6: 3b01 subs r3, #1
b2e8: 1b9e subs r6, r3, r6
_lv_blend_fill(clip, &fill_area,
b2ea: f899 300d ldrb.w r3, [r9, #13]
b2ee: 9700 str r7, [sp, #0]
b2f0: e9cd a301 strd sl, r3, [sp, #4]
fill_area.y2 = coords_bg.y2 - rout - 1;
b2f4: f8ad 606e strh.w r6, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b2f8: f8b9 2002 ldrh.w r2, [r9, #2]
b2fc: 2300 movs r3, #0
b2fe: a91a add r1, sp, #104 ; 0x68
b300: 4640 mov r0, r8
b302: 47a0 blx r4
if(grad_map) _lv_mem_buf_release(grad_map);
b304: 9b06 ldr r3, [sp, #24]
b306: 2b00 cmp r3, #0
b308: f43f aa94 beq.w a834 <lv_draw_rect+0xc34>
b30c: 4618 mov r0, r3
b30e: 4b11 ldr r3, [pc, #68] ; (b354 <lv_draw_rect+0x1754>)
b310: 4798 blx r3
b312: f7ff ba8f b.w a834 <lv_draw_rect+0xc34>
int16_t mask_rout_id = LV_MASK_ID_INV;
b316: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
b31a: 9309 str r3, [sp, #36] ; 0x24
b31c: e759 b.n b1d2 <lv_draw_rect+0x15d2>
grad_map[i] = grad_get(dsc, coords_w, i);
b31e: b23a sxth r2, r7
b320: 4631 mov r1, r6
b322: 4648 mov r0, r9
b324: 4798 blx r3
b326: 9b06 ldr r3, [sp, #24]
b328: f823 0017 strh.w r0, [r3, r7, lsl #1]
for(i = 0; i < coords_w; i++) {
b32c: 3701 adds r7, #1
b32e: e761 b.n b1f4 <lv_draw_rect+0x15f4>
lv_color_t * grad_map = NULL;
b330: 2300 movs r3, #0
b332: 9306 str r3, [sp, #24]
b334: e762 b.n b1fc <lv_draw_rect+0x15fc>
b336: bf00 nop
b338: 0000f001 .word 0x0000f001
b33c: 00009769 .word 0x00009769
b340: 000061d9 .word 0x000061d9
b344: 00009925 .word 0x00009925
b348: 00009719 .word 0x00009719
b34c: 0000eefd .word 0x0000eefd
b350: 00009981 .word 0x00009981
b354: 0000ebb1 .word 0x0000ebb1
int32_t y = h + vdb->area.y1;
b358: 9b05 ldr r3, [sp, #20]
b35a: f9b3 7012 ldrsh.w r7, [r3, #18]
b35e: 9b07 ldr r3, [sp, #28]
b360: 441f add r7, r3
if(y > coords_bg.y1 + rout + 1 &&
b362: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a
b366: 4423 add r3, r4
b368: 3301 adds r3, #1
b36a: 429f cmp r7, r3
b36c: dd09 ble.n b382 <lv_draw_rect+0x1782>
y < coords_bg.y2 - rout - 1) {
b36e: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
b372: 1b1b subs r3, r3, r4
b374: 3b01 subs r3, #1
if(y > coords_bg.y1 + rout + 1 &&
b376: 429f cmp r7, r3
b378: da03 bge.n b382 <lv_draw_rect+0x1782>
if(simple_mode == false) {
b37a: 9b08 ldr r3, [sp, #32]
b37c: 2b00 cmp r3, #0
b37e: f040 8095 bne.w b4ac <lv_draw_rect+0x18ac>
_lv_memset_ff(mask_buf, draw_area_w);
b382: ee18 1a10 vmov r1, s16
b386: 4bbc ldr r3, [pc, #752] ; (b678 <lv_draw_rect+0x1a78>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b388: 4ebc ldr r6, [pc, #752] ; (b67c <lv_draw_rect+0x1a7c>)
_lv_memset_ff(mask_buf, draw_area_w);
b38a: 4628 mov r0, r5
b38c: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b38e: 9b05 ldr r3, [sp, #20]
b390: 8a5a ldrh r2, [r3, #18]
b392: 9b07 ldr r3, [sp, #28]
b394: 441a add r2, r3
b396: 9b05 ldr r3, [sp, #20]
b398: 8a19 ldrh r1, [r3, #16]
b39a: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
b39e: 4419 add r1, r3
b3a0: b212 sxth r2, r2
b3a2: ee18 3a10 vmov r3, s16
b3a6: b209 sxth r1, r1
b3a8: 4628 mov r0, r5
b3aa: 47b0 blx r6
b3ac: 4606 mov r6, r0
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
b3ae: f899 3006 ldrb.w r3, [r9, #6]
b3b2: 2b01 cmp r3, #1
b3b4: d112 bne.n b3dc <lv_draw_rect+0x17dc>
b3b6: f8b9 2002 ldrh.w r2, [r9, #2]
b3ba: f8b9 3004 ldrh.w r3, [r9, #4]
b3be: 429a cmp r2, r3
b3c0: d00c beq.n b3dc <lv_draw_rect+0x17dc>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b3c2: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e
b3c6: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
b3ca: 3101 adds r1, #1
grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1);
b3cc: 1afa subs r2, r7, r3
b3ce: 1ac9 subs r1, r1, r3
b3d0: b212 sxth r2, r2
b3d2: 4bab ldr r3, [pc, #684] ; (b680 <lv_draw_rect+0x1a80>)
b3d4: b209 sxth r1, r1
b3d6: 4648 mov r0, r9
b3d8: 4798 blx r3
b3da: 4683 mov fp, r0
if(simple_mode && split &&
b3dc: 9b08 ldr r3, [sp, #32]
b3de: 2b00 cmp r3, #0
b3e0: d066 beq.n b4b0 <lv_draw_rect+0x18b0>
b3e2: 9b0a ldr r3, [sp, #40] ; 0x28
b3e4: 2b32 cmp r3, #50 ; 0x32
b3e6: dd63 ble.n b4b0 <lv_draw_rect+0x18b0>
(y < coords_bg.y1 + rout + 1 ||
b3e8: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a
b3ec: 4423 add r3, r4
if(simple_mode && split &&
b3ee: 429f cmp r7, r3
b3f0: dd04 ble.n b3fc <lv_draw_rect+0x17fc>
y > coords_bg.y2 - rout - 1)) {
b3f2: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
b3f6: 1b1b subs r3, r3, r4
(y < coords_bg.y1 + rout + 1 ||
b3f8: 429f cmp r7, r3
b3fa: db59 blt.n b4b0 <lv_draw_rect+0x18b0>
fill_area2.x1 = coords_bg.x1;
b3fc: f9bd 3058 ldrsh.w r3, [sp, #88] ; 0x58
b400: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
fill_area2.x2 = coords_bg.x1 + rout - 1;
b404: 3b01 subs r3, #1
b406: fa13 f384 uxtah r3, r3, r4
b40a: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
fill_area2.y1 = fill_area.y1;
b40e: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
b412: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fill_area2.y2 = fill_area.y2;
b416: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
b41a: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
_lv_blend_fill(clip, &fill_area2,
b41e: f899 300d ldrb.w r3, [r9, #13]
b422: 4f98 ldr r7, [pc, #608] ; (b684 <lv_draw_rect+0x1a84>)
b424: 9600 str r6, [sp, #0]
fill_area2.x2 = coords_bg.x1 + rout - 1;
b426: b2a2 uxth r2, r4
_lv_blend_fill(clip, &fill_area2,
b428: e9cd a301 strd sl, r3, [sp, #4]
fill_area2.x2 = coords_bg.x1 + rout - 1;
b42c: 920b str r2, [sp, #44] ; 0x2c
_lv_blend_fill(clip, &fill_area2,
b42e: 462b mov r3, r5
b430: 465a mov r2, fp
b432: a91e add r1, sp, #120 ; 0x78
b434: 4640 mov r0, r8
b436: 47b8 blx r7
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
b438: f899 2006 ldrb.w r2, [r9, #6]
b43c: 2a01 cmp r2, #1
b43e: d114 bne.n b46a <lv_draw_rect+0x186a>
fill_area2.x1 = coords_bg.x1 + rout;
b440: 990b ldr r1, [sp, #44] ; 0x2c
b442: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
b446: 440b add r3, r1
b448: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
fill_area2.x2 = coords_bg.x2 - rout;
b44c: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
b450: 1a5b subs r3, r3, r1
b452: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
_lv_blend_fill(clip, &fill_area2,
b456: f899 300d ldrb.w r3, [r9, #13]
b45a: 9200 str r2, [sp, #0]
b45c: e9cd a301 strd sl, r3, [sp, #4]
b460: 465a mov r2, fp
b462: 2300 movs r3, #0
b464: a91e add r1, sp, #120 ; 0x78
b466: 4640 mov r0, r8
b468: 47b8 blx r7
fill_area2.x1 = coords_bg.x2 - rout + 1;
b46a: f9bd 305c ldrsh.w r3, [sp, #92] ; 0x5c
b46e: 990b ldr r1, [sp, #44] ; 0x2c
fill_area2.x2 = coords_bg.x2;
b470: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
fill_area2.x1 = coords_bg.x2 - rout + 1;
b474: 1c5a adds r2, r3, #1
b476: 1a57 subs r7, r2, r1
int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b478: 9a05 ldr r2, [sp, #20]
fill_area2.x1 = coords_bg.x2 - rout + 1;
b47a: f8ad 7078 strh.w r7, [sp, #120] ; 0x78
int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b47e: f9b2 2010 ldrsh.w r2, [r2, #16]
b482: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60
b486: 1b1b subs r3, r3, r4
b488: 440a add r2, r1
b48a: 3301 adds r3, #1
b48c: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2,
b48e: f899 200d ldrb.w r2, [r9, #13]
b492: 9600 str r6, [sp, #0]
b494: e9cd a201 strd sl, r2, [sp, #4]
b498: 2b00 cmp r3, #0
b49a: bfac ite ge
b49c: 18eb addge r3, r5, r3
b49e: 1c2b addlt r3, r5, #0
b4a0: 465a mov r2, fp
b4a2: a91e add r1, sp, #120 ; 0x78
_lv_blend_fill(clip, &fill_area,
b4a4: 4e77 ldr r6, [pc, #476] ; (b684 <lv_draw_rect+0x1a84>)
b4a6: 4640 mov r0, r8
b4a8: 47b0 blx r6
b4aa: e010 b.n b4ce <lv_draw_rect+0x18ce>
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
b4ac: 2601 movs r6, #1
b4ae: e77e b.n b3ae <lv_draw_rect+0x17ae>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
b4b0: f899 3006 ldrb.w r3, [r9, #6]
b4b4: 2b02 cmp r3, #2
b4b6: d118 bne.n b4ea <lv_draw_rect+0x18ea>
_lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode);
b4b8: f899 300d ldrb.w r3, [r9, #13]
b4bc: 9a06 ldr r2, [sp, #24]
b4be: 9600 str r6, [sp, #0]
b4c0: e9cd a301 strd sl, r3, [sp, #4]
b4c4: 4e70 ldr r6, [pc, #448] ; (b688 <lv_draw_rect+0x1a88>)
b4c6: 462b mov r3, r5
b4c8: a91a add r1, sp, #104 ; 0x68
b4ca: 4640 mov r0, r8
b4cc: 47b0 blx r6
fill_area.y1++;
b4ce: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
b4d2: 3301 adds r3, #1
b4d4: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area.y2++;
b4d8: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
b4dc: 3301 adds r3, #1
b4de: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b4e2: 9b07 ldr r3, [sp, #28]
b4e4: 3301 adds r3, #1
b4e6: 9307 str r3, [sp, #28]
b4e8: e6a1 b.n b22e <lv_draw_rect+0x162e>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
b4ea: 2b01 cmp r3, #1
b4ec: d108 bne.n b500 <lv_draw_rect+0x1900>
_lv_blend_fill(clip, &fill_area,
b4ee: f899 300d ldrb.w r3, [r9, #13]
b4f2: 9600 str r6, [sp, #0]
b4f4: e9cd a301 strd sl, r3, [sp, #4]
b4f8: 465a mov r2, fp
b4fa: 462b mov r3, r5
b4fc: a91a add r1, sp, #104 ; 0x68
b4fe: e7d1 b.n b4a4 <lv_draw_rect+0x18a4>
else if(other_mask_cnt != 0 || !split) {
b500: 9b0d ldr r3, [sp, #52] ; 0x34
b502: 2b00 cmp r3, #0
b504: d1f3 bne.n b4ee <lv_draw_rect+0x18ee>
b506: 9b0a ldr r3, [sp, #40] ; 0x28
b508: 2b32 cmp r3, #50 ; 0x32
b50a: dce0 bgt.n b4ce <lv_draw_rect+0x18ce>
b50c: e7ef b.n b4ee <lv_draw_rect+0x18ee>
lv_draw_img_dsc_init(&img_dsc);
b50e: 4b5f ldr r3, [pc, #380] ; (b68c <lv_draw_rect+0x1a8c>)
img_w = header.w;
b510: 9d25 ldr r5, [sp, #148] ; 0x94
img_h = header.h;
b512: f8bd a096 ldrh.w sl, [sp, #150] ; 0x96
lv_draw_img_dsc_init(&img_dsc);
b516: a81a add r0, sp, #104 ; 0x68
b518: 4798 blx r3
img_dsc.opa = dsc->pattern_opa;
b51a: f899 3036 ldrb.w r3, [r9, #54] ; 0x36
b51e: f88d 3068 strb.w r3, [sp, #104] ; 0x68
img_dsc.recolor_opa = dsc->pattern_recolor_opa;
b522: f899 3037 ldrb.w r3, [r9, #55] ; 0x37
b526: f88d 3072 strb.w r3, [sp, #114] ; 0x72
img_dsc.recolor = dsc->pattern_recolor;
b52a: f8b9 3034 ldrh.w r3, [r9, #52] ; 0x34
b52e: f8ad 3074 strh.w r3, [sp, #116] ; 0x74
img_w = header.w;
b532: f3c5 258a ubfx r5, r5, #10, #11
img_h = header.h;
b536: f3ca 1a4a ubfx sl, sl, #5, #11
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b53a: fa1f f78a uxth.w r7, sl
b53e: 1e7b subs r3, r7, #1
b540: fa1f fb83 uxth.w fp, r3
if(dsc->pattern_repeat) {
b544: f899 3038 ldrb.w r3, [r9, #56] ; 0x38
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b548: f9b9 2000 ldrsh.w r2, [r9]
if(dsc->pattern_repeat) {
b54c: 07db lsls r3, r3, #31
b54e: f140 80cf bpl.w b6f0 <lv_draw_rect+0x1af0>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b552: 9904 ldr r1, [sp, #16]
b554: 4c4e ldr r4, [pc, #312] ; (b690 <lv_draw_rect+0x1a90>)
b556: 2300 movs r3, #0
b558: a825 add r0, sp, #148 ; 0x94
b55a: 47a0 blx r4
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b55c: 4b4d ldr r3, [pc, #308] ; (b694 <lv_draw_rect+0x1a94>)
b55e: 2100 movs r1, #0
b560: a825 add r0, sp, #148 ; 0x94
b562: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b564: 9b04 ldr r3, [sp, #16]
b566: 889c ldrh r4, [r3, #4]
b568: 881b ldrh r3, [r3, #0]
b56a: 3401 adds r4, #1
b56c: 1ae4 subs r4, r4, r3
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
b56e: b224 sxth r4, r4
b570: fb94 f3f5 sdiv r3, r4, r5
b574: fb05 4413 mls r4, r5, r3, r4
b578: eb04 74d4 add.w r4, r4, r4, lsr #31
b57c: 1063 asrs r3, r4, #1
b57e: 9305 str r3, [sp, #20]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b580: 9b04 ldr r3, [sp, #16]
b582: 885a ldrh r2, [r3, #2]
b584: 88db ldrh r3, [r3, #6]
b586: 3301 adds r3, #1
b588: 1a9b subs r3, r3, r2
int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2;
b58a: b21b sxth r3, r3
b58c: fb93 f1fa sdiv r1, r3, sl
b590: fb0a 3a11 mls sl, sl, r1, r3
b594: eb0a 7ada add.w sl, sl, sl, lsr #31
coords_tmp.y1 = coords->y1 - ofs_y;
b598: eba2 0a6a sub.w sl, r2, sl, asr #1
b59c: fa1f fa8a uxth.w sl, sl
b5a0: f8ad a062 strh.w sl, [sp, #98] ; 0x62
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b5a4: ee08 0a10 vmov s16, r0
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b5a8: 44da add sl, fp
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
b5aa: f8df b10c ldr.w fp, [pc, #268] ; b6b8 <lv_draw_rect+0x1ab8>
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b5ae: f8ad a066 strh.w sl, [sp, #102] ; 0x66
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
b5b2: 9b04 ldr r3, [sp, #16]
b5b4: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
b5b8: f9b3 3006 ldrsh.w r3, [r3, #6]
b5bc: 429a cmp r2, r3
b5be: dd3a ble.n b636 <lv_draw_rect+0x1a36>
lv_draw_mask_remove_id(radius_mask_id);
b5c0: ee18 0a10 vmov r0, s16
lv_draw_mask_remove_id(radius_mask_id);
b5c4: 4b34 ldr r3, [pc, #208] ; (b698 <lv_draw_rect+0x1a98>)
b5c6: 4798 blx r3
b5c8: f7ff b958 b.w a87c <lv_draw_rect+0xc7c>
else if(src_type == LV_IMG_SRC_SYMBOL) {
b5cc: 2802 cmp r0, #2
b5ce: d121 bne.n b614 <lv_draw_rect+0x1a14>
lv_draw_label_dsc_init(&label_dsc);
b5d0: 4b32 ldr r3, [pc, #200] ; (b69c <lv_draw_rect+0x1a9c>)
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b5d2: 4c33 ldr r4, [pc, #204] ; (b6a0 <lv_draw_rect+0x1aa0>)
lv_draw_label_dsc_init(&label_dsc);
b5d4: a81e add r0, sp, #120 ; 0x78
b5d6: 4798 blx r3
label_dsc.color = dsc->pattern_recolor;
b5d8: f8b9 3034 ldrh.w r3, [r9, #52] ; 0x34
b5dc: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
label_dsc.opa = dsc->pattern_opa;
b5e0: f899 3036 ldrb.w r3, [r9, #54] ; 0x36
b5e4: f88d 3080 strb.w r3, [sp, #128] ; 0x80
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b5e8: 2100 movs r1, #0
b5ea: f647 4318 movw r3, #31768 ; 0x7c18
label_dsc.font = dsc->pattern_font;
b5ee: f8d9 2030 ldr.w r2, [r9, #48] ; 0x30
b5f2: 921f str r2, [sp, #124] ; 0x7c
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b5f4: e9cd 3101 strd r3, r1, [sp, #4]
b5f8: f9bd 3082 ldrsh.w r3, [sp, #130] ; 0x82
b5fc: 9300 str r3, [sp, #0]
b5fe: f8d9 102c ldr.w r1, [r9, #44] ; 0x2c
b602: f9bd 3084 ldrsh.w r3, [sp, #132] ; 0x84
b606: a825 add r0, sp, #148 ; 0x94
b608: 47a0 blx r4
img_w = s.x;
b60a: f9bd 5094 ldrsh.w r5, [sp, #148] ; 0x94
img_h = s.y;
b60e: f9bd a096 ldrsh.w sl, [sp, #150] ; 0x96
b612: e792 b.n b53a <lv_draw_rect+0x193a>
LV_LOG_WARN("lv_img_design: image source type is unknown");
b614: 4b23 ldr r3, [pc, #140] ; (b6a4 <lv_draw_rect+0x1aa4>)
b616: 9300 str r3, [sp, #0]
b618: 4923 ldr r1, [pc, #140] ; (b6a8 <lv_draw_rect+0x1aa8>)
b61a: 4b24 ldr r3, [pc, #144] ; (b6ac <lv_draw_rect+0x1aac>)
b61c: 4c24 ldr r4, [pc, #144] ; (b6b0 <lv_draw_rect+0x1ab0>)
b61e: f240 52ae movw r2, #1454 ; 0x5ae
b622: 2002 movs r0, #2
b624: 47a0 blx r4
lv_draw_img(coords, clip, NULL, NULL);
b626: 2300 movs r3, #0
b628: 9804 ldr r0, [sp, #16]
b62a: 4c22 ldr r4, [pc, #136] ; (b6b4 <lv_draw_rect+0x1ab4>)
b62c: 461a mov r2, r3
b62e: 4641 mov r1, r8
b630: 47a0 blx r4
return;
b632: f7ff b923 b.w a87c <lv_draw_rect+0xc7c>
coords_tmp.x1 = coords->x1 - ofs_x;
b636: 9b04 ldr r3, [sp, #16]
b638: 9a05 ldr r2, [sp, #20]
b63a: 881b ldrh r3, [r3, #0]
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b63c: fa1f fa85 uxth.w sl, r5
coords_tmp.x1 = coords->x1 - ofs_x;
b640: 1a9b subs r3, r3, r2
b642: b29b uxth r3, r3
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b644: f10a 32ff add.w r2, sl, #4294967295 ; 0xffffffff
coords_tmp.x1 = coords->x1 - ofs_x;
b648: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b64c: 4413 add r3, r2
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
b64e: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
b652: 9b04 ldr r3, [sp, #16]
b654: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
b658: f9b3 3004 ldrsh.w r3, [r3, #4]
b65c: 429a cmp r2, r3
b65e: dd2d ble.n b6bc <lv_draw_rect+0x1abc>
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
b660: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b664: 443b add r3, r7
b666: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
b66a: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b66e: 443b add r3, r7
b670: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
b674: e79d b.n b5b2 <lv_draw_rect+0x19b2>
b676: bf00 nop
b678: 0000f0bd .word 0x0000f0bd
b67c: 00009769 .word 0x00009769
b680: 00009981 .word 0x00009981
b684: 000061d9 .word 0x000061d9
b688: 000067d5 .word 0x000067d5
b68c: 00007551 .word 0x00007551
b690: 00009925 .word 0x00009925
b694: 00009719 .word 0x00009719
b698: 000097ad .word 0x000097ad
b69c: 00007855 .word 0x00007855
b6a0: 000101fd .word 0x000101fd
b6a4: 0001fe07 .word 0x0001fe07
b6a8: 0001fdb3 .word 0x0001fdb3
b6ac: 0001fe36 .word 0x0001fe36
b6b0: 0000e931 .word 0x0000e931
b6b4: 000075c1 .word 0x000075c1
b6b8: 00007885 .word 0x00007885
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
b6bc: 2e02 cmp r6, #2
b6be: f8d9 202c ldr.w r2, [r9, #44] ; 0x2c
b6c2: d10f bne.n b6e4 <lv_draw_rect+0x1ae4>
b6c4: 2300 movs r3, #0
b6c6: 9300 str r3, [sp, #0]
b6c8: 4641 mov r1, r8
b6ca: 4613 mov r3, r2
b6cc: a818 add r0, sp, #96 ; 0x60
b6ce: aa1e add r2, sp, #120 ; 0x78
b6d0: 47d8 blx fp
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
b6d2: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
b6d6: 4453 add r3, sl
b6d8: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
b6dc: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64
b6e0: 4453 add r3, sl
b6e2: e7b4 b.n b64e <lv_draw_rect+0x1a4e>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
b6e4: 4cb2 ldr r4, [pc, #712] ; (b9b0 <lv_draw_rect+0x1db0>)
b6e6: ab1a add r3, sp, #104 ; 0x68
b6e8: 4641 mov r1, r8
b6ea: a818 add r0, sp, #96 ; 0x60
b6ec: 47a0 blx r4
b6ee: e7f0 b.n b6d2 <lv_draw_rect+0x1ad2>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b6f0: 9904 ldr r1, [sp, #16]
b6f2: 9b04 ldr r3, [sp, #16]
b6f4: 8889 ldrh r1, [r1, #4]
b6f6: 881c ldrh r4, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b6f8: 8858 ldrh r0, [r3, #2]
b6fa: 88db ldrh r3, [r3, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b6fc: 3101 adds r1, #1
b6fe: 1b09 subs r1, r1, r4
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b700: 3301 adds r3, #1
b702: 1a1b subs r3, r3, r0
int32_t obj_w = lv_area_get_width(coords);
b704: b209 sxth r1, r1
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b706: 1b49 subs r1, r1, r5
int32_t obj_h = lv_area_get_height(coords);
b708: b21b sxth r3, r3
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b70a: eb01 71d1 add.w r1, r1, r1, lsr #31
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b70e: eba3 030a sub.w r3, r3, sl
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b712: eb04 0161 add.w r1, r4, r1, asr #1
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b716: eb03 74d3 add.w r4, r3, r3, lsr #31
b71a: eb00 0064 add.w r0, r0, r4, asr #1
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b71e: b289 uxth r1, r1
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b720: b280 uxth r0, r0
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b722: 3d01 subs r5, #1
b724: 440d add r5, r1
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b726: f8ad 1060 strh.w r1, [sp, #96] ; 0x60
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b72a: eb00 010b add.w r1, r0, fp
b72e: b289 uxth r1, r1
if(src_type == LV_IMG_SRC_SYMBOL) {
b730: 2e02 cmp r6, #2
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b732: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b736: f8ad 5064 strh.w r5, [sp, #100] ; 0x64
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b73a: f8ad 1066 strh.w r1, [sp, #102] ; 0x66
if(src_type == LV_IMG_SRC_SYMBOL) {
b73e: d107 bne.n b750 <lv_draw_rect+0x1b50>
coords_tmp.y1 += y_corr;
b740: f003 0301 and.w r3, r3, #1
b744: 4418 add r0, r3
coords_tmp.y2 += y_corr;
b746: 440b add r3, r1
coords_tmp.y1 += y_corr;
b748: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
coords_tmp.y2 += y_corr;
b74c: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
b750: 9904 ldr r1, [sp, #16]
b752: 4b98 ldr r3, [pc, #608] ; (b9b4 <lv_draw_rect+0x1db4>)
b754: a818 add r0, sp, #96 ; 0x60
b756: 4798 blx r3
b758: 4604 mov r4, r0
b75a: b9c8 cbnz r0, b790 <lv_draw_rect+0x1b90>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b75c: 4603 mov r3, r0
b75e: f9b9 2000 ldrsh.w r2, [r9]
b762: 9904 ldr r1, [sp, #16]
b764: 4d94 ldr r5, [pc, #592] ; (b9b8 <lv_draw_rect+0x1db8>)
b766: a825 add r0, sp, #148 ; 0x94
b768: 47a8 blx r5
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b76a: 4621 mov r1, r4
b76c: 4b93 ldr r3, [pc, #588] ; (b9bc <lv_draw_rect+0x1dbc>)
b76e: a825 add r0, sp, #148 ; 0x94
b770: 4798 blx r3
b772: 4604 mov r4, r0
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
b774: 2e02 cmp r6, #2
b776: f8d9 202c ldr.w r2, [r9, #44] ; 0x2c
b77a: d10c bne.n b796 <lv_draw_rect+0x1b96>
b77c: 2300 movs r3, #0
b77e: 9300 str r3, [sp, #0]
b780: 4d8f ldr r5, [pc, #572] ; (b9c0 <lv_draw_rect+0x1dc0>)
b782: 4613 mov r3, r2
b784: 4641 mov r1, r8
b786: aa1e add r2, sp, #120 ; 0x78
b788: a818 add r0, sp, #96 ; 0x60
b78a: 47a8 blx r5
lv_draw_mask_remove_id(radius_mask_id);
b78c: 4620 mov r0, r4
b78e: e719 b.n b5c4 <lv_draw_rect+0x19c4>
int16_t radius_mask_id = LV_MASK_ID_INV;
b790: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
b794: e7ee b.n b774 <lv_draw_rect+0x1b74>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
b796: 4d86 ldr r5, [pc, #536] ; (b9b0 <lv_draw_rect+0x1db0>)
b798: ab1a add r3, sp, #104 ; 0x68
b79a: 4641 mov r1, r8
b79c: a818 add r0, sp, #96 ; 0x60
b79e: 47a8 blx r5
b7a0: e7f4 b.n b78c <lv_draw_rect+0x1b8c>
if(other_mask_cnt) simple_mode = false;
b7a2: 2300 movs r3, #0
b7a4: f7ff b8b9 b.w a91a <lv_draw_rect+0xd1a>
int16_t mask_rout_id = LV_MASK_ID_INV;
b7a8: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
b7ac: 930b str r3, [sp, #44] ; 0x2c
b7ae: f7ff b903 b.w a9b8 <lv_draw_rect+0xdb8>
_lv_memset_ff(mask_buf, draw_area_w);
b7b2: 4b84 ldr r3, [pc, #528] ; (b9c4 <lv_draw_rect+0x1dc4>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b7b4: 4f84 ldr r7, [pc, #528] ; (b9c8 <lv_draw_rect+0x1dc8>)
_lv_memset_ff(mask_buf, draw_area_w);
b7b6: 4651 mov r1, sl
b7b8: 4620 mov r0, r4
b7ba: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b7bc: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
b7c0: f8bb 2012 ldrh.w r2, [fp, #18]
b7c4: f8bb 1010 ldrh.w r1, [fp, #16]
b7c8: 4432 add r2, r6
b7ca: 4419 add r1, r3
b7cc: b212 sxth r2, r2
b7ce: 4653 mov r3, sl
b7d0: b209 sxth r1, r1
b7d2: 4620 mov r0, r4
b7d4: 47b8 blx r7
fill_area2.y1 = fill_area.y1;
b7d6: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b7da: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
b7de: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b7e2: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
fill_area2.x1 = coords->x1;
b7e6: 9b04 ldr r3, [sp, #16]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b7e8: 900a str r0, [sp, #40] ; 0x28
fill_area2.x1 = coords->x1;
b7ea: f9b3 3000 ldrsh.w r3, [r3]
b7ee: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x1 + rout - 1;
b7f2: 3b01 subs r3, #1
b7f4: 442b add r3, r5
b7f6: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
b7fa: 9b06 ldr r3, [sp, #24]
b7fc: 9302 str r3, [sp, #8]
b7fe: 9b05 ldr r3, [sp, #20]
b800: 9301 str r3, [sp, #4]
b802: ee18 2a10 vmov r2, s16
b806: 9000 str r0, [sp, #0]
b808: 4623 mov r3, r4
b80a: a91a add r1, sp, #104 ; 0x68
b80c: 4f6f ldr r7, [pc, #444] ; (b9cc <lv_draw_rect+0x1dcc>)
b80e: 4640 mov r0, r8
b810: 47b8 blx r7
if(fill_area2.y2 < coords->y1 + dsc->border_width) {
b812: 9b04 ldr r3, [sp, #16]
b814: f9b9 1010 ldrsh.w r1, [r9, #16]
b818: f9b3 3002 ldrsh.w r3, [r3, #2]
b81c: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
b820: 440b add r3, r1
b822: 429a cmp r2, r3
b824: da15 bge.n b852 <lv_draw_rect+0x1c52>
fill_area2.x1 = coords->x1 + rout;
b826: 9b04 ldr r3, [sp, #16]
b828: 881b ldrh r3, [r3, #0]
b82a: 442b add r3, r5
b82c: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x2 - rout;
b830: 9b04 ldr r3, [sp, #16]
b832: 889b ldrh r3, [r3, #4]
b834: 1b5b subs r3, r3, r5
b836: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b83a: 9b06 ldr r3, [sp, #24]
b83c: 9302 str r3, [sp, #8]
b83e: 9b05 ldr r3, [sp, #20]
b840: 9301 str r3, [sp, #4]
b842: 2301 movs r3, #1
b844: 9300 str r3, [sp, #0]
b846: ee18 2a10 vmov r2, s16
b84a: 2300 movs r3, #0
b84c: a91a add r1, sp, #104 ; 0x68
b84e: 4640 mov r0, r8
b850: 47b8 blx r7
fill_area2.x1 = coords->x2 - rout + 1;
b852: 9b04 ldr r3, [sp, #16]
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b854: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50
fill_area2.x1 = coords->x2 - rout + 1;
b858: f9b3 3004 ldrsh.w r3, [r3, #4]
fill_area2.x2 = coords->x2;
b85c: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = coords->x2 - rout + 1;
b860: 1c5a adds r2, r3, #1
b862: 1b52 subs r2, r2, r5
b864: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b868: 9a08 ldr r2, [sp, #32]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
b86a: 4f58 ldr r7, [pc, #352] ; (b9cc <lv_draw_rect+0x1dcc>)
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b86c: 1a9b subs r3, r3, r2
b86e: f9bb 2010 ldrsh.w r2, [fp, #16]
b872: 3301 adds r3, #1
b874: 440a add r2, r1
b876: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
b878: 9a06 ldr r2, [sp, #24]
b87a: 9202 str r2, [sp, #8]
b87c: 9a05 ldr r2, [sp, #20]
b87e: 9201 str r2, [sp, #4]
b880: 9a0a ldr r2, [sp, #40] ; 0x28
b882: 9200 str r2, [sp, #0]
b884: 2b00 cmp r3, #0
b886: bfac ite ge
b888: 18e3 addge r3, r4, r3
b88a: 1c23 addlt r3, r4, #0
b88c: ee18 2a10 vmov r2, s16
b890: a91a add r1, sp, #104 ; 0x68
b892: 4640 mov r0, r8
b894: 47b8 blx r7
fill_area.y1++;
b896: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b89a: 3301 adds r3, #1
b89c: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
b8a0: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b8a4: 3301 adds r3, #1
b8a6: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
b8aa: 3601 adds r6, #1
b8ac: f7ff b900 b.w aab0 <lv_draw_rect+0xeb0>
_lv_memset_ff(mask_buf, draw_area_w);
b8b0: 4b44 ldr r3, [pc, #272] ; (b9c4 <lv_draw_rect+0x1dc4>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b8b2: 4f45 ldr r7, [pc, #276] ; (b9c8 <lv_draw_rect+0x1dc8>)
_lv_memset_ff(mask_buf, draw_area_w);
b8b4: 4651 mov r1, sl
b8b6: 4620 mov r0, r4
b8b8: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b8ba: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
b8be: f8bb 2012 ldrh.w r2, [fp, #18]
b8c2: f8bb 1010 ldrh.w r1, [fp, #16]
b8c6: 4432 add r2, r6
b8c8: 4419 add r1, r3
b8ca: b212 sxth r2, r2
b8cc: 4653 mov r3, sl
b8ce: b209 sxth r1, r1
b8d0: 4620 mov r0, r4
b8d2: 47b8 blx r7
fill_area2.x1 = coords->x1;
b8d4: 9b04 ldr r3, [sp, #16]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b8d6: 9009 str r0, [sp, #36] ; 0x24
fill_area2.x1 = coords->x1;
b8d8: f9b3 3000 ldrsh.w r3, [r3]
b8dc: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x1 + rout - 1;
b8e0: 3b01 subs r3, #1
b8e2: 442b add r3, r5
b8e4: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.y1 = fill_area.y1;
b8e8: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b8ec: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
b8f0: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b8f4: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
b8f8: 9b06 ldr r3, [sp, #24]
b8fa: 9302 str r3, [sp, #8]
b8fc: 9b05 ldr r3, [sp, #20]
b8fe: 9301 str r3, [sp, #4]
b900: ee18 2a10 vmov r2, s16
b904: 9000 str r0, [sp, #0]
b906: 4623 mov r3, r4
b908: a91a add r1, sp, #104 ; 0x68
b90a: 4f30 ldr r7, [pc, #192] ; (b9cc <lv_draw_rect+0x1dcc>)
b90c: 4640 mov r0, r8
b90e: 47b8 blx r7
if(fill_area2.y2 > coords->y2 - dsc->border_width) {
b910: 9b04 ldr r3, [sp, #16]
b912: f9b9 1010 ldrsh.w r1, [r9, #16]
b916: f9b3 3006 ldrsh.w r3, [r3, #6]
b91a: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
b91e: 1a5b subs r3, r3, r1
b920: 429a cmp r2, r3
b922: dd15 ble.n b950 <lv_draw_rect+0x1d50>
fill_area2.x1 = coords->x1 + rout;
b924: 9b04 ldr r3, [sp, #16]
b926: 881b ldrh r3, [r3, #0]
b928: 442b add r3, r5
b92a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x2 - rout;
b92e: 9b04 ldr r3, [sp, #16]
b930: 889b ldrh r3, [r3, #4]
b932: 1b5b subs r3, r3, r5
b934: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b938: 9b06 ldr r3, [sp, #24]
b93a: 9302 str r3, [sp, #8]
b93c: 9b05 ldr r3, [sp, #20]
b93e: 9301 str r3, [sp, #4]
b940: 2301 movs r3, #1
b942: 9300 str r3, [sp, #0]
b944: ee18 2a10 vmov r2, s16
b948: 2300 movs r3, #0
b94a: a91a add r1, sp, #104 ; 0x68
b94c: 4640 mov r0, r8
b94e: 47b8 blx r7
fill_area2.x1 = coords->x2 - rout + 1;
b950: 9b04 ldr r3, [sp, #16]
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b952: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50
fill_area2.x1 = coords->x2 - rout + 1;
b956: f9b3 3004 ldrsh.w r3, [r3, #4]
fill_area2.x2 = coords->x2;
b95a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = coords->x2 - rout + 1;
b95e: 1c5a adds r2, r3, #1
b960: 1b52 subs r2, r2, r5
b962: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b966: 9a08 ldr r2, [sp, #32]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
b968: 4f18 ldr r7, [pc, #96] ; (b9cc <lv_draw_rect+0x1dcc>)
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b96a: 1a9b subs r3, r3, r2
b96c: f9bb 2010 ldrsh.w r2, [fp, #16]
b970: 3301 adds r3, #1
b972: 440a add r2, r1
b974: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
b976: 9a06 ldr r2, [sp, #24]
b978: 9202 str r2, [sp, #8]
b97a: 9a05 ldr r2, [sp, #20]
b97c: 9201 str r2, [sp, #4]
b97e: 9a09 ldr r2, [sp, #36] ; 0x24
b980: 9200 str r2, [sp, #0]
b982: 2b00 cmp r3, #0
b984: bfac ite ge
b986: 18e3 addge r3, r4, r3
b988: 1c23 addlt r3, r4, #0
b98a: ee18 2a10 vmov r2, s16
b98e: a91a add r1, sp, #104 ; 0x68
b990: 4640 mov r0, r8
b992: 47b8 blx r7
fill_area.y1++;
b994: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b998: 3301 adds r3, #1
b99a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
b99e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b9a2: 3301 adds r3, #1
b9a4: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
b9a8: 3601 adds r6, #1
b9aa: f7ff b89d b.w aae8 <lv_draw_rect+0xee8>
b9ae: bf00 nop
b9b0: 000075c1 .word 0x000075c1
b9b4: 0000e0d9 .word 0x0000e0d9
b9b8: 00009925 .word 0x00009925
b9bc: 00009719 .word 0x00009719
b9c0: 00007885 .word 0x00007885
b9c4: 0000f0bd .word 0x0000f0bd
b9c8: 00009769 .word 0x00009769
b9cc: 000061d9 .word 0x000061d9
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
b9d0: f9b9 3012 ldrsh.w r3, [r9, #18]
fill_area.x1 = coords->x1;
b9d4: f8ad 1060 strh.w r1, [sp, #96] ; 0x60
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
b9d8: 2b04 cmp r3, #4
fill_area.x2 = coords->x2;
b9da: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
b9de: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
b9e2: f8ad 0066 strh.w r0, [sp, #102] ; 0x66
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
b9e6: d161 bne.n baac <lv_draw_rect+0x1eac>
b9e8: 9a07 ldr r2, [sp, #28]
b9ea: 188a adds r2, r1, r2
b9ec: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
volatile bool top_only = false;
b9f0: 2200 movs r2, #0
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
b9f2: 2b02 cmp r3, #2
volatile bool top_only = false;
b9f4: f88d 203e strb.w r2, [sp, #62] ; 0x3e
volatile bool bottom_only = false;
b9f8: f88d 203f strb.w r2, [sp, #63] ; 0x3f
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
b9fc: d15d bne.n baba <lv_draw_rect+0x1eba>
b9fe: 2301 movs r3, #1
ba00: f88d 303e strb.w r3, [sp, #62] ; 0x3e
volatile bool normal = !top_only && !bottom_only ? true : false;
ba04: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e
ba08: 2b00 cmp r3, #0
ba0a: d160 bne.n bace <lv_draw_rect+0x1ece>
ba0c: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f
ba10: f083 0301 eor.w r3, r3, #1
ba14: f003 0301 and.w r3, r3, #1
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
ba18: 4dae ldr r5, [pc, #696] ; (bcd4 <lv_draw_rect+0x20d4>)
volatile bool normal = !top_only && !bottom_only ? true : false;
ba1a: f88d 3040 strb.w r3, [sp, #64] ; 0x40
for(h = draw_area.y1; h <= draw_area.y2; h++) {
ba1e: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
ba22: 429e cmp r6, r3
ba24: f73f a8a1 bgt.w ab6a <lv_draw_rect+0xf6a>
if(normal ||
ba28: f89d 3040 ldrb.w r3, [sp, #64] ; 0x40
ba2c: b9ab cbnz r3, ba5a <lv_draw_rect+0x1e5a>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
ba2e: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e
ba32: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
if(normal ||
ba36: b133 cbz r3, ba46 <lv_draw_rect+0x1e46>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
ba38: 9b04 ldr r3, [sp, #16]
ba3a: 9907 ldr r1, [sp, #28]
ba3c: f9b3 3002 ldrsh.w r3, [r3, #2]
ba40: 440b add r3, r1
ba42: 429a cmp r2, r3
ba44: dd09 ble.n ba5a <lv_draw_rect+0x1e5a>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
ba46: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
ba4a: b31b cbz r3, ba94 <lv_draw_rect+0x1e94>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
ba4c: 9b04 ldr r3, [sp, #16]
ba4e: 9907 ldr r1, [sp, #28]
ba50: f9b3 3006 ldrsh.w r3, [r3, #6]
ba54: 1a5b subs r3, r3, r1
ba56: 429a cmp r2, r3
ba58: db1c blt.n ba94 <lv_draw_rect+0x1e94>
_lv_memset_ff(mask_buf, draw_area_w);
ba5a: 4b9f ldr r3, [pc, #636] ; (bcd8 <lv_draw_rect+0x20d8>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
ba5c: 4f9f ldr r7, [pc, #636] ; (bcdc <lv_draw_rect+0x20dc>)
_lv_memset_ff(mask_buf, draw_area_w);
ba5e: 4651 mov r1, sl
ba60: 4620 mov r0, r4
ba62: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
ba64: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
ba68: f8bb 2012 ldrh.w r2, [fp, #18]
ba6c: f8bb 1010 ldrh.w r1, [fp, #16]
ba70: 4432 add r2, r6
ba72: 4419 add r1, r3
ba74: b212 sxth r2, r2
ba76: 4653 mov r3, sl
ba78: b209 sxth r1, r1
ba7a: 4620 mov r0, r4
ba7c: 47b8 blx r7
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
ba7e: 9b06 ldr r3, [sp, #24]
ba80: 9302 str r3, [sp, #8]
ba82: 9b05 ldr r3, [sp, #20]
ba84: ee18 2a10 vmov r2, s16
ba88: e9cd 0300 strd r0, r3, [sp]
ba8c: a918 add r1, sp, #96 ; 0x60
ba8e: 4623 mov r3, r4
ba90: 4640 mov r0, r8
ba92: 47a8 blx r5
fill_area.y1++;
ba94: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
ba98: 3301 adds r3, #1
ba9a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
ba9e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
baa2: 3301 adds r3, #1
baa4: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= draw_area.y2; h++) {
baa8: 3601 adds r6, #1
baaa: e7b8 b.n ba1e <lv_draw_rect+0x1e1e>
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
baac: 2b08 cmp r3, #8
baae: bf02 ittt eq
bab0: 9907 ldreq r1, [sp, #28]
bab2: 1a52 subeq r2, r2, r1
bab4: f8ad 2060 strheq.w r2, [sp, #96] ; 0x60
bab8: e79a b.n b9f0 <lv_draw_rect+0x1df0>
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
baba: 2b01 cmp r3, #1
babc: d004 beq.n bac8 <lv_draw_rect+0x1ec8>
if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) {
babe: 2b03 cmp r3, #3
bac0: d1a0 bne.n ba04 <lv_draw_rect+0x1e04>
top_only = true;
bac2: 2301 movs r3, #1
bac4: f88d 303e strb.w r3, [sp, #62] ; 0x3e
bottom_only = true;
bac8: f88d 303f strb.w r3, [sp, #63] ; 0x3f
bacc: e79a b.n ba04 <lv_draw_rect+0x1e04>
volatile bool normal = !top_only && !bottom_only ? true : false;
bace: 2300 movs r3, #0
bad0: e7a0 b.n ba14 <lv_draw_rect+0x1e14>
_lv_memset_ff(mask_buf, draw_area_w);
bad2: ee18 1a10 vmov r1, s16
bad6: 4b80 ldr r3, [pc, #512] ; (bcd8 <lv_draw_rect+0x20d8>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bad8: 4d80 ldr r5, [pc, #512] ; (bcdc <lv_draw_rect+0x20dc>)
_lv_memset_ff(mask_buf, draw_area_w);
bada: 4620 mov r0, r4
badc: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bade: 9b04 ldr r3, [sp, #16]
bae0: 8a5a ldrh r2, [r3, #18]
bae2: 8a19 ldrh r1, [r3, #16]
bae4: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
bae8: 4432 add r2, r6
baea: 4419 add r1, r3
baec: b212 sxth r2, r2
baee: ee18 3a10 vmov r3, s16
baf2: b209 sxth r1, r1
baf4: 4620 mov r0, r4
baf6: 47a8 blx r5
fill_area2.y1 = fill_area.y1;
baf8: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bafc: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
bb00: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bb04: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
fill_area2.x1 = area_outer.x1;
bb08: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
bb0c: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x1 + rout - 1;
bb10: 3b01 subs r3, #1
bb12: fa13 f38b uxtah r3, r3, fp
bb16: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bb1a: 9b06 ldr r3, [sp, #24]
bb1c: 9302 str r3, [sp, #8]
fill_area2.x2 = area_outer.x1 + rout - 1;
bb1e: fa1f f28b uxth.w r2, fp
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bb22: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bb24: 9009 str r0, [sp, #36] ; 0x24
fill_area2.x2 = area_outer.x1 + rout - 1;
bb26: 9208 str r2, [sp, #32]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bb28: 9301 str r3, [sp, #4]
bb2a: 9000 str r0, [sp, #0]
bb2c: 4623 mov r3, r4
bb2e: 463a mov r2, r7
bb30: a91a add r1, sp, #104 ; 0x68
bb32: 4d68 ldr r5, [pc, #416] ; (bcd4 <lv_draw_rect+0x20d4>)
bb34: 4640 mov r0, r8
bb36: 47a8 blx r5
if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) {
bb38: f9bd 3052 ldrsh.w r3, [sp, #82] ; 0x52
bb3c: f9b9 1018 ldrsh.w r1, [r9, #24]
bb40: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
bb44: 440b add r3, r1
bb46: 429a cmp r2, r3
bb48: da15 bge.n bb76 <lv_draw_rect+0x1f76>
fill_area2.x1 = area_outer.x1 + rout;
bb4a: 9a08 ldr r2, [sp, #32]
bb4c: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
bb50: 4413 add r3, r2
bb52: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x2 - rout;
bb56: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
bb5a: 1a9b subs r3, r3, r2
bb5c: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
bb60: 9b06 ldr r3, [sp, #24]
bb62: 9302 str r3, [sp, #8]
bb64: 9b05 ldr r3, [sp, #20]
bb66: 9301 str r3, [sp, #4]
bb68: 2301 movs r3, #1
bb6a: 9300 str r3, [sp, #0]
bb6c: 463a mov r2, r7
bb6e: 2300 movs r3, #0
bb70: a91a add r1, sp, #104 ; 0x68
bb72: 4640 mov r0, r8
bb74: 47a8 blx r5
fill_area2.x1 = area_outer.x2 - rout + 1;
bb76: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54
bb7a: 9908 ldr r1, [sp, #32]
fill_area2.x2 = area_outer.x2;
bb7c: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = area_outer.x2 - rout + 1;
bb80: 1c5a adds r2, r3, #1
bb82: 1a52 subs r2, r2, r1
bb84: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bb88: 9a04 ldr r2, [sp, #16]
bb8a: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
bb8e: f9b2 2010 ldrsh.w r2, [r2, #16]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bb92: 4d50 ldr r5, [pc, #320] ; (bcd4 <lv_draw_rect+0x20d4>)
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bb94: eba3 030b sub.w r3, r3, fp
bb98: 440a add r2, r1
bb9a: 3301 adds r3, #1
bb9c: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bb9e: 9a06 ldr r2, [sp, #24]
bba0: 9202 str r2, [sp, #8]
bba2: 9a05 ldr r2, [sp, #20]
bba4: 9201 str r2, [sp, #4]
bba6: 9a09 ldr r2, [sp, #36] ; 0x24
bba8: 9200 str r2, [sp, #0]
bbaa: 2b00 cmp r3, #0
bbac: bfac ite ge
bbae: 18e3 addge r3, r4, r3
bbb0: 1c23 addlt r3, r4, #0
bbb2: 463a mov r2, r7
bbb4: a91a add r1, sp, #104 ; 0x68
bbb6: 4640 mov r0, r8
bbb8: 47a8 blx r5
fill_area.y1++;
bbba: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bbbe: 3301 adds r3, #1
bbc0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bbc4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bbc8: 3301 adds r3, #1
bbca: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
bbce: 3601 adds r6, #1
bbd0: f7ff b94c b.w ae6c <lv_draw_rect+0x126c>
_lv_memset_ff(mask_buf, draw_area_w);
bbd4: ee18 1a10 vmov r1, s16
bbd8: 4b3f ldr r3, [pc, #252] ; (bcd8 <lv_draw_rect+0x20d8>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bbda: 4d40 ldr r5, [pc, #256] ; (bcdc <lv_draw_rect+0x20dc>)
_lv_memset_ff(mask_buf, draw_area_w);
bbdc: 4620 mov r0, r4
bbde: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bbe0: 9b04 ldr r3, [sp, #16]
bbe2: 8a5a ldrh r2, [r3, #18]
bbe4: 8a19 ldrh r1, [r3, #16]
bbe6: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
bbea: 4432 add r2, r6
bbec: 4419 add r1, r3
bbee: b212 sxth r2, r2
bbf0: ee18 3a10 vmov r3, s16
bbf4: b209 sxth r1, r1
bbf6: 4620 mov r0, r4
bbf8: 47a8 blx r5
fill_area2.x1 = area_outer.x1;
bbfa: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
bbfe: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x1 + rout - 1;
bc02: 3b01 subs r3, #1
bc04: fa13 f38b uxtah r3, r3, fp
bc08: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.y1 = fill_area.y1;
bc0c: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bc10: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
bc14: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bc18: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bc1c: 9b06 ldr r3, [sp, #24]
bc1e: 9302 str r3, [sp, #8]
bc20: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bc22: 9008 str r0, [sp, #32]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bc24: 9301 str r3, [sp, #4]
bc26: 9000 str r0, [sp, #0]
bc28: 4623 mov r3, r4
bc2a: 463a mov r2, r7
bc2c: a91a add r1, sp, #104 ; 0x68
bc2e: 4d29 ldr r5, [pc, #164] ; (bcd4 <lv_draw_rect+0x20d4>)
bc30: 4640 mov r0, r8
bc32: 47a8 blx r5
if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) {
bc34: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
bc38: f9b9 1018 ldrsh.w r1, [r9, #24]
bc3c: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
bc40: 1a5b subs r3, r3, r1
bc42: 429a cmp r2, r3
fill_area2.x2 = area_outer.x1 + rout - 1;
bc44: fa1f fa8b uxth.w sl, fp
if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) {
bc48: dd15 ble.n bc76 <lv_draw_rect+0x2076>
fill_area2.x1 = area_outer.x1 + rout;
bc4a: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
bc4e: 4453 add r3, sl
bc50: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x2 - rout;
bc54: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
bc58: eba3 030a sub.w r3, r3, sl
bc5c: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
bc60: 9b06 ldr r3, [sp, #24]
bc62: 9302 str r3, [sp, #8]
bc64: 9b05 ldr r3, [sp, #20]
bc66: 9301 str r3, [sp, #4]
bc68: 2301 movs r3, #1
bc6a: 9300 str r3, [sp, #0]
bc6c: 463a mov r2, r7
bc6e: 2300 movs r3, #0
bc70: a91a add r1, sp, #104 ; 0x68
bc72: 4640 mov r0, r8
bc74: 47a8 blx r5
fill_area2.x1 = area_outer.x2 - rout + 1;
bc76: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bc7a: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
fill_area2.x2 = area_outer.x2;
bc7e: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = area_outer.x2 - rout + 1;
bc82: 1c5a adds r2, r3, #1
bc84: eba2 020a sub.w r2, r2, sl
bc88: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bc8c: 9a04 ldr r2, [sp, #16]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bc8e: 4d11 ldr r5, [pc, #68] ; (bcd4 <lv_draw_rect+0x20d4>)
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bc90: f9b2 2010 ldrsh.w r2, [r2, #16]
bc94: eba3 030b sub.w r3, r3, fp
bc98: 440a add r2, r1
bc9a: 3301 adds r3, #1
bc9c: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bc9e: 9a06 ldr r2, [sp, #24]
bca0: 9202 str r2, [sp, #8]
bca2: 9a05 ldr r2, [sp, #20]
bca4: 9201 str r2, [sp, #4]
bca6: 9a08 ldr r2, [sp, #32]
bca8: 9200 str r2, [sp, #0]
bcaa: 2b00 cmp r3, #0
bcac: bfac ite ge
bcae: 18e3 addge r3, r4, r3
bcb0: 1c23 addlt r3, r4, #0
bcb2: 463a mov r2, r7
bcb4: a91a add r1, sp, #104 ; 0x68
bcb6: 4640 mov r0, r8
bcb8: 47a8 blx r5
fill_area.y1++;
bcba: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bcbe: 3301 adds r3, #1
bcc0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bcc4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bcc8: 3301 adds r3, #1
bcca: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
bcce: 3601 adds r6, #1
bcd0: f7ff b8e1 b.w ae96 <lv_draw_rect+0x1296>
bcd4: 000061d9 .word 0x000061d9
bcd8: 0000f0bd .word 0x0000f0bd
bcdc: 00009769 .word 0x00009769
_lv_memset_ff(mask_buf, draw_area_w);
bce0: f8df 9070 ldr.w r9, [pc, #112] ; bd54 <lv_draw_rect+0x2154>
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bce4: f8df b070 ldr.w fp, [pc, #112] ; bd58 <lv_draw_rect+0x2158>
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bce8: f8df a070 ldr.w sl, [pc, #112] ; bd5c <lv_draw_rect+0x215c>
fill_area.x1 = area_outer.x1;
bcec: f8ad 0060 strh.w r0, [sp, #96] ; 0x60
fill_area.x2 = area_outer.x2;
bcf0: f8ad 1064 strh.w r1, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
bcf4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
bcf8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bcfc: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
bd00: 429e cmp r6, r3
bd02: f73f a905 bgt.w af10 <lv_draw_rect+0x1310>
_lv_memset_ff(mask_buf, draw_area_w);
bd06: ee18 1a10 vmov r1, s16
bd0a: 4620 mov r0, r4
bd0c: 47c8 blx r9
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bd0e: 9b04 ldr r3, [sp, #16]
bd10: 8a5a ldrh r2, [r3, #18]
bd12: 8a19 ldrh r1, [r3, #16]
bd14: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
bd18: 4432 add r2, r6
bd1a: 4419 add r1, r3
bd1c: b212 sxth r2, r2
bd1e: ee18 3a10 vmov r3, s16
bd22: b209 sxth r1, r1
bd24: 4620 mov r0, r4
bd26: 47d8 blx fp
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bd28: 9b06 ldr r3, [sp, #24]
bd2a: 9302 str r3, [sp, #8]
bd2c: 9b05 ldr r3, [sp, #20]
bd2e: 463a mov r2, r7
bd30: e9cd 0300 strd r0, r3, [sp]
bd34: a918 add r1, sp, #96 ; 0x60
bd36: 4623 mov r3, r4
bd38: 4640 mov r0, r8
bd3a: 47d0 blx sl
fill_area.y1++;
bd3c: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bd40: 3301 adds r3, #1
bd42: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bd46: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bd4a: 3301 adds r3, #1
bd4c: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bd50: 3601 adds r6, #1
bd52: e7d3 b.n bcfc <lv_draw_rect+0x20fc>
bd54: 0000f0bd .word 0x0000f0bd
bd58: 00009769 .word 0x00009769
bd5c: 000061d9 .word 0x000061d9
0000bd60 <lv_color_mix>:
{
bd60: b5f0 push {r4, r5, r6, r7, lr}
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bd62: f1c2 03ff rsb r3, r2, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
bd66: f3c1 1445 ubfx r4, r1, #5, #6
bd6a: f3c0 1545 ubfx r5, r0, #5, #6
bd6e: 435c muls r4, r3
bd70: f248 0681 movw r6, #32897 ; 0x8081
bd74: fb05 4402 mla r4, r5, r2, r4
bd78: 4374 muls r4, r6
return ret;
bd7a: f3c4 55c5 ubfx r5, r4, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bd7e: f001 041f and.w r4, r1, #31
bd82: f000 071f and.w r7, r0, #31
bd86: 435c muls r4, r3
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bd88: f3c1 21c4 ubfx r1, r1, #11, #5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bd8c: fb07 4402 mla r4, r7, r2, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bd90: f3c0 20c4 ubfx r0, r0, #11, #5
bd94: 4359 muls r1, r3
bd96: fb00 1302 mla r3, r0, r2, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bd9a: 4374 muls r4, r6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bd9c: 4373 muls r3, r6
return ret;
bd9e: f3c4 54c4 ubfx r4, r4, #23, #5
bda2: ea44 1445 orr.w r4, r4, r5, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bda6: 0ddb lsrs r3, r3, #23
}
bda8: ea44 20c3 orr.w r0, r4, r3, lsl #11
bdac: bdf0 pop {r4, r5, r6, r7, pc}
0000bdae <_lv_memcpy_small.isra.0>:
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
bdae: 3901 subs r1, #1
bdb0: 4402 add r2, r0
while(len) {
bdb2: 4290 cmp r0, r2
bdb4: d100 bne.n bdb8 <_lv_memcpy_small.isra.0+0xa>
s8++;
len--;
}
return dst;
}
bdb6: 4770 bx lr
*d8 = *s8;
bdb8: f811 3f01 ldrb.w r3, [r1, #1]!
bdbc: f800 3b01 strb.w r3, [r0], #1
len--;
bdc0: e7f7 b.n bdb2 <_lv_memcpy_small.isra.0+0x4>
...
0000bdc4 <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)
{
bdc4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
lv_color_t p_color = LV_COLOR_BLACK;
uint8_t * buf_u8 = (uint8_t *)dsc->data;
bdc6: 6886 ldr r6, [r0, #8]
{
bdc8: 4607 mov r7, r0
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
bdca: 7800 ldrb r0, [r0, #0]
{
bdcc: 4615 mov r5, r2
lv_color_t p_color = LV_COLOR_BLACK;
bdce: 2200 movs r2, #0
bdd0: f8ad 2004 strh.w r2, [sp, #4]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
bdd4: f000 021f and.w r2, r0, #31
{
bdd8: 460c mov r4, r1
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
bdda: 1f11 subs r1, r2, #4
bddc: 2902 cmp r1, #2
bdde: d816 bhi.n be0e <lv_img_buf_get_px_color+0x4a>
dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
bde0: 4b34 ldr r3, [pc, #208] ; (beb4 <lv_img_buf_get_px_color+0xf0>)
bde2: 4610 mov r0, r2
bde4: 4798 blx r3
uint32_t px = dsc->header.w * y * px_size + x * px_size;
bde6: 683b ldr r3, [r7, #0]
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
bde8: f3c0 00c7 ubfx r0, r0, #3, #8
uint32_t px = dsc->header.w * y * px_size + x * px_size;
bdec: f3c3 238a ubfx r3, r3, #10, #11
bdf0: fb13 f305 smulbb r3, r3, r5
bdf4: fb10 f104 smulbb r1, r0, r4
bdf8: fb00 1103 mla r1, r0, r3, r1
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
bdfc: 2202 movs r2, #2
bdfe: 4b2e ldr r3, [pc, #184] ; (beb8 <lv_img_buf_get_px_color+0xf4>)
be00: 4431 add r1, r6
be02: a801 add r0, sp, #4
be04: 4798 blx r3
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
p_color = color;
}
return p_color;
}
be06: f8bd 0004 ldrh.w r0, [sp, #4]
be0a: b003 add sp, #12
be0c: bdf0 pop {r4, r5, r6, r7, pc}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT) {
be0e: 2a07 cmp r2, #7
be10: d114 bne.n be3c <lv_img_buf_get_px_color+0x78>
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
be12: f004 0307 and.w r3, r4, #7
be16: f1c3 0207 rsb r2, r3, #7
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
be1a: 683b ldr r3, [r7, #0]
be1c: f3c3 238a ubfx r3, r3, #10, #11
be20: 3307 adds r3, #7
be22: 10db asrs r3, r3, #3
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
be24: fb05 6303 mla r3, r5, r3, r6
be28: eb03 04e4 add.w r4, r3, r4, asr #3
be2c: 2101 movs r1, #1
be2e: 7a23 ldrb r3, [r4, #8]
be30: 4091 lsls r1, r2
be32: 400b ands r3, r1
be34: 4113 asrs r3, r2
p_color = color;
be36: f8ad 3004 strh.w r3, [sp, #4]
be3a: e7e4 b.n be06 <lv_img_buf_get_px_color+0x42>
else if(dsc->header.cf == LV_IMG_CF_INDEXED_2BIT) {
be3c: 2a08 cmp r2, #8
be3e: d116 bne.n be6e <lv_img_buf_get_px_color+0xaa>
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
be40: 6838 ldr r0, [r7, #0]
be42: f3c0 208a ubfx r0, r0, #10, #11
be46: 3003 adds r0, #3
be48: 1080 asrs r0, r0, #2
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
be4a: fb05 6300 mla r3, r5, r0, r6
uint8_t bit = (x & 0x3) * 2;
be4e: f004 0203 and.w r2, r4, #3
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
be52: eb03 04a4 add.w r4, r3, r4, asr #2
be56: 0052 lsls r2, r2, #1
be58: 7c23 ldrb r3, [r4, #16]
be5a: f1c2 0206 rsb r2, r2, #6
be5e: 2103 movs r1, #3
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
be60: 4091 lsls r1, r2
be62: 400b ands r3, r1
be64: fa43 f202 asr.w r2, r3, r2
be68: f8ad 2004 strh.w r2, [sp, #4]
be6c: e7cb b.n be06 <lv_img_buf_get_px_color+0x42>
else if(dsc->header.cf == LV_IMG_CF_INDEXED_4BIT) {
be6e: 2a09 cmp r2, #9
be70: d111 bne.n be96 <lv_img_buf_get_px_color+0xd2>
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
be72: 683b ldr r3, [r7, #0]
be74: f3c3 238a ubfx r3, r3, #10, #11
be78: 3301 adds r3, #1
be7a: 105b asrs r3, r3, #1
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
be7c: fb05 6303 mla r3, r5, r3, r6
uint8_t bit = (x & 0x1) * 4;
be80: f004 0201 and.w r2, r4, #1
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
be84: eb03 0464 add.w r4, r3, r4, asr #1
be88: 0092 lsls r2, r2, #2
be8a: f894 3040 ldrb.w r3, [r4, #64] ; 0x40
be8e: f1c2 0204 rsb r2, r2, #4
be92: 210f movs r1, #15
be94: e7e4 b.n be60 <lv_img_buf_get_px_color+0x9c>
else if(dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) {
be96: 2a0a cmp r2, #10
be98: d108 bne.n beac <lv_img_buf_get_px_color+0xe8>
uint32_t px = dsc->header.w * y + x;
be9a: 683b ldr r3, [r7, #0]
be9c: f3c3 238a ubfx r3, r3, #10, #11
bea0: fb15 4303 smlabb r3, r5, r3, r4
p_color.full = buf_u8[px];
bea4: 4433 add r3, r6
bea6: f893 3400 ldrb.w r3, [r3, #1024] ; 0x400
beaa: e7c4 b.n be36 <lv_img_buf_get_px_color+0x72>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
beac: 3a0b subs r2, #11
beae: 2a03 cmp r2, #3
beb0: d8a9 bhi.n be06 <lv_img_buf_get_px_color+0x42>
beb2: e7c0 b.n be36 <lv_img_buf_get_px_color+0x72>
beb4: 00007579 .word 0x00007579
beb8: 0000bdaf .word 0x0000bdaf
0000bebc <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)
{
bebc: b5f0 push {r4, r5, r6, r7, lr}
bebe: 460b mov r3, r1
uint8_t * buf_u8 = (uint8_t *)dsc->data;
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
bec0: 7801 ldrb r1, [r0, #0]
uint8_t * buf_u8 = (uint8_t *)dsc->data;
bec2: 6885 ldr r5, [r0, #8]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
bec4: f001 011f and.w r1, r1, #31
bec8: 2905 cmp r1, #5
{
beca: b085 sub sp, #20
becc: 4604 mov r4, r0
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
bece: d10a bne.n bee6 <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;
bed0: 6801 ldr r1, [r0, #0]
bed2: f3c1 218a ubfx r1, r1, #10, #11
bed6: fb12 3301 smlabb r3, r2, r1, r3
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
beda: eb03 0343 add.w r3, r3, r3, lsl #1
bede: 442b add r3, r5
bee0: 7898 ldrb r0, [r3, #2]
uint32_t px = dsc->header.w * y + x;
return buf_u8[px];
}
return LV_OPA_COVER;
}
bee2: b005 add sp, #20
bee4: bdf0 pop {r4, r5, r6, r7, pc}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) {
bee6: 290b cmp r1, #11
bee8: d116 bne.n bf18 <lv_img_buf_get_px_alpha+0x5c>
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
beea: 6800 ldr r0, [r0, #0]
beec: f3c0 208a ubfx r0, r0, #10, #11
bef0: 3007 adds r0, #7
bef2: 10c0 asrs r0, r0, #3
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
bef4: fb02 5200 mla r2, r2, r0, r5
bef8: f003 0607 and.w r6, r3, #7
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
befc: 10db asrs r3, r3, #3
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
befe: f1c6 0607 rsb r6, r6, #7
bf02: 5cd3 ldrb r3, [r2, r3]
bf04: 2201 movs r2, #1
bf06: 40b2 lsls r2, r6
bf08: 4013 ands r3, r2
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
bf0a: 4133 asrs r3, r6
bf0c: bf0c ite eq
bf0e: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff
bf12: 2000 movne r0, #0
bf14: b2c0 uxtb r0, r0
bf16: e7e4 b.n bee2 <lv_img_buf_get_px_alpha+0x26>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_2BIT) {
bf18: 290c cmp r1, #12
bf1a: d118 bne.n bf4e <lv_img_buf_get_px_alpha+0x92>
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
bf1c: 6800 ldr r0, [r0, #0]
const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
bf1e: 4920 ldr r1, [pc, #128] ; (bfa0 <lv_img_buf_get_px_alpha+0xe4>)
bf20: 9100 str r1, [sp, #0]
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
bf22: f3c0 208a ubfx r0, r0, #10, #11
bf26: 3003 adds r0, #3
bf28: 1080 asrs r0, r0, #2
uint8_t bit = (x & 0x3) * 2;
bf2a: f003 0603 and.w r6, r3, #3
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
bf2e: fb02 5200 mla r2, r2, r0, r5
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
bf32: 109b asrs r3, r3, #2
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
bf34: 0076 lsls r6, r6, #1
bf36: 5cd3 ldrb r3, [r2, r3]
bf38: f1c6 0606 rsb r6, r6, #6
bf3c: 2203 movs r2, #3
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
bf3e: 40b2 lsls r2, r6
bf40: 4013 ands r3, r2
bf42: 4133 asrs r3, r6
return opa_table[px_opa];
bf44: 3310 adds r3, #16
bf46: 446b add r3, sp
bf48: f813 0c10 ldrb.w r0, [r3, #-16]
bf4c: e7c9 b.n bee2 <lv_img_buf_get_px_alpha+0x26>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_4BIT) {
bf4e: 290d cmp r1, #13
bf50: d11b bne.n bf8a <lv_img_buf_get_px_alpha+0xce>
const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
bf52: 4e14 ldr r6, [pc, #80] ; (bfa4 <lv_img_buf_get_px_alpha+0xe8>)
bf54: 46ec mov ip, sp
bf56: f106 0e10 add.w lr, r6, #16
bf5a: 6830 ldr r0, [r6, #0]
bf5c: 6871 ldr r1, [r6, #4]
bf5e: 4667 mov r7, ip
bf60: c703 stmia r7!, {r0, r1}
bf62: 3608 adds r6, #8
bf64: 4576 cmp r6, lr
bf66: 46bc mov ip, r7
bf68: d1f7 bne.n bf5a <lv_img_buf_get_px_alpha+0x9e>
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
bf6a: 6820 ldr r0, [r4, #0]
bf6c: f3c0 208a ubfx r0, r0, #10, #11
bf70: 3001 adds r0, #1
bf72: 1040 asrs r0, r0, #1
uint8_t bit = (x & 0x1) * 4;
bf74: f003 0601 and.w r6, r3, #1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
bf78: fb02 5200 mla r2, r2, r0, r5
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
bf7c: 105b asrs r3, r3, #1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
bf7e: 00b6 lsls r6, r6, #2
bf80: 5cd3 ldrb r3, [r2, r3]
bf82: f1c6 0604 rsb r6, r6, #4
bf86: 220f movs r2, #15
bf88: e7d9 b.n bf3e <lv_img_buf_get_px_alpha+0x82>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
bf8a: 290e cmp r1, #14
uint32_t px = dsc->header.w * y + x;
bf8c: bf03 ittte eq
bf8e: 6801 ldreq r1, [r0, #0]
bf90: f3c1 218a ubfxeq r1, r1, #10, #11
bf94: fb12 3301 smlabbeq r3, r2, r1, r3
return LV_OPA_COVER;
bf98: 20ff movne r0, #255 ; 0xff
return buf_u8[px];
bf9a: bf08 it eq
bf9c: 5ce8 ldrbeq r0, [r5, r3]
bf9e: e7a0 b.n bee2 <lv_img_buf_get_px_alpha+0x26>
bfa0: ffaa5500 .word 0xffaa5500
bfa4: 0001fe43 .word 0x0001fe43
0000bfa8 <_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)
{
bfa8: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
bfac: f9b0 3008 ldrsh.w r3, [r0, #8]
int32_t angle_low = dsc->cfg.angle / 10;
int32_t angle_hight = angle_low + 1;
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
int32_t s1 = _lv_trigo_sin(-angle_low);
bfb0: f8df 80ec ldr.w r8, [pc, #236] ; c0a0 <_lv_img_buf_transform_init+0xf8>
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
bfb4: 021b lsls r3, r3, #8
bfb6: 6243 str r3, [r0, #36] ; 0x24
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
bfb8: f9b0 300a ldrsh.w r3, [r0, #10]
bfbc: 021b lsls r3, r3, #8
int32_t angle_low = dsc->cfg.angle / 10;
bfbe: 260a movs r6, #10
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
bfc0: 6283 str r3, [r0, #40] ; 0x28
int32_t angle_low = dsc->cfg.angle / 10;
bfc2: f9b0 300c ldrsh.w r3, [r0, #12]
bfc6: fb93 f5f6 sdiv r5, r3, r6
int32_t s1 = _lv_trigo_sin(-angle_low);
bfca: fa1f f985 uxth.w r9, r5
{
bfce: 4604 mov r4, r0
int32_t s1 = _lv_trigo_sin(-angle_low);
bfd0: f1c9 0000 rsb r0, r9, #0
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
bfd4: f64f 77f6 movw r7, #65526 ; 0xfff6
int32_t s1 = _lv_trigo_sin(-angle_low);
bfd8: b200 sxth r0, r0
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
bfda: fb15 3707 smlabb r7, r5, r7, r3
int32_t s1 = _lv_trigo_sin(-angle_low);
bfde: 47c0 blx r8
int32_t s2 = _lv_trigo_sin(-angle_hight);
bfe0: 3501 adds r5, #1
bfe2: b2ad uxth r5, r5
int32_t s1 = _lv_trigo_sin(-angle_low);
bfe4: 4682 mov sl, r0
int32_t s2 = _lv_trigo_sin(-angle_hight);
bfe6: 4268 negs r0, r5
bfe8: b200 sxth r0, r0
bfea: 47c0 blx r8
bfec: 4683 mov fp, r0
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
bfee: f1c9 005a rsb r0, r9, #90 ; 0x5a
bff2: b200 sxth r0, r0
bff4: 47c0 blx r8
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
bff6: f1c5 055a rsb r5, r5, #90 ; 0x5a
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
bffa: 4681 mov r9, r0
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
bffc: b228 sxth r0, r5
bffe: 47c0 blx r8
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c000: 1bf5 subs r5, r6, r7
c002: fb07 f10b mul.w r1, r7, fp
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c006: fb07 f300 mul.w r3, r7, r0
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c00a: fb05 120a mla r2, r5, sl, r1
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c00e: fb05 3009 mla r0, r5, r9, r3
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c012: fb92 f2f6 sdiv r2, r2, r6
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
c016: 4b20 ldr r3, [pc, #128] ; (c098 <_lv_img_buf_transform_init+0xf0>)
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c018: 62e2 str r2, [r4, #44] ; 0x2c
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c01a: fb90 f0f6 sdiv r0, r0, r6
c01e: 6320 str r0, [r4, #48] ; 0x30
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
c020: 7ca0 ldrb r0, [r4, #18]
c022: 4798 blx r3
c024: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c028: f360 0300 bfi r3, r0, #0, #1
c02c: f884 3034 strb.w r3, [r4, #52] ; 0x34
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
c030: 7ca0 ldrb r0, [r4, #18]
c032: 4b1a ldr r3, [pc, #104] ; (c09c <_lv_img_buf_transform_init+0xf4>)
c034: 4798 blx r3
if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c036: 7ca3 ldrb r3, [r4, #18]
c038: 1f1a subs r2, r3, #4
c03a: 2a02 cmp r2, #2
c03c: bf8c ite hi
c03e: 2100 movhi r1, #0
c040: 2101 movls r1, #1
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
c042: 0042 lsls r2, r0, #1
c044: ea42 0281 orr.w r2, r2, r1, lsl #2
c048: f894 1034 ldrb.w r1, [r4, #52] ; 0x34
c04c: f002 0206 and.w r2, r2, #6
c050: f021 0106 bic.w r1, r1, #6
c054: 430a orrs r2, r1
c056: f884 2034 strb.w r2, [r4, #52] ; 0x34
}
else {
dsc->tmp.native_color = 0;
}
dsc->tmp.img_dsc.data = dsc->cfg.src;
c05a: 6822 ldr r2, [r4, #0]
c05c: 6222 str r2, [r4, #32]
dsc->tmp.img_dsc.header.always_zero = 0;
dsc->tmp.img_dsc.header.cf = dsc->cfg.cf;
c05e: 88a2 ldrh r2, [r4, #4]
c060: f003 031f and.w r3, r3, #31
c064: f3c2 020a ubfx r2, r2, #0, #11
c068: ea43 2382 orr.w r3, r3, r2, lsl #10
c06c: f9b4 2006 ldrsh.w r2, [r4, #6]
c070: ea43 5342 orr.w r3, r3, r2, lsl #21
c074: 69a2 ldr r2, [r4, #24]
c076: f402 7240 and.w r2, r2, #768 ; 0x300
c07a: 4313 orrs r3, r2
c07c: 61a3 str r3, [r4, #24]
dsc->tmp.img_dsc.header.w = dsc->cfg.src_w;
dsc->tmp.img_dsc.header.h = dsc->cfg.src_h;
dsc->tmp.zoom_inv = (256 * 256) / dsc->cfg.zoom;
c07e: 89e2 ldrh r2, [r4, #14]
c080: f44f 3380 mov.w r3, #65536 ; 0x10000
c084: fbb3 f3f2 udiv r3, r3, r2
c088: 86e3 strh r3, [r4, #54] ; 0x36
dsc->res.opa = LV_OPA_COVER;
c08a: 23ff movs r3, #255 ; 0xff
c08c: 75a3 strb r3, [r4, #22]
dsc->res.color = dsc->cfg.color;
c08e: 8a23 ldrh r3, [r4, #16]
c090: 82a3 strh r3, [r4, #20]
}
c092: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
c096: bf00 nop
c098: 00007591 .word 0x00007591
c09c: 000075a5 .word 0x000075a5
c0a0: 0000e985 .word 0x0000e985
0000c0a4 <_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)
{
c0a4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
c0a8: b085 sub sp, #20
c0aa: 4607 mov r7, r0
#if LV_USE_IMG_TRANSFORM
int32_t angle_low = angle / 10;
int32_t angle_hight = angle_low + 1;
int32_t angle_rem = angle - (angle_low * 10);
int32_t s1 = _lv_trigo_sin(angle_low);
c0ac: 4d5e ldr r5, [pc, #376] ; (c228 <_lv_img_buf_get_transformed_area+0x184>)
{
c0ae: f8bd 8038 ldrh.w r8, [sp, #56] ; 0x38
c0b2: 9102 str r1, [sp, #8]
int32_t angle_low = angle / 10;
c0b4: f04f 090a mov.w r9, #10
int32_t angle_rem = angle - (angle_low * 10);
c0b8: f64f 7bf6 movw fp, #65526 ; 0xfff6
int32_t angle_low = angle / 10;
c0bc: fb93 f6f9 sdiv r6, r3, r9
int32_t s1 = _lv_trigo_sin(angle_low);
c0c0: 4630 mov r0, r6
int32_t angle_rem = angle - (angle_low * 10);
c0c2: fb16 3b0b smlabb fp, r6, fp, r3
{
c0c6: 4614 mov r4, r2
int32_t s1 = _lv_trigo_sin(angle_low);
c0c8: 47a8 blx r5
c0ca: 9003 str r0, [sp, #12]
int32_t s2 = _lv_trigo_sin(angle_hight);
c0cc: 1c70 adds r0, r6, #1
c0ce: b200 sxth r0, r0
c0d0: 47a8 blx r5
int32_t c1 = _lv_trigo_sin(angle_low + 90);
c0d2: b2b6 uxth r6, r6
int32_t s2 = _lv_trigo_sin(angle_hight);
c0d4: 4682 mov sl, r0
int32_t c1 = _lv_trigo_sin(angle_low + 90);
c0d6: f106 005a add.w r0, r6, #90 ; 0x5a
c0da: b200 sxth r0, r0
c0dc: 47a8 blx r5
c0de: 9001 str r0, [sp, #4]
int32_t c2 = _lv_trigo_sin(angle_hight + 90);
c0e0: f106 005b add.w r0, r6, #91 ; 0x5b
c0e4: b200 sxth r0, r0
c0e6: 47a8 blx r5
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c0e8: 9b03 ldr r3, [sp, #12]
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c0ea: 9901 ldr r1, [sp, #4]
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c0ec: eba9 060b sub.w r6, r9, fp
c0f0: fb0b f50a mul.w r5, fp, sl
c0f4: fb06 5503 mla r5, r6, r3, r5
lv_coord_t xt;
lv_coord_t yt;
lv_area_t a;
a.x1 = ((-pivot->x) * zoom) >> 8;
c0f8: 9b0f ldr r3, [sp, #60] ; 0x3c
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c0fa: fb95 f5f9 sdiv r5, r5, r9
a.y1 = ((-pivot->y) * zoom) >> 8;
c0fe: f9b3 c002 ldrsh.w ip, [r3, #2]
a.x1 = ((-pivot->x) * zoom) >> 8;
c102: f9b3 e000 ldrsh.w lr, [r3]
a.y1 = ((-pivot->y) * zoom) >> 8;
c106: f1cc 0200 rsb r2, ip, #0
a.x1 = ((-pivot->x) * zoom) >> 8;
c10a: f1ce 0300 rsb r3, lr, #0
c10e: fb08 f303 mul.w r3, r8, r3
a.y1 = ((-pivot->y) * zoom) >> 8;
c112: fb08 f202 mul.w r2, r8, r2
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c116: fb0b f000 mul.w r0, fp, r0
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;
c11a: f343 230f sbfx r3, r3, #8, #16
c11e: f342 220f sbfx r2, r2, #8, #16
c122: fb05 fa02 mul.w sl, r5, r2
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c126: fb06 0001 mla r0, r6, r1, r0
c12a: fb90 f0f9 sdiv r0, r0, r9
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c12e: fb00 f903 mul.w r9, r0, r3
lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c132: 4342 muls r2, r0
c134: 436b muls r3, r5
c136: 1899 adds r1, r3, r2
c138: 13c9 asrs r1, r1, #15
c13a: fa11 f18c uxtah r1, r1, ip
c13e: b209 sxth r1, r1
c140: 9101 str r1, [sp, #4]
a.x2 = ((w - pivot->x) * zoom) >> 8;
c142: 9902 ldr r1, [sp, #8]
c144: eba1 010e sub.w r1, r1, lr
c148: fb08 f101 mul.w r1, r8, r1
xt = a.x2;
yt = a.y1;
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c14c: f341 210f sbfx r1, r1, #8, #16
a.y2 = ((h - pivot->y) * zoom) >> 8;
c150: eba4 040c sub.w r4, r4, ip
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c154: fb00 fb01 mul.w fp, r0, r1
a.y2 = ((h - pivot->y) * zoom) >> 8;
c158: fb08 f404 mul.w r4, r8, r4
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c15c: eba9 060a sub.w r6, r9, sl
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
xt = a.x1;
yt = a.y2;
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c160: f344 240f sbfx r4, r4, #8, #16
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c164: ebab 0a0a sub.w sl, fp, sl
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c168: 4369 muls r1, r5
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c16a: 13f6 asrs r6, r6, #15
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c16c: 4365 muls r5, r4
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c16e: ea4f 3aea mov.w sl, sl, asr #15
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c172: fa16 f68e uxtah r6, r6, lr
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c176: fa1a fa8e uxtah sl, sl, lr
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c17a: eba9 0905 sub.w r9, r9, r5
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c17e: b236 sxth r6, r6
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c180: fa0f fa8a sxth.w sl, sl
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c184: ea4f 39e9 mov.w r9, r9, asr #15
xt = a.x2;
yt = a.y2;
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c188: 4556 cmp r6, sl
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c18a: fb00 f404 mul.w r4, r0, r4
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c18e: fa19 f98e uxtah r9, r9, lr
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c192: ebab 0505 sub.w r5, fp, r5
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c196: fa0f f989 sxth.w r9, r9
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c19a: 440a add r2, r1
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c19c: 4423 add r3, r4
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c19e: ea4f 35e5 mov.w r5, r5, asr #15
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1a2: 440c add r4, r1
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c1a4: 4631 mov r1, r6
c1a6: bfa8 it ge
c1a8: 4651 movge r1, sl
c1aa: 4549 cmp r1, r9
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c1ac: fa15 fe8e uxtah lr, r5, lr
c1b0: fa0f fe8e sxth.w lr, lr
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c1b4: bfa8 it ge
c1b6: 4649 movge r1, r9
c1b8: 4571 cmp r1, lr
c1ba: bfa8 it ge
c1bc: 4671 movge r1, lr
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c1be: 4556 cmp r6, sl
c1c0: bfb8 it lt
c1c2: 4656 movlt r6, sl
c1c4: 45b1 cmp r9, r6
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1c6: ea4f 32e2 mov.w r2, r2, asr #15
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c1ca: bfb8 it lt
c1cc: 46b1 movlt r9, r6
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1ce: fa12 f28c uxtah r2, r2, ip
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c1d2: 8039 strh r1, [r7, #0]
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c1d4: 9901 ldr r1, [sp, #4]
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1d6: b212 sxth r2, r2
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c1d8: 45ce cmp lr, r9
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1da: ea4f 33e3 mov.w r3, r3, asr #15
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c1de: bfb8 it lt
c1e0: 46ce movlt lr, r9
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1e2: fa13 f38c uxtah r3, r3, ip
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c1e6: 4291 cmp r1, r2
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1e8: b21b sxth r3, r3
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c1ea: bfa8 it ge
c1ec: 4611 movge r1, r2
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1ee: 13e4 asrs r4, r4, #15
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c1f0: 4299 cmp r1, r3
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c1f2: fa14 fc8c uxtah ip, r4, ip
c1f6: fa0f fc8c sxth.w ip, ip
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c1fa: bfa8 it ge
c1fc: 4619 movge r1, r3
c1fe: 4561 cmp r1, ip
c200: bfa8 it ge
c202: 4661 movge r1, ip
c204: 8079 strh r1, [r7, #2]
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
c206: 9901 ldr r1, [sp, #4]
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c208: f8a7 e004 strh.w lr, [r7, #4]
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
c20c: 428a cmp r2, r1
c20e: bfb8 it lt
c210: 460a movlt r2, r1
c212: 4293 cmp r3, r2
c214: bfb8 it lt
c216: 4613 movlt r3, r2
c218: 459c cmp ip, r3
c21a: bfb8 it lt
c21c: 469c movlt ip, r3
c21e: f8a7 c006 strh.w ip, [r7, #6]
res->x1 = 0;
res->y1 = 0;
res->x2 = w;
res->y2 = h;
#endif
}
c222: b005 add sp, #20
c224: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
c228: 0000e985 .word 0x0000e985
0000c22c <_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)
{
c22c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
c230: f890 2038 ldrb.w r2, [r0, #56] ; 0x38
const uint8_t * src_u8 = dsc->cfg.src;
c234: f8d0 8000 ldr.w r8, [r0]
/*Get the fractional part of the source pixel*/
int xs_fract = dsc->tmp.xs & 0xff;
c238: f9b0 5038 ldrsh.w r5, [r0, #56] ; 0x38
int ys_fract = dsc->tmp.ys & 0xff;
c23c: f9b0 603a ldrsh.w r6, [r0, #58] ; 0x3a
c240: f890 303a ldrb.w r3, [r0, #58] ; 0x3a
int32_t xn; /*x neightboor*/
lv_opa_t xr; /*x mix ratio*/
if(xs_fract < 0x70) {
c244: 2a6f cmp r2, #111 ; 0x6f
{
c246: b089 sub sp, #36 ; 0x24
c248: 4604 mov r4, r0
if(xs_fract < 0x70) {
c24a: f200 8093 bhi.w c374 <_lv_img_buf_transform_anti_alias+0x148>
xn = - 1;
if(dsc->tmp.xs_int + xn < 0) xn = 0;
c24e: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c
c252: f1b9 0f00 cmp.w r9, #0
c256: bfd4 ite le
c258: f04f 0900 movle.w r9, #0
c25c: f04f 0901 movgt.w r9, #1
c260: f1c9 0900 rsb r9, r9, #0
xr = xs_fract + 0x80;
c264: 3d80 subs r5, #128 ; 0x80
}
else if(xs_fract > 0x90) {
xn = 1;
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
xr = (0xFF - xs_fract) + 0x80;
c266: b2ed uxtb r5, r5
}
int32_t yn; /*x neightboor*/
lv_opa_t yr; /*x mix ratio*/
if(ys_fract < 0x70) {
c268: 2b6f cmp r3, #111 ; 0x6f
c26a: f200 8098 bhi.w c39e <_lv_img_buf_transform_anti_alias+0x172>
yn = - 1;
if(dsc->tmp.ys_int + yn < 0) yn = 0;
c26e: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e
c272: 2f00 cmp r7, #0
c274: bfd4 ite le
c276: 2700 movle r7, #0
c278: 2701 movgt r7, #1
c27a: 427f negs r7, r7
yr = ys_fract + 0x80;
c27c: 3e80 subs r6, #128 ; 0x80
}
else if(ys_fract > 0x90) {
yn = 1;
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
yr = (0xFF - ys_fract) + 0x80;
c27e: b2f6 uxtb r6, r6
else {
yn = 0;
yr = 0xFF;
}
lv_color_t c00 = dsc->res.color;
c280: 8aa3 ldrh r3, [r4, #20]
c282: f8ad 300a strh.w r3, [sp, #10]
lv_color_t c01;
lv_color_t c10;
lv_color_t c11;
lv_opa_t a00 = dsc->res.opa;
c286: 7da3 ldrb r3, [r4, #22]
c288: 9301 str r3, [sp, #4]
lv_opa_t a10 = 0;
lv_opa_t a01 = 0;
lv_opa_t a11 = 0;
if(dsc->tmp.native_color) {
c28a: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c28e: 0758 lsls r0, r3, #29
c290: f140 80aa bpl.w c3e8 <_lv_img_buf_transform_anti_alias+0x1bc>
_lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t));
c294: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
c298: 6c21 ldr r1, [r4, #64] ; 0x40
c29a: f8df a244 ldr.w sl, [pc, #580] ; c4e0 <_lv_img_buf_transform_anti_alias+0x2b4>
c29e: fb09 1103 mla r1, r9, r3, r1
c2a2: 2202 movs r2, #2
c2a4: 4441 add r1, r8
c2a6: a805 add r0, sp, #20
c2a8: 47d0 blx sl
_lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t));
c2aa: f894 1044 ldrb.w r1, [r4, #68] ; 0x44
c2ae: 88a3 ldrh r3, [r4, #4]
c2b0: fb11 f303 smulbb r3, r1, r3
c2b4: 6c21 ldr r1, [r4, #64] ; 0x40
c2b6: fb07 1103 mla r1, r7, r3, r1
c2ba: 2202 movs r2, #2
c2bc: 4441 add r1, r8
c2be: a806 add r0, sp, #24
c2c0: 47d0 blx sl
_lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn],
c2c2: f894 2044 ldrb.w r2, [r4, #68] ; 0x44
c2c6: 88a3 ldrh r3, [r4, #4]
c2c8: 6c21 ldr r1, [r4, #64] ; 0x40
c2ca: fb13 f302 smulbb r3, r3, r2
c2ce: fb09 1102 mla r1, r9, r2, r1
c2d2: fb07 1103 mla r1, r7, r3, r1
c2d6: 4441 add r1, r8
c2d8: 2202 movs r2, #2
c2da: a807 add r0, sp, #28
c2dc: 47d0 blx sl
sizeof(lv_color_t));
if(dsc->tmp.has_alpha) {
c2de: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c2e2: 0799 lsls r1, r3, #30
c2e4: d46c bmi.n c3c0 <_lv_img_buf_transform_anti_alias+0x194>
lv_opa_t a11 = 0;
c2e6: 2000 movs r0, #0
lv_opa_t a01 = 0;
c2e8: 4607 mov r7, r0
lv_opa_t a10 = 0;
c2ea: 4683 mov fp, r0
}
}
lv_opa_t xr0 = xr;
lv_opa_t xr1 = xr;
if(dsc->tmp.has_alpha) {
c2ec: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c2f0: 079b lsls r3, r3, #30
c2f2: f140 80c8 bpl.w c486 <_lv_img_buf_transform_anti_alias+0x25a>
lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8;
c2f6: 9a01 ldr r2, [sp, #4]
c2f8: f1c5 03ff rsb r3, r5, #255 ; 0xff
c2fc: fb12 fc05 smulbb ip, r2, r5
c300: fb03 cc0b mla ip, r3, fp, ip
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
c304: 4343 muls r3, r0
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c306: f3cc 2c07 ubfx ip, ip, #8, #8
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
c30a: fb15 3307 smlabb r3, r5, r7, r3
c30e: f3c3 2307 ubfx r3, r3, #8, #8
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c312: f1c6 02ff rsb r2, r6, #255 ; 0xff
c316: fb06 f10c mul.w r1, r6, ip
c31a: fb03 1202 mla r2, r3, r2, r1
c31e: 1212 asrs r2, r2, #8
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c320: f1bc 0f05 cmp.w ip, #5
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c324: 75a2 strb r2, [r4, #22]
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c326: f200 80aa bhi.w c47e <_lv_img_buf_transform_anti_alias+0x252>
c32a: 2b05 cmp r3, #5
c32c: f240 80d4 bls.w c4d8 <_lv_img_buf_transform_anti_alias+0x2ac>
if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP;
c330: 2600 movs r6, #0
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP;
c332: 9b01 ldr r3, [sp, #4]
c334: 2b05 cmp r3, #5
c336: bf94 ite ls
c338: 2200 movls r2, #0
c33a: 462a movhi r2, r5
if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER;
c33c: f1bb 0f05 cmp.w fp, #5
c340: bf98 it ls
c342: 22ff movls r2, #255 ; 0xff
if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP;
c344: 2f05 cmp r7, #5
c346: bf98 it ls
c348: 2500 movls r5, #0
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
c34a: 2805 cmp r0, #5
c34c: bf98 it ls
c34e: 25ff movls r5, #255 ; 0xff
xr1 = xr;
dsc->res.opa = LV_OPA_COVER;
}
lv_color_t c0;
if(xr0 == LV_OPA_TRANSP) c0 = c01;
c350: 2a00 cmp r2, #0
c352: f040 809c bne.w c48e <_lv_img_buf_transform_anti_alias+0x262>
c356: f8bd 7014 ldrh.w r7, [sp, #20]
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;
c35a: 2d00 cmp r5, #0
c35c: f040 80a4 bne.w c4a8 <_lv_img_buf_transform_anti_alias+0x27c>
c360: f8bd 101c ldrh.w r1, [sp, #28]
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;
c364: 2e00 cmp r6, #0
c366: f040 80ad bne.w c4c4 <_lv_img_buf_transform_anti_alias+0x298>
c36a: 82a1 strh r1, [r4, #20]
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
else dsc->res.color = lv_color_mix(c0, c1, yr);
return true;
c36c: 2001 movs r0, #1
}
c36e: b009 add sp, #36 ; 0x24
c370: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(xs_fract > 0x90) {
c374: 2a90 cmp r2, #144 ; 0x90
c376: d90e bls.n c396 <_lv_img_buf_transform_anti_alias+0x16a>
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
c378: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c
c37c: f9b0 1004 ldrsh.w r1, [r0, #4]
c380: f109 0901 add.w r9, r9, #1
c384: 4589 cmp r9, r1
c386: bfac ite ge
c388: f04f 0900 movge.w r9, #0
c38c: f04f 0901 movlt.w r9, #1
xr = (0xFF - xs_fract) + 0x80;
c390: f1c5 057f rsb r5, r5, #127 ; 0x7f
c394: e767 b.n c266 <_lv_img_buf_transform_anti_alias+0x3a>
xr = 0xFF;
c396: 25ff movs r5, #255 ; 0xff
xn = 0;
c398: f04f 0900 mov.w r9, #0
c39c: e764 b.n c268 <_lv_img_buf_transform_anti_alias+0x3c>
else if(ys_fract > 0x90) {
c39e: 2b90 cmp r3, #144 ; 0x90
c3a0: d90b bls.n c3ba <_lv_img_buf_transform_anti_alias+0x18e>
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
c3a2: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e
c3a6: f9b4 2006 ldrsh.w r2, [r4, #6]
c3aa: 3701 adds r7, #1
c3ac: 4297 cmp r7, r2
c3ae: bfac ite ge
c3b0: 2700 movge r7, #0
c3b2: 2701 movlt r7, #1
yr = (0xFF - ys_fract) + 0x80;
c3b4: f1c6 067f rsb r6, r6, #127 ; 0x7f
c3b8: e761 b.n c27e <_lv_img_buf_transform_anti_alias+0x52>
yr = 0xFF;
c3ba: 26ff movs r6, #255 ; 0xff
yn = 0;
c3bc: 2700 movs r7, #0
c3be: e75f b.n c280 <_lv_img_buf_transform_anti_alias+0x54>
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c3c0: 6c23 ldr r3, [r4, #64] ; 0x40
c3c2: f894 1044 ldrb.w r1, [r4, #68] ; 0x44
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c3c6: 88a2 ldrh r2, [r4, #4]
c3c8: 3b01 subs r3, #1
c3ca: 440b add r3, r1
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c3cc: fb09 3901 mla r9, r9, r1, r3
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c3d0: fb12 f201 smulbb r2, r2, r1
c3d4: 437a muls r2, r7
c3d6: eb08 0102 add.w r1, r8, r2
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c3da: f818 b009 ldrb.w fp, [r8, r9]
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c3de: 5ccf ldrb r7, [r1, r3]
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];
c3e0: 44c8 add r8, r9
c3e2: f818 0002 ldrb.w r0, [r8, r2]
c3e6: e781 b.n c2ec <_lv_img_buf_transform_anti_alias+0xc0>
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c3e8: 8fa1 ldrh r1, [r4, #60] ; 0x3c
c3ea: f8df b0f8 ldr.w fp, [pc, #248] ; c4e4 <_lv_img_buf_transform_anti_alias+0x2b8>
c3ee: 8a23 ldrh r3, [r4, #16]
c3f0: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e
c3f4: f104 0a18 add.w sl, r4, #24
c3f8: fa11 f189 uxtah r1, r1, r9
c3fc: b209 sxth r1, r1
c3fe: 4650 mov r0, sl
c400: 47d8 blx fp
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c402: 8fe2 ldrh r2, [r4, #62] ; 0x3e
c404: f9b4 103c ldrsh.w r1, [r4, #60] ; 0x3c
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c408: f8ad 0014 strh.w r0, [sp, #20]
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c40c: b2bb uxth r3, r7
c40e: fa12 f287 uxtah r2, r2, r7
c412: 9300 str r3, [sp, #0]
c414: b212 sxth r2, r2
c416: 8a23 ldrh r3, [r4, #16]
c418: 4650 mov r0, sl
c41a: 47d8 blx fp
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c41c: 9b00 ldr r3, [sp, #0]
c41e: 8fe2 ldrh r2, [r4, #62] ; 0x3e
c420: 8fa1 ldrh r1, [r4, #60] ; 0x3c
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c422: f8ad 0018 strh.w r0, [sp, #24]
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c426: fa1f f889 uxth.w r8, r9
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c42a: 441a add r2, r3
c42c: 4441 add r1, r8
c42e: 8a23 ldrh r3, [r4, #16]
c430: b212 sxth r2, r2
c432: b209 sxth r1, r1
c434: 4650 mov r0, sl
c436: 47d8 blx fp
if(dsc->tmp.has_alpha) {
c438: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c43c: f8ad 001c strh.w r0, [sp, #28]
if(dsc->tmp.has_alpha) {
c440: 079a lsls r2, r3, #30
c442: f57f af50 bpl.w c2e6 <_lv_img_buf_transform_anti_alias+0xba>
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
c446: f9b4 703c ldrsh.w r7, [r4, #60] ; 0x3c
c44a: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e
c44e: f8df 9098 ldr.w r9, [pc, #152] ; c4e8 <_lv_img_buf_transform_anti_alias+0x2bc>
c452: 9203 str r2, [sp, #12]
c454: 44b8 add r8, r7
c456: fa0f f888 sxth.w r8, r8
c45a: 4641 mov r1, r8
c45c: 4650 mov r0, sl
c45e: 47c8 blx r9
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c460: 9b00 ldr r3, [sp, #0]
c462: 9a03 ldr r2, [sp, #12]
c464: 4413 add r3, r2
c466: b21a sxth r2, r3
c468: 4639 mov r1, r7
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
c46a: 4683 mov fp, r0
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c46c: 4650 mov r0, sl
c46e: 9200 str r2, [sp, #0]
c470: 47c8 blx r9
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
c472: 9a00 ldr r2, [sp, #0]
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c474: 4607 mov r7, r0
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
c476: 4641 mov r1, r8
c478: 4650 mov r0, sl
c47a: 47c8 blx r9
c47c: e736 b.n c2ec <_lv_img_buf_transform_anti_alias+0xc0>
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
c47e: 2b05 cmp r3, #5
c480: bf98 it ls
c482: 26ff movls r6, #255 ; 0xff
c484: e755 b.n c332 <_lv_img_buf_transform_anti_alias+0x106>
dsc->res.opa = LV_OPA_COVER;
c486: 23ff movs r3, #255 ; 0xff
c488: 75a3 strb r3, [r4, #22]
xr0 = xr;
c48a: 462a mov r2, r5
c48c: e760 b.n c350 <_lv_img_buf_transform_anti_alias+0x124>
else if(xr0 == LV_OPA_COVER) c0 = c00;
c48e: 2aff cmp r2, #255 ; 0xff
c490: d102 bne.n c498 <_lv_img_buf_transform_anti_alias+0x26c>
c492: f8bd 700a ldrh.w r7, [sp, #10]
c496: e760 b.n c35a <_lv_img_buf_transform_anti_alias+0x12e>
else c0 = lv_color_mix(c00, c01, xr0);
c498: f8bd 1014 ldrh.w r1, [sp, #20]
c49c: f8bd 000a ldrh.w r0, [sp, #10]
c4a0: 4b0e ldr r3, [pc, #56] ; (c4dc <_lv_img_buf_transform_anti_alias+0x2b0>)
c4a2: 4798 blx r3
c4a4: 4607 mov r7, r0
c4a6: e758 b.n c35a <_lv_img_buf_transform_anti_alias+0x12e>
else if(xr1 == LV_OPA_COVER) c1 = c10;
c4a8: 2dff cmp r5, #255 ; 0xff
c4aa: d102 bne.n c4b2 <_lv_img_buf_transform_anti_alias+0x286>
c4ac: f8bd 1018 ldrh.w r1, [sp, #24]
c4b0: e758 b.n c364 <_lv_img_buf_transform_anti_alias+0x138>
else c1 = lv_color_mix(c10, c11, xr1);
c4b2: f8bd 101c ldrh.w r1, [sp, #28]
c4b6: f8bd 0018 ldrh.w r0, [sp, #24]
c4ba: 4b08 ldr r3, [pc, #32] ; (c4dc <_lv_img_buf_transform_anti_alias+0x2b0>)
c4bc: 462a mov r2, r5
c4be: 4798 blx r3
c4c0: 4601 mov r1, r0
c4c2: e74f b.n c364 <_lv_img_buf_transform_anti_alias+0x138>
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
c4c4: 2eff cmp r6, #255 ; 0xff
c4c6: d101 bne.n c4cc <_lv_img_buf_transform_anti_alias+0x2a0>
c4c8: 82a7 strh r7, [r4, #20]
c4ca: e74f b.n c36c <_lv_img_buf_transform_anti_alias+0x140>
else dsc->res.color = lv_color_mix(c0, c1, yr);
c4cc: 4b03 ldr r3, [pc, #12] ; (c4dc <_lv_img_buf_transform_anti_alias+0x2b0>)
c4ce: 4632 mov r2, r6
c4d0: 4638 mov r0, r7
c4d2: 4798 blx r3
c4d4: 82a0 strh r0, [r4, #20]
c4d6: e749 b.n c36c <_lv_img_buf_transform_anti_alias+0x140>
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c4d8: 2000 movs r0, #0
c4da: e748 b.n c36e <_lv_img_buf_transform_anti_alias+0x142>
c4dc: 0000bd61 .word 0x0000bd61
c4e0: 0000bdaf .word 0x0000bdaf
c4e4: 0000bdc5 .word 0x0000bdc5
c4e8: 0000bebd .word 0x0000bebd
0000c4ec <_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)
{
c4ec: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(entry_cnt == 0) {
c4f0: f8df 8190 ldr.w r8, [pc, #400] ; c684 <_lv_img_cache_open+0x198>
c4f4: f8b8 4000 ldrh.w r4, [r8]
{
c4f8: 4605 mov r5, r0
c4fa: 460e mov r6, r1
if(entry_cnt == 0) {
c4fc: b95c cbnz r4, c516 <_lv_img_cache_open+0x2a>
LV_LOG_WARN("lv_img_cache_open: the cache size is 0");
c4fe: 4b52 ldr r3, [pc, #328] ; (c648 <_lv_img_cache_open+0x15c>)
c500: 9300 str r3, [sp, #0]
c502: 4952 ldr r1, [pc, #328] ; (c64c <_lv_img_cache_open+0x160>)
c504: 4b52 ldr r3, [pc, #328] ; (c650 <_lv_img_cache_open+0x164>)
c506: 4d53 ldr r5, [pc, #332] ; (c654 <_lv_img_cache_open+0x168>)
c508: 2244 movs r2, #68 ; 0x44
c50a: 2002 movs r0, #2
c50c: 47a8 blx r5
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
}
return cached_src;
}
c50e: 4620 mov r0, r4
c510: b003 add sp, #12
c512: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c516: 4b50 ldr r3, [pc, #320] ; (c658 <_lv_img_cache_open+0x16c>)
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c518: 4850 ldr r0, [pc, #320] ; (c65c <_lv_img_cache_open+0x170>)
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c51a: 681f ldr r7, [r3, #0]
for(i = 0; i < entry_cnt; i++) {
c51c: 2300 movs r3, #0
c51e: 463a mov r2, r7
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c520: 6a11 ldr r1, [r2, #32]
for(i = 0; i < entry_cnt; i++) {
c522: 3301 adds r3, #1
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c524: 4281 cmp r1, r0
cache[i].life -= LV_IMG_CACHE_AGING;
c526: bfa8 it ge
c528: f101 31ff addge.w r1, r1, #4294967295 ; 0xffffffff
for(i = 0; i < entry_cnt; i++) {
c52c: b29b uxth r3, r3
cache[i].life -= LV_IMG_CACHE_AGING;
c52e: bfa8 it ge
c530: 6211 strge r1, [r2, #32]
for(i = 0; i < entry_cnt; i++) {
c532: 429c cmp r4, r3
c534: f102 0224 add.w r2, r2, #36 ; 0x24
c538: d1f2 bne.n c520 <_lv_img_cache_open+0x34>
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
c53a: f8df b14c ldr.w fp, [pc, #332] ; c688 <_lv_img_cache_open+0x19c>
c53e: f04f 0a00 mov.w sl, #0
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
c542: f04f 0924 mov.w r9, #36 ; 0x24
for(i = 0; i < entry_cnt; i++) {
c546: f8b8 1000 ldrh.w r1, [r8]
c54a: fa1f f28a uxth.w r2, sl
c54e: 4291 cmp r1, r2
c550: d839 bhi.n c5c6 <_lv_img_cache_open+0xda>
c552: f107 0224 add.w r2, r7, #36 ; 0x24
cached_src = &cache[0];
c556: 463c mov r4, r7
for(i = 1; i < entry_cnt; i++) {
c558: 2301 movs r3, #1
c55a: 4299 cmp r1, r3
c55c: d856 bhi.n c60c <_lv_img_cache_open+0x120>
if(cached_src->dec_dsc.src) {
c55e: 6863 ldr r3, [r4, #4]
c560: f8df 80f0 ldr.w r8, [pc, #240] ; c654 <_lv_img_cache_open+0x168>
c564: 2b00 cmp r3, #0
c566: d05a beq.n c61e <_lv_img_cache_open+0x132>
lv_img_decoder_close(&cached_src->dec_dsc);
c568: 4b3d ldr r3, [pc, #244] ; (c660 <_lv_img_cache_open+0x174>)
c56a: 4620 mov r0, r4
c56c: 4798 blx r3
LV_LOG_INFO("image draw: cache miss, close and reuse an entry");
c56e: 4b3d ldr r3, [pc, #244] ; (c664 <_lv_img_cache_open+0x178>)
c570: 9300 str r3, [sp, #0]
c572: 4b37 ldr r3, [pc, #220] ; (c650 <_lv_img_cache_open+0x164>)
c574: 2277 movs r2, #119 ; 0x77
LV_LOG_INFO("image draw: cache miss, cached to an empty entry");
c576: 4935 ldr r1, [pc, #212] ; (c64c <_lv_img_cache_open+0x160>)
c578: 2001 movs r0, #1
c57a: 47c0 blx r8
t_start = lv_tick_get();
c57c: 4b3a ldr r3, [pc, #232] ; (c668 <_lv_img_cache_open+0x17c>)
c57e: 4798 blx r3
cached_src->dec_dsc.time_to_open = 0;
c580: f04f 0900 mov.w r9, #0
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
c584: 4629 mov r1, r5
c586: 4b39 ldr r3, [pc, #228] ; (c66c <_lv_img_cache_open+0x180>)
cached_src->dec_dsc.time_to_open = 0;
c588: f8c4 9014 str.w r9, [r4, #20]
t_start = lv_tick_get();
c58c: 4607 mov r7, r0
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
c58e: 4632 mov r2, r6
c590: 4620 mov r0, r4
c592: 4798 blx r3
if(open_res == LV_RES_INV) {
c594: 4605 mov r5, r0
c596: 2800 cmp r0, #0
c598: d146 bne.n c628 <_lv_img_cache_open+0x13c>
LV_LOG_WARN("Image draw cannot open the image resource");
c59a: 4b35 ldr r3, [pc, #212] ; (c670 <_lv_img_cache_open+0x184>)
c59c: 492b ldr r1, [pc, #172] ; (c64c <_lv_img_cache_open+0x160>)
c59e: 9300 str r3, [sp, #0]
c5a0: 2283 movs r2, #131 ; 0x83
c5a2: 4b2b ldr r3, [pc, #172] ; (c650 <_lv_img_cache_open+0x164>)
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
c5a4: 4e33 ldr r6, [pc, #204] ; (c674 <_lv_img_cache_open+0x188>)
LV_LOG_WARN("Image draw cannot open the image resource");
c5a6: 2002 movs r0, #2
c5a8: 47c0 blx r8
lv_img_decoder_close(&cached_src->dec_dsc);
c5aa: 4b2d ldr r3, [pc, #180] ; (c660 <_lv_img_cache_open+0x174>)
c5ac: 4620 mov r0, r4
c5ae: 4798 blx r3
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
c5b0: 4620 mov r0, r4
c5b2: 2120 movs r1, #32
c5b4: 47b0 blx r6
_lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t));
c5b6: 4620 mov r0, r4
c5b8: 2124 movs r1, #36 ; 0x24
c5ba: 47b0 blx r6
cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */
c5bc: f04f 4300 mov.w r3, #2147483648 ; 0x80000000
c5c0: 6223 str r3, [r4, #32]
return NULL;
c5c2: 462c mov r4, r5
c5c4: e7a3 b.n c50e <_lv_img_cache_open+0x22>
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
c5c6: fa1f f48a uxth.w r4, sl
c5ca: fb09 7404 mla r4, r9, r4, r7
c5ce: 4b2a ldr r3, [pc, #168] ; (c678 <_lv_img_cache_open+0x18c>)
c5d0: 6860 ldr r0, [r4, #4]
c5d2: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
c5d4: b980 cbnz r0, c5f8 <_lv_img_cache_open+0x10c>
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
c5d6: 6862 ldr r2, [r4, #4]
c5d8: 42aa cmp r2, r5
c5da: d114 bne.n c606 <_lv_img_cache_open+0x11a>
c5dc: 8921 ldrh r1, [r4, #8]
c5de: b2b2 uxth r2, r6
c5e0: 4291 cmp r1, r2
c5e2: d110 bne.n c606 <_lv_img_cache_open+0x11a>
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
c5e4: 6a23 ldr r3, [r4, #32]
c5e6: 6962 ldr r2, [r4, #20]
c5e8: 4413 add r3, r2
if(cached_src->life > LV_IMG_CACHE_LIFE_LIMIT) cached_src->life = LV_IMG_CACHE_LIFE_LIMIT;
c5ea: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8
c5ee: bfc8 it gt
c5f0: f44f 737a movgt.w r3, #1000 ; 0x3e8
c5f4: 6223 str r3, [r4, #32]
c5f6: e78a b.n c50e <_lv_img_cache_open+0x22>
else if(src_type == LV_IMG_SRC_FILE) {
c5f8: 2801 cmp r0, #1
c5fa: d104 bne.n c606 <_lv_img_cache_open+0x11a>
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
c5fc: 6860 ldr r0, [r4, #4]
c5fe: 4629 mov r1, r5
c600: 47d8 blx fp
c602: 2800 cmp r0, #0
c604: d0ee beq.n c5e4 <_lv_img_cache_open+0xf8>
for(i = 0; i < entry_cnt; i++) {
c606: f10a 0a01 add.w sl, sl, #1
c60a: e79c b.n c546 <_lv_img_cache_open+0x5a>
if(cache[i].life < cached_src->life) {
c60c: 6a17 ldr r7, [r2, #32]
c60e: 6a20 ldr r0, [r4, #32]
for(i = 1; i < entry_cnt; i++) {
c610: 3301 adds r3, #1
if(cache[i].life < cached_src->life) {
c612: 4287 cmp r7, r0
c614: bfb8 it lt
c616: 4614 movlt r4, r2
for(i = 1; i < entry_cnt; i++) {
c618: b29b uxth r3, r3
c61a: 3224 adds r2, #36 ; 0x24
c61c: e79d b.n c55a <_lv_img_cache_open+0x6e>
LV_LOG_INFO("image draw: cache miss, cached to an empty entry");
c61e: 4b17 ldr r3, [pc, #92] ; (c67c <_lv_img_cache_open+0x190>)
c620: 9300 str r3, [sp, #0]
c622: 227a movs r2, #122 ; 0x7a
c624: 4b0a ldr r3, [pc, #40] ; (c650 <_lv_img_cache_open+0x164>)
c626: e7a6 b.n c576 <_lv_img_cache_open+0x8a>
if(cached_src->dec_dsc.time_to_open == 0) {
c628: 6963 ldr r3, [r4, #20]
cached_src->life = 0;
c62a: f8c4 9020 str.w r9, [r4, #32]
if(cached_src->dec_dsc.time_to_open == 0) {
c62e: 2b00 cmp r3, #0
c630: f47f af6d bne.w c50e <_lv_img_cache_open+0x22>
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
c634: 4b12 ldr r3, [pc, #72] ; (c680 <_lv_img_cache_open+0x194>)
c636: 4638 mov r0, r7
c638: 4798 blx r3
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
c63a: b108 cbz r0, c640 <_lv_img_cache_open+0x154>
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
c63c: 6160 str r0, [r4, #20]
c63e: e766 b.n c50e <_lv_img_cache_open+0x22>
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
c640: 2301 movs r3, #1
c642: 6163 str r3, [r4, #20]
c644: e763 b.n c50e <_lv_img_cache_open+0x22>
c646: bf00 nop
c648: 0001fe9f .word 0x0001fe9f
c64c: 0001fe6a .word 0x0001fe6a
c650: 0001ff52 .word 0x0001ff52
c654: 0000e931 .word 0x0000e931
c658: 2000866c .word 0x2000866c
c65c: 80000002 .word 0x80000002
c660: 0000d091 .word 0x0000d091
c664: 0001fec6 .word 0x0001fec6
c668: 0000da8d .word 0x0000da8d
c66c: 0000cfc1 .word 0x0000cfc1
c670: 0001ff28 .word 0x0001ff28
c674: 0000f061 .word 0x0000f061
c678: 00007811 .word 0x00007811
c67c: 0001fef7 .word 0x0001fef7
c680: 0000daa1 .word 0x0000daa1
c684: 200085d0 .word 0x200085d0
c688: 00016359 .word 0x00016359
0000c68c <lv_img_cache_invalidate_src>:
* @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)
{
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c68c: 4b14 ldr r3, [pc, #80] ; (c6e0 <lv_img_cache_invalidate_src+0x54>)
{
c68e: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c692: 681f ldr r7, [r3, #0]
uint16_t i;
for(i = 0; i < entry_cnt; i++) {
c694: 4e13 ldr r6, [pc, #76] ; (c6e4 <lv_img_cache_invalidate_src+0x58>)
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));
c696: 4d14 ldr r5, [pc, #80] ; (c6e8 <lv_img_cache_invalidate_src+0x5c>)
lv_img_decoder_close(&cache[i].dec_dsc);
c698: f8df 8050 ldr.w r8, [pc, #80] ; c6ec <lv_img_cache_invalidate_src+0x60>
{
c69c: 4604 mov r4, r0
for(i = 0; i < entry_cnt; i++) {
c69e: f04f 0900 mov.w r9, #0
c6a2: 8832 ldrh r2, [r6, #0]
c6a4: fa1f f389 uxth.w r3, r9
c6a8: 429a cmp r2, r3
c6aa: d802 bhi.n c6b2 <lv_img_cache_invalidate_src+0x26>
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
}
}
}
c6ac: b003 add sp, #12
c6ae: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(cache[i].dec_dsc.src == src || src == NULL) {
c6b2: fa1f f389 uxth.w r3, r9
c6b6: 2024 movs r0, #36 ; 0x24
c6b8: fb00 7003 mla r0, r0, r3, r7
c6bc: 6843 ldr r3, [r0, #4]
c6be: 42a3 cmp r3, r4
c6c0: d000 beq.n c6c4 <lv_img_cache_invalidate_src+0x38>
c6c2: b94c cbnz r4, c6d8 <lv_img_cache_invalidate_src+0x4c>
if(cache[i].dec_dsc.src != NULL) {
c6c4: b113 cbz r3, c6cc <lv_img_cache_invalidate_src+0x40>
lv_img_decoder_close(&cache[i].dec_dsc);
c6c6: 9001 str r0, [sp, #4]
c6c8: 47c0 blx r8
c6ca: 9801 ldr r0, [sp, #4]
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c6cc: 9001 str r0, [sp, #4]
c6ce: 2120 movs r1, #32
c6d0: 47a8 blx r5
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
c6d2: 9801 ldr r0, [sp, #4]
c6d4: 2124 movs r1, #36 ; 0x24
c6d6: 47a8 blx r5
for(i = 0; i < entry_cnt; i++) {
c6d8: f109 0901 add.w r9, r9, #1
c6dc: e7e1 b.n c6a2 <lv_img_cache_invalidate_src+0x16>
c6de: bf00 nop
c6e0: 2000866c .word 0x2000866c
c6e4: 200085d0 .word 0x200085d0
c6e8: 0000f061 .word 0x0000f061
c6ec: 0000d091 .word 0x0000d091
0000c6f0 <lv_img_cache_set_size>:
{
c6f0: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
c6f4: 4c1f ldr r4, [pc, #124] ; (c774 <lv_img_cache_set_size+0x84>)
c6f6: 6823 ldr r3, [r4, #0]
{
c6f8: 4605 mov r5, r0
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
c6fa: b12b cbz r3, c708 <lv_img_cache_set_size+0x18>
lv_img_cache_invalidate_src(NULL);
c6fc: 4b1e ldr r3, [pc, #120] ; (c778 <lv_img_cache_set_size+0x88>)
c6fe: 2000 movs r0, #0
c700: 4798 blx r3
lv_mem_free(LV_GC_ROOT(_lv_img_cache_array));
c702: 6820 ldr r0, [r4, #0]
c704: 4b1d ldr r3, [pc, #116] ; (c77c <lv_img_cache_set_size+0x8c>)
c706: 4798 blx r3
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
c708: 2724 movs r7, #36 ; 0x24
c70a: 4b1d ldr r3, [pc, #116] ; (c780 <lv_img_cache_set_size+0x90>)
c70c: fb07 f005 mul.w r0, r7, r5
c710: 4798 blx r3
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
c712: 4b1c ldr r3, [pc, #112] ; (c784 <lv_img_cache_set_size+0x94>)
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
c714: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
c716: 4798 blx r3
c718: 4606 mov r6, r0
c71a: b960 cbnz r0, c736 <lv_img_cache_set_size+0x46>
c71c: 4b1a ldr r3, [pc, #104] ; (c788 <lv_img_cache_set_size+0x98>)
c71e: 491b ldr r1, [pc, #108] ; (c78c <lv_img_cache_set_size+0x9c>)
c720: 9300 str r3, [sp, #0]
c722: 22a8 movs r2, #168 ; 0xa8
c724: 2003 movs r0, #3
c726: 4d1a ldr r5, [pc, #104] ; (c790 <lv_img_cache_set_size+0xa0>)
c728: 47a8 blx r5
c72a: 6822 ldr r2, [r4, #0]
c72c: 4819 ldr r0, [pc, #100] ; (c794 <lv_img_cache_set_size+0xa4>)
c72e: 491a ldr r1, [pc, #104] ; (c798 <lv_img_cache_set_size+0xa8>)
c730: 4633 mov r3, r6
c732: 4788 blx r1
c734: e7fe b.n c734 <lv_img_cache_set_size+0x44>
if(LV_GC_ROOT(_lv_img_cache_array) == NULL) {
c736: 6823 ldr r3, [r4, #0]
c738: f8df 8060 ldr.w r8, [pc, #96] ; c79c <lv_img_cache_set_size+0xac>
c73c: b923 cbnz r3, c748 <lv_img_cache_set_size+0x58>
entry_cnt = 0;
c73e: f8a8 3000 strh.w r3, [r8]
}
c742: b003 add sp, #12
c744: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c748: f8df 9054 ldr.w r9, [pc, #84] ; c7a0 <lv_img_cache_set_size+0xb0>
entry_cnt = new_entry_cnt;
c74c: f8a8 5000 strh.w r5, [r8]
for(i = 0; i < entry_cnt; i++) {
c750: 2500 movs r5, #0
c752: f8b8 2000 ldrh.w r2, [r8]
c756: b2ab uxth r3, r5
c758: 429a cmp r2, r3
c75a: d9f2 bls.n c742 <lv_img_cache_set_size+0x52>
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c75c: 6820 ldr r0, [r4, #0]
c75e: b2ae uxth r6, r5
c760: 437e muls r6, r7
c762: 2120 movs r1, #32
c764: 4430 add r0, r6
c766: 47c8 blx r9
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t));
c768: 6820 ldr r0, [r4, #0]
c76a: 2124 movs r1, #36 ; 0x24
c76c: 4430 add r0, r6
c76e: 47c8 blx r9
for(i = 0; i < entry_cnt; i++) {
c770: 3501 adds r5, #1
c772: e7ee b.n c752 <lv_img_cache_set_size+0x62>
c774: 2000866c .word 0x2000866c
c778: 0000c68d .word 0x0000c68d
c77c: 0000eb2d .word 0x0000eb2d
c780: 0000ea75 .word 0x0000ea75
c784: 00001795 .word 0x00001795
c788: 0001ff65 .word 0x0001ff65
c78c: 0001fe6a .word 0x0001fe6a
c790: 0000e931 .word 0x0000e931
c794: 0001ee02 .word 0x0001ee02
c798: 0000179d .word 0x0000179d
c79c: 200085d0 .word 0x200085d0
c7a0: 0000f061 .word 0x0000f061
0000c7a4 <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)
{
c7a4: b570 push {r4, r5, r6, lr}
(void)decoder; /*Unused*/
lv_img_src_t src_type = lv_img_src_get_type(src);
c7a6: 4b2c ldr r3, [pc, #176] ; (c858 <lv_img_decoder_built_in_info+0xb4>)
{
c7a8: b086 sub sp, #24
lv_img_src_t src_type = lv_img_src_get_type(src);
c7aa: 4608 mov r0, r1
{
c7ac: 460e mov r6, r1
c7ae: 4615 mov r5, r2
lv_img_src_t src_type = lv_img_src_get_type(src);
c7b0: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
c7b2: 4604 mov r4, r0
c7b4: b9d8 cbnz r0, c7ee <lv_img_decoder_built_in_info+0x4a>
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
c7b6: 7833 ldrb r3, [r6, #0]
c7b8: f3c3 0304 ubfx r3, r3, #0, #5
if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV;
c7bc: 3b04 subs r3, #4
c7be: b2db uxtb r3, r3
c7c0: 2b0a cmp r3, #10
c7c2: d811 bhi.n c7e8 <lv_img_decoder_built_in_info+0x44>
header->w = ((lv_img_dsc_t *)src)->header.w;
header->h = ((lv_img_dsc_t *)src)->header.h;
c7c4: 8873 ldrh r3, [r6, #2]
c7c6: 886a ldrh r2, [r5, #2]
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
c7c8: 6831 ldr r1, [r6, #0]
header->h = ((lv_img_dsc_t *)src)->header.h;
c7ca: f3c3 134a ubfx r3, r3, #5, #11
c7ce: f363 124f bfi r2, r3, #5, #11
c7d2: 806a strh r2, [r5, #2]
header->cf = ((lv_img_dsc_t *)src)->header.cf;
c7d4: 682b ldr r3, [r5, #0]
c7d6: 4a21 ldr r2, [pc, #132] ; (c85c <lv_img_decoder_built_in_info+0xb8>)
c7d8: f023 131f bic.w r3, r3, #2031647 ; 0x1f001f
c7dc: f423 437c bic.w r3, r3, #64512 ; 0xfc00
c7e0: 400a ands r2, r1
* function*/
header->w = 1;
header->h = 1;
/* Symbols always have transparent parts. Important because of cover check in the design
* function. The actual value doesn't matter because lv_draw_label will draw it*/
header->cf = LV_IMG_CF_ALPHA_1BIT;
c7e2: 4313 orrs r3, r2
c7e4: 602b str r3, [r5, #0]
}
else {
LV_LOG_WARN("Image get info found unknown src type");
return LV_RES_INV;
}
return LV_RES_OK;
c7e6: 2401 movs r4, #1
}
c7e8: 4620 mov r0, r4
c7ea: b006 add sp, #24
c7ec: bd70 pop {r4, r5, r6, pc}
else if(src_type == LV_IMG_SRC_FILE) {
c7ee: 2801 cmp r0, #1
c7f0: d125 bne.n c83e <lv_img_decoder_built_in_info+0x9a>
res = lv_fs_open(&file, src, LV_FS_MODE_RD);
c7f2: 4b1b ldr r3, [pc, #108] ; (c860 <lv_img_decoder_built_in_info+0xbc>)
c7f4: 2202 movs r2, #2
c7f6: 4631 mov r1, r6
c7f8: a804 add r0, sp, #16
c7fa: 4798 blx r3
if(res == LV_FS_RES_OK) {
c7fc: b9b8 cbnz r0, c82e <lv_img_decoder_built_in_info+0x8a>
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
c7fe: 4e19 ldr r6, [pc, #100] ; (c864 <lv_img_decoder_built_in_info+0xc0>)
c800: ab03 add r3, sp, #12
c802: 2204 movs r2, #4
c804: 4629 mov r1, r5
c806: a804 add r0, sp, #16
c808: 47b0 blx r6
lv_fs_close(&file);
c80a: 4b17 ldr r3, [pc, #92] ; (c868 <lv_img_decoder_built_in_info+0xc4>)
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
c80c: 4606 mov r6, r0
lv_fs_close(&file);
c80e: a804 add r0, sp, #16
c810: 4798 blx r3
if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) {
c812: b916 cbnz r6, c81a <lv_img_decoder_built_in_info+0x76>
c814: 9b03 ldr r3, [sp, #12]
c816: 2b04 cmp r3, #4
c818: d009 beq.n c82e <lv_img_decoder_built_in_info+0x8a>
LV_LOG_WARN("Image get info get read file header");
c81a: 4b14 ldr r3, [pc, #80] ; (c86c <lv_img_decoder_built_in_info+0xc8>)
c81c: 9300 str r3, [sp, #0]
c81e: 4b14 ldr r3, [pc, #80] ; (c870 <lv_img_decoder_built_in_info+0xcc>)
c820: f240 1221 movw r2, #289 ; 0x121
LV_LOG_WARN("Image get info found unknown src type");
c824: 4913 ldr r1, [pc, #76] ; (c874 <lv_img_decoder_built_in_info+0xd0>)
c826: 4c14 ldr r4, [pc, #80] ; (c878 <lv_img_decoder_built_in_info+0xd4>)
c828: 2002 movs r0, #2
c82a: 47a0 blx r4
c82c: e005 b.n c83a <lv_img_decoder_built_in_info+0x96>
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
c82e: 782b ldrb r3, [r5, #0]
c830: 331c adds r3, #28
c832: f003 031f and.w r3, r3, #31
c836: 2b0a cmp r3, #10
c838: d9d6 bls.n c7e8 <lv_img_decoder_built_in_info+0x44>
return LV_RES_INV;
c83a: 2400 movs r4, #0
c83c: e7d4 b.n c7e8 <lv_img_decoder_built_in_info+0x44>
else if(src_type == LV_IMG_SRC_SYMBOL) {
c83e: 2802 cmp r0, #2
c840: d104 bne.n c84c <lv_img_decoder_built_in_info+0xa8>
header->cf = LV_IMG_CF_ALPHA_1BIT;
c842: 682b ldr r3, [r5, #0]
c844: f403 7278 and.w r2, r3, #992 ; 0x3e0
c848: 4b0c ldr r3, [pc, #48] ; (c87c <lv_img_decoder_built_in_info+0xd8>)
c84a: e7ca b.n c7e2 <lv_img_decoder_built_in_info+0x3e>
LV_LOG_WARN("Image get info found unknown src type");
c84c: 4b0c ldr r3, [pc, #48] ; (c880 <lv_img_decoder_built_in_info+0xdc>)
c84e: 9300 str r3, [sp, #0]
c850: f44f 729a mov.w r2, #308 ; 0x134
c854: 4b06 ldr r3, [pc, #24] ; (c870 <lv_img_decoder_built_in_info+0xcc>)
c856: e7e5 b.n c824 <lv_img_decoder_built_in_info+0x80>
c858: 00007811 .word 0x00007811
c85c: 001ffc1f .word 0x001ffc1f
c860: 0000e4e9 .word 0x0000e4e9
c864: 0000e461 .word 0x0000e461
c868: 0000e431 .word 0x0000e431
c86c: 0001ffb2 .word 0x0001ffb2
c870: 00020120 .word 0x00020120
c874: 0001ff7b .word 0x0001ff7b
c878: 0000e931 .word 0x0000e931
c87c: 0020040b .word 0x0020040b
c880: 0001ffd6 .word 0x0001ffd6
0000c884 <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)
{
c884: b570 push {r4, r5, r6, lr}
(void)decoder; /*Unused*/
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
c886: 69cc ldr r4, [r1, #28]
{
c888: 460d mov r5, r1
if(user_data) {
c88a: b184 cbz r4, c8ae <lv_img_decoder_built_in_close+0x2a>
#if LV_USE_FILESYSTEM
if(user_data->f) {
c88c: 6820 ldr r0, [r4, #0]
c88e: 4e08 ldr r6, [pc, #32] ; (c8b0 <lv_img_decoder_built_in_close+0x2c>)
c890: b118 cbz r0, c89a <lv_img_decoder_built_in_close+0x16>
lv_fs_close(user_data->f);
c892: 4b08 ldr r3, [pc, #32] ; (c8b4 <lv_img_decoder_built_in_close+0x30>)
c894: 4798 blx r3
lv_mem_free(user_data->f);
c896: 6820 ldr r0, [r4, #0]
c898: 47b0 blx r6
}
#endif
if(user_data->palette) lv_mem_free(user_data->palette);
c89a: 6860 ldr r0, [r4, #4]
c89c: b100 cbz r0, c8a0 <lv_img_decoder_built_in_close+0x1c>
c89e: 47b0 blx r6
if(user_data->opa) lv_mem_free(user_data->opa);
c8a0: 68a0 ldr r0, [r4, #8]
c8a2: b100 cbz r0, c8a6 <lv_img_decoder_built_in_close+0x22>
c8a4: 47b0 blx r6
lv_mem_free(user_data);
c8a6: 4620 mov r0, r4
c8a8: 47b0 blx r6
dsc->user_data = NULL;
c8aa: 2300 movs r3, #0
c8ac: 61eb str r3, [r5, #28]
}
}
c8ae: bd70 pop {r4, r5, r6, pc}
c8b0: 0000eb2d .word 0x0000eb2d
c8b4: 0000e431 .word 0x0000e431
0000c8b8 <lv_img_decoder_built_in_read_line>:
{
c8b8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c8bc: 7b08 ldrb r0, [r1, #12]
{
c8be: b08d sub sp, #52 ; 0x34
c8c0: 4698 mov r8, r3
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c8c2: f000 031e and.w r3, r0, #30
c8c6: 2b04 cmp r3, #4
{
c8c8: f9bd a058 ldrsh.w sl, [sp, #88] ; 0x58
c8cc: 9e17 ldr r6, [sp, #92] ; 0x5c
c8ce: 460d mov r5, r1
c8d0: 4614 mov r4, r2
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c8d2: d003 beq.n c8dc <lv_img_decoder_built_in_read_line+0x24>
dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
c8d4: f000 031f and.w r3, r0, #31
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c8d8: 2b06 cmp r3, #6
c8da: d13d bne.n c958 <lv_img_decoder_built_in_read_line+0xa0>
if(dsc->src_type == LV_IMG_SRC_FILE) {
c8dc: f895 900a ldrb.w r9, [r5, #10]
c8e0: f1b9 0f01 cmp.w r9, #1
c8e4: d135 bne.n c952 <lv_img_decoder_built_in_read_line+0x9a>
lv_coord_t len, uint8_t * buf)
{
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
lv_fs_res_t res;
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
c8e6: 4bb3 ldr r3, [pc, #716] ; (cbb4 <lv_img_decoder_built_in_read_line+0x2fc>)
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
c8e8: f8d5 b01c ldr.w fp, [r5, #28]
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
c8ec: f000 001f and.w r0, r0, #31
c8f0: 4798 blx r3
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
c8f2: 68e9 ldr r1, [r5, #12]
pos += 4; /*Skip the header*/
res = lv_fs_seek(user_data->f, pos);
c8f4: 4bb0 ldr r3, [pc, #704] ; (cbb8 <lv_img_decoder_built_in_read_line+0x300>)
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
c8f6: f3c1 218a ubfx r1, r1, #10, #11
c8fa: fb18 4101 smlabb r1, r8, r1, r4
c8fe: 4341 muls r1, r0
c900: 10c9 asrs r1, r1, #3
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
c902: 4607 mov r7, r0
res = lv_fs_seek(user_data->f, pos);
c904: 3104 adds r1, #4
c906: f8db 0000 ldr.w r0, [fp]
c90a: 4798 blx r3
if(res != LV_FS_RES_OK) {
c90c: b148 cbz r0, c922 <lv_img_decoder_built_in_read_line+0x6a>
LV_LOG_WARN("Built-in image decoder seek failed");
c90e: 4bab ldr r3, [pc, #684] ; (cbbc <lv_img_decoder_built_in_read_line+0x304>)
c910: 9300 str r3, [sp, #0]
c912: 4bab ldr r3, [pc, #684] ; (cbc0 <lv_img_decoder_built_in_read_line+0x308>)
c914: f240 222e movw r2, #558 ; 0x22e
LV_LOG_WARN("Built-in image decoder read not supports the color format");
c918: 49aa ldr r1, [pc, #680] ; (cbc4 <lv_img_decoder_built_in_read_line+0x30c>)
c91a: 4cab ldr r4, [pc, #684] ; (cbc8 <lv_img_decoder_built_in_read_line+0x310>)
c91c: 2002 movs r0, #2
c91e: 47a0 blx r4
return LV_RES_INV;
c920: e017 b.n c952 <lv_img_decoder_built_in_read_line+0x9a>
return LV_RES_INV;
}
uint32_t btr = len * (px_size >> 3);
c922: f3c7 07c7 ubfx r7, r7, #3, #8
c926: fb17 fa0a smulbb sl, r7, sl
uint32_t br = 0;
c92a: 9008 str r0, [sp, #32]
lv_fs_read(user_data->f, buf, btr, &br);
c92c: ab08 add r3, sp, #32
c92e: f8db 0000 ldr.w r0, [fp]
c932: 4da6 ldr r5, [pc, #664] ; (cbcc <lv_img_decoder_built_in_read_line+0x314>)
c934: 4652 mov r2, sl
c936: 4631 mov r1, r6
c938: 47a8 blx r5
if(res != LV_FS_RES_OK || btr != br) {
c93a: 9b08 ldr r3, [sp, #32]
c93c: 459a cmp sl, r3
c93e: d079 beq.n ca34 <lv_img_decoder_built_in_read_line+0x17c>
LV_LOG_WARN("Built-in image decoder read failed");
c940: 4ba3 ldr r3, [pc, #652] ; (cbd0 <lv_img_decoder_built_in_read_line+0x318>)
c942: 9300 str r3, [sp, #0]
c944: 499f ldr r1, [pc, #636] ; (cbc4 <lv_img_decoder_built_in_read_line+0x30c>)
c946: 4b9e ldr r3, [pc, #632] ; (cbc0 <lv_img_decoder_built_in_read_line+0x308>)
c948: 4d9f ldr r5, [pc, #636] ; (cbc8 <lv_img_decoder_built_in_read_line+0x310>)
c94a: f240 2235 movw r2, #565 ; 0x235
c94e: 2002 movs r0, #2
c950: 47a8 blx r5
lv_res_t res = LV_RES_INV;
c952: f04f 0900 mov.w r9, #0
c956: e06d b.n ca34 <lv_img_decoder_built_in_read_line+0x17c>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
c958: f1a3 020b sub.w r2, r3, #11
c95c: 2a03 cmp r2, #3
c95e: f200 80ce bhi.w cafe <lv_img_decoder_built_in_read_line+0x246>
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)*/
c962: f44f 437f mov.w r3, #65280 ; 0xff00
c966: f8ad 3018 strh.w r3, [sp, #24]
const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
c96a: f5a3 03ad sub.w r3, r3, #5668864 ; 0x568000
c96e: f5a3 5328 sub.w r3, r3, #10752 ; 0x2a00
c972: 9307 str r3, [sp, #28]
const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
c974: 4b97 ldr r3, [pc, #604] ; (cbd4 <lv_img_decoder_built_in_read_line+0x31c>)
c976: aa08 add r2, sp, #32
c978: f103 0e10 add.w lr, r3, #16
c97c: 4617 mov r7, r2
c97e: 6818 ldr r0, [r3, #0]
c980: 6859 ldr r1, [r3, #4]
c982: 4694 mov ip, r2
c984: e8ac 0003 stmia.w ip!, {r0, r1}
c988: 3308 adds r3, #8
c98a: 4573 cmp r3, lr
c98c: 4662 mov r2, ip
c98e: d1f6 bne.n c97e <lv_img_decoder_built_in_read_line+0xc6>
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;
c990: 8929 ldrh r1, [r5, #8]
lv_coord_t i;
for(i = 0; i < len; i++) {
c992: 4633 mov r3, r6
#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;
c994: ea4f 2c11 mov.w ip, r1, lsr #8
for(i = 0; i < len; i++) {
c998: 2200 movs r2, #0
c99a: b210 sxth r0, r2
c99c: 4582 cmp sl, r0
c99e: f103 0303 add.w r3, r3, #3
c9a2: dc14 bgt.n c9ce <lv_img_decoder_built_in_read_line+0x116>
#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);
c9a4: 7b28 ldrb r0, [r5, #12]
c9a6: 4b83 ldr r3, [pc, #524] ; (cbb4 <lv_img_decoder_built_in_read_line+0x2fc>)
c9a8: f000 001f and.w r0, r0, #31
c9ac: 4798 blx r3
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
c9ae: 2301 movs r3, #1
c9b0: 4083 lsls r3, r0
c9b2: 3b01 subs r3, #1
c9b4: b29b uxth r3, r3
c9b6: 9304 str r3, [sp, #16]
lv_coord_t w = 0;
uint32_t ofs = 0;
int8_t pos = 0;
switch(dsc->header.cf) {
c9b8: 7b2b ldrb r3, [r5, #12]
c9ba: f003 031f and.w r3, r3, #31
c9be: 3b0b subs r3, #11
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
c9c0: 4681 mov r9, r0
switch(dsc->header.cf) {
c9c2: 2b03 cmp r3, #3
c9c4: d86a bhi.n ca9c <lv_img_decoder_built_in_read_line+0x1e4>
c9c6: e8df f003 tbb [pc, r3]
c9ca: 3908 .short 0x3908
c9cc: 604d .short 0x604d
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF;
c9ce: f803 1c03 strb.w r1, [r3, #-3]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
c9d2: f803 cc02 strb.w ip, [r3, #-2]
for(i = 0; i < len; i++) {
c9d6: 3201 adds r2, #1
c9d8: e7df b.n c99a <lv_img_decoder_built_in_read_line+0xe2>
case LV_IMG_CF_ALPHA_1BIT:
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
c9da: 68eb ldr r3, [r5, #12]
c9dc: f3c3 3247 ubfx r2, r3, #13, #8
if(dsc->header.w & 0x7) w++;
c9e0: f413 5fe0 tst.w r3, #7168 ; 0x1c00
ofs += w * y + (x >> 3); /*First pixel*/
c9e4: ea4f 01e4 mov.w r1, r4, asr #3
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
c9e8: bf0c ite eq
c9ea: fa0f fb82 sxtheq.w fp, r2
if(dsc->header.w & 0x7) w++;
c9ee: f102 0b01 addne.w fp, r2, #1
pos = 7 - (x & 0x7);
c9f2: 43e4 mvns r4, r4
ofs += w * y + (x >> 3); /*First pixel*/
c9f4: fb0b 1108 mla r1, fp, r8, r1
pos = 7 - (x & 0x7);
c9f8: f004 0407 and.w r4, r4, #7
opa_table = alpha1_opa_table;
c9fc: af06 add r7, sp, #24
pos = 0;
break;
}
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
c9fe: 69eb ldr r3, [r5, #28]
ca00: 9303 str r3, [sp, #12]
uint8_t * fs_buf = _lv_mem_buf_get(w);
ca02: 4658 mov r0, fp
ca04: 4b74 ldr r3, [pc, #464] ; (cbd8 <lv_img_decoder_built_in_read_line+0x320>)
ca06: 9105 str r1, [sp, #20]
ca08: 4798 blx r3
#endif
const uint8_t * data_tmp = NULL;
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
ca0a: 7aab ldrb r3, [r5, #10]
ca0c: 9905 ldr r1, [sp, #20]
uint8_t * fs_buf = _lv_mem_buf_get(w);
ca0e: 4680 mov r8, r0
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
ca10: 2b00 cmp r3, #0
ca12: d147 bne.n caa4 <lv_img_decoder_built_in_read_line+0x1ec>
const lv_img_dsc_t * img_dsc = dsc->src;
data_tmp = img_dsc->data + ofs;
ca14: 686b ldr r3, [r5, #4]
ca16: 689b ldr r3, [r3, #8]
ca18: 4419 add r1, r3
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];
pos -= px_size;
if(pos < 0) {
pos = 8 - px_size;
ca1a: f1c9 0008 rsb r0, r9, #8
data_tmp = fs_buf;
ca1e: 2300 movs r3, #0
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
ca20: 3602 adds r6, #2
pos = 8 - px_size;
ca22: b240 sxtb r0, r0
for(i = 0; i < len; i++) {
ca24: b21a sxth r2, r3
ca26: 4592 cmp sl, r2
ca28: dc4b bgt.n cac2 <lv_img_decoder_built_in_read_line+0x20a>
pos = 8 - px_size;
data_tmp++;
}
}
#if LV_USE_FILESYSTEM
_lv_mem_buf_release(fs_buf);
ca2a: 4b6c ldr r3, [pc, #432] ; (cbdc <lv_img_decoder_built_in_read_line+0x324>)
ca2c: 4640 mov r0, r8
ca2e: 4798 blx r3
res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf);
ca30: f04f 0901 mov.w r9, #1
}
ca34: 4648 mov r0, r9
ca36: b00d add sp, #52 ; 0x34
ca38: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
ca3c: 68eb ldr r3, [r5, #12]
ofs += w * y + (x >> 2); /*First pixel*/
ca3e: 10a1 asrs r1, r4, #2
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
ca40: f3c3 3208 ubfx r2, r3, #12, #9
if(dsc->header.w & 0x3) w++;
ca44: f413 6f40 tst.w r3, #3072 ; 0xc00
pos = 6 - ((x & 0x3) * 2);
ca48: ea6f 0404 mvn.w r4, r4
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
ca4c: bf0c ite eq
ca4e: fa0f fb82 sxtheq.w fp, r2
if(dsc->header.w & 0x3) w++;
ca52: f102 0b01 addne.w fp, r2, #1
pos = 6 - ((x & 0x3) * 2);
ca56: f004 0403 and.w r4, r4, #3
ofs += w * y + (x >> 2); /*First pixel*/
ca5a: fb0b 1108 mla r1, fp, r8, r1
pos = 6 - ((x & 0x3) * 2);
ca5e: 0064 lsls r4, r4, #1
opa_table = alpha2_opa_table;
ca60: af07 add r7, sp, #28
break;
ca62: e7cc b.n c9fe <lv_img_decoder_built_in_read_line+0x146>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
ca64: 68eb ldr r3, [r5, #12]
if(dsc->header.w & 0x1) w++;
ca66: 0559 lsls r1, r3, #21
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
ca68: f3c3 22c9 ubfx r2, r3, #11, #10
ofs += w * y + (x >> 1); /*First pixel*/
ca6c: ea4f 0164 mov.w r1, r4, asr #1
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
ca70: bf54 ite pl
ca72: fa0f fb82 sxthpl.w fp, r2
if(dsc->header.w & 0x1) w++;
ca76: f102 0b01 addmi.w fp, r2, #1
pos = 4 - ((x & 0x1) * 4);
ca7a: f014 0f01 tst.w r4, #1
ofs += w * y + (x >> 1); /*First pixel*/
ca7e: fb0b 1108 mla r1, fp, r8, r1
pos = 4 - ((x & 0x1) * 4);
ca82: bf0c ite eq
ca84: 2404 moveq r4, #4
ca86: 2400 movne r4, #0
ca88: e7b9 b.n c9fe <lv_img_decoder_built_in_read_line+0x146>
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
ca8a: 68ea ldr r2, [r5, #12]
ca8c: f3c2 218a ubfx r1, r2, #10, #11
ca90: 468b mov fp, r1
ofs += w * y + x; /*First pixel*/
ca92: fb18 4101 smlabb r1, r8, r1, r4
pos = 0;
ca96: 2400 movs r4, #0
switch(dsc->header.cf) {
ca98: 4627 mov r7, r4
ca9a: e7b0 b.n c9fe <lv_img_decoder_built_in_read_line+0x146>
ca9c: 2400 movs r4, #0
ca9e: 4621 mov r1, r4
caa0: 46a3 mov fp, r4
caa2: e7f9 b.n ca98 <lv_img_decoder_built_in_read_line+0x1e0>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
caa4: 9b03 ldr r3, [sp, #12]
caa6: 3104 adds r1, #4
caa8: 6818 ldr r0, [r3, #0]
caaa: 4b43 ldr r3, [pc, #268] ; (cbb8 <lv_img_decoder_built_in_read_line+0x300>)
caac: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
caae: 9803 ldr r0, [sp, #12]
cab0: 465a mov r2, fp
cab2: 4641 mov r1, r8
cab4: 6800 ldr r0, [r0, #0]
cab6: f8df b114 ldr.w fp, [pc, #276] ; cbcc <lv_img_decoder_built_in_read_line+0x314>
caba: 2300 movs r3, #0
cabc: 47d8 blx fp
data_tmp = fs_buf;
cabe: 4641 mov r1, r8
cac0: e7ab b.n ca1a <lv_img_decoder_built_in_read_line+0x162>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
cac2: 9a04 ldr r2, [sp, #16]
cac4: f891 e000 ldrb.w lr, [r1]
cac8: fa02 fc04 lsl.w ip, r2, r4
cacc: ea0e 020c and.w r2, lr, ip
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
cad0: f895 c00c ldrb.w ip, [r5, #12]
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
cad4: 4122 asrs r2, r4
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cad6: f00c 0c1f and.w ip, ip, #31
cada: b2d2 uxtb r2, r2
pos -= px_size;
cadc: eba4 0409 sub.w r4, r4, r9
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cae0: f1bc 0f0e cmp.w ip, #14
pos -= px_size;
cae4: b264 sxtb r4, r4
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cae6: eb03 0c43 add.w ip, r3, r3, lsl #1
caea: bf18 it ne
caec: 5cba ldrbne r2, [r7, r2]
caee: f806 200c strb.w r2, [r6, ip]
if(pos < 0) {
caf2: 2c00 cmp r4, #0
pos = 8 - px_size;
caf4: bfbc itt lt
caf6: 4604 movlt r4, r0
data_tmp++;
caf8: 3101 addlt r1, #1
for(i = 0; i < len; i++) {
cafa: 3301 adds r3, #1
cafc: e792 b.n ca24 <lv_img_decoder_built_in_read_line+0x16c>
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT ||
cafe: 3b07 subs r3, #7
cb00: 2b03 cmp r3, #3
cb02: f200 80af bhi.w cc64 <lv_img_decoder_built_in_read_line+0x3ac>
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cb06: 4b2b ldr r3, [pc, #172] ; (cbb4 <lv_img_decoder_built_in_read_line+0x2fc>)
cb08: f000 001f and.w r0, r0, #31
cb0c: 4798 blx r3
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
cb0e: 2701 movs r7, #1
cb10: 4087 lsls r7, r0
cb12: 3f01 subs r7, #1
cb14: b2bb uxth r3, r7
cb16: 9303 str r3, [sp, #12]
switch(dsc->header.cf) {
cb18: 7b2b ldrb r3, [r5, #12]
cb1a: f003 031f and.w r3, r3, #31
cb1e: 3b07 subs r3, #7
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cb20: 4681 mov r9, r0
switch(dsc->header.cf) {
cb22: 2b03 cmp r3, #3
cb24: f200 808c bhi.w cc40 <lv_img_decoder_built_in_read_line+0x388>
cb28: e8df f003 tbb [pc, r3]
cb2c: 806d5a02 .word 0x806d5a02
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cb30: 68eb ldr r3, [r5, #12]
cb32: f3c3 3247 ubfx r2, r3, #13, #8
if(dsc->header.w & 0x7) w++;
cb36: f413 5fe0 tst.w r3, #7168 ; 0x1c00
ofs += w * y + (x >> 3); /*First pixel*/
cb3a: ea4f 01e4 mov.w r1, r4, asr #3
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cb3e: bf0c ite eq
cb40: b217 sxtheq r7, r2
if(dsc->header.w & 0x7) w++;
cb42: 1c57 addne r7, r2, #1
ofs += w * y + (x >> 3); /*First pixel*/
cb44: fb07 1808 mla r8, r7, r8, r1
pos = 7 - (x & 0x7);
cb48: 43e4 mvns r4, r4
ofs += 8; /*Skip the palette*/
cb4a: f108 0108 add.w r1, r8, #8
pos = 7 - (x & 0x7);
cb4e: f004 0407 and.w r4, r4, #7
uint8_t * fs_buf = _lv_mem_buf_get(w);
cb52: 4b21 ldr r3, [pc, #132] ; (cbd8 <lv_img_decoder_built_in_read_line+0x320>)
cb54: 9104 str r1, [sp, #16]
cb56: 4638 mov r0, r7
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cb58: f8d5 b01c ldr.w fp, [r5, #28]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cb5c: 4798 blx r3
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cb5e: 7aab ldrb r3, [r5, #10]
cb60: 9904 ldr r1, [sp, #16]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cb62: 4680 mov r8, r0
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cb64: 2b00 cmp r3, #0
cb66: d16f bne.n cc48 <lv_img_decoder_built_in_read_line+0x390>
data_tmp = img_dsc->data + ofs;
cb68: 686b ldr r3, [r5, #4]
cb6a: 689b ldr r3, [r3, #8]
cb6c: 4419 add r1, r3
pos = 8 - px_size;
cb6e: f1c9 0508 rsb r5, r9, #8
data_tmp = fs_buf;
cb72: 2000 movs r0, #0
pos = 8 - px_size;
cb74: b26d sxtb r5, r5
for(i = 0; i < len; i++) {
cb76: b203 sxth r3, r0
cb78: 459a cmp sl, r3
cb7a: f77f af56 ble.w ca2a <lv_img_decoder_built_in_read_line+0x172>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
cb7e: 9a03 ldr r2, [sp, #12]
cb80: 780b ldrb r3, [r1, #0]
cb82: 40a2 lsls r2, r4
cb84: 4013 ands r3, r2
cb86: 4123 asrs r3, r4
lv_color_t color = user_data->palette[val_act];
cb88: f8db 2004 ldr.w r2, [fp, #4]
cb8c: b2db uxtb r3, r3
pos -= px_size;
cb8e: eba4 0409 sub.w r4, r4, r9
lv_color_t color = user_data->palette[val_act];
cb92: f832 2013 ldrh.w r2, [r2, r3, lsl #1]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF;
cb96: 7032 strb r2, [r6, #0]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF;
cb98: 0a12 lsrs r2, r2, #8
cb9a: 7072 strb r2, [r6, #1]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
cb9c: f8db 2008 ldr.w r2, [fp, #8]
pos -= px_size;
cba0: b264 sxtb r4, r4
if(pos < 0) {
cba2: 2c00 cmp r4, #0
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
cba4: 5cd3 ldrb r3, [r2, r3]
cba6: 70b3 strb r3, [r6, #2]
pos = 8 - px_size;
cba8: bfbc itt lt
cbaa: 462c movlt r4, r5
data_tmp++;
cbac: 3101 addlt r1, #1
for(i = 0; i < len; i++) {
cbae: 3001 adds r0, #1
cbb0: 3603 adds r6, #3
cbb2: e7e0 b.n cb76 <lv_img_decoder_built_in_read_line+0x2be>
cbb4: 00007579 .word 0x00007579
cbb8: 0000e497 .word 0x0000e497
cbbc: 0001fffc .word 0x0001fffc
cbc0: 0002013d .word 0x0002013d
cbc4: 0001ff7b .word 0x0001ff7b
cbc8: 0000e931 .word 0x0000e931
cbcc: 0000e461 .word 0x0000e461
cbd0: 0002001f .word 0x0002001f
cbd4: 00020165 .word 0x00020165
cbd8: 0000eefd .word 0x0000eefd
cbdc: 0000ebb1 .word 0x0000ebb1
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cbe0: 68eb ldr r3, [r5, #12]
cbe2: f3c3 3208 ubfx r2, r3, #12, #9
if(dsc->header.w & 0x3) w++;
cbe6: f413 6f40 tst.w r3, #3072 ; 0xc00
ofs += w * y + (x >> 2); /*First pixel*/
cbea: ea4f 01a4 mov.w r1, r4, asr #2
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cbee: bf0c ite eq
cbf0: b217 sxtheq r7, r2
if(dsc->header.w & 0x3) w++;
cbf2: 1c57 addne r7, r2, #1
pos = 6 - ((x & 0x3) * 2);
cbf4: 43e4 mvns r4, r4
ofs += w * y + (x >> 2); /*First pixel*/
cbf6: fb07 1808 mla r8, r7, r8, r1
pos = 6 - ((x & 0x3) * 2);
cbfa: f004 0403 and.w r4, r4, #3
ofs += 16; /*Skip the palette*/
cbfe: f108 0110 add.w r1, r8, #16
pos = 6 - ((x & 0x3) * 2);
cc02: 0064 lsls r4, r4, #1
break;
cc04: e7a5 b.n cb52 <lv_img_decoder_built_in_read_line+0x29a>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
cc06: 68eb ldr r3, [r5, #12]
cc08: f3c3 22c9 ubfx r2, r3, #11, #10
if(dsc->header.w & 0x1) w++;
cc0c: 055b lsls r3, r3, #21
ofs += w * y + (x >> 1); /*First pixel*/
cc0e: ea4f 0164 mov.w r1, r4, asr #1
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
cc12: bf54 ite pl
cc14: b217 sxthpl r7, r2
if(dsc->header.w & 0x1) w++;
cc16: 1c57 addmi r7, r2, #1
ofs += w * y + (x >> 1); /*First pixel*/
cc18: fb07 1808 mla r8, r7, r8, r1
pos = 4 - ((x & 0x1) * 4);
cc1c: f014 0f01 tst.w r4, #1
ofs += 64; /*Skip the palette*/
cc20: f108 0140 add.w r1, r8, #64 ; 0x40
pos = 4 - ((x & 0x1) * 4);
cc24: bf0c ite eq
cc26: 2404 moveq r4, #4
cc28: 2400 movne r4, #0
cc2a: e792 b.n cb52 <lv_img_decoder_built_in_read_line+0x29a>
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
cc2c: 68ef ldr r7, [r5, #12]
cc2e: f3c7 218a ubfx r1, r7, #10, #11
ofs += w * y + x; /*First pixel*/
cc32: fb18 4801 smlabb r8, r8, r1, r4
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
cc36: 460f mov r7, r1
pos = 0;
cc38: 2400 movs r4, #0
ofs += 1024; /*Skip the palette*/
cc3a: f508 6180 add.w r1, r8, #1024 ; 0x400
break;
cc3e: e788 b.n cb52 <lv_img_decoder_built_in_read_line+0x29a>
switch(dsc->header.cf) {
cc40: 2100 movs r1, #0
cc42: 460c mov r4, r1
cc44: 460f mov r7, r1
cc46: e784 b.n cb52 <lv_img_decoder_built_in_read_line+0x29a>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
cc48: 4b09 ldr r3, [pc, #36] ; (cc70 <lv_img_decoder_built_in_read_line+0x3b8>)
cc4a: f8db 0000 ldr.w r0, [fp]
lv_fs_read(user_data->f, fs_buf, w, NULL);
cc4e: 4d09 ldr r5, [pc, #36] ; (cc74 <lv_img_decoder_built_in_read_line+0x3bc>)
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
cc50: 3104 adds r1, #4
cc52: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
cc54: 4641 mov r1, r8
cc56: f8db 0000 ldr.w r0, [fp]
cc5a: 2300 movs r3, #0
cc5c: 463a mov r2, r7
cc5e: 47a8 blx r5
data_tmp = fs_buf;
cc60: 4641 mov r1, r8
cc62: e784 b.n cb6e <lv_img_decoder_built_in_read_line+0x2b6>
LV_LOG_WARN("Built-in image decoder read not supports the color format");
cc64: 4b04 ldr r3, [pc, #16] ; (cc78 <lv_img_decoder_built_in_read_line+0x3c0>)
cc66: 9300 str r3, [sp, #0]
cc68: f44f 72fe mov.w r2, #508 ; 0x1fc
cc6c: 4b03 ldr r3, [pc, #12] ; (cc7c <lv_img_decoder_built_in_read_line+0x3c4>)
cc6e: e653 b.n c918 <lv_img_decoder_built_in_read_line+0x60>
cc70: 0000e497 .word 0x0000e497
cc74: 0000e461 .word 0x0000e461
cc78: 00020042 .word 0x00020042
cc7c: 00020175 .word 0x00020175
0000cc80 <lv_img_decoder_built_in_open>:
{
cc80: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
cc84: 4606 mov r6, r0
if(dsc->src_type == LV_IMG_SRC_FILE) {
cc86: 7a88 ldrb r0, [r1, #10]
cc88: 2801 cmp r0, #1
{
cc8a: 460c mov r4, r1
if(dsc->src_type == LV_IMG_SRC_FILE) {
cc8c: d178 bne.n cd80 <lv_img_decoder_built_in_open+0x100>
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
cc8e: 6848 ldr r0, [r1, #4]
cc90: 4b8b ldr r3, [pc, #556] ; (cec0 <lv_img_decoder_built_in_open+0x240>)
cc92: 4798 blx r3
cc94: 498b ldr r1, [pc, #556] ; (cec4 <lv_img_decoder_built_in_open+0x244>)
cc96: 4b8c ldr r3, [pc, #560] ; (cec8 <lv_img_decoder_built_in_open+0x248>)
cc98: 4798 blx r3
cc9a: 2800 cmp r0, #0
cc9c: f040 80a9 bne.w cdf2 <lv_img_decoder_built_in_open+0x172>
lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD);
cca0: 6861 ldr r1, [r4, #4]
cca2: 4b8a ldr r3, [pc, #552] ; (cecc <lv_img_decoder_built_in_open+0x24c>)
cca4: 2202 movs r2, #2
cca6: a802 add r0, sp, #8
cca8: 4798 blx r3
if(res != LV_FS_RES_OK) {
ccaa: b138 cbz r0, ccbc <lv_img_decoder_built_in_open+0x3c>
LV_LOG_WARN("Built-in image decoder can't open the file");
ccac: 4b88 ldr r3, [pc, #544] ; (ced0 <lv_img_decoder_built_in_open+0x250>)
ccae: 9300 str r3, [sp, #0]
ccb0: 4b88 ldr r3, [pc, #544] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ccb2: f44f 72a6 mov.w r2, #332 ; 0x14c
LV_LOG_WARN("Image decoder open: unknown color format")
ccb6: 4988 ldr r1, [pc, #544] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
ccb8: 2002 movs r0, #2
ccba: e022 b.n cd02 <lv_img_decoder_built_in_open+0x82>
if(dsc->user_data == NULL) {
ccbc: 69e3 ldr r3, [r4, #28]
ccbe: f8df 923c ldr.w r9, [pc, #572] ; cefc <lv_img_decoder_built_in_open+0x27c>
ccc2: f8df 823c ldr.w r8, [pc, #572] ; cf00 <lv_img_decoder_built_in_open+0x280>
ccc6: bb13 cbnz r3, cd0e <lv_img_decoder_built_in_open+0x8e>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
ccc8: 200c movs r0, #12
ccca: 47c8 blx r9
cccc: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
ccce: 47c0 blx r8
ccd0: 4605 mov r5, r0
ccd2: b968 cbnz r0, ccf0 <lv_img_decoder_built_in_open+0x70>
ccd4: 4b7f ldr r3, [pc, #508] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ccd6: 4980 ldr r1, [pc, #512] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
ccd8: 9300 str r3, [sp, #0]
ccda: f240 1253 movw r2, #339 ; 0x153
ccde: 2003 movs r0, #3
cce0: 4e7e ldr r6, [pc, #504] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cce2: 47b0 blx r6
cce4: 69e2 ldr r2, [r4, #28]
cce6: 487e ldr r0, [pc, #504] ; (cee0 <lv_img_decoder_built_in_open+0x260>)
cce8: 497e ldr r1, [pc, #504] ; (cee4 <lv_img_decoder_built_in_open+0x264>)
ccea: 462b mov r3, r5
ccec: 4788 blx r1
ccee: e7fe b.n ccee <lv_img_decoder_built_in_open+0x6e>
if(dsc->user_data == NULL) {
ccf0: 69e0 ldr r0, [r4, #28]
ccf2: b948 cbnz r0, cd08 <lv_img_decoder_built_in_open+0x88>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
ccf4: 4b7c ldr r3, [pc, #496] ; (cee8 <lv_img_decoder_built_in_open+0x268>)
ccf6: 9300 str r3, [sp, #0]
ccf8: 4977 ldr r1, [pc, #476] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
ccfa: 4b76 ldr r3, [pc, #472] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ccfc: f240 1255 movw r2, #341 ; 0x155
cd00: 2003 movs r0, #3
LV_LOG_WARN("Image decoder open: unknown color format")
cd02: 4c76 ldr r4, [pc, #472] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cd04: 47a0 blx r4
cd06: e074 b.n cdf2 <lv_img_decoder_built_in_open+0x172>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
cd08: 4b78 ldr r3, [pc, #480] ; (ceec <lv_img_decoder_built_in_open+0x26c>)
cd0a: 210c movs r1, #12
cd0c: 4798 blx r3
user_data->f = lv_mem_alloc(sizeof(f));
cd0e: 2008 movs r0, #8
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cd10: 69e7 ldr r7, [r4, #28]
user_data->f = lv_mem_alloc(sizeof(f));
cd12: 47c8 blx r9
cd14: 6038 str r0, [r7, #0]
LV_ASSERT_MEM(user_data->f);
cd16: 47c0 blx r8
cd18: 4605 mov r5, r0
cd1a: b968 cbnz r0, cd38 <lv_img_decoder_built_in_open+0xb8>
cd1c: 4b6d ldr r3, [pc, #436] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
cd1e: 496e ldr r1, [pc, #440] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
cd20: 9300 str r3, [sp, #0]
cd22: f240 125d movw r2, #349 ; 0x15d
cd26: 2003 movs r0, #3
cd28: 4c6c ldr r4, [pc, #432] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cd2a: 47a0 blx r4
cd2c: 683a ldr r2, [r7, #0]
cd2e: 486c ldr r0, [pc, #432] ; (cee0 <lv_img_decoder_built_in_open+0x260>)
cd30: 496c ldr r1, [pc, #432] ; (cee4 <lv_img_decoder_built_in_open+0x264>)
cd32: 462b mov r3, r5
cd34: 4788 blx r1
cd36: e7fe b.n cd36 <lv_img_decoder_built_in_open+0xb6>
if(user_data->f == NULL) {
cd38: 683b ldr r3, [r7, #0]
cd3a: b94b cbnz r3, cd50 <lv_img_decoder_built_in_open+0xd0>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cd3c: 4b6a ldr r3, [pc, #424] ; (cee8 <lv_img_decoder_built_in_open+0x268>)
cd3e: 9300 str r3, [sp, #0]
cd40: 4b64 ldr r3, [pc, #400] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
cd42: f240 125f movw r2, #351 ; 0x15f
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cd46: 4964 ldr r1, [pc, #400] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
cd48: 4d64 ldr r5, [pc, #400] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cd4a: 2003 movs r0, #3
cd4c: 47a8 blx r5
cd4e: e04c b.n cdea <lv_img_decoder_built_in_open+0x16a>
cd50: aa02 add r2, sp, #8
cd52: f103 0108 add.w r1, r3, #8
*d8 = *s8;
cd56: f812 0b01 ldrb.w r0, [r2], #1
cd5a: f803 0b01 strb.w r0, [r3], #1
while(len) {
cd5e: 428b cmp r3, r1
cd60: d1f9 bne.n cd56 <lv_img_decoder_built_in_open+0xd6>
lv_img_cf_t cf = dsc->header.cf;
cd62: 7b23 ldrb r3, [r4, #12]
cd64: f003 001f and.w r0, r3, #31
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
cd68: 1f02 subs r2, r0, #4
cd6a: 2a02 cmp r2, #2
cd6c: d811 bhi.n cd92 <lv_img_decoder_built_in_open+0x112>
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cd6e: 7aa3 ldrb r3, [r4, #10]
cd70: 2b00 cmp r3, #0
cd72: f040 8087 bne.w ce84 <lv_img_decoder_built_in_open+0x204>
dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data;
cd76: 6863 ldr r3, [r4, #4]
cd78: 689b ldr r3, [r3, #8]
dsc->img_data = NULL;
cd7a: 6123 str r3, [r4, #16]
return LV_RES_OK;
cd7c: 2001 movs r0, #1
cd7e: e005 b.n cd8c <lv_img_decoder_built_in_open+0x10c>
else if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cd80: 2800 cmp r0, #0
cd82: d1ee bne.n cd62 <lv_img_decoder_built_in_open+0xe2>
if(((lv_img_dsc_t *)dsc->src)->data == NULL) {
cd84: 684a ldr r2, [r1, #4]
cd86: 6892 ldr r2, [r2, #8]
cd88: 2a00 cmp r2, #0
cd8a: d1ea bne.n cd62 <lv_img_decoder_built_in_open+0xe2>
}
cd8c: b004 add sp, #16
cd8e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT ||
cd92: 1fc2 subs r2, r0, #7
cd94: 2a03 cmp r2, #3
cd96: f200 80d4 bhi.w cf42 <lv_img_decoder_built_in_open+0x2c2>
uint8_t px_size = lv_img_cf_get_px_size(cf);
cd9a: 4b55 ldr r3, [pc, #340] ; (cef0 <lv_img_decoder_built_in_open+0x270>)
cd9c: f8df 915c ldr.w r9, [pc, #348] ; cefc <lv_img_decoder_built_in_open+0x27c>
cda0: f8df 815c ldr.w r8, [pc, #348] ; cf00 <lv_img_decoder_built_in_open+0x280>
cda4: 4798 blx r3
if(dsc->user_data == NULL) {
cda6: 69e3 ldr r3, [r4, #28]
uint8_t px_size = lv_img_cf_get_px_size(cf);
cda8: 4607 mov r7, r0
if(dsc->user_data == NULL) {
cdaa: bb43 cbnz r3, cdfe <lv_img_decoder_built_in_open+0x17e>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
cdac: 200c movs r0, #12
cdae: 47c8 blx r9
cdb0: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
cdb2: 47c0 blx r8
cdb4: 4605 mov r5, r0
cdb6: b968 cbnz r0, cdd4 <lv_img_decoder_built_in_open+0x154>
cdb8: 4b46 ldr r3, [pc, #280] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
cdba: 4947 ldr r1, [pc, #284] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
cdbc: 9300 str r3, [sp, #0]
cdbe: f44f 72c6 mov.w r2, #396 ; 0x18c
cdc2: 2003 movs r0, #3
cdc4: 4e45 ldr r6, [pc, #276] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cdc6: 47b0 blx r6
cdc8: 69e2 ldr r2, [r4, #28]
cdca: 4845 ldr r0, [pc, #276] ; (cee0 <lv_img_decoder_built_in_open+0x260>)
cdcc: 4945 ldr r1, [pc, #276] ; (cee4 <lv_img_decoder_built_in_open+0x264>)
cdce: 462b mov r3, r5
cdd0: 4788 blx r1
cdd2: e7fe b.n cdd2 <lv_img_decoder_built_in_open+0x152>
if(dsc->user_data == NULL) {
cdd4: 69e5 ldr r5, [r4, #28]
cdd6: b975 cbnz r5, cdf6 <lv_img_decoder_built_in_open+0x176>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cdd8: 4b43 ldr r3, [pc, #268] ; (cee8 <lv_img_decoder_built_in_open+0x268>)
cdda: 9300 str r3, [sp, #0]
cddc: 493e ldr r1, [pc, #248] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
cdde: 4b3d ldr r3, [pc, #244] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
cde0: 4f3e ldr r7, [pc, #248] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
cde2: f44f 72c7 mov.w r2, #398 ; 0x18e
cde6: 2003 movs r0, #3
cde8: 47b8 blx r7
lv_img_decoder_built_in_close(decoder, dsc);
cdea: 4b42 ldr r3, [pc, #264] ; (cef4 <lv_img_decoder_built_in_open+0x274>)
cdec: 4621 mov r1, r4
cdee: 4630 mov r0, r6
cdf0: 4798 blx r3
return LV_RES_INV;
cdf2: 2000 movs r0, #0
cdf4: e7ca b.n cd8c <lv_img_decoder_built_in_open+0x10c>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
cdf6: 4b3d ldr r3, [pc, #244] ; (ceec <lv_img_decoder_built_in_open+0x26c>)
cdf8: 210c movs r1, #12
cdfa: 4628 mov r0, r5
cdfc: 4798 blx r3
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
cdfe: 2002 movs r0, #2
ce00: 40b8 lsls r0, r7
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
ce02: 69e5 ldr r5, [r4, #28]
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
ce04: 47c8 blx r9
ce06: 6068 str r0, [r5, #4]
LV_ASSERT_MEM(user_data->palette);
ce08: 47c0 blx r8
ce0a: 4682 mov sl, r0
ce0c: b968 cbnz r0, ce2a <lv_img_decoder_built_in_open+0x1aa>
ce0e: 4b31 ldr r3, [pc, #196] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ce10: 4931 ldr r1, [pc, #196] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
ce12: 9300 str r3, [sp, #0]
ce14: f240 1297 movw r2, #407 ; 0x197
ce18: 2003 movs r0, #3
ce1a: 4c30 ldr r4, [pc, #192] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
ce1c: 47a0 blx r4
ce1e: 686a ldr r2, [r5, #4]
ce20: 482f ldr r0, [pc, #188] ; (cee0 <lv_img_decoder_built_in_open+0x260>)
ce22: 4930 ldr r1, [pc, #192] ; (cee4 <lv_img_decoder_built_in_open+0x264>)
ce24: 4653 mov r3, sl
ce26: 4788 blx r1
ce28: e7fe b.n ce28 <lv_img_decoder_built_in_open+0x1a8>
uint32_t palette_size = 1 << px_size;
ce2a: 2001 movs r0, #1
ce2c: fa00 f707 lsl.w r7, r0, r7
user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t));
ce30: 4638 mov r0, r7
ce32: 47c8 blx r9
ce34: 60a8 str r0, [r5, #8]
LV_ASSERT_MEM(user_data->opa);
ce36: 47c0 blx r8
ce38: 4680 mov r8, r0
ce3a: b968 cbnz r0, ce58 <lv_img_decoder_built_in_open+0x1d8>
ce3c: 4b25 ldr r3, [pc, #148] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ce3e: 4926 ldr r1, [pc, #152] ; (ced8 <lv_img_decoder_built_in_open+0x258>)
ce40: 9300 str r3, [sp, #0]
ce42: f240 1299 movw r2, #409 ; 0x199
ce46: 2003 movs r0, #3
ce48: 4c24 ldr r4, [pc, #144] ; (cedc <lv_img_decoder_built_in_open+0x25c>)
ce4a: 47a0 blx r4
ce4c: 68aa ldr r2, [r5, #8]
ce4e: 4824 ldr r0, [pc, #144] ; (cee0 <lv_img_decoder_built_in_open+0x260>)
ce50: 4924 ldr r1, [pc, #144] ; (cee4 <lv_img_decoder_built_in_open+0x264>)
ce52: 4643 mov r3, r8
ce54: 4788 blx r1
ce56: e7fe b.n ce56 <lv_img_decoder_built_in_open+0x1d6>
if(user_data->palette == NULL || user_data->opa == NULL) {
ce58: 686b ldr r3, [r5, #4]
ce5a: b10b cbz r3, ce60 <lv_img_decoder_built_in_open+0x1e0>
ce5c: 68ab ldr r3, [r5, #8]
ce5e: b92b cbnz r3, ce6c <lv_img_decoder_built_in_open+0x1ec>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
ce60: 4b21 ldr r3, [pc, #132] ; (cee8 <lv_img_decoder_built_in_open+0x268>)
ce62: 9300 str r3, [sp, #0]
ce64: f240 129b movw r2, #411 ; 0x19b
ce68: 4b1a ldr r3, [pc, #104] ; (ced4 <lv_img_decoder_built_in_open+0x254>)
ce6a: e76c b.n cd46 <lv_img_decoder_built_in_open+0xc6>
if(dsc->src_type == LV_IMG_SRC_FILE) {
ce6c: 7aa3 ldrb r3, [r4, #10]
ce6e: 2b01 cmp r3, #1
ce70: d14a bne.n cf08 <lv_img_decoder_built_in_open+0x288>
lv_fs_seek(user_data->f, 4); /*Skip the header*/
ce72: 6828 ldr r0, [r5, #0]
ce74: 4b20 ldr r3, [pc, #128] ; (cef8 <lv_img_decoder_built_in_open+0x278>)
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
ce76: f8df 808c ldr.w r8, [pc, #140] ; cf04 <lv_img_decoder_built_in_open+0x284>
lv_fs_seek(user_data->f, 4); /*Skip the header*/
ce7a: 2104 movs r1, #4
ce7c: 4798 blx r3
for(i = 0; i < palette_size; i++) {
ce7e: 2600 movs r6, #0
ce80: 42be cmp r6, r7
ce82: d101 bne.n ce88 <lv_img_decoder_built_in_open+0x208>
dsc->img_data = NULL;
ce84: 2300 movs r3, #0
ce86: e778 b.n cd7a <lv_img_decoder_built_in_open+0xfa>
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
ce88: 2300 movs r3, #0
ce8a: 2204 movs r2, #4
ce8c: a902 add r1, sp, #8
ce8e: 6828 ldr r0, [r5, #0]
ce90: 47c0 blx r8
#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);
ce92: f89d 3009 ldrb.w r3, [sp, #9]
user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue);
ce96: 686a ldr r2, [r5, #4]
ce98: 0899 lsrs r1, r3, #2
ce9a: f89d 3008 ldrb.w r3, [sp, #8]
ce9e: 08db lsrs r3, r3, #3
cea0: ea43 1341 orr.w r3, r3, r1, lsl #5
cea4: f89d 100a ldrb.w r1, [sp, #10]
cea8: 08c9 lsrs r1, r1, #3
ceaa: ea43 23c1 orr.w r3, r3, r1, lsl #11
ceae: f822 3016 strh.w r3, [r2, r6, lsl #1]
user_data->opa[i] = cur_color.ch.alpha;
ceb2: 68ab ldr r3, [r5, #8]
ceb4: f89d 200b ldrb.w r2, [sp, #11]
ceb8: 559a strb r2, [r3, r6]
for(i = 0; i < palette_size; i++) {
ceba: 3601 adds r6, #1
cebc: e7e0 b.n ce80 <lv_img_decoder_built_in_open+0x200>
cebe: bf00 nop
cec0: 0000e5b5 .word 0x0000e5b5
cec4: 0002007c .word 0x0002007c
cec8: 00016359 .word 0x00016359
cecc: 0000e4e9 .word 0x0000e4e9
ced0: 00020080 .word 0x00020080
ced4: 00020197 .word 0x00020197
ced8: 0001ff7b .word 0x0001ff7b
cedc: 0000e931 .word 0x0000e931
cee0: 0001ee02 .word 0x0001ee02
cee4: 0000179d .word 0x0000179d
cee8: 000200ab .word 0x000200ab
ceec: 0000f061 .word 0x0000f061
cef0: 00007579 .word 0x00007579
cef4: 0000c885 .word 0x0000c885
cef8: 0000e497 .word 0x0000e497
cefc: 0000ea75 .word 0x0000ea75
cf00: 00001795 .word 0x00001795
cf04: 0000e461 .word 0x0000e461
lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data;
cf08: 6863 ldr r3, [r4, #4]
cf0a: 6899 ldr r1, [r3, #8]
for(i = 0; i < palette_size; i++) {
cf0c: 2000 movs r0, #0
cf0e: 42b8 cmp r0, r7
cf10: f101 0104 add.w r1, r1, #4
cf14: d0b6 beq.n ce84 <lv_img_decoder_built_in_open+0x204>
cf16: f811 3c03 ldrb.w r3, [r1, #-3]
user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue);
cf1a: 686a ldr r2, [r5, #4]
cf1c: 089e lsrs r6, r3, #2
cf1e: f811 3c04 ldrb.w r3, [r1, #-4]
cf22: 08db lsrs r3, r3, #3
cf24: ea43 1346 orr.w r3, r3, r6, lsl #5
cf28: f811 6c02 ldrb.w r6, [r1, #-2]
cf2c: 08f6 lsrs r6, r6, #3
cf2e: ea43 23c6 orr.w r3, r3, r6, lsl #11
cf32: f822 3010 strh.w r3, [r2, r0, lsl #1]
user_data->opa[i] = palette_p[i].ch.alpha;
cf36: 68ab ldr r3, [r5, #8]
cf38: f811 2c01 ldrb.w r2, [r1, #-1]
cf3c: 541a strb r2, [r3, r0]
for(i = 0; i < palette_size; i++) {
cf3e: 3001 adds r0, #1
cf40: e7e5 b.n cf0e <lv_img_decoder_built_in_open+0x28e>
else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT ||
cf42: f1a0 030b sub.w r3, r0, #11
cf46: 2b03 cmp r3, #3
cf48: d99c bls.n ce84 <lv_img_decoder_built_in_open+0x204>
lv_img_decoder_built_in_close(decoder, dsc);
cf4a: 4b05 ldr r3, [pc, #20] ; (cf60 <lv_img_decoder_built_in_open+0x2e0>)
cf4c: 4621 mov r1, r4
cf4e: 4630 mov r0, r6
cf50: 4798 blx r3
LV_LOG_WARN("Image decoder open: unknown color format")
cf52: 4b04 ldr r3, [pc, #16] ; (cf64 <lv_img_decoder_built_in_open+0x2e4>)
cf54: 9300 str r3, [sp, #0]
cf56: f240 12d3 movw r2, #467 ; 0x1d3
cf5a: 4b03 ldr r3, [pc, #12] ; (cf68 <lv_img_decoder_built_in_open+0x2e8>)
cf5c: e6ab b.n ccb6 <lv_img_decoder_built_in_open+0x36>
cf5e: bf00 nop
cf60: 0000c885 .word 0x0000c885
cf64: 000200d4 .word 0x000200d4
cf68: 00020197 .word 0x00020197
0000cf6c <lv_img_decoder_get_info>:
{
cf6c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
header->always_zero = 0;
cf70: 780b ldrb r3, [r1, #0]
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cf72: f8df 8044 ldr.w r8, [pc, #68] ; cfb8 <lv_img_decoder_get_info+0x4c>
cf76: f8df 9044 ldr.w r9, [pc, #68] ; cfbc <lv_img_decoder_get_info+0x50>
header->always_zero = 0;
cf7a: f36f 1347 bfc r3, #5, #3
cf7e: 700b strb r3, [r1, #0]
{
cf80: 4607 mov r7, r0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cf82: 4b0c ldr r3, [pc, #48] ; (cfb4 <lv_img_decoder_get_info+0x48>)
cf84: 480c ldr r0, [pc, #48] ; (cfb8 <lv_img_decoder_get_info+0x4c>)
{
cf86: 460e mov r6, r1
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cf88: 4798 blx r3
lv_res_t res = LV_RES_INV;
cf8a: 2400 movs r4, #0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cf8c: 4605 mov r5, r0
cf8e: b915 cbnz r5, cf96 <lv_img_decoder_get_info+0x2a>
}
cf90: 4620 mov r0, r4
cf92: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(d->info_cb) {
cf96: 682c ldr r4, [r5, #0]
cf98: b134 cbz r4, cfa8 <lv_img_decoder_get_info+0x3c>
res = d->info_cb(d, src, header);
cf9a: 4632 mov r2, r6
cf9c: 4639 mov r1, r7
cf9e: 4628 mov r0, r5
cfa0: 47a0 blx r4
if(res == LV_RES_OK) break;
cfa2: 2801 cmp r0, #1
res = d->info_cb(d, src, header);
cfa4: 4604 mov r4, r0
if(res == LV_RES_OK) break;
cfa6: d0f3 beq.n cf90 <lv_img_decoder_get_info+0x24>
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cfa8: 4629 mov r1, r5
cfaa: 4640 mov r0, r8
cfac: 47c8 blx r9
cfae: 4605 mov r5, r0
cfb0: e7ed b.n cf8e <lv_img_decoder_get_info+0x22>
cfb2: bf00 nop
cfb4: 0000e6f1 .word 0x0000e6f1
cfb8: 20008654 .word 0x20008654
cfbc: 0000e6fd .word 0x0000e6fd
0000cfc0 <lv_img_decoder_open>:
{
cfc0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
dsc->src_type = lv_img_src_get_type(src);
cfc4: 4b22 ldr r3, [pc, #136] ; (d050 <lv_img_decoder_open+0x90>)
dsc->color = color;
cfc6: 8102 strh r2, [r0, #8]
{
cfc8: 4604 mov r4, r0
dsc->src_type = lv_img_src_get_type(src);
cfca: 4608 mov r0, r1
{
cfcc: 460f mov r7, r1
dsc->src_type = lv_img_src_get_type(src);
cfce: 4798 blx r3
dsc->user_data = NULL;
cfd0: 2300 movs r3, #0
if(dsc->src_type == LV_IMG_SRC_FILE) {
cfd2: 2801 cmp r0, #1
dsc->src_type = lv_img_src_get_type(src);
cfd4: 72a0 strb r0, [r4, #10]
dsc->user_data = NULL;
cfd6: 61e3 str r3, [r4, #28]
if(dsc->src_type == LV_IMG_SRC_FILE) {
cfd8: d11d bne.n d016 <lv_img_decoder_open+0x56>
size_t fnlen = strlen(src);
cfda: 4b1e ldr r3, [pc, #120] ; (d054 <lv_img_decoder_open+0x94>)
cfdc: 4638 mov r0, r7
cfde: 4798 blx r3
dsc->src = lv_mem_alloc(fnlen + 1);
cfe0: 4b1d ldr r3, [pc, #116] ; (d058 <lv_img_decoder_open+0x98>)
cfe2: 3001 adds r0, #1
cfe4: 4798 blx r3
strcpy((char *)dsc->src, src);
cfe6: 4b1d ldr r3, [pc, #116] ; (d05c <lv_img_decoder_open+0x9c>)
dsc->src = lv_mem_alloc(fnlen + 1);
cfe8: 6060 str r0, [r4, #4]
strcpy((char *)dsc->src, src);
cfea: 4639 mov r1, r7
cfec: 4798 blx r3
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cfee: 481c ldr r0, [pc, #112] ; (d060 <lv_img_decoder_open+0xa0>)
cff0: 4b1c ldr r3, [pc, #112] ; (d064 <lv_img_decoder_open+0xa4>)
cff2: f8df 906c ldr.w r9, [pc, #108] ; d060 <lv_img_decoder_open+0xa0>
cff6: f8df a074 ldr.w sl, [pc, #116] ; d06c <lv_img_decoder_open+0xac>
cffa: 4798 blx r3
lv_res_t res = LV_RES_INV;
cffc: 2600 movs r6, #0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
cffe: 4605 mov r5, r0
res = d->info_cb(d, src, &dsc->header);
d000: f104 080c add.w r8, r4, #12
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d004: b94d cbnz r5, d01a <lv_img_decoder_open+0x5a>
if(res == LV_RES_INV) {
d006: b91e cbnz r6, d010 <lv_img_decoder_open+0x50>
_lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t));
d008: 4b17 ldr r3, [pc, #92] ; (d068 <lv_img_decoder_open+0xa8>)
d00a: 2120 movs r1, #32
d00c: 4620 mov r0, r4
d00e: 4798 blx r3
}
d010: 4630 mov r0, r6
d012: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
dsc->src = src;
d016: 6067 str r7, [r4, #4]
d018: e7e9 b.n cfee <lv_img_decoder_open+0x2e>
if(d->info_cb == NULL || d->open_cb == NULL) continue;
d01a: 682b ldr r3, [r5, #0]
d01c: b19b cbz r3, d046 <lv_img_decoder_open+0x86>
d01e: 686a ldr r2, [r5, #4]
d020: b18a cbz r2, d046 <lv_img_decoder_open+0x86>
res = d->info_cb(d, src, &dsc->header);
d022: 4642 mov r2, r8
d024: 4639 mov r1, r7
d026: 4628 mov r0, r5
d028: 4798 blx r3
if(res != LV_RES_OK) continue;
d02a: 2801 cmp r0, #1
res = d->info_cb(d, src, &dsc->header);
d02c: 4606 mov r6, r0
if(res != LV_RES_OK) continue;
d02e: d10a bne.n d046 <lv_img_decoder_open+0x86>
dsc->error_msg = NULL;
d030: 2300 movs r3, #0
d032: 61a3 str r3, [r4, #24]
dsc->img_data = NULL;
d034: 6123 str r3, [r4, #16]
dsc->decoder = d;
d036: 6025 str r5, [r4, #0]
res = d->open_cb(d, dsc);
d038: 686b ldr r3, [r5, #4]
d03a: 4621 mov r1, r4
d03c: 4628 mov r0, r5
d03e: 4798 blx r3
if(res == LV_RES_OK) break;
d040: 2801 cmp r0, #1
res = d->open_cb(d, dsc);
d042: 4606 mov r6, r0
if(res == LV_RES_OK) break;
d044: d0e4 beq.n d010 <lv_img_decoder_open+0x50>
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d046: 4629 mov r1, r5
d048: 4648 mov r0, r9
d04a: 47d0 blx sl
d04c: 4605 mov r5, r0
d04e: e7d9 b.n d004 <lv_img_decoder_open+0x44>
d050: 00007811 .word 0x00007811
d054: 0001637d .word 0x0001637d
d058: 0000ea75 .word 0x0000ea75
d05c: 0001636d .word 0x0001636d
d060: 20008654 .word 0x20008654
d064: 0000e6f1 .word 0x0000e6f1
d068: 0000f061 .word 0x0000f061
d06c: 0000e6fd .word 0x0000e6fd
0000d070 <lv_img_decoder_read_line>:
{
d070: b573 push {r0, r1, r4, r5, r6, lr}
if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf);
d072: 6805 ldr r5, [r0, #0]
d074: 68ac ldr r4, [r5, #8]
d076: b14c cbz r4, d08c <lv_img_decoder_read_line+0x1c>
d078: 9e06 ldr r6, [sp, #24]
d07a: e9cd 3600 strd r3, r6, [sp]
d07e: 4613 mov r3, r2
d080: 460a mov r2, r1
d082: 4601 mov r1, r0
d084: 4628 mov r0, r5
d086: 47a0 blx r4
}
d088: b002 add sp, #8
d08a: bd70 pop {r4, r5, r6, pc}
lv_res_t res = LV_RES_INV;
d08c: 4620 mov r0, r4
d08e: e7fb b.n d088 <lv_img_decoder_read_line+0x18>
0000d090 <lv_img_decoder_close>:
{
d090: b510 push {r4, lr}
d092: 4604 mov r4, r0
if(dsc->decoder) {
d094: 6800 ldr r0, [r0, #0]
d096: b158 cbz r0, d0b0 <lv_img_decoder_close+0x20>
if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
d098: 68c3 ldr r3, [r0, #12]
d09a: b10b cbz r3, d0a0 <lv_img_decoder_close+0x10>
d09c: 4621 mov r1, r4
d09e: 4798 blx r3
if(dsc->src_type == LV_IMG_SRC_FILE) {
d0a0: 7aa3 ldrb r3, [r4, #10]
d0a2: 2b01 cmp r3, #1
d0a4: d104 bne.n d0b0 <lv_img_decoder_close+0x20>
lv_mem_free(dsc->src);
d0a6: 4b03 ldr r3, [pc, #12] ; (d0b4 <lv_img_decoder_close+0x24>)
d0a8: 6860 ldr r0, [r4, #4]
d0aa: 4798 blx r3
dsc->src = NULL;
d0ac: 2300 movs r3, #0
d0ae: 6063 str r3, [r4, #4]
}
d0b0: bd10 pop {r4, pc}
d0b2: bf00 nop
d0b4: 0000eb2d .word 0x0000eb2d
0000d0b8 <lv_img_decoder_create>:
{
d0b8: b573 push {r0, r1, r4, r5, r6, lr}
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
d0ba: 4b0e ldr r3, [pc, #56] ; (d0f4 <lv_img_decoder_create+0x3c>)
d0bc: 480e ldr r0, [pc, #56] ; (d0f8 <lv_img_decoder_create+0x40>)
d0be: 4798 blx r3
LV_ASSERT_MEM(decoder);
d0c0: 4b0e ldr r3, [pc, #56] ; (d0fc <lv_img_decoder_create+0x44>)
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
d0c2: 4604 mov r4, r0
LV_ASSERT_MEM(decoder);
d0c4: 4798 blx r3
d0c6: 4605 mov r5, r0
d0c8: b960 cbnz r0, d0e4 <lv_img_decoder_create+0x2c>
d0ca: 4b0d ldr r3, [pc, #52] ; (d100 <lv_img_decoder_create+0x48>)
d0cc: 490d ldr r1, [pc, #52] ; (d104 <lv_img_decoder_create+0x4c>)
d0ce: 9300 str r3, [sp, #0]
d0d0: 22c9 movs r2, #201 ; 0xc9
d0d2: 2003 movs r0, #3
d0d4: 4e0c ldr r6, [pc, #48] ; (d108 <lv_img_decoder_create+0x50>)
d0d6: 47b0 blx r6
d0d8: 480c ldr r0, [pc, #48] ; (d10c <lv_img_decoder_create+0x54>)
d0da: 490d ldr r1, [pc, #52] ; (d110 <lv_img_decoder_create+0x58>)
d0dc: 4622 mov r2, r4
d0de: 462b mov r3, r5
d0e0: 4788 blx r1
d0e2: e7fe b.n d0e2 <lv_img_decoder_create+0x2a>
if(decoder == NULL) return NULL;
d0e4: b11c cbz r4, d0ee <lv_img_decoder_create+0x36>
_lv_memset_00(decoder, sizeof(lv_img_decoder_t));
d0e6: 4b0b ldr r3, [pc, #44] ; (d114 <lv_img_decoder_create+0x5c>)
d0e8: 2110 movs r1, #16
d0ea: 4620 mov r0, r4
d0ec: 4798 blx r3
}
d0ee: 4620 mov r0, r4
d0f0: b002 add sp, #8
d0f2: bd70 pop {r4, r5, r6, pc}
d0f4: 0000e661 .word 0x0000e661
d0f8: 20008654 .word 0x20008654
d0fc: 00001795 .word 0x00001795
d100: 000201b4 .word 0x000201b4
d104: 0001ff7b .word 0x0001ff7b
d108: 0000e931 .word 0x0000e931
d10c: 0001ee02 .word 0x0001ee02
d110: 0000179d .word 0x0000179d
d114: 0000f061 .word 0x0000f061
0000d118 <_lv_img_decoder_init>:
{
d118: b537 push {r0, r1, r2, r4, r5, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t));
d11a: 4b15 ldr r3, [pc, #84] ; (d170 <_lv_img_decoder_init+0x58>)
d11c: 4815 ldr r0, [pc, #84] ; (d174 <_lv_img_decoder_init+0x5c>)
d11e: 2110 movs r1, #16
d120: 4798 blx r3
decoder = lv_img_decoder_create();
d122: 4b15 ldr r3, [pc, #84] ; (d178 <_lv_img_decoder_init+0x60>)
d124: 4798 blx r3
if(decoder == NULL) {
d126: 4604 mov r4, r0
d128: b9b8 cbnz r0, d15a <_lv_img_decoder_init+0x42>
LV_LOG_WARN("lv_img_decoder_init: out of memory");
d12a: 4a14 ldr r2, [pc, #80] ; (d17c <_lv_img_decoder_init+0x64>)
d12c: 9200 str r2, [sp, #0]
d12e: 2002 movs r0, #2
d130: 2247 movs r2, #71 ; 0x47
d132: 4b13 ldr r3, [pc, #76] ; (d180 <_lv_img_decoder_init+0x68>)
d134: 4913 ldr r1, [pc, #76] ; (d184 <_lv_img_decoder_init+0x6c>)
d136: 4d14 ldr r5, [pc, #80] ; (d188 <_lv_img_decoder_init+0x70>)
d138: 47a8 blx r5
LV_ASSERT_MEM(decoder);
d13a: 4a14 ldr r2, [pc, #80] ; (d18c <_lv_img_decoder_init+0x74>)
d13c: 4620 mov r0, r4
d13e: 4790 blx r2
d140: b998 cbnz r0, d16a <_lv_img_decoder_init+0x52>
d142: 4b0f ldr r3, [pc, #60] ; (d180 <_lv_img_decoder_init+0x68>)
d144: 490f ldr r1, [pc, #60] ; (d184 <_lv_img_decoder_init+0x6c>)
d146: 9300 str r3, [sp, #0]
d148: 2248 movs r2, #72 ; 0x48
d14a: 2003 movs r0, #3
d14c: 47a8 blx r5
d14e: 4810 ldr r0, [pc, #64] ; (d190 <_lv_img_decoder_init+0x78>)
d150: 4910 ldr r1, [pc, #64] ; (d194 <_lv_img_decoder_init+0x7c>)
d152: 2200 movs r2, #0
d154: 2300 movs r3, #0
d156: 4788 blx r1
d158: e7fe b.n d158 <_lv_img_decoder_init+0x40>
decoder->info_cb = info_cb;
d15a: 4b0f ldr r3, [pc, #60] ; (d198 <_lv_img_decoder_init+0x80>)
d15c: 6003 str r3, [r0, #0]
decoder->open_cb = open_cb;
d15e: 4b0f ldr r3, [pc, #60] ; (d19c <_lv_img_decoder_init+0x84>)
d160: 6043 str r3, [r0, #4]
decoder->read_line_cb = read_line_cb;
d162: 4b0f ldr r3, [pc, #60] ; (d1a0 <_lv_img_decoder_init+0x88>)
d164: 6083 str r3, [r0, #8]
decoder->close_cb = close_cb;
d166: 4b0f ldr r3, [pc, #60] ; (d1a4 <_lv_img_decoder_init+0x8c>)
d168: 60c3 str r3, [r0, #12]
}
d16a: b003 add sp, #12
d16c: bd30 pop {r4, r5, pc}
d16e: bf00 nop
d170: 0000e64d .word 0x0000e64d
d174: 20008654 .word 0x20008654
d178: 0000d0b9 .word 0x0000d0b9
d17c: 000200fd .word 0x000200fd
d180: 000201ca .word 0x000201ca
d184: 0001ff7b .word 0x0001ff7b
d188: 0000e931 .word 0x0000e931
d18c: 00001795 .word 0x00001795
d190: 0001ee02 .word 0x0001ee02
d194: 0000179d .word 0x0000179d
d198: 0000c7a5 .word 0x0000c7a5
d19c: 0000cc81 .word 0x0000cc81
d1a0: 0000c8b9 .word 0x0000c8b9
d1a4: 0000c885 .word 0x0000c885
0000d1a8 <lv_font_get_glyph_bitmap>:
* @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)
{
return font_p->get_glyph_bitmap(font_p, letter);
d1a8: 6843 ldr r3, [r0, #4]
d1aa: 4718 bx r3
0000d1ac <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)
{
d1ac: b410 push {r4}
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
d1ae: 6804 ldr r4, [r0, #0]
d1b0: 46a4 mov ip, r4
}
d1b2: f85d 4b04 ldr.w r4, [sp], #4
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
d1b6: 4760 bx ip
0000d1b8 <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)
{
d1b8: b51f push {r0, r1, r2, r3, r4, lr}
d1ba: 4613 mov r3, r2
lv_font_glyph_dsc_t g;
bool ret;
ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next);
d1bc: 4c04 ldr r4, [pc, #16] ; (d1d0 <lv_font_get_glyph_width+0x18>)
d1be: 460a mov r2, r1
d1c0: a901 add r1, sp, #4
d1c2: 47a0 blx r4
if(ret) return g.adv_w;
d1c4: b108 cbz r0, d1ca <lv_font_get_glyph_width+0x12>
d1c6: f8bd 0004 ldrh.w r0, [sp, #4]
else return 0;
}
d1ca: b004 add sp, #16
d1cc: bd10 pop {r4, pc}
d1ce: bf00 nop
d1d0: 0000d1ad .word 0x0000d1ad
0000d1d4 <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];
d1d4: 7803 ldrb r3, [r0, #0]
d1d6: 780a ldrb r2, [r1, #0]
d1d8: 4293 cmp r3, r2
else return (int32_t) ref8_p[1] - element8_p[1];
d1da: bf09 itett eq
d1dc: 784b ldrbeq r3, [r1, #1]
if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0];
d1de: 1a98 subne r0, r3, r2
else return (int32_t) ref8_p[1] - element8_p[1];
d1e0: 7840 ldrbeq r0, [r0, #1]
d1e2: 1ac0 subeq r0, r0, r3
}
d1e4: 4770 bx lr
0000d1e6 <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];
d1e6: 8803 ldrh r3, [r0, #0]
d1e8: 880a ldrh r2, [r1, #0]
d1ea: 4293 cmp r3, r2
else return (int32_t) ref16_p[1] - element16_p[1];
d1ec: bf09 itett eq
d1ee: 884b ldrheq r3, [r1, #2]
if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0];
d1f0: 1a98 subne r0, r3, r2
else return (int32_t) ref16_p[1] - element16_p[1];
d1f2: 8840 ldrheq r0, [r0, #2]
d1f4: 1ac0 subeq r0, r0, r3
}
d1f6: 4770 bx lr
0000d1f8 <get_bits>:
* @return the read bits
*/
static inline uint8_t get_bits(const uint8_t * in, uint32_t bit_pos, uint8_t len)
{
uint8_t bit_mask;
switch(len) {
d1f8: 1e53 subs r3, r2, #1
{
d1fa: b510 push {r4, lr}
switch(len) {
d1fc: 2b07 cmp r3, #7
d1fe: d820 bhi.n d242 <get_bits+0x4a>
d200: e8df f003 tbb [pc, r3]
d204: 1b190424 .word 0x1b190424
d208: 1d1f1f1f .word 0x1d1f1f1f
case 1:
bit_mask = 0x1;
break;
case 2:
bit_mask = 0x3;
d20c: 2303 movs r3, #3
break;
default:
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
}
uint32_t byte_pos = bit_pos >> 3;
d20e: 08cc lsrs r4, r1, #3
bit_pos = bit_pos & 0x7;
d210: f001 0107 and.w r1, r1, #7
if(bit_pos + len >= 8) {
d214: 440a add r2, r1
d216: 2a07 cmp r2, #7
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d218: 5d01 ldrb r1, [r0, r4]
return (in16 >> (16 - bit_pos - len)) & bit_mask;
d21a: b25b sxtb r3, r3
if(bit_pos + len >= 8) {
d21c: d918 bls.n d250 <get_bits+0x58>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d21e: 4420 add r0, r4
return (in16 >> (16 - bit_pos - len)) & bit_mask;
d220: f1c2 0210 rsb r2, r2, #16
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d224: 7840 ldrb r0, [r0, #1]
d226: eb00 2001 add.w r0, r0, r1, lsl #8
return (in16 >> (16 - bit_pos - len)) & bit_mask;
d22a: b280 uxth r0, r0
d22c: fa40 f202 asr.w r2, r0, r2
d230: 4013 ands r3, r2
}
else {
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
d232: b2d8 uxtb r0, r3
}
}
d234: bd10 pop {r4, pc}
bit_mask = 0x7;
d236: 2307 movs r3, #7
break;
d238: e7e9 b.n d20e <get_bits+0x16>
bit_mask = 0xF;
d23a: 230f movs r3, #15
break;
d23c: e7e7 b.n d20e <get_bits+0x16>
bit_mask = 0xFF;
d23e: 23ff movs r3, #255 ; 0xff
break;
d240: e7e5 b.n d20e <get_bits+0x16>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
d242: 2301 movs r3, #1
d244: 4093 lsls r3, r2
d246: 3b01 subs r3, #1
d248: b2db uxtb r3, r3
d24a: e7e0 b.n d20e <get_bits+0x16>
switch(len) {
d24c: 4613 mov r3, r2
d24e: e7de b.n d20e <get_bits+0x16>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
d250: f1c2 0208 rsb r2, r2, #8
d254: fa41 f002 asr.w r0, r1, r2
d258: 4003 ands r3, r0
d25a: e7ea b.n d232 <get_bits+0x3a>
0000d25c <bits_write>:
* @param len length of bits to write from `val`. (Counted from the LSB).
* @note `len == 3` will be converted to `len = 4` and `val` will be upscaled too
*/
static inline void bits_write(uint8_t * out, uint32_t bit_pos, uint8_t val, uint8_t len)
{
if(len == 3) {
d25c: 2b03 cmp r3, #3
{
d25e: b530 push {r4, r5, lr}
if(len == 3) {
d260: d104 bne.n d26c <bits_write+0x10>
len = 4;
switch(val) {
d262: 2a07 cmp r2, #7
d264: bf9c itt ls
d266: 4b0b ldrls r3, [pc, #44] ; (d294 <bits_write+0x38>)
d268: 5c9a ldrbls r2, [r3, r2]
len = 4;
d26a: 2304 movs r3, #4
break;
}
}
uint16_t byte_pos = bit_pos >> 3;
bit_pos = bit_pos & 0x7;
d26c: f001 0507 and.w r5, r1, #7
bit_pos = 8 - bit_pos - len;
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
out[byte_pos] &= ((~bit_mask) << bit_pos);
d270: f3c1 04cf ubfx r4, r1, #3, #16
d274: f1c5 0508 rsb r5, r5, #8
d278: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff
bit_pos = 8 - bit_pos - len;
d27c: 1aed subs r5, r5, r3
out[byte_pos] &= ((~bit_mask) << bit_pos);
d27e: fa01 f303 lsl.w r3, r1, r3
d282: f063 03ff orn r3, r3, #255 ; 0xff
d286: 5d01 ldrb r1, [r0, r4]
d288: 40ab lsls r3, r5
d28a: 400b ands r3, r1
out[byte_pos] |= (val << bit_pos);
d28c: 40aa lsls r2, r5
d28e: 431a orrs r2, r3
d290: 5502 strb r2, [r0, r4]
}
d292: bd30 pop {r4, r5, pc}
d294: 00020217 .word 0x00020217
0000d298 <decompress_line>:
{
d298: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
}
else if(rle_state == RLE_STATE_COUNTER) {
ret = rle_prev_v;
rle_cnt--;
if(rle_cnt == 0) {
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d29c: 4c39 ldr r4, [pc, #228] ; (d384 <decompress_line+0xec>)
d29e: f8df a0e8 ldr.w sl, [pc, #232] ; d388 <decompress_line+0xf0>
d2a2: f8d4 9000 ldr.w r9, [r4]
d2a6: 7927 ldrb r7, [r4, #4]
d2a8: 1843 adds r3, r0, r1
d2aa: 4680 mov r8, r0
d2ac: 9300 str r3, [sp, #0]
rle_state = RLE_STATE_COUNTER;
d2ae: f04f 0b02 mov.w fp, #2
for(i = 0; i < w; i++) {
d2b2: 9b00 ldr r3, [sp, #0]
d2b4: 4543 cmp r3, r8
d2b6: d102 bne.n d2be <decompress_line+0x26>
}
d2b8: b003 add sp, #12
d2ba: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(rle_state == RLE_STATE_SINGLE) {
d2be: 7963 ldrb r3, [r4, #5]
d2c0: b9a3 cbnz r3, d2ec <decompress_line+0x54>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d2c2: 68a6 ldr r6, [r4, #8]
d2c4: 9301 str r3, [sp, #4]
d2c6: 463a mov r2, r7
d2c8: 4631 mov r1, r6
d2ca: 4648 mov r0, r9
d2cc: 47d0 blx sl
d2ce: 4605 mov r5, r0
if(rle_rdp != 0 && rle_prev_v == ret) {
d2d0: b136 cbz r6, d2e0 <decompress_line+0x48>
d2d2: 7b22 ldrb r2, [r4, #12]
d2d4: 9b01 ldr r3, [sp, #4]
d2d6: 4282 cmp r2, r0
rle_cnt = 0;
d2d8: bf02 ittt eq
d2da: 7363 strbeq r3, [r4, #13]
rle_state = RLE_STATE_REPEATE;
d2dc: 2301 moveq r3, #1
d2de: 7163 strbeq r3, [r4, #5]
rle_rdp += rle_bpp;
d2e0: 443e add r6, r7
rle_prev_v = ret;
d2e2: 7325 strb r5, [r4, #12]
rle_rdp += rle_bpp;
d2e4: 60a6 str r6, [r4, #8]
out[i] = rle_next();
d2e6: f808 5b01 strb.w r5, [r8], #1
for(i = 0; i < w; i++) {
d2ea: e7e2 b.n d2b2 <decompress_line+0x1a>
else if(rle_state == RLE_STATE_REPEATE) {
d2ec: 2b01 cmp r3, #1
d2ee: d131 bne.n d354 <decompress_line+0xbc>
v = get_bits(rle_in, rle_rdp, 1);
d2f0: 68a6 ldr r6, [r4, #8]
d2f2: 461a mov r2, r3
d2f4: 4631 mov r1, r6
d2f6: 4648 mov r0, r9
d2f8: 47d0 blx sl
rle_cnt++;
d2fa: 7b63 ldrb r3, [r4, #13]
d2fc: 3301 adds r3, #1
d2fe: b2db uxtb r3, r3
rle_rdp += 1;
d300: 1c71 adds r1, r6, #1
if(v == 1) {
d302: 2801 cmp r0, #1
rle_cnt++;
d304: 7363 strb r3, [r4, #13]
rle_rdp += 1;
d306: 60a1 str r1, [r4, #8]
if(v == 1) {
d308: d118 bne.n d33c <decompress_line+0xa4>
if(rle_cnt == 11) {
d30a: 2b0b cmp r3, #11
ret = rle_prev_v;
d30c: 7b25 ldrb r5, [r4, #12]
if(rle_cnt == 11) {
d30e: d1ea bne.n d2e6 <decompress_line+0x4e>
rle_cnt = get_bits(rle_in, rle_rdp, 6);
d310: 2206 movs r2, #6
d312: 4648 mov r0, r9
d314: 47d0 blx sl
rle_rdp += 6;
d316: 3607 adds r6, #7
rle_cnt = get_bits(rle_in, rle_rdp, 6);
d318: 7360 strb r0, [r4, #13]
rle_rdp += 6;
d31a: 60a6 str r6, [r4, #8]
if(rle_cnt != 0) {
d31c: b110 cbz r0, d324 <decompress_line+0x8c>
rle_state = RLE_STATE_COUNTER;
d31e: f884 b005 strb.w fp, [r4, #5]
d322: e7e0 b.n d2e6 <decompress_line+0x4e>
d324: 9001 str r0, [sp, #4]
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d326: 4631 mov r1, r6
d328: 463a mov r2, r7
d32a: 4648 mov r0, r9
d32c: 47d0 blx sl
rle_rdp += rle_bpp;
d32e: 443e add r6, r7
rle_state = RLE_STATE_SINGLE;
d330: 9b01 ldr r3, [sp, #4]
rle_prev_v = ret;
d332: 7320 strb r0, [r4, #12]
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d334: 4605 mov r5, r0
rle_rdp += rle_bpp;
d336: 60a6 str r6, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d338: 7163 strb r3, [r4, #5]
d33a: e7d4 b.n d2e6 <decompress_line+0x4e>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d33c: 463a mov r2, r7
d33e: 4648 mov r0, r9
d340: 9101 str r1, [sp, #4]
d342: 47d0 blx sl
rle_rdp += rle_bpp;
d344: 9901 ldr r1, [sp, #4]
rle_prev_v = ret;
d346: 7320 strb r0, [r4, #12]
rle_rdp += rle_bpp;
d348: 4439 add r1, r7
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d34a: 4605 mov r5, r0
rle_rdp += rle_bpp;
d34c: 60a1 str r1, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d34e: f04f 0300 mov.w r3, #0
d352: e7f1 b.n d338 <decompress_line+0xa0>
else if(rle_state == RLE_STATE_COUNTER) {
d354: 2b02 cmp r3, #2
d356: d112 bne.n d37e <decompress_line+0xe6>
rle_cnt--;
d358: 7b66 ldrb r6, [r4, #13]
ret = rle_prev_v;
d35a: 7b25 ldrb r5, [r4, #12]
rle_cnt--;
d35c: 3e01 subs r6, #1
d35e: b2f6 uxtb r6, r6
d360: 7366 strb r6, [r4, #13]
if(rle_cnt == 0) {
d362: 2e00 cmp r6, #0
d364: d1bf bne.n d2e6 <decompress_line+0x4e>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d366: 68a1 ldr r1, [r4, #8]
d368: 9101 str r1, [sp, #4]
d36a: 463a mov r2, r7
d36c: 4648 mov r0, r9
d36e: 47d0 blx sl
rle_prev_v = ret;
rle_rdp += rle_bpp;
d370: 9901 ldr r1, [sp, #4]
rle_prev_v = ret;
d372: 7320 strb r0, [r4, #12]
rle_rdp += rle_bpp;
d374: 4439 add r1, r7
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d376: 4605 mov r5, r0
rle_rdp += rle_bpp;
d378: 60a1 str r1, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d37a: 7166 strb r6, [r4, #5]
d37c: e7b3 b.n d2e6 <decompress_line+0x4e>
uint8_t ret = 0;
d37e: 2500 movs r5, #0
d380: e7b1 b.n d2e6 <decompress_line+0x4e>
d382: bf00 nop
d384: 200085d4 .word 0x200085d4
d388: 0000d1f9 .word 0x0000d1f9
0000d38c <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));
d38c: 8800 ldrh r0, [r0, #0]
d38e: 880b ldrh r3, [r1, #0]
}
d390: 1ac0 subs r0, r0, r3
d392: 4770 bx lr
0000d394 <get_glyph_dsc_id>:
{
d394: b5f0 push {r4, r5, r6, r7, lr}
if(letter == '\0') return 0;
d396: 460c mov r4, r1
{
d398: b085 sub sp, #20
if(letter == '\0') return 0;
d39a: b121 cbz r1, d3a6 <get_glyph_dsc_id+0x12>
d39c: 6905 ldr r5, [r0, #16]
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
d39e: 69ab ldr r3, [r5, #24]
d3a0: 4299 cmp r1, r3
d3a2: d147 bne.n d434 <get_glyph_dsc_id+0xa0>
d3a4: 69ec ldr r4, [r5, #28]
}
d3a6: 4620 mov r0, r4
d3a8: b005 add sp, #20
d3aa: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d3ac: 68aa ldr r2, [r5, #8]
d3ae: fb07 f603 mul.w r6, r7, r3
d3b2: 1991 adds r1, r2, r6
d3b4: 5992 ldr r2, [r2, r6]
if(rcp > fdsc->cmaps[i].range_length) continue;
d3b6: 8888 ldrh r0, [r1, #4]
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d3b8: 1aa2 subs r2, r4, r2
if(rcp > fdsc->cmaps[i].range_length) continue;
d3ba: 4282 cmp r2, r0
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d3bc: 9203 str r2, [sp, #12]
if(rcp > fdsc->cmaps[i].range_length) continue;
d3be: f103 0301 add.w r3, r3, #1
d3c2: d839 bhi.n d438 <get_glyph_dsc_id+0xa4>
if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) {
d3c4: 7c8b ldrb r3, [r1, #18]
d3c6: b92b cbnz r3, d3d4 <get_glyph_dsc_id+0x40>
glyph_id = fdsc->cmaps[i].glyph_id_start + rcp;
d3c8: 88c8 ldrh r0, [r1, #6]
d3ca: 4410 add r0, r2
fdsc->last_glyph_id = glyph_id;
d3cc: e9c5 4006 strd r4, r0, [r5, #24]
return glyph_id;
d3d0: 4604 mov r4, r0
d3d2: e7e8 b.n d3a6 <get_glyph_dsc_id+0x12>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) {
d3d4: 2b01 cmp r3, #1
d3d6: d104 bne.n d3e2 <get_glyph_dsc_id+0x4e>
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp];
d3d8: 68cb ldr r3, [r1, #12]
d3da: 5c98 ldrb r0, [r3, r2]
d3dc: 88cb ldrh r3, [r1, #6]
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
d3de: 4418 add r0, r3
d3e0: e7f4 b.n d3cc <get_glyph_dsc_id+0x38>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) {
d3e2: 2b02 cmp r3, #2
d3e4: d111 bne.n d40a <get_glyph_dsc_id+0x76>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
d3e6: 4819 ldr r0, [pc, #100] ; (d44c <get_glyph_dsc_id+0xb8>)
d3e8: 8a0a ldrh r2, [r1, #16]
d3ea: 9000 str r0, [sp, #0]
d3ec: 6889 ldr r1, [r1, #8]
d3ee: 4f18 ldr r7, [pc, #96] ; (d450 <get_glyph_dsc_id+0xbc>)
d3f0: a803 add r0, sp, #12
d3f2: 47b8 blx r7
if(p) {
d3f4: b908 cbnz r0, d3fa <get_glyph_dsc_id+0x66>
uint32_t glyph_id = 0;
d3f6: 2000 movs r0, #0
d3f8: e7e8 b.n d3cc <get_glyph_dsc_id+0x38>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
d3fa: 68ab ldr r3, [r5, #8]
d3fc: 441e add r6, r3
d3fe: 68b3 ldr r3, [r6, #8]
d400: 1ac3 subs r3, r0, r3
glyph_id = fdsc->cmaps[i].glyph_id_start + ofs;
d402: 88f0 ldrh r0, [r6, #6]
d404: eb00 0053 add.w r0, r0, r3, lsr #1
d408: e7e0 b.n d3cc <get_glyph_dsc_id+0x38>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) {
d40a: 2b03 cmp r3, #3
d40c: d1f3 bne.n d3f6 <get_glyph_dsc_id+0x62>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
d40e: 4b0f ldr r3, [pc, #60] ; (d44c <get_glyph_dsc_id+0xb8>)
d410: 8a0a ldrh r2, [r1, #16]
d412: 9300 str r3, [sp, #0]
d414: 6889 ldr r1, [r1, #8]
d416: 4f0e ldr r7, [pc, #56] ; (d450 <get_glyph_dsc_id+0xbc>)
d418: 2302 movs r3, #2
d41a: a803 add r0, sp, #12
d41c: 47b8 blx r7
if(p) {
d41e: 2800 cmp r0, #0
d420: d0e9 beq.n d3f6 <get_glyph_dsc_id+0x62>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
d422: 68ab ldr r3, [r5, #8]
d424: 441e add r6, r3
d426: 68b3 ldr r3, [r6, #8]
d428: 1ac0 subs r0, r0, r3
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
d42a: 0840 lsrs r0, r0, #1
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
d42c: 68f3 ldr r3, [r6, #12]
d42e: 5c18 ldrb r0, [r3, r0]
d430: 88f3 ldrh r3, [r6, #6]
d432: e7d4 b.n d3de <get_glyph_dsc_id+0x4a>
d434: 2300 movs r3, #0
d436: 2714 movs r7, #20
for(i = 0; i < fdsc->cmap_num; i++) {
d438: 8a6a ldrh r2, [r5, #18]
d43a: b299 uxth r1, r3
d43c: f3c2 0209 ubfx r2, r2, #0, #10
d440: 428a cmp r2, r1
d442: d8b3 bhi.n d3ac <get_glyph_dsc_id+0x18>
fdsc->last_letter = letter;
d444: 61ac str r4, [r5, #24]
fdsc->last_glyph_id = 0;
d446: 2400 movs r4, #0
d448: 61ec str r4, [r5, #28]
return 0;
d44a: e7ac b.n d3a6 <get_glyph_dsc_id+0x12>
d44c: 0000d38d .word 0x0000d38d
d450: 000102ed .word 0x000102ed
0000d454 <lv_font_get_bitmap_fmt_txt>:
{
d454: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
d458: ed2d 8b02 vpush {d8}
if(unicode_letter == '\t') unicode_letter = ' ';
d45c: 2909 cmp r1, #9
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d45e: 4b68 ldr r3, [pc, #416] ; (d600 <lv_font_get_bitmap_fmt_txt+0x1ac>)
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
d460: 6905 ldr r5, [r0, #16]
{
d462: b08b sub sp, #44 ; 0x2c
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d464: bf08 it eq
d466: 2120 moveq r1, #32
d468: 4798 blx r3
if(!gid) return NULL;
d46a: 4607 mov r7, r0
d46c: b928 cbnz r0, d47a <lv_font_get_bitmap_fmt_txt+0x26>
d46e: 2000 movs r0, #0
}
d470: b00b add sp, #44 ; 0x2c
d472: ecbd 8b02 vpop {d8}
d476: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d47a: 7d2b ldrb r3, [r5, #20]
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d47c: f8d5 9004 ldr.w r9, [r5, #4]
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d480: 079b lsls r3, r3, #30
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d482: eb09 08c0 add.w r8, r9, r0, lsl #3
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d486: d109 bne.n d49c <lv_font_get_bitmap_fmt_txt+0x48>
if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index];
d488: f1b8 0f00 cmp.w r8, #0
d48c: d0ef beq.n d46e <lv_font_get_bitmap_fmt_txt+0x1a>
d48e: f859 3030 ldr.w r3, [r9, r0, lsl #3]
d492: 6828 ldr r0, [r5, #0]
d494: f3c3 0313 ubfx r3, r3, #0, #20
d498: 4418 add r0, r3
d49a: e7e9 b.n d470 <lv_font_get_bitmap_fmt_txt+0x1c>
uint32_t gsize = gdsc->box_w * gdsc->box_h;
d49c: f898 4004 ldrb.w r4, [r8, #4]
d4a0: f898 1005 ldrb.w r1, [r8, #5]
d4a4: fb14 f401 smulbb r4, r4, r1
if(gsize == 0) return NULL;
d4a8: 2c00 cmp r4, #0
d4aa: d0e0 beq.n d46e <lv_font_get_bitmap_fmt_txt+0x1a>
switch(fdsc->bpp) {
d4ac: 7ceb ldrb r3, [r5, #19]
d4ae: f3c3 0383 ubfx r3, r3, #2, #4
d4b2: 3b01 subs r3, #1
d4b4: 2b03 cmp r3, #3
d4b6: d805 bhi.n d4c4 <lv_font_get_bitmap_fmt_txt+0x70>
d4b8: e8df f003 tbb [pc, r3]
d4bc: 53535002 .word 0x53535002
buf_size = (gsize + 7) >> 3;
d4c0: 3407 adds r4, #7
d4c2: 08e4 lsrs r4, r4, #3
if(_lv_mem_get_size(decompr_buf) < buf_size) {
d4c4: 4e4f ldr r6, [pc, #316] ; (d604 <lv_font_get_bitmap_fmt_txt+0x1b0>)
d4c6: 4b50 ldr r3, [pc, #320] ; (d608 <lv_font_get_bitmap_fmt_txt+0x1b4>)
d4c8: 6930 ldr r0, [r6, #16]
d4ca: 4798 blx r3
d4cc: 42a0 cmp r0, r4
d4ce: d34b bcc.n d568 <lv_font_get_bitmap_fmt_txt+0x114>
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d4d0: f859 2037 ldr.w r2, [r9, r7, lsl #3]
d4d4: 682b ldr r3, [r5, #0]
d4d6: 7ced ldrb r5, [r5, #19]
d4d8: f898 7004 ldrb.w r7, [r8, #4]
d4dc: f3c2 0213 ubfx r2, r2, #0, #20
d4e0: 4413 add r3, r2
d4e2: 6932 ldr r2, [r6, #16]
rle_in = in;
d4e4: 6033 str r3, [r6, #0]
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d4e6: ee08 2a10 vmov s16, r2
d4ea: f898 2005 ldrb.w r2, [r8, #5]
d4ee: 9207 str r2, [sp, #28]
d4f0: f3c5 0283 ubfx r2, r5, #2, #4
d4f4: 2a03 cmp r2, #3
rle_state = RLE_STATE_SINGLE;
d4f6: f04f 0b00 mov.w fp, #0
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d4fa: 4611 mov r1, r2
rle_bpp = bpp;
d4fc: 7132 strb r2, [r6, #4]
d4fe: bf08 it eq
d500: 2104 moveq r1, #4
rle_state = RLE_STATE_SINGLE;
d502: f886 b005 strb.w fp, [r6, #5]
rle_rdp = 0;
d506: f8c6 b008 str.w fp, [r6, #8]
rle_prev_v = 0;
d50a: f886 b00c strb.w fp, [r6, #12]
rle_cnt = 0;
d50e: f886 b00d strb.w fp, [r6, #13]
uint8_t * line_buf1 = _lv_mem_buf_get(w);
d512: 4638 mov r0, r7
d514: 4e3d ldr r6, [pc, #244] ; (d60c <lv_font_get_bitmap_fmt_txt+0x1b8>)
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d516: 9203 str r2, [sp, #12]
if(bpp == 3) wr_size = 4;
d518: 9104 str r1, [sp, #16]
uint8_t * line_buf1 = _lv_mem_buf_get(w);
d51a: 47b0 blx r6
d51c: 4604 mov r4, r0
uint8_t * line_buf2 = _lv_mem_buf_get(w);
d51e: 4638 mov r0, r7
d520: 47b0 blx r6
decompress_line(line_buf1, w);
d522: 4b3b ldr r3, [pc, #236] ; (d610 <lv_font_get_bitmap_fmt_txt+0x1bc>)
uint8_t * line_buf2 = _lv_mem_buf_get(w);
d524: 4606 mov r6, r0
decompress_line(line_buf1, w);
d526: 4639 mov r1, r7
d528: 4620 mov r0, r4
d52a: 4798 blx r3
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d52c: 46b9 mov r9, r7
d52e: 46a0 mov r8, r4
d530: eb07 0a04 add.w sl, r7, r4
for(x = 0; x < w; x++) {
d534: 45d0 cmp r8, sl
d536: d131 bne.n d59c <lv_font_get_bitmap_fmt_txt+0x148>
d538: 9b04 ldr r3, [sp, #16]
d53a: fb17 f303 smulbb r3, r7, r3
d53e: 9306 str r3, [sp, #24]
d540: 469a mov sl, r3
for(y = 1; y < h; y++) {
d542: f04f 0801 mov.w r8, #1
d546: 9b07 ldr r3, [sp, #28]
d548: 4543 cmp r3, r8
d54a: dc32 bgt.n d5b2 <lv_font_get_bitmap_fmt_txt+0x15e>
_lv_mem_buf_release(line_buf1);
d54c: 4620 mov r0, r4
d54e: 4c31 ldr r4, [pc, #196] ; (d614 <lv_font_get_bitmap_fmt_txt+0x1c0>)
d550: 47a0 blx r4
_lv_mem_buf_release(line_buf2);
d552: 4630 mov r0, r6
d554: 47a0 blx r4
return decompr_buf;
d556: 4b2b ldr r3, [pc, #172] ; (d604 <lv_font_get_bitmap_fmt_txt+0x1b0>)
d558: 6918 ldr r0, [r3, #16]
d55a: e789 b.n d470 <lv_font_get_bitmap_fmt_txt+0x1c>
buf_size = (gsize + 3) >> 2;
d55c: 3403 adds r4, #3
d55e: 08a4 lsrs r4, r4, #2
break;
d560: e7b0 b.n d4c4 <lv_font_get_bitmap_fmt_txt+0x70>
buf_size = (gsize + 1) >> 1;
d562: 3401 adds r4, #1
d564: 0864 lsrs r4, r4, #1
break;
d566: e7ad b.n d4c4 <lv_font_get_bitmap_fmt_txt+0x70>
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
d568: 4621 mov r1, r4
d56a: 4b2b ldr r3, [pc, #172] ; (d618 <lv_font_get_bitmap_fmt_txt+0x1c4>)
d56c: 6930 ldr r0, [r6, #16]
d56e: 4798 blx r3
LV_ASSERT_MEM(decompr_buf);
d570: 4b2a ldr r3, [pc, #168] ; (d61c <lv_font_get_bitmap_fmt_txt+0x1c8>)
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
d572: 6130 str r0, [r6, #16]
LV_ASSERT_MEM(decompr_buf);
d574: 4798 blx r3
d576: 4604 mov r4, r0
d578: b960 cbnz r0, d594 <lv_font_get_bitmap_fmt_txt+0x140>
d57a: 4b29 ldr r3, [pc, #164] ; (d620 <lv_font_get_bitmap_fmt_txt+0x1cc>)
d57c: 4929 ldr r1, [pc, #164] ; (d624 <lv_font_get_bitmap_fmt_txt+0x1d0>)
d57e: 9300 str r3, [sp, #0]
d580: 2272 movs r2, #114 ; 0x72
d582: 2003 movs r0, #3
d584: 4d28 ldr r5, [pc, #160] ; (d628 <lv_font_get_bitmap_fmt_txt+0x1d4>)
d586: 47a8 blx r5
d588: 6932 ldr r2, [r6, #16]
d58a: 4828 ldr r0, [pc, #160] ; (d62c <lv_font_get_bitmap_fmt_txt+0x1d8>)
d58c: 4928 ldr r1, [pc, #160] ; (d630 <lv_font_get_bitmap_fmt_txt+0x1dc>)
d58e: 4623 mov r3, r4
d590: 4788 blx r1
d592: e7fe b.n d592 <lv_font_get_bitmap_fmt_txt+0x13e>
if(decompr_buf == NULL) return NULL;
d594: 6933 ldr r3, [r6, #16]
d596: 2b00 cmp r3, #0
d598: d19a bne.n d4d0 <lv_font_get_bitmap_fmt_txt+0x7c>
d59a: e768 b.n d46e <lv_font_get_bitmap_fmt_txt+0x1a>
bits_write(out, wrp, line_buf1[x], bpp);
d59c: 9b03 ldr r3, [sp, #12]
d59e: f818 2b01 ldrb.w r2, [r8], #1
d5a2: 4d24 ldr r5, [pc, #144] ; (d634 <lv_font_get_bitmap_fmt_txt+0x1e0>)
d5a4: 4659 mov r1, fp
d5a6: ee18 0a10 vmov r0, s16
d5aa: 47a8 blx r5
wrp += wr_size;
d5ac: 9b04 ldr r3, [sp, #16]
d5ae: 449b add fp, r3
for(x = 0; x < w; x++) {
d5b0: e7c0 b.n d534 <lv_font_get_bitmap_fmt_txt+0xe0>
decompress_line(line_buf2, w);
d5b2: 4b17 ldr r3, [pc, #92] ; (d610 <lv_font_get_bitmap_fmt_txt+0x1bc>)
d5b4: 4649 mov r1, r9
d5b6: 4630 mov r0, r6
d5b8: 4798 blx r3
for(x = 0; x < w; x++) {
d5ba: 1e63 subs r3, r4, #1
d5bc: 9305 str r3, [sp, #20]
d5be: 19f3 adds r3, r6, r7
d5c0: 46b3 mov fp, r6
d5c2: 9308 str r3, [sp, #32]
d5c4: 4651 mov r1, sl
d5c6: 9b08 ldr r3, [sp, #32]
d5c8: 459b cmp fp, r3
d5ca: d106 bne.n d5da <lv_font_get_bitmap_fmt_txt+0x186>
d5cc: 9b06 ldr r3, [sp, #24]
d5ce: f108 0801 add.w r8, r8, #1
d5d2: 449a add sl, r3
for(y = 1; y < h; y++) {
d5d4: fa0f f888 sxth.w r8, r8
d5d8: e7b5 b.n d546 <lv_font_get_bitmap_fmt_txt+0xf2>
line_buf1[x] = line_buf2[x] ^ line_buf1[x];
d5da: 9805 ldr r0, [sp, #20]
d5dc: f81b 2b01 ldrb.w r2, [fp], #1
d5e0: f810 3f01 ldrb.w r3, [r0, #1]!
d5e4: 9005 str r0, [sp, #20]
d5e6: 405a eors r2, r3
d5e8: 7002 strb r2, [r0, #0]
bits_write(out, wrp, line_buf1[x], bpp);
d5ea: 9b03 ldr r3, [sp, #12]
d5ec: 4d11 ldr r5, [pc, #68] ; (d634 <lv_font_get_bitmap_fmt_txt+0x1e0>)
d5ee: 9109 str r1, [sp, #36] ; 0x24
d5f0: ee18 0a10 vmov r0, s16
d5f4: 47a8 blx r5
wrp += wr_size;
d5f6: 9b04 ldr r3, [sp, #16]
d5f8: 9909 ldr r1, [sp, #36] ; 0x24
d5fa: 4419 add r1, r3
for(x = 0; x < w; x++) {
d5fc: e7e3 b.n d5c6 <lv_font_get_bitmap_fmt_txt+0x172>
d5fe: bf00 nop
d600: 0000d395 .word 0x0000d395
d604: 200085d4 .word 0x200085d4
d608: 0000eb95 .word 0x0000eb95
d60c: 0000eefd .word 0x0000eefd
d610: 0000d299 .word 0x0000d299
d614: 0000ebb1 .word 0x0000ebb1
d618: 0000ee5d .word 0x0000ee5d
d61c: 00001795 .word 0x00001795
d620: 0002021f .word 0x0002021f
d624: 000201df .word 0x000201df
d628: 0000e931 .word 0x0000e931
d62c: 0001ee02 .word 0x0001ee02
d630: 0000179d .word 0x0000179d
d634: 0000d25d .word 0x0000d25d
0000d638 <lv_font_get_glyph_dsc_fmt_txt>:
if(unicode_letter == '\t') {
d638: 2a09 cmp r2, #9
{
d63a: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d63e: f8df a13c ldr.w sl, [pc, #316] ; d77c <lv_font_get_glyph_dsc_fmt_txt+0x144>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
d642: 6907 ldr r7, [r0, #16]
{
d644: 460c mov r4, r1
d646: 4611 mov r1, r2
unicode_letter = ' ';
d648: bf08 it eq
d64a: 2120 moveq r1, #32
{
d64c: 4680 mov r8, r0
d64e: 4699 mov r9, r3
is_tab = true;
d650: bf0c ite eq
d652: 2601 moveq r6, #1
bool is_tab = false;
d654: 2600 movne r6, #0
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d656: 47d0 blx sl
if(!gid) return false;
d658: 4605 mov r5, r0
d65a: 2800 cmp r0, #0
d65c: f000 8086 beq.w d76c <lv_font_get_glyph_dsc_fmt_txt+0x134>
if(fdsc->kern_dsc) {
d660: 68fb ldr r3, [r7, #12]
d662: bb3b cbnz r3, d6b4 <lv_font_get_glyph_dsc_fmt_txt+0x7c>
int8_t kvalue = 0;
d664: 2300 movs r3, #0
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d666: 6878 ldr r0, [r7, #4]
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d668: 8a3a ldrh r2, [r7, #16]
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d66a: eb00 05c5 add.w r5, r0, r5, lsl #3
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d66e: 4353 muls r3, r2
uint32_t adv_w = gdsc->adv_w;
d670: 886a ldrh r2, [r5, #2]
d672: f3c2 110b ubfx r1, r2, #4, #12
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d676: 111b asrs r3, r3, #4
uint32_t adv_w = gdsc->adv_w;
d678: 460a mov r2, r1
if(is_tab) adv_w *= 2;
d67a: b10e cbz r6, d680 <lv_font_get_glyph_dsc_fmt_txt+0x48>
d67c: b20a sxth r2, r1
d67e: 0052 lsls r2, r2, #1
adv_w = (adv_w + (1 << 3)) >> 4;
d680: 3308 adds r3, #8
d682: 4413 add r3, r2
d684: 091b lsrs r3, r3, #4
dsc_out->adv_w = adv_w;
d686: 8023 strh r3, [r4, #0]
dsc_out->box_h = gdsc->box_h;
d688: 796b ldrb r3, [r5, #5]
d68a: 80a3 strh r3, [r4, #4]
dsc_out->box_w = gdsc->box_w;
d68c: 792b ldrb r3, [r5, #4]
d68e: 8063 strh r3, [r4, #2]
dsc_out->ofs_x = gdsc->ofs_x;
d690: f995 2006 ldrsb.w r2, [r5, #6]
d694: 80e2 strh r2, [r4, #6]
dsc_out->ofs_y = gdsc->ofs_y;
d696: f995 2007 ldrsb.w r2, [r5, #7]
d69a: 8122 strh r2, [r4, #8]
dsc_out->bpp = (uint8_t)fdsc->bpp;
d69c: 7cfa ldrb r2, [r7, #19]
d69e: f3c2 0283 ubfx r2, r2, #2, #4
d6a2: 72a2 strb r2, [r4, #10]
if(is_tab) dsc_out->box_w = dsc_out->box_w * 2;
d6a4: 2e00 cmp r6, #0
d6a6: d063 beq.n d770 <lv_font_get_glyph_dsc_fmt_txt+0x138>
d6a8: 005b lsls r3, r3, #1
d6aa: 8063 strh r3, [r4, #2]
}
d6ac: 4630 mov r0, r6
d6ae: b004 add sp, #16
d6b0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next);
d6b4: 4649 mov r1, r9
d6b6: 4640 mov r0, r8
d6b8: 47d0 blx sl
if(gid_next) {
d6ba: 2800 cmp r0, #0
d6bc: d0d2 beq.n d664 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
kvalue = get_kern_value(font, gid, gid_next);
d6be: f8d8 3010 ldr.w r3, [r8, #16]
const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc;
d6c2: f8d3 800c ldr.w r8, [r3, #12]
if(fdsc->kern_classes == 0) {
d6c6: 7cdb ldrb r3, [r3, #19]
d6c8: 065b lsls r3, r3, #25
d6ca: d43a bmi.n d742 <lv_font_get_glyph_dsc_fmt_txt+0x10a>
if(kdsc->glyph_ids_size == 0) {
d6cc: f898 300b ldrb.w r3, [r8, #11]
d6d0: f013 0303 ands.w r3, r3, #3
d6d4: d11b bne.n d70e <lv_font_get_glyph_dsc_fmt_txt+0xd6>
const uint8_t * g_ids = kdsc->glyph_ids;
d6d6: f8d8 9000 ldr.w r9, [r8]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
d6da: f8d8 2008 ldr.w r2, [r8, #8]
d6de: 4b25 ldr r3, [pc, #148] ; (d774 <lv_font_get_glyph_dsc_fmt_txt+0x13c>)
d6e0: 9300 str r3, [sp, #0]
uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/
d6e2: eb05 2000 add.w r0, r5, r0, lsl #8
d6e6: f8ad 000c strh.w r0, [sp, #12]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
d6ea: 2302 movs r3, #2
d6ec: f8df a090 ldr.w sl, [pc, #144] ; d780 <lv_font_get_glyph_dsc_fmt_txt+0x148>
d6f0: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
d6f4: 4649 mov r1, r9
d6f6: a803 add r0, sp, #12
d6f8: 47d0 blx sl
if(kid_p) {
d6fa: 4603 mov r3, r0
d6fc: 2800 cmp r0, #0
d6fe: d0b2 beq.n d666 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids);
d700: eba0 0309 sub.w r3, r0, r9
ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/
d704: 085b lsrs r3, r3, #1
value = kdsc->values[ofs];
d706: f8d8 2004 ldr.w r2, [r8, #4]
d70a: 56d3 ldrsb r3, [r2, r3]
d70c: e7ab b.n d666 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
else if(kdsc->glyph_ids_size == 1) {
d70e: 2b01 cmp r3, #1
d710: d1a8 bne.n d664 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
const uint16_t * g_ids = kdsc->glyph_ids;
d712: f8d8 9000 ldr.w r9, [r8]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare);
d716: f8d8 2008 ldr.w r2, [r8, #8]
d71a: 4b17 ldr r3, [pc, #92] ; (d778 <lv_font_get_glyph_dsc_fmt_txt+0x140>)
d71c: 9300 str r3, [sp, #0]
lv_uintptr_t g_id_both = (uint32_t)((uint32_t)gid_right << 8) + gid_left; /*Create one number from the ids*/
d71e: eb05 2000 add.w r0, r5, r0, lsl #8
d722: 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);
d724: 2304 movs r3, #4
d726: f8df a058 ldr.w sl, [pc, #88] ; d780 <lv_font_get_glyph_dsc_fmt_txt+0x148>
d72a: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
d72e: 4649 mov r1, r9
d730: a803 add r0, sp, #12
d732: 47d0 blx sl
if(kid_p) {
d734: 4603 mov r3, r0
d736: 2800 cmp r0, #0
d738: d095 beq.n d666 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids);
d73a: eba0 0309 sub.w r3, r0, r9
ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/
d73e: 091b lsrs r3, r3, #4
d740: e7e1 b.n d706 <lv_font_get_glyph_dsc_fmt_txt+0xce>
uint8_t left_class = kdsc->left_class_mapping[gid_left];
d742: f8d8 3004 ldr.w r3, [r8, #4]
d746: 5d5a ldrb r2, [r3, r5]
if(left_class > 0 && right_class > 0) {
d748: 2a00 cmp r2, #0
d74a: d08b beq.n d664 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
uint8_t right_class = kdsc->right_class_mapping[gid_right];
d74c: f8d8 3008 ldr.w r3, [r8, #8]
d750: 5c19 ldrb r1, [r3, r0]
if(left_class > 0 && right_class > 0) {
d752: 2900 cmp r1, #0
d754: d086 beq.n d664 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)];
d756: f8d8 3000 ldr.w r3, [r8]
d75a: f898 000d ldrb.w r0, [r8, #13]
d75e: 3a01 subs r2, #1
d760: 440b add r3, r1
d762: fb00 3302 mla r3, r0, r2, r3
d766: f913 3c01 ldrsb.w r3, [r3, #-1]
d76a: e77c b.n d666 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
if(!gid) return false;
d76c: 4606 mov r6, r0
d76e: e79d b.n d6ac <lv_font_get_glyph_dsc_fmt_txt+0x74>
return true;
d770: 2601 movs r6, #1
d772: e79b b.n d6ac <lv_font_get_glyph_dsc_fmt_txt+0x74>
d774: 0000d1d5 .word 0x0000d1d5
d778: 0000d1e7 .word 0x0000d1e7
d77c: 0000d395 .word 0x0000d395
d780: 000102ed .word 0x000102ed
0000d784 <_lv_font_clean_up_fmt_txt>:
{
d784: b510 push {r4, lr}
if(decompr_buf) {
d786: 4c04 ldr r4, [pc, #16] ; (d798 <_lv_font_clean_up_fmt_txt+0x14>)
d788: 6920 ldr r0, [r4, #16]
d78a: b118 cbz r0, d794 <_lv_font_clean_up_fmt_txt+0x10>
lv_mem_free(decompr_buf);
d78c: 4b03 ldr r3, [pc, #12] ; (d79c <_lv_font_clean_up_fmt_txt+0x18>)
d78e: 4798 blx r3
decompr_buf = NULL;
d790: 2300 movs r3, #0
d792: 6123 str r3, [r4, #16]
}
d794: bd10 pop {r4, pc}
d796: bf00 nop
d798: 200085d4 .word 0x200085d4
d79c: 0000eb2d .word 0x0000eb2d
0000d7a0 <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)
{
d7a0: b510 push {r4, lr}
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
d7a2: 4b0d ldr r3, [pc, #52] ; (d7d8 <lv_disp_drv_init+0x38>)
d7a4: 212c movs r1, #44 ; 0x2c
{
d7a6: 4604 mov r4, r0
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
d7a8: 4798 blx r3
driver->flush_cb = NULL;
driver->hor_res = LV_HOR_RES_MAX;
d7aa: 4b0c ldr r3, [pc, #48] ; (d7dc <lv_disp_drv_init+0x3c>)
driver->flush_cb = NULL;
d7ac: 2200 movs r2, #0
driver->ver_res = LV_VER_RES_MAX;
driver->buffer = NULL;
d7ae: e9c4 3200 strd r3, r2, [r4]
driver->rotated = 0;
driver->color_chroma_key = LV_COLOR_TRANSP;
driver->dpi = LV_DPI;
#if LV_ANTIALIAS
driver->antialiasing = true;
d7b2: 8923 ldrh r3, [r4, #8]
driver->flush_cb = NULL;
d7b4: 60e2 str r2, [r4, #12]
driver->antialiasing = true;
d7b6: f423 637f bic.w r3, r3, #4080 ; 0xff0
d7ba: f023 030f bic.w r3, r3, #15
d7be: f443 7302 orr.w r3, r3, #520 ; 0x208
d7c2: f043 0301 orr.w r3, r3, #1
d7c6: 8123 strh r3, [r4, #8]
driver->color_chroma_key = LV_COLOR_TRANSP;
d7c8: f44f 63fc mov.w r3, #2016 ; 0x7e0
driver->screen_transp = 1;
#endif
#if LV_USE_GPU
driver->gpu_blend_cb = NULL;
driver->gpu_fill_cb = NULL;
d7cc: e9c4 2208 strd r2, r2, [r4, #32]
driver->color_chroma_key = LV_COLOR_TRANSP;
d7d0: 8523 strh r3, [r4, #40] ; 0x28
#if LV_USE_USER_DATA
driver->user_data = NULL;
#endif
driver->set_px_cb = NULL;
d7d2: 6162 str r2, [r4, #20]
}
d7d4: bd10 pop {r4, pc}
d7d6: bf00 nop
d7d8: 0000f061 .word 0x0000f061
d7dc: 011001e0 .word 0x011001e0
0000d7e0 <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)
{
d7e0: b5f8 push {r3, r4, r5, r6, r7, lr}
d7e2: 4604 mov r4, r0
d7e4: 460d mov r5, r1
d7e6: 4617 mov r7, r2
d7e8: 461e mov r6, r3
_lv_memset_00(disp_buf, sizeof(lv_disp_buf_t));
d7ea: 2124 movs r1, #36 ; 0x24
d7ec: 4b03 ldr r3, [pc, #12] ; (d7fc <lv_disp_buf_init+0x1c>)
d7ee: 4798 blx r3
disp_buf->buf1 = buf1;
disp_buf->buf2 = buf2;
d7f0: e9c4 5700 strd r5, r7, [r4]
disp_buf->buf_act = disp_buf->buf1;
disp_buf->size = size_in_px_cnt;
d7f4: e9c4 5602 strd r5, r6, [r4, #8]
}
d7f8: bdf8 pop {r3, r4, r5, r6, r7, pc}
d7fa: bf00 nop
d7fc: 0000f061 .word 0x0000f061
0000d800 <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)
{
d800: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
d804: 4b3b ldr r3, [pc, #236] ; (d8f4 <lv_disp_drv_register+0xf4>)
d806: 4e3c ldr r6, [pc, #240] ; (d8f8 <lv_disp_drv_register+0xf8>)
{
d808: 4605 mov r5, r0
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
d80a: 483c ldr r0, [pc, #240] ; (d8fc <lv_disp_drv_register+0xfc>)
d80c: 4798 blx r3
if(!disp) {
d80e: 4604 mov r4, r0
d810: b998 cbnz r0, d83a <lv_disp_drv_register+0x3a>
LV_ASSERT_MEM(disp);
d812: 47b0 blx r6
d814: b120 cbz r0, d820 <lv_disp_drv_register+0x20>
return NULL;
d816: 2400 movs r4, #0
disp_def = disp_def_tmp; /*Revert the default display*/
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
return disp;
}
d818: 4620 mov r0, r4
d81a: b002 add sp, #8
d81c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
LV_ASSERT_MEM(disp);
d820: 4b37 ldr r3, [pc, #220] ; (d900 <lv_disp_drv_register+0x100>)
d822: 4938 ldr r1, [pc, #224] ; (d904 <lv_disp_drv_register+0x104>)
d824: 9300 str r3, [sp, #0]
d826: 227c movs r2, #124 ; 0x7c
d828: 2003 movs r0, #3
d82a: 4c37 ldr r4, [pc, #220] ; (d908 <lv_disp_drv_register+0x108>)
d82c: 47a0 blx r4
d82e: 4837 ldr r0, [pc, #220] ; (d90c <lv_disp_drv_register+0x10c>)
d830: 4937 ldr r1, [pc, #220] ; (d910 <lv_disp_drv_register+0x110>)
d832: 2200 movs r2, #0
d834: 2300 movs r3, #0
d836: 4788 blx r1
d838: e7fe b.n d838 <lv_disp_drv_register+0x38>
_lv_memset_00(disp, sizeof(lv_disp_t));
d83a: 4b36 ldr r3, [pc, #216] ; (d914 <lv_disp_drv_register+0x114>)
d83c: f44f 71b8 mov.w r1, #368 ; 0x170
d840: 4798 blx r3
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
d842: 4629 mov r1, r5
d844: 4b34 ldr r3, [pc, #208] ; (d918 <lv_disp_drv_register+0x118>)
if(disp_def == NULL) disp_def = disp;
d846: 4d35 ldr r5, [pc, #212] ; (d91c <lv_disp_drv_register+0x11c>)
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
d848: 222c movs r2, #44 ; 0x2c
d84a: 4620 mov r0, r4
d84c: 4798 blx r3
_lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t));
d84e: 4b34 ldr r3, [pc, #208] ; (d920 <lv_disp_drv_register+0x120>)
d850: 214c movs r1, #76 ; 0x4c
d852: f104 0030 add.w r0, r4, #48 ; 0x30
d856: 4798 blx r3
disp->last_activity_time = 0;
d858: 2300 movs r3, #0
d85a: f8c4 316c str.w r3, [r4, #364] ; 0x16c
if(disp_def == NULL) disp_def = disp;
d85e: 682b ldr r3, [r5, #0]
d860: b903 cbnz r3, d864 <lv_disp_drv_register+0x64>
d862: 602c str r4, [r5, #0]
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
d864: 4623 mov r3, r4
d866: 2203 movs r2, #3
d868: 211e movs r1, #30
d86a: 482e ldr r0, [pc, #184] ; (d924 <lv_disp_drv_register+0x124>)
d86c: f8df 80cc ldr.w r8, [pc, #204] ; d93c <lv_disp_drv_register+0x13c>
lv_disp_t * disp_def_tmp = disp_def;
d870: 682f ldr r7, [r5, #0]
disp_def = disp; /*Temporarily change the default screen to create the default screens on the
d872: 602c str r4, [r5, #0]
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
d874: 47c0 blx r8
d876: 62e0 str r0, [r4, #44] ; 0x2c
LV_ASSERT_MEM(disp->refr_task);
d878: 47b0 blx r6
d87a: 4606 mov r6, r0
d87c: b960 cbnz r0, d898 <lv_disp_drv_register+0x98>
d87e: 4b20 ldr r3, [pc, #128] ; (d900 <lv_disp_drv_register+0x100>)
d880: 4920 ldr r1, [pc, #128] ; (d904 <lv_disp_drv_register+0x104>)
d882: 9300 str r3, [sp, #0]
d884: 228d movs r2, #141 ; 0x8d
d886: 2003 movs r0, #3
d888: 4d1f ldr r5, [pc, #124] ; (d908 <lv_disp_drv_register+0x108>)
d88a: 47a8 blx r5
d88c: 6ae2 ldr r2, [r4, #44] ; 0x2c
d88e: 481f ldr r0, [pc, #124] ; (d90c <lv_disp_drv_register+0x10c>)
d890: 491f ldr r1, [pc, #124] ; (d910 <lv_disp_drv_register+0x110>)
d892: 4633 mov r3, r6
d894: 4788 blx r1
d896: e7fe b.n d896 <lv_disp_drv_register+0x96>
if(disp->refr_task == NULL) return NULL;
d898: 6ae3 ldr r3, [r4, #44] ; 0x2c
d89a: 2b00 cmp r3, #0
d89c: d0bb beq.n d816 <lv_disp_drv_register+0x16>
disp->inv_p = 0;
d89e: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
d8a2: 4e21 ldr r6, [pc, #132] ; (d928 <lv_disp_drv_register+0x128>)
disp->inv_p = 0;
d8a4: f36f 0309 bfc r3, #0, #10
disp->last_activity_time = 0;
d8a8: 2100 movs r1, #0
disp->inv_p = 0;
d8aa: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
disp->last_activity_time = 0;
d8ae: f8c4 116c str.w r1, [r4, #364] ; 0x16c
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
d8b2: 4608 mov r0, r1
d8b4: 47b0 blx r6
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
d8b6: 2100 movs r1, #0
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
d8b8: 63e0 str r0, [r4, #60] ; 0x3c
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
d8ba: 4608 mov r0, r1
d8bc: 47b0 blx r6
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
d8be: 2100 movs r1, #0
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
d8c0: 6420 str r0, [r4, #64] ; 0x40
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
d8c2: 4608 mov r0, r1
d8c4: 47b0 blx r6
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
d8c6: 4e19 ldr r6, [pc, #100] ; (d92c <lv_disp_drv_register+0x12c>)
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
d8c8: 6460 str r0, [r4, #68] ; 0x44
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
d8ca: 2100 movs r1, #0
d8cc: 6c20 ldr r0, [r4, #64] ; 0x40
d8ce: 47b0 blx r6
lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN);
d8d0: 6c60 ldr r0, [r4, #68] ; 0x44
d8d2: 2100 movs r1, #0
d8d4: 47b0 blx r6
lv_obj_set_click(disp->top_layer, false);
d8d6: 6c20 ldr r0, [r4, #64] ; 0x40
d8d8: 4e15 ldr r6, [pc, #84] ; (d930 <lv_disp_drv_register+0x130>)
d8da: 2100 movs r1, #0
d8dc: 47b0 blx r6
lv_obj_set_click(disp->sys_layer, false);
d8de: 6c60 ldr r0, [r4, #68] ; 0x44
d8e0: 2100 movs r1, #0
d8e2: 47b0 blx r6
lv_obj_invalidate(disp->act_scr);
d8e4: 6be0 ldr r0, [r4, #60] ; 0x3c
d8e6: 4b13 ldr r3, [pc, #76] ; (d934 <lv_disp_drv_register+0x134>)
d8e8: 4798 blx r3
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
d8ea: 6ae0 ldr r0, [r4, #44] ; 0x2c
d8ec: 4b12 ldr r3, [pc, #72] ; (d938 <lv_disp_drv_register+0x138>)
disp_def = disp_def_tmp; /*Revert the default display*/
d8ee: 602f str r7, [r5, #0]
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
d8f0: 4798 blx r3
return disp;
d8f2: e791 b.n d818 <lv_disp_drv_register+0x18>
d8f4: 0000e661 .word 0x0000e661
d8f8: 00001795 .word 0x00001795
d8fc: 2000860c .word 0x2000860c
d900: 00023f13 .word 0x00023f13
d904: 00023ee0 .word 0x00023ee0
d908: 0000e931 .word 0x0000e931
d90c: 0001ee02 .word 0x0001ee02
d910: 0000179d .word 0x0000179d
d914: 0000f061 .word 0x0000f061
d918: 0000ec79 .word 0x0000ec79
d91c: 200085e8 .word 0x200085e8
d920: 0000e64d .word 0x0000e64d
d924: 00004fe9 .word 0x00004fe9
d928: 000030c5 .word 0x000030c5
d92c: 00002e79 .word 0x00002e79
d930: 00001e0d .word 0x00001e0d
d934: 00002739 .word 0x00002739
d938: 0000fc9d .word 0x0000fc9d
d93c: 0000fc2d .word 0x0000fc2d
0000d940 <lv_disp_get_default>:
* @return pointer to the default display
*/
lv_disp_t * lv_disp_get_default(void)
{
return disp_def;
}
d940: 4b01 ldr r3, [pc, #4] ; (d948 <lv_disp_get_default+0x8>)
d942: 6818 ldr r0, [r3, #0]
d944: 4770 bx lr
d946: bf00 nop
d948: 200085e8 .word 0x200085e8
0000d94c <lv_disp_get_hor_res>:
* @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)
{
if(disp == NULL) disp = lv_disp_get_default();
d94c: b910 cbnz r0, d954 <lv_disp_get_hor_res+0x8>
return disp_def;
d94e: 4b07 ldr r3, [pc, #28] ; (d96c <lv_disp_get_hor_res+0x20>)
d950: 6818 ldr r0, [r3, #0]
if(disp == NULL)
d952: b138 cbz r0, d964 <lv_disp_get_hor_res+0x18>
return LV_HOR_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
d954: 7a03 ldrb r3, [r0, #8]
d956: 079b lsls r3, r3, #30
d958: bf54 ite pl
d95a: f9b0 0000 ldrshpl.w r0, [r0]
d95e: f9b0 0002 ldrshmi.w r0, [r0, #2]
d962: 4770 bx lr
return LV_HOR_RES_MAX;
d964: f44f 70f0 mov.w r0, #480 ; 0x1e0
}
d968: 4770 bx lr
d96a: bf00 nop
d96c: 200085e8 .word 0x200085e8
0000d970 <lv_disp_get_ver_res>:
* @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)
{
if(disp == NULL) disp = lv_disp_get_default();
d970: b910 cbnz r0, d978 <lv_disp_get_ver_res+0x8>
return disp_def;
d972: 4b07 ldr r3, [pc, #28] ; (d990 <lv_disp_get_ver_res+0x20>)
d974: 6818 ldr r0, [r3, #0]
if(disp == NULL)
d976: b138 cbz r0, d988 <lv_disp_get_ver_res+0x18>
return LV_VER_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
d978: 7a03 ldrb r3, [r0, #8]
d97a: 079b lsls r3, r3, #30
d97c: bf54 ite pl
d97e: f9b0 0002 ldrshpl.w r0, [r0, #2]
d982: f9b0 0000 ldrshmi.w r0, [r0]
d986: 4770 bx lr
return LV_VER_RES_MAX;
d988: f44f 7088 mov.w r0, #272 ; 0x110
}
d98c: 4770 bx lr
d98e: bf00 nop
d990: 200085e8 .word 0x200085e8
0000d994 <lv_disp_get_dpi>:
* @param disp pointer to a display (NULL to use the default display)
* @return dpi of the display
*/
lv_coord_t lv_disp_get_dpi(lv_disp_t * disp)
{
if(disp == NULL) disp = lv_disp_get_default();
d994: b910 cbnz r0, d99c <lv_disp_get_dpi+0x8>
return disp_def;
d996: 4b04 ldr r3, [pc, #16] ; (d9a8 <lv_disp_get_dpi+0x14>)
d998: 6818 ldr r0, [r3, #0]
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
d99a: b118 cbz r0, d9a4 <lv_disp_get_dpi+0x10>
return disp->driver.dpi;
d99c: 8900 ldrh r0, [r0, #8]
d99e: f3c0 0089 ubfx r0, r0, #2, #10
d9a2: 4770 bx lr
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
d9a4: 2082 movs r0, #130 ; 0x82
}
d9a6: 4770 bx lr
d9a8: 200085e8 .word 0x200085e8
0000d9ac <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)
{
d9ac: b508 push {r3, lr}
if(disp == NULL) disp = lv_disp_get_default();
d9ae: 4601 mov r1, r0
d9b0: b910 cbnz r0, d9b8 <lv_disp_get_size_category+0xc>
return disp_def;
d9b2: 4b0f ldr r3, [pc, #60] ; (d9f0 <lv_disp_get_size_category+0x44>)
d9b4: 6819 ldr r1, [r3, #0]
uint32_t w;
if(disp == NULL) w = LV_HOR_RES_MAX;
d9b6: b199 cbz r1, d9e0 <lv_disp_get_size_category+0x34>
else w = lv_disp_get_hor_res(disp);
d9b8: 4b0e ldr r3, [pc, #56] ; (d9f4 <lv_disp_get_size_category+0x48>)
d9ba: 4608 mov r0, r1
d9bc: 4798 blx r3
d9be: 4602 mov r2, r0
uint32_t dpi = lv_disp_get_dpi(disp);
d9c0: 4b0d ldr r3, [pc, #52] ; (d9f8 <lv_disp_get_size_category+0x4c>)
d9c2: 4608 mov r0, r1
d9c4: 4798 blx r3
w = w * 10 / dpi;
d9c6: 230a movs r3, #10
d9c8: 435a muls r2, r3
d9ca: fbb2 f0f0 udiv r0, r2, r0
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
d9ce: 281d cmp r0, #29
d9d0: d909 bls.n d9e6 <lv_disp_get_size_category+0x3a>
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
d9d2: 2831 cmp r0, #49 ; 0x31
d9d4: d909 bls.n d9ea <lv_disp_get_size_category+0x3e>
if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE;
else return LV_DISP_SIZE_EXTRA_LARGE;
d9d6: 2846 cmp r0, #70 ; 0x46
d9d8: bf34 ite cc
d9da: 2002 movcc r0, #2
d9dc: 2003 movcs r0, #3
}
d9de: bd08 pop {r3, pc}
if(disp == NULL) w = LV_HOR_RES_MAX;
d9e0: f44f 72f0 mov.w r2, #480 ; 0x1e0
d9e4: e7ec b.n d9c0 <lv_disp_get_size_category+0x14>
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
d9e6: 2000 movs r0, #0
d9e8: e7f9 b.n d9de <lv_disp_get_size_category+0x32>
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
d9ea: 2001 movs r0, #1
d9ec: e7f7 b.n d9de <lv_disp_get_size_category+0x32>
d9ee: bf00 nop
d9f0: 200085e8 .word 0x200085e8
d9f4: 0000d94d .word 0x0000d94d
d9f8: 0000d995 .word 0x0000d995
0000d9fc <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;
d9fc: 6843 ldr r3, [r0, #4]
d9fe: 2200 movs r2, #0
da00: 619a str r2, [r3, #24]
disp_drv->buffer->flushing_last = 0;
da02: 61da str r2, [r3, #28]
}
da04: 4770 bx lr
...
0000da08 <lv_disp_get_next>:
* @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)
{
if(disp == NULL)
da08: 4601 mov r1, r0
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
da0a: 4803 ldr r0, [pc, #12] ; (da18 <lv_disp_get_next+0x10>)
if(disp == NULL)
da0c: b909 cbnz r1, da12 <lv_disp_get_next+0xa>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
da0e: 4b03 ldr r3, [pc, #12] ; (da1c <lv_disp_get_next+0x14>)
da10: 4718 bx r3
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp);
da12: 4b03 ldr r3, [pc, #12] ; (da20 <lv_disp_get_next+0x18>)
da14: 4718 bx r3
da16: bf00 nop
da18: 2000860c .word 0x2000860c
da1c: 0000e6f1 .word 0x0000e6f1
da20: 0000e6fd .word 0x0000e6fd
0000da24 <lv_disp_get_buf>:
* @return pointer to the internal buffers
*/
lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp)
{
return disp->driver.buffer;
}
da24: 6840 ldr r0, [r0, #4]
da26: 4770 bx lr
0000da28 <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)
da28: 6843 ldr r3, [r0, #4]
da2a: 6818 ldr r0, [r3, #0]
da2c: b118 cbz r0, da36 <lv_disp_is_double_buf+0xe>
da2e: 6858 ldr r0, [r3, #4]
da30: 3800 subs r0, #0
da32: bf18 it ne
da34: 2001 movne r0, #1
return true;
else
return false;
}
da36: 4770 bx lr
0000da38 <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)
{
da38: b508 push {r3, lr}
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) {
da3a: 4b07 ldr r3, [pc, #28] ; (da58 <lv_disp_is_true_double_buf+0x20>)
{
da3c: 4602 mov r2, r0
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
da3e: 4798 blx r3
da40: b140 cbz r0, da54 <lv_disp_is_true_double_buf+0x1c>
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
da42: 8850 ldrh r0, [r2, #2]
da44: 8813 ldrh r3, [r2, #0]
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
da46: 6852 ldr r2, [r2, #4]
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
da48: fb13 f300 smulbb r3, r3, r0
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
da4c: 68d0 ldr r0, [r2, #12]
da4e: 1a1b subs r3, r3, r0
da50: 4258 negs r0, r3
da52: 4158 adcs r0, r3
return true;
}
else {
return false;
}
}
da54: bd08 pop {r3, pc}
da56: bf00 nop
da58: 0000da29 .word 0x0000da29
0000da5c <lv_indev_get_next>:
* @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)
{
if(indev == NULL)
da5c: 4601 mov r1, r0
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
da5e: 4803 ldr r0, [pc, #12] ; (da6c <lv_indev_get_next+0x10>)
if(indev == NULL)
da60: b909 cbnz r1, da66 <lv_indev_get_next+0xa>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
da62: 4b03 ldr r3, [pc, #12] ; (da70 <lv_indev_get_next+0x14>)
da64: 4718 bx r3
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev);
da66: 4b03 ldr r3, [pc, #12] ; (da74 <lv_indev_get_next+0x18>)
da68: 4718 bx r3
da6a: bf00 nop
da6c: 20008618 .word 0x20008618
da70: 0000e6f1 .word 0x0000e6f1
da74: 0000e6fd .word 0x0000e6fd
0000da78 <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;
da78: 4b03 ldr r3, [pc, #12] ; (da88 <lv_tick_inc+0x10>)
da7a: 2200 movs r2, #0
da7c: 701a strb r2, [r3, #0]
sys_time += tick_period;
da7e: 685a ldr r2, [r3, #4]
da80: 4410 add r0, r2
da82: 6058 str r0, [r3, #4]
}
da84: 4770 bx lr
da86: bf00 nop
da88: 200085ec .word 0x200085ec
0000da8c <lv_tick_get>:
{
#if LV_TICK_CUSTOM == 0
uint32_t result;
do {
tick_irq_flag = 1;
result = sys_time;
da8c: 4b03 ldr r3, [pc, #12] ; (da9c <lv_tick_get+0x10>)
da8e: 6858 ldr r0, [r3, #4]
tick_irq_flag = 1;
da90: 2101 movs r1, #1
da92: 7019 strb r1, [r3, #0]
} while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt.
da94: 781a ldrb r2, [r3, #0]
da96: 2a00 cmp r2, #0
da98: d0fb beq.n da92 <lv_tick_get+0x6>
return result;
#else
return LV_TICK_CUSTOM_SYS_TIME_EXPR;
#endif
}
da9a: 4770 bx lr
da9c: 200085ec .word 0x200085ec
0000daa0 <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)
{
daa0: b510 push {r4, lr}
uint32_t act_time = lv_tick_get();
daa2: 4b02 ldr r3, [pc, #8] ; (daac <lv_tick_elaps+0xc>)
{
daa4: 4604 mov r4, r0
uint32_t act_time = lv_tick_get();
daa6: 4798 blx r3
prev_tick = UINT32_MAX - prev_tick + 1;
prev_tick += act_time;
}
return prev_tick;
}
daa8: 1b00 subs r0, r0, r4
daaa: bd10 pop {r4, pc}
daac: 0000da8d .word 0x0000da8d
0000dab0 <lv_anim_path_linear>:
{
LV_UNUSED(path);
/*Calculate the current step*/
uint32_t step;
if(a->time == a->act_time) {
dab0: e9d1 3008 ldrd r3, r0, [r1, #32]
dab4: 4283 cmp r3, r0
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;
dab6: bf1c itt ne
dab8: 0280 lslne r0, r0, #10
daba: fb90 f0f3 sdivne r0, r0, 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);
dabe: e9d1 2306 ldrd r2, r3, [r1, #24]
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
dac2: bf08 it eq
dac4: f44f 6080 moveq.w r0, #1024 ; 0x400
new_value = (int32_t)step * (a->end - a->start);
dac8: 1a9b subs r3, r3, r2
daca: 4358 muls r0, r3
new_value = new_value >> LV_ANIM_RES_SHIFT;
new_value += a->start;
dacc: eb02 20a0 add.w r0, r2, r0, asr #10
return (lv_anim_value_t)new_value;
}
dad0: b200 sxth r0, r0
dad2: 4770 bx lr
0000dad4 <anim_mark_list_change>:
}
return anim_list_changed;
}
static void anim_mark_list_change(void)
{
dad4: b510 push {r4, lr}
anim_list_changed = true;
dad6: 4c07 ldr r4, [pc, #28] ; (daf4 <anim_mark_list_change+0x20>)
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
dad8: 4807 ldr r0, [pc, #28] ; (daf8 <anim_mark_list_change+0x24>)
anim_list_changed = true;
dada: 2301 movs r3, #1
dadc: 7023 strb r3, [r4, #0]
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
dade: 4b07 ldr r3, [pc, #28] ; (dafc <anim_mark_list_change+0x28>)
dae0: 4798 blx r3
dae2: 4b07 ldr r3, [pc, #28] ; (db00 <anim_mark_list_change+0x2c>)
dae4: 4601 mov r1, r0
dae6: b918 cbnz r0, daf0 <anim_mark_list_change+0x1c>
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
else
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
dae8: 6860 ldr r0, [r4, #4]
}
daea: e8bd 4010 ldmia.w sp!, {r4, lr}
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
daee: 4718 bx r3
daf0: 2104 movs r1, #4
daf2: e7f9 b.n dae8 <anim_mark_list_change+0x14>
daf4: 200085f4 .word 0x200085f4
daf8: 2000863c .word 0x2000863c
dafc: 0000e6f1 .word 0x0000e6f1
db00: 0000fbc9 .word 0x0000fbc9
0000db04 <anim_task>:
{
db04: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
db08: 484f ldr r0, [pc, #316] ; (dc48 <anim_task+0x144>)
db0a: 4d50 ldr r5, [pc, #320] ; (dc4c <anim_task+0x148>)
db0c: 4c4e ldr r4, [pc, #312] ; (dc48 <anim_task+0x144>)
db0e: 4e50 ldr r6, [pc, #320] ; (dc50 <anim_task+0x14c>)
{
db10: b090 sub sp, #64 ; 0x40
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
db12: 47a8 blx r5
db14: b9a0 cbnz r0, db40 <anim_task+0x3c>
uint32_t elaps = lv_tick_elaps(last_task_run);
db16: 4e4f ldr r6, [pc, #316] ; (dc54 <anim_task+0x150>)
db18: 4b4f ldr r3, [pc, #316] ; (dc58 <anim_task+0x154>)
db1a: 68b0 ldr r0, [r6, #8]
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
db1c: f8df 8128 ldr.w r8, [pc, #296] ; dc48 <anim_task+0x144>
db20: f8df 912c ldr.w r9, [pc, #300] ; dc50 <anim_task+0x14c>
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
db24: f8df a148 ldr.w sl, [pc, #328] ; dc70 <anim_task+0x16c>
uint32_t elaps = lv_tick_elaps(last_task_run);
db28: 4798 blx r3
db2a: 4607 mov r7, r0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
db2c: 4846 ldr r0, [pc, #280] ; (dc48 <anim_task+0x144>)
db2e: 47a8 blx r5
db30: 4604 mov r4, r0
while(a != NULL) {
db32: b97c cbnz r4, db54 <anim_task+0x50>
last_task_run = lv_tick_get();
db34: 4b49 ldr r3, [pc, #292] ; (dc5c <anim_task+0x158>)
db36: 4798 blx r3
db38: 60b0 str r0, [r6, #8]
}
db3a: b010 add sp, #64 ; 0x40
db3c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
a->has_run = 0;
db40: f890 303c ldrb.w r3, [r0, #60] ; 0x3c
db44: f36f 0341 bfc r3, #1, #1
db48: f880 303c strb.w r3, [r0, #60] ; 0x3c
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
db4c: 4601 mov r1, r0
db4e: 4620 mov r0, r4
db50: 47b0 blx r6
db52: e7df b.n db14 <anim_task+0x10>
anim_list_changed = false;
db54: 2300 movs r3, #0
db56: 7033 strb r3, [r6, #0]
if(!a->has_run) {
db58: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
db5c: 079a lsls r2, r3, #30
db5e: d46e bmi.n dc3e <anim_task+0x13a>
a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/
db60: f043 0302 orr.w r3, r3, #2
db64: f884 303c strb.w r3, [r4, #60] ; 0x3c
int32_t new_act_time = a->act_time + elaps;
db68: 6a63 ldr r3, [r4, #36] ; 0x24
if(a->act_time <= 0 && new_act_time >= 0) {
db6a: 2b00 cmp r3, #0
db6c: dc05 bgt.n db7a <anim_task+0x76>
db6e: 42fb cmn r3, r7
db70: d403 bmi.n db7a <anim_task+0x76>
if(a->start_cb) a->start_cb(a);
db72: 68a3 ldr r3, [r4, #8]
db74: b10b cbz r3, db7a <anim_task+0x76>
db76: 4620 mov r0, r4
db78: 4798 blx r3
a->act_time += elaps;
db7a: 6a63 ldr r3, [r4, #36] ; 0x24
db7c: 443b add r3, r7
if(a->act_time >= 0) {
db7e: 2b00 cmp r3, #0
a->act_time += elaps;
db80: 6263 str r3, [r4, #36] ; 0x24
if(a->act_time >= 0) {
db82: db2d blt.n dbe0 <anim_task+0xdc>
if(a->act_time > a->time) a->act_time = a->time;
db84: 6a22 ldr r2, [r4, #32]
if(a->path.cb) new_value = a->path.cb(&a->path, a);
db86: 4620 mov r0, r4
if(a->act_time > a->time) a->act_time = a->time;
db88: 4293 cmp r3, r2
if(a->path.cb) new_value = a->path.cb(&a->path, a);
db8a: f850 3f10 ldr.w r3, [r0, #16]!
if(a->act_time > a->time) a->act_time = a->time;
db8e: bfc8 it gt
db90: 6262 strgt r2, [r4, #36] ; 0x24
if(a->path.cb) new_value = a->path.cb(&a->path, a);
db92: 4621 mov r1, r4
db94: b353 cbz r3, dbec <anim_task+0xe8>
db96: 4798 blx r3
if(a->exec_cb) a->exec_cb(a->var, new_value);
db98: 6863 ldr r3, [r4, #4]
db9a: b113 cbz r3, dba2 <anim_task+0x9e>
db9c: b201 sxth r1, r0
db9e: 6820 ldr r0, [r4, #0]
dba0: 4798 blx r3
if(a->act_time >= a->time) {
dba2: e9d4 3208 ldrd r3, r2, [r4, #32]
dba6: 429a cmp r2, r3
dba8: db1a blt.n dbe0 <anim_task+0xdc>
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
dbaa: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
dbae: 6ae1 ldr r1, [r4, #44] ; 0x2c
dbb0: f013 0301 ands.w r3, r3, #1
dbb4: d123 bne.n dbfe <anim_task+0xfa>
dbb6: 8ea2 ldrh r2, [r4, #52] ; 0x34
dbb8: b9da cbnz r2, dbf2 <anim_task+0xee>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
dbba: 2900 cmp r1, #0
dbbc: d13c bne.n dc38 <anim_task+0x134>
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
dbbe: 2240 movs r2, #64 ; 0x40
dbc0: 4621 mov r1, r4
dbc2: 4668 mov r0, sp
dbc4: 47d0 blx sl
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
dbc6: 4621 mov r1, r4
dbc8: 4b25 ldr r3, [pc, #148] ; (dc60 <anim_task+0x15c>)
dbca: 4640 mov r0, r8
dbcc: 4798 blx r3
lv_mem_free(a);
dbce: 4b25 ldr r3, [pc, #148] ; (dc64 <anim_task+0x160>)
dbd0: 4620 mov r0, r4
dbd2: 4798 blx r3
anim_mark_list_change();
dbd4: 4b24 ldr r3, [pc, #144] ; (dc68 <anim_task+0x164>)
dbd6: 4798 blx r3
if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp);
dbd8: 9b03 ldr r3, [sp, #12]
dbda: b10b cbz r3, dbe0 <anim_task+0xdc>
dbdc: 4668 mov r0, sp
dbde: 4798 blx r3
if(anim_list_changed)
dbe0: 7833 ldrb r3, [r6, #0]
dbe2: b363 cbz r3, dc3e <anim_task+0x13a>
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dbe4: 4640 mov r0, r8
dbe6: 47a8 blx r5
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dbe8: 4604 mov r4, r0
dbea: e7a2 b.n db32 <anim_task+0x2e>
else new_value = lv_anim_path_linear(&a->path, a);
dbec: 4b1f ldr r3, [pc, #124] ; (dc6c <anim_task+0x168>)
dbee: 4798 blx r3
dbf0: e7d2 b.n db98 <anim_task+0x94>
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
dbf2: f64f 70ff movw r0, #65535 ; 0xffff
dbf6: 4282 cmp r2, r0
dbf8: d004 beq.n dc04 <anim_task+0x100>
a->repeat_cnt--;
dbfa: 3a01 subs r2, #1
dbfc: 86a2 strh r2, [r4, #52] ; 0x34
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
dbfe: 8ea2 ldrh r2, [r4, #52] ; 0x34
dc00: 2a00 cmp r2, #0
dc02: d0da beq.n dbba <anim_task+0xb6>
a->act_time = -a->repeat_delay; /*Restart the animation*/
dc04: 6b22 ldr r2, [r4, #48] ; 0x30
dc06: 4252 negs r2, r2
dc08: 6262 str r2, [r4, #36] ; 0x24
if(a->playback_time != 0) {
dc0a: 2900 cmp r1, #0
dc0c: d0e8 beq.n dbe0 <anim_task+0xdc>
if(a->playback_now == 0) a->act_time = -a->playback_delay;
dc0e: b913 cbnz r3, dc16 <anim_task+0x112>
dc10: 6aa2 ldr r2, [r4, #40] ; 0x28
dc12: 4252 negs r2, r2
dc14: 6262 str r2, [r4, #36] ; 0x24
a->playback_now = a->playback_now == 0 ? 1 : 0;
dc16: f083 0201 eor.w r2, r3, #1
dc1a: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
dc1e: f362 0300 bfi r3, r2, #0, #1
a->start = a->end;
dc22: e9d4 0206 ldrd r0, r2, [r4, #24]
a->playback_now = a->playback_now == 0 ? 1 : 0;
dc26: f884 303c strb.w r3, [r4, #60] ; 0x3c
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
dc2a: 07db lsls r3, r3, #31
dc2c: bf58 it pl
dc2e: 6ba1 ldrpl r1, [r4, #56] ; 0x38
dc30: 6221 str r1, [r4, #32]
a->end = tmp;
dc32: e9c4 2006 strd r2, r0, [r4, #24]
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
dc36: e7d3 b.n dbe0 <anim_task+0xdc>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
dc38: 2b00 cmp r3, #0
dc3a: d0e3 beq.n dc04 <anim_task+0x100>
dc3c: e7bf b.n dbbe <anim_task+0xba>
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dc3e: 4621 mov r1, r4
dc40: 4640 mov r0, r8
dc42: 47c8 blx r9
dc44: e7d0 b.n dbe8 <anim_task+0xe4>
dc46: bf00 nop
dc48: 2000863c .word 0x2000863c
dc4c: 0000e6f1 .word 0x0000e6f1
dc50: 0000e6fd .word 0x0000e6fd
dc54: 200085f4 .word 0x200085f4
dc58: 0000daa1 .word 0x0000daa1
dc5c: 0000da8d .word 0x0000da8d
dc60: 0000e7b5 .word 0x0000e7b5
dc64: 0000eb2d .word 0x0000eb2d
dc68: 0000dad5 .word 0x0000dad5
dc6c: 0000dab1 .word 0x0000dab1
dc70: 0000ec79 .word 0x0000ec79
0000dc74 <_lv_anim_core_init>:
{
dc74: b538 push {r3, r4, r5, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
dc76: 2140 movs r1, #64 ; 0x40
dc78: 4809 ldr r0, [pc, #36] ; (dca0 <_lv_anim_core_init+0x2c>)
dc7a: 4b0a ldr r3, [pc, #40] ; (dca4 <_lv_anim_core_init+0x30>)
last_task_run = lv_tick_get();
dc7c: 4c0a ldr r4, [pc, #40] ; (dca8 <_lv_anim_core_init+0x34>)
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
dc7e: 4d0b ldr r5, [pc, #44] ; (dcac <_lv_anim_core_init+0x38>)
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
dc80: 4798 blx r3
last_task_run = lv_tick_get();
dc82: 4b0b ldr r3, [pc, #44] ; (dcb0 <_lv_anim_core_init+0x3c>)
dc84: 4798 blx r3
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
dc86: 2300 movs r3, #0
last_task_run = lv_tick_get();
dc88: 60a0 str r0, [r4, #8]
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
dc8a: 2204 movs r2, #4
dc8c: 211e movs r1, #30
dc8e: 4809 ldr r0, [pc, #36] ; (dcb4 <_lv_anim_core_init+0x40>)
dc90: 47a8 blx r5
anim_mark_list_change(); /*Turn off the animation task*/
dc92: 4b09 ldr r3, [pc, #36] ; (dcb8 <_lv_anim_core_init+0x44>)
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
dc94: 6060 str r0, [r4, #4]
anim_mark_list_change(); /*Turn off the animation task*/
dc96: 4798 blx r3
anim_list_changed = false; /*The list has not actaully changed*/
dc98: 2300 movs r3, #0
dc9a: 7023 strb r3, [r4, #0]
}
dc9c: bd38 pop {r3, r4, r5, pc}
dc9e: bf00 nop
dca0: 2000863c .word 0x2000863c
dca4: 0000e64d .word 0x0000e64d
dca8: 200085f4 .word 0x200085f4
dcac: 0000fc2d .word 0x0000fc2d
dcb0: 0000da8d .word 0x0000da8d
dcb4: 0000db05 .word 0x0000db05
dcb8: 0000dad5 .word 0x0000dad5
0000dcbc <lv_anim_init>:
{
dcbc: b510 push {r4, lr}
_lv_memset_00(a, sizeof(lv_anim_t));
dcbe: 4b0b ldr r3, [pc, #44] ; (dcec <lv_anim_init+0x30>)
{
dcc0: 4604 mov r4, r0
_lv_memset_00(a, sizeof(lv_anim_t));
dcc2: 2140 movs r1, #64 ; 0x40
dcc4: 4798 blx r3
a->time = 500;
dcc6: f44f 73fa mov.w r3, #500 ; 0x1f4
dcca: 6223 str r3, [r4, #32]
a->end = 100;
dccc: 2100 movs r1, #0
dcce: 2364 movs r3, #100 ; 0x64
dcd0: e9c4 1306 strd r1, r3, [r4, #24]
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
dcd4: 4b06 ldr r3, [pc, #24] ; (dcf0 <lv_anim_init+0x34>)
dcd6: 6123 str r3, [r4, #16]
a->repeat_cnt = 1;
dcd8: 2301 movs r3, #1
dcda: 86a3 strh r3, [r4, #52] ; 0x34
a->early_apply = 1;
dcdc: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
dce0: f043 0301 orr.w r3, r3, #1
dce4: f884 3036 strb.w r3, [r4, #54] ; 0x36
}
dce8: bd10 pop {r4, pc}
dcea: bf00 nop
dcec: 0000f061 .word 0x0000f061
dcf0: 0000dab1 .word 0x0000dab1
0000dcf4 <lv_anim_del>:
{
dcf4: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dcf8: 4b14 ldr r3, [pc, #80] ; (dd4c <lv_anim_del+0x58>)
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dcfa: f8df 9054 ldr.w r9, [pc, #84] ; dd50 <lv_anim_del+0x5c>
dcfe: f8df a05c ldr.w sl, [pc, #92] ; dd5c <lv_anim_del+0x68>
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
dd02: f8df b05c ldr.w fp, [pc, #92] ; dd60 <lv_anim_del+0x6c>
{
dd06: 4606 mov r6, r0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dd08: 4811 ldr r0, [pc, #68] ; (dd50 <lv_anim_del+0x5c>)
{
dd0a: 460d mov r5, r1
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dd0c: 4798 blx r3
bool del = false;
dd0e: f04f 0800 mov.w r8, #0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dd12: 4604 mov r4, r0
while(a != NULL) {
dd14: b914 cbnz r4, dd1c <lv_anim_del+0x28>
}
dd16: 4640 mov r0, r8
dd18: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dd1c: 4621 mov r1, r4
dd1e: 4648 mov r0, r9
dd20: 47d0 blx sl
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
dd22: 6823 ldr r3, [r4, #0]
dd24: 42b3 cmp r3, r6
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dd26: 4607 mov r7, r0
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
dd28: d10d bne.n dd46 <lv_anim_del+0x52>
dd2a: 6863 ldr r3, [r4, #4]
dd2c: 42ab cmp r3, r5
dd2e: d000 beq.n dd32 <lv_anim_del+0x3e>
dd30: b94d cbnz r5, dd46 <lv_anim_del+0x52>
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
dd32: 4621 mov r1, r4
dd34: 4648 mov r0, r9
dd36: 47d8 blx fp
lv_mem_free(a);
dd38: 4b06 ldr r3, [pc, #24] ; (dd54 <lv_anim_del+0x60>)
dd3a: 4620 mov r0, r4
dd3c: 4798 blx r3
anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in
dd3e: 4b06 ldr r3, [pc, #24] ; (dd58 <lv_anim_del+0x64>)
dd40: 4798 blx r3
del = true;
dd42: f04f 0801 mov.w r8, #1
dd46: 463c mov r4, r7
dd48: e7e4 b.n dd14 <lv_anim_del+0x20>
dd4a: bf00 nop
dd4c: 0000e6f1 .word 0x0000e6f1
dd50: 2000863c .word 0x2000863c
dd54: 0000eb2d .word 0x0000eb2d
dd58: 0000dad5 .word 0x0000dad5
dd5c: 0000e6fd .word 0x0000e6fd
dd60: 0000e7b5 .word 0x0000e7b5
0000dd64 <lv_anim_start>:
{
dd64: b573 push {r0, r1, r4, r5, r6, lr}
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
dd66: 6841 ldr r1, [r0, #4]
{
dd68: 4605 mov r5, r0
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
dd6a: b111 cbz r1, dd72 <lv_anim_start+0xe>
dd6c: 6800 ldr r0, [r0, #0]
dd6e: 4b1d ldr r3, [pc, #116] ; (dde4 <lv_anim_start+0x80>)
dd70: 4798 blx r3
if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) {
dd72: 481d ldr r0, [pc, #116] ; (dde8 <lv_anim_start+0x84>)
dd74: 4b1d ldr r3, [pc, #116] ; (ddec <lv_anim_start+0x88>)
dd76: 4798 blx r3
dd78: b120 cbz r0, dd84 <lv_anim_start+0x20>
last_task_run = lv_tick_get() - 1;
dd7a: 4b1d ldr r3, [pc, #116] ; (ddf0 <lv_anim_start+0x8c>)
dd7c: 4798 blx r3
dd7e: 4b1d ldr r3, [pc, #116] ; (ddf4 <lv_anim_start+0x90>)
dd80: 3801 subs r0, #1
dd82: 6098 str r0, [r3, #8]
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
dd84: 4b1c ldr r3, [pc, #112] ; (ddf8 <lv_anim_start+0x94>)
dd86: 4818 ldr r0, [pc, #96] ; (dde8 <lv_anim_start+0x84>)
dd88: 4798 blx r3
LV_ASSERT_MEM(new_anim);
dd8a: 4b1c ldr r3, [pc, #112] ; (ddfc <lv_anim_start+0x98>)
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
dd8c: 4604 mov r4, r0
LV_ASSERT_MEM(new_anim);
dd8e: 4798 blx r3
dd90: 4606 mov r6, r0
dd92: b960 cbnz r0, ddae <lv_anim_start+0x4a>
dd94: 4b1a ldr r3, [pc, #104] ; (de00 <lv_anim_start+0x9c>)
dd96: 491b ldr r1, [pc, #108] ; (de04 <lv_anim_start+0xa0>)
dd98: 9300 str r3, [sp, #0]
dd9a: 226a movs r2, #106 ; 0x6a
dd9c: 2003 movs r0, #3
dd9e: 4d1a ldr r5, [pc, #104] ; (de08 <lv_anim_start+0xa4>)
dda0: 47a8 blx r5
dda2: 481a ldr r0, [pc, #104] ; (de0c <lv_anim_start+0xa8>)
dda4: 491a ldr r1, [pc, #104] ; (de10 <lv_anim_start+0xac>)
dda6: 4622 mov r2, r4
dda8: 4633 mov r3, r6
ddaa: 4788 blx r1
ddac: e7fe b.n ddac <lv_anim_start+0x48>
if(new_anim == NULL) return;
ddae: b1b4 cbz r4, ddde <lv_anim_start+0x7a>
a->time_orig = a->time;
ddb0: 6a2b ldr r3, [r5, #32]
ddb2: 63ab str r3, [r5, #56] ; 0x38
_lv_memcpy(new_anim, a, sizeof(lv_anim_t));
ddb4: 2240 movs r2, #64 ; 0x40
ddb6: 4b17 ldr r3, [pc, #92] ; (de14 <lv_anim_start+0xb0>)
ddb8: 4629 mov r1, r5
ddba: 4620 mov r0, r4
ddbc: 4798 blx r3
if(new_anim->early_apply) {
ddbe: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
ddc2: 07db lsls r3, r3, #31
ddc4: d506 bpl.n ddd4 <lv_anim_start+0x70>
if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start);
ddc6: 6863 ldr r3, [r4, #4]
ddc8: b123 cbz r3, ddd4 <lv_anim_start+0x70>
ddca: 6820 ldr r0, [r4, #0]
ddcc: b110 cbz r0, ddd4 <lv_anim_start+0x70>
ddce: f9b4 1018 ldrsh.w r1, [r4, #24]
ddd2: 4798 blx r3
anim_mark_list_change();
ddd4: 4b10 ldr r3, [pc, #64] ; (de18 <lv_anim_start+0xb4>)
}
ddd6: b002 add sp, #8
ddd8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
anim_mark_list_change();
dddc: 4718 bx r3
}
ddde: b002 add sp, #8
dde0: bd70 pop {r4, r5, r6, pc}
dde2: bf00 nop
dde4: 0000dcf5 .word 0x0000dcf5
dde8: 2000863c .word 0x2000863c
ddec: 0000e919 .word 0x0000e919
ddf0: 0000da8d .word 0x0000da8d
ddf4: 200085f4 .word 0x200085f4
ddf8: 0000e661 .word 0x0000e661
ddfc: 00001795 .word 0x00001795
de00: 00023f58 .word 0x00023f58
de04: 00023f28 .word 0x00023f28
de08: 0000e931 .word 0x0000e931
de0c: 0001ee02 .word 0x0001ee02
de10: 0000179d .word 0x0000179d
de14: 0000ec79 .word 0x0000ec79
de18: 0000dad5 .word 0x0000dad5
0000de1c <lv_anim_get>:
{
de1c: b5f8 push {r3, r4, r5, r6, r7, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
de1e: 4b09 ldr r3, [pc, #36] ; (de44 <lv_anim_get+0x28>)
de20: 4e09 ldr r6, [pc, #36] ; (de48 <lv_anim_get+0x2c>)
de22: 4f0a ldr r7, [pc, #40] ; (de4c <lv_anim_get+0x30>)
{
de24: 4604 mov r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
de26: 4808 ldr r0, [pc, #32] ; (de48 <lv_anim_get+0x2c>)
{
de28: 460d mov r5, r1
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
de2a: 4798 blx r3
de2c: b900 cbnz r0, de30 <lv_anim_get+0x14>
}
de2e: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(a->var == var && a->exec_cb == exec_cb) {
de30: 6803 ldr r3, [r0, #0]
de32: 42a3 cmp r3, r4
de34: d102 bne.n de3c <lv_anim_get+0x20>
de36: 6843 ldr r3, [r0, #4]
de38: 42ab cmp r3, r5
de3a: d0f8 beq.n de2e <lv_anim_get+0x12>
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
de3c: 4601 mov r1, r0
de3e: 4630 mov r0, r6
de40: 47b8 blx r7
de42: e7f3 b.n de2c <lv_anim_get+0x10>
de44: 0000e6f1 .word 0x0000e6f1
de48: 2000863c .word 0x2000863c
de4c: 0000e6fd .word 0x0000e6fd
0000de50 <lv_anim_speed_to_time>:
int32_t d = LV_MATH_ABS((int32_t)start - end);
de50: 1a89 subs r1, r1, r2
de52: 2900 cmp r1, #0
de54: bfb8 it lt
de56: 4249 neglt r1, r1
uint32_t time = (int32_t)((int32_t)(d * 1000) / speed);
de58: f44f 727a mov.w r2, #1000 ; 0x3e8
de5c: 4351 muls r1, r2
de5e: fbb1 f0f0 udiv r0, r1, r0
de62: 2801 cmp r0, #1
de64: bf38 it cc
de66: 2001 movcc r0, #1
return time;
de68: f64f 73ff movw r3, #65535 ; 0xffff
de6c: 4298 cmp r0, r3
de6e: bf28 it cs
de70: 4618 movcs r0, r3
}
de72: b280 uxth r0, r0
de74: 4770 bx lr
0000de76 <lv_point_within_circle.isra.0>:
/**********************
* STATIC FUNCTIONS
**********************/
static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p)
de76: b530 push {r4, r5, lr}
{
lv_coord_t r = (area->x2 - area->x1) / 2;
de78: f9b0 3004 ldrsh.w r3, [r0, #4]
de7c: f9b0 5000 ldrsh.w r5, [r0]
lv_coord_t cx = area->x1 + r;
lv_coord_t cy = area->y1 + r;
/*Simplify the code by moving everything to (0, 0) */
lv_coord_t px = p->x - cx;
lv_coord_t py = p->y - cy;
de80: 8840 ldrh r0, [r0, #2]
lv_coord_t r = (area->x2 - area->x1) / 2;
de82: 1b5b subs r3, r3, r5
de84: eb03 73d3 add.w r3, r3, r3, lsr #31
lv_coord_t py = p->y - cy;
de88: 1a12 subs r2, r2, r0
lv_coord_t r = (area->x2 - area->x1) / 2;
de8a: 105c asrs r4, r3, #1
lv_coord_t px = p->x - cx;
de8c: 1b49 subs r1, r1, r5
lv_coord_t cx = area->x1 + r;
de8e: f3c3 034f ubfx r3, r3, #1, #16
lv_coord_t px = p->x - cx;
de92: 1ac9 subs r1, r1, r3
lv_coord_t py = p->y - cy;
de94: 1ad3 subs r3, r2, r3
int32_t r_sqrd = r * r;
int32_t dist = (px * px) + (py * py);
de96: fb13 f303 smulbb r3, r3, r3
int32_t r_sqrd = r * r;
de9a: 4364 muls r4, r4
int32_t dist = (px * px) + (py * py);
de9c: fb11 3101 smlabb r1, r1, r1, r3
if(dist <= r_sqrd)
return true;
else
return false;
}
dea0: 428c cmp r4, r1
dea2: bfb4 ite lt
dea4: 2000 movlt r0, #0
dea6: 2001 movge r0, #1
dea8: bd30 pop {r4, r5, pc}
0000deaa <lv_area_set_height>:
area_p->y2 = area_p->y1 + h - 1;
deaa: 8843 ldrh r3, [r0, #2]
deac: 3901 subs r1, #1
deae: 4419 add r1, r3
deb0: 80c1 strh r1, [r0, #6]
}
deb2: 4770 bx lr
0000deb4 <lv_area_get_size>:
size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1);
deb4: f9b0 3000 ldrsh.w r3, [r0]
deb8: f9b0 2004 ldrsh.w r2, [r0, #4]
debc: 1ad2 subs r2, r2, r3
debe: f9b0 3006 ldrsh.w r3, [r0, #6]
dec2: f9b0 0002 ldrsh.w r0, [r0, #2]
dec6: 1a18 subs r0, r3, r0
dec8: 3001 adds r0, #1
}
deca: fb02 0000 mla r0, r2, r0, r0
dece: 4770 bx lr
0000ded0 <_lv_area_intersect>:
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
ded0: f9b1 3000 ldrsh.w r3, [r1]
{
ded4: b570 push {r4, r5, r6, lr}
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
ded6: f9b2 5000 ldrsh.w r5, [r2]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
deda: f9b1 4002 ldrsh.w r4, [r1, #2]
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
dede: f9b1 6004 ldrsh.w r6, [r1, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
dee2: f9b1 1006 ldrsh.w r1, [r1, #6]
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
dee6: 429d cmp r5, r3
dee8: bfb8 it lt
deea: 461d movlt r5, r3
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
deec: f9b2 3002 ldrsh.w r3, [r2, #2]
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
def0: 8005 strh r5, [r0, #0]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
def2: 42a3 cmp r3, r4
def4: bfb8 it lt
def6: 4623 movlt r3, r4
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
def8: f9b2 4004 ldrsh.w r4, [r2, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
defc: f9b2 2006 ldrsh.w r2, [r2, #6]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
df00: 8043 strh r3, [r0, #2]
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
df02: 42b4 cmp r4, r6
df04: bfa8 it ge
df06: 4634 movge r4, r6
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
df08: 428a cmp r2, r1
df0a: bfa8 it ge
df0c: 460a movge r2, r1
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
df0e: 42a5 cmp r5, r4
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
df10: 8084 strh r4, [r0, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
df12: 80c2 strh r2, [r0, #6]
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
df14: dc04 bgt.n df20 <_lv_area_intersect+0x50>
df16: 4293 cmp r3, r2
df18: bfcc ite gt
df1a: 2000 movgt r0, #0
df1c: 2001 movle r0, #1
}
df1e: bd70 pop {r4, r5, r6, pc}
union_ok = false;
df20: 2000 movs r0, #0
df22: e7fc b.n df1e <_lv_area_intersect+0x4e>
0000df24 <_lv_area_join>:
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
df24: f9b2 3000 ldrsh.w r3, [r2]
{
df28: b510 push {r4, lr}
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
df2a: f9b1 4000 ldrsh.w r4, [r1]
df2e: 42a3 cmp r3, r4
df30: bfa8 it ge
df32: 4623 movge r3, r4
df34: 8003 strh r3, [r0, #0]
a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1);
df36: f9b1 4002 ldrsh.w r4, [r1, #2]
df3a: f9b2 3002 ldrsh.w r3, [r2, #2]
df3e: 42a3 cmp r3, r4
df40: bfa8 it ge
df42: 4623 movge r3, r4
df44: 8043 strh r3, [r0, #2]
a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2);
df46: f9b1 4004 ldrsh.w r4, [r1, #4]
df4a: f9b2 3004 ldrsh.w r3, [r2, #4]
df4e: 42a3 cmp r3, r4
df50: bfb8 it lt
df52: 4623 movlt r3, r4
df54: 8083 strh r3, [r0, #4]
a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2);
df56: f9b2 3006 ldrsh.w r3, [r2, #6]
df5a: f9b1 2006 ldrsh.w r2, [r1, #6]
df5e: 4293 cmp r3, r2
df60: bfb8 it lt
df62: 4613 movlt r3, r2
df64: 80c3 strh r3, [r0, #6]
}
df66: bd10 pop {r4, pc}
0000df68 <_lv_area_is_point_on>:
{
df68: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
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))) {
df6c: f9b1 9000 ldrsh.w r9, [r1]
df70: f9b0 4000 ldrsh.w r4, [r0]
df74: 45a1 cmp r9, r4
{
df76: b087 sub sp, #28
df78: 4688 mov r8, 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))) {
df7a: f2c0 808b blt.w e094 <_lv_area_is_point_on+0x12c>
df7e: f9b0 3004 ldrsh.w r3, [r0, #4]
df82: 9300 str r3, [sp, #0]
df84: 4599 cmp r9, r3
df86: f300 8085 bgt.w e094 <_lv_area_is_point_on+0x12c>
df8a: f9b1 a002 ldrsh.w sl, [r1, #2]
df8e: f9b0 b002 ldrsh.w fp, [r0, #2]
df92: 45da cmp sl, fp
df94: db7e blt.n e094 <_lv_area_is_point_on+0x12c>
df96: f9b0 3006 ldrsh.w r3, [r0, #6]
df9a: 459a cmp sl, r3
df9c: dc7a bgt.n e094 <_lv_area_is_point_on+0x12c>
if(radius <= 0) {
df9e: 2a00 cmp r2, #0
dfa0: dc03 bgt.n dfaa <_lv_area_is_point_on+0x42>
return true;
dfa2: 2001 movs r0, #1
}
dfa4: b007 add sp, #28
dfa6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
* @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);
dfaa: f8bd 0000 ldrh.w r0, [sp]
dfae: 9002 str r0, [sp, #8]
dfb0: b2a6 uxth r6, r4
dfb2: 3001 adds r0, #1
dfb4: 1b80 subs r0, r0, r6
* @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);
dfb6: b29f uxth r7, r3
dfb8: fa1f fc8b uxth.w ip, fp
corner_area.x1 = a_p->x1;
dfbc: f8ad 4010 strh.w r4, [sp, #16]
dfc0: 1c7d adds r5, r7, #1
lv_coord_t w = lv_area_get_width(a_p) / 2;
dfc2: f3c0 34c0 ubfx r4, r0, #15, #1
dfc6: fa04 f080 sxtah r0, r4, r0
dfca: eba5 040c sub.w r4, r5, ip
lv_coord_t h = lv_area_get_height(a_p) / 2;
dfce: f3c4 35c0 ubfx r5, r4, #15, #1
dfd2: fa05 f584 sxtah r5, r5, r4
lv_coord_t max_radius = LV_MATH_MIN(w, h);
dfd6: 106d asrs r5, r5, #1
dfd8: 1044 asrs r4, r0, #1
corner_area.x2 = a_p->x1 + radius;
dfda: 42ac cmp r4, r5
dfdc: bfa8 it ge
dfde: 462c movge r4, r5
dfe0: 42a2 cmp r2, r4
dfe2: bfa8 it ge
dfe4: 4622 movge r2, r4
dfe6: fa16 f682 uxtah r6, r6, r2
dfea: b295 uxth r5, r2
corner_area.y2 = a_p->y1 + radius;
dfec: fa1c f282 uxtah r2, ip, r2
dff0: 9303 str r3, [sp, #12]
dff2: b214 sxth r4, r2
dff4: b293 uxth r3, r2
corner_area.x2 = a_p->x1 + radius;
dff6: b2b6 uxth r6, r6
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
dff8: 2200 movs r2, #0
dffa: a804 add r0, sp, #16
corner_area.y2 = a_p->y1 + radius;
dffc: 9301 str r3, [sp, #4]
corner_area.x2 = a_p->x1 + radius;
dffe: f8ad 6014 strh.w r6, [sp, #20]
corner_area.y1 = a_p->y1;
e002: f8ad b012 strh.w fp, [sp, #18]
corner_area.y2 = a_p->y1 + radius;
e006: f8ad 4016 strh.w r4, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e00a: f7ff ffad bl df68 <_lv_area_is_point_on>
e00e: 9b03 ldr r3, [sp, #12]
e010: 4602 mov r2, r0
e012: b138 cbz r0, e024 <_lv_area_is_point_on+0xbc>
corner_area.x2 += radius;
e014: 442e add r6, r5
e016: f8ad 6014 strh.w r6, [sp, #20]
corner_area.y2 += radius;
e01a: 9b01 ldr r3, [sp, #4]
e01c: 441d add r5, r3
e01e: f8ad 5016 strh.w r5, [sp, #22]
e022: e011 b.n e048 <_lv_area_is_point_on+0xe0>
corner_area.y1 = a_p->y2 - radius;
e024: 1b7f subs r7, r7, r5
e026: b2bf uxth r7, r7
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e028: 4641 mov r1, r8
e02a: a804 add r0, sp, #16
corner_area.y1 = a_p->y2 - radius;
e02c: f8ad 7012 strh.w r7, [sp, #18]
corner_area.y2 = a_p->y2;
e030: f8ad 3016 strh.w r3, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e034: f7ff ff98 bl df68 <_lv_area_is_point_on>
e038: 4602 mov r2, r0
e03a: b158 cbz r0, e054 <_lv_area_is_point_on+0xec>
corner_area.x2 += radius;
e03c: 442e add r6, r5
e03e: f8ad 6014 strh.w r6, [sp, #20]
corner_area.y1 -= radius;
e042: 1b7d subs r5, r7, r5
e044: f8ad 5012 strh.w r5, [sp, #18]
return lv_point_within_circle(&corner_area, p_p);
e048: 4b13 ldr r3, [pc, #76] ; (e098 <_lv_area_is_point_on+0x130>)
e04a: 4652 mov r2, sl
e04c: 4649 mov r1, r9
e04e: a804 add r0, sp, #16
e050: 4798 blx r3
e052: e7a7 b.n dfa4 <_lv_area_is_point_on+0x3c>
corner_area.x1 = a_p->x2 - radius;
e054: 9b02 ldr r3, [sp, #8]
e056: 1b5e subs r6, r3, r5
e058: b2b6 uxth r6, r6
corner_area.x2 = a_p->x2;
e05a: 9b00 ldr r3, [sp, #0]
corner_area.x1 = a_p->x2 - radius;
e05c: f8ad 6010 strh.w r6, [sp, #16]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e060: 4641 mov r1, r8
e062: a804 add r0, sp, #16
corner_area.x2 = a_p->x2;
e064: f8ad 3014 strh.w r3, [sp, #20]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e068: f7ff ff7e bl df68 <_lv_area_is_point_on>
e06c: 4602 mov r2, r0
e06e: b118 cbz r0, e078 <_lv_area_is_point_on+0x110>
corner_area.x1 -= radius;
e070: 1b76 subs r6, r6, r5
e072: f8ad 6010 strh.w r6, [sp, #16]
e076: e7e4 b.n e042 <_lv_area_is_point_on+0xda>
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e078: 4641 mov r1, r8
e07a: a804 add r0, sp, #16
corner_area.y1 = a_p->y1;
e07c: f8ad b012 strh.w fp, [sp, #18]
corner_area.y2 = a_p->y1 + radius;
e080: f8ad 4016 strh.w r4, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e084: f7ff ff70 bl df68 <_lv_area_is_point_on>
e088: 2800 cmp r0, #0
e08a: d08a beq.n dfa2 <_lv_area_is_point_on+0x3a>
corner_area.x1 -= radius;
e08c: 1b76 subs r6, r6, r5
e08e: f8ad 6010 strh.w r6, [sp, #16]
e092: e7c2 b.n e01a <_lv_area_is_point_on+0xb2>
return false;
e094: 2000 movs r0, #0
e096: e785 b.n dfa4 <_lv_area_is_point_on+0x3c>
e098: 0000de77 .word 0x0000de77
0000e09c <_lv_area_is_on>:
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)) {
e09c: f9b0 2000 ldrsh.w r2, [r0]
e0a0: f9b1 3004 ldrsh.w r3, [r1, #4]
e0a4: 429a cmp r2, r3
e0a6: dc14 bgt.n e0d2 <_lv_area_is_on+0x36>
e0a8: f9b0 2004 ldrsh.w r2, [r0, #4]
e0ac: f9b1 3000 ldrsh.w r3, [r1]
e0b0: 429a cmp r2, r3
e0b2: db0e blt.n e0d2 <_lv_area_is_on+0x36>
e0b4: f9b0 2002 ldrsh.w r2, [r0, #2]
e0b8: f9b1 3006 ldrsh.w r3, [r1, #6]
e0bc: 429a cmp r2, r3
e0be: dc08 bgt.n e0d2 <_lv_area_is_on+0x36>
e0c0: f9b0 0006 ldrsh.w r0, [r0, #6]
e0c4: f9b1 3002 ldrsh.w r3, [r1, #2]
e0c8: 4298 cmp r0, r3
e0ca: bfb4 ite lt
e0cc: 2000 movlt r0, #0
e0ce: 2001 movge r0, #1
e0d0: 4770 bx lr
return false;
e0d2: 2000 movs r0, #0
}
e0d4: 4770 bx lr
...
0000e0d8 <_lv_area_is_in>:
{
e0d8: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
e0dc: f9b0 7000 ldrsh.w r7, [r0]
e0e0: f9b1 3000 ldrsh.w r3, [r1]
e0e4: 42bb cmp r3, r7
{
e0e6: 4605 mov r5, r0
e0e8: 460c mov r4, r1
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
e0ea: dc24 bgt.n e136 <_lv_area_is_in+0x5e>
e0ec: f9b0 1002 ldrsh.w r1, [r0, #2]
e0f0: f9b4 3002 ldrsh.w r3, [r4, #2]
e0f4: 4299 cmp r1, r3
e0f6: db1e blt.n e136 <_lv_area_is_in+0x5e>
e0f8: f9b0 1004 ldrsh.w r1, [r0, #4]
e0fc: f9b4 3004 ldrsh.w r3, [r4, #4]
e100: 4299 cmp r1, r3
e102: dc18 bgt.n e136 <_lv_area_is_in+0x5e>
e104: f9b0 3006 ldrsh.w r3, [r0, #6]
e108: f9b4 0006 ldrsh.w r0, [r4, #6]
e10c: 4283 cmp r3, r0
e10e: bfcc ite gt
e110: 2000 movgt r0, #0
e112: 2001 movle r0, #1
if(radius == 0) return is_in;
e114: b162 cbz r2, e130 <_lv_area_is_in+0x58>
p.y = ain_p->y1;
e116: 886b ldrh r3, [r5, #2]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e118: 4e16 ldr r6, [pc, #88] ; (e174 <_lv_area_is_in+0x9c>)
e11a: 9201 str r2, [sp, #4]
e11c: a903 add r1, sp, #12
e11e: 4620 mov r0, r4
p.x = ain_p->x1;
e120: f8ad 700c strh.w r7, [sp, #12]
p.y = ain_p->y1;
e124: f8ad 300e strh.w r3, [sp, #14]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e128: 47b0 blx r6
e12a: 9a01 ldr r2, [sp, #4]
e12c: b928 cbnz r0, e13a <_lv_area_is_in+0x62>
e12e: 2000 movs r0, #0
}
e130: b004 add sp, #16
e132: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
bool is_in = false;
e136: 2000 movs r0, #0
e138: e7ec b.n e114 <_lv_area_is_in+0x3c>
p.x = ain_p->x2;
e13a: f9b5 8004 ldrsh.w r8, [r5, #4]
e13e: f8ad 800c strh.w r8, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e142: a903 add r1, sp, #12
e144: 4620 mov r0, r4
e146: 9201 str r2, [sp, #4]
e148: 47b0 blx r6
e14a: 2800 cmp r0, #0
e14c: d0ef beq.n e12e <_lv_area_is_in+0x56>
p.y = ain_p->y2;
e14e: 88eb ldrh r3, [r5, #6]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e150: 9a01 ldr r2, [sp, #4]
p.x = ain_p->x1;
e152: f8ad 700c strh.w r7, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e156: a903 add r1, sp, #12
e158: 4620 mov r0, r4
p.y = ain_p->y2;
e15a: f8ad 300e strh.w r3, [sp, #14]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e15e: 47b0 blx r6
e160: 2800 cmp r0, #0
e162: d0e4 beq.n e12e <_lv_area_is_in+0x56>
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e164: 9a01 ldr r2, [sp, #4]
p.x = ain_p->x2;
e166: f8ad 800c strh.w r8, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e16a: a903 add r1, sp, #12
e16c: 4620 mov r0, r4
e16e: 47b0 blx r6
e170: e7de b.n e130 <_lv_area_is_in+0x58>
e172: bf00 nop
e174: 0000df69 .word 0x0000df69
0000e178 <_lv_area_align>:
{
e178: b5f0 push {r4, r5, r6, r7, lr}
e17a: 8844 ldrh r4, [r0, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e17c: 8805 ldrh r5, [r0, #0]
switch(align) {
e17e: 2a14 cmp r2, #20
e180: d83f bhi.n e202 <_lv_area_align+0x8a>
e182: e8df f012 tbh [pc, r2, lsl #1]
e186: 0015 .short 0x0015
e188: 0045003b .word 0x0045003b
e18c: 0061005a .word 0x0061005a
e190: 007c0069 .word 0x007c0069
e194: 00850083 .word 0x00850083
e198: 0093008c .word 0x0093008c
e19c: 00ad00a6 .word 0x00ad00a6
e1a0: 00c600b3 .word 0x00c600b3
e1a4: 00d200cd .word 0x00d200cd
e1a8: 00dc00d7 .word 0x00dc00d7
e1ac: 00e200df .word 0x00e200df
e1b0: 8882 ldrh r2, [r0, #4]
e1b2: 880f ldrh r7, [r1, #0]
e1b4: 3201 adds r2, #1
e1b6: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e1b8: f3c2 36c0 ubfx r6, r2, #15, #1
e1bc: fa06 f682 sxtah r6, r6, r2
e1c0: 888a ldrh r2, [r1, #4]
e1c2: 3201 adds r2, #1
e1c4: 1bd2 subs r2, r2, r7
e1c6: f3c2 37c0 ubfx r7, r2, #15, #1
e1ca: fa07 f282 sxtah r2, r7, r2
e1ce: 1052 asrs r2, r2, #1
e1d0: ebc2 0266 rsb r2, r2, r6, asr #1
res->x = lv_area_get_width(base);
e1d4: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e1d6: 88c2 ldrh r2, [r0, #6]
e1d8: 3201 adds r2, #1
e1da: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
e1dc: f3c2 30c0 ubfx r0, r2, #15, #1
e1e0: fa00 f082 sxtah r0, r0, r2
e1e4: 88ca ldrh r2, [r1, #6]
e1e6: 8849 ldrh r1, [r1, #2]
e1e8: 3201 adds r2, #1
e1ea: 1a52 subs r2, r2, r1
e1ec: f3c2 31c0 ubfx r1, r2, #15, #1
e1f0: fa01 f282 sxtah r2, r1, r2
e1f4: 1052 asrs r2, r2, #1
e1f6: ebc2 0260 rsb r2, r2, r0, asr #1
e1fa: e001 b.n e200 <_lv_area_align+0x88>
res->x = 0;
e1fc: 2200 movs r2, #0
e1fe: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e200: 805a strh r2, [r3, #2]
res->x += base->x1;
e202: 881a ldrh r2, [r3, #0]
e204: 4415 add r5, r2
res->y += base->y1;
e206: 885a ldrh r2, [r3, #2]
res->x += base->x1;
e208: 801d strh r5, [r3, #0]
res->y += base->y1;
e20a: 4414 add r4, r2
e20c: 805c strh r4, [r3, #2]
}
e20e: bdf0 pop {r4, r5, r6, r7, pc}
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e210: 8882 ldrh r2, [r0, #4]
e212: 3201 adds r2, #1
e214: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e216: f3c2 30c0 ubfx r0, r2, #15, #1
e21a: fa00 f082 sxtah r0, r0, r2
e21e: 888a ldrh r2, [r1, #4]
e220: 8809 ldrh r1, [r1, #0]
e222: 3201 adds r2, #1
e224: 1a52 subs r2, r2, r1
e226: f3c2 31c0 ubfx r1, r2, #15, #1
e22a: fa01 f282 sxtah r2, r1, r2
e22e: 1052 asrs r2, r2, #1
e230: ebc2 0260 rsb r2, r2, r0, asr #1
res->x = lv_area_get_width(base);
e234: 801a strh r2, [r3, #0]
res->y = 0;
e236: 2200 movs r2, #0
e238: e7e2 b.n e200 <_lv_area_align+0x88>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e23a: 880a ldrh r2, [r1, #0]
e23c: 8889 ldrh r1, [r1, #4]
e23e: 1a52 subs r2, r2, r1
e240: 8881 ldrh r1, [r0, #4]
e242: 440a add r2, r1
e244: 1b52 subs r2, r2, r5
e246: e7f5 b.n e234 <_lv_area_align+0xbc>
res->x = 0;
e248: 2200 movs r2, #0
res->x = lv_area_get_width(base);
e24a: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e24c: 884a ldrh r2, [r1, #2]
e24e: 88c9 ldrh r1, [r1, #6]
e250: 1a52 subs r2, r2, r1
e252: 88c1 ldrh r1, [r0, #6]
e254: 440a add r2, r1
e256: e047 b.n e2e8 <_lv_area_align+0x170>
e258: 8882 ldrh r2, [r0, #4]
e25a: 880f ldrh r7, [r1, #0]
e25c: 3201 adds r2, #1
e25e: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e260: f3c2 36c0 ubfx r6, r2, #15, #1
e264: fa06 f682 sxtah r6, r6, r2
e268: 888a ldrh r2, [r1, #4]
e26a: 3201 adds r2, #1
e26c: 1bd2 subs r2, r2, r7
e26e: f3c2 37c0 ubfx r7, r2, #15, #1
e272: fa07 f282 sxtah r2, r7, r2
e276: 1052 asrs r2, r2, #1
e278: ebc2 0266 rsb r2, r2, r6, asr #1
e27c: e7e5 b.n e24a <_lv_area_align+0xd2>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e27e: 888e ldrh r6, [r1, #4]
e280: 880a ldrh r2, [r1, #0]
e282: 1b92 subs r2, r2, r6
e284: 8886 ldrh r6, [r0, #4]
e286: 4432 add r2, r6
e288: 1b52 subs r2, r2, r5
e28a: e7de b.n e24a <_lv_area_align+0xd2>
res->x = 0;
e28c: 2200 movs r2, #0
e28e: e7a1 b.n e1d4 <_lv_area_align+0x5c>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e290: 888e ldrh r6, [r1, #4]
e292: 880a ldrh r2, [r1, #0]
e294: 1b92 subs r2, r2, r6
e296: 8886 ldrh r6, [r0, #4]
e298: 4432 add r2, r6
e29a: 1b52 subs r2, r2, r5
e29c: e79a b.n e1d4 <_lv_area_align+0x5c>
res->x = 0;
e29e: 2200 movs r2, #0
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e2a0: 801a strh r2, [r3, #0]
res->y = -lv_area_get_height(to_align);
e2a2: 884a ldrh r2, [r1, #2]
e2a4: 88c9 ldrh r1, [r1, #6]
e2a6: 3a01 subs r2, #1
e2a8: 1a52 subs r2, r2, r1
e2aa: e7a9 b.n e200 <_lv_area_align+0x88>
e2ac: 8882 ldrh r2, [r0, #4]
e2ae: 880e ldrh r6, [r1, #0]
e2b0: 3201 adds r2, #1
e2b2: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e2b4: f3c2 30c0 ubfx r0, r2, #15, #1
e2b8: fa00 f082 sxtah r0, r0, r2
e2bc: 888a ldrh r2, [r1, #4]
e2be: 3201 adds r2, #1
e2c0: 1b92 subs r2, r2, r6
e2c2: f3c2 36c0 ubfx r6, r2, #15, #1
e2c6: fa06 f282 sxtah r2, r6, r2
e2ca: 1052 asrs r2, r2, #1
e2cc: ebc2 0260 rsb r2, r2, r0, asr #1
e2d0: e7e6 b.n e2a0 <_lv_area_align+0x128>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e2d2: 880a ldrh r2, [r1, #0]
e2d4: 888e ldrh r6, [r1, #4]
e2d6: 8880 ldrh r0, [r0, #4]
e2d8: 1b92 subs r2, r2, r6
e2da: 4402 add r2, r0
e2dc: 1b52 subs r2, r2, r5
e2de: e7df b.n e2a0 <_lv_area_align+0x128>
res->x = 0;
e2e0: 2200 movs r2, #0
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e2e2: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e2e4: 88c2 ldrh r2, [r0, #6]
e2e6: 3201 adds r2, #1
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e2e8: 1b12 subs r2, r2, r4
e2ea: e789 b.n e200 <_lv_area_align+0x88>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e2ec: 8882 ldrh r2, [r0, #4]
e2ee: 3201 adds r2, #1
e2f0: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e2f2: f3c2 36c0 ubfx r6, r2, #15, #1
e2f6: fa06 f682 sxtah r6, r6, r2
e2fa: 888a ldrh r2, [r1, #4]
e2fc: 8809 ldrh r1, [r1, #0]
e2fe: 3201 adds r2, #1
e300: 1a52 subs r2, r2, r1
e302: f3c2 31c0 ubfx r1, r2, #15, #1
e306: fa01 f282 sxtah r2, r1, r2
e30a: 1052 asrs r2, r2, #1
e30c: ebc2 0266 rsb r2, r2, r6, asr #1
e310: e7e7 b.n e2e2 <_lv_area_align+0x16a>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e312: 880a ldrh r2, [r1, #0]
e314: 8889 ldrh r1, [r1, #4]
e316: 1a52 subs r2, r2, r1
e318: 8881 ldrh r1, [r0, #4]
e31a: 440a add r2, r1
e31c: 1b52 subs r2, r2, r5
e31e: e7e0 b.n e2e2 <_lv_area_align+0x16a>
res->x = -lv_area_get_width(to_align);
e320: 880a ldrh r2, [r1, #0]
e322: 8889 ldrh r1, [r1, #4]
e324: 3a01 subs r2, #1
e326: 1a52 subs r2, r2, r1
e328: e784 b.n e234 <_lv_area_align+0xbc>
res->x = -lv_area_get_width(to_align);
e32a: 880a ldrh r2, [r1, #0]
e32c: 888e ldrh r6, [r1, #4]
e32e: 3a01 subs r2, #1
e330: 1b92 subs r2, r2, r6
e332: e74f b.n e1d4 <_lv_area_align+0x5c>
res->x = -lv_area_get_width(to_align);
e334: 880a ldrh r2, [r1, #0]
e336: 888e ldrh r6, [r1, #4]
e338: 3a01 subs r2, #1
e33a: 1b92 subs r2, r2, r6
e33c: e785 b.n e24a <_lv_area_align+0xd2>
e33e: 8882 ldrh r2, [r0, #4]
e340: 3201 adds r2, #1
e342: e77f b.n e244 <_lv_area_align+0xcc>
e344: 8882 ldrh r2, [r0, #4]
e346: 3201 adds r2, #1
e348: e7a7 b.n e29a <_lv_area_align+0x122>
e34a: 8882 ldrh r2, [r0, #4]
e34c: 3201 adds r2, #1
e34e: e79b b.n e288 <_lv_area_align+0x110>
0000e350 <lv_color_fill>:
LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num)
{
#if LV_COLOR_DEPTH == 16
uintptr_t buf_int = (uintptr_t) buf;
if(buf_int & 0x3) {
e350: 0783 lsls r3, r0, #30
{
e352: b510 push {r4, lr}
e354: b28c uxth r4, r1
*buf = color;
e356: bf1c itt ne
e358: f820 1b02 strhne.w r1, [r0], #2
buf++;
px_num--;
e35c: f102 32ff addne.w r2, r2, #4294967295 ; 0xffffffff
}
uint32_t c32 = color.full + (color.full << 16);
e360: eb04 4304 add.w r3, r4, r4, lsl #16
uint32_t * buf32 = (uint32_t *)buf;
while(px_num > 16) {
e364: 2a10 cmp r2, #16
e366: 4601 mov r1, r0
e368: f100 0020 add.w r0, r0, #32
e36c: d804 bhi.n e378 <lv_color_fill+0x28>
e36e: eb01 0242 add.w r2, r1, r2, lsl #1
px_num -= 16;
}
buf = (lv_color_t *)buf32;
while(px_num) {
e372: 4291 cmp r1, r2
e374: d10a bne.n e38c <lv_color_fill+0x3c>
*buf = color;
buf++;
px_num --;
}
#endif
}
e376: bd10 pop {r4, pc}
*buf32 = c32;
e378: e940 3308 strd r3, r3, [r0, #-32]
*buf32 = c32;
e37c: e940 3306 strd r3, r3, [r0, #-24]
*buf32 = c32;
e380: e940 3304 strd r3, r3, [r0, #-16]
*buf32 = c32;
e384: e940 3302 strd r3, r3, [r0, #-8]
px_num -= 16;
e388: 3a10 subs r2, #16
e38a: e7eb b.n e364 <lv_color_fill+0x14>
*buf = color;
e38c: f821 4b02 strh.w r4, [r1], #2
px_num --;
e390: e7ef b.n e372 <lv_color_fill+0x22>
0000e392 <lv_color_lighten>:
lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)
{
e392: b530 push {r4, r5, lr}
{
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)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e394: f3c0 1345 ubfx r3, r0, #5, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e398: f1c1 05ff rsb r5, r1, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e39c: 436b muls r3, r5
e39e: 243f movs r4, #63 ; 0x3f
e3a0: fb14 3301 smlabb r3, r4, r1, r3
e3a4: f248 0481 movw r4, #32897 ; 0x8081
e3a8: 4363 muls r3, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e3aa: ebc1 1241 rsb r2, r1, r1, lsl #5
#else
/*LV_COLOR_DEPTH == 1*/
ret.full = mix > LV_OPA_50 ? c1.full : c2.full;
#endif
return ret;
e3ae: f3c3 51c5 ubfx r1, r3, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e3b2: f000 031f and.w r3, r0, #31
e3b6: fb05 2303 mla r3, r5, r3, r2
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e3ba: f3c0 20c4 ubfx r0, r0, #11, #5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e3be: 4363 muls r3, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e3c0: fb05 2000 mla r0, r5, r0, r2
e3c4: 4360 muls r0, r4
e3c6: f3c3 53c4 ubfx r3, r3, #23, #5
e3ca: ea43 1341 orr.w r3, r3, r1, lsl #5
e3ce: 0dc0 lsrs r0, r0, #23
return lv_color_mix(LV_COLOR_WHITE, c, lvl);
}
e3d0: ea43 20c0 orr.w r0, r3, r0, lsl #11
e3d4: bd30 pop {r4, r5, pc}
0000e3d6 <lv_color_darken>:
e3d6: f1c1 01ff rsb r1, r1, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e3da: f3c0 1345 ubfx r3, r0, #5, #6
lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)
{
e3de: b510 push {r4, lr}
e3e0: 434b muls r3, r1
e3e2: f248 0481 movw r4, #32897 ; 0x8081
e3e6: 4363 muls r3, r4
e3e8: 0dda lsrs r2, r3, #23
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e3ea: f000 031f and.w r3, r0, #31
e3ee: 434b muls r3, r1
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e3f0: f3c0 20c4 ubfx r0, r0, #11, #5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e3f4: 4363 muls r3, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e3f6: 4348 muls r0, r1
e3f8: 4360 muls r0, r4
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e3fa: 0ddb lsrs r3, r3, #23
e3fc: ea43 1342 orr.w r3, r3, r2, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e400: 0dc0 lsrs r0, r0, #23
return lv_color_mix(LV_COLOR_BLACK, c, lvl);
}
e402: ea43 20c0 orr.w r0, r3, r0, lsl #11
e406: bd10 pop {r4, pc}
0000e408 <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*/
e408: 1c43 adds r3, r0, #1
e40a: 4618 mov r0, r3
while(*path != '\0') {
e40c: f813 2b01 ldrb.w r2, [r3], #1
e410: b12a cbz r2, e41e <lv_fs_get_real_path+0x16>
if(*path == ':' || *path == '\\' || *path == '/') {
e412: 2a3a cmp r2, #58 ; 0x3a
e414: d0f9 beq.n e40a <lv_fs_get_real_path+0x2>
e416: 2a5c cmp r2, #92 ; 0x5c
e418: d0f7 beq.n e40a <lv_fs_get_real_path+0x2>
e41a: 2a2f cmp r2, #47 ; 0x2f
e41c: d0f5 beq.n e40a <lv_fs_get_real_path+0x2>
break;
}
}
return path;
}
e41e: 4770 bx lr
0000e420 <_lv_fs_init>:
_lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t));
e420: 4801 ldr r0, [pc, #4] ; (e428 <_lv_fs_init+0x8>)
e422: 4b02 ldr r3, [pc, #8] ; (e42c <_lv_fs_init+0xc>)
e424: 2144 movs r1, #68 ; 0x44
e426: 4718 bx r3
e428: 20008624 .word 0x20008624
e42c: 0000e64d .word 0x0000e64d
0000e430 <lv_fs_close>:
{
e430: b538 push {r3, r4, r5, lr}
e432: 4604 mov r4, r0
if(file_p->drv == NULL) {
e434: 6840 ldr r0, [r0, #4]
e436: b160 cbz r0, e452 <lv_fs_close+0x22>
if(file_p->drv->close_cb == NULL) {
e438: 6903 ldr r3, [r0, #16]
e43a: b163 cbz r3, e456 <lv_fs_close+0x26>
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
e43c: 6821 ldr r1, [r4, #0]
e43e: 4798 blx r3
lv_mem_free(file_p->file_d); /*Clean up*/
e440: 4b06 ldr r3, [pc, #24] ; (e45c <lv_fs_close+0x2c>)
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
e442: 4605 mov r5, r0
lv_mem_free(file_p->file_d); /*Clean up*/
e444: 6820 ldr r0, [r4, #0]
e446: 4798 blx r3
file_p->file_d = NULL;
e448: 2300 movs r3, #0
file_p->drv = NULL;
e44a: e9c4 3300 strd r3, r3, [r4]
}
e44e: 4628 mov r0, r5
e450: bd38 pop {r3, r4, r5, pc}
return LV_FS_RES_INV_PARAM;
e452: 250b movs r5, #11
e454: e7fb b.n e44e <lv_fs_close+0x1e>
return LV_FS_RES_NOT_IMP;
e456: 2509 movs r5, #9
e458: e7f9 b.n e44e <lv_fs_close+0x1e>
e45a: bf00 nop
e45c: 0000eb2d .word 0x0000eb2d
0000e460 <lv_fs_read>:
{
e460: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
if(br != NULL) *br = 0;
e462: 461c mov r4, r3
e464: b10b cbz r3, e46a <lv_fs_read+0xa>
e466: 2300 movs r3, #0
e468: 6023 str r3, [r4, #0]
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
e46a: 6845 ldr r5, [r0, #4]
e46c: b17d cbz r5, e48e <lv_fs_read+0x2e>
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
e46e: 69ae ldr r6, [r5, #24]
e470: b17e cbz r6, e492 <lv_fs_read+0x32>
uint32_t br_tmp = 0;
e472: 2300 movs r3, #0
e474: 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);
e476: ab03 add r3, sp, #12
e478: 9300 str r3, [sp, #0]
e47a: 4613 mov r3, r2
e47c: 460a mov r2, r1
e47e: 6801 ldr r1, [r0, #0]
e480: 4628 mov r0, r5
e482: 47b0 blx r6
if(br != NULL) *br = br_tmp;
e484: b10c cbz r4, e48a <lv_fs_read+0x2a>
e486: 9b03 ldr r3, [sp, #12]
e488: 6023 str r3, [r4, #0]
}
e48a: b004 add sp, #16
e48c: bd70 pop {r4, r5, r6, pc}
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
e48e: 200b movs r0, #11
e490: e7fb b.n e48a <lv_fs_read+0x2a>
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
e492: 2009 movs r0, #9
e494: e7f9 b.n e48a <lv_fs_read+0x2a>
0000e496 <lv_fs_seek>:
if(file_p->drv == NULL) {
e496: 6843 ldr r3, [r0, #4]
{
e498: b410 push {r4}
e49a: 460a mov r2, r1
if(file_p->drv == NULL) {
e49c: b13b cbz r3, e4ae <lv_fs_seek+0x18>
if(file_p->drv->seek_cb == NULL) {
e49e: 6a1c ldr r4, [r3, #32]
e4a0: b14c cbz r4, e4b6 <lv_fs_seek+0x20>
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
e4a2: 6801 ldr r1, [r0, #0]
e4a4: 4618 mov r0, r3
e4a6: 4623 mov r3, r4
}
e4a8: f85d 4b04 ldr.w r4, [sp], #4
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
e4ac: 4718 bx r3
return LV_FS_RES_INV_PARAM;
e4ae: 200b movs r0, #11
}
e4b0: f85d 4b04 ldr.w r4, [sp], #4
e4b4: 4770 bx lr
return LV_FS_RES_NOT_IMP;
e4b6: 2009 movs r0, #9
e4b8: e7fa b.n e4b0 <lv_fs_seek+0x1a>
...
0000e4bc <lv_fs_get_drv>:
{
e4bc: b570 push {r4, r5, r6, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e4be: 4b07 ldr r3, [pc, #28] ; (e4dc <lv_fs_get_drv+0x20>)
e4c0: 4d07 ldr r5, [pc, #28] ; (e4e0 <lv_fs_get_drv+0x24>)
e4c2: 4e08 ldr r6, [pc, #32] ; (e4e4 <lv_fs_get_drv+0x28>)
{
e4c4: 4604 mov r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e4c6: 4806 ldr r0, [pc, #24] ; (e4e0 <lv_fs_get_drv+0x24>)
e4c8: 4798 blx r3
e4ca: b900 cbnz r0, e4ce <lv_fs_get_drv+0x12>
}
e4cc: bd70 pop {r4, r5, r6, pc}
if(drv->letter == letter) {
e4ce: 7803 ldrb r3, [r0, #0]
e4d0: 42a3 cmp r3, r4
e4d2: d0fb beq.n e4cc <lv_fs_get_drv+0x10>
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e4d4: 4601 mov r1, r0
e4d6: 4628 mov r0, r5
e4d8: 47b0 blx r6
e4da: e7f6 b.n e4ca <lv_fs_get_drv+0xe>
e4dc: 0000e6f1 .word 0x0000e6f1
e4e0: 20008624 .word 0x20008624
e4e4: 0000e6fd .word 0x0000e6fd
0000e4e8 <lv_fs_open>:
file_p->drv = NULL;
e4e8: 2300 movs r3, #0
{
e4ea: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
file_p->file_d = NULL;
e4ee: e9c0 3300 strd r3, r3, [r0]
{
e4f2: 4604 mov r4, r0
e4f4: 4617 mov r7, r2
if(path == NULL) return LV_FS_RES_INV_PARAM;
e4f6: 460e mov r6, r1
e4f8: 2900 cmp r1, #0
e4fa: d043 beq.n e584 <lv_fs_open+0x9c>
file_p->drv = lv_fs_get_drv(letter);
e4fc: 7808 ldrb r0, [r1, #0]
e4fe: 4b23 ldr r3, [pc, #140] ; (e58c <lv_fs_open+0xa4>)
e500: 4798 blx r3
e502: 6060 str r0, [r4, #4]
if(file_p->drv == NULL) {
e504: b928 cbnz r0, e512 <lv_fs_open+0x2a>
file_p->file_d = NULL;
e506: 6020 str r0, [r4, #0]
return LV_FS_RES_NOT_EX;
e508: 2503 movs r5, #3
}
e50a: 4628 mov r0, r5
e50c: b002 add sp, #8
e50e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(file_p->drv->ready_cb != NULL) {
e512: 6883 ldr r3, [r0, #8]
e514: b12b cbz r3, e522 <lv_fs_open+0x3a>
if(file_p->drv->ready_cb(file_p->drv) == false) {
e516: 4798 blx r3
e518: b918 cbnz r0, e522 <lv_fs_open+0x3a>
file_p->file_d = NULL;
e51a: e9c4 0000 strd r0, r0, [r4]
return LV_FS_RES_HW_ERR;
e51e: 2501 movs r5, #1
e520: e7f3 b.n e50a <lv_fs_open+0x22>
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
e522: 6863 ldr r3, [r4, #4]
e524: 8858 ldrh r0, [r3, #2]
e526: 4b1a ldr r3, [pc, #104] ; (e590 <lv_fs_open+0xa8>)
e528: 4798 blx r3
LV_ASSERT_MEM(file_p->file_d);
e52a: 4b1a ldr r3, [pc, #104] ; (e594 <lv_fs_open+0xac>)
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
e52c: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(file_p->file_d);
e52e: 4798 blx r3
e530: 4605 mov r5, r0
e532: b960 cbnz r0, e54e <lv_fs_open+0x66>
e534: 4b18 ldr r3, [pc, #96] ; (e598 <lv_fs_open+0xb0>)
e536: 4919 ldr r1, [pc, #100] ; (e59c <lv_fs_open+0xb4>)
e538: 9300 str r3, [sp, #0]
e53a: 226f movs r2, #111 ; 0x6f
e53c: 2003 movs r0, #3
e53e: 4e18 ldr r6, [pc, #96] ; (e5a0 <lv_fs_open+0xb8>)
e540: 47b0 blx r6
e542: 6822 ldr r2, [r4, #0]
e544: 4817 ldr r0, [pc, #92] ; (e5a4 <lv_fs_open+0xbc>)
e546: 4918 ldr r1, [pc, #96] ; (e5a8 <lv_fs_open+0xc0>)
e548: 462b mov r3, r5
e54a: 4788 blx r1
e54c: e7fe b.n e54c <lv_fs_open+0x64>
if(file_p->file_d == NULL) {
e54e: 6821 ldr r1, [r4, #0]
e550: b911 cbnz r1, e558 <lv_fs_open+0x70>
file_p->drv = NULL;
e552: 6061 str r1, [r4, #4]
return LV_FS_RES_OUT_OF_MEM; /* Out of memory */
e554: 250a movs r5, #10
e556: e7d8 b.n e50a <lv_fs_open+0x22>
if(file_p->drv->open_cb == NULL) {
e558: f8d4 8004 ldr.w r8, [r4, #4]
e55c: f8d8 500c ldr.w r5, [r8, #12]
e560: b195 cbz r5, e588 <lv_fs_open+0xa0>
const char * real_path = lv_fs_get_real_path(path);
e562: 4b12 ldr r3, [pc, #72] ; (e5ac <lv_fs_open+0xc4>)
e564: 4630 mov r0, r6
e566: 4798 blx r3
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
e568: 463b mov r3, r7
const char * real_path = lv_fs_get_real_path(path);
e56a: 4602 mov r2, r0
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
e56c: 4640 mov r0, r8
e56e: 47a8 blx r5
if(res != LV_FS_RES_OK) {
e570: 4605 mov r5, r0
e572: 2800 cmp r0, #0
e574: d0c9 beq.n e50a <lv_fs_open+0x22>
lv_mem_free(file_p->file_d);
e576: 4b0e ldr r3, [pc, #56] ; (e5b0 <lv_fs_open+0xc8>)
e578: 6820 ldr r0, [r4, #0]
e57a: 4798 blx r3
file_p->file_d = NULL;
e57c: 2300 movs r3, #0
file_p->drv = NULL;
e57e: e9c4 3300 strd r3, r3, [r4]
e582: e7c2 b.n e50a <lv_fs_open+0x22>
if(path == NULL) return LV_FS_RES_INV_PARAM;
e584: 250b movs r5, #11
e586: e7c0 b.n e50a <lv_fs_open+0x22>
return LV_FS_RES_NOT_IMP;
e588: 2509 movs r5, #9
e58a: e7be b.n e50a <lv_fs_open+0x22>
e58c: 0000e4bd .word 0x0000e4bd
e590: 0000ea75 .word 0x0000ea75
e594: 00001795 .word 0x00001795
e598: 00023fb1 .word 0x00023fb1
e59c: 00023f70 .word 0x00023f70
e5a0: 0000e931 .word 0x0000e931
e5a4: 0001ee02 .word 0x0001ee02
e5a8: 0000179d .word 0x0000179d
e5ac: 0000e409 .word 0x0000e409
e5b0: 0000eb2d .word 0x0000eb2d
0000e5b4 <lv_fs_get_ext>:
{
e5b4: b510 push {r4, lr}
for(i = strlen(fn); i > 0; i--) {
e5b6: 4b09 ldr r3, [pc, #36] ; (e5dc <lv_fs_get_ext+0x28>)
{
e5b8: 4604 mov r4, r0
for(i = strlen(fn); i > 0; i--) {
e5ba: 4798 blx r3
e5bc: b908 cbnz r0, e5c2 <lv_fs_get_ext+0xe>
return ""; /*No extension if a '\' or '/' found*/
e5be: 4808 ldr r0, [pc, #32] ; (e5e0 <lv_fs_get_ext+0x2c>)
e5c0: e004 b.n e5cc <lv_fs_get_ext+0x18>
if(fn[i] == '.') {
e5c2: 5c23 ldrb r3, [r4, r0]
e5c4: 2b2e cmp r3, #46 ; 0x2e
e5c6: d102 bne.n e5ce <lv_fs_get_ext+0x1a>
return &fn[i + 1];
e5c8: 3001 adds r0, #1
e5ca: 4420 add r0, r4
}
e5cc: bd10 pop {r4, pc}
else if(fn[i] == '/' || fn[i] == '\\') {
e5ce: 2b2f cmp r3, #47 ; 0x2f
e5d0: d0f5 beq.n e5be <lv_fs_get_ext+0xa>
e5d2: 2b5c cmp r3, #92 ; 0x5c
e5d4: d0f3 beq.n e5be <lv_fs_get_ext+0xa>
for(i = strlen(fn); i > 0; i--) {
e5d6: 3801 subs r0, #1
e5d8: e7f0 b.n e5bc <lv_fs_get_ext+0x8>
e5da: bf00 nop
e5dc: 0001637d .word 0x0001637d
e5e0: 0001f81c .word 0x0001f81c
0000e5e4 <_lv_memcpy_small.constprop.0.isra.0>:
while(len) {
e5e4: 3901 subs r1, #1
e5e6: 1d03 adds r3, r0, #4
*d8 = *s8;
e5e8: f811 2f01 ldrb.w r2, [r1, #1]!
e5ec: f800 2b01 strb.w r2, [r0], #1
while(len) {
e5f0: 4298 cmp r0, r3
e5f2: d1f9 bne.n e5e8 <_lv_memcpy_small.constprop.0.isra.0+0x4>
s8++;
len--;
}
return dst;
}
e5f4: 4770 bx lr
...
0000e5f8 <node_set_prev>:
* @param ll_p pointer to linked list
* @param act pointer to a node which prev. node pointer should be set
* @param prev pointer to a node which should be the previous node before 'act'
*/
static void node_set_prev(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * prev)
{
e5f8: b507 push {r0, r1, r2, lr}
e5fa: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the prev node of `NULL`*/
e5fc: b129 cbz r1, e60a <node_set_prev+0x12>
uint32_t node_p_size = sizeof(lv_ll_node_t *);
if(prev)
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
e5fe: 6800 ldr r0, [r0, #0]
e600: 4408 add r0, r1
if(prev)
e602: b12a cbz r2, e610 <node_set_prev+0x18>
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
e604: 4b04 ldr r3, [pc, #16] ; (e618 <node_set_prev+0x20>)
e606: a901 add r1, sp, #4
e608: 4798 blx r3
else
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
}
e60a: b003 add sp, #12
e60c: f85d fb04 ldr.w pc, [sp], #4
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
e610: 4b02 ldr r3, [pc, #8] ; (e61c <node_set_prev+0x24>)
e612: 2104 movs r1, #4
e614: 4798 blx r3
e616: e7f8 b.n e60a <node_set_prev+0x12>
e618: 0000e5e5 .word 0x0000e5e5
e61c: 0000f061 .word 0x0000f061
0000e620 <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)
{
e620: b507 push {r0, r1, r2, lr}
e622: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the next node of `NULL`*/
e624: b131 cbz r1, e634 <node_set_next+0x14>
uint32_t node_p_size = sizeof(lv_ll_node_t *);
if(next)
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
e626: 6800 ldr r0, [r0, #0]
e628: 3004 adds r0, #4
e62a: 4408 add r0, r1
if(next)
e62c: b12a cbz r2, e63a <node_set_next+0x1a>
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
e62e: 4b05 ldr r3, [pc, #20] ; (e644 <node_set_next+0x24>)
e630: a901 add r1, sp, #4
e632: 4798 blx r3
else
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
}
e634: b003 add sp, #12
e636: f85d fb04 ldr.w pc, [sp], #4
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
e63a: 4b03 ldr r3, [pc, #12] ; (e648 <node_set_next+0x28>)
e63c: 2104 movs r1, #4
e63e: 4798 blx r3
e640: e7f8 b.n e634 <node_set_next+0x14>
e642: bf00 nop
e644: 0000e5e5 .word 0x0000e5e5
e648: 0000f061 .word 0x0000f061
0000e64c <_lv_ll_init>:
ll_p->head = NULL;
e64c: 2300 movs r3, #0
ll_p->tail = NULL;
e64e: e9c0 3301 strd r3, r3, [r0, #4]
if(node_size & 0x3) {
e652: 078b lsls r3, r1, #30
node_size = node_size & (~0x3);
e654: bf1c itt ne
e656: f021 0103 bicne.w r1, r1, #3
node_size += 4;
e65a: 3104 addne r1, #4
ll_p->n_size = node_size;
e65c: 6001 str r1, [r0, #0]
}
e65e: 4770 bx lr
0000e660 <_lv_ll_ins_head>:
{
e660: b570 push {r4, r5, r6, lr}
e662: 4604 mov r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e664: 6800 ldr r0, [r0, #0]
e666: 4b0d ldr r3, [pc, #52] ; (e69c <_lv_ll_ins_head+0x3c>)
e668: 3008 adds r0, #8
e66a: 4798 blx r3
if(n_new != NULL) {
e66c: 4605 mov r5, r0
e66e: b190 cbz r0, e696 <_lv_ll_ins_head+0x36>
node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/
e670: 4601 mov r1, r0
e672: 2200 movs r2, #0
e674: 4620 mov r0, r4
e676: 4e0a ldr r6, [pc, #40] ; (e6a0 <_lv_ll_ins_head+0x40>)
e678: 47b0 blx r6
node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/
e67a: 4629 mov r1, r5
e67c: 6862 ldr r2, [r4, #4]
e67e: 4b09 ldr r3, [pc, #36] ; (e6a4 <_lv_ll_ins_head+0x44>)
e680: 4620 mov r0, r4
e682: 4798 blx r3
if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/
e684: 6861 ldr r1, [r4, #4]
e686: b111 cbz r1, e68e <_lv_ll_ins_head+0x2e>
node_set_prev(ll_p, ll_p->head, n_new);
e688: 462a mov r2, r5
e68a: 4620 mov r0, r4
e68c: 47b0 blx r6
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
e68e: 68a3 ldr r3, [r4, #8]
ll_p->head = n_new; /*Set the new head in the dsc.*/
e690: 6065 str r5, [r4, #4]
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
e692: b903 cbnz r3, e696 <_lv_ll_ins_head+0x36>
ll_p->tail = n_new;
e694: 60a5 str r5, [r4, #8]
}
e696: 4628 mov r0, r5
e698: bd70 pop {r4, r5, r6, pc}
e69a: bf00 nop
e69c: 0000ea75 .word 0x0000ea75
e6a0: 0000e5f9 .word 0x0000e5f9
e6a4: 0000e621 .word 0x0000e621
0000e6a8 <_lv_ll_ins_tail>:
{
e6a8: b570 push {r4, r5, r6, lr}
e6aa: 4604 mov r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e6ac: 6800 ldr r0, [r0, #0]
e6ae: 4b0d ldr r3, [pc, #52] ; (e6e4 <_lv_ll_ins_tail+0x3c>)
e6b0: 3008 adds r0, #8
e6b2: 4798 blx r3
if(n_new != NULL) {
e6b4: 4605 mov r5, r0
e6b6: b190 cbz r0, e6de <_lv_ll_ins_tail+0x36>
node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/
e6b8: 4601 mov r1, r0
e6ba: 2200 movs r2, #0
e6bc: 4620 mov r0, r4
e6be: 4e0a ldr r6, [pc, #40] ; (e6e8 <_lv_ll_ins_tail+0x40>)
e6c0: 47b0 blx r6
node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/
e6c2: 4629 mov r1, r5
e6c4: 68a2 ldr r2, [r4, #8]
e6c6: 4b09 ldr r3, [pc, #36] ; (e6ec <_lv_ll_ins_tail+0x44>)
e6c8: 4620 mov r0, r4
e6ca: 4798 blx r3
if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/
e6cc: 68a1 ldr r1, [r4, #8]
e6ce: b111 cbz r1, e6d6 <_lv_ll_ins_tail+0x2e>
node_set_next(ll_p, ll_p->tail, n_new);
e6d0: 462a mov r2, r5
e6d2: 4620 mov r0, r4
e6d4: 47b0 blx r6
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
e6d6: 6863 ldr r3, [r4, #4]
ll_p->tail = n_new; /*Set the new tail in the dsc.*/
e6d8: 60a5 str r5, [r4, #8]
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
e6da: b903 cbnz r3, e6de <_lv_ll_ins_tail+0x36>
ll_p->head = n_new;
e6dc: 6065 str r5, [r4, #4]
}
e6de: 4628 mov r0, r5
e6e0: bd70 pop {r4, r5, r6, pc}
e6e2: bf00 nop
e6e4: 0000ea75 .word 0x0000ea75
e6e8: 0000e621 .word 0x0000e621
e6ec: 0000e5f9 .word 0x0000e5f9
0000e6f0 <_lv_ll_get_head>:
if(ll_p != NULL) {
e6f0: b100 cbz r0, e6f4 <_lv_ll_get_head+0x4>
head = ll_p->head;
e6f2: 6840 ldr r0, [r0, #4]
}
e6f4: 4770 bx lr
0000e6f6 <_lv_ll_get_tail>:
if(ll_p != NULL) {
e6f6: b100 cbz r0, e6fa <_lv_ll_get_tail+0x4>
tail = ll_p->tail;
e6f8: 6880 ldr r0, [r0, #8]
}
e6fa: 4770 bx lr
0000e6fc <_lv_ll_get_next>:
{
e6fc: b507 push {r0, r1, r2, lr}
void * next = NULL;
e6fe: 2300 movs r3, #0
e700: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
e702: b128 cbz r0, e710 <_lv_ll_get_next+0x14>
_lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *));
e704: 6803 ldr r3, [r0, #0]
e706: 3304 adds r3, #4
e708: 4419 add r1, r3
e70a: a801 add r0, sp, #4
e70c: 4b02 ldr r3, [pc, #8] ; (e718 <_lv_ll_get_next+0x1c>)
e70e: 4798 blx r3
}
e710: 9801 ldr r0, [sp, #4]
e712: b003 add sp, #12
e714: f85d fb04 ldr.w pc, [sp], #4
e718: 0000e5e5 .word 0x0000e5e5
0000e71c <_lv_ll_get_prev>:
{
e71c: b507 push {r0, r1, r2, lr}
void * prev = NULL;
e71e: 2300 movs r3, #0
e720: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
e722: b120 cbz r0, e72e <_lv_ll_get_prev+0x12>
_lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *));
e724: 6803 ldr r3, [r0, #0]
e726: a801 add r0, sp, #4
e728: 4419 add r1, r3
e72a: 4b03 ldr r3, [pc, #12] ; (e738 <_lv_ll_get_prev+0x1c>)
e72c: 4798 blx r3
}
e72e: 9801 ldr r0, [sp, #4]
e730: b003 add sp, #12
e732: f85d fb04 ldr.w pc, [sp], #4
e736: bf00 nop
e738: 0000e5e5 .word 0x0000e5e5
0000e73c <_lv_ll_ins_prev>:
{
e73c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
e740: 460e mov r6, r1
if(NULL == ll_p || NULL == n_act) return NULL;
e742: 4604 mov r4, r0
e744: b340 cbz r0, e798 <_lv_ll_ins_prev+0x5c>
e746: b349 cbz r1, e79c <_lv_ll_ins_prev+0x60>
if(_lv_ll_get_head(ll_p) == n_act) {
e748: 6843 ldr r3, [r0, #4]
e74a: 4299 cmp r1, r3
e74c: d103 bne.n e756 <_lv_ll_ins_prev+0x1a>
}
e74e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
n_new = _lv_ll_ins_head(ll_p);
e752: 4b13 ldr r3, [pc, #76] ; (e7a0 <_lv_ll_ins_prev+0x64>)
e754: 4718 bx r3
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e756: 6800 ldr r0, [r0, #0]
e758: 4b12 ldr r3, [pc, #72] ; (e7a4 <_lv_ll_ins_prev+0x68>)
e75a: 3008 adds r0, #8
e75c: 4798 blx r3
if(n_new == NULL) return NULL;
e75e: 4605 mov r5, r0
e760: b1b8 cbz r0, e792 <_lv_ll_ins_prev+0x56>
n_prev = _lv_ll_get_prev(ll_p, n_act);
e762: 4b11 ldr r3, [pc, #68] ; (e7a8 <_lv_ll_ins_prev+0x6c>)
node_set_next(ll_p, n_prev, n_new);
e764: f8df 8048 ldr.w r8, [pc, #72] ; e7b0 <_lv_ll_ins_prev+0x74>
n_prev = _lv_ll_get_prev(ll_p, n_act);
e768: 4631 mov r1, r6
e76a: 4620 mov r0, r4
e76c: 4798 blx r3
node_set_next(ll_p, n_prev, n_new);
e76e: 462a mov r2, r5
n_prev = _lv_ll_get_prev(ll_p, n_act);
e770: 4607 mov r7, r0
node_set_next(ll_p, n_prev, n_new);
e772: 4601 mov r1, r0
e774: 4620 mov r0, r4
e776: 47c0 blx r8
node_set_prev(ll_p, n_new, n_prev);
e778: 463a mov r2, r7
e77a: 4629 mov r1, r5
e77c: 4f0b ldr r7, [pc, #44] ; (e7ac <_lv_ll_ins_prev+0x70>)
e77e: 4620 mov r0, r4
e780: 47b8 blx r7
node_set_prev(ll_p, n_act, n_new);
e782: 462a mov r2, r5
e784: 4631 mov r1, r6
e786: 4620 mov r0, r4
e788: 47b8 blx r7
node_set_next(ll_p, n_new, n_act);
e78a: 4632 mov r2, r6
e78c: 4629 mov r1, r5
e78e: 4620 mov r0, r4
e790: 47c0 blx r8
}
e792: 4628 mov r0, r5
e794: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(NULL == ll_p || NULL == n_act) return NULL;
e798: 4605 mov r5, r0
e79a: e7fa b.n e792 <_lv_ll_ins_prev+0x56>
e79c: 460d mov r5, r1
e79e: e7f8 b.n e792 <_lv_ll_ins_prev+0x56>
e7a0: 0000e661 .word 0x0000e661
e7a4: 0000ea75 .word 0x0000ea75
e7a8: 0000e71d .word 0x0000e71d
e7ac: 0000e5f9 .word 0x0000e5f9
e7b0: 0000e621 .word 0x0000e621
0000e7b4 <_lv_ll_remove>:
{
e7b4: b570 push {r4, r5, r6, lr}
e7b6: 460d mov r5, r1
if(ll_p != NULL) {
e7b8: 4604 mov r4, r0
e7ba: b1f8 cbz r0, e7fc <_lv_ll_remove+0x48>
if(_lv_ll_get_head(ll_p) == node_p) {
e7bc: 6843 ldr r3, [r0, #4]
e7be: 4299 cmp r1, r3
e7c0: d10c bne.n e7dc <_lv_ll_remove+0x28>
ll_p->head = _lv_ll_get_next(ll_p, node_p);
e7c2: 4629 mov r1, r5
e7c4: 4b17 ldr r3, [pc, #92] ; (e824 <_lv_ll_remove+0x70>)
e7c6: 4620 mov r0, r4
e7c8: 4798 blx r3
e7ca: 4601 mov r1, r0
e7cc: 6060 str r0, [r4, #4]
if(ll_p->head == NULL) {
e7ce: b908 cbnz r0, e7d4 <_lv_ll_remove+0x20>
ll_p->tail = NULL;
e7d0: 60a0 str r0, [r4, #8]
}
e7d2: bd70 pop {r4, r5, r6, pc}
node_set_prev(ll_p, ll_p->head, NULL);
e7d4: 2200 movs r2, #0
node_set_prev(ll_p, n_next, n_prev);
e7d6: 4b14 ldr r3, [pc, #80] ; (e828 <_lv_ll_remove+0x74>)
e7d8: 4620 mov r0, r4
e7da: e00c b.n e7f6 <_lv_ll_remove+0x42>
else if(_lv_ll_get_tail(ll_p) == node_p) {
e7dc: 6883 ldr r3, [r0, #8]
e7de: 4299 cmp r1, r3
e7e0: d10e bne.n e800 <_lv_ll_remove+0x4c>
ll_p->tail = _lv_ll_get_prev(ll_p, node_p);
e7e2: 4b12 ldr r3, [pc, #72] ; (e82c <_lv_ll_remove+0x78>)
e7e4: 4798 blx r3
e7e6: 4601 mov r1, r0
e7e8: 60a0 str r0, [r4, #8]
if(ll_p->tail == NULL) {
e7ea: b908 cbnz r0, e7f0 <_lv_ll_remove+0x3c>
ll_p->head = NULL;
e7ec: 6060 str r0, [r4, #4]
e7ee: e7f0 b.n e7d2 <_lv_ll_remove+0x1e>
node_set_next(ll_p, ll_p->tail, NULL);
e7f0: 4b0f ldr r3, [pc, #60] ; (e830 <_lv_ll_remove+0x7c>)
e7f2: 2200 movs r2, #0
e7f4: 4620 mov r0, r4
}
e7f6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
node_set_prev(ll_p, n_next, n_prev);
e7fa: 4718 bx r3
if(_lv_ll_get_head(ll_p) == node_p) {
e7fc: 2900 cmp r1, #0
e7fe: d0e0 beq.n e7c2 <_lv_ll_remove+0xe>
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
e800: 4629 mov r1, r5
e802: 4b0a ldr r3, [pc, #40] ; (e82c <_lv_ll_remove+0x78>)
e804: 4620 mov r0, r4
e806: 4798 blx r3
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
e808: 4629 mov r1, r5
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
e80a: 4606 mov r6, r0
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
e80c: 4b05 ldr r3, [pc, #20] ; (e824 <_lv_ll_remove+0x70>)
e80e: 4620 mov r0, r4
e810: 4798 blx r3
node_set_next(ll_p, n_prev, n_next);
e812: 4631 mov r1, r6
e814: 4602 mov r2, r0
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
e816: 4605 mov r5, r0
node_set_next(ll_p, n_prev, n_next);
e818: 4b05 ldr r3, [pc, #20] ; (e830 <_lv_ll_remove+0x7c>)
e81a: 4620 mov r0, r4
e81c: 4798 blx r3
node_set_prev(ll_p, n_next, n_prev);
e81e: 4632 mov r2, r6
e820: 4629 mov r1, r5
e822: e7d8 b.n e7d6 <_lv_ll_remove+0x22>
e824: 0000e6fd .word 0x0000e6fd
e828: 0000e5f9 .word 0x0000e5f9
e82c: 0000e71d .word 0x0000e71d
e830: 0000e621 .word 0x0000e621
0000e834 <_lv_ll_chg_list>:
{
e834: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
e838: 460c mov r4, r1
e83a: 461e mov r6, r3
_lv_ll_remove(ll_ori_p, node);
e83c: 4611 mov r1, r2
e83e: 4b16 ldr r3, [pc, #88] ; (e898 <_lv_ll_chg_list+0x64>)
e840: f8df 805c ldr.w r8, [pc, #92] ; e8a0 <_lv_ll_chg_list+0x6c>
e844: 4f15 ldr r7, [pc, #84] ; (e89c <_lv_ll_chg_list+0x68>)
{
e846: 4615 mov r5, r2
_lv_ll_remove(ll_ori_p, node);
e848: 4798 blx r3
if(head) {
e84a: b196 cbz r6, e872 <_lv_ll_chg_list+0x3e>
node_set_prev(ll_new_p, node, NULL);
e84c: 2200 movs r2, #0
e84e: 4629 mov r1, r5
e850: 4620 mov r0, r4
e852: 47c0 blx r8
node_set_next(ll_new_p, node, ll_new_p->head);
e854: 4629 mov r1, r5
e856: 6862 ldr r2, [r4, #4]
e858: 4620 mov r0, r4
e85a: 47b8 blx r7
if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/
e85c: 6861 ldr r1, [r4, #4]
e85e: b111 cbz r1, e866 <_lv_ll_chg_list+0x32>
node_set_prev(ll_new_p, ll_new_p->head, node);
e860: 462a mov r2, r5
e862: 4620 mov r0, r4
e864: 47c0 blx r8
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
e866: 68a3 ldr r3, [r4, #8]
ll_new_p->head = node; /*Set the new head in the dsc.*/
e868: 6065 str r5, [r4, #4]
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
e86a: b903 cbnz r3, e86e <_lv_ll_chg_list+0x3a>
ll_new_p->tail = node;
e86c: 60a5 str r5, [r4, #8]
}
e86e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
node_set_prev(ll_new_p, node, ll_new_p->tail);
e872: 68a2 ldr r2, [r4, #8]
e874: 4629 mov r1, r5
e876: 4620 mov r0, r4
e878: 47c0 blx r8
node_set_next(ll_new_p, node, NULL);
e87a: 4629 mov r1, r5
e87c: 4632 mov r2, r6
e87e: 4620 mov r0, r4
e880: 47b8 blx r7
if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/
e882: 68a1 ldr r1, [r4, #8]
e884: b111 cbz r1, e88c <_lv_ll_chg_list+0x58>
node_set_next(ll_new_p, ll_new_p->tail, node);
e886: 462a mov r2, r5
e888: 4620 mov r0, r4
e88a: 47b8 blx r7
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
e88c: 6863 ldr r3, [r4, #4]
ll_new_p->tail = node; /*Set the new tail in the dsc.*/
e88e: 60a5 str r5, [r4, #8]
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
e890: 2b00 cmp r3, #0
e892: d1ec bne.n e86e <_lv_ll_chg_list+0x3a>
ll_new_p->head = node;
e894: 6065 str r5, [r4, #4]
}
e896: e7ea b.n e86e <_lv_ll_chg_list+0x3a>
e898: 0000e7b5 .word 0x0000e7b5
e89c: 0000e621 .word 0x0000e621
e8a0: 0000e5f9 .word 0x0000e5f9
0000e8a4 <_lv_ll_move_before>:
if(n_act == n_after) return; /*Can't move before itself*/
e8a4: 4291 cmp r1, r2
{
e8a6: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
e8aa: 4604 mov r4, r0
e8ac: 460d mov r5, r1
e8ae: 4617 mov r7, r2
if(n_act == n_after) return; /*Can't move before itself*/
e8b0: d022 beq.n e8f8 <_lv_ll_move_before+0x54>
if(n_after != NULL)
e8b2: b31a cbz r2, e8fc <_lv_ll_move_before+0x58>
n_before = _lv_ll_get_prev(ll_p, n_after);
e8b4: 4b14 ldr r3, [pc, #80] ; (e908 <_lv_ll_move_before+0x64>)
e8b6: 4611 mov r1, r2
e8b8: 4798 blx r3
e8ba: 4606 mov r6, r0
if(n_act == n_before) return; /*Already before `n_after`*/
e8bc: 42ae cmp r6, r5
e8be: d01b beq.n e8f8 <_lv_ll_move_before+0x54>
_lv_ll_remove(ll_p, n_act);
e8c0: 4b12 ldr r3, [pc, #72] ; (e90c <_lv_ll_move_before+0x68>)
node_set_next(ll_p, n_before, n_act);
e8c2: f8df 804c ldr.w r8, [pc, #76] ; e910 <_lv_ll_move_before+0x6c>
node_set_prev(ll_p, n_act, n_before);
e8c6: f8df 904c ldr.w r9, [pc, #76] ; e914 <_lv_ll_move_before+0x70>
_lv_ll_remove(ll_p, n_act);
e8ca: 4629 mov r1, r5
e8cc: 4620 mov r0, r4
e8ce: 4798 blx r3
node_set_next(ll_p, n_before, n_act);
e8d0: 462a mov r2, r5
e8d2: 4631 mov r1, r6
e8d4: 4620 mov r0, r4
e8d6: 47c0 blx r8
node_set_prev(ll_p, n_act, n_before);
e8d8: 4632 mov r2, r6
e8da: 4629 mov r1, r5
e8dc: 4620 mov r0, r4
e8de: 47c8 blx r9
node_set_prev(ll_p, n_after, n_act);
e8e0: 462a mov r2, r5
e8e2: 4639 mov r1, r7
e8e4: 4620 mov r0, r4
e8e6: 47c8 blx r9
node_set_next(ll_p, n_act, n_after);
e8e8: 463a mov r2, r7
e8ea: 4629 mov r1, r5
e8ec: 4620 mov r0, r4
e8ee: 47c0 blx r8
if(n_after == NULL) ll_p->tail = n_act;
e8f0: b907 cbnz r7, e8f4 <_lv_ll_move_before+0x50>
e8f2: 60a5 str r5, [r4, #8]
if(n_before == NULL) ll_p->head = n_act;
e8f4: b906 cbnz r6, e8f8 <_lv_ll_move_before+0x54>
e8f6: 6065 str r5, [r4, #4]
}
e8f8: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(ll_p != NULL) {
e8fc: b108 cbz r0, e902 <_lv_ll_move_before+0x5e>
tail = ll_p->tail;
e8fe: 6886 ldr r6, [r0, #8]
e900: e7dc b.n e8bc <_lv_ll_move_before+0x18>
void * tail = NULL;
e902: 4606 mov r6, r0
e904: e7da b.n e8bc <_lv_ll_move_before+0x18>
e906: bf00 nop
e908: 0000e71d .word 0x0000e71d
e90c: 0000e7b5 .word 0x0000e7b5
e910: 0000e621 .word 0x0000e621
e914: 0000e5f9 .word 0x0000e5f9
0000e918 <_lv_ll_is_empty>:
if(ll_p == NULL) return true;
e918: b130 cbz r0, e928 <_lv_ll_is_empty+0x10>
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
e91a: 6843 ldr r3, [r0, #4]
e91c: b933 cbnz r3, e92c <_lv_ll_is_empty+0x14>
e91e: 6880 ldr r0, [r0, #8]
e920: fab0 f080 clz r0, r0
e924: 0940 lsrs r0, r0, #5
e926: 4770 bx lr
if(ll_p == NULL) return true;
e928: 2001 movs r0, #1
e92a: 4770 bx lr
return false;
e92c: 2000 movs r0, #0
}
e92e: 4770 bx lr
0000e930 <_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, ...)
{
e930: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
e934: 461f mov r7, r3
if(level >= _LV_LOG_LEVEL_NUM) return; /*Invalid level*/
if(level >= LV_LOG_LEVEL) {
e936: 1e43 subs r3, r0, #1
e938: b2db uxtb r3, r3
e93a: 2b04 cmp r3, #4
{
e93c: b0c5 sub sp, #276 ; 0x114
e93e: 4604 mov r4, r0
e940: 460d mov r5, r1
e942: 4616 mov r6, r2
if(level >= LV_LOG_LEVEL) {
e944: d817 bhi.n e976 <_lv_log_add+0x46>
va_list args;
va_start(args, format);
e946: ab4d add r3, sp, #308 ; 0x134
char buf[256];
lv_vsnprintf(buf, sizeof(buf), format, args);
e948: f10d 0910 add.w r9, sp, #16
e94c: f8df 8030 ldr.w r8, [pc, #48] ; e980 <_lv_log_add+0x50>
va_start(args, format);
e950: 9303 str r3, [sp, #12]
lv_vsnprintf(buf, sizeof(buf), format, args);
e952: 9a4c ldr r2, [sp, #304] ; 0x130
e954: f44f 7180 mov.w r1, #256 ; 0x100
e958: 4648 mov r0, r9
e95a: 47c0 blx r8
}
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);
e95c: 4b07 ldr r3, [pc, #28] ; (e97c <_lv_log_add+0x4c>)
e95e: f8d3 8000 ldr.w r8, [r3]
e962: f1b8 0f00 cmp.w r8, #0
e966: d006 beq.n e976 <_lv_log_add+0x46>
e968: f8cd 9000 str.w r9, [sp]
e96c: 463b mov r3, r7
e96e: 4632 mov r2, r6
e970: 4629 mov r1, r5
e972: 4620 mov r0, r4
e974: 47c0 blx r8
#endif
}
}
e976: b045 add sp, #276 ; 0x114
e978: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
e97c: 20008784 .word 0x20008784
e980: 0000f869 .word 0x0000f869
0000e984 <_lv_trigo_sin>:
* @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767
*/
LV_ATTRIBUTE_FAST_MEM int16_t _lv_trigo_sin(int16_t angle)
{
int16_t ret = 0;
angle = angle % 360;
e984: f44f 73b4 mov.w r3, #360 ; 0x168
e988: fb90 f2f3 sdiv r2, r0, r3
e98c: fb02 0013 mls r0, r2, r3, r0
e990: b200 sxth r0, r0
if(angle < 0) angle = 360 + angle;
e992: 2800 cmp r0, #0
e994: bfbc itt lt
e996: 18c0 addlt r0, r0, r3
e998: b200 sxthlt r0, r0
if(angle < 90) {
e99a: 2859 cmp r0, #89 ; 0x59
e99c: 4b0e ldr r3, [pc, #56] ; (e9d8 <_lv_trigo_sin+0x54>)
e99e: dc02 bgt.n e9a6 <_lv_trigo_sin+0x22>
ret = sin0_90_table[angle];
}
else if(angle >= 90 && angle < 180) {
angle = 180 - angle;
ret = sin0_90_table[angle];
e9a0: f933 0010 ldrsh.w r0, [r3, r0, lsl #1]
e9a4: 4770 bx lr
else if(angle >= 90 && angle < 180) {
e9a6: b280 uxth r0, r0
e9a8: f1a0 025a sub.w r2, r0, #90 ; 0x5a
e9ac: 2a59 cmp r2, #89 ; 0x59
e9ae: d803 bhi.n e9b8 <_lv_trigo_sin+0x34>
angle = 180 - angle;
e9b0: f1c0 00b4 rsb r0, r0, #180 ; 0xb4
ret = sin0_90_table[angle];
e9b4: b280 uxth r0, r0
e9b6: e7f3 b.n e9a0 <_lv_trigo_sin+0x1c>
}
else if(angle >= 180 && angle < 270) {
e9b8: f1a0 02b4 sub.w r2, r0, #180 ; 0xb4
e9bc: b292 uxth r2, r2
e9be: 2a59 cmp r2, #89 ; 0x59
angle = angle - 180;
ret = -sin0_90_table[angle];
}
else { /*angle >=270*/
angle = 360 - angle;
e9c0: bf85 ittet hi
e9c2: f5c0 70b4 rsbhi r0, r0, #360 ; 0x168
ret = -sin0_90_table[angle];
e9c6: b280 uxthhi r0, r0
ret = -sin0_90_table[angle];
e9c8: f833 0012 ldrhls.w r0, [r3, r2, lsl #1]
ret = -sin0_90_table[angle];
e9cc: f833 0010 ldrhhi.w r0, [r3, r0, lsl #1]
e9d0: 4240 negs r0, r0
e9d2: b200 sxth r0, r0
}
return ret;
}
e9d4: 4770 bx lr
e9d6: bf00 nop
e9d8: 00023fcc .word 0x00023fcc
0000e9dc <_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)
{
e9dc: b530 push {r4, r5, lr}
x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/
e9de: 0200 lsls r0, r0, #8
uint32_t root = 0;
e9e0: 2300 movs r3, #0
uint32_t trial;
// http://ww1.microchip.com/...en/AppNotes/91040a.pdf
do {
trial = root + mask;
e9e2: 18d4 adds r4, r2, r3
if((uint32_t)trial * trial <= x) root = trial;
e9e4: fb04 f504 mul.w r5, r4, r4
e9e8: 4285 cmp r5, r0
e9ea: bf98 it ls
e9ec: 4623 movls r3, r4
mask = mask >> 1;
} while(mask);
e9ee: 0852 lsrs r2, r2, #1
e9f0: d1f7 bne.n e9e2 <_lv_sqrt+0x6>
q->i = (uint32_t) root >> 4;
e9f2: 091a lsrs r2, r3, #4
q->f = (uint32_t)(root & 0xf) << 4;
e9f4: 011b lsls r3, r3, #4
e9f6: b2db uxtb r3, r3
q->i = (uint32_t) root >> 4;
e9f8: 800a strh r2, [r1, #0]
q->f = (uint32_t)(root & 0xf) << 4;
e9fa: 804b strh r3, [r1, #2]
}
e9fc: bd30 pop {r4, r5, pc}
...
0000ea00 <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*/
next_e = (lv_mem_ent_t *)work_mem;
ea00: 4b07 ldr r3, [pc, #28] ; (ea20 <ent_get_next+0x20>)
ea02: 681b ldr r3, [r3, #0]
if(act_e == NULL) { /*NULL means: get the first entry*/
ea04: b150 cbz r0, ea1c <ent_get_next+0x1c>
}
else { /*Get the next entry */
uint8_t * data = &act_e->first_data;
next_e = (lv_mem_ent_t *)&data[act_e->header.s.d_size];
ea06: f850 2b04 ldr.w r2, [r0], #4
ea0a: eb00 0052 add.w r0, r0, r2, lsr #1
if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL;
ea0e: 1d02 adds r2, r0, #4
ea10: f503 4380 add.w r3, r3, #16384 ; 0x4000
ea14: 429a cmp r2, r3
ea16: bf28 it cs
ea18: 2000 movcs r0, #0
ea1a: 4770 bx lr
next_e = (lv_mem_ent_t *)work_mem;
ea1c: 4618 mov r0, r3
}
return next_e;
}
ea1e: 4770 bx lr
ea20: 20008788 .word 0x20008788
0000ea24 <ent_trunc>:
size = size & (~0x7);
size += 8;
}
#else
/*Round the size up to 4*/
if(size & 0x3) {
ea24: 078b lsls r3, r1, #30
size = size & (~0x3);
ea26: bf18 it ne
ea28: f021 0103 bicne.w r1, r1, #3
size += 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)) {
ea2c: 6802 ldr r2, [r0, #0]
size += 4;
ea2e: bf18 it ne
ea30: 3104 addne r1, #4
{
ea32: b510 push {r4, lr}
if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) {
ea34: 1d0c adds r4, r1, #4
ea36: ebb4 0f52 cmp.w r4, r2, lsr #1
ea3a: f3c2 035e ubfx r3, r2, #1, #31
ea3e: d00b beq.n ea58 <ent_trunc+0x34>
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) {
ea40: 428b cmp r3, r1
ea42: d004 beq.n ea4e <ent_trunc+0x2a>
uint8_t * e_data = &e->first_data;
lv_mem_ent_t * after_new_e = (lv_mem_ent_t *)&e_data[size];
after_new_e->header.s.used = 0;
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
ea44: 3b04 subs r3, #4
after_new_e->header.s.used = 0;
ea46: 1842 adds r2, r0, r1
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
ea48: 1a5b subs r3, r3, r1
after_new_e->header.s.used = 0;
ea4a: 005b lsls r3, r3, #1
ea4c: 6053 str r3, [r2, #4]
}
/* Set the new size for the original entry */
e->header.s.d_size = (uint32_t)size;
ea4e: 6803 ldr r3, [r0, #0]
ea50: f361 035f bfi r3, r1, #1, #31
ea54: 6003 str r3, [r0, #0]
}
ea56: bd10 pop {r4, pc}
ea58: 4619 mov r1, r3
ea5a: e7f8 b.n ea4e <ent_trunc+0x2a>
0000ea5c <_lv_mem_init>:
work_mem = (uint8_t *)work_mem_int;
ea5c: 4a03 ldr r2, [pc, #12] ; (ea6c <_lv_mem_init+0x10>)
ea5e: 4b04 ldr r3, [pc, #16] ; (ea70 <_lv_mem_init+0x14>)
ea60: 6013 str r3, [r2, #0]
full->header.s.used = 0;
ea62: f647 72f8 movw r2, #32760 ; 0x7ff8
ea66: 601a str r2, [r3, #0]
}
ea68: 4770 bx lr
ea6a: bf00 nop
ea6c: 20008788 .word 0x20008788
ea70: 20008794 .word 0x20008794
0000ea74 <lv_mem_alloc>:
{
ea74: b537 push {r0, r1, r2, r4, r5, lr}
if(size == 0) {
ea76: 4601 mov r1, r0
ea78: b1e0 cbz r0, eab4 <lv_mem_alloc+0x40>
if(size & 0x3) {
ea7a: 0782 lsls r2, r0, #30
size = size & (~0x3);
ea7c: bf18 it ne
ea7e: f020 0103 bicne.w r1, r0, #3
e = ent_get_next(e);
ea82: 4d12 ldr r5, [pc, #72] ; (eacc <lv_mem_alloc+0x58>)
size += 4;
ea84: bf18 it ne
ea86: 3104 addne r1, #4
lv_mem_ent_t * e = NULL;
ea88: 2400 movs r4, #0
e = ent_get_next(e);
ea8a: 4620 mov r0, r4
ea8c: 47a8 blx r5
if(e != NULL) {
ea8e: 4604 mov r4, r0
ea90: b190 cbz r0, eab8 <lv_mem_alloc+0x44>
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
ea92: 7803 ldrb r3, [r0, #0]
ea94: 07db lsls r3, r3, #31
ea96: d4f8 bmi.n ea8a <lv_mem_alloc+0x16>
ea98: 6803 ldr r3, [r0, #0]
ea9a: ebb1 0f53 cmp.w r1, r3, lsr #1
ea9e: d8f4 bhi.n ea8a <lv_mem_alloc+0x16>
ent_trunc(e, size);
eaa0: 4b0b ldr r3, [pc, #44] ; (ead0 <lv_mem_alloc+0x5c>)
eaa2: 4798 blx r3
e->header.s.used = 1;
eaa4: 7803 ldrb r3, [r0, #0]
eaa6: f043 0301 orr.w r3, r3, #1
eaaa: f804 3b04 strb.w r3, [r4], #4
}
eaae: 4620 mov r0, r4
eab0: b003 add sp, #12
eab2: bd30 pop {r4, r5, pc}
return &zero_mem;
eab4: 4c07 ldr r4, [pc, #28] ; (ead4 <lv_mem_alloc+0x60>)
eab6: e7fa b.n eaae <lv_mem_alloc+0x3a>
if(alloc == NULL) LV_LOG_WARN("Couldn't allocate memory");
eab8: 4b07 ldr r3, [pc, #28] ; (ead8 <lv_mem_alloc+0x64>)
eaba: 9300 str r3, [sp, #0]
eabc: 4907 ldr r1, [pc, #28] ; (eadc <lv_mem_alloc+0x68>)
eabe: 4b08 ldr r3, [pc, #32] ; (eae0 <lv_mem_alloc+0x6c>)
eac0: 4d08 ldr r5, [pc, #32] ; (eae4 <lv_mem_alloc+0x70>)
eac2: 22d1 movs r2, #209 ; 0xd1
eac4: 2002 movs r0, #2
eac6: 47a8 blx r5
eac8: e7f1 b.n eaae <lv_mem_alloc+0x3a>
eaca: bf00 nop
eacc: 0000ea01 .word 0x0000ea01
ead0: 0000ea25 .word 0x0000ea25
ead4: 2000878c .word 0x2000878c
ead8: 000240b1 .word 0x000240b1
eadc: 00024082 .word 0x00024082
eae0: 00024196 .word 0x00024196
eae4: 0000e931 .word 0x0000e931
0000eae8 <lv_mem_defrag>:
{
eae8: b538 push {r3, r4, r5, lr}
next_e = (lv_mem_ent_t *)work_mem;
eaea: 4b0e ldr r3, [pc, #56] ; (eb24 <lv_mem_defrag+0x3c>)
e_free = ent_get_next(e_free);
eaec: 4c0e ldr r4, [pc, #56] ; (eb28 <lv_mem_defrag+0x40>)
next_e = (lv_mem_ent_t *)work_mem;
eaee: 6819 ldr r1, [r3, #0]
while(e_free != NULL) {
eaf0: b901 cbnz r1, eaf4 <lv_mem_defrag+0xc>
}
eaf2: bd38 pop {r3, r4, r5, pc}
e_free = ent_get_next(e_free);
eaf4: 4608 mov r0, r1
eaf6: 47a0 blx r4
if(e_free->header.s.used != 0) {
eaf8: 780b ldrb r3, [r1, #0]
eafa: 07da lsls r2, r3, #31
eafc: d50f bpl.n eb1e <lv_mem_defrag+0x36>
{
eafe: 4601 mov r1, r0
eb00: e7f6 b.n eaf0 <lv_mem_defrag+0x8>
if(e_next->header.s.used == 0) {
eb02: 7803 ldrb r3, [r0, #0]
eb04: 07db lsls r3, r3, #31
eb06: d4fa bmi.n eafe <lv_mem_defrag+0x16>
e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header);
eb08: 680b ldr r3, [r1, #0]
eb0a: 6805 ldr r5, [r0, #0]
eb0c: f3c3 025e ubfx r2, r3, #1, #31
eb10: 3204 adds r2, #4
eb12: eb02 0255 add.w r2, r2, r5, lsr #1
eb16: f362 035f bfi r3, r2, #1, #31
eb1a: 600b str r3, [r1, #0]
e_next = ent_get_next(e_next);
eb1c: 47a0 blx r4
while(e_next != NULL) {
eb1e: 2800 cmp r0, #0
eb20: d1ef bne.n eb02 <lv_mem_defrag+0x1a>
eb22: e7e6 b.n eaf2 <lv_mem_defrag+0xa>
eb24: 20008788 .word 0x20008788
eb28: 0000ea01 .word 0x0000ea01
0000eb2c <lv_mem_free>:
if(data == &zero_mem) return;
eb2c: 4a16 ldr r2, [pc, #88] ; (eb88 <lv_mem_free+0x5c>)
eb2e: 1d13 adds r3, r2, #4
eb30: 4298 cmp r0, r3
{
eb32: b570 push {r4, r5, r6, lr}
eb34: 4601 mov r1, r0
if(data == &zero_mem) return;
eb36: d010 beq.n eb5a <lv_mem_free+0x2e>
if(data == NULL) return;
eb38: b178 cbz r0, eb5a <lv_mem_free+0x2e>
e->header.s.used = 0;
eb3a: f810 3c04 ldrb.w r3, [r0, #-4]
eb3e: f36f 0300 bfc r3, #0, #1
eb42: f800 3c04 strb.w r3, [r0, #-4]
full_defrag_cnt++;
eb46: 8913 ldrh r3, [r2, #8]
eb48: 3301 adds r3, #1
eb4a: b29b uxth r3, r3
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
eb4c: 2b0f cmp r3, #15
full_defrag_cnt++;
eb4e: 8113 strh r3, [r2, #8]
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
eb50: d814 bhi.n eb7c <lv_mem_free+0x50>
e_next = ent_get_next(e);
eb52: 4c0e ldr r4, [pc, #56] ; (eb8c <lv_mem_free+0x60>)
eb54: 3804 subs r0, #4
e_next = ent_get_next(e_next);
eb56: 47a0 blx r4
while(e_next != NULL) {
eb58: b900 cbnz r0, eb5c <lv_mem_free+0x30>
}
eb5a: bd70 pop {r4, r5, r6, pc}
if(e_next->header.s.used == 0) {
eb5c: 7803 ldrb r3, [r0, #0]
eb5e: 07db lsls r3, r3, #31
eb60: d4fb bmi.n eb5a <lv_mem_free+0x2e>
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
eb62: f851 3c04 ldr.w r3, [r1, #-4]
eb66: 6805 ldr r5, [r0, #0]
eb68: f3c3 025e ubfx r2, r3, #1, #31
eb6c: 3204 adds r2, #4
eb6e: eb02 0255 add.w r2, r2, r5, lsr #1
eb72: f362 035f bfi r3, r2, #1, #31
eb76: f841 3c04 str.w r3, [r1, #-4]
eb7a: e7ec b.n eb56 <lv_mem_free+0x2a>
full_defrag_cnt = 0;
eb7c: 2300 movs r3, #0
eb7e: 8113 strh r3, [r2, #8]
}
eb80: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_mem_defrag();
eb84: 4b02 ldr r3, [pc, #8] ; (eb90 <lv_mem_free+0x64>)
eb86: 4718 bx r3
eb88: 20008788 .word 0x20008788
eb8c: 0000ea01 .word 0x0000ea01
eb90: 0000eae9 .word 0x0000eae9
0000eb94 <_lv_mem_get_size>:
if(data == NULL) return 0;
eb94: b140 cbz r0, eba8 <_lv_mem_get_size+0x14>
if(data == &zero_mem) return 0;
eb96: 4b05 ldr r3, [pc, #20] ; (ebac <_lv_mem_get_size+0x18>)
eb98: 4298 cmp r0, r3
eb9a: d004 beq.n eba6 <_lv_mem_get_size+0x12>
return e->header.s.d_size;
eb9c: f850 0c04 ldr.w r0, [r0, #-4]
eba0: f3c0 005e ubfx r0, r0, #1, #31
eba4: 4770 bx lr
if(data == NULL) return 0;
eba6: 2000 movs r0, #0
}
eba8: 4770 bx lr
ebaa: bf00 nop
ebac: 2000878c .word 0x2000878c
0000ebb0 <_lv_mem_buf_release>:
if(mem_buf_small[i].p == p) {
ebb0: 4b16 ldr r3, [pc, #88] ; (ec0c <_lv_mem_buf_release+0x5c>)
ebb2: 681a ldr r2, [r3, #0]
ebb4: 4290 cmp r0, r2
{
ebb6: b513 push {r0, r1, r4, lr}
if(mem_buf_small[i].p == p) {
ebb8: d00b beq.n ebd2 <_lv_mem_buf_release+0x22>
ebba: 689a ldr r2, [r3, #8]
ebbc: 4290 cmp r0, r2
ebbe: d10a bne.n ebd6 <_lv_mem_buf_release+0x26>
ebc0: 2201 movs r2, #1
mem_buf_small[i].used = 0;
ebc2: eb03 03c2 add.w r3, r3, r2, lsl #3
ebc6: 799a ldrb r2, [r3, #6]
ebc8: f36f 0200 bfc r2, #0, #1
ebcc: 719a strb r2, [r3, #6]
}
ebce: b002 add sp, #8
ebd0: bd10 pop {r4, pc}
if(mem_buf_small[i].p == p) {
ebd2: 2200 movs r2, #0
ebd4: e7f5 b.n ebc2 <_lv_mem_buf_release+0x12>
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
ebd6: 4a0e ldr r2, [pc, #56] ; (ec10 <_lv_mem_buf_release+0x60>)
if(mem_buf_small[i].p == p) {
ebd8: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
ebda: f852 4033 ldr.w r4, [r2, r3, lsl #3]
ebde: 4284 cmp r4, r0
ebe0: eb02 01c3 add.w r1, r2, r3, lsl #3
ebe4: d104 bne.n ebf0 <_lv_mem_buf_release+0x40>
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ebe6: 798b ldrb r3, [r1, #6]
ebe8: f36f 0300 bfc r3, #0, #1
ebec: 718b strb r3, [r1, #6]
return;
ebee: e7ee b.n ebce <_lv_mem_buf_release+0x1e>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ebf0: 3301 adds r3, #1
ebf2: 2b10 cmp r3, #16
ebf4: d1f1 bne.n ebda <_lv_mem_buf_release+0x2a>
LV_LOG_ERROR("lv_mem_buf_release: p is not a known buffer")
ebf6: 4b07 ldr r3, [pc, #28] ; (ec14 <_lv_mem_buf_release+0x64>)
ebf8: 9300 str r3, [sp, #0]
ebfa: 4907 ldr r1, [pc, #28] ; (ec18 <_lv_mem_buf_release+0x68>)
ebfc: 4b07 ldr r3, [pc, #28] ; (ec1c <_lv_mem_buf_release+0x6c>)
ebfe: 4c08 ldr r4, [pc, #32] ; (ec20 <_lv_mem_buf_release+0x70>)
ec00: f240 2232 movw r2, #562 ; 0x232
ec04: 2003 movs r0, #3
ec06: 47a0 blx r4
ec08: e7e1 b.n ebce <_lv_mem_buf_release+0x1e>
ec0a: bf00 nop
ec0c: 20000044 .word 0x20000044
ec10: 20008674 .word 0x20008674
ec14: 000240ca .word 0x000240ca
ec18: 00024082 .word 0x00024082
ec1c: 000241a3 .word 0x000241a3
ec20: 0000e931 .word 0x0000e931
0000ec24 <_lv_mem_buf_free_all>:
mem_buf_small[i].used = 0;
ec24: 4b11 ldr r3, [pc, #68] ; (ec6c <_lv_mem_buf_free_all+0x48>)
ec26: 799a ldrb r2, [r3, #6]
ec28: f36f 0200 bfc r2, #0, #1
{
ec2c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
mem_buf_small[i].used = 0;
ec30: 719a strb r2, [r3, #6]
ec32: 7b9a ldrb r2, [r3, #14]
ec34: 4c0e ldr r4, [pc, #56] ; (ec70 <_lv_mem_buf_free_all+0x4c>)
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
ec36: f8df 803c ldr.w r8, [pc, #60] ; ec74 <_lv_mem_buf_free_all+0x50>
mem_buf_small[i].used = 0;
ec3a: f36f 0200 bfc r2, #0, #1
ec3e: 2500 movs r5, #0
ec40: 739a strb r2, [r3, #14]
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ec42: 4627 mov r7, r4
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
ec44: 462e mov r6, r5
if(LV_GC_ROOT(_lv_mem_buf[i]).p) {
ec46: 6820 ldr r0, [r4, #0]
ec48: b140 cbz r0, ec5c <_lv_mem_buf_free_all+0x38>
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
ec4a: 47c0 blx r8
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ec4c: eb07 03c5 add.w r3, r7, r5, lsl #3
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
ec50: 6026 str r6, [r4, #0]
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ec52: 799a ldrb r2, [r3, #6]
ec54: f366 0200 bfi r2, r6, #0, #1
ec58: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).size = 0;
ec5a: 80a6 strh r6, [r4, #4]
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ec5c: 3501 adds r5, #1
ec5e: 2d10 cmp r5, #16
ec60: f104 0408 add.w r4, r4, #8
ec64: d1ef bne.n ec46 <_lv_mem_buf_free_all+0x22>
}
ec66: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
ec6a: bf00 nop
ec6c: 20000044 .word 0x20000044
ec70: 20008674 .word 0x20008674
ec74: 0000eb2d .word 0x0000eb2d
0000ec78 <_lv_memcpy>:
{
ec78: b570 push {r4, r5, r6, lr}
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
ec7a: f000 0503 and.w r5, r0, #3
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
ec7e: f001 0603 and.w r6, r1, #3
if(s_align != d_align) {
ec82: 42b5 cmp r5, r6
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
ec84: 4604 mov r4, r0
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
ec86: 460b mov r3, r1
if(s_align != d_align) {
ec88: f040 8098 bne.w edbc <_lv_memcpy+0x144>
if(d_align) {
ec8c: 2d00 cmp r5, #0
ec8e: f040 80a8 bne.w ede2 <_lv_memcpy+0x16a>
uint8_t * d8 = dst;
ec92: 4605 mov r5, r0
ec94: 462b mov r3, r5
while(len > 32) {
ec96: 2a20 cmp r2, #32
ec98: 461c mov r4, r3
ec9a: f101 0520 add.w r5, r1, #32
ec9e: f103 0320 add.w r3, r3, #32
eca2: f200 80b0 bhi.w ee06 <_lv_memcpy+0x18e>
while(len > 4) {
eca6: 2a04 cmp r2, #4
eca8: 460e mov r6, r1
ecaa: f240 809f bls.w edec <_lv_memcpy+0x174>
COPY32;
ecae: f851 3b04 ldr.w r3, [r1], #4
ecb2: f844 3b04 str.w r3, [r4], #4
len -= 4;
ecb6: 3a04 subs r2, #4
ecb8: e7f5 b.n eca6 <_lv_memcpy+0x2e>
REPEAT8(COPY8);
ecba: f813 1c20 ldrb.w r1, [r3, #-32]
ecbe: f804 1c20 strb.w r1, [r4, #-32]
ecc2: f813 1c1f ldrb.w r1, [r3, #-31]
ecc6: f804 1c1f strb.w r1, [r4, #-31]
ecca: f813 1c1e ldrb.w r1, [r3, #-30]
ecce: f804 1c1e strb.w r1, [r4, #-30]
ecd2: f813 1c1d ldrb.w r1, [r3, #-29]
ecd6: f804 1c1d strb.w r1, [r4, #-29]
ecda: f813 1c1c ldrb.w r1, [r3, #-28]
ecde: f804 1c1c strb.w r1, [r4, #-28]
ece2: f813 1c1b ldrb.w r1, [r3, #-27]
ece6: f804 1c1b strb.w r1, [r4, #-27]
ecea: f813 1c1a ldrb.w r1, [r3, #-26]
ecee: f804 1c1a strb.w r1, [r4, #-26]
ecf2: f813 1c19 ldrb.w r1, [r3, #-25]
ecf6: f804 1c19 strb.w r1, [r4, #-25]
REPEAT8(COPY8);
ecfa: f813 1c18 ldrb.w r1, [r3, #-24]
ecfe: f804 1c18 strb.w r1, [r4, #-24]
ed02: f813 1c17 ldrb.w r1, [r3, #-23]
ed06: f804 1c17 strb.w r1, [r4, #-23]
ed0a: f813 1c16 ldrb.w r1, [r3, #-22]
ed0e: f804 1c16 strb.w r1, [r4, #-22]
ed12: f813 1c15 ldrb.w r1, [r3, #-21]
ed16: f804 1c15 strb.w r1, [r4, #-21]
ed1a: f813 1c14 ldrb.w r1, [r3, #-20]
ed1e: f804 1c14 strb.w r1, [r4, #-20]
ed22: f813 1c13 ldrb.w r1, [r3, #-19]
ed26: f804 1c13 strb.w r1, [r4, #-19]
ed2a: f813 1c12 ldrb.w r1, [r3, #-18]
ed2e: f804 1c12 strb.w r1, [r4, #-18]
ed32: f813 1c11 ldrb.w r1, [r3, #-17]
ed36: f804 1c11 strb.w r1, [r4, #-17]
REPEAT8(COPY8);
ed3a: f813 1c10 ldrb.w r1, [r3, #-16]
ed3e: f804 1c10 strb.w r1, [r4, #-16]
ed42: f813 1c0f ldrb.w r1, [r3, #-15]
ed46: f804 1c0f strb.w r1, [r4, #-15]
ed4a: f813 1c0e ldrb.w r1, [r3, #-14]
ed4e: f804 1c0e strb.w r1, [r4, #-14]
ed52: f813 1c0d ldrb.w r1, [r3, #-13]
ed56: f804 1c0d strb.w r1, [r4, #-13]
ed5a: f813 1c0c ldrb.w r1, [r3, #-12]
ed5e: f804 1c0c strb.w r1, [r4, #-12]
ed62: f813 1c0b ldrb.w r1, [r3, #-11]
ed66: f804 1c0b strb.w r1, [r4, #-11]
ed6a: f813 1c0a ldrb.w r1, [r3, #-10]
ed6e: f804 1c0a strb.w r1, [r4, #-10]
ed72: f813 1c09 ldrb.w r1, [r3, #-9]
ed76: f804 1c09 strb.w r1, [r4, #-9]
REPEAT8(COPY8);
ed7a: f813 1c08 ldrb.w r1, [r3, #-8]
ed7e: f804 1c08 strb.w r1, [r4, #-8]
ed82: f813 1c07 ldrb.w r1, [r3, #-7]
ed86: f804 1c07 strb.w r1, [r4, #-7]
ed8a: f813 1c06 ldrb.w r1, [r3, #-6]
ed8e: f804 1c06 strb.w r1, [r4, #-6]
ed92: f813 1c05 ldrb.w r1, [r3, #-5]
ed96: f804 1c05 strb.w r1, [r4, #-5]
ed9a: f813 1c04 ldrb.w r1, [r3, #-4]
ed9e: f804 1c04 strb.w r1, [r4, #-4]
eda2: f813 1c03 ldrb.w r1, [r3, #-3]
eda6: f804 1c03 strb.w r1, [r4, #-3]
edaa: f813 1c02 ldrb.w r1, [r3, #-2]
edae: f804 1c02 strb.w r1, [r4, #-2]
edb2: f813 1c01 ldrb.w r1, [r3, #-1]
edb6: f804 1c01 strb.w r1, [r4, #-1]
len -= 32;
edba: 3a20 subs r2, #32
while(len > 32) {
edbc: 2a20 cmp r2, #32
edbe: 461d mov r5, r3
edc0: 4621 mov r1, r4
edc2: f103 0320 add.w r3, r3, #32
edc6: f104 0420 add.w r4, r4, #32
edca: f63f af76 bhi.w ecba <_lv_memcpy+0x42>
edce: 1e6b subs r3, r5, #1
edd0: 440a add r2, r1
while(len) {
edd2: 4291 cmp r1, r2
edd4: d100 bne.n edd8 <_lv_memcpy+0x160>
}
edd6: bd70 pop {r4, r5, r6, pc}
COPY8
edd8: f813 4f01 ldrb.w r4, [r3, #1]!
eddc: f801 4b01 strb.w r4, [r1], #1
len--;
ede0: e7f7 b.n edd2 <_lv_memcpy+0x15a>
d_align = ALIGN_MASK + 1 - d_align;
ede2: f1c5 0504 rsb r5, r5, #4
ede6: 4405 add r5, r0
ede8: 461e mov r6, r3
while(d_align && len) {
edea: b912 cbnz r2, edf2 <_lv_memcpy+0x17a>
edec: 1e73 subs r3, r6, #1
edee: 4422 add r2, r4
edf0: e030 b.n ee54 <_lv_memcpy+0x1dc>
COPY8;
edf2: f813 1b01 ldrb.w r1, [r3], #1
edf6: f804 1b01 strb.w r1, [r4], #1
while(d_align && len) {
edfa: 42ac cmp r4, r5
COPY8;
edfc: 4619 mov r1, r3
len--;
edfe: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
ee02: d1f1 bne.n ede8 <_lv_memcpy+0x170>
ee04: e746 b.n ec94 <_lv_memcpy+0x1c>
REPEAT8(COPY32)
ee06: f855 1c20 ldr.w r1, [r5, #-32]
ee0a: f843 1c20 str.w r1, [r3, #-32]
ee0e: f855 1c1c ldr.w r1, [r5, #-28]
ee12: f843 1c1c str.w r1, [r3, #-28]
ee16: f855 1c18 ldr.w r1, [r5, #-24]
ee1a: f843 1c18 str.w r1, [r3, #-24]
ee1e: f855 1c14 ldr.w r1, [r5, #-20]
ee22: f843 1c14 str.w r1, [r3, #-20]
ee26: f855 1c10 ldr.w r1, [r5, #-16]
ee2a: f843 1c10 str.w r1, [r3, #-16]
ee2e: f855 1c0c ldr.w r1, [r5, #-12]
ee32: f843 1c0c str.w r1, [r3, #-12]
ee36: f855 1c08 ldr.w r1, [r5, #-8]
ee3a: f843 1c08 str.w r1, [r3, #-8]
ee3e: f855 1c04 ldr.w r1, [r5, #-4]
ee42: f843 1c04 str.w r1, [r3, #-4]
len -= 32;
ee46: 3a20 subs r2, #32
ee48: 4629 mov r1, r5
ee4a: e724 b.n ec96 <_lv_memcpy+0x1e>
COPY8
ee4c: f813 1f01 ldrb.w r1, [r3, #1]!
ee50: f804 1b01 strb.w r1, [r4], #1
while(len) {
ee54: 4294 cmp r4, r2
ee56: d1f9 bne.n ee4c <_lv_memcpy+0x1d4>
ee58: e7bd b.n edd6 <_lv_memcpy+0x15e>
...
0000ee5c <lv_mem_realloc>:
if(new_size & 0x3) {
ee5c: 078b lsls r3, r1, #30
{
ee5e: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
ee60: 460d mov r5, r1
new_size = new_size & (~0x3);
ee62: bf18 it ne
ee64: f021 0503 bicne.w r5, r1, #3
{
ee68: 4604 mov r4, r0
new_size += 4;
ee6a: bf18 it ne
ee6c: 3504 addne r5, #4
if(data_p != NULL) {
ee6e: b128 cbz r0, ee7c <lv_mem_realloc+0x20>
if(e->header.s.used == 0) {
ee70: f810 3c04 ldrb.w r3, [r0, #-4]
data_p = NULL;
ee74: f013 0f01 tst.w r3, #1
ee78: bf08 it eq
ee7a: 2400 moveq r4, #0
uint32_t old_size = _lv_mem_get_size(data_p);
ee7c: 4b16 ldr r3, [pc, #88] ; (eed8 <lv_mem_realloc+0x7c>)
ee7e: 4620 mov r0, r4
ee80: 4798 blx r3
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
ee82: 4285 cmp r5, r0
uint32_t old_size = _lv_mem_get_size(data_p);
ee84: 4607 mov r7, r0
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
ee86: d004 beq.n ee92 <lv_mem_realloc+0x36>
if(new_size < old_size) {
ee88: d205 bcs.n ee96 <lv_mem_realloc+0x3a>
ent_trunc(e, new_size);
ee8a: 4b14 ldr r3, [pc, #80] ; (eedc <lv_mem_realloc+0x80>)
ee8c: 4629 mov r1, r5
ee8e: 1f20 subs r0, r4, #4
ee90: 4798 blx r3
return &e->first_data;
ee92: 4626 mov r6, r4
ee94: e00d b.n eeb2 <lv_mem_realloc+0x56>
new_p = lv_mem_alloc(new_size);
ee96: 4b12 ldr r3, [pc, #72] ; (eee0 <lv_mem_realloc+0x84>)
ee98: 4628 mov r0, r5
ee9a: 4798 blx r3
if(new_p == NULL) {
ee9c: 4606 mov r6, r0
ee9e: b958 cbnz r0, eeb8 <lv_mem_realloc+0x5c>
LV_LOG_WARN("Couldn't allocate memory");
eea0: 4b10 ldr r3, [pc, #64] ; (eee4 <lv_mem_realloc+0x88>)
eea2: 9300 str r3, [sp, #0]
eea4: 4910 ldr r1, [pc, #64] ; (eee8 <lv_mem_realloc+0x8c>)
eea6: 4b11 ldr r3, [pc, #68] ; (eeec <lv_mem_realloc+0x90>)
eea8: 4c11 ldr r4, [pc, #68] ; (eef0 <lv_mem_realloc+0x94>)
eeaa: f240 123f movw r2, #319 ; 0x13f
eeae: 2002 movs r0, #2
eeb0: 47a0 blx r4
}
eeb2: 4630 mov r0, r6
eeb4: b003 add sp, #12
eeb6: bdf0 pop {r4, r5, r6, r7, pc}
if(data_p != NULL) {
eeb8: 2c00 cmp r4, #0
eeba: d0fa beq.n eeb2 <lv_mem_realloc+0x56>
if(old_size != 0) {
eebc: 2f00 cmp r7, #0
eebe: d0f8 beq.n eeb2 <lv_mem_realloc+0x56>
_lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size));
eec0: 42bd cmp r5, r7
eec2: 462a mov r2, r5
eec4: 4b0b ldr r3, [pc, #44] ; (eef4 <lv_mem_realloc+0x98>)
eec6: bf28 it cs
eec8: 463a movcs r2, r7
eeca: 4621 mov r1, r4
eecc: 4798 blx r3
lv_mem_free(data_p);
eece: 4b0a ldr r3, [pc, #40] ; (eef8 <lv_mem_realloc+0x9c>)
eed0: 4620 mov r0, r4
eed2: 4798 blx r3
eed4: e7ed b.n eeb2 <lv_mem_realloc+0x56>
eed6: bf00 nop
eed8: 0000eb95 .word 0x0000eb95
eedc: 0000ea25 .word 0x0000ea25
eee0: 0000ea75 .word 0x0000ea75
eee4: 000240b1 .word 0x000240b1
eee8: 00024082 .word 0x00024082
eeec: 000241b7 .word 0x000241b7
eef0: 0000e931 .word 0x0000e931
eef4: 0000ec79 .word 0x0000ec79
eef8: 0000eb2d .word 0x0000eb2d
0000eefc <_lv_mem_buf_get>:
{
eefc: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
if(size == 0) return NULL;
eefe: b190 cbz r0, ef26 <_lv_mem_buf_get+0x2a>
if(size <= MEM_BUF_SMALL_SIZE) {
ef00: 2810 cmp r0, #16
ef02: d812 bhi.n ef2a <_lv_mem_buf_get+0x2e>
if(mem_buf_small[i].used == 0) {
ef04: 4a36 ldr r2, [pc, #216] ; (efe0 <_lv_mem_buf_get+0xe4>)
ef06: 7993 ldrb r3, [r2, #6]
ef08: f013 0301 ands.w r3, r3, #1
ef0c: d003 beq.n ef16 <_lv_mem_buf_get+0x1a>
ef0e: 7b93 ldrb r3, [r2, #14]
ef10: 07de lsls r6, r3, #31
ef12: d40a bmi.n ef2a <_lv_mem_buf_get+0x2e>
ef14: 2301 movs r3, #1
mem_buf_small[i].used = 1;
ef16: eb02 00c3 add.w r0, r2, r3, lsl #3
ef1a: 7981 ldrb r1, [r0, #6]
ef1c: f041 0101 orr.w r1, r1, #1
ef20: 7181 strb r1, [r0, #6]
return mem_buf_small[i].p;
ef22: f852 0033 ldr.w r0, [r2, r3, lsl #3]
}
ef26: b003 add sp, #12
ef28: bdf0 pop {r4, r5, r6, r7, pc}
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
ef2a: 4c2e ldr r4, [pc, #184] ; (efe4 <_lv_mem_buf_get+0xe8>)
if(mem_buf_small[i].used == 0) {
ef2c: 2300 movs r3, #0
ef2e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
ef32: 1d27 adds r7, r4, #4
ef34: eb04 06c3 add.w r6, r4, r3, lsl #3
ef38: 79b5 ldrb r5, [r6, #6]
ef3a: 4629 mov r1, r5
ef3c: 07ed lsls r5, r5, #31
ef3e: d413 bmi.n ef68 <_lv_mem_buf_get+0x6c>
ef40: f837 5033 ldrh.w r5, [r7, r3, lsl #3]
ef44: 4285 cmp r5, r0
ef46: d30f bcc.n ef68 <_lv_mem_buf_get+0x6c>
if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) {
ef48: d105 bne.n ef56 <_lv_mem_buf_get+0x5a>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
ef4a: f041 0101 orr.w r1, r1, #1
return LV_GC_ROOT(_lv_mem_buf[i]).p;
ef4e: f854 0033 ldr.w r0, [r4, r3, lsl #3]
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
ef52: 71b1 strb r1, [r6, #6]
return LV_GC_ROOT(_lv_mem_buf[i]).p;
ef54: e7e7 b.n ef26 <_lv_mem_buf_get+0x2a>
else if(i_guess < 0) {
ef56: 1c56 adds r6, r2, #1
ef58: d101 bne.n ef5e <_lv_mem_buf_get+0x62>
i_guess = i;
ef5a: b25a sxtb r2, r3
ef5c: e004 b.n ef68 <_lv_mem_buf_get+0x6c>
else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) {
ef5e: eb04 01c2 add.w r1, r4, r2, lsl #3
ef62: 8889 ldrh r1, [r1, #4]
ef64: 42a9 cmp r1, r5
ef66: d8f8 bhi.n ef5a <_lv_mem_buf_get+0x5e>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ef68: 3301 adds r3, #1
ef6a: 2b10 cmp r3, #16
ef6c: d1e2 bne.n ef34 <_lv_mem_buf_get+0x38>
if(i_guess >= 0) {
ef6e: 1c55 adds r5, r2, #1
ef70: d008 beq.n ef84 <_lv_mem_buf_get+0x88>
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
ef72: eb04 01c2 add.w r1, r4, r2, lsl #3
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
ef76: f854 0032 ldr.w r0, [r4, r2, lsl #3]
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
ef7a: 798b ldrb r3, [r1, #6]
ef7c: f043 0301 orr.w r3, r3, #1
ef80: 718b strb r3, [r1, #6]
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
ef82: e7d0 b.n ef26 <_lv_mem_buf_get+0x2a>
ef84: 2500 movs r5, #0
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) {
ef86: eb04 03c5 add.w r3, r4, r5, lsl #3
ef8a: 7999 ldrb r1, [r3, #6]
ef8c: 460a mov r2, r1
ef8e: 07c9 lsls r1, r1, #31
ef90: d417 bmi.n efc2 <_lv_mem_buf_get+0xc6>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
ef92: f042 0201 orr.w r2, r2, #1
LV_GC_ROOT(_lv_mem_buf[i]).size = size;
ef96: 8098 strh r0, [r3, #4]
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
ef98: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).p = lv_mem_realloc(LV_GC_ROOT(_lv_mem_buf[i]).p, size);
ef9a: 4601 mov r1, r0
ef9c: 4b12 ldr r3, [pc, #72] ; (efe8 <_lv_mem_buf_get+0xec>)
ef9e: f854 0035 ldr.w r0, [r4, r5, lsl #3]
efa2: 4798 blx r3
efa4: f844 0035 str.w r0, [r4, r5, lsl #3]
if(LV_GC_ROOT(_lv_mem_buf[i]).p == NULL) {
efa8: b940 cbnz r0, efbc <_lv_mem_buf_get+0xc0>
LV_LOG_ERROR("lv_mem_buf_get: Out of memory, can't allocate a new buffer (increase your LV_MEM_SIZE/heap size)")
efaa: 4b10 ldr r3, [pc, #64] ; (efec <_lv_mem_buf_get+0xf0>)
efac: 9300 str r3, [sp, #0]
efae: 4910 ldr r1, [pc, #64] ; (eff0 <_lv_mem_buf_get+0xf4>)
efb0: 4b10 ldr r3, [pc, #64] ; (eff4 <_lv_mem_buf_get+0xf8>)
efb2: 4e11 ldr r6, [pc, #68] ; (eff8 <_lv_mem_buf_get+0xfc>)
efb4: f44f 7204 mov.w r2, #528 ; 0x210
efb8: 2003 movs r0, #3
efba: 47b0 blx r6
return LV_GC_ROOT(_lv_mem_buf[i]).p;
efbc: f854 0035 ldr.w r0, [r4, r5, lsl #3]
efc0: e7b1 b.n ef26 <_lv_mem_buf_get+0x2a>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
efc2: 3501 adds r5, #1
efc4: 2d10 cmp r5, #16
efc6: d1de bne.n ef86 <_lv_mem_buf_get+0x8a>
LV_LOG_ERROR("lv_mem_buf_get: no free buffer. Increase LV_DRAW_BUF_MAX_NUM.");
efc8: 4b0c ldr r3, [pc, #48] ; (effc <_lv_mem_buf_get+0x100>)
efca: 9300 str r3, [sp, #0]
efcc: 2003 movs r0, #3
efce: 4b09 ldr r3, [pc, #36] ; (eff4 <_lv_mem_buf_get+0xf8>)
efd0: 4907 ldr r1, [pc, #28] ; (eff0 <_lv_mem_buf_get+0xf4>)
efd2: 4c09 ldr r4, [pc, #36] ; (eff8 <_lv_mem_buf_get+0xfc>)
efd4: f240 2216 movw r2, #534 ; 0x216
efd8: 47a0 blx r4
return NULL;
efda: 2000 movs r0, #0
efdc: e7a3 b.n ef26 <_lv_mem_buf_get+0x2a>
efde: bf00 nop
efe0: 20000044 .word 0x20000044
efe4: 20008674 .word 0x20008674
efe8: 0000ee5d .word 0x0000ee5d
efec: 000240f6 .word 0x000240f6
eff0: 00024082 .word 0x00024082
eff4: 000241c6 .word 0x000241c6
eff8: 0000e931 .word 0x0000e931
effc: 00024158 .word 0x00024158
0000f000 <_lv_memset>:
if(d_align) {
f000: f010 0303 ands.w r3, r0, #3
{
f004: b410 push {r4}
if(d_align) {
f006: d009 beq.n f01c <_lv_memset+0x1c>
d_align = ALIGN_MASK + 1 - d_align;
f008: f1c3 0304 rsb r3, r3, #4
f00c: 4403 add r3, r0
while(d_align && len) {
f00e: b12a cbz r2, f01c <_lv_memset+0x1c>
*d8 = v;
f010: f800 1b01 strb.w r1, [r0], #1
while(d_align && len) {
f014: 4298 cmp r0, r3
len--;
f016: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
f01a: d1f8 bne.n f00e <_lv_memset+0xe>
uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24);
f01c: eb01 2401 add.w r4, r1, r1, lsl #8
f020: eb04 4401 add.w r4, r4, r1, lsl #16
f024: eb04 6401 add.w r4, r4, r1, lsl #24
while(len > 32) {
f028: 4603 mov r3, r0
f02a: 2a20 cmp r2, #32
f02c: 4618 mov r0, r3
f02e: f103 0320 add.w r3, r3, #32
f032: d805 bhi.n f040 <_lv_memset+0x40>
while(len > 4) {
f034: 2a04 cmp r2, #4
f036: d80d bhi.n f054 <_lv_memset+0x54>
*d8 = v;
f038: 4b08 ldr r3, [pc, #32] ; (f05c <_lv_memset+0x5c>)
}
f03a: f85d 4b04 ldr.w r4, [sp], #4
*d8 = v;
f03e: 4718 bx r3
SET32(v32);
f040: e943 4408 strd r4, r4, [r3, #-32]
SET32(v32);
f044: e943 4406 strd r4, r4, [r3, #-24]
SET32(v32);
f048: e943 4404 strd r4, r4, [r3, #-16]
SET32(v32);
f04c: e943 4402 strd r4, r4, [r3, #-8]
len -= 32;
f050: 3a20 subs r2, #32
f052: e7ea b.n f02a <_lv_memset+0x2a>
SET32(v32);
f054: f840 4b04 str.w r4, [r0], #4
len -= 4;
f058: 3a04 subs r2, #4
f05a: e7eb b.n f034 <_lv_memset+0x34>
f05c: 00016349 .word 0x00016349
0000f060 <_lv_memset_00>:
if(d_align) {
f060: f010 0303 ands.w r3, r0, #3
f064: d10d bne.n f082 <_lv_memset_00+0x22>
f066: 4603 mov r3, r0
SET32(0);
f068: 2200 movs r2, #0
while(len > 32) {
f06a: 2920 cmp r1, #32
f06c: 4618 mov r0, r3
f06e: f103 0320 add.w r3, r3, #32
f072: d816 bhi.n f0a2 <_lv_memset_00+0x42>
SET32(0);
f074: 2300 movs r3, #0
while(len > 4) {
f076: 2904 cmp r1, #4
f078: d908 bls.n f08c <_lv_memset_00+0x2c>
SET32(0);
f07a: f840 3b04 str.w r3, [r0], #4
len -= 4;
f07e: 3904 subs r1, #4
f080: e7f9 b.n f076 <_lv_memset_00+0x16>
d_align = ALIGN_MASK + 1 - d_align;
f082: f1c3 0304 rsb r3, r3, #4
f086: 4403 add r3, r0
*d8 = 0x00;
f088: 2200 movs r2, #0
while(d_align && len) {
f08a: b919 cbnz r1, f094 <_lv_memset_00+0x34>
*d8 = 0;
f08c: 460a mov r2, r1
f08e: 4b0a ldr r3, [pc, #40] ; (f0b8 <_lv_memset_00+0x58>)
f090: 2100 movs r1, #0
f092: 4718 bx r3
*d8 = 0x00;
f094: f800 2b01 strb.w r2, [r0], #1
while(d_align && len) {
f098: 4283 cmp r3, r0
len--;
f09a: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff
while(d_align && len) {
f09e: d1f4 bne.n f08a <_lv_memset_00+0x2a>
f0a0: e7e1 b.n f066 <_lv_memset_00+0x6>
SET32(0);
f0a2: e943 2208 strd r2, r2, [r3, #-32]
SET32(0);
f0a6: e943 2206 strd r2, r2, [r3, #-24]
SET32(0);
f0aa: e943 2204 strd r2, r2, [r3, #-16]
SET32(0);
f0ae: e943 2202 strd r2, r2, [r3, #-8]
len -= 32;
f0b2: 3920 subs r1, #32
f0b4: e7d9 b.n f06a <_lv_memset_00+0xa>
f0b6: bf00 nop
f0b8: 00016349 .word 0x00016349
0000f0bc <_lv_memset_ff>:
if(d_align) {
f0bc: f010 0303 ands.w r3, r0, #3
f0c0: d10f bne.n f0e2 <_lv_memset_ff+0x26>
f0c2: 4603 mov r3, r0
SET32(0xFFFFFFFF);
f0c4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
while(len > 32) {
f0c8: 2920 cmp r1, #32
f0ca: 4618 mov r0, r3
f0cc: f103 0320 add.w r3, r3, #32
f0d0: d817 bhi.n f102 <_lv_memset_ff+0x46>
SET32(0xFFFFFFFF);
f0d2: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
while(len > 4) {
f0d6: 2904 cmp r1, #4
f0d8: d908 bls.n f0ec <_lv_memset_ff+0x30>
SET32(0xFFFFFFFF);
f0da: f840 3b04 str.w r3, [r0], #4
len -= 4;
f0de: 3904 subs r1, #4
f0e0: e7f9 b.n f0d6 <_lv_memset_ff+0x1a>
d_align = ALIGN_MASK + 1 - d_align;
f0e2: f1c3 0304 rsb r3, r3, #4
f0e6: 4403 add r3, r0
*d8 = 0xFF;
f0e8: 22ff movs r2, #255 ; 0xff
while(d_align && len) {
f0ea: b919 cbnz r1, f0f4 <_lv_memset_ff+0x38>
*d8 = 0xFF;
f0ec: 460a mov r2, r1
f0ee: 4b0a ldr r3, [pc, #40] ; (f118 <_lv_memset_ff+0x5c>)
f0f0: 21ff movs r1, #255 ; 0xff
f0f2: 4718 bx r3
*d8 = 0xFF;
f0f4: f800 2b01 strb.w r2, [r0], #1
while(d_align && len) {
f0f8: 4283 cmp r3, r0
len--;
f0fa: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff
while(d_align && len) {
f0fe: d1f4 bne.n f0ea <_lv_memset_ff+0x2e>
f100: e7df b.n f0c2 <_lv_memset_ff+0x6>
SET32(0xFFFFFFFF);
f102: e943 2208 strd r2, r2, [r3, #-32]
SET32(0xFFFFFFFF);
f106: e943 2206 strd r2, r2, [r3, #-24]
SET32(0xFFFFFFFF);
f10a: e943 2204 strd r2, r2, [r3, #-16]
SET32(0xFFFFFFFF);
f10e: e943 2202 strd r2, r2, [r3, #-8]
len -= 32;
f112: 3920 subs r1, #32
f114: e7d8 b.n f0c8 <_lv_memset_ff+0xc>
f116: bf00 nop
f118: 00016349 .word 0x00016349
0000f11c <_out_buffer>:
// internal buffer output
static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen)
{
if(idx < maxlen) {
f11c: 429a cmp r2, r3
((char *)buffer)[idx] = character;
f11e: bf38 it cc
f120: 5488 strbcc r0, [r1, r2]
}
}
f122: 4770 bx lr
0000f124 <_out_null>:
{
(void)character;
(void)buffer;
(void)idx;
(void)maxlen;
}
f124: 4770 bx lr
0000f126 <_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)
{
f126: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
f12a: 4617 mov r7, r2
f12c: e9dd 6211 ldrd r6, r2, [sp, #68] ; 0x44
// pad leading zeros
if(!(flags & FLAGS_LEFT)) {
f130: f012 0a02 ands.w sl, r2, #2
{
f134: 4680 mov r8, r0
f136: e9dd 540c ldrd r5, r4, [sp, #48] ; 0x30
f13a: e9dd 0c0f ldrd r0, ip, [sp, #60] ; 0x3c
f13e: f89d e038 ldrb.w lr, [sp, #56] ; 0x38
if(!(flags & FLAGS_LEFT)) {
f142: d11f bne.n f184 <_ntoa_format+0x5e>
if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
f144: f002 0901 and.w r9, r2, #1
f148: b14e cbz r6, f15e <_ntoa_format+0x38>
f14a: f1b9 0f00 cmp.w r9, #0
f14e: d006 beq.n f15e <_ntoa_format+0x38>
f150: f1be 0f00 cmp.w lr, #0
f154: d102 bne.n f15c <_ntoa_format+0x36>
f156: f012 0f0c tst.w r2, #12
f15a: d000 beq.n f15e <_ntoa_format+0x38>
width--;
f15c: 3e01 subs r6, #1
}
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = '0';
f15e: f04f 0b30 mov.w fp, #48 ; 0x30
f162: e004 b.n f16e <_ntoa_format+0x48>
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f164: 2c20 cmp r4, #32
f166: d004 beq.n f172 <_ntoa_format+0x4c>
buf[len++] = '0';
f168: f805 b004 strb.w fp, [r5, r4]
f16c: 3401 adds r4, #1
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f16e: 45a4 cmp ip, r4
f170: d8f8 bhi.n f164 <_ntoa_format+0x3e>
}
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = '0';
f172: f04f 0b30 mov.w fp, #48 ; 0x30
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f176: f1b9 0f00 cmp.w r9, #0
f17a: d003 beq.n f184 <_ntoa_format+0x5e>
f17c: 42a6 cmp r6, r4
f17e: d901 bls.n f184 <_ntoa_format+0x5e>
f180: 2c20 cmp r4, #32
f182: d137 bne.n f1f4 <_ntoa_format+0xce>
}
}
// handle hash
if(flags & FLAGS_HASH) {
f184: f012 0f10 tst.w r2, #16
f188: d019 beq.n f1be <_ntoa_format+0x98>
if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
f18a: f412 6f80 tst.w r2, #1024 ; 0x400
f18e: d136 bne.n f1fe <_ntoa_format+0xd8>
f190: b3ac cbz r4, f1fe <_ntoa_format+0xd8>
f192: 4564 cmp r4, ip
f194: d001 beq.n f19a <_ntoa_format+0x74>
f196: 42b4 cmp r4, r6
f198: d131 bne.n f1fe <_ntoa_format+0xd8>
len--;
if(len && (base == 16U)) {
f19a: f1b4 0c01 subs.w ip, r4, #1
f19e: d02d beq.n f1fc <_ntoa_format+0xd6>
f1a0: 2810 cmp r0, #16
f1a2: d16a bne.n f27a <_ntoa_format+0x154>
len--;
f1a4: 3c02 subs r4, #2
}
}
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f1a6: 0690 lsls r0, r2, #26
f1a8: d431 bmi.n f20e <_ntoa_format+0xe8>
f1aa: 2c1f cmp r4, #31
f1ac: d80f bhi.n f1ce <_ntoa_format+0xa8>
buf[len++] = 'x';
f1ae: 2078 movs r0, #120 ; 0x78
}
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = 'X';
}
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = 'b';
f1b0: 5528 strb r0, [r5, r4]
f1b2: 3401 adds r4, #1
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
f1b4: 2c1f cmp r4, #31
f1b6: d80a bhi.n f1ce <_ntoa_format+0xa8>
buf[len++] = '0';
f1b8: 2030 movs r0, #48 ; 0x30
f1ba: 5528 strb r0, [r5, r4]
f1bc: 3401 adds r4, #1
}
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
f1be: 2c20 cmp r4, #32
f1c0: d005 beq.n f1ce <_ntoa_format+0xa8>
if(negative) {
f1c2: f1be 0f00 cmp.w lr, #0
f1c6: d026 beq.n f216 <_ntoa_format+0xf0>
buf[len++] = '-';
f1c8: 202d movs r0, #45 ; 0x2d
}
else if(flags & FLAGS_PLUS) {
buf[len++] = '+'; // ignore the space if the '+' exists
}
else if(flags & FLAGS_SPACE) {
buf[len++] = ' ';
f1ca: 5528 strb r0, [r5, r4]
f1cc: 3401 adds r4, #1
if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
f1ce: 0792 lsls r2, r2, #30
f1d0: d03b beq.n f24a <_ntoa_format+0x124>
f1d2: 463a mov r2, r7
f1d4: 4425 add r5, r4
f1d6: 4414 add r4, r2
while(len) {
f1d8: 42a2 cmp r2, r4
f1da: d13a bne.n f252 <_ntoa_format+0x12c>
if(flags & FLAGS_LEFT) {
f1dc: f1ba 0f00 cmp.w sl, #0
f1e0: d004 beq.n f1ec <_ntoa_format+0xc6>
f1e2: 1bd5 subs r5, r2, r7
while(idx - start_idx < width) {
f1e4: 42b5 cmp r5, r6
f1e6: eb05 0407 add.w r4, r5, r7
f1ea: d33d bcc.n f268 <_ntoa_format+0x142>
}
}
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
}
f1ec: 4620 mov r0, r4
f1ee: b003 add sp, #12
f1f0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
buf[len++] = '0';
f1f4: f805 b004 strb.w fp, [r5, r4]
f1f8: 3401 adds r4, #1
f1fa: e7bc b.n f176 <_ntoa_format+0x50>
f1fc: 4664 mov r4, ip
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f1fe: 2810 cmp r0, #16
f200: d0d1 beq.n f1a6 <_ntoa_format+0x80>
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f202: 2802 cmp r0, #2
f204: d1d6 bne.n f1b4 <_ntoa_format+0x8e>
f206: 2c1f cmp r4, #31
f208: d8e1 bhi.n f1ce <_ntoa_format+0xa8>
buf[len++] = 'b';
f20a: 2062 movs r0, #98 ; 0x62
f20c: e7d0 b.n f1b0 <_ntoa_format+0x8a>
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f20e: 2c1f cmp r4, #31
f210: d8dd bhi.n f1ce <_ntoa_format+0xa8>
buf[len++] = 'X';
f212: 2058 movs r0, #88 ; 0x58
f214: e7cc b.n f1b0 <_ntoa_format+0x8a>
else if(flags & FLAGS_PLUS) {
f216: 0750 lsls r0, r2, #29
f218: d501 bpl.n f21e <_ntoa_format+0xf8>
buf[len++] = '+'; // ignore the space if the '+' exists
f21a: 202b movs r0, #43 ; 0x2b
f21c: e7d5 b.n f1ca <_ntoa_format+0xa4>
else if(flags & FLAGS_SPACE) {
f21e: 0710 lsls r0, r2, #28
f220: d5d5 bpl.n f1ce <_ntoa_format+0xa8>
buf[len++] = ' ';
f222: 2020 movs r0, #32
f224: e7d1 b.n f1ca <_ntoa_format+0xa4>
out(' ', buffer, idx++, maxlen);
f226: 2020 movs r0, #32
f228: e9cd 1300 strd r1, r3, [sp]
f22c: 47c0 blx r8
for(i = len; i < width; i++) {
f22e: e9dd 1300 ldrd r1, r3, [sp]
f232: f109 0901 add.w r9, r9, #1
f236: 454e cmp r6, r9
f238: eb0b 0209 add.w r2, fp, r9
f23c: d8f3 bhi.n f226 <_ntoa_format+0x100>
f23e: 1b32 subs r2, r6, r4
f240: 42b4 cmp r4, r6
f242: bf88 it hi
f244: 2200 movhi r2, #0
f246: 443a add r2, r7
f248: e7c4 b.n f1d4 <_ntoa_format+0xae>
f24a: 46a1 mov r9, r4
f24c: eba7 0b04 sub.w fp, r7, r4
f250: e7f1 b.n f236 <_ntoa_format+0x110>
out(buf[--len], buffer, idx++, maxlen);
f252: f102 0901 add.w r9, r2, #1
f256: f815 0d01 ldrb.w r0, [r5, #-1]!
f25a: e9cd 1300 strd r1, r3, [sp]
f25e: 47c0 blx r8
f260: e9dd 1300 ldrd r1, r3, [sp]
f264: 464a mov r2, r9
f266: e7b7 b.n f1d8 <_ntoa_format+0xb2>
out(' ', buffer, idx++, maxlen);
f268: 4622 mov r2, r4
f26a: 2020 movs r0, #32
f26c: 9301 str r3, [sp, #4]
f26e: 9100 str r1, [sp, #0]
f270: 3501 adds r5, #1
f272: 47c0 blx r8
f274: e9dd 1300 ldrd r1, r3, [sp]
f278: e7b4 b.n f1e4 <_ntoa_format+0xbe>
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f27a: 2802 cmp r0, #2
f27c: 4664 mov r4, ip
f27e: d199 bne.n f1b4 <_ntoa_format+0x8e>
f280: e7c3 b.n f20a <_ntoa_format+0xe4>
...
0000f284 <_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)
{
f284: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
f288: b091 sub sp, #68 ; 0x44
f28a: 9d18 ldr r5, [sp, #96] ; 0x60
f28c: 9e1a ldr r6, [sp, #104] ; 0x68
f28e: 9f1d ldr r7, [sp, #116] ; 0x74
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
f290: b90d cbnz r5, f296 <_ntoa_long+0x12>
flags &= ~FLAGS_HASH;
f292: f027 0710 bic.w r7, r7, #16
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
f296: 057c lsls r4, r7, #21
f298: d500 bpl.n f29c <_ntoa_long+0x18>
f29a: b315 cbz r5, f2e2 <_ntoa_long+0x5e>
f29c: f017 0f20 tst.w r7, #32
f2a0: bf14 ite ne
f2a2: f04f 0e41 movne.w lr, #65 ; 0x41
f2a6: f04f 0e61 moveq.w lr, #97 ; 0x61
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f2aa: 46ac mov ip, r5
f2ac: f10d 0820 add.w r8, sp, #32
f2b0: 2500 movs r5, #0
f2b2: f1ae 0e0a sub.w lr, lr, #10
const char digit = (char)(value % base);
f2b6: fbbc f9f6 udiv r9, ip, r6
f2ba: fb06 c919 mls r9, r6, r9, ip
f2be: fa5f f489 uxtb.w r4, r9
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f2c2: f1b9 0f09 cmp.w r9, #9
f2c6: bf94 ite ls
f2c8: 3430 addls r4, #48 ; 0x30
f2ca: 4474 addhi r4, lr
f2cc: b2e4 uxtb r4, r4
value /= base;
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f2ce: 45b4 cmp ip, r6
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f2d0: f808 4b01 strb.w r4, [r8], #1
value /= base;
f2d4: fbbc f4f6 udiv r4, ip, r6
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f2d8: f105 0501 add.w r5, r5, #1
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f2dc: d301 bcc.n f2e2 <_ntoa_long+0x5e>
f2de: 2d20 cmp r5, #32
f2e0: d110 bne.n f304 <_ntoa_long+0x80>
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
f2e2: 9c1c ldr r4, [sp, #112] ; 0x70
f2e4: 9405 str r4, [sp, #20]
f2e6: 9c1b ldr r4, [sp, #108] ; 0x6c
f2e8: 9706 str r7, [sp, #24]
f2ea: e9cd 6403 strd r6, r4, [sp, #12]
f2ee: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64
f2f2: e9cd 5401 strd r5, r4, [sp, #4]
f2f6: ac08 add r4, sp, #32
f2f8: 9400 str r4, [sp, #0]
f2fa: 4c03 ldr r4, [pc, #12] ; (f308 <_ntoa_long+0x84>)
f2fc: 47a0 blx r4
}
f2fe: b011 add sp, #68 ; 0x44
f300: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
value /= base;
f304: 46a4 mov ip, r4
f306: e7d6 b.n f2b6 <_ntoa_long+0x32>
f308: 0000f127 .word 0x0000f127
0000f30c <_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)
{
f30c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
f310: ed2d 8b04 vpush {d8-d9}
f314: b093 sub sp, #76 ; 0x4c
f316: e9dd 6520 ldrd r6, r5, [sp, #128] ; 0x80
f31a: 469a mov sl, r3
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
f31c: ea56 0305 orrs.w r3, r6, r5
flags &= ~FLAGS_HASH;
f320: bf02 ittt eq
f322: 9b28 ldreq r3, [sp, #160] ; 0xa0
f324: f023 0310 biceq.w r3, r3, #16
f328: 9328 streq r3, [sp, #160] ; 0xa0
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
f32a: 9b28 ldr r3, [sp, #160] ; 0xa0
f32c: 055b lsls r3, r3, #21
{
f32e: e9dd b924 ldrd fp, r9, [sp, #144] ; 0x90
f332: ee08 0a10 vmov s16, r0
f336: ee08 1a90 vmov s17, r1
f33a: ee09 2a10 vmov s18, r2
if(!(flags & FLAGS_PRECISION) || value) {
f33e: d502 bpl.n f346 <_ntoa_long_long+0x3a>
f340: ea56 0305 orrs.w r3, r6, r5
f344: d03f beq.n f3c6 <_ntoa_long_long+0xba>
f346: 9b28 ldr r3, [sp, #160] ; 0xa0
f348: f013 0f20 tst.w r3, #32
f34c: bf14 ite ne
f34e: 2341 movne r3, #65 ; 0x41
f350: 2361 moveq r3, #97 ; 0x61
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f352: 3b0a subs r3, #10
f354: f10d 0828 add.w r8, sp, #40 ; 0x28
f358: 2400 movs r4, #0
f35a: 9309 str r3, [sp, #36] ; 0x24
const char digit = (char)(value % base);
f35c: 4f1b ldr r7, [pc, #108] ; (f3cc <_ntoa_long_long+0xc0>)
f35e: 465a mov r2, fp
f360: 464b mov r3, r9
f362: 4630 mov r0, r6
f364: 4629 mov r1, r5
f366: 47b8 blx r7
f368: b2d2 uxtb r2, r2
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f36a: 2a09 cmp r2, #9
f36c: bf8a itet hi
f36e: 9b09 ldrhi r3, [sp, #36] ; 0x24
f370: 3230 addls r2, #48 ; 0x30
f372: 18d2 addhi r2, r2, r3
value /= base;
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f374: 455e cmp r6, fp
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f376: b2d2 uxtb r2, r2
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f378: eb75 0309 sbcs.w r3, r5, r9
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f37c: f808 2b01 strb.w r2, [r8], #1
f380: f104 0401 add.w r4, r4, #1
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f384: d301 bcc.n f38a <_ntoa_long_long+0x7e>
f386: 2c20 cmp r4, #32
f388: d11a bne.n f3c0 <_ntoa_long_long+0xb4>
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
f38a: 9b28 ldr r3, [sp, #160] ; 0xa0
f38c: 9306 str r3, [sp, #24]
f38e: 9b27 ldr r3, [sp, #156] ; 0x9c
f390: 9305 str r3, [sp, #20]
f392: 9b26 ldr r3, [sp, #152] ; 0x98
f394: e9cd b303 strd fp, r3, [sp, #12]
f398: f89d 3088 ldrb.w r3, [sp, #136] ; 0x88
f39c: e9cd 4301 strd r4, r3, [sp, #4]
f3a0: ab0a add r3, sp, #40 ; 0x28
f3a2: 9300 str r3, [sp, #0]
f3a4: ee19 2a10 vmov r2, s18
f3a8: ee18 1a90 vmov r1, s17
f3ac: ee18 0a10 vmov r0, s16
f3b0: 4c07 ldr r4, [pc, #28] ; (f3d0 <_ntoa_long_long+0xc4>)
f3b2: 4653 mov r3, sl
f3b4: 47a0 blx r4
}
f3b6: b013 add sp, #76 ; 0x4c
f3b8: ecbd 8b04 vpop {d8-d9}
f3bc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
value /= base;
f3c0: 4606 mov r6, r0
f3c2: 460d mov r5, r1
f3c4: e7ca b.n f35c <_ntoa_long_long+0x50>
size_t len = 0U;
f3c6: 2400 movs r4, #0
f3c8: e7df b.n f38a <_ntoa_long_long+0x7e>
f3ca: bf00 nop
f3cc: 00015f8d .word 0x00015f8d
f3d0: 0000f127 .word 0x0000f127
0000f3d4 <_vsnprintf.constprop.0>:
#endif // PRINTF_SUPPORT_EXPONENTIAL
#endif // PRINTF_SUPPORT_FLOAT
// internal vsnprintf
static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va)
f3d4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
f3d8: b091 sub sp, #68 ; 0x44
f3da: 461f mov r7, r3
f3dc: 920a str r2, [sp, #40] ; 0x28
unsigned int flags, width, precision, n;
size_t idx = 0U;
if(!buffer) {
// use null output function
out = _out_null;
f3de: 4bac ldr r3, [pc, #688] ; (f690 <_vsnprintf.constprop.0+0x2bc>)
f3e0: 4aac ldr r2, [pc, #688] ; (f694 <_vsnprintf.constprop.0+0x2c0>)
static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va)
f3e2: 4689 mov r9, r1
out = _out_null;
f3e4: 1e01 subs r1, r0, #0
f3e6: bf14 ite ne
f3e8: 4692 movne sl, r2
f3ea: 469a moveq sl, r3
out('%', buffer, idx++, maxlen);
format++;
break;
default :
out(*format, buffer, idx++, maxlen);
f3ec: 2400 movs r4, #0
while(*format) {
f3ee: 9b0a ldr r3, [sp, #40] ; 0x28
f3f0: 7818 ldrb r0, [r3, #0]
f3f2: b958 cbnz r0, f40c <_vsnprintf.constprop.0+0x38>
break;
}
}
// termination
out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
f3f4: 454c cmp r4, r9
f3f6: bf2c ite cs
f3f8: f109 32ff addcs.w r2, r9, #4294967295 ; 0xffffffff
f3fc: 4622 movcc r2, r4
f3fe: 464b mov r3, r9
f400: 2000 movs r0, #0
f402: 47d0 blx sl
// return written chars without terminating \0
return (int)idx;
}
f404: 4620 mov r0, r4
f406: b011 add sp, #68 ; 0x44
f408: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
format++;
f40c: 9b0a ldr r3, [sp, #40] ; 0x28
if(*format != '%') {
f40e: 2825 cmp r0, #37 ; 0x25
format++;
f410: f103 0301 add.w r3, r3, #1
f414: 930a str r3, [sp, #40] ; 0x28
if(*format != '%') {
f416: d006 beq.n f426 <_vsnprintf.constprop.0+0x52>
out(*format, buffer, idx++, maxlen);
f418: 4622 mov r2, r4
f41a: 1c65 adds r5, r4, #1
f41c: 464b mov r3, r9
f41e: 910b str r1, [sp, #44] ; 0x2c
f420: 47d0 blx sl
f422: 462c mov r4, r5
f424: e217 b.n f856 <_vsnprintf.constprop.0+0x482>
flags = 0U;
f426: 2500 movs r5, #0
f428: e006 b.n f438 <_vsnprintf.constprop.0+0x64>
switch(*format) {
f42a: 2b2d cmp r3, #45 ; 0x2d
f42c: d016 beq.n f45c <_vsnprintf.constprop.0+0x88>
f42e: 2b30 cmp r3, #48 ; 0x30
f430: d10c bne.n f44c <_vsnprintf.constprop.0+0x78>
flags |= FLAGS_ZEROPAD;
f432: f045 0501 orr.w r5, r5, #1
format++;
f436: 920a str r2, [sp, #40] ; 0x28
switch(*format) {
f438: 9a0a ldr r2, [sp, #40] ; 0x28
f43a: f812 3b01 ldrb.w r3, [r2], #1
f43e: 2b2b cmp r3, #43 ; 0x2b
f440: d00f beq.n f462 <_vsnprintf.constprop.0+0x8e>
f442: d8f2 bhi.n f42a <_vsnprintf.constprop.0+0x56>
f444: 2b20 cmp r3, #32
f446: d00f beq.n f468 <_vsnprintf.constprop.0+0x94>
f448: 2b23 cmp r3, #35 ; 0x23
f44a: d010 beq.n f46e <_vsnprintf.constprop.0+0x9a>
if(_is_digit(*format)) {
f44c: f1a3 0030 sub.w r0, r3, #48 ; 0x30
f450: 2809 cmp r0, #9
f452: d82c bhi.n f4ae <_vsnprintf.constprop.0+0xda>
unsigned int i = 0U;
f454: f04f 0800 mov.w r8, #0
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f458: 200a movs r0, #10
f45a: e010 b.n f47e <_vsnprintf.constprop.0+0xaa>
flags |= FLAGS_LEFT;
f45c: f045 0502 orr.w r5, r5, #2
} while(n);
f460: e7e9 b.n f436 <_vsnprintf.constprop.0+0x62>
flags |= FLAGS_PLUS;
f462: f045 0504 orr.w r5, r5, #4
} while(n);
f466: e7e6 b.n f436 <_vsnprintf.constprop.0+0x62>
flags |= FLAGS_SPACE;
f468: f045 0508 orr.w r5, r5, #8
} while(n);
f46c: e7e3 b.n f436 <_vsnprintf.constprop.0+0x62>
flags |= FLAGS_HASH;
f46e: f045 0510 orr.w r5, r5, #16
} while(n);
f472: e7e0 b.n f436 <_vsnprintf.constprop.0+0x62>
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f474: fb00 3808 mla r8, r0, r8, r3
f478: f1a8 0830 sub.w r8, r8, #48 ; 0x30
f47c: 920a str r2, [sp, #40] ; 0x28
while(_is_digit(**str)) {
f47e: 9a0a ldr r2, [sp, #40] ; 0x28
f480: f812 3b01 ldrb.w r3, [r2], #1
f484: f1a3 0630 sub.w r6, r3, #48 ; 0x30
f488: 2e09 cmp r6, #9
f48a: d9f3 bls.n f474 <_vsnprintf.constprop.0+0xa0>
if(*format == '.') {
f48c: 9b0a ldr r3, [sp, #40] ; 0x28
f48e: 781b ldrb r3, [r3, #0]
f490: 2b2e cmp r3, #46 ; 0x2e
f492: d14c bne.n f52e <_vsnprintf.constprop.0+0x15a>
format++;
f494: 9b0a ldr r3, [sp, #40] ; 0x28
f496: 1c58 adds r0, r3, #1
if(_is_digit(*format)) {
f498: 785b ldrb r3, [r3, #1]
f49a: f1a3 0230 sub.w r2, r3, #48 ; 0x30
f49e: 2a09 cmp r2, #9
flags |= FLAGS_PRECISION;
f4a0: f445 6580 orr.w r5, r5, #1024 ; 0x400
if(_is_digit(*format)) {
f4a4: d83a bhi.n f51c <_vsnprintf.constprop.0+0x148>
unsigned int i = 0U;
f4a6: 2600 movs r6, #0
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f4a8: f04f 0e0a mov.w lr, #10
f4ac: e013 b.n f4d6 <_vsnprintf.constprop.0+0x102>
else if(*format == '*') {
f4ae: 2b2a cmp r3, #42 ; 0x2a
f4b0: d10a bne.n f4c8 <_vsnprintf.constprop.0+0xf4>
const int w = va_arg(va, int);
f4b2: f857 8b04 ldr.w r8, [r7], #4
f4b6: 920a str r2, [sp, #40] ; 0x28
if(w < 0) {
f4b8: f1b8 0f00 cmp.w r8, #0
flags |= FLAGS_LEFT; // reverse padding
f4bc: bfbc itt lt
f4be: f045 0502 orrlt.w r5, r5, #2
width = (unsigned int) - w;
f4c2: f1c8 0800 rsblt r8, r8, #0
format++;
f4c6: e7e1 b.n f48c <_vsnprintf.constprop.0+0xb8>
width = 0U;
f4c8: f04f 0800 mov.w r8, #0
f4cc: e7de b.n f48c <_vsnprintf.constprop.0+0xb8>
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f4ce: fb0e 3606 mla r6, lr, r6, r3
f4d2: 3e30 subs r6, #48 ; 0x30
f4d4: 4610 mov r0, r2
while(_is_digit(**str)) {
f4d6: 4602 mov r2, r0
f4d8: f812 3b01 ldrb.w r3, [r2], #1
f4dc: f1a3 0c30 sub.w ip, r3, #48 ; 0x30
f4e0: f1bc 0f09 cmp.w ip, #9
f4e4: d9f3 bls.n f4ce <_vsnprintf.constprop.0+0xfa>
switch(*format) {
f4e6: 4602 mov r2, r0
f4e8: f812 3b01 ldrb.w r3, [r2], #1
f4ec: 2b6c cmp r3, #108 ; 0x6c
f4ee: d028 beq.n f542 <_vsnprintf.constprop.0+0x16e>
f4f0: d820 bhi.n f534 <_vsnprintf.constprop.0+0x160>
f4f2: 2b68 cmp r3, #104 ; 0x68
f4f4: d02c beq.n f550 <_vsnprintf.constprop.0+0x17c>
f4f6: 2b6a cmp r3, #106 ; 0x6a
f4f8: d033 beq.n f562 <_vsnprintf.constprop.0+0x18e>
f4fa: 4602 mov r2, r0
switch(*format) {
f4fc: 4613 mov r3, r2
f4fe: f813 0b01 ldrb.w r0, [r3], #1
f502: 930a str r3, [sp, #40] ; 0x28
f504: 2878 cmp r0, #120 ; 0x78
f506: d887 bhi.n f418 <_vsnprintf.constprop.0+0x44>
f508: 2861 cmp r0, #97 ; 0x61
f50a: d82d bhi.n f568 <_vsnprintf.constprop.0+0x194>
f50c: 2825 cmp r0, #37 ; 0x25
f50e: d083 beq.n f418 <_vsnprintf.constprop.0+0x44>
f510: 2858 cmp r0, #88 ; 0x58
f512: d181 bne.n f418 <_vsnprintf.constprop.0+0x44>
flags |= FLAGS_UPPERCASE;
f514: f045 0520 orr.w r5, r5, #32
base = 16U;
f518: 2210 movs r2, #16
f51a: e06b b.n f5f4 <_vsnprintf.constprop.0+0x220>
else if(*format == '*') {
f51c: 2b2a cmp r3, #42 ; 0x2a
f51e: d107 bne.n f530 <_vsnprintf.constprop.0+0x15c>
precision = prec > 0 ? (unsigned int)prec : 0U;
f520: f857 6b04 ldr.w r6, [r7], #4
format++;
f524: 980a ldr r0, [sp, #40] ; 0x28
precision = prec > 0 ? (unsigned int)prec : 0U;
f526: ea26 76e6 bic.w r6, r6, r6, asr #31
format++;
f52a: 3002 adds r0, #2
f52c: e7db b.n f4e6 <_vsnprintf.constprop.0+0x112>
f52e: 980a ldr r0, [sp, #40] ; 0x28
precision = 0U;
f530: 2600 movs r6, #0
f532: e7d8 b.n f4e6 <_vsnprintf.constprop.0+0x112>
switch(*format) {
f534: 2b74 cmp r3, #116 ; 0x74
f536: d001 beq.n f53c <_vsnprintf.constprop.0+0x168>
f538: 2b7a cmp r3, #122 ; 0x7a
f53a: d1de bne.n f4fa <_vsnprintf.constprop.0+0x126>
flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
f53c: f445 7580 orr.w r5, r5, #256 ; 0x100
break;
f540: e7dc b.n f4fc <_vsnprintf.constprop.0+0x128>
if(*format == 'l') {
f542: 7843 ldrb r3, [r0, #1]
f544: 2b6c cmp r3, #108 ; 0x6c
f546: d1f9 bne.n f53c <_vsnprintf.constprop.0+0x168>
flags |= FLAGS_LONG_LONG;
f548: f445 7540 orr.w r5, r5, #768 ; 0x300
format++;
f54c: 1c82 adds r2, r0, #2
f54e: e7d5 b.n f4fc <_vsnprintf.constprop.0+0x128>
if(*format == 'h') {
f550: 7843 ldrb r3, [r0, #1]
f552: 2b68 cmp r3, #104 ; 0x68
f554: d002 beq.n f55c <_vsnprintf.constprop.0+0x188>
flags |= FLAGS_SHORT;
f556: f045 0580 orr.w r5, r5, #128 ; 0x80
f55a: e7cf b.n f4fc <_vsnprintf.constprop.0+0x128>
flags |= FLAGS_CHAR;
f55c: f045 05c0 orr.w r5, r5, #192 ; 0xc0
f560: e7f4 b.n f54c <_vsnprintf.constprop.0+0x178>
flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
f562: f445 7500 orr.w r5, r5, #512 ; 0x200
break;
f566: e7c9 b.n f4fc <_vsnprintf.constprop.0+0x128>
switch(*format) {
f568: f1a0 0362 sub.w r3, r0, #98 ; 0x62
f56c: 2b16 cmp r3, #22
f56e: f63f af53 bhi.w f418 <_vsnprintf.constprop.0+0x44>
f572: a201 add r2, pc, #4 ; (adr r2, f578 <_vsnprintf.constprop.0+0x1a4>)
f574: f852 f023 ldr.w pc, [r2, r3, lsl #2]
f578: 0000f5d5 .word 0x0000f5d5
f57c: 0000f6f7 .word 0x0000f6f7
f580: 0000f5d5 .word 0x0000f5d5
f584: 0000f419 .word 0x0000f419
f588: 0000f419 .word 0x0000f419
f58c: 0000f419 .word 0x0000f419
f590: 0000f419 .word 0x0000f419
f594: 0000f5d5 .word 0x0000f5d5
f598: 0000f419 .word 0x0000f419
f59c: 0000f419 .word 0x0000f419
f5a0: 0000f419 .word 0x0000f419
f5a4: 0000f419 .word 0x0000f419
f5a8: 0000f419 .word 0x0000f419
f5ac: 0000f5d5 .word 0x0000f5d5
f5b0: 0000f82f .word 0x0000f82f
f5b4: 0000f419 .word 0x0000f419
f5b8: 0000f419 .word 0x0000f419
f5bc: 0000f76d .word 0x0000f76d
f5c0: 0000f419 .word 0x0000f419
f5c4: 0000f5d5 .word 0x0000f5d5
f5c8: 0000f419 .word 0x0000f419
f5cc: 0000f419 .word 0x0000f419
f5d0: 0000f5d5 .word 0x0000f5d5
if(*format == 'x' || *format == 'X') {
f5d4: 2878 cmp r0, #120 ; 0x78
f5d6: d09f beq.n f518 <_vsnprintf.constprop.0+0x144>
else if(*format == 'o') {
f5d8: 286f cmp r0, #111 ; 0x6f
f5da: f000 813e beq.w f85a <_vsnprintf.constprop.0+0x486>
else if(*format == 'b') {
f5de: 2862 cmp r0, #98 ; 0x62
f5e0: f000 813d beq.w f85e <_vsnprintf.constprop.0+0x48a>
if((*format != 'i') && (*format != 'd')) {
f5e4: 2869 cmp r0, #105 ; 0x69
flags &= ~FLAGS_HASH; // no hash for dec format
f5e6: f025 0510 bic.w r5, r5, #16
base = 10U;
f5ea: f04f 020a mov.w r2, #10
if((*format != 'i') && (*format != 'd')) {
f5ee: d003 beq.n f5f8 <_vsnprintf.constprop.0+0x224>
f5f0: 2864 cmp r0, #100 ; 0x64
f5f2: d001 beq.n f5f8 <_vsnprintf.constprop.0+0x224>
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
f5f4: f025 050c bic.w r5, r5, #12
if(flags & FLAGS_PRECISION) {
f5f8: 056b lsls r3, r5, #21
flags &= ~FLAGS_ZEROPAD;
f5fa: bf48 it mi
f5fc: f025 0501 bicmi.w r5, r5, #1
if((*format == 'i') || (*format == 'd')) {
f600: 2869 cmp r0, #105 ; 0x69
if(flags & FLAGS_LONG_LONG) {
f602: f405 7300 and.w r3, r5, #512 ; 0x200
if((*format == 'i') || (*format == 'd')) {
f606: d001 beq.n f60c <_vsnprintf.constprop.0+0x238>
f608: 2864 cmp r0, #100 ; 0x64
f60a: d149 bne.n f6a0 <_vsnprintf.constprop.0+0x2cc>
if(flags & FLAGS_LONG_LONG) {
f60c: b1fb cbz r3, f64e <_vsnprintf.constprop.0+0x27a>
const long long value = va_arg(va, long long);
f60e: 3707 adds r7, #7
f610: f027 0707 bic.w r7, r7, #7
f614: 46bb mov fp, r7
f616: 6878 ldr r0, [r7, #4]
f618: f85b 3b08 ldr.w r3, [fp], #8
idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base,
f61c: 9204 str r2, [sp, #16]
f61e: 2200 movs r2, #0
f620: 9205 str r2, [sp, #20]
f622: 0fc2 lsrs r2, r0, #31
f624: 2800 cmp r0, #0
f626: e9cd 8507 strd r8, r5, [sp, #28]
f62a: 9606 str r6, [sp, #24]
f62c: 9202 str r2, [sp, #8]
f62e: da02 bge.n f636 <_vsnprintf.constprop.0+0x262>
f630: 425b negs r3, r3
f632: eb60 0040 sbc.w r0, r0, r0, lsl #1
f636: e9cd 3000 strd r3, r0, [sp]
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
f63a: 4622 mov r2, r4
f63c: 464b mov r3, r9
f63e: 4c16 ldr r4, [pc, #88] ; (f698 <_vsnprintf.constprop.0+0x2c4>)
f640: 910b str r1, [sp, #44] ; 0x2c
f642: 4650 mov r0, sl
f644: 47a0 blx r4
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f646: 990b ldr r1, [sp, #44] ; 0x2c
f648: 4604 mov r4, r0
break;
f64a: 465f mov r7, fp
f64c: e6cf b.n f3ee <_vsnprintf.constprop.0+0x1a>
else if(flags & FLAGS_LONG) {
f64e: 05eb lsls r3, r5, #23
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f650: f107 0b04 add.w fp, r7, #4
else if(flags & FLAGS_LONG) {
f654: d512 bpl.n f67c <_vsnprintf.constprop.0+0x2a8>
const long value = va_arg(va, long);
f656: 683b ldr r3, [r7, #0]
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision,
f658: e9cd 8504 strd r8, r5, [sp, #16]
f65c: e9cd 2602 strd r2, r6, [sp, #8]
f660: 2b00 cmp r3, #0
f662: ea4f 72d3 mov.w r2, r3, lsr #31
f666: 9201 str r2, [sp, #4]
f668: bfb8 it lt
f66a: 425b neglt r3, r3
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f66c: 9300 str r3, [sp, #0]
f66e: 4622 mov r2, r4
f670: 464b mov r3, r9
f672: 4c0a ldr r4, [pc, #40] ; (f69c <_vsnprintf.constprop.0+0x2c8>)
f674: 910b str r1, [sp, #44] ; 0x2c
f676: 4650 mov r0, sl
f678: 47a0 blx r4
f67a: e7e4 b.n f646 <_vsnprintf.constprop.0+0x272>
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va,
f67c: f015 0f40 tst.w r5, #64 ; 0x40
f680: 683b ldr r3, [r7, #0]
f682: d001 beq.n f688 <_vsnprintf.constprop.0+0x2b4>
f684: b2db uxtb r3, r3
f686: e7e7 b.n f658 <_vsnprintf.constprop.0+0x284>
int) : va_arg(va, int);
f688: 062f lsls r7, r5, #24
f68a: bf48 it mi
f68c: b21b sxthmi r3, r3
f68e: e7e3 b.n f658 <_vsnprintf.constprop.0+0x284>
f690: 0000f125 .word 0x0000f125
f694: 0000f11d .word 0x0000f11d
f698: 0000f30d .word 0x0000f30d
f69c: 0000f285 .word 0x0000f285
if(flags & FLAGS_LONG_LONG) {
f6a0: b173 cbz r3, f6c0 <_vsnprintf.constprop.0+0x2ec>
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
f6a2: e9cd 8507 strd r8, r5, [sp, #28]
f6a6: 2300 movs r3, #0
f6a8: 3707 adds r7, #7
f6aa: f027 0b07 bic.w fp, r7, #7
f6ae: 9606 str r6, [sp, #24]
f6b0: 9204 str r2, [sp, #16]
f6b2: 9305 str r3, [sp, #20]
f6b4: 9302 str r3, [sp, #8]
f6b6: e8fb 2302 ldrd r2, r3, [fp], #8
f6ba: e9cd 2300 strd r2, r3, [sp]
f6be: e7bc b.n f63a <_vsnprintf.constprop.0+0x266>
else if(flags & FLAGS_LONG) {
f6c0: 05e8 lsls r0, r5, #23
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f6c2: f107 0b04 add.w fp, r7, #4
else if(flags & FLAGS_LONG) {
f6c6: d506 bpl.n f6d6 <_vsnprintf.constprop.0+0x302>
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f6c8: e9cd 8504 strd r8, r5, [sp, #16]
f6cc: e9cd 2602 strd r2, r6, [sp, #8]
f6d0: 9301 str r3, [sp, #4]
f6d2: 683b ldr r3, [r7, #0]
f6d4: e7ca b.n f66c <_vsnprintf.constprop.0+0x298>
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
f6d6: f015 0f40 tst.w r5, #64 ; 0x40
f6da: 683b ldr r3, [r7, #0]
f6dc: d007 beq.n f6ee <_vsnprintf.constprop.0+0x31a>
f6de: b2db uxtb r3, r3
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f6e0: e9cd 2602 strd r2, r6, [sp, #8]
f6e4: 2200 movs r2, #0
f6e6: e9cd 8504 strd r8, r5, [sp, #16]
f6ea: 9201 str r2, [sp, #4]
f6ec: e7be b.n f66c <_vsnprintf.constprop.0+0x298>
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
f6ee: 0628 lsls r0, r5, #24
f6f0: bf48 it mi
f6f2: b29b uxthmi r3, r3
f6f4: e7f4 b.n f6e0 <_vsnprintf.constprop.0+0x30c>
if(!(flags & FLAGS_LEFT)) {
f6f6: f015 0502 ands.w r5, r5, #2
f6fa: d023 beq.n f744 <_vsnprintf.constprop.0+0x370>
unsigned int l = 1U;
f6fc: 2601 movs r6, #1
out((char)va_arg(va, int), buffer, idx++, maxlen);
f6fe: f857 0b04 ldr.w r0, [r7], #4
f702: 910b str r1, [sp, #44] ; 0x2c
f704: 464b mov r3, r9
f706: 4622 mov r2, r4
f708: b2c0 uxtb r0, r0
f70a: 47d0 blx sl
f70c: f104 0b01 add.w fp, r4, #1
if(flags & FLAGS_LEFT) {
f710: 990b ldr r1, [sp, #44] ; 0x2c
f712: b34d cbz r5, f768 <_vsnprintf.constprop.0+0x394>
f714: 4634 mov r4, r6
out((char)va_arg(va, int), buffer, idx++, maxlen);
f716: 465a mov r2, fp
f718: e01e b.n f758 <_vsnprintf.constprop.0+0x384>
out(' ', buffer, idx++, maxlen);
f71a: 910b str r1, [sp, #44] ; 0x2c
f71c: 464b mov r3, r9
f71e: 2020 movs r0, #32
f720: 47d0 blx sl
f722: 990b ldr r1, [sp, #44] ; 0x2c
f724: 19a2 adds r2, r4, r6
while(l++ < width) {
f726: 3601 adds r6, #1
f728: 45b0 cmp r8, r6
f72a: d8f6 bhi.n f71a <_vsnprintf.constprop.0+0x346>
f72c: f1b8 0f00 cmp.w r8, #0
f730: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff
f734: bf08 it eq
f736: 2300 moveq r3, #0
f738: f108 0601 add.w r6, r8, #1
f73c: 441c add r4, r3
f73e: bf08 it eq
f740: 2602 moveq r6, #2
f742: e7dc b.n f6fe <_vsnprintf.constprop.0+0x32a>
f744: 462e mov r6, r5
f746: e7ed b.n f724 <_vsnprintf.constprop.0+0x350>
out(' ', buffer, idx++, maxlen);
f748: 910b str r1, [sp, #44] ; 0x2c
f74a: 464b mov r3, r9
f74c: 2020 movs r0, #32
f74e: 1c55 adds r5, r2, #1
f750: 47d0 blx sl
f752: 990b ldr r1, [sp, #44] ; 0x2c
f754: 3401 adds r4, #1
f756: 462a mov r2, r5
while(l++ < width) {
f758: 45a0 cmp r8, r4
f75a: d8f5 bhi.n f748 <_vsnprintf.constprop.0+0x374>
f75c: eba8 0306 sub.w r3, r8, r6
f760: 45b0 cmp r8, r6
f762: bf38 it cc
f764: 2300 movcc r3, #0
f766: 449b add fp, r3
break;
f768: 465c mov r4, fp
f76a: e640 b.n f3ee <_vsnprintf.constprop.0+0x1a>
const char * p = va_arg(va, char *);
f76c: 463b mov r3, r7
unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1);
f76e: 2e00 cmp r6, #0
const char * p = va_arg(va, char *);
f770: f853 bb04 ldr.w fp, [r3], #4
f774: 930b str r3, [sp, #44] ; 0x2c
unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1);
f776: bf14 ite ne
f778: 4633 movne r3, r6
f77a: f04f 33ff moveq.w r3, #4294967295 ; 0xffffffff
f77e: 445b add r3, fp
f780: 465f mov r7, fp
for(s = str; *s && maxsize--; ++s);
f782: 783a ldrb r2, [r7, #0]
f784: b10a cbz r2, f78a <_vsnprintf.constprop.0+0x3b6>
f786: 42bb cmp r3, r7
f788: d110 bne.n f7ac <_vsnprintf.constprop.0+0x3d8>
if(flags & FLAGS_PRECISION) {
f78a: f415 6380 ands.w r3, r5, #1024 ; 0x400
return (unsigned int)(s - str);
f78e: eba7 070b sub.w r7, r7, fp
if(flags & FLAGS_PRECISION) {
f792: 930c str r3, [sp, #48] ; 0x30
f794: d002 beq.n f79c <_vsnprintf.constprop.0+0x3c8>
l = (l < precision ? l : precision);
f796: 42b7 cmp r7, r6
f798: bf28 it cs
f79a: 4637 movcs r7, r6
if(!(flags & FLAGS_LEFT)) {
f79c: f015 0302 ands.w r3, r5, #2
f7a0: 930d str r3, [sp, #52] ; 0x34
f7a2: d118 bne.n f7d6 <_vsnprintf.constprop.0+0x402>
f7a4: 1b3b subs r3, r7, r4
f7a6: 4622 mov r2, r4
f7a8: 930e str r3, [sp, #56] ; 0x38
f7aa: e008 b.n f7be <_vsnprintf.constprop.0+0x3ea>
for(s = str; *s && maxsize--; ++s);
f7ac: 3701 adds r7, #1
f7ae: e7e8 b.n f782 <_vsnprintf.constprop.0+0x3ae>
out(' ', buffer, idx++, maxlen);
f7b0: 910f str r1, [sp, #60] ; 0x3c
f7b2: 464b mov r3, r9
f7b4: 2020 movs r0, #32
f7b6: 1c55 adds r5, r2, #1
f7b8: 47d0 blx sl
f7ba: 990f ldr r1, [sp, #60] ; 0x3c
f7bc: 462a mov r2, r5
while(l++ < width) {
f7be: 9b0e ldr r3, [sp, #56] ; 0x38
f7c0: 18d3 adds r3, r2, r3
f7c2: 4598 cmp r8, r3
f7c4: d8f4 bhi.n f7b0 <_vsnprintf.constprop.0+0x3dc>
f7c6: eba8 0307 sub.w r3, r8, r7
f7ca: 45b8 cmp r8, r7
f7cc: bf38 it cc
f7ce: 2300 movcc r3, #0
f7d0: 3701 adds r7, #1
f7d2: 441c add r4, r3
f7d4: 441f add r7, r3
f7d6: 465d mov r5, fp
f7d8: eba4 0b0b sub.w fp, r4, fp
f7dc: e005 b.n f7ea <_vsnprintf.constprop.0+0x416>
f7de: 461e mov r6, r3
out(*(p++), buffer, idx++, maxlen);
f7e0: 910e str r1, [sp, #56] ; 0x38
f7e2: 464b mov r3, r9
f7e4: 4622 mov r2, r4
f7e6: 47d0 blx sl
f7e8: 990e ldr r1, [sp, #56] ; 0x38
f7ea: eb0b 0405 add.w r4, fp, r5
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
f7ee: f815 0b01 ldrb.w r0, [r5], #1
f7f2: b128 cbz r0, f800 <_vsnprintf.constprop.0+0x42c>
f7f4: 9b0c ldr r3, [sp, #48] ; 0x30
f7f6: 2b00 cmp r3, #0
f7f8: d0f2 beq.n f7e0 <_vsnprintf.constprop.0+0x40c>
f7fa: 1e73 subs r3, r6, #1
f7fc: 2e00 cmp r6, #0
f7fe: d1ee bne.n f7de <_vsnprintf.constprop.0+0x40a>
if(flags & FLAGS_LEFT) {
f800: 9b0d ldr r3, [sp, #52] ; 0x34
f802: b193 cbz r3, f82a <_vsnprintf.constprop.0+0x456>
f804: 4622 mov r2, r4
f806: 1b3d subs r5, r7, r4
f808: e006 b.n f818 <_vsnprintf.constprop.0+0x444>
out(' ', buffer, idx++, maxlen);
f80a: 910c str r1, [sp, #48] ; 0x30
f80c: 464b mov r3, r9
f80e: 2020 movs r0, #32
f810: 1c56 adds r6, r2, #1
f812: 47d0 blx sl
f814: 990c ldr r1, [sp, #48] ; 0x30
f816: 4632 mov r2, r6
while(l++ < width) {
f818: 1953 adds r3, r2, r5
f81a: 4598 cmp r8, r3
f81c: d8f5 bhi.n f80a <_vsnprintf.constprop.0+0x436>
f81e: eba8 0307 sub.w r3, r8, r7
f822: 45b8 cmp r8, r7
f824: bf38 it cc
f826: 2300 movcc r3, #0
f828: 441c add r4, r3
const char * p = va_arg(va, char *);
f82a: 9f0b ldr r7, [sp, #44] ; 0x2c
break;
f82c: e5df b.n f3ee <_vsnprintf.constprop.0+0x1a>
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
f82e: 2308 movs r3, #8
f830: e9cd 6303 strd r6, r3, [sp, #12]
f834: 2210 movs r2, #16
f836: 2300 movs r3, #0
f838: e9cd 3201 strd r3, r2, [sp, #4]
flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE;
f83c: f045 0521 orr.w r5, r5, #33 ; 0x21
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
f840: 9505 str r5, [sp, #20]
f842: f857 3b04 ldr.w r3, [r7], #4
f846: 9300 str r3, [sp, #0]
f848: 4622 mov r2, r4
f84a: 464b mov r3, r9
f84c: 4c05 ldr r4, [pc, #20] ; (f864 <_vsnprintf.constprop.0+0x490>)
f84e: 910b str r1, [sp, #44] ; 0x2c
f850: 4650 mov r0, sl
f852: 47a0 blx r4
f854: 4604 mov r4, r0
out(*format, buffer, idx++, maxlen);
f856: 990b ldr r1, [sp, #44] ; 0x2c
break;
f858: e5c9 b.n f3ee <_vsnprintf.constprop.0+0x1a>
base = 8U;
f85a: 2208 movs r2, #8
f85c: e6ca b.n f5f4 <_vsnprintf.constprop.0+0x220>
base = 2U;
f85e: 2202 movs r2, #2
if((*format != 'i') && (*format != 'd')) {
f860: e6c8 b.n f5f4 <_vsnprintf.constprop.0+0x220>
f862: bf00 nop
f864: 0000f285 .word 0x0000f285
0000f868 <lv_vsnprintf>:
va_end(va);
return ret;
}
int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va)
{
f868: b410 push {r4}
return _vsnprintf(_out_buffer, buffer, count, format, va);
f86a: 4c02 ldr r4, [pc, #8] ; (f874 <lv_vsnprintf+0xc>)
f86c: 46a4 mov ip, r4
}
f86e: f85d 4b04 ldr.w r4, [sp], #4
return _vsnprintf(_out_buffer, buffer, count, format, va);
f872: 4760 bx ip
f874: 0000f3d5 .word 0x0000f3d5
0000f878 <_lv_task_core_init>:
/**
* Init the lv_task module
*/
void _lv_task_core_init(void)
{
f878: b508 push {r3, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t));
f87a: 4805 ldr r0, [pc, #20] ; (f890 <_lv_task_core_init+0x18>)
f87c: 4b05 ldr r3, [pc, #20] ; (f894 <_lv_task_core_init+0x1c>)
f87e: 2118 movs r1, #24
f880: 4798 blx r3
task_list_changed = false;
f882: 4b05 ldr r3, [pc, #20] ; (f898 <_lv_task_core_init+0x20>)
f884: 2200 movs r2, #0
f886: 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;
f888: 2201 movs r2, #1
f88a: 705a strb r2, [r3, #1]
}
f88c: bd08 pop {r3, pc}
f88e: bf00 nop
f890: 20008600 .word 0x20008600
f894: 0000e64d .word 0x0000e64d
f898: 2000c7b4 .word 0x2000c7b4
0000f89c <lv_task_create_basic>:
{
f89c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
f89e: 4b36 ldr r3, [pc, #216] ; (f978 <lv_task_create_basic+0xdc>)
f8a0: 4836 ldr r0, [pc, #216] ; (f97c <lv_task_create_basic+0xe0>)
f8a2: 4798 blx r3
if(NULL == tmp) {
f8a4: 4605 mov r5, r0
f8a6: b1e0 cbz r0, f8e2 <lv_task_create_basic+0x46>
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
f8a8: 4e34 ldr r6, [pc, #208] ; (f97c <lv_task_create_basic+0xe0>)
f8aa: 4c35 ldr r4, [pc, #212] ; (f980 <lv_task_create_basic+0xe4>)
if(tmp->prio <= DEF_PRIO) {
f8ac: 7d2b ldrb r3, [r5, #20]
f8ae: f003 0307 and.w r3, r3, #7
f8b2: 2b03 cmp r3, #3
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
f8b4: 4629 mov r1, r5
if(tmp->prio <= DEF_PRIO) {
f8b6: d82e bhi.n f916 <lv_task_create_basic+0x7a>
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
f8b8: 4b32 ldr r3, [pc, #200] ; (f984 <lv_task_create_basic+0xe8>)
f8ba: 4830 ldr r0, [pc, #192] ; (f97c <lv_task_create_basic+0xe0>)
f8bc: 4798 blx r3
LV_ASSERT_MEM(new_task);
f8be: 4b32 ldr r3, [pc, #200] ; (f988 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
f8c0: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
f8c2: 4798 blx r3
f8c4: 4605 mov r5, r0
f8c6: bb08 cbnz r0, f90c <lv_task_create_basic+0x70>
f8c8: 4b30 ldr r3, [pc, #192] ; (f98c <lv_task_create_basic+0xf0>)
f8ca: 4931 ldr r1, [pc, #196] ; (f990 <lv_task_create_basic+0xf4>)
f8cc: 9300 str r3, [sp, #0]
f8ce: 22db movs r2, #219 ; 0xdb
f8d0: 2003 movs r0, #3
f8d2: 4e30 ldr r6, [pc, #192] ; (f994 <lv_task_create_basic+0xf8>)
f8d4: 47b0 blx r6
f8d6: 4830 ldr r0, [pc, #192] ; (f998 <lv_task_create_basic+0xfc>)
f8d8: 4930 ldr r1, [pc, #192] ; (f99c <lv_task_create_basic+0x100>)
f8da: 4622 mov r2, r4
f8dc: 462b mov r3, r5
f8de: 4788 blx r1
f8e0: e7fe b.n f8e0 <lv_task_create_basic+0x44>
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
f8e2: 4b2f ldr r3, [pc, #188] ; (f9a0 <lv_task_create_basic+0x104>)
f8e4: 4825 ldr r0, [pc, #148] ; (f97c <lv_task_create_basic+0xe0>)
f8e6: 4798 blx r3
LV_ASSERT_MEM(new_task);
f8e8: 4b27 ldr r3, [pc, #156] ; (f988 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
f8ea: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
f8ec: 4798 blx r3
f8ee: 4605 mov r5, r0
f8f0: b960 cbnz r0, f90c <lv_task_create_basic+0x70>
f8f2: 4b26 ldr r3, [pc, #152] ; (f98c <lv_task_create_basic+0xf0>)
f8f4: 4926 ldr r1, [pc, #152] ; (f990 <lv_task_create_basic+0xf4>)
f8f6: 9300 str r3, [sp, #0]
f8f8: 22d3 movs r2, #211 ; 0xd3
f8fa: 2003 movs r0, #3
f8fc: 4e25 ldr r6, [pc, #148] ; (f994 <lv_task_create_basic+0xf8>)
f8fe: 47b0 blx r6
f900: 4825 ldr r0, [pc, #148] ; (f998 <lv_task_create_basic+0xfc>)
f902: 4926 ldr r1, [pc, #152] ; (f99c <lv_task_create_basic+0x100>)
f904: 4622 mov r2, r4
f906: 462b mov r3, r5
f908: 4788 blx r1
f90a: e7fe b.n f90a <lv_task_create_basic+0x6e>
if(new_task == NULL) return NULL;
f90c: b9ec cbnz r4, f94a <lv_task_create_basic+0xae>
f90e: 2400 movs r4, #0
}
f910: 4620 mov r0, r4
f912: b003 add sp, #12
f914: bdf0 pop {r4, r5, r6, r7, pc}
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
f916: 4630 mov r0, r6
f918: 47a0 blx r4
} while(tmp != NULL);
f91a: 4605 mov r5, r0
f91c: 2800 cmp r0, #0
f91e: d1c5 bne.n f8ac <lv_task_create_basic+0x10>
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
f920: 4b20 ldr r3, [pc, #128] ; (f9a4 <lv_task_create_basic+0x108>)
f922: 4816 ldr r0, [pc, #88] ; (f97c <lv_task_create_basic+0xe0>)
f924: 4798 blx r3
LV_ASSERT_MEM(new_task);
f926: 4b18 ldr r3, [pc, #96] ; (f988 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
f928: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
f92a: 4798 blx r3
f92c: 2800 cmp r0, #0
f92e: d1ed bne.n f90c <lv_task_create_basic+0x70>
f930: 4b16 ldr r3, [pc, #88] ; (f98c <lv_task_create_basic+0xf0>)
f932: 4917 ldr r1, [pc, #92] ; (f990 <lv_task_create_basic+0xf4>)
f934: 9300 str r3, [sp, #0]
f936: 22e5 movs r2, #229 ; 0xe5
f938: 2003 movs r0, #3
f93a: 4e16 ldr r6, [pc, #88] ; (f994 <lv_task_create_basic+0xf8>)
f93c: 47b0 blx r6
f93e: 4816 ldr r0, [pc, #88] ; (f998 <lv_task_create_basic+0xfc>)
f940: 4916 ldr r1, [pc, #88] ; (f99c <lv_task_create_basic+0x100>)
f942: 4622 mov r2, r4
f944: 462b mov r3, r5
f946: 4788 blx r1
f948: e7fe b.n f948 <lv_task_create_basic+0xac>
new_task->period = DEF_PERIOD;
f94a: f44f 73fa mov.w r3, #500 ; 0x1f4
f94e: 6023 str r3, [r4, #0]
new_task->prio = DEF_PRIO;
f950: 7d23 ldrb r3, [r4, #20]
task_list_changed = true;
f952: 4d15 ldr r5, [pc, #84] ; (f9a8 <lv_task_create_basic+0x10c>)
new_task->prio = DEF_PRIO;
f954: 2203 movs r2, #3
f956: f362 0302 bfi r3, r2, #0, #3
new_task->task_cb = NULL;
f95a: 2700 movs r7, #0
new_task->prio = DEF_PRIO;
f95c: 7523 strb r3, [r4, #20]
new_task->repeat_count = -1;
f95e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
task_list_changed = true;
f962: 2601 movs r6, #1
new_task->repeat_count = -1;
f964: 6123 str r3, [r4, #16]
new_task->task_cb = NULL;
f966: 60a7 str r7, [r4, #8]
new_task->last_run = lv_tick_get();
f968: 4b10 ldr r3, [pc, #64] ; (f9ac <lv_task_create_basic+0x110>)
task_list_changed = true;
f96a: 702e strb r6, [r5, #0]
new_task->last_run = lv_tick_get();
f96c: 4798 blx r3
new_task->user_data = NULL;
f96e: 60e7 str r7, [r4, #12]
new_task->last_run = lv_tick_get();
f970: 6060 str r0, [r4, #4]
task_created = true;
f972: 70ae strb r6, [r5, #2]
return new_task;
f974: e7cc b.n f910 <lv_task_create_basic+0x74>
f976: bf00 nop
f978: 0000e6f1 .word 0x0000e6f1
f97c: 20008600 .word 0x20008600
f980: 0000e6fd .word 0x0000e6fd
f984: 0000e73d .word 0x0000e73d
f988: 00001795 .word 0x00001795
f98c: 00024206 .word 0x00024206
f990: 000241d6 .word 0x000241d6
f994: 0000e931 .word 0x0000e931
f998: 0001ee02 .word 0x0001ee02
f99c: 0000179d .word 0x0000179d
f9a0: 0000e661 .word 0x0000e661
f9a4: 0000e6a9 .word 0x0000e6a9
f9a8: 2000c7b4 .word 0x2000c7b4
f9ac: 0000da8d .word 0x0000da8d
0000f9b0 <lv_task_del>:
{
f9b0: b570 push {r4, r5, r6, lr}
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
f9b2: 4601 mov r1, r0
{
f9b4: 4604 mov r4, r0
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
f9b6: 4b07 ldr r3, [pc, #28] ; (f9d4 <lv_task_del+0x24>)
f9b8: 4807 ldr r0, [pc, #28] ; (f9d8 <lv_task_del+0x28>)
task_list_changed = true;
f9ba: 4d08 ldr r5, [pc, #32] ; (f9dc <lv_task_del+0x2c>)
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
f9bc: 4798 blx r3
task_list_changed = true;
f9be: 2601 movs r6, #1
lv_mem_free(task);
f9c0: 4b07 ldr r3, [pc, #28] ; (f9e0 <lv_task_del+0x30>)
task_list_changed = true;
f9c2: 702e strb r6, [r5, #0]
lv_mem_free(task);
f9c4: 4620 mov r0, r4
f9c6: 4798 blx r3
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
f9c8: 4b06 ldr r3, [pc, #24] ; (f9e4 <lv_task_del+0x34>)
f9ca: 681b ldr r3, [r3, #0]
f9cc: 42a3 cmp r3, r4
f9ce: bf08 it eq
f9d0: 70ee strbeq r6, [r5, #3]
}
f9d2: bd70 pop {r4, r5, r6, pc}
f9d4: 0000e7b5 .word 0x0000e7b5
f9d8: 20008600 .word 0x20008600
f9dc: 2000c7b4 .word 0x2000c7b4
f9e0: 0000eb2d .word 0x0000eb2d
f9e4: 20008670 .word 0x20008670
0000f9e8 <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)
{
f9e8: b538 push {r3, r4, r5, lr}
* @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);
f9ea: 4b12 ldr r3, [pc, #72] ; (fa34 <lv_task_exec+0x4c>)
{
f9ec: 4604 mov r4, r0
uint32_t elp = lv_tick_elaps(task->last_run);
f9ee: 6840 ldr r0, [r0, #4]
f9f0: 4798 blx r3
if(lv_task_time_remaining(task) == 0) {
f9f2: 6823 ldr r3, [r4, #0]
f9f4: 4298 cmp r0, r3
f9f6: d31b bcc.n fa30 <lv_task_exec+0x48>
task->last_run = lv_tick_get();
f9f8: 4b0f ldr r3, [pc, #60] ; (fa38 <lv_task_exec+0x50>)
task_deleted = false;
f9fa: 4d10 ldr r5, [pc, #64] ; (fa3c <lv_task_exec+0x54>)
task->last_run = lv_tick_get();
f9fc: 4798 blx r3
task_deleted = false;
f9fe: 2300 movs r3, #0
fa00: 70eb strb r3, [r5, #3]
task_created = false;
fa02: 70ab strb r3, [r5, #2]
if(task->task_cb) task->task_cb(task);
fa04: 68a3 ldr r3, [r4, #8]
task->last_run = lv_tick_get();
fa06: 6060 str r0, [r4, #4]
if(task->task_cb) task->task_cb(task);
fa08: b943 cbnz r3, fa1c <lv_task_exec+0x34>
if(task->repeat_count > 0) {
fa0a: 6923 ldr r3, [r4, #16]
fa0c: 2b00 cmp r3, #0
fa0e: dc0c bgt.n fa2a <lv_task_exec+0x42>
if(task->repeat_count == 0) {
fa10: 6923 ldr r3, [r4, #16]
fa12: b943 cbnz r3, fa26 <lv_task_exec+0x3e>
lv_task_del(task);
fa14: 4b0a ldr r3, [pc, #40] ; (fa40 <lv_task_exec+0x58>)
fa16: 4620 mov r0, r4
fa18: 4798 blx r3
fa1a: e004 b.n fa26 <lv_task_exec+0x3e>
if(task->task_cb) task->task_cb(task);
fa1c: 4620 mov r0, r4
fa1e: 4798 blx r3
if(task_deleted == false) { /*The task might be deleted by itself as well*/
fa20: 78eb ldrb r3, [r5, #3]
fa22: 2b00 cmp r3, #0
fa24: d0f1 beq.n fa0a <lv_task_exec+0x22>
lv_task_del(task);
fa26: 2001 movs r0, #1
}
fa28: bd38 pop {r3, r4, r5, pc}
task->repeat_count--;
fa2a: 3b01 subs r3, #1
fa2c: 6123 str r3, [r4, #16]
fa2e: e7ef b.n fa10 <lv_task_exec+0x28>
bool exec = false;
fa30: 2000 movs r0, #0
fa32: e7f9 b.n fa28 <lv_task_exec+0x40>
fa34: 0000daa1 .word 0x0000daa1
fa38: 0000da8d .word 0x0000da8d
fa3c: 2000c7b4 .word 0x2000c7b4
fa40: 0000f9b1 .word 0x0000f9b1
0000fa44 <lv_task_handler>:
{
fa44: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(already_running) return 1;
fa48: f8df b174 ldr.w fp, [pc, #372] ; fbc0 <lv_task_handler+0x17c>
fa4c: f89b 4004 ldrb.w r4, [fp, #4]
fa50: 2001 movs r0, #1
fa52: b934 cbnz r4, fa62 <lv_task_handler+0x1e>
if(lv_task_run == false) {
fa54: f89b 2001 ldrb.w r2, [fp, #1]
already_running = true;
fa58: f88b 0004 strb.w r0, [fp, #4]
if(lv_task_run == false) {
fa5c: b91a cbnz r2, fa66 <lv_task_handler+0x22>
already_running = false; /*Release mutex*/
fa5e: f88b 2004 strb.w r2, [fp, #4]
}
fa62: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
handler_start = lv_tick_get();
fa66: 4d50 ldr r5, [pc, #320] ; (fba8 <lv_task_handler+0x164>)
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fa68: f8df 914c ldr.w r9, [pc, #332] ; fbb8 <lv_task_handler+0x174>
fa6c: f8df 814c ldr.w r8, [pc, #332] ; fbbc <lv_task_handler+0x178>
handler_start = lv_tick_get();
fa70: 47a8 blx r5
fa72: f8cb 0008 str.w r0, [fp, #8]
task_deleted = false;
fa76: 2200 movs r2, #0
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fa78: 4648 mov r0, r9
task_deleted = false;
fa7a: f88b 2003 strb.w r2, [fp, #3]
task_created = false;
fa7e: f88b 2002 strb.w r2, [fp, #2]
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fa82: 47c0 blx r8
fa84: f8df a13c ldr.w sl, [pc, #316] ; fbc4 <lv_task_handler+0x180>
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
fa88: 4f48 ldr r7, [pc, #288] ; (fbac <lv_task_handler+0x168>)
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fa8a: f8ca 0000 str.w r0, [sl]
while(LV_GC_ROOT(_lv_task_act)) {
fa8e: f8da 1000 ldr.w r1, [sl]
fa92: b1b9 cbz r1, fac4 <lv_task_handler+0x80>
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
fa94: 4b46 ldr r3, [pc, #280] ; (fbb0 <lv_task_handler+0x16c>)
fa96: 4648 mov r0, r9
fa98: 4798 blx r3
fa9a: 4606 mov r6, r0
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) {
fa9c: f8da 0000 ldr.w r0, [sl]
faa0: 7d01 ldrb r1, [r0, #20]
faa2: f011 0c07 ands.w ip, r1, #7
faa6: d00d beq.n fac4 <lv_task_handler+0x80>
if(LV_GC_ROOT(_lv_task_act) == task_interrupter) {
faa8: 42a0 cmp r0, r4
faaa: d103 bne.n fab4 <lv_task_handler+0x70>
LV_GC_ROOT(_lv_task_act) = next;
faac: f8ca 6000 str.w r6, [sl]
task_interrupter = NULL; /*From this point only task after the interrupter comes, so
fab0: 2400 movs r4, #0
continue; /*Load the next task*/
fab2: e7ec b.n fa8e <lv_task_handler+0x4a>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) {
fab4: f1bc 0f05 cmp.w ip, #5
fab8: d13a bne.n fb30 <lv_task_handler+0xec>
lv_task_exec(LV_GC_ROOT(_lv_task_act));
faba: 47b8 blx r7
if(task_created || task_deleted) {
fabc: f89b 1002 ldrb.w r1, [fp, #2]
fac0: 2900 cmp r1, #0
fac2: d065 beq.n fb90 <lv_task_handler+0x14c>
busy_time += lv_tick_elaps(handler_start);
fac4: 4c3b ldr r4, [pc, #236] ; (fbb4 <lv_task_handler+0x170>)
fac6: f8db 0008 ldr.w r0, [fp, #8]
faca: 47a0 blx r4
facc: f8db 200c ldr.w r2, [fp, #12]
fad0: 4410 add r0, r2
fad2: f8cb 000c str.w r0, [fp, #12]
uint32_t idle_period_time = lv_tick_elaps(idle_period_start);
fad6: f8db 0014 ldr.w r0, [fp, #20]
fada: 47a0 blx r4
if(idle_period_time >= IDLE_MEAS_PERIOD) {
fadc: f5b0 7ffa cmp.w r0, #500 ; 0x1f4
fae0: d316 bcc.n fb10 <lv_task_handler+0xcc>
idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/
fae2: f8db 200c ldr.w r2, [fp, #12]
fae6: 2164 movs r1, #100 ; 0x64
fae8: 434a muls r2, r1
faea: f44f 71fa mov.w r1, #500 ; 0x1f4
faee: fbb2 f2f1 udiv r2, r2, r1
faf2: b2d2 uxtb r2, r2
idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/
faf4: 2a64 cmp r2, #100 ; 0x64
faf6: bf9a itte ls
faf8: f1c2 0264 rsbls r2, r2, #100 ; 0x64
fafc: b2d2 uxtbls r2, r2
fafe: 2200 movhi r2, #0
fb00: f88b 2010 strb.w r2, [fp, #16]
busy_time = 0;
fb04: 2200 movs r2, #0
fb06: f8cb 200c str.w r2, [fp, #12]
idle_period_start = lv_tick_get();
fb0a: 47a8 blx r5
fb0c: f8cb 0014 str.w r0, [fp, #20]
time_till_next = LV_NO_TASK_READY;
fb10: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fb14: 4828 ldr r0, [pc, #160] ; (fbb8 <lv_task_handler+0x174>)
fb16: 4b29 ldr r3, [pc, #164] ; (fbbc <lv_task_handler+0x178>)
time_till_next = LV_NO_TASK_READY;
fb18: f8cb 2018 str.w r2, [fp, #24]
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fb1c: 4798 blx r3
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
fb1e: 4e26 ldr r6, [pc, #152] ; (fbb8 <lv_task_handler+0x174>)
fb20: 4f23 ldr r7, [pc, #140] ; (fbb0 <lv_task_handler+0x16c>)
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fb22: 4605 mov r5, r0
while(next) {
fb24: b9f5 cbnz r5, fb64 <lv_task_handler+0x120>
return time_till_next;
fb26: f8db 0018 ldr.w r0, [fp, #24]
already_running = false; /*Release the mutex*/
fb2a: f88b 5004 strb.w r5, [fp, #4]
return time_till_next;
fb2e: e798 b.n fa62 <lv_task_handler+0x1e>
else if(task_interrupter) {
fb30: b13c cbz r4, fb42 <lv_task_handler+0xfe>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) {
fb32: f894 c014 ldrb.w ip, [r4, #20]
fb36: f001 0107 and.w r1, r1, #7
fb3a: f00c 0c07 and.w ip, ip, #7
fb3e: 4561 cmp r1, ip
fb40: d9bc bls.n fabc <lv_task_handler+0x78>
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
fb42: 47b8 blx r7
fb44: 2800 cmp r0, #0
fb46: d0b9 beq.n fabc <lv_task_handler+0x78>
if(!task_created && !task_deleted) {
fb48: f89b 1002 ldrb.w r1, [fp, #2]
fb4c: 2900 cmp r1, #0
fb4e: d1b9 bne.n fac4 <lv_task_handler+0x80>
fb50: f89b 1003 ldrb.w r1, [fp, #3]
fb54: 2900 cmp r1, #0
fb56: d1b5 bne.n fac4 <lv_task_handler+0x80>
task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */
fb58: f8da 4000 ldr.w r4, [sl]
} while(!end_flag);
fb5c: e78b b.n fa76 <lv_task_handler+0x32>
LV_GC_ROOT(_lv_task_act) = next; /*Load the next task*/
fb5e: f8ca 6000 str.w r6, [sl]
fb62: e794 b.n fa8e <lv_task_handler+0x4a>
if(next->prio != LV_TASK_PRIO_OFF) {
fb64: 7d2a ldrb r2, [r5, #20]
fb66: 0753 lsls r3, r2, #29
fb68: d00d beq.n fb86 <lv_task_handler+0x142>
uint32_t elp = lv_tick_elaps(task->last_run);
fb6a: 6868 ldr r0, [r5, #4]
fb6c: 47a0 blx r4
if(elp >= task->period)
fb6e: 682a ldr r2, [r5, #0]
fb70: 4290 cmp r0, r2
return 0;
return task->period - elp;
fb72: bf38 it cc
fb74: 1a10 subcc r0, r2, r0
if(delay < time_till_next)
fb76: f8db 2018 ldr.w r2, [fp, #24]
return 0;
fb7a: bf28 it cs
fb7c: 2000 movcs r0, #0
if(delay < time_till_next)
fb7e: 4282 cmp r2, r0
time_till_next = delay;
fb80: bf88 it hi
fb82: f8cb 0018 strhi.w r0, [fp, #24]
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
fb86: 4629 mov r1, r5
fb88: 4630 mov r0, r6
fb8a: 47b8 blx r7
fb8c: 4605 mov r5, r0
fb8e: e7c9 b.n fb24 <lv_task_handler+0xe0>
if(task_created || task_deleted) {
fb90: f89b 1003 ldrb.w r1, [fp, #3]
fb94: 2900 cmp r1, #0
fb96: d195 bne.n fac4 <lv_task_handler+0x80>
if(task_list_changed) {
fb98: f89b 0000 ldrb.w r0, [fp]
fb9c: 2800 cmp r0, #0
fb9e: d0de beq.n fb5e <lv_task_handler+0x11a>
task_list_changed = false;
fba0: f88b 1000 strb.w r1, [fp]
task_interrupter = NULL;
fba4: 460c mov r4, r1
fba6: e766 b.n fa76 <lv_task_handler+0x32>
fba8: 0000da8d .word 0x0000da8d
fbac: 0000f9e9 .word 0x0000f9e9
fbb0: 0000e6fd .word 0x0000e6fd
fbb4: 0000daa1 .word 0x0000daa1
fbb8: 20008600 .word 0x20008600
fbbc: 0000e6f1 .word 0x0000e6f1
fbc0: 2000c7b4 .word 0x2000c7b4
fbc4: 20008670 .word 0x20008670
0000fbc8 <lv_task_set_prio>:
{
fbc8: b5f8 push {r3, r4, r5, r6, r7, lr}
if(task->prio == prio) return;
fbca: 7d03 ldrb r3, [r0, #20]
fbcc: f003 0307 and.w r3, r3, #7
fbd0: 428b cmp r3, r1
{
fbd2: 4604 mov r4, r0
fbd4: 460d mov r5, r1
if(task->prio == prio) return;
fbd6: d018 beq.n fc0a <lv_task_set_prio+0x42>
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
fbd8: 480f ldr r0, [pc, #60] ; (fc18 <lv_task_set_prio+0x50>)
fbda: 4b10 ldr r3, [pc, #64] ; (fc1c <lv_task_set_prio+0x54>)
fbdc: 4e0e ldr r6, [pc, #56] ; (fc18 <lv_task_set_prio+0x50>)
fbde: 4f10 ldr r7, [pc, #64] ; (fc20 <lv_task_set_prio+0x58>)
fbe0: 4798 blx r3
fbe2: 4602 mov r2, r0
fbe4: b132 cbz r2, fbf4 <lv_task_set_prio+0x2c>
if(i->prio <= prio) {
fbe6: 7d13 ldrb r3, [r2, #20]
fbe8: f003 0307 and.w r3, r3, #7
fbec: 429d cmp r5, r3
fbee: db0d blt.n fc0c <lv_task_set_prio+0x44>
if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i);
fbf0: 42a2 cmp r2, r4
fbf2: d003 beq.n fbfc <lv_task_set_prio+0x34>
_lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL);
fbf4: 4808 ldr r0, [pc, #32] ; (fc18 <lv_task_set_prio+0x50>)
fbf6: 4b0b ldr r3, [pc, #44] ; (fc24 <lv_task_set_prio+0x5c>)
fbf8: 4621 mov r1, r4
fbfa: 4798 blx r3
task_list_changed = true;
fbfc: 4b0a ldr r3, [pc, #40] ; (fc28 <lv_task_set_prio+0x60>)
fbfe: 2201 movs r2, #1
fc00: 701a strb r2, [r3, #0]
task->prio = prio;
fc02: 7d23 ldrb r3, [r4, #20]
fc04: f365 0302 bfi r3, r5, #0, #3
fc08: 7523 strb r3, [r4, #20]
}
fc0a: bdf8 pop {r3, r4, r5, r6, r7, pc}
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
fc0c: 4611 mov r1, r2
fc0e: 4630 mov r0, r6
fc10: 47b8 blx r7
fc12: 4602 mov r2, r0
fc14: e7e6 b.n fbe4 <lv_task_set_prio+0x1c>
fc16: bf00 nop
fc18: 20008600 .word 0x20008600
fc1c: 0000e6f1 .word 0x0000e6f1
fc20: 0000e6fd .word 0x0000e6fd
fc24: 0000e8a5 .word 0x0000e8a5
fc28: 2000c7b4 .word 0x2000c7b4
0000fc2c <lv_task_create>:
{
fc2c: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
fc30: 461e mov r6, r3
lv_task_t * new_task = lv_task_create_basic();
fc32: 4b12 ldr r3, [pc, #72] ; (fc7c <lv_task_create+0x50>)
{
fc34: 9203 str r2, [sp, #12]
fc36: 460f mov r7, r1
fc38: 4680 mov r8, r0
lv_task_t * new_task = lv_task_create_basic();
fc3a: 4798 blx r3
LV_ASSERT_MEM(new_task);
fc3c: 4b10 ldr r3, [pc, #64] ; (fc80 <lv_task_create+0x54>)
lv_task_t * new_task = lv_task_create_basic();
fc3e: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
fc40: 4798 blx r3
fc42: 9903 ldr r1, [sp, #12]
fc44: 4605 mov r5, r0
fc46: b968 cbnz r0, fc64 <lv_task_create+0x38>
fc48: 4b0e ldr r3, [pc, #56] ; (fc84 <lv_task_create+0x58>)
fc4a: 490f ldr r1, [pc, #60] ; (fc88 <lv_task_create+0x5c>)
fc4c: 9300 str r3, [sp, #0]
fc4e: f44f 7283 mov.w r2, #262 ; 0x106
fc52: 2003 movs r0, #3
fc54: 4e0d ldr r6, [pc, #52] ; (fc8c <lv_task_create+0x60>)
fc56: 47b0 blx r6
fc58: 480d ldr r0, [pc, #52] ; (fc90 <lv_task_create+0x64>)
fc5a: 490e ldr r1, [pc, #56] ; (fc94 <lv_task_create+0x68>)
fc5c: 4622 mov r2, r4
fc5e: 462b mov r3, r5
fc60: 4788 blx r1
fc62: e7fe b.n fc62 <lv_task_create+0x36>
if(new_task == NULL) return NULL;
fc64: b134 cbz r4, fc74 <lv_task_create+0x48>
lv_task_set_prio(new_task, prio);
fc66: 4b0c ldr r3, [pc, #48] ; (fc98 <lv_task_create+0x6c>)
task->task_cb = task_cb;
fc68: f8c4 8008 str.w r8, [r4, #8]
task->period = period;
fc6c: 6027 str r7, [r4, #0]
lv_task_set_prio(new_task, prio);
fc6e: 4620 mov r0, r4
fc70: 4798 blx r3
new_task->user_data = user_data;
fc72: 60e6 str r6, [r4, #12]
}
fc74: 4620 mov r0, r4
fc76: b004 add sp, #16
fc78: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
fc7c: 0000f89d .word 0x0000f89d
fc80: 00001795 .word 0x00001795
fc84: 0002421b .word 0x0002421b
fc88: 000241d6 .word 0x000241d6
fc8c: 0000e931 .word 0x0000e931
fc90: 0001ee02 .word 0x0001ee02
fc94: 0000179d .word 0x0000179d
fc98: 0000fbc9 .word 0x0000fbc9
0000fc9c <lv_task_ready>:
{
fc9c: b510 push {r4, lr}
fc9e: 4604 mov r4, r0
task->last_run = lv_tick_get() - task->period - 1;
fca0: 4b03 ldr r3, [pc, #12] ; (fcb0 <lv_task_ready+0x14>)
fca2: 4798 blx r3
fca4: 6823 ldr r3, [r4, #0]
fca6: 43db mvns r3, r3
fca8: 4403 add r3, r0
fcaa: 6063 str r3, [r4, #4]
}
fcac: bd10 pop {r4, pc}
fcae: bf00 nop
fcb0: 0000da8d .word 0x0000da8d
0000fcb4 <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)
fcb4: f990 2000 ldrsb.w r2, [r0]
fcb8: 7803 ldrb r3, [r0, #0]
fcba: 2a00 cmp r2, #0
fcbc: da0e bge.n fcdc <lv_txt_utf8_size+0x28>
return 1;
else if((str[0] & 0xE0) == 0xC0)
fcbe: f003 02e0 and.w r2, r3, #224 ; 0xe0
fcc2: 2ac0 cmp r2, #192 ; 0xc0
fcc4: d00c beq.n fce0 <lv_txt_utf8_size+0x2c>
return 2;
else if((str[0] & 0xF0) == 0xE0)
fcc6: f003 02f0 and.w r2, r3, #240 ; 0xf0
fcca: 2ae0 cmp r2, #224 ; 0xe0
fccc: d00a beq.n fce4 <lv_txt_utf8_size+0x30>
return 3;
else if((str[0] & 0xF8) == 0xF0)
fcce: f003 03f8 and.w r3, r3, #248 ; 0xf8
return 4;
fcd2: 2bf0 cmp r3, #240 ; 0xf0
fcd4: bf14 ite ne
fcd6: 2000 movne r0, #0
fcd8: 2004 moveq r0, #4
fcda: 4770 bx lr
return 1;
fcdc: 2001 movs r0, #1
fcde: 4770 bx lr
return 2;
fce0: 2002 movs r0, #2
fce2: 4770 bx lr
return 3;
fce4: 2003 movs r0, #3
return 0; /*If the char was invalid tell it's 1 byte long*/
}
fce6: 4770 bx lr
0000fce8 <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)
{
fce8: b573 push {r0, r1, r4, r5, r6, lr}
* */
uint32_t result = 0;
/*Dummy 'i' pointer is required*/
uint32_t i_tmp = 0;
fcea: 2300 movs r3, #0
fcec: 9301 str r3, [sp, #4]
if(i == NULL) i = &i_tmp;
fcee: b901 cbnz r1, fcf2 <lv_txt_utf8_next+0xa>
fcf0: a901 add r1, sp, #4
/*Normal ASCII*/
if((txt[*i] & 0x80) == 0) {
fcf2: 680a ldr r2, [r1, #0]
fcf4: 5685 ldrsb r5, [r0, r2]
fcf6: 5c83 ldrb r3, [r0, r2]
fcf8: 2d00 cmp r5, #0
result = txt[*i];
(*i)++;
fcfa: f102 0401 add.w r4, r2, #1
if((txt[*i] & 0x80) == 0) {
fcfe: db03 blt.n fd08 <lv_txt_utf8_next+0x20>
result = txt[*i];
fd00: 4618 mov r0, r3
(*i)++;
fd02: 600c str r4, [r1, #0]
else {
(*i)++; /*Not UTF-8 char. Go the next.*/
}
}
return result;
}
fd04: b002 add sp, #8
fd06: bd70 pop {r4, r5, r6, pc}
if((txt[*i] & 0xE0) == 0xC0) {
fd08: f003 05e0 and.w r5, r3, #224 ; 0xe0
fd0c: 2dc0 cmp r5, #192 ; 0xc0
fd0e: d110 bne.n fd32 <lv_txt_utf8_next+0x4a>
(*i)++;
fd10: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd12: 5d00 ldrb r0, [r0, r4]
fd14: f000 04c0 and.w r4, r0, #192 ; 0xc0
fd18: 2c80 cmp r4, #128 ; 0x80
fd1a: d001 beq.n fd20 <lv_txt_utf8_next+0x38>
uint32_t result = 0;
fd1c: 2000 movs r0, #0
fd1e: e7f1 b.n fd04 <lv_txt_utf8_next+0x1c>
result = (uint32_t)(txt[*i] & 0x1F) << 6;
fd20: 019b lsls r3, r3, #6
fd22: f403 63f8 and.w r3, r3, #1984 ; 0x7c0
result += (txt[*i] & 0x3F);
fd26: f000 003f and.w r0, r0, #63 ; 0x3f
fd2a: 4418 add r0, r3
(*i)++;
fd2c: 3202 adds r2, #2
(*i)++;
fd2e: 600a str r2, [r1, #0]
fd30: e7e8 b.n fd04 <lv_txt_utf8_next+0x1c>
else if((txt[*i] & 0xF0) == 0xE0) {
fd32: f003 05f0 and.w r5, r3, #240 ; 0xf0
fd36: 2de0 cmp r5, #224 ; 0xe0
fd38: d117 bne.n fd6a <lv_txt_utf8_next+0x82>
(*i)++;
fd3a: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd3c: 5d04 ldrb r4, [r0, r4]
fd3e: f004 05c0 and.w r5, r4, #192 ; 0xc0
fd42: 2d80 cmp r5, #128 ; 0x80
fd44: d1ea bne.n fd1c <lv_txt_utf8_next+0x34>
(*i)++;
fd46: 1c95 adds r5, r2, #2
fd48: 600d str r5, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd4a: 5d45 ldrb r5, [r0, r5]
fd4c: f005 00c0 and.w r0, r5, #192 ; 0xc0
fd50: 2880 cmp r0, #128 ; 0x80
fd52: d1e3 bne.n fd1c <lv_txt_utf8_next+0x34>
result = (uint32_t)(txt[*i] & 0x0F) << 12;
fd54: 0318 lsls r0, r3, #12
fd56: b280 uxth r0, r0
result += (txt[*i] & 0x3F);
fd58: f005 053f and.w r5, r5, #63 ; 0x3f
result += (uint32_t)(txt[*i] & 0x3F) << 6;
fd5c: 01a3 lsls r3, r4, #6
fd5e: 4428 add r0, r5
fd60: f403 637c and.w r3, r3, #4032 ; 0xfc0
result += (txt[*i] & 0x3F);
fd64: 4418 add r0, r3
(*i)++;
fd66: 3203 adds r2, #3
fd68: e7e1 b.n fd2e <lv_txt_utf8_next+0x46>
else if((txt[*i] & 0xF8) == 0xF0) {
fd6a: f003 05f8 and.w r5, r3, #248 ; 0xf8
fd6e: 2df0 cmp r5, #240 ; 0xf0
(*i)++;
fd70: 600c str r4, [r1, #0]
else if((txt[*i] & 0xF8) == 0xF0) {
fd72: d1d3 bne.n fd1c <lv_txt_utf8_next+0x34>
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd74: 5d04 ldrb r4, [r0, r4]
fd76: f004 05c0 and.w r5, r4, #192 ; 0xc0
fd7a: 2d80 cmp r5, #128 ; 0x80
fd7c: d1ce bne.n fd1c <lv_txt_utf8_next+0x34>
(*i)++;
fd7e: 1c95 adds r5, r2, #2
fd80: 600d str r5, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd82: 5d45 ldrb r5, [r0, r5]
fd84: f005 06c0 and.w r6, r5, #192 ; 0xc0
fd88: 2e80 cmp r6, #128 ; 0x80
fd8a: d1c7 bne.n fd1c <lv_txt_utf8_next+0x34>
(*i)++;
fd8c: 1cd6 adds r6, r2, #3
fd8e: 600e str r6, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
fd90: 5d86 ldrb r6, [r0, r6]
fd92: f006 00c0 and.w r0, r6, #192 ; 0xc0
fd96: 2880 cmp r0, #128 ; 0x80
fd98: d1c0 bne.n fd1c <lv_txt_utf8_next+0x34>
result = (uint32_t)(txt[*i] & 0x07) << 18;
fd9a: 049b lsls r3, r3, #18
result += (uint32_t)(txt[*i] & 0x3F) << 12;
fd9c: 0320 lsls r0, r4, #12
fd9e: f400 307c and.w r0, r0, #258048 ; 0x3f000
result = (uint32_t)(txt[*i] & 0x07) << 18;
fda2: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000
result += (uint32_t)(txt[*i] & 0x3F) << 12;
fda6: 4303 orrs r3, r0
result += (uint32_t)(txt[*i] & 0x3F) << 6;
fda8: 01a8 lsls r0, r5, #6
fdaa: f400 607c and.w r0, r0, #4032 ; 0xfc0
result += txt[*i] & 0x3F;
fdae: f006 063f and.w r6, r6, #63 ; 0x3f
fdb2: 4430 add r0, r6
fdb4: 4418 add r0, r3
(*i)++;
fdb6: 3204 adds r2, #4
fdb8: e7b9 b.n fd2e <lv_txt_utf8_next+0x46>
...
0000fdbc <lv_txt_utf8_prev>:
{
uint8_t c_size;
uint8_t cnt = 0;
/*Try to find a !0 long UTF-8 char by stepping one character back*/
(*i)--;
fdbc: 680b ldr r3, [r1, #0]
{
fdbe: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
(*i)--;
fdc0: 3b01 subs r3, #1
do {
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
c_size = _lv_txt_encoded_size(&txt[*i]);
fdc2: 4f0d ldr r7, [pc, #52] ; (fdf8 <lv_txt_utf8_prev+0x3c>)
(*i)--;
fdc4: 600b str r3, [r1, #0]
{
fdc6: 4606 mov r6, r0
fdc8: 460c mov r4, r1
(*i)--;
fdca: 2504 movs r5, #4
c_size = _lv_txt_encoded_size(&txt[*i]);
fdcc: 6820 ldr r0, [r4, #0]
fdce: 683b ldr r3, [r7, #0]
fdd0: 4430 add r0, r6
fdd2: 4798 blx r3
if(c_size == 0) {
fdd4: 6823 ldr r3, [r4, #0]
fdd6: b948 cbnz r0, fdec <lv_txt_utf8_prev+0x30>
if(*i != 0)
fdd8: b12b cbz r3, fde6 <lv_txt_utf8_prev+0x2a>
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
fdda: 3d01 subs r5, #1
(*i)--;
fddc: 3b01 subs r3, #1
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
fdde: f015 05ff ands.w r5, r5, #255 ; 0xff
(*i)--;
fde2: 6023 str r3, [r4, #0]
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
fde4: d1f2 bne.n fdcc <lv_txt_utf8_prev+0x10>
fde6: 2000 movs r0, #0
uint32_t i_tmp = *i;
uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/
return letter;
}
fde8: b003 add sp, #12
fdea: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t i_tmp = *i;
fdec: 9301 str r3, [sp, #4]
uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/
fdee: a901 add r1, sp, #4
fdf0: 687b ldr r3, [r7, #4]
fdf2: 4630 mov r0, r6
fdf4: 4798 blx r3
return letter;
fdf6: e7f7 b.n fde8 <lv_txt_utf8_prev+0x2c>
fdf8: 20000054 .word 0x20000054
0000fdfc <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)
{
fdfc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
uint32_t i;
uint32_t byte_cnt = 0;
fe00: 2400 movs r4, #0
for(i = 0; i < utf8_id; i++) {
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
fe02: f8df 8028 ldr.w r8, [pc, #40] ; fe2c <lv_txt_utf8_get_byte_id+0x30>
{
fe06: 4607 mov r7, r0
fe08: 460d mov r5, r1
for(i = 0; i < utf8_id; i++) {
fe0a: 4626 mov r6, r4
fe0c: 42ae cmp r6, r5
fe0e: d102 bne.n fe16 <lv_txt_utf8_get_byte_id+0x1a>
byte_cnt += c_size > 0 ? c_size : 1;
}
return byte_cnt;
}
fe10: 4620 mov r0, r4
fe12: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
fe16: 1938 adds r0, r7, r4
fe18: f8d8 3000 ldr.w r3, [r8]
fe1c: 4798 blx r3
byte_cnt += c_size > 0 ? c_size : 1;
fe1e: 2801 cmp r0, #1
fe20: bf38 it cc
fe22: 2001 movcc r0, #1
fe24: fa54 f480 uxtab r4, r4, r0
for(i = 0; i < utf8_id; i++) {
fe28: 3601 adds r6, #1
fe2a: e7ef b.n fe0c <lv_txt_utf8_get_byte_id+0x10>
fe2c: 20000054 .word 0x20000054
0000fe30 <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)
{
fe30: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
uint32_t i = 0;
fe32: 2400 movs r4, #0
uint32_t char_cnt = 0;
while(i < byte_id) {
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
fe34: 4f07 ldr r7, [pc, #28] ; (fe54 <lv_txt_utf8_get_char_id+0x24>)
uint32_t i = 0;
fe36: 9401 str r4, [sp, #4]
{
fe38: 4606 mov r6, r0
fe3a: 460d mov r5, r1
while(i < byte_id) {
fe3c: 9b01 ldr r3, [sp, #4]
fe3e: 42ab cmp r3, r5
fe40: d302 bcc.n fe48 <lv_txt_utf8_get_char_id+0x18>
char_cnt++;
}
return char_cnt;
}
fe42: 4620 mov r0, r4
fe44: b003 add sp, #12
fe46: bdf0 pop {r4, r5, r6, r7, pc}
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
fe48: 687b ldr r3, [r7, #4]
fe4a: a901 add r1, sp, #4
fe4c: 4630 mov r0, r6
fe4e: 4798 blx r3
char_cnt++;
fe50: 3401 adds r4, #1
fe52: e7f3 b.n fe3c <lv_txt_utf8_get_char_id+0xc>
fe54: 20000054 .word 0x20000054
0000fe58 <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)
{
fe58: b573 push {r0, r1, r4, r5, r6, lr}
uint32_t len = 0;
uint32_t i = 0;
fe5a: 2400 movs r4, #0
while(txt[i] != '\0') {
_lv_txt_encoded_next(txt, &i);
fe5c: 4e07 ldr r6, [pc, #28] ; (fe7c <lv_txt_utf8_get_length+0x24>)
uint32_t i = 0;
fe5e: 9401 str r4, [sp, #4]
{
fe60: 4605 mov r5, r0
while(txt[i] != '\0') {
fe62: 9b01 ldr r3, [sp, #4]
fe64: 5ceb ldrb r3, [r5, r3]
fe66: b913 cbnz r3, fe6e <lv_txt_utf8_get_length+0x16>
len++;
}
return len;
}
fe68: 4620 mov r0, r4
fe6a: b002 add sp, #8
fe6c: bd70 pop {r4, r5, r6, pc}
_lv_txt_encoded_next(txt, &i);
fe6e: 6873 ldr r3, [r6, #4]
fe70: a901 add r1, sp, #4
fe72: 4628 mov r0, r5
fe74: 4798 blx r3
len++;
fe76: 3401 adds r4, #1
fe78: e7f3 b.n fe62 <lv_txt_utf8_get_length+0xa>
fe7a: bf00 nop
fe7c: 20000054 .word 0x20000054
0000fe80 <lv_txt_unicode_to_utf8>:
if(letter_uni < 128) return letter_uni;
fe80: 287f cmp r0, #127 ; 0x7f
{
fe82: b082 sub sp, #8
if(letter_uni < 128) return letter_uni;
fe84: d913 bls.n feae <lv_txt_unicode_to_utf8+0x2e>
if(letter_uni < 0x0800) {
fe86: f5b0 6f00 cmp.w r0, #2048 ; 0x800
fe8a: d212 bcs.n feb2 <lv_txt_unicode_to_utf8+0x32>
bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0;
fe8c: 0983 lsrs r3, r0, #6
fe8e: f063 033f orn r3, r3, #63 ; 0x3f
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
fe92: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0;
fe96: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
fe9a: f060 007f orn r0, r0, #127 ; 0x7f
bytes[2] = 0;
fe9e: 2300 movs r3, #0
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
fea0: f88d 0005 strb.w r0, [sp, #5]
bytes[2] = 0;
fea4: f88d 3006 strb.w r3, [sp, #6]
bytes[3] = 0;
fea8: f88d 3007 strb.w r3, [sp, #7]
return *res_p;
feac: 9801 ldr r0, [sp, #4]
}
feae: b002 add sp, #8
feb0: 4770 bx lr
else if(letter_uni < 0x010000) {
feb2: f5b0 3f80 cmp.w r0, #65536 ; 0x10000
feb6: d212 bcs.n fede <lv_txt_unicode_to_utf8+0x5e>
bytes[0] = ((letter_uni >> 12) & 0x0F) | 0xE0;
feb8: 0b03 lsrs r3, r0, #12
feba: f063 031f orn r3, r3, #31
febe: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80;
fec2: f3c0 1385 ubfx r3, r0, #6, #6
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
fec6: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80;
feca: f063 037f orn r3, r3, #127 ; 0x7f
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
fece: f060 007f orn r0, r0, #127 ; 0x7f
bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80;
fed2: f88d 3005 strb.w r3, [sp, #5]
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
fed6: f88d 0006 strb.w r0, [sp, #6]
bytes[3] = 0;
feda: 2300 movs r3, #0
fedc: e7e4 b.n fea8 <lv_txt_unicode_to_utf8+0x28>
else if(letter_uni < 0x110000) {
fede: f5b0 1f88 cmp.w r0, #1114112 ; 0x110000
fee2: d2e3 bcs.n feac <lv_txt_unicode_to_utf8+0x2c>
bytes[0] = ((letter_uni >> 18) & 0x07) | 0xF0;
fee4: 0c83 lsrs r3, r0, #18
fee6: f063 030f orn r3, r3, #15
feea: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 12) & 0x3F) | 0x80;
feee: f3c0 3305 ubfx r3, r0, #12, #6
fef2: f063 037f orn r3, r3, #127 ; 0x7f
fef6: f88d 3005 strb.w r3, [sp, #5]
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
fefa: f3c0 1385 ubfx r3, r0, #6, #6
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
fefe: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
ff02: f063 037f orn r3, r3, #127 ; 0x7f
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
ff06: f060 007f orn r0, r0, #127 ; 0x7f
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
ff0a: f88d 3006 strb.w r3, [sp, #6]
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
ff0e: f88d 0007 strb.w r0, [sp, #7]
ff12: e7cb b.n feac <lv_txt_unicode_to_utf8+0x2c>
0000ff14 <lv_txt_utf8_conv_wc>:
if((c & 0x80) != 0) {
ff14: 0603 lsls r3, r0, #24
ff16: d512 bpl.n ff3e <lv_txt_utf8_conv_wc+0x2a>
swapped = (c8[0] << 24) + (c8[1] << 16) + (c8[2] << 8) + (c8[3]);
ff18: f3c0 2207 ubfx r2, r0, #8, #8
ff1c: 0603 lsls r3, r0, #24
ff1e: eb03 4302 add.w r3, r3, r2, lsl #16
ff22: f3c0 4207 ubfx r2, r0, #16, #8
ff26: eb03 2302 add.w r3, r3, r2, lsl #8
ff2a: eb03 6010 add.w r0, r3, r0, lsr #24
ff2e: 2304 movs r3, #4
if((swapped & 0xFF) == 0)
ff30: b2c2 uxtb r2, r0
ff32: b902 cbnz r2, ff36 <lv_txt_utf8_conv_wc+0x22>
swapped = (swapped >> 8); /*Ignore leading zeros (they were in the end originally)*/
ff34: 0a00 lsrs r0, r0, #8
for(i = 0; i < 4; i++) {
ff36: 3b01 subs r3, #1
ff38: f013 03ff ands.w r3, r3, #255 ; 0xff
ff3c: d1f8 bne.n ff30 <lv_txt_utf8_conv_wc+0x1c>
}
ff3e: 4770 bx lr
0000ff40 <_lv_txt_is_cmd>:
if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) {
ff40: 2923 cmp r1, #35 ; 0x23
{
ff42: 4602 mov r2, r0
if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) {
ff44: d117 bne.n ff76 <_lv_txt_is_cmd+0x36>
if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/
ff46: 7803 ldrb r3, [r0, #0]
ff48: b91b cbnz r3, ff52 <_lv_txt_is_cmd+0x12>
*state = LV_TXT_CMD_STATE_PAR;
ff4a: 2301 movs r3, #1
ff4c: 7003 strb r3, [r0, #0]
ret = true;
ff4e: 2001 movs r0, #1
ff50: e004 b.n ff5c <_lv_txt_is_cmd+0x1c>
else if(*state == LV_TXT_CMD_STATE_PAR) {
ff52: 2b01 cmp r3, #1
ff54: f04f 0000 mov.w r0, #0
ff58: d109 bne.n ff6e <_lv_txt_is_cmd+0x2e>
*state = LV_TXT_CMD_STATE_WAIT;
ff5a: 7010 strb r0, [r2, #0]
if(*state == LV_TXT_CMD_STATE_PAR) {
ff5c: 7813 ldrb r3, [r2, #0]
ff5e: 2b01 cmp r3, #1
ff60: d104 bne.n ff6c <_lv_txt_is_cmd+0x2c>
if(c == ' ') {
ff62: 2920 cmp r1, #32
*state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/
ff64: bf04 itt eq
ff66: 2102 moveq r1, #2
ff68: 7011 strbeq r1, [r2, #0]
ret = true;
ff6a: 4618 mov r0, r3
}
ff6c: 4770 bx lr
else if(*state == LV_TXT_CMD_STATE_IN) {
ff6e: 2b02 cmp r3, #2
ff70: d1f4 bne.n ff5c <_lv_txt_is_cmd+0x1c>
*state = LV_TXT_CMD_STATE_WAIT;
ff72: 7010 strb r0, [r2, #0]
ff74: e7eb b.n ff4e <_lv_txt_is_cmd+0xe>
bool ret = false;
ff76: 2000 movs r0, #0
ff78: e7f0 b.n ff5c <_lv_txt_is_cmd+0x1c>
...
0000ff7c <_lv_txt_get_width>:
{
ff7c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
ff80: 4688 mov r8, r1
ff82: b085 sub sp, #20
ff84: 4617 mov r7, r2
ff86: 461e mov r6, r3
if(txt == NULL) return 0;
ff88: 4605 mov r5, r0
ff8a: 2400 movs r4, #0
ff8c: 2800 cmp r0, #0
ff8e: d03e beq.n 1000e <STACK_SIZE+0xe>
if(font == NULL) return 0;
ff90: 2a00 cmp r2, #0
ff92: d03e beq.n 10012 <STACK_SIZE+0x12>
uint32_t i = 0;
ff94: 9403 str r4, [sp, #12]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
ff96: f88d 400b strb.w r4, [sp, #11]
if(length != 0) {
ff9a: 2900 cmp r1, #0
ff9c: d035 beq.n 1000a <STACK_SIZE+0xa>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
ff9e: f89d 9038 ldrb.w r9, [sp, #56] ; 0x38
uint32_t letter = _lv_txt_encoded_next(txt, &i);
ffa2: f8df a07c ldr.w sl, [pc, #124] ; 10020 <STACK_SIZE+0x20>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
ffa6: f009 0901 and.w r9, r9, #1
uint32_t letter = _lv_txt_encoded_next(txt, &i);
ffaa: f8da 3004 ldr.w r3, [sl, #4]
ffae: a903 add r1, sp, #12
ffb0: 4628 mov r0, r5
ffb2: 4798 blx r3
ffb4: 4683 mov fp, r0
uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL);
ffb6: 9803 ldr r0, [sp, #12]
ffb8: f8da 2004 ldr.w r2, [sl, #4]
ffbc: 2100 movs r1, #0
ffbe: 4428 add r0, r5
ffc0: 4790 blx r2
ffc2: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
ffc4: f1b9 0f00 cmp.w r9, #0
ffc8: d111 bne.n ffee <_lv_txt_get_width+0x72>
lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next);
ffca: 4b13 ldr r3, [pc, #76] ; (10018 <STACK_SIZE+0x18>)
ffcc: 4659 mov r1, fp
ffce: 4638 mov r0, r7
ffd0: 4798 blx r3
if(char_width > 0) {
ffd2: b203 sxth r3, r0
ffd4: 2b00 cmp r3, #0
ffd6: dc14 bgt.n 10002 <STACK_SIZE+0x2>
while(i < length) {
ffd8: 9b03 ldr r3, [sp, #12]
ffda: 4598 cmp r8, r3
ffdc: d8e5 bhi.n ffaa <_lv_txt_get_width+0x2e>
if(width > 0) {
ffde: 2c00 cmp r4, #0
ffe0: dd01 ble.n ffe6 <_lv_txt_get_width+0x6a>
width -= letter_space; /*Trim the last letter space. Important if the text is center
ffe2: 1ba4 subs r4, r4, r6
ffe4: b224 sxth r4, r4
}
ffe6: 4620 mov r0, r4
ffe8: b005 add sp, #20
ffea: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
ffee: 9001 str r0, [sp, #4]
if(_lv_txt_is_cmd(&cmd_state, letter) != false) {
fff0: 4b0a ldr r3, [pc, #40] ; (1001c <STACK_SIZE+0x1c>)
fff2: 4659 mov r1, fp
fff4: f10d 000b add.w r0, sp, #11
fff8: 4798 blx r3
fffa: 9a01 ldr r2, [sp, #4]
fffc: 2800 cmp r0, #0
fffe: d0e4 beq.n ffca <_lv_txt_get_width+0x4e>
10000: e7ea b.n ffd8 <_lv_txt_get_width+0x5c>
width += letter_space;
10002: 4434 add r4, r6
10004: 4420 add r0, r4
10006: b204 sxth r4, r0
10008: e7e6 b.n ffd8 <_lv_txt_get_width+0x5c>
lv_coord_t width = 0;
1000a: 460c mov r4, r1
1000c: e7eb b.n ffe6 <_lv_txt_get_width+0x6a>
if(txt == NULL) return 0;
1000e: 4604 mov r4, r0
10010: e7e9 b.n ffe6 <_lv_txt_get_width+0x6a>
10012: 4614 mov r4, r2
10014: e7e7 b.n ffe6 <_lv_txt_get_width+0x6a>
10016: bf00 nop
10018: 0000d1b9 .word 0x0000d1b9
1001c: 0000ff41 .word 0x0000ff41
10020: 20000054 .word 0x20000054
00010024 <_lv_txt_get_next_line>:
{
10024: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
10028: b08f sub sp, #60 ; 0x3c
1002a: 4699 mov r9, r3
1002c: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60
10030: 9102 str r1, [sp, #8]
10032: 9204 str r2, [sp, #16]
10034: 9303 str r3, [sp, #12]
if(txt == NULL) return 0;
10036: 4607 mov r7, r0
10038: b198 cbz r0, 10062 <_lv_txt_get_next_line+0x3e>
if(font == NULL) return 0;
1003a: 2900 cmp r1, #0
1003c: f000 80d2 beq.w 101e4 <_lv_txt_get_next_line+0x1c0>
if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) {
10040: 9b03 ldr r3, [sp, #12]
10042: f013 0312 ands.w r3, r3, #18
10046: d00f beq.n 10068 <_lv_txt_get_next_line+0x44>
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
10048: 2000 movs r0, #0
1004a: e000 b.n 1004e <_lv_txt_get_next_line+0x2a>
1004c: 3001 adds r0, #1
1004e: 5c3b ldrb r3, [r7, r0]
10050: 2b0a cmp r3, #10
10052: f000 80c9 beq.w 101e8 <_lv_txt_get_next_line+0x1c4>
10056: 2b0d cmp r3, #13
10058: f000 80c6 beq.w 101e8 <_lv_txt_get_next_line+0x1c4>
1005c: 2b00 cmp r3, #0
1005e: d1f5 bne.n 1004c <_lv_txt_get_next_line+0x28>
return i;
10060: b280 uxth r0, r0
}
10062: b00f add sp, #60 ; 0x3c
10064: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
10068: 9a03 ldr r2, [sp, #12]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
1006a: f88d 302b strb.w r3, [sp, #43] ; 0x2b
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
1006e: f012 0202 ands.w r2, r2, #2
10072: 9205 str r2, [sp, #20]
10074: f647 4218 movw r2, #31768 ; 0x7c18
10078: bf18 it ne
1007a: 4691 movne r9, r2
uint32_t i = 0; /* Iterating index into txt */
1007c: 930b str r3, [sp, #44] ; 0x2c
while(txt[i] != '\0' && max_width > 0) {
1007e: 9b0b ldr r3, [sp, #44] ; 0x2c
10080: 9300 str r3, [sp, #0]
10082: eb07 0b03 add.w fp, r7, r3
10086: 5cfb ldrb r3, [r7, r3]
10088: 2b00 cmp r3, #0
1008a: f000 808e beq.w 101aa <_lv_txt_get_next_line+0x186>
1008e: f1b9 0f00 cmp.w r9, #0
10092: f340 808a ble.w 101aa <_lv_txt_get_next_line+0x186>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
10096: 9a05 ldr r2, [sp, #20]
10098: f647 4318 movw r3, #31768 ; 0x7c18
1009c: 2a00 cmp r2, #0
1009e: bf08 it eq
100a0: 464b moveq r3, r9
100a2: 9307 str r3, [sp, #28]
letter = _lv_txt_encoded_next(txt, &i_next);
100a4: 4b51 ldr r3, [pc, #324] ; (101ec <_lv_txt_get_next_line+0x1c8>)
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
100a6: 2500 movs r5, #0
letter = _lv_txt_encoded_next(txt, &i_next);
100a8: 685a ldr r2, [r3, #4]
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
100aa: e9cd 550c strd r5, r5, [sp, #48] ; 0x30
letter = _lv_txt_encoded_next(txt, &i_next);
100ae: a90c add r1, sp, #48 ; 0x30
100b0: 4658 mov r0, fp
100b2: 4790 blx r2
i_next_next = i_next;
100b4: 9b0c ldr r3, [sp, #48] ; 0x30
100b6: 930d str r3, [sp, #52] ; 0x34
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
100b8: 9b03 ldr r3, [sp, #12]
uint32_t word_len = 0; /* Number of characters in the transversed word */
100ba: 9501 str r5, [sp, #4]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
100bc: f003 0301 and.w r3, r3, #1
letter = _lv_txt_encoded_next(txt, &i_next);
100c0: 4680 mov r8, r0
uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */
100c2: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff
lv_coord_t cur_w = 0; /* Pixel Width of transversed string */
100c6: 462e mov r6, r5
uint32_t letter_next = 0; /* Letter at i_next */
100c8: 462a mov r2, r5
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
100ca: 462c mov r4, r5
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
100cc: 9308 str r3, [sp, #32]
while(txt[i] != '\0') {
100ce: f81b 3004 ldrb.w r3, [fp, r4]
100d2: b943 cbnz r3, 100e6 <_lv_txt_get_next_line+0xc2>
if(break_index == NO_BREAK_FOUND) {
100d4: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
100d8: d052 beq.n 10180 <_lv_txt_get_next_line+0x15c>
if(force) return break_index;
100da: 9b00 ldr r3, [sp, #0]
100dc: 2b00 cmp r3, #0
100de: d16e bne.n 101be <_lv_txt_get_next_line+0x19a>
100e0: fa1f f48a uxth.w r4, sl
100e4: e055 b.n 10192 <_lv_txt_get_next_line+0x16e>
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
100e6: 4b41 ldr r3, [pc, #260] ; (101ec <_lv_txt_get_next_line+0x1c8>)
100e8: a90d add r1, sp, #52 ; 0x34
100ea: 685b ldr r3, [r3, #4]
100ec: 4658 mov r0, fp
100ee: 4798 blx r3
word_len++;
100f0: 9b01 ldr r3, [sp, #4]
100f2: 3301 adds r3, #1
100f4: 9306 str r3, [sp, #24]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
100f6: 9b08 ldr r3, [sp, #32]
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
100f8: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
100fa: b173 cbz r3, 1011a <_lv_txt_get_next_line+0xf6>
100fc: 9009 str r0, [sp, #36] ; 0x24
if(_lv_txt_is_cmd(cmd_state, letter) != false) {
100fe: 4b3c ldr r3, [pc, #240] ; (101f0 <_lv_txt_get_next_line+0x1cc>)
10100: 4641 mov r1, r8
10102: f10d 002b add.w r0, sp, #43 ; 0x2b
10106: 4798 blx r3
10108: 9a09 ldr r2, [sp, #36] ; 0x24
1010a: b130 cbz r0, 1011a <_lv_txt_get_next_line+0xf6>
i_next = i_next_next;
1010c: e9dd 430c ldrd r4, r3, [sp, #48] ; 0x30
10110: 930c str r3, [sp, #48] ; 0x30
letter = letter_next;
10112: 9b06 ldr r3, [sp, #24]
10114: 9301 str r3, [sp, #4]
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
10116: 4690 mov r8, r2
10118: e7d9 b.n 100ce <_lv_txt_get_next_line+0xaa>
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
1011a: 4b36 ldr r3, [pc, #216] ; (101f4 <_lv_txt_get_next_line+0x1d0>)
1011c: 9802 ldr r0, [sp, #8]
1011e: 9209 str r2, [sp, #36] ; 0x24
10120: 4641 mov r1, r8
10122: 4798 blx r3
cur_w += letter_w;
10124: 4406 add r6, r0
if(letter_w > 0) {
10126: b200 sxth r0, r0
10128: 2800 cmp r0, #0
cur_w += letter_space;
1012a: bfc8 it gt
1012c: 9b04 ldrgt r3, [sp, #16]
if(letter_w > 0) {
1012e: 9a09 ldr r2, [sp, #36] ; 0x24
cur_w += letter_w;
10130: b2b6 uxth r6, r6
cur_w += letter_space;
10132: bfc4 itt gt
10134: 18f6 addgt r6, r6, r3
10136: b2b6 uxthgt r6, r6
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
10138: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1013c: b236 sxth r6, r6
1013e: d105 bne.n 1014c <_lv_txt_get_next_line+0x128>
10140: 9b04 ldr r3, [sp, #16]
10142: 9907 ldr r1, [sp, #28]
10144: 1af3 subs r3, r6, r3
10146: 428b cmp r3, r1
10148: bfc8 it gt
1014a: 46a2 movgt sl, r4
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
1014c: f1b8 0f0a cmp.w r8, #10
10150: d010 beq.n 10174 <_lv_txt_get_next_line+0x150>
10152: f1b8 0f0d cmp.w r8, #13
10156: d00d beq.n 10174 <_lv_txt_get_next_line+0x150>
{
uint8_t i;
bool ret = false;
/*Compare the letter to TXT_BREAK_CHARS*/
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
10158: 4827 ldr r0, [pc, #156] ; (101f8 <_lv_txt_get_next_line+0x1d4>)
1015a: 2300 movs r3, #0
1015c: b2d9 uxtb r1, r3
1015e: 5c41 ldrb r1, [r0, r1]
10160: b921 cbnz r1, 1016c <_lv_txt_get_next_line+0x148>
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
10162: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
10166: bf08 it eq
10168: 4635 moveq r5, r6
1016a: e7cf b.n 1010c <_lv_txt_get_next_line+0xe8>
if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) {
1016c: 4588 cmp r8, r1
1016e: f103 0301 add.w r3, r3, #1
10172: d1f3 bne.n 1015c <_lv_txt_get_next_line+0x138>
if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w;
10174: 2c00 cmp r4, #0
10176: d1ad bne.n 100d4 <_lv_txt_get_next_line+0xb0>
10178: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1017c: d1ad bne.n 100da <_lv_txt_get_next_line+0xb6>
1017e: 4635 mov r5, r6
if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next;
10180: 9b01 ldr r3, [sp, #4]
10182: b123 cbz r3, 1018e <_lv_txt_get_next_line+0x16a>
10184: f1b8 0f0d cmp.w r8, #13
10188: d102 bne.n 10190 <_lv_txt_get_next_line+0x16c>
1018a: 2a0a cmp r2, #10
1018c: d100 bne.n 10190 <_lv_txt_get_next_line+0x16c>
1018e: 9c0c ldr r4, [sp, #48] ; 0x30
return i;
10190: b2a4 uxth r4, r4
max_width -= word_w;
10192: eba9 0905 sub.w r9, r9, r5
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
10196: 9b0b ldr r3, [sp, #44] ; 0x2c
max_width -= word_w;
10198: fa0f f989 sxth.w r9, r9
if(advance == 0) {
1019c: b994 cbnz r4, 101c4 <_lv_txt_get_next_line+0x1a0>
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
1019e: b95b cbnz r3, 101b8 <_lv_txt_get_next_line+0x194>
101a0: 4b12 ldr r3, [pc, #72] ; (101ec <_lv_txt_get_next_line+0x1c8>)
101a2: a90b add r1, sp, #44 ; 0x2c
101a4: 685b ldr r3, [r3, #4]
101a6: 4638 mov r0, r7
101a8: 4798 blx r3
if(i == 0) {
101aa: 9b0b ldr r3, [sp, #44] ; 0x2c
101ac: b923 cbnz r3, 101b8 <_lv_txt_get_next_line+0x194>
_lv_txt_encoded_next(txt, &i);
101ae: 4b0f ldr r3, [pc, #60] ; (101ec <_lv_txt_get_next_line+0x1c8>)
101b0: a90b add r1, sp, #44 ; 0x2c
101b2: 685b ldr r3, [r3, #4]
101b4: 4638 mov r0, r7
101b6: 4798 blx r3
return i;
101b8: f8bd 002c ldrh.w r0, [sp, #44] ; 0x2c
101bc: e751 b.n 10062 <_lv_txt_get_next_line+0x3e>
if(word_w_ptr != NULL) *word_w_ptr = 0; /* Return no word */
101be: 2500 movs r5, #0
return 0;
101c0: 462c mov r4, r5
101c2: e7e6 b.n 10192 <_lv_txt_get_next_line+0x16e>
i += advance;
101c4: 441c add r4, r3
if(txt[0] == '\n' || txt[0] == '\r') break;
101c6: 783b ldrb r3, [r7, #0]
i += advance;
101c8: 940b str r4, [sp, #44] ; 0x2c
if(txt[0] == '\n' || txt[0] == '\r') break;
101ca: 2b0a cmp r3, #10
101cc: d0ed beq.n 101aa <_lv_txt_get_next_line+0x186>
101ce: 2b0d cmp r3, #13
101d0: d0eb beq.n 101aa <_lv_txt_get_next_line+0x186>
if(txt[i] == '\n' || txt[i] == '\r') {
101d2: 5d3b ldrb r3, [r7, r4]
101d4: 2b0a cmp r3, #10
101d6: d002 beq.n 101de <_lv_txt_get_next_line+0x1ba>
101d8: 2b0d cmp r3, #13
101da: f47f af50 bne.w 1007e <_lv_txt_get_next_line+0x5a>
i++; /* Include the following newline in the current line */
101de: 3401 adds r4, #1
101e0: 940b str r4, [sp, #44] ; 0x2c
break;
101e2: e7e2 b.n 101aa <_lv_txt_get_next_line+0x186>
if(txt == NULL) return 0;
101e4: 9802 ldr r0, [sp, #8]
101e6: e73c b.n 10062 <_lv_txt_get_next_line+0x3e>
if(txt[i] != '\0') i++; /*To go beyond `\n`*/
101e8: 3001 adds r0, #1
101ea: e739 b.n 10060 <_lv_txt_get_next_line+0x3c>
101ec: 20000054 .word 0x20000054
101f0: 0000ff41 .word 0x0000ff41
101f4: 0000d1b9 .word 0x0000d1b9
101f8: 0002422a .word 0x0002422a
000101fc <_lv_txt_get_size>:
{
101fc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
10200: b089 sub sp, #36 ; 0x24
size_res->x = 0;
10202: 2500 movs r5, #0
{
10204: 4698 mov r8, r3
10206: f89d 3050 ldrb.w r3, [sp, #80] ; 0x50
1020a: f9bd b048 ldrsh.w fp, [sp, #72] ; 0x48
1020e: f9bd a04c ldrsh.w sl, [sp, #76] ; 0x4c
10212: 9304 str r3, [sp, #16]
10214: 4604 mov r4, r0
10216: 4616 mov r6, r2
size_res->x = 0;
10218: 8005 strh r5, [r0, #0]
size_res->y = 0;
1021a: 8045 strh r5, [r0, #2]
if(text == NULL) return;
1021c: 9103 str r1, [sp, #12]
1021e: b329 cbz r1, 1026c <_lv_txt_get_size+0x70>
if(font == NULL) return;
10220: b322 cbz r2, 1026c <_lv_txt_get_size+0x70>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
10222: 9b04 ldr r3, [sp, #16]
10224: f013 0f02 tst.w r3, #2
10228: f647 4318 movw r3, #31768 ; 0x7c18
1022c: bf18 it ne
1022e: 469a movne sl, r3
* @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;
10230: f9b2 3008 ldrsh.w r3, [r2, #8]
10234: 9306 str r3, [sp, #24]
uint16_t letter_height = lv_font_get_line_height(font);
10236: 8913 ldrh r3, [r2, #8]
10238: 9305 str r3, [sp, #20]
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
1023a: 445b add r3, fp
1023c: 9307 str r3, [sp, #28]
while(text[line_start] != '\0') {
1023e: 9b03 ldr r3, [sp, #12]
10240: eb03 0905 add.w r9, r3, r5
10244: 5d5b ldrb r3, [r3, r5]
10246: b9a3 cbnz r3, 10272 <_lv_txt_get_size+0x76>
if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) {
10248: b155 cbz r5, 10260 <_lv_txt_get_size+0x64>
1024a: f819 3c01 ldrb.w r3, [r9, #-1]
1024e: 2b0a cmp r3, #10
10250: d001 beq.n 10256 <_lv_txt_get_size+0x5a>
10252: 2b0d cmp r3, #13
10254: d104 bne.n 10260 <_lv_txt_get_size+0x64>
size_res->y += letter_height + line_space;
10256: 9b05 ldr r3, [sp, #20]
10258: 8862 ldrh r2, [r4, #2]
1025a: 445b add r3, fp
1025c: 4413 add r3, r2
1025e: 8063 strh r3, [r4, #2]
if(size_res->y == 0)
10260: f9b4 3002 ldrsh.w r3, [r4, #2]
10264: 2b00 cmp r3, #0
10266: d131 bne.n 102cc <_lv_txt_get_size+0xd0>
size_res->y = letter_height;
10268: 9b06 ldr r3, [sp, #24]
size_res->y -= line_space;
1026a: 8063 strh r3, [r4, #2]
}
1026c: b009 add sp, #36 ; 0x24
1026e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
10272: 9b04 ldr r3, [sp, #16]
10274: 9300 str r3, [sp, #0]
10276: 4642 mov r2, r8
10278: 4653 mov r3, sl
1027a: 4631 mov r1, r6
1027c: 4f15 ldr r7, [pc, #84] ; (102d4 <_lv_txt_get_size+0xd8>)
1027e: 4648 mov r0, r9
10280: 47b8 blx r7
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
10282: f9b4 3002 ldrsh.w r3, [r4, #2]
10286: 9a07 ldr r2, [sp, #28]
10288: 4413 add r3, r2
1028a: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
1028e: 4601 mov r1, r0
10290: 4405 add r5, r0
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
10292: d30b bcc.n 102ac <_lv_txt_get_size+0xb0>
LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height");
10294: 4b10 ldr r3, [pc, #64] ; (102d8 <_lv_txt_get_size+0xdc>)
10296: 4c11 ldr r4, [pc, #68] ; (102dc <_lv_txt_get_size+0xe0>)
10298: 9312 str r3, [sp, #72] ; 0x48
1029a: 4911 ldr r1, [pc, #68] ; (102e0 <_lv_txt_get_size+0xe4>)
1029c: 4b11 ldr r3, [pc, #68] ; (102e4 <_lv_txt_get_size+0xe8>)
1029e: 2271 movs r2, #113 ; 0x71
102a0: 2002 movs r0, #2
102a2: 46a4 mov ip, r4
}
102a4: b009 add sp, #36 ; 0x24
102a6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height");
102aa: 4760 bx ip
size_res->y += line_space;
102ac: 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,
102ae: 9b04 ldr r3, [sp, #16]
102b0: 9300 str r3, [sp, #0]
102b2: 4648 mov r0, r9
102b4: 4643 mov r3, r8
102b6: f8df 9030 ldr.w r9, [pc, #48] ; 102e8 <_lv_txt_get_size+0xec>
102ba: 4632 mov r2, r6
102bc: 47c8 blx r9
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
102be: f9b4 3000 ldrsh.w r3, [r4]
102c2: 4298 cmp r0, r3
102c4: bfb8 it lt
102c6: 4618 movlt r0, r3
102c8: 8020 strh r0, [r4, #0]
line_start = new_line_start;
102ca: e7b8 b.n 1023e <_lv_txt_get_size+0x42>
size_res->y -= line_space;
102cc: eba3 030b sub.w r3, r3, fp
102d0: e7cb b.n 1026a <_lv_txt_get_size+0x6e>
102d2: bf00 nop
102d4: 00010025 .word 0x00010025
102d8: 00024261 .word 0x00024261
102dc: 0000e931 .word 0x0000e931
102e0: 00024232 .word 0x00024232
102e4: 000242a1 .word 0x000242a1
102e8: 0000ff7d .word 0x0000ff7d
000102ec <_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))
{
102ec: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
102f0: 9d08 ldr r5, [sp, #32]
102f2: 4680 mov r8, r0
102f4: 460f mov r7, r1
102f6: 4614 mov r4, r2
102f8: 4699 mov r9, r3
const char * middle;
int32_t c;
for(middle = base; n != 0;) {
102fa: b90c cbnz r4, 10300 <_lv_utils_bsearch+0x14>
}
else {
return (char *)middle;
}
}
return NULL;
102fc: 4626 mov r6, r4
102fe: e012 b.n 10326 <_lv_utils_bsearch+0x3a>
middle += (n / 2) * size;
10300: ea4f 0a54 mov.w sl, r4, lsr #1
10304: fb09 760a mla r6, r9, sl, r7
if((c = (*cmp)(key, middle)) > 0) {
10308: 4631 mov r1, r6
1030a: 4640 mov r0, r8
1030c: 47a8 blx r5
1030e: 2800 cmp r0, #0
10310: dd08 ble.n 10324 <_lv_utils_bsearch+0x38>
n = (n / 2) - ((n & 1) == 0);
10312: 43e4 mvns r4, r4
10314: f004 0401 and.w r4, r4, #1
10318: ebaa 0a04 sub.w sl, sl, r4
base = (middle += size);
1031c: eb06 0709 add.w r7, r6, r9
{
10320: 4654 mov r4, sl
10322: e7ea b.n 102fa <_lv_utils_bsearch+0xe>
else if(c < 0) {
10324: d1fc bne.n 10320 <_lv_utils_bsearch+0x34>
}
10326: 4630 mov r0, r6
10328: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
0001032c <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;
1032c: 4b01 ldr r3, [pc, #4] ; (10334 <lv_theme_set_act+0x8>)
1032e: 6018 str r0, [r3, #0]
}
10330: 4770 bx lr
10332: bf00 nop
10334: 2000c7d0 .word 0x2000c7d0
00010338 <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;
10338: 4b01 ldr r3, [pc, #4] ; (10340 <lv_theme_get_font_normal+0x8>)
1033a: 681b ldr r3, [r3, #0]
}
1033c: 68d8 ldr r0, [r3, #12]
1033e: 4770 bx lr
10340: 2000c7d0 .word 0x2000c7d0
00010344 <lv_theme_apply>:
return act_theme->flags;
}
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
act_theme->apply_xcb(obj, name);
10344: 4b01 ldr r3, [pc, #4] ; (1034c <lv_theme_apply+0x8>)
10346: 681b ldr r3, [r3, #0]
10348: 681b ldr r3, [r3, #0]
1034a: 4718 bx r3
1034c: 2000c7d0 .word 0x2000c7d0
00010350 <lv_color_hex3>:
return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF));
}
static inline lv_color_t lv_color_hex3(uint32_t c)
{
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10350: f3c0 1303 ubfx r3, r0, #4, #4
{
10354: b510 push {r4, lr}
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10356: f000 01f0 and.w r1, r0, #240 ; 0xf0
1035a: b2c4 uxtb r4, r0
1035c: f3c0 1207 ubfx r2, r0, #4, #8
return LV_COLOR_MAKE(r, g, b);
10360: 4319 orrs r1, r3
(uint8_t)((c & 0xF) | ((c & 0xF) << 4)));
10362: f000 030f and.w r3, r0, #15
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10366: ea43 1304 orr.w r3, r3, r4, lsl #4
1036a: f022 020f bic.w r2, r2, #15
1036e: 0889 lsrs r1, r1, #2
10370: ea42 2010 orr.w r0, r2, r0, lsr #8
10374: f3c3 03c4 ubfx r3, r3, #3, #5
10378: ea43 1341 orr.w r3, r3, r1, lsl #5
1037c: f3c0 00c4 ubfx r0, r0, #3, #5
}
10380: ea43 20c0 orr.w r0, r3, r0, lsl #11
10384: bd10 pop {r4, pc}
...
00010388 <theme_apply>:
static void theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
lv_style_list_t * list;
switch(name) {
10388: 3901 subs r1, #1
{
1038a: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
1038e: 4604 mov r4, r0
switch(name) {
10390: 2927 cmp r1, #39 ; 0x27
10392: d834 bhi.n 103fe <theme_apply+0x76>
10394: e8df f011 tbh [pc, r1, lsl #1]
10398: 00390028 .word 0x00390028
1039c: 008200bb .word 0x008200bb
103a0: 004f0044 .word 0x004f0044
103a4: 00b70347 .word 0x00b70347
103a8: 0256010f .word 0x0256010f
103ac: 036f0039 .word 0x036f0039
103b0: 03950220 .word 0x03950220
103b4: 00b700b7 .word 0x00b700b7
103b8: 00b70071 .word 0x00b70071
103bc: 00b70151 .word 0x00b70151
103c0: 021501f7 .word 0x021501f7
103c4: 012a0385 .word 0x012a0385
103c8: 01ef013b .word 0x01ef013b
103cc: 01d30166 .word 0x01d30166
103d0: 031b00eb .word 0x031b00eb
103d4: 00d70337 .word 0x00d70337
103d8: 02840098 .word 0x02840098
103dc: 01b9018e .word 0x01b9018e
103e0: 01c702f0 .word 0x01c702f0
103e4: 02e502be .word 0x02e502be
case LV_THEME_NONE:
break;
case LV_THEME_SCR:
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
103e8: 4b99 ldr r3, [pc, #612] ; (10650 <theme_apply+0x2c8>)
103ea: 2100 movs r1, #0
103ec: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
103ee: 4b99 ldr r3, [pc, #612] ; (10654 <theme_apply+0x2cc>)
103f0: 2100 movs r1, #0
103f2: 4620 mov r0, r4
103f4: 4798 blx r3
_lv_style_list_add_style(list, &styles->scr);
103f6: 4b98 ldr r3, [pc, #608] ; (10658 <theme_apply+0x2d0>)
103f8: 6819 ldr r1, [r3, #0]
break;
case LV_THEME_OBJ:
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
_lv_style_list_add_style(list, &styles->bg);
103fa: 4b98 ldr r3, [pc, #608] ; (1065c <theme_apply+0x2d4>)
103fc: 4798 blx r3
#endif
default:
break;
}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
103fe: 4620 mov r0, r4
10400: 4b97 ldr r3, [pc, #604] ; (10660 <theme_apply+0x2d8>)
}
10402: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
10406: 21ff movs r1, #255 ; 0xff
10408: 4718 bx r3
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
1040a: 4b91 ldr r3, [pc, #580] ; (10650 <theme_apply+0x2c8>)
1040c: 2100 movs r1, #0
1040e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
10410: 4b90 ldr r3, [pc, #576] ; (10654 <theme_apply+0x2cc>)
10412: 2100 movs r1, #0
10414: 4620 mov r0, r4
10416: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10418: 4b8f ldr r3, [pc, #572] ; (10658 <theme_apply+0x2d0>)
1041a: 6819 ldr r1, [r3, #0]
1041c: 3104 adds r1, #4
1041e: e7ec b.n 103fa <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10420: 4b8b ldr r3, [pc, #556] ; (10650 <theme_apply+0x2c8>)
10422: 2100 movs r1, #0
10424: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10426: 4b8b ldr r3, [pc, #556] ; (10654 <theme_apply+0x2cc>)
10428: 2100 movs r1, #0
1042a: 4620 mov r0, r4
1042c: 4798 blx r3
_lv_style_list_add_style(list, &styles->btn);
1042e: 4b8a ldr r3, [pc, #552] ; (10658 <theme_apply+0x2d0>)
10430: 6819 ldr r1, [r3, #0]
10432: 3110 adds r1, #16
10434: e7e1 b.n 103fa <theme_apply+0x72>
_lv_style_list_add_style(list, &styles->bg);
10436: 4e88 ldr r6, [pc, #544] ; (10658 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
10438: f8df 9214 ldr.w r9, [pc, #532] ; 10650 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
1043c: f8df 8214 ldr.w r8, [pc, #532] ; 10654 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->bg);
10440: 4d86 ldr r5, [pc, #536] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
10442: 2100 movs r1, #0
10444: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
10446: 2100 movs r1, #0
10448: 4620 mov r0, r4
1044a: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
1044c: 6831 ldr r1, [r6, #0]
1044e: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
10450: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
10452: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10454: 6831 ldr r1, [r6, #0]
10456: 3118 adds r1, #24
_lv_style_list_add_style(list, &styles->kb_bg);
10458: 4638 mov r0, r7
1045a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN);
1045c: 2101 movs r1, #1
1045e: 4620 mov r0, r4
10460: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
10462: 2101 movs r1, #1
10464: 4620 mov r0, r4
10466: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10468: 6831 ldr r1, [r6, #0]
1046a: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
1046c: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1046e: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
10470: 6831 ldr r1, [r6, #0]
10472: 4638 mov r0, r7
10474: 3108 adds r1, #8
_lv_style_list_add_style(list, &styles->gauge_needle);
10476: 47a8 blx r5
break;
10478: e7c1 b.n 103fe <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
1047a: 2100 movs r1, #0
1047c: f8df 91d0 ldr.w r9, [pc, #464] ; 10650 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
10480: f8df 81d0 ldr.w r8, [pc, #464] ; 10654 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->scr);
10484: 4e74 ldr r6, [pc, #464] ; (10658 <theme_apply+0x2d0>)
10486: 4d75 ldr r5, [pc, #468] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
10488: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
1048a: 2100 movs r1, #0
1048c: 4620 mov r0, r4
1048e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->scr);
10490: 6831 ldr r1, [r6, #0]
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
10492: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->scr);
10494: 47a8 blx r5
_lv_style_list_add_style(list, &styles->kb_bg);
10496: 6831 ldr r1, [r6, #0]
10498: 3168 adds r1, #104 ; 0x68
1049a: e7dd b.n 10458 <theme_apply+0xd0>
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
1049c: f8df 81b0 ldr.w r8, [pc, #432] ; 10650 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bar_bg);
104a0: 4e6d ldr r6, [pc, #436] ; (10658 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
104a2: 4f6c ldr r7, [pc, #432] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
104a4: 4d6d ldr r5, [pc, #436] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
104a6: 2100 movs r1, #0
104a8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
104aa: 2100 movs r1, #0
104ac: 4620 mov r0, r4
104ae: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
104b0: 6831 ldr r1, [r6, #0]
104b2: 3124 adds r1, #36 ; 0x24
104b4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC);
104b6: 2101 movs r1, #1
104b8: 4620 mov r0, r4
104ba: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC);
104bc: 2101 movs r1, #1
104be: 4620 mov r0, r4
104c0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
104c2: 6831 ldr r1, [r6, #0]
104c4: 3128 adds r1, #40 ; 0x28
104c6: e7d6 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
104c8: f8df 8184 ldr.w r8, [pc, #388] ; 10650 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bar_bg);
104cc: 4e62 ldr r6, [pc, #392] ; (10658 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
104ce: 4f61 ldr r7, [pc, #388] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
104d0: 4d62 ldr r5, [pc, #392] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
104d2: 2100 movs r1, #0
104d4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
104d6: 2100 movs r1, #0
104d8: 4620 mov r0, r4
104da: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
104dc: 6831 ldr r1, [r6, #0]
104de: 3124 adds r1, #36 ; 0x24
104e0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC);
104e2: 2101 movs r1, #1
104e4: 4620 mov r0, r4
104e6: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC);
104e8: 2101 movs r1, #1
104ea: 4620 mov r0, r4
104ec: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
104ee: 6831 ldr r1, [r6, #0]
104f0: 3128 adds r1, #40 ; 0x28
104f2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB);
104f4: 2102 movs r1, #2
104f6: 4620 mov r0, r4
104f8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB);
104fa: 2102 movs r1, #2
104fc: 4620 mov r0, r4
104fe: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sw_knob);
10500: 6831 ldr r1, [r6, #0]
10502: 319c adds r1, #156 ; 0x9c
10504: e7b7 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN);
10506: 4b52 ldr r3, [pc, #328] ; (10650 <theme_apply+0x2c8>)
10508: 2100 movs r1, #0
1050a: 4798 blx r3
break;
1050c: e777 b.n 103fe <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
1050e: f8df 9140 ldr.w r9, [pc, #320] ; 10650 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bg);
10512: 4e51 ldr r6, [pc, #324] ; (10658 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
10514: f8df 813c ldr.w r8, [pc, #316] ; 10654 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->bg);
10518: 4d50 ldr r5, [pc, #320] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
1051a: 2100 movs r1, #0
1051c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
1051e: 2100 movs r1, #0
10520: 4620 mov r0, r4
10522: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10524: 6831 ldr r1, [r6, #0]
10526: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
10528: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1052a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->arc_bg);
1052c: 6831 ldr r1, [r6, #0]
1052e: 4638 mov r0, r7
10530: 3120 adds r1, #32
10532: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC);
10534: 2101 movs r1, #1
10536: 4620 mov r0, r4
10538: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC);
1053a: 2101 movs r1, #1
1053c: 4620 mov r0, r4
1053e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->arc_indic);
10540: 6831 ldr r1, [r6, #0]
10542: 311c adds r1, #28
10544: e797 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
10546: f8df 8108 ldr.w r8, [pc, #264] ; 10650 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->arc_bg);
1054a: 4e43 ldr r6, [pc, #268] ; (10658 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
1054c: 4f41 ldr r7, [pc, #260] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->arc_bg);
1054e: 4d43 ldr r5, [pc, #268] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
10550: 2100 movs r1, #0
10552: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
10554: 2100 movs r1, #0
10556: 4620 mov r0, r4
10558: 47b8 blx r7
_lv_style_list_add_style(list, &styles->arc_bg);
1055a: 6831 ldr r1, [r6, #0]
1055c: 3120 adds r1, #32
1055e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC);
10560: 4620 mov r0, r4
10562: 2101 movs r1, #1
10564: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC);
10566: 2101 movs r1, #1
10568: 4620 mov r0, r4
1056a: 47b8 blx r7
1056c: e7e8 b.n 10540 <theme_apply+0x1b8>
_lv_style_list_add_style(list, &styles->bar_bg);
1056e: 4e3a ldr r6, [pc, #232] ; (10658 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
10570: f8df 80dc ldr.w r8, [pc, #220] ; 10650 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
10574: 4f37 ldr r7, [pc, #220] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
10576: 4d39 ldr r5, [pc, #228] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
10578: 2100 movs r1, #0
1057a: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
1057c: 2100 movs r1, #0
1057e: 4620 mov r0, r4
10580: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
10582: 6831 ldr r1, [r6, #0]
10584: 3124 adds r1, #36 ; 0x24
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
10586: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bar_bg);
10588: 47a8 blx r5
_lv_style_list_add_style(list, &styles->slider_bg);
1058a: 6831 ldr r1, [r6, #0]
1058c: 4648 mov r0, r9
1058e: 3194 adds r1, #148 ; 0x94
10590: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC);
10592: 2101 movs r1, #1
10594: 4620 mov r0, r4
10596: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC);
10598: 2101 movs r1, #1
1059a: 4620 mov r0, r4
1059c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
1059e: 6831 ldr r1, [r6, #0]
105a0: 3128 adds r1, #40 ; 0x28
105a2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB);
105a4: 2102 movs r1, #2
105a6: 4620 mov r0, r4
105a8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB);
105aa: 2102 movs r1, #2
105ac: 4620 mov r0, r4
105ae: 47b8 blx r7
_lv_style_list_add_style(list, &styles->slider_knob);
105b0: 6831 ldr r1, [r6, #0]
105b2: 3190 adds r1, #144 ; 0x90
105b4: e75f b.n 10476 <theme_apply+0xee>
_lv_style_list_add_style(list, &styles->cb_bg);
105b6: 4f28 ldr r7, [pc, #160] ; (10658 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
105b8: f8df 8094 ldr.w r8, [pc, #148] ; 10650 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
105bc: 4e25 ldr r6, [pc, #148] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->cb_bg);
105be: 4d27 ldr r5, [pc, #156] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
105c0: 2100 movs r1, #0
105c2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
105c4: 2100 movs r1, #0
105c6: 4620 mov r0, r4
105c8: 47b0 blx r6
_lv_style_list_add_style(list, &styles->cb_bg);
105ca: 6839 ldr r1, [r7, #0]
105cc: 314c adds r1, #76 ; 0x4c
105ce: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET);
105d0: 2140 movs r1, #64 ; 0x40
105d2: 4620 mov r0, r4
105d4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
105d6: 2140 movs r1, #64 ; 0x40
105d8: 4620 mov r0, r4
105da: 47b0 blx r6
_lv_style_list_add_style(list, &styles->btn);
105dc: 6839 ldr r1, [r7, #0]
105de: 3110 adds r1, #16
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
105e0: 4606 mov r6, r0
_lv_style_list_add_style(list, &styles->btn);
105e2: 47a8 blx r5
_lv_style_list_add_style(list, &styles->cb_bullet);
105e4: 6839 ldr r1, [r7, #0]
105e6: 4630 mov r0, r6
105e8: 3150 adds r1, #80 ; 0x50
105ea: e744 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
105ec: 4b18 ldr r3, [pc, #96] ; (10650 <theme_apply+0x2c8>)
_lv_style_list_add_style(list, &styles->bg);
105ee: 4f1a ldr r7, [pc, #104] ; (10658 <theme_apply+0x2d0>)
105f0: 4e1a ldr r6, [pc, #104] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
105f2: 2100 movs r1, #0
105f4: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
105f6: 4b17 ldr r3, [pc, #92] ; (10654 <theme_apply+0x2cc>)
105f8: 2100 movs r1, #0
105fa: 4620 mov r0, r4
105fc: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
105fe: 6839 ldr r1, [r7, #0]
10600: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
10602: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10604: 47b0 blx r6
_lv_style_list_add_style(list, &styles->mbox_bg);
10606: 6839 ldr r1, [r7, #0]
10608: 317c adds r1, #124 ; 0x7c
_lv_style_list_add_style(list, &styles->lmeter);
1060a: 4628 mov r0, r5
1060c: e07b b.n 10706 <theme_apply+0x37e>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
1060e: f8df 8040 ldr.w r8, [pc, #64] ; 10650 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->pad_small);
10612: 4e11 ldr r6, [pc, #68] ; (10658 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
10614: 4f0f ldr r7, [pc, #60] ; (10654 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->pad_small);
10616: 4d11 ldr r5, [pc, #68] ; (1065c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
10618: 2140 movs r1, #64 ; 0x40
1061a: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
1061c: 2140 movs r1, #64 ; 0x40
1061e: 4620 mov r0, r4
10620: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_small);
10622: 6831 ldr r1, [r6, #0]
10624: 3118 adds r1, #24
10626: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN);
10628: 2141 movs r1, #65 ; 0x41
1062a: 4620 mov r0, r4
1062c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN);
1062e: 2141 movs r1, #65 ; 0x41
10630: 4620 mov r0, r4
10632: 47b8 blx r7
_lv_style_list_add_style(list, &styles->btn);
10634: 6831 ldr r1, [r6, #0]
10636: 3110 adds r1, #16
10638: e71d b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_LED_PART_MAIN);
1063a: 4b05 ldr r3, [pc, #20] ; (10650 <theme_apply+0x2c8>)
1063c: 2100 movs r1, #0
1063e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN);
10640: 4b04 ldr r3, [pc, #16] ; (10654 <theme_apply+0x2cc>)
10642: 2100 movs r1, #0
10644: 4620 mov r0, r4
10646: 4798 blx r3
_lv_style_list_add_style(list, &styles->led);
10648: 4b03 ldr r3, [pc, #12] ; (10658 <theme_apply+0x2d0>)
1064a: 6819 ldr r1, [r3, #0]
1064c: 316c adds r1, #108 ; 0x6c
1064e: e6d4 b.n 103fa <theme_apply+0x72>
10650: 000024f9 .word 0x000024f9
10654: 0000243d .word 0x0000243d
10658: 2000c7d4 .word 0x2000c7d4
1065c: 00005615 .word 0x00005615
10660: 00002d39 .word 0x00002d39
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
10664: f8df 82a8 ldr.w r8, [pc, #680] ; 10910 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->bg);
10668: 4ea6 ldr r6, [pc, #664] ; (10904 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
1066a: 4fa7 ldr r7, [pc, #668] ; (10908 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
1066c: 4da7 ldr r5, [pc, #668] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
1066e: 2100 movs r1, #0
10670: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
10672: 2100 movs r1, #0
10674: 4620 mov r0, r4
10676: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10678: 6831 ldr r1, [r6, #0]
1067a: 3104 adds r1, #4
1067c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
1067e: 2140 movs r1, #64 ; 0x40
10680: 4620 mov r0, r4
10682: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
10684: 2140 movs r1, #64 ; 0x40
10686: 4620 mov r0, r4
10688: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_inner);
1068a: 6831 ldr r1, [r6, #0]
1068c: 3114 adds r1, #20
_lv_style_list_add_style(list, &styles->scr);
1068e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
10690: 2101 movs r1, #1
10692: 4620 mov r0, r4
10694: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
10696: 2101 movs r1, #1
10698: 4620 mov r0, r4
1069a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
1069c: 6831 ldr r1, [r6, #0]
1069e: 3180 adds r1, #128 ; 0x80
106a0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
106a2: 2102 movs r1, #2
106a4: 4620 mov r0, r4
106a6: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
106a8: 2102 movs r1, #2
106aa: 4620 mov r0, r4
106ac: 47b8 blx r7
_lv_style_list_add_style(list, &styles->edge_flash);
106ae: 6831 ldr r1, [r6, #0]
106b0: 3184 adds r1, #132 ; 0x84
106b2: e6e0 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
106b4: 4d96 ldr r5, [pc, #600] ; (10910 <theme_apply+0x588>)
_lv_style_list_add_style(list, &styles->scr);
106b6: 4f93 ldr r7, [pc, #588] ; (10904 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
106b8: f8df 824c ldr.w r8, [pc, #588] ; 10908 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->scr);
106bc: 4e93 ldr r6, [pc, #588] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
106be: 2100 movs r1, #0
106c0: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
106c2: 2100 movs r1, #0
106c4: 4620 mov r0, r4
106c6: 47c0 blx r8
_lv_style_list_add_style(list, &styles->scr);
106c8: 6839 ldr r1, [r7, #0]
106ca: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE);
106cc: 2140 movs r1, #64 ; 0x40
106ce: 4620 mov r0, r4
106d0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG);
106d2: 2141 movs r1, #65 ; 0x41
106d4: 4620 mov r0, r4
106d6: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG);
106d8: 2141 movs r1, #65 ; 0x41
106da: 4620 mov r0, r4
106dc: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
106de: 6839 ldr r1, [r7, #0]
106e0: 31a8 adds r1, #168 ; 0xa8
106e2: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC);
106e4: 2143 movs r1, #67 ; 0x43
106e6: 4620 mov r0, r4
106e8: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC);
106ea: 2143 movs r1, #67 ; 0x43
106ec: 4620 mov r0, r4
106ee: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_indic);
106f0: 6839 ldr r1, [r7, #0]
106f2: 31ac adds r1, #172 ; 0xac
106f4: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
106f6: 2142 movs r1, #66 ; 0x42
106f8: 4620 mov r0, r4
106fa: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
106fc: 2142 movs r1, #66 ; 0x42
106fe: 4620 mov r0, r4
10700: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns);
10702: 6839 ldr r1, [r7, #0]
10704: 31a4 adds r1, #164 ; 0xa4
_lv_style_list_add_style(list, &styles->lmeter);
10706: 47b0 blx r6
break;
10708: e679 b.n 103fe <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
1070a: 4d81 ldr r5, [pc, #516] ; (10910 <theme_apply+0x588>)
1070c: 2100 movs r1, #0
1070e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
10710: 2140 movs r1, #64 ; 0x40
10712: 4620 mov r0, r4
10714: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
10716: 4b7c ldr r3, [pc, #496] ; (10908 <theme_apply+0x580>)
10718: 2140 movs r1, #64 ; 0x40
1071a: 4620 mov r0, r4
1071c: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
1071e: 4b79 ldr r3, [pc, #484] ; (10904 <theme_apply+0x57c>)
10720: 6819 ldr r1, [r3, #0]
10722: 31b0 adds r1, #176 ; 0xb0
10724: e669 b.n 103fa <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
10726: 2100 movs r1, #0
10728: f8df 81e4 ldr.w r8, [pc, #484] ; 10910 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->scr);
1072c: 4e75 ldr r6, [pc, #468] ; (10904 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
1072e: 4f76 ldr r7, [pc, #472] ; (10908 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->scr);
10730: 4d76 ldr r5, [pc, #472] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
10732: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
10734: 2100 movs r1, #0
10736: 4620 mov r0, r4
10738: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
1073a: 6831 ldr r1, [r6, #0]
1073c: e7a7 b.n 1068e <theme_apply+0x306>
_lv_style_list_add_style(list, &styles->bg);
1073e: 4e71 ldr r6, [pc, #452] ; (10904 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
10740: f8df 91cc ldr.w r9, [pc, #460] ; 10910 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
10744: f8df 81c0 ldr.w r8, [pc, #448] ; 10908 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
10748: 4d70 ldr r5, [pc, #448] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
1074a: 2100 movs r1, #0
1074c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
1074e: 2100 movs r1, #0
10750: 4620 mov r0, r4
10752: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10754: 6831 ldr r1, [r6, #0]
10756: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
10758: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1075a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->roller_bg);
1075c: 6831 ldr r1, [r6, #0]
1075e: 4638 mov r0, r7
10760: 3188 adds r1, #136 ; 0x88
10762: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED);
10764: 2103 movs r1, #3
10766: 4620 mov r0, r4
10768: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED);
1076a: 2103 movs r1, #3
1076c: 4620 mov r0, r4
1076e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->roller_sel);
10770: 6831 ldr r1, [r6, #0]
10772: 318c adds r1, #140 ; 0x8c
10774: e67f b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN);
10776: 4b66 ldr r3, [pc, #408] ; (10910 <theme_apply+0x588>)
10778: 2100 movs r1, #0
1077a: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN);
1077c: 4b62 ldr r3, [pc, #392] ; (10908 <theme_apply+0x580>)
1077e: 2100 movs r1, #0
10780: 4620 mov r0, r4
10782: 4798 blx r3
break;
10784: e63b b.n 103fe <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
10786: 4f62 ldr r7, [pc, #392] ; (10910 <theme_apply+0x588>)
_lv_style_list_add_style(list, &styles->bg);
10788: 4e5e ldr r6, [pc, #376] ; (10904 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
1078a: f8df 917c ldr.w r9, [pc, #380] ; 10908 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
1078e: 4d5f ldr r5, [pc, #380] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
10790: 2100 movs r1, #0
10792: 47b8 blx r7
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
10794: 2100 movs r1, #0
10796: 4620 mov r0, r4
10798: 47c8 blx r9
_lv_style_list_add_style(list, &styles->bg);
1079a: 6831 ldr r1, [r6, #0]
1079c: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
1079e: 4680 mov r8, r0
_lv_style_list_add_style(list, &styles->bg);
107a0: 47a8 blx r5
_lv_style_list_add_style(list, &styles->list_bg);
107a2: 6831 ldr r1, [r6, #0]
107a4: 4640 mov r0, r8
107a6: 3174 adds r1, #116 ; 0x74
107a8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE);
107aa: 2140 movs r1, #64 ; 0x40
107ac: 4620 mov r0, r4
107ae: 47b8 blx r7
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR);
107b0: 2101 movs r1, #1
107b2: 4620 mov r0, r4
107b4: 47b8 blx r7
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR);
107b6: 2101 movs r1, #1
107b8: 4620 mov r0, r4
107ba: 47c8 blx r9
_lv_style_list_add_style(list, &styles->sb);
107bc: 6831 ldr r1, [r6, #0]
107be: 3180 adds r1, #128 ; 0x80
107c0: e659 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
107c2: 4b53 ldr r3, [pc, #332] ; (10910 <theme_apply+0x588>)
107c4: 2100 movs r1, #0
107c6: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
107c8: 4b4f ldr r3, [pc, #316] ; (10908 <theme_apply+0x580>)
107ca: 2100 movs r1, #0
107cc: 4620 mov r0, r4
107ce: 4798 blx r3
_lv_style_list_add_style(list, &styles->list_btn);
107d0: 4b4c ldr r3, [pc, #304] ; (10904 <theme_apply+0x57c>)
107d2: 6819 ldr r1, [r3, #0]
107d4: 3178 adds r1, #120 ; 0x78
107d6: e610 b.n 103fa <theme_apply+0x72>
_lv_style_list_add_style(list, &styles->bg);
107d8: 4e4a ldr r6, [pc, #296] ; (10904 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
107da: f8df 8134 ldr.w r8, [pc, #308] ; 10910 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
107de: 4f4a ldr r7, [pc, #296] ; (10908 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
107e0: 4d4a ldr r5, [pc, #296] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
107e2: 2100 movs r1, #0
107e4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
107e6: 2100 movs r1, #0
107e8: 4620 mov r0, r4
107ea: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
107ec: 6831 ldr r1, [r6, #0]
107ee: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
107f0: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
107f2: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
107f4: 6831 ldr r1, [r6, #0]
107f6: 4648 mov r0, r9
107f8: 3108 adds r1, #8
107fa: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
107fc: 6831 ldr r1, [r6, #0]
107fe: 4648 mov r0, r9
10800: 3118 adds r1, #24
10802: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST);
10804: 2140 movs r1, #64 ; 0x40
10806: 4620 mov r0, r4
10808: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
1080a: 2140 movs r1, #64 ; 0x40
1080c: 4620 mov r0, r4
1080e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10810: 6831 ldr r1, [r6, #0]
10812: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
10814: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10816: 47a8 blx r5
_lv_style_list_add_style(list, &styles->ddlist_page);
10818: 6831 ldr r1, [r6, #0]
1081a: 4648 mov r0, r9
1081c: 3154 adds r1, #84 ; 0x54
1081e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
10820: 2141 movs r1, #65 ; 0x41
10822: 4620 mov r0, r4
10824: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
10826: 2141 movs r1, #65 ; 0x41
10828: 4620 mov r0, r4
1082a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
1082c: 6831 ldr r1, [r6, #0]
1082e: 3180 adds r1, #128 ; 0x80
10830: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED);
10832: 2142 movs r1, #66 ; 0x42
10834: 4620 mov r0, r4
10836: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED);
10838: 2142 movs r1, #66 ; 0x42
1083a: 4620 mov r0, r4
1083c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ddlist_sel);
1083e: 6831 ldr r1, [r6, #0]
10840: 3158 adds r1, #88 ; 0x58
10842: e618 b.n 10476 <theme_apply+0xee>
_lv_style_list_add_style(list, &styles->bg);
10844: 4e2f ldr r6, [pc, #188] ; (10904 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
10846: f8df 90c8 ldr.w r9, [pc, #200] ; 10910 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
1084a: f8df 80bc ldr.w r8, [pc, #188] ; 10908 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
1084e: 4d2f ldr r5, [pc, #188] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
10850: 2100 movs r1, #0
10852: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
10854: 2100 movs r1, #0
10856: 4620 mov r0, r4
10858: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
1085a: 6831 ldr r1, [r6, #0]
1085c: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
1085e: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
10860: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_bg);
10862: 6831 ldr r1, [r6, #0]
10864: 4638 mov r0, r7
10866: 3140 adds r1, #64 ; 0x40
10868: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
1086a: 6831 ldr r1, [r6, #0]
1086c: 4638 mov r0, r7
1086e: 3118 adds r1, #24
10870: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG);
10872: 2101 movs r1, #1
10874: 4620 mov r0, r4
10876: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
10878: 2101 movs r1, #1
1087a: 4620 mov r0, r4
1087c: 47c0 blx r8
_lv_style_list_add_style(list, &styles->pad_small);
1087e: 6831 ldr r1, [r6, #0]
10880: 3118 adds r1, #24
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
10882: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->pad_small);
10884: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_series_bg);
10886: 6831 ldr r1, [r6, #0]
10888: 4638 mov r0, r7
1088a: 3144 adds r1, #68 ; 0x44
1088c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES);
1088e: 2102 movs r1, #2
10890: 4620 mov r0, r4
10892: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES);
10894: 2102 movs r1, #2
10896: 4620 mov r0, r4
10898: 47c0 blx r8
_lv_style_list_add_style(list, &styles->chart_series);
1089a: 6831 ldr r1, [r6, #0]
1089c: 3148 adds r1, #72 ; 0x48
1089e: e5ea b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
108a0: f8df 806c ldr.w r8, [pc, #108] ; 10910 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->bg);
108a4: 4e17 ldr r6, [pc, #92] ; (10904 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
108a6: 4f18 ldr r7, [pc, #96] ; (10908 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
108a8: 4d18 ldr r5, [pc, #96] ; (1090c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
108aa: 2100 movs r1, #0
108ac: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
108ae: 2100 movs r1, #0
108b0: 4620 mov r0, r4
108b2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
108b4: 6831 ldr r1, [r6, #0]
108b6: 3104 adds r1, #4
108b8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1);
108ba: 2101 movs r1, #1
108bc: 4620 mov r0, r4
108be: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1);
108c0: 2101 movs r1, #1
108c2: 4620 mov r0, r4
108c4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
108c6: 6831 ldr r1, [r6, #0]
108c8: 31a0 adds r1, #160 ; 0xa0
108ca: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2);
108cc: 2102 movs r1, #2
108ce: 4620 mov r0, r4
108d0: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2);
108d2: 2102 movs r1, #2
108d4: 4620 mov r0, r4
108d6: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
108d8: 6831 ldr r1, [r6, #0]
108da: 31a0 adds r1, #160 ; 0xa0
108dc: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3);
108de: 2103 movs r1, #3
108e0: 4620 mov r0, r4
108e2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3);
108e4: 2103 movs r1, #3
108e6: 4620 mov r0, r4
108e8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
108ea: 6831 ldr r1, [r6, #0]
108ec: 31a0 adds r1, #160 ; 0xa0
108ee: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4);
108f0: 2104 movs r1, #4
108f2: 4620 mov r0, r4
108f4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4);
108f6: 2104 movs r1, #4
108f8: 4620 mov r0, r4
108fa: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
108fc: 6831 ldr r1, [r6, #0]
108fe: 31a0 adds r1, #160 ; 0xa0
10900: e5b9 b.n 10476 <theme_apply+0xee>
10902: bf00 nop
10904: 2000c7d4 .word 0x2000c7d4
10908: 0000243d .word 0x0000243d
1090c: 00005615 .word 0x00005615
10910: 000024f9 .word 0x000024f9
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
10914: f8df 8200 ldr.w r8, [pc, #512] ; 10b18 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->scr);
10918: 4e7c ldr r6, [pc, #496] ; (10b0c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
1091a: 4f7d ldr r7, [pc, #500] ; (10b10 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->scr);
1091c: 4d7d ldr r5, [pc, #500] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
1091e: 2100 movs r1, #0
10920: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
10922: 2100 movs r1, #0
10924: 4620 mov r0, r4
10926: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
10928: 6831 ldr r1, [r6, #0]
1092a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR);
1092c: 2142 movs r1, #66 ; 0x42
1092e: 4620 mov r0, r4
10930: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR);
10932: 2142 movs r1, #66 ; 0x42
10934: 4620 mov r0, r4
10936: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
10938: 6831 ldr r1, [r6, #0]
1093a: 3180 adds r1, #128 ; 0x80
1093c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
1093e: 2141 movs r1, #65 ; 0x41
10940: 4620 mov r0, r4
10942: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
10944: 2141 movs r1, #65 ; 0x41
10946: 4620 mov r0, r4
10948: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
1094a: 6831 ldr r1, [r6, #0]
1094c: 31b0 adds r1, #176 ; 0xb0
1094e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER);
10950: 2140 movs r1, #64 ; 0x40
10952: 4620 mov r0, r4
10954: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER);
10956: 2140 movs r1, #64 ; 0x40
10958: 4620 mov r0, r4
1095a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
1095c: 6831 ldr r1, [r6, #0]
1095e: 31a8 adds r1, #168 ; 0xa8
10960: e589 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10962: 4b6d ldr r3, [pc, #436] ; (10b18 <theme_apply+0x790>)
10964: 2100 movs r1, #0
10966: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10968: 4b69 ldr r3, [pc, #420] ; (10b10 <theme_apply+0x788>)
1096a: 2100 movs r1, #0
1096c: 4620 mov r0, r4
1096e: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_btns);
10970: 4b66 ldr r3, [pc, #408] ; (10b0c <theme_apply+0x784>)
10972: 6819 ldr r1, [r3, #0]
10974: 31a4 adds r1, #164 ; 0xa4
10976: e540 b.n 103fa <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
10978: f8df 819c ldr.w r8, [pc, #412] ; 10b18 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->bg);
1097c: 4e63 ldr r6, [pc, #396] ; (10b0c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
1097e: 4f64 ldr r7, [pc, #400] ; (10b10 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10980: 4d64 ldr r5, [pc, #400] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
10982: 2100 movs r1, #0
10984: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
10986: 2100 movs r1, #0
10988: 4620 mov r0, r4
1098a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
1098c: 6831 ldr r1, [r6, #0]
1098e: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
10990: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10992: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10994: 6831 ldr r1, [r6, #0]
10996: 4648 mov r0, r9
10998: 3118 adds r1, #24
1099a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
1099c: 4620 mov r0, r4
1099e: 2104 movs r1, #4
109a0: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
109a2: 2104 movs r1, #4
109a4: 4620 mov r0, r4
109a6: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_placeholder);
109a8: 6831 ldr r1, [r6, #0]
109aa: 31b8 adds r1, #184 ; 0xb8
109ac: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR);
109ae: 4620 mov r0, r4
109b0: 2103 movs r1, #3
109b2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR);
109b4: 2103 movs r1, #3
109b6: 4620 mov r0, r4
109b8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_cursor);
109ba: 6831 ldr r1, [r6, #0]
109bc: 31b4 adds r1, #180 ; 0xb4
109be: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
109c0: 4620 mov r0, r4
109c2: 2101 movs r1, #1
109c4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
109c6: 2101 movs r1, #1
109c8: 4620 mov r0, r4
109ca: 47b8 blx r7
109cc: e6f6 b.n 107bc <theme_apply+0x434>
_lv_style_list_add_style(list, &styles->bg);
109ce: 4e4f ldr r6, [pc, #316] ; (10b0c <theme_apply+0x784>)
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
109d0: f8df 9144 ldr.w r9, [pc, #324] ; 10b18 <theme_apply+0x790>
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
109d4: f8df 8138 ldr.w r8, [pc, #312] ; 10b10 <theme_apply+0x788>
_lv_style_list_add_style(list, &styles->bg);
109d8: 4d4e ldr r5, [pc, #312] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
109da: 2100 movs r1, #0
109dc: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
109de: 2100 movs r1, #0
109e0: 4620 mov r0, r4
109e2: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
109e4: 6831 ldr r1, [r6, #0]
109e6: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
109e8: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
109ea: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
109ec: 6831 ldr r1, [r6, #0]
109ee: 4638 mov r0, r7
109f0: 3118 adds r1, #24
109f2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR);
109f4: 2103 movs r1, #3
109f6: 4620 mov r0, r4
109f8: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR);
109fa: 2103 movs r1, #3
109fc: 4620 mov r0, r4
109fe: 47c0 blx r8
_lv_style_list_add_style(list, &styles->spinbox_cursor);
10a00: 6831 ldr r1, [r6, #0]
10a02: 3198 adds r1, #152 ; 0x98
10a04: e537 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10a06: 4b44 ldr r3, [pc, #272] ; (10b18 <theme_apply+0x790>)
_lv_style_list_add_style(list, &styles->bg);
10a08: 4f40 ldr r7, [pc, #256] ; (10b0c <theme_apply+0x784>)
10a0a: 4e42 ldr r6, [pc, #264] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10a0c: 2100 movs r1, #0
10a0e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10a10: 4b3f ldr r3, [pc, #252] ; (10b10 <theme_apply+0x788>)
10a12: 2100 movs r1, #0
10a14: 4620 mov r0, r4
10a16: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10a18: 6839 ldr r1, [r7, #0]
10a1a: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10a1c: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10a1e: 47b0 blx r6
_lv_style_list_add_style(list, &styles->bg_click);
10a20: 6839 ldr r1, [r7, #0]
10a22: 3108 adds r1, #8
10a24: e5f1 b.n 1060a <theme_apply+0x282>
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
10a26: f8df 80f0 ldr.w r8, [pc, #240] ; 10b18 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->bg);
10a2a: 4e38 ldr r6, [pc, #224] ; (10b0c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
10a2c: 4f38 ldr r7, [pc, #224] ; (10b10 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10a2e: 4d39 ldr r5, [pc, #228] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
10a30: 2100 movs r1, #0
10a32: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
10a34: 2100 movs r1, #0
10a36: 4620 mov r0, r4
10a38: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10a3a: 6831 ldr r1, [r6, #0]
10a3c: 3104 adds r1, #4
10a3e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE);
10a40: 2103 movs r1, #3
10a42: 4620 mov r0, r4
10a44: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE);
10a46: 2103 movs r1, #3
10a48: 4620 mov r0, r4
10a4a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_date_nums);
10a4c: 6831 ldr r1, [r6, #0]
10a4e: 312c adds r1, #44 ; 0x2c
10a50: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER);
10a52: 2101 movs r1, #1
10a54: 4620 mov r0, r4
10a56: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER);
10a58: 2101 movs r1, #1
10a5a: 4620 mov r0, r4
10a5c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_header);
10a5e: 6831 ldr r1, [r6, #0]
10a60: 3130 adds r1, #48 ; 0x30
10a62: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
10a64: 2102 movs r1, #2
10a66: 4620 mov r0, r4
10a68: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
10a6a: 2102 movs r1, #2
10a6c: 4620 mov r0, r4
10a6e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_daynames);
10a70: 6831 ldr r1, [r6, #0]
10a72: 3134 adds r1, #52 ; 0x34
10a74: e4ff b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
10a76: f8df 80a0 ldr.w r8, [pc, #160] ; 10b18 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->cpicker_bg);
10a7a: 4e24 ldr r6, [pc, #144] ; (10b0c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
10a7c: 4f24 ldr r7, [pc, #144] ; (10b10 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->cpicker_bg);
10a7e: 4d25 ldr r5, [pc, #148] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
10a80: 2100 movs r1, #0
10a82: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
10a84: 2100 movs r1, #0
10a86: 4620 mov r0, r4
10a88: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_bg);
10a8a: 6831 ldr r1, [r6, #0]
10a8c: 3138 adds r1, #56 ; 0x38
10a8e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB);
10a90: 2101 movs r1, #1
10a92: 4620 mov r0, r4
10a94: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB);
10a96: 2101 movs r1, #1
10a98: 4620 mov r0, r4
10a9a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_indic);
10a9c: 6831 ldr r1, [r6, #0]
10a9e: 313c adds r1, #60 ; 0x3c
10aa0: e4e9 b.n 10476 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
10aa2: 4b1d ldr r3, [pc, #116] ; (10b18 <theme_apply+0x790>)
_lv_style_list_add_style(list, &styles->bg);
10aa4: 4f19 ldr r7, [pc, #100] ; (10b0c <theme_apply+0x784>)
10aa6: 4e1b ldr r6, [pc, #108] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
10aa8: 2100 movs r1, #0
10aaa: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
10aac: 4b18 ldr r3, [pc, #96] ; (10b10 <theme_apply+0x788>)
10aae: 2100 movs r1, #0
10ab0: 4620 mov r0, r4
10ab2: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10ab4: 6839 ldr r1, [r7, #0]
10ab6: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
10ab8: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10aba: 47b0 blx r6
_lv_style_list_add_style(list, &styles->lmeter);
10abc: 6839 ldr r1, [r7, #0]
10abe: 3170 adds r1, #112 ; 0x70
10ac0: e5a3 b.n 1060a <theme_apply+0x282>
_lv_style_list_add_style(list, &styles->bg);
10ac2: 4e12 ldr r6, [pc, #72] ; (10b0c <theme_apply+0x784>)
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
10ac4: f8df 8050 ldr.w r8, [pc, #80] ; 10b18 <theme_apply+0x790>
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10ac8: 4f11 ldr r7, [pc, #68] ; (10b10 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10aca: 4d12 ldr r5, [pc, #72] ; (10b14 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
10acc: 2100 movs r1, #0
10ace: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10ad0: 2100 movs r1, #0
10ad2: 4620 mov r0, r4
10ad4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10ad6: 6831 ldr r1, [r6, #0]
10ad8: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10ada: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10adc: 47a8 blx r5
_lv_style_list_add_style(list, &styles->gauge_main);
10ade: 6831 ldr r1, [r6, #0]
10ae0: 4648 mov r0, r9
10ae2: 315c adds r1, #92 ; 0x5c
10ae4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR);
10ae6: 2101 movs r1, #1
10ae8: 4620 mov r0, r4
10aea: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR);
10aec: 2101 movs r1, #1
10aee: 4620 mov r0, r4
10af0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_strong);
10af2: 6831 ldr r1, [r6, #0]
10af4: 3160 adds r1, #96 ; 0x60
10af6: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE);
10af8: 2102 movs r1, #2
10afa: 4620 mov r0, r4
10afc: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE);
10afe: 2102 movs r1, #2
10b00: 4620 mov r0, r4
10b02: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_needle);
10b04: 6831 ldr r1, [r6, #0]
10b06: 3164 adds r1, #100 ; 0x64
10b08: e4b5 b.n 10476 <theme_apply+0xee>
10b0a: bf00 nop
10b0c: 2000c7d4 .word 0x2000c7d4
10b10: 0000243d .word 0x0000243d
10b14: 00005615 .word 0x00005615
10b18: 000024f9 .word 0x000024f9
00010b1c <style_init_reset>:
* STATIC FUNCTIONS
**********************/
static void style_init_reset(lv_style_t * style)
{
if(inited) lv_style_reset(style);
10b1c: 4b03 ldr r3, [pc, #12] ; (10b2c <style_init_reset+0x10>)
10b1e: 791b ldrb r3, [r3, #4]
10b20: b10b cbz r3, 10b26 <style_init_reset+0xa>
10b22: 4b03 ldr r3, [pc, #12] ; (10b30 <style_init_reset+0x14>)
else lv_style_init(style);
10b24: 4718 bx r3
10b26: 4b03 ldr r3, [pc, #12] ; (10b34 <style_init_reset+0x18>)
10b28: e7fc b.n 10b24 <style_init_reset+0x8>
10b2a: bf00 nop
10b2c: 2000c7d4 .word 0x2000c7d4
10b30: 00005791 .word 0x00005791
10b34: 0000552d .word 0x0000552d
00010b38 <switch_init>:
{
10b38: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->sw_knob);
10b3c: 4d3a ldr r5, [pc, #232] ; (10c28 <switch_init+0xf0>)
10b3e: 4b3b ldr r3, [pc, #236] ; (10c2c <switch_init+0xf4>)
10b40: 6828 ldr r0, [r5, #0]
#define _LV_OBJ_STYLE_SET_GET_DECLARE(prop_name, func_name, value_type, style_type, scalar) \
_OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10b42: 4e3b ldr r6, [pc, #236] ; (10c30 <switch_init+0xf8>)
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10b44: 4c3b ldr r4, [pc, #236] ; (10c34 <switch_init+0xfc>)
style_init_reset(&styles->sw_knob);
10b46: 309c adds r0, #156 ; 0x9c
10b48: 4798 blx r3
lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
10b4a: 6828 ldr r0, [r5, #0]
_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)
10b4c: 4b3a ldr r3, [pc, #232] ; (10c38 <switch_init+0x100>)
10b4e: 22ff movs r2, #255 ; 0xff
10b50: 212c movs r1, #44 ; 0x2c
10b52: 309c adds r0, #156 ; 0x9c
10b54: 4798 blx r3
lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE);
10b56: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10b58: 4b38 ldr r3, [pc, #224] ; (10c3c <switch_init+0x104>)
10b5a: 2129 movs r1, #41 ; 0x29
10b5c: 881a ldrh r2, [r3, #0]
10b5e: 4b38 ldr r3, [pc, #224] ; (10c40 <switch_init+0x108>)
10b60: 309c adds r0, #156 ; 0x9c
10b62: 4798 blx r3
lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10b64: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10b66: f647 72ff movw r2, #32767 ; 0x7fff
10b6a: 2101 movs r1, #1
10b6c: 309c adds r0, #156 ; 0x9c
10b6e: 47b0 blx r6
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10b70: 2000 movs r0, #0
10b72: 682f ldr r7, [r5, #0]
10b74: 47a0 blx r4
10b76: 283b cmp r0, #59 ; 0x3b
10b78: f107 079c add.w r7, r7, #156 ; 0x9c
10b7c: dd47 ble.n 10c0e <switch_init+0xd6>
10b7e: 2000 movs r0, #0
10b80: 47a0 blx r4
10b82: f100 0214 add.w r2, r0, #20
10b86: f06f 0027 mvn.w r0, #39 ; 0x27
10b8a: fb92 f2f0 sdiv r2, r2, r0
10b8e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
10b90: 4638 mov r0, r7
10b92: 2110 movs r1, #16
10b94: 47b0 blx r6
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10b96: 2000 movs r0, #0
10b98: 682f ldr r7, [r5, #0]
10b9a: 47a0 blx r4
10b9c: 283b cmp r0, #59 ; 0x3b
10b9e: f107 079c add.w r7, r7, #156 ; 0x9c
10ba2: dd37 ble.n 10c14 <switch_init+0xdc>
10ba4: 2000 movs r0, #0
10ba6: 47a0 blx r4
10ba8: f100 0214 add.w r2, r0, #20
10bac: f06f 0027 mvn.w r0, #39 ; 0x27
10bb0: fb92 f2f0 sdiv r2, r2, r0
10bb4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
10bb6: 4638 mov r0, r7
10bb8: 2111 movs r1, #17
10bba: 47b0 blx r6
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10bbc: 2000 movs r0, #0
10bbe: 682f ldr r7, [r5, #0]
10bc0: 47a0 blx r4
10bc2: 283b cmp r0, #59 ; 0x3b
10bc4: f107 079c add.w r7, r7, #156 ; 0x9c
10bc8: dd27 ble.n 10c1a <switch_init+0xe2>
10bca: 2000 movs r0, #0
10bcc: 47a0 blx r4
10bce: f100 0214 add.w r2, r0, #20
10bd2: f06f 0027 mvn.w r0, #39 ; 0x27
10bd6: fb92 f2f0 sdiv r2, r2, r0
10bda: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
10bdc: 2112 movs r1, #18
10bde: 4638 mov r0, r7
10be0: 47b0 blx r6
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10be2: 2000 movs r0, #0
10be4: 682d ldr r5, [r5, #0]
10be6: 47a0 blx r4
10be8: 283b cmp r0, #59 ; 0x3b
10bea: f105 059c add.w r5, r5, #156 ; 0x9c
10bee: dd17 ble.n 10c20 <switch_init+0xe8>
10bf0: 2000 movs r0, #0
10bf2: 47a0 blx r4
10bf4: f100 0214 add.w r2, r0, #20
10bf8: f06f 0027 mvn.w r0, #39 ; 0x27
10bfc: fb92 f2f0 sdiv r2, r2, r0
10c00: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
10c02: 4628 mov r0, r5
10c04: 4633 mov r3, r6
10c06: 2113 movs r1, #19
}
10c08: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
10c0c: 4718 bx r3
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10c0e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10c12: e7bd b.n 10b90 <switch_init+0x58>
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10c14: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10c18: e7cd b.n 10bb6 <switch_init+0x7e>
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10c1a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10c1e: e7dd b.n 10bdc <switch_init+0xa4>
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10c20: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10c24: e7ed b.n 10c02 <switch_init+0xca>
10c26: bf00 nop
10c28: 2000c7d4 .word 0x2000c7d4
10c2c: 00010b1d .word 0x00010b1d
10c30: 00005875 .word 0x00005875
10c34: 0000d995 .word 0x0000d995
10c38: 00005a15 .word 0x00005a15
10c3c: 000242b6 .word 0x000242b6
10c40: 00005945 .word 0x00005945
00010c44 <linemeter_init>:
{
10c44: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->lmeter);
10c48: 4d6b ldr r5, [pc, #428] ; (10df8 <linemeter_init+0x1b4>)
10c4a: 4b6c ldr r3, [pc, #432] ; (10dfc <linemeter_init+0x1b8>)
10c4c: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10c4e: 4e6c ldr r6, [pc, #432] ; (10e00 <linemeter_init+0x1bc>)
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10c50: 4c6c ldr r4, [pc, #432] ; (10e04 <linemeter_init+0x1c0>)
style_init_reset(&styles->lmeter);
10c52: 3070 adds r0, #112 ; 0x70
10c54: 4798 blx r3
lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10c56: 6828 ldr r0, [r5, #0]
10c58: f647 72ff movw r2, #32767 ; 0x7fff
10c5c: 2101 movs r1, #1
10c5e: 3070 adds r0, #112 ; 0x70
10c60: 47b0 blx r6
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10c62: 2000 movs r0, #0
10c64: 682f ldr r7, [r5, #0]
10c66: 47a0 blx r4
10c68: eb00 0080 add.w r0, r0, r0, lsl #2
10c6c: 0080 lsls r0, r0, #2
10c6e: 28ef cmp r0, #239 ; 0xef
10c70: f107 0770 add.w r7, r7, #112 ; 0x70
10c74: f340 80b2 ble.w 10ddc <linemeter_init+0x198>
10c78: 2000 movs r0, #0
10c7a: 47a0 blx r4
10c7c: 2350 movs r3, #80 ; 0x50
10c7e: 2114 movs r1, #20
10c80: fb00 3201 mla r2, r0, r1, r3
10c84: 23a0 movs r3, #160 ; 0xa0
10c86: fb92 f2f3 sdiv r2, r2, r3
10c8a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
10c8c: 4638 mov r0, r7
10c8e: 2112 movs r1, #18
10c90: 47b0 blx r6
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10c92: 2000 movs r0, #0
10c94: 682f ldr r7, [r5, #0]
10c96: 47a0 blx r4
10c98: eb00 0080 add.w r0, r0, r0, lsl #2
10c9c: 0080 lsls r0, r0, #2
10c9e: 28ef cmp r0, #239 ; 0xef
10ca0: f107 0770 add.w r7, r7, #112 ; 0x70
10ca4: f340 809c ble.w 10de0 <linemeter_init+0x19c>
10ca8: 2000 movs r0, #0
10caa: 47a0 blx r4
10cac: 2350 movs r3, #80 ; 0x50
10cae: 2114 movs r1, #20
10cb0: fb00 3201 mla r2, r0, r1, r3
10cb4: 23a0 movs r3, #160 ; 0xa0
10cb6: fb92 f2f3 sdiv r2, r2, r3
10cba: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
10cbc: 4638 mov r0, r7
10cbe: 2113 movs r1, #19
10cc0: 47b0 blx r6
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10cc2: 2000 movs r0, #0
10cc4: 682f ldr r7, [r5, #0]
10cc6: 47a0 blx r4
10cc8: eb00 0080 add.w r0, r0, r0, lsl #2
10ccc: 0080 lsls r0, r0, #2
10cce: 28ef cmp r0, #239 ; 0xef
10cd0: f107 0770 add.w r7, r7, #112 ; 0x70
10cd4: f340 8086 ble.w 10de4 <linemeter_init+0x1a0>
10cd8: 2000 movs r0, #0
10cda: 47a0 blx r4
10cdc: 2350 movs r3, #80 ; 0x50
10cde: 2114 movs r1, #20
10ce0: fb00 3201 mla r2, r0, r1, r3
10ce4: 23a0 movs r3, #160 ; 0xa0
10ce6: fb92 f2f3 sdiv r2, r2, r3
10cea: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
10cec: 4638 mov r0, r7
10cee: 2110 movs r1, #16
10cf0: 47b0 blx r6
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
10cf2: 2000 movs r0, #0
10cf4: 682f ldr r7, [r5, #0]
10cf6: 47a0 blx r4
10cf8: ebc0 1000 rsb r0, r0, r0, lsl #4
10cfc: 0040 lsls r0, r0, #1
10cfe: 28ef cmp r0, #239 ; 0xef
10d00: f107 0770 add.w r7, r7, #112 ; 0x70
10d04: dd70 ble.n 10de8 <linemeter_init+0x1a4>
10d06: 2000 movs r0, #0
10d08: 47a0 blx r4
10d0a: 2350 movs r3, #80 ; 0x50
10d0c: 211e movs r1, #30
10d0e: fb00 3201 mla r2, r0, r1, r3
10d12: 23a0 movs r3, #160 ; 0xa0
10d14: fb92 f2f3 sdiv r2, r2, r3
10d18: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
10d1a: 4638 mov r0, r7
10d1c: 2114 movs r1, #20
10d1e: 47b0 blx r6
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
10d20: 2000 movs r0, #0
10d22: 682f ldr r7, [r5, #0]
10d24: 47a0 blx r4
10d26: eb00 0080 add.w r0, r0, r0, lsl #2
10d2a: eb00 0080 add.w r0, r0, r0, lsl #2
10d2e: 28ef cmp r0, #239 ; 0xef
10d30: f107 0770 add.w r7, r7, #112 ; 0x70
10d34: dd5a ble.n 10dec <linemeter_init+0x1a8>
10d36: 2000 movs r0, #0
10d38: 47a0 blx r4
10d3a: 2350 movs r3, #80 ; 0x50
10d3c: 2119 movs r1, #25
10d3e: fb00 3201 mla r2, r0, r1, r3
10d42: 23a0 movs r3, #160 ; 0xa0
10d44: fb92 f2f3 sdiv r2, r2, r3
10d48: b212 sxth r2, r2
_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)
10d4a: 4638 mov r0, r7
10d4c: 21c0 movs r1, #192 ; 0xc0
10d4e: 47b0 blx r6
lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
10d50: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
10d52: 4f2d ldr r7, [pc, #180] ; (10e08 <linemeter_init+0x1c4>)
10d54: 89aa ldrh r2, [r5, #12]
10d56: 2199 movs r1, #153 ; 0x99
10d58: 3070 adds r0, #112 ; 0x70
10d5a: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
10d5c: 6828 ldr r0, [r5, #0]
_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)
10d5e: 89aa ldrh r2, [r5, #12]
10d60: 21c9 movs r1, #201 ; 0xc9
10d62: 3070 adds r0, #112 ; 0x70
10d64: 47b8 blx r7
lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888));
10d66: 6828 ldr r0, [r5, #0]
10d68: 4b28 ldr r3, [pc, #160] ; (10e0c <linemeter_init+0x1c8>)
10d6a: f100 0870 add.w r8, r0, #112 ; 0x70
10d6e: f640 0088 movw r0, #2184 ; 0x888
10d72: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
10d74: 21ca movs r1, #202 ; 0xca
10d76: 4602 mov r2, r0
10d78: 4640 mov r0, r8
10d7a: 47b8 blx r7
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
10d7c: 2000 movs r0, #0
10d7e: 682f ldr r7, [r5, #0]
10d80: 47a0 blx r4
10d82: eb00 0080 add.w r0, r0, r0, lsl #2
10d86: 0040 lsls r0, r0, #1
10d88: 28ef cmp r0, #239 ; 0xef
10d8a: f107 0770 add.w r7, r7, #112 ; 0x70
10d8e: dd2f ble.n 10df0 <linemeter_init+0x1ac>
10d90: 2000 movs r0, #0
10d92: 47a0 blx r4
10d94: 2350 movs r3, #80 ; 0x50
10d96: 210a movs r1, #10
10d98: fb00 3201 mla r2, r0, r1, r3
10d9c: 23a0 movs r3, #160 ; 0xa0
10d9e: fb92 f2f3 sdiv r2, r2, r3
10da2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
10da4: 2190 movs r1, #144 ; 0x90
10da6: 4638 mov r0, r7
10da8: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
10daa: 2000 movs r0, #0
10dac: 682d ldr r5, [r5, #0]
10dae: 47a0 blx r4
10db0: ebc0 00c0 rsb r0, r0, r0, lsl #3
10db4: 28ef cmp r0, #239 ; 0xef
10db6: f105 0570 add.w r5, r5, #112 ; 0x70
10dba: dd1b ble.n 10df4 <linemeter_init+0x1b0>
10dbc: 2000 movs r0, #0
10dbe: 47a0 blx r4
10dc0: 2350 movs r3, #80 ; 0x50
10dc2: 2107 movs r1, #7
10dc4: fb00 3201 mla r2, r0, r1, r3
10dc8: 23a0 movs r3, #160 ; 0xa0
10dca: fb92 f2f3 sdiv r2, r2, r3
10dce: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
10dd0: 4628 mov r0, r5
10dd2: 4633 mov r3, r6
10dd4: 21c3 movs r1, #195 ; 0xc3
}
10dd6: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
10dda: 4718 bx r3
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10ddc: 2201 movs r2, #1
10dde: e755 b.n 10c8c <linemeter_init+0x48>
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10de0: 2201 movs r2, #1
10de2: e76b b.n 10cbc <linemeter_init+0x78>
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10de4: 2201 movs r2, #1
10de6: e781 b.n 10cec <linemeter_init+0xa8>
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
10de8: 2201 movs r2, #1
10dea: e796 b.n 10d1a <linemeter_init+0xd6>
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
10dec: 2201 movs r2, #1
10dee: e7ac b.n 10d4a <linemeter_init+0x106>
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
10df0: 2201 movs r2, #1
10df2: e7d7 b.n 10da4 <linemeter_init+0x160>
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
10df4: 2201 movs r2, #1
10df6: e7eb b.n 10dd0 <linemeter_init+0x18c>
10df8: 2000c7d4 .word 0x2000c7d4
10dfc: 00010b1d .word 0x00010b1d
10e00: 00005875 .word 0x00005875
10e04: 0000d995 .word 0x0000d995
10e08: 00005945 .word 0x00005945
10e0c: 00010351 .word 0x00010351
00010e10 <led_init>:
{
10e10: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->led);
10e14: 4c32 ldr r4, [pc, #200] ; (10ee0 <led_init+0xd0>)
10e16: 4b33 ldr r3, [pc, #204] ; (10ee4 <led_init+0xd4>)
10e18: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10e1a: 4e33 ldr r6, [pc, #204] ; (10ee8 <led_init+0xd8>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10e1c: 4f33 ldr r7, [pc, #204] ; (10eec <led_init+0xdc>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
10e1e: 4d34 ldr r5, [pc, #208] ; (10ef0 <led_init+0xe0>)
10e20: 306c adds r0, #108 ; 0x6c
10e22: 4798 blx r3
lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER);
10e24: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10e26: 22ff movs r2, #255 ; 0xff
10e28: 212c movs r1, #44 ; 0x2c
10e2a: 306c adds r0, #108 ; 0x6c
10e2c: 47b0 blx r6
lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
10e2e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10e30: 89a2 ldrh r2, [r4, #12]
10e32: 2129 movs r1, #41 ; 0x29
10e34: 306c adds r0, #108 ; 0x6c
10e36: 47b8 blx r7
lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2);
10e38: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
10e3a: 2202 movs r2, #2
10e3c: 2130 movs r1, #48 ; 0x30
10e3e: 306c adds r0, #108 ; 0x6c
10e40: 47a8 blx r5
lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50);
10e42: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
10e44: 227f movs r2, #127 ; 0x7f
10e46: 213c movs r1, #60 ; 0x3c
10e48: 306c adds r0, #108 ; 0x6c
10e4a: 47b0 blx r6
lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30));
10e4c: 6820 ldr r0, [r4, #0]
10e4e: 4b29 ldr r3, [pc, #164] ; (10ef4 <led_init+0xe4>)
10e50: f100 066c add.w r6, r0, #108 ; 0x6c
10e54: 214c movs r1, #76 ; 0x4c
10e56: 89a0 ldrh r0, [r4, #12]
10e58: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
10e5a: 2139 movs r1, #57 ; 0x39
10e5c: 4602 mov r2, r0
10e5e: 4630 mov r0, r6
10e60: 47b8 blx r7
lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10e62: 6820 ldr r0, [r4, #0]
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
10e64: 4e24 ldr r6, [pc, #144] ; (10ef8 <led_init+0xe8>)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10e66: f647 72ff movw r2, #32767 ; 0x7fff
10e6a: 2101 movs r1, #1
10e6c: 306c adds r0, #108 ; 0x6c
10e6e: 47a8 blx r5
10e70: 6823 ldr r3, [r4, #0]
10e72: 2000 movs r0, #0
10e74: f103 086c add.w r8, r3, #108 ; 0x6c
10e78: 47b0 blx r6
10e7a: ebc0 1000 rsb r0, r0, r0, lsl #4
10e7e: 28ef cmp r0, #239 ; 0xef
10e80: dd2a ble.n 10ed8 <led_init+0xc8>
10e82: 2000 movs r0, #0
10e84: 47b0 blx r6
10e86: 210f movs r1, #15
10e88: 2350 movs r3, #80 ; 0x50
10e8a: fb00 3001 mla r0, r0, r1, r3
10e8e: 22a0 movs r2, #160 ; 0xa0
10e90: fb90 f2f2 sdiv r2, r0, r2
10e94: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
10e96: 2150 movs r1, #80 ; 0x50
10e98: 4640 mov r0, r8
10e9a: 47a8 blx r5
lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
10e9c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
10e9e: 89a2 ldrh r2, [r4, #12]
10ea0: 2159 movs r1, #89 ; 0x59
10ea2: 306c adds r0, #108 ; 0x6c
10ea4: 47b8 blx r7
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
10ea6: 2000 movs r0, #0
10ea8: 6824 ldr r4, [r4, #0]
10eaa: 47b0 blx r6
10eac: eb00 0080 add.w r0, r0, r0, lsl #2
10eb0: 28ef cmp r0, #239 ; 0xef
10eb2: f104 046c add.w r4, r4, #108 ; 0x6c
10eb6: dd11 ble.n 10edc <led_init+0xcc>
10eb8: 2000 movs r0, #0
10eba: 47b0 blx r6
10ebc: 2350 movs r3, #80 ; 0x50
10ebe: 2105 movs r1, #5
10ec0: fb00 3201 mla r2, r0, r1, r3
10ec4: 23a0 movs r3, #160 ; 0xa0
10ec6: fb92 f2f3 sdiv r2, r2, r3
10eca: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
10ecc: 4620 mov r0, r4
10ece: 462b mov r3, r5
10ed0: 2153 movs r1, #83 ; 0x53
}
10ed2: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
10ed6: 4718 bx r3
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
10ed8: 2201 movs r2, #1
10eda: e7dc b.n 10e96 <led_init+0x86>
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
10edc: 2201 movs r2, #1
10ede: e7f5 b.n 10ecc <led_init+0xbc>
10ee0: 2000c7d4 .word 0x2000c7d4
10ee4: 00010b1d .word 0x00010b1d
10ee8: 00005a15 .word 0x00005a15
10eec: 00005945 .word 0x00005945
10ef0: 00005875 .word 0x00005875
10ef4: 0000e393 .word 0x0000e393
10ef8: 0000d995 .word 0x0000d995
00010efc <lv_color_hex>:
return LV_COLOR_MAKE(r, g, b);
10efc: f3c0 2285 ubfx r2, r0, #10, #6
10f00: f3c0 03c4 ubfx r3, r0, #3, #5
10f04: ea43 1342 orr.w r3, r3, r2, lsl #5
10f08: f3c0 40c4 ubfx r0, r0, #19, #5
}
10f0c: ea43 20c0 orr.w r0, r3, r0, lsl #11
10f10: 4770 bx lr
...
00010f14 <bar_init>:
{
10f14: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->bar_bg);
10f18: 4c43 ldr r4, [pc, #268] ; (11028 <bar_init+0x114>)
10f1a: f8df 9134 ldr.w r9, [pc, #308] ; 11050 <bar_init+0x13c>
10f1e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10f20: 4e42 ldr r6, [pc, #264] ; (1102c <bar_init+0x118>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10f22: 4f43 ldr r7, [pc, #268] ; (11030 <bar_init+0x11c>)
10f24: f8df 812c ldr.w r8, [pc, #300] ; 11054 <bar_init+0x140>
10f28: 3024 adds r0, #36 ; 0x24
10f2a: 47c8 blx r9
lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10f2c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10f2e: f647 72ff movw r2, #32767 ; 0x7fff
10f32: 2101 movs r1, #1
10f34: 3024 adds r0, #36 ; 0x24
10f36: 47b0 blx r6
lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
10f38: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10f3a: 22ff movs r2, #255 ; 0xff
10f3c: 3024 adds r0, #36 ; 0x24
10f3e: 212c movs r1, #44 ; 0x2c
10f40: 47b8 blx r7
lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
10f42: 6a23 ldr r3, [r4, #32]
10f44: 6825 ldr r5, [r4, #0]
10f46: f013 0f02 tst.w r3, #2
10f4a: bf14 ite ne
10f4c: 4839 ldrne r0, [pc, #228] ; (11034 <bar_init+0x120>)
10f4e: 483a ldreq r0, [pc, #232] ; (11038 <bar_init+0x124>)
10f50: 47c0 blx r8
10f52: 3524 adds r5, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10f54: 4602 mov r2, r0
10f56: 2129 movs r1, #41 ; 0x29
10f58: 4628 mov r0, r5
10f5a: 4d38 ldr r5, [pc, #224] ; (1103c <bar_init+0x128>)
10f5c: 47a8 blx r5
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
10f5e: 6823 ldr r3, [r4, #0]
10f60: f103 0a24 add.w sl, r3, #36 ; 0x24
10f64: 6a23 ldr r3, [r4, #32]
10f66: 079a lsls r2, r3, #30
10f68: d558 bpl.n 1101c <bar_init+0x108>
10f6a: 4835 ldr r0, [pc, #212] ; (11040 <bar_init+0x12c>)
10f6c: 47c0 blx r8
10f6e: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
10f70: 2179 movs r1, #121 ; 0x79
10f72: 4650 mov r0, sl
10f74: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary);
10f76: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
10f78: 89a2 ldrh r2, [r4, #12]
10f7a: 2149 movs r1, #73 ; 0x49
10f7c: 3024 adds r0, #36 ; 0x24
10f7e: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary);
10f80: 6820 ldr r0, [r4, #0]
10f82: 89e2 ldrh r2, [r4, #14]
10f84: f240 4149 movw r1, #1097 ; 0x449
10f88: 3024 adds r0, #36 ; 0x24
10f8a: 47a8 blx r5
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
10f8c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
10f8e: 2200 movs r2, #0
10f90: 214c movs r1, #76 ; 0x4c
10f92: 3024 adds r0, #36 ; 0x24
10f94: 47b8 blx r7
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50);
10f96: 6820 ldr r0, [r4, #0]
10f98: 227f movs r2, #127 ; 0x7f
10f9a: f44f 7113 mov.w r1, #588 ; 0x24c
10f9e: 3024 adds r0, #36 ; 0x24
10fa0: 47b8 blx r7
lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3);
10fa2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
10fa4: 2203 movs r2, #3
10fa6: 2140 movs r1, #64 ; 0x40
10fa8: 3024 adds r0, #36 ; 0x24
10faa: 47b0 blx r6
lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
10fac: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
10fae: 2296 movs r2, #150 ; 0x96
10fb0: 21b0 movs r1, #176 ; 0xb0
10fb2: 3024 adds r0, #36 ; 0x24
10fb4: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
10fb6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
10fb8: 224c movs r2, #76 ; 0x4c
10fba: 21b7 movs r1, #183 ; 0xb7
10fbc: 3024 adds r0, #36 ; 0x24
10fbe: 47b0 blx r6
style_init_reset(&styles->bar_indic);
10fc0: 6820 ldr r0, [r4, #0]
10fc2: 3028 adds r0, #40 ; 0x28
10fc4: 47c8 blx r9
lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
10fc6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10fc8: 22ff movs r2, #255 ; 0xff
10fca: 212c movs r1, #44 ; 0x2c
10fcc: 3028 adds r0, #40 ; 0x28
10fce: 47b8 blx r7
lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10fd0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10fd2: f647 72ff movw r2, #32767 ; 0x7fff
10fd6: 2101 movs r1, #1
10fd8: 3028 adds r0, #40 ; 0x28
10fda: 47b0 blx r6
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary);
10fdc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10fde: 89a2 ldrh r2, [r4, #12]
10fe0: 2129 movs r1, #41 ; 0x29
10fe2: 3028 adds r0, #40 ; 0x28
10fe4: 47a8 blx r5
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888));
10fe6: 6820 ldr r0, [r4, #0]
10fe8: 4b16 ldr r3, [pc, #88] ; (11044 <bar_init+0x130>)
10fea: f100 0628 add.w r6, r0, #40 ; 0x28
10fee: f640 0088 movw r0, #2184 ; 0x888
10ff2: 4798 blx r3
10ff4: f242 0129 movw r1, #8233 ; 0x2029
10ff8: 4602 mov r2, r0
10ffa: 4630 mov r0, r6
10ffc: 47a8 blx r5
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
10ffe: 6a23 ldr r3, [r4, #32]
11000: 6820 ldr r0, [r4, #0]
11002: 079b lsls r3, r3, #30
11004: f100 0628 add.w r6, r0, #40 ; 0x28
11008: d50b bpl.n 11022 <bar_init+0x10e>
1100a: 480f ldr r0, [pc, #60] ; (11048 <bar_init+0x134>)
1100c: 47c0 blx r8
1100e: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11010: 4630 mov r0, r6
11012: 462b mov r3, r5
11014: 2179 movs r1, #121 ; 0x79
}
11016: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
1101a: 4718 bx r3
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1101c: 4b0b ldr r3, [pc, #44] ; (1104c <bar_init+0x138>)
1101e: 881a ldrh r2, [r3, #0]
11020: e7a6 b.n 10f70 <bar_init+0x5c>
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
11022: 4b0a ldr r3, [pc, #40] ; (1104c <bar_init+0x138>)
11024: 881a ldrh r2, [r3, #0]
11026: e7f3 b.n 11010 <bar_init+0xfc>
11028: 2000c7d4 .word 0x2000c7d4
1102c: 00005875 .word 0x00005875
11030: 00005a15 .word 0x00005a15
11034: 00d4d7d9 .word 0x00d4d7d9
11038: 0045494d .word 0x0045494d
1103c: 00005945 .word 0x00005945
11040: 0031404f .word 0x0031404f
11044: 00010351 .word 0x00010351
11048: 0041404f .word 0x0041404f
1104c: 000242b6 .word 0x000242b6
11050: 00010b1d .word 0x00010b1d
11054: 00010efd .word 0x00010efd
00011058 <slider_init>:
{
11058: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->slider_knob);
1105c: 4d7d ldr r5, [pc, #500] ; (11254 <slider_init+0x1fc>)
1105e: 4f7e ldr r7, [pc, #504] ; (11258 <slider_init+0x200>)
11060: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11062: 4c7e ldr r4, [pc, #504] ; (1125c <slider_init+0x204>)
11064: 3090 adds r0, #144 ; 0x90
11066: 47b8 blx r7
lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
11068: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1106a: 4b7d ldr r3, [pc, #500] ; (11260 <slider_init+0x208>)
1106c: 22ff movs r2, #255 ; 0xff
1106e: 212c movs r1, #44 ; 0x2c
11070: 3090 adds r0, #144 ; 0x90
11072: 4798 blx r3
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
11074: 6a2b ldr r3, [r5, #32]
11076: 6828 ldr r0, [r5, #0]
11078: 079a lsls r2, r3, #30
1107a: bf56 itet pl
1107c: 4b79 ldrpl r3, [pc, #484] ; (11264 <slider_init+0x20c>)
1107e: 89aa ldrhmi r2, [r5, #12]
11080: 881a ldrhpl r2, [r3, #0]
11082: 3090 adds r0, #144 ; 0x90
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11084: 2129 movs r1, #41 ; 0x29
11086: 47a0 blx r4
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
11088: 6a2b ldr r3, [r5, #32]
1108a: 682e ldr r6, [r5, #0]
1108c: 079b lsls r3, r3, #30
1108e: f106 0690 add.w r6, r6, #144 ; 0x90
11092: f140 80cc bpl.w 1122e <slider_init+0x1d6>
11096: 4874 ldr r0, [pc, #464] ; (11268 <slider_init+0x210>)
11098: 4b74 ldr r3, [pc, #464] ; (1126c <slider_init+0x214>)
1109a: 4798 blx r3
1109c: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
1109e: 4630 mov r0, r6
110a0: 2179 movs r1, #121 ; 0x79
110a2: 47a0 blx r4
lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
110a4: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
110a6: 4e72 ldr r6, [pc, #456] ; (11270 <slider_init+0x218>)
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
110a8: 4c72 ldr r4, [pc, #456] ; (11274 <slider_init+0x21c>)
110aa: f647 72ff movw r2, #32767 ; 0x7fff
110ae: 2101 movs r1, #1
110b0: 3090 adds r0, #144 ; 0x90
110b2: 47b0 blx r6
110b4: 682b ldr r3, [r5, #0]
110b6: 2000 movs r0, #0
110b8: f103 0890 add.w r8, r3, #144 ; 0x90
110bc: 47a0 blx r4
110be: ebc0 00c0 rsb r0, r0, r0, lsl #3
110c2: 28ef cmp r0, #239 ; 0xef
110c4: f340 80b6 ble.w 11234 <slider_init+0x1dc>
110c8: 2000 movs r0, #0
110ca: 47a0 blx r4
110cc: 2107 movs r1, #7
110ce: 2350 movs r3, #80 ; 0x50
110d0: fb00 3001 mla r0, r0, r1, r3
110d4: 22a0 movs r2, #160 ; 0xa0
110d6: fb90 f2f2 sdiv r2, r0, r2
110da: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
110dc: 4640 mov r0, r8
110de: 2112 movs r1, #18
110e0: 47b0 blx r6
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
110e2: 682b ldr r3, [r5, #0]
110e4: 2000 movs r0, #0
110e6: f103 0890 add.w r8, r3, #144 ; 0x90
110ea: 47a0 blx r4
110ec: ebc0 00c0 rsb r0, r0, r0, lsl #3
110f0: 28ef cmp r0, #239 ; 0xef
110f2: f340 80a1 ble.w 11238 <slider_init+0x1e0>
110f6: 2000 movs r0, #0
110f8: 47a0 blx r4
110fa: 2107 movs r1, #7
110fc: 2350 movs r3, #80 ; 0x50
110fe: fb00 3001 mla r0, r0, r1, r3
11102: 22a0 movs r2, #160 ; 0xa0
11104: fb90 f2f2 sdiv r2, r0, r2
11108: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1110a: 4640 mov r0, r8
1110c: 2113 movs r1, #19
1110e: 47b0 blx r6
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11110: 682b ldr r3, [r5, #0]
11112: 2000 movs r0, #0
11114: f103 0890 add.w r8, r3, #144 ; 0x90
11118: 47a0 blx r4
1111a: ebc0 00c0 rsb r0, r0, r0, lsl #3
1111e: 28ef cmp r0, #239 ; 0xef
11120: f340 808c ble.w 1123c <slider_init+0x1e4>
11124: 2000 movs r0, #0
11126: 47a0 blx r4
11128: 2107 movs r1, #7
1112a: 2350 movs r3, #80 ; 0x50
1112c: fb00 3001 mla r0, r0, r1, r3
11130: 22a0 movs r2, #160 ; 0xa0
11132: fb90 f2f2 sdiv r2, r0, r2
11136: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
11138: 4640 mov r0, r8
1113a: 2110 movs r1, #16
1113c: 47b0 blx r6
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
1113e: 682b ldr r3, [r5, #0]
11140: 2000 movs r0, #0
11142: f103 0890 add.w r8, r3, #144 ; 0x90
11146: 47a0 blx r4
11148: ebc0 00c0 rsb r0, r0, r0, lsl #3
1114c: 28ef cmp r0, #239 ; 0xef
1114e: dd77 ble.n 11240 <slider_init+0x1e8>
11150: 2000 movs r0, #0
11152: 47a0 blx r4
11154: 2107 movs r1, #7
11156: 2350 movs r3, #80 ; 0x50
11158: fb00 3001 mla r0, r0, r1, r3
1115c: 22a0 movs r2, #160 ; 0xa0
1115e: fb90 f2f2 sdiv r2, r0, r2
11162: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
11164: 2111 movs r1, #17
11166: 4640 mov r0, r8
11168: 47b0 blx r6
style_init_reset(&styles->slider_bg);
1116a: 6828 ldr r0, [r5, #0]
1116c: 3094 adds r0, #148 ; 0x94
1116e: 47b8 blx r7
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11170: 2000 movs r0, #0
11172: 682f ldr r7, [r5, #0]
11174: 47a0 blx r4
11176: eb00 0080 add.w r0, r0, r0, lsl #2
1117a: 0040 lsls r0, r0, #1
1117c: 28ef cmp r0, #239 ; 0xef
1117e: f107 0794 add.w r7, r7, #148 ; 0x94
11182: dd5f ble.n 11244 <slider_init+0x1ec>
11184: 2000 movs r0, #0
11186: 47a0 blx r4
11188: 2350 movs r3, #80 ; 0x50
1118a: 210a movs r1, #10
1118c: fb00 3201 mla r2, r0, r1, r3
11190: 23a0 movs r3, #160 ; 0xa0
11192: fb92 f2f3 sdiv r2, r2, r3
11196: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar)
11198: 4638 mov r0, r7
1119a: 2117 movs r1, #23
1119c: 47b0 blx r6
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
1119e: 2000 movs r0, #0
111a0: 682f ldr r7, [r5, #0]
111a2: 47a0 blx r4
111a4: eb00 0080 add.w r0, r0, r0, lsl #2
111a8: 0040 lsls r0, r0, #1
111aa: 28ef cmp r0, #239 ; 0xef
111ac: f107 0794 add.w r7, r7, #148 ; 0x94
111b0: dd4a ble.n 11248 <slider_init+0x1f0>
111b2: 2000 movs r0, #0
111b4: 47a0 blx r4
111b6: 2350 movs r3, #80 ; 0x50
111b8: 210a movs r1, #10
111ba: fb00 3201 mla r2, r0, r1, r3
111be: 23a0 movs r3, #160 ; 0xa0
111c0: fb92 f2f3 sdiv r2, r2, r3
111c4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar)
111c6: 4638 mov r0, r7
111c8: 2118 movs r1, #24
111ca: 47b0 blx r6
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
111cc: 2000 movs r0, #0
111ce: 682f ldr r7, [r5, #0]
111d0: 47a0 blx r4
111d2: eb00 0080 add.w r0, r0, r0, lsl #2
111d6: 0040 lsls r0, r0, #1
111d8: 28ef cmp r0, #239 ; 0xef
111da: f107 0794 add.w r7, r7, #148 ; 0x94
111de: dd35 ble.n 1124c <slider_init+0x1f4>
111e0: 2000 movs r0, #0
111e2: 47a0 blx r4
111e4: 2350 movs r3, #80 ; 0x50
111e6: 210a movs r1, #10
111e8: fb00 3201 mla r2, r0, r1, r3
111ec: 23a0 movs r3, #160 ; 0xa0
111ee: fb92 f2f3 sdiv r2, r2, r3
111f2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar)
111f4: 2115 movs r1, #21
111f6: 4638 mov r0, r7
111f8: 47b0 blx r6
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
111fa: 2000 movs r0, #0
111fc: 682d ldr r5, [r5, #0]
111fe: 47a0 blx r4
11200: eb00 0080 add.w r0, r0, r0, lsl #2
11204: 0040 lsls r0, r0, #1
11206: 28ef cmp r0, #239 ; 0xef
11208: f105 0594 add.w r5, r5, #148 ; 0x94
1120c: dd20 ble.n 11250 <slider_init+0x1f8>
1120e: 2000 movs r0, #0
11210: 47a0 blx r4
11212: 2350 movs r3, #80 ; 0x50
11214: 210a movs r1, #10
11216: fb00 3201 mla r2, r0, r1, r3
1121a: 23a0 movs r3, #160 ; 0xa0
1121c: fb92 f2f3 sdiv r2, r2, r3
11220: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar)
11222: 4628 mov r0, r5
11224: 4633 mov r3, r6
11226: 2116 movs r1, #22
}
11228: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
1122c: 4718 bx r3
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1122e: 4b0d ldr r3, [pc, #52] ; (11264 <slider_init+0x20c>)
11230: 881a ldrh r2, [r3, #0]
11232: e734 b.n 1109e <slider_init+0x46>
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11234: 2201 movs r2, #1
11236: e751 b.n 110dc <slider_init+0x84>
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11238: 2201 movs r2, #1
1123a: e766 b.n 1110a <slider_init+0xb2>
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
1123c: 2201 movs r2, #1
1123e: e77b b.n 11138 <slider_init+0xe0>
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11240: 2201 movs r2, #1
11242: e78f b.n 11164 <slider_init+0x10c>
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11244: 2201 movs r2, #1
11246: e7a7 b.n 11198 <slider_init+0x140>
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11248: 2201 movs r2, #1
1124a: e7bc b.n 111c6 <slider_init+0x16e>
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
1124c: 2201 movs r2, #1
1124e: e7d1 b.n 111f4 <slider_init+0x19c>
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11250: 2201 movs r2, #1
11252: e7e6 b.n 11222 <slider_init+0x1ca>
11254: 2000c7d4 .word 0x2000c7d4
11258: 00010b1d .word 0x00010b1d
1125c: 00005945 .word 0x00005945
11260: 00005a15 .word 0x00005a15
11264: 000242b6 .word 0x000242b6
11268: 0031404f .word 0x0031404f
1126c: 00010efd .word 0x00010efd
11270: 00005875 .word 0x00005875
11274: 0000d995 .word 0x0000d995
00011278 <gauge_init>:
{
11278: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->gauge_main);
1127c: 4cb5 ldr r4, [pc, #724] ; (11554 <gauge_init+0x2dc>)
1127e: f8df 82f0 ldr.w r8, [pc, #752] ; 11570 <gauge_init+0x2f8>
11282: 6820 ldr r0, [r4, #0]
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
11284: 4db4 ldr r5, [pc, #720] ; (11558 <gauge_init+0x2e0>)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11286: 4fb5 ldr r7, [pc, #724] ; (1155c <gauge_init+0x2e4>)
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
11288: f8df a2e8 ldr.w sl, [pc, #744] ; 11574 <gauge_init+0x2fc>
style_init_reset(&styles->gauge_main);
1128c: 305c adds r0, #92 ; 0x5c
1128e: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
11290: 6820 ldr r0, [r4, #0]
11292: f100 065c add.w r6, r0, #92 ; 0x5c
11296: f640 0088 movw r0, #2184 ; 0x888
1129a: 47a8 blx r5
1129c: 2199 movs r1, #153 ; 0x99
1129e: 4602 mov r2, r0
112a0: 4630 mov r0, r6
112a2: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
112a4: 6820 ldr r0, [r4, #0]
112a6: f100 065c add.w r6, r0, #92 ; 0x5c
112aa: f640 0088 movw r0, #2184 ; 0x888
112ae: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
112b0: 21c9 movs r1, #201 ; 0xc9
112b2: 4602 mov r2, r0
112b4: 4630 mov r0, r6
112b6: 47b8 blx r7
lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary);
112b8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
112ba: 89a2 ldrh r2, [r4, #12]
112bc: 21ca movs r1, #202 ; 0xca
112be: 305c adds r0, #92 ; 0x5c
112c0: 47b8 blx r7
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
112c2: 2000 movs r0, #0
112c4: 6826 ldr r6, [r4, #0]
112c6: 47d0 blx sl
112c8: eb00 0080 add.w r0, r0, r0, lsl #2
112cc: 28ef cmp r0, #239 ; 0xef
112ce: 46a9 mov r9, r5
112d0: f106 065c add.w r6, r6, #92 ; 0x5c
112d4: 4655 mov r5, sl
112d6: f340 8189 ble.w 115ec <gauge_init+0x374>
112da: 2000 movs r0, #0
112dc: 47d0 blx sl
112de: 2105 movs r1, #5
112e0: 2350 movs r3, #80 ; 0x50
112e2: fb00 3001 mla r0, r0, r1, r3
112e6: 22a0 movs r2, #160 ; 0xa0
112e8: fb90 f2f2 sdiv r2, r0, r2
112ec: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
112ee: 4630 mov r0, r6
112f0: 2190 movs r1, #144 ; 0x90
112f2: 4e9b ldr r6, [pc, #620] ; (11560 <gauge_init+0x2e8>)
112f4: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
112f6: 6823 ldr r3, [r4, #0]
112f8: 2000 movs r0, #0
112fa: f103 0a5c add.w sl, r3, #92 ; 0x5c
112fe: 47a8 blx r5
11300: 283b cmp r0, #59 ; 0x3b
11302: f340 8175 ble.w 115f0 <gauge_init+0x378>
11306: 2000 movs r0, #0
11308: 47a8 blx r5
1130a: 2228 movs r2, #40 ; 0x28
1130c: 3014 adds r0, #20
1130e: fb90 f2f2 sdiv r2, r0, r2
11312: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
11314: 4650 mov r0, sl
11316: 21c3 movs r1, #195 ; 0xc3
11318: 47b0 blx r6
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
1131a: 6823 ldr r3, [r4, #0]
1131c: 2000 movs r0, #0
1131e: f103 0a5c add.w sl, r3, #92 ; 0x5c
11322: 47a8 blx r5
11324: 281d cmp r0, #29
11326: f340 8165 ble.w 115f4 <gauge_init+0x37c>
1132a: 2000 movs r0, #0
1132c: 47a8 blx r5
1132e: 2214 movs r2, #20
11330: 300a adds r0, #10
11332: fb90 f2f2 sdiv r2, r0, r2
11336: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
11338: 4650 mov r0, sl
1133a: 21c2 movs r1, #194 ; 0xc2
1133c: 47b0 blx r6
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1133e: 6823 ldr r3, [r4, #0]
11340: 2000 movs r0, #0
11342: f103 0a5c add.w sl, r3, #92 ; 0x5c
11346: 47a8 blx r5
11348: eb00 0080 add.w r0, r0, r0, lsl #2
1134c: 0080 lsls r0, r0, #2
1134e: 28ef cmp r0, #239 ; 0xef
11350: f340 8152 ble.w 115f8 <gauge_init+0x380>
11354: 2000 movs r0, #0
11356: 47a8 blx r5
11358: 2114 movs r1, #20
1135a: 2350 movs r3, #80 ; 0x50
1135c: fb00 3001 mla r0, r0, r1, r3
11360: 22a0 movs r2, #160 ; 0xa0
11362: fb90 f2f2 sdiv r2, r0, r2
11366: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
11368: 4650 mov r0, sl
1136a: 2112 movs r1, #18
1136c: 47b0 blx r6
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1136e: 6823 ldr r3, [r4, #0]
11370: 2000 movs r0, #0
11372: f103 0a5c add.w sl, r3, #92 ; 0x5c
11376: 47a8 blx r5
11378: eb00 0080 add.w r0, r0, r0, lsl #2
1137c: 0080 lsls r0, r0, #2
1137e: 28ef cmp r0, #239 ; 0xef
11380: f340 813c ble.w 115fc <gauge_init+0x384>
11384: 2000 movs r0, #0
11386: 47a8 blx r5
11388: 2114 movs r1, #20
1138a: 2350 movs r3, #80 ; 0x50
1138c: fb00 3001 mla r0, r0, r1, r3
11390: 22a0 movs r2, #160 ; 0xa0
11392: fb90 f2f2 sdiv r2, r0, r2
11396: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
11398: 4650 mov r0, sl
1139a: 2113 movs r1, #19
1139c: 47b0 blx r6
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1139e: 6823 ldr r3, [r4, #0]
113a0: 2000 movs r0, #0
113a2: f103 0a5c add.w sl, r3, #92 ; 0x5c
113a6: 47a8 blx r5
113a8: eb00 0080 add.w r0, r0, r0, lsl #2
113ac: 0080 lsls r0, r0, #2
113ae: 28ef cmp r0, #239 ; 0xef
113b0: f340 8126 ble.w 11600 <gauge_init+0x388>
113b4: 2000 movs r0, #0
113b6: 47a8 blx r5
113b8: 2114 movs r1, #20
113ba: 2350 movs r3, #80 ; 0x50
113bc: fb00 3001 mla r0, r0, r1, r3
113c0: 22a0 movs r2, #160 ; 0xa0
113c2: fb90 f2f2 sdiv r2, r0, r2
113c6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
113c8: 4650 mov r0, sl
113ca: 2110 movs r1, #16
113cc: 47b0 blx r6
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
113ce: 6823 ldr r3, [r4, #0]
113d0: 2000 movs r0, #0
113d2: f103 0a5c add.w sl, r3, #92 ; 0x5c
113d6: 47a8 blx r5
113d8: eb00 0080 add.w r0, r0, r0, lsl #2
113dc: 0080 lsls r0, r0, #2
113de: 28ef cmp r0, #239 ; 0xef
113e0: f340 8110 ble.w 11604 <gauge_init+0x38c>
113e4: 2000 movs r0, #0
113e6: 47a8 blx r5
113e8: 2114 movs r1, #20
113ea: 2350 movs r3, #80 ; 0x50
113ec: fb00 3001 mla r0, r0, r1, r3
113f0: 22a0 movs r2, #160 ; 0xa0
113f2: fb90 f2f2 sdiv r2, r0, r2
113f6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
113f8: 4650 mov r0, sl
113fa: 2114 movs r1, #20
113fc: 47b0 blx r6
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
113fe: 6823 ldr r3, [r4, #0]
11400: 2000 movs r0, #0
11402: f103 0a5c add.w sl, r3, #92 ; 0x5c
11406: 47a8 blx r5
11408: ebc0 1000 rsb r0, r0, r0, lsl #4
1140c: 28ef cmp r0, #239 ; 0xef
1140e: f340 80fb ble.w 11608 <gauge_init+0x390>
11412: 2000 movs r0, #0
11414: 47a8 blx r5
11416: 210f movs r1, #15
11418: 2350 movs r3, #80 ; 0x50
1141a: fb00 3001 mla r0, r0, r1, r3
1141e: 22a0 movs r2, #160 ; 0xa0
11420: fb90 f2f2 sdiv r2, r0, r2
11424: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
11426: 4650 mov r0, sl
11428: 21c0 movs r1, #192 ; 0xc0
1142a: 47b0 blx r6
lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
1142c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1142e: f647 72ff movw r2, #32767 ; 0x7fff
11432: 2101 movs r1, #1
11434: 305c adds r0, #92 ; 0x5c
11436: 47b0 blx r6
style_init_reset(&styles->gauge_strong);
11438: 6820 ldr r0, [r4, #0]
1143a: 3060 adds r0, #96 ; 0x60
1143c: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
1143e: 6820 ldr r0, [r4, #0]
11440: f100 0a60 add.w sl, r0, #96 ; 0x60
11444: f640 0088 movw r0, #2184 ; 0x888
11448: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
1144a: 2199 movs r1, #153 ; 0x99
1144c: 4602 mov r2, r0
1144e: 4650 mov r0, sl
11450: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
11452: 6820 ldr r0, [r4, #0]
11454: f100 0a60 add.w sl, r0, #96 ; 0x60
11458: f640 0088 movw r0, #2184 ; 0x888
1145c: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
1145e: 21c9 movs r1, #201 ; 0xc9
11460: 4602 mov r2, r0
11462: 4650 mov r0, sl
11464: 47b8 blx r7
lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary);
11466: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
11468: 89a2 ldrh r2, [r4, #12]
1146a: 21ca movs r1, #202 ; 0xca
1146c: 3060 adds r0, #96 ; 0x60
1146e: 47b8 blx r7
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
11470: 6823 ldr r3, [r4, #0]
11472: 2000 movs r0, #0
11474: f103 0960 add.w r9, r3, #96 ; 0x60
11478: 47a8 blx r5
1147a: 281d cmp r0, #29
1147c: f340 80c6 ble.w 1160c <gauge_init+0x394>
11480: 2000 movs r0, #0
11482: 47a8 blx r5
11484: 2214 movs r2, #20
11486: 300a adds r0, #10
11488: fb90 f2f2 sdiv r2, r0, r2
1148c: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1148e: 4648 mov r0, r9
11490: 2190 movs r1, #144 ; 0x90
11492: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
11494: 6823 ldr r3, [r4, #0]
11496: 2000 movs r0, #0
11498: f103 0960 add.w r9, r3, #96 ; 0x60
1149c: 47a8 blx r5
1149e: 281d cmp r0, #29
114a0: f340 80b6 ble.w 11610 <gauge_init+0x398>
114a4: 2000 movs r0, #0
114a6: 47a8 blx r5
114a8: 2214 movs r2, #20
114aa: 300a adds r0, #10
114ac: fb90 f2f2 sdiv r2, r0, r2
114b0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
114b2: 4648 mov r0, r9
114b4: 21c3 movs r1, #195 ; 0xc3
114b6: 47b0 blx r6
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
114b8: 6823 ldr r3, [r4, #0]
114ba: 2000 movs r0, #0
114bc: f103 0960 add.w r9, r3, #96 ; 0x60
114c0: 47a8 blx r5
114c2: eb00 0080 add.w r0, r0, r0, lsl #2
114c6: eb00 0080 add.w r0, r0, r0, lsl #2
114ca: 28ef cmp r0, #239 ; 0xef
114cc: f340 80a2 ble.w 11614 <gauge_init+0x39c>
114d0: 2000 movs r0, #0
114d2: 47a8 blx r5
114d4: 2119 movs r1, #25
114d6: 2350 movs r3, #80 ; 0x50
114d8: fb00 3001 mla r0, r0, r1, r3
114dc: 22a0 movs r2, #160 ; 0xa0
114de: fb90 f2f2 sdiv r2, r0, r2
114e2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
114e4: 21c0 movs r1, #192 ; 0xc0
114e6: 4648 mov r0, r9
114e8: 47b0 blx r6
style_init_reset(&styles->gauge_needle);
114ea: 6820 ldr r0, [r4, #0]
114ec: 3064 adds r0, #100 ; 0x64
114ee: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
114f0: 6823 ldr r3, [r4, #0]
114f2: f103 0864 add.w r8, r3, #100 ; 0x64
114f6: 6a23 ldr r3, [r4, #32]
114f8: 079a lsls r2, r3, #30
114fa: f140 808d bpl.w 11618 <gauge_init+0x3a0>
114fe: 4819 ldr r0, [pc, #100] ; (11564 <gauge_init+0x2ec>)
11500: 4b19 ldr r3, [pc, #100] ; (11568 <gauge_init+0x2f0>)
11502: 4798 blx r3
11504: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11506: 4640 mov r0, r8
11508: 2199 movs r1, #153 ; 0x99
1150a: 47b8 blx r7
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
1150c: 6823 ldr r3, [r4, #0]
1150e: 2000 movs r0, #0
11510: f103 0864 add.w r8, r3, #100 ; 0x64
11514: 47a8 blx r5
11516: 281d cmp r0, #29
11518: f340 8081 ble.w 1161e <gauge_init+0x3a6>
1151c: 2000 movs r0, #0
1151e: 47a8 blx r5
11520: f100 020a add.w r2, r0, #10
11524: 2014 movs r0, #20
11526: fb92 f2f0 sdiv r2, r2, r0
1152a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1152c: 4640 mov r0, r8
1152e: 2190 movs r1, #144 ; 0x90
11530: 47b0 blx r6
lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER);
11532: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11534: 4b0d ldr r3, [pc, #52] ; (1156c <gauge_init+0x2f4>)
11536: 22ff movs r2, #255 ; 0xff
11538: 212c movs r1, #44 ; 0x2c
1153a: 3064 adds r0, #100 ; 0x64
1153c: 4798 blx r3
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
1153e: 6823 ldr r3, [r4, #0]
11540: f103 0864 add.w r8, r3, #100 ; 0x64
11544: 6a23 ldr r3, [r4, #32]
11546: 079b lsls r3, r3, #30
11548: d56b bpl.n 11622 <gauge_init+0x3aa>
1154a: 4806 ldr r0, [pc, #24] ; (11564 <gauge_init+0x2ec>)
1154c: 4b06 ldr r3, [pc, #24] ; (11568 <gauge_init+0x2f0>)
1154e: 4798 blx r3
11550: 4602 mov r2, r0
11552: e011 b.n 11578 <gauge_init+0x300>
11554: 2000c7d4 .word 0x2000c7d4
11558: 00010351 .word 0x00010351
1155c: 00005945 .word 0x00005945
11560: 00005875 .word 0x00005875
11564: 00464b5b .word 0x00464b5b
11568: 00010efd .word 0x00010efd
1156c: 00005a15 .word 0x00005a15
11570: 00010b1d .word 0x00010b1d
11574: 0000d995 .word 0x0000d995
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11578: 2129 movs r1, #41 ; 0x29
1157a: 4640 mov r0, r8
1157c: 47b8 blx r7
lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
1157e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11580: f647 72ff movw r2, #32767 ; 0x7fff
11584: 2101 movs r1, #1
11586: 3064 adds r0, #100 ; 0x64
11588: 47b0 blx r6
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
1158a: 2000 movs r0, #0
1158c: 6827 ldr r7, [r4, #0]
1158e: 47a8 blx r5
11590: ebc0 1000 rsb r0, r0, r0, lsl #4
11594: 0040 lsls r0, r0, #1
11596: 28ef cmp r0, #239 ; 0xef
11598: f107 0764 add.w r7, r7, #100 ; 0x64
1159c: dd44 ble.n 11628 <gauge_init+0x3b0>
1159e: 2000 movs r0, #0
115a0: 47a8 blx r5
115a2: 2350 movs r3, #80 ; 0x50
115a4: 211e movs r1, #30
115a6: fb00 3201 mla r2, r0, r1, r3
115aa: 23a0 movs r3, #160 ; 0xa0
115ac: fb92 f2f3 sdiv r2, r2, r3
115b0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
115b2: 2103 movs r1, #3
115b4: 4638 mov r0, r7
115b6: 47b0 blx r6
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
115b8: 2000 movs r0, #0
115ba: 6824 ldr r4, [r4, #0]
115bc: 47a8 blx r5
115be: eb00 0080 add.w r0, r0, r0, lsl #2
115c2: 0040 lsls r0, r0, #1
115c4: 28ef cmp r0, #239 ; 0xef
115c6: f104 0464 add.w r4, r4, #100 ; 0x64
115ca: dd2f ble.n 1162c <gauge_init+0x3b4>
115cc: 2000 movs r0, #0
115ce: 47a8 blx r5
115d0: 2350 movs r3, #80 ; 0x50
115d2: 210a movs r1, #10
115d4: fb00 3201 mla r2, r0, r1, r3
115d8: 23a0 movs r3, #160 ; 0xa0
115da: fb92 f2f3 sdiv r2, r2, r3
115de: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
115e0: 4620 mov r0, r4
115e2: 4633 mov r3, r6
115e4: 2114 movs r1, #20
}
115e6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
115ea: 4718 bx r3
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
115ec: 2201 movs r2, #1
115ee: e67e b.n 112ee <gauge_init+0x76>
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
115f0: 2201 movs r2, #1
115f2: e68f b.n 11314 <gauge_init+0x9c>
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
115f4: 2201 movs r2, #1
115f6: e69f b.n 11338 <gauge_init+0xc0>
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
115f8: 2201 movs r2, #1
115fa: e6b5 b.n 11368 <gauge_init+0xf0>
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
115fc: 2201 movs r2, #1
115fe: e6cb b.n 11398 <gauge_init+0x120>
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
11600: 2201 movs r2, #1
11602: e6e1 b.n 113c8 <gauge_init+0x150>
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
11604: 2201 movs r2, #1
11606: e6f7 b.n 113f8 <gauge_init+0x180>
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
11608: 2201 movs r2, #1
1160a: e70c b.n 11426 <gauge_init+0x1ae>
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
1160c: 2201 movs r2, #1
1160e: e73e b.n 1148e <gauge_init+0x216>
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
11610: 2201 movs r2, #1
11612: e74e b.n 114b2 <gauge_init+0x23a>
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
11614: 2201 movs r2, #1
11616: e765 b.n 114e4 <gauge_init+0x26c>
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
11618: 4b05 ldr r3, [pc, #20] ; (11630 <gauge_init+0x3b8>)
1161a: 881a ldrh r2, [r3, #0]
1161c: e773 b.n 11506 <gauge_init+0x28e>
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
1161e: 2201 movs r2, #1
11620: e784 b.n 1152c <gauge_init+0x2b4>
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
11622: 4b03 ldr r3, [pc, #12] ; (11630 <gauge_init+0x3b8>)
11624: 881a ldrh r2, [r3, #0]
11626: e7a7 b.n 11578 <gauge_init+0x300>
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
11628: 2201 movs r2, #1
1162a: e7c2 b.n 115b2 <gauge_init+0x33a>
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
1162c: 2201 movs r2, #1
1162e: e7d7 b.n 115e0 <gauge_init+0x368>
11630: 000242b6 .word 0x000242b6
00011634 <chart_init>:
{
11634: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->chart_bg);
11638: 4d67 ldr r5, [pc, #412] ; (117d8 <chart_init+0x1a4>)
1163a: 4f68 ldr r7, [pc, #416] ; (117dc <chart_init+0x1a8>)
1163c: 6828 ldr r0, [r5, #0]
1163e: f8df 91b8 ldr.w r9, [pc, #440] ; 117f8 <chart_init+0x1c4>
11642: 3040 adds r0, #64 ; 0x40
11644: 47b8 blx r7
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
11646: 6a2b ldr r3, [r5, #32]
11648: 682c ldr r4, [r5, #0]
1164a: f013 0f02 tst.w r3, #2
1164e: f104 0440 add.w r4, r4, #64 ; 0x40
11652: f000 80b0 beq.w 117b6 <chart_init+0x182>
11656: 4b62 ldr r3, [pc, #392] ; (117e0 <chart_init+0x1ac>)
11658: f640 20aa movw r0, #2730 ; 0xaaa
1165c: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1165e: 4602 mov r2, r0
11660: f248 0189 movw r1, #32905 ; 0x8089
11664: 4620 mov r0, r4
11666: f8df 8194 ldr.w r8, [pc, #404] ; 117fc <chart_init+0x1c8>
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
1166a: 4c5e ldr r4, [pc, #376] ; (117e4 <chart_init+0x1b0>)
1166c: 47c0 blx r8
style_init_reset(&styles->chart_series_bg);
1166e: 6828 ldr r0, [r5, #0]
11670: 3044 adds r0, #68 ; 0x44
11672: 47b8 blx r7
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
11674: 2000 movs r0, #0
11676: 682e ldr r6, [r5, #0]
11678: 47a0 blx r4
1167a: 28ef cmp r0, #239 ; 0xef
1167c: f106 0644 add.w r6, r6, #68 ; 0x44
11680: f340 809c ble.w 117bc <chart_init+0x188>
11684: 2000 movs r0, #0
11686: 47a0 blx r4
11688: 22a0 movs r2, #160 ; 0xa0
1168a: 3050 adds r0, #80 ; 0x50
1168c: fb90 f2f2 sdiv r2, r0, r2
11690: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
11692: 4630 mov r0, r6
11694: 2190 movs r1, #144 ; 0x90
11696: 4e54 ldr r6, [pc, #336] ; (117e8 <chart_init+0x1b4>)
11698: 47b0 blx r6
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
1169a: 682b ldr r3, [r5, #0]
1169c: 2000 movs r0, #0
1169e: f103 0a44 add.w sl, r3, #68 ; 0x44
116a2: 47a0 blx r4
116a4: eb00 0080 add.w r0, r0, r0, lsl #2
116a8: 0040 lsls r0, r0, #1
116aa: 28ef cmp r0, #239 ; 0xef
116ac: f340 8088 ble.w 117c0 <chart_init+0x18c>
116b0: 2000 movs r0, #0
116b2: 47a0 blx r4
116b4: 210a movs r1, #10
116b6: 2350 movs r3, #80 ; 0x50
116b8: fb00 3001 mla r0, r0, r1, r3
116bc: 22a0 movs r2, #160 ; 0xa0
116be: fb90 f2f2 sdiv r2, r0, r2
116c2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar)
116c4: 4650 mov r0, sl
116c6: 2192 movs r1, #146 ; 0x92
116c8: 47b0 blx r6
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
116ca: 682b ldr r3, [r5, #0]
116cc: 2000 movs r0, #0
116ce: f103 0a44 add.w sl, r3, #68 ; 0x44
116d2: 47a0 blx r4
116d4: eb00 0080 add.w r0, r0, r0, lsl #2
116d8: 0040 lsls r0, r0, #1
116da: 28ef cmp r0, #239 ; 0xef
116dc: dd72 ble.n 117c4 <chart_init+0x190>
116de: 2000 movs r0, #0
116e0: 47a0 blx r4
116e2: 210a movs r1, #10
116e4: 2350 movs r3, #80 ; 0x50
116e6: fb00 3001 mla r0, r0, r1, r3
116ea: 22a0 movs r2, #160 ; 0xa0
116ec: fb90 f2f2 sdiv r2, r0, r2
116f0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
116f2: 4650 mov r0, sl
116f4: 2193 movs r1, #147 ; 0x93
116f6: 47b0 blx r6
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
116f8: 682b ldr r3, [r5, #0]
116fa: f103 0a44 add.w sl, r3, #68 ; 0x44
116fe: 6a2b ldr r3, [r5, #32]
11700: 079b lsls r3, r3, #30
11702: bf4c ite mi
11704: 4839 ldrmi r0, [pc, #228] ; (117ec <chart_init+0x1b8>)
11706: 483a ldrpl r0, [pc, #232] ; (117f0 <chart_init+0x1bc>)
11708: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
1170a: 2199 movs r1, #153 ; 0x99
1170c: 4602 mov r2, r0
1170e: 4650 mov r0, sl
11710: 47c0 blx r8
style_init_reset(&styles->chart_series);
11712: 6828 ldr r0, [r5, #0]
11714: 3048 adds r0, #72 ; 0x48
11716: 47b8 blx r7
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
11718: 2000 movs r0, #0
1171a: 682f ldr r7, [r5, #0]
1171c: 47a0 blx r4
1171e: eb00 0040 add.w r0, r0, r0, lsl #1
11722: 28ef cmp r0, #239 ; 0xef
11724: f107 0748 add.w r7, r7, #72 ; 0x48
11728: dd4e ble.n 117c8 <chart_init+0x194>
1172a: 2000 movs r0, #0
1172c: 47a0 blx r4
1172e: 2350 movs r3, #80 ; 0x50
11730: 2103 movs r1, #3
11732: fb00 3201 mla r2, r0, r1, r3
11736: 23a0 movs r3, #160 ; 0xa0
11738: fb92 f2f3 sdiv r2, r2, r3
1173c: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1173e: 4638 mov r0, r7
11740: 2190 movs r1, #144 ; 0x90
11742: 47b0 blx r6
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
11744: 2000 movs r0, #0
11746: 682f ldr r7, [r5, #0]
11748: 47a0 blx r4
1174a: 283b cmp r0, #59 ; 0x3b
1174c: f107 0748 add.w r7, r7, #72 ; 0x48
11750: dd3c ble.n 117cc <chart_init+0x198>
11752: 2000 movs r0, #0
11754: 47a0 blx r4
11756: f100 0214 add.w r2, r0, #20
1175a: 2028 movs r0, #40 ; 0x28
1175c: fb92 f2f0 sdiv r2, r2, r0
11760: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
11762: 4638 mov r0, r7
11764: 2103 movs r1, #3
11766: 47b0 blx r6
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
11768: 2000 movs r0, #0
1176a: 682f ldr r7, [r5, #0]
1176c: 47a0 blx r4
1176e: 2877 cmp r0, #119 ; 0x77
11770: f107 0748 add.w r7, r7, #72 ; 0x48
11774: dd2c ble.n 117d0 <chart_init+0x19c>
11776: 2000 movs r0, #0
11778: 47a0 blx r4
1177a: f100 0228 add.w r2, r0, #40 ; 0x28
1177e: 2050 movs r0, #80 ; 0x50
11780: fb92 f2f0 sdiv r2, r2, r0
11784: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
11786: 2114 movs r1, #20
11788: 4638 mov r0, r7
1178a: 47b0 blx r6
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
1178c: 2000 movs r0, #0
1178e: 682d ldr r5, [r5, #0]
11790: 47a0 blx r4
11792: 28ef cmp r0, #239 ; 0xef
11794: f105 0548 add.w r5, r5, #72 ; 0x48
11798: dd1c ble.n 117d4 <chart_init+0x1a0>
1179a: 2000 movs r0, #0
1179c: 47a0 blx r4
1179e: f100 0250 add.w r2, r0, #80 ; 0x50
117a2: 20a0 movs r0, #160 ; 0xa0
117a4: fb92 f2f0 sdiv r2, r2, r0
117a8: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
117aa: 4628 mov r0, r5
117ac: 4633 mov r3, r6
117ae: 2101 movs r1, #1
}
117b0: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
117b4: 4718 bx r3
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
117b6: 480f ldr r0, [pc, #60] ; (117f4 <chart_init+0x1c0>)
117b8: 47c8 blx r9
117ba: e750 b.n 1165e <chart_init+0x2a>
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
117bc: 2201 movs r2, #1
117be: e768 b.n 11692 <chart_init+0x5e>
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
117c0: 2201 movs r2, #1
117c2: e77f b.n 116c4 <chart_init+0x90>
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
117c4: 2201 movs r2, #1
117c6: e794 b.n 116f2 <chart_init+0xbe>
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
117c8: 2201 movs r2, #1
117ca: e7b8 b.n 1173e <chart_init+0x10a>
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
117cc: 2201 movs r2, #1
117ce: e7c8 b.n 11762 <chart_init+0x12e>
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
117d0: 2201 movs r2, #1
117d2: e7d8 b.n 11786 <chart_init+0x152>
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
117d4: 2201 movs r2, #1
117d6: e7e8 b.n 117aa <chart_init+0x176>
117d8: 2000c7d4 .word 0x2000c7d4
117dc: 00010b1d .word 0x00010b1d
117e0: 00010351 .word 0x00010351
117e4: 0000d995 .word 0x0000d995
117e8: 00005875 .word 0x00005875
117ec: 00d6dde3 .word 0x00d6dde3
117f0: 00808a97 .word 0x00808a97
117f4: 00a1adbd .word 0x00a1adbd
117f8: 00010efd .word 0x00010efd
117fc: 00005945 .word 0x00005945
00011800 <basic_init>:
{
11800: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
11804: ed2d 8b02 vpush {d8}
style_init_reset(&styles->scr);
11808: 4ca0 ldr r4, [pc, #640] ; (11a8c <basic_init+0x28c>)
1180a: 4fa1 ldr r7, [pc, #644] ; (11a90 <basic_init+0x290>)
1180c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1180e: 4da1 ldr r5, [pc, #644] ; (11a94 <basic_init+0x294>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
11810: f8df 92ac ldr.w r9, [pc, #684] ; 11ac0 <basic_init+0x2c0>
{
11814: b083 sub sp, #12
style_init_reset(&styles->scr);
11816: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11818: 6820 ldr r0, [r4, #0]
1181a: 22ff movs r2, #255 ; 0xff
1181c: 212c movs r1, #44 ; 0x2c
1181e: 47a8 blx r5
lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR);
11820: 6a23 ldr r3, [r4, #32]
11822: 6826 ldr r6, [r4, #0]
11824: f013 0f02 tst.w r3, #2
11828: bf14 ite ne
1182a: 489b ldrne r0, [pc, #620] ; (11a98 <basic_init+0x298>)
1182c: 489b ldreq r0, [pc, #620] ; (11a9c <basic_init+0x29c>)
1182e: 46ab mov fp, r5
11830: 4d9b ldr r5, [pc, #620] ; (11aa0 <basic_init+0x2a0>)
11832: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11834: 46ba mov sl, r7
11836: 4602 mov r2, r0
11838: 4f9a ldr r7, [pc, #616] ; (11aa4 <basic_init+0x2a4>)
1183a: 4630 mov r0, r6
1183c: 2129 movs r1, #41 ; 0x29
1183e: 47b8 blx r7
lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
11840: 6a23 ldr r3, [r4, #32]
11842: 6826 ldr r6, [r4, #0]
11844: 0798 lsls r0, r3, #30
11846: bf4c ite mi
11848: 4897 ldrmi r0, [pc, #604] ; (11aa8 <basic_init+0x2a8>)
1184a: 4898 ldrpl r0, [pc, #608] ; (11aac <basic_init+0x2ac>)
1184c: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1184e: f248 0189 movw r1, #32905 ; 0x8089
11852: 4602 mov r2, r0
11854: 4630 mov r0, r6
11856: 47b8 blx r7
lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
11858: 6a23 ldr r3, [r4, #32]
1185a: 6826 ldr r6, [r4, #0]
1185c: 0799 lsls r1, r3, #30
1185e: bf4c ite mi
11860: 4891 ldrmi r0, [pc, #580] ; (11aa8 <basic_init+0x2a8>)
11862: 4892 ldrpl r0, [pc, #584] ; (11aac <basic_init+0x2ac>)
11864: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11866: 2179 movs r1, #121 ; 0x79
11868: 4602 mov r2, r0
1186a: 4630 mov r0, r6
1186c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
1186e: 6962 ldr r2, [r4, #20]
11870: 6820 ldr r0, [r4, #0]
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
11872: 4e8f ldr r6, [pc, #572] ; (11ab0 <basic_init+0x2b0>)
11874: f248 018e movw r1, #32910 ; 0x808e
11878: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
1187a: 6962 ldr r2, [r4, #20]
1187c: 6820 ldr r0, [r4, #0]
1187e: 217e movs r1, #126 ; 0x7e
11880: 47c8 blx r9
style_init_reset(&styles->bg);
11882: 6820 ldr r0, [r4, #0]
11884: 3004 adds r0, #4
11886: 47d0 blx sl
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
11888: 6823 ldr r3, [r4, #0]
1188a: 2000 movs r0, #0
1188c: f103 0804 add.w r8, r3, #4
11890: 47b0 blx r6
11892: 281d cmp r0, #29
11894: f340 8566 ble.w 12364 <basic_init+0xb64>
11898: 2000 movs r0, #0
1189a: 47b0 blx r6
1189c: 2214 movs r2, #20
1189e: 300a adds r0, #10
118a0: fb90 f2f2 sdiv r2, r0, r2
118a4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
118a6: 4640 mov r0, r8
118a8: 2101 movs r1, #1
118aa: f8df 8218 ldr.w r8, [pc, #536] ; 11ac4 <basic_init+0x2c4>
118ae: 47c0 blx r8
lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER);
118b0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
118b2: 22ff movs r2, #255 ; 0xff
118b4: 3004 adds r0, #4
118b6: 212c movs r1, #44 ; 0x2c
118b8: 47d8 blx fp
lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG);
118ba: 6823 ldr r3, [r4, #0]
118bc: f103 0b04 add.w fp, r3, #4
118c0: 6a23 ldr r3, [r4, #32]
118c2: 079a lsls r2, r3, #30
118c4: bf54 ite pl
118c6: 487b ldrpl r0, [pc, #492] ; (11ab4 <basic_init+0x2b4>)
118c8: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
118cc: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
118ce: 2129 movs r1, #41 ; 0x29
118d0: 4602 mov r2, r0
118d2: 4658 mov r0, fp
118d4: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
118d6: 6823 ldr r3, [r4, #0]
118d8: f103 0b04 add.w fp, r3, #4
118dc: 6a23 ldr r3, [r4, #32]
118de: 079b lsls r3, r3, #30
118e0: bf4c ite mi
118e2: 4875 ldrmi r0, [pc, #468] ; (11ab8 <basic_init+0x2b8>)
118e4: 4875 ldrpl r0, [pc, #468] ; (11abc <basic_init+0x2bc>)
118e6: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
118e8: 2139 movs r1, #57 ; 0x39
118ea: 4602 mov r2, r0
118ec: 4658 mov r0, fp
118ee: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary);
118f0: 6820 ldr r0, [r4, #0]
118f2: 89a2 ldrh r2, [r4, #12]
118f4: f240 2139 movw r1, #569 ; 0x239
118f8: 3004 adds r0, #4
118fa: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary);
118fc: 6820 ldr r0, [r4, #0]
118fe: 89e2 ldrh r2, [r4, #14]
11900: f240 4139 movw r1, #1081 ; 0x439
11904: 3004 adds r0, #4
11906: 47b8 blx r7
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
11908: 6823 ldr r3, [r4, #0]
1190a: 2000 movs r0, #0
1190c: f103 0b04 add.w fp, r3, #4
11910: 47b0 blx r6
11912: 2877 cmp r0, #119 ; 0x77
11914: f340 8529 ble.w 1236a <basic_init+0xb6a>
11918: 2000 movs r0, #0
1191a: 47b0 blx r6
1191c: 2250 movs r2, #80 ; 0x50
1191e: 3028 adds r0, #40 ; 0x28
11920: fb90 f2f2 sdiv r2, r0, r2
11924: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
11926: 4658 mov r0, fp
11928: 2130 movs r1, #48 ; 0x30
1192a: 47c0 blx r8
lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true);
1192c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
1192e: 2201 movs r2, #1
11930: 2133 movs r1, #51 ; 0x33
11932: 3004 adds r0, #4
11934: 47c0 blx r8
lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
11936: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
11938: 6962 ldr r2, [r4, #20]
1193a: 3004 adds r0, #4
1193c: f248 018e movw r1, #32910 ; 0x808e
11940: 47c8 blx r9
lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11942: 6823 ldr r3, [r4, #0]
11944: f103 0b04 add.w fp, r3, #4
11948: 6a23 ldr r3, [r4, #32]
1194a: 0798 lsls r0, r3, #30
1194c: bf4c ite mi
1194e: 4856 ldrmi r0, [pc, #344] ; (11aa8 <basic_init+0x2a8>)
11950: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11954: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11956: f248 0189 movw r1, #32905 ; 0x8089
1195a: 4602 mov r2, r0
1195c: 4658 mov r0, fp
1195e: 47b8 blx r7
lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
11960: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
11962: 6962 ldr r2, [r4, #20]
11964: 3004 adds r0, #4
11966: 217e movs r1, #126 ; 0x7e
11968: 47c8 blx r9
lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
1196a: 6823 ldr r3, [r4, #0]
1196c: f103 0904 add.w r9, r3, #4
11970: 6a23 ldr r3, [r4, #32]
11972: 0799 lsls r1, r3, #30
11974: bf4c ite mi
11976: 484c ldrmi r0, [pc, #304] ; (11aa8 <basic_init+0x2a8>)
11978: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
1197c: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
1197e: 2179 movs r1, #121 ; 0x79
11980: 4602 mov r2, r0
11982: 4648 mov r0, r9
11984: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11986: 6823 ldr r3, [r4, #0]
11988: f103 0904 add.w r9, r3, #4
1198c: 6a23 ldr r3, [r4, #32]
1198e: 079a lsls r2, r3, #30
11990: bf4c ite mi
11992: 4845 ldrmi r0, [pc, #276] ; (11aa8 <basic_init+0x2a8>)
11994: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11998: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
1199a: f248 01a9 movw r1, #32937 ; 0x80a9
1199e: 4602 mov r2, r0
119a0: 4648 mov r0, r9
119a2: 47b8 blx r7
lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
119a4: 6823 ldr r3, [r4, #0]
119a6: f103 0904 add.w r9, r3, #4
119aa: 6a23 ldr r3, [r4, #32]
119ac: 079b lsls r3, r3, #30
119ae: bf4c ite mi
119b0: 483d ldrmi r0, [pc, #244] ; (11aa8 <basic_init+0x2a8>)
119b2: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
119b6: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
119b8: 2199 movs r1, #153 ; 0x99
119ba: 4602 mov r2, r0
119bc: 4648 mov r0, r9
119be: 47b8 blx r7
lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1);
119c0: 6820 ldr r0, [r4, #0]
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
119c2: f8df 9104 ldr.w r9, [pc, #260] ; 11ac8 <basic_init+0x2c8>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
119c6: 2201 movs r2, #1
119c8: 2190 movs r1, #144 ; 0x90
119ca: 3004 adds r0, #4
119cc: 47c0 blx r8
119ce: 6823 ldr r3, [r4, #0]
119d0: 2000 movs r0, #0
119d2: 3304 adds r3, #4
119d4: ee08 3a10 vmov s16, r3
119d8: 47c8 blx r9
119da: 2801 cmp r0, #1
119dc: f04f 0000 mov.w r0, #0
119e0: f200 84d3 bhi.w 1238a <basic_init+0xb8a>
119e4: 47b0 blx r6
119e6: ebc0 1000 rsb r0, r0, r0, lsl #4
119ea: 28ef cmp r0, #239 ; 0xef
119ec: f300 84c0 bgt.w 12370 <basic_init+0xb70>
119f0: f04f 0b01 mov.w fp, #1
119f4: 2000 movs r0, #0
119f6: 47b0 blx r6
119f8: 2877 cmp r0, #119 ; 0x77
119fa: f340 84d1 ble.w 123a0 <basic_init+0xba0>
119fe: 2000 movs r0, #0
11a00: 47b0 blx r6
11a02: 2350 movs r3, #80 ; 0x50
11a04: 3028 adds r0, #40 ; 0x28
11a06: fb90 f0f3 sdiv r0, r0, r3
11a0a: b280 uxth r0, r0
11a0c: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
11a10: b212 sxth r2, r2
11a12: ee18 0a10 vmov r0, s16
11a16: 2112 movs r1, #18
11a18: 47c0 blx r8
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11a1a: 6823 ldr r3, [r4, #0]
11a1c: 2000 movs r0, #0
11a1e: 3304 adds r3, #4
11a20: ee08 3a10 vmov s16, r3
11a24: 47c8 blx r9
11a26: 2801 cmp r0, #1
11a28: f04f 0000 mov.w r0, #0
11a2c: f200 84c8 bhi.w 123c0 <basic_init+0xbc0>
11a30: 47b0 blx r6
11a32: ebc0 1000 rsb r0, r0, r0, lsl #4
11a36: 28ef cmp r0, #239 ; 0xef
11a38: f300 84b5 bgt.w 123a6 <basic_init+0xba6>
11a3c: f04f 0b01 mov.w fp, #1
11a40: 2000 movs r0, #0
11a42: 47b0 blx r6
11a44: 2877 cmp r0, #119 ; 0x77
11a46: f340 84c6 ble.w 123d6 <basic_init+0xbd6>
11a4a: 2000 movs r0, #0
11a4c: 47b0 blx r6
11a4e: 2350 movs r3, #80 ; 0x50
11a50: 3028 adds r0, #40 ; 0x28
11a52: fb90 f0f3 sdiv r0, r0, r3
11a56: b280 uxth r0, r0
11a58: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
11a5c: b212 sxth r2, r2
11a5e: ee18 0a10 vmov r0, s16
11a62: 2113 movs r1, #19
11a64: 47c0 blx r8
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11a66: 6823 ldr r3, [r4, #0]
11a68: 2000 movs r0, #0
11a6a: 3304 adds r3, #4
11a6c: ee08 3a10 vmov s16, r3
11a70: 47c8 blx r9
11a72: 2801 cmp r0, #1
11a74: f04f 0000 mov.w r0, #0
11a78: f200 84bd bhi.w 123f6 <basic_init+0xbf6>
11a7c: 47b0 blx r6
11a7e: ebc0 1000 rsb r0, r0, r0, lsl #4
11a82: 28ef cmp r0, #239 ; 0xef
11a84: f300 84aa bgt.w 123dc <basic_init+0xbdc>
11a88: e020 b.n 11acc <basic_init+0x2cc>
11a8a: bf00 nop
11a8c: 2000c7d4 .word 0x2000c7d4
11a90: 00010b1d .word 0x00010b1d
11a94: 00005a15 .word 0x00005a15
11a98: 00eaeff3 .word 0x00eaeff3
11a9c: 00444b5a .word 0x00444b5a
11aa0: 00010efd .word 0x00010efd
11aa4: 00005945 .word 0x00005945
11aa8: 003b3e42 .word 0x003b3e42
11aac: 00e7e9ec .word 0x00e7e9ec
11ab0: 0000d995 .word 0x0000d995
11ab4: 00586273 .word 0x00586273
11ab8: 00d6dde3 .word 0x00d6dde3
11abc: 00808a97 .word 0x00808a97
11ac0: 00005ae9 .word 0x00005ae9
11ac4: 00005875 .word 0x00005875
11ac8: 0000d9ad .word 0x0000d9ad
11acc: f04f 0b01 mov.w fp, #1
11ad0: 2000 movs r0, #0
11ad2: 47b0 blx r6
11ad4: 2877 cmp r0, #119 ; 0x77
11ad6: f340 8499 ble.w 1240c <basic_init+0xc0c>
11ada: 2000 movs r0, #0
11adc: 47b0 blx r6
11ade: 2350 movs r3, #80 ; 0x50
11ae0: 3028 adds r0, #40 ; 0x28
11ae2: fb90 f0f3 sdiv r0, r0, r3
11ae6: b280 uxth r0, r0
11ae8: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
11aec: b212 sxth r2, r2
11aee: ee18 0a10 vmov r0, s16
11af2: 2110 movs r1, #16
11af4: 47c0 blx r8
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11af6: 6823 ldr r3, [r4, #0]
11af8: 2000 movs r0, #0
11afa: 3304 adds r3, #4
11afc: ee08 3a10 vmov s16, r3
11b00: 47c8 blx r9
11b02: 2801 cmp r0, #1
11b04: f04f 0000 mov.w r0, #0
11b08: f200 8490 bhi.w 1242c <basic_init+0xc2c>
11b0c: 47b0 blx r6
11b0e: ebc0 1000 rsb r0, r0, r0, lsl #4
11b12: 28ef cmp r0, #239 ; 0xef
11b14: f300 847d bgt.w 12412 <basic_init+0xc12>
11b18: f04f 0b01 mov.w fp, #1
11b1c: 2000 movs r0, #0
11b1e: 47b0 blx r6
11b20: 2877 cmp r0, #119 ; 0x77
11b22: f340 848e ble.w 12442 <basic_init+0xc42>
11b26: 2000 movs r0, #0
11b28: 47b0 blx r6
11b2a: 2350 movs r3, #80 ; 0x50
11b2c: 3028 adds r0, #40 ; 0x28
11b2e: fb90 f0f3 sdiv r0, r0, r3
11b32: b280 uxth r0, r0
11b34: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
11b38: b212 sxth r2, r2
11b3a: ee18 0a10 vmov r0, s16
11b3e: 2111 movs r1, #17
11b40: 47c0 blx r8
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
11b42: 6823 ldr r3, [r4, #0]
11b44: 2000 movs r0, #0
11b46: f103 0b04 add.w fp, r3, #4
11b4a: 47c8 blx r9
11b4c: 2801 cmp r0, #1
11b4e: f04f 0000 mov.w r0, #0
11b52: f200 8485 bhi.w 12460 <basic_init+0xc60>
11b56: 47b0 blx r6
11b58: ebc0 1000 rsb r0, r0, r0, lsl #4
11b5c: 28ef cmp r0, #239 ; 0xef
11b5e: f300 8473 bgt.w 12448 <basic_init+0xc48>
11b62: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
11b64: 2114 movs r1, #20
11b66: 4658 mov r0, fp
11b68: 47c0 blx r8
lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME);
11b6a: 6820 ldr r0, [r4, #0]
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
11b6c: f8df 9314 ldr.w r9, [pc, #788] ; 11e84 <basic_init+0x684>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
11b70: 2296 movs r2, #150 ; 0x96
11b72: 21b0 movs r1, #176 ; 0xb0
11b74: 3004 adds r0, #4
11b76: 47c0 blx r8
lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR);
11b78: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
11b7a: 2239 movs r2, #57 ; 0x39
11b7c: 21b7 movs r1, #183 ; 0xb7
11b7e: 3004 adds r0, #4
11b80: 47c0 blx r8
style_init_reset(&styles->bg_sec);
11b82: 6820 ldr r0, [r4, #0]
11b84: 300c adds r0, #12
11b86: 47d0 blx sl
lv_style_copy(&styles->bg_sec, &styles->bg);
11b88: 6820 ldr r0, [r4, #0]
11b8a: 4bac ldr r3, [pc, #688] ; (11e3c <basic_init+0x63c>)
11b8c: 1d01 adds r1, r0, #4
11b8e: 300c adds r0, #12
11b90: 4798 blx r3
lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC);
11b92: 6a23 ldr r3, [r4, #32]
11b94: 6826 ldr r6, [r4, #0]
11b96: 0798 lsls r0, r3, #30
11b98: bf4c ite mi
11b9a: 48a9 ldrmi r0, [pc, #676] ; (11e40 <basic_init+0x640>)
11b9c: 48a9 ldrpl r0, [pc, #676] ; (11e44 <basic_init+0x644>)
11b9e: 47a8 blx r5
11ba0: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11ba2: 4602 mov r2, r0
11ba4: 2129 movs r1, #41 ; 0x29
11ba6: 4630 mov r0, r6
11ba8: 47b8 blx r7
lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER);
11baa: 6a23 ldr r3, [r4, #32]
11bac: 6826 ldr r6, [r4, #0]
11bae: 0799 lsls r1, r3, #30
11bb0: bf4c ite mi
11bb2: 48a5 ldrmi r0, [pc, #660] ; (11e48 <basic_init+0x648>)
11bb4: 48a5 ldrpl r0, [pc, #660] ; (11e4c <basic_init+0x64c>)
11bb6: 47a8 blx r5
11bb8: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11bba: 4602 mov r2, r0
11bbc: 2139 movs r1, #57 ; 0x39
11bbe: 4630 mov r0, r6
11bc0: 47b8 blx r7
lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11bc2: 6a23 ldr r3, [r4, #32]
11bc4: 6826 ldr r6, [r4, #0]
11bc6: 079a lsls r2, r3, #30
11bc8: bf4c ite mi
11bca: 48a1 ldrmi r0, [pc, #644] ; (11e50 <basic_init+0x650>)
11bcc: 48a1 ldrpl r0, [pc, #644] ; (11e54 <basic_init+0x654>)
11bce: 47a8 blx r5
11bd0: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11bd2: 4602 mov r2, r0
11bd4: f248 0189 movw r1, #32905 ; 0x8089
11bd8: 4630 mov r0, r6
11bda: 47b8 blx r7
lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11bdc: 6a23 ldr r3, [r4, #32]
11bde: 6826 ldr r6, [r4, #0]
11be0: 079b lsls r3, r3, #30
11be2: bf4c ite mi
11be4: 489a ldrmi r0, [pc, #616] ; (11e50 <basic_init+0x650>)
11be6: 489b ldrpl r0, [pc, #620] ; (11e54 <basic_init+0x654>)
11be8: 47a8 blx r5
11bea: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11bec: 4602 mov r2, r0
11bee: 2179 movs r1, #121 ; 0x79
11bf0: 4630 mov r0, r6
11bf2: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11bf4: 6a23 ldr r3, [r4, #32]
11bf6: 6826 ldr r6, [r4, #0]
11bf8: 0798 lsls r0, r3, #30
11bfa: bf4c ite mi
11bfc: 4894 ldrmi r0, [pc, #592] ; (11e50 <basic_init+0x650>)
11bfe: 4895 ldrpl r0, [pc, #596] ; (11e54 <basic_init+0x654>)
11c00: 47a8 blx r5
11c02: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
11c04: 4602 mov r2, r0
11c06: f248 01a9 movw r1, #32937 ; 0x80a9
11c0a: 4630 mov r0, r6
11c0c: 47b8 blx r7
lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11c0e: 6a23 ldr r3, [r4, #32]
11c10: 6826 ldr r6, [r4, #0]
11c12: 0799 lsls r1, r3, #30
11c14: bf4c ite mi
11c16: 488e ldrmi r0, [pc, #568] ; (11e50 <basic_init+0x650>)
11c18: 488e ldrpl r0, [pc, #568] ; (11e54 <basic_init+0x654>)
11c1a: 47a8 blx r5
11c1c: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11c1e: 4602 mov r2, r0
11c20: 2199 movs r1, #153 ; 0x99
11c22: 4630 mov r0, r6
11c24: 47b8 blx r7
style_init_reset(&styles->bg_click);
11c26: 6820 ldr r0, [r4, #0]
11c28: 3008 adds r0, #8
11c2a: 47d0 blx sl
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR);
11c2c: 6a23 ldr r3, [r4, #32]
11c2e: 6826 ldr r6, [r4, #0]
11c30: 079a lsls r2, r3, #30
11c32: bf4c ite mi
11c34: 4888 ldrmi r0, [pc, #544] ; (11e58 <basic_init+0x658>)
11c36: 4889 ldrpl r0, [pc, #548] ; (11e5c <basic_init+0x65c>)
11c38: 47a8 blx r5
11c3a: 3608 adds r6, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11c3c: 4602 mov r2, r0
11c3e: f241 0129 movw r1, #4137 ; 0x1029
11c42: 4630 mov r0, r6
11c44: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK);
11c46: 6820 ldr r0, [r4, #0]
11c48: 89a2 ldrh r2, [r4, #12]
11c4a: f240 1129 movw r1, #297 ; 0x129
11c4e: 3008 adds r0, #8
11c50: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
11c52: 6820 ldr r0, [r4, #0]
11c54: 2133 movs r1, #51 ; 0x33
11c56: f100 0608 add.w r6, r0, #8
11c5a: 89a0 ldrh r0, [r4, #12]
11c5c: 47c8 blx r9
11c5e: f241 1129 movw r1, #4393 ; 0x1129
11c62: 4602 mov r2, r0
11c64: 4630 mov r0, r6
11c66: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS);
11c68: 6a23 ldr r3, [r4, #32]
11c6a: 6826 ldr r6, [r4, #0]
11c6c: 079b lsls r3, r3, #30
11c6e: bf54 ite pl
11c70: 487b ldrpl r0, [pc, #492] ; (11e60 <basic_init+0x660>)
11c72: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
11c76: 47a8 blx r5
11c78: 3608 adds r6, #8
11c7a: 4602 mov r2, r0
11c7c: f242 0129 movw r1, #8233 ; 0x2029
11c80: 4630 mov r0, r6
11c82: 47b8 blx r7
lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0);
11c84: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
11c86: 2200 movs r2, #0
11c88: f44f 7198 mov.w r1, #304 ; 0x130
11c8c: 3008 adds r0, #8
11c8e: 47c0 blx r8
lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary,
11c90: 6820 ldr r0, [r4, #0]
11c92: f8df 81f4 ldr.w r8, [pc, #500] ; 11e88 <basic_init+0x688>
11c96: f100 0608 add.w r6, r0, #8
11c9a: 2133 movs r1, #51 ; 0x33
11c9c: 89a0 ldrh r0, [r4, #12]
11c9e: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11ca0: f241 2139 movw r1, #4665 ; 0x1239
11ca4: 4602 mov r2, r0
11ca6: 4630 mov r0, r6
11ca8: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
11caa: 6a23 ldr r3, [r4, #32]
11cac: 6826 ldr r6, [r4, #0]
11cae: f013 0f02 tst.w r3, #2
11cb2: f106 0608 add.w r6, r6, #8
11cb6: f000 83de beq.w 12476 <basic_init+0xc76>
11cba: f640 40cc movw r0, #3276 ; 0xccc
11cbe: 47c0 blx r8
11cc0: 4602 mov r2, r0
11cc2: f241 0139 movw r1, #4153 ; 0x1039
11cc6: 4630 mov r0, r6
11cc8: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK);
11cca: 6a23 ldr r3, [r4, #32]
11ccc: 6826 ldr r6, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11cce: f8df b1bc ldr.w fp, [pc, #444] ; 11e8c <basic_init+0x68c>
11cd2: 0798 lsls r0, r3, #30
11cd4: bf4c ite mi
11cd6: 4863 ldrmi r0, [pc, #396] ; (11e64 <basic_init+0x664>)
11cd8: 4863 ldrpl r0, [pc, #396] ; (11e68 <basic_init+0x668>)
11cda: 47a8 blx r5
11cdc: 3608 adds r6, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11cde: 4602 mov r2, r0
11ce0: f240 1139 movw r1, #313 ; 0x139
11ce4: 4630 mov r0, r6
11ce6: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
11ce8: 6a23 ldr r3, [r4, #32]
11cea: 4d60 ldr r5, [pc, #384] ; (11e6c <basic_init+0x66c>)
11cec: 6826 ldr r6, [r4, #0]
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
11cee: 4c60 ldr r4, [pc, #384] ; (11e70 <basic_init+0x670>)
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
11cf0: f013 0f02 tst.w r3, #2
11cf4: bf14 ite ne
11cf6: 485b ldrne r0, [pc, #364] ; (11e64 <basic_init+0x664>)
11cf8: 485b ldreq r0, [pc, #364] ; (11e68 <basic_init+0x668>)
11cfa: 47a8 blx r5
11cfc: 3608 adds r6, #8
11cfe: 4602 mov r2, r0
11d00: f241 1139 movw r1, #4409 ; 0x1139
11d04: 4630 mov r0, r6
11d06: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
11d08: 6a23 ldr r3, [r4, #32]
11d0a: 6826 ldr r6, [r4, #0]
11d0c: 0799 lsls r1, r3, #30
11d0e: bf4c ite mi
11d10: 4858 ldrmi r0, [pc, #352] ; (11e74 <basic_init+0x674>)
11d12: 4855 ldrpl r0, [pc, #340] ; (11e68 <basic_init+0x668>)
11d14: 47a8 blx r5
11d16: 3608 adds r6, #8
11d18: 4602 mov r2, r0
11d1a: f242 0139 movw r1, #8249 ; 0x2039
11d1e: 4630 mov r0, r6
11d20: 4e55 ldr r6, [pc, #340] ; (11e78 <basic_init+0x678>)
11d22: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
11d24: 6a23 ldr r3, [r4, #32]
11d26: 6827 ldr r7, [r4, #0]
11d28: 079a lsls r2, r3, #30
11d2a: bf4c ite mi
11d2c: 484d ldrmi r0, [pc, #308] ; (11e64 <basic_init+0x664>)
11d2e: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11d32: 47a8 blx r5
11d34: 3708 adds r7, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11d36: 4602 mov r2, r0
11d38: f249 0189 movw r1, #37001 ; 0x9089
11d3c: 4638 mov r0, r7
11d3e: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
11d40: 6820 ldr r0, [r4, #0]
11d42: f100 0708 add.w r7, r0, #8
11d46: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11d4a: 47a8 blx r5
11d4c: f248 1189 movw r1, #33161 ; 0x8189
11d50: 4602 mov r2, r0
11d52: 4638 mov r0, r7
11d54: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
11d56: 6820 ldr r0, [r4, #0]
11d58: f100 0708 add.w r7, r0, #8
11d5c: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11d60: 47a8 blx r5
11d62: f249 1189 movw r1, #37257 ; 0x9189
11d66: 4602 mov r2, r0
11d68: 4638 mov r0, r7
11d6a: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
11d6c: 6a23 ldr r3, [r4, #32]
11d6e: 6827 ldr r7, [r4, #0]
11d70: 079b lsls r3, r3, #30
11d72: bf4c ite mi
11d74: f640 20aa movwmi r0, #2730 ; 0xaaa
11d78: f640 1099 movwpl r0, #2457 ; 0x999
11d7c: 47c0 blx r8
11d7e: 3708 adds r7, #8
11d80: 4602 mov r2, r0
11d82: f24a 0189 movw r1, #41097 ; 0xa089
11d86: 4638 mov r0, r7
11d88: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
11d8a: 6a23 ldr r3, [r4, #32]
11d8c: 6827 ldr r7, [r4, #0]
11d8e: 0798 lsls r0, r3, #30
11d90: bf4c ite mi
11d92: 4834 ldrmi r0, [pc, #208] ; (11e64 <basic_init+0x664>)
11d94: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11d98: 47a8 blx r5
11d9a: 3708 adds r7, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
11d9c: 4602 mov r2, r0
11d9e: f249 01a9 movw r1, #37033 ; 0x90a9
11da2: 4638 mov r0, r7
11da4: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
11da6: 6820 ldr r0, [r4, #0]
11da8: f100 0708 add.w r7, r0, #8
11dac: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11db0: 47a8 blx r5
11db2: f248 11a9 movw r1, #33193 ; 0x81a9
11db6: 4602 mov r2, r0
11db8: 4638 mov r0, r7
11dba: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
11dbc: 6820 ldr r0, [r4, #0]
11dbe: f100 0708 add.w r7, r0, #8
11dc2: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11dc6: 47a8 blx r5
11dc8: f249 11a9 movw r1, #37289 ; 0x91a9
11dcc: 4602 mov r2, r0
11dce: 4638 mov r0, r7
11dd0: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
11dd2: 6a23 ldr r3, [r4, #32]
11dd4: 6827 ldr r7, [r4, #0]
11dd6: 0799 lsls r1, r3, #30
11dd8: bf4c ite mi
11dda: f640 20aa movwmi r0, #2730 ; 0xaaa
11dde: f640 1099 movwpl r0, #2457 ; 0x999
11de2: 47c0 blx r8
11de4: 3708 adds r7, #8
11de6: 4602 mov r2, r0
11de8: f24a 01a9 movw r1, #41129 ; 0xa0a9
11dec: 4638 mov r0, r7
11dee: 47b0 blx r6
lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
11df0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
11df2: 4f22 ldr r7, [pc, #136] ; (11e7c <basic_init+0x67c>)
11df4: 2229 movs r2, #41 ; 0x29
11df6: 21b6 movs r1, #182 ; 0xb6
11df8: 3008 adds r0, #8
11dfa: 47b8 blx r7
style_init_reset(&styles->btn);
11dfc: 6820 ldr r0, [r4, #0]
11dfe: 4b20 ldr r3, [pc, #128] ; (11e80 <basic_init+0x680>)
11e00: 3010 adds r0, #16
11e02: 4798 blx r3
lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
11e04: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11e06: f647 72ff movw r2, #32767 ; 0x7fff
11e0a: 2101 movs r1, #1
11e0c: 3010 adds r0, #16
11e0e: 47b8 blx r7
lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER);
11e10: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11e12: 22ff movs r2, #255 ; 0xff
11e14: 3010 adds r0, #16
11e16: 212c movs r1, #44 ; 0x2c
11e18: 47d8 blx fp
lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN);
11e1a: 6823 ldr r3, [r4, #0]
11e1c: f8cd b004 str.w fp, [sp, #4]
11e20: f103 0a10 add.w sl, r3, #16
11e24: 6a23 ldr r3, [r4, #32]
11e26: f013 0f02 tst.w r3, #2
11e2a: bf0c ite eq
11e2c: 480c ldreq r0, [pc, #48] ; (11e60 <basic_init+0x660>)
11e2e: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000
11e32: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11e34: 2129 movs r1, #41 ; 0x29
11e36: 4602 mov r2, r0
11e38: 4650 mov r0, sl
11e3a: e029 b.n 11e90 <basic_init+0x690>
11e3c: 000057d5 .word 0x000057d5
11e40: 00d4d7d9 .word 0x00d4d7d9
11e44: 0045494d .word 0x0045494d
11e48: 00dfe7ed .word 0x00dfe7ed
11e4c: 00404040 .word 0x00404040
11e50: 0031404f .word 0x0031404f
11e54: 00a5a8ad .word 0x00a5a8ad
11e58: 00eeeeee .word 0x00eeeeee
11e5c: 00494f57 .word 0x00494f57
11e60: 00586273 .word 0x00586273
11e64: 003b3e42 .word 0x003b3e42
11e68: 005f656e .word 0x005f656e
11e6c: 00010efd .word 0x00010efd
11e70: 2000c7d4 .word 0x2000c7d4
11e74: 00d6dde3 .word 0x00d6dde3
11e78: 00005945 .word 0x00005945
11e7c: 00005875 .word 0x00005875
11e80: 00010b1d .word 0x00010b1d
11e84: 0000e3d7 .word 0x0000e3d7
11e88: 00010351 .word 0x00010351
11e8c: 00005a15 .word 0x00005a15
11e90: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
11e92: 6823 ldr r3, [r4, #0]
11e94: f103 0a10 add.w sl, r3, #16
11e98: 6a23 ldr r3, [r4, #32]
11e9a: 079a lsls r2, r3, #30
11e9c: f140 82ee bpl.w 1247c <basic_init+0xc7c>
11ea0: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11ea4: 47a8 blx r5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11ea6: 7b61 ldrb r1, [r4, #13]
11ea8: f04f 0be6 mov.w fp, #230 ; 0xe6
11eac: f3c0 22c4 ubfx r2, r0, #11, #5
11eb0: 2319 movs r3, #25
11eb2: fb0b f202 mul.w r2, fp, r2
11eb6: 08c9 lsrs r1, r1, #3
11eb8: fb13 2101 smlabb r1, r3, r1, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
11ebc: 89a2 ldrh r2, [r4, #12]
11ebe: f3c0 1e45 ubfx lr, r0, #5, #6
11ec2: fb0b fe0e mul.w lr, fp, lr
11ec6: f3c2 1245 ubfx r2, r2, #5, #6
11eca: fb13 e202 smlabb r2, r3, r2, lr
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11ece: f894 e00c ldrb.w lr, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11ed2: f248 0c81 movw ip, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11ed6: f000 001f and.w r0, r0, #31
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11eda: fb0c f101 mul.w r1, ip, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
11ede: fb0c f202 mul.w r2, ip, r2
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11ee2: f00e 0e1f and.w lr, lr, #31
11ee6: fb0b f000 mul.w r0, fp, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
11eea: f3c1 51c4 ubfx r1, r1, #23, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
11eee: f3c2 52c5 ubfx r2, r2, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
11ef2: fb13 030e smlabb r3, r3, lr, r0
11ef6: fb03 f30c mul.w r3, r3, ip
11efa: f3c3 53c4 ubfx r3, r3, #23, #5
11efe: ea43 1242 orr.w r2, r3, r2, lsl #5
11f02: ea42 22c1 orr.w r2, r2, r1, lsl #11
11f06: 4650 mov r0, sl
11f08: f241 0129 movw r1, #4137 ; 0x1029
11f0c: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK);
11f0e: 6820 ldr r0, [r4, #0]
11f10: 89a2 ldrh r2, [r4, #12]
11f12: f240 1129 movw r1, #297 ; 0x129
11f16: 3010 adds r0, #16
11f18: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR);
11f1a: 6820 ldr r0, [r4, #0]
11f1c: 214c movs r1, #76 ; 0x4c
11f1e: f100 0a10 add.w sl, r0, #16
11f22: 89a0 ldrh r0, [r4, #12]
11f24: 47c8 blx r9
11f26: f241 1129 movw r1, #4393 ; 0x1129
11f2a: 4602 mov r2, r0
11f2c: 4650 mov r0, sl
11f2e: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN);
11f30: 6823 ldr r3, [r4, #0]
11f32: f103 0910 add.w r9, r3, #16
11f36: 6a23 ldr r3, [r4, #32]
11f38: 079b lsls r3, r3, #30
11f3a: bf54 ite pl
11f3c: 48b2 ldrpl r0, [pc, #712] ; (12208 <basic_init+0xa08>)
11f3e: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
11f42: 47a8 blx r5
11f44: f242 0129 movw r1, #8233 ; 0x2029
11f48: 4602 mov r2, r0
11f4a: 4648 mov r0, r9
11f4c: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS);
11f4e: 6823 ldr r3, [r4, #0]
11f50: f103 0910 add.w r9, r3, #16
11f54: 6a23 ldr r3, [r4, #32]
11f56: 0798 lsls r0, r3, #30
11f58: bf4c ite mi
11f5a: f640 40cc movwmi r0, #3276 ; 0xccc
11f5e: f640 0088 movwpl r0, #2184 ; 0x888
11f62: 47c0 blx r8
11f64: f242 1129 movw r1, #8489 ; 0x2129
11f68: 4602 mov r2, r0
11f6a: 4648 mov r0, r9
11f6c: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER);
11f6e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11f70: 89a2 ldrh r2, [r4, #12]
11f72: 2139 movs r1, #57 ; 0x39
11f74: 3010 adds r0, #16
11f76: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR);
11f78: 6820 ldr r0, [r4, #0]
11f7a: 89a2 ldrh r2, [r4, #12]
11f7c: f241 0139 movw r1, #4153 ; 0x1039
11f80: 3010 adds r0, #16
11f82: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
11f84: 6823 ldr r3, [r4, #0]
11f86: f103 0910 add.w r9, r3, #16
11f8a: 6a23 ldr r3, [r4, #32]
11f8c: 0799 lsls r1, r3, #30
11f8e: f140 82a0 bpl.w 124d2 <basic_init+0xcd2>
11f92: f640 0088 movw r0, #2184 ; 0x888
11f96: 47c0 blx r8
11f98: 4602 mov r2, r0
11f9a: f242 0139 movw r1, #8249 ; 0x2039
11f9e: 4648 mov r0, r9
11fa0: 47b0 blx r6
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
11fa2: 6823 ldr r3, [r4, #0]
11fa4: f8df 8270 ldr.w r8, [pc, #624] ; 12218 <basic_init+0xa18>
11fa8: 2000 movs r0, #0
11faa: f103 0910 add.w r9, r3, #16
11fae: 47c0 blx r8
11fb0: 2877 cmp r0, #119 ; 0x77
11fb2: f340 8291 ble.w 124d8 <basic_init+0xcd8>
11fb6: 2000 movs r0, #0
11fb8: 47c0 blx r8
11fba: 2250 movs r2, #80 ; 0x50
11fbc: 3028 adds r0, #40 ; 0x28
11fbe: fb90 f2f2 sdiv r2, r0, r2
11fc2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
11fc4: 4648 mov r0, r9
11fc6: 2130 movs r1, #48 ; 0x30
11fc8: f8df 9250 ldr.w r9, [pc, #592] ; 1221c <basic_init+0xa1c>
11fcc: 47c8 blx r9
lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP);
11fce: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
11fd0: 4b8e ldr r3, [pc, #568] ; (1220c <basic_init+0xa0c>)
11fd2: 2200 movs r2, #0
11fd4: 3010 adds r0, #16
11fd6: f44f 719e mov.w r1, #316 ; 0x13c
11fda: 4798 blx r3
lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
11fdc: 6823 ldr r3, [r4, #0]
11fde: f103 0a10 add.w sl, r3, #16
11fe2: 6a23 ldr r3, [r4, #32]
11fe4: 079a lsls r2, r3, #30
11fe6: bf4c ite mi
11fe8: 4889 ldrmi r0, [pc, #548] ; (12210 <basic_init+0xa10>)
11fea: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11fee: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11ff0: f248 0189 movw r1, #32905 ; 0x8089
11ff4: 4602 mov r2, r0
11ff6: 4650 mov r0, sl
11ff8: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
11ffa: 6823 ldr r3, [r4, #0]
11ffc: f103 0a10 add.w sl, r3, #16
12000: 6a23 ldr r3, [r4, #32]
12002: 079b lsls r3, r3, #30
12004: bf4c ite mi
12006: 4882 ldrmi r0, [pc, #520] ; (12210 <basic_init+0xa10>)
12008: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
1200c: 47a8 blx r5
1200e: f249 0189 movw r1, #37001 ; 0x9089
12012: 4602 mov r2, r0
12014: 4650 mov r0, sl
12016: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
12018: 6820 ldr r0, [r4, #0]
1201a: f100 0a10 add.w sl, r0, #16
1201e: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12022: 47a8 blx r5
12024: f248 1189 movw r1, #33161 ; 0x8189
12028: 4602 mov r2, r0
1202a: 4650 mov r0, sl
1202c: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
1202e: 6820 ldr r0, [r4, #0]
12030: f100 0a10 add.w sl, r0, #16
12034: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12038: 47a8 blx r5
1203a: f249 1189 movw r1, #37257 ; 0x9189
1203e: 4602 mov r2, r0
12040: 4650 mov r0, sl
12042: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
12044: 6820 ldr r0, [r4, #0]
12046: f100 0a10 add.w sl, r0, #16
1204a: 4872 ldr r0, [pc, #456] ; (12214 <basic_init+0xa14>)
1204c: 47a8 blx r5
1204e: f24a 0189 movw r1, #41097 ; 0xa089
12052: 4602 mov r2, r0
12054: 4650 mov r0, sl
12056: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
12058: 6823 ldr r3, [r4, #0]
1205a: f103 0a10 add.w sl, r3, #16
1205e: 6a23 ldr r3, [r4, #32]
12060: 0798 lsls r0, r3, #30
12062: bf4c ite mi
12064: 486a ldrmi r0, [pc, #424] ; (12210 <basic_init+0xa10>)
12066: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
1206a: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
1206c: f248 01a9 movw r1, #32937 ; 0x80a9
12070: 4602 mov r2, r0
12072: 4650 mov r0, sl
12074: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
12076: 6823 ldr r3, [r4, #0]
12078: f103 0a10 add.w sl, r3, #16
1207c: 6a23 ldr r3, [r4, #32]
1207e: 0799 lsls r1, r3, #30
12080: bf4c ite mi
12082: 4863 ldrmi r0, [pc, #396] ; (12210 <basic_init+0xa10>)
12084: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
12088: 47a8 blx r5
1208a: f249 01a9 movw r1, #37033 ; 0x90a9
1208e: 4602 mov r2, r0
12090: 4650 mov r0, sl
12092: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff));
12094: 6820 ldr r0, [r4, #0]
12096: f100 0a10 add.w sl, r0, #16
1209a: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
1209e: 47a8 blx r5
120a0: f249 01a9 movw r1, #37033 ; 0x90a9
120a4: 4602 mov r2, r0
120a6: 4650 mov r0, sl
120a8: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
120aa: 6820 ldr r0, [r4, #0]
120ac: f100 0a10 add.w sl, r0, #16
120b0: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
120b4: 47a8 blx r5
120b6: f249 11a9 movw r1, #37289 ; 0x91a9
120ba: 4602 mov r2, r0
120bc: 4650 mov r0, sl
120be: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
120c0: 6820 ldr r0, [r4, #0]
120c2: f100 0a10 add.w sl, r0, #16
120c6: 4853 ldr r0, [pc, #332] ; (12214 <basic_init+0xa14>)
120c8: 47a8 blx r5
120ca: f24a 01a9 movw r1, #41129 ; 0xa0a9
120ce: 4602 mov r2, r0
120d0: 4650 mov r0, sl
120d2: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
120d4: 6823 ldr r3, [r4, #0]
120d6: f103 0a10 add.w sl, r3, #16
120da: 6a23 ldr r3, [r4, #32]
120dc: 079a lsls r2, r3, #30
120de: bf4c ite mi
120e0: 484b ldrmi r0, [pc, #300] ; (12210 <basic_init+0xa10>)
120e2: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
120e6: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
120e8: 2179 movs r1, #121 ; 0x79
120ea: 4602 mov r2, r0
120ec: 4650 mov r0, sl
120ee: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
120f0: 6823 ldr r3, [r4, #0]
120f2: f103 0a10 add.w sl, r3, #16
120f6: 6a23 ldr r3, [r4, #32]
120f8: 079b lsls r3, r3, #30
120fa: bf4c ite mi
120fc: 4844 ldrmi r0, [pc, #272] ; (12210 <basic_init+0xa10>)
120fe: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
12102: 47a8 blx r5
12104: f241 0179 movw r1, #4217 ; 0x1079
12108: 4602 mov r2, r0
1210a: 4650 mov r0, sl
1210c: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
1210e: 6820 ldr r0, [r4, #0]
12110: f100 0a10 add.w sl, r0, #16
12114: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12118: 47a8 blx r5
1211a: f240 1179 movw r1, #377 ; 0x179
1211e: 4602 mov r2, r0
12120: 4650 mov r0, sl
12122: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
12124: 6820 ldr r0, [r4, #0]
12126: f100 0a10 add.w sl, r0, #16
1212a: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
1212e: 47a8 blx r5
12130: f241 1179 movw r1, #4473 ; 0x1179
12134: 4602 mov r2, r0
12136: 4650 mov r0, sl
12138: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
1213a: 6820 ldr r0, [r4, #0]
1213c: f100 0a10 add.w sl, r0, #16
12140: 4834 ldr r0, [pc, #208] ; (12214 <basic_init+0xa14>)
12142: 47a8 blx r5
12144: f242 0179 movw r1, #8313 ; 0x2079
12148: 4602 mov r2, r0
1214a: 4650 mov r0, sl
1214c: 47b0 blx r6
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
1214e: 2000 movs r0, #0
12150: 6825 ldr r5, [r4, #0]
12152: 47c0 blx r8
12154: eb00 0080 add.w r0, r0, r0, lsl #2
12158: 00c0 lsls r0, r0, #3
1215a: 28ef cmp r0, #239 ; 0xef
1215c: f105 0510 add.w r5, r5, #16
12160: f340 81bc ble.w 124dc <basic_init+0xcdc>
12164: 2000 movs r0, #0
12166: 47c0 blx r8
12168: 2128 movs r1, #40 ; 0x28
1216a: 2350 movs r3, #80 ; 0x50
1216c: fb00 3001 mla r0, r0, r1, r3
12170: 22a0 movs r2, #160 ; 0xa0
12172: fb90 f2f2 sdiv r2, r0, r2
12176: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12178: 4628 mov r0, r5
1217a: 2112 movs r1, #18
1217c: 47c8 blx r9
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
1217e: 2000 movs r0, #0
12180: 6825 ldr r5, [r4, #0]
12182: 47c0 blx r8
12184: eb00 0080 add.w r0, r0, r0, lsl #2
12188: 00c0 lsls r0, r0, #3
1218a: 28ef cmp r0, #239 ; 0xef
1218c: f105 0510 add.w r5, r5, #16
12190: f340 81a6 ble.w 124e0 <basic_init+0xce0>
12194: 2000 movs r0, #0
12196: 47c0 blx r8
12198: 2128 movs r1, #40 ; 0x28
1219a: 2350 movs r3, #80 ; 0x50
1219c: fb00 3001 mla r0, r0, r1, r3
121a0: 22a0 movs r2, #160 ; 0xa0
121a2: fb90 f2f2 sdiv r2, r0, r2
121a6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
121a8: 4628 mov r0, r5
121aa: 2113 movs r1, #19
121ac: 47c8 blx r9
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
121ae: 2000 movs r0, #0
121b0: 6825 ldr r5, [r4, #0]
121b2: 47c0 blx r8
121b4: ebc0 1000 rsb r0, r0, r0, lsl #4
121b8: 28ef cmp r0, #239 ; 0xef
121ba: f105 0510 add.w r5, r5, #16
121be: f340 8191 ble.w 124e4 <basic_init+0xce4>
121c2: 2000 movs r0, #0
121c4: 47c0 blx r8
121c6: 210f movs r1, #15
121c8: 2350 movs r3, #80 ; 0x50
121ca: fb00 3001 mla r0, r0, r1, r3
121ce: 22a0 movs r2, #160 ; 0xa0
121d0: fb90 f2f2 sdiv r2, r0, r2
121d4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
121d6: 4628 mov r0, r5
121d8: 2110 movs r1, #16
121da: 47c8 blx r9
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
121dc: 2000 movs r0, #0
121de: 6825 ldr r5, [r4, #0]
121e0: 47c0 blx r8
121e2: ebc0 1000 rsb r0, r0, r0, lsl #4
121e6: 28ef cmp r0, #239 ; 0xef
121e8: f105 0510 add.w r5, r5, #16
121ec: f340 817c ble.w 124e8 <basic_init+0xce8>
121f0: 2000 movs r0, #0
121f2: 47c0 blx r8
121f4: 210f movs r1, #15
121f6: 2350 movs r3, #80 ; 0x50
121f8: fb00 3001 mla r0, r0, r1, r3
121fc: 22a0 movs r2, #160 ; 0xa0
121fe: fb90 f2f2 sdiv r2, r0, r2
12202: b212 sxth r2, r2
12204: e00c b.n 12220 <basic_init+0xa20>
12206: bf00 nop
12208: 00586273 .word 0x00586273
1220c: 00005a15 .word 0x00005a15
12210: 0031404f .word 0x0031404f
12214: 00888888 .word 0x00888888
12218: 0000d995 .word 0x0000d995
1221c: 00005875 .word 0x00005875
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12220: 4628 mov r0, r5
12222: 2111 movs r1, #17
12224: 47c8 blx r9
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
12226: 2000 movs r0, #0
12228: 6825 ldr r5, [r4, #0]
1222a: 47c0 blx r8
1222c: eb00 0080 add.w r0, r0, r0, lsl #2
12230: 0080 lsls r0, r0, #2
12232: 28ef cmp r0, #239 ; 0xef
12234: f105 0510 add.w r5, r5, #16
12238: f340 8158 ble.w 124ec <basic_init+0xcec>
1223c: 2000 movs r0, #0
1223e: 47c0 blx r8
12240: 2114 movs r1, #20
12242: 2350 movs r3, #80 ; 0x50
12244: fb00 3001 mla r0, r0, r1, r3
12248: 22a0 movs r2, #160 ; 0xa0
1224a: fb90 f2f2 sdiv r2, r0, r2
1224e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12250: 4628 mov r0, r5
12252: 2114 movs r1, #20
12254: 47b8 blx r7
lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3);
12256: 6820 ldr r0, [r4, #0]
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12258: 4dbb ldr r5, [pc, #748] ; (12548 <basic_init+0xd48>)
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
1225a: 2203 movs r2, #3
1225c: 2140 movs r1, #64 ; 0x40
1225e: 3010 adds r0, #16
12260: 47b8 blx r7
lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0);
12262: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
12264: 9b01 ldr r3, [sp, #4]
12266: 2200 movs r2, #0
12268: 214c movs r1, #76 ; 0x4c
1226a: 3010 adds r0, #16
1226c: 4798 blx r3
lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50);
1226e: 6820 ldr r0, [r4, #0]
12270: 9b01 ldr r3, [sp, #4]
12272: 227f movs r2, #127 ; 0x7f
12274: f44f 7113 mov.w r1, #588 ; 0x24c
12278: 3010 adds r0, #16
1227a: 4798 blx r3
lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary);
1227c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
1227e: 89a2 ldrh r2, [r4, #12]
12280: 2149 movs r1, #73 ; 0x49
12282: 3010 adds r0, #16
12284: 47b0 blx r6
lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary);
12286: 6820 ldr r0, [r4, #0]
12288: 89e2 ldrh r2, [r4, #14]
1228a: f240 4149 movw r1, #1097 ; 0x449
1228e: 3010 adds r0, #16
12290: 47b0 blx r6
lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
12292: 6820 ldr r0, [r4, #0]
style_init_reset(&styles->pad_inner);
12294: 4ead ldr r6, [pc, #692] ; (1254c <basic_init+0xd4c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
12296: 2296 movs r2, #150 ; 0x96
12298: 21b0 movs r1, #176 ; 0xb0
1229a: 3010 adds r0, #16
1229c: 47b8 blx r7
lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA);
1229e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
122a0: 223c movs r2, #60 ; 0x3c
122a2: 21b5 movs r1, #181 ; 0xb5
122a4: 3010 adds r0, #16
122a6: 47b8 blx r7
lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
122a8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
122aa: 2229 movs r2, #41 ; 0x29
122ac: 21b6 movs r1, #182 ; 0xb6
122ae: 3010 adds r0, #16
122b0: 47b8 blx r7
lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
122b2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
122b4: 224c movs r2, #76 ; 0x4c
122b6: 21b7 movs r1, #183 ; 0xb7
122b8: 3010 adds r0, #16
122ba: 47b8 blx r7
lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
122bc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
122be: 2296 movs r2, #150 ; 0x96
122c0: 21b1 movs r1, #177 ; 0xb1
122c2: 3010 adds r0, #16
122c4: 47b8 blx r7
lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0);
122c6: 6820 ldr r0, [r4, #0]
122c8: 2200 movs r2, #0
122ca: f241 01b1 movw r1, #4273 ; 0x10b1
122ce: 3010 adds r0, #16
122d0: 47b8 blx r7
style_init_reset(&styles->pad_inner);
122d2: 6820 ldr r0, [r4, #0]
122d4: 3014 adds r0, #20
122d6: 47b0 blx r6
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
122d8: 2000 movs r0, #0
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
122da: 6827 ldr r7, [r4, #0]
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
122dc: 47a8 blx r5
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
122de: 2832 cmp r0, #50 ; 0x32
122e0: f107 0714 add.w r7, r7, #20
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
122e4: f04f 0000 mov.w r0, #0
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
122e8: f200 810d bhi.w 12506 <basic_init+0xd06>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
122ec: 47c0 blx r8
122ee: eb00 0080 add.w r0, r0, r0, lsl #2
122f2: 0080 lsls r0, r0, #2
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
122f4: 28ef cmp r0, #239 ; 0xef
122f6: f300 80fb bgt.w 124f0 <basic_init+0xcf0>
122fa: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
122fc: 2114 movs r1, #20
122fe: 4638 mov r0, r7
12300: 47c8 blx r9
style_init_reset(&styles->pad_small);
12302: 6820 ldr r0, [r4, #0]
12304: 3018 adds r0, #24
12306: 47b0 blx r6
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
12308: 2000 movs r0, #0
1230a: 47a8 blx r5
1230c: 2832 cmp r0, #50 ; 0x32
1230e: f04f 0000 mov.w r0, #0
12312: f200 810e bhi.w 12532 <basic_init+0xd32>
12316: 47c0 blx r8
12318: eb00 0080 add.w r0, r0, r0, lsl #2
1231c: 0040 lsls r0, r0, #1
1231e: 28ef cmp r0, #239 ; 0xef
12320: f300 80fc bgt.w 1251c <basic_init+0xd1c>
12324: 2201 movs r2, #1
lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12326: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12328: 9201 str r2, [sp, #4]
1232a: 2112 movs r1, #18
1232c: 3018 adds r0, #24
1232e: 47c8 blx r9
lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12330: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12332: 9a01 ldr r2, [sp, #4]
12334: 2113 movs r1, #19
12336: 3018 adds r0, #24
12338: 47c8 blx r9
lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1233a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1233c: 9a01 ldr r2, [sp, #4]
1233e: 2110 movs r1, #16
12340: 3018 adds r0, #24
12342: 47c8 blx r9
lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12344: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12346: 9a01 ldr r2, [sp, #4]
12348: 2111 movs r1, #17
1234a: 3018 adds r0, #24
1234c: 47c8 blx r9
lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1234e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12350: 9a01 ldr r2, [sp, #4]
12352: 2114 movs r1, #20
12354: 3018 adds r0, #24
12356: 464b mov r3, r9
}
12358: b003 add sp, #12
1235a: ecbd 8b02 vpop {d8}
1235e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
12362: 4718 bx r3
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
12364: 2201 movs r2, #1
12366: f7ff ba9e b.w 118a6 <basic_init+0xa6>
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
1236a: 2201 movs r2, #1
1236c: f7ff badb b.w 11926 <basic_init+0x126>
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
12370: 2000 movs r0, #0
12372: 47b0 blx r6
12374: 210f movs r1, #15
12376: 2350 movs r3, #80 ; 0x50
12378: fb00 3001 mla r0, r0, r1, r3
1237c: 22a0 movs r2, #160 ; 0xa0
1237e: fb90 f2f2 sdiv r2, r0, r2
12382: fa1f fb82 uxth.w fp, r2
12386: f7ff bb35 b.w 119f4 <basic_init+0x1f4>
1238a: 47b0 blx r6
1238c: ebc0 1000 rsb r0, r0, r0, lsl #4
12390: 0040 lsls r0, r0, #1
12392: 28ef cmp r0, #239 ; 0xef
12394: f77f ab2c ble.w 119f0 <basic_init+0x1f0>
12398: 2000 movs r0, #0
1239a: 47b0 blx r6
1239c: 211e movs r1, #30
1239e: e7ea b.n 12376 <basic_init+0xb76>
123a0: 2001 movs r0, #1
123a2: f7ff bb33 b.w 11a0c <basic_init+0x20c>
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
123a6: 2000 movs r0, #0
123a8: 47b0 blx r6
123aa: 210f movs r1, #15
123ac: 2350 movs r3, #80 ; 0x50
123ae: fb00 3001 mla r0, r0, r1, r3
123b2: 22a0 movs r2, #160 ; 0xa0
123b4: fb90 f2f2 sdiv r2, r0, r2
123b8: fa1f fb82 uxth.w fp, r2
123bc: f7ff bb40 b.w 11a40 <basic_init+0x240>
123c0: 47b0 blx r6
123c2: ebc0 1000 rsb r0, r0, r0, lsl #4
123c6: 0040 lsls r0, r0, #1
123c8: 28ef cmp r0, #239 ; 0xef
123ca: f77f ab37 ble.w 11a3c <basic_init+0x23c>
123ce: 2000 movs r0, #0
123d0: 47b0 blx r6
123d2: 211e movs r1, #30
123d4: e7ea b.n 123ac <basic_init+0xbac>
123d6: 2001 movs r0, #1
123d8: f7ff bb3e b.w 11a58 <basic_init+0x258>
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
123dc: 2000 movs r0, #0
123de: 47b0 blx r6
123e0: 210f movs r1, #15
123e2: 2350 movs r3, #80 ; 0x50
123e4: fb00 3001 mla r0, r0, r1, r3
123e8: 22a0 movs r2, #160 ; 0xa0
123ea: fb90 f2f2 sdiv r2, r0, r2
123ee: fa1f fb82 uxth.w fp, r2
123f2: f7ff bb6d b.w 11ad0 <basic_init+0x2d0>
123f6: 47b0 blx r6
123f8: ebc0 1000 rsb r0, r0, r0, lsl #4
123fc: 0040 lsls r0, r0, #1
123fe: 28ef cmp r0, #239 ; 0xef
12400: f77f ab64 ble.w 11acc <basic_init+0x2cc>
12404: 2000 movs r0, #0
12406: 47b0 blx r6
12408: 211e movs r1, #30
1240a: e7ea b.n 123e2 <basic_init+0xbe2>
1240c: 2001 movs r0, #1
1240e: f7ff bb6b b.w 11ae8 <basic_init+0x2e8>
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
12412: 2000 movs r0, #0
12414: 47b0 blx r6
12416: 210f movs r1, #15
12418: 2350 movs r3, #80 ; 0x50
1241a: fb00 3001 mla r0, r0, r1, r3
1241e: 22a0 movs r2, #160 ; 0xa0
12420: fb90 f2f2 sdiv r2, r0, r2
12424: fa1f fb82 uxth.w fp, r2
12428: f7ff bb78 b.w 11b1c <basic_init+0x31c>
1242c: 47b0 blx r6
1242e: ebc0 1000 rsb r0, r0, r0, lsl #4
12432: 0040 lsls r0, r0, #1
12434: 28ef cmp r0, #239 ; 0xef
12436: f77f ab6f ble.w 11b18 <basic_init+0x318>
1243a: 2000 movs r0, #0
1243c: 47b0 blx r6
1243e: 211e movs r1, #30
12440: e7ea b.n 12418 <basic_init+0xc18>
12442: 2001 movs r0, #1
12444: f7ff bb76 b.w 11b34 <basic_init+0x334>
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
12448: 2000 movs r0, #0
1244a: 47b0 blx r6
1244c: 210f movs r1, #15
1244e: 2350 movs r3, #80 ; 0x50
12450: fb00 3001 mla r0, r0, r1, r3
12454: 22a0 movs r2, #160 ; 0xa0
12456: fb90 f2f2 sdiv r2, r0, r2
1245a: b212 sxth r2, r2
1245c: f7ff bb82 b.w 11b64 <basic_init+0x364>
12460: 47b0 blx r6
12462: ebc0 1000 rsb r0, r0, r0, lsl #4
12466: 0040 lsls r0, r0, #1
12468: 28ef cmp r0, #239 ; 0xef
1246a: f77f ab7a ble.w 11b62 <basic_init+0x362>
1246e: 2000 movs r0, #0
12470: 47b0 blx r6
12472: 211e movs r1, #30
12474: e7eb b.n 1244e <basic_init+0xc4e>
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
12476: 4836 ldr r0, [pc, #216] ; (12550 <basic_init+0xd50>)
12478: 47a8 blx r5
1247a: e421 b.n 11cc0 <basic_init+0x4c0>
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
1247c: 4835 ldr r0, [pc, #212] ; (12554 <basic_init+0xd54>)
1247e: 47a8 blx r5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
12480: 7b61 ldrb r1, [r4, #13]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
12482: f8b4 c00c ldrh.w ip, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
12486: 08ca lsrs r2, r1, #3
12488: f04f 0bb3 mov.w fp, #179 ; 0xb3
1248c: f3c0 21c4 ubfx r1, r0, #11, #5
12490: f04f 0e4c mov.w lr, #76 ; 0x4c
12494: fb0b f101 mul.w r1, fp, r1
12498: fb0e 1102 mla r1, lr, 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)));
1249c: f3c0 1245 ubfx r2, r0, #5, #6
124a0: f3cc 1c45 ubfx ip, ip, #5, #6
124a4: fb0b f202 mul.w r2, fp, r2
124a8: fb0e 220c mla r2, lr, ip, r2
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
124ac: f894 c00c ldrb.w ip, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
124b0: f248 0381 movw r3, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
124b4: f000 001f and.w r0, r0, #31
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
124b8: 4359 muls r1, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
124ba: 435a muls r2, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
124bc: f00c 0c1f and.w ip, ip, #31
124c0: fb0b f000 mul.w r0, fp, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
124c4: f3c1 51c4 ubfx r1, r1, #23, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
124c8: f3c2 52c5 ubfx r2, r2, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
124cc: fb0e 0c0c mla ip, lr, ip, r0
124d0: e511 b.n 11ef6 <basic_init+0x6f6>
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
124d2: 4821 ldr r0, [pc, #132] ; (12558 <basic_init+0xd58>)
124d4: 47a8 blx r5
124d6: e55f b.n 11f98 <basic_init+0x798>
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
124d8: 2201 movs r2, #1
124da: e573 b.n 11fc4 <basic_init+0x7c4>
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
124dc: 2201 movs r2, #1
124de: e64b b.n 12178 <basic_init+0x978>
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
124e0: 2201 movs r2, #1
124e2: e661 b.n 121a8 <basic_init+0x9a8>
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
124e4: 2201 movs r2, #1
124e6: e676 b.n 121d6 <basic_init+0x9d6>
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
124e8: 2201 movs r2, #1
124ea: e699 b.n 12220 <basic_init+0xa20>
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
124ec: 2201 movs r2, #1
124ee: e6af b.n 12250 <basic_init+0xa50>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
124f0: 2000 movs r0, #0
124f2: 47c0 blx r8
124f4: 2114 movs r1, #20
124f6: 2350 movs r3, #80 ; 0x50
124f8: fb00 3001 mla r0, r0, r1, r3
124fc: 22a0 movs r2, #160 ; 0xa0
124fe: fb90 f2f2 sdiv r2, r0, r2
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
12502: b212 sxth r2, r2
12504: e6fa b.n 122fc <basic_init+0xafc>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12506: 47c0 blx r8
12508: eb00 0080 add.w r0, r0, r0, lsl #2
1250c: 00c0 lsls r0, r0, #3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
1250e: 28ef cmp r0, #239 ; 0xef
12510: f77f aef3 ble.w 122fa <basic_init+0xafa>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12514: 2000 movs r0, #0
12516: 47c0 blx r8
12518: 2128 movs r1, #40 ; 0x28
1251a: e7ec b.n 124f6 <basic_init+0xcf6>
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
1251c: 2000 movs r0, #0
1251e: 47c0 blx r8
12520: 210a movs r1, #10
12522: 2350 movs r3, #80 ; 0x50
12524: fb00 3001 mla r0, r0, r1, r3
12528: 22a0 movs r2, #160 ; 0xa0
1252a: fb90 f2f2 sdiv r2, r0, r2
1252e: b212 sxth r2, r2
12530: e6f9 b.n 12326 <basic_init+0xb26>
12532: 47c0 blx r8
12534: eb00 0080 add.w r0, r0, r0, lsl #2
12538: 0080 lsls r0, r0, #2
1253a: 28ef cmp r0, #239 ; 0xef
1253c: f77f aef2 ble.w 12324 <basic_init+0xb24>
12540: 2000 movs r0, #0
12542: 47c0 blx r8
12544: 2114 movs r1, #20
12546: e7ec b.n 12522 <basic_init+0xd22>
12548: 0000d9ad .word 0x0000d9ad
1254c: 00010b1d .word 0x00010b1d
12550: 005f656e .word 0x005f656e
12554: 00586273 .word 0x00586273
12558: 00404040 .word 0x00404040
0001255c <lv_theme_material_init>:
{
1255c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(!inited) {
12560: 4cb3 ldr r4, [pc, #716] ; (12830 <lv_theme_material_init+0x2d4>)
{
12562: ed2d 8b02 vpush {d8}
12566: 461e mov r6, r3
if(!inited) {
12568: 7923 ldrb r3, [r4, #4]
{
1256a: b083 sub sp, #12
1256c: 4680 mov r8, r0
1256e: 460f mov r7, r1
12570: 4615 mov r5, r2
if(!inited) {
12572: b92b cbnz r3, 12580 <lv_theme_material_init+0x24>
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
12574: 4baf ldr r3, [pc, #700] ; (12834 <lv_theme_material_init+0x2d8>)
12576: 20bc movs r0, #188 ; 0xbc
12578: 4798 blx r3
1257a: 4baf ldr r3, [pc, #700] ; (12838 <lv_theme_material_init+0x2dc>)
styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles);
1257c: 6020 str r0, [r4, #0]
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
1257e: 6018 str r0, [r3, #0]
theme.font_normal = font_normal;
12580: 9b0e ldr r3, [sp, #56] ; 0x38
12582: 6163 str r3, [r4, #20]
theme.font_subtitle = font_subtitle;
12584: 9b0f ldr r3, [sp, #60] ; 0x3c
12586: 61a3 str r3, [r4, #24]
theme.font_title = font_title;
12588: 9b10 ldr r3, [sp, #64] ; 0x40
theme.color_secondary = color_secondary;
1258a: 81e7 strh r7, [r4, #14]
theme.flags = flags;
1258c: e9c4 3507 strd r3, r5, [r4, #28]
basic_init();
12590: 4baa ldr r3, [pc, #680] ; (1283c <lv_theme_material_init+0x2e0>)
theme.font_small = font_small;
12592: 6126 str r6, [r4, #16]
theme.color_primary = color_primary;
12594: f8a4 800c strh.w r8, [r4, #12]
basic_init();
12598: 4798 blx r3
bar_init();
1259a: 4ba9 ldr r3, [pc, #676] ; (12840 <lv_theme_material_init+0x2e4>)
style_init_reset(&styles->arc_indic);
1259c: f8df 92d8 ldr.w r9, [pc, #728] ; 12878 <lv_theme_material_init+0x31c>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
125a0: 4fa8 ldr r7, [pc, #672] ; (12844 <lv_theme_material_init+0x2e8>)
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
125a2: 4da9 ldr r5, [pc, #676] ; (12848 <lv_theme_material_init+0x2ec>)
bar_init();
125a4: 4798 blx r3
led_init();
125a6: 4ba9 ldr r3, [pc, #676] ; (1284c <lv_theme_material_init+0x2f0>)
125a8: 4798 blx r3
slider_init();
125aa: 4ba9 ldr r3, [pc, #676] ; (12850 <lv_theme_material_init+0x2f4>)
125ac: 4798 blx r3
switch_init();
125ae: 4ba9 ldr r3, [pc, #676] ; (12854 <lv_theme_material_init+0x2f8>)
125b0: 4798 blx r3
linemeter_init();
125b2: 4ba9 ldr r3, [pc, #676] ; (12858 <lv_theme_material_init+0x2fc>)
125b4: 4798 blx r3
gauge_init();
125b6: 4ba9 ldr r3, [pc, #676] ; (1285c <lv_theme_material_init+0x300>)
125b8: 4798 blx r3
style_init_reset(&styles->arc_indic);
125ba: 6820 ldr r0, [r4, #0]
125bc: 301c adds r0, #28
125be: 47c8 blx r9
lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary);
125c0: 6820 ldr r0, [r4, #0]
125c2: 89a2 ldrh r2, [r4, #12]
125c4: 2199 movs r1, #153 ; 0x99
125c6: 301c adds r0, #28
125c8: 47b8 blx r7
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
125ca: 2000 movs r0, #0
125cc: 6826 ldr r6, [r4, #0]
125ce: 47a8 blx r5
125d0: eb00 0080 add.w r0, r0, r0, lsl #2
125d4: eb00 0080 add.w r0, r0, r0, lsl #2
125d8: 28ef cmp r0, #239 ; 0xef
125da: f106 061c add.w r6, r6, #28
125de: f341 8254 ble.w 13a8a <lv_theme_material_init+0x152e>
125e2: 2000 movs r0, #0
125e4: 47a8 blx r5
125e6: 2119 movs r1, #25
125e8: 2350 movs r3, #80 ; 0x50
125ea: fb00 3001 mla r0, r0, r1, r3
125ee: 22a0 movs r2, #160 ; 0xa0
125f0: fb90 f2f2 sdiv r2, r0, r2
125f4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
125f6: 4630 mov r0, r6
125f8: 2190 movs r1, #144 ; 0x90
125fa: 4e99 ldr r6, [pc, #612] ; (12860 <lv_theme_material_init+0x304>)
125fc: f8df a27c ldr.w sl, [pc, #636] ; 1287c <lv_theme_material_init+0x320>
12600: 47b0 blx r6
lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true);
12602: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
12604: 2201 movs r2, #1
12606: 2194 movs r1, #148 ; 0x94
12608: 301c adds r0, #28
1260a: 47b0 blx r6
style_init_reset(&styles->arc_bg);
1260c: 6820 ldr r0, [r4, #0]
1260e: 3020 adds r0, #32
12610: 47c8 blx r9
lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
12612: 6823 ldr r3, [r4, #0]
12614: f103 0820 add.w r8, r3, #32
12618: 6a23 ldr r3, [r4, #32]
1261a: f013 0f02 tst.w r3, #2
1261e: bf14 ite ne
12620: 4890 ldrne r0, [pc, #576] ; (12864 <lv_theme_material_init+0x308>)
12622: 4891 ldreq r0, [pc, #580] ; (12868 <lv_theme_material_init+0x30c>)
12624: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
12626: 2199 movs r1, #153 ; 0x99
12628: 4602 mov r2, r0
1262a: 4640 mov r0, r8
1262c: 47b8 blx r7
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
1262e: 6823 ldr r3, [r4, #0]
12630: 2000 movs r0, #0
12632: f103 0820 add.w r8, r3, #32
12636: 47a8 blx r5
12638: eb00 0080 add.w r0, r0, r0, lsl #2
1263c: eb00 0080 add.w r0, r0, r0, lsl #2
12640: 28ef cmp r0, #239 ; 0xef
12642: f341 8225 ble.w 13a90 <lv_theme_material_init+0x1534>
12646: 2000 movs r0, #0
12648: 47a8 blx r5
1264a: 2119 movs r1, #25
1264c: 2350 movs r3, #80 ; 0x50
1264e: fb00 3001 mla r0, r0, r1, r3
12652: 22a0 movs r2, #160 ; 0xa0
12654: fb90 f2f2 sdiv r2, r0, r2
12658: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1265a: 4640 mov r0, r8
1265c: 2190 movs r1, #144 ; 0x90
1265e: 47b0 blx r6
lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true);
12660: 6820 ldr r0, [r4, #0]
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
12662: f8df 821c ldr.w r8, [pc, #540] ; 12880 <lv_theme_material_init+0x324>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
12666: 2201 movs r2, #1
12668: 2194 movs r1, #148 ; 0x94
1266a: 3020 adds r0, #32
1266c: 47b0 blx r6
chart_init();
1266e: 4b7f ldr r3, [pc, #508] ; (1286c <lv_theme_material_init+0x310>)
12670: 4798 blx r3
style_init_reset(&styles->calendar_header);
12672: 6820 ldr r0, [r4, #0]
12674: 3030 adds r0, #48 ; 0x30
12676: 47c8 blx r9
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
12678: 6823 ldr r3, [r4, #0]
1267a: 2000 movs r0, #0
1267c: f103 0b30 add.w fp, r3, #48 ; 0x30
12680: 47c0 blx r8
12682: 2801 cmp r0, #1
12684: f04f 0000 mov.w r0, #0
12688: f201 8211 bhi.w 13aae <lv_theme_material_init+0x1552>
1268c: 47a8 blx r5
1268e: ebc0 1000 rsb r0, r0, r0, lsl #4
12692: 28ef cmp r0, #239 ; 0xef
12694: f301 81ff bgt.w 13a96 <lv_theme_material_init+0x153a>
12698: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1269a: 4658 mov r0, fp
1269c: 2110 movs r1, #16
1269e: 47b0 blx r6
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
126a0: 6823 ldr r3, [r4, #0]
126a2: 2000 movs r0, #0
126a4: f103 0b30 add.w fp, r3, #48 ; 0x30
126a8: 47c0 blx r8
126aa: 2801 cmp r0, #1
126ac: f04f 0000 mov.w r0, #0
126b0: f201 8214 bhi.w 13adc <lv_theme_material_init+0x1580>
126b4: 47a8 blx r5
126b6: ebc0 1000 rsb r0, r0, r0, lsl #4
126ba: 28ef cmp r0, #239 ; 0xef
126bc: f301 8202 bgt.w 13ac4 <lv_theme_material_init+0x1568>
126c0: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
126c2: 4658 mov r0, fp
126c4: 2112 movs r1, #18
126c6: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
126c8: 6823 ldr r3, [r4, #0]
126ca: 2000 movs r0, #0
126cc: f103 0b30 add.w fp, r3, #48 ; 0x30
126d0: 47c0 blx r8
126d2: 2801 cmp r0, #1
126d4: f04f 0000 mov.w r0, #0
126d8: f201 8217 bhi.w 13b0a <lv_theme_material_init+0x15ae>
126dc: 47a8 blx r5
126de: ebc0 1000 rsb r0, r0, r0, lsl #4
126e2: 28ef cmp r0, #239 ; 0xef
126e4: f301 8205 bgt.w 13af2 <lv_theme_material_init+0x1596>
126e8: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
126ea: 4658 mov r0, fp
126ec: 2113 movs r1, #19
126ee: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
126f0: 6823 ldr r3, [r4, #0]
126f2: 2000 movs r0, #0
126f4: f103 0b30 add.w fp, r3, #48 ; 0x30
126f8: 47c0 blx r8
126fa: 2801 cmp r0, #1
126fc: f04f 0000 mov.w r0, #0
12700: f201 821a bhi.w 13b38 <lv_theme_material_init+0x15dc>
12704: 47a8 blx r5
12706: ebc0 1000 rsb r0, r0, r0, lsl #4
1270a: 28ef cmp r0, #239 ; 0xef
1270c: f301 8208 bgt.w 13b20 <lv_theme_material_init+0x15c4>
12710: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12712: 4658 mov r0, fp
12714: 2111 movs r1, #17
12716: 47b0 blx r6
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
12718: 6a22 ldr r2, [r4, #32]
1271a: 6823 ldr r3, [r4, #0]
1271c: f8df b164 ldr.w fp, [pc, #356] ; 12884 <lv_theme_material_init+0x328>
12720: f012 0f02 tst.w r2, #2
12724: f103 0330 add.w r3, r3, #48 ; 0x30
12728: f001 8211 beq.w 13b4e <lv_theme_material_init+0x15f2>
1272c: 4850 ldr r0, [pc, #320] ; (12870 <lv_theme_material_init+0x314>)
1272e: 9301 str r3, [sp, #4]
12730: 47d0 blx sl
12732: 9b01 ldr r3, [sp, #4]
12734: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
12736: 4618 mov r0, r3
12738: f249 0189 movw r1, #37001 ; 0x9089
1273c: 47b8 blx r7
style_init_reset(&styles->calendar_daynames);
1273e: 6820 ldr r0, [r4, #0]
12740: 3034 adds r0, #52 ; 0x34
12742: 47c8 blx r9
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
12744: 6823 ldr r3, [r4, #0]
12746: 3334 adds r3, #52 ; 0x34
12748: ee07 3a90 vmov s15, r3
1274c: 6a23 ldr r3, [r4, #32]
1274e: 0798 lsls r0, r3, #30
12750: f141 8201 bpl.w 13b56 <lv_theme_material_init+0x15fa>
12754: 4847 ldr r0, [pc, #284] ; (12874 <lv_theme_material_init+0x318>)
12756: 47d0 blx sl
12758: 4602 mov r2, r0
1275a: f248 0189 movw r1, #32905 ; 0x8089
1275e: ee17 0a90 vmov r0, s15
12762: 47b8 blx r7
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
12764: 6823 ldr r3, [r4, #0]
12766: 2000 movs r0, #0
12768: 3334 adds r3, #52 ; 0x34
1276a: ee08 3a10 vmov s16, r3
1276e: 47c0 blx r8
12770: 2801 cmp r0, #1
12772: f04f 0000 mov.w r0, #0
12776: f201 8200 bhi.w 13b7a <lv_theme_material_init+0x161e>
1277a: 47a8 blx r5
1277c: ebc0 1000 rsb r0, r0, r0, lsl #4
12780: 28ef cmp r0, #239 ; 0xef
12782: f301 81ee bgt.w 13b62 <lv_theme_material_init+0x1606>
12786: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12788: ee18 0a10 vmov r0, s16
1278c: 2112 movs r1, #18
1278e: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
12790: 6823 ldr r3, [r4, #0]
12792: 2000 movs r0, #0
12794: 3334 adds r3, #52 ; 0x34
12796: ee08 3a10 vmov s16, r3
1279a: 47c0 blx r8
1279c: 2801 cmp r0, #1
1279e: f04f 0000 mov.w r0, #0
127a2: f201 8201 bhi.w 13ba8 <lv_theme_material_init+0x164c>
127a6: 47a8 blx r5
127a8: ebc0 1000 rsb r0, r0, r0, lsl #4
127ac: 28ef cmp r0, #239 ; 0xef
127ae: f301 81ef bgt.w 13b90 <lv_theme_material_init+0x1634>
127b2: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
127b4: ee18 0a10 vmov r0, s16
127b8: 2113 movs r1, #19
127ba: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
127bc: 6823 ldr r3, [r4, #0]
127be: 2000 movs r0, #0
127c0: 3334 adds r3, #52 ; 0x34
127c2: ee08 3a10 vmov s16, r3
127c6: 47c0 blx r8
127c8: 2801 cmp r0, #1
127ca: f04f 0000 mov.w r0, #0
127ce: f201 8202 bhi.w 13bd6 <lv_theme_material_init+0x167a>
127d2: 47a8 blx r5
127d4: ebc0 1000 rsb r0, r0, r0, lsl #4
127d8: 28ef cmp r0, #239 ; 0xef
127da: f301 81f0 bgt.w 13bbe <lv_theme_material_init+0x1662>
127de: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
127e0: ee18 0a10 vmov r0, s16
127e4: 2111 movs r1, #17
127e6: 47b0 blx r6
style_init_reset(&styles->calendar_date_nums);
127e8: 6820 ldr r0, [r4, #0]
127ea: 302c adds r0, #44 ; 0x2c
127ec: 47c8 blx r9
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
127ee: 6823 ldr r3, [r4, #0]
127f0: 2000 movs r0, #0
127f2: 332c adds r3, #44 ; 0x2c
127f4: ee08 3a10 vmov s16, r3
127f8: 47a8 blx r5
127fa: 283b cmp r0, #59 ; 0x3b
127fc: f341 81f6 ble.w 13bec <lv_theme_material_init+0x1690>
12800: 2000 movs r0, #0
12802: 47a8 blx r5
12804: 2228 movs r2, #40 ; 0x28
12806: 3014 adds r0, #20
12808: fb90 f2f2 sdiv r2, r0, r2
1280c: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1280e: 2101 movs r1, #1
12810: ee18 0a10 vmov r0, s16
12814: 47b0 blx r6
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
12816: 6a22 ldr r2, [r4, #32]
12818: 6823 ldr r3, [r4, #0]
1281a: 0791 lsls r1, r2, #30
1281c: f103 032c add.w r3, r3, #44 ; 0x2c
12820: f141 81e7 bpl.w 13bf2 <lv_theme_material_init+0x1696>
12824: 4813 ldr r0, [pc, #76] ; (12874 <lv_theme_material_init+0x318>)
12826: 9301 str r3, [sp, #4]
12828: 47d0 blx sl
1282a: 9b01 ldr r3, [sp, #4]
1282c: 4602 mov r2, r0
1282e: e02b b.n 12888 <lv_theme_material_init+0x32c>
12830: 2000c7d4 .word 0x2000c7d4
12834: 0000ea75 .word 0x0000ea75
12838: 20008774 .word 0x20008774
1283c: 00011801 .word 0x00011801
12840: 00010f15 .word 0x00010f15
12844: 00005945 .word 0x00005945
12848: 0000d995 .word 0x0000d995
1284c: 00010e11 .word 0x00010e11
12850: 00011059 .word 0x00011059
12854: 00010b39 .word 0x00010b39
12858: 00010c45 .word 0x00010c45
1285c: 00011279 .word 0x00011279
12860: 00005875 .word 0x00005875
12864: 00d4d7d9 .word 0x00d4d7d9
12868: 0045494d .word 0x0045494d
1286c: 00011635 .word 0x00011635
12870: 00888888 .word 0x00888888
12874: 0031404f .word 0x0031404f
12878: 00010b1d .word 0x00010b1d
1287c: 00010efd .word 0x00010efd
12880: 0000d9ad .word 0x0000d9ad
12884: 000242b6 .word 0x000242b6
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
12888: 4618 mov r0, r3
1288a: f248 1189 movw r1, #33161 ; 0x8189
1288e: 47b8 blx r7
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40);
12890: 6a23 ldr r3, [r4, #32]
12892: 6820 ldr r0, [r4, #0]
12894: f013 0f02 tst.w r3, #2
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12898: bf14 ite ne
1289a: 2233 movne r2, #51 ; 0x33
1289c: 2266 moveq r2, #102 ; 0x66
1289e: 4bc0 ldr r3, [pc, #768] ; (12ba0 <lv_theme_material_init+0x644>)
128a0: f44f 7196 mov.w r1, #300 ; 0x12c
128a4: 302c adds r0, #44 ; 0x2c
128a6: 4798 blx r3
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20);
128a8: 6820 ldr r0, [r4, #0]
128aa: 4bbd ldr r3, [pc, #756] ; (12ba0 <lv_theme_material_init+0x644>)
128ac: 2233 movs r2, #51 ; 0x33
128ae: f241 012c movw r1, #4140 ; 0x102c
128b2: 302c adds r0, #44 ; 0x2c
128b4: 4798 blx r3
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER);
128b6: 6820 ldr r0, [r4, #0]
128b8: 4bb9 ldr r3, [pc, #740] ; (12ba0 <lv_theme_material_init+0x644>)
128ba: 22ff movs r2, #255 ; 0xff
128bc: f44f 710b mov.w r1, #556 ; 0x22c
128c0: 302c adds r0, #44 ; 0x2c
128c2: 4798 blx r3
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE);
128c4: f8bb 3000 ldrh.w r3, [fp]
128c8: 6820 ldr r0, [r4, #0]
128ca: f8ad 3004 strh.w r3, [sp, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
128ce: b29a uxth r2, r3
128d0: f248 2189 movw r1, #33417 ; 0x8289
128d4: 302c adds r0, #44 ; 0x2c
128d6: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary);
128d8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
128da: 89a2 ldrh r2, [r4, #12]
128dc: f240 2129 movw r1, #553 ; 0x229
128e0: 302c adds r0, #44 ; 0x2c
128e2: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
128e4: 6a22 ldr r2, [r4, #32]
128e6: 6823 ldr r3, [r4, #0]
128e8: 0792 lsls r2, r2, #30
128ea: f103 032c add.w r3, r3, #44 ; 0x2c
128ee: f141 8184 bpl.w 13bfa <lv_theme_material_init+0x169e>
128f2: 48ac ldr r0, [pc, #688] ; (12ba4 <lv_theme_material_init+0x648>)
128f4: 9301 str r3, [sp, #4]
128f6: 47d0 blx sl
128f8: 9b01 ldr r3, [sp, #4]
128fa: 4602 mov r2, r0
128fc: 4618 mov r0, r3
128fe: 2129 movs r1, #41 ; 0x29
12900: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
12902: 6820 ldr r0, [r4, #0]
12904: 89a2 ldrh r2, [r4, #12]
12906: f240 1129 movw r1, #297 ; 0x129
1290a: 302c adds r0, #44 ; 0x2c
1290c: 47b8 blx r7
lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2);
1290e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12910: 2202 movs r2, #2
12912: f44f 7198 mov.w r1, #304 ; 0x130
12916: 302c adds r0, #44 ; 0x2c
12918: 47b0 blx r6
lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT);
1291a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
1291c: 2204 movs r2, #4
1291e: f240 1131 movw r1, #305 ; 0x131
12922: 302c adds r0, #44 ; 0x2c
12924: 47b0 blx r6
lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
12926: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
12928: 89a2 ldrh r2, [r4, #12]
1292a: f240 1139 movw r1, #313 ; 0x139
1292e: 302c adds r0, #44 ; 0x2c
12930: 47b8 blx r7
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
12932: 6823 ldr r3, [r4, #0]
12934: 2000 movs r0, #0
12936: 332c adds r3, #44 ; 0x2c
12938: ee08 3a10 vmov s16, r3
1293c: 47a8 blx r5
1293e: eb00 0040 add.w r0, r0, r0, lsl #1
12942: 28ef cmp r0, #239 ; 0xef
12944: f341 815d ble.w 13c02 <lv_theme_material_init+0x16a6>
12948: 2000 movs r0, #0
1294a: 47a8 blx r5
1294c: 2103 movs r1, #3
1294e: 2350 movs r3, #80 ; 0x50
12950: fb00 3001 mla r0, r0, r1, r3
12954: 22a0 movs r2, #160 ; 0xa0
12956: fb90 f2f2 sdiv r2, r0, r2
1295a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1295c: ee18 0a10 vmov r0, s16
12960: 2114 movs r1, #20
12962: 47b0 blx r6
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
12964: 6823 ldr r3, [r4, #0]
12966: 2000 movs r0, #0
12968: 332c adds r3, #44 ; 0x2c
1296a: ee08 3a10 vmov s16, r3
1296e: 47c0 blx r8
12970: 2801 cmp r0, #1
12972: f04f 0000 mov.w r0, #0
12976: f201 8153 bhi.w 13c20 <lv_theme_material_init+0x16c4>
1297a: 47a8 blx r5
1297c: ebc0 1000 rsb r0, r0, r0, lsl #4
12980: 28ef cmp r0, #239 ; 0xef
12982: f301 8141 bgt.w 13c08 <lv_theme_material_init+0x16ac>
12986: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12988: ee18 0a10 vmov r0, s16
1298c: 2112 movs r1, #18
1298e: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
12990: 6823 ldr r3, [r4, #0]
12992: 2000 movs r0, #0
12994: 332c adds r3, #44 ; 0x2c
12996: ee08 3a10 vmov s16, r3
1299a: 47c0 blx r8
1299c: 2801 cmp r0, #1
1299e: f04f 0000 mov.w r0, #0
129a2: f201 8154 bhi.w 13c4e <lv_theme_material_init+0x16f2>
129a6: 47a8 blx r5
129a8: ebc0 1000 rsb r0, r0, r0, lsl #4
129ac: 28ef cmp r0, #239 ; 0xef
129ae: f301 8142 bgt.w 13c36 <lv_theme_material_init+0x16da>
129b2: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
129b4: ee18 0a10 vmov r0, s16
129b8: 2113 movs r1, #19
129ba: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
129bc: 6823 ldr r3, [r4, #0]
129be: 2000 movs r0, #0
129c0: 332c adds r3, #44 ; 0x2c
129c2: ee08 3a10 vmov s16, r3
129c6: 47c0 blx r8
129c8: 2801 cmp r0, #1
129ca: f04f 0000 mov.w r0, #0
129ce: f201 8155 bhi.w 13c7c <lv_theme_material_init+0x1720>
129d2: 47a8 blx r5
129d4: ebc0 1000 rsb r0, r0, r0, lsl #4
129d8: 28ef cmp r0, #239 ; 0xef
129da: f301 8143 bgt.w 13c64 <lv_theme_material_init+0x1708>
129de: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
129e0: 2111 movs r1, #17
129e2: ee18 0a10 vmov r0, s16
129e6: 47b0 blx r6
style_init_reset(&styles->cpicker_bg);
129e8: 6820 ldr r0, [r4, #0]
129ea: 3038 adds r0, #56 ; 0x38
129ec: 47c8 blx r9
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
129ee: 6823 ldr r3, [r4, #0]
129f0: 2000 movs r0, #0
129f2: f103 0838 add.w r8, r3, #56 ; 0x38
129f6: 47a8 blx r5
129f8: ebc0 1000 rsb r0, r0, r0, lsl #4
129fc: 0040 lsls r0, r0, #1
129fe: 28ef cmp r0, #239 ; 0xef
12a00: f341 8147 ble.w 13c92 <lv_theme_material_init+0x1736>
12a04: 2000 movs r0, #0
12a06: 47a8 blx r5
12a08: 211e movs r1, #30
12a0a: 2350 movs r3, #80 ; 0x50
12a0c: fb00 3001 mla r0, r0, r1, r3
12a10: 22a0 movs r2, #160 ; 0xa0
12a12: fb90 f2f2 sdiv r2, r0, r2
12a16: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
12a18: 4640 mov r0, r8
12a1a: 21c0 movs r1, #192 ; 0xc0
12a1c: 47b0 blx r6
lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
12a1e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12a20: 4b5f ldr r3, [pc, #380] ; (12ba0 <lv_theme_material_init+0x644>)
12a22: 3038 adds r0, #56 ; 0x38
12a24: 22ff movs r2, #255 ; 0xff
12a26: 212c movs r1, #44 ; 0x2c
12a28: 4798 blx r3
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
12a2a: 6823 ldr r3, [r4, #0]
12a2c: f103 0838 add.w r8, r3, #56 ; 0x38
12a30: 6a23 ldr r3, [r4, #32]
12a32: 0798 lsls r0, r3, #30
12a34: bf4c ite mi
12a36: 485c ldrmi r0, [pc, #368] ; (12ba8 <lv_theme_material_init+0x64c>)
12a38: 485c ldrpl r0, [pc, #368] ; (12bac <lv_theme_material_init+0x650>)
12a3a: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12a3c: 2129 movs r1, #41 ; 0x29
12a3e: 4602 mov r2, r0
12a40: 4640 mov r0, r8
12a42: 47b8 blx r7
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
12a44: 6823 ldr r3, [r4, #0]
12a46: 2000 movs r0, #0
12a48: f103 0838 add.w r8, r3, #56 ; 0x38
12a4c: 47a8 blx r5
12a4e: eb00 0080 add.w r0, r0, r0, lsl #2
12a52: 0080 lsls r0, r0, #2
12a54: 28ef cmp r0, #239 ; 0xef
12a56: f341 811f ble.w 13c98 <lv_theme_material_init+0x173c>
12a5a: 2000 movs r0, #0
12a5c: 47a8 blx r5
12a5e: 2114 movs r1, #20
12a60: 2350 movs r3, #80 ; 0x50
12a62: fb00 3001 mla r0, r0, r1, r3
12a66: 22a0 movs r2, #160 ; 0xa0
12a68: fb90 f2f2 sdiv r2, r0, r2
12a6c: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12a6e: 4640 mov r0, r8
12a70: 2114 movs r1, #20
12a72: 47b0 blx r6
lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12a74: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12a76: f8df 8128 ldr.w r8, [pc, #296] ; 12ba0 <lv_theme_material_init+0x644>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12a7a: f647 72ff movw r2, #32767 ; 0x7fff
12a7e: 2101 movs r1, #1
12a80: 3038 adds r0, #56 ; 0x38
12a82: 47b0 blx r6
style_init_reset(&styles->cpicker_indic);
12a84: 6820 ldr r0, [r4, #0]
12a86: 303c adds r0, #60 ; 0x3c
12a88: 47c8 blx r9
lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12a8a: 6820 ldr r0, [r4, #0]
12a8c: f647 72ff movw r2, #32767 ; 0x7fff
12a90: 2101 movs r1, #1
12a92: 303c adds r0, #60 ; 0x3c
12a94: 47b0 blx r6
lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE);
12a96: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12a98: f8bb 2000 ldrh.w r2, [fp]
12a9c: 2129 movs r1, #41 ; 0x29
12a9e: 303c adds r0, #60 ; 0x3c
12aa0: 47b8 blx r7
lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
12aa2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12aa4: 22ff movs r2, #255 ; 0xff
12aa6: 212c movs r1, #44 ; 0x2c
12aa8: 303c adds r0, #60 ; 0x3c
12aaa: 47c0 blx r8
lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2);
12aac: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12aae: 2202 movs r2, #2
12ab0: 2130 movs r1, #48 ; 0x30
12ab2: 303c adds r0, #60 ; 0x3c
12ab4: 47b0 blx r6
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY);
12ab6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
12ab8: f8bb 2002 ldrh.w r2, [fp, #2]
12abc: 2139 movs r1, #57 ; 0x39
12abe: 303c adds r0, #60 ; 0x3c
12ac0: 47b8 blx r7
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary);
12ac2: 6820 ldr r0, [r4, #0]
12ac4: 89a2 ldrh r2, [r4, #12]
12ac6: f240 2139 movw r1, #569 ; 0x239
12aca: 303c adds r0, #60 ; 0x3c
12acc: 47b8 blx r7
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary);
12ace: 6820 ldr r0, [r4, #0]
12ad0: 89e2 ldrh r2, [r4, #14]
12ad2: f240 4139 movw r1, #1081 ; 0x439
12ad6: 303c adds r0, #60 ; 0x3c
12ad8: 47b8 blx r7
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12ada: 6823 ldr r3, [r4, #0]
12adc: 2000 movs r0, #0
12ade: f103 0a3c add.w sl, r3, #60 ; 0x3c
12ae2: 47a8 blx r5
12ae4: eb00 0340 add.w r3, r0, r0, lsl #1
12ae8: eb00 0083 add.w r0, r0, r3, lsl #2
12aec: 28ef cmp r0, #239 ; 0xef
12aee: f341 80d6 ble.w 13c9e <lv_theme_material_init+0x1742>
12af2: 2000 movs r0, #0
12af4: 47a8 blx r5
12af6: 210d movs r1, #13
12af8: 2350 movs r3, #80 ; 0x50
12afa: fb00 3001 mla r0, r0, r1, r3
12afe: 22a0 movs r2, #160 ; 0xa0
12b00: fb90 f2f2 sdiv r2, r0, r2
12b04: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12b06: 4650 mov r0, sl
12b08: 2112 movs r1, #18
12b0a: 47b0 blx r6
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12b0c: 6823 ldr r3, [r4, #0]
12b0e: 2000 movs r0, #0
12b10: f103 0a3c add.w sl, r3, #60 ; 0x3c
12b14: 47a8 blx r5
12b16: eb00 0340 add.w r3, r0, r0, lsl #1
12b1a: eb00 0083 add.w r0, r0, r3, lsl #2
12b1e: 28ef cmp r0, #239 ; 0xef
12b20: f341 80c0 ble.w 13ca4 <lv_theme_material_init+0x1748>
12b24: 2000 movs r0, #0
12b26: 47a8 blx r5
12b28: 210d movs r1, #13
12b2a: 2350 movs r3, #80 ; 0x50
12b2c: fb00 3001 mla r0, r0, r1, r3
12b30: 22a0 movs r2, #160 ; 0xa0
12b32: fb90 f2f2 sdiv r2, r0, r2
12b36: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12b38: 4650 mov r0, sl
12b3a: 2113 movs r1, #19
12b3c: 47b0 blx r6
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12b3e: 6823 ldr r3, [r4, #0]
12b40: 2000 movs r0, #0
12b42: f103 0a3c add.w sl, r3, #60 ; 0x3c
12b46: 47a8 blx r5
12b48: eb00 0340 add.w r3, r0, r0, lsl #1
12b4c: eb00 0083 add.w r0, r0, r3, lsl #2
12b50: 28ef cmp r0, #239 ; 0xef
12b52: f341 80aa ble.w 13caa <lv_theme_material_init+0x174e>
12b56: 2000 movs r0, #0
12b58: 47a8 blx r5
12b5a: 210d movs r1, #13
12b5c: 2350 movs r3, #80 ; 0x50
12b5e: fb00 3001 mla r0, r0, r1, r3
12b62: 22a0 movs r2, #160 ; 0xa0
12b64: fb90 f2f2 sdiv r2, r0, r2
12b68: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12b6a: 4650 mov r0, sl
12b6c: 2110 movs r1, #16
12b6e: 47b0 blx r6
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12b70: 6823 ldr r3, [r4, #0]
12b72: 2000 movs r0, #0
12b74: f103 0a3c add.w sl, r3, #60 ; 0x3c
12b78: 47a8 blx r5
12b7a: eb00 0340 add.w r3, r0, r0, lsl #1
12b7e: eb00 0083 add.w r0, r0, r3, lsl #2
12b82: 28ef cmp r0, #239 ; 0xef
12b84: f341 8094 ble.w 13cb0 <lv_theme_material_init+0x1754>
12b88: 2000 movs r0, #0
12b8a: 47a8 blx r5
12b8c: 210d movs r1, #13
12b8e: 2350 movs r3, #80 ; 0x50
12b90: fb00 3001 mla r0, r0, r1, r3
12b94: 22a0 movs r2, #160 ; 0xa0
12b96: fb90 f2f2 sdiv r2, r0, r2
12b9a: b212 sxth r2, r2
12b9c: e008 b.n 12bb0 <lv_theme_material_init+0x654>
12b9e: bf00 nop
12ba0: 00005a15 .word 0x00005a15
12ba4: 00666666 .word 0x00666666
12ba8: 00eaeff3 .word 0x00eaeff3
12bac: 00444b5a .word 0x00444b5a
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12bb0: 2111 movs r1, #17
12bb2: 4650 mov r0, sl
12bb4: 47b0 blx r6
style_init_reset(&styles->cb_bg);
12bb6: 6820 ldr r0, [r4, #0]
12bb8: 304c adds r0, #76 ; 0x4c
12bba: 47c8 blx r9
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
12bbc: 6823 ldr r3, [r4, #0]
12bbe: 2000 movs r0, #0
12bc0: f103 094c add.w r9, r3, #76 ; 0x4c
12bc4: 47a8 blx r5
12bc6: 283b cmp r0, #59 ; 0x3b
12bc8: f341 8075 ble.w 13cb6 <lv_theme_material_init+0x175a>
12bcc: 2000 movs r0, #0
12bce: 47a8 blx r5
12bd0: 2228 movs r2, #40 ; 0x28
12bd2: 3014 adds r0, #20
12bd4: fb90 f2f2 sdiv r2, r0, r2
12bd8: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12bda: 4648 mov r0, r9
12bdc: 2101 movs r1, #1
12bde: 47b0 blx r6
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
12be0: 6823 ldr r3, [r4, #0]
12be2: 2000 movs r0, #0
12be4: f103 094c add.w r9, r3, #76 ; 0x4c
12be8: 47a8 blx r5
12bea: eb00 0080 add.w r0, r0, r0, lsl #2
12bee: 0040 lsls r0, r0, #1
12bf0: 28ef cmp r0, #239 ; 0xef
12bf2: f341 8063 ble.w 13cbc <lv_theme_material_init+0x1760>
12bf6: 2000 movs r0, #0
12bf8: 47a8 blx r5
12bfa: 210a movs r1, #10
12bfc: 2350 movs r3, #80 ; 0x50
12bfe: fb00 3001 mla r0, r0, r1, r3
12c02: 22a0 movs r2, #160 ; 0xa0
12c04: fb90 f2f2 sdiv r2, r0, r2
12c08: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12c0a: 2114 movs r1, #20
12c0c: 4648 mov r0, r9
12c0e: 47b0 blx r6
lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary);
12c10: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
12c12: 89a2 ldrh r2, [r4, #12]
12c14: 2149 movs r1, #73 ; 0x49
12c16: 304c adds r0, #76 ; 0x4c
12c18: 47b8 blx r7
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
12c1a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
12c1c: 214c movs r1, #76 ; 0x4c
12c1e: 4408 add r0, r1
12c20: 2200 movs r2, #0
12c22: 47c0 blx r8
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50);
12c24: 6820 ldr r0, [r4, #0]
12c26: 227f movs r2, #127 ; 0x7f
12c28: f44f 7113 mov.w r1, #588 ; 0x24c
12c2c: 304c adds r0, #76 ; 0x4c
12c2e: 47c0 blx r8
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
12c30: 2000 movs r0, #0
12c32: 6824 ldr r4, [r4, #0]
12c34: 47a8 blx r5
12c36: eb00 0040 add.w r0, r0, r0, lsl #1
12c3a: 28ef cmp r0, #239 ; 0xef
12c3c: f104 044c add.w r4, r4, #76 ; 0x4c
12c40: f341 803f ble.w 13cc2 <lv_theme_material_init+0x1766>
12c44: 2000 movs r0, #0
12c46: 47a8 blx r5
12c48: 2103 movs r1, #3
12c4a: 2350 movs r3, #80 ; 0x50
12c4c: fb00 3001 mla r0, r0, r1, r3
12c50: 22a0 movs r2, #160 ; 0xa0
12c52: fb90 f2f2 sdiv r2, r0, r2
12c56: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
12c58: 4620 mov r0, r4
12c5a: 2140 movs r1, #64 ; 0x40
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
12c5c: 4cbe ldr r4, [pc, #760] ; (12f58 <lv_theme_material_init+0x9fc>)
12c5e: 47b0 blx r6
12c60: 2000 movs r0, #0
12c62: 6827 ldr r7, [r4, #0]
12c64: 47a8 blx r5
12c66: eb00 0080 add.w r0, r0, r0, lsl #2
12c6a: 0040 lsls r0, r0, #1
12c6c: 28ef cmp r0, #239 ; 0xef
12c6e: f107 074c add.w r7, r7, #76 ; 0x4c
12c72: f341 8029 ble.w 13cc8 <lv_theme_material_init+0x176c>
12c76: 2000 movs r0, #0
12c78: 47a8 blx r5
12c7a: 210a movs r1, #10
12c7c: 2350 movs r3, #80 ; 0x50
12c7e: fb00 3001 mla r0, r0, r1, r3
12c82: 22a0 movs r2, #160 ; 0xa0
12c84: fb90 f2f2 sdiv r2, r0, r2
12c88: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
12c8a: 4638 mov r0, r7
12c8c: 2141 movs r1, #65 ; 0x41
12c8e: 47b0 blx r6
lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
12c90: 6820 ldr r0, [r4, #0]
style_init_reset(&styles->cb_bullet);
12c92: 4fb2 ldr r7, [pc, #712] ; (12f5c <lv_theme_material_init+0xa00>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
12c94: 2296 movs r2, #150 ; 0x96
12c96: 21b0 movs r1, #176 ; 0xb0
12c98: 304c adds r0, #76 ; 0x4c
12c9a: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
12c9c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
12c9e: 224c movs r2, #76 ; 0x4c
12ca0: 4410 add r0, r2
12ca2: 21b7 movs r1, #183 ; 0xb7
12ca4: 47b0 blx r6
style_init_reset(&styles->cb_bullet);
12ca6: 6820 ldr r0, [r4, #0]
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
12ca8: 4ead ldr r6, [pc, #692] ; (12f60 <lv_theme_material_init+0xa04>)
style_init_reset(&styles->cb_bullet);
12caa: 3050 adds r0, #80 ; 0x50
12cac: 47b8 blx r7
lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP);
12cae: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
12cb0: 2200 movs r2, #0
12cb2: f44f 7113 mov.w r1, #588 ; 0x24c
12cb6: 3050 adds r0, #80 ; 0x50
12cb8: 47c0 blx r8
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
12cba: 2000 movs r0, #0
12cbc: 6825 ldr r5, [r4, #0]
12cbe: 47b0 blx r6
12cc0: 283b cmp r0, #59 ; 0x3b
12cc2: f105 0550 add.w r5, r5, #80 ; 0x50
12cc6: 46ba mov sl, r7
12cc8: 46b1 mov r9, r6
12cca: f341 8013 ble.w 13cf4 <lv_theme_material_init+0x1798>
12cce: 2000 movs r0, #0
12cd0: 47b0 blx r6
12cd2: 2228 movs r2, #40 ; 0x28
12cd4: 3014 adds r0, #20
12cd6: fb90 f2f2 sdiv r2, r0, r2
12cda: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12cdc: 4628 mov r0, r5
12cde: 2101 movs r1, #1
12ce0: 4da0 ldr r5, [pc, #640] ; (12f64 <lv_theme_material_init+0xa08>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
12ce2: 4fa1 ldr r7, [pc, #644] ; (12f68 <lv_theme_material_init+0xa0c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
12ce4: 4ea1 ldr r6, [pc, #644] ; (12f6c <lv_theme_material_init+0xa10>)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12ce6: 47a8 blx r5
lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK);
12ce8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
12cea: 4aa1 ldr r2, [pc, #644] ; (12f70 <lv_theme_material_init+0xa14>)
12cec: f44f 71b7 mov.w r1, #366 ; 0x16e
12cf0: 3050 adds r0, #80 ; 0x50
12cf2: 47b8 blx r7
lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE);
12cf4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
12cf6: f8bb 2000 ldrh.w r2, [fp]
12cfa: f240 1169 movw r1, #361 ; 0x169
12cfe: 3050 adds r0, #80 ; 0x50
12d00: 47b0 blx r6
lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small);
12d02: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
12d04: 6922 ldr r2, [r4, #16]
12d06: f248 118e movw r1, #33166 ; 0x818e
12d0a: 3050 adds r0, #80 ; 0x50
12d0c: 47b8 blx r7
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12d0e: 2000 movs r0, #0
12d10: 6827 ldr r7, [r4, #0]
12d12: 47c8 blx r9
12d14: eb00 0040 add.w r0, r0, r0, lsl #1
12d18: 28ef cmp r0, #239 ; 0xef
12d1a: f107 0750 add.w r7, r7, #80 ; 0x50
12d1e: f340 87ec ble.w 13cfa <lv_theme_material_init+0x179e>
12d22: 2000 movs r0, #0
12d24: 47c8 blx r9
12d26: 2103 movs r1, #3
12d28: 2350 movs r3, #80 ; 0x50
12d2a: fb00 3001 mla r0, r0, r1, r3
12d2e: 22a0 movs r2, #160 ; 0xa0
12d30: fb90 f2f2 sdiv r2, r0, r2
12d34: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12d36: 4638 mov r0, r7
12d38: 2112 movs r1, #18
12d3a: 47a8 blx r5
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12d3c: 2000 movs r0, #0
12d3e: 6827 ldr r7, [r4, #0]
12d40: 47c8 blx r9
12d42: eb00 0040 add.w r0, r0, r0, lsl #1
12d46: 28ef cmp r0, #239 ; 0xef
12d48: f107 0750 add.w r7, r7, #80 ; 0x50
12d4c: f340 87d8 ble.w 13d00 <lv_theme_material_init+0x17a4>
12d50: 2000 movs r0, #0
12d52: 47c8 blx r9
12d54: 2103 movs r1, #3
12d56: 2350 movs r3, #80 ; 0x50
12d58: fb00 3001 mla r0, r0, r1, r3
12d5c: 22a0 movs r2, #160 ; 0xa0
12d5e: fb90 f2f2 sdiv r2, r0, r2
12d62: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12d64: 4638 mov r0, r7
12d66: 2113 movs r1, #19
12d68: 47a8 blx r5
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12d6a: 2000 movs r0, #0
12d6c: 6827 ldr r7, [r4, #0]
12d6e: 47c8 blx r9
12d70: eb00 0040 add.w r0, r0, r0, lsl #1
12d74: 28ef cmp r0, #239 ; 0xef
12d76: f107 0750 add.w r7, r7, #80 ; 0x50
12d7a: f340 87c4 ble.w 13d06 <lv_theme_material_init+0x17aa>
12d7e: 2000 movs r0, #0
12d80: 47c8 blx r9
12d82: 2103 movs r1, #3
12d84: 2350 movs r3, #80 ; 0x50
12d86: fb00 3001 mla r0, r0, r1, r3
12d8a: 22a0 movs r2, #160 ; 0xa0
12d8c: fb90 f2f2 sdiv r2, r0, r2
12d90: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12d92: 4638 mov r0, r7
12d94: 2110 movs r1, #16
12d96: 47a8 blx r5
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12d98: 2000 movs r0, #0
12d9a: 6827 ldr r7, [r4, #0]
12d9c: 47c8 blx r9
12d9e: eb00 0040 add.w r0, r0, r0, lsl #1
12da2: 28ef cmp r0, #239 ; 0xef
12da4: f107 0750 add.w r7, r7, #80 ; 0x50
12da8: f340 87b0 ble.w 13d0c <lv_theme_material_init+0x17b0>
12dac: 2000 movs r0, #0
12dae: 47c8 blx r9
12db0: 2103 movs r1, #3
12db2: 2350 movs r3, #80 ; 0x50
12db4: fb00 3001 mla r0, r0, r1, r3
12db8: 22a0 movs r2, #160 ; 0xa0
12dba: fb90 f2f2 sdiv r2, r0, r2
12dbe: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12dc0: 2111 movs r1, #17
12dc2: 4638 mov r0, r7
12dc4: 47a8 blx r5
style_init_reset(&styles->kb_bg);
12dc6: 6820 ldr r0, [r4, #0]
12dc8: 3068 adds r0, #104 ; 0x68
12dca: 47d0 blx sl
lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0);
12dcc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12dce: 2200 movs r2, #0
12dd0: 2101 movs r1, #1
12dd2: 3068 adds r0, #104 ; 0x68
12dd4: 47a8 blx r5
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
12dd6: 2000 movs r0, #0
12dd8: 6827 ldr r7, [r4, #0]
12dda: 47c8 blx r9
12ddc: 283b cmp r0, #59 ; 0x3b
12dde: f107 0768 add.w r7, r7, #104 ; 0x68
12de2: f340 8796 ble.w 13d12 <lv_theme_material_init+0x17b6>
12de6: 2000 movs r0, #0
12de8: 47c8 blx r9
12dea: 2228 movs r2, #40 ; 0x28
12dec: 3014 adds r0, #20
12dee: fb90 f2f2 sdiv r2, r0, r2
12df2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12df4: 4638 mov r0, r7
12df6: 2130 movs r1, #48 ; 0x30
12df8: 47a8 blx r5
lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);
12dfa: 6820 ldr r0, [r4, #0]
12dfc: 4f5d ldr r7, [pc, #372] ; (12f74 <lv_theme_material_init+0xa18>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
12dfe: 2202 movs r2, #2
12e00: 2131 movs r1, #49 ; 0x31
12e02: 3068 adds r0, #104 ; 0x68
12e04: 47a8 blx r5
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
12e06: 6823 ldr r3, [r4, #0]
12e08: f103 0b68 add.w fp, r3, #104 ; 0x68
12e0c: 6a23 ldr r3, [r4, #32]
12e0e: f013 0302 ands.w r3, r3, #2
12e12: f000 8781 beq.w 13d18 <lv_theme_material_init+0x17bc>
12e16: 4858 ldr r0, [pc, #352] ; (12f78 <lv_theme_material_init+0xa1c>)
12e18: 47b8 blx r7
12e1a: f000 021f and.w r2, r0, #31
12e1e: f3c0 1145 ubfx r1, r0, #5, #6
12e22: f3c0 23c4 ubfx r3, r0, #11, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
12e26: ea42 1241 orr.w r2, r2, r1, lsl #5
12e2a: ea42 22c3 orr.w r2, r2, r3, lsl #11
12e2e: 4658 mov r0, fp
12e30: 2139 movs r1, #57 ; 0x39
12e32: 47b0 blx r6
lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary);
12e34: 6820 ldr r0, [r4, #0]
12e36: 89e2 ldrh r2, [r4, #14]
12e38: f240 4139 movw r1, #1081 ; 0x439
12e3c: 3068 adds r0, #104 ; 0x68
12e3e: 47b0 blx r6
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
12e40: 6823 ldr r3, [r4, #0]
12e42: 2000 movs r0, #0
12e44: f103 0b68 add.w fp, r3, #104 ; 0x68
12e48: 47c8 blx r9
12e4a: eb00 0080 add.w r0, r0, r0, lsl #2
12e4e: 28ef cmp r0, #239 ; 0xef
12e50: f340 8766 ble.w 13d20 <lv_theme_material_init+0x17c4>
12e54: 2000 movs r0, #0
12e56: 47c8 blx r9
12e58: 2105 movs r1, #5
12e5a: 2350 movs r3, #80 ; 0x50
12e5c: fb00 3001 mla r0, r0, r1, r3
12e60: 22a0 movs r2, #160 ; 0xa0
12e62: fb90 f2f2 sdiv r2, r0, r2
12e66: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12e68: 4658 mov r0, fp
12e6a: 2112 movs r1, #18
12e6c: 47a8 blx r5
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
12e6e: 6823 ldr r3, [r4, #0]
12e70: 2000 movs r0, #0
12e72: f103 0b68 add.w fp, r3, #104 ; 0x68
12e76: 47c8 blx r9
12e78: eb00 0080 add.w r0, r0, r0, lsl #2
12e7c: 28ef cmp r0, #239 ; 0xef
12e7e: f340 8752 ble.w 13d26 <lv_theme_material_init+0x17ca>
12e82: 2000 movs r0, #0
12e84: 47c8 blx r9
12e86: 2105 movs r1, #5
12e88: 2350 movs r3, #80 ; 0x50
12e8a: fb00 3001 mla r0, r0, r1, r3
12e8e: 22a0 movs r2, #160 ; 0xa0
12e90: fb90 f2f2 sdiv r2, r0, r2
12e94: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12e96: 4658 mov r0, fp
12e98: 2113 movs r1, #19
12e9a: 47a8 blx r5
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
12e9c: 6823 ldr r3, [r4, #0]
12e9e: 2000 movs r0, #0
12ea0: f103 0b68 add.w fp, r3, #104 ; 0x68
12ea4: 47c8 blx r9
12ea6: eb00 0080 add.w r0, r0, r0, lsl #2
12eaa: 28ef cmp r0, #239 ; 0xef
12eac: f340 873e ble.w 13d2c <lv_theme_material_init+0x17d0>
12eb0: 2000 movs r0, #0
12eb2: 47c8 blx r9
12eb4: 2105 movs r1, #5
12eb6: 2350 movs r3, #80 ; 0x50
12eb8: fb00 3001 mla r0, r0, r1, r3
12ebc: 22a0 movs r2, #160 ; 0xa0
12ebe: fb90 f2f2 sdiv r2, r0, r2
12ec2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12ec4: 4658 mov r0, fp
12ec6: 2110 movs r1, #16
12ec8: 47a8 blx r5
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
12eca: 6823 ldr r3, [r4, #0]
12ecc: 2000 movs r0, #0
12ece: f103 0b68 add.w fp, r3, #104 ; 0x68
12ed2: 47c8 blx r9
12ed4: eb00 0080 add.w r0, r0, r0, lsl #2
12ed8: 28ef cmp r0, #239 ; 0xef
12eda: f340 872a ble.w 13d32 <lv_theme_material_init+0x17d6>
12ede: 2000 movs r0, #0
12ee0: 47c8 blx r9
12ee2: 2105 movs r1, #5
12ee4: 2350 movs r3, #80 ; 0x50
12ee6: fb00 3001 mla r0, r0, r1, r3
12eea: 22a0 movs r2, #160 ; 0xa0
12eec: fb90 f2f2 sdiv r2, r0, r2
12ef0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12ef2: 4658 mov r0, fp
12ef4: 2111 movs r1, #17
12ef6: 47a8 blx r5
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
12ef8: 6823 ldr r3, [r4, #0]
12efa: 2000 movs r0, #0
12efc: f103 0b68 add.w fp, r3, #104 ; 0x68
12f00: 47c8 blx r9
12f02: eb00 0040 add.w r0, r0, r0, lsl #1
12f06: 28ef cmp r0, #239 ; 0xef
12f08: f340 8716 ble.w 13d38 <lv_theme_material_init+0x17dc>
12f0c: 2000 movs r0, #0
12f0e: 47c8 blx r9
12f10: 2103 movs r1, #3
12f12: 2350 movs r3, #80 ; 0x50
12f14: fb00 3001 mla r0, r0, r1, r3
12f18: 22a0 movs r2, #160 ; 0xa0
12f1a: fb90 f2f2 sdiv r2, r0, r2
12f1e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12f20: 2114 movs r1, #20
12f22: 4658 mov r0, fp
12f24: 47a8 blx r5
style_init_reset(&styles->mbox_bg);
12f26: 6820 ldr r0, [r4, #0]
12f28: 307c adds r0, #124 ; 0x7c
12f2a: 47d0 blx sl
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
12f2c: 6823 ldr r3, [r4, #0]
12f2e: 2000 movs r0, #0
12f30: f103 0b7c add.w fp, r3, #124 ; 0x7c
12f34: 47c8 blx r9
12f36: 2132 movs r1, #50 ; 0x32
12f38: 4348 muls r0, r1
12f3a: 28ef cmp r0, #239 ; 0xef
12f3c: f340 86ff ble.w 13d3e <lv_theme_material_init+0x17e2>
12f40: 2000 movs r0, #0
12f42: 47c8 blx r9
12f44: 2350 movs r3, #80 ; 0x50
12f46: 2132 movs r1, #50 ; 0x32
12f48: fb00 3001 mla r0, r0, r1, r3
12f4c: 22a0 movs r2, #160 ; 0xa0
12f4e: fb90 f2f2 sdiv r2, r0, r2
12f52: b212 sxth r2, r2
12f54: e012 b.n 12f7c <lv_theme_material_init+0xa20>
12f56: bf00 nop
12f58: 2000c7d4 .word 0x2000c7d4
12f5c: 00010b1d .word 0x00010b1d
12f60: 0000d995 .word 0x0000d995
12f64: 00005875 .word 0x00005875
12f68: 00005ae9 .word 0x00005ae9
12f6c: 00005945 .word 0x00005945
12f70: 000242b2 .word 0x000242b2
12f74: 00010efd .word 0x00010efd
12f78: 003b3e42 .word 0x003b3e42
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
12f7c: 2150 movs r1, #80 ; 0x50
12f7e: 4658 mov r0, fp
12f80: 47a8 blx r5
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
12f82: 6823 ldr r3, [r4, #0]
12f84: f103 0b7c add.w fp, r3, #124 ; 0x7c
12f88: 6a23 ldr r3, [r4, #32]
12f8a: 0799 lsls r1, r3, #30
12f8c: f140 86da bpl.w 13d44 <lv_theme_material_init+0x17e8>
12f90: 4bb5 ldr r3, [pc, #724] ; (13268 <lv_theme_material_init+0xd0c>)
12f92: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
12f94: 2159 movs r1, #89 ; 0x59
12f96: 4658 mov r0, fp
12f98: 47b0 blx r6
style_init_reset(&styles->sb);
12f9a: 6820 ldr r0, [r4, #0]
12f9c: 3080 adds r0, #128 ; 0x80
12f9e: 47d0 blx sl
lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER);
12fa0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12fa2: 22ff movs r2, #255 ; 0xff
12fa4: 3080 adds r0, #128 ; 0x80
12fa6: 212c movs r1, #44 ; 0x2c
12fa8: 47c0 blx r8
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
12faa: 6823 ldr r3, [r4, #0]
12fac: f103 0b80 add.w fp, r3, #128 ; 0x80
12fb0: 6a23 ldr r3, [r4, #32]
12fb2: 079a lsls r2, r3, #30
12fb4: bf4c ite mi
12fb6: 48ad ldrmi r0, [pc, #692] ; (1326c <lv_theme_material_init+0xd10>)
12fb8: 48ad ldrpl r0, [pc, #692] ; (13270 <lv_theme_material_init+0xd14>)
12fba: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12fbc: 2129 movs r1, #41 ; 0x29
12fbe: 4602 mov r2, r0
12fc0: 4658 mov r0, fp
12fc2: 47b0 blx r6
lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12fc4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12fc6: f647 72ff movw r2, #32767 ; 0x7fff
12fca: 2101 movs r1, #1
12fcc: 3080 adds r0, #128 ; 0x80
12fce: 47a8 blx r5
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
12fd0: 6823 ldr r3, [r4, #0]
12fd2: 2000 movs r0, #0
12fd4: f103 0b80 add.w fp, r3, #128 ; 0x80
12fd8: 47c8 blx r9
12fda: ebc0 00c0 rsb r0, r0, r0, lsl #3
12fde: 28ef cmp r0, #239 ; 0xef
12fe0: f340 86b7 ble.w 13d52 <lv_theme_material_init+0x17f6>
12fe4: 2000 movs r0, #0
12fe6: 47c8 blx r9
12fe8: 2107 movs r1, #7
12fea: 2350 movs r3, #80 ; 0x50
12fec: fb00 3001 mla r0, r0, r1, r3
12ff0: 22a0 movs r2, #160 ; 0xa0
12ff2: fb90 f2f2 sdiv r2, r0, r2
12ff6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
12ff8: 4658 mov r0, fp
12ffa: 2103 movs r1, #3
12ffc: 47a8 blx r5
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
12ffe: 6823 ldr r3, [r4, #0]
13000: 2000 movs r0, #0
13002: f103 0b80 add.w fp, r3, #128 ; 0x80
13006: 47c8 blx r9
13008: ebc0 00c0 rsb r0, r0, r0, lsl #3
1300c: 28ef cmp r0, #239 ; 0xef
1300e: f340 86a3 ble.w 13d58 <lv_theme_material_init+0x17fc>
13012: 2000 movs r0, #0
13014: 47c8 blx r9
13016: 2107 movs r1, #7
13018: 2350 movs r3, #80 ; 0x50
1301a: fb00 3001 mla r0, r0, r1, r3
1301e: 22a0 movs r2, #160 ; 0xa0
13020: fb90 f2f2 sdiv r2, r0, r2
13024: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13026: 4658 mov r0, fp
13028: 2113 movs r1, #19
1302a: 47a8 blx r5
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
1302c: 6823 ldr r3, [r4, #0]
1302e: 2000 movs r0, #0
13030: f103 0b80 add.w fp, r3, #128 ; 0x80
13034: 47c8 blx r9
13036: ebc0 00c0 rsb r0, r0, r0, lsl #3
1303a: 28ef cmp r0, #239 ; 0xef
1303c: f340 868f ble.w 13d5e <lv_theme_material_init+0x1802>
13040: 2000 movs r0, #0
13042: 47c8 blx r9
13044: 2107 movs r1, #7
13046: 2350 movs r3, #80 ; 0x50
13048: fb00 3001 mla r0, r0, r1, r3
1304c: 22a0 movs r2, #160 ; 0xa0
1304e: fb90 f2f2 sdiv r2, r0, r2
13052: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13054: 2111 movs r1, #17
13056: 4658 mov r0, fp
13058: 47a8 blx r5
style_init_reset(&styles->edge_flash);
1305a: 6820 ldr r0, [r4, #0]
1305c: 3084 adds r0, #132 ; 0x84
1305e: 47d0 blx sl
lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER);
13060: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13062: 22ff movs r2, #255 ; 0xff
13064: 212c movs r1, #44 ; 0x2c
13066: 3084 adds r0, #132 ; 0x84
13068: 47c0 blx r8
lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888));
1306a: 6823 ldr r3, [r4, #0]
1306c: f640 0088 movw r0, #2184 ; 0x888
13070: f103 0b84 add.w fp, r3, #132 ; 0x84
13074: 4b7f ldr r3, [pc, #508] ; (13274 <lv_theme_material_init+0xd18>)
13076: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13078: 2129 movs r1, #41 ; 0x29
1307a: 4602 mov r2, r0
1307c: 4658 mov r0, fp
1307e: 47b0 blx r6
style_init_reset(&styles->ta_cursor);
13080: 6820 ldr r0, [r4, #0]
13082: 30b4 adds r0, #180 ; 0xb4
13084: 47d0 blx sl
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
13086: 6822 ldr r2, [r4, #0]
13088: 4b7a ldr r3, [pc, #488] ; (13274 <lv_theme_material_init+0xd18>)
1308a: 9301 str r3, [sp, #4]
1308c: f102 0bb4 add.w fp, r2, #180 ; 0xb4
13090: 6a22 ldr r2, [r4, #32]
13092: f012 0f02 tst.w r2, #2
13096: bf14 ite ne
13098: 4877 ldrne r0, [pc, #476] ; (13278 <lv_theme_material_init+0xd1c>)
1309a: 4878 ldreq r0, [pc, #480] ; (1327c <lv_theme_material_init+0xd20>)
1309c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1309e: 2139 movs r1, #57 ; 0x39
130a0: 4602 mov r2, r0
130a2: 4658 mov r0, fp
130a4: 47b0 blx r6
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
130a6: 6823 ldr r3, [r4, #0]
130a8: 2000 movs r0, #0
130aa: f103 0bb4 add.w fp, r3, #180 ; 0xb4
130ae: 47c8 blx r9
130b0: 2877 cmp r0, #119 ; 0x77
130b2: f340 8657 ble.w 13d64 <lv_theme_material_init+0x1808>
130b6: 2000 movs r0, #0
130b8: 47c8 blx r9
130ba: 2250 movs r2, #80 ; 0x50
130bc: 3028 adds r0, #40 ; 0x28
130be: fb90 f2f2 sdiv r2, r0, r2
130c2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
130c4: 4658 mov r0, fp
130c6: 2130 movs r1, #48 ; 0x30
130c8: 47a8 blx r5
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
130ca: 6823 ldr r3, [r4, #0]
130cc: 2000 movs r0, #0
130ce: f103 0bb4 add.w fp, r3, #180 ; 0xb4
130d2: 47c8 blx r9
130d4: 28ef cmp r0, #239 ; 0xef
130d6: f340 8648 ble.w 13d6a <lv_theme_material_init+0x180e>
130da: 2000 movs r0, #0
130dc: 47c8 blx r9
130de: 22a0 movs r2, #160 ; 0xa0
130e0: 3050 adds r0, #80 ; 0x50
130e2: fb90 f2f2 sdiv r2, r0, r2
130e6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
130e8: 4658 mov r0, fp
130ea: 2112 movs r1, #18
130ec: 47a8 blx r5
lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT);
130ee: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
130f0: 2204 movs r2, #4
130f2: 2131 movs r1, #49 ; 0x31
130f4: 30b4 adds r0, #180 ; 0xb4
130f6: 47a8 blx r5
style_init_reset(&styles->ta_placeholder);
130f8: 6820 ldr r0, [r4, #0]
130fa: 30b8 adds r0, #184 ; 0xb8
130fc: 47d0 blx sl
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
130fe: 6823 ldr r3, [r4, #0]
13100: f103 0bb8 add.w fp, r3, #184 ; 0xb8
13104: 6a23 ldr r3, [r4, #32]
13106: 079b lsls r3, r3, #30
13108: f140 8632 bpl.w 13d70 <lv_theme_material_init+0x1814>
1310c: 9b01 ldr r3, [sp, #4]
1310e: f640 20aa movw r0, #2730 ; 0xaaa
13112: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13114: 4602 mov r2, r0
13116: f248 0189 movw r1, #32905 ; 0x8089
1311a: 4658 mov r0, fp
1311c: 47b0 blx r6
style_init_reset(&styles->spinbox_cursor);
1311e: 6820 ldr r0, [r4, #0]
13120: 3098 adds r0, #152 ; 0x98
13122: 47d0 blx sl
lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER);
13124: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13126: 22ff movs r2, #255 ; 0xff
13128: 212c movs r1, #44 ; 0x2c
1312a: 3098 adds r0, #152 ; 0x98
1312c: 47c0 blx r8
lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary);
1312e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13130: 89a2 ldrh r2, [r4, #12]
13132: 2129 movs r1, #41 ; 0x29
13134: 3098 adds r0, #152 ; 0x98
13136: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13138: 4b4b ldr r3, [pc, #300] ; (13268 <lv_theme_material_init+0xd0c>)
lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE);
1313a: 6820 ldr r0, [r4, #0]
1313c: 881a ldrh r2, [r3, #0]
1313e: f248 0189 movw r1, #32905 ; 0x8089
13142: 3098 adds r0, #152 ; 0x98
13144: 47b0 blx r6
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13146: 6823 ldr r3, [r4, #0]
13148: 2000 movs r0, #0
1314a: f103 0898 add.w r8, r3, #152 ; 0x98
1314e: 47c8 blx r9
13150: f04f 0b64 mov.w fp, #100 ; 0x64
13154: fb00 f00b mul.w r0, r0, fp
13158: 28ef cmp r0, #239 ; 0xef
1315a: f340 860d ble.w 13d78 <lv_theme_material_init+0x181c>
1315e: 2000 movs r0, #0
13160: 47c8 blx r9
13162: 2350 movs r3, #80 ; 0x50
13164: fb00 300b mla r0, r0, fp, r3
13168: 22a0 movs r2, #160 ; 0xa0
1316a: fb90 f2f2 sdiv r2, r0, r2
1316e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13170: 4640 mov r0, r8
13172: 2110 movs r1, #16
13174: 47a8 blx r5
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13176: 6823 ldr r3, [r4, #0]
13178: 2000 movs r0, #0
1317a: f103 0898 add.w r8, r3, #152 ; 0x98
1317e: 47c8 blx r9
13180: f04f 0b64 mov.w fp, #100 ; 0x64
13184: fb00 f00b mul.w r0, r0, fp
13188: 28ef cmp r0, #239 ; 0xef
1318a: f340 85f8 ble.w 13d7e <lv_theme_material_init+0x1822>
1318e: 2000 movs r0, #0
13190: 47c8 blx r9
13192: 2350 movs r3, #80 ; 0x50
13194: fb00 300b mla r0, r0, fp, r3
13198: 22a0 movs r2, #160 ; 0xa0
1319a: fb90 f2f2 sdiv r2, r0, r2
1319e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
131a0: 2111 movs r1, #17
131a2: 4640 mov r0, r8
131a4: 47a8 blx r5
style_init_reset(&styles->list_bg);
131a6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
131a8: f8df 90e0 ldr.w r9, [pc, #224] ; 1328c <lv_theme_material_init+0xd30>
131ac: 3074 adds r0, #116 ; 0x74
131ae: 47d0 blx sl
lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true);
131b0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
131b2: 2201 movs r2, #1
131b4: 2102 movs r1, #2
131b6: 3074 adds r0, #116 ; 0x74
131b8: 47a8 blx r5
lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0);
131ba: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
131bc: 2200 movs r2, #0
131be: 2112 movs r1, #18
131c0: 3074 adds r0, #116 ; 0x74
131c2: 47a8 blx r5
lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0);
131c4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
131c6: 2200 movs r2, #0
131c8: 2113 movs r1, #19
131ca: 3074 adds r0, #116 ; 0x74
131cc: 47a8 blx r5
lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0);
131ce: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
131d0: 2200 movs r2, #0
131d2: 2110 movs r1, #16
131d4: 3074 adds r0, #116 ; 0x74
131d6: 47a8 blx r5
lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0);
131d8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
131da: 2200 movs r2, #0
131dc: 2111 movs r1, #17
131de: 3074 adds r0, #116 ; 0x74
131e0: 47a8 blx r5
lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0);
131e2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
131e4: 2200 movs r2, #0
131e6: 2114 movs r1, #20
131e8: 3074 adds r0, #116 ; 0x74
131ea: 47a8 blx r5
style_init_reset(&styles->list_btn);
131ec: 6820 ldr r0, [r4, #0]
131ee: 3078 adds r0, #120 ; 0x78
131f0: 47d0 blx sl
lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER);
131f2: 6820 ldr r0, [r4, #0]
131f4: f8df a07c ldr.w sl, [pc, #124] ; 13274 <lv_theme_material_init+0xd18>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
131f8: 3078 adds r0, #120 ; 0x78
131fa: 22ff movs r2, #255 ; 0xff
131fc: 212c movs r1, #44 ; 0x2c
131fe: 47c8 blx r9
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
13200: 6823 ldr r3, [r4, #0]
13202: f103 0878 add.w r8, r3, #120 ; 0x78
13206: 6a23 ldr r3, [r4, #32]
13208: 0798 lsls r0, r3, #30
1320a: bf54 ite pl
1320c: 481c ldrpl r0, [pc, #112] ; (13280 <lv_theme_material_init+0xd24>)
1320e: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
13212: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13214: 2129 movs r1, #41 ; 0x29
13216: 4602 mov r2, r0
13218: 4640 mov r0, r8
1321a: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
1321c: 6823 ldr r3, [r4, #0]
1321e: f103 0878 add.w r8, r3, #120 ; 0x78
13222: 6a23 ldr r3, [r4, #32]
13224: 0799 lsls r1, r3, #30
13226: bf4c ite mi
13228: 4816 ldrmi r0, [pc, #88] ; (13284 <lv_theme_material_init+0xd28>)
1322a: 4817 ldrpl r0, [pc, #92] ; (13288 <lv_theme_material_init+0xd2c>)
1322c: 47b8 blx r7
1322e: f241 0129 movw r1, #4137 ; 0x1029
13232: 4602 mov r2, r0
13234: 4640 mov r0, r8
13236: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
13238: 6823 ldr r3, [r4, #0]
1323a: f103 0878 add.w r8, r3, #120 ; 0x78
1323e: 6a23 ldr r3, [r4, #32]
13240: 079a lsls r2, r3, #30
13242: bf54 ite pl
13244: 480e ldrpl r0, [pc, #56] ; (13280 <lv_theme_material_init+0xd24>)
13246: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
1324a: 47b8 blx r7
1324c: f242 0129 movw r1, #8233 ; 0x2029
13250: 4602 mov r2, r0
13252: 4640 mov r0, r8
13254: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK);
13256: 6820 ldr r0, [r4, #0]
13258: 89a2 ldrh r2, [r4, #12]
1325a: f240 1129 movw r1, #297 ; 0x129
1325e: 3078 adds r0, #120 ; 0x78
13260: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK);
13262: 6820 ldr r0, [r4, #0]
13264: e014 b.n 13290 <lv_theme_material_init+0xd34>
13266: bf00 nop
13268: 000242b6 .word 0x000242b6
1326c: 00cccfd1 .word 0x00cccfd1
13270: 00777f85 .word 0x00777f85
13274: 00010351 .word 0x00010351
13278: 0031404f .word 0x0031404f
1327c: 00a5a8ad .word 0x00a5a8ad
13280: 00586273 .word 0x00586273
13284: 00eeeeee .word 0x00eeeeee
13288: 00494f57 .word 0x00494f57
1328c: 00005a15 .word 0x00005a15
13290: 4bba ldr r3, [pc, #744] ; (1357c <lv_theme_material_init+0x1020>)
13292: f100 0878 add.w r8, r0, #120 ; 0x78
13296: 2133 movs r1, #51 ; 0x33
13298: 89a0 ldrh r0, [r4, #12]
1329a: 4798 blx r3
1329c: f241 1129 movw r1, #4393 ; 0x1129
132a0: 4602 mov r2, r0
132a2: 4640 mov r0, r8
132a4: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
132a6: 6823 ldr r3, [r4, #0]
132a8: f103 0878 add.w r8, r3, #120 ; 0x78
132ac: 6a23 ldr r3, [r4, #32]
132ae: 079b lsls r3, r3, #30
132b0: bf4c ite mi
132b2: 48b3 ldrmi r0, [pc, #716] ; (13580 <lv_theme_material_init+0x1024>)
132b4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
132b8: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
132ba: f248 0189 movw r1, #32905 ; 0x8089
132be: 4602 mov r2, r0
132c0: 4640 mov r0, r8
132c2: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
132c4: 6820 ldr r0, [r4, #0]
132c6: f100 0878 add.w r8, r0, #120 ; 0x78
132ca: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
132ce: 47b8 blx r7
132d0: f248 1189 movw r1, #33161 ; 0x8189
132d4: 4602 mov r2, r0
132d6: 4640 mov r0, r8
132d8: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
132da: 6823 ldr r3, [r4, #0]
132dc: f103 0878 add.w r8, r3, #120 ; 0x78
132e0: 6a23 ldr r3, [r4, #32]
132e2: f013 0f02 tst.w r3, #2
132e6: bf14 ite ne
132e8: f640 20aa movwne r0, #2730 ; 0xaaa
132ec: f640 1099 movweq r0, #2457 ; 0x999
132f0: 47d0 blx sl
132f2: f24a 0189 movw r1, #41097 ; 0xa089
132f6: 4602 mov r2, r0
132f8: 4640 mov r0, r8
132fa: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
132fc: 6823 ldr r3, [r4, #0]
132fe: f103 0878 add.w r8, r3, #120 ; 0x78
13302: 6a23 ldr r3, [r4, #32]
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
13304: 4c9f ldr r4, [pc, #636] ; (13584 <lv_theme_material_init+0x1028>)
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
13306: 0798 lsls r0, r3, #30
13308: bf4c ite mi
1330a: 489d ldrmi r0, [pc, #628] ; (13580 <lv_theme_material_init+0x1024>)
1330c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
13310: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
13312: f248 01a9 movw r1, #32937 ; 0x80a9
13316: 4602 mov r2, r0
13318: 4640 mov r0, r8
1331a: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
1331c: 6820 ldr r0, [r4, #0]
1331e: f100 0878 add.w r8, r0, #120 ; 0x78
13322: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
13326: 47b8 blx r7
13328: f248 11a9 movw r1, #33193 ; 0x81a9
1332c: 4602 mov r2, r0
1332e: 4640 mov r0, r8
13330: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
13332: 6823 ldr r3, [r4, #0]
13334: f103 0878 add.w r8, r3, #120 ; 0x78
13338: 6a23 ldr r3, [r4, #32]
1333a: 0799 lsls r1, r3, #30
1333c: bf4c ite mi
1333e: f640 20aa movwmi r0, #2730 ; 0xaaa
13342: f640 1099 movwpl r0, #2457 ; 0x999
13346: 47d0 blx sl
13348: f24a 01a9 movw r1, #41129 ; 0xa0a9
1334c: 4602 mov r2, r0
1334e: 4640 mov r0, r8
13350: 47b0 blx r6
lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
13352: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
13354: 4e8c ldr r6, [pc, #560] ; (13588 <lv_theme_material_init+0x102c>)
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13356: f8df 824c ldr.w r8, [pc, #588] ; 135a4 <lv_theme_material_init+0x1048>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
1335a: 2201 movs r2, #1
1335c: 3078 adds r0, #120 ; 0x78
1335e: 2131 movs r1, #49 ; 0x31
13360: 47a8 blx r5
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
13362: 6a23 ldr r3, [r4, #32]
13364: 6825 ldr r5, [r4, #0]
13366: 079a lsls r2, r3, #30
13368: bf4c ite mi
1336a: 4888 ldrmi r0, [pc, #544] ; (1358c <lv_theme_material_init+0x1030>)
1336c: 4888 ldrpl r0, [pc, #544] ; (13590 <lv_theme_material_init+0x1034>)
1336e: 47b8 blx r7
13370: 3578 adds r5, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
13372: 4602 mov r2, r0
13374: 4f87 ldr r7, [pc, #540] ; (13594 <lv_theme_material_init+0x1038>)
13376: 4628 mov r0, r5
13378: 2139 movs r1, #57 ; 0x39
1337a: 47b8 blx r7
lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary);
1337c: 6820 ldr r0, [r4, #0]
1337e: 89a2 ldrh r2, [r4, #12]
13380: 4d85 ldr r5, [pc, #532] ; (13598 <lv_theme_material_init+0x103c>)
13382: f240 2139 movw r1, #569 ; 0x239
13386: 3078 adds r0, #120 ; 0x78
13388: 47b8 blx r7
lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1);
1338a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1338c: 2201 movs r2, #1
1338e: 2130 movs r1, #48 ; 0x30
13390: 3078 adds r0, #120 ; 0x78
13392: 47b0 blx r6
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13394: 6823 ldr r3, [r4, #0]
13396: 2000 movs r0, #0
13398: f103 0b78 add.w fp, r3, #120 ; 0x78
1339c: 47c0 blx r8
1339e: 2801 cmp r0, #1
133a0: f04f 0000 mov.w r0, #0
133a4: f200 84fa bhi.w 13d9c <lv_theme_material_init+0x1840>
133a8: 47a8 blx r5
133aa: ebc0 1000 rsb r0, r0, r0, lsl #4
133ae: 28ef cmp r0, #239 ; 0xef
133b0: f300 84e8 bgt.w 13d84 <lv_theme_material_init+0x1828>
133b4: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
133b6: 4658 mov r0, fp
133b8: 2112 movs r1, #18
133ba: 47b0 blx r6
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
133bc: 6823 ldr r3, [r4, #0]
133be: 2000 movs r0, #0
133c0: f103 0b78 add.w fp, r3, #120 ; 0x78
133c4: 47c0 blx r8
133c6: 2801 cmp r0, #1
133c8: f04f 0000 mov.w r0, #0
133cc: f200 84fd bhi.w 13dca <lv_theme_material_init+0x186e>
133d0: 47a8 blx r5
133d2: ebc0 1000 rsb r0, r0, r0, lsl #4
133d6: 28ef cmp r0, #239 ; 0xef
133d8: f300 84eb bgt.w 13db2 <lv_theme_material_init+0x1856>
133dc: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
133de: 4658 mov r0, fp
133e0: 2113 movs r1, #19
133e2: 47b0 blx r6
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
133e4: 6823 ldr r3, [r4, #0]
133e6: 2000 movs r0, #0
133e8: f103 0b78 add.w fp, r3, #120 ; 0x78
133ec: 47c0 blx r8
133ee: 2801 cmp r0, #1
133f0: f04f 0000 mov.w r0, #0
133f4: f200 8500 bhi.w 13df8 <lv_theme_material_init+0x189c>
133f8: 47a8 blx r5
133fa: ebc0 1000 rsb r0, r0, r0, lsl #4
133fe: 28ef cmp r0, #239 ; 0xef
13400: f300 84ee bgt.w 13de0 <lv_theme_material_init+0x1884>
13404: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13406: 4658 mov r0, fp
13408: 2110 movs r1, #16
1340a: 47b0 blx r6
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1340c: 6823 ldr r3, [r4, #0]
1340e: 2000 movs r0, #0
13410: f103 0b78 add.w fp, r3, #120 ; 0x78
13414: 47c0 blx r8
13416: 2801 cmp r0, #1
13418: f04f 0000 mov.w r0, #0
1341c: f200 8503 bhi.w 13e26 <lv_theme_material_init+0x18ca>
13420: 47a8 blx r5
13422: ebc0 1000 rsb r0, r0, r0, lsl #4
13426: 28ef cmp r0, #239 ; 0xef
13428: f300 84f1 bgt.w 13e0e <lv_theme_material_init+0x18b2>
1342c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1342e: 4658 mov r0, fp
13430: 2111 movs r1, #17
13432: 47b0 blx r6
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13434: 6823 ldr r3, [r4, #0]
13436: 2000 movs r0, #0
13438: f103 0b78 add.w fp, r3, #120 ; 0x78
1343c: 47c0 blx r8
1343e: 2801 cmp r0, #1
13440: f04f 0000 mov.w r0, #0
13444: f200 8506 bhi.w 13e54 <lv_theme_material_init+0x18f8>
13448: 47a8 blx r5
1344a: ebc0 1000 rsb r0, r0, r0, lsl #4
1344e: 28ef cmp r0, #239 ; 0xef
13450: f300 84f4 bgt.w 13e3c <lv_theme_material_init+0x18e0>
13454: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
13456: 4658 mov r0, fp
13458: 2114 movs r1, #20
1345a: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
1345c: 6823 ldr r3, [r4, #0]
1345e: 2000 movs r0, #0
13460: f103 0b78 add.w fp, r3, #120 ; 0x78
13464: 47c0 blx r8
13466: 2801 cmp r0, #1
13468: f04f 0000 mov.w r0, #0
1346c: f200 850a bhi.w 13e84 <lv_theme_material_init+0x1928>
13470: 47a8 blx r5
13472: ebc0 1000 rsb r0, r0, r0, lsl #4
13476: 28ef cmp r0, #239 ; 0xef
13478: f300 84f7 bgt.w 13e6a <lv_theme_material_init+0x190e>
1347c: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
13480: 4658 mov r0, fp
13482: 2104 movs r1, #4
13484: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0);
13486: 6820 ldr r0, [r4, #0]
style_init_reset(&styles->ddlist_page);
13488: f8df b11c ldr.w fp, [pc, #284] ; 135a8 <lv_theme_material_init+0x104c>
1348c: 2200 movs r2, #0
1348e: f241 0104 movw r1, #4100 ; 0x1004
13492: 3078 adds r0, #120 ; 0x78
13494: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0);
13496: 6820 ldr r0, [r4, #0]
13498: 2200 movs r2, #0
1349a: f44f 7182 mov.w r1, #260 ; 0x104
1349e: 3078 adds r0, #120 ; 0x78
134a0: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0);
134a2: 6820 ldr r0, [r4, #0]
134a4: 2200 movs r2, #0
134a6: f242 0104 movw r1, #8196 ; 0x2004
134aa: 3078 adds r0, #120 ; 0x78
134ac: 47b0 blx r6
lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME);
134ae: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
134b0: 2296 movs r2, #150 ; 0x96
134b2: 21b0 movs r1, #176 ; 0xb0
134b4: 3078 adds r0, #120 ; 0x78
134b6: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
134b8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
134ba: 2229 movs r2, #41 ; 0x29
134bc: 21b7 movs r1, #183 ; 0xb7
134be: 3078 adds r0, #120 ; 0x78
134c0: 47b0 blx r6
lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH);
134c2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
134c4: 2204 movs r2, #4
134c6: 21b6 movs r1, #182 ; 0xb6
134c8: 3078 adds r0, #120 ; 0x78
134ca: 47b0 blx r6
style_init_reset(&styles->ddlist_page);
134cc: 6820 ldr r0, [r4, #0]
134ce: 3054 adds r0, #84 ; 0x54
134d0: 47d8 blx fp
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
134d2: 6823 ldr r3, [r4, #0]
134d4: 2000 movs r0, #0
134d6: f103 0854 add.w r8, r3, #84 ; 0x54
134da: 47a8 blx r5
134dc: eb00 0080 add.w r0, r0, r0, lsl #2
134e0: 0080 lsls r0, r0, #2
134e2: 28ef cmp r0, #239 ; 0xef
134e4: f8cd b004 str.w fp, [sp, #4]
134e8: f340 84d7 ble.w 13e9a <lv_theme_material_init+0x193e>
134ec: 2000 movs r0, #0
134ee: 47a8 blx r5
134f0: 2114 movs r1, #20
134f2: 2350 movs r3, #80 ; 0x50
134f4: fb00 3001 mla r0, r0, r1, r3
134f8: 22a0 movs r2, #160 ; 0xa0
134fa: fb90 f2f2 sdiv r2, r0, r2
134fe: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
13500: 4640 mov r0, r8
13502: f248 0181 movw r1, #32897 ; 0x8081
13506: 47b0 blx r6
lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true);
13508: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
1350a: 2201 movs r2, #1
1350c: 2102 movs r1, #2
1350e: 3054 adds r0, #84 ; 0x54
13510: 47b0 blx r6
style_init_reset(&styles->ddlist_sel);
13512: 6820 ldr r0, [r4, #0]
13514: 9b01 ldr r3, [sp, #4]
13516: 3058 adds r0, #88 ; 0x58
13518: 4798 blx r3
lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
1351a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1351c: 22ff movs r2, #255 ; 0xff
1351e: 212c movs r1, #44 ; 0x2c
13520: 3058 adds r0, #88 ; 0x58
13522: 47c8 blx r9
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary);
13524: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13526: 89a2 ldrh r2, [r4, #12]
13528: 2129 movs r1, #41 ; 0x29
1352a: 3058 adds r0, #88 ; 0x58
1352c: 47b8 blx r7
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff));
1352e: 6823 ldr r3, [r4, #0]
13530: f640 70ff movw r0, #4095 ; 0xfff
13534: f103 0858 add.w r8, r3, #88 ; 0x58
13538: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1353a: f248 0189 movw r1, #32905 ; 0x8089
1353e: 4602 mov r2, r0
13540: 4640 mov r0, r8
13542: 47b8 blx r7
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
13544: 6823 ldr r3, [r4, #0]
13546: f8df 8064 ldr.w r8, [pc, #100] ; 135ac <lv_theme_material_init+0x1050>
1354a: f103 0b58 add.w fp, r3, #88 ; 0x58
1354e: 6a23 ldr r3, [r4, #32]
13550: f013 0f02 tst.w r3, #2
13554: bf14 ite ne
13556: 4811 ldrne r0, [pc, #68] ; (1359c <lv_theme_material_init+0x1040>)
13558: 4811 ldreq r0, [pc, #68] ; (135a0 <lv_theme_material_init+0x1044>)
1355a: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1355c: f241 0129 movw r1, #4137 ; 0x1029
13560: 4602 mov r2, r0
13562: 4658 mov r0, fp
13564: 47b8 blx r7
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
13566: 6823 ldr r3, [r4, #0]
13568: f103 0b58 add.w fp, r3, #88 ; 0x58
1356c: 6a23 ldr r3, [r4, #32]
1356e: 079b lsls r3, r3, #30
13570: bf4c ite mi
13572: 4803 ldrmi r0, [pc, #12] ; (13580 <lv_theme_material_init+0x1024>)
13574: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
13578: e01a b.n 135b0 <lv_theme_material_init+0x1054>
1357a: bf00 nop
1357c: 0000e3d7 .word 0x0000e3d7
13580: 003b3e42 .word 0x003b3e42
13584: 2000c7d4 .word 0x2000c7d4
13588: 00005875 .word 0x00005875
1358c: 00d6dde3 .word 0x00d6dde3
13590: 00808a97 .word 0x00808a97
13594: 00005945 .word 0x00005945
13598: 0000d995 .word 0x0000d995
1359c: 00eeeeee .word 0x00eeeeee
135a0: 00494f57 .word 0x00494f57
135a4: 0000d9ad .word 0x0000d9ad
135a8: 00010b1d .word 0x00010b1d
135ac: 00010efd .word 0x00010efd
135b0: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
135b2: f249 0189 movw r1, #37001 ; 0x9089
135b6: 4602 mov r2, r0
135b8: 4658 mov r0, fp
135ba: 47b8 blx r7
style_init_reset(&styles->roller_bg);
135bc: 6820 ldr r0, [r4, #0]
135be: 9b01 ldr r3, [sp, #4]
135c0: 3088 adds r0, #136 ; 0x88
135c2: 4798 blx r3
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
135c4: 6823 ldr r3, [r4, #0]
135c6: 2000 movs r0, #0
135c8: f103 0888 add.w r8, r3, #136 ; 0x88
135cc: 47a8 blx r5
135ce: eb00 0080 add.w r0, r0, r0, lsl #2
135d2: eb00 0080 add.w r0, r0, r0, lsl #2
135d6: 28ef cmp r0, #239 ; 0xef
135d8: f340 8462 ble.w 13ea0 <lv_theme_material_init+0x1944>
135dc: 2000 movs r0, #0
135de: 47a8 blx r5
135e0: 2119 movs r1, #25
135e2: 2350 movs r3, #80 ; 0x50
135e4: fb00 3001 mla r0, r0, r1, r3
135e8: 22a0 movs r2, #160 ; 0xa0
135ea: fb90 f2f2 sdiv r2, r0, r2
135ee: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
135f0: f248 0181 movw r1, #32897 ; 0x8081
135f4: 4640 mov r0, r8
135f6: 47b0 blx r6
style_init_reset(&styles->roller_sel);
135f8: 6820 ldr r0, [r4, #0]
135fa: f8df 830c ldr.w r8, [pc, #780] ; 13908 <lv_theme_material_init+0x13ac>
135fe: 308c adds r0, #140 ; 0x8c
13600: 47c0 blx r8
lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
13602: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13604: 22ff movs r2, #255 ; 0xff
13606: 212c movs r1, #44 ; 0x2c
13608: 308c adds r0, #140 ; 0x8c
1360a: 47c8 blx r9
lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary);
1360c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1360e: 89a2 ldrh r2, [r4, #12]
13610: 2129 movs r1, #41 ; 0x29
13612: 308c adds r0, #140 ; 0x8c
13614: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13616: 4bb5 ldr r3, [pc, #724] ; (138ec <lv_theme_material_init+0x1390>)
lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE);
13618: 6820 ldr r0, [r4, #0]
1361a: 881a ldrh r2, [r3, #0]
1361c: f248 0189 movw r1, #32905 ; 0x8089
13620: 308c adds r0, #140 ; 0x8c
13622: 47b8 blx r7
style_init_reset(&styles->tabview_btns_bg);
13624: 6820 ldr r0, [r4, #0]
13626: 30a8 adds r0, #168 ; 0xa8
13628: 47c0 blx r8
lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
1362a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1362c: 22ff movs r2, #255 ; 0xff
1362e: 30a8 adds r0, #168 ; 0xa8
13630: 212c movs r1, #44 ; 0x2c
13632: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
13634: 6823 ldr r3, [r4, #0]
13636: f8cd 8004 str.w r8, [sp, #4]
1363a: f103 0ba8 add.w fp, r3, #168 ; 0xa8
1363e: 6a23 ldr r3, [r4, #32]
13640: f8df 82c8 ldr.w r8, [pc, #712] ; 1390c <lv_theme_material_init+0x13b0>
13644: f013 0f02 tst.w r3, #2
13648: bf0c ite eq
1364a: 48a9 ldreq r0, [pc, #676] ; (138f0 <lv_theme_material_init+0x1394>)
1364c: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000
13650: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13652: 2129 movs r1, #41 ; 0x29
13654: 4602 mov r2, r0
13656: 4658 mov r0, fp
13658: 47b8 blx r7
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
1365a: 6823 ldr r3, [r4, #0]
1365c: f103 0ba8 add.w fp, r3, #168 ; 0xa8
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
13660: 6a23 ldr r3, [r4, #32]
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
13662: 0798 lsls r0, r3, #30
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
13664: bf4c ite mi
13666: 48a3 ldrmi r0, [pc, #652] ; (138f4 <lv_theme_material_init+0x1398>)
13668: 48a3 ldrpl r0, [pc, #652] ; (138f8 <lv_theme_material_init+0x139c>)
1366a: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1366c: 2139 movs r1, #57 ; 0x39
1366e: 4602 mov r2, r0
13670: 4658 mov r0, fp
13672: 47b8 blx r7
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
13674: 6823 ldr r3, [r4, #0]
13676: 2000 movs r0, #0
13678: f103 0ba8 add.w fp, r3, #168 ; 0xa8
1367c: 47a8 blx r5
1367e: eb00 0080 add.w r0, r0, r0, lsl #2
13682: 28ef cmp r0, #239 ; 0xef
13684: f340 840f ble.w 13ea6 <lv_theme_material_init+0x194a>
13688: 2000 movs r0, #0
1368a: 47a8 blx r5
1368c: 2105 movs r1, #5
1368e: 2350 movs r3, #80 ; 0x50
13690: fb00 3001 mla r0, r0, r1, r3
13694: 22a0 movs r2, #160 ; 0xa0
13696: fb90 f2f2 sdiv r2, r0, r2
1369a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1369c: 4658 mov r0, fp
1369e: 2130 movs r1, #48 ; 0x30
136a0: 47b0 blx r6
lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
136a2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
136a4: 2201 movs r2, #1
136a6: 30a8 adds r0, #168 ; 0xa8
136a8: 2131 movs r1, #49 ; 0x31
136aa: 47b0 blx r6
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
136ac: 6823 ldr r3, [r4, #0]
136ae: f103 0ba8 add.w fp, r3, #168 ; 0xa8
136b2: 6a23 ldr r3, [r4, #32]
136b4: 0799 lsls r1, r3, #30
136b6: bf4c ite mi
136b8: 488f ldrmi r0, [pc, #572] ; (138f8 <lv_theme_material_init+0x139c>)
136ba: 4890 ldrpl r0, [pc, #576] ; (138fc <lv_theme_material_init+0x13a0>)
136bc: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
136be: f248 0189 movw r1, #32905 ; 0x8089
136c2: 4602 mov r2, r0
136c4: 4658 mov r0, fp
136c6: 47b8 blx r7
lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal);
136c8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
136ca: 6962 ldr r2, [r4, #20]
136cc: 4b8c ldr r3, [pc, #560] ; (13900 <lv_theme_material_init+0x13a4>)
136ce: f248 018e movw r1, #32910 ; 0x808e
136d2: 30a8 adds r0, #168 ; 0xa8
136d4: 4798 blx r3
lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f));
136d6: 6823 ldr r3, [r4, #0]
136d8: 488a ldr r0, [pc, #552] ; (13904 <lv_theme_material_init+0x13a8>)
136da: f103 0ba8 add.w fp, r3, #168 ; 0xa8
136de: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
136e0: f248 01a9 movw r1, #32937 ; 0x80a9
136e4: 4602 mov r2, r0
136e6: 4658 mov r0, fp
136e8: 47b8 blx r7
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
136ea: 6823 ldr r3, [r4, #0]
136ec: 2000 movs r0, #0
136ee: f103 0ba8 add.w fp, r3, #168 ; 0xa8
136f2: 47a8 blx r5
136f4: ebc0 00c0 rsb r0, r0, r0, lsl #3
136f8: 28ef cmp r0, #239 ; 0xef
136fa: f340 83d7 ble.w 13eac <lv_theme_material_init+0x1950>
136fe: 2000 movs r0, #0
13700: 47a8 blx r5
13702: 2107 movs r1, #7
13704: 2350 movs r3, #80 ; 0x50
13706: fb00 3001 mla r0, r0, r1, r3
1370a: 22a0 movs r2, #160 ; 0xa0
1370c: fb90 f2f2 sdiv r2, r0, r2
13710: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13712: 4658 mov r0, fp
13714: 2110 movs r1, #16
13716: 47b0 blx r6
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13718: 6823 ldr r3, [r4, #0]
1371a: 2000 movs r0, #0
1371c: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13720: 47a8 blx r5
13722: ebc0 00c0 rsb r0, r0, r0, lsl #3
13726: 28ef cmp r0, #239 ; 0xef
13728: f340 83c2 ble.w 13eb0 <lv_theme_material_init+0x1954>
1372c: 2000 movs r0, #0
1372e: 47a8 blx r5
13730: 2107 movs r1, #7
13732: 2350 movs r3, #80 ; 0x50
13734: fb00 3001 mla r0, r0, r1, r3
13738: 22a0 movs r2, #160 ; 0xa0
1373a: fb90 f2f2 sdiv r2, r0, r2
1373e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
13740: 4658 mov r0, fp
13742: 2112 movs r1, #18
13744: 47b0 blx r6
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13746: 6823 ldr r3, [r4, #0]
13748: 2000 movs r0, #0
1374a: f103 0ba8 add.w fp, r3, #168 ; 0xa8
1374e: 47a8 blx r5
13750: ebc0 00c0 rsb r0, r0, r0, lsl #3
13754: 28ef cmp r0, #239 ; 0xef
13756: f340 83ad ble.w 13eb4 <lv_theme_material_init+0x1958>
1375a: 2000 movs r0, #0
1375c: 47a8 blx r5
1375e: 2107 movs r1, #7
13760: 2350 movs r3, #80 ; 0x50
13762: fb00 3001 mla r0, r0, r1, r3
13766: 22a0 movs r2, #160 ; 0xa0
13768: fb90 f2f2 sdiv r2, r0, r2
1376c: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1376e: 2113 movs r1, #19
13770: 4658 mov r0, fp
13772: 47b0 blx r6
style_init_reset(&styles->tabview_btns);
13774: 6820 ldr r0, [r4, #0]
13776: 9b01 ldr r3, [sp, #4]
13778: 30a4 adds r0, #164 ; 0xa4
1377a: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50);
1377c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1377e: 227f movs r2, #127 ; 0x7f
13780: f241 012c movw r1, #4140 ; 0x102c
13784: 30a4 adds r0, #164 ; 0xa4
13786: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888));
13788: 6823 ldr r3, [r4, #0]
1378a: f640 0088 movw r0, #2184 ; 0x888
1378e: f103 0ba4 add.w fp, r3, #164 ; 0xa4
13792: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13794: f241 0129 movw r1, #4137 ; 0x1029
13798: 4602 mov r2, r0
1379a: 4658 mov r0, fp
1379c: 47b8 blx r7
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
1379e: 6823 ldr r3, [r4, #0]
137a0: f103 0aa4 add.w sl, r3, #164 ; 0xa4
137a4: 6a23 ldr r3, [r4, #32]
137a6: 079a lsls r2, r3, #30
137a8: bf4c ite mi
137aa: 4853 ldrmi r0, [pc, #332] ; (138f8 <lv_theme_material_init+0x139c>)
137ac: 4853 ldrpl r0, [pc, #332] ; (138fc <lv_theme_material_init+0x13a0>)
137ae: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
137b0: f248 1189 movw r1, #33161 ; 0x8189
137b4: 4602 mov r2, r0
137b6: 4650 mov r0, sl
137b8: 47b8 blx r7
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
137ba: 6823 ldr r3, [r4, #0]
137bc: 2000 movs r0, #0
137be: f103 0aa4 add.w sl, r3, #164 ; 0xa4
137c2: 47a8 blx r5
137c4: eb00 0080 add.w r0, r0, r0, lsl #2
137c8: 0080 lsls r0, r0, #2
137ca: 28ef cmp r0, #239 ; 0xef
137cc: f340 8374 ble.w 13eb8 <lv_theme_material_init+0x195c>
137d0: 2000 movs r0, #0
137d2: 47a8 blx r5
137d4: 2114 movs r1, #20
137d6: 2350 movs r3, #80 ; 0x50
137d8: fb00 3001 mla r0, r0, r1, r3
137dc: 22a0 movs r2, #160 ; 0xa0
137de: fb90 f2f2 sdiv r2, r0, r2
137e2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
137e4: 4650 mov r0, sl
137e6: 2110 movs r1, #16
137e8: 47b0 blx r6
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
137ea: 6823 ldr r3, [r4, #0]
137ec: 2000 movs r0, #0
137ee: f103 0aa4 add.w sl, r3, #164 ; 0xa4
137f2: 47a8 blx r5
137f4: eb00 0080 add.w r0, r0, r0, lsl #2
137f8: 0080 lsls r0, r0, #2
137fa: 28ef cmp r0, #239 ; 0xef
137fc: f340 835e ble.w 13ebc <lv_theme_material_init+0x1960>
13800: 2000 movs r0, #0
13802: 47a8 blx r5
13804: 2114 movs r1, #20
13806: 2350 movs r3, #80 ; 0x50
13808: fb00 3001 mla r0, r0, r1, r3
1380c: 22a0 movs r2, #160 ; 0xa0
1380e: fb90 f2f2 sdiv r2, r0, r2
13812: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13814: 2111 movs r1, #17
13816: 4650 mov r0, sl
13818: 47b0 blx r6
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary);
1381a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1381c: 89a2 ldrh r2, [r4, #12]
1381e: f248 2189 movw r1, #33417 ; 0x8289
13822: 30a4 adds r0, #164 ; 0xa4
13824: 47b8 blx r7
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary);
13826: 6820 ldr r0, [r4, #0]
13828: 89e2 ldrh r2, [r4, #14]
1382a: f248 4189 movw r1, #33929 ; 0x8489
1382e: 30a4 adds r0, #164 ; 0xa4
13830: 47b8 blx r7
style_init_reset(&styles->tabview_indic);
13832: 6820 ldr r0, [r4, #0]
13834: 9b01 ldr r3, [sp, #4]
13836: 30ac adds r0, #172 ; 0xac
13838: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
1383a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1383c: 22ff movs r2, #255 ; 0xff
1383e: 212c movs r1, #44 ; 0x2c
13840: 30ac adds r0, #172 ; 0xac
13842: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary);
13844: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13846: 89a2 ldrh r2, [r4, #12]
13848: 2129 movs r1, #41 ; 0x29
1384a: 30ac adds r0, #172 ; 0xac
1384c: 47b8 blx r7
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary);
1384e: 6820 ldr r0, [r4, #0]
13850: 89e2 ldrh r2, [r4, #14]
13852: f240 4129 movw r1, #1065 ; 0x429
13856: 30ac adds r0, #172 ; 0xac
13858: 47b8 blx r7
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
1385a: 6823 ldr r3, [r4, #0]
1385c: 2000 movs r0, #0
1385e: f103 09ac add.w r9, r3, #172 ; 0xac
13862: 47a8 blx r5
13864: eb00 0080 add.w r0, r0, r0, lsl #2
13868: 28ef cmp r0, #239 ; 0xef
1386a: f340 8329 ble.w 13ec0 <lv_theme_material_init+0x1964>
1386e: 2000 movs r0, #0
13870: 47a8 blx r5
13872: 2105 movs r1, #5
13874: 2350 movs r3, #80 ; 0x50
13876: fb00 3001 mla r0, r0, r1, r3
1387a: 22a0 movs r2, #160 ; 0xa0
1387c: fb90 f2f2 sdiv r2, r0, r2
13880: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
13882: 4648 mov r0, r9
13884: 2103 movs r1, #3
13886: 47b0 blx r6
lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
13888: 6820 ldr r0, [r4, #0]
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
1388a: f8df 9084 ldr.w r9, [pc, #132] ; 13910 <lv_theme_material_init+0x13b4>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1388e: f647 72ff movw r2, #32767 ; 0x7fff
13892: 2101 movs r1, #1
13894: 30ac adds r0, #172 ; 0xac
13896: 47b0 blx r6
style_init_reset(&styles->tabview_page_scrl);
13898: 6820 ldr r0, [r4, #0]
1389a: 9b01 ldr r3, [sp, #4]
1389c: 30b0 adds r0, #176 ; 0xb0
1389e: 4798 blx r3
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
138a0: 6823 ldr r3, [r4, #0]
138a2: 2000 movs r0, #0
138a4: f103 0ab0 add.w sl, r3, #176 ; 0xb0
138a8: 47c8 blx r9
138aa: 2801 cmp r0, #1
138ac: f04f 0000 mov.w r0, #0
138b0: f200 8313 bhi.w 13eda <lv_theme_material_init+0x197e>
138b4: 47a8 blx r5
138b6: ebc0 1000 rsb r0, r0, r0, lsl #4
138ba: 28ef cmp r0, #239 ; 0xef
138bc: f300 8302 bgt.w 13ec4 <lv_theme_material_init+0x1968>
138c0: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
138c2: 4650 mov r0, sl
138c4: 2110 movs r1, #16
138c6: 47b0 blx r6
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
138c8: 6823 ldr r3, [r4, #0]
138ca: 2000 movs r0, #0
138cc: f103 0ab0 add.w sl, r3, #176 ; 0xb0
138d0: 47c8 blx r9
138d2: 2801 cmp r0, #1
138d4: f04f 0000 mov.w r0, #0
138d8: f200 8315 bhi.w 13f06 <lv_theme_material_init+0x19aa>
138dc: 47a8 blx r5
138de: ebc0 1000 rsb r0, r0, r0, lsl #4
138e2: 28ef cmp r0, #239 ; 0xef
138e4: f300 8304 bgt.w 13ef0 <lv_theme_material_init+0x1994>
138e8: e014 b.n 13914 <lv_theme_material_init+0x13b8>
138ea: bf00 nop
138ec: 000242b6 .word 0x000242b6
138f0: 00586273 .word 0x00586273
138f4: 00e4eaf0 .word 0x00e4eaf0
138f8: 003b3e42 .word 0x003b3e42
138fc: 00e7e9ec .word 0x00e7e9ec
13900: 00005ae9 .word 0x00005ae9
13904: 00979a9f .word 0x00979a9f
13908: 00010b1d .word 0x00010b1d
1390c: 00010efd .word 0x00010efd
13910: 0000d9ad .word 0x0000d9ad
13914: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13916: 4650 mov r0, sl
13918: 2111 movs r1, #17
1391a: 47b0 blx r6
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
1391c: 6823 ldr r3, [r4, #0]
1391e: 2000 movs r0, #0
13920: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13924: 47c8 blx r9
13926: 2801 cmp r0, #1
13928: f04f 0000 mov.w r0, #0
1392c: f200 8301 bhi.w 13f32 <lv_theme_material_init+0x19d6>
13930: 47a8 blx r5
13932: ebc0 1000 rsb r0, r0, r0, lsl #4
13936: 28ef cmp r0, #239 ; 0xef
13938: f300 82f0 bgt.w 13f1c <lv_theme_material_init+0x19c0>
1393c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1393e: 4650 mov r0, sl
13940: 2112 movs r1, #18
13942: 47b0 blx r6
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13944: 6823 ldr r3, [r4, #0]
13946: 2000 movs r0, #0
13948: f103 0ab0 add.w sl, r3, #176 ; 0xb0
1394c: 47c8 blx r9
1394e: 2801 cmp r0, #1
13950: f04f 0000 mov.w r0, #0
13954: f200 8303 bhi.w 13f5e <lv_theme_material_init+0x1a02>
13958: 47a8 blx r5
1395a: ebc0 1000 rsb r0, r0, r0, lsl #4
1395e: 28ef cmp r0, #239 ; 0xef
13960: f300 82f2 bgt.w 13f48 <lv_theme_material_init+0x19ec>
13964: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13966: 4650 mov r0, sl
13968: 2113 movs r1, #19
1396a: 47b0 blx r6
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
1396c: 6823 ldr r3, [r4, #0]
1396e: 2000 movs r0, #0
13970: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13974: 47c8 blx r9
13976: 2801 cmp r0, #1
13978: f04f 0000 mov.w r0, #0
1397c: f200 8305 bhi.w 13f8a <lv_theme_material_init+0x1a2e>
13980: 47a8 blx r5
13982: ebc0 1000 rsb r0, r0, r0, lsl #4
13986: 28ef cmp r0, #239 ; 0xef
13988: f300 82f4 bgt.w 13f74 <lv_theme_material_init+0x1a18>
1398c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1398e: 2114 movs r1, #20
13990: 4650 mov r0, sl
13992: 47b0 blx r6
style_init_reset(&styles->table_cell);
13994: 6820 ldr r0, [r4, #0]
13996: 9b01 ldr r3, [sp, #4]
13998: 30a0 adds r0, #160 ; 0xa0
1399a: 4798 blx r3
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
1399c: 6823 ldr r3, [r4, #0]
1399e: f103 0aa0 add.w sl, r3, #160 ; 0xa0
139a2: 6a23 ldr r3, [r4, #32]
139a4: 079b lsls r3, r3, #30
139a6: bf4c ite mi
139a8: 48c9 ldrmi r0, [pc, #804] ; (13cd0 <lv_theme_material_init+0x1774>)
139aa: 48ca ldrpl r0, [pc, #808] ; (13cd4 <lv_theme_material_init+0x1778>)
139ac: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
139ae: 2139 movs r1, #57 ; 0x39
139b0: 4602 mov r2, r0
139b2: 4650 mov r0, sl
139b4: 47b8 blx r7
lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1);
139b6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
139b8: 2201 movs r2, #1
139ba: 2130 movs r1, #48 ; 0x30
139bc: 30a0 adds r0, #160 ; 0xa0
139be: 47b0 blx r6
lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM);
139c0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
139c2: 2203 movs r2, #3
139c4: 2131 movs r1, #49 ; 0x31
139c6: 30a0 adds r0, #160 ; 0xa0
139c8: 47b0 blx r6
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
139ca: 2000 movs r0, #0
139cc: 6827 ldr r7, [r4, #0]
139ce: 47c8 blx r9
139d0: 2801 cmp r0, #1
139d2: f107 07a0 add.w r7, r7, #160 ; 0xa0
139d6: f04f 0000 mov.w r0, #0
139da: f200 82ec bhi.w 13fb6 <lv_theme_material_init+0x1a5a>
139de: 47a8 blx r5
139e0: ebc0 1000 rsb r0, r0, r0, lsl #4
139e4: 28ef cmp r0, #239 ; 0xef
139e6: f300 82db bgt.w 13fa0 <lv_theme_material_init+0x1a44>
139ea: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
139ec: 2112 movs r1, #18
139ee: 4638 mov r0, r7
139f0: 47b0 blx r6
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
139f2: 2000 movs r0, #0
139f4: 6824 ldr r4, [r4, #0]
139f6: 47c8 blx r9
139f8: 2801 cmp r0, #1
139fa: f104 04a0 add.w r4, r4, #160 ; 0xa0
139fe: f04f 0000 mov.w r0, #0
13a02: f200 82ee bhi.w 13fe2 <lv_theme_material_init+0x1a86>
13a06: 47a8 blx r5
13a08: ebc0 1000 rsb r0, r0, r0, lsl #4
13a0c: 28ef cmp r0, #239 ; 0xef
13a0e: f300 82dd bgt.w 13fcc <lv_theme_material_init+0x1a70>
13a12: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13a14: 4620 mov r0, r4
13a16: 2113 movs r1, #19
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13a18: 4caf ldr r4, [pc, #700] ; (13cd8 <lv_theme_material_init+0x177c>)
13a1a: 47b0 blx r6
13a1c: 2000 movs r0, #0
13a1e: 6827 ldr r7, [r4, #0]
13a20: 47c8 blx r9
13a22: 2801 cmp r0, #1
13a24: f107 07a0 add.w r7, r7, #160 ; 0xa0
13a28: f04f 0000 mov.w r0, #0
13a2c: f200 82ef bhi.w 1400e <lv_theme_material_init+0x1ab2>
13a30: 47a8 blx r5
13a32: ebc0 1000 rsb r0, r0, r0, lsl #4
13a36: 28ef cmp r0, #239 ; 0xef
13a38: f300 82de bgt.w 13ff8 <lv_theme_material_init+0x1a9c>
13a3c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13a3e: 2110 movs r1, #16
13a40: 4638 mov r0, r7
13a42: 47b0 blx r6
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13a44: 2000 movs r0, #0
13a46: 6825 ldr r5, [r4, #0]
13a48: 4ea4 ldr r6, [pc, #656] ; (13cdc <lv_theme_material_init+0x1780>)
13a4a: 47c8 blx r9
13a4c: 2801 cmp r0, #1
13a4e: f105 05a0 add.w r5, r5, #160 ; 0xa0
13a52: f04f 0000 mov.w r0, #0
13a56: f200 82f0 bhi.w 1403a <lv_theme_material_init+0x1ade>
13a5a: 47b0 blx r6
13a5c: ebc0 1000 rsb r0, r0, r0, lsl #4
13a60: 28ef cmp r0, #239 ; 0xef
13a62: f300 82df bgt.w 14024 <lv_theme_material_init+0x1ac8>
13a66: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13a68: 2111 movs r1, #17
13a6a: 4628 mov r0, r5
13a6c: 4b9c ldr r3, [pc, #624] ; (13ce0 <lv_theme_material_init+0x1784>)
13a6e: 4798 blx r3
theme.apply_xcb = theme_apply;
13a70: 4b9c ldr r3, [pc, #624] ; (13ce4 <lv_theme_material_init+0x1788>)
13a72: 60a3 str r3, [r4, #8]
inited = true;
13a74: 2301 movs r3, #1
13a76: 7123 strb r3, [r4, #4]
lv_obj_report_style_mod(NULL);
13a78: 2000 movs r0, #0
13a7a: 4b9b ldr r3, [pc, #620] ; (13ce8 <lv_theme_material_init+0x178c>)
13a7c: 4798 blx r3
}
13a7e: 489b ldr r0, [pc, #620] ; (13cec <lv_theme_material_init+0x1790>)
13a80: b003 add sp, #12
13a82: ecbd 8b02 vpop {d8}
13a86: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
13a8a: 2201 movs r2, #1
13a8c: f7fe bdb3 b.w 125f6 <lv_theme_material_init+0x9a>
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
13a90: 2201 movs r2, #1
13a92: f7fe bde2 b.w 1265a <lv_theme_material_init+0xfe>
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13a96: 2000 movs r0, #0
13a98: 47a8 blx r5
13a9a: 210f movs r1, #15
13a9c: 2350 movs r3, #80 ; 0x50
13a9e: fb00 3001 mla r0, r0, r1, r3
13aa2: 22a0 movs r2, #160 ; 0xa0
13aa4: fb90 f2f2 sdiv r2, r0, r2
13aa8: b212 sxth r2, r2
13aaa: f7fe bdf6 b.w 1269a <lv_theme_material_init+0x13e>
13aae: 47a8 blx r5
13ab0: ebc0 1000 rsb r0, r0, r0, lsl #4
13ab4: 0040 lsls r0, r0, #1
13ab6: 28ef cmp r0, #239 ; 0xef
13ab8: f77e adee ble.w 12698 <lv_theme_material_init+0x13c>
13abc: 2000 movs r0, #0
13abe: 47a8 blx r5
13ac0: 211e movs r1, #30
13ac2: e7eb b.n 13a9c <lv_theme_material_init+0x1540>
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13ac4: 2000 movs r0, #0
13ac6: 47a8 blx r5
13ac8: 210f movs r1, #15
13aca: 2350 movs r3, #80 ; 0x50
13acc: fb00 3001 mla r0, r0, r1, r3
13ad0: 22a0 movs r2, #160 ; 0xa0
13ad2: fb90 f2f2 sdiv r2, r0, r2
13ad6: b212 sxth r2, r2
13ad8: f7fe bdf3 b.w 126c2 <lv_theme_material_init+0x166>
13adc: 47a8 blx r5
13ade: ebc0 1000 rsb r0, r0, r0, lsl #4
13ae2: 0040 lsls r0, r0, #1
13ae4: 28ef cmp r0, #239 ; 0xef
13ae6: f77e adeb ble.w 126c0 <lv_theme_material_init+0x164>
13aea: 2000 movs r0, #0
13aec: 47a8 blx r5
13aee: 211e movs r1, #30
13af0: e7eb b.n 13aca <lv_theme_material_init+0x156e>
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13af2: 2000 movs r0, #0
13af4: 47a8 blx r5
13af6: 210f movs r1, #15
13af8: 2350 movs r3, #80 ; 0x50
13afa: fb00 3001 mla r0, r0, r1, r3
13afe: 22a0 movs r2, #160 ; 0xa0
13b00: fb90 f2f2 sdiv r2, r0, r2
13b04: b212 sxth r2, r2
13b06: f7fe bdf0 b.w 126ea <lv_theme_material_init+0x18e>
13b0a: 47a8 blx r5
13b0c: ebc0 1000 rsb r0, r0, r0, lsl #4
13b10: 0040 lsls r0, r0, #1
13b12: 28ef cmp r0, #239 ; 0xef
13b14: f77e ade8 ble.w 126e8 <lv_theme_material_init+0x18c>
13b18: 2000 movs r0, #0
13b1a: 47a8 blx r5
13b1c: 211e movs r1, #30
13b1e: e7eb b.n 13af8 <lv_theme_material_init+0x159c>
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13b20: 2000 movs r0, #0
13b22: 47a8 blx r5
13b24: 210f movs r1, #15
13b26: 2350 movs r3, #80 ; 0x50
13b28: fb00 3001 mla r0, r0, r1, r3
13b2c: 22a0 movs r2, #160 ; 0xa0
13b2e: fb90 f2f2 sdiv r2, r0, r2
13b32: b212 sxth r2, r2
13b34: f7fe bded b.w 12712 <lv_theme_material_init+0x1b6>
13b38: 47a8 blx r5
13b3a: ebc0 1000 rsb r0, r0, r0, lsl #4
13b3e: 0040 lsls r0, r0, #1
13b40: 28ef cmp r0, #239 ; 0xef
13b42: f77e ade5 ble.w 12710 <lv_theme_material_init+0x1b4>
13b46: 2000 movs r0, #0
13b48: 47a8 blx r5
13b4a: 211e movs r1, #30
13b4c: e7eb b.n 13b26 <lv_theme_material_init+0x15ca>
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
13b4e: f8bb 2000 ldrh.w r2, [fp]
13b52: f7fe bdf0 b.w 12736 <lv_theme_material_init+0x1da>
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
13b56: 4b66 ldr r3, [pc, #408] ; (13cf0 <lv_theme_material_init+0x1794>)
13b58: f640 60ee movw r0, #3822 ; 0xeee
13b5c: 4798 blx r3
13b5e: f7fe bdfb b.w 12758 <lv_theme_material_init+0x1fc>
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13b62: 2000 movs r0, #0
13b64: 47a8 blx r5
13b66: 210f movs r1, #15
13b68: 2350 movs r3, #80 ; 0x50
13b6a: fb00 3001 mla r0, r0, r1, r3
13b6e: 22a0 movs r2, #160 ; 0xa0
13b70: fb90 f2f2 sdiv r2, r0, r2
13b74: b212 sxth r2, r2
13b76: f7fe be07 b.w 12788 <lv_theme_material_init+0x22c>
13b7a: 47a8 blx r5
13b7c: ebc0 1000 rsb r0, r0, r0, lsl #4
13b80: 0040 lsls r0, r0, #1
13b82: 28ef cmp r0, #239 ; 0xef
13b84: f77e adff ble.w 12786 <lv_theme_material_init+0x22a>
13b88: 2000 movs r0, #0
13b8a: 47a8 blx r5
13b8c: 211e movs r1, #30
13b8e: e7eb b.n 13b68 <lv_theme_material_init+0x160c>
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13b90: 2000 movs r0, #0
13b92: 47a8 blx r5
13b94: 210f movs r1, #15
13b96: 2350 movs r3, #80 ; 0x50
13b98: fb00 3001 mla r0, r0, r1, r3
13b9c: 22a0 movs r2, #160 ; 0xa0
13b9e: fb90 f2f2 sdiv r2, r0, r2
13ba2: b212 sxth r2, r2
13ba4: f7fe be06 b.w 127b4 <lv_theme_material_init+0x258>
13ba8: 47a8 blx r5
13baa: ebc0 1000 rsb r0, r0, r0, lsl #4
13bae: 0040 lsls r0, r0, #1
13bb0: 28ef cmp r0, #239 ; 0xef
13bb2: f77e adfe ble.w 127b2 <lv_theme_material_init+0x256>
13bb6: 2000 movs r0, #0
13bb8: 47a8 blx r5
13bba: 211e movs r1, #30
13bbc: e7eb b.n 13b96 <lv_theme_material_init+0x163a>
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13bbe: 2000 movs r0, #0
13bc0: 47a8 blx r5
13bc2: 210f movs r1, #15
13bc4: 2350 movs r3, #80 ; 0x50
13bc6: fb00 3001 mla r0, r0, r1, r3
13bca: 22a0 movs r2, #160 ; 0xa0
13bcc: fb90 f2f2 sdiv r2, r0, r2
13bd0: b212 sxth r2, r2
13bd2: f7fe be05 b.w 127e0 <lv_theme_material_init+0x284>
13bd6: 47a8 blx r5
13bd8: ebc0 1000 rsb r0, r0, r0, lsl #4
13bdc: 0040 lsls r0, r0, #1
13bde: 28ef cmp r0, #239 ; 0xef
13be0: f77e adfd ble.w 127de <lv_theme_material_init+0x282>
13be4: 2000 movs r0, #0
13be6: 47a8 blx r5
13be8: 211e movs r1, #30
13bea: e7eb b.n 13bc4 <lv_theme_material_init+0x1668>
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
13bec: 2201 movs r2, #1
13bee: f7fe be0e b.w 1280e <lv_theme_material_init+0x2b2>
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
13bf2: f8bb 2000 ldrh.w r2, [fp]
13bf6: f7fe be47 b.w 12888 <lv_theme_material_init+0x32c>
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
13bfa: f8bd 2004 ldrh.w r2, [sp, #4]
13bfe: f7fe be7d b.w 128fc <lv_theme_material_init+0x3a0>
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
13c02: 2201 movs r2, #1
13c04: f7fe beaa b.w 1295c <lv_theme_material_init+0x400>
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13c08: 2000 movs r0, #0
13c0a: 47a8 blx r5
13c0c: 210f movs r1, #15
13c0e: 2350 movs r3, #80 ; 0x50
13c10: fb00 3001 mla r0, r0, r1, r3
13c14: 22a0 movs r2, #160 ; 0xa0
13c16: fb90 f2f2 sdiv r2, r0, r2
13c1a: b212 sxth r2, r2
13c1c: f7fe beb4 b.w 12988 <lv_theme_material_init+0x42c>
13c20: 47a8 blx r5
13c22: ebc0 1000 rsb r0, r0, r0, lsl #4
13c26: 0040 lsls r0, r0, #1
13c28: 28ef cmp r0, #239 ; 0xef
13c2a: f77e aeac ble.w 12986 <lv_theme_material_init+0x42a>
13c2e: 2000 movs r0, #0
13c30: 47a8 blx r5
13c32: 211e movs r1, #30
13c34: e7eb b.n 13c0e <lv_theme_material_init+0x16b2>
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13c36: 2000 movs r0, #0
13c38: 47a8 blx r5
13c3a: 210f movs r1, #15
13c3c: 2350 movs r3, #80 ; 0x50
13c3e: fb00 3001 mla r0, r0, r1, r3
13c42: 22a0 movs r2, #160 ; 0xa0
13c44: fb90 f2f2 sdiv r2, r0, r2
13c48: b212 sxth r2, r2
13c4a: f7fe beb3 b.w 129b4 <lv_theme_material_init+0x458>
13c4e: 47a8 blx r5
13c50: ebc0 1000 rsb r0, r0, r0, lsl #4
13c54: 0040 lsls r0, r0, #1
13c56: 28ef cmp r0, #239 ; 0xef
13c58: f77e aeab ble.w 129b2 <lv_theme_material_init+0x456>
13c5c: 2000 movs r0, #0
13c5e: 47a8 blx r5
13c60: 211e movs r1, #30
13c62: e7eb b.n 13c3c <lv_theme_material_init+0x16e0>
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13c64: 2000 movs r0, #0
13c66: 47a8 blx r5
13c68: 210f movs r1, #15
13c6a: 2350 movs r3, #80 ; 0x50
13c6c: fb00 3001 mla r0, r0, r1, r3
13c70: 22a0 movs r2, #160 ; 0xa0
13c72: fb90 f2f2 sdiv r2, r0, r2
13c76: b212 sxth r2, r2
13c78: f7fe beb2 b.w 129e0 <lv_theme_material_init+0x484>
13c7c: 47a8 blx r5
13c7e: ebc0 1000 rsb r0, r0, r0, lsl #4
13c82: 0040 lsls r0, r0, #1
13c84: 28ef cmp r0, #239 ; 0xef
13c86: f77e aeaa ble.w 129de <lv_theme_material_init+0x482>
13c8a: 2000 movs r0, #0
13c8c: 47a8 blx r5
13c8e: 211e movs r1, #30
13c90: e7eb b.n 13c6a <lv_theme_material_init+0x170e>
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
13c92: 2201 movs r2, #1
13c94: f7fe bec0 b.w 12a18 <lv_theme_material_init+0x4bc>
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
13c98: 2201 movs r2, #1
13c9a: f7fe bee8 b.w 12a6e <lv_theme_material_init+0x512>
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13c9e: 2201 movs r2, #1
13ca0: f7fe bf31 b.w 12b06 <lv_theme_material_init+0x5aa>
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13ca4: 2201 movs r2, #1
13ca6: f7fe bf47 b.w 12b38 <lv_theme_material_init+0x5dc>
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13caa: 2201 movs r2, #1
13cac: f7fe bf5d b.w 12b6a <lv_theme_material_init+0x60e>
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13cb0: 2201 movs r2, #1
13cb2: f7fe bf7d b.w 12bb0 <lv_theme_material_init+0x654>
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
13cb6: 2201 movs r2, #1
13cb8: f7fe bf8f b.w 12bda <lv_theme_material_init+0x67e>
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
13cbc: 2201 movs r2, #1
13cbe: f7fe bfa4 b.w 12c0a <lv_theme_material_init+0x6ae>
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
13cc2: 2201 movs r2, #1
13cc4: f7fe bfc8 b.w 12c58 <lv_theme_material_init+0x6fc>
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
13cc8: 2201 movs r2, #1
13cca: f7fe bfde b.w 12c8a <lv_theme_material_init+0x72e>
13cce: bf00 nop
13cd0: 00d6dde3 .word 0x00d6dde3
13cd4: 00808a97 .word 0x00808a97
13cd8: 2000c7d4 .word 0x2000c7d4
13cdc: 0000d995 .word 0x0000d995
13ce0: 00005875 .word 0x00005875
13ce4: 00010389 .word 0x00010389
13ce8: 00002f1d .word 0x00002f1d
13cec: 2000c7dc .word 0x2000c7dc
13cf0: 00010351 .word 0x00010351
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
13cf4: 2201 movs r2, #1
13cf6: f7fe bff1 b.w 12cdc <lv_theme_material_init+0x780>
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13cfa: 2201 movs r2, #1
13cfc: f7ff b81b b.w 12d36 <lv_theme_material_init+0x7da>
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13d00: 2201 movs r2, #1
13d02: f7ff b82f b.w 12d64 <lv_theme_material_init+0x808>
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13d06: 2201 movs r2, #1
13d08: f7ff b843 b.w 12d92 <lv_theme_material_init+0x836>
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13d0c: 2201 movs r2, #1
13d0e: f7ff b857 b.w 12dc0 <lv_theme_material_init+0x864>
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
13d12: 2201 movs r2, #1
13d14: f7ff b86e b.w 12df4 <lv_theme_material_init+0x898>
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
13d18: 4619 mov r1, r3
13d1a: 461a mov r2, r3
13d1c: f7ff b883 b.w 12e26 <lv_theme_material_init+0x8ca>
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13d20: 2201 movs r2, #1
13d22: f7ff b8a1 b.w 12e68 <lv_theme_material_init+0x90c>
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13d26: 2201 movs r2, #1
13d28: f7ff b8b5 b.w 12e96 <lv_theme_material_init+0x93a>
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13d2c: 2201 movs r2, #1
13d2e: f7ff b8c9 b.w 12ec4 <lv_theme_material_init+0x968>
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13d32: 2201 movs r2, #1
13d34: f7ff b8dd b.w 12ef2 <lv_theme_material_init+0x996>
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
13d38: 2201 movs r2, #1
13d3a: f7ff b8f1 b.w 12f20 <lv_theme_material_init+0x9c4>
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
13d3e: 2201 movs r2, #1
13d40: f7ff b91c b.w 12f7c <lv_theme_material_init+0xa20>
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
13d44: 4bc5 ldr r3, [pc, #788] ; (1405c <lv_theme_material_init+0x1b00>)
13d46: f640 1099 movw r0, #2457 ; 0x999
13d4a: 4798 blx r3
13d4c: 4602 mov r2, r0
13d4e: f7ff b921 b.w 12f94 <lv_theme_material_init+0xa38>
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13d52: 2201 movs r2, #1
13d54: f7ff b950 b.w 12ff8 <lv_theme_material_init+0xa9c>
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13d58: 2201 movs r2, #1
13d5a: f7ff b964 b.w 13026 <lv_theme_material_init+0xaca>
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13d5e: 2201 movs r2, #1
13d60: f7ff b978 b.w 13054 <lv_theme_material_init+0xaf8>
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
13d64: 2201 movs r2, #1
13d66: f7ff b9ad b.w 130c4 <lv_theme_material_init+0xb68>
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
13d6a: 2201 movs r2, #1
13d6c: f7ff b9bc b.w 130e8 <lv_theme_material_init+0xb8c>
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
13d70: 48bb ldr r0, [pc, #748] ; (14060 <lv_theme_material_init+0x1b04>)
13d72: 47b8 blx r7
13d74: f7ff b9ce b.w 13114 <lv_theme_material_init+0xbb8>
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13d78: 2201 movs r2, #1
13d7a: f7ff b9f9 b.w 13170 <lv_theme_material_init+0xc14>
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13d7e: 2201 movs r2, #1
13d80: f7ff ba0e b.w 131a0 <lv_theme_material_init+0xc44>
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13d84: 2000 movs r0, #0
13d86: 47a8 blx r5
13d88: 210f movs r1, #15
13d8a: 2350 movs r3, #80 ; 0x50
13d8c: fb00 3001 mla r0, r0, r1, r3
13d90: 22a0 movs r2, #160 ; 0xa0
13d92: fb90 f2f2 sdiv r2, r0, r2
13d96: b212 sxth r2, r2
13d98: f7ff bb0d b.w 133b6 <lv_theme_material_init+0xe5a>
13d9c: 47a8 blx r5
13d9e: ebc0 1000 rsb r0, r0, r0, lsl #4
13da2: 0040 lsls r0, r0, #1
13da4: 28ef cmp r0, #239 ; 0xef
13da6: f77f ab05 ble.w 133b4 <lv_theme_material_init+0xe58>
13daa: 2000 movs r0, #0
13dac: 47a8 blx r5
13dae: 211e movs r1, #30
13db0: e7eb b.n 13d8a <lv_theme_material_init+0x182e>
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13db2: 2000 movs r0, #0
13db4: 47a8 blx r5
13db6: 210f movs r1, #15
13db8: 2350 movs r3, #80 ; 0x50
13dba: fb00 3001 mla r0, r0, r1, r3
13dbe: 22a0 movs r2, #160 ; 0xa0
13dc0: fb90 f2f2 sdiv r2, r0, r2
13dc4: b212 sxth r2, r2
13dc6: f7ff bb0a b.w 133de <lv_theme_material_init+0xe82>
13dca: 47a8 blx r5
13dcc: ebc0 1000 rsb r0, r0, r0, lsl #4
13dd0: 0040 lsls r0, r0, #1
13dd2: 28ef cmp r0, #239 ; 0xef
13dd4: f77f ab02 ble.w 133dc <lv_theme_material_init+0xe80>
13dd8: 2000 movs r0, #0
13dda: 47a8 blx r5
13ddc: 211e movs r1, #30
13dde: e7eb b.n 13db8 <lv_theme_material_init+0x185c>
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13de0: 2000 movs r0, #0
13de2: 47a8 blx r5
13de4: 210f movs r1, #15
13de6: 2350 movs r3, #80 ; 0x50
13de8: fb00 3001 mla r0, r0, r1, r3
13dec: 22a0 movs r2, #160 ; 0xa0
13dee: fb90 f2f2 sdiv r2, r0, r2
13df2: b212 sxth r2, r2
13df4: f7ff bb07 b.w 13406 <lv_theme_material_init+0xeaa>
13df8: 47a8 blx r5
13dfa: ebc0 1000 rsb r0, r0, r0, lsl #4
13dfe: 0040 lsls r0, r0, #1
13e00: 28ef cmp r0, #239 ; 0xef
13e02: f77f aaff ble.w 13404 <lv_theme_material_init+0xea8>
13e06: 2000 movs r0, #0
13e08: 47a8 blx r5
13e0a: 211e movs r1, #30
13e0c: e7eb b.n 13de6 <lv_theme_material_init+0x188a>
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13e0e: 2000 movs r0, #0
13e10: 47a8 blx r5
13e12: 210f movs r1, #15
13e14: 2350 movs r3, #80 ; 0x50
13e16: fb00 3001 mla r0, r0, r1, r3
13e1a: 22a0 movs r2, #160 ; 0xa0
13e1c: fb90 f2f2 sdiv r2, r0, r2
13e20: b212 sxth r2, r2
13e22: f7ff bb04 b.w 1342e <lv_theme_material_init+0xed2>
13e26: 47a8 blx r5
13e28: ebc0 1000 rsb r0, r0, r0, lsl #4
13e2c: 0040 lsls r0, r0, #1
13e2e: 28ef cmp r0, #239 ; 0xef
13e30: f77f aafc ble.w 1342c <lv_theme_material_init+0xed0>
13e34: 2000 movs r0, #0
13e36: 47a8 blx r5
13e38: 211e movs r1, #30
13e3a: e7eb b.n 13e14 <lv_theme_material_init+0x18b8>
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13e3c: 2000 movs r0, #0
13e3e: 47a8 blx r5
13e40: 210f movs r1, #15
13e42: 2350 movs r3, #80 ; 0x50
13e44: fb00 3001 mla r0, r0, r1, r3
13e48: 22a0 movs r2, #160 ; 0xa0
13e4a: fb90 f2f2 sdiv r2, r0, r2
13e4e: b212 sxth r2, r2
13e50: f7ff bb01 b.w 13456 <lv_theme_material_init+0xefa>
13e54: 47a8 blx r5
13e56: ebc0 1000 rsb r0, r0, r0, lsl #4
13e5a: 0040 lsls r0, r0, #1
13e5c: 28ef cmp r0, #239 ; 0xef
13e5e: f77f aaf9 ble.w 13454 <lv_theme_material_init+0xef8>
13e62: 2000 movs r0, #0
13e64: 47a8 blx r5
13e66: 211e movs r1, #30
13e68: e7eb b.n 13e42 <lv_theme_material_init+0x18e6>
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
13e6a: 2000 movs r0, #0
13e6c: 47a8 blx r5
13e6e: 210f movs r1, #15
13e70: 2350 movs r3, #80 ; 0x50
13e72: fb00 3001 mla r0, r0, r1, r3
13e76: f06f 029f mvn.w r2, #159 ; 0x9f
13e7a: fb90 f2f2 sdiv r2, r0, r2
13e7e: b212 sxth r2, r2
13e80: f7ff bafe b.w 13480 <lv_theme_material_init+0xf24>
13e84: 47a8 blx r5
13e86: ebc0 1000 rsb r0, r0, r0, lsl #4
13e8a: 0040 lsls r0, r0, #1
13e8c: 28ef cmp r0, #239 ; 0xef
13e8e: f77f aaf5 ble.w 1347c <lv_theme_material_init+0xf20>
13e92: 2000 movs r0, #0
13e94: 47a8 blx r5
13e96: 211e movs r1, #30
13e98: e7ea b.n 13e70 <lv_theme_material_init+0x1914>
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
13e9a: 2201 movs r2, #1
13e9c: f7ff bb30 b.w 13500 <lv_theme_material_init+0xfa4>
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
13ea0: 2201 movs r2, #1
13ea2: f7ff bba5 b.w 135f0 <lv_theme_material_init+0x1094>
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
13ea6: 2201 movs r2, #1
13ea8: f7ff bbf8 b.w 1369c <lv_theme_material_init+0x1140>
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13eac: 2201 movs r2, #1
13eae: e430 b.n 13712 <lv_theme_material_init+0x11b6>
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13eb0: 2201 movs r2, #1
13eb2: e445 b.n 13740 <lv_theme_material_init+0x11e4>
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13eb4: 2201 movs r2, #1
13eb6: e45a b.n 1376e <lv_theme_material_init+0x1212>
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
13eb8: 2201 movs r2, #1
13eba: e493 b.n 137e4 <lv_theme_material_init+0x1288>
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
13ebc: 2201 movs r2, #1
13ebe: e4a9 b.n 13814 <lv_theme_material_init+0x12b8>
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
13ec0: 2201 movs r2, #1
13ec2: e4de b.n 13882 <lv_theme_material_init+0x1326>
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13ec4: 2000 movs r0, #0
13ec6: 47a8 blx r5
13ec8: 210f movs r1, #15
13eca: 2350 movs r3, #80 ; 0x50
13ecc: fb00 3001 mla r0, r0, r1, r3
13ed0: 22a0 movs r2, #160 ; 0xa0
13ed2: fb90 f2f2 sdiv r2, r0, r2
13ed6: b212 sxth r2, r2
13ed8: e4f3 b.n 138c2 <lv_theme_material_init+0x1366>
13eda: 47a8 blx r5
13edc: ebc0 1000 rsb r0, r0, r0, lsl #4
13ee0: 0040 lsls r0, r0, #1
13ee2: 28ef cmp r0, #239 ; 0xef
13ee4: f77f acec ble.w 138c0 <lv_theme_material_init+0x1364>
13ee8: 2000 movs r0, #0
13eea: 47a8 blx r5
13eec: 211e movs r1, #30
13eee: e7ec b.n 13eca <lv_theme_material_init+0x196e>
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13ef0: 2000 movs r0, #0
13ef2: 47a8 blx r5
13ef4: 210f movs r1, #15
13ef6: 2350 movs r3, #80 ; 0x50
13ef8: fb00 3001 mla r0, r0, r1, r3
13efc: 22a0 movs r2, #160 ; 0xa0
13efe: fb90 f2f2 sdiv r2, r0, r2
13f02: b212 sxth r2, r2
13f04: e507 b.n 13916 <lv_theme_material_init+0x13ba>
13f06: 47a8 blx r5
13f08: ebc0 1000 rsb r0, r0, r0, lsl #4
13f0c: 0040 lsls r0, r0, #1
13f0e: 28ef cmp r0, #239 ; 0xef
13f10: f77f ad00 ble.w 13914 <lv_theme_material_init+0x13b8>
13f14: 2000 movs r0, #0
13f16: 47a8 blx r5
13f18: 211e movs r1, #30
13f1a: e7ec b.n 13ef6 <lv_theme_material_init+0x199a>
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13f1c: 2000 movs r0, #0
13f1e: 47a8 blx r5
13f20: 210f movs r1, #15
13f22: 2350 movs r3, #80 ; 0x50
13f24: fb00 3001 mla r0, r0, r1, r3
13f28: 22a0 movs r2, #160 ; 0xa0
13f2a: fb90 f2f2 sdiv r2, r0, r2
13f2e: b212 sxth r2, r2
13f30: e505 b.n 1393e <lv_theme_material_init+0x13e2>
13f32: 47a8 blx r5
13f34: ebc0 1000 rsb r0, r0, r0, lsl #4
13f38: 0040 lsls r0, r0, #1
13f3a: 28ef cmp r0, #239 ; 0xef
13f3c: f77f acfe ble.w 1393c <lv_theme_material_init+0x13e0>
13f40: 2000 movs r0, #0
13f42: 47a8 blx r5
13f44: 211e movs r1, #30
13f46: e7ec b.n 13f22 <lv_theme_material_init+0x19c6>
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13f48: 2000 movs r0, #0
13f4a: 47a8 blx r5
13f4c: 210f movs r1, #15
13f4e: 2350 movs r3, #80 ; 0x50
13f50: fb00 3001 mla r0, r0, r1, r3
13f54: 22a0 movs r2, #160 ; 0xa0
13f56: fb90 f2f2 sdiv r2, r0, r2
13f5a: b212 sxth r2, r2
13f5c: e503 b.n 13966 <lv_theme_material_init+0x140a>
13f5e: 47a8 blx r5
13f60: ebc0 1000 rsb r0, r0, r0, lsl #4
13f64: 0040 lsls r0, r0, #1
13f66: 28ef cmp r0, #239 ; 0xef
13f68: f77f acfc ble.w 13964 <lv_theme_material_init+0x1408>
13f6c: 2000 movs r0, #0
13f6e: 47a8 blx r5
13f70: 211e movs r1, #30
13f72: e7ec b.n 13f4e <lv_theme_material_init+0x19f2>
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13f74: 2000 movs r0, #0
13f76: 47a8 blx r5
13f78: 210f movs r1, #15
13f7a: 2350 movs r3, #80 ; 0x50
13f7c: fb00 3001 mla r0, r0, r1, r3
13f80: 22a0 movs r2, #160 ; 0xa0
13f82: fb90 f2f2 sdiv r2, r0, r2
13f86: b212 sxth r2, r2
13f88: e501 b.n 1398e <lv_theme_material_init+0x1432>
13f8a: 47a8 blx r5
13f8c: ebc0 1000 rsb r0, r0, r0, lsl #4
13f90: 0040 lsls r0, r0, #1
13f92: 28ef cmp r0, #239 ; 0xef
13f94: f77f acfa ble.w 1398c <lv_theme_material_init+0x1430>
13f98: 2000 movs r0, #0
13f9a: 47a8 blx r5
13f9c: 211e movs r1, #30
13f9e: e7ec b.n 13f7a <lv_theme_material_init+0x1a1e>
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13fa0: 2000 movs r0, #0
13fa2: 47a8 blx r5
13fa4: 210f movs r1, #15
13fa6: 2350 movs r3, #80 ; 0x50
13fa8: fb00 3001 mla r0, r0, r1, r3
13fac: 22a0 movs r2, #160 ; 0xa0
13fae: fb90 f2f2 sdiv r2, r0, r2
13fb2: b212 sxth r2, r2
13fb4: e51a b.n 139ec <lv_theme_material_init+0x1490>
13fb6: 47a8 blx r5
13fb8: ebc0 1000 rsb r0, r0, r0, lsl #4
13fbc: 0040 lsls r0, r0, #1
13fbe: 28ef cmp r0, #239 ; 0xef
13fc0: f77f ad13 ble.w 139ea <lv_theme_material_init+0x148e>
13fc4: 2000 movs r0, #0
13fc6: 47a8 blx r5
13fc8: 211e movs r1, #30
13fca: e7ec b.n 13fa6 <lv_theme_material_init+0x1a4a>
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13fcc: 2000 movs r0, #0
13fce: 47a8 blx r5
13fd0: 210f movs r1, #15
13fd2: 2350 movs r3, #80 ; 0x50
13fd4: fb00 3001 mla r0, r0, r1, r3
13fd8: 22a0 movs r2, #160 ; 0xa0
13fda: fb90 f2f2 sdiv r2, r0, r2
13fde: b212 sxth r2, r2
13fe0: e518 b.n 13a14 <lv_theme_material_init+0x14b8>
13fe2: 47a8 blx r5
13fe4: ebc0 1000 rsb r0, r0, r0, lsl #4
13fe8: 0040 lsls r0, r0, #1
13fea: 28ef cmp r0, #239 ; 0xef
13fec: f77f ad11 ble.w 13a12 <lv_theme_material_init+0x14b6>
13ff0: 2000 movs r0, #0
13ff2: 47a8 blx r5
13ff4: 211e movs r1, #30
13ff6: e7ec b.n 13fd2 <lv_theme_material_init+0x1a76>
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13ff8: 2000 movs r0, #0
13ffa: 47a8 blx r5
13ffc: 210f movs r1, #15
13ffe: 2350 movs r3, #80 ; 0x50
14000: fb00 3001 mla r0, r0, r1, r3
14004: 22a0 movs r2, #160 ; 0xa0
14006: fb90 f2f2 sdiv r2, r0, r2
1400a: b212 sxth r2, r2
1400c: e517 b.n 13a3e <lv_theme_material_init+0x14e2>
1400e: 47a8 blx r5
14010: ebc0 1000 rsb r0, r0, r0, lsl #4
14014: 0040 lsls r0, r0, #1
14016: 28ef cmp r0, #239 ; 0xef
14018: f77f ad10 ble.w 13a3c <lv_theme_material_init+0x14e0>
1401c: 2000 movs r0, #0
1401e: 47a8 blx r5
14020: 211e movs r1, #30
14022: e7ec b.n 13ffe <lv_theme_material_init+0x1aa2>
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
14024: 2000 movs r0, #0
14026: 47b0 blx r6
14028: 210f movs r1, #15
1402a: 2350 movs r3, #80 ; 0x50
1402c: fb00 3001 mla r0, r0, r1, r3
14030: 22a0 movs r2, #160 ; 0xa0
14032: fb90 f2f2 sdiv r2, r0, r2
14036: b212 sxth r2, r2
14038: e516 b.n 13a68 <lv_theme_material_init+0x150c>
1403a: 47b0 blx r6
1403c: ebc0 1000 rsb r0, r0, r0, lsl #4
14040: 0040 lsls r0, r0, #1
14042: 28ef cmp r0, #239 ; 0xef
14044: f77f ad0f ble.w 13a66 <lv_theme_material_init+0x150a>
14048: 2000 movs r0, #0
1404a: 47b0 blx r6
1404c: 2350 movs r3, #80 ; 0x50
1404e: 211e movs r1, #30
14050: fb00 3201 mla r2, r0, r1, r3
14054: 23a0 movs r3, #160 ; 0xa0
14056: fb92 f2f3 sdiv r2, r2, r3
1405a: e7ec b.n 14036 <lv_theme_material_init+0x1ada>
1405c: 00010351 .word 0x00010351
14060: 00a1adbd .word 0x00a1adbd
00014064 <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)
{
14064: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14068: 4b9f ldr r3, [pc, #636] ; (142e8 <lv_img_design+0x284>)
{
1406a: b0a7 sub sp, #156 ; 0x9c
1406c: 4616 mov r6, r2
1406e: 4604 mov r4, r0
14070: 4689 mov r9, r1
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14072: 4798 blx r3
if(mode == LV_DESIGN_COVER_CHK) {
14074: 2e02 cmp r6, #2
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14076: 4605 mov r5, r0
if(mode == LV_DESIGN_COVER_CHK) {
14078: d15f bne.n 1413a <lv_img_design+0xd6>
_OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
1407a: 4f9c ldr r7, [pc, #624] ; (142ec <lv_img_design+0x288>)
1407c: 4632 mov r2, r6
1407e: 2100 movs r1, #0
14080: 4620 mov r0, r4
14082: 47b8 blx r7
if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED;
14084: 2800 cmp r0, #0
14086: f040 81f5 bne.w 14474 <lv_img_design+0x410>
if(ext->src_type == LV_IMG_SRC_UNKNOWN || ext->src_type == LV_IMG_SRC_SYMBOL) return LV_DESIGN_RES_NOT_COVER;
1408a: 7d2b ldrb r3, [r5, #20]
1408c: 0799 lsls r1, r3, #30
1408e: d427 bmi.n 140e0 <lv_img_design+0x7c>
/*Non true color format might have "holes"*/
if(ext->cf != LV_IMG_CF_TRUE_COLOR && ext->cf != LV_IMG_CF_RAW) return LV_DESIGN_RES_NOT_COVER;
14090: f003 03f8 and.w r3, r3, #248 ; 0xf8
14094: 2b20 cmp r3, #32
14096: d001 beq.n 1409c <lv_img_design+0x38>
14098: 2b08 cmp r3, #8
1409a: d121 bne.n 140e0 <lv_img_design+0x7c>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
1409c: 2206 movs r2, #6
1409e: 2100 movs r1, #0
140a0: 4620 mov r0, r4
140a2: 47b8 blx r7
int32_t angle_final = lv_obj_get_style_transform_angle(img, LV_IMG_PART_MAIN);
angle_final += ext->angle;
140a4: 89ab ldrh r3, [r5, #12]
if(angle_final == 0) return LV_DESIGN_RES_NOT_COVER;
140a6: 42c3 cmn r3, r0
140a8: d01a beq.n 140e0 <lv_img_design+0x7c>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
140aa: 2207 movs r2, #7
140ac: 2100 movs r1, #0
140ae: 4620 mov r0, r4
140b0: 47b8 blx r7
int32_t zoom_final = lv_obj_get_style_transform_zoom(img, LV_IMG_PART_MAIN);
zoom_final = (zoom_final * ext->zoom) >> 8;
140b2: 8a6b ldrh r3, [r5, #18]
140b4: f8df 8268 ldr.w r8, [pc, #616] ; 14320 <lv_img_design+0x2bc>
140b8: 4358 muls r0, r3
140ba: 1207 asrs r7, r0, #8
if(zoom_final != LV_IMG_ZOOM_NONE) {
140bc: f5b7 7f80 cmp.w r7, #256 ; 0x100
140c0: d012 beq.n 140e8 <lv_img_design+0x84>
if(_lv_area_is_in(clip_area, &img->coords, 0) == false) return LV_DESIGN_RES_NOT_COVER;
140c2: 2200 movs r2, #0
140c4: f104 0110 add.w r1, r4, #16
a.x1 += img->coords.x1;
a.y1 += img->coords.y1;
a.x2 += img->coords.x1;
a.y2 += img->coords.y1;
if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER;
140c8: 4648 mov r0, r9
140ca: 47c0 blx r8
140cc: b140 cbz r0, 140e0 <lv_img_design+0x7c>
_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)
140ce: 4b88 ldr r3, [pc, #544] ; (142f0 <lv_img_design+0x28c>)
140d0: f248 02ac movw r2, #32940 ; 0x80ac
140d4: 2100 movs r1, #0
140d6: 4620 mov r0, r4
140d8: 4798 blx r3
}
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;
140da: 28ff cmp r0, #255 ; 0xff
140dc: bf08 it eq
140de: 2601 moveq r6, #1
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
}
}
return LV_DESIGN_RES_OK;
}
140e0: 4630 mov r0, r6
140e2: b027 add sp, #156 ; 0x9c
140e4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_img_buf_get_transformed_area(&a, lv_obj_get_width(img), lv_obj_get_height(img), 0, zoom_final, &ext->pivot);
140e8: 4b82 ldr r3, [pc, #520] ; (142f4 <lv_img_design+0x290>)
140ea: 4620 mov r0, r4
140ec: 4798 blx r3
140ee: 4b82 ldr r3, [pc, #520] ; (142f8 <lv_img_design+0x294>)
140f0: 9003 str r0, [sp, #12]
140f2: 4620 mov r0, r4
140f4: 4798 blx r3
140f6: 350e adds r5, #14
140f8: 4602 mov r2, r0
140fa: e9cd 7500 strd r7, r5, [sp]
140fe: 9903 ldr r1, [sp, #12]
14100: 4d7e ldr r5, [pc, #504] ; (142fc <lv_img_design+0x298>)
14102: 2300 movs r3, #0
14104: a811 add r0, sp, #68 ; 0x44
14106: 47a8 blx r5
a.x1 += img->coords.x1;
14108: 8a22 ldrh r2, [r4, #16]
1410a: f8bd 3044 ldrh.w r3, [sp, #68] ; 0x44
a.y1 += img->coords.y1;
1410e: f8bd 1046 ldrh.w r1, [sp, #70] ; 0x46
a.x1 += img->coords.x1;
14112: 4413 add r3, r2
14114: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
a.y1 += img->coords.y1;
14118: 8a63 ldrh r3, [r4, #18]
1411a: 4419 add r1, r3
1411c: f8ad 1046 strh.w r1, [sp, #70] ; 0x46
a.x2 += img->coords.x1;
14120: f8bd 1048 ldrh.w r1, [sp, #72] ; 0x48
14124: 440a add r2, r1
14126: f8ad 2048 strh.w r2, [sp, #72] ; 0x48
a.y2 += img->coords.y1;
1412a: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a
1412e: 4413 add r3, r2
14130: f8ad 304a strh.w r3, [sp, #74] ; 0x4a
if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER;
14134: 2200 movs r2, #0
14136: a911 add r1, sp, #68 ; 0x44
14138: e7c6 b.n 140c8 <lv_img_design+0x64>
else if(mode == LV_DESIGN_DRAW_MAIN) {
1413a: 2e00 cmp r6, #0
1413c: f040 816f bne.w 1441e <lv_img_design+0x3ba>
if(ext->h == 0 || ext->w == 0) return true;
14140: f9b0 300a ldrsh.w r3, [r0, #10]
14144: 2b00 cmp r3, #0
14146: f000 8168 beq.w 1441a <lv_img_design+0x3b6>
1414a: f9b0 3008 ldrsh.w r3, [r0, #8]
1414e: 2b00 cmp r3, #0
14150: f000 8163 beq.w 1441a <lv_img_design+0x3b6>
lv_obj_get_coords(img, &img_coords);
14154: a904 add r1, sp, #16
14156: 4b6a ldr r3, [pc, #424] ; (14300 <lv_img_design+0x29c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
14158: 4f64 ldr r7, [pc, #400] ; (142ec <lv_img_design+0x288>)
1415a: 4620 mov r0, r4
1415c: 4798 blx r3
lv_draw_rect_dsc_init(&bg_dsc);
1415e: 4b69 ldr r3, [pc, #420] ; (14304 <lv_img_design+0x2a0>)
14160: a811 add r0, sp, #68 ; 0x44
14162: 4798 blx r3
lv_obj_init_draw_rect_dsc(img, LV_IMG_PART_MAIN, &bg_dsc);
14164: 4b68 ldr r3, [pc, #416] ; (14308 <lv_img_design+0x2a4>)
14166: aa11 add r2, sp, #68 ; 0x44
14168: 4631 mov r1, r6
1416a: 4620 mov r0, r4
1416c: 4798 blx r3
1416e: 2233 movs r2, #51 ; 0x33
14170: 4631 mov r1, r6
14172: 4620 mov r0, r4
14174: 47b8 blx r7
14176: 46b8 mov r8, r7
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
14178: b108 cbz r0, 1417e <lv_img_design+0x11a>
bg_dsc.border_opa = LV_OPA_TRANSP;
1417a: f88d 6058 strb.w r6, [sp, #88] ; 0x58
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
1417e: 2207 movs r2, #7
14180: 2100 movs r1, #0
14182: 4620 mov r0, r4
14184: 47c0 blx r8
zoom_final = (zoom_final * ext->zoom) >> 8;
14186: 8a6b ldrh r3, [r5, #18]
14188: 4358 muls r0, r3
if(zoom_final == 0) return LV_DESIGN_RES_OK;
1418a: 1207 asrs r7, r0, #8
1418c: d0a8 beq.n 140e0 <lv_img_design+0x7c>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
1418e: 2206 movs r2, #6
14190: 2100 movs r1, #0
14192: 4620 mov r0, r4
14194: 47c0 blx r8
* @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);
14196: f8bd 2016 ldrh.w r2, [sp, #22]
1419a: f8bd 3012 ldrh.w r3, [sp, #18]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1419e: f8bd 1014 ldrh.w r1, [sp, #20]
angle_final += ext->angle;
141a2: f8b5 a00c ldrh.w sl, [r5, #12]
_lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords),
141a6: f8df b154 ldr.w fp, [pc, #340] ; 142fc <lv_img_design+0x298>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
141aa: 3201 adds r2, #1
141ac: 1ad2 subs r2, r2, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
141ae: f8bd 3010 ldrh.w r3, [sp, #16]
141b2: 3101 adds r1, #1
angle_final += ext->angle;
141b4: 4482 add sl, r0
141b6: 1ac9 subs r1, r1, r3
_lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords),
141b8: b2bf uxth r7, r7
141ba: f105 030e add.w r3, r5, #14
141be: e9cd 7300 strd r7, r3, [sp]
141c2: b212 sxth r2, r2
141c4: fa0f f38a sxth.w r3, sl
141c8: b209 sxth r1, r1
141ca: a806 add r0, sp, #24
141cc: 47d8 blx fp
bg_coords.x1 += img_coords.x1;
141ce: f8bd 2010 ldrh.w r2, [sp, #16]
141d2: f8bd 3018 ldrh.w r3, [sp, #24]
bg_coords.y1 += img_coords.y1;
141d6: f8bd 101a ldrh.w r1, [sp, #26]
bg_coords.x1 += img_coords.x1;
141da: 4413 add r3, r2
141dc: f8ad 3018 strh.w r3, [sp, #24]
bg_coords.y1 += img_coords.y1;
141e0: f8bd 3012 ldrh.w r3, [sp, #18]
141e4: 4419 add r1, r3
141e6: f8ad 101a strh.w r1, [sp, #26]
bg_coords.x2 += img_coords.x1;
141ea: f8bd 101c ldrh.w r1, [sp, #28]
141ee: 440a add r2, r1
141f0: f8ad 201c strh.w r2, [sp, #28]
bg_coords.y2 += img_coords.y1;
141f4: f8bd 201e ldrh.w r2, [sp, #30]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
141f8: 2100 movs r1, #0
141fa: 4413 add r3, r2
141fc: 4620 mov r0, r4
141fe: 2212 movs r2, #18
14200: f8ad 301e strh.w r3, [sp, #30]
14204: 47c0 blx r8
bg_coords.x1 -= lv_obj_get_style_pad_left(img, LV_IMG_PART_MAIN);
14206: f8bd 3018 ldrh.w r3, [sp, #24]
1420a: 1a18 subs r0, r3, r0
1420c: f8ad 0018 strh.w r0, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14210: 2213 movs r2, #19
14212: 2100 movs r1, #0
14214: 4620 mov r0, r4
14216: 47c0 blx r8
bg_coords.x2 += lv_obj_get_style_pad_right(img, LV_IMG_PART_MAIN);
14218: f8bd 301c ldrh.w r3, [sp, #28]
1421c: 4418 add r0, r3
1421e: f8ad 001c strh.w r0, [sp, #28]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14222: 2210 movs r2, #16
14224: 2100 movs r1, #0
14226: 4620 mov r0, r4
14228: 47c0 blx r8
bg_coords.y1 -= lv_obj_get_style_pad_top(img, LV_IMG_PART_MAIN);
1422a: f8bd 301a ldrh.w r3, [sp, #26]
1422e: 1a18 subs r0, r3, r0
14230: f8ad 001a strh.w r0, [sp, #26]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14234: 2211 movs r2, #17
14236: 2100 movs r1, #0
14238: 4620 mov r0, r4
1423a: 47c0 blx r8
bg_coords.y2 += lv_obj_get_style_pad_bottom(img, LV_IMG_PART_MAIN);
1423c: f8bd 301e ldrh.w r3, [sp, #30]
14240: 4418 add r0, r3
14242: f8ad 001e strh.w r0, [sp, #30]
lv_draw_rect(&bg_coords, clip_area, &bg_dsc);
14246: aa11 add r2, sp, #68 ; 0x44
14248: 4649 mov r1, r9
1424a: a806 add r0, sp, #24
1424c: 4b2f ldr r3, [pc, #188] ; (1430c <lv_img_design+0x2a8>)
1424e: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
14250: 2202 movs r2, #2
14252: 2100 movs r1, #0
14254: 4620 mov r0, r4
14256: 47c0 blx r8
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
14258: b198 cbz r0, 14282 <lv_img_design+0x21e>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
1425a: 4b2d ldr r3, [pc, #180] ; (14310 <lv_img_design+0x2ac>)
1425c: 201c movs r0, #28
1425e: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
14260: 2201 movs r2, #1
14262: 4683 mov fp, r0
14264: 2100 movs r1, #0
14266: 4620 mov r0, r4
14268: 47c0 blx r8
lv_draw_mask_radius_init(mp, &bg_coords, r, false);
1426a: 2300 movs r3, #0
1426c: 4602 mov r2, r0
1426e: a906 add r1, sp, #24
14270: 4658 mov r0, fp
14272: f8df 80b0 ldr.w r8, [pc, #176] ; 14324 <lv_img_design+0x2c0>
14276: 47c0 blx r8
lv_draw_mask_add(mp, img + 8);
14278: 4b26 ldr r3, [pc, #152] ; (14314 <lv_img_design+0x2b0>)
1427a: f504 7118 add.w r1, r4, #608 ; 0x260
1427e: 4658 mov r0, fp
14280: 4798 blx r3
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_VARIABLE) {
14282: 7d2b ldrb r3, [r5, #20]
14284: 079a lsls r2, r3, #30
14286: f100 809a bmi.w 143be <lv_img_design+0x35a>
img_coords.x1 += ext->offset.x;
1428a: f8bd 2010 ldrh.w r2, [sp, #16]
1428e: 88ab ldrh r3, [r5, #4]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
14290: f9b4 c010 ldrsh.w ip, [r4, #16]
img_coords.y1 += ext->offset.y;
14294: 88e9 ldrh r1, [r5, #6]
img_coords.x1 += ext->offset.x;
14296: 441a add r2, r3
14298: b290 uxth r0, r2
1429a: b212 sxth r2, r2
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
1429c: 4594 cmp ip, r2
img_coords.x1 += ext->offset.x;
1429e: f8ad 2010 strh.w r2, [sp, #16]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
142a2: bfb8 it lt
142a4: 892a ldrhlt r2, [r5, #8]
img_coords.y1 += ext->offset.y;
142a6: f8bd 3012 ldrh.w r3, [sp, #18]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
142aa: bfbc itt lt
142ac: 1a82 sublt r2, r0, r2
142ae: f8ad 2010 strhlt.w r2, [sp, #16]
img_coords.y1 += ext->offset.y;
142b2: 440b add r3, r1
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
142b4: f9b4 2012 ldrsh.w r2, [r4, #18]
img_coords.y1 += ext->offset.y;
142b8: b299 uxth r1, r3
142ba: b21b sxth r3, r3
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
142bc: 429a cmp r2, r3
img_coords.y1 += ext->offset.y;
142be: f8ad 3012 strh.w r3, [sp, #18]
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
142c2: bfbe ittt lt
142c4: 896b ldrhlt r3, [r5, #10]
142c6: 1acb sublt r3, r1, r3
142c8: f8ad 3012 strhlt.w r3, [sp, #18]
lv_draw_img_dsc_init(&img_dsc);
142cc: a80a add r0, sp, #40 ; 0x28
142ce: 4b12 ldr r3, [pc, #72] ; (14318 <lv_img_design+0x2b4>)
142d0: 4798 blx r3
lv_obj_init_draw_img_dsc(img, LV_IMG_PART_MAIN, &img_dsc);
142d2: 4b12 ldr r3, [pc, #72] ; (1431c <lv_img_design+0x2b8>)
142d4: aa0a add r2, sp, #40 ; 0x28
142d6: 2100 movs r1, #0
142d8: 4620 mov r0, r4
142da: 4798 blx r3
img_dsc.zoom = zoom_final;
142dc: f8ad 7030 strh.w r7, [sp, #48] ; 0x30
if(img_dsc.zoom == 0) return LV_DESIGN_RES_OK;
142e0: bb17 cbnz r7, 14328 <lv_img_design+0x2c4>
return LV_DESIGN_RES_OK;
142e2: 2600 movs r6, #0
142e4: e6fc b.n 140e0 <lv_img_design+0x7c>
142e6: bf00 nop
142e8: 00003f89 .word 0x00003f89
142ec: 000036f1 .word 0x000036f1
142f0: 00003819 .word 0x00003819
142f4: 0000239d .word 0x0000239d
142f8: 000023ed .word 0x000023ed
142fc: 0000c0a5 .word 0x0000c0a5
14300: 00002285 .word 0x00002285
14304: 00009bb5 .word 0x00009bb5
14308: 00004289 .word 0x00004289
1430c: 00009c01 .word 0x00009c01
14310: 0000eefd .word 0x0000eefd
14314: 00009719 .word 0x00009719
14318: 00007551 .word 0x00007551
1431c: 00004881 .word 0x00004881
14320: 0000e0d9 .word 0x0000e0d9
14324: 00009925 .word 0x00009925
img_dsc.pivot.x = ext->pivot.x;
14328: 89eb ldrh r3, [r5, #14]
1432a: f8ad 302c strh.w r3, [sp, #44] ; 0x2c
img_dsc.pivot.y = ext->pivot.y;
1432e: 8a2b ldrh r3, [r5, #16]
14330: f8ad 302e strh.w r3, [sp, #46] ; 0x2e
img_dsc.antialias = ext->antialias;
14334: 7d6b ldrb r3, [r5, #21]
14336: f89d 2037 ldrb.w r2, [sp, #55] ; 0x37
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
1433a: 4c4f ldr r4, [pc, #316] ; (14478 <lv_img_design+0x414>)
img_dsc.angle = angle_final;
1433c: f8ad a02a strh.w sl, [sp, #42] ; 0x2a
img_dsc.antialias = ext->antialias;
14340: f3c3 0300 ubfx r3, r3, #0, #1
14344: f363 0200 bfi r2, r3, #0, #1
14348: f88d 2037 strb.w r2, [sp, #55] ; 0x37
cords_tmp.y1 = img_coords.y1;
1434c: f9bd 3012 ldrsh.w r3, [sp, #18]
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
14350: 896a ldrh r2, [r5, #10]
cords_tmp.y1 = img_coords.y1;
14352: f8ad 3022 strh.w r3, [sp, #34] ; 0x22
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
14356: 3b01 subs r3, #1
14358: 4413 add r3, r2
1435a: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
1435e: f9bd 2022 ldrsh.w r2, [sp, #34] ; 0x22
14362: f9bd 3016 ldrsh.w r3, [sp, #22]
14366: 429a cmp r2, r3
14368: f73f aeba bgt.w 140e0 <lv_img_design+0x7c>
cords_tmp.x1 = img_coords.x1;
1436c: f9bd 3010 ldrsh.w r3, [sp, #16]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
14370: 892a ldrh r2, [r5, #8]
cords_tmp.x1 = img_coords.x1;
14372: f8ad 3020 strh.w r3, [sp, #32]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
14376: 3b01 subs r3, #1
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
14378: 4413 add r3, r2
1437a: f8ad 3024 strh.w r3, [sp, #36] ; 0x24
1437e: f9bd 2020 ldrsh.w r2, [sp, #32]
14382: f9bd 3014 ldrsh.w r3, [sp, #20]
14386: 429a cmp r2, r3
14388: dd0b ble.n 143a2 <lv_img_design+0x33e>
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
1438a: 896b ldrh r3, [r5, #10]
1438c: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
14390: 441a add r2, r3
14392: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
14396: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
1439a: 4413 add r3, r2
1439c: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
143a0: e7dd b.n 1435e <lv_img_design+0x2fa>
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
143a2: 682a ldr r2, [r5, #0]
143a4: ab0a add r3, sp, #40 ; 0x28
143a6: 4649 mov r1, r9
143a8: a808 add r0, sp, #32
143aa: 47a0 blx r4
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
143ac: f8bd 2020 ldrh.w r2, [sp, #32]
143b0: 892b ldrh r3, [r5, #8]
143b2: 441a add r2, r3
143b4: f8ad 2020 strh.w r2, [sp, #32]
143b8: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
143bc: e7dc b.n 14378 <lv_img_design+0x314>
else if(ext->src_type == LV_IMG_SRC_SYMBOL) {
143be: f003 0303 and.w r3, r3, #3
143c2: 2b02 cmp r3, #2
143c4: d118 bne.n 143f8 <lv_img_design+0x394>
lv_draw_label_dsc_init(&label_dsc);
143c6: a80a add r0, sp, #40 ; 0x28
143c8: 4b2c ldr r3, [pc, #176] ; (1447c <lv_img_design+0x418>)
143ca: 4798 blx r3
lv_obj_init_draw_label_dsc(img, LV_IMG_PART_MAIN, &label_dsc);
143cc: aa0a add r2, sp, #40 ; 0x28
143ce: 4620 mov r0, r4
143d0: 4b2b ldr r3, [pc, #172] ; (14480 <lv_img_design+0x41c>)
143d2: 2100 movs r1, #0
143d4: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
143d6: 4b2b ldr r3, [pc, #172] ; (14484 <lv_img_design+0x420>)
143d8: f248 02a9 movw r2, #32937 ; 0x80a9
143dc: 2100 movs r1, #0
143de: 4620 mov r0, r4
143e0: 4798 blx r3
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
143e2: 2300 movs r3, #0
143e4: 9300 str r3, [sp, #0]
label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN);
143e6: f8ad 0028 strh.w r0, [sp, #40] ; 0x28
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
143ea: 682b ldr r3, [r5, #0]
143ec: 4c26 ldr r4, [pc, #152] ; (14488 <lv_img_design+0x424>)
143ee: aa0a add r2, sp, #40 ; 0x28
143f0: 4649 mov r1, r9
143f2: a804 add r0, sp, #16
143f4: 47a0 blx r4
143f6: e673 b.n 140e0 <lv_img_design+0x7c>
LV_LOG_WARN("lv_img_design: image source type is unknown");
143f8: 4b24 ldr r3, [pc, #144] ; (1448c <lv_img_design+0x428>)
143fa: 9300 str r3, [sp, #0]
143fc: 4924 ldr r1, [pc, #144] ; (14490 <lv_img_design+0x42c>)
143fe: 4b25 ldr r3, [pc, #148] ; (14494 <lv_img_design+0x430>)
14400: 4d25 ldr r5, [pc, #148] ; (14498 <lv_img_design+0x434>)
14402: f240 22bb movw r2, #699 ; 0x2bb
14406: 2002 movs r0, #2
14408: 47a8 blx r5
lv_draw_img(&img->coords, clip_area, NULL, NULL);
1440a: 2300 movs r3, #0
1440c: f104 0010 add.w r0, r4, #16
14410: 461a mov r2, r3
14412: 4c19 ldr r4, [pc, #100] ; (14478 <lv_img_design+0x414>)
14414: 4649 mov r1, r9
14416: 47a0 blx r4
14418: e662 b.n 140e0 <lv_img_design+0x7c>
if(ext->h == 0 || ext->w == 0) return true;
1441a: 2601 movs r6, #1
1441c: e660 b.n 140e0 <lv_img_design+0x7c>
else if(mode == LV_DESIGN_DRAW_POST) {
1441e: 2e01 cmp r6, #1
14420: f47f af5f bne.w 142e2 <lv_img_design+0x27e>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
14424: 4d1d ldr r5, [pc, #116] ; (1449c <lv_img_design+0x438>)
14426: 2202 movs r2, #2
14428: 2100 movs r1, #0
1442a: 4620 mov r0, r4
1442c: 47a8 blx r5
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
1442e: b128 cbz r0, 1443c <lv_img_design+0x3d8>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(img + 8);
14430: 4b1b ldr r3, [pc, #108] ; (144a0 <lv_img_design+0x43c>)
14432: f504 7018 add.w r0, r4, #608 ; 0x260
14436: 4798 blx r3
_lv_mem_buf_release(param);
14438: 4b1a ldr r3, [pc, #104] ; (144a4 <lv_img_design+0x440>)
1443a: 4798 blx r3
lv_draw_rect_dsc_init(&draw_dsc);
1443c: a811 add r0, sp, #68 ; 0x44
1443e: 4b1a ldr r3, [pc, #104] ; (144a8 <lv_img_design+0x444>)
14440: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
14442: 2233 movs r2, #51 ; 0x33
14444: 2100 movs r1, #0
14446: 4620 mov r0, r4
14448: 47a8 blx r5
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
1444a: 2800 cmp r0, #0
1444c: f43f af49 beq.w 142e2 <lv_img_design+0x27e>
draw_dsc.bg_opa = LV_OPA_TRANSP;
14450: 2100 movs r1, #0
14452: f88d 1050 strb.w r1, [sp, #80] ; 0x50
draw_dsc.pattern_opa = LV_OPA_TRANSP;
14456: f88d 107a strb.w r1, [sp, #122] ; 0x7a
draw_dsc.shadow_opa = LV_OPA_TRANSP;
1445a: f88d 106c strb.w r1, [sp, #108] ; 0x6c
lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc);
1445e: aa11 add r2, sp, #68 ; 0x44
14460: 4620 mov r0, r4
14462: 4b12 ldr r3, [pc, #72] ; (144ac <lv_img_design+0x448>)
14464: 4798 blx r3
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
14466: 4b12 ldr r3, [pc, #72] ; (144b0 <lv_img_design+0x44c>)
14468: aa11 add r2, sp, #68 ; 0x44
1446a: 4649 mov r1, r9
1446c: f104 0010 add.w r0, r4, #16
14470: 4798 blx r3
14472: e736 b.n 142e2 <lv_img_design+0x27e>
if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED;
14474: 2603 movs r6, #3
14476: e633 b.n 140e0 <lv_img_design+0x7c>
14478: 000075c1 .word 0x000075c1
1447c: 00007855 .word 0x00007855
14480: 000047c9 .word 0x000047c9
14484: 00003795 .word 0x00003795
14488: 00007885 .word 0x00007885
1448c: 0001fe07 .word 0x0001fe07
14490: 000242bc .word 0x000242bc
14494: 00024375 .word 0x00024375
14498: 0000e931 .word 0x0000e931
1449c: 000036f1 .word 0x000036f1
144a0: 000097d5 .word 0x000097d5
144a4: 0000ebb1 .word 0x0000ebb1
144a8: 00009bb5 .word 0x00009bb5
144ac: 00004289 .word 0x00004289
144b0: 00009c01 .word 0x00009c01
000144b4 <lv_img_get_auto_size>:
{
144b4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
144b6: 4b0d ldr r3, [pc, #52] ; (144ec <lv_img_get_auto_size+0x38>)
{
144b8: 4604 mov r4, r0
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
144ba: 4798 blx r3
144bc: 4605 mov r5, r0
144be: b968 cbnz r0, 144dc <lv_img_get_auto_size+0x28>
144c0: 4b0b ldr r3, [pc, #44] ; (144f0 <lv_img_get_auto_size+0x3c>)
144c2: 490c ldr r1, [pc, #48] ; (144f4 <lv_img_get_auto_size+0x40>)
144c4: 9300 str r3, [sp, #0]
144c6: f44f 72e7 mov.w r2, #462 ; 0x1ce
144ca: 2003 movs r0, #3
144cc: 4e0a ldr r6, [pc, #40] ; (144f8 <lv_img_get_auto_size+0x44>)
144ce: 47b0 blx r6
144d0: 480a ldr r0, [pc, #40] ; (144fc <lv_img_get_auto_size+0x48>)
144d2: 490b ldr r1, [pc, #44] ; (14500 <lv_img_get_auto_size+0x4c>)
144d4: 4622 mov r2, r4
144d6: 462b mov r3, r5
144d8: 4788 blx r1
144da: e7fe b.n 144da <lv_img_get_auto_size+0x26>
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
144dc: 4b09 ldr r3, [pc, #36] ; (14504 <lv_img_get_auto_size+0x50>)
144de: 4620 mov r0, r4
144e0: 4798 blx r3
return ext->auto_size == 0 ? false : true;
144e2: 7d00 ldrb r0, [r0, #20]
}
144e4: f3c0 0080 ubfx r0, r0, #2, #1
144e8: b002 add sp, #8
144ea: bd70 pop {r4, r5, r6, pc}
144ec: 00001795 .word 0x00001795
144f0: 000243e4 .word 0x000243e4
144f4: 000242bc .word 0x000242bc
144f8: 0000e931 .word 0x0000e931
144fc: 0001ef03 .word 0x0001ef03
14500: 0000179d .word 0x0000179d
14504: 00003f89 .word 0x00003f89
00014508 <lv_img_set_src>:
{
14508: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
1450c: 4d7b ldr r5, [pc, #492] ; (146fc <lv_img_set_src+0x1f4>)
{
1450e: b088 sub sp, #32
14510: 4606 mov r6, r0
14512: 460f mov r7, r1
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
14514: 47a8 blx r5
14516: 46aa mov sl, r5
14518: 4604 mov r4, r0
1451a: b960 cbnz r0, 14536 <lv_img_set_src+0x2e>
1451c: 4b78 ldr r3, [pc, #480] ; (14700 <lv_img_set_src+0x1f8>)
1451e: 4979 ldr r1, [pc, #484] ; (14704 <lv_img_set_src+0x1fc>)
14520: 9300 str r3, [sp, #0]
14522: 228f movs r2, #143 ; 0x8f
14524: 2003 movs r0, #3
14526: 4d78 ldr r5, [pc, #480] ; (14708 <lv_img_set_src+0x200>)
14528: 47a8 blx r5
1452a: 4878 ldr r0, [pc, #480] ; (1470c <lv_img_set_src+0x204>)
1452c: 4978 ldr r1, [pc, #480] ; (14710 <lv_img_set_src+0x208>)
1452e: 4632 mov r2, r6
14530: 4623 mov r3, r4
14532: 4788 blx r1
14534: e7fe b.n 14534 <lv_img_set_src+0x2c>
lv_img_src_t src_type = lv_img_src_get_type(src_img);
14536: 4b77 ldr r3, [pc, #476] ; (14714 <lv_img_set_src+0x20c>)
14538: 4638 mov r0, r7
1453a: 4798 blx r3
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
1453c: 4b76 ldr r3, [pc, #472] ; (14718 <lv_img_set_src+0x210>)
lv_img_src_t src_type = lv_img_src_get_type(src_img);
1453e: 4605 mov r5, r0
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14540: 4630 mov r0, r6
14542: 4798 blx r3
switch(src_type) {
14544: 2d02 cmp r5, #2
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14546: 4604 mov r4, r0
switch(src_type) {
14548: d923 bls.n 14592 <lv_img_set_src+0x8a>
LV_LOG_WARN("lv_img_set_src: unknown type");
1454a: 4b74 ldr r3, [pc, #464] ; (1471c <lv_img_set_src+0x214>)
1454c: 9300 str r3, [sp, #0]
1454e: 496d ldr r1, [pc, #436] ; (14704 <lv_img_set_src+0x1fc>)
14550: 4b6b ldr r3, [pc, #428] ; (14700 <lv_img_set_src+0x1f8>)
14552: f8df 81b4 ldr.w r8, [pc, #436] ; 14708 <lv_img_set_src+0x200>
14556: 22a0 movs r2, #160 ; 0xa0
14558: 2002 movs r0, #2
1455a: 47c0 blx r8
if(src_type == LV_IMG_SRC_UNKNOWN) {
1455c: 2d03 cmp r5, #3
1455e: d118 bne.n 14592 <lv_img_set_src+0x8a>
LV_LOG_WARN("lv_img_set_src: unknown image type");
14560: 4b6f ldr r3, [pc, #444] ; (14720 <lv_img_set_src+0x218>)
14562: 9300 str r3, [sp, #0]
14564: 4967 ldr r1, [pc, #412] ; (14704 <lv_img_set_src+0x1fc>)
14566: 4b66 ldr r3, [pc, #408] ; (14700 <lv_img_set_src+0x1f8>)
14568: 22a6 movs r2, #166 ; 0xa6
1456a: 2002 movs r0, #2
1456c: 47c0 blx r8
if(ext->src_type == LV_IMG_SRC_SYMBOL || ext->src_type == LV_IMG_SRC_FILE) {
1456e: 7d23 ldrb r3, [r4, #20]
14570: f003 0303 and.w r3, r3, #3
14574: 3b01 subs r3, #1
14576: 2b01 cmp r3, #1
14578: d802 bhi.n 14580 <lv_img_set_src+0x78>
lv_mem_free(ext->src);
1457a: 6820 ldr r0, [r4, #0]
1457c: 4b69 ldr r3, [pc, #420] ; (14724 <lv_img_set_src+0x21c>)
1457e: 4798 blx r3
ext->src = NULL;
14580: 2300 movs r3, #0
14582: 6023 str r3, [r4, #0]
ext->src_type = LV_IMG_SRC_UNKNOWN;
14584: 7d23 ldrb r3, [r4, #20]
14586: f043 0303 orr.w r3, r3, #3
1458a: 7523 strb r3, [r4, #20]
}
1458c: b008 add sp, #32
1458e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
lv_img_decoder_get_info(src_img, &header);
14592: 4b65 ldr r3, [pc, #404] ; (14728 <lv_img_set_src+0x220>)
14594: a906 add r1, sp, #24
14596: 4638 mov r0, r7
14598: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
1459a: 2d00 cmp r5, #0
1459c: d146 bne.n 1462c <lv_img_set_src+0x124>
LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
1459e: 4b63 ldr r3, [pc, #396] ; (1472c <lv_img_set_src+0x224>)
145a0: 9300 str r3, [sp, #0]
145a2: 4958 ldr r1, [pc, #352] ; (14704 <lv_img_set_src+0x1fc>)
145a4: 4b56 ldr r3, [pc, #344] ; (14700 <lv_img_set_src+0x1f8>)
145a6: f8df 8160 ldr.w r8, [pc, #352] ; 14708 <lv_img_set_src+0x200>
145aa: 22b4 movs r2, #180 ; 0xb4
145ac: 2001 movs r0, #1
145ae: 47c0 blx r8
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
145b0: 7d23 ldrb r3, [r4, #20]
145b2: f003 0303 and.w r3, r3, #3
145b6: 3b01 subs r3, #1
145b8: 2b01 cmp r3, #1
145ba: d802 bhi.n 145c2 <lv_img_set_src+0xba>
lv_mem_free(ext->src);
145bc: 6820 ldr r0, [r4, #0]
145be: 4b59 ldr r3, [pc, #356] ; (14724 <lv_img_set_src+0x21c>)
145c0: 4798 blx r3
ext->src = src_img;
145c2: 6027 str r7, [r4, #0]
ext->w = header.w;
145c4: 9a06 ldr r2, [sp, #24]
ext->cf = header.cf;
145c6: f89d 0018 ldrb.w r0, [sp, #24]
ext->w = header.w;
145ca: f3c2 238a ubfx r3, r2, #10, #11
145ce: 8123 strh r3, [r4, #8]
ext->h = header.h;
145d0: f8bd 301a ldrh.w r3, [sp, #26]
145d4: f3c3 114a ubfx r1, r3, #5, #11
145d8: 8161 strh r1, [r4, #10]
ext->src_type = src_type;
145da: 7d21 ldrb r1, [r4, #20]
ext->cf = header.cf;
145dc: f3c0 0004 ubfx r0, r0, #0, #5
ext->src_type = src_type;
145e0: f005 0503 and.w r5, r5, #3
145e4: ea45 05c0 orr.w r5, r5, r0, lsl #3
145e8: f001 0104 and.w r1, r1, #4
ext->pivot.y = header.h / 2;
145ec: f3c3 1389 ubfx r3, r3, #6, #10
ext->src_type = src_type;
145f0: 430d orrs r5, r1
ext->pivot.x = header.w / 2;
145f2: f3c2 22c9 ubfx r2, r2, #11, #10
ext->pivot.y = header.h / 2;
145f6: 8223 strh r3, [r4, #16]
ext->src_type = src_type;
145f8: 7525 strb r5, [r4, #20]
if(lv_img_get_auto_size(img) != false) {
145fa: 4b4d ldr r3, [pc, #308] ; (14730 <lv_img_set_src+0x228>)
ext->pivot.x = header.w / 2;
145fc: 81e2 strh r2, [r4, #14]
if(lv_img_get_auto_size(img) != false) {
145fe: 4630 mov r0, r6
14600: 4798 blx r3
14602: b130 cbz r0, 14612 <lv_img_set_src+0x10a>
lv_obj_set_size(img, ext->w, ext->h);
14604: f9b4 200a ldrsh.w r2, [r4, #10]
14608: f9b4 1008 ldrsh.w r1, [r4, #8]
1460c: 4b49 ldr r3, [pc, #292] ; (14734 <lv_img_set_src+0x22c>)
1460e: 4630 mov r0, r6
14610: 4798 blx r3
if(ext->angle || ext->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_pad(img);
14612: 89a3 ldrh r3, [r4, #12]
14614: b91b cbnz r3, 1461e <lv_img_set_src+0x116>
14616: 8a63 ldrh r3, [r4, #18]
14618: f5b3 7f80 cmp.w r3, #256 ; 0x100
1461c: d002 beq.n 14624 <lv_img_set_src+0x11c>
1461e: 4b46 ldr r3, [pc, #280] ; (14738 <lv_img_set_src+0x230>)
14620: 4630 mov r0, r6
14622: 4798 blx r3
lv_obj_invalidate(img);
14624: 4b45 ldr r3, [pc, #276] ; (1473c <lv_img_set_src+0x234>)
14626: 4630 mov r0, r6
14628: 4798 blx r3
1462a: e7af b.n 1458c <lv_img_set_src+0x84>
else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) {
1462c: 1e6b subs r3, r5, #1
1462e: b2db uxtb r3, r3
14630: 2b01 cmp r3, #1
14632: d831 bhi.n 14698 <lv_img_set_src+0x190>
if(ext->src != src_img) {
14634: f8d4 9000 ldr.w r9, [r4]
14638: 454f cmp r7, r9
1463a: d02d beq.n 14698 <lv_img_set_src+0x190>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
1463c: 7d23 ldrb r3, [r4, #20]
1463e: f003 0303 and.w r3, r3, #3
14642: 3b01 subs r3, #1
const void * old_src = NULL;
14644: 2b01 cmp r3, #1
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
14646: 4638 mov r0, r7
14648: 4b3d ldr r3, [pc, #244] ; (14740 <lv_img_set_src+0x238>)
const void * old_src = NULL;
1464a: bf88 it hi
1464c: f04f 0900 movhi.w r9, #0
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
14650: 4798 blx r3
14652: 4b3c ldr r3, [pc, #240] ; (14744 <lv_img_set_src+0x23c>)
14654: 3001 adds r0, #1
14656: 4798 blx r3
14658: 4680 mov r8, r0
LV_ASSERT_MEM(new_str);
1465a: 47d0 blx sl
1465c: 4682 mov sl, r0
1465e: b960 cbnz r0, 1467a <lv_img_set_src+0x172>
14660: 4b27 ldr r3, [pc, #156] ; (14700 <lv_img_set_src+0x1f8>)
14662: 4928 ldr r1, [pc, #160] ; (14704 <lv_img_set_src+0x1fc>)
14664: 9300 str r3, [sp, #0]
14666: 22c7 movs r2, #199 ; 0xc7
14668: 2003 movs r0, #3
1466a: 4c27 ldr r4, [pc, #156] ; (14708 <lv_img_set_src+0x200>)
1466c: 47a0 blx r4
1466e: 4836 ldr r0, [pc, #216] ; (14748 <lv_img_set_src+0x240>)
14670: 4927 ldr r1, [pc, #156] ; (14710 <lv_img_set_src+0x208>)
14672: 4642 mov r2, r8
14674: 4653 mov r3, sl
14676: 4788 blx r1
14678: e7fe b.n 14678 <lv_img_set_src+0x170>
if(new_str == NULL) return;
1467a: f1b8 0f00 cmp.w r8, #0
1467e: d085 beq.n 1458c <lv_img_set_src+0x84>
strcpy(new_str, src_img);
14680: 4b32 ldr r3, [pc, #200] ; (1474c <lv_img_set_src+0x244>)
14682: 4639 mov r1, r7
14684: 4640 mov r0, r8
14686: 4798 blx r3
ext->src = new_str;
14688: f8c4 8000 str.w r8, [r4]
if(old_src) lv_mem_free(old_src);
1468c: f1b9 0f00 cmp.w r9, #0
14690: d002 beq.n 14698 <lv_img_set_src+0x190>
14692: 4b24 ldr r3, [pc, #144] ; (14724 <lv_img_set_src+0x21c>)
14694: 4648 mov r0, r9
14696: 4798 blx r3
if(src_type == LV_IMG_SRC_SYMBOL) {
14698: 2d02 cmp r5, #2
1469a: d193 bne.n 145c4 <lv_img_set_src+0xbc>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
1469c: 4b2c ldr r3, [pc, #176] ; (14750 <lv_img_set_src+0x248>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
1469e: f8df 90b8 ldr.w r9, [pc, #184] ; 14758 <lv_img_set_src+0x250>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
146a2: f248 028e movw r2, #32910 ; 0x808e
146a6: 2100 movs r1, #0
146a8: 4630 mov r0, r6
146aa: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
146ac: f248 0280 movw r2, #32896 ; 0x8080
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
146b0: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
146b2: 2100 movs r1, #0
146b4: 4630 mov r0, r6
146b6: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
146b8: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
146bc: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
146be: 2100 movs r1, #0
146c0: 4630 mov r0, r6
146c2: 47c8 blx r9
_lv_txt_get_size(&size, src_img, font, letter_space, line_space,
146c4: f647 4218 movw r2, #31768 ; 0x7c18
146c8: 2300 movs r3, #0
146ca: e9cd 2301 strd r2, r3, [sp, #4]
146ce: 9000 str r0, [sp, #0]
146d0: 9b05 ldr r3, [sp, #20]
146d2: 4642 mov r2, r8
146d4: 4639 mov r1, r7
146d6: a807 add r0, sp, #28
146d8: 4f1e ldr r7, [pc, #120] ; (14754 <lv_img_set_src+0x24c>)
146da: 47b8 blx r7
header.w = size.x;
146dc: f8bd 301c ldrh.w r3, [sp, #28]
146e0: f3c3 020a ubfx r2, r3, #0, #11
146e4: f9bd 301e ldrsh.w r3, [sp, #30]
146e8: 055b lsls r3, r3, #21
146ea: ea43 2382 orr.w r3, r3, r2, lsl #10
146ee: 9a06 ldr r2, [sp, #24]
146f0: f3c2 0209 ubfx r2, r2, #0, #10
146f4: 4313 orrs r3, r2
146f6: 9306 str r3, [sp, #24]
146f8: e764 b.n 145c4 <lv_img_set_src+0xbc>
146fa: bf00 nop
146fc: 00001795 .word 0x00001795
14700: 000243f9 .word 0x000243f9
14704: 000242bc .word 0x000242bc
14708: 0000e931 .word 0x0000e931
1470c: 0001ef03 .word 0x0001ef03
14710: 0000179d .word 0x0000179d
14714: 00007811 .word 0x00007811
14718: 00003f89 .word 0x00003f89
1471c: 000242ee .word 0x000242ee
14720: 0002430b .word 0x0002430b
14724: 0000eb2d .word 0x0000eb2d
14728: 0000cf6d .word 0x0000cf6d
1472c: 0002432e .word 0x0002432e
14730: 000144b5 .word 0x000144b5
14734: 000034c1 .word 0x000034c1
14738: 00002081 .word 0x00002081
1473c: 00002739 .word 0x00002739
14740: 0001637d .word 0x0001637d
14744: 0000ea75 .word 0x0000ea75
14748: 0001ee02 .word 0x0001ee02
1474c: 0001636d .word 0x0001636d
14750: 000038a9 .word 0x000038a9
14754: 000101fd .word 0x000101fd
14758: 000036f1 .word 0x000036f1
0001475c <lv_img_create>:
{
1475c: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
lv_obj_t * img = lv_obj_create(par, copy);
14760: 4b53 ldr r3, [pc, #332] ; (148b0 <lv_img_create+0x154>)
LV_ASSERT_MEM(img);
14762: f8df 81a8 ldr.w r8, [pc, #424] ; 1490c <lv_img_create+0x1b0>
{
14766: 460e mov r6, r1
14768: 4607 mov r7, r0
lv_obj_t * img = lv_obj_create(par, copy);
1476a: 4798 blx r3
1476c: 4605 mov r5, r0
LV_ASSERT_MEM(img);
1476e: 47c0 blx r8
14770: 4604 mov r4, r0
14772: b960 cbnz r0, 1478e <lv_img_create+0x32>
14774: 4b4f ldr r3, [pc, #316] ; (148b4 <lv_img_create+0x158>)
14776: 4950 ldr r1, [pc, #320] ; (148b8 <lv_img_create+0x15c>)
14778: 9300 str r3, [sp, #0]
1477a: 2242 movs r2, #66 ; 0x42
1477c: 2003 movs r0, #3
1477e: 4e4f ldr r6, [pc, #316] ; (148bc <lv_img_create+0x160>)
14780: 47b0 blx r6
14782: 484f ldr r0, [pc, #316] ; (148c0 <lv_img_create+0x164>)
14784: 494f ldr r1, [pc, #316] ; (148c4 <lv_img_create+0x168>)
14786: 462a mov r2, r5
14788: 4623 mov r3, r4
1478a: 4788 blx r1
1478c: e7fe b.n 1478c <lv_img_create+0x30>
if(img == NULL) return NULL;
1478e: b315 cbz r5, 147d6 <lv_img_create+0x7a>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img);
14790: 4c4d ldr r4, [pc, #308] ; (148c8 <lv_img_create+0x16c>)
14792: 6823 ldr r3, [r4, #0]
14794: b91b cbnz r3, 1479e <lv_img_create+0x42>
14796: 4b4d ldr r3, [pc, #308] ; (148cc <lv_img_create+0x170>)
14798: 4628 mov r0, r5
1479a: 4798 blx r3
1479c: 6020 str r0, [r4, #0]
lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t));
1479e: 4b4c ldr r3, [pc, #304] ; (148d0 <lv_img_create+0x174>)
147a0: 2118 movs r1, #24
147a2: 4628 mov r0, r5
147a4: 4798 blx r3
147a6: 4604 mov r4, r0
LV_ASSERT_MEM(ext);
147a8: 47c0 blx r8
147aa: 4680 mov r8, r0
147ac: b960 cbnz r0, 147c8 <lv_img_create+0x6c>
147ae: 4b41 ldr r3, [pc, #260] ; (148b4 <lv_img_create+0x158>)
147b0: 4941 ldr r1, [pc, #260] ; (148b8 <lv_img_create+0x15c>)
147b2: 9300 str r3, [sp, #0]
147b4: 2249 movs r2, #73 ; 0x49
147b6: 2003 movs r0, #3
147b8: 4d40 ldr r5, [pc, #256] ; (148bc <lv_img_create+0x160>)
147ba: 47a8 blx r5
147bc: 4840 ldr r0, [pc, #256] ; (148c0 <lv_img_create+0x164>)
147be: 4941 ldr r1, [pc, #260] ; (148c4 <lv_img_create+0x168>)
147c0: 4622 mov r2, r4
147c2: 4643 mov r3, r8
147c4: 4788 blx r1
147c6: e7fe b.n 147c6 <lv_img_create+0x6a>
if(ext == NULL) {
147c8: f04f 0800 mov.w r8, #0
147cc: b93c cbnz r4, 147de <lv_img_create+0x82>
lv_obj_del(img);
147ce: 4628 mov r0, r5
147d0: 4b40 ldr r3, [pc, #256] ; (148d4 <lv_img_create+0x178>)
147d2: 4798 blx r3
return NULL;
147d4: 4625 mov r5, r4
}
147d6: 4628 mov r0, r5
147d8: b002 add sp, #8
147da: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
ext->src_type = LV_IMG_SRC_UNKNOWN;
147de: 7d23 ldrb r3, [r4, #20]
ext->src = NULL;
147e0: f8c4 8000 str.w r8, [r4]
ext->src_type = LV_IMG_SRC_UNKNOWN;
147e4: f003 0304 and.w r3, r3, #4
147e8: f043 0303 orr.w r3, r3, #3
147ec: 7523 strb r3, [r4, #20]
ext->w = lv_obj_get_width(img);
147ee: 4628 mov r0, r5
147f0: 4b39 ldr r3, [pc, #228] ; (148d8 <lv_img_create+0x17c>)
147f2: 4798 blx r3
ext->h = lv_obj_get_height(img);
147f4: 4b39 ldr r3, [pc, #228] ; (148dc <lv_img_create+0x180>)
ext->w = lv_obj_get_width(img);
147f6: 8120 strh r0, [r4, #8]
ext->h = lv_obj_get_height(img);
147f8: 4628 mov r0, r5
147fa: 4798 blx r3
ext->pivot.y = 0;
147fc: f04f 7380 mov.w r3, #16777216 ; 0x1000000
14800: 6123 str r3, [r4, #16]
ext->auto_size = 1;
14802: 8aa3 ldrh r3, [r4, #20]
lv_obj_set_signal_cb(img, lv_img_signal);
14804: 4936 ldr r1, [pc, #216] ; (148e0 <lv_img_create+0x184>)
ext->h = lv_obj_get_height(img);
14806: 8160 strh r0, [r4, #10]
ext->auto_size = 1;
14808: f443 7382 orr.w r3, r3, #260 ; 0x104
1480c: 82a3 strh r3, [r4, #20]
lv_obj_set_signal_cb(img, lv_img_signal);
1480e: 4628 mov r0, r5
14810: 4b34 ldr r3, [pc, #208] ; (148e4 <lv_img_create+0x188>)
ext->offset.x = 0;
14812: f8c4 8004 str.w r8, [r4, #4]
ext->angle = 0;
14816: f8c4 800c str.w r8, [r4, #12]
lv_obj_set_signal_cb(img, lv_img_signal);
1481a: 4798 blx r3
lv_obj_set_design_cb(img, lv_img_design);
1481c: 4932 ldr r1, [pc, #200] ; (148e8 <lv_img_create+0x18c>)
1481e: 4b33 ldr r3, [pc, #204] ; (148ec <lv_img_create+0x190>)
14820: 4628 mov r0, r5
14822: 4798 blx r3
if(copy == NULL) {
14824: b9e6 cbnz r6, 14860 <lv_img_create+0x104>
lv_theme_apply(img, LV_THEME_IMAGE);
14826: 4b32 ldr r3, [pc, #200] ; (148f0 <lv_img_create+0x194>)
14828: 210f movs r1, #15
1482a: 4628 mov r0, r5
1482c: 4798 blx r3
lv_obj_set_click(img, false);
1482e: 4b31 ldr r3, [pc, #196] ; (148f4 <lv_img_create+0x198>)
14830: 4631 mov r1, r6
14832: 4628 mov r0, r5
14834: 4798 blx r3
lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/
14836: 4b30 ldr r3, [pc, #192] ; (148f8 <lv_img_create+0x19c>)
14838: 2101 movs r1, #1
1483a: 4628 mov r0, r5
1483c: 4798 blx r3
if(par != NULL) {
1483e: 7d23 ldrb r3, [r4, #20]
14840: b15f cbz r7, 1485a <lv_img_create+0xfe>
ext->auto_size = 1;
14842: f043 0304 orr.w r3, r3, #4
ext->auto_size = 0;
14846: 7523 strb r3, [r4, #20]
LV_LOG_INFO("image created");
14848: 4b2c ldr r3, [pc, #176] ; (148fc <lv_img_create+0x1a0>)
1484a: 9300 str r3, [sp, #0]
1484c: 491a ldr r1, [pc, #104] ; (148b8 <lv_img_create+0x15c>)
1484e: 4b19 ldr r3, [pc, #100] ; (148b4 <lv_img_create+0x158>)
14850: 4c1a ldr r4, [pc, #104] ; (148bc <lv_img_create+0x160>)
14852: 227f movs r2, #127 ; 0x7f
14854: 2001 movs r0, #1
14856: 47a0 blx r4
return img;
14858: e7bd b.n 147d6 <lv_img_create+0x7a>
ext->auto_size = 0;
1485a: f367 0382 bfi r3, r7, #2, #1
1485e: e7f2 b.n 14846 <lv_img_create+0xea>
lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
14860: 4b27 ldr r3, [pc, #156] ; (14900 <lv_img_create+0x1a4>)
14862: 4630 mov r0, r6
14864: 4798 blx r3
ext->auto_size = copy_ext->auto_size;
14866: 7d03 ldrb r3, [r0, #20]
14868: 7d22 ldrb r2, [r4, #20]
1486a: f3c3 0380 ubfx r3, r3, #2, #1
1486e: f363 0282 bfi r2, r3, #2, #1
14872: 7522 strb r2, [r4, #20]
ext->zoom = copy_ext->zoom;
14874: 8a43 ldrh r3, [r0, #18]
14876: 8263 strh r3, [r4, #18]
ext->angle = copy_ext->angle;
14878: 8983 ldrh r3, [r0, #12]
ext->antialias = copy_ext->antialias;
1487a: 7d42 ldrb r2, [r0, #21]
ext->angle = copy_ext->angle;
1487c: 81a3 strh r3, [r4, #12]
ext->antialias = copy_ext->antialias;
1487e: 7d63 ldrb r3, [r4, #21]
14880: f362 0300 bfi r3, r2, #0, #1
14884: 7563 strb r3, [r4, #21]
ext->offset.x = copy_ext->offset.x;
14886: f9b0 3004 ldrsh.w r3, [r0, #4]
1488a: 80a3 strh r3, [r4, #4]
ext->offset.y = copy_ext->offset.y;
1488c: f9b0 3006 ldrsh.w r3, [r0, #6]
14890: 80e3 strh r3, [r4, #6]
ext->pivot.x = copy_ext->pivot.x;
14892: f9b0 300e ldrsh.w r3, [r0, #14]
14896: 81e3 strh r3, [r4, #14]
ext->pivot.y = copy_ext->pivot.y;
14898: f9b0 3010 ldrsh.w r3, [r0, #16]
lv_img_set_src(img, copy_ext->src);
1489c: 6801 ldr r1, [r0, #0]
ext->pivot.y = copy_ext->pivot.y;
1489e: 8223 strh r3, [r4, #16]
lv_img_set_src(img, copy_ext->src);
148a0: 4628 mov r0, r5
148a2: 4b18 ldr r3, [pc, #96] ; (14904 <lv_img_create+0x1a8>)
148a4: 4798 blx r3
lv_obj_refresh_style(img, LV_STYLE_PROP_ALL);
148a6: 4b18 ldr r3, [pc, #96] ; (14908 <lv_img_create+0x1ac>)
148a8: 21ff movs r1, #255 ; 0xff
148aa: 4628 mov r0, r5
148ac: 4798 blx r3
148ae: e7cb b.n 14848 <lv_img_create+0xec>
148b0: 000030c5 .word 0x000030c5
148b4: 00024408 .word 0x00024408
148b8: 000242bc .word 0x000242bc
148bc: 0000e931 .word 0x0000e931
148c0: 0001ee02 .word 0x0001ee02
148c4: 0000179d .word 0x0000179d
148c8: 2000c7f8 .word 0x2000c7f8
148cc: 00003f41 .word 0x00003f41
148d0: 00002029 .word 0x00002029
148d4: 00004141 .word 0x00004141
148d8: 0000239d .word 0x0000239d
148dc: 000023ed .word 0x000023ed
148e0: 00014911 .word 0x00014911
148e4: 00001f8d .word 0x00001f8d
148e8: 00014065 .word 0x00014065
148ec: 00001fe1 .word 0x00001fe1
148f0: 00010345 .word 0x00010345
148f4: 00001e0d .word 0x00001e0d
148f8: 00001db9 .word 0x00001db9
148fc: 00024360 .word 0x00024360
14900: 00003f89 .word 0x00003f89
14904: 00014509 .word 0x00014509
14908: 00002d39 .word 0x00002d39
1490c: 00001795 .word 0x00001795
00014910 <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)
{
14910: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_res_t res;
if(sign == LV_SIGNAL_GET_STYLE) {
14914: 2908 cmp r1, #8
{
14916: b085 sub sp, #20
14918: 4604 mov r4, r0
1491a: 4688 mov r8, r1
1491c: 4616 mov r6, r2
if(sign == LV_SIGNAL_GET_STYLE) {
1491e: d110 bne.n 14942 <lv_img_signal+0x32>
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) {
14920: 7813 ldrb r3, [r2, #0]
14922: b13b cbz r3, 14934 <lv_img_signal+0x24>
info->result = lv_img_get_style(img, info->part);
14924: 2300 movs r3, #0
14926: 6053 str r3, [r2, #4]
else return ancestor_signal(img, sign, param);
14928: 4b82 ldr r3, [pc, #520] ; (14b34 <lv_img_signal+0x224>)
1492a: 681b ldr r3, [r3, #0]
}
1492c: b005 add sp, #20
1492e: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
else return ancestor_signal(img, sign, param);
14932: 4718 bx r3
case LV_IMG_PART_MAIN:
style_dsc_p = &img->style_list;
14934: 3428 adds r4, #40 ; 0x28
info->result = lv_img_get_style(img, info->part);
14936: 6054 str r4, [r2, #4]
if(info->result != NULL) return LV_RES_OK;
14938: 2701 movs r7, #1
}
1493a: 4638 mov r0, r7
1493c: b005 add sp, #20
1493e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
res = ancestor_signal(img, sign, param);
14942: 4b7c ldr r3, [pc, #496] ; (14b34 <lv_img_signal+0x224>)
14944: 681b ldr r3, [r3, #0]
14946: 4798 blx r3
if(res != LV_RES_OK) return res;
14948: 2801 cmp r0, #1
res = ancestor_signal(img, sign, param);
1494a: 4607 mov r7, r0
if(res != LV_RES_OK) return res;
1494c: d1f5 bne.n 1493a <lv_img_signal+0x2a>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
1494e: f1b8 0f07 cmp.w r8, #7
14952: d106 bne.n 14962 <lv_img_signal+0x52>
14954: 4978 ldr r1, [pc, #480] ; (14b38 <lv_img_signal+0x228>)
14956: 4b79 ldr r3, [pc, #484] ; (14b3c <lv_img_signal+0x22c>)
14958: 4630 mov r0, r6
}
1495a: b005 add sp, #20
1495c: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
14960: 4718 bx r3
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14962: 4b77 ldr r3, [pc, #476] ; (14b40 <lv_img_signal+0x230>)
14964: 4620 mov r0, r4
14966: 4798 blx r3
14968: 4605 mov r5, r0
if(sign == LV_SIGNAL_CLEANUP) {
1496a: f1b8 0f00 cmp.w r8, #0
1496e: d10f bne.n 14990 <lv_img_signal+0x80>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
14970: 7d03 ldrb r3, [r0, #20]
14972: f003 0303 and.w r3, r3, #3
14976: 3b01 subs r3, #1
14978: 2b01 cmp r3, #1
1497a: d8de bhi.n 1493a <lv_img_signal+0x2a>
lv_mem_free(ext->src);
1497c: 4b71 ldr r3, [pc, #452] ; (14b44 <lv_img_signal+0x234>)
1497e: 6800 ldr r0, [r0, #0]
14980: 4798 blx r3
ext->src_type = LV_IMG_SRC_UNKNOWN;
14982: 7d2b ldrb r3, [r5, #20]
ext->src = NULL;
14984: f8c5 8000 str.w r8, [r5]
ext->src_type = LV_IMG_SRC_UNKNOWN;
14988: f043 0303 orr.w r3, r3, #3
1498c: 752b strb r3, [r5, #20]
1498e: e7d4 b.n 1493a <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_STYLE_CHG) {
14990: f1b8 0f04 cmp.w r8, #4
14994: d109 bne.n 149aa <lv_img_signal+0x9a>
if(ext->src_type == LV_IMG_SRC_SYMBOL) {
14996: 7d03 ldrb r3, [r0, #20]
14998: f003 0303 and.w r3, r3, #3
1499c: 2b02 cmp r3, #2
1499e: d1cc bne.n 1493a <lv_img_signal+0x2a>
lv_img_set_src(img, ext->src);
149a0: 6801 ldr r1, [r0, #0]
149a2: 4b69 ldr r3, [pc, #420] ; (14b48 <lv_img_signal+0x238>)
149a4: 4620 mov r0, r4
149a6: 4798 blx r3
149a8: e7c7 b.n 1493a <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
149aa: f1b8 0f06 cmp.w r8, #6
149ae: d16c bne.n 14a8a <lv_img_signal+0x17a>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
149b0: 4e66 ldr r6, [pc, #408] ; (14b4c <lv_img_signal+0x23c>)
149b2: 2207 movs r2, #7
149b4: 2100 movs r1, #0
149b6: 4620 mov r0, r4
149b8: 47b0 blx r6
transf_zoom = (transf_zoom * ext->zoom) >> 8;
149ba: 8a6b ldrh r3, [r5, #18]
149bc: 4358 muls r0, r3
149be: ea4f 2920 mov.w r9, r0, asr #8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
149c2: 4642 mov r2, r8
149c4: 2100 movs r1, #0
149c6: 4620 mov r0, r4
149c8: 47b0 blx r6
transf_angle += ext->angle;
149ca: 89ab ldrh r3, [r5, #12]
149cc: 4418 add r0, r3
149ce: b203 sxth r3, r0
if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) {
149d0: b923 cbnz r3, 149dc <lv_img_signal+0xcc>
149d2: fa0f f289 sxth.w r2, r9
149d6: f5b2 7f80 cmp.w r2, #256 ; 0x100
149da: d031 beq.n 14a40 <lv_img_signal+0x130>
_lv_img_buf_get_transformed_area(&a, ext->w, ext->h, transf_angle, transf_zoom, &ext->pivot);
149dc: f105 000e add.w r0, r5, #14
149e0: f9b5 200a ldrsh.w r2, [r5, #10]
149e4: f9b5 1008 ldrsh.w r1, [r5, #8]
149e8: 9001 str r0, [sp, #4]
149ea: fa1f f089 uxth.w r0, r9
149ee: 9000 str r0, [sp, #0]
149f0: f8df 8164 ldr.w r8, [pc, #356] ; 14b58 <lv_img_signal+0x248>
149f4: a802 add r0, sp, #8
149f6: 47c0 blx r8
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1);
149f8: f9b4 1032 ldrsh.w r1, [r4, #50] ; 0x32
149fc: f9bd 3008 ldrsh.w r3, [sp, #8]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1);
14a00: f9bd 200a ldrsh.w r2, [sp, #10]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w);
14a04: f9b5 0008 ldrsh.w r0, [r5, #8]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1);
14a08: 1acb subs r3, r1, r3
14a0a: 428b cmp r3, r1
14a0c: bfb8 it lt
14a0e: 460b movlt r3, r1
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1);
14a10: 1a8a subs r2, r1, r2
14a12: b21b sxth r3, r3
14a14: 4293 cmp r3, r2
14a16: bfb8 it lt
14a18: 4613 movlt r3, r2
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w);
14a1a: f9bd 200c ldrsh.w r2, [sp, #12]
14a1e: 440a add r2, r1
14a20: b21b sxth r3, r3
14a22: 1a12 subs r2, r2, r0
14a24: 4293 cmp r3, r2
14a26: bfb8 it lt
14a28: 4613 movlt r3, r2
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.y2 - ext->h);
14a2a: f9bd 200e ldrsh.w r2, [sp, #14]
14a2e: 440a add r2, r1
14a30: f9b5 100a ldrsh.w r1, [r5, #10]
14a34: b21b sxth r3, r3
14a36: 1a52 subs r2, r2, r1
14a38: 4293 cmp r3, r2
14a3a: bfb8 it lt
14a3c: 4613 movlt r3, r2
14a3e: 8663 strh r3, [r4, #50] ; 0x32
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14a40: 2212 movs r2, #18
14a42: 2100 movs r1, #0
14a44: 4620 mov r0, r4
14a46: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14a48: 2213 movs r2, #19
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14a4a: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14a4c: 2100 movs r1, #0
14a4e: 4620 mov r0, r4
14a50: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14a52: 2210 movs r2, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14a54: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14a56: 2100 movs r1, #0
14a58: 4620 mov r0, r4
14a5a: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14a5c: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14a5e: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14a60: 2100 movs r1, #0
14a62: 4620 mov r0, r4
14a64: 47b0 blx r6
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, right);
14a66: 454d cmp r5, r9
14a68: f9b4 3032 ldrsh.w r3, [r4, #50] ; 0x32
14a6c: bfb8 it lt
14a6e: 464d movlt r5, r9
14a70: b22d sxth r5, r5
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, top);
14a72: 42ab cmp r3, r5
14a74: bfb8 it lt
14a76: 462b movlt r3, r5
14a78: 4543 cmp r3, r8
14a7a: bfb8 it lt
14a7c: 4643 movlt r3, r8
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, bottom);
14a7e: b21b sxth r3, r3
14a80: 4298 cmp r0, r3
14a82: bfb8 it lt
14a84: 4618 movlt r0, r3
14a86: 8660 strh r0, [r4, #50] ; 0x32
14a88: e757 b.n 1493a <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_HIT_TEST) {
14a8a: f1b8 0f0a cmp.w r8, #10
14a8e: f47f af54 bne.w 1493a <lv_img_signal+0x2a>
if(ext->zoom != 256 && ext->angle == 0) {
14a92: f8b0 c012 ldrh.w ip, [r0, #18]
14a96: f5bc 7f80 cmp.w ip, #256 ; 0x100
14a9a: d045 beq.n 14b28 <lv_img_signal+0x218>
14a9c: 8983 ldrh r3, [r0, #12]
14a9e: 2b00 cmp r3, #0
14aa0: d142 bne.n 14b28 <lv_img_signal+0x218>
14aa2: 8aa5 ldrh r5, [r4, #20]
14aa4: 8a23 ldrh r3, [r4, #16]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
14aa6: 8a62 ldrh r2, [r4, #18]
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
14aa8: 6920 ldr r0, [r4, #16]
14aaa: 6961 ldr r1, [r4, #20]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
14aac: 3501 adds r5, #1
14aae: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
14ab0: 8ae3 ldrh r3, [r4, #22]
14ab2: 3301 adds r3, #1
lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256;
14ab4: b22d sxth r5, r5
14ab6: 1a9b subs r3, r3, r2
14ab8: aa02 add r2, sp, #8
14aba: c203 stmia r2!, {r0, r1}
14abc: fb0c f205 mul.w r2, ip, r5
14ac0: 32ff adds r2, #255 ; 0xff
14ac2: bf48 it mi
14ac4: 32ff addmi r2, #255 ; 0xff
lv_coord_t width_offset = (origin_width - scaled_width) / 2;
14ac6: f342 220f sbfx r2, r2, #8, #16
14aca: 1aad subs r5, r5, r2
14acc: eb05 75d5 add.w r5, r5, r5, lsr #31
coords.x1 += width_offset;
14ad0: f8bd 2008 ldrh.w r2, [sp, #8]
info->result = _lv_area_is_point_on(&coords, info->point, 0);
14ad4: 6831 ldr r1, [r6, #0]
coords.x1 += width_offset;
14ad6: f3c5 054f ubfx r5, r5, #1, #16
14ada: 442a add r2, r5
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
14adc: b21b sxth r3, r3
coords.x1 += width_offset;
14ade: f8ad 2008 strh.w r2, [sp, #8]
coords.x2 -= width_offset;
14ae2: f8bd 200c ldrh.w r2, [sp, #12]
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
14ae6: fb03 fc0c mul.w ip, r3, ip
coords.x2 -= width_offset;
14aea: 1b55 subs r5, r2, r5
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
14aec: f11c 02ff adds.w r2, ip, #255 ; 0xff
14af0: bf48 it mi
14af2: f50c 72ff addmi.w r2, ip, #510 ; 0x1fe
lv_coord_t height_offset = (origin_height - scaled_height) / 2;
14af6: f342 220f sbfx r2, r2, #8, #16
14afa: 1a9b subs r3, r3, r2
14afc: eb03 73d3 add.w r3, r3, r3, lsr #31
coords.y1 += height_offset;
14b00: f8bd 200a ldrh.w r2, [sp, #10]
coords.x2 -= width_offset;
14b04: f8ad 500c strh.w r5, [sp, #12]
coords.y1 += height_offset;
14b08: f3c3 034f ubfx r3, r3, #1, #16
14b0c: 441a add r2, r3
14b0e: f8ad 200a strh.w r2, [sp, #10]
coords.y2 -= height_offset;
14b12: f8bd 200e ldrh.w r2, [sp, #14]
14b16: 1ad3 subs r3, r2, r3
14b18: f8ad 300e strh.w r3, [sp, #14]
info->result = _lv_area_is_point_on(&coords, info->point, 0);
14b1c: 2200 movs r2, #0
14b1e: 4b0c ldr r3, [pc, #48] ; (14b50 <lv_img_signal+0x240>)
14b20: a802 add r0, sp, #8
14b22: 4798 blx r3
info->result = lv_obj_is_point_on_coords(img, info->point);
14b24: 7130 strb r0, [r6, #4]
14b26: e708 b.n 1493a <lv_img_signal+0x2a>
14b28: 6831 ldr r1, [r6, #0]
14b2a: 4b0a ldr r3, [pc, #40] ; (14b54 <lv_img_signal+0x244>)
14b2c: 4620 mov r0, r4
14b2e: 4798 blx r3
14b30: e7f8 b.n 14b24 <lv_img_signal+0x214>
14b32: bf00 nop
14b34: 2000c7f8 .word 0x2000c7f8
14b38: 0002436e .word 0x0002436e
14b3c: 0000426d .word 0x0000426d
14b40: 00003f89 .word 0x00003f89
14b44: 0000eb2d .word 0x0000eb2d
14b48: 00014509 .word 0x00014509
14b4c: 000036f1 .word 0x000036f1
14b50: 0000df69 .word 0x0000df69
14b54: 00004231 .word 0x00004231
14b58: 0000c0a5 .word 0x0000c0a5
00014b5c <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)
{
14b5c: b510 push {r4, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14b5e: 4b08 ldr r3, [pc, #32] ; (14b80 <lv_label_dot_tmp_free+0x24>)
14b60: 4798 blx r3
if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) {
14b62: 7c43 ldrb r3, [r0, #17]
14b64: 07db lsls r3, r3, #31
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14b66: 4604 mov r4, r0
if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) {
14b68: d503 bpl.n 14b72 <lv_label_dot_tmp_free+0x16>
14b6a: 6840 ldr r0, [r0, #4]
14b6c: b108 cbz r0, 14b72 <lv_label_dot_tmp_free+0x16>
lv_mem_free(ext->dot.tmp_ptr);
14b6e: 4b05 ldr r3, [pc, #20] ; (14b84 <lv_label_dot_tmp_free+0x28>)
14b70: 4798 blx r3
}
ext->dot_tmp_alloc = false;
14b72: 7c63 ldrb r3, [r4, #17]
14b74: f36f 0300 bfc r3, #0, #1
14b78: 7463 strb r3, [r4, #17]
ext->dot.tmp_ptr = NULL;
14b7a: 2300 movs r3, #0
14b7c: 6063 str r3, [r4, #4]
}
14b7e: bd10 pop {r4, pc}
14b80: 00003f89 .word 0x00003f89
14b84: 0000eb2d .word 0x0000eb2d
00014b88 <lv_label_revert_dots>:
{
14b88: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14b8a: 4e1a ldr r6, [pc, #104] ; (14bf4 <lv_label_revert_dots+0x6c>)
{
14b8c: 4605 mov r5, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14b8e: 47b0 blx r6
if(ext->long_mode != LV_LABEL_LONG_DOT) return;
14b90: 7c03 ldrb r3, [r0, #16]
14b92: f003 0307 and.w r3, r3, #7
14b96: 2b02 cmp r3, #2
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14b98: 4604 mov r4, r0
if(ext->long_mode != LV_LABEL_LONG_DOT) return;
14b9a: d128 bne.n 14bee <lv_label_revert_dots+0x66>
if(ext->dot_end == LV_LABEL_DOT_END_INV) return;
14b9c: 8901 ldrh r1, [r0, #8]
14b9e: f64f 73ff movw r3, #65535 ; 0xffff
14ba2: 4299 cmp r1, r3
14ba4: d023 beq.n 14bee <lv_label_revert_dots+0x66>
uint32_t byte_i = _lv_txt_encoded_get_byte_id(ext->text, letter_i);
14ba6: 4b14 ldr r3, [pc, #80] ; (14bf8 <lv_label_revert_dots+0x70>)
14ba8: 6800 ldr r0, [r0, #0]
14baa: 681b ldr r3, [r3, #0]
14bac: 3903 subs r1, #3
14bae: 4798 blx r3
14bb0: 4607 mov r7, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14bb2: 4628 mov r0, r5
14bb4: 47b0 blx r6
if(ext->dot_tmp_alloc) {
14bb6: 7c42 ldrb r2, [r0, #17]
14bb8: 07d2 lsls r2, r2, #31
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14bba: 4603 mov r3, r0
return ext->dot.tmp_ptr;
14bbc: bf4c ite mi
14bbe: 6843 ldrmi r3, [r0, #4]
return ext->dot.tmp;
14bc0: 3304 addpl r3, #4
while(ext->text[byte_i + i] != '\0') {
14bc2: 2200 movs r2, #0
14bc4: fa57 f182 uxtab r1, r7, r2
14bc8: 6826 ldr r6, [r4, #0]
14bca: b2d0 uxtb r0, r2
14bcc: f816 e001 ldrb.w lr, [r6, r1]
ext->text[byte_i + i] = dot_tmp[i];
14bd0: 5c18 ldrb r0, [r3, r0]
while(ext->text[byte_i + i] != '\0') {
14bd2: eb06 0c01 add.w ip, r6, r1
14bd6: 3201 adds r2, #1
14bd8: f1be 0f00 cmp.w lr, #0
14bdc: d108 bne.n 14bf0 <lv_label_revert_dots+0x68>
lv_label_dot_tmp_free(label);
14bde: 4b07 ldr r3, [pc, #28] ; (14bfc <lv_label_revert_dots+0x74>)
ext->text[byte_i + i] = dot_tmp[i];
14be0: f88c 0000 strb.w r0, [ip]
lv_label_dot_tmp_free(label);
14be4: 4628 mov r0, r5
14be6: 4798 blx r3
ext->dot_end = LV_LABEL_DOT_END_INV;
14be8: f64f 73ff movw r3, #65535 ; 0xffff
14bec: 8123 strh r3, [r4, #8]
}
14bee: bdf8 pop {r3, r4, r5, r6, r7, pc}
ext->text[byte_i + i] = dot_tmp[i];
14bf0: 5470 strb r0, [r6, r1]
i++;
14bf2: e7e7 b.n 14bc4 <lv_label_revert_dots+0x3c>
14bf4: 00003f89 .word 0x00003f89
14bf8: 2000005c .word 0x2000005c
14bfc: 00014b5d .word 0x00014b5d
00014c00 <lv_label_set_offset_y>:
{
14c00: b570 push {r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c02: 4b05 ldr r3, [pc, #20] ; (14c18 <lv_label_set_offset_y+0x18>)
{
14c04: 4604 mov r4, r0
14c06: 460d mov r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c08: 4798 blx r3
lv_obj_invalidate(label);
14c0a: 4b04 ldr r3, [pc, #16] ; (14c1c <lv_label_set_offset_y+0x1c>)
ext->offset.y = y;
14c0c: 81c5 strh r5, [r0, #14]
lv_obj_invalidate(label);
14c0e: 4620 mov r0, r4
}
14c10: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label);
14c14: 4718 bx r3
14c16: bf00 nop
14c18: 00003f89 .word 0x00003f89
14c1c: 00002739 .word 0x00002739
00014c20 <lv_label_set_offset_x>:
{
14c20: b570 push {r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c22: 4b05 ldr r3, [pc, #20] ; (14c38 <lv_label_set_offset_x+0x18>)
{
14c24: 4604 mov r4, r0
14c26: 460d mov r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c28: 4798 blx r3
lv_obj_invalidate(label);
14c2a: 4b04 ldr r3, [pc, #16] ; (14c3c <lv_label_set_offset_x+0x1c>)
ext->offset.x = x;
14c2c: 8185 strh r5, [r0, #12]
lv_obj_invalidate(label);
14c2e: 4620 mov r0, r4
}
14c30: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label);
14c34: 4718 bx r3
14c36: bf00 nop
14c38: 00003f89 .word 0x00003f89
14c3c: 00002739 .word 0x00002739
00014c40 <lv_label_set_dot_tmp>:
{
14c40: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c42: 4b1a ldr r3, [pc, #104] ; (14cac <lv_label_set_dot_tmp+0x6c>)
{
14c44: 9103 str r1, [sp, #12]
14c46: 4616 mov r6, r2
14c48: 4604 mov r4, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c4a: 4798 blx r3
lv_label_dot_tmp_free(label); /* Deallocate any existing space */
14c4c: 4b18 ldr r3, [pc, #96] ; (14cb0 <lv_label_set_dot_tmp+0x70>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14c4e: 4605 mov r5, r0
lv_label_dot_tmp_free(label); /* Deallocate any existing space */
14c50: 4620 mov r0, r4
14c52: 4798 blx r3
if(len > sizeof(char *)) {
14c54: 2e04 cmp r6, #4
14c56: 9903 ldr r1, [sp, #12]
14c58: d91e bls.n 14c98 <lv_label_set_dot_tmp+0x58>
ext->dot.tmp_ptr = lv_mem_alloc(len + 1);
14c5a: 4b16 ldr r3, [pc, #88] ; (14cb4 <lv_label_set_dot_tmp+0x74>)
14c5c: 1c70 adds r0, r6, #1
14c5e: 4798 blx r3
if(ext->dot.tmp_ptr == NULL) {
14c60: 9903 ldr r1, [sp, #12]
ext->dot.tmp_ptr = lv_mem_alloc(len + 1);
14c62: 6068 str r0, [r5, #4]
14c64: 4604 mov r4, r0
if(ext->dot.tmp_ptr == NULL) {
14c66: b958 cbnz r0, 14c80 <lv_label_set_dot_tmp+0x40>
LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr");
14c68: 4b13 ldr r3, [pc, #76] ; (14cb8 <lv_label_set_dot_tmp+0x78>)
14c6a: 9300 str r3, [sp, #0]
14c6c: 2003 movs r0, #3
14c6e: 4b13 ldr r3, [pc, #76] ; (14cbc <lv_label_set_dot_tmp+0x7c>)
14c70: 4913 ldr r1, [pc, #76] ; (14cc0 <lv_label_set_dot_tmp+0x80>)
14c72: 4d14 ldr r5, [pc, #80] ; (14cc4 <lv_label_set_dot_tmp+0x84>)
14c74: f240 52b5 movw r2, #1461 ; 0x5b5
14c78: 47a8 blx r5
return false;
14c7a: 4620 mov r0, r4
}
14c7c: b004 add sp, #16
14c7e: bd70 pop {r4, r5, r6, pc}
_lv_memcpy(ext->dot.tmp_ptr, data, len);
14c80: 4b11 ldr r3, [pc, #68] ; (14cc8 <lv_label_set_dot_tmp+0x88>)
14c82: 4632 mov r2, r6
14c84: 4798 blx r3
ext->dot.tmp_ptr[len] = '\0';
14c86: 686b ldr r3, [r5, #4]
14c88: 2200 movs r2, #0
14c8a: 559a strb r2, [r3, r6]
ext->dot_tmp_alloc = true;
14c8c: 7c6b ldrb r3, [r5, #17]
14c8e: f043 0301 orr.w r3, r3, #1
14c92: 746b strb r3, [r5, #17]
return true;
14c94: 2001 movs r0, #1
14c96: e7f1 b.n 14c7c <lv_label_set_dot_tmp+0x3c>
ext->dot_tmp_alloc = false;
14c98: 7c6b ldrb r3, [r5, #17]
14c9a: f36f 0300 bfc r3, #0, #1
14c9e: 746b strb r3, [r5, #17]
_lv_memcpy(ext->dot.tmp, data, len);
14ca0: 4632 mov r2, r6
14ca2: 4b09 ldr r3, [pc, #36] ; (14cc8 <lv_label_set_dot_tmp+0x88>)
14ca4: 1d28 adds r0, r5, #4
14ca6: 4798 blx r3
14ca8: e7f4 b.n 14c94 <lv_label_set_dot_tmp+0x54>
14caa: bf00 nop
14cac: 00003f89 .word 0x00003f89
14cb0: 00014b5d .word 0x00014b5d
14cb4: 0000ea75 .word 0x0000ea75
14cb8: 000244b9 .word 0x000244b9
14cbc: 000244ff .word 0x000244ff
14cc0: 00024485 .word 0x00024485
14cc4: 0000e931 .word 0x0000e931
14cc8: 0000ec79 .word 0x0000ec79
00014ccc <get_txt_coords>:
static void get_txt_coords(const lv_obj_t * label, lv_area_t * area)
{
14ccc: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
lv_obj_get_coords(label, area);
14cd0: 4b13 ldr r3, [pc, #76] ; (14d20 <get_txt_coords+0x54>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14cd2: f8df 8050 ldr.w r8, [pc, #80] ; 14d24 <get_txt_coords+0x58>
{
14cd6: 4605 mov r5, r0
14cd8: 460c mov r4, r1
lv_obj_get_coords(label, area);
14cda: 4798 blx r3
14cdc: 2212 movs r2, #18
14cde: 2100 movs r1, #0
14ce0: 4628 mov r0, r5
14ce2: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14ce4: 2213 movs r2, #19
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14ce6: 4607 mov r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14ce8: 2100 movs r1, #0
14cea: 4628 mov r0, r5
14cec: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14cee: 2210 movs r2, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14cf0: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14cf2: 2100 movs r1, #0
14cf4: 4628 mov r0, r5
14cf6: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14cf8: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14cfa: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14cfc: 2100 movs r1, #0
14cfe: 4628 mov r0, r5
14d00: 47c0 blx r8
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;
14d02: 8823 ldrh r3, [r4, #0]
area->x2 -= right;
14d04: 88a1 ldrh r1, [r4, #4]
area->x1 += left;
14d06: 441f add r7, r3
area->y1 += top;
14d08: 8863 ldrh r3, [r4, #2]
area->x1 += left;
14d0a: 8027 strh r7, [r4, #0]
area->y1 += top;
14d0c: 441e add r6, r3
area->y2 -= bottom;
14d0e: 88e3 ldrh r3, [r4, #6]
area->y1 += top;
14d10: 8066 strh r6, [r4, #2]
area->x2 -= right;
14d12: eba1 0209 sub.w r2, r1, r9
area->y2 -= bottom;
14d16: 1a18 subs r0, r3, r0
area->x2 -= right;
14d18: 80a2 strh r2, [r4, #4]
area->y2 -= bottom;
14d1a: 80e0 strh r0, [r4, #6]
}
14d1c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
14d20: 00002285 .word 0x00002285
14d24: 000036f1 .word 0x000036f1
00014d28 <lv_label_set_align>:
{
14d28: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14d2a: 4b13 ldr r3, [pc, #76] ; (14d78 <lv_label_set_align+0x50>)
{
14d2c: 4604 mov r4, r0
14d2e: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14d30: 4798 blx r3
14d32: 4606 mov r6, r0
14d34: b968 cbnz r0, 14d52 <lv_label_set_align+0x2a>
14d36: 4b11 ldr r3, [pc, #68] ; (14d7c <lv_label_set_align+0x54>)
14d38: 4911 ldr r1, [pc, #68] ; (14d80 <lv_label_set_align+0x58>)
14d3a: 9300 str r3, [sp, #0]
14d3c: f44f 72c4 mov.w r2, #392 ; 0x188
14d40: 2003 movs r0, #3
14d42: 4d10 ldr r5, [pc, #64] ; (14d84 <lv_label_set_align+0x5c>)
14d44: 47a8 blx r5
14d46: 4810 ldr r0, [pc, #64] ; (14d88 <lv_label_set_align+0x60>)
14d48: 4910 ldr r1, [pc, #64] ; (14d8c <lv_label_set_align+0x64>)
14d4a: 4622 mov r2, r4
14d4c: 4633 mov r3, r6
14d4e: 4788 blx r1
14d50: e7fe b.n 14d50 <lv_label_set_align+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14d52: 4b0f ldr r3, [pc, #60] ; (14d90 <lv_label_set_align+0x68>)
14d54: 4620 mov r0, r4
14d56: 4798 blx r3
if(ext->align == align) return;
14d58: 7c03 ldrb r3, [r0, #16]
14d5a: f3c3 1201 ubfx r2, r3, #4, #2
14d5e: 42aa cmp r2, r5
14d60: d008 beq.n 14d74 <lv_label_set_align+0x4c>
ext->align = align;
14d62: f365 1305 bfi r3, r5, #4, #2
14d66: 7403 strb r3, [r0, #16]
lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related
14d68: 4b0a ldr r3, [pc, #40] ; (14d94 <lv_label_set_align+0x6c>)
14d6a: 4620 mov r0, r4
}
14d6c: b002 add sp, #8
14d6e: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related
14d72: 4718 bx r3
}
14d74: b002 add sp, #8
14d76: bd70 pop {r4, r5, r6, pc}
14d78: 00001795 .word 0x00001795
14d7c: 00024514 .word 0x00024514
14d80: 00024485 .word 0x00024485
14d84: 0000e931 .word 0x0000e931
14d88: 0001ef03 .word 0x0001ef03
14d8c: 0000179d .word 0x0000179d
14d90: 00003f89 .word 0x00003f89
14d94: 00002739 .word 0x00002739
00014d98 <lv_label_get_text>:
{
14d98: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14d9a: 4b0c ldr r3, [pc, #48] ; (14dcc <lv_label_get_text+0x34>)
{
14d9c: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14d9e: 4798 blx r3
14da0: 4605 mov r5, r0
14da2: b968 cbnz r0, 14dc0 <lv_label_get_text+0x28>
14da4: 4b0a ldr r3, [pc, #40] ; (14dd0 <lv_label_get_text+0x38>)
14da6: 490b ldr r1, [pc, #44] ; (14dd4 <lv_label_get_text+0x3c>)
14da8: 9300 str r3, [sp, #0]
14daa: f44f 72f2 mov.w r2, #484 ; 0x1e4
14dae: 2003 movs r0, #3
14db0: 4e09 ldr r6, [pc, #36] ; (14dd8 <lv_label_get_text+0x40>)
14db2: 47b0 blx r6
14db4: 4809 ldr r0, [pc, #36] ; (14ddc <lv_label_get_text+0x44>)
14db6: 490a ldr r1, [pc, #40] ; (14de0 <lv_label_get_text+0x48>)
14db8: 4622 mov r2, r4
14dba: 462b mov r3, r5
14dbc: 4788 blx r1
14dbe: e7fe b.n 14dbe <lv_label_get_text+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14dc0: 4b08 ldr r3, [pc, #32] ; (14de4 <lv_label_get_text+0x4c>)
14dc2: 4620 mov r0, r4
14dc4: 4798 blx r3
}
14dc6: 6800 ldr r0, [r0, #0]
14dc8: b002 add sp, #8
14dca: bd70 pop {r4, r5, r6, pc}
14dcc: 00001795 .word 0x00001795
14dd0: 0002455d .word 0x0002455d
14dd4: 00024485 .word 0x00024485
14dd8: 0000e931 .word 0x0000e931
14ddc: 0001ef03 .word 0x0001ef03
14de0: 0000179d .word 0x0000179d
14de4: 00003f89 .word 0x00003f89
00014de8 <lv_label_get_long_mode>:
{
14de8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14dea: 4b0d ldr r3, [pc, #52] ; (14e20 <lv_label_get_long_mode+0x38>)
{
14dec: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14dee: 4798 blx r3
14df0: 4605 mov r5, r0
14df2: b968 cbnz r0, 14e10 <lv_label_get_long_mode+0x28>
14df4: 4b0b ldr r3, [pc, #44] ; (14e24 <lv_label_get_long_mode+0x3c>)
14df6: 490c ldr r1, [pc, #48] ; (14e28 <lv_label_get_long_mode+0x40>)
14df8: 9300 str r3, [sp, #0]
14dfa: f44f 72f9 mov.w r2, #498 ; 0x1f2
14dfe: 2003 movs r0, #3
14e00: 4e0a ldr r6, [pc, #40] ; (14e2c <lv_label_get_long_mode+0x44>)
14e02: 47b0 blx r6
14e04: 480a ldr r0, [pc, #40] ; (14e30 <lv_label_get_long_mode+0x48>)
14e06: 490b ldr r1, [pc, #44] ; (14e34 <lv_label_get_long_mode+0x4c>)
14e08: 4622 mov r2, r4
14e0a: 462b mov r3, r5
14e0c: 4788 blx r1
14e0e: e7fe b.n 14e0e <lv_label_get_long_mode+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e10: 4b09 ldr r3, [pc, #36] ; (14e38 <lv_label_get_long_mode+0x50>)
14e12: 4620 mov r0, r4
14e14: 4798 blx r3
return ext->long_mode;
14e16: 7c00 ldrb r0, [r0, #16]
}
14e18: f000 0007 and.w r0, r0, #7
14e1c: b002 add sp, #8
14e1e: bd70 pop {r4, r5, r6, pc}
14e20: 00001795 .word 0x00001795
14e24: 0002456f .word 0x0002456f
14e28: 00024485 .word 0x00024485
14e2c: 0000e931 .word 0x0000e931
14e30: 0001ef03 .word 0x0001ef03
14e34: 0000179d .word 0x0000179d
14e38: 00003f89 .word 0x00003f89
00014e3c <lv_label_get_align>:
{
14e3c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14e3e: 4b0f ldr r3, [pc, #60] ; (14e7c <lv_label_get_align+0x40>)
{
14e40: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14e42: 4798 blx r3
14e44: 4605 mov r5, r0
14e46: b968 cbnz r0, 14e64 <lv_label_get_align+0x28>
14e48: 4b0d ldr r3, [pc, #52] ; (14e80 <lv_label_get_align+0x44>)
14e4a: 490e ldr r1, [pc, #56] ; (14e84 <lv_label_get_align+0x48>)
14e4c: 9300 str r3, [sp, #0]
14e4e: f240 12ff movw r2, #511 ; 0x1ff
14e52: 2003 movs r0, #3
14e54: 4e0c ldr r6, [pc, #48] ; (14e88 <lv_label_get_align+0x4c>)
14e56: 47b0 blx r6
14e58: 480c ldr r0, [pc, #48] ; (14e8c <lv_label_get_align+0x50>)
14e5a: 490d ldr r1, [pc, #52] ; (14e90 <lv_label_get_align+0x54>)
14e5c: 4622 mov r2, r4
14e5e: 462b mov r3, r5
14e60: 4788 blx r1
14e62: e7fe b.n 14e62 <lv_label_get_align+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e64: 4b0b ldr r3, [pc, #44] ; (14e94 <lv_label_get_align+0x58>)
14e66: 4620 mov r0, r4
14e68: 4798 blx r3
lv_label_align_t align = ext->align;
14e6a: 7c00 ldrb r0, [r0, #16]
14e6c: f3c0 1001 ubfx r0, r0, #4, #2
align = LV_LABEL_ALIGN_LEFT;
14e70: 2803 cmp r0, #3
}
14e72: bf08 it eq
14e74: 2000 moveq r0, #0
14e76: b002 add sp, #8
14e78: bd70 pop {r4, r5, r6, pc}
14e7a: bf00 nop
14e7c: 00001795 .word 0x00001795
14e80: 00024586 .word 0x00024586
14e84: 00024485 .word 0x00024485
14e88: 0000e931 .word 0x0000e931
14e8c: 0001ef03 .word 0x0001ef03
14e90: 0000179d .word 0x0000179d
14e94: 00003f89 .word 0x00003f89
00014e98 <lv_label_get_recolor>:
{
14e98: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14e9a: 4b0d ldr r3, [pc, #52] ; (14ed0 <lv_label_get_recolor+0x38>)
{
14e9c: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14e9e: 4798 blx r3
14ea0: 4605 mov r5, r0
14ea2: b968 cbnz r0, 14ec0 <lv_label_get_recolor+0x28>
14ea4: 4b0b ldr r3, [pc, #44] ; (14ed4 <lv_label_get_recolor+0x3c>)
14ea6: 490c ldr r1, [pc, #48] ; (14ed8 <lv_label_get_recolor+0x40>)
14ea8: 9300 str r3, [sp, #0]
14eaa: f240 221b movw r2, #539 ; 0x21b
14eae: 2003 movs r0, #3
14eb0: 4e0a ldr r6, [pc, #40] ; (14edc <lv_label_get_recolor+0x44>)
14eb2: 47b0 blx r6
14eb4: 480a ldr r0, [pc, #40] ; (14ee0 <lv_label_get_recolor+0x48>)
14eb6: 490b ldr r1, [pc, #44] ; (14ee4 <lv_label_get_recolor+0x4c>)
14eb8: 4622 mov r2, r4
14eba: 462b mov r3, r5
14ebc: 4788 blx r1
14ebe: e7fe b.n 14ebe <lv_label_get_recolor+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14ec0: 4b09 ldr r3, [pc, #36] ; (14ee8 <lv_label_get_recolor+0x50>)
14ec2: 4620 mov r0, r4
14ec4: 4798 blx r3
return ext->recolor == 0 ? false : true;
14ec6: 7c00 ldrb r0, [r0, #16]
}
14ec8: f3c0 1080 ubfx r0, r0, #6, #1
14ecc: b002 add sp, #8
14ece: bd70 pop {r4, r5, r6, pc}
14ed0: 00001795 .word 0x00001795
14ed4: 00024599 .word 0x00024599
14ed8: 00024485 .word 0x00024485
14edc: 0000e931 .word 0x0000e931
14ee0: 0001ef03 .word 0x0001ef03
14ee4: 0000179d .word 0x0000179d
14ee8: 00003f89 .word 0x00003f89
00014eec <lv_label_get_letter_on>:
{
14eec: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
14ef0: ed2d 8b02 vpush {d8}
14ef4: b08b sub sp, #44 ; 0x2c
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14ef6: 4e93 ldr r6, [pc, #588] ; (15144 <lv_label_get_letter_on+0x258>)
{
14ef8: 9102 str r1, [sp, #8]
14efa: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14efc: 47b0 blx r6
14efe: 4605 mov r5, r0
14f00: b968 cbnz r0, 14f1e <lv_label_get_letter_on+0x32>
14f02: 4b91 ldr r3, [pc, #580] ; (15148 <lv_label_get_letter_on+0x25c>)
14f04: 4991 ldr r1, [pc, #580] ; (1514c <lv_label_get_letter_on+0x260>)
14f06: 9300 str r3, [sp, #0]
14f08: f240 22a5 movw r2, #677 ; 0x2a5
14f0c: 2003 movs r0, #3
14f0e: 4e90 ldr r6, [pc, #576] ; (15150 <lv_label_get_letter_on+0x264>)
14f10: 47b0 blx r6
14f12: 4890 ldr r0, [pc, #576] ; (15154 <lv_label_get_letter_on+0x268>)
14f14: 4990 ldr r1, [pc, #576] ; (15158 <lv_label_get_letter_on+0x26c>)
14f16: 4622 mov r2, r4
14f18: 462b mov r3, r5
14f1a: 4788 blx r1
14f1c: e7fe b.n 14f1c <lv_label_get_letter_on+0x30>
LV_ASSERT_NULL(pos);
14f1e: 9802 ldr r0, [sp, #8]
14f20: 47b0 blx r6
14f22: 4605 mov r5, r0
14f24: b968 cbnz r0, 14f42 <lv_label_get_letter_on+0x56>
14f26: 4b88 ldr r3, [pc, #544] ; (15148 <lv_label_get_letter_on+0x25c>)
14f28: 4988 ldr r1, [pc, #544] ; (1514c <lv_label_get_letter_on+0x260>)
14f2a: 9300 str r3, [sp, #0]
14f2c: f240 22a6 movw r2, #678 ; 0x2a6
14f30: 2003 movs r0, #3
14f32: 4c87 ldr r4, [pc, #540] ; (15150 <lv_label_get_letter_on+0x264>)
14f34: 47a0 blx r4
14f36: 9a02 ldr r2, [sp, #8]
14f38: 4886 ldr r0, [pc, #536] ; (15154 <lv_label_get_letter_on+0x268>)
14f3a: 4987 ldr r1, [pc, #540] ; (15158 <lv_label_get_letter_on+0x26c>)
14f3c: 462b mov r3, r5
14f3e: 4788 blx r1
14f40: e7fe b.n 14f40 <lv_label_get_letter_on+0x54>
get_txt_coords(label, &txt_coords);
14f42: a908 add r1, sp, #32
14f44: 4620 mov r0, r4
14f46: 4b85 ldr r3, [pc, #532] ; (1515c <lv_label_get_letter_on+0x270>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
14f48: 4f85 ldr r7, [pc, #532] ; (15160 <lv_label_get_letter_on+0x274>)
14f4a: 4798 blx r3
const char * txt = lv_label_get_text(label);
14f4c: 4b85 ldr r3, [pc, #532] ; (15164 <lv_label_get_letter_on+0x278>)
14f4e: 4620 mov r0, r4
14f50: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14f52: 4b85 ldr r3, [pc, #532] ; (15168 <lv_label_get_letter_on+0x27c>)
const char * txt = lv_label_get_text(label);
14f54: 4680 mov r8, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14f56: 4620 mov r0, r4
14f58: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
14f5a: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
14f5e: f8bd 2020 ldrh.w r2, [sp, #32]
14f62: 3301 adds r3, #1
14f64: 1a9b subs r3, r3, r2
14f66: b21b sxth r3, r3
14f68: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
14f6a: f248 028e movw r2, #32910 ; 0x808e
14f6e: 2100 movs r1, #0
14f70: 4620 mov r0, r4
14f72: ee08 3a90 vmov s17, r3
14f76: 4b7d ldr r3, [pc, #500] ; (1516c <lv_label_get_letter_on+0x280>)
14f78: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
14f7a: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
14f7e: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
14f80: 2100 movs r1, #0
14f82: 4620 mov r0, r4
14f84: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
14f86: f248 0280 movw r2, #32896 ; 0x8080
14f8a: 2100 movs r1, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
14f8c: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
14f8e: 4620 mov r0, r4
14f90: 47b8 blx r7
* @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;
14f92: f9ba 3008 ldrsh.w r3, [sl, #8]
14f96: 9303 str r3, [sp, #12]
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
14f98: 7c33 ldrb r3, [r6, #16]
14f9a: f3c3 1680 ubfx r6, r3, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
14f9e: 061a lsls r2, r3, #24
14fa0: bf48 it mi
14fa2: f046 0602 orrmi.w r6, r6, #2
14fa6: ee08 0a10 vmov s16, r0
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
14faa: 075b lsls r3, r3, #29
lv_label_align_t align = lv_label_get_align(label);
14fac: 4620 mov r0, r4
14fae: 4b70 ldr r3, [pc, #448] ; (15170 <lv_label_get_letter_on+0x284>)
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
14fb0: bf08 it eq
14fb2: f046 0610 orreq.w r6, r6, #16
lv_label_align_t align = lv_label_get_align(label);
14fb6: 4798 blx r3
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
14fb8: 2801 cmp r0, #1
lv_label_align_t align = lv_label_get_align(label);
14fba: 4604 mov r4, r0
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
14fbc: d108 bne.n 14fd0 <lv_label_get_letter_on+0xe4>
14fbe: f046 0604 orr.w r6, r6, #4
y += letter_height + line_space;
14fc2: 9b03 ldr r3, [sp, #12]
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
14fc4: f04f 0b00 mov.w fp, #0
y += letter_height + line_space;
14fc8: 442b add r3, r5
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
14fca: 465f mov r7, fp
y += letter_height + line_space;
14fcc: 9304 str r3, [sp, #16]
14fce: e059 b.n 15084 <lv_label_get_letter_on+0x198>
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
14fd0: 2802 cmp r0, #2
14fd2: d1f6 bne.n 14fc2 <lv_label_get_letter_on+0xd6>
14fd4: f046 0608 orr.w r6, r6, #8
14fd8: e7f3 b.n 14fc2 <lv_label_get_letter_on+0xd6>
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
14fda: ee18 3a90 vmov r3, s17
14fde: ee18 2a10 vmov r2, s16
14fe2: 4d64 ldr r5, [pc, #400] ; (15174 <lv_label_get_letter_on+0x288>)
14fe4: 9600 str r6, [sp, #0]
14fe6: 4651 mov r1, sl
14fe8: 4648 mov r0, r9
14fea: 47a8 blx r5
if(pos->y <= y + letter_height) {
14fec: 9b02 ldr r3, [sp, #8]
14fee: f9b3 2002 ldrsh.w r2, [r3, #2]
14ff2: 9b03 ldr r3, [sp, #12]
14ff4: 445b add r3, fp
14ff6: 429a cmp r2, r3
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
14ff8: eb00 0507 add.w r5, r0, r7
if(pos->y <= y + letter_height) {
14ffc: dc3d bgt.n 1507a <lv_label_get_letter_on+0x18e>
letter = _lv_txt_encoded_prev(txt, &tmp);
14ffe: 4b5e ldr r3, [pc, #376] ; (15178 <lv_label_get_letter_on+0x28c>)
uint32_t tmp = new_line_start;
15000: 9507 str r5, [sp, #28]
letter = _lv_txt_encoded_prev(txt, &tmp);
15002: 681b ldr r3, [r3, #0]
15004: a907 add r1, sp, #28
15006: 4640 mov r0, r8
15008: 4798 blx r3
if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++;
1500a: 280a cmp r0, #10
1500c: d003 beq.n 15016 <lv_label_get_letter_on+0x12a>
1500e: f818 3005 ldrb.w r3, [r8, r5]
15012: b903 cbnz r3, 15016 <lv_label_get_letter_on+0x12a>
15014: 3501 adds r5, #1
if(align == LV_LABEL_ALIGN_CENTER) {
15016: 2c01 cmp r4, #1
15018: d13c bne.n 15094 <lv_label_get_letter_on+0x1a8>
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
1501a: 1be9 subs r1, r5, r7
1501c: ee18 3a10 vmov r3, s16
15020: 4c56 ldr r4, [pc, #344] ; (1517c <lv_label_get_letter_on+0x290>)
15022: 9600 str r6, [sp, #0]
15024: 4652 mov r2, sl
15026: b289 uxth r1, r1
15028: 4648 mov r0, r9
1502a: 47a0 blx r4
1502c: f8bd 4024 ldrh.w r4, [sp, #36] ; 0x24
15030: f8bd 3020 ldrh.w r3, [sp, #32]
15034: 3401 adds r4, #1
15036: 1ae4 subs r4, r4, r3
x += lv_area_get_width(&txt_coords) / 2 - line_w / 2;
15038: f3c4 33c0 ubfx r3, r4, #15, #1
1503c: eb00 70d0 add.w r0, r0, r0, lsr #31
15040: fa03 f384 sxtah r3, r3, r4
15044: 1044 asrs r4, r0, #1
15046: ebc4 0463 rsb r4, r4, r3, asr #1
1504a: b224 sxth r4, r4
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
1504c: 2300 movs r3, #0
1504e: f88d 301b strb.w r3, [sp, #27]
uint32_t i = 0;
15052: 9307 str r3, [sp, #28]
if(new_line_start > 0) {
15054: 2d00 cmp r5, #0
15056: d16e bne.n 15136 <lv_label_get_letter_on+0x24a>
logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i);
15058: 4d49 ldr r5, [pc, #292] ; (15180 <lv_label_get_letter_on+0x294>)
1505a: 9907 ldr r1, [sp, #28]
1505c: 682b ldr r3, [r5, #0]
1505e: 4648 mov r0, r9
15060: 4798 blx r3
return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start);
15062: 682b ldr r3, [r5, #0]
logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i);
15064: 4604 mov r4, r0
return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start);
15066: 4639 mov r1, r7
15068: 4640 mov r0, r8
1506a: 4798 blx r3
1506c: 4420 add r0, r4
}
1506e: b280 uxth r0, r0
15070: b00b add sp, #44 ; 0x2c
15072: ecbd 8b02 vpop {d8}
15076: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
y += letter_height + line_space;
1507a: 9b04 ldr r3, [sp, #16]
1507c: 449b add fp, r3
1507e: fa0f fb8b sxth.w fp, fp
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
15082: 462f mov r7, r5
while(txt[line_start] != '\0') {
15084: f818 3007 ldrb.w r3, [r8, r7]
15088: eb08 0907 add.w r9, r8, r7
1508c: 2b00 cmp r3, #0
1508e: d1a4 bne.n 14fda <lv_label_get_letter_on+0xee>
15090: 463d mov r5, r7
15092: e7c0 b.n 15016 <lv_label_get_letter_on+0x12a>
else if(align == LV_LABEL_ALIGN_RIGHT) {
15094: 2c02 cmp r4, #2
15096: d111 bne.n 150bc <lv_label_get_letter_on+0x1d0>
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
15098: 1be9 subs r1, r5, r7
1509a: ee18 3a10 vmov r3, s16
1509e: 4c37 ldr r4, [pc, #220] ; (1517c <lv_label_get_letter_on+0x290>)
150a0: 9600 str r6, [sp, #0]
150a2: 4652 mov r2, sl
150a4: b289 uxth r1, r1
150a6: 4648 mov r0, r9
150a8: 47a0 blx r4
150aa: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
150ae: f8bd 4020 ldrh.w r4, [sp, #32]
150b2: 3301 adds r3, #1
150b4: 1b1b subs r3, r3, r4
x += lv_area_get_width(&txt_coords) - line_w;
150b6: 1a18 subs r0, r3, r0
150b8: b204 sxth r4, r0
150ba: e7c7 b.n 1504c <lv_label_get_letter_on+0x160>
lv_coord_t x = 0;
150bc: 2400 movs r4, #0
150be: e7c5 b.n 1504c <lv_label_get_letter_on+0x160>
if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) {
150c0: 9b07 ldr r3, [sp, #28]
150c2: 9005 str r0, [sp, #20]
150c4: f819 1003 ldrb.w r1, [r9, r3]
150c8: 4b2e ldr r3, [pc, #184] ; (15184 <lv_label_get_letter_on+0x298>)
150ca: f10d 001b add.w r0, sp, #27
150ce: 4798 blx r3
150d0: 9a05 ldr r2, [sp, #20]
150d2: b198 cbz r0, 150fc <lv_label_get_letter_on+0x210>
while(i + line_start < new_line_start) {
150d4: 9b07 ldr r3, [sp, #28]
150d6: 443b add r3, r7
150d8: 429d cmp r5, r3
150da: d9bd bls.n 15058 <lv_label_get_letter_on+0x16c>
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
150dc: f8db 3000 ldr.w r3, [fp]
150e0: a907 add r1, sp, #28
150e2: 4648 mov r0, r9
150e4: 4798 blx r3
150e6: 4606 mov r6, r0
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
150e8: 9807 ldr r0, [sp, #28]
150ea: f8db 3000 ldr.w r3, [fp]
150ee: 2100 movs r1, #0
150f0: 4448 add r0, r9
150f2: 4798 blx r3
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
150f4: 9b04 ldr r3, [sp, #16]
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
150f6: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
150f8: 2b00 cmp r3, #0
150fa: d1e1 bne.n 150c0 <lv_label_get_letter_on+0x1d4>
x += lv_font_get_glyph_width(font, letter, letter_next);
150fc: 4b22 ldr r3, [pc, #136] ; (15188 <lv_label_get_letter_on+0x29c>)
150fe: 4631 mov r1, r6
15100: 4650 mov r0, sl
15102: 4798 blx r3
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
15104: 9b02 ldr r3, [sp, #8]
x += lv_font_get_glyph_width(font, letter, letter_next);
15106: 4420 add r0, r4
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
15108: f9b3 3000 ldrsh.w r3, [r3]
x += lv_font_get_glyph_width(font, letter, letter_next);
1510c: b284 uxth r4, r0
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
1510e: b200 sxth r0, r0
15110: 4283 cmp r3, r0
15112: da02 bge.n 1511a <lv_label_get_letter_on+0x22e>
i = i_act;
15114: 9b03 ldr r3, [sp, #12]
15116: 9307 str r3, [sp, #28]
break;
15118: e79e b.n 15058 <lv_label_get_letter_on+0x16c>
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
1511a: 9b07 ldr r3, [sp, #28]
1511c: 18fa adds r2, r7, r3
1511e: 4295 cmp r5, r2
15120: d0f8 beq.n 15114 <lv_label_get_letter_on+0x228>
15122: f818 2002 ldrb.w r2, [r8, r2]
15126: 2a00 cmp r2, #0
15128: d0f4 beq.n 15114 <lv_label_get_letter_on+0x228>
x += letter_space;
1512a: ee18 2a10 vmov r2, s16
1512e: 4414 add r4, r2
15130: b224 sxth r4, r4
i_act = i;
15132: 9303 str r3, [sp, #12]
15134: e7ce b.n 150d4 <lv_label_get_letter_on+0x1e8>
uint32_t i_act = i;
15136: 9303 str r3, [sp, #12]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
15138: f006 0301 and.w r3, r6, #1
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
1513c: f8df b04c ldr.w fp, [pc, #76] ; 1518c <lv_label_get_letter_on+0x2a0>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
15140: 9304 str r3, [sp, #16]
15142: e7c7 b.n 150d4 <lv_label_get_letter_on+0x1e8>
15144: 00001795 .word 0x00001795
15148: 000245de .word 0x000245de
1514c: 00024485 .word 0x00024485
15150: 0000e931 .word 0x0000e931
15154: 0001ef03 .word 0x0001ef03
15158: 0000179d .word 0x0000179d
1515c: 00014ccd .word 0x00014ccd
15160: 000036f1 .word 0x000036f1
15164: 00014d99 .word 0x00014d99
15168: 00003f89 .word 0x00003f89
1516c: 000038a9 .word 0x000038a9
15170: 00014e3d .word 0x00014e3d
15174: 00010025 .word 0x00010025
15178: 20000068 .word 0x20000068
1517c: 0000ff7d .word 0x0000ff7d
15180: 20000064 .word 0x20000064
15184: 0000ff41 .word 0x0000ff41
15188: 0000d1b9 .word 0x0000d1b9
1518c: 20000058 .word 0x20000058
00015190 <lv_label_refr_text>:
{
15190: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15194: 4b8a ldr r3, [pc, #552] ; (153c0 <lv_label_refr_text+0x230>)
{
15196: b099 sub sp, #100 ; 0x64
15198: 4604 mov r4, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1519a: 4798 blx r3
if(ext->text == NULL) return;
1519c: 6803 ldr r3, [r0, #0]
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1519e: 4605 mov r5, r0
if(ext->text == NULL) return;
151a0: 2b00 cmp r3, #0
151a2: d061 beq.n 15268 <lv_label_refr_text+0xd8>
get_txt_coords(label, &txt_coords);
151a4: 4b87 ldr r3, [pc, #540] ; (153c4 <lv_label_refr_text+0x234>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151a6: f8df 924c ldr.w r9, [pc, #588] ; 153f4 <lv_label_refr_text+0x264>
151aa: a906 add r1, sp, #24
151ac: 4620 mov r0, r4
151ae: 4798 blx r3
151b0: f8bd 301c ldrh.w r3, [sp, #28]
151b4: f8bd 2018 ldrh.w r2, [sp, #24]
151b8: 3301 adds r3, #1
151ba: 1a9b subs r3, r3, r2
151bc: fa0f f883 sxth.w r8, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
151c0: f248 028e movw r2, #32910 ; 0x808e
151c4: 4b80 ldr r3, [pc, #512] ; (153c8 <lv_label_refr_text+0x238>)
151c6: 2100 movs r1, #0
151c8: 4620 mov r0, r4
151ca: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151cc: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
151d0: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151d2: 2100 movs r1, #0
151d4: 4620 mov r0, r4
151d6: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
151d8: 2100 movs r1, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151da: 4607 mov r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
151dc: f248 0280 movw r2, #32896 ; 0x8080
151e0: 4620 mov r0, r4
151e2: 47c8 blx r9
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
151e4: 7c2a ldrb r2, [r5, #16]
_lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag);
151e6: 9700 str r7, [sp, #0]
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
151e8: f3c2 1380 ubfx r3, r2, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
151ec: 0611 lsls r1, r2, #24
151ee: bf48 it mi
151f0: f043 0302 orrmi.w r3, r3, #2
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
151f4: 0752 lsls r2, r2, #29
151f6: bf08 it eq
151f8: f043 0310 orreq.w r3, r3, #16
_lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag);
151fc: e9cd 8301 strd r8, r3, [sp, #4]
15200: 4682 mov sl, r0
15202: f8df 81f4 ldr.w r8, [pc, #500] ; 153f8 <lv_label_refr_text+0x268>
15206: 6829 ldr r1, [r5, #0]
15208: 4603 mov r3, r0
1520a: 4632 mov r2, r6
1520c: a804 add r0, sp, #16
1520e: 47c0 blx r8
if(ext->long_mode == LV_LABEL_LONG_EXPAND) {
15210: f895 8010 ldrb.w r8, [r5, #16]
15214: f018 0807 ands.w r8, r8, #7
15218: d129 bne.n 1526e <lv_label_refr_text+0xde>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1521a: 2212 movs r2, #18
1521c: 4641 mov r1, r8
1521e: 4620 mov r0, r4
15220: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15222: 2213 movs r2, #19
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
15224: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15226: 4641 mov r1, r8
15228: 4620 mov r0, r4
1522a: 47c8 blx r9
size.x += lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN);
1522c: 4428 add r0, r5
1522e: f8bd 5010 ldrh.w r5, [sp, #16]
15232: 4428 add r0, r5
15234: f8ad 0010 strh.w r0, [sp, #16]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15238: 2210 movs r2, #16
1523a: 4641 mov r1, r8
1523c: 4620 mov r0, r4
1523e: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15240: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15242: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15244: 4641 mov r1, r8
15246: 4620 mov r0, r4
15248: 47c8 blx r9
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1524a: f8bd 2012 ldrh.w r2, [sp, #18]
lv_obj_set_size(label, size.x, size.y);
1524e: f9bd 1010 ldrsh.w r1, [sp, #16]
15252: 4b5e ldr r3, [pc, #376] ; (153cc <lv_label_refr_text+0x23c>)
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
15254: 4428 add r0, r5
15256: 4402 add r2, r0
15258: b212 sxth r2, r2
lv_obj_set_size(label, size.x, size.y);
1525a: 4620 mov r0, r4
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1525c: f8ad 2012 strh.w r2, [sp, #18]
lv_obj_set_size(label, size.x, size.y);
15260: 4798 blx r3
lv_obj_invalidate(label);
15262: 4b5b ldr r3, [pc, #364] ; (153d0 <lv_label_refr_text+0x240>)
15264: 4620 mov r0, r4
15266: 4798 blx r3
}
15268: b019 add sp, #100 ; 0x64
1526a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(ext->long_mode == LV_LABEL_LONG_SROLL) {
1526e: f1b8 0f03 cmp.w r8, #3
15272: f040 80c3 bne.w 153fc <lv_label_refr_text+0x26c>
lv_anim_init(&a);
15276: 4b57 ldr r3, [pc, #348] ; (153d4 <lv_label_refr_text+0x244>)
15278: a808 add r0, sp, #32
1527a: 4798 blx r3
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
1527c: 2220 movs r2, #32
* @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;
1527e: f64f 73ff movw r3, #65535 ; 0xffff
15282: 4611 mov r1, r2
15284: f8ad 3054 strh.w r3, [sp, #84] ; 0x54
a->var = var;
15288: 9408 str r4, [sp, #32]
1528a: 4b53 ldr r3, [pc, #332] ; (153d8 <lv_label_refr_text+0x248>)
1528c: 4630 mov r0, r6
1528e: 4798 blx r3
15290: eb00 030a add.w r3, r0, sl
15294: f44f 707a mov.w r0, #1000 ; 0x3e8
ext->anim_speed) *
15298: 896f ldrh r7, [r5, #10]
1529a: f8bd 2018 ldrh.w r2, [sp, #24]
if(size.x > lv_area_get_width(&txt_coords)) {
1529e: f9bd 1010 ldrsh.w r1, [sp, #16]
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
152a2: 4343 muls r3, r0
152a4: fb93 f3f7 sdiv r3, r3, r7
152a8: eb03 0343 add.w r3, r3, r3, lsl #1
a->playback_delay = delay;
152ac: b29b uxth r3, r3
152ae: 9312 str r3, [sp, #72] ; 0x48
* @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;
152b0: 9314 str r3, [sp, #80] ; 0x50
152b2: f8bd 301c ldrh.w r3, [sp, #28]
152b6: 3301 adds r3, #1
152b8: 1a9b subs r3, r3, r2
152ba: b29a uxth r2, r3
if(size.x > lv_area_get_width(&txt_coords)) {
152bc: b21b sxth r3, r3
152be: 4299 cmp r1, r3
152c0: dd74 ble.n 153ac <lv_label_refr_text+0x21c>
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
152c2: 1a52 subs r2, r2, r1
a->exec_cb = exec_cb;
152c4: f8df 8124 ldr.w r8, [pc, #292] ; 153ec <lv_label_refr_text+0x25c>
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
152c8: 4b44 ldr r3, [pc, #272] ; (153dc <lv_label_refr_text+0x24c>)
152ca: f8cd 8024 str.w r8, [sp, #36] ; 0x24
a->start = start;
152ce: 2100 movs r1, #0
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
152d0: b212 sxth r2, r2
a->end = end;
152d2: e9cd 120e strd r1, r2, [sp, #56] ; 0x38
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
152d6: 4638 mov r0, r7
152d8: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
152da: 4b41 ldr r3, [pc, #260] ; (153e0 <lv_label_refr_text+0x250>)
a->time = duration;
152dc: 9010 str r0, [sp, #64] ; 0x40
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
152de: 9013 str r0, [sp, #76] ; 0x4c
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
152e0: 4641 mov r1, r8
152e2: 4620 mov r0, r4
152e4: 4798 blx r3
if(anim_cur) {
152e6: 2800 cmp r0, #0
152e8: d05e beq.n 153a8 <lv_label_refr_text+0x218>
act_time = anim_cur->act_time;
152ea: 6a43 ldr r3, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
152ec: f890 003c ldrb.w r0, [r0, #60] ; 0x3c
152f0: f000 0001 and.w r0, r0, #1
if(act_time < a.time) {
152f4: 9a10 ldr r2, [sp, #64] ; 0x40
152f6: 429a cmp r2, r3
152f8: dd11 ble.n 1531e <lv_label_refr_text+0x18e>
a.act_time = act_time; /*To keep the old position*/
152fa: 9311 str r3, [sp, #68] ; 0x44
a.early_apply = 0;
152fc: f89d 3056 ldrb.w r3, [sp, #86] ; 0x56
15300: f36f 0300 bfc r3, #0, #1
15304: f88d 3056 strb.w r3, [sp, #86] ; 0x56
if(playback_now) {
15308: b148 cbz r0, 1531e <lv_label_refr_text+0x18e>
a.playback_now = 1;
1530a: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c
1530e: f043 0301 orr.w r3, r3, #1
15312: f88d 305c strb.w r3, [sp, #92] ; 0x5c
a.start = a.end;
15316: e9dd 320e ldrd r3, r2, [sp, #56] ; 0x38
a.end = tmp;
1531a: e9cd 230e strd r2, r3, [sp, #56] ; 0x38
lv_anim_start(&a);
1531e: 4b31 ldr r3, [pc, #196] ; (153e4 <lv_label_refr_text+0x254>)
15320: a808 add r0, sp, #32
15322: 4798 blx r3
hor_anim = true;
15324: 2701 movs r7, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15326: f8bd 301e ldrh.w r3, [sp, #30]
1532a: f8bd 201a ldrh.w r2, [sp, #26]
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1532e: f9bd 1012 ldrsh.w r1, [sp, #18]
15332: 3301 adds r3, #1
15334: 1a9b subs r3, r3, r2
15336: b29a uxth r2, r3
15338: b21b sxth r3, r3
1533a: 4299 cmp r1, r3
1533c: f340 80cf ble.w 154de <lv_label_refr_text+0x34e>
15340: 2f00 cmp r7, #0
15342: f040 80cc bne.w 154de <lv_label_refr_text+0x34e>
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
15346: 8933 ldrh r3, [r6, #8]
a->exec_cb = exec_cb;
15348: 4e27 ldr r6, [pc, #156] ; (153e8 <lv_label_refr_text+0x258>)
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1534a: 8968 ldrh r0, [r5, #10]
1534c: 9609 str r6, [sp, #36] ; 0x24
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
1534e: 1a52 subs r2, r2, r1
15350: 1ad2 subs r2, r2, r3
15352: b212 sxth r2, r2
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15354: 4b21 ldr r3, [pc, #132] ; (153dc <lv_label_refr_text+0x24c>)
15356: 4639 mov r1, r7
a->end = end;
15358: e9cd 720e strd r7, r2, [sp, #56] ; 0x38
1535c: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1535e: 4b20 ldr r3, [pc, #128] ; (153e0 <lv_label_refr_text+0x250>)
a->time = duration;
15360: 9010 str r0, [sp, #64] ; 0x40
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15362: 9013 str r0, [sp, #76] ; 0x4c
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
15364: 4631 mov r1, r6
15366: 4620 mov r0, r4
15368: 4798 blx r3
if(anim_cur) {
1536a: b330 cbz r0, 153ba <lv_label_refr_text+0x22a>
playback_now = anim_cur->playback_now;
1536c: f890 703c ldrb.w r7, [r0, #60] ; 0x3c
act_time = anim_cur->act_time;
15370: 6a43 ldr r3, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
15372: f007 0701 and.w r7, r7, #1
if(act_time < a.time) {
15376: 9a10 ldr r2, [sp, #64] ; 0x40
15378: 429a cmp r2, r3
1537a: dd11 ble.n 153a0 <lv_label_refr_text+0x210>
a.act_time = act_time; /*To keep the old position*/
1537c: 9311 str r3, [sp, #68] ; 0x44
a.early_apply = 0;
1537e: f89d 3056 ldrb.w r3, [sp, #86] ; 0x56
15382: f36f 0300 bfc r3, #0, #1
15386: f88d 3056 strb.w r3, [sp, #86] ; 0x56
if(playback_now) {
1538a: b14f cbz r7, 153a0 <lv_label_refr_text+0x210>
a.playback_now = 1;
1538c: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c
15390: f043 0301 orr.w r3, r3, #1
15394: f88d 305c strb.w r3, [sp, #92] ; 0x5c
a.start = a.end;
15398: e9dd 320e ldrd r3, r2, [sp, #56] ; 0x38
a.end = tmp;
1539c: e9cd 230e strd r2, r3, [sp, #56] ; 0x38
lv_anim_start(&a);
153a0: 4b10 ldr r3, [pc, #64] ; (153e4 <lv_label_refr_text+0x254>)
153a2: a808 add r0, sp, #32
153a4: 4798 blx r3
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
153a6: e75c b.n 15262 <lv_label_refr_text+0xd2>
int32_t act_time = 0;
153a8: 4603 mov r3, r0
153aa: e7a3 b.n 152f4 <lv_label_refr_text+0x164>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
153ac: 490f ldr r1, [pc, #60] ; (153ec <lv_label_refr_text+0x25c>)
153ae: 4b10 ldr r3, [pc, #64] ; (153f0 <lv_label_refr_text+0x260>)
153b0: 4620 mov r0, r4
ext->offset.x = 0;
153b2: 2700 movs r7, #0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
153b4: 4798 blx r3
ext->offset.x = 0;
153b6: 81af strh r7, [r5, #12]
153b8: e7b5 b.n 15326 <lv_label_refr_text+0x196>
int32_t act_time = 0;
153ba: 463b mov r3, r7
153bc: e7db b.n 15376 <lv_label_refr_text+0x1e6>
153be: bf00 nop
153c0: 00003f89 .word 0x00003f89
153c4: 00014ccd .word 0x00014ccd
153c8: 000038a9 .word 0x000038a9
153cc: 000034c1 .word 0x000034c1
153d0: 00002739 .word 0x00002739
153d4: 0000dcbd .word 0x0000dcbd
153d8: 0000d1b9 .word 0x0000d1b9
153dc: 0000de51 .word 0x0000de51
153e0: 0000de1d .word 0x0000de1d
153e4: 0000dd65 .word 0x0000dd65
153e8: 00014c01 .word 0x00014c01
153ec: 00014c21 .word 0x00014c21
153f0: 0000dcf5 .word 0x0000dcf5
153f4: 000036f1 .word 0x000036f1
153f8: 000101fd .word 0x000101fd
else if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
153fc: f1b8 0f04 cmp.w r8, #4
15400: d174 bne.n 154ec <lv_label_refr_text+0x35c>
lv_anim_init(&a);
15402: 4b8f ldr r3, [pc, #572] ; (15640 <lv_label_refr_text+0x4b0>)
15404: a808 add r0, sp, #32
15406: 4798 blx r3
a->repeat_cnt = cnt;
15408: f64f 73ff movw r3, #65535 ; 0xffff
1540c: f8ad 3054 strh.w r3, [sp, #84] ; 0x54
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
15410: f8bd 301c ldrh.w r3, [sp, #28]
15414: f8bd 2018 ldrh.w r2, [sp, #24]
a->var = var;
15418: 9408 str r4, [sp, #32]
1541a: 3301 adds r3, #1
1541c: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
1541e: f9bd 2010 ldrsh.w r2, [sp, #16]
15422: b21b sxth r3, r3
15424: 429a cmp r2, r3
15426: dd53 ble.n 154d0 <lv_label_refr_text+0x340>
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
15428: 2220 movs r2, #32
1542a: 4611 mov r1, r2
1542c: 4b85 ldr r3, [pc, #532] ; (15644 <lv_label_refr_text+0x4b4>)
a->exec_cb = exec_cb;
1542e: 4f86 ldr r7, [pc, #536] ; (15648 <lv_label_refr_text+0x4b8>)
15430: 4630 mov r0, r6
15432: 4798 blx r3
15434: ebc0 3280 rsb r2, r0, r0, lsl #14
15438: eb00 0282 add.w r2, r0, r2, lsl #2
1543c: f8bd 0010 ldrh.w r0, [sp, #16]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15440: 4b82 ldr r3, [pc, #520] ; (1564c <lv_label_refr_text+0x4bc>)
15442: 9709 str r7, [sp, #36] ; 0x24
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
15444: 1a12 subs r2, r2, r0
a->start = start;
15446: 2100 movs r1, #0
15448: b212 sxth r2, r2
a->end = end;
1544a: e9cd 120e strd r1, r2, [sp, #56] ; 0x38
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1544e: 8968 ldrh r0, [r5, #10]
15450: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15452: 4b7f ldr r3, [pc, #508] ; (15650 <lv_label_refr_text+0x4c0>)
a->time = duration;
15454: 9010 str r0, [sp, #64] ; 0x40
15456: 4639 mov r1, r7
15458: 4620 mov r0, r4
1545a: 4798 blx r3
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
1545c: b100 cbz r0, 15460 <lv_label_refr_text+0x2d0>
1545e: 6a40 ldr r0, [r0, #36] ; 0x24
if(act_time < a.time) {
15460: 9b10 ldr r3, [sp, #64] ; 0x40
15462: 4283 cmp r3, r0
a.early_apply = 0;
15464: bfc1 itttt gt
15466: f89d 3056 ldrbgt.w r3, [sp, #86] ; 0x56
a.act_time = act_time; /*To keep the old position*/
1546a: 9011 strgt r0, [sp, #68] ; 0x44
a.early_apply = 0;
1546c: f36f 0300 bfcgt r3, #0, #1
15470: f88d 3056 strbgt.w r3, [sp, #86] ; 0x56
lv_anim_start(&a);
15474: a808 add r0, sp, #32
15476: 4b77 ldr r3, [pc, #476] ; (15654 <lv_label_refr_text+0x4c4>)
15478: 4798 blx r3
hor_anim = true;
1547a: 2701 movs r7, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1547c: f8bd 301e ldrh.w r3, [sp, #30]
15480: f8bd 101a ldrh.w r1, [sp, #26]
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
15484: f9bd 2012 ldrsh.w r2, [sp, #18]
15488: 3301 adds r3, #1
1548a: 1a5b subs r3, r3, r1
1548c: b21b sxth r3, r3
1548e: 429a cmp r2, r3
15490: dd25 ble.n 154de <lv_label_refr_text+0x34e>
15492: bb27 cbnz r7, 154de <lv_label_refr_text+0x34e>
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
15494: 8933 ldrh r3, [r6, #8]
a->exec_cb = exec_cb;
15496: 4e70 ldr r6, [pc, #448] ; (15658 <lv_label_refr_text+0x4c8>)
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15498: 8968 ldrh r0, [r5, #10]
1549a: 9609 str r6, [sp, #36] ; 0x24
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
1549c: 441a add r2, r3
1549e: 4252 negs r2, r2
154a0: b212 sxth r2, r2
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
154a2: 4b6a ldr r3, [pc, #424] ; (1564c <lv_label_refr_text+0x4bc>)
154a4: 4639 mov r1, r7
a->end = end;
154a6: e9cd 720e strd r7, r2, [sp, #56] ; 0x38
154aa: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
154ac: 4b68 ldr r3, [pc, #416] ; (15650 <lv_label_refr_text+0x4c0>)
a->time = duration;
154ae: 9010 str r0, [sp, #64] ; 0x40
154b0: 4631 mov r1, r6
154b2: 4620 mov r0, r4
154b4: 4798 blx r3
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
154b6: b100 cbz r0, 154ba <lv_label_refr_text+0x32a>
154b8: 6a47 ldr r7, [r0, #36] ; 0x24
if(act_time < a.time) {
154ba: 9b10 ldr r3, [sp, #64] ; 0x40
154bc: 42bb cmp r3, r7
a.early_apply = 0;
154be: bfc1 itttt gt
154c0: f89d 3056 ldrbgt.w r3, [sp, #86] ; 0x56
a.act_time = act_time; /*To keep the old position*/
154c4: 9711 strgt r7, [sp, #68] ; 0x44
a.early_apply = 0;
154c6: f36f 0300 bfcgt r3, #0, #1
154ca: f88d 3056 strbgt.w r3, [sp, #86] ; 0x56
154ce: e767 b.n 153a0 <lv_label_refr_text+0x210>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
154d0: 495d ldr r1, [pc, #372] ; (15648 <lv_label_refr_text+0x4b8>)
154d2: 4b62 ldr r3, [pc, #392] ; (1565c <lv_label_refr_text+0x4cc>)
154d4: 4620 mov r0, r4
ext->offset.x = 0;
154d6: 2700 movs r7, #0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
154d8: 4798 blx r3
ext->offset.x = 0;
154da: 81af strh r7, [r5, #12]
154dc: e7ce b.n 1547c <lv_label_refr_text+0x2ec>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
154de: 4b5f ldr r3, [pc, #380] ; (1565c <lv_label_refr_text+0x4cc>)
154e0: 495d ldr r1, [pc, #372] ; (15658 <lv_label_refr_text+0x4c8>)
154e2: 4620 mov r0, r4
154e4: 4798 blx r3
ext->offset.y = 0;
154e6: 2300 movs r3, #0
154e8: 81eb strh r3, [r5, #14]
154ea: e6ba b.n 15262 <lv_label_refr_text+0xd2>
else if(ext->long_mode == LV_LABEL_LONG_DOT) {
154ec: f1b8 0f02 cmp.w r8, #2
154f0: f040 808d bne.w 1560e <lv_label_refr_text+0x47e>
154f4: f8bd 301e ldrh.w r3, [sp, #30]
154f8: f8bd 201a ldrh.w r2, [sp, #26]
154fc: 3301 adds r3, #1
154fe: 1a9b subs r3, r3, r2
if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/
15500: f9bd 2012 ldrsh.w r2, [sp, #18]
15504: b21b sxth r3, r3
15506: 429a cmp r2, r3
15508: dc03 bgt.n 15512 <lv_label_refr_text+0x382>
ext->dot_end = LV_LABEL_DOT_END_INV;
1550a: f64f 73ff movw r3, #65535 ; 0xffff
1550e: 812b strh r3, [r5, #8]
15510: e6a7 b.n 15262 <lv_label_refr_text+0xd2>
else if(_lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/
15512: 4b53 ldr r3, [pc, #332] ; (15660 <lv_label_refr_text+0x4d0>)
15514: 6828 ldr r0, [r5, #0]
15516: 681b ldr r3, [r3, #0]
15518: 4798 blx r3
1551a: 2803 cmp r0, #3
1551c: d9f5 bls.n 1550a <lv_label_refr_text+0x37a>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1551e: f8bd 801c ldrh.w r8, [sp, #28]
15522: f8bd 3018 ldrh.w r3, [sp, #24]
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15526: f8df 9154 ldr.w r9, [pc, #340] ; 1567c <lv_label_refr_text+0x4ec>
(lv_font_get_glyph_width(font, '.', '.') + letter_space) *
1552a: 222e movs r2, #46 ; 0x2e
1552c: f108 0801 add.w r8, r8, #1
15530: 4611 mov r1, r2
15532: eba8 0803 sub.w r8, r8, r3
15536: 4630 mov r0, r6
15538: 4b42 ldr r3, [pc, #264] ; (15644 <lv_label_refr_text+0x4b4>)
1553a: 4798 blx r3
1553c: 4450 add r0, sl
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
1553e: f8bd 301e ldrh.w r3, [sp, #30]
15542: f8bd 201a ldrh.w r2, [sp, #26]
p.x = lv_area_get_width(&txt_coords) -
15546: ebc0 3a80 rsb sl, r0, r0, lsl #14
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1554a: fa1f f888 uxth.w r8, r8
1554e: eb00 008a add.w r0, r0, sl, lsl #2
15552: 4440 add r0, r8
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15554: 3301 adds r3, #1
15556: f8ad 0014 strh.w r0, [sp, #20]
1555a: 1a9b subs r3, r3, r2
(lv_font_get_line_height(font) + line_space); /*Round down to the last line*/
1555c: f9b6 0008 ldrsh.w r0, [r6, #8]
15560: b29b uxth r3, r3
p.y -= line_space; /*Trim the last line space*/
15562: 1bda subs r2, r3, r7
(lv_font_get_line_height(font) + line_space); /*Round down to the last line*/
15564: 4407 add r7, r0
p.y -= p.y %
15566: b21b sxth r3, r3
15568: fb93 f0f7 sdiv r0, r3, r7
1556c: fb07 3310 mls r3, r7, r0, r3
p.y -= line_space; /*Trim the last line space*/
15570: 1ad3 subs r3, r2, r3
uint32_t letter_id = lv_label_get_letter_on(label, &p);
15572: a905 add r1, sp, #20
p.y -= line_space; /*Trim the last line space*/
15574: f8ad 3016 strh.w r3, [sp, #22]
uint32_t letter_id = lv_label_get_letter_on(label, &p);
15578: 4620 mov r0, r4
1557a: 4b3a ldr r3, [pc, #232] ; (15664 <lv_label_refr_text+0x4d4>)
1557c: 4798 blx r3
size_t txt_len = strlen(ext->text);
1557e: 682f ldr r7, [r5, #0]
15580: 4b39 ldr r3, [pc, #228] ; (15668 <lv_label_refr_text+0x4d8>)
uint32_t letter_id = lv_label_get_letter_on(label, &p);
15582: 4606 mov r6, r0
size_t txt_len = strlen(ext->text);
15584: 4638 mov r0, r7
15586: 4798 blx r3
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
15588: 4b38 ldr r3, [pc, #224] ; (1566c <lv_label_refr_text+0x4dc>)
size_t txt_len = strlen(ext->text);
1558a: 4680 mov r8, r0
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
1558c: 681b ldr r3, [r3, #0]
1558e: 4631 mov r1, r6
15590: 4638 mov r0, r7
15592: 4798 blx r3
15594: 9008 str r0, [sp, #32]
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
15596: 9f08 ldr r7, [sp, #32]
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15598: 6828 ldr r0, [r5, #0]
1559a: f8d9 3000 ldr.w r3, [r9]
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
1559e: f107 0b03 add.w fp, r7, #3
155a2: 45c3 cmp fp, r8
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
155a4: 4438 add r0, r7
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
155a6: d82c bhi.n 15602 <lv_label_refr_text+0x472>
155a8: f04f 0a04 mov.w sl, #4
uint8_t len = 0;
155ac: f04f 0800 mov.w r8, #0
len += _lv_txt_encoded_size(&ext->text[byte_id]);
155b0: 9a08 ldr r2, [sp, #32]
155b2: 6828 ldr r0, [r5, #0]
155b4: f8d9 3000 ldr.w r3, [r9]
155b8: 4410 add r0, r2
155ba: 4798 blx r3
_lv_txt_encoded_next(ext->text, &byte_id);
155bc: 4b2c ldr r3, [pc, #176] ; (15670 <lv_label_refr_text+0x4e0>)
len += _lv_txt_encoded_size(&ext->text[byte_id]);
155be: 4480 add r8, r0
_lv_txt_encoded_next(ext->text, &byte_id);
155c0: 681b ldr r3, [r3, #0]
155c2: 6828 ldr r0, [r5, #0]
155c4: a908 add r1, sp, #32
155c6: 4798 blx r3
for(i = 0; i <= LV_LABEL_DOT_NUM; i++) {
155c8: f1ba 0a01 subs.w sl, sl, #1
len += _lv_txt_encoded_size(&ext->text[byte_id]);
155cc: fa5f f888 uxtb.w r8, r8
for(i = 0; i <= LV_LABEL_DOT_NUM; i++) {
155d0: d1ee bne.n 155b0 <lv_label_refr_text+0x420>
if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) {
155d2: 6829 ldr r1, [r5, #0]
155d4: 4b27 ldr r3, [pc, #156] ; (15674 <lv_label_refr_text+0x4e4>)
155d6: 4642 mov r2, r8
155d8: 4439 add r1, r7
155da: 4620 mov r0, r4
155dc: 4798 blx r3
155de: 2800 cmp r0, #0
155e0: f43f ae3f beq.w 15262 <lv_label_refr_text+0xd2>
ext->text[byte_id_ori + i] = '.';
155e4: 682b ldr r3, [r5, #0]
155e6: 222e movs r2, #46 ; 0x2e
155e8: 55da strb r2, [r3, r7]
155ea: 682b ldr r3, [r5, #0]
155ec: 443b add r3, r7
ext->dot_end = letter_id + LV_LABEL_DOT_NUM;
155ee: 3603 adds r6, #3
ext->text[byte_id_ori + i] = '.';
155f0: 705a strb r2, [r3, #1]
155f2: 682b ldr r3, [r5, #0]
155f4: 443b add r3, r7
155f6: 709a strb r2, [r3, #2]
ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0';
155f8: 682b ldr r3, [r5, #0]
155fa: f803 a00b strb.w sl, [r3, fp]
ext->dot_end = letter_id + LV_LABEL_DOT_NUM;
155fe: 812e strh r6, [r5, #8]
15600: e62f b.n 15262 <lv_label_refr_text+0xd2>
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15602: 4798 blx r3
15604: 9b08 ldr r3, [sp, #32]
15606: 1a18 subs r0, r3, r0
15608: 9008 str r0, [sp, #32]
letter_id--;
1560a: 3e01 subs r6, #1
1560c: e7c3 b.n 15596 <lv_label_refr_text+0x406>
else if(ext->long_mode == LV_LABEL_LONG_BREAK) {
1560e: f1b8 0f01 cmp.w r8, #1
15612: f47f ae26 bne.w 15262 <lv_label_refr_text+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15616: 2210 movs r2, #16
15618: 2100 movs r1, #0
1561a: 4620 mov r0, r4
1561c: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1561e: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15620: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15622: 2100 movs r1, #0
15624: 4620 mov r0, r4
15626: 47c8 blx r9
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
15628: f8bd 1012 ldrh.w r1, [sp, #18]
lv_obj_set_height(label, size.y);
1562c: 4b12 ldr r3, [pc, #72] ; (15678 <lv_label_refr_text+0x4e8>)
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1562e: 4428 add r0, r5
15630: 4401 add r1, r0
15632: b209 sxth r1, r1
lv_obj_set_height(label, size.y);
15634: 4620 mov r0, r4
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
15636: f8ad 1012 strh.w r1, [sp, #18]
lv_obj_set_height(label, size.y);
1563a: 4798 blx r3
1563c: e611 b.n 15262 <lv_label_refr_text+0xd2>
1563e: bf00 nop
15640: 0000dcbd .word 0x0000dcbd
15644: 0000d1b9 .word 0x0000d1b9
15648: 00014c21 .word 0x00014c21
1564c: 0000de51 .word 0x0000de51
15650: 0000de1d .word 0x0000de1d
15654: 0000dd65 .word 0x0000dd65
15658: 00014c01 .word 0x00014c01
1565c: 0000dcf5 .word 0x0000dcf5
15660: 20000060 .word 0x20000060
15664: 00014eed .word 0x00014eed
15668: 0001637d .word 0x0001637d
1566c: 2000005c .word 0x2000005c
15670: 20000058 .word 0x20000058
15674: 00014c41 .word 0x00014c41
15678: 000035d1 .word 0x000035d1
1567c: 20000054 .word 0x20000054
00015680 <lv_label_set_text>:
{
15680: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15684: 4f40 ldr r7, [pc, #256] ; (15788 <lv_label_set_text+0x108>)
{
15686: 4606 mov r6, r0
15688: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1568a: 47b8 blx r7
1568c: 46b9 mov r9, r7
1568e: 4604 mov r4, r0
15690: b960 cbnz r0, 156ac <lv_label_set_text+0x2c>
15692: 4b3e ldr r3, [pc, #248] ; (1578c <lv_label_set_text+0x10c>)
15694: 493e ldr r1, [pc, #248] ; (15790 <lv_label_set_text+0x110>)
15696: 9300 str r3, [sp, #0]
15698: 22b8 movs r2, #184 ; 0xb8
1569a: 2003 movs r0, #3
1569c: 4d3d ldr r5, [pc, #244] ; (15794 <lv_label_set_text+0x114>)
1569e: 47a8 blx r5
156a0: 483d ldr r0, [pc, #244] ; (15798 <lv_label_set_text+0x118>)
156a2: 493e ldr r1, [pc, #248] ; (1579c <lv_label_set_text+0x11c>)
156a4: 4632 mov r2, r6
156a6: 4623 mov r3, r4
156a8: 4788 blx r1
156aa: e7fe b.n 156aa <lv_label_set_text+0x2a>
lv_obj_invalidate(label);
156ac: 4b3c ldr r3, [pc, #240] ; (157a0 <lv_label_set_text+0x120>)
156ae: 4630 mov r0, r6
156b0: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
156b2: 4b3c ldr r3, [pc, #240] ; (157a4 <lv_label_set_text+0x124>)
156b4: 4630 mov r0, r6
156b6: 4798 blx r3
156b8: 4604 mov r4, r0
if(text == NULL) {
156ba: b92d cbnz r5, 156c8 <lv_label_set_text+0x48>
lv_label_refr_text(label);
156bc: 4b3a ldr r3, [pc, #232] ; (157a8 <lv_label_set_text+0x128>)
156be: 4630 mov r0, r6
}
156c0: b003 add sp, #12
156c2: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_label_refr_text(label);
156c6: 4718 bx r3
LV_ASSERT_STR(text);
156c8: 4628 mov r0, r5
156ca: 47b8 blx r7
156cc: 4680 mov r8, r0
156ce: b960 cbnz r0, 156ea <lv_label_set_text+0x6a>
156d0: 4b2e ldr r3, [pc, #184] ; (1578c <lv_label_set_text+0x10c>)
156d2: 492f ldr r1, [pc, #188] ; (15790 <lv_label_set_text+0x110>)
156d4: 9300 str r3, [sp, #0]
156d6: 22c4 movs r2, #196 ; 0xc4
156d8: 2003 movs r0, #3
156da: 4c2e ldr r4, [pc, #184] ; (15794 <lv_label_set_text+0x114>)
156dc: 47a0 blx r4
156de: 482e ldr r0, [pc, #184] ; (15798 <lv_label_set_text+0x118>)
156e0: 492e ldr r1, [pc, #184] ; (1579c <lv_label_set_text+0x11c>)
156e2: 462a mov r2, r5
156e4: 4643 mov r3, r8
156e6: 4788 blx r1
156e8: e7fe b.n 156e8 <lv_label_set_text+0x68>
if(ext->text == text && ext->static_txt == 0) {
156ea: 6820 ldr r0, [r4, #0]
156ec: f8df 80d0 ldr.w r8, [pc, #208] ; 157c0 <lv_label_set_text+0x140>
156f0: 4285 cmp r5, r0
156f2: d11f bne.n 15734 <lv_label_set_text+0xb4>
156f4: 7c23 ldrb r3, [r4, #16]
156f6: 071b lsls r3, r3, #28
156f8: d424 bmi.n 15744 <lv_label_set_text+0xc4>
ext->text = lv_mem_realloc(ext->text, strlen(ext->text) + 1);
156fa: 4628 mov r0, r5
156fc: 47c0 blx r8
156fe: 4b2b ldr r3, [pc, #172] ; (157ac <lv_label_set_text+0x12c>)
15700: 1c41 adds r1, r0, #1
15702: 4628 mov r0, r5
15704: 4798 blx r3
15706: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
15708: 47b8 blx r7
1570a: 4605 mov r5, r0
1570c: b960 cbnz r0, 15728 <lv_label_set_text+0xa8>
1570e: 4b1f ldr r3, [pc, #124] ; (1578c <lv_label_set_text+0x10c>)
15710: 491f ldr r1, [pc, #124] ; (15790 <lv_label_set_text+0x110>)
15712: 9300 str r3, [sp, #0]
15714: 22d5 movs r2, #213 ; 0xd5
15716: 2003 movs r0, #3
15718: 4e1e ldr r6, [pc, #120] ; (15794 <lv_label_set_text+0x114>)
1571a: 47b0 blx r6
1571c: 6822 ldr r2, [r4, #0]
1571e: 4824 ldr r0, [pc, #144] ; (157b0 <lv_label_set_text+0x130>)
15720: 491e ldr r1, [pc, #120] ; (1579c <lv_label_set_text+0x11c>)
15722: 462b mov r3, r5
15724: 4788 blx r1
15726: e7fe b.n 15726 <lv_label_set_text+0xa6>
if(ext->text == NULL) return;
15728: 6823 ldr r3, [r4, #0]
1572a: 2b00 cmp r3, #0
1572c: d1c6 bne.n 156bc <lv_label_set_text+0x3c>
}
1572e: b003 add sp, #12
15730: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(ext->text != NULL && ext->static_txt == 0) {
15734: b130 cbz r0, 15744 <lv_label_set_text+0xc4>
15736: 7c23 ldrb r3, [r4, #16]
15738: f013 0708 ands.w r7, r3, #8
1573c: d102 bne.n 15744 <lv_label_set_text+0xc4>
lv_mem_free(ext->text);
1573e: 4b1d ldr r3, [pc, #116] ; (157b4 <lv_label_set_text+0x134>)
15740: 4798 blx r3
ext->text = NULL;
15742: 6027 str r7, [r4, #0]
size_t len = strlen(text) + 1;
15744: 4628 mov r0, r5
15746: 47c0 blx r8
ext->text = lv_mem_alloc(len);
15748: 4b1b ldr r3, [pc, #108] ; (157b8 <lv_label_set_text+0x138>)
1574a: 3001 adds r0, #1
1574c: 4798 blx r3
1574e: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
15750: 47c8 blx r9
15752: 4607 mov r7, r0
15754: b960 cbnz r0, 15770 <lv_label_set_text+0xf0>
15756: 4b0d ldr r3, [pc, #52] ; (1578c <lv_label_set_text+0x10c>)
15758: 490d ldr r1, [pc, #52] ; (15790 <lv_label_set_text+0x110>)
1575a: 9300 str r3, [sp, #0]
1575c: 22ee movs r2, #238 ; 0xee
1575e: 2003 movs r0, #3
15760: 4d0c ldr r5, [pc, #48] ; (15794 <lv_label_set_text+0x114>)
15762: 47a8 blx r5
15764: 6822 ldr r2, [r4, #0]
15766: 4812 ldr r0, [pc, #72] ; (157b0 <lv_label_set_text+0x130>)
15768: 490c ldr r1, [pc, #48] ; (1579c <lv_label_set_text+0x11c>)
1576a: 463b mov r3, r7
1576c: 4788 blx r1
1576e: e7fe b.n 1576e <lv_label_set_text+0xee>
if(ext->text == NULL) return;
15770: 6820 ldr r0, [r4, #0]
15772: 2800 cmp r0, #0
15774: d0db beq.n 1572e <lv_label_set_text+0xae>
strcpy(ext->text, text);
15776: 4b11 ldr r3, [pc, #68] ; (157bc <lv_label_set_text+0x13c>)
15778: 4629 mov r1, r5
1577a: 4798 blx r3
ext->static_txt = 0;
1577c: 7c23 ldrb r3, [r4, #16]
1577e: f36f 03c3 bfc r3, #3, #1
15782: 7423 strb r3, [r4, #16]
15784: e79a b.n 156bc <lv_label_set_text+0x3c>
15786: bf00 nop
15788: 00001795 .word 0x00001795
1578c: 000245f5 .word 0x000245f5
15790: 00024485 .word 0x00024485
15794: 0000e931 .word 0x0000e931
15798: 0001ef03 .word 0x0001ef03
1579c: 0000179d .word 0x0000179d
157a0: 00002739 .word 0x00002739
157a4: 00003f89 .word 0x00003f89
157a8: 00015191 .word 0x00015191
157ac: 0000ee5d .word 0x0000ee5d
157b0: 0001ee02 .word 0x0001ee02
157b4: 0000eb2d .word 0x0000eb2d
157b8: 0000ea75 .word 0x0000ea75
157bc: 0001636d .word 0x0001636d
157c0: 0001637d .word 0x0001637d
000157c4 <lv_label_set_text_static>:
{
157c4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
157c6: 4b16 ldr r3, [pc, #88] ; (15820 <lv_label_set_text_static+0x5c>)
{
157c8: 4605 mov r5, r0
157ca: 460e mov r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
157cc: 4798 blx r3
157ce: 4604 mov r4, r0
157d0: b968 cbnz r0, 157ee <lv_label_set_text_static+0x2a>
157d2: 4b14 ldr r3, [pc, #80] ; (15824 <lv_label_set_text_static+0x60>)
157d4: 4914 ldr r1, [pc, #80] ; (15828 <lv_label_set_text_static+0x64>)
157d6: 9300 str r3, [sp, #0]
157d8: f44f 72a6 mov.w r2, #332 ; 0x14c
157dc: 2003 movs r0, #3
157de: 4e13 ldr r6, [pc, #76] ; (1582c <lv_label_set_text_static+0x68>)
157e0: 47b0 blx r6
157e2: 4813 ldr r0, [pc, #76] ; (15830 <lv_label_set_text_static+0x6c>)
157e4: 4913 ldr r1, [pc, #76] ; (15834 <lv_label_set_text_static+0x70>)
157e6: 462a mov r2, r5
157e8: 4623 mov r3, r4
157ea: 4788 blx r1
157ec: e7fe b.n 157ec <lv_label_set_text_static+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
157ee: 4b12 ldr r3, [pc, #72] ; (15838 <lv_label_set_text_static+0x74>)
157f0: 4628 mov r0, r5
157f2: 4798 blx r3
if(ext->static_txt == 0 && ext->text != NULL) {
157f4: 7c03 ldrb r3, [r0, #16]
157f6: f013 0708 ands.w r7, r3, #8
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
157fa: 4604 mov r4, r0
if(ext->static_txt == 0 && ext->text != NULL) {
157fc: d104 bne.n 15808 <lv_label_set_text_static+0x44>
157fe: 6800 ldr r0, [r0, #0]
15800: b110 cbz r0, 15808 <lv_label_set_text_static+0x44>
lv_mem_free(ext->text);
15802: 4b0e ldr r3, [pc, #56] ; (1583c <lv_label_set_text_static+0x78>)
15804: 4798 blx r3
ext->text = NULL;
15806: 6027 str r7, [r4, #0]
if(text != NULL) {
15808: b126 cbz r6, 15814 <lv_label_set_text_static+0x50>
ext->static_txt = 1;
1580a: 7c23 ldrb r3, [r4, #16]
ext->text = (char *)text;
1580c: 6026 str r6, [r4, #0]
ext->static_txt = 1;
1580e: f043 0308 orr.w r3, r3, #8
15812: 7423 strb r3, [r4, #16]
lv_label_refr_text(label);
15814: 4b0a ldr r3, [pc, #40] ; (15840 <lv_label_set_text_static+0x7c>)
15816: 4628 mov r0, r5
}
15818: b003 add sp, #12
1581a: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_label_refr_text(label);
1581e: 4718 bx r3
15820: 00001795 .word 0x00001795
15824: 0002461d .word 0x0002461d
15828: 00024485 .word 0x00024485
1582c: 0000e931 .word 0x0000e931
15830: 0001ef03 .word 0x0001ef03
15834: 0000179d .word 0x0000179d
15838: 00003f89 .word 0x00003f89
1583c: 0000eb2d .word 0x0000eb2d
15840: 00015191 .word 0x00015191
00015844 <lv_label_set_long_mode>:
{
15844: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15846: 4b23 ldr r3, [pc, #140] ; (158d4 <lv_label_set_long_mode+0x90>)
{
15848: 4604 mov r4, r0
1584a: 460e mov r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1584c: 4798 blx r3
1584e: 4605 mov r5, r0
15850: b968 cbnz r0, 1586e <lv_label_set_long_mode+0x2a>
15852: 4b21 ldr r3, [pc, #132] ; (158d8 <lv_label_set_long_mode+0x94>)
15854: 4921 ldr r1, [pc, #132] ; (158dc <lv_label_set_long_mode+0x98>)
15856: 9300 str r3, [sp, #0]
15858: f240 1265 movw r2, #357 ; 0x165
1585c: 2003 movs r0, #3
1585e: 4e20 ldr r6, [pc, #128] ; (158e0 <lv_label_set_long_mode+0x9c>)
15860: 47b0 blx r6
15862: 4820 ldr r0, [pc, #128] ; (158e4 <lv_label_set_long_mode+0xa0>)
15864: 4920 ldr r1, [pc, #128] ; (158e8 <lv_label_set_long_mode+0xa4>)
15866: 4622 mov r2, r4
15868: 462b mov r3, r5
1586a: 4788 blx r1
1586c: e7fe b.n 1586c <lv_label_set_long_mode+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
1586e: 4b1f ldr r3, [pc, #124] ; (158ec <lv_label_set_long_mode+0xa8>)
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
15870: 4f1f ldr r7, [pc, #124] ; (158f0 <lv_label_set_long_mode+0xac>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15872: 4620 mov r0, r4
15874: 4798 blx r3
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
15876: 491f ldr r1, [pc, #124] ; (158f4 <lv_label_set_long_mode+0xb0>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15878: 4605 mov r5, r0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
1587a: 4620 mov r0, r4
1587c: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y);
1587e: 491e ldr r1, [pc, #120] ; (158f8 <lv_label_set_long_mode+0xb4>)
15880: 4620 mov r0, r4
15882: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15884: 491d ldr r1, [pc, #116] ; (158fc <lv_label_set_long_mode+0xb8>)
15886: 4620 mov r0, r4
15888: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
1588a: 491d ldr r1, [pc, #116] ; (15900 <lv_label_set_long_mode+0xbc>)
1588c: 4620 mov r0, r4
1588e: 47b8 blx r7
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
15890: 1ef2 subs r2, r6, #3
ext->offset.x = 0;
15892: 2300 movs r3, #0
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
15894: 2a02 cmp r2, #2
ext->offset.x = 0;
15896: 60eb str r3, [r5, #12]
15898: 7c2b ldrb r3, [r5, #16]
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
1589a: bf8c ite hi
1589c: 2200 movhi r2, #0
1589e: 2201 movls r2, #1
158a0: f362 13c7 bfi r3, r2, #7, #1
158a4: 742b strb r3, [r5, #16]
if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) {
158a6: f003 0307 and.w r3, r3, #7
158aa: 2b02 cmp r3, #2
158ac: d107 bne.n 158be <lv_label_set_long_mode+0x7a>
158ae: 892a ldrh r2, [r5, #8]
158b0: f64f 73ff movw r3, #65535 ; 0xffff
158b4: 429a cmp r2, r3
158b6: d002 beq.n 158be <lv_label_set_long_mode+0x7a>
lv_label_revert_dots(label);
158b8: 4b12 ldr r3, [pc, #72] ; (15904 <lv_label_set_long_mode+0xc0>)
158ba: 4620 mov r0, r4
158bc: 4798 blx r3
ext->long_mode = long_mode;
158be: 7c2b ldrb r3, [r5, #16]
158c0: f366 0302 bfi r3, r6, #0, #3
158c4: 742b strb r3, [r5, #16]
lv_label_refr_text(label);
158c6: 4b10 ldr r3, [pc, #64] ; (15908 <lv_label_set_long_mode+0xc4>)
158c8: 4620 mov r0, r4
}
158ca: b003 add sp, #12
158cc: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_label_refr_text(label);
158d0: 4718 bx r3
158d2: bf00 nop
158d4: 00001795 .word 0x00001795
158d8: 00024636 .word 0x00024636
158dc: 00024485 .word 0x00024485
158e0: 0000e931 .word 0x0000e931
158e4: 0001ef03 .word 0x0001ef03
158e8: 0000179d .word 0x0000179d
158ec: 00003f89 .word 0x00003f89
158f0: 0000dcf5 .word 0x0000dcf5
158f4: 0000293d .word 0x0000293d
158f8: 0000299d .word 0x0000299d
158fc: 00014c21 .word 0x00014c21
15900: 00014c01 .word 0x00014c01
15904: 00014b89 .word 0x00014b89
15908: 00015191 .word 0x00015191
0001590c <lv_label_set_recolor>:
{
1590c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1590e: 4b13 ldr r3, [pc, #76] ; (1595c <lv_label_set_recolor+0x50>)
{
15910: 4604 mov r4, r0
15912: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15914: 4798 blx r3
15916: 4606 mov r6, r0
15918: b968 cbnz r0, 15936 <lv_label_set_recolor+0x2a>
1591a: 4b11 ldr r3, [pc, #68] ; (15960 <lv_label_set_recolor+0x54>)
1591c: 4911 ldr r1, [pc, #68] ; (15964 <lv_label_set_recolor+0x58>)
1591e: 9300 str r3, [sp, #0]
15920: f44f 72cd mov.w r2, #410 ; 0x19a
15924: 2003 movs r0, #3
15926: 4d10 ldr r5, [pc, #64] ; (15968 <lv_label_set_recolor+0x5c>)
15928: 47a8 blx r5
1592a: 4810 ldr r0, [pc, #64] ; (1596c <lv_label_set_recolor+0x60>)
1592c: 4910 ldr r1, [pc, #64] ; (15970 <lv_label_set_recolor+0x64>)
1592e: 4622 mov r2, r4
15930: 4633 mov r3, r6
15932: 4788 blx r1
15934: e7fe b.n 15934 <lv_label_set_recolor+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15936: 4b0f ldr r3, [pc, #60] ; (15974 <lv_label_set_recolor+0x68>)
15938: 4620 mov r0, r4
1593a: 4798 blx r3
if(ext->recolor == en) return;
1593c: 7c03 ldrb r3, [r0, #16]
1593e: f3c3 1280 ubfx r2, r3, #6, #1
15942: 42aa cmp r2, r5
15944: d008 beq.n 15958 <lv_label_set_recolor+0x4c>
ext->recolor = en == false ? 0 : 1;
15946: f365 1386 bfi r3, r5, #6, #1
1594a: 7403 strb r3, [r0, #16]
lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to
1594c: 4b0a ldr r3, [pc, #40] ; (15978 <lv_label_set_recolor+0x6c>)
1594e: 4620 mov r0, r4
}
15950: b002 add sp, #8
15952: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to
15956: 4718 bx r3
}
15958: b002 add sp, #8
1595a: bd70 pop {r4, r5, r6, pc}
1595c: 00001795 .word 0x00001795
15960: 0002464d .word 0x0002464d
15964: 00024485 .word 0x00024485
15968: 0000e931 .word 0x0000e931
1596c: 0001ef03 .word 0x0001ef03
15970: 0000179d .word 0x0000179d
15974: 00003f89 .word 0x00003f89
15978: 00015191 .word 0x00015191
0001597c <lv_label_create>:
{
1597c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_obj_t * new_label = lv_obj_create(par, copy);
15980: 4b71 ldr r3, [pc, #452] ; (15b48 <lv_label_create+0x1cc>)
LV_ASSERT_MEM(new_label);
15982: 4e72 ldr r6, [pc, #456] ; (15b4c <lv_label_create+0x1d0>)
{
15984: b085 sub sp, #20
15986: 460f mov r7, r1
lv_obj_t * new_label = lv_obj_create(par, copy);
15988: 4798 blx r3
1598a: 4604 mov r4, r0
LV_ASSERT_MEM(new_label);
1598c: 47b0 blx r6
1598e: 46b0 mov r8, r6
15990: 4605 mov r5, r0
15992: b960 cbnz r0, 159ae <lv_label_create+0x32>
15994: 4b6e ldr r3, [pc, #440] ; (15b50 <lv_label_create+0x1d4>)
15996: 496f ldr r1, [pc, #444] ; (15b54 <lv_label_create+0x1d8>)
15998: 9300 str r3, [sp, #0]
1599a: 2254 movs r2, #84 ; 0x54
1599c: 2003 movs r0, #3
1599e: 4e6e ldr r6, [pc, #440] ; (15b58 <lv_label_create+0x1dc>)
159a0: 47b0 blx r6
159a2: 486e ldr r0, [pc, #440] ; (15b5c <lv_label_create+0x1e0>)
159a4: 496e ldr r1, [pc, #440] ; (15b60 <lv_label_create+0x1e4>)
159a6: 4622 mov r2, r4
159a8: 462b mov r3, r5
159aa: 4788 blx r1
159ac: e7fe b.n 159ac <lv_label_create+0x30>
if(new_label == NULL) return NULL;
159ae: b924 cbnz r4, 159ba <lv_label_create+0x3e>
159b0: 2400 movs r4, #0
}
159b2: 4620 mov r0, r4
159b4: b005 add sp, #20
159b6: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_label);
159ba: 4d6a ldr r5, [pc, #424] ; (15b64 <lv_label_create+0x1e8>)
159bc: 682b ldr r3, [r5, #0]
159be: b91b cbnz r3, 159c8 <lv_label_create+0x4c>
159c0: 4b69 ldr r3, [pc, #420] ; (15b68 <lv_label_create+0x1ec>)
159c2: 4620 mov r0, r4
159c4: 4798 blx r3
159c6: 6028 str r0, [r5, #0]
lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t));
159c8: 4b68 ldr r3, [pc, #416] ; (15b6c <lv_label_create+0x1f0>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label);
159ca: 4e69 ldr r6, [pc, #420] ; (15b70 <lv_label_create+0x1f4>)
lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t));
159cc: 2114 movs r1, #20
159ce: 4620 mov r0, r4
159d0: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label);
159d2: 4620 mov r0, r4
159d4: 47b0 blx r6
159d6: 4605 mov r5, r0
LV_ASSERT_MEM(ext);
159d8: 47c0 blx r8
159da: 4681 mov r9, r0
159dc: b960 cbnz r0, 159f8 <lv_label_create+0x7c>
159de: 4b5c ldr r3, [pc, #368] ; (15b50 <lv_label_create+0x1d4>)
159e0: 495c ldr r1, [pc, #368] ; (15b54 <lv_label_create+0x1d8>)
159e2: 9300 str r3, [sp, #0]
159e4: 225d movs r2, #93 ; 0x5d
159e6: 2003 movs r0, #3
159e8: 4c5b ldr r4, [pc, #364] ; (15b58 <lv_label_create+0x1dc>)
159ea: 47a0 blx r4
159ec: 485b ldr r0, [pc, #364] ; (15b5c <lv_label_create+0x1e0>)
159ee: 495c ldr r1, [pc, #368] ; (15b60 <lv_label_create+0x1e4>)
159f0: 462a mov r2, r5
159f2: 464b mov r3, r9
159f4: 4788 blx r1
159f6: e7fe b.n 159f6 <lv_label_create+0x7a>
if(ext == NULL) {
159f8: 2300 movs r3, #0
159fa: b91d cbnz r5, 15a04 <lv_label_create+0x88>
lv_obj_del(new_label);
159fc: 4b5d ldr r3, [pc, #372] ; (15b74 <lv_label_create+0x1f8>)
159fe: 4620 mov r0, r4
15a00: 4798 blx r3
return NULL;
15a02: e7d5 b.n 159b0 <lv_label_create+0x34>
ext->dot_end = LV_LABEL_DOT_END_INV;
15a04: 4a5c ldr r2, [pc, #368] ; (15b78 <lv_label_create+0x1fc>)
lv_obj_set_design_cb(new_label, lv_label_design);
15a06: 495d ldr r1, [pc, #372] ; (15b7c <lv_label_create+0x200>)
15a08: f8df 91c4 ldr.w r9, [pc, #452] ; 15bd0 <lv_label_create+0x254>
ext->offset.x = 0;
15a0c: e9c5 2302 strd r2, r3, [r5, #8]
ext->dot.tmp_ptr = NULL;
15a10: e9c5 3300 strd r3, r3, [r5]
ext->long_mode = LV_LABEL_LONG_EXPAND;
15a14: 8a2b ldrh r3, [r5, #16]
15a16: f423 73bf bic.w r3, r3, #382 ; 0x17e
15a1a: f023 0301 bic.w r3, r3, #1
15a1e: f043 0330 orr.w r3, r3, #48 ; 0x30
15a22: 822b strh r3, [r5, #16]
lv_obj_set_design_cb(new_label, lv_label_design);
15a24: 4620 mov r0, r4
15a26: 4b56 ldr r3, [pc, #344] ; (15b80 <lv_label_create+0x204>)
15a28: 4798 blx r3
lv_obj_set_signal_cb(new_label, lv_label_signal);
15a2a: 4956 ldr r1, [pc, #344] ; (15b84 <lv_label_create+0x208>)
15a2c: 4b56 ldr r3, [pc, #344] ; (15b88 <lv_label_create+0x20c>)
15a2e: 4620 mov r0, r4
15a30: 4798 blx r3
if(copy == NULL) {
15a32: b9bf cbnz r7, 15a64 <lv_label_create+0xe8>
lv_theme_apply(new_label, LV_THEME_LABEL);
15a34: 4b55 ldr r3, [pc, #340] ; (15b8c <lv_label_create+0x210>)
15a36: 2112 movs r1, #18
15a38: 4620 mov r0, r4
15a3a: 4798 blx r3
lv_obj_set_click(new_label, false);
15a3c: 4b54 ldr r3, [pc, #336] ; (15b90 <lv_label_create+0x214>)
15a3e: 4639 mov r1, r7
15a40: 4620 mov r0, r4
15a42: 4798 blx r3
lv_label_set_long_mode(new_label, LV_LABEL_LONG_EXPAND);
15a44: 4639 mov r1, r7
15a46: 4620 mov r0, r4
15a48: 47c8 blx r9
lv_label_set_text(new_label, "Text");
15a4a: 4952 ldr r1, [pc, #328] ; (15b94 <lv_label_create+0x218>)
15a4c: 4b52 ldr r3, [pc, #328] ; (15b98 <lv_label_create+0x21c>)
15a4e: 4620 mov r0, r4
15a50: 4798 blx r3
LV_LOG_INFO("label created");
15a52: 4b52 ldr r3, [pc, #328] ; (15b9c <lv_label_create+0x220>)
15a54: 9300 str r3, [sp, #0]
15a56: 493f ldr r1, [pc, #252] ; (15b54 <lv_label_create+0x1d8>)
15a58: 4b3d ldr r3, [pc, #244] ; (15b50 <lv_label_create+0x1d4>)
15a5a: 4d3f ldr r5, [pc, #252] ; (15b58 <lv_label_create+0x1dc>)
15a5c: 22a8 movs r2, #168 ; 0xa8
15a5e: 2001 movs r0, #1
15a60: 47a8 blx r5
return new_label;
15a62: e7a6 b.n 159b2 <lv_label_create+0x36>
lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
15a64: 4638 mov r0, r7
15a66: 47b0 blx r6
lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy));
15a68: 4b4d ldr r3, [pc, #308] ; (15ba0 <lv_label_create+0x224>)
lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
15a6a: 4606 mov r6, r0
lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy));
15a6c: 4638 mov r0, r7
15a6e: 4798 blx r3
15a70: 4601 mov r1, r0
15a72: 4620 mov r0, r4
15a74: 47c8 blx r9
lv_label_set_recolor(new_label, lv_label_get_recolor(copy));
15a76: 4b4b ldr r3, [pc, #300] ; (15ba4 <lv_label_create+0x228>)
15a78: 4638 mov r0, r7
15a7a: 4798 blx r3
15a7c: 4b4a ldr r3, [pc, #296] ; (15ba8 <lv_label_create+0x22c>)
15a7e: 4601 mov r1, r0
15a80: 4620 mov r0, r4
15a82: 4798 blx r3
lv_label_set_align(new_label, lv_label_get_align(copy));
15a84: 4b49 ldr r3, [pc, #292] ; (15bac <lv_label_create+0x230>)
15a86: 4638 mov r0, r7
15a88: 4798 blx r3
15a8a: 4b49 ldr r3, [pc, #292] ; (15bb0 <lv_label_create+0x234>)
15a8c: 4601 mov r1, r0
15a8e: 4620 mov r0, r4
15a90: 4798 blx r3
if(copy_ext->static_txt == 0)
15a92: 7c33 ldrb r3, [r6, #16]
15a94: f013 0f08 tst.w r3, #8
lv_label_set_text(new_label, lv_label_get_text(copy));
15a98: 4638 mov r0, r7
15a9a: 4b46 ldr r3, [pc, #280] ; (15bb4 <lv_label_create+0x238>)
if(copy_ext->static_txt == 0)
15a9c: d123 bne.n 15ae6 <lv_label_create+0x16a>
lv_label_set_text(new_label, lv_label_get_text(copy));
15a9e: 4798 blx r3
15aa0: 4b3d ldr r3, [pc, #244] ; (15b98 <lv_label_create+0x21c>)
15aa2: 4601 mov r1, r0
15aa4: 4620 mov r0, r4
lv_label_set_text_static(new_label, lv_label_get_text(copy));
15aa6: 4798 blx r3
if(copy_ext->long_mode == LV_LABEL_LONG_DOT) {
15aa8: 7c33 ldrb r3, [r6, #16]
15aaa: f003 0307 and.w r3, r3, #7
15aae: 2b02 cmp r3, #2
15ab0: d12b bne.n 15b0a <lv_label_create+0x18e>
ext->text = lv_mem_realloc(ext->text, _lv_mem_get_size(copy_ext->text));
15ab2: 6830 ldr r0, [r6, #0]
15ab4: f8df 911c ldr.w r9, [pc, #284] ; 15bd4 <lv_label_create+0x258>
15ab8: 682f ldr r7, [r5, #0]
15aba: 47c8 blx r9
15abc: 4b3e ldr r3, [pc, #248] ; (15bb8 <lv_label_create+0x23c>)
15abe: 4601 mov r1, r0
15ac0: 4638 mov r0, r7
15ac2: 4798 blx r3
15ac4: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(ext->text);
15ac6: 47c0 blx r8
15ac8: 4607 mov r7, r0
15aca: b988 cbnz r0, 15af0 <lv_label_create+0x174>
15acc: 4b20 ldr r3, [pc, #128] ; (15b50 <lv_label_create+0x1d4>)
15ace: 4921 ldr r1, [pc, #132] ; (15b54 <lv_label_create+0x1d8>)
15ad0: 9300 str r3, [sp, #0]
15ad2: 2295 movs r2, #149 ; 0x95
15ad4: 2003 movs r0, #3
15ad6: 4c20 ldr r4, [pc, #128] ; (15b58 <lv_label_create+0x1dc>)
15ad8: 47a0 blx r4
15ada: 682a ldr r2, [r5, #0]
15adc: 481f ldr r0, [pc, #124] ; (15b5c <lv_label_create+0x1e0>)
15ade: 4920 ldr r1, [pc, #128] ; (15b60 <lv_label_create+0x1e4>)
15ae0: 463b mov r3, r7
15ae2: 4788 blx r1
15ae4: e7fe b.n 15ae4 <lv_label_create+0x168>
lv_label_set_text_static(new_label, lv_label_get_text(copy));
15ae6: 4798 blx r3
15ae8: 4b34 ldr r3, [pc, #208] ; (15bbc <lv_label_create+0x240>)
15aea: 4601 mov r1, r0
15aec: 4620 mov r0, r4
15aee: e7da b.n 15aa6 <lv_label_create+0x12a>
if(ext->text == NULL) return NULL;
15af0: 682f ldr r7, [r5, #0]
15af2: 2f00 cmp r7, #0
15af4: f43f af5c beq.w 159b0 <lv_label_create+0x34>
_lv_memcpy(ext->text, copy_ext->text, _lv_mem_get_size(copy_ext->text));
15af8: 6831 ldr r1, [r6, #0]
15afa: 9103 str r1, [sp, #12]
15afc: 4608 mov r0, r1
15afe: 47c8 blx r9
15b00: 9903 ldr r1, [sp, #12]
15b02: 4b2f ldr r3, [pc, #188] ; (15bc0 <lv_label_create+0x244>)
15b04: 4602 mov r2, r0
15b06: 4638 mov r0, r7
15b08: 4798 blx r3
if(copy_ext->dot_tmp_alloc && copy_ext->dot.tmp_ptr) {
15b0a: 7c73 ldrb r3, [r6, #17]
15b0c: 07db lsls r3, r3, #31
15b0e: d514 bpl.n 15b3a <lv_label_create+0x1be>
15b10: 6870 ldr r0, [r6, #4]
15b12: b190 cbz r0, 15b3a <lv_label_create+0x1be>
uint16_t len = (uint16_t)strlen(copy_ext->dot.tmp_ptr);
15b14: 4b2b ldr r3, [pc, #172] ; (15bc4 <lv_label_create+0x248>)
15b16: 4798 blx r3
lv_label_set_dot_tmp(new_label, ext->dot.tmp_ptr, len);
15b18: 6869 ldr r1, [r5, #4]
15b1a: 4b2b ldr r3, [pc, #172] ; (15bc8 <lv_label_create+0x24c>)
15b1c: b282 uxth r2, r0
15b1e: 4620 mov r0, r4
15b20: 4798 blx r3
ext->dot_tmp_alloc = copy_ext->dot_tmp_alloc;
15b22: 7c72 ldrb r2, [r6, #17]
15b24: 7c6b ldrb r3, [r5, #17]
15b26: f362 0300 bfi r3, r2, #0, #1
15b2a: 746b strb r3, [r5, #17]
ext->dot_end = copy_ext->dot_end;
15b2c: 8933 ldrh r3, [r6, #8]
15b2e: 812b strh r3, [r5, #8]
lv_obj_refresh_style(new_label, LV_STYLE_PROP_ALL);
15b30: 21ff movs r1, #255 ; 0xff
15b32: 4b26 ldr r3, [pc, #152] ; (15bcc <lv_label_create+0x250>)
15b34: 4620 mov r0, r4
15b36: 4798 blx r3
15b38: e78b b.n 15a52 <lv_label_create+0xd6>
_lv_memcpy(ext->dot.tmp, copy_ext->dot.tmp, sizeof(ext->dot.tmp));
15b3a: 2204 movs r2, #4
15b3c: 4b20 ldr r3, [pc, #128] ; (15bc0 <lv_label_create+0x244>)
15b3e: 18b1 adds r1, r6, r2
15b40: 18a8 adds r0, r5, r2
15b42: 4798 blx r3
15b44: e7ed b.n 15b22 <lv_label_create+0x1a6>
15b46: bf00 nop
15b48: 000030c5 .word 0x000030c5
15b4c: 00001795 .word 0x00001795
15b50: 00024662 .word 0x00024662
15b54: 00024485 .word 0x00024485
15b58: 0000e931 .word 0x0000e931
15b5c: 0001ee02 .word 0x0001ee02
15b60: 0000179d .word 0x0000179d
15b64: 2000c7fc .word 0x2000c7fc
15b68: 00003f41 .word 0x00003f41
15b6c: 00002029 .word 0x00002029
15b70: 00003f89 .word 0x00003f89
15b74: 00004141 .word 0x00004141
15b78: 0019ffff .word 0x0019ffff
15b7c: 00015d35 .word 0x00015d35
15b80: 00001fe1 .word 0x00001fe1
15b84: 00015bd9 .word 0x00015bd9
15b88: 00001f8d .word 0x00001f8d
15b8c: 00010345 .word 0x00010345
15b90: 00001e0d .word 0x00001e0d
15b94: 000244e3 .word 0x000244e3
15b98: 00015681 .word 0x00015681
15b9c: 000244e8 .word 0x000244e8
15ba0: 00014de9 .word 0x00014de9
15ba4: 00014e99 .word 0x00014e99
15ba8: 0001590d .word 0x0001590d
15bac: 00014e3d .word 0x00014e3d
15bb0: 00014d29 .word 0x00014d29
15bb4: 00014d99 .word 0x00014d99
15bb8: 0000ee5d .word 0x0000ee5d
15bbc: 000157c5 .word 0x000157c5
15bc0: 0000ec79 .word 0x0000ec79
15bc4: 0001637d .word 0x0001637d
15bc8: 00014c41 .word 0x00014c41
15bcc: 00002d39 .word 0x00002d39
15bd0: 00015845 .word 0x00015845
15bd4: 0000eb95 .word 0x0000eb95
00015bd8 <lv_label_signal>:
if(sign == LV_SIGNAL_GET_STYLE) {
15bd8: 2908 cmp r1, #8
{
15bda: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
15bde: 4604 mov r4, r0
15be0: 460e mov r6, r1
15be2: 4615 mov r5, r2
if(sign == LV_SIGNAL_GET_STYLE) {
15be4: d10e bne.n 15c04 <lv_label_signal+0x2c>
switch(type) {
15be6: 7813 ldrb r3, [r2, #0]
15be8: b133 cbz r3, 15bf8 <lv_label_signal+0x20>
info->result = lv_label_get_style(label, info->part);
15bea: 2300 movs r3, #0
15bec: 6053 str r3, [r2, #4]
else return ancestor_signal(label, sign, param);
15bee: 4b25 ldr r3, [pc, #148] ; (15c84 <lv_label_signal+0xac>)
}
15bf0: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
else return ancestor_signal(label, sign, param);
15bf4: 681b ldr r3, [r3, #0]
15bf6: 4718 bx r3
style_dsc_p = &label->style_list;
15bf8: 3428 adds r4, #40 ; 0x28
info->result = lv_label_get_style(label, info->part);
15bfa: 6054 str r4, [r2, #4]
if(info->result != NULL) return LV_RES_OK;
15bfc: 2701 movs r7, #1
}
15bfe: 4638 mov r0, r7
15c00: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
res = ancestor_signal(label, sign, param);
15c04: 4b1f ldr r3, [pc, #124] ; (15c84 <lv_label_signal+0xac>)
15c06: 681b ldr r3, [r3, #0]
15c08: 4798 blx r3
if(res != LV_RES_OK) return res;
15c0a: 2801 cmp r0, #1
res = ancestor_signal(label, sign, param);
15c0c: 4607 mov r7, r0
if(res != LV_RES_OK) return res;
15c0e: d1f6 bne.n 15bfe <lv_label_signal+0x26>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
15c10: 2e07 cmp r6, #7
15c12: d105 bne.n 15c20 <lv_label_signal+0x48>
15c14: 4628 mov r0, r5
15c16: 491c ldr r1, [pc, #112] ; (15c88 <lv_label_signal+0xb0>)
15c18: 4b1c ldr r3, [pc, #112] ; (15c8c <lv_label_signal+0xb4>)
}
15c1a: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
15c1e: 4718 bx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15c20: 4b1b ldr r3, [pc, #108] ; (15c90 <lv_label_signal+0xb8>)
15c22: 4620 mov r0, r4
15c24: 4798 blx r3
15c26: 4680 mov r8, r0
if(sign == LV_SIGNAL_CLEANUP) {
15c28: b966 cbnz r6, 15c44 <lv_label_signal+0x6c>
if(ext->static_txt == 0) {
15c2a: 7c03 ldrb r3, [r0, #16]
15c2c: f013 0508 ands.w r5, r3, #8
15c30: d104 bne.n 15c3c <lv_label_signal+0x64>
lv_mem_free(ext->text);
15c32: 6800 ldr r0, [r0, #0]
15c34: 4b17 ldr r3, [pc, #92] ; (15c94 <lv_label_signal+0xbc>)
15c36: 4798 blx r3
ext->text = NULL;
15c38: f8c8 5000 str.w r5, [r8]
lv_label_dot_tmp_free(label);
15c3c: 4b16 ldr r3, [pc, #88] ; (15c98 <lv_label_signal+0xc0>)
15c3e: 4620 mov r0, r4
lv_label_refr_text(label);
15c40: 4798 blx r3
15c42: e7dc b.n 15bfe <lv_label_signal+0x26>
else if(sign == LV_SIGNAL_STYLE_CHG) {
15c44: 2e04 cmp r6, #4
15c46: d105 bne.n 15c54 <lv_label_signal+0x7c>
lv_label_revert_dots(label);
15c48: 4b14 ldr r3, [pc, #80] ; (15c9c <lv_label_signal+0xc4>)
15c4a: 4620 mov r0, r4
15c4c: 4798 blx r3
lv_label_refr_text(label);
15c4e: 4b14 ldr r3, [pc, #80] ; (15ca0 <lv_label_signal+0xc8>)
15c50: 4620 mov r0, r4
15c52: e7f5 b.n 15c40 <lv_label_signal+0x68>
else if(sign == LV_SIGNAL_COORD_CHG) {
15c54: 2e02 cmp r6, #2
15c56: d1d2 bne.n 15bfe <lv_label_signal+0x26>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
15c58: 8a23 ldrh r3, [r4, #16]
15c5a: 8aa2 ldrh r2, [r4, #20]
15c5c: 8829 ldrh r1, [r5, #0]
15c5e: 1ad2 subs r2, r2, r3
15c60: 88ab ldrh r3, [r5, #4]
15c62: 1a5b subs r3, r3, r1
if(lv_area_get_width(&label->coords) != lv_area_get_width(param) ||
15c64: b292 uxth r2, r2
15c66: b29b uxth r3, r3
15c68: 429a cmp r2, r3
15c6a: d1ed bne.n 15c48 <lv_label_signal+0x70>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15c6c: 8a63 ldrh r3, [r4, #18]
15c6e: 8ae2 ldrh r2, [r4, #22]
15c70: 8869 ldrh r1, [r5, #2]
15c72: 1ad2 subs r2, r2, r3
15c74: 88eb ldrh r3, [r5, #6]
15c76: 1a5b subs r3, r3, r1
15c78: b292 uxth r2, r2
15c7a: b29b uxth r3, r3
15c7c: 429a cmp r2, r3
15c7e: d1e3 bne.n 15c48 <lv_label_signal+0x70>
15c80: e7bd b.n 15bfe <lv_label_signal+0x26>
15c82: bf00 nop
15c84: 2000c7fc .word 0x2000c7fc
15c88: 000244f6 .word 0x000244f6
15c8c: 0000426d .word 0x0000426d
15c90: 00003f89 .word 0x00003f89
15c94: 0000eb2d .word 0x0000eb2d
15c98: 00014b5d .word 0x00014b5d
15c9c: 00014b89 .word 0x00014b89
15ca0: 00015191 .word 0x00015191
00015ca4 <lv_label_get_text_sel_start>:
{
15ca4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15ca6: 4b0b ldr r3, [pc, #44] ; (15cd4 <lv_label_get_text_sel_start+0x30>)
{
15ca8: 4605 mov r5, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15caa: 4798 blx r3
15cac: 4604 mov r4, r0
15cae: b968 cbnz r0, 15ccc <lv_label_get_text_sel_start+0x28>
15cb0: 4b09 ldr r3, [pc, #36] ; (15cd8 <lv_label_get_text_sel_start+0x34>)
15cb2: 490a ldr r1, [pc, #40] ; (15cdc <lv_label_get_text_sel_start+0x38>)
15cb4: 9300 str r3, [sp, #0]
15cb6: f240 321d movw r2, #797 ; 0x31d
15cba: 2003 movs r0, #3
15cbc: 4e08 ldr r6, [pc, #32] ; (15ce0 <lv_label_get_text_sel_start+0x3c>)
15cbe: 47b0 blx r6
15cc0: 4808 ldr r0, [pc, #32] ; (15ce4 <lv_label_get_text_sel_start+0x40>)
15cc2: 4909 ldr r1, [pc, #36] ; (15ce8 <lv_label_get_text_sel_start+0x44>)
15cc4: 462a mov r2, r5
15cc6: 4623 mov r3, r4
15cc8: 4788 blx r1
15cca: e7fe b.n 15cca <lv_label_get_text_sel_start+0x26>
}
15ccc: f64f 70ff movw r0, #65535 ; 0xffff
15cd0: b002 add sp, #8
15cd2: bd70 pop {r4, r5, r6, pc}
15cd4: 00001795 .word 0x00001795
15cd8: 0002468a .word 0x0002468a
15cdc: 00024485 .word 0x00024485
15ce0: 0000e931 .word 0x0000e931
15ce4: 0001ef03 .word 0x0001ef03
15ce8: 0000179d .word 0x0000179d
00015cec <lv_label_get_text_sel_end>:
{
15cec: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15cee: 4b0b ldr r3, [pc, #44] ; (15d1c <lv_label_get_text_sel_end+0x30>)
{
15cf0: 4605 mov r5, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15cf2: 4798 blx r3
15cf4: 4604 mov r4, r0
15cf6: b968 cbnz r0, 15d14 <lv_label_get_text_sel_end+0x28>
15cf8: 4b09 ldr r3, [pc, #36] ; (15d20 <lv_label_get_text_sel_end+0x34>)
15cfa: 490a ldr r1, [pc, #40] ; (15d24 <lv_label_get_text_sel_end+0x38>)
15cfc: 9300 str r3, [sp, #0]
15cfe: f44f 724c mov.w r2, #816 ; 0x330
15d02: 2003 movs r0, #3
15d04: 4e08 ldr r6, [pc, #32] ; (15d28 <lv_label_get_text_sel_end+0x3c>)
15d06: 47b0 blx r6
15d08: 4808 ldr r0, [pc, #32] ; (15d2c <lv_label_get_text_sel_end+0x40>)
15d0a: 4909 ldr r1, [pc, #36] ; (15d30 <lv_label_get_text_sel_end+0x44>)
15d0c: 462a mov r2, r5
15d0e: 4623 mov r3, r4
15d10: 4788 blx r1
15d12: e7fe b.n 15d12 <lv_label_get_text_sel_end+0x26>
}
15d14: f64f 70ff movw r0, #65535 ; 0xffff
15d18: b002 add sp, #8
15d1a: bd70 pop {r4, r5, r6, pc}
15d1c: 00001795 .word 0x00001795
15d20: 000246a6 .word 0x000246a6
15d24: 00024485 .word 0x00024485
15d28: 0000e931 .word 0x0000e931
15d2c: 0001ef03 .word 0x0001ef03
15d30: 0000179d .word 0x0000179d
00015d34 <lv_label_design>:
{
15d34: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
if(mode == LV_DESIGN_COVER_CHK)
15d38: 2a02 cmp r2, #2
{
15d3a: b0a9 sub sp, #164 ; 0xa4
15d3c: 4605 mov r5, r0
15d3e: 4688 mov r8, r1
15d40: 4617 mov r7, r2
if(mode == LV_DESIGN_COVER_CHK)
15d42: f000 80fa beq.w 15f3a <lv_label_design+0x206>
else if(mode == LV_DESIGN_DRAW_MAIN) {
15d46: 2a00 cmp r2, #0
15d48: f040 8100 bne.w 15f4c <lv_label_design+0x218>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15d4c: 4b80 ldr r3, [pc, #512] ; (15f50 <lv_label_design+0x21c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
15d4e: f8df 9238 ldr.w r9, [pc, #568] ; 15f88 <lv_label_design+0x254>
15d52: 4798 blx r3
15d54: 2204 movs r2, #4
15d56: 4639 mov r1, r7
15d58: 4604 mov r4, r0
15d5a: 4628 mov r0, r5
15d5c: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
15d5e: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
15d60: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
15d62: 4639 mov r1, r7
15d64: 4628 mov r0, r5
15d66: 47c8 blx r9
15d68: 6969 ldr r1, [r5, #20]
15d6a: 4602 mov r2, r0
15d6c: 6928 ldr r0, [r5, #16]
15d6e: ab06 add r3, sp, #24
15d70: c303 stmia r3!, {r0, r1}
bg_coords.x2 += w;
15d72: f8bd 001c ldrh.w r0, [sp, #28]
bg_coords.x1 -= w;
15d76: f8bd 1018 ldrh.w r1, [sp, #24]
15d7a: b2b3 uxth r3, r6
15d7c: 1ac9 subs r1, r1, r3
bg_coords.x2 += w;
15d7e: 4403 add r3, r0
15d80: f8ad 301c strh.w r3, [sp, #28]
bg_coords.y1 -= h;
15d84: f8bd 301a ldrh.w r3, [sp, #26]
bg_coords.x1 -= w;
15d88: f8ad 1018 strh.w r1, [sp, #24]
bg_coords.y1 -= h;
15d8c: b290 uxth r0, r2
15d8e: 1a1b subs r3, r3, r0
15d90: f8ad 301a strh.w r3, [sp, #26]
bg_coords.y2 += h;
15d94: f8bd 301e ldrh.w r3, [sp, #30]
15d98: 4418 add r0, r3
15d9a: f8ad 001e strh.w r0, [sp, #30]
lv_draw_rect_dsc_init(&draw_rect_dsc);
15d9e: 4b6d ldr r3, [pc, #436] ; (15f54 <lv_label_design+0x220>)
15da0: a813 add r0, sp, #76 ; 0x4c
15da2: 4798 blx r3
lv_obj_init_draw_rect_dsc(label, LV_LABEL_PART_MAIN, &draw_rect_dsc);
15da4: 4b6c ldr r3, [pc, #432] ; (15f58 <lv_label_design+0x224>)
15da6: aa13 add r2, sp, #76 ; 0x4c
15da8: 4639 mov r1, r7
15daa: 4628 mov r0, r5
15dac: 4798 blx r3
lv_draw_rect(&bg_coords, clip_area, &draw_rect_dsc);
15dae: aa13 add r2, sp, #76 ; 0x4c
15db0: 4b6a ldr r3, [pc, #424] ; (15f5c <lv_label_design+0x228>)
15db2: 4641 mov r1, r8
15db4: a806 add r0, sp, #24
15db6: 4798 blx r3
get_txt_coords(label, &txt_coords);
15db8: 4b69 ldr r3, [pc, #420] ; (15f60 <lv_label_design+0x22c>)
15dba: a908 add r1, sp, #32
15dbc: 4628 mov r0, r5
15dbe: 4798 blx r3
bool is_common = _lv_area_intersect(&txt_clip, clip_area, &txt_coords);
15dc0: 4b68 ldr r3, [pc, #416] ; (15f64 <lv_label_design+0x230>)
15dc2: aa08 add r2, sp, #32
15dc4: 4641 mov r1, r8
15dc6: a80a add r0, sp, #40 ; 0x28
15dc8: 4798 blx r3
if(!is_common) return LV_DESIGN_RES_OK;
15dca: 2800 cmp r0, #0
15dcc: f000 80b5 beq.w 15f3a <lv_label_design+0x206>
lv_label_align_t align = lv_label_get_align(label);
15dd0: 4b65 ldr r3, [pc, #404] ; (15f68 <lv_label_design+0x234>)
15dd2: 4628 mov r0, r5
15dd4: 4798 blx r3
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
15dd6: 7c23 ldrb r3, [r4, #16]
15dd8: f3c3 1680 ubfx r6, r3, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
15ddc: 061a lsls r2, r3, #24
15dde: bf48 it mi
15de0: f046 0602 orrmi.w r6, r6, #2
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
15de4: 075b lsls r3, r3, #29
15de6: bf08 it eq
15de8: f046 0610 orreq.w r6, r6, #16
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
15dec: 2801 cmp r0, #1
15dee: f040 80a8 bne.w 15f42 <lv_label_design+0x20e>
15df2: f046 0604 orr.w r6, r6, #4
lv_draw_label_dsc_init(&label_draw_dsc);
15df6: 4b5d ldr r3, [pc, #372] ; (15f6c <lv_label_design+0x238>)
15df8: a80c add r0, sp, #48 ; 0x30
15dfa: 4798 blx r3
label_draw_dsc.sel_start = lv_label_get_text_sel_start(label);
15dfc: 4b5c ldr r3, [pc, #368] ; (15f70 <lv_label_design+0x23c>)
15dfe: 4628 mov r0, r5
15e00: 4798 blx r3
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
15e02: 4b5c ldr r3, [pc, #368] ; (15f74 <lv_label_design+0x240>)
label_draw_dsc.sel_start = lv_label_get_text_sel_start(label);
15e04: f8ad 003e strh.w r0, [sp, #62] ; 0x3e
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
15e08: 4628 mov r0, r5
15e0a: 4798 blx r3
label_draw_dsc.ofs_x = ext->offset.x;
15e0c: 89a3 ldrh r3, [r4, #12]
15e0e: f8ad 3042 strh.w r3, [sp, #66] ; 0x42
label_draw_dsc.ofs_y = ext->offset.y;
15e12: 89e3 ldrh r3, [r4, #14]
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
15e14: f8ad 0040 strh.w r0, [sp, #64] ; 0x40
label_draw_dsc.ofs_y = ext->offset.y;
15e18: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc);
15e1c: aa0c add r2, sp, #48 ; 0x30
15e1e: 4b56 ldr r3, [pc, #344] ; (15f78 <lv_label_design+0x244>)
label_draw_dsc.flag = flag;
15e20: f88d 6047 strb.w r6, [sp, #71] ; 0x47
lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc);
15e24: 2100 movs r1, #0
15e26: 4628 mov r0, r5
15e28: 4798 blx r3
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
15e2a: 7c23 ldrb r3, [r4, #16]
15e2c: f003 0207 and.w r2, r3, #7
15e30: 3a03 subs r2, #3
15e32: 2a01 cmp r2, #1
15e34: d824 bhi.n 15e80 <lv_label_design+0x14c>
(ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) {
15e36: f003 0330 and.w r3, r3, #48 ; 0x30
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
15e3a: 2b10 cmp r3, #16
15e3c: d001 beq.n 15e42 <lv_label_design+0x10e>
(ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) {
15e3e: 2b20 cmp r3, #32
15e40: d11e bne.n 15e80 <lv_label_design+0x14c>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
15e42: f647 4318 movw r3, #31768 ; 0x7c18
15e46: 9301 str r3, [sp, #4]
15e48: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a
15e4c: 9300 str r3, [sp, #0]
15e4e: 9602 str r6, [sp, #8]
15e50: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c
15e54: 9a0d ldr r2, [sp, #52] ; 0x34
15e56: 6821 ldr r1, [r4, #0]
15e58: 4d48 ldr r5, [pc, #288] ; (15f7c <lv_label_design+0x248>)
15e5a: a805 add r0, sp, #20
15e5c: 47a8 blx r5
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
15e5e: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
15e62: f8bd 2020 ldrh.w r2, [sp, #32]
15e66: 3301 adds r3, #1
15e68: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
15e6a: f9bd 2014 ldrsh.w r2, [sp, #20]
15e6e: b21b sxth r3, r3
15e70: 429a cmp r2, r3
label_draw_dsc.flag &= ~LV_TXT_FLAG_CENTER;
15e72: bfc2 ittt gt
15e74: f89d 3047 ldrbgt.w r3, [sp, #71] ; 0x47
15e78: f023 030c bicgt.w r3, r3, #12
15e7c: f88d 3047 strbgt.w r3, [sp, #71] ; 0x47
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15e80: f04f 0900 mov.w r9, #0
15e84: f8cd 9000 str.w r9, [sp]
15e88: 6823 ldr r3, [r4, #0]
15e8a: f8df 80f8 ldr.w r8, [pc, #248] ; 15f84 <lv_label_design+0x250>
15e8e: aa0c add r2, sp, #48 ; 0x30
15e90: a90a add r1, sp, #40 ; 0x28
15e92: a808 add r0, sp, #32
15e94: 47c0 blx r8
if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
15e96: 7c23 ldrb r3, [r4, #16]
15e98: f003 0307 and.w r3, r3, #7
15e9c: 2b04 cmp r3, #4
15e9e: d14c bne.n 15f3a <lv_label_design+0x206>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
15ea0: f647 4318 movw r3, #31768 ; 0x7c18
15ea4: 9301 str r3, [sp, #4]
15ea6: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a
15eaa: 9300 str r3, [sp, #0]
15eac: 9602 str r6, [sp, #8]
15eae: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c
15eb2: 9a0d ldr r2, [sp, #52] ; 0x34
15eb4: 6821 ldr r1, [r4, #0]
15eb6: 4d31 ldr r5, [pc, #196] ; (15f7c <lv_label_design+0x248>)
15eb8: a805 add r0, sp, #20
15eba: 47a8 blx r5
15ebc: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
15ec0: f8bd 1020 ldrh.w r1, [sp, #32]
if(size.x > lv_area_get_width(&txt_coords)) {
15ec4: f9bd 3014 ldrsh.w r3, [sp, #20]
15ec8: 3201 adds r2, #1
15eca: 1a52 subs r2, r2, r1
15ecc: b212 sxth r2, r2
15ece: 4293 cmp r3, r2
15ed0: dd16 ble.n 15f00 <lv_label_design+0x1cc>
label_draw_dsc.ofs_x = ext->offset.x + size.x +
15ed2: 89a5 ldrh r5, [r4, #12]
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
15ed4: 980d ldr r0, [sp, #52] ; 0x34
15ed6: 2220 movs r2, #32
label_draw_dsc.ofs_x = ext->offset.x + size.x +
15ed8: 442b add r3, r5
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
15eda: 4611 mov r1, r2
label_draw_dsc.ofs_x = ext->offset.x + size.x +
15edc: b29d uxth r5, r3
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
15ede: 4b28 ldr r3, [pc, #160] ; (15f80 <lv_label_design+0x24c>)
15ee0: 4798 blx r3
label_draw_dsc.ofs_y = ext->offset.y;
15ee2: 89e3 ldrh r3, [r4, #14]
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15ee4: f8cd 9000 str.w r9, [sp]
label_draw_dsc.ofs_x = ext->offset.x + size.x +
15ee8: eb00 0040 add.w r0, r0, r0, lsl #1
15eec: 4405 add r5, r0
label_draw_dsc.ofs_y = ext->offset.y;
15eee: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15ef2: aa0c add r2, sp, #48 ; 0x30
15ef4: 6823 ldr r3, [r4, #0]
label_draw_dsc.ofs_x = ext->offset.x + size.x +
15ef6: f8ad 5042 strh.w r5, [sp, #66] ; 0x42
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15efa: a90a add r1, sp, #40 ; 0x28
15efc: a808 add r0, sp, #32
15efe: 47c0 blx r8
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15f00: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
15f04: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
if(size.y > lv_area_get_height(&txt_coords)) {
15f08: f9bd 2016 ldrsh.w r2, [sp, #22]
15f0c: 3301 adds r3, #1
15f0e: 1a5b subs r3, r3, r1
15f10: b21b sxth r3, r3
15f12: 429a cmp r2, r3
15f14: dd11 ble.n 15f3a <lv_label_design+0x206>
label_draw_dsc.ofs_x = ext->offset.x;
15f16: 89a3 ldrh r3, [r4, #12]
15f18: f8ad 3042 strh.w r3, [sp, #66] ; 0x42
15f1c: 9b0d ldr r3, [sp, #52] ; 0x34
label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font);
15f1e: 891b ldrh r3, [r3, #8]
15f20: 441a add r2, r3
15f22: 89e3 ldrh r3, [r4, #14]
15f24: 441a add r2, r3
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15f26: 2300 movs r3, #0
15f28: 9300 str r3, [sp, #0]
15f2a: 6823 ldr r3, [r4, #0]
label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font);
15f2c: f8ad 2044 strh.w r2, [sp, #68] ; 0x44
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
15f30: 4c14 ldr r4, [pc, #80] ; (15f84 <lv_label_design+0x250>)
15f32: aa0c add r2, sp, #48 ; 0x30
15f34: a90a add r1, sp, #40 ; 0x28
15f36: a808 add r0, sp, #32
15f38: 47a0 blx r4
}
15f3a: 4638 mov r0, r7
15f3c: b029 add sp, #164 ; 0xa4
15f3e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
15f42: 2802 cmp r0, #2
15f44: bf08 it eq
15f46: f046 0608 orreq.w r6, r6, #8
15f4a: e754 b.n 15df6 <lv_label_design+0xc2>
return LV_DESIGN_RES_OK;
15f4c: 2700 movs r7, #0
15f4e: e7f4 b.n 15f3a <lv_label_design+0x206>
15f50: 00003f89 .word 0x00003f89
15f54: 00009bb5 .word 0x00009bb5
15f58: 00004289 .word 0x00004289
15f5c: 00009c01 .word 0x00009c01
15f60: 00014ccd .word 0x00014ccd
15f64: 0000ded1 .word 0x0000ded1
15f68: 00014e3d .word 0x00014e3d
15f6c: 00007855 .word 0x00007855
15f70: 00015ca5 .word 0x00015ca5
15f74: 00015ced .word 0x00015ced
15f78: 000047c9 .word 0x000047c9
15f7c: 000101fd .word 0x000101fd
15f80: 0000d1b9 .word 0x0000d1b9
15f84: 00007885 .word 0x00007885
15f88: 000036f1 .word 0x000036f1
00015f8c <__aeabi_uldivmod>:
15f8c: b953 cbnz r3, 15fa4 <__aeabi_uldivmod+0x18>
15f8e: b94a cbnz r2, 15fa4 <__aeabi_uldivmod+0x18>
15f90: 2900 cmp r1, #0
15f92: bf08 it eq
15f94: 2800 cmpeq r0, #0
15f96: bf1c itt ne
15f98: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff
15f9c: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
15fa0: f000 b974 b.w 1628c <__aeabi_idiv0>
15fa4: f1ad 0c08 sub.w ip, sp, #8
15fa8: e96d ce04 strd ip, lr, [sp, #-16]!
15fac: f000 f806 bl 15fbc <__udivmoddi4>
15fb0: f8dd e004 ldr.w lr, [sp, #4]
15fb4: e9dd 2302 ldrd r2, r3, [sp, #8]
15fb8: b004 add sp, #16
15fba: 4770 bx lr
00015fbc <__udivmoddi4>:
15fbc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
15fc0: 9e08 ldr r6, [sp, #32]
15fc2: 460d mov r5, r1
15fc4: 4604 mov r4, r0
15fc6: 4688 mov r8, r1
15fc8: 2b00 cmp r3, #0
15fca: d14d bne.n 16068 <__udivmoddi4+0xac>
15fcc: 428a cmp r2, r1
15fce: 4694 mov ip, r2
15fd0: d968 bls.n 160a4 <__udivmoddi4+0xe8>
15fd2: fab2 f282 clz r2, r2
15fd6: b152 cbz r2, 15fee <__udivmoddi4+0x32>
15fd8: fa01 f302 lsl.w r3, r1, r2
15fdc: f1c2 0120 rsb r1, r2, #32
15fe0: fa20 f101 lsr.w r1, r0, r1
15fe4: fa0c fc02 lsl.w ip, ip, r2
15fe8: ea41 0803 orr.w r8, r1, r3
15fec: 4094 lsls r4, r2
15fee: ea4f 451c mov.w r5, ip, lsr #16
15ff2: 0c21 lsrs r1, r4, #16
15ff4: fbb8 fef5 udiv lr, r8, r5
15ff8: fa1f f78c uxth.w r7, ip
15ffc: fb05 831e mls r3, r5, lr, r8
16000: ea41 4303 orr.w r3, r1, r3, lsl #16
16004: fb0e f107 mul.w r1, lr, r7
16008: 4299 cmp r1, r3
1600a: d90b bls.n 16024 <__udivmoddi4+0x68>
1600c: eb1c 0303 adds.w r3, ip, r3
16010: f10e 30ff add.w r0, lr, #4294967295 ; 0xffffffff
16014: f080 811e bcs.w 16254 <__udivmoddi4+0x298>
16018: 4299 cmp r1, r3
1601a: f240 811b bls.w 16254 <__udivmoddi4+0x298>
1601e: f1ae 0e02 sub.w lr, lr, #2
16022: 4463 add r3, ip
16024: 1a5b subs r3, r3, r1
16026: b2a4 uxth r4, r4
16028: fbb3 f0f5 udiv r0, r3, r5
1602c: fb05 3310 mls r3, r5, r0, r3
16030: ea44 4403 orr.w r4, r4, r3, lsl #16
16034: fb00 f707 mul.w r7, r0, r7
16038: 42a7 cmp r7, r4
1603a: d90a bls.n 16052 <__udivmoddi4+0x96>
1603c: eb1c 0404 adds.w r4, ip, r4
16040: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff
16044: f080 8108 bcs.w 16258 <__udivmoddi4+0x29c>
16048: 42a7 cmp r7, r4
1604a: f240 8105 bls.w 16258 <__udivmoddi4+0x29c>
1604e: 4464 add r4, ip
16050: 3802 subs r0, #2
16052: 1be4 subs r4, r4, r7
16054: ea40 400e orr.w r0, r0, lr, lsl #16
16058: 2100 movs r1, #0
1605a: b11e cbz r6, 16064 <__udivmoddi4+0xa8>
1605c: 40d4 lsrs r4, r2
1605e: 2300 movs r3, #0
16060: e9c6 4300 strd r4, r3, [r6]
16064: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
16068: 428b cmp r3, r1
1606a: d908 bls.n 1607e <__udivmoddi4+0xc2>
1606c: 2e00 cmp r6, #0
1606e: f000 80ee beq.w 1624e <__udivmoddi4+0x292>
16072: 2100 movs r1, #0
16074: e9c6 0500 strd r0, r5, [r6]
16078: 4608 mov r0, r1
1607a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
1607e: fab3 f183 clz r1, r3
16082: 2900 cmp r1, #0
16084: d14a bne.n 1611c <__udivmoddi4+0x160>
16086: 42ab cmp r3, r5
16088: d302 bcc.n 16090 <__udivmoddi4+0xd4>
1608a: 4282 cmp r2, r0
1608c: f200 80f9 bhi.w 16282 <__udivmoddi4+0x2c6>
16090: 1a84 subs r4, r0, r2
16092: eb65 0303 sbc.w r3, r5, r3
16096: 2001 movs r0, #1
16098: 4698 mov r8, r3
1609a: 2e00 cmp r6, #0
1609c: d0e2 beq.n 16064 <__udivmoddi4+0xa8>
1609e: e9c6 4800 strd r4, r8, [r6]
160a2: e7df b.n 16064 <__udivmoddi4+0xa8>
160a4: b902 cbnz r2, 160a8 <__udivmoddi4+0xec>
160a6: deff udf #255 ; 0xff
160a8: fab2 f282 clz r2, r2
160ac: 2a00 cmp r2, #0
160ae: f040 8091 bne.w 161d4 <__udivmoddi4+0x218>
160b2: eba1 050c sub.w r5, r1, ip
160b6: ea4f 471c mov.w r7, ip, lsr #16
160ba: fa1f fe8c uxth.w lr, ip
160be: 2101 movs r1, #1
160c0: fbb5 f3f7 udiv r3, r5, r7
160c4: fb07 5013 mls r0, r7, r3, r5
160c8: 0c25 lsrs r5, r4, #16
160ca: ea45 4500 orr.w r5, r5, r0, lsl #16
160ce: fb0e f003 mul.w r0, lr, r3
160d2: 42a8 cmp r0, r5
160d4: d908 bls.n 160e8 <__udivmoddi4+0x12c>
160d6: eb1c 0505 adds.w r5, ip, r5
160da: f103 38ff add.w r8, r3, #4294967295 ; 0xffffffff
160de: d202 bcs.n 160e6 <__udivmoddi4+0x12a>
160e0: 42a8 cmp r0, r5
160e2: f200 80cb bhi.w 1627c <__udivmoddi4+0x2c0>
160e6: 4643 mov r3, r8
160e8: 1a2d subs r5, r5, r0
160ea: b2a4 uxth r4, r4
160ec: fbb5 f0f7 udiv r0, r5, r7
160f0: fb07 5510 mls r5, r7, r0, r5
160f4: ea44 4405 orr.w r4, r4, r5, lsl #16
160f8: fb0e fe00 mul.w lr, lr, r0
160fc: 45a6 cmp lr, r4
160fe: d908 bls.n 16112 <__udivmoddi4+0x156>
16100: eb1c 0404 adds.w r4, ip, r4
16104: f100 35ff add.w r5, r0, #4294967295 ; 0xffffffff
16108: d202 bcs.n 16110 <__udivmoddi4+0x154>
1610a: 45a6 cmp lr, r4
1610c: f200 80bb bhi.w 16286 <__udivmoddi4+0x2ca>
16110: 4628 mov r0, r5
16112: eba4 040e sub.w r4, r4, lr
16116: ea40 4003 orr.w r0, r0, r3, lsl #16
1611a: e79e b.n 1605a <__udivmoddi4+0x9e>
1611c: f1c1 0720 rsb r7, r1, #32
16120: 408b lsls r3, r1
16122: fa22 fc07 lsr.w ip, r2, r7
16126: ea4c 0c03 orr.w ip, ip, r3
1612a: fa20 f407 lsr.w r4, r0, r7
1612e: fa05 f301 lsl.w r3, r5, r1
16132: 431c orrs r4, r3
16134: 40fd lsrs r5, r7
16136: ea4f 491c mov.w r9, ip, lsr #16
1613a: fa00 f301 lsl.w r3, r0, r1
1613e: fbb5 f8f9 udiv r8, r5, r9
16142: 0c20 lsrs r0, r4, #16
16144: fa1f fe8c uxth.w lr, ip
16148: fb09 5518 mls r5, r9, r8, r5
1614c: ea40 4505 orr.w r5, r0, r5, lsl #16
16150: fb08 f00e mul.w r0, r8, lr
16154: 42a8 cmp r0, r5
16156: fa02 f201 lsl.w r2, r2, r1
1615a: d90b bls.n 16174 <__udivmoddi4+0x1b8>
1615c: eb1c 0505 adds.w r5, ip, r5
16160: f108 3aff add.w sl, r8, #4294967295 ; 0xffffffff
16164: f080 8088 bcs.w 16278 <__udivmoddi4+0x2bc>
16168: 42a8 cmp r0, r5
1616a: f240 8085 bls.w 16278 <__udivmoddi4+0x2bc>
1616e: f1a8 0802 sub.w r8, r8, #2
16172: 4465 add r5, ip
16174: 1a2d subs r5, r5, r0
16176: b2a4 uxth r4, r4
16178: fbb5 f0f9 udiv r0, r5, r9
1617c: fb09 5510 mls r5, r9, r0, r5
16180: ea44 4505 orr.w r5, r4, r5, lsl #16
16184: fb00 fe0e mul.w lr, r0, lr
16188: 45ae cmp lr, r5
1618a: d908 bls.n 1619e <__udivmoddi4+0x1e2>
1618c: eb1c 0505 adds.w r5, ip, r5
16190: f100 34ff add.w r4, r0, #4294967295 ; 0xffffffff
16194: d26c bcs.n 16270 <__udivmoddi4+0x2b4>
16196: 45ae cmp lr, r5
16198: d96a bls.n 16270 <__udivmoddi4+0x2b4>
1619a: 3802 subs r0, #2
1619c: 4465 add r5, ip
1619e: ea40 4008 orr.w r0, r0, r8, lsl #16
161a2: fba0 9402 umull r9, r4, r0, r2
161a6: eba5 050e sub.w r5, r5, lr
161aa: 42a5 cmp r5, r4
161ac: 46c8 mov r8, r9
161ae: 46a6 mov lr, r4
161b0: d356 bcc.n 16260 <__udivmoddi4+0x2a4>
161b2: d053 beq.n 1625c <__udivmoddi4+0x2a0>
161b4: b15e cbz r6, 161ce <__udivmoddi4+0x212>
161b6: ebb3 0208 subs.w r2, r3, r8
161ba: eb65 050e sbc.w r5, r5, lr
161be: fa05 f707 lsl.w r7, r5, r7
161c2: fa22 f301 lsr.w r3, r2, r1
161c6: 40cd lsrs r5, r1
161c8: 431f orrs r7, r3
161ca: e9c6 7500 strd r7, r5, [r6]
161ce: 2100 movs r1, #0
161d0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
161d4: f1c2 0320 rsb r3, r2, #32
161d8: fa20 f103 lsr.w r1, r0, r3
161dc: fa0c fc02 lsl.w ip, ip, r2
161e0: fa25 f303 lsr.w r3, r5, r3
161e4: 4095 lsls r5, r2
161e6: 430d orrs r5, r1
161e8: ea4f 471c mov.w r7, ip, lsr #16
161ec: fa1f fe8c uxth.w lr, ip
161f0: fbb3 f1f7 udiv r1, r3, r7
161f4: fb07 3011 mls r0, r7, r1, r3
161f8: 0c2b lsrs r3, r5, #16
161fa: ea43 4300 orr.w r3, r3, r0, lsl #16
161fe: fb01 f00e mul.w r0, r1, lr
16202: 4298 cmp r0, r3
16204: fa04 f402 lsl.w r4, r4, r2
16208: d908 bls.n 1621c <__udivmoddi4+0x260>
1620a: eb1c 0303 adds.w r3, ip, r3
1620e: f101 38ff add.w r8, r1, #4294967295 ; 0xffffffff
16212: d22f bcs.n 16274 <__udivmoddi4+0x2b8>
16214: 4298 cmp r0, r3
16216: d92d bls.n 16274 <__udivmoddi4+0x2b8>
16218: 3902 subs r1, #2
1621a: 4463 add r3, ip
1621c: 1a1b subs r3, r3, r0
1621e: b2ad uxth r5, r5
16220: fbb3 f0f7 udiv r0, r3, r7
16224: fb07 3310 mls r3, r7, r0, r3
16228: ea45 4503 orr.w r5, r5, r3, lsl #16
1622c: fb00 f30e mul.w r3, r0, lr
16230: 42ab cmp r3, r5
16232: d908 bls.n 16246 <__udivmoddi4+0x28a>
16234: eb1c 0505 adds.w r5, ip, r5
16238: f100 38ff add.w r8, r0, #4294967295 ; 0xffffffff
1623c: d216 bcs.n 1626c <__udivmoddi4+0x2b0>
1623e: 42ab cmp r3, r5
16240: d914 bls.n 1626c <__udivmoddi4+0x2b0>
16242: 3802 subs r0, #2
16244: 4465 add r5, ip
16246: 1aed subs r5, r5, r3
16248: ea40 4101 orr.w r1, r0, r1, lsl #16
1624c: e738 b.n 160c0 <__udivmoddi4+0x104>
1624e: 4631 mov r1, r6
16250: 4630 mov r0, r6
16252: e707 b.n 16064 <__udivmoddi4+0xa8>
16254: 4686 mov lr, r0
16256: e6e5 b.n 16024 <__udivmoddi4+0x68>
16258: 4618 mov r0, r3
1625a: e6fa b.n 16052 <__udivmoddi4+0x96>
1625c: 454b cmp r3, r9
1625e: d2a9 bcs.n 161b4 <__udivmoddi4+0x1f8>
16260: ebb9 0802 subs.w r8, r9, r2
16264: eb64 0e0c sbc.w lr, r4, ip
16268: 3801 subs r0, #1
1626a: e7a3 b.n 161b4 <__udivmoddi4+0x1f8>
1626c: 4640 mov r0, r8
1626e: e7ea b.n 16246 <__udivmoddi4+0x28a>
16270: 4620 mov r0, r4
16272: e794 b.n 1619e <__udivmoddi4+0x1e2>
16274: 4641 mov r1, r8
16276: e7d1 b.n 1621c <__udivmoddi4+0x260>
16278: 46d0 mov r8, sl
1627a: e77b b.n 16174 <__udivmoddi4+0x1b8>
1627c: 3b02 subs r3, #2
1627e: 4465 add r5, ip
16280: e732 b.n 160e8 <__udivmoddi4+0x12c>
16282: 4608 mov r0, r1
16284: e709 b.n 1609a <__udivmoddi4+0xde>
16286: 4464 add r4, ip
16288: 3802 subs r0, #2
1628a: e742 b.n 16112 <__udivmoddi4+0x156>
0001628c <__aeabi_idiv0>:
1628c: 4770 bx lr
1628e: bf00 nop
00016290 <__libc_init_array>:
16290: b570 push {r4, r5, r6, lr}
16292: 4d0d ldr r5, [pc, #52] ; (162c8 <__libc_init_array+0x38>)
16294: 4c0d ldr r4, [pc, #52] ; (162cc <__libc_init_array+0x3c>)
16296: 1b64 subs r4, r4, r5
16298: 10a4 asrs r4, r4, #2
1629a: 2600 movs r6, #0
1629c: 42a6 cmp r6, r4
1629e: d109 bne.n 162b4 <__libc_init_array+0x24>
162a0: 4d0b ldr r5, [pc, #44] ; (162d0 <__libc_init_array+0x40>)
162a2: 4c0c ldr r4, [pc, #48] ; (162d4 <__libc_init_array+0x44>)
162a4: f00e fa2c bl 24700 <_init>
162a8: 1b64 subs r4, r4, r5
162aa: 10a4 asrs r4, r4, #2
162ac: 2600 movs r6, #0
162ae: 42a6 cmp r6, r4
162b0: d105 bne.n 162be <__libc_init_array+0x2e>
162b2: bd70 pop {r4, r5, r6, pc}
162b4: f855 3b04 ldr.w r3, [r5], #4
162b8: 4798 blx r3
162ba: 3601 adds r6, #1
162bc: e7ee b.n 1629c <__libc_init_array+0xc>
162be: f855 3b04 ldr.w r3, [r5], #4
162c2: 4798 blx r3
162c4: 3601 adds r6, #1
162c6: e7f2 b.n 162ae <__libc_init_array+0x1e>
162c8: 0002470c .word 0x0002470c
162cc: 0002470c .word 0x0002470c
162d0: 0002470c .word 0x0002470c
162d4: 00024710 .word 0x00024710
000162d8 <memcmp>:
162d8: b510 push {r4, lr}
162da: 3901 subs r1, #1
162dc: 4402 add r2, r0
162de: 4290 cmp r0, r2
162e0: d101 bne.n 162e6 <memcmp+0xe>
162e2: 2000 movs r0, #0
162e4: e005 b.n 162f2 <memcmp+0x1a>
162e6: 7803 ldrb r3, [r0, #0]
162e8: f811 4f01 ldrb.w r4, [r1, #1]!
162ec: 42a3 cmp r3, r4
162ee: d001 beq.n 162f4 <memcmp+0x1c>
162f0: 1b18 subs r0, r3, r4
162f2: bd10 pop {r4, pc}
162f4: 3001 adds r0, #1
162f6: e7f2 b.n 162de <memcmp+0x6>
000162f8 <memcpy>:
162f8: 440a add r2, r1
162fa: 4291 cmp r1, r2
162fc: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff
16300: d100 bne.n 16304 <memcpy+0xc>
16302: 4770 bx lr
16304: b510 push {r4, lr}
16306: f811 4b01 ldrb.w r4, [r1], #1
1630a: f803 4f01 strb.w r4, [r3, #1]!
1630e: 4291 cmp r1, r2
16310: d1f9 bne.n 16306 <memcpy+0xe>
16312: bd10 pop {r4, pc}
00016314 <memmove>:
16314: 4288 cmp r0, r1
16316: b510 push {r4, lr}
16318: eb01 0402 add.w r4, r1, r2
1631c: d902 bls.n 16324 <memmove+0x10>
1631e: 4284 cmp r4, r0
16320: 4623 mov r3, r4
16322: d807 bhi.n 16334 <memmove+0x20>
16324: 1e43 subs r3, r0, #1
16326: 42a1 cmp r1, r4
16328: d008 beq.n 1633c <memmove+0x28>
1632a: f811 2b01 ldrb.w r2, [r1], #1
1632e: f803 2f01 strb.w r2, [r3, #1]!
16332: e7f8 b.n 16326 <memmove+0x12>
16334: 4402 add r2, r0
16336: 4601 mov r1, r0
16338: 428a cmp r2, r1
1633a: d100 bne.n 1633e <memmove+0x2a>
1633c: bd10 pop {r4, pc}
1633e: f813 4d01 ldrb.w r4, [r3, #-1]!
16342: f802 4d01 strb.w r4, [r2, #-1]!
16346: e7f7 b.n 16338 <memmove+0x24>
00016348 <memset>:
16348: 4402 add r2, r0
1634a: 4603 mov r3, r0
1634c: 4293 cmp r3, r2
1634e: d100 bne.n 16352 <memset+0xa>
16350: 4770 bx lr
16352: f803 1b01 strb.w r1, [r3], #1
16356: e7f9 b.n 1634c <memset+0x4>
00016358 <strcmp>:
16358: f810 2b01 ldrb.w r2, [r0], #1
1635c: f811 3b01 ldrb.w r3, [r1], #1
16360: 2a01 cmp r2, #1
16362: bf28 it cs
16364: 429a cmpcs r2, r3
16366: d0f7 beq.n 16358 <strcmp>
16368: 1ad0 subs r0, r2, r3
1636a: 4770 bx lr
0001636c <strcpy>:
1636c: 4603 mov r3, r0
1636e: f811 2b01 ldrb.w r2, [r1], #1
16372: f803 2b01 strb.w r2, [r3], #1
16376: 2a00 cmp r2, #0
16378: d1f9 bne.n 1636e <strcpy+0x2>
1637a: 4770 bx lr
0001637c <strlen>:
1637c: 4603 mov r3, r0
1637e: f813 2b01 ldrb.w r2, [r3], #1
16382: 2a00 cmp r2, #0
16384: d1fb bne.n 1637e <strlen+0x2>
16386: 1a18 subs r0, r3, r0
16388: 3801 subs r0, #1
1638a: 4770 bx lr
1638c: 682f2e2e .word 0x682f2e2e
16390: 732f6c61 .word 0x732f6c61
16394: 682f6372 .word 0x682f6372
16398: 695f6c61 .word 0x695f6c61
1639c: 00632e6f .word 0x00632e6f
163a0: 682f2e2e .word 0x682f2e2e
163a4: 732f6c61 .word 0x732f6c61
163a8: 682f6372 .word 0x682f6372
163ac: 745f6c61 .word 0x745f6c61
163b0: 72656d69 .word 0x72656d69
163b4: 632e .short 0x632e
163b6: 00 .byte 0x00
163b7: 2e .byte 0x2e
163b8: 61682f2e .word 0x61682f2e
163bc: 74752f6c .word 0x74752f6c
163c0: 2f736c69 .word 0x2f736c69
163c4: 2f637273 .word 0x2f637273
163c8: 6c697475 .word 0x6c697475
163cc: 696c5f73 .word 0x696c5f73
163d0: 632e7473 .word 0x632e7473
163d4: 00 .byte 0x00
163d5: 2e .byte 0x2e
163d6: 2f2e .short 0x2f2e
163d8: 2f6c7068 .word 0x2f6c7068
163dc: 63726573 .word 0x63726573
163e0: 682f6d6f .word 0x682f6d6f
163e4: 735f6c70 .word 0x735f6c70
163e8: 6f637265 .word 0x6f637265
163ec: 00632e6d .word 0x00632e6d
163f0: 40003000 .word 0x40003000
163f4: 40003400 .word 0x40003400
163f8: 41012000 .word 0x41012000
163fc: 41014000 .word 0x41014000
16400: 43000000 .word 0x43000000
16404: 43000400 .word 0x43000400
16408: 43000800 .word 0x43000800
1640c: 43000c00 .word 0x43000c00
00016410 <_i2cms>:
16410: 00000003 00200014 00000100 000000ff ...... .........
16420: 00d70000 07270400 ......'.
00016428 <sercomspi_regs>:
...
16438: 2f2e2e00 2f6c6168 2f637273 5f6c6168 .../hal/src/hal_
16448: 72617375 73615f74 2e636e79 2e2e0063 usart_async.c...
16458: 6c61682f 6974752f 732f736c 752f6372 /hal/utils/src/u
16468: 736c6974 6e69725f 66756267 2e726566 tils_ringbuffer.
16478: 2e2e0063 6c70682f 2f63742f 5f6c7068 c.../hpl/tc/hpl_
16488: 632e6374 00000000 40003800 40003c00 tc.c.....8.@.<.@
16498: 4101a000 4101c000 42001400 42001800 ...A...A...B...B
164a8: 43001400 43001800 ...C...C
000164b0 <_tcs>:
164b0: 006b0000 00000308 00000000 00003a97 ..k..........:..
164c0: 00000000 682f2e2e 702f6c70 2f74726f ....../hpl/port/
164d0: 5f6c7068 6f697067 7361625f 00682e65 hpl_gpio_base.h.
164e0: 6c6c6548 6f57206f 00646c72 Hello World.
000164ec <hornet>:
164ec: 1662e40a 0000855b 000164f8 ..b.[....d..
000164f8 <hornet_map>:
164f8: ff07060b ffac882c ff871f25 ff895139 ....,...%...9Q..
16508: ffdcc46d ffc88348 ffc65632 ff46434d m...H...2V..MCF.
16518: ff480a16 ffbca25c ffc22d38 ff8b6c67 ..H.\...8-..gl..
16528: ff48272d ff893622 ffc76d41 ffc38576 -'H."6..Am..v...
16538: ffc6a49a ffa53520 ff692621 ffa95139 .... 5..!&i.9Q..
16548: ffe8e2a9 ff26242e ffe96e40 ffe98843 .....$&.@n..C...
16558: ffaea64b ff873848 ffc5c4c9 ffa86e33 K...H8......3n..
16568: ff69646a ffe45640 ff69342e ff280917 jdi.@V...4i...(.
16578: ffa8554e ffe7a996 ff838383 ff67101b NU............g.
16588: ff9e8880 ffc76e60 ffe7a65f ffe99647 ....`n.._...G...
16598: ffe68779 ffa9202e ff694527 ff8a4335 y.... ..'Ei.5C..
165a8: ffa76f64 ff493329 ffc0b5af ff89575f do..)3I....._W..
165b8: ffc75543 ffa9462d ff9f9789 ffab603f CU..-F......?`..
165c8: ff882c1d ffc97948 ff27151b ffc69482 .,..Hy....'.....
165d8: ff69282f ffe6b669 ffdfd484 ff48151b /(i.i.........H.
165e8: ffc89364 ffe66e5b ffc14715 ffe4c4bc d...[n...G......
165f8: ff98371e ffc66343 ffe1e4e8 ff73542a .7..Cc......*Ts.
16608: ff673a3e ffb7532b ff872b32 ffe68a60 >:g.+S..2+..`...
16618: ff19141e ffd68448 ff38373f ffea9964 ....H...?78.d...
16628: ffd69881 ff875f47 ff592621 ff37161a ....G_..!&Y...7.
16638: ffe65550 ff886e77 ffd8a894 ffa97a73 PU..wn......sz..
16648: ff571922 ffeba872 fff6f3de ffa3a59e ".W.r...........
16658: ffe03d49 ff671c24 ffa28c94 ffa86254 I=..$.g.....Tb..
16668: ffecc483 ffd76e48 ffa9473f ffa93a38 ....Hn..?G..8:..
16678: ffd5d4d6 ffa77937 ffe76254 ff595861 ....7y..Tb..aXY.
16688: ff884648 ffd6b4a7 ffb0999a ff9b5036 HF..........6P..
16698: ff782620 ff392328 ffb3b5b4 ffe77a45 &x.(#9.....Ez..
166a8: ffe8b596 ff593331 ffd87a46 ffc19aa2 ....13Y.Fz......
166b8: ff160c16 ffb1887e ff886263 ff797679 ....~...cb..yvy.
166c8: ff762930 ffc13d43 ff973c30 ff79362d 0)v.C=..0<..-6y.
166d8: ff67474c ff994530 ffbfb560 fff7975f LGg.0E..`..._...
166e8: ffd7624b ffc9875c ff952d18 ffe87959 Kb..\....-..Yy..
166f8: ffc04945 ff94968f ff9c9729 ffebddae EI......).......
16708: ffc0aa64 ffe99a78 fff3ead1 ffc56232 d...x.......2b..
16718: ffd8343e ff685a61 ffda9842 fff1643e >4..aZh.B...>d..
16728: ff928678 ffd8b859 ffc67a62 ffe4dcdd x...Y...bz......
16738: ff867c7c ff574a54 ffdaa94f ffd58a7b ||..TJW.O...{...
16748: ffafa9a4 ffd9a57b ffd6cdcd ff766b6f ....{.......okv.
16758: ffecd27c fff7b894 ffa99931 ff84766c |.......1...lv..
16768: ffe1cb82 ffd85019 fff5b57b ffb96d49 .....P..{...Im..
16778: ffbb7947 ffac2b34 ffd7895e ffa48654 Gy..4+..^...T...
16788: ff972129 ff570c18 ffc3aaaf ffede6bf )!....W.........
16798: ffacac64 ff370815 fff9a55c ff7b4432 d.....7.\...2D{.
167a8: ffc1bcbf fff69b7e ff78575a ffb76e5f ....~...ZWx._n..
167b8: ff99614b ffb97a64 ff771a22 ff994747 Ka..dz..".w.GG..
167c8: ff986266 fff68745 fff6a996 ff77121c fb..E.........w.
167d8: fff7964c ffd8544a fffbc7b6 ff783a40 L...JT......@:x.
167e8: fffa875f fff5a67a ffae8b97 ff78484a _...z.......JHx.
167f8: fff8d7bb fffbfaf8 fff2c89a ffeeebeb ................
16808: fffb6e49 ffb7624f fffb6459 ffd97965 In..Ob..Yd..ey..
16818: ff883930 ff973747 ff483942 ff291825 09..G7..B9H.%.).
16828: ffe4da9b ff481725 ffd79d99 ff381825 ....%.H.....%.8.
16838: fff75652 ff995249 ffe5bcb4 ff5a373e RV..IR......>7Z.
16848: ff98944c ffd99566 fffcd2d4 ffb7584e L...f.......NX..
16858: ff97595d ffc3343f ffdc494b ff95786b ]Y..?4..KI..kx..
16868: ffb9613b ff982931 fff97a43 ffd03c46 ;a..1)..Cz..F<..
16878: fffb785b ff997b7b ffa63c23 ffc79d8b [x..{{..#<......
16888: ffdadbdf ff885350 ff9f9b96 ffeab97a ....PS......z...
16898: ffb7553a ff572a2f ffd7aba7 ffd9babb :U../*W.........
168a8: ff382938 ff8e8b89 ffdbbb69 ffecd7a1 8)8.....i.......
168b8: fff8b8ab ff966f68 ffab6c51 ffd86f5d ....ho..Ql..]o..
168c8: fffb6e5b ff997077 ffd56331 ffd14848 [n..wp..1c..HH..
168d8: fffc5a44 ffdccc73 ff4b4b54 ffc38c7a DZ..s...TKK.z...
168e8: ffc6ac9f ff2b2c37 ffcbcbcf ff6b6b6f ....7,+.....okk.
168f8: 70707070 70707070 70707070 70704870 pppppppppppppHpp
16908: 48487070 36363648 e90c69cb 7744442d ppHHH666.i..-DDw
16918: 771212e9 133179c8 c8763113 133179c8 ...w.y1..1v..y1.
16928: e2e23131 407e40e2 40e2e2e2 25c531e2 11...@~@...@.1.%
16938: 30c785a2 0d76b35e 46464646 404040dd ...0^.v.FFFF.@@@
16948: d1135e5f 5f762bb3 c876765f 9ca240c8 _^...+v__vv..@..
16958: e714c156 bd0439bd 9c263ae7 140404a7 V....9...:&.....
16968: 7be0bce7 8047efef f3bc3d80 569c4733 ...{..G..=..3G.V
16978: 5c56c1c1 9ce79cee 56ef39f9 9c86f93a ..V\.....9.V:...
16988: 0e0ec785 9ccc55c7 c156e74b 9f35a2c2 .....U..K.V...5.
16998: 9f9f9f9f 339f9f9f 67672033 20677979 .......33 ggyyg
169a8: dc132020 1e126717 7070704e 70707070 ...g..Nppppppp
169b8: 70707070 70487070 48487070 36364848 ppppppHpppHHHH66
169c8: 694e0c36 2b2b2d69 744e1e2b 3179c877 6.Nii-+++.Ntw.y1
169d8: 7631315e 3179c8c8 e2313113 3440e2e2 ^11v..y1.11...@4
169e8: e2313140 9f9fd731 c72825c5 76b35e30 @11.1....%(.0^.v
169f8: 4634340d 40407e46 13b37640 2b2bb3d1 .44FF~@@@v....++
16a08: 40765f5f 6e407676 86c1869c f9e73904 __v@vv@n.....9..
16a18: 559c3955 ee9c869c f4bc5c14 4783ef7b U9.U.....\..{..G
16a28: bc625e80 044720f3 c1c1c186 c28304f9 .^b.. G.........
16a38: 9c39f9e7 a7f9ccc1 35354b9c a75cd535 ..9......K555.\.
16a48: 565c55ef 3cd5efc1 7d7d7d7d 05050505 .U\V...<}}}}....
16a58: c59f9fa0 33333333 dc333333 77136e17 ....3333333..n.w
16a68: 7070740d 70707070 70707070 36487070 .tppppppppppppH6
16a78: 48707048 cb364848 4e4ecb36 bb1e1e0c HppHHH6.6.NN....
16a88: 4ec82bb3 2bc87777 79797979 79c8c876 .+.Nww.+yyyyv..y
16a98: 31131331 40e2e231 1331e240 13c5af33 1..11..@@.1.3...
16aa8: 28f3e831 b35ee8f3 34340d76 7e7e4646 1..(..^.v.44FF~~
16ab8: b3764040 2bb3d113 76315f2b 40767640 @@v....++_1v@vv@
16ac8: 86a79c6e e7393a56 f955553a 9c86e726 n...V:9.:UU.&...
16ad8: b59c83ee 83efbce0 7cb35e4b 6e13f3e0 ........K^.|...n
16ae8: c1c186e7 a73a3ac1 550455e7 0483c19c .....::..U.U....
16af8: 67a2e73a 5c55a2a0 5c9e14a7 2683c156 :..g..U\...\V..&
16b08: 3c3c3cd5 7d7d3c3c 9f350505 9fdcdc9f .<<<<<}}..5.....
16b18: 3113c5c5 33336e0e 700d0d34 70707070 ...1.n334..ppppp
16b28: 70707070 48707070 70704836 36484848 pppppppH6HppHHH6
16b38: 1e6936cb bb790c0c c82bbbbb c877744e .6i...y...+.Ntw.
16b48: 2b2bc8c8 76c8c8c8 13133179 31313131 ..++...vy1..1111
16b58: c53176e2 7613c5af 25e83176 b3e841f3 .v1....vv1.%.A..
16b68: 340d76b3 34343434 5f114040 b3d1d1b3 .v.44444@@._....
16b78: 3131762b 76767676 c2e7f340 04a7c1c0 +v11vvvv@.......
16b88: 55553a04 86e72604 9ccc8d3a c2bce0b8 .:UU.&..:.......
16b98: b35e4bcc d13de07c c1a7396e 8383c1c1 .K^.|.=.n9......
16ba8: 042639a7 14c19c55 9f4b9ee7 99853564 .9&.U.....K.d5..
16bb8: 9e14a75c 83c186e7 7d3cd526 7d3c3c3c \.......&.<}<<<}
16bc8: a005057d 33dc9f9f 13dcc5dc 0d794579 }......3....yEy.
16bd8: 0d74680d 70707070 70707070 70707070 .ht.pppppppppppp
16be8: 70704836 36484870 cfcbcbcb 2b1e6912 6HpppHH6.....i.+
16bf8: 2b6dbbbb 7774122b 762b2bc8 c8c8c876 ..m++.tw.++vv...
16c08: 13317976 13313113 9f133131 407933af vy1..11.11...3y@
16c18: 790d7676 5ee8e8e8 0d76b3b3 34343434 vv.y...^..v.4444
16c28: 11407e34 1313b35f 31767967 76767631 4~@._...gyv11vvv
16c38: 390e7676 c1c156ef 39cc043a 39260426 vv.9.V..:..9&.&9
16c48: cc8def86 bce0b89c 5e4bcc5c 3dbc7c64 ........\.K^d|.=
16c58: a7550ed1 a7c1c1c1 26e7a7cc 569c55ee ..U........&.U.V
16c68: 35475583 2149f1b0 14143a9c c186e79e .UG5..I!.:......
16c78: 3cd52683 7d7d7d7d 3505057d dc9fa035 .&.<}}}}}..55...
16c88: 13133333 0d767979 12743379 70707068 33..yyv.y3t.hppp
16c98: 70707070 70707070 70704848 36484870 ppppppppHHpppHH6
16ca8: cbcbcb36 c80c3636 d344bb2b 7412bb79 6...66..+.D.y..t
16cb8: 792bc877 76797979 3179c8c8 13131313 w.+yyyyv..y1....
16cc8: af9f1331 763113dc e6344040 3131e22c 1.....1v@@4.,.11
16cd8: 7679b35e 34340d0d 40403434 13b35f11 ^.yv..4444@@._..
16ce8: 76b31313 7679315f 417676c8 c1c11439 ...v_1yv.vvA9...
16cf8: 1404ccc1 26ee4be7 8d83a755 f4b89c3a .....K.&U...:...
16d08: 4bcce7bc bc7cb35e 260e133d c1c1c183 ...K^.|.=..&....
16d18: e7a79c83 e755e726 0e4befa7 a2f2f5dc ....&.U...K.....
16d28: 143acc5c ef55e714 d52683c1 a27d7d3c \.:...U...&.<}}.
16d38: 05057d7d 9f356e35 311333dc 40767979 }}..5n5..3.1yyv@
16d48: c87d3334 70701268 70707070 70704870 43}.h.pppppppHpp
16d58: 70707070 48487070 cbcbcb36 773636cb ppppppHH6....66w
16d68: 44bb2b76 1ee91ebb 2bc87774 31317979 v+.D....tw.+yy11
16d78: 79c8c879 e8e81331 c5b19fe8 31313131 y..y1.......1111
16d88: 647e0d40 5e406fc1 b35e5e5e 34340d76 @.~d.o@^^^^.v.44
16d98: 40343434 b35f4040 5e131313 31313176 444@@@_....^v111
16da8: 76767631 56ef3941 f914c1c1 397b5ca7 1vvvA9.V.....\{9
16db8: 83a72626 273a9c8d 3a39e0f4 b9b3804b &&....:'..9:K...
16dc8: c5133dbc c1c18355 869c83c1 55e7269c .=..U........&.U
16dd8: c75c3ae7 33e633dc 3a145cd5 bde714cc .:\..3.3.\.:....
16de8: 26ef865c 7d7d3c3c 05057d7d 35491735 \..&<<}}}}..5.I5
16df8: 1333dc9f 0d0d7979 c513680d 7074680d ..3.yy...h...htp
16e08: 48487070 70364870 70483670 48707070 ppHHpH6pp6HppppH
16e18: cbcbcb48 cbcbcbcb bb2b7677 771e6d44 H.......wv+.Dm.w
16e28: 77771277 3179792b c8c87931 e8131379 w.ww+yy11y..y...
16e38: d78e8ec5 31e2e231 024040e2 40a6c1be ....1..1.@@....@
16e48: 5e5e5e5e 340d76b3 0d346834 5f404040 ^^^^.v.44h4.@@@_
16e58: 1313135e 31315e5e 795e3131 5c264176 ^...^^1111^yvA&\
16e68: a7c1c186 7b9ca7f9 83264b55 3a048da7 .......{UK&....:
16e78: bdf4f44b 5e807b3a 5b3de030 c18699af K...:{.^0.=[....
16e88: 9c14c1c1 554b9c86 4be75555 662ce89f ......KUUU.K..,f
16e98: 145c4b33 e714cc3a efcc9ebd 7d3c7d85 3K\.:........}<}
16ea8: 057d7d7d 6e176e05 33dc9f35 0d767913 }}}..n.n5..3.yv.
16eb8: 79680d0d 74687413 70707070 48367070 ..hy.thtpppppp6H
16ec8: 36367070 48707048 cbcb3648 69cbcbcb pp66HppHH6.....i
16ed8: bb1e6936 bb44d344 777777c8 792b2b77 6i..D.D..wwww++y
16ee8: c8c87979 e8137979 e8257d8e 40403113 yy..yy...}%..1@@
16ef8: 4040e2e2 60c1fe68 5e5e3176 0d76b35e ..@@h..`v1^^^.v.
16f08: bb72680d 11e27eb2 13135e5f 315ee813 .hr..~.._^....^1
16f18: 5ee85e31 aa877931 c1c1869e 3aa7f9a7 1^.^1y.........:
16f28: 4b4b267b ee26a783 f4f44b3a 307b9cad {&KK..&.:K....{0
16f38: 17e0e85e 83c210b1 a7c1c156 4b9c869c ^.......V......K
16f48: 477b5555 6613dc0e 5c4bdc24 cc3a9ccc UU{G...f$.K\..:.
16f58: 5cbdade7 7d7dd55c 7d7d7d7d 49173505 ...\\.}}}}}}.5.I
16f68: dc9f9f35 76797913 340d0d0d 68687468 5....yyv...4hthh
16f78: 70707068 70707070 48703670 70484836 hpppppppp6pH6HHp
16f88: cbcb4848 cbcbcbcb 69cbcbcb 2b44d32d HH.........i-.D+
16f98: 770dc8ab 2b2b7777 c8c8792b 9f137979 ...www+++y..yy..
16fa8: d7418e8e 344031e8 40e2e27e 5642e534 ..A..1@4~..@4.BV
16fb8: 5e5fd156 76b35e5e 2eb20d0d 7e7766c1 V._^^^.v.....fw~
16fc8: 135e31e2 5ee81313 13133131 6e311313 .1^....^11....1n
16fd8: c156e7aa 863a86c1 4b4b7bcc 39a7cc4b ..V...:..{KKK..9
16fe8: e04bf939 7be77bc6 27dc5e30 5510fc85 9.K..{.{0^.'...U
16ff8: c1c1569c 9c86f9a7 bcad4b4b 67dce80e .V......KK.....g
17008: d50eb4ac 9c9c3a5c 85ade7cc 7dd59e9e ....\:.........}
17018: 7d7d7d7d 4935057d dc9f3535 79791333 }}}}}.5I55..3.yy
17028: 0d0d4076 6868340d 70707474 70707070 v@...4hhttpppppp
17038: 70487070 4836cf48 cb484870 cb15cbcb ppHpH.6HpHH.....
17048: 0ccbcbcb 44d32d0c 7979ab2b 2b77c840 .....-.D+.yy@.w+
17058: 7931792b 8edc7979 4141258e 7e1131d7 +y1yyy...%AA.1.~
17068: 11117e34 c3e10240 4053c1c3 b35e5e5e 4~..@.....S@^^^.
17078: 340d0d76 42c142bb 5e3134f1 13131313 v..4.B.B.41^....
17088: 13135e5e dcc535e8 569c4b27 3a86c1c1 ^^...5..'K.V...:
17098: 7b7bcca7 a73a4b4b 4bee2639 e7bcc6e0 ..{{KK:.9&.K....
170a8: 8ac5b97b 5b715255 c156ee47 86f9a7c1 {...URq[G.V.....
170b8: bc7b4b3a 1313e85d 0ed11ab4 9c3ae7d5 :K{.].........:.
170c8: ad5ccc9c a2555585 7d7d7d7d 05057d7d ..\..UU.}}}}}}..
170d8: 9f9f3505 793113dc 76767979 76767676 .5....1yyyvvvvvv
170e8: 70120d0d 48707070 70707070 36cfcf70 ...ppppHppppp..6
170f8: 36487036 69cbcbcb e9cb6969 6d4477c8 6pH6...iii...wDm
17108: 132bd344 c80d795e dc13792b 8eaf1313 D.+.^y..+y......
17118: 2541c525 11e2e841 117e347e 94684011 %.A%A...~4~..@h.
17128: 10c1c3c3 5e5e5e40 460d76b3 c172b240 ....@^^^.v.F@.r.
17138: c894c1c1 131313e2 135e5e5e dc3939e8 ........^^^..99.
17148: 9c47dcdc 56c1c156 27cca7f9 9c277bb8 ..G.V..V...'.{'.
17158: 394b39a7 bcc6e07b d5f37b55 20b13755 .9K9{...U{..U7.
17168: 86396ed1 f9a7c1c1 bc27efa7 e813e87f .n9.......'.....
17178: 13ac6679 f9e7856e 5c3a5c5c d5d585bd yf..n...\\:\....
17188: 7d7d7dd5 05050505 35350505 1313dc35 .}}}......555...
17198: 79797979 79797979 c8797979 70707070 yyyyyyyyyyy.pppp
171a8: 70707048 cbcf3600 48483636 cbcbcb36 Hppp.6..66HH6...
171b8: cb696969 bb77c877 ababb3bb 0d763113 iii.w.w......1v.
171c8: 13792bc8 9fb19fc5 41d7e813 e245e841 .+y........AA.E.
171d8: 7e347e11 68401111 c1c3c32e 5e31c896 .~4~..@h......1^
171e8: 0d76b35e 5940460d c1c1c194 2079d160 ^.v..F@Y....`.y
171f8: 5eb3b3d1 9f9895e8 47313113 c1c1869c ...^.....11G....
17208: cca73a56 17b8bc27 b839a79c d0f4b8aa V:..'.....9.....
17218: 21b69ebc 205bb195 395dd1d1 a7c1c1a7 ...!..[ ..]9....
17228: 273aa7f9 1313dc3d be1a79e8 e7ad47e8 ..:'=....y...G..
17238: 3a5ce79c a285bd5c 7da24bd5 a005057d ..\:\....K.}}...
17248: 350505a0 13130e6e 79767979 31797979 ...5n...yyvyyyy1
17258: 5e5e315e 70707079 70704848 36004870 ^1^^ypppHHpppH.6
17268: 48cb36cf cbcbcb48 69696915 c8c869cb .6.HH....iii.i..
17278: b3b32b1e 4076b32b 79797940 138e8e13 .+..+.v@@yyy....
17288: 31317979 31314531 3440e2e2 40e2117e yy111E11..@4~..@
17298: c3c360c8 31d1c3c1 7679b313 46460d0d .`.....1..yv..FF
172a8: c1e47734 53c3c1c1 b3b31379 9fd59f5e 4w.....Sy...^...
172b8: 31311313 c1a70447 a73a56c1 b8e04bcc ..11G....V:..K..
172c8: 55a7e7b5 e0b5bce0 babaadf4 b320c54c ...U........L. .
172d8: 5db3d1b3 c1c18326 cc830486 13134127 ...]&.......'A..
172e8: e4d81313 adad5db4 e7e79c9e 85bd5c3a .....]......:\..
172f8: a285d5a2 a0057d7d a0a0a0a0 13339f9f ....}}........3.
17308: 0d2b7913 31797976 795e3131 70707979 .y+.vyy111^yyypp
17318: 70483648 480ce969 cb363670 cbcb4836 H6Hpi..Hp66.6H..
17328: 696915cb 794ecb69 abab6d77 40312b67 ..iii.Nywm..g+1@
17338: 13131376 13af8e33 79797979 e2317979 v...3...yyyyyy1.
17348: 4011e2e2 e2117e34 8f42e57e 53c1c342 ...@4~..~.B.B..S
17358: b37913e2 460d0d76 72a44034 c1c156c1 ..y.v..F4@.r.V..
17368: b37971c1 13d75eb3 795e135e a7046e76 .qy..^..^.^yvn..
17378: f956c1c1 e04b1414 14e7b8b5 bce06226 ..V...K.....&b..
17388: babaadbc 5e807cad b3d1b364 c1cc265d .....|.^d...]&..
17398: cc0486c1 31e8273a 24791331 ad47d860 ....:'.11.y$`.G.
173a8: e79c9e85 bd5c9ce7 85d5a285 7d7d7da2 ......\......}}}
173b8: a0a0057d 9f9fa0a0 79133333 760d0d0d }.......33.y...v
173c8: 5e793179 7079795e 36364870 0c0c7000 y1y^^yyppH66.p..
173d8: 367070cb cb484836 6969cbcb 4ecb6969 .pp66HH...iiii.N
173e8: bb1ee9c8 79b32b64 c5d71376 13c57d8e ....d+.yv....}..
173f8: 76767679 76797979 11e2e240 117e347e yvvvyyyv@...~4~.
17408: c3e57ee2 c1c3e4e4 79137610 0d0d7679 .~.......v.yyv..
17418: 5f403434 c3c16602 37c1c1c1 5e5eb3c8 44@_.f.....7..^^
17428: 315e5e5e ee6e7676 56c1c114 4b14ccf9 ^^^1vvn....V...K
17438: 39b5b5e0 bc414b3a adf0babd 80dabcbd ...9:KA.........
17448: 20b3645e 3a2641b3 0486c156 13179c9c ^d. .A&:V.......
17458: c8135e79 adc56aac 9c398585 5c9ce7e7 y^...j....9....\
17468: 4bd585bd 3c7dd5ad 7d7d3c3c a0a07d7d ...K..}<<<}}}}..
17478: 3333339f 0d2b6733 79790d0d b3b35e79 .3333g+...yyy^..
17488: 36367070 36000070 7048360c 48487070 pp66p..6.6HpppHH
17498: 69cbcbcb cb696969 abe9cbcb 1364642b ...iiii.....+dd.
174a8: c5133179 13c57d0f 76767913 79797976 y1...}...yvvvyyy
174b8: 11404076 7e347e40 f17ee211 c36060c1 v@@.@~4~..~..``.
174c8: 137696c1 0d767979 11403446 6077e211 ..v.yyv.F4@...w`
174d8: 565642c3 5e0d6fc1 5e795e5e 5d40765e .BVV.o.^^^y^^v@]
174e8: c1c1cc39 14ccf956 b5bce026 8ed59c26 9...V...&...&...
174f8: e0f0d699 dae07be0 b3645e80 2741b320 .....{...^d. .A'
17508: 86c186f9 49040404 31137913 f35ae4e5 .......I.y.1..Z.
17518: 558555bd 9c9ee75c d5bdbd9c 9595b685 .U.U\...........
17528: 216c2121 52525252 b13ce395 13339fa0 !!l!RRRR..<...3.
17538: 0d34c879 b3797676 700036b3 70487048 y.4.vvy..6.pHpHp
17548: 36363670 48707070 15cbcb48 69696969 p666pppHH...iiii
17558: e90c69cb 206413bb c5137920 d7c58e0f .i....d y......
17568: 76311313 79797676 11404079 347e4011 ..1vvvyyy@@..@~4
17578: 02e21134 fe60c15a d856c1c3 76797931 4...Z.`...V.1yyv
17588: 40340d0d 11315f11 8fe4c12f 66c156c3 ..4@._1./....V.f
17598: 765e5e0d 0d765e5e 56cc3941 3af956c1 .^^v^^v.A9.V.V.:
175a8: e0f426cc 219ebdb5 bc9eba65 e0bcc6c6 .&.....!e.......
175b8: 195e75da d7b32064 c1860427 ee048d86 .u^.d ..'.......
175c8: 1379136e f542e179 85555547 9e9ee755 n.y.y.B.GUU.U...
175d8: 99993a3a d2baf06c 3c4c9521 7d7d3c3c ::..l...!.L<<<}}
175e8: 4c3c7d7d fbce5252 c879139f 0d34340d }}<LRR....y..44.
175f8: 48697976 44480000 3648000c 70704836 vyiH..HD..H66Hpp
17608: cbcb4848 69696969 4e126915 d1642be9 HH..iiii.i.N.+d.
17618: af132041 41d7c50f 3113e8c5 79767679 A .....A...1yvvy
17628: e2767979 7e1111e2 e2113434 96c16602 yyv....~44...f..
17638: c1c1c31a 79137671 340d0d76 315f5f40 ....qv.yv..4@__1
17648: 562e3480 568f6060 5e406fc1 76767676 .4.V``.V.o@^vvvv
17658: 3a55410d f956c186 e026ccf9 ba997bbc .AU:..V...&..{..
17668: 7bbc0f65 bcc6c6e0 5e75dae0 b3206419 e..{......u^.d .
17678: a70427d7 8d8d86c1 79670e26 6094c813 .'......&.gy...`
17688: 55394b5b e75c554b c0a78399 2121f0ba [K9UKU\.......!!
17698: 7d7d3cd5 a0a0a005 339f9fa0 4c7df233 .<}}.......33.}L
176a8: 337d5252 74c8c876 70c87468 48007048 RR}3v..tht.pHp.H
176b8: 7048e91e 70483636 cb484870 6969cbcb ..Hp66HppHH...ii
176c8: 69690c69 b31ee969 b1c5c5c5 d713c593 i.iii...........
176d8: e8c54141 76763113 e2797979 11e2e2e2 AA...1vvyyy.....
176e8: 1134347e c19434e2 c1421afe 1376acc1 ~44..4....B...v.
176f8: 0dc87979 31114034 64e25e31 60968f42 yy..4@.11^.dB..`
17708: 71c1c1c3 76767634 55e80d76 56c1a73a ...q4vvvv..U:..V
17718: 55cc04f9 babaadbc e020afb6 c6c6deb8 ...U...... .....
17728: 7550f4bc 2064195f 8d17e8b3 8da75683 ..Pu_.d .....V..
17738: 130e4b92 60643167 39bdc56a c29e5555 .K..g1d`j..9UU..
17748: a7a7c0ba a285b6c2 35057da2 9f9f9f35 .........}.55...
17758: dcc59f9f 33333333 523cb19f c82bf2e3 ....3333..<R..+.
17768: 74597477 00000070 3669cb00 70364870 wtYtp.....i6pH6p
17778: 48487070 e91e69cb 690c6969 791e0c69 ppHH.i..ii.ii..y
17788: 9325c5d7 e8d7c58e c541c5d7 3131e8d7 ..%.......A...11
17798: 79797979 e2e2e276 34347e11 2e34e240 yyyyv....~44@.4.
177a8: 601afe56 d1c3c1c1 c8797979 e240340d V..`....yyy..4@.
177b8: 5e5e3131 96c1e140 c1c36060 763471c1 11^^@...``...q4v
177c8: e8c8c876 c1a7f926 cc04f956 b6baf0c2 v...&...V.......
177d8: 5e207f7b c6deb8f4 d0f4bcc6 64195f80 {. ^........._.d
177e8: 1713b3b3 a756cc8d 7d4b278d f5761333 ......V..'K}3.v.
177f8: bd41e642 c0f0e739 9899c2c0 d5ad5c14 B.A.9........\..
17808: 3505a2a2 dc9fa035 9fa0359f 791313dc ...55....5.....y
17818: c5331367 b15237a0 74770d2b 70700012 g.3..7R.+.wt..pp
17828: 36700c70 00004836 48707070 e9776948 p.p66H..pppHHiw.
17838: 690c0c0c 77e90c69 4c252013 c5d7138e ...ii..w. %L....
17848: c5c5d7e8 41e8e8dc 79797913 e2407679 .......A.yyyyv@.
17858: 347ee2e2 68e24034 1afec3ac c1c156fe ..~44@.h.....V..
17868: 79797953 400d0dc8 e83131e2 ac0d315e Syyy...@.11.^1..
17878: 606096c3 53c1c1c3 c8c87646 14f94b5e ..``...SFv..^K..
17888: 9c3a5656 bcb6c0a7 b362e0bc b5b562b3 VV:.......b..b..
17898: f4bcc6f4 195ff7d0 13b3b319 863a926b ......_.....k.:.
178a8: 26278da7 c81367a0 f3e1e494 bac0ef9e ..'&.g..........
178b8: 559e5c99 859c149c 05a2a2a2 9f9fa035 .\.U........5...
178c8: 8e359f9f 13dc9fa0 79767979 fbaf3313 ..5.....yyvy.3..
178d8: 462b0f52 70364677 48364844 70703670 R.+FwF6pDH6Hp6pp
178e8: 70707000 69776970 69e91e69 e94ee90c .ppppiwii..i..N.
178f8: 4caf672b 1313c58e d7d7d7e8 0edce8dc +g.L............
17908: 797979dc 40767979 40e2e2e2 e2407e0d .yyyyyv@...@.~@.
17918: fec3ac68 c1421a1a b37665c1 0d0dc879 h.....B..ev.y...
17928: 3131e240 e2315e5e 6060c3e5 c1566060 @.11^^1...````V.
17938: 2b46b4c1 044b31c8 a75656cc e0e7ccc0 ..F+.1K..VV.....
17948: 62e0def4 b862b3b3 e0c6f4b5 5ff7d0f4 ...b..b........_
17958: 64641919 f99216b3 278da786 5e67c54b ..dd.......'K.g^
17968: f1fefe64 5cc0c0bd 55e75555 9c140455 d......\UU.UU...
17978: 85d5a24b 9f9f3549 a09f9f9f c5a08e35 K...I5......5...
17988: 79797913 3367c840 b1520faf e976462b .yyy@.g3..R.+Fv.
17998: 0036cb48 70707036 36707070 e9e97036 H.6.6pppppp66p..
179a8: 2dbb6d15 4e0ce92d 93af79c8 31c5c525 .m.--..N.y..%..1
179b8: 13131379 dce8d7d7 797931e8 76797979 y........1yyyyyv
179c8: e2e2e2e2 e27e7e40 c31a34e2 601a1afe ....@~~..4.....`
179d8: d1c3c1c1 0d0d7979 31e2400d 315e5e31 ....yy...@.11^^1
179e8: c35a0d5e e4606096 6442c156 4b5ec80d ^.Z..``.V.Bd..^K
179f8: c156149c 2604e783 e0def4f4 6bb3b3b9 ..V....&.......k
17a08: c6c6de7b f7d0f4e0 b31919c9 925db364 {...........d.].
17a18: 8d8686f9 67136b27 6ae4f576 e799ba71 ....'k.gv..jq...
17a28: 39554b55 14e75555 85a2853a 0e35a2ad UKU9UU..:.....5.
17a38: dc9f9f35 358e9f9f 7913c59f 0d0d7931 5......5...y1y..
17a48: fbb1c579 2b2bafea 3600cbcb 70703670 y.....++...6p6pp
17a58: 70707070 69483648 6d1e0ccb 77e9e90c ppppH6Hi...m...w
17a68: 935bc82b 13d733c5 13137976 e8d7d713 +.[..3..vy......
17a78: 79793113 79797979 e2e2e276 31794031 .1yyyyyyv...1@y1
17a88: fe77e2e2 1a1afec3 c1c1c31a 407940be ..w..........@y@
17a98: e240340d 5e803131 bb5e315e 60968f60 .4@.11.^^1^.`..`
17aa8: c156e460 130d7760 568683bd 8d269c56 `.V.`w.....VV.&.
17ab8: c4f4f427 20b3b9e0 c6deb517 c6f4e0f8 '...... ........
17ac8: 64bb19f7 f6b3b3b3 86a70427 311617ee ...d....'......1
17ad8: 606679b3 4badb166 554b3939 e75555e7 .yf`f..K99KU.UU.
17ae8: 4b55cc14 35a2ad85 dca00535 8e35dcdc ..UK...55.....5.
17af8: dc9f358e 76131313 c5793434 5b524cb1 .5.....v44y..LR[
17b08: 703600c8 70703636 70707070 48707048 ..6p66ppppppHppH
17b18: 6de9cb48 c8771e2d 0ff279b3 132067d1 H..m-.w..y...g .
17b28: 5e76c879 13131313 79793113 79137979 y.v^.....1yyyy.y
17b38: 31e27979 6edc3131 0de2e245 1afec3fe yy.111.nE.......
17b48: c1e41a1a 31798fc1 7e340d76 5e313111 ......y1v.4~.11^
17b58: 13315e5e 96c35179 8f606060 772ec1c1 ^^1.yQ..```....w
17b68: ccefba37 27f95686 f4f42692 b3b9e0c4 7....V.'.&......
17b78: dec43020 f4e0d0c6 bb19dac6 b3b313b3 0..............
17b88: 86042741 62170486 acb4f213 bc415afe A'.....b.....ZA.
17b98: 4b39394b 5555e755 55cccc39 47ad5555 K99KU.UU9..UUU.G
17ba8: 8e7d8e35 35dcdc9f 35358e8e 203131c5 5.}....5..55.11
17bb8: 68347613 ea0fc579 6970b3fb 70700036 .v4hy.....pi6.pp
17bc8: 70707070 707036cf 0c693648 77771e0c pppp.6ppH6i...ww
17bd8: 0faf792b 79677967 0dc82b79 79797976 +y..gygyy+..vyyy
17be8: 79797979 13dc1379 e2797931 b80e3131 yyyyy...1yy.11..
17bf8: e2e24041 fec3fe0d fe1a1a1a 53c1c1c1 A@.............S
17c08: 34407640 31e24034 31315e5e acbbe85e @v@44@.1^^11^...
17c18: 6060968f c1c14260 39852ce6 f956a73a ..```B...,.9:.V.
17c28: e0272627 62e0c4f4 50b3b3b3 f4d0c6f4 '&'....b...P....
17c38: 1950f4f4 d7d7b3bb 041730d1 170486a7 ..P......0......
17c48: 24e30f3d 41f51a60 26264bbc 55394b4b =..$`..A.K&&KK9U
17c58: 14cc3955 85559e39 7d053547 dcdc3505 U9..9.U.G5.}.5..
17c68: 8e35359f 7979c535 7613c513 afb37468 .55.5.yy...vht..
17c78: 70f2ea37 70003636 70707070 70cbcf48 7..p66.pppppH..p
17c88: cb694870 771e1e0c 0ff2c82b 79792b67 pHi....w+...g+yy
17c98: c8791313 c80d0d77 79797979 e8dc6779 ..y.w...yyyyyg..
17ca8: 79313113 b8353131 e2407687 c3ac68e2 .11y115..v@..h..
17cb8: fe1a1afe c1c1421a 40764096 e240340d .....B...@v@.4@.
17cc8: 31315e31 b3135e31 6096c30b c3e4e460 1^111^.....``...
17cd8: 5daec1c1 56a7f939 272727f9 e0def4e0 ...]9..V.'''....
17ce8: 1919b362 50c6f480 d0c6f4f4 6e1319c9 b......P.......n
17cf8: 17e8d10e f986a704 5b52b6aa d8ac6066 ..........R[f`..
17d08: 264b475d 554b4b26 cc395555 e70404a7 ]GK&&KKUUU9.....
17d18: 0505a285 dc35057d 8e8e9fdc 79139f8e ....}.5........y
17d28: c5c51376 c8687613 fb52b120 70700070 v....vh. .R.p.pp
17d38: 70007070 70483836 e9484870 7777e90c pp.p68HppHH...ww
17d48: fb5bab2b 2b2bc803 79202079 0d0d77c8 +.[...++y y.w..
17d58: 31317976 13677979 31313131 6ee8e279 vy11yyg.1111y..n
17d68: 40403145 2e34e2e2 fe1afec3 c1fe1afe E1@@..4.........
17d78: 7e2cc1c1 34340d40 315ee240 135e3131 ..,~@.44@.^111^.
17d88: 8f2e2b13 e4606096 42c1c360 a7f926d8 .+...``.`..B.&..
17d98: 2717f956 bce0e027 19b3c6bc c6d07619 V..''........v..
17da8: c6f4f450 5db35ec6 13d1e817 86a78d6b P....^.]....k...
17db8: dc85ba83 6afefe2b 4b4b6e67 4b4b2626 ....+..jgnKK&&KK
17dc8: 39555555 f99ca7cc 05a28504 35057d7d UUU9........}}.5
17dd8: 8e9fdcdc 13dca08e d779c879 0d13c5c5 ........y.y.....
17de8: 375b2b74 000000e3 cf480070 690c3636 t+[7....p.H.66.i
17df8: 36367070 77e9e90c 37b02b2b 77c8c8d1 pp66...w++.7...w
17e08: 201379c8 0d77c879 1331790d 79797931 .y. y.w..y1.1yyy
17e18: 31131379 31e27931 40313131 34e2e240 y..11y.1111@@..4
17e28: 1afec32e 1afe1afe 96c1c142 3440400d ........B....@@4
17e38: 31114034 5e313131 72132013 60609642 4@.1111^. .rB.``
17e48: 56e4e460 9861fec1 173a56a7 b8de2717 `..V..a..V:..'..
17e58: 5ec6e0b8 7519bbbb f4c6f7d0 41f7c6c6 ...^...u.......A
17e68: d1d77c6b a7ee4920 164b1456 1ae4b4e2 k|.. I..V.K.....
17e78: 4b6e3166 4b26264b 5555554b 3a863a39 f1nKK&&KKUUU9:.:
17e88: 054b04f9 057d7d7d c5e8dc0e 9fc5a09f ..K.}}}.........
17e98: 76c86705 d7c5c513 79777479 0000102c .g.v....ytwy,...
17ea8: 00707000 36361e0c cb707070 e90ccb0c .pp...66ppp.....
17eb8: 37d82b79 0d2b2b5b 13792b77 0dc87913 y+.7[++.w+y..y..
17ec8: 79790d0d 79793131 1313e831 e2793131 ..yy11yy1...11y.
17ed8: 454531e2 e2117e76 fec36a34 1a1a1a1a .1EEv~..4j......
17ee8: c156fe1a 40342cc1 117e3434 315fe25f ..V..,4@44~._._1
17ef8: 4cafc513 fee42eb4 60e46060 57c1c1e4 ...L....``.`...W
17f08: 3a868609 b8271727 c6e0deaa bbbbbbb3 ...:'.'.........
17f18: 628075c9 f8c6c6f4 d7b9c4de 9c92f220 .u.b........ ...
17f28: 173a5686 60be768b 6e31e11a 26264b4b .V:..v.`..1nKK&&
17f38: 55554b26 863a3955 d5e7f93a 7d7d7d05 &KUUU9:.:....}}}
17f48: e8e89f05 c5c5dce8 c8793c8d 5e1331c8 .........<y..1.^
17f58: 74747679 00e3d119 cf007000 1e6d70e9 yvtt.....p...pm.
17f68: 70707070 0c69e936 37d8642b 0d2b2b5b pppp6.i.+d.7[++.
17f78: 79c8c8c8 c87913b3 c80d0d0d 79797979 ...y..y.....yyyy
17f88: 130e0e13 79313131 e831e2e2 11404031 ....111y..1.1@@.
17f98: c39434e2 1a1a1afe 8f1afe1a 46e4c1c1 .4.............F
17fa8: 34344040 5e315f40 4c37afe8 c372130f @@44@_1^..7L..r.
17fb8: 6060601a c14260e4 56cc81c1 b8b5273a .```.`B....V:'..
17fc8: e0f4e0aa bbbb5ec6 5ec97474 c6c6c6b9 .....^..tt.^....
17fd8: 50b527c4 9c845bd7 f956a79c ac768b27 .'.P.[....V.'.v.
17fe8: 45b4acfe 4b4b4b5d 554b2626 9c555555 ...E]KKK&&KUUUU.
17ff8: 55e73aa7 7da27d49 e89f357d 131333dc .:.UI}.}}5...3..
18008: 79338d05 76760dc8 4674740d 6f644674 ..3y..vv.ttFtFdo
18018: 00707070 cf1e6900 4870700c 69e93670 ppp..i...ppHp6.i
18028: 37d1b3ab 772b2bb1 79c8760d 79202079 ...7.++w.v.yy y
18038: 0d0d0dc8 797979c8 13359f79 79313131 .....yyyy.5.111y
18048: 31e2e276 7e7e4031 94345f11 1a1afec3 v..11@~~._4.....
18058: fefefe1a c1c1c3fe 34400224 e8314034 ........$.@44@1.
18068: 0f4c4caf 775e13c5 60fe60fe 60e4e460 .LL...^w.`.``..`
18078: 5742c1c3 b5273a56 f4f4b5b8 bb5ec6f4 ..BWV:'.......^.
18088: 743874bb c6f83019 b592dec6 043cd7b9 .t8t.0........<.
18098: 56149295 b41d27f9 d12eace4 4b4b5ddc ...V.'.......]KK
180a8: 4b26264b 55555555 559ca79c 7d7d05a2 K&&KUUUU...U..}}
180b8: dc8e7d7d 6733dce8 79f2a067 400dc879 }}....3gg..yy..@
180c8: 68680d76 d8467474 00707010 48003648 v.hhttF..pp.H6.H
180d8: 707036e9 cf360c48 37d12b0c 77b31393 .6ppH.6..+.7...w
180e8: c80d7777 c5d71379 0d0d0d31 3179760d ww..y...1....vy1
180f8: 13dc1379 79793179 e2407679 0d40e2e2 y...y1yyyv@...@.
18108: 34e2117e 1afec3e6 1a1a1a1a c1601afe ~..4..........`.
18118: 7ebbc3c1 c5314040 c58e4c93 b3132033 ...~@@1..L..3 ..
18128: acc3e10d e4606060 c1c1e4e4 171494fe ....```.........
18138: c6de17de 5ec6c4c6 387474bb f880bb38 .......^.tt88...
18148: 8ddec6c6 65fb7c27 148a4171 b927f956 ....'|.eqA..V.'.
18158: 94ace4be 4b5d4131 26264b4b 55554b4b ....1A]KKK&&KKUU
18168: 9ccc0455 7d49494b 0e05057d 13dc13e8 U...KII}}.......
18178: 79676767 c8c87979 76131331 7459b246 gggyyy..1..vF.Yt
18188: 7070fcb4 44bb3600 70367070 69e97070 ..pp.6.Dpp6ppp.i
18198: 0f64ab0c 2b205b4c 77777777 411379c8 ..d.L[ +wwww.y.A
181a8: 0d76130e 31790d0d 79797931 79797979 ..v...y11yyyyyyy
181b8: 40767931 40e2e2e2 5f117e7e 60c35a02 1yv@...@~~._.Z.`
181c8: 1a1a1aac 1afefe1a 94c1c142 0f3331b2 ........B....13.
181d8: 13e8b137 13131313 e4ab76b3 6060fe1a 7........v....``
181e8: 4260e460 7ae6c1c1 de17de27 f4c4c6c6 `.`B...z'.......
181f8: 7474bb80 5ebb3838 dec6c6d0 5221268d ..tt88.^.....&!R
18208: 8ae8d1af 273a56cc ac60ac30 5ddc31be .....V:'0.`..1.]
18218: 264b4b4b 554b4b26 f9e75555 49a2d5e7 KKK&&KKUUU.....I
18228: 8e35057d 131313dc 67677913 c8797967 }.5......ygggyy.
18238: afafc579 596876d7 70fcb474 70007070 y....vhYt..ppp.p
18248: 703638e9 36704870 af2b1e69 b320c5ce .86ppHp6i.+... .
18258: 777777c8 1379c877 7613c50e 79400d0d .wwww.y....v..@y
18268: 79793131 79767979 76793179 e2e2e240 11yyyyvyy1yv@...
18278: 117e7e40 c3e17ee2 1a1aac60 1a1a1a1a @~~..~..`.......
18288: c156fe1a 37c572c1 313113af 13135e31 ..V..r.7..111^..
18298: 465eb35e 60ace494 e4e46060 c1c1c360 ^.^F...```..`...
182a8: 17de178c c4c6c6de 7419b9f4 74383874 ...........tt88t
182b8: c6c61d5e b6c2eede 5eb35e41 3a86cc49 ^.......A^.^I..:
182c8: ace4c527 dc452c1a 4b4b4b5d 4b4b2626 '....,E.]KKK&&KK
182d8: e755554b 49a255e7 35350549 1313dc35 KUU..U.II.555...
182e8: 79797913 79797979 7d255ec8 4613af8e .yyyyyyy.^%}...F
182f8: fcd85959 36000070 cf3669bb e9367070 YY..p..6.i6.pp6.
18308: d1abe936 b320afce 77777777 7976c877 6..... .wwwww.vy
18318: 13d7d713 400d0d76 79793179 76c87976 ....v..@y1yyvy.v
18328: 79797979 e2e24076 7e7e40e2 727ee240 yyyyv@...@~~@.~r
18338: 1aac6042 1a1a1a1a e41a1a1a e542c1c1 B`............B.
18348: 11e25f31 135e5f11 b3b35e13 2e42b440 1_..._^..^..@.B.
18358: 606060fe c16060e4 deb060c1 c6c6de17 .```.``..`......
18368: 1950f4c4 38387474 c6f7b374 9ec2adf4 ..P.tt88t.......
18378: b35e8016 863a495e 42be053a e8d8ac6a ..^.^I:.:..Bj...
18388: 4b4b5d41 4b26264b 554b4b4b a24b5555 A]KKK&&KKKKUUUK.
18398: 35350549 13e89f8e 79793113 79797979 I.55.....1yyyyyy
183a8: a233c82b 138e8e7d d8595946 707070a6 +.3.}...FYY..ppp
183b8: 361e6900 70707070 ab1e0ccd 1320b137 .i.6pppp....7. .
183c8: 77c877c8 b3b3c877 13137979 0d0dc831 .w.ww...yy..1...
183d8: 7979790d 76767979 79797976 e2407979 .yyyyyvvvyyyyy@.
183e8: 7e40e2e2 7ee2117e 1ae442e5 1a1a1aac ..@~~..~.B......
183f8: fe1a1a1a c1c1e41a 4011342e 5e5f1111 .........4.@.._^
18408: 79b3135e 60193179 6060ac1a 60e46060 ^..yy1.`..````.`
18418: 32c1c142 c6deb506 50f4c6c6 38747476 B..2.......Pvtt8
18428: 80b37438 9e99adc6 5ef78b27 f96e5eb3 8t......'..^.^n.
18438: a6a03aa7 132e6ae4 4b5d0edc 26264b4b .:...j....]KKK&&
18448: 4b4b4b4b 47855555 35350549 139f3535 KKKKUU.GI.5555..
18458: 76791313 79797976 05797679 af8e8ed5 ..yvvyyyyvy.....
18468: 7454685e e970a6b4 703644bb cf707036 ^hTt..p..D6p6pp.
18478: bb6d4836 d164fb53 c8ab772b b379c8c8 6Hm.S.d.+w....y.
18488: 5e792b79 77c8795e 2b760d0d 79797979 y+y^^y.w..v+yyyy
18498: 79767679 40797979 40e2e2e2 e2117e7e yvvyyyy@...@~~..
184a8: e460ab11 acacac1a 1a1a1a1a e41a1a1a ..`.............
184b8: 025ac1c1 5f11115f b313b331 465e7679 ..Z._.._1...yv^F
184c8: fe2ee466 60606060 c1566060 b5b54dc1 f...``````V..M..
184d8: f4c6c6c6 74bb5ec6 64bb3838 7b99add7 .....^.t88.d...{
184e8: f78b2626 5d5eb35e a3f9a704 666a1a60 &&..^.^]....`.jf
184f8: 0e0e4131 264b4b47 4b4b4b26 4b55554b 1A..GKK&&KKKKUUK
18508: 353549a2 dc35350e 79311313 79797676 .I55.55...1yvvyy
18518: 33767979 258e8ed5 59597413 0065f574 yyv3...%.tYYt.e.
18528: bbbb0c48 707070cf 2a0c0ccf ab4d104d H....ppp...*M.M.
18538: c8ab77ab 7979c8c8 2bc8c879 c82b7979 .w....yyy..+yy+.
18548: c80d7777 79792bc8 76767979 76797979 ww...+yyyyvvyyyv
18558: e2e24040 117e7e40 ac77115f acacfe42 @@..@~~._.w.B...
18568: acacacac 1a1a1a1a c1c142fe 5fe2a4f5 .........B....._
18578: 135e315f 797679b3 6ae47240 6060601a _1^..yvy@r.j.```
18588: 60fe6060 33acc1c1 c6c6c6b5 bb80f4f4 ``.`...3........
18598: 77383874 bcbde3d8 8b2627c4 5eb35e80 t88w.....'&..^.^
185a8: 8da7ee5d 1a6a4271 0e414553 4b4b470e ]...qBj.SEA..GKK
185b8: 4b4b2626 85554b4b 35354947 0e0e0e0e &&KKKKU.GI55....
185c8: 793113dc 2b797676 2b2b2b2b 8e9fc520 ..1yvvy+++++ ...
185d8: 74590dc5 65f53859 70000048 7036e969 ..YtY8.eH..pi.6p
185e8: d3367070 ab5337ab 2bab77ab c8c82b79 pp6..7S..w.+y+..
185f8: 77770dc8 c82b792b 0d770dc8 7979c8c8 ..ww+y+...w...yy
18608: 76797979 79797979 40404076 7e7e40e2 yyyvyyyyv@@@.@~~
18618: 34e25f11 acfe4294 acacacac 1aacacac ._.4.B..........
18628: 42fe1a1a 7ee5c1c1 5e315f5f 7679b35e ...B...~__1^^.yv
18638: febb5f76 60962eac 60606060 c1c142fe v_.....`````.B..
18648: c6f4168c b9c4f4c6 38387419 6b26e3e5 .........t88..&k
18658: 2727c4c4 b35e808b 148df65e 9442a609 ..''..^.^.....B.
18668: 0ee85b1a 4b47350e 2626264b 554b4b4b .[...5GKK&&&KKKU
18678: 35354785 9f0e0e0e 31e8dc9f 79797679 .G55.......1yvyy
18688: c8c8c879 13c8c8c8 747479dc f538a959 y........yttY.8.
18698: 0c44446f 48700070 0c693670 03e32cab oDD.p.pHp6i..,..
186a8: 2b7777ab c82b3333 7777770d 79792bab .ww+33+..www.+yy
186b8: 0d0dc82b 7976c80d 79797976 79797976 +.....vyvyyyvyyy
186c8: 40407679 7e40e240 11e2117e fe42e134 yv@@@.@~~...4.B.
186d8: acacacac acacacac 1a1a1a1a 42c1c3fe ...............B
186e8: 5e311164 79b35e5e 465e7676 1a941a57 d.1^^^.yvv^FW...
186f8: 60606060 c160fe60 f43342c1 c4f4c6c6 `````.`..B3.....
18708: 3874c98b 35d5102f 27c4c61d b35e8b27 ..t8/..5...''.^.
18718: 92f65eb3 fefe71cc 8713ac57 49350e0e .^...q..W.....5I
18728: 26264b4b 554b4b26 0e4b5555 dcdc410e KK&&&KKUUUK..A..
18738: 33dcdcdc 79767613 c82b7913 7777c8c8 ...3.vvy.y+...ww
18748: 1274c80d bb3b5459 0c36bebe 7036e944 ..t.YT;...6.D.6p
18758: 69707070 2cced144 2b1e77ab c86705a0 pppiD..,.w.+..g.
18768: 1e1277c8 792bab77 0dc82b79 79c80d0d .w..w.+yy+.....y
18778: 79767979 79767676 40767979 40e24040 yyvyvvvyyyv@@@.@
18788: e2117e7e 427240e2 acacac60 acacacac ~~...@rB`.......
18798: 1aacacac c3feac1a 11b38fc1 b35e5e5e ............^^^.
187a8: 5e767679 941ae146 6060feac fefefefe yvv^F.....``....
187b8: 5ac1c142 c6c6c6b9 745ec4c4 c553a6b4 B..Z......^t..S.
187c8: c4c68013 5e8b2717 f65eb3b3 42bef992 .....'.^..^....B
187d8: 13a694ac 35350e41 264b476e 4b4b2626 ....A.55nGK&&&KK
187e8: 4b55554b 45e8e80e 13131345 76763113 KUUK...EE....1vv
187f8: 2b791379 77c8c8c8 54597474 543b0854 y.y+...wttYTT.;T
18808: 00b46f64 36367000 70707070 cefbbf69 do...p66ppppi...
18818: 771eabd1 ab670533 127777ab 2b77771e ...w3.g..ww..ww+
18828: c8797979 760d0d0d 79797979 76767676 yyy....vyyyyvvvv
18838: 76797979 e2e24040 e27e7e40 72d73131 yyyv@@..@~~.11.r
18848: acace460 acacacac acacacac ac1a1aac `...............
18858: 8fc1c3fe 5e5ee2b3 767679b3 fe2f405e ......^^.yvv^@/.
18868: fe1a6a94 fefefefe c1c1fefe c6c65ee4 .j...........^..
18878: 80dedec6 bbb4a6b4 c65e1964 8b2717c4 ........d.^...'.
18888: 5eb3b35e a6842630 66ac9442 350e0e45 ^..^0&..B..fE..5
18898: 4b476e35 4b262626 5555554b 45e86e4b 5nGK&&&KKUUUKn.E
188a8: 13311345 76791313 31137976 77c82b79 E.1...yvvy.1y+.w
188b8: 74597474 12595974 646fb459 00007036 ttYttYY.Y.od6p..
188c8: 70707000 d2bf4469 1e1e64b1 ab2b67ab .pppiD...d...g+.
188d8: 777777ab c8771e12 7979792b 0d0d4076 .www..w.+yyyv@..
188e8: 79797976 76767679 79797676 e2404076 vyyyyvvvvvyyv@@.
188f8: 407e4011 4c8ec531 ace46a4d acacac2e .@~@1..LMj......
18908: acacacac acacacac c3feacac 5fb38fc1 ..............._
18918: 7679b313 bf765e5f ac94941a fefe1afe ..yv_^v.........
18928: 421afefe 50e1c1c1 b5dec6c6 38b4a647 ...B...P....G..8
18938: c9191938 2717c650 5eb35e16 a326305e 8...P..'.^.^^0&.
18948: 1ae660fe 350e8753 a2493535 2626264b .`..S..555I.K&&&
18958: 55554b4b dc0e4b55 313145e8 79317979 KKUUUK...E11yy1y
18968: 13797676 2b791313 c8127777 74591279 vvy...y+ww..y.Yt
18978: bebe7412 cbe9e9bb 70707070 53d36970 .t......pppppi.S
18988: 1eabd1ea 7777771e 7777abab 77771277 .....www..www.ww
18998: 13792bc8 40763113 7979c80d 76797979 .+y..1v@..yyyyyv
189a8: 797676c8 40407679 76e2e211 8e4c7d13 .vvyyv@@...v.}L.
189b8: 42e60de8 2e2e2eac acacac2e acacacac ...B............
189c8: acacacac 42c1c3fe 795e76d8 5f5e5f76 .......B.v^yv_^_
189d8: 94942ebb fe1a1aac fefefefe fec156fe .............V..
189e8: dec6c65e 745bba9e 19193838 17c6f719 ^.....[t88......
189f8: b35e1627 17305e5e e6ace471 0e0eaf1a '.^.^^0.q.......
18a08: 49053535 264b4749 854b4b26 35475555 55.IIGK&&KK.UUG5
18a18: 45dc0e0e 79793113 76c8c879 13137979 ...E.1yyy..vyy..
18a28: 7474c879 54747479 10193ba9 697038f5 y.ttyttT.;...8pi
18a38: 367036cd 44e90ce9 1eab2c10 77777712 .6p6...D.,...www
18a48: 77777777 771e7777 792bc877 31e8d713 wwwwww.ww.+y...1
18a58: 79c84076 79797979 7676c876 40767679 v@.yyyyyv.vvyvv@
18a68: d71331e2 dc8e3c8e 0b7ee231 2e2e1a42 .1...<..1.~.B...
18a78: 2e2e2e2e acac2e2e acacacac c31aacac ................
18a88: 762cc3c1 5e5f76b3 9494745f 1a1a6a57 ..,v.v_^_t..Wj..
18a98: 1a1a1a1a c1e41afe c4d053c1 5e7bc0ad .........S....{^
18aa8: 19383874 f85f1919 5e1627b5 415e5e5e t88..._..'.^^^^A
18ab8: 9442945d 6e0e9457 0535350e 4b474949 ].B.W..n.55.IIGK
18ac8: 4b4b2626 a24b554b 0e35356e 1313dc0e &&KKKUK.n55.....
18ad8: 0dc87979 1379c80d 74c83113 12747474 yy....y..1.tttt.
18ae8: b4385454 00546410 00707000 d30ce969 TT8..dT..pp.i...
18af8: 44bf10f5 7777771e c8777777 7777c82b ...D.wwwwww.+.ww
18b08: 2bc87777 d7c51379 7676795e 79797979 ww.+y...^yvvyyyy
18b18: 76c87679 79767676 0fdc3131 3113b14c yv.vvvvy11..L..1
18b28: 7e404031 2efefebf 2e2e2e2e 2e2e2e2e 1@@~............
18b38: acacacac acacacac c1c1e4ac 5e790d53 ............S.y^
18b48: 6a465f5e 1a6a576a 1a1a1a1a 1a1a1a1a ^_FjjWj.........
18b58: 80fec1c1 2755baad 38387480 c9191919 ......U'.t88....
18b68: 1627deda 5e805e5e 60fe4141 5d6694e6 ..'.^^.^AA.`..f]
18b78: 35350e6e 49494905 4b26264b a24b4b4b n.55.IIIK&&KKKK.
18b88: 3535356e dc0e0e35 767913e8 c8c8c80d n5555.....yv....
18b98: c879792b 74122bc8 64767454 a974be66 +yy..+.tTtvdf.t.
18ba8: 70000000 6d360070 44e110bf c8771ee9 ...pp.6m...D..w.
18bb8: c8c8c8c8 c8b31379 c8777777 d7137979 ....y...www.yy..
18bc8: 767913c5 79797976 76767979 31797976 ..yvvyyyyyvvvyy1
18bd8: 4c8e3313 40e2330f 4040e240 606a7440 .3.L.3.@@.@@@tj`
18be8: 2e2e2e2e 2e2e2e2e 2e6a6a2e acac6aac .........jj..j..
18bf8: 96ac2eac 0d37c1c3 46315e31 6a576a94 ......7.1^1F.jWj
18c08: 1a1a1a1a 1a1a1a1a c1c1e4ac 27bcb671 ............q..'
18c18: 3846b926 19194638 27c45f46 808080c4 &.F88F..F_.'....
18c28: e4b106e8 716a321a 35350e6b 49494905 .....2jqk.55.III
18c38: 4b4ba26e 4947474b 0e0e0e0e 0e0e0e0e n.KKKGGI........
18c48: 13e89f0e c80dc879 c8c8c877 74c87974 ....y...w...ty.t
18c58: b3c85959 54b4a6b4 700069a9 cf703636 YY.....T.i.p66p.
18c68: bf6fe144 2b774ed3 b379b3b3 13d713b3 D.o..Nw+..y.....
18c78: 0d7777c8 b3b379c8 79e8c5e8 79797640 .ww..y.....y@vyy
18c88: 76797979 13797676 7d4c8e33 7ee231c5 yyyvvvy.3.L}.1.~
18c98: 40e2407e ed344040 a6942ee4 2e2e2e2e ~@.@@@4.........
18ca8: 6a6a6a2e 6a6a6a6a 2e2e2e6a c18fac2e .jjjjjjjj.......
18cb8: 5f11b365 57941a19 1aacac94 1a1a1a1a e.._...W........
18cc8: c11a1a1a c4411ac1 c916928a c9463838 ......A.....88F.
18cd8: 1dc94619 8030c4de 6645e830 ac322e42 .F....0.0.EfB.2.
18ce8: 350e17b1 49050535 496e3549 0e6e4949 ...55..II5nIIIn.
18cf8: 4545e841 e8e84545 dc0edcdc c87913e8 A.EEEE........y.
18d08: 77c8c8c8 77677777 c874592b bb6fbed1 ...wwwgw+Yt...o.
18d18: 700c4f08 70cb0ccb e16f780c 2b1e2dd3 .O.p...p.xo..-.+
18d28: d1b3b3b3 d720d1d1 0d77c813 135e76c8 ...... ...w..v^.
18d38: e8d71313 79764079 79767979 13797676 ....y@vyyyvyvvy.
18d48: c5fb37af 40e23113 e2400d0d 7e404040 .7...1.@..@.@@@~
18d58: 94ac6072 a6a69494 6a6a2e2e 6a6a6a6a r`........jjjjjj
18d68: 6a6a6a6a 2e2e2e2e 538fc196 326a5146 jjjj.......SFQj2
18d78: acac9457 acacacac 6a1a1aac 20c3c142 W..........jB..
18d88: 6b9227c4 467474c9 191919c9 7cc41d5f .'.k.ttF...._..|
18d98: 13303030 6694e41a 0e1735a6 05050535 000....f.5..5...
18da8: 35354949 0e353535 45e8dc41 31313131 II55555.A..E1111
18db8: e8133131 3113e8e8 c82b7679 2b7477c8 11.....1yv+..wt+
18dc8: 7459c8c8 b4eb7119 364fa954 6de96970 ..Yt.q..T.O6pi.m
18dd8: a6ae0c36 770c2dae d1b3b32b d7201320 6....-.w+... . .
18de8: 77c813d7 13c8c8c8 e813e8d7 764076e8 ...w.........v@v
18df8: 76797979 33797979 13b137fb 4040e231 yyyvyyy3.7..1.@@
18e08: 400d0d40 404040e2 1a1aab40 94949494 @..@.@@@@.......
18e18: 949494a6 6a949494 946a6a6a 2e2e2e6a .......jjjj.j...
18e28: e4ac2e2e 94fefec3 6a6a9457 acacacac ........W.jj....
18e38: acacacac c1c11a6a 8d271d5a 74745f17 ....j...Z.'.._tt
18e48: 46c9c946 b95f7619 30b9b962 32fee45b F..F.v_.b..0[..2
18e58: 496e9494 0505350e 35494905 0e0e0e35 ..nI.5...II55...
18e68: dcdc410e 313145e8 31793131 13133131 .A...E1111y111..
18e78: 13133131 74c87979 54591238 10ead174 11..yy.t8.YTt...
18e88: a94fa9bb 0ccf7070 240c69e9 69e92feb ..O.pp...i.$./.i
18e98: b32bc81e 201313d1 7713c520 c82b7977 ..+.... ..wwy+.
18ea8: d7c5d7b3 4076e8d7 76797976 b1136779 ......v@vyyvyg..
18eb8: 13330f4c e2404079 7e0d40e2 4040e240 L.3.y@@..@.~@.@@
18ec8: e6344040 94949460 94949494 94949494 @@4.`...........
18ed8: 94949494 a6949494 a62e2e2e 6060ac6a ............j.``
18ee8: acfe6060 6a6a6a6a 6a6a6a6a 426a6a6a ``..jjjjjjjjjjjB
18ef8: b5e8fec1 745e1792 c9c94674 76761946 ......^ttF..F.vv
18f08: 7c7c7c80 ace4be06 17716a5a 05350e6e .|||....Zjq.n.5.
18f18: 49050505 0e0e0e35 0edc0e0e e8dc410e ...I5........A..
18f28: 76313145 79797979 dc133179 2b870edc E11vyyyyy1.....+
18f38: 5974c874 eb2c5954 3ba9cdb4 3670703b t.tYTY,....;;pp6
18f48: d3cb0ccf 6db4d210 c81e0ccf 13d1b32b .......m....+...
18f58: 13d72020 797977c8 c513792b 79e84141 ...wyy+y..AA.y
18f68: 79797640 37af1379 3113c5fb 40767679 @vyyy..7...1yvv@
18f78: 7e40e2e2 40e2407e 7e404040 942e600b ..@~~@.@@@@~.`..
18f88: 94949494 94949494 94949494 94949494 ................
18f98: a6a6a694 949494a6 2eacac6a 6a6a6a6a ........j...jjjj
18fa8: 6a6a6a6a 946a6a6a 5bc1c31a 7517926b jjjjjjj....[k..u
18fb8: c9467446 761919c9 41305e76 602ee87c FtF....vv^0A|..`
18fc8: b1ac2494 35353517 35050505 0e0e3505 .$...555...5.5..
18fd8: dc87870e 41410e0e e8e84141 76793131 ......AAAA..11yv
18fe8: 13767676 dcb56edc 74797779 a6bb5459 vvv..n..ywytYT..
18ff8: 3ba9386f 70703b3b 69cbcf36 2f6fa678 o8.;;;pp6..ix.o/
19008: e90c69e9 b32bc877 2020d1d1 7977c813 .i..w.+... ..wy
19018: 137979b3 d74141d7 31764031 4cfb3313 .yy..AA.1@v1.3.L
19028: 797913b1 40767979 40e24040 e2e2407e ..yyyyv@@@.@~@..
19038: 40404040 ac1aab40 94949494 94949494 @@@@@...........
19048: 94949494 94949494 94949494 94949494 ................
19058: 94949494 6a6a6a94 6a6a6a6a 6a6a6a6a .....jjjjjjjjjjj
19068: c1e46a94 17264166 46461980 c9c9c9c9 .j..fA&...FF....
19078: 5e5e7676 96c57c06 2e3266fe 0e0e178e vv^^.|...f2.....
19088: 35050535 0e353535 dcdc870e 0e0e0edc 5..5555.........
19098: 350e4141 dc9f0e35 76767913 6eb5e879 AA.55....yvvy..n
190a8: c8777933 71385412 543b2feb 0c3b3bcd 3yw..T8q./;T.;;.
190b8: 0070cb0c 51a6892d 0c690cd3 2bc81ee9 ..p.-..Q..i....+
190c8: 13b3b32b 0d792020 7979b3c8 41d7e8b3 +... y...yy...A
190d8: 67795e30 0f4cb133 76791333 76797979 0^yg3.L.3.yvyyyv
190e8: e2404040 e2404040 4040e2e2 e634e240 @@@.@@@...@@@.4.
190f8: 949494fe 94949494 57575757 94575757 ........WWWWWWW.
19108: 94949494 94949494 94949494 94949494 ................
19118: 94949494 6a6a6a6a fe576a6a 263396c1 ....jjjjjjW...3&
19128: c9c9f727 c9c9c946 31767676 7180e831 '...F...vvv11..q
19138: 5732ace4 0e6e0ea6 0505350e 35353535 ..2W..n..5..5555
19148: dcdc870e 0e0edcdc 6b5d4141 a2a2a26e ........AA]kn...
19158: 13dc35a2 6b5d7979 742b7913 b4595438 .5..yy]k.y+t8TY.
19168: 3bb3e3eb 3b3bcd54 48700c44 a60bec48 ...;T.;;D.pHH...
19178: cf36ecae 771e0c69 2b2b2bc8 b32013b3 ..6.i..w.+++.. .
19188: 79790d0d e8137979 20c54130 af3737af ..yyyy..0A. .77.
19198: 76767913 79797676 40e24076 e21140e2 .yvvvvyyv@.@.@..
191a8: 40e23131 40404040 9494600b 94949494 11.@@@@@.`......
191b8: 57575757 57575757 94945757 94949494 WWWWWWWWWW......
191c8: 94949494 94949494 94579494 94949494 ..........W.....
191d8: 57949494 f1c3c3ac 5fb92727 c9c9c95f ...W....''.__...
191e8: 317676c9 31e8e85e 2494e4a6 0e0e6f6a .vv1^..1...$jo..
191f8: 35350e0e 35353535 dcdc0e0e 0edcdcdc ..555555........
19208: de0e410e d5a2496b a2d58585 5de8e835 .A..kI......5..]
19218: c8c82b79 bb597474 79f26510 08080854 y+..ttY..e.yT...
19228: 70706908 e12d7036 0cd3aea6 1e69cbcf .ipp6p-.......i.
19238: c8c87777 13b3b3c8 c877c8b3 79797979 ww........w.yyyy
19248: 8e25c513 20b14c93 76797967 79767676 ..%..L. gyyvvvvy
19258: 40407679 e240e240 e23131e2 e2404040 yv@@@.@..11.@@@.
19268: ac1a64e2 57949457 57575757 57575757 .d..W..WWWWWWWWW
19278: 57575757 94949494 94949494 57575757 WWWW........WWWW
19288: 57575757 57575757 94949457 c1e49457 WWWWWWWWW...W...
19298: b94b355a 5f5f7575 5e76c95f 31dc35dc Z5K.uu___.v^.5.1
192a8: 5796965b 0e712e24 350e0e0e 35353535 [..W$.q....55555
192b8: dc0e3535 dcdcdcdc 6b410e0e a2490e6b 55........Akk.I.
192c8: 858585d5 dc35a2d5 c8767913 77c8c877 ......5..yv.w..w
192d8: b371eb53 0808a946 36cb0808 2d707048 S.q.F......6Hpp-
192e8: d872a651 69cb0c64 bb771ee9 b32bc8c8 Q.r.d..i..w...+.
192f8: 77c879b3 7979c877 93c51379 13c585b6 .y.ww.yyy.......
19308: 79797979 76404076 40767979 e2404040 yyyyv@@vyyv@@@@.
19318: 3131e2e2 e2404040 e64031e2 575757fe ..11@@@..1@..WWW
19328: 57575757 575757e6 57575757 57575757 WWWW.WWWWWWWWWWW
19338: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
19348: 57575757 96575757 4b1bacc1 80b975b9 WWWWWWW....K.u..
19358: 5e5f5e5e e87dd533 1ae47131 afac3232 ^^_^3.}.1q..22..
19368: 0e0e0e35 3535350e 0e353535 dcdcdcdc 5....555555.....
19378: 414141dc 490e0e5d 8585d5a2 9f8e7dd5 .AAA]..I.....}..
19388: 5e13c5dc 7720c879 d1e365e5 54125976 ...^y. w.e..vY.T
19398: 693b0808 48480069 ae659069 69e9d1e5 ..;ii.HHi.e....i
193a8: 1e1e0c69 c8c8bb77 c8c82b2b 2bc87777 i...w...++..ww.+
193b8: 933320b3 13258521 79797979 40407679 . 3.!.%.yyyyyv@@
193c8: 76797976 40404040 31e2e2e2 40404031 vyyv@@@@...11@@@
193d8: e23131e2 5794fed8 57e65757 e6e6e6e6 .11....WWW.W....
193e8: e6e6e6e6 57e6e6e6 57e6e6e6 57575757 .......W...WWWWW
193f8: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
19408: b08fc31a 62757c4b 5e5e8062 dc923c13 ....K|ubb.^^.<..
19418: e4a631e8 a666242e 0e0e35c5 35350e0e .1...$f..5....55
19428: 35353535 dcdcdc0e 4141e8e8 0e0e4187 5555......AA.A..
19438: d5d5a249 dc25a2d5 9f9fdcd7 13c85e33 I.....%.....3^..
19448: b4eb6f64 795477b3 3b080819 690c6969 do...wTy...;ii.i
19458: fcf56948 0c440cae 0c0c6969 bb77771e Hi....D.ii...ww.
19468: c82bc8ab c8777777 4cafd1b3 41f32537 ..+.www....L7%.A
19478: 7679795e 40767676 79797676 40404076 ^yyvvvv@vvyyv@@@
19488: 4040e240 4040e2e2 3131e240 ac2ec831 @.@@..@@@.111...
19498: e6e657e6 e6e6e6e6 e6e6e6e6 e6e6e6e6 .W..............
194a8: e6e6e6e6 e6e6e6e6 e6e6e6e6 575757e6 .............WWW
194b8: 57575757 57575757 c1426ae6 753d4924 WWWWWWWW.jB.$I=u
194c8: 5e7ce062 dc05dc31 fed13113 94249496 b.|^1....1....$.
194d8: 0e35dc66 350e0e0e 35353535 dcdc0e35 f.5....555555...
194e8: 41e8e8dc 41dcdcdc a2a2490e dc8ea2a2 ...A...A.I......
194f8: 9fdc1313 c813c59f 53eb7120 3838b377 ........ q.Sw.88
19508: 0808c8b3 6944cb3b 4d693648 692d7152 ....;.DiH6iMRq-i
19518: 44e96969 771ee96d c8ab7777 c87777c8 ii.Dm..www...ww.
19528: 4cb1d179 301320b1 7979e841 76767679 y..L. .0A.yyyvvv
19538: 79767640 e2e27679 40404040 40e2e240 @vvyyv..@@@@@..@
19548: 31e24040 e1403131 e6e657fe e6e6e6e6 @@.111@..W......
19558: e6e6e6e6 3281e6e6 e6323232 e6e6e6e6 .......2222.....
19568: e6e6e6e6 e6e6e6e6 e6e6e6e6 57575757 ............WWWW
19578: e457e657 3d3510c1 7f7f6280 3113e830 W.W...5=.b..0..1
19588: 53313131 2432fee4 0e877194 0e0e0e0e 111S..2$.q......
19598: 35353535 dc0e3535 e8e8e8dc e8e8dcdc 555555..........
195a8: a2490e41 9f35a2a2 dc1313e8 13c59f9f A.I...5.........
195b8: 10ebb1c8 547459bb 0838b377 6969a554 .....YtTw.8.T.ii
195c8: 0ccb69cb ca66521b e9690c0c 6d6dbfbf .i...Rf...i...mm
195d8: 7777bb77 c877c877 4cfb5b2b 767967af w.www.w.+[.L.gyv
195e8: 31307ce8 76767979 76764076 40767979 .|01yyvvv@vvyyv@
195f8: 4040e2e2 e2e24040 e24040e2 e23131e2 ..@@@@...@@..11.
19608: 322eac2b e6e6e6e6 e6e6e6e6 578181e6 +..2...........W
19618: e6575757 32323232 e6e6e632 e6e6e6e6 WWW.22222.......
19628: e6e6e6e6 57e6e6e6 e6e65757 35acc196 .......WWW.....5
19638: 7f62807f 31e86e6b e2313131 32ac6094 ..b.kn.1111..`.2
19648: 0eb16a24 0e0e0e0e 3535350e 0e353535 $j.......555555.
19658: 45e8dcdc e8dcdce8 490edce8 9f35a2a2 ...E.......I..5.
19668: 131333dc 209f9fdc 6565d179 a554775b .3..... y.ee[wT.
19678: 59797754 0054a508 cb36e90c a6711b43 TwyY..T...6.C.q.
19688: 690c0c78 44e5440c 77bb77e9 2b777777 x..i.D.D.w.wwww+
19698: 0fe32c64 c879d15b 41415e0d 76797913 d,..[.y..^AA.yyv
196a8: 76407676 76797979 e2e2e240 40407e40 vv@vyyyv@...@~@@
196b8: 404040e2 31314040 fee17e31 323232e6 .@@@@@111~...222
196c8: 81323232 e6e68181 9778781c 81e6e68c 222......xx.....
196d8: 81818181 81818181 81818181 e6e6e681 ................
196e8: 575757e6 96c31ae6 7c807f9f 4517276b .WWW.......|k'.E
196f8: 31313131 94fefeb3 c52e3224 0e870e0e 1111....$2......
19708: 350e0e0e 0e353535 e8dcdc0e e8dce845 ...5555.....E...
19718: 0edce845 0e7da249 1313e8dc c59fdc13 E...I.}.........
19728: ebe3d1b3 5474772c 54547438 3ba53b54 ....,wtT8tTTT;.;
19738: 69704870 ae0c2a6d 0c44e165 bfe969cb pHpim*..e.D..i..
19748: bb1ee944 2b7777bb 53e3b103 797967d1 D....ww+...S.gyy
19758: 30790dc8 76791341 40767676 79797676 ..y0A.yvvvv@vvyy
19768: 76407679 7e7e40e2 40e2e240 e2404011 yv@v.@~~@..@.@@.
19778: 64e23131 32322eac 81818132 e6818181 11.d..222.......
19788: a91f0091 9078543b 818181e6 81818181 ....;Tx.........
19798: 81818181 81818181 e6e6e681 c32ee6e6 ................
197a8: 807fafe4 6e27177c 31313145 1ae4f1e2 ....|.'nE111....
197b8: 94662466 870e0ee8 0e0e0e0e 35353535 f$f.........5555
197c8: e8dc0e0e dce84545 dce845e8 35a2350e ....EE...E...5.5
197d8: 1333e8dc 9f331313 3f3713c5 54597453 ..3...3...7?StYT
197e8: 3820d174 543b5408 36000054 48cb6d44 t. 8.T;TT..6Dm.H
197f8: 2fa6102d 0c69690c 1ee94444 64ab1e1e -../.ii.DD.....d
19808: 5be3fbd1 79797967 400dc879 791341e8 ...[gyyyy..@.A.y
19818: 76797676 79767676 40767979 7e40e276 vvyvvvvyyyv@v.@~
19828: e2e2407e 40404040 31e231e2 e6fe2440 ~@..@@@@.1.1@$..
19838: 81813232 81818181 367036ed a93bcd4f 22.......6p6O.;.
19848: e681784f 81818181 81818181 81818181 Ox..............
19858: e6818181 94e6e6e6 6bb14242 17b85d30 ........BB.k0]..
19868: 3131805d 60667e31 942432ac 0e0ee871 ].111~f`.2$.q...
19878: 0e0e8787 0e350e0e dc0e0e0e 454545e8 ......5......EEE
19888: 4545e8e8 35350edc 13dcdc35 33133113 ..EE..555....1.3
19898: 3ffbc59f 7459bb37 b3d12b77 3b543854 ...?7.Ytw+..T8T;
198a8: 70703808 69367070 eb0b6936 69690cbe .8pppp6i6i....ii
198b8: 0c0c6d0c 64441e1e d1fb37b0 792b2b2b .m....Dd.7..+++y
198c8: 0dc82b79 13d75e0d 79767679 76767676 y+...^..yvvyvvvv
198d8: 40767979 40e27640 e2e24040 404040e2 yyv@@v.@@@...@@@
198e8: e2e2e240 ac03e231 81328194 81818181 @...1.....2.....
198f8: 70362281 4f4f361f ec1f4f4f 81ed81ed ."6p.6OOOO......
19908: edededed 81818181 81818181 e6e6e681 ................
19918: 71c3e457 1717416e 31807f17 1a793131 W..qnA.....111y.
19928: 24246afe 0edc2c94 41410e0e 0e0e0e0e .j$$.,....AA....
19938: 410e0e0e 454545dc 4545e845 0e41e845 ...A.EEEE.EEE.A.
19948: dc9f0e0e 13131313 3ffb9f33 38382be3 ........3..?.+88
19958: 202b2b5b 54191212 7077083b 6dcb0070 [++ ...T;.wpp..m
19968: 69cb360c cf723f24 690c0c69 d864e90c .6.i$?r.i..i..d.
19978: 03b1e32c 2bc8c82b c82b7979 13790d0d ,...+..+yy+...y.
19988: 76767931 76767676 76767976 e2e24076 1yvvvvvvvyvvv@..
19998: e24040e2 40e23131 e2e24040 7e31e2e2 .@@.11.@@@....1~
199a8: 81e61a8c 81818181 709081ed 361f7070 ...........ppp.6
199b8: 36363636 81ed6970 edededed edededed 6666pi..........
199c8: 818181ed e6818181 c36057e6 6e5d5d37 .........W`.7]]n
199d8: 067f476e b4e23131 24661a60 87339432 nG..11..`.f$2.3.
199e8: 41870e0e 0e0e0e41 0e0e0e0e e845e8dc ...AA.........E.
199f8: 45e84545 41e84531 dc0e0e0e 131313dc EE.E1E.A........
19a08: 3ffb3313 747403fc 2b77d1b3 74775474 .3.?..tt..w+tTwt
19a18: 773b3b54 0c007070 3636366d 2e6f2d70 T;;wpp..m666p-o.
19a28: 690ccd78 d8d30c69 032ce30f c8c877c8 x..ii.....,..w..
19a38: 2b797979 0d0d0dc8 76797979 76767676 yyy+....yyyvvvvv
19a48: 79797676 31e27676 e2e23131 e2456e45 vvyyvv.111..EnE.
19a58: e24040e2 31e23131 946aabe2 eded81ed .@@.11.1..j.....
19a68: 7381eded 1f707070 1f1f1f1f ec007070 ...sppp.....pp..
19a78: ededed81 edededed edededed 81818181 ................
19a88: 96e632e6 5d0e10c3 6e475d06 7e313106 .2.....].]Gn.11~
19a98: 24ace4be e866328c 87410e0e 0e414187 ...$.2f...A..AA.
19aa8: 0e0e0e0e e8dcdc0e e8e845e8 e8453145 .........E..E1E.
19ab8: 0e0e0e41 1313dc5d 3fb11313 7477b065 A...]......?e.wt
19ac8: 2bd1f22b 38593877 cd543b12 70707038 +..+w8Y8.;T.8ppp
19ad8: 70704870 d3693670 6978a6a6 bfd30c69 pHppp6i...xii...
19ae8: 64d8e3fb c8c877c8 797979c8 0dc8c82b ...d.w...yyy+...
19af8: 79760d0d 76767976 79767676 31317931 ..vyvyvvvvvy1y11
19b08: 31313131 456b2745 e2e23131 31313131 1111E'kE11..1111
19b18: 90343131 eded811a edededed 70007073 114.........sp.p
19b28: 701f7070 70707070 ed819100 edededed pp.ppppp........
19b38: edededed 8181eded e6e68181 87fcc360 ............`...
19b48: 475d3130 3131806e 6afeac76 be578c24 01]Gn.11v..j$.W.
19b58: 410e0e45 41418787 0e0e0e0e 410e0e0e E..A..AA.......A
19b68: 454545e8 31311345 5d0edce8 13135dde .EEEE.11...].]..
19b78: ebf27913 192b2cd2 d15b2b74 74d17777 .y...,+.t+[.ww.t
19b88: 54545454 707054cd 70000070 44697070 TTTT.Tppp..pppiD
19b98: a6a6d3e9 bfd36978 bfe566be 77771ebb ....xi...f....ww
19ba8: 79792bc8 0dc87979 760d0d0d 79797679 .+yyyy.....vyvyy
19bb8: 76404076 31313179 45453131 06271745 v@@vy11111EEE.'.
19bc8: 31313145 313131e2 e2e23131 ed6a5777 E111.11111..wWj.
19bd8: edededed 004822ed 70707070 70707070 ....."H.pppppppp
19be8: 97707070 222222ed eded2222 81ededed ppp.."""""......
19bf8: 97e68181 a6c372e9 30314531 3180416e .....r..1E10nA.1
19c08: 1a60d8e2 94242457 0e0ee853 41414141 ..`.W$$.S...AAAA
19c18: 0e0e0e41 0e0e0e0e 1345e8dc 31134513 A.........E..E.1
19c28: 41e84531 13dcde6b ea337931 2bb30fd2 1E.Ak...1y3....+
19c38: b37477c8 2b77bb2b 54545474 704ecdcd .wt.+.w+tTTT..Np
19c48: 70697070 69487070 2d0ce92d aee12e5a ppipppHi-..-Z...
19c58: 78bf24be 1e1e1ebb 7979c877 c8797979 .$.x....w.yyyyy.
19c68: 0d0d0dc8 76767676 76407676 31317976 ....vvvvvv@vvy11
19c78: 87414531 87174145 31314545 31313131 1EA.EA..EE111111
19c88: e2313131 1aae40e2 ededed32 cbededed 111..@..2.......
19c98: 70707000 70707070 00707070 9090edec .pppppppppp.....
19ca8: 22222290 ededed22 ca8181ed 6059081f ."""".........Y`
19cb8: 3131402e 31068745 60be4031 24e1321a .@11E..11@.`.2.$
19cc8: 41875b94 8787410e 0e0e4187 0e0e410e .[.A.A...A...A..
19cd8: 1345dc0e 31131313 45453131 e85dde41 ..E....111EEA.].
19ce8: 52333113 b3330fd2 7477192b 382bbb38 .13R..3.+.wt8.+8
19cf8: 54543838 1e543bcd 0c007048 36366944 88TT.;T.Hp..Di66
19d08: 69cbcf36 a6e1e9cf 44ae6feb 1e1ebbe9 6..i.....o.D....
19d18: 2bc8771e 7979b379 0d0d0dc8 7679760d .w.+y.yy.....vyv
19d28: 40767676 13133176 6e17e813 450645e8 vvv@v1.....n.E.E
19d38: 3145e845 31e23131 e2e2e231 b330e2e2 E.E111.11.....0.
19d48: ededaced edededed 7070004a 70707070 ........J.pppppp
19d58: 70700000 22ff7070 90909090 22222290 ..pppp."....."""
19d68: 9181eded 5954a900 31402e96 31313131 ......TY..@11111
19d78: ac763131 e124acfe 87135732 87414141 11v...$.2W..AAA.
19d88: 0e418787 4141410e 45e8410e 13131313 ..A..AAA.A.E....
19d98: 31313131 dc0e4145 e33313dc 33330fd2 1111EA....3...33
19da8: 772b2bb3 b3777777 541212bb 54cdcd54 .++wwww....TT..T
19db8: 707048cd 0c446900 3636cb69 72446936 .Hpp.iD.i.666iDr
19dc8: a6106610 bf72f5be c8772bbb 7979792b .f....r..+w.+yyy
19dd8: 0d0dc8c8 13790d0d 20136713 afaf9f5b ......y..g. [...
19de8: aa17dc9f 31454587 3106f631 e2e2e231 .....EE11..11...
19df8: e2e231e2 e8e2e2e2 5757e5f3 22eded22 .1........WW".."
19e08: 700063ed 00000000 00000000 07007000 .c.p.........p..
19e18: 73737322 22909073 73ed2222 3ba97070 "ssss..""".spp.;
19e28: 40a69659 31313131 d8e24531 e1941afe Y..@11111E......
19e38: 45be32e1 41414141 41878787 41410e41 .2.EAAAA...AA.AA
19e48: e8dc4141 13131313 31313113 dce83131 AA.......11111..
19e58: 52c5e8dc 3313b1d2 2b2bb333 c8c87777 ...R...33.++ww..
19e68: 12e87974 cdcd5454 0069e9cd 36007070 ty..TT....i.pp.6
19e78: cb6d0cd3 aed36936 e5ae53a6 a6102472 ..m.6i...S..r$..
19e88: 0fe3e310 afb1b1b1 5bf2f2af 0faff2f2 ...........[....
19e98: 0f0f0f93 c5afb10f aa6ee833 3145450e ........3.n..EE1
19ea8: 3106f645 40403131 e2e2e240 e2e2e2e2 E..111@@@.......
19eb8: ae413031 ed2281ac 48902222 00000000 10A..."."".H....
19ec8: 00000000 00707070 73737315 90737373 ....ppp..ssssss.
19ed8: ed222290 1f7000ec 6660593b 31313140 .""...p.;Y`f@111
19ee8: 11454531 321afe24 535724e1 41418745 1EE.$..2.$WSE.AA
19ef8: 87878741 87414141 dc414141 134545e8 A...AAA.AAA..EE.
19f08: 31131313 13313131 529fdce8 b3790fd2 ...1111....R..y.
19f18: 2bb33333 2b7777c8 796bc82b cdcd5454 33.+.ww++.kyTT..
19f28: 36e94ecd 70707000 2d2d3600 aed3cb2d .N.6.ppp.6---...
19f38: e5ae24a6 44e9e9ab 715372bf cecee337 .$.....D.rSq7...
19f48: 37e3cece 0ffbfb37 9f8e930f 79796733 ...77.......3gyy
19f58: 27e87979 1313135d e2314531 40403131 yy.']...1E1.11@@
19f68: e2e24040 e2e2e2e2 5de24040 8c2e222c @@......@@.],"..
19f78: ed902222 000000ca 00000000 00000000 ""..............
19f88: 731c7000 73737373 ed907373 70700089 .p.sssssss....pp
19f98: e4123b1f 31314071 45313131 acfe6a40 .;..q@11111E@j..
19fa8: 9424e124 4187455b 06874141 dc878787 $.$.[E.AAA......
19fb8: dcdc87e8 4545e8dc 87454545 31313145 ......EEEEE.E111
19fc8: 52c51331 79130fd2 b32020b3 7777bb2b 1..R...y. .+.ww
19fd8: dcdcb3b3 cd544e12 cfe9cdcd 70707048 .....NT.....Hppp
19fe8: cb007070 782d2d69 bf782466 6dd3bbe5 pp..i--xf$x....m
19ff8: 1ee92de9 d12b1e1e d1202020 79797967 .-....+. .gyyy
1a008: e8c51379 40767679 e8797976 313113e8 y...yvv@vyy...11
1a018: 40403131 40e231e2 e2404040 e2e2e231 11@@.1.@@@@.1...
1a028: 9fe240e2 e6bf854c 90909094 00707390 .@..L........sp.
...
1a040: 63000000 73739773 73737373 7000eced ...cs.ssssss...p
1a050: bb081f70 31e22c42 45313131 1a1ad131 p...B,.1111E1...
1a060: 24e1e194 e8061357 87414187 e8870606 ...$W....AA.....
1a070: dcdce8e8 4545dc41 5d454545 76314516 ....A.EEEEE].E1v
1a080: e3137676 79130fd2 1313b379 7777bb79 vv.....yy...y.ww
1a090: 7979b3bb 544e4e1e cd0ccdcd 48487069 ..yy.NNT....ipHH
1a0a0: 48707070 782d3648 d3786671 bb444444 pppHH6-xqfx.DDD.
1a0b0: 6d6d2d44 bb1ee9e9 79b379c8 0d0dc879 D-mm.....y.yy...
1a0c0: dc13760d 79793113 79797976 31313179 .v...1yyvyyyy111
1a0d0: 40403131 e2e24040 e2e2e240 40e23131 11@@@@..@...11.@
1a0e0: 3cdc31e2 870e354c 73e69478 fa907390 .1.<L5..x..s.s..
...
1a0fc: 97977307 73737397 70707390 081f7070 .s...sss.spppp..
1a10c: 3167420b 31313131 fee1e245 e1dbe61a .Bg11111E.......
1a11c: 06315a32 8787dce8 06060606 e8e8e8e8 2Z1.............
1a12c: e8dc4141 f6454545 7631f6de e3797676 AA..EEE...1vvvy.
1a13c: 7979b1eb b3b37979 7777c8b3 772b7777 ..yyyy....wwww+w
1a14c: 77384e1e cfcdcd54 48700c69 70707048 .N8wT...i.pHHppp
1a15c: d3cb692d d3aee3db 6444440c d36dd364 -i.......DDdd.m.
1a16c: 77e9e96d b32b2b2b 0dc82b79 e8790dc8 m..w+++.y+....y.
1a17c: 79e8e8d7 76767676 79797979 40e27679 ...yvvvvyyyyyv.@
1a18c: e2404040 314531e2 40e23131 953c3340 @@@..1E111.@@3<.
1a19c: 0e87dc7d 6a897e45 737373ed 0000ec73 }...E~.j.ssss...
...
1a1b4: ff974a00 73979797 00639073 1f707070 .J.....ss.c.ppp.
1a1c4: 401a9408 31313131 94764531 e124ac1a ...@11111Ev...$.
1a1d4: 31e157e1 87e8e806 e8e806dc e8e8e830 .W.1........0...
1a1e4: 4141dce8 41e845e8 7945dede e3794076 ..AA.E.A..Eyv@y.
1a1f4: 7679b1eb 792b2b76 7477c82b 77777777 ..yvv++y+.wtwwww
1a204: 1ee93877 cfcfe964 700c0ccf 48704848 w8..d......pHHpH
1a214: ec6d0c70 780b1089 bf446969 bb6d44bf p.m....xiiD..Dm.
1a224: e9e96dab 2b2b64bb c82b7979 790dc8c8 .m...d++yy+....y
1a234: 138741e8 76767979 76767676 76767679 .A..yyvvvvvvyvvv
1a244: 407e7e40 874531e2 e2e2e231 4c527d13 @~~@.1E.1....}RL
1a254: 0e87139f 6811e213 73226aff 15737373 .......h.j"ssss.
...
1a26c: 97ec0000 9797ff1c 4a907373 70707000 ........ss.J.ppp
1a27c: 53e44e1f 313113e2 d1311331 8c6a1a6a .N.S..111.1.j.j.
1a28c: b49424e1 e8e8e831 e80687dc e8e8e8e8 .$..1...........
1a29c: dce84545 4545e8dc 3141de16 e3790d79 EE....EE..A1y.y.
1a2ac: 76762ceb 7777c8c8 74777777 77777774 .,vv..wwwwwttwww
1a2bc: e91ebb74 cf0c64e9 690ccfcf 48483648 t....d.....iH6HH
1a2cc: 0c364848 782424ca d369692d 44e9d3bf HH6..$$x-ii....D
1a2dc: e91e64d1 2b2b77e9 2b2bb32b 0d0dc8c8 .d...w+++.++....
1a2ec: 13414131 76767979 76764076 79797676 1AA.yyvvv@vvvvyy
1a2fc: 7e7e4079 4545e240 1331e231 3595527d y@~~@.EE1.1.}R.5
1a30c: 8745e213 4040e231 94736811 97739773 ..E.1.@@.hs.s.s.
1a31c: 00001597 00000000 ec000000 971c1c97 ................
1a32c: 73739797 707000cb e4e17070 31313176 ..ss..pppp..v111
1a33c: e2453131 e6ac1af5 9424e1db e8453ed1 11E.......$..>E.
1a34c: e887dce8 06e845e8 4545e8e8 45e8dce8 .....E....EE...E
1a35c: 13f6de87 37797679 0d0db0fc 7774740d ....yvy7.....ttw
1a36c: 74777777 77777474 bbbb77bb 69e90c38 wwwtttww.w..8..i
1a37c: 0ccfcfcf 483648cf cbcb48cb 89579169 .....H6H.H..i.W.
1a38c: 69690c2d e944bf44 1ebb6444 771e1e1e -.iiD.D.Dd.....w
1a39c: 79792b77 0dc8c82b 4141e876 76797913 w+yy+...v.AA.yyv
1a3ac: 76404040 79797676 40763131 e2e24040 @@@vvvyy11v@@@..
1a3bc: 7d333140 13a09552 31e23131 404040e2 @13}R...11.1.@@@
1a3cc: 12114011 ff735722 4a979797 00000000 .@.."Ws....J....
1a3dc: 00000000 1c1c97ec 739797ff 70704897 ...........s.Hpp
1a3ec: 60cf7070 31134066 45313131 acace640 pp.`f@.1111E@...
1a3fc: 32e1db24 4545e2e6 87dce8e8 4545e806 $..2..EE......EE
1a40c: 45e8e8e8 e8e8e845 13e80645 e3677631 ...EE...E...1vg.
1a41c: 7774b0fc 74747477 77777777 38747474 ..twwtttwwwwttt8
1a42c: bb772b77 cde9bbab cfcfcf69 366969cf w+w.....i....ii6
1a43c: 6d69cbcb e61c6969 6969ec91 d1e5780c ..imii....ii.x..
1a44c: 1e6d6dab 1e1e6464 792b771e c8c82b2b .mm.dd...w+y++..
1a45c: 5d30790d 76791341 40404076 79767676 .y0]A.yvv@@@vvvy
1a46c: 79313179 31404040 523c9f13 e2319f4c y11y@@@1..<RL.1.
1a47c: 40313131 e2404040 40401131 57221211 111@@@@.1.@@.."W
1a48c: 1cff1c73 00156397 70000000 1c1c4a00 s....c.....p.J..
1a49c: 97ff1c1c 70489773 90007070 31312b42 ....s.Hppp..B+11
1a4ac: 31313131 ac6ab331 e1dbe16a 45112457 11111.j.j...W$.E
1a4bc: dce84545 45e80687 e8e84545 e8e81345 EE.....EEE..E...
1a4cc: 313113e8 e367765e c80d5bfc 770dc8c8 ..11^vg..[.....w
1a4dc: 77777777 77747777 bb2b7777 1ebb6477 wwwwwwtwww+.wd..
1a4ec: cfcfcd0c cb69cfcf 43ec6948 97eccb2a ......i.Hi.C*...
1a4fc: 69d378ed e5bf6969 e9bbc55b 1e64d1bb .x.iii..[.....d.
1a50c: 2b771ee9 c8797979 415ec80d 761341f3 ..w+yyy...^A.A.v
1a51c: 40404076 79764040 79793131 c5794040 v@@@@@vy11yy@@y.
1a52c: 7d95957d 404079dc 313131e2 e2404040 }..}.y@@.111@@@.
1a53c: 40114545 12114040 1c975773 1c1c1c1c EE.@@@..sW......
1a54c: 0048ec91 1c910000 1c1c1c89 701c971c ..H............p
1a55c: 91007070 317e5a42 31313131 1af5e231 pp..BZ~111111...
1a56c: dbdb57ac e2f1948c e8454531 e88741e8 .W......1EE..A..
1a57c: 45453145 133145e8 31311313 e3207631 E1EE.E1...111v .
1a58c: c846b0fc c8c8c8c8 77c8c8c8 38777777 ..F........wwww8
1a59c: 77bb2b77 bbbb7477 cf69e913 d3694fcf w+.wwt....i..Oi.
1a5ac: 430c0c48 eccb694d 0c2d9097 d32d780c H..CMi....-..x-.
1a5bc: 2025d8e5 abd1bb1e 77e94ee9 79797979 ..% .....N.wyyyy
1a5cc: 5e760dc8 1341f37c 40407676 76404040 ..v^|.A.vv@@@@@v
1a5dc: 79767979 950f3313 878e4c52 407e7e45 yyvy.3..RL..E~~@
1a5ec: 31e24040 407e40e2 404031e2 40404040 @@.1.@~@.1@@@@@@
1a5fc: e6ff12e2 891c1c73 631c1c89 89074afa ....s......c.J..
1a60c: 1c898989 1c971c1c 07700070 31741a1a ........p.p...t1
1a61c: 31313131 66403131 db24acac d16a24db 111111@f..$..$j.
1a62c: 45313131 e8d7e8e8 314545e8 3145e831 111E.....EE11.E1
1a63c: 795e5e5e fc5b7676 7446d852 c8c84674 ^^^yvv[.R.FttF..
1a64c: c8c8c8c8 77777777 772bbb74 77747777 ....wwwwt.+wwwtw
1a65c: cf1edcdc 694fcfcf 2d690cd3 cbcb2d4d ......Oi..i-M-..
1a66c: d3e197ec bfae0c69 af2f642d bb1e6425 ....i...-d/.%d..
1a67c: 1ee9e91e 13797977 760d7913 7cf37c5e ....wyy..y.v^|.|
1a68c: 40767913 400d0d0d 5b137640 ce6c520f .yv@...@@v.[.Rl.
1a69c: 871333b1 7e7ee287 76404040 7e4040e2 .3....~~@@@v.@@~
1a6ac: 7e404040 40404040 68e24040 89738191 @@@~@@@@@@.h..s.
1a6bc: 63891c1c 63636363 1c898963 1c1c1c1c ...cccccc.......
1a6cc: 89cbcb97 117860e6 31313131 b3313131 .....`x.1111111.
1a6dc: 8c6a6a6a 9432dbdb 31313179 d7e8e845 jjj...2.y111E...
1a6ec: 454545e8 5e313131 5e5e5e31 655b7679 .EEE111^1^^^yv[e
1a6fc: 46c820e3 77747474 77c8c8c8 bb747477 . .Ftttw...wwtt.
1a70c: bb7774bb 74771e77 64bb0e79 36cfcf0c .tw.w.wty..d...6
1a71c: 36486969 48cbd32a 241c6948 786d6978 iiH6*..HHi.$ximx
1a72c: e5bf0cd3 6dd8255b e90ce9e9 dc79771e ....[%.m.....wy.
1a73c: 0d79e85d 3d415ec8 4076e85d 400d0d40 ].y..^A=].v@@..@
1a74c: 52fbf279 5b935265 e8407e79 40403187 y..ReR.[y~@..1@@
1a75c: 4040407e 7e404040 40407e7e 4040407e ~@@@@@@~~~@@~@@@
1a76c: 40404040 73d33411 07fa6373 2d2dcaca @@@@.4.ssc....--
1a77c: ca2d2d2d 6363faca 739773ff 3497fe22 ---...cc.s.s"..4
1a78c: 31313131 e2313131 946aacb4 57dbdbdb 1111111...j....W
1a79c: 313111e6 e8453131 45e8e8e8 31313145 ..1111E....EE111
1a7ac: 5e313131 65f27979 7676b337 747474c8 111^yy.e7.vv.ttt
1a7bc: 74747474 38383838 7438bbbb c8c87477 tttt8888..8twt..
1a7cc: 0c1e2b77 cfcfbb44 480c0c36 48cb0c69 w+..D...6..Hi..H
1a7dc: 89cb4848 0c6991e6 440c6978 c55b5be5 HH....i.xi.D.[[.
1a7ec: e90c0cbb 33ab1ee9 7979416b 7ce87679 .......3kAyyyv.|
1a7fc: 79e8f33d af337979 ce52cefb 76315b0f =..yyy3...R..[1v
1a80c: e27e7e40 4040e213 407e7e40 40404040 @~~...@@@~~@@@@@
1a81c: 407e7e7e 7e7e7e7e 40404040 597e11e2 ~~~@~~~~@@@@..~Y
1a82c: 7438d369 68684646 02020202 744646dd i.8tFFhh.....FFt
1a83c: fffacae9 68901a22 3131e2e2 45313131 ...."..h..11111E
1a84c: acac5a40 e1dbf132 3111e194 45313131 @Z..2......1111E
1a85c: e8e8e8e8 3131315e 5e313131 65b179b3 ....^111111^.y.e
1a86c: c8c87671 7446c8c8 38747474 77773838 qv....Ftttt888ww
1a87c: 38777738 87c8771e 0ce91e2b 0c44690c 8ww8.w..+....iD.
1a88c: 2d69cbcb 6948480c 70704848 ae5a5aca ..i-.HHiHHpp.ZZ.
1a89c: 0c69780c 5b5be544 1e6dd1c5 1377771e .xi.D.[[..m..ww.
1a8ac: 79135d6b 41e83179 93287f3d e3e3fb0f k].yy1.A=.(.....
1a8bc: 13f2fbe3 40407679 347e4076 7e40407e ....yv@@v@~4~@@~
1a8cc: 7e7e7e7e 407e4040 7e7e7e40 7e7e7e40 ~~~~@@~@@~~~@~~~
1a8dc: 40407e7e 12120de2 1246dd46 cfcdcd54 ~~@@....F.F.T...
1a8ec: 4f4fcfcf 5954cd4f c95fdd46 341c8938 ..OOO.TYF._.8..4
1a8fc: 31e240e2 31313131 6a6a7631 dbf1246a .@.111111vjjj$..
1a90c: e2b46a8c 31313131 e8e8e8e8 3131315e .j..1111....^111
1a91c: 79313131 65fb1379 c8c8c82c 46c8c8c8 111yy..e,......F
1a92c: 74774646 77383874 381e381e 0e771e38 FFwtt88w.8.88.w.
1a93c: 0ce91e0e 6969690c cbcbcb69 480c69bb .....iiii....i.H
1a94c: 70700ccb edca6970 69ca9065 d1d1440c ..pppi..e..i.D..
1a95c: bbc525d8 13b32bbb 67131616 28252067 .%...+.....gg %(
1a96c: f0f0b6ad af7d4c21 0d0d79d1 7979760d ....!L}..y...vyy
1a97c: 0d407676 40400d34 7e7e7e7e 4040407e vv@.4.@@~~~~~@@@
1a98c: 7e404040 7e7e7e7e 407e7e7e dd7468e2 @@@~~~~~~~~@.ht.
1a99c: cf4e74dd cfcfcfcf 3636cfcf a9a9a936 .tN.......666...
1a9ac: 544fa9a9 745fc974 e2e23412 31313131 ..OTt._t.4..1111
1a9bc: acd8e231 f1db946a b39424db 31313131 1...j....$..1111
1a9cc: e8e83131 31315ee8 79313131 fc371376 11...^11111yv.7.
1a9dc: c8c876f2 77c8c8c8 77467774 38383874 .v.....wtwFwt888
1a9ec: 38383838 13383838 e96d2bb5 69690c0c 8888888..+m...ii
1a9fc: cbcbcbcf 69cb44cb 701ebbe9 36697070 .....D.i...pppi6
1aa0c: 5a5af16d b0a02ce1 28c7b4e5 5bb4e55b m.ZZ.,.....([..[
1aa1c: 8e8e6b6e 214c4c93 28adb6b6 1341f37f nk...LL!...(..A.
1aa2c: 0d0d0d40 76760d0d 40767679 400d340d @.....vvyvv@.4.@
1aa3c: 7e7e7e40 4040407e 40404040 7e7e4040 @~~~~@@@@@@@@@~~
1aa4c: 7e7e7e7e 744e117e 5454cd12 cfcfcdcd ~~~~~.Nt..TT....
1aa5c: 4f4f4fcf a9a9a91f 3b3ba9a9 12543b3b .OOO......;;;;T.
1aa6c: 34195e76 3131e2e2 5a403131 f1e66a6a v^.4..1111@Zjj..
1aa7c: 6632dbdb 5f313176 5e313131 31315ee8 ..2fv11_111^.^11
1aa8c: 76765f31 10e32076 c8c8765b 77c8c8c8 1_vvv ..[v.....w
1aa9c: 74747474 12387474 4e38384e 7738384e tttttt8.N88NN88w
1aaac: 441e336e 440c0ce9 cbcbcbe9 48e936cb n3.D...D.....6.H
1aabc: 44e96948 36707070 cbd3d348 4c3c5378 Hi.Dppp6H...xS<L
1aacc: f0e3be71 713721f0 8e8e6e8e c7930f0f q....!7q.n......
1aadc: 7c7c4125 41f3f37c 0d0d7613 400d0d0d %A|||..A.v.....@
1aaec: 76767976 0d347e40 7e7e4040 407e7e7e vyvv@~4.@@~~~~~@
1aafc: 40404040 40404040 7e7e7e7e 40407e7e @@@@@@@@~~~~~~@@
1ab0c: 54cdcf4f cdcdcd4e 4f4fcfcf a9a9a9a9 O..TN.....OO....
1ab1c: 08a9a9a9 54543b08 5e461259 31317e76 .....;TTY.F^v~11
1ab2c: 76313131 246a6a6a 94dbdbf1 5f311124 111vjjj$....$.1_
1ab3c: 31315f5f 5e5e135e 76765f31 37105b76 __11^.^^1_vvv[.7
1ab4c: c82b76d1 c8c8c8c8 38747477 38387438 .v+.....wtt88t88
1ab5c: 54545412 38384e54 bbe9132b d30c0c6d .TTTTN88+...m...
1ab6c: cbcf6d44 0c36cbcb cb697070 70704838 Dm....6.ppi.8Hpp
1ab7c: 36367070 03abcb48 5bbfaebf afafaf8e pp66H......[....
1ab8c: ab2b2bd1 41d720b3 5e315ed7 f37c41e8 .++.. .A.^1^.A|.
1ab9c: 4031d741 0d0d0d0d 76767640 340d4076 A.1@....@vvvv@.4
1abac: 7e404034 7e7e4040 40404040 e2404040 4@@~@@~~@@@@@@@.
1abbc: 7e7e7e40 407e7e7e cd4f0d40 cd541254 @~~~~~~@@.O.T.T.
1abcc: 4fcfcfcd a9a9a9a9 a9a9a9a9 543b0808 ...O..........;T
1abdc: 74685954 314074c9 e2313131 6a94acd8 TYht.t@1111....j
1abec: e1dbf1db 3111b46a 5f5f5f5f 5e135e31 ....j..1____1^.^
1abfc: 76767631 0ffcaf76 c8767679 19c8c8c8 1vvvv...yvv.....
1ac0c: 74747477 38747474 54545412 38545454 wtttttt8.TTTTTT8
1ac1c: 0ce91e1e 69690c6d cb690c0c 36cbcbcb ....m.ii..i....6
1ac2c: 4870700c 00cbe9cb 69697070 2d0c6948 .ppH....ppiiHi.-
1ac3c: 1ebf6d2d bb1e64b3 77c86464 205ec877 -m...d..dd.ww.^
1ac4c: 0dc8b313 d731760d e8417c7c 0d0d4076 .....v1.||A.v@..
1ac5c: 7640400d 0d407676 40403434 7e404040 .@@vvv@.44@@@@@~
1ac6c: 7e40407e 407e7e7e 7e404040 7e7e7e7e ~@@~~~~@@@@~~~~~
1ac7c: 34117e40 1e4e4ecf cfcdcd4e a9a9a94f @~.4.NN.N...O...
1ac8c: a9a9a9a9 080808a9 68595454 e26838dd ........TTYh.8h.
1ac9c: 313131e2 6a6ae140 dbf1f157 5fb36a24 .111@.jjW...$j._
1acac: 5f5f5f31 5e5e315f 7676315e b1fcb176 1____1^^^1vvv...
1acbc: 76797679 464619c8 38747474 38747438 yvyv..FFttt88tt8
1accc: 54545412 54545454 0c0ce94e 6969690c .TTTTTTTN....iii
1acdc: cf0c6969 cbcbcbcb 70704436 360c7070 ii......6Dpppp.6
1acec: 2d707000 0cd3cb0c 780ccb69 6d6dd1bb .pp-....i..x..mm
1acfc: c8771e44 2bc8c8c8 7477c82b 760d3468 D.w....++.wth4.v
1ad0c: 417c4131 0d7631d7 400d0d0d 40404040 1A|A.1v....@@@@@
1ad1c: 4034340d 40407e40 40407e7e 7e7e7e7e .44@@~@@~~@@~~~~
1ad2c: 40404040 7e7e7e7e e240407e 674e0d31 @@@@~~~~~@@.1.Ng
1ad3c: cdcd3867 a9a94fcf a9a9a9a9 0808a9a9 g8...O..........
1ad4c: 68545408 e2685446 313131e2 94944031 .TThFTh..1111@..
1ad5c: f1f1246a 769432db 5f5f5f5f 5e315f5f j$...2.v______1^
1ad6c: 765e5e5e 5b10fb5e 795e7976 7446c879 ^^^v^..[vy^yy.Ft
1ad7c: 74747474 38381238 54545412 5454cd54 tttt8.88.TTTT.TT
1ad8c: 0c0c4e4e 690c6969 440c6969 cbcb360c NN..ii.iii.D.6..
1ad9c: 00bbcbcb 0c000000 70707036 d3cb0c2d ........6ppp-...
1adac: 0c69692d 4441bb0c 1e1e6de9 77c82b1e -ii...AD.m...+.w
1adbc: 12772bc8 34681212 41e8760d 31e84141 .+w...h4.v.AAA.1
1adcc: 0d0d0d76 40404040 34343440 7e7e7e7e v...@@@@@444~~~~
1addc: 7e7e7e7e 7e7e7e7e 40407e7e 7e347e7e ~~~~~~~~~~@@~~4~
1adec: 31407e34 dc314545 544e2b17 a94fcdcd 4~@1EE1..+NT..O.
1adfc: a9a9a9a9 08a9a9a9 b2540808 e23454b2 ..........T..T4.
1ae0c: 31e2e2e2 6ad1e231 f1db6a57 5a32dbf1 ...11..jWj....2Z
1ae1c: 5f5f5fdd 5f5f5f5f 5f5e5e31 20e3e313 ._______1^^_...
1ae2c: 79797676 c8c87679 74747446 12123838 vvyyyv..Fttt88..
1ae3c: 12545459 cdcdcd54 0c4e54cd 0ce96969 YTT.T....TN.ii..
1ae4c: cb696969 cbcbcbcb 446936cb 00000070 iii......6iDp...
1ae5c: 4870360c 360c2d70 6969e96d f3200c69 .6pHp-.6m.iii. .
1ae6c: e90ce9d1 64bb1e1e c8b3771e 12121212 .......d.w......
1ae7c: 310d0d34 d7414141 0d407913 400d0d0d 4..1AAA..y@....@
1ae8c: 34340d40 347e7e34 34347e34 407e7e7e @.444~~44~44~~~@
1ae9c: 34347e7e 3434347e e27e347e 87e84145 ~~44~444~4~.EA..
1aeac: 12e933b5 4fcdcd54 a9a9a9a9 a9a9a9a9 .3..T..O........
1aebc: 23540808 11111254 e2e21111 e1403131 ..T#T.......11@.
1aecc: f157946a 94dbdbf1 5f317ef5 5f5f5f5f j.W......~1_____
1aedc: 315e315f 5e37fcc5 76767676 19c87676 _1^1..7^vvvvvv..
1aeec: 747477c8 59383838 38545959 cdcdcd54 .wtt888YYYT8T...
1aefc: cd54cdcd 0c696969 69696969 690c6969 ..T.iii.iiiiii.i
1af0c: 0c48cbcb 00704844 48360c00 cbcb4848 ..H.DHp...6HHH..
1af1c: 696dd3cb 44693669 e964c520 1ee91ee9 ..mii6iD .d.....
1af2c: 2babab2b 121274b3 0d776812 4141e879 +..+.t...hw.y.AA
1af3c: 7631e8d7 0d0d0d40 340d400d 0d0d3434 ..1v@....@.444..
1af4c: 34343434 7e0d7e34 347e407e 34343434 44444~.~~@~44444
1af5c: 407e7e34 0e5d06e2 4ee25db5 cdcd5454 4~~@..]..].NTT..
1af6c: a9a94f4f a9a9a9a9 a5a50808 11e2676d OO..........mg..
1af7c: 11111111 4031e2e2 246a5757 dbdbf10b ......1@WWj$....
1af8c: 5f11d86a 765f5f5f 315f5f76 790feab1 j..____vv__1...y
1af9c: 76767676 19c81976 74747419 59123838 vvvvv....ttt88.Y
1afac: 54545959 cdcdcd54 cdcdcdcd cf6969cd YYTTT........ii.
1afbc: 696969cf 0c696969 48cb3669 4870440c .iiiiii.i6.H.DpH
1afcc: 48cb7070 48cbcb48 4444cb70 6d36690c pp.HH..Hp.DD.i6m
1afdc: d7d16d2d e91e6dbb 2bdc671e 1277c8bb -m...m...g.+..w.
1afec: 74121212 e879760d 13e8d7d7 40404079 ...t.vy.....y@@@
1affc: 7e407e7e 407e3434 3434347e 407e7e34 ~~@~44~@~4444~~@
1b00c: 1268347e 347e3468 407e3434 5d41e831 ~4h.h4~444~@1.A]
1b01c: e2316bb5 cd54cd34 4f4f4fcd a9a9a9a9 .k1.4.T..OOO....
1b02c: 080808a9 13051843 11111111 e2e21111 ....C...........
1b03c: 94e66a64 dbf10bdb 5f19948c 765f5f5f dj.........____v
1b04c: 31767676 76af65fb 76767676 1919c876 vvv1.e.vvvvvv...
1b05c: 74741919 12383838 54545454 cdcdcdcd ..tt888.TTTT....
1b06c: cdcdcdcd 0c0c0ccd 690c69cb 69cbcbcf .........i.i...i
1b07c: cbcb0c0c 00d30c48 48484870 cb6d69cb ....H...pHHH.im.
1b08c: 6dcb4848 cbcb690c 4469d36d 1e1ed120 HH.m.i..m.iD ...
1b09c: 336e2be9 1e777777 12121212 0d0d0d68 .+n3www.....h...
1b0ac: e8e81379 0d7931e8 12541268 54545459 y....1y.h.T.YTTT
1b0bc: 7e343468 4040347e dd466812 68546846 h44~~4@@.hF.FhTh
1b0cc: 4034347e 5df34131 e2e86b6b cdcd4040 ~44@1A.]kk..@@..
1b0dc: 4f4fcdcd a9a94f3b 08080808 9a187a6d ..OO;O......mz..
1b0ec: 111131a0 e2111111 e66af57e f10b0b57 .1......~.j.W...
1b0fc: 346624db 5f5f5f5f 5e407676 7633fce3 .$f4____vv@^..3v
1b10c: 76767676 c80dc876 7419c876 12383838 vvvvv...v..t888.
1b11c: cd545454 cd3b3b3b cdcdcdcd e90ccdcd TTT.;;;.........
1b12c: cbcbcb0c 0c69cbcb 36692d2d 2d0c4836 ......i.--i66H.-
1b13c: 48487070 2ab02dcb 703636cb 36363648 ppHH.-.*.66pH666
1b14c: 690c0c69 bbd1ab0c 33dc1ee9 1e771e77 i..i.......3w.w.
1b15c: 124e4e12 0d341212 13790d0d 68c813e8 .NN...4...y....h
1b16c: a1a1dd46 a1d9d9d9 6802dda1 407e6812 F..........h.h~@
1b17c: 75a15959 d95858df 7e7e1259 f3f306e2 YY.u.XX.Y.~~....
1b18c: 31e85d5d 547e4040 4fcdcdcd 4f3b3b4f ]].1@@~T...OO;;O
1b19c: 3b08a53b 7ad43b54 e2dc9a18 11111111 ;..;T;.z........
1b1ac: 94e67ee2 72723257 e1e60bf1 765f5fa4 .~..W2rr.....__v
1b1bc: 20407676 7613e310 0d0d7676 0d0d7676 vv@ ...vvv..vv..
1b1cc: 77c87676 12121274 cd545454 4f4f3bcd vv.wt...TTT..;OO
1b1dc: cdcdcd3b e9cdcd0c cfcb2d6d cbcb6969 ;.......m-..ii..
1b1ec: 6969cbcb 69483636 48484869 011b6936 ..ii66HiiHHH6i..
1b1fc: 3636cb2d 36487048 0c69cb36 646d0c0c -.66HpH66.i...md
1b20c: 2b774e77 1e1e1eab 4e4e121e 68121212 wNw+......NN...h
1b21c: 400d0d0d a168120d df5858df dfdfdfdf ...@..h..XX.....
1b22c: 58585858 5902d958 2323a5a9 df75a1a4 XXXXX..Y..##..u.
1b23c: 6868d9df f3f34511 3131e841 12407e40 ..hh.E..A.11@~@.
1b24c: cdcd5459 3b543b4f 54a53b3b 43a5543b YT..O;T;;;.T;T.C
1b25c: 619a187a 1111e231 6a2b1111 72db5732 z..a1.....+j2W.r
1b26c: 940bf172 765fddd8 af407676 76760f65 r....._vvv@.e.vv
1b27c: 0d767676 0d464646 46c8760d 59123874 vvv.FFF..v.Ft8.Y
1b28c: 54545454 4f4f3bcd cd4f4f4f cdcd0ccd TTTT.;OOOOO.....
1b29c: cf6d0c0c cbcb0c0c 696969cb 483636cb ..m......iii.66H
1b2ac: 48486936 8a43cb48 36cb6943 69707048 6iHHH.C.Ci.6Hppi
1b2bc: d3690c0c e90c44d3 4e4e77bb 1e1e2b1e ..i..D...wNN.+..
1b2cc: 12121e1e 12124e4e 0d343474 f7a15412 ....NN..t44..T..
1b2dc: dfdff7da d9757575 a1a1a1d9 58dfd90a ....uuu........X
1b2ec: a90802d9 a102b723 a1d9dfdf 6e413159 ....#.......Y1An
1b2fc: 40e23141 68407e40 cd546859 54544fcd A1.@@~@hYhT..OTT
1b30c: 54cdcdcd 59cdcd54 187ad459 11e2dc01 ...TT..YY.z.....
1b31c: 727e1111 7257326a dbf1722f 7611c86a ..~rj2Wr/r..j..v
1b32c: 0f764076 7640f265 76767676 4646460d v@v.e.@vvvvv.FFF
1b33c: 0d190d46 12387474 54545454 4f4fcdcd F...tt8.TTTT..OO
1b34c: cf4f4fa9 cd0ccdcd 69cbcfcd cbcb69cb .OO........i.i..
1b35c: cbcb6969 48483669 48cbcb48 050ccb48 ii..i6HHH..HH...
1b36c: cbcb6961 cb704848 0c0ce9d3 0c446dd3 ai..HHp......mD.
1b37c: 4e771ee9 1e64bb0c 381e1e1e 12544e12 ..wN..d....8.NT.
1b38c: 0d777774 dadf744e 5f7575df a1a1a1a1 tww.Nt...uu_....
1b39c: 0202a4a1 29a40202 df58d9a1 b2a5a9b2 .......)..X.....
1b3ac: d9dfa102 3d13b2a1 4040310e 0d407e7e .......=.1@@~~@.
1b3bc: 54590254 59a9cdcd cdcd5459 cd545954 T.YT...YYT..TYT.
1b3cc: a877b254 e21b8218 02111111 323294ed T.w...........22
1b3dc: 0b722fe5 11469424 e35edd40 76dd1310 ./r.$.F.@.^....v
1b3ec: 76767640 46464676 0d464646 12387446 @vvvvFFFFFF.Ft8.
1b3fc: 54545454 4fcdcdcd 4f4fa9a9 cfcdcdcf TTTT...O..OO....
1b40c: cbcfcfcf 6969cb36 cbcbcbcb cb696969 ....6.ii....iii.
1b41c: 48cb4848 43cb4848 cbcb6da0 70484836 HH.HHH.C.m..6HHp
1b42c: e9e9d369 446d0c69 77e90c0c ab2b4e4e i...i.mD...wNN+.
1b43c: 77771e1e 54121e1e c8771212 d9da46cd ..ww...T..w..F..
1b44c: 59b246dd a5a5a559 a5a5a5a5 23a5a5a5 .F.YY..........#
1b45c: a1a4b723 a5a1dfd9 a1a4b208 79b2a1d9 #..............y
1b46c: 7e40455d 0d403434 54b20254 a94fcd54 ]E@~44@.T..TT.O.
1b47c: cd5459b2 54595454 025954cd 1b82a8e5 .YT.TTYT.TY.....
1b48c: 1111e231 32325777 0b2fe5db a45a320b 1...wW22../..2Z.
1b49c: 655b4040 40dd7637 7676760d 46460d76 @@[e7v.@.vvvv.FF
1b4ac: 74747474 38747474 54545459 4fcdcdcd ttttttt8YTTT...O
1b4bc: 4f1fa94f 4fcfcf4f cbcb4f4f 69cbcb36 O..OO..OOO..6..i
1b4cc: cbcbcbcb 0c0c0c69 48367036 69484870 ....i...6p6HpHHi
1b4dc: cb366d43 70484848 1e697070 e90c69e9 Cm6.HHHpppi..i..
1b4ec: e90c0ce9 2b1e4e77 ab7777bb 121e1e77 ....wN.+.ww.w...
1b4fc: 7712124e ddf7464e 545959b2 a9a90808 N..wNF...YYT....
1b50c: a9a9a9a9 a50808a9 23a5a5a5 d92902b7 ...........#..).
1b51c: 23a546df 02a1d929 7e403112 68407e34 .F.#)....1@~4~@h
1b52c: 2302dd3b 1fcd5454 5459b254 59545454 ;..#TT..T.YTTTTY
1b53c: 59545459 824dddb2 e2e2311b ed6aae7e YTTY..M..1..~.j.
1b54c: 2fe57232 b494720b 650f7602 dddd40af 2r./.r...v.e.@..
1b55c: 0dc9c946 b2684646 687474b2 12126868 F...FFh..tthhh..
1b56c: 54545412 cfcdcdcd 1f1fa94f cfcf4f4f .TTT....O...OO..
1b57c: 36cbcf1f 69cb3636 696969cb 696969cb ...666.i.iii.iii
1b58c: 48484836 70004848 4848cb36 70484848 6HHHHH.p6.HHHHHp
1b59c: cf707070 e90c0c44 0ccd0cd3 1e387738 ppp.D.......8w8.
1b5ac: 771e1e77 77777764 744e1212 4675121e w..wdwww..Nt..uF
1b5bc: a9085459 59a508a9 020202b2 08a559b2 YT.....Y.....Y..
1b5cc: 08a9a9a9 23a5a5a5 d9d929b7 a10259b2 .......#.)...Y..
1b5dc: 7e68b2a4 4f683434 2302a13b 3b5454a5 ..h~44hO;..#.TT;
1b5ec: 59b2b21f 54545454 5454b259 a102b754 ...YTTTTY.TTT...
1b5fc: 11316143 572268e2 e5e58ced 94727272 Ca1..h"W....rrr.
1b60c: fcea25d1 dd407e13 464646dd 80d7e876 .%...~@..FFFv...
1b61c: b2685f5e 59595968 54545459 cfcdcdcd ^_h.hYYYYTTT....
1b62c: 1fa94f4f cf4f1f1f cbcf1fcf 36363636 OO....O.....6666
1b63c: 6969cb36 3636cbcb 48484848 00484848 6.ii..66HHHHHHH.
1b64c: 48707000 70704848 1f1f7070 0ccf0c36 .ppHHHpppp..6...
1b65c: cde9bf6d 381e4e0c 1e4e4e4e ab772b2b m....N.8NNN.++w.
1b66c: 54121277 465f4e68 081fa954 58dfa1b2 w..ThN_FT......X
1b67c: 58585858 58585858 02a1d958 a5a9a9a5 XXXXXXXXX.......
1b68c: 02232323 b2a1d9a4 a9235459 1fa95454 ###.....YT#.TT..
1b69c: 2302d959 54a5a5a5 59b23ba9 543b5454 Y..#...T.;.YTT;T
1b6ac: 59b25954 b723543b 79775fdd 571e11e2 TY.Y;T#.._wy...W
1b6bc: bf51eded 517272e5 f0d6afe6 40dd3425 ..Q..rrQ....%4.@
1b6cc: 5e466846 e0e0e062 b9c6c6f4 59595968 FhF^b.......hYYY
1b6dc: 54545459 cfcdcdcd 4f4f4fcf 4f1f1f1f YTTT.....OOO...O
1b6ec: cb1fcbcf cbcb3636 69cbcb36 36cbcb69 ....66..6..ii..6
1b6fc: 48484848 48484848 00000000 70707000 HHHHHHHH.....ppp
1b70c: 1f707070 cf363636 cd44d30c 4e4e0ccd ppp.666...D...NN
1b71c: 4e544e12 bbbbab1e 121e742b 68545454 .NTN....+t..TTTh
1b72c: dd54a9a9 dff7f775 a1a1d975 a1a1a1a1 ..T.u...u.......
1b73c: 88d90a0a 02d95858 a508a908 a4b72323 ....XX......##..
1b74c: 02a429a1 b25423b2 23b2d9d9 a5a5a5a5 .)...#T....#....
1b75c: b2b21f54 0854a559 5959a5a5 a5a554b2 T...Y.T...YY.T..
1b76c: 75ddb7b7 787e3446 2f8c8c57 4d72e5bf ...uF4~xW../..rM
1b77c: 216f5a8c 345e3d7c 625e0234 3d3df4f4 .Zo!|=^44.^b..==
1b78c: 5062623d 5959da50 54545459 4fcdcdcd =bbPP.YYYTTT...O
1b79c: cf4f4f4f 1f1f364f 7036cf1f cb363648 OOO.O6....6pH66.
1b7ac: cb36cbcb 36cb6969 48483636 70707048 ..6.ii.666HHHppp
1b7bc: 00007048 70000000 70707070 cf361f1f Hp.....ppppp..6.
1b7cc: 0c6d0c0c cd5454cd 544e4e54 77777712 ..m..TT.TNNT.www
1b7dc: 771277c8 3b545974 df5f54a9 a1d975df .w.wtYT;.T_..u..
1b7ec: 29a1a1a1 a1a12929 2929a1a1 d9a1a129 ...)))....)))...
1b7fc: b2dddf58 a5a5a523 a5080808 a1ddb259 X...#.......Y...
1b80c: a523a4d9 a5a5a5a5 02a5a9a5 54a523b2 ..#..........#.T
1b81c: 23a5a508 08b2b7b2 b7b723a5 08ddf7dd ...#.....#......
1b82c: 908c3273 72bfbfbf 20e132e5 465e80d7 s2.....r.2. ..^F
1b83c: f4625fb7 3d3d62c6 50626262 c950da50 ._b..b==bbbPP.P.
1b84c: 54545454 cfcdcdcd cf4f4f4f 1f364fcf TTTT....OOO..O6.
1b85c: 701f1f1f 36363670 363636cb cbcbcbcb ...pp666.666....
1b86c: 48363636 48704848 7070fafd 00000000 666HHHpH..pp....
1b87c: 70707000 4f1f1f1f cdcd0c0c 4e5454cd .ppp...O.....TTN
1b88c: 5454cd54 2b2b7454 74127777 12741277 T.TTTt++ww.tw.t.
1b89c: 75df46a9 dda1a1d9 02dda1dd 02020202 .F.u............
1b8ac: a402b702 a12929a4 d90aa1a1 a1d9d9d9 .....)).........
1b8bc: dddddda1 a1a1a1a1 a5a52302 a5a5a5a5 .........#......
1b8cc: 02a9a5a5 a5a52302 a5540823 b259b2a5 .....#..#.T...Y.
1b8dc: 23230859 daddb7b7 908c2274 bfbfab0b Y.##....t"......
1b8ec: e5e6ae2f 23027640 f4f43002 62626262 /...@v.#.0..bbbb
1b8fc: 50b95062 dff75050 545454a1 4fcdcdcd bP.PPP...TTT...O
1b90c: 4f4f4f4f 3636364f 1f1f1f1f 36cb1f70 OOOOO666....p..6
1b91c: 36363636 36cbcb36 36cbcb36 48484848 66666..66..6HHHH
1b92c: 0063fafd 00000070 70700000 1f1f1f70 ..c.p.....ppp...
1b93c: cdcdcf4f 5454cdcd 3b545454 2b12543b O.....TTTTT;;T.+
1b94c: 74c8b3b3 74121277 7575a174 a1a1a15f ...tw..tt.uu_...
1b95c: 23b202dd 080808a5 a5a50808 b7b723a5 ...#.........#..
1b96c: a402b7b7 a1a1dda4 a1a1a1a1 b7b7a429 ............)...
1b97c: a5a5a523 a5a5a5a5 021fa5a5 a52323a4 #............##.
1b98c: a50823a5 b223a5a5 a9b2a423 b7b72323 .#....#.#...##..
1b99c: 9081d3a4 bfbbae9b e6aeaebf 0223b274 ............t.#.
1b9ac: 62f46280 b9505062 6262b9b9 a175f750 .b.bbPP...bbP.u.
1b9bc: 543bb2dd 3bcdcdcd 364f4f4f 36363636 ..;T...;OOO66666
1b9cc: 1f1f1f36 36367070 69364848 36363669 6...pp66HH6ii666
1b9dc: cbcb3636 48484836 fdfa0715 70707000 66..6HHH.....ppp
1b9ec: 70000070 1f1f7070 cdcdcfa9 54cd4ee9 p..ppp.......N.T
1b9fc: cd545454 123b3b3b b3d1c877 1274c879 TTT.;;;.w...y.t.
1ba0c: 5f75d946 a15fdda1 0808a5b2 08080808 F.u_.._.........
1ba1c: a5080808 a5a5a5a5 232323a5 b7b72323 .........#####..
1ba2c: 23b7b7b7 a5a5a523 a5a5a5a5 a5a5a5a5 ...##...........
1ba3c: b2a9a5a5 2323b2a1 0823a5a5 a5a5a5a5 ......##..#.....
1ba4c: a123b2b2 23230868 ed63a5b7 bbbf9797 ..#.h.##..c.....
1ba5c: 72bfbfbf 305f6832 b97c6262 f7f7b9b9 ...r2h_0bb|.....
1ba6c: b950b9f7 02dd5f80 3b23b2b2 cdcd3b3b ..P.._....#;;;..
1ba7c: 4f4f4f4f 36363636 1f701f36 4870701f OOOO66666.p..ppH
1ba8c: 48483648 36483636 cbcb3636 cbcbcbcb H6HH66H666......
1ba9c: fd630715 70700015 00007000 1f707070 ..c...pp.p..ppp.
1baac: 4fcfa91f cdcde9cd 54544e54 54545454 ...O....TNTTTTTT
1babc: 2b771e54 771379b3 a15f7546 dda1dda1 T.w+.y.wFu_.....
1bacc: 08080823 08080808 08080808 08080808 #...............
1badc: 08080808 a5a5a508 a5a5a5a5 a5a5a5a5 ................
1baec: a5a5a5a5 a5a5a5a5 02a9a5a5 232302d9 ..............##
1bafc: 59a508a5 a5a5a5a9 b2b223a5 a5a1a123 ...Y.....#..#...
1bb0c: 733b23a5 44979773 78bfbf44 f4f79090 .#;ss..DD..x....
1bb1c: f7b9b962 daf7f7f7 75f7dada b2b234c9 b..........u.4..
1bb2c: a5b2b2b2 3b3b3b08 4f4f4f4f 3636364f .....;;;OOOOO666
1bb3c: 701f3636 70483670 48487070 48484848 66.pp6HpppHHHHHH
1bb4c: cbcbcb36 1e0ccbcb 4a63faec 00000048 6.........cJH...
1bb5c: 70000070 70707000 4f4f4fcf cde94e4f p..p.ppp.OOOON..
1bb6c: 4e4e5454 54545454 12125454 2b2bbb77 TTNNTTTTTT..w.++
1bb7c: a1d97546 a1a1a1a1 0808a5b2 08a9a908 Fu..............
1bb8c: 0808a908 08080808 08080808 a508a508 ................
1bb9c: a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 ................
1bbac: dd08a9a5 2323a4df 23a5a523 a5a508b2 ......###..#....
1bbbc: b7a5a5a5 a1b7b702 2da502d9 891c9722 ...........-"...
1bbcc: 7844441e f772ed44 f7f7f7b9 dadab9f7 .DDxD.r.........
1bbdc: a4a1d9df 59686868 23235959 3b3b3b08 ....hhhYYY##.;;;
1bbec: 4f4f4f3b 36363636 70363636 70367070 ;OOO6666666ppp6p
1bbfc: 70707070 48484870 69cb3648 3e0c6969 pppppHHHH6.iii.>
1bc0c: 4a6391ab 00000048 00000000 70700000 ..cJH.........pp
1bc1c: cf4fcfcf cd4ecd4f 545454cd cd54544e ..O.O.N..TTTNTT.
1bc2c: 4e54543b 12771212 46a1df68 cd545459 ;TTN..w.h..FYTT.
1bc3c: 232354cd a9a9a9a5 a9a9a9a9 080808a9 .T##............
1bc4c: 08080808 08080808 a5a5a508 a5a5a5a5 ................
1bc5c: a5a5a5a5 08a5a5a5 d9b2a9a9 2323a4df ..............##
1bc6c: a5a52323 a5a90223 a5a5a5a5 b202b7a5 ##..#...........
1bc7c: a4d9ddb7 89897391 4444e978 44ed4444 .....s..x.DDDD.D
1bc8c: f7f7b975 5f75dff7 b702a4a1 59b2b2b7 u.....u_.......Y
1bc9c: 54a55459 3b3ba93b 4f4fcdcd 1f4f3636 YT.T;.;;..OO66O.
1bcac: 1f363636 701f1f70 48707070 70707070 666.p..ppppHpppp
1bcbc: cb364848 79690c69 ec89aef6 00000048 HH6.i.iy....H...
1bccc: 00000000 70000000 cd1fcd1f 4ecdcdcd .......p.......N
1bcdc: 5454cdcd 54545454 54543b54 12124e54 ..TTTTTTT;TTTN..
1bcec: a968d959 1f1f1f1f 701f1f1f a9a5a5a9 Y.h........p....
1bcfc: a9a9a9a9 a9a9a9a9 0808a908 08080808 ................
1bd0c: a5080808 a5a5a5a5 a9a908a5 08a9a9a9 ................
1bd1c: dfd90254 2323a4d9 a5a52323 08a423a5 T.....####...#..
1bd2c: a5a5a508 b7a5a5a5 02b7b2b2 89971c59 ............Y...
1bd3c: 6de96d89 2278d344 dd02dd74 a1a1a1a1 .m.mD.x"t.......
1bd4c: a4a4dda1 b2020202 54a55459 3ba90854 ........YT.TT..;
1bd5c: 4f3bcd3b 36361f4f 3636361f 361f1f70 ;.;OO.66.666p..6
1bd6c: 70707036 70707070 36cb3670 770c69cb 6pppppppp6.6.i.w
1bd7c: ec91338b 00000048 00007000 70000000 .3..H....p.....p
1bd8c: 364fcf70 4e4fcdcd 54cd3b38 544e4e54 p.O6..ON8;.TTNNT
1bd9c: 54545454 12545454 1f3bdd54 1f1f1f1f TTTTTTT.T.;.....
1bdac: 1f1f1f1f 0870701f a9a9a9a5 a9a9a9a9 .....pp.........
1bdbc: a9a9a9a9 08080808 08080808 08a50808 ................
1bdcc: b2a5a9a9 d9a1a1dd d95858d9 2323a4a1 .........XX...##
1bddc: a5232323 a4a5a5a5 a5a5a959 a5a5a5a5 ###.....Y.......
1bdec: b2b223a5 89970cb7 e9e97889 89e9d36d .#.......x..m...
1bdfc: dfda021c 2323b2a1 23b7b7b7 54232323 ......##...####T
1be0c: 3b545454 3ba93b3b 4f3b3b3b 1f1f1f4f TTT;;;.;;;;OO...
1be1c: 361f1f36 3670701f 48707036 70707070 6..6.pp66ppHpppp
1be2c: cb707048 6d69cf69 6944f606 00007036 Hpp.i.im..Di6p..
1be3c: 00700000 00000000 36cd7000 cdcdcd1f ..p......p.6....
1be4c: 4ecd4ee9 545454cd 54545454 54545454 .N.N.TTTTTTTTTTT
1be5c: 1f3b5954 1f1f1fa9 1f1f1f1f 1f1f1f1f TY;.............
1be6c: a9a5a970 a9a9a9a9 a9a9a9a9 0808a9a9 p...............
1be7c: 08080808 a9080808 d9a10208 58585858 ............XXXX
1be8c: d9d9dfdf 2323a4a1 a5232323 a508a5a5 ......#####.....
1be9c: a51f0202 a5a5a5a5 23a5a5a5 97fae546 ...........#F...
1beac: e9788989 e96de9e9 2308911c a1d9a102 ..x...m....#....
1bebc: a523b2a4 080808a5 cd54543b a93b3b3b ..#.....;TT.;;;.
1becc: 1f4f3b3b 4fa91f1f 1f70704f 70707070 ;;O....OOpp.pppp
1bedc: 70707036 70707070 70363670 d30c6936 6pppppppp66p6i..
1beec: 69798b67 007048cb 00000000 00000000 g.yi.Hp.........
1befc: 4f700000 cdcd4f1f 543bcd1e 545438e9 ..pO.O....;T.8TT
1bf0c: 5454544e 54545454 a9545459 1f1f1fa9 NTTTTTTTYTT.....
1bf1c: 1f1f1f1f 1f1f1f1f a9701f1f a9a9a9a5 ..........p.....
1bf2c: a9a9a9a9 a9a9a9a9 0808a9a9 08a90808 ................
1bf3c: d9d9d9dd d9dfdfdf a1d9d9d9 23b702a1 ...............#
1bf4c: a5232323 08a5a5a5 a9a10223 a5a5a508 ###.....#.......
1bf5c: a5a5a5a5 6389e644 2d898989 6de90c0c ....D..c...-...m
1bf6c: 0a1effe9 b7b2dda1 020202b2 02a4a402 ................
1bf7c: 3ba559b2 3ba9a908 543ba9a9 d9a1ddb2 .Y.;...;..;T....
1bf8c: 4f298888 70701f70 48707070 70707070 ..)Op.pppppHpppp
1bf9c: cb487070 78693636 0c3e06e5 7048cb69 ppH.66ix..>.i.Hp
...
1bfb4: 70700000 4f4f7070 cdcd1e4e bbbb4e4e ..ppppOON...NN..
1bfc4: 54544e54 54545454 08545454 1f1f1fa9 TNTTTTTTTTT.....
1bfd4: 1f1f1f1f 1f1f1f1f 1f1f1f1f a908a91f ................
1bfe4: a9a9a9a9 a9a9a9a9 a9a9a9a9 591f08a9 ...............Y
1bff4: d9a1a1d9 dfdfdfdf a1d9d9d9 23b70229 ............)..#
1c004: a5232323 a5a5a5a5 a1b22308 08a5a9b2 ###......#......
1c014: 54a5a5a5 69bfe651 918991ff 2d0c0c0c ...TQ..i.......-
1c024: 741c6d2d 58585888 0a0a8858 b202dda1 -m.t.XXXX.......
1c034: 88d9ddb2 d90ad9d9 88d9d9d9 88888888 ................
1c044: 88888888 701f7029 70707070 70707070 ....)p.ppppppppp
1c054: 70487070 892d6936 0ce2c889 4848cb69 ppHp6i-.....i.HH
1c064: 00000070 00000000 70000000 36707070 p..........pppp6
1c074: 3b381ecd 381eab1e 54543864 54545454 ..8;...8d8TTTTTT
1c084: cd545454 1f1fa9a9 1f1f1f1f 1f1f1f1f TTT.............
1c094: 1f1f1f1f 081f1f1f a9a91f08 a9a9a9a9 ................
1c0a4: a9a9a9a9 591f08a9 dfd9d958 d9d9df58 .......YX...X...
1c0b4: a1a1d9d9 232302a4 a5232323 a5a5a5a5 ......#####.....
1c0c4: b22308a5 08a9a1dd 44a508a5 08388ced ..#........D..8.
1c0d4: 89911cca 0c0c0c91 63d30c2d d9a12923 ........-..c#)..
1c0e4: 888888d9 58585858 59b229d9 d9d9a102 ....XXXX.).Y....
1c0f4: 880a0ad9 0a0a0ad9 0a0a0a0a 704f0a0a ..............Op
1c104: 70707070 70707070 48707070 89cacb48 pppppppppppHH...
1c114: 4e0d2d91 4836cbcb 00007070 00000000 .-.N..6Hpp......
1c124: 00000000 36707000 cd38cd1f bb1e7977 .....pp6..8.wy..
1c134: 54abbb1e 54545454 3b545454 a9a9083b ...TTTTTTTT;;...
1c144: 1f1f1f1f a9a91f1f 1f1f1f1f 1f1f1f1f ................
1c154: a9a90800 a9a9a9a9 a9a9a9a9 08a9a9a9 ................
1c164: 0854dd88 d9465908 a1a1a1d9 b723b7a4 ..T..YF.......#.
1c174: a5232323 a5a5a5a5 2308a5a5 b2d902b2 ###........#....
1c184: 5154081f a508bfed 918963a9 0ccdca63 ..TQ.....c..c...
1c194: 910c2d0c a4a4b791 0a0aa1a1 dfd9d90a .-..............
1c1a4: 5858dfdf 6859ddd9 a1a1a129 0a0a0a0a ..XX..Yh).......
1c1b4: a1a10a0a cfdda1a1 70703670 70707070 ........p6pppppp
1c1c4: 70707070 6391ec48 cdcd69ca 4836cbcb ppppH..c.i....6H
1c1d4: 00007048 00000000 00000000 70700000 Hp............pp
1c1e4: 4f4fcd4f 54c80e4e 641e1e1e 54545438 O.OON..T...d8TTT
1c1f4: 54545454 a9083b3b 1f1f1fa9 1f1f1f1f TTTT;;..........
1c204: 1f1fa9a9 1f1f1f1f 08a9cd1f a9a9a9a9 ................
1c214: a9a9a9a9 1fa9a9a9 1f00a502 1f1f1f1f ................
1c224: a1d9dda9 2323b702 a5a5a523 a5a5a5a5 ......###.......
1c234: 08a5a5a5 a1b2b223 e6d3540a 08084e90 ....#....T...N..
1c244: 91ffcb08 690c6391 0c2d0c0c a4b72d63 .....c.i..-.c-..
1c254: a1a12929 a1a1a1a1 88d9d9d9 d958dfd9 ))............X.
1c264: a42959b2 a1a129a4 dda1a1a1 6846dddd .Y)..)........Fh
1c274: 7036703b 70707070 70707070 07910769 ;p6pppppppppi...
1c284: 36484815 48483648 00707048 00000000 .HH6H6HHHpp.....
1c294: 00000000 70007000 cdcd7070 12dc33cd .....p.ppp...3..
1c2a4: 4e4e4e12 5454bbab 54545454 08543b54 .NNN..TTTTTTT;T.
1c2b4: 1f1fa9a9 1f1f1f1f 1fa91fa9 1f1f1f1f ................
1c2c4: 12131e1f a9a9a9a9 a9a9a9a9 1fa9a9a9 ................
1c2d4: a9000808 a9a9a9a9 021f1fa9 2323b2a1 ..............##
1c2e4: a5a5a523 a5a5a5a5 08a5a5a5 b2b22308 #............#..
1c2f4: e69380a4 08080878 1c4a0808 69916391 ....x.....J..c.i
1c304: 0c0c0c69 a5cf632d a40223a5 29a12929 i...-c...#..)).)
1c314: a1a1a1a1 d9df88d9 cd0258df 54545968 .........X..hYTT
1c324: 59595454 59595959 1f70cd54 70707070 TTYYYYYYT.p.pppp
1c334: cb707070 ec91fa4a 48707048 48484848 ppp.J...HppHHHHH
1c344: 70704848 00000000 00000000 00000000 HHpp............
1c354: 36367000 77791e4f 54e94e77 54ab1e54 .p66O.ywwN.TT..T
1c364: 54545454 54545454 1fa9a908 1f1f1f1f TTTTTTTT........
1c374: a9a9a91f 1f1f1f1f 67331e1f a9084f79 ..........3gyO..
1c384: 1fa9a9a9 a9a9a9a9 1f1fa91f 1f1f1f1f ................
1c394: a9a9a91f 23dddd1f a5a52323 08a508a5 .......###......
1c3a4: a5a5a5a5 b2230808 ceea5bb2 08a9a95e ......#..[..^...
1c3b4: 63a90808 ca639163 0c0c6969 a963ca0c ...cc.c.ii....c.
1c3c4: a5a508a5 a4a4b2a5 dda1dddd dfd9a1dd ................
1c3d4: dfd9d9df b212cd68 595959b2 cdcd5454 ....h....YYYTT..
1c3e4: 70cfcdcd 70707070 4acb7070 cbec0707 ...ppppppp.J....
1c3f4: 70707048 48484870 48484848 00000070 HppppHHHHHHHp...
1c404: 00000000 001f0000 4f700000 541ecd4f ..........pOO..T
1c414: 4e4e774e 3838544e 54545454 54595454 NwNNNT88TTTTTTYT
1c424: a9a90854 1f1f1f1f a9a91f1f 1f1f1fa9 T...............
1c434: 1379121f a9123113 a9a9a9a9 a9a91f1f ..y..1..........
1c444: 1fa91fa9 1f1f1f1f a91f1f1f a1a91fa9 ................
1c454: a5a5a5b2 08080808 08080808 23080808 ...............#
1c464: 5ba66619 08290aa1 3608a91f 639191ff .f.[..)....6...c
1c474: 0cec690c fa91ec2d a5a5a508 a5080808 .i..-...........
1c484: 020202b2 4646dddd d9dfd9a1 cf54d9d9 ......FF......T.
1c494: 595454cd 59595959 cd545959 70707070 .TTYYYYYYYT.pppp
1c4a4: ca154870 70cb4a07 70700000 48487070 pH...J.p..ppppHH
1c4b4: 48484848 00007070 00000000 70000000 HHHHpp.........p
1c4c4: 70000070 4ecf3b36 381e543b 1e544e4e p..p6;.N;T.8NNT.
1c4d4: 54545454 59545454 08a53b59 a91f1fa9 TTTTTTTYY;......
1c4e4: a9a91f1f 1fa9a9a9 0d34121f 79131379 ..........4.y..y
1c4f4: a9a908a9 1f1f1fa9 a91fa9a9 1f1f1f1f ................
1c504: 1f1f1f1f 1fa91f1f a5a5a454 08080808 ........T.......
1c514: 08080808 cd08a508 7453a6f1 0aa12902 ..........St.)..
1c524: 1f1f23a1 6391ff4a ec696991 63ec2d0c .#..J..c.ii..-.c
1c534: a5a508ca 3ba5a5a5 b2543b3b dd466802 .......;;;T..hF.
1c544: d9dd5968 a1d9d9df cdcfcfcf cdcdcdcd hY..............
1c554: 545454cd 7070704f 07ca1548 7070154a .TTTOpppH...J.pp
1c564: 70700070 70707070 48484848 00707070 p.ppppppHHHHppp.
...
1c580: 4f1f7000 38cd3b4e 544e5438 544e5454 .p.ON;.88TNTTTNT
1c590: 54545454 a9595959 1fa9a908 a91f1f1f TTTTYYY.........
1c5a0: 1fa9a9a9 686868a9 13790d34 08081279 .....hhh4.y.y...
1c5b0: 1fa9a9a9 1f1f1f1f 1f1f1fa9 1f1f1f1f ................
1c5c0: 1f1f1f1f b7b21fa9 080808a5 08080808 ................
1c5d0: 44080808 596466e6 a1a40223 a4290a0a ...D.fdY#.....).
1c5e0: 63fffaa9 69690763 0c0cecec 08086963 ...cc.ii....ci..
1c5f0: 08080808 3b3b3b3b 6868593b 5468dd68 ....;;;;;Yhhh.hT
1c600: a1d9d946 cdcb68d9 cdcdcdcd cdcdcd54 F....h......T...
1c610: 36704f54 4a07caec 70704815 70007070 TOp6...J.Hpppp.p
1c620: 70707070 70704848 70707070 00000000 ppppHHpppppp....
1c630: 70000000 0000701f 70707000 cd3b544f ...p.p...pppOT;.
1c640: 4e4e3838 4e4e5454 54545459 12595959 88NNTTNNYTTTYYY.
1c650: 1f1fa959 a9a91f1f a91f1f1f 68686854 Y...........Thhh
1c660: 76343468 08797979 a9a9a908 1f1f1f1f h44vyyy.........
1c670: 1f1fa91f 1f1f1f1f 1f1f1f1f 3b1fa91f ...............;
1c680: 0808a502 08080808 5154083b 23597294 ........;.TQ.rY#
1c690: 02b223b2 a1a1a1a4 ffec0229 69ec631c .#......)....c.i
1c6a0: ececec69 a5a963ca 3b3b3b08 3b3b3b3b i....c...;;;;;;;
1c6b0: 54cdcd3b 46686868 d9745468 cfa1a1a1 ;..ThhhFhTt.....
1c6c0: cdcdcdcf cdcdcdcd 1536cdcd cbec4aca ..........6..J..
1c6d0: 70707070 70707070 70707000 70707070 pppppppp.ppppppp
1c6e0: 70704870 00000070 00000000 001f7000 pHppp........p..
1c6f0: a9700000 1f1f7070 381e38cd 3854544e ..p.pp...8.8NTT8
1c700: 5454541e 12595959 3b591212 1f1f1fa9 .TTTYYY...Y;....
1c710: 593ba91f 68b26868 34346868 310d0d0d ..;Yhh.hhh44...1
1c720: a9a9a912 1f1fa9a9 1f081f1f 1f1f1f1f ................
1c730: 1f1f1f1f a9a91f1f 0823021f 3b080808 ..........#....;
1c740: e6783b3b a508e9ed 2323b259 a1a102b2 ;;x.....Y.##....
1c750: a5292929 699163ec ececec69 1ffa07ec )))..c.ii.......
1c760: 3b3b0808 3b3b3b4f cdcd3b3b 686854cd ..;;O;;;;;...Thh
1c770: cd6868b2 d9a1a168 cfcfcf54 cdcdcdcd .hh.h...T.......
1c780: 36cdcdcd 704815ec 70707070 70707070 ...6..Hppppppppp
1c790: 70707070 70707070 70484870 00000070 pppppppppHHpp...
1c7a0: 00000000 00707000 00000000 1f70701f .....pp......pp.
1c7b0: 1e38cd1f 5454381e 5412bb12 59595959 ..8..8TT...TYYYY
1c7c0: 59121259 59595959 0d741259 6868680d Y..YYYYYY.t..hhh
1c7d0: 34346868 0d343434 a9a97931 1fa9a9a9 hh44444.1y......
1c7e0: a91f1f1f 1f1f1fa9 1f1f1f1f a9a91f1f ................
1c7f0: b259364f 08080808 94e1e908 3b083bae O6Y..........;.;
1c800: 23b223a5 a4b259a5 29292929 ca697002 .#.#.Y..)))).pi.
1c810: ecec6969 4a91ecec 08a94fa9 4f4f3b3b ii.....J.O..;;OO
1c820: 3bcf4f4f 54cdcdcd 6868b2b2 a1ddcd54 OO.;...T..hhT...
1c830: cfcb46d9 cfcdcfcf cfcdcfcf 70707070 .F..........pppp
1c840: 70707070 70364848 70707070 70707070 ppppHH6ppppppppp
1c850: 70484870 00007070 00000000 00000000 pHHppp..........
1c860: 00000000 70707070 383b1f1f 544e3838 ....pppp..;888NT
1c870: 12771254 59595959 59681259 b2595959 T.w.YYYYY.hYYYY.
1c880: 683468b2 0dc82bc8 34686868 34343434 .h4h.+..hhh44444
1c890: 3b131340 a9a9a9a9 1f1f1f1f 1f1f081f @..;............
1c8a0: 1f1f1f1f a91f1f1f 0d1e4f4f 083b3bb2 ........OO...;;.
1c8b0: 90e6ae08 083b08e9 59a5a53b b723a523 ......;.;..Y#.#.
1c8c0: 2929a4b2 cba92929 ec6969cf 63ececec ..))))...ii....c
1c8d0: a94fa9ec 4f4f4f4f cf4f4f4f cdcdcfcf ..O.OOOOOOO.....
1c8e0: 59b259cd 546868b2 cfa14654 cfcfcfcf .Y.Y.hhTTF......
1c8f0: cdcfcfcf 7070001f 70707070 36363636 ......pppppp6666
1c900: 00707048 70700070 70487070 00007070 Hpp.p.ppppHppp..
...
1c91c: 701f7000 a91f7070 5454543b 38121254 .p.ppp..;TTTT..8
1c92c: 12125959 68126812 34685959 0d0d6868 YY...h.hYYh4hh..
1c93c: c8c87468 68340dc8 34343434 e8314034 ht....4h44444@1.
1c94c: a9a9a912 1f1f1fa9 1f08701f 1f1f1f1f .........p......
1c95c: 4fa9a91f 161e4f4f 0854b245 78e6ed6d ...OOO..E.T.m..x
1c96c: 083b3b3b a5a53ba9 a5082359 2902b723 ;;;..;..Y#..#..)
1c97c: 1fa5b729 151569cb ecececec a9a936fa )....i.......6..
1c98c: 4f4f4fa9 4f4f4f4f cfcfcfcf 54cdcd4f .OOOOOOO....O..T
1c99c: 36540259 54484848 cfcfcfcd cfcfcfcf Y.T6HHHT........
1c9ac: 707070cf 48707070 4e4f3636 0070704f .ppppppH66ONOpp.
1c9bc: 00000000 70707000 00000000 00000000 .....ppp........
1c9cc: 00000000 00007070 00000000 3b707070 ....pp......ppp;
1c9dc: 543ba9a9 59545454 59591259 68686868 ..;TTTTYY.YYhhhh
1c9ec: 0db2b268 c8683476 6868680d 34c80d0d h...v4h..hhh...4
1c9fc: 34340234 31403434 a9a9c813 1f1fa91f 4.4444@1........
1ca0c: a91f1f1f 1f1f1fa9 a9a9a9a9 06774fa9 .............Ow.
1ca1c: 4e23e8b5 0c51e697 3b3bcd08 a53ba93b ..#N..Q...;;;.;.
1ca2c: a52323a5 b702b2a5 00000008 15360000 .##...........6.
1ca3c: ecec1569 4f1ffafa a9a9a9a9 4f4f4f4f i......O....OOOO
1ca4c: cfcf4f4f cf4fcfcf 483659cd 48cbcb36 OO....O..Y6H6..H
1ca5c: cfcb4f36 cfcfcfcf 700036cf 36707070 6O.......6.pppp6
1ca6c: 404f3636 70703640 00000000 70000000 66O@@6pp.......p
1ca7c: 00000070 00000000 00000000 00000000 p...............
1ca8c: 70000000 70700070 3b08a9a9 59125454 ...pp.pp...;TT.Y
1ca9c: 77123812 68746812 b2b26868 3476130d .8.w.hthhh....v4
1caac: b268c876 0d346868 34023434 40343434 v.h.hh4.44.4444@
1cabc: 3b797979 1f1f1fa9 701f1f1f a91fa9a9 yyy;.......p....
1cacc: 1fa9a9a9 31c8cd1f bf79f687 a9d3edbe .......1..y.....
1cadc: 3bcdcd3b 3ba9083b 23a5a5a5 08022308 ;..;;..;...#.#..
...
1caf4: 70700000 1f15cb70 a9a9a9a9 4fa9a9a9 ..ppp..........O
1cb04: 4f4f4f4f cfcfcf4f 481f59cf 48483636 OOOOO....Y.H66HH
1cb14: cf4f3648 4f4fcfcf 7070cf4f 70707070 H6O...OOO.pppppp
1cb24: 344f4f36 7036129d 00000070 00000000 6OO4..6pp.......
1cb34: 00000070 70007070 00007070 70700000 p...pp.ppp....pp
1cb44: 00000000 70007070 4f1f1f70 3838593b ....pp.pp..O;Y88
1cb54: 12771212 74127477 68686868 340d68b2 ..w.wt.thhhh.h.4
1cb64: 68767634 0d68b2b2 3434340d 34343434 4vvh..h..4444444
1cb74: af79400d 1f1f08b4 1f1f1f1f 1fa91f1f .@y.............
1cb84: 701fa9a9 79311e4f e35b7976 a94fbf5a ...pO.1yvy[.Z.O.
1cb94: cdcd3b3b 4f3b3bcd a508a53b 0023b2a5 ;;...;;O;.....#.
...
1cbac: 70000000 701fa91f a94f1f4f a9a9a9a9 ...p...pO.O.....
1cbbc: 4f4f4f4f cb364f4f 481f594f 48483636 OOOOOO6.OY.H66HH
1cbcc: 363b4848 364fcfcf 0048cb36 70707070 HH;6..O66.H.pppp
1cbdc: 124fcf36 364fe29d 00000070 70000000 6.O...O6p......p
1cbec: 00000000 48707000 70707048 00000070 .....ppHHpppp...
...
1cc04: 1f1f7070 383854a9 77123838 59747412 pp...T8888.w.ttY
1cc14: 68681268 59b26868 3468b2b2 68686834 h.hhhh.Y..h44hhh
1cc24: 340dc8c8 34020234 fc37f279 a9543765 ...44..4y.7.e7T.
1cc34: 1f1fa91f a91f1fa9 4f1f1fa9 7913791e ...........O.y.y
1cc44: 65fbd176 3b081e0f cd3b4fa9 4f4fcdcd v..e...;.O;...OO
1cc54: a53b3b4f 00a559a5 00000000 00000000 O;;..Y..........
1cc64: 00000000 4f1f1f1f 1f361f1f 3636361f .......O..6..666
1cc74: 4f4f3636 364f3636 48a95436 48484836 66OO66O66T.H6HHH
1cc84: 1fcf4848 36364f36 0036cb36 70707070 HH..6O666.6.pppp
1cc94: 4ecf3670 36129d3e 70007036 00000000 p6.N>..66p.p....
1cca4: 70000070 48487070 48484848 00004848 p..pppHHHHHHHH..
...
1ccbc: 1f707000 7454a91f 12383874 74741274 .pp...Ttt88.t.tt
1cccc: 68b25959 68686868 b2686868 686868b2 YY.hhhhhhhh..hhh
1ccdc: c8790d68 2c2b3434 fbfc2ee3 c831795b h.y.44+,....[y1.
1ccec: a91f1fa9 a91f1fa9 1e4f1f1f 79314513 ..........O..E1y
1ccfc: e3657167 4f740dd1 3b4fa908 4fcfcdcd gqe...tO..O;...O
1cd0c: 3b4f4f4f 00a9233b 00000000 00000000 OOO;;#..........
1cd1c: 00000000 701f1f70 3670a91f 361f1f1f ....p..p..p6...6
1cd2c: 36363636 364f4f36 70083b36 48484848 66666OO66;.pHHHH
1cd3c: 1f364848 36364f36 00363636 70707070 HH6.6O66666.pppp
1cd4c: 3b4f361f cde29d40 00004836 70007000 .6O;@...6H...p.p
1cd5c: 70707000 48484848 15484848 00fd1515 .pppHHHHHHH.....
1cd6c: 00007070 70000000 70707070 54a9361f pp.....ppppp.6.T
1cd7c: 74747412 68121212 68595974 68686868 .ttt...htYYhhhhh
1cd8c: 68686868 68b26868 0d343468 fce32c79 hhhhhh.hh44.y,..
1cd9c: 76d153e3 79764040 1fa97745 1f1f1f1f .S.v@@vyEw......
1cdac: 13c84ea9 133113e8 f2fcfcaf 0d0d0dc8 .N....1.........
1cdbc: a9a9a93b cfcdcd4f a9a94f4f 00a9543b ;...O...OO..;T..
...
1cdd4: 48151500 1f007070 1fa9701f 36361f1f ...Hpp...p....66
1cde4: 36361f1f 36363636 703b3b36 48484848 ..6666666;;pHHHH
1cdf4: a9364848 36364f1f 70363636 70707000 HH6..O66666p.ppp
1ce04: 4f363670 123e3e12 00703636 00000000 p66O.>>.66p.....
1ce14: 48487070 15484848 fd151515 07074a4a ppHHHHH.....JJ..
...
1ce2c: 1f700000 4f361f1f 7412543b 12681274 ..p...6O;T.tt.h.
1ce3c: 5959340d 740d6868 68687434 b2686868 .4YYhh.t4thhhhh.
1ce4c: c8346868 71fcfc53 34340dd1 76767676 hh4.S..q..44vvvv
1ce5c: 31453131 4e541277 e8e86777 af313113 11E1w.TNwg...11.
1ce6c: 79716510 0d0d0d0d a9a94e0d cfcf4fa9 .eqy.....N...O..
1ce7c: a94f4fcf 001fa5a9 00000000 00000000 .OO.............
1ce8c: cb150000 70707048 1f1f7000 1f1f70a9 ....Hppp.p...p..
1ce9c: 1f36361f 36363636 703b4f36 48484870 .66.66666O;ppHHH
1ceac: 1f364848 36363648 70483636 70707070 HH6.H66666Hppppp
1cebc: 36367070 343e403b 7048364f 00000000 pp66;@>4O6Hp....
1cecc: 48484870 15151548 07074afd 4a4a0707 pHHHH....J....JJ
1cedc: 000000fd 00000000 70700000 361f1f1f ..........pp...6
1ceec: 12543b4f 68127474 b268130d 0d68b2b2 O;T.tt.h..h...h.
1cefc: 34346874 68686868 712b6868 79b46ffc th44hhhhhh+q.o.y
1cf0c: 340d0d0d 76797634 31313176 13e8e813 ...44vyvv111....
1cf1c: 1313e845 37333113 76d13765 0d0dc876 E....137e7.vv...
1cf2c: 4f74770d cf4fa9a9 a94fcfcf 007008a9 .wtO..O...O...p.
...
1cf44: 15480000 70707015 70007070 1f70a91f ..H..ppppp.p..p.
1cf54: 361f1f1f 36363636 703b3636 70007070 ...6666666;ppp.p
1cf64: 36484848 48484870 00704836 70707070 HHH6pHHH6Hp.pppp
1cf74: 36707070 e23e1236 704836cd 48707070 ppp66.>..6HppppH
1cf84: 48484848 4afd1515 4a070707 1515fd4a HHHH...J...JJ...
1cf94: 00004848 00000000 00000000 1f363670 HH..........p66.
1cfa4: 543b4f36 12747459 68c80d74 68b25959 6O;TYtt.t..hYY.h
1cfb4: 68686868 68686834 fc53c8b2 68345b10 hhhh4hhh..S..[4h
1cfc4: 0dc8c834 79763434 31313176 13131331 4...44vyv1111...
1cfd4: 13131313 650f1331 76795b10 c80dc876 ....1..e.[yvv...
1cfe4: 7474770d 4f3b1f4e 4f4fcfcf 0070a93b .wttN.;O..OO;.p.
...
1cffc: 15000000 700015cb 70707070 a91f0070 .......pppppp...
1d00c: 36363670 36363636 704f3648 70701f70 p6666666H6Opp.pp
1d01c: 48487070 36364870 70707048 70707070 ppHHpH66Hppppppp
1d02c: 36707070 e240cf36 483636cd 48484870 ppp66.@..66HpHHH
1d03c: 15484848 07074afd 15fd4a4a 48481515 HHH..J..JJ....HH
1d04c: 00484848 00000000 00000000 1f700000 HHH...........p.
1d05c: cd363670 59595454 74127459 68685912 p66.TTYYYt.t.Yhh
1d06c: 68686868 b2683468 711053c8 34767664 hhhhh4h..S.qdvv4
1d07c: 0d0d3468 0d34340d 13137676 13133131 h4...44.vv..11..
1d08c: 31131313 eafcaf13 797979b1 c8c8c876 ...1.....yyyv...
1d09c: 74770dc8 1fcf7474 3bcdcd3b 00001f3b ..wttt..;..;;...
...
1d0b8: 00481515 70707070 00707070 36701f1f ..H.ppppppp...p6
1d0c8: 48363636 70a94f36 70701f70 70707070 666H6O.pp.pppppp
1d0d8: 48707070 70007070 70707070 70707070 pppHpp.ppppppppp
1d0e8: 34cd3636 483636cd 48484848 4afd1548 66.4.66HHHHHH..J
1d0f8: fd4a074a 48151515 48484848 00707048 J.J....HHHHHHpp.
1d108: 00000000 70000000 70000000 4f367070 .......p...ppp6O
1d118: 5454cdcd 12125959 68685974 0d686868 ..TTYY..tYhhhhh.
1d128: 77b26868 2b241053 0d346868 34683434 hh.wS.$+hh4.44h4
1d138: 34343434 31404034 31313113 13131313 44444@@1.111....
1d148: 0f65e35b 79797967 c8c8c82b 777777c8 [.e.gyyy+....www
1d158: 74383874 4f4f7070 0000701f 00000000 t88tppOO.p......
...
1d170: 48151548 70707000 70707070 00707070 H..H.pppppppppp.
1d180: 361f7070 701fa936 70707070 70707070 pp.66..ppppppppp
1d190: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d1a0: cf364870 48cbcbcf 15484848 074afd15 pH6....HHHH...J.
1d1b0: 1515fd4a 48484815 70484848 00000070 J....HHHHHHpp...
...
1d1c8: 70000070 4f487070 121254cf 12125959 p..pppHO.T..YY..
1d1d8: 68595974 68343434 f1746868 b2c85310 tYYh444hhht..S..
1d1e8: 68686868 34343468 34686868 400d3434 hhhhh444hhh444.@
1d1f8: 31311331 33313131 33e365fb 76797979 1.111113.e.3yyyv
1d208: c8c8c876 797977c8 38387477 00000038 v....wyywt888...
...
1d228: 15154800 70700000 70707070 70707070 .H....pppppppppp
1d238: 70000070 70707070 70707070 70707070 p..ppppppppppppp
1d248: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d258: 36487070 cbcbcb36 fd151515 fd4a074a ppH66.......J.J.
1d268: 48481515 48484848 00707048 00000000 ..HHHHHHHpp.....
...
1d280: 70000000 36707070 0d12cdcd 59595968 ...pppp6....hYYY
1d290: 59595959 34686868 66e56868 34682bbe YYYYhhh4hh.f.+h4
1d2a0: 68686868 34686868 34686834 34343434 hhhhhhh44hh44444
1d2b0: 31317634 b1133131 79f210fc 76767979 4v1111.....yyyvv
1d2c0: c8c8c8c8 45c877c8 381e74c8 00006938 .....w.E.t.88i..
1d2d0: 00707070 00000000 00000000 00000000 ppp.............
1d2e0: 15150000 70000015 70707070 70707070 .......ppppppppp
1d2f0: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d300: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d310: 48487070 cbcbcbcb 074aec15 15fd4a07 ppHH......J..J..
1d320: 48484848 00704848 00000000 00000000 HHHHHHp.........
...
1d33c: 70707070 4554cd4f 59595976 59595959 ppppO.TEvYYYYYYY
1d34c: 68685959 66be2b68 0d6868e5 68683434 YYhhh+.f.hh.44hh
1d35c: 68686868 34686868 34460d34 76763434 hhhhhhh44.F444vv
1d36c: e3f27940 7967b1fc c8767679 c8c8c8c8 @y....gyyvv.....
1d37c: 77777777 381e1e77 00483838 70707000 wwwww..888H..ppp
...
1d398: 15700000 00004815 70707070 70707070 ..p..H..pppppppp
1d3a8: 70707070 701f7070 70707070 70707070 pppppp.ppppppppp
1d3b8: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d3c8: 48484848 15cb4848 ca91074a 4815694a HHHHHH..J...Ji.H
1d3d8: 70484848 00000000 00000000 00000000 HHHp............
...
1d3f4: 70700000 ab4f3636 59126887 59595959 ..pp66O..h.YYYYY
1d404: 68685959 dba6f174 6868b274 68340d0d YYhht...t.hh..4h
1d414: 68686868 34686868 0d0d3434 40343446 hhhhhhh444..F44@
1d424: e3372c79 764067b1 c8c8c876 77c8c8c8 y,7..g@vv......w
1d434: 77777777 1e1e1e1e 000c3838 70000000 wwww....88.....p
...
1d450: 48000000 00701515 70707000 70707070 ...H..p..ppppppp
1d460: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d470: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d480: 48484848 ca15cbcb eccafa91 4815e969 HHHH........i..H
1d490: 00004848 00000000 00000000 00000000 HH..............
...
1d4a8: 70000000 70007070 0c363636 121277dc ...ppp.p666..w..
1d4b8: 59595959 68595959 646666d1 68686868 YYYYYYYh.ffdhhhh
1d4c8: 68680d68 68686868 34686868 46346834 h.hhhhhhhhh44h4F
1d4d8: 2b34460d f27171f1 76767679 c8c8c876 .F4+.qq.yvvvv...
1d4e8: 7777c8c8 77777777 381e1e1e cb384e38 ..wwwwww...88N8.
1d4f8: 00000000 00000070 00000000 00000000 ....p...........
1d508: 00000000 00151515 70700000 70707070 ..........pppppp
1d518: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d528: 70707070 70707070 4f367070 48707070 pppppppppp6OpppH
1d538: 48cb4848 6307fd48 15154a91 48e9e9cb HH.HH..c.J.....H
1d548: 00007048 00000000 00000000 00000000 Hp..............
...
1d560: 00007000 70707070 36cfcf1f 4e6979ab .p..pppp...6.yiN
1d570: 54545454 12595959 74f16553 68686868 TTTTYYY.Se.thhhh
1d580: 68686868 68686868 34686868 6868340d hhhhhhhhhhh4.4hh
1d590: b02b4634 0d67f153 4076400d c80d0d0d 4F+.S.g..@v@....
1d5a0: 7777c8c8 1e1e7777 381e1e1e e94ee938 ..wwww.....88.N.
1d5b0: 00000048 00007000 00000000 00000000 H....p..........
1d5c0: 00000000 1548fd00 70000000 70707070 ......H....ppppp
1d5d0: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d5e0: 70707070 70707070 594f7070 4848703b ppppppppppOY;pHH
1d5f0: 48cbcb48 9163faec 15cb154a 691e69cb H..H..c.J....i.i
1d600: 00007048 00000000 00000000 00000000 Hp..............
...
1d618: 00707000 70700000 4f367070 cf691e0c .pp...pppp6O..i.
1d628: 54cdcdcf bb545954 682b5a66 68686868 ...TTYT.fZ+hhhhh
1d638: 68686834 34686868 68686834 340d0d68 4hhhhhh44hhhh..4
1d648: b0640d68 34462bb0 0d0d0d34 0d0d0d0d h.d..+F44.......
1d658: 7777c8c8 1e1e1e77 381e1e1e 4ee9e9e9 ..www......8...N
1d668: 0000000c 00700000 00000000 00000000 ......p.........
1d678: 00000000 15fd4800 70000048 70707070 .....H..H..ppppp
1d688: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d698: 70707070 70707070 59367070 48483659 pppppppppp6YY6HH
1d6a8: ec4848cb 4a631c63 cbcb1515 124ecbcb .HH.c.cJ......N.
1d6b8: 00007036 00000000 00000000 00000000 6p..............
...
1d6d0: 70700000 70707070 36367070 cfcfcf36 ..pppppppp666...
1d6e0: 59cdcfcf 2f545459 59597294 68686812 ...YYTT/.rYY.hhh
1d6f0: 68346868 34686868 6874460d 0d466868 hh4hhhh4.FthhhF.
1d700: 2b2bc80d 46464646 0d343446 0d0d0d0d ..++FFFFF44.....
1d710: 7777c80d 1e1e7777 e91e3838 4ee9e9e9 ..wwww..88.....N
1d720: 0000cb4e 70000000 00000000 00000000 N......p........
1d730: 00000000 15150000 00007015 70707070 .........p..pppp
1d740: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d750: 48707070 70707048 cf487070 cb483654 pppHHpppppH.T6H.
1d760: 631548cb 154a6397 484815cb 12693648 .H.c.cJ...HHH6i.
1d770: 0070703b 00000000 00000000 00000000 ;pp.............
...
1d788: 70700000 70707070 4f707070 3636364f ..pppppppppOO666
1d798: 544fcf4f 0b545968 59a5bf94 74681259 O.OThYT....YY.ht
1d7a8: 34686868 6868400d 74460d68 74686868 hhh4.@hhh.Fthhht
1d7b8: 74460d0d 46746868 46746874 0d0d3434 ..FthhtFthtF44..
1d7c8: c80dc80d 1e1e7779 e9e9381e 4ee9e9e9 ....yw...8.....N
1d7d8: 00480c0c 00000000 00000070 00000000 ..H.....p.......
1d7e8: 00000000 fd000000 00001548 70707000 ........H....ppp
1d7f8: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d808: 361f7070 70363636 36707070 15cb36cf pp.6666pppp6.6..
1d818: 73071548 48154a1c 48484848 4e484848 H..s.J.HHHHHHHHN
1d828: 00703612 00000000 00000000 00000000 .6p.............
...
1d840: 70700000 70707070 70707070 36364f4f ..ppppppppppOO66
1d850: cfcf3636 24387454 54541e94 12595959 66..Tt8$..TTYYY.
1d860: 68687474 6831f640 68686868 74686874 tthh@.1hhhhhthht
1d870: 68747474 68687468 74686868 0d464646 ttthhthhhhhtFFF.
1d880: 79c80d0d 387731f6 e9e9e938 0c0ce9e9 ...y.1w88.......
1d890: 0069cdcd 00000000 00007000 00000000 ..i......p......
...
1d8a8: 001548fd 70700000 70707070 70707070 .H....pppppppppp
1d8b8: 70707070 70707070 36367070 4f543636 pppppppppp6666TO
1d8c8: 48707070 15cb3636 73ff4acb 48481507 pppH66...J.s..HH
1d8d8: 48484848 cb484848 70704f12 00000000 HHHHHHH..Opp....
...
1d8f8: 70000000 70707070 701f1f70 36361f70 ...pppppp..pp.66
1d908: cf363636 5a4ecdcf cd3b38e6 5959593b 666...NZ.8;.;YYY
1d918: 68747412 3487f634 68686834 74747468 .tth4..44hhhhttt
1d928: 74747474 68687474 74746868 46467468 tttttthhhhtthtFF
1d938: 31c8c80d 1ec8f616 e9e9e91e cd0ce9e9 ...1............
1d948: cbcdcdcd 00000000 00000000 00000000 ................
1d958: 70700000 00000070 4848fd48 48000000 ..ppp...H.HH...H
1d968: 70707070 70707070 70707070 70707070 pppppppppppppppp
1d978: 36367070 59684f36 48484836 cb15cb36 pp666OhY6HHH6...
1d988: 63736315 48154815 48484848 48484848 .csc.H.HHHHHHHHH
1d998: 7070cdcd 00000000 00000000 00000000 ..pp............
...
1d9b4: 361f1f70 36361f1f 1f1f1f1f cf363636 p..6..66....666.
1d9c4: 32e9cfcf cd54e932 59543b3b 74746859 ...22.T.;;TYYhtt
1d9d4: 34877968 68686868 74746868 68686868 hy.4hhhhhhtthhhh
1d9e4: 68686874 74746868 74747468 79c80d74 thhhhhtthtttt..y
1d9f4: 7479165d e9e9e91e cd0c0c0c cdcdcdcd ].yt............
1da04: 00000048 00000000 70000000 36363636 H..........p6666
1da14: 00363636 48151500 00000000 70707048 666....H....Hppp
1da24: 70707070 70707070 70707070 36484870 pppppppppppppHH6
1da34: 34684f36 4848484f 15151548 4aff73ca 6Oh4OHHHH....s.J
1da44: 48481548 70704848 48487070 0048cd36 H.HHHHppppHH6.H.
...
1da6c: 361f1f00 36363636 36363636 36363636 ...6666666666666
1da7c: e66dcfcb 59544e5a 543b3b54 74125959 ..m.ZNTYT;;TYY.t
1da8c: 34406874 68686868 68686868 68686868 th@4hhhhhhhhhhhh
1da9c: 68121268 74741212 74686874 c80d7474 h..h..ttthhttt..
1daac: 77e816f6 0ce9e91e cd0c0c0c cfcdcdcd ...w............
1dabc: 00007069 00000000 cb000000 36cbcfcf ip.............6
1dacc: 48703636 48fd0070 00000015 70704800 66pHp..H.....Hpp
1dadc: 70707070 70707070 70707070 36487070 ppppppppppppppH6
1daec: 7e593636 48363654 fdcb1548 15fa901c 66Y~T66HH.......
1dafc: 48481515 70704848 70707070 00363648 ..HHHHppppppH66.
...
1db24: 1f1f0000 3636361f 36363636 36363636 .....66666666666
1db34: 576d4f36 54cf4e24 3b3b5974 12595954 6OmW$N.TtY;;TYY.
1db44: 68747474 68686868 12686812 12747474 ttthhhhh.hh.ttt.
1db54: 12121274 74121212 12127474 c8747412 t......ttt...tt.
1db64: c8871606 0ce9381e cdcdcd0c cfcfcfcd .....8..........
1db74: 0000cbcf 00000000 36000000 36cbcfcf ...........6...6
1db84: 48363636 fd707048 00004848 70700000 666HHpp.HH....pp
1db94: 70707070 70487070 48707070 48487048 ppppppHppppHHpHH
1dba4: 7e543636 cb36cf68 071515cb 484aff73 66T~h.6.....s.JH
1dbb4: 48484815 70707048 70707070 70707070 .HHHHppppppppppp
...
1dbdc: 1f000000 361f1f1f 36363636 36363636 .......666666666
1dbec: 57e93636 cfcd548c cd5454cf 59543b4f 66.W.T...TT.O;TY
1dbfc: 74747459 12686868 12686812 38743812 Yttthhh..hh..8t8
1dc0c: 12121212 12121212 12383812 74741212 .........88...tt
1dc1c: c8f61613 0ce9381e cfcdcdcd cfcfcfcf .....8..........
1dc2c: 0048cfcf 00000000 70000000 cbcbcfcf ..H........p....
1dc3c: 483636cb 48704848 007048fd 70000000 .66HHHpH.Hp....p
1dc4c: 70707070 70707070 70707070 48484870 pppppppppppppHHH
1dc5c: 343b3636 cbcbcd68 1cfd4815 1515fa22 66;4h....H.."...
1dc6c: 48484815 70707048 70707070 00707070 .HHHHpppppppppp.
...
1dc98: 1f36361f 3636361f 36363636 e60c3636 .66..666666666..
1dca8: cdcfcded cfcfcfcf 3b4f4fcf 38121254 .........OO;T..8
1dcb8: 12121238 12686812 12121212 12121212 8....hh.........
1dcc8: 12121212 12125959 12121212 c8f6f60d ....YY..........
1dcd8: 0ce93838 cfcfcdcd cfcfcfcf 70cfcfcf 88.............p
...
1dcf0: cbcbcfcb 363636cb 70484848 004815fd .....666HHHp..H.
1dd00: 00000000 70707070 70707070 70707070 ....pppppppppppp
1dd10: 48487070 68cf3648 cbcb5402 7307cbcb ppHHH6.h.T.....s
1dd20: 1548fdff 70484848 70707070 70707070 ..H.HHHppppppppp
1dd30: 00707070 00000000 00000000 00000000 ppp.............
...
1dd50: 36363600 1f36361f 36361f1f edcd3636 .666.66...6666..
1dd60: cf4f0c32 cfcfcfcf 3b4f54cf 12593b3b 2.O......TO;;;Y.
1dd70: 12121212 12681212 12121259 12123838 ......h.Y...88..
1dd80: 59121212 59595912 59595959 77310d12 ...Y.YYYYYYY..1w
1dd90: 0ce94e12 cfcfcfcd cfcfcfcf 36cfcfcf .N.............6
...
1dda8: cbcfcf70 36363636 48484848 4848fd70 p...6666HHHHp.HH
1ddb8: 00000000 70707000 48707070 70707070 .....ppppppHpppp
1ddc8: 48707070 59364848 69695402 226315cb pppHHH6Y.Tii..c"
1ddd8: 151515fa 70484848 70707070 70707070 ....HHHppppppppp
1dde8: 70707070 00000000 00000000 00000000 pppp............
...
1de08: 1f1f0000 1f361f1f 1f1f1f36 9bcf3636 ......6.6...66..
1de18: cf366d57 cfcfcfcf 3636cfcf 593b4f36 Wm6.......666O;Y
1de28: 59121212 59125959 12121212 12121212 ...YYY.Y........
1de38: 59121212 54595959 54545454 4e125454 ...YYYYTTTTTTT.N
1de48: cd0c4e4e cfcfcfcf cfcfcfcf cb3636cb NN...........66.
1de58: 00000048 00000000 cbcfcb00 483636cb H............66H
1de68: 48484848 48fd4870 00000048 70700000 HHHHpH.HH.....pp
1de78: 70707070 70707048 70707070 cd484848 ppppHpppppppHHH.
1de88: 69695968 7397eccb 4815484a 70704848 hYii...sJH.HHHpp
1de98: 70707070 70707070 70707070 00000070 ppppppppppppp...
...
1dec0: 1f000000 1f1f1f1f 361f1f1f 891f361f ...........6.6..
1ded0: cb1f7857 cdcfcbcf 54cfcfcf 3b3b4fcd Wx.........T.O;;
1dee0: 59121259 59595959 59126812 59595959 Y..YYYYY.h.YYYYY
1def0: 54595959 54545454 54545454 54545454 YYYTTTTTTTTTTTTT
1df00: cdcdcd54 cfcfcfcf cbcbcbcf 363636cb T............666
1df10: 00007036 00000000 cbcf7000 703636cb 6p.......p...66p
1df20: 48487070 15157048 00007048 70000000 ppHHHp..Hp.....p
1df30: 70707070 70707070 70707070 36484870 pppppppppppppHH6
1df40: 15695454 6373cacb 48484815 70484848 TTi...sc.HHHHHHp
1df50: 70707070 70707070 00000070 00000000 ppppppppp.......
...
1df7c: 70707070 1f707070 2d1f361f 364f9781 ppppppp..6.-..O6
1df8c: cd4f3636 cf69cfcd 4f4f4fcd 125959cd 66O...i..OOO.YY.
1df9c: 59595959 59121259 54545959 54545454 YYYYY..YYYTTTTTT
1dfac: 54545454 54545454 cdcd5454 cfcdcdcd TTTTTTTTTT......
1dfbc: 4f4fcfcf 36363636 36363636 00003636 ..OO6666666666..
1dfcc: 00000000 cb360000 483636cb 48707048 ......6..66HHppH
1dfdc: fd704848 00004848 00000000 70707070 HHp.HH......pppp
1dfec: 70707070 70707070 48487070 cbcbcf36 ppppppppppHH6...
1dffc: ca736315 48481548 70707048 70707070 .cs.H.HHHppppppp
1e00c: 70707070 00000070 00000000 00000000 ppppp...........
...
1e034: 70707000 70707070 cf1f1f70 1f692273 .pppppppp...s"i.
1e044: 36363636 cd69cf4f 36cf4e0c 5954cf36 6666O.i..N.66.TY
1e054: 54595959 54545459 54545454 54544e54 YYYTYTTTTTTTTNTT
1e064: 54545454 54545454 3bcdcd3b 4f4f3b3b TTTTTTTT;..;;;OO
1e074: 364f4f4f 36363636 36363636 00703636 OOO66666666666p.
1e084: 00000000 36000000 483636cb 48484848 .......6.66HHHHH
1e094: 48484848 0048484a 00000000 70707000 HHHHJHH......ppp
1e0a4: 70707070 70707070 48707070 cbcbcb48 pppppppppppHH...
1e0b4: fd1c1cec 48481548 70707070 70707070 ....H.HHpppppppp
1e0c4: 00707070 00000070 00000000 00000000 ppp.p...........
...
1e0ec: 70700000 70707070 1f707070 7091ed91 ..ppppppppp....p
1e0fc: 36361f70 0ccdcf36 cd2b2b0c cdcf4fcf p.666....++..O..
1e10c: 54545454 54545454 54545454 54545454 TTTTTTTTTTTTTTTT
1e11c: 54545454 3b54cd54 4fa9a9a9 1f1fa91f TTTTT.T;...O....
1e12c: 1f1f701f 361f1f1f 36361f1f 00701f36 .p.....6..666.p.
1e13c: 00000000 70000000 48363636 48704848 .......p666HHHpH
1e14c: 70484848 4848fd48 00000000 70480000 HHHpH.HH......Hp
1e15c: 70707048 70707070 48707070 cbcb4848 HppppppppppHHH..
1e16c: 15631c4a 48484848 70707070 70707070 J.c.HHHHpppppppp
1e17c: 00000000 70007000 00000000 00000000 .....p.p........
...
1e1a4: 70000000 70707070 70707070 361cff69 ...pppppppppi..6
1e1b4: 36707070 cdcd3636 1e6eab0c 4f3636cf ppp666....n..66O
1e1c4: 545454cf 54545454 54545454 54545454 .TTTTTTTTTTTTTTT
1e1d4: 3b3b3b3b a93b3b3b 701f1f1f 70707070 ;;;;;;;....ppppp
1e1e4: 70707070 701f1f70 70707070 70707070 ppppp..ppppppppp
...
1e1fc: 36367070 48484870 48487070 4815fd70 pp66pHHHppHHp..H
1e20c: 00000070 70000000 70707070 70707070 p......ppppppppp
1e21c: 48707070 48cb4848 48071c4a 70484848 pppHHH.HJ..HHHHp
1e22c: 00000070 00007000 00000000 00007000 p....p.......p..
...
1e260: 70707070 70707070 4affca70 70707070 ppppppppp..Jpppp
1e270: cf363636 0e6ee9cd 3636cf0c 54544f36 666...n...666OTT
1e280: 3bcdcd54 cdcdcdcd 3b54cd3b 3b3b3b3b T..;....;.T;;;;;
1e290: 1f3b3b3b 7070701f 70707070 00007000 ;;;..ppppppp.p..
1e2a0: 70700000 70707070 00707070 00000000 ..ppppppppp.....
1e2b0: 00000000 48707000 70484848 48484848 .....ppHHHHpHHHH
1e2c0: 48fd0048 00000048 70000000 70707070 H..HH......ppppp
1e2d0: 70700070 48707070 48484848 484a634a p.pppppHHHHHJcJH
1e2e0: 70704848 00000070 00007070 00000070 HHppp...pp..p...
1e2f0: 00707000 00000000 00000000 00000000 .pp.............
...
1e318: 70707000 70707070 91633670 70707036 .pppppppp6c.6ppp
1e328: 36367070 b5670ccf 36cdcdab 3b4f3636 pp66..g....666O;
1e338: 3b3b3bcd 3b3b3b3b 4f3b3b3b 1f1fa94f .;;;;;;;;;;OO...
1e348: 701fa9a9 70707070 00707070 00000000 ...pppppppp.....
1e358: 00000000 00707000 00700000 00000000 .....pp...p.....
1e368: 00000000 70700000 70704870 70487070 ......pppHppppHp
1e378: 4a707048 00004848 00000000 00707000 HppJHH.......pp.
1e388: 00000000 70707000 48484848 48fd634a .....pppHHHHJc.H
1e398: 70704848 00007070 00000000 00000000 HHpppp..........
1e3a8: 70700000 00000070 00000000 00000000 ..ppp...........
...
1e3d0: 70700000 70707070 63ec7000 707070ec ..pppppp.p.c.ppp
1e3e0: 36707070 6e4e4f36 cf690c87 4f1f7036 ppp66ONn..i.6p.O
1e3f0: 3b3b3b3b a9080808 70a9a91f 1f707070 ;;;;.......pppp.
1e400: 7070701f 00707070 00000070 00000000 .pppppp.p.......
...
1e424: 70000000 70707070 70707070 48007070 ...ppppppppppp.H
1e434: 007070fd 00000000 00700000 00000000 .pp.......p.....
1e444: 70700000 48484848 4815fa4a 00704848 ..ppHHHHJ..HHHp.
1e454: 00007000 00000000 00000000 70700000 .p............pp
1e464: 00007036 00000000 00000000 00000000 6p..............
...
1e488: 70000000 00707070 4a700000 000036fa ...pppp...pJ.6..
1e498: 70700000 2a363670 4f4f1e6e 70707036 ..ppp66*n.OO6ppp
1e4a8: 1f4f4f1f 1f1fa91f 70700070 70707070 .OO.....p.pppppp
1e4b8: 70707070 00707070 00000000 00000000 ppppppp.........
1e4c8: 00000000 00007000 00000000 00000000 .....p..........
...
1e4e0: 70707000 70707070 00707070 00701515 .pppppppppp...p.
...
1e4fc: 70700000 48484848 48154a4a 00704848 ..ppHHHHJJ.HHHp.
...
1e518: 70700000 00704f36 00000000 00000000 ..pp6Op.........
...
1e544: 00007070 70000000 00704a4a 70000000 pp.....pJJp....p
1e554: 36367070 4f4fab67 70703636 1f1f7070 pp66g.OO66pppp..
1e564: 00707070 70707000 70707070 70707070 ppp..ppppppppppp
1e574: 70707070 00000000 00000000 00000000 pppp............
1e584: 00700000 00000000 00000000 00000000 ..p.............
1e594: 00000000 70000000 00007070 00000000 .......ppp......
1e5a4: 70481500 00000000 00000000 00000000 ..Hp............
1e5b4: 70000000 48484848 48484afd 00007048 ...pHHHH.JHHHp..
...
1e5d0: 70000000 00363b70 00000000 00000000 ...pp;6.........
...
1e5fc: 00707000 00000000 70154a70 00000000 .pp.....pJ.p....
1e60c: 70707000 36364e4f 70703636 70707070 .pppON6666pppppp
1e61c: 70707070 00000070 70707000 70707070 ppppp....ppppppp
1e62c: 00707070 00000000 00000000 00000000 ppp.............
...
1e65c: 00150000 00000000 00000000 00000000 ................
1e66c: 70000000 48484870 4848fdfd 00007048 ...ppHHH..HHHp..
...
1e688: 70000000 703b4f70 00000000 00000000 ...ppO;p........
...
1e6bc: cb4a4800 00000000 70700000 36707070 .HJ.......ppppp6
1e6cc: 7070701f 70707070 70707070 00007070 .ppppppppppppp..
1e6dc: 00000000 70000000 00000000 00000000 .......p........
...
1e714: 48700000 00000000 00000000 00000000 ..pH............
1e724: 00000000 48484870 4848fdfd 00007048 ....pHHH..HHHp..
...
1e744: 364f1f70 00000070 00000000 00000000 p.O6p...........
...
1e774: fd480000 00000048 00000000 70707070 ..H.H.......pppp
1e784: 70707070 70000070 70707070 00707070 ppppp..pppppppp.
...
1e7e0: 48487070 48481515 00000070 00000000 ppHH..HHp.......
...
1e7fc: 4f4f7000 00000070 00000000 00000000 .pOOp...........
...
1e82c: 48000000 00004848 00000000 70000000 ...HHH.........p
1e83c: 70707070 00000070 70707000 00000070 ppppp....pppp...
...
1e898: 48487000 48481515 00000070 00000000 .pHH..HHp.......
...
1e8b4: 4f1f0000 0000001f 00000000 00000000 ...O............
...
1e8e4: 70000000 70484848 00000000 00000000 ...pHHHp........
1e8f4: 70000000 00000000 70000000 00000070 ...p.......pp...
...
1e950: 48700000 48481515 00000070 00000000 ..pH..HHp.......
...
1e96c: 36700000 00007036 00000000 00000000 ..p66p..........
...
1e9a0: 48484870 00000000 00000000 00000000 pHHH............
...
1ea08: 70000000 70481548 00000070 00000000 ...pH.Hpp.......
...
1ea24: 70000000 00007036 00000000 00000000 ...p6p..........
...
1ea50: 2e000000 68732f2e 64657261 6968742f ...../shared/thi
1ea60: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src
1ea70: 5f766c2f 65726f63 5f766c2f 75626564 /lv_core/lv_debu
1ea80: 00632e67 645f766c 67756265 6568635f g.c.lv_debug_che
1ea90: 735f6b63 203a7274 6f6e2061 53412d6e ck_str: a non-AS
1eaa0: 20494943 72616863 73616820 70657220 CII char has rep
1eab0: 65746165 6f6d2064 74206572 206e6168 eated more than
1eac0: 445f564c 47554245 5254535f 58414d5f LV_DEBUG_STR_MAX
1ead0: 5045525f 20544145 656d6974 6c002973 _REPEAT times).l
1eae0: 65645f76 5f677562 63656863 74735f6b v_debug_check_st
1eaf0: 69203a72 6c61766e 63206469 20726168 r: invalid char
1eb00: 74206e69 73206568 6e697274 3c282067 in the string (<
1eb10: 20303120 756c6176 6c002965 65645f76 10 value).lv_de
1eb20: 5f677562 63656863 74735f6b 73203a72 bug_check_str: s
1eb30: 6e697274 73692067 6e6f6c20 20726567 tring is longer
1eb40: 6e616874 5f564c20 55424544 54535f47 than LV_DEBUG_ST
1eb50: 414d5f52 454c5f58 4854474e R_MAX_LENGTH.
0001eb5d <__func__.2>:
1eb5d: 645f766c 67756265 6568635f 735f6b63 lv_debug_check_s
1eb6d: tr.
0001eb70 <hex.1>:
1eb70: 33323130 37363534 42413938 46454443 0123456789ABCDEF
...
0001eb81 <__func__.0>:
1eb81: 645f766c 67756265 676f6c5f 7272655f lv_debug_log_err
1eb91: 2e00726f 68732f2e 64657261 6968742f or.../shared/thi
1eba1: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src
1ebb1: 5f766c2f 65726f63 5f766c2f 70736964 /lv_core/lv_disp
1ebc1: 6c00632e 63735f76 63615f72 6e203a74 .c.lv_scr_act: n
1ebd1: 6964206f 616c7073 65722079 74736967 o display regist
1ebe1: 64657265 206f7420 20746567 20737469 ered to get its
1ebf1: 2e746361 72637320 006e6565 6c5f766c act. screen.lv_l
1ec01: 72657961 706f745f 6f6e203a 73696420 ayer_top: no dis
1ec11: 79616c70 67657220 65747369 20646572 play registered
1ec21: 67206f74 69207465 74207374 6c20706f to get its top l
1ec31: 72657961 5f766c00 6579616c 79735f72 ayer.lv_layer_sy
1ec41: 6e203a73 6964206f 616c7073 65722079 s: no display re
1ec51: 74736967 64657265 206f7420 20746567 gistered to get
1ec61: 20737469 2e737973 79616c20 6c007265 its sys. layer.l
1ec71: 69645f76 615f7073 67697373 63735f6e v_disp_assign_sc
1ec81: 6e656572 7274203a 6f742079 73736120 reen: try to ass
1ec91: 206e6769 6f6e2061 63732d6e 6e656572 ign a non-screen
1eca1: 6a626f20 00746365 645f766c 5f707369 object.lv_disp_
1ecb1: 5f746567 63616e69 65766974 6d69745f get_inactive_tim
1ecc1: 6e203a65 6964206f 616c7073 65722079 e: no display re
1ecd1: 74736967 64657265 5f766c00 70736964 gistered.lv_disp
1ece1: 6972745f 63615f67 69766974 203a7974 _trig_activity:
1ecf1: 64206f6e 6c707369 72207961 73696765 no display regis
1ed01: 65726574 766c0064 7369645f 65675f70 tered.lv_disp_ge
1ed11: 65725f74 745f7266 3a6b7361 206f6e20 t_refr_task: no
1ed21: 70736964 2079616c 69676572 72657473 display register
1ed31: ed.
0001ed34 <__func__.6>:
1ed34: 645f766c 5f707369 5f746567 5f726373 lv_disp_get_scr_
1ed44: 00746361 act.
0001ed48 <__func__.5>:
1ed48: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
1ed58: 6f745f72 r_top.
0001ed5e <__func__.4>:
1ed5e: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
1ed6e: 79735f72 r_sys.
0001ed74 <__func__.3>:
1ed74: 645f766c 5f707369 69737361 735f6e67 lv_disp_assign_s
1ed84: 65657263 creen.
0001ed8a <__func__.2>:
1ed8a: 645f766c 5f707369 5f746567 63616e69 lv_disp_get_inac
1ed9a: 65766974 6d69745f tive_time.
0001eda4 <__func__.1>:
1eda4: 645f766c 5f707369 67697274 7463615f lv_disp_trig_act
1edb4: 74697669 ivity.
0001edba <__func__.0>:
1edba: 5f766c5f 70736964 7465675f 6665725f _lv_disp_get_ref
1edca: 61745f72 2e006b73 68732f2e 64657261 r_task.../shared
1edda: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
1edea: 6372732f 5f766c2f 65726f63 5f766c2f /src/lv_core/lv_
1edfa: 756f7267 00632e70 2074754f 6d20666f group.c.Out of m
1ee0a: 726f6d65 766c0079 6f72675f 615f7075 emory.lv_group_a
1ee1a: 6f5f6464 203a6a62 20656874 656a626f dd_obj: the obje
1ee2a: 69207463 6c612073 64616572 64612079 ct is already ad
1ee3a: 20646564 74206f74 20736968 756f7267 ded to this grou
1ee4a: 766c0070 6f72675f 615f7075 6f5f6464 p.lv_group_add_o
1ee5a: 203a6a62 69737361 6f206e67 63656a62 bj: assign objec
1ee6a: 6f742074 206e6120 6568746f 72672072 t to an other gr
1ee7a: 0070756f oup.
0001ee7e <__func__.1>:
1ee7e: 675f766c 70756f72 6572635f 00657461 lv_group_create.
0001ee8e <__func__.0>:
1ee8e: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj
1ee9e: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
1eeae: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
1eebe: 6f635f76 6c2f6572 626f5f76 00632e6a v_core/lv_obj.c.
1eece: 695f766c 3a74696e 726c6120 79646165 lv_init: already
1eede: 696e6920 00646574 695f766c 2074696e inited.lv_init
1eeee: 64616572 766c0079 6965645f 2074696e ready.lv_deinit
1eefe: 656e6f64 4c554e00 6f70204c 65746e69 done.NULL pointe
1ef0e: 766c0072 7263735f 7465675f 7369645f r.lv_scr_get_dis
1ef1e: 73203a70 65657263 6f6e206e 6f662074 p: screen not fo
1ef2e: 00646e75 6f5f766c 735f6a62 625f7465 und.lv_obj_set_b
1ef3e: 5f657361 3a726964 766e6920 64696c61 ase_dir: invalid
1ef4e: 73616220 69642065 766c0072 6a626f5f base dir.lv_obj
1ef5e: 656c635f 735f6e61 656c7974 73696c5f _clean_style_lis
1ef6e: 63203a74 74276e61 6e696620 74732064 t: can't find st
1ef7e: 20656c79 68746977 61706020 00607472 yle with `part`.
1ef8e: 6f5f766c 735f6a62 705f7465 203a736f lv_obj_set_pos:
1ef9e: 20746f6e 6e616863 676e6967 736f7020 not changing pos
1efae: 6f697469 666f206e 72637320 206e6565 ition of screen
1efbe: 656a626f 6c007463 626f5f76 64615f6a object.lv_obj_ad
1efce: 74735f64 3a656c79 6e616320 66207427 d_style: can't f
1efde: 20646e69 6c797473 69772065 60206874 ind style with `
1efee: 65707974 766c0060 6a626f5f 6572635f type`.lv_obj_cre
1effe: 3a657461 746f6e20 73696420 79616c70 ate: not display
1f00e: 65726320 64657461 206f7420 66206f73 created to so f
1f01e: 202e7261 70206f4e 6563616c 206f7420 ar. No place to
1f02e: 69737361 74206e67 6e206568 73207765 assign the new s
1f03e: 65657263 624f006e 7463656a 65726320 creen.Object cre
1f04e: 20657461 64616572 61430079 2074276e ate ready.Can't
1f05e: 20746573 20656874 65726170 6f20746e set the parent o
1f06e: 20612066 65726373 43006e65 74276e61 f a screen.Can't
1f07e: 74657320 72617020 20746e65 4e203d3d set parent == N
1f08e: 204c4c55 61206f74 626f206e 7463656a ULL to an object
1f09e: 5f766c00 006a626f .lv_obj.
0001f0a6 <__func__.90>:
1f0a6: 695f766c 0074696e lv_init.
0001f0ae <__func__.89>:
1f0ae: 645f766c 696e6965 lv_deinit.
0001f0b8 <__func__.86>:
1f0b8: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async
...
0001f0c9 <__func__.69>:
1f0c9: 6f5f766c 735f6a62 615f7465 5f6f7475 lv_obj_set_auto_
1f0d9: 6c616572 006e6769 realign.
0001f0e1 <__func__.68>:
1f0e1: 6f5f766c 735f6a62 655f7465 635f7478 lv_obj_set_ext_c
1f0f1: 6b63696c 6572615f lick_area.
0001f0fb <__func__.62>:
1f0fb: 6f5f766c 735f6a62 615f7465 685f7664 lv_obj_set_adv_h
1f10b: 65747469 ittest.
0001f112 <__func__.61>:
1f112: 6f5f766c 735f6a62 635f7465 6b63696c lv_obj_set_click
...
0001f123 <__func__.60>:
1f123: 6f5f766c 735f6a62 745f7465 lv_obj_set_top.
0001f132 <__func__.59>:
1f132: 6f5f766c 735f6a62 645f7465 00676172 lv_obj_set_drag.
0001f142 <__func__.58>:
1f142: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
1f152: 00726964 dir.
0001f156 <__func__.57>:
1f156: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
1f166: 6f726874 throw.
0001f16c <__func__.56>:
1f16c: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
1f17c: 65726170 parent.
0001f183 <__func__.55>:
1f183: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren
1f193: 76655f74 00746e65 t_event.
0001f19b <__func__.53>:
1f19b: 6f5f766c 615f6a62 705f6464 65746f72 lv_obj_add_prote
1f1ab: ct.
0001f1ae <__func__.52>:
1f1ae: 6f5f766c 635f6a62 7261656c 6f72705f lv_obj_clear_pro
1f1be: 74636574 tect.
0001f1c3 <__func__.47>:
1f1c3: 6f5f766c 735f6a62 655f7465 746e6576 lv_obj_set_event
1f1d3: 0062635f _cb.
0001f1d7 <__func__.45>:
1f1d7: 655f766c 746e6576 6e65735f 75665f64 lv_event_send_fu
1f1e7: nc.
0001f1ea <__func__.46>:
1f1ea: 655f766c 746e6576 6e65735f lv_event_send.
0001f1f8 <__func__.44>:
1f1f8: 6f5f766c 735f6a62 735f7465 616e6769 lv_obj_set_signa
1f208: 62635f6c l_cb.
0001f20d <__func__.43>:
1f20d: 6f5f766c 735f6a62 645f7465 67697365 lv_obj_set_desig
1f21d: 62635f6e n_cb.
0001f222 <__func__.42>:
1f222: 6f5f766c 615f6a62 636f6c6c 5f657461 lv_obj_allocate_
1f232: 5f747865 72747461 ext_attr.
0001f23b <__func__.41>:
1f23b: 6f5f766c 725f6a62 65726665 655f6873 lv_obj_refresh_e
1f24b: 645f7478 5f776172 00646170 xt_draw_pad.
0001f257 <__func__.38>:
1f257: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren
1f267: t.
0001f269 <__func__.40>:
1f269: 6f5f766c 675f6a62 735f7465 65657263 lv_obj_get_scree
1f279: n.
0001f27b <__func__.39>:
1f27b: 6f5f766c 675f6a62 645f7465 00707369 lv_obj_get_disp.
0001f28b <__func__.37>:
1f28b: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child
...
0001f29c <__func__.54>:
1f29c: 6f5f766c 735f6a62 625f7465 5f657361 lv_obj_set_base_
1f2ac: 00726964 dir.
0001f2b0 <__func__.36>:
1f2b0: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child
1f2c0: 6361625f _back.
0001f2c6 <__func__.35>:
1f2c6: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi
1f2d6: 6572646c ldren.
0001f2dc <__func__.34>:
1f2dc: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi
1f2ec: 6572646c 65725f6e 73727563 00657669 ldren_recursive.
0001f2fc <__func__.33>:
1f2fc: 6f5f766c 675f6a62 635f7465 64726f6f lv_obj_get_coord
1f30c: s.
0001f30e <__func__.31>:
1f30e: 6f5f766c 675f6a62 785f7465 lv_obj_get_x.
0001f31b <__func__.30>:
1f31b: 6f5f766c 675f6a62 795f7465 lv_obj_get_y.
0001f328 <__func__.29>:
1f328: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width
...
0001f339 <__func__.28>:
1f339: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh
1f349: t.
0001f34b <__func__.25>:
1f34b: 6f5f766c 675f6a62 615f7465 5f6f7475 lv_obj_get_auto_
1f35b: 6c616572 006e6769 realign.
0001f363 <__func__.24>:
1f363: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
1f373: 6b63696c 6461705f 66656c5f lick_pad_left.
0001f381 <__func__.23>:
1f381: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
1f391: 6b63696c 6461705f 6769725f lick_pad_right.
0001f3a0 <__func__.22>:
1f3a0: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
1f3b0: 6b63696c 6461705f 706f745f lick_pad_top.
0001f3bd <__func__.21>:
1f3bd: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
1f3cd: 6b63696c 6461705f 746f625f 006d6f74 lick_pad_bottom.
0001f3dd <__func__.20>:
1f3dd: 6f5f766c 675f6a62 655f7465 645f7478 lv_obj_get_ext_d
1f3ed: 5f776172 00646170 raw_pad.
0001f3f5 <__func__.66>:
1f3f5: 6f5f766c 635f6a62 6e61656c 7974735f lv_obj_clean_sty
1f405: 6c5f656c 00747369 le_list.
0001f40d <__func__.19>:
1f40d: 6f5f766c 675f6a62 6c5f7465 6c61636f lv_obj_get_local
1f41d: 7974735f _style.
0001f424 <__func__.65>:
1f424: 6f5f766c 725f6a62 766f6d65 74735f65 lv_obj_remove_st
1f434: 5f656c79 61636f6c 72705f6c yle_local_prop.
0001f443 <__func__.18>:
1f443: 6f5f766c 675f6a62 685f7465 65646469 lv_obj_get_hidde
1f453: n.
0001f455 <__func__.83>:
1f455: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
1f465: 72615f65 e_area.
0001f46c <__func__.82>:
1f46c: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
1f47c: e.
0001f47e <__func__.80>:
1f47e: 6f5f766c 6d5f6a62 5f65766f 65726f66 lv_obj_move_fore
1f48e: 756f7267 ground.
0001f495 <__func__.79>:
1f495: 6f5f766c 6d5f6a62 5f65766f 6b636162 lv_obj_move_back
1f4a5: 756f7267 ground.
0001f4ac <__func__.78>:
1f4ac: 6f5f766c 735f6a62 705f7465 lv_obj_set_pos.
0001f4bb <__func__.77>:
1f4bb: 6f5f766c 735f6a62 785f7465 lv_obj_set_x.
0001f4c8 <__func__.76>:
1f4c8: 6f5f766c 735f6a62 795f7465 lv_obj_set_y.
0001f4d5 <__func__.72>:
1f4d5: 6f5f766c 615f6a62 6e67696c lv_obj_align.
0001f4e2 <__func__.71>:
1f4e2: 6f5f766c 615f6a62 6e67696c 69726f5f lv_obj_align_ori
1f4f2: go.
0001f4f5 <__func__.70>:
1f4f5: 6f5f766c 725f6a62 696c6165 lv_obj_realign.
0001f504 <__func__.64>:
1f504: 6f5f766c 725f6a62 65726665 735f6873 lv_obj_refresh_s
1f514: 656c7974 tyle.
0001f519 <__func__.67>:
1f519: 6f5f766c 615f6a62 735f6464 656c7974 lv_obj_add_style
...
0001f52a <__func__.63>:
1f52a: 6f5f766c 735f6a62 685f7465 65646469 lv_obj_set_hidde
1f53a: n.
0001f53c <__func__.17>:
1f53c: 6f5f766c 675f6a62 615f7465 685f7664 lv_obj_get_adv_h
1f54c: 65747469 ittest.
0001f553 <__func__.16>:
1f553: 6f5f766c 675f6a62 635f7465 6b63696c lv_obj_get_click
...
0001f564 <__func__.15>:
1f564: 6f5f766c 675f6a62 745f7465 lv_obj_get_top.
0001f573 <__func__.14>:
1f573: 6f5f766c 675f6a62 645f7465 00676172 lv_obj_get_drag.
0001f583 <__func__.13>:
1f583: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_
1f593: 00726964 dir.
0001f597 <__func__.12>:
1f597: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_
1f5a7: 6f726874 throw.
0001f5ad <__func__.11>:
1f5ad: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren
1f5bd: 76655f74 00746e65 t_event.
0001f5c5 <__func__.10>:
1f5c5: 6f5f766c 675f6a62 625f7465 5f657361 lv_obj_get_base_
1f5d5: 00726964 dir.
0001f5d9 <__func__.88>:
1f5d9: 6f5f766c 635f6a62 74616572 lv_obj_create.
0001f5e7 <__func__.81>:
1f5e7: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren
1f5f7: t.
0001f5f9 <__func__.75>:
1f5f9: 6f5f766c 735f6a62 735f7465 00657a69 lv_obj_set_size.
0001f609 <__func__.74>:
1f609: 6f5f766c 735f6a62 775f7465 68746469 lv_obj_set_width
...
0001f61a <__func__.73>:
1f61a: 6f5f766c 735f6a62 685f7465 68676965 lv_obj_set_heigh
1f62a: t.
0001f62c <__func__.9>:
1f62c: 6f5f766c 675f6a62 705f7465 65746f72 lv_obj_get_prote
1f63c: ct.
0001f63f <__func__.8>:
1f63f: 6f5f766c 695f6a62 72705f73 6365746f lv_obj_is_protec
1f64f: 00646574 ted.
0001f653 <__func__.7>:
1f653: 6f5f766c 675f6a62 735f7465 65746174 lv_obj_get_state
...
0001f664 <__func__.27>:
1f664: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width
1f674: 7469665f _fit.
0001f679 <__func__.26>:
1f679: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh
1f689: 69665f74 t_fit.
0001f68f <__func__.32>:
1f68f: 6f5f766c 675f6a62 695f7465 72656e6e lv_obj_get_inner
1f69f: 6f6f635f 00736472 _coords....
0001f6aa <__func__.51>:
1f6aa: 6f5f766c 735f6a62 735f7465 65746174 lv_obj_set_state
...
0001f6bb <__func__.50>:
1f6bb: 6e617274 72635f73 65746165 trans_create.
0001f6c8 <__func__.49>:
1f6c8: 6f5f766c 615f6a62 735f6464 65746174 lv_obj_add_state
...
0001f6d9 <__func__.48>:
1f6d9: 6f5f766c 635f6a62 7261656c 6174735f lv_obj_clear_sta
1f6e9: te.
0001f6ec <__func__.6>:
1f6ec: 6f5f766c 675f6a62 735f7465 616e6769 lv_obj_get_signa
1f6fc: 62635f6c l_cb.
0001f701 <__func__.5>:
1f701: 6f5f766c 675f6a62 645f7465 67697365 lv_obj_get_desig
1f711: 62635f6e n_cb.
0001f716 <__func__.4>:
1f716: 6f5f766c 675f6a62 655f7465 746e6576 lv_obj_get_event
1f726: 0062635f _cb.
0001f72a <__func__.3>:
1f72a: 6f5f766c 675f6a62 655f7465 615f7478 lv_obj_get_ext_a
1f73a: 00727474 ttr.
0001f73e <__func__.2>:
1f73e: 6f5f766c 675f6a62 745f7465 00657079 lv_obj_get_type.
0001f74e <__func__.1>:
1f74e: 6f5f766c 675f6a62 675f7465 70756f72 lv_obj_get_group
...
0001f75f <__func__.87>:
1f75f: 6f5f766c 645f6a62 lv_obj_del.
0001f76a <__func__.85>:
1f76a: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async
1f77a: 0062635f _cb.
0001f77e <__func__.84>:
1f77e: 6f5f766c 635f6a62 6e61656c lv_obj_clean.
0001f78b <__func__.0>:
1f78b: 6f5f766c 695f6a62 6f665f73 65737563 lv_obj_is_focuse
1f79b: 2e2e0064 6168732f 2f646572 72696874 d.../shared/thir
1f7ab: 72617064 6c2f7974 2f6c6776 2f637273 dparty/lvgl/src/
1f7bb: 635f766c 2f65726f 725f766c 2e726665 lv_core/lv_refr.
1f7cb: 61430063 2074276e 20746573 20424456 c.Can't set VDB
1f7db: 67696568 75207468 676e6973 65687420 height using the
1f7eb: 756f7220 6620646e 74636e75 2e6e6f69 round function.
1f7fb: 72572820 20676e6f 6e756f72 62635f64 (Wrong round_cb
1f80b: 20726f20 73206f74 6c6c616d 42445620 or to small VDB
1f81b: ).
0001f81d <__func__.0>:
1f81d: 725f766c 5f726665 61657261 2f2e2e00 lv_refr_area.../
1f82d: 72616873 742f6465 64726968 74726170 shared/thirdpart
1f83d: 766c2f79 732f6c67 6c2f6372 6f635f76 y/lvgl/src/lv_co
1f84d: 6c2f6572 74735f76 2e656c79 766c0063 re/lv_style.c.lv
1f85d: 7974735f 6c5f656c 5f747369 6f6d6572 _style_list_remo
1f86d: 735f6576 656c7974 6f63203a 6e646c75 ve_style: couldn
1f87d: 72207427 6c6c6165 7461636f 6c632065 't reallocate cl
1f88d: 20737361 7473696c 5f766c00 6c797473 ass list.lv_styl
1f89d: 696c5f65 615f7473 735f6464 656c7974 e_list_add_style
1f8ad: 6f63203a 6e646c75 61207427 74206464 : couldn't add t
1f8bd: 63206568 7373616c 74656700 636f6c5f he class.get_loc
1f8cd: 735f6c61 656c7974 6f63203a 6e646c75 al_style: couldn
1f8dd: 63207427 74616572 6f6c2065 206c6163 't create local
1f8ed: 6c797473 766c0065 7974735f 6c5f656c style.lv_style_l
1f8fd: 5f747369 5f646461 6e617274 74735f73 ist_add_trans_st
1f90d: 3a656c79 756f6320 276e646c 72632074 yle: couldn't cr
1f91d: 65746165 61727420 7469736e 206e6f69 eate transition
1f92d: 6c797473 style.
0001f933 <__func__.5>:
1f933: 5f766c5f 6c797473 696c5f65 725f7473 _lv_style_list_r
1f943: 766f6d65 74735f65 00656c79 emove_style.
0001f94f <__func__.6>:
1f94f: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
1f95f: 735f6464 656c7974 dd_style.
0001f968 <__func__.7>:
1f968: 5f746567 6f6c6c61 6f6c5f63 5f6c6163 get_alloc_local_
1f978: 6c797473 style.
0001f97e <__func__.4>:
1f97e: 5f766c5f 6c797473 65735f65 6e695f74 _lv_style_set_in
1f98e: t.
0001f990 <__func__.3>:
1f990: 5f766c5f 6c797473 65735f65 6f635f74 _lv_style_set_co
1f9a0: 00726f6c lor.
0001f9a4 <__func__.2>:
1f9a4: 5f766c5f 6c797473 65735f65 706f5f74 _lv_style_set_op
1f9b4: a.
0001f9b6 <__func__.1>:
1f9b6: 5f766c5f 6c797473 65735f65 74705f74 _lv_style_set_pt
1f9c6: r.
0001f9c8 <__func__.0>:
1f9c8: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
1f9d8: 745f6464 736e6172 7974735f 2e00656c dd_trans_style..
1f9e8: 68732f2e 64657261 6968742f 61706472 ./shared/thirdpa
1f9f8: 2f797472 6c67766c 6372732f 5f766c2f rty/lvgl/src/lv_
1fa08: 77617264 5f766c2f 77617264 656c625f draw/lv_draw_ble
1fa18: 632e646e 6c696600 6c625f6c 65646e65 nd.c.fill_blende
1fa28: 75203a64 7075736e 74726f70 62206465 d: unsupported b
1fa38: 646e656c 646f6d20 lend mode.
0001fa42 <__func__.1>:
1fa42: 6c6c6966 656c625f 6465646e fill_blended.
0001fa4f <__func__.0>:
1fa4f: 5f70616d 6e656c62 00646564 732f2e2e map_blended.../s
1fa5f: 65726168 68742f64 70647269 79747261 hared/thirdparty
1fa6f: 67766c2f 72732f6c 766c2f63 6172645f /lvgl/src/lv_dra
1fa7f: 766c2f77 6172645f 6d695f77 00632e67 w/lv_draw_img.c.
1fa8f: 67616d49 72642065 203a7761 20637273 Image draw: src
1fa9f: 4e207369 004c4c55 640a6f4e 00617461 is NULL.No.data.
1faaf: 67616d49 72642065 65207761 726f7272 Image draw error
1fabf: 616d4900 64206567 20776172 276e6163 .Image draw can'
1facf: 65722074 74206461 6c206568 00656e69 t read the line.
1fadf: ...
0001fae2 <CSWTCH.21>:
1fae2: 01101810 01080402 ...........
0001faed <__func__.2>:
1faed: 645f766c 5f776172 00676d69 lv_draw_img.
0001faf9 <__func__.1>:
1faf9: 695f766c 645f676d 5f776172 65726f63 lv_img_draw_core
1fb09: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
1fb19: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
1fb29: 72645f76 6c2f7761 72645f76 6c5f7761 v_draw/lv_draw_l
1fb39: 6c656261 6c00632e 72645f76 6c5f7761 abel.c.lv_draw_l
1fb49: 65747465 67203a72 6870796c 63736420 etter: glyph dsc
1fb59: 6f6e202e 6f662074 00646e75 645f766c . not found.lv_d
1fb69: 5f776172 7474656c 203a7265 72616863 raw_letter: char
1fb79: 65746361 20732772 6d746962 6e207061 acter's bitmap n
1fb89: 6620746f 646e756f 5f766c00 77617264 ot found.lv_draw
1fb99: 74656c5f 3a726574 766e6920 64696c61 _letter: invalid
1fba9: 70706220 746f6e20 756f6620 6c00646e bpp not found.l
1fbb9: 72645f76 6c5f7761 65747465 69203a72 v_draw_letter: i
1fbc9: 6c61766e 62206469 nvalid bpp.
0001fbd4 <_lv_bpp8_opa_table>:
1fbd4: 03020100 07060504 0b0a0908 0f0e0d0c ................
1fbe4: 13121110 17161514 1b1a1918 1f1e1d1c ................
1fbf4: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./
1fc04: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>?
1fc14: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO
1fc24: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_
1fc34: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno
1fc44: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~.
1fc54: 83828180 87868584 8b8a8988 8f8e8d8c ................
1fc64: 93929190 97969594 9b9a9998 9f9e9d9c ................
1fc74: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................
1fc84: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................
1fc94: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................
1fca4: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................
1fcb4: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................
1fcc4: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................
0001fcd4 <_lv_bpp4_opa_table>:
1fcd4: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........
0001fce4 <_lv_bpp2_opa_table>:
1fce4: ffaa5500 .U..
0001fce8 <_lv_bpp1_opa_table>:
1fce8: ..
0001fcea <__func__.5>:
1fcea: 645f766c 5f776172 7474656c lv_draw_letter.
0001fcf9 <__func__.4>:
1fcf9: 77617264 74656c5f 5f726574 70627573 draw_letter_subp
1fd09: x.
0001fd0b <__func__.3>:
1fd0b: 77617264 74656c5f 5f726574 6d726f6e draw_letter_norm
1fd1b: al.
0001fd1e <_lv_bpp3_opa_table>:
1fd1e: 6d492400 ffdbb692 .$Im....
0001fd26 <wcorr.0>:
1fd26: 81808080 83828281 87868584 8d8c8a89 ................
1fd36: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................
1fd46: 2f2e2eb5 72616873 742f6465 64726968 .../shared/third
1fd56: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
1fd66: 72645f76 6c2f7761 72645f76 6d5f7761 v_draw/lv_draw_m
1fd76: 2e6b7361 766c0063 73616d5f 64615f6b ask.c.lv_mask_ad
1fd86: 6e203a64 6c70206f 20656361 61206f74 d: no place to a
1fd96: 74206464 6d206568 006b7361 dd the mask.
0001fda2 <__func__.1>:
1fda2: 645f766c 5f776172 6b73616d 6464615f lv_draw_mask_add
1fdb2: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
1fdc2: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
1fdd2: 72645f76 6c2f7761 72645f76 725f7761 v_draw/lv_draw_r
1fde2: 2e746365 72640063 695f7761 203a676d ect.c.draw_img:
1fdf2: 276e6163 65672074 6d692074 20656761 can't get image
1fe02: 6f666e69 5f766c00 5f676d69 69736564 info.lv_img_desi
1fe12: 203a6e67 67616d69 6f732065 65637275 gn: image source
1fe22: 70797420 73692065 6b6e7520 6e776f6e type is unknown
1fe32: ffff0000 ....
0001fe36 <__func__.0>:
1fe36: 77617264 7461705f 6e726574 22110000 draw_pattern..."
1fe46: 66554433 aa998877 eeddccbb 3DUfw........
0001fe53 <__func__.0>:
1fe53: 695f766c 625f676d 735f6675 705f7465 lv_img_buf_set_p
1fe63: 74656c61 2e006574 68732f2e 64657261 alette.../shared
1fe73: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
1fe83: 6372732f 5f766c2f 77617264 5f766c2f /src/lv_draw/lv_
1fe93: 5f676d69 68636163 00632e65 695f766c img_cache.c.lv_i
1fea3: 635f676d 65686361 65706f5f 74203a6e mg_cache_open: t
1feb3: 63206568 65686361 7a697320 73692065 he cache size is
1fec3: 69003020 6567616d 61726420 63203a77 0.image draw: c
1fed3: 65686361 73696d20 63202c73 65736f6c ache miss, close
1fee3: 646e6120 75657220 61206573 6e65206e and reuse an en
1fef3: 00797274 67616d69 72642065 203a7761 try.image draw:
1ff03: 68636163 696d2065 202c7373 68636163 cache miss, cach
1ff13: 74206465 6e61206f 706d6520 65207974 ed to an empty e
1ff23: 7972746e 616d4900 64206567 20776172 ntry.Image draw
1ff33: 6e6e6163 6f20746f 206e6570 20656874 cannot open the
1ff43: 67616d69 65722065 72756f73 image resource.
0001ff52 <__func__.1>:
1ff52: 5f766c5f 5f676d69 68636163 706f5f65 _lv_img_cache_op
1ff62: en.
0001ff65 <__func__.0>:
1ff65: 695f766c 635f676d 65686361 7465735f lv_img_cache_set
1ff75: 7a69735f 2e2e0065 6168732f 2f646572 _size.../shared/
1ff85: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/
1ff95: 2f637273 645f766c 2f776172 695f766c src/lv_draw/lv_i
1ffa5: 645f676d 646f6365 632e7265 616d4900 mg_decoder.c.Ima
1ffb5: 67206567 69207465 206f666e 20746567 ge get info get
1ffc5: 64616572 6c696620 65682065 72656461 read file header
1ffd5: 616d4900 67206567 69207465 206f666e .Image get info
1ffe5: 6e756f66 6e752064 776f6e6b 7273206e found unknown sr
1fff5: 79742063 42006570 746c6975 206e692d c type.Built-in
20005: 67616d69 65642065 65646f63 65732072 image decoder se
20015: 66206b65 656c6961 75420064 2d746c69 ek failed.Built-
20025: 69206e69 6567616d 63656420 7265646f in image decoder
20035: 61657220 61662064 64656c69 69754200 read failed.Bui
20045: 692d746c 6d69206e 20656761 6f636564 lt-in image deco
20055: 20726564 64616572 746f6e20 70757320 der read not sup
20065: 74726f70 68742073 6f632065 20726f6c ports the color
20075: 6d726f66 62007461 42006e69 746c6975 format.bin.Built
20085: 206e692d 67616d69 65642065 65646f63 -in image decode
20095: 61632072 2074276e 6e65706f 65687420 r can't open the
200a5: 6c696620 6d690065 65645f67 65646f63 file.img_decode
200b5: 75625f72 5f746c69 6f5f6e69 3a6e6570 r_built_in_open:
200c5: 74756f20 20666f20 6f6d656d 49007972 out of memory.I
200d5: 6567616d 63656420 7265646f 65706f20 mage decoder ope
200e5: 75203a6e 6f6e6b6e 63206e77 726f6c6f n: unknown color
200f5: 726f6620 0074616d 695f766c 645f676d format.lv_img_d
20105: 646f6365 695f7265 3a74696e 74756f20 ecoder_init: out
20115: 20666f20 6f6d656d of memory.
00020120 <__func__.3>:
20120: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
20130: 746c6975 5f6e695f 6f666e69 uilt_in_info.
0002013d <__func__.0>:
2013d: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
2014d: 746c6975 5f6e695f 656e696c 7572745f uilt_in_line_tru
2015d: 6f635f65 00726f6c 33221100 77665544 e_color..."3DUfw
2016d: bbaa9988 ffeeddcc ........
00020175 <__func__.1>:
20175: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
20185: 746c6975 5f6e695f 64616572 6e696c5f uilt_in_read_lin
20195: e.
00020197 <__func__.2>:
20197: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
201a7: 746c6975 5f6e695f 6e65706f uilt_in_open.
000201b4 <__func__.4>:
201b4: 695f766c 645f676d 646f6365 635f7265 lv_img_decoder_c
201c4: 74616572 reate.
000201ca <__func__.5>:
201ca: 5f766c5f 5f676d69 6f636564 5f726564 _lv_img_decoder_
201da: 74696e69 2f2e2e00 72616873 742f6465 init.../shared/t
201ea: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
201fa: 6c2f6372 6f665f76 6c2f746e 6f665f76 rc/lv_font/lv_fo
2020a: 665f746e 745f746d 632e7478 nt_fmt_txt.c.
00020217 <CSWTCH.66>:
20217: 06040200 0f0d0b09 ........
0002021f <__func__.0>:
2021f: 665f766c 5f746e6f 5f746567 6d746962 lv_font_get_bitm
2022f: 665f7061 745f746d 00007478 ap_fmt_txt...
0002023c <kern_classes>:
2023c: 0002024c 00020e94 00020df9 0000313d L...........=1..
0002024c <kern_class_values>:
2024c: 00000100 00000000 00000100 00000003 ................
2025c: 00000200 00000000 00000000 00000000 ................
2026c: 00010000 00000000 00000000 00000000 ................
2027c: 000c0100 0000fa07 f1f20000 04060c02 ................
2028c: 010d02f6 0008030b 00000000 00000000 ................
2029c: 020f0000 000000fe 00000000 00000000 ................
202ac: f8000500 00000000 0504fb00 00fd0000 ................
202bc: fd0003fe fbfffd00 00000000 fd0000fd ................
202cc: fd0000fc 0000fb00 00000000 fd000000 ................
202dc: 00fc00fd 00e100f9 0500fb00 fb000008 ................
202ec: 05080303 000005fc 000000f1 00000000 ................
202fc: 00000000 000000f7 00000000 00000000 ................
2030c: f9000000 f600f3fd 000000fe 000a0100 ................
2031c: 01fffef8 0000fc00 0000edfe 00000000 ................
2032c: 00000000 0afeec00 00000000 00000000 ................
2033c: 00000000 000000f6 00000000 08000000 ................
2034c: 00000300 000000fb 00000000 00000000 ................
2035c: 00000000 020a0000 00000001 00000000 ................
...
2038c: 000000f7 00000000 00000000 00000000 ................
2039c: 00000000 02000000 fd080305 fd050000 ................
203ac: 0702ddf8 00fd0105 00080009 00e80008 ................
203bc: 080008fd 000305fd 00fd0100 0014fc00 ................
203cc: 00080014 0804030b f7000000 00000000 ................
203dc: 0200fe01 02fbfdfb 0000fd00 0000f600 ................
...
203f4: 0000ef00 00000000 00000000 00000000 ................
20404: 00f20100 000000f0 1900fe00 0303fdfd ................
20414: 03fd00fe 00f20000 00000000 00000000 ................
20424: 00e70000 00000003 00000000 00000000 ................
20434: 0f00f000 00f70000 e7ef0008 0008fbef ................
20444: 0300ef00 00fc00fa 00000000 00000000 ................
20454: 07000000 0000e108 00000000 00000000 ................
20464: 000c0000 00000002 02020000 ff00fbfd ................
20474: 0000fdff 000000fe 00fe00fb fa00fbfa ................
20484: 00fbf8f8 00fb00fb fe000000 00030000 ................
20494: 0100fd02 03000000 000000fe ff0303fe ................
204a4: fb000000 0000ff00 01000000 00fe0300 ................
204b4: 00fc00fd 0800fe00 00fd0000 00000000 ................
204c4: fefe01ff 00fd0000 000000fd 00000000 ................
204d4: ffff0000 00fdfd00 00000000 fe000001 ................
204e4: fdfdfd00 00000000 00000000 0000fe00 ................
204f4: fdfe0000 f800fc00 0005f8fe 0503fb00 ................
20504: fffa0007 f4ff00fd f202fe03 01000003 ................
20514: fef200f3 f300feea 00070500 00000003 ................
20524: fb000100 00f800fd 00fd0000 00fd0000 ................
20534: 00000000 ff00ffff 000000fd 00000000 ................
20544: fe00fdfd 0000fefd 000000fd 00000000 ................
20554: 00000000 fd00fefe fb00fe00 fd000003 ................
20564: 00030301 00000000 0000fe00 02000000 ................
20574: 00fd0000 00fdfefd 00000000 00020000 ................
20584: 000000fe 00fcfd00 fe0800fb 0000f801 ................
20594: f5f3f307 fe0003fb fb00fbef fb04fb00 ................
205a4: 00f900f0 02ff0100 000300fe f300f6f8 ................
205b4: f8fafbfa fbfff9fd 010002f9 0000fd00 ................
205c4: 03000200 00000000 00000000 fd000000 ................
205d4: ff00ff00 fafc00fd f800fffa 00000000 ................
205e4: 00fe0000 01000000 000000fe 00000003 ................
205f4: 00000000 00000c00 00000000 00000002 ................
20604: 000000fd 00000000 00000000 000300fb ................
...
20620: 000000fe 000000fb 00f8f300 f3fc0000 ................
20630: 03fd0000 0000f900 00000000 00000000 ................
20640: fb0000fc 00000000 00000000 00000000 ................
20650: 00fb0003 03000000 fbfb0200 fdfdfd00 ................
20660: 00000000 00f80000 fdfc00fd f8fafa00 ................
20670: 00fb00fe 000000f8 00001400 fd000001 ................
20680: f5000300 00000000 08fbe800 00f5fe08 ................
20690: f300fc03 ee03fdff 040003fd f8f7fcf7 ................
206a0: f10000f5 00000f00 000000ff f9fdffff ................
206b0: 00e8fff8 00000000 00000000 00000001 ................
...
206cc: ff00fd00 0000fcfd 00fd00fb 00000000 ................
...
206e4: 00ff0000 050000fb fa0003ff f9fffe03 ................
206f4: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................
20704: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................
20714: 00000003 00000000 0003fb00 fdfe00fc ................
20724: fefefef8 fffdfeff 00000000 fefefd00 ................
20734: 00000000 fe00fe03 fe000000 fdfefefd ................
20744: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................
20754: 03fcf400 fe0002fc fc00f8fe fc000001 ................
20764: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................
20774: 0008fcfb 00000000 00000000 00000003 ................
...
20798: 000000fc 00000000 00000000 00000000 ................
...
207c4: 000000fe 00000000 00000000 00000000 ................
...
207e0: fdfe0000 00000000 00000000 00000000 ................
207f0: fd0000fc fdfd0000 00000000 000000fd ................
20800: 0000ff00 fe000000 00000000 00fb00fc ................
20810: 00f80000 0105fa02 0000f4fe f600fdfa ................
20820: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................
20830: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................
20840: feee0000 f7fa0608 00f80100 05fdfef3 ................
20850: 0001fde8 f3fdef00 0000edfd 010f00ee ................
20860: 0000fe00 feff0000 ef00fef6 00000000 ................
20870: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................
20880: f4000000 fef8f8fd fcfdfafc f8fefb00 ................
20890: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................
208a0: 03000000 0afb0200 fdfdfd00 00000000 ................
208b0: 00f80000 fdfc00fd f8fafa00 02fb00fe ................
208c0: 0000000a 00001400 fd000001 00000300 ................
208d0: 00000000 00ff0000 00000000 0000fbfe ................
208e0: ff000000 fd000000 fb0000fd fb0000fd ................
208f0: 00ff0400 00000000 00000100 05040000 ................
20900: f800fe02 f80800fc 0afbfbf8 feea0305 ................
20910: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................
20920: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................
20930: 00fc0003 080200f9 faf6f7fa ed010008 ................
20940: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................
20950: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................
20960: fd000007 00fefb00 0400fbfd 000003f8 ................
20970: fafd00f2 faf8fefc f800faf8 f8fbfafd ................
20980: 010000fd f800fc0c fbfd00fd f6f9f9fa ................
20990: 0005fbfd fdf300fc f7f80502 fd08f8fb ................
209a0: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................
209b0: 080000ff 00effe07 f606faf1 f5f7fbef ................
209c0: 0005f8f3 fd000000 fd030000 05fb0205 ................
209d0: fff80000 0100ff00 0000fe01 00000000 ................
209e0: 000000fd 01080200 0000fd00 fefe0000 ................
209f0: 000000fd 00000201 00020000 000a00fe ................
20a00: fd010105 00000500 00000200 00000000 ................
20a10: 00000000 07000800 00000000 00000000 ................
20a20: 00000000 00f10000 080004fd 03190000 ................
20a30: 0303fbfb 00f301fe 00f10c00 00000000 ................
20a40: 00000000 0aef0000 00000024 00000000 ........$.......
20a50: 00000000 0000f100 00000000 00000000 ................
...
20a70: fb0000fc 000000fe 00000000 00000000 ................
...
20a88: 00f900fe 00000100 fefb2103 03f90708 .........!......
20a98: 03030000 000000fd 00000000 00000000 ................
20aa8: 000007df 00000000 00000000 00000000 ................
20ab8: f9000000 f9000000 00000000 0000fffa ................
20ac8: fd00fa00 0000f400 00000000 00000000 ................
20ad8: 0000ef00 00010000 00000000 0000fd00 ................
20ae8: 00fc00fb 000000f9 00fd03fc fafdf900 ................
20af8: 00f90000 00f400fd eb0000fd f7fdf6fb ................
20b08: 00ef0000 0000fff9 00000000 fbfc0000 ................
20b18: 0000fcfe 00fa0000 05fd03fa fefafe00 ................
20b28: fd00fbfc f902feff 000000ff 00fcfee9 ................
20b38: f4fe00fa fe0000fe 000000fe fe000200 ................
20b48: 0004fefc 00000000 00000000 00000000 ................
...
20b74: 00030000 00000000 fe00fa00 fb000000 ................
20b84: 00000003 00fbfdf9 fd00f900 0000f400 ................
20b94: 00e70000 00f3f7fb fe00ef00 000000fc ................
20ba4: 00000000 fffcfd00 000001fc 0800fd04 ................
20bb4: f8fdfd0d 06040d03 030b03f9 00070607 ................
...
20bcc: 0c100000 fe00fdfb 00140b14 00030000 ................
20bdc: 00000900 000000fc 00000000 00fe0000 ................
20bec: 00000000 04000000 00000000 f6fefdea ................
20bfc: ef0000f3 00000000 00000000 00000000 ................
20c0c: 00000000 0000fc00 00000000 fe000000 ................
...
20c24: 00000004 fefdea00 0000f3f6 000000f6 ................
...
20c44: 000000fe fd0003fa f8030502 03feff00 ................
20c54: 00000200 00fa0000 00fbfefe 1000f6fe ................
20c64: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................
...
20c7c: 0000fe00 00000000 00040000 ea000000 ................
20c8c: f3f6fefd 00ef0000 00000000 00000d00 ................
...
20ca4: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................
20cb4: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................
20cc4: fefefdfd fe00fefd 040004ff 000800fe ................
...
20cdc: fe000000 0000fdfd 00ff00f9 000000fc ................
...
20cf4: 000000f1 00000000 00000000 fd00fdfd ................
20d04: 00000000 fc0000fe fc0003fd f900fefb ................
20d14: fdfefafe 0000fc00 00000000 00000000 ................
20d24: 0800ef00 00fb0000 fd000000 0000fd00 ................
20d34: fe0000ff 0000fa00 f8f8fd0b ff030302 ................
20d44: 020402f9 fe080208 f60000f9 f9f80000 ................
20d54: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................
20d64: 000009fd 00fb00fe 00fa0300 0002fd03 ................
20d74: fe00f800 03fd00ff 000000fe 00fafdf6 ................
20d84: f40000f8 00fd0900 000200fb f8fd00fd ................
20d94: 0003fd00 fe000000 fd030000 fd000001 ................
20da4: 00fd00fe 00000000 00000000 00000000 ................
20db4: 00000000 000600f0 0000fe00 00010000 ................
20dc4: 0000fdfd 06000500 00000000 01f1f000 ................
20dd4: f604080b 09000b02 00000500 00000000 ................
20de4: 00000000 00000e00 00000000 00000000 ................
20df4: 00000000 .....
00020df9 <kern_right_class_mapping>:
20df9: 02010000 05040300 08070602 0a090a09 ................
20e09: 0e0d0c0b 0c11100f 15141312 00000015 ................
20e19: 19181716 19191917 1a191917 19191919 ................
20e29: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#.
20e39: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&**
20e49: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#.
20e59: 00000931 00000000 00000000 00000000 1...............
...
00020e94 <kern_left_class_mapping>:
20e94: 02010000 05040300 08070602 0a090a09 ................
20ea4: 0d000c0b 11100f0e 140c1312 00000014 ................
20eb4: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. ..
20ec4: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+.
20ed4: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450--
20ee4: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)...
20ef4: 0000093d 00000000 00000000 00000000 =...............
...
00020f30 <cmaps>:
20f30: 00000020 0001005f 00000000 00000000 ..._...........
20f40: 00000000 000000b0 0060f7f3 00020f58 ..........`.X...
20f50: 00000000 0002003b ....;...
00020f58 <unicode_list_1>:
20f58: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a.
20f68: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x.
20f78: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................
20f88: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................
20f98: efc9efc8 efe3efcb f014efe5 f017f015 ................
20fa8: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;...
20fb8: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T.
20fc8: f712f4aa 0000f7f2 ........
00020fd0 <glyph_dsc>:
...
20fd8: 04500000 00000000 04500000 00010c03 ..P.......P.....
20fe8: 06400012 07010505 0b40001f 00000c0b ..@.......@.....
20ff8: 09f00061 fe00100a 0d8000b1 00000c0d a...............
21008: 0b0000ff ff000d0b 03600147 07010502 ........G.`.....
21018: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p.....
21028: 06600188 05000707 095001a1 02010808 ..`.......P.....
21038: 03a001c1 fe000503 062001c9 03000306 .......... .....
21048: 03a001d2 00000303 05a001d7 feff1008 ................
21058: 0ab00217 00000c0a 05f00253 00000c05 ........S.......
21068: 09300271 00000c09 092002a7 00000c09 q.0....... .....
21078: 0ab002dd 00000c0b 0930031f 00000c09 ..........0.....
21088: 09e00355 00000c0a 09900391 00000c09 U...............
21098: 0a5003c7 00000c0a 09e00403 00000c0a ..P.............
210a8: 03a0043f 00000903 03a0044d fd000c03 ?.......M.......
210b8: 0950045f 02010808 0950047f 03010608 _.P.......P.....
210c8: 09500497 02010808 093004b7 00000c09 ..P.......0.....
210d8: 109004ed fd000f10 0bb00565 00ff0c0d ........e.......
210e8: 0c2005b3 00010c0b 0b9005f5 00000c0b .. .............
210f8: 0d300637 00010c0c 0ac0067f 00010c09 7.0.............
21108: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`.....
21118: 0d000733 00010c0b 04f00775 00010c03 3.......u.......
21128: 08300787 00ff0c08 0b8007b7 00010c0b ..0.............
21138: 098007f9 00010c09 0f40082f 00010c0d ......../.@.....
21148: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p.....
21158: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p.....
21168: 0ba009b2 00010c0a 09f009ee 00000c0a ................
21178: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f.......
21188: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`.............
21198: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`.....
211a8: 0a800bec 00000c0b 05500c2e fd010f05 ..........P.....
211b8: 05a00c54 feff1008 05500c94 fd000f04 T.........P.....
211c8: 09500cb2 02010708 08000cce fe000208 ..P.............
211d8: 09a00cd6 0a010205 09900cdb 00000909 ................
211e8: 0af00d04 00010c0a 09200d40 00000909 ........@. .....
211f8: 0af00d69 00000c0a 09d00da5 0000090a i...............
21208: 05a00dd2 00000c07 0b100dfc fd000c0a ................
21218: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p.....
21228: 04900e80 fdfe0f06 09e00ead 00010c09 ................
21238: 04700ee3 00010c02 10f00eef 0001090f ..p.............
21248: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0.....
21258: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................
21268: 06901001 00010906 0800101c 00000908 ................
21278: 06a01040 00000b07 0ad01067 00010909 @.......g.......
21288: 08f01090 00ff090a 0e6010bd 0000090f ..........`.....
21298: 08d01101 00000909 08f0112a fdff0c0a ........*.......
212a8: 08501166 00000908 05a0118a fd000f06 f.P.............
212b8: 04d011b7 fd010f03 05a011ce fd000f05 ................
212c8: 095011f4 04000509 06b0120b 06000606 ..P.............
212d8: 0500121d 03010403 10001223 fe001110 ........#.......
212e8: 100012ab 00000c10 1000130b ff000e10 ................
212f8: 1000137b 00000c10 0b0013db 00000c0b {...............
21308: 1000141d fe001010 1000149d fe001010 ................
21318: 1200151d ff000e12 1000159b fe001010 ................
21328: 1200161b 00000c12 10001687 fe001010 ................
21338: 08001707 ff000e08 0c00173f ff000e0c ........?.......
21348: 12001793 fe001012 10001823 00000c10 ........#.......
21358: 0e001883 fe02100a 0e0018d3 fd00120e ................
21368: 0e001951 ff000f0e 0e0019ba ff000e0e Q...............
21378: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l.......
21388: 0a001adc ff000e0a 0a001b22 ff000e0a ........".......
21398: 0e001b68 ff000e0e 0e001bca 0400040e h...............
213a8: 12001be6 00000c12 14001c52 fe001014 ........R.......
213b8: 12001cf2 feff1014 10001d92 fe001010 ................
213c8: 0e001e12 01000a0e 0e001e58 01000a0e ........X.......
213d8: 14001e9e ff000e14 10001f2a 00000c10 ........*.......
213e8: 10001f8a fe001010 1000200a feff1111 ......... ......
213f8: 0e00209b ff000e0f 0e002104 fe00100e . .......!......
21408: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!......
21418: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."......
21428: 12002316 00000c12 10002382 fdff1212 .#.......#......
21438: 0c002424 fe00100c 14002484 ff000f14 $$.......$......
21448: 1400251a 01000a14 1400257e 01000a14 .%......~%......
21458: 140025e2 01000a14 14002646 01000a14 .%......F&......
21468: 140026aa 01000a14 1400270e ff000e15 .&.......'......
21478: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(......
21488: 10002871 fdff1111 14002902 00000c14 q(.......)......
21498: 0c00297a fe00100c 102029da 01000b11 z).......) .....
000214a8 <gylph_bitmap>:
214a8: aff00bbf 089ee00a c0078cd0 bf100000 ................
214b8: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r...
214c8: e003c005 007a0000 0900005c 01a00780 ......z.\.......
214d8: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0.....
214e8: 0e100f00 f0020030 9f00f200 ffffffff ....0...........
214f8: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p..
21508: 79000000 00000000 00000079 20e9ff5c ...y....y...\..
21518: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y...
21528: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@..
21538: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../..
21548: ae03a0af 0000d7ff 00007900 00790000 .........y....y.
21558: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L.
21568: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P
21578: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<...
21588: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... <
21598: 0b003d00 09e20070 00d00680 00a0dd04 .=..p...........
215a8: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}..
215b8: a01cc00c ae3f0000 010000c1 0000c0df ......?.........
215c8: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@...
215d8: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0
215e8: 000000a5 f5000000 72e4e4f5 f205da00 ...........r....
215f8: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._
21608: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0....
21618: e900f601 ad00bc00 ad00ae00 e900bc00 ................
21628: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+
21638: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........
21648: 10050000 500f0000 500f0000 511f0100 .......P...P...Q
21658: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P
21668: fd520900 0fc5a00b 10110100 04f3ff1f ..R.............
21678: 12034044 00901efc 00f10500 00b00a00 D@..............
21688: 00600f00 00105f00 0000ab00 0000f600 ..`.._..........
21698: 0000f105 0000b00a 0000600f 0000104f .........`..O...
216a8: 000000ac 040000f6 0a0000f1 0e0000c0 ................
216b8: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............
216c8: 00f50770 c00df20a 1ff80100 dc000080 p...............
216d8: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`.........
216e8: f80100c0 0a00f507 a8cf00f2 080070cf .............p..
216f8: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0
21708: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0.
21718: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(.....
21728: 00f20700 00af0000 804f0000 c03f0000 ..........O...?.
21738: c13e0000 c12e0000 d12e0000 f82e0000 ..>.............
21748: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww..
21758: e10c0000 f3090000 f6050000 df000000 ................
21768: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d
21778: f3080040 fb8cc9bf d7ff7c00 01000000 @........|......
21788: 000000eb 0010be00 506f0000 2f000000 ..........oP.../
21798: 00000090 0000d00c 01f30800 f80300d5 ................
217a8: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U
217b8: 52f95655 2f000000 00000060 0500f602 UV.R.../`.......
217c8: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........
217d8: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. .
217e8: 00f80400 920f0000 f6050050 fd8ad98f ........P.......
217f8: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p.
21808: 000000f8 0000d00c 00801f00 682f0000 ............../h
21818: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../.......
21828: f109f602 01f30600 b09f86de d8ef1900 ................
21838: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU.
21848: 00e00b00 00f80200 109f0000 b00f0000 ................
21858: f4060000 dd000000 3f000000 0a000070 ...........?p...
21868: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v.
21878: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^.
21888: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O
21898: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l
218a8: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P.
218b8: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0.......
218c8: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1.......
218d8: 9f000000 8da70930 df0700f7 1e0040eb ....0........@..
218e8: 1003fc92 00000000 1efc1203 fc921e90 ................
218f8: 00001003 01000000 a8d01fe9 00a0300e .............0..
21908: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}..........
21918: 17000081 0000b4df 00d2af04 ef820100 ................
21928: 45f3ffff 00515555 01000000 ef101111 ...EUUQ.........
21938: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........
21948: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... .
21958: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w..
21968: cf000027 09000000 010000f0 010000ea '...............
21978: 000010dd 000010ce 0000603f 00003001 ........?`...0..
21988: 00000100 00f50600 405f0000 17000000 .........._@....
21998: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@
219a8: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I....
219b8: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@....
219c8: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\...
219d8: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@....
219e8: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@
219f8: 00000000 fb060000 00752353 17000000 ........S#u.....
21a08: 00a3fdce 02000000 000000fd f49f0000 ................
21a18: 00000000 00b09e0f f2060000 0000207f ............. ..
21a28: f801dc00 4f000000 00e00b60 00f00b00 .......O`.......
21a38: 0100604f ed1111fa ff8f0000 00f3ffff O`..............
21a48: 4444c40e f406a04f af000000 0000cd10 ..DDO...........
21a58: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@
21a68: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:...
21a78: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._
21a88: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj..
21a98: d7ffffff 8d020000 0400b4fe f99db8ff ................
21aa8: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........
21ab8: 0000f602 602f0000 00000000 000000fa ....../`........
21ac8: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._..
21ad8: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w
21ae8: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._
21af8: 06000040 00405ff4 5ff60300 03000040 @...._@...._@...
21b08: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@.
21b18: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._
21b28: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@......
21b38: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD..
21b48: 5f000000 05000040 000000f4 7777975f ..._@......._.ww
21b58: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@
21b68: f4050000 5f000000 05000040 102222f5 ......._@...."".
21b78: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@.....
21b88: 405f0000 f4050000 00000000 b5fe8d01 .._@............
21b98: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`...
21ba8: 0f000000 000000a0 00602f00 2f000000 ........./`..../
21bb8: 09000060 00a00ff0 0bf00900 090000f2 `...............
21bc8: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O.......
21bd8: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@
21be8: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U.
21bf8: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._
21c08: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU
21c18: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E
21c28: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww..
21c38: 00fa0000 00fa0000 00fa0000 00fa0000 ................
21c48: 00fa0000 00fa0000 07f90000 0df60320 ............ ...
21c58: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@.......
21c68: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@.
21c78: f4050030 0000909f 40efcf5f 91ff0500 0......._..@....
21c88: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@
21c98: 05f50900 0c0000f4 00405ff2 00f40500 ........._@.....
21ca8: 405f0000 f4050000 5f000000 05000040 .._@......._@...
21cb8: 000000f4 0000405f 0000f405 00405f00 ...._@......._@.
21cc8: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._
21cd8: 00000040 00fc951e f9080000 0000f55f @..........._...
21ce8: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_.
21cf8: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........
21d08: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._...
21d18: 7100305f f3950f00 00000000 00505ff9 _0.q........._P.
21d28: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU..
21d38: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@
21d48: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U.
21d58: f5df0000 0200405f 00f455ff 00f50600 ...._@...U......
21d68: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. .
21d78: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r
21d88: 000000f6 602ff900 0f000000 0000fa90 ....../`........
21d98: 0bf70300 000000f2 d22f20af 908f0000 ......... /.....
21da8: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._..
21db8: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@..
21dc8: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n.
21dd8: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._
21de8: 00000040 0000405f 8d010000 0000b5fe @..._@..........
21df8: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ......
21e08: af000000 00a00f20 703f0000 0000602f .... .....?p/`..
21e18: 2f900f00 00000060 901f900f 2f000000 .../`........../
21e28: 00f10b70 20af0000 0010fc03 0000f907 p...... ........
21e38: df78fa6f 030000b0 00c5ffae 00000000 o.x.............
21e48: b015d43e 02000000 0080ffbf 01000000 >...............
21e58: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@..
21e68: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@...
21e78: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._
21e88: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\
21e98: 0720d9ef 90af87fc 0100c00e 00800f10 .. .............
21ea8: f50d0000 03000000 0050eaef feae0500 ..........P.....
21eb8: 00000040 0000f14e 08f30500 f2080000 @...N...........
21ec8: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g
21ed8: 7277fb78 00f70100 f7010000 01000000 x.wr............
21ee8: 000000f7 0000f701 00f70100 f7010000 ................
21ef8: 01000000 000000f7 0000f701 00f70100 ................
21f08: f7010000 306f0000 168f0000 080000f3 ......o0........
21f18: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0..
21f28: 00f3168f 6ff10800 8f000030 0000f405 .......o0.......
21f38: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._....
21f48: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o
21f58: 0c000050 00fb00c0 00f60300 0000f209 P...............
21f68: 2f0000ae 901f0080 00ce0000 0000f207 .../............
21f78: db00f605 0e000000 00504fc0 3b8f0000 .........OP....;
21f88: 000000e0 00f8fb02 0b000000 000010ff ................
21f98: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........
21fa8: ff020090 f0070040 0700e00b 0c0090fe ....@...........
21fb8: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T.
21fc8: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ .
21fd8: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&....
21fe8: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{...........
21ff8: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ...
22008: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0...
22018: 0300802f 00d00cfa f3fb0700 0c000000 /...............
22028: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o
22038: 0020af60 ed01b02f 00f10c00 f607f804 `. ./...........
22048: f3090000 0000e00c f703f207 901f0000 ................
22058: 0010af00 1f00109e 00f602a0 0bf30800 ................
22068: 000000d0 00404fec fb5f0000 00000000 .....O@..._.....
22078: 0000f20c f0090000 00000000 0000f009 ................
22088: f0090000 00000000 0000f009 ffffff3f ............?...
22098: 777701fd 0090bf77 c01e0000 0c000000 ..www...........
220a8: 000000f2 0000f508 00f90400 ec010000 ................
220b8: 00000000 000020cf 00508f00 904f0000 ..... ....P...O.
220c8: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_.
220d8: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0.
220e8: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0..
220f8: 00ff5f50 0000007e 0000401f 0000900c P_..~....@......
22108: 0000e007 0000f402 0000c900 00007e00 .............~..
22118: 00402f00 00900c00 00e00700 00f30200 ./@.............
22128: 00d90000 007e0000 302f0000 900d0000 ......~.../0....
22138: e0070000 ea35fabf ea00ea00 ea00ea00 ......5.........
22148: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5.
22158: 2f00fabf 9d000080 f30000e0 d00600d5 .../............
22168: 600c007b 103f201f 009a800b ffffe004 {..`. ?.........
22178: 1111ffff f6071111 01e70300 0080fd9e ................
22188: 90af87ce af000002 06000000 ffbe02f2 ................
22198: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B...
221a8: 206ffbbf 0000008f 00008f00 008f0000 ..o ............
221b8: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0...
221c8: 208fc01e 8ff10700 f3050000 0700208f ... ......... ..
221d8: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+...
221e8: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........
221f8: 304f0000 f6030000 0d000000 100600d0 ..O0............
22208: f47cd74f c4ef3a00 00000000 0000f701 O.|..:..........
22218: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;......
22228: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0..
22238: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e..
22248: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. .
22258: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r
22268: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:.
22278: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p.......
22288: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0...
22298: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;..
222a8: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`...
222b8: 0000404f 00603ff9 d00ef901 04f90900 O@...?`.........
222c8: f8cf87fd b3ff3b00 000000f7 e909f405 .....;..........
222d8: 01b0af77 00d8ff7c 0000008f 0000f008 w...|...........
222e8: 00008f00 bff20800 fb8f10ea f808fd89 ................
222f8: 8ff40600 781f0010 f80000f0 0f00008f .......x........
22308: 0000f088 00008ff8 00f0880f 1a9ef800 ................
22318: f00800f2 8ff0088f 088ff008 f0088ff0 ................
22328: 00e20700 0000f309 f1070000 00f10700 ................
22338: 0700f107 f10700f1 00f10700 0700f107 ................
22348: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ...
22358: 00f00800 008f0000 f0080000 8fd11d00 ................
22368: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p
22378: bfe28f00 01f20830 008f10ee f008fb03 ....0...........
22388: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................
22398: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p
223a8: 00c09f00 00f1585f 0100f605 00008ff7 ...._X..........
223b8: 0f00404f 0400f088 f80000f4 4f00008f O@.............O
223c8: 880f0040 f40400f0 8ff80000 404f0000 @.............O@
223d8: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o
223e8: 0100f148 00008ff7 00f0880f 008ff800 H...............
223f8: f0880f00 8ff80000 800f0000 c4ef3b00 .............;..
22408: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`...
22418: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`.........
22428: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;.....
22438: 8f30df57 c00d0090 0700108f 00008ff1 W.0.............
22448: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x.
22458: fe2b8f30 008f00b3 8f000000 00000000 0.+.............
22468: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;.........
22478: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?`
22488: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;.
22498: 0000f7a3 00f70100 f7010000 01000000 ................
224a8: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ ....
224b8: 8f00008f 008f0000 00008f00 91fdae02 ................
224c8: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......`
224d8: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@
224e8: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0..
224f8: 305f0000 00f30500 00305f00 0000f404 .._0....._0.....
22508: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z....
22518: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y..
22528: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P
22538: 0000c00d 00f206cb f900f502 00e00900 ................
22548: 800f009e 6f602f00 c00c0010 050000cb ...../`o........
22558: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p....
22568: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`..
22578: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P.
22588: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O.
22598: ff040000 a0ef0040 e00e0000 00f40800 ....@...........
225a8: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P......
225b8: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................
225c8: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@......
225d8: f40200f3 0900ea00 108f00d0 1f00701f .............p..
225e8: 00107f70 00d9e00a f2f90300 cf000000 p...............
225f8: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y..
22608: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[...
22618: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@...
22628: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a
22638: 0000cc00 db0000db 00db0000 1f00ea02 ................
22648: fa0500f4 00db0000 0000db00 cc0000db ................
22658: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._..
22668: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._...
22678: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p...
22688: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p....
22698: 0090be40 00000000 00e43d00 f5860cb5 @........=......
226a8: 03f0201e 000290ef 02001000 400d90ce . .............@
226b8: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@.......
226c8: 00f7e7ef 00000000 00000000 00000000 ................
226d8: 00dc4900 16000000 00ffffbf ff8d0300 .I..............
226e8: 00ffffff ffffcf00 00ffffff ffffff00 ................
226f8: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q.......
22708: 00ff0000 0000ff00 00ff0000 0000ff00 ................
22718: 00ff0000 0000ff00 00ff0000 0000ff00 ................
22728: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+....
22738: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+.......
22748: 2b000000 0000b2ff d0000000 ffffff0f ...+............
22758: ff0df0ff 8888c8ff f0ffff8c 0000800f ................
22768: f00ff008 0000800f ff0ff008 000080ff ................
22778: f0ffff08 ccccec0f f00ff0ce ccccec0f ................
22788: ff0ff0ce 000080ff f0ffff08 0000800f ................
22798: f00ff008 0000800f ff0ff008 8888c8ff ................
227a8: d0ffff8c ffffff0f df0df0ff ffff73ff .............s..
227b8: fffdffff ffffa5ff ffffffff ffffa5ff ................
227c8: dfffffff ffff73ff 00fdffff 00000000 .....s..........
227d8: df000000 ffff73ff fffdffff ffffa5ff .....s..........
227e8: ffffffff ffffa5ff dfffffff ffff73ff .............s..
227f8: 00fdffff 00000000 df000000 ffff73ff .............s..
22808: fffdffff ffffa5ff ffffffff ffffa5ff ................
22818: dfffffff ffff73ff 00fdffff 00000000 .....s..........
22828: 00b10a00 00000000 00fcbf00 00000000 ................
22838: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................
22848: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................
22858: 0c0000fc ffbffbff 000000c0 fbffffcf ................
22868: 00000000 b0ffff0c 00000000 00fbbf00 ................
22878: 00000000 00b00b00 03000000 03000000 ................
22888: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,.
22898: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................
228a8: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................
228b8: f5dffcff d1ff0500 040000a4 000000a1 ................
228c8: 0000e04f 10020000 1003f16f d05f0000 O.......o....._.
228d8: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@
228e8: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o.......
228f8: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../....
22908: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o..
22918: af000000 10fe0ff0 ff050000 d3ff06a0 ................
22928: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ...........
22938: 30fdffff 17000000 0050cabd 00000000 ...0......P.....
22948: 0000b88b 00000000 0000ffff 06300000 ..............0.
22958: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@...
22968: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O..........
22978: ffff0220 f9ff0080 ff9f0000 f9ff0000 ...............
22988: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O..
22998: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................
229a8: dffdffff 06300040 0360ffff 00000000 ....@.0...`.....
229b8: 0000ffff 00000000 0000b88b 00000000 ................
229c8: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O...
229d8: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o..
229e8: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S.........
229f8: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@.............
22a08: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A..
22a18: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................
22a28: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................
22a38: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........
22a48: 00000000 ffff0000 00000000 ffff0000 ................
22a58: 00000000 ffff0000 00000000 ffff0000 ................
22a68: 00000000 ffff0000 00000000 ffffff4f ............O...
22a78: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................
22a88: 000000fb ffff0b00 000000b0 fbbf0000 ................
22a98: df000000 b11bfcff fffdffcf 2cc2ffff ...............,
22aa8: ffffffff ffffffff ffffffff ffffffff ................
22ab8: dfffe0f0 ffffffff 00fdffff ffffef04 ................
22ac8: 0040feff ffff1e00 e1ffffff b0af0000 ..@.............
22ad8: 0b000000 ff0500fa 00000010 1e50ff01 ..............P.
22ae8: 000000f6 e16f0000 0000b0af 0b000000 ......o.........
22af8: fffffffa ff080080 ffffffff 1f00f1ff ................
22b08: ffffffff ffffffff ffffffff ffffffff ................
22b18: ffffffff ffffffff ffffffff ff8fffff ................
22b28: ffffffff 00f8ffff dabd0600 00ff0250 ............P...
22b38: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{....
22b48: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._
22b58: 0f0000f2 8fffffff 0f0000b0 00ffffff ................
...
22b74: ff000000 00f0ffff fff80b00 00f0ffff ................
22b84: fff42f00 002022fd ffe0cf00 0000c2ff ./..." .........
22b94: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$...
22ba4: ff0050fe dbac0520 00000060 00000000 .P.. ...`.......
22bb4: 008d0000 00ff0800 dfff8f00 ffffffff ................
22bc4: ffffffff ffffffff ffffffff dfffffff ................
22bd4: 00ffffff 00ff8f00 00ff0800 008d0000 ................
...
22bf0: 0000008d 00ff0800 8f000000 cf0000ff ................
22c00: 01ffffff ffffff50 fff706ff 00ffffff ....P...........
22c10: ffffffbe ffae00ff 05ffffff ffffdff8 ................
22c20: 006002ff 00ff9f00 09000000 000000ff ..`.............
22c30: 009e0000 00000000 00000000 00000000 ................
22c40: 00100600 00000000 d21f0000 00000000 ................
22c50: 0300008d 000010ee 0a00ff08 00b02fb1 ............./..
22c60: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_`
22c70: fffffff9 0df706ff ffffbdc0 ae00ffff ................
22c80: ff9ff009 00ffffff 8ff009ae ffffffff ................
22c90: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`...
22ca0: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../.
22cb0: 8d000000 ee020000 00000010 1f000000 ................
22cc0: 000000d2 00000000 8f001006 ffffffff ................
22cd0: fff8ffff fffffffc ffffffff ffff2f20 ............ /..
22ce0: fcffffff ffff0c00 ffffffee feff2f20 ............ /..
22cf0: ffffef22 e2fffffc ffff2e00 20fe4efe "............N.
22d00: ffff0200 00c202e2 ffff0000 00000020 ............ ...
22d10: ffff0000 00000000 ffff0000 ffffffff ................
22d20: 8fffffff ffffffff 00f8ffff 00000000 ................
22d30: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@....
22d40: ffff3f40 ffff44ff ff9fffff ffffffff @?...D..........
22d50: ffffffff ffffffff ffffafff ff45ffff ..............E.
22d60: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@..
22d70: 0030ffff 0000cc01 00000000 00000000 ..0.............
22d80: 918f0000 00000000 70ffff00 00000000 ...........p....
22d90: 40fdffff ff000000 10faffff ffff0000 ...@............
22da0: 00f7ffff ffffff00 00d5ffff ffffffff ................
22db0: ffb2ffff ffffffff fffffdff ffffffff ................
22dc0: fffffffd b2ffffff ffffffff ff00d5ff ................
22dd0: f7ffffff ffff0000 0010faff fdffff00 ................
22de0: 00000040 0070ffff 8e000000 000000a1 @.....p.........
...
22e00: 00f8ff8f fff8ff8f ff00ffff ffffffff ................
22e10: ffff00ff ffffffff ffffff00 00ffffff ................
22e20: ffffffff ff00ffff ffffffff ffff00ff ................
22e30: ffffffff ffffff00 00ffffff ffffffff ................
22e40: ff00ffff ffffffff ffff00ff ffffffff ................
22e50: ffffff00 00ffffff 7fffffff 7f00f7ff ................
22e60: ff8ff7ff ffffffff fffffff8 ffffffff ................
22e70: ffffffff ffffffff ffffffff ffffffff ................
22e80: ffffffff ffffffff ffffffff ffffffff ................
22e90: ffffffff ffffffff ffffffff ffffffff ................
22ea0: ffffffff ffffffff ffffffff ffffffff ................
22eb0: ffffffff ffffffff ffffffff ffff8fff ................
22ec0: f8ffffff 00000000 0010cc00 d2ffff03 ................
22ed0: ffff0400 ff0430fe 04f4ffff ffffffff .....0..........
22ee0: ffffff54 fffff9ff ffffffff ffffffff T...............
22ef0: ffffffff fffffff9 ffff44ff ff04f3ff .........D......
22f00: 0430feff 00d2ffff 10ccff04 00ff0300 ..0.............
22f10: 00000000 2d000000 000000d2 ef010000 .......-........
22f20: 000010fe ff1d0000 0000d1ff ffcf0000 ................
22f30: 0000fcff ffff0b00 00b0ffff ffffaf00 ................
22f40: 00faffff ffffff09 90ffffff ffffff0f ................
22f50: f0ffffff ffffff08 80ffffff 00000000 ................
22f60: 00000000 ffffff0c c0ffffff ffffff0f ................
22f70: f0ffffff ffffff0f f0ffffff ffffff0c ................
22f80: c0ffffff 1a000000 01000040 0000f0df ........@.......
22f90: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................
22fa0: ff0c0000 0d0000a0 000080ff 00f8df01 ................
22fb0: ff1d0000 01000080 0000f8df 80ff1d00 ................
22fc0: df010000 000000f0 a104501b 0f000000 .........P......
22fd0: 000010fd 00d1ff0a fdaf0000 0a000010 ................
22fe0: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................
22ff0: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................
23000: d1ff0800 fd0f0000 05000010 000000b1 ................
23010: ff040000 00000040 80ff0800 00000000 ....@...........
23020: 0080ff08 08000000 000080ff ff080000 ................
23030: 48000080 c8ff8c88 ffff8488 ffffffff ...H............
23040: ffffffff ffffffff ff8c8848 008488c8 ........H.......
23050: 80ff0800 00000000 0080ff08 08000000 ................
23060: 000080ff ff080000 00000080 40ff0400 ...............@
23070: 44140000 44444444 ffffef41 feffffff ...DDDDDA.......
23080: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........
23090: daffad05 00000050 88fcdf04 0040fdcf ....P.........@.
230a0: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O
230b0: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO.............
230c0: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O..
230d0: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p.
230e0: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@
230f0: 05000000 50daffad 208c0000 00000000 .......P... ....
23100: 00000000 0000e4df 00000000 ff1b0000 ................
23110: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I..............
23120: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p.....
23130: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@
23140: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-.
23150: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0..
23160: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>.
23170: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z
23180: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N.
...
23198: 0000c802 d22d0000 00000000 00000000 ......-.........
231a8: 0000fbbf 00000000 ffff0500 00000050 ............P...
231b8: 0d000000 00d0ffff 00000000 ffff7f00 ................
231c8: 000000f7 ff010000 10ff8dd8 00000000 ................
231d8: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?.....
231e8: 00000000 0cc0ffcf 0000fcff ffff0500 ................
231f8: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P...........
23208: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................
23218: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>......
23228: ffffffff f0ffffff ffffff08 ffffffff ................
23238: 000080ff 00000000 00000000 00000000 ................
23248: 000000d8 00000000 ffff80ff ff070070 ............p...
23258: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x.....
23268: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ......
23278: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^
23288: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o.
23298: fffffdff ff070070 0000f8ff 00000000 ....p...........
232a8: 000080ff 00000000 000000d8 00000000 ................
...
232c0: 01000000 000010dd ff1d0000 000000d1 ................
232d0: fdffdf01 1d000010 d1ff99ff f9df0100 ................
232e0: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................
232f0: 905ffb9f 09000000 000000f5 00000000 .._.............
23300: 00000000 5f000000 00000090 f9bff509 ......._........
23310: 9f000000 90ff1dfb d1ff0900 00f9df01 ................
23320: 0010fd9f ff99ff1d 010000d1 10fdffdf ................
23330: 1d000000 0000d1ff dd010000 00000010 ................
...
23350: 00d11d00 00000000 df010000 ffef10fd ................
23360: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................
23370: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k.......
23380: 0f0000f0 000000f0 00f00f00 00f00f00 ................
23390: 0f000000 0f0000f0 000000f0 b6f11f6b ............k...
233a0: 00f00f00 cfcf0000 0f00fcfc faffffff ................
233b0: d1ffff1d ffff0d00 df01feff 000010fd ................
233c0: 00000000 00d11d00 00000000 00000000 ................
233d0: ff8f0000 0000e2ff ffff0000 0020feff .............. .
233e0: ffff0000 ffffffff fffff8ff ffffffff ................
233f0: ffffffff ffffffff ffffffff ffffffff ................
23400: ffffffff ffffffff ffffffff ffffffff ................
23410: ffffffff ffffffff ffffffff ffffffff ................
23420: ffffffff ffffffff ff8fffff ffffffff ................
23430: 0000f8ff 00b00b00 00000000 00fbbf00 ................
23440: 00000000 b0ffff0b 00000000 fbffffbf ................
23450: 0b000000 ffffffff 4f0000b0 ffffffff ...........O....
23460: 000000f4 00ffff00 00000000 00ffff00 ................
23470: 00000000 00ffff00 00000000 00ffff00 ................
23480: 00000000 00ffff00 ffdf0000 0ffddff0 ................
23490: fffffdff 9f0000f9 ffffffff ffffffff ................
234a0: ffffffff f0ffffff ffdfffe0 ffffffff ................
234b0: 0000fdff 00000000 00000000 00000000 ................
234c0: 0062ea0a 00000000 f0ffff02 00000000 ..b.............
234d0: ffff9f00 00000000 ffff0f00 000000d0 ................
234e0: ffff0200 000000fb ef030000 000070ff .............p..
234f0: 04000000 0000f2ff 00000000 0000fbbf ................
23500: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O...
23510: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o...........
23520: ffffef00 00d1ffff ffff0a00 0090ffff ................
23530: ff6f0000 0030fbff ff020000 000072db ..o...0......r..
23540: 08000000 000080ee ff086106 2d0080ff .........a.....-
23550: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?....
23560: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n...........
23570: ffef0200 000000f3 ffff2e00 08000030 ............0...
23580: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3
23590: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0...
235a0: fddf0200 00e88e00 10660000 ffdf0000 ..........f.....
235b0: 00200dff ffffff00 0000e20f 0fffffff .. .............
235c0: fff0dffd 0020ffff fffff0ff ffffffff ...... .........
235d0: fffffff0 f0ffffff ffffffff fff0ffff ................
235e0: ffffffff fffff0ff ffffffff fffffff0 ................
235f0: f0ffffff ffffffff fff0ffff ffffffff ................
23600: ffdff0ff fffdffff 000000f9 ffff0000 ................
23610: 00ffffff ffffdf00 0000fdff ffffff8f ................
23620: ff00c2ff ffffffff 00ff20fe ff010000 ......... ......
23630: 0000ffe2 fcff0000 000000ff ffffff00 ................
23640: 00000000 ffffffff ffffffff ffffffff ................
23650: ffffffff 11fbffff ffffffbf 1f00f1ff ................
23660: ffffffff ff1f00f1 fbffffff ffffbf11 ................
23670: ffffffff 8fffffff ffffffff df00f8ff ................
23680: 0000fdff fcffff01 ff030000 0000f7ff ................
23690: f2ffff06 ff080000 0000d0ff ffffff0a ................
236a0: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. ..
236b0: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P.
236c0: fc2f0000 00000000 0000f35f a09f0000 ../....._.......
236d0: 00000000 000010df 00d70000 04000000 ................
236e0: 000040ee 99ffdf00 0000fdff ff99ffff .@..............
236f0: ff0000ff ffffffff ffff0000 00000090 ................
23700: 0dffff00 200dffff ff0fffff ffe20fff ....... ........
23710: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... ....
23720: ffffffff ff0fffff ffffffff ffff0fff ................
23730: ffdfffff ffffff0f 0f0000ff ffffffff ................
23740: ff0f0000 00ffffff ffff0d00 0000fdff ................
23750: 0000cc00 02000000 000030ff ffbf0100 .........0......
23760: 000020fc ffffff1e 9f0000e1 f8ffffff . ..............
23770: ffef0000 00fdffff ffffff00 0100ffff ................
23780: ffffffff ff0300ff ffffffff ffff0830 ............0...
23790: 80ffffff ffffff1e cfe1ffff ffffffff ................
237a0: ffcffcff ffffffff 000000fc 00000000 ................
237b0: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@....
237c0: ffffffff fff8ffff ffffffff ffffffff ................
237d0: 0ff000ff 000ff000 f000ffff 0ff0000f ................
237e0: ffffff00 ffffffff ffffffff 888008f8 ................
237f0: ff8f8008 8008f8ff 8f800888 ffffffff ................
23800: ffffffff 00ffffff 000000f0 ffff000f ................
23810: 0000f000 ff000f00 ffffffff ffffffff ................
23820: ffff8fff ffffffff 0000f8ff 00000000 ................
...
23838: 70af0300 00000000 ffcf0400 000000f0 ...p............
23848: ffdf0600 0000a0ff ffef1700 0030ffff ..............0.
23858: ffff1800 00fcffff ffff2a00 f4ffffff .........*......
23868: ffff0800 ffffffff ff0f00d0 ffffffff ................
23878: 080060ff ffffffff 0000feff 00000000 .`..............
23888: 00f7ffff 00000000 f1ffff00 00000000 ................
23898: ffff0000 00000080 ff000000 000010ff ................
238a8: 00000000 0000faff 00000000 00f2ff00 ................
238b8: 00000000 808f0000 00000000 00000000 ................
238c8: 00000000 f0ffffdf ffff00d2 20fef0ff ...............
238d8: f0ffffff ffffe2ff fdfff0ff f2ffffff ................
238e8: ffff0000 ffffffff ffffffff ffffffff ................
238f8: ffffffff ffffffff ffffffff ffffffff ................
23908: ffffffff ffffffff ffffffff ffffffff ................
23918: ffffffff ffffffff ffffffff ffdfffff ................
23928: fdffffff 00000000 00000000 00000000 ................
23938: feef9c04 000040c9 ffef0700 feffffff .....@..........
23948: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o...
23958: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o.
23968: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M...
23978: 0000d4ff feff0500 ffef8aa8 01000050 ............P...
23988: 000070df 0010fd07 00120000 21000000 .p.............!
23998: 00000000 e44e0000 00000000 00000000 ......N.........
239a8: 0000feef 00000000 feef0000 00000000 ................
239b8: 00000000 0000e44e ff8f0000 ffffffff ....N...........
239c8: 80ffffff ffffffff ffffffff 00fff0ff ................
239d8: 00000000 fd0f0000 ffff0fff ffffffff ................
239e8: 0fffff0f ffffffff ff00ffff ffff0fff ................
239f8: ffffffff 0fffff00 ffffffff ff0fffff ................
23a08: 000000ff 00000000 fffffd0f ffffffff ................
23a18: f0ffffff ffffff8f ffffffff ff8f80ff ................
23a28: ffffffff 80ffffff ffffffff ffffffff ................
23a38: 00fff0ff 00000000 fd0f0000 ffff0fff ................
23a48: 00f0ffff 0fffff0f ffffffff ff0000f0 ................
23a58: ffff0fff 00f0ffff 0fffff00 ffffffff ................
23a68: ff0f00f0 000000ff 00000000 fffffd0f ................
23a78: ffffffff f0ffffff ffffff8f ffffffff ................
23a88: ff8f80ff ffffffff 80ffffff ffffffff ................
23a98: ffffffff 00fff0ff 00000000 fd0f0000 ................
23aa8: ffff0fff 000000ff 0fffff0f 00ffffff ................
23ab8: ff000000 ffff0fff 000000ff 0fffff00 ................
23ac8: 00ffffff ff0f0000 000000ff 00000000 ................
23ad8: fffffd0f ffffffff f0ffffff ffffff8f ................
23ae8: ffffffff ff8f80ff ffffffff 80ffffff ................
23af8: ffffffff ffffffff 00fff0ff 00000000 ................
23b08: fd0f0000 f0ff0fff 00000000 0fffff0f ................
23b18: 0000f0ff ff000000 f0ff0fff 00000000 ................
23b28: 0fffff00 0000f0ff ff0f0000 000000ff ................
23b38: 00000000 fffffd0f ffffffff f0ffffff ................
23b48: ffffff8f ffffffff ff8f80ff ffffffff ................
23b58: 80ffffff ffffffff ffffffff 00fff0ff ................
23b68: 00000000 fd0f0000 000000ff 00000000 ................
23b78: 00ffff0f 00000000 ff000000 000000ff ................
23b88: 00000000 00ffff00 00000000 ff0f0000 ................
23b98: 000000ff 00000000 fffffd0f ffffffff ................
23ba8: f0ffffff ffffff8f ffffffff 000080ff ................
23bb8: 01000000 00000000 00000000 10fd0700 ................
23bc8: 00000000 cf010000 0000f5ff 00000000 ................
23bd8: fe29b900 00000010 3f000000 00000210 ..)........?....
23be8: df030000 00900a80 70030000 77ffdf00 ...........p...w
23bf8: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU...........
23c08: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F..
23c18: 3302f201 00000010 09000000 00f9cfb1 ...3............
23c28: 00000000 ff0a0000 000090ff 00000000 ................
23c38: f9bf0000 00000000 00000000 00002201 ............."..
23c48: df180000 020092fd ffeffbef faff0d30 ............0...
23c58: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O..
23c68: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=.............
23c78: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y
23c88: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._......
23c98: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P.....
23ca8: 7f000000 0000f7ff ffffffef effeffff ................
23cb8: ffffffff 0000feff 00000000 ffff0f00 ................
23cc8: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................
23cd8: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................
23ce8: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................
23cf8: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................
23d08: 0ff09ff9 ffffffff ff08f0ff ffffffff ................
23d18: 00000080 7f000000 000000a0 8f000000 ................
23d28: 0000b0ff 0d000000 00a0ffff 8a000000 ................
23d38: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p....
23d48: 801dfaff 8f000000 00faffff 8f000000 ................
23d58: 80ffffff 8f000000 80ffffff 8f000000 ................
23d68: 80ffffff 8f000000 80ffffff 6f000000 ...............o
23d78: 80ffffff 0b000000 80ffffff 00000000 ................
23d88: 80ffffdf 00000000 80ffff0e 00000000 ................
23d98: 60dbde00 00000000 00000000 00000000 ...`............
23da8: 00000000 ffffff1b e4ffffff ffdf0100 ................
23db8: ffffffff 1d00feff effaffff ffffaffe ................
23dc8: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................
23dd8: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ......
23de8: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... .
23df8: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................
23e08: affeeffa 0100ffff ffffffdf feffffff ................
23e18: ff1b0000 ffffffff 0800e4ff e4ffffff ................
23e28: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@.....
23e38: f8ffff40 ff400b0f ffffffff ffffffff @.....@.........
23e48: ffffffff ffffffff ffffffff ffffffff ................
23e58: ffffffff ffffffff ffffffff ffffffff ................
23e68: ffffffff ffffffff ffffffff ffefffff ................
23e78: feffffff ffffff4e 0000e4ff 00000000 ....N...........
23e88: 00000100 00000000 00e00300 00001000 ................
23e98: 10ef0200 0000bf00 f17f0000 00f1cf00 ................
23ea8: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww.....
23eb8: ffffffff ffff17ff ffffffff ff07e0ff ................
23ec8: 000000f1 06000000 000010ff 00000000 ................
23ed8: 0000a005 00000000 732f2e2e 65726168 ........../share
23ee8: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg
23ef8: 72732f6c 766c2f63 6c61685f 5f766c2f l/src/lv_hal/lv_
23f08: 5f6c6168 70736964 hal_disp.c.
00023f13 <__func__.0>:
23f13: 645f766c 5f707369 5f767264 69676572 lv_disp_drv_regi
23f23: 72657473 2f2e2e00 72616873 742f6465 ster.../shared/t
23f33: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
23f43: 6c2f6372 696d5f76 6c2f6373 6e615f76 rc/lv_misc/lv_an
23f53: 632e6d69 im.c.
00023f58 <__func__.0>:
23f58: 615f766c 5f6d696e 72617473 00000074 lv_anim_start...
00023f68 <lv_anim_path_def>:
23f68: 0000dab1 00000000 732f2e2e 65726168 ........../share
23f78: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg
23f88: 72732f6c 766c2f63 73696d5f 766c2f63 l/src/lv_misc/lv
23f98: 2e73665f _fs.c.
00023f9e <__func__.0>:
23f9e: 665f766c 72645f73 65725f76 74736967 lv_fs_drv_regist
23fae: er.
00023fb1 <__func__.2>:
23fb1: 665f766c 706f5f73 lv_fs_open.
00023fbc <__func__.1>:
23fbc: 665f766c 69645f73 706f5f72 00006e65 lv_fs_dir_open..
00023fcc <sin0_90_table>:
23fcc: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a...
23fdc: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!!
23fec: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2
23ffc: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A
2400c: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI<K.M.N.P
2401c: 53f95246 574b55a5 5a8258ea 5d9c5c13 FR.S.UKW.X.Z.\.]
2402c: 609a5f1f 6379620d 663964dd 68d9678d ._.`.byc.d9f.g.h
2403c: 6b596a1d 6db76c8c 6ff36ed9 720c7104 .jYk.l.m.n.o.q.r
2404c: 7401730b 75d274ee 777f76ad 79067847 .s.t.t.u.v.wGx.y
2405c: 7a6779bb 7ba27b0a 7cb77c32 7da57d33 .ygz.{.{2|.|3}.}
2406c: 7e6c7e0d 7f0b7ec0 7f827f4b 7fd27faf .~l~.~..K.......
2407c: 7ffa7feb 2e2e7fff 6168732f 2f646572 ......../shared/
2408c: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/
2409c: 2f637273 6d5f766c 2f637369 6d5f766c src/lv_misc/lv_m
240ac: 632e6d65 756f4300 276e646c 6c612074 em.c.Couldn't al
240bc: 61636f6c 6d206574 726f6d65 766c0079 locate memory.lv
240cc: 6d656d5f 6675625f 6c65725f 65736165 _mem_buf_release
240dc: 2070203a 6e207369 6120746f 6f6e6b20 : p is not a kno
240ec: 62206e77 65666675 766c0072 6d656d5f wn buffer.lv_mem
240fc: 6675625f 7465675f 754f203a 666f2074 _buf_get: Out of
2410c: 6d656d20 2c79726f 6e616320 61207427 memory, can't a
2411c: 636f6c6c 20657461 656e2061 62202077 llocate a new b
2412c: 65666675 69282072 6572636e 20657361 uffer (increase
2413c: 72756f79 5f564c20 5f4d454d 455a4953 your LV_MEM_SIZE
2414c: 6165682f 69732070 0029657a 6d5f766c /heap size).lv_m
2415c: 625f6d65 675f6675 203a7465 66206f6e em_buf_get: no f
2416c: 20656572 66667562 202e7265 72636e49 ree buffer. Incr
2417c: 65736165 5f564c20 57415244 4655425f ease LV_DRAW_BUF
2418c: 58414d5f 4d554e5f _MAX_NUM..
00024196 <__func__.4>:
24196: 6d5f766c 615f6d65 636f6c6c lv_mem_alloc.
000241a3 <__func__.0>:
241a3: 5f766c5f 5f6d656d 5f667562 656c6572 _lv_mem_buf_rele
241b3: 00657361 ase.
000241b7 <__func__.2>:
241b7: 6d5f766c 725f6d65 6c6c6165 lv_mem_realloc.
000241c6 <__func__.1>:
241c6: 5f766c5f 5f6d656d 5f667562 00746567 _lv_mem_buf_get.
241d6: 732f2e2e 65726168 68742f64 70647269 ../shared/thirdp
241e6: 79747261 67766c2f 72732f6c 766c2f63 arty/lvgl/src/lv
241f6: 73696d5f 766c2f63 7361745f 00632e6b _misc/lv_task.c.
00024206 <__func__.1>:
24206: 745f766c 5f6b7361 61657263 625f6574 lv_task_create_b
24216: 63697361 asic.
0002421b <__func__.0>:
2421b: 745f766c 5f6b7361 61657263 20006574 lv_task_create.
2422b: 3a3b2e2c 2e005f2d 68732f2e 64657261 ,.;:-_.../shared
2423b: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
2424b: 6372732f 5f766c2f 6373696d 5f766c2f /src/lv_misc/lv_
2425b: 2e747874 766c0063 7478745f 7465675f txt.c.lv_txt_get
2426b: 7a69735f 69203a65 6765746e 6f207265 _size: integer o
2427b: 66726576 20776f6c 6c696877 61632065 verflow while ca
2428b: 6c75636c 6e697461 65742067 68207478 lculating text h
2429b: 68676965 eight.
000242a1 <__func__.0>:
242a1: 5f766c5f 5f747874 5f746567 657a6973 _lv_txt_get_size
242b1: 8c80ef00 10ffff00 2ec61884 68732f2e ............./sh
242c1: 64657261 6968742f 61706472 2f797472 ared/thirdparty/
242d1: 6c67766c 6372732f 5f766c2f 67646977 lvgl/src/lv_widg
242e1: 2f737465 695f766c 632e676d 5f766c00 ets/lv_img.c.lv_
242f1: 5f676d69 5f746573 3a637273 6b6e7520 img_set_src: unk
24301: 6e776f6e 70797420 766c0065 676d695f nown type.lv_img
24311: 7465735f 6372735f 6e75203a 776f6e6b _set_src: unknow
24321: 6d69206e 20656761 65707974 5f766c00 n image type.lv_
24331: 5f676d69 5f746573 3a637273 4c602020 img_set_src: `L
24341: 4d495f56 52535f47 41565f43 42414952 V_IMG_SRC_VARIAB
24351: 2060454c 65707974 756f6620 6900646e LE` type found.i
24361: 6567616d 65726320 64657461 5f766c00 mage created.lv_
24371: 00676d69 img.
00024375 <__func__.13>:
24375: 695f766c 645f676d 67697365 lv_img_design.
00024383 <__func__.11>:
24383: 695f766c 735f676d 615f7465 5f6f7475 lv_img_set_auto_
24393: 657a6973 size.
00024398 <__func__.10>:
24398: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse
243a8: 00785f74 t_x.
000243ac <__func__.9>:
243ac: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse
243bc: 00795f74 t_y.
000243c0 <__func__.8>:
243c0: 695f766c 675f676d 735f7465 lv_img_get_src.
000243cf <__func__.7>:
243cf: 695f766c 675f676d 665f7465 5f656c69 lv_img_get_file_
243df: 656d616e name.
000243e4 <__func__.6>:
243e4: 695f766c 675f676d 615f7465 5f6f7475 lv_img_get_auto_
243f4: 657a6973 size.
000243f9 <__func__.12>:
243f9: 695f766c 735f676d 735f7465 lv_img_set_src.
00024408 <__func__.14>:
24408: 695f766c 635f676d 74616572 lv_img_create.
00024416 <__func__.5>:
24416: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse
24426: 00785f74 t_x.
0002442a <__func__.4>:
2442a: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse
2443a: 00795f74 t_y.
0002443e <__func__.3>:
2443e: 695f766c 675f676d 705f7465 746f7669 lv_img_get_pivot
...
0002444f <__func__.2>:
2444f: 695f766c 675f676d 615f7465 656c676e lv_img_get_angle
...
00024460 <__func__.1>:
24460: 695f766c 675f676d 7a5f7465 006d6f6f lv_img_get_zoom.
00024470 <__func__.0>:
24470: 695f766c 675f676d 615f7465 6169746e lv_img_get_antia
24480: 7361696c 2f2e2e00 72616873 742f6465 lias.../shared/t
24490: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
244a0: 6c2f6372 69775f76 74656764 766c2f73 rc/lv_widgets/lv
244b0: 62616c5f 632e6c65 69614600 2064656c _label.c.Failed
244c0: 61206f74 636f6c6c 20657461 6f6d656d to allocate memo
244d0: 66207972 6420726f 745f746f 705f706d ry for dot_tmp_p
244e0: 54007274 00747865 6562616c 7263206c tr.Text.label cr
244f0: 65746165 766c0064 62616c5f eated.lv_label.
000244ff <__func__.21>:
244ff: 6c5f766c 6c656261 7465735f 746f645f lv_label_set_dot
2450f: 706d745f _tmp.
00024514 <__func__.16>:
24514: 6c5f766c 6c656261 7465735f 696c615f lv_label_set_ali
24524: gn.
00024527 <__func__.13>:
24527: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
24537: 65735f74 74735f6c 00747261 t_sel_start.
00024543 <__func__.12>:
24543: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
24553: 65735f74 6e655f6c t_sel_end.
0002455d <__func__.11>:
2455d: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2456d: t.
0002456f <__func__.10>:
2456f: 6c5f766c 6c656261 7465675f 6e6f6c5f lv_label_get_lon
2457f: 6f6d5f67 g_mode.
00024586 <__func__.9>:
24586: 6c5f766c 6c656261 7465675f 696c615f lv_label_get_ali
24596: gn.
00024599 <__func__.8>:
24599: 6c5f766c 6c656261 7465675f 6365725f lv_label_get_rec
245a9: 726f6c6f olor.
000245ae <__func__.7>:
245ae: 6c5f766c 6c656261 7465675f 696e615f lv_label_get_ani
245be: 70735f6d 00646565 m_speed.
000245c6 <__func__.6>:
245c6: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let
245d6: 5f726574 00736f70 ter_pos.
000245de <__func__.5>:
245de: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let
245ee: 5f726574 ter_on.
000245f5 <__func__.20>:
245f5: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
24605: t.
00024607 <__func__.19>:
24607: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
24617: 6d665f74 t_fmt.
0002461d <__func__.18>:
2461d: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2462d: 74735f74 63697461 t_static.
00024636 <__func__.17>:
24636: 6c5f766c 6c656261 7465735f 6e6f6c5f lv_label_set_lon
24646: 6f6d5f67 g_mode.
0002464d <__func__.15>:
2464d: 6c5f766c 6c656261 7465735f 6365725f lv_label_set_rec
2465d: 726f6c6f olor.
00024662 <__func__.22>:
24662: 6c5f766c 6c656261 6572635f 00657461 lv_label_create.
00024672 <__func__.14>:
24672: 6c5f766c 6c656261 7465735f 696e615f lv_label_set_ani
24682: 70735f6d 00646565 m_speed.
0002468a <__func__.4>:
2468a: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2469a: 65735f74 74735f6c 00747261 t_sel_start.
000246a6 <__func__.3>:
246a6: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
246b6: 65735f74 6e655f6c t_sel_end.
000246c0 <__func__.2>:
246c0: 6c5f766c 6c656261 5f73695f 72616863 lv_label_is_char
246d0: 646e755f 705f7265 _under_pos.
000246db <__func__.1>:
246db: 6c5f766c 6c656261 736e695f 7865745f lv_label_ins_tex
246eb: t.
000246ed <__func__.0>:
246ed: 6c5f766c 6c656261 7475635f 7865745f lv_label_cut_tex
246fd: t..
00024700 <_init>:
24700: b5f8 push {r3, r4, r5, r6, r7, lr}
24702: bf00 nop
24704: bcf8 pop {r3, r4, r5, r6, r7}
24706: bc08 pop {r3}
24708: 469e mov lr, r3
2470a: 4770 bx lr
0002470c <__frame_dummy_init_array_entry>:
2470c: 0289 0000 ....
00024710 <_fini>:
24710: b5f8 push {r3, r4, r5, r6, r7, lr}
24712: bf00 nop
24714: bcf8 pop {r3, r4, r5, r6, r7}
24716: bc08 pop {r3}
24718: 469e mov lr, r3
2471a: 4770 bx lr
0002471c <__do_global_dtors_aux_fini_array_entry>:
2471c: 0265 0000 e...