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.
61901 lines
2.5 MiB
61901 lines
2.5 MiB
|
|
oracle_test_d21.elf: file format elf32-littlearm
|
|
|
|
Sections:
|
|
Idx Name Size VMA LMA File off Algn
|
|
0 .text 0001c9a0 00000000 00000000 00010000 2**2
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
1 .ARM.exidx 00000008 0001c9a0 0001c9a0 0002c9a0 2**2
|
|
CONTENTS, ALLOC, LOAD, READONLY, DATA
|
|
2 .relocate 000000c4 20000000 0001c9a8 00030000 2**2
|
|
CONTENTS, ALLOC, LOAD, CODE
|
|
3 .bss 00004d70 200000c8 0001ca70 000300c4 2**3
|
|
ALLOC
|
|
4 .stack 00002000 20004e38 000217e0 000300c4 2**0
|
|
ALLOC
|
|
5 .ARM.attributes 00000028 00000000 00000000 000300c4 2**0
|
|
CONTENTS, READONLY
|
|
6 .comment 00000059 00000000 00000000 000300ec 2**0
|
|
CONTENTS, READONLY
|
|
7 .debug_info 00089e2c 00000000 00000000 00030145 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
8 .debug_abbrev 0000bbb5 00000000 00000000 000b9f71 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
9 .debug_aranges 000017e0 00000000 00000000 000c5b26 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
10 .debug_ranges 00003230 00000000 00000000 000c7306 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
11 .debug_macro 0002642b 00000000 00000000 000ca536 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
12 .debug_line 00030f4b 00000000 00000000 000f0961 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
13 .debug_str 0009fce3 00000000 00000000 001218ac 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
14 .debug_frame 000047b8 00000000 00000000 001c1590 2**2
|
|
CONTENTS, READONLY, DEBUGGING
|
|
15 .debug_loc 0003cca8 00000000 00000000 001c5d48 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
|
|
Disassembly of section .text:
|
|
|
|
00000000 <exception_table>:
|
|
/**********************
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
void _lv_gc_clear_roots(void)
|
|
{
|
|
0: 38 6e 00 20 75 13 00 00 71 13 00 00 71 13 00 00 8n. u...q...q...
|
|
...
|
|
#define LV_CLEAR_ROOT(root_type, root_name) _lv_memset_00(&LV_GC_ROOT(root_name), sizeof(LV_GC_ROOT(root_name)));
|
|
LV_ITERATE_ROOTS(LV_CLEAR_ROOT)
|
|
2c: 71 13 00 00 00 00 00 00 00 00 00 00 71 13 00 00 q...........q...
|
|
3c: 45 01 00 00 71 13 00 00 71 13 00 00 71 13 00 00 E...q...q...q...
|
|
4c: 71 13 00 00 71 13 00 00 71 13 00 00 71 13 00 00 q...q...q...q...
|
|
5c: 71 13 00 00 71 13 00 00 4d 0c 00 00 5d 0c 00 00 q...q...M...]...
|
|
}
|
|
6c: 6d 0c 00 00 7d 0c 00 00 8d 0c 00 00 9d 0c 00 00 m...}...........
|
|
7c: 71 13 00 00 71 13 00 00 71 13 00 00 71 13 00 00 q...q...q...q...
|
|
8c: 71 13 00 00 71 13 00 00 71 13 00 00 71 13 00 00 q...q...q...q...
|
|
9c: 71 13 00 00 71 13 00 00 71 13 00 00 71 13 00 00 q...q...q...q...
|
|
ac: 71 13 00 00 00 00 00 00 q.......
|
|
|
|
000000b4 <__do_global_dtors_aux>:
|
|
b4: b510 push {r4, lr}
|
|
b6: 4c06 ldr r4, [pc, #24] ; (d0 <__do_global_dtors_aux+0x1c>)
|
|
b8: 7823 ldrb r3, [r4, #0]
|
|
ba: 2b00 cmp r3, #0
|
|
bc: d107 bne.n ce <__do_global_dtors_aux+0x1a>
|
|
be: 4b05 ldr r3, [pc, #20] ; (d4 <__do_global_dtors_aux+0x20>)
|
|
c0: 2b00 cmp r3, #0
|
|
c2: d002 beq.n ca <__do_global_dtors_aux+0x16>
|
|
c4: 4804 ldr r0, [pc, #16] ; (d8 <__do_global_dtors_aux+0x24>)
|
|
c6: e000 b.n ca <__do_global_dtors_aux+0x16>
|
|
c8: bf00 nop
|
|
ca: 2301 movs r3, #1
|
|
cc: 7023 strb r3, [r4, #0]
|
|
ce: bd10 pop {r4, pc}
|
|
d0: 200000c8 .word 0x200000c8
|
|
d4: 00000000 .word 0x00000000
|
|
d8: 0001c9a8 .word 0x0001c9a8
|
|
|
|
000000dc <frame_dummy>:
|
|
dc: 4b08 ldr r3, [pc, #32] ; (100 <frame_dummy+0x24>)
|
|
de: b510 push {r4, lr}
|
|
e0: 2b00 cmp r3, #0
|
|
e2: d003 beq.n ec <frame_dummy+0x10>
|
|
e4: 4907 ldr r1, [pc, #28] ; (104 <frame_dummy+0x28>)
|
|
e6: 4808 ldr r0, [pc, #32] ; (108 <frame_dummy+0x2c>)
|
|
e8: e000 b.n ec <frame_dummy+0x10>
|
|
ea: bf00 nop
|
|
ec: 4807 ldr r0, [pc, #28] ; (10c <frame_dummy+0x30>)
|
|
ee: 6803 ldr r3, [r0, #0]
|
|
f0: 2b00 cmp r3, #0
|
|
f2: d100 bne.n f6 <frame_dummy+0x1a>
|
|
f4: bd10 pop {r4, pc}
|
|
f6: 4b06 ldr r3, [pc, #24] ; (110 <frame_dummy+0x34>)
|
|
f8: 2b00 cmp r3, #0
|
|
fa: d0fb beq.n f4 <frame_dummy+0x18>
|
|
fc: 4798 blx r3
|
|
fe: e7f9 b.n f4 <frame_dummy+0x18>
|
|
100: 00000000 .word 0x00000000
|
|
104: 200000cc .word 0x200000cc
|
|
108: 0001c9a8 .word 0x0001c9a8
|
|
10c: 0001c9a8 .word 0x0001c9a8
|
|
110: 00000000 .word 0x00000000
|
|
|
|
00000114 <p_time_init>:
|
|
#include "p_time.h"
|
|
#include "p_usart.h"
|
|
#include "lvgl.h"
|
|
static volatile uint64_t sys_time = 0;
|
|
void p_time_init(void)
|
|
{
|
|
114: b510 push {r4, lr}
|
|
// Configure SysTick to trigger every millisecond using the CPU Clock
|
|
SysTick->CTRL = 0; // Disable SysTick
|
|
116: 4a08 ldr r2, [pc, #32] ; (138 <p_time_init+0x24>)
|
|
118: 2000 movs r0, #0
|
|
11a: 6010 str r0, [r2, #0]
|
|
SysTick->LOAD = 7999UL; // Set reload register for 1mS interrupts
|
|
11c: 4b07 ldr r3, [pc, #28] ; (13c <p_time_init+0x28>)
|
|
11e: 6053 str r3, [r2, #4]
|
|
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
}
|
|
else
|
|
{
|
|
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
120: 4c07 ldr r4, [pc, #28] ; (140 <p_time_init+0x2c>)
|
|
122: 6a23 ldr r3, [r4, #32]
|
|
124: 021b lsls r3, r3, #8
|
|
126: 0a1b lsrs r3, r3, #8
|
|
128: 21c0 movs r1, #192 ; 0xc0
|
|
12a: 0609 lsls r1, r1, #24
|
|
12c: 430b orrs r3, r1
|
|
12e: 6223 str r3, [r4, #32]
|
|
NVIC_SetPriority(SysTick_IRQn, 3); // Set interrupt priority to least urgency
|
|
SysTick->VAL = 0; // Reset the SysTick counter value
|
|
130: 6090 str r0, [r2, #8]
|
|
SysTick->CTRL = 0x00000007; // Enable SysTick, Enable SysTick Exceptions, Use CPU Clock
|
|
132: 2307 movs r3, #7
|
|
134: 6013 str r3, [r2, #0]
|
|
NVIC_EnableIRQ(SysTick_IRQn); // Enable SysTick Interrupt
|
|
}
|
|
136: bd10 pop {r4, pc}
|
|
138: e000e010 .word 0xe000e010
|
|
13c: 00001f3f .word 0x00001f3f
|
|
140: e000ed00 .word 0xe000ed00
|
|
|
|
00000144 <SysTick_Handler>:
|
|
|
|
|
|
void SysTick_Handler(void)
|
|
{
|
|
144: b570 push {r4, r5, r6, lr}
|
|
sys_time++;
|
|
146: 4906 ldr r1, [pc, #24] ; (160 <SysTick_Handler+0x1c>)
|
|
148: 680a ldr r2, [r1, #0]
|
|
14a: 684b ldr r3, [r1, #4]
|
|
14c: 2401 movs r4, #1
|
|
14e: 2500 movs r5, #0
|
|
150: 1912 adds r2, r2, r4
|
|
152: 416b adcs r3, r5
|
|
154: 600a str r2, [r1, #0]
|
|
156: 604b str r3, [r1, #4]
|
|
lv_tick_inc(1);
|
|
158: 2001 movs r0, #1
|
|
15a: 4b02 ldr r3, [pc, #8] ; (164 <SysTick_Handler+0x20>)
|
|
15c: 4798 blx r3
|
|
}
|
|
15e: bd70 pop {r4, r5, r6, pc}
|
|
160: 200000e8 .word 0x200000e8
|
|
164: 0000f771 .word 0x0000f771
|
|
|
|
00000168 <oracle_init>:
|
|
#include "p_ssd1963.h"
|
|
|
|
static lv_disp_buf_t disp_buf;
|
|
static lv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/
|
|
void oracle_init(void)
|
|
{
|
|
168: b530 push {r4, r5, lr}
|
|
16a: b08d sub sp, #52 ; 0x34
|
|
system_init();
|
|
16c: 4b14 ldr r3, [pc, #80] ; (1c0 <oracle_init+0x58>)
|
|
16e: 4798 blx r3
|
|
*
|
|
* Enables global interrupts in the device to fire any enabled interrupt handlers.
|
|
*/
|
|
static inline void system_interrupt_enable_global(void)
|
|
{
|
|
cpu_irq_enable();
|
|
170: 2201 movs r2, #1
|
|
172: 4b14 ldr r3, [pc, #80] ; (1c4 <oracle_init+0x5c>)
|
|
174: 701a strb r2, [r3, #0]
|
|
\details Ensures the apparent order of the explicit memory operations before
|
|
and after the instruction, without ensuring their completion.
|
|
*/
|
|
__STATIC_FORCEINLINE void __DMB(void)
|
|
{
|
|
__ASM volatile ("dmb 0xF":::"memory");
|
|
176: f3bf 8f5f dmb sy
|
|
__ASM volatile ("cpsie i" : : : "memory");
|
|
17a: b662 cpsie i
|
|
|
|
system_interrupt_enable_global();
|
|
|
|
p_usart_init();
|
|
17c: 4b12 ldr r3, [pc, #72] ; (1c8 <oracle_init+0x60>)
|
|
17e: 4798 blx r3
|
|
p_i2c_init();
|
|
180: 4b12 ldr r3, [pc, #72] ; (1cc <oracle_init+0x64>)
|
|
182: 4798 blx r3
|
|
p_gpio_init();
|
|
184: 4b12 ldr r3, [pc, #72] ; (1d0 <oracle_init+0x68>)
|
|
186: 4798 blx r3
|
|
p_time_init();
|
|
188: 4b12 ldr r3, [pc, #72] ; (1d4 <oracle_init+0x6c>)
|
|
18a: 4798 blx r3
|
|
|
|
|
|
lv_init();
|
|
18c: 4b12 ldr r3, [pc, #72] ; (1d8 <oracle_init+0x70>)
|
|
18e: 4798 blx r3
|
|
|
|
ssd1963_init();
|
|
190: 4b12 ldr r3, [pc, #72] ; (1dc <oracle_init+0x74>)
|
|
192: 4798 blx r3
|
|
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
|
|
194: 4c12 ldr r4, [pc, #72] ; (1e0 <oracle_init+0x78>)
|
|
196: 2396 movs r3, #150 ; 0x96
|
|
198: 015b lsls r3, r3, #5
|
|
19a: 2200 movs r2, #0
|
|
19c: 4911 ldr r1, [pc, #68] ; (1e4 <oracle_init+0x7c>)
|
|
19e: 0020 movs r0, r4
|
|
1a0: 4d11 ldr r5, [pc, #68] ; (1e8 <oracle_init+0x80>)
|
|
1a2: 47a8 blx r5
|
|
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
|
|
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
|
|
1a4: a801 add r0, sp, #4
|
|
1a6: 4b11 ldr r3, [pc, #68] ; (1ec <oracle_init+0x84>)
|
|
1a8: 4798 blx r3
|
|
disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/
|
|
1aa: 4b11 ldr r3, [pc, #68] ; (1f0 <oracle_init+0x88>)
|
|
1ac: 9304 str r3, [sp, #16]
|
|
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
|
|
1ae: 9402 str r4, [sp, #8]
|
|
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
|
|
1b0: a801 add r0, sp, #4
|
|
1b2: 4b10 ldr r3, [pc, #64] ; (1f4 <oracle_init+0x8c>)
|
|
1b4: 4798 blx r3
|
|
|
|
p_debug_start_service();
|
|
1b6: 4b10 ldr r3, [pc, #64] ; (1f8 <oracle_init+0x90>)
|
|
1b8: 4798 blx r3
|
|
}
|
|
1ba: b00d add sp, #52 ; 0x34
|
|
1bc: bd30 pop {r4, r5, pc}
|
|
1be: 46c0 nop ; (mov r8, r8)
|
|
1c0: 00001345 .word 0x00001345
|
|
1c4: 2000000c .word 0x2000000c
|
|
1c8: 00017759 .word 0x00017759
|
|
1cc: 000176e9 .word 0x000176e9
|
|
1d0: 000175c5 .word 0x000175c5
|
|
1d4: 00000115 .word 0x00000115
|
|
1d8: 00001861 .word 0x00001861
|
|
1dc: 0001696d .word 0x0001696d
|
|
1e0: 20002670 .word 0x20002670
|
|
1e4: 200000f0 .word 0x200000f0
|
|
1e8: 0000f4c1 .word 0x0000f4c1
|
|
1ec: 0000f45d .word 0x0000f45d
|
|
1f0: 000172a9 .word 0x000172a9
|
|
1f4: 0000f4e1 .word 0x0000f4e1
|
|
1f8: 00017855 .word 0x00017855
|
|
|
|
000001fc <oracle_service>:
|
|
|
|
void oracle_service(void)
|
|
{
|
|
1fc: b510 push {r4, lr}
|
|
delay_ms(1);
|
|
1fe: 2000 movs r0, #0
|
|
200: 4b08 ldr r3, [pc, #32] ; (224 <oracle_service+0x28>)
|
|
202: 4798 blx r3
|
|
204: 0002 movs r2, r0
|
|
206: 2300 movs r3, #0
|
|
208: 4807 ldr r0, [pc, #28] ; (228 <oracle_service+0x2c>)
|
|
20a: 2100 movs r1, #0
|
|
20c: 1880 adds r0, r0, r2
|
|
20e: 4159 adcs r1, r3
|
|
210: 4a06 ldr r2, [pc, #24] ; (22c <oracle_service+0x30>)
|
|
212: 2300 movs r3, #0
|
|
214: 4c06 ldr r4, [pc, #24] ; (230 <oracle_service+0x34>)
|
|
216: 47a0 blx r4
|
|
218: 4b06 ldr r3, [pc, #24] ; (234 <oracle_service+0x38>)
|
|
21a: 4798 blx r3
|
|
lv_task_handler();
|
|
21c: 4b06 ldr r3, [pc, #24] ; (238 <oracle_service+0x3c>)
|
|
21e: 4798 blx r3
|
|
220: bd10 pop {r4, pc}
|
|
222: 46c0 nop ; (mov r8, r8)
|
|
224: 000010cd .word 0x000010cd
|
|
228: 00001b57 .word 0x00001b57
|
|
22c: 00001b58 .word 0x00001b58
|
|
230: 00017b6d .word 0x00017b6d
|
|
234: 20000001 .word 0x20000001
|
|
238: 0001135d .word 0x0001135d
|
|
|
|
0000023c <long_division>:
|
|
/**
|
|
* \internal Calculate 64 bit division, ref can be found in
|
|
* http://en.wikipedia.org/wiki/Division_algorithm#Long_division
|
|
*/
|
|
static uint64_t long_division(uint64_t n, uint64_t d)
|
|
{
|
|
23c: b5f0 push {r4, r5, r6, r7, lr}
|
|
23e: 46de mov lr, fp
|
|
240: 4657 mov r7, sl
|
|
242: 464e mov r6, r9
|
|
244: 4645 mov r5, r8
|
|
246: b5e0 push {r5, r6, r7, lr}
|
|
248: b087 sub sp, #28
|
|
24a: 4680 mov r8, r0
|
|
24c: 9104 str r1, [sp, #16]
|
|
24e: 0016 movs r6, r2
|
|
250: 001f movs r7, r3
|
|
int32_t i;
|
|
uint64_t q = 0, r = 0, bit_shift;
|
|
252: 2200 movs r2, #0
|
|
254: 2300 movs r3, #0
|
|
256: 2100 movs r1, #0
|
|
258: 468b mov fp, r1
|
|
for (i = 63; i >= 0; i--) {
|
|
25a: 243f movs r4, #63 ; 0x3f
|
|
bit_shift = (uint64_t)1 << i;
|
|
25c: 2001 movs r0, #1
|
|
25e: 0021 movs r1, r4
|
|
260: 9600 str r6, [sp, #0]
|
|
262: 9701 str r7, [sp, #4]
|
|
264: 465c mov r4, fp
|
|
266: 9403 str r4, [sp, #12]
|
|
268: 4644 mov r4, r8
|
|
26a: 9405 str r4, [sp, #20]
|
|
26c: e013 b.n 296 <long_division+0x5a>
|
|
26e: 2420 movs r4, #32
|
|
270: 1a64 subs r4, r4, r1
|
|
272: 0005 movs r5, r0
|
|
274: 40e5 lsrs r5, r4
|
|
276: 46a8 mov r8, r5
|
|
278: e014 b.n 2a4 <long_division+0x68>
|
|
if (n & bit_shift) {
|
|
r |= 0x01;
|
|
}
|
|
|
|
if (r >= d) {
|
|
r = r - d;
|
|
27a: 9c00 ldr r4, [sp, #0]
|
|
27c: 9d01 ldr r5, [sp, #4]
|
|
27e: 1b12 subs r2, r2, r4
|
|
280: 41ab sbcs r3, r5
|
|
q |= bit_shift;
|
|
282: 465c mov r4, fp
|
|
284: 464d mov r5, r9
|
|
286: 432c orrs r4, r5
|
|
288: 46a3 mov fp, r4
|
|
28a: 9c03 ldr r4, [sp, #12]
|
|
28c: 4645 mov r5, r8
|
|
28e: 432c orrs r4, r5
|
|
290: 9403 str r4, [sp, #12]
|
|
for (i = 63; i >= 0; i--) {
|
|
292: 3901 subs r1, #1
|
|
294: d325 bcc.n 2e2 <long_division+0xa6>
|
|
bit_shift = (uint64_t)1 << i;
|
|
296: 2420 movs r4, #32
|
|
298: 4264 negs r4, r4
|
|
29a: 190c adds r4, r1, r4
|
|
29c: d4e7 bmi.n 26e <long_division+0x32>
|
|
29e: 0005 movs r5, r0
|
|
2a0: 40a5 lsls r5, r4
|
|
2a2: 46a8 mov r8, r5
|
|
2a4: 0004 movs r4, r0
|
|
2a6: 408c lsls r4, r1
|
|
2a8: 46a1 mov r9, r4
|
|
r = r << 1;
|
|
2aa: 1892 adds r2, r2, r2
|
|
2ac: 415b adcs r3, r3
|
|
2ae: 0014 movs r4, r2
|
|
2b0: 001d movs r5, r3
|
|
if (n & bit_shift) {
|
|
2b2: 9e05 ldr r6, [sp, #20]
|
|
2b4: 464f mov r7, r9
|
|
2b6: 403e ands r6, r7
|
|
2b8: 46b4 mov ip, r6
|
|
2ba: 9e04 ldr r6, [sp, #16]
|
|
2bc: 4647 mov r7, r8
|
|
2be: 403e ands r6, r7
|
|
2c0: 46b2 mov sl, r6
|
|
2c2: 4666 mov r6, ip
|
|
2c4: 4657 mov r7, sl
|
|
2c6: 433e orrs r6, r7
|
|
2c8: d003 beq.n 2d2 <long_division+0x96>
|
|
r |= 0x01;
|
|
2ca: 0006 movs r6, r0
|
|
2cc: 4326 orrs r6, r4
|
|
2ce: 0032 movs r2, r6
|
|
2d0: 002b movs r3, r5
|
|
if (r >= d) {
|
|
2d2: 9c00 ldr r4, [sp, #0]
|
|
2d4: 9d01 ldr r5, [sp, #4]
|
|
2d6: 429d cmp r5, r3
|
|
2d8: d8db bhi.n 292 <long_division+0x56>
|
|
2da: d1ce bne.n 27a <long_division+0x3e>
|
|
2dc: 4294 cmp r4, r2
|
|
2de: d8d8 bhi.n 292 <long_division+0x56>
|
|
2e0: e7cb b.n 27a <long_division+0x3e>
|
|
2e2: 9b03 ldr r3, [sp, #12]
|
|
}
|
|
}
|
|
|
|
return q;
|
|
}
|
|
2e4: 4658 mov r0, fp
|
|
2e6: 0019 movs r1, r3
|
|
2e8: b007 add sp, #28
|
|
2ea: bc3c pop {r2, r3, r4, r5}
|
|
2ec: 4690 mov r8, r2
|
|
2ee: 4699 mov r9, r3
|
|
2f0: 46a2 mov sl, r4
|
|
2f2: 46ab mov fp, r5
|
|
2f4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
|
|
000002f6 <_sercom_get_sync_baud_val>:
|
|
*/
|
|
enum status_code _sercom_get_sync_baud_val(
|
|
const uint32_t baudrate,
|
|
const uint32_t external_clock,
|
|
uint16_t *const baudvalue)
|
|
{
|
|
2f6: b510 push {r4, lr}
|
|
uint16_t baud_calculated = 0;
|
|
uint32_t clock_value = external_clock;
|
|
|
|
|
|
/* Check if baudrate is outside of valid range */
|
|
if (baudrate > (external_clock / 2)) {
|
|
2f8: 0849 lsrs r1, r1, #1
|
|
/* Return with error code */
|
|
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
|
|
2fa: 2340 movs r3, #64 ; 0x40
|
|
2fc: 2400 movs r4, #0
|
|
if (baudrate > (external_clock / 2)) {
|
|
2fe: 4281 cmp r1, r0
|
|
300: d202 bcs.n 308 <_sercom_get_sync_baud_val+0x12>
|
|
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
|
|
} else {
|
|
*baudvalue = baud_calculated;
|
|
return STATUS_OK;
|
|
}
|
|
}
|
|
302: 0018 movs r0, r3
|
|
304: bd10 pop {r4, pc}
|
|
baud_calculated++;
|
|
306: 001c movs r4, r3
|
|
clock_value = clock_value - baudrate;
|
|
308: 1a09 subs r1, r1, r0
|
|
baud_calculated++;
|
|
30a: 1c63 adds r3, r4, #1
|
|
30c: b29b uxth r3, r3
|
|
while (clock_value >= baudrate) {
|
|
30e: 4288 cmp r0, r1
|
|
310: d9f9 bls.n 306 <_sercom_get_sync_baud_val+0x10>
|
|
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
|
|
312: 2340 movs r3, #64 ; 0x40
|
|
if (baud_calculated > 0xFF) {
|
|
314: 2cff cmp r4, #255 ; 0xff
|
|
316: d8f4 bhi.n 302 <_sercom_get_sync_baud_val+0xc>
|
|
*baudvalue = baud_calculated;
|
|
318: 8014 strh r4, [r2, #0]
|
|
return STATUS_OK;
|
|
31a: 2300 movs r3, #0
|
|
31c: e7f1 b.n 302 <_sercom_get_sync_baud_val+0xc>
|
|
...
|
|
|
|
00000320 <_sercom_get_async_baud_val>:
|
|
const uint32_t baudrate,
|
|
const uint32_t peripheral_clock,
|
|
uint16_t *const baudval,
|
|
enum sercom_asynchronous_operation_mode mode,
|
|
enum sercom_asynchronous_sample_num sample_num)
|
|
{
|
|
320: b5f0 push {r4, r5, r6, r7, lr}
|
|
322: b083 sub sp, #12
|
|
324: 000f movs r7, r1
|
|
326: 0016 movs r6, r2
|
|
328: aa08 add r2, sp, #32
|
|
32a: 7811 ldrb r1, [r2, #0]
|
|
uint8_t baud_fp;
|
|
uint32_t baud_int = 0;
|
|
uint64_t temp1;
|
|
|
|
/* Check if the baudrate is outside of valid range */
|
|
if ((baudrate * sample_num) > peripheral_clock) {
|
|
32c: 0004 movs r4, r0
|
|
32e: 434c muls r4, r1
|
|
/* Return with error code */
|
|
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
|
|
330: 2240 movs r2, #64 ; 0x40
|
|
if ((baudrate * sample_num) > peripheral_clock) {
|
|
332: 42bc cmp r4, r7
|
|
334: d902 bls.n 33c <_sercom_get_async_baud_val+0x1c>
|
|
baud_calculated = baud_int | (baud_fp << 13);
|
|
}
|
|
|
|
*baudval = baud_calculated;
|
|
return STATUS_OK;
|
|
}
|
|
336: 0010 movs r0, r2
|
|
338: b003 add sp, #12
|
|
33a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(mode == SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC) {
|
|
33c: 2b00 cmp r3, #0
|
|
33e: d114 bne.n 36a <_sercom_get_async_baud_val+0x4a>
|
|
temp1 = ((sample_num * (uint64_t)baudrate) << SHIFT);
|
|
340: 0002 movs r2, r0
|
|
342: 0008 movs r0, r1
|
|
344: 2100 movs r1, #0
|
|
346: 4c19 ldr r4, [pc, #100] ; (3ac <_sercom_get_async_baud_val+0x8c>)
|
|
348: 47a0 blx r4
|
|
34a: 0001 movs r1, r0
|
|
ratio = long_division(temp1, peripheral_clock);
|
|
34c: 003a movs r2, r7
|
|
34e: 2300 movs r3, #0
|
|
350: 2000 movs r0, #0
|
|
352: 4c17 ldr r4, [pc, #92] ; (3b0 <_sercom_get_async_baud_val+0x90>)
|
|
354: 47a0 blx r4
|
|
scale = ((uint64_t)1 << SHIFT) - ratio;
|
|
356: 2200 movs r2, #0
|
|
358: 2301 movs r3, #1
|
|
35a: 1a12 subs r2, r2, r0
|
|
35c: 418b sbcs r3, r1
|
|
baud_calculated = (65536 * scale) >> SHIFT;
|
|
35e: 0c12 lsrs r2, r2, #16
|
|
360: 041b lsls r3, r3, #16
|
|
362: 431a orrs r2, r3
|
|
*baudval = baud_calculated;
|
|
364: 8032 strh r2, [r6, #0]
|
|
return STATUS_OK;
|
|
366: 2200 movs r2, #0
|
|
368: e7e5 b.n 336 <_sercom_get_async_baud_val+0x16>
|
|
uint64_t baud_calculated = 0;
|
|
36a: 2200 movs r2, #0
|
|
} else if(mode == SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL) {
|
|
36c: 2b01 cmp r3, #1
|
|
36e: d1f9 bne.n 364 <_sercom_get_async_baud_val+0x44>
|
|
temp1 = ((uint64_t)baudrate * sample_num);
|
|
370: 000a movs r2, r1
|
|
372: 2300 movs r3, #0
|
|
374: 2100 movs r1, #0
|
|
376: 4c0d ldr r4, [pc, #52] ; (3ac <_sercom_get_async_baud_val+0x8c>)
|
|
378: 47a0 blx r4
|
|
37a: 0002 movs r2, r0
|
|
37c: 000b movs r3, r1
|
|
37e: 9200 str r2, [sp, #0]
|
|
380: 9301 str r3, [sp, #4]
|
|
baud_int = long_division( peripheral_clock, temp1);
|
|
382: 0038 movs r0, r7
|
|
384: 2100 movs r1, #0
|
|
386: 4c0a ldr r4, [pc, #40] ; (3b0 <_sercom_get_async_baud_val+0x90>)
|
|
388: 47a0 blx r4
|
|
38a: 0005 movs r5, r0
|
|
if(baud_int > BAUD_INT_MAX) {
|
|
38c: 2380 movs r3, #128 ; 0x80
|
|
38e: 019b lsls r3, r3, #6
|
|
return STATUS_ERR_BAUDRATE_UNAVAILABLE;
|
|
390: 2240 movs r2, #64 ; 0x40
|
|
if(baud_int > BAUD_INT_MAX) {
|
|
392: 4298 cmp r0, r3
|
|
394: d8cf bhi.n 336 <_sercom_get_async_baud_val+0x16>
|
|
temp1 = long_division( 8 * (uint64_t)peripheral_clock, temp1);
|
|
396: 0f79 lsrs r1, r7, #29
|
|
398: 00f8 lsls r0, r7, #3
|
|
39a: 9a00 ldr r2, [sp, #0]
|
|
39c: 9b01 ldr r3, [sp, #4]
|
|
39e: 47a0 blx r4
|
|
baud_fp = temp1 - 8 * baud_int;
|
|
3a0: 00ea lsls r2, r5, #3
|
|
3a2: 1a82 subs r2, r0, r2
|
|
baud_calculated = baud_int | (baud_fp << 13);
|
|
3a4: b2d2 uxtb r2, r2
|
|
3a6: 0352 lsls r2, r2, #13
|
|
3a8: 432a orrs r2, r5
|
|
3aa: e7db b.n 364 <_sercom_get_async_baud_val+0x44>
|
|
3ac: 00017bad .word 0x00017bad
|
|
3b0: 0000023d .word 0x0000023d
|
|
|
|
000003b4 <sercom_set_gclk_generator>:
|
|
* forced.
|
|
*/
|
|
enum status_code sercom_set_gclk_generator(
|
|
const enum gclk_generator generator_source,
|
|
const bool force_change)
|
|
{
|
|
3b4: b510 push {r4, lr}
|
|
3b6: b082 sub sp, #8
|
|
3b8: 0004 movs r4, r0
|
|
/* Check if valid option */
|
|
if (!_sercom_config.generator_is_set || force_change) {
|
|
3ba: 4b0e ldr r3, [pc, #56] ; (3f4 <sercom_set_gclk_generator+0x40>)
|
|
3bc: 781b ldrb r3, [r3, #0]
|
|
3be: 2b00 cmp r3, #0
|
|
3c0: d007 beq.n 3d2 <sercom_set_gclk_generator+0x1e>
|
|
3c2: 2900 cmp r1, #0
|
|
3c4: d105 bne.n 3d2 <sercom_set_gclk_generator+0x1e>
|
|
/* Save config */
|
|
_sercom_config.generator_source = generator_source;
|
|
_sercom_config.generator_is_set = true;
|
|
|
|
return STATUS_OK;
|
|
} else if (generator_source == _sercom_config.generator_source) {
|
|
3c6: 4b0b ldr r3, [pc, #44] ; (3f4 <sercom_set_gclk_generator+0x40>)
|
|
3c8: 785b ldrb r3, [r3, #1]
|
|
3ca: 4283 cmp r3, r0
|
|
3cc: d010 beq.n 3f0 <sercom_set_gclk_generator+0x3c>
|
|
/* Return status OK if same config */
|
|
return STATUS_OK;
|
|
}
|
|
|
|
/* Return invalid config to already initialized GCLK */
|
|
return STATUS_ERR_ALREADY_INITIALIZED;
|
|
3ce: 201d movs r0, #29
|
|
3d0: e00c b.n 3ec <sercom_set_gclk_generator+0x38>
|
|
gclk_chan_conf.source_generator = generator_source;
|
|
3d2: a901 add r1, sp, #4
|
|
3d4: 700c strb r4, [r1, #0]
|
|
system_gclk_chan_set_config(SERCOM_GCLK_ID, &gclk_chan_conf);
|
|
3d6: 2013 movs r0, #19
|
|
3d8: 4b07 ldr r3, [pc, #28] ; (3f8 <sercom_set_gclk_generator+0x44>)
|
|
3da: 4798 blx r3
|
|
system_gclk_chan_enable(SERCOM_GCLK_ID);
|
|
3dc: 2013 movs r0, #19
|
|
3de: 4b07 ldr r3, [pc, #28] ; (3fc <sercom_set_gclk_generator+0x48>)
|
|
3e0: 4798 blx r3
|
|
_sercom_config.generator_source = generator_source;
|
|
3e2: 4b04 ldr r3, [pc, #16] ; (3f4 <sercom_set_gclk_generator+0x40>)
|
|
3e4: 705c strb r4, [r3, #1]
|
|
_sercom_config.generator_is_set = true;
|
|
3e6: 2201 movs r2, #1
|
|
3e8: 701a strb r2, [r3, #0]
|
|
return STATUS_OK;
|
|
3ea: 2000 movs r0, #0
|
|
}
|
|
3ec: b002 add sp, #8
|
|
3ee: bd10 pop {r4, pc}
|
|
return STATUS_OK;
|
|
3f0: 2000 movs r0, #0
|
|
3f2: e7fb b.n 3ec <sercom_set_gclk_generator+0x38>
|
|
3f4: 20002694 .word 0x20002694
|
|
3f8: 000011e5 .word 0x000011e5
|
|
3fc: 00001159 .word 0x00001159
|
|
|
|
00000400 <_sercom_get_default_pad>:
|
|
*/
|
|
uint32_t _sercom_get_default_pad(
|
|
Sercom *const sercom_module,
|
|
const uint8_t pad)
|
|
{
|
|
switch ((uintptr_t)sercom_module) {
|
|
400: 4b40 ldr r3, [pc, #256] ; (504 <_sercom_get_default_pad+0x104>)
|
|
402: 4298 cmp r0, r3
|
|
404: d031 beq.n 46a <_sercom_get_default_pad+0x6a>
|
|
406: d90a bls.n 41e <_sercom_get_default_pad+0x1e>
|
|
408: 4b3f ldr r3, [pc, #252] ; (508 <_sercom_get_default_pad+0x108>)
|
|
40a: 4298 cmp r0, r3
|
|
40c: d04d beq.n 4aa <_sercom_get_default_pad+0xaa>
|
|
40e: 4b3f ldr r3, [pc, #252] ; (50c <_sercom_get_default_pad+0x10c>)
|
|
410: 4298 cmp r0, r3
|
|
412: d05a beq.n 4ca <_sercom_get_default_pad+0xca>
|
|
414: 4b3e ldr r3, [pc, #248] ; (510 <_sercom_get_default_pad+0x110>)
|
|
416: 4298 cmp r0, r3
|
|
418: d037 beq.n 48a <_sercom_get_default_pad+0x8a>
|
|
/* Auto-generate a lookup table for the default SERCOM pad defaults */
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
}
|
|
|
|
Assert(false);
|
|
return 0;
|
|
41a: 2000 movs r0, #0
|
|
}
|
|
41c: 4770 bx lr
|
|
switch ((uintptr_t)sercom_module) {
|
|
41e: 4b3d ldr r3, [pc, #244] ; (514 <_sercom_get_default_pad+0x114>)
|
|
420: 4298 cmp r0, r3
|
|
422: d00c beq.n 43e <_sercom_get_default_pad+0x3e>
|
|
424: 4b3c ldr r3, [pc, #240] ; (518 <_sercom_get_default_pad+0x118>)
|
|
426: 4298 cmp r0, r3
|
|
428: d1f7 bne.n 41a <_sercom_get_default_pad+0x1a>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
42a: 2901 cmp r1, #1
|
|
42c: d017 beq.n 45e <_sercom_get_default_pad+0x5e>
|
|
42e: 2900 cmp r1, #0
|
|
430: d05d beq.n 4ee <_sercom_get_default_pad+0xee>
|
|
432: 2902 cmp r1, #2
|
|
434: d015 beq.n 462 <_sercom_get_default_pad+0x62>
|
|
436: 2903 cmp r1, #3
|
|
438: d015 beq.n 466 <_sercom_get_default_pad+0x66>
|
|
return 0;
|
|
43a: 2000 movs r0, #0
|
|
43c: e7ee b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
43e: 2901 cmp r1, #1
|
|
440: d007 beq.n 452 <_sercom_get_default_pad+0x52>
|
|
442: 2900 cmp r1, #0
|
|
444: d051 beq.n 4ea <_sercom_get_default_pad+0xea>
|
|
446: 2902 cmp r1, #2
|
|
448: d005 beq.n 456 <_sercom_get_default_pad+0x56>
|
|
44a: 2903 cmp r1, #3
|
|
44c: d005 beq.n 45a <_sercom_get_default_pad+0x5a>
|
|
return 0;
|
|
44e: 2000 movs r0, #0
|
|
450: e7e4 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
452: 4832 ldr r0, [pc, #200] ; (51c <_sercom_get_default_pad+0x11c>)
|
|
454: e7e2 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
456: 4832 ldr r0, [pc, #200] ; (520 <_sercom_get_default_pad+0x120>)
|
|
458: e7e0 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
45a: 4832 ldr r0, [pc, #200] ; (524 <_sercom_get_default_pad+0x124>)
|
|
45c: e7de b.n 41c <_sercom_get_default_pad+0x1c>
|
|
45e: 4832 ldr r0, [pc, #200] ; (528 <_sercom_get_default_pad+0x128>)
|
|
460: e7dc b.n 41c <_sercom_get_default_pad+0x1c>
|
|
462: 4832 ldr r0, [pc, #200] ; (52c <_sercom_get_default_pad+0x12c>)
|
|
464: e7da b.n 41c <_sercom_get_default_pad+0x1c>
|
|
466: 4832 ldr r0, [pc, #200] ; (530 <_sercom_get_default_pad+0x130>)
|
|
468: e7d8 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
46a: 2901 cmp r1, #1
|
|
46c: d007 beq.n 47e <_sercom_get_default_pad+0x7e>
|
|
46e: 2900 cmp r1, #0
|
|
470: d03f beq.n 4f2 <_sercom_get_default_pad+0xf2>
|
|
472: 2902 cmp r1, #2
|
|
474: d005 beq.n 482 <_sercom_get_default_pad+0x82>
|
|
476: 2903 cmp r1, #3
|
|
478: d005 beq.n 486 <_sercom_get_default_pad+0x86>
|
|
return 0;
|
|
47a: 2000 movs r0, #0
|
|
47c: e7ce b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
47e: 482d ldr r0, [pc, #180] ; (534 <_sercom_get_default_pad+0x134>)
|
|
480: e7cc b.n 41c <_sercom_get_default_pad+0x1c>
|
|
482: 482d ldr r0, [pc, #180] ; (538 <_sercom_get_default_pad+0x138>)
|
|
484: e7ca b.n 41c <_sercom_get_default_pad+0x1c>
|
|
486: 482d ldr r0, [pc, #180] ; (53c <_sercom_get_default_pad+0x13c>)
|
|
488: e7c8 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
48a: 2901 cmp r1, #1
|
|
48c: d007 beq.n 49e <_sercom_get_default_pad+0x9e>
|
|
48e: 2900 cmp r1, #0
|
|
490: d031 beq.n 4f6 <_sercom_get_default_pad+0xf6>
|
|
492: 2902 cmp r1, #2
|
|
494: d005 beq.n 4a2 <_sercom_get_default_pad+0xa2>
|
|
496: 2903 cmp r1, #3
|
|
498: d005 beq.n 4a6 <_sercom_get_default_pad+0xa6>
|
|
return 0;
|
|
49a: 2000 movs r0, #0
|
|
49c: e7be b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
49e: 4828 ldr r0, [pc, #160] ; (540 <_sercom_get_default_pad+0x140>)
|
|
4a0: e7bc b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4a2: 4828 ldr r0, [pc, #160] ; (544 <_sercom_get_default_pad+0x144>)
|
|
4a4: e7ba b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4a6: 4828 ldr r0, [pc, #160] ; (548 <_sercom_get_default_pad+0x148>)
|
|
4a8: e7b8 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4aa: 2901 cmp r1, #1
|
|
4ac: d007 beq.n 4be <_sercom_get_default_pad+0xbe>
|
|
4ae: 2900 cmp r1, #0
|
|
4b0: d023 beq.n 4fa <_sercom_get_default_pad+0xfa>
|
|
4b2: 2902 cmp r1, #2
|
|
4b4: d005 beq.n 4c2 <_sercom_get_default_pad+0xc2>
|
|
4b6: 2903 cmp r1, #3
|
|
4b8: d005 beq.n 4c6 <_sercom_get_default_pad+0xc6>
|
|
return 0;
|
|
4ba: 2000 movs r0, #0
|
|
4bc: e7ae b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
4be: 4823 ldr r0, [pc, #140] ; (54c <_sercom_get_default_pad+0x14c>)
|
|
4c0: e7ac b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4c2: 4823 ldr r0, [pc, #140] ; (550 <_sercom_get_default_pad+0x150>)
|
|
4c4: e7aa b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4c6: 4823 ldr r0, [pc, #140] ; (554 <_sercom_get_default_pad+0x154>)
|
|
4c8: e7a8 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4ca: 2901 cmp r1, #1
|
|
4cc: d007 beq.n 4de <_sercom_get_default_pad+0xde>
|
|
4ce: 2900 cmp r1, #0
|
|
4d0: d015 beq.n 4fe <_sercom_get_default_pad+0xfe>
|
|
4d2: 2902 cmp r1, #2
|
|
4d4: d005 beq.n 4e2 <_sercom_get_default_pad+0xe2>
|
|
4d6: 2903 cmp r1, #3
|
|
4d8: d005 beq.n 4e6 <_sercom_get_default_pad+0xe6>
|
|
return 0;
|
|
4da: 2000 movs r0, #0
|
|
4dc: e79e b.n 41c <_sercom_get_default_pad+0x1c>
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
|
|
4de: 481e ldr r0, [pc, #120] ; (558 <_sercom_get_default_pad+0x158>)
|
|
4e0: e79c b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4e2: 481e ldr r0, [pc, #120] ; (55c <_sercom_get_default_pad+0x15c>)
|
|
4e4: e79a b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4e6: 481e ldr r0, [pc, #120] ; (560 <_sercom_get_default_pad+0x160>)
|
|
4e8: e798 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4ea: 481e ldr r0, [pc, #120] ; (564 <_sercom_get_default_pad+0x164>)
|
|
4ec: e796 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4ee: 2003 movs r0, #3
|
|
4f0: e794 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4f2: 481d ldr r0, [pc, #116] ; (568 <_sercom_get_default_pad+0x168>)
|
|
4f4: e792 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4f6: 481d ldr r0, [pc, #116] ; (56c <_sercom_get_default_pad+0x16c>)
|
|
4f8: e790 b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4fa: 481d ldr r0, [pc, #116] ; (570 <_sercom_get_default_pad+0x170>)
|
|
4fc: e78e b.n 41c <_sercom_get_default_pad+0x1c>
|
|
4fe: 481d ldr r0, [pc, #116] ; (574 <_sercom_get_default_pad+0x174>)
|
|
500: e78c b.n 41c <_sercom_get_default_pad+0x1c>
|
|
502: 46c0 nop ; (mov r8, r8)
|
|
504: 42001000 .word 0x42001000
|
|
508: 42001800 .word 0x42001800
|
|
50c: 42001c00 .word 0x42001c00
|
|
510: 42001400 .word 0x42001400
|
|
514: 42000800 .word 0x42000800
|
|
518: 42000c00 .word 0x42000c00
|
|
51c: 00050003 .word 0x00050003
|
|
520: 00060003 .word 0x00060003
|
|
524: 00070003 .word 0x00070003
|
|
528: 00010003 .word 0x00010003
|
|
52c: 001e0003 .word 0x001e0003
|
|
530: 001f0003 .word 0x001f0003
|
|
534: 00090003 .word 0x00090003
|
|
538: 000a0003 .word 0x000a0003
|
|
53c: 000b0003 .word 0x000b0003
|
|
540: 00110003 .word 0x00110003
|
|
544: 00120003 .word 0x00120003
|
|
548: 00130003 .word 0x00130003
|
|
54c: 000d0003 .word 0x000d0003
|
|
550: 000e0003 .word 0x000e0003
|
|
554: 000f0003 .word 0x000f0003
|
|
558: 00170003 .word 0x00170003
|
|
55c: 00180003 .word 0x00180003
|
|
560: 00190003 .word 0x00190003
|
|
564: 00040003 .word 0x00040003
|
|
568: 00080003 .word 0x00080003
|
|
56c: 00100003 .word 0x00100003
|
|
570: 000c0003 .word 0x000c0003
|
|
574: 00160003 .word 0x00160003
|
|
|
|
00000578 <_sercom_get_sercom_inst_index>:
|
|
*
|
|
* \return Index of given instance.
|
|
*/
|
|
uint8_t _sercom_get_sercom_inst_index(
|
|
Sercom *const sercom_instance)
|
|
{
|
|
578: b530 push {r4, r5, lr}
|
|
57a: b087 sub sp, #28
|
|
/* Save all available SERCOM instances for compare */
|
|
Sercom *sercom_instances[SERCOM_INST_NUM] = SERCOM_INSTS;
|
|
57c: 4b0b ldr r3, [pc, #44] ; (5ac <_sercom_get_sercom_inst_index+0x34>)
|
|
57e: 466a mov r2, sp
|
|
580: cb32 ldmia r3!, {r1, r4, r5}
|
|
582: c232 stmia r2!, {r1, r4, r5}
|
|
584: cb32 ldmia r3!, {r1, r4, r5}
|
|
586: c232 stmia r2!, {r1, r4, r5}
|
|
|
|
/* Find index for sercom instance */
|
|
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
|
|
if ((uintptr_t)sercom_instance == (uintptr_t)sercom_instances[i]) {
|
|
588: 9b00 ldr r3, [sp, #0]
|
|
58a: 4283 cmp r3, r0
|
|
58c: d00b beq.n 5a6 <_sercom_get_sercom_inst_index+0x2e>
|
|
58e: 2301 movs r3, #1
|
|
590: 009a lsls r2, r3, #2
|
|
592: 4669 mov r1, sp
|
|
594: 5852 ldr r2, [r2, r1]
|
|
596: 4282 cmp r2, r0
|
|
598: d006 beq.n 5a8 <_sercom_get_sercom_inst_index+0x30>
|
|
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
|
|
59a: 3301 adds r3, #1
|
|
59c: 2b06 cmp r3, #6
|
|
59e: d1f7 bne.n 590 <_sercom_get_sercom_inst_index+0x18>
|
|
}
|
|
}
|
|
|
|
/* Invalid data given */
|
|
Assert(false);
|
|
return 0;
|
|
5a0: 2000 movs r0, #0
|
|
}
|
|
5a2: b007 add sp, #28
|
|
5a4: bd30 pop {r4, r5, pc}
|
|
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
|
|
5a6: 2300 movs r3, #0
|
|
return i;
|
|
5a8: b2d8 uxtb r0, r3
|
|
5aa: e7fa b.n 5a2 <_sercom_get_sercom_inst_index+0x2a>
|
|
5ac: 000186c4 .word 0x000186c4
|
|
|
|
000005b0 <usart_init>:
|
|
*/
|
|
enum status_code usart_init(
|
|
struct usart_module *const module,
|
|
Sercom *const hw,
|
|
const struct usart_config *const config)
|
|
{
|
|
5b0: b5f0 push {r4, r5, r6, r7, lr}
|
|
5b2: 46de mov lr, fp
|
|
5b4: 4657 mov r7, sl
|
|
5b6: 464e mov r6, r9
|
|
5b8: 4645 mov r5, r8
|
|
5ba: b5e0 push {r5, r6, r7, lr}
|
|
5bc: b091 sub sp, #68 ; 0x44
|
|
5be: 0005 movs r5, r0
|
|
5c0: 000c movs r4, r1
|
|
5c2: 0016 movs r6, r2
|
|
Assert(config);
|
|
|
|
enum status_code status_code = STATUS_OK;
|
|
|
|
/* Assign module pointer to software instance struct */
|
|
module->hw = hw;
|
|
5c4: 6029 str r1, [r5, #0]
|
|
|
|
/* Get a pointer to the hardware module instance */
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
|
|
uint32_t sercom_index = _sercom_get_sercom_inst_index(module->hw);
|
|
5c6: 0008 movs r0, r1
|
|
5c8: 4bba ldr r3, [pc, #744] ; (8b4 <usart_init+0x304>)
|
|
5ca: 4798 blx r3
|
|
5cc: 0002 movs r2, r0
|
|
#else
|
|
pm_index = sercom_index + PM_APBCMASK_SERCOM0_Pos;
|
|
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
|
|
#endif
|
|
|
|
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_SWRST) {
|
|
5ce: 6823 ldr r3, [r4, #0]
|
|
/* The module is busy resetting itself */
|
|
return STATUS_BUSY;
|
|
5d0: 2005 movs r0, #5
|
|
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_SWRST) {
|
|
5d2: 07db lsls r3, r3, #31
|
|
5d4: d506 bpl.n 5e4 <usart_init+0x34>
|
|
_sercom_set_handler(instance_index, _usart_interrupt_handler);
|
|
_sercom_instances[instance_index] = module;
|
|
#endif
|
|
|
|
return status_code;
|
|
}
|
|
5d6: b011 add sp, #68 ; 0x44
|
|
5d8: bc3c pop {r2, r3, r4, r5}
|
|
5da: 4690 mov r8, r2
|
|
5dc: 4699 mov r9, r3
|
|
5de: 46a2 mov sl, r4
|
|
5e0: 46ab mov fp, r5
|
|
5e2: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_ENABLE) {
|
|
5e4: 6823 ldr r3, [r4, #0]
|
|
return STATUS_ERR_DENIED;
|
|
5e6: 3017 adds r0, #23
|
|
if (usart_hw->CTRLA.reg & SERCOM_USART_CTRLA_ENABLE) {
|
|
5e8: 079b lsls r3, r3, #30
|
|
5ea: d4f4 bmi.n 5d6 <usart_init+0x26>
|
|
case SYSTEM_CLOCK_APB_APBB:
|
|
PM->APBBMASK.reg |= mask;
|
|
break;
|
|
|
|
case SYSTEM_CLOCK_APB_APBC:
|
|
PM->APBCMASK.reg |= mask;
|
|
5ec: 49b2 ldr r1, [pc, #712] ; (8b8 <usart_init+0x308>)
|
|
5ee: 6a08 ldr r0, [r1, #32]
|
|
pm_index = sercom_index + PM_APBCMASK_SERCOM0_Pos;
|
|
5f0: 1c97 adds r7, r2, #2
|
|
system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBC, 1 << pm_index);
|
|
5f2: 2301 movs r3, #1
|
|
5f4: 40bb lsls r3, r7
|
|
5f6: 4303 orrs r3, r0
|
|
5f8: 620b str r3, [r1, #32]
|
|
gclk_chan_conf.source_generator = config->generator_source;
|
|
5fa: a90f add r1, sp, #60 ; 0x3c
|
|
5fc: 272d movs r7, #45 ; 0x2d
|
|
5fe: 5df3 ldrb r3, [r6, r7]
|
|
600: 700b strb r3, [r1, #0]
|
|
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
|
|
602: 3214 adds r2, #20
|
|
system_gclk_chan_set_config(gclk_index, &gclk_chan_conf);
|
|
604: b2d3 uxtb r3, r2
|
|
606: 9302 str r3, [sp, #8]
|
|
608: 0018 movs r0, r3
|
|
60a: 4bac ldr r3, [pc, #688] ; (8bc <usart_init+0x30c>)
|
|
60c: 4798 blx r3
|
|
system_gclk_chan_enable(gclk_index);
|
|
60e: 9802 ldr r0, [sp, #8]
|
|
610: 4bab ldr r3, [pc, #684] ; (8c0 <usart_init+0x310>)
|
|
612: 4798 blx r3
|
|
sercom_set_gclk_generator(config->generator_source, false);
|
|
614: 5df0 ldrb r0, [r6, r7]
|
|
616: 2100 movs r1, #0
|
|
618: 4baa ldr r3, [pc, #680] ; (8c4 <usart_init+0x314>)
|
|
61a: 4798 blx r3
|
|
module->character_size = config->character_size;
|
|
61c: 7af3 ldrb r3, [r6, #11]
|
|
61e: 716b strb r3, [r5, #5]
|
|
module->receiver_enabled = config->receiver_enable;
|
|
620: 2324 movs r3, #36 ; 0x24
|
|
622: 5cf3 ldrb r3, [r6, r3]
|
|
624: 71ab strb r3, [r5, #6]
|
|
module->transmitter_enabled = config->transmitter_enable;
|
|
626: 2325 movs r3, #37 ; 0x25
|
|
628: 5cf3 ldrb r3, [r6, r3]
|
|
62a: 71eb strb r3, [r5, #7]
|
|
module->lin_slave_enabled = config->lin_slave_enable;
|
|
62c: 7ef3 ldrb r3, [r6, #27]
|
|
62e: 722b strb r3, [r5, #8]
|
|
module->start_frame_detection_enabled = config->start_frame_detection_enable;
|
|
630: 7f33 ldrb r3, [r6, #28]
|
|
632: 726b strb r3, [r5, #9]
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
634: 682b ldr r3, [r5, #0]
|
|
636: 4698 mov r8, r3
|
|
uint32_t sercom_index = _sercom_get_sercom_inst_index(module->hw);
|
|
638: 0018 movs r0, r3
|
|
63a: 4b9e ldr r3, [pc, #632] ; (8b4 <usart_init+0x304>)
|
|
63c: 4798 blx r3
|
|
gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
|
|
63e: 3014 adds r0, #20
|
|
uint16_t baud = 0;
|
|
640: 2200 movs r2, #0
|
|
642: 230e movs r3, #14
|
|
644: a906 add r1, sp, #24
|
|
646: 468c mov ip, r1
|
|
648: 4463 add r3, ip
|
|
64a: 801a strh r2, [r3, #0]
|
|
switch (config->sample_rate) {
|
|
64c: 8a32 ldrh r2, [r6, #16]
|
|
64e: 9202 str r2, [sp, #8]
|
|
650: 2380 movs r3, #128 ; 0x80
|
|
652: 01db lsls r3, r3, #7
|
|
654: 429a cmp r2, r3
|
|
656: d100 bne.n 65a <usart_init+0xaa>
|
|
658: e09a b.n 790 <usart_init+0x1e0>
|
|
65a: d90f bls.n 67c <usart_init+0xcc>
|
|
65c: 23c0 movs r3, #192 ; 0xc0
|
|
65e: 01db lsls r3, r3, #7
|
|
660: 9a02 ldr r2, [sp, #8]
|
|
662: 429a cmp r2, r3
|
|
664: d100 bne.n 668 <usart_init+0xb8>
|
|
666: e08e b.n 786 <usart_init+0x1d6>
|
|
668: 2380 movs r3, #128 ; 0x80
|
|
66a: 021b lsls r3, r3, #8
|
|
66c: 429a cmp r2, r3
|
|
66e: d000 beq.n 672 <usart_init+0xc2>
|
|
670: e11b b.n 8aa <usart_init+0x2fa>
|
|
sample_num = SERCOM_ASYNC_SAMPLE_NUM_3;
|
|
672: 2303 movs r3, #3
|
|
674: 9306 str r3, [sp, #24]
|
|
mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
|
|
676: 2300 movs r3, #0
|
|
678: 9307 str r3, [sp, #28]
|
|
67a: e008 b.n 68e <usart_init+0xde>
|
|
switch (config->sample_rate) {
|
|
67c: 2380 movs r3, #128 ; 0x80
|
|
67e: 019b lsls r3, r3, #6
|
|
680: 429a cmp r2, r3
|
|
682: d000 beq.n 686 <usart_init+0xd6>
|
|
684: e111 b.n 8aa <usart_init+0x2fa>
|
|
sample_num = SERCOM_ASYNC_SAMPLE_NUM_16;
|
|
686: 2310 movs r3, #16
|
|
688: 9306 str r3, [sp, #24]
|
|
mode = SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL;
|
|
68a: 3b0f subs r3, #15
|
|
68c: 9307 str r3, [sp, #28]
|
|
ctrla = (uint32_t)config->data_order |
|
|
68e: 6833 ldr r3, [r6, #0]
|
|
690: 9305 str r3, [sp, #20]
|
|
(uint32_t)config->mux_setting |
|
|
692: 68f3 ldr r3, [r6, #12]
|
|
694: 469b mov fp, r3
|
|
config->sample_adjustment |
|
|
696: 6973 ldr r3, [r6, #20]
|
|
698: 9303 str r3, [sp, #12]
|
|
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
|
|
69a: 7e33 ldrb r3, [r6, #24]
|
|
69c: 9304 str r3, [sp, #16]
|
|
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
|
|
69e: 2326 movs r3, #38 ; 0x26
|
|
6a0: 5cf3 ldrb r3, [r6, r3]
|
|
6a2: 469a mov sl, r3
|
|
transfer_mode = (uint32_t)config->transfer_mode;
|
|
6a4: 6873 ldr r3, [r6, #4]
|
|
6a6: 4699 mov r9, r3
|
|
switch (transfer_mode)
|
|
6a8: 2b00 cmp r3, #0
|
|
6aa: d100 bne.n 6ae <usart_init+0xfe>
|
|
6ac: e09c b.n 7e8 <usart_init+0x238>
|
|
6ae: 2380 movs r3, #128 ; 0x80
|
|
6b0: 055b lsls r3, r3, #21
|
|
6b2: 4599 cmp r9, r3
|
|
6b4: d100 bne.n 6b8 <usart_init+0x108>
|
|
6b6: e080 b.n 7ba <usart_init+0x20a>
|
|
if(config->encoding_format_enable) {
|
|
6b8: 7e73 ldrb r3, [r6, #25]
|
|
6ba: 2b00 cmp r3, #0
|
|
6bc: d002 beq.n 6c4 <usart_init+0x114>
|
|
usart_hw->RXPL.reg = config->receive_pulse_length;
|
|
6be: 7eb3 ldrb r3, [r6, #26]
|
|
6c0: 4642 mov r2, r8
|
|
6c2: 7393 strb r3, [r2, #14]
|
|
usart_hw->BAUD.reg = baud;
|
|
6c4: 230e movs r3, #14
|
|
6c6: aa06 add r2, sp, #24
|
|
6c8: 4694 mov ip, r2
|
|
6ca: 4463 add r3, ip
|
|
6cc: 881b ldrh r3, [r3, #0]
|
|
6ce: 4642 mov r2, r8
|
|
6d0: 8193 strh r3, [r2, #12]
|
|
ctrla |= transfer_mode;
|
|
6d2: 9b05 ldr r3, [sp, #20]
|
|
6d4: 465a mov r2, fp
|
|
6d6: 4313 orrs r3, r2
|
|
6d8: 9a03 ldr r2, [sp, #12]
|
|
6da: 4313 orrs r3, r2
|
|
6dc: 464a mov r2, r9
|
|
6de: 4313 orrs r3, r2
|
|
6e0: 9f02 ldr r7, [sp, #8]
|
|
6e2: 431f orrs r7, r3
|
|
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
|
|
6e4: 9b04 ldr r3, [sp, #16]
|
|
6e6: 021b lsls r3, r3, #8
|
|
ctrla |= transfer_mode;
|
|
6e8: 431f orrs r7, r3
|
|
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
|
|
6ea: 4653 mov r3, sl
|
|
6ec: 075b lsls r3, r3, #29
|
|
ctrla |= transfer_mode;
|
|
6ee: 431f orrs r7, r3
|
|
if (config->use_external_clock == false) {
|
|
6f0: 2327 movs r3, #39 ; 0x27
|
|
6f2: 5cf3 ldrb r3, [r6, r3]
|
|
6f4: 2b00 cmp r3, #0
|
|
6f6: d101 bne.n 6fc <usart_init+0x14c>
|
|
ctrla |= SERCOM_USART_CTRLA_MODE(0x1);
|
|
6f8: 3304 adds r3, #4
|
|
6fa: 431f orrs r7, r3
|
|
(config->encoding_format_enable << SERCOM_USART_CTRLB_ENC_Pos) |
|
|
6fc: 7e73 ldrb r3, [r6, #25]
|
|
6fe: 029b lsls r3, r3, #10
|
|
(config->start_frame_detection_enable << SERCOM_USART_CTRLB_SFDE_Pos) |
|
|
700: 7f32 ldrb r2, [r6, #28]
|
|
702: 0252 lsls r2, r2, #9
|
|
(config->encoding_format_enable << SERCOM_USART_CTRLB_ENC_Pos) |
|
|
704: 4313 orrs r3, r2
|
|
(config->collision_detection_enable << SERCOM_USART_CTRLB_COLDEN_Pos) |
|
|
706: 7f72 ldrb r2, [r6, #29]
|
|
708: 0212 lsls r2, r2, #8
|
|
(config->start_frame_detection_enable << SERCOM_USART_CTRLB_SFDE_Pos) |
|
|
70a: 4313 orrs r3, r2
|
|
(config->receiver_enable << SERCOM_USART_CTRLB_RXEN_Pos) |
|
|
70c: 2224 movs r2, #36 ; 0x24
|
|
70e: 5cb2 ldrb r2, [r6, r2]
|
|
710: 0452 lsls r2, r2, #17
|
|
(config->collision_detection_enable << SERCOM_USART_CTRLB_COLDEN_Pos) |
|
|
712: 4313 orrs r3, r2
|
|
(config->transmitter_enable << SERCOM_USART_CTRLB_TXEN_Pos);
|
|
714: 2225 movs r2, #37 ; 0x25
|
|
716: 5cb2 ldrb r2, [r6, r2]
|
|
718: 0412 lsls r2, r2, #16
|
|
(config->receiver_enable << SERCOM_USART_CTRLB_RXEN_Pos) |
|
|
71a: 4313 orrs r3, r2
|
|
ctrlb |= (uint32_t)config->character_size;
|
|
71c: 7ab1 ldrb r1, [r6, #10]
|
|
71e: 7af2 ldrb r2, [r6, #11]
|
|
720: 4311 orrs r1, r2
|
|
722: 4319 orrs r1, r3
|
|
if (config->parity != USART_PARITY_NONE) {
|
|
724: 8933 ldrh r3, [r6, #8]
|
|
726: 2bff cmp r3, #255 ; 0xff
|
|
728: d100 bne.n 72c <usart_init+0x17c>
|
|
72a: e081 b.n 830 <usart_init+0x280>
|
|
ctrla |= SERCOM_USART_CTRLA_FORM(1);
|
|
72c: 2280 movs r2, #128 ; 0x80
|
|
72e: 0452 lsls r2, r2, #17
|
|
730: 4317 orrs r7, r2
|
|
ctrlb |= config->parity;
|
|
732: 4319 orrs r1, r3
|
|
if (config->run_in_standby || system_is_debugger_present()) {
|
|
734: 232c movs r3, #44 ; 0x2c
|
|
736: 5cf3 ldrb r3, [r6, r3]
|
|
738: 2b00 cmp r3, #0
|
|
73a: d103 bne.n 744 <usart_init+0x194>
|
|
* \retval false Debugger is not connected to the system
|
|
*
|
|
*/
|
|
static inline bool system_is_debugger_present(void)
|
|
{
|
|
return DSU->STATUSB.reg & DSU_STATUSB_DBGPRES;
|
|
73c: 4b62 ldr r3, [pc, #392] ; (8c8 <usart_init+0x318>)
|
|
73e: 789b ldrb r3, [r3, #2]
|
|
740: 079b lsls r3, r3, #30
|
|
742: d501 bpl.n 748 <usart_init+0x198>
|
|
ctrla |= SERCOM_USART_CTRLA_RUNSTDBY;
|
|
744: 2380 movs r3, #128 ; 0x80
|
|
746: 431f orrs r7, r3
|
|
{
|
|
/* Sanity check arguments */
|
|
Assert(module);
|
|
Assert(module->hw);
|
|
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
748: 682a ldr r2, [r5, #0]
|
|
|
|
#ifdef FEATURE_USART_SYNC_SCHEME_V2
|
|
return (usart_hw->SYNCBUSY.reg);
|
|
74a: 69d3 ldr r3, [r2, #28]
|
|
const struct usart_module *const module)
|
|
{
|
|
/* Sanity check */
|
|
Assert(module);
|
|
|
|
while (usart_is_syncing(module)) {
|
|
74c: 2b00 cmp r3, #0
|
|
74e: d1fc bne.n 74a <usart_init+0x19a>
|
|
usart_hw->CTRLB.reg = ctrlb;
|
|
750: 4643 mov r3, r8
|
|
752: 6059 str r1, [r3, #4]
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
754: 682a ldr r2, [r5, #0]
|
|
return (usart_hw->SYNCBUSY.reg);
|
|
756: 69d3 ldr r3, [r2, #28]
|
|
while (usart_is_syncing(module)) {
|
|
758: 2b00 cmp r3, #0
|
|
75a: d1fc bne.n 756 <usart_init+0x1a6>
|
|
usart_hw->CTRLA.reg = ctrla;
|
|
75c: 4643 mov r3, r8
|
|
75e: 601f str r7, [r3, #0]
|
|
{
|
|
/* Sanity check arguments */
|
|
Assert(config);
|
|
|
|
/* Default configuration values */
|
|
config->mux_position = SYSTEM_PINMUX_GPIO;
|
|
760: ab0e add r3, sp, #56 ; 0x38
|
|
762: 2280 movs r2, #128 ; 0x80
|
|
764: 701a strb r2, [r3, #0]
|
|
config->direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
|
|
766: 2200 movs r2, #0
|
|
768: 705a strb r2, [r3, #1]
|
|
config->input_pull = SYSTEM_PINMUX_PIN_PULL_UP;
|
|
config->powersave = false;
|
|
76a: 70da strb r2, [r3, #3]
|
|
pin_conf.input_pull = SYSTEM_PINMUX_PIN_PULL_NONE;
|
|
76c: 709a strb r2, [r3, #2]
|
|
uint32_t pad_pinmuxes[] = {
|
|
76e: 6b33 ldr r3, [r6, #48] ; 0x30
|
|
770: 930a str r3, [sp, #40] ; 0x28
|
|
772: 6b73 ldr r3, [r6, #52] ; 0x34
|
|
774: 930b str r3, [sp, #44] ; 0x2c
|
|
776: 6bb3 ldr r3, [r6, #56] ; 0x38
|
|
778: 930c str r3, [sp, #48] ; 0x30
|
|
77a: 6bf3 ldr r3, [r6, #60] ; 0x3c
|
|
77c: 9302 str r3, [sp, #8]
|
|
77e: 930d str r3, [sp, #52] ; 0x34
|
|
780: 2700 movs r7, #0
|
|
uint32_t current_pinmux = pad_pinmuxes[pad];
|
|
782: ae0a add r6, sp, #40 ; 0x28
|
|
784: e063 b.n 84e <usart_init+0x29e>
|
|
sample_num = SERCOM_ASYNC_SAMPLE_NUM_8;
|
|
786: 2308 movs r3, #8
|
|
788: 9306 str r3, [sp, #24]
|
|
mode = SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL;
|
|
78a: 3b07 subs r3, #7
|
|
78c: 9307 str r3, [sp, #28]
|
|
78e: e77e b.n 68e <usart_init+0xde>
|
|
ctrla = (uint32_t)config->data_order |
|
|
790: 6833 ldr r3, [r6, #0]
|
|
792: 9305 str r3, [sp, #20]
|
|
(uint32_t)config->mux_setting |
|
|
794: 68f3 ldr r3, [r6, #12]
|
|
796: 469b mov fp, r3
|
|
config->sample_adjustment |
|
|
798: 6973 ldr r3, [r6, #20]
|
|
79a: 9303 str r3, [sp, #12]
|
|
(config->immediate_buffer_overflow_notification << SERCOM_USART_CTRLA_IBON_Pos) |
|
|
79c: 7e33 ldrb r3, [r6, #24]
|
|
79e: 9304 str r3, [sp, #16]
|
|
(config->clock_polarity_inverted << SERCOM_USART_CTRLA_CPOL_Pos);
|
|
7a0: 2326 movs r3, #38 ; 0x26
|
|
7a2: 5cf3 ldrb r3, [r6, r3]
|
|
7a4: 469a mov sl, r3
|
|
transfer_mode = (uint32_t)config->transfer_mode;
|
|
7a6: 6873 ldr r3, [r6, #4]
|
|
7a8: 4699 mov r9, r3
|
|
switch (transfer_mode)
|
|
7aa: 2b00 cmp r3, #0
|
|
7ac: d018 beq.n 7e0 <usart_init+0x230>
|
|
7ae: 2380 movs r3, #128 ; 0x80
|
|
7b0: 055b lsls r3, r3, #21
|
|
7b2: 4599 cmp r9, r3
|
|
7b4: d001 beq.n 7ba <usart_init+0x20a>
|
|
enum status_code status_code = STATUS_OK;
|
|
7b6: 2000 movs r0, #0
|
|
7b8: e025 b.n 806 <usart_init+0x256>
|
|
if (!config->use_external_clock) {
|
|
7ba: 2327 movs r3, #39 ; 0x27
|
|
7bc: 5cf3 ldrb r3, [r6, r3]
|
|
7be: 2b00 cmp r3, #0
|
|
7c0: d000 beq.n 7c4 <usart_init+0x214>
|
|
7c2: e779 b.n 6b8 <usart_init+0x108>
|
|
status_code = _sercom_get_sync_baud_val(config->baudrate,
|
|
7c4: 6a33 ldr r3, [r6, #32]
|
|
7c6: 001f movs r7, r3
|
|
7c8: b2c0 uxtb r0, r0
|
|
7ca: 4b40 ldr r3, [pc, #256] ; (8cc <usart_init+0x31c>)
|
|
7cc: 4798 blx r3
|
|
7ce: 0001 movs r1, r0
|
|
7d0: 220e movs r2, #14
|
|
7d2: ab06 add r3, sp, #24
|
|
7d4: 469c mov ip, r3
|
|
7d6: 4462 add r2, ip
|
|
7d8: 0038 movs r0, r7
|
|
7da: 4b3d ldr r3, [pc, #244] ; (8d0 <usart_init+0x320>)
|
|
7dc: 4798 blx r3
|
|
7de: e012 b.n 806 <usart_init+0x256>
|
|
sample_num = SERCOM_ASYNC_SAMPLE_NUM_8;
|
|
7e0: 2308 movs r3, #8
|
|
7e2: 9306 str r3, [sp, #24]
|
|
mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
|
|
7e4: 2300 movs r3, #0
|
|
7e6: 9307 str r3, [sp, #28]
|
|
if (config->use_external_clock) {
|
|
7e8: 2327 movs r3, #39 ; 0x27
|
|
7ea: 5cf3 ldrb r3, [r6, r3]
|
|
7ec: 2b00 cmp r3, #0
|
|
7ee: d00e beq.n 80e <usart_init+0x25e>
|
|
status_code =
|
|
7f0: 9b06 ldr r3, [sp, #24]
|
|
7f2: 9300 str r3, [sp, #0]
|
|
7f4: 9b07 ldr r3, [sp, #28]
|
|
7f6: 220e movs r2, #14
|
|
7f8: a906 add r1, sp, #24
|
|
7fa: 468c mov ip, r1
|
|
7fc: 4462 add r2, ip
|
|
7fe: 6ab1 ldr r1, [r6, #40] ; 0x28
|
|
800: 6a30 ldr r0, [r6, #32]
|
|
802: 4f34 ldr r7, [pc, #208] ; (8d4 <usart_init+0x324>)
|
|
804: 47b8 blx r7
|
|
if (status_code != STATUS_OK) {
|
|
806: 2800 cmp r0, #0
|
|
808: d000 beq.n 80c <usart_init+0x25c>
|
|
80a: e6e4 b.n 5d6 <usart_init+0x26>
|
|
80c: e754 b.n 6b8 <usart_init+0x108>
|
|
_sercom_get_async_baud_val(config->baudrate,
|
|
80e: 6a33 ldr r3, [r6, #32]
|
|
810: 001f movs r7, r3
|
|
812: b2c0 uxtb r0, r0
|
|
814: 4b2d ldr r3, [pc, #180] ; (8cc <usart_init+0x31c>)
|
|
816: 4798 blx r3
|
|
818: 0001 movs r1, r0
|
|
status_code =
|
|
81a: 9b06 ldr r3, [sp, #24]
|
|
81c: 9300 str r3, [sp, #0]
|
|
81e: 9b07 ldr r3, [sp, #28]
|
|
820: 220e movs r2, #14
|
|
822: a806 add r0, sp, #24
|
|
824: 4684 mov ip, r0
|
|
826: 4462 add r2, ip
|
|
828: 0038 movs r0, r7
|
|
82a: 4f2a ldr r7, [pc, #168] ; (8d4 <usart_init+0x324>)
|
|
82c: 47b8 blx r7
|
|
82e: e7ea b.n 806 <usart_init+0x256>
|
|
if(config->lin_slave_enable) {
|
|
830: 7ef3 ldrb r3, [r6, #27]
|
|
832: 2b00 cmp r3, #0
|
|
834: d100 bne.n 838 <usart_init+0x288>
|
|
836: e77d b.n 734 <usart_init+0x184>
|
|
ctrla |= SERCOM_USART_CTRLA_FORM(0x4);
|
|
838: 2380 movs r3, #128 ; 0x80
|
|
83a: 04db lsls r3, r3, #19
|
|
83c: 431f orrs r7, r3
|
|
83e: e779 b.n 734 <usart_init+0x184>
|
|
current_pinmux = _sercom_get_default_pad(hw, pad);
|
|
840: 0020 movs r0, r4
|
|
842: 4b25 ldr r3, [pc, #148] ; (8d8 <usart_init+0x328>)
|
|
844: 4798 blx r3
|
|
846: e007 b.n 858 <usart_init+0x2a8>
|
|
848: 3701 adds r7, #1
|
|
for (uint8_t pad = 0; pad < 4; pad++) {
|
|
84a: 2f04 cmp r7, #4
|
|
84c: d00d beq.n 86a <usart_init+0x2ba>
|
|
84e: b2f9 uxtb r1, r7
|
|
uint32_t current_pinmux = pad_pinmuxes[pad];
|
|
850: 00bb lsls r3, r7, #2
|
|
852: 5998 ldr r0, [r3, r6]
|
|
if (current_pinmux == PINMUX_DEFAULT) {
|
|
854: 2800 cmp r0, #0
|
|
856: d0f3 beq.n 840 <usart_init+0x290>
|
|
if (current_pinmux != PINMUX_UNUSED) {
|
|
858: 1c43 adds r3, r0, #1
|
|
85a: d0f5 beq.n 848 <usart_init+0x298>
|
|
pin_conf.mux_position = current_pinmux & 0xFFFF;
|
|
85c: a90e add r1, sp, #56 ; 0x38
|
|
85e: 7008 strb r0, [r1, #0]
|
|
system_pinmux_pin_set_config(current_pinmux >> 16, &pin_conf);
|
|
860: 0c00 lsrs r0, r0, #16
|
|
862: b2c0 uxtb r0, r0
|
|
864: 4b1d ldr r3, [pc, #116] ; (8dc <usart_init+0x32c>)
|
|
866: 4798 blx r3
|
|
868: e7ee b.n 848 <usart_init+0x298>
|
|
module->callback[i] = NULL;
|
|
86a: 2300 movs r3, #0
|
|
86c: 60eb str r3, [r5, #12]
|
|
86e: 612b str r3, [r5, #16]
|
|
870: 616b str r3, [r5, #20]
|
|
872: 61ab str r3, [r5, #24]
|
|
874: 61eb str r3, [r5, #28]
|
|
876: 622b str r3, [r5, #32]
|
|
module->tx_buffer_ptr = NULL;
|
|
878: 62ab str r3, [r5, #40] ; 0x28
|
|
module->rx_buffer_ptr = NULL;
|
|
87a: 626b str r3, [r5, #36] ; 0x24
|
|
module->remaining_tx_buffer_length = 0x0000;
|
|
87c: 2200 movs r2, #0
|
|
87e: 85eb strh r3, [r5, #46] ; 0x2e
|
|
module->remaining_rx_buffer_length = 0x0000;
|
|
880: 85ab strh r3, [r5, #44] ; 0x2c
|
|
module->callback_reg_mask = 0x00;
|
|
882: 3330 adds r3, #48 ; 0x30
|
|
884: 54ea strb r2, [r5, r3]
|
|
module->callback_enable_mask = 0x00;
|
|
886: 3301 adds r3, #1
|
|
888: 54ea strb r2, [r5, r3]
|
|
module->rx_status = STATUS_OK;
|
|
88a: 3301 adds r3, #1
|
|
88c: 54ea strb r2, [r5, r3]
|
|
module->tx_status = STATUS_OK;
|
|
88e: 3301 adds r3, #1
|
|
890: 54ea strb r2, [r5, r3]
|
|
uint8_t instance_index = _sercom_get_sercom_inst_index(module->hw);
|
|
892: 6828 ldr r0, [r5, #0]
|
|
894: 4b07 ldr r3, [pc, #28] ; (8b4 <usart_init+0x304>)
|
|
896: 4798 blx r3
|
|
898: 0004 movs r4, r0
|
|
_sercom_set_handler(instance_index, _usart_interrupt_handler);
|
|
89a: 4911 ldr r1, [pc, #68] ; (8e0 <usart_init+0x330>)
|
|
89c: 4b11 ldr r3, [pc, #68] ; (8e4 <usart_init+0x334>)
|
|
89e: 4798 blx r3
|
|
_sercom_instances[instance_index] = module;
|
|
8a0: 00a4 lsls r4, r4, #2
|
|
8a2: 4b11 ldr r3, [pc, #68] ; (8e8 <usart_init+0x338>)
|
|
8a4: 50e5 str r5, [r4, r3]
|
|
return status_code;
|
|
8a6: 2000 movs r0, #0
|
|
8a8: e695 b.n 5d6 <usart_init+0x26>
|
|
enum sercom_asynchronous_sample_num sample_num = SERCOM_ASYNC_SAMPLE_NUM_16;
|
|
8aa: 2310 movs r3, #16
|
|
8ac: 9306 str r3, [sp, #24]
|
|
enum sercom_asynchronous_operation_mode mode = SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC;
|
|
8ae: 2300 movs r3, #0
|
|
8b0: 9307 str r3, [sp, #28]
|
|
8b2: e6ec b.n 68e <usart_init+0xde>
|
|
8b4: 00000579 .word 0x00000579
|
|
8b8: 40000400 .word 0x40000400
|
|
8bc: 000011e5 .word 0x000011e5
|
|
8c0: 00001159 .word 0x00001159
|
|
8c4: 000003b5 .word 0x000003b5
|
|
8c8: 41002000 .word 0x41002000
|
|
8cc: 00001201 .word 0x00001201
|
|
8d0: 000002f7 .word 0x000002f7
|
|
8d4: 00000321 .word 0x00000321
|
|
8d8: 00000401 .word 0x00000401
|
|
8dc: 000012dd .word 0x000012dd
|
|
8e0: 00000a49 .word 0x00000a49
|
|
8e4: 00000be1 .word 0x00000be1
|
|
8e8: 20004c94 .word 0x20004c94
|
|
|
|
000008ec <usart_write_wait>:
|
|
|
|
/* Get a pointer to the hardware module instance */
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
|
|
/* Check that the transmitter is enabled */
|
|
if (!(module->transmitter_enabled)) {
|
|
8ec: 79c2 ldrb r2, [r0, #7]
|
|
return STATUS_ERR_DENIED;
|
|
8ee: 231c movs r3, #28
|
|
if (!(module->transmitter_enabled)) {
|
|
8f0: 2a00 cmp r2, #0
|
|
8f2: d101 bne.n 8f8 <usart_write_wait+0xc>
|
|
while (!(usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC)) {
|
|
/* Wait until data is sent */
|
|
}
|
|
|
|
return STATUS_OK;
|
|
}
|
|
8f4: 0018 movs r0, r3
|
|
8f6: 4770 bx lr
|
|
if (module->remaining_tx_buffer_length > 0) {
|
|
8f8: 8dc2 ldrh r2, [r0, #46] ; 0x2e
|
|
8fa: b292 uxth r2, r2
|
|
return STATUS_BUSY;
|
|
8fc: 3b17 subs r3, #23
|
|
if (module->remaining_tx_buffer_length > 0) {
|
|
8fe: 2a00 cmp r2, #0
|
|
900: d1f8 bne.n 8f4 <usart_write_wait+0x8>
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
902: 6802 ldr r2, [r0, #0]
|
|
usart_hw->DATA.reg = tx_data;
|
|
904: 8511 strh r1, [r2, #40] ; 0x28
|
|
while (!(usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC)) {
|
|
906: 2102 movs r1, #2
|
|
908: 7e13 ldrb r3, [r2, #24]
|
|
90a: 420b tst r3, r1
|
|
90c: d0fc beq.n 908 <usart_write_wait+0x1c>
|
|
return STATUS_OK;
|
|
90e: 2300 movs r3, #0
|
|
910: e7f0 b.n 8f4 <usart_write_wait+0x8>
|
|
...
|
|
|
|
00000914 <usart_write_buffer_wait>:
|
|
*/
|
|
enum status_code usart_write_buffer_wait(
|
|
struct usart_module *const module,
|
|
const uint8_t *tx_data,
|
|
uint16_t length)
|
|
{
|
|
914: b5f0 push {r4, r5, r6, r7, lr}
|
|
916: 46ce mov lr, r9
|
|
918: 4647 mov r7, r8
|
|
91a: b580 push {r7, lr}
|
|
91c: b083 sub sp, #12
|
|
91e: 0005 movs r5, r0
|
|
920: 9101 str r1, [sp, #4]
|
|
Assert(module);
|
|
Assert(module->hw);
|
|
|
|
/* Check if the buffer length is valid */
|
|
if (length == 0) {
|
|
return STATUS_ERR_INVALID_ARG;
|
|
922: 2017 movs r0, #23
|
|
if (length == 0) {
|
|
924: 2a00 cmp r2, #0
|
|
926: d104 bne.n 932 <usart_write_buffer_wait+0x1e>
|
|
return STATUS_ERR_TIMEOUT;
|
|
}
|
|
}
|
|
|
|
return STATUS_OK;
|
|
}
|
|
928: b003 add sp, #12
|
|
92a: bc0c pop {r2, r3}
|
|
92c: 4690 mov r8, r2
|
|
92e: 4699 mov r9, r3
|
|
930: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if (!(module->transmitter_enabled)) {
|
|
932: 79eb ldrb r3, [r5, #7]
|
|
return STATUS_ERR_DENIED;
|
|
934: 3005 adds r0, #5
|
|
if (!(module->transmitter_enabled)) {
|
|
936: 2b00 cmp r3, #0
|
|
938: d0f6 beq.n 928 <usart_write_buffer_wait+0x14>
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
93a: 682c ldr r4, [r5, #0]
|
|
while (length--) {
|
|
93c: 3a01 subs r2, #1
|
|
93e: b293 uxth r3, r2
|
|
940: 4699 mov r9, r3
|
|
942: 2600 movs r6, #0
|
|
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) {
|
|
944: 2701 movs r7, #1
|
|
while (length--) {
|
|
946: 4b20 ldr r3, [pc, #128] ; (9c8 <usart_write_buffer_wait+0xb4>)
|
|
948: 4698 mov r8, r3
|
|
94a: e011 b.n 970 <usart_write_buffer_wait+0x5c>
|
|
uint16_t data_to_send = tx_data[tx_pos++];
|
|
94c: 1c73 adds r3, r6, #1
|
|
94e: b29b uxth r3, r3
|
|
950: 9a01 ldr r2, [sp, #4]
|
|
952: 5d91 ldrb r1, [r2, r6]
|
|
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
|
|
954: 796a ldrb r2, [r5, #5]
|
|
956: 2a01 cmp r2, #1
|
|
958: d017 beq.n 98a <usart_write_buffer_wait+0x76>
|
|
uint16_t data_to_send = tx_data[tx_pos++];
|
|
95a: b289 uxth r1, r1
|
|
95c: 001e movs r6, r3
|
|
usart_write_wait(module, data_to_send);
|
|
95e: 0028 movs r0, r5
|
|
960: 4b1a ldr r3, [pc, #104] ; (9cc <usart_write_buffer_wait+0xb8>)
|
|
962: 4798 blx r3
|
|
while (length--) {
|
|
964: 464b mov r3, r9
|
|
966: 3b01 subs r3, #1
|
|
968: b29b uxth r3, r3
|
|
96a: 4699 mov r9, r3
|
|
96c: 4543 cmp r3, r8
|
|
96e: d013 beq.n 998 <usart_write_buffer_wait+0x84>
|
|
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) {
|
|
970: 7e23 ldrb r3, [r4, #24]
|
|
972: 423b tst r3, r7
|
|
974: d1ea bne.n 94c <usart_write_buffer_wait+0x38>
|
|
976: 4b14 ldr r3, [pc, #80] ; (9c8 <usart_write_buffer_wait+0xb4>)
|
|
978: 7e22 ldrb r2, [r4, #24]
|
|
97a: 423a tst r2, r7
|
|
97c: d1e6 bne.n 94c <usart_write_buffer_wait+0x38>
|
|
} else if (i == USART_TIMEOUT) {
|
|
97e: 2b01 cmp r3, #1
|
|
980: d019 beq.n 9b6 <usart_write_buffer_wait+0xa2>
|
|
982: 3b01 subs r3, #1
|
|
for (uint32_t i = 0; i <= USART_TIMEOUT; i++) {
|
|
984: 2b00 cmp r3, #0
|
|
986: d1f7 bne.n 978 <usart_write_buffer_wait+0x64>
|
|
988: e7e0 b.n 94c <usart_write_buffer_wait+0x38>
|
|
data_to_send |= (tx_data[tx_pos++] << 8);
|
|
98a: 3602 adds r6, #2
|
|
98c: b2b6 uxth r6, r6
|
|
98e: 9a01 ldr r2, [sp, #4]
|
|
990: 5cd3 ldrb r3, [r2, r3]
|
|
992: 021b lsls r3, r3, #8
|
|
994: 4319 orrs r1, r3
|
|
996: e7e2 b.n 95e <usart_write_buffer_wait+0x4a>
|
|
if (usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_TXC) {
|
|
998: 7e23 ldrb r3, [r4, #24]
|
|
99a: 079b lsls r3, r3, #30
|
|
99c: d40d bmi.n 9ba <usart_write_buffer_wait+0xa6>
|
|
99e: 4b0a ldr r3, [pc, #40] ; (9c8 <usart_write_buffer_wait+0xb4>)
|
|
9a0: 2102 movs r1, #2
|
|
9a2: 7e22 ldrb r2, [r4, #24]
|
|
9a4: 420a tst r2, r1
|
|
9a6: d10a bne.n 9be <usart_write_buffer_wait+0xaa>
|
|
} else if (i == USART_TIMEOUT) {
|
|
9a8: 2b01 cmp r3, #1
|
|
9aa: d00a beq.n 9c2 <usart_write_buffer_wait+0xae>
|
|
9ac: 3b01 subs r3, #1
|
|
for (uint32_t i = 0; i <= USART_TIMEOUT; i++) {
|
|
9ae: 2b00 cmp r3, #0
|
|
9b0: d1f7 bne.n 9a2 <usart_write_buffer_wait+0x8e>
|
|
return STATUS_OK;
|
|
9b2: 2000 movs r0, #0
|
|
9b4: e7b8 b.n 928 <usart_write_buffer_wait+0x14>
|
|
return STATUS_ERR_TIMEOUT;
|
|
9b6: 2012 movs r0, #18
|
|
9b8: e7b6 b.n 928 <usart_write_buffer_wait+0x14>
|
|
return STATUS_OK;
|
|
9ba: 2000 movs r0, #0
|
|
9bc: e7b4 b.n 928 <usart_write_buffer_wait+0x14>
|
|
9be: 2000 movs r0, #0
|
|
9c0: e7b2 b.n 928 <usart_write_buffer_wait+0x14>
|
|
return STATUS_ERR_TIMEOUT;
|
|
9c2: 2012 movs r0, #18
|
|
9c4: e7b0 b.n 928 <usart_write_buffer_wait+0x14>
|
|
9c6: 46c0 nop ; (mov r8, r8)
|
|
9c8: 0000ffff .word 0x0000ffff
|
|
9cc: 000008ed .word 0x000008ed
|
|
|
|
000009d0 <_usart_read_buffer>:
|
|
*/
|
|
enum status_code _usart_read_buffer(
|
|
struct usart_module *const module,
|
|
uint8_t *rx_data,
|
|
uint16_t length)
|
|
{
|
|
9d0: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
9d2: 0004 movs r4, r0
|
|
9d4: 000d movs r5, r1
|
|
9d6: 0016 movs r6, r2
|
|
Assert(module);
|
|
Assert(module->hw);
|
|
Assert(rx_data);
|
|
|
|
/* Get a pointer to the hardware module instance */
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
9d8: 6807 ldr r7, [r0, #0]
|
|
cpu_irq_enter_critical();
|
|
9da: 4b0f ldr r3, [pc, #60] ; (a18 <_usart_read_buffer+0x48>)
|
|
9dc: 4798 blx r3
|
|
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Check if the USART receiver is busy */
|
|
if (module->remaining_rx_buffer_length > 0) {
|
|
9de: 8da3 ldrh r3, [r4, #44] ; 0x2c
|
|
9e0: b29b uxth r3, r3
|
|
9e2: 2b00 cmp r3, #0
|
|
9e4: d003 beq.n 9ee <_usart_read_buffer+0x1e>
|
|
cpu_irq_leave_critical();
|
|
9e6: 4b0d ldr r3, [pc, #52] ; (a1c <_usart_read_buffer+0x4c>)
|
|
9e8: 4798 blx r3
|
|
system_interrupt_leave_critical_section();
|
|
return STATUS_BUSY;
|
|
9ea: 2005 movs r0, #5
|
|
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXS;
|
|
}
|
|
#endif
|
|
|
|
return STATUS_OK;
|
|
}
|
|
9ec: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
module->remaining_rx_buffer_length = length;
|
|
9ee: 85a6 strh r6, [r4, #44] ; 0x2c
|
|
9f0: 4b0a ldr r3, [pc, #40] ; (a1c <_usart_read_buffer+0x4c>)
|
|
9f2: 4798 blx r3
|
|
module->rx_buffer_ptr = rx_data;
|
|
9f4: 6265 str r5, [r4, #36] ; 0x24
|
|
module->rx_status = STATUS_BUSY;
|
|
9f6: 2205 movs r2, #5
|
|
9f8: 2332 movs r3, #50 ; 0x32
|
|
9fa: 54e2 strb r2, [r4, r3]
|
|
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXC;
|
|
9fc: 3b2e subs r3, #46 ; 0x2e
|
|
9fe: 75bb strb r3, [r7, #22]
|
|
if(module->lin_slave_enabled) {
|
|
a00: 7a23 ldrb r3, [r4, #8]
|
|
a02: 2b00 cmp r3, #0
|
|
a04: d001 beq.n a0a <_usart_read_buffer+0x3a>
|
|
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXBRK;
|
|
a06: 2320 movs r3, #32
|
|
a08: 75bb strb r3, [r7, #22]
|
|
if(module->start_frame_detection_enabled) {
|
|
a0a: 7a63 ldrb r3, [r4, #9]
|
|
return STATUS_OK;
|
|
a0c: 2000 movs r0, #0
|
|
if(module->start_frame_detection_enabled) {
|
|
a0e: 2b00 cmp r3, #0
|
|
a10: d0ec beq.n 9ec <_usart_read_buffer+0x1c>
|
|
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_RXS;
|
|
a12: 2308 movs r3, #8
|
|
a14: 75bb strb r3, [r7, #22]
|
|
a16: e7e9 b.n 9ec <_usart_read_buffer+0x1c>
|
|
a18: 00000cad .word 0x00000cad
|
|
a1c: 00000ced .word 0x00000ced
|
|
|
|
00000a20 <usart_register_callback>:
|
|
/* Sanity check arguments */
|
|
Assert(module);
|
|
Assert(callback_func);
|
|
|
|
/* Register callback function */
|
|
module->callback[callback_type] = callback_func;
|
|
a20: 1c93 adds r3, r2, #2
|
|
a22: 009b lsls r3, r3, #2
|
|
a24: 18c3 adds r3, r0, r3
|
|
a26: 6059 str r1, [r3, #4]
|
|
|
|
/* Set the bit corresponding to the callback_type */
|
|
module->callback_reg_mask |= (1 << callback_type);
|
|
a28: 2130 movs r1, #48 ; 0x30
|
|
a2a: 2301 movs r3, #1
|
|
a2c: 4093 lsls r3, r2
|
|
a2e: 001a movs r2, r3
|
|
a30: 5c43 ldrb r3, [r0, r1]
|
|
a32: 4313 orrs r3, r2
|
|
a34: 5443 strb r3, [r0, r1]
|
|
}
|
|
a36: 4770 bx lr
|
|
|
|
00000a38 <usart_read_job>:
|
|
* \retval STATUS_BUSY If operation was not completed
|
|
*/
|
|
enum status_code usart_read_job(
|
|
struct usart_module *const module,
|
|
uint16_t *const rx_data)
|
|
{
|
|
a38: b510 push {r4, lr}
|
|
/* Sanity check arguments */
|
|
Assert(module);
|
|
Assert(rx_data);
|
|
|
|
/* Call internal read buffer function with length 1 */
|
|
return _usart_read_buffer(module, (uint8_t *)rx_data, 1);
|
|
a3a: 2201 movs r2, #1
|
|
a3c: 4b01 ldr r3, [pc, #4] ; (a44 <usart_read_job+0xc>)
|
|
a3e: 4798 blx r3
|
|
}
|
|
a40: bd10 pop {r4, pc}
|
|
a42: 46c0 nop ; (mov r8, r8)
|
|
a44: 000009d1 .word 0x000009d1
|
|
|
|
00000a48 <_usart_interrupt_handler>:
|
|
* \param[in] instance ID of the SERCOM instance calling the interrupt
|
|
* handler.
|
|
*/
|
|
void _usart_interrupt_handler(
|
|
uint8_t instance)
|
|
{
|
|
a48: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
uint16_t callback_status;
|
|
uint8_t error_code;
|
|
|
|
|
|
/* Get device instance from the look-up table */
|
|
struct usart_module *module
|
|
a4a: 0080 lsls r0, r0, #2
|
|
a4c: 4b62 ldr r3, [pc, #392] ; (bd8 <_usart_interrupt_handler+0x190>)
|
|
a4e: 58c5 ldr r5, [r0, r3]
|
|
= (struct usart_module *)_sercom_instances[instance];
|
|
|
|
/* Pointer to the hardware module instance */
|
|
SercomUsart *const usart_hw
|
|
= &(module->hw->USART);
|
|
a50: 682c ldr r4, [r5, #0]
|
|
return (usart_hw->SYNCBUSY.reg);
|
|
a52: 69e3 ldr r3, [r4, #28]
|
|
while (usart_is_syncing(module)) {
|
|
a54: 2b00 cmp r3, #0
|
|
a56: d1fc bne.n a52 <_usart_interrupt_handler+0xa>
|
|
|
|
/* Wait for the synchronization to complete */
|
|
_usart_wait_for_sync(module);
|
|
|
|
/* Read and mask interrupt flag register */
|
|
interrupt_status = usart_hw->INTFLAG.reg;
|
|
a58: 7e23 ldrb r3, [r4, #24]
|
|
interrupt_status &= usart_hw->INTENSET.reg;
|
|
a5a: 7da6 ldrb r6, [r4, #22]
|
|
a5c: 401e ands r6, r3
|
|
callback_status = module->callback_reg_mask &
|
|
a5e: 2330 movs r3, #48 ; 0x30
|
|
a60: 5ceb ldrb r3, [r5, r3]
|
|
a62: 2231 movs r2, #49 ; 0x31
|
|
a64: 5caf ldrb r7, [r5, r2]
|
|
a66: 401f ands r7, r3
|
|
module->callback_enable_mask;
|
|
|
|
/* Check if a DATA READY interrupt has occurred,
|
|
* and if there is more to transfer */
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_DRE) {
|
|
a68: 07f3 lsls r3, r6, #31
|
|
a6a: d522 bpl.n ab2 <_usart_interrupt_handler+0x6a>
|
|
if (module->remaining_tx_buffer_length) {
|
|
a6c: 8deb ldrh r3, [r5, #46] ; 0x2e
|
|
a6e: b29b uxth r3, r3
|
|
a70: 2b00 cmp r3, #0
|
|
a72: d01c beq.n aae <_usart_interrupt_handler+0x66>
|
|
/* Write value will be at least 8-bits long */
|
|
uint16_t data_to_send = *(module->tx_buffer_ptr);
|
|
a74: 6aaa ldr r2, [r5, #40] ; 0x28
|
|
a76: 7813 ldrb r3, [r2, #0]
|
|
a78: b2db uxtb r3, r3
|
|
/* Increment 8-bit pointer */
|
|
(module->tx_buffer_ptr)++;
|
|
a7a: 1c51 adds r1, r2, #1
|
|
a7c: 62a9 str r1, [r5, #40] ; 0x28
|
|
|
|
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
|
|
a7e: 7969 ldrb r1, [r5, #5]
|
|
a80: 2901 cmp r1, #1
|
|
a82: d00e beq.n aa2 <_usart_interrupt_handler+0x5a>
|
|
uint16_t data_to_send = *(module->tx_buffer_ptr);
|
|
a84: b29b uxth r3, r3
|
|
data_to_send |= (*(module->tx_buffer_ptr) << 8);
|
|
/* Increment 8-bit pointer */
|
|
(module->tx_buffer_ptr)++;
|
|
}
|
|
/* Write the data to send */
|
|
usart_hw->DATA.reg = (data_to_send & SERCOM_USART_DATA_MASK);
|
|
a86: 05db lsls r3, r3, #23
|
|
a88: 0ddb lsrs r3, r3, #23
|
|
a8a: 8523 strh r3, [r4, #40] ; 0x28
|
|
|
|
if (--(module->remaining_tx_buffer_length) == 0) {
|
|
a8c: 8deb ldrh r3, [r5, #46] ; 0x2e
|
|
a8e: 3b01 subs r3, #1
|
|
a90: b29b uxth r3, r3
|
|
a92: 85eb strh r3, [r5, #46] ; 0x2e
|
|
a94: 2b00 cmp r3, #0
|
|
a96: d10c bne.n ab2 <_usart_interrupt_handler+0x6a>
|
|
/* Disable the Data Register Empty Interrupt */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_DRE;
|
|
a98: 3301 adds r3, #1
|
|
a9a: 7523 strb r3, [r4, #20]
|
|
/* Enable Transmission Complete interrupt */
|
|
usart_hw->INTENSET.reg = SERCOM_USART_INTFLAG_TXC;
|
|
a9c: 3301 adds r3, #1
|
|
a9e: 75a3 strb r3, [r4, #22]
|
|
aa0: e007 b.n ab2 <_usart_interrupt_handler+0x6a>
|
|
data_to_send |= (*(module->tx_buffer_ptr) << 8);
|
|
aa2: 7851 ldrb r1, [r2, #1]
|
|
aa4: 0209 lsls r1, r1, #8
|
|
aa6: 430b orrs r3, r1
|
|
(module->tx_buffer_ptr)++;
|
|
aa8: 3202 adds r2, #2
|
|
aaa: 62aa str r2, [r5, #40] ; 0x28
|
|
aac: e7eb b.n a86 <_usart_interrupt_handler+0x3e>
|
|
|
|
}
|
|
} else {
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_DRE;
|
|
aae: 2301 movs r3, #1
|
|
ab0: 7523 strb r3, [r4, #20]
|
|
}
|
|
}
|
|
|
|
/* Check if the Transmission Complete interrupt has occurred and
|
|
* that the transmit buffer is empty */
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_TXC) {
|
|
ab2: 07b3 lsls r3, r6, #30
|
|
ab4: d506 bpl.n ac4 <_usart_interrupt_handler+0x7c>
|
|
|
|
/* Disable TX Complete Interrupt, and set STATUS_OK */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_TXC;
|
|
ab6: 2302 movs r3, #2
|
|
ab8: 7523 strb r3, [r4, #20]
|
|
module->tx_status = STATUS_OK;
|
|
aba: 2200 movs r2, #0
|
|
abc: 3331 adds r3, #49 ; 0x31
|
|
abe: 54ea strb r2, [r5, r3]
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status & (1 << USART_CALLBACK_BUFFER_TRANSMITTED)) {
|
|
ac0: 07fb lsls r3, r7, #31
|
|
ac2: d41a bmi.n afa <_usart_interrupt_handler+0xb2>
|
|
}
|
|
}
|
|
|
|
/* Check if the Receive Complete interrupt has occurred, and that
|
|
* there's more data to receive */
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_RXC) {
|
|
ac4: 0773 lsls r3, r6, #29
|
|
ac6: d565 bpl.n b94 <_usart_interrupt_handler+0x14c>
|
|
|
|
if (module->remaining_rx_buffer_length) {
|
|
ac8: 8dab ldrh r3, [r5, #44] ; 0x2c
|
|
aca: b29b uxth r3, r3
|
|
acc: 2b00 cmp r3, #0
|
|
ace: d05f beq.n b90 <_usart_interrupt_handler+0x148>
|
|
/* Read out the status code and mask away all but the 4 LSBs*/
|
|
error_code = (uint8_t)(usart_hw->STATUS.reg & SERCOM_USART_STATUS_MASK);
|
|
ad0: 8b63 ldrh r3, [r4, #26]
|
|
ad2: b2db uxtb r3, r3
|
|
#if !SAMD20
|
|
/* CTS status should not be considered as an error */
|
|
if(error_code & SERCOM_USART_STATUS_CTS) {
|
|
ad4: 071a lsls r2, r3, #28
|
|
ad6: d414 bmi.n b02 <_usart_interrupt_handler+0xba>
|
|
error_code = (uint8_t)(usart_hw->STATUS.reg & SERCOM_USART_STATUS_MASK);
|
|
ad8: 223f movs r2, #63 ; 0x3f
|
|
ada: 4013 ands r3, r2
|
|
if(error_code & SERCOM_USART_STATUS_TXE) {
|
|
error_code &= ~SERCOM_USART_STATUS_TXE;
|
|
}
|
|
#endif
|
|
/* Check if an error has occurred during the receiving */
|
|
if (error_code) {
|
|
adc: 2b00 cmp r3, #0
|
|
ade: d034 beq.n b4a <_usart_interrupt_handler+0x102>
|
|
/* Check which error occurred */
|
|
if (error_code & SERCOM_USART_STATUS_FERR) {
|
|
ae0: 079a lsls r2, r3, #30
|
|
ae2: d511 bpl.n b08 <_usart_interrupt_handler+0xc0>
|
|
/* Store the error code and clear flag by writing 1 to it */
|
|
module->rx_status = STATUS_ERR_BAD_FORMAT;
|
|
ae4: 221a movs r2, #26
|
|
ae6: 2332 movs r3, #50 ; 0x32
|
|
ae8: 54ea strb r2, [r5, r3]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_FERR;
|
|
aea: 3b30 subs r3, #48 ; 0x30
|
|
aec: 8363 strh r3, [r4, #26]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_COLL;
|
|
}
|
|
#endif
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status
|
|
aee: 077b lsls r3, r7, #29
|
|
af0: d550 bpl.n b94 <_usart_interrupt_handler+0x14c>
|
|
& (1 << USART_CALLBACK_ERROR)) {
|
|
(*(module->callback[USART_CALLBACK_ERROR]))(module);
|
|
af2: 0028 movs r0, r5
|
|
af4: 696b ldr r3, [r5, #20]
|
|
af6: 4798 blx r3
|
|
af8: e04c b.n b94 <_usart_interrupt_handler+0x14c>
|
|
(*(module->callback[USART_CALLBACK_BUFFER_TRANSMITTED]))(module);
|
|
afa: 0028 movs r0, r5
|
|
afc: 68eb ldr r3, [r5, #12]
|
|
afe: 4798 blx r3
|
|
b00: e7e0 b.n ac4 <_usart_interrupt_handler+0x7c>
|
|
error_code &= ~SERCOM_USART_STATUS_CTS;
|
|
b02: 2237 movs r2, #55 ; 0x37
|
|
b04: 4013 ands r3, r2
|
|
b06: e7e9 b.n adc <_usart_interrupt_handler+0x94>
|
|
} else if (error_code & SERCOM_USART_STATUS_BUFOVF) {
|
|
b08: 075a lsls r2, r3, #29
|
|
b0a: d505 bpl.n b18 <_usart_interrupt_handler+0xd0>
|
|
module->rx_status = STATUS_ERR_OVERFLOW;
|
|
b0c: 221e movs r2, #30
|
|
b0e: 2332 movs r3, #50 ; 0x32
|
|
b10: 54ea strb r2, [r5, r3]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_BUFOVF;
|
|
b12: 3b2e subs r3, #46 ; 0x2e
|
|
b14: 8363 strh r3, [r4, #26]
|
|
b16: e7ea b.n aee <_usart_interrupt_handler+0xa6>
|
|
} else if (error_code & SERCOM_USART_STATUS_PERR) {
|
|
b18: 07da lsls r2, r3, #31
|
|
b1a: d505 bpl.n b28 <_usart_interrupt_handler+0xe0>
|
|
module->rx_status = STATUS_ERR_BAD_DATA;
|
|
b1c: 2213 movs r2, #19
|
|
b1e: 2332 movs r3, #50 ; 0x32
|
|
b20: 54ea strb r2, [r5, r3]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_PERR;
|
|
b22: 3b31 subs r3, #49 ; 0x31
|
|
b24: 8363 strh r3, [r4, #26]
|
|
b26: e7e2 b.n aee <_usart_interrupt_handler+0xa6>
|
|
else if (error_code & SERCOM_USART_STATUS_ISF) {
|
|
b28: 06da lsls r2, r3, #27
|
|
b2a: d505 bpl.n b38 <_usart_interrupt_handler+0xf0>
|
|
module->rx_status = STATUS_ERR_PROTOCOL;
|
|
b2c: 2242 movs r2, #66 ; 0x42
|
|
b2e: 2332 movs r3, #50 ; 0x32
|
|
b30: 54ea strb r2, [r5, r3]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_ISF;
|
|
b32: 3b22 subs r3, #34 ; 0x22
|
|
b34: 8363 strh r3, [r4, #26]
|
|
b36: e7da b.n aee <_usart_interrupt_handler+0xa6>
|
|
else if (error_code & SERCOM_USART_STATUS_COLL) {
|
|
b38: 2220 movs r2, #32
|
|
b3a: 421a tst r2, r3
|
|
b3c: d0d7 beq.n aee <_usart_interrupt_handler+0xa6>
|
|
module->rx_status = STATUS_ERR_PACKET_COLLISION;
|
|
b3e: 3221 adds r2, #33 ; 0x21
|
|
b40: 2332 movs r3, #50 ; 0x32
|
|
b42: 54ea strb r2, [r5, r3]
|
|
usart_hw->STATUS.reg = SERCOM_USART_STATUS_COLL;
|
|
b44: 3b12 subs r3, #18
|
|
b46: 8363 strh r3, [r4, #26]
|
|
b48: e7d1 b.n aee <_usart_interrupt_handler+0xa6>
|
|
|
|
} else {
|
|
|
|
/* Read current packet from DATA register,
|
|
* increment buffer pointer and decrement buffer length */
|
|
uint16_t received_data = (usart_hw->DATA.reg & SERCOM_USART_DATA_MASK);
|
|
b4a: 8d23 ldrh r3, [r4, #40] ; 0x28
|
|
b4c: 05db lsls r3, r3, #23
|
|
b4e: 0ddb lsrs r3, r3, #23
|
|
|
|
/* Read value will be at least 8-bits long */
|
|
*(module->rx_buffer_ptr) = received_data;
|
|
b50: b2da uxtb r2, r3
|
|
b52: 6a69 ldr r1, [r5, #36] ; 0x24
|
|
b54: 700a strb r2, [r1, #0]
|
|
/* Increment 8-bit pointer */
|
|
module->rx_buffer_ptr += 1;
|
|
b56: 6a6a ldr r2, [r5, #36] ; 0x24
|
|
b58: 1c51 adds r1, r2, #1
|
|
b5a: 6269 str r1, [r5, #36] ; 0x24
|
|
|
|
if (module->character_size == USART_CHARACTER_SIZE_9BIT) {
|
|
b5c: 7969 ldrb r1, [r5, #5]
|
|
b5e: 2901 cmp r1, #1
|
|
b60: d010 beq.n b84 <_usart_interrupt_handler+0x13c>
|
|
/* Increment 8-bit pointer */
|
|
module->rx_buffer_ptr += 1;
|
|
}
|
|
|
|
/* Check if the last character have been received */
|
|
if(--(module->remaining_rx_buffer_length) == 0) {
|
|
b62: 8dab ldrh r3, [r5, #44] ; 0x2c
|
|
b64: 3b01 subs r3, #1
|
|
b66: b29b uxth r3, r3
|
|
b68: 85ab strh r3, [r5, #44] ; 0x2c
|
|
b6a: 2b00 cmp r3, #0
|
|
b6c: d112 bne.n b94 <_usart_interrupt_handler+0x14c>
|
|
/* Disable RX Complete Interrupt,
|
|
* and set STATUS_OK */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_RXC;
|
|
b6e: 3304 adds r3, #4
|
|
b70: 7523 strb r3, [r4, #20]
|
|
module->rx_status = STATUS_OK;
|
|
b72: 2200 movs r2, #0
|
|
b74: 332e adds r3, #46 ; 0x2e
|
|
b76: 54ea strb r2, [r5, r3]
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status
|
|
b78: 07bb lsls r3, r7, #30
|
|
b7a: d50b bpl.n b94 <_usart_interrupt_handler+0x14c>
|
|
& (1 << USART_CALLBACK_BUFFER_RECEIVED)) {
|
|
(*(module->callback[USART_CALLBACK_BUFFER_RECEIVED]))(module);
|
|
b7c: 0028 movs r0, r5
|
|
b7e: 692b ldr r3, [r5, #16]
|
|
b80: 4798 blx r3
|
|
b82: e007 b.n b94 <_usart_interrupt_handler+0x14c>
|
|
*(module->rx_buffer_ptr) = (received_data >> 8);
|
|
b84: 0a1b lsrs r3, r3, #8
|
|
b86: 7053 strb r3, [r2, #1]
|
|
module->rx_buffer_ptr += 1;
|
|
b88: 6a6b ldr r3, [r5, #36] ; 0x24
|
|
b8a: 3301 adds r3, #1
|
|
b8c: 626b str r3, [r5, #36] ; 0x24
|
|
b8e: e7e8 b.n b62 <_usart_interrupt_handler+0x11a>
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
/* This should not happen. Disable Receive Complete interrupt. */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTFLAG_RXC;
|
|
b90: 2304 movs r3, #4
|
|
b92: 7523 strb r3, [r4, #20]
|
|
}
|
|
}
|
|
|
|
#ifdef FEATURE_USART_HARDWARE_FLOW_CONTROL
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_CTSIC) {
|
|
b94: 06f3 lsls r3, r6, #27
|
|
b96: d504 bpl.n ba2 <_usart_interrupt_handler+0x15a>
|
|
/* Disable interrupts */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_CTSIC;
|
|
b98: 2310 movs r3, #16
|
|
b9a: 7523 strb r3, [r4, #20]
|
|
/* Clear interrupt flag */
|
|
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_CTSIC;
|
|
b9c: 7623 strb r3, [r4, #24]
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status & (1 << USART_CALLBACK_CTS_INPUT_CHANGE)) {
|
|
b9e: 06fb lsls r3, r7, #27
|
|
ba0: d40e bmi.n bc0 <_usart_interrupt_handler+0x178>
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#ifdef FEATURE_USART_LIN_SLAVE
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_RXBRK) {
|
|
ba2: 06b3 lsls r3, r6, #26
|
|
ba4: d504 bpl.n bb0 <_usart_interrupt_handler+0x168>
|
|
/* Disable interrupts */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_RXBRK;
|
|
ba6: 2320 movs r3, #32
|
|
ba8: 7523 strb r3, [r4, #20]
|
|
/* Clear interrupt flag */
|
|
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_RXBRK;
|
|
baa: 7623 strb r3, [r4, #24]
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status & (1 << USART_CALLBACK_BREAK_RECEIVED)) {
|
|
bac: 073b lsls r3, r7, #28
|
|
bae: d40b bmi.n bc8 <_usart_interrupt_handler+0x180>
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#ifdef FEATURE_USART_START_FRAME_DECTION
|
|
if (interrupt_status & SERCOM_USART_INTFLAG_RXS) {
|
|
bb0: 0733 lsls r3, r6, #28
|
|
bb2: d504 bpl.n bbe <_usart_interrupt_handler+0x176>
|
|
/* Disable interrupts */
|
|
usart_hw->INTENCLR.reg = SERCOM_USART_INTENCLR_RXS;
|
|
bb4: 2308 movs r3, #8
|
|
bb6: 7523 strb r3, [r4, #20]
|
|
/* Clear interrupt flag */
|
|
usart_hw->INTFLAG.reg = SERCOM_USART_INTFLAG_RXS;
|
|
bb8: 7623 strb r3, [r4, #24]
|
|
|
|
/* Run callback if registered and enabled */
|
|
if (callback_status & (1 << USART_CALLBACK_START_RECEIVED)) {
|
|
bba: 06bb lsls r3, r7, #26
|
|
bbc: d408 bmi.n bd0 <_usart_interrupt_handler+0x188>
|
|
(*(module->callback[USART_CALLBACK_START_RECEIVED]))(module);
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
bbe: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
(*(module->callback[USART_CALLBACK_CTS_INPUT_CHANGE]))(module);
|
|
bc0: 0028 movs r0, r5
|
|
bc2: 69eb ldr r3, [r5, #28]
|
|
bc4: 4798 blx r3
|
|
bc6: e7ec b.n ba2 <_usart_interrupt_handler+0x15a>
|
|
(*(module->callback[USART_CALLBACK_BREAK_RECEIVED]))(module);
|
|
bc8: 0028 movs r0, r5
|
|
bca: 69ab ldr r3, [r5, #24]
|
|
bcc: 4798 blx r3
|
|
bce: e7ef b.n bb0 <_usart_interrupt_handler+0x168>
|
|
(*(module->callback[USART_CALLBACK_START_RECEIVED]))(module);
|
|
bd0: 6a2b ldr r3, [r5, #32]
|
|
bd2: 0028 movs r0, r5
|
|
bd4: 4798 blx r3
|
|
}
|
|
bd6: e7f2 b.n bbe <_usart_interrupt_handler+0x176>
|
|
bd8: 20004c94 .word 0x20004c94
|
|
|
|
00000bdc <_sercom_default_handler>:
|
|
*/
|
|
static void _sercom_default_handler(
|
|
const uint8_t instance)
|
|
{
|
|
Assert(false);
|
|
}
|
|
bdc: 4770 bx lr
|
|
...
|
|
|
|
00000be0 <_sercom_set_handler>:
|
|
* \param[in] interrupt_handler Pointer to instance callback handler.
|
|
*/
|
|
void _sercom_set_handler(
|
|
const uint8_t instance,
|
|
const sercom_handler_t interrupt_handler)
|
|
{
|
|
be0: b5f0 push {r4, r5, r6, r7, lr}
|
|
/* Initialize handlers with default handler and device instances with 0 */
|
|
if (_handler_table_initialized == false) {
|
|
be2: 4b0a ldr r3, [pc, #40] ; (c0c <_sercom_set_handler+0x2c>)
|
|
be4: 781b ldrb r3, [r3, #0]
|
|
be6: 2b00 cmp r3, #0
|
|
be8: d10c bne.n c04 <_sercom_set_handler+0x24>
|
|
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
|
|
_sercom_interrupt_handlers[i] = &_sercom_default_handler;
|
|
bea: 4f09 ldr r7, [pc, #36] ; (c10 <_sercom_set_handler+0x30>)
|
|
bec: 4e09 ldr r6, [pc, #36] ; (c14 <_sercom_set_handler+0x34>)
|
|
_sercom_instances[i] = NULL;
|
|
bee: 4d0a ldr r5, [pc, #40] ; (c18 <_sercom_set_handler+0x38>)
|
|
bf0: 2400 movs r4, #0
|
|
_sercom_interrupt_handlers[i] = &_sercom_default_handler;
|
|
bf2: 51de str r6, [r3, r7]
|
|
_sercom_instances[i] = NULL;
|
|
bf4: 195a adds r2, r3, r5
|
|
bf6: 6014 str r4, [r2, #0]
|
|
bf8: 3304 adds r3, #4
|
|
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
|
|
bfa: 2b18 cmp r3, #24
|
|
bfc: d1f9 bne.n bf2 <_sercom_set_handler+0x12>
|
|
}
|
|
|
|
_handler_table_initialized = true;
|
|
bfe: 2201 movs r2, #1
|
|
c00: 4b02 ldr r3, [pc, #8] ; (c0c <_sercom_set_handler+0x2c>)
|
|
c02: 701a strb r2, [r3, #0]
|
|
}
|
|
|
|
/* Save interrupt handler */
|
|
_sercom_interrupt_handlers[instance] = interrupt_handler;
|
|
c04: 0080 lsls r0, r0, #2
|
|
c06: 4b02 ldr r3, [pc, #8] ; (c10 <_sercom_set_handler+0x30>)
|
|
c08: 50c1 str r1, [r0, r3]
|
|
}
|
|
c0a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
c0c: 20002696 .word 0x20002696
|
|
c10: 20002698 .word 0x20002698
|
|
c14: 00000bdd .word 0x00000bdd
|
|
c18: 20004c94 .word 0x20004c94
|
|
|
|
00000c1c <_sercom_get_interrupt_vector>:
|
|
* \retval SYSTEM_INTERRUPT_MODULE_SERCOM6
|
|
* \retval SYSTEM_INTERRUPT_MODULE_SERCOM7
|
|
*/
|
|
enum system_interrupt_vector _sercom_get_interrupt_vector(
|
|
Sercom *const sercom_instance)
|
|
{
|
|
c1c: b500 push {lr}
|
|
c1e: b083 sub sp, #12
|
|
const uint8_t sercom_int_vectors[SERCOM_INST_NUM] =
|
|
c20: 2309 movs r3, #9
|
|
c22: 466a mov r2, sp
|
|
c24: 7013 strb r3, [r2, #0]
|
|
c26: 3301 adds r3, #1
|
|
c28: 7053 strb r3, [r2, #1]
|
|
c2a: 3301 adds r3, #1
|
|
c2c: 7093 strb r3, [r2, #2]
|
|
c2e: 3301 adds r3, #1
|
|
c30: 70d3 strb r3, [r2, #3]
|
|
c32: 3301 adds r3, #1
|
|
c34: 7113 strb r3, [r2, #4]
|
|
c36: 3301 adds r3, #1
|
|
c38: 7153 strb r3, [r2, #5]
|
|
{
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_INTERRUPT_VECT_NUM, ~)
|
|
};
|
|
|
|
/* Retrieve the index of the SERCOM being requested */
|
|
uint8_t instance_index = _sercom_get_sercom_inst_index(sercom_instance);
|
|
c3a: 4b03 ldr r3, [pc, #12] ; (c48 <_sercom_get_interrupt_vector+0x2c>)
|
|
c3c: 4798 blx r3
|
|
|
|
/* Get the vector number from the lookup table for the requested SERCOM */
|
|
return (enum system_interrupt_vector)sercom_int_vectors[instance_index];
|
|
c3e: 466b mov r3, sp
|
|
c40: 5618 ldrsb r0, [r3, r0]
|
|
}
|
|
c42: b003 add sp, #12
|
|
c44: bd00 pop {pc}
|
|
c46: 46c0 nop ; (mov r8, r8)
|
|
c48: 00000579 .word 0x00000579
|
|
|
|
00000c4c <SERCOM0_Handler>:
|
|
|
|
/** Auto-generate a set of interrupt handlers for each SERCOM in the device */
|
|
MREPEAT(SERCOM_INST_NUM, _SERCOM_INTERRUPT_HANDLER, ~)
|
|
c4c: b510 push {r4, lr}
|
|
c4e: 4b02 ldr r3, [pc, #8] ; (c58 <SERCOM0_Handler+0xc>)
|
|
c50: 681b ldr r3, [r3, #0]
|
|
c52: 2000 movs r0, #0
|
|
c54: 4798 blx r3
|
|
c56: bd10 pop {r4, pc}
|
|
c58: 20002698 .word 0x20002698
|
|
|
|
00000c5c <SERCOM1_Handler>:
|
|
c5c: b510 push {r4, lr}
|
|
c5e: 4b02 ldr r3, [pc, #8] ; (c68 <SERCOM1_Handler+0xc>)
|
|
c60: 685b ldr r3, [r3, #4]
|
|
c62: 2001 movs r0, #1
|
|
c64: 4798 blx r3
|
|
c66: bd10 pop {r4, pc}
|
|
c68: 20002698 .word 0x20002698
|
|
|
|
00000c6c <SERCOM2_Handler>:
|
|
c6c: b510 push {r4, lr}
|
|
c6e: 4b02 ldr r3, [pc, #8] ; (c78 <SERCOM2_Handler+0xc>)
|
|
c70: 689b ldr r3, [r3, #8]
|
|
c72: 2002 movs r0, #2
|
|
c74: 4798 blx r3
|
|
c76: bd10 pop {r4, pc}
|
|
c78: 20002698 .word 0x20002698
|
|
|
|
00000c7c <SERCOM3_Handler>:
|
|
c7c: b510 push {r4, lr}
|
|
c7e: 4b02 ldr r3, [pc, #8] ; (c88 <SERCOM3_Handler+0xc>)
|
|
c80: 68db ldr r3, [r3, #12]
|
|
c82: 2003 movs r0, #3
|
|
c84: 4798 blx r3
|
|
c86: bd10 pop {r4, pc}
|
|
c88: 20002698 .word 0x20002698
|
|
|
|
00000c8c <SERCOM4_Handler>:
|
|
c8c: b510 push {r4, lr}
|
|
c8e: 4b02 ldr r3, [pc, #8] ; (c98 <SERCOM4_Handler+0xc>)
|
|
c90: 691b ldr r3, [r3, #16]
|
|
c92: 2004 movs r0, #4
|
|
c94: 4798 blx r3
|
|
c96: bd10 pop {r4, pc}
|
|
c98: 20002698 .word 0x20002698
|
|
|
|
00000c9c <SERCOM5_Handler>:
|
|
c9c: b510 push {r4, lr}
|
|
c9e: 4b02 ldr r3, [pc, #8] ; (ca8 <SERCOM5_Handler+0xc>)
|
|
ca0: 695b ldr r3, [r3, #20]
|
|
ca2: 2005 movs r0, #5
|
|
ca4: 4798 blx r3
|
|
ca6: bd10 pop {r4, pc}
|
|
ca8: 20002698 .word 0x20002698
|
|
|
|
00000cac <cpu_irq_enter_critical>:
|
|
volatile bool g_interrupt_enabled = true;
|
|
#endif
|
|
|
|
void cpu_irq_enter_critical(void)
|
|
{
|
|
if (cpu_irq_critical_section_counter == 0) {
|
|
cac: 4b0c ldr r3, [pc, #48] ; (ce0 <cpu_irq_enter_critical+0x34>)
|
|
cae: 681b ldr r3, [r3, #0]
|
|
cb0: 2b00 cmp r3, #0
|
|
cb2: d106 bne.n cc2 <cpu_irq_enter_critical+0x16>
|
|
__ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
|
|
cb4: f3ef 8310 mrs r3, PRIMASK
|
|
if (cpu_irq_is_enabled()) {
|
|
cb8: 2b00 cmp r3, #0
|
|
cba: d007 beq.n ccc <cpu_irq_enter_critical+0x20>
|
|
cpu_irq_disable();
|
|
cpu_irq_prev_interrupt_state = true;
|
|
} else {
|
|
/* Make sure the to save the prev state as false */
|
|
cpu_irq_prev_interrupt_state = false;
|
|
cbc: 2200 movs r2, #0
|
|
cbe: 4b09 ldr r3, [pc, #36] ; (ce4 <cpu_irq_enter_critical+0x38>)
|
|
cc0: 701a strb r2, [r3, #0]
|
|
}
|
|
|
|
}
|
|
|
|
cpu_irq_critical_section_counter++;
|
|
cc2: 4a07 ldr r2, [pc, #28] ; (ce0 <cpu_irq_enter_critical+0x34>)
|
|
cc4: 6813 ldr r3, [r2, #0]
|
|
cc6: 3301 adds r3, #1
|
|
cc8: 6013 str r3, [r2, #0]
|
|
}
|
|
cca: 4770 bx lr
|
|
__ASM volatile ("cpsid i" : : : "memory");
|
|
ccc: b672 cpsid i
|
|
__ASM volatile ("dmb 0xF":::"memory");
|
|
cce: f3bf 8f5f dmb sy
|
|
cpu_irq_disable();
|
|
cd2: 2200 movs r2, #0
|
|
cd4: 4b04 ldr r3, [pc, #16] ; (ce8 <cpu_irq_enter_critical+0x3c>)
|
|
cd6: 701a strb r2, [r3, #0]
|
|
cpu_irq_prev_interrupt_state = true;
|
|
cd8: 3201 adds r2, #1
|
|
cda: 4b02 ldr r3, [pc, #8] ; (ce4 <cpu_irq_enter_critical+0x38>)
|
|
cdc: 701a strb r2, [r3, #0]
|
|
cde: e7f0 b.n cc2 <cpu_irq_enter_critical+0x16>
|
|
ce0: 200026b0 .word 0x200026b0
|
|
ce4: 200026b4 .word 0x200026b4
|
|
ce8: 2000000c .word 0x2000000c
|
|
|
|
00000cec <cpu_irq_leave_critical>:
|
|
void cpu_irq_leave_critical(void)
|
|
{
|
|
/* Check if the user is trying to leave a critical section when not in a critical section */
|
|
Assert(cpu_irq_critical_section_counter > 0);
|
|
|
|
cpu_irq_critical_section_counter--;
|
|
cec: 4b08 ldr r3, [pc, #32] ; (d10 <cpu_irq_leave_critical+0x24>)
|
|
cee: 681a ldr r2, [r3, #0]
|
|
cf0: 3a01 subs r2, #1
|
|
cf2: 601a str r2, [r3, #0]
|
|
|
|
/* Only enable global interrupts when the counter reaches 0 and the state of the global interrupt flag
|
|
was enabled when entering critical state */
|
|
if ((cpu_irq_critical_section_counter == 0) && (cpu_irq_prev_interrupt_state)) {
|
|
cf4: 681b ldr r3, [r3, #0]
|
|
cf6: 2b00 cmp r3, #0
|
|
cf8: d109 bne.n d0e <cpu_irq_leave_critical+0x22>
|
|
cfa: 4b06 ldr r3, [pc, #24] ; (d14 <cpu_irq_leave_critical+0x28>)
|
|
cfc: 781b ldrb r3, [r3, #0]
|
|
cfe: 2b00 cmp r3, #0
|
|
d00: d005 beq.n d0e <cpu_irq_leave_critical+0x22>
|
|
cpu_irq_enable();
|
|
d02: 2201 movs r2, #1
|
|
d04: 4b04 ldr r3, [pc, #16] ; (d18 <cpu_irq_leave_critical+0x2c>)
|
|
d06: 701a strb r2, [r3, #0]
|
|
d08: f3bf 8f5f dmb sy
|
|
__ASM volatile ("cpsie i" : : : "memory");
|
|
d0c: b662 cpsie i
|
|
}
|
|
}
|
|
d0e: 4770 bx lr
|
|
d10: 200026b0 .word 0x200026b0
|
|
d14: 200026b4 .word 0x200026b4
|
|
d18: 2000000c .word 0x2000000c
|
|
|
|
00000d1c <system_board_init>:
|
|
void board_init(void);
|
|
# pragma weak board_init=system_board_init
|
|
#endif
|
|
|
|
void system_board_init(void)
|
|
{
|
|
d1c: b5f0 push {r4, r5, r6, r7, lr}
|
|
d1e: b083 sub sp, #12
|
|
/* Sanity check arguments */
|
|
Assert(config);
|
|
|
|
/* Default configuration values */
|
|
config->direction = PORT_PIN_DIR_INPUT;
|
|
config->input_pull = PORT_PIN_PULL_UP;
|
|
d20: ac01 add r4, sp, #4
|
|
d22: 2501 movs r5, #1
|
|
d24: 7065 strb r5, [r4, #1]
|
|
config->powersave = false;
|
|
d26: 2700 movs r7, #0
|
|
d28: 70a7 strb r7, [r4, #2]
|
|
struct port_config pin_conf;
|
|
port_get_config_defaults(&pin_conf);
|
|
|
|
/* Configure LEDs as outputs, turn them off */
|
|
pin_conf.direction = PORT_PIN_DIR_OUTPUT;
|
|
d2a: 7025 strb r5, [r4, #0]
|
|
port_pin_set_config(LED_0_PIN, &pin_conf);
|
|
d2c: 0021 movs r1, r4
|
|
d2e: 203e movs r0, #62 ; 0x3e
|
|
d30: 4e06 ldr r6, [pc, #24] ; (d4c <system_board_init+0x30>)
|
|
d32: 47b0 blx r6
|
|
PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
|
|
uint32_t pin_mask = (1UL << (gpio_pin % 32));
|
|
|
|
/* Set the pin to high or low atomically based on the requested level */
|
|
if (level) {
|
|
port_base->OUTSET.reg = pin_mask;
|
|
d34: 2280 movs r2, #128 ; 0x80
|
|
d36: 05d2 lsls r2, r2, #23
|
|
d38: 4b05 ldr r3, [pc, #20] ; (d50 <system_board_init+0x34>)
|
|
d3a: 619a str r2, [r3, #24]
|
|
port_pin_set_output_level(LED_0_PIN, LED_0_INACTIVE);
|
|
|
|
/* Set buttons as inputs */
|
|
pin_conf.direction = PORT_PIN_DIR_INPUT;
|
|
d3c: 7027 strb r7, [r4, #0]
|
|
pin_conf.input_pull = PORT_PIN_PULL_UP;
|
|
d3e: 7065 strb r5, [r4, #1]
|
|
port_pin_set_config(BUTTON_0_PIN, &pin_conf);
|
|
d40: 0021 movs r1, r4
|
|
d42: 200f movs r0, #15
|
|
d44: 47b0 blx r6
|
|
port_pin_set_output_level(AT86RFX_RST_PIN, true);
|
|
port_pin_set_output_level(AT86RFX_SLP_PIN, true);
|
|
pin_conf.direction = PORT_PIN_DIR_INPUT;
|
|
port_pin_set_config(AT86RFX_SPI_MISO, &pin_conf);
|
|
#endif
|
|
}
|
|
d46: b003 add sp, #12
|
|
d48: bdf0 pop {r4, r5, r6, r7, pc}
|
|
d4a: 46c0 nop ; (mov r8, r8)
|
|
d4c: 00000d55 .word 0x00000d55
|
|
d50: 41004480 .word 0x41004480
|
|
|
|
00000d54 <port_pin_set_config>:
|
|
* \param[in] config Configuration settings for the pin
|
|
*/
|
|
void port_pin_set_config(
|
|
const uint8_t gpio_pin,
|
|
const struct port_config *const config)
|
|
{
|
|
d54: b500 push {lr}
|
|
d56: b083 sub sp, #12
|
|
config->mux_position = SYSTEM_PINMUX_GPIO;
|
|
d58: ab01 add r3, sp, #4
|
|
d5a: 2280 movs r2, #128 ; 0x80
|
|
d5c: 701a strb r2, [r3, #0]
|
|
|
|
struct system_pinmux_config pinmux_config;
|
|
system_pinmux_get_config_defaults(&pinmux_config);
|
|
|
|
pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
|
|
pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
|
|
d5e: 780a ldrb r2, [r1, #0]
|
|
d60: 705a strb r2, [r3, #1]
|
|
pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
|
|
d62: 784a ldrb r2, [r1, #1]
|
|
d64: 709a strb r2, [r3, #2]
|
|
pinmux_config.powersave = config->powersave;
|
|
d66: 788a ldrb r2, [r1, #2]
|
|
d68: 70da strb r2, [r3, #3]
|
|
|
|
system_pinmux_pin_set_config(gpio_pin, &pinmux_config);
|
|
d6a: 0019 movs r1, r3
|
|
d6c: 4b01 ldr r3, [pc, #4] ; (d74 <port_pin_set_config+0x20>)
|
|
d6e: 4798 blx r3
|
|
}
|
|
d70: b003 add sp, #12
|
|
d72: bd00 pop {pc}
|
|
d74: 000012dd .word 0x000012dd
|
|
|
|
00000d78 <port_group_set_config>:
|
|
*/
|
|
void port_group_set_config(
|
|
PortGroup *const port,
|
|
const uint32_t mask,
|
|
const struct port_config *const config)
|
|
{
|
|
d78: b510 push {r4, lr}
|
|
d7a: b082 sub sp, #8
|
|
d7c: ab01 add r3, sp, #4
|
|
d7e: 2480 movs r4, #128 ; 0x80
|
|
d80: 701c strb r4, [r3, #0]
|
|
|
|
struct system_pinmux_config pinmux_config;
|
|
system_pinmux_get_config_defaults(&pinmux_config);
|
|
|
|
pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
|
|
pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
|
|
d82: 7814 ldrb r4, [r2, #0]
|
|
d84: 705c strb r4, [r3, #1]
|
|
pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
|
|
d86: 7854 ldrb r4, [r2, #1]
|
|
d88: 709c strb r4, [r3, #2]
|
|
pinmux_config.powersave = config->powersave;
|
|
d8a: 7892 ldrb r2, [r2, #2]
|
|
d8c: 70da strb r2, [r3, #3]
|
|
|
|
system_pinmux_group_set_config(port, mask, &pinmux_config);
|
|
d8e: 001a movs r2, r3
|
|
d90: 4b01 ldr r3, [pc, #4] ; (d98 <port_group_set_config+0x20>)
|
|
d92: 4798 blx r3
|
|
}
|
|
d94: b002 add sp, #8
|
|
d96: bd10 pop {r4, pc}
|
|
d98: 0000130d .word 0x0000130d
|
|
|
|
00000d9c <system_clock_source_get_hz>:
|
|
*
|
|
* \returns Frequency of the given clock source, in Hz.
|
|
*/
|
|
uint32_t system_clock_source_get_hz(
|
|
const enum system_clock_source clock_source)
|
|
{
|
|
d9c: b510 push {r4, lr}
|
|
switch (clock_source) {
|
|
d9e: 2808 cmp r0, #8
|
|
da0: d803 bhi.n daa <system_clock_source_get_hz+0xe>
|
|
da2: 0080 lsls r0, r0, #2
|
|
da4: 4b1c ldr r3, [pc, #112] ; (e18 <system_clock_source_get_hz+0x7c>)
|
|
da6: 581b ldr r3, [r3, r0]
|
|
da8: 469f mov pc, r3
|
|
|
|
return _system_clock_inst.dpll.frequency;
|
|
#endif
|
|
|
|
default:
|
|
return 0;
|
|
daa: 2000 movs r0, #0
|
|
dac: e032 b.n e14 <system_clock_source_get_hz+0x78>
|
|
return _system_clock_inst.xosc.frequency;
|
|
dae: 4b1b ldr r3, [pc, #108] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
db0: 6918 ldr r0, [r3, #16]
|
|
db2: e02f b.n e14 <system_clock_source_get_hz+0x78>
|
|
return 8000000UL >> SYSCTRL->OSC8M.bit.PRESC;
|
|
db4: 4b1a ldr r3, [pc, #104] ; (e20 <system_clock_source_get_hz+0x84>)
|
|
db6: 6a1b ldr r3, [r3, #32]
|
|
db8: 059b lsls r3, r3, #22
|
|
dba: 0f9b lsrs r3, r3, #30
|
|
dbc: 4819 ldr r0, [pc, #100] ; (e24 <system_clock_source_get_hz+0x88>)
|
|
dbe: 40d8 lsrs r0, r3
|
|
dc0: e028 b.n e14 <system_clock_source_get_hz+0x78>
|
|
return _system_clock_inst.xosc32k.frequency;
|
|
dc2: 4b16 ldr r3, [pc, #88] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
dc4: 6958 ldr r0, [r3, #20]
|
|
dc6: e025 b.n e14 <system_clock_source_get_hz+0x78>
|
|
if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
|
|
dc8: 4b14 ldr r3, [pc, #80] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
dca: 681b ldr r3, [r3, #0]
|
|
return 0;
|
|
dcc: 2000 movs r0, #0
|
|
if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
|
|
dce: 079b lsls r3, r3, #30
|
|
dd0: d520 bpl.n e14 <system_clock_source_get_hz+0x78>
|
|
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
|
|
dd2: 4913 ldr r1, [pc, #76] ; (e20 <system_clock_source_get_hz+0x84>)
|
|
dd4: 2210 movs r2, #16
|
|
dd6: 68cb ldr r3, [r1, #12]
|
|
dd8: 421a tst r2, r3
|
|
dda: d0fc beq.n dd6 <system_clock_source_get_hz+0x3a>
|
|
switch(_system_clock_inst.dfll.control &
|
|
ddc: 4b0f ldr r3, [pc, #60] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
dde: 681a ldr r2, [r3, #0]
|
|
de0: 2324 movs r3, #36 ; 0x24
|
|
de2: 4013 ands r3, r2
|
|
de4: 2b04 cmp r3, #4
|
|
de6: d001 beq.n dec <system_clock_source_get_hz+0x50>
|
|
return 48000000UL;
|
|
de8: 480f ldr r0, [pc, #60] ; (e28 <system_clock_source_get_hz+0x8c>)
|
|
dea: e013 b.n e14 <system_clock_source_get_hz+0x78>
|
|
return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
|
|
dec: 2000 movs r0, #0
|
|
dee: 4b0f ldr r3, [pc, #60] ; (e2c <system_clock_source_get_hz+0x90>)
|
|
df0: 4798 blx r3
|
|
(_system_clock_inst.dfll.mul & 0xffff);
|
|
df2: 4b0a ldr r3, [pc, #40] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
df4: 689b ldr r3, [r3, #8]
|
|
df6: 041b lsls r3, r3, #16
|
|
df8: 0c1b lsrs r3, r3, #16
|
|
return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
|
|
dfa: 4358 muls r0, r3
|
|
dfc: e00a b.n e14 <system_clock_source_get_hz+0x78>
|
|
if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
|
|
dfe: 2350 movs r3, #80 ; 0x50
|
|
e00: 4a07 ldr r2, [pc, #28] ; (e20 <system_clock_source_get_hz+0x84>)
|
|
e02: 5cd3 ldrb r3, [r2, r3]
|
|
return 0;
|
|
e04: 2000 movs r0, #0
|
|
if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
|
|
e06: 075b lsls r3, r3, #29
|
|
e08: d504 bpl.n e14 <system_clock_source_get_hz+0x78>
|
|
return _system_clock_inst.dpll.frequency;
|
|
e0a: 4b04 ldr r3, [pc, #16] ; (e1c <system_clock_source_get_hz+0x80>)
|
|
e0c: 68d8 ldr r0, [r3, #12]
|
|
e0e: e001 b.n e14 <system_clock_source_get_hz+0x78>
|
|
return 32768UL;
|
|
e10: 2080 movs r0, #128 ; 0x80
|
|
e12: 0200 lsls r0, r0, #8
|
|
}
|
|
}
|
|
e14: bd10 pop {r4, pc}
|
|
e16: 46c0 nop ; (mov r8, r8)
|
|
e18: 000186dc .word 0x000186dc
|
|
e1c: 200026b8 .word 0x200026b8
|
|
e20: 40000800 .word 0x40000800
|
|
e24: 007a1200 .word 0x007a1200
|
|
e28: 02dc6c00 .word 0x02dc6c00
|
|
e2c: 00001201 .word 0x00001201
|
|
|
|
00000e30 <system_clock_source_osc8m_set_config>:
|
|
*
|
|
* \param[in] config OSC8M configuration structure containing the new config
|
|
*/
|
|
void system_clock_source_osc8m_set_config(
|
|
struct system_clock_source_osc8m_config *const config)
|
|
{
|
|
e30: b570 push {r4, r5, r6, lr}
|
|
SYSCTRL_OSC8M_Type temp = SYSCTRL->OSC8M;
|
|
e32: 490c ldr r1, [pc, #48] ; (e64 <system_clock_source_osc8m_set_config+0x34>)
|
|
e34: 6a0b ldr r3, [r1, #32]
|
|
|
|
/* Use temporary struct to reduce register access */
|
|
temp.bit.PRESC = config->prescaler;
|
|
e36: 7804 ldrb r4, [r0, #0]
|
|
temp.bit.ONDEMAND = config->on_demand;
|
|
e38: 7885 ldrb r5, [r0, #2]
|
|
temp.bit.RUNSTDBY = config->run_in_standby;
|
|
|
|
SYSCTRL->OSC8M = temp;
|
|
e3a: 7840 ldrb r0, [r0, #1]
|
|
e3c: 2201 movs r2, #1
|
|
e3e: 4010 ands r0, r2
|
|
e40: 0180 lsls r0, r0, #6
|
|
e42: 2640 movs r6, #64 ; 0x40
|
|
e44: 43b3 bics r3, r6
|
|
e46: 4303 orrs r3, r0
|
|
e48: 402a ands r2, r5
|
|
e4a: 01d2 lsls r2, r2, #7
|
|
e4c: 2080 movs r0, #128 ; 0x80
|
|
e4e: 4383 bics r3, r0
|
|
e50: 4313 orrs r3, r2
|
|
e52: 2203 movs r2, #3
|
|
e54: 4022 ands r2, r4
|
|
e56: 0212 lsls r2, r2, #8
|
|
e58: 4803 ldr r0, [pc, #12] ; (e68 <system_clock_source_osc8m_set_config+0x38>)
|
|
e5a: 4003 ands r3, r0
|
|
e5c: 4313 orrs r3, r2
|
|
e5e: 620b str r3, [r1, #32]
|
|
}
|
|
e60: bd70 pop {r4, r5, r6, pc}
|
|
e62: 46c0 nop ; (mov r8, r8)
|
|
e64: 40000800 .word 0x40000800
|
|
e68: fffffcff .word 0xfffffcff
|
|
|
|
00000e6c <system_clock_source_enable>:
|
|
* device
|
|
*/
|
|
enum status_code system_clock_source_enable(
|
|
const enum system_clock_source clock_source)
|
|
{
|
|
switch (clock_source) {
|
|
e6c: 2808 cmp r0, #8
|
|
e6e: d803 bhi.n e78 <system_clock_source_enable+0xc>
|
|
e70: 0080 lsls r0, r0, #2
|
|
e72: 4b25 ldr r3, [pc, #148] ; (f08 <system_clock_source_enable+0x9c>)
|
|
e74: 581b ldr r3, [r3, r0]
|
|
e76: 469f mov pc, r3
|
|
/* Always enabled */
|
|
return STATUS_OK;
|
|
|
|
default:
|
|
Assert(false);
|
|
return STATUS_ERR_INVALID_ARG;
|
|
e78: 2017 movs r0, #23
|
|
e7a: e044 b.n f06 <system_clock_source_enable+0x9a>
|
|
SYSCTRL->OSC8M.reg |= SYSCTRL_OSC8M_ENABLE;
|
|
e7c: 4a23 ldr r2, [pc, #140] ; (f0c <system_clock_source_enable+0xa0>)
|
|
e7e: 6a13 ldr r3, [r2, #32]
|
|
e80: 2102 movs r1, #2
|
|
e82: 430b orrs r3, r1
|
|
e84: 6213 str r3, [r2, #32]
|
|
return STATUS_OK;
|
|
e86: 2000 movs r0, #0
|
|
e88: e03d b.n f06 <system_clock_source_enable+0x9a>
|
|
SYSCTRL->OSC32K.reg |= SYSCTRL_OSC32K_ENABLE;
|
|
e8a: 4a20 ldr r2, [pc, #128] ; (f0c <system_clock_source_enable+0xa0>)
|
|
e8c: 6993 ldr r3, [r2, #24]
|
|
e8e: 2102 movs r1, #2
|
|
e90: 430b orrs r3, r1
|
|
e92: 6193 str r3, [r2, #24]
|
|
}
|
|
|
|
return STATUS_OK;
|
|
e94: 2000 movs r0, #0
|
|
break;
|
|
e96: e036 b.n f06 <system_clock_source_enable+0x9a>
|
|
SYSCTRL->XOSC.reg |= SYSCTRL_XOSC_ENABLE;
|
|
e98: 4a1c ldr r2, [pc, #112] ; (f0c <system_clock_source_enable+0xa0>)
|
|
e9a: 8a13 ldrh r3, [r2, #16]
|
|
e9c: 2102 movs r1, #2
|
|
e9e: 430b orrs r3, r1
|
|
ea0: 8213 strh r3, [r2, #16]
|
|
return STATUS_OK;
|
|
ea2: 2000 movs r0, #0
|
|
break;
|
|
ea4: e02f b.n f06 <system_clock_source_enable+0x9a>
|
|
SYSCTRL->XOSC32K.reg |= SYSCTRL_XOSC32K_ENABLE;
|
|
ea6: 4a19 ldr r2, [pc, #100] ; (f0c <system_clock_source_enable+0xa0>)
|
|
ea8: 8a93 ldrh r3, [r2, #20]
|
|
eaa: 2102 movs r1, #2
|
|
eac: 430b orrs r3, r1
|
|
eae: 8293 strh r3, [r2, #20]
|
|
return STATUS_OK;
|
|
eb0: 2000 movs r0, #0
|
|
break;
|
|
eb2: e028 b.n f06 <system_clock_source_enable+0x9a>
|
|
_system_clock_inst.dfll.control |= SYSCTRL_DFLLCTRL_ENABLE;
|
|
eb4: 4916 ldr r1, [pc, #88] ; (f10 <system_clock_source_enable+0xa4>)
|
|
eb6: 680b ldr r3, [r1, #0]
|
|
eb8: 2202 movs r2, #2
|
|
eba: 4313 orrs r3, r2
|
|
ebc: 600b str r3, [r1, #0]
|
|
SYSCTRL->DFLLCTRL.reg = SYSCTRL_DFLLCTRL_ENABLE;
|
|
ebe: 4b13 ldr r3, [pc, #76] ; (f0c <system_clock_source_enable+0xa0>)
|
|
ec0: 849a strh r2, [r3, #36] ; 0x24
|
|
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
|
|
ec2: 0019 movs r1, r3
|
|
ec4: 320e adds r2, #14
|
|
ec6: 68cb ldr r3, [r1, #12]
|
|
ec8: 421a tst r2, r3
|
|
eca: d0fc beq.n ec6 <system_clock_source_enable+0x5a>
|
|
SYSCTRL->DFLLMUL.reg = _system_clock_inst.dfll.mul;
|
|
ecc: 4a10 ldr r2, [pc, #64] ; (f10 <system_clock_source_enable+0xa4>)
|
|
ece: 6891 ldr r1, [r2, #8]
|
|
ed0: 4b0e ldr r3, [pc, #56] ; (f0c <system_clock_source_enable+0xa0>)
|
|
ed2: 62d9 str r1, [r3, #44] ; 0x2c
|
|
SYSCTRL->DFLLVAL.reg = _system_clock_inst.dfll.val;
|
|
ed4: 6852 ldr r2, [r2, #4]
|
|
ed6: 629a str r2, [r3, #40] ; 0x28
|
|
SYSCTRL->DFLLCTRL.reg = 0;
|
|
ed8: 2200 movs r2, #0
|
|
eda: 849a strh r2, [r3, #36] ; 0x24
|
|
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
|
|
edc: 0019 movs r1, r3
|
|
ede: 3210 adds r2, #16
|
|
ee0: 68cb ldr r3, [r1, #12]
|
|
ee2: 421a tst r2, r3
|
|
ee4: d0fc beq.n ee0 <system_clock_source_enable+0x74>
|
|
SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
|
|
ee6: 4b0a ldr r3, [pc, #40] ; (f10 <system_clock_source_enable+0xa4>)
|
|
ee8: 681b ldr r3, [r3, #0]
|
|
eea: b29b uxth r3, r3
|
|
eec: 4a07 ldr r2, [pc, #28] ; (f0c <system_clock_source_enable+0xa0>)
|
|
eee: 8493 strh r3, [r2, #36] ; 0x24
|
|
return STATUS_OK;
|
|
ef0: 2000 movs r0, #0
|
|
ef2: e008 b.n f06 <system_clock_source_enable+0x9a>
|
|
SYSCTRL->DPLLCTRLA.reg |= SYSCTRL_DPLLCTRLA_ENABLE;
|
|
ef4: 4905 ldr r1, [pc, #20] ; (f0c <system_clock_source_enable+0xa0>)
|
|
ef6: 2244 movs r2, #68 ; 0x44
|
|
ef8: 5c8b ldrb r3, [r1, r2]
|
|
efa: 2002 movs r0, #2
|
|
efc: 4303 orrs r3, r0
|
|
efe: 548b strb r3, [r1, r2]
|
|
return STATUS_OK;
|
|
f00: 2000 movs r0, #0
|
|
break;
|
|
f02: e000 b.n f06 <system_clock_source_enable+0x9a>
|
|
return STATUS_OK;
|
|
f04: 2000 movs r0, #0
|
|
}
|
|
f06: 4770 bx lr
|
|
f08: 00018700 .word 0x00018700
|
|
f0c: 40000800 .word 0x40000800
|
|
f10: 200026b8 .word 0x200026b8
|
|
|
|
00000f14 <system_clock_init>:
|
|
* \note OSC8M is always enabled and if user selects other clocks for GCLK generators,
|
|
* the OSC8M default enable can be disabled after system_clock_init. Make sure the
|
|
* clock switch successfully before disabling OSC8M.
|
|
*/
|
|
void system_clock_init(void)
|
|
{
|
|
f14: b530 push {r4, r5, lr}
|
|
f16: b085 sub sp, #20
|
|
/* Various bits in the INTFLAG register can be set to one at startup.
|
|
This will ensure that these bits are cleared */
|
|
SYSCTRL->INTFLAG.reg = SYSCTRL_INTFLAG_BOD33RDY | SYSCTRL_INTFLAG_BOD33DET |
|
|
f18: 22c2 movs r2, #194 ; 0xc2
|
|
f1a: 00d2 lsls r2, r2, #3
|
|
f1c: 4b1a ldr r3, [pc, #104] ; (f88 <system_clock_init+0x74>)
|
|
f1e: 609a str r2, [r3, #8]
|
|
static inline void system_flash_set_waitstates(uint8_t wait_states)
|
|
{
|
|
Assert(NVMCTRL_CTRLB_RWS((uint32_t)wait_states) ==
|
|
((uint32_t)wait_states << NVMCTRL_CTRLB_RWS_Pos));
|
|
|
|
NVMCTRL->CTRLB.bit.RWS = wait_states;
|
|
f20: 4a1a ldr r2, [pc, #104] ; (f8c <system_clock_init+0x78>)
|
|
f22: 6853 ldr r3, [r2, #4]
|
|
f24: 211e movs r1, #30
|
|
f26: 438b bics r3, r1
|
|
f28: 6053 str r3, [r2, #4]
|
|
gclk_conf.source_generator = GCLK_GENERATOR_1;
|
|
f2a: 2301 movs r3, #1
|
|
f2c: 466a mov r2, sp
|
|
f2e: 7013 strb r3, [r2, #0]
|
|
for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
|
|
f30: 2400 movs r4, #0
|
|
system_gclk_chan_set_config(gclk_id, &gclk_conf);
|
|
f32: 4d17 ldr r5, [pc, #92] ; (f90 <system_clock_init+0x7c>)
|
|
f34: b2e0 uxtb r0, r4
|
|
f36: 4669 mov r1, sp
|
|
f38: 47a8 blx r5
|
|
for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
|
|
f3a: 3401 adds r4, #1
|
|
f3c: 2c25 cmp r4, #37 ; 0x25
|
|
f3e: d1f9 bne.n f34 <system_clock_init+0x20>
|
|
config->run_in_standby = false;
|
|
f40: a803 add r0, sp, #12
|
|
f42: 2400 movs r4, #0
|
|
f44: 7044 strb r4, [r0, #1]
|
|
config->on_demand = true;
|
|
f46: 2501 movs r5, #1
|
|
f48: 7085 strb r5, [r0, #2]
|
|
|
|
/* OSC8M */
|
|
struct system_clock_source_osc8m_config osc8m_conf;
|
|
system_clock_source_osc8m_get_config_defaults(&osc8m_conf);
|
|
|
|
osc8m_conf.prescaler = CONF_CLOCK_OSC8M_PRESCALER;
|
|
f4a: 7004 strb r4, [r0, #0]
|
|
osc8m_conf.on_demand = CONF_CLOCK_OSC8M_ON_DEMAND;
|
|
osc8m_conf.run_in_standby = CONF_CLOCK_OSC8M_RUN_IN_STANDBY;
|
|
|
|
system_clock_source_osc8m_set_config(&osc8m_conf);
|
|
f4c: 4b11 ldr r3, [pc, #68] ; (f94 <system_clock_init+0x80>)
|
|
f4e: 4798 blx r3
|
|
system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC8M);
|
|
f50: 2006 movs r0, #6
|
|
f52: 4b11 ldr r3, [pc, #68] ; (f98 <system_clock_init+0x84>)
|
|
f54: 4798 blx r3
|
|
|
|
|
|
/* GCLK */
|
|
#if CONF_CLOCK_CONFIGURE_GCLK == true
|
|
system_gclk_init();
|
|
f56: 4b11 ldr r3, [pc, #68] ; (f9c <system_clock_init+0x88>)
|
|
f58: 4798 blx r3
|
|
PM->CPUSEL.reg = (uint32_t)divider;
|
|
f5a: 4b11 ldr r3, [pc, #68] ; (fa0 <system_clock_init+0x8c>)
|
|
f5c: 721c strb r4, [r3, #8]
|
|
PM->APBASEL.reg = (uint32_t)divider;
|
|
f5e: 725c strb r4, [r3, #9]
|
|
PM->APBBSEL.reg = (uint32_t)divider;
|
|
f60: 729c strb r4, [r3, #10]
|
|
PM->APBCSEL.reg = (uint32_t)divider;
|
|
f62: 72dc strb r4, [r3, #11]
|
|
{
|
|
/* Sanity check arguments */
|
|
Assert(config);
|
|
|
|
/* Default configuration values */
|
|
config->division_factor = 1;
|
|
f64: 9501 str r5, [sp, #4]
|
|
config->high_when_disabled = false;
|
|
f66: 466b mov r3, sp
|
|
f68: 705c strb r4, [r3, #1]
|
|
#if SAML21 || SAML22 || SAMR30 || SAMR34 || SAMR35
|
|
config->source_clock = GCLK_SOURCE_OSC16M;
|
|
#elif (SAMC20) || (SAMC21)
|
|
config->source_clock = GCLK_SOURCE_OSC48M;
|
|
#else
|
|
config->source_clock = GCLK_SOURCE_OSC8M;
|
|
f6a: 2306 movs r3, #6
|
|
f6c: 466a mov r2, sp
|
|
f6e: 7013 strb r3, [r2, #0]
|
|
#endif
|
|
config->run_in_standby = false;
|
|
f70: 7214 strb r4, [r2, #8]
|
|
config->output_enable = false;
|
|
f72: 7254 strb r4, [r2, #9]
|
|
system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBC, CONF_CLOCK_APBC_DIVIDER);
|
|
|
|
/* GCLK 0 */
|
|
#if CONF_CLOCK_CONFIGURE_GCLK == true
|
|
/* Configure the main GCLK last as it might depend on other generators */
|
|
_CONF_CLOCK_GCLK_CONFIG(0, ~);
|
|
f74: 4669 mov r1, sp
|
|
f76: 2000 movs r0, #0
|
|
f78: 4b0a ldr r3, [pc, #40] ; (fa4 <system_clock_init+0x90>)
|
|
f7a: 4798 blx r3
|
|
f7c: 2000 movs r0, #0
|
|
f7e: 4b0a ldr r3, [pc, #40] ; (fa8 <system_clock_init+0x94>)
|
|
f80: 4798 blx r3
|
|
#endif
|
|
}
|
|
f82: b005 add sp, #20
|
|
f84: bd30 pop {r4, r5, pc}
|
|
f86: 46c0 nop ; (mov r8, r8)
|
|
f88: 40000800 .word 0x40000800
|
|
f8c: 41004000 .word 0x41004000
|
|
f90: 000011e5 .word 0x000011e5
|
|
f94: 00000e31 .word 0x00000e31
|
|
f98: 00000e6d .word 0x00000e6d
|
|
f9c: 00000fad .word 0x00000fad
|
|
fa0: 40000400 .word 0x40000400
|
|
fa4: 00000fd1 .word 0x00000fd1
|
|
fa8: 00001089 .word 0x00001089
|
|
|
|
00000fac <system_gclk_init>:
|
|
PM->APBAMASK.reg |= mask;
|
|
fac: 4a06 ldr r2, [pc, #24] ; (fc8 <system_gclk_init+0x1c>)
|
|
fae: 6993 ldr r3, [r2, #24]
|
|
fb0: 2108 movs r1, #8
|
|
fb2: 430b orrs r3, r1
|
|
fb4: 6193 str r3, [r2, #24]
|
|
{
|
|
/* Turn on the digital interface clock */
|
|
system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBA, PM_APBAMASK_GCLK);
|
|
|
|
/* Software reset the module to ensure it is re-initialized correctly */
|
|
GCLK->CTRL.reg = GCLK_CTRL_SWRST;
|
|
fb6: 2201 movs r2, #1
|
|
fb8: 4b04 ldr r3, [pc, #16] ; (fcc <system_gclk_init+0x20>)
|
|
fba: 701a strb r2, [r3, #0]
|
|
while (GCLK->CTRL.reg & GCLK_CTRL_SWRST) {
|
|
fbc: 0019 movs r1, r3
|
|
fbe: 780b ldrb r3, [r1, #0]
|
|
fc0: 4213 tst r3, r2
|
|
fc2: d1fc bne.n fbe <system_gclk_init+0x12>
|
|
/* Wait for reset to complete */
|
|
}
|
|
}
|
|
fc4: 4770 bx lr
|
|
fc6: 46c0 nop ; (mov r8, r8)
|
|
fc8: 40000400 .word 0x40000400
|
|
fcc: 40000c00 .word 0x40000c00
|
|
|
|
00000fd0 <system_gclk_gen_set_config>:
|
|
* \param[in] config Configuration settings for the generator
|
|
*/
|
|
void system_gclk_gen_set_config(
|
|
const uint8_t generator,
|
|
struct system_gclk_gen_config *const config)
|
|
{
|
|
fd0: b570 push {r4, r5, r6, lr}
|
|
fd2: 0006 movs r6, r0
|
|
/* Sanity check arguments */
|
|
Assert(config);
|
|
|
|
/* Cache new register configurations to minimize sync requirements. */
|
|
uint32_t new_genctrl_config = (generator << GCLK_GENCTRL_ID_Pos);
|
|
fd4: 0004 movs r4, r0
|
|
uint32_t new_gendiv_config = (generator << GCLK_GENDIV_ID_Pos);
|
|
|
|
/* Select the requested source clock for the generator */
|
|
new_genctrl_config |= config->source_clock << GCLK_GENCTRL_SRC_Pos;
|
|
fd6: 780d ldrb r5, [r1, #0]
|
|
fd8: 022d lsls r5, r5, #8
|
|
fda: 4305 orrs r5, r0
|
|
|
|
/* Configure the clock to be either high or low when disabled */
|
|
if (config->high_when_disabled) {
|
|
fdc: 784b ldrb r3, [r1, #1]
|
|
fde: 2b00 cmp r3, #0
|
|
fe0: d002 beq.n fe8 <system_gclk_gen_set_config+0x18>
|
|
new_genctrl_config |= GCLK_GENCTRL_OOV;
|
|
fe2: 2380 movs r3, #128 ; 0x80
|
|
fe4: 02db lsls r3, r3, #11
|
|
fe6: 431d orrs r5, r3
|
|
}
|
|
|
|
/* Configure if the clock output to I/O pin should be enabled. */
|
|
if (config->output_enable) {
|
|
fe8: 7a4b ldrb r3, [r1, #9]
|
|
fea: 2b00 cmp r3, #0
|
|
fec: d002 beq.n ff4 <system_gclk_gen_set_config+0x24>
|
|
new_genctrl_config |= GCLK_GENCTRL_OE;
|
|
fee: 2380 movs r3, #128 ; 0x80
|
|
ff0: 031b lsls r3, r3, #12
|
|
ff2: 431d orrs r5, r3
|
|
}
|
|
|
|
/* Set division factor */
|
|
if (config->division_factor > 1) {
|
|
ff4: 6848 ldr r0, [r1, #4]
|
|
ff6: 2801 cmp r0, #1
|
|
ff8: d910 bls.n 101c <system_gclk_gen_set_config+0x4c>
|
|
/* Check if division is a power of two */
|
|
if (((config->division_factor & (config->division_factor - 1)) == 0)) {
|
|
ffa: 1e43 subs r3, r0, #1
|
|
ffc: 4218 tst r0, r3
|
|
ffe: d134 bne.n 106a <system_gclk_gen_set_config+0x9a>
|
|
* register */
|
|
|
|
uint32_t div2_count = 0;
|
|
|
|
uint32_t mask;
|
|
for (mask = (1UL << 1); mask < config->division_factor;
|
|
1000: 2802 cmp r0, #2
|
|
1002: d930 bls.n 1066 <system_gclk_gen_set_config+0x96>
|
|
1004: 2302 movs r3, #2
|
|
1006: 2200 movs r2, #0
|
|
mask <<= 1) {
|
|
div2_count++;
|
|
1008: 3201 adds r2, #1
|
|
mask <<= 1) {
|
|
100a: 005b lsls r3, r3, #1
|
|
for (mask = (1UL << 1); mask < config->division_factor;
|
|
100c: 4298 cmp r0, r3
|
|
100e: d8fb bhi.n 1008 <system_gclk_gen_set_config+0x38>
|
|
}
|
|
|
|
/* Set binary divider power of 2 division factor */
|
|
new_gendiv_config |= div2_count << GCLK_GENDIV_DIV_Pos;
|
|
1010: 0212 lsls r2, r2, #8
|
|
1012: 4332 orrs r2, r6
|
|
1014: 0014 movs r4, r2
|
|
new_genctrl_config |= GCLK_GENCTRL_DIVSEL;
|
|
1016: 2380 movs r3, #128 ; 0x80
|
|
1018: 035b lsls r3, r3, #13
|
|
101a: 431d orrs r5, r3
|
|
}
|
|
|
|
}
|
|
|
|
/* Enable or disable the clock in standby mode */
|
|
if (config->run_in_standby) {
|
|
101c: 7a0b ldrb r3, [r1, #8]
|
|
101e: 2b00 cmp r3, #0
|
|
1020: d002 beq.n 1028 <system_gclk_gen_set_config+0x58>
|
|
new_genctrl_config |= GCLK_GENCTRL_RUNSTDBY;
|
|
1022: 2380 movs r3, #128 ; 0x80
|
|
1024: 039b lsls r3, r3, #14
|
|
1026: 431d orrs r5, r3
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
1028: 4a13 ldr r2, [pc, #76] ; (1078 <system_gclk_gen_set_config+0xa8>)
|
|
102a: 7853 ldrb r3, [r2, #1]
|
|
}
|
|
|
|
while (system_gclk_is_syncing()) {
|
|
102c: b25b sxtb r3, r3
|
|
102e: 2b00 cmp r3, #0
|
|
1030: dbfb blt.n 102a <system_gclk_gen_set_config+0x5a>
|
|
cpu_irq_enter_critical();
|
|
1032: 4b12 ldr r3, [pc, #72] ; (107c <system_gclk_gen_set_config+0xac>)
|
|
1034: 4798 blx r3
|
|
};
|
|
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the correct generator */
|
|
*((uint8_t*)&GCLK->GENDIV.reg) = generator;
|
|
1036: 4b12 ldr r3, [pc, #72] ; (1080 <system_gclk_gen_set_config+0xb0>)
|
|
1038: 701e strb r6, [r3, #0]
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
103a: 4a0f ldr r2, [pc, #60] ; (1078 <system_gclk_gen_set_config+0xa8>)
|
|
103c: 7853 ldrb r3, [r2, #1]
|
|
|
|
/* Write the new generator configuration */
|
|
while (system_gclk_is_syncing()) {
|
|
103e: b25b sxtb r3, r3
|
|
1040: 2b00 cmp r3, #0
|
|
1042: dbfb blt.n 103c <system_gclk_gen_set_config+0x6c>
|
|
/* Wait for synchronization */
|
|
};
|
|
GCLK->GENDIV.reg = new_gendiv_config;
|
|
1044: 4b0c ldr r3, [pc, #48] ; (1078 <system_gclk_gen_set_config+0xa8>)
|
|
1046: 609c str r4, [r3, #8]
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
1048: 001a movs r2, r3
|
|
104a: 7853 ldrb r3, [r2, #1]
|
|
|
|
while (system_gclk_is_syncing()) {
|
|
104c: b25b sxtb r3, r3
|
|
104e: 2b00 cmp r3, #0
|
|
1050: dbfb blt.n 104a <system_gclk_gen_set_config+0x7a>
|
|
/* Wait for synchronization */
|
|
};
|
|
GCLK->GENCTRL.reg = new_genctrl_config | (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
|
|
1052: 4a09 ldr r2, [pc, #36] ; (1078 <system_gclk_gen_set_config+0xa8>)
|
|
1054: 6853 ldr r3, [r2, #4]
|
|
1056: 2180 movs r1, #128 ; 0x80
|
|
1058: 0249 lsls r1, r1, #9
|
|
105a: 400b ands r3, r1
|
|
105c: 431d orrs r5, r3
|
|
105e: 6055 str r5, [r2, #4]
|
|
cpu_irq_leave_critical();
|
|
1060: 4b08 ldr r3, [pc, #32] ; (1084 <system_gclk_gen_set_config+0xb4>)
|
|
1062: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
}
|
|
1064: bd70 pop {r4, r5, r6, pc}
|
|
for (mask = (1UL << 1); mask < config->division_factor;
|
|
1066: 2200 movs r2, #0
|
|
1068: e7d2 b.n 1010 <system_gclk_gen_set_config+0x40>
|
|
(config->division_factor) << GCLK_GENDIV_DIV_Pos;
|
|
106a: 0204 lsls r4, r0, #8
|
|
new_gendiv_config |=
|
|
106c: 4334 orrs r4, r6
|
|
new_genctrl_config |= GCLK_GENCTRL_IDC;
|
|
106e: 2380 movs r3, #128 ; 0x80
|
|
1070: 029b lsls r3, r3, #10
|
|
1072: 431d orrs r5, r3
|
|
1074: e7d2 b.n 101c <system_gclk_gen_set_config+0x4c>
|
|
1076: 46c0 nop ; (mov r8, r8)
|
|
1078: 40000c00 .word 0x40000c00
|
|
107c: 00000cad .word 0x00000cad
|
|
1080: 40000c08 .word 0x40000c08
|
|
1084: 00000ced .word 0x00000ced
|
|
|
|
00001088 <system_gclk_gen_enable>:
|
|
*
|
|
* \param[in] generator Generic Clock Generator index to enable
|
|
*/
|
|
void system_gclk_gen_enable(
|
|
const uint8_t generator)
|
|
{
|
|
1088: b510 push {r4, lr}
|
|
108a: 0004 movs r4, r0
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
108c: 4a0b ldr r2, [pc, #44] ; (10bc <system_gclk_gen_enable+0x34>)
|
|
108e: 7853 ldrb r3, [r2, #1]
|
|
while (system_gclk_is_syncing()) {
|
|
1090: b25b sxtb r3, r3
|
|
1092: 2b00 cmp r3, #0
|
|
1094: dbfb blt.n 108e <system_gclk_gen_enable+0x6>
|
|
cpu_irq_enter_critical();
|
|
1096: 4b0a ldr r3, [pc, #40] ; (10c0 <system_gclk_gen_enable+0x38>)
|
|
1098: 4798 blx r3
|
|
};
|
|
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the requested generator */
|
|
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
|
|
109a: 4b0a ldr r3, [pc, #40] ; (10c4 <system_gclk_gen_enable+0x3c>)
|
|
109c: 701c strb r4, [r3, #0]
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
109e: 4a07 ldr r2, [pc, #28] ; (10bc <system_gclk_gen_enable+0x34>)
|
|
10a0: 7853 ldrb r3, [r2, #1]
|
|
while (system_gclk_is_syncing()) {
|
|
10a2: b25b sxtb r3, r3
|
|
10a4: 2b00 cmp r3, #0
|
|
10a6: dbfb blt.n 10a0 <system_gclk_gen_enable+0x18>
|
|
/* Wait for synchronization */
|
|
};
|
|
|
|
/* Enable generator */
|
|
GCLK->GENCTRL.reg |= GCLK_GENCTRL_GENEN;
|
|
10a8: 4a04 ldr r2, [pc, #16] ; (10bc <system_gclk_gen_enable+0x34>)
|
|
10aa: 6851 ldr r1, [r2, #4]
|
|
10ac: 2380 movs r3, #128 ; 0x80
|
|
10ae: 025b lsls r3, r3, #9
|
|
10b0: 430b orrs r3, r1
|
|
10b2: 6053 str r3, [r2, #4]
|
|
cpu_irq_leave_critical();
|
|
10b4: 4b04 ldr r3, [pc, #16] ; (10c8 <system_gclk_gen_enable+0x40>)
|
|
10b6: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
}
|
|
10b8: bd10 pop {r4, pc}
|
|
10ba: 46c0 nop ; (mov r8, r8)
|
|
10bc: 40000c00 .word 0x40000c00
|
|
10c0: 00000cad .word 0x00000cad
|
|
10c4: 40000c04 .word 0x40000c04
|
|
10c8: 00000ced .word 0x00000ced
|
|
|
|
000010cc <system_gclk_gen_get_hz>:
|
|
*
|
|
* \return The frequency of the generic clock generator, in Hz.
|
|
*/
|
|
uint32_t system_gclk_gen_get_hz(
|
|
const uint8_t generator)
|
|
{
|
|
10cc: b570 push {r4, r5, r6, lr}
|
|
10ce: 0004 movs r4, r0
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
10d0: 4a1a ldr r2, [pc, #104] ; (113c <system_gclk_gen_get_hz+0x70>)
|
|
10d2: 7853 ldrb r3, [r2, #1]
|
|
while (system_gclk_is_syncing()) {
|
|
10d4: b25b sxtb r3, r3
|
|
10d6: 2b00 cmp r3, #0
|
|
10d8: dbfb blt.n 10d2 <system_gclk_gen_get_hz+0x6>
|
|
cpu_irq_enter_critical();
|
|
10da: 4b19 ldr r3, [pc, #100] ; (1140 <system_gclk_gen_get_hz+0x74>)
|
|
10dc: 4798 blx r3
|
|
};
|
|
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the appropriate generator */
|
|
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
|
|
10de: 4b19 ldr r3, [pc, #100] ; (1144 <system_gclk_gen_get_hz+0x78>)
|
|
10e0: 701c strb r4, [r3, #0]
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
10e2: 4a16 ldr r2, [pc, #88] ; (113c <system_gclk_gen_get_hz+0x70>)
|
|
10e4: 7853 ldrb r3, [r2, #1]
|
|
while (system_gclk_is_syncing()) {
|
|
10e6: b25b sxtb r3, r3
|
|
10e8: 2b00 cmp r3, #0
|
|
10ea: dbfb blt.n 10e4 <system_gclk_gen_get_hz+0x18>
|
|
/* Wait for synchronization */
|
|
};
|
|
|
|
/* Get the frequency of the source connected to the GCLK generator */
|
|
uint32_t gen_input_hz = system_clock_source_get_hz(
|
|
(enum system_clock_source)GCLK->GENCTRL.bit.SRC);
|
|
10ec: 4e13 ldr r6, [pc, #76] ; (113c <system_gclk_gen_get_hz+0x70>)
|
|
10ee: 6870 ldr r0, [r6, #4]
|
|
10f0: 04c0 lsls r0, r0, #19
|
|
10f2: 0ec0 lsrs r0, r0, #27
|
|
uint32_t gen_input_hz = system_clock_source_get_hz(
|
|
10f4: 4b14 ldr r3, [pc, #80] ; (1148 <system_gclk_gen_get_hz+0x7c>)
|
|
10f6: 4798 blx r3
|
|
10f8: 0005 movs r5, r0
|
|
|
|
*((uint8_t*)&GCLK->GENCTRL.reg) = generator;
|
|
10fa: 4b12 ldr r3, [pc, #72] ; (1144 <system_gclk_gen_get_hz+0x78>)
|
|
10fc: 701c strb r4, [r3, #0]
|
|
|
|
uint8_t divsel = GCLK->GENCTRL.bit.DIVSEL;
|
|
10fe: 6876 ldr r6, [r6, #4]
|
|
1100: 02f6 lsls r6, r6, #11
|
|
1102: 0ff6 lsrs r6, r6, #31
|
|
|
|
/* Select the appropriate generator division register */
|
|
*((uint8_t*)&GCLK->GENDIV.reg) = generator;
|
|
1104: 4b11 ldr r3, [pc, #68] ; (114c <system_gclk_gen_get_hz+0x80>)
|
|
1106: 701c strb r4, [r3, #0]
|
|
if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
|
|
1108: 4a0c ldr r2, [pc, #48] ; (113c <system_gclk_gen_get_hz+0x70>)
|
|
110a: 7853 ldrb r3, [r2, #1]
|
|
while (system_gclk_is_syncing()) {
|
|
110c: b25b sxtb r3, r3
|
|
110e: 2b00 cmp r3, #0
|
|
1110: dbfb blt.n 110a <system_gclk_gen_get_hz+0x3e>
|
|
/* Wait for synchronization */
|
|
};
|
|
|
|
uint32_t divider = GCLK->GENDIV.bit.DIV;
|
|
1112: 4b0a ldr r3, [pc, #40] ; (113c <system_gclk_gen_get_hz+0x70>)
|
|
1114: 689c ldr r4, [r3, #8]
|
|
1116: 0224 lsls r4, r4, #8
|
|
1118: 0c24 lsrs r4, r4, #16
|
|
cpu_irq_leave_critical();
|
|
111a: 4b0d ldr r3, [pc, #52] ; (1150 <system_gclk_gen_get_hz+0x84>)
|
|
111c: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
|
|
/* Check if the generator is using fractional or binary division */
|
|
if (!divsel && divider > 1) {
|
|
111e: 2e00 cmp r6, #0
|
|
1120: d107 bne.n 1132 <system_gclk_gen_get_hz+0x66>
|
|
1122: 2c01 cmp r4, #1
|
|
1124: d907 bls.n 1136 <system_gclk_gen_get_hz+0x6a>
|
|
gen_input_hz /= divider;
|
|
1126: 0021 movs r1, r4
|
|
1128: 0028 movs r0, r5
|
|
112a: 4b0a ldr r3, [pc, #40] ; (1154 <system_gclk_gen_get_hz+0x88>)
|
|
112c: 4798 blx r3
|
|
112e: 0005 movs r5, r0
|
|
1130: e001 b.n 1136 <system_gclk_gen_get_hz+0x6a>
|
|
} else if (divsel) {
|
|
gen_input_hz >>= (divider+1);
|
|
1132: 3401 adds r4, #1
|
|
1134: 40e5 lsrs r5, r4
|
|
}
|
|
|
|
return gen_input_hz;
|
|
}
|
|
1136: 0028 movs r0, r5
|
|
1138: bd70 pop {r4, r5, r6, pc}
|
|
113a: 46c0 nop ; (mov r8, r8)
|
|
113c: 40000c00 .word 0x40000c00
|
|
1140: 00000cad .word 0x00000cad
|
|
1144: 40000c04 .word 0x40000c04
|
|
1148: 00000d9d .word 0x00000d9d
|
|
114c: 40000c08 .word 0x40000c08
|
|
1150: 00000ced .word 0x00000ced
|
|
1154: 00017881 .word 0x00017881
|
|
|
|
00001158 <system_gclk_chan_enable>:
|
|
*
|
|
* \param[in] channel Generic Clock channel to enable
|
|
*/
|
|
void system_gclk_chan_enable(
|
|
const uint8_t channel)
|
|
{
|
|
1158: b510 push {r4, lr}
|
|
115a: 0004 movs r4, r0
|
|
cpu_irq_enter_critical();
|
|
115c: 4b06 ldr r3, [pc, #24] ; (1178 <system_gclk_chan_enable+0x20>)
|
|
115e: 4798 blx r3
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the requested generator channel */
|
|
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
|
|
1160: 4b06 ldr r3, [pc, #24] ; (117c <system_gclk_chan_enable+0x24>)
|
|
1162: 701c strb r4, [r3, #0]
|
|
|
|
/* Enable the generic clock */
|
|
GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_CLKEN;
|
|
1164: 4a06 ldr r2, [pc, #24] ; (1180 <system_gclk_chan_enable+0x28>)
|
|
1166: 8853 ldrh r3, [r2, #2]
|
|
1168: 2180 movs r1, #128 ; 0x80
|
|
116a: 01c9 lsls r1, r1, #7
|
|
116c: 430b orrs r3, r1
|
|
116e: 8053 strh r3, [r2, #2]
|
|
cpu_irq_leave_critical();
|
|
1170: 4b04 ldr r3, [pc, #16] ; (1184 <system_gclk_chan_enable+0x2c>)
|
|
1172: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
}
|
|
1174: bd10 pop {r4, pc}
|
|
1176: 46c0 nop ; (mov r8, r8)
|
|
1178: 00000cad .word 0x00000cad
|
|
117c: 40000c02 .word 0x40000c02
|
|
1180: 40000c00 .word 0x40000c00
|
|
1184: 00000ced .word 0x00000ced
|
|
|
|
00001188 <system_gclk_chan_disable>:
|
|
*
|
|
* \param[in] channel Generic Clock channel to disable
|
|
*/
|
|
void system_gclk_chan_disable(
|
|
const uint8_t channel)
|
|
{
|
|
1188: b510 push {r4, lr}
|
|
118a: 0004 movs r4, r0
|
|
cpu_irq_enter_critical();
|
|
118c: 4b0f ldr r3, [pc, #60] ; (11cc <system_gclk_chan_disable+0x44>)
|
|
118e: 4798 blx r3
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the requested generator channel */
|
|
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
|
|
1190: 4b0f ldr r3, [pc, #60] ; (11d0 <system_gclk_chan_disable+0x48>)
|
|
1192: 701c strb r4, [r3, #0]
|
|
|
|
/* Sanity check WRTLOCK */
|
|
Assert(!GCLK->CLKCTRL.bit.WRTLOCK);
|
|
|
|
/* Switch to known-working source so that the channel can be disabled */
|
|
uint32_t prev_gen_id = GCLK->CLKCTRL.bit.GEN;
|
|
1194: 4a0f ldr r2, [pc, #60] ; (11d4 <system_gclk_chan_disable+0x4c>)
|
|
1196: 8853 ldrh r3, [r2, #2]
|
|
1198: 051b lsls r3, r3, #20
|
|
119a: 0f18 lsrs r0, r3, #28
|
|
GCLK->CLKCTRL.bit.GEN = 0;
|
|
119c: 8853 ldrh r3, [r2, #2]
|
|
119e: 490e ldr r1, [pc, #56] ; (11d8 <system_gclk_chan_disable+0x50>)
|
|
11a0: 400b ands r3, r1
|
|
11a2: 8053 strh r3, [r2, #2]
|
|
|
|
/* Disable the generic clock */
|
|
GCLK->CLKCTRL.reg &= ~GCLK_CLKCTRL_CLKEN;
|
|
11a4: 8853 ldrh r3, [r2, #2]
|
|
11a6: 490d ldr r1, [pc, #52] ; (11dc <system_gclk_chan_disable+0x54>)
|
|
11a8: 400b ands r3, r1
|
|
11aa: 8053 strh r3, [r2, #2]
|
|
while (GCLK->CLKCTRL.reg & GCLK_CLKCTRL_CLKEN) {
|
|
11ac: 0011 movs r1, r2
|
|
11ae: 2280 movs r2, #128 ; 0x80
|
|
11b0: 01d2 lsls r2, r2, #7
|
|
11b2: 884b ldrh r3, [r1, #2]
|
|
11b4: 4213 tst r3, r2
|
|
11b6: d1fc bne.n 11b2 <system_gclk_chan_disable+0x2a>
|
|
/* Wait for clock to become disabled */
|
|
}
|
|
|
|
/* Restore previous configured clock generator */
|
|
GCLK->CLKCTRL.bit.GEN = prev_gen_id;
|
|
11b8: 4906 ldr r1, [pc, #24] ; (11d4 <system_gclk_chan_disable+0x4c>)
|
|
11ba: 884a ldrh r2, [r1, #2]
|
|
11bc: 0203 lsls r3, r0, #8
|
|
11be: 4806 ldr r0, [pc, #24] ; (11d8 <system_gclk_chan_disable+0x50>)
|
|
11c0: 4002 ands r2, r0
|
|
11c2: 4313 orrs r3, r2
|
|
11c4: 804b strh r3, [r1, #2]
|
|
cpu_irq_leave_critical();
|
|
11c6: 4b06 ldr r3, [pc, #24] ; (11e0 <system_gclk_chan_disable+0x58>)
|
|
11c8: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
}
|
|
11ca: bd10 pop {r4, pc}
|
|
11cc: 00000cad .word 0x00000cad
|
|
11d0: 40000c02 .word 0x40000c02
|
|
11d4: 40000c00 .word 0x40000c00
|
|
11d8: fffff0ff .word 0xfffff0ff
|
|
11dc: ffffbfff .word 0xffffbfff
|
|
11e0: 00000ced .word 0x00000ced
|
|
|
|
000011e4 <system_gclk_chan_set_config>:
|
|
{
|
|
11e4: b510 push {r4, lr}
|
|
new_clkctrl_config |= config->source_generator << GCLK_CLKCTRL_GEN_Pos;
|
|
11e6: 780c ldrb r4, [r1, #0]
|
|
11e8: 0224 lsls r4, r4, #8
|
|
11ea: 4304 orrs r4, r0
|
|
system_gclk_chan_disable(channel);
|
|
11ec: 4b02 ldr r3, [pc, #8] ; (11f8 <system_gclk_chan_set_config+0x14>)
|
|
11ee: 4798 blx r3
|
|
GCLK->CLKCTRL.reg = new_clkctrl_config;
|
|
11f0: b2a4 uxth r4, r4
|
|
11f2: 4b02 ldr r3, [pc, #8] ; (11fc <system_gclk_chan_set_config+0x18>)
|
|
11f4: 805c strh r4, [r3, #2]
|
|
}
|
|
11f6: bd10 pop {r4, pc}
|
|
11f8: 00001189 .word 0x00001189
|
|
11fc: 40000c00 .word 0x40000c00
|
|
|
|
00001200 <system_gclk_chan_get_hz>:
|
|
*
|
|
* \return The frequency of the generic clock channel, in Hz.
|
|
*/
|
|
uint32_t system_gclk_chan_get_hz(
|
|
const uint8_t channel)
|
|
{
|
|
1200: b510 push {r4, lr}
|
|
1202: 0004 movs r4, r0
|
|
cpu_irq_enter_critical();
|
|
1204: 4b06 ldr r3, [pc, #24] ; (1220 <system_gclk_chan_get_hz+0x20>)
|
|
1206: 4798 blx r3
|
|
uint8_t gen_id;
|
|
|
|
system_interrupt_enter_critical_section();
|
|
|
|
/* Select the requested generic clock channel */
|
|
*((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
|
|
1208: 4b06 ldr r3, [pc, #24] ; (1224 <system_gclk_chan_get_hz+0x24>)
|
|
120a: 701c strb r4, [r3, #0]
|
|
gen_id = GCLK->CLKCTRL.bit.GEN;
|
|
120c: 4b06 ldr r3, [pc, #24] ; (1228 <system_gclk_chan_get_hz+0x28>)
|
|
120e: 885c ldrh r4, [r3, #2]
|
|
1210: 0524 lsls r4, r4, #20
|
|
1212: 0f24 lsrs r4, r4, #28
|
|
cpu_irq_leave_critical();
|
|
1214: 4b05 ldr r3, [pc, #20] ; (122c <system_gclk_chan_get_hz+0x2c>)
|
|
1216: 4798 blx r3
|
|
|
|
system_interrupt_leave_critical_section();
|
|
|
|
/* Return the clock speed of the associated GCLK generator */
|
|
return system_gclk_gen_get_hz(gen_id);
|
|
1218: 0020 movs r0, r4
|
|
121a: 4b05 ldr r3, [pc, #20] ; (1230 <system_gclk_chan_get_hz+0x30>)
|
|
121c: 4798 blx r3
|
|
}
|
|
121e: bd10 pop {r4, pc}
|
|
1220: 00000cad .word 0x00000cad
|
|
1224: 40000c02 .word 0x40000c02
|
|
1228: 40000c00 .word 0x40000c00
|
|
122c: 00000ced .word 0x00000ced
|
|
1230: 000010cd .word 0x000010cd
|
|
|
|
00001234 <_system_pinmux_config>:
|
|
*/
|
|
static void _system_pinmux_config(
|
|
PortGroup *const port,
|
|
const uint32_t pin_mask,
|
|
const struct system_pinmux_config *const config)
|
|
{
|
|
1234: b530 push {r4, r5, lr}
|
|
|
|
/* Track the configuration bits into a temporary variable before writing */
|
|
uint32_t pin_cfg = 0;
|
|
|
|
/* Enabled powersave mode, don't create configuration */
|
|
if (!config->powersave) {
|
|
1236: 78d3 ldrb r3, [r2, #3]
|
|
1238: 2b00 cmp r3, #0
|
|
123a: d135 bne.n 12a8 <_system_pinmux_config+0x74>
|
|
/* Enable the pin peripheral MUX flag if non-GPIO selected (pinmux will
|
|
* be written later) and store the new MUX mask */
|
|
if (config->mux_position != SYSTEM_PINMUX_GPIO) {
|
|
123c: 7813 ldrb r3, [r2, #0]
|
|
123e: 2b80 cmp r3, #128 ; 0x80
|
|
1240: d029 beq.n 1296 <_system_pinmux_config+0x62>
|
|
pin_cfg |= PORT_WRCONFIG_PMUXEN;
|
|
pin_cfg |= (config->mux_position << PORT_WRCONFIG_PMUX_Pos);
|
|
1242: 061b lsls r3, r3, #24
|
|
1244: 2480 movs r4, #128 ; 0x80
|
|
1246: 0264 lsls r4, r4, #9
|
|
1248: 4323 orrs r3, r4
|
|
}
|
|
|
|
/* Check if the user has requested that the input buffer be enabled */
|
|
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_INPUT) ||
|
|
124a: 7854 ldrb r4, [r2, #1]
|
|
124c: 2502 movs r5, #2
|
|
124e: 43ac bics r4, r5
|
|
1250: d106 bne.n 1260 <_system_pinmux_config+0x2c>
|
|
(config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
|
|
/* Enable input buffer flag */
|
|
pin_cfg |= PORT_WRCONFIG_INEN;
|
|
|
|
/* Enable pull-up/pull-down control flag if requested */
|
|
if (config->input_pull != SYSTEM_PINMUX_PIN_PULL_NONE) {
|
|
1252: 7894 ldrb r4, [r2, #2]
|
|
1254: 2c00 cmp r4, #0
|
|
1256: d120 bne.n 129a <_system_pinmux_config+0x66>
|
|
pin_cfg |= PORT_WRCONFIG_INEN;
|
|
1258: 2480 movs r4, #128 ; 0x80
|
|
125a: 02a4 lsls r4, r4, #10
|
|
125c: 4323 orrs r3, r4
|
|
pin_cfg |= PORT_WRCONFIG_PULLEN;
|
|
}
|
|
|
|
/* Clear the port DIR bits to disable the output buffer */
|
|
port->DIRCLR.reg = pin_mask;
|
|
125e: 6041 str r1, [r0, #4]
|
|
}
|
|
|
|
/* Check if the user has requested that the output buffer be enabled */
|
|
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
|
|
1260: 7854 ldrb r4, [r2, #1]
|
|
1262: 3c01 subs r4, #1
|
|
1264: 2c01 cmp r4, #1
|
|
1266: d91c bls.n 12a2 <_system_pinmux_config+0x6e>
|
|
port->DIRCLR.reg = pin_mask;
|
|
}
|
|
|
|
/* The Write Configuration register (WRCONFIG) requires the
|
|
* pins to to grouped into two 16-bit half-words - split them out here */
|
|
uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
|
|
1268: 040d lsls r5, r1, #16
|
|
126a: 0c2d lsrs r5, r5, #16
|
|
|
|
/* Configure the lower 16-bits of the port to the desired configuration,
|
|
* including the pin peripheral multiplexer just in case it is enabled */
|
|
port->WRCONFIG.reg
|
|
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
|
|
126c: 24a0 movs r4, #160 ; 0xa0
|
|
126e: 05e4 lsls r4, r4, #23
|
|
1270: 432c orrs r4, r5
|
|
1272: 431c orrs r4, r3
|
|
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
1274: 6284 str r4, [r0, #40] ; 0x28
|
|
uint32_t upper_pin_mask = (pin_mask >> 16);
|
|
1276: 0c0d lsrs r5, r1, #16
|
|
|
|
/* Configure the upper 16-bits of the port to the desired configuration,
|
|
* including the pin peripheral multiplexer just in case it is enabled */
|
|
port->WRCONFIG.reg
|
|
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
|
|
1278: 24d0 movs r4, #208 ; 0xd0
|
|
127a: 0624 lsls r4, r4, #24
|
|
127c: 432c orrs r4, r5
|
|
127e: 431c orrs r4, r3
|
|
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
1280: 6284 str r4, [r0, #40] ; 0x28
|
|
PORT_WRCONFIG_HWSEL;
|
|
|
|
if(!config->powersave) {
|
|
1282: 78d4 ldrb r4, [r2, #3]
|
|
1284: 2c00 cmp r4, #0
|
|
1286: d122 bne.n 12ce <_system_pinmux_config+0x9a>
|
|
/* Set the pull-up state once the port pins are configured if one was
|
|
* requested and it does not violate the valid set of port
|
|
* configurations */
|
|
if (pin_cfg & PORT_WRCONFIG_PULLEN) {
|
|
1288: 035b lsls r3, r3, #13
|
|
128a: d51c bpl.n 12c6 <_system_pinmux_config+0x92>
|
|
/* Set the OUT register bits to enable the pull-up if requested,
|
|
* clear to enable pull-down */
|
|
if (config->input_pull == SYSTEM_PINMUX_PIN_PULL_UP) {
|
|
128c: 7893 ldrb r3, [r2, #2]
|
|
128e: 2b01 cmp r3, #1
|
|
1290: d01e beq.n 12d0 <_system_pinmux_config+0x9c>
|
|
port->OUTSET.reg = pin_mask;
|
|
} else {
|
|
port->OUTCLR.reg = pin_mask;
|
|
1292: 6141 str r1, [r0, #20]
|
|
1294: e017 b.n 12c6 <_system_pinmux_config+0x92>
|
|
uint32_t pin_cfg = 0;
|
|
1296: 2300 movs r3, #0
|
|
1298: e7d7 b.n 124a <_system_pinmux_config+0x16>
|
|
pin_cfg |= PORT_WRCONFIG_PULLEN;
|
|
129a: 24c0 movs r4, #192 ; 0xc0
|
|
129c: 02e4 lsls r4, r4, #11
|
|
129e: 4323 orrs r3, r4
|
|
12a0: e7dd b.n 125e <_system_pinmux_config+0x2a>
|
|
pin_cfg &= ~PORT_WRCONFIG_PULLEN;
|
|
12a2: 4c0d ldr r4, [pc, #52] ; (12d8 <_system_pinmux_config+0xa4>)
|
|
12a4: 4023 ands r3, r4
|
|
12a6: e7df b.n 1268 <_system_pinmux_config+0x34>
|
|
port->DIRCLR.reg = pin_mask;
|
|
12a8: 6041 str r1, [r0, #4]
|
|
uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
|
|
12aa: 040c lsls r4, r1, #16
|
|
12ac: 0c24 lsrs r4, r4, #16
|
|
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
|
|
12ae: 23a0 movs r3, #160 ; 0xa0
|
|
12b0: 05db lsls r3, r3, #23
|
|
12b2: 4323 orrs r3, r4
|
|
= (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
12b4: 6283 str r3, [r0, #40] ; 0x28
|
|
uint32_t upper_pin_mask = (pin_mask >> 16);
|
|
12b6: 0c0c lsrs r4, r1, #16
|
|
pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
|
|
12b8: 23d0 movs r3, #208 ; 0xd0
|
|
12ba: 061b lsls r3, r3, #24
|
|
12bc: 4323 orrs r3, r4
|
|
= (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
|
|
12be: 6283 str r3, [r0, #40] ; 0x28
|
|
if(!config->powersave) {
|
|
12c0: 78d3 ldrb r3, [r2, #3]
|
|
12c2: 2b00 cmp r3, #0
|
|
12c4: d103 bne.n 12ce <_system_pinmux_config+0x9a>
|
|
}
|
|
}
|
|
|
|
/* Check if the user has requested that the output buffer be enabled */
|
|
if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
|
|
12c6: 7853 ldrb r3, [r2, #1]
|
|
12c8: 3b01 subs r3, #1
|
|
12ca: 2b01 cmp r3, #1
|
|
12cc: d902 bls.n 12d4 <_system_pinmux_config+0xa0>
|
|
(config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
|
|
/* Set the port DIR bits to enable the output buffer */
|
|
port->DIRSET.reg = pin_mask;
|
|
}
|
|
}
|
|
}
|
|
12ce: bd30 pop {r4, r5, pc}
|
|
port->OUTSET.reg = pin_mask;
|
|
12d0: 6181 str r1, [r0, #24]
|
|
12d2: e7f8 b.n 12c6 <_system_pinmux_config+0x92>
|
|
port->DIRSET.reg = pin_mask;
|
|
12d4: 6081 str r1, [r0, #8]
|
|
}
|
|
12d6: e7fa b.n 12ce <_system_pinmux_config+0x9a>
|
|
12d8: fffbffff .word 0xfffbffff
|
|
|
|
000012dc <system_pinmux_pin_set_config>:
|
|
* \param[in] config Configuration settings for the pin
|
|
*/
|
|
void system_pinmux_pin_set_config(
|
|
const uint8_t gpio_pin,
|
|
const struct system_pinmux_config *const config)
|
|
{
|
|
12dc: b510 push {r4, lr}
|
|
12de: 000a movs r2, r1
|
|
uint8_t group_index = (gpio_pin / 32);
|
|
|
|
/* Array of available ports */
|
|
Port *const ports[PORT_INST_NUM] = PORT_INSTS;
|
|
|
|
if (port_index < PORT_INST_NUM) {
|
|
12e0: 09c1 lsrs r1, r0, #7
|
|
return &(ports[port_index]->Group[group_index]);
|
|
} else {
|
|
Assert(false);
|
|
return NULL;
|
|
12e2: 2300 movs r3, #0
|
|
if (port_index < PORT_INST_NUM) {
|
|
12e4: 2900 cmp r1, #0
|
|
12e6: d104 bne.n 12f2 <system_pinmux_pin_set_config+0x16>
|
|
return &(ports[port_index]->Group[group_index]);
|
|
12e8: 0943 lsrs r3, r0, #5
|
|
12ea: 01db lsls r3, r3, #7
|
|
12ec: 4905 ldr r1, [pc, #20] ; (1304 <system_pinmux_pin_set_config+0x28>)
|
|
12ee: 468c mov ip, r1
|
|
12f0: 4463 add r3, ip
|
|
PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
|
|
uint32_t pin_mask = (1UL << (gpio_pin % 32));
|
|
12f2: 241f movs r4, #31
|
|
12f4: 4020 ands r0, r4
|
|
12f6: 2101 movs r1, #1
|
|
12f8: 4081 lsls r1, r0
|
|
|
|
_system_pinmux_config(port, pin_mask, config);
|
|
12fa: 0018 movs r0, r3
|
|
12fc: 4b02 ldr r3, [pc, #8] ; (1308 <system_pinmux_pin_set_config+0x2c>)
|
|
12fe: 4798 blx r3
|
|
}
|
|
1300: bd10 pop {r4, pc}
|
|
1302: 46c0 nop ; (mov r8, r8)
|
|
1304: 41004400 .word 0x41004400
|
|
1308: 00001235 .word 0x00001235
|
|
|
|
0000130c <system_pinmux_group_set_config>:
|
|
*/
|
|
void system_pinmux_group_set_config(
|
|
PortGroup *const port,
|
|
const uint32_t mask,
|
|
const struct system_pinmux_config *const config)
|
|
{
|
|
130c: b5f0 push {r4, r5, r6, r7, lr}
|
|
130e: b083 sub sp, #12
|
|
1310: 9000 str r0, [sp, #0]
|
|
1312: 000e movs r6, r1
|
|
1314: 9201 str r2, [sp, #4]
|
|
Assert(port);
|
|
|
|
for (int i = 0; i < 32; i++) {
|
|
1316: 2400 movs r4, #0
|
|
if (mask & (1UL << i)) {
|
|
1318: 2701 movs r7, #1
|
|
_system_pinmux_config(port, (1UL << i), config);
|
|
131a: 4d08 ldr r5, [pc, #32] ; (133c <system_pinmux_group_set_config+0x30>)
|
|
131c: e002 b.n 1324 <system_pinmux_group_set_config+0x18>
|
|
for (int i = 0; i < 32; i++) {
|
|
131e: 3401 adds r4, #1
|
|
1320: 2c20 cmp r4, #32
|
|
1322: d009 beq.n 1338 <system_pinmux_group_set_config+0x2c>
|
|
if (mask & (1UL << i)) {
|
|
1324: 0033 movs r3, r6
|
|
1326: 40e3 lsrs r3, r4
|
|
1328: 421f tst r7, r3
|
|
132a: d0f8 beq.n 131e <system_pinmux_group_set_config+0x12>
|
|
_system_pinmux_config(port, (1UL << i), config);
|
|
132c: 9a01 ldr r2, [sp, #4]
|
|
132e: 0039 movs r1, r7
|
|
1330: 40a1 lsls r1, r4
|
|
1332: 9800 ldr r0, [sp, #0]
|
|
1334: 47a8 blx r5
|
|
1336: e7f2 b.n 131e <system_pinmux_group_set_config+0x12>
|
|
}
|
|
}
|
|
}
|
|
1338: b003 add sp, #12
|
|
133a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
133c: 00001235 .word 0x00001235
|
|
|
|
00001340 <_system_dummy_init>:
|
|
*/
|
|
void _system_dummy_init(void);
|
|
void _system_dummy_init(void)
|
|
{
|
|
return;
|
|
}
|
|
1340: 4770 bx lr
|
|
...
|
|
|
|
00001344 <system_init>:
|
|
* - Board hardware initialization (via the Board module)
|
|
* - Event system driver initialization (via the EVSYS module)
|
|
* - External Interrupt driver initialization (via the EXTINT module)
|
|
*/
|
|
void system_init(void)
|
|
{
|
|
1344: b510 push {r4, lr}
|
|
/* Configure GCLK and clock sources according to conf_clocks.h */
|
|
system_clock_init();
|
|
1346: 4b05 ldr r3, [pc, #20] ; (135c <system_init+0x18>)
|
|
1348: 4798 blx r3
|
|
|
|
/* Initialize board hardware */
|
|
system_board_init();
|
|
134a: 4b05 ldr r3, [pc, #20] ; (1360 <system_init+0x1c>)
|
|
134c: 4798 blx r3
|
|
|
|
/* Initialize EVSYS hardware */
|
|
_system_events_init();
|
|
134e: 4b05 ldr r3, [pc, #20] ; (1364 <system_init+0x20>)
|
|
1350: 4798 blx r3
|
|
|
|
/* Initialize External hardware */
|
|
_system_extint_init();
|
|
1352: 4b05 ldr r3, [pc, #20] ; (1368 <system_init+0x24>)
|
|
1354: 4798 blx r3
|
|
|
|
/* Initialize DIVAS hardware */
|
|
_system_divas_init();
|
|
1356: 4b05 ldr r3, [pc, #20] ; (136c <system_init+0x28>)
|
|
1358: 4798 blx r3
|
|
}
|
|
135a: bd10 pop {r4, pc}
|
|
135c: 00000f15 .word 0x00000f15
|
|
1360: 00000d1d .word 0x00000d1d
|
|
1364: 00001341 .word 0x00001341
|
|
1368: 00001341 .word 0x00001341
|
|
136c: 00001341 .word 0x00001341
|
|
|
|
00001370 <Dummy_Handler>:
|
|
|
|
/**
|
|
* \brief Default interrupt handler for unused IRQs.
|
|
*/
|
|
void Dummy_Handler(void)
|
|
{
|
|
1370: e7fe b.n 1370 <Dummy_Handler>
|
|
...
|
|
|
|
00001374 <Reset_Handler>:
|
|
{
|
|
1374: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
if (pSrc != pDest) {
|
|
1376: 4a2a ldr r2, [pc, #168] ; (1420 <Reset_Handler+0xac>)
|
|
1378: 4b2a ldr r3, [pc, #168] ; (1424 <Reset_Handler+0xb0>)
|
|
137a: 429a cmp r2, r3
|
|
137c: d011 beq.n 13a2 <Reset_Handler+0x2e>
|
|
for (; pDest < &_erelocate;) {
|
|
137e: 001a movs r2, r3
|
|
1380: 4b29 ldr r3, [pc, #164] ; (1428 <Reset_Handler+0xb4>)
|
|
1382: 429a cmp r2, r3
|
|
1384: d20d bcs.n 13a2 <Reset_Handler+0x2e>
|
|
1386: 4a29 ldr r2, [pc, #164] ; (142c <Reset_Handler+0xb8>)
|
|
1388: 3303 adds r3, #3
|
|
138a: 1a9b subs r3, r3, r2
|
|
138c: 089b lsrs r3, r3, #2
|
|
138e: 3301 adds r3, #1
|
|
1390: 009b lsls r3, r3, #2
|
|
1392: 2200 movs r2, #0
|
|
*pDest++ = *pSrc++;
|
|
1394: 4823 ldr r0, [pc, #140] ; (1424 <Reset_Handler+0xb0>)
|
|
1396: 4922 ldr r1, [pc, #136] ; (1420 <Reset_Handler+0xac>)
|
|
1398: 588c ldr r4, [r1, r2]
|
|
139a: 5084 str r4, [r0, r2]
|
|
139c: 3204 adds r2, #4
|
|
for (; pDest < &_erelocate;) {
|
|
139e: 429a cmp r2, r3
|
|
13a0: d1fa bne.n 1398 <Reset_Handler+0x24>
|
|
for (pDest = &_szero; pDest < &_ezero;) {
|
|
13a2: 4a23 ldr r2, [pc, #140] ; (1430 <Reset_Handler+0xbc>)
|
|
13a4: 4b23 ldr r3, [pc, #140] ; (1434 <Reset_Handler+0xc0>)
|
|
13a6: 429a cmp r2, r3
|
|
13a8: d20a bcs.n 13c0 <Reset_Handler+0x4c>
|
|
13aa: 43d3 mvns r3, r2
|
|
13ac: 4921 ldr r1, [pc, #132] ; (1434 <Reset_Handler+0xc0>)
|
|
13ae: 185b adds r3, r3, r1
|
|
13b0: 2103 movs r1, #3
|
|
13b2: 438b bics r3, r1
|
|
13b4: 3304 adds r3, #4
|
|
13b6: 189b adds r3, r3, r2
|
|
*pDest++ = 0;
|
|
13b8: 2100 movs r1, #0
|
|
13ba: c202 stmia r2!, {r1}
|
|
for (pDest = &_szero; pDest < &_ezero;) {
|
|
13bc: 4293 cmp r3, r2
|
|
13be: d1fc bne.n 13ba <Reset_Handler+0x46>
|
|
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
|
|
13c0: 4a1d ldr r2, [pc, #116] ; (1438 <Reset_Handler+0xc4>)
|
|
13c2: 21ff movs r1, #255 ; 0xff
|
|
13c4: 4b1d ldr r3, [pc, #116] ; (143c <Reset_Handler+0xc8>)
|
|
13c6: 438b bics r3, r1
|
|
13c8: 6093 str r3, [r2, #8]
|
|
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
|
|
13ca: 39fd subs r1, #253 ; 0xfd
|
|
13cc: 2390 movs r3, #144 ; 0x90
|
|
13ce: 005b lsls r3, r3, #1
|
|
13d0: 4a1b ldr r2, [pc, #108] ; (1440 <Reset_Handler+0xcc>)
|
|
13d2: 50d1 str r1, [r2, r3]
|
|
USB->DEVICE.QOSCTRL.bit.CQOS = 2;
|
|
13d4: 4a1b ldr r2, [pc, #108] ; (1444 <Reset_Handler+0xd0>)
|
|
13d6: 78d3 ldrb r3, [r2, #3]
|
|
13d8: 2503 movs r5, #3
|
|
13da: 43ab bics r3, r5
|
|
13dc: 2402 movs r4, #2
|
|
13de: 4323 orrs r3, r4
|
|
13e0: 70d3 strb r3, [r2, #3]
|
|
USB->DEVICE.QOSCTRL.bit.DQOS = 2;
|
|
13e2: 78d3 ldrb r3, [r2, #3]
|
|
13e4: 270c movs r7, #12
|
|
13e6: 43bb bics r3, r7
|
|
13e8: 2608 movs r6, #8
|
|
13ea: 4333 orrs r3, r6
|
|
13ec: 70d3 strb r3, [r2, #3]
|
|
DMAC->QOSCTRL.bit.DQOS = 2;
|
|
13ee: 4b16 ldr r3, [pc, #88] ; (1448 <Reset_Handler+0xd4>)
|
|
13f0: 7b98 ldrb r0, [r3, #14]
|
|
13f2: 2230 movs r2, #48 ; 0x30
|
|
13f4: 4390 bics r0, r2
|
|
13f6: 2220 movs r2, #32
|
|
13f8: 4310 orrs r0, r2
|
|
13fa: 7398 strb r0, [r3, #14]
|
|
DMAC->QOSCTRL.bit.FQOS = 2;
|
|
13fc: 7b99 ldrb r1, [r3, #14]
|
|
13fe: 43b9 bics r1, r7
|
|
1400: 4331 orrs r1, r6
|
|
1402: 7399 strb r1, [r3, #14]
|
|
DMAC->QOSCTRL.bit.WRBQOS = 2;
|
|
1404: 7b9a ldrb r2, [r3, #14]
|
|
1406: 43aa bics r2, r5
|
|
1408: 4322 orrs r2, r4
|
|
140a: 739a strb r2, [r3, #14]
|
|
NVMCTRL->CTRLB.bit.MANW = 1;
|
|
140c: 4a0f ldr r2, [pc, #60] ; (144c <Reset_Handler+0xd8>)
|
|
140e: 6853 ldr r3, [r2, #4]
|
|
1410: 2180 movs r1, #128 ; 0x80
|
|
1412: 430b orrs r3, r1
|
|
1414: 6053 str r3, [r2, #4]
|
|
__libc_init_array();
|
|
1416: 4b0e ldr r3, [pc, #56] ; (1450 <Reset_Handler+0xdc>)
|
|
1418: 4798 blx r3
|
|
main();
|
|
141a: 4b0e ldr r3, [pc, #56] ; (1454 <Reset_Handler+0xe0>)
|
|
141c: 4798 blx r3
|
|
141e: e7fe b.n 141e <Reset_Handler+0xaa>
|
|
1420: 0001c9a8 .word 0x0001c9a8
|
|
1424: 20000000 .word 0x20000000
|
|
1428: 200000c4 .word 0x200000c4
|
|
142c: 20000004 .word 0x20000004
|
|
1430: 200000c8 .word 0x200000c8
|
|
1434: 20004e38 .word 0x20004e38
|
|
1438: e000ed00 .word 0xe000ed00
|
|
143c: 00000000 .word 0x00000000
|
|
1440: 41007000 .word 0x41007000
|
|
1444: 41005000 .word 0x41005000
|
|
1448: 41004800 .word 0x41004800
|
|
144c: 41004000 .word 0x41004000
|
|
1450: 00017dd5 .word 0x00017dd5
|
|
1454: 0001786d .word 0x0001786d
|
|
|
|
00001458 <_sbrk>:
|
|
extern void _exit(int status);
|
|
extern void _kill(int pid, int sig);
|
|
extern int _getpid(void);
|
|
|
|
extern caddr_t _sbrk(int incr)
|
|
{
|
|
1458: 0003 movs r3, r0
|
|
static unsigned char *heap = NULL;
|
|
unsigned char *prev_heap;
|
|
|
|
if (heap == NULL) {
|
|
145a: 4a06 ldr r2, [pc, #24] ; (1474 <_sbrk+0x1c>)
|
|
145c: 6812 ldr r2, [r2, #0]
|
|
145e: 2a00 cmp r2, #0
|
|
1460: d004 beq.n 146c <_sbrk+0x14>
|
|
heap = (unsigned char *)&_end;
|
|
}
|
|
prev_heap = heap;
|
|
1462: 4a04 ldr r2, [pc, #16] ; (1474 <_sbrk+0x1c>)
|
|
1464: 6810 ldr r0, [r2, #0]
|
|
|
|
heap += incr;
|
|
1466: 18c3 adds r3, r0, r3
|
|
1468: 6013 str r3, [r2, #0]
|
|
|
|
return (caddr_t) prev_heap;
|
|
}
|
|
146a: 4770 bx lr
|
|
heap = (unsigned char *)&_end;
|
|
146c: 4902 ldr r1, [pc, #8] ; (1478 <_sbrk+0x20>)
|
|
146e: 4a01 ldr r2, [pc, #4] ; (1474 <_sbrk+0x1c>)
|
|
1470: 6011 str r1, [r2, #0]
|
|
1472: e7f6 b.n 1462 <_sbrk+0xa>
|
|
1474: 200026d0 .word 0x200026d0
|
|
1478: 20006e38 .word 0x20006e38
|
|
|
|
0000147c <lv_debug_check_null>:
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
bool lv_debug_check_null(const void * p)
|
|
{
|
|
if(p) return true;
|
|
147c: 1e43 subs r3, r0, #1
|
|
147e: 4198 sbcs r0, r3
|
|
1480: b2c0 uxtb r0, r0
|
|
|
|
return false;
|
|
}
|
|
1482: 4770 bx lr
|
|
|
|
00001484 <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)
|
|
{
|
|
1484: b510 push {r4, lr}
|
|
1486: b0c0 sub sp, #256 ; 0x100
|
|
1488: 0004 movs r4, r0
|
|
static const char hex[] = "0123456789ABCDEF";
|
|
|
|
size_t msg_len = strlen(msg);
|
|
148a: 4b06 ldr r3, [pc, #24] ; (14a4 <lv_debug_log_error+0x20>)
|
|
148c: 4798 blx r3
|
|
uint32_t value_len = sizeof(unsigned long int);
|
|
|
|
if(msg_len < 230) {
|
|
148e: 28e5 cmp r0, #229 ; 0xe5
|
|
1490: d901 bls.n 1496 <lv_debug_log_error+0x12>
|
|
LV_LOG_ERROR(buf);
|
|
}
|
|
else {
|
|
LV_LOG_ERROR(msg);
|
|
}
|
|
}
|
|
1492: b040 add sp, #256 ; 0x100
|
|
1494: bd10 pop {r4, pc}
|
|
_lv_memcpy(bufp, msg, msg_len);
|
|
1496: 0002 movs r2, r0
|
|
1498: 0021 movs r1, r4
|
|
149a: 4668 mov r0, sp
|
|
149c: 4b02 ldr r3, [pc, #8] ; (14a8 <lv_debug_log_error+0x24>)
|
|
149e: 4798 blx r3
|
|
}
|
|
14a0: e7f7 b.n 1492 <lv_debug_log_error+0xe>
|
|
14a2: 46c0 nop ; (mov r8, r8)
|
|
14a4: 00017e81 .word 0x00017e81
|
|
14a8: 00010c8d .word 0x00010c8d
|
|
|
|
000014ac <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)
|
|
{
|
|
14ac: b510 push {r4, lr}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14ae: 2800 cmp r0, #0
|
|
14b0: d001 beq.n 14b6 <lv_disp_get_scr_act+0xa>
|
|
if(!disp) {
|
|
LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen");
|
|
return NULL;
|
|
}
|
|
|
|
return disp->act_scr;
|
|
14b2: 6bc0 ldr r0, [r0, #60] ; 0x3c
|
|
}
|
|
14b4: bd10 pop {r4, pc}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14b6: 4b03 ldr r3, [pc, #12] ; (14c4 <lv_disp_get_scr_act+0x18>)
|
|
14b8: 4798 blx r3
|
|
if(!disp) {
|
|
14ba: 2800 cmp r0, #0
|
|
14bc: d1f9 bne.n 14b2 <lv_disp_get_scr_act+0x6>
|
|
return NULL;
|
|
14be: 2000 movs r0, #0
|
|
14c0: e7f8 b.n 14b4 <lv_disp_get_scr_act+0x8>
|
|
14c2: 46c0 nop ; (mov r8, r8)
|
|
14c4: 0000f609 .word 0x0000f609
|
|
|
|
000014c8 <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)
|
|
{
|
|
14c8: b510 push {r4, lr}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14ca: 2800 cmp r0, #0
|
|
14cc: d001 beq.n 14d2 <lv_disp_get_layer_top+0xa>
|
|
if(!disp) {
|
|
LV_LOG_WARN("lv_layer_top: no display registered to get its top layer");
|
|
return NULL;
|
|
}
|
|
|
|
return disp->top_layer;
|
|
14ce: 6c00 ldr r0, [r0, #64] ; 0x40
|
|
}
|
|
14d0: bd10 pop {r4, pc}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14d2: 4b03 ldr r3, [pc, #12] ; (14e0 <lv_disp_get_layer_top+0x18>)
|
|
14d4: 4798 blx r3
|
|
if(!disp) {
|
|
14d6: 2800 cmp r0, #0
|
|
14d8: d1f9 bne.n 14ce <lv_disp_get_layer_top+0x6>
|
|
return NULL;
|
|
14da: 2000 movs r0, #0
|
|
14dc: e7f8 b.n 14d0 <lv_disp_get_layer_top+0x8>
|
|
14de: 46c0 nop ; (mov r8, r8)
|
|
14e0: 0000f609 .word 0x0000f609
|
|
|
|
000014e4 <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)
|
|
{
|
|
14e4: b510 push {r4, lr}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14e6: 2800 cmp r0, #0
|
|
14e8: d001 beq.n 14ee <lv_disp_get_layer_sys+0xa>
|
|
if(!disp) {
|
|
LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer");
|
|
return NULL;
|
|
}
|
|
|
|
return disp->sys_layer;
|
|
14ea: 6c40 ldr r0, [r0, #68] ; 0x44
|
|
}
|
|
14ec: bd10 pop {r4, pc}
|
|
if(!disp) disp = lv_disp_get_default();
|
|
14ee: 4b03 ldr r3, [pc, #12] ; (14fc <lv_disp_get_layer_sys+0x18>)
|
|
14f0: 4798 blx r3
|
|
if(!disp) {
|
|
14f2: 2800 cmp r0, #0
|
|
14f4: d1f9 bne.n 14ea <lv_disp_get_layer_sys+0x6>
|
|
return NULL;
|
|
14f6: 2000 movs r0, #0
|
|
14f8: e7f8 b.n 14ec <lv_disp_get_layer_sys+0x8>
|
|
14fa: 46c0 nop ; (mov r8, r8)
|
|
14fc: 0000f609 .word 0x0000f609
|
|
|
|
00001500 <obj_to_foreground>:
|
|
|
|
if(group->focus_cb) group->focus_cb(group);
|
|
}
|
|
|
|
static void obj_to_foreground(lv_obj_t * obj)
|
|
{
|
|
1500: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
/*Search for 'top' attribute*/
|
|
lv_obj_t * i = obj;
|
|
lv_obj_t * last_top = NULL;
|
|
while(i != NULL) {
|
|
1502: 2800 cmp r0, #0
|
|
1504: d011 beq.n 152a <obj_to_foreground+0x2a>
|
|
1506: 2500 movs r5, #0
|
|
if(i->top != 0) last_top = i;
|
|
1508: 2734 movs r7, #52 ; 0x34
|
|
150a: 2620 movs r6, #32
|
|
i = lv_obj_get_parent(i);
|
|
150c: 4c07 ldr r4, [pc, #28] ; (152c <obj_to_foreground+0x2c>)
|
|
150e: e002 b.n 1516 <obj_to_foreground+0x16>
|
|
1510: 47a0 blx r4
|
|
while(i != NULL) {
|
|
1512: 2800 cmp r0, #0
|
|
1514: d004 beq.n 1520 <obj_to_foreground+0x20>
|
|
if(i->top != 0) last_top = i;
|
|
1516: 5dc3 ldrb r3, [r0, r7]
|
|
1518: 421e tst r6, r3
|
|
151a: d0f9 beq.n 1510 <obj_to_foreground+0x10>
|
|
151c: 0005 movs r5, r0
|
|
151e: e7f7 b.n 1510 <obj_to_foreground+0x10>
|
|
}
|
|
|
|
if(last_top != NULL) {
|
|
1520: 2d00 cmp r5, #0
|
|
1522: d002 beq.n 152a <obj_to_foreground+0x2a>
|
|
/*Move the last_top object to the foreground*/
|
|
lv_obj_move_foreground(last_top);
|
|
1524: 0028 movs r0, r5
|
|
1526: 4b02 ldr r3, [pc, #8] ; (1530 <obj_to_foreground+0x30>)
|
|
1528: 4798 blx r3
|
|
}
|
|
}
|
|
152a: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
152c: 00001aa1 .word 0x00001aa1
|
|
1530: 00002019 .word 0x00002019
|
|
|
|
00001534 <focus_next_core>:
|
|
{
|
|
1534: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
1536: 46de mov lr, fp
|
|
1538: 4657 mov r7, sl
|
|
153a: 464e mov r6, r9
|
|
153c: 4645 mov r5, r8
|
|
153e: b5e0 push {r5, r6, r7, lr}
|
|
1540: 0006 movs r6, r0
|
|
1542: 468a mov sl, r1
|
|
1544: 4690 mov r8, r2
|
|
if(group->frozen) return;
|
|
1546: 7d03 ldrb r3, [r0, #20]
|
|
1548: 07db lsls r3, r3, #31
|
|
154a: d43c bmi.n 15c6 <focus_next_core+0x92>
|
|
lv_obj_t ** obj_next = group->obj_focus;
|
|
154c: 68c4 ldr r4, [r0, #12]
|
|
bool can_begin = true;
|
|
154e: 2301 movs r3, #1
|
|
1550: 4699 mov r9, r3
|
|
lv_obj_t ** obj_sentinel = NULL;
|
|
1552: 2500 movs r5, #0
|
|
if(!lv_obj_get_hidden(*obj_next)) break;
|
|
1554: 4f32 ldr r7, [pc, #200] ; (1620 <focus_next_core+0xec>)
|
|
if(group->wrap || obj_sentinel == NULL) {
|
|
1556: 330f adds r3, #15
|
|
1558: 469b mov fp, r3
|
|
155a: e015 b.n 1588 <focus_next_core+0x54>
|
|
155c: 7d33 ldrb r3, [r6, #20]
|
|
155e: 465a mov r2, fp
|
|
1560: 421a tst r2, r3
|
|
1562: d101 bne.n 1568 <focus_next_core+0x34>
|
|
1564: 2d00 cmp r5, #0
|
|
1566: d12e bne.n 15c6 <focus_next_core+0x92>
|
|
if(!can_begin) return;
|
|
1568: 464b mov r3, r9
|
|
156a: 2b00 cmp r3, #0
|
|
156c: d02b beq.n 15c6 <focus_next_core+0x92>
|
|
obj_next = begin(&group->obj_ll);
|
|
156e: 0030 movs r0, r6
|
|
1570: 47d0 blx sl
|
|
1572: 0004 movs r4, r0
|
|
if(obj_sentinel == NULL) {
|
|
1574: 2d00 cmp r5, #0
|
|
1576: d04c beq.n 1612 <focus_next_core+0xde>
|
|
can_begin = false;
|
|
1578: 2300 movs r3, #0
|
|
157a: 4699 mov r9, r3
|
|
if(obj_next == NULL) continue;
|
|
157c: 2c00 cmp r4, #0
|
|
157e: d003 beq.n 1588 <focus_next_core+0x54>
|
|
if(!lv_obj_get_hidden(*obj_next)) break;
|
|
1580: 6820 ldr r0, [r4, #0]
|
|
1582: 47b8 blx r7
|
|
1584: 2800 cmp r0, #0
|
|
1586: d00c beq.n 15a2 <focus_next_core+0x6e>
|
|
if(obj_next == NULL) {
|
|
1588: 2c00 cmp r4, #0
|
|
158a: d0e7 beq.n 155c <focus_next_core+0x28>
|
|
if(obj_sentinel == NULL) {
|
|
158c: 2d00 cmp r5, #0
|
|
158e: d006 beq.n 159e <focus_next_core+0x6a>
|
|
obj_next = move(&group->obj_ll, obj_next);
|
|
1590: 0021 movs r1, r4
|
|
1592: 0030 movs r0, r6
|
|
1594: 47c0 blx r8
|
|
1596: 0004 movs r4, r0
|
|
if(obj_next == obj_sentinel) return;
|
|
1598: 42a8 cmp r0, r5
|
|
159a: d1ef bne.n 157c <focus_next_core+0x48>
|
|
159c: e013 b.n 15c6 <focus_next_core+0x92>
|
|
159e: 0025 movs r5, r4
|
|
15a0: e7f6 b.n 1590 <focus_next_core+0x5c>
|
|
if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/
|
|
15a2: 68f3 ldr r3, [r6, #12]
|
|
15a4: 42a3 cmp r3, r4
|
|
15a6: d00e beq.n 15c6 <focus_next_core+0x92>
|
|
if(group->obj_focus) {
|
|
15a8: 2b00 cmp r3, #0
|
|
15aa: d016 beq.n 15da <focus_next_core+0xa6>
|
|
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
|
|
15ac: 6818 ldr r0, [r3, #0]
|
|
15ae: 69c3 ldr r3, [r0, #28]
|
|
15b0: 2200 movs r2, #0
|
|
15b2: 2117 movs r1, #23
|
|
15b4: 4798 blx r3
|
|
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL);
|
|
15b6: 68f3 ldr r3, [r6, #12]
|
|
15b8: 6818 ldr r0, [r3, #0]
|
|
15ba: 2200 movs r2, #0
|
|
15bc: 210e movs r1, #14
|
|
15be: 4b19 ldr r3, [pc, #100] ; (1624 <focus_next_core+0xf0>)
|
|
15c0: 4798 blx r3
|
|
if(res != LV_RES_OK) return;
|
|
15c2: 2801 cmp r0, #1
|
|
15c4: d005 beq.n 15d2 <focus_next_core+0x9e>
|
|
}
|
|
15c6: bc3c pop {r2, r3, r4, r5}
|
|
15c8: 4690 mov r8, r2
|
|
15ca: 4699 mov r9, r3
|
|
15cc: 46a2 mov sl, r4
|
|
15ce: 46ab mov fp, r5
|
|
15d0: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
lv_obj_invalidate(*group->obj_focus);
|
|
15d2: 68f3 ldr r3, [r6, #12]
|
|
15d4: 6818 ldr r0, [r3, #0]
|
|
15d6: 4b14 ldr r3, [pc, #80] ; (1628 <focus_next_core+0xf4>)
|
|
15d8: 4798 blx r3
|
|
group->obj_focus = obj_next;
|
|
15da: 60f4 str r4, [r6, #12]
|
|
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
|
|
15dc: 6820 ldr r0, [r4, #0]
|
|
15de: 69c3 ldr r3, [r0, #28]
|
|
15e0: 2200 movs r2, #0
|
|
15e2: 2116 movs r1, #22
|
|
15e4: 4798 blx r3
|
|
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL);
|
|
15e6: 68f3 ldr r3, [r6, #12]
|
|
15e8: 6818 ldr r0, [r3, #0]
|
|
15ea: 2200 movs r2, #0
|
|
15ec: 210d movs r1, #13
|
|
15ee: 4b0d ldr r3, [pc, #52] ; (1624 <focus_next_core+0xf0>)
|
|
15f0: 4798 blx r3
|
|
if(res != LV_RES_OK) return;
|
|
15f2: 2801 cmp r0, #1
|
|
15f4: d1e7 bne.n 15c6 <focus_next_core+0x92>
|
|
obj_to_foreground(*group->obj_focus);
|
|
15f6: 68f3 ldr r3, [r6, #12]
|
|
15f8: 6818 ldr r0, [r3, #0]
|
|
15fa: 4b0c ldr r3, [pc, #48] ; (162c <focus_next_core+0xf8>)
|
|
15fc: 4798 blx r3
|
|
lv_obj_invalidate(*group->obj_focus);
|
|
15fe: 68f3 ldr r3, [r6, #12]
|
|
1600: 6818 ldr r0, [r3, #0]
|
|
1602: 4b09 ldr r3, [pc, #36] ; (1628 <focus_next_core+0xf4>)
|
|
1604: 4798 blx r3
|
|
if(group->focus_cb) group->focus_cb(group);
|
|
1606: 6933 ldr r3, [r6, #16]
|
|
1608: 2b00 cmp r3, #0
|
|
160a: d0dc beq.n 15c6 <focus_next_core+0x92>
|
|
160c: 0030 movs r0, r6
|
|
160e: 4798 blx r3
|
|
1610: e7d9 b.n 15c6 <focus_next_core+0x92>
|
|
if(obj_sentinel == NULL) return; /*Group is empty*/
|
|
1612: 2800 cmp r0, #0
|
|
1614: d0d7 beq.n 15c6 <focus_next_core+0x92>
|
|
obj_next = begin(&group->obj_ll);
|
|
1616: 0005 movs r5, r0
|
|
can_begin = false;
|
|
1618: 2300 movs r3, #0
|
|
161a: 4699 mov r9, r3
|
|
161c: e7b0 b.n 1580 <focus_next_core+0x4c>
|
|
161e: 46c0 nop ; (mov r8, r8)
|
|
1620: 00001e85 .word 0x00001e85
|
|
1624: 00001a11 .word 0x00001a11
|
|
1628: 00001fb1 .word 0x00001fb1
|
|
162c: 00001501 .word 0x00001501
|
|
|
|
00001630 <_lv_group_init>:
|
|
{
|
|
1630: b510 push {r4, lr}
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t));
|
|
1632: 2118 movs r1, #24
|
|
1634: 4801 ldr r0, [pc, #4] ; (163c <_lv_group_init+0xc>)
|
|
1636: 4b02 ldr r3, [pc, #8] ; (1640 <_lv_group_init+0x10>)
|
|
1638: 4798 blx r3
|
|
}
|
|
163a: bd10 pop {r4, pc}
|
|
163c: 20004e18 .word 0x20004e18
|
|
1640: 000105b9 .word 0x000105b9
|
|
|
|
00001644 <lv_group_focus_next>:
|
|
{
|
|
1644: b510 push {r4, lr}
|
|
focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
|
|
1646: 4a02 ldr r2, [pc, #8] ; (1650 <lv_group_focus_next+0xc>)
|
|
1648: 4902 ldr r1, [pc, #8] ; (1654 <lv_group_focus_next+0x10>)
|
|
164a: 4b03 ldr r3, [pc, #12] ; (1658 <lv_group_focus_next+0x14>)
|
|
164c: 4798 blx r3
|
|
}
|
|
164e: bd10 pop {r4, pc}
|
|
1650: 00010685 .word 0x00010685
|
|
1654: 0001066d .word 0x0001066d
|
|
1658: 00001535 .word 0x00001535
|
|
|
|
0000165c <lv_group_focus_prev>:
|
|
{
|
|
165c: b510 push {r4, lr}
|
|
focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
|
|
165e: 4a02 ldr r2, [pc, #8] ; (1668 <lv_group_focus_prev+0xc>)
|
|
1660: 4902 ldr r1, [pc, #8] ; (166c <lv_group_focus_prev+0x10>)
|
|
1662: 4b03 ldr r3, [pc, #12] ; (1670 <lv_group_focus_prev+0x14>)
|
|
1664: 4798 blx r3
|
|
}
|
|
1666: bd10 pop {r4, pc}
|
|
1668: 000106ad .word 0x000106ad
|
|
166c: 00010679 .word 0x00010679
|
|
1670: 00001535 .word 0x00001535
|
|
|
|
00001674 <lv_group_refocus>:
|
|
{
|
|
1674: b570 push {r4, r5, r6, lr}
|
|
1676: 0004 movs r4, r0
|
|
uint8_t temp_wrap = g->wrap;
|
|
1678: 7d03 ldrb r3, [r0, #20]
|
|
167a: 06dd lsls r5, r3, #27
|
|
167c: 0fed lsrs r5, r5, #31
|
|
g->wrap = 1;
|
|
167e: 2210 movs r2, #16
|
|
1680: 4313 orrs r3, r2
|
|
1682: 7503 strb r3, [r0, #20]
|
|
if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT)
|
|
1684: 071b lsls r3, r3, #28
|
|
1686: d508 bpl.n 169a <lv_group_refocus+0x26>
|
|
lv_group_focus_prev(g);
|
|
1688: 4b05 ldr r3, [pc, #20] ; (16a0 <lv_group_refocus+0x2c>)
|
|
168a: 4798 blx r3
|
|
g->wrap = temp_wrap;
|
|
168c: 012d lsls r5, r5, #4
|
|
168e: 7d23 ldrb r3, [r4, #20]
|
|
1690: 2210 movs r2, #16
|
|
1692: 4393 bics r3, r2
|
|
1694: 432b orrs r3, r5
|
|
1696: 7523 strb r3, [r4, #20]
|
|
}
|
|
1698: bd70 pop {r4, r5, r6, pc}
|
|
lv_group_focus_next(g);
|
|
169a: 4b02 ldr r3, [pc, #8] ; (16a4 <lv_group_refocus+0x30>)
|
|
169c: 4798 blx r3
|
|
169e: e7f5 b.n 168c <lv_group_refocus+0x18>
|
|
16a0: 0000165d .word 0x0000165d
|
|
16a4: 00001645 .word 0x00001645
|
|
|
|
000016a8 <lv_group_add_obj>:
|
|
{
|
|
16a8: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
16aa: 0005 movs r5, r0
|
|
16ac: 000c movs r4, r1
|
|
if(group == NULL) return;
|
|
16ae: 2800 cmp r0, #0
|
|
16b0: d010 beq.n 16d4 <lv_group_add_obj+0x2c>
|
|
_LV_LL_READ(group->obj_ll, obj_i) {
|
|
16b2: 0006 movs r6, r0
|
|
16b4: 4b1b ldr r3, [pc, #108] ; (1724 <lv_group_add_obj+0x7c>)
|
|
16b6: 4798 blx r3
|
|
16b8: 2800 cmp r0, #0
|
|
16ba: d00c beq.n 16d6 <lv_group_add_obj+0x2e>
|
|
if((*obj_i) == obj) {
|
|
16bc: 6803 ldr r3, [r0, #0]
|
|
16be: 429c cmp r4, r3
|
|
16c0: d008 beq.n 16d4 <lv_group_add_obj+0x2c>
|
|
_LV_LL_READ(group->obj_ll, obj_i) {
|
|
16c2: 4f19 ldr r7, [pc, #100] ; (1728 <lv_group_add_obj+0x80>)
|
|
16c4: 0001 movs r1, r0
|
|
16c6: 0030 movs r0, r6
|
|
16c8: 47b8 blx r7
|
|
16ca: 2800 cmp r0, #0
|
|
16cc: d003 beq.n 16d6 <lv_group_add_obj+0x2e>
|
|
if((*obj_i) == obj) {
|
|
16ce: 6803 ldr r3, [r0, #0]
|
|
16d0: 42a3 cmp r3, r4
|
|
16d2: d1f7 bne.n 16c4 <lv_group_add_obj+0x1c>
|
|
}
|
|
16d4: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(obj->group_p) {
|
|
16d6: 6ba3 ldr r3, [r4, #56] ; 0x38
|
|
16d8: 2b00 cmp r3, #0
|
|
16da: d007 beq.n 16ec <lv_group_add_obj+0x44>
|
|
if(lv_obj_is_focused(obj)) {
|
|
16dc: 0020 movs r0, r4
|
|
16de: 4b13 ldr r3, [pc, #76] ; (172c <lv_group_add_obj+0x84>)
|
|
16e0: 4798 blx r3
|
|
16e2: 2800 cmp r0, #0
|
|
16e4: d002 beq.n 16ec <lv_group_add_obj+0x44>
|
|
lv_group_refocus(obj->group_p);
|
|
16e6: 6ba0 ldr r0, [r4, #56] ; 0x38
|
|
16e8: 4b11 ldr r3, [pc, #68] ; (1730 <lv_group_add_obj+0x88>)
|
|
16ea: 4798 blx r3
|
|
obj->group_p = group;
|
|
16ec: 63a5 str r5, [r4, #56] ; 0x38
|
|
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
|
|
16ee: 0028 movs r0, r5
|
|
16f0: 4b10 ldr r3, [pc, #64] ; (1734 <lv_group_add_obj+0x8c>)
|
|
16f2: 4798 blx r3
|
|
16f4: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(next);
|
|
16f6: 4b10 ldr r3, [pc, #64] ; (1738 <lv_group_add_obj+0x90>)
|
|
16f8: 4798 blx r3
|
|
16fa: 2800 cmp r0, #0
|
|
16fc: d00b beq.n 1716 <lv_group_add_obj+0x6e>
|
|
if(next == NULL) return;
|
|
16fe: 2e00 cmp r6, #0
|
|
1700: d0e8 beq.n 16d4 <lv_group_add_obj+0x2c>
|
|
*next = obj;
|
|
1702: 6034 str r4, [r6, #0]
|
|
if(_lv_ll_get_head(&group->obj_ll) == next) {
|
|
1704: 0028 movs r0, r5
|
|
1706: 4b07 ldr r3, [pc, #28] ; (1724 <lv_group_add_obj+0x7c>)
|
|
1708: 4798 blx r3
|
|
170a: 4286 cmp r6, r0
|
|
170c: d1e2 bne.n 16d4 <lv_group_add_obj+0x2c>
|
|
lv_group_refocus(group);
|
|
170e: 0028 movs r0, r5
|
|
1710: 4b07 ldr r3, [pc, #28] ; (1730 <lv_group_add_obj+0x88>)
|
|
1712: 4798 blx r3
|
|
1714: e7de b.n 16d4 <lv_group_add_obj+0x2c>
|
|
LV_ASSERT_MEM(next);
|
|
1716: 0032 movs r2, r6
|
|
1718: 2300 movs r3, #0
|
|
171a: 4808 ldr r0, [pc, #32] ; (173c <lv_group_add_obj+0x94>)
|
|
171c: 4908 ldr r1, [pc, #32] ; (1740 <lv_group_add_obj+0x98>)
|
|
171e: 4788 blx r1
|
|
1720: e7fe b.n 1720 <lv_group_add_obj+0x78>
|
|
1722: 46c0 nop ; (mov r8, r8)
|
|
1724: 0001066d .word 0x0001066d
|
|
1728: 00010685 .word 0x00010685
|
|
172c: 00003629 .word 0x00003629
|
|
1730: 00001675 .word 0x00001675
|
|
1734: 0001061d .word 0x0001061d
|
|
1738: 0000147d .word 0x0000147d
|
|
173c: 00018724 .word 0x00018724
|
|
1740: 00001485 .word 0x00001485
|
|
|
|
00001744 <lv_group_get_focused>:
|
|
if(!group) return NULL;
|
|
1744: 2800 cmp r0, #0
|
|
1746: d004 beq.n 1752 <lv_group_get_focused+0xe>
|
|
if(group->obj_focus == NULL) return NULL;
|
|
1748: 68c3 ldr r3, [r0, #12]
|
|
174a: 2b00 cmp r3, #0
|
|
174c: d003 beq.n 1756 <lv_group_get_focused+0x12>
|
|
return *group->obj_focus;
|
|
174e: 6818 ldr r0, [r3, #0]
|
|
}
|
|
1750: 4770 bx lr
|
|
if(!group) return NULL;
|
|
1752: 2000 movs r0, #0
|
|
1754: e7fc b.n 1750 <lv_group_get_focused+0xc>
|
|
if(group->obj_focus == NULL) return NULL;
|
|
1756: 2000 movs r0, #0
|
|
1758: e7fa b.n 1750 <lv_group_get_focused+0xc>
|
|
|
|
0000175a <lv_group_get_editing>:
|
|
if(!group) return false;
|
|
175a: 2800 cmp r0, #0
|
|
175c: d003 beq.n 1766 <lv_group_get_editing+0xc>
|
|
return group->editing ? true : false;
|
|
175e: 7d00 ldrb r0, [r0, #20]
|
|
1760: 0780 lsls r0, r0, #30
|
|
1762: 0fc0 lsrs r0, r0, #31
|
|
}
|
|
1764: 4770 bx lr
|
|
if(!group) return false;
|
|
1766: 2000 movs r0, #0
|
|
1768: e7fc b.n 1764 <lv_group_get_editing+0xa>
|
|
...
|
|
|
|
0000176c <lv_indev_get_act>:
|
|
* @return pointer to the currently processed input device or NULL if no input device processing
|
|
* right now
|
|
*/
|
|
lv_indev_t * lv_indev_get_act(void)
|
|
{
|
|
return indev_act;
|
|
176c: 4b01 ldr r3, [pc, #4] ; (1774 <lv_indev_get_act+0x8>)
|
|
176e: 6818 ldr r0, [r3, #0]
|
|
}
|
|
1770: 4770 bx lr
|
|
1772: 46c0 nop ; (mov r8, r8)
|
|
1774: 200026d4 .word 0x200026d4
|
|
|
|
00001778 <lv_indev_reset>:
|
|
* Reset one or all input devices
|
|
* @param indev pointer to an input device to reset or NULL to reset all of them
|
|
* @param obj pointer to an object which triggers the reset.
|
|
*/
|
|
void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj)
|
|
{
|
|
1778: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
177a: 000c movs r4, r1
|
|
if(indev) {
|
|
177c: 2800 cmp r0, #0
|
|
177e: d015 beq.n 17ac <lv_indev_reset+0x34>
|
|
indev->proc.reset_query = 1;
|
|
1780: 2250 movs r2, #80 ; 0x50
|
|
1782: 5c83 ldrb r3, [r0, r2]
|
|
1784: 2102 movs r1, #2
|
|
1786: 430b orrs r3, r1
|
|
1788: 5483 strb r3, [r0, r2]
|
|
if(indev_act == indev) indev_obj_act = NULL;
|
|
178a: 4b18 ldr r3, [pc, #96] ; (17ec <lv_indev_reset+0x74>)
|
|
178c: 681b ldr r3, [r3, #0]
|
|
178e: 4298 cmp r0, r3
|
|
1790: d005 beq.n 179e <lv_indev_reset+0x26>
|
|
if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) {
|
|
1792: 2c00 cmp r4, #0
|
|
1794: d007 beq.n 17a6 <lv_indev_reset+0x2e>
|
|
1796: 6bc3 ldr r3, [r0, #60] ; 0x3c
|
|
1798: 429c cmp r4, r3
|
|
179a: d004 beq.n 17a6 <lv_indev_reset+0x2e>
|
|
i->proc.types.pointer.last_pressed = NULL;
|
|
}
|
|
i = lv_indev_get_next(i);
|
|
}
|
|
}
|
|
}
|
|
179c: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(indev_act == indev) indev_obj_act = NULL;
|
|
179e: 2200 movs r2, #0
|
|
17a0: 4b13 ldr r3, [pc, #76] ; (17f0 <lv_indev_reset+0x78>)
|
|
17a2: 601a str r2, [r3, #0]
|
|
17a4: e7f5 b.n 1792 <lv_indev_reset+0x1a>
|
|
indev->proc.types.pointer.last_pressed = NULL;
|
|
17a6: 2300 movs r3, #0
|
|
17a8: 63c3 str r3, [r0, #60] ; 0x3c
|
|
17aa: e7f7 b.n 179c <lv_indev_reset+0x24>
|
|
lv_indev_t * i = lv_indev_get_next(NULL);
|
|
17ac: 2000 movs r0, #0
|
|
17ae: 4b11 ldr r3, [pc, #68] ; (17f4 <lv_indev_reset+0x7c>)
|
|
17b0: 4798 blx r3
|
|
while(i) {
|
|
17b2: 2800 cmp r0, #0
|
|
17b4: d0f2 beq.n 179c <lv_indev_reset+0x24>
|
|
if(indev_act == i) indev_obj_act = NULL;
|
|
17b6: 4f0d ldr r7, [pc, #52] ; (17ec <lv_indev_reset+0x74>)
|
|
17b8: 4d0d ldr r5, [pc, #52] ; (17f0 <lv_indev_reset+0x78>)
|
|
i = lv_indev_get_next(i);
|
|
17ba: 4e0e ldr r6, [pc, #56] ; (17f4 <lv_indev_reset+0x7c>)
|
|
17bc: e007 b.n 17ce <lv_indev_reset+0x56>
|
|
if(indev_act == i) indev_obj_act = NULL;
|
|
17be: 2300 movs r3, #0
|
|
17c0: 602b str r3, [r5, #0]
|
|
17c2: e00c b.n 17de <lv_indev_reset+0x66>
|
|
i->proc.types.pointer.last_pressed = NULL;
|
|
17c4: 2300 movs r3, #0
|
|
17c6: 63c3 str r3, [r0, #60] ; 0x3c
|
|
i = lv_indev_get_next(i);
|
|
17c8: 47b0 blx r6
|
|
while(i) {
|
|
17ca: 2800 cmp r0, #0
|
|
17cc: d0e6 beq.n 179c <lv_indev_reset+0x24>
|
|
i->proc.reset_query = 1;
|
|
17ce: 2250 movs r2, #80 ; 0x50
|
|
17d0: 5c83 ldrb r3, [r0, r2]
|
|
17d2: 2102 movs r1, #2
|
|
17d4: 430b orrs r3, r1
|
|
17d6: 5483 strb r3, [r0, r2]
|
|
if(indev_act == i) indev_obj_act = NULL;
|
|
17d8: 683b ldr r3, [r7, #0]
|
|
17da: 4283 cmp r3, r0
|
|
17dc: d0ef beq.n 17be <lv_indev_reset+0x46>
|
|
if(obj == NULL || i->proc.types.pointer.last_pressed == obj) {
|
|
17de: 2c00 cmp r4, #0
|
|
17e0: d0f0 beq.n 17c4 <lv_indev_reset+0x4c>
|
|
17e2: 6bc3 ldr r3, [r0, #60] ; 0x3c
|
|
17e4: 429c cmp r4, r3
|
|
17e6: d1ef bne.n 17c8 <lv_indev_reset+0x50>
|
|
17e8: e7ec b.n 17c4 <lv_indev_reset+0x4c>
|
|
17ea: 46c0 nop ; (mov r8, r8)
|
|
17ec: 200026d4 .word 0x200026d4
|
|
17f0: 200026d8 .word 0x200026d8
|
|
17f4: 0000f74d .word 0x0000f74d
|
|
|
|
000017f8 <_lv_indev_init>:
|
|
{
|
|
17f8: b510 push {r4, lr}
|
|
lv_indev_reset(NULL, NULL); /*Reset all input devices*/
|
|
17fa: 2100 movs r1, #0
|
|
17fc: 2000 movs r0, #0
|
|
17fe: 4b01 ldr r3, [pc, #4] ; (1804 <_lv_indev_init+0xc>)
|
|
1800: 4798 blx r3
|
|
}
|
|
1802: bd10 pop {r4, pc}
|
|
1804: 00001779 .word 0x00001779
|
|
|
|
00001808 <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)
|
|
{
|
|
1808: b5f0 push {r4, r5, r6, r7, lr}
|
|
180a: b085 sub sp, #20
|
|
180c: 000d movs r5, r1
|
|
180e: 9102 str r1, [sp, #8]
|
|
1810: 0016 movs r6, r2
|
|
1812: 9203 str r2, [sp, #12]
|
|
lv_obj_t * i;
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
1814: 1d03 adds r3, r0, #4
|
|
1816: 9301 str r3, [sp, #4]
|
|
1818: 0018 movs r0, r3
|
|
181a: 4b0f ldr r3, [pc, #60] ; (1858 <refresh_children_position+0x50>)
|
|
181c: 4798 blx r3
|
|
181e: 1e04 subs r4, r0, #0
|
|
1820: d018 beq.n 1854 <refresh_children_position+0x4c>
|
|
i->coords.x1 += x_diff;
|
|
1822: b2ad uxth r5, r5
|
|
i->coords.y1 += y_diff;
|
|
1824: b2b7 uxth r7, r6
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
1826: 4e0d ldr r6, [pc, #52] ; (185c <refresh_children_position+0x54>)
|
|
i->coords.x1 += x_diff;
|
|
1828: 8a23 ldrh r3, [r4, #16]
|
|
182a: 18eb adds r3, r5, r3
|
|
182c: 8223 strh r3, [r4, #16]
|
|
i->coords.y1 += y_diff;
|
|
182e: 8a63 ldrh r3, [r4, #18]
|
|
1830: 18fb adds r3, r7, r3
|
|
1832: 8263 strh r3, [r4, #18]
|
|
i->coords.x2 += x_diff;
|
|
1834: 8aa3 ldrh r3, [r4, #20]
|
|
1836: 18eb adds r3, r5, r3
|
|
1838: 82a3 strh r3, [r4, #20]
|
|
i->coords.y2 += y_diff;
|
|
183a: 8ae3 ldrh r3, [r4, #22]
|
|
183c: 18fb adds r3, r7, r3
|
|
183e: 82e3 strh r3, [r4, #22]
|
|
|
|
refresh_children_position(i, x_diff, y_diff);
|
|
1840: 9a03 ldr r2, [sp, #12]
|
|
1842: 9902 ldr r1, [sp, #8]
|
|
1844: 0020 movs r0, r4
|
|
1846: f7ff ffdf bl 1808 <refresh_children_position>
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
184a: 0021 movs r1, r4
|
|
184c: 9801 ldr r0, [sp, #4]
|
|
184e: 47b0 blx r6
|
|
1850: 1e04 subs r4, r0, #0
|
|
1852: d1e9 bne.n 1828 <refresh_children_position+0x20>
|
|
}
|
|
}
|
|
1854: b005 add sp, #20
|
|
1856: bdf0 pop {r4, r5, r6, r7, pc}
|
|
1858: 0001066d .word 0x0001066d
|
|
185c: 00010685 .word 0x00010685
|
|
|
|
00001860 <lv_init>:
|
|
{
|
|
1860: b530 push {r4, r5, lr}
|
|
1862: b085 sub sp, #20
|
|
if(lv_initialized) {
|
|
1864: 4b19 ldr r3, [pc, #100] ; (18cc <lv_init+0x6c>)
|
|
1866: 781b ldrb r3, [r3, #0]
|
|
1868: 2b00 cmp r3, #0
|
|
186a: d001 beq.n 1870 <lv_init+0x10>
|
|
}
|
|
186c: b005 add sp, #20
|
|
186e: bd30 pop {r4, r5, pc}
|
|
_lv_mem_init();
|
|
1870: 4b17 ldr r3, [pc, #92] ; (18d0 <lv_init+0x70>)
|
|
1872: 4798 blx r3
|
|
_lv_task_core_init();
|
|
1874: 4b17 ldr r3, [pc, #92] ; (18d4 <lv_init+0x74>)
|
|
1876: 4798 blx r3
|
|
_lv_fs_init();
|
|
1878: 4b17 ldr r3, [pc, #92] ; (18d8 <lv_init+0x78>)
|
|
187a: 4798 blx r3
|
|
_lv_anim_core_init();
|
|
187c: 4b17 ldr r3, [pc, #92] ; (18dc <lv_init+0x7c>)
|
|
187e: 4798 blx r3
|
|
_lv_group_init();
|
|
1880: 4b17 ldr r3, [pc, #92] ; (18e0 <lv_init+0x80>)
|
|
1882: 4798 blx r3
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
|
|
1884: 2110 movs r1, #16
|
|
1886: 4817 ldr r0, [pc, #92] ; (18e4 <lv_init+0x84>)
|
|
1888: 4c17 ldr r4, [pc, #92] ; (18e8 <lv_init+0x88>)
|
|
188a: 47a0 blx r4
|
|
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
|
|
188c: 4b17 ldr r3, [pc, #92] ; (18ec <lv_init+0x8c>)
|
|
188e: 9302 str r3, [sp, #8]
|
|
1890: 9301 str r3, [sp, #4]
|
|
1892: 9300 str r3, [sp, #0]
|
|
1894: 2202 movs r2, #2
|
|
1896: 211f movs r1, #31
|
|
1898: 4815 ldr r0, [pc, #84] ; (18f0 <lv_init+0x90>)
|
|
189a: 8800 ldrh r0, [r0, #0]
|
|
189c: 4d15 ldr r5, [pc, #84] ; (18f4 <lv_init+0x94>)
|
|
189e: 47a8 blx r5
|
|
lv_theme_set_act(th);
|
|
18a0: 4b15 ldr r3, [pc, #84] ; (18f8 <lv_init+0x98>)
|
|
18a2: 4798 blx r3
|
|
_lv_refr_init();
|
|
18a4: 4b15 ldr r3, [pc, #84] ; (18fc <lv_init+0x9c>)
|
|
18a6: 4798 blx r3
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t));
|
|
18a8: 21b8 movs r1, #184 ; 0xb8
|
|
18aa: 0049 lsls r1, r1, #1
|
|
18ac: 4814 ldr r0, [pc, #80] ; (1900 <lv_init+0xa0>)
|
|
18ae: 47a0 blx r4
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t));
|
|
18b0: 2160 movs r1, #96 ; 0x60
|
|
18b2: 4814 ldr r0, [pc, #80] ; (1904 <lv_init+0xa4>)
|
|
18b4: 47a0 blx r4
|
|
_lv_indev_init();
|
|
18b6: 4b14 ldr r3, [pc, #80] ; (1908 <lv_init+0xa8>)
|
|
18b8: 4798 blx r3
|
|
_lv_img_decoder_init();
|
|
18ba: 4b14 ldr r3, [pc, #80] ; (190c <lv_init+0xac>)
|
|
18bc: 4798 blx r3
|
|
lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE);
|
|
18be: 2001 movs r0, #1
|
|
18c0: 4b13 ldr r3, [pc, #76] ; (1910 <lv_init+0xb0>)
|
|
18c2: 4798 blx r3
|
|
lv_initialized = true;
|
|
18c4: 2201 movs r2, #1
|
|
18c6: 4b01 ldr r3, [pc, #4] ; (18cc <lv_init+0x6c>)
|
|
18c8: 701a strb r2, [r3, #0]
|
|
18ca: e7cf b.n 186c <lv_init+0xc>
|
|
18cc: 200026e4 .word 0x200026e4
|
|
18d0: 00010a49 .word 0x00010a49
|
|
18d4: 00011199 .word 0x00011199
|
|
18d8: 00010349 .word 0x00010349
|
|
18dc: 0000f9f9 .word 0x0000f9f9
|
|
18e0: 00001631 .word 0x00001631
|
|
18e4: 20004d68 .word 0x20004d68
|
|
18e8: 000105b9 .word 0x000105b9
|
|
18ec: 20000030 .word 0x20000030
|
|
18f0: 00018732 .word 0x00018732
|
|
18f4: 00014491 .word 0x00014491
|
|
18f8: 00011c51 .word 0x00011c51
|
|
18fc: 0000429d .word 0x0000429d
|
|
1900: 20004cc4 .word 0x20004cc4
|
|
1904: 20004cb8 .word 0x20004cb8
|
|
1908: 000017f9 .word 0x000017f9
|
|
190c: 0000e6f9 .word 0x0000e6f9
|
|
1910: 0000dc59 .word 0x0000dc59
|
|
|
|
00001914 <lv_obj_set_click>:
|
|
{
|
|
1914: b570 push {r4, r5, r6, lr}
|
|
1916: 0004 movs r4, r0
|
|
1918: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
191a: 4b09 ldr r3, [pc, #36] ; (1940 <lv_obj_set_click+0x2c>)
|
|
191c: 4798 blx r3
|
|
191e: 2800 cmp r0, #0
|
|
1920: d008 beq.n 1934 <lv_obj_set_click+0x20>
|
|
obj->click = (en == true ? 1 : 0);
|
|
1922: 2234 movs r2, #52 ; 0x34
|
|
1924: 2301 movs r3, #1
|
|
1926: 401d ands r5, r3
|
|
1928: 5ca3 ldrb r3, [r4, r2]
|
|
192a: 2001 movs r0, #1
|
|
192c: 4383 bics r3, r0
|
|
192e: 432b orrs r3, r5
|
|
1930: 54a3 strb r3, [r4, r2]
|
|
}
|
|
1932: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1934: 0022 movs r2, r4
|
|
1936: 2300 movs r3, #0
|
|
1938: 4802 ldr r0, [pc, #8] ; (1944 <lv_obj_set_click+0x30>)
|
|
193a: 4903 ldr r1, [pc, #12] ; (1948 <lv_obj_set_click+0x34>)
|
|
193c: 4788 blx r1
|
|
193e: e7fe b.n 193e <lv_obj_set_click+0x2a>
|
|
1940: 0000147d .word 0x0000147d
|
|
1944: 0001878c .word 0x0001878c
|
|
1948: 00001485 .word 0x00001485
|
|
|
|
0000194c <lv_event_send_func>:
|
|
{
|
|
194c: b5f0 push {r4, r5, r6, r7, lr}
|
|
194e: b087 sub sp, #28
|
|
1950: 0007 movs r7, r0
|
|
1952: 000c movs r4, r1
|
|
1954: 9201 str r2, [sp, #4]
|
|
1956: 001e movs r6, r3
|
|
if(obj != NULL) {
|
|
1958: 2900 cmp r1, #0
|
|
195a: d004 beq.n 1966 <lv_event_send_func+0x1a>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
195c: 0008 movs r0, r1
|
|
195e: 4b25 ldr r3, [pc, #148] ; (19f4 <lv_event_send_func+0xa8>)
|
|
1960: 4798 blx r3
|
|
1962: 2800 cmp r0, #0
|
|
1964: d03c beq.n 19e0 <lv_event_send_func+0x94>
|
|
event_temp_data.obj = obj;
|
|
1966: ab03 add r3, sp, #12
|
|
1968: 9403 str r4, [sp, #12]
|
|
event_temp_data.deleted = false;
|
|
196a: 2200 movs r2, #0
|
|
196c: 711a strb r2, [r3, #4]
|
|
event_temp_data.prev = NULL;
|
|
196e: 9205 str r2, [sp, #20]
|
|
if(event_temp_data_head) {
|
|
1970: 4b21 ldr r3, [pc, #132] ; (19f8 <lv_event_send_func+0xac>)
|
|
1972: 681b ldr r3, [r3, #0]
|
|
1974: 2b00 cmp r3, #0
|
|
1976: d000 beq.n 197a <lv_event_send_func+0x2e>
|
|
event_temp_data.prev = event_temp_data_head;
|
|
1978: 9305 str r3, [sp, #20]
|
|
event_temp_data_head = &event_temp_data;
|
|
197a: aa03 add r2, sp, #12
|
|
197c: 4b1e ldr r3, [pc, #120] ; (19f8 <lv_event_send_func+0xac>)
|
|
197e: 601a str r2, [r3, #0]
|
|
const void * event_act_data_save = event_act_data;
|
|
1980: 4b1e ldr r3, [pc, #120] ; (19fc <lv_event_send_func+0xb0>)
|
|
1982: 681d ldr r5, [r3, #0]
|
|
event_act_data = data;
|
|
1984: 601e str r6, [r3, #0]
|
|
lv_indev_t * indev_act = lv_indev_get_act();
|
|
1986: 4b1e ldr r3, [pc, #120] ; (1a00 <lv_event_send_func+0xb4>)
|
|
1988: 4798 blx r3
|
|
if(indev_act) {
|
|
198a: 2800 cmp r0, #0
|
|
198c: d004 beq.n 1998 <lv_event_send_func+0x4c>
|
|
if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event);
|
|
198e: 6883 ldr r3, [r0, #8]
|
|
1990: 2b00 cmp r3, #0
|
|
1992: d001 beq.n 1998 <lv_event_send_func+0x4c>
|
|
1994: 9901 ldr r1, [sp, #4]
|
|
1996: 4798 blx r3
|
|
if(event_xcb) event_xcb(obj, event);
|
|
1998: 2f00 cmp r7, #0
|
|
199a: d002 beq.n 19a2 <lv_event_send_func+0x56>
|
|
199c: 9901 ldr r1, [sp, #4]
|
|
199e: 0020 movs r0, r4
|
|
19a0: 47b8 blx r7
|
|
event_act_data = event_act_data_save;
|
|
19a2: 4b16 ldr r3, [pc, #88] ; (19fc <lv_event_send_func+0xb0>)
|
|
19a4: 601d str r5, [r3, #0]
|
|
event_temp_data_head = event_temp_data_head->prev;
|
|
19a6: 4b14 ldr r3, [pc, #80] ; (19f8 <lv_event_send_func+0xac>)
|
|
19a8: 681a ldr r2, [r3, #0]
|
|
19aa: 6892 ldr r2, [r2, #8]
|
|
19ac: 601a str r2, [r3, #0]
|
|
if(event_temp_data.deleted) {
|
|
19ae: ab03 add r3, sp, #12
|
|
19b0: 791b ldrb r3, [r3, #4]
|
|
return LV_RES_INV;
|
|
19b2: 2000 movs r0, #0
|
|
if(event_temp_data.deleted) {
|
|
19b4: 2b00 cmp r3, #0
|
|
19b6: d111 bne.n 19dc <lv_event_send_func+0x90>
|
|
if(obj) {
|
|
19b8: 2c00 cmp r4, #0
|
|
19ba: d017 beq.n 19ec <lv_event_send_func+0xa0>
|
|
if(obj->parent_event && obj->parent) {
|
|
19bc: 3334 adds r3, #52 ; 0x34
|
|
19be: 5ce3 ldrb r3, [r4, r3]
|
|
return LV_RES_OK;
|
|
19c0: 3001 adds r0, #1
|
|
if(obj->parent_event && obj->parent) {
|
|
19c2: 065b lsls r3, r3, #25
|
|
19c4: d50a bpl.n 19dc <lv_event_send_func+0x90>
|
|
19c6: 6820 ldr r0, [r4, #0]
|
|
19c8: 2800 cmp r0, #0
|
|
19ca: d011 beq.n 19f0 <lv_event_send_func+0xa4>
|
|
lv_res_t res = lv_event_send(obj->parent, event, data);
|
|
19cc: 0032 movs r2, r6
|
|
19ce: 9901 ldr r1, [sp, #4]
|
|
19d0: 4b0c ldr r3, [pc, #48] ; (1a04 <lv_event_send_func+0xb8>)
|
|
19d2: 4798 blx r3
|
|
if(res != LV_RES_OK) {
|
|
19d4: 3801 subs r0, #1
|
|
19d6: 4242 negs r2, r0
|
|
19d8: 4142 adcs r2, r0
|
|
return LV_RES_INV;
|
|
19da: b2d0 uxtb r0, r2
|
|
}
|
|
19dc: b007 add sp, #28
|
|
19de: bdf0 pop {r4, r5, r6, r7, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
19e0: 0022 movs r2, r4
|
|
19e2: 2300 movs r3, #0
|
|
19e4: 4808 ldr r0, [pc, #32] ; (1a08 <lv_event_send_func+0xbc>)
|
|
19e6: 4909 ldr r1, [pc, #36] ; (1a0c <lv_event_send_func+0xc0>)
|
|
19e8: 4788 blx r1
|
|
19ea: e7fe b.n 19ea <lv_event_send_func+0x9e>
|
|
return LV_RES_OK;
|
|
19ec: 2001 movs r0, #1
|
|
19ee: e7f5 b.n 19dc <lv_event_send_func+0x90>
|
|
19f0: 2001 movs r0, #1
|
|
19f2: e7f3 b.n 19dc <lv_event_send_func+0x90>
|
|
19f4: 0000147d .word 0x0000147d
|
|
19f8: 200026e0 .word 0x200026e0
|
|
19fc: 200026dc .word 0x200026dc
|
|
1a00: 0000176d .word 0x0000176d
|
|
1a04: 00001a11 .word 0x00001a11
|
|
1a08: 0001878c .word 0x0001878c
|
|
1a0c: 00001485 .word 0x00001485
|
|
|
|
00001a10 <lv_event_send>:
|
|
{
|
|
1a10: b570 push {r4, r5, r6, lr}
|
|
1a12: 0004 movs r4, r0
|
|
1a14: 000d movs r5, r1
|
|
1a16: 0016 movs r6, r2
|
|
if(obj == NULL) return LV_RES_OK;
|
|
1a18: 2800 cmp r0, #0
|
|
1a1a: d010 beq.n 1a3e <lv_event_send+0x2e>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1a1c: 4b09 ldr r3, [pc, #36] ; (1a44 <lv_event_send+0x34>)
|
|
1a1e: 4798 blx r3
|
|
1a20: 2800 cmp r0, #0
|
|
1a22: d105 bne.n 1a30 <lv_event_send+0x20>
|
|
1a24: 0022 movs r2, r4
|
|
1a26: 2300 movs r3, #0
|
|
1a28: 4807 ldr r0, [pc, #28] ; (1a48 <lv_event_send+0x38>)
|
|
1a2a: 4908 ldr r1, [pc, #32] ; (1a4c <lv_event_send+0x3c>)
|
|
1a2c: 4788 blx r1
|
|
1a2e: e7fe b.n 1a2e <lv_event_send+0x1e>
|
|
res = lv_event_send_func(obj->event_cb, obj, event, data);
|
|
1a30: 69a0 ldr r0, [r4, #24]
|
|
1a32: 0033 movs r3, r6
|
|
1a34: 002a movs r2, r5
|
|
1a36: 0021 movs r1, r4
|
|
1a38: 4c05 ldr r4, [pc, #20] ; (1a50 <lv_event_send+0x40>)
|
|
1a3a: 47a0 blx r4
|
|
}
|
|
1a3c: bd70 pop {r4, r5, r6, pc}
|
|
if(obj == NULL) return LV_RES_OK;
|
|
1a3e: 2001 movs r0, #1
|
|
1a40: e7fc b.n 1a3c <lv_event_send+0x2c>
|
|
1a42: 46c0 nop ; (mov r8, r8)
|
|
1a44: 0000147d .word 0x0000147d
|
|
1a48: 0001878c .word 0x0001878c
|
|
1a4c: 00001485 .word 0x00001485
|
|
1a50: 0000194d .word 0x0000194d
|
|
|
|
00001a54 <lv_signal_send>:
|
|
{
|
|
1a54: b510 push {r4, lr}
|
|
if(obj == NULL) return LV_RES_OK;
|
|
1a56: 2800 cmp r0, #0
|
|
1a58: d004 beq.n 1a64 <lv_signal_send+0x10>
|
|
if(obj->signal_cb) res = obj->signal_cb(obj, signal, param);
|
|
1a5a: 69c3 ldr r3, [r0, #28]
|
|
1a5c: 2b00 cmp r3, #0
|
|
1a5e: d003 beq.n 1a68 <lv_signal_send+0x14>
|
|
1a60: 4798 blx r3
|
|
}
|
|
1a62: bd10 pop {r4, pc}
|
|
if(obj == NULL) return LV_RES_OK;
|
|
1a64: 2001 movs r0, #1
|
|
1a66: e7fc b.n 1a62 <lv_signal_send+0xe>
|
|
lv_res_t res = LV_RES_OK;
|
|
1a68: 2001 movs r0, #1
|
|
1a6a: e7fa b.n 1a62 <lv_signal_send+0xe>
|
|
|
|
00001a6c <lv_obj_refresh_ext_draw_pad>:
|
|
{
|
|
1a6c: b510 push {r4, lr}
|
|
1a6e: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1a70: 4b08 ldr r3, [pc, #32] ; (1a94 <lv_obj_refresh_ext_draw_pad+0x28>)
|
|
1a72: 4798 blx r3
|
|
1a74: 2800 cmp r0, #0
|
|
1a76: d105 bne.n 1a84 <lv_obj_refresh_ext_draw_pad+0x18>
|
|
1a78: 0022 movs r2, r4
|
|
1a7a: 2300 movs r3, #0
|
|
1a7c: 4806 ldr r0, [pc, #24] ; (1a98 <lv_obj_refresh_ext_draw_pad+0x2c>)
|
|
1a7e: 4907 ldr r1, [pc, #28] ; (1a9c <lv_obj_refresh_ext_draw_pad+0x30>)
|
|
1a80: 4788 blx r1
|
|
1a82: e7fe b.n 1a82 <lv_obj_refresh_ext_draw_pad+0x16>
|
|
obj->ext_draw_pad = 0;
|
|
1a84: 2300 movs r3, #0
|
|
1a86: 8663 strh r3, [r4, #50] ; 0x32
|
|
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
|
|
1a88: 69e3 ldr r3, [r4, #28]
|
|
1a8a: 2200 movs r2, #0
|
|
1a8c: 2106 movs r1, #6
|
|
1a8e: 0020 movs r0, r4
|
|
1a90: 4798 blx r3
|
|
}
|
|
1a92: bd10 pop {r4, pc}
|
|
1a94: 0000147d .word 0x0000147d
|
|
1a98: 0001878c .word 0x0001878c
|
|
1a9c: 00001485 .word 0x00001485
|
|
|
|
00001aa0 <lv_obj_get_parent>:
|
|
{
|
|
1aa0: b510 push {r4, lr}
|
|
1aa2: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1aa4: 4b05 ldr r3, [pc, #20] ; (1abc <lv_obj_get_parent+0x1c>)
|
|
1aa6: 4798 blx r3
|
|
1aa8: 2800 cmp r0, #0
|
|
1aaa: d001 beq.n 1ab0 <lv_obj_get_parent+0x10>
|
|
return obj->parent;
|
|
1aac: 6820 ldr r0, [r4, #0]
|
|
}
|
|
1aae: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ab0: 0022 movs r2, r4
|
|
1ab2: 2300 movs r3, #0
|
|
1ab4: 4802 ldr r0, [pc, #8] ; (1ac0 <lv_obj_get_parent+0x20>)
|
|
1ab6: 4903 ldr r1, [pc, #12] ; (1ac4 <lv_obj_get_parent+0x24>)
|
|
1ab8: 4788 blx r1
|
|
1aba: e7fe b.n 1aba <lv_obj_get_parent+0x1a>
|
|
1abc: 0000147d .word 0x0000147d
|
|
1ac0: 0001878c .word 0x0001878c
|
|
1ac4: 00001485 .word 0x00001485
|
|
|
|
00001ac8 <lv_obj_get_screen>:
|
|
{
|
|
1ac8: b570 push {r4, r5, r6, lr}
|
|
1aca: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1acc: 4b09 ldr r3, [pc, #36] ; (1af4 <lv_obj_get_screen+0x2c>)
|
|
1ace: 4798 blx r3
|
|
1ad0: 2800 cmp r0, #0
|
|
1ad2: d001 beq.n 1ad8 <lv_obj_get_screen+0x10>
|
|
par = lv_obj_get_parent(act_p);
|
|
1ad4: 4d08 ldr r5, [pc, #32] ; (1af8 <lv_obj_get_screen+0x30>)
|
|
1ad6: e006 b.n 1ae6 <lv_obj_get_screen+0x1e>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ad8: 0022 movs r2, r4
|
|
1ada: 2300 movs r3, #0
|
|
1adc: 4807 ldr r0, [pc, #28] ; (1afc <lv_obj_get_screen+0x34>)
|
|
1ade: 4908 ldr r1, [pc, #32] ; (1b00 <lv_obj_get_screen+0x38>)
|
|
1ae0: 4788 blx r1
|
|
1ae2: e7fe b.n 1ae2 <lv_obj_get_screen+0x1a>
|
|
par = lv_obj_get_parent(act_p);
|
|
1ae4: 0004 movs r4, r0
|
|
1ae6: 0020 movs r0, r4
|
|
1ae8: 47a8 blx r5
|
|
} while(par != NULL);
|
|
1aea: 2800 cmp r0, #0
|
|
1aec: d1fa bne.n 1ae4 <lv_obj_get_screen+0x1c>
|
|
}
|
|
1aee: 0020 movs r0, r4
|
|
1af0: bd70 pop {r4, r5, r6, pc}
|
|
1af2: 46c0 nop ; (mov r8, r8)
|
|
1af4: 0000147d .word 0x0000147d
|
|
1af8: 00001aa1 .word 0x00001aa1
|
|
1afc: 0001878c .word 0x0001878c
|
|
1b00: 00001485 .word 0x00001485
|
|
|
|
00001b04 <lv_obj_get_disp>:
|
|
{
|
|
1b04: b5f0 push {r4, r5, r6, r7, lr}
|
|
1b06: 46c6 mov lr, r8
|
|
1b08: b500 push {lr}
|
|
1b0a: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1b0c: 4b19 ldr r3, [pc, #100] ; (1b74 <lv_obj_get_disp+0x70>)
|
|
1b0e: 4798 blx r3
|
|
1b10: 2800 cmp r0, #0
|
|
1b12: d00f beq.n 1b34 <lv_obj_get_disp+0x30>
|
|
if(obj->parent == NULL)
|
|
1b14: 6823 ldr r3, [r4, #0]
|
|
1b16: 2b00 cmp r3, #0
|
|
1b18: d003 beq.n 1b22 <lv_obj_get_disp+0x1e>
|
|
scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/
|
|
1b1a: 0020 movs r0, r4
|
|
1b1c: 4b16 ldr r3, [pc, #88] ; (1b78 <lv_obj_get_disp+0x74>)
|
|
1b1e: 4798 blx r3
|
|
1b20: 0004 movs r4, r0
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
|
|
1b22: 4816 ldr r0, [pc, #88] ; (1b7c <lv_obj_get_disp+0x78>)
|
|
1b24: 4b16 ldr r3, [pc, #88] ; (1b80 <lv_obj_get_disp+0x7c>)
|
|
1b26: 4798 blx r3
|
|
1b28: 1e07 subs r7, r0, #0
|
|
1b2a: d01e beq.n 1b6a <lv_obj_get_disp+0x66>
|
|
_LV_LL_READ(d->scr_ll, s) {
|
|
1b2c: 4b14 ldr r3, [pc, #80] ; (1b80 <lv_obj_get_disp+0x7c>)
|
|
1b2e: 4698 mov r8, r3
|
|
1b30: 4e14 ldr r6, [pc, #80] ; (1b84 <lv_obj_get_disp+0x80>)
|
|
1b32: e00b b.n 1b4c <lv_obj_get_disp+0x48>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1b34: 0022 movs r2, r4
|
|
1b36: 2300 movs r3, #0
|
|
1b38: 4813 ldr r0, [pc, #76] ; (1b88 <lv_obj_get_disp+0x84>)
|
|
1b3a: 4914 ldr r1, [pc, #80] ; (1b8c <lv_obj_get_disp+0x88>)
|
|
1b3c: 4788 blx r1
|
|
1b3e: e7fe b.n 1b3e <lv_obj_get_disp+0x3a>
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
|
|
1b40: 0039 movs r1, r7
|
|
1b42: 480e ldr r0, [pc, #56] ; (1b7c <lv_obj_get_disp+0x78>)
|
|
1b44: 4b0f ldr r3, [pc, #60] ; (1b84 <lv_obj_get_disp+0x80>)
|
|
1b46: 4798 blx r3
|
|
1b48: 1e07 subs r7, r0, #0
|
|
1b4a: d00e beq.n 1b6a <lv_obj_get_disp+0x66>
|
|
_LV_LL_READ(d->scr_ll, s) {
|
|
1b4c: 003d movs r5, r7
|
|
1b4e: 3530 adds r5, #48 ; 0x30
|
|
1b50: 0028 movs r0, r5
|
|
1b52: 47c0 blx r8
|
|
1b54: 2800 cmp r0, #0
|
|
1b56: d0f3 beq.n 1b40 <lv_obj_get_disp+0x3c>
|
|
if(s == scr) return d;
|
|
1b58: 4284 cmp r4, r0
|
|
1b5a: d006 beq.n 1b6a <lv_obj_get_disp+0x66>
|
|
_LV_LL_READ(d->scr_ll, s) {
|
|
1b5c: 0001 movs r1, r0
|
|
1b5e: 0028 movs r0, r5
|
|
1b60: 47b0 blx r6
|
|
1b62: 2800 cmp r0, #0
|
|
1b64: d0ec beq.n 1b40 <lv_obj_get_disp+0x3c>
|
|
if(s == scr) return d;
|
|
1b66: 4284 cmp r4, r0
|
|
1b68: d1f8 bne.n 1b5c <lv_obj_get_disp+0x58>
|
|
}
|
|
1b6a: 0038 movs r0, r7
|
|
1b6c: bc04 pop {r2}
|
|
1b6e: 4690 mov r8, r2
|
|
1b70: bdf0 pop {r4, r5, r6, r7, pc}
|
|
1b72: 46c0 nop ; (mov r8, r8)
|
|
1b74: 0000147d .word 0x0000147d
|
|
1b78: 00001ac9 .word 0x00001ac9
|
|
1b7c: 20004cc4 .word 0x20004cc4
|
|
1b80: 0001066d .word 0x0001066d
|
|
1b84: 00010685 .word 0x00010685
|
|
1b88: 0001878c .word 0x0001878c
|
|
1b8c: 00001485 .word 0x00001485
|
|
|
|
00001b90 <lv_obj_get_child>:
|
|
{
|
|
1b90: b570 push {r4, r5, r6, lr}
|
|
1b92: 0004 movs r4, r0
|
|
1b94: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1b96: 4b0a ldr r3, [pc, #40] ; (1bc0 <lv_obj_get_child+0x30>)
|
|
1b98: 4798 blx r3
|
|
1b9a: 2800 cmp r0, #0
|
|
1b9c: d006 beq.n 1bac <lv_obj_get_child+0x1c>
|
|
if(child == NULL) {
|
|
1b9e: 2d00 cmp r5, #0
|
|
1ba0: d00a beq.n 1bb8 <lv_obj_get_child+0x28>
|
|
result = _lv_ll_get_next(&obj->child_ll, child);
|
|
1ba2: 1d20 adds r0, r4, #4
|
|
1ba4: 0029 movs r1, r5
|
|
1ba6: 4b07 ldr r3, [pc, #28] ; (1bc4 <lv_obj_get_child+0x34>)
|
|
1ba8: 4798 blx r3
|
|
}
|
|
1baa: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1bac: 0022 movs r2, r4
|
|
1bae: 2300 movs r3, #0
|
|
1bb0: 4805 ldr r0, [pc, #20] ; (1bc8 <lv_obj_get_child+0x38>)
|
|
1bb2: 4906 ldr r1, [pc, #24] ; (1bcc <lv_obj_get_child+0x3c>)
|
|
1bb4: 4788 blx r1
|
|
1bb6: e7fe b.n 1bb6 <lv_obj_get_child+0x26>
|
|
result = _lv_ll_get_head(&obj->child_ll);
|
|
1bb8: 1d20 adds r0, r4, #4
|
|
1bba: 4b05 ldr r3, [pc, #20] ; (1bd0 <lv_obj_get_child+0x40>)
|
|
1bbc: 4798 blx r3
|
|
1bbe: e7f4 b.n 1baa <lv_obj_get_child+0x1a>
|
|
1bc0: 0000147d .word 0x0000147d
|
|
1bc4: 00010685 .word 0x00010685
|
|
1bc8: 0001878c .word 0x0001878c
|
|
1bcc: 00001485 .word 0x00001485
|
|
1bd0: 0001066d .word 0x0001066d
|
|
|
|
00001bd4 <lv_obj_get_coords>:
|
|
{
|
|
1bd4: b570 push {r4, r5, r6, lr}
|
|
1bd6: 0004 movs r4, r0
|
|
1bd8: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1bda: 4b0a ldr r3, [pc, #40] ; (1c04 <lv_obj_get_coords+0x30>)
|
|
1bdc: 4798 blx r3
|
|
1bde: 2800 cmp r0, #0
|
|
1be0: d009 beq.n 1bf6 <lv_obj_get_coords+0x22>
|
|
1be2: 0020 movs r0, r4
|
|
1be4: 3018 adds r0, #24
|
|
* @param len number of byte to copy
|
|
*/
|
|
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
|
|
{
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
const uint8_t * s8 = (const uint8_t *)src;
|
|
1be6: 3410 adds r4, #16
|
|
|
|
while(len) {
|
|
*d8 = *s8;
|
|
1be8: 7821 ldrb r1, [r4, #0]
|
|
1bea: 7029 strb r1, [r5, #0]
|
|
d8++;
|
|
1bec: 3501 adds r5, #1
|
|
s8++;
|
|
1bee: 3401 adds r4, #1
|
|
while(len) {
|
|
1bf0: 42a0 cmp r0, r4
|
|
1bf2: d1f9 bne.n 1be8 <lv_obj_get_coords+0x14>
|
|
}
|
|
1bf4: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1bf6: 0022 movs r2, r4
|
|
1bf8: 2300 movs r3, #0
|
|
1bfa: 4803 ldr r0, [pc, #12] ; (1c08 <lv_obj_get_coords+0x34>)
|
|
1bfc: 4903 ldr r1, [pc, #12] ; (1c0c <lv_obj_get_coords+0x38>)
|
|
1bfe: 4788 blx r1
|
|
1c00: e7fe b.n 1c00 <lv_obj_get_coords+0x2c>
|
|
1c02: 46c0 nop ; (mov r8, r8)
|
|
1c04: 0000147d .word 0x0000147d
|
|
1c08: 0001878c .word 0x0001878c
|
|
1c0c: 00001485 .word 0x00001485
|
|
|
|
00001c10 <lv_obj_get_x>:
|
|
{
|
|
1c10: b510 push {r4, lr}
|
|
1c12: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1c14: 4b0b ldr r3, [pc, #44] ; (1c44 <lv_obj_get_x+0x34>)
|
|
1c16: 4798 blx r3
|
|
1c18: 2800 cmp r0, #0
|
|
1c1a: d105 bne.n 1c28 <lv_obj_get_x+0x18>
|
|
1c1c: 0022 movs r2, r4
|
|
1c1e: 2300 movs r3, #0
|
|
1c20: 4809 ldr r0, [pc, #36] ; (1c48 <lv_obj_get_x+0x38>)
|
|
1c22: 490a ldr r1, [pc, #40] ; (1c4c <lv_obj_get_x+0x3c>)
|
|
1c24: 4788 blx r1
|
|
1c26: e7fe b.n 1c26 <lv_obj_get_x+0x16>
|
|
lv_obj_t * parent = lv_obj_get_parent(obj);
|
|
1c28: 0020 movs r0, r4
|
|
1c2a: 4b09 ldr r3, [pc, #36] ; (1c50 <lv_obj_get_x+0x40>)
|
|
1c2c: 4798 blx r3
|
|
if(parent) {
|
|
1c2e: 2800 cmp r0, #0
|
|
1c30: d004 beq.n 1c3c <lv_obj_get_x+0x2c>
|
|
rel_x = obj->coords.x1 - parent->coords.x1;
|
|
1c32: 8a23 ldrh r3, [r4, #16]
|
|
1c34: 8a00 ldrh r0, [r0, #16]
|
|
1c36: 1a18 subs r0, r3, r0
|
|
1c38: b200 sxth r0, r0
|
|
}
|
|
1c3a: bd10 pop {r4, pc}
|
|
rel_x = obj->coords.x1;
|
|
1c3c: 2310 movs r3, #16
|
|
1c3e: 5ee0 ldrsh r0, [r4, r3]
|
|
1c40: e7fb b.n 1c3a <lv_obj_get_x+0x2a>
|
|
1c42: 46c0 nop ; (mov r8, r8)
|
|
1c44: 0000147d .word 0x0000147d
|
|
1c48: 0001878c .word 0x0001878c
|
|
1c4c: 00001485 .word 0x00001485
|
|
1c50: 00001aa1 .word 0x00001aa1
|
|
|
|
00001c54 <lv_obj_get_y>:
|
|
{
|
|
1c54: b510 push {r4, lr}
|
|
1c56: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1c58: 4b0b ldr r3, [pc, #44] ; (1c88 <lv_obj_get_y+0x34>)
|
|
1c5a: 4798 blx r3
|
|
1c5c: 2800 cmp r0, #0
|
|
1c5e: d105 bne.n 1c6c <lv_obj_get_y+0x18>
|
|
1c60: 0022 movs r2, r4
|
|
1c62: 2300 movs r3, #0
|
|
1c64: 4809 ldr r0, [pc, #36] ; (1c8c <lv_obj_get_y+0x38>)
|
|
1c66: 490a ldr r1, [pc, #40] ; (1c90 <lv_obj_get_y+0x3c>)
|
|
1c68: 4788 blx r1
|
|
1c6a: e7fe b.n 1c6a <lv_obj_get_y+0x16>
|
|
lv_obj_t * parent = lv_obj_get_parent(obj);
|
|
1c6c: 0020 movs r0, r4
|
|
1c6e: 4b09 ldr r3, [pc, #36] ; (1c94 <lv_obj_get_y+0x40>)
|
|
1c70: 4798 blx r3
|
|
if(parent) {
|
|
1c72: 2800 cmp r0, #0
|
|
1c74: d004 beq.n 1c80 <lv_obj_get_y+0x2c>
|
|
rel_y = obj->coords.y1 - parent->coords.y1;
|
|
1c76: 8a63 ldrh r3, [r4, #18]
|
|
1c78: 8a40 ldrh r0, [r0, #18]
|
|
1c7a: 1a18 subs r0, r3, r0
|
|
1c7c: b200 sxth r0, r0
|
|
}
|
|
1c7e: bd10 pop {r4, pc}
|
|
rel_y = obj->coords.y1;
|
|
1c80: 2312 movs r3, #18
|
|
1c82: 5ee0 ldrsh r0, [r4, r3]
|
|
1c84: e7fb b.n 1c7e <lv_obj_get_y+0x2a>
|
|
1c86: 46c0 nop ; (mov r8, r8)
|
|
1c88: 0000147d .word 0x0000147d
|
|
1c8c: 0001878c .word 0x0001878c
|
|
1c90: 00001485 .word 0x00001485
|
|
1c94: 00001aa1 .word 0x00001aa1
|
|
|
|
00001c98 <lv_obj_get_width>:
|
|
{
|
|
1c98: b510 push {r4, lr}
|
|
1c9a: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1c9c: 4b07 ldr r3, [pc, #28] ; (1cbc <lv_obj_get_width+0x24>)
|
|
1c9e: 4798 blx r3
|
|
1ca0: 2800 cmp r0, #0
|
|
1ca2: d005 beq.n 1cb0 <lv_obj_get_width+0x18>
|
|
* @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);
|
|
1ca4: 8aa0 ldrh r0, [r4, #20]
|
|
1ca6: 3001 adds r0, #1
|
|
1ca8: 8a23 ldrh r3, [r4, #16]
|
|
1caa: 1ac0 subs r0, r0, r3
|
|
return lv_area_get_width(&obj->coords);
|
|
1cac: b200 sxth r0, r0
|
|
}
|
|
1cae: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1cb0: 0022 movs r2, r4
|
|
1cb2: 2300 movs r3, #0
|
|
1cb4: 4802 ldr r0, [pc, #8] ; (1cc0 <lv_obj_get_width+0x28>)
|
|
1cb6: 4903 ldr r1, [pc, #12] ; (1cc4 <lv_obj_get_width+0x2c>)
|
|
1cb8: 4788 blx r1
|
|
1cba: e7fe b.n 1cba <lv_obj_get_width+0x22>
|
|
1cbc: 0000147d .word 0x0000147d
|
|
1cc0: 0001878c .word 0x0001878c
|
|
1cc4: 00001485 .word 0x00001485
|
|
|
|
00001cc8 <lv_obj_get_height>:
|
|
{
|
|
1cc8: b510 push {r4, lr}
|
|
1cca: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ccc: 4b07 ldr r3, [pc, #28] ; (1cec <lv_obj_get_height+0x24>)
|
|
1cce: 4798 blx r3
|
|
1cd0: 2800 cmp r0, #0
|
|
1cd2: d005 beq.n 1ce0 <lv_obj_get_height+0x18>
|
|
* @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);
|
|
1cd4: 8ae0 ldrh r0, [r4, #22]
|
|
1cd6: 3001 adds r0, #1
|
|
1cd8: 8a63 ldrh r3, [r4, #18]
|
|
1cda: 1ac0 subs r0, r0, r3
|
|
return lv_area_get_height(&obj->coords);
|
|
1cdc: b200 sxth r0, r0
|
|
}
|
|
1cde: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ce0: 0022 movs r2, r4
|
|
1ce2: 2300 movs r3, #0
|
|
1ce4: 4802 ldr r0, [pc, #8] ; (1cf0 <lv_obj_get_height+0x28>)
|
|
1ce6: 4903 ldr r1, [pc, #12] ; (1cf4 <lv_obj_get_height+0x2c>)
|
|
1ce8: 4788 blx r1
|
|
1cea: e7fe b.n 1cea <lv_obj_get_height+0x22>
|
|
1cec: 0000147d .word 0x0000147d
|
|
1cf0: 0001878c .word 0x0001878c
|
|
1cf4: 00001485 .word 0x00001485
|
|
|
|
00001cf8 <lv_obj_get_style_list>:
|
|
{
|
|
1cf8: b500 push {lr}
|
|
1cfa: b083 sub sp, #12
|
|
if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list;
|
|
1cfc: 2900 cmp r1, #0
|
|
1cfe: d102 bne.n 1d06 <lv_obj_get_style_list+0xe>
|
|
1d00: 3028 adds r0, #40 ; 0x28
|
|
}
|
|
1d02: b003 add sp, #12
|
|
1d04: bd00 pop {pc}
|
|
info.part = part;
|
|
1d06: 466b mov r3, sp
|
|
1d08: 7019 strb r1, [r3, #0]
|
|
info.result = NULL;
|
|
1d0a: 2300 movs r3, #0
|
|
1d0c: 9301 str r3, [sp, #4]
|
|
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
|
|
1d0e: 466a mov r2, sp
|
|
1d10: 2108 movs r1, #8
|
|
1d12: 4b04 ldr r3, [pc, #16] ; (1d24 <lv_obj_get_style_list+0x2c>)
|
|
1d14: 4798 blx r3
|
|
if(res != LV_RES_OK) return NULL;
|
|
1d16: 2801 cmp r0, #1
|
|
1d18: d101 bne.n 1d1e <lv_obj_get_style_list+0x26>
|
|
return info.result;
|
|
1d1a: 9801 ldr r0, [sp, #4]
|
|
1d1c: e7f1 b.n 1d02 <lv_obj_get_style_list+0xa>
|
|
if(res != LV_RES_OK) return NULL;
|
|
1d1e: 2000 movs r0, #0
|
|
1d20: e7ef b.n 1d02 <lv_obj_get_style_list+0xa>
|
|
1d22: 46c0 nop ; (mov r8, r8)
|
|
1d24: 00001a55 .word 0x00001a55
|
|
|
|
00001d28 <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)
|
|
{
|
|
1d28: b5f0 push {r4, r5, r6, r7, lr}
|
|
1d2a: 46de mov lr, fp
|
|
1d2c: 4657 mov r7, sl
|
|
1d2e: 4646 mov r6, r8
|
|
1d30: b5c0 push {r6, r7, lr}
|
|
1d32: 4680 mov r8, r0
|
|
1d34: 468a mov sl, r1
|
|
1d36: 4693 mov fp, r2
|
|
1d38: 001e movs r6, r3
|
|
lv_style_trans_t * tr;
|
|
lv_style_trans_t * tr_prev;
|
|
tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll));
|
|
1d3a: 481d ldr r0, [pc, #116] ; (1db0 <trans_del+0x88>)
|
|
1d3c: 4b1d ldr r3, [pc, #116] ; (1db4 <trans_del+0x8c>)
|
|
1d3e: 4798 blx r3
|
|
1d40: 1e04 subs r4, r0, #0
|
|
while(tr != NULL) {
|
|
1d42: d02f beq.n 1da4 <trans_del+0x7c>
|
|
if(tr == tr_limit) break;
|
|
1d44: 42b0 cmp r0, r6
|
|
1d46: d02d beq.n 1da4 <trans_del+0x7c>
|
|
|
|
/*'tr' might be deleted, so get the next object while 'tr' is valid*/
|
|
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
|
|
1d48: 4f1b ldr r7, [pc, #108] ; (1db8 <trans_del+0x90>)
|
|
1d4a: e00a b.n 1d62 <trans_del+0x3a>
|
|
|
|
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
|
|
1d4c: 88a3 ldrh r3, [r4, #4]
|
|
1d4e: 455b cmp r3, fp
|
|
1d50: d015 beq.n 1d7e <trans_del+0x56>
|
|
1d52: 465b mov r3, fp
|
|
1d54: 2bff cmp r3, #255 ; 0xff
|
|
1d56: d012 beq.n 1d7e <trans_del+0x56>
|
|
while(tr != NULL) {
|
|
1d58: 2d00 cmp r5, #0
|
|
1d5a: d023 beq.n 1da4 <trans_del+0x7c>
|
|
1d5c: 002c movs r4, r5
|
|
if(tr == tr_limit) break;
|
|
1d5e: 42ae cmp r6, r5
|
|
1d60: d020 beq.n 1da4 <trans_del+0x7c>
|
|
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
|
|
1d62: 0021 movs r1, r4
|
|
1d64: 4812 ldr r0, [pc, #72] ; (1db0 <trans_del+0x88>)
|
|
1d66: 47b8 blx r7
|
|
1d68: 0005 movs r5, r0
|
|
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
|
|
1d6a: 6820 ldr r0, [r4, #0]
|
|
1d6c: 4540 cmp r0, r8
|
|
1d6e: d1f3 bne.n 1d58 <trans_del+0x30>
|
|
1d70: 79a1 ldrb r1, [r4, #6]
|
|
1d72: 4551 cmp r1, sl
|
|
1d74: d0ea beq.n 1d4c <trans_del+0x24>
|
|
1d76: 4653 mov r3, sl
|
|
1d78: 2bff cmp r3, #255 ; 0xff
|
|
1d7a: d1ed bne.n 1d58 <trans_del+0x30>
|
|
1d7c: e7e6 b.n 1d4c <trans_del+0x24>
|
|
/* Remove the transitioned property from trans. style
|
|
* to allow changing it by normal styles*/
|
|
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
|
|
1d7e: 4b0f ldr r3, [pc, #60] ; (1dbc <trans_del+0x94>)
|
|
1d80: 4798 blx r3
|
|
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
|
|
1d82: 4b0f ldr r3, [pc, #60] ; (1dc0 <trans_del+0x98>)
|
|
1d84: 4798 blx r3
|
|
lv_style_remove_prop(style_trans, tr->prop);
|
|
1d86: 88a1 ldrh r1, [r4, #4]
|
|
1d88: 4b0e ldr r3, [pc, #56] ; (1dc4 <trans_del+0x9c>)
|
|
1d8a: 4798 blx r3
|
|
|
|
lv_anim_del(tr, NULL);
|
|
1d8c: 2100 movs r1, #0
|
|
1d8e: 0020 movs r0, r4
|
|
1d90: 4b0d ldr r3, [pc, #52] ; (1dc8 <trans_del+0xa0>)
|
|
1d92: 4798 blx r3
|
|
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
|
|
1d94: 0021 movs r1, r4
|
|
1d96: 4806 ldr r0, [pc, #24] ; (1db0 <trans_del+0x88>)
|
|
1d98: 4b0c ldr r3, [pc, #48] ; (1dcc <trans_del+0xa4>)
|
|
1d9a: 4798 blx r3
|
|
lv_mem_free(tr);
|
|
1d9c: 0020 movs r0, r4
|
|
1d9e: 4b0c ldr r3, [pc, #48] ; (1dd0 <trans_del+0xa8>)
|
|
1da0: 4798 blx r3
|
|
1da2: e7d9 b.n 1d58 <trans_del+0x30>
|
|
}
|
|
tr = tr_prev;
|
|
}
|
|
}
|
|
1da4: bc1c pop {r2, r3, r4}
|
|
1da6: 4690 mov r8, r2
|
|
1da8: 469a mov sl, r3
|
|
1daa: 46a3 mov fp, r4
|
|
1dac: bdf0 pop {r4, r5, r6, r7, pc}
|
|
1dae: 46c0 nop ; (mov r8, r8)
|
|
1db0: 20004d68 .word 0x20004d68
|
|
1db4: 00010679 .word 0x00010679
|
|
1db8: 000106ad .word 0x000106ad
|
|
1dbc: 00001cf9 .word 0x00001cf9
|
|
1dc0: 00005621 .word 0x00005621
|
|
1dc4: 00004bd1 .word 0x00004bd1
|
|
1dc8: 0000fa91 .word 0x0000fa91
|
|
1dcc: 00010755 .word 0x00010755
|
|
1dd0: 00010b39 .word 0x00010b39
|
|
|
|
00001dd4 <lv_obj_clean_style_list>:
|
|
{
|
|
1dd4: b570 push {r4, r5, r6, lr}
|
|
1dd6: 0004 movs r4, r0
|
|
1dd8: 000d movs r5, r1
|
|
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
|
|
1dda: 4b06 ldr r3, [pc, #24] ; (1df4 <lv_obj_clean_style_list+0x20>)
|
|
1ddc: 4798 blx r3
|
|
if(style_dsc == NULL) {
|
|
1dde: 2800 cmp r0, #0
|
|
1de0: d007 beq.n 1df2 <lv_obj_clean_style_list+0x1e>
|
|
_lv_style_list_reset(style_dsc);
|
|
1de2: 4b05 ldr r3, [pc, #20] ; (1df8 <lv_obj_clean_style_list+0x24>)
|
|
1de4: 4798 blx r3
|
|
trans_del(obj, part, 0xFF, NULL);
|
|
1de6: 2300 movs r3, #0
|
|
1de8: 22ff movs r2, #255 ; 0xff
|
|
1dea: 0029 movs r1, r5
|
|
1dec: 0020 movs r0, r4
|
|
1dee: 4c03 ldr r4, [pc, #12] ; (1dfc <lv_obj_clean_style_list+0x28>)
|
|
1df0: 47a0 blx r4
|
|
}
|
|
1df2: bd70 pop {r4, r5, r6, pc}
|
|
1df4: 00001cf9 .word 0x00001cf9
|
|
1df8: 00005631 .word 0x00005631
|
|
1dfc: 00001d29 .word 0x00001d29
|
|
|
|
00001e00 <trans_anim_ready_cb>:
|
|
tr->prop = prop_tmp;
|
|
|
|
}
|
|
|
|
static void trans_anim_ready_cb(lv_anim_t * a)
|
|
{
|
|
1e00: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
lv_style_trans_t * tr = a->var;
|
|
1e02: 6804 ldr r4, [r0, #0]
|
|
* if there no more transitions for this property
|
|
* It allows changing it by normal styles*/
|
|
|
|
bool running = false;
|
|
lv_style_trans_t * tr_i;
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
|
|
1e04: 4817 ldr r0, [pc, #92] ; (1e64 <trans_anim_ready_cb+0x64>)
|
|
1e06: 4b18 ldr r3, [pc, #96] ; (1e68 <trans_anim_ready_cb+0x68>)
|
|
1e08: 4798 blx r3
|
|
1e0a: 2800 cmp r0, #0
|
|
1e0c: d020 beq.n 1e50 <trans_anim_ready_cb+0x50>
|
|
1e0e: 2600 movs r6, #0
|
|
1e10: 4d14 ldr r5, [pc, #80] ; (1e64 <trans_anim_ready_cb+0x64>)
|
|
1e12: 4f16 ldr r7, [pc, #88] ; (1e6c <trans_anim_ready_cb+0x6c>)
|
|
1e14: e004 b.n 1e20 <trans_anim_ready_cb+0x20>
|
|
1e16: 0001 movs r1, r0
|
|
1e18: 0028 movs r0, r5
|
|
1e1a: 47b8 blx r7
|
|
1e1c: 2800 cmp r0, #0
|
|
1e1e: d00d beq.n 1e3c <trans_anim_ready_cb+0x3c>
|
|
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
|
|
1e20: 4284 cmp r4, r0
|
|
1e22: d0f8 beq.n 1e16 <trans_anim_ready_cb+0x16>
|
|
1e24: 6803 ldr r3, [r0, #0]
|
|
1e26: 6822 ldr r2, [r4, #0]
|
|
1e28: 4293 cmp r3, r2
|
|
1e2a: d1f4 bne.n 1e16 <trans_anim_ready_cb+0x16>
|
|
1e2c: 6843 ldr r3, [r0, #4]
|
|
1e2e: 021b lsls r3, r3, #8
|
|
1e30: 6862 ldr r2, [r4, #4]
|
|
1e32: 0212 lsls r2, r2, #8
|
|
1e34: 429a cmp r2, r3
|
|
1e36: d1ee bne.n 1e16 <trans_anim_ready_cb+0x16>
|
|
running = true;
|
|
1e38: 2601 movs r6, #1
|
|
1e3a: e7ec b.n 1e16 <trans_anim_ready_cb+0x16>
|
|
}
|
|
}
|
|
|
|
if(!running) {
|
|
1e3c: 2e00 cmp r6, #0
|
|
1e3e: d007 beq.n 1e50 <trans_anim_ready_cb+0x50>
|
|
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
|
|
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
|
|
lv_style_remove_prop(style_trans, tr->prop);
|
|
}
|
|
|
|
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
|
|
1e40: 0021 movs r1, r4
|
|
1e42: 4808 ldr r0, [pc, #32] ; (1e64 <trans_anim_ready_cb+0x64>)
|
|
1e44: 4b0a ldr r3, [pc, #40] ; (1e70 <trans_anim_ready_cb+0x70>)
|
|
1e46: 4798 blx r3
|
|
lv_mem_free(tr);
|
|
1e48: 0020 movs r0, r4
|
|
1e4a: 4b0a ldr r3, [pc, #40] ; (1e74 <trans_anim_ready_cb+0x74>)
|
|
1e4c: 4798 blx r3
|
|
}
|
|
1e4e: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
|
|
1e50: 79a1 ldrb r1, [r4, #6]
|
|
1e52: 6820 ldr r0, [r4, #0]
|
|
1e54: 4b08 ldr r3, [pc, #32] ; (1e78 <trans_anim_ready_cb+0x78>)
|
|
1e56: 4798 blx r3
|
|
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
|
|
1e58: 4b08 ldr r3, [pc, #32] ; (1e7c <trans_anim_ready_cb+0x7c>)
|
|
1e5a: 4798 blx r3
|
|
lv_style_remove_prop(style_trans, tr->prop);
|
|
1e5c: 88a1 ldrh r1, [r4, #4]
|
|
1e5e: 4b08 ldr r3, [pc, #32] ; (1e80 <trans_anim_ready_cb+0x80>)
|
|
1e60: 4798 blx r3
|
|
1e62: e7ed b.n 1e40 <trans_anim_ready_cb+0x40>
|
|
1e64: 20004d68 .word 0x20004d68
|
|
1e68: 0001066d .word 0x0001066d
|
|
1e6c: 00010685 .word 0x00010685
|
|
1e70: 00010755 .word 0x00010755
|
|
1e74: 00010b39 .word 0x00010b39
|
|
1e78: 00001cf9 .word 0x00001cf9
|
|
1e7c: 00005621 .word 0x00005621
|
|
1e80: 00004bd1 .word 0x00004bd1
|
|
|
|
00001e84 <lv_obj_get_hidden>:
|
|
{
|
|
1e84: b510 push {r4, lr}
|
|
1e86: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1e88: 4b07 ldr r3, [pc, #28] ; (1ea8 <lv_obj_get_hidden+0x24>)
|
|
1e8a: 4798 blx r3
|
|
1e8c: 2800 cmp r0, #0
|
|
1e8e: d004 beq.n 1e9a <lv_obj_get_hidden+0x16>
|
|
return obj->hidden == 0 ? false : true;
|
|
1e90: 2334 movs r3, #52 ; 0x34
|
|
1e92: 5ce0 ldrb r0, [r4, r3]
|
|
1e94: 06c0 lsls r0, r0, #27
|
|
1e96: 0fc0 lsrs r0, r0, #31
|
|
}
|
|
1e98: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1e9a: 0022 movs r2, r4
|
|
1e9c: 2300 movs r3, #0
|
|
1e9e: 4803 ldr r0, [pc, #12] ; (1eac <lv_obj_get_hidden+0x28>)
|
|
1ea0: 4903 ldr r1, [pc, #12] ; (1eb0 <lv_obj_get_hidden+0x2c>)
|
|
1ea2: 4788 blx r1
|
|
1ea4: e7fe b.n 1ea4 <lv_obj_get_hidden+0x20>
|
|
1ea6: 46c0 nop ; (mov r8, r8)
|
|
1ea8: 0000147d .word 0x0000147d
|
|
1eac: 0001878c .word 0x0001878c
|
|
1eb0: 00001485 .word 0x00001485
|
|
|
|
00001eb4 <lv_obj_invalidate_area>:
|
|
{
|
|
1eb4: b5f0 push {r4, r5, r6, r7, lr}
|
|
1eb6: b085 sub sp, #20
|
|
1eb8: 0004 movs r4, r0
|
|
1eba: 000e movs r6, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ebc: 4b30 ldr r3, [pc, #192] ; (1f80 <lv_obj_invalidate_area+0xcc>)
|
|
1ebe: 4798 blx r3
|
|
1ec0: 2800 cmp r0, #0
|
|
1ec2: d105 bne.n 1ed0 <lv_obj_invalidate_area+0x1c>
|
|
1ec4: 0022 movs r2, r4
|
|
1ec6: 2300 movs r3, #0
|
|
1ec8: 482e ldr r0, [pc, #184] ; (1f84 <lv_obj_invalidate_area+0xd0>)
|
|
1eca: 492f ldr r1, [pc, #188] ; (1f88 <lv_obj_invalidate_area+0xd4>)
|
|
1ecc: 4788 blx r1
|
|
1ece: e7fe b.n 1ece <lv_obj_invalidate_area+0x1a>
|
|
if(lv_obj_get_hidden(obj)) return;
|
|
1ed0: 0020 movs r0, r4
|
|
1ed2: 4b2e ldr r3, [pc, #184] ; (1f8c <lv_obj_invalidate_area+0xd8>)
|
|
1ed4: 4798 blx r3
|
|
1ed6: 2800 cmp r0, #0
|
|
1ed8: d001 beq.n 1ede <lv_obj_invalidate_area+0x2a>
|
|
}
|
|
1eda: b005 add sp, #20
|
|
1edc: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
|
|
1ede: 0020 movs r0, r4
|
|
1ee0: 4b2b ldr r3, [pc, #172] ; (1f90 <lv_obj_invalidate_area+0xdc>)
|
|
1ee2: 4798 blx r3
|
|
1ee4: 0007 movs r7, r0
|
|
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
|
|
1ee6: 4b2b ldr r3, [pc, #172] ; (1f94 <lv_obj_invalidate_area+0xe0>)
|
|
1ee8: 4798 blx r3
|
|
1eea: 0005 movs r5, r0
|
|
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
|
|
1eec: 4b2a ldr r3, [pc, #168] ; (1f98 <lv_obj_invalidate_area+0xe4>)
|
|
1eee: 4798 blx r3
|
|
1ef0: 4287 cmp r7, r0
|
|
1ef2: d009 beq.n 1f08 <lv_obj_invalidate_area+0x54>
|
|
1ef4: 0028 movs r0, r5
|
|
1ef6: 4b29 ldr r3, [pc, #164] ; (1f9c <lv_obj_invalidate_area+0xe8>)
|
|
1ef8: 4798 blx r3
|
|
1efa: 4287 cmp r7, r0
|
|
1efc: d004 beq.n 1f08 <lv_obj_invalidate_area+0x54>
|
|
obj_scr == lv_disp_get_layer_sys(disp)) {
|
|
1efe: 0028 movs r0, r5
|
|
1f00: 4b27 ldr r3, [pc, #156] ; (1fa0 <lv_obj_invalidate_area+0xec>)
|
|
1f02: 4798 blx r3
|
|
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
|
|
1f04: 4287 cmp r7, r0
|
|
1f06: d1e8 bne.n 1eda <lv_obj_invalidate_area+0x26>
|
|
lv_coord_t ext_size = obj->ext_draw_pad;
|
|
1f08: 2232 movs r2, #50 ; 0x32
|
|
1f0a: 5ea3 ldrsh r3, [r4, r2]
|
|
lv_area_copy(&obj_coords, &obj->coords);
|
|
1f0c: 0021 movs r1, r4
|
|
1f0e: 3110 adds r1, #16
|
|
1f10: 2200 movs r2, #0
|
|
*d8 = *s8;
|
|
1f12: 5c88 ldrb r0, [r1, r2]
|
|
1f14: 466f mov r7, sp
|
|
1f16: 55d0 strb r0, [r2, r7]
|
|
1f18: 3201 adds r2, #1
|
|
while(len) {
|
|
1f1a: 2a08 cmp r2, #8
|
|
1f1c: d1f9 bne.n 1f12 <lv_obj_invalidate_area+0x5e>
|
|
obj_coords.x1 -= ext_size;
|
|
1f1e: b29b uxth r3, r3
|
|
1f20: 883a ldrh r2, [r7, #0]
|
|
1f22: 1ad2 subs r2, r2, r3
|
|
1f24: 803a strh r2, [r7, #0]
|
|
obj_coords.y1 -= ext_size;
|
|
1f26: 887a ldrh r2, [r7, #2]
|
|
1f28: 1ad2 subs r2, r2, r3
|
|
1f2a: 807a strh r2, [r7, #2]
|
|
obj_coords.x2 += ext_size;
|
|
1f2c: 88ba ldrh r2, [r7, #4]
|
|
1f2e: 189a adds r2, r3, r2
|
|
1f30: 80ba strh r2, [r7, #4]
|
|
obj_coords.y2 += ext_size;
|
|
1f32: 88fa ldrh r2, [r7, #6]
|
|
1f34: 189b adds r3, r3, r2
|
|
1f36: 466a mov r2, sp
|
|
1f38: 80fb strh r3, [r7, #6]
|
|
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
|
|
1f3a: 0031 movs r1, r6
|
|
1f3c: a802 add r0, sp, #8
|
|
1f3e: 4b19 ldr r3, [pc, #100] ; (1fa4 <lv_obj_invalidate_area+0xf0>)
|
|
1f40: 4798 blx r3
|
|
if(is_common == false) return; /*The area is not on the object*/
|
|
1f42: 2800 cmp r0, #0
|
|
1f44: d0c9 beq.n 1eda <lv_obj_invalidate_area+0x26>
|
|
lv_obj_t * par = lv_obj_get_parent(obj);
|
|
1f46: 0020 movs r0, r4
|
|
1f48: 4b17 ldr r3, [pc, #92] ; (1fa8 <lv_obj_invalidate_area+0xf4>)
|
|
1f4a: 4798 blx r3
|
|
1f4c: 1e04 subs r4, r0, #0
|
|
while(par != NULL) {
|
|
1f4e: d011 beq.n 1f74 <lv_obj_invalidate_area+0xc0>
|
|
is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords);
|
|
1f50: 4e14 ldr r6, [pc, #80] ; (1fa4 <lv_obj_invalidate_area+0xf0>)
|
|
1f52: 0022 movs r2, r4
|
|
1f54: 3210 adds r2, #16
|
|
1f56: a902 add r1, sp, #8
|
|
1f58: 0008 movs r0, r1
|
|
1f5a: 47b0 blx r6
|
|
if(is_common == false) break; /*If no common parts with parent break;*/
|
|
1f5c: 2800 cmp r0, #0
|
|
1f5e: d0bc beq.n 1eda <lv_obj_invalidate_area+0x26>
|
|
if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/
|
|
1f60: 0020 movs r0, r4
|
|
1f62: 4b0a ldr r3, [pc, #40] ; (1f8c <lv_obj_invalidate_area+0xd8>)
|
|
1f64: 4798 blx r3
|
|
1f66: 2800 cmp r0, #0
|
|
1f68: d1b7 bne.n 1eda <lv_obj_invalidate_area+0x26>
|
|
par = lv_obj_get_parent(par);
|
|
1f6a: 0020 movs r0, r4
|
|
1f6c: 4b0e ldr r3, [pc, #56] ; (1fa8 <lv_obj_invalidate_area+0xf4>)
|
|
1f6e: 4798 blx r3
|
|
1f70: 1e04 subs r4, r0, #0
|
|
while(par != NULL) {
|
|
1f72: d1ee bne.n 1f52 <lv_obj_invalidate_area+0x9e>
|
|
if(is_common) _lv_inv_area(disp, &area_trunc);
|
|
1f74: a902 add r1, sp, #8
|
|
1f76: 0028 movs r0, r5
|
|
1f78: 4b0c ldr r3, [pc, #48] ; (1fac <lv_obj_invalidate_area+0xf8>)
|
|
1f7a: 4798 blx r3
|
|
1f7c: e7ad b.n 1eda <lv_obj_invalidate_area+0x26>
|
|
1f7e: 46c0 nop ; (mov r8, r8)
|
|
1f80: 0000147d .word 0x0000147d
|
|
1f84: 0001878c .word 0x0001878c
|
|
1f88: 00001485 .word 0x00001485
|
|
1f8c: 00001e85 .word 0x00001e85
|
|
1f90: 00001ac9 .word 0x00001ac9
|
|
1f94: 00001b05 .word 0x00001b05
|
|
1f98: 000014ad .word 0x000014ad
|
|
1f9c: 000014c9 .word 0x000014c9
|
|
1fa0: 000014e5 .word 0x000014e5
|
|
1fa4: 0000fc0f .word 0x0000fc0f
|
|
1fa8: 00001aa1 .word 0x00001aa1
|
|
1fac: 000042a1 .word 0x000042a1
|
|
|
|
00001fb0 <lv_obj_invalidate>:
|
|
{
|
|
1fb0: b530 push {r4, r5, lr}
|
|
1fb2: b083 sub sp, #12
|
|
1fb4: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1fb6: 4b14 ldr r3, [pc, #80] ; (2008 <STACK_SIZE+0x8>)
|
|
1fb8: 4798 blx r3
|
|
1fba: 2800 cmp r0, #0
|
|
1fbc: d01d beq.n 1ffa <lv_obj_invalidate+0x4a>
|
|
lv_coord_t ext_size = obj->ext_draw_pad;
|
|
1fbe: 2332 movs r3, #50 ; 0x32
|
|
1fc0: 5ee2 ldrsh r2, [r4, r3]
|
|
lv_area_copy(&obj_coords, &obj->coords);
|
|
1fc2: 0020 movs r0, r4
|
|
1fc4: 3010 adds r0, #16
|
|
1fc6: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
1fc8: 5cc1 ldrb r1, [r0, r3]
|
|
1fca: 466d mov r5, sp
|
|
1fcc: 5559 strb r1, [r3, r5]
|
|
1fce: 3301 adds r3, #1
|
|
while(len) {
|
|
1fd0: 2b08 cmp r3, #8
|
|
1fd2: d1f9 bne.n 1fc8 <lv_obj_invalidate+0x18>
|
|
obj_coords.x1 -= ext_size;
|
|
1fd4: b293 uxth r3, r2
|
|
1fd6: 882a ldrh r2, [r5, #0]
|
|
1fd8: 1ad2 subs r2, r2, r3
|
|
1fda: 4669 mov r1, sp
|
|
1fdc: 802a strh r2, [r5, #0]
|
|
obj_coords.y1 -= ext_size;
|
|
1fde: 886a ldrh r2, [r5, #2]
|
|
1fe0: 1ad2 subs r2, r2, r3
|
|
1fe2: 806a strh r2, [r5, #2]
|
|
obj_coords.x2 += ext_size;
|
|
1fe4: 88aa ldrh r2, [r5, #4]
|
|
1fe6: 189a adds r2, r3, r2
|
|
1fe8: 80aa strh r2, [r5, #4]
|
|
obj_coords.y2 += ext_size;
|
|
1fea: 88ea ldrh r2, [r5, #6]
|
|
1fec: 189b adds r3, r3, r2
|
|
1fee: 80eb strh r3, [r5, #6]
|
|
lv_obj_invalidate_area(obj, &obj_coords);
|
|
1ff0: 0020 movs r0, r4
|
|
1ff2: 4b06 ldr r3, [pc, #24] ; (200c <STACK_SIZE+0xc>)
|
|
1ff4: 4798 blx r3
|
|
}
|
|
1ff6: b003 add sp, #12
|
|
1ff8: bd30 pop {r4, r5, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
1ffa: 0022 movs r2, r4
|
|
1ffc: 2300 movs r3, #0
|
|
1ffe: 4804 ldr r0, [pc, #16] ; (2010 <STACK_SIZE+0x10>)
|
|
2000: 4904 ldr r1, [pc, #16] ; (2014 <STACK_SIZE+0x14>)
|
|
2002: 4788 blx r1
|
|
2004: e7fe b.n 2004 <STACK_SIZE+0x4>
|
|
2006: 46c0 nop ; (mov r8, r8)
|
|
2008: 0000147d .word 0x0000147d
|
|
200c: 00001eb5 .word 0x00001eb5
|
|
2010: 0001878c .word 0x0001878c
|
|
2014: 00001485 .word 0x00001485
|
|
|
|
00002018 <lv_obj_move_foreground>:
|
|
{
|
|
2018: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
201a: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
201c: 4b12 ldr r3, [pc, #72] ; (2068 <lv_obj_move_foreground+0x50>)
|
|
201e: 4798 blx r3
|
|
2020: 2800 cmp r0, #0
|
|
2022: d105 bne.n 2030 <lv_obj_move_foreground+0x18>
|
|
2024: 0022 movs r2, r4
|
|
2026: 2300 movs r3, #0
|
|
2028: 4810 ldr r0, [pc, #64] ; (206c <lv_obj_move_foreground+0x54>)
|
|
202a: 4911 ldr r1, [pc, #68] ; (2070 <lv_obj_move_foreground+0x58>)
|
|
202c: 4788 blx r1
|
|
202e: e7fe b.n 202e <lv_obj_move_foreground+0x16>
|
|
lv_obj_t * parent = lv_obj_get_parent(obj);
|
|
2030: 0020 movs r0, r4
|
|
2032: 4b10 ldr r3, [pc, #64] ; (2074 <lv_obj_move_foreground+0x5c>)
|
|
2034: 4798 blx r3
|
|
2036: 0005 movs r5, r0
|
|
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
|
|
2038: 1d06 adds r6, r0, #4
|
|
203a: 0030 movs r0, r6
|
|
203c: 4b0e ldr r3, [pc, #56] ; (2078 <lv_obj_move_foreground+0x60>)
|
|
203e: 4798 blx r3
|
|
2040: 4284 cmp r4, r0
|
|
2042: d00f beq.n 2064 <lv_obj_move_foreground+0x4c>
|
|
lv_obj_invalidate(parent);
|
|
2044: 0028 movs r0, r5
|
|
2046: 4f0d ldr r7, [pc, #52] ; (207c <lv_obj_move_foreground+0x64>)
|
|
2048: 47b8 blx r7
|
|
_lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true);
|
|
204a: 2301 movs r3, #1
|
|
204c: 0022 movs r2, r4
|
|
204e: 0031 movs r1, r6
|
|
2050: 0030 movs r0, r6
|
|
2052: 4e0b ldr r6, [pc, #44] ; (2080 <lv_obj_move_foreground+0x68>)
|
|
2054: 47b0 blx r6
|
|
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj);
|
|
2056: 0022 movs r2, r4
|
|
2058: 2101 movs r1, #1
|
|
205a: 0028 movs r0, r5
|
|
205c: 69eb ldr r3, [r5, #28]
|
|
205e: 4798 blx r3
|
|
lv_obj_invalidate(parent);
|
|
2060: 0028 movs r0, r5
|
|
2062: 47b8 blx r7
|
|
}
|
|
2064: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
2066: 46c0 nop ; (mov r8, r8)
|
|
2068: 0000147d .word 0x0000147d
|
|
206c: 0001878c .word 0x0001878c
|
|
2070: 00001485 .word 0x00001485
|
|
2074: 00001aa1 .word 0x00001aa1
|
|
2078: 0001066d .word 0x0001066d
|
|
207c: 00001fb1 .word 0x00001fb1
|
|
2080: 000107e5 .word 0x000107e5
|
|
|
|
00002084 <lv_obj_set_pos>:
|
|
{
|
|
2084: b5f0 push {r4, r5, r6, r7, lr}
|
|
2086: 46d6 mov lr, sl
|
|
2088: 464f mov r7, r9
|
|
208a: 4646 mov r6, r8
|
|
208c: b5c0 push {r6, r7, lr}
|
|
208e: b082 sub sp, #8
|
|
2090: 0004 movs r4, r0
|
|
2092: 000d movs r5, r1
|
|
2094: 0017 movs r7, r2
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2096: 4b26 ldr r3, [pc, #152] ; (2130 <lv_obj_set_pos+0xac>)
|
|
2098: 4798 blx r3
|
|
209a: 2800 cmp r0, #0
|
|
209c: d041 beq.n 2122 <lv_obj_set_pos+0x9e>
|
|
lv_obj_t * par = obj->parent;
|
|
209e: 6826 ldr r6, [r4, #0]
|
|
if(par == NULL) {
|
|
20a0: 2e00 cmp r6, #0
|
|
20a2: d038 beq.n 2116 <lv_obj_set_pos+0x92>
|
|
diff.x = x - obj->coords.x1;
|
|
20a4: 8a33 ldrh r3, [r6, #16]
|
|
20a6: 8a22 ldrh r2, [r4, #16]
|
|
20a8: 1a9b subs r3, r3, r2
|
|
20aa: 195b adds r3, r3, r5
|
|
20ac: b29b uxth r3, r3
|
|
20ae: 469a mov sl, r3
|
|
20b0: b21b sxth r3, r3
|
|
20b2: 4698 mov r8, r3
|
|
diff.y = y - obj->coords.y1;
|
|
20b4: 8a75 ldrh r5, [r6, #18]
|
|
20b6: 8a63 ldrh r3, [r4, #18]
|
|
20b8: 1aed subs r5, r5, r3
|
|
20ba: 19ed adds r5, r5, r7
|
|
20bc: b2ad uxth r5, r5
|
|
20be: b22b sxth r3, r5
|
|
20c0: 4699 mov r9, r3
|
|
if(diff.x == 0 && diff.y == 0) return;
|
|
20c2: 4643 mov r3, r8
|
|
20c4: 2b00 cmp r3, #0
|
|
20c6: d102 bne.n 20ce <lv_obj_set_pos+0x4a>
|
|
20c8: 464b mov r3, r9
|
|
20ca: 2b00 cmp r3, #0
|
|
20cc: d023 beq.n 2116 <lv_obj_set_pos+0x92>
|
|
lv_obj_invalidate(obj);
|
|
20ce: 0020 movs r0, r4
|
|
20d0: 4f18 ldr r7, [pc, #96] ; (2134 <lv_obj_set_pos+0xb0>)
|
|
20d2: 47b8 blx r7
|
|
lv_obj_get_coords(obj, &ori);
|
|
20d4: 4669 mov r1, sp
|
|
20d6: 0020 movs r0, r4
|
|
20d8: 4b17 ldr r3, [pc, #92] ; (2138 <lv_obj_set_pos+0xb4>)
|
|
20da: 4798 blx r3
|
|
obj->coords.x1 += diff.x;
|
|
20dc: 8a23 ldrh r3, [r4, #16]
|
|
20de: 4453 add r3, sl
|
|
20e0: 8223 strh r3, [r4, #16]
|
|
obj->coords.y1 += diff.y;
|
|
20e2: 8a63 ldrh r3, [r4, #18]
|
|
20e4: 18eb adds r3, r5, r3
|
|
20e6: 8263 strh r3, [r4, #18]
|
|
obj->coords.x2 += diff.x;
|
|
20e8: 8aa3 ldrh r3, [r4, #20]
|
|
20ea: 4453 add r3, sl
|
|
20ec: 82a3 strh r3, [r4, #20]
|
|
obj->coords.y2 += diff.y;
|
|
20ee: 8ae3 ldrh r3, [r4, #22]
|
|
20f0: 18ed adds r5, r5, r3
|
|
20f2: 82e5 strh r5, [r4, #22]
|
|
refresh_children_position(obj, diff.x, diff.y);
|
|
20f4: 464a mov r2, r9
|
|
20f6: 4641 mov r1, r8
|
|
20f8: 0020 movs r0, r4
|
|
20fa: 4b10 ldr r3, [pc, #64] ; (213c <lv_obj_set_pos+0xb8>)
|
|
20fc: 4798 blx r3
|
|
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
|
|
20fe: 466a mov r2, sp
|
|
2100: 2102 movs r1, #2
|
|
2102: 0020 movs r0, r4
|
|
2104: 69e3 ldr r3, [r4, #28]
|
|
2106: 4798 blx r3
|
|
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
|
|
2108: 69f3 ldr r3, [r6, #28]
|
|
210a: 0022 movs r2, r4
|
|
210c: 2101 movs r1, #1
|
|
210e: 0030 movs r0, r6
|
|
2110: 4798 blx r3
|
|
lv_obj_invalidate(obj);
|
|
2112: 0020 movs r0, r4
|
|
2114: 47b8 blx r7
|
|
}
|
|
2116: b002 add sp, #8
|
|
2118: bc1c pop {r2, r3, r4}
|
|
211a: 4690 mov r8, r2
|
|
211c: 4699 mov r9, r3
|
|
211e: 46a2 mov sl, r4
|
|
2120: bdf0 pop {r4, r5, r6, r7, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2122: 0022 movs r2, r4
|
|
2124: 2300 movs r3, #0
|
|
2126: 4806 ldr r0, [pc, #24] ; (2140 <lv_obj_set_pos+0xbc>)
|
|
2128: 4906 ldr r1, [pc, #24] ; (2144 <lv_obj_set_pos+0xc0>)
|
|
212a: 4788 blx r1
|
|
212c: e7fe b.n 212c <lv_obj_set_pos+0xa8>
|
|
212e: 46c0 nop ; (mov r8, r8)
|
|
2130: 0000147d .word 0x0000147d
|
|
2134: 00001fb1 .word 0x00001fb1
|
|
2138: 00001bd5 .word 0x00001bd5
|
|
213c: 00001809 .word 0x00001809
|
|
2140: 0001878c .word 0x0001878c
|
|
2144: 00001485 .word 0x00001485
|
|
|
|
00002148 <lv_obj_align>:
|
|
{
|
|
2148: b5f0 push {r4, r5, r6, r7, lr}
|
|
214a: 46d6 mov lr, sl
|
|
214c: 464f mov r7, r9
|
|
214e: 4646 mov r6, r8
|
|
2150: b5c0 push {r6, r7, lr}
|
|
2152: b084 sub sp, #16
|
|
2154: 0004 movs r4, r0
|
|
2156: 000f movs r7, r1
|
|
2158: 9201 str r2, [sp, #4]
|
|
215a: 4699 mov r9, r3
|
|
215c: ab0c add r3, sp, #48 ; 0x30
|
|
215e: 2200 movs r2, #0
|
|
2160: 5e9a ldrsh r2, [r3, r2]
|
|
2162: 4690 mov r8, r2
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2164: 4b26 ldr r3, [pc, #152] ; (2200 <lv_obj_align+0xb8>)
|
|
2166: 4798 blx r3
|
|
2168: 2800 cmp r0, #0
|
|
216a: d105 bne.n 2178 <lv_obj_align+0x30>
|
|
216c: 0022 movs r2, r4
|
|
216e: 2300 movs r3, #0
|
|
2170: 4824 ldr r0, [pc, #144] ; (2204 <lv_obj_align+0xbc>)
|
|
2172: 4925 ldr r1, [pc, #148] ; (2208 <lv_obj_align+0xc0>)
|
|
2174: 4788 blx r1
|
|
2176: e7fe b.n 2176 <lv_obj_align+0x2e>
|
|
if(base == NULL) base = lv_obj_get_parent(obj);
|
|
2178: 2f00 cmp r7, #0
|
|
217a: d00a beq.n 2192 <lv_obj_align+0x4a>
|
|
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
|
|
217c: 0038 movs r0, r7
|
|
217e: 4b20 ldr r3, [pc, #128] ; (2200 <lv_obj_align+0xb8>)
|
|
2180: 4798 blx r3
|
|
2182: 2800 cmp r0, #0
|
|
2184: d10a bne.n 219c <lv_obj_align+0x54>
|
|
2186: 003a movs r2, r7
|
|
2188: 2300 movs r3, #0
|
|
218a: 481e ldr r0, [pc, #120] ; (2204 <lv_obj_align+0xbc>)
|
|
218c: 491e ldr r1, [pc, #120] ; (2208 <lv_obj_align+0xc0>)
|
|
218e: 4788 blx r1
|
|
2190: e7fe b.n 2190 <lv_obj_align+0x48>
|
|
if(base == NULL) base = lv_obj_get_parent(obj);
|
|
2192: 0020 movs r0, r4
|
|
2194: 4b1d ldr r3, [pc, #116] ; (220c <lv_obj_align+0xc4>)
|
|
2196: 4798 blx r3
|
|
2198: 0007 movs r7, r0
|
|
219a: e7ef b.n 217c <lv_obj_align+0x34>
|
|
_lv_area_align(&base->coords, &obj->coords, align, &new_pos);
|
|
219c: ad03 add r5, sp, #12
|
|
219e: 0021 movs r1, r4
|
|
21a0: 3110 adds r1, #16
|
|
21a2: 0038 movs r0, r7
|
|
21a4: 3010 adds r0, #16
|
|
21a6: 002b movs r3, r5
|
|
21a8: 9a01 ldr r2, [sp, #4]
|
|
21aa: 4e19 ldr r6, [pc, #100] ; (2210 <lv_obj_align+0xc8>)
|
|
21ac: 47b0 blx r6
|
|
lv_obj_t * par = lv_obj_get_parent(obj);
|
|
21ae: 0020 movs r0, r4
|
|
21b0: 4b16 ldr r3, [pc, #88] ; (220c <lv_obj_align+0xc4>)
|
|
21b2: 4798 blx r3
|
|
lv_coord_t par_abs_y = par->coords.y1;
|
|
21b4: 2212 movs r2, #18
|
|
21b6: 5e83 ldrsh r3, [r0, r2]
|
|
new_pos.y += y_ofs;
|
|
21b8: 886a ldrh r2, [r5, #2]
|
|
21ba: 4442 add r2, r8
|
|
new_pos.x += x_ofs;
|
|
21bc: 8829 ldrh r1, [r5, #0]
|
|
21be: 4449 add r1, r9
|
|
new_pos.x -= par_abs_x;
|
|
21c0: 8a00 ldrh r0, [r0, #16]
|
|
21c2: 1a09 subs r1, r1, r0
|
|
21c4: b209 sxth r1, r1
|
|
21c6: 8029 strh r1, [r5, #0]
|
|
new_pos.y -= par_abs_y;
|
|
21c8: 1ad2 subs r2, r2, r3
|
|
21ca: b212 sxth r2, r2
|
|
21cc: 806a strh r2, [r5, #2]
|
|
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
|
|
21ce: 0020 movs r0, r4
|
|
21d0: 4b10 ldr r3, [pc, #64] ; (2214 <lv_obj_align+0xcc>)
|
|
21d2: 4798 blx r3
|
|
obj->realign.align = align;
|
|
21d4: 2348 movs r3, #72 ; 0x48
|
|
21d6: 466a mov r2, sp
|
|
21d8: 7912 ldrb r2, [r2, #4]
|
|
21da: 54e2 strb r2, [r4, r3]
|
|
obj->realign.xofs = x_ofs;
|
|
21dc: 3b04 subs r3, #4
|
|
21de: 464a mov r2, r9
|
|
21e0: 52e2 strh r2, [r4, r3]
|
|
obj->realign.yofs = y_ofs;
|
|
21e2: 3302 adds r3, #2
|
|
21e4: 4642 mov r2, r8
|
|
21e6: 52e2 strh r2, [r4, r3]
|
|
obj->realign.base = base;
|
|
21e8: 6427 str r7, [r4, #64] ; 0x40
|
|
obj->realign.origo_align = 0;
|
|
21ea: 2249 movs r2, #73 ; 0x49
|
|
21ec: 5ca3 ldrb r3, [r4, r2]
|
|
21ee: 2102 movs r1, #2
|
|
21f0: 438b bics r3, r1
|
|
21f2: 54a3 strb r3, [r4, r2]
|
|
}
|
|
21f4: b004 add sp, #16
|
|
21f6: bc1c pop {r2, r3, r4}
|
|
21f8: 4690 mov r8, r2
|
|
21fa: 4699 mov r9, r3
|
|
21fc: 46a2 mov sl, r4
|
|
21fe: bdf0 pop {r4, r5, r6, r7, pc}
|
|
2200: 0000147d .word 0x0000147d
|
|
2204: 0001878c .word 0x0001878c
|
|
2208: 00001485 .word 0x00001485
|
|
220c: 00001aa1 .word 0x00001aa1
|
|
2210: 0000ff41 .word 0x0000ff41
|
|
2214: 00002085 .word 0x00002085
|
|
|
|
00002218 <lv_obj_align_origo>:
|
|
{
|
|
2218: b5f0 push {r4, r5, r6, r7, lr}
|
|
221a: 46de mov lr, fp
|
|
221c: 4657 mov r7, sl
|
|
221e: 464e mov r6, r9
|
|
2220: 4645 mov r5, r8
|
|
2222: b5e0 push {r5, r6, r7, lr}
|
|
2224: b083 sub sp, #12
|
|
2226: 4680 mov r8, r0
|
|
2228: 9101 str r1, [sp, #4]
|
|
222a: 4692 mov sl, r2
|
|
222c: 4699 mov r9, r3
|
|
222e: ab0c add r3, sp, #48 ; 0x30
|
|
2230: 2200 movs r2, #0
|
|
2232: 5e9b ldrsh r3, [r3, r2]
|
|
2234: 469b mov fp, r3
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2236: 4ba1 ldr r3, [pc, #644] ; (24bc <lv_obj_align_origo+0x2a4>)
|
|
2238: 4798 blx r3
|
|
223a: 2800 cmp r0, #0
|
|
223c: d105 bne.n 224a <lv_obj_align_origo+0x32>
|
|
223e: 4642 mov r2, r8
|
|
2240: 2300 movs r3, #0
|
|
2242: 489f ldr r0, [pc, #636] ; (24c0 <lv_obj_align_origo+0x2a8>)
|
|
2244: 499f ldr r1, [pc, #636] ; (24c4 <lv_obj_align_origo+0x2ac>)
|
|
2246: 4788 blx r1
|
|
2248: e7fe b.n 2248 <lv_obj_align_origo+0x30>
|
|
lv_coord_t new_x = lv_obj_get_x(obj);
|
|
224a: 4640 mov r0, r8
|
|
224c: 4b9e ldr r3, [pc, #632] ; (24c8 <lv_obj_align_origo+0x2b0>)
|
|
224e: 4798 blx r3
|
|
2250: 0005 movs r5, r0
|
|
lv_coord_t new_y = lv_obj_get_y(obj);
|
|
2252: 4640 mov r0, r8
|
|
2254: 4b9d ldr r3, [pc, #628] ; (24cc <lv_obj_align_origo+0x2b4>)
|
|
2256: 4798 blx r3
|
|
2258: 0004 movs r4, r0
|
|
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
|
|
225a: 4640 mov r0, r8
|
|
225c: 4b9c ldr r3, [pc, #624] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
225e: 4798 blx r3
|
|
2260: 0fc3 lsrs r3, r0, #31
|
|
2262: 181b adds r3, r3, r0
|
|
2264: 105b asrs r3, r3, #1
|
|
2266: b21e sxth r6, r3
|
|
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
|
|
2268: 4640 mov r0, r8
|
|
226a: 4b9a ldr r3, [pc, #616] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
226c: 4798 blx r3
|
|
226e: 0fc7 lsrs r7, r0, #31
|
|
2270: 183f adds r7, r7, r0
|
|
2272: 107f asrs r7, r7, #1
|
|
2274: b23f sxth r7, r7
|
|
if(base == NULL) {
|
|
2276: 9b01 ldr r3, [sp, #4]
|
|
2278: 2b00 cmp r3, #0
|
|
227a: d00b beq.n 2294 <lv_obj_align_origo+0x7c>
|
|
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
|
|
227c: 9801 ldr r0, [sp, #4]
|
|
227e: 4b8f ldr r3, [pc, #572] ; (24bc <lv_obj_align_origo+0x2a4>)
|
|
2280: 4798 blx r3
|
|
2282: 2800 cmp r0, #0
|
|
2284: d00b beq.n 229e <lv_obj_align_origo+0x86>
|
|
switch(align) {
|
|
2286: 4653 mov r3, sl
|
|
2288: 2b14 cmp r3, #20
|
|
228a: d81f bhi.n 22cc <lv_obj_align_origo+0xb4>
|
|
228c: 009b lsls r3, r3, #2
|
|
228e: 4a92 ldr r2, [pc, #584] ; (24d8 <lv_obj_align_origo+0x2c0>)
|
|
2290: 58d3 ldr r3, [r2, r3]
|
|
2292: 469f mov pc, r3
|
|
base = lv_obj_get_parent(obj);
|
|
2294: 4640 mov r0, r8
|
|
2296: 4b91 ldr r3, [pc, #580] ; (24dc <lv_obj_align_origo+0x2c4>)
|
|
2298: 4798 blx r3
|
|
229a: 9001 str r0, [sp, #4]
|
|
229c: e7ee b.n 227c <lv_obj_align_origo+0x64>
|
|
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
|
|
229e: 9a01 ldr r2, [sp, #4]
|
|
22a0: 2300 movs r3, #0
|
|
22a2: 4887 ldr r0, [pc, #540] ; (24c0 <lv_obj_align_origo+0x2a8>)
|
|
22a4: 4987 ldr r1, [pc, #540] ; (24c4 <lv_obj_align_origo+0x2ac>)
|
|
22a6: 4788 blx r1
|
|
22a8: e7fe b.n 22a8 <lv_obj_align_origo+0x90>
|
|
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
|
|
22aa: 9c01 ldr r4, [sp, #4]
|
|
22ac: 0020 movs r0, r4
|
|
22ae: 4b88 ldr r3, [pc, #544] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
22b0: 4798 blx r3
|
|
22b2: 0fc5 lsrs r5, r0, #31
|
|
22b4: 182d adds r5, r5, r0
|
|
22b6: 106d asrs r5, r5, #1
|
|
22b8: 1bad subs r5, r5, r6
|
|
22ba: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
|
|
22bc: 0020 movs r0, r4
|
|
22be: 4b85 ldr r3, [pc, #532] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
22c0: 4798 blx r3
|
|
22c2: 0fc4 lsrs r4, r0, #31
|
|
22c4: 1824 adds r4, r4, r0
|
|
22c6: 1064 asrs r4, r4, #1
|
|
22c8: 1be4 subs r4, r4, r7
|
|
22ca: b224 sxth r4, r4
|
|
lv_obj_t * par = lv_obj_get_parent(obj);
|
|
22cc: 4640 mov r0, r8
|
|
22ce: 4b83 ldr r3, [pc, #524] ; (24dc <lv_obj_align_origo+0x2c4>)
|
|
22d0: 4798 blx r3
|
|
new_x += x_ofs + base_abs_x;
|
|
22d2: 9a01 ldr r2, [sp, #4]
|
|
22d4: 8a13 ldrh r3, [r2, #16]
|
|
22d6: 444b add r3, r9
|
|
22d8: 195d adds r5, r3, r5
|
|
new_x -= par_abs_x;
|
|
22da: 8a01 ldrh r1, [r0, #16]
|
|
22dc: 1a69 subs r1, r5, r1
|
|
new_y += y_ofs + base_abs_y;
|
|
22de: 0015 movs r5, r2
|
|
22e0: 8a52 ldrh r2, [r2, #18]
|
|
22e2: 445a add r2, fp
|
|
22e4: 1912 adds r2, r2, r4
|
|
new_y -= par_abs_y;
|
|
22e6: 8a44 ldrh r4, [r0, #18]
|
|
22e8: 1b12 subs r2, r2, r4
|
|
lv_obj_set_pos(obj, new_x, new_y);
|
|
22ea: b212 sxth r2, r2
|
|
22ec: b209 sxth r1, r1
|
|
22ee: 4640 mov r0, r8
|
|
22f0: 4b7b ldr r3, [pc, #492] ; (24e0 <lv_obj_align_origo+0x2c8>)
|
|
22f2: 4798 blx r3
|
|
obj->realign.align = align;
|
|
22f4: 2348 movs r3, #72 ; 0x48
|
|
22f6: 4642 mov r2, r8
|
|
22f8: 4651 mov r1, sl
|
|
22fa: 54d1 strb r1, [r2, r3]
|
|
obj->realign.xofs = x_ofs;
|
|
22fc: 3b04 subs r3, #4
|
|
22fe: 4649 mov r1, r9
|
|
2300: 52d1 strh r1, [r2, r3]
|
|
obj->realign.yofs = y_ofs;
|
|
2302: 3302 adds r3, #2
|
|
2304: 4659 mov r1, fp
|
|
2306: 52d1 strh r1, [r2, r3]
|
|
obj->realign.base = base;
|
|
2308: 6415 str r5, [r2, #64] ; 0x40
|
|
obj->realign.origo_align = 1;
|
|
230a: 2249 movs r2, #73 ; 0x49
|
|
230c: 4643 mov r3, r8
|
|
230e: 5c9b ldrb r3, [r3, r2]
|
|
2310: 2102 movs r1, #2
|
|
2312: 430b orrs r3, r1
|
|
2314: 4641 mov r1, r8
|
|
2316: 548b strb r3, [r1, r2]
|
|
}
|
|
2318: b003 add sp, #12
|
|
231a: bc3c pop {r2, r3, r4, r5}
|
|
231c: 4690 mov r8, r2
|
|
231e: 4699 mov r9, r3
|
|
2320: 46a2 mov sl, r4
|
|
2322: 46ab mov fp, r5
|
|
2324: bdf0 pop {r4, r5, r6, r7, pc}
|
|
new_x = -obj_w_half;
|
|
2326: 4275 negs r5, r6
|
|
2328: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
232a: 427c negs r4, r7
|
|
232c: b224 sxth r4, r4
|
|
break;
|
|
232e: e7cd b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
|
|
2330: 9801 ldr r0, [sp, #4]
|
|
2332: 4b67 ldr r3, [pc, #412] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
2334: 4798 blx r3
|
|
2336: 0fc5 lsrs r5, r0, #31
|
|
2338: 182d adds r5, r5, r0
|
|
233a: 106d asrs r5, r5, #1
|
|
233c: 1bad subs r5, r5, r6
|
|
233e: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
2340: 427c negs r4, r7
|
|
2342: b224 sxth r4, r4
|
|
break;
|
|
2344: e7c2 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
2346: 9801 ldr r0, [sp, #4]
|
|
2348: 4b61 ldr r3, [pc, #388] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
234a: 4798 blx r3
|
|
234c: 1b85 subs r5, r0, r6
|
|
234e: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
2350: 427c negs r4, r7
|
|
2352: b224 sxth r4, r4
|
|
break;
|
|
2354: e7ba b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
2356: 4275 negs r5, r6
|
|
2358: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
235a: 9801 ldr r0, [sp, #4]
|
|
235c: 4b5d ldr r3, [pc, #372] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
235e: 4798 blx r3
|
|
2360: 1bc4 subs r4, r0, r7
|
|
2362: b224 sxth r4, r4
|
|
break;
|
|
2364: e7b2 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
|
|
2366: 9c01 ldr r4, [sp, #4]
|
|
2368: 0020 movs r0, r4
|
|
236a: 4b59 ldr r3, [pc, #356] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
236c: 4798 blx r3
|
|
236e: 0fc5 lsrs r5, r0, #31
|
|
2370: 182d adds r5, r5, r0
|
|
2372: 106d asrs r5, r5, #1
|
|
2374: 1bad subs r5, r5, r6
|
|
2376: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
2378: 0020 movs r0, r4
|
|
237a: 4b56 ldr r3, [pc, #344] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
237c: 4798 blx r3
|
|
237e: 1bc4 subs r4, r0, r7
|
|
2380: b224 sxth r4, r4
|
|
break;
|
|
2382: e7a3 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
2384: 9c01 ldr r4, [sp, #4]
|
|
2386: 0020 movs r0, r4
|
|
2388: 4b51 ldr r3, [pc, #324] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
238a: 4798 blx r3
|
|
238c: 1b85 subs r5, r0, r6
|
|
238e: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
2390: 0020 movs r0, r4
|
|
2392: 4b50 ldr r3, [pc, #320] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
2394: 4798 blx r3
|
|
2396: 1bc4 subs r4, r0, r7
|
|
2398: b224 sxth r4, r4
|
|
break;
|
|
239a: e797 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
239c: 4275 negs r5, r6
|
|
239e: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
|
|
23a0: 9801 ldr r0, [sp, #4]
|
|
23a2: 4b4c ldr r3, [pc, #304] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
23a4: 4798 blx r3
|
|
23a6: 0fc4 lsrs r4, r0, #31
|
|
23a8: 1824 adds r4, r4, r0
|
|
23aa: 1064 asrs r4, r4, #1
|
|
23ac: 1be4 subs r4, r4, r7
|
|
23ae: b224 sxth r4, r4
|
|
break;
|
|
23b0: e78c b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
23b2: 9c01 ldr r4, [sp, #4]
|
|
23b4: 0020 movs r0, r4
|
|
23b6: 4b46 ldr r3, [pc, #280] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
23b8: 4798 blx r3
|
|
23ba: 1b85 subs r5, r0, r6
|
|
23bc: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
|
|
23be: 0020 movs r0, r4
|
|
23c0: 4b44 ldr r3, [pc, #272] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
23c2: 4798 blx r3
|
|
23c4: 0fc4 lsrs r4, r0, #31
|
|
23c6: 1824 adds r4, r4, r0
|
|
23c8: 1064 asrs r4, r4, #1
|
|
23ca: 1be4 subs r4, r4, r7
|
|
23cc: b224 sxth r4, r4
|
|
break;
|
|
23ce: e77d b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
23d0: 4275 negs r5, r6
|
|
23d2: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
23d4: 427c negs r4, r7
|
|
23d6: b224 sxth r4, r4
|
|
break;
|
|
23d8: e778 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
|
|
23da: 9801 ldr r0, [sp, #4]
|
|
23dc: 4b3c ldr r3, [pc, #240] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
23de: 4798 blx r3
|
|
23e0: 0fc5 lsrs r5, r0, #31
|
|
23e2: 182d adds r5, r5, r0
|
|
23e4: 106d asrs r5, r5, #1
|
|
23e6: 1bad subs r5, r5, r6
|
|
23e8: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
23ea: 427c negs r4, r7
|
|
23ec: b224 sxth r4, r4
|
|
break;
|
|
23ee: e76d b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
23f0: 9801 ldr r0, [sp, #4]
|
|
23f2: 4b37 ldr r3, [pc, #220] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
23f4: 4798 blx r3
|
|
23f6: 1b85 subs r5, r0, r6
|
|
23f8: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
23fa: 427c negs r4, r7
|
|
23fc: b224 sxth r4, r4
|
|
break;
|
|
23fe: e765 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
2400: 4275 negs r5, r6
|
|
2402: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
2404: 9801 ldr r0, [sp, #4]
|
|
2406: 4b33 ldr r3, [pc, #204] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
2408: 4798 blx r3
|
|
240a: 1bc4 subs r4, r0, r7
|
|
240c: b224 sxth r4, r4
|
|
break;
|
|
240e: e75d b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
|
|
2410: 9c01 ldr r4, [sp, #4]
|
|
2412: 0020 movs r0, r4
|
|
2414: 4b2e ldr r3, [pc, #184] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
2416: 4798 blx r3
|
|
2418: 0fc5 lsrs r5, r0, #31
|
|
241a: 182d adds r5, r5, r0
|
|
241c: 106d asrs r5, r5, #1
|
|
241e: 1bad subs r5, r5, r6
|
|
2420: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
2422: 0020 movs r0, r4
|
|
2424: 4b2b ldr r3, [pc, #172] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
2426: 4798 blx r3
|
|
2428: 1bc4 subs r4, r0, r7
|
|
242a: b224 sxth r4, r4
|
|
break;
|
|
242c: e74e b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
242e: 9c01 ldr r4, [sp, #4]
|
|
2430: 0020 movs r0, r4
|
|
2432: 4b27 ldr r3, [pc, #156] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
2434: 4798 blx r3
|
|
2436: 1b85 subs r5, r0, r6
|
|
2438: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
243a: 0020 movs r0, r4
|
|
243c: 4b25 ldr r3, [pc, #148] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
243e: 4798 blx r3
|
|
2440: 1bc4 subs r4, r0, r7
|
|
2442: b224 sxth r4, r4
|
|
break;
|
|
2444: e742 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
2446: 4275 negs r5, r6
|
|
2448: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
244a: 427c negs r4, r7
|
|
244c: b224 sxth r4, r4
|
|
break;
|
|
244e: e73d b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
2450: 4275 negs r5, r6
|
|
2452: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
|
|
2454: 9801 ldr r0, [sp, #4]
|
|
2456: 4b1f ldr r3, [pc, #124] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
2458: 4798 blx r3
|
|
245a: 0fc4 lsrs r4, r0, #31
|
|
245c: 1824 adds r4, r4, r0
|
|
245e: 1064 asrs r4, r4, #1
|
|
2460: 1be4 subs r4, r4, r7
|
|
2462: b224 sxth r4, r4
|
|
break;
|
|
2464: e732 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = -obj_w_half;
|
|
2466: 4275 negs r5, r6
|
|
2468: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
246a: 9801 ldr r0, [sp, #4]
|
|
246c: 4b19 ldr r3, [pc, #100] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
246e: 4798 blx r3
|
|
2470: 1bc4 subs r4, r0, r7
|
|
2472: b224 sxth r4, r4
|
|
break;
|
|
2474: e72a b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
2476: 9801 ldr r0, [sp, #4]
|
|
2478: 4b15 ldr r3, [pc, #84] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
247a: 4798 blx r3
|
|
247c: 1b85 subs r5, r0, r6
|
|
247e: b22d sxth r5, r5
|
|
new_y = -obj_h_half;
|
|
2480: 427c negs r4, r7
|
|
2482: b224 sxth r4, r4
|
|
break;
|
|
2484: e722 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
2486: 9c01 ldr r4, [sp, #4]
|
|
2488: 0020 movs r0, r4
|
|
248a: 4b11 ldr r3, [pc, #68] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
248c: 4798 blx r3
|
|
248e: 1b85 subs r5, r0, r6
|
|
2490: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
|
|
2492: 0020 movs r0, r4
|
|
2494: 4b0f ldr r3, [pc, #60] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
2496: 4798 blx r3
|
|
2498: 0fc4 lsrs r4, r0, #31
|
|
249a: 1824 adds r4, r4, r0
|
|
249c: 1064 asrs r4, r4, #1
|
|
249e: 1be4 subs r4, r4, r7
|
|
24a0: b224 sxth r4, r4
|
|
break;
|
|
24a2: e713 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
new_x = lv_obj_get_width(base) - obj_w_half;
|
|
24a4: 9c01 ldr r4, [sp, #4]
|
|
24a6: 0020 movs r0, r4
|
|
24a8: 4b09 ldr r3, [pc, #36] ; (24d0 <lv_obj_align_origo+0x2b8>)
|
|
24aa: 4798 blx r3
|
|
24ac: 1b85 subs r5, r0, r6
|
|
24ae: b22d sxth r5, r5
|
|
new_y = lv_obj_get_height(base) - obj_h_half;
|
|
24b0: 0020 movs r0, r4
|
|
24b2: 4b08 ldr r3, [pc, #32] ; (24d4 <lv_obj_align_origo+0x2bc>)
|
|
24b4: 4798 blx r3
|
|
24b6: 1bc4 subs r4, r0, r7
|
|
24b8: b224 sxth r4, r4
|
|
break;
|
|
24ba: e707 b.n 22cc <lv_obj_align_origo+0xb4>
|
|
24bc: 0000147d .word 0x0000147d
|
|
24c0: 0001878c .word 0x0001878c
|
|
24c4: 00001485 .word 0x00001485
|
|
24c8: 00001c11 .word 0x00001c11
|
|
24cc: 00001c55 .word 0x00001c55
|
|
24d0: 00001c99 .word 0x00001c99
|
|
24d4: 00001cc9 .word 0x00001cc9
|
|
24d8: 00018734 .word 0x00018734
|
|
24dc: 00001aa1 .word 0x00001aa1
|
|
24e0: 00002085 .word 0x00002085
|
|
|
|
000024e4 <lv_obj_realign>:
|
|
{
|
|
24e4: b510 push {r4, lr}
|
|
24e6: b082 sub sp, #8
|
|
24e8: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
24ea: 4b13 ldr r3, [pc, #76] ; (2538 <lv_obj_realign+0x54>)
|
|
24ec: 4798 blx r3
|
|
24ee: 2800 cmp r0, #0
|
|
24f0: d010 beq.n 2514 <lv_obj_realign+0x30>
|
|
if(obj->realign.origo_align)
|
|
24f2: 2349 movs r3, #73 ; 0x49
|
|
24f4: 5ce3 ldrb r3, [r4, r3]
|
|
24f6: 079b lsls r3, r3, #30
|
|
24f8: d512 bpl.n 2520 <lv_obj_realign+0x3c>
|
|
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
|
|
24fa: 2344 movs r3, #68 ; 0x44
|
|
24fc: 5ee3 ldrsh r3, [r4, r3]
|
|
24fe: 2248 movs r2, #72 ; 0x48
|
|
2500: 5ca2 ldrb r2, [r4, r2]
|
|
2502: 2146 movs r1, #70 ; 0x46
|
|
2504: 5e61 ldrsh r1, [r4, r1]
|
|
2506: 9100 str r1, [sp, #0]
|
|
2508: 6c21 ldr r1, [r4, #64] ; 0x40
|
|
250a: 0020 movs r0, r4
|
|
250c: 4c0b ldr r4, [pc, #44] ; (253c <lv_obj_realign+0x58>)
|
|
250e: 47a0 blx r4
|
|
}
|
|
2510: b002 add sp, #8
|
|
2512: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2514: 0022 movs r2, r4
|
|
2516: 2300 movs r3, #0
|
|
2518: 4809 ldr r0, [pc, #36] ; (2540 <lv_obj_realign+0x5c>)
|
|
251a: 490a ldr r1, [pc, #40] ; (2544 <lv_obj_realign+0x60>)
|
|
251c: 4788 blx r1
|
|
251e: e7fe b.n 251e <lv_obj_realign+0x3a>
|
|
lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
|
|
2520: 2344 movs r3, #68 ; 0x44
|
|
2522: 5ee3 ldrsh r3, [r4, r3]
|
|
2524: 2248 movs r2, #72 ; 0x48
|
|
2526: 5ca2 ldrb r2, [r4, r2]
|
|
2528: 2146 movs r1, #70 ; 0x46
|
|
252a: 5e61 ldrsh r1, [r4, r1]
|
|
252c: 9100 str r1, [sp, #0]
|
|
252e: 6c21 ldr r1, [r4, #64] ; 0x40
|
|
2530: 0020 movs r0, r4
|
|
2532: 4c05 ldr r4, [pc, #20] ; (2548 <lv_obj_realign+0x64>)
|
|
2534: 47a0 blx r4
|
|
}
|
|
2536: e7eb b.n 2510 <lv_obj_realign+0x2c>
|
|
2538: 0000147d .word 0x0000147d
|
|
253c: 00002219 .word 0x00002219
|
|
2540: 0001878c .word 0x0001878c
|
|
2544: 00001485 .word 0x00001485
|
|
2548: 00002149 .word 0x00002149
|
|
|
|
0000254c <refresh_children_style>:
|
|
{
|
|
254c: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
254e: 0006 movs r6, r0
|
|
lv_obj_t * child = lv_obj_get_child(obj, NULL);
|
|
2550: 2100 movs r1, #0
|
|
2552: 4b0c ldr r3, [pc, #48] ; (2584 <refresh_children_style+0x38>)
|
|
2554: 4798 blx r3
|
|
2556: 1e04 subs r4, r0, #0
|
|
while(child != NULL) {
|
|
2558: d012 beq.n 2580 <refresh_children_style+0x34>
|
|
lv_obj_invalidate(child);
|
|
255a: 4d0b ldr r5, [pc, #44] ; (2588 <refresh_children_style+0x3c>)
|
|
child = lv_obj_get_child(obj, child);
|
|
255c: 4f09 ldr r7, [pc, #36] ; (2584 <refresh_children_style+0x38>)
|
|
lv_obj_invalidate(child);
|
|
255e: 0020 movs r0, r4
|
|
2560: 47a8 blx r5
|
|
child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL);
|
|
2562: 2200 movs r2, #0
|
|
2564: 2104 movs r1, #4
|
|
2566: 0020 movs r0, r4
|
|
2568: 69e3 ldr r3, [r4, #28]
|
|
256a: 4798 blx r3
|
|
lv_obj_invalidate(child);
|
|
256c: 0020 movs r0, r4
|
|
256e: 47a8 blx r5
|
|
refresh_children_style(child); /*Check children too*/
|
|
2570: 0020 movs r0, r4
|
|
2572: f7ff ffeb bl 254c <refresh_children_style>
|
|
child = lv_obj_get_child(obj, child);
|
|
2576: 0021 movs r1, r4
|
|
2578: 0030 movs r0, r6
|
|
257a: 47b8 blx r7
|
|
257c: 1e04 subs r4, r0, #0
|
|
while(child != NULL) {
|
|
257e: d1ee bne.n 255e <refresh_children_style+0x12>
|
|
}
|
|
2580: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
2582: 46c0 nop ; (mov r8, r8)
|
|
2584: 00001b91 .word 0x00001b91
|
|
2588: 00001fb1 .word 0x00001fb1
|
|
|
|
0000258c <lv_obj_refresh_style>:
|
|
{
|
|
258c: b570 push {r4, r5, r6, lr}
|
|
258e: 0005 movs r5, r0
|
|
2590: 000c movs r4, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2592: 4b31 ldr r3, [pc, #196] ; (2658 <lv_obj_refresh_style+0xcc>)
|
|
2594: 4798 blx r3
|
|
2596: 2800 cmp r0, #0
|
|
2598: d013 beq.n 25c2 <lv_obj_refresh_style+0x36>
|
|
switch(prop) {
|
|
259a: 2c71 cmp r4, #113 ; 0x71
|
|
259c: d83e bhi.n 261c <lv_obj_refresh_style+0x90>
|
|
259e: 2c70 cmp r4, #112 ; 0x70
|
|
25a0: d21b bcs.n 25da <lv_obj_refresh_style+0x4e>
|
|
25a2: 2c41 cmp r4, #65 ; 0x41
|
|
25a4: d813 bhi.n 25ce <lv_obj_refresh_style+0x42>
|
|
25a6: 2c40 cmp r4, #64 ; 0x40
|
|
25a8: d217 bcs.n 25da <lv_obj_refresh_style+0x4e>
|
|
25aa: 2c02 cmp r4, #2
|
|
25ac: d305 bcc.n 25ba <lv_obj_refresh_style+0x2e>
|
|
25ae: 2c07 cmp r4, #7
|
|
25b0: d913 bls.n 25da <lv_obj_refresh_style+0x4e>
|
|
25b2: 0023 movs r3, r4
|
|
25b4: 3b10 subs r3, #16
|
|
25b6: 2b08 cmp r3, #8
|
|
25b8: d90f bls.n 25da <lv_obj_refresh_style+0x4e>
|
|
lv_obj_invalidate(obj);
|
|
25ba: 0028 movs r0, r5
|
|
25bc: 4b27 ldr r3, [pc, #156] ; (265c <lv_obj_refresh_style+0xd0>)
|
|
25be: 4798 blx r3
|
|
}
|
|
25c0: e028 b.n 2614 <lv_obj_refresh_style+0x88>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
25c2: 002a movs r2, r5
|
|
25c4: 2300 movs r3, #0
|
|
25c6: 4826 ldr r0, [pc, #152] ; (2660 <lv_obj_refresh_style+0xd4>)
|
|
25c8: 4926 ldr r1, [pc, #152] ; (2664 <lv_obj_refresh_style+0xd8>)
|
|
25ca: 4788 blx r1
|
|
25cc: e7fe b.n 25cc <lv_obj_refresh_style+0x40>
|
|
switch(prop) {
|
|
25ce: 2c53 cmp r4, #83 ; 0x53
|
|
25d0: d821 bhi.n 2616 <lv_obj_refresh_style+0x8a>
|
|
25d2: 2c50 cmp r4, #80 ; 0x50
|
|
25d4: d201 bcs.n 25da <lv_obj_refresh_style+0x4e>
|
|
25d6: 2c4c cmp r4, #76 ; 0x4c
|
|
25d8: d1ef bne.n 25ba <lv_obj_refresh_style+0x2e>
|
|
lv_obj_invalidate(obj);
|
|
25da: 0028 movs r0, r5
|
|
25dc: 4b1f ldr r3, [pc, #124] ; (265c <lv_obj_refresh_style+0xd0>)
|
|
25de: 4798 blx r3
|
|
obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL);
|
|
25e0: 2200 movs r2, #0
|
|
25e2: 2104 movs r1, #4
|
|
25e4: 0028 movs r0, r5
|
|
25e6: 69eb ldr r3, [r5, #28]
|
|
25e8: 4798 blx r3
|
|
switch(prop) {
|
|
25ea: 2c15 cmp r4, #21
|
|
25ec: d30a bcc.n 2604 <lv_obj_refresh_style+0x78>
|
|
25ee: 2c18 cmp r4, #24
|
|
25f0: d901 bls.n 25f6 <lv_obj_refresh_style+0x6a>
|
|
25f2: 2cff cmp r4, #255 ; 0xff
|
|
25f4: d106 bne.n 2604 <lv_obj_refresh_style+0x78>
|
|
if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL);
|
|
25f6: 6828 ldr r0, [r5, #0]
|
|
25f8: 2800 cmp r0, #0
|
|
25fa: d003 beq.n 2604 <lv_obj_refresh_style+0x78>
|
|
25fc: 69c3 ldr r3, [r0, #28]
|
|
25fe: 2200 movs r2, #0
|
|
2600: 2101 movs r1, #1
|
|
2602: 4798 blx r3
|
|
lv_obj_invalidate(obj);
|
|
2604: 0028 movs r0, r5
|
|
2606: 4b15 ldr r3, [pc, #84] ; (265c <lv_obj_refresh_style+0xd0>)
|
|
2608: 4798 blx r3
|
|
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
|
|
260a: 2cff cmp r4, #255 ; 0xff
|
|
260c: d020 beq.n 2650 <lv_obj_refresh_style+0xc4>
|
|
260e: b224 sxth r4, r4
|
|
2610: 2c00 cmp r4, #0
|
|
2612: db1d blt.n 2650 <lv_obj_refresh_style+0xc4>
|
|
}
|
|
2614: bd70 pop {r4, r5, r6, pc}
|
|
switch(prop) {
|
|
2616: 2c5c cmp r4, #92 ; 0x5c
|
|
2618: d1cf bne.n 25ba <lv_obj_refresh_style+0x2e>
|
|
261a: e7de b.n 25da <lv_obj_refresh_style+0x4e>
|
|
261c: 2c7f cmp r4, #127 ; 0x7f
|
|
261e: d90a bls.n 2636 <lv_obj_refresh_style+0xaa>
|
|
2620: 4b11 ldr r3, [pc, #68] ; (2668 <lv_obj_refresh_style+0xdc>)
|
|
2622: 429c cmp r4, r3
|
|
2624: d810 bhi.n 2648 <lv_obj_refresh_style+0xbc>
|
|
2626: 4b11 ldr r3, [pc, #68] ; (266c <lv_obj_refresh_style+0xe0>)
|
|
2628: 429c cmp r4, r3
|
|
262a: d2d6 bcs.n 25da <lv_obj_refresh_style+0x4e>
|
|
262c: 2c90 cmp r4, #144 ; 0x90
|
|
262e: d0d4 beq.n 25da <lv_obj_refresh_style+0x4e>
|
|
2630: 2cff cmp r4, #255 ; 0xff
|
|
2632: d1c2 bne.n 25ba <lv_obj_refresh_style+0x2e>
|
|
2634: e7d1 b.n 25da <lv_obj_refresh_style+0x4e>
|
|
2636: 2c7e cmp r4, #126 ; 0x7e
|
|
2638: d2cf bcs.n 25da <lv_obj_refresh_style+0x4e>
|
|
263a: 2c73 cmp r4, #115 ; 0x73
|
|
263c: d3bd bcc.n 25ba <lv_obj_refresh_style+0x2e>
|
|
263e: 2c75 cmp r4, #117 ; 0x75
|
|
2640: d9cb bls.n 25da <lv_obj_refresh_style+0x4e>
|
|
2642: 2c7c cmp r4, #124 ; 0x7c
|
|
2644: d1b9 bne.n 25ba <lv_obj_refresh_style+0x2e>
|
|
2646: e7c8 b.n 25da <lv_obj_refresh_style+0x4e>
|
|
2648: 4b09 ldr r3, [pc, #36] ; (2670 <lv_obj_refresh_style+0xe4>)
|
|
264a: 429c cmp r4, r3
|
|
264c: d1b5 bne.n 25ba <lv_obj_refresh_style+0x2e>
|
|
264e: e7c4 b.n 25da <lv_obj_refresh_style+0x4e>
|
|
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
|
|
2650: 0028 movs r0, r5
|
|
2652: 4b08 ldr r3, [pc, #32] ; (2674 <lv_obj_refresh_style+0xe8>)
|
|
2654: 4798 blx r3
|
|
2656: e7dd b.n 2614 <lv_obj_refresh_style+0x88>
|
|
2658: 0000147d .word 0x0000147d
|
|
265c: 00001fb1 .word 0x00001fb1
|
|
2660: 0001878c .word 0x0001878c
|
|
2664: 00001485 .word 0x00001485
|
|
2668: 00008081 .word 0x00008081
|
|
266c: 00008080 .word 0x00008080
|
|
2670: 0000808e .word 0x0000808e
|
|
2674: 0000254d .word 0x0000254d
|
|
|
|
00002678 <lv_obj_reset_style_list>:
|
|
{
|
|
2678: b510 push {r4, lr}
|
|
267a: 0004 movs r4, r0
|
|
lv_obj_clean_style_list(obj, part);
|
|
267c: 4b03 ldr r3, [pc, #12] ; (268c <lv_obj_reset_style_list+0x14>)
|
|
267e: 4798 blx r3
|
|
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
|
|
2680: 21ff movs r1, #255 ; 0xff
|
|
2682: 0020 movs r0, r4
|
|
2684: 4b02 ldr r3, [pc, #8] ; (2690 <lv_obj_reset_style_list+0x18>)
|
|
2686: 4798 blx r3
|
|
}
|
|
2688: bd10 pop {r4, pc}
|
|
268a: 46c0 nop ; (mov r8, r8)
|
|
268c: 00001dd5 .word 0x00001dd5
|
|
2690: 0000258d .word 0x0000258d
|
|
|
|
00002694 <report_style_mod_core>:
|
|
{
|
|
2694: b5f0 push {r4, r5, r6, r7, lr}
|
|
2696: 46c6 mov lr, r8
|
|
2698: b500 push {lr}
|
|
269a: b082 sub sp, #8
|
|
269c: 0007 movs r7, r0
|
|
269e: 9101 str r1, [sp, #4]
|
|
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
|
|
26a0: 2500 movs r5, #0
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
|
|
26a2: 4b21 ldr r3, [pc, #132] ; (2728 <report_style_mod_core+0x94>)
|
|
26a4: 4698 mov r8, r3
|
|
void _lv_style_list_reset(lv_style_list_t * style_list);
|
|
|
|
static inline lv_style_t * lv_style_list_get_style(lv_style_list_t * list, uint8_t id)
|
|
{
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
26a6: 2300 movs r3, #0
|
|
26a8: 9300 str r3, [sp, #0]
|
|
26aa: e01c b.n 26e6 <report_style_mod_core+0x52>
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
26ac: 1c5a adds r2, r3, #1
|
|
26ae: b2d2 uxtb r2, r2
|
|
26b0: e00a b.n 26c8 <report_style_mod_core+0x34>
|
|
if(class == style || style == NULL) {
|
|
26b2: 42a7 cmp r7, r4
|
|
26b4: d00f beq.n 26d6 <report_style_mod_core+0x42>
|
|
26b6: 2f00 cmp r7, #0
|
|
26b8: d00d beq.n 26d6 <report_style_mod_core+0x42>
|
|
for(ci = 0; ci < dsc->style_cnt; ci++) {
|
|
26ba: 3301 adds r3, #1
|
|
26bc: b2db uxtb r3, r3
|
|
26be: 428b cmp r3, r1
|
|
26c0: d00d beq.n 26de <report_style_mod_core+0x4a>
|
|
26c2: 001a movs r2, r3
|
|
26c4: 2806 cmp r0, #6
|
|
26c6: d0f1 beq.n 26ac <report_style_mod_core+0x18>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
26c8: 9c00 ldr r4, [sp, #0]
|
|
26ca: 428a cmp r2, r1
|
|
26cc: d2f1 bcs.n 26b2 <report_style_mod_core+0x1e>
|
|
return list->style_list[id];
|
|
26ce: 0092 lsls r2, r2, #2
|
|
26d0: 6834 ldr r4, [r6, #0]
|
|
26d2: 5914 ldr r4, [r2, r4]
|
|
26d4: e7ed b.n 26b2 <report_style_mod_core+0x1e>
|
|
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
|
|
26d6: 21ff movs r1, #255 ; 0xff
|
|
26d8: 9801 ldr r0, [sp, #4]
|
|
26da: 4b14 ldr r3, [pc, #80] ; (272c <report_style_mod_core+0x98>)
|
|
26dc: 4798 blx r3
|
|
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
|
|
26de: 3501 adds r5, #1
|
|
26e0: b2ed uxtb r5, r5
|
|
26e2: 2d40 cmp r5, #64 ; 0x40
|
|
26e4: d00c beq.n 2700 <report_style_mod_core+0x6c>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
|
|
26e6: 0029 movs r1, r5
|
|
26e8: 9801 ldr r0, [sp, #4]
|
|
26ea: 47c0 blx r8
|
|
26ec: 1e06 subs r6, r0, #0
|
|
if(dsc == NULL) break;
|
|
26ee: d007 beq.n 2700 <report_style_mod_core+0x6c>
|
|
for(ci = 0; ci < dsc->style_cnt; ci++) {
|
|
26f0: 7901 ldrb r1, [r0, #4]
|
|
26f2: 2900 cmp r1, #0
|
|
26f4: d0f3 beq.n 26de <report_style_mod_core+0x4a>
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
26f6: 7943 ldrb r3, [r0, #5]
|
|
26f8: 2006 movs r0, #6
|
|
26fa: 4018 ands r0, r3
|
|
26fc: 2300 movs r3, #0
|
|
26fe: e7e0 b.n 26c2 <report_style_mod_core+0x2e>
|
|
lv_obj_t * child = lv_obj_get_child(obj, NULL);
|
|
2700: 2100 movs r1, #0
|
|
2702: 9801 ldr r0, [sp, #4]
|
|
2704: 4b0a ldr r3, [pc, #40] ; (2730 <report_style_mod_core+0x9c>)
|
|
2706: 4798 blx r3
|
|
2708: 1e04 subs r4, r0, #0
|
|
while(child) {
|
|
270a: d009 beq.n 2720 <report_style_mod_core+0x8c>
|
|
child = lv_obj_get_child(obj, child);
|
|
270c: 4e08 ldr r6, [pc, #32] ; (2730 <report_style_mod_core+0x9c>)
|
|
report_style_mod_core(style, child);
|
|
270e: 0021 movs r1, r4
|
|
2710: 0038 movs r0, r7
|
|
2712: f7ff ffbf bl 2694 <report_style_mod_core>
|
|
child = lv_obj_get_child(obj, child);
|
|
2716: 0021 movs r1, r4
|
|
2718: 9801 ldr r0, [sp, #4]
|
|
271a: 47b0 blx r6
|
|
271c: 1e04 subs r4, r0, #0
|
|
while(child) {
|
|
271e: d1f6 bne.n 270e <report_style_mod_core+0x7a>
|
|
}
|
|
2720: b002 add sp, #8
|
|
2722: bc04 pop {r2}
|
|
2724: 4690 mov r8, r2
|
|
2726: bdf0 pop {r4, r5, r6, r7, pc}
|
|
2728: 00001cf9 .word 0x00001cf9
|
|
272c: 0000258d .word 0x0000258d
|
|
2730: 00001b91 .word 0x00001b91
|
|
|
|
00002734 <lv_obj_report_style_mod>:
|
|
{
|
|
2734: b5f0 push {r4, r5, r6, r7, lr}
|
|
2736: 46d6 mov lr, sl
|
|
2738: 464f mov r7, r9
|
|
273a: b580 push {r7, lr}
|
|
273c: b083 sub sp, #12
|
|
273e: 9001 str r0, [sp, #4]
|
|
lv_disp_t * d = lv_disp_get_next(NULL);
|
|
2740: 2000 movs r0, #0
|
|
2742: 4b11 ldr r3, [pc, #68] ; (2788 <lv_obj_report_style_mod+0x54>)
|
|
2744: 4798 blx r3
|
|
2746: 4681 mov r9, r0
|
|
while(d) {
|
|
2748: 2800 cmp r0, #0
|
|
274a: d017 beq.n 277c <lv_obj_report_style_mod+0x48>
|
|
_LV_LL_READ(d->scr_ll, i) {
|
|
274c: 4b0f ldr r3, [pc, #60] ; (278c <lv_obj_report_style_mod+0x58>)
|
|
274e: 469a mov sl, r3
|
|
report_style_mod_core(style, i);
|
|
2750: 4f0f ldr r7, [pc, #60] ; (2790 <lv_obj_report_style_mod+0x5c>)
|
|
_LV_LL_READ(d->scr_ll, i) {
|
|
2752: 4e10 ldr r6, [pc, #64] ; (2794 <lv_obj_report_style_mod+0x60>)
|
|
2754: 464d mov r5, r9
|
|
2756: 3530 adds r5, #48 ; 0x30
|
|
2758: 0028 movs r0, r5
|
|
275a: 47d0 blx sl
|
|
275c: 1e04 subs r4, r0, #0
|
|
275e: d007 beq.n 2770 <lv_obj_report_style_mod+0x3c>
|
|
report_style_mod_core(style, i);
|
|
2760: 0021 movs r1, r4
|
|
2762: 9801 ldr r0, [sp, #4]
|
|
2764: 47b8 blx r7
|
|
_LV_LL_READ(d->scr_ll, i) {
|
|
2766: 0021 movs r1, r4
|
|
2768: 0028 movs r0, r5
|
|
276a: 47b0 blx r6
|
|
276c: 1e04 subs r4, r0, #0
|
|
276e: d1f7 bne.n 2760 <lv_obj_report_style_mod+0x2c>
|
|
d = lv_disp_get_next(d);
|
|
2770: 4648 mov r0, r9
|
|
2772: 4b05 ldr r3, [pc, #20] ; (2788 <lv_obj_report_style_mod+0x54>)
|
|
2774: 4798 blx r3
|
|
2776: 4681 mov r9, r0
|
|
while(d) {
|
|
2778: 2800 cmp r0, #0
|
|
277a: d1eb bne.n 2754 <lv_obj_report_style_mod+0x20>
|
|
}
|
|
277c: b003 add sp, #12
|
|
277e: bc0c pop {r2, r3}
|
|
2780: 4691 mov r9, r2
|
|
2782: 469a mov sl, r3
|
|
2784: bdf0 pop {r4, r5, r6, r7, pc}
|
|
2786: 46c0 nop ; (mov r8, r8)
|
|
2788: 0000f6e5 .word 0x0000f6e5
|
|
278c: 0001066d .word 0x0001066d
|
|
2790: 00002695 .word 0x00002695
|
|
2794: 00010685 .word 0x00010685
|
|
|
|
00002798 <trans_anim_cb>:
|
|
{
|
|
2798: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
279a: 0004 movs r4, r0
|
|
279c: 000d movs r5, r1
|
|
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
|
|
279e: 7981 ldrb r1, [r0, #6]
|
|
27a0: 6800 ldr r0, [r0, #0]
|
|
27a2: 4b3f ldr r3, [pc, #252] ; (28a0 <trans_anim_cb+0x108>)
|
|
27a4: 4798 blx r3
|
|
lv_style_t * style = _lv_style_list_get_transition_style(list);
|
|
27a6: 4b3f ldr r3, [pc, #252] ; (28a4 <trans_anim_cb+0x10c>)
|
|
27a8: 4798 blx r3
|
|
if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/
|
|
27aa: 88a1 ldrh r1, [r4, #4]
|
|
27ac: 230f movs r3, #15
|
|
27ae: 400b ands r3, r1
|
|
27b0: 2b08 cmp r3, #8
|
|
27b2: dc19 bgt.n 27e8 <trans_anim_cb+0x50>
|
|
if(v == 0) x = tr->start_value._int;
|
|
27b4: 2d00 cmp r5, #0
|
|
27b6: d108 bne.n 27ca <trans_anim_cb+0x32>
|
|
27b8: 2308 movs r3, #8
|
|
27ba: 5ee2 ldrsh r2, [r4, r3]
|
|
_lv_style_set_int(style, tr->prop, x);
|
|
27bc: 4b3a ldr r3, [pc, #232] ; (28a8 <trans_anim_cb+0x110>)
|
|
27be: 4798 blx r3
|
|
lv_obj_refresh_style(tr->obj, tr->prop);
|
|
27c0: 88a1 ldrh r1, [r4, #4]
|
|
27c2: 6820 ldr r0, [r4, #0]
|
|
27c4: 4b39 ldr r3, [pc, #228] ; (28ac <trans_anim_cb+0x114>)
|
|
27c6: 4798 blx r3
|
|
}
|
|
27c8: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
else if(v == 255) x = tr->end_value._int;
|
|
27ca: 2dff cmp r5, #255 ; 0xff
|
|
27cc: d009 beq.n 27e2 <trans_anim_cb+0x4a>
|
|
else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8);
|
|
27ce: 2308 movs r3, #8
|
|
27d0: 5ee6 ldrsh r6, [r4, r3]
|
|
27d2: 230c movs r3, #12
|
|
27d4: 5ee2 ldrsh r2, [r4, r3]
|
|
27d6: 1b92 subs r2, r2, r6
|
|
27d8: 436a muls r2, r5
|
|
27da: 1212 asrs r2, r2, #8
|
|
27dc: 1992 adds r2, r2, r6
|
|
27de: b212 sxth r2, r2
|
|
27e0: e7ec b.n 27bc <trans_anim_cb+0x24>
|
|
else if(v == 255) x = tr->end_value._int;
|
|
27e2: 230c movs r3, #12
|
|
27e4: 5ee2 ldrsh r2, [r4, r3]
|
|
27e6: e7e9 b.n 27bc <trans_anim_cb+0x24>
|
|
else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
|
|
27e8: 2b0b cmp r3, #11
|
|
27ea: dc3c bgt.n 2866 <trans_anim_cb+0xce>
|
|
if(v <= 0) x = tr->start_value._color;
|
|
27ec: 2d00 cmp r5, #0
|
|
27ee: dd05 ble.n 27fc <trans_anim_cb+0x64>
|
|
else if(v >= 255) x = tr->end_value._color;
|
|
27f0: 2dfe cmp r5, #254 ; 0xfe
|
|
27f2: dd05 ble.n 2800 <trans_anim_cb+0x68>
|
|
27f4: 89a2 ldrh r2, [r4, #12]
|
|
_lv_style_set_color(style, tr->prop, x);
|
|
27f6: 4b2e ldr r3, [pc, #184] ; (28b0 <trans_anim_cb+0x118>)
|
|
27f8: 4798 blx r3
|
|
27fa: e7e1 b.n 27c0 <trans_anim_cb+0x28>
|
|
if(v <= 0) x = tr->start_value._color;
|
|
27fc: 8922 ldrh r2, [r4, #8]
|
|
27fe: e7fa b.n 27f6 <trans_anim_cb+0x5e>
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
|
|
{
|
|
lv_color_t ret;
|
|
#if LV_COLOR_DEPTH != 1
|
|
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
2800: b2ed uxtb r5, r5
|
|
2802: 22ff movs r2, #255 ; 0xff
|
|
2804: 1b52 subs r2, r2, r5
|
|
2806: 7b63 ldrb r3, [r4, #13]
|
|
2808: 08db lsrs r3, r3, #3
|
|
280a: 436b muls r3, r5
|
|
280c: 7a66 ldrb r6, [r4, #9]
|
|
280e: 08f6 lsrs r6, r6, #3
|
|
2810: 4356 muls r6, r2
|
|
2812: 199e adds r6, r3, r6
|
|
2814: 0233 lsls r3, r6, #8
|
|
2816: 199b adds r3, r3, r6
|
|
2818: 01db lsls r3, r3, #7
|
|
281a: 199b adds r3, r3, r6
|
|
281c: 011b lsls r3, r3, #4
|
|
281e: 0edb lsrs r3, r3, #27
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
2820: 89a7 ldrh r7, [r4, #12]
|
|
2822: 057f lsls r7, r7, #21
|
|
2824: 0ebf lsrs r7, r7, #26
|
|
2826: 436f muls r7, r5
|
|
2828: 8926 ldrh r6, [r4, #8]
|
|
282a: 0576 lsls r6, r6, #21
|
|
282c: 0eb6 lsrs r6, r6, #26
|
|
282e: 4356 muls r6, r2
|
|
2830: 19bf adds r7, r7, r6
|
|
2832: 023e lsls r6, r7, #8
|
|
2834: 19f6 adds r6, r6, r7
|
|
2836: 01f6 lsls r6, r6, #7
|
|
2838: 19f6 adds r6, r6, r7
|
|
283a: 00f6 lsls r6, r6, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
283c: 7b27 ldrb r7, [r4, #12]
|
|
283e: 06ff lsls r7, r7, #27
|
|
2840: 0eff lsrs r7, r7, #27
|
|
2842: 437d muls r5, r7
|
|
2844: 7a27 ldrb r7, [r4, #8]
|
|
2846: 06ff lsls r7, r7, #27
|
|
2848: 0eff lsrs r7, r7, #27
|
|
284a: 437a muls r2, r7
|
|
284c: 18ad adds r5, r5, r2
|
|
284e: 022a lsls r2, r5, #8
|
|
2850: 1952 adds r2, r2, r5
|
|
2852: 01d2 lsls r2, r2, #7
|
|
2854: 1952 adds r2, r2, r5
|
|
2856: 0112 lsls r2, r2, #4
|
|
2858: 0eb6 lsrs r6, r6, #26
|
|
285a: 0176 lsls r6, r6, #5
|
|
285c: 0ed2 lsrs r2, r2, #27
|
|
285e: 02db lsls r3, r3, #11
|
|
2860: 4332 orrs r2, r6
|
|
2862: 431a orrs r2, r3
|
|
2864: e7c7 b.n 27f6 <trans_anim_cb+0x5e>
|
|
else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
|
|
2866: 2b0d cmp r3, #13
|
|
2868: dc11 bgt.n 288e <trans_anim_cb+0xf6>
|
|
if(v <= 0) x = tr->start_value._opa;
|
|
286a: 2d00 cmp r5, #0
|
|
286c: dd05 ble.n 287a <trans_anim_cb+0xe2>
|
|
else if(v >= 255) x = tr->end_value._opa;
|
|
286e: 2dfe cmp r5, #254 ; 0xfe
|
|
2870: dd05 ble.n 287e <trans_anim_cb+0xe6>
|
|
2872: 7b22 ldrb r2, [r4, #12]
|
|
_lv_style_set_opa(style, tr->prop, x);
|
|
2874: 4b0f ldr r3, [pc, #60] ; (28b4 <trans_anim_cb+0x11c>)
|
|
2876: 4798 blx r3
|
|
2878: e7a2 b.n 27c0 <trans_anim_cb+0x28>
|
|
if(v <= 0) x = tr->start_value._opa;
|
|
287a: 7a22 ldrb r2, [r4, #8]
|
|
287c: e7fa b.n 2874 <trans_anim_cb+0xdc>
|
|
else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8);
|
|
287e: 7a22 ldrb r2, [r4, #8]
|
|
2880: 7b23 ldrb r3, [r4, #12]
|
|
2882: 1a9b subs r3, r3, r2
|
|
2884: 435d muls r5, r3
|
|
2886: 122d asrs r5, r5, #8
|
|
2888: 1952 adds r2, r2, r5
|
|
288a: b2d2 uxtb r2, r2
|
|
288c: e7f2 b.n 2874 <trans_anim_cb+0xdc>
|
|
if(v < 128) x = tr->start_value._ptr;
|
|
288e: 2d7f cmp r5, #127 ; 0x7f
|
|
2890: dc03 bgt.n 289a <trans_anim_cb+0x102>
|
|
2892: 68a2 ldr r2, [r4, #8]
|
|
_lv_style_set_ptr(style, tr->prop, x);
|
|
2894: 4b08 ldr r3, [pc, #32] ; (28b8 <trans_anim_cb+0x120>)
|
|
2896: 4798 blx r3
|
|
2898: e792 b.n 27c0 <trans_anim_cb+0x28>
|
|
else x = tr->end_value._ptr;
|
|
289a: 68e2 ldr r2, [r4, #12]
|
|
289c: e7fa b.n 2894 <trans_anim_cb+0xfc>
|
|
289e: 46c0 nop ; (mov r8, r8)
|
|
28a0: 00001cf9 .word 0x00001cf9
|
|
28a4: 00005621 .word 0x00005621
|
|
28a8: 00004cf5 .word 0x00004cf5
|
|
28ac: 0000258d .word 0x0000258d
|
|
28b0: 00004e55 .word 0x00004e55
|
|
28b4: 00004fb5 .word 0x00004fb5
|
|
28b8: 00005109 .word 0x00005109
|
|
|
|
000028bc <lv_obj_get_base_dir>:
|
|
{
|
|
28bc: b510 push {r4, lr}
|
|
28be: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
28c0: 4b05 ldr r3, [pc, #20] ; (28d8 <lv_obj_get_base_dir+0x1c>)
|
|
28c2: 4798 blx r3
|
|
28c4: 2800 cmp r0, #0
|
|
28c6: d001 beq.n 28cc <lv_obj_get_base_dir+0x10>
|
|
}
|
|
28c8: 2000 movs r0, #0
|
|
28ca: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
28cc: 0022 movs r2, r4
|
|
28ce: 2300 movs r3, #0
|
|
28d0: 4802 ldr r0, [pc, #8] ; (28dc <lv_obj_get_base_dir+0x20>)
|
|
28d2: 4903 ldr r1, [pc, #12] ; (28e0 <lv_obj_get_base_dir+0x24>)
|
|
28d4: 4788 blx r1
|
|
28d6: e7fe b.n 28d6 <lv_obj_get_base_dir+0x1a>
|
|
28d8: 0000147d .word 0x0000147d
|
|
28dc: 0001878c .word 0x0001878c
|
|
28e0: 00001485 .word 0x00001485
|
|
|
|
000028e4 <lv_obj_create>:
|
|
{
|
|
28e4: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
28e6: 46de mov lr, fp
|
|
28e8: 4657 mov r7, sl
|
|
28ea: 464e mov r6, r9
|
|
28ec: 4645 mov r5, r8
|
|
28ee: b5e0 push {r5, r6, r7, lr}
|
|
28f0: 4682 mov sl, r0
|
|
28f2: 000d movs r5, r1
|
|
if(parent == NULL) {
|
|
28f4: 2800 cmp r0, #0
|
|
28f6: d00a beq.n 290e <lv_obj_create+0x2a>
|
|
LV_ASSERT_OBJ(parent, LV_OBJX_NAME);
|
|
28f8: 4be9 ldr r3, [pc, #932] ; (2ca0 <lv_obj_create+0x3bc>)
|
|
28fa: 4798 blx r3
|
|
28fc: 2800 cmp r0, #0
|
|
28fe: d000 beq.n 2902 <lv_obj_create+0x1e>
|
|
2900: e13a b.n 2b78 <lv_obj_create+0x294>
|
|
2902: 4652 mov r2, sl
|
|
2904: 2300 movs r3, #0
|
|
2906: 48e7 ldr r0, [pc, #924] ; (2ca4 <lv_obj_create+0x3c0>)
|
|
2908: 49e7 ldr r1, [pc, #924] ; (2ca8 <lv_obj_create+0x3c4>)
|
|
290a: 4788 blx r1
|
|
290c: e7fe b.n 290c <lv_obj_create+0x28>
|
|
lv_disp_t * disp = lv_disp_get_default();
|
|
290e: 4be7 ldr r3, [pc, #924] ; (2cac <lv_obj_create+0x3c8>)
|
|
2910: 4798 blx r3
|
|
if(!disp) {
|
|
2912: 2800 cmp r0, #0
|
|
2914: d100 bne.n 2918 <lv_obj_create+0x34>
|
|
2916: e204 b.n 2d22 <lv_obj_create+0x43e>
|
|
new_obj = _lv_ll_ins_head(&disp->scr_ll);
|
|
2918: 3030 adds r0, #48 ; 0x30
|
|
291a: 4be5 ldr r3, [pc, #916] ; (2cb0 <lv_obj_create+0x3cc>)
|
|
291c: 4798 blx r3
|
|
291e: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(new_obj);
|
|
2920: 4bdf ldr r3, [pc, #892] ; (2ca0 <lv_obj_create+0x3bc>)
|
|
2922: 4798 blx r3
|
|
2924: 2800 cmp r0, #0
|
|
2926: d105 bne.n 2934 <lv_obj_create+0x50>
|
|
2928: 0022 movs r2, r4
|
|
292a: 2300 movs r3, #0
|
|
292c: 48e1 ldr r0, [pc, #900] ; (2cb4 <lv_obj_create+0x3d0>)
|
|
292e: 49de ldr r1, [pc, #888] ; (2ca8 <lv_obj_create+0x3c4>)
|
|
2930: 4788 blx r1
|
|
2932: e7fe b.n 2932 <lv_obj_create+0x4e>
|
|
if(new_obj == NULL) return NULL;
|
|
2934: 2c00 cmp r4, #0
|
|
2936: d100 bne.n 293a <lv_obj_create+0x56>
|
|
2938: e1ec b.n 2d14 <lv_obj_create+0x430>
|
|
_lv_memset_00(new_obj, sizeof(lv_obj_t));
|
|
293a: 214c movs r1, #76 ; 0x4c
|
|
293c: 0020 movs r0, r4
|
|
293e: 4bde ldr r3, [pc, #888] ; (2cb8 <lv_obj_create+0x3d4>)
|
|
2940: 4798 blx r3
|
|
new_obj->base_dir = LV_BIDI_DIR_LTR;
|
|
2942: 0022 movs r2, r4
|
|
2944: 3234 adds r2, #52 ; 0x34
|
|
2946: 7853 ldrb r3, [r2, #1]
|
|
2948: 2130 movs r1, #48 ; 0x30
|
|
294a: 438b bics r3, r1
|
|
294c: 7053 strb r3, [r2, #1]
|
|
new_obj->signal_cb = lv_obj_signal;
|
|
294e: 4bdb ldr r3, [pc, #876] ; (2cbc <lv_obj_create+0x3d8>)
|
|
2950: 61e3 str r3, [r4, #28]
|
|
new_obj->design_cb = lv_obj_design;
|
|
2952: 4bdb ldr r3, [pc, #876] ; (2cc0 <lv_obj_create+0x3dc>)
|
|
2954: 6223 str r3, [r4, #32]
|
|
new_obj->event_cb = NULL;
|
|
2956: 2300 movs r3, #0
|
|
2958: 61a3 str r3, [r4, #24]
|
|
new_obj->coords.x1 = 0;
|
|
295a: 8223 strh r3, [r4, #16]
|
|
new_obj->coords.y1 = 0;
|
|
295c: 8263 strh r3, [r4, #18]
|
|
new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1;
|
|
295e: 2000 movs r0, #0
|
|
2960: 4bd8 ldr r3, [pc, #864] ; (2cc4 <lv_obj_create+0x3e0>)
|
|
2962: 4798 blx r3
|
|
2964: 3801 subs r0, #1
|
|
2966: 82a0 strh r0, [r4, #20]
|
|
new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1;
|
|
2968: 2000 movs r0, #0
|
|
296a: 4bd7 ldr r3, [pc, #860] ; (2cc8 <lv_obj_create+0x3e4>)
|
|
296c: 4798 blx r3
|
|
296e: 3801 subs r0, #1
|
|
2970: 82e0 strh r0, [r4, #22]
|
|
_lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));
|
|
2972: 1d20 adds r0, r4, #4
|
|
2974: 214c movs r1, #76 ; 0x4c
|
|
2976: 4bd5 ldr r3, [pc, #852] ; (2ccc <lv_obj_create+0x3e8>)
|
|
2978: 4798 blx r3
|
|
new_obj->ext_draw_pad = 0;
|
|
297a: 2100 movs r1, #0
|
|
297c: 2000 movs r0, #0
|
|
297e: 8661 strh r1, [r4, #50] ; 0x32
|
|
new_obj->ext_click_pad_hor = 0;
|
|
2980: 2300 movs r3, #0
|
|
2982: 2230 movs r2, #48 ; 0x30
|
|
2984: 54a0 strb r0, [r4, r2]
|
|
new_obj->ext_click_pad_ver = 0;
|
|
2986: 3201 adds r2, #1
|
|
2988: 54a3 strb r3, [r4, r2]
|
|
new_obj->realign.align = LV_ALIGN_CENTER;
|
|
298a: 3217 adds r2, #23
|
|
298c: 54a3 strb r3, [r4, r2]
|
|
new_obj->realign.xofs = 0;
|
|
298e: 2344 movs r3, #68 ; 0x44
|
|
2990: 52e1 strh r1, [r4, r3]
|
|
new_obj->realign.yofs = 0;
|
|
2992: 3302 adds r3, #2
|
|
2994: 52e1 strh r1, [r4, r3]
|
|
new_obj->realign.base = NULL;
|
|
2996: 6421 str r1, [r4, #64] ; 0x40
|
|
new_obj->realign.auto_realign = 0;
|
|
2998: 3201 adds r2, #1
|
|
299a: 5ca3 ldrb r3, [r4, r2]
|
|
299c: 2701 movs r7, #1
|
|
299e: 43bb bics r3, r7
|
|
29a0: 54a3 strb r3, [r4, r2]
|
|
new_obj->group_p = NULL;
|
|
29a2: 63a1 str r1, [r4, #56] ; 0x38
|
|
new_obj->adv_hittest = 0;
|
|
29a4: 2334 movs r3, #52 ; 0x34
|
|
29a6: 4698 mov r8, r3
|
|
29a8: 5ce2 ldrb r2, [r4, r3]
|
|
new_obj->click = 1;
|
|
29aa: 334b adds r3, #75 ; 0x4b
|
|
29ac: 4013 ands r3, r2
|
|
29ae: 2201 movs r2, #1
|
|
29b0: 4694 mov ip, r2
|
|
29b2: 4662 mov r2, ip
|
|
29b4: 4313 orrs r3, r2
|
|
new_obj->drag_throw = 0;
|
|
29b6: 227d movs r2, #125 ; 0x7d
|
|
29b8: 4013 ands r3, r2
|
|
new_obj->drag_parent = 0;
|
|
29ba: 3a79 subs r2, #121 ; 0x79
|
|
29bc: 4393 bics r3, r2
|
|
new_obj->drag_dir = LV_DRAG_DIR_BOTH;
|
|
29be: 0027 movs r7, r4
|
|
29c0: 3734 adds r7, #52 ; 0x34
|
|
29c2: 787a ldrb r2, [r7, #1]
|
|
29c4: 260e movs r6, #14
|
|
29c6: 43b2 bics r2, r6
|
|
29c8: 2606 movs r6, #6
|
|
29ca: 46b1 mov r9, r6
|
|
29cc: 464e mov r6, r9
|
|
29ce: 4332 orrs r2, r6
|
|
new_obj->hidden = 0;
|
|
29d0: 2608 movs r6, #8
|
|
29d2: 43b3 bics r3, r6
|
|
new_obj->top = 0;
|
|
29d4: 3608 adds r6, #8
|
|
29d6: 43b3 bics r3, r6
|
|
new_obj->protect = LV_PROTECT_NONE;
|
|
29d8: 362c adds r6, #44 ; 0x2c
|
|
29da: 55a0 strb r0, [r4, r6]
|
|
new_obj->parent_event = 0;
|
|
29dc: 3e1c subs r6, #28
|
|
29de: 43b3 bics r3, r6
|
|
29e0: 3620 adds r6, #32
|
|
29e2: 43b3 bics r3, r6
|
|
29e4: 4646 mov r6, r8
|
|
29e6: 55a3 strb r3, [r4, r6]
|
|
new_obj->gesture_parent = 1;
|
|
29e8: 4663 mov r3, ip
|
|
29ea: 431a orrs r2, r3
|
|
29ec: 707a strb r2, [r7, #1]
|
|
new_obj->state = LV_STATE_DEFAULT;
|
|
29ee: 233d movs r3, #61 ; 0x3d
|
|
29f0: 54e0 strb r0, [r4, r3]
|
|
new_obj->ext_attr = NULL;
|
|
29f2: 6261 str r1, [r4, #36] ; 0x24
|
|
lv_style_list_init(&new_obj->style_list);
|
|
29f4: 3f0c subs r7, #12
|
|
29f6: 0038 movs r0, r7
|
|
29f8: 4bb5 ldr r3, [pc, #724] ; (2cd0 <lv_obj_create+0x3ec>)
|
|
29fa: 4798 blx r3
|
|
if(copy == NULL) {
|
|
29fc: 2d00 cmp r5, #0
|
|
29fe: d100 bne.n 2a02 <lv_obj_create+0x11e>
|
|
2a00: e140 b.n 2c84 <lv_obj_create+0x3a0>
|
|
lv_style_list_copy(&new_obj->style_list, ©->style_list);
|
|
2a02: 0029 movs r1, r5
|
|
2a04: 3128 adds r1, #40 ; 0x28
|
|
2a06: 0038 movs r0, r7
|
|
2a08: 4bb2 ldr r3, [pc, #712] ; (2cd4 <lv_obj_create+0x3f0>)
|
|
2a0a: 4798 blx r3
|
|
2a0c: 0029 movs r1, r5
|
|
2a0e: 3118 adds r1, #24
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
2a10: 0022 movs r2, r4
|
|
2a12: 3210 adds r2, #16
|
|
const uint8_t * s8 = (const uint8_t *)src;
|
|
2a14: 002b movs r3, r5
|
|
2a16: 3310 adds r3, #16
|
|
*d8 = *s8;
|
|
2a18: 7818 ldrb r0, [r3, #0]
|
|
2a1a: 7010 strb r0, [r2, #0]
|
|
d8++;
|
|
2a1c: 3201 adds r2, #1
|
|
s8++;
|
|
2a1e: 3301 adds r3, #1
|
|
while(len) {
|
|
2a20: 428b cmp r3, r1
|
|
2a22: d1f9 bne.n 2a18 <lv_obj_create+0x134>
|
|
new_obj->ext_draw_pad = copy->ext_draw_pad;
|
|
2a24: 2232 movs r2, #50 ; 0x32
|
|
2a26: 5eab ldrsh r3, [r5, r2]
|
|
2a28: 8663 strh r3, [r4, #50] ; 0x32
|
|
new_obj->ext_click_pad_hor = copy->ext_click_pad_hor;
|
|
2a2a: 2330 movs r3, #48 ; 0x30
|
|
2a2c: 5cea ldrb r2, [r5, r3]
|
|
2a2e: 54e2 strb r2, [r4, r3]
|
|
new_obj->ext_click_pad_ver = copy->ext_click_pad_ver;
|
|
2a30: 3301 adds r3, #1
|
|
2a32: 5cea ldrb r2, [r5, r3]
|
|
2a34: 54e2 strb r2, [r4, r3]
|
|
new_obj->realign.align = copy->realign.align;
|
|
2a36: 3317 adds r3, #23
|
|
2a38: 5cea ldrb r2, [r5, r3]
|
|
2a3a: 54e2 strb r2, [r4, r3]
|
|
new_obj->realign.xofs = copy->realign.xofs;
|
|
2a3c: 3b04 subs r3, #4
|
|
2a3e: 5eea ldrsh r2, [r5, r3]
|
|
2a40: 52e2 strh r2, [r4, r3]
|
|
new_obj->realign.yofs = copy->realign.yofs;
|
|
2a42: 3302 adds r3, #2
|
|
2a44: 5eea ldrsh r2, [r5, r3]
|
|
2a46: 52e2 strh r2, [r4, r3]
|
|
new_obj->realign.base = copy->realign.base;
|
|
2a48: 6c2b ldr r3, [r5, #64] ; 0x40
|
|
2a4a: 6423 str r3, [r4, #64] ; 0x40
|
|
new_obj->realign.auto_realign = copy->realign.auto_realign;
|
|
2a4c: 2249 movs r2, #73 ; 0x49
|
|
2a4e: 5ca9 ldrb r1, [r5, r2]
|
|
2a50: 2301 movs r3, #1
|
|
2a52: 469b mov fp, r3
|
|
2a54: 2701 movs r7, #1
|
|
2a56: 4039 ands r1, r7
|
|
2a58: 5ca3 ldrb r3, [r4, r2]
|
|
2a5a: 4658 mov r0, fp
|
|
2a5c: 4383 bics r3, r0
|
|
2a5e: 430b orrs r3, r1
|
|
2a60: 54a3 strb r3, [r4, r2]
|
|
new_obj->event_cb = copy->event_cb;
|
|
2a62: 69ab ldr r3, [r5, #24]
|
|
2a64: 61a3 str r3, [r4, #24]
|
|
new_obj->adv_hittest = copy->adv_hittest;
|
|
2a66: 2334 movs r3, #52 ; 0x34
|
|
2a68: 5cea ldrb r2, [r5, r3]
|
|
2a6a: 09d2 lsrs r2, r2, #7
|
|
2a6c: 01d1 lsls r1, r2, #7
|
|
2a6e: 5ce2 ldrb r2, [r4, r3]
|
|
2a70: 4694 mov ip, r2
|
|
2a72: 227f movs r2, #127 ; 0x7f
|
|
2a74: 4666 mov r6, ip
|
|
2a76: 4032 ands r2, r6
|
|
2a78: 430a orrs r2, r1
|
|
2a7a: 54e2 strb r2, [r4, r3]
|
|
new_obj->click = copy->click;
|
|
2a7c: 5cea ldrb r2, [r5, r3]
|
|
2a7e: 07d2 lsls r2, r2, #31
|
|
2a80: 0fd2 lsrs r2, r2, #31
|
|
2a82: 5ce1 ldrb r1, [r4, r3]
|
|
2a84: 4381 bics r1, r0
|
|
2a86: 430a orrs r2, r1
|
|
2a88: 54e2 strb r2, [r4, r3]
|
|
new_obj->drag = copy->drag;
|
|
2a8a: 5cea ldrb r2, [r5, r3]
|
|
2a8c: 0852 lsrs r2, r2, #1
|
|
2a8e: 403a ands r2, r7
|
|
2a90: 0052 lsls r2, r2, #1
|
|
2a92: 5ce1 ldrb r1, [r4, r3]
|
|
2a94: 2602 movs r6, #2
|
|
2a96: 43b1 bics r1, r6
|
|
2a98: 430a orrs r2, r1
|
|
2a9a: 54e2 strb r2, [r4, r3]
|
|
new_obj->drag_dir = copy->drag_dir;
|
|
2a9c: 2235 movs r2, #53 ; 0x35
|
|
2a9e: 4694 mov ip, r2
|
|
2aa0: 5caa ldrb r2, [r5, r2]
|
|
2aa2: 0021 movs r1, r4
|
|
2aa4: 3134 adds r1, #52 ; 0x34
|
|
2aa6: 360c adds r6, #12
|
|
2aa8: 4016 ands r6, r2
|
|
2aaa: 46b0 mov r8, r6
|
|
2aac: 784a ldrb r2, [r1, #1]
|
|
2aae: 260e movs r6, #14
|
|
2ab0: 43b2 bics r2, r6
|
|
2ab2: 4646 mov r6, r8
|
|
2ab4: 4332 orrs r2, r6
|
|
2ab6: 704a strb r2, [r1, #1]
|
|
new_obj->drag_throw = copy->drag_throw;
|
|
2ab8: 5cea ldrb r2, [r5, r3]
|
|
2aba: 0892 lsrs r2, r2, #2
|
|
2abc: 403a ands r2, r7
|
|
2abe: 0092 lsls r2, r2, #2
|
|
2ac0: 5ce6 ldrb r6, [r4, r3]
|
|
2ac2: 46b0 mov r8, r6
|
|
2ac4: 2604 movs r6, #4
|
|
2ac6: 46b1 mov r9, r6
|
|
2ac8: 4646 mov r6, r8
|
|
2aca: 4648 mov r0, r9
|
|
2acc: 4386 bics r6, r0
|
|
2ace: 4332 orrs r2, r6
|
|
2ad0: 54e2 strb r2, [r4, r3]
|
|
new_obj->drag_parent = copy->drag_parent;
|
|
2ad2: 5cea ldrb r2, [r5, r3]
|
|
2ad4: 08d2 lsrs r2, r2, #3
|
|
2ad6: 403a ands r2, r7
|
|
2ad8: 00d2 lsls r2, r2, #3
|
|
2ada: 5ce0 ldrb r0, [r4, r3]
|
|
2adc: 4680 mov r8, r0
|
|
2ade: 2008 movs r0, #8
|
|
2ae0: 4646 mov r6, r8
|
|
2ae2: 4386 bics r6, r0
|
|
2ae4: 4332 orrs r2, r6
|
|
2ae6: 54e2 strb r2, [r4, r3]
|
|
new_obj->hidden = copy->hidden;
|
|
2ae8: 5cea ldrb r2, [r5, r3]
|
|
2aea: 0912 lsrs r2, r2, #4
|
|
2aec: 403a ands r2, r7
|
|
2aee: 0112 lsls r2, r2, #4
|
|
2af0: 5ce0 ldrb r0, [r4, r3]
|
|
2af2: 4680 mov r8, r0
|
|
2af4: 2010 movs r0, #16
|
|
2af6: 4646 mov r6, r8
|
|
2af8: 4386 bics r6, r0
|
|
2afa: 4332 orrs r2, r6
|
|
2afc: 54e2 strb r2, [r4, r3]
|
|
new_obj->top = copy->top;
|
|
2afe: 5cea ldrb r2, [r5, r3]
|
|
2b00: 0952 lsrs r2, r2, #5
|
|
2b02: 403a ands r2, r7
|
|
2b04: 0152 lsls r2, r2, #5
|
|
2b06: 5ce0 ldrb r0, [r4, r3]
|
|
2b08: 4680 mov r8, r0
|
|
2b0a: 2020 movs r0, #32
|
|
2b0c: 4646 mov r6, r8
|
|
2b0e: 4386 bics r6, r0
|
|
2b10: 4332 orrs r2, r6
|
|
2b12: 54e2 strb r2, [r4, r3]
|
|
new_obj->parent_event = copy->parent_event;
|
|
2b14: 5cea ldrb r2, [r5, r3]
|
|
2b16: 0992 lsrs r2, r2, #6
|
|
2b18: 403a ands r2, r7
|
|
2b1a: 0192 lsls r2, r2, #6
|
|
2b1c: 5ce7 ldrb r7, [r4, r3]
|
|
2b1e: 2040 movs r0, #64 ; 0x40
|
|
2b20: 4387 bics r7, r0
|
|
2b22: 433a orrs r2, r7
|
|
2b24: 54e2 strb r2, [r4, r3]
|
|
new_obj->protect = copy->protect;
|
|
2b26: 3308 adds r3, #8
|
|
2b28: 5cea ldrb r2, [r5, r3]
|
|
2b2a: 54e2 strb r2, [r4, r3]
|
|
new_obj->gesture_parent = copy->gesture_parent;
|
|
2b2c: 4663 mov r3, ip
|
|
2b2e: 5ceb ldrb r3, [r5, r3]
|
|
2b30: 07db lsls r3, r3, #31
|
|
2b32: 0fdb lsrs r3, r3, #31
|
|
2b34: 784a ldrb r2, [r1, #1]
|
|
2b36: 4658 mov r0, fp
|
|
2b38: 4382 bics r2, r0
|
|
2b3a: 4313 orrs r3, r2
|
|
2b3c: 704b strb r3, [r1, #1]
|
|
if(copy->group_p != NULL) {
|
|
2b3e: 6ba8 ldr r0, [r5, #56] ; 0x38
|
|
2b40: 2800 cmp r0, #0
|
|
2b42: d002 beq.n 2b4a <lv_obj_create+0x266>
|
|
lv_group_add_obj(copy->group_p, new_obj);
|
|
2b44: 0021 movs r1, r4
|
|
2b46: 4b64 ldr r3, [pc, #400] ; (2cd8 <lv_obj_create+0x3f4>)
|
|
2b48: 4798 blx r3
|
|
if(lv_obj_get_parent(copy) != NULL && parent != NULL) {
|
|
2b4a: 0028 movs r0, r5
|
|
2b4c: 4b63 ldr r3, [pc, #396] ; (2cdc <lv_obj_create+0x3f8>)
|
|
2b4e: 4798 blx r3
|
|
2b50: 2800 cmp r0, #0
|
|
2b52: d100 bne.n 2b56 <lv_obj_create+0x272>
|
|
2b54: e0d2 b.n 2cfc <lv_obj_create+0x418>
|
|
2b56: 4653 mov r3, sl
|
|
2b58: 2b00 cmp r3, #0
|
|
2b5a: d100 bne.n 2b5e <lv_obj_create+0x27a>
|
|
2b5c: e0da b.n 2d14 <lv_obj_create+0x430>
|
|
lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy));
|
|
2b5e: 0028 movs r0, r5
|
|
2b60: 4b5f ldr r3, [pc, #380] ; (2ce0 <lv_obj_create+0x3fc>)
|
|
2b62: 4798 blx r3
|
|
2b64: 0007 movs r7, r0
|
|
2b66: 0028 movs r0, r5
|
|
2b68: 4b5e ldr r3, [pc, #376] ; (2ce4 <lv_obj_create+0x400>)
|
|
2b6a: 4798 blx r3
|
|
2b6c: 0002 movs r2, r0
|
|
2b6e: 0039 movs r1, r7
|
|
2b70: 0020 movs r0, r4
|
|
2b72: 4b5d ldr r3, [pc, #372] ; (2ce8 <lv_obj_create+0x404>)
|
|
2b74: 4798 blx r3
|
|
2b76: e0c4 b.n 2d02 <lv_obj_create+0x41e>
|
|
new_obj = _lv_ll_ins_head(&parent->child_ll);
|
|
2b78: 4653 mov r3, sl
|
|
2b7a: 1d18 adds r0, r3, #4
|
|
2b7c: 4b4c ldr r3, [pc, #304] ; (2cb0 <lv_obj_create+0x3cc>)
|
|
2b7e: 4798 blx r3
|
|
2b80: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(new_obj);
|
|
2b82: 4b47 ldr r3, [pc, #284] ; (2ca0 <lv_obj_create+0x3bc>)
|
|
2b84: 4798 blx r3
|
|
2b86: 2800 cmp r0, #0
|
|
2b88: d04b beq.n 2c22 <lv_obj_create+0x33e>
|
|
if(new_obj == NULL) return NULL;
|
|
2b8a: 2c00 cmp r4, #0
|
|
2b8c: d100 bne.n 2b90 <lv_obj_create+0x2ac>
|
|
2b8e: e0c1 b.n 2d14 <lv_obj_create+0x430>
|
|
_lv_memset_00(new_obj, sizeof(lv_obj_t));
|
|
2b90: 214c movs r1, #76 ; 0x4c
|
|
2b92: 0020 movs r0, r4
|
|
2b94: 4b48 ldr r3, [pc, #288] ; (2cb8 <lv_obj_create+0x3d4>)
|
|
2b96: 4798 blx r3
|
|
new_obj->parent = parent;
|
|
2b98: 4653 mov r3, sl
|
|
2b9a: 6023 str r3, [r4, #0]
|
|
new_obj->base_dir = LV_BIDI_DIR_LTR;
|
|
2b9c: 0022 movs r2, r4
|
|
2b9e: 3234 adds r2, #52 ; 0x34
|
|
2ba0: 7853 ldrb r3, [r2, #1]
|
|
2ba2: 2130 movs r1, #48 ; 0x30
|
|
2ba4: 438b bics r3, r1
|
|
2ba6: 7053 strb r3, [r2, #1]
|
|
new_obj->signal_cb = lv_obj_signal;
|
|
2ba8: 4b44 ldr r3, [pc, #272] ; (2cbc <lv_obj_create+0x3d8>)
|
|
2baa: 61e3 str r3, [r4, #28]
|
|
new_obj->design_cb = lv_obj_design;
|
|
2bac: 4b44 ldr r3, [pc, #272] ; (2cc0 <lv_obj_create+0x3dc>)
|
|
2bae: 6223 str r3, [r4, #32]
|
|
new_obj->event_cb = NULL;
|
|
2bb0: 2300 movs r3, #0
|
|
2bb2: 61a3 str r3, [r4, #24]
|
|
new_obj->coords.y1 = parent->coords.y1;
|
|
2bb4: 4653 mov r3, sl
|
|
2bb6: 2212 movs r2, #18
|
|
2bb8: 5e9b ldrsh r3, [r3, r2]
|
|
2bba: 8263 strh r3, [r4, #18]
|
|
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
|
|
2bbc: 4653 mov r3, sl
|
|
2bbe: 8a5f ldrh r7, [r3, #18]
|
|
2bc0: 2000 movs r0, #0
|
|
2bc2: 4b4a ldr r3, [pc, #296] ; (2cec <lv_obj_create+0x408>)
|
|
2bc4: 4798 blx r3
|
|
2bc6: 2332 movs r3, #50 ; 0x32
|
|
2bc8: 4343 muls r3, r0
|
|
2bca: 3350 adds r3, #80 ; 0x50
|
|
2bcc: 2240 movs r2, #64 ; 0x40
|
|
2bce: 32ff adds r2, #255 ; 0xff
|
|
2bd0: 2001 movs r0, #1
|
|
2bd2: 4293 cmp r3, r2
|
|
2bd4: d82b bhi.n 2c2e <lv_obj_create+0x34a>
|
|
2bd6: 19c0 adds r0, r0, r7
|
|
2bd8: 82e0 strh r0, [r4, #22]
|
|
if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) {
|
|
2bda: 0020 movs r0, r4
|
|
2bdc: 4b44 ldr r3, [pc, #272] ; (2cf0 <lv_obj_create+0x40c>)
|
|
2bde: 4798 blx r3
|
|
2be0: 2801 cmp r0, #1
|
|
2be2: d030 beq.n 2c46 <lv_obj_create+0x362>
|
|
new_obj->coords.x1 = parent->coords.x1;
|
|
2be4: 4653 mov r3, sl
|
|
2be6: 2210 movs r2, #16
|
|
2be8: 5e9b ldrsh r3, [r3, r2]
|
|
2bea: 8223 strh r3, [r4, #16]
|
|
new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH;
|
|
2bec: 4653 mov r3, sl
|
|
2bee: 8a1f ldrh r7, [r3, #16]
|
|
2bf0: 2000 movs r0, #0
|
|
2bf2: 4b3e ldr r3, [pc, #248] ; (2cec <lv_obj_create+0x408>)
|
|
2bf4: 4798 blx r3
|
|
2bf6: 2364 movs r3, #100 ; 0x64
|
|
2bf8: 4343 muls r3, r0
|
|
2bfa: 3350 adds r3, #80 ; 0x50
|
|
2bfc: 2240 movs r2, #64 ; 0x40
|
|
2bfe: 32ff adds r2, #255 ; 0xff
|
|
2c00: 2001 movs r0, #1
|
|
2c02: 4293 cmp r3, r2
|
|
2c04: d90a bls.n 2c1c <lv_obj_create+0x338>
|
|
2c06: 2000 movs r0, #0
|
|
2c08: 4b38 ldr r3, [pc, #224] ; (2cec <lv_obj_create+0x408>)
|
|
2c0a: 4798 blx r3
|
|
2c0c: 0003 movs r3, r0
|
|
2c0e: 2064 movs r0, #100 ; 0x64
|
|
2c10: 4358 muls r0, r3
|
|
2c12: 3050 adds r0, #80 ; 0x50
|
|
2c14: 21a0 movs r1, #160 ; 0xa0
|
|
2c16: 4b37 ldr r3, [pc, #220] ; (2cf4 <lv_obj_create+0x410>)
|
|
2c18: 4798 blx r3
|
|
2c1a: b280 uxth r0, r0
|
|
2c1c: 19c0 adds r0, r0, r7
|
|
2c1e: 82a0 strh r0, [r4, #20]
|
|
2c20: e6a7 b.n 2972 <lv_obj_create+0x8e>
|
|
LV_ASSERT_MEM(new_obj);
|
|
2c22: 0022 movs r2, r4
|
|
2c24: 2300 movs r3, #0
|
|
2c26: 4823 ldr r0, [pc, #140] ; (2cb4 <lv_obj_create+0x3d0>)
|
|
2c28: 491f ldr r1, [pc, #124] ; (2ca8 <lv_obj_create+0x3c4>)
|
|
2c2a: 4788 blx r1
|
|
2c2c: e7fe b.n 2c2c <lv_obj_create+0x348>
|
|
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
|
|
2c2e: 2000 movs r0, #0
|
|
2c30: 4b2e ldr r3, [pc, #184] ; (2cec <lv_obj_create+0x408>)
|
|
2c32: 4798 blx r3
|
|
2c34: 0003 movs r3, r0
|
|
2c36: 2032 movs r0, #50 ; 0x32
|
|
2c38: 4358 muls r0, r3
|
|
2c3a: 3050 adds r0, #80 ; 0x50
|
|
2c3c: 21a0 movs r1, #160 ; 0xa0
|
|
2c3e: 4b2d ldr r3, [pc, #180] ; (2cf4 <lv_obj_create+0x410>)
|
|
2c40: 4798 blx r3
|
|
2c42: b280 uxth r0, r0
|
|
2c44: e7c7 b.n 2bd6 <lv_obj_create+0x2f2>
|
|
new_obj->coords.x2 = parent->coords.x2;
|
|
2c46: 4653 mov r3, sl
|
|
2c48: 2214 movs r2, #20
|
|
2c4a: 5e9b ldrsh r3, [r3, r2]
|
|
2c4c: 82a3 strh r3, [r4, #20]
|
|
new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH;
|
|
2c4e: 4653 mov r3, sl
|
|
2c50: 8a9f ldrh r7, [r3, #20]
|
|
2c52: 2000 movs r0, #0
|
|
2c54: 4b25 ldr r3, [pc, #148] ; (2cec <lv_obj_create+0x408>)
|
|
2c56: 4798 blx r3
|
|
2c58: 2364 movs r3, #100 ; 0x64
|
|
2c5a: 4343 muls r3, r0
|
|
2c5c: 3350 adds r3, #80 ; 0x50
|
|
2c5e: 2240 movs r2, #64 ; 0x40
|
|
2c60: 32ff adds r2, #255 ; 0xff
|
|
2c62: 2001 movs r0, #1
|
|
2c64: 4293 cmp r3, r2
|
|
2c66: d90a bls.n 2c7e <lv_obj_create+0x39a>
|
|
2c68: 2000 movs r0, #0
|
|
2c6a: 4b20 ldr r3, [pc, #128] ; (2cec <lv_obj_create+0x408>)
|
|
2c6c: 4798 blx r3
|
|
2c6e: 0003 movs r3, r0
|
|
2c70: 2064 movs r0, #100 ; 0x64
|
|
2c72: 4358 muls r0, r3
|
|
2c74: 3050 adds r0, #80 ; 0x50
|
|
2c76: 21a0 movs r1, #160 ; 0xa0
|
|
2c78: 4b1e ldr r3, [pc, #120] ; (2cf4 <lv_obj_create+0x410>)
|
|
2c7a: 4798 blx r3
|
|
2c7c: b280 uxth r0, r0
|
|
2c7e: 1a38 subs r0, r7, r0
|
|
2c80: 8220 strh r0, [r4, #16]
|
|
2c82: e676 b.n 2972 <lv_obj_create+0x8e>
|
|
if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ);
|
|
2c84: 4653 mov r3, sl
|
|
2c86: 2b00 cmp r3, #0
|
|
2c88: d004 beq.n 2c94 <lv_obj_create+0x3b0>
|
|
2c8a: 2102 movs r1, #2
|
|
2c8c: 0020 movs r0, r4
|
|
2c8e: 4b1a ldr r3, [pc, #104] ; (2cf8 <lv_obj_create+0x414>)
|
|
2c90: 4798 blx r3
|
|
2c92: e036 b.n 2d02 <lv_obj_create+0x41e>
|
|
else lv_theme_apply(new_obj, LV_THEME_SCR);
|
|
2c94: 2101 movs r1, #1
|
|
2c96: 0020 movs r0, r4
|
|
2c98: 4b17 ldr r3, [pc, #92] ; (2cf8 <lv_obj_create+0x414>)
|
|
2c9a: 4798 blx r3
|
|
2c9c: e03a b.n 2d14 <lv_obj_create+0x430>
|
|
2c9e: 46c0 nop ; (mov r8, r8)
|
|
2ca0: 0000147d .word 0x0000147d
|
|
2ca4: 0001878c .word 0x0001878c
|
|
2ca8: 00001485 .word 0x00001485
|
|
2cac: 0000f609 .word 0x0000f609
|
|
2cb0: 000105cd .word 0x000105cd
|
|
2cb4: 00018724 .word 0x00018724
|
|
2cb8: 0001104d .word 0x0001104d
|
|
2cbc: 00003e41 .word 0x00003e41
|
|
2cc0: 000039e1 .word 0x000039e1
|
|
2cc4: 0000f615 .word 0x0000f615
|
|
2cc8: 0000f63d .word 0x0000f63d
|
|
2ccc: 000105b9 .word 0x000105b9
|
|
2cd0: 0000495d .word 0x0000495d
|
|
2cd4: 000056a1 .word 0x000056a1
|
|
2cd8: 000016a9 .word 0x000016a9
|
|
2cdc: 00001aa1 .word 0x00001aa1
|
|
2ce0: 00001c11 .word 0x00001c11
|
|
2ce4: 00001c55 .word 0x00001c55
|
|
2ce8: 00002085 .word 0x00002085
|
|
2cec: 0000f665 .word 0x0000f665
|
|
2cf0: 000028bd .word 0x000028bd
|
|
2cf4: 00017881 .word 0x00017881
|
|
2cf8: 00011c69 .word 0x00011c69
|
|
if(parent != NULL) {
|
|
2cfc: 4653 mov r3, sl
|
|
2cfe: 2b00 cmp r3, #0
|
|
2d00: d008 beq.n 2d14 <lv_obj_create+0x430>
|
|
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj);
|
|
2d02: 4653 mov r3, sl
|
|
2d04: 69db ldr r3, [r3, #28]
|
|
2d06: 0022 movs r2, r4
|
|
2d08: 2101 movs r1, #1
|
|
2d0a: 4650 mov r0, sl
|
|
2d0c: 4798 blx r3
|
|
lv_obj_invalidate(new_obj);
|
|
2d0e: 0020 movs r0, r4
|
|
2d10: 4b05 ldr r3, [pc, #20] ; (2d28 <lv_obj_create+0x444>)
|
|
2d12: 4798 blx r3
|
|
}
|
|
2d14: 0020 movs r0, r4
|
|
2d16: bc3c pop {r2, r3, r4, r5}
|
|
2d18: 4690 mov r8, r2
|
|
2d1a: 4699 mov r9, r3
|
|
2d1c: 46a2 mov sl, r4
|
|
2d1e: 46ab mov fp, r5
|
|
2d20: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
return NULL;
|
|
2d22: 4654 mov r4, sl
|
|
2d24: e7f6 b.n 2d14 <lv_obj_create+0x430>
|
|
2d26: 46c0 nop ; (mov r8, r8)
|
|
2d28: 00001fb1 .word 0x00001fb1
|
|
|
|
00002d2c <lv_obj_is_protected>:
|
|
{
|
|
2d2c: b570 push {r4, r5, r6, lr}
|
|
2d2e: 0004 movs r4, r0
|
|
2d30: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2d32: 4b08 ldr r3, [pc, #32] ; (2d54 <lv_obj_is_protected+0x28>)
|
|
2d34: 4798 blx r3
|
|
2d36: 2800 cmp r0, #0
|
|
2d38: d006 beq.n 2d48 <lv_obj_is_protected+0x1c>
|
|
return (obj->protect & prot) == 0 ? false : true;
|
|
2d3a: 233c movs r3, #60 ; 0x3c
|
|
2d3c: 5ce0 ldrb r0, [r4, r3]
|
|
2d3e: 4028 ands r0, r5
|
|
2d40: 1e43 subs r3, r0, #1
|
|
2d42: 4198 sbcs r0, r3
|
|
2d44: b2c0 uxtb r0, r0
|
|
}
|
|
2d46: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2d48: 0022 movs r2, r4
|
|
2d4a: 2300 movs r3, #0
|
|
2d4c: 4802 ldr r0, [pc, #8] ; (2d58 <lv_obj_is_protected+0x2c>)
|
|
2d4e: 4903 ldr r1, [pc, #12] ; (2d5c <lv_obj_is_protected+0x30>)
|
|
2d50: 4788 blx r1
|
|
2d52: e7fe b.n 2d52 <lv_obj_is_protected+0x26>
|
|
2d54: 0000147d .word 0x0000147d
|
|
2d58: 0001878c .word 0x0001878c
|
|
2d5c: 00001485 .word 0x00001485
|
|
|
|
00002d60 <lv_obj_get_state>:
|
|
{
|
|
2d60: b570 push {r4, r5, r6, lr}
|
|
2d62: b082 sub sp, #8
|
|
2d64: 0005 movs r5, r0
|
|
2d66: 000e movs r6, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2d68: 4b0d ldr r3, [pc, #52] ; (2da0 <lv_obj_get_state+0x40>)
|
|
2d6a: 4798 blx r3
|
|
2d6c: 2800 cmp r0, #0
|
|
2d6e: d005 beq.n 2d7c <lv_obj_get_state+0x1c>
|
|
if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state;
|
|
2d70: 2e3f cmp r6, #63 ; 0x3f
|
|
2d72: d809 bhi.n 2d88 <lv_obj_get_state+0x28>
|
|
2d74: 233d movs r3, #61 ; 0x3d
|
|
2d76: 5ce8 ldrb r0, [r5, r3]
|
|
}
|
|
2d78: b002 add sp, #8
|
|
2d7a: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
2d7c: 002a movs r2, r5
|
|
2d7e: 2300 movs r3, #0
|
|
2d80: 4808 ldr r0, [pc, #32] ; (2da4 <lv_obj_get_state+0x44>)
|
|
2d82: 4909 ldr r1, [pc, #36] ; (2da8 <lv_obj_get_state+0x48>)
|
|
2d84: 4788 blx r1
|
|
2d86: e7fe b.n 2d86 <lv_obj_get_state+0x26>
|
|
info.part = part;
|
|
2d88: ac01 add r4, sp, #4
|
|
2d8a: 7026 strb r6, [r4, #0]
|
|
info.result = LV_STATE_DEFAULT;
|
|
2d8c: 2300 movs r3, #0
|
|
2d8e: 7063 strb r3, [r4, #1]
|
|
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
|
|
2d90: 0022 movs r2, r4
|
|
2d92: 2109 movs r1, #9
|
|
2d94: 0028 movs r0, r5
|
|
2d96: 4b05 ldr r3, [pc, #20] ; (2dac <lv_obj_get_state+0x4c>)
|
|
2d98: 4798 blx r3
|
|
return info.result;
|
|
2d9a: 7860 ldrb r0, [r4, #1]
|
|
2d9c: e7ec b.n 2d78 <lv_obj_get_state+0x18>
|
|
2d9e: 46c0 nop ; (mov r8, r8)
|
|
2da0: 0000147d .word 0x0000147d
|
|
2da4: 0001878c .word 0x0001878c
|
|
2da8: 00001485 .word 0x00001485
|
|
2dac: 00001a55 .word 0x00001a55
|
|
|
|
00002db0 <_lv_obj_get_style_int>:
|
|
{
|
|
2db0: b5f0 push {r4, r5, r6, r7, lr}
|
|
2db2: 46de mov lr, fp
|
|
2db4: 4657 mov r7, sl
|
|
2db6: 464e mov r6, r9
|
|
2db8: b5c0 push {r6, r7, lr}
|
|
2dba: b084 sub sp, #16
|
|
2dbc: 0006 movs r6, r0
|
|
2dbe: 000d movs r5, r1
|
|
2dc0: 0017 movs r7, r2
|
|
attr.full = prop_ori >> 8;
|
|
2dc2: 0a13 lsrs r3, r2, #8
|
|
2dc4: 9301 str r3, [sp, #4]
|
|
while(parent) {
|
|
2dc6: 2800 cmp r0, #0
|
|
2dc8: d030 beq.n 2e2c <_lv_obj_get_style_int+0x7c>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2dca: 4b24 ldr r3, [pc, #144] ; (2e5c <_lv_obj_get_style_int+0xac>)
|
|
2dcc: 469b mov fp, r3
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2dce: 4b24 ldr r3, [pc, #144] ; (2e60 <_lv_obj_get_style_int+0xb0>)
|
|
2dd0: 469a mov sl, r3
|
|
res = _lv_style_list_get_int(dsc, prop, &value_act);
|
|
2dd2: 4b24 ldr r3, [pc, #144] ; (2e64 <_lv_obj_get_style_int+0xb4>)
|
|
2dd4: 4699 mov r9, r3
|
|
2dd6: e00c b.n 2df2 <_lv_obj_get_style_int+0x42>
|
|
if(res == LV_RES_OK) return value_act;
|
|
2dd8: ab02 add r3, sp, #8
|
|
2dda: 3306 adds r3, #6
|
|
2ddc: 2000 movs r0, #0
|
|
2dde: 5e18 ldrsh r0, [r3, r0]
|
|
}
|
|
2de0: b004 add sp, #16
|
|
2de2: bc1c pop {r2, r3, r4}
|
|
2de4: 4691 mov r9, r2
|
|
2de6: 469a mov sl, r3
|
|
2de8: 46a3 mov fp, r4
|
|
2dea: bdf0 pop {r4, r5, r6, r7, pc}
|
|
2dec: 2500 movs r5, #0
|
|
while(parent) {
|
|
2dee: 2e00 cmp r6, #0
|
|
2df0: d01d beq.n 2e2e <_lv_obj_get_style_int+0x7e>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2df2: 0029 movs r1, r5
|
|
2df4: 0030 movs r0, r6
|
|
2df6: 47d8 blx fp
|
|
2df8: 9000 str r0, [sp, #0]
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2dfa: 0029 movs r1, r5
|
|
2dfc: 0030 movs r0, r6
|
|
2dfe: 47d0 blx sl
|
|
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
|
|
2e00: 0204 lsls r4, r0, #8
|
|
2e02: 193c adds r4, r7, r4
|
|
2e04: b2a4 uxth r4, r4
|
|
res = _lv_style_list_get_int(dsc, prop, &value_act);
|
|
2e06: ab02 add r3, sp, #8
|
|
2e08: 1d9a adds r2, r3, #6
|
|
2e0a: 0021 movs r1, r4
|
|
2e0c: 9800 ldr r0, [sp, #0]
|
|
2e0e: 47c8 blx r9
|
|
if(res == LV_RES_OK) return value_act;
|
|
2e10: 2801 cmp r0, #1
|
|
2e12: d0e1 beq.n 2dd8 <_lv_obj_get_style_int+0x28>
|
|
if(attr.bits.inherit == 0) break;
|
|
2e14: 466b mov r3, sp
|
|
2e16: 791b ldrb r3, [r3, #4]
|
|
2e18: b25b sxtb r3, r3
|
|
2e1a: 2b00 cmp r3, #0
|
|
2e1c: da07 bge.n 2e2e <_lv_obj_get_style_int+0x7e>
|
|
if(part != LV_OBJ_PART_MAIN) {
|
|
2e1e: 2d00 cmp r5, #0
|
|
2e20: d1e4 bne.n 2dec <_lv_obj_get_style_int+0x3c>
|
|
parent = lv_obj_get_parent(parent);
|
|
2e22: 0030 movs r0, r6
|
|
2e24: 4b10 ldr r3, [pc, #64] ; (2e68 <_lv_obj_get_style_int+0xb8>)
|
|
2e26: 4798 blx r3
|
|
2e28: 0006 movs r6, r0
|
|
2e2a: e7df b.n 2dec <_lv_obj_get_style_int+0x3c>
|
|
while(parent) {
|
|
2e2c: 0014 movs r4, r2
|
|
switch(prop) {
|
|
2e2e: 4b0f ldr r3, [pc, #60] ; (2e6c <_lv_obj_get_style_int+0xbc>)
|
|
2e30: 401c ands r4, r3
|
|
2e32: 2c22 cmp r4, #34 ; 0x22
|
|
2e34: d010 beq.n 2e58 <_lv_obj_get_style_int+0xa8>
|
|
2e36: d807 bhi.n 2e48 <_lv_obj_get_style_int+0x98>
|
|
return LV_DPI / 20;
|
|
2e38: 2006 movs r0, #6
|
|
switch(prop) {
|
|
2e3a: 2c03 cmp r4, #3
|
|
2e3c: d0d0 beq.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
2e3e: 2c07 cmp r4, #7
|
|
2e40: d108 bne.n 2e54 <_lv_obj_get_style_int+0xa4>
|
|
return LV_IMG_ZOOM_NONE;
|
|
2e42: 2080 movs r0, #128 ; 0x80
|
|
2e44: 0040 lsls r0, r0, #1
|
|
2e46: e7cb b.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
return LV_BORDER_SIDE_FULL;
|
|
2e48: 200f movs r0, #15
|
|
switch(prop) {
|
|
2e4a: 2c31 cmp r4, #49 ; 0x31
|
|
2e4c: d0c8 beq.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
return LV_DPI / 8;
|
|
2e4e: 3001 adds r0, #1
|
|
switch(prop) {
|
|
2e50: 2cc0 cmp r4, #192 ; 0xc0
|
|
2e52: d0c5 beq.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
return 0;
|
|
2e54: 2000 movs r0, #0
|
|
2e56: e7c3 b.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
return 255;
|
|
2e58: 20ff movs r0, #255 ; 0xff
|
|
2e5a: e7c1 b.n 2de0 <_lv_obj_get_style_int+0x30>
|
|
2e5c: 00001cf9 .word 0x00001cf9
|
|
2e60: 00002d61 .word 0x00002d61
|
|
2e64: 000057e1 .word 0x000057e1
|
|
2e68: 00001aa1 .word 0x00001aa1
|
|
2e6c: ffff80ff .word 0xffff80ff
|
|
|
|
00002e70 <_lv_obj_get_style_color>:
|
|
{
|
|
2e70: b5f0 push {r4, r5, r6, r7, lr}
|
|
2e72: 46de mov lr, fp
|
|
2e74: 4657 mov r7, sl
|
|
2e76: 464e mov r6, r9
|
|
2e78: b5c0 push {r6, r7, lr}
|
|
2e7a: b084 sub sp, #16
|
|
2e7c: 0006 movs r6, r0
|
|
2e7e: 000d movs r5, r1
|
|
2e80: 0017 movs r7, r2
|
|
attr.full = prop_ori >> 8;
|
|
2e82: 0a13 lsrs r3, r2, #8
|
|
2e84: 9301 str r3, [sp, #4]
|
|
while(parent) {
|
|
2e86: 2800 cmp r0, #0
|
|
2e88: d028 beq.n 2edc <_lv_obj_get_style_color+0x6c>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2e8a: 4b1c ldr r3, [pc, #112] ; (2efc <_lv_obj_get_style_color+0x8c>)
|
|
2e8c: 469b mov fp, r3
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2e8e: 4b1c ldr r3, [pc, #112] ; (2f00 <_lv_obj_get_style_color+0x90>)
|
|
2e90: 469a mov sl, r3
|
|
res = _lv_style_list_get_color(dsc, prop, &value_act);
|
|
2e92: 4b1c ldr r3, [pc, #112] ; (2f04 <_lv_obj_get_style_color+0x94>)
|
|
2e94: 4699 mov r9, r3
|
|
2e96: e005 b.n 2ea4 <_lv_obj_get_style_color+0x34>
|
|
if(res == LV_RES_OK) return value_act;
|
|
2e98: ab03 add r3, sp, #12
|
|
2e9a: 8818 ldrh r0, [r3, #0]
|
|
2e9c: e025 b.n 2eea <_lv_obj_get_style_color+0x7a>
|
|
2e9e: 2500 movs r5, #0
|
|
while(parent) {
|
|
2ea0: 2e00 cmp r6, #0
|
|
2ea2: d01c beq.n 2ede <_lv_obj_get_style_color+0x6e>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2ea4: 0029 movs r1, r5
|
|
2ea6: 0030 movs r0, r6
|
|
2ea8: 47d8 blx fp
|
|
2eaa: 9000 str r0, [sp, #0]
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2eac: 0029 movs r1, r5
|
|
2eae: 0030 movs r0, r6
|
|
2eb0: 47d0 blx sl
|
|
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
|
|
2eb2: 0204 lsls r4, r0, #8
|
|
2eb4: 193c adds r4, r7, r4
|
|
2eb6: b2a4 uxth r4, r4
|
|
res = _lv_style_list_get_color(dsc, prop, &value_act);
|
|
2eb8: aa03 add r2, sp, #12
|
|
2eba: 0021 movs r1, r4
|
|
2ebc: 9800 ldr r0, [sp, #0]
|
|
2ebe: 47c8 blx r9
|
|
if(res == LV_RES_OK) return value_act;
|
|
2ec0: 2801 cmp r0, #1
|
|
2ec2: d0e9 beq.n 2e98 <_lv_obj_get_style_color+0x28>
|
|
if(attr.bits.inherit == 0) break;
|
|
2ec4: 466b mov r3, sp
|
|
2ec6: 791b ldrb r3, [r3, #4]
|
|
2ec8: b25b sxtb r3, r3
|
|
2eca: 2b00 cmp r3, #0
|
|
2ecc: da07 bge.n 2ede <_lv_obj_get_style_color+0x6e>
|
|
if(part != LV_OBJ_PART_MAIN) {
|
|
2ece: 2d00 cmp r5, #0
|
|
2ed0: d1e5 bne.n 2e9e <_lv_obj_get_style_color+0x2e>
|
|
parent = lv_obj_get_parent(parent);
|
|
2ed2: 0030 movs r0, r6
|
|
2ed4: 4b0c ldr r3, [pc, #48] ; (2f08 <_lv_obj_get_style_color+0x98>)
|
|
2ed6: 4798 blx r3
|
|
2ed8: 0006 movs r6, r0
|
|
2eda: e7e0 b.n 2e9e <_lv_obj_get_style_color+0x2e>
|
|
while(parent) {
|
|
2edc: 0014 movs r4, r2
|
|
switch(prop) {
|
|
2ede: 4b0b ldr r3, [pc, #44] ; (2f0c <_lv_obj_get_style_color+0x9c>)
|
|
2ee0: 401c ands r4, r3
|
|
2ee2: 3c29 subs r4, #41 ; 0x29
|
|
return LV_COLOR_BLACK;
|
|
2ee4: 2000 movs r0, #0
|
|
switch(prop) {
|
|
2ee6: 2c01 cmp r4, #1
|
|
2ee8: d905 bls.n 2ef6 <_lv_obj_get_style_color+0x86>
|
|
}
|
|
2eea: b004 add sp, #16
|
|
2eec: bc1c pop {r2, r3, r4}
|
|
2eee: 4691 mov r9, r2
|
|
2ef0: 469a mov sl, r3
|
|
2ef2: 46a3 mov fp, r4
|
|
2ef4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
return LV_COLOR_WHITE;
|
|
2ef6: 4b06 ldr r3, [pc, #24] ; (2f10 <_lv_obj_get_style_color+0xa0>)
|
|
2ef8: 8818 ldrh r0, [r3, #0]
|
|
2efa: e7f6 b.n 2eea <_lv_obj_get_style_color+0x7a>
|
|
2efc: 00001cf9 .word 0x00001cf9
|
|
2f00: 00002d61 .word 0x00002d61
|
|
2f04: 000058b5 .word 0x000058b5
|
|
2f08: 00001aa1 .word 0x00001aa1
|
|
2f0c: ffff80ff .word 0xffff80ff
|
|
2f10: 00018788 .word 0x00018788
|
|
|
|
00002f14 <_lv_obj_get_style_opa>:
|
|
{
|
|
2f14: b5f0 push {r4, r5, r6, r7, lr}
|
|
2f16: 46de mov lr, fp
|
|
2f18: 4657 mov r7, sl
|
|
2f1a: 464e mov r6, r9
|
|
2f1c: b5c0 push {r6, r7, lr}
|
|
2f1e: b084 sub sp, #16
|
|
2f20: 0006 movs r6, r0
|
|
2f22: 000d movs r5, r1
|
|
2f24: 0017 movs r7, r2
|
|
attr.full = prop_ori >> 8;
|
|
2f26: 0a13 lsrs r3, r2, #8
|
|
2f28: 9301 str r3, [sp, #4]
|
|
while(parent) {
|
|
2f2a: 2800 cmp r0, #0
|
|
2f2c: d029 beq.n 2f82 <_lv_obj_get_style_opa+0x6e>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2f2e: 4b1e ldr r3, [pc, #120] ; (2fa8 <_lv_obj_get_style_opa+0x94>)
|
|
2f30: 469b mov fp, r3
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2f32: 4b1e ldr r3, [pc, #120] ; (2fac <_lv_obj_get_style_opa+0x98>)
|
|
2f34: 469a mov sl, r3
|
|
res = _lv_style_list_get_opa(dsc, prop, &value_act);
|
|
2f36: 4b1e ldr r3, [pc, #120] ; (2fb0 <_lv_obj_get_style_opa+0x9c>)
|
|
2f38: 4699 mov r9, r3
|
|
2f3a: e005 b.n 2f48 <_lv_obj_get_style_opa+0x34>
|
|
if(res == LV_RES_OK) return value_act;
|
|
2f3c: ab02 add r3, sp, #8
|
|
2f3e: 79d8 ldrb r0, [r3, #7]
|
|
2f40: e02a b.n 2f98 <_lv_obj_get_style_opa+0x84>
|
|
2f42: 2500 movs r5, #0
|
|
while(parent) {
|
|
2f44: 2e00 cmp r6, #0
|
|
2f46: d01d beq.n 2f84 <_lv_obj_get_style_opa+0x70>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2f48: 0029 movs r1, r5
|
|
2f4a: 0030 movs r0, r6
|
|
2f4c: 47d8 blx fp
|
|
2f4e: 9000 str r0, [sp, #0]
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2f50: 0029 movs r1, r5
|
|
2f52: 0030 movs r0, r6
|
|
2f54: 47d0 blx sl
|
|
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
|
|
2f56: 0204 lsls r4, r0, #8
|
|
2f58: 193c adds r4, r7, r4
|
|
2f5a: b2a4 uxth r4, r4
|
|
res = _lv_style_list_get_opa(dsc, prop, &value_act);
|
|
2f5c: ab02 add r3, sp, #8
|
|
2f5e: 1dda adds r2, r3, #7
|
|
2f60: 0021 movs r1, r4
|
|
2f62: 9800 ldr r0, [sp, #0]
|
|
2f64: 47c8 blx r9
|
|
if(res == LV_RES_OK) return value_act;
|
|
2f66: 2801 cmp r0, #1
|
|
2f68: d0e8 beq.n 2f3c <_lv_obj_get_style_opa+0x28>
|
|
if(attr.bits.inherit == 0) break;
|
|
2f6a: 466b mov r3, sp
|
|
2f6c: 791b ldrb r3, [r3, #4]
|
|
2f6e: b25b sxtb r3, r3
|
|
2f70: 2b00 cmp r3, #0
|
|
2f72: da07 bge.n 2f84 <_lv_obj_get_style_opa+0x70>
|
|
if(part != LV_OBJ_PART_MAIN) {
|
|
2f74: 2d00 cmp r5, #0
|
|
2f76: d1e4 bne.n 2f42 <_lv_obj_get_style_opa+0x2e>
|
|
parent = lv_obj_get_parent(parent);
|
|
2f78: 0030 movs r0, r6
|
|
2f7a: 4b0e ldr r3, [pc, #56] ; (2fb4 <_lv_obj_get_style_opa+0xa0>)
|
|
2f7c: 4798 blx r3
|
|
2f7e: 0006 movs r6, r0
|
|
2f80: e7df b.n 2f42 <_lv_obj_get_style_opa+0x2e>
|
|
while(parent) {
|
|
2f82: 0014 movs r4, r2
|
|
switch(prop) {
|
|
2f84: 4b0c ldr r3, [pc, #48] ; (2fb8 <_lv_obj_get_style_opa+0xa4>)
|
|
2f86: 401c ands r4, r3
|
|
2f88: 2c6d cmp r4, #109 ; 0x6d
|
|
2f8a: d00b beq.n 2fa4 <_lv_obj_get_style_opa+0x90>
|
|
2f8c: 4b0b ldr r3, [pc, #44] ; (2fbc <_lv_obj_get_style_opa+0xa8>)
|
|
2f8e: 429c cmp r4, r3
|
|
2f90: d008 beq.n 2fa4 <_lv_obj_get_style_opa+0x90>
|
|
2f92: 2c2c cmp r4, #44 ; 0x2c
|
|
2f94: d006 beq.n 2fa4 <_lv_obj_get_style_opa+0x90>
|
|
return LV_OPA_COVER;
|
|
2f96: 20ff movs r0, #255 ; 0xff
|
|
}
|
|
2f98: b004 add sp, #16
|
|
2f9a: bc1c pop {r2, r3, r4}
|
|
2f9c: 4691 mov r9, r2
|
|
2f9e: 469a mov sl, r3
|
|
2fa0: 46a3 mov fp, r4
|
|
2fa2: bdf0 pop {r4, r5, r6, r7, pc}
|
|
return LV_OPA_TRANSP;
|
|
2fa4: 2000 movs r0, #0
|
|
2fa6: e7f7 b.n 2f98 <_lv_obj_get_style_opa+0x84>
|
|
2fa8: 00001cf9 .word 0x00001cf9
|
|
2fac: 00002d61 .word 0x00002d61
|
|
2fb0: 00005981 .word 0x00005981
|
|
2fb4: 00001aa1 .word 0x00001aa1
|
|
2fb8: ffff80ff .word 0xffff80ff
|
|
2fbc: 000080ad .word 0x000080ad
|
|
|
|
00002fc0 <_lv_obj_get_style_ptr>:
|
|
{
|
|
2fc0: b5f0 push {r4, r5, r6, r7, lr}
|
|
2fc2: 46de mov lr, fp
|
|
2fc4: 4657 mov r7, sl
|
|
2fc6: 464e mov r6, r9
|
|
2fc8: b5c0 push {r6, r7, lr}
|
|
2fca: b084 sub sp, #16
|
|
2fcc: 0006 movs r6, r0
|
|
2fce: 000d movs r5, r1
|
|
2fd0: 0017 movs r7, r2
|
|
attr.full = prop_ori >> 8;
|
|
2fd2: 0a13 lsrs r3, r2, #8
|
|
2fd4: 9301 str r3, [sp, #4]
|
|
while(parent) {
|
|
2fd6: 2800 cmp r0, #0
|
|
2fd8: d02c beq.n 3034 <_lv_obj_get_style_ptr+0x74>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2fda: 4b1f ldr r3, [pc, #124] ; (3058 <_lv_obj_get_style_ptr+0x98>)
|
|
2fdc: 469b mov fp, r3
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
2fde: 4b1f ldr r3, [pc, #124] ; (305c <_lv_obj_get_style_ptr+0x9c>)
|
|
2fe0: 469a mov sl, r3
|
|
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
|
|
2fe2: 4b1f ldr r3, [pc, #124] ; (3060 <_lv_obj_get_style_ptr+0xa0>)
|
|
2fe4: 4699 mov r9, r3
|
|
2fe6: e009 b.n 2ffc <_lv_obj_get_style_ptr+0x3c>
|
|
if(res == LV_RES_OK) return value_act;
|
|
2fe8: 9803 ldr r0, [sp, #12]
|
|
}
|
|
2fea: b004 add sp, #16
|
|
2fec: bc1c pop {r2, r3, r4}
|
|
2fee: 4691 mov r9, r2
|
|
2ff0: 469a mov sl, r3
|
|
2ff2: 46a3 mov fp, r4
|
|
2ff4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
2ff6: 2500 movs r5, #0
|
|
while(parent) {
|
|
2ff8: 2e00 cmp r6, #0
|
|
2ffa: d01c beq.n 3036 <_lv_obj_get_style_ptr+0x76>
|
|
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
|
|
2ffc: 0029 movs r1, r5
|
|
2ffe: 0030 movs r0, r6
|
|
3000: 47d8 blx fp
|
|
3002: 9000 str r0, [sp, #0]
|
|
lv_state_t state = lv_obj_get_state(parent, part);
|
|
3004: 0029 movs r1, r5
|
|
3006: 0030 movs r0, r6
|
|
3008: 47d0 blx sl
|
|
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
|
|
300a: 0204 lsls r4, r0, #8
|
|
300c: 193c adds r4, r7, r4
|
|
300e: b2a4 uxth r4, r4
|
|
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
|
|
3010: aa03 add r2, sp, #12
|
|
3012: 0021 movs r1, r4
|
|
3014: 9800 ldr r0, [sp, #0]
|
|
3016: 47c8 blx r9
|
|
if(res == LV_RES_OK) return value_act;
|
|
3018: 2801 cmp r0, #1
|
|
301a: d0e5 beq.n 2fe8 <_lv_obj_get_style_ptr+0x28>
|
|
if(attr.bits.inherit == 0) break;
|
|
301c: 466b mov r3, sp
|
|
301e: 791b ldrb r3, [r3, #4]
|
|
3020: b25b sxtb r3, r3
|
|
3022: 2b00 cmp r3, #0
|
|
3024: da07 bge.n 3036 <_lv_obj_get_style_ptr+0x76>
|
|
if(part != LV_OBJ_PART_MAIN) {
|
|
3026: 2d00 cmp r5, #0
|
|
3028: d1e5 bne.n 2ff6 <_lv_obj_get_style_ptr+0x36>
|
|
parent = lv_obj_get_parent(parent);
|
|
302a: 0030 movs r0, r6
|
|
302c: 4b0d ldr r3, [pc, #52] ; (3064 <_lv_obj_get_style_ptr+0xa4>)
|
|
302e: 4798 blx r3
|
|
3030: 0006 movs r6, r0
|
|
3032: e7e0 b.n 2ff6 <_lv_obj_get_style_ptr+0x36>
|
|
while(parent) {
|
|
3034: 0014 movs r4, r2
|
|
switch(prop) {
|
|
3036: 4b0c ldr r3, [pc, #48] ; (3068 <_lv_obj_get_style_ptr+0xa8>)
|
|
3038: 401c ands r4, r3
|
|
303a: 2cbe cmp r4, #190 ; 0xbe
|
|
303c: d009 beq.n 3052 <_lv_obj_get_style_ptr+0x92>
|
|
303e: 4b0b ldr r3, [pc, #44] ; (306c <_lv_obj_get_style_ptr+0xac>)
|
|
3040: 429c cmp r4, r3
|
|
3042: d003 beq.n 304c <_lv_obj_get_style_ptr+0x8c>
|
|
3044: 2c7e cmp r4, #126 ; 0x7e
|
|
3046: d001 beq.n 304c <_lv_obj_get_style_ptr+0x8c>
|
|
return NULL;
|
|
3048: 2000 movs r0, #0
|
|
304a: e7ce b.n 2fea <_lv_obj_get_style_ptr+0x2a>
|
|
return lv_theme_get_font_normal();
|
|
304c: 4b08 ldr r3, [pc, #32] ; (3070 <_lv_obj_get_style_ptr+0xb0>)
|
|
304e: 4798 blx r3
|
|
3050: e7cb b.n 2fea <_lv_obj_get_style_ptr+0x2a>
|
|
return &lv_anim_path_def;
|
|
3052: 4808 ldr r0, [pc, #32] ; (3074 <_lv_obj_get_style_ptr+0xb4>)
|
|
3054: e7c9 b.n 2fea <_lv_obj_get_style_ptr+0x2a>
|
|
3056: 46c0 nop ; (mov r8, r8)
|
|
3058: 00001cf9 .word 0x00001cf9
|
|
305c: 00002d61 .word 0x00002d61
|
|
3060: 00005a55 .word 0x00005a55
|
|
3064: 00001aa1 .word 0x00001aa1
|
|
3068: ffff80ff .word 0xffff80ff
|
|
306c: 0000808e .word 0x0000808e
|
|
3070: 00011c5d .word 0x00011c5d
|
|
3074: 0001c768 .word 0x0001c768
|
|
|
|
00003078 <trans_anim_start_cb>:
|
|
{
|
|
3078: b570 push {r4, r5, r6, lr}
|
|
lv_style_trans_t * tr = a->var;
|
|
307a: 6804 ldr r4, [r0, #0]
|
|
lv_style_property_t prop_tmp = tr->prop;
|
|
307c: 88a5 ldrh r5, [r4, #4]
|
|
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
|
|
307e: 230f movs r3, #15
|
|
3080: 402b ands r3, r5
|
|
3082: 2b08 cmp r3, #8
|
|
3084: dd13 ble.n 30ae <trans_anim_start_cb+0x36>
|
|
else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
|
|
3086: 2b0b cmp r3, #11
|
|
3088: dd18 ble.n 30bc <trans_anim_start_cb+0x44>
|
|
else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
|
|
308a: 2b0d cmp r3, #13
|
|
308c: dd1d ble.n 30ca <trans_anim_start_cb+0x52>
|
|
tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp);
|
|
308e: 79a1 ldrb r1, [r4, #6]
|
|
3090: 002a movs r2, r5
|
|
3092: 6820 ldr r0, [r4, #0]
|
|
3094: 4b10 ldr r3, [pc, #64] ; (30d8 <trans_anim_start_cb+0x60>)
|
|
3096: 4798 blx r3
|
|
3098: 60a0 str r0, [r4, #8]
|
|
tr->prop = 0;
|
|
309a: 2300 movs r3, #0
|
|
309c: 80a3 strh r3, [r4, #4]
|
|
trans_del(tr->obj, tr->part, prop_tmp, tr);
|
|
309e: 79a1 ldrb r1, [r4, #6]
|
|
30a0: 0023 movs r3, r4
|
|
30a2: 002a movs r2, r5
|
|
30a4: 6820 ldr r0, [r4, #0]
|
|
30a6: 4e0d ldr r6, [pc, #52] ; (30dc <trans_anim_start_cb+0x64>)
|
|
30a8: 47b0 blx r6
|
|
tr->prop = prop_tmp;
|
|
30aa: 80a5 strh r5, [r4, #4]
|
|
}
|
|
30ac: bd70 pop {r4, r5, r6, pc}
|
|
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
|
|
30ae: 79a1 ldrb r1, [r4, #6]
|
|
30b0: 002a movs r2, r5
|
|
30b2: 6820 ldr r0, [r4, #0]
|
|
30b4: 4b0a ldr r3, [pc, #40] ; (30e0 <trans_anim_start_cb+0x68>)
|
|
30b6: 4798 blx r3
|
|
30b8: 8120 strh r0, [r4, #8]
|
|
30ba: e7ee b.n 309a <trans_anim_start_cb+0x22>
|
|
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
|
|
30bc: 79a1 ldrb r1, [r4, #6]
|
|
30be: 002a movs r2, r5
|
|
30c0: 6820 ldr r0, [r4, #0]
|
|
30c2: 4b08 ldr r3, [pc, #32] ; (30e4 <trans_anim_start_cb+0x6c>)
|
|
30c4: 4798 blx r3
|
|
30c6: 8120 strh r0, [r4, #8]
|
|
30c8: e7e7 b.n 309a <trans_anim_start_cb+0x22>
|
|
tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp);
|
|
30ca: 79a1 ldrb r1, [r4, #6]
|
|
30cc: 002a movs r2, r5
|
|
30ce: 6820 ldr r0, [r4, #0]
|
|
30d0: 4b05 ldr r3, [pc, #20] ; (30e8 <trans_anim_start_cb+0x70>)
|
|
30d2: 4798 blx r3
|
|
30d4: 7220 strb r0, [r4, #8]
|
|
30d6: e7e0 b.n 309a <trans_anim_start_cb+0x22>
|
|
30d8: 00002fc1 .word 0x00002fc1
|
|
30dc: 00001d29 .word 0x00001d29
|
|
30e0: 00002db1 .word 0x00002db1
|
|
30e4: 00002e71 .word 0x00002e71
|
|
30e8: 00002f15 .word 0x00002f15
|
|
|
|
000030ec <lv_obj_set_state>:
|
|
{
|
|
30ec: b5f0 push {r4, r5, r6, r7, lr}
|
|
30ee: 46de mov lr, fp
|
|
30f0: 4657 mov r7, sl
|
|
30f2: 464e mov r6, r9
|
|
30f4: 4645 mov r5, r8
|
|
30f6: b5e0 push {r5, r6, r7, lr}
|
|
30f8: b09d sub sp, #116 ; 0x74
|
|
30fa: 0004 movs r4, r0
|
|
30fc: 468b mov fp, r1
|
|
if(obj->state == new_state) return;
|
|
30fe: 233d movs r3, #61 ; 0x3d
|
|
3100: 5cc3 ldrb r3, [r0, r3]
|
|
3102: 428b cmp r3, r1
|
|
3104: d100 bne.n 3108 <lv_obj_set_state+0x1c>
|
|
3106: e208 b.n 351a <lv_obj_set_state+0x42e>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3108: 4bc3 ldr r3, [pc, #780] ; (3418 <lv_obj_set_state+0x32c>)
|
|
310a: 4798 blx r3
|
|
310c: 2800 cmp r0, #0
|
|
310e: d008 beq.n 3122 <lv_obj_set_state+0x36>
|
|
lv_state_t prev_state = obj->state;
|
|
3110: 233d movs r3, #61 ; 0x3d
|
|
3112: 5ce2 ldrb r2, [r4, r3]
|
|
3114: 4691 mov r9, r2
|
|
obj->state = new_state;
|
|
3116: 465a mov r2, fp
|
|
3118: 54e2 strb r2, [r4, r3]
|
|
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
|
|
311a: 2300 movs r3, #0
|
|
311c: 9300 str r3, [sp, #0]
|
|
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
|
|
311e: 46ca mov sl, r9
|
|
3120: e1b2 b.n 3488 <lv_obj_set_state+0x39c>
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3122: 0022 movs r2, r4
|
|
3124: 2300 movs r3, #0
|
|
3126: 48bd ldr r0, [pc, #756] ; (341c <lv_obj_set_state+0x330>)
|
|
3128: 49bd ldr r1, [pc, #756] ; (3420 <lv_obj_set_state+0x334>)
|
|
312a: 4788 blx r1
|
|
312c: e7fe b.n 312c <lv_obj_set_state+0x40>
|
|
style_list->skip_trans = 1;
|
|
312e: 7973 ldrb r3, [r6, #5]
|
|
3130: 2204 movs r2, #4
|
|
3132: 4313 orrs r3, r2
|
|
3134: 7173 strb r3, [r6, #5]
|
|
obj->state = prev_state;
|
|
3136: 233d movs r3, #61 ; 0x3d
|
|
3138: 4699 mov r9, r3
|
|
313a: 4652 mov r2, sl
|
|
313c: 54e2 strb r2, [r4, r3]
|
|
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
|
|
313e: 002a movs r2, r5
|
|
3140: 9900 ldr r1, [sp, #0]
|
|
3142: 0020 movs r0, r4
|
|
3144: 4fb7 ldr r7, [pc, #732] ; (3424 <lv_obj_set_state+0x338>)
|
|
3146: 47b8 blx r7
|
|
3148: 9007 str r0, [sp, #28]
|
|
obj->state = new_state;
|
|
314a: 464b mov r3, r9
|
|
314c: 465a mov r2, fp
|
|
314e: 54e2 strb r2, [r4, r3]
|
|
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
|
|
3150: 002a movs r2, r5
|
|
3152: 9900 ldr r1, [sp, #0]
|
|
3154: 0020 movs r0, r4
|
|
3156: 47b8 blx r7
|
|
3158: 4680 mov r8, r0
|
|
style_list->skip_trans = 0;
|
|
315a: 7973 ldrb r3, [r6, #5]
|
|
315c: 2204 movs r2, #4
|
|
315e: 4393 bics r3, r2
|
|
3160: 7173 strb r3, [r6, #5]
|
|
if(int1 == int2) return NULL;
|
|
3162: 9b07 ldr r3, [sp, #28]
|
|
3164: 4283 cmp r3, r0
|
|
3166: d04b beq.n 3200 <lv_obj_set_state+0x114>
|
|
obj->state = prev_state;
|
|
3168: 263d movs r6, #61 ; 0x3d
|
|
316a: 4653 mov r3, sl
|
|
316c: 55a3 strb r3, [r4, r6]
|
|
int1 = _lv_obj_get_style_int(obj, part, prop);
|
|
316e: 002a movs r2, r5
|
|
3170: 9900 ldr r1, [sp, #0]
|
|
3172: 0020 movs r0, r4
|
|
3174: 4bab ldr r3, [pc, #684] ; (3424 <lv_obj_set_state+0x338>)
|
|
3176: 4798 blx r3
|
|
3178: 0002 movs r2, r0
|
|
317a: 4681 mov r9, r0
|
|
obj->state = new_state;
|
|
317c: 465b mov r3, fp
|
|
317e: 55a3 strb r3, [r4, r6]
|
|
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
|
|
3180: 0029 movs r1, r5
|
|
3182: 9801 ldr r0, [sp, #4]
|
|
3184: 4ba8 ldr r3, [pc, #672] ; (3428 <lv_obj_set_state+0x33c>)
|
|
3186: 4798 blx r3
|
|
if(prop == LV_STYLE_RADIUS) {
|
|
3188: 2d01 cmp r5, #1
|
|
318a: d100 bne.n 318e <lv_obj_set_state+0xa2>
|
|
318c: e094 b.n 32b8 <lv_obj_set_state+0x1cc>
|
|
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
|
|
318e: 48a7 ldr r0, [pc, #668] ; (342c <lv_obj_set_state+0x340>)
|
|
3190: 4ba7 ldr r3, [pc, #668] ; (3430 <lv_obj_set_state+0x344>)
|
|
3192: 4798 blx r3
|
|
3194: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(tr);
|
|
3196: 4ba0 ldr r3, [pc, #640] ; (3418 <lv_obj_set_state+0x32c>)
|
|
3198: 4798 blx r3
|
|
319a: 2800 cmp r0, #0
|
|
319c: d100 bne.n 31a0 <lv_obj_set_state+0xb4>
|
|
319e: e0a0 b.n 32e2 <lv_obj_set_state+0x1f6>
|
|
if(tr == NULL) return NULL;
|
|
31a0: 2e00 cmp r6, #0
|
|
31a2: d02d beq.n 3200 <lv_obj_set_state+0x114>
|
|
tr->start_value._int = int1;
|
|
31a4: 464b mov r3, r9
|
|
31a6: 8133 strh r3, [r6, #8]
|
|
tr->end_value._int = int2;
|
|
31a8: 4643 mov r3, r8
|
|
31aa: 81b3 strh r3, [r6, #12]
|
|
tr->obj = obj;
|
|
31ac: 6034 str r4, [r6, #0]
|
|
tr->prop = props[i];
|
|
31ae: 80b5 strh r5, [r6, #4]
|
|
tr->part = part;
|
|
31b0: 466b mov r3, sp
|
|
31b2: 781b ldrb r3, [r3, #0]
|
|
31b4: 71b3 strb r3, [r6, #6]
|
|
lv_anim_init(&a);
|
|
31b6: a80c add r0, sp, #48 ; 0x30
|
|
31b8: 4b9e ldr r3, [pc, #632] ; (3434 <lv_obj_set_state+0x348>)
|
|
31ba: 4798 blx r3
|
|
* @param a pointer to an initialized `lv_anim_t` variable
|
|
* @param var pointer to a variable to animate
|
|
*/
|
|
static inline void lv_anim_set_var(lv_anim_t * a, void * var)
|
|
{
|
|
a->var = var;
|
|
31bc: 960c str r6, [sp, #48] ; 0x30
|
|
* 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;
|
|
31be: 4b9e ldr r3, [pc, #632] ; (3438 <lv_obj_set_state+0x34c>)
|
|
31c0: 930d str r3, [sp, #52] ; 0x34
|
|
* @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;
|
|
31c2: 4b9e ldr r3, [pc, #632] ; (343c <lv_obj_set_state+0x350>)
|
|
31c4: 930e str r3, [sp, #56] ; 0x38
|
|
* @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;
|
|
31c6: 4b9e ldr r3, [pc, #632] ; (3440 <lv_obj_set_state+0x354>)
|
|
31c8: 930f str r3, [sp, #60] ; 0x3c
|
|
a->start = start;
|
|
31ca: 2300 movs r3, #0
|
|
31cc: 9312 str r3, [sp, #72] ; 0x48
|
|
a->end = end;
|
|
31ce: 33ff adds r3, #255 ; 0xff
|
|
31d0: 9313 str r3, [sp, #76] ; 0x4c
|
|
lv_anim_set_time(&a, time);
|
|
31d2: 9b06 ldr r3, [sp, #24]
|
|
31d4: 9314 str r3, [sp, #80] ; 0x50
|
|
a->act_time = (int32_t)(-delay);
|
|
31d6: 9b05 ldr r3, [sp, #20]
|
|
31d8: 425b negs r3, r3
|
|
31da: 9315 str r3, [sp, #84] ; 0x54
|
|
31dc: 9b04 ldr r3, [sp, #16]
|
|
31de: 0018 movs r0, r3
|
|
31e0: 3008 adds r0, #8
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
31e2: aa10 add r2, sp, #64 ; 0x40
|
|
*d8 = *s8;
|
|
31e4: 7819 ldrb r1, [r3, #0]
|
|
31e6: 7011 strb r1, [r2, #0]
|
|
d8++;
|
|
31e8: 3201 adds r2, #1
|
|
s8++;
|
|
31ea: 3301 adds r3, #1
|
|
while(len) {
|
|
31ec: 4283 cmp r3, r0
|
|
31ee: d1f9 bne.n 31e4 <lv_obj_set_state+0xf8>
|
|
a.early_apply = 0;
|
|
31f0: a80c add r0, sp, #48 ; 0x30
|
|
31f2: 2236 movs r2, #54 ; 0x36
|
|
31f4: 5c83 ldrb r3, [r0, r2]
|
|
31f6: 2101 movs r1, #1
|
|
31f8: 438b bics r3, r1
|
|
31fa: 5483 strb r3, [r0, r2]
|
|
lv_anim_start(&a);
|
|
31fc: 4b91 ldr r3, [pc, #580] ; (3444 <lv_obj_set_state+0x358>)
|
|
31fe: 4798 blx r3
|
|
3200: 9b02 ldr r3, [sp, #8]
|
|
3202: 3302 adds r3, #2
|
|
3204: 9302 str r3, [sp, #8]
|
|
for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) {
|
|
3206: 2b0c cmp r3, #12
|
|
3208: d100 bne.n 320c <lv_obj_set_state+0x120>
|
|
320a: e137 b.n 347c <lv_obj_set_state+0x390>
|
|
if(props[i] != 0) {
|
|
320c: ab09 add r3, sp, #36 ; 0x24
|
|
320e: 9a02 ldr r2, [sp, #8]
|
|
3210: 5ad5 ldrh r5, [r2, r3]
|
|
3212: 2d00 cmp r5, #0
|
|
3214: d0f4 beq.n 3200 <lv_obj_set_state+0x114>
|
|
_lv_style_list_add_trans_style(style_list);
|
|
3216: 9803 ldr r0, [sp, #12]
|
|
3218: 4b8b ldr r3, [pc, #556] ; (3448 <lv_obj_set_state+0x35c>)
|
|
321a: 4798 blx r3
|
|
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
|
|
321c: 9900 ldr r1, [sp, #0]
|
|
321e: 0020 movs r0, r4
|
|
3220: 4b8a ldr r3, [pc, #552] ; (344c <lv_obj_set_state+0x360>)
|
|
3222: 4798 blx r3
|
|
3224: 0006 movs r6, r0
|
|
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
|
|
3226: 4b8a ldr r3, [pc, #552] ; (3450 <lv_obj_set_state+0x364>)
|
|
3228: 4798 blx r3
|
|
322a: 9001 str r0, [sp, #4]
|
|
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
|
|
322c: 230f movs r3, #15
|
|
322e: 402b ands r3, r5
|
|
3230: 2b08 cmp r3, #8
|
|
3232: dc00 bgt.n 3236 <lv_obj_set_state+0x14a>
|
|
3234: e77b b.n 312e <lv_obj_set_state+0x42>
|
|
else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
|
|
3236: 2b0b cmp r3, #11
|
|
3238: dd59 ble.n 32ee <lv_obj_set_state+0x202>
|
|
else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
|
|
323a: 2b0d cmp r3, #13
|
|
323c: dd00 ble.n 3240 <lv_obj_set_state+0x154>
|
|
323e: e0a3 b.n 3388 <lv_obj_set_state+0x29c>
|
|
style_list->skip_trans = 1;
|
|
3240: 7973 ldrb r3, [r6, #5]
|
|
3242: 2204 movs r2, #4
|
|
3244: 4313 orrs r3, r2
|
|
3246: 7173 strb r3, [r6, #5]
|
|
obj->state = prev_state;
|
|
3248: 233d movs r3, #61 ; 0x3d
|
|
324a: 4699 mov r9, r3
|
|
324c: 4652 mov r2, sl
|
|
324e: 54e2 strb r2, [r4, r3]
|
|
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
|
|
3250: 002a movs r2, r5
|
|
3252: 9900 ldr r1, [sp, #0]
|
|
3254: 0020 movs r0, r4
|
|
3256: 4f7f ldr r7, [pc, #508] ; (3454 <lv_obj_set_state+0x368>)
|
|
3258: 47b8 blx r7
|
|
325a: 4680 mov r8, r0
|
|
obj->state = new_state;
|
|
325c: 464b mov r3, r9
|
|
325e: 465a mov r2, fp
|
|
3260: 54e2 strb r2, [r4, r3]
|
|
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
|
|
3262: 002a movs r2, r5
|
|
3264: 9900 ldr r1, [sp, #0]
|
|
3266: 0020 movs r0, r4
|
|
3268: 47b8 blx r7
|
|
326a: 0007 movs r7, r0
|
|
style_list->skip_trans = 0;
|
|
326c: 7973 ldrb r3, [r6, #5]
|
|
326e: 2204 movs r2, #4
|
|
3270: 4393 bics r3, r2
|
|
3272: 7173 strb r3, [r6, #5]
|
|
if(o1 == o2) return NULL;
|
|
3274: 4643 mov r3, r8
|
|
3276: 4283 cmp r3, r0
|
|
3278: d0c2 beq.n 3200 <lv_obj_set_state+0x114>
|
|
obj->state = prev_state;
|
|
327a: 263d movs r6, #61 ; 0x3d
|
|
327c: 4653 mov r3, sl
|
|
327e: 55a3 strb r3, [r4, r6]
|
|
o1 = _lv_obj_get_style_opa(obj, part, prop);
|
|
3280: 002a movs r2, r5
|
|
3282: 9900 ldr r1, [sp, #0]
|
|
3284: 0020 movs r0, r4
|
|
3286: 4b73 ldr r3, [pc, #460] ; (3454 <lv_obj_set_state+0x368>)
|
|
3288: 4798 blx r3
|
|
328a: 0002 movs r2, r0
|
|
328c: 9007 str r0, [sp, #28]
|
|
obj->state = new_state;
|
|
328e: 465b mov r3, fp
|
|
3290: 55a3 strb r3, [r4, r6]
|
|
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
|
|
3292: 0029 movs r1, r5
|
|
3294: 9801 ldr r0, [sp, #4]
|
|
3296: 4b70 ldr r3, [pc, #448] ; (3458 <lv_obj_set_state+0x36c>)
|
|
3298: 4798 blx r3
|
|
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
|
|
329a: 4864 ldr r0, [pc, #400] ; (342c <lv_obj_set_state+0x340>)
|
|
329c: 4b64 ldr r3, [pc, #400] ; (3430 <lv_obj_set_state+0x344>)
|
|
329e: 4798 blx r3
|
|
32a0: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(tr);
|
|
32a2: 4b5d ldr r3, [pc, #372] ; (3418 <lv_obj_set_state+0x32c>)
|
|
32a4: 4798 blx r3
|
|
32a6: 2800 cmp r0, #0
|
|
32a8: d068 beq.n 337c <lv_obj_set_state+0x290>
|
|
if(tr == NULL) return NULL;
|
|
32aa: 2e00 cmp r6, #0
|
|
32ac: d0a8 beq.n 3200 <lv_obj_set_state+0x114>
|
|
tr->start_value._opa = o1;
|
|
32ae: 466b mov r3, sp
|
|
32b0: 7f1b ldrb r3, [r3, #28]
|
|
32b2: 7233 strb r3, [r6, #8]
|
|
tr->end_value._opa = o2;
|
|
32b4: 7337 strb r7, [r6, #12]
|
|
32b6: e779 b.n 31ac <lv_obj_set_state+0xc0>
|
|
if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) {
|
|
32b8: 4b68 ldr r3, [pc, #416] ; (345c <lv_obj_set_state+0x370>)
|
|
32ba: 4599 cmp r9, r3
|
|
32bc: d100 bne.n 32c0 <lv_obj_set_state+0x1d4>
|
|
32be: e133 b.n 3528 <lv_obj_set_state+0x43c>
|
|
32c0: 4598 cmp r8, r3
|
|
32c2: d000 beq.n 32c6 <lv_obj_set_state+0x1da>
|
|
32c4: e763 b.n 318e <lv_obj_set_state+0xa2>
|
|
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
|
|
32c6: 0020 movs r0, r4
|
|
32c8: 4f65 ldr r7, [pc, #404] ; (3460 <lv_obj_set_state+0x374>)
|
|
32ca: 47b8 blx r7
|
|
32cc: 0fc6 lsrs r6, r0, #31
|
|
32ce: 1836 adds r6, r6, r0
|
|
32d0: 1076 asrs r6, r6, #1
|
|
32d2: b236 sxth r6, r6
|
|
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
|
|
32d4: 0020 movs r0, r4
|
|
32d6: 47b8 blx r7
|
|
32d8: 0fc3 lsrs r3, r0, #31
|
|
32da: 181b adds r3, r3, r0
|
|
32dc: 105b asrs r3, r3, #1
|
|
32de: b21b sxth r3, r3
|
|
32e0: e13a b.n 3558 <lv_obj_set_state+0x46c>
|
|
LV_ASSERT_MEM(tr);
|
|
32e2: 0032 movs r2, r6
|
|
32e4: 2300 movs r3, #0
|
|
32e6: 485f ldr r0, [pc, #380] ; (3464 <lv_obj_set_state+0x378>)
|
|
32e8: 494d ldr r1, [pc, #308] ; (3420 <lv_obj_set_state+0x334>)
|
|
32ea: 4788 blx r1
|
|
32ec: e7fe b.n 32ec <lv_obj_set_state+0x200>
|
|
style_list->skip_trans = 1;
|
|
32ee: 7973 ldrb r3, [r6, #5]
|
|
32f0: 2204 movs r2, #4
|
|
32f2: 4313 orrs r3, r2
|
|
32f4: 7173 strb r3, [r6, #5]
|
|
obj->state = prev_state;
|
|
32f6: 233d movs r3, #61 ; 0x3d
|
|
32f8: 4699 mov r9, r3
|
|
32fa: 4652 mov r2, sl
|
|
32fc: 54e2 strb r2, [r4, r3]
|
|
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
|
|
32fe: 002a movs r2, r5
|
|
3300: 9900 ldr r1, [sp, #0]
|
|
3302: 0020 movs r0, r4
|
|
3304: 4b58 ldr r3, [pc, #352] ; (3468 <lv_obj_set_state+0x37c>)
|
|
3306: 4698 mov r8, r3
|
|
3308: 4798 blx r3
|
|
330a: 1c07 adds r7, r0, #0
|
|
obj->state = new_state;
|
|
330c: 464b mov r3, r9
|
|
330e: 465a mov r2, fp
|
|
3310: 54e2 strb r2, [r4, r3]
|
|
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
|
|
3312: 002a movs r2, r5
|
|
3314: 9900 ldr r1, [sp, #0]
|
|
3316: 0020 movs r0, r4
|
|
3318: 47c0 blx r8
|
|
331a: 466b mov r3, sp
|
|
331c: 8398 strh r0, [r3, #28]
|
|
style_list->skip_trans = 0;
|
|
331e: 7973 ldrb r3, [r6, #5]
|
|
3320: 2204 movs r2, #4
|
|
3322: 4393 bics r3, r2
|
|
3324: 7173 strb r3, [r6, #5]
|
|
if(c1.full == c2.full) return NULL;
|
|
3326: b2bf uxth r7, r7
|
|
3328: b283 uxth r3, r0
|
|
332a: 429f cmp r7, r3
|
|
332c: d100 bne.n 3330 <lv_obj_set_state+0x244>
|
|
332e: e767 b.n 3200 <lv_obj_set_state+0x114>
|
|
obj->state = prev_state;
|
|
3330: 263d movs r6, #61 ; 0x3d
|
|
3332: 4653 mov r3, sl
|
|
3334: 55a3 strb r3, [r4, r6]
|
|
c1 = _lv_obj_get_style_color(obj, part, prop);
|
|
3336: 002a movs r2, r5
|
|
3338: 9900 ldr r1, [sp, #0]
|
|
333a: 0020 movs r0, r4
|
|
333c: 4b4a ldr r3, [pc, #296] ; (3468 <lv_obj_set_state+0x37c>)
|
|
333e: 4798 blx r3
|
|
3340: 1c07 adds r7, r0, #0
|
|
obj->state = new_state;
|
|
3342: 465b mov r3, fp
|
|
3344: 55a3 strb r3, [r4, r6]
|
|
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
|
|
3346: 1c02 adds r2, r0, #0
|
|
3348: 0029 movs r1, r5
|
|
334a: 9801 ldr r0, [sp, #4]
|
|
334c: 4b47 ldr r3, [pc, #284] ; (346c <lv_obj_set_state+0x380>)
|
|
334e: 4798 blx r3
|
|
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
|
|
3350: 4836 ldr r0, [pc, #216] ; (342c <lv_obj_set_state+0x340>)
|
|
3352: 4b37 ldr r3, [pc, #220] ; (3430 <lv_obj_set_state+0x344>)
|
|
3354: 4798 blx r3
|
|
3356: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(tr);
|
|
3358: 4b2f ldr r3, [pc, #188] ; (3418 <lv_obj_set_state+0x32c>)
|
|
335a: 4798 blx r3
|
|
335c: 2800 cmp r0, #0
|
|
335e: d007 beq.n 3370 <lv_obj_set_state+0x284>
|
|
if(tr == NULL) return NULL;
|
|
3360: 2e00 cmp r6, #0
|
|
3362: d100 bne.n 3366 <lv_obj_set_state+0x27a>
|
|
3364: e74c b.n 3200 <lv_obj_set_state+0x114>
|
|
tr->start_value._color = c1;
|
|
3366: 8137 strh r7, [r6, #8]
|
|
tr->end_value._color = c2;
|
|
3368: 466b mov r3, sp
|
|
336a: 8b9b ldrh r3, [r3, #28]
|
|
336c: 81b3 strh r3, [r6, #12]
|
|
336e: e71d b.n 31ac <lv_obj_set_state+0xc0>
|
|
LV_ASSERT_MEM(tr);
|
|
3370: 0032 movs r2, r6
|
|
3372: 2300 movs r3, #0
|
|
3374: 483b ldr r0, [pc, #236] ; (3464 <lv_obj_set_state+0x378>)
|
|
3376: 492a ldr r1, [pc, #168] ; (3420 <lv_obj_set_state+0x334>)
|
|
3378: 4788 blx r1
|
|
337a: e7fe b.n 337a <lv_obj_set_state+0x28e>
|
|
LV_ASSERT_MEM(tr);
|
|
337c: 0032 movs r2, r6
|
|
337e: 2300 movs r3, #0
|
|
3380: 4838 ldr r0, [pc, #224] ; (3464 <lv_obj_set_state+0x378>)
|
|
3382: 4927 ldr r1, [pc, #156] ; (3420 <lv_obj_set_state+0x334>)
|
|
3384: 4788 blx r1
|
|
3386: e7fe b.n 3386 <lv_obj_set_state+0x29a>
|
|
obj->state = prev_state;
|
|
3388: 233d movs r3, #61 ; 0x3d
|
|
338a: 4699 mov r9, r3
|
|
338c: 4652 mov r2, sl
|
|
338e: 54e2 strb r2, [r4, r3]
|
|
style_list->skip_trans = 1;
|
|
3390: 7973 ldrb r3, [r6, #5]
|
|
3392: 2204 movs r2, #4
|
|
3394: 4313 orrs r3, r2
|
|
3396: 7173 strb r3, [r6, #5]
|
|
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
|
|
3398: 002a movs r2, r5
|
|
339a: 9900 ldr r1, [sp, #0]
|
|
339c: 0020 movs r0, r4
|
|
339e: 4f34 ldr r7, [pc, #208] ; (3470 <lv_obj_set_state+0x384>)
|
|
33a0: 47b8 blx r7
|
|
33a2: 9008 str r0, [sp, #32]
|
|
obj->state = new_state;
|
|
33a4: 464b mov r3, r9
|
|
33a6: 465a mov r2, fp
|
|
33a8: 54e2 strb r2, [r4, r3]
|
|
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
|
|
33aa: 002a movs r2, r5
|
|
33ac: 9900 ldr r1, [sp, #0]
|
|
33ae: 0020 movs r0, r4
|
|
33b0: 47b8 blx r7
|
|
33b2: 0007 movs r7, r0
|
|
33b4: 900c str r0, [sp, #48] ; 0x30
|
|
style_list->skip_trans = 0;
|
|
33b6: 7973 ldrb r3, [r6, #5]
|
|
33b8: 2204 movs r2, #4
|
|
33ba: 4393 bics r3, r2
|
|
33bc: 7173 strb r3, [r6, #5]
|
|
if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL;
|
|
33be: a90c add r1, sp, #48 ; 0x30
|
|
33c0: a808 add r0, sp, #32
|
|
33c2: 4b2c ldr r3, [pc, #176] ; (3474 <lv_obj_set_state+0x388>)
|
|
33c4: 4798 blx r3
|
|
33c6: 2800 cmp r0, #0
|
|
33c8: d100 bne.n 33cc <lv_obj_set_state+0x2e0>
|
|
33ca: e719 b.n 3200 <lv_obj_set_state+0x114>
|
|
obj->state = prev_state;
|
|
33cc: 263d movs r6, #61 ; 0x3d
|
|
33ce: 4653 mov r3, sl
|
|
33d0: 55a3 strb r3, [r4, r6]
|
|
p1 = _lv_obj_get_style_ptr(obj, part, prop);
|
|
33d2: 002a movs r2, r5
|
|
33d4: 9900 ldr r1, [sp, #0]
|
|
33d6: 0020 movs r0, r4
|
|
33d8: 4b25 ldr r3, [pc, #148] ; (3470 <lv_obj_set_state+0x384>)
|
|
33da: 4798 blx r3
|
|
33dc: 4681 mov r9, r0
|
|
33de: 9008 str r0, [sp, #32]
|
|
obj->state = new_state;
|
|
33e0: 465b mov r3, fp
|
|
33e2: 55a3 strb r3, [r4, r6]
|
|
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
|
|
33e4: 0002 movs r2, r0
|
|
33e6: 0029 movs r1, r5
|
|
33e8: 9801 ldr r0, [sp, #4]
|
|
33ea: 4b23 ldr r3, [pc, #140] ; (3478 <lv_obj_set_state+0x38c>)
|
|
33ec: 4798 blx r3
|
|
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
|
|
33ee: 480f ldr r0, [pc, #60] ; (342c <lv_obj_set_state+0x340>)
|
|
33f0: 4b0f ldr r3, [pc, #60] ; (3430 <lv_obj_set_state+0x344>)
|
|
33f2: 4798 blx r3
|
|
33f4: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(tr);
|
|
33f6: 4b08 ldr r3, [pc, #32] ; (3418 <lv_obj_set_state+0x32c>)
|
|
33f8: 4798 blx r3
|
|
33fa: 2800 cmp r0, #0
|
|
33fc: d006 beq.n 340c <lv_obj_set_state+0x320>
|
|
if(tr == NULL) return NULL;
|
|
33fe: 2e00 cmp r6, #0
|
|
3400: d100 bne.n 3404 <lv_obj_set_state+0x318>
|
|
3402: e6fd b.n 3200 <lv_obj_set_state+0x114>
|
|
tr->start_value._ptr = p1;
|
|
3404: 464b mov r3, r9
|
|
3406: 60b3 str r3, [r6, #8]
|
|
tr->end_value._ptr = p2;
|
|
3408: 60f7 str r7, [r6, #12]
|
|
340a: e6cf b.n 31ac <lv_obj_set_state+0xc0>
|
|
LV_ASSERT_MEM(tr);
|
|
340c: 0032 movs r2, r6
|
|
340e: 2300 movs r3, #0
|
|
3410: 4814 ldr r0, [pc, #80] ; (3464 <lv_obj_set_state+0x378>)
|
|
3412: 4903 ldr r1, [pc, #12] ; (3420 <lv_obj_set_state+0x334>)
|
|
3414: 4788 blx r1
|
|
3416: e7fe b.n 3416 <lv_obj_set_state+0x32a>
|
|
3418: 0000147d .word 0x0000147d
|
|
341c: 0001878c .word 0x0001878c
|
|
3420: 00001485 .word 0x00001485
|
|
3424: 00002db1 .word 0x00002db1
|
|
3428: 00004cf5 .word 0x00004cf5
|
|
342c: 20004d68 .word 0x20004d68
|
|
3430: 000105cd .word 0x000105cd
|
|
3434: 0000fa4d .word 0x0000fa4d
|
|
3438: 00002799 .word 0x00002799
|
|
343c: 00003079 .word 0x00003079
|
|
3440: 00001e01 .word 0x00001e01
|
|
3444: 0000fb0d .word 0x0000fb0d
|
|
3448: 00005769 .word 0x00005769
|
|
344c: 00001cf9 .word 0x00001cf9
|
|
3450: 00005621 .word 0x00005621
|
|
3454: 00002f15 .word 0x00002f15
|
|
3458: 00004fb5 .word 0x00004fb5
|
|
345c: 00007fff .word 0x00007fff
|
|
3460: 00001c99 .word 0x00001c99
|
|
3464: 00018724 .word 0x00018724
|
|
3468: 00002e71 .word 0x00002e71
|
|
346c: 00004e55 .word 0x00004e55
|
|
3470: 00002fc1 .word 0x00002fc1
|
|
3474: 00017e1d .word 0x00017e1d
|
|
3478: 00005109 .word 0x00005109
|
|
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
|
|
347c: 9b00 ldr r3, [sp, #0]
|
|
347e: 3301 adds r3, #1
|
|
3480: b2db uxtb r3, r3
|
|
3482: 9300 str r3, [sp, #0]
|
|
3484: 2b40 cmp r3, #64 ; 0x40
|
|
3486: d044 beq.n 3512 <lv_obj_set_state+0x426>
|
|
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
|
|
3488: 9900 ldr r1, [sp, #0]
|
|
348a: 0020 movs r0, r4
|
|
348c: 4b36 ldr r3, [pc, #216] ; (3568 <lv_obj_set_state+0x47c>)
|
|
348e: 4798 blx r3
|
|
3490: 9003 str r0, [sp, #12]
|
|
if(style_list == NULL) break; /*No more style lists*/
|
|
3492: 2800 cmp r0, #0
|
|
3494: d03d beq.n 3512 <lv_obj_set_state+0x426>
|
|
if(style_list->ignore_trans) continue;
|
|
3496: 7943 ldrb r3, [r0, #5]
|
|
3498: 071b lsls r3, r3, #28
|
|
349a: d4ef bmi.n 347c <lv_obj_set_state+0x390>
|
|
_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)
|
|
349c: 22b0 movs r2, #176 ; 0xb0
|
|
349e: 9e00 ldr r6, [sp, #0]
|
|
34a0: 0031 movs r1, r6
|
|
34a2: 0020 movs r0, r4
|
|
34a4: 4b31 ldr r3, [pc, #196] ; (356c <lv_obj_set_state+0x480>)
|
|
34a6: 4798 blx r3
|
|
34a8: 9006 str r0, [sp, #24]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
|
|
34aa: 22b1 movs r2, #177 ; 0xb1
|
|
34ac: 0031 movs r1, r6
|
|
34ae: 0020 movs r0, r4
|
|
34b0: 4b2e ldr r3, [pc, #184] ; (356c <lv_obj_set_state+0x480>)
|
|
34b2: 4798 blx r3
|
|
34b4: 9005 str r0, [sp, #20]
|
|
_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)
|
|
34b6: 22be movs r2, #190 ; 0xbe
|
|
34b8: 0031 movs r1, r6
|
|
34ba: 0020 movs r0, r4
|
|
34bc: 4b2c ldr r3, [pc, #176] ; (3570 <lv_obj_set_state+0x484>)
|
|
34be: 4798 blx r3
|
|
34c0: 9004 str r0, [sp, #16]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
|
|
34c2: 22b2 movs r2, #178 ; 0xb2
|
|
34c4: 0031 movs r1, r6
|
|
34c6: 0020 movs r0, r4
|
|
34c8: 4b28 ldr r3, [pc, #160] ; (356c <lv_obj_set_state+0x480>)
|
|
34ca: 4798 blx r3
|
|
props[0] = lv_obj_get_style_transition_prop_1(obj, part);
|
|
34cc: ad09 add r5, sp, #36 ; 0x24
|
|
34ce: 8028 strh r0, [r5, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
|
|
34d0: 22b3 movs r2, #179 ; 0xb3
|
|
34d2: 0031 movs r1, r6
|
|
34d4: 0020 movs r0, r4
|
|
34d6: 4b25 ldr r3, [pc, #148] ; (356c <lv_obj_set_state+0x480>)
|
|
34d8: 4798 blx r3
|
|
props[1] = lv_obj_get_style_transition_prop_2(obj, part);
|
|
34da: 8068 strh r0, [r5, #2]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
|
|
34dc: 22b4 movs r2, #180 ; 0xb4
|
|
34de: 0031 movs r1, r6
|
|
34e0: 0020 movs r0, r4
|
|
34e2: 4b22 ldr r3, [pc, #136] ; (356c <lv_obj_set_state+0x480>)
|
|
34e4: 4798 blx r3
|
|
props[2] = lv_obj_get_style_transition_prop_3(obj, part);
|
|
34e6: 80a8 strh r0, [r5, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
|
|
34e8: 22b5 movs r2, #181 ; 0xb5
|
|
34ea: 0031 movs r1, r6
|
|
34ec: 0020 movs r0, r4
|
|
34ee: 4b1f ldr r3, [pc, #124] ; (356c <lv_obj_set_state+0x480>)
|
|
34f0: 4798 blx r3
|
|
props[3] = lv_obj_get_style_transition_prop_4(obj, part);
|
|
34f2: 80e8 strh r0, [r5, #6]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
|
|
34f4: 22b6 movs r2, #182 ; 0xb6
|
|
34f6: 0031 movs r1, r6
|
|
34f8: 0020 movs r0, r4
|
|
34fa: 4b1c ldr r3, [pc, #112] ; (356c <lv_obj_set_state+0x480>)
|
|
34fc: 4798 blx r3
|
|
props[4] = lv_obj_get_style_transition_prop_5(obj, part);
|
|
34fe: 8128 strh r0, [r5, #8]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
3500: 22b7 movs r2, #183 ; 0xb7
|
|
3502: 0031 movs r1, r6
|
|
3504: 0020 movs r0, r4
|
|
3506: 4b19 ldr r3, [pc, #100] ; (356c <lv_obj_set_state+0x480>)
|
|
3508: 4798 blx r3
|
|
props[5] = lv_obj_get_style_transition_prop_6(obj, part);
|
|
350a: 8168 strh r0, [r5, #10]
|
|
350c: 2300 movs r3, #0
|
|
350e: 9302 str r3, [sp, #8]
|
|
3510: e67c b.n 320c <lv_obj_set_state+0x120>
|
|
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
|
|
3512: 21ff movs r1, #255 ; 0xff
|
|
3514: 0020 movs r0, r4
|
|
3516: 4b17 ldr r3, [pc, #92] ; (3574 <lv_obj_set_state+0x488>)
|
|
3518: 4798 blx r3
|
|
}
|
|
351a: b01d add sp, #116 ; 0x74
|
|
351c: bc3c pop {r2, r3, r4, r5}
|
|
351e: 4690 mov r8, r2
|
|
3520: 4699 mov r9, r3
|
|
3522: 46a2 mov sl, r4
|
|
3524: 46ab mov fp, r5
|
|
3526: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
|
|
3528: 0020 movs r0, r4
|
|
352a: 4f13 ldr r7, [pc, #76] ; (3578 <lv_obj_set_state+0x48c>)
|
|
352c: 47b8 blx r7
|
|
352e: 0fc6 lsrs r6, r0, #31
|
|
3530: 1836 adds r6, r6, r0
|
|
3532: 1076 asrs r6, r6, #1
|
|
3534: b236 sxth r6, r6
|
|
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
|
|
3536: 0020 movs r0, r4
|
|
3538: 47b8 blx r7
|
|
353a: 0fc3 lsrs r3, r0, #31
|
|
353c: 181b adds r3, r3, r0
|
|
353e: 105b asrs r3, r3, #1
|
|
3540: b21b sxth r3, r3
|
|
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
|
|
3542: 1c71 adds r1, r6, #1
|
|
3544: 1c5a adds r2, r3, #1
|
|
3546: 428a cmp r2, r1
|
|
3548: dd00 ble.n 354c <lv_obj_set_state+0x460>
|
|
354a: 000a movs r2, r1
|
|
354c: b212 sxth r2, r2
|
|
354e: 4691 mov r9, r2
|
|
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
|
|
3550: 4a0a ldr r2, [pc, #40] ; (357c <lv_obj_set_state+0x490>)
|
|
3552: 4590 cmp r8, r2
|
|
3554: d000 beq.n 3558 <lv_obj_set_state+0x46c>
|
|
3556: e61a b.n 318e <lv_obj_set_state+0xa2>
|
|
3558: 3601 adds r6, #1
|
|
355a: 3301 adds r3, #1
|
|
355c: 42b3 cmp r3, r6
|
|
355e: dd00 ble.n 3562 <lv_obj_set_state+0x476>
|
|
3560: 0033 movs r3, r6
|
|
3562: b21b sxth r3, r3
|
|
3564: 4698 mov r8, r3
|
|
3566: e612 b.n 318e <lv_obj_set_state+0xa2>
|
|
3568: 00001cf9 .word 0x00001cf9
|
|
356c: 00002db1 .word 0x00002db1
|
|
3570: 00002fc1 .word 0x00002fc1
|
|
3574: 0000258d .word 0x0000258d
|
|
3578: 00001c99 .word 0x00001c99
|
|
357c: 00007fff .word 0x00007fff
|
|
|
|
00003580 <lv_obj_add_state>:
|
|
{
|
|
3580: b570 push {r4, r5, r6, lr}
|
|
3582: 0004 movs r4, r0
|
|
3584: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3586: 4b0a ldr r3, [pc, #40] ; (35b0 <lv_obj_add_state+0x30>)
|
|
3588: 4798 blx r3
|
|
358a: 2800 cmp r0, #0
|
|
358c: d009 beq.n 35a2 <lv_obj_add_state+0x22>
|
|
lv_state_t new_state = obj->state | state;
|
|
358e: 233d movs r3, #61 ; 0x3d
|
|
3590: 5ce3 ldrb r3, [r4, r3]
|
|
3592: 0029 movs r1, r5
|
|
3594: 4319 orrs r1, r3
|
|
if(obj->state != new_state) {
|
|
3596: 428b cmp r3, r1
|
|
3598: d002 beq.n 35a0 <lv_obj_add_state+0x20>
|
|
lv_obj_set_state(obj, new_state);
|
|
359a: 0020 movs r0, r4
|
|
359c: 4b05 ldr r3, [pc, #20] ; (35b4 <lv_obj_add_state+0x34>)
|
|
359e: 4798 blx r3
|
|
}
|
|
35a0: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
35a2: 0022 movs r2, r4
|
|
35a4: 2300 movs r3, #0
|
|
35a6: 4804 ldr r0, [pc, #16] ; (35b8 <lv_obj_add_state+0x38>)
|
|
35a8: 4904 ldr r1, [pc, #16] ; (35bc <lv_obj_add_state+0x3c>)
|
|
35aa: 4788 blx r1
|
|
35ac: e7fe b.n 35ac <lv_obj_add_state+0x2c>
|
|
35ae: 46c0 nop ; (mov r8, r8)
|
|
35b0: 0000147d .word 0x0000147d
|
|
35b4: 000030ed .word 0x000030ed
|
|
35b8: 0001878c .word 0x0001878c
|
|
35bc: 00001485 .word 0x00001485
|
|
|
|
000035c0 <lv_obj_clear_state>:
|
|
{
|
|
35c0: b570 push {r4, r5, r6, lr}
|
|
35c2: 0004 movs r4, r0
|
|
35c4: 000d movs r5, r1
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
35c6: 4b0a ldr r3, [pc, #40] ; (35f0 <lv_obj_clear_state+0x30>)
|
|
35c8: 4798 blx r3
|
|
35ca: 2800 cmp r0, #0
|
|
35cc: d009 beq.n 35e2 <lv_obj_clear_state+0x22>
|
|
lv_state_t new_state = obj->state & (~state);
|
|
35ce: 233d movs r3, #61 ; 0x3d
|
|
35d0: 5ce3 ldrb r3, [r4, r3]
|
|
35d2: 0019 movs r1, r3
|
|
35d4: 43a9 bics r1, r5
|
|
if(obj->state != new_state) {
|
|
35d6: 428b cmp r3, r1
|
|
35d8: d002 beq.n 35e0 <lv_obj_clear_state+0x20>
|
|
lv_obj_set_state(obj, new_state);
|
|
35da: 0020 movs r0, r4
|
|
35dc: 4b05 ldr r3, [pc, #20] ; (35f4 <lv_obj_clear_state+0x34>)
|
|
35de: 4798 blx r3
|
|
}
|
|
35e0: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
35e2: 0022 movs r2, r4
|
|
35e4: 2300 movs r3, #0
|
|
35e6: 4804 ldr r0, [pc, #16] ; (35f8 <lv_obj_clear_state+0x38>)
|
|
35e8: 4904 ldr r1, [pc, #16] ; (35fc <lv_obj_clear_state+0x3c>)
|
|
35ea: 4788 blx r1
|
|
35ec: e7fe b.n 35ec <lv_obj_clear_state+0x2c>
|
|
35ee: 46c0 nop ; (mov r8, r8)
|
|
35f0: 0000147d .word 0x0000147d
|
|
35f4: 000030ed .word 0x000030ed
|
|
35f8: 0001878c .word 0x0001878c
|
|
35fc: 00001485 .word 0x00001485
|
|
|
|
00003600 <lv_obj_get_group>:
|
|
{
|
|
3600: b510 push {r4, lr}
|
|
3602: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3604: 4b05 ldr r3, [pc, #20] ; (361c <lv_obj_get_group+0x1c>)
|
|
3606: 4798 blx r3
|
|
3608: 2800 cmp r0, #0
|
|
360a: d001 beq.n 3610 <lv_obj_get_group+0x10>
|
|
return obj->group_p;
|
|
360c: 6ba0 ldr r0, [r4, #56] ; 0x38
|
|
}
|
|
360e: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3610: 0022 movs r2, r4
|
|
3612: 2300 movs r3, #0
|
|
3614: 4802 ldr r0, [pc, #8] ; (3620 <lv_obj_get_group+0x20>)
|
|
3616: 4903 ldr r1, [pc, #12] ; (3624 <lv_obj_get_group+0x24>)
|
|
3618: 4788 blx r1
|
|
361a: e7fe b.n 361a <lv_obj_get_group+0x1a>
|
|
361c: 0000147d .word 0x0000147d
|
|
3620: 0001878c .word 0x0001878c
|
|
3624: 00001485 .word 0x00001485
|
|
|
|
00003628 <lv_obj_is_focused>:
|
|
{
|
|
3628: b510 push {r4, lr}
|
|
362a: 0004 movs r4, r0
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
362c: 4b0a ldr r3, [pc, #40] ; (3658 <lv_obj_is_focused+0x30>)
|
|
362e: 4798 blx r3
|
|
3630: 2800 cmp r0, #0
|
|
3632: d009 beq.n 3648 <lv_obj_is_focused+0x20>
|
|
if(obj->group_p) {
|
|
3634: 6ba0 ldr r0, [r4, #56] ; 0x38
|
|
3636: 2800 cmp r0, #0
|
|
3638: d00c beq.n 3654 <lv_obj_is_focused+0x2c>
|
|
if(lv_group_get_focused(obj->group_p) == obj) return true;
|
|
363a: 4b08 ldr r3, [pc, #32] ; (365c <lv_obj_is_focused+0x34>)
|
|
363c: 4798 blx r3
|
|
363e: 1a20 subs r0, r4, r0
|
|
3640: 4244 negs r4, r0
|
|
3642: 4160 adcs r0, r4
|
|
3644: b2c0 uxtb r0, r0
|
|
}
|
|
3646: bd10 pop {r4, pc}
|
|
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
|
3648: 0022 movs r2, r4
|
|
364a: 2300 movs r3, #0
|
|
364c: 4804 ldr r0, [pc, #16] ; (3660 <lv_obj_is_focused+0x38>)
|
|
364e: 4905 ldr r1, [pc, #20] ; (3664 <lv_obj_is_focused+0x3c>)
|
|
3650: 4788 blx r1
|
|
3652: e7fe b.n 3652 <lv_obj_is_focused+0x2a>
|
|
return false;
|
|
3654: 2000 movs r0, #0
|
|
3656: e7f6 b.n 3646 <lv_obj_is_focused+0x1e>
|
|
3658: 0000147d .word 0x0000147d
|
|
365c: 00001745 .word 0x00001745
|
|
3660: 0001878c .word 0x0001878c
|
|
3664: 00001485 .word 0x00001485
|
|
|
|
00003668 <lv_obj_handle_get_type_signal>:
|
|
{
|
|
3668: b510 push {r4, lr}
|
|
if(buf->type[i] == NULL) break;
|
|
366a: 6803 ldr r3, [r0, #0]
|
|
366c: 2b00 cmp r3, #0
|
|
366e: d00d beq.n 368c <lv_obj_handle_get_type_signal+0x24>
|
|
3670: 1d02 adds r2, r0, #4
|
|
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
|
|
3672: 2301 movs r3, #1
|
|
if(buf->type[i] == NULL) break;
|
|
3674: 6814 ldr r4, [r2, #0]
|
|
3676: 2c00 cmp r4, #0
|
|
3678: d004 beq.n 3684 <lv_obj_handle_get_type_signal+0x1c>
|
|
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
|
|
367a: 3301 adds r3, #1
|
|
367c: b2db uxtb r3, r3
|
|
367e: 3204 adds r2, #4
|
|
3680: 2b07 cmp r3, #7
|
|
3682: d1f7 bne.n 3674 <lv_obj_handle_get_type_signal+0xc>
|
|
buf->type[i] = name;
|
|
3684: 009b lsls r3, r3, #2
|
|
3686: 5019 str r1, [r3, r0]
|
|
}
|
|
3688: 2001 movs r0, #1
|
|
368a: bd10 pop {r4, pc}
|
|
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
|
|
368c: 2300 movs r3, #0
|
|
368e: e7f9 b.n 3684 <lv_obj_handle_get_type_signal+0x1c>
|
|
|
|
00003690 <lv_obj_init_draw_rect_dsc>:
|
|
{
|
|
3690: b5f0 push {r4, r5, r6, r7, lr}
|
|
3692: 46ce mov lr, r9
|
|
3694: b500 push {lr}
|
|
3696: b082 sub sp, #8
|
|
3698: 0005 movs r5, r0
|
|
369a: 000e movs r6, r1
|
|
369c: 0014 movs r4, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
369e: 2201 movs r2, #1
|
|
36a0: 4bc8 ldr r3, [pc, #800] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
36a2: 4798 blx r3
|
|
draw_dsc->radius = lv_obj_get_style_radius(obj, part);
|
|
36a4: 8020 strh r0, [r4, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
|
|
36a6: 4ac8 ldr r2, [pc, #800] ; (39c8 <lv_obj_init_draw_rect_dsc+0x338>)
|
|
36a8: 0031 movs r1, r6
|
|
36aa: 0028 movs r0, r5
|
|
36ac: 4bc7 ldr r3, [pc, #796] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
36ae: 4798 blx r3
|
|
36b0: 9001 str r0, [sp, #4]
|
|
36b2: 0007 movs r7, r0
|
|
if(opa_scale <= LV_OPA_MIN) {
|
|
36b4: 2805 cmp r0, #5
|
|
36b6: d935 bls.n 3724 <lv_obj_init_draw_rect_dsc+0x94>
|
|
if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
|
|
36b8: 7b23 ldrb r3, [r4, #12]
|
|
36ba: 2b00 cmp r3, #0
|
|
36bc: d13f bne.n 373e <lv_obj_init_draw_rect_dsc+0xae>
|
|
if(draw_dsc->border_opa != LV_OPA_TRANSP) {
|
|
36be: 7d23 ldrb r3, [r4, #20]
|
|
36c0: 2b00 cmp r3, #0
|
|
36c2: d000 beq.n 36c6 <lv_obj_init_draw_rect_dsc+0x36>
|
|
36c4: e06c b.n 37a0 <lv_obj_init_draw_rect_dsc+0x110>
|
|
if(draw_dsc->outline_opa != LV_OPA_TRANSP) {
|
|
36c6: 7f23 ldrb r3, [r4, #28]
|
|
36c8: 2b00 cmp r3, #0
|
|
36ca: d000 beq.n 36ce <lv_obj_init_draw_rect_dsc+0x3e>
|
|
36cc: e08f b.n 37ee <lv_obj_init_draw_rect_dsc+0x15e>
|
|
if(draw_dsc->pattern_opa != LV_OPA_TRANSP) {
|
|
36ce: 2336 movs r3, #54 ; 0x36
|
|
36d0: 5ce3 ldrb r3, [r4, r3]
|
|
36d2: 2b00 cmp r3, #0
|
|
36d4: d000 beq.n 36d8 <lv_obj_init_draw_rect_dsc+0x48>
|
|
36d6: e0af b.n 3838 <lv_obj_init_draw_rect_dsc+0x1a8>
|
|
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
|
|
36d8: 2328 movs r3, #40 ; 0x28
|
|
36da: 5ce3 ldrb r3, [r4, r3]
|
|
36dc: 2b05 cmp r3, #5
|
|
36de: d900 bls.n 36e2 <lv_obj_init_draw_rect_dsc+0x52>
|
|
36e0: e0f7 b.n 38d2 <lv_obj_init_draw_rect_dsc+0x242>
|
|
if(draw_dsc->value_opa > LV_OPA_MIN) {
|
|
36e2: 2344 movs r3, #68 ; 0x44
|
|
36e4: 5ce3 ldrb r3, [r4, r3]
|
|
36e6: 2b05 cmp r3, #5
|
|
36e8: d900 bls.n 36ec <lv_obj_init_draw_rect_dsc+0x5c>
|
|
36ea: e123 b.n 3934 <lv_obj_init_draw_rect_dsc+0x2a4>
|
|
if(opa_scale < LV_OPA_MAX) {
|
|
36ec: 2ff9 cmp r7, #249 ; 0xf9
|
|
36ee: d822 bhi.n 3736 <lv_obj_init_draw_rect_dsc+0xa6>
|
|
draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8;
|
|
36f0: 466b mov r3, sp
|
|
36f2: 889b ldrh r3, [r3, #4]
|
|
36f4: 7b22 ldrb r2, [r4, #12]
|
|
36f6: 435a muls r2, r3
|
|
36f8: 0a12 lsrs r2, r2, #8
|
|
36fa: 7322 strb r2, [r4, #12]
|
|
draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8;
|
|
36fc: 7d22 ldrb r2, [r4, #20]
|
|
36fe: 435a muls r2, r3
|
|
3700: 0a12 lsrs r2, r2, #8
|
|
3702: 7522 strb r2, [r4, #20]
|
|
draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8;
|
|
3704: 2128 movs r1, #40 ; 0x28
|
|
3706: 5c62 ldrb r2, [r4, r1]
|
|
3708: 435a muls r2, r3
|
|
370a: 0a12 lsrs r2, r2, #8
|
|
370c: 5462 strb r2, [r4, r1]
|
|
draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8;
|
|
370e: 310e adds r1, #14
|
|
3710: 5c62 ldrb r2, [r4, r1]
|
|
3712: 435a muls r2, r3
|
|
3714: 0a12 lsrs r2, r2, #8
|
|
3716: 5462 strb r2, [r4, r1]
|
|
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
|
|
3718: 2244 movs r2, #68 ; 0x44
|
|
371a: 5ca7 ldrb r7, [r4, r2]
|
|
371c: 435f muls r7, r3
|
|
371e: 0a3f lsrs r7, r7, #8
|
|
3720: 54a7 strb r7, [r4, r2]
|
|
3722: e008 b.n 3736 <lv_obj_init_draw_rect_dsc+0xa6>
|
|
draw_dsc->bg_opa = LV_OPA_TRANSP;
|
|
3724: 2300 movs r3, #0
|
|
3726: 7323 strb r3, [r4, #12]
|
|
draw_dsc->border_opa = LV_OPA_TRANSP;
|
|
3728: 7523 strb r3, [r4, #20]
|
|
draw_dsc->shadow_opa = LV_OPA_TRANSP;
|
|
372a: 2228 movs r2, #40 ; 0x28
|
|
372c: 54a3 strb r3, [r4, r2]
|
|
draw_dsc->pattern_opa = LV_OPA_TRANSP;
|
|
372e: 320e adds r2, #14
|
|
3730: 54a3 strb r3, [r4, r2]
|
|
draw_dsc->value_opa = LV_OPA_TRANSP;
|
|
3732: 320e adds r2, #14
|
|
3734: 54a3 strb r3, [r4, r2]
|
|
}
|
|
3736: b002 add sp, #8
|
|
3738: bc04 pop {r2}
|
|
373a: 4691 mov r9, r2
|
|
373c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
373e: 222c movs r2, #44 ; 0x2c
|
|
3740: 0031 movs r1, r6
|
|
3742: 0028 movs r0, r5
|
|
3744: 4ba1 ldr r3, [pc, #644] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
3746: 4798 blx r3
|
|
draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
|
|
3748: 7320 strb r0, [r4, #12]
|
|
if(draw_dsc->bg_opa > LV_OPA_MIN) {
|
|
374a: 2805 cmp r0, #5
|
|
374c: d9b7 bls.n 36be <lv_obj_init_draw_rect_dsc+0x2e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
374e: 2229 movs r2, #41 ; 0x29
|
|
3750: 0031 movs r1, r6
|
|
3752: 0028 movs r0, r5
|
|
3754: 4b9e ldr r3, [pc, #632] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
3756: 4798 blx r3
|
|
draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part);
|
|
3758: 8060 strh r0, [r4, #2]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
|
|
375a: 2223 movs r2, #35 ; 0x23
|
|
375c: 0031 movs r1, r6
|
|
375e: 0028 movs r0, r5
|
|
3760: 4b98 ldr r3, [pc, #608] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3762: 4798 blx r3
|
|
3764: b2c0 uxtb r0, r0
|
|
draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part);
|
|
3766: 71a0 strb r0, [r4, #6]
|
|
if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) {
|
|
3768: 2800 cmp r0, #0
|
|
376a: d106 bne.n 377a <lv_obj_init_draw_rect_dsc+0xea>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
376c: 2220 movs r2, #32
|
|
376e: 0031 movs r1, r6
|
|
3770: 0028 movs r0, r5
|
|
3772: 4b94 ldr r3, [pc, #592] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3774: 4798 blx r3
|
|
draw_dsc->bg_blend_mode = lv_obj_get_style_bg_blend_mode(obj, part);
|
|
3776: 7360 strb r0, [r4, #13]
|
|
3778: e7a1 b.n 36be <lv_obj_init_draw_rect_dsc+0x2e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
|
|
377a: 222a movs r2, #42 ; 0x2a
|
|
377c: 0031 movs r1, r6
|
|
377e: 0028 movs r0, r5
|
|
3780: 4b93 ldr r3, [pc, #588] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
3782: 4798 blx r3
|
|
draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part);
|
|
3784: 80a0 strh r0, [r4, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
|
|
3786: 2221 movs r2, #33 ; 0x21
|
|
3788: 0031 movs r1, r6
|
|
378a: 0028 movs r0, r5
|
|
378c: 4b8d ldr r3, [pc, #564] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
378e: 4699 mov r9, r3
|
|
3790: 4798 blx r3
|
|
draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part);
|
|
3792: 8120 strh r0, [r4, #8]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
|
|
3794: 2222 movs r2, #34 ; 0x22
|
|
3796: 0031 movs r1, r6
|
|
3798: 0028 movs r0, r5
|
|
379a: 47c8 blx r9
|
|
draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part);
|
|
379c: 8160 strh r0, [r4, #10]
|
|
379e: e7e5 b.n 376c <lv_obj_init_draw_rect_dsc+0xdc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
37a0: 2230 movs r2, #48 ; 0x30
|
|
37a2: 0031 movs r1, r6
|
|
37a4: 0028 movs r0, r5
|
|
37a6: 4b87 ldr r3, [pc, #540] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
37a8: 4798 blx r3
|
|
draw_dsc->border_width = lv_obj_get_style_border_width(obj, part);
|
|
37aa: 8220 strh r0, [r4, #16]
|
|
if(draw_dsc->border_width) {
|
|
37ac: 2800 cmp r0, #0
|
|
37ae: d100 bne.n 37b2 <lv_obj_init_draw_rect_dsc+0x122>
|
|
37b0: e789 b.n 36c6 <lv_obj_init_draw_rect_dsc+0x36>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
|
|
37b2: 223c movs r2, #60 ; 0x3c
|
|
37b4: 0031 movs r1, r6
|
|
37b6: 0028 movs r0, r5
|
|
37b8: 4b84 ldr r3, [pc, #528] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
37ba: 4798 blx r3
|
|
draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part);
|
|
37bc: 7520 strb r0, [r4, #20]
|
|
if(draw_dsc->border_opa > LV_OPA_MIN) {
|
|
37be: 2805 cmp r0, #5
|
|
37c0: d806 bhi.n 37d0 <lv_obj_init_draw_rect_dsc+0x140>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
37c2: 2232 movs r2, #50 ; 0x32
|
|
37c4: 0031 movs r1, r6
|
|
37c6: 0028 movs r0, r5
|
|
37c8: 4b7e ldr r3, [pc, #504] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
37ca: 4798 blx r3
|
|
draw_dsc->border_blend_mode = lv_obj_get_style_border_blend_mode(obj, part);
|
|
37cc: 7560 strb r0, [r4, #21]
|
|
37ce: e77a b.n 36c6 <lv_obj_init_draw_rect_dsc+0x36>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
37d0: 2231 movs r2, #49 ; 0x31
|
|
37d2: 0031 movs r1, r6
|
|
37d4: 0028 movs r0, r5
|
|
37d6: 4b7b ldr r3, [pc, #492] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
37d8: 4798 blx r3
|
|
draw_dsc->border_side = lv_obj_get_style_border_side(obj, part);
|
|
37da: 23ff movs r3, #255 ; 0xff
|
|
37dc: 4018 ands r0, r3
|
|
37de: 8260 strh r0, [r4, #18]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
37e0: 2239 movs r2, #57 ; 0x39
|
|
37e2: 0031 movs r1, r6
|
|
37e4: 0028 movs r0, r5
|
|
37e6: 4b7a ldr r3, [pc, #488] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
37e8: 4798 blx r3
|
|
draw_dsc->border_color = lv_obj_get_style_border_color(obj, part);
|
|
37ea: 81e0 strh r0, [r4, #14]
|
|
37ec: e7e9 b.n 37c2 <lv_obj_init_draw_rect_dsc+0x132>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
|
|
37ee: 2240 movs r2, #64 ; 0x40
|
|
37f0: 0031 movs r1, r6
|
|
37f2: 0028 movs r0, r5
|
|
37f4: 4b73 ldr r3, [pc, #460] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
37f6: 4798 blx r3
|
|
draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part);
|
|
37f8: 8320 strh r0, [r4, #24]
|
|
if(draw_dsc->outline_width) {
|
|
37fa: 2800 cmp r0, #0
|
|
37fc: d100 bne.n 3800 <lv_obj_init_draw_rect_dsc+0x170>
|
|
37fe: e766 b.n 36ce <lv_obj_init_draw_rect_dsc+0x3e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
3800: 224c movs r2, #76 ; 0x4c
|
|
3802: 0031 movs r1, r6
|
|
3804: 0028 movs r0, r5
|
|
3806: 4b71 ldr r3, [pc, #452] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
3808: 4798 blx r3
|
|
draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part);
|
|
380a: 7720 strb r0, [r4, #28]
|
|
if(draw_dsc->outline_opa > LV_OPA_MIN) {
|
|
380c: 2805 cmp r0, #5
|
|
380e: d806 bhi.n 381e <lv_obj_init_draw_rect_dsc+0x18e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
3810: 2242 movs r2, #66 ; 0x42
|
|
3812: 0031 movs r1, r6
|
|
3814: 0028 movs r0, r5
|
|
3816: 4b6b ldr r3, [pc, #428] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3818: 4798 blx r3
|
|
draw_dsc->outline_blend_mode = lv_obj_get_style_outline_blend_mode(obj, part);
|
|
381a: 7760 strb r0, [r4, #29]
|
|
381c: e757 b.n 36ce <lv_obj_init_draw_rect_dsc+0x3e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
|
|
381e: 2241 movs r2, #65 ; 0x41
|
|
3820: 0031 movs r1, r6
|
|
3822: 0028 movs r0, r5
|
|
3824: 4b67 ldr r3, [pc, #412] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3826: 4798 blx r3
|
|
draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part);
|
|
3828: 8360 strh r0, [r4, #26]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
|
|
382a: 2249 movs r2, #73 ; 0x49
|
|
382c: 0031 movs r1, r6
|
|
382e: 0028 movs r0, r5
|
|
3830: 4b67 ldr r3, [pc, #412] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
3832: 4798 blx r3
|
|
draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part);
|
|
3834: 82e0 strh r0, [r4, #22]
|
|
3836: e7eb b.n 3810 <lv_obj_init_draw_rect_dsc+0x180>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
|
|
3838: 226e movs r2, #110 ; 0x6e
|
|
383a: 0031 movs r1, r6
|
|
383c: 0028 movs r0, r5
|
|
383e: 4b65 ldr r3, [pc, #404] ; (39d4 <lv_obj_init_draw_rect_dsc+0x344>)
|
|
3840: 4798 blx r3
|
|
draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part);
|
|
3842: 62e0 str r0, [r4, #44] ; 0x2c
|
|
if(draw_dsc->pattern_image) {
|
|
3844: 2800 cmp r0, #0
|
|
3846: d100 bne.n 384a <lv_obj_init_draw_rect_dsc+0x1ba>
|
|
3848: e746 b.n 36d8 <lv_obj_init_draw_rect_dsc+0x48>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar)
|
|
384a: 226c movs r2, #108 ; 0x6c
|
|
384c: 0031 movs r1, r6
|
|
384e: 0028 movs r0, r5
|
|
3850: 4b5e ldr r3, [pc, #376] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
3852: 4798 blx r3
|
|
draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part);
|
|
3854: 2336 movs r3, #54 ; 0x36
|
|
3856: 54e0 strb r0, [r4, r3]
|
|
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
|
|
3858: 2805 cmp r0, #5
|
|
385a: d800 bhi.n 385e <lv_obj_init_draw_rect_dsc+0x1ce>
|
|
385c: e73c b.n 36d8 <lv_obj_init_draw_rect_dsc+0x48>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar)
|
|
385e: 226d movs r2, #109 ; 0x6d
|
|
3860: 0031 movs r1, r6
|
|
3862: 0028 movs r0, r5
|
|
3864: 4b59 ldr r3, [pc, #356] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
3866: 4798 blx r3
|
|
draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part);
|
|
3868: 2337 movs r3, #55 ; 0x37
|
|
386a: 54e0 strb r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar)
|
|
386c: 2261 movs r2, #97 ; 0x61
|
|
386e: 0031 movs r1, r6
|
|
3870: 0028 movs r0, r5
|
|
3872: 4b54 ldr r3, [pc, #336] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3874: 4798 blx r3
|
|
3876: 0003 movs r3, r0
|
|
3878: 1e58 subs r0, r3, #1
|
|
387a: 4183 sbcs r3, r0
|
|
draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part);
|
|
387c: 2238 movs r2, #56 ; 0x38
|
|
387e: 5ca0 ldrb r0, [r4, r2]
|
|
3880: 2101 movs r1, #1
|
|
3882: 4388 bics r0, r1
|
|
3884: 4318 orrs r0, r3
|
|
3886: 54a0 strb r0, [r4, r2]
|
|
if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) {
|
|
3888: 6ae0 ldr r0, [r4, #44] ; 0x2c
|
|
388a: 4b53 ldr r3, [pc, #332] ; (39d8 <lv_obj_init_draw_rect_dsc+0x348>)
|
|
388c: 4798 blx r3
|
|
388e: 2802 cmp r0, #2
|
|
3890: d00b beq.n 38aa <lv_obj_init_draw_rect_dsc+0x21a>
|
|
else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) {
|
|
3892: 2337 movs r3, #55 ; 0x37
|
|
3894: 5ce3 ldrb r3, [r4, r3]
|
|
3896: 2b05 cmp r3, #5
|
|
3898: d814 bhi.n 38c4 <lv_obj_init_draw_rect_dsc+0x234>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
389a: 2260 movs r2, #96 ; 0x60
|
|
389c: 0031 movs r1, r6
|
|
389e: 0028 movs r0, r5
|
|
38a0: 4b48 ldr r3, [pc, #288] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
38a2: 4798 blx r3
|
|
draw_dsc->pattern_blend_mode = lv_obj_get_style_pattern_blend_mode(obj, part);
|
|
38a4: 2339 movs r3, #57 ; 0x39
|
|
38a6: 54e0 strb r0, [r4, r3]
|
|
38a8: e716 b.n 36d8 <lv_obj_init_draw_rect_dsc+0x48>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
|
|
38aa: 2269 movs r2, #105 ; 0x69
|
|
38ac: 0031 movs r1, r6
|
|
38ae: 0028 movs r0, r5
|
|
38b0: 4b47 ldr r3, [pc, #284] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
38b2: 4798 blx r3
|
|
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
|
|
38b4: 86a0 strh r0, [r4, #52] ; 0x34
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
|
|
38b6: 4a49 ldr r2, [pc, #292] ; (39dc <lv_obj_init_draw_rect_dsc+0x34c>)
|
|
38b8: 0031 movs r1, r6
|
|
38ba: 0028 movs r0, r5
|
|
38bc: 4b45 ldr r3, [pc, #276] ; (39d4 <lv_obj_init_draw_rect_dsc+0x344>)
|
|
38be: 4798 blx r3
|
|
draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part);
|
|
38c0: 6320 str r0, [r4, #48] ; 0x30
|
|
38c2: e7ea b.n 389a <lv_obj_init_draw_rect_dsc+0x20a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
|
|
38c4: 2269 movs r2, #105 ; 0x69
|
|
38c6: 0031 movs r1, r6
|
|
38c8: 0028 movs r0, r5
|
|
38ca: 4b41 ldr r3, [pc, #260] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
38cc: 4798 blx r3
|
|
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
|
|
38ce: 86a0 strh r0, [r4, #52] ; 0x34
|
|
38d0: e7e3 b.n 389a <lv_obj_init_draw_rect_dsc+0x20a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
|
|
38d2: 2250 movs r2, #80 ; 0x50
|
|
38d4: 0031 movs r1, r6
|
|
38d6: 0028 movs r0, r5
|
|
38d8: 4b3a ldr r3, [pc, #232] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
38da: 4798 blx r3
|
|
draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part);
|
|
38dc: 8420 strh r0, [r4, #32]
|
|
if(draw_dsc->shadow_width) {
|
|
38de: 2800 cmp r0, #0
|
|
38e0: d100 bne.n 38e4 <lv_obj_init_draw_rect_dsc+0x254>
|
|
38e2: e6fe b.n 36e2 <lv_obj_init_draw_rect_dsc+0x52>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
|
|
38e4: 225c movs r2, #92 ; 0x5c
|
|
38e6: 0031 movs r1, r6
|
|
38e8: 0028 movs r0, r5
|
|
38ea: 4b38 ldr r3, [pc, #224] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
38ec: 4798 blx r3
|
|
draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part);
|
|
38ee: 2328 movs r3, #40 ; 0x28
|
|
38f0: 54e0 strb r0, [r4, r3]
|
|
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
|
|
38f2: 2805 cmp r0, #5
|
|
38f4: d800 bhi.n 38f8 <lv_obj_init_draw_rect_dsc+0x268>
|
|
38f6: e6f4 b.n 36e2 <lv_obj_init_draw_rect_dsc+0x52>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
|
|
38f8: 2251 movs r2, #81 ; 0x51
|
|
38fa: 0031 movs r1, r6
|
|
38fc: 0028 movs r0, r5
|
|
38fe: 4b31 ldr r3, [pc, #196] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3900: 4699 mov r9, r3
|
|
3902: 4798 blx r3
|
|
draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part);
|
|
3904: 8460 strh r0, [r4, #34] ; 0x22
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
|
|
3906: 2252 movs r2, #82 ; 0x52
|
|
3908: 0031 movs r1, r6
|
|
390a: 0028 movs r0, r5
|
|
390c: 47c8 blx r9
|
|
draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part);
|
|
390e: 84a0 strh r0, [r4, #36] ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
|
|
3910: 2253 movs r2, #83 ; 0x53
|
|
3912: 0031 movs r1, r6
|
|
3914: 0028 movs r0, r5
|
|
3916: 47c8 blx r9
|
|
draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part);
|
|
3918: 84e0 strh r0, [r4, #38] ; 0x26
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
|
|
391a: 2259 movs r2, #89 ; 0x59
|
|
391c: 0031 movs r1, r6
|
|
391e: 0028 movs r0, r5
|
|
3920: 4b2b ldr r3, [pc, #172] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
3922: 4798 blx r3
|
|
draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part);
|
|
3924: 83e0 strh r0, [r4, #30]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
3926: 2254 movs r2, #84 ; 0x54
|
|
3928: 0031 movs r1, r6
|
|
392a: 0028 movs r0, r5
|
|
392c: 47c8 blx r9
|
|
draw_dsc->shadow_blend_mode = lv_obj_get_style_shadow_blend_mode(obj, part);
|
|
392e: 2329 movs r3, #41 ; 0x29
|
|
3930: 54e0 strb r0, [r4, r3]
|
|
3932: e6d6 b.n 36e2 <lv_obj_init_draw_rect_dsc+0x52>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
|
|
3934: 227f movs r2, #127 ; 0x7f
|
|
3936: 0031 movs r1, r6
|
|
3938: 0028 movs r0, r5
|
|
393a: 4b26 ldr r3, [pc, #152] ; (39d4 <lv_obj_init_draw_rect_dsc+0x344>)
|
|
393c: 4798 blx r3
|
|
draw_dsc->value_str = lv_obj_get_style_value_str(obj, part);
|
|
393e: 63e0 str r0, [r4, #60] ; 0x3c
|
|
if(draw_dsc->value_str) {
|
|
3940: 2800 cmp r0, #0
|
|
3942: d100 bne.n 3946 <lv_obj_init_draw_rect_dsc+0x2b6>
|
|
3944: e6d2 b.n 36ec <lv_obj_init_draw_rect_dsc+0x5c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
|
|
3946: 227c movs r2, #124 ; 0x7c
|
|
3948: 0031 movs r1, r6
|
|
394a: 0028 movs r0, r5
|
|
394c: 4b1f ldr r3, [pc, #124] ; (39cc <lv_obj_init_draw_rect_dsc+0x33c>)
|
|
394e: 4798 blx r3
|
|
draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part);
|
|
3950: 2344 movs r3, #68 ; 0x44
|
|
3952: 54e0 strb r0, [r4, r3]
|
|
if(draw_dsc->value_opa > LV_OPA_MIN) {
|
|
3954: 2805 cmp r0, #5
|
|
3956: d800 bhi.n 395a <lv_obj_init_draw_rect_dsc+0x2ca>
|
|
3958: e6c8 b.n 36ec <lv_obj_init_draw_rect_dsc+0x5c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
|
|
395a: 2273 movs r2, #115 ; 0x73
|
|
395c: 0031 movs r1, r6
|
|
395e: 0028 movs r0, r5
|
|
3960: 4b18 ldr r3, [pc, #96] ; (39c4 <lv_obj_init_draw_rect_dsc+0x334>)
|
|
3962: 4699 mov r9, r3
|
|
3964: 4798 blx r3
|
|
draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part);
|
|
3966: 2348 movs r3, #72 ; 0x48
|
|
3968: 52e0 strh r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
|
|
396a: 2274 movs r2, #116 ; 0x74
|
|
396c: 0031 movs r1, r6
|
|
396e: 0028 movs r0, r5
|
|
3970: 47c8 blx r9
|
|
draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part);
|
|
3972: 234a movs r3, #74 ; 0x4a
|
|
3974: 52e0 strh r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
3976: 2279 movs r2, #121 ; 0x79
|
|
3978: 0031 movs r1, r6
|
|
397a: 0028 movs r0, r5
|
|
397c: 4b14 ldr r3, [pc, #80] ; (39d0 <lv_obj_init_draw_rect_dsc+0x340>)
|
|
397e: 4798 blx r3
|
|
draw_dsc->value_color = lv_obj_get_style_value_color(obj, part);
|
|
3980: 2346 movs r3, #70 ; 0x46
|
|
3982: 52e0 strh r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
|
|
3984: 227e movs r2, #126 ; 0x7e
|
|
3986: 0031 movs r1, r6
|
|
3988: 0028 movs r0, r5
|
|
398a: 4b12 ldr r3, [pc, #72] ; (39d4 <lv_obj_init_draw_rect_dsc+0x344>)
|
|
398c: 4798 blx r3
|
|
draw_dsc->value_font = lv_obj_get_style_value_font(obj, part);
|
|
398e: 6420 str r0, [r4, #64] ; 0x40
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
|
|
3990: 2270 movs r2, #112 ; 0x70
|
|
3992: 0031 movs r1, r6
|
|
3994: 0028 movs r0, r5
|
|
3996: 47c8 blx r9
|
|
draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part);
|
|
3998: 234c movs r3, #76 ; 0x4c
|
|
399a: 52e0 strh r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar)
|
|
399c: 2271 movs r2, #113 ; 0x71
|
|
399e: 0031 movs r1, r6
|
|
39a0: 0028 movs r0, r5
|
|
39a2: 47c8 blx r9
|
|
draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part);
|
|
39a4: 234e movs r3, #78 ; 0x4e
|
|
39a6: 52e0 strh r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
|
|
39a8: 2275 movs r2, #117 ; 0x75
|
|
39aa: 0031 movs r1, r6
|
|
39ac: 0028 movs r0, r5
|
|
39ae: 47c8 blx r9
|
|
draw_dsc->value_align = lv_obj_get_style_value_align(obj, part);
|
|
39b0: 2350 movs r3, #80 ; 0x50
|
|
39b2: 54e0 strb r0, [r4, r3]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
39b4: 2272 movs r2, #114 ; 0x72
|
|
39b6: 0031 movs r1, r6
|
|
39b8: 0028 movs r0, r5
|
|
39ba: 47c8 blx r9
|
|
draw_dsc->value_blend_mode = lv_obj_get_style_value_blend_mode(obj, part);
|
|
39bc: 2351 movs r3, #81 ; 0x51
|
|
39be: 54e0 strb r0, [r4, r3]
|
|
39c0: e694 b.n 36ec <lv_obj_init_draw_rect_dsc+0x5c>
|
|
39c2: 46c0 nop ; (mov r8, r8)
|
|
39c4: 00002db1 .word 0x00002db1
|
|
39c8: 0000800c .word 0x0000800c
|
|
39cc: 00002f15 .word 0x00002f15
|
|
39d0: 00002e71 .word 0x00002e71
|
|
39d4: 00002fc1 .word 0x00002fc1
|
|
39d8: 00008161 .word 0x00008161
|
|
39dc: 0000808e .word 0x0000808e
|
|
|
|
000039e0 <lv_obj_design>:
|
|
{
|
|
39e0: b5f0 push {r4, r5, r6, r7, lr}
|
|
39e2: b09b sub sp, #108 ; 0x6c
|
|
39e4: 0004 movs r4, r0
|
|
39e6: 000e movs r6, r1
|
|
if(mode == LV_DESIGN_COVER_CHK) {
|
|
39e8: 2a02 cmp r2, #2
|
|
39ea: d007 beq.n 39fc <lv_obj_design+0x1c>
|
|
else if(mode == LV_DESIGN_DRAW_MAIN) {
|
|
39ec: 2a00 cmp r2, #0
|
|
39ee: d061 beq.n 3ab4 <lv_obj_design+0xd4>
|
|
return LV_DESIGN_RES_OK;
|
|
39f0: 2000 movs r0, #0
|
|
else if(mode == LV_DESIGN_DRAW_POST) {
|
|
39f2: 2a01 cmp r2, #1
|
|
39f4: d100 bne.n 39f8 <lv_obj_design+0x18>
|
|
39f6: e0b5 b.n 3b64 <lv_obj_design+0x184>
|
|
}
|
|
39f8: b01b add sp, #108 ; 0x6c
|
|
39fa: bdf0 pop {r4, r5, r6, r7, pc}
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
|
|
39fc: 2100 movs r1, #0
|
|
39fe: 4b81 ldr r3, [pc, #516] ; (3c04 <lv_obj_design+0x224>)
|
|
3a00: 4798 blx r3
|
|
3a02: 0003 movs r3, r0
|
|
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
|
|
3a04: 2003 movs r0, #3
|
|
3a06: 2b00 cmp r3, #0
|
|
3a08: d1f6 bne.n 39f8 <lv_obj_design+0x18>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
3a0a: 2201 movs r2, #1
|
|
3a0c: 2100 movs r1, #0
|
|
3a0e: 0020 movs r0, r4
|
|
3a10: 4f7c ldr r7, [pc, #496] ; (3c04 <lv_obj_design+0x224>)
|
|
3a12: 47b8 blx r7
|
|
3a14: 9001 str r0, [sp, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
|
|
3a16: 2204 movs r2, #4
|
|
3a18: 2100 movs r1, #0
|
|
3a1a: 0020 movs r0, r4
|
|
3a1c: 47b8 blx r7
|
|
3a1e: 0005 movs r5, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
|
|
3a20: 2205 movs r2, #5
|
|
3a22: 2100 movs r1, #0
|
|
3a24: 0020 movs r0, r4
|
|
3a26: 47b8 blx r7
|
|
lv_area_copy(&coords, &obj->coords);
|
|
3a28: 0027 movs r7, r4
|
|
3a2a: 3710 adds r7, #16
|
|
3a2c: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
3a2e: a905 add r1, sp, #20
|
|
3a30: 5cfa ldrb r2, [r7, r3]
|
|
3a32: 545a strb r2, [r3, r1]
|
|
3a34: 3301 adds r3, #1
|
|
while(len) {
|
|
3a36: 2b08 cmp r3, #8
|
|
3a38: d1fa bne.n 3a30 <lv_obj_design+0x50>
|
|
coords.x1 -= w;
|
|
3a3a: b2ad uxth r5, r5
|
|
3a3c: a905 add r1, sp, #20
|
|
3a3e: 880b ldrh r3, [r1, #0]
|
|
3a40: 1b5b subs r3, r3, r5
|
|
3a42: 800b strh r3, [r1, #0]
|
|
coords.x2 += w;
|
|
3a44: 888b ldrh r3, [r1, #4]
|
|
3a46: 18ed adds r5, r5, r3
|
|
3a48: 808d strh r5, [r1, #4]
|
|
coords.y1 -= h;
|
|
3a4a: b280 uxth r0, r0
|
|
3a4c: 884b ldrh r3, [r1, #2]
|
|
3a4e: 1a1b subs r3, r3, r0
|
|
3a50: 804b strh r3, [r1, #2]
|
|
coords.y2 += h;
|
|
3a52: 88cb ldrh r3, [r1, #6]
|
|
3a54: 18c0 adds r0, r0, r3
|
|
3a56: 80c8 strh r0, [r1, #6]
|
|
if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER;
|
|
3a58: 9a01 ldr r2, [sp, #4]
|
|
3a5a: 0030 movs r0, r6
|
|
3a5c: 4b6a ldr r3, [pc, #424] ; (3c08 <lv_obj_design+0x228>)
|
|
3a5e: 4798 blx r3
|
|
3a60: 0003 movs r3, r0
|
|
3a62: 2002 movs r0, #2
|
|
3a64: 2b00 cmp r3, #0
|
|
3a66: d0c7 beq.n 39f8 <lv_obj_design+0x18>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
3a68: 222c movs r2, #44 ; 0x2c
|
|
3a6a: 2100 movs r1, #0
|
|
3a6c: 0020 movs r0, r4
|
|
3a6e: 4b67 ldr r3, [pc, #412] ; (3c0c <lv_obj_design+0x22c>)
|
|
3a70: 4798 blx r3
|
|
3a72: 0003 movs r3, r0
|
|
if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER;
|
|
3a74: 2002 movs r0, #2
|
|
3a76: 2bf9 cmp r3, #249 ; 0xf9
|
|
3a78: d9be bls.n 39f8 <lv_obj_design+0x18>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
3a7a: 2220 movs r2, #32
|
|
3a7c: 2100 movs r1, #0
|
|
3a7e: 0020 movs r0, r4
|
|
3a80: 4b60 ldr r3, [pc, #384] ; (3c04 <lv_obj_design+0x224>)
|
|
3a82: 4798 blx r3
|
|
if(lv_obj_get_style_bg_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
|
|
3a84: b2c3 uxtb r3, r0
|
|
3a86: 2002 movs r0, #2
|
|
3a88: 2b00 cmp r3, #0
|
|
3a8a: d1b5 bne.n 39f8 <lv_obj_design+0x18>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
3a8c: 2232 movs r2, #50 ; 0x32
|
|
3a8e: 2100 movs r1, #0
|
|
3a90: 0020 movs r0, r4
|
|
3a92: 4b5c ldr r3, [pc, #368] ; (3c04 <lv_obj_design+0x224>)
|
|
3a94: 4798 blx r3
|
|
if(lv_obj_get_style_border_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
|
|
3a96: b2c3 uxtb r3, r0
|
|
3a98: 2002 movs r0, #2
|
|
3a9a: 2b00 cmp r3, #0
|
|
3a9c: d1ac bne.n 39f8 <lv_obj_design+0x18>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
|
|
3a9e: 4a5c ldr r2, [pc, #368] ; (3c10 <lv_obj_design+0x230>)
|
|
3aa0: 2100 movs r1, #0
|
|
3aa2: 0020 movs r0, r4
|
|
3aa4: 4b59 ldr r3, [pc, #356] ; (3c0c <lv_obj_design+0x22c>)
|
|
3aa6: 4798 blx r3
|
|
return LV_DESIGN_RES_COVER;
|
|
3aa8: 2300 movs r3, #0
|
|
3aaa: 22f9 movs r2, #249 ; 0xf9
|
|
3aac: 4282 cmp r2, r0
|
|
3aae: 415b adcs r3, r3
|
|
3ab0: 1c58 adds r0, r3, #1
|
|
3ab2: e7a1 b.n 39f8 <lv_obj_design+0x18>
|
|
lv_draw_rect_dsc_init(&draw_dsc);
|
|
3ab4: a805 add r0, sp, #20
|
|
3ab6: 4b57 ldr r3, [pc, #348] ; (3c14 <lv_obj_design+0x234>)
|
|
3ab8: 4798 blx r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
|
|
3aba: 2233 movs r2, #51 ; 0x33
|
|
3abc: 2100 movs r1, #0
|
|
3abe: 0020 movs r0, r4
|
|
3ac0: 4b50 ldr r3, [pc, #320] ; (3c04 <lv_obj_design+0x224>)
|
|
3ac2: 4798 blx r3
|
|
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
|
|
3ac4: 2800 cmp r0, #0
|
|
3ac6: d002 beq.n 3ace <lv_obj_design+0xee>
|
|
draw_dsc.border_opa = LV_OPA_TRANSP;
|
|
3ac8: 2200 movs r2, #0
|
|
3aca: ab05 add r3, sp, #20
|
|
3acc: 751a strb r2, [r3, #20]
|
|
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
|
|
3ace: aa05 add r2, sp, #20
|
|
3ad0: 2100 movs r1, #0
|
|
3ad2: 0020 movs r0, r4
|
|
3ad4: 4b50 ldr r3, [pc, #320] ; (3c18 <lv_obj_design+0x238>)
|
|
3ad6: 4798 blx r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
|
|
3ad8: 2204 movs r2, #4
|
|
3ada: 2100 movs r1, #0
|
|
3adc: 0020 movs r0, r4
|
|
3ade: 4f49 ldr r7, [pc, #292] ; (3c04 <lv_obj_design+0x224>)
|
|
3ae0: 47b8 blx r7
|
|
3ae2: 0005 movs r5, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
|
|
3ae4: 2205 movs r2, #5
|
|
3ae6: 2100 movs r1, #0
|
|
3ae8: 0020 movs r0, r4
|
|
3aea: 47b8 blx r7
|
|
lv_area_copy(&coords, &obj->coords);
|
|
3aec: 0027 movs r7, r4
|
|
3aee: 3710 adds r7, #16
|
|
3af0: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
3af2: a903 add r1, sp, #12
|
|
3af4: 5cfa ldrb r2, [r7, r3]
|
|
3af6: 545a strb r2, [r3, r1]
|
|
3af8: 3301 adds r3, #1
|
|
while(len) {
|
|
3afa: 2b08 cmp r3, #8
|
|
3afc: d1fa bne.n 3af4 <lv_obj_design+0x114>
|
|
coords.x1 -= w;
|
|
3afe: b2ad uxth r5, r5
|
|
3b00: ab03 add r3, sp, #12
|
|
3b02: 881a ldrh r2, [r3, #0]
|
|
3b04: 1b52 subs r2, r2, r5
|
|
3b06: 801a strh r2, [r3, #0]
|
|
coords.x2 += w;
|
|
3b08: 889a ldrh r2, [r3, #4]
|
|
3b0a: 18ad adds r5, r5, r2
|
|
3b0c: 809d strh r5, [r3, #4]
|
|
coords.y1 -= h;
|
|
3b0e: b280 uxth r0, r0
|
|
3b10: 885a ldrh r2, [r3, #2]
|
|
3b12: 1a12 subs r2, r2, r0
|
|
3b14: 805a strh r2, [r3, #2]
|
|
coords.y2 += h;
|
|
3b16: 88da ldrh r2, [r3, #6]
|
|
3b18: 1880 adds r0, r0, r2
|
|
3b1a: 80d8 strh r0, [r3, #6]
|
|
lv_draw_rect(&coords, clip_area, &draw_dsc);
|
|
3b1c: aa05 add r2, sp, #20
|
|
3b1e: 0031 movs r1, r6
|
|
3b20: 0018 movs r0, r3
|
|
3b22: 4b3e ldr r3, [pc, #248] ; (3c1c <lv_obj_design+0x23c>)
|
|
3b24: 4798 blx r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
|
|
3b26: 2202 movs r2, #2
|
|
3b28: 2100 movs r1, #0
|
|
3b2a: 0020 movs r0, r4
|
|
3b2c: 4b35 ldr r3, [pc, #212] ; (3c04 <lv_obj_design+0x224>)
|
|
3b2e: 4798 blx r3
|
|
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
|
|
3b30: 2800 cmp r0, #0
|
|
3b32: d101 bne.n 3b38 <lv_obj_design+0x158>
|
|
return LV_DESIGN_RES_OK;
|
|
3b34: 2000 movs r0, #0
|
|
3b36: e75f b.n 39f8 <lv_obj_design+0x18>
|
|
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
|
|
3b38: 201c movs r0, #28
|
|
3b3a: 4b39 ldr r3, [pc, #228] ; (3c20 <lv_obj_design+0x240>)
|
|
3b3c: 4798 blx r3
|
|
3b3e: 0005 movs r5, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
3b40: 2201 movs r2, #1
|
|
3b42: 2100 movs r1, #0
|
|
3b44: 0020 movs r0, r4
|
|
3b46: 4b2f ldr r3, [pc, #188] ; (3c04 <lv_obj_design+0x224>)
|
|
3b48: 4798 blx r3
|
|
3b4a: 0002 movs r2, r0
|
|
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
|
|
3b4c: 2300 movs r3, #0
|
|
3b4e: 0039 movs r1, r7
|
|
3b50: 0028 movs r0, r5
|
|
3b52: 4e34 ldr r6, [pc, #208] ; (3c24 <lv_obj_design+0x244>)
|
|
3b54: 47b0 blx r6
|
|
lv_draw_mask_add(mp, obj + 8);
|
|
3b56: 2398 movs r3, #152 ; 0x98
|
|
3b58: 009b lsls r3, r3, #2
|
|
3b5a: 18e1 adds r1, r4, r3
|
|
3b5c: 0028 movs r0, r5
|
|
3b5e: 4b32 ldr r3, [pc, #200] ; (3c28 <lv_obj_design+0x248>)
|
|
3b60: 4798 blx r3
|
|
3b62: e7e7 b.n 3b34 <lv_obj_design+0x154>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
|
|
3b64: 3201 adds r2, #1
|
|
3b66: 2100 movs r1, #0
|
|
3b68: 0020 movs r0, r4
|
|
3b6a: 4b26 ldr r3, [pc, #152] ; (3c04 <lv_obj_design+0x224>)
|
|
3b6c: 4798 blx r3
|
|
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
|
|
3b6e: 2800 cmp r0, #0
|
|
3b70: d140 bne.n 3bf4 <lv_obj_design+0x214>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
|
|
3b72: 2233 movs r2, #51 ; 0x33
|
|
3b74: 2100 movs r1, #0
|
|
3b76: 0020 movs r0, r4
|
|
3b78: 4b22 ldr r3, [pc, #136] ; (3c04 <lv_obj_design+0x224>)
|
|
3b7a: 4798 blx r3
|
|
3b7c: 0003 movs r3, r0
|
|
return LV_DESIGN_RES_OK;
|
|
3b7e: 2000 movs r0, #0
|
|
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
|
|
3b80: 2b00 cmp r3, #0
|
|
3b82: d100 bne.n 3b86 <lv_obj_design+0x1a6>
|
|
3b84: e738 b.n 39f8 <lv_obj_design+0x18>
|
|
lv_draw_rect_dsc_init(&draw_dsc);
|
|
3b86: ad05 add r5, sp, #20
|
|
3b88: 0028 movs r0, r5
|
|
3b8a: 4b22 ldr r3, [pc, #136] ; (3c14 <lv_obj_design+0x234>)
|
|
3b8c: 4798 blx r3
|
|
draw_dsc.bg_opa = LV_OPA_TRANSP;
|
|
3b8e: 2300 movs r3, #0
|
|
3b90: 732b strb r3, [r5, #12]
|
|
draw_dsc.pattern_opa = LV_OPA_TRANSP;
|
|
3b92: 2236 movs r2, #54 ; 0x36
|
|
3b94: 54ab strb r3, [r5, r2]
|
|
draw_dsc.shadow_opa = LV_OPA_TRANSP;
|
|
3b96: 3a0e subs r2, #14
|
|
3b98: 54ab strb r3, [r5, r2]
|
|
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
|
|
3b9a: 002a movs r2, r5
|
|
3b9c: 2100 movs r1, #0
|
|
3b9e: 0020 movs r0, r4
|
|
3ba0: 4b1d ldr r3, [pc, #116] ; (3c18 <lv_obj_design+0x238>)
|
|
3ba2: 4798 blx r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
|
|
3ba4: 2204 movs r2, #4
|
|
3ba6: 2100 movs r1, #0
|
|
3ba8: 0020 movs r0, r4
|
|
3baa: 4f16 ldr r7, [pc, #88] ; (3c04 <lv_obj_design+0x224>)
|
|
3bac: 47b8 blx r7
|
|
3bae: 0005 movs r5, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
|
|
3bb0: 2205 movs r2, #5
|
|
3bb2: 2100 movs r1, #0
|
|
3bb4: 0020 movs r0, r4
|
|
3bb6: 47b8 blx r7
|
|
lv_area_copy(&coords, &obj->coords);
|
|
3bb8: 3410 adds r4, #16
|
|
3bba: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
3bbc: a903 add r1, sp, #12
|
|
3bbe: 5ce2 ldrb r2, [r4, r3]
|
|
3bc0: 545a strb r2, [r3, r1]
|
|
3bc2: 3301 adds r3, #1
|
|
while(len) {
|
|
3bc4: 2b08 cmp r3, #8
|
|
3bc6: d1fa bne.n 3bbe <lv_obj_design+0x1de>
|
|
coords.x1 -= w;
|
|
3bc8: b2ad uxth r5, r5
|
|
3bca: ab03 add r3, sp, #12
|
|
3bcc: 881a ldrh r2, [r3, #0]
|
|
3bce: 1b52 subs r2, r2, r5
|
|
3bd0: 801a strh r2, [r3, #0]
|
|
coords.x2 += w;
|
|
3bd2: 889a ldrh r2, [r3, #4]
|
|
3bd4: 18ad adds r5, r5, r2
|
|
3bd6: 809d strh r5, [r3, #4]
|
|
coords.y1 -= h;
|
|
3bd8: b280 uxth r0, r0
|
|
3bda: 885a ldrh r2, [r3, #2]
|
|
3bdc: 1a12 subs r2, r2, r0
|
|
3bde: 805a strh r2, [r3, #2]
|
|
coords.y2 += h;
|
|
3be0: 88da ldrh r2, [r3, #6]
|
|
3be2: 1880 adds r0, r0, r2
|
|
3be4: 80d8 strh r0, [r3, #6]
|
|
lv_draw_rect(&coords, clip_area, &draw_dsc);
|
|
3be6: aa05 add r2, sp, #20
|
|
3be8: 0031 movs r1, r6
|
|
3bea: 0018 movs r0, r3
|
|
3bec: 4b0b ldr r3, [pc, #44] ; (3c1c <lv_obj_design+0x23c>)
|
|
3bee: 4798 blx r3
|
|
return LV_DESIGN_RES_OK;
|
|
3bf0: 2000 movs r0, #0
|
|
3bf2: e701 b.n 39f8 <lv_obj_design+0x18>
|
|
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8);
|
|
3bf4: 2398 movs r3, #152 ; 0x98
|
|
3bf6: 009b lsls r3, r3, #2
|
|
3bf8: 18e0 adds r0, r4, r3
|
|
3bfa: 4b0c ldr r3, [pc, #48] ; (3c2c <lv_obj_design+0x24c>)
|
|
3bfc: 4798 blx r3
|
|
_lv_mem_buf_release(param);
|
|
3bfe: 4b0c ldr r3, [pc, #48] ; (3c30 <lv_obj_design+0x250>)
|
|
3c00: 4798 blx r3
|
|
3c02: e7b6 b.n 3b72 <lv_obj_design+0x192>
|
|
3c04: 00002db1 .word 0x00002db1
|
|
3c08: 0000fe9d .word 0x0000fe9d
|
|
3c0c: 00002f15 .word 0x00002f15
|
|
3c10: 0000800c .word 0x0000800c
|
|
3c14: 0000ab21 .word 0x0000ab21
|
|
3c18: 00003691 .word 0x00003691
|
|
3c1c: 0000abc5 .word 0x0000abc5
|
|
3c20: 00010ec1 .word 0x00010ec1
|
|
3c24: 0000a855 .word 0x0000a855
|
|
3c28: 0000a5ed .word 0x0000a5ed
|
|
3c2c: 0000a695 .word 0x0000a695
|
|
3c30: 00010bd5 .word 0x00010bd5
|
|
|
|
00003c34 <lv_obj_get_draw_rect_ext_pad_size>:
|
|
{
|
|
3c34: b5f0 push {r4, r5, r6, r7, lr}
|
|
3c36: 46de mov lr, fp
|
|
3c38: 4657 mov r7, sl
|
|
3c3a: 464e mov r6, r9
|
|
3c3c: b5c0 push {r6, r7, lr}
|
|
3c3e: b08a sub sp, #40 ; 0x28
|
|
3c40: 0004 movs r4, r0
|
|
3c42: 9104 str r1, [sp, #16]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
|
|
3c44: 2250 movs r2, #80 ; 0x50
|
|
3c46: 4b78 ldr r3, [pc, #480] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3c48: 4798 blx r3
|
|
3c4a: 0006 movs r6, r0
|
|
3c4c: 1e05 subs r5, r0, #0
|
|
if(sh_width) {
|
|
3c4e: d130 bne.n 3cb2 <lv_obj_get_draw_rect_ext_pad_size+0x7e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
|
|
3c50: 227f movs r2, #127 ; 0x7f
|
|
3c52: 9f04 ldr r7, [sp, #16]
|
|
3c54: 0039 movs r1, r7
|
|
3c56: 0020 movs r0, r4
|
|
3c58: 4b74 ldr r3, [pc, #464] ; (3e2c <lv_obj_get_draw_rect_ext_pad_size+0x1f8>)
|
|
3c5a: 4798 blx r3
|
|
3c5c: 1e06 subs r6, r0, #0
|
|
if(value_str) {
|
|
3c5e: d006 beq.n 3c6e <lv_obj_get_draw_rect_ext_pad_size+0x3a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
|
|
3c60: 227c movs r2, #124 ; 0x7c
|
|
3c62: 0039 movs r1, r7
|
|
3c64: 0020 movs r0, r4
|
|
3c66: 4b72 ldr r3, [pc, #456] ; (3e30 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
|
|
3c68: 4798 blx r3
|
|
if(value_opa > LV_OPA_MIN) {
|
|
3c6a: 2805 cmp r0, #5
|
|
3c6c: d850 bhi.n 3d10 <lv_obj_get_draw_rect_ext_pad_size+0xdc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
|
|
3c6e: 2240 movs r2, #64 ; 0x40
|
|
3c70: 9904 ldr r1, [sp, #16]
|
|
3c72: 0020 movs r0, r4
|
|
3c74: 4b6c ldr r3, [pc, #432] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3c76: 4798 blx r3
|
|
3c78: 1e06 subs r6, r0, #0
|
|
if(outline_width) {
|
|
3c7a: d000 beq.n 3c7e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
|
|
3c7c: e0c0 b.n 3e00 <lv_obj_get_draw_rect_ext_pad_size+0x1cc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
|
|
3c7e: 2204 movs r2, #4
|
|
3c80: 9904 ldr r1, [sp, #16]
|
|
3c82: 0020 movs r0, r4
|
|
3c84: 4f68 ldr r7, [pc, #416] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3c86: 47b8 blx r7
|
|
3c88: 0006 movs r6, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
|
|
3c8a: 2205 movs r2, #5
|
|
3c8c: 9904 ldr r1, [sp, #16]
|
|
3c8e: 0020 movs r0, r4
|
|
3c90: 47b8 blx r7
|
|
lv_coord_t wh = LV_MATH_MAX(w, h);
|
|
3c92: 1c03 adds r3, r0, #0
|
|
3c94: 42b0 cmp r0, r6
|
|
3c96: da00 bge.n 3c9a <lv_obj_get_draw_rect_ext_pad_size+0x66>
|
|
3c98: 1c33 adds r3, r6, #0
|
|
3c9a: b21a sxth r2, r3
|
|
if(wh > 0) s += wh;
|
|
3c9c: 2a00 cmp r2, #0
|
|
3c9e: dd01 ble.n 3ca4 <lv_obj_get_draw_rect_ext_pad_size+0x70>
|
|
3ca0: 18ed adds r5, r5, r3
|
|
3ca2: b22d sxth r5, r5
|
|
}
|
|
3ca4: 0028 movs r0, r5
|
|
3ca6: b00a add sp, #40 ; 0x28
|
|
3ca8: bc1c pop {r2, r3, r4}
|
|
3caa: 4691 mov r9, r2
|
|
3cac: 469a mov sl, r3
|
|
3cae: 46a3 mov fp, r4
|
|
3cb0: bdf0 pop {r4, r5, r6, r7, pc}
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
|
|
3cb2: 225c movs r2, #92 ; 0x5c
|
|
3cb4: 9904 ldr r1, [sp, #16]
|
|
3cb6: 0020 movs r0, r4
|
|
3cb8: 4b5d ldr r3, [pc, #372] ; (3e30 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
|
|
3cba: 4798 blx r3
|
|
lv_coord_t s = 0;
|
|
3cbc: 2500 movs r5, #0
|
|
if(sh_opa > LV_OPA_MIN) {
|
|
3cbe: 2805 cmp r0, #5
|
|
3cc0: d9c6 bls.n 3c50 <lv_obj_get_draw_rect_ext_pad_size+0x1c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
|
|
3cc2: 2253 movs r2, #83 ; 0x53
|
|
3cc4: 9d04 ldr r5, [sp, #16]
|
|
3cc6: 0029 movs r1, r5
|
|
3cc8: 0020 movs r0, r4
|
|
3cca: 4f57 ldr r7, [pc, #348] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3ccc: 47b8 blx r7
|
|
sh_width = sh_width / 2; /*THe blur adds only half width*/
|
|
3cce: 0ff3 lsrs r3, r6, #31
|
|
3cd0: 199e adds r6, r3, r6
|
|
3cd2: 1076 asrs r6, r6, #1
|
|
sh_width++;
|
|
3cd4: 3601 adds r6, #1
|
|
sh_width += lv_obj_get_style_shadow_spread(obj, part);
|
|
3cd6: 1836 adds r6, r6, r0
|
|
3cd8: b2b6 uxth r6, r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
|
|
3cda: 2251 movs r2, #81 ; 0x51
|
|
3cdc: 9504 str r5, [sp, #16]
|
|
3cde: 0029 movs r1, r5
|
|
3ce0: 0020 movs r0, r4
|
|
3ce2: 47b8 blx r7
|
|
3ce4: 0005 movs r5, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
|
|
3ce6: 2252 movs r2, #82 ; 0x52
|
|
3ce8: 9904 ldr r1, [sp, #16]
|
|
3cea: 0020 movs r0, r4
|
|
3cec: 47b8 blx r7
|
|
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
|
|
3cee: 17ea asrs r2, r5, #31
|
|
3cf0: 18ab adds r3, r5, r2
|
|
3cf2: 4053 eors r3, r2
|
|
3cf4: 17c2 asrs r2, r0, #31
|
|
3cf6: 1880 adds r0, r0, r2
|
|
3cf8: 4050 eors r0, r2
|
|
3cfa: 4298 cmp r0, r3
|
|
3cfc: da00 bge.n 3d00 <lv_obj_get_draw_rect_ext_pad_size+0xcc>
|
|
3cfe: 0018 movs r0, r3
|
|
3d00: 1830 adds r0, r6, r0
|
|
s = LV_MATH_MAX(s, sh_width);
|
|
3d02: 1c03 adds r3, r0, #0
|
|
3d04: 0402 lsls r2, r0, #16
|
|
3d06: d401 bmi.n 3d0c <lv_obj_get_draw_rect_ext_pad_size+0xd8>
|
|
3d08: b21d sxth r5, r3
|
|
3d0a: e7a1 b.n 3c50 <lv_obj_get_draw_rect_ext_pad_size+0x1c>
|
|
3d0c: 2300 movs r3, #0
|
|
3d0e: e7fb b.n 3d08 <lv_obj_get_draw_rect_ext_pad_size+0xd4>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
|
|
3d10: 2270 movs r2, #112 ; 0x70
|
|
3d12: 9f04 ldr r7, [sp, #16]
|
|
3d14: 0039 movs r1, r7
|
|
3d16: 0020 movs r0, r4
|
|
3d18: 4b43 ldr r3, [pc, #268] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3d1a: 4699 mov r9, r3
|
|
3d1c: 4798 blx r3
|
|
3d1e: 9005 str r0, [sp, #20]
|
|
3d20: 2270 movs r2, #112 ; 0x70
|
|
3d22: 0039 movs r1, r7
|
|
3d24: 0020 movs r0, r4
|
|
3d26: 47c8 blx r9
|
|
3d28: 4683 mov fp, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
|
|
3d2a: 227e movs r2, #126 ; 0x7e
|
|
3d2c: 9704 str r7, [sp, #16]
|
|
3d2e: 0039 movs r1, r7
|
|
3d30: 0020 movs r0, r4
|
|
3d32: 4b3e ldr r3, [pc, #248] ; (3e2c <lv_obj_get_draw_rect_ext_pad_size+0x1f8>)
|
|
3d34: 4798 blx r3
|
|
3d36: 0002 movs r2, r0
|
|
_lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE);
|
|
3d38: af06 add r7, sp, #24
|
|
3d3a: 2100 movs r1, #0
|
|
3d3c: 468a mov sl, r1
|
|
3d3e: 9102 str r1, [sp, #8]
|
|
3d40: 4b3c ldr r3, [pc, #240] ; (3e34 <lv_obj_get_draw_rect_ext_pad_size+0x200>)
|
|
3d42: 9301 str r3, [sp, #4]
|
|
3d44: 4659 mov r1, fp
|
|
3d46: 9100 str r1, [sp, #0]
|
|
3d48: 9b05 ldr r3, [sp, #20]
|
|
3d4a: 0031 movs r1, r6
|
|
3d4c: 0038 movs r0, r7
|
|
3d4e: 4e3a ldr r6, [pc, #232] ; (3e38 <lv_obj_get_draw_rect_ext_pad_size+0x204>)
|
|
3d50: 47b0 blx r6
|
|
value_area.x1 = 0;
|
|
3d52: ae08 add r6, sp, #32
|
|
3d54: 4653 mov r3, sl
|
|
3d56: 8033 strh r3, [r6, #0]
|
|
value_area.y1 = 0;
|
|
3d58: 8073 strh r3, [r6, #2]
|
|
value_area.x2 = txt_size.x - 1;
|
|
3d5a: 883b ldrh r3, [r7, #0]
|
|
3d5c: 3b01 subs r3, #1
|
|
3d5e: 80b3 strh r3, [r6, #4]
|
|
value_area.y2 = txt_size.y - 1;
|
|
3d60: 887b ldrh r3, [r7, #2]
|
|
3d62: 3b01 subs r3, #1
|
|
3d64: 80f3 strh r3, [r6, #6]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
|
|
3d66: 2275 movs r2, #117 ; 0x75
|
|
3d68: 9f04 ldr r7, [sp, #16]
|
|
3d6a: 0039 movs r1, r7
|
|
3d6c: 0020 movs r0, r4
|
|
3d6e: 47c8 blx r9
|
|
3d70: 9005 str r0, [sp, #20]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
|
|
3d72: 2273 movs r2, #115 ; 0x73
|
|
3d74: 0039 movs r1, r7
|
|
3d76: 0020 movs r0, r4
|
|
3d78: 47c8 blx r9
|
|
3d7a: 4682 mov sl, r0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
|
|
3d7c: 2274 movs r2, #116 ; 0x74
|
|
3d7e: 0039 movs r1, r7
|
|
3d80: 0020 movs r0, r4
|
|
3d82: 47c8 blx r9
|
|
3d84: 4681 mov r9, r0
|
|
_lv_area_align(&obj->coords, &value_area, align, &p_align);
|
|
3d86: aa07 add r2, sp, #28
|
|
3d88: 0013 movs r3, r2
|
|
3d8a: 466a mov r2, sp
|
|
3d8c: 7d12 ldrb r2, [r2, #20]
|
|
3d8e: 0020 movs r0, r4
|
|
3d90: 3010 adds r0, #16
|
|
3d92: 9305 str r3, [sp, #20]
|
|
3d94: 0031 movs r1, r6
|
|
3d96: 4f29 ldr r7, [pc, #164] ; (3e3c <lv_obj_get_draw_rect_ext_pad_size+0x208>)
|
|
3d98: 47b8 blx r7
|
|
value_area.x1 += p_align.x + xofs;
|
|
3d9a: 9a05 ldr r2, [sp, #20]
|
|
3d9c: 8813 ldrh r3, [r2, #0]
|
|
3d9e: 4453 add r3, sl
|
|
3da0: b29b uxth r3, r3
|
|
value_area.y1 += p_align.y + yofs;
|
|
3da2: 8852 ldrh r2, [r2, #2]
|
|
3da4: 444a add r2, r9
|
|
3da6: b292 uxth r2, r2
|
|
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
|
|
3da8: 2010 movs r0, #16
|
|
3daa: 5e21 ldrsh r1, [r4, r0]
|
|
value_area.x1 += p_align.x + xofs;
|
|
3dac: 8836 ldrh r6, [r6, #0]
|
|
3dae: 199e adds r6, r3, r6
|
|
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
|
|
3db0: b236 sxth r6, r6
|
|
3db2: 1b8e subs r6, r1, r6
|
|
3db4: 42ae cmp r6, r5
|
|
3db6: da00 bge.n 3dba <lv_obj_get_draw_rect_ext_pad_size+0x186>
|
|
3db8: 002e movs r6, r5
|
|
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
|
|
3dba: 2112 movs r1, #18
|
|
3dbc: 5e60 ldrsh r0, [r4, r1]
|
|
value_area.y1 += p_align.y + yofs;
|
|
3dbe: a908 add r1, sp, #32
|
|
3dc0: 8849 ldrh r1, [r1, #2]
|
|
3dc2: 1851 adds r1, r2, r1
|
|
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
|
|
3dc4: b209 sxth r1, r1
|
|
3dc6: b236 sxth r6, r6
|
|
3dc8: 1a41 subs r1, r0, r1
|
|
3dca: 42b1 cmp r1, r6
|
|
3dcc: da00 bge.n 3dd0 <lv_obj_get_draw_rect_ext_pad_size+0x19c>
|
|
3dce: 0031 movs r1, r6
|
|
value_area.x2 += p_align.x + xofs;
|
|
3dd0: a808 add r0, sp, #32
|
|
3dd2: 8880 ldrh r0, [r0, #4]
|
|
3dd4: 181b adds r3, r3, r0
|
|
s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2);
|
|
3dd6: b21b sxth r3, r3
|
|
3dd8: 2514 movs r5, #20
|
|
3dda: 5f60 ldrsh r0, [r4, r5]
|
|
3ddc: b209 sxth r1, r1
|
|
3dde: 1a1b subs r3, r3, r0
|
|
3de0: 428b cmp r3, r1
|
|
3de2: da00 bge.n 3de6 <lv_obj_get_draw_rect_ext_pad_size+0x1b2>
|
|
3de4: 000b movs r3, r1
|
|
value_area.y2 += p_align.y + yofs;
|
|
3de6: a908 add r1, sp, #32
|
|
3de8: 88c9 ldrh r1, [r1, #6]
|
|
3dea: 1852 adds r2, r2, r1
|
|
s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2);
|
|
3dec: b212 sxth r2, r2
|
|
3dee: 2016 movs r0, #22
|
|
3df0: 5e21 ldrsh r1, [r4, r0]
|
|
3df2: b21b sxth r3, r3
|
|
3df4: 1a52 subs r2, r2, r1
|
|
3df6: 429a cmp r2, r3
|
|
3df8: da00 bge.n 3dfc <lv_obj_get_draw_rect_ext_pad_size+0x1c8>
|
|
3dfa: 001a movs r2, r3
|
|
3dfc: b215 sxth r5, r2
|
|
3dfe: e736 b.n 3c6e <lv_obj_get_draw_rect_ext_pad_size+0x3a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
3e00: 224c movs r2, #76 ; 0x4c
|
|
3e02: 9904 ldr r1, [sp, #16]
|
|
3e04: 0020 movs r0, r4
|
|
3e06: 4b0a ldr r3, [pc, #40] ; (3e30 <lv_obj_get_draw_rect_ext_pad_size+0x1fc>)
|
|
3e08: 4798 blx r3
|
|
if(outline_opa > LV_OPA_MIN) {
|
|
3e0a: 2805 cmp r0, #5
|
|
3e0c: d800 bhi.n 3e10 <lv_obj_get_draw_rect_ext_pad_size+0x1dc>
|
|
3e0e: e736 b.n 3c7e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
|
|
3e10: 2241 movs r2, #65 ; 0x41
|
|
3e12: 9904 ldr r1, [sp, #16]
|
|
3e14: 0020 movs r0, r4
|
|
3e16: 4b04 ldr r3, [pc, #16] ; (3e28 <lv_obj_get_draw_rect_ext_pad_size+0x1f4>)
|
|
3e18: 4798 blx r3
|
|
s = LV_MATH_MAX(s, outline_pad + outline_width);
|
|
3e1a: 1986 adds r6, r0, r6
|
|
3e1c: 42ae cmp r6, r5
|
|
3e1e: da00 bge.n 3e22 <lv_obj_get_draw_rect_ext_pad_size+0x1ee>
|
|
3e20: 002e movs r6, r5
|
|
3e22: b235 sxth r5, r6
|
|
3e24: e72b b.n 3c7e <lv_obj_get_draw_rect_ext_pad_size+0x4a>
|
|
3e26: 46c0 nop ; (mov r8, r8)
|
|
3e28: 00002db1 .word 0x00002db1
|
|
3e2c: 00002fc1 .word 0x00002fc1
|
|
3e30: 00002f15 .word 0x00002f15
|
|
3e34: 00007c18 .word 0x00007c18
|
|
3e38: 00011ae5 .word 0x00011ae5
|
|
3e3c: 0000ff41 .word 0x0000ff41
|
|
|
|
00003e40 <lv_obj_signal>:
|
|
{
|
|
3e40: b510 push {r4, lr}
|
|
3e42: 0004 movs r4, r0
|
|
if(sign == LV_SIGNAL_GET_STYLE) {
|
|
3e44: 2908 cmp r1, #8
|
|
3e46: d01b beq.n 3e80 <lv_obj_signal+0x40>
|
|
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
|
|
3e48: 2907 cmp r1, #7
|
|
3e4a: d024 beq.n 3e96 <lv_obj_signal+0x56>
|
|
if(sign == LV_SIGNAL_CHILD_CHG) {
|
|
3e4c: 2901 cmp r1, #1
|
|
3e4e: d027 beq.n 3ea0 <lv_obj_signal+0x60>
|
|
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
|
|
3e50: 2906 cmp r1, #6
|
|
3e52: d02b beq.n 3eac <lv_obj_signal+0x6c>
|
|
else if(sign == LV_SIGNAL_PARENT_SIZE_CHG) {
|
|
3e54: 2903 cmp r1, #3
|
|
3e56: d035 beq.n 3ec4 <lv_obj_signal+0x84>
|
|
else if(sign == LV_SIGNAL_STYLE_CHG) {
|
|
3e58: 2904 cmp r1, #4
|
|
3e5a: d03d beq.n 3ed8 <lv_obj_signal+0x98>
|
|
else if(sign == LV_SIGNAL_PRESSED) {
|
|
3e5c: 290b cmp r1, #11
|
|
3e5e: d03f beq.n 3ee0 <lv_obj_signal+0xa0>
|
|
else if(sign == LV_SIGNAL_RELEASED || sign == LV_SIGNAL_PRESS_LOST) {
|
|
3e60: 000b movs r3, r1
|
|
3e62: 3b0d subs r3, #13
|
|
3e64: 2b01 cmp r3, #1
|
|
3e66: d940 bls.n 3eea <lv_obj_signal+0xaa>
|
|
else if(sign == LV_SIGNAL_FOCUS) {
|
|
3e68: 2916 cmp r1, #22
|
|
3e6a: d043 beq.n 3ef4 <lv_obj_signal+0xb4>
|
|
else if(sign == LV_SIGNAL_DEFOCUS) {
|
|
3e6c: 2917 cmp r1, #23
|
|
3e6e: d057 beq.n 3f20 <lv_obj_signal+0xe0>
|
|
lv_res_t res = LV_RES_OK;
|
|
3e70: 2001 movs r0, #1
|
|
else if(sign == LV_SIGNAL_CLEANUP) {
|
|
3e72: 2900 cmp r1, #0
|
|
3e74: d10a bne.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
|
|
3e76: 0020 movs r0, r4
|
|
3e78: 4b2c ldr r3, [pc, #176] ; (3f2c <lv_obj_signal+0xec>)
|
|
3e7a: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3e7c: 2001 movs r0, #1
|
|
3e7e: e005 b.n 3e8c <lv_obj_signal+0x4c>
|
|
if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list;
|
|
3e80: 7813 ldrb r3, [r2, #0]
|
|
3e82: 2b00 cmp r3, #0
|
|
3e84: d103 bne.n 3e8e <lv_obj_signal+0x4e>
|
|
3e86: 3428 adds r4, #40 ; 0x28
|
|
3e88: 6054 str r4, [r2, #4]
|
|
return LV_RES_OK;
|
|
3e8a: 2001 movs r0, #1
|
|
}
|
|
3e8c: bd10 pop {r4, pc}
|
|
else info->result = NULL;
|
|
3e8e: 2300 movs r3, #0
|
|
3e90: 6053 str r3, [r2, #4]
|
|
return LV_RES_OK;
|
|
3e92: 2001 movs r0, #1
|
|
3e94: e7fa b.n 3e8c <lv_obj_signal+0x4c>
|
|
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
|
|
3e96: 4926 ldr r1, [pc, #152] ; (3f30 <lv_obj_signal+0xf0>)
|
|
3e98: 0010 movs r0, r2
|
|
3e9a: 4b26 ldr r3, [pc, #152] ; (3f34 <lv_obj_signal+0xf4>)
|
|
3e9c: 4798 blx r3
|
|
3e9e: e7f5 b.n 3e8c <lv_obj_signal+0x4c>
|
|
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
|
|
3ea0: 4b25 ldr r3, [pc, #148] ; (3f38 <lv_obj_signal+0xf8>)
|
|
3ea2: 4798 blx r3
|
|
3ea4: 2301 movs r3, #1
|
|
3ea6: 4058 eors r0, r3
|
|
return LV_RES_OK;
|
|
3ea8: b2c0 uxtb r0, r0
|
|
3eaa: e7ef b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN);
|
|
3eac: 2100 movs r1, #0
|
|
3eae: 4b23 ldr r3, [pc, #140] ; (3f3c <lv_obj_signal+0xfc>)
|
|
3eb0: 4798 blx r3
|
|
obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d);
|
|
3eb2: 8e63 ldrh r3, [r4, #50] ; 0x32
|
|
3eb4: 1c1a adds r2, r3, #0
|
|
3eb6: b21b sxth r3, r3
|
|
3eb8: 4283 cmp r3, r0
|
|
3eba: da00 bge.n 3ebe <lv_obj_signal+0x7e>
|
|
3ebc: 1c02 adds r2, r0, #0
|
|
3ebe: 8662 strh r2, [r4, #50] ; 0x32
|
|
lv_res_t res = LV_RES_OK;
|
|
3ec0: 2001 movs r0, #1
|
|
3ec2: e7e3 b.n 3e8c <lv_obj_signal+0x4c>
|
|
if(obj->realign.auto_realign) {
|
|
3ec4: 2349 movs r3, #73 ; 0x49
|
|
3ec6: 5cc3 ldrb r3, [r0, r3]
|
|
lv_res_t res = LV_RES_OK;
|
|
3ec8: 2001 movs r0, #1
|
|
if(obj->realign.auto_realign) {
|
|
3eca: 07db lsls r3, r3, #31
|
|
3ecc: d5de bpl.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_realign(obj);
|
|
3ece: 0020 movs r0, r4
|
|
3ed0: 4b1b ldr r3, [pc, #108] ; (3f40 <lv_obj_signal+0x100>)
|
|
3ed2: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3ed4: 2001 movs r0, #1
|
|
3ed6: e7d9 b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_refresh_ext_draw_pad(obj);
|
|
3ed8: 4b1a ldr r3, [pc, #104] ; (3f44 <lv_obj_signal+0x104>)
|
|
3eda: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3edc: 2001 movs r0, #1
|
|
3ede: e7d5 b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_add_state(obj, LV_STATE_PRESSED);
|
|
3ee0: 3105 adds r1, #5
|
|
3ee2: 4b19 ldr r3, [pc, #100] ; (3f48 <lv_obj_signal+0x108>)
|
|
3ee4: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3ee6: 2001 movs r0, #1
|
|
3ee8: e7d0 b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_clear_state(obj, LV_STATE_PRESSED);
|
|
3eea: 2110 movs r1, #16
|
|
3eec: 4b17 ldr r3, [pc, #92] ; (3f4c <lv_obj_signal+0x10c>)
|
|
3eee: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3ef0: 2001 movs r0, #1
|
|
3ef2: e7cb b.n 3e8c <lv_obj_signal+0x4c>
|
|
if(lv_group_get_editing(lv_obj_get_group(obj))) {
|
|
3ef4: 4b16 ldr r3, [pc, #88] ; (3f50 <lv_obj_signal+0x110>)
|
|
3ef6: 4798 blx r3
|
|
3ef8: 4b16 ldr r3, [pc, #88] ; (3f54 <lv_obj_signal+0x114>)
|
|
3efa: 4798 blx r3
|
|
3efc: 2800 cmp r0, #0
|
|
3efe: d005 beq.n 3f0c <lv_obj_signal+0xcc>
|
|
lv_obj_add_state(obj, state);
|
|
3f00: 2106 movs r1, #6
|
|
3f02: 0020 movs r0, r4
|
|
3f04: 4b10 ldr r3, [pc, #64] ; (3f48 <lv_obj_signal+0x108>)
|
|
3f06: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3f08: 2001 movs r0, #1
|
|
3f0a: e7bf b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_add_state(obj, LV_STATE_FOCUSED);
|
|
3f0c: 2102 movs r1, #2
|
|
3f0e: 0020 movs r0, r4
|
|
3f10: 4b0d ldr r3, [pc, #52] ; (3f48 <lv_obj_signal+0x108>)
|
|
3f12: 4798 blx r3
|
|
lv_obj_clear_state(obj, LV_STATE_EDITED);
|
|
3f14: 2104 movs r1, #4
|
|
3f16: 0020 movs r0, r4
|
|
3f18: 4b0c ldr r3, [pc, #48] ; (3f4c <lv_obj_signal+0x10c>)
|
|
3f1a: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3f1c: 2001 movs r0, #1
|
|
3f1e: e7b5 b.n 3e8c <lv_obj_signal+0x4c>
|
|
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
|
|
3f20: 3911 subs r1, #17
|
|
3f22: 4b0a ldr r3, [pc, #40] ; (3f4c <lv_obj_signal+0x10c>)
|
|
3f24: 4798 blx r3
|
|
lv_res_t res = LV_RES_OK;
|
|
3f26: 2001 movs r0, #1
|
|
3f28: e7b0 b.n 3e8c <lv_obj_signal+0x4c>
|
|
3f2a: 46c0 nop ; (mov r8, r8)
|
|
3f2c: 00001dd5 .word 0x00001dd5
|
|
3f30: 0001879c .word 0x0001879c
|
|
3f34: 00003669 .word 0x00003669
|
|
3f38: 00002d2d .word 0x00002d2d
|
|
3f3c: 00003c35 .word 0x00003c35
|
|
3f40: 000024e5 .word 0x000024e5
|
|
3f44: 00001a6d .word 0x00001a6d
|
|
3f48: 00003581 .word 0x00003581
|
|
3f4c: 000035c1 .word 0x000035c1
|
|
3f50: 00003601 .word 0x00003601
|
|
3f54: 0000175b .word 0x0000175b
|
|
|
|
00003f58 <lv_refr_get_top_obj>:
|
|
* @param area_p pointer to an area
|
|
* @param obj the first object to start the searching (typically a screen)
|
|
* @return
|
|
*/
|
|
static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
|
|
{
|
|
3f58: b5f0 push {r4, r5, r6, r7, lr}
|
|
3f5a: 46ce mov lr, r9
|
|
3f5c: b500 push {lr}
|
|
3f5e: b082 sub sp, #8
|
|
3f60: 0004 movs r4, r0
|
|
3f62: 9001 str r0, [sp, #4]
|
|
3f64: 000d movs r5, r1
|
|
lv_obj_t * found_p = NULL;
|
|
|
|
/*If this object is fully cover the draw area check the children too */
|
|
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
|
|
3f66: 3110 adds r1, #16
|
|
3f68: 2200 movs r2, #0
|
|
3f6a: 4b1f ldr r3, [pc, #124] ; (3fe8 <lv_refr_get_top_obj+0x90>)
|
|
3f6c: 4798 blx r3
|
|
3f6e: 2800 cmp r0, #0
|
|
3f70: d027 beq.n 3fc2 <lv_refr_get_top_obj+0x6a>
|
|
3f72: 2334 movs r3, #52 ; 0x34
|
|
3f74: 5ceb ldrb r3, [r5, r3]
|
|
3f76: 06db lsls r3, r3, #27
|
|
3f78: d425 bmi.n 3fc6 <lv_refr_get_top_obj+0x6e>
|
|
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
|
|
3f7a: 6a2b ldr r3, [r5, #32]
|
|
3f7c: 2b00 cmp r3, #0
|
|
3f7e: d028 beq.n 3fd2 <lv_refr_get_top_obj+0x7a>
|
|
3f80: 2202 movs r2, #2
|
|
3f82: 0021 movs r1, r4
|
|
3f84: 0028 movs r0, r5
|
|
3f86: 4798 blx r3
|
|
3f88: 4681 mov r9, r0
|
|
LV_DESIGN_COVER_CHK) : LV_DESIGN_RES_NOT_COVER;
|
|
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
|
|
3f8a: 2803 cmp r0, #3
|
|
3f8c: d01d beq.n 3fca <lv_refr_get_top_obj+0x72>
|
|
|
|
lv_obj_t * i;
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
3f8e: 1d2e adds r6, r5, #4
|
|
3f90: 0030 movs r0, r6
|
|
3f92: 4b16 ldr r3, [pc, #88] ; (3fec <lv_refr_get_top_obj+0x94>)
|
|
3f94: 4798 blx r3
|
|
3f96: 1e04 subs r4, r0, #0
|
|
3f98: d00b beq.n 3fb2 <lv_refr_get_top_obj+0x5a>
|
|
3f9a: 4f15 ldr r7, [pc, #84] ; (3ff0 <lv_refr_get_top_obj+0x98>)
|
|
found_p = lv_refr_get_top_obj(area_p, i);
|
|
3f9c: 0021 movs r1, r4
|
|
3f9e: 9801 ldr r0, [sp, #4]
|
|
3fa0: f7ff ffda bl 3f58 <lv_refr_get_top_obj>
|
|
|
|
/*If a children is ok then break*/
|
|
if(found_p != NULL) {
|
|
3fa4: 2800 cmp r0, #0
|
|
3fa6: d108 bne.n 3fba <lv_refr_get_top_obj+0x62>
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
3fa8: 0021 movs r1, r4
|
|
3faa: 0030 movs r0, r6
|
|
3fac: 47b8 blx r7
|
|
3fae: 1e04 subs r4, r0, #0
|
|
3fb0: d1f4 bne.n 3f9c <lv_refr_get_top_obj+0x44>
|
|
3fb2: 2000 movs r0, #0
|
|
}
|
|
}
|
|
|
|
/*If no better children use this object*/
|
|
if(found_p == NULL) {
|
|
if(design_res == LV_DESIGN_RES_COVER) {
|
|
3fb4: 464b mov r3, r9
|
|
3fb6: 2b01 cmp r3, #1
|
|
3fb8: d009 beq.n 3fce <lv_refr_get_top_obj+0x76>
|
|
}
|
|
}
|
|
}
|
|
|
|
return found_p;
|
|
}
|
|
3fba: b002 add sp, #8
|
|
3fbc: bc04 pop {r2}
|
|
3fbe: 4691 mov r9, r2
|
|
3fc0: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_obj_t * found_p = NULL;
|
|
3fc2: 2000 movs r0, #0
|
|
3fc4: e7f9 b.n 3fba <lv_refr_get_top_obj+0x62>
|
|
3fc6: 2000 movs r0, #0
|
|
3fc8: e7f7 b.n 3fba <lv_refr_get_top_obj+0x62>
|
|
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
|
|
3fca: 2000 movs r0, #0
|
|
3fcc: e7f5 b.n 3fba <lv_refr_get_top_obj+0x62>
|
|
found_p = obj;
|
|
3fce: 0028 movs r0, r5
|
|
3fd0: e7f3 b.n 3fba <lv_refr_get_top_obj+0x62>
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
3fd2: 1d2e adds r6, r5, #4
|
|
3fd4: 0030 movs r0, r6
|
|
3fd6: 4b05 ldr r3, [pc, #20] ; (3fec <lv_refr_get_top_obj+0x94>)
|
|
3fd8: 4798 blx r3
|
|
3fda: 0004 movs r4, r0
|
|
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
|
|
3fdc: 2302 movs r3, #2
|
|
3fde: 4699 mov r9, r3
|
|
_LV_LL_READ(obj->child_ll, i) {
|
|
3fe0: 2800 cmp r0, #0
|
|
3fe2: d1da bne.n 3f9a <lv_refr_get_top_obj+0x42>
|
|
3fe4: e7e9 b.n 3fba <lv_refr_get_top_obj+0x62>
|
|
3fe6: 46c0 nop ; (mov r8, r8)
|
|
3fe8: 0000fe9d .word 0x0000fe9d
|
|
3fec: 0001066d .word 0x0001066d
|
|
3ff0: 00010685 .word 0x00010685
|
|
|
|
00003ff4 <lv_refr_obj>:
|
|
* Refresh an object an all of its children. (Called recursively)
|
|
* @param obj pointer to an object to refresh
|
|
* @param mask_ori_p pointer to an area, the objects will be drawn only here
|
|
*/
|
|
static void lv_refr_obj(lv_obj_t * obj, const lv_area_t * mask_ori_p)
|
|
{
|
|
3ff4: b5f0 push {r4, r5, r6, r7, lr}
|
|
3ff6: 46d6 mov lr, sl
|
|
3ff8: 464f mov r7, r9
|
|
3ffa: b580 push {r7, lr}
|
|
3ffc: b08d sub sp, #52 ; 0x34
|
|
3ffe: 0007 movs r7, r0
|
|
4000: 000d movs r5, r1
|
|
/*Do not refresh hidden objects*/
|
|
if(obj->hidden != 0) return;
|
|
4002: 2334 movs r3, #52 ; 0x34
|
|
4004: 5cc3 ldrb r3, [r0, r3]
|
|
4006: 06db lsls r3, r3, #27
|
|
4008: d504 bpl.n 4014 <lv_refr_obj+0x20>
|
|
}
|
|
|
|
/* If all the children are redrawn make 'post draw' design */
|
|
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
|
|
}
|
|
}
|
|
400a: b00d add sp, #52 ; 0x34
|
|
400c: bc0c pop {r2, r3}
|
|
400e: 4691 mov r9, r2
|
|
4010: 469a mov sl, r3
|
|
4012: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_coord_t ext_size = obj->ext_draw_pad;
|
|
4014: 2332 movs r3, #50 ; 0x32
|
|
4016: 5ec6 ldrsh r6, [r0, r3]
|
|
lv_obj_get_coords(obj, &obj_area);
|
|
4018: ac06 add r4, sp, #24
|
|
401a: 0021 movs r1, r4
|
|
401c: 4b2e ldr r3, [pc, #184] ; (40d8 <lv_refr_obj+0xe4>)
|
|
401e: 4798 blx r3
|
|
obj_area.x1 -= ext_size;
|
|
4020: b2b3 uxth r3, r6
|
|
4022: 8822 ldrh r2, [r4, #0]
|
|
4024: 1ad2 subs r2, r2, r3
|
|
4026: 8022 strh r2, [r4, #0]
|
|
obj_area.y1 -= ext_size;
|
|
4028: 8862 ldrh r2, [r4, #2]
|
|
402a: 1ad2 subs r2, r2, r3
|
|
402c: 8062 strh r2, [r4, #2]
|
|
obj_area.x2 += ext_size;
|
|
402e: 88a2 ldrh r2, [r4, #4]
|
|
4030: 189a adds r2, r3, r2
|
|
4032: 80a2 strh r2, [r4, #4]
|
|
obj_area.y2 += ext_size;
|
|
4034: 88e2 ldrh r2, [r4, #6]
|
|
4036: 189b adds r3, r3, r2
|
|
4038: 80e3 strh r3, [r4, #6]
|
|
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
|
|
403a: 0022 movs r2, r4
|
|
403c: 0029 movs r1, r5
|
|
403e: a808 add r0, sp, #32
|
|
4040: 4b26 ldr r3, [pc, #152] ; (40dc <lv_refr_obj+0xe8>)
|
|
4042: 4798 blx r3
|
|
if(union_ok != false) {
|
|
4044: 2800 cmp r0, #0
|
|
4046: d0e0 beq.n 400a <lv_refr_obj+0x16>
|
|
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN);
|
|
4048: 6a3b ldr r3, [r7, #32]
|
|
404a: 2b00 cmp r3, #0
|
|
404c: d003 beq.n 4056 <lv_refr_obj+0x62>
|
|
404e: 2200 movs r2, #0
|
|
4050: a908 add r1, sp, #32
|
|
4052: 0038 movs r0, r7
|
|
4054: 4798 blx r3
|
|
lv_obj_get_coords(obj, &obj_area);
|
|
4056: a906 add r1, sp, #24
|
|
4058: 0038 movs r0, r7
|
|
405a: 4b1f ldr r3, [pc, #124] ; (40d8 <lv_refr_obj+0xe4>)
|
|
405c: 4798 blx r3
|
|
union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area);
|
|
405e: aa06 add r2, sp, #24
|
|
4060: 0029 movs r1, r5
|
|
4062: a80a add r0, sp, #40 ; 0x28
|
|
4064: 4b1d ldr r3, [pc, #116] ; (40dc <lv_refr_obj+0xe8>)
|
|
4066: 4798 blx r3
|
|
if(union_ok != false) {
|
|
4068: 2800 cmp r0, #0
|
|
406a: d107 bne.n 407c <lv_refr_obj+0x88>
|
|
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
|
|
406c: 6a3b ldr r3, [r7, #32]
|
|
406e: 2b00 cmp r3, #0
|
|
4070: d0cb beq.n 400a <lv_refr_obj+0x16>
|
|
4072: 2201 movs r2, #1
|
|
4074: a908 add r1, sp, #32
|
|
4076: 0038 movs r0, r7
|
|
4078: 4798 blx r3
|
|
407a: e7c6 b.n 400a <lv_refr_obj+0x16>
|
|
_LV_LL_READ_BACK(obj->child_ll, child_p) {
|
|
407c: 1d3b adds r3, r7, #4
|
|
407e: 9301 str r3, [sp, #4]
|
|
4080: 0018 movs r0, r3
|
|
4082: 4b17 ldr r3, [pc, #92] ; (40e0 <lv_refr_obj+0xec>)
|
|
4084: 4798 blx r3
|
|
4086: 1e05 subs r5, r0, #0
|
|
4088: d0f0 beq.n 406c <lv_refr_obj+0x78>
|
|
lv_obj_get_coords(child_p, &child_area);
|
|
408a: 4b13 ldr r3, [pc, #76] ; (40d8 <lv_refr_obj+0xe4>)
|
|
408c: 469a mov sl, r3
|
|
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
|
|
408e: 4b13 ldr r3, [pc, #76] ; (40dc <lv_refr_obj+0xe8>)
|
|
4090: 4699 mov r9, r3
|
|
_LV_LL_READ_BACK(obj->child_ll, child_p) {
|
|
4092: 4e14 ldr r6, [pc, #80] ; (40e4 <lv_refr_obj+0xf0>)
|
|
4094: e004 b.n 40a0 <lv_refr_obj+0xac>
|
|
4096: 0029 movs r1, r5
|
|
4098: 9801 ldr r0, [sp, #4]
|
|
409a: 47b0 blx r6
|
|
409c: 1e05 subs r5, r0, #0
|
|
409e: d0e5 beq.n 406c <lv_refr_obj+0x78>
|
|
lv_obj_get_coords(child_p, &child_area);
|
|
40a0: ac04 add r4, sp, #16
|
|
40a2: 0021 movs r1, r4
|
|
40a4: 0028 movs r0, r5
|
|
40a6: 47d0 blx sl
|
|
child_area.x1 -= ext_size;
|
|
40a8: 8e6b ldrh r3, [r5, #50] ; 0x32
|
|
40aa: 8822 ldrh r2, [r4, #0]
|
|
40ac: 1ad2 subs r2, r2, r3
|
|
40ae: 8022 strh r2, [r4, #0]
|
|
child_area.y1 -= ext_size;
|
|
40b0: 8862 ldrh r2, [r4, #2]
|
|
40b2: 1ad2 subs r2, r2, r3
|
|
40b4: 8062 strh r2, [r4, #2]
|
|
child_area.x2 += ext_size;
|
|
40b6: 88a2 ldrh r2, [r4, #4]
|
|
40b8: 189a adds r2, r3, r2
|
|
40ba: 80a2 strh r2, [r4, #4]
|
|
child_area.y2 += ext_size;
|
|
40bc: 88e2 ldrh r2, [r4, #6]
|
|
40be: 189b adds r3, r3, r2
|
|
40c0: 80e3 strh r3, [r4, #6]
|
|
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
|
|
40c2: 0022 movs r2, r4
|
|
40c4: a90a add r1, sp, #40 ; 0x28
|
|
40c6: a802 add r0, sp, #8
|
|
40c8: 47c8 blx r9
|
|
if(union_ok) {
|
|
40ca: 2800 cmp r0, #0
|
|
40cc: d0e3 beq.n 4096 <lv_refr_obj+0xa2>
|
|
lv_refr_obj(child_p, &mask_child);
|
|
40ce: a902 add r1, sp, #8
|
|
40d0: 0028 movs r0, r5
|
|
40d2: f7ff ff8f bl 3ff4 <lv_refr_obj>
|
|
40d6: e7de b.n 4096 <lv_refr_obj+0xa2>
|
|
40d8: 00001bd5 .word 0x00001bd5
|
|
40dc: 0000fc0f .word 0x0000fc0f
|
|
40e0: 00010679 .word 0x00010679
|
|
40e4: 000106ad .word 0x000106ad
|
|
|
|
000040e8 <lv_refr_obj_and_children>:
|
|
{
|
|
40e8: b5f0 push {r4, r5, r6, r7, lr}
|
|
40ea: 46d6 mov lr, sl
|
|
40ec: b500 push {lr}
|
|
40ee: b082 sub sp, #8
|
|
40f0: 1e04 subs r4, r0, #0
|
|
40f2: 9101 str r1, [sp, #4]
|
|
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
|
|
40f4: d00d beq.n 4112 <lv_refr_obj_and_children+0x2a>
|
|
lv_refr_obj(top_p, mask_p);
|
|
40f6: 9901 ldr r1, [sp, #4]
|
|
40f8: 0020 movs r0, r4
|
|
40fa: 4b1a ldr r3, [pc, #104] ; (4164 <lv_refr_obj_and_children+0x7c>)
|
|
40fc: 4798 blx r3
|
|
par = lv_obj_get_parent(top_p);
|
|
40fe: 0020 movs r0, r4
|
|
4100: 4b19 ldr r3, [pc, #100] ; (4168 <lv_refr_obj_and_children+0x80>)
|
|
4102: 4798 blx r3
|
|
4104: 1e05 subs r5, r0, #0
|
|
while(par != NULL) {
|
|
4106: d00a beq.n 411e <lv_refr_obj_and_children+0x36>
|
|
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
|
|
4108: 4b18 ldr r3, [pc, #96] ; (416c <lv_refr_obj_and_children+0x84>)
|
|
410a: 469a mov sl, r3
|
|
lv_refr_obj(i, mask_p);
|
|
410c: 4e15 ldr r6, [pc, #84] ; (4164 <lv_refr_obj_and_children+0x7c>)
|
|
i = _lv_ll_get_prev(&(par->child_ll), i);
|
|
410e: 001f movs r7, r3
|
|
4110: e010 b.n 4134 <lv_refr_obj_and_children+0x4c>
|
|
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
|
|
4112: 4b17 ldr r3, [pc, #92] ; (4170 <lv_refr_obj_and_children+0x88>)
|
|
4114: 6818 ldr r0, [r3, #0]
|
|
4116: 4b17 ldr r3, [pc, #92] ; (4174 <lv_refr_obj_and_children+0x8c>)
|
|
4118: 4798 blx r3
|
|
411a: 1e04 subs r4, r0, #0
|
|
if(top_p == NULL) return; /*Shouldn't happen*/
|
|
411c: d1eb bne.n 40f6 <lv_refr_obj_and_children+0xe>
|
|
}
|
|
411e: b002 add sp, #8
|
|
4120: bc04 pop {r2}
|
|
4122: 4692 mov sl, r2
|
|
4124: bdf0 pop {r4, r5, r6, r7, pc}
|
|
par = lv_obj_get_parent(par);
|
|
4126: 0028 movs r0, r5
|
|
4128: 4b0f ldr r3, [pc, #60] ; (4168 <lv_refr_obj_and_children+0x80>)
|
|
412a: 4798 blx r3
|
|
412c: 002c movs r4, r5
|
|
while(par != NULL) {
|
|
412e: 2800 cmp r0, #0
|
|
4130: d0f5 beq.n 411e <lv_refr_obj_and_children+0x36>
|
|
par = lv_obj_get_parent(par);
|
|
4132: 0005 movs r5, r0
|
|
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
|
|
4134: 1d2b adds r3, r5, #4
|
|
4136: 9300 str r3, [sp, #0]
|
|
4138: 0021 movs r1, r4
|
|
413a: 0018 movs r0, r3
|
|
413c: 47d0 blx sl
|
|
413e: 1e04 subs r4, r0, #0
|
|
while(i != NULL) {
|
|
4140: d007 beq.n 4152 <lv_refr_obj_and_children+0x6a>
|
|
lv_refr_obj(i, mask_p);
|
|
4142: 9901 ldr r1, [sp, #4]
|
|
4144: 0020 movs r0, r4
|
|
4146: 47b0 blx r6
|
|
i = _lv_ll_get_prev(&(par->child_ll), i);
|
|
4148: 0021 movs r1, r4
|
|
414a: 9800 ldr r0, [sp, #0]
|
|
414c: 47b8 blx r7
|
|
414e: 1e04 subs r4, r0, #0
|
|
while(i != NULL) {
|
|
4150: d1f7 bne.n 4142 <lv_refr_obj_and_children+0x5a>
|
|
if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST);
|
|
4152: 6a2b ldr r3, [r5, #32]
|
|
4154: 2b00 cmp r3, #0
|
|
4156: d0e6 beq.n 4126 <lv_refr_obj_and_children+0x3e>
|
|
4158: 2201 movs r2, #1
|
|
415a: 9901 ldr r1, [sp, #4]
|
|
415c: 0028 movs r0, r5
|
|
415e: 4798 blx r3
|
|
4160: e7e1 b.n 4126 <lv_refr_obj_and_children+0x3e>
|
|
4162: 46c0 nop ; (mov r8, r8)
|
|
4164: 00003ff5 .word 0x00003ff5
|
|
4168: 00001aa1 .word 0x00001aa1
|
|
416c: 000106ad .word 0x000106ad
|
|
4170: 200026e8 .word 0x200026e8
|
|
4174: 000014ad .word 0x000014ad
|
|
|
|
00004178 <lv_refr_vdb_flush>:
|
|
|
|
/**
|
|
* Flush the content of the VDB
|
|
*/
|
|
static void lv_refr_vdb_flush(void)
|
|
{
|
|
4178: b570 push {r4, r5, r6, lr}
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
|
|
417a: 4d1c ldr r5, [pc, #112] ; (41ec <lv_refr_vdb_flush+0x74>)
|
|
417c: 6828 ldr r0, [r5, #0]
|
|
417e: 4b1c ldr r3, [pc, #112] ; (41f0 <lv_refr_vdb_flush+0x78>)
|
|
4180: 4798 blx r3
|
|
4182: 0004 movs r4, r0
|
|
|
|
/*In double buffered mode wait until the other buffer is flushed before flushing the current
|
|
* one*/
|
|
if(lv_disp_is_double_buf(disp_refr)) {
|
|
4184: 6828 ldr r0, [r5, #0]
|
|
4186: 4b1b ldr r3, [pc, #108] ; (41f4 <lv_refr_vdb_flush+0x7c>)
|
|
4188: 4798 blx r3
|
|
418a: 2800 cmp r0, #0
|
|
418c: d10d bne.n 41aa <lv_refr_vdb_flush+0x32>
|
|
while(vdb->flushing) {
|
|
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
|
|
}
|
|
}
|
|
|
|
vdb->flushing = 1;
|
|
418e: 2301 movs r3, #1
|
|
4190: 61a3 str r3, [r4, #24]
|
|
|
|
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
|
|
4192: 4b16 ldr r3, [pc, #88] ; (41ec <lv_refr_vdb_flush+0x74>)
|
|
4194: 6818 ldr r0, [r3, #0]
|
|
4196: 6843 ldr r3, [r0, #4]
|
|
4198: 6a1a ldr r2, [r3, #32]
|
|
419a: 07d2 lsls r2, r2, #31
|
|
419c: d50f bpl.n 41be <lv_refr_vdb_flush+0x46>
|
|
419e: 6a1b ldr r3, [r3, #32]
|
|
41a0: 079b lsls r3, r3, #30
|
|
41a2: d50c bpl.n 41be <lv_refr_vdb_flush+0x46>
|
|
41a4: 2301 movs r3, #1
|
|
41a6: 61e3 str r3, [r4, #28]
|
|
41a8: e00b b.n 41c2 <lv_refr_vdb_flush+0x4a>
|
|
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
|
|
41aa: 4d10 ldr r5, [pc, #64] ; (41ec <lv_refr_vdb_flush+0x74>)
|
|
41ac: 6828 ldr r0, [r5, #0]
|
|
while(vdb->flushing) {
|
|
41ae: 69a3 ldr r3, [r4, #24]
|
|
41b0: 2b00 cmp r3, #0
|
|
41b2: d0ec beq.n 418e <lv_refr_vdb_flush+0x16>
|
|
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
|
|
41b4: 69c3 ldr r3, [r0, #28]
|
|
41b6: 2b00 cmp r3, #0
|
|
41b8: d0f9 beq.n 41ae <lv_refr_vdb_flush+0x36>
|
|
41ba: 4798 blx r3
|
|
41bc: e7f6 b.n 41ac <lv_refr_vdb_flush+0x34>
|
|
else vdb->flushing_last = 0;
|
|
41be: 2300 movs r3, #0
|
|
41c0: 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);
|
|
41c2: 68c3 ldr r3, [r0, #12]
|
|
41c4: 2b00 cmp r3, #0
|
|
41c6: d003 beq.n 41d0 <lv_refr_vdb_flush+0x58>
|
|
41c8: 0021 movs r1, r4
|
|
41ca: 3110 adds r1, #16
|
|
41cc: 68a2 ldr r2, [r4, #8]
|
|
41ce: 4798 blx r3
|
|
|
|
if(vdb->buf1 && vdb->buf2) {
|
|
41d0: 6823 ldr r3, [r4, #0]
|
|
41d2: 2b00 cmp r3, #0
|
|
41d4: d006 beq.n 41e4 <lv_refr_vdb_flush+0x6c>
|
|
41d6: 6862 ldr r2, [r4, #4]
|
|
41d8: 2a00 cmp r2, #0
|
|
41da: d003 beq.n 41e4 <lv_refr_vdb_flush+0x6c>
|
|
if(vdb->buf_act == vdb->buf1)
|
|
41dc: 68a1 ldr r1, [r4, #8]
|
|
41de: 428b cmp r3, r1
|
|
41e0: d001 beq.n 41e6 <lv_refr_vdb_flush+0x6e>
|
|
vdb->buf_act = vdb->buf2;
|
|
else
|
|
vdb->buf_act = vdb->buf1;
|
|
41e2: 60a3 str r3, [r4, #8]
|
|
}
|
|
}
|
|
41e4: bd70 pop {r4, r5, r6, pc}
|
|
vdb->buf_act = vdb->buf2;
|
|
41e6: 60a2 str r2, [r4, #8]
|
|
41e8: e7fc b.n 41e4 <lv_refr_vdb_flush+0x6c>
|
|
41ea: 46c0 nop ; (mov r8, r8)
|
|
41ec: 200026e8 .word 0x200026e8
|
|
41f0: 0000f709 .word 0x0000f709
|
|
41f4: 0000f70d .word 0x0000f70d
|
|
|
|
000041f8 <lv_refr_area_part>:
|
|
{
|
|
41f8: b570 push {r4, r5, r6, lr}
|
|
41fa: b082 sub sp, #8
|
|
41fc: 0005 movs r5, r0
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
|
|
41fe: 4e1c ldr r6, [pc, #112] ; (4270 <lv_refr_area_part+0x78>)
|
|
4200: 6830 ldr r0, [r6, #0]
|
|
4202: 4b1c ldr r3, [pc, #112] ; (4274 <lv_refr_area_part+0x7c>)
|
|
4204: 4798 blx r3
|
|
4206: 0004 movs r4, r0
|
|
if(lv_disp_is_double_buf(disp_refr) == false) {
|
|
4208: 6830 ldr r0, [r6, #0]
|
|
420a: 4b1b ldr r3, [pc, #108] ; (4278 <lv_refr_area_part+0x80>)
|
|
420c: 4798 blx r3
|
|
420e: 2800 cmp r0, #0
|
|
4210: d109 bne.n 4226 <lv_refr_area_part+0x2e>
|
|
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
|
|
4212: 4e17 ldr r6, [pc, #92] ; (4270 <lv_refr_area_part+0x78>)
|
|
4214: 6830 ldr r0, [r6, #0]
|
|
while(vdb->flushing) {
|
|
4216: 69a3 ldr r3, [r4, #24]
|
|
4218: 2b00 cmp r3, #0
|
|
421a: d004 beq.n 4226 <lv_refr_area_part+0x2e>
|
|
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
|
|
421c: 69c3 ldr r3, [r0, #28]
|
|
421e: 2b00 cmp r3, #0
|
|
4220: d0f9 beq.n 4216 <lv_refr_area_part+0x1e>
|
|
4222: 4798 blx r3
|
|
4224: e7f6 b.n 4214 <lv_refr_area_part+0x1c>
|
|
_lv_area_intersect(&start_mask, area_p, &vdb->area);
|
|
4226: 0022 movs r2, r4
|
|
4228: 3210 adds r2, #16
|
|
422a: 0029 movs r1, r5
|
|
422c: 4668 mov r0, sp
|
|
422e: 4b13 ldr r3, [pc, #76] ; (427c <lv_refr_area_part+0x84>)
|
|
4230: 4798 blx r3
|
|
top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr));
|
|
4232: 4c0f ldr r4, [pc, #60] ; (4270 <lv_refr_area_part+0x78>)
|
|
4234: 6820 ldr r0, [r4, #0]
|
|
4236: 4b12 ldr r3, [pc, #72] ; (4280 <lv_refr_area_part+0x88>)
|
|
4238: 4798 blx r3
|
|
423a: 0001 movs r1, r0
|
|
423c: 4668 mov r0, sp
|
|
423e: 4b11 ldr r3, [pc, #68] ; (4284 <lv_refr_area_part+0x8c>)
|
|
4240: 4798 blx r3
|
|
lv_refr_obj_and_children(top_p, &start_mask);
|
|
4242: 4669 mov r1, sp
|
|
4244: 4d10 ldr r5, [pc, #64] ; (4288 <lv_refr_area_part+0x90>)
|
|
4246: 47a8 blx r5
|
|
lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask);
|
|
4248: 6820 ldr r0, [r4, #0]
|
|
424a: 4b10 ldr r3, [pc, #64] ; (428c <lv_refr_area_part+0x94>)
|
|
424c: 4798 blx r3
|
|
424e: 4669 mov r1, sp
|
|
4250: 47a8 blx r5
|
|
lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask);
|
|
4252: 6820 ldr r0, [r4, #0]
|
|
4254: 4b0e ldr r3, [pc, #56] ; (4290 <lv_refr_area_part+0x98>)
|
|
4256: 4798 blx r3
|
|
4258: 4669 mov r1, sp
|
|
425a: 47a8 blx r5
|
|
if(lv_disp_is_true_double_buf(disp_refr) == false) {
|
|
425c: 6820 ldr r0, [r4, #0]
|
|
425e: 4b0d ldr r3, [pc, #52] ; (4294 <lv_refr_area_part+0x9c>)
|
|
4260: 4798 blx r3
|
|
4262: 2800 cmp r0, #0
|
|
4264: d001 beq.n 426a <lv_refr_area_part+0x72>
|
|
}
|
|
4266: b002 add sp, #8
|
|
4268: bd70 pop {r4, r5, r6, pc}
|
|
lv_refr_vdb_flush();
|
|
426a: 4b0b ldr r3, [pc, #44] ; (4298 <lv_refr_area_part+0xa0>)
|
|
426c: 4798 blx r3
|
|
}
|
|
426e: e7fa b.n 4266 <lv_refr_area_part+0x6e>
|
|
4270: 200026e8 .word 0x200026e8
|
|
4274: 0000f709 .word 0x0000f709
|
|
4278: 0000f70d .word 0x0000f70d
|
|
427c: 0000fc0f .word 0x0000fc0f
|
|
4280: 000014ad .word 0x000014ad
|
|
4284: 00003f59 .word 0x00003f59
|
|
4288: 000040e9 .word 0x000040e9
|
|
428c: 000014c9 .word 0x000014c9
|
|
4290: 000014e5 .word 0x000014e5
|
|
4294: 0000f725 .word 0x0000f725
|
|
4298: 00004179 .word 0x00004179
|
|
|
|
0000429c <_lv_refr_init>:
|
|
}
|
|
429c: 4770 bx lr
|
|
...
|
|
|
|
000042a0 <_lv_inv_area>:
|
|
{
|
|
42a0: b5f0 push {r4, r5, r6, r7, lr}
|
|
42a2: b085 sub sp, #20
|
|
42a4: 0005 movs r5, r0
|
|
42a6: 000e movs r6, r1
|
|
if(!disp) disp = lv_disp_get_default();
|
|
42a8: 2800 cmp r0, #0
|
|
42aa: d057 beq.n 435c <_lv_inv_area+0xbc>
|
|
if(area_p == NULL) {
|
|
42ac: 2e00 cmp r6, #0
|
|
42ae: d05a beq.n 4366 <_lv_inv_area+0xc6>
|
|
scr_area.x1 = 0;
|
|
42b0: ac02 add r4, sp, #8
|
|
42b2: 2300 movs r3, #0
|
|
42b4: 8023 strh r3, [r4, #0]
|
|
scr_area.y1 = 0;
|
|
42b6: 8063 strh r3, [r4, #2]
|
|
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
|
|
42b8: 0028 movs r0, r5
|
|
42ba: 4b37 ldr r3, [pc, #220] ; (4398 <_lv_inv_area+0xf8>)
|
|
42bc: 4798 blx r3
|
|
42be: 3801 subs r0, #1
|
|
42c0: 80a0 strh r0, [r4, #4]
|
|
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
|
|
42c2: 0028 movs r0, r5
|
|
42c4: 4b35 ldr r3, [pc, #212] ; (439c <_lv_inv_area+0xfc>)
|
|
42c6: 4798 blx r3
|
|
42c8: 3801 subs r0, #1
|
|
42ca: 80e0 strh r0, [r4, #6]
|
|
suc = _lv_area_intersect(&com_area, area_p, &scr_area);
|
|
42cc: 0022 movs r2, r4
|
|
42ce: 0031 movs r1, r6
|
|
42d0: 4668 mov r0, sp
|
|
42d2: 4b33 ldr r3, [pc, #204] ; (43a0 <_lv_inv_area+0x100>)
|
|
42d4: 4798 blx r3
|
|
if(suc != false) {
|
|
42d6: 2800 cmp r0, #0
|
|
42d8: d04b beq.n 4372 <_lv_inv_area+0xd2>
|
|
if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area);
|
|
42da: 692b ldr r3, [r5, #16]
|
|
42dc: 2b00 cmp r3, #0
|
|
42de: d002 beq.n 42e6 <_lv_inv_area+0x46>
|
|
42e0: 4669 mov r1, sp
|
|
42e2: 0028 movs r0, r5
|
|
42e4: 4798 blx r3
|
|
for(i = 0; i < disp->inv_p; i++) {
|
|
42e6: 23b4 movs r3, #180 ; 0xb4
|
|
42e8: 005b lsls r3, r3, #1
|
|
42ea: 5aeb ldrh r3, [r5, r3]
|
|
42ec: 059b lsls r3, r3, #22
|
|
42ee: 0d9b lsrs r3, r3, #22
|
|
42f0: 2b00 cmp r3, #0
|
|
42f2: dd14 ble.n 431e <_lv_inv_area+0x7e>
|
|
42f4: 2100 movs r1, #0
|
|
42f6: 2400 movs r4, #0
|
|
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
|
|
42f8: 4e2a ldr r6, [pc, #168] ; (43a4 <_lv_inv_area+0x104>)
|
|
for(i = 0; i < disp->inv_p; i++) {
|
|
42fa: 27b4 movs r7, #180 ; 0xb4
|
|
42fc: 007f lsls r7, r7, #1
|
|
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
|
|
42fe: 3109 adds r1, #9
|
|
4300: 00c9 lsls r1, r1, #3
|
|
4302: 1869 adds r1, r5, r1
|
|
4304: 2200 movs r2, #0
|
|
4306: 4668 mov r0, sp
|
|
4308: 47b0 blx r6
|
|
430a: 2800 cmp r0, #0
|
|
430c: d131 bne.n 4372 <_lv_inv_area+0xd2>
|
|
for(i = 0; i < disp->inv_p; i++) {
|
|
430e: 3401 adds r4, #1
|
|
4310: b2a4 uxth r4, r4
|
|
4312: 0021 movs r1, r4
|
|
4314: 5beb ldrh r3, [r5, r7]
|
|
4316: 059b lsls r3, r3, #22
|
|
4318: 0d9b lsrs r3, r3, #22
|
|
431a: 429c cmp r4, r3
|
|
431c: dbef blt.n 42fe <_lv_inv_area+0x5e>
|
|
if(disp->inv_p < LV_INV_BUF_SIZE) {
|
|
431e: 2b1f cmp r3, #31
|
|
4320: dc29 bgt.n 4376 <_lv_inv_area+0xd6>
|
|
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
|
|
4322: 3309 adds r3, #9
|
|
4324: 00db lsls r3, r3, #3
|
|
4326: 18eb adds r3, r5, r3
|
|
4328: 2200 movs r2, #0
|
|
*d8 = *s8;
|
|
432a: 4669 mov r1, sp
|
|
432c: 5c51 ldrb r1, [r2, r1]
|
|
432e: 5499 strb r1, [r3, r2]
|
|
4330: 3201 adds r2, #1
|
|
while(len) {
|
|
4332: 2a08 cmp r2, #8
|
|
4334: d1f9 bne.n 432a <_lv_inv_area+0x8a>
|
|
disp->inv_p++;
|
|
4336: 21b4 movs r1, #180 ; 0xb4
|
|
4338: 0049 lsls r1, r1, #1
|
|
433a: 5a6b ldrh r3, [r5, r1]
|
|
433c: 059a lsls r2, r3, #22
|
|
433e: 2080 movs r0, #128 ; 0x80
|
|
4340: 03c0 lsls r0, r0, #15
|
|
4342: 4684 mov ip, r0
|
|
4344: 4462 add r2, ip
|
|
4346: 0d92 lsrs r2, r2, #22
|
|
4348: 0a9b lsrs r3, r3, #10
|
|
434a: 029b lsls r3, r3, #10
|
|
434c: 4313 orrs r3, r2
|
|
434e: 526b strh r3, [r5, r1]
|
|
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
|
|
4350: 6ae8 ldr r0, [r5, #44] ; 0x2c
|
|
4352: 3966 subs r1, #102 ; 0x66
|
|
4354: 39ff subs r1, #255 ; 0xff
|
|
4356: 4b14 ldr r3, [pc, #80] ; (43a8 <_lv_inv_area+0x108>)
|
|
4358: 4798 blx r3
|
|
435a: e00a b.n 4372 <_lv_inv_area+0xd2>
|
|
if(!disp) disp = lv_disp_get_default();
|
|
435c: 4b13 ldr r3, [pc, #76] ; (43ac <_lv_inv_area+0x10c>)
|
|
435e: 4798 blx r3
|
|
4360: 1e05 subs r5, r0, #0
|
|
if(!disp) return;
|
|
4362: d006 beq.n 4372 <_lv_inv_area+0xd2>
|
|
4364: e7a2 b.n 42ac <_lv_inv_area+0xc>
|
|
disp->inv_p = 0;
|
|
4366: 22b4 movs r2, #180 ; 0xb4
|
|
4368: 0052 lsls r2, r2, #1
|
|
436a: 5aab ldrh r3, [r5, r2]
|
|
436c: 0a9b lsrs r3, r3, #10
|
|
436e: 029b lsls r3, r3, #10
|
|
4370: 52ab strh r3, [r5, r2]
|
|
}
|
|
4372: b005 add sp, #20
|
|
4374: bdf0 pop {r4, r5, r6, r7, pc}
|
|
disp->inv_p = 0;
|
|
4376: 22b4 movs r2, #180 ; 0xb4
|
|
4378: 0052 lsls r2, r2, #1
|
|
437a: 5aab ldrh r3, [r5, r2]
|
|
437c: 0a9b lsrs r3, r3, #10
|
|
437e: 029b lsls r3, r3, #10
|
|
4380: 52ab strh r3, [r5, r2]
|
|
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
|
|
4382: 0028 movs r0, r5
|
|
4384: 3048 adds r0, #72 ; 0x48
|
|
4386: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
4388: a902 add r1, sp, #8
|
|
438a: 5c5a ldrb r2, [r3, r1]
|
|
438c: 54c2 strb r2, [r0, r3]
|
|
438e: 3301 adds r3, #1
|
|
while(len) {
|
|
4390: 2b08 cmp r3, #8
|
|
4392: d1fa bne.n 438a <_lv_inv_area+0xea>
|
|
4394: e7cf b.n 4336 <_lv_inv_area+0x96>
|
|
4396: 46c0 nop ; (mov r8, r8)
|
|
4398: 0000f615 .word 0x0000f615
|
|
439c: 0000f63d .word 0x0000f63d
|
|
43a0: 0000fc0f .word 0x0000fc0f
|
|
43a4: 0000fe9d .word 0x0000fe9d
|
|
43a8: 00011549 .word 0x00011549
|
|
43ac: 0000f609 .word 0x0000f609
|
|
|
|
000043b0 <_lv_refr_get_disp_refreshing>:
|
|
return disp_refr;
|
|
43b0: 4b01 ldr r3, [pc, #4] ; (43b8 <_lv_refr_get_disp_refreshing+0x8>)
|
|
43b2: 6818 ldr r0, [r3, #0]
|
|
}
|
|
43b4: 4770 bx lr
|
|
43b6: 46c0 nop ; (mov r8, r8)
|
|
43b8: 200026e8 .word 0x200026e8
|
|
|
|
000043bc <_lv_disp_refr_task>:
|
|
{
|
|
43bc: b5f0 push {r4, r5, r6, r7, lr}
|
|
43be: 46de mov lr, fp
|
|
43c0: 4657 mov r7, sl
|
|
43c2: 464e mov r6, r9
|
|
43c4: 4645 mov r5, r8
|
|
43c6: b5e0 push {r5, r6, r7, lr}
|
|
43c8: b089 sub sp, #36 ; 0x24
|
|
43ca: 0005 movs r5, r0
|
|
uint32_t start = lv_tick_get();
|
|
43cc: 4bc7 ldr r3, [pc, #796] ; (46ec <_lv_disp_refr_task+0x330>)
|
|
43ce: 4798 blx r3
|
|
43d0: 9005 str r0, [sp, #20]
|
|
disp_refr = task->user_data;
|
|
43d2: 4cc7 ldr r4, [pc, #796] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
43d4: 68eb ldr r3, [r5, #12]
|
|
43d6: 6023 str r3, [r4, #0]
|
|
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
|
|
43d8: 2100 movs r1, #0
|
|
43da: 0028 movs r0, r5
|
|
43dc: 4bc5 ldr r3, [pc, #788] ; (46f4 <_lv_disp_refr_task+0x338>)
|
|
43de: 4798 blx r3
|
|
if(disp_refr->act_scr == NULL) {
|
|
43e0: 6820 ldr r0, [r4, #0]
|
|
43e2: 6bc3 ldr r3, [r0, #60] ; 0x3c
|
|
43e4: 2b00 cmp r3, #0
|
|
43e6: d00e beq.n 4406 <_lv_disp_refr_task+0x4a>
|
|
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
|
|
43e8: 23b4 movs r3, #180 ; 0xb4
|
|
43ea: 005b lsls r3, r3, #1
|
|
43ec: 5ac3 ldrh r3, [r0, r3]
|
|
43ee: 059b lsls r3, r3, #22
|
|
43f0: 2748 movs r7, #72 ; 0x48
|
|
43f2: 2600 movs r6, #0
|
|
43f4: 2b00 cmp r3, #0
|
|
43f6: d100 bne.n 43fa <_lv_disp_refr_task+0x3e>
|
|
43f8: e284 b.n 4904 <_lv_disp_refr_task+0x548>
|
|
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
|
|
43fa: 4bbd ldr r3, [pc, #756] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
43fc: 4698 mov r8, r3
|
|
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
|
|
43fe: 4bbe ldr r3, [pc, #760] ; (46f8 <_lv_disp_refr_task+0x33c>)
|
|
4400: 469a mov sl, r3
|
|
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
|
|
4402: 46c3 mov fp, r8
|
|
4404: e056 b.n 44b4 <_lv_disp_refr_task+0xf8>
|
|
disp_refr->inv_p = 0;
|
|
4406: 22b4 movs r2, #180 ; 0xb4
|
|
4408: 0052 lsls r2, r2, #1
|
|
440a: 5a83 ldrh r3, [r0, r2]
|
|
440c: 0a9b lsrs r3, r3, #10
|
|
440e: 029b lsls r3, r3, #10
|
|
4410: 5283 strh r3, [r0, r2]
|
|
return;
|
|
4412: e26d b.n 48f0 <_lv_disp_refr_task+0x534>
|
|
disp_refr->inv_area_joined[join_from] = 1;
|
|
4414: 1900 adds r0, r0, r4
|
|
4416: 3049 adds r0, #73 ; 0x49
|
|
4418: 30ff adds r0, #255 ; 0xff
|
|
441a: 3b07 subs r3, #7
|
|
441c: 7003 strb r3, [r0, #0]
|
|
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
|
|
441e: 3401 adds r4, #1
|
|
4420: 4bb3 ldr r3, [pc, #716] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
4422: 6818 ldr r0, [r3, #0]
|
|
4424: 23b4 movs r3, #180 ; 0xb4
|
|
4426: 005b lsls r3, r3, #1
|
|
4428: 5ac3 ldrh r3, [r0, r3]
|
|
442a: 059b lsls r3, r3, #22
|
|
442c: 0d9b lsrs r3, r3, #22
|
|
442e: 429c cmp r4, r3
|
|
4430: d235 bcs.n 449e <_lv_disp_refr_task+0xe2>
|
|
if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) {
|
|
4432: 1903 adds r3, r0, r4
|
|
4434: 3349 adds r3, #73 ; 0x49
|
|
4436: 33ff adds r3, #255 ; 0xff
|
|
4438: 781b ldrb r3, [r3, #0]
|
|
443a: 2b00 cmp r3, #0
|
|
443c: d1ef bne.n 441e <_lv_disp_refr_task+0x62>
|
|
443e: 42a6 cmp r6, r4
|
|
4440: d0ed beq.n 441e <_lv_disp_refr_task+0x62>
|
|
4442: 0025 movs r5, r4
|
|
4444: 3509 adds r5, #9
|
|
4446: 00ed lsls r5, r5, #3
|
|
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
|
|
4448: 1941 adds r1, r0, r5
|
|
444a: 19c0 adds r0, r0, r7
|
|
444c: 47d0 blx sl
|
|
444e: 2800 cmp r0, #0
|
|
4450: d0e5 beq.n 441e <_lv_disp_refr_task+0x62>
|
|
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
|
|
4452: 465b mov r3, fp
|
|
4454: 6819 ldr r1, [r3, #0]
|
|
4456: 194a adds r2, r1, r5
|
|
4458: 19c9 adds r1, r1, r7
|
|
445a: a806 add r0, sp, #24
|
|
445c: 4ba7 ldr r3, [pc, #668] ; (46fc <_lv_disp_refr_task+0x340>)
|
|
445e: 4798 blx r3
|
|
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
|
|
4460: a806 add r0, sp, #24
|
|
4462: 4ba7 ldr r3, [pc, #668] ; (4700 <_lv_disp_refr_task+0x344>)
|
|
4464: 4699 mov r9, r3
|
|
4466: 4798 blx r3
|
|
4468: 9000 str r0, [sp, #0]
|
|
446a: 465b mov r3, fp
|
|
446c: 681b ldr r3, [r3, #0]
|
|
446e: 19d8 adds r0, r3, r7
|
|
4470: 47c8 blx r9
|
|
4472: 9001 str r0, [sp, #4]
|
|
lv_area_get_size(&disp_refr->inv_areas[join_from]))) {
|
|
4474: 465b mov r3, fp
|
|
4476: 681b ldr r3, [r3, #0]
|
|
4478: 1958 adds r0, r3, r5
|
|
447a: 47c8 blx r9
|
|
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
|
|
447c: 9b01 ldr r3, [sp, #4]
|
|
447e: 469c mov ip, r3
|
|
4480: 4460 add r0, ip
|
|
4482: 9b00 ldr r3, [sp, #0]
|
|
4484: 4283 cmp r3, r0
|
|
4486: d2ca bcs.n 441e <_lv_disp_refr_task+0x62>
|
|
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
|
|
4488: 4b99 ldr r3, [pc, #612] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
448a: 6818 ldr r0, [r3, #0]
|
|
448c: 19c1 adds r1, r0, r7
|
|
448e: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
4490: aa06 add r2, sp, #24
|
|
4492: 5c9a ldrb r2, [r3, r2]
|
|
4494: 54ca strb r2, [r1, r3]
|
|
4496: 3301 adds r3, #1
|
|
while(len) {
|
|
4498: 2b08 cmp r3, #8
|
|
449a: d1f9 bne.n 4490 <_lv_disp_refr_task+0xd4>
|
|
449c: e7ba b.n 4414 <_lv_disp_refr_task+0x58>
|
|
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
|
|
449e: 3601 adds r6, #1
|
|
44a0: 4b93 ldr r3, [pc, #588] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
44a2: 6818 ldr r0, [r3, #0]
|
|
44a4: 23b4 movs r3, #180 ; 0xb4
|
|
44a6: 005b lsls r3, r3, #1
|
|
44a8: 5ac3 ldrh r3, [r0, r3]
|
|
44aa: 059b lsls r3, r3, #22
|
|
44ac: 0d9b lsrs r3, r3, #22
|
|
44ae: 3708 adds r7, #8
|
|
44b0: 429e cmp r6, r3
|
|
44b2: d20f bcs.n 44d4 <_lv_disp_refr_task+0x118>
|
|
if(disp_refr->inv_area_joined[join_in] != 0) continue;
|
|
44b4: 1980 adds r0, r0, r6
|
|
44b6: 3049 adds r0, #73 ; 0x49
|
|
44b8: 30ff adds r0, #255 ; 0xff
|
|
44ba: 7803 ldrb r3, [r0, #0]
|
|
44bc: 2b00 cmp r3, #0
|
|
44be: d1ee bne.n 449e <_lv_disp_refr_task+0xe2>
|
|
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
|
|
44c0: 4643 mov r3, r8
|
|
44c2: 6818 ldr r0, [r3, #0]
|
|
44c4: 23b4 movs r3, #180 ; 0xb4
|
|
44c6: 005b lsls r3, r3, #1
|
|
44c8: 5ac3 ldrh r3, [r0, r3]
|
|
44ca: 059b lsls r3, r3, #22
|
|
44cc: d100 bne.n 44d0 <_lv_disp_refr_task+0x114>
|
|
44ce: e1fb b.n 48c8 <_lv_disp_refr_task+0x50c>
|
|
44d0: 2400 movs r4, #0
|
|
44d2: e7ae b.n 4432 <_lv_disp_refr_task+0x76>
|
|
px_num = 0;
|
|
44d4: 2100 movs r1, #0
|
|
44d6: 4a8b ldr r2, [pc, #556] ; (4704 <_lv_disp_refr_task+0x348>)
|
|
44d8: 6011 str r1, [r2, #0]
|
|
if(disp_refr->inv_p == 0) return;
|
|
44da: 22b4 movs r2, #180 ; 0xb4
|
|
44dc: 0052 lsls r2, r2, #1
|
|
44de: 5a82 ldrh r2, [r0, r2]
|
|
44e0: 0592 lsls r2, r2, #22
|
|
44e2: d100 bne.n 44e6 <_lv_disp_refr_task+0x12a>
|
|
44e4: e1f8 b.n 48d8 <_lv_disp_refr_task+0x51c>
|
|
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
|
|
44e6: 001a movs r2, r3
|
|
44e8: 3a01 subs r2, #1
|
|
44ea: 9204 str r2, [sp, #16]
|
|
44ec: d42d bmi.n 454a <_lv_disp_refr_task+0x18e>
|
|
if(disp_refr->inv_area_joined[i] == 0) {
|
|
44ee: 9904 ldr r1, [sp, #16]
|
|
44f0: 1842 adds r2, r0, r1
|
|
44f2: 3249 adds r2, #73 ; 0x49
|
|
44f4: 32ff adds r2, #255 ; 0xff
|
|
44f6: 7812 ldrb r2, [r2, #0]
|
|
44f8: 2a00 cmp r2, #0
|
|
44fa: d00d beq.n 4518 <_lv_disp_refr_task+0x15c>
|
|
44fc: 3347 adds r3, #71 ; 0x47
|
|
44fe: 33ff adds r3, #255 ; 0xff
|
|
4500: 18c3 adds r3, r0, r3
|
|
4502: 000a movs r2, r1
|
|
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
|
|
4504: 3a01 subs r2, #1
|
|
4506: d305 bcc.n 4514 <_lv_disp_refr_task+0x158>
|
|
4508: 3b01 subs r3, #1
|
|
if(disp_refr->inv_area_joined[i] == 0) {
|
|
450a: 7859 ldrb r1, [r3, #1]
|
|
450c: 2900 cmp r1, #0
|
|
450e: d1f9 bne.n 4504 <_lv_disp_refr_task+0x148>
|
|
4510: 9204 str r2, [sp, #16]
|
|
4512: e001 b.n 4518 <_lv_disp_refr_task+0x15c>
|
|
int32_t last_i = 0;
|
|
4514: 2300 movs r3, #0
|
|
4516: 9304 str r3, [sp, #16]
|
|
disp_refr->driver.buffer->last_area = 0;
|
|
4518: 6841 ldr r1, [r0, #4]
|
|
451a: 2320 movs r3, #32
|
|
451c: 5cca ldrb r2, [r1, r3]
|
|
451e: 2401 movs r4, #1
|
|
4520: 43a2 bics r2, r4
|
|
4522: 54ca strb r2, [r1, r3]
|
|
disp_refr->driver.buffer->last_part = 0;
|
|
4524: 6841 ldr r1, [r0, #4]
|
|
4526: 5cca ldrb r2, [r1, r3]
|
|
4528: 2002 movs r0, #2
|
|
452a: 4382 bics r2, r0
|
|
452c: 54ca strb r2, [r1, r3]
|
|
for(i = 0; i < disp_refr->inv_p; i++) {
|
|
452e: 4b70 ldr r3, [pc, #448] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
4530: 681c ldr r4, [r3, #0]
|
|
4532: 23b4 movs r3, #180 ; 0xb4
|
|
4534: 005b lsls r3, r3, #1
|
|
4536: 5ae3 ldrh r3, [r4, r3]
|
|
4538: 059b lsls r3, r3, #22
|
|
453a: d100 bne.n 453e <_lv_disp_refr_task+0x182>
|
|
453c: e1cc b.n 48d8 <_lv_disp_refr_task+0x51c>
|
|
453e: 2348 movs r3, #72 ; 0x48
|
|
4540: 9301 str r3, [sp, #4]
|
|
4542: 2300 movs r3, #0
|
|
4544: 469b mov fp, r3
|
|
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
|
|
4546: 0027 movs r7, r4
|
|
4548: e044 b.n 45d4 <_lv_disp_refr_task+0x218>
|
|
int32_t last_i = 0;
|
|
454a: 2300 movs r3, #0
|
|
454c: 9304 str r3, [sp, #16]
|
|
454e: e7e3 b.n 4518 <_lv_disp_refr_task+0x15c>
|
|
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
|
|
4550: 6879 ldr r1, [r7, #4]
|
|
4552: 2220 movs r2, #32
|
|
4554: 5c8b ldrb r3, [r1, r2]
|
|
4556: 2001 movs r0, #1
|
|
4558: 4303 orrs r3, r0
|
|
455a: 548b strb r3, [r1, r2]
|
|
455c: e044 b.n 45e8 <_lv_disp_refr_task+0x22c>
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
|
|
455e: 4c64 ldr r4, [pc, #400] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
4560: 6820 ldr r0, [r4, #0]
|
|
4562: 4b69 ldr r3, [pc, #420] ; (4708 <_lv_disp_refr_task+0x34c>)
|
|
4564: 4798 blx r3
|
|
4566: 0005 movs r5, r0
|
|
vdb->area.x1 = 0;
|
|
4568: 2600 movs r6, #0
|
|
456a: 8206 strh r6, [r0, #16]
|
|
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
|
|
456c: 6820 ldr r0, [r4, #0]
|
|
456e: 4b67 ldr r3, [pc, #412] ; (470c <_lv_disp_refr_task+0x350>)
|
|
4570: 4798 blx r3
|
|
4572: 3801 subs r0, #1
|
|
4574: 82a8 strh r0, [r5, #20]
|
|
vdb->area.y1 = 0;
|
|
4576: 826e strh r6, [r5, #18]
|
|
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
|
|
4578: 6820 ldr r0, [r4, #0]
|
|
457a: 4b65 ldr r3, [pc, #404] ; (4710 <_lv_disp_refr_task+0x354>)
|
|
457c: 4798 blx r3
|
|
457e: 3801 subs r0, #1
|
|
4580: 82e8 strh r0, [r5, #22]
|
|
disp_refr->driver.buffer->last_part = 1;
|
|
4582: 6823 ldr r3, [r4, #0]
|
|
4584: 6859 ldr r1, [r3, #4]
|
|
4586: 2220 movs r2, #32
|
|
4588: 5c8b ldrb r3, [r1, r2]
|
|
458a: 2002 movs r0, #2
|
|
458c: 4303 orrs r3, r0
|
|
458e: 548b strb r3, [r1, r2]
|
|
lv_refr_area_part(area_p);
|
|
4590: 9800 ldr r0, [sp, #0]
|
|
4592: 4b60 ldr r3, [pc, #384] ; (4714 <_lv_disp_refr_task+0x358>)
|
|
4594: 4798 blx r3
|
|
if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]);
|
|
4596: 4b56 ldr r3, [pc, #344] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
4598: 6818 ldr r0, [r3, #0]
|
|
459a: 6983 ldr r3, [r0, #24]
|
|
459c: 2b00 cmp r3, #0
|
|
459e: d009 beq.n 45b4 <_lv_disp_refr_task+0x1f8>
|
|
45a0: 9b01 ldr r3, [sp, #4]
|
|
45a2: 469c mov ip, r3
|
|
45a4: 4460 add r0, ip
|
|
45a6: 4b56 ldr r3, [pc, #344] ; (4700 <_lv_disp_refr_task+0x344>)
|
|
45a8: 4798 blx r3
|
|
45aa: 4b56 ldr r3, [pc, #344] ; (4704 <_lv_disp_refr_task+0x348>)
|
|
45ac: 681a ldr r2, [r3, #0]
|
|
45ae: 4694 mov ip, r2
|
|
45b0: 4460 add r0, ip
|
|
45b2: 6018 str r0, [r3, #0]
|
|
for(i = 0; i < disp_refr->inv_p; i++) {
|
|
45b4: 2301 movs r3, #1
|
|
45b6: 469c mov ip, r3
|
|
45b8: 44e3 add fp, ip
|
|
45ba: 4b4d ldr r3, [pc, #308] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
45bc: 681f ldr r7, [r3, #0]
|
|
45be: 9b01 ldr r3, [sp, #4]
|
|
45c0: 3308 adds r3, #8
|
|
45c2: 9301 str r3, [sp, #4]
|
|
45c4: 23b4 movs r3, #180 ; 0xb4
|
|
45c6: 005b lsls r3, r3, #1
|
|
45c8: 5afb ldrh r3, [r7, r3]
|
|
45ca: 059b lsls r3, r3, #22
|
|
45cc: 0d9b lsrs r3, r3, #22
|
|
45ce: 459b cmp fp, r3
|
|
45d0: db00 blt.n 45d4 <_lv_disp_refr_task+0x218>
|
|
45d2: e181 b.n 48d8 <_lv_disp_refr_task+0x51c>
|
|
if(disp_refr->inv_area_joined[i] == 0) {
|
|
45d4: 465b mov r3, fp
|
|
45d6: 18fb adds r3, r7, r3
|
|
45d8: 3349 adds r3, #73 ; 0x49
|
|
45da: 33ff adds r3, #255 ; 0xff
|
|
45dc: 781b ldrb r3, [r3, #0]
|
|
45de: 2b00 cmp r3, #0
|
|
45e0: d1e8 bne.n 45b4 <_lv_disp_refr_task+0x1f8>
|
|
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
|
|
45e2: 9b04 ldr r3, [sp, #16]
|
|
45e4: 455b cmp r3, fp
|
|
45e6: d0b3 beq.n 4550 <_lv_disp_refr_task+0x194>
|
|
disp_refr->driver.buffer->last_part = 0;
|
|
45e8: 6879 ldr r1, [r7, #4]
|
|
45ea: 2220 movs r2, #32
|
|
45ec: 5c8b ldrb r3, [r1, r2]
|
|
45ee: 2002 movs r0, #2
|
|
45f0: 4383 bics r3, r0
|
|
45f2: 548b strb r3, [r1, r2]
|
|
lv_refr_area(&disp_refr->inv_areas[i]);
|
|
45f4: 9b01 ldr r3, [sp, #4]
|
|
45f6: 469c mov ip, r3
|
|
45f8: 44bc add ip, r7
|
|
45fa: 4663 mov r3, ip
|
|
45fc: 9300 str r3, [sp, #0]
|
|
if(lv_disp_is_true_double_buf(disp_refr)) {
|
|
45fe: 0038 movs r0, r7
|
|
4600: 4b45 ldr r3, [pc, #276] ; (4718 <_lv_disp_refr_task+0x35c>)
|
|
4602: 4798 blx r3
|
|
4604: 2800 cmp r0, #0
|
|
4606: d1aa bne.n 455e <_lv_disp_refr_task+0x1a2>
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
|
|
4608: 4b39 ldr r3, [pc, #228] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
460a: 469a mov sl, r3
|
|
460c: 6818 ldr r0, [r3, #0]
|
|
460e: 4b3e ldr r3, [pc, #248] ; (4708 <_lv_disp_refr_task+0x34c>)
|
|
4610: 4798 blx r3
|
|
4612: 0006 movs r6, r0
|
|
4614: 465b mov r3, fp
|
|
4616: 00db lsls r3, r3, #3
|
|
4618: 18ff adds r7, r7, r3
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
461a: 234c movs r3, #76 ; 0x4c
|
|
461c: 5afc ldrh r4, [r7, r3]
|
|
461e: 3401 adds r4, #1
|
|
4620: 3b04 subs r3, #4
|
|
4622: 5afb ldrh r3, [r7, r3]
|
|
4624: 1ae4 subs r4, r4, r3
|
|
4626: b223 sxth r3, r4
|
|
4628: 4698 mov r8, r3
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
462a: 234e movs r3, #78 ; 0x4e
|
|
462c: 5efc ldrsh r4, [r7, r3]
|
|
462e: 1c65 adds r5, r4, #1
|
|
4630: 234a movs r3, #74 ; 0x4a
|
|
4632: 5afb ldrh r3, [r7, r3]
|
|
4634: 1aed subs r5, r5, r3
|
|
4636: b22d sxth r5, r5
|
|
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
|
|
4638: 4653 mov r3, sl
|
|
463a: 6818 ldr r0, [r3, #0]
|
|
463c: 4b34 ldr r3, [pc, #208] ; (4710 <_lv_disp_refr_task+0x354>)
|
|
463e: 4798 blx r3
|
|
lv_coord_t y2 =
|
|
4640: 4284 cmp r4, r0
|
|
4642: da31 bge.n 46a8 <_lv_disp_refr_task+0x2ec>
|
|
4644: 234e movs r3, #78 ; 0x4e
|
|
4646: 5efb ldrsh r3, [r7, r3]
|
|
4648: 4699 mov r9, r3
|
|
int32_t max_row = (uint32_t)vdb->size / w;
|
|
464a: 4641 mov r1, r8
|
|
464c: 68f0 ldr r0, [r6, #12]
|
|
464e: 4b33 ldr r3, [pc, #204] ; (471c <_lv_disp_refr_task+0x360>)
|
|
4650: 4798 blx r3
|
|
4652: 46a8 mov r8, r5
|
|
4654: 4285 cmp r5, r0
|
|
4656: dd00 ble.n 465a <_lv_disp_refr_task+0x29e>
|
|
4658: 4680 mov r8, r0
|
|
if(disp_refr->driver.rounder_cb) {
|
|
465a: 4b25 ldr r3, [pc, #148] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
465c: 681b ldr r3, [r3, #0]
|
|
465e: 691b ldr r3, [r3, #16]
|
|
4660: 2b00 cmp r3, #0
|
|
4662: d02f beq.n 46c4 <_lv_disp_refr_task+0x308>
|
|
tmp.x1 = 0;
|
|
4664: 2300 movs r3, #0
|
|
4666: aa06 add r2, sp, #24
|
|
4668: 8013 strh r3, [r2, #0]
|
|
tmp.x2 = 0;
|
|
466a: 8093 strh r3, [r2, #4]
|
|
tmp.y1 = 0;
|
|
466c: 8053 strh r3, [r2, #2]
|
|
lv_coord_t h_tmp = max_row;
|
|
466e: 4643 mov r3, r8
|
|
4670: b21d sxth r5, r3
|
|
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
|
|
4672: 4b1f ldr r3, [pc, #124] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
4674: 469a mov sl, r3
|
|
4676: 4643 mov r3, r8
|
|
4678: 46b0 mov r8, r6
|
|
467a: 001e movs r6, r3
|
|
467c: 1e6c subs r4, r5, #1
|
|
467e: b224 sxth r4, r4
|
|
tmp.y2 = h_tmp - 1;
|
|
4680: ab06 add r3, sp, #24
|
|
4682: 80dc strh r4, [r3, #6]
|
|
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
|
|
4684: 4653 mov r3, sl
|
|
4686: 6818 ldr r0, [r3, #0]
|
|
4688: 6903 ldr r3, [r0, #16]
|
|
468a: a906 add r1, sp, #24
|
|
468c: 4798 blx r3
|
|
468e: ab06 add r3, sp, #24
|
|
4690: 2106 movs r1, #6
|
|
4692: 5e59 ldrsh r1, [r3, r1]
|
|
4694: 1c4b adds r3, r1, #1
|
|
4696: aa06 add r2, sp, #24
|
|
4698: 8852 ldrh r2, [r2, #2]
|
|
469a: 1a9b subs r3, r3, r2
|
|
if(lv_area_get_height(&tmp) <= max_row) break;
|
|
469c: b21b sxth r3, r3
|
|
469e: 429e cmp r6, r3
|
|
46a0: da0a bge.n 46b8 <_lv_disp_refr_task+0x2fc>
|
|
h_tmp--;
|
|
46a2: 1e25 subs r5, r4, #0
|
|
} while(h_tmp > 0);
|
|
46a4: dcea bgt.n 467c <_lv_disp_refr_task+0x2c0>
|
|
46a6: e776 b.n 4596 <_lv_disp_refr_task+0x1da>
|
|
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
|
|
46a8: 4b11 ldr r3, [pc, #68] ; (46f0 <_lv_disp_refr_task+0x334>)
|
|
46aa: 6818 ldr r0, [r3, #0]
|
|
46ac: 4b18 ldr r3, [pc, #96] ; (4710 <_lv_disp_refr_task+0x354>)
|
|
46ae: 4798 blx r3
|
|
46b0: 3801 subs r0, #1
|
|
lv_coord_t y2 =
|
|
46b2: b203 sxth r3, r0
|
|
46b4: 4699 mov r9, r3
|
|
46b6: e7c8 b.n 464a <_lv_disp_refr_task+0x28e>
|
|
46b8: 4646 mov r6, r8
|
|
if(h_tmp <= 0) {
|
|
46ba: 2d00 cmp r5, #0
|
|
46bc: dc00 bgt.n 46c0 <_lv_disp_refr_task+0x304>
|
|
46be: e76a b.n 4596 <_lv_disp_refr_task+0x1da>
|
|
max_row = tmp.y2 + 1;
|
|
46c0: 1c4b adds r3, r1, #1
|
|
46c2: 4698 mov r8, r3
|
|
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
|
|
46c4: 234a movs r3, #74 ; 0x4a
|
|
46c6: 5efc ldrsh r4, [r7, r3]
|
|
46c8: 464b mov r3, r9
|
|
46ca: 9302 str r3, [sp, #8]
|
|
46cc: 4643 mov r3, r8
|
|
46ce: 18e3 adds r3, r4, r3
|
|
46d0: 3b01 subs r3, #1
|
|
46d2: 454b cmp r3, r9
|
|
46d4: dc67 bgt.n 47a6 <_lv_disp_refr_task+0x3ea>
|
|
vdb->area.y2 = row + max_row - 1;
|
|
46d6: 4643 mov r3, r8
|
|
46d8: 466a mov r2, sp
|
|
46da: 8193 strh r3, [r2, #12]
|
|
46dc: 8993 ldrh r3, [r2, #12]
|
|
46de: 469a mov sl, r3
|
|
46e0: 3b01 subs r3, #1
|
|
46e2: 9303 str r3, [sp, #12]
|
|
46e4: 464b mov r3, r9
|
|
46e6: 46b9 mov r9, r7
|
|
46e8: 001f movs r7, r3
|
|
46ea: e026 b.n 473a <_lv_disp_refr_task+0x37e>
|
|
46ec: 0000f78d .word 0x0000f78d
|
|
46f0: 200026e8 .word 0x200026e8
|
|
46f4: 00011549 .word 0x00011549
|
|
46f8: 0000fe59 .word 0x0000fe59
|
|
46fc: 0000fc7d .word 0x0000fc7d
|
|
4700: 0000fbf3 .word 0x0000fbf3
|
|
4704: 200026ec .word 0x200026ec
|
|
4708: 0000f709 .word 0x0000f709
|
|
470c: 0000f615 .word 0x0000f615
|
|
4710: 0000f63d .word 0x0000f63d
|
|
4714: 000041f9 .word 0x000041f9
|
|
4718: 0000f725 .word 0x0000f725
|
|
471c: 00017881 .word 0x00017881
|
|
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
|
|
4720: 42af cmp r7, r5
|
|
4722: d01c beq.n 475e <_lv_disp_refr_task+0x3a2>
|
|
lv_refr_area_part(area_p);
|
|
4724: 9800 ldr r0, [sp, #0]
|
|
4726: 4b7d ldr r3, [pc, #500] ; (491c <_lv_disp_refr_task+0x560>)
|
|
4728: 4798 blx r3
|
|
472a: 4454 add r4, sl
|
|
472c: b224 sxth r4, r4
|
|
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
|
|
472e: 4643 mov r3, r8
|
|
4730: 18e3 adds r3, r4, r3
|
|
4732: 3b01 subs r3, #1
|
|
4734: 9a02 ldr r2, [sp, #8]
|
|
4736: 4293 cmp r3, r2
|
|
4738: dc1a bgt.n 4770 <_lv_disp_refr_task+0x3b4>
|
|
vdb->area.x1 = area_p->x1;
|
|
473a: 2348 movs r3, #72 ; 0x48
|
|
473c: 464a mov r2, r9
|
|
473e: 5ed3 ldrsh r3, [r2, r3]
|
|
4740: 8233 strh r3, [r6, #16]
|
|
vdb->area.x2 = area_p->x2;
|
|
4742: 234c movs r3, #76 ; 0x4c
|
|
4744: 464a mov r2, r9
|
|
4746: 5ed3 ldrsh r3, [r2, r3]
|
|
4748: 82b3 strh r3, [r6, #20]
|
|
vdb->area.y1 = row;
|
|
474a: 8274 strh r4, [r6, #18]
|
|
474c: b2a4 uxth r4, r4
|
|
474e: 9b03 ldr r3, [sp, #12]
|
|
4750: 18e5 adds r5, r4, r3
|
|
4752: b22d sxth r5, r5
|
|
vdb->area.y2 = row + max_row - 1;
|
|
4754: 82f5 strh r5, [r6, #22]
|
|
if(vdb->area.y2 > y2) vdb->area.y2 = y2;
|
|
4756: 42af cmp r7, r5
|
|
4758: dae2 bge.n 4720 <_lv_disp_refr_task+0x364>
|
|
475a: 82f7 strh r7, [r6, #22]
|
|
row_last = vdb->area.y2;
|
|
475c: 003d movs r5, r7
|
|
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
|
|
475e: 4b70 ldr r3, [pc, #448] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
4760: 681b ldr r3, [r3, #0]
|
|
4762: 6859 ldr r1, [r3, #4]
|
|
4764: 2220 movs r2, #32
|
|
4766: 5c8b ldrb r3, [r1, r2]
|
|
4768: 2002 movs r0, #2
|
|
476a: 4303 orrs r3, r0
|
|
476c: 548b strb r3, [r1, r2]
|
|
476e: e7d9 b.n 4724 <_lv_disp_refr_task+0x368>
|
|
4770: 003b movs r3, r7
|
|
4772: 464f mov r7, r9
|
|
4774: 4699 mov r9, r3
|
|
if(y2 != row_last) {
|
|
4776: 45a9 cmp r9, r5
|
|
4778: d100 bne.n 477c <_lv_disp_refr_task+0x3c0>
|
|
477a: e70c b.n 4596 <_lv_disp_refr_task+0x1da>
|
|
vdb->area.x1 = area_p->x1;
|
|
477c: 2348 movs r3, #72 ; 0x48
|
|
477e: 5efb ldrsh r3, [r7, r3]
|
|
4780: 8233 strh r3, [r6, #16]
|
|
vdb->area.x2 = area_p->x2;
|
|
4782: 234c movs r3, #76 ; 0x4c
|
|
4784: 5efb ldrsh r3, [r7, r3]
|
|
4786: 82b3 strh r3, [r6, #20]
|
|
vdb->area.y1 = row;
|
|
4788: 8274 strh r4, [r6, #18]
|
|
vdb->area.y2 = y2;
|
|
478a: 464b mov r3, r9
|
|
478c: 82f3 strh r3, [r6, #22]
|
|
disp_refr->driver.buffer->last_part = 1;
|
|
478e: 4b64 ldr r3, [pc, #400] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
4790: 681b ldr r3, [r3, #0]
|
|
4792: 6859 ldr r1, [r3, #4]
|
|
4794: 2220 movs r2, #32
|
|
4796: 5c8b ldrb r3, [r1, r2]
|
|
4798: 2002 movs r0, #2
|
|
479a: 4303 orrs r3, r0
|
|
479c: 548b strb r3, [r1, r2]
|
|
lv_refr_area_part(area_p);
|
|
479e: 9800 ldr r0, [sp, #0]
|
|
47a0: 4b5e ldr r3, [pc, #376] ; (491c <_lv_disp_refr_task+0x560>)
|
|
47a2: 4798 blx r3
|
|
47a4: e6f7 b.n 4596 <_lv_disp_refr_task+0x1da>
|
|
lv_coord_t row_last = 0;
|
|
47a6: 2500 movs r5, #0
|
|
47a8: e7e5 b.n 4776 <_lv_disp_refr_task+0x3ba>
|
|
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
|
|
47aa: 4b5e ldr r3, [pc, #376] ; (4924 <_lv_disp_refr_task+0x568>)
|
|
47ac: 4798 blx r3
|
|
47ae: 2800 cmp r0, #0
|
|
47b0: d004 beq.n 47bc <_lv_disp_refr_task+0x400>
|
|
47b2: 4b5b ldr r3, [pc, #364] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
47b4: 6818 ldr r0, [r3, #0]
|
|
47b6: 6943 ldr r3, [r0, #20]
|
|
47b8: 2b00 cmp r3, #0
|
|
47ba: d01f beq.n 47fc <_lv_disp_refr_task+0x440>
|
|
_lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas));
|
|
47bc: 4c58 ldr r4, [pc, #352] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
47be: 6820 ldr r0, [r4, #0]
|
|
47c0: 3048 adds r0, #72 ; 0x48
|
|
47c2: 2180 movs r1, #128 ; 0x80
|
|
47c4: 0049 lsls r1, r1, #1
|
|
47c6: 4d58 ldr r5, [pc, #352] ; (4928 <_lv_disp_refr_task+0x56c>)
|
|
47c8: 47a8 blx r5
|
|
_lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined));
|
|
47ca: 6820 ldr r0, [r4, #0]
|
|
47cc: 3049 adds r0, #73 ; 0x49
|
|
47ce: 30ff adds r0, #255 ; 0xff
|
|
47d0: 2120 movs r1, #32
|
|
47d2: 47a8 blx r5
|
|
disp_refr->inv_p = 0;
|
|
47d4: 6821 ldr r1, [r4, #0]
|
|
47d6: 22b4 movs r2, #180 ; 0xb4
|
|
47d8: 0052 lsls r2, r2, #1
|
|
47da: 5a8b ldrh r3, [r1, r2]
|
|
47dc: 0a9b lsrs r3, r3, #10
|
|
47de: 029b lsls r3, r3, #10
|
|
47e0: 528b strh r3, [r1, r2]
|
|
elaps = lv_tick_elaps(start);
|
|
47e2: 9805 ldr r0, [sp, #20]
|
|
47e4: 4b51 ldr r3, [pc, #324] ; (492c <_lv_disp_refr_task+0x570>)
|
|
47e6: 4798 blx r3
|
|
47e8: 0001 movs r1, r0
|
|
if(disp_refr->driver.monitor_cb) {
|
|
47ea: 6820 ldr r0, [r4, #0]
|
|
47ec: 6983 ldr r3, [r0, #24]
|
|
47ee: 2b00 cmp r3, #0
|
|
47f0: d100 bne.n 47f4 <_lv_disp_refr_task+0x438>
|
|
47f2: e079 b.n 48e8 <_lv_disp_refr_task+0x52c>
|
|
disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num);
|
|
47f4: 4a4e ldr r2, [pc, #312] ; (4930 <_lv_disp_refr_task+0x574>)
|
|
47f6: 6812 ldr r2, [r2, #0]
|
|
47f8: 4798 blx r3
|
|
47fa: e075 b.n 48e8 <_lv_disp_refr_task+0x52c>
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
|
|
47fc: 4b4d ldr r3, [pc, #308] ; (4934 <_lv_disp_refr_task+0x578>)
|
|
47fe: 4798 blx r3
|
|
4800: 0004 movs r4, r0
|
|
lv_refr_vdb_flush();
|
|
4802: 4b4d ldr r3, [pc, #308] ; (4938 <_lv_disp_refr_task+0x57c>)
|
|
4804: 4798 blx r3
|
|
while(vdb->flushing)
|
|
4806: 69a3 ldr r3, [r4, #24]
|
|
4808: 2b00 cmp r3, #0
|
|
480a: d1fc bne.n 4806 <_lv_disp_refr_task+0x44a>
|
|
uint8_t * buf_act = (uint8_t *)vdb->buf_act;
|
|
480c: 68a3 ldr r3, [r4, #8]
|
|
480e: 469b mov fp, r3
|
|
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
|
|
4810: 6823 ldr r3, [r4, #0]
|
|
4812: 4699 mov r9, r3
|
|
4814: 459b cmp fp, r3
|
|
4816: d101 bne.n 481c <_lv_disp_refr_task+0x460>
|
|
4818: 6863 ldr r3, [r4, #4]
|
|
481a: 4699 mov r9, r3
|
|
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
|
|
481c: 4c40 ldr r4, [pc, #256] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
481e: 6820 ldr r0, [r4, #0]
|
|
4820: 4b46 ldr r3, [pc, #280] ; (493c <_lv_disp_refr_task+0x580>)
|
|
4822: 4798 blx r3
|
|
4824: 9000 str r0, [sp, #0]
|
|
for(a = 0; a < disp_refr->inv_p; a++) {
|
|
4826: 6823 ldr r3, [r4, #0]
|
|
4828: 22b4 movs r2, #180 ; 0xb4
|
|
482a: 0052 lsls r2, r2, #1
|
|
482c: 5a9a ldrh r2, [r3, r2]
|
|
482e: 0592 lsls r2, r2, #22
|
|
4830: d0c4 beq.n 47bc <_lv_disp_refr_task+0x400>
|
|
start_offs += hres * sizeof(lv_color_t);
|
|
4832: 0042 lsls r2, r0, #1
|
|
4834: 4692 mov sl, r2
|
|
4836: 2600 movs r6, #0
|
|
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
|
|
4838: 0035 movs r5, r6
|
|
483a: e00b b.n 4854 <_lv_disp_refr_task+0x498>
|
|
for(a = 0; a < disp_refr->inv_p; a++) {
|
|
483c: 3601 adds r6, #1
|
|
483e: b2b6 uxth r6, r6
|
|
4840: 0035 movs r5, r6
|
|
4842: 4b37 ldr r3, [pc, #220] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
4844: 681b ldr r3, [r3, #0]
|
|
4846: 22b4 movs r2, #180 ; 0xb4
|
|
4848: 0052 lsls r2, r2, #1
|
|
484a: 5a9a ldrh r2, [r3, r2]
|
|
484c: 0592 lsls r2, r2, #22
|
|
484e: 0d92 lsrs r2, r2, #22
|
|
4850: 4296 cmp r6, r2
|
|
4852: dab3 bge.n 47bc <_lv_disp_refr_task+0x400>
|
|
if(disp_refr->inv_area_joined[a] == 0) {
|
|
4854: 195a adds r2, r3, r5
|
|
4856: 3249 adds r2, #73 ; 0x49
|
|
4858: 32ff adds r2, #255 ; 0xff
|
|
485a: 7812 ldrb r2, [r2, #0]
|
|
485c: 2a00 cmp r2, #0
|
|
485e: d1ed bne.n 483c <_lv_disp_refr_task+0x480>
|
|
4860: 00ea lsls r2, r5, #3
|
|
4862: 189b adds r3, r3, r2
|
|
(hres * disp_refr->inv_areas[a].y1 + disp_refr->inv_areas[a].x1) * sizeof(lv_color_t);
|
|
4864: 224a movs r2, #74 ; 0x4a
|
|
4866: 5e9f ldrsh r7, [r3, r2]
|
|
4868: 2248 movs r2, #72 ; 0x48
|
|
486a: 5e9a ldrsh r2, [r3, r2]
|
|
486c: 9c00 ldr r4, [sp, #0]
|
|
486e: 437c muls r4, r7
|
|
4870: 18a4 adds r4, r4, r2
|
|
uint32_t start_offs =
|
|
4872: 0064 lsls r4, r4, #1
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
4874: 214c movs r1, #76 ; 0x4c
|
|
4876: 5a5b ldrh r3, [r3, r1]
|
|
4878: 3301 adds r3, #1
|
|
487a: 1a9b subs r3, r3, r2
|
|
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
|
|
487c: b21b sxth r3, r3
|
|
487e: 005b lsls r3, r3, #1
|
|
4880: 9301 str r3, [sp, #4]
|
|
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
|
|
4882: 002b movs r3, r5
|
|
4884: 3309 adds r3, #9
|
|
4886: 00db lsls r3, r3, #3
|
|
4888: 4a25 ldr r2, [pc, #148] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
488a: 6812 ldr r2, [r2, #0]
|
|
488c: 9202 str r2, [sp, #8]
|
|
488e: 4694 mov ip, r2
|
|
4890: 4463 add r3, ip
|
|
4892: 2206 movs r2, #6
|
|
4894: 5e9b ldrsh r3, [r3, r2]
|
|
4896: 42bb cmp r3, r7
|
|
4898: dbd0 blt.n 483c <_lv_disp_refr_task+0x480>
|
|
489a: 46a0 mov r8, r4
|
|
489c: 44d8 add r8, fp
|
|
489e: 444c add r4, r9
|
|
48a0: 3509 adds r5, #9
|
|
48a2: 00ed lsls r5, r5, #3
|
|
_lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length);
|
|
48a4: 9a01 ldr r2, [sp, #4]
|
|
48a6: 0021 movs r1, r4
|
|
48a8: 4640 mov r0, r8
|
|
48aa: 4b25 ldr r3, [pc, #148] ; (4940 <_lv_disp_refr_task+0x584>)
|
|
48ac: 4798 blx r3
|
|
48ae: 3701 adds r7, #1
|
|
48b0: b23f sxth r7, r7
|
|
48b2: 44d0 add r8, sl
|
|
48b4: 4454 add r4, sl
|
|
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
|
|
48b6: 4b1a ldr r3, [pc, #104] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
48b8: 681b ldr r3, [r3, #0]
|
|
48ba: 9302 str r3, [sp, #8]
|
|
48bc: 195b adds r3, r3, r5
|
|
48be: 2206 movs r2, #6
|
|
48c0: 5e9b ldrsh r3, [r3, r2]
|
|
48c2: 42bb cmp r3, r7
|
|
48c4: daee bge.n 48a4 <_lv_disp_refr_task+0x4e8>
|
|
48c6: e7b9 b.n 483c <_lv_disp_refr_task+0x480>
|
|
px_num = 0;
|
|
48c8: 2200 movs r2, #0
|
|
48ca: 4b19 ldr r3, [pc, #100] ; (4930 <_lv_disp_refr_task+0x574>)
|
|
48cc: 601a str r2, [r3, #0]
|
|
if(disp_refr->inv_p == 0) return;
|
|
48ce: 23b4 movs r3, #180 ; 0xb4
|
|
48d0: 005b lsls r3, r3, #1
|
|
48d2: 5ac3 ldrh r3, [r0, r3]
|
|
48d4: 059b lsls r3, r3, #22
|
|
48d6: d112 bne.n 48fe <_lv_disp_refr_task+0x542>
|
|
if(disp_refr->inv_p != 0) {
|
|
48d8: 4b11 ldr r3, [pc, #68] ; (4920 <_lv_disp_refr_task+0x564>)
|
|
48da: 6818 ldr r0, [r3, #0]
|
|
48dc: 23b4 movs r3, #180 ; 0xb4
|
|
48de: 005b lsls r3, r3, #1
|
|
48e0: 5ac3 ldrh r3, [r0, r3]
|
|
48e2: 059b lsls r3, r3, #22
|
|
48e4: d000 beq.n 48e8 <_lv_disp_refr_task+0x52c>
|
|
48e6: e760 b.n 47aa <_lv_disp_refr_task+0x3ee>
|
|
_lv_mem_buf_free_all();
|
|
48e8: 4b16 ldr r3, [pc, #88] ; (4944 <_lv_disp_refr_task+0x588>)
|
|
48ea: 4798 blx r3
|
|
_lv_font_clean_up_fmt_txt();
|
|
48ec: 4b16 ldr r3, [pc, #88] ; (4948 <_lv_disp_refr_task+0x58c>)
|
|
48ee: 4798 blx r3
|
|
}
|
|
48f0: b009 add sp, #36 ; 0x24
|
|
48f2: bc3c pop {r2, r3, r4, r5}
|
|
48f4: 4690 mov r8, r2
|
|
48f6: 4699 mov r9, r3
|
|
48f8: 46a2 mov sl, r4
|
|
48fa: 46ab mov fp, r5
|
|
48fc: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int32_t last_i = 0;
|
|
48fe: 2300 movs r3, #0
|
|
4900: 9304 str r3, [sp, #16]
|
|
4902: e609 b.n 4518 <_lv_disp_refr_task+0x15c>
|
|
px_num = 0;
|
|
4904: 2200 movs r2, #0
|
|
4906: 4b0a ldr r3, [pc, #40] ; (4930 <_lv_disp_refr_task+0x574>)
|
|
4908: 601a str r2, [r3, #0]
|
|
if(disp_refr->inv_p == 0) return;
|
|
490a: 23b4 movs r3, #180 ; 0xb4
|
|
490c: 005b lsls r3, r3, #1
|
|
490e: 5ac3 ldrh r3, [r0, r3]
|
|
4910: 059b lsls r3, r3, #22
|
|
4912: d0e9 beq.n 48e8 <_lv_disp_refr_task+0x52c>
|
|
int32_t last_i = 0;
|
|
4914: 2300 movs r3, #0
|
|
4916: 9304 str r3, [sp, #16]
|
|
4918: e5fe b.n 4518 <_lv_disp_refr_task+0x15c>
|
|
491a: 46c0 nop ; (mov r8, r8)
|
|
491c: 000041f9 .word 0x000041f9
|
|
4920: 200026e8 .word 0x200026e8
|
|
4924: 0000f725 .word 0x0000f725
|
|
4928: 0001104d .word 0x0001104d
|
|
492c: 0000f7a9 .word 0x0000f7a9
|
|
4930: 200026ec .word 0x200026ec
|
|
4934: 0000f709 .word 0x0000f709
|
|
4938: 00004179 .word 0x00004179
|
|
493c: 0000f615 .word 0x0000f615
|
|
4940: 00010c8d .word 0x00010c8d
|
|
4944: 00010c35 .word 0x00010c35
|
|
4948: 0000f43d .word 0x0000f43d
|
|
|
|
0000494c <lv_style_init>:
|
|
/**
|
|
* Initialize a style
|
|
* @param style pointer to a style to initialize
|
|
*/
|
|
void lv_style_init(lv_style_t * style)
|
|
{
|
|
494c: b510 push {r4, lr}
|
|
_lv_memset_00(style, sizeof(lv_style_t));
|
|
494e: 2104 movs r1, #4
|
|
4950: 4b01 ldr r3, [pc, #4] ; (4958 <lv_style_init+0xc>)
|
|
4952: 4798 blx r3
|
|
#if LV_USE_ASSERT_STYLE
|
|
style->sentinel = LV_DEBUG_STYLE_SENTINEL_VALUE;
|
|
#endif
|
|
}
|
|
4954: bd10 pop {r4, pc}
|
|
4956: 46c0 nop ; (mov r8, r8)
|
|
4958: 0001104d .word 0x0001104d
|
|
|
|
0000495c <lv_style_list_init>:
|
|
/**
|
|
* Initialize a style list
|
|
* @param list a style list to initialize
|
|
*/
|
|
void lv_style_list_init(lv_style_list_t * list)
|
|
{
|
|
495c: b510 push {r4, lr}
|
|
_lv_memset_00(list, sizeof(lv_style_list_t));
|
|
495e: 2108 movs r1, #8
|
|
4960: 4b01 ldr r3, [pc, #4] ; (4968 <lv_style_list_init+0xc>)
|
|
4962: 4798 blx r3
|
|
#if LV_USE_ASSERT_STYLE
|
|
list->sentinel = LV_DEBUG_STYLE_LIST_SENTINEL_VALUE;
|
|
#endif
|
|
}
|
|
4964: bd10 pop {r4, pc}
|
|
4966: 46c0 nop ; (mov r8, r8)
|
|
4968: 0001104d .word 0x0001104d
|
|
|
|
0000496c <_lv_style_list_remove_style>:
|
|
* Remove a style from a style list
|
|
* @param style_list pointer to a style list
|
|
* @param style pointer to a style to remove
|
|
*/
|
|
void _lv_style_list_remove_style(lv_style_list_t * list, lv_style_t * style)
|
|
{
|
|
496c: b570 push {r4, r5, r6, lr}
|
|
496e: 0004 movs r4, r0
|
|
4970: 000d movs r5, r1
|
|
LV_ASSERT_STYLE_LIST(list);
|
|
LV_ASSERT_STYLE(style);
|
|
|
|
if(list->style_cnt == 0) return;
|
|
4972: 7906 ldrb r6, [r0, #4]
|
|
4974: 2e00 cmp r6, #0
|
|
4976: d045 beq.n 4a04 <_lv_style_list_remove_style+0x98>
|
|
|
|
/*Check if the style really exists here*/
|
|
uint8_t i;
|
|
bool found = false;
|
|
for(i = 0; i < list->style_cnt; i++) {
|
|
if(list->style_list[i] == style) {
|
|
4978: 6800 ldr r0, [r0, #0]
|
|
497a: 6803 ldr r3, [r0, #0]
|
|
497c: 4299 cmp r1, r3
|
|
497e: d00c beq.n 499a <_lv_style_list_remove_style+0x2e>
|
|
4980: 1d03 adds r3, r0, #4
|
|
4982: 1e72 subs r2, r6, #1
|
|
4984: b2d2 uxtb r2, r2
|
|
4986: 3201 adds r2, #1
|
|
4988: 0092 lsls r2, r2, #2
|
|
498a: 1882 adds r2, r0, r2
|
|
for(i = 0; i < list->style_cnt; i++) {
|
|
498c: 429a cmp r2, r3
|
|
498e: d039 beq.n 4a04 <_lv_style_list_remove_style+0x98>
|
|
4990: 3304 adds r3, #4
|
|
if(list->style_list[i] == style) {
|
|
4992: 1f19 subs r1, r3, #4
|
|
4994: 6809 ldr r1, [r1, #0]
|
|
4996: 42a9 cmp r1, r5
|
|
4998: d1f8 bne.n 498c <_lv_style_list_remove_style+0x20>
|
|
break;
|
|
}
|
|
}
|
|
if(found == false) return;
|
|
|
|
if(list->style_cnt == 1) {
|
|
499a: 2e01 cmp r6, #1
|
|
499c: d010 beq.n 49c0 <_lv_style_list_remove_style+0x54>
|
|
list->style_cnt = 0;
|
|
list->has_local = 0;
|
|
return;
|
|
}
|
|
|
|
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
|
|
499e: 1e71 subs r1, r6, #1
|
|
49a0: 0089 lsls r1, r1, #2
|
|
49a2: 4b19 ldr r3, [pc, #100] ; (4a08 <_lv_style_list_remove_style+0x9c>)
|
|
49a4: 4798 blx r3
|
|
49a6: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(new_classes);
|
|
49a8: 4b18 ldr r3, [pc, #96] ; (4a0c <_lv_style_list_remove_style+0xa0>)
|
|
49aa: 4798 blx r3
|
|
49ac: 2800 cmp r0, #0
|
|
49ae: d011 beq.n 49d4 <_lv_style_list_remove_style+0x68>
|
|
if(new_classes == NULL) {
|
|
49b0: 2e00 cmp r6, #0
|
|
49b2: d027 beq.n 4a04 <_lv_style_list_remove_style+0x98>
|
|
LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list");
|
|
return;
|
|
}
|
|
uint8_t j;
|
|
for(i = 0, j = 0; i < list->style_cnt; i++) {
|
|
49b4: 7922 ldrb r2, [r4, #4]
|
|
49b6: 2a00 cmp r2, #0
|
|
49b8: d021 beq.n 49fe <_lv_style_list_remove_style+0x92>
|
|
49ba: 2100 movs r1, #0
|
|
49bc: 2300 movs r3, #0
|
|
49be: e014 b.n 49ea <_lv_style_list_remove_style+0x7e>
|
|
lv_mem_free(list->style_list);
|
|
49c0: 4b13 ldr r3, [pc, #76] ; (4a10 <_lv_style_list_remove_style+0xa4>)
|
|
49c2: 4798 blx r3
|
|
list->style_list = NULL;
|
|
49c4: 2300 movs r3, #0
|
|
49c6: 6023 str r3, [r4, #0]
|
|
list->style_cnt = 0;
|
|
49c8: 7123 strb r3, [r4, #4]
|
|
list->has_local = 0;
|
|
49ca: 7963 ldrb r3, [r4, #5]
|
|
49cc: 2201 movs r2, #1
|
|
49ce: 4393 bics r3, r2
|
|
49d0: 7163 strb r3, [r4, #5]
|
|
return;
|
|
49d2: e017 b.n 4a04 <_lv_style_list_remove_style+0x98>
|
|
LV_ASSERT_MEM(new_classes);
|
|
49d4: 0032 movs r2, r6
|
|
49d6: 2300 movs r3, #0
|
|
49d8: 480e ldr r0, [pc, #56] ; (4a14 <_lv_style_list_remove_style+0xa8>)
|
|
49da: 490f ldr r1, [pc, #60] ; (4a18 <_lv_style_list_remove_style+0xac>)
|
|
49dc: 4788 blx r1
|
|
49de: e7fe b.n 49de <_lv_style_list_remove_style+0x72>
|
|
for(i = 0, j = 0; i < list->style_cnt; i++) {
|
|
49e0: 3301 adds r3, #1
|
|
49e2: b2db uxtb r3, r3
|
|
49e4: 7922 ldrb r2, [r4, #4]
|
|
49e6: 429a cmp r2, r3
|
|
49e8: d909 bls.n 49fe <_lv_style_list_remove_style+0x92>
|
|
if(list->style_list[i] == style) continue;
|
|
49ea: 009a lsls r2, r3, #2
|
|
49ec: 6820 ldr r0, [r4, #0]
|
|
49ee: 5812 ldr r2, [r2, r0]
|
|
49f0: 4295 cmp r5, r2
|
|
49f2: d0f5 beq.n 49e0 <_lv_style_list_remove_style+0x74>
|
|
new_classes[j] = list->style_list[i];
|
|
49f4: 0088 lsls r0, r1, #2
|
|
49f6: 5182 str r2, [r0, r6]
|
|
j++;
|
|
49f8: 3101 adds r1, #1
|
|
49fa: b2c9 uxtb r1, r1
|
|
49fc: e7f0 b.n 49e0 <_lv_style_list_remove_style+0x74>
|
|
|
|
}
|
|
|
|
list->style_cnt--;
|
|
49fe: 3a01 subs r2, #1
|
|
4a00: 7122 strb r2, [r4, #4]
|
|
list->style_list = new_classes;
|
|
4a02: 6026 str r6, [r4, #0]
|
|
}
|
|
4a04: bd70 pop {r4, r5, r6, pc}
|
|
4a06: 46c0 nop ; (mov r8, r8)
|
|
4a08: 00010e45 .word 0x00010e45
|
|
4a0c: 0000147d .word 0x0000147d
|
|
4a10: 00010b39 .word 0x00010b39
|
|
4a14: 00018724 .word 0x00018724
|
|
4a18: 00001485 .word 0x00001485
|
|
|
|
00004a1c <_lv_style_list_add_style>:
|
|
{
|
|
4a1c: b570 push {r4, r5, r6, lr}
|
|
4a1e: 0005 movs r5, r0
|
|
4a20: 000c movs r4, r1
|
|
if(list == NULL) return;
|
|
4a22: 2800 cmp r0, #0
|
|
4a24: d030 beq.n 4a88 <_lv_style_list_add_style+0x6c>
|
|
_lv_style_list_remove_style(list, style);
|
|
4a26: 4b1f ldr r3, [pc, #124] ; (4aa4 <_lv_style_list_add_style+0x88>)
|
|
4a28: 4798 blx r3
|
|
if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *));
|
|
4a2a: 792b ldrb r3, [r5, #4]
|
|
4a2c: 2b00 cmp r3, #0
|
|
4a2e: d12c bne.n 4a8a <_lv_style_list_add_style+0x6e>
|
|
4a30: 2004 movs r0, #4
|
|
4a32: 4b1d ldr r3, [pc, #116] ; (4aa8 <_lv_style_list_add_style+0x8c>)
|
|
4a34: 4798 blx r3
|
|
4a36: 0006 movs r6, r0
|
|
LV_ASSERT_MEM(new_classes);
|
|
4a38: 0030 movs r0, r6
|
|
4a3a: 4b1c ldr r3, [pc, #112] ; (4aac <_lv_style_list_add_style+0x90>)
|
|
4a3c: 4798 blx r3
|
|
4a3e: 2800 cmp r0, #0
|
|
4a40: d02a beq.n 4a98 <_lv_style_list_add_style+0x7c>
|
|
if(new_classes == NULL) {
|
|
4a42: 2e00 cmp r6, #0
|
|
4a44: d020 beq.n 4a88 <_lv_style_list_add_style+0x6c>
|
|
if(list->has_trans) first_style++;
|
|
4a46: 796b ldrb r3, [r5, #5]
|
|
4a48: 0859 lsrs r1, r3, #1
|
|
4a4a: 2201 movs r2, #1
|
|
uint8_t first_style = 0;
|
|
4a4c: 4011 ands r1, r2
|
|
if(list->has_local) first_style++;
|
|
4a4e: 421a tst r2, r3
|
|
4a50: d000 beq.n 4a54 <_lv_style_list_add_style+0x38>
|
|
4a52: 3101 adds r1, #1
|
|
for(i = list->style_cnt; i > first_style; i--) {
|
|
4a54: 792a ldrb r2, [r5, #4]
|
|
4a56: 4291 cmp r1, r2
|
|
4a58: d210 bcs.n 4a7c <_lv_style_list_add_style+0x60>
|
|
4a5a: 4b15 ldr r3, [pc, #84] ; (4ab0 <_lv_style_list_add_style+0x94>)
|
|
4a5c: 18d3 adds r3, r2, r3
|
|
4a5e: 009b lsls r3, r3, #2
|
|
4a60: 18f3 adds r3, r6, r3
|
|
4a62: 4814 ldr r0, [pc, #80] ; (4ab4 <_lv_style_list_add_style+0x98>)
|
|
4a64: 1810 adds r0, r2, r0
|
|
4a66: 3a01 subs r2, #1
|
|
4a68: 1a52 subs r2, r2, r1
|
|
4a6a: b2d2 uxtb r2, r2
|
|
4a6c: 1a82 subs r2, r0, r2
|
|
4a6e: 0092 lsls r2, r2, #2
|
|
4a70: 18b2 adds r2, r6, r2
|
|
new_classes[i] = new_classes[i - 1];
|
|
4a72: 6818 ldr r0, [r3, #0]
|
|
4a74: 6058 str r0, [r3, #4]
|
|
4a76: 3b04 subs r3, #4
|
|
for(i = list->style_cnt; i > first_style; i--) {
|
|
4a78: 4293 cmp r3, r2
|
|
4a7a: d1fa bne.n 4a72 <_lv_style_list_add_style+0x56>
|
|
new_classes[first_style] = style;
|
|
4a7c: 0089 lsls r1, r1, #2
|
|
4a7e: 518c str r4, [r1, r6]
|
|
list->style_cnt++;
|
|
4a80: 792b ldrb r3, [r5, #4]
|
|
4a82: 3301 adds r3, #1
|
|
4a84: 712b strb r3, [r5, #4]
|
|
list->style_list = new_classes;
|
|
4a86: 602e str r6, [r5, #0]
|
|
}
|
|
4a88: bd70 pop {r4, r5, r6, pc}
|
|
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
|
|
4a8a: 3301 adds r3, #1
|
|
4a8c: 0099 lsls r1, r3, #2
|
|
4a8e: 6828 ldr r0, [r5, #0]
|
|
4a90: 4b09 ldr r3, [pc, #36] ; (4ab8 <_lv_style_list_add_style+0x9c>)
|
|
4a92: 4798 blx r3
|
|
4a94: 0006 movs r6, r0
|
|
4a96: e7cf b.n 4a38 <_lv_style_list_add_style+0x1c>
|
|
LV_ASSERT_MEM(new_classes);
|
|
4a98: 0032 movs r2, r6
|
|
4a9a: 2300 movs r3, #0
|
|
4a9c: 4807 ldr r0, [pc, #28] ; (4abc <_lv_style_list_add_style+0xa0>)
|
|
4a9e: 4908 ldr r1, [pc, #32] ; (4ac0 <_lv_style_list_add_style+0xa4>)
|
|
4aa0: 4788 blx r1
|
|
4aa2: e7fe b.n 4aa2 <_lv_style_list_add_style+0x86>
|
|
4aa4: 0000496d .word 0x0000496d
|
|
4aa8: 00010a71 .word 0x00010a71
|
|
4aac: 0000147d .word 0x0000147d
|
|
4ab0: 3fffffff .word 0x3fffffff
|
|
4ab4: 3ffffffe .word 0x3ffffffe
|
|
4ab8: 00010e45 .word 0x00010e45
|
|
4abc: 00018724 .word 0x00018724
|
|
4ac0: 00001485 .word 0x00001485
|
|
|
|
00004ac4 <get_alloc_local_style>:
|
|
* Get he local style from a style list. Allocate it if not exists yet.
|
|
* @param list pointer to a style list
|
|
* @return pointer to the local style
|
|
*/
|
|
static lv_style_t * get_alloc_local_style(lv_style_list_t * list)
|
|
{
|
|
4ac4: b570 push {r4, r5, r6, lr}
|
|
4ac6: 0005 movs r5, r0
|
|
LV_ASSERT_STYLE_LIST(list);
|
|
|
|
if(list->has_local) return lv_style_list_get_style(list, 0);
|
|
4ac8: 7942 ldrb r2, [r0, #5]
|
|
4aca: 07d3 lsls r3, r2, #31
|
|
4acc: d50f bpl.n 4aee <get_alloc_local_style+0x2a>
|
|
4ace: 2306 movs r3, #6
|
|
4ad0: 4013 ands r3, r2
|
|
4ad2: 3b06 subs r3, #6
|
|
4ad4: 425a negs r2, r3
|
|
4ad6: 4153 adcs r3, r2
|
|
4ad8: b2db uxtb r3, r3
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
4ada: 7902 ldrb r2, [r0, #4]
|
|
4adc: 2a00 cmp r2, #0
|
|
4ade: d022 beq.n 4b26 <get_alloc_local_style+0x62>
|
|
4ae0: 429a cmp r2, r3
|
|
4ae2: d922 bls.n 4b2a <get_alloc_local_style+0x66>
|
|
return list->style_list[id];
|
|
4ae4: 6802 ldr r2, [r0, #0]
|
|
4ae6: 009b lsls r3, r3, #2
|
|
4ae8: 589c ldr r4, [r3, r2]
|
|
/*Add the local style to the furst place*/
|
|
_lv_style_list_add_style(list, local_style);
|
|
list->has_local = 1;
|
|
|
|
return local_style;
|
|
}
|
|
4aea: 0020 movs r0, r4
|
|
4aec: bd70 pop {r4, r5, r6, pc}
|
|
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
|
|
4aee: 2004 movs r0, #4
|
|
4af0: 4b0f ldr r3, [pc, #60] ; (4b30 <get_alloc_local_style+0x6c>)
|
|
4af2: 4798 blx r3
|
|
4af4: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(local_style);
|
|
4af6: 4b0f ldr r3, [pc, #60] ; (4b34 <get_alloc_local_style+0x70>)
|
|
4af8: 4798 blx r3
|
|
4afa: 2800 cmp r0, #0
|
|
4afc: d00d beq.n 4b1a <get_alloc_local_style+0x56>
|
|
if(local_style == NULL) {
|
|
4afe: 2c00 cmp r4, #0
|
|
4b00: d0f3 beq.n 4aea <get_alloc_local_style+0x26>
|
|
lv_style_init(local_style);
|
|
4b02: 0020 movs r0, r4
|
|
4b04: 4b0c ldr r3, [pc, #48] ; (4b38 <get_alloc_local_style+0x74>)
|
|
4b06: 4798 blx r3
|
|
_lv_style_list_add_style(list, local_style);
|
|
4b08: 0021 movs r1, r4
|
|
4b0a: 0028 movs r0, r5
|
|
4b0c: 4b0b ldr r3, [pc, #44] ; (4b3c <get_alloc_local_style+0x78>)
|
|
4b0e: 4798 blx r3
|
|
list->has_local = 1;
|
|
4b10: 796b ldrb r3, [r5, #5]
|
|
4b12: 2201 movs r2, #1
|
|
4b14: 4313 orrs r3, r2
|
|
4b16: 716b strb r3, [r5, #5]
|
|
return local_style;
|
|
4b18: e7e7 b.n 4aea <get_alloc_local_style+0x26>
|
|
LV_ASSERT_MEM(local_style);
|
|
4b1a: 0022 movs r2, r4
|
|
4b1c: 2300 movs r3, #0
|
|
4b1e: 4808 ldr r0, [pc, #32] ; (4b40 <get_alloc_local_style+0x7c>)
|
|
4b20: 4908 ldr r1, [pc, #32] ; (4b44 <get_alloc_local_style+0x80>)
|
|
4b22: 4788 blx r1
|
|
4b24: e7fe b.n 4b24 <get_alloc_local_style+0x60>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
4b26: 2400 movs r4, #0
|
|
4b28: e7df b.n 4aea <get_alloc_local_style+0x26>
|
|
4b2a: 2400 movs r4, #0
|
|
4b2c: e7dd b.n 4aea <get_alloc_local_style+0x26>
|
|
4b2e: 46c0 nop ; (mov r8, r8)
|
|
4b30: 00010a71 .word 0x00010a71
|
|
4b34: 0000147d .word 0x0000147d
|
|
4b38: 0000494d .word 0x0000494d
|
|
4b3c: 00004a1d .word 0x00004a1d
|
|
4b40: 00018724 .word 0x00018724
|
|
4b44: 00001485 .word 0x00001485
|
|
|
|
00004b48 <lv_style_reset>:
|
|
{
|
|
4b48: b510 push {r4, lr}
|
|
4b4a: 0004 movs r4, r0
|
|
lv_mem_free(style->map);
|
|
4b4c: 6800 ldr r0, [r0, #0]
|
|
4b4e: 4b02 ldr r3, [pc, #8] ; (4b58 <lv_style_reset+0x10>)
|
|
4b50: 4798 blx r3
|
|
style->map = NULL;
|
|
4b52: 2300 movs r3, #0
|
|
4b54: 6023 str r3, [r4, #0]
|
|
}
|
|
4b56: bd10 pop {r4, pc}
|
|
4b58: 00010b39 .word 0x00010b39
|
|
|
|
00004b5c <_lv_style_get_mem_size>:
|
|
{
|
|
4b5c: b510 push {r4, lr}
|
|
if(style->map == NULL) return 0;
|
|
4b5e: 6801 ldr r1, [r0, #0]
|
|
4b60: 2900 cmp r1, #0
|
|
4b62: d019 beq.n 4b98 <_lv_style_get_mem_size+0x3c>
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4b64: 780b ldrb r3, [r1, #0]
|
|
4b66: 2bff cmp r3, #255 ; 0xff
|
|
4b68: d012 beq.n 4b90 <_lv_style_get_mem_size+0x34>
|
|
4b6a: 2000 movs r0, #0
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4b6c: 240f movs r4, #15
|
|
4b6e: e003 b.n 4b78 <_lv_style_get_mem_size+0x1c>
|
|
i += sizeof(lv_style_property_t);
|
|
4b70: 1c90 adds r0, r2, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4b72: 5c0b ldrb r3, [r1, r0]
|
|
4b74: 2bff cmp r3, #255 ; 0xff
|
|
4b76: d00c beq.n 4b92 <_lv_style_get_mem_size+0x36>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4b78: 4023 ands r3, r4
|
|
4b7a: 1c82 adds r2, r0, #2
|
|
4b7c: 2b08 cmp r3, #8
|
|
4b7e: ddf7 ble.n 4b70 <_lv_style_get_mem_size+0x14>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
4b80: 1c82 adds r2, r0, #2
|
|
4b82: 2b0b cmp r3, #11
|
|
4b84: ddf4 ble.n 4b70 <_lv_style_get_mem_size+0x14>
|
|
else i += sizeof(const void *);
|
|
4b86: 1d02 adds r2, r0, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
4b88: 2b0d cmp r3, #13
|
|
4b8a: dcf1 bgt.n 4b70 <_lv_style_get_mem_size+0x14>
|
|
4b8c: 1c42 adds r2, r0, #1
|
|
4b8e: e7ef b.n 4b70 <_lv_style_get_mem_size+0x14>
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4b90: 2000 movs r0, #0
|
|
return i + sizeof(lv_style_property_t);
|
|
4b92: 3002 adds r0, #2
|
|
4b94: b280 uxth r0, r0
|
|
}
|
|
4b96: bd10 pop {r4, pc}
|
|
if(style->map == NULL) return 0;
|
|
4b98: 2000 movs r0, #0
|
|
4b9a: e7fc b.n 4b96 <_lv_style_get_mem_size+0x3a>
|
|
|
|
00004b9c <lv_style_copy>:
|
|
{
|
|
4b9c: b570 push {r4, r5, r6, lr}
|
|
4b9e: 0006 movs r6, r0
|
|
4ba0: 1e0c subs r4, r1, #0
|
|
if(style_src == NULL) return;
|
|
4ba2: d00d beq.n 4bc0 <lv_style_copy+0x24>
|
|
if(style_src->map == NULL) return;
|
|
4ba4: 680b ldr r3, [r1, #0]
|
|
4ba6: 2b00 cmp r3, #0
|
|
4ba8: d00a beq.n 4bc0 <lv_style_copy+0x24>
|
|
uint16_t size = _lv_style_get_mem_size(style_src);
|
|
4baa: 0008 movs r0, r1
|
|
4bac: 4b05 ldr r3, [pc, #20] ; (4bc4 <lv_style_copy+0x28>)
|
|
4bae: 4798 blx r3
|
|
4bb0: 0005 movs r5, r0
|
|
style_dest->map = lv_mem_alloc(size);
|
|
4bb2: 4b05 ldr r3, [pc, #20] ; (4bc8 <lv_style_copy+0x2c>)
|
|
4bb4: 4798 blx r3
|
|
4bb6: 6030 str r0, [r6, #0]
|
|
_lv_memcpy(style_dest->map, style_src->map, size);
|
|
4bb8: 6821 ldr r1, [r4, #0]
|
|
4bba: 002a movs r2, r5
|
|
4bbc: 4b03 ldr r3, [pc, #12] ; (4bcc <lv_style_copy+0x30>)
|
|
4bbe: 4798 blx r3
|
|
}
|
|
4bc0: bd70 pop {r4, r5, r6, pc}
|
|
4bc2: 46c0 nop ; (mov r8, r8)
|
|
4bc4: 00004b5d .word 0x00004b5d
|
|
4bc8: 00010a71 .word 0x00010a71
|
|
4bcc: 00010c8d .word 0x00010c8d
|
|
|
|
00004bd0 <lv_style_remove_prop>:
|
|
{
|
|
4bd0: b5f0 push {r4, r5, r6, r7, lr}
|
|
4bd2: 46de mov lr, fp
|
|
4bd4: 4657 mov r7, sl
|
|
4bd6: 464e mov r6, r9
|
|
4bd8: 4645 mov r5, r8
|
|
4bda: b5e0 push {r5, r6, r7, lr}
|
|
4bdc: b085 sub sp, #20
|
|
4bde: 1e06 subs r6, r0, #0
|
|
4be0: 9103 str r1, [sp, #12]
|
|
if(style == NULL) return false;
|
|
4be2: d100 bne.n 4be6 <lv_style_remove_prop+0x16>
|
|
4be4: e07b b.n 4cde <lv_style_remove_prop+0x10e>
|
|
if(style->map == NULL) return -1;
|
|
4be6: 6800 ldr r0, [r0, #0]
|
|
4be8: 2800 cmp r0, #0
|
|
4bea: d100 bne.n 4bee <lv_style_remove_prop+0x1e>
|
|
4bec: e07b b.n 4ce6 <lv_style_remove_prop+0x116>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
4bee: b2cc uxtb r4, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
4bf0: 0a0b lsrs r3, r1, #8
|
|
4bf2: 4698 mov r8, r3
|
|
4bf4: 1c19 adds r1, r3, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4bf6: 7803 ldrb r3, [r0, #0]
|
|
4bf8: 2bff cmp r3, #255 ; 0xff
|
|
4bfa: d04e beq.n 4c9a <lv_style_remove_prop+0xca>
|
|
4bfc: 2201 movs r2, #1
|
|
4bfe: 4252 negs r2, r2
|
|
4c00: 9202 str r2, [sp, #8]
|
|
4c02: 4693 mov fp, r2
|
|
4c04: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4c06: 257f movs r5, #127 ; 0x7f
|
|
4c08: 46aa mov sl, r5
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4c0a: 0649 lsls r1, r1, #25
|
|
4c0c: 0e49 lsrs r1, r1, #25
|
|
4c0e: 468c mov ip, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4c10: 3d70 subs r5, #112 ; 0x70
|
|
4c12: 46c1 mov r9, r8
|
|
4c14: 46b0 mov r8, r6
|
|
4c16: e01c b.n 4c52 <lv_style_remove_prop+0x82>
|
|
attr_i.full = style->map[i + 1];
|
|
4c18: 1881 adds r1, r0, r2
|
|
4c1a: 7849 ldrb r1, [r1, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4c1c: 464f mov r7, r9
|
|
4c1e: 404f eors r7, r1
|
|
4c20: 4656 mov r6, sl
|
|
4c22: 423e tst r6, r7
|
|
4c24: d00d beq.n 4c42 <lv_style_remove_prop+0x72>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4c26: 0649 lsls r1, r1, #25
|
|
4c28: 0e49 lsrs r1, r1, #25
|
|
4c2a: 9101 str r1, [sp, #4]
|
|
4c2c: 000f movs r7, r1
|
|
4c2e: 4666 mov r6, ip
|
|
4c30: 43b7 bics r7, r6
|
|
4c32: d110 bne.n 4c56 <lv_style_remove_prop+0x86>
|
|
if(attr_i.bits.state > weight) {
|
|
4c34: 4559 cmp r1, fp
|
|
4c36: dd0e ble.n 4c56 <lv_style_remove_prop+0x86>
|
|
weight = attr_i.bits.state;
|
|
4c38: b209 sxth r1, r1
|
|
4c3a: 468b mov fp, r1
|
|
id_guess = i;
|
|
4c3c: b211 sxth r1, r2
|
|
4c3e: 9102 str r1, [sp, #8]
|
|
4c40: e009 b.n 4c56 <lv_style_remove_prop+0x86>
|
|
4c42: 4643 mov r3, r8
|
|
4c44: 46c8 mov r8, r9
|
|
4c46: 001e movs r6, r3
|
|
4c48: e015 b.n 4c76 <lv_style_remove_prop+0xa6>
|
|
i += sizeof(lv_style_property_t);
|
|
4c4a: 1c8a adds r2, r1, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4c4c: 5c83 ldrb r3, [r0, r2]
|
|
4c4e: 2bff cmp r3, #255 ; 0xff
|
|
4c50: d00d beq.n 4c6e <lv_style_remove_prop+0x9e>
|
|
if(style->map[i] == id_to_find) {
|
|
4c52: 429c cmp r4, r3
|
|
4c54: d0e0 beq.n 4c18 <lv_style_remove_prop+0x48>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4c56: 402b ands r3, r5
|
|
4c58: 1c91 adds r1, r2, #2
|
|
4c5a: 2b08 cmp r3, #8
|
|
4c5c: ddf5 ble.n 4c4a <lv_style_remove_prop+0x7a>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
4c5e: 1c91 adds r1, r2, #2
|
|
4c60: 2b0b cmp r3, #11
|
|
4c62: ddf2 ble.n 4c4a <lv_style_remove_prop+0x7a>
|
|
else i += sizeof(const void *);
|
|
4c64: 1d11 adds r1, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
4c66: 2b0d cmp r3, #13
|
|
4c68: dcef bgt.n 4c4a <lv_style_remove_prop+0x7a>
|
|
4c6a: 1c51 adds r1, r2, #1
|
|
4c6c: e7ed b.n 4c4a <lv_style_remove_prop+0x7a>
|
|
4c6e: 4643 mov r3, r8
|
|
4c70: 46c8 mov r8, r9
|
|
4c72: 001e movs r6, r3
|
|
return id_guess;
|
|
4c74: 9a02 ldr r2, [sp, #8]
|
|
if(id >= 0) {
|
|
4c76: 2a00 cmp r2, #0
|
|
4c78: db33 blt.n 4ce2 <lv_style_remove_prop+0x112>
|
|
attr_found.full = *(style->map + id + 1);
|
|
4c7a: 0014 movs r4, r2
|
|
4c7c: 1880 adds r0, r0, r2
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
4c7e: 7843 ldrb r3, [r0, #1]
|
|
4c80: 4642 mov r2, r8
|
|
4c82: 405a eors r2, r3
|
|
4c84: 0013 movs r3, r2
|
|
return false;
|
|
4c86: 2000 movs r0, #0
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
4c88: 065b lsls r3, r3, #25
|
|
4c8a: d00a beq.n 4ca2 <lv_style_remove_prop+0xd2>
|
|
}
|
|
4c8c: b005 add sp, #20
|
|
4c8e: bc3c pop {r2, r3, r4, r5}
|
|
4c90: 4690 mov r8, r2
|
|
4c92: 4699 mov r9, r3
|
|
4c94: 46a2 mov sl, r4
|
|
4c96: 46ab mov fp, r5
|
|
4c98: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
4c9a: 2301 movs r3, #1
|
|
4c9c: 425b negs r3, r3
|
|
4c9e: 9302 str r3, [sp, #8]
|
|
4ca0: e7e8 b.n 4c74 <lv_style_remove_prop+0xa4>
|
|
uint32_t map_size = _lv_style_get_mem_size(style);
|
|
4ca2: 0030 movs r0, r6
|
|
4ca4: 4b11 ldr r3, [pc, #68] ; (4cec <lv_style_remove_prop+0x11c>)
|
|
4ca6: 4798 blx r3
|
|
if((prop & 0xF) < LV_STYLE_ID_COLOR) prop_size += sizeof(lv_style_int_t);
|
|
4ca8: 230f movs r3, #15
|
|
4caa: 9a03 ldr r2, [sp, #12]
|
|
4cac: 4013 ands r3, r2
|
|
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
|
|
4cae: 2104 movs r1, #4
|
|
4cb0: 2b0b cmp r3, #11
|
|
4cb2: dd03 ble.n 4cbc <lv_style_remove_prop+0xec>
|
|
else if((prop & 0xF) < LV_STYLE_ID_PTR) prop_size += sizeof(lv_opa_t);
|
|
4cb4: 3901 subs r1, #1
|
|
4cb6: 2b0d cmp r3, #13
|
|
4cb8: dd00 ble.n 4cbc <lv_style_remove_prop+0xec>
|
|
else prop_size += sizeof(const void *);
|
|
4cba: 3103 adds r1, #3
|
|
for(i = id; i < map_size - prop_size; i++) {
|
|
4cbc: 000d movs r5, r1
|
|
4cbe: 1a41 subs r1, r0, r1
|
|
4cc0: 428c cmp r4, r1
|
|
4cc2: d206 bcs.n 4cd2 <lv_style_remove_prop+0x102>
|
|
style->map[i] = style->map[i + prop_size];
|
|
4cc4: 6833 ldr r3, [r6, #0]
|
|
4cc6: 195a adds r2, r3, r5
|
|
4cc8: 5d12 ldrb r2, [r2, r4]
|
|
4cca: 551a strb r2, [r3, r4]
|
|
for(i = id; i < map_size - prop_size; i++) {
|
|
4ccc: 3401 adds r4, #1
|
|
4cce: 428c cmp r4, r1
|
|
4cd0: d1f8 bne.n 4cc4 <lv_style_remove_prop+0xf4>
|
|
style->map = lv_mem_realloc(style->map, map_size - prop_size);
|
|
4cd2: 6830 ldr r0, [r6, #0]
|
|
4cd4: 4b06 ldr r3, [pc, #24] ; (4cf0 <lv_style_remove_prop+0x120>)
|
|
4cd6: 4798 blx r3
|
|
4cd8: 6030 str r0, [r6, #0]
|
|
return true;
|
|
4cda: 2001 movs r0, #1
|
|
4cdc: e7d6 b.n 4c8c <lv_style_remove_prop+0xbc>
|
|
if(style == NULL) return false;
|
|
4cde: 2000 movs r0, #0
|
|
4ce0: e7d4 b.n 4c8c <lv_style_remove_prop+0xbc>
|
|
return false;
|
|
4ce2: 2000 movs r0, #0
|
|
4ce4: e7d2 b.n 4c8c <lv_style_remove_prop+0xbc>
|
|
4ce6: 2000 movs r0, #0
|
|
4ce8: e7d0 b.n 4c8c <lv_style_remove_prop+0xbc>
|
|
4cea: 46c0 nop ; (mov r8, r8)
|
|
4cec: 00004b5d .word 0x00004b5d
|
|
4cf0: 00010e45 .word 0x00010e45
|
|
|
|
00004cf4 <_lv_style_set_int>:
|
|
{
|
|
4cf4: b5f0 push {r4, r5, r6, r7, lr}
|
|
4cf6: 46de mov lr, fp
|
|
4cf8: 4657 mov r7, sl
|
|
4cfa: 464e mov r6, r9
|
|
4cfc: 4645 mov r5, r8
|
|
4cfe: b5e0 push {r5, r6, r7, lr}
|
|
4d00: b087 sub sp, #28
|
|
4d02: 0006 movs r6, r0
|
|
4d04: ab02 add r3, sp, #8
|
|
4d06: 80d9 strh r1, [r3, #6]
|
|
4d08: ab03 add r3, sp, #12
|
|
4d0a: 801a strh r2, [r3, #0]
|
|
if(style->map == NULL) return -1;
|
|
4d0c: 6804 ldr r4, [r0, #0]
|
|
4d0e: 2c00 cmp r4, #0
|
|
4d10: d058 beq.n 4dc4 <_lv_style_set_int+0xd0>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
4d12: b2cd uxtb r5, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
4d14: 0a0b lsrs r3, r1, #8
|
|
4d16: 469a mov sl, r3
|
|
4d18: 1c19 adds r1, r3, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4d1a: 7823 ldrb r3, [r4, #0]
|
|
4d1c: 2bff cmp r3, #255 ; 0xff
|
|
4d1e: d04d beq.n 4dbc <_lv_style_set_int+0xc8>
|
|
4d20: 2201 movs r2, #1
|
|
4d22: 4252 negs r2, r2
|
|
4d24: 4690 mov r8, r2
|
|
4d26: 4694 mov ip, r2
|
|
4d28: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4d2a: 207f movs r0, #127 ; 0x7f
|
|
4d2c: 4683 mov fp, r0
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4d2e: 0649 lsls r1, r1, #25
|
|
4d30: 0e49 lsrs r1, r1, #25
|
|
4d32: 4689 mov r9, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4d34: 3870 subs r0, #112 ; 0x70
|
|
4d36: 9602 str r6, [sp, #8]
|
|
4d38: e01a b.n 4d70 <_lv_style_set_int+0x7c>
|
|
attr_i.full = style->map[i + 1];
|
|
4d3a: 18a1 adds r1, r4, r2
|
|
4d3c: 7849 ldrb r1, [r1, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4d3e: 4656 mov r6, sl
|
|
4d40: 404e eors r6, r1
|
|
4d42: 465f mov r7, fp
|
|
4d44: 4237 tst r7, r6
|
|
4d46: d00d beq.n 4d64 <_lv_style_set_int+0x70>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4d48: 0649 lsls r1, r1, #25
|
|
4d4a: 0e49 lsrs r1, r1, #25
|
|
4d4c: 9101 str r1, [sp, #4]
|
|
4d4e: 000e movs r6, r1
|
|
4d50: 464f mov r7, r9
|
|
4d52: 43be bics r6, r7
|
|
4d54: d10e bne.n 4d74 <_lv_style_set_int+0x80>
|
|
if(attr_i.bits.state > weight) {
|
|
4d56: 4561 cmp r1, ip
|
|
4d58: dd0c ble.n 4d74 <_lv_style_set_int+0x80>
|
|
weight = attr_i.bits.state;
|
|
4d5a: b209 sxth r1, r1
|
|
4d5c: 468c mov ip, r1
|
|
id_guess = i;
|
|
4d5e: b211 sxth r1, r2
|
|
4d60: 4688 mov r8, r1
|
|
4d62: e007 b.n 4d74 <_lv_style_set_int+0x80>
|
|
4d64: 9e02 ldr r6, [sp, #8]
|
|
4d66: e013 b.n 4d90 <_lv_style_set_int+0x9c>
|
|
i += sizeof(lv_style_property_t);
|
|
4d68: 1c8a adds r2, r1, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4d6a: 5ca3 ldrb r3, [r4, r2]
|
|
4d6c: 2bff cmp r3, #255 ; 0xff
|
|
4d6e: d00d beq.n 4d8c <_lv_style_set_int+0x98>
|
|
if(style->map[i] == id_to_find) {
|
|
4d70: 429d cmp r5, r3
|
|
4d72: d0e2 beq.n 4d3a <_lv_style_set_int+0x46>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4d74: 4003 ands r3, r0
|
|
4d76: 1c91 adds r1, r2, #2
|
|
4d78: 2b08 cmp r3, #8
|
|
4d7a: ddf5 ble.n 4d68 <_lv_style_set_int+0x74>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
4d7c: 1c91 adds r1, r2, #2
|
|
4d7e: 2b0b cmp r3, #11
|
|
4d80: ddf2 ble.n 4d68 <_lv_style_set_int+0x74>
|
|
else i += sizeof(const void *);
|
|
4d82: 1d11 adds r1, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
4d84: 2b0d cmp r3, #13
|
|
4d86: dcef bgt.n 4d68 <_lv_style_set_int+0x74>
|
|
4d88: 1c51 adds r1, r2, #1
|
|
4d8a: e7ed b.n 4d68 <_lv_style_set_int+0x74>
|
|
4d8c: 9e02 ldr r6, [sp, #8]
|
|
return id_guess;
|
|
4d8e: 4642 mov r2, r8
|
|
if(id >= 0) {
|
|
4d90: 2a00 cmp r2, #0
|
|
4d92: db17 blt.n 4dc4 <_lv_style_set_int+0xd0>
|
|
attr_found.full = *(style->map + id + 1);
|
|
4d94: 18a3 adds r3, r4, r2
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
4d96: 785b ldrb r3, [r3, #1]
|
|
4d98: 4655 mov r5, sl
|
|
4d9a: 405d eors r5, r3
|
|
4d9c: 066b lsls r3, r5, #25
|
|
4d9e: d111 bne.n 4dc4 <_lv_style_set_int+0xd0>
|
|
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t));
|
|
4da0: 3202 adds r2, #2
|
|
4da2: 18a4 adds r4, r4, r2
|
|
*d8 = *s8;
|
|
4da4: ab03 add r3, sp, #12
|
|
4da6: 781a ldrb r2, [r3, #0]
|
|
4da8: 7022 strb r2, [r4, #0]
|
|
4daa: 785b ldrb r3, [r3, #1]
|
|
4dac: 7063 strb r3, [r4, #1]
|
|
}
|
|
4dae: b007 add sp, #28
|
|
4db0: bc3c pop {r2, r3, r4, r5}
|
|
4db2: 4690 mov r8, r2
|
|
4db4: 4699 mov r9, r3
|
|
4db6: 46a2 mov sl, r4
|
|
4db8: 46ab mov fp, r5
|
|
4dba: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
4dbc: 2301 movs r3, #1
|
|
4dbe: 425b negs r3, r3
|
|
4dc0: 4698 mov r8, r3
|
|
4dc2: e7e4 b.n 4d8e <_lv_style_set_int+0x9a>
|
|
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
|
|
4dc4: 22ff movs r2, #255 ; 0xff
|
|
4dc6: 230e movs r3, #14
|
|
4dc8: a902 add r1, sp, #8
|
|
4dca: 468c mov ip, r1
|
|
4dcc: 4463 add r3, ip
|
|
4dce: 801a strh r2, [r3, #0]
|
|
uint16_t size = _lv_style_get_mem_size(style);
|
|
4dd0: 0030 movs r0, r6
|
|
4dd2: 4b1b ldr r3, [pc, #108] ; (4e40 <_lv_style_set_int+0x14c>)
|
|
4dd4: 4798 blx r3
|
|
if(size == 0) size += end_mark_size;
|
|
4dd6: 2800 cmp r0, #0
|
|
4dd8: d100 bne.n 4ddc <_lv_style_set_int+0xe8>
|
|
4dda: 3002 adds r0, #2
|
|
size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t);
|
|
4ddc: 3004 adds r0, #4
|
|
style->map = lv_mem_realloc(style->map, size);
|
|
4dde: b285 uxth r5, r0
|
|
4de0: 0029 movs r1, r5
|
|
4de2: 0020 movs r0, r4
|
|
4de4: 4b17 ldr r3, [pc, #92] ; (4e44 <_lv_style_set_int+0x150>)
|
|
4de6: 4798 blx r3
|
|
4de8: 6030 str r0, [r6, #0]
|
|
LV_ASSERT_MEM(style->map);
|
|
4dea: 4b17 ldr r3, [pc, #92] ; (4e48 <_lv_style_set_int+0x154>)
|
|
4dec: 4798 blx r3
|
|
4dee: 2800 cmp r0, #0
|
|
4df0: d020 beq.n 4e34 <_lv_style_set_int+0x140>
|
|
if(style == NULL) return;
|
|
4df2: 2e00 cmp r6, #0
|
|
4df4: d0db beq.n 4dae <_lv_style_set_int+0xba>
|
|
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
|
|
4df6: 1fab subs r3, r5, #6
|
|
4df8: 6832 ldr r2, [r6, #0]
|
|
4dfa: 4694 mov ip, r2
|
|
4dfc: 4463 add r3, ip
|
|
4dfe: aa02 add r2, sp, #8
|
|
4e00: 7991 ldrb r1, [r2, #6]
|
|
4e02: 3206 adds r2, #6
|
|
4e04: 7019 strb r1, [r3, #0]
|
|
4e06: 7852 ldrb r2, [r2, #1]
|
|
4e08: 705a strb r2, [r3, #1]
|
|
4e0a: 1f2b subs r3, r5, #4
|
|
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
|
|
4e0c: 6832 ldr r2, [r6, #0]
|
|
4e0e: 4694 mov ip, r2
|
|
4e10: 4463 add r3, ip
|
|
4e12: aa03 add r2, sp, #12
|
|
4e14: 7811 ldrb r1, [r2, #0]
|
|
4e16: 7019 strb r1, [r3, #0]
|
|
4e18: 7852 ldrb r2, [r2, #1]
|
|
4e1a: 705a strb r2, [r3, #1]
|
|
4e1c: 3d02 subs r5, #2
|
|
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
|
|
4e1e: 6833 ldr r3, [r6, #0]
|
|
4e20: 195d adds r5, r3, r5
|
|
4e22: 230e movs r3, #14
|
|
4e24: aa02 add r2, sp, #8
|
|
4e26: 4694 mov ip, r2
|
|
4e28: 4463 add r3, ip
|
|
4e2a: 781a ldrb r2, [r3, #0]
|
|
4e2c: 702a strb r2, [r5, #0]
|
|
4e2e: 785b ldrb r3, [r3, #1]
|
|
4e30: 706b strb r3, [r5, #1]
|
|
4e32: e7bc b.n 4dae <_lv_style_set_int+0xba>
|
|
LV_ASSERT_MEM(style->map);
|
|
4e34: 6832 ldr r2, [r6, #0]
|
|
4e36: 2300 movs r3, #0
|
|
4e38: 4804 ldr r0, [pc, #16] ; (4e4c <_lv_style_set_int+0x158>)
|
|
4e3a: 4905 ldr r1, [pc, #20] ; (4e50 <_lv_style_set_int+0x15c>)
|
|
4e3c: 4788 blx r1
|
|
4e3e: e7fe b.n 4e3e <_lv_style_set_int+0x14a>
|
|
4e40: 00004b5d .word 0x00004b5d
|
|
4e44: 00010e45 .word 0x00010e45
|
|
4e48: 0000147d .word 0x0000147d
|
|
4e4c: 00018724 .word 0x00018724
|
|
4e50: 00001485 .word 0x00001485
|
|
|
|
00004e54 <_lv_style_set_color>:
|
|
{
|
|
4e54: b5f0 push {r4, r5, r6, r7, lr}
|
|
4e56: 46de mov lr, fp
|
|
4e58: 4657 mov r7, sl
|
|
4e5a: 464e mov r6, r9
|
|
4e5c: 4645 mov r5, r8
|
|
4e5e: b5e0 push {r5, r6, r7, lr}
|
|
4e60: b087 sub sp, #28
|
|
4e62: 0006 movs r6, r0
|
|
4e64: ab03 add r3, sp, #12
|
|
4e66: 801a strh r2, [r3, #0]
|
|
4e68: ab02 add r3, sp, #8
|
|
4e6a: 80d9 strh r1, [r3, #6]
|
|
if(style->map == NULL) return -1;
|
|
4e6c: 6804 ldr r4, [r0, #0]
|
|
4e6e: 2c00 cmp r4, #0
|
|
4e70: d058 beq.n 4f24 <_lv_style_set_color+0xd0>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
4e72: b2cd uxtb r5, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
4e74: 0a0b lsrs r3, r1, #8
|
|
4e76: 469a mov sl, r3
|
|
4e78: 1c19 adds r1, r3, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4e7a: 7823 ldrb r3, [r4, #0]
|
|
4e7c: 2bff cmp r3, #255 ; 0xff
|
|
4e7e: d04d beq.n 4f1c <_lv_style_set_color+0xc8>
|
|
4e80: 2201 movs r2, #1
|
|
4e82: 4252 negs r2, r2
|
|
4e84: 4690 mov r8, r2
|
|
4e86: 4694 mov ip, r2
|
|
4e88: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4e8a: 207f movs r0, #127 ; 0x7f
|
|
4e8c: 4683 mov fp, r0
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4e8e: 0649 lsls r1, r1, #25
|
|
4e90: 0e49 lsrs r1, r1, #25
|
|
4e92: 4689 mov r9, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4e94: 3870 subs r0, #112 ; 0x70
|
|
4e96: 9602 str r6, [sp, #8]
|
|
4e98: e01a b.n 4ed0 <_lv_style_set_color+0x7c>
|
|
attr_i.full = style->map[i + 1];
|
|
4e9a: 18a1 adds r1, r4, r2
|
|
4e9c: 7849 ldrb r1, [r1, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4e9e: 4656 mov r6, sl
|
|
4ea0: 404e eors r6, r1
|
|
4ea2: 465f mov r7, fp
|
|
4ea4: 4237 tst r7, r6
|
|
4ea6: d00d beq.n 4ec4 <_lv_style_set_color+0x70>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4ea8: 0649 lsls r1, r1, #25
|
|
4eaa: 0e49 lsrs r1, r1, #25
|
|
4eac: 9101 str r1, [sp, #4]
|
|
4eae: 000e movs r6, r1
|
|
4eb0: 464f mov r7, r9
|
|
4eb2: 43be bics r6, r7
|
|
4eb4: d10e bne.n 4ed4 <_lv_style_set_color+0x80>
|
|
if(attr_i.bits.state > weight) {
|
|
4eb6: 4561 cmp r1, ip
|
|
4eb8: dd0c ble.n 4ed4 <_lv_style_set_color+0x80>
|
|
weight = attr_i.bits.state;
|
|
4eba: b209 sxth r1, r1
|
|
4ebc: 468c mov ip, r1
|
|
id_guess = i;
|
|
4ebe: b211 sxth r1, r2
|
|
4ec0: 4688 mov r8, r1
|
|
4ec2: e007 b.n 4ed4 <_lv_style_set_color+0x80>
|
|
4ec4: 9e02 ldr r6, [sp, #8]
|
|
4ec6: e013 b.n 4ef0 <_lv_style_set_color+0x9c>
|
|
i += sizeof(lv_style_property_t);
|
|
4ec8: 1c8a adds r2, r1, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4eca: 5ca3 ldrb r3, [r4, r2]
|
|
4ecc: 2bff cmp r3, #255 ; 0xff
|
|
4ece: d00d beq.n 4eec <_lv_style_set_color+0x98>
|
|
if(style->map[i] == id_to_find) {
|
|
4ed0: 429d cmp r5, r3
|
|
4ed2: d0e2 beq.n 4e9a <_lv_style_set_color+0x46>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4ed4: 4003 ands r3, r0
|
|
4ed6: 1c91 adds r1, r2, #2
|
|
4ed8: 2b08 cmp r3, #8
|
|
4eda: ddf5 ble.n 4ec8 <_lv_style_set_color+0x74>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
4edc: 1c91 adds r1, r2, #2
|
|
4ede: 2b0b cmp r3, #11
|
|
4ee0: ddf2 ble.n 4ec8 <_lv_style_set_color+0x74>
|
|
else i += sizeof(const void *);
|
|
4ee2: 1d11 adds r1, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
4ee4: 2b0d cmp r3, #13
|
|
4ee6: dcef bgt.n 4ec8 <_lv_style_set_color+0x74>
|
|
4ee8: 1c51 adds r1, r2, #1
|
|
4eea: e7ed b.n 4ec8 <_lv_style_set_color+0x74>
|
|
4eec: 9e02 ldr r6, [sp, #8]
|
|
return id_guess;
|
|
4eee: 4642 mov r2, r8
|
|
if(id >= 0) {
|
|
4ef0: 2a00 cmp r2, #0
|
|
4ef2: db17 blt.n 4f24 <_lv_style_set_color+0xd0>
|
|
attr_found.full = *(style->map + id + 1);
|
|
4ef4: 18a3 adds r3, r4, r2
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
4ef6: 785b ldrb r3, [r3, #1]
|
|
4ef8: 4655 mov r5, sl
|
|
4efa: 405d eors r5, r3
|
|
4efc: 066b lsls r3, r5, #25
|
|
4efe: d111 bne.n 4f24 <_lv_style_set_color+0xd0>
|
|
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t));
|
|
4f00: 3202 adds r2, #2
|
|
4f02: 18a4 adds r4, r4, r2
|
|
4f04: ab03 add r3, sp, #12
|
|
4f06: 781a ldrb r2, [r3, #0]
|
|
4f08: 7022 strb r2, [r4, #0]
|
|
4f0a: 785b ldrb r3, [r3, #1]
|
|
4f0c: 7063 strb r3, [r4, #1]
|
|
}
|
|
4f0e: b007 add sp, #28
|
|
4f10: bc3c pop {r2, r3, r4, r5}
|
|
4f12: 4690 mov r8, r2
|
|
4f14: 4699 mov r9, r3
|
|
4f16: 46a2 mov sl, r4
|
|
4f18: 46ab mov fp, r5
|
|
4f1a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
4f1c: 2301 movs r3, #1
|
|
4f1e: 425b negs r3, r3
|
|
4f20: 4698 mov r8, r3
|
|
4f22: e7e4 b.n 4eee <_lv_style_set_color+0x9a>
|
|
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
|
|
4f24: 22ff movs r2, #255 ; 0xff
|
|
4f26: 230e movs r3, #14
|
|
4f28: a902 add r1, sp, #8
|
|
4f2a: 468c mov ip, r1
|
|
4f2c: 4463 add r3, ip
|
|
4f2e: 801a strh r2, [r3, #0]
|
|
uint16_t size = _lv_style_get_mem_size(style);
|
|
4f30: 0030 movs r0, r6
|
|
4f32: 4b1b ldr r3, [pc, #108] ; (4fa0 <_lv_style_set_color+0x14c>)
|
|
4f34: 4798 blx r3
|
|
if(size == 0) size += end_mark_size;
|
|
4f36: 2800 cmp r0, #0
|
|
4f38: d100 bne.n 4f3c <_lv_style_set_color+0xe8>
|
|
4f3a: 3002 adds r0, #2
|
|
size += sizeof(lv_style_property_t) + sizeof(lv_color_t);
|
|
4f3c: 3004 adds r0, #4
|
|
style->map = lv_mem_realloc(style->map, size);
|
|
4f3e: b285 uxth r5, r0
|
|
4f40: 0029 movs r1, r5
|
|
4f42: 0020 movs r0, r4
|
|
4f44: 4b17 ldr r3, [pc, #92] ; (4fa4 <_lv_style_set_color+0x150>)
|
|
4f46: 4798 blx r3
|
|
4f48: 6030 str r0, [r6, #0]
|
|
LV_ASSERT_MEM(style->map);
|
|
4f4a: 4b17 ldr r3, [pc, #92] ; (4fa8 <_lv_style_set_color+0x154>)
|
|
4f4c: 4798 blx r3
|
|
4f4e: 2800 cmp r0, #0
|
|
4f50: d020 beq.n 4f94 <_lv_style_set_color+0x140>
|
|
if(style == NULL) return;
|
|
4f52: 2e00 cmp r6, #0
|
|
4f54: d0db beq.n 4f0e <_lv_style_set_color+0xba>
|
|
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
|
|
4f56: 1fab subs r3, r5, #6
|
|
4f58: 6832 ldr r2, [r6, #0]
|
|
4f5a: 4694 mov ip, r2
|
|
4f5c: 4463 add r3, ip
|
|
4f5e: aa02 add r2, sp, #8
|
|
4f60: 7991 ldrb r1, [r2, #6]
|
|
4f62: 3206 adds r2, #6
|
|
4f64: 7019 strb r1, [r3, #0]
|
|
4f66: 7852 ldrb r2, [r2, #1]
|
|
4f68: 705a strb r2, [r3, #1]
|
|
4f6a: 1f2b subs r3, r5, #4
|
|
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
|
|
4f6c: 6832 ldr r2, [r6, #0]
|
|
4f6e: 4694 mov ip, r2
|
|
4f70: 4463 add r3, ip
|
|
4f72: aa03 add r2, sp, #12
|
|
4f74: 7811 ldrb r1, [r2, #0]
|
|
4f76: 7019 strb r1, [r3, #0]
|
|
4f78: 7852 ldrb r2, [r2, #1]
|
|
4f7a: 705a strb r2, [r3, #1]
|
|
4f7c: 3d02 subs r5, #2
|
|
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
|
|
4f7e: 6833 ldr r3, [r6, #0]
|
|
4f80: 195d adds r5, r3, r5
|
|
4f82: 230e movs r3, #14
|
|
4f84: aa02 add r2, sp, #8
|
|
4f86: 4694 mov ip, r2
|
|
4f88: 4463 add r3, ip
|
|
4f8a: 781a ldrb r2, [r3, #0]
|
|
4f8c: 702a strb r2, [r5, #0]
|
|
4f8e: 785b ldrb r3, [r3, #1]
|
|
4f90: 706b strb r3, [r5, #1]
|
|
4f92: e7bc b.n 4f0e <_lv_style_set_color+0xba>
|
|
LV_ASSERT_MEM(style->map);
|
|
4f94: 6832 ldr r2, [r6, #0]
|
|
4f96: 2300 movs r3, #0
|
|
4f98: 4804 ldr r0, [pc, #16] ; (4fac <_lv_style_set_color+0x158>)
|
|
4f9a: 4905 ldr r1, [pc, #20] ; (4fb0 <_lv_style_set_color+0x15c>)
|
|
4f9c: 4788 blx r1
|
|
4f9e: e7fe b.n 4f9e <_lv_style_set_color+0x14a>
|
|
4fa0: 00004b5d .word 0x00004b5d
|
|
4fa4: 00010e45 .word 0x00010e45
|
|
4fa8: 0000147d .word 0x0000147d
|
|
4fac: 00018724 .word 0x00018724
|
|
4fb0: 00001485 .word 0x00001485
|
|
|
|
00004fb4 <_lv_style_set_opa>:
|
|
{
|
|
4fb4: b5f0 push {r4, r5, r6, r7, lr}
|
|
4fb6: 46de mov lr, fp
|
|
4fb8: 4657 mov r7, sl
|
|
4fba: 464e mov r6, r9
|
|
4fbc: 4645 mov r5, r8
|
|
4fbe: b5e0 push {r5, r6, r7, lr}
|
|
4fc0: b087 sub sp, #28
|
|
4fc2: 0006 movs r6, r0
|
|
4fc4: 9201 str r2, [sp, #4]
|
|
4fc6: ab02 add r3, sp, #8
|
|
4fc8: 80d9 strh r1, [r3, #6]
|
|
if(style->map == NULL) return -1;
|
|
4fca: 6804 ldr r4, [r0, #0]
|
|
4fcc: 2c00 cmp r4, #0
|
|
4fce: d055 beq.n 507c <_lv_style_set_opa+0xc8>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
4fd0: b2c8 uxtb r0, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
4fd2: 0a0b lsrs r3, r1, #8
|
|
4fd4: 469a mov sl, r3
|
|
4fd6: 1c19 adds r1, r3, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
4fd8: 7823 ldrb r3, [r4, #0]
|
|
4fda: 2bff cmp r3, #255 ; 0xff
|
|
4fdc: d04a beq.n 5074 <_lv_style_set_opa+0xc0>
|
|
4fde: 2201 movs r2, #1
|
|
4fe0: 4252 negs r2, r2
|
|
4fe2: 4690 mov r8, r2
|
|
4fe4: 4694 mov ip, r2
|
|
4fe6: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4fe8: 257f movs r5, #127 ; 0x7f
|
|
4fea: 46ab mov fp, r5
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
4fec: 0649 lsls r1, r1, #25
|
|
4fee: 0e49 lsrs r1, r1, #25
|
|
4ff0: 4689 mov r9, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
4ff2: 3d70 subs r5, #112 ; 0x70
|
|
4ff4: 9602 str r6, [sp, #8]
|
|
4ff6: e01a b.n 502e <_lv_style_set_opa+0x7a>
|
|
attr_i.full = style->map[i + 1];
|
|
4ff8: 18a1 adds r1, r4, r2
|
|
4ffa: 7849 ldrb r1, [r1, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
4ffc: 4656 mov r6, sl
|
|
4ffe: 404e eors r6, r1
|
|
5000: 465f mov r7, fp
|
|
5002: 4237 tst r7, r6
|
|
5004: d00d beq.n 5022 <_lv_style_set_opa+0x6e>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
5006: 0649 lsls r1, r1, #25
|
|
5008: 0e49 lsrs r1, r1, #25
|
|
500a: 9100 str r1, [sp, #0]
|
|
500c: 000e movs r6, r1
|
|
500e: 464f mov r7, r9
|
|
5010: 43be bics r6, r7
|
|
5012: d10e bne.n 5032 <_lv_style_set_opa+0x7e>
|
|
if(attr_i.bits.state > weight) {
|
|
5014: 4561 cmp r1, ip
|
|
5016: dd0c ble.n 5032 <_lv_style_set_opa+0x7e>
|
|
weight = attr_i.bits.state;
|
|
5018: b209 sxth r1, r1
|
|
501a: 468c mov ip, r1
|
|
id_guess = i;
|
|
501c: b211 sxth r1, r2
|
|
501e: 4688 mov r8, r1
|
|
5020: e007 b.n 5032 <_lv_style_set_opa+0x7e>
|
|
5022: 9e02 ldr r6, [sp, #8]
|
|
5024: e013 b.n 504e <_lv_style_set_opa+0x9a>
|
|
i += sizeof(lv_style_property_t);
|
|
5026: 1c8a adds r2, r1, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
5028: 5ca3 ldrb r3, [r4, r2]
|
|
502a: 2bff cmp r3, #255 ; 0xff
|
|
502c: d00d beq.n 504a <_lv_style_set_opa+0x96>
|
|
if(style->map[i] == id_to_find) {
|
|
502e: 4298 cmp r0, r3
|
|
5030: d0e2 beq.n 4ff8 <_lv_style_set_opa+0x44>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
5032: 402b ands r3, r5
|
|
5034: 1c91 adds r1, r2, #2
|
|
5036: 2b08 cmp r3, #8
|
|
5038: ddf5 ble.n 5026 <_lv_style_set_opa+0x72>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
503a: 1c91 adds r1, r2, #2
|
|
503c: 2b0b cmp r3, #11
|
|
503e: ddf2 ble.n 5026 <_lv_style_set_opa+0x72>
|
|
else i += sizeof(const void *);
|
|
5040: 1d11 adds r1, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
5042: 2b0d cmp r3, #13
|
|
5044: dcef bgt.n 5026 <_lv_style_set_opa+0x72>
|
|
5046: 1c51 adds r1, r2, #1
|
|
5048: e7ed b.n 5026 <_lv_style_set_opa+0x72>
|
|
504a: 9e02 ldr r6, [sp, #8]
|
|
return id_guess;
|
|
504c: 4642 mov r2, r8
|
|
if(id >= 0) {
|
|
504e: 2a00 cmp r2, #0
|
|
5050: db14 blt.n 507c <_lv_style_set_opa+0xc8>
|
|
attr_found.full = *(style->map + id + 1);
|
|
5052: 18a3 adds r3, r4, r2
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
5054: 785b ldrb r3, [r3, #1]
|
|
5056: 4650 mov r0, sl
|
|
5058: 4058 eors r0, r3
|
|
505a: 0643 lsls r3, r0, #25
|
|
505c: d10e bne.n 507c <_lv_style_set_opa+0xc8>
|
|
505e: 18a2 adds r2, r4, r2
|
|
5060: 466b mov r3, sp
|
|
5062: 791b ldrb r3, [r3, #4]
|
|
5064: 7093 strb r3, [r2, #2]
|
|
}
|
|
5066: b007 add sp, #28
|
|
5068: bc3c pop {r2, r3, r4, r5}
|
|
506a: 4690 mov r8, r2
|
|
506c: 4699 mov r9, r3
|
|
506e: 46a2 mov sl, r4
|
|
5070: 46ab mov fp, r5
|
|
5072: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
5074: 2301 movs r3, #1
|
|
5076: 425b negs r3, r3
|
|
5078: 4698 mov r8, r3
|
|
507a: e7e7 b.n 504c <_lv_style_set_opa+0x98>
|
|
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
|
|
507c: 22ff movs r2, #255 ; 0xff
|
|
507e: 230e movs r3, #14
|
|
5080: a902 add r1, sp, #8
|
|
5082: 468c mov ip, r1
|
|
5084: 4463 add r3, ip
|
|
5086: 801a strh r2, [r3, #0]
|
|
uint16_t size = _lv_style_get_mem_size(style);
|
|
5088: 0030 movs r0, r6
|
|
508a: 4b1a ldr r3, [pc, #104] ; (50f4 <_lv_style_set_opa+0x140>)
|
|
508c: 4798 blx r3
|
|
if(size == 0) size += end_mark_size;
|
|
508e: 2800 cmp r0, #0
|
|
5090: d100 bne.n 5094 <_lv_style_set_opa+0xe0>
|
|
5092: 3002 adds r0, #2
|
|
size += sizeof(lv_style_property_t) + sizeof(lv_opa_t);
|
|
5094: 3003 adds r0, #3
|
|
style->map = lv_mem_realloc(style->map, size);
|
|
5096: b285 uxth r5, r0
|
|
5098: 0029 movs r1, r5
|
|
509a: 0020 movs r0, r4
|
|
509c: 4b16 ldr r3, [pc, #88] ; (50f8 <_lv_style_set_opa+0x144>)
|
|
509e: 4798 blx r3
|
|
50a0: 6030 str r0, [r6, #0]
|
|
LV_ASSERT_MEM(style->map);
|
|
50a2: 4b16 ldr r3, [pc, #88] ; (50fc <_lv_style_set_opa+0x148>)
|
|
50a4: 4798 blx r3
|
|
50a6: 2800 cmp r0, #0
|
|
50a8: d01d beq.n 50e6 <_lv_style_set_opa+0x132>
|
|
if(style == NULL) return;
|
|
50aa: 2e00 cmp r6, #0
|
|
50ac: d0db beq.n 5066 <_lv_style_set_opa+0xb2>
|
|
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
|
|
50ae: 1f6b subs r3, r5, #5
|
|
50b0: 6832 ldr r2, [r6, #0]
|
|
50b2: 4694 mov ip, r2
|
|
50b4: 4463 add r3, ip
|
|
50b6: aa02 add r2, sp, #8
|
|
50b8: 7991 ldrb r1, [r2, #6]
|
|
50ba: 3206 adds r2, #6
|
|
50bc: 7019 strb r1, [r3, #0]
|
|
50be: 7852 ldrb r2, [r2, #1]
|
|
50c0: 705a strb r2, [r3, #1]
|
|
50c2: 6833 ldr r3, [r6, #0]
|
|
50c4: 195b adds r3, r3, r5
|
|
50c6: 3b03 subs r3, #3
|
|
50c8: 466a mov r2, sp
|
|
50ca: 7912 ldrb r2, [r2, #4]
|
|
50cc: 701a strb r2, [r3, #0]
|
|
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
|
|
50ce: 3d02 subs r5, #2
|
|
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
|
|
50d0: 6833 ldr r3, [r6, #0]
|
|
50d2: 195d adds r5, r3, r5
|
|
50d4: 230e movs r3, #14
|
|
50d6: aa02 add r2, sp, #8
|
|
50d8: 4694 mov ip, r2
|
|
50da: 4463 add r3, ip
|
|
50dc: 781a ldrb r2, [r3, #0]
|
|
50de: 702a strb r2, [r5, #0]
|
|
50e0: 785b ldrb r3, [r3, #1]
|
|
50e2: 706b strb r3, [r5, #1]
|
|
50e4: e7bf b.n 5066 <_lv_style_set_opa+0xb2>
|
|
LV_ASSERT_MEM(style->map);
|
|
50e6: 6832 ldr r2, [r6, #0]
|
|
50e8: 2300 movs r3, #0
|
|
50ea: 4805 ldr r0, [pc, #20] ; (5100 <_lv_style_set_opa+0x14c>)
|
|
50ec: 4905 ldr r1, [pc, #20] ; (5104 <_lv_style_set_opa+0x150>)
|
|
50ee: 4788 blx r1
|
|
50f0: e7fe b.n 50f0 <_lv_style_set_opa+0x13c>
|
|
50f2: 46c0 nop ; (mov r8, r8)
|
|
50f4: 00004b5d .word 0x00004b5d
|
|
50f8: 00010e45 .word 0x00010e45
|
|
50fc: 0000147d .word 0x0000147d
|
|
5100: 00018724 .word 0x00018724
|
|
5104: 00001485 .word 0x00001485
|
|
|
|
00005108 <_lv_style_set_ptr>:
|
|
{
|
|
5108: b5f0 push {r4, r5, r6, r7, lr}
|
|
510a: 46de mov lr, fp
|
|
510c: 4657 mov r7, sl
|
|
510e: 464e mov r6, r9
|
|
5110: 4645 mov r5, r8
|
|
5112: b5e0 push {r5, r6, r7, lr}
|
|
5114: b087 sub sp, #28
|
|
5116: 0006 movs r6, r0
|
|
5118: 9202 str r2, [sp, #8]
|
|
511a: ab02 add r3, sp, #8
|
|
511c: 80d9 strh r1, [r3, #6]
|
|
if(style->map == NULL) return -1;
|
|
511e: 6804 ldr r4, [r0, #0]
|
|
5120: 2c00 cmp r4, #0
|
|
5122: d05f beq.n 51e4 <_lv_style_set_ptr+0xdc>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
5124: b2cd uxtb r5, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
5126: 0a0b lsrs r3, r1, #8
|
|
5128: 469a mov sl, r3
|
|
512a: 1c18 adds r0, r3, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
512c: 7823 ldrb r3, [r4, #0]
|
|
512e: 2bff cmp r3, #255 ; 0xff
|
|
5130: d054 beq.n 51dc <_lv_style_set_ptr+0xd4>
|
|
5132: 2201 movs r2, #1
|
|
5134: 4252 negs r2, r2
|
|
5136: 4690 mov r8, r2
|
|
5138: 4694 mov ip, r2
|
|
513a: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
513c: 217f movs r1, #127 ; 0x7f
|
|
513e: 468b mov fp, r1
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
5140: 0640 lsls r0, r0, #25
|
|
5142: 0e41 lsrs r1, r0, #25
|
|
5144: 4689 mov r9, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
5146: 210f movs r1, #15
|
|
5148: 9601 str r6, [sp, #4]
|
|
514a: e01a b.n 5182 <_lv_style_set_ptr+0x7a>
|
|
attr_i.full = style->map[i + 1];
|
|
514c: 18a0 adds r0, r4, r2
|
|
514e: 7840 ldrb r0, [r0, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5150: 4656 mov r6, sl
|
|
5152: 4046 eors r6, r0
|
|
5154: 465f mov r7, fp
|
|
5156: 4237 tst r7, r6
|
|
5158: d00d beq.n 5176 <_lv_style_set_ptr+0x6e>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
515a: 0640 lsls r0, r0, #25
|
|
515c: 0e40 lsrs r0, r0, #25
|
|
515e: 9000 str r0, [sp, #0]
|
|
5160: 0006 movs r6, r0
|
|
5162: 464f mov r7, r9
|
|
5164: 43be bics r6, r7
|
|
5166: d10e bne.n 5186 <_lv_style_set_ptr+0x7e>
|
|
if(attr_i.bits.state > weight) {
|
|
5168: 4560 cmp r0, ip
|
|
516a: dd0c ble.n 5186 <_lv_style_set_ptr+0x7e>
|
|
weight = attr_i.bits.state;
|
|
516c: b200 sxth r0, r0
|
|
516e: 4684 mov ip, r0
|
|
id_guess = i;
|
|
5170: b210 sxth r0, r2
|
|
5172: 4680 mov r8, r0
|
|
5174: e007 b.n 5186 <_lv_style_set_ptr+0x7e>
|
|
5176: 9e01 ldr r6, [sp, #4]
|
|
5178: e013 b.n 51a2 <_lv_style_set_ptr+0x9a>
|
|
i += sizeof(lv_style_property_t);
|
|
517a: 1c82 adds r2, r0, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
517c: 5ca3 ldrb r3, [r4, r2]
|
|
517e: 2bff cmp r3, #255 ; 0xff
|
|
5180: d00d beq.n 519e <_lv_style_set_ptr+0x96>
|
|
if(style->map[i] == id_to_find) {
|
|
5182: 429d cmp r5, r3
|
|
5184: d0e2 beq.n 514c <_lv_style_set_ptr+0x44>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
5186: 400b ands r3, r1
|
|
5188: 1c90 adds r0, r2, #2
|
|
518a: 2b08 cmp r3, #8
|
|
518c: ddf5 ble.n 517a <_lv_style_set_ptr+0x72>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
518e: 1c90 adds r0, r2, #2
|
|
5190: 2b0b cmp r3, #11
|
|
5192: ddf2 ble.n 517a <_lv_style_set_ptr+0x72>
|
|
else i += sizeof(const void *);
|
|
5194: 1d10 adds r0, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
5196: 2b0d cmp r3, #13
|
|
5198: dcef bgt.n 517a <_lv_style_set_ptr+0x72>
|
|
519a: 1c50 adds r0, r2, #1
|
|
519c: e7ed b.n 517a <_lv_style_set_ptr+0x72>
|
|
519e: 9e01 ldr r6, [sp, #4]
|
|
return id_guess;
|
|
51a0: 4642 mov r2, r8
|
|
if(id >= 0) {
|
|
51a2: 2a00 cmp r2, #0
|
|
51a4: db1e blt.n 51e4 <_lv_style_set_ptr+0xdc>
|
|
attr_found.full = *(style->map + id + 1);
|
|
51a6: 18a3 adds r3, r4, r2
|
|
if(attr_found.bits.state == attr_goal.bits.state) {
|
|
51a8: 785b ldrb r3, [r3, #1]
|
|
51aa: 4655 mov r5, sl
|
|
51ac: 405d eors r5, r3
|
|
51ae: 066b lsls r3, r5, #25
|
|
51b0: d118 bne.n 51e4 <_lv_style_set_ptr+0xdc>
|
|
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *));
|
|
51b2: 3202 adds r2, #2
|
|
51b4: 18a4 adds r4, r4, r2
|
|
51b6: ab02 add r3, sp, #8
|
|
51b8: 781b ldrb r3, [r3, #0]
|
|
51ba: 7023 strb r3, [r4, #0]
|
|
51bc: ab02 add r3, sp, #8
|
|
51be: 785b ldrb r3, [r3, #1]
|
|
51c0: 7063 strb r3, [r4, #1]
|
|
51c2: ab02 add r3, sp, #8
|
|
51c4: 789b ldrb r3, [r3, #2]
|
|
51c6: 70a3 strb r3, [r4, #2]
|
|
51c8: ab02 add r3, sp, #8
|
|
51ca: 78db ldrb r3, [r3, #3]
|
|
51cc: 70e3 strb r3, [r4, #3]
|
|
}
|
|
51ce: b007 add sp, #28
|
|
51d0: bc3c pop {r2, r3, r4, r5}
|
|
51d2: 4690 mov r8, r2
|
|
51d4: 4699 mov r9, r3
|
|
51d6: 46a2 mov sl, r4
|
|
51d8: 46ab mov fp, r5
|
|
51da: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
51dc: 2301 movs r3, #1
|
|
51de: 425b negs r3, r3
|
|
51e0: 4698 mov r8, r3
|
|
51e2: e7dd b.n 51a0 <_lv_style_set_ptr+0x98>
|
|
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
|
|
51e4: 22ff movs r2, #255 ; 0xff
|
|
51e6: 230e movs r3, #14
|
|
51e8: a902 add r1, sp, #8
|
|
51ea: 468c mov ip, r1
|
|
51ec: 4463 add r3, ip
|
|
51ee: 801a strh r2, [r3, #0]
|
|
uint16_t size = _lv_style_get_mem_size(style);
|
|
51f0: 0030 movs r0, r6
|
|
51f2: 4b1f ldr r3, [pc, #124] ; (5270 <_lv_style_set_ptr+0x168>)
|
|
51f4: 4798 blx r3
|
|
if(size == 0) size += end_mark_size;
|
|
51f6: 2800 cmp r0, #0
|
|
51f8: d100 bne.n 51fc <_lv_style_set_ptr+0xf4>
|
|
51fa: 3002 adds r0, #2
|
|
size += sizeof(lv_style_property_t) + sizeof(const void *);
|
|
51fc: 3006 adds r0, #6
|
|
style->map = lv_mem_realloc(style->map, size);
|
|
51fe: b285 uxth r5, r0
|
|
5200: 0029 movs r1, r5
|
|
5202: 0020 movs r0, r4
|
|
5204: 4b1b ldr r3, [pc, #108] ; (5274 <_lv_style_set_ptr+0x16c>)
|
|
5206: 4798 blx r3
|
|
5208: 6030 str r0, [r6, #0]
|
|
LV_ASSERT_MEM(style->map);
|
|
520a: 4b1b ldr r3, [pc, #108] ; (5278 <_lv_style_set_ptr+0x170>)
|
|
520c: 4798 blx r3
|
|
520e: 2800 cmp r0, #0
|
|
5210: d028 beq.n 5264 <_lv_style_set_ptr+0x15c>
|
|
if(style == NULL) return;
|
|
5212: 2e00 cmp r6, #0
|
|
5214: d0db beq.n 51ce <_lv_style_set_ptr+0xc6>
|
|
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
|
|
5216: 002b movs r3, r5
|
|
5218: 3b08 subs r3, #8
|
|
521a: 6832 ldr r2, [r6, #0]
|
|
521c: 4694 mov ip, r2
|
|
521e: 4463 add r3, ip
|
|
5220: aa02 add r2, sp, #8
|
|
5222: 7991 ldrb r1, [r2, #6]
|
|
5224: 3206 adds r2, #6
|
|
5226: 7019 strb r1, [r3, #0]
|
|
5228: 7852 ldrb r2, [r2, #1]
|
|
522a: 705a strb r2, [r3, #1]
|
|
522c: 1fab subs r3, r5, #6
|
|
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
|
|
522e: 6832 ldr r2, [r6, #0]
|
|
5230: 4694 mov ip, r2
|
|
5232: 4463 add r3, ip
|
|
5234: aa02 add r2, sp, #8
|
|
5236: 7812 ldrb r2, [r2, #0]
|
|
5238: 701a strb r2, [r3, #0]
|
|
523a: aa02 add r2, sp, #8
|
|
523c: 7852 ldrb r2, [r2, #1]
|
|
523e: 705a strb r2, [r3, #1]
|
|
5240: aa02 add r2, sp, #8
|
|
5242: 7892 ldrb r2, [r2, #2]
|
|
5244: 709a strb r2, [r3, #2]
|
|
5246: aa02 add r2, sp, #8
|
|
5248: 78d2 ldrb r2, [r2, #3]
|
|
524a: 70da strb r2, [r3, #3]
|
|
524c: 3d02 subs r5, #2
|
|
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
|
|
524e: 6833 ldr r3, [r6, #0]
|
|
5250: 195d adds r5, r3, r5
|
|
5252: 230e movs r3, #14
|
|
5254: aa02 add r2, sp, #8
|
|
5256: 4694 mov ip, r2
|
|
5258: 4463 add r3, ip
|
|
525a: 781a ldrb r2, [r3, #0]
|
|
525c: 702a strb r2, [r5, #0]
|
|
525e: 785b ldrb r3, [r3, #1]
|
|
5260: 706b strb r3, [r5, #1]
|
|
5262: e7b4 b.n 51ce <_lv_style_set_ptr+0xc6>
|
|
LV_ASSERT_MEM(style->map);
|
|
5264: 6832 ldr r2, [r6, #0]
|
|
5266: 2300 movs r3, #0
|
|
5268: 4804 ldr r0, [pc, #16] ; (527c <_lv_style_set_ptr+0x174>)
|
|
526a: 4905 ldr r1, [pc, #20] ; (5280 <_lv_style_set_ptr+0x178>)
|
|
526c: 4788 blx r1
|
|
526e: e7fe b.n 526e <_lv_style_set_ptr+0x166>
|
|
5270: 00004b5d .word 0x00004b5d
|
|
5274: 00010e45 .word 0x00010e45
|
|
5278: 0000147d .word 0x0000147d
|
|
527c: 00018724 .word 0x00018724
|
|
5280: 00001485 .word 0x00001485
|
|
|
|
00005284 <_lv_style_get_int>:
|
|
{
|
|
5284: b5f0 push {r4, r5, r6, r7, lr}
|
|
5286: 46de mov lr, fp
|
|
5288: 4657 mov r7, sl
|
|
528a: 464e mov r6, r9
|
|
528c: 4645 mov r5, r8
|
|
528e: b5e0 push {r5, r6, r7, lr}
|
|
5290: b085 sub sp, #20
|
|
5292: 4681 mov r9, r0
|
|
5294: 9203 str r2, [sp, #12]
|
|
if(style == NULL) return -1;
|
|
5296: 2800 cmp r0, #0
|
|
5298: d05b beq.n 5352 <_lv_style_get_int+0xce>
|
|
if(style->map == NULL) return -1;
|
|
529a: 6805 ldr r5, [r0, #0]
|
|
529c: 2d00 cmp r5, #0
|
|
529e: d05b beq.n 5358 <_lv_style_get_int+0xd4>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
52a0: b2ce uxtb r6, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
52a2: 0a09 lsrs r1, r1, #8
|
|
52a4: 1c08 adds r0, r1, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
52a6: 782b ldrb r3, [r5, #0]
|
|
52a8: 2bff cmp r3, #255 ; 0xff
|
|
52aa: d04e beq.n 534a <_lv_style_get_int+0xc6>
|
|
52ac: 2201 movs r2, #1
|
|
52ae: 4252 negs r2, r2
|
|
52b0: 9202 str r2, [sp, #8]
|
|
52b2: 4693 mov fp, r2
|
|
52b4: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
52b6: 247f movs r4, #127 ; 0x7f
|
|
52b8: 46a2 mov sl, r4
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
52ba: 0640 lsls r0, r0, #25
|
|
52bc: 0e40 lsrs r0, r0, #25
|
|
52be: 4684 mov ip, r0
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
52c0: 270f movs r7, #15
|
|
52c2: 4688 mov r8, r1
|
|
52c4: e01a b.n 52fc <_lv_style_get_int+0x78>
|
|
attr_i.full = style->map[i + 1];
|
|
52c6: 18a8 adds r0, r5, r2
|
|
52c8: 7840 ldrb r0, [r0, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
52ca: 4644 mov r4, r8
|
|
52cc: 4044 eors r4, r0
|
|
52ce: 4651 mov r1, sl
|
|
52d0: 4221 tst r1, r4
|
|
52d2: d00d beq.n 52f0 <_lv_style_get_int+0x6c>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
52d4: 0640 lsls r0, r0, #25
|
|
52d6: 0e40 lsrs r0, r0, #25
|
|
52d8: 9001 str r0, [sp, #4]
|
|
52da: 0004 movs r4, r0
|
|
52dc: 4661 mov r1, ip
|
|
52de: 438c bics r4, r1
|
|
52e0: d10e bne.n 5300 <_lv_style_get_int+0x7c>
|
|
if(attr_i.bits.state > weight) {
|
|
52e2: 4558 cmp r0, fp
|
|
52e4: dd0c ble.n 5300 <_lv_style_get_int+0x7c>
|
|
weight = attr_i.bits.state;
|
|
52e6: b201 sxth r1, r0
|
|
52e8: 468b mov fp, r1
|
|
id_guess = i;
|
|
52ea: b211 sxth r1, r2
|
|
52ec: 9102 str r1, [sp, #8]
|
|
52ee: e007 b.n 5300 <_lv_style_get_int+0x7c>
|
|
52f0: 4641 mov r1, r8
|
|
52f2: e013 b.n 531c <_lv_style_get_int+0x98>
|
|
i += sizeof(lv_style_property_t);
|
|
52f4: 1c82 adds r2, r0, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
52f6: 5cab ldrb r3, [r5, r2]
|
|
52f8: 2bff cmp r3, #255 ; 0xff
|
|
52fa: d00d beq.n 5318 <_lv_style_get_int+0x94>
|
|
if(style->map[i] == id_to_find) {
|
|
52fc: 429e cmp r6, r3
|
|
52fe: d0e2 beq.n 52c6 <_lv_style_get_int+0x42>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
5300: 403b ands r3, r7
|
|
5302: 1c90 adds r0, r2, #2
|
|
5304: 2b08 cmp r3, #8
|
|
5306: ddf5 ble.n 52f4 <_lv_style_get_int+0x70>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
5308: 1c90 adds r0, r2, #2
|
|
530a: 2b0b cmp r3, #11
|
|
530c: ddf2 ble.n 52f4 <_lv_style_get_int+0x70>
|
|
else i += sizeof(const void *);
|
|
530e: 1d10 adds r0, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
5310: 2b0d cmp r3, #13
|
|
5312: dcef bgt.n 52f4 <_lv_style_get_int+0x70>
|
|
5314: 1c50 adds r0, r2, #1
|
|
5316: e7ed b.n 52f4 <_lv_style_get_int+0x70>
|
|
5318: 4641 mov r1, r8
|
|
return id_guess;
|
|
531a: 9a02 ldr r2, [sp, #8]
|
|
if(id < 0) {
|
|
531c: 2a00 cmp r2, #0
|
|
531e: db1e blt.n 535e <_lv_style_get_int+0xda>
|
|
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t));
|
|
5320: 1c93 adds r3, r2, #2
|
|
5322: 18ed adds r5, r5, r3
|
|
5324: 782b ldrb r3, [r5, #0]
|
|
5326: 9803 ldr r0, [sp, #12]
|
|
5328: 7003 strb r3, [r0, #0]
|
|
532a: 786b ldrb r3, [r5, #1]
|
|
532c: 7043 strb r3, [r0, #1]
|
|
attr_act.full = style->map[id + 1];
|
|
532e: 464b mov r3, r9
|
|
5330: 681b ldr r3, [r3, #0]
|
|
5332: 189a adds r2, r3, r2
|
|
5334: 7850 ldrb r0, [r2, #1]
|
|
return attr_act.bits.state & attr_goal.bits.state;
|
|
5336: 0649 lsls r1, r1, #25
|
|
5338: 0e49 lsrs r1, r1, #25
|
|
533a: 4008 ands r0, r1
|
|
}
|
|
533c: b005 add sp, #20
|
|
533e: bc3c pop {r2, r3, r4, r5}
|
|
5340: 4690 mov r8, r2
|
|
5342: 4699 mov r9, r3
|
|
5344: 46a2 mov sl, r4
|
|
5346: 46ab mov fp, r5
|
|
5348: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
534a: 2301 movs r3, #1
|
|
534c: 425b negs r3, r3
|
|
534e: 9302 str r3, [sp, #8]
|
|
5350: e7e3 b.n 531a <_lv_style_get_int+0x96>
|
|
if(style == NULL) return -1;
|
|
5352: 2001 movs r0, #1
|
|
5354: 4240 negs r0, r0
|
|
5356: e7f1 b.n 533c <_lv_style_get_int+0xb8>
|
|
if(style->map == NULL) return -1;
|
|
5358: 2001 movs r0, #1
|
|
535a: 4240 negs r0, r0
|
|
535c: e7ee b.n 533c <_lv_style_get_int+0xb8>
|
|
return -1;
|
|
535e: 2001 movs r0, #1
|
|
5360: 4240 negs r0, r0
|
|
5362: e7eb b.n 533c <_lv_style_get_int+0xb8>
|
|
|
|
00005364 <_lv_style_get_opa>:
|
|
{
|
|
5364: b5f0 push {r4, r5, r6, r7, lr}
|
|
5366: 46de mov lr, fp
|
|
5368: 4657 mov r7, sl
|
|
536a: 464e mov r6, r9
|
|
536c: 4645 mov r5, r8
|
|
536e: b5e0 push {r5, r6, r7, lr}
|
|
5370: b085 sub sp, #20
|
|
5372: 4681 mov r9, r0
|
|
5374: 9203 str r2, [sp, #12]
|
|
if(style == NULL) return -1;
|
|
5376: 2800 cmp r0, #0
|
|
5378: d058 beq.n 542c <_lv_style_get_opa+0xc8>
|
|
if(style->map == NULL) return -1;
|
|
537a: 6805 ldr r5, [r0, #0]
|
|
537c: 2d00 cmp r5, #0
|
|
537e: d058 beq.n 5432 <_lv_style_get_opa+0xce>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
5380: b2ce uxtb r6, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
5382: 0a09 lsrs r1, r1, #8
|
|
5384: 1c08 adds r0, r1, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
5386: 782b ldrb r3, [r5, #0]
|
|
5388: 2bff cmp r3, #255 ; 0xff
|
|
538a: d04b beq.n 5424 <_lv_style_get_opa+0xc0>
|
|
538c: 2201 movs r2, #1
|
|
538e: 4252 negs r2, r2
|
|
5390: 9202 str r2, [sp, #8]
|
|
5392: 4693 mov fp, r2
|
|
5394: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5396: 247f movs r4, #127 ; 0x7f
|
|
5398: 46a2 mov sl, r4
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
539a: 0640 lsls r0, r0, #25
|
|
539c: 0e40 lsrs r0, r0, #25
|
|
539e: 4684 mov ip, r0
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
53a0: 270f movs r7, #15
|
|
53a2: 4688 mov r8, r1
|
|
53a4: e01a b.n 53dc <_lv_style_get_opa+0x78>
|
|
attr_i.full = style->map[i + 1];
|
|
53a6: 18a8 adds r0, r5, r2
|
|
53a8: 7840 ldrb r0, [r0, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
53aa: 4644 mov r4, r8
|
|
53ac: 4044 eors r4, r0
|
|
53ae: 4651 mov r1, sl
|
|
53b0: 4221 tst r1, r4
|
|
53b2: d00d beq.n 53d0 <_lv_style_get_opa+0x6c>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
53b4: 0640 lsls r0, r0, #25
|
|
53b6: 0e40 lsrs r0, r0, #25
|
|
53b8: 9001 str r0, [sp, #4]
|
|
53ba: 0004 movs r4, r0
|
|
53bc: 4661 mov r1, ip
|
|
53be: 438c bics r4, r1
|
|
53c0: d10e bne.n 53e0 <_lv_style_get_opa+0x7c>
|
|
if(attr_i.bits.state > weight) {
|
|
53c2: 4558 cmp r0, fp
|
|
53c4: dd0c ble.n 53e0 <_lv_style_get_opa+0x7c>
|
|
weight = attr_i.bits.state;
|
|
53c6: b201 sxth r1, r0
|
|
53c8: 468b mov fp, r1
|
|
id_guess = i;
|
|
53ca: b211 sxth r1, r2
|
|
53cc: 9102 str r1, [sp, #8]
|
|
53ce: e007 b.n 53e0 <_lv_style_get_opa+0x7c>
|
|
53d0: 4641 mov r1, r8
|
|
53d2: e013 b.n 53fc <_lv_style_get_opa+0x98>
|
|
i += sizeof(lv_style_property_t);
|
|
53d4: 1c82 adds r2, r0, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
53d6: 5cab ldrb r3, [r5, r2]
|
|
53d8: 2bff cmp r3, #255 ; 0xff
|
|
53da: d00d beq.n 53f8 <_lv_style_get_opa+0x94>
|
|
if(style->map[i] == id_to_find) {
|
|
53dc: 429e cmp r6, r3
|
|
53de: d0e2 beq.n 53a6 <_lv_style_get_opa+0x42>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
53e0: 403b ands r3, r7
|
|
53e2: 1c90 adds r0, r2, #2
|
|
53e4: 2b08 cmp r3, #8
|
|
53e6: ddf5 ble.n 53d4 <_lv_style_get_opa+0x70>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
53e8: 1c90 adds r0, r2, #2
|
|
53ea: 2b0b cmp r3, #11
|
|
53ec: ddf2 ble.n 53d4 <_lv_style_get_opa+0x70>
|
|
else i += sizeof(const void *);
|
|
53ee: 1d10 adds r0, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
53f0: 2b0d cmp r3, #13
|
|
53f2: dcef bgt.n 53d4 <_lv_style_get_opa+0x70>
|
|
53f4: 1c50 adds r0, r2, #1
|
|
53f6: e7ed b.n 53d4 <_lv_style_get_opa+0x70>
|
|
53f8: 4641 mov r1, r8
|
|
return id_guess;
|
|
53fa: 9a02 ldr r2, [sp, #8]
|
|
if(id < 0) {
|
|
53fc: 2a00 cmp r2, #0
|
|
53fe: db1b blt.n 5438 <_lv_style_get_opa+0xd4>
|
|
5400: 18ad adds r5, r5, r2
|
|
5402: 78ab ldrb r3, [r5, #2]
|
|
5404: 9803 ldr r0, [sp, #12]
|
|
5406: 7003 strb r3, [r0, #0]
|
|
attr_act.full = style->map[id + 1];
|
|
5408: 464b mov r3, r9
|
|
540a: 681b ldr r3, [r3, #0]
|
|
540c: 189a adds r2, r3, r2
|
|
540e: 7850 ldrb r0, [r2, #1]
|
|
return attr_act.bits.state & attr_goal.bits.state;
|
|
5410: 0649 lsls r1, r1, #25
|
|
5412: 0e49 lsrs r1, r1, #25
|
|
5414: 4008 ands r0, r1
|
|
}
|
|
5416: b005 add sp, #20
|
|
5418: bc3c pop {r2, r3, r4, r5}
|
|
541a: 4690 mov r8, r2
|
|
541c: 4699 mov r9, r3
|
|
541e: 46a2 mov sl, r4
|
|
5420: 46ab mov fp, r5
|
|
5422: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
5424: 2301 movs r3, #1
|
|
5426: 425b negs r3, r3
|
|
5428: 9302 str r3, [sp, #8]
|
|
542a: e7e6 b.n 53fa <_lv_style_get_opa+0x96>
|
|
if(style == NULL) return -1;
|
|
542c: 2001 movs r0, #1
|
|
542e: 4240 negs r0, r0
|
|
5430: e7f1 b.n 5416 <_lv_style_get_opa+0xb2>
|
|
if(style->map == NULL) return -1;
|
|
5432: 2001 movs r0, #1
|
|
5434: 4240 negs r0, r0
|
|
5436: e7ee b.n 5416 <_lv_style_get_opa+0xb2>
|
|
return -1;
|
|
5438: 2001 movs r0, #1
|
|
543a: 4240 negs r0, r0
|
|
543c: e7eb b.n 5416 <_lv_style_get_opa+0xb2>
|
|
|
|
0000543e <_lv_style_get_color>:
|
|
{
|
|
543e: b5f0 push {r4, r5, r6, r7, lr}
|
|
5440: 46de mov lr, fp
|
|
5442: 4657 mov r7, sl
|
|
5444: 464e mov r6, r9
|
|
5446: 4645 mov r5, r8
|
|
5448: b5e0 push {r5, r6, r7, lr}
|
|
544a: b085 sub sp, #20
|
|
544c: 4681 mov r9, r0
|
|
544e: 9203 str r2, [sp, #12]
|
|
if(style == NULL) return -1;
|
|
5450: 2800 cmp r0, #0
|
|
5452: d05b beq.n 550c <_lv_style_get_color+0xce>
|
|
if(style->map == NULL) return -1;
|
|
5454: 6805 ldr r5, [r0, #0]
|
|
5456: 2d00 cmp r5, #0
|
|
5458: d05b beq.n 5512 <_lv_style_get_color+0xd4>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
545a: b2ce uxtb r6, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
545c: 0a09 lsrs r1, r1, #8
|
|
545e: 1c08 adds r0, r1, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
5460: 782b ldrb r3, [r5, #0]
|
|
5462: 2bff cmp r3, #255 ; 0xff
|
|
5464: d04e beq.n 5504 <_lv_style_get_color+0xc6>
|
|
5466: 2201 movs r2, #1
|
|
5468: 4252 negs r2, r2
|
|
546a: 9202 str r2, [sp, #8]
|
|
546c: 4693 mov fp, r2
|
|
546e: 2200 movs r2, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5470: 247f movs r4, #127 ; 0x7f
|
|
5472: 46a2 mov sl, r4
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
5474: 0640 lsls r0, r0, #25
|
|
5476: 0e40 lsrs r0, r0, #25
|
|
5478: 4684 mov ip, r0
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
547a: 270f movs r7, #15
|
|
547c: 4688 mov r8, r1
|
|
547e: e01a b.n 54b6 <_lv_style_get_color+0x78>
|
|
attr_i.full = style->map[i + 1];
|
|
5480: 18a8 adds r0, r5, r2
|
|
5482: 7840 ldrb r0, [r0, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5484: 4644 mov r4, r8
|
|
5486: 4044 eors r4, r0
|
|
5488: 4651 mov r1, sl
|
|
548a: 4221 tst r1, r4
|
|
548c: d00d beq.n 54aa <_lv_style_get_color+0x6c>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
548e: 0640 lsls r0, r0, #25
|
|
5490: 0e40 lsrs r0, r0, #25
|
|
5492: 9001 str r0, [sp, #4]
|
|
5494: 0004 movs r4, r0
|
|
5496: 4661 mov r1, ip
|
|
5498: 438c bics r4, r1
|
|
549a: d10e bne.n 54ba <_lv_style_get_color+0x7c>
|
|
if(attr_i.bits.state > weight) {
|
|
549c: 4558 cmp r0, fp
|
|
549e: dd0c ble.n 54ba <_lv_style_get_color+0x7c>
|
|
weight = attr_i.bits.state;
|
|
54a0: b201 sxth r1, r0
|
|
54a2: 468b mov fp, r1
|
|
id_guess = i;
|
|
54a4: b211 sxth r1, r2
|
|
54a6: 9102 str r1, [sp, #8]
|
|
54a8: e007 b.n 54ba <_lv_style_get_color+0x7c>
|
|
54aa: 4641 mov r1, r8
|
|
54ac: e013 b.n 54d6 <_lv_style_get_color+0x98>
|
|
i += sizeof(lv_style_property_t);
|
|
54ae: 1c82 adds r2, r0, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
54b0: 5cab ldrb r3, [r5, r2]
|
|
54b2: 2bff cmp r3, #255 ; 0xff
|
|
54b4: d00d beq.n 54d2 <_lv_style_get_color+0x94>
|
|
if(style->map[i] == id_to_find) {
|
|
54b6: 429e cmp r6, r3
|
|
54b8: d0e2 beq.n 5480 <_lv_style_get_color+0x42>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
54ba: 403b ands r3, r7
|
|
54bc: 1c90 adds r0, r2, #2
|
|
54be: 2b08 cmp r3, #8
|
|
54c0: ddf5 ble.n 54ae <_lv_style_get_color+0x70>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
54c2: 1c90 adds r0, r2, #2
|
|
54c4: 2b0b cmp r3, #11
|
|
54c6: ddf2 ble.n 54ae <_lv_style_get_color+0x70>
|
|
else i += sizeof(const void *);
|
|
54c8: 1d10 adds r0, r2, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
54ca: 2b0d cmp r3, #13
|
|
54cc: dcef bgt.n 54ae <_lv_style_get_color+0x70>
|
|
54ce: 1c50 adds r0, r2, #1
|
|
54d0: e7ed b.n 54ae <_lv_style_get_color+0x70>
|
|
54d2: 4641 mov r1, r8
|
|
return id_guess;
|
|
54d4: 9a02 ldr r2, [sp, #8]
|
|
if(id < 0) {
|
|
54d6: 2a00 cmp r2, #0
|
|
54d8: db1e blt.n 5518 <_lv_style_get_color+0xda>
|
|
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_color_t));
|
|
54da: 1c93 adds r3, r2, #2
|
|
54dc: 18ed adds r5, r5, r3
|
|
54de: 782b ldrb r3, [r5, #0]
|
|
54e0: 9803 ldr r0, [sp, #12]
|
|
54e2: 7003 strb r3, [r0, #0]
|
|
54e4: 786b ldrb r3, [r5, #1]
|
|
54e6: 7043 strb r3, [r0, #1]
|
|
attr_act.full = style->map[id + 1];
|
|
54e8: 464b mov r3, r9
|
|
54ea: 681b ldr r3, [r3, #0]
|
|
54ec: 189a adds r2, r3, r2
|
|
54ee: 7850 ldrb r0, [r2, #1]
|
|
return attr_act.bits.state & attr_goal.bits.state;
|
|
54f0: 0649 lsls r1, r1, #25
|
|
54f2: 0e49 lsrs r1, r1, #25
|
|
54f4: 4008 ands r0, r1
|
|
}
|
|
54f6: b005 add sp, #20
|
|
54f8: bc3c pop {r2, r3, r4, r5}
|
|
54fa: 4690 mov r8, r2
|
|
54fc: 4699 mov r9, r3
|
|
54fe: 46a2 mov sl, r4
|
|
5500: 46ab mov fp, r5
|
|
5502: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
5504: 2301 movs r3, #1
|
|
5506: 425b negs r3, r3
|
|
5508: 9302 str r3, [sp, #8]
|
|
550a: e7e3 b.n 54d4 <_lv_style_get_color+0x96>
|
|
if(style == NULL) return -1;
|
|
550c: 2001 movs r0, #1
|
|
550e: 4240 negs r0, r0
|
|
5510: e7f1 b.n 54f6 <_lv_style_get_color+0xb8>
|
|
if(style->map == NULL) return -1;
|
|
5512: 2001 movs r0, #1
|
|
5514: 4240 negs r0, r0
|
|
5516: e7ee b.n 54f6 <_lv_style_get_color+0xb8>
|
|
return -1;
|
|
5518: 2001 movs r0, #1
|
|
551a: 4240 negs r0, r0
|
|
551c: e7eb b.n 54f6 <_lv_style_get_color+0xb8>
|
|
|
|
0000551e <_lv_style_get_ptr>:
|
|
{
|
|
551e: b5f0 push {r4, r5, r6, r7, lr}
|
|
5520: 46de mov lr, fp
|
|
5522: 4657 mov r7, sl
|
|
5524: 464e mov r6, r9
|
|
5526: 4645 mov r5, r8
|
|
5528: b5e0 push {r5, r6, r7, lr}
|
|
552a: b085 sub sp, #20
|
|
552c: 4681 mov r9, r0
|
|
552e: 4693 mov fp, r2
|
|
if(style == NULL) return -1;
|
|
5530: 2800 cmp r0, #0
|
|
5532: d05f beq.n 55f4 <_lv_style_get_ptr+0xd6>
|
|
if(style->map == NULL) return -1;
|
|
5534: 6806 ldr r6, [r0, #0]
|
|
5536: 2e00 cmp r6, #0
|
|
5538: d05f beq.n 55fa <_lv_style_get_ptr+0xdc>
|
|
uint8_t id_to_find = prop & 0xFF;
|
|
553a: b2cf uxtb r7, r1
|
|
attr.full = (prop >> 8) & 0xFF;
|
|
553c: 0a0a lsrs r2, r1, #8
|
|
553e: 1c11 adds r1, r2, #0
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
5540: 7833 ldrb r3, [r6, #0]
|
|
5542: 2bff cmp r3, #255 ; 0xff
|
|
5544: d052 beq.n 55ec <_lv_style_get_ptr+0xce>
|
|
5546: 2001 movs r0, #1
|
|
5548: 4240 negs r0, r0
|
|
554a: 9003 str r0, [sp, #12]
|
|
554c: 9002 str r0, [sp, #8]
|
|
554e: 2400 movs r4, #0
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5550: 3080 adds r0, #128 ; 0x80
|
|
5552: 4682 mov sl, r0
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
5554: 0649 lsls r1, r1, #25
|
|
5556: 0e49 lsrs r1, r1, #25
|
|
5558: 468c mov ip, r1
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
555a: 210f movs r1, #15
|
|
555c: 4690 mov r8, r2
|
|
555e: e01b b.n 5598 <_lv_style_get_ptr+0x7a>
|
|
attr_i.full = style->map[i + 1];
|
|
5560: 1932 adds r2, r6, r4
|
|
5562: 7850 ldrb r0, [r2, #1]
|
|
if(attr_i.bits.state == attr.bits.state) {
|
|
5564: 4642 mov r2, r8
|
|
5566: 4042 eors r2, r0
|
|
5568: 4655 mov r5, sl
|
|
556a: 4215 tst r5, r2
|
|
556c: d00e beq.n 558c <_lv_style_get_ptr+0x6e>
|
|
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
|
|
556e: 0640 lsls r0, r0, #25
|
|
5570: 0e40 lsrs r0, r0, #25
|
|
5572: 9001 str r0, [sp, #4]
|
|
5574: 0005 movs r5, r0
|
|
5576: 4662 mov r2, ip
|
|
5578: 4395 bics r5, r2
|
|
557a: d10f bne.n 559c <_lv_style_get_ptr+0x7e>
|
|
if(attr_i.bits.state > weight) {
|
|
557c: 9a02 ldr r2, [sp, #8]
|
|
557e: 4290 cmp r0, r2
|
|
5580: dd0c ble.n 559c <_lv_style_get_ptr+0x7e>
|
|
weight = attr_i.bits.state;
|
|
5582: b202 sxth r2, r0
|
|
5584: 9202 str r2, [sp, #8]
|
|
id_guess = i;
|
|
5586: b222 sxth r2, r4
|
|
5588: 9203 str r2, [sp, #12]
|
|
558a: e007 b.n 559c <_lv_style_get_ptr+0x7e>
|
|
558c: 4642 mov r2, r8
|
|
558e: e013 b.n 55b8 <_lv_style_get_ptr+0x9a>
|
|
i += sizeof(lv_style_property_t);
|
|
5590: 1c94 adds r4, r2, #2
|
|
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
|
|
5592: 5d33 ldrb r3, [r6, r4]
|
|
5594: 2bff cmp r3, #255 ; 0xff
|
|
5596: d00d beq.n 55b4 <_lv_style_get_ptr+0x96>
|
|
if(style->map[i] == id_to_find) {
|
|
5598: 429f cmp r7, r3
|
|
559a: d0e1 beq.n 5560 <_lv_style_get_ptr+0x42>
|
|
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
|
|
559c: 400b ands r3, r1
|
|
559e: 1ca2 adds r2, r4, #2
|
|
55a0: 2b08 cmp r3, #8
|
|
55a2: ddf5 ble.n 5590 <_lv_style_get_ptr+0x72>
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
|
|
55a4: 1ca2 adds r2, r4, #2
|
|
55a6: 2b0b cmp r3, #11
|
|
55a8: ddf2 ble.n 5590 <_lv_style_get_ptr+0x72>
|
|
else i += sizeof(const void *);
|
|
55aa: 1d22 adds r2, r4, #4
|
|
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
|
|
55ac: 2b0d cmp r3, #13
|
|
55ae: dcef bgt.n 5590 <_lv_style_get_ptr+0x72>
|
|
55b0: 1c62 adds r2, r4, #1
|
|
55b2: e7ed b.n 5590 <_lv_style_get_ptr+0x72>
|
|
55b4: 4642 mov r2, r8
|
|
return id_guess;
|
|
55b6: 9c03 ldr r4, [sp, #12]
|
|
if(id < 0) {
|
|
55b8: 2c00 cmp r4, #0
|
|
55ba: db21 blt.n 5600 <_lv_style_get_ptr+0xe2>
|
|
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *));
|
|
55bc: 0020 movs r0, r4
|
|
55be: 3402 adds r4, #2
|
|
55c0: 1936 adds r6, r6, r4
|
|
55c2: 2300 movs r3, #0
|
|
55c4: 465c mov r4, fp
|
|
55c6: 5cf1 ldrb r1, [r6, r3]
|
|
55c8: 54e1 strb r1, [r4, r3]
|
|
55ca: 3301 adds r3, #1
|
|
while(len) {
|
|
55cc: 2b04 cmp r3, #4
|
|
55ce: d1fa bne.n 55c6 <_lv_style_get_ptr+0xa8>
|
|
attr_act.full = style->map[id + 1];
|
|
55d0: 464b mov r3, r9
|
|
55d2: 681b ldr r3, [r3, #0]
|
|
55d4: 181b adds r3, r3, r0
|
|
55d6: 7858 ldrb r0, [r3, #1]
|
|
return attr_act.bits.state & attr_goal.bits.state;
|
|
55d8: 0652 lsls r2, r2, #25
|
|
55da: 0e52 lsrs r2, r2, #25
|
|
55dc: 4010 ands r0, r2
|
|
}
|
|
55de: b005 add sp, #20
|
|
55e0: bc3c pop {r2, r3, r4, r5}
|
|
55e2: 4690 mov r8, r2
|
|
55e4: 4699 mov r9, r3
|
|
55e6: 46a2 mov sl, r4
|
|
55e8: 46ab mov fp, r5
|
|
55ea: bdf0 pop {r4, r5, r6, r7, pc}
|
|
int16_t id_guess = -1;
|
|
55ec: 2301 movs r3, #1
|
|
55ee: 425b negs r3, r3
|
|
55f0: 9303 str r3, [sp, #12]
|
|
55f2: e7e0 b.n 55b6 <_lv_style_get_ptr+0x98>
|
|
if(style == NULL) return -1;
|
|
55f4: 2001 movs r0, #1
|
|
55f6: 4240 negs r0, r0
|
|
55f8: e7f1 b.n 55de <_lv_style_get_ptr+0xc0>
|
|
if(style->map == NULL) return -1;
|
|
55fa: 2001 movs r0, #1
|
|
55fc: 4240 negs r0, r0
|
|
55fe: e7ee b.n 55de <_lv_style_get_ptr+0xc0>
|
|
return -1;
|
|
5600: 2001 movs r0, #1
|
|
5602: 4240 negs r0, r0
|
|
5604: e7eb b.n 55de <_lv_style_get_ptr+0xc0>
|
|
|
|
00005606 <lv_style_list_get_local_style>:
|
|
if(!list->has_local) return NULL;
|
|
5606: 7943 ldrb r3, [r0, #5]
|
|
5608: 07da lsls r2, r3, #31
|
|
560a: d507 bpl.n 561c <lv_style_list_get_local_style+0x16>
|
|
if(list->has_trans) return list->style_list[1];
|
|
560c: 079b lsls r3, r3, #30
|
|
560e: d402 bmi.n 5616 <lv_style_list_get_local_style+0x10>
|
|
else return list->style_list[0];
|
|
5610: 6803 ldr r3, [r0, #0]
|
|
5612: 6818 ldr r0, [r3, #0]
|
|
}
|
|
5614: 4770 bx lr
|
|
if(list->has_trans) return list->style_list[1];
|
|
5616: 6803 ldr r3, [r0, #0]
|
|
5618: 6858 ldr r0, [r3, #4]
|
|
561a: e7fb b.n 5614 <lv_style_list_get_local_style+0xe>
|
|
if(!list->has_local) return NULL;
|
|
561c: 2000 movs r0, #0
|
|
561e: e7f9 b.n 5614 <lv_style_list_get_local_style+0xe>
|
|
|
|
00005620 <_lv_style_list_get_transition_style>:
|
|
if(!list->has_trans) return NULL;
|
|
5620: 7943 ldrb r3, [r0, #5]
|
|
5622: 079b lsls r3, r3, #30
|
|
5624: d502 bpl.n 562c <_lv_style_list_get_transition_style+0xc>
|
|
return list->style_list[0];
|
|
5626: 6803 ldr r3, [r0, #0]
|
|
5628: 6818 ldr r0, [r3, #0]
|
|
}
|
|
562a: 4770 bx lr
|
|
if(!list->has_trans) return NULL;
|
|
562c: 2000 movs r0, #0
|
|
562e: e7fc b.n 562a <_lv_style_list_get_transition_style+0xa>
|
|
|
|
00005630 <_lv_style_list_reset>:
|
|
{
|
|
5630: b570 push {r4, r5, r6, lr}
|
|
5632: 1e04 subs r4, r0, #0
|
|
if(list == NULL) return;
|
|
5634: d026 beq.n 5684 <_lv_style_list_reset+0x54>
|
|
if(list->has_local) {
|
|
5636: 7943 ldrb r3, [r0, #5]
|
|
5638: 07db lsls r3, r3, #31
|
|
563a: d508 bpl.n 564e <_lv_style_list_reset+0x1e>
|
|
lv_style_t * local = lv_style_list_get_local_style(list);
|
|
563c: 4b14 ldr r3, [pc, #80] ; (5690 <_lv_style_list_reset+0x60>)
|
|
563e: 4798 blx r3
|
|
5640: 1e05 subs r5, r0, #0
|
|
if(local) {
|
|
5642: d004 beq.n 564e <_lv_style_list_reset+0x1e>
|
|
lv_style_reset(local);
|
|
5644: 4b13 ldr r3, [pc, #76] ; (5694 <_lv_style_list_reset+0x64>)
|
|
5646: 4798 blx r3
|
|
lv_mem_free(local);
|
|
5648: 0028 movs r0, r5
|
|
564a: 4b13 ldr r3, [pc, #76] ; (5698 <_lv_style_list_reset+0x68>)
|
|
564c: 4798 blx r3
|
|
if(list->has_trans) {
|
|
564e: 7963 ldrb r3, [r4, #5]
|
|
5650: 079b lsls r3, r3, #30
|
|
5652: d509 bpl.n 5668 <_lv_style_list_reset+0x38>
|
|
lv_style_t * trans = _lv_style_list_get_transition_style(list);
|
|
5654: 0020 movs r0, r4
|
|
5656: 4b11 ldr r3, [pc, #68] ; (569c <_lv_style_list_reset+0x6c>)
|
|
5658: 4798 blx r3
|
|
565a: 1e05 subs r5, r0, #0
|
|
if(trans) {
|
|
565c: d004 beq.n 5668 <_lv_style_list_reset+0x38>
|
|
lv_style_reset(trans);
|
|
565e: 4b0d ldr r3, [pc, #52] ; (5694 <_lv_style_list_reset+0x64>)
|
|
5660: 4798 blx r3
|
|
lv_mem_free(trans);
|
|
5662: 0028 movs r0, r5
|
|
5664: 4b0c ldr r3, [pc, #48] ; (5698 <_lv_style_list_reset+0x68>)
|
|
5666: 4798 blx r3
|
|
if(list->style_cnt > 0) lv_mem_free(list->style_list);
|
|
5668: 7923 ldrb r3, [r4, #4]
|
|
566a: 2b00 cmp r3, #0
|
|
566c: d10b bne.n 5686 <_lv_style_list_reset+0x56>
|
|
list->style_list = NULL;
|
|
566e: 2300 movs r3, #0
|
|
5670: 6023 str r3, [r4, #0]
|
|
list->style_cnt = 0;
|
|
5672: 7123 strb r3, [r4, #4]
|
|
list->has_local = 0;
|
|
5674: 7963 ldrb r3, [r4, #5]
|
|
list->has_trans = 0;
|
|
5676: 2201 movs r2, #1
|
|
5678: 4393 bics r3, r2
|
|
list->skip_trans = 0;
|
|
567a: 3201 adds r2, #1
|
|
567c: 4393 bics r3, r2
|
|
567e: 3202 adds r2, #2
|
|
5680: 4393 bics r3, r2
|
|
5682: 7163 strb r3, [r4, #5]
|
|
}
|
|
5684: bd70 pop {r4, r5, r6, pc}
|
|
if(list->style_cnt > 0) lv_mem_free(list->style_list);
|
|
5686: 6820 ldr r0, [r4, #0]
|
|
5688: 4b03 ldr r3, [pc, #12] ; (5698 <_lv_style_list_reset+0x68>)
|
|
568a: 4798 blx r3
|
|
568c: e7ef b.n 566e <_lv_style_list_reset+0x3e>
|
|
568e: 46c0 nop ; (mov r8, r8)
|
|
5690: 00005607 .word 0x00005607
|
|
5694: 00004b49 .word 0x00004b49
|
|
5698: 00010b39 .word 0x00010b39
|
|
569c: 00005621 .word 0x00005621
|
|
|
|
000056a0 <lv_style_list_copy>:
|
|
{
|
|
56a0: b570 push {r4, r5, r6, lr}
|
|
56a2: 0005 movs r5, r0
|
|
56a4: 000c movs r4, r1
|
|
_lv_style_list_reset(list_dest);
|
|
56a6: 4b2b ldr r3, [pc, #172] ; (5754 <lv_style_list_copy+0xb4>)
|
|
56a8: 4798 blx r3
|
|
if(list_src->style_list == NULL) return;
|
|
56aa: 6823 ldr r3, [r4, #0]
|
|
56ac: 2b00 cmp r3, #0
|
|
56ae: d03e beq.n 572e <lv_style_list_copy+0x8e>
|
|
if(list_src->has_local == 0) {
|
|
56b0: 7963 ldrb r3, [r4, #5]
|
|
56b2: 07da lsls r2, r3, #31
|
|
56b4: d41f bmi.n 56f6 <lv_style_list_copy+0x56>
|
|
if(list_src->has_trans) {
|
|
56b6: 079b lsls r3, r3, #30
|
|
56b8: d510 bpl.n 56dc <lv_style_list_copy+0x3c>
|
|
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
|
|
56ba: 7920 ldrb r0, [r4, #4]
|
|
56bc: 3801 subs r0, #1
|
|
56be: 0080 lsls r0, r0, #2
|
|
56c0: 4b25 ldr r3, [pc, #148] ; (5758 <lv_style_list_copy+0xb8>)
|
|
56c2: 4798 blx r3
|
|
56c4: 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 *));
|
|
56c6: 7922 ldrb r2, [r4, #4]
|
|
56c8: 3a01 subs r2, #1
|
|
56ca: 0092 lsls r2, r2, #2
|
|
56cc: 6823 ldr r3, [r4, #0]
|
|
56ce: 1d19 adds r1, r3, #4
|
|
56d0: 4b22 ldr r3, [pc, #136] ; (575c <lv_style_list_copy+0xbc>)
|
|
56d2: 4798 blx r3
|
|
list_dest->style_cnt = list_src->style_cnt - 1;
|
|
56d4: 7923 ldrb r3, [r4, #4]
|
|
56d6: 3b01 subs r3, #1
|
|
56d8: 712b strb r3, [r5, #4]
|
|
56da: e028 b.n 572e <lv_style_list_copy+0x8e>
|
|
list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *));
|
|
56dc: 7920 ldrb r0, [r4, #4]
|
|
56de: 0080 lsls r0, r0, #2
|
|
56e0: 4b1d ldr r3, [pc, #116] ; (5758 <lv_style_list_copy+0xb8>)
|
|
56e2: 4798 blx r3
|
|
56e4: 6028 str r0, [r5, #0]
|
|
_lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *));
|
|
56e6: 7922 ldrb r2, [r4, #4]
|
|
56e8: 0092 lsls r2, r2, #2
|
|
56ea: 6821 ldr r1, [r4, #0]
|
|
56ec: 4b1b ldr r3, [pc, #108] ; (575c <lv_style_list_copy+0xbc>)
|
|
56ee: 4798 blx r3
|
|
list_dest->style_cnt = list_src->style_cnt;
|
|
56f0: 7923 ldrb r3, [r4, #4]
|
|
56f2: 712b strb r3, [r5, #4]
|
|
56f4: e01b b.n 572e <lv_style_list_copy+0x8e>
|
|
if(list_src->has_trans) {
|
|
56f6: 079b lsls r3, r3, #30
|
|
56f8: d51a bpl.n 5730 <lv_style_list_copy+0x90>
|
|
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *));
|
|
56fa: 7920 ldrb r0, [r4, #4]
|
|
56fc: 3802 subs r0, #2
|
|
56fe: 0080 lsls r0, r0, #2
|
|
5700: 4b15 ldr r3, [pc, #84] ; (5758 <lv_style_list_copy+0xb8>)
|
|
5702: 4798 blx r3
|
|
5704: 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 *));
|
|
5706: 7922 ldrb r2, [r4, #4]
|
|
5708: 3a02 subs r2, #2
|
|
570a: 0092 lsls r2, r2, #2
|
|
570c: 6821 ldr r1, [r4, #0]
|
|
570e: 3108 adds r1, #8
|
|
5710: 4b12 ldr r3, [pc, #72] ; (575c <lv_style_list_copy+0xbc>)
|
|
5712: 4798 blx r3
|
|
list_dest->style_cnt = list_src->style_cnt - 2;
|
|
5714: 7923 ldrb r3, [r4, #4]
|
|
5716: 3b02 subs r3, #2
|
|
5718: 712b strb r3, [r5, #4]
|
|
lv_style_t * local_style = get_alloc_local_style(list_dest);
|
|
571a: 0028 movs r0, r5
|
|
571c: 4d10 ldr r5, [pc, #64] ; (5760 <lv_style_list_copy+0xc0>)
|
|
571e: 47a8 blx r5
|
|
5720: 0006 movs r6, r0
|
|
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
|
|
5722: 0020 movs r0, r4
|
|
5724: 47a8 blx r5
|
|
5726: 0001 movs r1, r0
|
|
5728: 0030 movs r0, r6
|
|
572a: 4b0e ldr r3, [pc, #56] ; (5764 <lv_style_list_copy+0xc4>)
|
|
572c: 4798 blx r3
|
|
}
|
|
572e: bd70 pop {r4, r5, r6, pc}
|
|
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
|
|
5730: 7920 ldrb r0, [r4, #4]
|
|
5732: 3801 subs r0, #1
|
|
5734: 0080 lsls r0, r0, #2
|
|
5736: 4b08 ldr r3, [pc, #32] ; (5758 <lv_style_list_copy+0xb8>)
|
|
5738: 4798 blx r3
|
|
573a: 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 *));
|
|
573c: 7922 ldrb r2, [r4, #4]
|
|
573e: 3a01 subs r2, #1
|
|
5740: 0092 lsls r2, r2, #2
|
|
5742: 6823 ldr r3, [r4, #0]
|
|
5744: 1d19 adds r1, r3, #4
|
|
5746: 4b05 ldr r3, [pc, #20] ; (575c <lv_style_list_copy+0xbc>)
|
|
5748: 4798 blx r3
|
|
list_dest->style_cnt = list_src->style_cnt - 1;
|
|
574a: 7923 ldrb r3, [r4, #4]
|
|
574c: 3b01 subs r3, #1
|
|
574e: 712b strb r3, [r5, #4]
|
|
5750: e7e3 b.n 571a <lv_style_list_copy+0x7a>
|
|
5752: 46c0 nop ; (mov r8, r8)
|
|
5754: 00005631 .word 0x00005631
|
|
5758: 00010a71 .word 0x00010a71
|
|
575c: 00010c8d .word 0x00010c8d
|
|
5760: 00004ac5 .word 0x00004ac5
|
|
5764: 00004b9d .word 0x00004b9d
|
|
|
|
00005768 <_lv_style_list_add_trans_style>:
|
|
{
|
|
5768: b570 push {r4, r5, r6, lr}
|
|
576a: 0005 movs r5, r0
|
|
if(list->has_trans) return _lv_style_list_get_transition_style(list);
|
|
576c: 7943 ldrb r3, [r0, #5]
|
|
576e: 079b lsls r3, r3, #30
|
|
5770: d504 bpl.n 577c <_lv_style_list_add_trans_style+0x14>
|
|
5772: 4b14 ldr r3, [pc, #80] ; (57c4 <_lv_style_list_add_trans_style+0x5c>)
|
|
5774: 4798 blx r3
|
|
5776: 0004 movs r4, r0
|
|
}
|
|
5778: 0020 movs r0, r4
|
|
577a: bd70 pop {r4, r5, r6, pc}
|
|
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
|
|
577c: 2004 movs r0, #4
|
|
577e: 4b12 ldr r3, [pc, #72] ; (57c8 <_lv_style_list_add_trans_style+0x60>)
|
|
5780: 4798 blx r3
|
|
5782: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(trans_style);
|
|
5784: 4b11 ldr r3, [pc, #68] ; (57cc <_lv_style_list_add_trans_style+0x64>)
|
|
5786: 4798 blx r3
|
|
5788: 2800 cmp r0, #0
|
|
578a: d015 beq.n 57b8 <_lv_style_list_add_trans_style+0x50>
|
|
if(trans_style == NULL) {
|
|
578c: 2c00 cmp r4, #0
|
|
578e: d0f3 beq.n 5778 <_lv_style_list_add_trans_style+0x10>
|
|
lv_style_init(trans_style);
|
|
5790: 0020 movs r0, r4
|
|
5792: 4b0f ldr r3, [pc, #60] ; (57d0 <_lv_style_list_add_trans_style+0x68>)
|
|
5794: 4798 blx r3
|
|
_lv_style_list_add_style(list, trans_style);
|
|
5796: 0021 movs r1, r4
|
|
5798: 0028 movs r0, r5
|
|
579a: 4b0e ldr r3, [pc, #56] ; (57d4 <_lv_style_list_add_trans_style+0x6c>)
|
|
579c: 4798 blx r3
|
|
list->has_trans = 1;
|
|
579e: 796b ldrb r3, [r5, #5]
|
|
57a0: 2202 movs r2, #2
|
|
57a2: 4313 orrs r3, r2
|
|
57a4: 716b strb r3, [r5, #5]
|
|
if(list->has_local) {
|
|
57a6: 07db lsls r3, r3, #31
|
|
57a8: d5e6 bpl.n 5778 <_lv_style_list_add_trans_style+0x10>
|
|
lv_style_t * tmp = list->style_list[0];
|
|
57aa: 682b ldr r3, [r5, #0]
|
|
57ac: 681a ldr r2, [r3, #0]
|
|
list->style_list[0] = list->style_list[1];
|
|
57ae: 6859 ldr r1, [r3, #4]
|
|
57b0: 6019 str r1, [r3, #0]
|
|
list->style_list[1] = tmp;
|
|
57b2: 682b ldr r3, [r5, #0]
|
|
57b4: 605a str r2, [r3, #4]
|
|
57b6: e7df b.n 5778 <_lv_style_list_add_trans_style+0x10>
|
|
LV_ASSERT_MEM(trans_style);
|
|
57b8: 0022 movs r2, r4
|
|
57ba: 2300 movs r3, #0
|
|
57bc: 4806 ldr r0, [pc, #24] ; (57d8 <_lv_style_list_add_trans_style+0x70>)
|
|
57be: 4907 ldr r1, [pc, #28] ; (57dc <_lv_style_list_add_trans_style+0x74>)
|
|
57c0: 4788 blx r1
|
|
57c2: e7fe b.n 57c2 <_lv_style_list_add_trans_style+0x5a>
|
|
57c4: 00005621 .word 0x00005621
|
|
57c8: 00010a71 .word 0x00010a71
|
|
57cc: 0000147d .word 0x0000147d
|
|
57d0: 0000494d .word 0x0000494d
|
|
57d4: 00004a1d .word 0x00004a1d
|
|
57d8: 00018724 .word 0x00018724
|
|
57dc: 00001485 .word 0x00001485
|
|
|
|
000057e0 <_lv_style_list_get_int>:
|
|
{
|
|
57e0: b5f0 push {r4, r5, r6, r7, lr}
|
|
57e2: 46d6 mov lr, sl
|
|
57e4: 464f mov r7, r9
|
|
57e6: 4646 mov r6, r8
|
|
57e8: b5c0 push {r6, r7, lr}
|
|
57ea: b084 sub sp, #16
|
|
57ec: 1e05 subs r5, r0, #0
|
|
57ee: 9101 str r1, [sp, #4]
|
|
57f0: 4691 mov r9, r2
|
|
if(list == NULL) return LV_RES_INV;
|
|
57f2: d058 beq.n 58a6 <_lv_style_list_get_int+0xc6>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
57f4: 6803 ldr r3, [r0, #0]
|
|
57f6: 2b00 cmp r3, #0
|
|
57f8: d057 beq.n 58aa <_lv_style_list_get_int+0xca>
|
|
int16_t weight_goal = attr.full;
|
|
57fa: 0a0b lsrs r3, r1, #8
|
|
57fc: 4698 mov r8, r3
|
|
lv_style_int_t value_act = 0;
|
|
57fe: 2200 movs r2, #0
|
|
5800: ab02 add r3, sp, #8
|
|
5802: 80da strh r2, [r3, #6]
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
5804: 7902 ldrb r2, [r0, #4]
|
|
5806: 2a00 cmp r2, #0
|
|
5808: dd42 ble.n 5890 <_lv_style_list_get_int+0xb0>
|
|
580a: 2400 movs r4, #0
|
|
580c: 2601 movs r6, #1
|
|
580e: 4276 negs r6, r6
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
5810: 2306 movs r3, #6
|
|
5812: 469a mov sl, r3
|
|
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
|
|
5814: 4f26 ldr r7, [pc, #152] ; (58b0 <_lv_style_list_get_int+0xd0>)
|
|
5816: e016 b.n 5846 <_lv_style_list_get_int+0x66>
|
|
5818: 3101 adds r1, #1
|
|
581a: b2c9 uxtb r1, r1
|
|
581c: e019 b.n 5852 <_lv_style_list_get_int+0x72>
|
|
*res = value_act;
|
|
581e: ab02 add r3, sp, #8
|
|
5820: 3306 adds r3, #6
|
|
5822: 881b ldrh r3, [r3, #0]
|
|
5824: 464a mov r2, r9
|
|
5826: 8013 strh r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
5828: 2001 movs r0, #1
|
|
582a: e036 b.n 589a <_lv_style_list_get_int+0xba>
|
|
else if(weight_act > weight) {
|
|
582c: 42b3 cmp r3, r6
|
|
582e: dd05 ble.n 583c <_lv_style_list_get_int+0x5c>
|
|
*res = value_act;
|
|
5830: ab02 add r3, sp, #8
|
|
5832: 3306 adds r3, #6
|
|
5834: 881b ldrh r3, [r3, #0]
|
|
5836: 464a mov r2, r9
|
|
5838: 8013 strh r3, [r2, #0]
|
|
weight = weight_act;
|
|
583a: 0006 movs r6, r0
|
|
583c: 3401 adds r4, #1
|
|
583e: b224 sxth r4, r4
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
5840: 792a ldrb r2, [r5, #4]
|
|
5842: 4294 cmp r4, r2
|
|
5844: da26 bge.n 5894 <_lv_style_list_get_int+0xb4>
|
|
lv_style_t * class = lv_style_list_get_style(list, ci);
|
|
5846: b2e1 uxtb r1, r4
|
|
5848: 796b ldrb r3, [r5, #5]
|
|
584a: 4650 mov r0, sl
|
|
584c: 4003 ands r3, r0
|
|
584e: 2b06 cmp r3, #6
|
|
5850: d0e2 beq.n 5818 <_lv_style_list_get_int+0x38>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
5852: 2000 movs r0, #0
|
|
5854: 2a00 cmp r2, #0
|
|
5856: d004 beq.n 5862 <_lv_style_list_get_int+0x82>
|
|
5858: 4291 cmp r1, r2
|
|
585a: d202 bcs.n 5862 <_lv_style_list_get_int+0x82>
|
|
return list->style_list[id];
|
|
585c: 0089 lsls r1, r1, #2
|
|
585e: 682b ldr r3, [r5, #0]
|
|
5860: 58c8 ldr r0, [r1, r3]
|
|
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
|
|
5862: ab02 add r3, sp, #8
|
|
5864: 1d9a adds r2, r3, #6
|
|
5866: 9901 ldr r1, [sp, #4]
|
|
5868: 47b8 blx r7
|
|
586a: 0003 movs r3, r0
|
|
if(weight_act == weight_goal) {
|
|
586c: 4580 cmp r8, r0
|
|
586e: d0d6 beq.n 581e <_lv_style_list_get_int+0x3e>
|
|
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
|
|
5870: 796a ldrb r2, [r5, #5]
|
|
5872: 0791 lsls r1, r2, #30
|
|
5874: d5da bpl.n 582c <_lv_style_list_get_int+0x4c>
|
|
5876: 2800 cmp r0, #0
|
|
5878: dbd8 blt.n 582c <_lv_style_list_get_int+0x4c>
|
|
587a: 2c00 cmp r4, #0
|
|
587c: d1d6 bne.n 582c <_lv_style_list_get_int+0x4c>
|
|
587e: 0752 lsls r2, r2, #29
|
|
5880: d4d4 bmi.n 582c <_lv_style_list_get_int+0x4c>
|
|
*res = value_act;
|
|
5882: ab02 add r3, sp, #8
|
|
5884: 3306 adds r3, #6
|
|
5886: 881b ldrh r3, [r3, #0]
|
|
5888: 464a mov r2, r9
|
|
588a: 8013 strh r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
588c: 2001 movs r0, #1
|
|
588e: e004 b.n 589a <_lv_style_list_get_int+0xba>
|
|
int16_t weight = -1;
|
|
5890: 2601 movs r6, #1
|
|
5892: 4276 negs r6, r6
|
|
if(weight >= 0) return LV_RES_OK;
|
|
5894: 43f0 mvns r0, r6
|
|
5896: b280 uxth r0, r0
|
|
if(list == NULL) return LV_RES_INV;
|
|
5898: 0bc0 lsrs r0, r0, #15
|
|
}
|
|
589a: b004 add sp, #16
|
|
589c: bc1c pop {r2, r3, r4}
|
|
589e: 4690 mov r8, r2
|
|
58a0: 4699 mov r9, r3
|
|
58a2: 46a2 mov sl, r4
|
|
58a4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(list == NULL) return LV_RES_INV;
|
|
58a6: 2000 movs r0, #0
|
|
58a8: e7f7 b.n 589a <_lv_style_list_get_int+0xba>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
58aa: 2000 movs r0, #0
|
|
58ac: e7f5 b.n 589a <_lv_style_list_get_int+0xba>
|
|
58ae: 46c0 nop ; (mov r8, r8)
|
|
58b0: 00005285 .word 0x00005285
|
|
|
|
000058b4 <_lv_style_list_get_color>:
|
|
{
|
|
58b4: b5f0 push {r4, r5, r6, r7, lr}
|
|
58b6: 46d6 mov lr, sl
|
|
58b8: 464f mov r7, r9
|
|
58ba: 4646 mov r6, r8
|
|
58bc: b5c0 push {r6, r7, lr}
|
|
58be: b084 sub sp, #16
|
|
58c0: 1e05 subs r5, r0, #0
|
|
58c2: 9101 str r1, [sp, #4]
|
|
58c4: 4691 mov r9, r2
|
|
if(list == NULL) return LV_RES_INV;
|
|
58c6: d054 beq.n 5972 <_lv_style_list_get_color+0xbe>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
58c8: 6803 ldr r3, [r0, #0]
|
|
58ca: 2b00 cmp r3, #0
|
|
58cc: d053 beq.n 5976 <_lv_style_list_get_color+0xc2>
|
|
int16_t weight_goal = attr.full;
|
|
58ce: 0a0b lsrs r3, r1, #8
|
|
58d0: 4698 mov r8, r3
|
|
lv_color_t value_act = { 0 };
|
|
58d2: 2200 movs r2, #0
|
|
58d4: ab03 add r3, sp, #12
|
|
58d6: 801a strh r2, [r3, #0]
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
58d8: 7902 ldrb r2, [r0, #4]
|
|
58da: 2a00 cmp r2, #0
|
|
58dc: dd3e ble.n 595c <_lv_style_list_get_color+0xa8>
|
|
58de: 2400 movs r4, #0
|
|
58e0: 2601 movs r6, #1
|
|
58e2: 4276 negs r6, r6
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
58e4: 2306 movs r3, #6
|
|
58e6: 469a mov sl, r3
|
|
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
|
|
58e8: 4f24 ldr r7, [pc, #144] ; (597c <_lv_style_list_get_color+0xc8>)
|
|
58ea: e014 b.n 5916 <_lv_style_list_get_color+0x62>
|
|
58ec: 3101 adds r1, #1
|
|
58ee: b2c9 uxtb r1, r1
|
|
58f0: e017 b.n 5922 <_lv_style_list_get_color+0x6e>
|
|
*res = value_act;
|
|
58f2: ab03 add r3, sp, #12
|
|
58f4: 881b ldrh r3, [r3, #0]
|
|
58f6: 464a mov r2, r9
|
|
58f8: 8013 strh r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
58fa: 2001 movs r0, #1
|
|
58fc: e033 b.n 5966 <_lv_style_list_get_color+0xb2>
|
|
else if(weight_act > weight) {
|
|
58fe: 42b3 cmp r3, r6
|
|
5900: dd04 ble.n 590c <_lv_style_list_get_color+0x58>
|
|
*res = value_act;
|
|
5902: ab03 add r3, sp, #12
|
|
5904: 881b ldrh r3, [r3, #0]
|
|
5906: 464a mov r2, r9
|
|
5908: 8013 strh r3, [r2, #0]
|
|
weight = weight_act;
|
|
590a: 0006 movs r6, r0
|
|
590c: 3401 adds r4, #1
|
|
590e: b224 sxth r4, r4
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
5910: 792a ldrb r2, [r5, #4]
|
|
5912: 4294 cmp r4, r2
|
|
5914: da24 bge.n 5960 <_lv_style_list_get_color+0xac>
|
|
lv_style_t * class = lv_style_list_get_style(list, ci);
|
|
5916: b2e1 uxtb r1, r4
|
|
5918: 796b ldrb r3, [r5, #5]
|
|
591a: 4650 mov r0, sl
|
|
591c: 4003 ands r3, r0
|
|
591e: 2b06 cmp r3, #6
|
|
5920: d0e4 beq.n 58ec <_lv_style_list_get_color+0x38>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
5922: 2000 movs r0, #0
|
|
5924: 2a00 cmp r2, #0
|
|
5926: d004 beq.n 5932 <_lv_style_list_get_color+0x7e>
|
|
5928: 4291 cmp r1, r2
|
|
592a: d202 bcs.n 5932 <_lv_style_list_get_color+0x7e>
|
|
return list->style_list[id];
|
|
592c: 0089 lsls r1, r1, #2
|
|
592e: 682b ldr r3, [r5, #0]
|
|
5930: 58c8 ldr r0, [r1, r3]
|
|
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
|
|
5932: aa03 add r2, sp, #12
|
|
5934: 9901 ldr r1, [sp, #4]
|
|
5936: 47b8 blx r7
|
|
5938: 0003 movs r3, r0
|
|
if(weight_act == weight_goal) {
|
|
593a: 4580 cmp r8, r0
|
|
593c: d0d9 beq.n 58f2 <_lv_style_list_get_color+0x3e>
|
|
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
|
|
593e: 796a ldrb r2, [r5, #5]
|
|
5940: 0791 lsls r1, r2, #30
|
|
5942: d5dc bpl.n 58fe <_lv_style_list_get_color+0x4a>
|
|
5944: 2800 cmp r0, #0
|
|
5946: dbda blt.n 58fe <_lv_style_list_get_color+0x4a>
|
|
5948: 2c00 cmp r4, #0
|
|
594a: d1d8 bne.n 58fe <_lv_style_list_get_color+0x4a>
|
|
594c: 0752 lsls r2, r2, #29
|
|
594e: d4d6 bmi.n 58fe <_lv_style_list_get_color+0x4a>
|
|
*res = value_act;
|
|
5950: ab03 add r3, sp, #12
|
|
5952: 881b ldrh r3, [r3, #0]
|
|
5954: 464a mov r2, r9
|
|
5956: 8013 strh r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
5958: 2001 movs r0, #1
|
|
595a: e004 b.n 5966 <_lv_style_list_get_color+0xb2>
|
|
int16_t weight = -1;
|
|
595c: 2601 movs r6, #1
|
|
595e: 4276 negs r6, r6
|
|
if(weight >= 0) return LV_RES_OK;
|
|
5960: 43f0 mvns r0, r6
|
|
5962: b280 uxth r0, r0
|
|
if(list == NULL) return LV_RES_INV;
|
|
5964: 0bc0 lsrs r0, r0, #15
|
|
}
|
|
5966: b004 add sp, #16
|
|
5968: bc1c pop {r2, r3, r4}
|
|
596a: 4690 mov r8, r2
|
|
596c: 4699 mov r9, r3
|
|
596e: 46a2 mov sl, r4
|
|
5970: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(list == NULL) return LV_RES_INV;
|
|
5972: 2000 movs r0, #0
|
|
5974: e7f7 b.n 5966 <_lv_style_list_get_color+0xb2>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
5976: 2000 movs r0, #0
|
|
5978: e7f5 b.n 5966 <_lv_style_list_get_color+0xb2>
|
|
597a: 46c0 nop ; (mov r8, r8)
|
|
597c: 0000543f .word 0x0000543f
|
|
|
|
00005980 <_lv_style_list_get_opa>:
|
|
{
|
|
5980: b5f0 push {r4, r5, r6, r7, lr}
|
|
5982: 46d6 mov lr, sl
|
|
5984: 464f mov r7, r9
|
|
5986: 4646 mov r6, r8
|
|
5988: b5c0 push {r6, r7, lr}
|
|
598a: b084 sub sp, #16
|
|
598c: 1e05 subs r5, r0, #0
|
|
598e: 9101 str r1, [sp, #4]
|
|
5990: 4691 mov r9, r2
|
|
if(list == NULL) return LV_RES_INV;
|
|
5992: d058 beq.n 5a46 <_lv_style_list_get_opa+0xc6>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
5994: 6803 ldr r3, [r0, #0]
|
|
5996: 2b00 cmp r3, #0
|
|
5998: d057 beq.n 5a4a <_lv_style_list_get_opa+0xca>
|
|
int16_t weight_goal = attr.full;
|
|
599a: 0a0b lsrs r3, r1, #8
|
|
599c: 4698 mov r8, r3
|
|
lv_opa_t value_act = LV_OPA_TRANSP;
|
|
599e: 2200 movs r2, #0
|
|
59a0: ab02 add r3, sp, #8
|
|
59a2: 71da strb r2, [r3, #7]
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
59a4: 7902 ldrb r2, [r0, #4]
|
|
59a6: 2a00 cmp r2, #0
|
|
59a8: dd42 ble.n 5a30 <_lv_style_list_get_opa+0xb0>
|
|
59aa: 2400 movs r4, #0
|
|
59ac: 2601 movs r6, #1
|
|
59ae: 4276 negs r6, r6
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
59b0: 2306 movs r3, #6
|
|
59b2: 469a mov sl, r3
|
|
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
|
|
59b4: 4f26 ldr r7, [pc, #152] ; (5a50 <_lv_style_list_get_opa+0xd0>)
|
|
59b6: e016 b.n 59e6 <_lv_style_list_get_opa+0x66>
|
|
59b8: 3101 adds r1, #1
|
|
59ba: b2c9 uxtb r1, r1
|
|
59bc: e019 b.n 59f2 <_lv_style_list_get_opa+0x72>
|
|
*res = value_act;
|
|
59be: ab02 add r3, sp, #8
|
|
59c0: 3307 adds r3, #7
|
|
59c2: 781b ldrb r3, [r3, #0]
|
|
59c4: 464a mov r2, r9
|
|
59c6: 7013 strb r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
59c8: 2001 movs r0, #1
|
|
59ca: e036 b.n 5a3a <_lv_style_list_get_opa+0xba>
|
|
else if(weight_act > weight) {
|
|
59cc: 42b3 cmp r3, r6
|
|
59ce: dd05 ble.n 59dc <_lv_style_list_get_opa+0x5c>
|
|
*res = value_act;
|
|
59d0: ab02 add r3, sp, #8
|
|
59d2: 3307 adds r3, #7
|
|
59d4: 781b ldrb r3, [r3, #0]
|
|
59d6: 464a mov r2, r9
|
|
59d8: 7013 strb r3, [r2, #0]
|
|
weight = weight_act;
|
|
59da: 0006 movs r6, r0
|
|
59dc: 3401 adds r4, #1
|
|
59de: b224 sxth r4, r4
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
59e0: 792a ldrb r2, [r5, #4]
|
|
59e2: 4294 cmp r4, r2
|
|
59e4: da26 bge.n 5a34 <_lv_style_list_get_opa+0xb4>
|
|
lv_style_t * class = lv_style_list_get_style(list, ci);
|
|
59e6: b2e1 uxtb r1, r4
|
|
59e8: 796b ldrb r3, [r5, #5]
|
|
59ea: 4650 mov r0, sl
|
|
59ec: 4003 ands r3, r0
|
|
59ee: 2b06 cmp r3, #6
|
|
59f0: d0e2 beq.n 59b8 <_lv_style_list_get_opa+0x38>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
59f2: 2000 movs r0, #0
|
|
59f4: 2a00 cmp r2, #0
|
|
59f6: d004 beq.n 5a02 <_lv_style_list_get_opa+0x82>
|
|
59f8: 4291 cmp r1, r2
|
|
59fa: d202 bcs.n 5a02 <_lv_style_list_get_opa+0x82>
|
|
return list->style_list[id];
|
|
59fc: 0089 lsls r1, r1, #2
|
|
59fe: 682b ldr r3, [r5, #0]
|
|
5a00: 58c8 ldr r0, [r1, r3]
|
|
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
|
|
5a02: ab02 add r3, sp, #8
|
|
5a04: 1dda adds r2, r3, #7
|
|
5a06: 9901 ldr r1, [sp, #4]
|
|
5a08: 47b8 blx r7
|
|
5a0a: 0003 movs r3, r0
|
|
if(weight_act == weight_goal) {
|
|
5a0c: 4580 cmp r8, r0
|
|
5a0e: d0d6 beq.n 59be <_lv_style_list_get_opa+0x3e>
|
|
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
|
|
5a10: 796a ldrb r2, [r5, #5]
|
|
5a12: 0791 lsls r1, r2, #30
|
|
5a14: d5da bpl.n 59cc <_lv_style_list_get_opa+0x4c>
|
|
5a16: 2800 cmp r0, #0
|
|
5a18: dbd8 blt.n 59cc <_lv_style_list_get_opa+0x4c>
|
|
5a1a: 2c00 cmp r4, #0
|
|
5a1c: d1d6 bne.n 59cc <_lv_style_list_get_opa+0x4c>
|
|
5a1e: 0752 lsls r2, r2, #29
|
|
5a20: d4d4 bmi.n 59cc <_lv_style_list_get_opa+0x4c>
|
|
*res = value_act;
|
|
5a22: ab02 add r3, sp, #8
|
|
5a24: 3307 adds r3, #7
|
|
5a26: 781b ldrb r3, [r3, #0]
|
|
5a28: 464a mov r2, r9
|
|
5a2a: 7013 strb r3, [r2, #0]
|
|
return LV_RES_OK;
|
|
5a2c: 2001 movs r0, #1
|
|
5a2e: e004 b.n 5a3a <_lv_style_list_get_opa+0xba>
|
|
int16_t weight = -1;
|
|
5a30: 2601 movs r6, #1
|
|
5a32: 4276 negs r6, r6
|
|
if(weight >= 0) return LV_RES_OK;
|
|
5a34: 43f0 mvns r0, r6
|
|
5a36: b280 uxth r0, r0
|
|
if(list == NULL) return LV_RES_INV;
|
|
5a38: 0bc0 lsrs r0, r0, #15
|
|
}
|
|
5a3a: b004 add sp, #16
|
|
5a3c: bc1c pop {r2, r3, r4}
|
|
5a3e: 4690 mov r8, r2
|
|
5a40: 4699 mov r9, r3
|
|
5a42: 46a2 mov sl, r4
|
|
5a44: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(list == NULL) return LV_RES_INV;
|
|
5a46: 2000 movs r0, #0
|
|
5a48: e7f7 b.n 5a3a <_lv_style_list_get_opa+0xba>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
5a4a: 2000 movs r0, #0
|
|
5a4c: e7f5 b.n 5a3a <_lv_style_list_get_opa+0xba>
|
|
5a4e: 46c0 nop ; (mov r8, r8)
|
|
5a50: 00005365 .word 0x00005365
|
|
|
|
00005a54 <_lv_style_list_get_ptr>:
|
|
{
|
|
5a54: b5f0 push {r4, r5, r6, r7, lr}
|
|
5a56: 46d6 mov lr, sl
|
|
5a58: 464f mov r7, r9
|
|
5a5a: 4646 mov r6, r8
|
|
5a5c: b5c0 push {r6, r7, lr}
|
|
5a5e: b084 sub sp, #16
|
|
5a60: 0005 movs r5, r0
|
|
5a62: 9101 str r1, [sp, #4]
|
|
5a64: 0017 movs r7, r2
|
|
if(list == NULL) return LV_RES_INV;
|
|
5a66: 2800 cmp r0, #0
|
|
5a68: d04c beq.n 5b04 <_lv_style_list_get_ptr+0xb0>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
5a6a: 6803 ldr r3, [r0, #0]
|
|
5a6c: 2b00 cmp r3, #0
|
|
5a6e: d04b beq.n 5b08 <_lv_style_list_get_ptr+0xb4>
|
|
int16_t weight_goal = attr.full;
|
|
5a70: 0a0b lsrs r3, r1, #8
|
|
5a72: 4698 mov r8, r3
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
5a74: 7902 ldrb r2, [r0, #4]
|
|
5a76: 2a00 cmp r2, #0
|
|
5a78: dd39 ble.n 5aee <_lv_style_list_get_ptr+0x9a>
|
|
5a7a: 2400 movs r4, #0
|
|
5a7c: 2601 movs r6, #1
|
|
5a7e: 4276 negs r6, r6
|
|
if(list->has_trans && list->skip_trans) id++;
|
|
5a80: 2306 movs r3, #6
|
|
5a82: 469a mov sl, r3
|
|
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
|
|
5a84: 4b21 ldr r3, [pc, #132] ; (5b0c <_lv_style_list_get_ptr+0xb8>)
|
|
5a86: 4699 mov r9, r3
|
|
5a88: e010 b.n 5aac <_lv_style_list_get_ptr+0x58>
|
|
5a8a: 3101 adds r1, #1
|
|
5a8c: b2c9 uxtb r1, r1
|
|
5a8e: e013 b.n 5ab8 <_lv_style_list_get_ptr+0x64>
|
|
*res = value_act;
|
|
5a90: 9b03 ldr r3, [sp, #12]
|
|
5a92: 603b str r3, [r7, #0]
|
|
return LV_RES_OK;
|
|
5a94: 2001 movs r0, #1
|
|
5a96: e02f b.n 5af8 <_lv_style_list_get_ptr+0xa4>
|
|
else if(weight_act > weight) {
|
|
5a98: 42b3 cmp r3, r6
|
|
5a9a: dd02 ble.n 5aa2 <_lv_style_list_get_ptr+0x4e>
|
|
*res = value_act;
|
|
5a9c: 9b03 ldr r3, [sp, #12]
|
|
5a9e: 603b str r3, [r7, #0]
|
|
weight = weight_act;
|
|
5aa0: 0006 movs r6, r0
|
|
5aa2: 3401 adds r4, #1
|
|
5aa4: b224 sxth r4, r4
|
|
for(ci = 0; ci < list->style_cnt; ci++) {
|
|
5aa6: 792a ldrb r2, [r5, #4]
|
|
5aa8: 4294 cmp r4, r2
|
|
5aaa: da22 bge.n 5af2 <_lv_style_list_get_ptr+0x9e>
|
|
lv_style_t * class = lv_style_list_get_style(list, ci);
|
|
5aac: b2e1 uxtb r1, r4
|
|
5aae: 796b ldrb r3, [r5, #5]
|
|
5ab0: 4650 mov r0, sl
|
|
5ab2: 4003 ands r3, r0
|
|
5ab4: 2b06 cmp r3, #6
|
|
5ab6: d0e8 beq.n 5a8a <_lv_style_list_get_ptr+0x36>
|
|
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
|
|
5ab8: 2000 movs r0, #0
|
|
5aba: 2a00 cmp r2, #0
|
|
5abc: d004 beq.n 5ac8 <_lv_style_list_get_ptr+0x74>
|
|
5abe: 4291 cmp r1, r2
|
|
5ac0: d202 bcs.n 5ac8 <_lv_style_list_get_ptr+0x74>
|
|
return list->style_list[id];
|
|
5ac2: 0089 lsls r1, r1, #2
|
|
5ac4: 682b ldr r3, [r5, #0]
|
|
5ac6: 58c8 ldr r0, [r1, r3]
|
|
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
|
|
5ac8: aa03 add r2, sp, #12
|
|
5aca: 9901 ldr r1, [sp, #4]
|
|
5acc: 47c8 blx r9
|
|
5ace: 0003 movs r3, r0
|
|
if(weight_act == weight_goal) {
|
|
5ad0: 4580 cmp r8, r0
|
|
5ad2: d0dd beq.n 5a90 <_lv_style_list_get_ptr+0x3c>
|
|
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
|
|
5ad4: 796a ldrb r2, [r5, #5]
|
|
5ad6: 0791 lsls r1, r2, #30
|
|
5ad8: d5de bpl.n 5a98 <_lv_style_list_get_ptr+0x44>
|
|
5ada: 2800 cmp r0, #0
|
|
5adc: dbdc blt.n 5a98 <_lv_style_list_get_ptr+0x44>
|
|
5ade: 2c00 cmp r4, #0
|
|
5ae0: d1da bne.n 5a98 <_lv_style_list_get_ptr+0x44>
|
|
5ae2: 0752 lsls r2, r2, #29
|
|
5ae4: d4d8 bmi.n 5a98 <_lv_style_list_get_ptr+0x44>
|
|
*res = value_act;
|
|
5ae6: 9b03 ldr r3, [sp, #12]
|
|
5ae8: 603b str r3, [r7, #0]
|
|
return LV_RES_OK;
|
|
5aea: 2001 movs r0, #1
|
|
5aec: e004 b.n 5af8 <_lv_style_list_get_ptr+0xa4>
|
|
int16_t weight = -1;
|
|
5aee: 2601 movs r6, #1
|
|
5af0: 4276 negs r6, r6
|
|
if(weight >= 0) return LV_RES_OK;
|
|
5af2: 43f0 mvns r0, r6
|
|
5af4: b280 uxth r0, r0
|
|
if(list == NULL) return LV_RES_INV;
|
|
5af6: 0bc0 lsrs r0, r0, #15
|
|
}
|
|
5af8: b004 add sp, #16
|
|
5afa: bc1c pop {r2, r3, r4}
|
|
5afc: 4690 mov r8, r2
|
|
5afe: 4699 mov r9, r3
|
|
5b00: 46a2 mov sl, r4
|
|
5b02: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(list == NULL) return LV_RES_INV;
|
|
5b04: 2000 movs r0, #0
|
|
5b06: e7f7 b.n 5af8 <_lv_style_list_get_ptr+0xa4>
|
|
if(list->style_list == NULL) return LV_RES_INV;
|
|
5b08: 2000 movs r0, #0
|
|
5b0a: e7f5 b.n 5af8 <_lv_style_list_get_ptr+0xa4>
|
|
5b0c: 0000551f .word 0x0000551f
|
|
|
|
00005b10 <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)
|
|
{
|
|
5b10: b5f0 push {r4, r5, r6, r7, lr}
|
|
5b12: 1c05 adds r5, r0, #0
|
|
5b14: 06cb lsls r3, r1, #27
|
|
5b16: 0edb lsrs r3, r3, #27
|
|
5b18: 054f lsls r7, r1, #21
|
|
5b1a: 0ebf lsrs r7, r7, #26
|
|
5b1c: 0409 lsls r1, r1, #16
|
|
5b1e: 0ec9 lsrs r1, r1, #27
|
|
|
|
if(opa <= LV_OPA_MIN) return bg;
|
|
5b20: 2a05 cmp r2, #5
|
|
5b22: d93d bls.n 5ba0 <color_blend_true_color_additive+0x90>
|
|
uint32_t tmp;
|
|
#if LV_COLOR_DEPTH == 1
|
|
tmp = bg.full + fg.full;
|
|
fg.full = LV_MATH_MIN(tmp, 1);
|
|
#else
|
|
tmp = bg.ch.red + fg.ch.red;
|
|
5b24: 0428 lsls r0, r5, #16
|
|
5b26: 0ec0 lsrs r0, r0, #27
|
|
5b28: 1840 adds r0, r0, r1
|
|
#if LV_COLOR_DEPTH == 8
|
|
fg.ch.red = LV_MATH_MIN(tmp, 7);
|
|
#elif LV_COLOR_DEPTH == 16
|
|
fg.ch.red = LV_MATH_MIN(tmp, 31);
|
|
5b2a: 281f cmp r0, #31
|
|
5b2c: d900 bls.n 5b30 <color_blend_true_color_additive+0x20>
|
|
5b2e: 201f movs r0, #31
|
|
5b30: 241f movs r4, #31
|
|
5b32: 4004 ands r4, r0
|
|
5b34: 46a4 mov ip, r4
|
|
|
|
#if LV_COLOR_DEPTH == 8
|
|
fg.ch.green = LV_MATH_MIN(tmp, 7);
|
|
#elif LV_COLOR_DEPTH == 16
|
|
#if LV_COLOR_16_SWAP == 0
|
|
tmp = bg.ch.green + fg.ch.green;
|
|
5b36: 056e lsls r6, r5, #21
|
|
5b38: 0eb6 lsrs r6, r6, #26
|
|
5b3a: 19f6 adds r6, r6, r7
|
|
fg.ch.green = LV_MATH_MIN(tmp, 63);
|
|
5b3c: 2e3f cmp r6, #63 ; 0x3f
|
|
5b3e: d900 bls.n 5b42 <color_blend_true_color_additive+0x32>
|
|
5b40: 263f movs r6, #63 ; 0x3f
|
|
5b42: 243f movs r4, #63 ; 0x3f
|
|
5b44: 4026 ands r6, r4
|
|
|
|
#elif LV_COLOR_DEPTH == 32
|
|
fg.ch.green = LV_MATH_MIN(tmp, 255);
|
|
#endif
|
|
|
|
tmp = bg.ch.blue + fg.ch.blue;
|
|
5b46: 06ed lsls r5, r5, #27
|
|
5b48: 0eed lsrs r5, r5, #27
|
|
5b4a: 18ed adds r5, r5, r3
|
|
#if LV_COLOR_DEPTH == 8
|
|
fg.ch.blue = LV_MATH_MIN(tmp, 4);
|
|
#elif LV_COLOR_DEPTH == 16
|
|
fg.ch.blue = LV_MATH_MIN(tmp, 31);
|
|
5b4c: 2d1f cmp r5, #31
|
|
5b4e: d900 bls.n 5b52 <color_blend_true_color_additive+0x42>
|
|
5b50: 251f movs r5, #31
|
|
5b52: 241f movs r4, #31
|
|
5b54: 402c ands r4, r5
|
|
#elif LV_COLOR_DEPTH == 32
|
|
fg.ch.blue = LV_MATH_MIN(tmp, 255);
|
|
#endif
|
|
#endif
|
|
|
|
if(opa == LV_OPA_COVER) return fg;
|
|
5b56: 2aff cmp r2, #255 ; 0xff
|
|
5b58: d027 beq.n 5baa <color_blend_true_color_additive+0x9a>
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
|
|
{
|
|
lv_color_t ret;
|
|
#if LV_COLOR_DEPTH != 1
|
|
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
5b5a: 25ff movs r5, #255 ; 0xff
|
|
5b5c: 1aad subs r5, r5, r2
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
5b5e: 4354 muls r4, r2
|
|
5b60: 436b muls r3, r5
|
|
5b62: 18e3 adds r3, r4, r3
|
|
5b64: 0218 lsls r0, r3, #8
|
|
5b66: 18c0 adds r0, r0, r3
|
|
5b68: 01c0 lsls r0, r0, #7
|
|
5b6a: 18c0 adds r0, r0, r3
|
|
5b6c: 0100 lsls r0, r0, #4
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
5b6e: 4356 muls r6, r2
|
|
5b70: 436f muls r7, r5
|
|
5b72: 19f7 adds r7, r6, r7
|
|
5b74: 023e lsls r6, r7, #8
|
|
5b76: 19f6 adds r6, r6, r7
|
|
5b78: 01f6 lsls r6, r6, #7
|
|
5b7a: 19f6 adds r6, r6, r7
|
|
5b7c: 00f6 lsls r6, r6, #3
|
|
5b7e: 0eb6 lsrs r6, r6, #26
|
|
5b80: 0176 lsls r6, r6, #5
|
|
5b82: 0ec0 lsrs r0, r0, #27
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
5b84: 4663 mov r3, ip
|
|
5b86: 435a muls r2, r3
|
|
5b88: 4369 muls r1, r5
|
|
5b8a: 1852 adds r2, r2, r1
|
|
5b8c: 0211 lsls r1, r2, #8
|
|
5b8e: 1889 adds r1, r1, r2
|
|
5b90: 01c9 lsls r1, r1, #7
|
|
5b92: 188a adds r2, r1, r2
|
|
5b94: 0dd2 lsrs r2, r2, #23
|
|
5b96: b2d2 uxtb r2, r2
|
|
5b98: 02d2 lsls r2, r2, #11
|
|
5b9a: 4330 orrs r0, r6
|
|
5b9c: 4310 orrs r0, r2
|
|
|
|
return lv_color_mix(fg, bg, opa);
|
|
}
|
|
5b9e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(opa <= LV_OPA_MIN) return bg;
|
|
5ba0: 0178 lsls r0, r7, #5
|
|
5ba2: 02c9 lsls r1, r1, #11
|
|
5ba4: 4318 orrs r0, r3
|
|
5ba6: 4308 orrs r0, r1
|
|
5ba8: e7f9 b.n 5b9e <color_blend_true_color_additive+0x8e>
|
|
if(opa == LV_OPA_COVER) return fg;
|
|
5baa: 0170 lsls r0, r6, #5
|
|
5bac: 4663 mov r3, ip
|
|
5bae: 02da lsls r2, r3, #11
|
|
5bb0: 4320 orrs r0, r4
|
|
5bb2: 4310 orrs r0, r2
|
|
5bb4: e7f3 b.n 5b9e <color_blend_true_color_additive+0x8e>
|
|
|
|
00005bb6 <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)
|
|
{
|
|
5bb6: b5f0 push {r4, r5, r6, r7, lr}
|
|
5bb8: 46c6 mov lr, r8
|
|
5bba: b500 push {lr}
|
|
5bbc: 1c05 adds r5, r0, #0
|
|
5bbe: 06c8 lsls r0, r1, #27
|
|
5bc0: 0ec3 lsrs r3, r0, #27
|
|
5bc2: 4698 mov r8, r3
|
|
5bc4: 054f lsls r7, r1, #21
|
|
5bc6: 0ebf lsrs r7, r7, #26
|
|
5bc8: 0409 lsls r1, r1, #16
|
|
5bca: 0ec9 lsrs r1, r1, #27
|
|
|
|
if(opa <= LV_OPA_MIN) return bg;
|
|
5bcc: 2a05 cmp r2, #5
|
|
5bce: d941 bls.n 5c54 <color_blend_true_color_subtractive+0x9e>
|
|
|
|
int32_t tmp;
|
|
tmp = bg.ch.red - fg.ch.red;
|
|
5bd0: 0428 lsls r0, r5, #16
|
|
5bd2: 0ec0 lsrs r0, r0, #27
|
|
5bd4: 1a08 subs r0, r1, r0
|
|
fg.ch.red = LV_MATH_MAX(tmp, 0);
|
|
5bd6: 43c3 mvns r3, r0
|
|
5bd8: 17db asrs r3, r3, #31
|
|
5bda: 4018 ands r0, r3
|
|
5bdc: 231f movs r3, #31
|
|
5bde: 4003 ands r3, r0
|
|
5be0: 469c mov ip, r3
|
|
|
|
#if LV_COLOR_16_SWAP == 0
|
|
tmp = bg.ch.green - fg.ch.green;
|
|
5be2: 056e lsls r6, r5, #21
|
|
5be4: 0eb6 lsrs r6, r6, #26
|
|
5be6: 1bb8 subs r0, r7, r6
|
|
fg.ch.green = LV_MATH_MAX(tmp, 0);
|
|
5be8: 43c3 mvns r3, r0
|
|
5bea: 17db asrs r3, r3, #31
|
|
5bec: 4018 ands r0, r3
|
|
5bee: 263f movs r6, #63 ; 0x3f
|
|
5bf0: 4006 ands r6, r0
|
|
tmp = LV_MATH_MAX(tmp, 0);
|
|
fg.ch.green_h = tmp >> 3;
|
|
fg.ch.green_l = tmp & 0x7;
|
|
#endif
|
|
|
|
tmp = bg.ch.blue - fg.ch.blue;
|
|
5bf2: 06ed lsls r5, r5, #27
|
|
5bf4: 0eed lsrs r5, r5, #27
|
|
5bf6: 4643 mov r3, r8
|
|
5bf8: 1b5d subs r5, r3, r5
|
|
fg.ch.blue = LV_MATH_MAX(tmp, 0);
|
|
5bfa: 43e8 mvns r0, r5
|
|
5bfc: 17c0 asrs r0, r0, #31
|
|
5bfe: 4005 ands r5, r0
|
|
5c00: 241f movs r4, #31
|
|
5c02: 402c ands r4, r5
|
|
|
|
if(opa == LV_OPA_COVER) return fg;
|
|
5c04: 2aff cmp r2, #255 ; 0xff
|
|
5c06: d02b beq.n 5c60 <color_blend_true_color_subtractive+0xaa>
|
|
5c08: 25ff movs r5, #255 ; 0xff
|
|
5c0a: 1aad subs r5, r5, r2
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
5c0c: 4354 muls r4, r2
|
|
5c0e: 4640 mov r0, r8
|
|
5c10: 4368 muls r0, r5
|
|
5c12: 1824 adds r4, r4, r0
|
|
5c14: 0220 lsls r0, r4, #8
|
|
5c16: 1900 adds r0, r0, r4
|
|
5c18: 01c0 lsls r0, r0, #7
|
|
5c1a: 1900 adds r0, r0, r4
|
|
5c1c: 0100 lsls r0, r0, #4
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
5c1e: 4356 muls r6, r2
|
|
5c20: 436f muls r7, r5
|
|
5c22: 19f7 adds r7, r6, r7
|
|
5c24: 023e lsls r6, r7, #8
|
|
5c26: 19f6 adds r6, r6, r7
|
|
5c28: 01f6 lsls r6, r6, #7
|
|
5c2a: 19f6 adds r6, r6, r7
|
|
5c2c: 00f6 lsls r6, r6, #3
|
|
5c2e: 0eb6 lsrs r6, r6, #26
|
|
5c30: 0176 lsls r6, r6, #5
|
|
5c32: 0ec0 lsrs r0, r0, #27
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
5c34: 4663 mov r3, ip
|
|
5c36: 435a muls r2, r3
|
|
5c38: 4369 muls r1, r5
|
|
5c3a: 1852 adds r2, r2, r1
|
|
5c3c: 0211 lsls r1, r2, #8
|
|
5c3e: 1889 adds r1, r1, r2
|
|
5c40: 01c9 lsls r1, r1, #7
|
|
5c42: 188a adds r2, r1, r2
|
|
5c44: 0dd2 lsrs r2, r2, #23
|
|
5c46: b2d2 uxtb r2, r2
|
|
5c48: 02d2 lsls r2, r2, #11
|
|
5c4a: 4330 orrs r0, r6
|
|
5c4c: 4310 orrs r0, r2
|
|
|
|
return lv_color_mix(fg, bg, opa);
|
|
}
|
|
5c4e: bc04 pop {r2}
|
|
5c50: 4690 mov r8, r2
|
|
5c52: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(opa <= LV_OPA_MIN) return bg;
|
|
5c54: 0178 lsls r0, r7, #5
|
|
5c56: 02c9 lsls r1, r1, #11
|
|
5c58: 4303 orrs r3, r0
|
|
5c5a: 0018 movs r0, r3
|
|
5c5c: 4308 orrs r0, r1
|
|
5c5e: e7f6 b.n 5c4e <color_blend_true_color_subtractive+0x98>
|
|
if(opa == LV_OPA_COVER) return fg;
|
|
5c60: 0176 lsls r6, r6, #5
|
|
5c62: 4663 mov r3, ip
|
|
5c64: 02d8 lsls r0, r3, #11
|
|
5c66: 4334 orrs r4, r6
|
|
5c68: 4320 orrs r0, r4
|
|
5c6a: e7f0 b.n 5c4e <color_blend_true_color_subtractive+0x98>
|
|
|
|
00005c6c <_lv_blend_fill>:
|
|
{
|
|
5c6c: b5f0 push {r4, r5, r6, r7, lr}
|
|
5c6e: 46de mov lr, fp
|
|
5c70: 4657 mov r7, sl
|
|
5c72: 464e mov r6, r9
|
|
5c74: 4645 mov r5, r8
|
|
5c76: b5e0 push {r5, r6, r7, lr}
|
|
5c78: b093 sub sp, #76 ; 0x4c
|
|
5c7a: 0004 movs r4, r0
|
|
5c7c: 000d movs r5, r1
|
|
5c7e: 4669 mov r1, sp
|
|
5c80: 828a strh r2, [r1, #20]
|
|
5c82: 9306 str r3, [sp, #24]
|
|
5c84: ab1c add r3, sp, #112 ; 0x70
|
|
5c86: 781f ldrb r7, [r3, #0]
|
|
5c88: ab1d add r3, sp, #116 ; 0x74
|
|
5c8a: 781b ldrb r3, [r3, #0]
|
|
5c8c: 469b mov fp, r3
|
|
5c8e: ab1e add r3, sp, #120 ; 0x78
|
|
5c90: 781e ldrb r6, [r3, #0]
|
|
if(opa < LV_OPA_MIN) return;
|
|
5c92: 465b mov r3, fp
|
|
5c94: 2b04 cmp r3, #4
|
|
5c96: d901 bls.n 5c9c <_lv_blend_fill+0x30>
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
|
|
5c98: 2f00 cmp r7, #0
|
|
5c9a: d106 bne.n 5caa <_lv_blend_fill+0x3e>
|
|
}
|
|
5c9c: b013 add sp, #76 ; 0x4c
|
|
5c9e: bc3c pop {r2, r3, r4, r5}
|
|
5ca0: 4690 mov r8, r2
|
|
5ca2: 4699 mov r9, r3
|
|
5ca4: 46a2 mov sl, r4
|
|
5ca6: 46ab mov fp, r5
|
|
5ca8: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
5caa: 4bbf ldr r3, [pc, #764] ; (5fa8 <_lv_blend_fill+0x33c>)
|
|
5cac: 4798 blx r3
|
|
5cae: 4682 mov sl, r0
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
5cb0: 4bbe ldr r3, [pc, #760] ; (5fac <_lv_blend_fill+0x340>)
|
|
5cb2: 4798 blx r3
|
|
5cb4: 4680 mov r8, r0
|
|
lv_color_t * disp_buf = vdb->buf_act;
|
|
5cb6: 6883 ldr r3, [r0, #8]
|
|
5cb8: 9304 str r3, [sp, #16]
|
|
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
|
|
5cba: 002a movs r2, r5
|
|
5cbc: 0021 movs r1, r4
|
|
5cbe: a810 add r0, sp, #64 ; 0x40
|
|
5cc0: 4bbb ldr r3, [pc, #748] ; (5fb0 <_lv_blend_fill+0x344>)
|
|
5cc2: 4798 blx r3
|
|
if(!is_common) return;
|
|
5cc4: 2800 cmp r0, #0
|
|
5cc6: d0e9 beq.n 5c9c <_lv_blend_fill+0x30>
|
|
draw_area.x1 -= disp_area->x1;
|
|
5cc8: 4643 mov r3, r8
|
|
5cca: 8a1a ldrh r2, [r3, #16]
|
|
5ccc: ab10 add r3, sp, #64 ; 0x40
|
|
5cce: 8819 ldrh r1, [r3, #0]
|
|
5cd0: 1a89 subs r1, r1, r2
|
|
5cd2: b289 uxth r1, r1
|
|
5cd4: 910b str r1, [sp, #44] ; 0x2c
|
|
5cd6: 468c mov ip, r1
|
|
5cd8: b208 sxth r0, r1
|
|
5cda: 900a str r0, [sp, #40] ; 0x28
|
|
5cdc: 8018 strh r0, [r3, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
5cde: 4640 mov r0, r8
|
|
5ce0: 8a41 ldrh r1, [r0, #18]
|
|
5ce2: 885d ldrh r5, [r3, #2]
|
|
5ce4: 1a6d subs r5, r5, r1
|
|
5ce6: b22d sxth r5, r5
|
|
5ce8: 805d strh r5, [r3, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
5cea: 8898 ldrh r0, [r3, #4]
|
|
5cec: 1a80 subs r0, r0, r2
|
|
5cee: b280 uxth r0, r0
|
|
5cf0: 8098 strh r0, [r3, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
5cf2: 88da ldrh r2, [r3, #6]
|
|
5cf4: 1a52 subs r2, r2, r1
|
|
5cf6: b212 sxth r2, r2
|
|
5cf8: 4691 mov r9, r2
|
|
5cfa: 80da strh r2, [r3, #6]
|
|
if(mask && disp->driver.antialiasing == 0)
|
|
5cfc: 9a06 ldr r2, [sp, #24]
|
|
5cfe: 2a00 cmp r2, #0
|
|
5d00: d018 beq.n 5d34 <_lv_blend_fill+0xc8>
|
|
5d02: 4653 mov r3, sl
|
|
5d04: 7a1b ldrb r3, [r3, #8]
|
|
5d06: 07db lsls r3, r3, #31
|
|
5d08: d414 bmi.n 5d34 <_lv_blend_fill+0xc8>
|
|
* @param area_p pointer to an area
|
|
* @return the width of the area (if x1 == x2 -> width = 1)
|
|
*/
|
|
static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p)
|
|
{
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
5d0a: 1c41 adds r1, r0, #1
|
|
5d0c: 4663 mov r3, ip
|
|
5d0e: 1ac9 subs r1, r1, r3
|
|
5d10: b209 sxth r1, r1
|
|
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
|
|
5d12: 2900 cmp r1, #0
|
|
5d14: dd0e ble.n 5d34 <_lv_blend_fill+0xc8>
|
|
5d16: 0013 movs r3, r2
|
|
5d18: 4694 mov ip, r2
|
|
5d1a: 4461 add r1, ip
|
|
5d1c: 2480 movs r4, #128 ; 0x80
|
|
5d1e: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
5d20: 4694 mov ip, r2
|
|
5d22: 781a ldrb r2, [r3, #0]
|
|
5d24: 4294 cmp r4, r2
|
|
5d26: 4192 sbcs r2, r2
|
|
5d28: 701a strb r2, [r3, #0]
|
|
5d2a: 3301 adds r3, #1
|
|
5d2c: 428b cmp r3, r1
|
|
5d2e: d1f8 bne.n 5d22 <_lv_blend_fill+0xb6>
|
|
5d30: 4663 mov r3, ip
|
|
5d32: 930a str r3, [sp, #40] ; 0x28
|
|
if(disp->driver.set_px_cb) {
|
|
5d34: 4653 mov r3, sl
|
|
5d36: 695b ldr r3, [r3, #20]
|
|
5d38: 2b00 cmp r3, #0
|
|
5d3a: d100 bne.n 5d3e <_lv_blend_fill+0xd2>
|
|
5d3c: e08c b.n 5e58 <_lv_blend_fill+0x1ec>
|
|
5d3e: 466b mov r3, sp
|
|
5d40: 8a9e ldrh r6, [r3, #20]
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
5d42: 4b99 ldr r3, [pc, #612] ; (5fa8 <_lv_blend_fill+0x33c>)
|
|
5d44: 4798 blx r3
|
|
5d46: 0005 movs r5, r0
|
|
5d48: 4643 mov r3, r8
|
|
5d4a: 8a9b ldrh r3, [r3, #20]
|
|
5d4c: 3301 adds r3, #1
|
|
5d4e: 4642 mov r2, r8
|
|
5d50: 8a12 ldrh r2, [r2, #16]
|
|
5d52: 1a9b subs r3, r3, r2
|
|
5d54: b21b sxth r3, r3
|
|
5d56: 9305 str r3, [sp, #20]
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
5d58: 2f01 cmp r7, #1
|
|
5d5a: d046 beq.n 5dea <_lv_blend_fill+0x17e>
|
|
const lv_opa_t * mask_tmp = mask - draw_area->x1;
|
|
5d5c: aa10 add r2, sp, #64 ; 0x40
|
|
5d5e: 2300 movs r3, #0
|
|
5d60: 5ed1 ldrsh r1, [r2, r3]
|
|
5d62: 9b06 ldr r3, [sp, #24]
|
|
5d64: 1a5b subs r3, r3, r1
|
|
5d66: 4698 mov r8, r3
|
|
5d68: 8893 ldrh r3, [r2, #4]
|
|
5d6a: 3301 adds r3, #1
|
|
5d6c: 1a5b subs r3, r3, r1
|
|
5d6e: b21b sxth r3, r3
|
|
5d70: 9308 str r3, [sp, #32]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5d72: 2102 movs r1, #2
|
|
5d74: 5e53 ldrsh r3, [r2, r1]
|
|
5d76: 0019 movs r1, r3
|
|
5d78: 9307 str r3, [sp, #28]
|
|
5d7a: 2306 movs r3, #6
|
|
5d7c: 5ed3 ldrsh r3, [r2, r3]
|
|
5d7e: 4299 cmp r1, r3
|
|
5d80: dd00 ble.n 5d84 <_lv_blend_fill+0x118>
|
|
5d82: e78b b.n 5c9c <_lv_blend_fill+0x30>
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5d84: af10 add r7, sp, #64 ; 0x40
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
|
|
5d86: ab01 add r3, sp, #4
|
|
5d88: 469a mov sl, r3
|
|
5d8a: 46b1 mov r9, r6
|
|
5d8c: 4646 mov r6, r8
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5d8e: 2300 movs r3, #0
|
|
5d90: 5efc ldrsh r4, [r7, r3]
|
|
5d92: 2204 movs r2, #4
|
|
5d94: 5ebb ldrsh r3, [r7, r2]
|
|
5d96: 429c cmp r4, r3
|
|
5d98: dc1b bgt.n 5dd2 <_lv_blend_fill+0x166>
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
|
|
5d9a: 466b mov r3, sp
|
|
5d9c: 221c movs r2, #28
|
|
5d9e: 5e9b ldrsh r3, [r3, r2]
|
|
5da0: 4698 mov r8, r3
|
|
5da2: 9606 str r6, [sp, #24]
|
|
5da4: b223 sxth r3, r4
|
|
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
|
|
5da6: 9a06 ldr r2, [sp, #24]
|
|
5da8: 5d12 ldrb r2, [r2, r4]
|
|
5daa: 4659 mov r1, fp
|
|
5dac: 434a muls r2, r1
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
|
|
5dae: 0a12 lsrs r2, r2, #8
|
|
5db0: 9202 str r2, [sp, #8]
|
|
5db2: 4652 mov r2, sl
|
|
5db4: 4649 mov r1, r9
|
|
5db6: 8011 strh r1, [r2, #0]
|
|
5db8: 4642 mov r2, r8
|
|
5dba: 9200 str r2, [sp, #0]
|
|
5dbc: 9a05 ldr r2, [sp, #20]
|
|
5dbe: 9904 ldr r1, [sp, #16]
|
|
5dc0: 0028 movs r0, r5
|
|
5dc2: 696e ldr r6, [r5, #20]
|
|
5dc4: 47b0 blx r6
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5dc6: 3401 adds r4, #1
|
|
5dc8: 2204 movs r2, #4
|
|
5dca: 5ebb ldrsh r3, [r7, r2]
|
|
5dcc: 429c cmp r4, r3
|
|
5dce: dde9 ble.n 5da4 <_lv_blend_fill+0x138>
|
|
5dd0: 9e06 ldr r6, [sp, #24]
|
|
5dd2: 9b08 ldr r3, [sp, #32]
|
|
5dd4: 469c mov ip, r3
|
|
5dd6: 4466 add r6, ip
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5dd8: 9b07 ldr r3, [sp, #28]
|
|
5dda: 3301 adds r3, #1
|
|
5ddc: 001a movs r2, r3
|
|
5dde: 9307 str r3, [sp, #28]
|
|
5de0: 2106 movs r1, #6
|
|
5de2: 5e7b ldrsh r3, [r7, r1]
|
|
5de4: 429a cmp r2, r3
|
|
5de6: ddd2 ble.n 5d8e <_lv_blend_fill+0x122>
|
|
5de8: e758 b.n 5c9c <_lv_blend_fill+0x30>
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5dea: ab10 add r3, sp, #64 ; 0x40
|
|
5dec: 2102 movs r1, #2
|
|
5dee: 5e5a ldrsh r2, [r3, r1]
|
|
5df0: 4692 mov sl, r2
|
|
5df2: 2206 movs r2, #6
|
|
5df4: 5e9b ldrsh r3, [r3, r2]
|
|
5df6: 459a cmp sl, r3
|
|
5df8: dd00 ble.n 5dfc <_lv_blend_fill+0x190>
|
|
5dfa: e74f b.n 5c9c <_lv_blend_fill+0x30>
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5dfc: ac10 add r4, sp, #64 ; 0x40
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
|
|
5dfe: ab01 add r3, sp, #4
|
|
5e00: 4699 mov r9, r3
|
|
5e02: 46b0 mov r8, r6
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5e04: 2300 movs r3, #0
|
|
5e06: 5ee7 ldrsh r7, [r4, r3]
|
|
5e08: 2204 movs r2, #4
|
|
5e0a: 5ea3 ldrsh r3, [r4, r2]
|
|
5e0c: 429f cmp r7, r3
|
|
5e0e: dc1b bgt.n 5e48 <_lv_blend_fill+0x1dc>
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
|
|
5e10: 4653 mov r3, sl
|
|
5e12: b21e sxth r6, r3
|
|
5e14: 4642 mov r2, r8
|
|
5e16: 4669 mov r1, sp
|
|
5e18: 830a strh r2, [r1, #24]
|
|
5e1a: 46b0 mov r8, r6
|
|
5e1c: b23b sxth r3, r7
|
|
5e1e: 465a mov r2, fp
|
|
5e20: 9202 str r2, [sp, #8]
|
|
5e22: 464a mov r2, r9
|
|
5e24: 4669 mov r1, sp
|
|
5e26: 8b09 ldrh r1, [r1, #24]
|
|
5e28: 8011 strh r1, [r2, #0]
|
|
5e2a: 4642 mov r2, r8
|
|
5e2c: 9200 str r2, [sp, #0]
|
|
5e2e: 9a05 ldr r2, [sp, #20]
|
|
5e30: 9904 ldr r1, [sp, #16]
|
|
5e32: 0028 movs r0, r5
|
|
5e34: 696e ldr r6, [r5, #20]
|
|
5e36: 47b0 blx r6
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
5e38: 3701 adds r7, #1
|
|
5e3a: 2204 movs r2, #4
|
|
5e3c: 5ea3 ldrsh r3, [r4, r2]
|
|
5e3e: 429f cmp r7, r3
|
|
5e40: ddec ble.n 5e1c <_lv_blend_fill+0x1b0>
|
|
5e42: 466b mov r3, sp
|
|
5e44: 8b1b ldrh r3, [r3, #24]
|
|
5e46: 4698 mov r8, r3
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5e48: 2301 movs r3, #1
|
|
5e4a: 469c mov ip, r3
|
|
5e4c: 44e2 add sl, ip
|
|
5e4e: 2206 movs r2, #6
|
|
5e50: 5ea3 ldrsh r3, [r4, r2]
|
|
5e52: 459a cmp sl, r3
|
|
5e54: ddd6 ble.n 5e04 <_lv_blend_fill+0x198>
|
|
5e56: e721 b.n 5c9c <_lv_blend_fill+0x30>
|
|
else if(mode == LV_BLEND_MODE_NORMAL) {
|
|
5e58: 2e00 cmp r6, #0
|
|
5e5a: d001 beq.n 5e60 <_lv_blend_fill+0x1f4>
|
|
5e5c: f000 fc27 bl 66ae <_lv_blend_fill+0xa42>
|
|
5e60: 466b mov r3, sp
|
|
5e62: 8a9b ldrh r3, [r3, #20]
|
|
5e64: 466a mov r2, sp
|
|
5e66: 8413 strh r3, [r2, #32]
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
5e68: 4b4f ldr r3, [pc, #316] ; (5fa8 <_lv_blend_fill+0x33c>)
|
|
5e6a: 4798 blx r3
|
|
5e6c: 0004 movs r4, r0
|
|
5e6e: 4643 mov r3, r8
|
|
5e70: 8a9d ldrh r5, [r3, #20]
|
|
5e72: 3501 adds r5, #1
|
|
5e74: 8a1b ldrh r3, [r3, #16]
|
|
5e76: 1aed subs r5, r5, r3
|
|
5e78: b22d sxth r5, r5
|
|
5e7a: a810 add r0, sp, #64 ; 0x40
|
|
5e7c: 2300 movs r3, #0
|
|
5e7e: 5ec1 ldrsh r1, [r0, r3]
|
|
5e80: 8883 ldrh r3, [r0, #4]
|
|
5e82: 3301 adds r3, #1
|
|
5e84: 1a5b subs r3, r3, r1
|
|
5e86: b21b sxth r3, r3
|
|
5e88: 930b str r3, [sp, #44] ; 0x2c
|
|
int32_t draw_area_w = lv_area_get_width(draw_area);
|
|
5e8a: 930a str r3, [sp, #40] ; 0x28
|
|
* @param area_p pointer to an area
|
|
* @return the height of the area (if y1 == y2 -> height = 1)
|
|
*/
|
|
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
|
|
{
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
5e8c: 2306 movs r3, #6
|
|
5e8e: 5ec2 ldrsh r2, [r0, r3]
|
|
5e90: 2302 movs r3, #2
|
|
5e92: 5ec3 ldrsh r3, [r0, r3]
|
|
5e94: 1c56 adds r6, r2, #1
|
|
5e96: 1af6 subs r6, r6, r3
|
|
5e98: b236 sxth r6, r6
|
|
int32_t draw_area_h = lv_area_get_height(draw_area);
|
|
5e9a: 960e str r6, [sp, #56] ; 0x38
|
|
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
|
|
5e9c: 930c str r3, [sp, #48] ; 0x30
|
|
5e9e: 436b muls r3, r5
|
|
5ea0: 185b adds r3, r3, r1
|
|
5ea2: 005b lsls r3, r3, #1
|
|
5ea4: 9904 ldr r1, [sp, #16]
|
|
5ea6: 468c mov ip, r1
|
|
5ea8: 4463 add r3, ip
|
|
5eaa: 9307 str r3, [sp, #28]
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
5eac: 2f01 cmp r7, #1
|
|
5eae: d01e beq.n 5eee <_lv_blend_fill+0x282>
|
|
if(opa > LV_OPA_MAX) {
|
|
5eb0: 465b mov r3, fp
|
|
5eb2: 2bfa cmp r3, #250 ; 0xfa
|
|
5eb4: d900 bls.n 5eb8 <_lv_blend_fill+0x24c>
|
|
5eb6: e127 b.n 6108 <_lv_blend_fill+0x49c>
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5eb8: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
5eba: 4293 cmp r3, r2
|
|
5ebc: dd00 ble.n 5ec0 <_lv_blend_fill+0x254>
|
|
5ebe: e6ed b.n 5c9c <_lv_blend_fill+0x30>
|
|
last_dest_color.full = disp_buf_first[0].full;
|
|
5ec0: 9b07 ldr r3, [sp, #28]
|
|
5ec2: 881a ldrh r2, [r3, #0]
|
|
5ec4: 466b mov r3, sp
|
|
5ec6: 8a99 ldrh r1, [r3, #20]
|
|
5ec8: 040b lsls r3, r1, #16
|
|
5eca: 0edb lsrs r3, r3, #27
|
|
5ecc: 9305 str r3, [sp, #20]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
5ece: 054b lsls r3, r1, #21
|
|
5ed0: 0e9b lsrs r3, r3, #26
|
|
5ed2: 9308 str r3, [sp, #32]
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
5ed4: 06cb lsls r3, r1, #27
|
|
5ed6: 0edb lsrs r3, r3, #27
|
|
5ed8: 469c mov ip, r3
|
|
disp_buf_first += disp_w;
|
|
5eda: 006b lsls r3, r5, #1
|
|
5edc: 930f str r3, [sp, #60] ; 0x3c
|
|
5ede: 0013 movs r3, r2
|
|
5ee0: 2600 movs r6, #0
|
|
5ee2: 2000 movs r0, #0
|
|
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
|
|
5ee4: b289 uxth r1, r1
|
|
5ee6: 910e str r1, [sp, #56] ; 0x38
|
|
5ee8: 0002 movs r2, r0
|
|
5eea: 4699 mov r9, r3
|
|
5eec: e3d0 b.n 6690 <_lv_blend_fill+0xa24>
|
|
if(opa > LV_OPA_MAX) {
|
|
5eee: 465b mov r3, fp
|
|
5ef0: 2bfa cmp r3, #250 ; 0xfa
|
|
5ef2: d924 bls.n 5f3e <_lv_blend_fill+0x2d2>
|
|
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
|
|
5ef4: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
5ef6: 2b00 cmp r3, #0
|
|
5ef8: d004 beq.n 5f04 <_lv_blend_fill+0x298>
|
|
5efa: a810 add r0, sp, #64 ; 0x40
|
|
5efc: 4b2d ldr r3, [pc, #180] ; (5fb4 <_lv_blend_fill+0x348>)
|
|
5efe: 4798 blx r3
|
|
5f00: 28f0 cmp r0, #240 ; 0xf0
|
|
5f02: d812 bhi.n 5f2a <_lv_blend_fill+0x2be>
|
|
disp_buf_first += disp_w;
|
|
5f04: 006d lsls r5, r5, #1
|
|
5f06: 2400 movs r4, #0
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
5f08: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
5f0a: 2b00 cmp r3, #0
|
|
5f0c: dc00 bgt.n 5f10 <_lv_blend_fill+0x2a4>
|
|
5f0e: e6c5 b.n 5c9c <_lv_blend_fill+0x30>
|
|
lv_color_fill(disp_buf_first, color, draw_area_w);
|
|
5f10: 4e29 ldr r6, [pc, #164] ; (5fb8 <_lv_blend_fill+0x34c>)
|
|
5f12: 9f07 ldr r7, [sp, #28]
|
|
5f14: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
5f16: 466b mov r3, sp
|
|
5f18: 8c19 ldrh r1, [r3, #32]
|
|
5f1a: 0038 movs r0, r7
|
|
5f1c: 47b0 blx r6
|
|
disp_buf_first += disp_w;
|
|
5f1e: 197f adds r7, r7, r5
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
5f20: 3401 adds r4, #1
|
|
5f22: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
5f24: 42a3 cmp r3, r4
|
|
5f26: dcf5 bgt.n 5f14 <_lv_blend_fill+0x2a8>
|
|
5f28: e6b8 b.n 5c9c <_lv_blend_fill+0x30>
|
|
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
|
|
5f2a: 466b mov r3, sp
|
|
5f2c: 8a9a ldrh r2, [r3, #20]
|
|
5f2e: 801a strh r2, [r3, #0]
|
|
5f30: 6a66 ldr r6, [r4, #36] ; 0x24
|
|
5f32: ab10 add r3, sp, #64 ; 0x40
|
|
5f34: 002a movs r2, r5
|
|
5f36: 9904 ldr r1, [sp, #16]
|
|
5f38: 0020 movs r0, r4
|
|
5f3a: 47b0 blx r6
|
|
5f3c: e6ae b.n 5c9c <_lv_blend_fill+0x30>
|
|
if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
|
|
5f3e: 6a23 ldr r3, [r4, #32]
|
|
5f40: 2b00 cmp r3, #0
|
|
5f42: d03d beq.n 5fc0 <_lv_blend_fill+0x354>
|
|
5f44: a810 add r0, sp, #64 ; 0x40
|
|
5f46: 4b1b ldr r3, [pc, #108] ; (5fb4 <_lv_blend_fill+0x348>)
|
|
5f48: 4798 blx r3
|
|
5f4a: 28f0 cmp r0, #240 ; 0xf0
|
|
5f4c: d938 bls.n 5fc0 <_lv_blend_fill+0x354>
|
|
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
|
|
5f4e: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
5f50: 2b00 cmp r3, #0
|
|
5f52: dd09 ble.n 5f68 <_lv_blend_fill+0x2fc>
|
|
5f54: 466b mov r3, sp
|
|
5f56: 8a9e ldrh r6, [r3, #20]
|
|
5f58: 4b18 ldr r3, [pc, #96] ; (5fbc <_lv_blend_fill+0x350>)
|
|
5f5a: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
5f5c: 0052 lsls r2, r2, #1
|
|
5f5e: 189a adds r2, r3, r2
|
|
5f60: 801e strh r6, [r3, #0]
|
|
5f62: 3302 adds r3, #2
|
|
5f64: 4293 cmp r3, r2
|
|
5f66: d1fb bne.n 5f60 <_lv_blend_fill+0x2f4>
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5f68: ab10 add r3, sp, #64 ; 0x40
|
|
5f6a: 2202 movs r2, #2
|
|
5f6c: 5e9e ldrsh r6, [r3, r2]
|
|
5f6e: 2206 movs r2, #6
|
|
5f70: 5e9b ldrsh r3, [r3, r2]
|
|
5f72: 429e cmp r6, r3
|
|
5f74: dd00 ble.n 5f78 <_lv_blend_fill+0x30c>
|
|
5f76: e691 b.n 5c9c <_lv_blend_fill+0x30>
|
|
disp_buf_first += disp_w;
|
|
5f78: 006d lsls r5, r5, #1
|
|
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
|
|
5f7a: 4b10 ldr r3, [pc, #64] ; (5fbc <_lv_blend_fill+0x350>)
|
|
5f7c: 4698 mov r8, r3
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5f7e: af10 add r7, sp, #64 ; 0x40
|
|
5f80: 46aa mov sl, r5
|
|
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
|
|
5f82: 465b mov r3, fp
|
|
5f84: 9300 str r3, [sp, #0]
|
|
5f86: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
5f88: 4642 mov r2, r8
|
|
5f8a: 9907 ldr r1, [sp, #28]
|
|
5f8c: 4689 mov r9, r1
|
|
5f8e: 0020 movs r0, r4
|
|
5f90: 6a25 ldr r5, [r4, #32]
|
|
5f92: 47a8 blx r5
|
|
disp_buf_first += disp_w;
|
|
5f94: 46cc mov ip, r9
|
|
5f96: 44d4 add ip, sl
|
|
5f98: 4663 mov r3, ip
|
|
5f9a: 9307 str r3, [sp, #28]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
5f9c: 3601 adds r6, #1
|
|
5f9e: 2206 movs r2, #6
|
|
5fa0: 5ebb ldrsh r3, [r7, r2]
|
|
5fa2: 429e cmp r6, r3
|
|
5fa4: dded ble.n 5f82 <_lv_blend_fill+0x316>
|
|
5fa6: e679 b.n 5c9c <_lv_blend_fill+0x30>
|
|
5fa8: 000043b1 .word 0x000043b1
|
|
5fac: 0000f709 .word 0x0000f709
|
|
5fb0: 0000fc0f .word 0x0000fc0f
|
|
5fb4: 0000fbf3 .word 0x0000fbf3
|
|
5fb8: 00010235 .word 0x00010235
|
|
5fbc: 200026f0 .word 0x200026f0
|
|
lv_color_t last_dest_color = LV_COLOR_BLACK;
|
|
5fc0: 2300 movs r3, #0
|
|
5fc2: 466a mov r2, sp
|
|
5fc4: 8313 strh r3, [r2, #24]
|
|
5fc6: 8a92 ldrh r2, [r2, #20]
|
|
5fc8: 06d3 lsls r3, r2, #27
|
|
5fca: 0edb lsrs r3, r3, #27
|
|
5fcc: 469c mov ip, r3
|
|
5fce: 1c13 adds r3, r2, #0
|
|
5fd0: 001a movs r2, r3
|
|
5fd2: 0557 lsls r7, r2, #21
|
|
5fd4: 0ebf lsrs r7, r7, #26
|
|
5fd6: 041c lsls r4, r3, #16
|
|
5fd8: 0ee4 lsrs r4, r4, #27
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
5fda: 465b mov r3, fp
|
|
5fdc: 4363 muls r3, r4
|
|
5fde: 0218 lsls r0, r3, #8
|
|
5fe0: 18c0 adds r0, r0, r3
|
|
5fe2: 01c0 lsls r0, r0, #7
|
|
5fe4: 18c0 adds r0, r0, r3
|
|
5fe6: 0dc0 lsrs r0, r0, #23
|
|
5fe8: 231f movs r3, #31
|
|
5fea: 4698 mov r8, r3
|
|
5fec: 4018 ands r0, r3
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
5fee: 465a mov r2, fp
|
|
5ff0: 437a muls r2, r7
|
|
5ff2: 0213 lsls r3, r2, #8
|
|
5ff4: 189b adds r3, r3, r2
|
|
5ff6: 01db lsls r3, r3, #7
|
|
5ff8: 189a adds r2, r3, r2
|
|
5ffa: 00d2 lsls r2, r2, #3
|
|
5ffc: 0e93 lsrs r3, r2, #26
|
|
5ffe: 469a mov sl, r3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6000: 4659 mov r1, fp
|
|
6002: 4663 mov r3, ip
|
|
6004: 4359 muls r1, r3
|
|
6006: 020b lsls r3, r1, #8
|
|
6008: 185b adds r3, r3, r1
|
|
600a: 01db lsls r3, r3, #7
|
|
600c: 1859 adds r1, r3, r1
|
|
600e: 0dc9 lsrs r1, r1, #23
|
|
6010: 4643 mov r3, r8
|
|
6012: 4019 ands r1, r3
|
|
}
|
|
|
|
LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out)
|
|
{
|
|
#if LV_COLOR_DEPTH != 1
|
|
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
|
|
6014: 465b mov r3, fp
|
|
6016: 466a mov r2, sp
|
|
6018: 8213 strh r3, [r2, #16]
|
|
601a: 8a13 ldrh r3, [r2, #16]
|
|
601c: 435c muls r4, r3
|
|
601e: 9405 str r4, [sp, #20]
|
|
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
|
|
6020: 435f muls r7, r3
|
|
6022: 9708 str r7, [sp, #32]
|
|
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
|
|
6024: 4664 mov r4, ip
|
|
6026: 435c muls r4, r3
|
|
6028: 9409 str r4, [sp, #36] ; 0x24
|
|
lv_opa_t opa_inv = 255 - opa;
|
|
602a: 465b mov r3, fp
|
|
602c: 43df mvns r7, r3
|
|
602e: b2ff uxtb r7, r7
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6030: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
6032: 2b00 cmp r3, #0
|
|
6034: dc00 bgt.n 6038 <_lv_blend_fill+0x3cc>
|
|
6036: e631 b.n 5c9c <_lv_blend_fill+0x30>
|
|
disp_buf_first += disp_w;
|
|
6038: 006b lsls r3, r5, #1
|
|
603a: 930e str r3, [sp, #56] ; 0x38
|
|
603c: 1c73 adds r3, r6, #1
|
|
603e: 930d str r3, [sp, #52] ; 0x34
|
|
6040: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6042: 005b lsls r3, r3, #1
|
|
6044: 930f str r3, [sp, #60] ; 0x3c
|
|
6046: 2301 movs r3, #1
|
|
6048: 930c str r3, [sp, #48] ; 0x30
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix)
|
|
{
|
|
lv_color_t ret;
|
|
#if LV_COLOR_DEPTH != 1
|
|
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
|
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
|
|
604a: b2bf uxth r7, r7
|
|
604c: 261f movs r6, #31
|
|
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
|
|
604e: 333e adds r3, #62 ; 0x3e
|
|
6050: 930b str r3, [sp, #44] ; 0x2c
|
|
disp_buf_first[x] = last_res_color;
|
|
6052: 4b63 ldr r3, [pc, #396] ; (61e0 <_lv_blend_fill+0x574>)
|
|
6054: 4698 mov r8, r3
|
|
6056: 2307 movs r3, #7
|
|
6058: 4699 mov r9, r3
|
|
605a: 4652 mov r2, sl
|
|
605c: e048 b.n 60f0 <_lv_blend_fill+0x484>
|
|
605e: 782b ldrb r3, [r5, #0]
|
|
6060: 43b3 bics r3, r6
|
|
6062: 430b orrs r3, r1
|
|
6064: 702b strb r3, [r5, #0]
|
|
6066: 9b04 ldr r3, [sp, #16]
|
|
6068: 015b lsls r3, r3, #5
|
|
606a: 882f ldrh r7, [r5, #0]
|
|
606c: 4642 mov r2, r8
|
|
606e: 4017 ands r7, r2
|
|
6070: 433b orrs r3, r7
|
|
6072: 802b strh r3, [r5, #0]
|
|
6074: 00c7 lsls r7, r0, #3
|
|
6076: 0a1b lsrs r3, r3, #8
|
|
6078: 464a mov r2, r9
|
|
607a: 4013 ands r3, r2
|
|
607c: 431f orrs r7, r3
|
|
607e: 706f strb r7, [r5, #1]
|
|
6080: 3402 adds r4, #2
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
6082: 4554 cmp r4, sl
|
|
6084: d026 beq.n 60d4 <_lv_blend_fill+0x468>
|
|
if(last_dest_color.full != disp_buf_first[x].full) {
|
|
6086: 0025 movs r5, r4
|
|
6088: 466b mov r3, sp
|
|
608a: 8b1b ldrh r3, [r3, #24]
|
|
608c: 8827 ldrh r7, [r4, #0]
|
|
608e: 42bb cmp r3, r7
|
|
6090: d0e5 beq.n 605e <_lv_blend_fill+0x3f2>
|
|
last_dest_color = disp_buf_first[x];
|
|
6092: 466b mov r3, sp
|
|
6094: 831f strh r7, [r3, #24]
|
|
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
|
|
6096: 7860 ldrb r0, [r4, #1]
|
|
6098: 08c0 lsrs r0, r0, #3
|
|
609a: 4663 mov r3, ip
|
|
609c: 4358 muls r0, r3
|
|
609e: 9b05 ldr r3, [sp, #20]
|
|
60a0: 469b mov fp, r3
|
|
60a2: 4458 add r0, fp
|
|
60a4: 0a00 lsrs r0, r0, #8
|
|
60a6: 4030 ands r0, r6
|
|
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
|
|
60a8: 057a lsls r2, r7, #21
|
|
60aa: 0e92 lsrs r2, r2, #26
|
|
60ac: 4663 mov r3, ip
|
|
60ae: 435a muls r2, r3
|
|
60b0: 9b08 ldr r3, [sp, #32]
|
|
60b2: 469b mov fp, r3
|
|
60b4: 445a add r2, fp
|
|
60b6: 0a12 lsrs r2, r2, #8
|
|
60b8: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
60ba: 401a ands r2, r3
|
|
60bc: 9204 str r2, [sp, #16]
|
|
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
|
|
60be: 7821 ldrb r1, [r4, #0]
|
|
60c0: 06c9 lsls r1, r1, #27
|
|
60c2: 0ec9 lsrs r1, r1, #27
|
|
60c4: 4663 mov r3, ip
|
|
60c6: 4359 muls r1, r3
|
|
60c8: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
60ca: 469b mov fp, r3
|
|
60cc: 4459 add r1, fp
|
|
60ce: 0a09 lsrs r1, r1, #8
|
|
60d0: 4031 ands r1, r6
|
|
60d2: e7c4 b.n 605e <_lv_blend_fill+0x3f2>
|
|
60d4: 9a04 ldr r2, [sp, #16]
|
|
60d6: 4667 mov r7, ip
|
|
disp_buf_first += disp_w;
|
|
60d8: 9b07 ldr r3, [sp, #28]
|
|
60da: 9c0e ldr r4, [sp, #56] ; 0x38
|
|
60dc: 46a4 mov ip, r4
|
|
60de: 4463 add r3, ip
|
|
60e0: 9307 str r3, [sp, #28]
|
|
60e2: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
60e4: 3301 adds r3, #1
|
|
60e6: 930c str r3, [sp, #48] ; 0x30
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
60e8: 9c0d ldr r4, [sp, #52] ; 0x34
|
|
60ea: 429c cmp r4, r3
|
|
60ec: d100 bne.n 60f0 <_lv_blend_fill+0x484>
|
|
60ee: e5d5 b.n 5c9c <_lv_blend_fill+0x30>
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
60f0: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
60f2: 2b00 cmp r3, #0
|
|
60f4: ddf0 ble.n 60d8 <_lv_blend_fill+0x46c>
|
|
60f6: 9b07 ldr r3, [sp, #28]
|
|
60f8: 001c movs r4, r3
|
|
60fa: 9d0f ldr r5, [sp, #60] ; 0x3c
|
|
60fc: 46aa mov sl, r5
|
|
60fe: 4453 add r3, sl
|
|
6100: 9204 str r2, [sp, #16]
|
|
6102: 469a mov sl, r3
|
|
6104: 46bc mov ip, r7
|
|
6106: e7be b.n 6086 <_lv_blend_fill+0x41a>
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6108: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
610a: 2b00 cmp r3, #0
|
|
610c: dc00 bgt.n 6110 <_lv_blend_fill+0x4a4>
|
|
610e: e5c5 b.n 5c9c <_lv_blend_fill+0x30>
|
|
int32_t x_end4 = draw_area_w - 4;
|
|
6110: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6112: 3b04 subs r3, #4
|
|
6114: 9305 str r3, [sp, #20]
|
|
disp_buf_first += disp_w;
|
|
6116: 006b lsls r3, r5, #1
|
|
6118: 930f str r3, [sp, #60] ; 0x3c
|
|
611a: 9b06 ldr r3, [sp, #24]
|
|
611c: 9309 str r3, [sp, #36] ; 0x24
|
|
611e: 2300 movs r3, #0
|
|
6120: 930d str r3, [sp, #52] ; 0x34
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6122: 466b mov r3, sp
|
|
6124: 8c1a ldrh r2, [r3, #32]
|
|
6126: 0417 lsls r7, r2, #16
|
|
6128: 0efb lsrs r3, r7, #27
|
|
612a: 9304 str r3, [sp, #16]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
612c: 0553 lsls r3, r2, #21
|
|
612e: 0e9b lsrs r3, r3, #26
|
|
6130: 469a mov sl, r3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6132: 06d3 lsls r3, r2, #27
|
|
6134: 0edb lsrs r3, r3, #27
|
|
6136: 469b mov fp, r3
|
|
6138: e213 b.n 6562 <_lv_blend_fill+0x8f6>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
613a: 466a mov r2, sp
|
|
613c: 8c12 ldrh r2, [r2, #32]
|
|
613e: 8032 strh r2, [r6, #0]
|
|
6140: 3401 adds r4, #1
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
6142: 3301 adds r3, #1
|
|
6144: 4598 cmp r8, r3
|
|
6146: dc01 bgt.n 614c <_lv_blend_fill+0x4e0>
|
|
6148: f000 fbe8 bl 691c <_lv_blend_fill+0xcb0>
|
|
614c: 3602 adds r6, #2
|
|
614e: 07a2 lsls r2, r4, #30
|
|
6150: d03f beq.n 61d2 <_lv_blend_fill+0x566>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
6152: 7820 ldrb r0, [r4, #0]
|
|
6154: 2800 cmp r0, #0
|
|
6156: d0f3 beq.n 6140 <_lv_blend_fill+0x4d4>
|
|
6158: 28ff cmp r0, #255 ; 0xff
|
|
615a: d0ee beq.n 613a <_lv_blend_fill+0x4ce>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
615c: 22ff movs r2, #255 ; 0xff
|
|
615e: 1a15 subs r5, r2, r0
|
|
6160: 9f04 ldr r7, [sp, #16]
|
|
6162: 4347 muls r7, r0
|
|
6164: 7871 ldrb r1, [r6, #1]
|
|
6166: 08c9 lsrs r1, r1, #3
|
|
6168: 4369 muls r1, r5
|
|
616a: 187f adds r7, r7, r1
|
|
616c: 023a lsls r2, r7, #8
|
|
616e: 19d2 adds r2, r2, r7
|
|
6170: 01d2 lsls r2, r2, #7
|
|
6172: 19d2 adds r2, r2, r7
|
|
6174: 0dd2 lsrs r2, r2, #23
|
|
6176: 4649 mov r1, r9
|
|
6178: 400a ands r2, r1
|
|
617a: 9206 str r2, [sp, #24]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
617c: 4657 mov r7, sl
|
|
617e: 4347 muls r7, r0
|
|
6180: 8831 ldrh r1, [r6, #0]
|
|
6182: 0549 lsls r1, r1, #21
|
|
6184: 0e89 lsrs r1, r1, #26
|
|
6186: 4369 muls r1, r5
|
|
6188: 187f adds r7, r7, r1
|
|
618a: 0239 lsls r1, r7, #8
|
|
618c: 19c9 adds r1, r1, r7
|
|
618e: 01c9 lsls r1, r1, #7
|
|
6190: 19c9 adds r1, r1, r7
|
|
6192: 00c9 lsls r1, r1, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6194: 465f mov r7, fp
|
|
6196: 4378 muls r0, r7
|
|
6198: 7837 ldrb r7, [r6, #0]
|
|
619a: 06fa lsls r2, r7, #27
|
|
619c: 0ed2 lsrs r2, r2, #27
|
|
619e: 4355 muls r5, r2
|
|
61a0: 1945 adds r5, r0, r5
|
|
61a2: 0228 lsls r0, r5, #8
|
|
61a4: 1940 adds r0, r0, r5
|
|
61a6: 01c0 lsls r0, r0, #7
|
|
61a8: 1940 adds r0, r0, r5
|
|
61aa: 0dc0 lsrs r0, r0, #23
|
|
61ac: 464a mov r2, r9
|
|
61ae: 4010 ands r0, r2
|
|
61b0: 4397 bics r7, r2
|
|
61b2: 4338 orrs r0, r7
|
|
61b4: 7030 strb r0, [r6, #0]
|
|
61b6: 0e89 lsrs r1, r1, #26
|
|
61b8: 0148 lsls r0, r1, #5
|
|
61ba: 8831 ldrh r1, [r6, #0]
|
|
61bc: 4d08 ldr r5, [pc, #32] ; (61e0 <_lv_blend_fill+0x574>)
|
|
61be: 4029 ands r1, r5
|
|
61c0: 4301 orrs r1, r0
|
|
61c2: 8031 strh r1, [r6, #0]
|
|
61c4: 9a06 ldr r2, [sp, #24]
|
|
61c6: 00d2 lsls r2, r2, #3
|
|
61c8: 0549 lsls r1, r1, #21
|
|
61ca: 0f49 lsrs r1, r1, #29
|
|
61cc: 430a orrs r2, r1
|
|
61ce: 7072 strb r2, [r6, #1]
|
|
61d0: e7b6 b.n 6140 <_lv_blend_fill+0x4d4>
|
|
61d2: 0022 movs r2, r4
|
|
for(; x <= x_end4; x += 4) {
|
|
61d4: 9905 ldr r1, [sp, #20]
|
|
61d6: 4299 cmp r1, r3
|
|
61d8: db00 blt.n 61dc <_lv_blend_fill+0x570>
|
|
61da: e3a4 b.n 6926 <_lv_blend_fill+0xcba>
|
|
61dc: e15e b.n 649c <_lv_blend_fill+0x830>
|
|
61de: 46c0 nop ; (mov r8, r8)
|
|
61e0: fffff81f .word 0xfffff81f
|
|
disp_buf_first[x] = color;
|
|
61e4: 4669 mov r1, sp
|
|
61e6: 8c09 ldrh r1, [r1, #32]
|
|
61e8: 8021 strh r1, [r4, #0]
|
|
disp_buf_first[x + 1] = color;
|
|
61ea: 8061 strh r1, [r4, #2]
|
|
disp_buf_first[x + 2] = color;
|
|
61ec: 80a1 strh r1, [r4, #4]
|
|
disp_buf_first[x + 3] = color;
|
|
61ee: 80e1 strh r1, [r4, #6]
|
|
mask32++;
|
|
61f0: 3204 adds r2, #4
|
|
for(; x <= x_end4; x += 4) {
|
|
61f2: 3304 adds r3, #4
|
|
61f4: 3408 adds r4, #8
|
|
61f6: 9905 ldr r1, [sp, #20]
|
|
61f8: 4299 cmp r1, r3
|
|
61fa: da00 bge.n 61fe <_lv_blend_fill+0x592>
|
|
61fc: e149 b.n 6492 <_lv_blend_fill+0x826>
|
|
if(*mask32) {
|
|
61fe: 6811 ldr r1, [r2, #0]
|
|
6200: 2900 cmp r1, #0
|
|
6202: d0f5 beq.n 61f0 <_lv_blend_fill+0x584>
|
|
if((*mask32) == 0xFFFFFFFF) {
|
|
6204: 3101 adds r1, #1
|
|
6206: d0ed beq.n 61e4 <_lv_blend_fill+0x578>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
6208: 7815 ldrb r5, [r2, #0]
|
|
620a: 2d00 cmp r5, #0
|
|
620c: d046 beq.n 629c <_lv_blend_fill+0x630>
|
|
620e: 2dff cmp r5, #255 ; 0xff
|
|
6210: d100 bne.n 6214 <_lv_blend_fill+0x5a8>
|
|
6212: e12e b.n 6472 <_lv_blend_fill+0x806>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6214: 21ff movs r1, #255 ; 0xff
|
|
6216: 1b49 subs r1, r1, r5
|
|
6218: 468c mov ip, r1
|
|
621a: 9804 ldr r0, [sp, #16]
|
|
621c: 4368 muls r0, r5
|
|
621e: 7861 ldrb r1, [r4, #1]
|
|
6220: 08c9 lsrs r1, r1, #3
|
|
6222: 4666 mov r6, ip
|
|
6224: 4371 muls r1, r6
|
|
6226: 1840 adds r0, r0, r1
|
|
6228: 0201 lsls r1, r0, #8
|
|
622a: 1809 adds r1, r1, r0
|
|
622c: 01c9 lsls r1, r1, #7
|
|
622e: 1809 adds r1, r1, r0
|
|
6230: 0dc9 lsrs r1, r1, #23
|
|
6232: 4039 ands r1, r7
|
|
6234: 468a mov sl, r1
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6236: 0028 movs r0, r5
|
|
6238: 9906 ldr r1, [sp, #24]
|
|
623a: 4348 muls r0, r1
|
|
623c: 4681 mov r9, r0
|
|
623e: 8820 ldrh r0, [r4, #0]
|
|
6240: 0540 lsls r0, r0, #21
|
|
6242: 0e80 lsrs r0, r0, #26
|
|
6244: 4370 muls r0, r6
|
|
6246: 4481 add r9, r0
|
|
6248: 4648 mov r0, r9
|
|
624a: 0200 lsls r0, r0, #8
|
|
624c: 4448 add r0, r9
|
|
624e: 01c0 lsls r0, r0, #7
|
|
6250: 4448 add r0, r9
|
|
6252: 00c0 lsls r0, r0, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6254: 465e mov r6, fp
|
|
6256: 4375 muls r5, r6
|
|
6258: 7826 ldrb r6, [r4, #0]
|
|
625a: 46b0 mov r8, r6
|
|
625c: 06f6 lsls r6, r6, #27
|
|
625e: 0ef6 lsrs r6, r6, #27
|
|
6260: 46b1 mov r9, r6
|
|
6262: 4666 mov r6, ip
|
|
6264: 4649 mov r1, r9
|
|
6266: 434e muls r6, r1
|
|
6268: 46b4 mov ip, r6
|
|
626a: 44ac add ip, r5
|
|
626c: 4661 mov r1, ip
|
|
626e: 020d lsls r5, r1, #8
|
|
6270: 4465 add r5, ip
|
|
6272: 01ed lsls r5, r5, #7
|
|
6274: 4465 add r5, ip
|
|
6276: 0ded lsrs r5, r5, #23
|
|
6278: 403d ands r5, r7
|
|
627a: 4646 mov r6, r8
|
|
627c: 43be bics r6, r7
|
|
627e: 4335 orrs r5, r6
|
|
6280: 7025 strb r5, [r4, #0]
|
|
6282: 0e80 lsrs r0, r0, #26
|
|
6284: 0145 lsls r5, r0, #5
|
|
6286: 8820 ldrh r0, [r4, #0]
|
|
6288: 49be ldr r1, [pc, #760] ; (6584 <_lv_blend_fill+0x918>)
|
|
628a: 4008 ands r0, r1
|
|
628c: 4328 orrs r0, r5
|
|
628e: 8020 strh r0, [r4, #0]
|
|
6290: 4651 mov r1, sl
|
|
6292: 00c9 lsls r1, r1, #3
|
|
6294: 0540 lsls r0, r0, #21
|
|
6296: 0f40 lsrs r0, r0, #29
|
|
6298: 4301 orrs r1, r0
|
|
629a: 7061 strb r1, [r4, #1]
|
|
FILL_NORMAL_MASK_PX(x + 1, color)
|
|
629c: 7855 ldrb r5, [r2, #1]
|
|
629e: 2d00 cmp r5, #0
|
|
62a0: d04a beq.n 6338 <_lv_blend_fill+0x6cc>
|
|
62a2: 2dff cmp r5, #255 ; 0xff
|
|
62a4: d100 bne.n 62a8 <_lv_blend_fill+0x63c>
|
|
62a6: e0e8 b.n 647a <_lv_blend_fill+0x80e>
|
|
62a8: 1ca1 adds r1, r4, #2
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
62aa: 20ff movs r0, #255 ; 0xff
|
|
62ac: 1b40 subs r0, r0, r5
|
|
62ae: 4684 mov ip, r0
|
|
62b0: 9804 ldr r0, [sp, #16]
|
|
62b2: 4368 muls r0, r5
|
|
62b4: 4689 mov r9, r1
|
|
62b6: 78e1 ldrb r1, [r4, #3]
|
|
62b8: 08c9 lsrs r1, r1, #3
|
|
62ba: 4666 mov r6, ip
|
|
62bc: 4371 muls r1, r6
|
|
62be: 1840 adds r0, r0, r1
|
|
62c0: 0201 lsls r1, r0, #8
|
|
62c2: 1809 adds r1, r1, r0
|
|
62c4: 01c9 lsls r1, r1, #7
|
|
62c6: 1809 adds r1, r1, r0
|
|
62c8: 0dc9 lsrs r1, r1, #23
|
|
62ca: 4039 ands r1, r7
|
|
62cc: 910c str r1, [sp, #48] ; 0x30
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
62ce: 0028 movs r0, r5
|
|
62d0: 9e06 ldr r6, [sp, #24]
|
|
62d2: 4370 muls r0, r6
|
|
62d4: 4682 mov sl, r0
|
|
62d6: 8860 ldrh r0, [r4, #2]
|
|
62d8: 0540 lsls r0, r0, #21
|
|
62da: 0e80 lsrs r0, r0, #26
|
|
62dc: 4666 mov r6, ip
|
|
62de: 4370 muls r0, r6
|
|
62e0: 4482 add sl, r0
|
|
62e2: 4650 mov r0, sl
|
|
62e4: 0200 lsls r0, r0, #8
|
|
62e6: 4450 add r0, sl
|
|
62e8: 01c0 lsls r0, r0, #7
|
|
62ea: 4450 add r0, sl
|
|
62ec: 00c0 lsls r0, r0, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
62ee: 465e mov r6, fp
|
|
62f0: 4375 muls r5, r6
|
|
62f2: 78a6 ldrb r6, [r4, #2]
|
|
62f4: 46b0 mov r8, r6
|
|
62f6: 06f6 lsls r6, r6, #27
|
|
62f8: 0ef6 lsrs r6, r6, #27
|
|
62fa: 46b2 mov sl, r6
|
|
62fc: 4666 mov r6, ip
|
|
62fe: 4651 mov r1, sl
|
|
6300: 434e muls r6, r1
|
|
6302: 46b4 mov ip, r6
|
|
6304: 44ac add ip, r5
|
|
6306: 4661 mov r1, ip
|
|
6308: 020d lsls r5, r1, #8
|
|
630a: 4465 add r5, ip
|
|
630c: 01ed lsls r5, r5, #7
|
|
630e: 4465 add r5, ip
|
|
6310: 0ded lsrs r5, r5, #23
|
|
6312: 403d ands r5, r7
|
|
6314: 4646 mov r6, r8
|
|
6316: 43be bics r6, r7
|
|
6318: 4335 orrs r5, r6
|
|
631a: 70a5 strb r5, [r4, #2]
|
|
631c: 0e80 lsrs r0, r0, #26
|
|
631e: 0140 lsls r0, r0, #5
|
|
6320: 8865 ldrh r5, [r4, #2]
|
|
6322: 4998 ldr r1, [pc, #608] ; (6584 <_lv_blend_fill+0x918>)
|
|
6324: 400d ands r5, r1
|
|
6326: 4328 orrs r0, r5
|
|
6328: 8060 strh r0, [r4, #2]
|
|
632a: 990c ldr r1, [sp, #48] ; 0x30
|
|
632c: 00c9 lsls r1, r1, #3
|
|
632e: 0540 lsls r0, r0, #21
|
|
6330: 0f40 lsrs r0, r0, #29
|
|
6332: 4301 orrs r1, r0
|
|
6334: 4648 mov r0, r9
|
|
6336: 7041 strb r1, [r0, #1]
|
|
FILL_NORMAL_MASK_PX(x + 2, color)
|
|
6338: 7895 ldrb r5, [r2, #2]
|
|
633a: 2d00 cmp r5, #0
|
|
633c: d04a beq.n 63d4 <_lv_blend_fill+0x768>
|
|
633e: 2dff cmp r5, #255 ; 0xff
|
|
6340: d100 bne.n 6344 <_lv_blend_fill+0x6d8>
|
|
6342: e09e b.n 6482 <_lv_blend_fill+0x816>
|
|
6344: 1d21 adds r1, r4, #4
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6346: 20ff movs r0, #255 ; 0xff
|
|
6348: 1b40 subs r0, r0, r5
|
|
634a: 4684 mov ip, r0
|
|
634c: 9804 ldr r0, [sp, #16]
|
|
634e: 4368 muls r0, r5
|
|
6350: 4689 mov r9, r1
|
|
6352: 7961 ldrb r1, [r4, #5]
|
|
6354: 08c9 lsrs r1, r1, #3
|
|
6356: 4666 mov r6, ip
|
|
6358: 4371 muls r1, r6
|
|
635a: 1840 adds r0, r0, r1
|
|
635c: 0201 lsls r1, r0, #8
|
|
635e: 1809 adds r1, r1, r0
|
|
6360: 01c9 lsls r1, r1, #7
|
|
6362: 1809 adds r1, r1, r0
|
|
6364: 0dc9 lsrs r1, r1, #23
|
|
6366: 4039 ands r1, r7
|
|
6368: 910c str r1, [sp, #48] ; 0x30
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
636a: 0028 movs r0, r5
|
|
636c: 9e06 ldr r6, [sp, #24]
|
|
636e: 4370 muls r0, r6
|
|
6370: 4682 mov sl, r0
|
|
6372: 88a0 ldrh r0, [r4, #4]
|
|
6374: 0540 lsls r0, r0, #21
|
|
6376: 0e80 lsrs r0, r0, #26
|
|
6378: 4666 mov r6, ip
|
|
637a: 4370 muls r0, r6
|
|
637c: 4482 add sl, r0
|
|
637e: 4650 mov r0, sl
|
|
6380: 0200 lsls r0, r0, #8
|
|
6382: 4450 add r0, sl
|
|
6384: 01c0 lsls r0, r0, #7
|
|
6386: 4450 add r0, sl
|
|
6388: 00c0 lsls r0, r0, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
638a: 465e mov r6, fp
|
|
638c: 4375 muls r5, r6
|
|
638e: 7926 ldrb r6, [r4, #4]
|
|
6390: 46b0 mov r8, r6
|
|
6392: 06f6 lsls r6, r6, #27
|
|
6394: 0ef6 lsrs r6, r6, #27
|
|
6396: 46b2 mov sl, r6
|
|
6398: 4666 mov r6, ip
|
|
639a: 4651 mov r1, sl
|
|
639c: 434e muls r6, r1
|
|
639e: 46b4 mov ip, r6
|
|
63a0: 44ac add ip, r5
|
|
63a2: 4661 mov r1, ip
|
|
63a4: 020d lsls r5, r1, #8
|
|
63a6: 4465 add r5, ip
|
|
63a8: 01ed lsls r5, r5, #7
|
|
63aa: 4465 add r5, ip
|
|
63ac: 0ded lsrs r5, r5, #23
|
|
63ae: 403d ands r5, r7
|
|
63b0: 4646 mov r6, r8
|
|
63b2: 43be bics r6, r7
|
|
63b4: 4335 orrs r5, r6
|
|
63b6: 7125 strb r5, [r4, #4]
|
|
63b8: 0e80 lsrs r0, r0, #26
|
|
63ba: 0140 lsls r0, r0, #5
|
|
63bc: 88a5 ldrh r5, [r4, #4]
|
|
63be: 4971 ldr r1, [pc, #452] ; (6584 <_lv_blend_fill+0x918>)
|
|
63c0: 400d ands r5, r1
|
|
63c2: 4328 orrs r0, r5
|
|
63c4: 80a0 strh r0, [r4, #4]
|
|
63c6: 990c ldr r1, [sp, #48] ; 0x30
|
|
63c8: 00c9 lsls r1, r1, #3
|
|
63ca: 0540 lsls r0, r0, #21
|
|
63cc: 0f40 lsrs r0, r0, #29
|
|
63ce: 4301 orrs r1, r0
|
|
63d0: 4648 mov r0, r9
|
|
63d2: 7041 strb r1, [r0, #1]
|
|
FILL_NORMAL_MASK_PX(x + 3, color)
|
|
63d4: 78d5 ldrb r5, [r2, #3]
|
|
63d6: 2d00 cmp r5, #0
|
|
63d8: d100 bne.n 63dc <_lv_blend_fill+0x770>
|
|
63da: e709 b.n 61f0 <_lv_blend_fill+0x584>
|
|
63dc: 2dff cmp r5, #255 ; 0xff
|
|
63de: d054 beq.n 648a <_lv_blend_fill+0x81e>
|
|
63e0: 1da1 adds r1, r4, #6
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
63e2: 20ff movs r0, #255 ; 0xff
|
|
63e4: 1b40 subs r0, r0, r5
|
|
63e6: 4684 mov ip, r0
|
|
63e8: 9804 ldr r0, [sp, #16]
|
|
63ea: 4368 muls r0, r5
|
|
63ec: 4689 mov r9, r1
|
|
63ee: 79e1 ldrb r1, [r4, #7]
|
|
63f0: 08c9 lsrs r1, r1, #3
|
|
63f2: 4666 mov r6, ip
|
|
63f4: 4371 muls r1, r6
|
|
63f6: 1840 adds r0, r0, r1
|
|
63f8: 0201 lsls r1, r0, #8
|
|
63fa: 1809 adds r1, r1, r0
|
|
63fc: 01c9 lsls r1, r1, #7
|
|
63fe: 1809 adds r1, r1, r0
|
|
6400: 0dc9 lsrs r1, r1, #23
|
|
6402: 4039 ands r1, r7
|
|
6404: 910c str r1, [sp, #48] ; 0x30
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6406: 0028 movs r0, r5
|
|
6408: 9e06 ldr r6, [sp, #24]
|
|
640a: 4370 muls r0, r6
|
|
640c: 4682 mov sl, r0
|
|
640e: 88e0 ldrh r0, [r4, #6]
|
|
6410: 0540 lsls r0, r0, #21
|
|
6412: 0e80 lsrs r0, r0, #26
|
|
6414: 4666 mov r6, ip
|
|
6416: 4370 muls r0, r6
|
|
6418: 4482 add sl, r0
|
|
641a: 4650 mov r0, sl
|
|
641c: 0200 lsls r0, r0, #8
|
|
641e: 4450 add r0, sl
|
|
6420: 01c0 lsls r0, r0, #7
|
|
6422: 4450 add r0, sl
|
|
6424: 00c0 lsls r0, r0, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6426: 465e mov r6, fp
|
|
6428: 4375 muls r5, r6
|
|
642a: 79a6 ldrb r6, [r4, #6]
|
|
642c: 46b0 mov r8, r6
|
|
642e: 06f6 lsls r6, r6, #27
|
|
6430: 0ef6 lsrs r6, r6, #27
|
|
6432: 46b2 mov sl, r6
|
|
6434: 4666 mov r6, ip
|
|
6436: 4651 mov r1, sl
|
|
6438: 434e muls r6, r1
|
|
643a: 46b4 mov ip, r6
|
|
643c: 44ac add ip, r5
|
|
643e: 4661 mov r1, ip
|
|
6440: 020d lsls r5, r1, #8
|
|
6442: 4465 add r5, ip
|
|
6444: 01ed lsls r5, r5, #7
|
|
6446: 4465 add r5, ip
|
|
6448: 0ded lsrs r5, r5, #23
|
|
644a: 403d ands r5, r7
|
|
644c: 4646 mov r6, r8
|
|
644e: 43be bics r6, r7
|
|
6450: 4335 orrs r5, r6
|
|
6452: 71a5 strb r5, [r4, #6]
|
|
6454: 0e80 lsrs r0, r0, #26
|
|
6456: 0140 lsls r0, r0, #5
|
|
6458: 88e5 ldrh r5, [r4, #6]
|
|
645a: 494a ldr r1, [pc, #296] ; (6584 <_lv_blend_fill+0x918>)
|
|
645c: 400d ands r5, r1
|
|
645e: 4328 orrs r0, r5
|
|
6460: 80e0 strh r0, [r4, #6]
|
|
6462: 990c ldr r1, [sp, #48] ; 0x30
|
|
6464: 00c9 lsls r1, r1, #3
|
|
6466: 0540 lsls r0, r0, #21
|
|
6468: 0f40 lsrs r0, r0, #29
|
|
646a: 4301 orrs r1, r0
|
|
646c: 4648 mov r0, r9
|
|
646e: 7041 strb r1, [r0, #1]
|
|
6470: e6be b.n 61f0 <_lv_blend_fill+0x584>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
6472: 4669 mov r1, sp
|
|
6474: 8c09 ldrh r1, [r1, #32]
|
|
6476: 8021 strh r1, [r4, #0]
|
|
6478: e710 b.n 629c <_lv_blend_fill+0x630>
|
|
FILL_NORMAL_MASK_PX(x + 1, color)
|
|
647a: 4669 mov r1, sp
|
|
647c: 8c09 ldrh r1, [r1, #32]
|
|
647e: 8061 strh r1, [r4, #2]
|
|
6480: e75a b.n 6338 <_lv_blend_fill+0x6cc>
|
|
FILL_NORMAL_MASK_PX(x + 2, color)
|
|
6482: 4669 mov r1, sp
|
|
6484: 8c09 ldrh r1, [r1, #32]
|
|
6486: 80a1 strh r1, [r4, #4]
|
|
6488: e7a4 b.n 63d4 <_lv_blend_fill+0x768>
|
|
FILL_NORMAL_MASK_PX(x + 3, color)
|
|
648a: 4669 mov r1, sp
|
|
648c: 8c09 ldrh r1, [r1, #32]
|
|
648e: 80e1 strh r1, [r4, #6]
|
|
6490: e6ae b.n 61f0 <_lv_blend_fill+0x584>
|
|
6492: 9906 ldr r1, [sp, #24]
|
|
6494: 468a mov sl, r1
|
|
for(; x < draw_area_w ; x++) {
|
|
6496: 990a ldr r1, [sp, #40] ; 0x28
|
|
6498: 4299 cmp r1, r3
|
|
649a: dd50 ble.n 653e <_lv_blend_fill+0x8d2>
|
|
649c: 005e lsls r6, r3, #1
|
|
649e: 9907 ldr r1, [sp, #28]
|
|
64a0: 468c mov ip, r1
|
|
64a2: 4466 add r6, ip
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
64a4: 1ad2 subs r2, r2, r3
|
|
64a6: 4690 mov r8, r2
|
|
64a8: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
64aa: 4691 mov r9, r2
|
|
64ac: e006 b.n 64bc <_lv_blend_fill+0x850>
|
|
64ae: 466a mov r2, sp
|
|
64b0: 8c12 ldrh r2, [r2, #32]
|
|
64b2: 8032 strh r2, [r6, #0]
|
|
for(; x < draw_area_w ; x++) {
|
|
64b4: 3301 adds r3, #1
|
|
64b6: 3602 adds r6, #2
|
|
64b8: 4599 cmp r9, r3
|
|
64ba: dd40 ble.n 653e <_lv_blend_fill+0x8d2>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
64bc: 4642 mov r2, r8
|
|
64be: 5cd0 ldrb r0, [r2, r3]
|
|
64c0: 2800 cmp r0, #0
|
|
64c2: d0f7 beq.n 64b4 <_lv_blend_fill+0x848>
|
|
64c4: 28ff cmp r0, #255 ; 0xff
|
|
64c6: d0f2 beq.n 64ae <_lv_blend_fill+0x842>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
64c8: 22ff movs r2, #255 ; 0xff
|
|
64ca: 1a14 subs r4, r2, r0
|
|
64cc: 9a04 ldr r2, [sp, #16]
|
|
64ce: 4342 muls r2, r0
|
|
64d0: 7871 ldrb r1, [r6, #1]
|
|
64d2: 08c9 lsrs r1, r1, #3
|
|
64d4: 4361 muls r1, r4
|
|
64d6: 1851 adds r1, r2, r1
|
|
64d8: 020a lsls r2, r1, #8
|
|
64da: 1852 adds r2, r2, r1
|
|
64dc: 01d2 lsls r2, r2, #7
|
|
64de: 1852 adds r2, r2, r1
|
|
64e0: 0dd2 lsrs r2, r2, #23
|
|
64e2: 271f movs r7, #31
|
|
64e4: 403a ands r2, r7
|
|
64e6: 9206 str r2, [sp, #24]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
64e8: 4655 mov r5, sl
|
|
64ea: 4345 muls r5, r0
|
|
64ec: 8831 ldrh r1, [r6, #0]
|
|
64ee: 0549 lsls r1, r1, #21
|
|
64f0: 0e89 lsrs r1, r1, #26
|
|
64f2: 4361 muls r1, r4
|
|
64f4: 186d adds r5, r5, r1
|
|
64f6: 0229 lsls r1, r5, #8
|
|
64f8: 1949 adds r1, r1, r5
|
|
64fa: 01c9 lsls r1, r1, #7
|
|
64fc: 1949 adds r1, r1, r5
|
|
64fe: 00c9 lsls r1, r1, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6500: 465d mov r5, fp
|
|
6502: 4368 muls r0, r5
|
|
6504: 7835 ldrb r5, [r6, #0]
|
|
6506: 06ea lsls r2, r5, #27
|
|
6508: 0ed2 lsrs r2, r2, #27
|
|
650a: 4354 muls r4, r2
|
|
650c: 1904 adds r4, r0, r4
|
|
650e: 0220 lsls r0, r4, #8
|
|
6510: 1900 adds r0, r0, r4
|
|
6512: 01c0 lsls r0, r0, #7
|
|
6514: 1900 adds r0, r0, r4
|
|
6516: 0dc0 lsrs r0, r0, #23
|
|
6518: 4007 ands r7, r0
|
|
651a: 201f movs r0, #31
|
|
651c: 4385 bics r5, r0
|
|
651e: 432f orrs r7, r5
|
|
6520: 7037 strb r7, [r6, #0]
|
|
6522: 0e89 lsrs r1, r1, #26
|
|
6524: 0148 lsls r0, r1, #5
|
|
6526: 8831 ldrh r1, [r6, #0]
|
|
6528: 4c16 ldr r4, [pc, #88] ; (6584 <_lv_blend_fill+0x918>)
|
|
652a: 4021 ands r1, r4
|
|
652c: 4301 orrs r1, r0
|
|
652e: 8031 strh r1, [r6, #0]
|
|
6530: 9a06 ldr r2, [sp, #24]
|
|
6532: 00d2 lsls r2, r2, #3
|
|
6534: 0549 lsls r1, r1, #21
|
|
6536: 0f49 lsrs r1, r1, #29
|
|
6538: 430a orrs r2, r1
|
|
653a: 7072 strb r2, [r6, #1]
|
|
653c: e7ba b.n 64b4 <_lv_blend_fill+0x848>
|
|
disp_buf_first += disp_w;
|
|
653e: 9b07 ldr r3, [sp, #28]
|
|
6540: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
6542: 4694 mov ip, r2
|
|
6544: 4463 add r3, ip
|
|
6546: 9307 str r3, [sp, #28]
|
|
6548: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
654a: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
654c: 4694 mov ip, r2
|
|
654e: 4463 add r3, ip
|
|
6550: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6552: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
6554: 3301 adds r3, #1
|
|
6556: 930d str r3, [sp, #52] ; 0x34
|
|
6558: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
655a: 429a cmp r2, r3
|
|
655c: dc01 bgt.n 6562 <_lv_blend_fill+0x8f6>
|
|
655e: f7ff fb9d bl 5c9c <_lv_blend_fill+0x30>
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
6562: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
6564: 2a00 cmp r2, #0
|
|
6566: dc00 bgt.n 656a <_lv_blend_fill+0x8fe>
|
|
6568: e1e5 b.n 6936 <_lv_blend_fill+0xcca>
|
|
656a: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
656c: 0799 lsls r1, r3, #30
|
|
656e: d100 bne.n 6572 <_lv_blend_fill+0x906>
|
|
6570: e1e4 b.n 693c <_lv_blend_fill+0xcd0>
|
|
6572: 9e07 ldr r6, [sp, #28]
|
|
6574: 4698 mov r8, r3
|
|
6576: 2300 movs r3, #0
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6578: 211f movs r1, #31
|
|
657a: 4689 mov r9, r1
|
|
657c: 4644 mov r4, r8
|
|
657e: 4690 mov r8, r2
|
|
6580: e5e7 b.n 6152 <_lv_blend_fill+0x4e6>
|
|
6582: 46c0 nop ; (mov r8, r8)
|
|
6584: fffff81f .word 0xfffff81f
|
|
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
|
|
6588: 9e0d ldr r6, [sp, #52] ; 0x34
|
|
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
|
|
658a: 2aff cmp r2, #255 ; 0xff
|
|
658c: d065 beq.n 665a <_lv_blend_fill+0x9ee>
|
|
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
|
|
658e: 2eff cmp r6, #255 ; 0xff
|
|
6590: d067 beq.n 6662 <_lv_blend_fill+0x9f6>
|
|
6592: 23ff movs r3, #255 ; 0xff
|
|
6594: 1b9b subs r3, r3, r6
|
|
6596: 784a ldrb r2, [r1, #1]
|
|
6598: 08d2 lsrs r2, r2, #3
|
|
659a: 4699 mov r9, r3
|
|
659c: 435a muls r2, r3
|
|
659e: 9b05 ldr r3, [sp, #20]
|
|
65a0: 4373 muls r3, r6
|
|
65a2: 18d2 adds r2, r2, r3
|
|
65a4: 0213 lsls r3, r2, #8
|
|
65a6: 189b adds r3, r3, r2
|
|
65a8: 01db lsls r3, r3, #7
|
|
65aa: 189b adds r3, r3, r2
|
|
65ac: 0ddb lsrs r3, r3, #23
|
|
65ae: 221f movs r2, #31
|
|
65b0: 401a ands r2, r3
|
|
65b2: 9204 str r2, [sp, #16]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
65b4: 880a ldrh r2, [r1, #0]
|
|
65b6: 0552 lsls r2, r2, #21
|
|
65b8: 0e92 lsrs r2, r2, #26
|
|
65ba: 464b mov r3, r9
|
|
65bc: 435a muls r2, r3
|
|
65be: 9b08 ldr r3, [sp, #32]
|
|
65c0: 4373 muls r3, r6
|
|
65c2: 469a mov sl, r3
|
|
65c4: 4452 add r2, sl
|
|
65c6: 0213 lsls r3, r2, #8
|
|
65c8: 469a mov sl, r3
|
|
65ca: 4492 add sl, r2
|
|
65cc: 4653 mov r3, sl
|
|
65ce: 01db lsls r3, r3, #7
|
|
65d0: 469a mov sl, r3
|
|
65d2: 4452 add r2, sl
|
|
65d4: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
65d6: 780b ldrb r3, [r1, #0]
|
|
65d8: 06db lsls r3, r3, #27
|
|
65da: 0edb lsrs r3, r3, #27
|
|
65dc: 469a mov sl, r3
|
|
65de: 464b mov r3, r9
|
|
65e0: 4654 mov r4, sl
|
|
65e2: 4363 muls r3, r4
|
|
65e4: 469a mov sl, r3
|
|
65e6: 4663 mov r3, ip
|
|
65e8: 4373 muls r3, r6
|
|
65ea: 4699 mov r9, r3
|
|
65ec: 44ca add sl, r9
|
|
65ee: 4653 mov r3, sl
|
|
65f0: 021b lsls r3, r3, #8
|
|
65f2: 4699 mov r9, r3
|
|
65f4: 44d1 add r9, sl
|
|
65f6: 464b mov r3, r9
|
|
65f8: 01db lsls r3, r3, #7
|
|
65fa: 4699 mov r9, r3
|
|
65fc: 44d1 add r9, sl
|
|
65fe: 464b mov r3, r9
|
|
6600: 0ddb lsrs r3, r3, #23
|
|
6602: 241f movs r4, #31
|
|
6604: 4023 ands r3, r4
|
|
6606: 4699 mov r9, r3
|
|
6608: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
660a: 43a3 bics r3, r4
|
|
660c: 469a mov sl, r3
|
|
660e: 464b mov r3, r9
|
|
6610: 4654 mov r4, sl
|
|
6612: 4323 orrs r3, r4
|
|
6614: 4699 mov r9, r3
|
|
6616: 233f movs r3, #63 ; 0x3f
|
|
6618: 401a ands r2, r3
|
|
661a: 0152 lsls r2, r2, #5
|
|
661c: 464b mov r3, r9
|
|
661e: 4644 mov r4, r8
|
|
6620: 4023 ands r3, r4
|
|
6622: 431a orrs r2, r3
|
|
6624: 9b04 ldr r3, [sp, #16]
|
|
6626: 02db lsls r3, r3, #11
|
|
6628: 0552 lsls r2, r2, #21
|
|
662a: 0d52 lsrs r2, r2, #21
|
|
662c: 4313 orrs r3, r2
|
|
662e: 466a mov r2, sp
|
|
6630: 8493 strh r3, [r2, #36] ; 0x24
|
|
6632: b29b uxth r3, r3
|
|
last_dest_color.full = disp_buf_first[x].full;
|
|
6634: 880a ldrh r2, [r1, #0]
|
|
6636: 4691 mov r9, r2
|
|
disp_buf_first[x] = last_res_color;
|
|
6638: 800b strh r3, [r1, #0]
|
|
663a: 002a movs r2, r5
|
|
mask_tmp_x++;
|
|
663c: 3001 adds r0, #1
|
|
663e: 3102 adds r1, #2
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
6640: 42b8 cmp r0, r7
|
|
6642: d010 beq.n 6666 <_lv_blend_fill+0x9fa>
|
|
if(*mask_tmp_x) {
|
|
6644: 7805 ldrb r5, [r0, #0]
|
|
6646: 2d00 cmp r5, #0
|
|
6648: d0f8 beq.n 663c <_lv_blend_fill+0x9d0>
|
|
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
|
|
664a: 4295 cmp r5, r2
|
|
664c: d005 beq.n 665a <_lv_blend_fill+0x9ee>
|
|
664e: 2dff cmp r5, #255 ; 0xff
|
|
6650: d09a beq.n 6588 <_lv_blend_fill+0x91c>
|
|
(uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8;
|
|
6652: 465e mov r6, fp
|
|
6654: 436e muls r6, r5
|
|
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
|
|
6656: 0a36 lsrs r6, r6, #8
|
|
6658: e799 b.n 658e <_lv_blend_fill+0x922>
|
|
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
|
|
665a: 880a ldrh r2, [r1, #0]
|
|
665c: 454a cmp r2, r9
|
|
665e: d196 bne.n 658e <_lv_blend_fill+0x922>
|
|
6660: e7ea b.n 6638 <_lv_blend_fill+0x9cc>
|
|
if(opa_tmp == LV_OPA_COVER) last_res_color = color;
|
|
6662: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
6664: e7e6 b.n 6634 <_lv_blend_fill+0x9c8>
|
|
disp_buf_first += disp_w;
|
|
6666: 9907 ldr r1, [sp, #28]
|
|
6668: 980f ldr r0, [sp, #60] ; 0x3c
|
|
666a: 4680 mov r8, r0
|
|
666c: 4441 add r1, r8
|
|
666e: 9107 str r1, [sp, #28]
|
|
6670: 9906 ldr r1, [sp, #24]
|
|
6672: 980b ldr r0, [sp, #44] ; 0x2c
|
|
6674: 4680 mov r8, r0
|
|
6676: 4441 add r1, r8
|
|
6678: 9106 str r1, [sp, #24]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
667a: 990c ldr r1, [sp, #48] ; 0x30
|
|
667c: 3101 adds r1, #1
|
|
667e: 0008 movs r0, r1
|
|
6680: 910c str r1, [sp, #48] ; 0x30
|
|
6682: a910 add r1, sp, #64 ; 0x40
|
|
6684: 2406 movs r4, #6
|
|
6686: 5f09 ldrsh r1, [r1, r4]
|
|
6688: 4288 cmp r0, r1
|
|
668a: dd01 ble.n 6690 <_lv_blend_fill+0xa24>
|
|
668c: f7ff fb06 bl 5c9c <_lv_blend_fill+0x30>
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
6690: 990a ldr r1, [sp, #40] ; 0x28
|
|
6692: 2900 cmp r1, #0
|
|
6694: dde7 ble.n 6666 <_lv_blend_fill+0x9fa>
|
|
6696: 9907 ldr r1, [sp, #28]
|
|
6698: 9806 ldr r0, [sp, #24]
|
|
669a: 0004 movs r4, r0
|
|
669c: 9d0b ldr r5, [sp, #44] ; 0x2c
|
|
669e: 46a8 mov r8, r5
|
|
66a0: 4444 add r4, r8
|
|
66a2: 0027 movs r7, r4
|
|
66a4: 4ca7 ldr r4, [pc, #668] ; (6944 <_lv_blend_fill+0xcd8>)
|
|
66a6: 46a0 mov r8, r4
|
|
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
|
|
66a8: 465c mov r4, fp
|
|
66aa: 940d str r4, [sp, #52] ; 0x34
|
|
66ac: e7ca b.n 6644 <_lv_blend_fill+0x9d8>
|
|
66ae: 466b mov r3, sp
|
|
66b0: 8a9c ldrh r4, [r3, #20]
|
|
switch(mode) {
|
|
66b2: 2e01 cmp r6, #1
|
|
66b4: d045 beq.n 6742 <_lv_blend_fill+0xad6>
|
|
66b6: 2e02 cmp r6, #2
|
|
66b8: d001 beq.n 66be <_lv_blend_fill+0xa52>
|
|
66ba: f7ff faef bl 5c9c <_lv_blend_fill+0x30>
|
|
blend_fp = color_blend_true_color_subtractive;
|
|
66be: 4ba2 ldr r3, [pc, #648] ; (6948 <_lv_blend_fill+0xcdc>)
|
|
66c0: 9309 str r3, [sp, #36] ; 0x24
|
|
66c2: 466b mov r3, sp
|
|
66c4: 8a9a ldrh r2, [r3, #20]
|
|
66c6: 06d3 lsls r3, r2, #27
|
|
66c8: 0edb lsrs r3, r3, #27
|
|
66ca: 930e str r3, [sp, #56] ; 0x38
|
|
66cc: 0553 lsls r3, r2, #21
|
|
66ce: 0e9b lsrs r3, r3, #26
|
|
66d0: 930c str r3, [sp, #48] ; 0x30
|
|
66d2: 0416 lsls r6, r2, #16
|
|
66d4: 0ef3 lsrs r3, r6, #27
|
|
66d6: 930d str r3, [sp, #52] ; 0x34
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
66d8: 4643 mov r3, r8
|
|
66da: 8a9b ldrh r3, [r3, #20]
|
|
66dc: 3301 adds r3, #1
|
|
66de: 4642 mov r2, r8
|
|
66e0: 8a12 ldrh r2, [r2, #16]
|
|
66e2: 1a9b subs r3, r3, r2
|
|
66e4: b219 sxth r1, r3
|
|
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
|
|
66e6: 9508 str r5, [sp, #32]
|
|
66e8: 434d muls r5, r1
|
|
66ea: 006d lsls r5, r5, #1
|
|
66ec: 9b04 ldr r3, [sp, #16]
|
|
66ee: 469c mov ip, r3
|
|
66f0: 44ac add ip, r5
|
|
66f2: 4663 mov r3, ip
|
|
66f4: 9307 str r3, [sp, #28]
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
66f6: 2f01 cmp r7, #1
|
|
66f8: d026 beq.n 6748 <_lv_blend_fill+0xadc>
|
|
66fa: 3001 adds r0, #1
|
|
66fc: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
66fe: 1ac0 subs r0, r0, r3
|
|
6700: b203 sxth r3, r0
|
|
6702: 4698 mov r8, r3
|
|
const lv_opa_t * mask_tmp = mask - draw_area->x1;
|
|
6704: 9b06 ldr r3, [sp, #24]
|
|
6706: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
6708: 1a9e subs r6, r3, r2
|
|
last_dest_color.full = disp_buf_tmp[0].full;
|
|
670a: 9b07 ldr r3, [sp, #28]
|
|
670c: 881a ldrh r2, [r3, #0]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
670e: 9b08 ldr r3, [sp, #32]
|
|
6710: 454b cmp r3, r9
|
|
6712: dd01 ble.n 6718 <_lv_blend_fill+0xaac>
|
|
6714: f7ff fac2 bl 5c9c <_lv_blend_fill+0x30>
|
|
disp_buf_tmp += disp_w;
|
|
6718: 004b lsls r3, r1, #1
|
|
671a: 930a str r3, [sp, #40] ; 0x28
|
|
671c: 0010 movs r0, r2
|
|
671e: 2100 movs r1, #0
|
|
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
|
|
6720: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6722: 015b lsls r3, r3, #5
|
|
6724: 469a mov sl, r3
|
|
6726: 4643 mov r3, r8
|
|
6728: 930b str r3, [sp, #44] ; 0x2c
|
|
672a: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
672c: 4698 mov r8, r3
|
|
672e: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
6730: 4699 mov r9, r3
|
|
6732: 466b mov r3, sp
|
|
6734: 821c strh r4, [r3, #16]
|
|
6736: 0034 movs r4, r6
|
|
6738: 465b mov r3, fp
|
|
673a: 9306 str r3, [sp, #24]
|
|
673c: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
673e: 469b mov fp, r3
|
|
6740: e0de b.n 6900 <_lv_blend_fill+0xc94>
|
|
blend_fp = color_blend_true_color_additive;
|
|
6742: 4b82 ldr r3, [pc, #520] ; (694c <_lv_blend_fill+0xce0>)
|
|
6744: 9309 str r3, [sp, #36] ; 0x24
|
|
6746: e7bc b.n 66c2 <_lv_blend_fill+0xa56>
|
|
lv_color_t last_dest_color = LV_COLOR_BLACK;
|
|
6748: 2300 movs r3, #0
|
|
674a: 466a mov r2, sp
|
|
674c: 8293 strh r3, [r2, #20]
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
674e: 465b mov r3, fp
|
|
6750: 9f0d ldr r7, [sp, #52] ; 0x34
|
|
6752: 437b muls r3, r7
|
|
6754: 0218 lsls r0, r3, #8
|
|
6756: 18c0 adds r0, r0, r3
|
|
6758: 01c0 lsls r0, r0, #7
|
|
675a: 18c0 adds r0, r0, r3
|
|
675c: 0dc0 lsrs r0, r0, #23
|
|
675e: 251f movs r5, #31
|
|
6760: 4028 ands r0, r5
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6762: 465a mov r2, fp
|
|
6764: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6766: 435a muls r2, r3
|
|
6768: 0213 lsls r3, r2, #8
|
|
676a: 189b adds r3, r3, r2
|
|
676c: 01db lsls r3, r3, #7
|
|
676e: 189b adds r3, r3, r2
|
|
6770: 00db lsls r3, r3, #3
|
|
6772: 0e9a lsrs r2, r3, #26
|
|
6774: 4692 mov sl, r2
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6776: 465a mov r2, fp
|
|
6778: 9e0e ldr r6, [sp, #56] ; 0x38
|
|
677a: 4372 muls r2, r6
|
|
677c: 0213 lsls r3, r2, #8
|
|
677e: 189b adds r3, r3, r2
|
|
6780: 01db lsls r3, r3, #7
|
|
6782: 189b adds r3, r3, r2
|
|
6784: 0ddb lsrs r3, r3, #23
|
|
6786: 401d ands r5, r3
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6788: 9a08 ldr r2, [sp, #32]
|
|
678a: 454a cmp r2, r9
|
|
678c: dd01 ble.n 6792 <_lv_blend_fill+0xb26>
|
|
678e: f7ff fa85 bl 5c9c <_lv_blend_fill+0x30>
|
|
disp_buf_tmp += disp_w;
|
|
6792: 004a lsls r2, r1, #1
|
|
6794: 4691 mov r9, r2
|
|
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
|
|
6796: 0033 movs r3, r6
|
|
6798: 221f movs r2, #31
|
|
679a: 4013 ands r3, r2
|
|
679c: 4698 mov r8, r3
|
|
679e: 464a mov r2, r9
|
|
67a0: 920b str r2, [sp, #44] ; 0x2c
|
|
67a2: 46b9 mov r9, r7
|
|
67a4: 466b mov r3, sp
|
|
67a6: 831c strh r4, [r3, #24]
|
|
67a8: 002c movs r4, r5
|
|
67aa: 465a mov r2, fp
|
|
67ac: 920a str r2, [sp, #40] ; 0x28
|
|
67ae: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
67b0: 469b mov fp, r3
|
|
67b2: e050 b.n 6856 <_lv_blend_fill+0xbea>
|
|
disp_buf_tmp[x] = last_res_color;
|
|
67b4: 782b ldrb r3, [r5, #0]
|
|
67b6: 221f movs r2, #31
|
|
67b8: 4393 bics r3, r2
|
|
67ba: 9a04 ldr r2, [sp, #16]
|
|
67bc: 4313 orrs r3, r2
|
|
67be: 702b strb r3, [r5, #0]
|
|
67c0: 017a lsls r2, r7, #5
|
|
67c2: 882b ldrh r3, [r5, #0]
|
|
67c4: 469c mov ip, r3
|
|
67c6: 4b5f ldr r3, [pc, #380] ; (6944 <_lv_blend_fill+0xcd8>)
|
|
67c8: 4661 mov r1, ip
|
|
67ca: 400b ands r3, r1
|
|
67cc: 4313 orrs r3, r2
|
|
67ce: 802b strh r3, [r5, #0]
|
|
67d0: 00c2 lsls r2, r0, #3
|
|
67d2: 055b lsls r3, r3, #21
|
|
67d4: 0f5b lsrs r3, r3, #29
|
|
67d6: 4313 orrs r3, r2
|
|
67d8: 706b strb r3, [r5, #1]
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
67da: 3401 adds r4, #1
|
|
67dc: 3602 adds r6, #2
|
|
67de: ab10 add r3, sp, #64 ; 0x40
|
|
67e0: 2204 movs r2, #4
|
|
67e2: 5e9b ldrsh r3, [r3, r2]
|
|
67e4: 429c cmp r4, r3
|
|
67e6: dc24 bgt.n 6832 <_lv_blend_fill+0xbc6>
|
|
if(last_dest_color.full != disp_buf_tmp[x].full) {
|
|
67e8: 0035 movs r5, r6
|
|
67ea: 466b mov r3, sp
|
|
67ec: 8a9b ldrh r3, [r3, #20]
|
|
67ee: 8832 ldrh r2, [r6, #0]
|
|
67f0: 4293 cmp r3, r2
|
|
67f2: d0df beq.n 67b4 <_lv_blend_fill+0xb48>
|
|
last_dest_color = disp_buf_tmp[x];
|
|
67f4: 0011 movs r1, r2
|
|
67f6: 466b mov r3, sp
|
|
67f8: 829a strh r2, [r3, #20]
|
|
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
|
|
67fa: 9806 ldr r0, [sp, #24]
|
|
67fc: 231f movs r3, #31
|
|
67fe: 4398 bics r0, r3
|
|
6800: 4643 mov r3, r8
|
|
6802: 4318 orrs r0, r3
|
|
6804: 465b mov r3, fp
|
|
6806: 015b lsls r3, r3, #5
|
|
6808: 4f4e ldr r7, [pc, #312] ; (6944 <_lv_blend_fill+0xcd8>)
|
|
680a: 4038 ands r0, r7
|
|
680c: 4318 orrs r0, r3
|
|
680e: 464b mov r3, r9
|
|
6810: 02db lsls r3, r3, #11
|
|
6812: 0540 lsls r0, r0, #21
|
|
6814: 0d40 lsrs r0, r0, #21
|
|
6816: 4318 orrs r0, r3
|
|
6818: 466b mov r3, sp
|
|
681a: 8318 strh r0, [r3, #24]
|
|
681c: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
681e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6820: 4798 blx r3
|
|
6822: 06c1 lsls r1, r0, #27
|
|
6824: 0ecb lsrs r3, r1, #27
|
|
6826: 9304 str r3, [sp, #16]
|
|
6828: 0547 lsls r7, r0, #21
|
|
682a: 0ebf lsrs r7, r7, #26
|
|
682c: 0400 lsls r0, r0, #16
|
|
682e: 0ec0 lsrs r0, r0, #27
|
|
6830: e7c0 b.n 67b4 <_lv_blend_fill+0xb48>
|
|
6832: 9c04 ldr r4, [sp, #16]
|
|
6834: 46ba mov sl, r7
|
|
disp_buf_tmp += disp_w;
|
|
6836: 9b07 ldr r3, [sp, #28]
|
|
6838: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
683a: 4694 mov ip, r2
|
|
683c: 4463 add r3, ip
|
|
683e: 9307 str r3, [sp, #28]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6840: 9b08 ldr r3, [sp, #32]
|
|
6842: 3301 adds r3, #1
|
|
6844: 001a movs r2, r3
|
|
6846: 9308 str r3, [sp, #32]
|
|
6848: ab10 add r3, sp, #64 ; 0x40
|
|
684a: 2106 movs r1, #6
|
|
684c: 5e5b ldrsh r3, [r3, r1]
|
|
684e: 429a cmp r2, r3
|
|
6850: dd01 ble.n 6856 <_lv_blend_fill+0xbea>
|
|
6852: f7ff fa23 bl 5c9c <_lv_blend_fill+0x30>
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6856: ab10 add r3, sp, #64 ; 0x40
|
|
6858: 2200 movs r2, #0
|
|
685a: 5e9e ldrsh r6, [r3, r2]
|
|
685c: 0037 movs r7, r6
|
|
685e: 2204 movs r2, #4
|
|
6860: 5e9b ldrsh r3, [r3, r2]
|
|
6862: 429e cmp r6, r3
|
|
6864: dce7 bgt.n 6836 <_lv_blend_fill+0xbca>
|
|
6866: 0076 lsls r6, r6, #1
|
|
6868: 9b07 ldr r3, [sp, #28]
|
|
686a: 469c mov ip, r3
|
|
686c: 4466 add r6, ip
|
|
686e: 9404 str r4, [sp, #16]
|
|
6870: 003c movs r4, r7
|
|
6872: 4657 mov r7, sl
|
|
6874: e7b8 b.n 67e8 <_lv_blend_fill+0xb7c>
|
|
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
|
|
6876: 883a ldrh r2, [r7, #0]
|
|
6878: 4694 mov ip, r2
|
|
687a: 9a05 ldr r2, [sp, #20]
|
|
687c: 4594 cmp ip, r2
|
|
687e: d124 bne.n 68ca <_lv_blend_fill+0xc5e>
|
|
6880: e015 b.n 68ae <_lv_blend_fill+0xc42>
|
|
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
|
|
6882: 231f movs r3, #31
|
|
6884: 9804 ldr r0, [sp, #16]
|
|
6886: 4398 bics r0, r3
|
|
6888: 465b mov r3, fp
|
|
688a: 4318 orrs r0, r3
|
|
688c: 4b2d ldr r3, [pc, #180] ; (6944 <_lv_blend_fill+0xcd8>)
|
|
688e: 4018 ands r0, r3
|
|
6890: 4653 mov r3, sl
|
|
6892: 4318 orrs r0, r3
|
|
6894: 464b mov r3, r9
|
|
6896: 02db lsls r3, r3, #11
|
|
6898: 0540 lsls r0, r0, #21
|
|
689a: 0d40 lsrs r0, r0, #21
|
|
689c: 4318 orrs r0, r3
|
|
689e: 466b mov r3, sp
|
|
68a0: 8218 strh r0, [r3, #16]
|
|
68a2: 8839 ldrh r1, [r7, #0]
|
|
68a4: 47c0 blx r8
|
|
68a6: b280 uxth r0, r0
|
|
last_mask = mask_tmp[x];
|
|
68a8: 5da1 ldrb r1, [r4, r6]
|
|
last_dest_color.full = disp_buf_tmp[x].full;
|
|
68aa: 883b ldrh r3, [r7, #0]
|
|
68ac: 9305 str r3, [sp, #20]
|
|
disp_buf_tmp[x] = last_res_color;
|
|
68ae: 8038 strh r0, [r7, #0]
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
68b0: 3501 adds r5, #1
|
|
68b2: 3702 adds r7, #2
|
|
68b4: ab10 add r3, sp, #64 ; 0x40
|
|
68b6: 2604 movs r6, #4
|
|
68b8: 5f9b ldrsh r3, [r3, r6]
|
|
68ba: 429d cmp r5, r3
|
|
68bc: dc0c bgt.n 68d8 <_lv_blend_fill+0xc6c>
|
|
68be: 002e movs r6, r5
|
|
if(mask_tmp[x] == 0) continue;
|
|
68c0: 5d63 ldrb r3, [r4, r5]
|
|
68c2: 2b00 cmp r3, #0
|
|
68c4: d0f4 beq.n 68b0 <_lv_blend_fill+0xc44>
|
|
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
|
|
68c6: 428b cmp r3, r1
|
|
68c8: d0d5 beq.n 6876 <_lv_blend_fill+0xc0a>
|
|
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
|
|
68ca: 9906 ldr r1, [sp, #24]
|
|
68cc: 000a movs r2, r1
|
|
68ce: 2bf9 cmp r3, #249 ; 0xf9
|
|
68d0: d8d7 bhi.n 6882 <_lv_blend_fill+0xc16>
|
|
68d2: 435a muls r2, r3
|
|
68d4: 0a12 lsrs r2, r2, #8
|
|
68d6: e7d4 b.n 6882 <_lv_blend_fill+0xc16>
|
|
68d8: 9a05 ldr r2, [sp, #20]
|
|
disp_buf_tmp += disp_w;
|
|
68da: 9b07 ldr r3, [sp, #28]
|
|
68dc: 9d0a ldr r5, [sp, #40] ; 0x28
|
|
68de: 46ac mov ip, r5
|
|
68e0: 4463 add r3, ip
|
|
68e2: 9307 str r3, [sp, #28]
|
|
68e4: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
68e6: 469c mov ip, r3
|
|
68e8: 4464 add r4, ip
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
68ea: 9b08 ldr r3, [sp, #32]
|
|
68ec: 3301 adds r3, #1
|
|
68ee: 001d movs r5, r3
|
|
68f0: 9308 str r3, [sp, #32]
|
|
68f2: ab10 add r3, sp, #64 ; 0x40
|
|
68f4: 2606 movs r6, #6
|
|
68f6: 5f9b ldrsh r3, [r3, r6]
|
|
68f8: 429d cmp r5, r3
|
|
68fa: dd01 ble.n 6900 <_lv_blend_fill+0xc94>
|
|
68fc: f7ff f9ce bl 5c9c <_lv_blend_fill+0x30>
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6900: ab10 add r3, sp, #64 ; 0x40
|
|
6902: 2500 movs r5, #0
|
|
6904: 5f5f ldrsh r7, [r3, r5]
|
|
6906: 003d movs r5, r7
|
|
6908: 2604 movs r6, #4
|
|
690a: 5f9b ldrsh r3, [r3, r6]
|
|
690c: 429f cmp r7, r3
|
|
690e: dce4 bgt.n 68da <_lv_blend_fill+0xc6e>
|
|
6910: 007f lsls r7, r7, #1
|
|
6912: 9b07 ldr r3, [sp, #28]
|
|
6914: 469c mov ip, r3
|
|
6916: 4467 add r7, ip
|
|
6918: 9205 str r2, [sp, #20]
|
|
691a: e7d0 b.n 68be <_lv_blend_fill+0xc52>
|
|
FILL_NORMAL_MASK_PX(x, color)
|
|
691c: 0022 movs r2, r4
|
|
for(; x <= x_end4; x += 4) {
|
|
691e: 9905 ldr r1, [sp, #20]
|
|
6920: 4299 cmp r1, r3
|
|
6922: da00 bge.n 6926 <_lv_blend_fill+0xcba>
|
|
6924: e60b b.n 653e <_lv_blend_fill+0x8d2>
|
|
6926: 005c lsls r4, r3, #1
|
|
6928: 9907 ldr r1, [sp, #28]
|
|
692a: 468c mov ip, r1
|
|
692c: 4464 add r4, ip
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
692e: 271f movs r7, #31
|
|
6930: 4651 mov r1, sl
|
|
6932: 9106 str r1, [sp, #24]
|
|
6934: e463 b.n 61fe <_lv_blend_fill+0x592>
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
6936: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
6938: 2300 movs r3, #0
|
|
693a: e7f0 b.n 691e <_lv_blend_fill+0xcb2>
|
|
693c: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
693e: 2300 movs r3, #0
|
|
6940: e448 b.n 61d4 <_lv_blend_fill+0x568>
|
|
6942: 46c0 nop ; (mov r8, r8)
|
|
6944: fffff81f .word 0xfffff81f
|
|
6948: 00005bb7 .word 0x00005bb7
|
|
694c: 00005b11 .word 0x00005b11
|
|
|
|
00006950 <_lv_blend_map>:
|
|
{
|
|
6950: b5f0 push {r4, r5, r6, r7, lr}
|
|
6952: 46de mov lr, fp
|
|
6954: 4657 mov r7, sl
|
|
6956: 464e mov r6, r9
|
|
6958: 4645 mov r5, r8
|
|
695a: b5e0 push {r5, r6, r7, lr}
|
|
695c: b093 sub sp, #76 ; 0x4c
|
|
695e: 000c movs r4, r1
|
|
6960: 9207 str r2, [sp, #28]
|
|
6962: 001d movs r5, r3
|
|
6964: ab1c add r3, sp, #112 ; 0x70
|
|
6966: 781f ldrb r7, [r3, #0]
|
|
6968: ab1d add r3, sp, #116 ; 0x74
|
|
696a: 781b ldrb r3, [r3, #0]
|
|
696c: 469b mov fp, r3
|
|
696e: ab1e add r3, sp, #120 ; 0x78
|
|
6970: 781e ldrb r6, [r3, #0]
|
|
if(opa < LV_OPA_MIN) return;
|
|
6972: 465b mov r3, fp
|
|
6974: 2b04 cmp r3, #4
|
|
6976: d901 bls.n 697c <_lv_blend_map+0x2c>
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
|
|
6978: 2f00 cmp r7, #0
|
|
697a: d106 bne.n 698a <_lv_blend_map+0x3a>
|
|
}
|
|
697c: b013 add sp, #76 ; 0x4c
|
|
697e: bc3c pop {r2, r3, r4, r5}
|
|
6980: 4690 mov r8, r2
|
|
6982: 4699 mov r9, r3
|
|
6984: 46a2 mov sl, r4
|
|
6986: 46ab mov fp, r5
|
|
6988: bdf0 pop {r4, r5, r6, r7, pc}
|
|
is_common = _lv_area_intersect(&draw_area, clip_area, map_area);
|
|
698a: 000a movs r2, r1
|
|
698c: 0001 movs r1, r0
|
|
698e: a810 add r0, sp, #64 ; 0x40
|
|
6990: 4bd7 ldr r3, [pc, #860] ; (6cf0 <_lv_blend_map+0x3a0>)
|
|
6992: 4798 blx r3
|
|
if(!is_common) return;
|
|
6994: 2800 cmp r0, #0
|
|
6996: d0f1 beq.n 697c <_lv_blend_map+0x2c>
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
6998: 4bd6 ldr r3, [pc, #856] ; (6cf4 <_lv_blend_map+0x3a4>)
|
|
699a: 4798 blx r3
|
|
699c: 4680 mov r8, r0
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
699e: 4bd6 ldr r3, [pc, #856] ; (6cf8 <_lv_blend_map+0x3a8>)
|
|
69a0: 4798 blx r3
|
|
69a2: 4681 mov r9, r0
|
|
lv_color_t * disp_buf = vdb->buf_act;
|
|
69a4: 6883 ldr r3, [r0, #8]
|
|
69a6: 9305 str r3, [sp, #20]
|
|
draw_area.x1 -= disp_area->x1;
|
|
69a8: 8a02 ldrh r2, [r0, #16]
|
|
69aa: ab10 add r3, sp, #64 ; 0x40
|
|
69ac: 8819 ldrh r1, [r3, #0]
|
|
69ae: 1a89 subs r1, r1, r2
|
|
69b0: b289 uxth r1, r1
|
|
69b2: 9109 str r1, [sp, #36] ; 0x24
|
|
69b4: 468c mov ip, r1
|
|
69b6: b208 sxth r0, r1
|
|
69b8: 4682 mov sl, r0
|
|
69ba: 8018 strh r0, [r3, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
69bc: 4648 mov r0, r9
|
|
69be: 8a41 ldrh r1, [r0, #18]
|
|
69c0: 8858 ldrh r0, [r3, #2]
|
|
69c2: 1a40 subs r0, r0, r1
|
|
69c4: b280 uxth r0, r0
|
|
69c6: 900a str r0, [sp, #40] ; 0x28
|
|
69c8: b200 sxth r0, r0
|
|
69ca: 9008 str r0, [sp, #32]
|
|
69cc: 8058 strh r0, [r3, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
69ce: 8898 ldrh r0, [r3, #4]
|
|
69d0: 1a80 subs r0, r0, r2
|
|
69d2: b280 uxth r0, r0
|
|
69d4: 8098 strh r0, [r3, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
69d6: 88da ldrh r2, [r3, #6]
|
|
69d8: 1a52 subs r2, r2, r1
|
|
69da: b292 uxth r2, r2
|
|
69dc: 920b str r2, [sp, #44] ; 0x2c
|
|
69de: b212 sxth r2, r2
|
|
69e0: 920c str r2, [sp, #48] ; 0x30
|
|
69e2: 80da strh r2, [r3, #6]
|
|
if(mask && disp->driver.antialiasing == 0)
|
|
69e4: 2d00 cmp r5, #0
|
|
69e6: d014 beq.n 6a12 <_lv_blend_map+0xc2>
|
|
69e8: 4643 mov r3, r8
|
|
69ea: 7a1b ldrb r3, [r3, #8]
|
|
69ec: 07db lsls r3, r3, #31
|
|
69ee: d410 bmi.n 6a12 <_lv_blend_map+0xc2>
|
|
69f0: 1c41 adds r1, r0, #1
|
|
69f2: 4663 mov r3, ip
|
|
69f4: 1ac9 subs r1, r1, r3
|
|
69f6: b209 sxth r1, r1
|
|
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
|
|
69f8: 2900 cmp r1, #0
|
|
69fa: dd0a ble.n 6a12 <_lv_blend_map+0xc2>
|
|
69fc: 002b movs r3, r5
|
|
69fe: 1869 adds r1, r5, r1
|
|
6a00: 2280 movs r2, #128 ; 0x80
|
|
6a02: 4694 mov ip, r2
|
|
6a04: 781a ldrb r2, [r3, #0]
|
|
6a06: 4594 cmp ip, r2
|
|
6a08: 4192 sbcs r2, r2
|
|
6a0a: 701a strb r2, [r3, #0]
|
|
6a0c: 3301 adds r3, #1
|
|
6a0e: 428b cmp r3, r1
|
|
6a10: d1f8 bne.n 6a04 <_lv_blend_map+0xb4>
|
|
if(disp->driver.set_px_cb) {
|
|
6a12: 4643 mov r3, r8
|
|
6a14: 695b ldr r3, [r3, #20]
|
|
6a16: 2b00 cmp r3, #0
|
|
6a18: d100 bne.n 6a1c <_lv_blend_map+0xcc>
|
|
6a1a: e0c3 b.n 6ba4 <_lv_blend_map+0x254>
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
6a1c: 4bb5 ldr r3, [pc, #724] ; (6cf4 <_lv_blend_map+0x3a4>)
|
|
6a1e: 4798 blx r3
|
|
6a20: 900c str r0, [sp, #48] ; 0x30
|
|
6a22: 464b mov r3, r9
|
|
6a24: 2210 movs r2, #16
|
|
6a26: 5e9b ldrsh r3, [r3, r2]
|
|
6a28: 4698 mov r8, r3
|
|
6a2a: 464b mov r3, r9
|
|
6a2c: 8a9b ldrh r3, [r3, #20]
|
|
6a2e: 3301 adds r3, #1
|
|
6a30: 4642 mov r2, r8
|
|
6a32: 1a9b subs r3, r3, r2
|
|
6a34: b21b sxth r3, r3
|
|
6a36: 9306 str r3, [sp, #24]
|
|
6a38: a910 add r1, sp, #64 ; 0x40
|
|
6a3a: 2300 movs r3, #0
|
|
6a3c: 5ec8 ldrsh r0, [r1, r3]
|
|
6a3e: 2300 movs r3, #0
|
|
6a40: 5ee2 ldrsh r2, [r4, r3]
|
|
6a42: 88a3 ldrh r3, [r4, #4]
|
|
6a44: 3301 adds r3, #1
|
|
6a46: 1a9b subs r3, r3, r2
|
|
6a48: b21b sxth r3, r3
|
|
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
|
|
6a4a: 2602 movs r6, #2
|
|
6a4c: 5f89 ldrsh r1, [r1, r6]
|
|
6a4e: 9109 str r1, [sp, #36] ; 0x24
|
|
6a50: 2602 movs r6, #2
|
|
6a52: 5fa4 ldrsh r4, [r4, r6]
|
|
6a54: 46a4 mov ip, r4
|
|
6a56: 464e mov r6, r9
|
|
6a58: 2412 movs r4, #18
|
|
6a5a: 5f36 ldrsh r6, [r6, r4]
|
|
6a5c: 4664 mov r4, ip
|
|
6a5e: 1ba4 subs r4, r4, r6
|
|
6a60: 1b0c subs r4, r1, r4
|
|
6a62: 435c muls r4, r3
|
|
map_buf_tmp += (draw_area->x1 - (map_area->x1 - disp_area->x1));
|
|
6a64: 4646 mov r6, r8
|
|
6a66: 1b92 subs r2, r2, r6
|
|
map_buf_tmp -= draw_area->x1;
|
|
6a68: 1aa4 subs r4, r4, r2
|
|
6a6a: 0064 lsls r4, r4, #1
|
|
6a6c: 9a07 ldr r2, [sp, #28]
|
|
6a6e: 4694 mov ip, r2
|
|
6a70: 44a4 add ip, r4
|
|
6a72: 4662 mov r2, ip
|
|
6a74: 9208 str r2, [sp, #32]
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
6a76: 2f01 cmp r7, #1
|
|
6a78: d053 beq.n 6b22 <_lv_blend_map+0x1d2>
|
|
const lv_opa_t * mask_tmp = mask - draw_area->x1;
|
|
6a7a: 1a2a subs r2, r5, r0
|
|
6a7c: 4690 mov r8, r2
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6a7e: aa10 add r2, sp, #64 ; 0x40
|
|
6a80: 2406 movs r4, #6
|
|
6a82: 5f12 ldrsh r2, [r2, r4]
|
|
6a84: 9c09 ldr r4, [sp, #36] ; 0x24
|
|
6a86: 4294 cmp r4, r2
|
|
6a88: dd00 ble.n 6a8c <_lv_blend_map+0x13c>
|
|
6a8a: e777 b.n 697c <_lv_blend_map+0x2c>
|
|
6a8c: aa10 add r2, sp, #64 ; 0x40
|
|
6a8e: 2404 movs r4, #4
|
|
6a90: 5f12 ldrsh r2, [r2, r4]
|
|
map_buf_tmp += map_w;
|
|
6a92: 005b lsls r3, r3, #1
|
|
6a94: 930a str r3, [sp, #40] ; 0x28
|
|
6a96: 9109 str r1, [sp, #36] ; 0x24
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6a98: ab10 add r3, sp, #64 ; 0x40
|
|
6a9a: 9307 str r3, [sp, #28]
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
|
|
6a9c: ab01 add r3, sp, #4
|
|
6a9e: 469a mov sl, r3
|
|
6aa0: 3201 adds r2, #1
|
|
6aa2: 1a13 subs r3, r2, r0
|
|
mask_tmp += draw_area_w;
|
|
6aa4: b21b sxth r3, r3
|
|
6aa6: 930b str r3, [sp, #44] ; 0x2c
|
|
6aa8: 9e0c ldr r6, [sp, #48] ; 0x30
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6aaa: 9a07 ldr r2, [sp, #28]
|
|
6aac: 0013 movs r3, r2
|
|
6aae: 2500 movs r5, #0
|
|
6ab0: 5f5d ldrsh r5, [r3, r5]
|
|
6ab2: 002c movs r4, r5
|
|
6ab4: 0013 movs r3, r2
|
|
6ab6: 2204 movs r2, #4
|
|
6ab8: 5e9b ldrsh r3, [r3, r2]
|
|
6aba: 429d cmp r5, r3
|
|
6abc: dc1f bgt.n 6afe <_lv_blend_map+0x1ae>
|
|
6abe: 006d lsls r5, r5, #1
|
|
6ac0: 9b08 ldr r3, [sp, #32]
|
|
6ac2: 469c mov ip, r3
|
|
6ac4: 4465 add r5, ip
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
|
|
6ac6: 466b mov r3, sp
|
|
6ac8: 2224 movs r2, #36 ; 0x24
|
|
6aca: 5e9b ldrsh r3, [r3, r2]
|
|
6acc: 4699 mov r9, r3
|
|
6ace: b223 sxth r3, r4
|
|
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
|
|
6ad0: 4642 mov r2, r8
|
|
6ad2: 5d12 ldrb r2, [r2, r4]
|
|
6ad4: 4659 mov r1, fp
|
|
6ad6: 434a muls r2, r1
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
|
|
6ad8: 0a12 lsrs r2, r2, #8
|
|
6ada: 9202 str r2, [sp, #8]
|
|
6adc: 882a ldrh r2, [r5, #0]
|
|
6ade: 4651 mov r1, sl
|
|
6ae0: 800a strh r2, [r1, #0]
|
|
6ae2: 464a mov r2, r9
|
|
6ae4: 9200 str r2, [sp, #0]
|
|
6ae6: 9a06 ldr r2, [sp, #24]
|
|
6ae8: 9905 ldr r1, [sp, #20]
|
|
6aea: 0030 movs r0, r6
|
|
6aec: 6977 ldr r7, [r6, #20]
|
|
6aee: 47b8 blx r7
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6af0: 3401 adds r4, #1
|
|
6af2: 3502 adds r5, #2
|
|
6af4: 9b07 ldr r3, [sp, #28]
|
|
6af6: 2204 movs r2, #4
|
|
6af8: 5e9b ldrsh r3, [r3, r2]
|
|
6afa: 429c cmp r4, r3
|
|
6afc: dde7 ble.n 6ace <_lv_blend_map+0x17e>
|
|
6afe: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6b00: 469c mov ip, r3
|
|
6b02: 44e0 add r8, ip
|
|
map_buf_tmp += map_w;
|
|
6b04: 9b08 ldr r3, [sp, #32]
|
|
6b06: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
6b08: 4694 mov ip, r2
|
|
6b0a: 4463 add r3, ip
|
|
6b0c: 9308 str r3, [sp, #32]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6b0e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6b10: 3301 adds r3, #1
|
|
6b12: 001a movs r2, r3
|
|
6b14: 9309 str r3, [sp, #36] ; 0x24
|
|
6b16: 9b07 ldr r3, [sp, #28]
|
|
6b18: 2106 movs r1, #6
|
|
6b1a: 5e5b ldrsh r3, [r3, r1]
|
|
6b1c: 429a cmp r2, r3
|
|
6b1e: ddc4 ble.n 6aaa <_lv_blend_map+0x15a>
|
|
6b20: e72c b.n 697c <_lv_blend_map+0x2c>
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6b22: aa10 add r2, sp, #64 ; 0x40
|
|
6b24: 2006 movs r0, #6
|
|
6b26: 5e12 ldrsh r2, [r2, r0]
|
|
6b28: 428a cmp r2, r1
|
|
6b2a: da00 bge.n 6b2e <_lv_blend_map+0x1de>
|
|
6b2c: e726 b.n 697c <_lv_blend_map+0x2c>
|
|
map_buf_tmp += map_w;
|
|
6b2e: 005b lsls r3, r3, #1
|
|
6b30: 9309 str r3, [sp, #36] ; 0x24
|
|
6b32: 468a mov sl, r1
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6b34: ab10 add r3, sp, #64 ; 0x40
|
|
6b36: 9307 str r3, [sp, #28]
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
|
|
6b38: ab01 add r3, sp, #4
|
|
6b3a: 4699 mov r9, r3
|
|
6b3c: 9e0c ldr r6, [sp, #48] ; 0x30
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6b3e: 9a07 ldr r2, [sp, #28]
|
|
6b40: 0013 movs r3, r2
|
|
6b42: 2700 movs r7, #0
|
|
6b44: 5fdf ldrsh r7, [r3, r7]
|
|
6b46: 003c movs r4, r7
|
|
6b48: 0013 movs r3, r2
|
|
6b4a: 2204 movs r2, #4
|
|
6b4c: 5e9b ldrsh r3, [r3, r2]
|
|
6b4e: 429f cmp r7, r3
|
|
6b50: dc1a bgt.n 6b88 <_lv_blend_map+0x238>
|
|
6b52: 007f lsls r7, r7, #1
|
|
6b54: 9b08 ldr r3, [sp, #32]
|
|
6b56: 469c mov ip, r3
|
|
6b58: 4467 add r7, ip
|
|
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
|
|
6b5a: 4653 mov r3, sl
|
|
6b5c: b21b sxth r3, r3
|
|
6b5e: 4698 mov r8, r3
|
|
6b60: b223 sxth r3, r4
|
|
6b62: 465a mov r2, fp
|
|
6b64: 9202 str r2, [sp, #8]
|
|
6b66: 883a ldrh r2, [r7, #0]
|
|
6b68: 4649 mov r1, r9
|
|
6b6a: 800a strh r2, [r1, #0]
|
|
6b6c: 4642 mov r2, r8
|
|
6b6e: 9200 str r2, [sp, #0]
|
|
6b70: 9a06 ldr r2, [sp, #24]
|
|
6b72: 9905 ldr r1, [sp, #20]
|
|
6b74: 0030 movs r0, r6
|
|
6b76: 6975 ldr r5, [r6, #20]
|
|
6b78: 47a8 blx r5
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
6b7a: 3401 adds r4, #1
|
|
6b7c: 3702 adds r7, #2
|
|
6b7e: 9b07 ldr r3, [sp, #28]
|
|
6b80: 2204 movs r2, #4
|
|
6b82: 5e9b ldrsh r3, [r3, r2]
|
|
6b84: 429c cmp r4, r3
|
|
6b86: ddeb ble.n 6b60 <_lv_blend_map+0x210>
|
|
map_buf_tmp += map_w;
|
|
6b88: 9b08 ldr r3, [sp, #32]
|
|
6b8a: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
6b8c: 4694 mov ip, r2
|
|
6b8e: 4463 add r3, ip
|
|
6b90: 9308 str r3, [sp, #32]
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6b92: 2301 movs r3, #1
|
|
6b94: 469c mov ip, r3
|
|
6b96: 44e2 add sl, ip
|
|
6b98: 9b07 ldr r3, [sp, #28]
|
|
6b9a: 2206 movs r2, #6
|
|
6b9c: 5e9b ldrsh r3, [r3, r2]
|
|
6b9e: 459a cmp sl, r3
|
|
6ba0: ddcd ble.n 6b3e <_lv_blend_map+0x1ee>
|
|
6ba2: e6eb b.n 697c <_lv_blend_map+0x2c>
|
|
else if(mode == LV_BLEND_MODE_NORMAL) {
|
|
6ba4: 2e00 cmp r6, #0
|
|
6ba6: d001 beq.n 6bac <_lv_blend_map+0x25c>
|
|
6ba8: f000 fbfd bl 73a6 <_lv_blend_map+0xa56>
|
|
6bac: 464b mov r3, r9
|
|
6bae: 2210 movs r2, #16
|
|
6bb0: 5e9b ldrsh r3, [r3, r2]
|
|
6bb2: 001a movs r2, r3
|
|
6bb4: 464b mov r3, r9
|
|
6bb6: 8a9b ldrh r3, [r3, #20]
|
|
6bb8: 3301 adds r3, #1
|
|
6bba: 920d str r2, [sp, #52] ; 0x34
|
|
6bbc: 1a9b subs r3, r3, r2
|
|
6bbe: b21b sxth r3, r3
|
|
6bc0: 4698 mov r8, r3
|
|
6bc2: 3001 adds r0, #1
|
|
6bc4: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6bc6: 1ac0 subs r0, r0, r3
|
|
6bc8: b203 sxth r3, r0
|
|
6bca: 930c str r3, [sp, #48] ; 0x30
|
|
int32_t draw_area_w = lv_area_get_width(draw_area);
|
|
6bcc: 9306 str r3, [sp, #24]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
6bce: 980b ldr r0, [sp, #44] ; 0x2c
|
|
6bd0: 3001 adds r0, #1
|
|
6bd2: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
6bd4: 1ac0 subs r0, r0, r3
|
|
int32_t draw_area_h = lv_area_get_height(draw_area);
|
|
6bd6: b203 sxth r3, r0
|
|
6bd8: 930b str r3, [sp, #44] ; 0x2c
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
6bda: 2300 movs r3, #0
|
|
6bdc: 5ee2 ldrsh r2, [r4, r3]
|
|
6bde: 88a6 ldrh r6, [r4, #4]
|
|
6be0: 3601 adds r6, #1
|
|
6be2: 1ab6 subs r6, r6, r2
|
|
6be4: b236 sxth r6, r6
|
|
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
|
|
6be6: 9808 ldr r0, [sp, #32]
|
|
6be8: 0003 movs r3, r0
|
|
6bea: 4641 mov r1, r8
|
|
6bec: 434b muls r3, r1
|
|
6bee: 4453 add r3, sl
|
|
6bf0: 005b lsls r3, r3, #1
|
|
6bf2: 9905 ldr r1, [sp, #20]
|
|
6bf4: 468c mov ip, r1
|
|
6bf6: 449c add ip, r3
|
|
6bf8: 4663 mov r3, ip
|
|
6bfa: 9308 str r3, [sp, #32]
|
|
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
|
|
6bfc: 2102 movs r1, #2
|
|
6bfe: 5e63 ldrsh r3, [r4, r1]
|
|
6c00: 4649 mov r1, r9
|
|
6c02: 2412 movs r4, #18
|
|
6c04: 5f09 ldrsh r1, [r1, r4]
|
|
6c06: 1a5b subs r3, r3, r1
|
|
6c08: 1ac3 subs r3, r0, r3
|
|
6c0a: 4373 muls r3, r6
|
|
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
|
|
6c0c: 990d ldr r1, [sp, #52] ; 0x34
|
|
6c0e: 1a52 subs r2, r2, r1
|
|
6c10: 4651 mov r1, sl
|
|
6c12: 1a8a subs r2, r1, r2
|
|
6c14: 189b adds r3, r3, r2
|
|
6c16: 005b lsls r3, r3, #1
|
|
6c18: 9a07 ldr r2, [sp, #28]
|
|
6c1a: 4694 mov ip, r2
|
|
6c1c: 449c add ip, r3
|
|
6c1e: 4663 mov r3, ip
|
|
6c20: 9309 str r3, [sp, #36] ; 0x24
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
6c22: 4b34 ldr r3, [pc, #208] ; (6cf4 <_lv_blend_map+0x3a4>)
|
|
6c24: 4798 blx r3
|
|
6c26: 0004 movs r4, r0
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
6c28: 2f01 cmp r7, #1
|
|
6c2a: d015 beq.n 6c58 <_lv_blend_map+0x308>
|
|
if(opa > LV_OPA_MAX) {
|
|
6c2c: 465b mov r3, fp
|
|
6c2e: 2bfa cmp r3, #250 ; 0xfa
|
|
6c30: d900 bls.n 6c34 <_lv_blend_map+0x2e4>
|
|
6c32: e0eb b.n 6e0c <_lv_blend_map+0x4bc>
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6c34: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6c36: 2b00 cmp r3, #0
|
|
6c38: dc00 bgt.n 6c3c <_lv_blend_map+0x2ec>
|
|
6c3a: e69f b.n 697c <_lv_blend_map+0x2c>
|
|
disp_buf_first += disp_w;
|
|
6c3c: 4643 mov r3, r8
|
|
6c3e: 005b lsls r3, r3, #1
|
|
6c40: 930e str r3, [sp, #56] ; 0x38
|
|
map_buf_first += map_w;
|
|
6c42: 0073 lsls r3, r6, #1
|
|
6c44: 930f str r3, [sp, #60] ; 0x3c
|
|
6c46: 46a9 mov r9, r5
|
|
6c48: 2300 movs r3, #0
|
|
6c4a: 930d str r3, [sp, #52] ; 0x34
|
|
6c4c: 331f adds r3, #31
|
|
6c4e: 4698 mov r8, r3
|
|
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
|
|
6c50: 465b mov r3, fp
|
|
6c52: 9307 str r3, [sp, #28]
|
|
6c54: 930a str r3, [sp, #40] ; 0x28
|
|
6c56: e39a b.n 738e <_lv_blend_map+0xa3e>
|
|
if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) {
|
|
6c58: 6a03 ldr r3, [r0, #32]
|
|
6c5a: 2b00 cmp r3, #0
|
|
6c5c: d02a beq.n 6cb4 <_lv_blend_map+0x364>
|
|
6c5e: a810 add r0, sp, #64 ; 0x40
|
|
6c60: 4b26 ldr r3, [pc, #152] ; (6cfc <_lv_blend_map+0x3ac>)
|
|
6c62: 4798 blx r3
|
|
6c64: 28f0 cmp r0, #240 ; 0xf0
|
|
6c66: d925 bls.n 6cb4 <_lv_blend_map+0x364>
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6c68: ab10 add r3, sp, #64 ; 0x40
|
|
6c6a: 2202 movs r2, #2
|
|
6c6c: 5e9f ldrsh r7, [r3, r2]
|
|
6c6e: 2206 movs r2, #6
|
|
6c70: 5e9b ldrsh r3, [r3, r2]
|
|
6c72: 429f cmp r7, r3
|
|
6c74: dd00 ble.n 6c78 <_lv_blend_map+0x328>
|
|
6c76: e681 b.n 697c <_lv_blend_map+0x2c>
|
|
disp_buf_first += disp_w;
|
|
6c78: 4643 mov r3, r8
|
|
6c7a: 005b lsls r3, r3, #1
|
|
6c7c: 4698 mov r8, r3
|
|
map_buf_first += map_w;
|
|
6c7e: 0076 lsls r6, r6, #1
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6c80: ab10 add r3, sp, #64 ; 0x40
|
|
6c82: 9305 str r3, [sp, #20]
|
|
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa);
|
|
6c84: 465b mov r3, fp
|
|
6c86: 9300 str r3, [sp, #0]
|
|
6c88: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6c8a: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
6c8c: 4692 mov sl, r2
|
|
6c8e: 9908 ldr r1, [sp, #32]
|
|
6c90: 4689 mov r9, r1
|
|
6c92: 0020 movs r0, r4
|
|
6c94: 6a25 ldr r5, [r4, #32]
|
|
6c96: 47a8 blx r5
|
|
disp_buf_first += disp_w;
|
|
6c98: 464b mov r3, r9
|
|
6c9a: 4443 add r3, r8
|
|
6c9c: 9308 str r3, [sp, #32]
|
|
map_buf_first += map_w;
|
|
6c9e: 46d4 mov ip, sl
|
|
6ca0: 44b4 add ip, r6
|
|
6ca2: 4663 mov r3, ip
|
|
6ca4: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
6ca6: 3701 adds r7, #1
|
|
6ca8: 9b05 ldr r3, [sp, #20]
|
|
6caa: 2206 movs r2, #6
|
|
6cac: 5e9b ldrsh r3, [r3, r2]
|
|
6cae: 429f cmp r7, r3
|
|
6cb0: dde8 ble.n 6c84 <_lv_blend_map+0x334>
|
|
6cb2: e663 b.n 697c <_lv_blend_map+0x2c>
|
|
if(opa > LV_OPA_MAX) {
|
|
6cb4: 465b mov r3, fp
|
|
6cb6: 2bfa cmp r3, #250 ; 0xfa
|
|
6cb8: d824 bhi.n 6d04 <_lv_blend_map+0x3b4>
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6cba: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6cbc: 2b00 cmp r3, #0
|
|
6cbe: dc00 bgt.n 6cc2 <_lv_blend_map+0x372>
|
|
6cc0: e65c b.n 697c <_lv_blend_map+0x2c>
|
|
disp_buf_first += disp_w;
|
|
6cc2: 4643 mov r3, r8
|
|
6cc4: 005b lsls r3, r3, #1
|
|
6cc6: 930a str r3, [sp, #40] ; 0x28
|
|
map_buf_first += map_w;
|
|
6cc8: 0073 lsls r3, r6, #1
|
|
6cca: 930d str r3, [sp, #52] ; 0x34
|
|
6ccc: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6cce: 005b lsls r3, r3, #1
|
|
6cd0: 930c str r3, [sp, #48] ; 0x30
|
|
6cd2: 2300 movs r3, #0
|
|
6cd4: 9307 str r3, [sp, #28]
|
|
6cd6: 27ff movs r7, #255 ; 0xff
|
|
6cd8: 465b mov r3, fp
|
|
6cda: 1aff subs r7, r7, r3
|
|
6cdc: 231f movs r3, #31
|
|
6cde: 469c mov ip, r3
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6ce0: 3320 adds r3, #32
|
|
6ce2: 4699 mov r9, r3
|
|
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
|
|
6ce4: 4b06 ldr r3, [pc, #24] ; (6d00 <_lv_blend_map+0x3b0>)
|
|
6ce6: 469a mov sl, r3
|
|
6ce8: 46b8 mov r8, r7
|
|
6cea: 465f mov r7, fp
|
|
6cec: e03b b.n 6d66 <_lv_blend_map+0x416>
|
|
6cee: 46c0 nop ; (mov r8, r8)
|
|
6cf0: 0000fc0f .word 0x0000fc0f
|
|
6cf4: 000043b1 .word 0x000043b1
|
|
6cf8: 0000f709 .word 0x0000f709
|
|
6cfc: 0000fbf3 .word 0x0000fbf3
|
|
6d00: fffff81f .word 0xfffff81f
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6d04: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6d06: 2b00 cmp r3, #0
|
|
6d08: dc00 bgt.n 6d0c <_lv_blend_map+0x3bc>
|
|
6d0a: e637 b.n 697c <_lv_blend_map+0x2c>
|
|
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
|
|
6d0c: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6d0e: 005c lsls r4, r3, #1
|
|
disp_buf_first += disp_w;
|
|
6d10: 4643 mov r3, r8
|
|
6d12: 005b lsls r3, r3, #1
|
|
6d14: 4698 mov r8, r3
|
|
map_buf_first += map_w;
|
|
6d16: 0076 lsls r6, r6, #1
|
|
6d18: 2500 movs r5, #0
|
|
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
|
|
6d1a: 4f80 ldr r7, [pc, #512] ; (6f1c <_lv_blend_map+0x5cc>)
|
|
6d1c: 0022 movs r2, r4
|
|
6d1e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6d20: 469a mov sl, r3
|
|
6d22: 0019 movs r1, r3
|
|
6d24: 9b08 ldr r3, [sp, #32]
|
|
6d26: 4699 mov r9, r3
|
|
6d28: 0018 movs r0, r3
|
|
6d2a: 47b8 blx r7
|
|
disp_buf_first += disp_w;
|
|
6d2c: 464b mov r3, r9
|
|
6d2e: 4443 add r3, r8
|
|
6d30: 9308 str r3, [sp, #32]
|
|
map_buf_first += map_w;
|
|
6d32: 46d4 mov ip, sl
|
|
6d34: 44b4 add ip, r6
|
|
6d36: 4663 mov r3, ip
|
|
6d38: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6d3a: 3501 adds r5, #1
|
|
6d3c: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6d3e: 42ab cmp r3, r5
|
|
6d40: dcec bgt.n 6d1c <_lv_blend_map+0x3cc>
|
|
6d42: e61b b.n 697c <_lv_blend_map+0x2c>
|
|
disp_buf_first += disp_w;
|
|
6d44: 9b08 ldr r3, [sp, #32]
|
|
6d46: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
6d48: 4693 mov fp, r2
|
|
6d4a: 445b add r3, fp
|
|
6d4c: 9308 str r3, [sp, #32]
|
|
map_buf_first += map_w;
|
|
6d4e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6d50: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
6d52: 4693 mov fp, r2
|
|
6d54: 445b add r3, fp
|
|
6d56: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6d58: 9b07 ldr r3, [sp, #28]
|
|
6d5a: 3301 adds r3, #1
|
|
6d5c: 9307 str r3, [sp, #28]
|
|
6d5e: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
6d60: 429a cmp r2, r3
|
|
6d62: dc00 bgt.n 6d66 <_lv_blend_map+0x416>
|
|
6d64: e60a b.n 697c <_lv_blend_map+0x2c>
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
6d66: 9b06 ldr r3, [sp, #24]
|
|
6d68: 2b00 cmp r3, #0
|
|
6d6a: ddeb ble.n 6d44 <_lv_blend_map+0x3f4>
|
|
6d6c: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6d6e: 001e movs r6, r3
|
|
6d70: 9d08 ldr r5, [sp, #32]
|
|
6d72: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
6d74: 4693 mov fp, r2
|
|
6d76: 445b add r3, fp
|
|
6d78: 469b mov fp, r3
|
|
6d7a: 4641 mov r1, r8
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6d7c: 7873 ldrb r3, [r6, #1]
|
|
6d7e: 08db lsrs r3, r3, #3
|
|
6d80: 437b muls r3, r7
|
|
6d82: 786a ldrb r2, [r5, #1]
|
|
6d84: 08d2 lsrs r2, r2, #3
|
|
6d86: 434a muls r2, r1
|
|
6d88: 189a adds r2, r3, r2
|
|
6d8a: 0213 lsls r3, r2, #8
|
|
6d8c: 189b adds r3, r3, r2
|
|
6d8e: 01db lsls r3, r3, #7
|
|
6d90: 189b adds r3, r3, r2
|
|
6d92: 0ddb lsrs r3, r3, #23
|
|
6d94: 4662 mov r2, ip
|
|
6d96: 4013 ands r3, r2
|
|
6d98: 9305 str r3, [sp, #20]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6d9a: 8832 ldrh r2, [r6, #0]
|
|
6d9c: 0552 lsls r2, r2, #21
|
|
6d9e: 0e92 lsrs r2, r2, #26
|
|
6da0: 437a muls r2, r7
|
|
6da2: 882c ldrh r4, [r5, #0]
|
|
6da4: 0564 lsls r4, r4, #21
|
|
6da6: 0ea4 lsrs r4, r4, #26
|
|
6da8: 434c muls r4, r1
|
|
6daa: 1914 adds r4, r2, r4
|
|
6dac: 0222 lsls r2, r4, #8
|
|
6dae: 1912 adds r2, r2, r4
|
|
6db0: 01d2 lsls r2, r2, #7
|
|
6db2: 1912 adds r2, r2, r4
|
|
6db4: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6db6: 7834 ldrb r4, [r6, #0]
|
|
6db8: 06e4 lsls r4, r4, #27
|
|
6dba: 0ee4 lsrs r4, r4, #27
|
|
6dbc: 437c muls r4, r7
|
|
6dbe: 7828 ldrb r0, [r5, #0]
|
|
6dc0: 4680 mov r8, r0
|
|
6dc2: 06c0 lsls r0, r0, #27
|
|
6dc4: 0ec0 lsrs r0, r0, #27
|
|
6dc6: 4348 muls r0, r1
|
|
6dc8: 1820 adds r0, r4, r0
|
|
6dca: 0204 lsls r4, r0, #8
|
|
6dcc: 1824 adds r4, r4, r0
|
|
6dce: 01e4 lsls r4, r4, #7
|
|
6dd0: 1824 adds r4, r4, r0
|
|
6dd2: 0de4 lsrs r4, r4, #23
|
|
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
|
|
6dd4: 4660 mov r0, ip
|
|
6dd6: 4004 ands r4, r0
|
|
6dd8: 4640 mov r0, r8
|
|
6dda: 4663 mov r3, ip
|
|
6ddc: 4398 bics r0, r3
|
|
6dde: 4304 orrs r4, r0
|
|
6de0: 702c strb r4, [r5, #0]
|
|
6de2: 464b mov r3, r9
|
|
6de4: 401a ands r2, r3
|
|
6de6: 0154 lsls r4, r2, #5
|
|
6de8: 882a ldrh r2, [r5, #0]
|
|
6dea: 4653 mov r3, sl
|
|
6dec: 401a ands r2, r3
|
|
6dee: 4322 orrs r2, r4
|
|
6df0: 802a strh r2, [r5, #0]
|
|
6df2: 9b05 ldr r3, [sp, #20]
|
|
6df4: 00db lsls r3, r3, #3
|
|
6df6: 0a12 lsrs r2, r2, #8
|
|
6df8: 2007 movs r0, #7
|
|
6dfa: 4002 ands r2, r0
|
|
6dfc: 4313 orrs r3, r2
|
|
6dfe: 706b strb r3, [r5, #1]
|
|
6e00: 3602 adds r6, #2
|
|
6e02: 3502 adds r5, #2
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
6e04: 455e cmp r6, fp
|
|
6e06: d1b9 bne.n 6d7c <_lv_blend_map+0x42c>
|
|
6e08: 4688 mov r8, r1
|
|
6e0a: e79b b.n 6d44 <_lv_blend_map+0x3f4>
|
|
int32_t x_end4 = draw_area_w - 4;
|
|
6e0c: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
6e0e: 3b04 subs r3, #4
|
|
6e10: 9307 str r3, [sp, #28]
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
6e12: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
6e14: 2b00 cmp r3, #0
|
|
6e16: dc00 bgt.n 6e1a <_lv_blend_map+0x4ca>
|
|
6e18: e5b0 b.n 697c <_lv_blend_map+0x2c>
|
|
disp_buf_first += disp_w;
|
|
6e1a: 4643 mov r3, r8
|
|
6e1c: 005b lsls r3, r3, #1
|
|
6e1e: 930e str r3, [sp, #56] ; 0x38
|
|
map_buf_first += map_w;
|
|
6e20: 0073 lsls r3, r6, #1
|
|
6e22: 930f str r3, [sp, #60] ; 0x3c
|
|
6e24: 950a str r5, [sp, #40] ; 0x28
|
|
6e26: 2300 movs r3, #0
|
|
6e28: 930d str r3, [sp, #52] ; 0x34
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6e2a: 331f adds r3, #31
|
|
6e2c: 469b mov fp, r3
|
|
6e2e: 9b06 ldr r3, [sp, #24]
|
|
6e30: 4699 mov r9, r3
|
|
6e32: e3a6 b.n 7582 <_lv_blend_map+0xc32>
|
|
MAP_NORMAL_MASK_PX(x)
|
|
6e34: 8803 ldrh r3, [r0, #0]
|
|
6e36: 800b strh r3, [r1, #0]
|
|
6e38: 3701 adds r7, #1
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
6e3a: 3601 adds r6, #1
|
|
6e3c: 9b05 ldr r3, [sp, #20]
|
|
6e3e: 42b3 cmp r3, r6
|
|
6e40: dc00 bgt.n 6e44 <_lv_blend_map+0x4f4>
|
|
6e42: e381 b.n 7548 <_lv_blend_map+0xbf8>
|
|
6e44: 3002 adds r0, #2
|
|
6e46: 3102 adds r1, #2
|
|
6e48: 2303 movs r3, #3
|
|
6e4a: 421f tst r7, r3
|
|
6e4c: d053 beq.n 6ef6 <_lv_blend_map+0x5a6>
|
|
MAP_NORMAL_MASK_PX(x)
|
|
6e4e: 783d ldrb r5, [r7, #0]
|
|
6e50: 2d00 cmp r5, #0
|
|
6e52: d0f1 beq.n 6e38 <_lv_blend_map+0x4e8>
|
|
6e54: 2dff cmp r5, #255 ; 0xff
|
|
6e56: d0ed beq.n 6e34 <_lv_blend_map+0x4e4>
|
|
6e58: 23ff movs r3, #255 ; 0xff
|
|
6e5a: 1b5b subs r3, r3, r5
|
|
6e5c: 4699 mov r9, r3
|
|
6e5e: 7843 ldrb r3, [r0, #1]
|
|
6e60: 08db lsrs r3, r3, #3
|
|
6e62: 436b muls r3, r5
|
|
6e64: 784a ldrb r2, [r1, #1]
|
|
6e66: 08d2 lsrs r2, r2, #3
|
|
6e68: 464c mov r4, r9
|
|
6e6a: 4362 muls r2, r4
|
|
6e6c: 189a adds r2, r3, r2
|
|
6e6e: 0213 lsls r3, r2, #8
|
|
6e70: 189b adds r3, r3, r2
|
|
6e72: 01db lsls r3, r3, #7
|
|
6e74: 189b adds r3, r3, r2
|
|
6e76: 0ddb lsrs r3, r3, #23
|
|
6e78: 465a mov r2, fp
|
|
6e7a: 4013 ands r3, r2
|
|
6e7c: 9306 str r3, [sp, #24]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6e7e: 8802 ldrh r2, [r0, #0]
|
|
6e80: 0552 lsls r2, r2, #21
|
|
6e82: 0e92 lsrs r2, r2, #26
|
|
6e84: 436a muls r2, r5
|
|
6e86: 4694 mov ip, r2
|
|
6e88: 880a ldrh r2, [r1, #0]
|
|
6e8a: 0552 lsls r2, r2, #21
|
|
6e8c: 0e92 lsrs r2, r2, #26
|
|
6e8e: 4362 muls r2, r4
|
|
6e90: 4462 add r2, ip
|
|
6e92: 0214 lsls r4, r2, #8
|
|
6e94: 46a4 mov ip, r4
|
|
6e96: 4494 add ip, r2
|
|
6e98: 4664 mov r4, ip
|
|
6e9a: 01e4 lsls r4, r4, #7
|
|
6e9c: 46a4 mov ip, r4
|
|
6e9e: 4462 add r2, ip
|
|
6ea0: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6ea2: 7804 ldrb r4, [r0, #0]
|
|
6ea4: 06e4 lsls r4, r4, #27
|
|
6ea6: 0ee4 lsrs r4, r4, #27
|
|
6ea8: 4365 muls r5, r4
|
|
6eaa: 780c ldrb r4, [r1, #0]
|
|
6eac: 46a4 mov ip, r4
|
|
6eae: 06e4 lsls r4, r4, #27
|
|
6eb0: 0ee4 lsrs r4, r4, #27
|
|
6eb2: 46a0 mov r8, r4
|
|
6eb4: 464c mov r4, r9
|
|
6eb6: 4643 mov r3, r8
|
|
6eb8: 435c muls r4, r3
|
|
6eba: 46a0 mov r8, r4
|
|
6ebc: 44a8 add r8, r5
|
|
6ebe: 4643 mov r3, r8
|
|
6ec0: 021d lsls r5, r3, #8
|
|
6ec2: 4445 add r5, r8
|
|
6ec4: 01ed lsls r5, r5, #7
|
|
6ec6: 4445 add r5, r8
|
|
6ec8: 0ded lsrs r5, r5, #23
|
|
6eca: 465b mov r3, fp
|
|
6ecc: 401d ands r5, r3
|
|
6ece: 4664 mov r4, ip
|
|
6ed0: 439c bics r4, r3
|
|
6ed2: 4325 orrs r5, r4
|
|
6ed4: 700d strb r5, [r1, #0]
|
|
6ed6: 233f movs r3, #63 ; 0x3f
|
|
6ed8: 401a ands r2, r3
|
|
6eda: 0155 lsls r5, r2, #5
|
|
6edc: 880a ldrh r2, [r1, #0]
|
|
6ede: 4653 mov r3, sl
|
|
6ee0: 401a ands r2, r3
|
|
6ee2: 432a orrs r2, r5
|
|
6ee4: 800a strh r2, [r1, #0]
|
|
6ee6: 9b06 ldr r3, [sp, #24]
|
|
6ee8: 00db lsls r3, r3, #3
|
|
6eea: 0a12 lsrs r2, r2, #8
|
|
6eec: 2407 movs r4, #7
|
|
6eee: 4022 ands r2, r4
|
|
6ef0: 4313 orrs r3, r2
|
|
6ef2: 704b strb r3, [r1, #1]
|
|
6ef4: e7a0 b.n 6e38 <_lv_blend_map+0x4e8>
|
|
6ef6: 9b05 ldr r3, [sp, #20]
|
|
6ef8: 4699 mov r9, r3
|
|
for(; x < x_end4; x += 4) {
|
|
6efa: 9b07 ldr r3, [sp, #28]
|
|
6efc: 42b3 cmp r3, r6
|
|
6efe: dc00 bgt.n 6f02 <_lv_blend_map+0x5b2>
|
|
6f00: e319 b.n 7536 <_lv_blend_map+0xbe6>
|
|
6f02: 0070 lsls r0, r6, #1
|
|
6f04: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
6f06: 181c adds r4, r3, r0
|
|
6f08: 9b08 ldr r3, [sp, #32]
|
|
6f0a: 469c mov ip, r3
|
|
6f0c: 4460 add r0, ip
|
|
MAP_NORMAL_MASK_PX(x + 3)
|
|
6f0e: 4b04 ldr r3, [pc, #16] ; (6f20 <_lv_blend_map+0x5d0>)
|
|
6f10: 469a mov sl, r3
|
|
6f12: 464b mov r3, r9
|
|
6f14: 9306 str r3, [sp, #24]
|
|
6f16: 9605 str r6, [sp, #20]
|
|
6f18: e016 b.n 6f48 <_lv_blend_map+0x5f8>
|
|
6f1a: 46c0 nop ; (mov r8, r8)
|
|
6f1c: 00010c8d .word 0x00010c8d
|
|
6f20: fffff81f .word 0xfffff81f
|
|
disp_buf_first[x] = map_buf_first[x];
|
|
6f24: 8823 ldrh r3, [r4, #0]
|
|
6f26: 8003 strh r3, [r0, #0]
|
|
disp_buf_first[x + 1] = map_buf_first[x + 1];
|
|
6f28: 8863 ldrh r3, [r4, #2]
|
|
6f2a: 8043 strh r3, [r0, #2]
|
|
disp_buf_first[x + 2] = map_buf_first[x + 2];
|
|
6f2c: 88a3 ldrh r3, [r4, #4]
|
|
6f2e: 8083 strh r3, [r0, #4]
|
|
disp_buf_first[x + 3] = map_buf_first[x + 3];
|
|
6f30: 88e3 ldrh r3, [r4, #6]
|
|
6f32: 80c3 strh r3, [r0, #6]
|
|
mask32++;
|
|
6f34: 3704 adds r7, #4
|
|
for(; x < x_end4; x += 4) {
|
|
6f36: 9a05 ldr r2, [sp, #20]
|
|
6f38: 3204 adds r2, #4
|
|
6f3a: 9205 str r2, [sp, #20]
|
|
6f3c: 3408 adds r4, #8
|
|
6f3e: 3008 adds r0, #8
|
|
6f40: 9b07 ldr r3, [sp, #28]
|
|
6f42: 4293 cmp r3, r2
|
|
6f44: dc00 bgt.n 6f48 <_lv_blend_map+0x5f8>
|
|
6f46: e14b b.n 71e0 <_lv_blend_map+0x890>
|
|
if(*mask32) {
|
|
6f48: 683b ldr r3, [r7, #0]
|
|
6f4a: 2b00 cmp r3, #0
|
|
6f4c: d0f2 beq.n 6f34 <_lv_blend_map+0x5e4>
|
|
if((*mask32) == 0xFFFFFFFF) {
|
|
6f4e: 3301 adds r3, #1
|
|
6f50: d0e8 beq.n 6f24 <_lv_blend_map+0x5d4>
|
|
MAP_NORMAL_MASK_PX(x)
|
|
6f52: 7839 ldrb r1, [r7, #0]
|
|
6f54: 2900 cmp r1, #0
|
|
6f56: d049 beq.n 6fec <_lv_blend_map+0x69c>
|
|
6f58: 29ff cmp r1, #255 ; 0xff
|
|
6f5a: d100 bne.n 6f5e <_lv_blend_map+0x60e>
|
|
6f5c: e134 b.n 71c8 <_lv_blend_map+0x878>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6f5e: 23ff movs r3, #255 ; 0xff
|
|
6f60: 1a5d subs r5, r3, r1
|
|
6f62: 7862 ldrb r2, [r4, #1]
|
|
6f64: 08d2 lsrs r2, r2, #3
|
|
6f66: 0013 movs r3, r2
|
|
6f68: 434b muls r3, r1
|
|
6f6a: 7842 ldrb r2, [r0, #1]
|
|
6f6c: 08d2 lsrs r2, r2, #3
|
|
6f6e: 436a muls r2, r5
|
|
6f70: 189a adds r2, r3, r2
|
|
6f72: 0213 lsls r3, r2, #8
|
|
6f74: 189b adds r3, r3, r2
|
|
6f76: 01db lsls r3, r3, #7
|
|
6f78: 189b adds r3, r3, r2
|
|
6f7a: 0ddb lsrs r3, r3, #23
|
|
6f7c: 465a mov r2, fp
|
|
6f7e: 4013 ands r3, r2
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
6f80: 8822 ldrh r2, [r4, #0]
|
|
6f82: 0552 lsls r2, r2, #21
|
|
6f84: 0e92 lsrs r2, r2, #26
|
|
6f86: 434a muls r2, r1
|
|
6f88: 4694 mov ip, r2
|
|
6f8a: 8802 ldrh r2, [r0, #0]
|
|
6f8c: 0552 lsls r2, r2, #21
|
|
6f8e: 0e92 lsrs r2, r2, #26
|
|
6f90: 436a muls r2, r5
|
|
6f92: 4462 add r2, ip
|
|
6f94: 0216 lsls r6, r2, #8
|
|
6f96: 46b4 mov ip, r6
|
|
6f98: 4494 add ip, r2
|
|
6f9a: 4666 mov r6, ip
|
|
6f9c: 01f6 lsls r6, r6, #7
|
|
6f9e: 46b4 mov ip, r6
|
|
6fa0: 4462 add r2, ip
|
|
6fa2: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
6fa4: 7826 ldrb r6, [r4, #0]
|
|
6fa6: 06f6 lsls r6, r6, #27
|
|
6fa8: 0ef6 lsrs r6, r6, #27
|
|
6faa: 4371 muls r1, r6
|
|
6fac: 7806 ldrb r6, [r0, #0]
|
|
6fae: 46b4 mov ip, r6
|
|
6fb0: 06f6 lsls r6, r6, #27
|
|
6fb2: 0ef6 lsrs r6, r6, #27
|
|
6fb4: 4375 muls r5, r6
|
|
6fb6: 194d adds r5, r1, r5
|
|
6fb8: 0229 lsls r1, r5, #8
|
|
6fba: 1949 adds r1, r1, r5
|
|
6fbc: 01c9 lsls r1, r1, #7
|
|
6fbe: 1949 adds r1, r1, r5
|
|
6fc0: 0dc9 lsrs r1, r1, #23
|
|
6fc2: 465d mov r5, fp
|
|
6fc4: 4029 ands r1, r5
|
|
6fc6: 4665 mov r5, ip
|
|
6fc8: 465e mov r6, fp
|
|
6fca: 43b5 bics r5, r6
|
|
6fcc: 4329 orrs r1, r5
|
|
6fce: 7001 strb r1, [r0, #0]
|
|
6fd0: 213f movs r1, #63 ; 0x3f
|
|
6fd2: 400a ands r2, r1
|
|
6fd4: 0151 lsls r1, r2, #5
|
|
6fd6: 8802 ldrh r2, [r0, #0]
|
|
6fd8: 4655 mov r5, sl
|
|
6fda: 402a ands r2, r5
|
|
6fdc: 430a orrs r2, r1
|
|
6fde: 8002 strh r2, [r0, #0]
|
|
6fe0: 00db lsls r3, r3, #3
|
|
6fe2: 0a12 lsrs r2, r2, #8
|
|
6fe4: 2107 movs r1, #7
|
|
6fe6: 400a ands r2, r1
|
|
6fe8: 4313 orrs r3, r2
|
|
6fea: 7043 strb r3, [r0, #1]
|
|
MAP_NORMAL_MASK_PX(x + 1)
|
|
6fec: 7879 ldrb r1, [r7, #1]
|
|
6fee: 2900 cmp r1, #0
|
|
6ff0: d04b beq.n 708a <_lv_blend_map+0x73a>
|
|
6ff2: 29ff cmp r1, #255 ; 0xff
|
|
6ff4: d100 bne.n 6ff8 <_lv_blend_map+0x6a8>
|
|
6ff6: e0ea b.n 71ce <_lv_blend_map+0x87e>
|
|
6ff8: 1c83 adds r3, r0, #2
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
6ffa: 22ff movs r2, #255 ; 0xff
|
|
6ffc: 1a55 subs r5, r2, r1
|
|
6ffe: 78e2 ldrb r2, [r4, #3]
|
|
7000: 08d2 lsrs r2, r2, #3
|
|
7002: 434a muls r2, r1
|
|
7004: 4698 mov r8, r3
|
|
7006: 78c3 ldrb r3, [r0, #3]
|
|
7008: 08db lsrs r3, r3, #3
|
|
700a: 436b muls r3, r5
|
|
700c: 18d2 adds r2, r2, r3
|
|
700e: 0213 lsls r3, r2, #8
|
|
7010: 189b adds r3, r3, r2
|
|
7012: 01db lsls r3, r3, #7
|
|
7014: 189b adds r3, r3, r2
|
|
7016: 0ddb lsrs r3, r3, #23
|
|
7018: 465a mov r2, fp
|
|
701a: 4013 ands r3, r2
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
701c: 8862 ldrh r2, [r4, #2]
|
|
701e: 0552 lsls r2, r2, #21
|
|
7020: 0e92 lsrs r2, r2, #26
|
|
7022: 434a muls r2, r1
|
|
7024: 4694 mov ip, r2
|
|
7026: 8842 ldrh r2, [r0, #2]
|
|
7028: 0552 lsls r2, r2, #21
|
|
702a: 0e92 lsrs r2, r2, #26
|
|
702c: 436a muls r2, r5
|
|
702e: 4462 add r2, ip
|
|
7030: 0216 lsls r6, r2, #8
|
|
7032: 46b4 mov ip, r6
|
|
7034: 4494 add ip, r2
|
|
7036: 4666 mov r6, ip
|
|
7038: 01f6 lsls r6, r6, #7
|
|
703a: 46b4 mov ip, r6
|
|
703c: 4462 add r2, ip
|
|
703e: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
7040: 78a6 ldrb r6, [r4, #2]
|
|
7042: 06f6 lsls r6, r6, #27
|
|
7044: 0ef6 lsrs r6, r6, #27
|
|
7046: 4371 muls r1, r6
|
|
7048: 7886 ldrb r6, [r0, #2]
|
|
704a: 46b4 mov ip, r6
|
|
704c: 06f6 lsls r6, r6, #27
|
|
704e: 0ef6 lsrs r6, r6, #27
|
|
7050: 4375 muls r5, r6
|
|
7052: 194d adds r5, r1, r5
|
|
7054: 0229 lsls r1, r5, #8
|
|
7056: 1949 adds r1, r1, r5
|
|
7058: 01c9 lsls r1, r1, #7
|
|
705a: 1949 adds r1, r1, r5
|
|
705c: 0dc9 lsrs r1, r1, #23
|
|
705e: 465d mov r5, fp
|
|
7060: 4029 ands r1, r5
|
|
7062: 4665 mov r5, ip
|
|
7064: 465e mov r6, fp
|
|
7066: 43b5 bics r5, r6
|
|
7068: 4329 orrs r1, r5
|
|
706a: 7081 strb r1, [r0, #2]
|
|
706c: 213f movs r1, #63 ; 0x3f
|
|
706e: 400a ands r2, r1
|
|
7070: 0151 lsls r1, r2, #5
|
|
7072: 8842 ldrh r2, [r0, #2]
|
|
7074: 4655 mov r5, sl
|
|
7076: 402a ands r2, r5
|
|
7078: 430a orrs r2, r1
|
|
707a: 8042 strh r2, [r0, #2]
|
|
707c: 00db lsls r3, r3, #3
|
|
707e: 0a12 lsrs r2, r2, #8
|
|
7080: 2107 movs r1, #7
|
|
7082: 400a ands r2, r1
|
|
7084: 4313 orrs r3, r2
|
|
7086: 4642 mov r2, r8
|
|
7088: 7053 strb r3, [r2, #1]
|
|
MAP_NORMAL_MASK_PX(x + 2)
|
|
708a: 78b9 ldrb r1, [r7, #2]
|
|
708c: 2900 cmp r1, #0
|
|
708e: d04b beq.n 7128 <_lv_blend_map+0x7d8>
|
|
7090: 29ff cmp r1, #255 ; 0xff
|
|
7092: d100 bne.n 7096 <_lv_blend_map+0x746>
|
|
7094: e09e b.n 71d4 <_lv_blend_map+0x884>
|
|
7096: 1d03 adds r3, r0, #4
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
7098: 22ff movs r2, #255 ; 0xff
|
|
709a: 1a55 subs r5, r2, r1
|
|
709c: 7962 ldrb r2, [r4, #5]
|
|
709e: 08d2 lsrs r2, r2, #3
|
|
70a0: 434a muls r2, r1
|
|
70a2: 4698 mov r8, r3
|
|
70a4: 7943 ldrb r3, [r0, #5]
|
|
70a6: 08db lsrs r3, r3, #3
|
|
70a8: 436b muls r3, r5
|
|
70aa: 18d2 adds r2, r2, r3
|
|
70ac: 0213 lsls r3, r2, #8
|
|
70ae: 189b adds r3, r3, r2
|
|
70b0: 01db lsls r3, r3, #7
|
|
70b2: 189b adds r3, r3, r2
|
|
70b4: 0ddb lsrs r3, r3, #23
|
|
70b6: 465a mov r2, fp
|
|
70b8: 4013 ands r3, r2
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
70ba: 88a2 ldrh r2, [r4, #4]
|
|
70bc: 0552 lsls r2, r2, #21
|
|
70be: 0e92 lsrs r2, r2, #26
|
|
70c0: 434a muls r2, r1
|
|
70c2: 4694 mov ip, r2
|
|
70c4: 8882 ldrh r2, [r0, #4]
|
|
70c6: 0552 lsls r2, r2, #21
|
|
70c8: 0e92 lsrs r2, r2, #26
|
|
70ca: 436a muls r2, r5
|
|
70cc: 4462 add r2, ip
|
|
70ce: 0216 lsls r6, r2, #8
|
|
70d0: 46b4 mov ip, r6
|
|
70d2: 4494 add ip, r2
|
|
70d4: 4666 mov r6, ip
|
|
70d6: 01f6 lsls r6, r6, #7
|
|
70d8: 46b4 mov ip, r6
|
|
70da: 4462 add r2, ip
|
|
70dc: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
70de: 7926 ldrb r6, [r4, #4]
|
|
70e0: 06f6 lsls r6, r6, #27
|
|
70e2: 0ef6 lsrs r6, r6, #27
|
|
70e4: 4371 muls r1, r6
|
|
70e6: 7906 ldrb r6, [r0, #4]
|
|
70e8: 46b4 mov ip, r6
|
|
70ea: 06f6 lsls r6, r6, #27
|
|
70ec: 0ef6 lsrs r6, r6, #27
|
|
70ee: 4375 muls r5, r6
|
|
70f0: 194d adds r5, r1, r5
|
|
70f2: 0229 lsls r1, r5, #8
|
|
70f4: 1949 adds r1, r1, r5
|
|
70f6: 01c9 lsls r1, r1, #7
|
|
70f8: 1949 adds r1, r1, r5
|
|
70fa: 0dc9 lsrs r1, r1, #23
|
|
70fc: 465d mov r5, fp
|
|
70fe: 4029 ands r1, r5
|
|
7100: 4665 mov r5, ip
|
|
7102: 465e mov r6, fp
|
|
7104: 43b5 bics r5, r6
|
|
7106: 4329 orrs r1, r5
|
|
7108: 7101 strb r1, [r0, #4]
|
|
710a: 213f movs r1, #63 ; 0x3f
|
|
710c: 400a ands r2, r1
|
|
710e: 0151 lsls r1, r2, #5
|
|
7110: 8882 ldrh r2, [r0, #4]
|
|
7112: 4655 mov r5, sl
|
|
7114: 402a ands r2, r5
|
|
7116: 430a orrs r2, r1
|
|
7118: 8082 strh r2, [r0, #4]
|
|
711a: 00db lsls r3, r3, #3
|
|
711c: 0a12 lsrs r2, r2, #8
|
|
711e: 2107 movs r1, #7
|
|
7120: 400a ands r2, r1
|
|
7122: 4313 orrs r3, r2
|
|
7124: 4642 mov r2, r8
|
|
7126: 7053 strb r3, [r2, #1]
|
|
MAP_NORMAL_MASK_PX(x + 3)
|
|
7128: 78f9 ldrb r1, [r7, #3]
|
|
712a: 2900 cmp r1, #0
|
|
712c: d100 bne.n 7130 <_lv_blend_map+0x7e0>
|
|
712e: e701 b.n 6f34 <_lv_blend_map+0x5e4>
|
|
7130: 29ff cmp r1, #255 ; 0xff
|
|
7132: d052 beq.n 71da <_lv_blend_map+0x88a>
|
|
7134: 1d83 adds r3, r0, #6
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
7136: 22ff movs r2, #255 ; 0xff
|
|
7138: 1a55 subs r5, r2, r1
|
|
713a: 79e2 ldrb r2, [r4, #7]
|
|
713c: 08d2 lsrs r2, r2, #3
|
|
713e: 434a muls r2, r1
|
|
7140: 4698 mov r8, r3
|
|
7142: 79c3 ldrb r3, [r0, #7]
|
|
7144: 08db lsrs r3, r3, #3
|
|
7146: 436b muls r3, r5
|
|
7148: 18d2 adds r2, r2, r3
|
|
714a: 0213 lsls r3, r2, #8
|
|
714c: 189b adds r3, r3, r2
|
|
714e: 01db lsls r3, r3, #7
|
|
7150: 189b adds r3, r3, r2
|
|
7152: 0ddb lsrs r3, r3, #23
|
|
7154: 465a mov r2, fp
|
|
7156: 4013 ands r3, r2
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
7158: 88e2 ldrh r2, [r4, #6]
|
|
715a: 0552 lsls r2, r2, #21
|
|
715c: 0e92 lsrs r2, r2, #26
|
|
715e: 434a muls r2, r1
|
|
7160: 4694 mov ip, r2
|
|
7162: 88c2 ldrh r2, [r0, #6]
|
|
7164: 0552 lsls r2, r2, #21
|
|
7166: 0e92 lsrs r2, r2, #26
|
|
7168: 436a muls r2, r5
|
|
716a: 4462 add r2, ip
|
|
716c: 0216 lsls r6, r2, #8
|
|
716e: 46b4 mov ip, r6
|
|
7170: 4494 add ip, r2
|
|
7172: 4666 mov r6, ip
|
|
7174: 01f6 lsls r6, r6, #7
|
|
7176: 46b4 mov ip, r6
|
|
7178: 4462 add r2, ip
|
|
717a: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
717c: 79a6 ldrb r6, [r4, #6]
|
|
717e: 06f6 lsls r6, r6, #27
|
|
7180: 0ef6 lsrs r6, r6, #27
|
|
7182: 4371 muls r1, r6
|
|
7184: 7986 ldrb r6, [r0, #6]
|
|
7186: 46b4 mov ip, r6
|
|
7188: 06f6 lsls r6, r6, #27
|
|
718a: 0ef6 lsrs r6, r6, #27
|
|
718c: 4375 muls r5, r6
|
|
718e: 194d adds r5, r1, r5
|
|
7190: 0229 lsls r1, r5, #8
|
|
7192: 1949 adds r1, r1, r5
|
|
7194: 01c9 lsls r1, r1, #7
|
|
7196: 1949 adds r1, r1, r5
|
|
7198: 0dc9 lsrs r1, r1, #23
|
|
719a: 465d mov r5, fp
|
|
719c: 4029 ands r1, r5
|
|
719e: 4665 mov r5, ip
|
|
71a0: 465e mov r6, fp
|
|
71a2: 43b5 bics r5, r6
|
|
71a4: 4329 orrs r1, r5
|
|
71a6: 7181 strb r1, [r0, #6]
|
|
71a8: 213f movs r1, #63 ; 0x3f
|
|
71aa: 400a ands r2, r1
|
|
71ac: 0151 lsls r1, r2, #5
|
|
71ae: 88c2 ldrh r2, [r0, #6]
|
|
71b0: 4655 mov r5, sl
|
|
71b2: 402a ands r2, r5
|
|
71b4: 430a orrs r2, r1
|
|
71b6: 80c2 strh r2, [r0, #6]
|
|
71b8: 00db lsls r3, r3, #3
|
|
71ba: 0a12 lsrs r2, r2, #8
|
|
71bc: 2107 movs r1, #7
|
|
71be: 400a ands r2, r1
|
|
71c0: 4313 orrs r3, r2
|
|
71c2: 4642 mov r2, r8
|
|
71c4: 7053 strb r3, [r2, #1]
|
|
71c6: e6b5 b.n 6f34 <_lv_blend_map+0x5e4>
|
|
MAP_NORMAL_MASK_PX(x)
|
|
71c8: 8823 ldrh r3, [r4, #0]
|
|
71ca: 8003 strh r3, [r0, #0]
|
|
71cc: e70e b.n 6fec <_lv_blend_map+0x69c>
|
|
MAP_NORMAL_MASK_PX(x + 1)
|
|
71ce: 8863 ldrh r3, [r4, #2]
|
|
71d0: 8043 strh r3, [r0, #2]
|
|
71d2: e75a b.n 708a <_lv_blend_map+0x73a>
|
|
MAP_NORMAL_MASK_PX(x + 2)
|
|
71d4: 88a3 ldrh r3, [r4, #4]
|
|
71d6: 8083 strh r3, [r0, #4]
|
|
71d8: e7a6 b.n 7128 <_lv_blend_map+0x7d8>
|
|
MAP_NORMAL_MASK_PX(x + 3)
|
|
71da: 88e3 ldrh r3, [r4, #6]
|
|
71dc: 80c3 strh r3, [r0, #6]
|
|
71de: e6a9 b.n 6f34 <_lv_blend_map+0x5e4>
|
|
71e0: 9b06 ldr r3, [sp, #24]
|
|
71e2: 4699 mov r9, r3
|
|
71e4: 0016 movs r6, r2
|
|
for(; x < draw_area_w ; x++) {
|
|
71e6: 4293 cmp r3, r2
|
|
71e8: dc00 bgt.n 71ec <_lv_blend_map+0x89c>
|
|
71ea: e1b3 b.n 7554 <_lv_blend_map+0xc04>
|
|
mask32++;
|
|
71ec: 003b movs r3, r7
|
|
71ee: 0077 lsls r7, r6, #1
|
|
71f0: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
71f2: 4690 mov r8, r2
|
|
71f4: 44b8 add r8, r7
|
|
71f6: 9a08 ldr r2, [sp, #32]
|
|
71f8: 4694 mov ip, r2
|
|
71fa: 4467 add r7, ip
|
|
MAP_NORMAL_MASK_PX(x)
|
|
71fc: 1b9b subs r3, r3, r6
|
|
71fe: 9305 str r3, [sp, #20]
|
|
7200: 4bce ldr r3, [pc, #824] ; (753c <_lv_blend_map+0xbec>)
|
|
7202: 469a mov sl, r3
|
|
7204: 2307 movs r3, #7
|
|
7206: 469c mov ip, r3
|
|
7208: 4644 mov r4, r8
|
|
720a: e007 b.n 721c <_lv_blend_map+0x8cc>
|
|
720c: 8823 ldrh r3, [r4, #0]
|
|
720e: 803b strh r3, [r7, #0]
|
|
for(; x < draw_area_w ; x++) {
|
|
7210: 3601 adds r6, #1
|
|
7212: 3402 adds r4, #2
|
|
7214: 3702 adds r7, #2
|
|
7216: 45b1 cmp r9, r6
|
|
7218: dc00 bgt.n 721c <_lv_blend_map+0x8cc>
|
|
721a: e19b b.n 7554 <_lv_blend_map+0xc04>
|
|
MAP_NORMAL_MASK_PX(x)
|
|
721c: 9b05 ldr r3, [sp, #20]
|
|
721e: 5d99 ldrb r1, [r3, r6]
|
|
7220: 2900 cmp r1, #0
|
|
7222: d0f5 beq.n 7210 <_lv_blend_map+0x8c0>
|
|
7224: 29ff cmp r1, #255 ; 0xff
|
|
7226: d0f1 beq.n 720c <_lv_blend_map+0x8bc>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
7228: 23ff movs r3, #255 ; 0xff
|
|
722a: 1a58 subs r0, r3, r1
|
|
722c: 7862 ldrb r2, [r4, #1]
|
|
722e: 08d2 lsrs r2, r2, #3
|
|
7230: 434a muls r2, r1
|
|
7232: 0015 movs r5, r2
|
|
7234: 787a ldrb r2, [r7, #1]
|
|
7236: 08d2 lsrs r2, r2, #3
|
|
7238: 4342 muls r2, r0
|
|
723a: 18ad adds r5, r5, r2
|
|
723c: 022b lsls r3, r5, #8
|
|
723e: 195b adds r3, r3, r5
|
|
7240: 01db lsls r3, r3, #7
|
|
7242: 195b adds r3, r3, r5
|
|
7244: 0ddb lsrs r3, r3, #23
|
|
7246: 465a mov r2, fp
|
|
7248: 4013 ands r3, r2
|
|
724a: 9306 str r3, [sp, #24]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
724c: 8825 ldrh r5, [r4, #0]
|
|
724e: 056d lsls r5, r5, #21
|
|
7250: 0ead lsrs r5, r5, #26
|
|
7252: 434d muls r5, r1
|
|
7254: 883a ldrh r2, [r7, #0]
|
|
7256: 0552 lsls r2, r2, #21
|
|
7258: 0e92 lsrs r2, r2, #26
|
|
725a: 4342 muls r2, r0
|
|
725c: 18ad adds r5, r5, r2
|
|
725e: 022a lsls r2, r5, #8
|
|
7260: 1952 adds r2, r2, r5
|
|
7262: 01d2 lsls r2, r2, #7
|
|
7264: 1952 adds r2, r2, r5
|
|
7266: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
7268: 7825 ldrb r5, [r4, #0]
|
|
726a: 06ed lsls r5, r5, #27
|
|
726c: 0eed lsrs r5, r5, #27
|
|
726e: 4369 muls r1, r5
|
|
7270: 783d ldrb r5, [r7, #0]
|
|
7272: 06eb lsls r3, r5, #27
|
|
7274: 0edb lsrs r3, r3, #27
|
|
7276: 4358 muls r0, r3
|
|
7278: 1808 adds r0, r1, r0
|
|
727a: 0201 lsls r1, r0, #8
|
|
727c: 1809 adds r1, r1, r0
|
|
727e: 01c9 lsls r1, r1, #7
|
|
7280: 1809 adds r1, r1, r0
|
|
7282: 0dc9 lsrs r1, r1, #23
|
|
7284: 465b mov r3, fp
|
|
7286: 4019 ands r1, r3
|
|
7288: 439d bics r5, r3
|
|
728a: 4329 orrs r1, r5
|
|
728c: 7039 strb r1, [r7, #0]
|
|
728e: 233f movs r3, #63 ; 0x3f
|
|
7290: 401a ands r2, r3
|
|
7292: 0151 lsls r1, r2, #5
|
|
7294: 883a ldrh r2, [r7, #0]
|
|
7296: 4653 mov r3, sl
|
|
7298: 401a ands r2, r3
|
|
729a: 430a orrs r2, r1
|
|
729c: 803a strh r2, [r7, #0]
|
|
729e: 9b06 ldr r3, [sp, #24]
|
|
72a0: 00db lsls r3, r3, #3
|
|
72a2: 0a12 lsrs r2, r2, #8
|
|
72a4: 4661 mov r1, ip
|
|
72a6: 400a ands r2, r1
|
|
72a8: 4313 orrs r3, r2
|
|
72aa: 707b strb r3, [r7, #1]
|
|
72ac: e7b0 b.n 7210 <_lv_blend_map+0x8c0>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
72ae: 23ff movs r3, #255 ; 0xff
|
|
72b0: 1a1d subs r5, r3, r0
|
|
72b2: 784b ldrb r3, [r1, #1]
|
|
72b4: 08db lsrs r3, r3, #3
|
|
72b6: 4343 muls r3, r0
|
|
72b8: 7872 ldrb r2, [r6, #1]
|
|
72ba: 08d2 lsrs r2, r2, #3
|
|
72bc: 436a muls r2, r5
|
|
72be: 189a adds r2, r3, r2
|
|
72c0: 0213 lsls r3, r2, #8
|
|
72c2: 189b adds r3, r3, r2
|
|
72c4: 01db lsls r3, r3, #7
|
|
72c6: 189b adds r3, r3, r2
|
|
72c8: 0ddb lsrs r3, r3, #23
|
|
72ca: 4642 mov r2, r8
|
|
72cc: 4013 ands r3, r2
|
|
72ce: 9305 str r3, [sp, #20]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
72d0: 880a ldrh r2, [r1, #0]
|
|
72d2: 0552 lsls r2, r2, #21
|
|
72d4: 0e92 lsrs r2, r2, #26
|
|
72d6: 4342 muls r2, r0
|
|
72d8: 4691 mov r9, r2
|
|
72da: 8832 ldrh r2, [r6, #0]
|
|
72dc: 0552 lsls r2, r2, #21
|
|
72de: 0e92 lsrs r2, r2, #26
|
|
72e0: 436a muls r2, r5
|
|
72e2: 444a add r2, r9
|
|
72e4: 0213 lsls r3, r2, #8
|
|
72e6: 4699 mov r9, r3
|
|
72e8: 4491 add r9, r2
|
|
72ea: 464b mov r3, r9
|
|
72ec: 01db lsls r3, r3, #7
|
|
72ee: 4699 mov r9, r3
|
|
72f0: 444a add r2, r9
|
|
72f2: 0dd2 lsrs r2, r2, #23
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
72f4: 780b ldrb r3, [r1, #0]
|
|
72f6: 06db lsls r3, r3, #27
|
|
72f8: 0edb lsrs r3, r3, #27
|
|
72fa: 4343 muls r3, r0
|
|
72fc: 4699 mov r9, r3
|
|
72fe: 7833 ldrb r3, [r6, #0]
|
|
7300: 469c mov ip, r3
|
|
7302: 06db lsls r3, r3, #27
|
|
7304: 0edb lsrs r3, r3, #27
|
|
7306: 435d muls r5, r3
|
|
7308: 44a9 add r9, r5
|
|
730a: 464b mov r3, r9
|
|
730c: 021d lsls r5, r3, #8
|
|
730e: 444d add r5, r9
|
|
7310: 01ed lsls r5, r5, #7
|
|
7312: 444d add r5, r9
|
|
7314: 0ded lsrs r5, r5, #23
|
|
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
|
|
7316: 4643 mov r3, r8
|
|
7318: 401d ands r5, r3
|
|
731a: 4663 mov r3, ip
|
|
731c: 4640 mov r0, r8
|
|
731e: 4383 bics r3, r0
|
|
7320: 431d orrs r5, r3
|
|
7322: 7035 strb r5, [r6, #0]
|
|
7324: 233f movs r3, #63 ; 0x3f
|
|
7326: 401a ands r2, r3
|
|
7328: 0155 lsls r5, r2, #5
|
|
732a: 8832 ldrh r2, [r6, #0]
|
|
732c: 4b83 ldr r3, [pc, #524] ; (753c <_lv_blend_map+0xbec>)
|
|
732e: 401a ands r2, r3
|
|
7330: 432a orrs r2, r5
|
|
7332: 8032 strh r2, [r6, #0]
|
|
7334: 9b05 ldr r3, [sp, #20]
|
|
7336: 00db lsls r3, r3, #3
|
|
7338: 0a12 lsrs r2, r2, #8
|
|
733a: 4658 mov r0, fp
|
|
733c: 4002 ands r2, r0
|
|
733e: 4313 orrs r3, r2
|
|
7340: 7073 strb r3, [r6, #1]
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
7342: 3701 adds r7, #1
|
|
7344: 3102 adds r1, #2
|
|
7346: 3602 adds r6, #2
|
|
7348: 9b06 ldr r3, [sp, #24]
|
|
734a: 42bb cmp r3, r7
|
|
734c: dd09 ble.n 7362 <_lv_blend_map+0xa12>
|
|
if(mask[x]) {
|
|
734e: 5de5 ldrb r5, [r4, r7]
|
|
7350: 2d00 cmp r5, #0
|
|
7352: d0f6 beq.n 7342 <_lv_blend_map+0x9f2>
|
|
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
|
|
7354: 9807 ldr r0, [sp, #28]
|
|
7356: 2df9 cmp r5, #249 ; 0xf9
|
|
7358: d8a9 bhi.n 72ae <_lv_blend_map+0x95e>
|
|
735a: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
735c: 435d muls r5, r3
|
|
735e: 0a28 lsrs r0, r5, #8
|
|
7360: e7a5 b.n 72ae <_lv_blend_map+0x95e>
|
|
7362: 46a1 mov r9, r4
|
|
disp_buf_first += disp_w;
|
|
7364: 9b08 ldr r3, [sp, #32]
|
|
7366: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
7368: 4694 mov ip, r2
|
|
736a: 4463 add r3, ip
|
|
736c: 9308 str r3, [sp, #32]
|
|
736e: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
7370: 469c mov ip, r3
|
|
7372: 44e1 add r9, ip
|
|
map_buf_first += map_w;
|
|
7374: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
7376: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
7378: 4694 mov ip, r2
|
|
737a: 4463 add r3, ip
|
|
737c: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
737e: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
7380: 3301 adds r3, #1
|
|
7382: 930d str r3, [sp, #52] ; 0x34
|
|
7384: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
7386: 429a cmp r2, r3
|
|
7388: dc01 bgt.n 738e <_lv_blend_map+0xa3e>
|
|
738a: f7ff faf7 bl 697c <_lv_blend_map+0x2c>
|
|
for(x = 0; x < draw_area_w; x++) {
|
|
738e: 9b06 ldr r3, [sp, #24]
|
|
7390: 2b00 cmp r3, #0
|
|
7392: dde7 ble.n 7364 <_lv_blend_map+0xa14>
|
|
7394: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
7396: 469c mov ip, r3
|
|
7398: 9e08 ldr r6, [sp, #32]
|
|
739a: 2700 movs r7, #0
|
|
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
|
|
739c: 2307 movs r3, #7
|
|
739e: 469b mov fp, r3
|
|
73a0: 4661 mov r1, ip
|
|
73a2: 464c mov r4, r9
|
|
73a4: e7d3 b.n 734e <_lv_blend_map+0x9fe>
|
|
switch(mode) {
|
|
73a6: 2e01 cmp r6, #1
|
|
73a8: d04d beq.n 7446 <_lv_blend_map+0xaf6>
|
|
73aa: 2e02 cmp r6, #2
|
|
73ac: d001 beq.n 73b2 <_lv_blend_map+0xa62>
|
|
73ae: f7ff fae5 bl 697c <_lv_blend_map+0x2c>
|
|
blend_fp = color_blend_true_color_subtractive;
|
|
73b2: 4b63 ldr r3, [pc, #396] ; (7540 <_lv_blend_map+0xbf0>)
|
|
73b4: 930a str r3, [sp, #40] ; 0x28
|
|
73b6: 464b mov r3, r9
|
|
73b8: 2210 movs r2, #16
|
|
73ba: 5e9b ldrsh r3, [r3, r2]
|
|
73bc: 001a movs r2, r3
|
|
73be: 930b str r3, [sp, #44] ; 0x2c
|
|
73c0: 464b mov r3, r9
|
|
73c2: 8a9b ldrh r3, [r3, #20]
|
|
73c4: 3301 adds r3, #1
|
|
73c6: 1a9b subs r3, r3, r2
|
|
73c8: b21b sxth r3, r3
|
|
73ca: 469c mov ip, r3
|
|
73cc: 2300 movs r3, #0
|
|
73ce: 5ee2 ldrsh r2, [r4, r3]
|
|
73d0: 920d str r2, [sp, #52] ; 0x34
|
|
73d2: 88a3 ldrh r3, [r4, #4]
|
|
73d4: 3301 adds r3, #1
|
|
73d6: 1a9b subs r3, r3, r2
|
|
73d8: b219 sxth r1, r3
|
|
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
|
|
73da: 9e08 ldr r6, [sp, #32]
|
|
73dc: 4662 mov r2, ip
|
|
73de: 4372 muls r2, r6
|
|
73e0: 0053 lsls r3, r2, #1
|
|
73e2: 9a05 ldr r2, [sp, #20]
|
|
73e4: 4690 mov r8, r2
|
|
73e6: 4498 add r8, r3
|
|
73e8: 4643 mov r3, r8
|
|
73ea: 9306 str r3, [sp, #24]
|
|
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
|
|
73ec: 2202 movs r2, #2
|
|
73ee: 5ea3 ldrsh r3, [r4, r2]
|
|
73f0: 464a mov r2, r9
|
|
73f2: 2412 movs r4, #18
|
|
73f4: 5f14 ldrsh r4, [r2, r4]
|
|
73f6: 1b1b subs r3, r3, r4
|
|
73f8: 1af3 subs r3, r6, r3
|
|
73fa: 434b muls r3, r1
|
|
73fc: 005b lsls r3, r3, #1
|
|
73fe: 9a07 ldr r2, [sp, #28]
|
|
7400: 18d4 adds r4, r2, r3
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
|
|
7402: 2f01 cmp r7, #1
|
|
7404: d022 beq.n 744c <_lv_blend_map+0xafc>
|
|
const lv_opa_t * mask_tmp = mask - draw_area->x1;
|
|
7406: 4653 mov r3, sl
|
|
7408: 1aeb subs r3, r5, r3
|
|
740a: 001a movs r2, r3
|
|
map_buf_tmp -= draw_area->x1;
|
|
740c: 4653 mov r3, sl
|
|
740e: 005b lsls r3, r3, #1
|
|
7410: 1ae3 subs r3, r4, r3
|
|
7412: 4699 mov r9, r3
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
7414: 9b08 ldr r3, [sp, #32]
|
|
7416: 9c0c ldr r4, [sp, #48] ; 0x30
|
|
7418: 42a3 cmp r3, r4
|
|
741a: dd01 ble.n 7420 <_lv_blend_map+0xad0>
|
|
741c: f7ff faae bl 697c <_lv_blend_map+0x2c>
|
|
disp_buf_tmp += disp_w;
|
|
7420: 4663 mov r3, ip
|
|
7422: 005b lsls r3, r3, #1
|
|
7424: 4698 mov r8, r3
|
|
map_buf_tmp += map_w;
|
|
7426: 004b lsls r3, r1, #1
|
|
7428: 9307 str r3, [sp, #28]
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
742a: af10 add r7, sp, #64 ; 0x40
|
|
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
|
|
742c: 465b mov r3, fp
|
|
742e: 9305 str r3, [sp, #20]
|
|
7430: 3001 adds r0, #1
|
|
7432: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
7434: 1ac0 subs r0, r0, r3
|
|
mask_tmp += draw_area_w;
|
|
7436: b203 sxth r3, r0
|
|
7438: 9309 str r3, [sp, #36] ; 0x24
|
|
743a: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
743c: 469a mov sl, r3
|
|
743e: 4643 mov r3, r8
|
|
7440: 930a str r3, [sp, #40] ; 0x28
|
|
7442: 4690 mov r8, r2
|
|
7444: e068 b.n 7518 <_lv_blend_map+0xbc8>
|
|
blend_fp = color_blend_true_color_additive;
|
|
7446: 4b3f ldr r3, [pc, #252] ; (7544 <_lv_blend_map+0xbf4>)
|
|
7448: 930a str r3, [sp, #40] ; 0x28
|
|
744a: e7b4 b.n 73b6 <_lv_blend_map+0xa66>
|
|
map_buf_tmp -= draw_area->x1;
|
|
744c: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
744e: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
7450: 1a9b subs r3, r3, r2
|
|
7452: 005b lsls r3, r3, #1
|
|
7454: 46a1 mov r9, r4
|
|
7456: 4499 add r9, r3
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
7458: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
745a: 4296 cmp r6, r2
|
|
745c: dd01 ble.n 7462 <_lv_blend_map+0xb12>
|
|
745e: f7ff fa8d bl 697c <_lv_blend_map+0x2c>
|
|
disp_buf_tmp += disp_w;
|
|
7462: 4663 mov r3, ip
|
|
7464: 005b lsls r3, r3, #1
|
|
7466: 469a mov sl, r3
|
|
map_buf_tmp += map_w;
|
|
7468: 004b lsls r3, r1, #1
|
|
746a: 4698 mov r8, r3
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
746c: af10 add r7, sp, #64 ; 0x40
|
|
746e: 465b mov r3, fp
|
|
7470: 9305 str r3, [sp, #20]
|
|
7472: 46d3 mov fp, sl
|
|
7474: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
7476: 469a mov sl, r3
|
|
7478: 2300 movs r3, #0
|
|
747a: 5efd ldrsh r5, [r7, r3]
|
|
747c: 002e movs r6, r5
|
|
747e: 2204 movs r2, #4
|
|
7480: 5ebb ldrsh r3, [r7, r2]
|
|
7482: 429d cmp r5, r3
|
|
7484: dc0f bgt.n 74a6 <_lv_blend_map+0xb56>
|
|
7486: 006d lsls r5, r5, #1
|
|
7488: 9b06 ldr r3, [sp, #24]
|
|
748a: 195c adds r4, r3, r5
|
|
748c: 444d add r5, r9
|
|
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa);
|
|
748e: 8821 ldrh r1, [r4, #0]
|
|
7490: 8828 ldrh r0, [r5, #0]
|
|
7492: 9a05 ldr r2, [sp, #20]
|
|
7494: 47d0 blx sl
|
|
7496: 8020 strh r0, [r4, #0]
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
7498: 3601 adds r6, #1
|
|
749a: 3402 adds r4, #2
|
|
749c: 3502 adds r5, #2
|
|
749e: 2204 movs r2, #4
|
|
74a0: 5ebb ldrsh r3, [r7, r2]
|
|
74a2: 429e cmp r6, r3
|
|
74a4: ddf3 ble.n 748e <_lv_blend_map+0xb3e>
|
|
disp_buf_tmp += disp_w;
|
|
74a6: 9b06 ldr r3, [sp, #24]
|
|
74a8: 445b add r3, fp
|
|
74aa: 9306 str r3, [sp, #24]
|
|
map_buf_tmp += map_w;
|
|
74ac: 44c1 add r9, r8
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
74ae: 9b08 ldr r3, [sp, #32]
|
|
74b0: 3301 adds r3, #1
|
|
74b2: 001a movs r2, r3
|
|
74b4: 9308 str r3, [sp, #32]
|
|
74b6: 2106 movs r1, #6
|
|
74b8: 5e7b ldrsh r3, [r7, r1]
|
|
74ba: 429a cmp r2, r3
|
|
74bc: dddc ble.n 7478 <_lv_blend_map+0xb28>
|
|
74be: f7ff fa5d bl 697c <_lv_blend_map+0x2c>
|
|
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
|
|
74c2: 8831 ldrh r1, [r6, #0]
|
|
74c4: 8828 ldrh r0, [r5, #0]
|
|
74c6: 47d0 blx sl
|
|
74c8: 8030 strh r0, [r6, #0]
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
74ca: 3401 adds r4, #1
|
|
74cc: 3602 adds r6, #2
|
|
74ce: 3502 adds r5, #2
|
|
74d0: 2204 movs r2, #4
|
|
74d2: 5ebb ldrsh r3, [r7, r2]
|
|
74d4: 429c cmp r4, r3
|
|
74d6: dc0a bgt.n 74ee <_lv_blend_map+0xb9e>
|
|
if(mask_tmp[x] == 0) continue;
|
|
74d8: 4643 mov r3, r8
|
|
74da: 5d1b ldrb r3, [r3, r4]
|
|
74dc: 2b00 cmp r3, #0
|
|
74de: d0f4 beq.n 74ca <_lv_blend_map+0xb7a>
|
|
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
|
|
74e0: 9a05 ldr r2, [sp, #20]
|
|
74e2: 2bf9 cmp r3, #249 ; 0xf9
|
|
74e4: d8ed bhi.n 74c2 <_lv_blend_map+0xb72>
|
|
74e6: 465a mov r2, fp
|
|
74e8: 4353 muls r3, r2
|
|
74ea: 0a1a lsrs r2, r3, #8
|
|
74ec: e7e9 b.n 74c2 <_lv_blend_map+0xb72>
|
|
disp_buf_tmp += disp_w;
|
|
74ee: 9b06 ldr r3, [sp, #24]
|
|
74f0: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
74f2: 4694 mov ip, r2
|
|
74f4: 4463 add r3, ip
|
|
74f6: 9306 str r3, [sp, #24]
|
|
74f8: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
74fa: 469c mov ip, r3
|
|
74fc: 44e0 add r8, ip
|
|
map_buf_tmp += map_w;
|
|
74fe: 9b07 ldr r3, [sp, #28]
|
|
7500: 469c mov ip, r3
|
|
7502: 44e1 add r9, ip
|
|
for(y = draw_area->y1; y <= draw_area->y2; y++) {
|
|
7504: 9b08 ldr r3, [sp, #32]
|
|
7506: 3301 adds r3, #1
|
|
7508: 001a movs r2, r3
|
|
750a: 9308 str r3, [sp, #32]
|
|
750c: 2106 movs r1, #6
|
|
750e: 5e7b ldrsh r3, [r7, r1]
|
|
7510: 429a cmp r2, r3
|
|
7512: dd01 ble.n 7518 <_lv_blend_map+0xbc8>
|
|
7514: f7ff fa32 bl 697c <_lv_blend_map+0x2c>
|
|
for(x = draw_area->x1; x <= draw_area->x2; x++) {
|
|
7518: 2300 movs r3, #0
|
|
751a: 5efd ldrsh r5, [r7, r3]
|
|
751c: 002c movs r4, r5
|
|
751e: 2204 movs r2, #4
|
|
7520: 5ebb ldrsh r3, [r7, r2]
|
|
7522: 429d cmp r5, r3
|
|
7524: dce3 bgt.n 74ee <_lv_blend_map+0xb9e>
|
|
7526: 006d lsls r5, r5, #1
|
|
7528: 9b06 ldr r3, [sp, #24]
|
|
752a: 195e adds r6, r3, r5
|
|
752c: 444d add r5, r9
|
|
752e: e7d3 b.n 74d8 <_lv_blend_map+0xb88>
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
7530: 9f0a ldr r7, [sp, #40] ; 0x28
|
|
7532: 2600 movs r6, #0
|
|
7534: e4e1 b.n 6efa <_lv_blend_map+0x5aa>
|
|
for(; x < x_end4; x += 4) {
|
|
7536: 003b movs r3, r7
|
|
7538: e659 b.n 71ee <_lv_blend_map+0x89e>
|
|
753a: 46c0 nop ; (mov r8, r8)
|
|
753c: fffff81f .word 0xfffff81f
|
|
7540: 00005bb7 .word 0x00005bb7
|
|
7544: 00005b11 .word 0x00005b11
|
|
7548: 9b05 ldr r3, [sp, #20]
|
|
754a: 4699 mov r9, r3
|
|
754c: 9b07 ldr r3, [sp, #28]
|
|
754e: 429e cmp r6, r3
|
|
7550: da00 bge.n 7554 <_lv_blend_map+0xc04>
|
|
7552: e4d6 b.n 6f02 <_lv_blend_map+0x5b2>
|
|
disp_buf_first += disp_w;
|
|
7554: 9b08 ldr r3, [sp, #32]
|
|
7556: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
7558: 4694 mov ip, r2
|
|
755a: 4463 add r3, ip
|
|
755c: 9308 str r3, [sp, #32]
|
|
755e: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
7560: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
7562: 4694 mov ip, r2
|
|
7564: 4463 add r3, ip
|
|
7566: 930a str r3, [sp, #40] ; 0x28
|
|
map_buf_first += map_w;
|
|
7568: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
756a: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
756c: 4694 mov ip, r2
|
|
756e: 4463 add r3, ip
|
|
7570: 9309 str r3, [sp, #36] ; 0x24
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
7572: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
7574: 3301 adds r3, #1
|
|
7576: 930d str r3, [sp, #52] ; 0x34
|
|
7578: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
757a: 429a cmp r2, r3
|
|
757c: dc01 bgt.n 7582 <_lv_blend_map+0xc32>
|
|
757e: f7ff f9fd bl 697c <_lv_blend_map+0x2c>
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
7582: 464b mov r3, r9
|
|
7584: 2b00 cmp r3, #0
|
|
7586: dd0f ble.n 75a8 <_lv_blend_map+0xc58>
|
|
7588: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
758a: 2203 movs r2, #3
|
|
758c: 4213 tst r3, r2
|
|
758e: d0cf beq.n 7530 <_lv_blend_map+0xbe0>
|
|
7590: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
7592: 4690 mov r8, r2
|
|
7594: 9a08 ldr r2, [sp, #32]
|
|
7596: 001f movs r7, r3
|
|
7598: 2600 movs r6, #0
|
|
MAP_NORMAL_MASK_PX(x)
|
|
759a: 4b05 ldr r3, [pc, #20] ; (75b0 <_lv_blend_map+0xc60>)
|
|
759c: 469a mov sl, r3
|
|
759e: 464b mov r3, r9
|
|
75a0: 9305 str r3, [sp, #20]
|
|
75a2: 4640 mov r0, r8
|
|
75a4: 0011 movs r1, r2
|
|
75a6: e452 b.n 6e4e <_lv_blend_map+0x4fe>
|
|
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
|
|
75a8: 9f0a ldr r7, [sp, #40] ; 0x28
|
|
75aa: 2600 movs r6, #0
|
|
75ac: e7ce b.n 754c <_lv_blend_map+0xbfc>
|
|
75ae: 46c0 nop ; (mov r8, r8)
|
|
75b0: fffff81f .word 0xfffff81f
|
|
|
|
000075b4 <lv_draw_map>:
|
|
* @param antialias anti-alias transformations (rotate, zoom) or not
|
|
*/
|
|
LV_ATTRIBUTE_FAST_MEM static void lv_draw_map(const lv_area_t * map_area, const lv_area_t * clip_area,
|
|
const uint8_t * map_p,
|
|
lv_draw_img_dsc_t * draw_dsc, bool chroma_key, bool alpha_byte)
|
|
{
|
|
75b4: b5f0 push {r4, r5, r6, r7, lr}
|
|
75b6: 46de mov lr, fp
|
|
75b8: 4657 mov r7, sl
|
|
75ba: 464e mov r6, r9
|
|
75bc: 4645 mov r5, r8
|
|
75be: b5e0 push {r5, r6, r7, lr}
|
|
75c0: b0bf sub sp, #252 ; 0xfc
|
|
75c2: 901c str r0, [sp, #112] ; 0x70
|
|
75c4: 0008 movs r0, r1
|
|
75c6: 9124 str r1, [sp, #144] ; 0x90
|
|
75c8: 4690 mov r8, r2
|
|
75ca: 930a str r3, [sp, #40] ; 0x28
|
|
75cc: ab48 add r3, sp, #288 ; 0x120
|
|
75ce: 781b ldrb r3, [r3, #0]
|
|
75d0: 930b str r3, [sp, #44] ; 0x2c
|
|
75d2: ab49 add r3, sp, #292 ; 0x124
|
|
75d4: 781b ldrb r3, [r3, #0]
|
|
75d6: 9307 str r3, [sp, #28]
|
|
75d8: 2300 movs r3, #0
|
|
{
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
const uint8_t * s8 = (const uint8_t *)src;
|
|
|
|
while(len) {
|
|
*d8 = *s8;
|
|
75da: a93c add r1, sp, #240 ; 0xf0
|
|
75dc: 5cc2 ldrb r2, [r0, r3]
|
|
75de: 545a strb r2, [r3, r1]
|
|
75e0: 3301 adds r3, #1
|
|
while(len) {
|
|
75e2: 2b08 cmp r3, #8
|
|
75e4: d1fa bne.n 75dc <lv_draw_map+0x28>
|
|
/* Use the clip area as draw area*/
|
|
lv_area_t draw_area;
|
|
lv_area_copy(&draw_area, clip_area);
|
|
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
75e6: 4bb7 ldr r3, [pc, #732] ; (78c4 <lv_draw_map+0x310>)
|
|
75e8: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
75ea: 4bb7 ldr r3, [pc, #732] ; (78c8 <lv_draw_map+0x314>)
|
|
75ec: 4798 blx r3
|
|
75ee: 9019 str r0, [sp, #100] ; 0x64
|
|
const lv_area_t * disp_area = &vdb->area;
|
|
|
|
/* Now `draw_area` has absolute coordinates.
|
|
* Make it relative to `disp_area` to simplify draw to `disp_buf`*/
|
|
draw_area.x1 -= disp_area->x1;
|
|
75f0: 8a04 ldrh r4, [r0, #16]
|
|
75f2: ab3c add r3, sp, #240 ; 0xf0
|
|
75f4: 881a ldrh r2, [r3, #0]
|
|
75f6: 1b12 subs r2, r2, r4
|
|
75f8: 801a strh r2, [r3, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
75fa: 8a40 ldrh r0, [r0, #18]
|
|
75fc: 885a ldrh r2, [r3, #2]
|
|
75fe: 1a12 subs r2, r2, r0
|
|
7600: 805a strh r2, [r3, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
7602: 8899 ldrh r1, [r3, #4]
|
|
7604: 1b09 subs r1, r1, r4
|
|
7606: 8099 strh r1, [r3, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
7608: 88da ldrh r2, [r3, #6]
|
|
760a: 1a12 subs r2, r2, r0
|
|
760c: 80da strh r2, [r3, #6]
|
|
|
|
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
760e: 4baf ldr r3, [pc, #700] ; (78cc <lv_draw_map+0x318>)
|
|
7610: 4798 blx r3
|
|
7612: 901a str r0, [sp, #104] ; 0x68
|
|
|
|
/*The simplest case just copy the pixels into the VDB*/
|
|
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
|
|
7614: 2800 cmp r0, #0
|
|
7616: d108 bne.n 762a <lv_draw_map+0x76>
|
|
7618: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
761a: 8853 ldrh r3, [r2, #2]
|
|
761c: 2b00 cmp r3, #0
|
|
761e: d104 bne.n 762a <lv_draw_map+0x76>
|
|
7620: 3301 adds r3, #1
|
|
7622: 33ff adds r3, #255 ; 0xff
|
|
7624: 8912 ldrh r2, [r2, #8]
|
|
7626: 429a cmp r2, r3
|
|
7628: d072 beq.n 7710 <lv_draw_map+0x15c>
|
|
draw_dsc->blend_mode);
|
|
}
|
|
/*In the other cases every pixel need to be checked one-by-one*/
|
|
else {
|
|
/*The pixel size in byte is different if an alpha byte is added too*/
|
|
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
|
|
762a: 9b07 ldr r3, [sp, #28]
|
|
762c: 1e5a subs r2, r3, #1
|
|
762e: 4193 sbcs r3, r2
|
|
7630: 3302 adds r3, #2
|
|
7632: 4699 mov r9, r3
|
|
7634: 9b1c ldr r3, [sp, #112] ; 0x70
|
|
7636: 2200 movs r2, #0
|
|
7638: 5e99 ldrsh r1, [r3, r2]
|
|
763a: 468c mov ip, r1
|
|
763c: 889f ldrh r7, [r3, #4]
|
|
763e: 3701 adds r7, #1
|
|
7640: 1a7f subs r7, r7, r1
|
|
7642: b23f sxth r7, r7
|
|
|
|
/*Go to the first displayed pixel of the map*/
|
|
int32_t map_w = lv_area_get_width(map_area);
|
|
const uint8_t * map_buf_tmp = map_p;
|
|
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
|
|
7644: a93c add r1, sp, #240 ; 0xf0
|
|
7646: 2202 movs r2, #2
|
|
7648: 5e8d ldrsh r5, [r1, r2]
|
|
764a: 9a19 ldr r2, [sp, #100] ; 0x64
|
|
764c: 2612 movs r6, #18
|
|
764e: 5f94 ldrsh r4, [r2, r6]
|
|
7650: 46ca mov sl, r9
|
|
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
|
|
7652: 2000 movs r0, #0
|
|
7654: 5e0e ldrsh r6, [r1, r0]
|
|
7656: 2010 movs r0, #16
|
|
7658: 5e12 ldrsh r2, [r2, r0]
|
|
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
|
|
765a: 2002 movs r0, #2
|
|
765c: 5e1b ldrsh r3, [r3, r0]
|
|
765e: 1b1b subs r3, r3, r4
|
|
7660: 1aeb subs r3, r5, r3
|
|
7662: 437b muls r3, r7
|
|
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
|
|
7664: 4660 mov r0, ip
|
|
7666: 1a80 subs r0, r0, r2
|
|
7668: 1a30 subs r0, r6, r0
|
|
766a: 18c0 adds r0, r0, r3
|
|
766c: 464b mov r3, r9
|
|
766e: 4358 muls r0, r3
|
|
7670: 0003 movs r3, r0
|
|
7672: 4443 add r3, r8
|
|
7674: 9315 str r3, [sp, #84] ; 0x54
|
|
uint32_t px_i = 0;
|
|
|
|
const uint8_t * map_px;
|
|
|
|
lv_area_t blend_area;
|
|
blend_area.x1 = draw_area.x1 + disp_area->x1;
|
|
7676: b2b6 uxth r6, r6
|
|
7678: 18b2 adds r2, r6, r2
|
|
767a: b292 uxth r2, r2
|
|
767c: a828 add r0, sp, #160 ; 0xa0
|
|
767e: 8002 strh r2, [r0, #0]
|
|
7680: 888b ldrh r3, [r1, #4]
|
|
7682: 3301 adds r3, #1
|
|
7684: 1b9b subs r3, r3, r6
|
|
7686: b29b uxth r3, r3
|
|
7688: b21e sxth r6, r3
|
|
768a: 9617 str r6, [sp, #92] ; 0x5c
|
|
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
|
|
768c: 3b01 subs r3, #1
|
|
768e: 18d3 adds r3, r2, r3
|
|
7690: 8083 strh r3, [r0, #4]
|
|
blend_area.y1 = disp_area->y1 + draw_area.y1;
|
|
7692: b2ad uxth r5, r5
|
|
7694: 192c adds r4, r5, r4
|
|
7696: b224 sxth r4, r4
|
|
7698: 8044 strh r4, [r0, #2]
|
|
blend_area.y2 = blend_area.y1;
|
|
769a: 80c4 strh r4, [r0, #6]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
769c: 88cb ldrh r3, [r1, #6]
|
|
769e: 3301 adds r3, #1
|
|
76a0: 1b5d subs r5, r3, r5
|
|
76a2: b22d sxth r5, r5
|
|
|
|
lv_coord_t draw_area_h = lv_area_get_height(&draw_area);
|
|
lv_coord_t draw_area_w = lv_area_get_width(&draw_area);
|
|
|
|
#if LV_USE_IMG_TRANSFORM
|
|
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
|
|
76a4: 980a ldr r0, [sp, #40] ; 0x28
|
|
76a6: 8843 ldrh r3, [r0, #2]
|
|
76a8: 2b00 cmp r3, #0
|
|
76aa: d000 beq.n 76ae <lv_draw_map+0xfa>
|
|
76ac: e344 b.n 7d38 <lv_draw_map+0x784>
|
|
76ae: 8902 ldrh r2, [r0, #8]
|
|
76b0: 1e53 subs r3, r2, #1
|
|
76b2: 3bff subs r3, #255 ; 0xff
|
|
76b4: 1e59 subs r1, r3, #1
|
|
76b6: 418b sbcs r3, r1
|
|
76b8: b2db uxtb r3, r3
|
|
76ba: 469b mov fp, r3
|
|
#else
|
|
bool transform = false;
|
|
#endif
|
|
/*Simple ARGB image. Handle it as special case because it's very common*/
|
|
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
|
|
76bc: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
76be: 2b00 cmp r3, #0
|
|
76c0: d000 beq.n 76c4 <lv_draw_map+0x110>
|
|
76c2: e0d5 b.n 7870 <lv_draw_map+0x2bc>
|
|
76c4: 3301 adds r3, #1
|
|
76c6: 33ff adds r3, #255 ; 0xff
|
|
76c8: 429a cmp r2, r3
|
|
76ca: d000 beq.n 76ce <lv_draw_map+0x11a>
|
|
76cc: e33a b.n 7d44 <lv_draw_map+0x790>
|
|
76ce: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
76d0: 2b00 cmp r3, #0
|
|
76d2: d105 bne.n 76e0 <lv_draw_map+0x12c>
|
|
76d4: 7a83 ldrb r3, [r0, #10]
|
|
76d6: 2b00 cmp r3, #0
|
|
76d8: d102 bne.n 76e0 <lv_draw_map+0x12c>
|
|
76da: 9b07 ldr r3, [sp, #28]
|
|
76dc: 2b00 cmp r3, #0
|
|
76de: d134 bne.n 774a <lv_draw_map+0x196>
|
|
_lv_mem_buf_release(map2);
|
|
}
|
|
/*Most complicated case: transform or other mask or chroma keyed*/
|
|
else {
|
|
/*Build the image and a mask line-by-line*/
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
76e0: a83c add r0, sp, #240 ; 0xf0
|
|
76e2: 4b7b ldr r3, [pc, #492] ; (78d0 <lv_draw_map+0x31c>)
|
|
76e4: 4798 blx r3
|
|
76e6: 23f0 movs r3, #240 ; 0xf0
|
|
76e8: 005b lsls r3, r3, #1
|
|
76ea: 4298 cmp r0, r3
|
|
76ec: d800 bhi.n 76f0 <lv_draw_map+0x13c>
|
|
76ee: e0ca b.n 7886 <lv_draw_map+0x2d2>
|
|
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
|
|
76f0: 20f0 movs r0, #240 ; 0xf0
|
|
76f2: 0080 lsls r0, r0, #2
|
|
76f4: 4c77 ldr r4, [pc, #476] ; (78d4 <lv_draw_map+0x320>)
|
|
76f6: 47a0 blx r4
|
|
76f8: 901b str r0, [sp, #108] ; 0x6c
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
76fa: 26f0 movs r6, #240 ; 0xf0
|
|
76fc: 0076 lsls r6, r6, #1
|
|
76fe: 0030 movs r0, r6
|
|
7700: 47a0 blx r4
|
|
7702: 9018 str r0, [sp, #96] ; 0x60
|
|
|
|
#if LV_USE_IMG_TRANSFORM
|
|
lv_img_transform_dsc_t trans_dsc;
|
|
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
|
|
7704: 2148 movs r1, #72 ; 0x48
|
|
7706: a82a add r0, sp, #168 ; 0xa8
|
|
7708: 4b73 ldr r3, [pc, #460] ; (78d8 <lv_draw_map+0x324>)
|
|
770a: 4798 blx r3
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
770c: 961d str r6, [sp, #116] ; 0x74
|
|
770e: e355 b.n 7dbc <lv_draw_map+0x808>
|
|
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
|
|
7710: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
7712: 2b00 cmp r3, #0
|
|
7714: d189 bne.n 762a <lv_draw_map+0x76>
|
|
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
|
|
7716: 9b07 ldr r3, [sp, #28]
|
|
7718: 2b00 cmp r3, #0
|
|
771a: d113 bne.n 7744 <lv_draw_map+0x190>
|
|
771c: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
771e: 7a9b ldrb r3, [r3, #10]
|
|
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
|
|
7720: 2202 movs r2, #2
|
|
7722: 4691 mov r9, r2
|
|
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
|
|
7724: 2b00 cmp r3, #0
|
|
7726: d185 bne.n 7634 <lv_draw_map+0x80>
|
|
_lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa,
|
|
7728: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
772a: 7b93 ldrb r3, [r2, #14]
|
|
772c: 9302 str r3, [sp, #8]
|
|
772e: 7813 ldrb r3, [r2, #0]
|
|
7730: 9301 str r3, [sp, #4]
|
|
7732: 2301 movs r3, #1
|
|
7734: 9300 str r3, [sp, #0]
|
|
7736: 2300 movs r3, #0
|
|
7738: 4642 mov r2, r8
|
|
773a: 991c ldr r1, [sp, #112] ; 0x70
|
|
773c: 9824 ldr r0, [sp, #144] ; 0x90
|
|
773e: 4c67 ldr r4, [pc, #412] ; (78dc <lv_draw_map+0x328>)
|
|
7740: 47a0 blx r4
|
|
7742: e2dd b.n 7d00 <lv_draw_map+0x74c>
|
|
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
|
|
7744: 2303 movs r3, #3
|
|
7746: 4699 mov r9, r3
|
|
7748: e774 b.n 7634 <lv_draw_map+0x80>
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
774a: a83c add r0, sp, #240 ; 0xf0
|
|
774c: 4b60 ldr r3, [pc, #384] ; (78d0 <lv_draw_map+0x31c>)
|
|
774e: 4798 blx r3
|
|
7750: 23f0 movs r3, #240 ; 0xf0
|
|
7752: 005b lsls r3, r3, #1
|
|
7754: 4298 cmp r0, r3
|
|
7756: d819 bhi.n 778c <lv_draw_map+0x1d8>
|
|
7758: a83c add r0, sp, #240 ; 0xf0
|
|
775a: 4b5d ldr r3, [pc, #372] ; (78d0 <lv_draw_map+0x31c>)
|
|
775c: 4798 blx r3
|
|
775e: 9007 str r0, [sp, #28]
|
|
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
|
|
7760: 9e07 ldr r6, [sp, #28]
|
|
7762: 0070 lsls r0, r6, #1
|
|
7764: 4c5b ldr r4, [pc, #364] ; (78d4 <lv_draw_map+0x320>)
|
|
7766: 47a0 blx r4
|
|
7768: 9005 str r0, [sp, #20]
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
776a: 0030 movs r0, r6
|
|
776c: 47a0 blx r4
|
|
776e: 9006 str r0, [sp, #24]
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
7770: 2d00 cmp r5, #0
|
|
7772: dd61 ble.n 7838 <lv_draw_map+0x284>
|
|
map_buf_tmp += map_w * px_size_byte;
|
|
7774: 4653 mov r3, sl
|
|
7776: 437b muls r3, r7
|
|
7778: 469a mov sl, r3
|
|
777a: 1c6b adds r3, r5, #1
|
|
777c: 469b mov fp, r3
|
|
777e: 2301 movs r3, #1
|
|
7780: 4698 mov r8, r3
|
|
7782: 2700 movs r7, #0
|
|
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
|
|
7784: 9d17 ldr r5, [sp, #92] ; 0x5c
|
|
7786: 003e movs r6, r7
|
|
7788: 464c mov r4, r9
|
|
778a: e031 b.n 77f0 <lv_draw_map+0x23c>
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
778c: 23f0 movs r3, #240 ; 0xf0
|
|
778e: 005b lsls r3, r3, #1
|
|
7790: 9307 str r3, [sp, #28]
|
|
7792: e7e5 b.n 7760 <lv_draw_map+0x1ac>
|
|
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
|
|
7794: 3301 adds r3, #1
|
|
7796: 1912 adds r2, r2, r4
|
|
7798: 3702 adds r7, #2
|
|
779a: 42ab cmp r3, r5
|
|
779c: da09 bge.n 77b2 <lv_draw_map+0x1fe>
|
|
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
|
|
779e: 7891 ldrb r1, [r2, #2]
|
|
mask_buf[px_i] = px_opa;
|
|
77a0: 54c1 strb r1, [r0, r3]
|
|
if(px_opa) {
|
|
77a2: 2900 cmp r1, #0
|
|
77a4: d0f6 beq.n 7794 <lv_draw_map+0x1e0>
|
|
map2[px_i].full = map_px[0] + (map_px[1] << 8);
|
|
77a6: 7856 ldrb r6, [r2, #1]
|
|
77a8: 0236 lsls r6, r6, #8
|
|
77aa: 7811 ldrb r1, [r2, #0]
|
|
77ac: 1989 adds r1, r1, r6
|
|
77ae: 8039 strh r1, [r7, #0]
|
|
77b0: e7f0 b.n 7794 <lv_draw_map+0x1e0>
|
|
77b2: 4666 mov r6, ip
|
|
77b4: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
77b6: 469c mov ip, r3
|
|
77b8: 4466 add r6, ip
|
|
map_buf_tmp += map_w * px_size_byte;
|
|
77ba: 9b15 ldr r3, [sp, #84] ; 0x54
|
|
77bc: 4453 add r3, sl
|
|
77be: 9315 str r3, [sp, #84] ; 0x54
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
77c0: ab24 add r3, sp, #144 ; 0x90
|
|
77c2: 2264 movs r2, #100 ; 0x64
|
|
77c4: 189b adds r3, r3, r2
|
|
77c6: 881b ldrh r3, [r3, #0]
|
|
77c8: 3301 adds r3, #1
|
|
77ca: aa24 add r2, sp, #144 ; 0x90
|
|
77cc: 2160 movs r1, #96 ; 0x60
|
|
77ce: 1852 adds r2, r2, r1
|
|
77d0: 8812 ldrh r2, [r2, #0]
|
|
77d2: 1a9b subs r3, r3, r2
|
|
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
|
|
77d4: b21b sxth r3, r3
|
|
77d6: 199b adds r3, r3, r6
|
|
77d8: 9a07 ldr r2, [sp, #28]
|
|
77da: 429a cmp r2, r3
|
|
77dc: d917 bls.n 780e <lv_draw_map+0x25a>
|
|
blend_area.y2 ++;
|
|
77de: aa28 add r2, sp, #160 ; 0xa0
|
|
77e0: 88d3 ldrh r3, [r2, #6]
|
|
77e2: 3301 adds r3, #1
|
|
77e4: 80d3 strh r3, [r2, #6]
|
|
77e6: 2301 movs r3, #1
|
|
77e8: 469c mov ip, r3
|
|
77ea: 44e0 add r8, ip
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
77ec: 45d8 cmp r8, fp
|
|
77ee: d023 beq.n 7838 <lv_draw_map+0x284>
|
|
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
|
|
77f0: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
77f2: 2b00 cmp r3, #0
|
|
77f4: dde1 ble.n 77ba <lv_draw_map+0x206>
|
|
77f6: 0077 lsls r7, r6, #1
|
|
77f8: 9b05 ldr r3, [sp, #20]
|
|
77fa: 469c mov ip, r3
|
|
77fc: 4467 add r7, ip
|
|
77fe: 9a15 ldr r2, [sp, #84] ; 0x54
|
|
7800: 2300 movs r3, #0
|
|
mask_buf[px_i] = px_opa;
|
|
7802: 9906 ldr r1, [sp, #24]
|
|
7804: 468c mov ip, r1
|
|
7806: 44b4 add ip, r6
|
|
7808: 4660 mov r0, ip
|
|
780a: 46b4 mov ip, r6
|
|
780c: e7c7 b.n 779e <lv_draw_map+0x1ea>
|
|
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
|
|
780e: af28 add r7, sp, #160 ; 0xa0
|
|
7810: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
7812: 7b93 ldrb r3, [r2, #14]
|
|
7814: 9302 str r3, [sp, #8]
|
|
7816: 7813 ldrb r3, [r2, #0]
|
|
7818: 9301 str r3, [sp, #4]
|
|
781a: 2302 movs r3, #2
|
|
781c: 9300 str r3, [sp, #0]
|
|
781e: 9b06 ldr r3, [sp, #24]
|
|
7820: 9a05 ldr r2, [sp, #20]
|
|
7822: 0039 movs r1, r7
|
|
7824: 9824 ldr r0, [sp, #144] ; 0x90
|
|
7826: 4e2d ldr r6, [pc, #180] ; (78dc <lv_draw_map+0x328>)
|
|
7828: 47b0 blx r6
|
|
blend_area.y1 = blend_area.y2 + 1;
|
|
782a: 88fb ldrh r3, [r7, #6]
|
|
782c: 3301 adds r3, #1
|
|
782e: b21b sxth r3, r3
|
|
7830: 807b strh r3, [r7, #2]
|
|
blend_area.y2 = blend_area.y1;
|
|
7832: 80fb strh r3, [r7, #6]
|
|
px_i = 0;
|
|
7834: 2600 movs r6, #0
|
|
7836: e7d6 b.n 77e6 <lv_draw_map+0x232>
|
|
if(blend_area.y1 != blend_area.y2) {
|
|
7838: aa28 add r2, sp, #160 ; 0xa0
|
|
783a: 2106 movs r1, #6
|
|
783c: 5e53 ldrsh r3, [r2, r1]
|
|
783e: 2102 movs r1, #2
|
|
7840: 5e52 ldrsh r2, [r2, r1]
|
|
7842: 429a cmp r2, r3
|
|
7844: d00e beq.n 7864 <lv_draw_map+0x2b0>
|
|
blend_area.y2--;
|
|
7846: a928 add r1, sp, #160 ; 0xa0
|
|
7848: 3b01 subs r3, #1
|
|
784a: 80cb strh r3, [r1, #6]
|
|
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
|
|
784c: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
784e: 7b93 ldrb r3, [r2, #14]
|
|
7850: 9302 str r3, [sp, #8]
|
|
7852: 7813 ldrb r3, [r2, #0]
|
|
7854: 9301 str r3, [sp, #4]
|
|
7856: 2302 movs r3, #2
|
|
7858: 9300 str r3, [sp, #0]
|
|
785a: 9b06 ldr r3, [sp, #24]
|
|
785c: 9a05 ldr r2, [sp, #20]
|
|
785e: 9824 ldr r0, [sp, #144] ; 0x90
|
|
7860: 4c1e ldr r4, [pc, #120] ; (78dc <lv_draw_map+0x328>)
|
|
7862: 47a0 blx r4
|
|
_lv_mem_buf_release(mask_buf);
|
|
7864: 9806 ldr r0, [sp, #24]
|
|
7866: 4c1e ldr r4, [pc, #120] ; (78e0 <lv_draw_map+0x32c>)
|
|
7868: 47a0 blx r4
|
|
_lv_mem_buf_release(map2);
|
|
786a: 9805 ldr r0, [sp, #20]
|
|
786c: 47a0 blx r4
|
|
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
|
|
786e: e247 b.n 7d00 <lv_draw_map+0x74c>
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
7870: a83c add r0, sp, #240 ; 0xf0
|
|
7872: 4b17 ldr r3, [pc, #92] ; (78d0 <lv_draw_map+0x31c>)
|
|
7874: 4798 blx r3
|
|
7876: 23f0 movs r3, #240 ; 0xf0
|
|
7878: 005b lsls r3, r3, #1
|
|
787a: 4298 cmp r0, r3
|
|
787c: d903 bls.n 7886 <lv_draw_map+0x2d2>
|
|
787e: 23f0 movs r3, #240 ; 0xf0
|
|
7880: 005b lsls r3, r3, #1
|
|
7882: 931d str r3, [sp, #116] ; 0x74
|
|
7884: e003 b.n 788e <lv_draw_map+0x2da>
|
|
7886: a83c add r0, sp, #240 ; 0xf0
|
|
7888: 4b11 ldr r3, [pc, #68] ; (78d0 <lv_draw_map+0x31c>)
|
|
788a: 4798 blx r3
|
|
788c: 901d str r0, [sp, #116] ; 0x74
|
|
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
|
|
788e: 9e1d ldr r6, [sp, #116] ; 0x74
|
|
7890: 0070 lsls r0, r6, #1
|
|
7892: 4c10 ldr r4, [pc, #64] ; (78d4 <lv_draw_map+0x320>)
|
|
7894: 47a0 blx r4
|
|
7896: 901b str r0, [sp, #108] ; 0x6c
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
7898: 0030 movs r0, r6
|
|
789a: 47a0 blx r4
|
|
789c: 9018 str r0, [sp, #96] ; 0x60
|
|
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
|
|
789e: 2148 movs r1, #72 ; 0x48
|
|
78a0: a82a add r0, sp, #168 ; 0xa8
|
|
78a2: 4b0d ldr r3, [pc, #52] ; (78d8 <lv_draw_map+0x324>)
|
|
78a4: 4798 blx r3
|
|
if(transform) {
|
|
78a6: 465b mov r3, fp
|
|
78a8: 2b00 cmp r3, #0
|
|
78aa: d100 bne.n 78ae <lv_draw_map+0x2fa>
|
|
78ac: e286 b.n 7dbc <lv_draw_map+0x808>
|
|
78ae: e260 b.n 7d72 <lv_draw_map+0x7be>
|
|
trans_dsc.cfg.antialias = draw_dsc->antialias;
|
|
|
|
_lv_img_buf_transform_init(&trans_dsc);
|
|
}
|
|
#endif
|
|
uint16_t recolor_premult[3] = {0};
|
|
78b0: 2300 movs r3, #0
|
|
78b2: 9314 str r3, [sp, #80] ; 0x50
|
|
78b4: 9312 str r3, [sp, #72] ; 0x48
|
|
78b6: 9311 str r3, [sp, #68] ; 0x44
|
|
78b8: e297 b.n 7dea <lv_draw_map+0x836>
|
|
draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
|
|
|
|
|
|
/*Prepare the `mask_buf`if there are other masks*/
|
|
if(other_mask_cnt) {
|
|
_lv_memset_ff(mask_buf, mask_buf_size);
|
|
78ba: 991d ldr r1, [sp, #116] ; 0x74
|
|
78bc: 9818 ldr r0, [sp, #96] ; 0x60
|
|
78be: 4b09 ldr r3, [pc, #36] ; (78e4 <lv_draw_map+0x330>)
|
|
78c0: 4798 blx r3
|
|
78c2: e2a9 b.n 7e18 <lv_draw_map+0x864>
|
|
78c4: 000043b1 .word 0x000043b1
|
|
78c8: 0000f709 .word 0x0000f709
|
|
78cc: 0000a6c1 .word 0x0000a6c1
|
|
78d0: 0000fbf3 .word 0x0000fbf3
|
|
78d4: 00010ec1 .word 0x00010ec1
|
|
78d8: 0001104d .word 0x0001104d
|
|
78dc: 00006951 .word 0x00006951
|
|
78e0: 00010bd5 .word 0x00010bd5
|
|
78e4: 000110f1 .word 0x000110f1
|
|
static inline bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y)
|
|
{
|
|
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
|
|
|
|
/*Get the target point relative coordinates to the pivot*/
|
|
int32_t xt = x - dsc->cfg.pivot_x;
|
|
78e8: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
78ea: 18f3 adds r3, r6, r3
|
|
78ec: b21b sxth r3, r3
|
|
78ee: a92a add r1, sp, #168 ; 0xa8
|
|
78f0: 2008 movs r0, #8
|
|
78f2: 5e0a ldrsh r2, [r1, r0]
|
|
78f4: 1a9b subs r3, r3, r2
|
|
int32_t yt = y - dsc->cfg.pivot_y;
|
|
78f6: 200a movs r0, #10
|
|
78f8: 5e0a ldrsh r2, [r1, r0]
|
|
78fa: 980e ldr r0, [sp, #56] ; 0x38
|
|
78fc: 1a82 subs r2, r0, r2
|
|
|
|
int32_t xs;
|
|
int32_t ys;
|
|
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
|
|
78fe: 2080 movs r0, #128 ; 0x80
|
|
7900: 0040 lsls r0, r0, #1
|
|
7902: 89c9 ldrh r1, [r1, #14]
|
|
7904: 4281 cmp r1, r0
|
|
7906: d059 beq.n 79bc <lv_draw_map+0x408>
|
|
/*Get the source pixel from the upscaled image*/
|
|
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
|
|
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
|
|
}
|
|
else if(dsc->cfg.angle == 0) {
|
|
7908: a92a add r1, sp, #168 ; 0xa8
|
|
790a: 200c movs r0, #12
|
|
790c: 5e09 ldrsh r1, [r1, r0]
|
|
790e: 2900 cmp r1, #0
|
|
7910: d16b bne.n 79ea <lv_draw_map+0x436>
|
|
xt *= dsc->tmp.zoom_inv;
|
|
7912: a92a add r1, sp, #168 ; 0xa8
|
|
7914: 8ec8 ldrh r0, [r1, #54] ; 0x36
|
|
7916: 4343 muls r3, r0
|
|
7918: 001d movs r5, r3
|
|
yt *= dsc->tmp.zoom_inv;
|
|
xs = xt + dsc->tmp.pivot_x_256;
|
|
791a: 9b33 ldr r3, [sp, #204] ; 0xcc
|
|
791c: 469a mov sl, r3
|
|
791e: 44aa add sl, r5
|
|
yt *= dsc->tmp.zoom_inv;
|
|
7920: 4342 muls r2, r0
|
|
ys = yt + dsc->tmp.pivot_y_256;
|
|
7922: 9b34 ldr r3, [sp, #208] ; 0xd0
|
|
7924: 18d3 adds r3, r2, r3
|
|
7926: 930c str r3, [sp, #48] ; 0x30
|
|
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
|
|
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
|
|
}
|
|
|
|
/*Get the integer part of the source pixel*/
|
|
int32_t xs_int = xs >> 8;
|
|
7928: 4653 mov r3, sl
|
|
792a: 121b asrs r3, r3, #8
|
|
792c: 4698 mov r8, r3
|
|
int32_t ys_int = ys >> 8;
|
|
|
|
if(xs_int >= dsc->cfg.src_w) return false;
|
|
792e: ab2a add r3, sp, #168 ; 0xa8
|
|
7930: 2204 movs r2, #4
|
|
7932: 5e9b ldrsh r3, [r3, r2]
|
|
7934: 4598 cmp r8, r3
|
|
7936: db00 blt.n 793a <lv_draw_map+0x386>
|
|
7938: e0b0 b.n 7a9c <lv_draw_map+0x4e8>
|
|
else if(xs_int < 0) return false;
|
|
793a: 4642 mov r2, r8
|
|
793c: 2a00 cmp r2, #0
|
|
793e: da00 bge.n 7942 <lv_draw_map+0x38e>
|
|
7940: e0ac b.n 7a9c <lv_draw_map+0x4e8>
|
|
int32_t ys_int = ys >> 8;
|
|
7942: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
7944: 1212 asrs r2, r2, #8
|
|
7946: 0010 movs r0, r2
|
|
7948: 9216 str r2, [sp, #88] ; 0x58
|
|
|
|
if(ys_int >= dsc->cfg.src_h) return false;
|
|
794a: aa2a add r2, sp, #168 ; 0xa8
|
|
794c: 2106 movs r1, #6
|
|
794e: 5e52 ldrsh r2, [r2, r1]
|
|
7950: 4290 cmp r0, r2
|
|
7952: db00 blt.n 7956 <lv_draw_map+0x3a2>
|
|
7954: e0a2 b.n 7a9c <lv_draw_map+0x4e8>
|
|
else if(ys_int < 0) return false;
|
|
7956: 2800 cmp r0, #0
|
|
7958: da00 bge.n 795c <lv_draw_map+0x3a8>
|
|
795a: e09f b.n 7a9c <lv_draw_map+0x4e8>
|
|
|
|
uint8_t px_size;
|
|
uint32_t pxi;
|
|
if(dsc->tmp.native_color) {
|
|
795c: 2234 movs r2, #52 ; 0x34
|
|
795e: a92a add r1, sp, #168 ; 0xa8
|
|
7960: 5c89 ldrb r1, [r1, r2]
|
|
7962: 074a lsls r2, r1, #29
|
|
7964: d56a bpl.n 7a3c <lv_draw_map+0x488>
|
|
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
|
|
7966: 9a2a ldr r2, [sp, #168] ; 0xa8
|
|
if(dsc->tmp.has_alpha == 0) {
|
|
7968: 0789 lsls r1, r1, #30
|
|
796a: d458 bmi.n 7a1e <lv_draw_map+0x46a>
|
|
px_size = LV_COLOR_SIZE >> 3;
|
|
|
|
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
|
|
796c: 4343 muls r3, r0
|
|
796e: 4443 add r3, r8
|
|
7970: 005b lsls r3, r3, #1
|
|
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size);
|
|
7972: 18d2 adds r2, r2, r3
|
|
*d8 = *s8;
|
|
7974: 7810 ldrb r0, [r2, #0]
|
|
7976: a92a add r1, sp, #168 ; 0xa8
|
|
7978: 7508 strb r0, [r1, #20]
|
|
797a: 7852 ldrb r2, [r2, #1]
|
|
797c: 754a strb r2, [r1, #21]
|
|
px_size = LV_COLOR_SIZE >> 3;
|
|
797e: 2102 movs r1, #2
|
|
px_size = 0; /*unused*/
|
|
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
|
|
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
|
|
}
|
|
|
|
if(dsc->tmp.chroma_keyed) {
|
|
7980: 2234 movs r2, #52 ; 0x34
|
|
7982: a82a add r0, sp, #168 ; 0xa8
|
|
7984: 5c82 ldrb r2, [r0, r2]
|
|
7986: 07d2 lsls r2, r2, #31
|
|
7988: d50f bpl.n 79aa <lv_draw_map+0x3f6>
|
|
lv_color_t ct = LV_COLOR_TRANSP;
|
|
798a: 221f movs r2, #31
|
|
798c: 9822 ldr r0, [sp, #136] ; 0x88
|
|
798e: 4390 bics r0, r2
|
|
7990: 22fc movs r2, #252 ; 0xfc
|
|
7992: 00d2 lsls r2, r2, #3
|
|
7994: 4302 orrs r2, r0
|
|
7996: 0552 lsls r2, r2, #21
|
|
7998: 0d52 lsrs r2, r2, #21
|
|
799a: 4668 mov r0, sp
|
|
799c: 2588 movs r5, #136 ; 0x88
|
|
799e: 1940 adds r0, r0, r5
|
|
79a0: 8002 strh r2, [r0, #0]
|
|
if(dsc->res.color.full == ct.full) return false;
|
|
79a2: a82a add r0, sp, #168 ; 0xa8
|
|
79a4: 8a80 ldrh r0, [r0, #20]
|
|
79a6: 4290 cmp r0, r2
|
|
79a8: d078 beq.n 7a9c <lv_draw_map+0x4e8>
|
|
}
|
|
|
|
if(dsc->cfg.antialias == false) return true;
|
|
79aa: aa2a add r2, sp, #168 ; 0xa8
|
|
79ac: 7cd2 ldrb r2, [r2, #19]
|
|
79ae: 2a00 cmp r2, #0
|
|
79b0: d160 bne.n 7a74 <lv_draw_map+0x4c0>
|
|
if(ret == false) {
|
|
mask_buf[px_i] = LV_OPA_TRANSP;
|
|
continue;
|
|
}
|
|
else {
|
|
mask_buf[px_i] = trans_dsc.res.opa;
|
|
79b2: ab2a add r3, sp, #168 ; 0xa8
|
|
79b4: 7d9a ldrb r2, [r3, #22]
|
|
79b6: 7022 strb r2, [r4, #0]
|
|
c.full = trans_dsc.res.color.full;
|
|
79b8: 8a9b ldrh r3, [r3, #20]
|
|
79ba: e080 b.n 7abe <lv_draw_map+0x50a>
|
|
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
|
|
79bc: 9936 ldr r1, [sp, #216] ; 0xd8
|
|
79be: 9835 ldr r0, [sp, #212] ; 0xd4
|
|
79c0: 0005 movs r5, r0
|
|
79c2: 910c str r1, [sp, #48] ; 0x30
|
|
79c4: 0008 movs r0, r1
|
|
79c6: 4358 muls r0, r3
|
|
79c8: 0029 movs r1, r5
|
|
79ca: 4351 muls r1, r2
|
|
79cc: 1a41 subs r1, r0, r1
|
|
79ce: 11c9 asrs r1, r1, #7
|
|
79d0: 9833 ldr r0, [sp, #204] ; 0xcc
|
|
79d2: 9016 str r0, [sp, #88] ; 0x58
|
|
79d4: 4682 mov sl, r0
|
|
79d6: 448a add sl, r1
|
|
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
|
|
79d8: 436b muls r3, r5
|
|
79da: 980c ldr r0, [sp, #48] ; 0x30
|
|
79dc: 4342 muls r2, r0
|
|
79de: 189b adds r3, r3, r2
|
|
79e0: 11db asrs r3, r3, #7
|
|
79e2: 9a34 ldr r2, [sp, #208] ; 0xd0
|
|
79e4: 189b adds r3, r3, r2
|
|
79e6: 930c str r3, [sp, #48] ; 0x30
|
|
79e8: e79e b.n 7928 <lv_draw_map+0x374>
|
|
xt *= dsc->tmp.zoom_inv;
|
|
79ea: a92a add r1, sp, #168 ; 0xa8
|
|
79ec: 8ec8 ldrh r0, [r1, #54] ; 0x36
|
|
79ee: 4343 muls r3, r0
|
|
79f0: 001d movs r5, r3
|
|
yt *= dsc->tmp.zoom_inv;
|
|
79f2: 4342 muls r2, r0
|
|
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
|
|
79f4: 9836 ldr r0, [sp, #216] ; 0xd8
|
|
79f6: 4358 muls r0, r3
|
|
79f8: 4680 mov r8, r0
|
|
79fa: 9835 ldr r0, [sp, #212] ; 0xd4
|
|
79fc: 4350 muls r0, r2
|
|
79fe: 4643 mov r3, r8
|
|
7a00: 1a18 subs r0, r3, r0
|
|
7a02: 13c0 asrs r0, r0, #15
|
|
7a04: 9b33 ldr r3, [sp, #204] ; 0xcc
|
|
7a06: 469a mov sl, r3
|
|
7a08: 4482 add sl, r0
|
|
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
|
|
7a0a: 9b35 ldr r3, [sp, #212] ; 0xd4
|
|
7a0c: 436b muls r3, r5
|
|
7a0e: 9836 ldr r0, [sp, #216] ; 0xd8
|
|
7a10: 4350 muls r0, r2
|
|
7a12: 181b adds r3, r3, r0
|
|
7a14: 13db asrs r3, r3, #15
|
|
7a16: 9a34 ldr r2, [sp, #208] ; 0xd0
|
|
7a18: 189b adds r3, r3, r2
|
|
7a1a: 930c str r3, [sp, #48] ; 0x30
|
|
7a1c: e784 b.n 7928 <lv_draw_map+0x374>
|
|
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
|
|
7a1e: 9916 ldr r1, [sp, #88] ; 0x58
|
|
7a20: 434b muls r3, r1
|
|
7a22: 4443 add r3, r8
|
|
7a24: 0059 lsls r1, r3, #1
|
|
7a26: 18cb adds r3, r1, r3
|
|
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1);
|
|
7a28: 18d2 adds r2, r2, r3
|
|
7a2a: 7810 ldrb r0, [r2, #0]
|
|
7a2c: a92a add r1, sp, #168 ; 0xa8
|
|
7a2e: 7508 strb r0, [r1, #20]
|
|
7a30: 7850 ldrb r0, [r2, #1]
|
|
7a32: 7548 strb r0, [r1, #21]
|
|
dsc->res.opa = src_u8[pxi + px_size - 1];
|
|
7a34: 7892 ldrb r2, [r2, #2]
|
|
7a36: 758a strb r2, [r1, #22]
|
|
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
|
|
7a38: 2103 movs r1, #3
|
|
7a3a: e7a1 b.n 7980 <lv_draw_map+0x3cc>
|
|
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
|
|
7a3c: 4643 mov r3, r8
|
|
7a3e: b219 sxth r1, r3
|
|
7a40: 466b mov r3, sp
|
|
7a42: 2258 movs r2, #88 ; 0x58
|
|
7a44: 189b adds r3, r3, r2
|
|
7a46: 2200 movs r2, #0
|
|
7a48: 5e9a ldrsh r2, [r3, r2]
|
|
7a4a: ab24 add r3, sp, #144 ; 0x90
|
|
7a4c: 8d1b ldrh r3, [r3, #40] ; 0x28
|
|
7a4e: 9226 str r2, [sp, #152] ; 0x98
|
|
7a50: 9125 str r1, [sp, #148] ; 0x94
|
|
7a52: a830 add r0, sp, #192 ; 0xc0
|
|
7a54: 4dae ldr r5, [pc, #696] ; (7d10 <lv_draw_map+0x75c>)
|
|
7a56: 47a8 blx r5
|
|
7a58: ab24 add r3, sp, #144 ; 0x90
|
|
7a5a: 8598 strh r0, [r3, #44] ; 0x2c
|
|
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
|
|
7a5c: 9a26 ldr r2, [sp, #152] ; 0x98
|
|
7a5e: 9925 ldr r1, [sp, #148] ; 0x94
|
|
7a60: a830 add r0, sp, #192 ; 0xc0
|
|
7a62: 4bac ldr r3, [pc, #688] ; (7d14 <lv_draw_map+0x760>)
|
|
7a64: 4798 blx r3
|
|
7a66: ab24 add r3, sp, #144 ; 0x90
|
|
7a68: 222e movs r2, #46 ; 0x2e
|
|
7a6a: 189b adds r3, r3, r2
|
|
7a6c: 7018 strb r0, [r3, #0]
|
|
pxi = 0; /*unused*/
|
|
7a6e: 2300 movs r3, #0
|
|
px_size = 0; /*unused*/
|
|
7a70: 2100 movs r1, #0
|
|
7a72: e785 b.n 7980 <lv_draw_map+0x3cc>
|
|
|
|
dsc->tmp.xs = xs;
|
|
7a74: a82a add r0, sp, #168 ; 0xa8
|
|
7a76: 4652 mov r2, sl
|
|
7a78: 8702 strh r2, [r0, #56] ; 0x38
|
|
dsc->tmp.ys = ys;
|
|
7a7a: 466a mov r2, sp
|
|
7a7c: 8e12 ldrh r2, [r2, #48] ; 0x30
|
|
7a7e: 8742 strh r2, [r0, #58] ; 0x3a
|
|
dsc->tmp.xs_int = xs_int;
|
|
7a80: 4642 mov r2, r8
|
|
7a82: 8782 strh r2, [r0, #60] ; 0x3c
|
|
dsc->tmp.ys_int = ys_int;
|
|
7a84: 466a mov r2, sp
|
|
7a86: 2558 movs r5, #88 ; 0x58
|
|
7a88: 1952 adds r2, r2, r5
|
|
7a8a: 8812 ldrh r2, [r2, #0]
|
|
7a8c: 87c2 strh r2, [r0, #62] ; 0x3e
|
|
dsc->tmp.pxi = pxi;
|
|
7a8e: 6403 str r3, [r0, #64] ; 0x40
|
|
dsc->tmp.px_size = px_size;
|
|
7a90: 2344 movs r3, #68 ; 0x44
|
|
7a92: 54c1 strb r1, [r0, r3]
|
|
|
|
bool ret;
|
|
ret = _lv_img_buf_transform_anti_alias(dsc);
|
|
7a94: 4ba0 ldr r3, [pc, #640] ; (7d18 <lv_draw_map+0x764>)
|
|
7a96: 4798 blx r3
|
|
if(ret == false) {
|
|
7a98: 2800 cmp r0, #0
|
|
7a9a: d18a bne.n 79b2 <lv_draw_map+0x3fe>
|
|
mask_buf[px_i] = LV_OPA_TRANSP;
|
|
7a9c: 2300 movs r3, #0
|
|
7a9e: 7023 strb r3, [r4, #0]
|
|
continue;
|
|
7aa0: e042 b.n 7b28 <lv_draw_map+0x574>
|
|
#endif
|
|
continue;
|
|
}
|
|
}
|
|
else {
|
|
mask_buf[px_i] = 0xFF;
|
|
7aa2: 23ff movs r3, #255 ; 0xff
|
|
7aa4: 7023 strb r3, [r4, #0]
|
|
}
|
|
|
|
#if LV_COLOR_DEPTH == 8
|
|
c.full = map_px[0];
|
|
#elif LV_COLOR_DEPTH == 16
|
|
c.full = map_px[0] + (map_px[1] << 8);
|
|
7aa6: 787a ldrb r2, [r7, #1]
|
|
7aa8: 0212 lsls r2, r2, #8
|
|
7aaa: 783b ldrb r3, [r7, #0]
|
|
7aac: 189b adds r3, r3, r2
|
|
7aae: b29b uxth r3, r3
|
|
#elif LV_COLOR_DEPTH == 32
|
|
c.full = *((uint32_t *)map_px);
|
|
c.ch.alpha = 0xFF;
|
|
#endif
|
|
if(chroma_key) {
|
|
7ab0: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
7ab2: 2a00 cmp r2, #0
|
|
7ab4: d003 beq.n 7abe <lv_draw_map+0x50a>
|
|
if(c.full == chroma_keyed_color.full) {
|
|
7ab6: 4a99 ldr r2, [pc, #612] ; (7d1c <lv_draw_map+0x768>)
|
|
7ab8: 8812 ldrh r2, [r2, #0]
|
|
7aba: 429a cmp r2, r3
|
|
7abc: d04a beq.n 7b54 <lv_draw_map+0x5a0>
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(draw_dsc->recolor_opa != 0) {
|
|
7abe: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
7ac0: 7a92 ldrb r2, [r2, #10]
|
|
7ac2: 2a00 cmp r2, #0
|
|
7ac4: d02e beq.n 7b24 <lv_draw_map+0x570>
|
|
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
|
|
7ac6: 466a mov r2, sp
|
|
7ac8: 214c movs r1, #76 ; 0x4c
|
|
7aca: 1852 adds r2, r2, r1
|
|
7acc: 8812 ldrh r2, [r2, #0]
|
|
7ace: 0ad9 lsrs r1, r3, #11
|
|
7ad0: 4694 mov ip, r2
|
|
7ad2: 4351 muls r1, r2
|
|
7ad4: 9a11 ldr r2, [sp, #68] ; 0x44
|
|
7ad6: 4690 mov r8, r2
|
|
7ad8: 4441 add r1, r8
|
|
7ada: 04c9 lsls r1, r1, #19
|
|
7adc: 0ec9 lsrs r1, r1, #27
|
|
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
|
|
7ade: 0558 lsls r0, r3, #21
|
|
7ae0: 0e80 lsrs r0, r0, #26
|
|
7ae2: 4662 mov r2, ip
|
|
7ae4: 4350 muls r0, r2
|
|
7ae6: 9a12 ldr r2, [sp, #72] ; 0x48
|
|
7ae8: 4690 mov r8, r2
|
|
7aea: 4440 add r0, r8
|
|
7aec: 0480 lsls r0, r0, #18
|
|
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
|
|
7aee: 06da lsls r2, r3, #27
|
|
7af0: 0ed2 lsrs r2, r2, #27
|
|
7af2: 4663 mov r3, ip
|
|
7af4: 435a muls r2, r3
|
|
7af6: 9b14 ldr r3, [sp, #80] ; 0x50
|
|
7af8: 469c mov ip, r3
|
|
7afa: 4462 add r2, ip
|
|
7afc: 04d2 lsls r2, r2, #19
|
|
7afe: 0ed5 lsrs r5, r2, #27
|
|
7b00: 231f movs r3, #31
|
|
7b02: 9a08 ldr r2, [sp, #32]
|
|
7b04: 439a bics r2, r3
|
|
7b06: 0013 movs r3, r2
|
|
7b08: 002a movs r2, r5
|
|
7b0a: 431a orrs r2, r3
|
|
7b0c: 0e80 lsrs r0, r0, #26
|
|
7b0e: 0140 lsls r0, r0, #5
|
|
7b10: 4b83 ldr r3, [pc, #524] ; (7d20 <lv_draw_map+0x76c>)
|
|
7b12: 4013 ands r3, r2
|
|
7b14: 4303 orrs r3, r0
|
|
7b16: 02c9 lsls r1, r1, #11
|
|
7b18: 055b lsls r3, r3, #21
|
|
7b1a: 0d5b lsrs r3, r3, #21
|
|
7b1c: 430b orrs r3, r1
|
|
7b1e: 466a mov r2, sp
|
|
7b20: 8413 strh r3, [r2, #32]
|
|
7b22: b29b uxth r3, r3
|
|
c = lv_color_mix_premult(recolor_premult, c, recolor_opa_inv);
|
|
}
|
|
|
|
map2[px_i].full = c.full;
|
|
7b24: 9a05 ldr r2, [sp, #20]
|
|
7b26: 8013 strh r3, [r2, #0]
|
|
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
|
|
7b28: 3601 adds r6, #1
|
|
7b2a: 9b06 ldr r3, [sp, #24]
|
|
7b2c: 469c mov ip, r3
|
|
7b2e: 4467 add r7, ip
|
|
7b30: 3401 adds r4, #1
|
|
7b32: 9b05 ldr r3, [sp, #20]
|
|
7b34: 3302 adds r3, #2
|
|
7b36: 9305 str r3, [sp, #20]
|
|
7b38: 454e cmp r6, r9
|
|
7b3a: da0e bge.n 7b5a <lv_draw_map+0x5a6>
|
|
if(transform) {
|
|
7b3c: 465b mov r3, fp
|
|
7b3e: 2b00 cmp r3, #0
|
|
7b40: d000 beq.n 7b44 <lv_draw_map+0x590>
|
|
7b42: e6d1 b.n 78e8 <lv_draw_map+0x334>
|
|
if(alpha_byte) {
|
|
7b44: 9b07 ldr r3, [sp, #28]
|
|
7b46: 2b00 cmp r3, #0
|
|
7b48: d0ab beq.n 7aa2 <lv_draw_map+0x4ee>
|
|
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
|
|
7b4a: 78bb ldrb r3, [r7, #2]
|
|
mask_buf[px_i] = px_opa;
|
|
7b4c: 7023 strb r3, [r4, #0]
|
|
if(px_opa == 0) {
|
|
7b4e: 2b00 cmp r3, #0
|
|
7b50: d0ea beq.n 7b28 <lv_draw_map+0x574>
|
|
7b52: e7a8 b.n 7aa6 <lv_draw_map+0x4f2>
|
|
mask_buf[px_i] = LV_OPA_TRANSP;
|
|
7b54: 2300 movs r3, #0
|
|
7b56: 7023 strb r3, [r4, #0]
|
|
continue;
|
|
7b58: e7e6 b.n 7b28 <lv_draw_map+0x574>
|
|
7b5a: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
7b5c: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
7b5e: 4694 mov ip, r2
|
|
7b60: 4463 add r3, ip
|
|
7b62: 001c movs r4, r3
|
|
}
|
|
|
|
/*Apply the masks if any*/
|
|
if(other_mask_cnt) {
|
|
7b64: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
7b66: 2b00 cmp r3, #0
|
|
7b68: d148 bne.n 7bfc <lv_draw_map+0x648>
|
|
else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) {
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
}
|
|
}
|
|
|
|
map_buf_tmp += map_w * px_size_byte;
|
|
7b6a: 9b15 ldr r3, [sp, #84] ; 0x54
|
|
7b6c: 9a1f ldr r2, [sp, #124] ; 0x7c
|
|
7b6e: 4694 mov ip, r2
|
|
7b70: 4463 add r3, ip
|
|
7b72: 9315 str r3, [sp, #84] ; 0x54
|
|
7b74: ab24 add r3, sp, #144 ; 0x90
|
|
7b76: 2264 movs r2, #100 ; 0x64
|
|
7b78: 189b adds r3, r3, r2
|
|
7b7a: 881b ldrh r3, [r3, #0]
|
|
7b7c: 3301 adds r3, #1
|
|
7b7e: aa24 add r2, sp, #144 ; 0x90
|
|
7b80: 2160 movs r1, #96 ; 0x60
|
|
7b82: 1852 adds r2, r2, r1
|
|
7b84: 8812 ldrh r2, [r2, #0]
|
|
7b86: 1a9b subs r3, r3, r2
|
|
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
|
|
7b88: b21b sxth r3, r3
|
|
7b8a: 191b adds r3, r3, r4
|
|
7b8c: 9a1d ldr r2, [sp, #116] ; 0x74
|
|
7b8e: 429a cmp r2, r3
|
|
7b90: d96c bls.n 7c6c <lv_draw_map+0x6b8>
|
|
blend_area.y2 ++;
|
|
7b92: aa28 add r2, sp, #160 ; 0xa0
|
|
7b94: 88d3 ldrh r3, [r2, #6]
|
|
7b96: 3301 adds r3, #1
|
|
7b98: 80d3 strh r3, [r2, #6]
|
|
7b9a: 940f str r4, [sp, #60] ; 0x3c
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
7b9c: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
7b9e: 3301 adds r3, #1
|
|
7ba0: 9310 str r3, [sp, #64] ; 0x40
|
|
7ba2: 9a20 ldr r2, [sp, #128] ; 0x80
|
|
7ba4: 4293 cmp r3, r2
|
|
7ba6: db00 blt.n 7baa <lv_draw_map+0x5f6>
|
|
7ba8: e08f b.n 7cca <lv_draw_map+0x716>
|
|
int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1;
|
|
7baa: 9b19 ldr r3, [sp, #100] ; 0x64
|
|
7bac: 2210 movs r2, #16
|
|
7bae: 5e9b ldrsh r3, [r3, r2]
|
|
7bb0: aa24 add r2, sp, #144 ; 0x90
|
|
7bb2: 2160 movs r1, #96 ; 0x60
|
|
7bb4: 1852 adds r2, r2, r1
|
|
7bb6: 2100 movs r1, #0
|
|
7bb8: 5e52 ldrsh r2, [r2, r1]
|
|
7bba: 189b adds r3, r3, r2
|
|
7bbc: 9a1c ldr r2, [sp, #112] ; 0x70
|
|
7bbe: 2100 movs r1, #0
|
|
7bc0: 5e52 ldrsh r2, [r2, r1]
|
|
7bc2: 1a9b subs r3, r3, r2
|
|
7bc4: 930d str r3, [sp, #52] ; 0x34
|
|
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
|
|
7bc6: 9a17 ldr r2, [sp, #92] ; 0x5c
|
|
7bc8: 4691 mov r9, r2
|
|
7bca: 2a00 cmp r2, #0
|
|
7bcc: dd14 ble.n 7bf8 <lv_draw_map+0x644>
|
|
7bce: 9b18 ldr r3, [sp, #96] ; 0x60
|
|
7bd0: 4698 mov r8, r3
|
|
7bd2: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
7bd4: 4694 mov ip, r2
|
|
7bd6: 44e0 add r8, ip
|
|
7bd8: 0053 lsls r3, r2, #1
|
|
7bda: 9a1b ldr r2, [sp, #108] ; 0x6c
|
|
7bdc: 4692 mov sl, r2
|
|
7bde: 449a add sl, r3
|
|
7be0: 9f15 ldr r7, [sp, #84] ; 0x54
|
|
7be2: 2600 movs r6, #0
|
|
int32_t yt = y - dsc->cfg.pivot_y;
|
|
7be4: 9b21 ldr r3, [sp, #132] ; 0x84
|
|
7be6: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
7be8: 4694 mov ip, r2
|
|
7bea: 4463 add r3, ip
|
|
7bec: b21b sxth r3, r3
|
|
7bee: 930e str r3, [sp, #56] ; 0x38
|
|
7bf0: 4644 mov r4, r8
|
|
7bf2: 4653 mov r3, sl
|
|
7bf4: 9305 str r3, [sp, #20]
|
|
7bf6: e7a1 b.n 7b3c <lv_draw_map+0x588>
|
|
7bf8: 9c0f ldr r4, [sp, #60] ; 0x3c
|
|
7bfa: e7b3 b.n 7b64 <lv_draw_map+0x5b0>
|
|
mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, draw_area.x1 + vdb->area.x1, y + draw_area.y1 + vdb->area.y1,
|
|
7bfc: 9b0f ldr r3, [sp, #60] ; 0x3c
|
|
7bfe: 9a18 ldr r2, [sp, #96] ; 0x60
|
|
7c00: 4694 mov ip, r2
|
|
7c02: 4463 add r3, ip
|
|
7c04: 001d movs r5, r3
|
|
7c06: ab24 add r3, sp, #144 ; 0x90
|
|
7c08: 2260 movs r2, #96 ; 0x60
|
|
7c0a: 189b adds r3, r3, r2
|
|
7c0c: 8819 ldrh r1, [r3, #0]
|
|
7c0e: ab24 add r3, sp, #144 ; 0x90
|
|
7c10: 3204 adds r2, #4
|
|
7c12: 189b adds r3, r3, r2
|
|
7c14: 881b ldrh r3, [r3, #0]
|
|
7c16: 3301 adds r3, #1
|
|
7c18: 1a5b subs r3, r3, r1
|
|
7c1a: b21b sxth r3, r3
|
|
7c1c: aa24 add r2, sp, #144 ; 0x90
|
|
7c1e: 2062 movs r0, #98 ; 0x62
|
|
7c20: 1812 adds r2, r2, r0
|
|
7c22: 8812 ldrh r2, [r2, #0]
|
|
7c24: 9e19 ldr r6, [sp, #100] ; 0x64
|
|
7c26: 8a70 ldrh r0, [r6, #18]
|
|
7c28: 1812 adds r2, r2, r0
|
|
7c2a: 9810 ldr r0, [sp, #64] ; 0x40
|
|
7c2c: 4684 mov ip, r0
|
|
7c2e: 4462 add r2, ip
|
|
7c30: b212 sxth r2, r2
|
|
7c32: 8a30 ldrh r0, [r6, #16]
|
|
7c34: 1809 adds r1, r1, r0
|
|
7c36: b209 sxth r1, r1
|
|
7c38: 0028 movs r0, r5
|
|
7c3a: 4e3a ldr r6, [pc, #232] ; (7d24 <lv_draw_map+0x770>)
|
|
7c3c: 47b0 blx r6
|
|
if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) {
|
|
7c3e: 2800 cmp r0, #0
|
|
7c40: d003 beq.n 7c4a <lv_draw_map+0x696>
|
|
else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) {
|
|
7c42: 2802 cmp r0, #2
|
|
7c44: d191 bne.n 7b6a <lv_draw_map+0x5b6>
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
7c46: 901e str r0, [sp, #120] ; 0x78
|
|
7c48: e78f b.n 7b6a <lv_draw_map+0x5b6>
|
|
7c4a: ab24 add r3, sp, #144 ; 0x90
|
|
7c4c: 2264 movs r2, #100 ; 0x64
|
|
7c4e: 189b adds r3, r3, r2
|
|
7c50: 8819 ldrh r1, [r3, #0]
|
|
7c52: 3101 adds r1, #1
|
|
7c54: ab24 add r3, sp, #144 ; 0x90
|
|
7c56: 3a04 subs r2, #4
|
|
7c58: 189b adds r3, r3, r2
|
|
7c5a: 881b ldrh r3, [r3, #0]
|
|
7c5c: 1ac9 subs r1, r1, r3
|
|
_lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area));
|
|
7c5e: b209 sxth r1, r1
|
|
7c60: 0028 movs r0, r5
|
|
7c62: 4b31 ldr r3, [pc, #196] ; (7d28 <lv_draw_map+0x774>)
|
|
7c64: 4798 blx r3
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
7c66: 2302 movs r3, #2
|
|
7c68: 931e str r3, [sp, #120] ; 0x78
|
|
7c6a: e77e b.n 7b6a <lv_draw_map+0x5b6>
|
|
}
|
|
else {
|
|
|
|
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
|
|
7c6c: ac28 add r4, sp, #160 ; 0xa0
|
|
7c6e: 9e0a ldr r6, [sp, #40] ; 0x28
|
|
7c70: 7bb3 ldrb r3, [r6, #14]
|
|
7c72: 9302 str r3, [sp, #8]
|
|
7c74: 7833 ldrb r3, [r6, #0]
|
|
7c76: 9301 str r3, [sp, #4]
|
|
7c78: 9b1e ldr r3, [sp, #120] ; 0x78
|
|
7c7a: 9300 str r3, [sp, #0]
|
|
7c7c: 9b18 ldr r3, [sp, #96] ; 0x60
|
|
7c7e: 9a1b ldr r2, [sp, #108] ; 0x6c
|
|
7c80: 0021 movs r1, r4
|
|
7c82: 9824 ldr r0, [sp, #144] ; 0x90
|
|
7c84: 4d29 ldr r5, [pc, #164] ; (7d2c <lv_draw_map+0x778>)
|
|
7c86: 47a8 blx r5
|
|
|
|
blend_area.y1 = blend_area.y2 + 1;
|
|
7c88: 88e3 ldrh r3, [r4, #6]
|
|
7c8a: 3301 adds r3, #1
|
|
7c8c: b21b sxth r3, r3
|
|
7c8e: 8063 strh r3, [r4, #2]
|
|
blend_area.y2 = blend_area.y1;
|
|
7c90: 80e3 strh r3, [r4, #6]
|
|
|
|
px_i = 0;
|
|
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
|
|
7c92: 2302 movs r3, #2
|
|
7c94: 931e str r3, [sp, #120] ; 0x78
|
|
7c96: 9b27 ldr r3, [sp, #156] ; 0x9c
|
|
7c98: 2b00 cmp r3, #0
|
|
7c9a: d109 bne.n 7cb0 <lv_draw_map+0x6fc>
|
|
7c9c: 8873 ldrh r3, [r6, #2]
|
|
7c9e: 2b00 cmp r3, #0
|
|
7ca0: d106 bne.n 7cb0 <lv_draw_map+0x6fc>
|
|
7ca2: 8933 ldrh r3, [r6, #8]
|
|
7ca4: 3b01 subs r3, #1
|
|
7ca6: 3bff subs r3, #255 ; 0xff
|
|
7ca8: 1e5a subs r2, r3, #1
|
|
7caa: 4193 sbcs r3, r2
|
|
7cac: 3301 adds r3, #1
|
|
7cae: 931e str r3, [sp, #120] ; 0x78
|
|
px_i = 0;
|
|
7cb0: 2300 movs r3, #0
|
|
7cb2: 930f str r3, [sp, #60] ; 0x3c
|
|
draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
|
|
|
|
/*Prepare the `mask_buf`if there are other masks*/
|
|
if(other_mask_cnt) {
|
|
7cb4: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
7cb6: 2b00 cmp r3, #0
|
|
7cb8: d100 bne.n 7cbc <lv_draw_map+0x708>
|
|
7cba: e76f b.n 7b9c <lv_draw_map+0x5e8>
|
|
_lv_memset_ff(mask_buf, mask_buf_size);
|
|
7cbc: 991d ldr r1, [sp, #116] ; 0x74
|
|
7cbe: 9818 ldr r0, [sp, #96] ; 0x60
|
|
7cc0: 4b1b ldr r3, [pc, #108] ; (7d30 <lv_draw_map+0x77c>)
|
|
7cc2: 4798 blx r3
|
|
px_i = 0;
|
|
7cc4: 2300 movs r3, #0
|
|
7cc6: 930f str r3, [sp, #60] ; 0x3c
|
|
7cc8: e768 b.n 7b9c <lv_draw_map+0x5e8>
|
|
}
|
|
}
|
|
}
|
|
|
|
/*Flush the last part*/
|
|
if(blend_area.y1 != blend_area.y2) {
|
|
7cca: aa28 add r2, sp, #160 ; 0xa0
|
|
7ccc: 2106 movs r1, #6
|
|
7cce: 5e53 ldrsh r3, [r2, r1]
|
|
7cd0: 2102 movs r1, #2
|
|
7cd2: 5e52 ldrsh r2, [r2, r1]
|
|
7cd4: 429a cmp r2, r3
|
|
7cd6: d00e beq.n 7cf6 <lv_draw_map+0x742>
|
|
blend_area.y2--;
|
|
7cd8: a928 add r1, sp, #160 ; 0xa0
|
|
7cda: 3b01 subs r3, #1
|
|
7cdc: 80cb strh r3, [r1, #6]
|
|
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
|
|
7cde: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
7ce0: 7b93 ldrb r3, [r2, #14]
|
|
7ce2: 9302 str r3, [sp, #8]
|
|
7ce4: 7813 ldrb r3, [r2, #0]
|
|
7ce6: 9301 str r3, [sp, #4]
|
|
7ce8: 9b1e ldr r3, [sp, #120] ; 0x78
|
|
7cea: 9300 str r3, [sp, #0]
|
|
7cec: 9b18 ldr r3, [sp, #96] ; 0x60
|
|
7cee: 9a1b ldr r2, [sp, #108] ; 0x6c
|
|
7cf0: 9824 ldr r0, [sp, #144] ; 0x90
|
|
7cf2: 4c0e ldr r4, [pc, #56] ; (7d2c <lv_draw_map+0x778>)
|
|
7cf4: 47a0 blx r4
|
|
}
|
|
|
|
_lv_mem_buf_release(mask_buf);
|
|
7cf6: 9818 ldr r0, [sp, #96] ; 0x60
|
|
7cf8: 4c0e ldr r4, [pc, #56] ; (7d34 <lv_draw_map+0x780>)
|
|
7cfa: 47a0 blx r4
|
|
_lv_mem_buf_release(map2);
|
|
7cfc: 981b ldr r0, [sp, #108] ; 0x6c
|
|
7cfe: 47a0 blx r4
|
|
}
|
|
}
|
|
}
|
|
7d00: b03f add sp, #252 ; 0xfc
|
|
7d02: bc3c pop {r2, r3, r4, r5}
|
|
7d04: 4690 mov r8, r2
|
|
7d06: 4699 mov r9, r3
|
|
7d08: 46a2 mov sl, r4
|
|
7d0a: 46ab mov fp, r5
|
|
7d0c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
7d0e: 46c0 nop ; (mov r8, r8)
|
|
7d10: 0000d0ed .word 0x0000d0ed
|
|
7d14: 0000d20d .word 0x0000d20d
|
|
7d18: 0000d615 .word 0x0000d615
|
|
7d1c: 000187a4 .word 0x000187a4
|
|
7d20: fffff81f .word 0xfffff81f
|
|
7d24: 0000a625 .word 0x0000a625
|
|
7d28: 0001104d .word 0x0001104d
|
|
7d2c: 00006951 .word 0x00006951
|
|
7d30: 000110f1 .word 0x000110f1
|
|
7d34: 00010bd5 .word 0x00010bd5
|
|
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
|
|
7d38: 2301 movs r3, #1
|
|
7d3a: 469b mov fp, r3
|
|
7d3c: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
7d3e: 2b00 cmp r3, #0
|
|
7d40: d000 beq.n 7d44 <lv_draw_map+0x790>
|
|
7d42: e595 b.n 7870 <lv_draw_map+0x2bc>
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
7d44: a83c add r0, sp, #240 ; 0xf0
|
|
7d46: 4b41 ldr r3, [pc, #260] ; (7e4c <lv_draw_map+0x898>)
|
|
7d48: 4798 blx r3
|
|
7d4a: 23f0 movs r3, #240 ; 0xf0
|
|
7d4c: 005b lsls r3, r3, #1
|
|
7d4e: 4298 cmp r0, r3
|
|
7d50: d800 bhi.n 7d54 <lv_draw_map+0x7a0>
|
|
7d52: e598 b.n 7886 <lv_draw_map+0x2d2>
|
|
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
|
|
7d54: 20f0 movs r0, #240 ; 0xf0
|
|
7d56: 0080 lsls r0, r0, #2
|
|
7d58: 4c3d ldr r4, [pc, #244] ; (7e50 <lv_draw_map+0x89c>)
|
|
7d5a: 47a0 blx r4
|
|
7d5c: 901b str r0, [sp, #108] ; 0x6c
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
7d5e: 26f0 movs r6, #240 ; 0xf0
|
|
7d60: 0076 lsls r6, r6, #1
|
|
7d62: 0030 movs r0, r6
|
|
7d64: 47a0 blx r4
|
|
7d66: 9018 str r0, [sp, #96] ; 0x60
|
|
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
|
|
7d68: 2148 movs r1, #72 ; 0x48
|
|
7d6a: a82a add r0, sp, #168 ; 0xa8
|
|
7d6c: 4b39 ldr r3, [pc, #228] ; (7e54 <lv_draw_map+0x8a0>)
|
|
7d6e: 4798 blx r3
|
|
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
|
|
7d70: 961d str r6, [sp, #116] ; 0x74
|
|
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
|
|
7d72: 2205 movs r2, #5
|
|
7d74: 9b07 ldr r3, [sp, #28]
|
|
7d76: 2b00 cmp r3, #0
|
|
7d78: d104 bne.n 7d84 <lv_draw_map+0x7d0>
|
|
lv_img_cf_t cf = LV_IMG_CF_TRUE_COLOR;
|
|
7d7a: 3a01 subs r2, #1
|
|
else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED;
|
|
7d7c: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
7d7e: 2b00 cmp r3, #0
|
|
7d80: d000 beq.n 7d84 <lv_draw_map+0x7d0>
|
|
7d82: 3202 adds r2, #2
|
|
trans_dsc.cfg.angle = draw_dsc->angle;
|
|
7d84: a82a add r0, sp, #168 ; 0xa8
|
|
7d86: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
7d88: 8863 ldrh r3, [r4, #2]
|
|
7d8a: 8183 strh r3, [r0, #12]
|
|
trans_dsc.cfg.zoom = draw_dsc->zoom;
|
|
7d8c: 8923 ldrh r3, [r4, #8]
|
|
7d8e: 81c3 strh r3, [r0, #14]
|
|
trans_dsc.cfg.src = map_p;
|
|
7d90: 4643 mov r3, r8
|
|
7d92: 932a str r3, [sp, #168] ; 0xa8
|
|
trans_dsc.cfg.src_w = map_w;
|
|
7d94: 8087 strh r7, [r0, #4]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
7d96: 991c ldr r1, [sp, #112] ; 0x70
|
|
7d98: 88cb ldrh r3, [r1, #6]
|
|
7d9a: 3301 adds r3, #1
|
|
7d9c: 8849 ldrh r1, [r1, #2]
|
|
7d9e: 1a5b subs r3, r3, r1
|
|
trans_dsc.cfg.src_h = lv_area_get_height(map_area);;
|
|
7da0: 80c3 strh r3, [r0, #6]
|
|
trans_dsc.cfg.cf = cf;
|
|
7da2: 7482 strb r2, [r0, #18]
|
|
trans_dsc.cfg.pivot_x = draw_dsc->pivot.x;
|
|
7da4: 88a3 ldrh r3, [r4, #4]
|
|
7da6: 8103 strh r3, [r0, #8]
|
|
trans_dsc.cfg.pivot_y = draw_dsc->pivot.y;
|
|
7da8: 88e3 ldrh r3, [r4, #6]
|
|
7daa: 8143 strh r3, [r0, #10]
|
|
trans_dsc.cfg.color = draw_dsc->recolor;
|
|
7dac: 89a3 ldrh r3, [r4, #12]
|
|
7dae: 8203 strh r3, [r0, #16]
|
|
trans_dsc.cfg.antialias = draw_dsc->antialias;
|
|
7db0: 7be3 ldrb r3, [r4, #15]
|
|
7db2: 07db lsls r3, r3, #31
|
|
7db4: 0fdb lsrs r3, r3, #31
|
|
7db6: 74c3 strb r3, [r0, #19]
|
|
_lv_img_buf_transform_init(&trans_dsc);
|
|
7db8: 4b27 ldr r3, [pc, #156] ; (7e58 <lv_draw_map+0x8a4>)
|
|
7dba: 4798 blx r3
|
|
lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa;
|
|
7dbc: 990a ldr r1, [sp, #40] ; 0x28
|
|
7dbe: 7a8b ldrb r3, [r1, #10]
|
|
7dc0: 43da mvns r2, r3
|
|
7dc2: b2d2 uxtb r2, r2
|
|
7dc4: 9213 str r2, [sp, #76] ; 0x4c
|
|
if(draw_dsc->recolor_opa != 0) {
|
|
7dc6: 2b00 cmp r3, #0
|
|
7dc8: d100 bne.n 7dcc <lv_draw_map+0x818>
|
|
7dca: e571 b.n 78b0 <lv_draw_map+0x2fc>
|
|
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
|
|
7dcc: b29b uxth r3, r3
|
|
7dce: 7b4a ldrb r2, [r1, #13]
|
|
7dd0: 08d2 lsrs r2, r2, #3
|
|
7dd2: 435a muls r2, r3
|
|
7dd4: 9211 str r2, [sp, #68] ; 0x44
|
|
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
|
|
7dd6: 898a ldrh r2, [r1, #12]
|
|
7dd8: 0552 lsls r2, r2, #21
|
|
7dda: 0e92 lsrs r2, r2, #26
|
|
7ddc: 435a muls r2, r3
|
|
7dde: 9212 str r2, [sp, #72] ; 0x48
|
|
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
|
|
7de0: 7b0a ldrb r2, [r1, #12]
|
|
7de2: 06d2 lsls r2, r2, #27
|
|
7de4: 0ed2 lsrs r2, r2, #27
|
|
7de6: 435a muls r2, r3
|
|
7de8: 9214 str r2, [sp, #80] ; 0x50
|
|
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
|
|
7dea: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
7dec: 9a07 ldr r2, [sp, #28]
|
|
7dee: 4313 orrs r3, r2
|
|
7df0: 9327 str r3, [sp, #156] ; 0x9c
|
|
7df2: 2202 movs r2, #2
|
|
7df4: 921e str r2, [sp, #120] ; 0x78
|
|
7df6: 2b00 cmp r3, #0
|
|
7df8: d10a bne.n 7e10 <lv_draw_map+0x85c>
|
|
7dfa: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
7dfc: 8853 ldrh r3, [r2, #2]
|
|
7dfe: 2b00 cmp r3, #0
|
|
7e00: d106 bne.n 7e10 <lv_draw_map+0x85c>
|
|
7e02: 8913 ldrh r3, [r2, #8]
|
|
7e04: 3b01 subs r3, #1
|
|
7e06: 3bff subs r3, #255 ; 0xff
|
|
7e08: 1e5a subs r2, r3, #1
|
|
7e0a: 4193 sbcs r3, r2
|
|
7e0c: 3301 adds r3, #1
|
|
7e0e: 931e str r3, [sp, #120] ; 0x78
|
|
if(other_mask_cnt) {
|
|
7e10: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
7e12: 2b00 cmp r3, #0
|
|
7e14: d000 beq.n 7e18 <lv_draw_map+0x864>
|
|
7e16: e550 b.n 78ba <lv_draw_map+0x306>
|
|
int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1;
|
|
7e18: 9b19 ldr r3, [sp, #100] ; 0x64
|
|
7e1a: 2212 movs r2, #18
|
|
7e1c: 5e9b ldrsh r3, [r3, r2]
|
|
7e1e: aa3c add r2, sp, #240 ; 0xf0
|
|
7e20: 2102 movs r1, #2
|
|
7e22: 5e52 ldrsh r2, [r2, r1]
|
|
7e24: 189b adds r3, r3, r2
|
|
7e26: 9a1c ldr r2, [sp, #112] ; 0x70
|
|
7e28: 2102 movs r1, #2
|
|
7e2a: 5e52 ldrsh r2, [r2, r1]
|
|
7e2c: 1a9b subs r3, r3, r2
|
|
7e2e: 9321 str r3, [sp, #132] ; 0x84
|
|
for(y = 0; y < draw_area_h; y++) {
|
|
7e30: 9520 str r5, [sp, #128] ; 0x80
|
|
7e32: 2d00 cmp r5, #0
|
|
7e34: dc00 bgt.n 7e38 <lv_draw_map+0x884>
|
|
7e36: e748 b.n 7cca <lv_draw_map+0x716>
|
|
map_buf_tmp += map_w * px_size_byte;
|
|
7e38: 4653 mov r3, sl
|
|
7e3a: 437b muls r3, r7
|
|
7e3c: 931f str r3, [sp, #124] ; 0x7c
|
|
7e3e: 2300 movs r3, #0
|
|
7e40: 9310 str r3, [sp, #64] ; 0x40
|
|
7e42: 930f str r3, [sp, #60] ; 0x3c
|
|
ret = _lv_img_buf_transform_anti_alias(dsc);
|
|
7e44: 464b mov r3, r9
|
|
7e46: 9306 str r3, [sp, #24]
|
|
7e48: e6af b.n 7baa <lv_draw_map+0x5f6>
|
|
7e4a: 46c0 nop ; (mov r8, r8)
|
|
7e4c: 0000fbf3 .word 0x0000fbf3
|
|
7e50: 00010ec1 .word 0x00010ec1
|
|
7e54: 0001104d .word 0x0001104d
|
|
7e58: 0000d311 .word 0x0000d311
|
|
|
|
00007e5c <show_error>:
|
|
|
|
static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg)
|
|
{
|
|
7e5c: b5f0 push {r4, r5, r6, r7, lr}
|
|
7e5e: b09f sub sp, #124 ; 0x7c
|
|
7e60: 0005 movs r5, r0
|
|
7e62: 000e movs r6, r1
|
|
7e64: 0017 movs r7, r2
|
|
lv_draw_rect_dsc_t rect_dsc;
|
|
lv_draw_rect_dsc_init(&rect_dsc);
|
|
7e66: ac09 add r4, sp, #36 ; 0x24
|
|
7e68: 0020 movs r0, r4
|
|
7e6a: 4b0b ldr r3, [pc, #44] ; (7e98 <show_error+0x3c>)
|
|
7e6c: 4798 blx r3
|
|
rect_dsc.bg_color = LV_COLOR_WHITE;
|
|
7e6e: 4b0b ldr r3, [pc, #44] ; (7e9c <show_error+0x40>)
|
|
7e70: 881b ldrh r3, [r3, #0]
|
|
7e72: 8063 strh r3, [r4, #2]
|
|
lv_draw_rect(coords, clip_area, &rect_dsc);
|
|
7e74: 0022 movs r2, r4
|
|
7e76: 0031 movs r1, r6
|
|
7e78: 0028 movs r0, r5
|
|
7e7a: 4b09 ldr r3, [pc, #36] ; (7ea0 <show_error+0x44>)
|
|
7e7c: 4798 blx r3
|
|
|
|
lv_draw_label_dsc_t label_dsc;
|
|
lv_draw_label_dsc_init(&label_dsc);
|
|
7e7e: a802 add r0, sp, #8
|
|
7e80: 4b08 ldr r3, [pc, #32] ; (7ea4 <show_error+0x48>)
|
|
7e82: 4798 blx r3
|
|
lv_draw_label(coords, clip_area, &label_dsc, msg, NULL);
|
|
7e84: 2300 movs r3, #0
|
|
7e86: 9300 str r3, [sp, #0]
|
|
7e88: 003b movs r3, r7
|
|
7e8a: aa02 add r2, sp, #8
|
|
7e8c: 0031 movs r1, r6
|
|
7e8e: 0028 movs r0, r5
|
|
7e90: 4c05 ldr r4, [pc, #20] ; (7ea8 <show_error+0x4c>)
|
|
7e92: 47a0 blx r4
|
|
}
|
|
7e94: b01f add sp, #124 ; 0x7c
|
|
7e96: bdf0 pop {r4, r5, r6, r7, pc}
|
|
7e98: 0000ab21 .word 0x0000ab21
|
|
7e9c: 000187d4 .word 0x000187d4
|
|
7ea0: 0000abc5 .word 0x0000abc5
|
|
7ea4: 000081c5 .word 0x000081c5
|
|
7ea8: 00008215 .word 0x00008215
|
|
|
|
00007eac <lv_draw_img_dsc_init>:
|
|
{
|
|
7eac: b510 push {r4, lr}
|
|
7eae: 0004 movs r4, r0
|
|
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
|
|
7eb0: 2110 movs r1, #16
|
|
7eb2: 4b0a ldr r3, [pc, #40] ; (7edc <lv_draw_img_dsc_init+0x30>)
|
|
7eb4: 4798 blx r3
|
|
dsc->recolor = LV_COLOR_BLACK;
|
|
7eb6: 7b23 ldrb r3, [r4, #12]
|
|
7eb8: 221f movs r2, #31
|
|
7eba: 4393 bics r3, r2
|
|
7ebc: 7323 strb r3, [r4, #12]
|
|
7ebe: 89a3 ldrh r3, [r4, #12]
|
|
7ec0: 4a07 ldr r2, [pc, #28] ; (7ee0 <lv_draw_img_dsc_init+0x34>)
|
|
7ec2: 4013 ands r3, r2
|
|
7ec4: 81a3 strh r3, [r4, #12]
|
|
7ec6: 2300 movs r3, #0
|
|
7ec8: 7363 strb r3, [r4, #13]
|
|
dsc->opa = LV_OPA_COVER;
|
|
7eca: 33ff adds r3, #255 ; 0xff
|
|
7ecc: 7023 strb r3, [r4, #0]
|
|
dsc->zoom = LV_IMG_ZOOM_NONE;
|
|
7ece: 3301 adds r3, #1
|
|
7ed0: 8123 strh r3, [r4, #8]
|
|
dsc->antialias = LV_ANTIALIAS;
|
|
7ed2: 7be3 ldrb r3, [r4, #15]
|
|
7ed4: 2201 movs r2, #1
|
|
7ed6: 4313 orrs r3, r2
|
|
7ed8: 73e3 strb r3, [r4, #15]
|
|
}
|
|
7eda: bd10 pop {r4, pc}
|
|
7edc: 0001104d .word 0x0001104d
|
|
7ee0: fffff81f .word 0xfffff81f
|
|
|
|
00007ee4 <lv_img_cf_get_px_size>:
|
|
switch(cf) {
|
|
7ee4: 3804 subs r0, #4
|
|
7ee6: b2c3 uxtb r3, r0
|
|
7ee8: 2b0a cmp r3, #10
|
|
7eea: d80f bhi.n 7f0c <lv_img_cf_get_px_size+0x28>
|
|
7eec: 0098 lsls r0, r3, #2
|
|
7eee: 4b08 ldr r3, [pc, #32] ; (7f10 <lv_img_cf_get_px_size+0x2c>)
|
|
7ef0: 581b ldr r3, [r3, r0]
|
|
7ef2: 469f mov pc, r3
|
|
px_size = LV_COLOR_SIZE;
|
|
7ef4: 2010 movs r0, #16
|
|
7ef6: e00a b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE << 3;
|
|
7ef8: 2018 movs r0, #24
|
|
break;
|
|
7efa: e008 b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = 1;
|
|
7efc: 2001 movs r0, #1
|
|
break;
|
|
7efe: e006 b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = 2;
|
|
7f00: 2002 movs r0, #2
|
|
break;
|
|
7f02: e004 b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = 4;
|
|
7f04: 2004 movs r0, #4
|
|
break;
|
|
7f06: e002 b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = 8;
|
|
7f08: 2008 movs r0, #8
|
|
break;
|
|
7f0a: e000 b.n 7f0e <lv_img_cf_get_px_size+0x2a>
|
|
px_size = 0;
|
|
7f0c: 2000 movs r0, #0
|
|
}
|
|
7f0e: 4770 bx lr
|
|
7f10: 000187a8 .word 0x000187a8
|
|
|
|
00007f14 <lv_img_cf_is_chroma_keyed>:
|
|
switch(cf) {
|
|
7f14: 2803 cmp r0, #3
|
|
7f16: d005 beq.n 7f24 <lv_img_cf_is_chroma_keyed+0x10>
|
|
7f18: d302 bcc.n 7f20 <lv_img_cf_is_chroma_keyed+0xc>
|
|
7f1a: 3806 subs r0, #6
|
|
7f1c: 2804 cmp r0, #4
|
|
7f1e: d901 bls.n 7f24 <lv_img_cf_is_chroma_keyed+0x10>
|
|
is_chroma_keyed = false;
|
|
7f20: 2000 movs r0, #0
|
|
}
|
|
7f22: 4770 bx lr
|
|
is_chroma_keyed = true;
|
|
7f24: 2001 movs r0, #1
|
|
7f26: e7fc b.n 7f22 <lv_img_cf_is_chroma_keyed+0xe>
|
|
|
|
00007f28 <lv_img_cf_has_alpha>:
|
|
switch(cf) {
|
|
7f28: 2805 cmp r0, #5
|
|
7f2a: d007 beq.n 7f3c <lv_img_cf_has_alpha+0x14>
|
|
7f2c: d803 bhi.n 7f36 <lv_img_cf_has_alpha+0xe>
|
|
7f2e: 2802 cmp r0, #2
|
|
7f30: d004 beq.n 7f3c <lv_img_cf_has_alpha+0x14>
|
|
has_alpha = false;
|
|
7f32: 2000 movs r0, #0
|
|
}
|
|
7f34: 4770 bx lr
|
|
switch(cf) {
|
|
7f36: 3807 subs r0, #7
|
|
7f38: 2807 cmp r0, #7
|
|
7f3a: d8fa bhi.n 7f32 <lv_img_cf_has_alpha+0xa>
|
|
has_alpha = true;
|
|
7f3c: 2001 movs r0, #1
|
|
7f3e: e7f9 b.n 7f34 <lv_img_cf_has_alpha+0xc>
|
|
|
|
00007f40 <lv_draw_img>:
|
|
{
|
|
7f40: b5f0 push {r4, r5, r6, r7, lr}
|
|
7f42: 46de mov lr, fp
|
|
7f44: 4657 mov r7, sl
|
|
7f46: 464e mov r6, r9
|
|
7f48: 4645 mov r5, r8
|
|
7f4a: b5e0 push {r5, r6, r7, lr}
|
|
7f4c: b091 sub sp, #68 ; 0x44
|
|
7f4e: 0004 movs r4, r0
|
|
7f50: 9103 str r1, [sp, #12]
|
|
7f52: 001e movs r6, r3
|
|
if(src == NULL) {
|
|
7f54: 2a00 cmp r2, #0
|
|
7f56: d009 beq.n 7f6c <lv_draw_img+0x2c>
|
|
if(dsc->opa <= LV_OPA_MIN) return;
|
|
7f58: 781b ldrb r3, [r3, #0]
|
|
7f5a: 2b05 cmp r3, #5
|
|
7f5c: d80a bhi.n 7f74 <lv_draw_img+0x34>
|
|
}
|
|
7f5e: b011 add sp, #68 ; 0x44
|
|
7f60: bc3c pop {r2, r3, r4, r5}
|
|
7f62: 4690 mov r8, r2
|
|
7f64: 4699 mov r9, r3
|
|
7f66: 46a2 mov sl, r4
|
|
7f68: 46ab mov fp, r5
|
|
7f6a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
show_error(coords, mask, "No\ndata");
|
|
7f6c: 4a6f ldr r2, [pc, #444] ; (812c <lv_draw_img+0x1ec>)
|
|
7f6e: 4b70 ldr r3, [pc, #448] ; (8130 <lv_draw_img+0x1f0>)
|
|
7f70: 4798 blx r3
|
|
return;
|
|
7f72: e7f4 b.n 7f5e <lv_draw_img+0x1e>
|
|
lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor);
|
|
7f74: 89b1 ldrh r1, [r6, #12]
|
|
7f76: 0010 movs r0, r2
|
|
7f78: 4b6e ldr r3, [pc, #440] ; (8134 <lv_draw_img+0x1f4>)
|
|
7f7a: 4798 blx r3
|
|
7f7c: 1e07 subs r7, r0, #0
|
|
if(cdsc == NULL) return LV_RES_INV;
|
|
7f7e: d100 bne.n 7f82 <lv_draw_img+0x42>
|
|
7f80: e09e b.n 80c0 <lv_draw_img+0x180>
|
|
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
|
|
7f82: 7b05 ldrb r5, [r0, #12]
|
|
7f84: 06ed lsls r5, r5, #27
|
|
7f86: 0eed lsrs r5, r5, #27
|
|
7f88: 0028 movs r0, r5
|
|
7f8a: 4b6b ldr r3, [pc, #428] ; (8138 <lv_draw_img+0x1f8>)
|
|
7f8c: 4798 blx r3
|
|
7f8e: 9004 str r0, [sp, #16]
|
|
7f90: 9006 str r0, [sp, #24]
|
|
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
|
|
7f92: 0028 movs r0, r5
|
|
7f94: 4b69 ldr r3, [pc, #420] ; (813c <lv_draw_img+0x1fc>)
|
|
7f96: 4798 blx r3
|
|
7f98: 9005 str r0, [sp, #20]
|
|
7f9a: 9007 str r0, [sp, #28]
|
|
if(cdsc->dec_dsc.error_msg != NULL) {
|
|
7f9c: 69ba ldr r2, [r7, #24]
|
|
7f9e: 2a00 cmp r2, #0
|
|
7fa0: d004 beq.n 7fac <lv_draw_img+0x6c>
|
|
show_error(coords, clip_area, cdsc->dec_dsc.error_msg);
|
|
7fa2: 9903 ldr r1, [sp, #12]
|
|
7fa4: 0020 movs r0, r4
|
|
7fa6: 4b62 ldr r3, [pc, #392] ; (8130 <lv_draw_img+0x1f0>)
|
|
7fa8: 4798 blx r3
|
|
7faa: e7d8 b.n 7f5e <lv_draw_img+0x1e>
|
|
else if(cdsc->dec_dsc.img_data) {
|
|
7fac: 693b ldr r3, [r7, #16]
|
|
7fae: 2b00 cmp r3, #0
|
|
7fb0: d045 beq.n 803e <lv_draw_img+0xfe>
|
|
7fb2: 2300 movs r3, #0
|
|
7fb4: a90c add r1, sp, #48 ; 0x30
|
|
7fb6: 5ce2 ldrb r2, [r4, r3]
|
|
7fb8: 545a strb r2, [r3, r1]
|
|
7fba: 3301 adds r3, #1
|
|
while(len) {
|
|
7fbc: 2b08 cmp r3, #8
|
|
7fbe: d1fa bne.n 7fb6 <lv_draw_img+0x76>
|
|
if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) {
|
|
7fc0: 8873 ldrh r3, [r6, #2]
|
|
7fc2: 2b00 cmp r3, #0
|
|
7fc4: d104 bne.n 7fd0 <lv_draw_img+0x90>
|
|
7fc6: 2280 movs r2, #128 ; 0x80
|
|
7fc8: 0052 lsls r2, r2, #1
|
|
7fca: 8931 ldrh r1, [r6, #8]
|
|
7fcc: 4291 cmp r1, r2
|
|
7fce: d023 beq.n 8018 <lv_draw_img+0xd8>
|
|
_lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot);
|
|
7fd0: b21b sxth r3, r3
|
|
7fd2: 88e2 ldrh r2, [r4, #6]
|
|
7fd4: 3201 adds r2, #1
|
|
7fd6: 8861 ldrh r1, [r4, #2]
|
|
7fd8: 1a52 subs r2, r2, r1
|
|
7fda: b212 sxth r2, r2
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
7fdc: 88a1 ldrh r1, [r4, #4]
|
|
7fde: 3101 adds r1, #1
|
|
7fe0: 8820 ldrh r0, [r4, #0]
|
|
7fe2: 1a09 subs r1, r1, r0
|
|
7fe4: b209 sxth r1, r1
|
|
7fe6: a80c add r0, sp, #48 ; 0x30
|
|
7fe8: 0005 movs r5, r0
|
|
7fea: 1d30 adds r0, r6, #4
|
|
7fec: 9001 str r0, [sp, #4]
|
|
7fee: 8930 ldrh r0, [r6, #8]
|
|
7ff0: 9000 str r0, [sp, #0]
|
|
7ff2: 9506 str r5, [sp, #24]
|
|
7ff4: 0028 movs r0, r5
|
|
7ff6: 4d52 ldr r5, [pc, #328] ; (8140 <lv_draw_img+0x200>)
|
|
7ff8: 47a8 blx r5
|
|
map_area_rot.x1 += coords->x1;
|
|
7ffa: 8822 ldrh r2, [r4, #0]
|
|
7ffc: 9806 ldr r0, [sp, #24]
|
|
7ffe: 8803 ldrh r3, [r0, #0]
|
|
8000: 18d3 adds r3, r2, r3
|
|
8002: 8003 strh r3, [r0, #0]
|
|
map_area_rot.y1 += coords->y1;
|
|
8004: 8863 ldrh r3, [r4, #2]
|
|
8006: 8841 ldrh r1, [r0, #2]
|
|
8008: 1859 adds r1, r3, r1
|
|
800a: 8041 strh r1, [r0, #2]
|
|
map_area_rot.x2 += coords->x1;
|
|
800c: 8881 ldrh r1, [r0, #4]
|
|
800e: 1852 adds r2, r2, r1
|
|
8010: 8082 strh r2, [r0, #4]
|
|
map_area_rot.y2 += coords->y1;
|
|
8012: 88c2 ldrh r2, [r0, #6]
|
|
8014: 189b adds r3, r3, r2
|
|
8016: 80c3 strh r3, [r0, #6]
|
|
union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot);
|
|
8018: aa0c add r2, sp, #48 ; 0x30
|
|
801a: 9903 ldr r1, [sp, #12]
|
|
801c: a80e add r0, sp, #56 ; 0x38
|
|
801e: 4b49 ldr r3, [pc, #292] ; (8144 <lv_draw_img+0x204>)
|
|
8020: 4798 blx r3
|
|
if(union_ok == false) {
|
|
8022: 2800 cmp r0, #0
|
|
8024: d100 bne.n 8028 <lv_draw_img+0xe8>
|
|
8026: e79a b.n 7f5e <lv_draw_img+0x1e>
|
|
lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte);
|
|
8028: 693a ldr r2, [r7, #16]
|
|
802a: 9b05 ldr r3, [sp, #20]
|
|
802c: 9301 str r3, [sp, #4]
|
|
802e: 9b04 ldr r3, [sp, #16]
|
|
8030: 9300 str r3, [sp, #0]
|
|
8032: 0033 movs r3, r6
|
|
8034: a90e add r1, sp, #56 ; 0x38
|
|
8036: 0020 movs r0, r4
|
|
8038: 4c43 ldr r4, [pc, #268] ; (8148 <lv_draw_img+0x208>)
|
|
803a: 47a0 blx r4
|
|
803c: e78f b.n 7f5e <lv_draw_img+0x1e>
|
|
union_ok = _lv_area_intersect(&mask_com, clip_area, coords);
|
|
803e: 0022 movs r2, r4
|
|
8040: 9903 ldr r1, [sp, #12]
|
|
8042: a80a add r0, sp, #40 ; 0x28
|
|
8044: 4b3f ldr r3, [pc, #252] ; (8144 <lv_draw_img+0x204>)
|
|
8046: 4798 blx r3
|
|
if(union_ok == false) {
|
|
8048: 2800 cmp r0, #0
|
|
804a: d100 bne.n 804e <lv_draw_img+0x10e>
|
|
804c: e787 b.n 7f5e <lv_draw_img+0x1e>
|
|
804e: aa0a add r2, sp, #40 ; 0x28
|
|
8050: 8893 ldrh r3, [r2, #4]
|
|
8052: 3301 adds r3, #1
|
|
8054: 8812 ldrh r2, [r2, #0]
|
|
8056: 1a9b subs r3, r3, r2
|
|
8058: b21b sxth r3, r3
|
|
805a: 9305 str r3, [sp, #20]
|
|
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
|
|
805c: 0058 lsls r0, r3, #1
|
|
805e: 469c mov ip, r3
|
|
8060: 4460 add r0, ip
|
|
8062: 4b3a ldr r3, [pc, #232] ; (814c <lv_draw_img+0x20c>)
|
|
8064: 4798 blx r3
|
|
8066: 9004 str r0, [sp, #16]
|
|
8068: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
806a: a80c add r0, sp, #48 ; 0x30
|
|
806c: a90a add r1, sp, #40 ; 0x28
|
|
806e: 5c5a ldrb r2, [r3, r1]
|
|
8070: 541a strb r2, [r3, r0]
|
|
8072: 3301 adds r3, #1
|
|
while(len) {
|
|
8074: 2b08 cmp r3, #8
|
|
8076: d1fa bne.n 806e <lv_draw_img+0x12e>
|
|
lv_area_set_height(&line, 1);
|
|
8078: 2101 movs r1, #1
|
|
807a: a80c add r0, sp, #48 ; 0x30
|
|
807c: 4b34 ldr r3, [pc, #208] ; (8150 <lv_draw_img+0x210>)
|
|
807e: 4798 blx r3
|
|
int32_t x = mask_com.x1 - coords->x1;
|
|
8080: aa0a add r2, sp, #40 ; 0x28
|
|
8082: 2100 movs r1, #0
|
|
8084: 5e53 ldrsh r3, [r2, r1]
|
|
8086: 469c mov ip, r3
|
|
8088: 2000 movs r0, #0
|
|
808a: 5e21 ldrsh r1, [r4, r0]
|
|
int32_t y = mask_com.y1 - coords->y1;
|
|
808c: 2002 movs r0, #2
|
|
808e: 5e15 ldrsh r5, [r2, r0]
|
|
8090: 2302 movs r3, #2
|
|
8092: 5ee0 ldrsh r0, [r4, r3]
|
|
8094: 1a28 subs r0, r5, r0
|
|
for(row = mask_com.y1; row <= mask_com.y2; row++) {
|
|
8096: 2306 movs r3, #6
|
|
8098: 5ed2 ldrsh r2, [r2, r3]
|
|
809a: 4295 cmp r5, r2
|
|
809c: dc42 bgt.n 8124 <lv_draw_img+0x1e4>
|
|
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
|
|
809e: 4a29 ldr r2, [pc, #164] ; (8144 <lv_draw_img+0x204>)
|
|
80a0: 4693 mov fp, r2
|
|
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
|
|
80a2: 4663 mov r3, ip
|
|
80a4: 1a5b subs r3, r3, r1
|
|
80a6: b21b sxth r3, r3
|
|
80a8: 9308 str r3, [sp, #32]
|
|
80aa: 9409 str r4, [sp, #36] ; 0x24
|
|
80ac: 46b2 mov sl, r6
|
|
80ae: 4680 mov r8, r0
|
|
80b0: e012 b.n 80d8 <lv_draw_img+0x198>
|
|
80b2: 9c09 ldr r4, [sp, #36] ; 0x24
|
|
lv_img_decoder_close(&cdsc->dec_dsc);
|
|
80b4: 0038 movs r0, r7
|
|
80b6: 4b27 ldr r3, [pc, #156] ; (8154 <lv_draw_img+0x214>)
|
|
80b8: 4798 blx r3
|
|
_lv_mem_buf_release(buf);
|
|
80ba: 9804 ldr r0, [sp, #16]
|
|
80bc: 4b26 ldr r3, [pc, #152] ; (8158 <lv_draw_img+0x218>)
|
|
80be: 4798 blx r3
|
|
show_error(coords, mask, "No\ndata");
|
|
80c0: 4a1a ldr r2, [pc, #104] ; (812c <lv_draw_img+0x1ec>)
|
|
80c2: 9903 ldr r1, [sp, #12]
|
|
80c4: 0020 movs r0, r4
|
|
80c6: 4b1a ldr r3, [pc, #104] ; (8130 <lv_draw_img+0x1f0>)
|
|
80c8: 4798 blx r3
|
|
return;
|
|
80ca: e748 b.n 7f5e <lv_draw_img+0x1e>
|
|
for(row = mask_com.y1; row <= mask_com.y2; row++) {
|
|
80cc: 3501 adds r5, #1
|
|
80ce: ab0a add r3, sp, #40 ; 0x28
|
|
80d0: 2206 movs r2, #6
|
|
80d2: 5e9b ldrsh r3, [r3, r2]
|
|
80d4: 429d cmp r5, r3
|
|
80d6: dc25 bgt.n 8124 <lv_draw_img+0x1e4>
|
|
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
|
|
80d8: aa0c add r2, sp, #48 ; 0x30
|
|
80da: 9903 ldr r1, [sp, #12]
|
|
80dc: a80e add r0, sp, #56 ; 0x38
|
|
80de: 47d8 blx fp
|
|
if(union_ok == false) continue;
|
|
80e0: 2800 cmp r0, #0
|
|
80e2: d0f3 beq.n 80cc <lv_draw_img+0x18c>
|
|
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
|
|
80e4: 4643 mov r3, r8
|
|
80e6: b21a sxth r2, r3
|
|
80e8: 9b04 ldr r3, [sp, #16]
|
|
80ea: 9300 str r3, [sp, #0]
|
|
80ec: 9b05 ldr r3, [sp, #20]
|
|
80ee: 9908 ldr r1, [sp, #32]
|
|
80f0: 0038 movs r0, r7
|
|
80f2: 4c1a ldr r4, [pc, #104] ; (815c <lv_draw_img+0x21c>)
|
|
80f4: 47a0 blx r4
|
|
if(read_res != LV_RES_OK) {
|
|
80f6: 2801 cmp r0, #1
|
|
80f8: d1db bne.n 80b2 <lv_draw_img+0x172>
|
|
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
|
|
80fa: ac0c add r4, sp, #48 ; 0x30
|
|
80fc: 9b07 ldr r3, [sp, #28]
|
|
80fe: 9301 str r3, [sp, #4]
|
|
8100: 9b06 ldr r3, [sp, #24]
|
|
8102: 9300 str r3, [sp, #0]
|
|
8104: 4653 mov r3, sl
|
|
8106: 9a04 ldr r2, [sp, #16]
|
|
8108: a90e add r1, sp, #56 ; 0x38
|
|
810a: 0020 movs r0, r4
|
|
810c: 4e0e ldr r6, [pc, #56] ; (8148 <lv_draw_img+0x208>)
|
|
810e: 47b0 blx r6
|
|
line.y1++;
|
|
8110: 8863 ldrh r3, [r4, #2]
|
|
8112: 3301 adds r3, #1
|
|
8114: 8063 strh r3, [r4, #2]
|
|
line.y2++;
|
|
8116: 88e3 ldrh r3, [r4, #6]
|
|
8118: 3301 adds r3, #1
|
|
811a: 80e3 strh r3, [r4, #6]
|
|
y++;
|
|
811c: 2301 movs r3, #1
|
|
811e: 469c mov ip, r3
|
|
8120: 44e0 add r8, ip
|
|
8122: e7d3 b.n 80cc <lv_draw_img+0x18c>
|
|
_lv_mem_buf_release(buf);
|
|
8124: 9804 ldr r0, [sp, #16]
|
|
8126: 4b0c ldr r3, [pc, #48] ; (8158 <lv_draw_img+0x218>)
|
|
8128: 4798 blx r3
|
|
812a: e718 b.n 7f5e <lv_draw_img+0x1e>
|
|
812c: 000187d8 .word 0x000187d8
|
|
8130: 00007e5d .word 0x00007e5d
|
|
8134: 0000da69 .word 0x0000da69
|
|
8138: 00007f15 .word 0x00007f15
|
|
813c: 00007f29 .word 0x00007f29
|
|
8140: 0000d445 .word 0x0000d445
|
|
8144: 0000fc0f .word 0x0000fc0f
|
|
8148: 000075b5 .word 0x000075b5
|
|
814c: 00010ec1 .word 0x00010ec1
|
|
8150: 0000fbe9 .word 0x0000fbe9
|
|
8154: 0000e685 .word 0x0000e685
|
|
8158: 00010bd5 .word 0x00010bd5
|
|
815c: 0000e661 .word 0x0000e661
|
|
|
|
00008160 <lv_img_src_get_type>:
|
|
if(src == NULL) return img_src_type;
|
|
8160: 2800 cmp r0, #0
|
|
8162: d008 beq.n 8176 <lv_img_src_get_type+0x16>
|
|
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
|
|
8164: 7803 ldrb r3, [r0, #0]
|
|
8166: 001a movs r2, r3
|
|
8168: 3a20 subs r2, #32
|
|
img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/
|
|
816a: 2001 movs r0, #1
|
|
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
|
|
816c: 2a5f cmp r2, #95 ; 0x5f
|
|
816e: d901 bls.n 8174 <lv_img_src_get_type+0x14>
|
|
img_src_type = LV_IMG_SRC_VARIABLE; /*`lv_img_dsc_t` is design to the first byte < 0x20*/
|
|
8170: 09d8 lsrs r0, r3, #7
|
|
8172: 0040 lsls r0, r0, #1
|
|
}
|
|
8174: 4770 bx lr
|
|
if(src == NULL) return img_src_type;
|
|
8176: 2003 movs r0, #3
|
|
8178: e7fc b.n 8174 <lv_img_src_get_type+0x14>
|
|
...
|
|
|
|
0000817c <hex_char_to_num>:
|
|
*/
|
|
static uint8_t hex_char_to_num(char hex)
|
|
{
|
|
uint8_t result = 0;
|
|
|
|
if(hex >= '0' && hex <= '9') {
|
|
817c: 0003 movs r3, r0
|
|
817e: 3b30 subs r3, #48 ; 0x30
|
|
8180: b2db uxtb r3, r3
|
|
result = hex - '0';
|
|
8182: 001a movs r2, r3
|
|
if(hex >= '0' && hex <= '9') {
|
|
8184: 2b09 cmp r3, #9
|
|
8186: d918 bls.n 81ba <hex_char_to_num+0x3e>
|
|
}
|
|
else {
|
|
if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/
|
|
8188: 2860 cmp r0, #96 ; 0x60
|
|
818a: d901 bls.n 8190 <hex_char_to_num+0x14>
|
|
818c: 3820 subs r0, #32
|
|
818e: b2c0 uxtb r0, r0
|
|
|
|
switch(hex) {
|
|
8190: 3841 subs r0, #65 ; 0x41
|
|
8192: b2c3 uxtb r3, r0
|
|
8194: 2b05 cmp r3, #5
|
|
8196: d80d bhi.n 81b4 <hex_char_to_num+0x38>
|
|
8198: 0098 lsls r0, r3, #2
|
|
819a: 4b09 ldr r3, [pc, #36] ; (81c0 <hex_char_to_num+0x44>)
|
|
819c: 581b ldr r3, [r3, r0]
|
|
819e: 469f mov pc, r3
|
|
case 'A':
|
|
result = 10;
|
|
break;
|
|
case 'B':
|
|
result = 11;
|
|
81a0: 220b movs r2, #11
|
|
81a2: e00a b.n 81ba <hex_char_to_num+0x3e>
|
|
break;
|
|
case 'C':
|
|
result = 12;
|
|
81a4: 220c movs r2, #12
|
|
break;
|
|
81a6: e008 b.n 81ba <hex_char_to_num+0x3e>
|
|
case 'D':
|
|
result = 13;
|
|
81a8: 220d movs r2, #13
|
|
break;
|
|
81aa: e006 b.n 81ba <hex_char_to_num+0x3e>
|
|
case 'E':
|
|
result = 14;
|
|
81ac: 220e movs r2, #14
|
|
break;
|
|
81ae: e004 b.n 81ba <hex_char_to_num+0x3e>
|
|
case 'F':
|
|
result = 15;
|
|
81b0: 220f movs r2, #15
|
|
break;
|
|
81b2: e002 b.n 81ba <hex_char_to_num+0x3e>
|
|
default:
|
|
result = 0;
|
|
81b4: 2200 movs r2, #0
|
|
break;
|
|
81b6: e000 b.n 81ba <hex_char_to_num+0x3e>
|
|
result = 10;
|
|
81b8: 220a movs r2, #10
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
81ba: 0010 movs r0, r2
|
|
81bc: 4770 bx lr
|
|
81be: 46c0 nop ; (mov r8, r8)
|
|
81c0: 000187e0 .word 0x000187e0
|
|
|
|
000081c4 <lv_draw_label_dsc_init>:
|
|
{
|
|
81c4: b510 push {r4, lr}
|
|
81c6: 0004 movs r4, r0
|
|
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
|
|
81c8: 211c movs r1, #28
|
|
81ca: 4b0f ldr r3, [pc, #60] ; (8208 <lv_draw_label_dsc_init+0x44>)
|
|
81cc: 4798 blx r3
|
|
dsc->opa = LV_OPA_COVER;
|
|
81ce: 23ff movs r3, #255 ; 0xff
|
|
81d0: 7223 strb r3, [r4, #8]
|
|
dsc->color = LV_COLOR_BLACK;
|
|
81d2: 7823 ldrb r3, [r4, #0]
|
|
81d4: 221f movs r2, #31
|
|
81d6: 4393 bics r3, r2
|
|
81d8: 7023 strb r3, [r4, #0]
|
|
81da: 8822 ldrh r2, [r4, #0]
|
|
81dc: 490b ldr r1, [pc, #44] ; (820c <lv_draw_label_dsc_init+0x48>)
|
|
81de: 400a ands r2, r1
|
|
81e0: 8022 strh r2, [r4, #0]
|
|
81e2: 2300 movs r3, #0
|
|
81e4: 7063 strb r3, [r4, #1]
|
|
dsc->font = LV_THEME_DEFAULT_FONT_NORMAL;
|
|
81e6: 4b0a ldr r3, [pc, #40] ; (8210 <lv_draw_label_dsc_init+0x4c>)
|
|
81e8: 6063 str r3, [r4, #4]
|
|
dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL;
|
|
81ea: 2301 movs r3, #1
|
|
81ec: 425b negs r3, r3
|
|
81ee: 81e3 strh r3, [r4, #14]
|
|
dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL;
|
|
81f0: 8223 strh r3, [r4, #16]
|
|
dsc->sel_color = LV_COLOR_BLUE;
|
|
81f2: 78a2 ldrb r2, [r4, #2]
|
|
81f4: 231f movs r3, #31
|
|
81f6: 431a orrs r2, r3
|
|
81f8: 70a2 strb r2, [r4, #2]
|
|
81fa: 8863 ldrh r3, [r4, #2]
|
|
81fc: 400b ands r3, r1
|
|
81fe: 8063 strh r3, [r4, #2]
|
|
8200: 2300 movs r3, #0
|
|
8202: 70e3 strb r3, [r4, #3]
|
|
dsc->bidi_dir = LV_BIDI_DIR_LTR;
|
|
8204: 75a3 strb r3, [r4, #22]
|
|
}
|
|
8206: bd10 pop {r4, pc}
|
|
8208: 0001104d .word 0x0001104d
|
|
820c: fffff81f .word 0xfffff81f
|
|
8210: 20000030 .word 0x20000030
|
|
|
|
00008214 <lv_draw_label>:
|
|
{
|
|
8214: b5f0 push {r4, r5, r6, r7, lr}
|
|
8216: 46de mov lr, fp
|
|
8218: 4657 mov r7, sl
|
|
821a: 464e mov r6, r9
|
|
821c: 4645 mov r5, r8
|
|
821e: b5e0 push {r5, r6, r7, lr}
|
|
8220: b0db sub sp, #364 ; 0x16c
|
|
8222: 9010 str r0, [sp, #64] ; 0x40
|
|
8224: 910e str r1, [sp, #56] ; 0x38
|
|
8226: 0017 movs r7, r2
|
|
8228: 001a movs r2, r3
|
|
822a: 930d str r3, [sp, #52] ; 0x34
|
|
822c: 9b64 ldr r3, [sp, #400] ; 0x190
|
|
822e: 9305 str r3, [sp, #20]
|
|
if(dsc->opa <= LV_OPA_MIN) return;
|
|
8230: 7a3b ldrb r3, [r7, #8]
|
|
8232: 2b05 cmp r3, #5
|
|
8234: d902 bls.n 823c <lv_draw_label+0x28>
|
|
if(txt[0] == '\0') return;
|
|
8236: 7813 ldrb r3, [r2, #0]
|
|
8238: 2b00 cmp r3, #0
|
|
823a: d106 bne.n 824a <lv_draw_label+0x36>
|
|
}
|
|
823c: b05b add sp, #364 ; 0x16c
|
|
823e: bc3c pop {r2, r3, r4, r5}
|
|
8240: 4690 mov r8, r2
|
|
8242: 4699 mov r9, r3
|
|
8244: 46a2 mov sl, r4
|
|
8246: 46ab mov fp, r5
|
|
8248: bdf0 pop {r4, r5, r6, r7, pc}
|
|
const lv_font_t * font = dsc->font;
|
|
824a: 687b ldr r3, [r7, #4]
|
|
824c: 9307 str r3, [sp, #28]
|
|
bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask);
|
|
824e: 000a movs r2, r1
|
|
8250: 0004 movs r4, r0
|
|
8252: 0001 movs r1, r0
|
|
8254: a858 add r0, sp, #352 ; 0x160
|
|
8256: 4bd2 ldr r3, [pc, #840] ; (85a0 <lv_draw_label+0x38c>)
|
|
8258: 4798 blx r3
|
|
if(!clip_ok) return;
|
|
825a: 2800 cmp r0, #0
|
|
825c: d0ee beq.n 823c <lv_draw_label+0x28>
|
|
if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) {
|
|
825e: 7dfa ldrb r2, [r7, #23]
|
|
8260: 0791 lsls r1, r2, #30
|
|
8262: d424 bmi.n 82ae <lv_draw_label+0x9a>
|
|
8264: 88a3 ldrh r3, [r4, #4]
|
|
8266: 3301 adds r3, #1
|
|
8268: 8822 ldrh r2, [r4, #0]
|
|
826a: 1a9b subs r3, r3, r2
|
|
w = lv_area_get_width(coords);
|
|
826c: b21b sxth r3, r3
|
|
int32_t line_height_font = lv_font_get_line_height(font);
|
|
826e: 9a07 ldr r2, [sp, #28]
|
|
8270: 2608 movs r6, #8
|
|
8272: 5f96 ldrsh r6, [r2, r6]
|
|
int32_t line_height = line_height_font + dsc->line_space;
|
|
8274: 210a movs r1, #10
|
|
8276: 5e7a ldrsh r2, [r7, r1]
|
|
8278: 4691 mov r9, r2
|
|
827a: 44b1 add r9, r6
|
|
pos.x = coords->x1;
|
|
827c: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
827e: 2000 movs r0, #0
|
|
8280: 5e11 ldrsh r1, [r2, r0]
|
|
8282: 911f str r1, [sp, #124] ; 0x7c
|
|
pos.y = coords->y1;
|
|
8284: 2002 movs r0, #2
|
|
8286: 5e10 ldrsh r0, [r2, r0]
|
|
x_ofs = dsc->ofs_x;
|
|
8288: 2112 movs r1, #18
|
|
828a: 5e7a ldrsh r2, [r7, r1]
|
|
828c: 921e str r2, [sp, #120] ; 0x78
|
|
y_ofs = dsc->ofs_y;
|
|
828e: 2214 movs r2, #20
|
|
8290: 5eb9 ldrsh r1, [r7, r2]
|
|
pos.y += y_ofs;
|
|
8292: 1842 adds r2, r0, r1
|
|
8294: b292 uxth r2, r2
|
|
8296: b215 sxth r5, r2
|
|
if(hint && y_ofs == 0 && coords->y1 < 0) {
|
|
8298: 9c05 ldr r4, [sp, #20]
|
|
829a: 2c00 cmp r4, #0
|
|
829c: d052 beq.n 8344 <lv_draw_label+0x130>
|
|
829e: 2900 cmp r1, #0
|
|
82a0: d154 bne.n 834c <lv_draw_label+0x138>
|
|
82a2: 2800 cmp r0, #0
|
|
82a4: db14 blt.n 82d0 <lv_draw_label+0xbc>
|
|
pos.y += y_ofs;
|
|
82a6: 9511 str r5, [sp, #68] ; 0x44
|
|
uint32_t line_start = 0;
|
|
82a8: 2200 movs r2, #0
|
|
82aa: 9208 str r2, [sp, #32]
|
|
82ac: e02e b.n 830c <lv_draw_label+0xf8>
|
|
_lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
|
|
82ae: 210c movs r1, #12
|
|
82b0: 5e7b ldrsh r3, [r7, r1]
|
|
82b2: ad3c add r5, sp, #240 ; 0xf0
|
|
82b4: 9202 str r2, [sp, #8]
|
|
82b6: 4abb ldr r2, [pc, #748] ; (85a4 <lv_draw_label+0x390>)
|
|
82b8: 9201 str r2, [sp, #4]
|
|
82ba: 210a movs r1, #10
|
|
82bc: 5e7a ldrsh r2, [r7, r1]
|
|
82be: 9200 str r2, [sp, #0]
|
|
82c0: 687a ldr r2, [r7, #4]
|
|
82c2: 990d ldr r1, [sp, #52] ; 0x34
|
|
82c4: 0028 movs r0, r5
|
|
82c6: 4eb8 ldr r6, [pc, #736] ; (85a8 <lv_draw_label+0x394>)
|
|
82c8: 47b0 blx r6
|
|
w = p.x;
|
|
82ca: 2200 movs r2, #0
|
|
82cc: 5eab ldrsh r3, [r5, r2]
|
|
82ce: e7ce b.n 826e <lv_draw_label+0x5a>
|
|
if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) {
|
|
82d0: 68a1 ldr r1, [r4, #8]
|
|
82d2: 1a08 subs r0, r1, r0
|
|
82d4: 17c1 asrs r1, r0, #31
|
|
82d6: 1840 adds r0, r0, r1
|
|
82d8: 4048 eors r0, r1
|
|
82da: 2180 movs r1, #128 ; 0x80
|
|
82dc: 0089 lsls r1, r1, #2
|
|
82de: 464c mov r4, r9
|
|
82e0: 1b09 subs r1, r1, r4
|
|
82e2: 0049 lsls r1, r1, #1
|
|
82e4: 4288 cmp r0, r1
|
|
82e6: dd07 ble.n 82f8 <lv_draw_label+0xe4>
|
|
hint->line_start = -1;
|
|
82e8: 2201 movs r2, #1
|
|
82ea: 4252 negs r2, r2
|
|
82ec: 9905 ldr r1, [sp, #20]
|
|
82ee: 600a str r2, [r1, #0]
|
|
pos.y += y_ofs;
|
|
82f0: 9511 str r5, [sp, #68] ; 0x44
|
|
uint32_t line_start = 0;
|
|
82f2: 2200 movs r2, #0
|
|
82f4: 9208 str r2, [sp, #32]
|
|
82f6: e009 b.n 830c <lv_draw_label+0xf8>
|
|
last_line_start = hint->line_start;
|
|
82f8: 9805 ldr r0, [sp, #20]
|
|
82fa: 6801 ldr r1, [r0, #0]
|
|
if(hint && last_line_start >= 0) {
|
|
82fc: 2900 cmp r1, #0
|
|
82fe: db29 blt.n 8354 <lv_draw_label+0x140>
|
|
line_start = last_line_start;
|
|
8300: 9108 str r1, [sp, #32]
|
|
pos.y += hint->y;
|
|
8302: 6841 ldr r1, [r0, #4]
|
|
8304: 468c mov ip, r1
|
|
8306: 4462 add r2, ip
|
|
8308: b212 sxth r2, r2
|
|
830a: 9211 str r2, [sp, #68] ; 0x44
|
|
uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
830c: b21b sxth r3, r3
|
|
830e: 0019 movs r1, r3
|
|
8310: 9312 str r3, [sp, #72] ; 0x48
|
|
8312: 230c movs r3, #12
|
|
8314: 5efa ldrsh r2, [r7, r3]
|
|
8316: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
8318: 0018 movs r0, r3
|
|
831a: 9c08 ldr r4, [sp, #32]
|
|
831c: 46a4 mov ip, r4
|
|
831e: 4460 add r0, ip
|
|
8320: 7dfb ldrb r3, [r7, #23]
|
|
8322: 9300 str r3, [sp, #0]
|
|
8324: 000b movs r3, r1
|
|
8326: 9907 ldr r1, [sp, #28]
|
|
8328: 4da0 ldr r5, [pc, #640] ; (85ac <lv_draw_label+0x398>)
|
|
832a: 47a8 blx r5
|
|
832c: 46a4 mov ip, r4
|
|
832e: 4460 add r0, ip
|
|
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
8330: 4a9e ldr r2, [pc, #632] ; (85ac <lv_draw_label+0x398>)
|
|
8332: 4692 mov sl, r2
|
|
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
|
|
8334: 4a9e ldr r2, [pc, #632] ; (85b0 <lv_draw_label+0x39c>)
|
|
8336: 4690 mov r8, r2
|
|
8338: 9606 str r6, [sp, #24]
|
|
833a: 0006 movs r6, r0
|
|
833c: 9d11 ldr r5, [sp, #68] ; 0x44
|
|
833e: 46bb mov fp, r7
|
|
8340: 9f05 ldr r7, [sp, #20]
|
|
while(pos.y + line_height_font < mask->y1) {
|
|
8342: e011 b.n 8368 <lv_draw_label+0x154>
|
|
pos.y += y_ofs;
|
|
8344: 9511 str r5, [sp, #68] ; 0x44
|
|
uint32_t line_start = 0;
|
|
8346: 2200 movs r2, #0
|
|
8348: 9208 str r2, [sp, #32]
|
|
834a: e7df b.n 830c <lv_draw_label+0xf8>
|
|
pos.y += y_ofs;
|
|
834c: 9511 str r5, [sp, #68] ; 0x44
|
|
uint32_t line_start = 0;
|
|
834e: 2200 movs r2, #0
|
|
8350: 9208 str r2, [sp, #32]
|
|
8352: e7db b.n 830c <lv_draw_label+0xf8>
|
|
pos.y += y_ofs;
|
|
8354: 9511 str r5, [sp, #68] ; 0x44
|
|
uint32_t line_start = 0;
|
|
8356: 2200 movs r2, #0
|
|
8358: 9208 str r2, [sp, #32]
|
|
835a: e7d7 b.n 830c <lv_draw_label+0xf8>
|
|
835c: 9608 str r6, [sp, #32]
|
|
if(txt[line_start] == '\0') return;
|
|
835e: 7823 ldrb r3, [r4, #0]
|
|
8360: 2b00 cmp r3, #0
|
|
8362: d100 bne.n 8366 <lv_draw_label+0x152>
|
|
8364: e76a b.n 823c <lv_draw_label+0x28>
|
|
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
8366: 0006 movs r6, r0
|
|
while(pos.y + line_height_font < mask->y1) {
|
|
8368: 9b06 ldr r3, [sp, #24]
|
|
836a: 18eb adds r3, r5, r3
|
|
836c: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
836e: 2102 movs r1, #2
|
|
8370: 5e52 ldrsh r2, [r2, r1]
|
|
8372: 4293 cmp r3, r2
|
|
8374: da20 bge.n 83b8 <lv_draw_label+0x1a4>
|
|
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
8376: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
8378: 199c adds r4, r3, r6
|
|
837a: 465b mov r3, fp
|
|
837c: 220c movs r2, #12
|
|
837e: 5e9a ldrsh r2, [r3, r2]
|
|
8380: 465b mov r3, fp
|
|
8382: 7ddb ldrb r3, [r3, #23]
|
|
8384: 9300 str r3, [sp, #0]
|
|
8386: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
8388: 9907 ldr r1, [sp, #28]
|
|
838a: 0020 movs r0, r4
|
|
838c: 47d0 blx sl
|
|
838e: 1980 adds r0, r0, r6
|
|
8390: 444d add r5, r9
|
|
8392: b22d sxth r5, r5
|
|
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
|
|
8394: 2f00 cmp r7, #0
|
|
8396: d0e1 beq.n 835c <lv_draw_label+0x148>
|
|
8398: 4545 cmp r5, r8
|
|
839a: dbdf blt.n 835c <lv_draw_label+0x148>
|
|
839c: 683b ldr r3, [r7, #0]
|
|
839e: 2b00 cmp r3, #0
|
|
83a0: dadc bge.n 835c <lv_draw_label+0x148>
|
|
hint->line_start = line_start;
|
|
83a2: 603e str r6, [r7, #0]
|
|
hint->y = pos.y - coords->y1;
|
|
83a4: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
83a6: 2102 movs r1, #2
|
|
83a8: 5e53 ldrsh r3, [r2, r1]
|
|
83aa: 1aeb subs r3, r5, r3
|
|
83ac: 607b str r3, [r7, #4]
|
|
hint->coord_y = coords->y1;
|
|
83ae: 0013 movs r3, r2
|
|
83b0: 2202 movs r2, #2
|
|
83b2: 5e9b ldrsh r3, [r3, r2]
|
|
83b4: 60bb str r3, [r7, #8]
|
|
83b6: e7d1 b.n 835c <lv_draw_label+0x148>
|
|
83b8: 960b str r6, [sp, #44] ; 0x2c
|
|
83ba: 9511 str r5, [sp, #68] ; 0x44
|
|
83bc: 465f mov r7, fp
|
|
if(dsc->flag & LV_TXT_FLAG_CENTER) {
|
|
83be: 7dfa ldrb r2, [r7, #23]
|
|
83c0: 0753 lsls r3, r2, #29
|
|
83c2: d42f bmi.n 8424 <lv_draw_label+0x210>
|
|
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
|
|
83c4: 0713 lsls r3, r2, #28
|
|
83c6: d449 bmi.n 845c <lv_draw_label+0x248>
|
|
lv_opa_t opa = dsc->opa;
|
|
83c8: 7a3b ldrb r3, [r7, #8]
|
|
83ca: 930f str r3, [sp, #60] ; 0x3c
|
|
uint16_t sel_start = dsc->sel_start;
|
|
83cc: 89fb ldrh r3, [r7, #14]
|
|
83ce: 9306 str r3, [sp, #24]
|
|
uint16_t sel_end = dsc->sel_end;
|
|
83d0: 8a3a ldrh r2, [r7, #16]
|
|
83d2: 4692 mov sl, r2
|
|
if(sel_start > sel_end) {
|
|
83d4: 4553 cmp r3, sl
|
|
83d6: d902 bls.n 83de <lv_draw_label+0x1ca>
|
|
sel_start = sel_end;
|
|
83d8: 4652 mov r2, sl
|
|
83da: 9206 str r2, [sp, #24]
|
|
sel_end = tmp;
|
|
83dc: 469a mov sl, r3
|
|
if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) {
|
|
83de: 7e3b ldrb r3, [r7, #24]
|
|
83e0: 079b lsls r3, r3, #30
|
|
83e2: d155 bne.n 8490 <lv_draw_label+0x27c>
|
|
lv_draw_rect_dsc_init(&draw_dsc_sel);
|
|
83e4: ac3f add r4, sp, #252 ; 0xfc
|
|
83e6: 0020 movs r0, r4
|
|
83e8: 4b72 ldr r3, [pc, #456] ; (85b4 <lv_draw_label+0x3a0>)
|
|
83ea: 4798 blx r3
|
|
draw_dsc_sel.bg_color = dsc->sel_color;
|
|
83ec: 887b ldrh r3, [r7, #2]
|
|
83ee: 8063 strh r3, [r4, #2]
|
|
83f0: 9b0f ldr r3, [sp, #60] ; 0x3c
|
|
83f2: 2bfa cmp r3, #250 ; 0xfa
|
|
83f4: d901 bls.n 83fa <lv_draw_label+0x1e6>
|
|
83f6: 4b70 ldr r3, [pc, #448] ; (85b8 <lv_draw_label+0x3a4>)
|
|
83f8: 781b ldrb r3, [r3, #0]
|
|
83fa: b2db uxtb r3, r3
|
|
83fc: 931c str r3, [sp, #112] ; 0x70
|
|
83fe: 464b mov r3, r9
|
|
8400: 466a mov r2, sp
|
|
8402: 8293 strh r3, [r2, #20]
|
|
8404: 8a93 ldrh r3, [r2, #20]
|
|
8406: 9318 str r3, [sp, #96] ; 0x60
|
|
8408: 466b mov r3, sp
|
|
840a: 2244 movs r2, #68 ; 0x44
|
|
840c: 189b adds r3, r3, r2
|
|
840e: 881b ldrh r3, [r3, #0]
|
|
8410: 9314 str r3, [sp, #80] ; 0x50
|
|
while(txt[line_start] != '\0') {
|
|
8412: 9d1f ldr r5, [sp, #124] ; 0x7c
|
|
uint16_t par_start = 0;
|
|
8414: 2300 movs r3, #0
|
|
8416: 931d str r3, [sp, #116] ; 0x74
|
|
8418: 9b08 ldr r3, [sp, #32]
|
|
841a: 469b mov fp, r3
|
|
841c: 46d0 mov r8, sl
|
|
841e: 003e movs r6, r7
|
|
while(txt[line_start] != '\0') {
|
|
8420: f000 fdd2 bl 8fc8 <lv_draw_label+0xdb4>
|
|
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
|
|
8424: 210c movs r1, #12
|
|
8426: 5e7b ldrsh r3, [r7, r1]
|
|
8428: 9c08 ldr r4, [sp, #32]
|
|
842a: 1b31 subs r1, r6, r4
|
|
842c: b289 uxth r1, r1
|
|
842e: 980d ldr r0, [sp, #52] ; 0x34
|
|
8430: 46a4 mov ip, r4
|
|
8432: 4460 add r0, ip
|
|
8434: 9200 str r2, [sp, #0]
|
|
8436: 9a07 ldr r2, [sp, #28]
|
|
8438: 4c60 ldr r4, [pc, #384] ; (85bc <lv_draw_label+0x3a8>)
|
|
843a: 47a0 blx r4
|
|
843c: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
843e: 8893 ldrh r3, [r2, #4]
|
|
8440: 3301 adds r3, #1
|
|
8442: 8812 ldrh r2, [r2, #0]
|
|
8444: 1a9b subs r3, r3, r2
|
|
pos.x += (lv_area_get_width(coords) - line_width) / 2;
|
|
8446: b21b sxth r3, r3
|
|
8448: 1a18 subs r0, r3, r0
|
|
844a: 0fc3 lsrs r3, r0, #31
|
|
844c: 181b adds r3, r3, r0
|
|
844e: 105b asrs r3, r3, #1
|
|
8450: 9a1f ldr r2, [sp, #124] ; 0x7c
|
|
8452: 4694 mov ip, r2
|
|
8454: 4463 add r3, ip
|
|
8456: b21b sxth r3, r3
|
|
8458: 931f str r3, [sp, #124] ; 0x7c
|
|
845a: e7b5 b.n 83c8 <lv_draw_label+0x1b4>
|
|
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
|
|
845c: 210c movs r1, #12
|
|
845e: 5e7b ldrsh r3, [r7, r1]
|
|
8460: 980b ldr r0, [sp, #44] ; 0x2c
|
|
8462: 9c08 ldr r4, [sp, #32]
|
|
8464: 1b01 subs r1, r0, r4
|
|
8466: b289 uxth r1, r1
|
|
8468: 980d ldr r0, [sp, #52] ; 0x34
|
|
846a: 46a4 mov ip, r4
|
|
846c: 4460 add r0, ip
|
|
846e: 9200 str r2, [sp, #0]
|
|
8470: 9a07 ldr r2, [sp, #28]
|
|
8472: 4c52 ldr r4, [pc, #328] ; (85bc <lv_draw_label+0x3a8>)
|
|
8474: 47a0 blx r4
|
|
8476: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
8478: 8893 ldrh r3, [r2, #4]
|
|
847a: 3301 adds r3, #1
|
|
847c: 8812 ldrh r2, [r2, #0]
|
|
847e: 1a9b subs r3, r3, r2
|
|
pos.x += lv_area_get_width(coords) - line_width;
|
|
8480: b21b sxth r3, r3
|
|
8482: 1a1b subs r3, r3, r0
|
|
8484: 9a1f ldr r2, [sp, #124] ; 0x7c
|
|
8486: 4694 mov ip, r2
|
|
8488: 4463 add r3, ip
|
|
848a: b21b sxth r3, r3
|
|
848c: 931f str r3, [sp, #124] ; 0x7c
|
|
848e: e79b b.n 83c8 <lv_draw_label+0x1b4>
|
|
lv_draw_line_dsc_init(&line_dsc);
|
|
8490: ac55 add r4, sp, #340 ; 0x154
|
|
8492: 0020 movs r0, r4
|
|
8494: 4b4a ldr r3, [pc, #296] ; (85c0 <lv_draw_label+0x3ac>)
|
|
8496: 4798 blx r3
|
|
line_dsc.color = dsc->color;
|
|
8498: 883b ldrh r3, [r7, #0]
|
|
849a: 8023 strh r3, [r4, #0]
|
|
line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/
|
|
849c: 687b ldr r3, [r7, #4]
|
|
849e: 2008 movs r0, #8
|
|
84a0: 5e18 ldrsh r0, [r3, r0]
|
|
84a2: 3005 adds r0, #5
|
|
84a4: 210a movs r1, #10
|
|
84a6: 4b47 ldr r3, [pc, #284] ; (85c4 <lv_draw_label+0x3b0>)
|
|
84a8: 4798 blx r3
|
|
84aa: 8060 strh r0, [r4, #2]
|
|
line_dsc.opa = dsc->opa;
|
|
84ac: 7a3b ldrb r3, [r7, #8]
|
|
84ae: 7223 strb r3, [r4, #8]
|
|
line_dsc.blend_mode = dsc->blend_mode;
|
|
84b0: 7e7a ldrb r2, [r7, #25]
|
|
84b2: 2303 movs r3, #3
|
|
84b4: 401a ands r2, r3
|
|
84b6: 7a63 ldrb r3, [r4, #9]
|
|
84b8: 2103 movs r1, #3
|
|
84ba: 438b bics r3, r1
|
|
84bc: 4313 orrs r3, r2
|
|
84be: 7263 strb r3, [r4, #9]
|
|
84c0: e790 b.n 83e4 <lv_draw_label+0x1d0>
|
|
uint16_t logical_char_pos = 0;
|
|
84c2: 2500 movs r5, #0
|
|
84c4: e2e2 b.n 8a8c <lv_draw_label+0x878>
|
|
if(cmd_state == CMD_STATE_WAIT) { /*Start char*/
|
|
84c6: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
84c8: 2b00 cmp r3, #0
|
|
84ca: d107 bne.n 84dc <lv_draw_label+0x2c8>
|
|
par_start = i;
|
|
84cc: ab34 add r3, sp, #208 ; 0xd0
|
|
84ce: 2280 movs r2, #128 ; 0x80
|
|
84d0: 189b adds r3, r3, r2
|
|
84d2: 881b ldrh r3, [r3, #0]
|
|
84d4: 931d str r3, [sp, #116] ; 0x74
|
|
cmd_state = CMD_STATE_PAR;
|
|
84d6: 2301 movs r3, #1
|
|
84d8: 9309 str r3, [sp, #36] ; 0x24
|
|
continue;
|
|
84da: e2c2 b.n 8a62 <lv_draw_label+0x84e>
|
|
else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */
|
|
84dc: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
84de: 2b01 cmp r3, #1
|
|
84e0: d101 bne.n 84e6 <lv_draw_label+0x2d2>
|
|
84e2: f000 fe05 bl 90f0 <lv_draw_label+0xedc>
|
|
else if(cmd_state == CMD_STATE_IN) { /*Command end */
|
|
84e6: 2b02 cmp r3, #2
|
|
84e8: d101 bne.n 84ee <lv_draw_label+0x2da>
|
|
84ea: f000 fd32 bl 8f52 <lv_draw_label+0xd3e>
|
|
lv_color_t color = dsc->color;
|
|
84ee: 883e ldrh r6, [r7, #0]
|
|
84f0: e2ec b.n 8acc <lv_draw_label+0x8b8>
|
|
if(letter == ' ') {
|
|
84f2: 9b05 ldr r3, [sp, #20]
|
|
84f4: 2b20 cmp r3, #32
|
|
84f6: d000 beq.n 84fa <lv_draw_label+0x2e6>
|
|
84f8: e2b3 b.n 8a62 <lv_draw_label+0x84e>
|
|
if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) {
|
|
84fa: 9b54 ldr r3, [sp, #336] ; 0x150
|
|
84fc: 9a1d ldr r2, [sp, #116] ; 0x74
|
|
84fe: 1a9b subs r3, r3, r2
|
|
8500: 2b07 cmp r3, #7
|
|
8502: d004 beq.n 850e <lv_draw_label+0x2fa>
|
|
recolor.full = dsc->color.full;
|
|
8504: 883b ldrh r3, [r7, #0]
|
|
8506: 9316 str r3, [sp, #88] ; 0x58
|
|
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
|
|
8508: 2302 movs r3, #2
|
|
850a: 9309 str r3, [sp, #36] ; 0x24
|
|
850c: e2a9 b.n 8a62 <lv_draw_label+0x84e>
|
|
_lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH);
|
|
850e: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
8510: 4694 mov ip, r2
|
|
8512: 4463 add r3, ip
|
|
8514: 0018 movs r0, r3
|
|
8516: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
8518: a93c add r1, sp, #240 ; 0xf0
|
|
851a: 5cc2 ldrb r2, [r0, r3]
|
|
851c: 545a strb r2, [r3, r1]
|
|
851e: 3301 adds r3, #1
|
|
while(len) {
|
|
8520: 2b06 cmp r3, #6
|
|
8522: d1fa bne.n 851a <lv_draw_label+0x306>
|
|
r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]);
|
|
8524: ad3c add r5, sp, #240 ; 0xf0
|
|
8526: 7828 ldrb r0, [r5, #0]
|
|
8528: 4e27 ldr r6, [pc, #156] ; (85c8 <lv_draw_label+0x3b4>)
|
|
852a: 47b0 blx r6
|
|
852c: 4680 mov r8, r0
|
|
852e: 7868 ldrb r0, [r5, #1]
|
|
8530: 47b0 blx r6
|
|
8532: 4643 mov r3, r8
|
|
8534: 011b lsls r3, r3, #4
|
|
8536: 4698 mov r8, r3
|
|
8538: 4480 add r8, r0
|
|
g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]);
|
|
853a: 78a8 ldrb r0, [r5, #2]
|
|
853c: 47b0 blx r6
|
|
853e: 9005 str r0, [sp, #20]
|
|
8540: 78e8 ldrb r0, [r5, #3]
|
|
8542: 47b0 blx r6
|
|
8544: 9b05 ldr r3, [sp, #20]
|
|
8546: 011b lsls r3, r3, #4
|
|
8548: 181b adds r3, r3, r0
|
|
854a: 9305 str r3, [sp, #20]
|
|
b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]);
|
|
854c: 7928 ldrb r0, [r5, #4]
|
|
854e: 47b0 blx r6
|
|
8550: 9008 str r0, [sp, #32]
|
|
8552: 7968 ldrb r0, [r5, #5]
|
|
8554: 47b0 blx r6
|
|
8556: 9a08 ldr r2, [sp, #32]
|
|
8558: 0115 lsls r5, r2, #4
|
|
855a: 1828 adds r0, r5, r0
|
|
#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/
|
|
#endif
|
|
|
|
static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
|
|
{
|
|
return LV_COLOR_MAKE(r, g, b);
|
|
855c: b2c2 uxtb r2, r0
|
|
855e: 08d2 lsrs r2, r2, #3
|
|
8560: 231f movs r3, #31
|
|
8562: 992c ldr r1, [sp, #176] ; 0xb0
|
|
8564: 4399 bics r1, r3
|
|
8566: 000b movs r3, r1
|
|
8568: 4313 orrs r3, r2
|
|
856a: 466a mov r2, sp
|
|
856c: 7d12 ldrb r2, [r2, #20]
|
|
856e: 0892 lsrs r2, r2, #2
|
|
8570: 0151 lsls r1, r2, #5
|
|
8572: 4a16 ldr r2, [pc, #88] ; (85cc <lv_draw_label+0x3b8>)
|
|
8574: 4013 ands r3, r2
|
|
8576: 430b orrs r3, r1
|
|
8578: 4642 mov r2, r8
|
|
857a: 4669 mov r1, sp
|
|
857c: 750a strb r2, [r1, #20]
|
|
857e: 7d0a ldrb r2, [r1, #20]
|
|
8580: 08d2 lsrs r2, r2, #3
|
|
8582: 02d2 lsls r2, r2, #11
|
|
8584: 055b lsls r3, r3, #21
|
|
8586: 0d5b lsrs r3, r3, #21
|
|
8588: 4313 orrs r3, r2
|
|
858a: 466a mov r2, sp
|
|
858c: 21b0 movs r1, #176 ; 0xb0
|
|
858e: 1852 adds r2, r2, r1
|
|
8590: 8013 strh r3, [r2, #0]
|
|
8592: b29b uxth r3, r3
|
|
8594: 9316 str r3, [sp, #88] ; 0x58
|
|
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
|
|
8596: 2302 movs r3, #2
|
|
8598: 9309 str r3, [sp, #36] ; 0x24
|
|
859a: e262 b.n 8a62 <lv_draw_label+0x84e>
|
|
if(cmd_state == CMD_STATE_IN) color = recolor;
|
|
859c: 9e16 ldr r6, [sp, #88] ; 0x58
|
|
859e: e295 b.n 8acc <lv_draw_label+0x8b8>
|
|
85a0: 0000fc0f .word 0x0000fc0f
|
|
85a4: 00007c18 .word 0x00007c18
|
|
85a8: 00011ae5 .word 0x00011ae5
|
|
85ac: 000117c9 .word 0x000117c9
|
|
85b0: fffffc00 .word 0xfffffc00
|
|
85b4: 0000ab21 .word 0x0000ab21
|
|
85b8: 000187f8 .word 0x000187f8
|
|
85bc: 00011a41 .word 0x00011a41
|
|
85c0: 00009101 .word 0x00009101
|
|
85c4: 00017995 .word 0x00017995
|
|
85c8: 0000817d .word 0x0000817d
|
|
85cc: fffff81f .word 0xfffff81f
|
|
sel_coords.x1 = pos.x;
|
|
85d0: a83c add r0, sp, #240 ; 0xf0
|
|
85d2: 8004 strh r4, [r0, #0]
|
|
sel_coords.y1 = pos.y;
|
|
85d4: 9911 ldr r1, [sp, #68] ; 0x44
|
|
85d6: 8041 strh r1, [r0, #2]
|
|
sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1;
|
|
85d8: 89bb ldrh r3, [r7, #12]
|
|
85da: 3b01 subs r3, #1
|
|
85dc: 18e3 adds r3, r4, r3
|
|
85de: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
85e0: 4694 mov ip, r2
|
|
85e2: 4463 add r3, ip
|
|
85e4: 8083 strh r3, [r0, #4]
|
|
sel_coords.y2 = pos.y + line_height - 1;
|
|
85e6: 9b18 ldr r3, [sp, #96] ; 0x60
|
|
85e8: 3b01 subs r3, #1
|
|
85ea: 468c mov ip, r1
|
|
85ec: 4463 add r3, ip
|
|
85ee: 80c3 strh r3, [r0, #6]
|
|
lv_draw_rect(&sel_coords, mask, &draw_dsc_sel);
|
|
85f0: aa3f add r2, sp, #252 ; 0xfc
|
|
85f2: 990e ldr r1, [sp, #56] ; 0x38
|
|
85f4: 4bc6 ldr r3, [pc, #792] ; (8910 <lv_draw_label+0x6fc>)
|
|
85f6: 4798 blx r3
|
|
85f8: e27a b.n 8af0 <lv_draw_label+0x8dc>
|
|
switch(bpp) {
|
|
85fa: 2b04 cmp r3, #4
|
|
85fc: d100 bne.n 8600 <lv_draw_label+0x3ec>
|
|
85fe: e0e9 b.n 87d4 <lv_draw_label+0x5c0>
|
|
8600: 2b08 cmp r3, #8
|
|
8602: d000 beq.n 8606 <lv_draw_label+0x3f2>
|
|
8604: e224 b.n 8a50 <lv_draw_label+0x83c>
|
|
uint32_t bpp = g->bpp;
|
|
8606: 2608 movs r6, #8
|
|
bitmask_init = 0xFF;
|
|
8608: 23ff movs r3, #255 ; 0xff
|
|
860a: 9320 str r3, [sp, #128] ; 0x80
|
|
bpp_opa_table = _lv_bpp8_opa_table;
|
|
860c: 4bc1 ldr r3, [pc, #772] ; (8914 <lv_draw_label+0x700>)
|
|
860e: 9323 str r3, [sp, #140] ; 0x8c
|
|
8610: e003 b.n 861a <lv_draw_label+0x406>
|
|
bitmask_init = 0xC0;
|
|
8612: 23c0 movs r3, #192 ; 0xc0
|
|
8614: 9320 str r3, [sp, #128] ; 0x80
|
|
bpp_opa_table = _lv_bpp2_opa_table;
|
|
8616: 4bc0 ldr r3, [pc, #768] ; (8918 <lv_draw_label+0x704>)
|
|
8618: 9323 str r3, [sp, #140] ; 0x8c
|
|
int32_t box_w = g->box_w;
|
|
861a: ab3c add r3, sp, #240 ; 0xf0
|
|
861c: 885a ldrh r2, [r3, #2]
|
|
861e: 921a str r2, [sp, #104] ; 0x68
|
|
int32_t box_h = g->box_h;
|
|
8620: 889b ldrh r3, [r3, #4]
|
|
8622: 931b str r3, [sp, #108] ; 0x6c
|
|
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
|
|
8624: 4372 muls r2, r6
|
|
8626: 9221 str r2, [sp, #132] ; 0x84
|
|
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
|
|
8628: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
862a: 2200 movs r2, #0
|
|
862c: 5e9b ldrsh r3, [r3, r2]
|
|
862e: 2200 movs r2, #0
|
|
8630: 922b str r2, [sp, #172] ; 0xac
|
|
8632: 9905 ldr r1, [sp, #20]
|
|
8634: 4299 cmp r1, r3
|
|
8636: da03 bge.n 8640 <lv_draw_label+0x42c>
|
|
8638: 1a5b subs r3, r3, r1
|
|
863a: 005a lsls r2, r3, #1
|
|
863c: 18d3 adds r3, r2, r3
|
|
863e: 932b str r3, [sp, #172] ; 0xac
|
|
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
|
|
8640: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8642: 2204 movs r2, #4
|
|
8644: 5e9b ldrsh r3, [r3, r2]
|
|
8646: 9322 str r3, [sp, #136] ; 0x88
|
|
8648: 2103 movs r1, #3
|
|
864a: 981a ldr r0, [sp, #104] ; 0x68
|
|
864c: 4bb3 ldr r3, [pc, #716] ; (891c <lv_draw_label+0x708>)
|
|
864e: 4798 blx r3
|
|
8650: 9905 ldr r1, [sp, #20]
|
|
8652: 468c mov ip, r1
|
|
8654: 4460 add r0, ip
|
|
8656: 9a1a ldr r2, [sp, #104] ; 0x68
|
|
8658: 9219 str r2, [sp, #100] ; 0x64
|
|
865a: 9a22 ldr r2, [sp, #136] ; 0x88
|
|
865c: 4290 cmp r0, r2
|
|
865e: dd04 ble.n 866a <lv_draw_label+0x456>
|
|
8660: 1a53 subs r3, r2, r1
|
|
8662: 1c5a adds r2, r3, #1
|
|
8664: 0053 lsls r3, r2, #1
|
|
8666: 189b adds r3, r3, r2
|
|
8668: 9319 str r3, [sp, #100] ; 0x64
|
|
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
|
|
866a: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
866c: 2202 movs r2, #2
|
|
866e: 5e9b ldrsh r3, [r3, r2]
|
|
8670: 2200 movs r2, #0
|
|
8672: 9229 str r2, [sp, #164] ; 0xa4
|
|
8674: 9915 ldr r1, [sp, #84] ; 0x54
|
|
8676: 4299 cmp r1, r3
|
|
8678: da01 bge.n 867e <lv_draw_label+0x46a>
|
|
867a: 1a5b subs r3, r3, r1
|
|
867c: 9329 str r3, [sp, #164] ; 0xa4
|
|
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
|
|
867e: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8680: 2206 movs r2, #6
|
|
8682: 5e9b ldrsh r3, [r3, r2]
|
|
8684: 991b ldr r1, [sp, #108] ; 0x6c
|
|
8686: 000a movs r2, r1
|
|
8688: 9815 ldr r0, [sp, #84] ; 0x54
|
|
868a: 4684 mov ip, r0
|
|
868c: 4462 add r2, ip
|
|
868e: 912f str r1, [sp, #188] ; 0xbc
|
|
8690: 429a cmp r2, r3
|
|
8692: dd02 ble.n 869a <lv_draw_label+0x486>
|
|
8694: 1a1b subs r3, r3, r0
|
|
8696: 3301 adds r3, #1
|
|
8698: 932f str r3, [sp, #188] ; 0xbc
|
|
869a: 466b mov r3, sp
|
|
869c: 2290 movs r2, #144 ; 0x90
|
|
869e: 189b adds r3, r3, r2
|
|
86a0: 881a ldrh r2, [r3, #0]
|
|
86a2: 06d3 lsls r3, r2, #27
|
|
86a4: 0edb lsrs r3, r3, #27
|
|
86a6: 9326 str r3, [sp, #152] ; 0x98
|
|
86a8: 0553 lsls r3, r2, #21
|
|
86aa: 0e9b lsrs r3, r3, #26
|
|
86ac: 9328 str r3, [sp, #160] ; 0xa0
|
|
86ae: 0413 lsls r3, r2, #16
|
|
86b0: 0edb lsrs r3, r3, #27
|
|
86b2: 9327 str r3, [sp, #156] ; 0x9c
|
|
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
|
|
86b4: 9b21 ldr r3, [sp, #132] ; 0x84
|
|
86b6: 9a29 ldr r2, [sp, #164] ; 0xa4
|
|
86b8: 4353 muls r3, r2
|
|
86ba: 9a2b ldr r2, [sp, #172] ; 0xac
|
|
86bc: 4372 muls r2, r6
|
|
86be: 189b adds r3, r3, r2
|
|
map_p += bit_ofs >> 3;
|
|
86c0: 10da asrs r2, r3, #3
|
|
86c2: 18ad adds r5, r5, r2
|
|
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
|
|
86c4: 2207 movs r2, #7
|
|
86c6: 401a ands r2, r3
|
|
86c8: 9234 str r2, [sp, #208] ; 0xd0
|
|
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
|
|
86ca: 9b1b ldr r3, [sp, #108] ; 0x6c
|
|
86cc: 9a1a ldr r2, [sp, #104] ; 0x68
|
|
86ce: 4353 muls r3, r2
|
|
86d0: 001a movs r2, r3
|
|
86d2: 932e str r3, [sp, #184] ; 0xb8
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
86d4: 23f0 movs r3, #240 ; 0xf0
|
|
86d6: 005b lsls r3, r3, #1
|
|
86d8: 429a cmp r2, r3
|
|
86da: dd00 ble.n 86de <lv_draw_label+0x4ca>
|
|
86dc: 932e str r3, [sp, #184] ; 0xb8
|
|
86de: 982e ldr r0, [sp, #184] ; 0xb8
|
|
86e0: 4b8f ldr r3, [pc, #572] ; (8920 <lv_draw_label+0x70c>)
|
|
86e2: 4798 blx r3
|
|
86e4: 9024 str r0, [sp, #144] ; 0x90
|
|
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
|
|
86e6: 9b2e ldr r3, [sp, #184] ; 0xb8
|
|
86e8: 0058 lsls r0, r3, #1
|
|
86ea: 4b8d ldr r3, [pc, #564] ; (8920 <lv_draw_label+0x70c>)
|
|
86ec: 4798 blx r3
|
|
86ee: 9025 str r0, [sp, #148] ; 0x94
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
86f0: 4b8c ldr r3, [pc, #560] ; (8924 <lv_draw_label+0x710>)
|
|
86f2: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
86f4: 4b8c ldr r3, [pc, #560] ; (8928 <lv_draw_label+0x714>)
|
|
86f6: 4798 blx r3
|
|
86f8: 2110 movs r1, #16
|
|
86fa: 5e42 ldrsh r2, [r0, r1]
|
|
86fc: 0011 movs r1, r2
|
|
86fe: 8a83 ldrh r3, [r0, #20]
|
|
8700: 3301 adds r3, #1
|
|
8702: 9122 str r1, [sp, #136] ; 0x88
|
|
8704: 1a5b subs r3, r3, r1
|
|
int32_t vdb_width = lv_area_get_width(&vdb->area);
|
|
8706: b21b sxth r3, r3
|
|
8708: 931b str r3, [sp, #108] ; 0x6c
|
|
lv_color_t * vdb_buf_tmp = vdb->buf_act;
|
|
870a: 9021 str r0, [sp, #132] ; 0x84
|
|
870c: 6880 ldr r0, [r0, #8]
|
|
870e: 902a str r0, [sp, #168] ; 0xa8
|
|
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
|
|
8710: 2103 movs r1, #3
|
|
8712: 982b ldr r0, [sp, #172] ; 0xac
|
|
8714: 4a81 ldr r2, [pc, #516] ; (891c <lv_draw_label+0x708>)
|
|
8716: 4694 mov ip, r2
|
|
8718: 47e0 blx ip
|
|
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
|
|
871a: 9b21 ldr r3, [sp, #132] ; 0x84
|
|
871c: 2112 movs r1, #18
|
|
871e: 5e5b ldrsh r3, [r3, r1]
|
|
8720: 9915 ldr r1, [sp, #84] ; 0x54
|
|
8722: 1acb subs r3, r1, r3
|
|
8724: 991b ldr r1, [sp, #108] ; 0x6c
|
|
8726: 434b muls r3, r1
|
|
8728: 9a05 ldr r2, [sp, #20]
|
|
872a: 4694 mov ip, r2
|
|
872c: 4463 add r3, ip
|
|
872e: 9a22 ldr r2, [sp, #136] ; 0x88
|
|
8730: 1a9b subs r3, r3, r2
|
|
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
|
|
8732: 9a29 ldr r2, [sp, #164] ; 0xa4
|
|
8734: 434a muls r2, r1
|
|
8736: 1812 adds r2, r2, r0
|
|
8738: 189b adds r3, r3, r2
|
|
873a: 005b lsls r3, r3, #1
|
|
873c: 992a ldr r1, [sp, #168] ; 0xa8
|
|
873e: 468c mov ip, r1
|
|
8740: 449c add ip, r3
|
|
8742: 4661 mov r1, ip
|
|
8744: 9105 str r1, [sp, #20]
|
|
map_area.x1 = col_start / 3 + pos_x;
|
|
8746: 4641 mov r1, r8
|
|
8748: 466b mov r3, sp
|
|
874a: 2254 movs r2, #84 ; 0x54
|
|
874c: 189b adds r3, r3, r2
|
|
874e: 8019 strh r1, [r3, #0]
|
|
8750: b289 uxth r1, r1
|
|
8752: 4688 mov r8, r1
|
|
8754: 4440 add r0, r8
|
|
8756: a934 add r1, sp, #208 ; 0xd0
|
|
8758: 8308 strh r0, [r1, #24]
|
|
map_area.x2 = col_end / 3 + pos_x - 1;
|
|
875a: 2103 movs r1, #3
|
|
875c: 9819 ldr r0, [sp, #100] ; 0x64
|
|
875e: 4b6f ldr r3, [pc, #444] ; (891c <lv_draw_label+0x708>)
|
|
8760: 4798 blx r3
|
|
8762: 4643 mov r3, r8
|
|
8764: 3b01 subs r3, #1
|
|
8766: 18c3 adds r3, r0, r3
|
|
8768: a834 add r0, sp, #208 ; 0xd0
|
|
876a: 8383 strh r3, [r0, #28]
|
|
map_area.y1 = row_start + pos_y;
|
|
876c: 9817 ldr r0, [sp, #92] ; 0x5c
|
|
876e: 9a29 ldr r2, [sp, #164] ; 0xa4
|
|
8770: 4694 mov ip, r2
|
|
8772: 4460 add r0, ip
|
|
8774: b203 sxth r3, r0
|
|
8776: a834 add r0, sp, #208 ; 0xd0
|
|
8778: 8343 strh r3, [r0, #26]
|
|
map_area.y2 = map_area.y1;
|
|
877a: 83c3 strh r3, [r0, #30]
|
|
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
877c: 4b6b ldr r3, [pc, #428] ; (892c <lv_draw_label+0x718>)
|
|
877e: 4798 blx r3
|
|
8780: 9030 str r0, [sp, #192] ; 0xc0
|
|
for(row = row_start ; row < row_end; row++) {
|
|
8782: 9a29 ldr r2, [sp, #164] ; 0xa4
|
|
8784: 982f ldr r0, [sp, #188] ; 0xbc
|
|
8786: 4282 cmp r2, r0
|
|
8788: db00 blt.n 878c <lv_draw_label+0x578>
|
|
878a: e147 b.n 8a1c <lv_draw_label+0x808>
|
|
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
|
|
878c: 9a19 ldr r2, [sp, #100] ; 0x64
|
|
878e: 982b ldr r0, [sp, #172] ; 0xac
|
|
8790: 1a11 subs r1, r2, r0
|
|
8792: 0008 movs r0, r1
|
|
8794: 9131 str r1, [sp, #196] ; 0xc4
|
|
col_bit += ((box_w - col_end) + col_start) * bpp;
|
|
8796: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
8798: 1a9b subs r3, r3, r2
|
|
879a: 992b ldr r1, [sp, #172] ; 0xac
|
|
879c: 468c mov ip, r1
|
|
879e: 4463 add r3, ip
|
|
87a0: 0019 movs r1, r3
|
|
87a2: 4371 muls r1, r6
|
|
87a4: 9132 str r1, [sp, #200] ; 0xc8
|
|
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
|
|
87a6: 2103 movs r1, #3
|
|
87a8: 4249 negs r1, r1
|
|
87aa: 4b5c ldr r3, [pc, #368] ; (891c <lv_draw_label+0x708>)
|
|
87ac: 4798 blx r3
|
|
87ae: 9b1b ldr r3, [sp, #108] ; 0x6c
|
|
87b0: 18c3 adds r3, r0, r3
|
|
87b2: 005b lsls r3, r3, #1
|
|
87b4: 9333 str r3, [sp, #204] ; 0xcc
|
|
87b6: 2300 movs r3, #0
|
|
87b8: 932a str r3, [sp, #168] ; 0xa8
|
|
color_buf[mask_p] = res_color;
|
|
87ba: 465b mov r3, fp
|
|
87bc: 9335 str r3, [sp, #212] ; 0xd4
|
|
87be: 4653 mov r3, sl
|
|
87c0: 9336 str r3, [sp, #216] ; 0xd8
|
|
87c2: 9b05 ldr r3, [sp, #20]
|
|
87c4: 469a mov sl, r3
|
|
87c6: 46ab mov fp, r5
|
|
87c8: 9b34 ldr r3, [sp, #208] ; 0xd0
|
|
87ca: 4698 mov r8, r3
|
|
87cc: 9434 str r4, [sp, #208] ; 0xd0
|
|
87ce: 9737 str r7, [sp, #220] ; 0xdc
|
|
87d0: e0d4 b.n 897c <lv_draw_label+0x768>
|
|
if(bpp == 3) bpp = 4;
|
|
87d2: 2604 movs r6, #4
|
|
bitmask_init = 0xF0;
|
|
87d4: 23f0 movs r3, #240 ; 0xf0
|
|
87d6: 9320 str r3, [sp, #128] ; 0x80
|
|
bpp_opa_table = _lv_bpp4_opa_table;
|
|
87d8: 4b55 ldr r3, [pc, #340] ; (8930 <lv_draw_label+0x71c>)
|
|
87da: 9323 str r3, [sp, #140] ; 0x8c
|
|
87dc: e71d b.n 861a <lv_draw_label+0x406>
|
|
px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px];
|
|
87de: 2e08 cmp r6, #8
|
|
87e0: d00b beq.n 87fa <lv_draw_label+0x5e6>
|
|
87e2: 4663 mov r3, ip
|
|
87e4: 4018 ands r0, r3
|
|
87e6: 9b23 ldr r3, [sp, #140] ; 0x8c
|
|
87e8: 5c1b ldrb r3, [r3, r0]
|
|
87ea: e006 b.n 87fa <lv_draw_label+0x5e6>
|
|
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
|
|
87ec: 4663 mov r3, ip
|
|
87ee: 4003 ands r3, r0
|
|
87f0: 991c ldr r1, [sp, #112] ; 0x70
|
|
87f2: 434b muls r3, r1
|
|
87f4: 0a1b lsrs r3, r3, #8
|
|
87f6: e000 b.n 87fa <lv_draw_label+0x5e6>
|
|
px_opa = 0;
|
|
87f8: 2300 movs r3, #0
|
|
font_rgb[subpx_cnt] = px_opa;
|
|
87fa: 9917 ldr r1, [sp, #92] ; 0x5c
|
|
87fc: 548b strb r3, [r1, r2]
|
|
subpx_cnt ++;
|
|
87fe: 3201 adds r2, #1
|
|
if(subpx_cnt == 3) {
|
|
8800: 2a03 cmp r2, #3
|
|
8802: d022 beq.n 884a <lv_draw_label+0x636>
|
|
if(col_bit < 8 - bpp) {
|
|
8804: 9815 ldr r0, [sp, #84] ; 0x54
|
|
8806: 991a ldr r1, [sp, #104] ; 0x68
|
|
8808: 4288 cmp r0, r1
|
|
880a: d27b bcs.n 8904 <lv_draw_label+0x6f0>
|
|
col_bit += bpp;
|
|
880c: 1833 adds r3, r6, r0
|
|
bitmask = bitmask >> bpp;
|
|
880e: 40f5 lsrs r5, r6
|
|
for(col = col_start; col < col_end; col++) {
|
|
8810: 3401 adds r4, #1
|
|
8812: 9919 ldr r1, [sp, #100] ; 0x64
|
|
8814: 42a1 cmp r1, r4
|
|
8816: d100 bne.n 881a <lv_draw_label+0x606>
|
|
8818: e08e b.n 8938 <lv_draw_label+0x724>
|
|
letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp);
|
|
881a: 9315 str r3, [sp, #84] ; 0x54
|
|
881c: 9905 ldr r1, [sp, #20]
|
|
881e: 7808 ldrb r0, [r1, #0]
|
|
8820: 4028 ands r0, r5
|
|
8822: 2108 movs r1, #8
|
|
8824: 1acb subs r3, r1, r3
|
|
8826: 1b9b subs r3, r3, r6
|
|
8828: 40d8 lsrs r0, r3
|
|
882a: b2c3 uxtb r3, r0
|
|
if(letter_px != 0) {
|
|
882c: 2b00 cmp r3, #0
|
|
882e: d0e3 beq.n 87f8 <lv_draw_label+0x5e4>
|
|
if(opa == LV_OPA_COVER) {
|
|
8830: 991c ldr r1, [sp, #112] ; 0x70
|
|
8832: 29ff cmp r1, #255 ; 0xff
|
|
8834: d0d3 beq.n 87de <lv_draw_label+0x5ca>
|
|
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
|
|
8836: 2e08 cmp r6, #8
|
|
8838: d0d8 beq.n 87ec <lv_draw_label+0x5d8>
|
|
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
|
|
883a: 4663 mov r3, ip
|
|
883c: 4018 ands r0, r3
|
|
883e: 9b23 ldr r3, [sp, #140] ; 0x8c
|
|
8840: 5c1b ldrb r3, [r3, r0]
|
|
8842: 991c ldr r1, [sp, #112] ; 0x70
|
|
8844: 434b muls r3, r1
|
|
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
|
|
8846: 0a1b lsrs r3, r3, #8
|
|
8848: e7d7 b.n 87fa <lv_draw_label+0x5e6>
|
|
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
|
|
884a: 7808 ldrb r0, [r1, #0]
|
|
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
|
|
884c: 4653 mov r3, sl
|
|
884e: 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;
|
|
8850: 08db lsrs r3, r3, #3
|
|
8852: 4662 mov r2, ip
|
|
8854: 1a12 subs r2, r2, r0
|
|
8856: 4353 muls r3, r2
|
|
8858: 9a27 ldr r2, [sp, #156] ; 0x9c
|
|
885a: 4342 muls r2, r0
|
|
885c: 189b adds r3, r3, r2
|
|
885e: 0a1b lsrs r3, r3, #8
|
|
8860: 221f movs r2, #31
|
|
8862: 401a ands r2, r3
|
|
8864: 9221 str r2, [sp, #132] ; 0x84
|
|
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
|
|
8866: 788b ldrb r3, [r1, #2]
|
|
8868: 0019 movs r1, r3
|
|
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
|
|
886a: 4653 mov r3, sl
|
|
886c: 781a ldrb r2, [r3, #0]
|
|
886e: 06d2 lsls r2, r2, #27
|
|
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
|
|
8870: 0ed2 lsrs r2, r2, #27
|
|
8872: 4667 mov r7, ip
|
|
8874: 1a7b subs r3, r7, r1
|
|
8876: 435a muls r2, r3
|
|
8878: 9b26 ldr r3, [sp, #152] ; 0x98
|
|
887a: 434b muls r3, r1
|
|
887c: 18d2 adds r2, r2, r3
|
|
887e: 0a12 lsrs r2, r2, #8
|
|
8880: 231f movs r3, #31
|
|
8882: 401a ands r2, r3
|
|
8884: 9222 str r2, [sp, #136] ; 0x88
|
|
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
|
|
8886: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
8888: 785b ldrb r3, [r3, #1]
|
|
888a: 4698 mov r8, r3
|
|
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
|
|
888c: 4653 mov r3, sl
|
|
888e: 881b ldrh r3, [r3, #0]
|
|
8890: 055b lsls r3, r3, #21
|
|
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
|
|
8892: 0e9b lsrs r3, r3, #26
|
|
8894: 4662 mov r2, ip
|
|
8896: 4647 mov r7, r8
|
|
8898: 1bd2 subs r2, r2, r7
|
|
889a: 4353 muls r3, r2
|
|
889c: 9a28 ldr r2, [sp, #160] ; 0xa0
|
|
889e: 437a muls r2, r7
|
|
88a0: 4693 mov fp, r2
|
|
88a2: 445b add r3, fp
|
|
88a4: 0a1b lsrs r3, r3, #8
|
|
88a6: 223f movs r2, #63 ; 0x3f
|
|
88a8: 4013 ands r3, r2
|
|
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
|
|
88aa: 2800 cmp r0, #0
|
|
88ac: d107 bne.n 88be <lv_draw_label+0x6aa>
|
|
88ae: 2f00 cmp r7, #0
|
|
88b0: d105 bne.n 88be <lv_draw_label+0x6aa>
|
|
88b2: 2900 cmp r1, #0
|
|
88b4: d103 bne.n 88be <lv_draw_label+0x6aa>
|
|
88b6: 9a24 ldr r2, [sp, #144] ; 0x90
|
|
88b8: 991b ldr r1, [sp, #108] ; 0x6c
|
|
88ba: 5450 strb r0, [r2, r1]
|
|
88bc: e003 b.n 88c6 <lv_draw_label+0x6b2>
|
|
else mask_buf[mask_p] = LV_OPA_COVER;
|
|
88be: 9a24 ldr r2, [sp, #144] ; 0x90
|
|
88c0: 991b ldr r1, [sp, #108] ; 0x6c
|
|
88c2: 4660 mov r0, ip
|
|
88c4: 5450 strb r0, [r2, r1]
|
|
color_buf[mask_p] = res_color;
|
|
88c6: 991b ldr r1, [sp, #108] ; 0x6c
|
|
88c8: 0048 lsls r0, r1, #1
|
|
88ca: 9a25 ldr r2, [sp, #148] ; 0x94
|
|
88cc: 4690 mov r8, r2
|
|
88ce: 4440 add r0, r8
|
|
88d0: 7802 ldrb r2, [r0, #0]
|
|
88d2: 271f movs r7, #31
|
|
88d4: 43ba bics r2, r7
|
|
88d6: 9f22 ldr r7, [sp, #136] ; 0x88
|
|
88d8: 4317 orrs r7, r2
|
|
88da: 7007 strb r7, [r0, #0]
|
|
88dc: 015b lsls r3, r3, #5
|
|
88de: 8802 ldrh r2, [r0, #0]
|
|
88e0: 4f14 ldr r7, [pc, #80] ; (8934 <lv_draw_label+0x720>)
|
|
88e2: 403a ands r2, r7
|
|
88e4: 4313 orrs r3, r2
|
|
88e6: 8003 strh r3, [r0, #0]
|
|
88e8: 9a21 ldr r2, [sp, #132] ; 0x84
|
|
88ea: 00d2 lsls r2, r2, #3
|
|
88ec: 0a1b lsrs r3, r3, #8
|
|
88ee: 2707 movs r7, #7
|
|
88f0: 403b ands r3, r7
|
|
88f2: 4313 orrs r3, r2
|
|
88f4: 7043 strb r3, [r0, #1]
|
|
mask_p++;
|
|
88f6: 1c4b adds r3, r1, #1
|
|
88f8: 931b str r3, [sp, #108] ; 0x6c
|
|
vdb_buf_tmp++;
|
|
88fa: 2302 movs r3, #2
|
|
88fc: 4698 mov r8, r3
|
|
88fe: 44c2 add sl, r8
|
|
subpx_cnt = 0;
|
|
8900: 2200 movs r2, #0
|
|
8902: e77f b.n 8804 <lv_draw_label+0x5f0>
|
|
map_p++;
|
|
8904: 9b05 ldr r3, [sp, #20]
|
|
8906: 3301 adds r3, #1
|
|
8908: 9305 str r3, [sp, #20]
|
|
bitmask = bitmask_init;
|
|
890a: 9d20 ldr r5, [sp, #128] ; 0x80
|
|
col_bit = 0;
|
|
890c: 2300 movs r3, #0
|
|
890e: e77f b.n 8810 <lv_draw_label+0x5fc>
|
|
8910: 0000abc5 .word 0x0000abc5
|
|
8914: 00018814 .word 0x00018814
|
|
8918: 00018800 .word 0x00018800
|
|
891c: 00017995 .word 0x00017995
|
|
8920: 00010ec1 .word 0x00010ec1
|
|
8924: 000043b1 .word 0x000043b1
|
|
8928: 0000f709 .word 0x0000f709
|
|
892c: 0000a6c1 .word 0x0000a6c1
|
|
8930: 00018804 .word 0x00018804
|
|
8934: fffff81f .word 0xfffff81f
|
|
8938: 9a05 ldr r2, [sp, #20]
|
|
893a: 4693 mov fp, r2
|
|
893c: 4698 mov r8, r3
|
|
if(other_mask_cnt) {
|
|
893e: 9b30 ldr r3, [sp, #192] ; 0xc0
|
|
8940: 2b00 cmp r3, #0
|
|
8942: d133 bne.n 89ac <lv_draw_label+0x798>
|
|
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
|
|
8944: 9b31 ldr r3, [sp, #196] ; 0xc4
|
|
8946: 991b ldr r1, [sp, #108] ; 0x6c
|
|
8948: 468c mov ip, r1
|
|
894a: 4463 add r3, ip
|
|
894c: 9a2e ldr r2, [sp, #184] ; 0xb8
|
|
894e: 429a cmp r2, r3
|
|
8950: d949 bls.n 89e6 <lv_draw_label+0x7d2>
|
|
map_area.y2 ++;
|
|
8952: aa3a add r2, sp, #232 ; 0xe8
|
|
8954: 88d3 ldrh r3, [r2, #6]
|
|
8956: 3301 adds r3, #1
|
|
8958: 80d3 strh r3, [r2, #6]
|
|
895a: 912a str r1, [sp, #168] ; 0xa8
|
|
col_bit += ((box_w - col_end) + col_start) * bpp;
|
|
895c: 9b32 ldr r3, [sp, #200] ; 0xc8
|
|
895e: 4443 add r3, r8
|
|
map_p += (col_bit >> 3);
|
|
8960: 10da asrs r2, r3, #3
|
|
8962: 4493 add fp, r2
|
|
col_bit = col_bit & 0x7;
|
|
8964: 2207 movs r2, #7
|
|
8966: 401a ands r2, r3
|
|
8968: 4690 mov r8, r2
|
|
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
|
|
896a: 9b33 ldr r3, [sp, #204] ; 0xcc
|
|
896c: 469c mov ip, r3
|
|
896e: 44e2 add sl, ip
|
|
for(row = row_start ; row < row_end; row++) {
|
|
8970: 9b29 ldr r3, [sp, #164] ; 0xa4
|
|
8972: 3301 adds r3, #1
|
|
8974: 9329 str r3, [sp, #164] ; 0xa4
|
|
8976: 9a2f ldr r2, [sp, #188] ; 0xbc
|
|
8978: 4293 cmp r3, r2
|
|
897a: da49 bge.n 8a10 <lv_draw_label+0x7fc>
|
|
bitmask = bitmask_init >> col_bit;
|
|
897c: 9d20 ldr r5, [sp, #128] ; 0x80
|
|
897e: 4643 mov r3, r8
|
|
8980: 40dd lsrs r5, r3
|
|
for(col = col_start; col < col_end; col++) {
|
|
8982: 9c2b ldr r4, [sp, #172] ; 0xac
|
|
8984: 9a19 ldr r2, [sp, #100] ; 0x64
|
|
8986: 4294 cmp r4, r2
|
|
8988: da0d bge.n 89a6 <lv_draw_label+0x792>
|
|
898a: 9b2a ldr r3, [sp, #168] ; 0xa8
|
|
898c: 931b str r3, [sp, #108] ; 0x6c
|
|
898e: 2200 movs r2, #0
|
|
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
|
|
8990: 23ff movs r3, #255 ; 0xff
|
|
8992: 469c mov ip, r3
|
|
font_rgb[subpx_cnt] = px_opa;
|
|
8994: ab39 add r3, sp, #228 ; 0xe4
|
|
8996: 9317 str r3, [sp, #92] ; 0x5c
|
|
if(col_bit < 8 - bpp) {
|
|
8998: 2308 movs r3, #8
|
|
899a: 1b9b subs r3, r3, r6
|
|
899c: 931a str r3, [sp, #104] ; 0x68
|
|
899e: 465b mov r3, fp
|
|
89a0: 9305 str r3, [sp, #20]
|
|
89a2: 4643 mov r3, r8
|
|
89a4: e739 b.n 881a <lv_draw_label+0x606>
|
|
for(col = col_start; col < col_end; col++) {
|
|
89a6: 9b2a ldr r3, [sp, #168] ; 0xa8
|
|
89a8: 931b str r3, [sp, #108] ; 0x6c
|
|
89aa: e7c8 b.n 893e <lv_draw_label+0x72a>
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2,
|
|
89ac: 9b2a ldr r3, [sp, #168] ; 0xa8
|
|
89ae: 9a24 ldr r2, [sp, #144] ; 0x90
|
|
89b0: 4694 mov ip, r2
|
|
89b2: 4463 add r3, ip
|
|
89b4: 001c movs r4, r3
|
|
89b6: aa3a add r2, sp, #232 ; 0xe8
|
|
89b8: 2300 movs r3, #0
|
|
89ba: 5ed1 ldrsh r1, [r2, r3]
|
|
89bc: 8893 ldrh r3, [r2, #4]
|
|
89be: 3301 adds r3, #1
|
|
89c0: 1a5b subs r3, r3, r1
|
|
89c2: b21b sxth r3, r3
|
|
89c4: 2006 movs r0, #6
|
|
89c6: 5e12 ldrsh r2, [r2, r0]
|
|
89c8: 0020 movs r0, r4
|
|
89ca: 4db1 ldr r5, [pc, #708] ; (8c90 <lv_draw_label+0xa7c>)
|
|
89cc: 47a8 blx r5
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
|
|
89ce: 2800 cmp r0, #0
|
|
89d0: d1b8 bne.n 8944 <lv_draw_label+0x730>
|
|
89d2: ab3a add r3, sp, #232 ; 0xe8
|
|
89d4: 8899 ldrh r1, [r3, #4]
|
|
89d6: 3101 adds r1, #1
|
|
89d8: 881b ldrh r3, [r3, #0]
|
|
89da: 1ac9 subs r1, r1, r3
|
|
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area));
|
|
89dc: b209 sxth r1, r1
|
|
89de: 0020 movs r0, r4
|
|
89e0: 4bac ldr r3, [pc, #688] ; (8c94 <lv_draw_label+0xa80>)
|
|
89e2: 4798 blx r3
|
|
89e4: e7ae b.n 8944 <lv_draw_label+0x730>
|
|
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
|
|
89e6: ac3a add r4, sp, #232 ; 0xe8
|
|
89e8: 9b13 ldr r3, [sp, #76] ; 0x4c
|
|
89ea: 9302 str r3, [sp, #8]
|
|
89ec: 9b1c ldr r3, [sp, #112] ; 0x70
|
|
89ee: 9301 str r3, [sp, #4]
|
|
89f0: 2302 movs r3, #2
|
|
89f2: 9300 str r3, [sp, #0]
|
|
89f4: 9b24 ldr r3, [sp, #144] ; 0x90
|
|
89f6: 9a25 ldr r2, [sp, #148] ; 0x94
|
|
89f8: 0021 movs r1, r4
|
|
89fa: 980e ldr r0, [sp, #56] ; 0x38
|
|
89fc: 4da6 ldr r5, [pc, #664] ; (8c98 <lv_draw_label+0xa84>)
|
|
89fe: 47a8 blx r5
|
|
map_area.y1 = map_area.y2 + 1;
|
|
8a00: 88e3 ldrh r3, [r4, #6]
|
|
8a02: 3301 adds r3, #1
|
|
8a04: b21b sxth r3, r3
|
|
8a06: 8063 strh r3, [r4, #2]
|
|
map_area.y2 = map_area.y1;
|
|
8a08: 80e3 strh r3, [r4, #6]
|
|
mask_p = 0;
|
|
8a0a: 2300 movs r3, #0
|
|
8a0c: 932a str r3, [sp, #168] ; 0xa8
|
|
8a0e: e7a5 b.n 895c <lv_draw_label+0x748>
|
|
8a10: 9b35 ldr r3, [sp, #212] ; 0xd4
|
|
8a12: 469b mov fp, r3
|
|
8a14: 9b36 ldr r3, [sp, #216] ; 0xd8
|
|
8a16: 469a mov sl, r3
|
|
8a18: 9c34 ldr r4, [sp, #208] ; 0xd0
|
|
8a1a: 9f37 ldr r7, [sp, #220] ; 0xdc
|
|
if(map_area.y1 != map_area.y2) {
|
|
8a1c: aa3a add r2, sp, #232 ; 0xe8
|
|
8a1e: 2106 movs r1, #6
|
|
8a20: 5e53 ldrsh r3, [r2, r1]
|
|
8a22: 2102 movs r1, #2
|
|
8a24: 5e52 ldrsh r2, [r2, r1]
|
|
8a26: 429a cmp r2, r3
|
|
8a28: d00d beq.n 8a46 <lv_draw_label+0x832>
|
|
map_area.y2--;
|
|
8a2a: a93a add r1, sp, #232 ; 0xe8
|
|
8a2c: 3b01 subs r3, #1
|
|
8a2e: 80cb strh r3, [r1, #6]
|
|
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
|
|
8a30: 9b13 ldr r3, [sp, #76] ; 0x4c
|
|
8a32: 9302 str r3, [sp, #8]
|
|
8a34: 9b1c ldr r3, [sp, #112] ; 0x70
|
|
8a36: 9301 str r3, [sp, #4]
|
|
8a38: 2302 movs r3, #2
|
|
8a3a: 9300 str r3, [sp, #0]
|
|
8a3c: 9b24 ldr r3, [sp, #144] ; 0x90
|
|
8a3e: 9a25 ldr r2, [sp, #148] ; 0x94
|
|
8a40: 980e ldr r0, [sp, #56] ; 0x38
|
|
8a42: 4d95 ldr r5, [pc, #596] ; (8c98 <lv_draw_label+0xa84>)
|
|
8a44: 47a8 blx r5
|
|
_lv_mem_buf_release(mask_buf);
|
|
8a46: 9824 ldr r0, [sp, #144] ; 0x90
|
|
8a48: 4d94 ldr r5, [pc, #592] ; (8c9c <lv_draw_label+0xa88>)
|
|
8a4a: 47a8 blx r5
|
|
_lv_mem_buf_release(color_buf);
|
|
8a4c: 9825 ldr r0, [sp, #148] ; 0x94
|
|
8a4e: 47a8 blx r5
|
|
if(letter_w > 0) {
|
|
8a50: 9b08 ldr r3, [sp, #32]
|
|
8a52: 2b00 cmp r3, #0
|
|
8a54: dd05 ble.n 8a62 <lv_draw_label+0x84e>
|
|
pos.x += letter_w + dsc->letter_space;
|
|
8a56: 89bb ldrh r3, [r7, #12]
|
|
8a58: 191b adds r3, r3, r4
|
|
8a5a: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
8a5c: 4694 mov ip, r2
|
|
8a5e: 4463 add r3, ip
|
|
8a60: b21c sxth r4, r3
|
|
while(i < line_end - line_start) {
|
|
8a62: 9954 ldr r1, [sp, #336] ; 0x150
|
|
8a64: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
8a66: 465a mov r2, fp
|
|
8a68: 1a9b subs r3, r3, r2
|
|
8a6a: 428b cmp r3, r1
|
|
8a6c: d800 bhi.n 8a70 <lv_draw_label+0x85c>
|
|
8a6e: e273 b.n 8f58 <lv_draw_label+0xd44>
|
|
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
|
|
8a70: 4b8b ldr r3, [pc, #556] ; (8ca0 <lv_draw_label+0xa8c>)
|
|
8a72: 9a06 ldr r2, [sp, #24]
|
|
8a74: 429a cmp r2, r3
|
|
8a76: d100 bne.n 8a7a <lv_draw_label+0x866>
|
|
8a78: e523 b.n 84c2 <lv_draw_label+0x2ae>
|
|
uint16_t logical_char_pos = 0;
|
|
8a7a: 2500 movs r5, #0
|
|
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
|
|
8a7c: 459a cmp sl, r3
|
|
8a7e: d005 beq.n 8a8c <lv_draw_label+0x878>
|
|
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
|
|
8a80: 4459 add r1, fp
|
|
8a82: 980d ldr r0, [sp, #52] ; 0x34
|
|
8a84: 464b mov r3, r9
|
|
8a86: 681b ldr r3, [r3, #0]
|
|
8a88: 4798 blx r3
|
|
8a8a: b285 uxth r5, r0
|
|
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
|
|
8a8c: 4e85 ldr r6, [pc, #532] ; (8ca4 <lv_draw_label+0xa90>)
|
|
8a8e: a954 add r1, sp, #336 ; 0x150
|
|
8a90: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
8a92: 4698 mov r8, r3
|
|
8a94: 0018 movs r0, r3
|
|
8a96: 6833 ldr r3, [r6, #0]
|
|
8a98: 4798 blx r3
|
|
8a9a: 9005 str r0, [sp, #20]
|
|
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
|
|
8a9c: 4642 mov r2, r8
|
|
8a9e: 9954 ldr r1, [sp, #336] ; 0x150
|
|
8aa0: 468c mov ip, r1
|
|
8aa2: 4462 add r2, ip
|
|
8aa4: 0010 movs r0, r2
|
|
8aa6: 6833 ldr r3, [r6, #0]
|
|
8aa8: 2100 movs r1, #0
|
|
8aaa: 4798 blx r3
|
|
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
|
|
8aac: 7dfb ldrb r3, [r7, #23]
|
|
8aae: 07da lsls r2, r3, #31
|
|
8ab0: d507 bpl.n 8ac2 <lv_draw_label+0x8ae>
|
|
if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) {
|
|
8ab2: 9b05 ldr r3, [sp, #20]
|
|
8ab4: 2b23 cmp r3, #35 ; 0x23
|
|
8ab6: d100 bne.n 8aba <lv_draw_label+0x8a6>
|
|
8ab8: e505 b.n 84c6 <lv_draw_label+0x2b2>
|
|
if(cmd_state == CMD_STATE_PAR) {
|
|
8aba: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
8abc: 2b01 cmp r3, #1
|
|
8abe: d100 bne.n 8ac2 <lv_draw_label+0x8ae>
|
|
8ac0: e517 b.n 84f2 <lv_draw_label+0x2de>
|
|
lv_color_t color = dsc->color;
|
|
8ac2: 883e ldrh r6, [r7, #0]
|
|
if(cmd_state == CMD_STATE_IN) color = recolor;
|
|
8ac4: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
8ac6: 2b02 cmp r3, #2
|
|
8ac8: d100 bne.n 8acc <lv_draw_label+0x8b8>
|
|
8aca: e567 b.n 859c <lv_draw_label+0x388>
|
|
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
|
|
8acc: 0002 movs r2, r0
|
|
8ace: 9905 ldr r1, [sp, #20]
|
|
8ad0: 9807 ldr r0, [sp, #28]
|
|
8ad2: 4b75 ldr r3, [pc, #468] ; (8ca8 <lv_draw_label+0xa94>)
|
|
8ad4: 4798 blx r3
|
|
8ad6: 900a str r0, [sp, #40] ; 0x28
|
|
8ad8: 9008 str r0, [sp, #32]
|
|
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
|
|
8ada: 4b71 ldr r3, [pc, #452] ; (8ca0 <lv_draw_label+0xa8c>)
|
|
8adc: 9906 ldr r1, [sp, #24]
|
|
8ade: 4299 cmp r1, r3
|
|
8ae0: d006 beq.n 8af0 <lv_draw_label+0x8dc>
|
|
8ae2: 459a cmp sl, r3
|
|
8ae4: d004 beq.n 8af0 <lv_draw_label+0x8dc>
|
|
if(logical_char_pos >= sel_start && logical_char_pos < sel_end) {
|
|
8ae6: 42a9 cmp r1, r5
|
|
8ae8: d802 bhi.n 8af0 <lv_draw_label+0x8dc>
|
|
8aea: 45aa cmp sl, r5
|
|
8aec: d900 bls.n 8af0 <lv_draw_label+0x8dc>
|
|
8aee: e56f b.n 85d0 <lv_draw_label+0x3bc>
|
|
if(opa < LV_OPA_MIN) return;
|
|
8af0: 9b0f ldr r3, [sp, #60] ; 0x3c
|
|
8af2: 2b04 cmp r3, #4
|
|
8af4: d9ac bls.n 8a50 <lv_draw_label+0x83c>
|
|
if(font_p == NULL) {
|
|
8af6: 9807 ldr r0, [sp, #28]
|
|
8af8: 2800 cmp r0, #0
|
|
8afa: d0a9 beq.n 8a50 <lv_draw_label+0x83c>
|
|
lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode);
|
|
8afc: 7e7b ldrb r3, [r7, #25]
|
|
8afe: 9313 str r3, [sp, #76] ; 0x4c
|
|
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
|
|
8b00: 2300 movs r3, #0
|
|
8b02: 9a05 ldr r2, [sp, #20]
|
|
8b04: a93c add r1, sp, #240 ; 0xf0
|
|
8b06: 4d69 ldr r5, [pc, #420] ; (8cac <lv_draw_label+0xa98>)
|
|
8b08: 47a8 blx r5
|
|
if(g_ret == false) {
|
|
8b0a: 2800 cmp r0, #0
|
|
8b0c: d0a0 beq.n 8a50 <lv_draw_label+0x83c>
|
|
if((g.box_h == 0) && (g.box_w == 0)) return;
|
|
8b0e: ab3c add r3, sp, #240 ; 0xf0
|
|
8b10: 889a ldrh r2, [r3, #4]
|
|
8b12: 2a00 cmp r2, #0
|
|
8b14: d102 bne.n 8b1c <lv_draw_label+0x908>
|
|
8b16: 885b ldrh r3, [r3, #2]
|
|
8b18: 2b00 cmp r3, #0
|
|
8b1a: d099 beq.n 8a50 <lv_draw_label+0x83c>
|
|
int32_t pos_x = pos_p->x + g.ofs_x;
|
|
8b1c: ab3c add r3, sp, #240 ; 0xf0
|
|
8b1e: 2006 movs r0, #6
|
|
8b20: 5e19 ldrsh r1, [r3, r0]
|
|
8b22: 4688 mov r8, r1
|
|
8b24: 44a0 add r8, r4
|
|
if(pos_x + g.box_w < clip_area->x1 ||
|
|
8b26: 885b ldrh r3, [r3, #2]
|
|
8b28: 4443 add r3, r8
|
|
8b2a: 980e ldr r0, [sp, #56] ; 0x38
|
|
8b2c: 2500 movs r5, #0
|
|
8b2e: 5f41 ldrsh r1, [r0, r5]
|
|
8b30: 428b cmp r3, r1
|
|
8b32: db8d blt.n 8a50 <lv_draw_label+0x83c>
|
|
pos_x > clip_area->x2 ||
|
|
8b34: 0001 movs r1, r0
|
|
8b36: 2304 movs r3, #4
|
|
8b38: 5ecb ldrsh r3, [r1, r3]
|
|
if(pos_x + g.box_w < clip_area->x1 ||
|
|
8b3a: 4598 cmp r8, r3
|
|
8b3c: dc88 bgt.n 8a50 <lv_draw_label+0x83c>
|
|
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
|
|
8b3e: 9907 ldr r1, [sp, #28]
|
|
8b40: 2508 movs r5, #8
|
|
8b42: 5f4b ldrsh r3, [r1, r5]
|
|
8b44: 250a movs r5, #10
|
|
8b46: 5f49 ldrsh r1, [r1, r5]
|
|
8b48: 1a5b subs r3, r3, r1
|
|
8b4a: 9911 ldr r1, [sp, #68] ; 0x44
|
|
8b4c: 468c mov ip, r1
|
|
8b4e: 4463 add r3, ip
|
|
8b50: 1a9b subs r3, r3, r2
|
|
8b52: a93c add r1, sp, #240 ; 0xf0
|
|
8b54: 2508 movs r5, #8
|
|
8b56: 5f49 ldrsh r1, [r1, r5]
|
|
8b58: 1a5b subs r3, r3, r1
|
|
8b5a: 001d movs r5, r3
|
|
8b5c: 9317 str r3, [sp, #92] ; 0x5c
|
|
pos_y + g.box_h < clip_area->y1 ||
|
|
8b5e: 469c mov ip, r3
|
|
8b60: 4462 add r2, ip
|
|
8b62: 0001 movs r1, r0
|
|
8b64: 2002 movs r0, #2
|
|
8b66: 5e0b ldrsh r3, [r1, r0]
|
|
pos_x > clip_area->x2 ||
|
|
8b68: 429a cmp r2, r3
|
|
8b6a: da00 bge.n 8b6e <lv_draw_label+0x95a>
|
|
8b6c: e770 b.n 8a50 <lv_draw_label+0x83c>
|
|
pos_y > clip_area->y2) {
|
|
8b6e: 2206 movs r2, #6
|
|
8b70: 5e8b ldrsh r3, [r1, r2]
|
|
pos_y + g.box_h < clip_area->y1 ||
|
|
8b72: 429d cmp r5, r3
|
|
8b74: dd00 ble.n 8b78 <lv_draw_label+0x964>
|
|
8b76: e76b b.n 8a50 <lv_draw_label+0x83c>
|
|
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
|
|
8b78: 9905 ldr r1, [sp, #20]
|
|
8b7a: 9807 ldr r0, [sp, #28]
|
|
8b7c: 4b4c ldr r3, [pc, #304] ; (8cb0 <lv_draw_label+0xa9c>)
|
|
8b7e: 4798 blx r3
|
|
8b80: 1e05 subs r5, r0, #0
|
|
if(map_p == NULL) {
|
|
8b82: d100 bne.n 8b86 <lv_draw_label+0x972>
|
|
8b84: e764 b.n 8a50 <lv_draw_label+0x83c>
|
|
if(font_p->subpx) {
|
|
8b86: 9b07 ldr r3, [sp, #28]
|
|
8b88: 7b1b ldrb r3, [r3, #12]
|
|
8b8a: 079b lsls r3, r3, #30
|
|
8b8c: d020 beq.n 8bd0 <lv_draw_label+0x9bc>
|
|
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
|
|
8b8e: 4643 mov r3, r8
|
|
8b90: b21b sxth r3, r3
|
|
8b92: 9305 str r3, [sp, #20]
|
|
8b94: 466b mov r3, sp
|
|
8b96: 225c movs r2, #92 ; 0x5c
|
|
8b98: 189b adds r3, r3, r2
|
|
8b9a: 2200 movs r2, #0
|
|
8b9c: 5e9b ldrsh r3, [r3, r2]
|
|
8b9e: 9315 str r3, [sp, #84] ; 0x54
|
|
8ba0: 466b mov r3, sp
|
|
8ba2: 2290 movs r2, #144 ; 0x90
|
|
8ba4: 189b adds r3, r3, r2
|
|
8ba6: 801e strh r6, [r3, #0]
|
|
uint32_t bpp = g->bpp;
|
|
8ba8: ab3c add r3, sp, #240 ; 0xf0
|
|
8baa: 7a9b ldrb r3, [r3, #10]
|
|
8bac: 001e movs r6, r3
|
|
if(bpp == 3) bpp = 4;
|
|
8bae: 2b03 cmp r3, #3
|
|
8bb0: d100 bne.n 8bb4 <lv_draw_label+0x9a0>
|
|
8bb2: e60e b.n 87d2 <lv_draw_label+0x5be>
|
|
switch(bpp) {
|
|
8bb4: 2b02 cmp r3, #2
|
|
8bb6: d100 bne.n 8bba <lv_draw_label+0x9a6>
|
|
8bb8: e52b b.n 8612 <lv_draw_label+0x3fe>
|
|
8bba: d900 bls.n 8bbe <lv_draw_label+0x9aa>
|
|
8bbc: e51d b.n 85fa <lv_draw_label+0x3e6>
|
|
8bbe: 2b01 cmp r3, #1
|
|
8bc0: d000 beq.n 8bc4 <lv_draw_label+0x9b0>
|
|
8bc2: e745 b.n 8a50 <lv_draw_label+0x83c>
|
|
uint32_t bpp = g->bpp;
|
|
8bc4: 2601 movs r6, #1
|
|
bitmask_init = 0x80;
|
|
8bc6: 2380 movs r3, #128 ; 0x80
|
|
8bc8: 9320 str r3, [sp, #128] ; 0x80
|
|
bpp_opa_table = _lv_bpp1_opa_table;
|
|
8bca: 4b3a ldr r3, [pc, #232] ; (8cb4 <lv_draw_label+0xaa0>)
|
|
8bcc: 9323 str r3, [sp, #140] ; 0x8c
|
|
8bce: e524 b.n 861a <lv_draw_label+0x406>
|
|
draw_letter_normal(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
|
|
8bd0: 4643 mov r3, r8
|
|
8bd2: b21b sxth r3, r3
|
|
8bd4: 469c mov ip, r3
|
|
8bd6: 466b mov r3, sp
|
|
8bd8: 225c movs r2, #92 ; 0x5c
|
|
8bda: 189b adds r3, r3, r2
|
|
8bdc: 2200 movs r2, #0
|
|
8bde: 5e9b ldrsh r3, [r3, r2]
|
|
8be0: 9321 str r3, [sp, #132] ; 0x84
|
|
8be2: 466b mov r3, sp
|
|
8be4: 22a0 movs r2, #160 ; 0xa0
|
|
8be6: 189b adds r3, r3, r2
|
|
8be8: 801e strh r6, [r3, #0]
|
|
uint32_t bpp = g->bpp;
|
|
8bea: ab3c add r3, sp, #240 ; 0xf0
|
|
8bec: 7a9b ldrb r3, [r3, #10]
|
|
8bee: 9320 str r3, [sp, #128] ; 0x80
|
|
if(bpp == 3) bpp = 4;
|
|
8bf0: 2b03 cmp r3, #3
|
|
8bf2: d033 beq.n 8c5c <lv_draw_label+0xa48>
|
|
switch(bpp) {
|
|
8bf4: 2b02 cmp r3, #2
|
|
8bf6: d019 beq.n 8c2c <lv_draw_label+0xa18>
|
|
8bf8: d80a bhi.n 8c10 <lv_draw_label+0x9fc>
|
|
8bfa: 2b01 cmp r3, #1
|
|
8bfc: d000 beq.n 8c00 <lv_draw_label+0x9ec>
|
|
8bfe: e727 b.n 8a50 <lv_draw_label+0x83c>
|
|
uint32_t bpp = g->bpp;
|
|
8c00: 2301 movs r3, #1
|
|
8c02: 9320 str r3, [sp, #128] ; 0x80
|
|
shades = 2;
|
|
8c04: 2102 movs r1, #2
|
|
bitmask_init = 0x80;
|
|
8c06: 337f adds r3, #127 ; 0x7f
|
|
8c08: 9315 str r3, [sp, #84] ; 0x54
|
|
bpp_opa_table_p = _lv_bpp1_opa_table;
|
|
8c0a: 4b2a ldr r3, [pc, #168] ; (8cb4 <lv_draw_label+0xaa0>)
|
|
8c0c: 9327 str r3, [sp, #156] ; 0x9c
|
|
8c0e: e012 b.n 8c36 <lv_draw_label+0xa22>
|
|
switch(bpp) {
|
|
8c10: 2b04 cmp r3, #4
|
|
8c12: d025 beq.n 8c60 <lv_draw_label+0xa4c>
|
|
8c14: 2b08 cmp r3, #8
|
|
8c16: d000 beq.n 8c1a <lv_draw_label+0xa06>
|
|
8c18: e71a b.n 8a50 <lv_draw_label+0x83c>
|
|
uint32_t bpp = g->bpp;
|
|
8c1a: 2308 movs r3, #8
|
|
8c1c: 9320 str r3, [sp, #128] ; 0x80
|
|
shades = 256;
|
|
8c1e: 2180 movs r1, #128 ; 0x80
|
|
8c20: 0049 lsls r1, r1, #1
|
|
bitmask_init = 0xFF;
|
|
8c22: 33f7 adds r3, #247 ; 0xf7
|
|
8c24: 9315 str r3, [sp, #84] ; 0x54
|
|
bpp_opa_table_p = _lv_bpp8_opa_table;
|
|
8c26: 4b24 ldr r3, [pc, #144] ; (8cb8 <lv_draw_label+0xaa4>)
|
|
8c28: 9327 str r3, [sp, #156] ; 0x9c
|
|
8c2a: e004 b.n 8c36 <lv_draw_label+0xa22>
|
|
shades = 4;
|
|
8c2c: 2104 movs r1, #4
|
|
bitmask_init = 0xC0;
|
|
8c2e: 23c0 movs r3, #192 ; 0xc0
|
|
8c30: 9315 str r3, [sp, #84] ; 0x54
|
|
bpp_opa_table_p = _lv_bpp2_opa_table;
|
|
8c32: 4b22 ldr r3, [pc, #136] ; (8cbc <lv_draw_label+0xaa8>)
|
|
8c34: 9327 str r3, [sp, #156] ; 0x9c
|
|
if(opa < LV_OPA_MAX) {
|
|
8c36: 9a1c ldr r2, [sp, #112] ; 0x70
|
|
8c38: 2af9 cmp r2, #249 ; 0xf9
|
|
8c3a: d857 bhi.n 8cec <lv_draw_label+0xad8>
|
|
if(prev_opa != opa || prev_bpp != bpp) {
|
|
8c3c: 4b20 ldr r3, [pc, #128] ; (8cc0 <lv_draw_label+0xaac>)
|
|
8c3e: 781b ldrb r3, [r3, #0]
|
|
8c40: 4293 cmp r3, r2
|
|
8c42: d013 beq.n 8c6c <lv_draw_label+0xa58>
|
|
for(i = 0; i < shades; i++) {
|
|
8c44: 2200 movs r2, #0
|
|
8c46: 2900 cmp r1, #0
|
|
8c48: d045 beq.n 8cd6 <lv_draw_label+0xac2>
|
|
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
|
|
8c4a: 9e1c ldr r6, [sp, #112] ; 0x70
|
|
8c4c: 481d ldr r0, [pc, #116] ; (8cc4 <lv_draw_label+0xab0>)
|
|
8c4e: 465b mov r3, fp
|
|
8c50: 9319 str r3, [sp, #100] ; 0x64
|
|
8c52: 46a3 mov fp, r4
|
|
8c54: 0034 movs r4, r6
|
|
8c56: 9605 str r6, [sp, #20]
|
|
8c58: 9e27 ldr r6, [sp, #156] ; 0x9c
|
|
8c5a: e012 b.n 8c82 <lv_draw_label+0xa6e>
|
|
if(bpp == 3) bpp = 4;
|
|
8c5c: 2304 movs r3, #4
|
|
8c5e: 9320 str r3, [sp, #128] ; 0x80
|
|
shades = 16;
|
|
8c60: 2110 movs r1, #16
|
|
bitmask_init = 0xF0;
|
|
8c62: 23f0 movs r3, #240 ; 0xf0
|
|
8c64: 9315 str r3, [sp, #84] ; 0x54
|
|
bpp_opa_table_p = _lv_bpp4_opa_table;
|
|
8c66: 4b18 ldr r3, [pc, #96] ; (8cc8 <lv_draw_label+0xab4>)
|
|
8c68: 9327 str r3, [sp, #156] ; 0x9c
|
|
8c6a: e7e4 b.n 8c36 <lv_draw_label+0xa22>
|
|
if(prev_opa != opa || prev_bpp != bpp) {
|
|
8c6c: 4b17 ldr r3, [pc, #92] ; (8ccc <lv_draw_label+0xab8>)
|
|
8c6e: 681b ldr r3, [r3, #0]
|
|
8c70: 9a20 ldr r2, [sp, #128] ; 0x80
|
|
8c72: 429a cmp r2, r3
|
|
8c74: d1e6 bne.n 8c44 <lv_draw_label+0xa30>
|
|
8c76: e02e b.n 8cd6 <lv_draw_label+0xac2>
|
|
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
|
|
8c78: 9b05 ldr r3, [sp, #20]
|
|
8c7a: 5413 strb r3, [r2, r0]
|
|
for(i = 0; i < shades; i++) {
|
|
8c7c: 3201 adds r2, #1
|
|
8c7e: 428a cmp r2, r1
|
|
8c80: d026 beq.n 8cd0 <lv_draw_label+0xabc>
|
|
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
|
|
8c82: 5cb3 ldrb r3, [r6, r2]
|
|
8c84: 2bff cmp r3, #255 ; 0xff
|
|
8c86: d0f7 beq.n 8c78 <lv_draw_label+0xa64>
|
|
8c88: 4363 muls r3, r4
|
|
8c8a: 0a1b lsrs r3, r3, #8
|
|
8c8c: e7f5 b.n 8c7a <lv_draw_label+0xa66>
|
|
8c8e: 46c0 nop ; (mov r8, r8)
|
|
8c90: 0000a625 .word 0x0000a625
|
|
8c94: 0001104d .word 0x0001104d
|
|
8c98: 00006951 .word 0x00006951
|
|
8c9c: 00010bd5 .word 0x00010bd5
|
|
8ca0: 0000ffff .word 0x0000ffff
|
|
8ca4: 20000058 .word 0x20000058
|
|
8ca8: 0000e769 .word 0x0000e769
|
|
8cac: 0000e761 .word 0x0000e761
|
|
8cb0: 0000e759 .word 0x0000e759
|
|
8cb4: 000187fc .word 0x000187fc
|
|
8cb8: 00018814 .word 0x00018814
|
|
8cbc: 00018800 .word 0x00018800
|
|
8cc0: 20002bb4 .word 0x20002bb4
|
|
8cc4: 20002ab0 .word 0x20002ab0
|
|
8cc8: 00018804 .word 0x00018804
|
|
8ccc: 20002bb0 .word 0x20002bb0
|
|
8cd0: 465c mov r4, fp
|
|
8cd2: 9b19 ldr r3, [sp, #100] ; 0x64
|
|
8cd4: 469b mov fp, r3
|
|
prev_opa = opa;
|
|
8cd6: 4bd7 ldr r3, [pc, #860] ; (9034 <lv_draw_label+0xe20>)
|
|
8cd8: 466a mov r2, sp
|
|
8cda: 2170 movs r1, #112 ; 0x70
|
|
8cdc: 1852 adds r2, r2, r1
|
|
8cde: 7812 ldrb r2, [r2, #0]
|
|
8ce0: 701a strb r2, [r3, #0]
|
|
prev_bpp = bpp;
|
|
8ce2: 4bd5 ldr r3, [pc, #852] ; (9038 <lv_draw_label+0xe24>)
|
|
8ce4: 9a20 ldr r2, [sp, #128] ; 0x80
|
|
8ce6: 601a str r2, [r3, #0]
|
|
bpp_opa_table_p = opa_table;
|
|
8ce8: 4bd4 ldr r3, [pc, #848] ; (903c <lv_draw_label+0xe28>)
|
|
8cea: 9327 str r3, [sp, #156] ; 0x9c
|
|
int32_t box_w = g->box_w;
|
|
8cec: ab3c add r3, sp, #240 ; 0xf0
|
|
8cee: 885a ldrh r2, [r3, #2]
|
|
8cf0: 9205 str r2, [sp, #20]
|
|
int32_t box_h = g->box_h;
|
|
8cf2: 8899 ldrh r1, [r3, #4]
|
|
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
|
|
8cf4: 9820 ldr r0, [sp, #128] ; 0x80
|
|
8cf6: 4350 muls r0, r2
|
|
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
|
|
8cf8: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8cfa: 2200 movs r2, #0
|
|
8cfc: 5e9b ldrsh r3, [r3, r2]
|
|
8cfe: 2200 movs r2, #0
|
|
8d00: 9219 str r2, [sp, #100] ; 0x64
|
|
8d02: 459c cmp ip, r3
|
|
8d04: da02 bge.n 8d0c <lv_draw_label+0xaf8>
|
|
8d06: 4662 mov r2, ip
|
|
8d08: 1a9b subs r3, r3, r2
|
|
8d0a: 9319 str r3, [sp, #100] ; 0x64
|
|
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
|
|
8d0c: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8d0e: 2204 movs r2, #4
|
|
8d10: 5e9b ldrsh r3, [r3, r2]
|
|
8d12: 9e05 ldr r6, [sp, #20]
|
|
8d14: 0032 movs r2, r6
|
|
8d16: 4462 add r2, ip
|
|
8d18: 961b str r6, [sp, #108] ; 0x6c
|
|
8d1a: 429a cmp r2, r3
|
|
8d1c: dd03 ble.n 8d26 <lv_draw_label+0xb12>
|
|
8d1e: 4662 mov r2, ip
|
|
8d20: 1a9b subs r3, r3, r2
|
|
8d22: 3301 adds r3, #1
|
|
8d24: 931b str r3, [sp, #108] ; 0x6c
|
|
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
|
|
8d26: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8d28: 2202 movs r2, #2
|
|
8d2a: 5e9b ldrsh r3, [r3, r2]
|
|
8d2c: 2200 movs r2, #0
|
|
8d2e: 921a str r2, [sp, #104] ; 0x68
|
|
8d30: 9e21 ldr r6, [sp, #132] ; 0x84
|
|
8d32: 429e cmp r6, r3
|
|
8d34: da01 bge.n 8d3a <lv_draw_label+0xb26>
|
|
8d36: 1b9b subs r3, r3, r6
|
|
8d38: 931a str r3, [sp, #104] ; 0x68
|
|
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
|
|
8d3a: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8d3c: 2206 movs r2, #6
|
|
8d3e: 5e9a ldrsh r2, [r3, r2]
|
|
8d40: 9e21 ldr r6, [sp, #132] ; 0x84
|
|
8d42: 198b adds r3, r1, r6
|
|
8d44: 9122 str r1, [sp, #136] ; 0x88
|
|
8d46: 4293 cmp r3, r2
|
|
8d48: dd02 ble.n 8d50 <lv_draw_label+0xb3c>
|
|
8d4a: 1b92 subs r2, r2, r6
|
|
8d4c: 1c53 adds r3, r2, #1
|
|
8d4e: 9322 str r3, [sp, #136] ; 0x88
|
|
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
|
|
8d50: 9b19 ldr r3, [sp, #100] ; 0x64
|
|
8d52: 9326 str r3, [sp, #152] ; 0x98
|
|
8d54: 9a1a ldr r2, [sp, #104] ; 0x68
|
|
8d56: 4350 muls r0, r2
|
|
8d58: 9a20 ldr r2, [sp, #128] ; 0x80
|
|
8d5a: 435a muls r2, r3
|
|
8d5c: 1880 adds r0, r0, r2
|
|
map_p += bit_ofs >> 3;
|
|
8d5e: 08c6 lsrs r6, r0, #3
|
|
8d60: 19ae adds r6, r5, r6
|
|
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
|
|
8d62: 2507 movs r5, #7
|
|
8d64: 4005 ands r5, r0
|
|
uint32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : box_w * box_h;
|
|
8d66: 9b05 ldr r3, [sp, #20]
|
|
8d68: 434b muls r3, r1
|
|
8d6a: 001a movs r2, r3
|
|
8d6c: 9323 str r3, [sp, #140] ; 0x8c
|
|
8d6e: 23f0 movs r3, #240 ; 0xf0
|
|
8d70: 005b lsls r3, r3, #1
|
|
8d72: 429a cmp r2, r3
|
|
8d74: dd00 ble.n 8d78 <lv_draw_label+0xb64>
|
|
8d76: 9323 str r3, [sp, #140] ; 0x8c
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
8d78: 9823 ldr r0, [sp, #140] ; 0x8c
|
|
8d7a: 4bb1 ldr r3, [pc, #708] ; (9040 <lv_draw_label+0xe2c>)
|
|
8d7c: 4798 blx r3
|
|
8d7e: 9021 str r0, [sp, #132] ; 0x84
|
|
fill_area.x1 = col_start + pos_x;
|
|
8d80: 4643 mov r3, r8
|
|
8d82: 466a mov r2, sp
|
|
8d84: 2190 movs r1, #144 ; 0x90
|
|
8d86: 1852 adds r2, r2, r1
|
|
8d88: 8013 strh r3, [r2, #0]
|
|
8d8a: 466b mov r3, sp
|
|
8d8c: 2290 movs r2, #144 ; 0x90
|
|
8d8e: 189b adds r3, r3, r2
|
|
8d90: 8819 ldrh r1, [r3, #0]
|
|
8d92: ab3a add r3, sp, #232 ; 0xe8
|
|
8d94: 9a19 ldr r2, [sp, #100] ; 0x64
|
|
8d96: 188a adds r2, r1, r2
|
|
8d98: 801a strh r2, [r3, #0]
|
|
fill_area.x2 = col_end + pos_x - 1;
|
|
8d9a: 1e4a subs r2, r1, #1
|
|
8d9c: 991b ldr r1, [sp, #108] ; 0x6c
|
|
8d9e: 468c mov ip, r1
|
|
8da0: 4462 add r2, ip
|
|
8da2: 809a strh r2, [r3, #4]
|
|
fill_area.y1 = row_start + pos_y;
|
|
8da4: 9817 ldr r0, [sp, #92] ; 0x5c
|
|
8da6: 0002 movs r2, r0
|
|
8da8: 981a ldr r0, [sp, #104] ; 0x68
|
|
8daa: 4684 mov ip, r0
|
|
8dac: 4462 add r2, ip
|
|
8dae: b212 sxth r2, r2
|
|
8db0: 805a strh r2, [r3, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
8db2: 80da strh r2, [r3, #6]
|
|
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
8db4: 4ba3 ldr r3, [pc, #652] ; (9044 <lv_draw_label+0xe30>)
|
|
8db6: 4798 blx r3
|
|
8db8: 9024 str r0, [sp, #144] ; 0x90
|
|
uint32_t col_bit_max = 8 - bpp;
|
|
8dba: 2308 movs r3, #8
|
|
8dbc: 9a20 ldr r2, [sp, #128] ; 0x80
|
|
8dbe: 1a9b subs r3, r3, r2
|
|
8dc0: 4698 mov r8, r3
|
|
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
|
|
8dc2: 9b05 ldr r3, [sp, #20]
|
|
8dc4: 9919 ldr r1, [sp, #100] ; 0x64
|
|
8dc6: 468c mov ip, r1
|
|
8dc8: 4463 add r3, ip
|
|
8dca: 991b ldr r1, [sp, #108] ; 0x6c
|
|
8dcc: 1a5b subs r3, r3, r1
|
|
8dce: 0011 movs r1, r2
|
|
8dd0: 435a muls r2, r3
|
|
8dd2: 9225 str r2, [sp, #148] ; 0x94
|
|
for(row = row_start ; row < row_end; row++) {
|
|
8dd4: 981a ldr r0, [sp, #104] ; 0x68
|
|
8dd6: 9b22 ldr r3, [sp, #136] ; 0x88
|
|
8dd8: 4298 cmp r0, r3
|
|
8dda: db00 blt.n 8dde <lv_draw_label+0xbca>
|
|
8ddc: e09d b.n 8f1a <lv_draw_label+0xd06>
|
|
8dde: 2300 movs r3, #0
|
|
8de0: 9317 str r3, [sp, #92] ; 0x5c
|
|
mask_buf[mask_p] = 0;
|
|
8de2: 465b mov r3, fp
|
|
8de4: 9329 str r3, [sp, #164] ; 0xa4
|
|
8de6: 4653 mov r3, sl
|
|
8de8: 932a str r3, [sp, #168] ; 0xa8
|
|
8dea: 9b27 ldr r3, [sp, #156] ; 0x9c
|
|
8dec: 469a mov sl, r3
|
|
8dee: 9427 str r4, [sp, #156] ; 0x9c
|
|
8df0: 4643 mov r3, r8
|
|
8df2: 9320 str r3, [sp, #128] ; 0x80
|
|
8df4: 4688 mov r8, r1
|
|
8df6: 972b str r7, [sp, #172] ; 0xac
|
|
8df8: e039 b.n 8e6e <lv_draw_label+0xc5a>
|
|
8dfa: 2300 movs r3, #0
|
|
8dfc: 7013 strb r3, [r2, #0]
|
|
8dfe: e012 b.n 8e26 <lv_draw_label+0xc12>
|
|
map_p++;
|
|
8e00: 3601 adds r6, #1
|
|
bitmask = bitmask_init;
|
|
8e02: 9915 ldr r1, [sp, #84] ; 0x54
|
|
col_bit = 0;
|
|
8e04: 2500 movs r5, #0
|
|
8e06: 3201 adds r2, #1
|
|
for(col = col_start; col < col_end; col++) {
|
|
8e08: 9b05 ldr r3, [sp, #20]
|
|
8e0a: 4293 cmp r3, r2
|
|
8e0c: d010 beq.n 8e30 <lv_draw_label+0xc1c>
|
|
letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit);
|
|
8e0e: 7833 ldrb r3, [r6, #0]
|
|
8e10: 400b ands r3, r1
|
|
8e12: 1b60 subs r0, r4, r5
|
|
8e14: 40c3 lsrs r3, r0
|
|
if(letter_px) {
|
|
8e16: b2d8 uxtb r0, r3
|
|
8e18: 2800 cmp r0, #0
|
|
8e1a: d0ee beq.n 8dfa <lv_draw_label+0xbe6>
|
|
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
|
|
8e1c: 4658 mov r0, fp
|
|
8e1e: 4003 ands r3, r0
|
|
8e20: 4650 mov r0, sl
|
|
8e22: 5cc3 ldrb r3, [r0, r3]
|
|
8e24: 7013 strb r3, [r2, #0]
|
|
if(col_bit < col_bit_max) {
|
|
8e26: 42ac cmp r4, r5
|
|
8e28: d9ea bls.n 8e00 <lv_draw_label+0xbec>
|
|
col_bit += bpp;
|
|
8e2a: 19ed adds r5, r5, r7
|
|
bitmask = bitmask >> bpp;
|
|
8e2c: 40f9 lsrs r1, r7
|
|
8e2e: e7ea b.n 8e06 <lv_draw_label+0xbf2>
|
|
8e30: 46b8 mov r8, r7
|
|
8e32: 9420 str r4, [sp, #128] ; 0x80
|
|
8e34: 4667 mov r7, ip
|
|
if(other_mask_cnt) {
|
|
8e36: 9b24 ldr r3, [sp, #144] ; 0x90
|
|
8e38: 2b00 cmp r3, #0
|
|
8e3a: d133 bne.n 8ea4 <lv_draw_label+0xc90>
|
|
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
|
|
8e3c: 9b1b ldr r3, [sp, #108] ; 0x6c
|
|
8e3e: 9a19 ldr r2, [sp, #100] ; 0x64
|
|
8e40: 1a9b subs r3, r3, r2
|
|
8e42: 19db adds r3, r3, r7
|
|
8e44: 9a23 ldr r2, [sp, #140] ; 0x8c
|
|
8e46: 429a cmp r2, r3
|
|
8e48: d949 bls.n 8ede <lv_draw_label+0xcca>
|
|
fill_area.y2 ++;
|
|
8e4a: aa3a add r2, sp, #232 ; 0xe8
|
|
8e4c: 88d3 ldrh r3, [r2, #6]
|
|
8e4e: 3301 adds r3, #1
|
|
8e50: 80d3 strh r3, [r2, #6]
|
|
8e52: 9717 str r7, [sp, #92] ; 0x5c
|
|
col_bit += col_bit_row_ofs;
|
|
8e54: 9b25 ldr r3, [sp, #148] ; 0x94
|
|
8e56: 469c mov ip, r3
|
|
8e58: 4465 add r5, ip
|
|
map_p += (col_bit >> 3);
|
|
8e5a: 08eb lsrs r3, r5, #3
|
|
8e5c: 18f6 adds r6, r6, r3
|
|
col_bit = col_bit & 0x7;
|
|
8e5e: 2307 movs r3, #7
|
|
8e60: 401d ands r5, r3
|
|
for(row = row_start ; row < row_end; row++) {
|
|
8e62: 9b1a ldr r3, [sp, #104] ; 0x68
|
|
8e64: 3301 adds r3, #1
|
|
8e66: 931a str r3, [sp, #104] ; 0x68
|
|
8e68: 9a22 ldr r2, [sp, #136] ; 0x88
|
|
8e6a: 4293 cmp r3, r2
|
|
8e6c: da4f bge.n 8f0e <lv_draw_label+0xcfa>
|
|
bitmask = bitmask_init >> col_bit;
|
|
8e6e: 9915 ldr r1, [sp, #84] ; 0x54
|
|
8e70: 40e9 lsrs r1, r5
|
|
for(col = col_start; col < col_end; col++) {
|
|
8e72: 9b19 ldr r3, [sp, #100] ; 0x64
|
|
8e74: 001a movs r2, r3
|
|
8e76: 981b ldr r0, [sp, #108] ; 0x6c
|
|
8e78: 4282 cmp r2, r0
|
|
8e7a: da11 bge.n 8ea0 <lv_draw_label+0xc8c>
|
|
8e7c: 9f21 ldr r7, [sp, #132] ; 0x84
|
|
8e7e: 003a movs r2, r7
|
|
8e80: 9c17 ldr r4, [sp, #92] ; 0x5c
|
|
8e82: 46a4 mov ip, r4
|
|
8e84: 4462 add r2, ip
|
|
8e86: 0003 movs r3, r0
|
|
8e88: 9826 ldr r0, [sp, #152] ; 0x98
|
|
8e8a: 1a1b subs r3, r3, r0
|
|
8e8c: 449c add ip, r3
|
|
8e8e: 003b movs r3, r7
|
|
8e90: 4463 add r3, ip
|
|
8e92: 0018 movs r0, r3
|
|
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
|
|
8e94: 23ff movs r3, #255 ; 0xff
|
|
8e96: 469b mov fp, r3
|
|
8e98: 9005 str r0, [sp, #20]
|
|
8e9a: 4647 mov r7, r8
|
|
8e9c: 9c20 ldr r4, [sp, #128] ; 0x80
|
|
8e9e: e7b6 b.n 8e0e <lv_draw_label+0xbfa>
|
|
for(col = col_start; col < col_end; col++) {
|
|
8ea0: 9f17 ldr r7, [sp, #92] ; 0x5c
|
|
8ea2: e7c8 b.n 8e36 <lv_draw_label+0xc22>
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2,
|
|
8ea4: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
8ea6: 9a21 ldr r2, [sp, #132] ; 0x84
|
|
8ea8: 4694 mov ip, r2
|
|
8eaa: 4463 add r3, ip
|
|
8eac: 469b mov fp, r3
|
|
8eae: aa3a add r2, sp, #232 ; 0xe8
|
|
8eb0: 2300 movs r3, #0
|
|
8eb2: 5ed1 ldrsh r1, [r2, r3]
|
|
8eb4: 8893 ldrh r3, [r2, #4]
|
|
8eb6: 3301 adds r3, #1
|
|
8eb8: 1a5b subs r3, r3, r1
|
|
8eba: b21b sxth r3, r3
|
|
8ebc: 2006 movs r0, #6
|
|
8ebe: 5e12 ldrsh r2, [r2, r0]
|
|
8ec0: 4658 mov r0, fp
|
|
8ec2: 4c61 ldr r4, [pc, #388] ; (9048 <lv_draw_label+0xe34>)
|
|
8ec4: 47a0 blx r4
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
|
|
8ec6: 2800 cmp r0, #0
|
|
8ec8: d1b8 bne.n 8e3c <lv_draw_label+0xc28>
|
|
8eca: ab3a add r3, sp, #232 ; 0xe8
|
|
8ecc: 8899 ldrh r1, [r3, #4]
|
|
8ece: 3101 adds r1, #1
|
|
8ed0: 881b ldrh r3, [r3, #0]
|
|
8ed2: 1ac9 subs r1, r1, r3
|
|
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area));
|
|
8ed4: b209 sxth r1, r1
|
|
8ed6: 4658 mov r0, fp
|
|
8ed8: 4b5c ldr r3, [pc, #368] ; (904c <lv_draw_label+0xe38>)
|
|
8eda: 4798 blx r3
|
|
8edc: e7ae b.n 8e3c <lv_draw_label+0xc28>
|
|
_lv_blend_fill(clip_area, &fill_area,
|
|
8ede: af3a add r7, sp, #232 ; 0xe8
|
|
8ee0: 9b13 ldr r3, [sp, #76] ; 0x4c
|
|
8ee2: 9302 str r3, [sp, #8]
|
|
8ee4: 23ff movs r3, #255 ; 0xff
|
|
8ee6: 9301 str r3, [sp, #4]
|
|
8ee8: 3bfd subs r3, #253 ; 0xfd
|
|
8eea: 9300 str r3, [sp, #0]
|
|
8eec: 9b21 ldr r3, [sp, #132] ; 0x84
|
|
8eee: 466a mov r2, sp
|
|
8ef0: 21a0 movs r1, #160 ; 0xa0
|
|
8ef2: 1852 adds r2, r2, r1
|
|
8ef4: 8812 ldrh r2, [r2, #0]
|
|
8ef6: 0039 movs r1, r7
|
|
8ef8: 980e ldr r0, [sp, #56] ; 0x38
|
|
8efa: 4c55 ldr r4, [pc, #340] ; (9050 <lv_draw_label+0xe3c>)
|
|
8efc: 47a0 blx r4
|
|
fill_area.y1 = fill_area.y2 + 1;
|
|
8efe: 88fb ldrh r3, [r7, #6]
|
|
8f00: 3301 adds r3, #1
|
|
8f02: b21b sxth r3, r3
|
|
8f04: 807b strh r3, [r7, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
8f06: 80fb strh r3, [r7, #6]
|
|
mask_p = 0;
|
|
8f08: 2300 movs r3, #0
|
|
8f0a: 9317 str r3, [sp, #92] ; 0x5c
|
|
8f0c: e7a2 b.n 8e54 <lv_draw_label+0xc40>
|
|
8f0e: 9b29 ldr r3, [sp, #164] ; 0xa4
|
|
8f10: 469b mov fp, r3
|
|
8f12: 9b2a ldr r3, [sp, #168] ; 0xa8
|
|
8f14: 469a mov sl, r3
|
|
8f16: 9c27 ldr r4, [sp, #156] ; 0x9c
|
|
8f18: 9f2b ldr r7, [sp, #172] ; 0xac
|
|
if(fill_area.y1 != fill_area.y2) {
|
|
8f1a: aa3a add r2, sp, #232 ; 0xe8
|
|
8f1c: 2106 movs r1, #6
|
|
8f1e: 5e53 ldrsh r3, [r2, r1]
|
|
8f20: 2102 movs r1, #2
|
|
8f22: 5e52 ldrsh r2, [r2, r1]
|
|
8f24: 429a cmp r2, r3
|
|
8f26: d010 beq.n 8f4a <lv_draw_label+0xd36>
|
|
fill_area.y2--;
|
|
8f28: a93a add r1, sp, #232 ; 0xe8
|
|
8f2a: 3b01 subs r3, #1
|
|
8f2c: 80cb strh r3, [r1, #6]
|
|
_lv_blend_fill(clip_area, &fill_area,
|
|
8f2e: 9b13 ldr r3, [sp, #76] ; 0x4c
|
|
8f30: 9302 str r3, [sp, #8]
|
|
8f32: 23ff movs r3, #255 ; 0xff
|
|
8f34: 9301 str r3, [sp, #4]
|
|
8f36: 3bfd subs r3, #253 ; 0xfd
|
|
8f38: 9300 str r3, [sp, #0]
|
|
8f3a: 9b21 ldr r3, [sp, #132] ; 0x84
|
|
8f3c: 466a mov r2, sp
|
|
8f3e: 20a0 movs r0, #160 ; 0xa0
|
|
8f40: 1812 adds r2, r2, r0
|
|
8f42: 8812 ldrh r2, [r2, #0]
|
|
8f44: 980e ldr r0, [sp, #56] ; 0x38
|
|
8f46: 4d42 ldr r5, [pc, #264] ; (9050 <lv_draw_label+0xe3c>)
|
|
8f48: 47a8 blx r5
|
|
_lv_mem_buf_release(mask_buf);
|
|
8f4a: 9821 ldr r0, [sp, #132] ; 0x84
|
|
8f4c: 4b41 ldr r3, [pc, #260] ; (9054 <lv_draw_label+0xe40>)
|
|
8f4e: 4798 blx r3
|
|
8f50: e57e b.n 8a50 <lv_draw_label+0x83c>
|
|
cmd_state = CMD_STATE_WAIT;
|
|
8f52: 2300 movs r3, #0
|
|
8f54: 9309 str r3, [sp, #36] ; 0x24
|
|
8f56: e584 b.n 8a62 <lv_draw_label+0x84e>
|
|
8f58: 46d0 mov r8, sl
|
|
8f5a: 46a2 mov sl, r4
|
|
8f5c: 003e movs r6, r7
|
|
if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) {
|
|
8f5e: 7e3b ldrb r3, [r7, #24]
|
|
8f60: 079b lsls r3, r3, #30
|
|
8f62: d447 bmi.n 8ff4 <lv_draw_label+0xde0>
|
|
if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) {
|
|
8f64: 7e33 ldrb r3, [r6, #24]
|
|
8f66: 07db lsls r3, r3, #31
|
|
8f68: d500 bpl.n 8f6c <lv_draw_label+0xd58>
|
|
8f6a: e07b b.n 9064 <lv_draw_label+0xe50>
|
|
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
8f6c: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
8f6e: 001f movs r7, r3
|
|
8f70: 9d0b ldr r5, [sp, #44] ; 0x2c
|
|
8f72: 46ac mov ip, r5
|
|
8f74: 4467 add r7, ip
|
|
8f76: 230c movs r3, #12
|
|
8f78: 5ef2 ldrsh r2, [r6, r3]
|
|
8f7a: 7df3 ldrb r3, [r6, #23]
|
|
8f7c: 9300 str r3, [sp, #0]
|
|
8f7e: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
8f80: 9907 ldr r1, [sp, #28]
|
|
8f82: 0038 movs r0, r7
|
|
8f84: 4c34 ldr r4, [pc, #208] ; (9058 <lv_draw_label+0xe44>)
|
|
8f86: 47a0 blx r4
|
|
8f88: 1944 adds r4, r0, r5
|
|
pos.x = coords->x1;
|
|
8f8a: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
8f8c: 2500 movs r5, #0
|
|
8f8e: 5f5d ldrsh r5, [r3, r5]
|
|
if(dsc->flag & LV_TXT_FLAG_CENTER) {
|
|
8f90: 7df2 ldrb r2, [r6, #23]
|
|
8f92: 0753 lsls r3, r2, #29
|
|
8f94: d500 bpl.n 8f98 <lv_draw_label+0xd84>
|
|
8f96: e084 b.n 90a2 <lv_draw_label+0xe8e>
|
|
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
|
|
8f98: 0713 lsls r3, r2, #28
|
|
8f9a: d500 bpl.n 8f9e <lv_draw_label+0xd8a>
|
|
8f9c: e096 b.n 90cc <lv_draw_label+0xeb8>
|
|
8f9e: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
8fa0: 9918 ldr r1, [sp, #96] ; 0x60
|
|
8fa2: 468c mov ip, r1
|
|
8fa4: 4463 add r3, ip
|
|
8fa6: 9a14 ldr r2, [sp, #80] ; 0x50
|
|
8fa8: 4462 add r2, ip
|
|
8faa: b292 uxth r2, r2
|
|
8fac: 9214 str r2, [sp, #80] ; 0x50
|
|
line_start = line_end;
|
|
8fae: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
8fb0: 4693 mov fp, r2
|
|
pos.y += line_height;
|
|
8fb2: b21b sxth r3, r3
|
|
8fb4: 001a movs r2, r3
|
|
8fb6: 9311 str r3, [sp, #68] ; 0x44
|
|
if(pos.y > mask->y2) return;
|
|
8fb8: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
8fba: 2106 movs r1, #6
|
|
8fbc: 5e5b ldrsh r3, [r3, r1]
|
|
8fbe: 4293 cmp r3, r2
|
|
8fc0: da01 bge.n 8fc6 <lv_draw_label+0xdb2>
|
|
8fc2: f7ff f93b bl 823c <lv_draw_label+0x28>
|
|
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
|
|
8fc6: 940b str r4, [sp, #44] ; 0x2c
|
|
while(txt[line_start] != '\0') {
|
|
8fc8: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
8fca: 445b add r3, fp
|
|
8fcc: 930c str r3, [sp, #48] ; 0x30
|
|
8fce: 781b ldrb r3, [r3, #0]
|
|
8fd0: 2b00 cmp r3, #0
|
|
8fd2: d101 bne.n 8fd8 <lv_draw_label+0xdc4>
|
|
8fd4: f7ff f932 bl 823c <lv_draw_label+0x28>
|
|
pos.x += x_ofs;
|
|
8fd8: 9b1e ldr r3, [sp, #120] ; 0x78
|
|
8fda: 469c mov ip, r3
|
|
8fdc: 4465 add r5, ip
|
|
8fde: b22b sxth r3, r5
|
|
8fe0: 469a mov sl, r3
|
|
i = 0;
|
|
8fe2: 2300 movs r3, #0
|
|
8fe4: 9354 str r3, [sp, #336] ; 0x150
|
|
cmd_state = CMD_STATE_WAIT;
|
|
8fe6: 9309 str r3, [sp, #36] ; 0x24
|
|
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
|
|
8fe8: 4b1c ldr r3, [pc, #112] ; (905c <lv_draw_label+0xe48>)
|
|
8fea: 4699 mov r9, r3
|
|
8fec: 4654 mov r4, sl
|
|
8fee: 46c2 mov sl, r8
|
|
8ff0: 0037 movs r7, r6
|
|
while(i < line_end - line_start) {
|
|
8ff2: e536 b.n 8a62 <lv_draw_label+0x84e>
|
|
p1.x = pos_x_start;
|
|
8ff4: a83a add r0, sp, #232 ; 0xe8
|
|
8ff6: 466b mov r3, sp
|
|
8ff8: 227c movs r2, #124 ; 0x7c
|
|
8ffa: 189b adds r3, r3, r2
|
|
8ffc: 881b ldrh r3, [r3, #0]
|
|
8ffe: 8003 strh r3, [r0, #0]
|
|
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
|
|
9000: 687b ldr r3, [r7, #4]
|
|
9002: 2208 movs r2, #8
|
|
9004: 5e9b ldrsh r3, [r3, r2]
|
|
9006: 0fda lsrs r2, r3, #31
|
|
9008: 18d2 adds r2, r2, r3
|
|
900a: 1052 asrs r2, r2, #1
|
|
900c: ab55 add r3, sp, #340 ; 0x154
|
|
900e: 2102 movs r1, #2
|
|
9010: 5e5c ldrsh r4, [r3, r1]
|
|
9012: 0fe1 lsrs r1, r4, #31
|
|
9014: 1909 adds r1, r1, r4
|
|
9016: 1049 asrs r1, r1, #1
|
|
9018: 1852 adds r2, r2, r1
|
|
901a: 9914 ldr r1, [sp, #80] ; 0x50
|
|
901c: 468c mov ip, r1
|
|
901e: 4462 add r2, ip
|
|
9020: b212 sxth r2, r2
|
|
9022: 8042 strh r2, [r0, #2]
|
|
p2.x = pos.x;
|
|
9024: a93c add r1, sp, #240 ; 0xf0
|
|
9026: 4654 mov r4, sl
|
|
9028: 800c strh r4, [r1, #0]
|
|
p2.y = p1.y;
|
|
902a: 804a strh r2, [r1, #2]
|
|
lv_draw_line(&p1, &p2, mask, &line_dsc);
|
|
902c: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
902e: 4c0c ldr r4, [pc, #48] ; (9060 <lv_draw_label+0xe4c>)
|
|
9030: 47a0 blx r4
|
|
9032: e797 b.n 8f64 <lv_draw_label+0xd50>
|
|
9034: 20002bb4 .word 0x20002bb4
|
|
9038: 20002bb0 .word 0x20002bb0
|
|
903c: 20002ab0 .word 0x20002ab0
|
|
9040: 00010ec1 .word 0x00010ec1
|
|
9044: 0000a6c1 .word 0x0000a6c1
|
|
9048: 0000a625 .word 0x0000a625
|
|
904c: 0001104d .word 0x0001104d
|
|
9050: 00005c6d .word 0x00005c6d
|
|
9054: 00010bd5 .word 0x00010bd5
|
|
9058: 000117c9 .word 0x000117c9
|
|
905c: 20000054 .word 0x20000054
|
|
9060: 00009131 .word 0x00009131
|
|
p1.x = pos_x_start;
|
|
9064: a83a add r0, sp, #232 ; 0xe8
|
|
9066: 466b mov r3, sp
|
|
9068: 227c movs r2, #124 ; 0x7c
|
|
906a: 189b adds r3, r3, r2
|
|
906c: 881b ldrh r3, [r3, #0]
|
|
906e: 8003 strh r3, [r0, #0]
|
|
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
|
|
9070: 6871 ldr r1, [r6, #4]
|
|
9072: ab55 add r3, sp, #340 ; 0x154
|
|
9074: 2202 movs r2, #2
|
|
9076: 5e9c ldrsh r4, [r3, r2]
|
|
9078: 0fe2 lsrs r2, r4, #31
|
|
907a: 1912 adds r2, r2, r4
|
|
907c: 1052 asrs r2, r2, #1
|
|
907e: 3201 adds r2, #1
|
|
9080: 890c ldrh r4, [r1, #8]
|
|
9082: 1912 adds r2, r2, r4
|
|
9084: 8949 ldrh r1, [r1, #10]
|
|
9086: 1a52 subs r2, r2, r1
|
|
9088: 9914 ldr r1, [sp, #80] ; 0x50
|
|
908a: 468c mov ip, r1
|
|
908c: 4462 add r2, ip
|
|
908e: b212 sxth r2, r2
|
|
9090: 8042 strh r2, [r0, #2]
|
|
p2.x = pos.x;
|
|
9092: a93c add r1, sp, #240 ; 0xf0
|
|
9094: 4654 mov r4, sl
|
|
9096: 800c strh r4, [r1, #0]
|
|
p2.y = p1.y;
|
|
9098: 804a strh r2, [r1, #2]
|
|
lv_draw_line(&p1, &p2, mask, &line_dsc);
|
|
909a: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
909c: 4c16 ldr r4, [pc, #88] ; (90f8 <lv_draw_label+0xee4>)
|
|
909e: 47a0 blx r4
|
|
90a0: e764 b.n 8f6c <lv_draw_label+0xd58>
|
|
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
|
|
90a2: 210c movs r1, #12
|
|
90a4: 5e73 ldrsh r3, [r6, r1]
|
|
90a6: 9200 str r2, [sp, #0]
|
|
90a8: 9a07 ldr r2, [sp, #28]
|
|
90aa: 0001 movs r1, r0
|
|
90ac: 0038 movs r0, r7
|
|
90ae: 4f13 ldr r7, [pc, #76] ; (90fc <lv_draw_label+0xee8>)
|
|
90b0: 47b8 blx r7
|
|
90b2: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
90b4: 8893 ldrh r3, [r2, #4]
|
|
90b6: 3301 adds r3, #1
|
|
90b8: 8812 ldrh r2, [r2, #0]
|
|
90ba: 1a9b subs r3, r3, r2
|
|
pos.x += (lv_area_get_width(coords) - line_width) / 2;
|
|
90bc: b21b sxth r3, r3
|
|
90be: 1a18 subs r0, r3, r0
|
|
90c0: 0fc3 lsrs r3, r0, #31
|
|
90c2: 1818 adds r0, r3, r0
|
|
90c4: 1040 asrs r0, r0, #1
|
|
90c6: 1945 adds r5, r0, r5
|
|
90c8: b22d sxth r5, r5
|
|
90ca: e768 b.n 8f9e <lv_draw_label+0xd8a>
|
|
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
|
|
90cc: 210c movs r1, #12
|
|
90ce: 5e73 ldrsh r3, [r6, r1]
|
|
90d0: 9200 str r2, [sp, #0]
|
|
90d2: 9a07 ldr r2, [sp, #28]
|
|
90d4: 0001 movs r1, r0
|
|
90d6: 0038 movs r0, r7
|
|
90d8: 4f08 ldr r7, [pc, #32] ; (90fc <lv_draw_label+0xee8>)
|
|
90da: 47b8 blx r7
|
|
90dc: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
90de: 8893 ldrh r3, [r2, #4]
|
|
90e0: 3301 adds r3, #1
|
|
90e2: 8812 ldrh r2, [r2, #0]
|
|
90e4: 1a9b subs r3, r3, r2
|
|
pos.x += lv_area_get_width(coords) - line_width;
|
|
90e6: b21b sxth r3, r3
|
|
90e8: 1a18 subs r0, r3, r0
|
|
90ea: 1945 adds r5, r0, r5
|
|
90ec: b22d sxth r5, r5
|
|
90ee: e756 b.n 8f9e <lv_draw_label+0xd8a>
|
|
cmd_state = CMD_STATE_WAIT;
|
|
90f0: 2300 movs r3, #0
|
|
90f2: 9309 str r3, [sp, #36] ; 0x24
|
|
90f4: f7ff f9fb bl 84ee <lv_draw_label+0x2da>
|
|
90f8: 00009131 .word 0x00009131
|
|
90fc: 00011a41 .word 0x00011a41
|
|
|
|
00009100 <lv_draw_line_dsc_init>:
|
|
/**********************
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc)
|
|
{
|
|
9100: b510 push {r4, lr}
|
|
9102: 0004 movs r4, r0
|
|
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
|
|
9104: 210a movs r1, #10
|
|
9106: 4b08 ldr r3, [pc, #32] ; (9128 <lv_draw_line_dsc_init+0x28>)
|
|
9108: 4798 blx r3
|
|
dsc->width = 1;
|
|
910a: 2301 movs r3, #1
|
|
910c: 8063 strh r3, [r4, #2]
|
|
dsc->opa = LV_OPA_COVER;
|
|
910e: 33fe adds r3, #254 ; 0xfe
|
|
9110: 7223 strb r3, [r4, #8]
|
|
dsc->color = LV_COLOR_BLACK;
|
|
9112: 7823 ldrb r3, [r4, #0]
|
|
9114: 221f movs r2, #31
|
|
9116: 4393 bics r3, r2
|
|
9118: 7023 strb r3, [r4, #0]
|
|
911a: 8823 ldrh r3, [r4, #0]
|
|
911c: 4a03 ldr r2, [pc, #12] ; (912c <lv_draw_line_dsc_init+0x2c>)
|
|
911e: 4013 ands r3, r2
|
|
9120: 8023 strh r3, [r4, #0]
|
|
9122: 2300 movs r3, #0
|
|
9124: 7063 strb r3, [r4, #1]
|
|
}
|
|
9126: bd10 pop {r4, pc}
|
|
9128: 0001104d .word 0x0001104d
|
|
912c: fffff81f .word 0xfffff81f
|
|
|
|
00009130 <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)
|
|
{
|
|
9130: b5f0 push {r4, r5, r6, r7, lr}
|
|
9132: 46de mov lr, fp
|
|
9134: 4657 mov r7, sl
|
|
9136: 464e mov r6, r9
|
|
9138: 4645 mov r5, r8
|
|
913a: b5e0 push {r5, r6, r7, lr}
|
|
913c: b0cb sub sp, #300 ; 0x12c
|
|
913e: 9005 str r0, [sp, #20]
|
|
9140: 000e movs r6, r1
|
|
9142: 9106 str r1, [sp, #24]
|
|
9144: 9207 str r2, [sp, #28]
|
|
9146: 001c movs r4, r3
|
|
if(dsc->width == 0) return;
|
|
9148: 2202 movs r2, #2
|
|
914a: 5e9b ldrsh r3, [r3, r2]
|
|
914c: 2b00 cmp r3, #0
|
|
914e: d101 bne.n 9154 <lv_draw_line+0x24>
|
|
9150: f000 fc46 bl 99e0 <lv_draw_line+0x8b0>
|
|
if(dsc->opa <= LV_OPA_MIN) return;
|
|
9154: 7a22 ldrb r2, [r4, #8]
|
|
9156: 2a05 cmp r2, #5
|
|
9158: d801 bhi.n 915e <lv_draw_line+0x2e>
|
|
915a: f000 fc41 bl 99e0 <lv_draw_line+0x8b0>
|
|
|
|
if(point1->x == point2->x && point1->y == point2->y) return;
|
|
915e: 0002 movs r2, r0
|
|
9160: 2000 movs r0, #0
|
|
9162: 5e11 ldrsh r1, [r2, r0]
|
|
9164: 2500 movs r5, #0
|
|
9166: 5f70 ldrsh r0, [r6, r5]
|
|
9168: 4281 cmp r1, r0
|
|
916a: d100 bne.n 916e <lv_draw_line+0x3e>
|
|
916c: e12b b.n 93c6 <lv_draw_line+0x296>
|
|
|
|
lv_area_t clip_line;
|
|
clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2;
|
|
916e: 0fda lsrs r2, r3, #31
|
|
9170: 18d3 adds r3, r2, r3
|
|
9172: 105b asrs r3, r3, #1
|
|
9174: b29b uxth r3, r3
|
|
9176: 1c0a adds r2, r1, #0
|
|
9178: 4281 cmp r1, r0
|
|
917a: dd00 ble.n 917e <lv_draw_line+0x4e>
|
|
917c: 1c02 adds r2, r0, #0
|
|
917e: 1ad2 subs r2, r2, r3
|
|
9180: ad48 add r5, sp, #288 ; 0x120
|
|
9182: 802a strh r2, [r5, #0]
|
|
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
|
|
9184: 1c0a adds r2, r1, #0
|
|
9186: 4281 cmp r1, r0
|
|
9188: da00 bge.n 918c <lv_draw_line+0x5c>
|
|
918a: 1c02 adds r2, r0, #0
|
|
918c: 189a adds r2, r3, r2
|
|
918e: a948 add r1, sp, #288 ; 0x120
|
|
9190: 808a strh r2, [r1, #4]
|
|
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
|
|
9192: 9a06 ldr r2, [sp, #24]
|
|
9194: 2102 movs r1, #2
|
|
9196: 5e52 ldrsh r2, [r2, r1]
|
|
9198: 9905 ldr r1, [sp, #20]
|
|
919a: 2002 movs r0, #2
|
|
919c: 5e08 ldrsh r0, [r1, r0]
|
|
919e: 1c11 adds r1, r2, #0
|
|
91a0: 4282 cmp r2, r0
|
|
91a2: dd00 ble.n 91a6 <lv_draw_line+0x76>
|
|
91a4: 1c01 adds r1, r0, #0
|
|
91a6: 1ac9 subs r1, r1, r3
|
|
91a8: ad48 add r5, sp, #288 ; 0x120
|
|
91aa: 8069 strh r1, [r5, #2]
|
|
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
|
|
91ac: 1c11 adds r1, r2, #0
|
|
91ae: 4282 cmp r2, r0
|
|
91b0: da00 bge.n 91b4 <lv_draw_line+0x84>
|
|
91b2: 1c01 adds r1, r0, #0
|
|
91b4: 185b adds r3, r3, r1
|
|
91b6: aa48 add r2, sp, #288 ; 0x120
|
|
91b8: 80d3 strh r3, [r2, #6]
|
|
|
|
bool is_common;
|
|
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
|
|
91ba: 9a07 ldr r2, [sp, #28]
|
|
91bc: a948 add r1, sp, #288 ; 0x120
|
|
91be: 0008 movs r0, r1
|
|
91c0: 4bd5 ldr r3, [pc, #852] ; (9518 <lv_draw_line+0x3e8>)
|
|
91c2: 4798 blx r3
|
|
if(!is_common) return;
|
|
91c4: 2800 cmp r0, #0
|
|
91c6: d101 bne.n 91cc <lv_draw_line+0x9c>
|
|
91c8: f000 fc0a bl 99e0 <lv_draw_line+0x8b0>
|
|
|
|
if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc);
|
|
91cc: 9b05 ldr r3, [sp, #20]
|
|
91ce: 2602 movs r6, #2
|
|
91d0: 5f9e ldrsh r6, [r3, r6]
|
|
91d2: 9b06 ldr r3, [sp, #24]
|
|
91d4: 2502 movs r5, #2
|
|
91d6: 5f5d ldrsh r5, [r3, r5]
|
|
91d8: 42ae cmp r6, r5
|
|
91da: d100 bne.n 91de <lv_draw_line+0xae>
|
|
91dc: e0fc b.n 93d8 <lv_draw_line+0x2a8>
|
|
else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc);
|
|
91de: 9b05 ldr r3, [sp, #20]
|
|
91e0: 2200 movs r2, #0
|
|
91e2: 5e9a ldrsh r2, [r3, r2]
|
|
91e4: 0011 movs r1, r2
|
|
91e6: 9208 str r2, [sp, #32]
|
|
91e8: 9b06 ldr r3, [sp, #24]
|
|
91ea: 2200 movs r2, #0
|
|
91ec: 5e9b ldrsh r3, [r3, r2]
|
|
91ee: 469a mov sl, r3
|
|
91f0: 4551 cmp r1, sl
|
|
91f2: d100 bne.n 91f6 <lv_draw_line+0xc6>
|
|
91f4: e206 b.n 9604 <lv_draw_line+0x4d4>
|
|
lv_draw_line_dsc_t * dsc)
|
|
{
|
|
/*Keep the great y in p1*/
|
|
lv_point_t p1;
|
|
lv_point_t p2;
|
|
if(point1->y < point2->y) {
|
|
91f6: 42ae cmp r6, r5
|
|
91f8: db06 blt.n 9208 <lv_draw_line+0xd8>
|
|
91fa: 0033 movs r3, r6
|
|
p2.y = point2->y;
|
|
p1.x = point1->x;
|
|
p2.x = point2->x;
|
|
}
|
|
else {
|
|
p1.y = point2->y;
|
|
91fc: 002e movs r6, r5
|
|
p2.y = point1->y;
|
|
91fe: 001d movs r5, r3
|
|
if(point1->y < point2->y) {
|
|
9200: 9b08 ldr r3, [sp, #32]
|
|
p1.x = point2->x;
|
|
9202: 4652 mov r2, sl
|
|
9204: 9208 str r2, [sp, #32]
|
|
p2.x = point1->x;
|
|
9206: 469a mov sl, r3
|
|
}
|
|
|
|
int32_t xdiff = p2.x - p1.x;
|
|
9208: 4653 mov r3, sl
|
|
920a: 9a08 ldr r2, [sp, #32]
|
|
920c: 1a9b subs r3, r3, r2
|
|
920e: 9309 str r3, [sp, #36] ; 0x24
|
|
int32_t ydiff = p2.y - p1.y;
|
|
9210: 1baa subs r2, r5, r6
|
|
9212: 920a str r2, [sp, #40] ; 0x28
|
|
bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false;
|
|
9214: 17d9 asrs r1, r3, #31
|
|
9216: 185b adds r3, r3, r1
|
|
9218: 404b eors r3, r1
|
|
921a: 4699 mov r9, r3
|
|
921c: 17d1 asrs r1, r2, #31
|
|
921e: 1853 adds r3, r2, r1
|
|
9220: 404b eors r3, r1
|
|
9222: 469b mov fp, r3
|
|
143, 145, 147, 149, 151, 153, 155, 158,
|
|
160, 162, 165, 167, 170, 173, 175, 178,
|
|
181,
|
|
};
|
|
|
|
int32_t w = dsc->width;
|
|
9224: 2202 movs r2, #2
|
|
9226: 5ea3 ldrsh r3, [r4, r2]
|
|
9228: 4698 mov r8, r3
|
|
int32_t wcorr_i = 0;
|
|
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
|
|
922a: 45d9 cmp r9, fp
|
|
922c: dc00 bgt.n 9230 <lv_draw_line+0x100>
|
|
922e: e2d0 b.n 97d2 <lv_draw_line+0x6a2>
|
|
9230: 465b mov r3, fp
|
|
9232: 0158 lsls r0, r3, #5
|
|
9234: 4649 mov r1, r9
|
|
9236: 4bb9 ldr r3, [pc, #740] ; (951c <lv_draw_line+0x3ec>)
|
|
9238: 4798 blx r3
|
|
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
|
|
|
|
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
|
|
923a: 4bb9 ldr r3, [pc, #740] ; (9520 <lv_draw_line+0x3f0>)
|
|
923c: 5c1b ldrb r3, [r3, r0]
|
|
923e: 4642 mov r2, r8
|
|
9240: 435a muls r2, r3
|
|
9242: 0013 movs r3, r2
|
|
9244: 223f movs r2, #63 ; 0x3f
|
|
9246: 4690 mov r8, r2
|
|
9248: 4498 add r8, r3
|
|
924a: 4643 mov r3, r8
|
|
924c: 11db asrs r3, r3, #7
|
|
924e: 001f movs r7, r3
|
|
int32_t w_half0 = w >> 1;
|
|
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
|
|
|
|
lv_area_t draw_area;
|
|
draw_area.x1 = LV_MATH_MIN(p1.x, p2.x) - w;
|
|
9250: b29b uxth r3, r3
|
|
9252: 4652 mov r2, sl
|
|
9254: 9808 ldr r0, [sp, #32]
|
|
9256: 4582 cmp sl, r0
|
|
9258: dd00 ble.n 925c <lv_draw_line+0x12c>
|
|
925a: 1c02 adds r2, r0, #0
|
|
925c: 1ad2 subs r2, r2, r3
|
|
925e: a90e add r1, sp, #56 ; 0x38
|
|
9260: 800a strh r2, [r1, #0]
|
|
draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w;
|
|
9262: 4652 mov r2, sl
|
|
9264: 9808 ldr r0, [sp, #32]
|
|
9266: 4582 cmp sl, r0
|
|
9268: da00 bge.n 926c <lv_draw_line+0x13c>
|
|
926a: 1c02 adds r2, r0, #0
|
|
926c: 189a adds r2, r3, r2
|
|
926e: a90e add r1, sp, #56 ; 0x38
|
|
9270: 808a strh r2, [r1, #4]
|
|
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
|
|
9272: 1c2a adds r2, r5, #0
|
|
9274: 42b5 cmp r5, r6
|
|
9276: dd00 ble.n 927a <lv_draw_line+0x14a>
|
|
9278: 1c32 adds r2, r6, #0
|
|
927a: 1ad2 subs r2, r2, r3
|
|
927c: a90e add r1, sp, #56 ; 0x38
|
|
927e: 804a strh r2, [r1, #2]
|
|
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
|
|
9280: 1c2a adds r2, r5, #0
|
|
9282: 42b5 cmp r5, r6
|
|
9284: da00 bge.n 9288 <lv_draw_line+0x158>
|
|
9286: 1c32 adds r2, r6, #0
|
|
9288: 189b adds r3, r3, r2
|
|
928a: aa0e add r2, sp, #56 ; 0x38
|
|
928c: 80d3 strh r3, [r2, #6]
|
|
|
|
/* Get the union of `coords` and `clip`*/
|
|
/* `clip` is already truncated to the `vdb` size
|
|
* in 'lv_refr_area' function */
|
|
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
|
|
928e: aa48 add r2, sp, #288 ; 0x120
|
|
9290: a90e add r1, sp, #56 ; 0x38
|
|
9292: 0008 movs r0, r1
|
|
9294: 4ba0 ldr r3, [pc, #640] ; (9518 <lv_draw_line+0x3e8>)
|
|
9296: 4798 blx r3
|
|
if(is_common == false) return;
|
|
9298: 2800 cmp r0, #0
|
|
929a: d100 bne.n 929e <lv_draw_line+0x16e>
|
|
929c: e39c b.n 99d8 <lv_draw_line+0x8a8>
|
|
int32_t w_half0 = w >> 1;
|
|
929e: 4643 mov r3, r8
|
|
92a0: 121b asrs r3, r3, #8
|
|
92a2: 4698 mov r8, r3
|
|
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
|
|
92a4: 2301 movs r3, #1
|
|
92a6: 403b ands r3, r7
|
|
92a8: 4443 add r3, r8
|
|
92aa: 930b str r3, [sp, #44] ; 0x2c
|
|
lv_draw_mask_line_param_t mask_left_param;
|
|
lv_draw_mask_line_param_t mask_right_param;
|
|
lv_draw_mask_line_param_t mask_top_param;
|
|
lv_draw_mask_line_param_t mask_bottom_param;
|
|
|
|
if(flat) {
|
|
92ac: 45d9 cmp r9, fp
|
|
92ae: dc00 bgt.n 92b2 <lv_draw_line+0x182>
|
|
92b0: e2ba b.n 9828 <lv_draw_line+0x6f8>
|
|
if(xdiff > 0) {
|
|
92b2: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
92b4: 2a00 cmp r2, #0
|
|
92b6: dc00 bgt.n 92ba <lv_draw_line+0x18a>
|
|
92b8: e291 b.n 97de <lv_draw_line+0x6ae>
|
|
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
|
|
92ba: b2b2 uxth r2, r6
|
|
92bc: 4641 mov r1, r8
|
|
92be: 466b mov r3, sp
|
|
92c0: 8619 strh r1, [r3, #48] ; 0x30
|
|
92c2: b28b uxth r3, r1
|
|
92c4: b2a9 uxth r1, r5
|
|
92c6: 4693 mov fp, r2
|
|
92c8: 1ad2 subs r2, r2, r3
|
|
92ca: b212 sxth r2, r2
|
|
92cc: 2000 movs r0, #0
|
|
92ce: 9001 str r0, [sp, #4]
|
|
92d0: 4689 mov r9, r1
|
|
92d2: 1acb subs r3, r1, r3
|
|
92d4: b21b sxth r3, r3
|
|
92d6: 9300 str r3, [sp, #0]
|
|
92d8: 4653 mov r3, sl
|
|
92da: 9908 ldr r1, [sp, #32]
|
|
92dc: a812 add r0, sp, #72 ; 0x48
|
|
92de: 4f91 ldr r7, [pc, #580] ; (9524 <lv_draw_line+0x3f4>)
|
|
92e0: 47b8 blx r7
|
|
LV_DRAW_MASK_LINE_SIDE_LEFT);
|
|
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
|
|
92e2: 466b mov r3, sp
|
|
92e4: 8d9b ldrh r3, [r3, #44] ; 0x2c
|
|
92e6: 465a mov r2, fp
|
|
92e8: 18d2 adds r2, r2, r3
|
|
92ea: b212 sxth r2, r2
|
|
92ec: 2101 movs r1, #1
|
|
92ee: 9101 str r1, [sp, #4]
|
|
92f0: 444b add r3, r9
|
|
92f2: b21b sxth r3, r3
|
|
92f4: 9300 str r3, [sp, #0]
|
|
92f6: 4653 mov r3, sl
|
|
92f8: 9908 ldr r1, [sp, #32]
|
|
92fa: a81d add r0, sp, #116 ; 0x74
|
|
92fc: 47b8 blx r7
|
|
LV_DRAW_MASK_LINE_SIDE_RIGHT);
|
|
}
|
|
|
|
/*Use the normal vector for the endings*/
|
|
|
|
int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL);
|
|
92fe: 2100 movs r1, #0
|
|
9300: a812 add r0, sp, #72 ; 0x48
|
|
9302: 4b89 ldr r3, [pc, #548] ; (9528 <lv_draw_line+0x3f8>)
|
|
9304: 4698 mov r8, r3
|
|
9306: 4798 blx r3
|
|
9308: 900b str r0, [sp, #44] ; 0x2c
|
|
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
|
|
930a: 2100 movs r1, #0
|
|
930c: a81d add r0, sp, #116 ; 0x74
|
|
930e: 47c0 blx r8
|
|
9310: 900c str r0, [sp, #48] ; 0x30
|
|
int16_t mask_top_id = LV_MASK_ID_INV;
|
|
int16_t mask_bottom_id = LV_MASK_ID_INV;
|
|
|
|
if(!dsc->raw_end) {
|
|
9312: 7a63 ldrb r3, [r4, #9]
|
|
9314: 06db lsls r3, r3, #27
|
|
9316: d400 bmi.n 931a <lv_draw_line+0x1ea>
|
|
9318: e2ac b.n 9874 <lv_draw_line+0x744>
|
|
int16_t mask_bottom_id = LV_MASK_ID_INV;
|
|
931a: 2301 movs r3, #1
|
|
931c: 425b negs r3, r3
|
|
931e: 930d str r3, [sp, #52] ; 0x34
|
|
int16_t mask_top_id = LV_MASK_ID_INV;
|
|
9320: 930a str r3, [sp, #40] ; 0x28
|
|
lv_draw_mask_line_points_init(&mask_bottom_param, p2.x, p2.y, p2.x - ydiff, p2.y + xdiff, LV_DRAW_MASK_LINE_SIDE_TOP);
|
|
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
|
|
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
|
|
}
|
|
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
9322: 4b82 ldr r3, [pc, #520] ; (952c <lv_draw_line+0x3fc>)
|
|
9324: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
9326: 4b82 ldr r3, [pc, #520] ; (9530 <lv_draw_line+0x400>)
|
|
9328: 4798 blx r3
|
|
932a: 4681 mov r9, r0
|
|
|
|
const lv_area_t * disp_area = &vdb->area;
|
|
|
|
/*Store the coordinates of the `draw_a` relative to the VDB */
|
|
draw_area.x1 -= disp_area->x1;
|
|
932c: 8a02 ldrh r2, [r0, #16]
|
|
932e: a80e add r0, sp, #56 ; 0x38
|
|
9330: 8805 ldrh r5, [r0, #0]
|
|
9332: 1aad subs r5, r5, r2
|
|
9334: b2ab uxth r3, r5
|
|
9336: 8003 strh r3, [r0, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
9338: 4649 mov r1, r9
|
|
933a: 8a49 ldrh r1, [r1, #18]
|
|
933c: 8845 ldrh r5, [r0, #2]
|
|
933e: 1a6d subs r5, r5, r1
|
|
9340: 8045 strh r5, [r0, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
9342: 8885 ldrh r5, [r0, #4]
|
|
9344: 1aad subs r5, r5, r2
|
|
9346: b2ad uxth r5, r5
|
|
9348: 8085 strh r5, [r0, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
934a: 88c2 ldrh r2, [r0, #6]
|
|
934c: 1a52 subs r2, r2, r1
|
|
934e: 80c2 strh r2, [r0, #6]
|
|
9350: 3501 adds r5, #1
|
|
9352: 1aed subs r5, r5, r3
|
|
9354: b22d sxth r5, r5
|
|
* So deal with it only with steep lines. */
|
|
int32_t draw_area_w = lv_area_get_width(&draw_area);
|
|
|
|
/*Draw the background line by line*/
|
|
int32_t h;
|
|
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
|
|
9356: 4b77 ldr r3, [pc, #476] ; (9534 <lv_draw_line+0x404>)
|
|
9358: 4798 blx r3
|
|
935a: 23e0 movs r3, #224 ; 0xe0
|
|
935c: 33ff adds r3, #255 ; 0xff
|
|
935e: 4298 cmp r0, r3
|
|
9360: d800 bhi.n 9364 <lv_draw_line+0x234>
|
|
9362: e2b3 b.n 98cc <lv_draw_line+0x79c>
|
|
9364: 23f0 movs r3, #240 ; 0xf0
|
|
9366: 005b lsls r3, r3, #1
|
|
9368: 469b mov fp, r3
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
|
|
936a: 4658 mov r0, fp
|
|
936c: 4b72 ldr r3, [pc, #456] ; (9538 <lv_draw_line+0x408>)
|
|
936e: 4798 blx r3
|
|
9370: 4680 mov r8, r0
|
|
|
|
lv_area_t fill_area;
|
|
fill_area.x1 = draw_area.x1 + disp_area->x1;
|
|
9372: 464b mov r3, r9
|
|
9374: 8a1b ldrh r3, [r3, #16]
|
|
9376: af0e add r7, sp, #56 ; 0x38
|
|
9378: 883a ldrh r2, [r7, #0]
|
|
937a: 189a adds r2, r3, r2
|
|
937c: b212 sxth r2, r2
|
|
937e: 0011 movs r1, r2
|
|
9380: 9209 str r2, [sp, #36] ; 0x24
|
|
9382: aa10 add r2, sp, #64 ; 0x40
|
|
9384: 8011 strh r1, [r2, #0]
|
|
fill_area.x2 = draw_area.x2 + disp_area->x1;
|
|
9386: 88b9 ldrh r1, [r7, #4]
|
|
9388: 185b adds r3, r3, r1
|
|
938a: 8093 strh r3, [r2, #4]
|
|
fill_area.y1 = draw_area.y1 + disp_area->y1;
|
|
938c: 887b ldrh r3, [r7, #2]
|
|
938e: 4649 mov r1, r9
|
|
9390: 8a49 ldrh r1, [r1, #18]
|
|
9392: 185b adds r3, r3, r1
|
|
9394: b21b sxth r3, r3
|
|
9396: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
9398: 80d3 strh r3, [r2, #6]
|
|
|
|
int32_t x = vdb->area.x1 + draw_area.x1;
|
|
|
|
uint32_t mask_p = 0;
|
|
|
|
_lv_memset_ff(mask_buf, mask_buf_size);
|
|
939a: 4659 mov r1, fp
|
|
939c: 4b67 ldr r3, [pc, #412] ; (953c <lv_draw_line+0x40c>)
|
|
939e: 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++) {
|
|
93a0: 464b mov r3, r9
|
|
93a2: 2212 movs r2, #18
|
|
93a4: 5e9a ldrsh r2, [r3, r2]
|
|
93a6: 2302 movs r3, #2
|
|
93a8: 5efe ldrsh r6, [r7, r3]
|
|
93aa: 18b6 adds r6, r6, r2
|
|
93ac: 2106 movs r1, #6
|
|
93ae: 5e7b ldrsh r3, [r7, r1]
|
|
93b0: 189b adds r3, r3, r2
|
|
93b2: 429e cmp r6, r3
|
|
93b4: dd00 ble.n 93b8 <lv_draw_line+0x288>
|
|
93b6: e2ec b.n 9992 <lv_draw_line+0x862>
|
|
93b8: 2700 movs r7, #0
|
|
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
|
|
93ba: 4b61 ldr r3, [pc, #388] ; (9540 <lv_draw_line+0x410>)
|
|
93bc: 469a mov sl, r3
|
|
mask_p += draw_area_w;
|
|
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
|
|
fill_area.y2 ++;
|
|
}
|
|
else {
|
|
_lv_blend_fill(&fill_area, clip,
|
|
93be: 0023 movs r3, r4
|
|
93c0: 4644 mov r4, r8
|
|
93c2: 4698 mov r8, r3
|
|
93c4: e2d0 b.n 9968 <lv_draw_line+0x838>
|
|
if(point1->x == point2->x && point1->y == point2->y) return;
|
|
93c6: 2502 movs r5, #2
|
|
93c8: 5f55 ldrsh r5, [r2, r5]
|
|
93ca: 0032 movs r2, r6
|
|
93cc: 2602 movs r6, #2
|
|
93ce: 5f92 ldrsh r2, [r2, r6]
|
|
93d0: 4295 cmp r5, r2
|
|
93d2: d000 beq.n 93d6 <lv_draw_line+0x2a6>
|
|
93d4: e6cb b.n 916e <lv_draw_line+0x3e>
|
|
93d6: e303 b.n 99e0 <lv_draw_line+0x8b0>
|
|
lv_opa_t opa = dsc->opa;
|
|
93d8: 7a23 ldrb r3, [r4, #8]
|
|
93da: 4698 mov r8, r3
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
93dc: 4b53 ldr r3, [pc, #332] ; (952c <lv_draw_line+0x3fc>)
|
|
93de: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
93e0: 4b53 ldr r3, [pc, #332] ; (9530 <lv_draw_line+0x400>)
|
|
93e2: 4798 blx r3
|
|
93e4: 4681 mov r9, r0
|
|
int32_t w = dsc->width - 1;
|
|
93e6: 2202 movs r2, #2
|
|
93e8: 5ea3 ldrsh r3, [r4, r2]
|
|
93ea: 3b01 subs r3, #1
|
|
int32_t w_half0 = w >> 1;
|
|
93ec: 105e asrs r6, r3, #1
|
|
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
|
|
93ee: 2501 movs r5, #1
|
|
93f0: 401d ands r5, r3
|
|
93f2: 19ad adds r5, r5, r6
|
|
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
|
|
93f4: 2306 movs r3, #6
|
|
93f6: 5ee2 ldrsh r2, [r4, r3]
|
|
93f8: 2300 movs r3, #0
|
|
93fa: 2a00 cmp r2, #0
|
|
93fc: d004 beq.n 9408 <lv_draw_line+0x2d8>
|
|
93fe: 2204 movs r2, #4
|
|
9400: 5ea3 ldrsh r3, [r4, r2]
|
|
9402: 1e5a subs r2, r3, #1
|
|
9404: 4193 sbcs r3, r2
|
|
9406: b2db uxtb r3, r3
|
|
9408: 001f movs r7, r3
|
|
940a: 9309 str r3, [sp, #36] ; 0x24
|
|
if(lv_draw_mask_get_cnt()) simple_mode = false;
|
|
940c: 4b4d ldr r3, [pc, #308] ; (9544 <lv_draw_line+0x414>)
|
|
940e: 4798 blx r3
|
|
9410: 2100 movs r1, #0
|
|
9412: 2800 cmp r0, #0
|
|
9414: d101 bne.n 941a <lv_draw_line+0x2ea>
|
|
else if(dashed) simple_mode = false;
|
|
9416: 3101 adds r1, #1
|
|
9418: 4079 eors r1, r7
|
|
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
|
|
941a: 9b06 ldr r3, [sp, #24]
|
|
941c: 2200 movs r2, #0
|
|
941e: 5e9b ldrsh r3, [r3, r2]
|
|
9420: 9a05 ldr r2, [sp, #20]
|
|
9422: 2000 movs r0, #0
|
|
9424: 5e10 ldrsh r0, [r2, r0]
|
|
9426: 1c1a adds r2, r3, #0
|
|
9428: 4283 cmp r3, r0
|
|
942a: dd00 ble.n 942e <lv_draw_line+0x2fe>
|
|
942c: 1c02 adds r2, r0, #0
|
|
942e: af28 add r7, sp, #160 ; 0xa0
|
|
9430: 803a strh r2, [r7, #0]
|
|
draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1;
|
|
9432: 1c1a adds r2, r3, #0
|
|
9434: 4283 cmp r3, r0
|
|
9436: da00 bge.n 943a <lv_draw_line+0x30a>
|
|
9438: 1c02 adds r2, r0, #0
|
|
943a: 3a01 subs r2, #1
|
|
943c: ab28 add r3, sp, #160 ; 0xa0
|
|
943e: 809a strh r2, [r3, #4]
|
|
draw_area.y1 = point1->y - w_half1;
|
|
9440: 9b05 ldr r3, [sp, #20]
|
|
9442: 885b ldrh r3, [r3, #2]
|
|
9444: aa28 add r2, sp, #160 ; 0xa0
|
|
9446: 1b5d subs r5, r3, r5
|
|
9448: 8055 strh r5, [r2, #2]
|
|
draw_area.y2 = point1->y + w_half0;
|
|
944a: 199e adds r6, r3, r6
|
|
944c: 80d6 strh r6, [r2, #6]
|
|
if(simple_mode) {
|
|
944e: 2900 cmp r1, #0
|
|
9450: d00e beq.n 9470 <lv_draw_line+0x340>
|
|
_lv_blend_fill(clip, &draw_area,
|
|
9452: 8822 ldrh r2, [r4, #0]
|
|
dsc->blend_mode);
|
|
9454: 7a63 ldrb r3, [r4, #9]
|
|
9456: 079b lsls r3, r3, #30
|
|
_lv_blend_fill(clip, &draw_area,
|
|
9458: 0f9b lsrs r3, r3, #30
|
|
945a: 9302 str r3, [sp, #8]
|
|
945c: 4643 mov r3, r8
|
|
945e: 9301 str r3, [sp, #4]
|
|
9460: 2301 movs r3, #1
|
|
9462: 9300 str r3, [sp, #0]
|
|
9464: 2300 movs r3, #0
|
|
9466: a928 add r1, sp, #160 ; 0xa0
|
|
9468: a848 add r0, sp, #288 ; 0x120
|
|
946a: 4d37 ldr r5, [pc, #220] ; (9548 <lv_draw_line+0x418>)
|
|
946c: 47a8 blx r5
|
|
946e: e2b3 b.n 99d8 <lv_draw_line+0x8a8>
|
|
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
|
|
9470: aa28 add r2, sp, #160 ; 0xa0
|
|
9472: a948 add r1, sp, #288 ; 0x120
|
|
9474: 0010 movs r0, r2
|
|
9476: 4b28 ldr r3, [pc, #160] ; (9518 <lv_draw_line+0x3e8>)
|
|
9478: 4798 blx r3
|
|
if(!is_common) return;
|
|
947a: 2800 cmp r0, #0
|
|
947c: d100 bne.n 9480 <lv_draw_line+0x350>
|
|
947e: e2ab b.n 99d8 <lv_draw_line+0x8a8>
|
|
draw_area.x1 -= disp_area->x1;
|
|
9480: aa28 add r2, sp, #160 ; 0xa0
|
|
9482: 2300 movs r3, #0
|
|
9484: 5ed7 ldrsh r7, [r2, r3]
|
|
9486: 464b mov r3, r9
|
|
9488: 2110 movs r1, #16
|
|
948a: 5e5b ldrsh r3, [r3, r1]
|
|
948c: 469b mov fp, r3
|
|
948e: 4669 mov r1, sp
|
|
9490: 840b strh r3, [r1, #32]
|
|
9492: 8c0b ldrh r3, [r1, #32]
|
|
9494: 1af9 subs r1, r7, r3
|
|
9496: b289 uxth r1, r1
|
|
9498: 4688 mov r8, r1
|
|
949a: b209 sxth r1, r1
|
|
949c: 468a mov sl, r1
|
|
949e: 8011 strh r1, [r2, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
94a0: 2002 movs r0, #2
|
|
94a2: 5e11 ldrsh r1, [r2, r0]
|
|
94a4: 464d mov r5, r9
|
|
94a6: 8a6d ldrh r5, [r5, #18]
|
|
94a8: 46ac mov ip, r5
|
|
94aa: 1b4d subs r5, r1, r5
|
|
94ac: 8055 strh r5, [r2, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
94ae: 2004 movs r0, #4
|
|
94b0: 5e16 ldrsh r6, [r2, r0]
|
|
94b2: 1af3 subs r3, r6, r3
|
|
94b4: b29b uxth r3, r3
|
|
94b6: 8093 strh r3, [r2, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
94b8: 88d5 ldrh r5, [r2, #6]
|
|
94ba: 4660 mov r0, ip
|
|
94bc: 1a2d subs r5, r5, r0
|
|
94be: 80d5 strh r5, [r2, #6]
|
|
94c0: 3301 adds r3, #1
|
|
94c2: 4642 mov r2, r8
|
|
94c4: 1a9b subs r3, r3, r2
|
|
94c6: b21b sxth r3, r3
|
|
94c8: 930b str r3, [sp, #44] ; 0x2c
|
|
fill_area.x1 = draw_area.x1 + disp_area->x1;
|
|
94ca: ab33 add r3, sp, #204 ; 0xcc
|
|
94cc: 801f strh r7, [r3, #0]
|
|
fill_area.x2 = draw_area.x2 + disp_area->x1;
|
|
94ce: 809e strh r6, [r3, #4]
|
|
fill_area.y1 = draw_area.y1 + disp_area->y1;
|
|
94d0: 8059 strh r1, [r3, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
94d2: 80d9 strh r1, [r3, #6]
|
|
if(dashed) {
|
|
94d4: 2100 movs r1, #0
|
|
94d6: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
94d8: 2b00 cmp r3, #0
|
|
94da: d008 beq.n 94ee <lv_draw_line+0x3be>
|
|
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
|
|
94dc: 4650 mov r0, sl
|
|
94de: 4458 add r0, fp
|
|
94e0: 2306 movs r3, #6
|
|
94e2: 5ee1 ldrsh r1, [r4, r3]
|
|
94e4: 2204 movs r2, #4
|
|
94e6: 5ea3 ldrsh r3, [r4, r2]
|
|
94e8: 18c9 adds r1, r1, r3
|
|
94ea: 4b18 ldr r3, [pc, #96] ; (954c <lv_draw_line+0x41c>)
|
|
94ec: 4798 blx r3
|
|
94ee: b20b sxth r3, r1
|
|
94f0: 930c str r3, [sp, #48] ; 0x30
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
|
|
94f2: 980b ldr r0, [sp, #44] ; 0x2c
|
|
94f4: 0007 movs r7, r0
|
|
94f6: 4b10 ldr r3, [pc, #64] ; (9538 <lv_draw_line+0x408>)
|
|
94f8: 4798 blx r3
|
|
94fa: 9008 str r0, [sp, #32]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
94fc: ab28 add r3, sp, #160 ; 0xa0
|
|
94fe: 2202 movs r2, #2
|
|
9500: 5e9e ldrsh r6, [r3, r2]
|
|
9502: 2206 movs r2, #6
|
|
9504: 5e9b ldrsh r3, [r3, r2]
|
|
9506: 42b3 cmp r3, r6
|
|
9508: da00 bge.n 950c <lv_draw_line+0x3dc>
|
|
950a: e077 b.n 95fc <lv_draw_line+0x4cc>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
950c: 4b0b ldr r3, [pc, #44] ; (953c <lv_draw_line+0x40c>)
|
|
950e: 469b mov fp, r3
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
9510: 4b0b ldr r3, [pc, #44] ; (9540 <lv_draw_line+0x410>)
|
|
9512: 469a mov sl, r3
|
|
9514: 970a str r7, [sp, #40] ; 0x28
|
|
9516: e050 b.n 95ba <lv_draw_line+0x48a>
|
|
9518: 0000fc0f .word 0x0000fc0f
|
|
951c: 00017995 .word 0x00017995
|
|
9520: 00018914 .word 0x00018914
|
|
9524: 0000a6e5 .word 0x0000a6e5
|
|
9528: 0000a5ed .word 0x0000a5ed
|
|
952c: 000043b1 .word 0x000043b1
|
|
9530: 0000f709 .word 0x0000f709
|
|
9534: 0000fbf3 .word 0x0000fbf3
|
|
9538: 00010ec1 .word 0x00010ec1
|
|
953c: 000110f1 .word 0x000110f1
|
|
9540: 0000a625 .word 0x0000a625
|
|
9544: 0000a6c1 .word 0x0000a6c1
|
|
9548: 00005c6d .word 0x00005c6d
|
|
954c: 00017b61 .word 0x00017b61
|
|
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
|
|
9550: 2606 movs r6, #6
|
|
9552: 5fa5 ldrsh r5, [r4, r6]
|
|
9554: 18ed adds r5, r5, r3
|
|
dash_cnt = 0;
|
|
9556: 000b movs r3, r1
|
|
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
|
|
9558: 42aa cmp r2, r5
|
|
955a: da02 bge.n 9562 <lv_draw_line+0x432>
|
|
mask_buf[i] = 0x00;
|
|
955c: 9b08 ldr r3, [sp, #32]
|
|
955e: 5419 strb r1, [r3, r0]
|
|
9560: 0013 movs r3, r2
|
|
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
|
|
9562: 3001 adds r0, #1
|
|
9564: 3301 adds r3, #1
|
|
9566: b21a sxth r2, r3
|
|
9568: 4287 cmp r7, r0
|
|
956a: d907 bls.n 957c <lv_draw_line+0x44c>
|
|
if(dash_cnt <= dsc->dash_width) {
|
|
956c: 2504 movs r5, #4
|
|
956e: 5f63 ldrsh r3, [r4, r5]
|
|
9570: 4293 cmp r3, r2
|
|
9572: dbed blt.n 9550 <lv_draw_line+0x420>
|
|
int16_t diff = dsc->dash_width - dash_cnt;
|
|
9574: 1a9a subs r2, r3, r2
|
|
i += diff;
|
|
9576: b212 sxth r2, r2
|
|
9578: 1880 adds r0, r0, r2
|
|
957a: e7f2 b.n 9562 <lv_draw_line+0x432>
|
|
957c: 970a str r7, [sp, #40] ; 0x28
|
|
957e: 4666 mov r6, ip
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
9580: 2002 movs r0, #2
|
|
_lv_blend_fill(clip, &fill_area,
|
|
9582: 8822 ldrh r2, [r4, #0]
|
|
9584: ad33 add r5, sp, #204 ; 0xcc
|
|
dsc->blend_mode);
|
|
9586: 7a63 ldrb r3, [r4, #9]
|
|
9588: 079b lsls r3, r3, #30
|
|
_lv_blend_fill(clip, &fill_area,
|
|
958a: 0f9b lsrs r3, r3, #30
|
|
958c: 9302 str r3, [sp, #8]
|
|
958e: 7a23 ldrb r3, [r4, #8]
|
|
9590: 9301 str r3, [sp, #4]
|
|
9592: 9000 str r0, [sp, #0]
|
|
9594: 9b08 ldr r3, [sp, #32]
|
|
9596: 0029 movs r1, r5
|
|
9598: a848 add r0, sp, #288 ; 0x120
|
|
959a: 4fd1 ldr r7, [pc, #836] ; (98e0 <lv_draw_line+0x7b0>)
|
|
959c: 47b8 blx r7
|
|
fill_area.y1++;
|
|
959e: 886b ldrh r3, [r5, #2]
|
|
95a0: 3301 adds r3, #1
|
|
95a2: 806b strh r3, [r5, #2]
|
|
fill_area.y2++;
|
|
95a4: 88eb ldrh r3, [r5, #6]
|
|
95a6: 3301 adds r3, #1
|
|
95a8: 80eb strh r3, [r5, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
95aa: 3601 adds r6, #1
|
|
95ac: ab0a add r3, sp, #40 ; 0x28
|
|
95ae: 227e movs r2, #126 ; 0x7e
|
|
95b0: 189b adds r3, r3, r2
|
|
95b2: 2200 movs r2, #0
|
|
95b4: 5e9b ldrsh r3, [r3, r2]
|
|
95b6: 429e cmp r6, r3
|
|
95b8: dc20 bgt.n 95fc <lv_draw_line+0x4cc>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
95ba: 9f0a ldr r7, [sp, #40] ; 0x28
|
|
95bc: 0039 movs r1, r7
|
|
95be: 9d08 ldr r5, [sp, #32]
|
|
95c0: 0028 movs r0, r5
|
|
95c2: 47d8 blx fp
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
95c4: 464b mov r3, r9
|
|
95c6: 8a5a ldrh r2, [r3, #18]
|
|
95c8: 1992 adds r2, r2, r6
|
|
95ca: b212 sxth r2, r2
|
|
95cc: 8a19 ldrh r1, [r3, #16]
|
|
95ce: ab0a add r3, sp, #40 ; 0x28
|
|
95d0: 2078 movs r0, #120 ; 0x78
|
|
95d2: 181b adds r3, r3, r0
|
|
95d4: 881b ldrh r3, [r3, #0]
|
|
95d6: 18c9 adds r1, r1, r3
|
|
95d8: b209 sxth r1, r1
|
|
95da: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
95dc: 0028 movs r0, r5
|
|
95de: 47d0 blx sl
|
|
if(dashed) {
|
|
95e0: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
95e2: 2b00 cmp r3, #0
|
|
95e4: d0cd beq.n 9582 <lv_draw_line+0x452>
|
|
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
|
|
95e6: 2800 cmp r0, #0
|
|
95e8: d0cb beq.n 9582 <lv_draw_line+0x452>
|
|
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
|
|
95ea: 2f00 cmp r7, #0
|
|
95ec: d004 beq.n 95f8 <lv_draw_line+0x4c8>
|
|
95ee: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
95f0: 2000 movs r0, #0
|
|
dash_cnt = 0;
|
|
95f2: 2100 movs r1, #0
|
|
95f4: 46b4 mov ip, r6
|
|
95f6: e7b9 b.n 956c <lv_draw_line+0x43c>
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
95f8: 2002 movs r0, #2
|
|
95fa: e7c2 b.n 9582 <lv_draw_line+0x452>
|
|
_lv_mem_buf_release(mask_buf);
|
|
95fc: 9808 ldr r0, [sp, #32]
|
|
95fe: 4bb9 ldr r3, [pc, #740] ; (98e4 <lv_draw_line+0x7b4>)
|
|
9600: 4798 blx r3
|
|
9602: e1e9 b.n 99d8 <lv_draw_line+0x8a8>
|
|
lv_opa_t opa = dsc->opa;
|
|
9604: 7a23 ldrb r3, [r4, #8]
|
|
9606: 4698 mov r8, r3
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
9608: 4bb7 ldr r3, [pc, #732] ; (98e8 <lv_draw_line+0x7b8>)
|
|
960a: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
960c: 4bb7 ldr r3, [pc, #732] ; (98ec <lv_draw_line+0x7bc>)
|
|
960e: 4798 blx r3
|
|
9610: 0007 movs r7, r0
|
|
int32_t w = dsc->width - 1;
|
|
9612: 2202 movs r2, #2
|
|
9614: 5ea3 ldrsh r3, [r4, r2]
|
|
9616: 3b01 subs r3, #1
|
|
int32_t w_half0 = w >> 1;
|
|
9618: 105e asrs r6, r3, #1
|
|
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
|
|
961a: 2501 movs r5, #1
|
|
961c: 401d ands r5, r3
|
|
961e: 19ad adds r5, r5, r6
|
|
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
|
|
9620: 2306 movs r3, #6
|
|
9622: 5ee2 ldrsh r2, [r4, r3]
|
|
9624: 2300 movs r3, #0
|
|
9626: 2a00 cmp r2, #0
|
|
9628: d004 beq.n 9634 <lv_draw_line+0x504>
|
|
962a: 2204 movs r2, #4
|
|
962c: 5ea3 ldrsh r3, [r4, r2]
|
|
962e: 1e5a subs r2, r3, #1
|
|
9630: 4193 sbcs r3, r2
|
|
9632: b2db uxtb r3, r3
|
|
9634: 4699 mov r9, r3
|
|
9636: 930a str r3, [sp, #40] ; 0x28
|
|
if(lv_draw_mask_get_cnt()) simple_mode = false;
|
|
9638: 4bad ldr r3, [pc, #692] ; (98f0 <lv_draw_line+0x7c0>)
|
|
963a: 4798 blx r3
|
|
963c: 2100 movs r1, #0
|
|
963e: 2800 cmp r0, #0
|
|
9640: d102 bne.n 9648 <lv_draw_line+0x518>
|
|
else if(dashed) simple_mode = false;
|
|
9642: 3101 adds r1, #1
|
|
9644: 464b mov r3, r9
|
|
9646: 4059 eors r1, r3
|
|
draw_area.x1 = point1->x - w_half1;
|
|
9648: 9805 ldr r0, [sp, #20]
|
|
964a: 8802 ldrh r2, [r0, #0]
|
|
964c: ab28 add r3, sp, #160 ; 0xa0
|
|
964e: 1b55 subs r5, r2, r5
|
|
9650: 801d strh r5, [r3, #0]
|
|
draw_area.x2 = point1->x + w_half0;
|
|
9652: 1996 adds r6, r2, r6
|
|
9654: 809e strh r6, [r3, #4]
|
|
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
|
|
9656: 9a06 ldr r2, [sp, #24]
|
|
9658: 2502 movs r5, #2
|
|
965a: 5f52 ldrsh r2, [r2, r5]
|
|
965c: 2502 movs r5, #2
|
|
965e: 5f45 ldrsh r5, [r0, r5]
|
|
9660: 1c10 adds r0, r2, #0
|
|
9662: 42aa cmp r2, r5
|
|
9664: dd00 ble.n 9668 <lv_draw_line+0x538>
|
|
9666: 1c28 adds r0, r5, #0
|
|
9668: 8058 strh r0, [r3, #2]
|
|
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
|
|
966a: 1c13 adds r3, r2, #0
|
|
966c: 42aa cmp r2, r5
|
|
966e: da00 bge.n 9672 <lv_draw_line+0x542>
|
|
9670: 1c2b adds r3, r5, #0
|
|
9672: 3b01 subs r3, #1
|
|
9674: aa28 add r2, sp, #160 ; 0xa0
|
|
9676: 80d3 strh r3, [r2, #6]
|
|
if(simple_mode) {
|
|
9678: 2900 cmp r1, #0
|
|
967a: d00e beq.n 969a <lv_draw_line+0x56a>
|
|
_lv_blend_fill(clip, &draw_area,
|
|
967c: 8822 ldrh r2, [r4, #0]
|
|
dsc->blend_mode);
|
|
967e: 7a63 ldrb r3, [r4, #9]
|
|
9680: 079b lsls r3, r3, #30
|
|
_lv_blend_fill(clip, &draw_area,
|
|
9682: 0f9b lsrs r3, r3, #30
|
|
9684: 9302 str r3, [sp, #8]
|
|
9686: 4643 mov r3, r8
|
|
9688: 9301 str r3, [sp, #4]
|
|
968a: 2301 movs r3, #1
|
|
968c: 9300 str r3, [sp, #0]
|
|
968e: 2300 movs r3, #0
|
|
9690: a928 add r1, sp, #160 ; 0xa0
|
|
9692: a848 add r0, sp, #288 ; 0x120
|
|
9694: 4d92 ldr r5, [pc, #584] ; (98e0 <lv_draw_line+0x7b0>)
|
|
9696: 47a8 blx r5
|
|
9698: e19e b.n 99d8 <lv_draw_line+0x8a8>
|
|
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
|
|
969a: aa28 add r2, sp, #160 ; 0xa0
|
|
969c: a948 add r1, sp, #288 ; 0x120
|
|
969e: 0010 movs r0, r2
|
|
96a0: 4b94 ldr r3, [pc, #592] ; (98f4 <lv_draw_line+0x7c4>)
|
|
96a2: 4798 blx r3
|
|
if(!is_common) return;
|
|
96a4: 2800 cmp r0, #0
|
|
96a6: d100 bne.n 96aa <lv_draw_line+0x57a>
|
|
96a8: e196 b.n 99d8 <lv_draw_line+0x8a8>
|
|
draw_area.x1 -= vdb->area.x1;
|
|
96aa: aa28 add r2, sp, #160 ; 0xa0
|
|
96ac: 2100 movs r1, #0
|
|
96ae: 5e53 ldrsh r3, [r2, r1]
|
|
96b0: 469c mov ip, r3
|
|
96b2: 8a3b ldrh r3, [r7, #16]
|
|
96b4: 4661 mov r1, ip
|
|
96b6: 1ac9 subs r1, r1, r3
|
|
96b8: b289 uxth r1, r1
|
|
96ba: 8011 strh r1, [r2, #0]
|
|
draw_area.y1 -= vdb->area.y1;
|
|
96bc: 2502 movs r5, #2
|
|
96be: 5f50 ldrsh r0, [r2, r5]
|
|
96c0: 8a7d ldrh r5, [r7, #18]
|
|
96c2: 46a8 mov r8, r5
|
|
96c4: 1b45 subs r5, r0, r5
|
|
96c6: 8055 strh r5, [r2, #2]
|
|
draw_area.x2 -= vdb->area.x1;
|
|
96c8: 2504 movs r5, #4
|
|
96ca: 5f56 ldrsh r6, [r2, r5]
|
|
96cc: 1af3 subs r3, r6, r3
|
|
96ce: b29b uxth r3, r3
|
|
96d0: 4699 mov r9, r3
|
|
96d2: 8093 strh r3, [r2, #4]
|
|
draw_area.y2 -= vdb->area.y1;
|
|
96d4: 88d5 ldrh r5, [r2, #6]
|
|
96d6: 4643 mov r3, r8
|
|
96d8: 1aed subs r5, r5, r3
|
|
96da: 80d5 strh r5, [r2, #6]
|
|
96dc: 464b mov r3, r9
|
|
96de: 3301 adds r3, #1
|
|
96e0: 1a59 subs r1, r3, r1
|
|
96e2: b20b sxth r3, r1
|
|
96e4: 001a movs r2, r3
|
|
96e6: 930b str r3, [sp, #44] ; 0x2c
|
|
fill_area.x1 = draw_area.x1 + disp_area->x1;
|
|
96e8: ab33 add r3, sp, #204 ; 0xcc
|
|
96ea: 4661 mov r1, ip
|
|
96ec: 8019 strh r1, [r3, #0]
|
|
fill_area.x2 = draw_area.x2 + disp_area->x1;
|
|
96ee: 809e strh r6, [r3, #4]
|
|
fill_area.y1 = draw_area.y1 + disp_area->y1;
|
|
96f0: 8058 strh r0, [r3, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
96f2: 80d8 strh r0, [r3, #6]
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
|
|
96f4: 920c str r2, [sp, #48] ; 0x30
|
|
96f6: 0010 movs r0, r2
|
|
96f8: 4b7f ldr r3, [pc, #508] ; (98f8 <lv_draw_line+0x7c8>)
|
|
96fa: 4798 blx r3
|
|
96fc: 9008 str r0, [sp, #32]
|
|
if(dashed) {
|
|
96fe: 2100 movs r1, #0
|
|
9700: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
9702: 2b00 cmp r3, #0
|
|
9704: d00c beq.n 9720 <lv_draw_line+0x5f0>
|
|
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
|
|
9706: 2310 movs r3, #16
|
|
9708: 5ef8 ldrsh r0, [r7, r3]
|
|
970a: ab28 add r3, sp, #160 ; 0xa0
|
|
970c: 2200 movs r2, #0
|
|
970e: 5e9b ldrsh r3, [r3, r2]
|
|
9710: 18c0 adds r0, r0, r3
|
|
9712: 2306 movs r3, #6
|
|
9714: 5ee1 ldrsh r1, [r4, r3]
|
|
9716: 2204 movs r2, #4
|
|
9718: 5ea3 ldrsh r3, [r4, r2]
|
|
971a: 18c9 adds r1, r1, r3
|
|
971c: 4b77 ldr r3, [pc, #476] ; (98fc <lv_draw_line+0x7cc>)
|
|
971e: 4798 blx r3
|
|
9720: b20b sxth r3, r1
|
|
9722: 4699 mov r9, r3
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
9724: ab28 add r3, sp, #160 ; 0xa0
|
|
9726: 2202 movs r2, #2
|
|
9728: 5e9e ldrsh r6, [r3, r2]
|
|
972a: 2206 movs r2, #6
|
|
972c: 5e9b ldrsh r3, [r3, r2]
|
|
972e: 429e cmp r6, r3
|
|
9730: dc4b bgt.n 97ca <lv_draw_line+0x69a>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
9732: 4b73 ldr r3, [pc, #460] ; (9900 <lv_draw_line+0x7d0>)
|
|
9734: 469b mov fp, r3
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
9736: 4b73 ldr r3, [pc, #460] ; (9904 <lv_draw_line+0x7d4>)
|
|
9738: 469a mov sl, r3
|
|
973a: 46b8 mov r8, r7
|
|
973c: 464b mov r3, r9
|
|
973e: 9309 str r3, [sp, #36] ; 0x24
|
|
9740: e01d b.n 977e <lv_draw_line+0x64e>
|
|
dash_cnt ++;
|
|
9742: 9f09 ldr r7, [sp, #36] ; 0x24
|
|
9744: 3701 adds r7, #1
|
|
9746: b23b sxth r3, r7
|
|
9748: 9309 str r3, [sp, #36] ; 0x24
|
|
_lv_blend_fill(clip, &fill_area,
|
|
974a: 8822 ldrh r2, [r4, #0]
|
|
974c: ad33 add r5, sp, #204 ; 0xcc
|
|
974e: 2300 movs r3, #0
|
|
9750: 9302 str r3, [sp, #8]
|
|
9752: 7a23 ldrb r3, [r4, #8]
|
|
9754: 9301 str r3, [sp, #4]
|
|
9756: 9000 str r0, [sp, #0]
|
|
9758: 9b08 ldr r3, [sp, #32]
|
|
975a: 0029 movs r1, r5
|
|
975c: a848 add r0, sp, #288 ; 0x120
|
|
975e: 4f60 ldr r7, [pc, #384] ; (98e0 <lv_draw_line+0x7b0>)
|
|
9760: 47b8 blx r7
|
|
fill_area.y1++;
|
|
9762: 886b ldrh r3, [r5, #2]
|
|
9764: 3301 adds r3, #1
|
|
9766: 806b strh r3, [r5, #2]
|
|
fill_area.y2++;
|
|
9768: 88eb ldrh r3, [r5, #6]
|
|
976a: 3301 adds r3, #1
|
|
976c: 80eb strh r3, [r5, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
976e: 3601 adds r6, #1
|
|
9770: ab0a add r3, sp, #40 ; 0x28
|
|
9772: 227e movs r2, #126 ; 0x7e
|
|
9774: 189b adds r3, r3, r2
|
|
9776: 2200 movs r2, #0
|
|
9778: 5e9b ldrsh r3, [r3, r2]
|
|
977a: 429e cmp r6, r3
|
|
977c: dc25 bgt.n 97ca <lv_draw_line+0x69a>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
977e: 990c ldr r1, [sp, #48] ; 0x30
|
|
9780: 9d08 ldr r5, [sp, #32]
|
|
9782: 0028 movs r0, r5
|
|
9784: 47d8 blx fp
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
9786: 4643 mov r3, r8
|
|
9788: 8a5a ldrh r2, [r3, #18]
|
|
978a: 1992 adds r2, r2, r6
|
|
978c: b212 sxth r2, r2
|
|
978e: 8a19 ldrh r1, [r3, #16]
|
|
9790: ab0a add r3, sp, #40 ; 0x28
|
|
9792: 2078 movs r0, #120 ; 0x78
|
|
9794: 181b adds r3, r3, r0
|
|
9796: 881b ldrh r3, [r3, #0]
|
|
9798: 18c9 adds r1, r1, r3
|
|
979a: b209 sxth r1, r1
|
|
979c: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
979e: 0028 movs r0, r5
|
|
97a0: 47d0 blx sl
|
|
if(dashed) {
|
|
97a2: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
97a4: 2b00 cmp r3, #0
|
|
97a6: d0d0 beq.n 974a <lv_draw_line+0x61a>
|
|
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
|
|
97a8: 2800 cmp r0, #0
|
|
97aa: d0ca beq.n 9742 <lv_draw_line+0x612>
|
|
if(dash_cnt > dsc->dash_width) {
|
|
97ac: 2304 movs r3, #4
|
|
97ae: 5ee2 ldrsh r2, [r4, r3]
|
|
97b0: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
97b2: 429a cmp r2, r3
|
|
97b4: da00 bge.n 97b8 <lv_draw_line+0x688>
|
|
mask_res = LV_DRAW_MASK_RES_TRANSP;
|
|
97b6: 2000 movs r0, #0
|
|
if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
|
|
97b8: 2106 movs r1, #6
|
|
97ba: 5e63 ldrsh r3, [r4, r1]
|
|
97bc: 189b adds r3, r3, r2
|
|
97be: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
97c0: 429a cmp r2, r3
|
|
97c2: dbbe blt.n 9742 <lv_draw_line+0x612>
|
|
dash_cnt = 0;
|
|
97c4: 2300 movs r3, #0
|
|
97c6: 9309 str r3, [sp, #36] ; 0x24
|
|
97c8: e7bb b.n 9742 <lv_draw_line+0x612>
|
|
_lv_mem_buf_release(mask_buf);
|
|
97ca: 9808 ldr r0, [sp, #32]
|
|
97cc: 4b45 ldr r3, [pc, #276] ; (98e4 <lv_draw_line+0x7b4>)
|
|
97ce: 4798 blx r3
|
|
97d0: e102 b.n 99d8 <lv_draw_line+0x8a8>
|
|
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
|
|
97d2: 464b mov r3, r9
|
|
97d4: 0158 lsls r0, r3, #5
|
|
97d6: 4659 mov r1, fp
|
|
97d8: 4b4b ldr r3, [pc, #300] ; (9908 <lv_draw_line+0x7d8>)
|
|
97da: 4798 blx r3
|
|
97dc: e52d b.n 923a <lv_draw_line+0x10a>
|
|
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
|
|
97de: b2b2 uxth r2, r6
|
|
97e0: 466b mov r3, sp
|
|
97e2: 8d9b ldrh r3, [r3, #44] ; 0x2c
|
|
97e4: b2a9 uxth r1, r5
|
|
97e6: 4693 mov fp, r2
|
|
97e8: 18d2 adds r2, r2, r3
|
|
97ea: b212 sxth r2, r2
|
|
97ec: 2000 movs r0, #0
|
|
97ee: 9001 str r0, [sp, #4]
|
|
97f0: 910b str r1, [sp, #44] ; 0x2c
|
|
97f2: 468c mov ip, r1
|
|
97f4: 4463 add r3, ip
|
|
97f6: b21b sxth r3, r3
|
|
97f8: 9300 str r3, [sp, #0]
|
|
97fa: 4653 mov r3, sl
|
|
97fc: 9908 ldr r1, [sp, #32]
|
|
97fe: a812 add r0, sp, #72 ; 0x48
|
|
9800: 4f42 ldr r7, [pc, #264] ; (990c <lv_draw_line+0x7dc>)
|
|
9802: 47b8 blx r7
|
|
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
|
|
9804: 4643 mov r3, r8
|
|
9806: 466a mov r2, sp
|
|
9808: 8613 strh r3, [r2, #48] ; 0x30
|
|
980a: 8e13 ldrh r3, [r2, #48] ; 0x30
|
|
980c: 465a mov r2, fp
|
|
980e: 1ad2 subs r2, r2, r3
|
|
9810: b212 sxth r2, r2
|
|
9812: 2101 movs r1, #1
|
|
9814: 9101 str r1, [sp, #4]
|
|
9816: 990b ldr r1, [sp, #44] ; 0x2c
|
|
9818: 1acb subs r3, r1, r3
|
|
981a: b21b sxth r3, r3
|
|
981c: 9300 str r3, [sp, #0]
|
|
981e: 4653 mov r3, sl
|
|
9820: 9908 ldr r1, [sp, #32]
|
|
9822: a81d add r0, sp, #116 ; 0x74
|
|
9824: 47b8 blx r7
|
|
9826: e56a b.n 92fe <lv_draw_line+0x1ce>
|
|
lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y,
|
|
9828: 466b mov r3, sp
|
|
982a: 8c1a ldrh r2, [r3, #32]
|
|
982c: 8d99 ldrh r1, [r3, #44] ; 0x2c
|
|
982e: 4653 mov r3, sl
|
|
9830: 4668 mov r0, sp
|
|
9832: 8583 strh r3, [r0, #44] ; 0x2c
|
|
9834: 8d83 ldrh r3, [r0, #44] ; 0x2c
|
|
9836: 469b mov fp, r3
|
|
9838: 18cb adds r3, r1, r3
|
|
983a: b21b sxth r3, r3
|
|
983c: 920b str r2, [sp, #44] ; 0x2c
|
|
983e: 4694 mov ip, r2
|
|
9840: 4461 add r1, ip
|
|
9842: b209 sxth r1, r1
|
|
9844: 2200 movs r2, #0
|
|
9846: 9201 str r2, [sp, #4]
|
|
9848: 9500 str r5, [sp, #0]
|
|
984a: 0032 movs r2, r6
|
|
984c: a812 add r0, sp, #72 ; 0x48
|
|
984e: 4f2f ldr r7, [pc, #188] ; (990c <lv_draw_line+0x7dc>)
|
|
9850: 47b8 blx r7
|
|
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
|
|
9852: 4643 mov r3, r8
|
|
9854: 466a mov r2, sp
|
|
9856: 8613 strh r3, [r2, #48] ; 0x30
|
|
9858: 8e12 ldrh r2, [r2, #48] ; 0x30
|
|
985a: 465b mov r3, fp
|
|
985c: 1a9b subs r3, r3, r2
|
|
985e: b21b sxth r3, r3
|
|
9860: 990b ldr r1, [sp, #44] ; 0x2c
|
|
9862: 1a8a subs r2, r1, r2
|
|
9864: b211 sxth r1, r2
|
|
9866: 2201 movs r2, #1
|
|
9868: 9201 str r2, [sp, #4]
|
|
986a: 9500 str r5, [sp, #0]
|
|
986c: 0032 movs r2, r6
|
|
986e: a81d add r0, sp, #116 ; 0x74
|
|
9870: 47b8 blx r7
|
|
9872: e544 b.n 92fe <lv_draw_line+0x1ce>
|
|
lv_draw_mask_line_points_init(&mask_top_param, p1.x, p1.y, p1.x - ydiff, p1.y + xdiff, LV_DRAW_MASK_LINE_SIDE_BOTTOM);
|
|
9874: 466b mov r3, sp
|
|
9876: 8d1b ldrh r3, [r3, #40] ; 0x28
|
|
9878: 4699 mov r9, r3
|
|
987a: 466b mov r3, sp
|
|
987c: 8c9b ldrh r3, [r3, #36] ; 0x24
|
|
987e: 4698 mov r8, r3
|
|
9880: 464b mov r3, r9
|
|
9882: 9908 ldr r1, [sp, #32]
|
|
9884: 1acb subs r3, r1, r3
|
|
9886: b21b sxth r3, r3
|
|
9888: 2203 movs r2, #3
|
|
988a: 9201 str r2, [sp, #4]
|
|
988c: 4642 mov r2, r8
|
|
988e: 1992 adds r2, r2, r6
|
|
9890: b212 sxth r2, r2
|
|
9892: 9200 str r2, [sp, #0]
|
|
9894: 0032 movs r2, r6
|
|
9896: a828 add r0, sp, #160 ; 0xa0
|
|
9898: 4e1c ldr r6, [pc, #112] ; (990c <lv_draw_line+0x7dc>)
|
|
989a: 47b0 blx r6
|
|
lv_draw_mask_line_points_init(&mask_bottom_param, p2.x, p2.y, p2.x - ydiff, p2.y + xdiff, LV_DRAW_MASK_LINE_SIDE_TOP);
|
|
989c: 4653 mov r3, sl
|
|
989e: 464a mov r2, r9
|
|
98a0: 1a9b subs r3, r3, r2
|
|
98a2: b21b sxth r3, r3
|
|
98a4: 2202 movs r2, #2
|
|
98a6: 9201 str r2, [sp, #4]
|
|
98a8: 4642 mov r2, r8
|
|
98aa: 1952 adds r2, r2, r5
|
|
98ac: b212 sxth r2, r2
|
|
98ae: 9200 str r2, [sp, #0]
|
|
98b0: 002a movs r2, r5
|
|
98b2: 4651 mov r1, sl
|
|
98b4: a833 add r0, sp, #204 ; 0xcc
|
|
98b6: 47b0 blx r6
|
|
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
|
|
98b8: 2100 movs r1, #0
|
|
98ba: a828 add r0, sp, #160 ; 0xa0
|
|
98bc: 4d14 ldr r5, [pc, #80] ; (9910 <lv_draw_line+0x7e0>)
|
|
98be: 47a8 blx r5
|
|
98c0: 900a str r0, [sp, #40] ; 0x28
|
|
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
|
|
98c2: 2100 movs r1, #0
|
|
98c4: a833 add r0, sp, #204 ; 0xcc
|
|
98c6: 47a8 blx r5
|
|
98c8: 900d str r0, [sp, #52] ; 0x34
|
|
98ca: e52a b.n 9322 <lv_draw_line+0x1f2>
|
|
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
|
|
98cc: a80e add r0, sp, #56 ; 0x38
|
|
98ce: 4b11 ldr r3, [pc, #68] ; (9914 <lv_draw_line+0x7e4>)
|
|
98d0: 4798 blx r3
|
|
98d2: 4683 mov fp, r0
|
|
98d4: e549 b.n 936a <lv_draw_line+0x23a>
|
|
_lv_memset_00(&mask_buf[mask_p], draw_area_w);
|
|
98d6: 0029 movs r1, r5
|
|
98d8: 9808 ldr r0, [sp, #32]
|
|
98da: 4b0f ldr r3, [pc, #60] ; (9918 <lv_draw_line+0x7e8>)
|
|
98dc: 4798 blx r3
|
|
98de: e04c b.n 997a <lv_draw_line+0x84a>
|
|
98e0: 00005c6d .word 0x00005c6d
|
|
98e4: 00010bd5 .word 0x00010bd5
|
|
98e8: 000043b1 .word 0x000043b1
|
|
98ec: 0000f709 .word 0x0000f709
|
|
98f0: 0000a6c1 .word 0x0000a6c1
|
|
98f4: 0000fc0f .word 0x0000fc0f
|
|
98f8: 00010ec1 .word 0x00010ec1
|
|
98fc: 00017b61 .word 0x00017b61
|
|
9900: 000110f1 .word 0x000110f1
|
|
9904: 0000a625 .word 0x0000a625
|
|
9908: 00017995 .word 0x00017995
|
|
990c: 0000a6e5 .word 0x0000a6e5
|
|
9910: 0000a5ed .word 0x0000a5ed
|
|
9914: 0000fbf3 .word 0x0000fbf3
|
|
9918: 0001104d .word 0x0001104d
|
|
_lv_blend_fill(&fill_area, clip,
|
|
991c: 4643 mov r3, r8
|
|
991e: 881a ldrh r2, [r3, #0]
|
|
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
|
|
dsc->blend_mode);
|
|
9920: 7a5b ldrb r3, [r3, #9]
|
|
9922: 079b lsls r3, r3, #30
|
|
_lv_blend_fill(&fill_area, clip,
|
|
9924: 0f9b lsrs r3, r3, #30
|
|
9926: 9302 str r3, [sp, #8]
|
|
9928: 4643 mov r3, r8
|
|
992a: 7a1b ldrb r3, [r3, #8]
|
|
992c: 9301 str r3, [sp, #4]
|
|
992e: 2302 movs r3, #2
|
|
9930: 9300 str r3, [sp, #0]
|
|
9932: 0023 movs r3, r4
|
|
9934: a948 add r1, sp, #288 ; 0x120
|
|
9936: a810 add r0, sp, #64 ; 0x40
|
|
9938: 4f4d ldr r7, [pc, #308] ; (9a70 <lv_draw_line+0x940>)
|
|
993a: 47b8 blx r7
|
|
|
|
fill_area.y1 = fill_area.y2 + 1;
|
|
993c: ab0a add r3, sp, #40 ; 0x28
|
|
993e: 8bdb ldrh r3, [r3, #30]
|
|
9940: 3301 adds r3, #1
|
|
9942: b21b sxth r3, r3
|
|
9944: aa0a add r2, sp, #40 ; 0x28
|
|
9946: 8353 strh r3, [r2, #26]
|
|
fill_area.y2 = fill_area.y1;
|
|
9948: 83d3 strh r3, [r2, #30]
|
|
mask_p = 0;
|
|
_lv_memset_ff(mask_buf, mask_buf_size);
|
|
994a: 4659 mov r1, fp
|
|
994c: 0020 movs r0, r4
|
|
994e: 4b49 ldr r3, [pc, #292] ; (9a74 <lv_draw_line+0x944>)
|
|
9950: 4798 blx r3
|
|
mask_p = 0;
|
|
9952: 2700 movs r7, #0
|
|
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
|
|
9954: 3601 adds r6, #1
|
|
9956: ab0e add r3, sp, #56 ; 0x38
|
|
9958: 2206 movs r2, #6
|
|
995a: 5e9b ldrsh r3, [r3, r2]
|
|
995c: 464a mov r2, r9
|
|
995e: 2112 movs r1, #18
|
|
9960: 5e52 ldrsh r2, [r2, r1]
|
|
9962: 189b adds r3, r3, r2
|
|
9964: 429e cmp r6, r3
|
|
9966: dc11 bgt.n 998c <lv_draw_line+0x85c>
|
|
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
|
|
9968: 19e3 adds r3, r4, r7
|
|
996a: 0018 movs r0, r3
|
|
996c: 9308 str r3, [sp, #32]
|
|
996e: b232 sxth r2, r6
|
|
9970: 002b movs r3, r5
|
|
9972: 9909 ldr r1, [sp, #36] ; 0x24
|
|
9974: 47d0 blx sl
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
|
|
9976: 2800 cmp r0, #0
|
|
9978: d0ad beq.n 98d6 <lv_draw_line+0x7a6>
|
|
mask_p += draw_area_w;
|
|
997a: 197f adds r7, r7, r5
|
|
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
|
|
997c: 19eb adds r3, r5, r7
|
|
997e: 459b cmp fp, r3
|
|
9980: d9cc bls.n 991c <lv_draw_line+0x7ec>
|
|
fill_area.y2 ++;
|
|
9982: aa10 add r2, sp, #64 ; 0x40
|
|
9984: 88d3 ldrh r3, [r2, #6]
|
|
9986: 3301 adds r3, #1
|
|
9988: 80d3 strh r3, [r2, #6]
|
|
998a: e7e3 b.n 9954 <lv_draw_line+0x824>
|
|
998c: 4643 mov r3, r8
|
|
998e: 46a0 mov r8, r4
|
|
9990: 001c movs r4, r3
|
|
}
|
|
}
|
|
|
|
/*Flush the last part*/
|
|
if(fill_area.y1 != fill_area.y2) {
|
|
9992: aa10 add r2, sp, #64 ; 0x40
|
|
9994: 2106 movs r1, #6
|
|
9996: 5e53 ldrsh r3, [r2, r1]
|
|
9998: 2102 movs r1, #2
|
|
999a: 5e52 ldrsh r2, [r2, r1]
|
|
999c: 429a cmp r2, r3
|
|
999e: d00f beq.n 99c0 <lv_draw_line+0x890>
|
|
fill_area.y2--;
|
|
99a0: a810 add r0, sp, #64 ; 0x40
|
|
99a2: 3b01 subs r3, #1
|
|
99a4: 80c3 strh r3, [r0, #6]
|
|
_lv_blend_fill(&fill_area, clip,
|
|
99a6: 8822 ldrh r2, [r4, #0]
|
|
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
|
|
dsc->blend_mode);
|
|
99a8: 7a63 ldrb r3, [r4, #9]
|
|
99aa: 079b lsls r3, r3, #30
|
|
_lv_blend_fill(&fill_area, clip,
|
|
99ac: 0f9b lsrs r3, r3, #30
|
|
99ae: 9302 str r3, [sp, #8]
|
|
99b0: 7a23 ldrb r3, [r4, #8]
|
|
99b2: 9301 str r3, [sp, #4]
|
|
99b4: 2302 movs r3, #2
|
|
99b6: 9300 str r3, [sp, #0]
|
|
99b8: 4643 mov r3, r8
|
|
99ba: a948 add r1, sp, #288 ; 0x120
|
|
99bc: 4d2c ldr r5, [pc, #176] ; (9a70 <lv_draw_line+0x940>)
|
|
99be: 47a8 blx r5
|
|
|
|
}
|
|
|
|
_lv_mem_buf_release(mask_buf);
|
|
99c0: 4640 mov r0, r8
|
|
99c2: 4b2d ldr r3, [pc, #180] ; (9a78 <lv_draw_line+0x948>)
|
|
99c4: 4798 blx r3
|
|
|
|
lv_draw_mask_remove_id(mask_left_id);
|
|
99c6: 980b ldr r0, [sp, #44] ; 0x2c
|
|
99c8: 4d2c ldr r5, [pc, #176] ; (9a7c <lv_draw_line+0x94c>)
|
|
99ca: 47a8 blx r5
|
|
lv_draw_mask_remove_id(mask_right_id);
|
|
99cc: 980c ldr r0, [sp, #48] ; 0x30
|
|
99ce: 47a8 blx r5
|
|
lv_draw_mask_remove_id(mask_top_id);
|
|
99d0: 980a ldr r0, [sp, #40] ; 0x28
|
|
99d2: 47a8 blx r5
|
|
lv_draw_mask_remove_id(mask_bottom_id);
|
|
99d4: 980d ldr r0, [sp, #52] ; 0x34
|
|
99d6: 47a8 blx r5
|
|
if(dsc->round_end || dsc->round_start) {
|
|
99d8: 7a63 ldrb r3, [r4, #9]
|
|
99da: 220c movs r2, #12
|
|
99dc: 421a tst r2, r3
|
|
99de: d106 bne.n 99ee <lv_draw_line+0x8be>
|
|
}
|
|
99e0: b04b add sp, #300 ; 0x12c
|
|
99e2: bc3c pop {r2, r3, r4, r5}
|
|
99e4: 4690 mov r8, r2
|
|
99e6: 4699 mov r9, r3
|
|
99e8: 46a2 mov sl, r4
|
|
99ea: 46ab mov fp, r5
|
|
99ec: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_draw_rect_dsc_init(&cir_dsc);
|
|
99ee: ad33 add r5, sp, #204 ; 0xcc
|
|
99f0: 0028 movs r0, r5
|
|
99f2: 4b23 ldr r3, [pc, #140] ; (9a80 <lv_draw_line+0x950>)
|
|
99f4: 4798 blx r3
|
|
cir_dsc.bg_color = dsc->color;
|
|
99f6: 8823 ldrh r3, [r4, #0]
|
|
99f8: 806b strh r3, [r5, #2]
|
|
cir_dsc.radius = LV_RADIUS_CIRCLE;
|
|
99fa: 4b22 ldr r3, [pc, #136] ; (9a84 <lv_draw_line+0x954>)
|
|
99fc: 802b strh r3, [r5, #0]
|
|
cir_dsc.bg_opa = dsc->opa;
|
|
99fe: 7a23 ldrb r3, [r4, #8]
|
|
9a00: 732b strb r3, [r5, #12]
|
|
int32_t r = (dsc->width >> 1);
|
|
9a02: 2202 movs r2, #2
|
|
9a04: 5ea3 ldrsh r3, [r4, r2]
|
|
9a06: 105e asrs r6, r3, #1
|
|
int32_t r_corr = (dsc->width & 1) ? 0 : 1;
|
|
9a08: 2201 movs r2, #1
|
|
9a0a: 4053 eors r3, r2
|
|
9a0c: 2501 movs r5, #1
|
|
9a0e: 401d ands r5, r3
|
|
if(dsc->round_start) {
|
|
9a10: 7a63 ldrb r3, [r4, #9]
|
|
9a12: 075b lsls r3, r3, #29
|
|
9a14: d417 bmi.n 9a46 <lv_draw_line+0x916>
|
|
if(dsc->round_end) {
|
|
9a16: 7a63 ldrb r3, [r4, #9]
|
|
9a18: 071b lsls r3, r3, #28
|
|
9a1a: d5e1 bpl.n 99e0 <lv_draw_line+0x8b0>
|
|
cir_area.x1 = point2->x - r;
|
|
9a1c: 9906 ldr r1, [sp, #24]
|
|
9a1e: 880a ldrh r2, [r1, #0]
|
|
9a20: b2b6 uxth r6, r6
|
|
9a22: a828 add r0, sp, #160 ; 0xa0
|
|
9a24: 1b93 subs r3, r2, r6
|
|
9a26: 8003 strh r3, [r0, #0]
|
|
cir_area.y1 = point2->y - r;
|
|
9a28: 8849 ldrh r1, [r1, #2]
|
|
9a2a: 1b8b subs r3, r1, r6
|
|
9a2c: 8043 strh r3, [r0, #2]
|
|
cir_area.x2 = point2->x + r - r_corr;
|
|
9a2e: b2ad uxth r5, r5
|
|
9a30: 1992 adds r2, r2, r6
|
|
9a32: 1b52 subs r2, r2, r5
|
|
9a34: 8082 strh r2, [r0, #4]
|
|
cir_area.y2 = point2->y + r - r_corr ;
|
|
9a36: 1876 adds r6, r6, r1
|
|
9a38: 1b76 subs r6, r6, r5
|
|
9a3a: 80c6 strh r6, [r0, #6]
|
|
lv_draw_rect(&cir_area, clip, &cir_dsc);
|
|
9a3c: aa33 add r2, sp, #204 ; 0xcc
|
|
9a3e: 9907 ldr r1, [sp, #28]
|
|
9a40: 4b11 ldr r3, [pc, #68] ; (9a88 <lv_draw_line+0x958>)
|
|
9a42: 4798 blx r3
|
|
9a44: e7cc b.n 99e0 <lv_draw_line+0x8b0>
|
|
cir_area.x1 = point1->x - r;
|
|
9a46: 9f05 ldr r7, [sp, #20]
|
|
9a48: 883a ldrh r2, [r7, #0]
|
|
9a4a: b2b3 uxth r3, r6
|
|
9a4c: a828 add r0, sp, #160 ; 0xa0
|
|
9a4e: 1ad1 subs r1, r2, r3
|
|
9a50: 8001 strh r1, [r0, #0]
|
|
cir_area.y1 = point1->y - r;
|
|
9a52: 887f ldrh r7, [r7, #2]
|
|
9a54: 1af9 subs r1, r7, r3
|
|
9a56: 8041 strh r1, [r0, #2]
|
|
cir_area.x2 = point1->x + r - r_corr;
|
|
9a58: b2a9 uxth r1, r5
|
|
9a5a: 18d2 adds r2, r2, r3
|
|
9a5c: 1a52 subs r2, r2, r1
|
|
9a5e: 8082 strh r2, [r0, #4]
|
|
cir_area.y2 = point1->y + r - r_corr ;
|
|
9a60: 19db adds r3, r3, r7
|
|
9a62: 1a5b subs r3, r3, r1
|
|
9a64: 80c3 strh r3, [r0, #6]
|
|
lv_draw_rect(&cir_area, clip, &cir_dsc);
|
|
9a66: aa33 add r2, sp, #204 ; 0xcc
|
|
9a68: 9907 ldr r1, [sp, #28]
|
|
9a6a: 4b07 ldr r3, [pc, #28] ; (9a88 <lv_draw_line+0x958>)
|
|
9a6c: 4798 blx r3
|
|
9a6e: e7d2 b.n 9a16 <lv_draw_line+0x8e6>
|
|
9a70: 00005c6d .word 0x00005c6d
|
|
9a74: 000110f1 .word 0x000110f1
|
|
9a78: 00010bd5 .word 0x00010bd5
|
|
9a7c: 0000a679 .word 0x0000a679
|
|
9a80: 0000ab21 .word 0x0000ab21
|
|
9a84: 00007fff .word 0x00007fff
|
|
9a88: 0000abc5 .word 0x0000abc5
|
|
|
|
00009a8c <lv_draw_mask_line>:
|
|
**********************/
|
|
|
|
LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x,
|
|
lv_coord_t abs_y, lv_coord_t len,
|
|
lv_draw_mask_line_param_t * p)
|
|
{
|
|
9a8c: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
9a8e: 46de mov lr, fp
|
|
9a90: 4657 mov r7, sl
|
|
9a92: 464e mov r6, r9
|
|
9a94: 4645 mov r5, r8
|
|
9a96: b5e0 push {r5, r6, r7, lr}
|
|
9a98: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
/*Make to points relative to the vertex*/
|
|
abs_y -= p->origo.y;
|
|
9a9a: 8aa5 ldrh r5, [r4, #20]
|
|
9a9c: 1b52 subs r2, r2, r5
|
|
9a9e: b212 sxth r2, r2
|
|
abs_x -= p->origo.x;
|
|
9aa0: 8a65 ldrh r5, [r4, #18]
|
|
9aa2: 1b4d subs r5, r1, r5
|
|
9aa4: b22d sxth r5, r5
|
|
|
|
/*Handle special cases*/
|
|
if(p->steep == 0) {
|
|
9aa6: 6a21 ldr r1, [r4, #32]
|
|
9aa8: 2900 cmp r1, #0
|
|
9aaa: d140 bne.n 9b2e <lv_draw_mask_line+0xa2>
|
|
/*Horizontal*/
|
|
if(p->flat) {
|
|
9aac: 3128 adds r1, #40 ; 0x28
|
|
9aae: 5c61 ldrb r1, [r4, r1]
|
|
9ab0: 07c9 lsls r1, r1, #31
|
|
9ab2: d511 bpl.n 9ad8 <lv_draw_mask_line+0x4c>
|
|
/*Non sense: Can't be on the right/left of a horizontal line*/
|
|
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
|
|
9ab4: 7c21 ldrb r1, [r4, #16]
|
|
9ab6: 2303 movs r3, #3
|
|
9ab8: 400b ands r3, r1
|
|
9aba: 2b01 cmp r3, #1
|
|
9abc: d800 bhi.n 9ac0 <lv_draw_mask_line+0x34>
|
|
9abe: e1c5 b.n 9e4c <lv_draw_mask_line+0x3c0>
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ac0: 2b02 cmp r3, #2
|
|
9ac2: d006 beq.n 9ad2 <lv_draw_mask_line+0x46>
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
else {
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
9ac4: 2400 movs r4, #0
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ac6: 2b03 cmp r3, #3
|
|
9ac8: d145 bne.n 9b56 <lv_draw_mask_line+0xca>
|
|
9aca: 17d4 asrs r4, r2, #31
|
|
9acc: 1aa4 subs r4, r4, r2
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ace: 0fe4 lsrs r4, r4, #31
|
|
9ad0: e041 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ad2: 3201 adds r2, #1
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ad4: 0fd4 lsrs r4, r2, #31
|
|
9ad6: e03e b.n 9b56 <lv_draw_mask_line+0xca>
|
|
}
|
|
}
|
|
/*Vertical*/
|
|
else {
|
|
/*Non sense: Can't be on the top/bottom of a vertical line*/
|
|
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP ||
|
|
9ad8: 7c21 ldrb r1, [r4, #16]
|
|
9ada: 2203 movs r2, #3
|
|
9adc: 400a ands r2, r1
|
|
9ade: 1e91 subs r1, r2, #2
|
|
9ae0: 2901 cmp r1, #1
|
|
9ae2: d800 bhi.n 9ae6 <lv_draw_mask_line+0x5a>
|
|
9ae4: e1b4 b.n 9e50 <lv_draw_mask_line+0x3c4>
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ae6: 2a01 cmp r2, #1
|
|
9ae8: d00f beq.n 9b0a <lv_draw_mask_line+0x7e>
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) {
|
|
9aea: 2a00 cmp r2, #0
|
|
9aec: d110 bne.n 9b10 <lv_draw_mask_line+0x84>
|
|
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9aee: 18e9 adds r1, r5, r3
|
|
9af0: d500 bpl.n 9af4 <lv_draw_mask_line+0x68>
|
|
9af2: e1af b.n 9e54 <lv_draw_mask_line+0x3c8>
|
|
else {
|
|
int32_t k = - abs_x;
|
|
9af4: 426d negs r5, r5
|
|
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9af6: 2d00 cmp r5, #0
|
|
9af8: da00 bge.n 9afc <lv_draw_mask_line+0x70>
|
|
9afa: e1ad b.n 9e58 <lv_draw_mask_line+0x3cc>
|
|
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9afc: 2402 movs r4, #2
|
|
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
|
|
9afe: 42ab cmp r3, r5
|
|
9b00: dd29 ble.n 9b56 <lv_draw_mask_line+0xca>
|
|
9b02: 1940 adds r0, r0, r5
|
|
9b04: 4bbd ldr r3, [pc, #756] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9b06: 4798 blx r3
|
|
9b08: e025 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9b0a: 2401 movs r4, #1
|
|
9b0c: 2d00 cmp r5, #0
|
|
9b0e: dc22 bgt.n 9b56 <lv_draw_mask_line+0xca>
|
|
}
|
|
}
|
|
else {
|
|
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9b10: 001a movs r2, r3
|
|
9b12: 42dd cmn r5, r3
|
|
9b14: d500 bpl.n 9b18 <lv_draw_mask_line+0x8c>
|
|
9b16: e1a1 b.n 9e5c <lv_draw_mask_line+0x3d0>
|
|
else {
|
|
int32_t k = - abs_x;
|
|
9b18: 4269 negs r1, r5
|
|
9b1a: 43cb mvns r3, r1
|
|
9b1c: 17db asrs r3, r3, #31
|
|
9b1e: 4019 ands r1, r3
|
|
if(k < 0) k = 0;
|
|
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
|
|
9b20: 2400 movs r4, #0
|
|
9b22: 428a cmp r2, r1
|
|
9b24: dd17 ble.n 9b56 <lv_draw_mask_line+0xca>
|
|
else if(k >= 0 && k < len) _lv_memset_00(&mask_buf[0], k);
|
|
9b26: 4bb5 ldr r3, [pc, #724] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9b28: 4798 blx r3
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9b2a: 3402 adds r4, #2
|
|
9b2c: e013 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
}
|
|
}
|
|
}
|
|
|
|
lv_draw_mask_res_t res;
|
|
if(p->flat) {
|
|
9b2e: 2128 movs r1, #40 ; 0x28
|
|
9b30: 5c61 ldrb r1, [r4, r1]
|
|
9b32: 468b mov fp, r1
|
|
9b34: 07c9 lsls r1, r1, #31
|
|
9b36: d415 bmi.n 9b64 <lv_draw_mask_line+0xd8>
|
|
{
|
|
int32_t k;
|
|
int32_t x_at_y;
|
|
/* At the beginning of the mask if the limit line is greater then the mask's y.
|
|
* Then the mask is in the "wrong" area*/
|
|
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
|
|
9b38: 69a7 ldr r7, [r4, #24]
|
|
9b3a: 0011 movs r1, r2
|
|
9b3c: 4379 muls r1, r7
|
|
9b3e: 1289 asrs r1, r1, #10
|
|
9b40: 468c mov ip, r1
|
|
if(p->xy_steep > 0) x_at_y++;
|
|
9b42: 17f9 asrs r1, r7, #31
|
|
9b44: 1bc9 subs r1, r1, r7
|
|
9b46: 0fc9 lsrs r1, r1, #31
|
|
9b48: 4461 add r1, ip
|
|
if(x_at_y < abs_x) {
|
|
9b4a: 428d cmp r5, r1
|
|
9b4c: dc00 bgt.n 9b50 <lv_draw_mask_line+0xc4>
|
|
9b4e: e096 b.n 9c7e <lv_draw_mask_line+0x1f2>
|
|
if(p->inv) {
|
|
9b50: 465b mov r3, fp
|
|
9b52: 079c lsls r4, r3, #30
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9b54: 0fe4 lsrs r4, r4, #31
|
|
}
|
|
9b56: 0020 movs r0, r4
|
|
9b58: bc3c pop {r2, r3, r4, r5}
|
|
9b5a: 4690 mov r8, r2
|
|
9b5c: 4699 mov r9, r3
|
|
9b5e: 46a2 mov sl, r4
|
|
9b60: 46ab mov fp, r5
|
|
9b62: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
|
|
9b64: 69e1 ldr r1, [r4, #28]
|
|
9b66: 002f movs r7, r5
|
|
9b68: 434f muls r7, r1
|
|
9b6a: 12bf asrs r7, r7, #10
|
|
if(p->yx_steep > 0) {
|
|
9b6c: 2900 cmp r1, #0
|
|
9b6e: dd06 ble.n 9b7e <lv_draw_mask_line+0xf2>
|
|
if(y_at_x > abs_y) {
|
|
9b70: 4297 cmp r7, r2
|
|
9b72: dc00 bgt.n 9b76 <lv_draw_mask_line+0xea>
|
|
9b74: e176 b.n 9e64 <lv_draw_mask_line+0x3d8>
|
|
if(p->inv) {
|
|
9b76: 465b mov r3, fp
|
|
9b78: 079c lsls r4, r3, #30
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9b7a: 0fe4 lsrs r4, r4, #31
|
|
9b7c: e7eb b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(y_at_x < abs_y) {
|
|
9b7e: 4297 cmp r7, r2
|
|
9b80: db00 blt.n 9b84 <lv_draw_mask_line+0xf8>
|
|
9b82: e1ab b.n 9edc <lv_draw_mask_line+0x450>
|
|
if(p->inv) {
|
|
9b84: 465b mov r3, fp
|
|
9b86: 079c lsls r4, r3, #30
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9b88: 0fe4 lsrs r4, r4, #31
|
|
9b8a: e7e4 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(p->inv) {
|
|
9b8c: 465b mov r3, fp
|
|
9b8e: 085e lsrs r6, r3, #1
|
|
9b90: 2401 movs r4, #1
|
|
9b92: 4066 eors r6, r4
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9b94: 2401 movs r4, #1
|
|
9b96: 4034 ands r4, r6
|
|
9b98: e7dd b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(p->inv) {
|
|
9b9a: 465b mov r3, fp
|
|
9b9c: 085e lsrs r6, r3, #1
|
|
9b9e: 2401 movs r4, #1
|
|
9ba0: 4066 eors r6, r4
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9ba2: 2401 movs r4, #1
|
|
9ba4: 4034 ands r4, r6
|
|
9ba6: e7d6 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
|
|
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new)
|
|
{
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9ba8: 2100 movs r1, #0
|
|
9baa: e190 b.n 9ece <lv_draw_mask_line+0x442>
|
|
9bac: 2100 movs r1, #0
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9bae: 464b mov r3, r9
|
|
9bb0: 54c1 strb r1, [r0, r3]
|
|
px_h -= p->spx;
|
|
9bb2: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
9bb4: 1ad2 subs r2, r2, r3
|
|
k++;
|
|
9bb6: 3501 adds r5, #1
|
|
if(k >= len) break;
|
|
9bb8: 42bd cmp r5, r7
|
|
9bba: da43 bge.n 9c44 <lv_draw_mask_line+0x1b8>
|
|
while(px_h > p->spx) {
|
|
9bbc: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
9bbe: 429a cmp r2, r3
|
|
9bc0: dd1a ble.n 9bf8 <lv_draw_mask_line+0x16c>
|
|
if(k >= 0 && k < len) {
|
|
9bc2: 2d00 cmp r5, #0
|
|
9bc4: dbf5 blt.n 9bb2 <lv_draw_mask_line+0x126>
|
|
9bc6: 42bd cmp r5, r7
|
|
9bc8: daf3 bge.n 9bb2 <lv_draw_mask_line+0x126>
|
|
m = px_h - (p->spx >> 1);
|
|
9bca: 105b asrs r3, r3, #1
|
|
9bcc: 1ad3 subs r3, r2, r3
|
|
9bce: b2db uxtb r3, r3
|
|
if(p->inv) m = 255 - m;
|
|
9bd0: 4641 mov r1, r8
|
|
9bd2: 5c61 ldrb r1, [r4, r1]
|
|
9bd4: 420e tst r6, r1
|
|
9bd6: d001 beq.n 9bdc <lv_draw_mask_line+0x150>
|
|
9bd8: 43db mvns r3, r3
|
|
9bda: b2db uxtb r3, r3
|
|
9bdc: 46a9 mov r9, r5
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9bde: 5d41 ldrb r1, [r0, r5]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9be0: 2bf9 cmp r3, #249 ; 0xf9
|
|
9be2: d8e4 bhi.n 9bae <lv_draw_mask_line+0x122>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9be4: 2b05 cmp r3, #5
|
|
9be6: d9e1 bls.n 9bac <lv_draw_mask_line+0x120>
|
|
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9be8: 434b muls r3, r1
|
|
9bea: 0219 lsls r1, r3, #8
|
|
9bec: 18c9 adds r1, r1, r3
|
|
9bee: 01c9 lsls r1, r1, #7
|
|
9bf0: 18cb adds r3, r1, r3
|
|
9bf2: 0ddb lsrs r3, r3, #23
|
|
9bf4: b2d9 uxtb r1, r3
|
|
9bf6: e7da b.n 9bae <lv_draw_mask_line+0x122>
|
|
if(k < len && k >= 0) {
|
|
9bf8: 42bd cmp r5, r7
|
|
9bfa: da23 bge.n 9c44 <lv_draw_mask_line+0x1b8>
|
|
9bfc: 2d00 cmp r5, #0
|
|
9bfe: db21 blt.n 9c44 <lv_draw_mask_line+0x1b8>
|
|
int32_t x_inters = (px_h * p->xy_steep) >> 10;
|
|
9c00: 69a3 ldr r3, [r4, #24]
|
|
9c02: 4353 muls r3, r2
|
|
9c04: 129b asrs r3, r3, #10
|
|
m = (x_inters * px_h) >> 9;
|
|
9c06: 4353 muls r3, r2
|
|
9c08: 125b asrs r3, r3, #9
|
|
9c0a: b2db uxtb r3, r3
|
|
if(p->yx_steep < 0) m = 255 - m;
|
|
9c0c: 69e2 ldr r2, [r4, #28]
|
|
9c0e: 2a00 cmp r2, #0
|
|
9c10: db13 blt.n 9c3a <lv_draw_mask_line+0x1ae>
|
|
if(p->inv) m = 255 - m;
|
|
9c12: 2228 movs r2, #40 ; 0x28
|
|
9c14: 5ca2 ldrb r2, [r4, r2]
|
|
9c16: 0792 lsls r2, r2, #30
|
|
9c18: d501 bpl.n 9c1e <lv_draw_mask_line+0x192>
|
|
9c1a: 43db mvns r3, r3
|
|
9c1c: b2db uxtb r3, r3
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9c1e: 1946 adds r6, r0, r5
|
|
9c20: 7832 ldrb r2, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9c22: 2bf9 cmp r3, #249 ; 0xf9
|
|
9c24: d80d bhi.n 9c42 <lv_draw_mask_line+0x1b6>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9c26: 2b05 cmp r3, #5
|
|
9c28: d90a bls.n 9c40 <lv_draw_mask_line+0x1b4>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9c2a: 4353 muls r3, r2
|
|
9c2c: 021a lsls r2, r3, #8
|
|
9c2e: 18d2 adds r2, r2, r3
|
|
9c30: 01d2 lsls r2, r2, #7
|
|
9c32: 18d3 adds r3, r2, r3
|
|
9c34: 0ddb lsrs r3, r3, #23
|
|
9c36: b2da uxtb r2, r3
|
|
9c38: e003 b.n 9c42 <lv_draw_mask_line+0x1b6>
|
|
if(p->yx_steep < 0) m = 255 - m;
|
|
9c3a: 43db mvns r3, r3
|
|
9c3c: b2db uxtb r3, r3
|
|
9c3e: e7e8 b.n 9c12 <lv_draw_mask_line+0x186>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9c40: 2200 movs r2, #0
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9c42: 7032 strb r2, [r6, #0]
|
|
if(p->inv) {
|
|
9c44: 2328 movs r3, #40 ; 0x28
|
|
9c46: 5ce3 ldrb r3, [r4, r3]
|
|
9c48: 079b lsls r3, r3, #30
|
|
9c4a: d50c bpl.n 9c66 <lv_draw_mask_line+0x1da>
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
9c4c: 2400 movs r4, #0
|
|
if(k > len) {
|
|
9c4e: 4567 cmp r7, ip
|
|
9c50: da00 bge.n 9c54 <lv_draw_mask_line+0x1c8>
|
|
9c52: e780 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9c54: 3402 adds r4, #2
|
|
if(k >= 0) {
|
|
9c56: 4663 mov r3, ip
|
|
9c58: 2b00 cmp r3, #0
|
|
9c5a: da00 bge.n 9c5e <lv_draw_mask_line+0x1d2>
|
|
9c5c: e77b b.n 9b56 <lv_draw_mask_line+0xca>
|
|
_lv_memset_00(&mask_buf[0], k);
|
|
9c5e: 4661 mov r1, ip
|
|
9c60: 4b66 ldr r3, [pc, #408] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9c62: 4798 blx r3
|
|
9c64: e777 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(k < 0) {
|
|
9c66: 3501 adds r5, #1
|
|
9c68: d500 bpl.n 9c6c <lv_draw_mask_line+0x1e0>
|
|
9c6a: e0f9 b.n 9e60 <lv_draw_mask_line+0x3d4>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9c6c: 2402 movs r4, #2
|
|
if(k <= len) {
|
|
9c6e: 42bd cmp r5, r7
|
|
9c70: dd00 ble.n 9c74 <lv_draw_mask_line+0x1e8>
|
|
9c72: e770 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
_lv_memset_00(&mask_buf[k], len - k);
|
|
9c74: 1b79 subs r1, r7, r5
|
|
9c76: 1940 adds r0, r0, r5
|
|
9c78: 4b60 ldr r3, [pc, #384] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9c7a: 4798 blx r3
|
|
9c7c: e76b b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(x_at_y > abs_x + len) {
|
|
9c7e: 4698 mov r8, r3
|
|
9c80: 18e9 adds r1, r5, r3
|
|
9c82: 458c cmp ip, r1
|
|
9c84: dd06 ble.n 9c94 <lv_draw_mask_line+0x208>
|
|
if(p->inv) {
|
|
9c86: 465b mov r3, fp
|
|
9c88: 085c lsrs r4, r3, #1
|
|
9c8a: 2601 movs r6, #1
|
|
9c8c: 4066 eors r6, r4
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9c8e: 2401 movs r4, #1
|
|
9c90: 4034 ands r4, r6
|
|
9c92: e760 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
|
|
9c94: 0211 lsls r1, r2, #8
|
|
9c96: 4379 muls r1, r7
|
|
int32_t xsi = xs >> 8;
|
|
9c98: 148e asrs r6, r1, #18
|
|
9c9a: 46b4 mov ip, r6
|
|
int32_t xsf = xs & 0xFF;
|
|
9c9c: 0389 lsls r1, r1, #14
|
|
9c9e: 0e09 lsrs r1, r1, #24
|
|
int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
|
|
9ca0: 3201 adds r2, #1
|
|
9ca2: 0212 lsls r2, r2, #8
|
|
9ca4: 437a muls r2, r7
|
|
int32_t xei = xe >> 8;
|
|
9ca6: 1496 asrs r6, r2, #18
|
|
9ca8: 46b2 mov sl, r6
|
|
k = xsi - abs_x;
|
|
9caa: 4666 mov r6, ip
|
|
9cac: 1b76 subs r6, r6, r5
|
|
9cae: 46b1 mov r9, r6
|
|
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
|
|
9cb0: 45d4 cmp ip, sl
|
|
9cb2: d05c beq.n 9d6e <lv_draw_mask_line+0x2e2>
|
|
9cb4: 2f00 cmp r7, #0
|
|
9cb6: db52 blt.n 9d5e <lv_draw_mask_line+0x2d2>
|
|
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
|
|
9cb8: 22ff movs r2, #255 ; 0xff
|
|
9cba: 1a51 subs r1, r2, r1
|
|
9cbc: 69e5 ldr r5, [r4, #28]
|
|
9cbe: 434d muls r5, r1
|
|
9cc0: 12ad asrs r5, r5, #10
|
|
if(k >= 0 && k < len) {
|
|
9cc2: 2e00 cmp r6, #0
|
|
9cc4: db19 blt.n 9cfa <lv_draw_mask_line+0x26e>
|
|
9cc6: 45c8 cmp r8, r9
|
|
9cc8: dd17 ble.n 9cfa <lv_draw_mask_line+0x26e>
|
|
m = 255 - ((y_inters * (255 - xsf)) >> 9);
|
|
9cca: 4369 muls r1, r5
|
|
9ccc: 1249 asrs r1, r1, #9
|
|
9cce: b2ca uxtb r2, r1
|
|
if(p->inv) m = 255 - m;
|
|
9cd0: 4659 mov r1, fp
|
|
9cd2: 0789 lsls r1, r1, #30
|
|
9cd4: d401 bmi.n 9cda <lv_draw_mask_line+0x24e>
|
|
m = 255 - ((y_inters * (255 - xsf)) >> 9);
|
|
9cd6: 43d2 mvns r2, r2
|
|
9cd8: b2d2 uxtb r2, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9cda: 4649 mov r1, r9
|
|
9cdc: 1846 adds r6, r0, r1
|
|
9cde: 7831 ldrb r1, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9ce0: 2af9 cmp r2, #249 ; 0xf9
|
|
9ce2: d809 bhi.n 9cf8 <lv_draw_mask_line+0x26c>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9ce4: 2a05 cmp r2, #5
|
|
9ce6: d800 bhi.n 9cea <lv_draw_mask_line+0x25e>
|
|
9ce8: e099 b.n 9e1e <lv_draw_mask_line+0x392>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9cea: 434a muls r2, r1
|
|
9cec: 0211 lsls r1, r2, #8
|
|
9cee: 1889 adds r1, r1, r2
|
|
9cf0: 01c9 lsls r1, r1, #7
|
|
9cf2: 188a adds r2, r1, r2
|
|
9cf4: 0dd2 lsrs r2, r2, #23
|
|
9cf6: b2d1 uxtb r1, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9cf8: 7031 strb r1, [r6, #0]
|
|
if(k >= 0 && k < len) {
|
|
9cfa: 464a mov r2, r9
|
|
9cfc: 1c51 adds r1, r2, #1
|
|
9cfe: d41d bmi.n 9d3c <lv_draw_mask_line+0x2b0>
|
|
9d00: 4588 cmp r8, r1
|
|
9d02: dd1b ble.n 9d3c <lv_draw_mask_line+0x2b0>
|
|
int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10;
|
|
9d04: 22ff movs r2, #255 ; 0xff
|
|
9d06: 1b55 subs r5, r2, r5
|
|
9d08: 69a2 ldr r2, [r4, #24]
|
|
9d0a: 436a muls r2, r5
|
|
9d0c: 1292 asrs r2, r2, #10
|
|
m = ((255 - y_inters) * x_inters) >> 9;
|
|
9d0e: 4355 muls r5, r2
|
|
9d10: 126d asrs r5, r5, #9
|
|
9d12: b2ea uxtb r2, r5
|
|
if(p->inv) m = 255 - m;
|
|
9d14: 2528 movs r5, #40 ; 0x28
|
|
9d16: 5d65 ldrb r5, [r4, r5]
|
|
9d18: 07ad lsls r5, r5, #30
|
|
9d1a: d501 bpl.n 9d20 <lv_draw_mask_line+0x294>
|
|
9d1c: 43d2 mvns r2, r2
|
|
9d1e: b2d2 uxtb r2, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9d20: 1841 adds r1, r0, r1
|
|
9d22: 780d ldrb r5, [r1, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9d24: 2af9 cmp r2, #249 ; 0xf9
|
|
9d26: d808 bhi.n 9d3a <lv_draw_mask_line+0x2ae>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9d28: 2a05 cmp r2, #5
|
|
9d2a: d97a bls.n 9e22 <lv_draw_mask_line+0x396>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9d2c: 436a muls r2, r5
|
|
9d2e: 0215 lsls r5, r2, #8
|
|
9d30: 18ad adds r5, r5, r2
|
|
9d32: 01ed lsls r5, r5, #7
|
|
9d34: 18aa adds r2, r5, r2
|
|
9d36: 0dd2 lsrs r2, r2, #23
|
|
9d38: b2d5 uxtb r5, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9d3a: 700d strb r5, [r1, #0]
|
|
if(p->inv) {
|
|
9d3c: 2228 movs r2, #40 ; 0x28
|
|
9d3e: 5ca2 ldrb r2, [r4, r2]
|
|
9d40: 0792 lsls r2, r2, #30
|
|
9d42: d570 bpl.n 9e26 <lv_draw_mask_line+0x39a>
|
|
if(k > len) return LV_DRAW_MASK_RES_TRANSP;
|
|
9d44: 2400 movs r4, #0
|
|
9d46: 45c8 cmp r8, r9
|
|
9d48: da00 bge.n 9d4c <lv_draw_mask_line+0x2c0>
|
|
9d4a: e704 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9d4c: 3402 adds r4, #2
|
|
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
|
|
9d4e: 464b mov r3, r9
|
|
9d50: 2b00 cmp r3, #0
|
|
9d52: da00 bge.n 9d56 <lv_draw_mask_line+0x2ca>
|
|
9d54: e6ff b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9d56: 4649 mov r1, r9
|
|
9d58: 4b28 ldr r3, [pc, #160] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9d5a: 4798 blx r3
|
|
9d5c: e6fb b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
|
|
9d5e: 2900 cmp r1, #0
|
|
9d60: d000 beq.n 9d64 <lv_draw_mask_line+0x2d8>
|
|
9d62: e0cc b.n 9efe <lv_draw_mask_line+0x472>
|
|
k--;
|
|
9d64: 3901 subs r1, #1
|
|
9d66: 468c mov ip, r1
|
|
9d68: 44e1 add r9, ip
|
|
xsf = 0xFF;
|
|
9d6a: 3101 adds r1, #1
|
|
9d6c: 31ff adds r1, #255 ; 0xff
|
|
if(k >= 0 && k < len) {
|
|
9d6e: 464e mov r6, r9
|
|
9d70: 2e00 cmp r6, #0
|
|
9d72: db1b blt.n 9dac <lv_draw_mask_line+0x320>
|
|
9d74: 45c8 cmp r8, r9
|
|
9d76: dd19 ble.n 9dac <lv_draw_mask_line+0x320>
|
|
int32_t xef = xe & 0xFF;
|
|
9d78: 0392 lsls r2, r2, #14
|
|
9d7a: 0e12 lsrs r2, r2, #24
|
|
m = (xsf + xef) >> 1;
|
|
9d7c: 1852 adds r2, r2, r1
|
|
9d7e: 0852 lsrs r2, r2, #1
|
|
if(p->inv) m = 255 - m;
|
|
9d80: 4659 mov r1, fp
|
|
9d82: 0789 lsls r1, r1, #30
|
|
9d84: d501 bpl.n 9d8a <lv_draw_mask_line+0x2fe>
|
|
9d86: 43d2 mvns r2, r2
|
|
9d88: b2d2 uxtb r2, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9d8a: 4649 mov r1, r9
|
|
9d8c: 1846 adds r6, r0, r1
|
|
9d8e: 7831 ldrb r1, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9d90: 2af9 cmp r2, #249 ; 0xf9
|
|
9d92: d80a bhi.n 9daa <lv_draw_mask_line+0x31e>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9d94: 2a05 cmp r2, #5
|
|
9d96: d907 bls.n 9da8 <lv_draw_mask_line+0x31c>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9d98: 434a muls r2, r1
|
|
9d9a: 0211 lsls r1, r2, #8
|
|
9d9c: 1889 adds r1, r1, r2
|
|
9d9e: 01c9 lsls r1, r1, #7
|
|
9da0: 188a adds r2, r1, r2
|
|
9da2: 0dd2 lsrs r2, r2, #23
|
|
9da4: b2d1 uxtb r1, r2
|
|
9da6: e000 b.n 9daa <lv_draw_mask_line+0x31e>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9da8: 2100 movs r1, #0
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9daa: 7031 strb r1, [r6, #0]
|
|
if(p->inv) {
|
|
9dac: 2228 movs r2, #40 ; 0x28
|
|
9dae: 5ca2 ldrb r2, [r4, r2]
|
|
9db0: 0792 lsls r2, r2, #30
|
|
9db2: d50c bpl.n 9dce <lv_draw_mask_line+0x342>
|
|
k = xsi - abs_x;
|
|
9db4: 4653 mov r3, sl
|
|
9db6: 1b59 subs r1, r3, r5
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
9db8: 2400 movs r4, #0
|
|
if(k >= len) {
|
|
9dba: 4588 cmp r8, r1
|
|
9dbc: dc00 bgt.n 9dc0 <lv_draw_mask_line+0x334>
|
|
9dbe: e6ca b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9dc0: 3402 adds r4, #2
|
|
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
|
|
9dc2: 2900 cmp r1, #0
|
|
9dc4: da00 bge.n 9dc8 <lv_draw_mask_line+0x33c>
|
|
9dc6: e6c6 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9dc8: 4b0c ldr r3, [pc, #48] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9dca: 4798 blx r3
|
|
9dcc: e6c3 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
k++;
|
|
9dce: 4649 mov r1, r9
|
|
9dd0: 3101 adds r1, #1
|
|
9dd2: 001a movs r2, r3
|
|
9dd4: 4588 cmp r8, r1
|
|
9dd6: dd00 ble.n 9dda <lv_draw_mask_line+0x34e>
|
|
9dd8: 000a movs r2, r1
|
|
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9dda: 2400 movs r4, #0
|
|
9ddc: 2a00 cmp r2, #0
|
|
9dde: d100 bne.n 9de2 <lv_draw_mask_line+0x356>
|
|
9de0: e6b9 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9de2: 3402 adds r4, #2
|
|
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
|
|
9de4: 2a00 cmp r2, #0
|
|
9de6: dc00 bgt.n 9dea <lv_draw_mask_line+0x35e>
|
|
9de8: e6b5 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9dea: 1a99 subs r1, r3, r2
|
|
9dec: 1880 adds r0, r0, r2
|
|
9dee: 4b03 ldr r3, [pc, #12] ; (9dfc <lv_draw_mask_line+0x370>)
|
|
9df0: 4798 blx r3
|
|
9df2: e6b0 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9df4: 2500 movs r5, #0
|
|
9df6: e0a1 b.n 9f3c <lv_draw_mask_line+0x4b0>
|
|
9df8: 2500 movs r5, #0
|
|
9dfa: e0c2 b.n 9f82 <lv_draw_mask_line+0x4f6>
|
|
9dfc: 0001104d .word 0x0001104d
|
|
k += 2;
|
|
9e00: 464a mov r2, r9
|
|
9e02: 3201 adds r2, #1
|
|
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9e04: 2401 movs r4, #1
|
|
9e06: 4590 cmp r8, r2
|
|
9e08: da00 bge.n 9e0c <lv_draw_mask_line+0x380>
|
|
9e0a: e6a4 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9e0c: 3401 adds r4, #1
|
|
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
|
|
9e0e: 2a00 cmp r2, #0
|
|
9e10: da00 bge.n 9e14 <lv_draw_mask_line+0x388>
|
|
9e12: e6a0 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9e14: 1a99 subs r1, r3, r2
|
|
9e16: 1880 adds r0, r0, r2
|
|
9e18: 4b62 ldr r3, [pc, #392] ; (9fa4 <lv_draw_mask_line+0x518>)
|
|
9e1a: 4798 blx r3
|
|
9e1c: e69b b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9e1e: 2100 movs r1, #0
|
|
9e20: e76a b.n 9cf8 <lv_draw_mask_line+0x26c>
|
|
9e22: 2500 movs r5, #0
|
|
9e24: e789 b.n 9d3a <lv_draw_mask_line+0x2ae>
|
|
k++;
|
|
9e26: 4649 mov r1, r9
|
|
9e28: 3102 adds r1, #2
|
|
9e2a: 001a movs r2, r3
|
|
9e2c: 4588 cmp r8, r1
|
|
9e2e: dd00 ble.n 9e32 <lv_draw_mask_line+0x3a6>
|
|
9e30: 000a movs r2, r1
|
|
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9e32: 2400 movs r4, #0
|
|
9e34: 2a00 cmp r2, #0
|
|
9e36: d100 bne.n 9e3a <lv_draw_mask_line+0x3ae>
|
|
9e38: e68d b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9e3a: 3402 adds r4, #2
|
|
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
|
|
9e3c: 2a00 cmp r2, #0
|
|
9e3e: dc00 bgt.n 9e42 <lv_draw_mask_line+0x3b6>
|
|
9e40: e689 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9e42: 1a99 subs r1, r3, r2
|
|
9e44: 1880 adds r0, r0, r2
|
|
9e46: 4b57 ldr r3, [pc, #348] ; (9fa4 <lv_draw_mask_line+0x518>)
|
|
9e48: 4798 blx r3
|
|
9e4a: e684 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9e4c: 2401 movs r4, #1
|
|
9e4e: e682 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9e50: 2401 movs r4, #1
|
|
9e52: e680 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
9e54: 2401 movs r4, #1
|
|
9e56: e67e b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9e58: 2400 movs r4, #0
|
|
9e5a: e67c b.n 9b56 <lv_draw_mask_line+0xca>
|
|
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
9e5c: 2400 movs r4, #0
|
|
9e5e: e67a b.n 9b56 <lv_draw_mask_line+0xca>
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
9e60: 2400 movs r4, #0
|
|
9e62: e678 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
|
|
9e64: 001f movs r7, r3
|
|
9e66: 18eb adds r3, r5, r3
|
|
9e68: 4359 muls r1, r3
|
|
9e6a: 1289 asrs r1, r1, #10
|
|
if(y_at_x < abs_y) {
|
|
9e6c: 428a cmp r2, r1
|
|
9e6e: dd00 ble.n 9e72 <lv_draw_mask_line+0x3e6>
|
|
9e70: e68c b.n 9b8c <lv_draw_mask_line+0x100>
|
|
if(p->yx_steep > 0) xe = ((abs_y << 8) * p->xy_steep) >> 10;
|
|
9e72: 0212 lsls r2, r2, #8
|
|
9e74: 69a3 ldr r3, [r4, #24]
|
|
9e76: 435a muls r2, r3
|
|
9e78: 1292 asrs r2, r2, #10
|
|
int32_t xei = xe >> 8;
|
|
9e7a: 1211 asrs r1, r2, #8
|
|
int32_t xef = xe & 0xFF;
|
|
9e7c: 23ff movs r3, #255 ; 0xff
|
|
9e7e: 401a ands r2, r3
|
|
if(xef == 0) px_h = 255;
|
|
9e80: d039 beq.n 9ef6 <lv_draw_mask_line+0x46a>
|
|
else px_h = 255 - (((255 - xef) * p->spx) >> 8);
|
|
9e82: 469c mov ip, r3
|
|
9e84: 1a9b subs r3, r3, r2
|
|
9e86: 4698 mov r8, r3
|
|
9e88: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
9e8a: 4642 mov r2, r8
|
|
9e8c: 4353 muls r3, r2
|
|
9e8e: 121b asrs r3, r3, #8
|
|
9e90: 4662 mov r2, ip
|
|
9e92: 1ad2 subs r2, r2, r3
|
|
int32_t k = xei - abs_x;
|
|
9e94: 1b49 subs r1, r1, r5
|
|
9e96: 468c mov ip, r1
|
|
if(k >= 0 && k < len) {
|
|
9e98: d41a bmi.n 9ed0 <lv_draw_mask_line+0x444>
|
|
9e9a: 42b9 cmp r1, r7
|
|
9e9c: da18 bge.n 9ed0 <lv_draw_mask_line+0x444>
|
|
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
|
|
9e9e: 4641 mov r1, r8
|
|
9ea0: 434b muls r3, r1
|
|
9ea2: 125b asrs r3, r3, #9
|
|
9ea4: b2db uxtb r3, r3
|
|
if(p->inv) m = 255 - m;
|
|
9ea6: 4659 mov r1, fp
|
|
9ea8: 0789 lsls r1, r1, #30
|
|
9eaa: d401 bmi.n 9eb0 <lv_draw_mask_line+0x424>
|
|
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
|
|
9eac: 43db mvns r3, r3
|
|
9eae: b2db uxtb r3, r3
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9eb0: 4661 mov r1, ip
|
|
9eb2: 1845 adds r5, r0, r1
|
|
9eb4: 7829 ldrb r1, [r5, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9eb6: 2bf9 cmp r3, #249 ; 0xf9
|
|
9eb8: d809 bhi.n 9ece <lv_draw_mask_line+0x442>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9eba: 2b05 cmp r3, #5
|
|
9ebc: d800 bhi.n 9ec0 <lv_draw_mask_line+0x434>
|
|
9ebe: e673 b.n 9ba8 <lv_draw_mask_line+0x11c>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9ec0: 434b muls r3, r1
|
|
9ec2: 0219 lsls r1, r3, #8
|
|
9ec4: 18c9 adds r1, r1, r3
|
|
9ec6: 01c9 lsls r1, r1, #7
|
|
9ec8: 18cb adds r3, r1, r3
|
|
9eca: 0ddb lsrs r3, r3, #23
|
|
9ecc: b2d9 uxtb r1, r3
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9ece: 7029 strb r1, [r5, #0]
|
|
k++;
|
|
9ed0: 4663 mov r3, ip
|
|
9ed2: 1c5d adds r5, r3, #1
|
|
if(p->inv) m = 255 - m;
|
|
9ed4: 2328 movs r3, #40 ; 0x28
|
|
9ed6: 4698 mov r8, r3
|
|
9ed8: 2602 movs r6, #2
|
|
9eda: e66f b.n 9bbc <lv_draw_mask_line+0x130>
|
|
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
|
|
9edc: 001f movs r7, r3
|
|
9ede: 195b adds r3, r3, r5
|
|
9ee0: 4359 muls r1, r3
|
|
9ee2: 1289 asrs r1, r1, #10
|
|
if(y_at_x > abs_y) {
|
|
9ee4: 4291 cmp r1, r2
|
|
9ee6: dd00 ble.n 9eea <lv_draw_mask_line+0x45e>
|
|
9ee8: e657 b.n 9b9a <lv_draw_mask_line+0x10e>
|
|
else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
|
|
9eea: 3201 adds r2, #1
|
|
9eec: 0212 lsls r2, r2, #8
|
|
9eee: 69a3 ldr r3, [r4, #24]
|
|
9ef0: 435a muls r2, r3
|
|
9ef2: 1292 asrs r2, r2, #10
|
|
9ef4: e7c1 b.n 9e7a <lv_draw_mask_line+0x3ee>
|
|
int32_t k = xei - abs_x;
|
|
9ef6: 1b4d subs r5, r1, r5
|
|
9ef8: 46ac mov ip, r5
|
|
if(xef == 0) px_h = 255;
|
|
9efa: 22ff movs r2, #255 ; 0xff
|
|
9efc: e7ea b.n 9ed4 <lv_draw_mask_line+0x448>
|
|
y_inters = (xsf * (-p->yx_steep)) >> 10;
|
|
9efe: 69e2 ldr r2, [r4, #28]
|
|
9f00: 4252 negs r2, r2
|
|
9f02: 434a muls r2, r1
|
|
9f04: 1292 asrs r2, r2, #10
|
|
if(k >= 0 && k < len) {
|
|
9f06: 2e00 cmp r6, #0
|
|
9f08: db19 blt.n 9f3e <lv_draw_mask_line+0x4b2>
|
|
9f0a: 45c8 cmp r8, r9
|
|
9f0c: dd17 ble.n 9f3e <lv_draw_mask_line+0x4b2>
|
|
m = (y_inters * xsf) >> 9;
|
|
9f0e: 4351 muls r1, r2
|
|
9f10: 1249 asrs r1, r1, #9
|
|
9f12: b2c9 uxtb r1, r1
|
|
if(p->inv) m = 255 - m;
|
|
9f14: 465d mov r5, fp
|
|
9f16: 07ad lsls r5, r5, #30
|
|
9f18: d501 bpl.n 9f1e <lv_draw_mask_line+0x492>
|
|
9f1a: 43c9 mvns r1, r1
|
|
9f1c: b2c9 uxtb r1, r1
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9f1e: 464d mov r5, r9
|
|
9f20: 1946 adds r6, r0, r5
|
|
9f22: 7835 ldrb r5, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9f24: 29f9 cmp r1, #249 ; 0xf9
|
|
9f26: d809 bhi.n 9f3c <lv_draw_mask_line+0x4b0>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9f28: 2905 cmp r1, #5
|
|
9f2a: d800 bhi.n 9f2e <lv_draw_mask_line+0x4a2>
|
|
9f2c: e762 b.n 9df4 <lv_draw_mask_line+0x368>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9f2e: 4369 muls r1, r5
|
|
9f30: 020d lsls r5, r1, #8
|
|
9f32: 186d adds r5, r5, r1
|
|
9f34: 01ed lsls r5, r5, #7
|
|
9f36: 1869 adds r1, r5, r1
|
|
9f38: 0dc9 lsrs r1, r1, #23
|
|
9f3a: b2cd uxtb r5, r1
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9f3c: 7035 strb r5, [r6, #0]
|
|
if(k >= 0 && k < len) {
|
|
9f3e: 4649 mov r1, r9
|
|
9f40: 3901 subs r1, #1
|
|
9f42: d41f bmi.n 9f84 <lv_draw_mask_line+0x4f8>
|
|
9f44: 4588 cmp r8, r1
|
|
9f46: dd1d ble.n 9f84 <lv_draw_mask_line+0x4f8>
|
|
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
|
|
9f48: 25ff movs r5, #255 ; 0xff
|
|
9f4a: 1aaa subs r2, r5, r2
|
|
9f4c: 69a5 ldr r5, [r4, #24]
|
|
9f4e: 426d negs r5, r5
|
|
9f50: 4355 muls r5, r2
|
|
9f52: 12ad asrs r5, r5, #10
|
|
m = 255 - (((255 - y_inters) * x_inters) >> 9);
|
|
9f54: 436a muls r2, r5
|
|
9f56: 1252 asrs r2, r2, #9
|
|
9f58: b2d2 uxtb r2, r2
|
|
if(p->inv) m = 255 - m;
|
|
9f5a: 2528 movs r5, #40 ; 0x28
|
|
9f5c: 5d65 ldrb r5, [r4, r5]
|
|
9f5e: 07ad lsls r5, r5, #30
|
|
9f60: d401 bmi.n 9f66 <lv_draw_mask_line+0x4da>
|
|
m = 255 - (((255 - y_inters) * x_inters) >> 9);
|
|
9f62: 43d2 mvns r2, r2
|
|
9f64: b2d2 uxtb r2, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9f66: 1846 adds r6, r0, r1
|
|
9f68: 7835 ldrb r5, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
9f6a: 2af9 cmp r2, #249 ; 0xf9
|
|
9f6c: d809 bhi.n 9f82 <lv_draw_mask_line+0x4f6>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
9f6e: 2a05 cmp r2, #5
|
|
9f70: d800 bhi.n 9f74 <lv_draw_mask_line+0x4e8>
|
|
9f72: e741 b.n 9df8 <lv_draw_mask_line+0x36c>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
9f74: 436a muls r2, r5
|
|
9f76: 0215 lsls r5, r2, #8
|
|
9f78: 18ad adds r5, r5, r2
|
|
9f7a: 01ed lsls r5, r5, #7
|
|
9f7c: 18aa adds r2, r5, r2
|
|
9f7e: 0dd2 lsrs r2, r2, #23
|
|
9f80: b2d5 uxtb r5, r2
|
|
mask_buf[k] = mask_mix(mask_buf[k], m);
|
|
9f82: 7035 strb r5, [r6, #0]
|
|
if(p->inv) {
|
|
9f84: 2228 movs r2, #40 ; 0x28
|
|
9f86: 5ca2 ldrb r2, [r4, r2]
|
|
9f88: 0792 lsls r2, r2, #30
|
|
9f8a: d400 bmi.n 9f8e <lv_draw_mask_line+0x502>
|
|
9f8c: e738 b.n 9e00 <lv_draw_mask_line+0x374>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
9f8e: 2402 movs r4, #2
|
|
if(k > len) k = len;
|
|
9f90: 4588 cmp r8, r1
|
|
9f92: da00 bge.n 9f96 <lv_draw_mask_line+0x50a>
|
|
9f94: e5df b.n 9b56 <lv_draw_mask_line+0xca>
|
|
else if(k > 0) _lv_memset_00(&mask_buf[0], k);
|
|
9f96: 2900 cmp r1, #0
|
|
9f98: dc00 bgt.n 9f9c <lv_draw_mask_line+0x510>
|
|
9f9a: e5dc b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9f9c: 4b01 ldr r3, [pc, #4] ; (9fa4 <lv_draw_mask_line+0x518>)
|
|
9f9e: 4798 blx r3
|
|
9fa0: e5d9 b.n 9b56 <lv_draw_mask_line+0xca>
|
|
9fa2: 46c0 nop ; (mov r8, r8)
|
|
9fa4: 0001104d .word 0x0001104d
|
|
|
|
00009fa8 <lv_draw_mask_radius>:
|
|
{
|
|
9fa8: b5f0 push {r4, r5, r6, r7, lr}
|
|
9faa: 46de mov lr, fp
|
|
9fac: 4657 mov r7, sl
|
|
9fae: 464e mov r6, r9
|
|
9fb0: 4645 mov r5, r8
|
|
9fb2: b5e0 push {r5, r6, r7, lr}
|
|
9fb4: b08d sub sp, #52 ; 0x34
|
|
9fb6: 9001 str r0, [sp, #4]
|
|
9fb8: 4689 mov r9, r1
|
|
9fba: 9300 str r3, [sp, #0]
|
|
9fbc: 9d16 ldr r5, [sp, #88] ; 0x58
|
|
bool outer = p->cfg.outer;
|
|
9fbe: 7cac ldrb r4, [r5, #18]
|
|
9fc0: 07e4 lsls r4, r4, #31
|
|
9fc2: 0fe4 lsrs r4, r4, #31
|
|
int32_t radius = p->cfg.radius;
|
|
9fc4: 2310 movs r3, #16
|
|
9fc6: 5eee ldrsh r6, [r5, r3]
|
|
lv_area_copy(&rect, &p->cfg.rect);
|
|
9fc8: 002f movs r7, r5
|
|
9fca: 3708 adds r7, #8
|
|
9fcc: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
9fce: a80a add r0, sp, #40 ; 0x28
|
|
9fd0: 5cf9 ldrb r1, [r7, r3]
|
|
9fd2: 5419 strb r1, [r3, r0]
|
|
9fd4: 3301 adds r3, #1
|
|
while(len) {
|
|
9fd6: 2b08 cmp r3, #8
|
|
9fd8: d1fa bne.n 9fd0 <lv_draw_mask_radius+0x28>
|
|
if(outer == false) {
|
|
9fda: 2c00 cmp r4, #0
|
|
9fdc: d145 bne.n a06a <lv_draw_mask_radius+0xc2>
|
|
if(abs_y < rect.y1 || abs_y > rect.y2) {
|
|
9fde: ab0a add r3, sp, #40 ; 0x28
|
|
9fe0: 2102 movs r1, #2
|
|
9fe2: 5e5b ldrsh r3, [r3, r1]
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
9fe4: 2000 movs r0, #0
|
|
if(abs_y < rect.y1 || abs_y > rect.y2) {
|
|
9fe6: 4293 cmp r3, r2
|
|
9fe8: dc4a bgt.n a080 <lv_draw_mask_radius+0xd8>
|
|
9fea: ab0a add r3, sp, #40 ; 0x28
|
|
9fec: 2106 movs r1, #6
|
|
9fee: 5e5b ldrsh r3, [r3, r1]
|
|
9ff0: 4293 cmp r3, r2
|
|
9ff2: db45 blt.n a080 <lv_draw_mask_radius+0xd8>
|
|
int32_t radius = p->cfg.radius;
|
|
9ff4: 46b4 mov ip, r6
|
|
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
|
|
9ff6: ab0a add r3, sp, #40 ; 0x28
|
|
9ff8: 2000 movs r0, #0
|
|
9ffa: 5e1b ldrsh r3, [r3, r0]
|
|
9ffc: 469a mov sl, r3
|
|
9ffe: 18f3 adds r3, r6, r3
|
|
a000: 4599 cmp r9, r3
|
|
a002: db08 blt.n a016 <lv_draw_mask_radius+0x6e>
|
|
a004: 9b00 ldr r3, [sp, #0]
|
|
a006: 444b add r3, r9
|
|
a008: 0018 movs r0, r3
|
|
a00a: ab0a add r3, sp, #40 ; 0x28
|
|
a00c: 2104 movs r1, #4
|
|
a00e: 5e5b ldrsh r3, [r3, r1]
|
|
a010: 1b9b subs r3, r3, r6
|
|
a012: 4298 cmp r0, r3
|
|
a014: dd0b ble.n a02e <lv_draw_mask_radius+0x86>
|
|
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
|
|
a016: a80a add r0, sp, #40 ; 0x28
|
|
a018: 2702 movs r7, #2
|
|
a01a: 5fc0 ldrsh r0, [r0, r7]
|
|
a01c: 1987 adds r7, r0, r6
|
|
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
|
|
a01e: 42ba cmp r2, r7
|
|
a020: db62 blt.n a0e8 <lv_draw_mask_radius+0x140>
|
|
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
|
|
a022: af0a add r7, sp, #40 ; 0x28
|
|
a024: 2106 movs r1, #6
|
|
a026: 5e7f ldrsh r7, [r7, r1]
|
|
a028: 1bbf subs r7, r7, r6
|
|
a02a: 42ba cmp r2, r7
|
|
a02c: dc5c bgt.n a0e8 <lv_draw_mask_radius+0x140>
|
|
if(outer == false) {
|
|
a02e: 2c00 cmp r4, #0
|
|
a030: d13c bne.n a0ac <lv_draw_mask_radius+0x104>
|
|
int32_t last = rect.x1 - abs_x;
|
|
a032: 4653 mov r3, sl
|
|
a034: 464a mov r2, r9
|
|
a036: 1a9c subs r4, r3, r2
|
|
if(last > len) return LV_DRAW_MASK_RES_TRANSP;
|
|
a038: 9d00 ldr r5, [sp, #0]
|
|
a03a: 2000 movs r0, #0
|
|
a03c: 42ac cmp r4, r5
|
|
a03e: dc1f bgt.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(last >= 0) {
|
|
a040: 2c00 cmp r4, #0
|
|
a042: db03 blt.n a04c <lv_draw_mask_radius+0xa4>
|
|
_lv_memset_00(&mask_buf[0], last);
|
|
a044: 0021 movs r1, r4
|
|
a046: 9801 ldr r0, [sp, #4]
|
|
a048: 4ba2 ldr r3, [pc, #648] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a04a: 4798 blx r3
|
|
int32_t first = rect.x2 - abs_x + 1;
|
|
a04c: ab0a add r3, sp, #40 ; 0x28
|
|
a04e: 2004 movs r0, #4
|
|
a050: 5e18 ldrsh r0, [r3, r0]
|
|
a052: 464b mov r3, r9
|
|
a054: 1ac0 subs r0, r0, r3
|
|
a056: 3001 adds r0, #1
|
|
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
a058: 2800 cmp r0, #0
|
|
a05a: dc00 bgt.n a05e <lv_draw_mask_radius+0xb6>
|
|
a05c: e20b b.n a476 <lv_draw_mask_radius+0x4ce>
|
|
else if(first < len) {
|
|
a05e: 4285 cmp r5, r0
|
|
a060: dc15 bgt.n a08e <lv_draw_mask_radius+0xe6>
|
|
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
a062: 2c00 cmp r4, #0
|
|
a064: d01e beq.n a0a4 <lv_draw_mask_radius+0xfc>
|
|
else return LV_DRAW_MASK_RES_CHANGED;
|
|
a066: 2002 movs r0, #2
|
|
a068: e00a b.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(abs_y < rect.y1 || abs_y > rect.y2) {
|
|
a06a: ab0a add r3, sp, #40 ; 0x28
|
|
a06c: 2102 movs r1, #2
|
|
a06e: 5e5b ldrsh r3, [r3, r1]
|
|
return LV_DRAW_MASK_RES_FULL_COVER;
|
|
a070: 2001 movs r0, #1
|
|
if(abs_y < rect.y1 || abs_y > rect.y2) {
|
|
a072: 4293 cmp r3, r2
|
|
a074: dc04 bgt.n a080 <lv_draw_mask_radius+0xd8>
|
|
a076: ab0a add r3, sp, #40 ; 0x28
|
|
a078: 2106 movs r1, #6
|
|
a07a: 5e5b ldrsh r3, [r3, r1]
|
|
a07c: 4293 cmp r3, r2
|
|
a07e: dab9 bge.n 9ff4 <lv_draw_mask_radius+0x4c>
|
|
}
|
|
a080: b00d add sp, #52 ; 0x34
|
|
a082: bc3c pop {r2, r3, r4, r5}
|
|
a084: 4690 mov r8, r2
|
|
a086: 4699 mov r9, r3
|
|
a088: 46a2 mov sl, r4
|
|
a08a: 46ab mov fp, r5
|
|
a08c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
_lv_memset_00(&mask_buf[first], len - first);
|
|
a08e: 9b00 ldr r3, [sp, #0]
|
|
a090: 1a19 subs r1, r3, r0
|
|
a092: 9b01 ldr r3, [sp, #4]
|
|
a094: 469c mov ip, r3
|
|
a096: 4460 add r0, ip
|
|
a098: 4b8e ldr r3, [pc, #568] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a09a: 4798 blx r3
|
|
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
a09c: 2c00 cmp r4, #0
|
|
a09e: d1e2 bne.n a066 <lv_draw_mask_radius+0xbe>
|
|
else return LV_DRAW_MASK_RES_CHANGED;
|
|
a0a0: 2002 movs r0, #2
|
|
a0a2: e7ed b.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
|
|
a0a4: 4285 cmp r5, r0
|
|
a0a6: d1de bne.n a066 <lv_draw_mask_radius+0xbe>
|
|
a0a8: 2001 movs r0, #1
|
|
a0aa: e7e9 b.n a080 <lv_draw_mask_radius+0xd8>
|
|
int32_t first = rect.x1 - abs_x;
|
|
a0ac: 4653 mov r3, sl
|
|
a0ae: 464a mov r2, r9
|
|
a0b0: 1a9b subs r3, r3, r2
|
|
a0b2: 43da mvns r2, r3
|
|
a0b4: 17d2 asrs r2, r2, #31
|
|
a0b6: 4013 ands r3, r2
|
|
if(first <= len) {
|
|
a0b8: 9a00 ldr r2, [sp, #0]
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
a0ba: 2002 movs r0, #2
|
|
if(first <= len) {
|
|
a0bc: 4293 cmp r3, r2
|
|
a0be: dcdf bgt.n a080 <lv_draw_mask_radius+0xd8>
|
|
int32_t last = rect.x2 - abs_x - first + 1;
|
|
a0c0: a90a add r1, sp, #40 ; 0x28
|
|
a0c2: 2004 movs r0, #4
|
|
a0c4: 5e09 ldrsh r1, [r1, r0]
|
|
a0c6: 4648 mov r0, r9
|
|
a0c8: 1a09 subs r1, r1, r0
|
|
a0ca: 1ac9 subs r1, r1, r3
|
|
a0cc: 3101 adds r1, #1
|
|
if(first + last > len) last = len - first;
|
|
a0ce: 1858 adds r0, r3, r1
|
|
a0d0: 4282 cmp r2, r0
|
|
a0d2: da00 bge.n a0d6 <lv_draw_mask_radius+0x12e>
|
|
a0d4: 1ad1 subs r1, r2, r3
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
a0d6: 2002 movs r0, #2
|
|
if(last >= 0) {
|
|
a0d8: 2900 cmp r1, #0
|
|
a0da: dbd1 blt.n a080 <lv_draw_mask_radius+0xd8>
|
|
_lv_memset_00(&mask_buf[first], last);
|
|
a0dc: 9a01 ldr r2, [sp, #4]
|
|
a0de: 18d0 adds r0, r2, r3
|
|
a0e0: 4b7c ldr r3, [pc, #496] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a0e2: 4798 blx r3
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
a0e4: 2002 movs r0, #2
|
|
a0e6: e7cb b.n a080 <lv_draw_mask_radius+0xd8>
|
|
a0e8: ab0a add r3, sp, #40 ; 0x28
|
|
a0ea: 2104 movs r1, #4
|
|
a0ec: 5e5f ldrsh r7, [r3, r1]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
a0ee: b280 uxth r0, r0
|
|
a0f0: 88db ldrh r3, [r3, #6]
|
|
a0f2: 3301 adds r3, #1
|
|
a0f4: 1a1b subs r3, r3, r0
|
|
int32_t h = lv_area_get_height(&rect);
|
|
a0f6: b21b sxth r3, r3
|
|
abs_y -= rect.y1;
|
|
a0f8: 1a12 subs r2, r2, r0
|
|
uint32_t r2 = p->cfg.radius * p->cfg.radius;
|
|
a0fa: 0030 movs r0, r6
|
|
a0fc: 4370 muls r0, r6
|
|
a0fe: 4680 mov r8, r0
|
|
if(abs_y < radius || abs_y > h - radius - 1) {
|
|
a100: b212 sxth r2, r2
|
|
a102: 4594 cmp ip, r2
|
|
a104: dd00 ble.n a108 <lv_draw_mask_radius+0x160>
|
|
a106: e1e0 b.n a4ca <lv_draw_mask_radius+0x522>
|
|
a108: 1b98 subs r0, r3, r6
|
|
a10a: 3801 subs r0, #1
|
|
a10c: 4282 cmp r2, r0
|
|
a10e: dd00 ble.n a112 <lv_draw_mask_radius+0x16a>
|
|
a110: e1b3 b.n a47a <lv_draw_mask_radius+0x4d2>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
a112: 2002 movs r0, #2
|
|
a114: e7b4 b.n a080 <lv_draw_mask_radius+0xd8>
|
|
x0.f = p->y_prev_x.f;
|
|
a116: 8b6b ldrh r3, [r5, #26]
|
|
a118: aa06 add r2, sp, #24
|
|
a11a: 8053 strh r3, [r2, #2]
|
|
x0.i = p->y_prev_x.i;
|
|
a11c: 8b2b ldrh r3, [r5, #24]
|
|
a11e: 8013 strh r3, [r2, #0]
|
|
a120: e1e9 b.n a4f6 <lv_draw_mask_radius+0x54e>
|
|
if(radius <= 256) sqrt_mask = 0x800;
|
|
a122: 2180 movs r1, #128 ; 0x80
|
|
a124: 0109 lsls r1, r1, #4
|
|
a126: 9102 str r1, [sp, #8]
|
|
a128: e1af b.n a48a <lv_draw_mask_radius+0x4e2>
|
|
x1.f = p->y_prev_x.f;
|
|
a12a: ab07 add r3, sp, #28
|
|
a12c: 8b6a ldrh r2, [r5, #26]
|
|
a12e: 805a strh r2, [r3, #2]
|
|
x1.i = p->y_prev_x.i;
|
|
a130: 8b2a ldrh r2, [r5, #24]
|
|
a132: 801a strh r2, [r3, #0]
|
|
a134: e1b8 b.n a4a8 <lv_draw_mask_radius+0x500>
|
|
if(x0.i == x1.i - 1 && x1.f == 0) {
|
|
a136: a907 add r1, sp, #28
|
|
a138: 8849 ldrh r1, [r1, #2]
|
|
a13a: 2900 cmp r1, #0
|
|
a13c: d000 beq.n a140 <lv_draw_mask_radius+0x198>
|
|
a13e: e1f5 b.n a52c <lv_draw_mask_radius+0x584>
|
|
x1.i--;
|
|
a140: a907 add r1, sp, #28
|
|
a142: 3a01 subs r2, #1
|
|
a144: 800a strh r2, [r1, #0]
|
|
x1.f = 0xFF;
|
|
a146: 22ff movs r2, #255 ; 0xff
|
|
a148: 804a strh r2, [r1, #2]
|
|
a14a: e1ef b.n a52c <lv_draw_mask_radius+0x584>
|
|
lv_opa_t m = (x0.f + x1.f) >> 1;
|
|
a14c: a906 add r1, sp, #24
|
|
a14e: 8849 ldrh r1, [r1, #2]
|
|
a150: ad07 add r5, sp, #28
|
|
a152: 886d ldrh r5, [r5, #2]
|
|
a154: 1949 adds r1, r1, r5
|
|
a156: 1049 asrs r1, r1, #1
|
|
a158: b2cf uxtb r7, r1
|
|
if(outer) m = 255 - m;
|
|
a15a: 2c00 cmp r4, #0
|
|
a15c: d001 beq.n a162 <lv_draw_mask_radius+0x1ba>
|
|
a15e: 43ff mvns r7, r7
|
|
a160: b2ff uxtb r7, r7
|
|
int32_t ofs = radius - x0.i - 1;
|
|
a162: 1af3 subs r3, r6, r3
|
|
a164: 3b01 subs r3, #1
|
|
if(kl >= 0 && kl < len) {
|
|
a166: 18c1 adds r1, r0, r3
|
|
a168: d412 bmi.n a190 <lv_draw_mask_radius+0x1e8>
|
|
a16a: 9d00 ldr r5, [sp, #0]
|
|
a16c: 42a9 cmp r1, r5
|
|
a16e: da0f bge.n a190 <lv_draw_mask_radius+0x1e8>
|
|
mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a170: 9d01 ldr r5, [sp, #4]
|
|
a172: 186e adds r6, r5, r1
|
|
a174: 7835 ldrb r5, [r6, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a176: 2ff9 cmp r7, #249 ; 0xf9
|
|
a178: d809 bhi.n a18e <lv_draw_mask_radius+0x1e6>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a17a: 2f05 cmp r7, #5
|
|
a17c: d936 bls.n a1ec <lv_draw_mask_radius+0x244>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a17e: 437d muls r5, r7
|
|
a180: 46ac mov ip, r5
|
|
a182: 022d lsls r5, r5, #8
|
|
a184: 4465 add r5, ip
|
|
a186: 01ed lsls r5, r5, #7
|
|
a188: 4465 add r5, ip
|
|
a18a: 0ded lsrs r5, r5, #23
|
|
a18c: b2ed uxtb r5, r5
|
|
mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a18e: 7035 strb r5, [r6, #0]
|
|
int32_t kr = k + (w - ofs - 1);
|
|
a190: 1ad2 subs r2, r2, r3
|
|
a192: 3a01 subs r2, #1
|
|
if(kr >= 0 && kr < len) {
|
|
a194: 1815 adds r5, r2, r0
|
|
a196: d411 bmi.n a1bc <lv_draw_mask_radius+0x214>
|
|
a198: 9b00 ldr r3, [sp, #0]
|
|
a19a: 429d cmp r5, r3
|
|
a19c: da0e bge.n a1bc <lv_draw_mask_radius+0x214>
|
|
mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a19e: 9b01 ldr r3, [sp, #4]
|
|
a1a0: 195a adds r2, r3, r5
|
|
a1a2: 7813 ldrb r3, [r2, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a1a4: 2ff9 cmp r7, #249 ; 0xf9
|
|
a1a6: d808 bhi.n a1ba <lv_draw_mask_radius+0x212>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a1a8: 2f05 cmp r7, #5
|
|
a1aa: d921 bls.n a1f0 <lv_draw_mask_radius+0x248>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a1ac: 435f muls r7, r3
|
|
a1ae: 023b lsls r3, r7, #8
|
|
a1b0: 19db adds r3, r3, r7
|
|
a1b2: 01db lsls r3, r3, #7
|
|
a1b4: 19df adds r7, r3, r7
|
|
a1b6: 0dff lsrs r7, r7, #23
|
|
a1b8: b2fb uxtb r3, r7
|
|
mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a1ba: 7013 strb r3, [r2, #0]
|
|
if(outer == false) {
|
|
a1bc: 2c00 cmp r4, #0
|
|
a1be: d019 beq.n a1f4 <lv_draw_mask_radius+0x24c>
|
|
kl++;
|
|
a1c0: 1c48 adds r0, r1, #1
|
|
a1c2: 43c3 mvns r3, r0
|
|
a1c4: 17db asrs r3, r3, #31
|
|
a1c6: 4018 ands r0, r3
|
|
if(len_tmp + first > len) len_tmp = len - first;
|
|
a1c8: 9a00 ldr r2, [sp, #0]
|
|
a1ca: 0013 movs r3, r2
|
|
a1cc: 1a11 subs r1, r2, r0
|
|
a1ce: 4295 cmp r5, r2
|
|
a1d0: dc00 bgt.n a1d4 <lv_draw_mask_radius+0x22c>
|
|
int32_t len_tmp = kr - first;
|
|
a1d2: 1a29 subs r1, r5, r0
|
|
if(first < len && len_tmp >= 0) {
|
|
a1d4: 4298 cmp r0, r3
|
|
a1d6: db00 blt.n a1da <lv_draw_mask_radius+0x232>
|
|
a1d8: e12d b.n a436 <lv_draw_mask_radius+0x48e>
|
|
a1da: 2900 cmp r1, #0
|
|
a1dc: da00 bge.n a1e0 <lv_draw_mask_radius+0x238>
|
|
a1de: e12a b.n a436 <lv_draw_mask_radius+0x48e>
|
|
_lv_memset_00(&mask_buf[first], len_tmp);
|
|
a1e0: 9b01 ldr r3, [sp, #4]
|
|
a1e2: 469c mov ip, r3
|
|
a1e4: 4460 add r0, ip
|
|
a1e6: 4b3b ldr r3, [pc, #236] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a1e8: 4798 blx r3
|
|
a1ea: e124 b.n a436 <lv_draw_mask_radius+0x48e>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a1ec: 2500 movs r5, #0
|
|
a1ee: e7ce b.n a18e <lv_draw_mask_radius+0x1e6>
|
|
a1f0: 2300 movs r3, #0
|
|
a1f2: e7e2 b.n a1ba <lv_draw_mask_radius+0x212>
|
|
if(kl > len) {
|
|
a1f4: 9c00 ldr r4, [sp, #0]
|
|
a1f6: 42a1 cmp r1, r4
|
|
a1f8: dd00 ble.n a1fc <lv_draw_mask_radius+0x254>
|
|
a1fa: e13a b.n a472 <lv_draw_mask_radius+0x4ca>
|
|
if(kl >= 0) {
|
|
a1fc: 2900 cmp r1, #0
|
|
a1fe: db02 blt.n a206 <lv_draw_mask_radius+0x25e>
|
|
_lv_memset_00(&mask_buf[0], kl);
|
|
a200: 9801 ldr r0, [sp, #4]
|
|
a202: 4b34 ldr r3, [pc, #208] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a204: 4798 blx r3
|
|
if(kr < 0) {
|
|
a206: 1c68 adds r0, r5, #1
|
|
a208: d500 bpl.n a20c <lv_draw_mask_radius+0x264>
|
|
a20a: e132 b.n a472 <lv_draw_mask_radius+0x4ca>
|
|
if(kr <= len) {
|
|
a20c: 42a0 cmp r0, r4
|
|
a20e: dd00 ble.n a212 <lv_draw_mask_radius+0x26a>
|
|
a210: e111 b.n a436 <lv_draw_mask_radius+0x48e>
|
|
_lv_memset_00(&mask_buf[kr], len - kr);
|
|
a212: 9b00 ldr r3, [sp, #0]
|
|
a214: 1a19 subs r1, r3, r0
|
|
a216: 9b01 ldr r3, [sp, #4]
|
|
a218: 469c mov ip, r3
|
|
a21a: 4460 add r0, ip
|
|
a21c: 4b2d ldr r3, [pc, #180] ; (a2d4 <lv_draw_mask_radius+0x32c>)
|
|
a21e: 4798 blx r3
|
|
a220: e109 b.n a436 <lv_draw_mask_radius+0x48e>
|
|
_lv_sqrt(r2 - (i * i), &y_next, sqrt_mask);
|
|
a222: ad09 add r5, sp, #36 ; 0x24
|
|
a224: 9b05 ldr r3, [sp, #20]
|
|
a226: 0018 movs r0, r3
|
|
a228: 4358 muls r0, r3
|
|
a22a: 4643 mov r3, r8
|
|
a22c: 1a18 subs r0, r3, r0
|
|
a22e: 9a02 ldr r2, [sp, #8]
|
|
a230: 0029 movs r1, r5
|
|
a232: 4b29 ldr r3, [pc, #164] ; (a2d8 <lv_draw_mask_radius+0x330>)
|
|
a234: 4798 blx r3
|
|
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
|
|
a236: 886a ldrh r2, [r5, #2]
|
|
a238: ab06 add r3, sp, #24
|
|
a23a: 8859 ldrh r1, [r3, #2]
|
|
a23c: 23ff movs r3, #255 ; 0xff
|
|
a23e: 1a59 subs r1, r3, r1
|
|
a240: 1a9b subs r3, r3, r2
|
|
a242: 434b muls r3, r1
|
|
a244: 125b asrs r3, r3, #9
|
|
a246: b2db uxtb r3, r3
|
|
if(outer) m = 255 - m;
|
|
a248: 2c00 cmp r4, #0
|
|
a24a: d101 bne.n a250 <lv_draw_mask_radius+0x2a8>
|
|
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
|
|
a24c: 43db mvns r3, r3
|
|
a24e: b2db uxtb r3, r3
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a250: 9d03 ldr r5, [sp, #12]
|
|
a252: 2d00 cmp r5, #0
|
|
a254: db14 blt.n a280 <lv_draw_mask_radius+0x2d8>
|
|
a256: 9800 ldr r0, [sp, #0]
|
|
a258: 4285 cmp r5, r0
|
|
a25a: da11 bge.n a280 <lv_draw_mask_radius+0x2d8>
|
|
a25c: 9901 ldr r1, [sp, #4]
|
|
a25e: 0008 movs r0, r1
|
|
a260: 46ac mov ip, r5
|
|
a262: 4460 add r0, ip
|
|
a264: 7801 ldrb r1, [r0, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a266: 2bf9 cmp r3, #249 ; 0xf9
|
|
a268: d809 bhi.n a27e <lv_draw_mask_radius+0x2d6>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a26a: 2b05 cmp r3, #5
|
|
a26c: d92b bls.n a2c6 <lv_draw_mask_radius+0x31e>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a26e: 4359 muls r1, r3
|
|
a270: 000d movs r5, r1
|
|
a272: 0209 lsls r1, r1, #8
|
|
a274: 1949 adds r1, r1, r5
|
|
a276: 01c9 lsls r1, r1, #7
|
|
a278: 1949 adds r1, r1, r5
|
|
a27a: 0dc9 lsrs r1, r1, #23
|
|
a27c: b2c9 uxtb r1, r1
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a27e: 7001 strb r1, [r0, #0]
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a280: 9d04 ldr r5, [sp, #16]
|
|
a282: 2d00 cmp r5, #0
|
|
a284: db13 blt.n a2ae <lv_draw_mask_radius+0x306>
|
|
a286: 9800 ldr r0, [sp, #0]
|
|
a288: 4285 cmp r5, r0
|
|
a28a: da10 bge.n a2ae <lv_draw_mask_radius+0x306>
|
|
a28c: 9901 ldr r1, [sp, #4]
|
|
a28e: 0008 movs r0, r1
|
|
a290: 46ac mov ip, r5
|
|
a292: 4460 add r0, ip
|
|
a294: 7801 ldrb r1, [r0, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a296: 2bf9 cmp r3, #249 ; 0xf9
|
|
a298: d808 bhi.n a2ac <lv_draw_mask_radius+0x304>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a29a: 2b05 cmp r3, #5
|
|
a29c: d915 bls.n a2ca <lv_draw_mask_radius+0x322>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a29e: 434b muls r3, r1
|
|
a2a0: 0219 lsls r1, r3, #8
|
|
a2a2: 18c9 adds r1, r1, r3
|
|
a2a4: 01c9 lsls r1, r1, #7
|
|
a2a6: 18c9 adds r1, r1, r3
|
|
a2a8: 0dc9 lsrs r1, r1, #23
|
|
a2aa: b2c9 uxtb r1, r1
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a2ac: 7001 strb r1, [r0, #0]
|
|
kl--;
|
|
a2ae: 9b03 ldr r3, [sp, #12]
|
|
a2b0: 3b01 subs r3, #1
|
|
a2b2: 9303 str r3, [sp, #12]
|
|
kr++;
|
|
a2b4: 9b04 ldr r3, [sp, #16]
|
|
a2b6: 3301 adds r3, #1
|
|
a2b8: 9304 str r3, [sp, #16]
|
|
y_prev.f = y_next.f;
|
|
a2ba: ab08 add r3, sp, #32
|
|
a2bc: 805a strh r2, [r3, #2]
|
|
i++;
|
|
a2be: 9b05 ldr r3, [sp, #20]
|
|
a2c0: 3301 adds r3, #1
|
|
a2c2: 9305 str r3, [sp, #20]
|
|
a2c4: e176 b.n a5b4 <lv_draw_mask_radius+0x60c>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a2c6: 2100 movs r1, #0
|
|
a2c8: e7d9 b.n a27e <lv_draw_mask_radius+0x2d6>
|
|
a2ca: 2100 movs r1, #0
|
|
a2cc: e7ee b.n a2ac <lv_draw_mask_radius+0x304>
|
|
a2ce: 2200 movs r2, #0
|
|
a2d0: e03f b.n a352 <lv_draw_mask_radius+0x3aa>
|
|
a2d2: 46c0 nop ; (mov r8, r8)
|
|
a2d4: 0001104d .word 0x0001104d
|
|
a2d8: 000109a9 .word 0x000109a9
|
|
a2dc: 2200 movs r2, #0
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a2de: 9801 ldr r0, [sp, #4]
|
|
a2e0: 5442 strb r2, [r0, r1]
|
|
kl--;
|
|
a2e2: 3c01 subs r4, #1
|
|
kr++;
|
|
a2e4: 2201 movs r2, #1
|
|
a2e6: 4694 mov ip, r2
|
|
a2e8: 44e2 add sl, ip
|
|
for(; i <= x1.i; i++) {
|
|
a2ea: 3701 adds r7, #1
|
|
y_prev.f = y_next.f;
|
|
a2ec: 002e movs r6, r5
|
|
for(; i <= x1.i; i++) {
|
|
a2ee: 455f cmp r7, fp
|
|
a2f0: d846 bhi.n a380 <lv_draw_mask_radius+0x3d8>
|
|
*/
|
|
LV_ATTRIBUTE_FAST_MEM static inline void sqrt_approx(lv_sqrt_res_t * q, lv_sqrt_res_t * ref, uint32_t x)
|
|
{
|
|
x = x << 8; /*Upscale for extra precision*/
|
|
|
|
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
|
|
a2f2: 0935 lsrs r5, r6, #4
|
|
a2f4: 9b02 ldr r3, [sp, #8]
|
|
a2f6: 469c mov ip, r3
|
|
a2f8: 4465 add r5, ip
|
|
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
|
|
a2fa: 0038 movs r0, r7
|
|
a2fc: 4378 muls r0, r7
|
|
a2fe: 4643 mov r3, r8
|
|
a300: 1a18 subs r0, r3, r0
|
|
x = x << 8; /*Upscale for extra precision*/
|
|
a302: 0200 lsls r0, r0, #8
|
|
uint32_t raw2 = raw * raw;
|
|
a304: 002b movs r3, r5
|
|
a306: 436b muls r3, r5
|
|
|
|
int32_t d = x - raw2;
|
|
a308: 1ac0 subs r0, r0, r3
|
|
d = (int32_t)d / (int32_t)(2 * raw) + raw;
|
|
a30a: 0069 lsls r1, r5, #1
|
|
a30c: 4bb4 ldr r3, [pc, #720] ; (a5e0 <lv_draw_mask_radius+0x638>)
|
|
a30e: 4798 blx r3
|
|
a310: 1945 adds r5, r0, r5
|
|
|
|
q->i = d >> 4;
|
|
a312: 112b asrs r3, r5, #4
|
|
a314: b29b uxth r3, r3
|
|
q->f = (d & 0xF) << 4;
|
|
a316: 012d lsls r5, r5, #4
|
|
a318: 22ff movs r2, #255 ; 0xff
|
|
a31a: 4015 ands r5, r2
|
|
m = (y_prev.f + y_next.f) >> 1;
|
|
a31c: 1976 adds r6, r6, r5
|
|
a31e: 1076 asrs r6, r6, #1
|
|
a320: b2f6 uxtb r6, r6
|
|
if(outer) m = 255 - m;
|
|
a322: 464a mov r2, r9
|
|
a324: 2a00 cmp r2, #0
|
|
a326: d001 beq.n a32c <lv_draw_mask_radius+0x384>
|
|
a328: 43f6 mvns r6, r6
|
|
a32a: b2f6 uxtb r6, r6
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a32c: 2c00 cmp r4, #0
|
|
a32e: db12 blt.n a356 <lv_draw_mask_radius+0x3ae>
|
|
a330: 9a00 ldr r2, [sp, #0]
|
|
a332: 42a2 cmp r2, r4
|
|
a334: dd0f ble.n a356 <lv_draw_mask_radius+0x3ae>
|
|
a336: 0020 movs r0, r4
|
|
a338: 9a01 ldr r2, [sp, #4]
|
|
a33a: 5d12 ldrb r2, [r2, r4]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a33c: 2ef9 cmp r6, #249 ; 0xf9
|
|
a33e: d808 bhi.n a352 <lv_draw_mask_radius+0x3aa>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a340: 2e05 cmp r6, #5
|
|
a342: d9c4 bls.n a2ce <lv_draw_mask_radius+0x326>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a344: 4372 muls r2, r6
|
|
a346: 0211 lsls r1, r2, #8
|
|
a348: 1889 adds r1, r1, r2
|
|
a34a: 01c9 lsls r1, r1, #7
|
|
a34c: 188a adds r2, r1, r2
|
|
a34e: 0dd2 lsrs r2, r2, #23
|
|
a350: b2d2 uxtb r2, r2
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a352: 9901 ldr r1, [sp, #4]
|
|
a354: 540a strb r2, [r1, r0]
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a356: 4652 mov r2, sl
|
|
a358: 2a00 cmp r2, #0
|
|
a35a: dbc2 blt.n a2e2 <lv_draw_mask_radius+0x33a>
|
|
a35c: 9a00 ldr r2, [sp, #0]
|
|
a35e: 4552 cmp r2, sl
|
|
a360: ddbf ble.n a2e2 <lv_draw_mask_radius+0x33a>
|
|
a362: 4651 mov r1, sl
|
|
a364: 9a01 ldr r2, [sp, #4]
|
|
a366: 5c52 ldrb r2, [r2, r1]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a368: 2ef9 cmp r6, #249 ; 0xf9
|
|
a36a: d8b8 bhi.n a2de <lv_draw_mask_radius+0x336>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a36c: 2e05 cmp r6, #5
|
|
a36e: d9b5 bls.n a2dc <lv_draw_mask_radius+0x334>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a370: 4356 muls r6, r2
|
|
a372: 0232 lsls r2, r6, #8
|
|
a374: 1992 adds r2, r2, r6
|
|
a376: 01d2 lsls r2, r2, #7
|
|
a378: 1996 adds r6, r2, r6
|
|
a37a: 0df6 lsrs r6, r6, #23
|
|
a37c: b2f2 uxtb r2, r6
|
|
a37e: e7ae b.n a2de <lv_draw_mask_radius+0x336>
|
|
a380: 464c mov r4, r9
|
|
a382: 465a mov r2, fp
|
|
a384: 43d2 mvns r2, r2
|
|
a386: 9e05 ldr r6, [sp, #20]
|
|
a388: 46b4 mov ip, r6
|
|
a38a: 4462 add r2, ip
|
|
a38c: 9903 ldr r1, [sp, #12]
|
|
a38e: 468c mov ip, r1
|
|
a390: 4494 add ip, r2
|
|
a392: 4662 mov r2, ip
|
|
a394: 9203 str r2, [sp, #12]
|
|
a396: 465a mov r2, fp
|
|
a398: 1c50 adds r0, r2, #1
|
|
a39a: 9a04 ldr r2, [sp, #16]
|
|
a39c: 4694 mov ip, r2
|
|
a39e: 4460 add r0, ip
|
|
a3a0: 1b82 subs r2, r0, r6
|
|
a3a2: 9204 str r2, [sp, #16]
|
|
a3a4: aa08 add r2, sp, #32
|
|
a3a6: 8055 strh r5, [r2, #2]
|
|
a3a8: aa09 add r2, sp, #36 ; 0x24
|
|
a3aa: 8013 strh r3, [r2, #0]
|
|
a3ac: 8055 strh r5, [r2, #2]
|
|
if(y_prev.f) {
|
|
a3ae: ab08 add r3, sp, #32
|
|
a3b0: 885b ldrh r3, [r3, #2]
|
|
a3b2: 2b00 cmp r3, #0
|
|
a3b4: d03d beq.n a432 <lv_draw_mask_radius+0x48a>
|
|
m = (y_prev.f * x1.f) >> 9;
|
|
a3b6: aa07 add r2, sp, #28
|
|
a3b8: 8852 ldrh r2, [r2, #2]
|
|
a3ba: 4353 muls r3, r2
|
|
a3bc: 125b asrs r3, r3, #9
|
|
a3be: b2db uxtb r3, r3
|
|
if(outer) m = 255 - m;
|
|
a3c0: 2c00 cmp r4, #0
|
|
a3c2: d001 beq.n a3c8 <lv_draw_mask_radius+0x420>
|
|
a3c4: 43db mvns r3, r3
|
|
a3c6: b2db uxtb r3, r3
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a3c8: 9a03 ldr r2, [sp, #12]
|
|
a3ca: 2a00 cmp r2, #0
|
|
a3cc: db14 blt.n a3f8 <lv_draw_mask_radius+0x450>
|
|
a3ce: 9900 ldr r1, [sp, #0]
|
|
a3d0: 0008 movs r0, r1
|
|
a3d2: 4290 cmp r0, r2
|
|
a3d4: dd10 ble.n a3f8 <lv_draw_mask_radius+0x450>
|
|
a3d6: 9901 ldr r1, [sp, #4]
|
|
a3d8: 4694 mov ip, r2
|
|
a3da: 4461 add r1, ip
|
|
a3dc: 0008 movs r0, r1
|
|
a3de: 780a ldrb r2, [r1, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a3e0: 2bf9 cmp r3, #249 ; 0xf9
|
|
a3e2: d808 bhi.n a3f6 <lv_draw_mask_radius+0x44e>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a3e4: 2b05 cmp r3, #5
|
|
a3e6: d928 bls.n a43a <lv_draw_mask_radius+0x492>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a3e8: 435a muls r2, r3
|
|
a3ea: 0211 lsls r1, r2, #8
|
|
a3ec: 1889 adds r1, r1, r2
|
|
a3ee: 01c9 lsls r1, r1, #7
|
|
a3f0: 188a adds r2, r1, r2
|
|
a3f2: 0dd2 lsrs r2, r2, #23
|
|
a3f4: b2d2 uxtb r2, r2
|
|
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
|
|
a3f6: 7002 strb r2, [r0, #0]
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a3f8: 9a04 ldr r2, [sp, #16]
|
|
a3fa: 2a00 cmp r2, #0
|
|
a3fc: db13 blt.n a426 <lv_draw_mask_radius+0x47e>
|
|
a3fe: 9900 ldr r1, [sp, #0]
|
|
a400: 0008 movs r0, r1
|
|
a402: 4290 cmp r0, r2
|
|
a404: dd0f ble.n a426 <lv_draw_mask_radius+0x47e>
|
|
a406: 9901 ldr r1, [sp, #4]
|
|
a408: 4694 mov ip, r2
|
|
a40a: 4461 add r1, ip
|
|
a40c: 780a ldrb r2, [r1, #0]
|
|
if(mask_new >= LV_OPA_MAX) return mask_act;
|
|
a40e: 2bf9 cmp r3, #249 ; 0xf9
|
|
a410: d808 bhi.n a424 <lv_draw_mask_radius+0x47c>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a412: 2b05 cmp r3, #5
|
|
a414: d913 bls.n a43e <lv_draw_mask_radius+0x496>
|
|
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
|
|
a416: 4353 muls r3, r2
|
|
a418: 021a lsls r2, r3, #8
|
|
a41a: 18d2 adds r2, r2, r3
|
|
a41c: 01d2 lsls r2, r2, #7
|
|
a41e: 18d3 adds r3, r2, r3
|
|
a420: 0ddb lsrs r3, r3, #23
|
|
a422: b2da uxtb r2, r3
|
|
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
|
|
a424: 700a strb r2, [r1, #0]
|
|
kl--;
|
|
a426: 9b03 ldr r3, [sp, #12]
|
|
a428: 3b01 subs r3, #1
|
|
a42a: 9303 str r3, [sp, #12]
|
|
kr++;
|
|
a42c: 9b04 ldr r3, [sp, #16]
|
|
a42e: 3301 adds r3, #1
|
|
a430: 9304 str r3, [sp, #16]
|
|
if(outer == 0) {
|
|
a432: 2c00 cmp r4, #0
|
|
a434: d005 beq.n a442 <lv_draw_mask_radius+0x49a>
|
|
return LV_DRAW_MASK_RES_CHANGED;
|
|
a436: 2002 movs r0, #2
|
|
a438: e622 b.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a43a: 2200 movs r2, #0
|
|
a43c: e7db b.n a3f6 <lv_draw_mask_radius+0x44e>
|
|
a43e: 2200 movs r2, #0
|
|
a440: e7f0 b.n a424 <lv_draw_mask_radius+0x47c>
|
|
kl++;
|
|
a442: 9903 ldr r1, [sp, #12]
|
|
a444: 3101 adds r1, #1
|
|
if(kl > len) {
|
|
a446: 9c00 ldr r4, [sp, #0]
|
|
a448: 42a1 cmp r1, r4
|
|
a44a: dc12 bgt.n a472 <lv_draw_mask_radius+0x4ca>
|
|
if(kl >= 0) _lv_memset_00(&mask_buf[0], kl);
|
|
a44c: 2900 cmp r1, #0
|
|
a44e: db02 blt.n a456 <lv_draw_mask_radius+0x4ae>
|
|
a450: 9801 ldr r0, [sp, #4]
|
|
a452: 4b64 ldr r3, [pc, #400] ; (a5e4 <lv_draw_mask_radius+0x63c>)
|
|
a454: 4798 blx r3
|
|
if(kr < 0) {
|
|
a456: 9b04 ldr r3, [sp, #16]
|
|
a458: 2b00 cmp r3, #0
|
|
a45a: db0a blt.n a472 <lv_draw_mask_radius+0x4ca>
|
|
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
|
|
a45c: 42a3 cmp r3, r4
|
|
a45e: daea bge.n a436 <lv_draw_mask_radius+0x48e>
|
|
a460: 9a00 ldr r2, [sp, #0]
|
|
a462: 1ad1 subs r1, r2, r3
|
|
a464: 9a01 ldr r2, [sp, #4]
|
|
a466: 469c mov ip, r3
|
|
a468: 4462 add r2, ip
|
|
a46a: 0010 movs r0, r2
|
|
a46c: 4b5d ldr r3, [pc, #372] ; (a5e4 <lv_draw_mask_radius+0x63c>)
|
|
a46e: 4798 blx r3
|
|
a470: e7e1 b.n a436 <lv_draw_mask_radius+0x48e>
|
|
return LV_DRAW_MASK_RES_TRANSP;
|
|
a472: 2000 movs r0, #0
|
|
a474: e604 b.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
|
|
a476: 2000 movs r0, #0
|
|
a478: e602 b.n a080 <lv_draw_mask_radius+0xd8>
|
|
if(radius <= 256) sqrt_mask = 0x800;
|
|
a47a: 2080 movs r0, #128 ; 0x80
|
|
a47c: 0040 lsls r0, r0, #1
|
|
a47e: 4584 cmp ip, r0
|
|
a480: dc00 bgt.n a484 <lv_draw_mask_radius+0x4dc>
|
|
a482: e64e b.n a122 <lv_draw_mask_radius+0x17a>
|
|
a484: 2180 movs r1, #128 ; 0x80
|
|
a486: 0209 lsls r1, r1, #8
|
|
a488: 9102 str r1, [sp, #8]
|
|
y = radius - (h - abs_y) + 1;
|
|
a48a: 1a9a subs r2, r3, r2
|
|
a48c: 1ab0 subs r0, r6, r2
|
|
a48e: 1c43 adds r3, r0, #1
|
|
a490: 469b mov fp, r3
|
|
if((y - 1) == p->y_prev) {
|
|
a492: 696b ldr r3, [r5, #20]
|
|
a494: 4298 cmp r0, r3
|
|
a496: d100 bne.n a49a <lv_draw_mask_radius+0x4f2>
|
|
a498: e647 b.n a12a <lv_draw_mask_radius+0x182>
|
|
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
|
|
a49a: 4340 muls r0, r0
|
|
a49c: 4643 mov r3, r8
|
|
a49e: 1a18 subs r0, r3, r0
|
|
a4a0: 9a02 ldr r2, [sp, #8]
|
|
a4a2: a907 add r1, sp, #28
|
|
a4a4: 4b50 ldr r3, [pc, #320] ; (a5e8 <lv_draw_mask_radius+0x640>)
|
|
a4a6: 4798 blx r3
|
|
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
|
|
a4a8: 4658 mov r0, fp
|
|
a4aa: 4340 muls r0, r0
|
|
a4ac: 4643 mov r3, r8
|
|
a4ae: 1a18 subs r0, r3, r0
|
|
a4b0: 9a02 ldr r2, [sp, #8]
|
|
a4b2: a906 add r1, sp, #24
|
|
a4b4: 4b4c ldr r3, [pc, #304] ; (a5e8 <lv_draw_mask_radius+0x640>)
|
|
a4b6: 4798 blx r3
|
|
p->y_prev = y;
|
|
a4b8: 465b mov r3, fp
|
|
a4ba: 616b str r3, [r5, #20]
|
|
p->y_prev_x.f = x0.f;
|
|
a4bc: ab06 add r3, sp, #24
|
|
a4be: 885b ldrh r3, [r3, #2]
|
|
a4c0: 836b strh r3, [r5, #26]
|
|
p->y_prev_x.i = x0.i;
|
|
a4c2: ab06 add r3, sp, #24
|
|
a4c4: 881b ldrh r3, [r3, #0]
|
|
a4c6: 832b strh r3, [r5, #24]
|
|
a4c8: e028 b.n a51c <lv_draw_mask_radius+0x574>
|
|
if(radius <= 256) sqrt_mask = 0x800;
|
|
a4ca: 2380 movs r3, #128 ; 0x80
|
|
a4cc: 005b lsls r3, r3, #1
|
|
a4ce: 459c cmp ip, r3
|
|
a4d0: dd00 ble.n a4d4 <lv_draw_mask_radius+0x52c>
|
|
a4d2: e081 b.n a5d8 <lv_draw_mask_radius+0x630>
|
|
a4d4: 2380 movs r3, #128 ; 0x80
|
|
a4d6: 011b lsls r3, r3, #4
|
|
a4d8: 9302 str r3, [sp, #8]
|
|
y = radius - abs_y;
|
|
a4da: 1ab3 subs r3, r6, r2
|
|
a4dc: 469b mov fp, r3
|
|
if(y == p->y_prev) {
|
|
a4de: 696b ldr r3, [r5, #20]
|
|
a4e0: 459b cmp fp, r3
|
|
a4e2: d100 bne.n a4e6 <lv_draw_mask_radius+0x53e>
|
|
a4e4: e617 b.n a116 <lv_draw_mask_radius+0x16e>
|
|
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
|
|
a4e6: 4658 mov r0, fp
|
|
a4e8: 4340 muls r0, r0
|
|
a4ea: 4643 mov r3, r8
|
|
a4ec: 1a18 subs r0, r3, r0
|
|
a4ee: 9a02 ldr r2, [sp, #8]
|
|
a4f0: a906 add r1, sp, #24
|
|
a4f2: 4b3d ldr r3, [pc, #244] ; (a5e8 <lv_draw_mask_radius+0x640>)
|
|
a4f4: 4798 blx r3
|
|
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
|
|
a4f6: 465b mov r3, fp
|
|
a4f8: 3b01 subs r3, #1
|
|
a4fa: 0018 movs r0, r3
|
|
a4fc: 9303 str r3, [sp, #12]
|
|
a4fe: 4358 muls r0, r3
|
|
a500: 4642 mov r2, r8
|
|
a502: 1a10 subs r0, r2, r0
|
|
a504: 9a02 ldr r2, [sp, #8]
|
|
a506: a907 add r1, sp, #28
|
|
a508: 4b37 ldr r3, [pc, #220] ; (a5e8 <lv_draw_mask_radius+0x640>)
|
|
a50a: 4798 blx r3
|
|
p->y_prev = y - 1;
|
|
a50c: 9b03 ldr r3, [sp, #12]
|
|
a50e: 616b str r3, [r5, #20]
|
|
p->y_prev_x.f = x1.f;
|
|
a510: ab06 add r3, sp, #24
|
|
a512: 88db ldrh r3, [r3, #6]
|
|
a514: 836b strh r3, [r5, #26]
|
|
p->y_prev_x.i = x1.i;
|
|
a516: ab06 add r3, sp, #24
|
|
a518: 889b ldrh r3, [r3, #4]
|
|
a51a: 832b strh r3, [r5, #24]
|
|
if(x0.i == x1.i - 1 && x1.f == 0) {
|
|
a51c: ab06 add r3, sp, #24
|
|
a51e: 881b ldrh r3, [r3, #0]
|
|
a520: aa07 add r2, sp, #28
|
|
a522: 8812 ldrh r2, [r2, #0]
|
|
a524: 1e51 subs r1, r2, #1
|
|
a526: 428b cmp r3, r1
|
|
a528: d100 bne.n a52c <lv_draw_mask_radius+0x584>
|
|
a52a: e604 b.n a136 <lv_draw_mask_radius+0x18e>
|
|
int32_t k = rect.x1 - abs_x; /*First relevant coordinate on the of the mask*/
|
|
a52c: 4652 mov r2, sl
|
|
a52e: 4649 mov r1, r9
|
|
a530: 1a50 subs r0, r2, r1
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
a532: 3701 adds r7, #1
|
|
a534: 1aba subs r2, r7, r2
|
|
int32_t w = lv_area_get_width(&rect);
|
|
a536: b212 sxth r2, r2
|
|
if(x0.i == x1.i) {
|
|
a538: a907 add r1, sp, #28
|
|
a53a: 8809 ldrh r1, [r1, #0]
|
|
a53c: 4299 cmp r1, r3
|
|
a53e: d100 bne.n a542 <lv_draw_mask_radius+0x59a>
|
|
a540: e604 b.n a14c <lv_draw_mask_radius+0x1a4>
|
|
int32_t ofs = radius - (x0.i + 1);
|
|
a542: 3301 adds r3, #1
|
|
a544: 1af6 subs r6, r6, r3
|
|
int32_t kl = k + ofs;
|
|
a546: 1983 adds r3, r0, r6
|
|
a548: 0019 movs r1, r3
|
|
a54a: 9303 str r3, [sp, #12]
|
|
int32_t kr = k + (w - ofs - 1);
|
|
a54c: 1b96 subs r6, r2, r6
|
|
a54e: 3e01 subs r6, #1
|
|
a550: 1833 adds r3, r6, r0
|
|
a552: 001d movs r5, r3
|
|
a554: 9304 str r3, [sp, #16]
|
|
if(outer) {
|
|
a556: 2c00 cmp r4, #0
|
|
a558: d012 beq.n a580 <lv_draw_mask_radius+0x5d8>
|
|
int32_t first = kl + 1;
|
|
a55a: 1c48 adds r0, r1, #1
|
|
a55c: 43c3 mvns r3, r0
|
|
a55e: 17db asrs r3, r3, #31
|
|
a560: 4018 ands r0, r3
|
|
if(len_tmp + first > len) len_tmp = len - first;
|
|
a562: 9e00 ldr r6, [sp, #0]
|
|
a564: 0033 movs r3, r6
|
|
a566: 1a31 subs r1, r6, r0
|
|
a568: 42b5 cmp r5, r6
|
|
a56a: dc00 bgt.n a56e <lv_draw_mask_radius+0x5c6>
|
|
int32_t len_tmp = kr - first;
|
|
a56c: 1a29 subs r1, r5, r0
|
|
if(first < len && len_tmp >= 0) {
|
|
a56e: 4298 cmp r0, r3
|
|
a570: da06 bge.n a580 <lv_draw_mask_radius+0x5d8>
|
|
a572: 2900 cmp r1, #0
|
|
a574: db04 blt.n a580 <lv_draw_mask_radius+0x5d8>
|
|
_lv_memset_00(&mask_buf[first], len_tmp);
|
|
a576: 9b01 ldr r3, [sp, #4]
|
|
a578: 469c mov ip, r3
|
|
a57a: 4460 add r0, ip
|
|
a57c: 4b19 ldr r3, [pc, #100] ; (a5e4 <lv_draw_mask_radius+0x63c>)
|
|
a57e: 4798 blx r3
|
|
uint32_t i = x0.i + 1;
|
|
a580: ab06 add r3, sp, #24
|
|
a582: 8818 ldrh r0, [r3, #0]
|
|
a584: 1c43 adds r3, r0, #1
|
|
a586: 9305 str r3, [sp, #20]
|
|
_lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask);
|
|
a588: ad08 add r5, sp, #32
|
|
a58a: 4340 muls r0, r0
|
|
a58c: 4643 mov r3, r8
|
|
a58e: 1a18 subs r0, r3, r0
|
|
a590: 9a02 ldr r2, [sp, #8]
|
|
a592: 0029 movs r1, r5
|
|
a594: 4b14 ldr r3, [pc, #80] ; (a5e8 <lv_draw_mask_radius+0x640>)
|
|
a596: 4798 blx r3
|
|
if(y_prev.f == 0) {
|
|
a598: 886b ldrh r3, [r5, #2]
|
|
a59a: 2b00 cmp r3, #0
|
|
a59c: d105 bne.n a5aa <lv_draw_mask_radius+0x602>
|
|
y_prev.i--;
|
|
a59e: ab08 add r3, sp, #32
|
|
a5a0: 881a ldrh r2, [r3, #0]
|
|
a5a2: 3a01 subs r2, #1
|
|
a5a4: 801a strh r2, [r3, #0]
|
|
y_prev.f = 0xFF;
|
|
a5a6: 22ff movs r2, #255 ; 0xff
|
|
a5a8: 805a strh r2, [r3, #2]
|
|
if(y_prev.i >= y) {
|
|
a5aa: ab08 add r3, sp, #32
|
|
a5ac: 881b ldrh r3, [r3, #0]
|
|
a5ae: 459b cmp fp, r3
|
|
a5b0: dc00 bgt.n a5b4 <lv_draw_mask_radius+0x60c>
|
|
a5b2: e636 b.n a222 <lv_draw_mask_radius+0x27a>
|
|
for(; i <= x1.i; i++) {
|
|
a5b4: ab07 add r3, sp, #28
|
|
a5b6: 881b ldrh r3, [r3, #0]
|
|
a5b8: 469b mov fp, r3
|
|
a5ba: 9f05 ldr r7, [sp, #20]
|
|
a5bc: 455f cmp r7, fp
|
|
a5be: d900 bls.n a5c2 <lv_draw_mask_radius+0x61a>
|
|
a5c0: e6f5 b.n a3ae <lv_draw_mask_radius+0x406>
|
|
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
|
|
a5c2: ab08 add r3, sp, #32
|
|
a5c4: 881a ldrh r2, [r3, #0]
|
|
a5c6: 0112 lsls r2, r2, #4
|
|
a5c8: 9202 str r2, [sp, #8]
|
|
a5ca: 885e ldrh r6, [r3, #2]
|
|
a5cc: 9b04 ldr r3, [sp, #16]
|
|
a5ce: 469a mov sl, r3
|
|
a5d0: 9b03 ldr r3, [sp, #12]
|
|
if(mask_new <= LV_OPA_MIN) return 0;
|
|
a5d2: 46a1 mov r9, r4
|
|
a5d4: 001c movs r4, r3
|
|
a5d6: e68c b.n a2f2 <lv_draw_mask_radius+0x34a>
|
|
if(radius <= 256) sqrt_mask = 0x800;
|
|
a5d8: 2380 movs r3, #128 ; 0x80
|
|
a5da: 021b lsls r3, r3, #8
|
|
a5dc: 9302 str r3, [sp, #8]
|
|
a5de: e77c b.n a4da <lv_draw_mask_radius+0x532>
|
|
a5e0: 00017995 .word 0x00017995
|
|
a5e4: 0001104d .word 0x0001104d
|
|
a5e8: 000109a9 .word 0x000109a9
|
|
|
|
0000a5ec <lv_draw_mask_add>:
|
|
{
|
|
a5ec: b510 push {r4, lr}
|
|
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
|
|
a5ee: 4b0c ldr r3, [pc, #48] ; (a620 <lv_draw_mask_add+0x34>)
|
|
a5f0: 681b ldr r3, [r3, #0]
|
|
a5f2: 2b00 cmp r3, #0
|
|
a5f4: d00c beq.n a610 <lv_draw_mask_add+0x24>
|
|
a5f6: 4a0a ldr r2, [pc, #40] ; (a620 <lv_draw_mask_add+0x34>)
|
|
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
|
|
a5f8: 2301 movs r3, #1
|
|
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
|
|
a5fa: 6894 ldr r4, [r2, #8]
|
|
a5fc: 2c00 cmp r4, #0
|
|
a5fe: d008 beq.n a612 <lv_draw_mask_add+0x26>
|
|
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
|
|
a600: 3301 adds r3, #1
|
|
a602: b2db uxtb r3, r3
|
|
a604: 3208 adds r2, #8
|
|
a606: 2b10 cmp r3, #16
|
|
a608: d1f7 bne.n a5fa <lv_draw_mask_add+0xe>
|
|
return LV_MASK_ID_INV;
|
|
a60a: 2001 movs r0, #1
|
|
a60c: 4240 negs r0, r0
|
|
a60e: e006 b.n a61e <lv_draw_mask_add+0x32>
|
|
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
|
|
a610: 2300 movs r3, #0
|
|
LV_GC_ROOT(_lv_draw_mask_list[i]).param = param;
|
|
a612: 4a03 ldr r2, [pc, #12] ; (a620 <lv_draw_mask_add+0x34>)
|
|
a614: 00dc lsls r4, r3, #3
|
|
a616: 50a0 str r0, [r4, r2]
|
|
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id;
|
|
a618: 1912 adds r2, r2, r4
|
|
a61a: 6051 str r1, [r2, #4]
|
|
return i;
|
|
a61c: b218 sxth r0, r3
|
|
}
|
|
a61e: bd10 pop {r4, pc}
|
|
a620: 20004d98 .word 0x20004d98
|
|
|
|
0000a624 <lv_draw_mask_apply>:
|
|
{
|
|
a624: b5f0 push {r4, r5, r6, r7, lr}
|
|
a626: b087 sub sp, #28
|
|
a628: 9003 str r0, [sp, #12]
|
|
a62a: 9104 str r1, [sp, #16]
|
|
a62c: 0016 movs r6, r2
|
|
a62e: 001f movs r7, r3
|
|
while(m->param) {
|
|
a630: 4b10 ldr r3, [pc, #64] ; (a674 <lv_draw_mask_apply+0x50>)
|
|
a632: 681b ldr r3, [r3, #0]
|
|
a634: 2b00 cmp r3, #0
|
|
a636: d01b beq.n a670 <lv_draw_mask_apply+0x4c>
|
|
a638: 4c0e ldr r4, [pc, #56] ; (a674 <lv_draw_mask_apply+0x50>)
|
|
a63a: 2200 movs r2, #0
|
|
a63c: 9205 str r2, [sp, #20]
|
|
a63e: e003 b.n a648 <lv_draw_mask_apply+0x24>
|
|
m++;
|
|
a640: 3408 adds r4, #8
|
|
while(m->param) {
|
|
a642: 6823 ldr r3, [r4, #0]
|
|
a644: 2b00 cmp r3, #0
|
|
a646: d00d beq.n a664 <lv_draw_mask_apply+0x40>
|
|
res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param);
|
|
a648: 9300 str r3, [sp, #0]
|
|
a64a: 681d ldr r5, [r3, #0]
|
|
a64c: 003b movs r3, r7
|
|
a64e: 0032 movs r2, r6
|
|
a650: 9904 ldr r1, [sp, #16]
|
|
a652: 9803 ldr r0, [sp, #12]
|
|
a654: 47a8 blx r5
|
|
if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP;
|
|
a656: 2800 cmp r0, #0
|
|
a658: d008 beq.n a66c <lv_draw_mask_apply+0x48>
|
|
else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true;
|
|
a65a: 2802 cmp r0, #2
|
|
a65c: d1f0 bne.n a640 <lv_draw_mask_apply+0x1c>
|
|
a65e: 2301 movs r3, #1
|
|
a660: 9305 str r3, [sp, #20]
|
|
a662: e7ed b.n a640 <lv_draw_mask_apply+0x1c>
|
|
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
|
|
a664: 9805 ldr r0, [sp, #20]
|
|
a666: 1e43 subs r3, r0, #1
|
|
a668: 4198 sbcs r0, r3
|
|
a66a: 3001 adds r0, #1
|
|
}
|
|
a66c: b007 add sp, #28
|
|
a66e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
|
|
a670: 2001 movs r0, #1
|
|
a672: e7fb b.n a66c <lv_draw_mask_apply+0x48>
|
|
a674: 20004d98 .word 0x20004d98
|
|
|
|
0000a678 <lv_draw_mask_remove_id>:
|
|
if(id != LV_MASK_ID_INV) {
|
|
a678: 1c43 adds r3, r0, #1
|
|
a67a: d007 beq.n a68c <lv_draw_mask_remove_id+0x14>
|
|
p = LV_GC_ROOT(_lv_draw_mask_list[id]).param;
|
|
a67c: 4a04 ldr r2, [pc, #16] ; (a690 <lv_draw_mask_remove_id+0x18>)
|
|
a67e: 00c3 lsls r3, r0, #3
|
|
a680: 5898 ldr r0, [r3, r2]
|
|
LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL;
|
|
a682: 2100 movs r1, #0
|
|
a684: 5099 str r1, [r3, r2]
|
|
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
|
|
a686: 18d3 adds r3, r2, r3
|
|
a688: 6059 str r1, [r3, #4]
|
|
}
|
|
a68a: 4770 bx lr
|
|
void * p = NULL;
|
|
a68c: 2000 movs r0, #0
|
|
return p;
|
|
a68e: e7fc b.n a68a <lv_draw_mask_remove_id+0x12>
|
|
a690: 20004d98 .word 0x20004d98
|
|
|
|
0000a694 <lv_draw_mask_remove_custom>:
|
|
{
|
|
a694: b530 push {r4, r5, lr}
|
|
a696: 0001 movs r1, r0
|
|
a698: 4b08 ldr r3, [pc, #32] ; (a6bc <lv_draw_mask_remove_custom+0x28>)
|
|
a69a: 001a movs r2, r3
|
|
a69c: 3280 adds r2, #128 ; 0x80
|
|
void * p = NULL;
|
|
a69e: 2000 movs r0, #0
|
|
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
|
|
a6a0: 2400 movs r4, #0
|
|
a6a2: e002 b.n a6aa <lv_draw_mask_remove_custom+0x16>
|
|
a6a4: 3308 adds r3, #8
|
|
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
|
|
a6a6: 4293 cmp r3, r2
|
|
a6a8: d006 beq.n a6b8 <lv_draw_mask_remove_custom+0x24>
|
|
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
|
|
a6aa: 685d ldr r5, [r3, #4]
|
|
a6ac: 428d cmp r5, r1
|
|
a6ae: d1f9 bne.n a6a4 <lv_draw_mask_remove_custom+0x10>
|
|
p = LV_GC_ROOT(_lv_draw_mask_list[i]).param;
|
|
a6b0: 6818 ldr r0, [r3, #0]
|
|
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
|
|
a6b2: 601c str r4, [r3, #0]
|
|
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL;
|
|
a6b4: 605c str r4, [r3, #4]
|
|
a6b6: e7f5 b.n a6a4 <lv_draw_mask_remove_custom+0x10>
|
|
}
|
|
a6b8: bd30 pop {r4, r5, pc}
|
|
a6ba: 46c0 nop ; (mov r8, r8)
|
|
a6bc: 20004d98 .word 0x20004d98
|
|
|
|
0000a6c0 <lv_draw_mask_get_cnt>:
|
|
{
|
|
a6c0: 4b07 ldr r3, [pc, #28] ; (a6e0 <lv_draw_mask_get_cnt+0x20>)
|
|
a6c2: 001a movs r2, r3
|
|
a6c4: 3280 adds r2, #128 ; 0x80
|
|
uint8_t cnt = 0;
|
|
a6c6: 2000 movs r0, #0
|
|
a6c8: e002 b.n a6d0 <lv_draw_mask_get_cnt+0x10>
|
|
a6ca: 3308 adds r3, #8
|
|
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
|
|
a6cc: 4293 cmp r3, r2
|
|
a6ce: d005 beq.n a6dc <lv_draw_mask_get_cnt+0x1c>
|
|
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
|
|
a6d0: 6819 ldr r1, [r3, #0]
|
|
a6d2: 2900 cmp r1, #0
|
|
a6d4: d0f9 beq.n a6ca <lv_draw_mask_get_cnt+0xa>
|
|
a6d6: 3001 adds r0, #1
|
|
a6d8: b2c0 uxtb r0, r0
|
|
a6da: e7f6 b.n a6ca <lv_draw_mask_get_cnt+0xa>
|
|
}
|
|
a6dc: 4770 bx lr
|
|
a6de: 46c0 nop ; (mov r8, r8)
|
|
a6e0: 20004d98 .word 0x20004d98
|
|
|
|
0000a6e4 <lv_draw_mask_line_points_init>:
|
|
{
|
|
a6e4: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
a6e6: 46ce mov lr, r9
|
|
a6e8: 4647 mov r7, r8
|
|
a6ea: b580 push {r7, lr}
|
|
a6ec: 0004 movs r4, r0
|
|
a6ee: 000f movs r7, r1
|
|
a6f0: 0015 movs r5, r2
|
|
a6f2: 4698 mov r8, r3
|
|
a6f4: ab08 add r3, sp, #32
|
|
a6f6: 2600 movs r6, #0
|
|
a6f8: 5f9e ldrsh r6, [r3, r6]
|
|
a6fa: ab09 add r3, sp, #36 ; 0x24
|
|
a6fc: 781b ldrb r3, [r3, #0]
|
|
a6fe: 4699 mov r9, r3
|
|
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
|
|
a700: 212c movs r1, #44 ; 0x2c
|
|
a702: 4b51 ldr r3, [pc, #324] ; (a848 <lv_draw_mask_line_points_init+0x164>)
|
|
a704: 4798 blx r3
|
|
if(p1y > p2y) {
|
|
a706: 42b5 cmp r5, r6
|
|
a708: dd05 ble.n a716 <lv_draw_mask_line_points_init+0x32>
|
|
a70a: 002b movs r3, r5
|
|
p1y = t;
|
|
a70c: 0035 movs r5, r6
|
|
p2y = p1y;
|
|
a70e: 001e movs r6, r3
|
|
if(p1y > p2y) {
|
|
a710: 003b movs r3, r7
|
|
p1x = t;
|
|
a712: 4647 mov r7, r8
|
|
p2x = p1x;
|
|
a714: 4698 mov r8, r3
|
|
param->cfg.p1.x = p1x;
|
|
a716: 8127 strh r7, [r4, #8]
|
|
param->cfg.p1.y = p1y;
|
|
a718: 8165 strh r5, [r4, #10]
|
|
param->cfg.p2.x = p2x;
|
|
a71a: 4643 mov r3, r8
|
|
a71c: 81a3 strh r3, [r4, #12]
|
|
param->cfg.p2.y = p2y;
|
|
a71e: 81e6 strh r6, [r4, #14]
|
|
param->cfg.side = side;
|
|
a720: 2303 movs r3, #3
|
|
a722: 464a mov r2, r9
|
|
a724: 4013 ands r3, r2
|
|
a726: 7c22 ldrb r2, [r4, #16]
|
|
a728: 2103 movs r1, #3
|
|
a72a: 438a bics r2, r1
|
|
a72c: 431a orrs r2, r3
|
|
a72e: 7422 strb r2, [r4, #16]
|
|
param->origo.x = p1x;
|
|
a730: 8267 strh r7, [r4, #18]
|
|
param->origo.y = p1y;
|
|
a732: 82a5 strh r5, [r4, #20]
|
|
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
|
|
a734: 4643 mov r3, r8
|
|
a736: 1bdf subs r7, r3, r7
|
|
a738: 1b76 subs r6, r6, r5
|
|
a73a: 17fb asrs r3, r7, #31
|
|
a73c: 18fa adds r2, r7, r3
|
|
a73e: 405a eors r2, r3
|
|
a740: 17f1 asrs r1, r6, #31
|
|
a742: 1873 adds r3, r6, r1
|
|
a744: 404b eors r3, r1
|
|
a746: 2501 movs r5, #1
|
|
a748: 429a cmp r2, r3
|
|
a74a: dc00 bgt.n a74e <lv_draw_mask_line_points_init+0x6a>
|
|
a74c: 2500 movs r5, #0
|
|
a74e: 2128 movs r1, #40 ; 0x28
|
|
a750: 2201 movs r2, #1
|
|
a752: 002b movs r3, r5
|
|
a754: 4013 ands r3, r2
|
|
a756: 5c65 ldrb r5, [r4, r1]
|
|
a758: 2001 movs r0, #1
|
|
a75a: 4385 bics r5, r0
|
|
a75c: 431d orrs r5, r3
|
|
a75e: 5465 strb r5, [r4, r1]
|
|
param->yx_steep = 0;
|
|
a760: 2300 movs r3, #0
|
|
a762: 61e3 str r3, [r4, #28]
|
|
param->xy_steep = 0;
|
|
a764: 61a3 str r3, [r4, #24]
|
|
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
|
|
a766: 4939 ldr r1, [pc, #228] ; (a84c <lv_draw_mask_line_points_init+0x168>)
|
|
a768: 6021 str r1, [r4, #0]
|
|
param->dsc.type = LV_DRAW_MASK_TYPE_LINE;
|
|
a76a: 7123 strb r3, [r4, #4]
|
|
if(param->flat) {
|
|
a76c: 422a tst r2, r5
|
|
a76e: d027 beq.n a7c0 <lv_draw_mask_line_points_init+0xdc>
|
|
if(dx) {
|
|
a770: 2f00 cmp r7, #0
|
|
a772: d007 beq.n a784 <lv_draw_mask_line_points_init+0xa0>
|
|
m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/
|
|
a774: 0039 movs r1, r7
|
|
a776: 2080 movs r0, #128 ; 0x80
|
|
a778: 0340 lsls r0, r0, #13
|
|
a77a: 4b35 ldr r3, [pc, #212] ; (a850 <lv_draw_mask_line_points_init+0x16c>)
|
|
a77c: 4798 blx r3
|
|
param->yx_steep = (m * dy) >> 10;
|
|
a77e: 4370 muls r0, r6
|
|
a780: 1280 asrs r0, r0, #10
|
|
a782: 61e0 str r0, [r4, #28]
|
|
if(dy) {
|
|
a784: 2e00 cmp r6, #0
|
|
a786: d007 beq.n a798 <lv_draw_mask_line_points_init+0xb4>
|
|
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
|
|
a788: 0031 movs r1, r6
|
|
a78a: 2080 movs r0, #128 ; 0x80
|
|
a78c: 0340 lsls r0, r0, #13
|
|
a78e: 4b30 ldr r3, [pc, #192] ; (a850 <lv_draw_mask_line_points_init+0x16c>)
|
|
a790: 4798 blx r3
|
|
param->xy_steep = (m * dx) >> 10;
|
|
a792: 4347 muls r7, r0
|
|
a794: 12bf asrs r7, r7, #10
|
|
a796: 61a7 str r7, [r4, #24]
|
|
param->steep = param->yx_steep;
|
|
a798: 69e3 ldr r3, [r4, #28]
|
|
a79a: 6223 str r3, [r4, #32]
|
|
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
|
|
a79c: 7c22 ldrb r2, [r4, #16]
|
|
a79e: 2303 movs r3, #3
|
|
a7a0: 4013 ands r3, r2
|
|
a7a2: d124 bne.n a7ee <lv_draw_mask_line_points_init+0x10a>
|
|
a7a4: 2228 movs r2, #40 ; 0x28
|
|
a7a6: 5ca3 ldrb r3, [r4, r2]
|
|
a7a8: 2102 movs r1, #2
|
|
a7aa: 438b bics r3, r1
|
|
a7ac: 54a3 strb r3, [r4, r2]
|
|
param->spx = param->steep >> 2;
|
|
a7ae: 6a23 ldr r3, [r4, #32]
|
|
a7b0: 109a asrs r2, r3, #2
|
|
if(param->steep < 0) param->spx = -param->spx;
|
|
a7b2: 2b00 cmp r3, #0
|
|
a7b4: db45 blt.n a842 <lv_draw_mask_line_points_init+0x15e>
|
|
param->spx = param->steep >> 2;
|
|
a7b6: 6262 str r2, [r4, #36] ; 0x24
|
|
}
|
|
a7b8: bc0c pop {r2, r3}
|
|
a7ba: 4690 mov r8, r2
|
|
a7bc: 4699 mov r9, r3
|
|
a7be: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(dy) {
|
|
a7c0: 2e00 cmp r6, #0
|
|
a7c2: d007 beq.n a7d4 <lv_draw_mask_line_points_init+0xf0>
|
|
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
|
|
a7c4: 0031 movs r1, r6
|
|
a7c6: 2080 movs r0, #128 ; 0x80
|
|
a7c8: 0340 lsls r0, r0, #13
|
|
a7ca: 4b21 ldr r3, [pc, #132] ; (a850 <lv_draw_mask_line_points_init+0x16c>)
|
|
a7cc: 4798 blx r3
|
|
param->xy_steep = (m * dx) >> 10;
|
|
a7ce: 4378 muls r0, r7
|
|
a7d0: 1280 asrs r0, r0, #10
|
|
a7d2: 61a0 str r0, [r4, #24]
|
|
if(dx) {
|
|
a7d4: 2f00 cmp r7, #0
|
|
a7d6: d007 beq.n a7e8 <lv_draw_mask_line_points_init+0x104>
|
|
m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/
|
|
a7d8: 0039 movs r1, r7
|
|
a7da: 2080 movs r0, #128 ; 0x80
|
|
a7dc: 0340 lsls r0, r0, #13
|
|
a7de: 4b1c ldr r3, [pc, #112] ; (a850 <lv_draw_mask_line_points_init+0x16c>)
|
|
a7e0: 4798 blx r3
|
|
param->yx_steep = (m * dy) >> 10;
|
|
a7e2: 4370 muls r0, r6
|
|
a7e4: 1280 asrs r0, r0, #10
|
|
a7e6: 61e0 str r0, [r4, #28]
|
|
param->steep = param->xy_steep;
|
|
a7e8: 69a3 ldr r3, [r4, #24]
|
|
a7ea: 6223 str r3, [r4, #32]
|
|
a7ec: e7d6 b.n a79c <lv_draw_mask_line_points_init+0xb8>
|
|
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
|
|
a7ee: 2b01 cmp r3, #1
|
|
a7f0: d00c beq.n a80c <lv_draw_mask_line_points_init+0x128>
|
|
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) {
|
|
a7f2: 2b02 cmp r3, #2
|
|
a7f4: d010 beq.n a818 <lv_draw_mask_line_points_init+0x134>
|
|
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) {
|
|
a7f6: 2b03 cmp r3, #3
|
|
a7f8: d1d9 bne.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
if(param->steep > 0) param->inv = 0;
|
|
a7fa: 6a23 ldr r3, [r4, #32]
|
|
a7fc: 2b00 cmp r3, #0
|
|
a7fe: dd1a ble.n a836 <lv_draw_mask_line_points_init+0x152>
|
|
a800: 2228 movs r2, #40 ; 0x28
|
|
a802: 5ca3 ldrb r3, [r4, r2]
|
|
a804: 2102 movs r1, #2
|
|
a806: 438b bics r3, r1
|
|
a808: 54a3 strb r3, [r4, r2]
|
|
a80a: e7d0 b.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
|
|
a80c: 2228 movs r2, #40 ; 0x28
|
|
a80e: 5ca3 ldrb r3, [r4, r2]
|
|
a810: 2102 movs r1, #2
|
|
a812: 430b orrs r3, r1
|
|
a814: 54a3 strb r3, [r4, r2]
|
|
a816: e7ca b.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
if(param->steep > 0) param->inv = 1;
|
|
a818: 6a23 ldr r3, [r4, #32]
|
|
a81a: 2b00 cmp r3, #0
|
|
a81c: dd05 ble.n a82a <lv_draw_mask_line_points_init+0x146>
|
|
a81e: 2228 movs r2, #40 ; 0x28
|
|
a820: 5ca3 ldrb r3, [r4, r2]
|
|
a822: 2102 movs r1, #2
|
|
a824: 430b orrs r3, r1
|
|
a826: 54a3 strb r3, [r4, r2]
|
|
a828: e7c1 b.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
else param->inv = 0;
|
|
a82a: 2228 movs r2, #40 ; 0x28
|
|
a82c: 5ca3 ldrb r3, [r4, r2]
|
|
a82e: 2102 movs r1, #2
|
|
a830: 438b bics r3, r1
|
|
a832: 54a3 strb r3, [r4, r2]
|
|
a834: e7bb b.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
else param->inv = 1;
|
|
a836: 2228 movs r2, #40 ; 0x28
|
|
a838: 5ca3 ldrb r3, [r4, r2]
|
|
a83a: 2102 movs r1, #2
|
|
a83c: 430b orrs r3, r1
|
|
a83e: 54a3 strb r3, [r4, r2]
|
|
a840: e7b5 b.n a7ae <lv_draw_mask_line_points_init+0xca>
|
|
if(param->steep < 0) param->spx = -param->spx;
|
|
a842: 4252 negs r2, r2
|
|
a844: 6262 str r2, [r4, #36] ; 0x24
|
|
}
|
|
a846: e7b7 b.n a7b8 <lv_draw_mask_line_points_init+0xd4>
|
|
a848: 0001104d .word 0x0001104d
|
|
a84c: 00009a8d .word 0x00009a8d
|
|
a850: 00017995 .word 0x00017995
|
|
|
|
0000a854 <lv_draw_mask_radius_init>:
|
|
{
|
|
a854: b5f0 push {r4, r5, r6, r7, lr}
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
a856: 88cc ldrh r4, [r1, #6]
|
|
a858: 3401 adds r4, #1
|
|
a85a: 884d ldrh r5, [r1, #2]
|
|
a85c: 1b64 subs r4, r4, r5
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
a85e: 888e ldrh r6, [r1, #4]
|
|
a860: 3601 adds r6, #1
|
|
a862: 880d ldrh r5, [r1, #0]
|
|
a864: 1b76 subs r6, r6, r5
|
|
int32_t short_side = LV_MATH_MIN(w, h);
|
|
a866: 1c25 adds r5, r4, #0
|
|
a868: b224 sxth r4, r4
|
|
a86a: b237 sxth r7, r6
|
|
a86c: 42bc cmp r4, r7
|
|
a86e: dd00 ble.n a872 <lv_draw_mask_radius_init+0x1e>
|
|
a870: 1c35 adds r5, r6, #0
|
|
a872: b22d sxth r5, r5
|
|
if(radius > short_side >> 1) radius = short_side >> 1;
|
|
a874: 106d asrs r5, r5, #1
|
|
a876: 42aa cmp r2, r5
|
|
a878: dd00 ble.n a87c <lv_draw_mask_radius_init+0x28>
|
|
a87a: b22a sxth r2, r5
|
|
a87c: 000e movs r6, r1
|
|
a87e: 3608 adds r6, #8
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
a880: 0004 movs r4, r0
|
|
a882: 3408 adds r4, #8
|
|
*d8 = *s8;
|
|
a884: 780d ldrb r5, [r1, #0]
|
|
a886: 7025 strb r5, [r4, #0]
|
|
d8++;
|
|
a888: 3401 adds r4, #1
|
|
s8++;
|
|
a88a: 3101 adds r1, #1
|
|
while(len) {
|
|
a88c: 428e cmp r6, r1
|
|
a88e: d1f9 bne.n a884 <lv_draw_mask_radius_init+0x30>
|
|
param->cfg.radius = radius;
|
|
a890: 8202 strh r2, [r0, #16]
|
|
param->cfg.outer = inv ? 1 : 0;
|
|
a892: 2201 movs r2, #1
|
|
a894: 401a ands r2, r3
|
|
a896: 7c83 ldrb r3, [r0, #18]
|
|
a898: 2101 movs r1, #1
|
|
a89a: 438b bics r3, r1
|
|
a89c: 4313 orrs r3, r2
|
|
a89e: 7483 strb r3, [r0, #18]
|
|
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius;
|
|
a8a0: 4b05 ldr r3, [pc, #20] ; (a8b8 <lv_draw_mask_radius_init+0x64>)
|
|
a8a2: 6003 str r3, [r0, #0]
|
|
param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS;
|
|
a8a4: 2302 movs r3, #2
|
|
a8a6: 7103 strb r3, [r0, #4]
|
|
param->y_prev = INT32_MIN;
|
|
a8a8: 2380 movs r3, #128 ; 0x80
|
|
a8aa: 061b lsls r3, r3, #24
|
|
a8ac: 6143 str r3, [r0, #20]
|
|
param->y_prev_x.f = 0;
|
|
a8ae: 2300 movs r3, #0
|
|
a8b0: 8343 strh r3, [r0, #26]
|
|
param->y_prev_x.i = 0;
|
|
a8b2: 8303 strh r3, [r0, #24]
|
|
}
|
|
a8b4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
a8b6: 46c0 nop ; (mov r8, r8)
|
|
a8b8: 00009fa9 .word 0x00009fa9
|
|
|
|
0000a8bc <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)
|
|
{
|
|
a8bc: b5f0 push {r4, r5, r6, r7, lr}
|
|
a8be: 46de mov lr, fp
|
|
a8c0: 4657 mov r7, sl
|
|
a8c2: 464e mov r6, r9
|
|
a8c4: 4645 mov r5, r8
|
|
a8c6: b5e0 push {r5, r6, r7, lr}
|
|
a8c8: b091 sub sp, #68 ; 0x44
|
|
a8ca: 900d str r0, [sp, #52] ; 0x34
|
|
a8cc: 9102 str r1, [sp, #8]
|
|
a8ce: 920c str r2, [sp, #48] ; 0x30
|
|
int32_t s_left = sw >> 1;
|
|
a8d0: 104b asrs r3, r1, #1
|
|
a8d2: 001e movs r6, r3
|
|
a8d4: 930f str r3, [sp, #60] ; 0x3c
|
|
int32_t s_right = (sw >> 1);
|
|
if((sw & 1) == 0) s_left--;
|
|
a8d6: 2301 movs r3, #1
|
|
a8d8: 400b ands r3, r1
|
|
a8da: 425a negs r2, r3
|
|
a8dc: 4153 adcs r3, r2
|
|
a8de: 1af3 subs r3, r6, r3
|
|
a8e0: 001d movs r5, r3
|
|
a8e2: 930e str r3, [sp, #56] ; 0x38
|
|
|
|
/*Horizontal blur*/
|
|
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
|
|
a8e4: 0004 movs r4, r0
|
|
a8e6: 0047 lsls r7, r0, #1
|
|
a8e8: 0038 movs r0, r7
|
|
a8ea: 4b88 ldr r3, [pc, #544] ; (ab0c <shadow_blur_corner+0x250>)
|
|
a8ec: 4798 blx r3
|
|
a8ee: 9005 str r0, [sp, #20]
|
|
int32_t x;
|
|
int32_t y;
|
|
|
|
uint16_t * sh_ups_tmp_buf = sh_ups_buf;
|
|
|
|
for(y = 0; y < size; y++) {
|
|
a8f0: 1e23 subs r3, r4, #0
|
|
a8f2: dc00 bgt.n a8f6 <shadow_blur_corner+0x3a>
|
|
a8f4: e0db b.n aaae <shadow_blur_corner+0x1f2>
|
|
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
|
|
a8f6: 1eb9 subs r1, r7, #2
|
|
a8f8: 9103 str r1, [sp, #12]
|
|
a8fa: 3b01 subs r3, #1
|
|
a8fc: 9306 str r3, [sp, #24]
|
|
a8fe: 468c mov ip, r1
|
|
a900: 4460 add r0, ip
|
|
a902: 9007 str r0, [sp, #28]
|
|
a904: 0019 movs r1, r3
|
|
a906: 1b49 subs r1, r1, r5
|
|
a908: 9108 str r1, [sp, #32]
|
|
a90a: 0029 movs r1, r5
|
|
a90c: 0028 movs r0, r5
|
|
a90e: 950a str r5, [sp, #40] ; 0x28
|
|
a910: 4b7f ldr r3, [pc, #508] ; (ab10 <shadow_blur_corner+0x254>)
|
|
a912: 46a4 mov ip, r4
|
|
a914: 4463 add r3, ip
|
|
a916: 1a5b subs r3, r3, r1
|
|
a918: 005d lsls r5, r3, #1
|
|
a91a: 950b str r5, [sp, #44] ; 0x2c
|
|
a91c: 0049 lsls r1, r1, #1
|
|
a91e: 000a movs r2, r1
|
|
a920: 9609 str r6, [sp, #36] ; 0x24
|
|
a922: 0071 lsls r1, r6, #1
|
|
a924: 4688 mov r8, r1
|
|
a926: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
a928: 4699 mov r9, r3
|
|
a92a: 2300 movs r3, #0
|
|
a92c: 9300 str r3, [sp, #0]
|
|
a92e: 2502 movs r5, #2
|
|
a930: 426d negs r5, r5
|
|
a932: 1a2b subs r3, r5, r0
|
|
uint32_t left_val;
|
|
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
|
|
else left_val = sh_ups_tmp_buf[x - s_left - 1];
|
|
v += left_val;
|
|
}
|
|
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
|
|
a934: 9701 str r7, [sp, #4]
|
|
a936: 469b mov fp, r3
|
|
a938: 46ca mov sl, r9
|
|
a93a: 4691 mov r9, r2
|
|
a93c: e024 b.n a988 <shadow_blur_corner+0xcc>
|
|
v -= right_val;
|
|
a93e: 1a9b subs r3, r3, r2
|
|
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
|
|
a940: 2e00 cmp r6, #0
|
|
a942: db10 blt.n a966 <shadow_blur_corner+0xaa>
|
|
else left_val = sh_ups_tmp_buf[x - s_left - 1];
|
|
a944: 882a ldrh r2, [r5, #0]
|
|
v += left_val;
|
|
a946: 18d3 adds r3, r2, r3
|
|
a948: 3f02 subs r7, #2
|
|
a94a: 3d02 subs r5, #2
|
|
a94c: 3e01 subs r6, #1
|
|
for(x = size - 1; x >= 0; x--) {
|
|
a94e: 455e cmp r6, fp
|
|
a950: d00c beq.n a96c <shadow_blur_corner+0xb0>
|
|
sh_ups_blur_buf[x] = v;
|
|
a952: 803b strh r3, [r7, #0]
|
|
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
|
|
a954: 1981 adds r1, r0, r6
|
|
a956: 2200 movs r2, #0
|
|
a958: 428c cmp r4, r1
|
|
a95a: ddf0 ble.n a93e <shadow_blur_corner+0x82>
|
|
a95c: 464a mov r2, r9
|
|
a95e: 18aa adds r2, r5, r2
|
|
a960: 4442 add r2, r8
|
|
a962: 8852 ldrh r2, [r2, #2]
|
|
a964: e7eb b.n a93e <shadow_blur_corner+0x82>
|
|
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
|
|
a966: 4652 mov r2, sl
|
|
a968: 8812 ldrh r2, [r2, #0]
|
|
a96a: e7ec b.n a946 <shadow_blur_corner+0x8a>
|
|
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
|
|
a96c: 9d01 ldr r5, [sp, #4]
|
|
a96e: 002a movs r2, r5
|
|
a970: 9905 ldr r1, [sp, #20]
|
|
a972: 4650 mov r0, sl
|
|
a974: 4b67 ldr r3, [pc, #412] ; (ab14 <shadow_blur_corner+0x258>)
|
|
a976: 4798 blx r3
|
|
sh_ups_tmp_buf += size;
|
|
a978: 46ac mov ip, r5
|
|
a97a: 44e2 add sl, ip
|
|
for(y = 0; y < size; y++) {
|
|
a97c: 9b00 ldr r3, [sp, #0]
|
|
a97e: 3301 adds r3, #1
|
|
a980: 9300 str r3, [sp, #0]
|
|
a982: 42a3 cmp r3, r4
|
|
a984: db00 blt.n a988 <shadow_blur_corner+0xcc>
|
|
a986: e0aa b.n aade <shadow_blur_corner+0x222>
|
|
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
|
|
a988: 9a02 ldr r2, [sp, #8]
|
|
a98a: 9204 str r2, [sp, #16]
|
|
a98c: 4653 mov r3, sl
|
|
a98e: 9903 ldr r1, [sp, #12]
|
|
a990: 5a5b ldrh r3, [r3, r1]
|
|
a992: 4353 muls r3, r2
|
|
for(x = size - 1; x >= 0; x--) {
|
|
a994: 9a06 ldr r2, [sp, #24]
|
|
a996: 2a00 cmp r2, #0
|
|
a998: dbe8 blt.n a96c <shadow_blur_corner+0xb0>
|
|
a99a: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
a99c: 4452 add r2, sl
|
|
a99e: 0015 movs r5, r2
|
|
a9a0: 9a08 ldr r2, [sp, #32]
|
|
a9a2: 1e56 subs r6, r2, #1
|
|
a9a4: 9f07 ldr r7, [sp, #28]
|
|
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
|
|
a9a6: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
a9a8: 1c50 adds r0, r2, #1
|
|
a9aa: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
a9ac: 4694 mov ip, r2
|
|
a9ae: 4460 add r0, ip
|
|
a9b0: e7cf b.n a952 <shadow_blur_corner+0x96>
|
|
}
|
|
|
|
/*Vertical blur*/
|
|
uint32_t i;
|
|
sh_ups_buf[0] = sh_ups_buf[0] / sw;
|
|
for(i = 1; i < (uint32_t)size * size; i++) {
|
|
a9b2: 3601 adds r6, #1
|
|
a9b4: 3502 adds r5, #2
|
|
a9b6: 42a6 cmp r6, r4
|
|
a9b8: d207 bcs.n a9ca <shadow_blur_corner+0x10e>
|
|
if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1];
|
|
a9ba: 8868 ldrh r0, [r5, #2]
|
|
a9bc: 882b ldrh r3, [r5, #0]
|
|
a9be: 4283 cmp r3, r0
|
|
a9c0: d0f7 beq.n a9b2 <shadow_blur_corner+0xf6>
|
|
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
|
|
a9c2: 9904 ldr r1, [sp, #16]
|
|
a9c4: 47c8 blx r9
|
|
a9c6: 8068 strh r0, [r5, #2]
|
|
a9c8: e7f3 b.n a9b2 <shadow_blur_corner+0xf6>
|
|
a9ca: 4644 mov r4, r8
|
|
}
|
|
|
|
for(x = 0; x < size; x++) {
|
|
a9cc: 2c00 cmp r4, #0
|
|
a9ce: dc00 bgt.n a9d2 <shadow_blur_corner+0x116>
|
|
a9d0: e07b b.n aaca <shadow_blur_corner+0x20e>
|
|
a9d2: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
a9d4: 9303 str r3, [sp, #12]
|
|
a9d6: 980e ldr r0, [sp, #56] ; 0x38
|
|
a9d8: 1c42 adds r2, r0, #1
|
|
a9da: 0013 movs r3, r2
|
|
a9dc: 437b muls r3, r7
|
|
a9de: 9308 str r3, [sp, #32]
|
|
a9e0: 9d0f ldr r5, [sp, #60] ; 0x3c
|
|
a9e2: 426b negs r3, r5
|
|
a9e4: 437b muls r3, r7
|
|
a9e6: 469b mov fp, r3
|
|
a9e8: 990d ldr r1, [sp, #52] ; 0x34
|
|
a9ea: 004b lsls r3, r1, #1
|
|
a9ec: 425b negs r3, r3
|
|
a9ee: 435a muls r2, r3
|
|
a9f0: 9200 str r2, [sp, #0]
|
|
v -= top_val;
|
|
|
|
/*Add the bottom pixel*/
|
|
uint32_t bottom_val;
|
|
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
|
|
else bottom_val = sh_ups_buf[(size - 1) * size + x];
|
|
a9f2: 000b movs r3, r1
|
|
a9f4: 3b01 subs r3, #1
|
|
a9f6: 434b muls r3, r1
|
|
a9f8: 005b lsls r3, r3, #1
|
|
a9fa: 9302 str r3, [sp, #8]
|
|
a9fc: 2300 movs r3, #0
|
|
a9fe: 9306 str r3, [sp, #24]
|
|
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
|
|
aa00: 0003 movs r3, r0
|
|
aa02: 2201 movs r2, #1
|
|
aa04: 4694 mov ip, r2
|
|
aa06: 4463 add r3, ip
|
|
aa08: 469a mov sl, r3
|
|
aa0a: 46b8 mov r8, r7
|
|
aa0c: 465b mov r3, fp
|
|
aa0e: 9301 str r3, [sp, #4]
|
|
aa10: 46ab mov fp, r5
|
|
aa12: e037 b.n aa84 <shadow_blur_corner+0x1c8>
|
|
aa14: 2100 movs r1, #0
|
|
aa16: e00f b.n aa38 <shadow_blur_corner+0x17c>
|
|
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
|
|
aa18: 4648 mov r0, r9
|
|
aa1a: 8800 ldrh r0, [r0, #0]
|
|
aa1c: e016 b.n aa4c <shadow_blur_corner+0x190>
|
|
else bottom_val = sh_ups_buf[(size - 1) * size + x];
|
|
aa1e: 4641 mov r1, r8
|
|
aa20: 9802 ldr r0, [sp, #8]
|
|
aa22: 5a09 ldrh r1, [r1, r0]
|
|
v += bottom_val;
|
|
aa24: 18cb adds r3, r1, r3
|
|
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
|
|
aa26: 3201 adds r2, #1
|
|
aa28: 44b9 add r9, r7
|
|
aa2a: 19f6 adds r6, r6, r7
|
|
aa2c: 3402 adds r4, #2
|
|
aa2e: 4562 cmp r2, ip
|
|
aa30: da12 bge.n aa58 <shadow_blur_corner+0x19c>
|
|
sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT);
|
|
aa32: 2b00 cmp r3, #0
|
|
aa34: dbee blt.n aa14 <shadow_blur_corner+0x158>
|
|
aa36: 1199 asrs r1, r3, #6
|
|
aa38: 8021 strh r1, [r4, #0]
|
|
aa3a: 0011 movs r1, r2
|
|
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
|
|
aa3c: 4658 mov r0, fp
|
|
aa3e: 1a10 subs r0, r2, r0
|
|
aa40: 2800 cmp r0, #0
|
|
aa42: dde9 ble.n aa18 <shadow_blur_corner+0x15c>
|
|
else top_val = sh_ups_buf[(y - s_right) * size + x];
|
|
aa44: 9801 ldr r0, [sp, #4]
|
|
aa46: 1980 adds r0, r0, r6
|
|
aa48: 9d00 ldr r5, [sp, #0]
|
|
aa4a: 5b40 ldrh r0, [r0, r5]
|
|
v -= top_val;
|
|
aa4c: 1a1b subs r3, r3, r0
|
|
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
|
|
aa4e: 4451 add r1, sl
|
|
aa50: 4561 cmp r1, ip
|
|
aa52: dae4 bge.n aa1e <shadow_blur_corner+0x162>
|
|
aa54: 8831 ldrh r1, [r6, #0]
|
|
aa56: e7e5 b.n aa24 <shadow_blur_corner+0x168>
|
|
aa58: 4645 mov r5, r8
|
|
aa5a: 46b8 mov r8, r7
|
|
aa5c: 9f07 ldr r7, [sp, #28]
|
|
aa5e: 4664 mov r4, ip
|
|
aa60: 2300 movs r3, #0
|
|
aa62: 4641 mov r1, r8
|
|
}
|
|
|
|
/*Write back the result into `sh_ups_buf`*/
|
|
sh_ups_tmp_buf = &sh_ups_buf[x];
|
|
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
|
|
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
|
|
aa64: 883a ldrh r2, [r7, #0]
|
|
aa66: 802a strh r2, [r5, #0]
|
|
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
|
|
aa68: 3301 adds r3, #1
|
|
aa6a: 186d adds r5, r5, r1
|
|
aa6c: 3702 adds r7, #2
|
|
aa6e: 42a3 cmp r3, r4
|
|
aa70: dbf8 blt.n aa64 <shadow_blur_corner+0x1a8>
|
|
aa72: 4688 mov r8, r1
|
|
for(x = 0; x < size; x++) {
|
|
aa74: 9b06 ldr r3, [sp, #24]
|
|
aa76: 3301 adds r3, #1
|
|
aa78: 9306 str r3, [sp, #24]
|
|
aa7a: 9a03 ldr r2, [sp, #12]
|
|
aa7c: 3202 adds r2, #2
|
|
aa7e: 9203 str r2, [sp, #12]
|
|
aa80: 42a3 cmp r3, r4
|
|
aa82: da22 bge.n aaca <shadow_blur_corner+0x20e>
|
|
sh_ups_tmp_buf = &sh_ups_buf[x];
|
|
aa84: 9a03 ldr r2, [sp, #12]
|
|
aa86: 0015 movs r5, r2
|
|
int32_t v = sh_ups_tmp_buf[0] * sw;
|
|
aa88: 8813 ldrh r3, [r2, #0]
|
|
aa8a: 9904 ldr r1, [sp, #16]
|
|
aa8c: 434b muls r3, r1
|
|
aa8e: 9908 ldr r1, [sp, #32]
|
|
aa90: 000e movs r6, r1
|
|
aa92: 4694 mov ip, r2
|
|
aa94: 4466 add r6, ip
|
|
aa96: 9a05 ldr r2, [sp, #20]
|
|
aa98: 0017 movs r7, r2
|
|
aa9a: 4694 mov ip, r2
|
|
aa9c: 46a9 mov r9, r5
|
|
aa9e: 2200 movs r2, #0
|
|
aaa0: 9707 str r7, [sp, #28]
|
|
aaa2: 4647 mov r7, r8
|
|
aaa4: 0021 movs r1, r4
|
|
aaa6: 4664 mov r4, ip
|
|
aaa8: 468c mov ip, r1
|
|
aaaa: 46a8 mov r8, r5
|
|
aaac: e7c1 b.n aa32 <shadow_blur_corner+0x176>
|
|
sh_ups_buf[0] = sh_ups_buf[0] / sw;
|
|
aaae: 9b02 ldr r3, [sp, #8]
|
|
aab0: 9304 str r3, [sp, #16]
|
|
aab2: 9d0c ldr r5, [sp, #48] ; 0x30
|
|
aab4: 8828 ldrh r0, [r5, #0]
|
|
aab6: 0019 movs r1, r3
|
|
aab8: 4b17 ldr r3, [pc, #92] ; (ab18 <shadow_blur_corner+0x25c>)
|
|
aaba: 4798 blx r3
|
|
aabc: 8028 strh r0, [r5, #0]
|
|
for(i = 1; i < (uint32_t)size * size; i++) {
|
|
aabe: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
aac0: 0013 movs r3, r2
|
|
aac2: 4353 muls r3, r2
|
|
aac4: 4698 mov r8, r3
|
|
aac6: 2b01 cmp r3, #1
|
|
aac8: d817 bhi.n aafa <shadow_blur_corner+0x23e>
|
|
}
|
|
}
|
|
|
|
_lv_mem_buf_release(sh_ups_blur_buf);
|
|
aaca: 9805 ldr r0, [sp, #20]
|
|
aacc: 4b13 ldr r3, [pc, #76] ; (ab1c <shadow_blur_corner+0x260>)
|
|
aace: 4798 blx r3
|
|
}
|
|
aad0: b011 add sp, #68 ; 0x44
|
|
aad2: bc3c pop {r2, r3, r4, r5}
|
|
aad4: 4690 mov r8, r2
|
|
aad6: 4699 mov r9, r3
|
|
aad8: 46a2 mov sl, r4
|
|
aada: 46ab mov fp, r5
|
|
aadc: bdf0 pop {r4, r5, r6, r7, pc}
|
|
aade: 9f01 ldr r7, [sp, #4]
|
|
sh_ups_buf[0] = sh_ups_buf[0] / sw;
|
|
aae0: 9d0c ldr r5, [sp, #48] ; 0x30
|
|
aae2: 8828 ldrh r0, [r5, #0]
|
|
aae4: 9904 ldr r1, [sp, #16]
|
|
aae6: 4b0c ldr r3, [pc, #48] ; (ab18 <shadow_blur_corner+0x25c>)
|
|
aae8: 4798 blx r3
|
|
aaea: 8028 strh r0, [r5, #0]
|
|
for(i = 1; i < (uint32_t)size * size; i++) {
|
|
aaec: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
aaee: 0013 movs r3, r2
|
|
aaf0: 4353 muls r3, r2
|
|
aaf2: 4698 mov r8, r3
|
|
aaf4: 2b01 cmp r3, #1
|
|
aaf6: d800 bhi.n aafa <shadow_blur_corner+0x23e>
|
|
aaf8: e76b b.n a9d2 <shadow_blur_corner+0x116>
|
|
aafa: 9d0c ldr r5, [sp, #48] ; 0x30
|
|
aafc: 2601 movs r6, #1
|
|
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
|
|
aafe: 4b06 ldr r3, [pc, #24] ; (ab18 <shadow_blur_corner+0x25c>)
|
|
ab00: 4699 mov r9, r3
|
|
ab02: 4643 mov r3, r8
|
|
ab04: 46a0 mov r8, r4
|
|
ab06: 001c movs r4, r3
|
|
ab08: e757 b.n a9ba <shadow_blur_corner+0xfe>
|
|
ab0a: 46c0 nop ; (mov r8, r8)
|
|
ab0c: 00010ec1 .word 0x00010ec1
|
|
ab10: 7ffffffe .word 0x7ffffffe
|
|
ab14: 00010c8d .word 0x00010c8d
|
|
ab18: 00017995 .word 0x00017995
|
|
ab1c: 00010bd5 .word 0x00010bd5
|
|
|
|
0000ab20 <lv_draw_rect_dsc_init>:
|
|
{
|
|
ab20: b510 push {r4, lr}
|
|
ab22: 0004 movs r4, r0
|
|
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
|
|
ab24: 2154 movs r1, #84 ; 0x54
|
|
ab26: 4b23 ldr r3, [pc, #140] ; (abb4 <lv_draw_rect_dsc_init+0x94>)
|
|
ab28: 4798 blx r3
|
|
dsc->bg_color = LV_COLOR_WHITE;
|
|
ab2a: 4b23 ldr r3, [pc, #140] ; (abb8 <lv_draw_rect_dsc_init+0x98>)
|
|
ab2c: 881b ldrh r3, [r3, #0]
|
|
ab2e: 8063 strh r3, [r4, #2]
|
|
dsc->bg_grad_color = LV_COLOR_BLACK;
|
|
ab30: 7923 ldrb r3, [r4, #4]
|
|
ab32: 221f movs r2, #31
|
|
ab34: 4393 bics r3, r2
|
|
ab36: 7123 strb r3, [r4, #4]
|
|
ab38: 88a1 ldrh r1, [r4, #4]
|
|
ab3a: 4b20 ldr r3, [pc, #128] ; (abbc <lv_draw_rect_dsc_init+0x9c>)
|
|
ab3c: 4019 ands r1, r3
|
|
ab3e: 80a1 strh r1, [r4, #4]
|
|
ab40: 2100 movs r1, #0
|
|
ab42: 7161 strb r1, [r4, #5]
|
|
dsc->border_color = LV_COLOR_BLACK;
|
|
ab44: 7ba1 ldrb r1, [r4, #14]
|
|
ab46: 4391 bics r1, r2
|
|
ab48: 73a1 strb r1, [r4, #14]
|
|
ab4a: 89e1 ldrh r1, [r4, #14]
|
|
ab4c: 4019 ands r1, r3
|
|
ab4e: 81e1 strh r1, [r4, #14]
|
|
ab50: 2100 movs r1, #0
|
|
ab52: 73e1 strb r1, [r4, #15]
|
|
dsc->pattern_recolor = LV_COLOR_BLACK;
|
|
ab54: 2034 movs r0, #52 ; 0x34
|
|
ab56: 5c21 ldrb r1, [r4, r0]
|
|
ab58: 4391 bics r1, r2
|
|
ab5a: 5421 strb r1, [r4, r0]
|
|
ab5c: 8ea1 ldrh r1, [r4, #52] ; 0x34
|
|
ab5e: 4019 ands r1, r3
|
|
ab60: 86a1 strh r1, [r4, #52] ; 0x34
|
|
ab62: 0021 movs r1, r4
|
|
ab64: 3134 adds r1, #52 ; 0x34
|
|
ab66: 2000 movs r0, #0
|
|
ab68: 7048 strb r0, [r1, #1]
|
|
dsc->value_color = LV_COLOR_BLACK;
|
|
ab6a: 2146 movs r1, #70 ; 0x46
|
|
ab6c: 5c60 ldrb r0, [r4, r1]
|
|
ab6e: 4390 bics r0, r2
|
|
ab70: 5460 strb r0, [r4, r1]
|
|
ab72: 5a60 ldrh r0, [r4, r1]
|
|
ab74: 4018 ands r0, r3
|
|
ab76: 5260 strh r0, [r4, r1]
|
|
ab78: 0021 movs r1, r4
|
|
ab7a: 3146 adds r1, #70 ; 0x46
|
|
ab7c: 2000 movs r0, #0
|
|
ab7e: 7048 strb r0, [r1, #1]
|
|
dsc->shadow_color = LV_COLOR_BLACK;
|
|
ab80: 7fa1 ldrb r1, [r4, #30]
|
|
ab82: 4391 bics r1, r2
|
|
ab84: 77a1 strb r1, [r4, #30]
|
|
ab86: 8be2 ldrh r2, [r4, #30]
|
|
ab88: 4013 ands r3, r2
|
|
ab8a: 83e3 strh r3, [r4, #30]
|
|
ab8c: 2300 movs r3, #0
|
|
ab8e: 77e3 strb r3, [r4, #31]
|
|
dsc->bg_grad_color_stop = 0xFF;
|
|
ab90: 33ff adds r3, #255 ; 0xff
|
|
ab92: 8163 strh r3, [r4, #10]
|
|
dsc->bg_opa = LV_OPA_COVER;
|
|
ab94: 7323 strb r3, [r4, #12]
|
|
dsc->outline_opa = LV_OPA_COVER;
|
|
ab96: 7723 strb r3, [r4, #28]
|
|
dsc->border_opa = LV_OPA_COVER;
|
|
ab98: 7523 strb r3, [r4, #20]
|
|
dsc->pattern_opa = LV_OPA_COVER;
|
|
ab9a: 2236 movs r2, #54 ; 0x36
|
|
ab9c: 54a3 strb r3, [r4, r2]
|
|
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
|
|
ab9e: 4a08 ldr r2, [pc, #32] ; (abc0 <lv_draw_rect_dsc_init+0xa0>)
|
|
aba0: 6322 str r2, [r4, #48] ; 0x30
|
|
dsc->value_opa = LV_OPA_COVER;
|
|
aba2: 2144 movs r1, #68 ; 0x44
|
|
aba4: 5463 strb r3, [r4, r1]
|
|
dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL;
|
|
aba6: 6422 str r2, [r4, #64] ; 0x40
|
|
dsc->shadow_opa = LV_OPA_COVER;
|
|
aba8: 2228 movs r2, #40 ; 0x28
|
|
abaa: 54a3 strb r3, [r4, r2]
|
|
dsc->border_side = LV_BORDER_SIDE_FULL;
|
|
abac: 3bf0 subs r3, #240 ; 0xf0
|
|
abae: 8263 strh r3, [r4, #18]
|
|
}
|
|
abb0: bd10 pop {r4, pc}
|
|
abb2: 46c0 nop ; (mov r8, r8)
|
|
abb4: 0001104d .word 0x0001104d
|
|
abb8: 00018938 .word 0x00018938
|
|
abbc: fffff81f .word 0xfffff81f
|
|
abc0: 20000030 .word 0x20000030
|
|
|
|
0000abc4 <lv_draw_rect>:
|
|
{
|
|
abc4: b5f0 push {r4, r5, r6, r7, lr}
|
|
abc6: 46de mov lr, fp
|
|
abc8: 4657 mov r7, sl
|
|
abca: 464e mov r6, r9
|
|
abcc: 4645 mov r5, r8
|
|
abce: b5e0 push {r5, r6, r7, lr}
|
|
abd0: b0b1 sub sp, #196 ; 0xc4
|
|
abd2: 4681 mov r9, r0
|
|
abd4: 9104 str r1, [sp, #16]
|
|
abd6: 4693 mov fp, r2
|
|
* @param area_p pointer to an area
|
|
* @return the height of the area (if y1 == y2 -> height = 1)
|
|
*/
|
|
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
|
|
{
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
abd8: 88c4 ldrh r4, [r0, #6]
|
|
abda: 8845 ldrh r5, [r0, #2]
|
|
abdc: 1c63 adds r3, r4, #1
|
|
abde: 1b5b subs r3, r3, r5
|
|
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
|
|
abe0: b21b sxth r3, r3
|
|
abe2: 2b00 cmp r3, #0
|
|
abe4: dc01 bgt.n abea <lv_draw_rect+0x26>
|
|
abe6: f000 ffce bl bb86 <lv_draw_rect+0xfc2>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
abea: 8886 ldrh r6, [r0, #4]
|
|
abec: 8807 ldrh r7, [r0, #0]
|
|
abee: 1c73 adds r3, r6, #1
|
|
abf0: 1bdb subs r3, r3, r7
|
|
abf2: b21b sxth r3, r3
|
|
abf4: 2b00 cmp r3, #0
|
|
abf6: dc01 bgt.n abfc <lv_draw_rect+0x38>
|
|
abf8: f000 ffc5 bl bb86 <lv_draw_rect+0xfc2>
|
|
if(dsc->shadow_width == 0) return;
|
|
abfc: 0013 movs r3, r2
|
|
abfe: 2220 movs r2, #32
|
|
ac00: 5e9b ldrsh r3, [r3, r2]
|
|
ac02: 4698 mov r8, r3
|
|
ac04: 2b00 cmp r3, #0
|
|
ac06: d101 bne.n ac0c <lv_draw_rect+0x48>
|
|
ac08: f000 fee1 bl b9ce <lv_draw_rect+0xe0a>
|
|
if(dsc->shadow_opa <= LV_OPA_MIN) return;
|
|
ac0c: 2328 movs r3, #40 ; 0x28
|
|
ac0e: 465a mov r2, fp
|
|
ac10: 5cd3 ldrb r3, [r2, r3]
|
|
ac12: 9306 str r3, [sp, #24]
|
|
ac14: 2b05 cmp r3, #5
|
|
ac16: d801 bhi.n ac1c <lv_draw_rect+0x58>
|
|
ac18: f000 fed9 bl b9ce <lv_draw_rect+0xe0a>
|
|
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
|
|
ac1c: 6a13 ldr r3, [r2, #32]
|
|
ac1e: 2b01 cmp r3, #1
|
|
ac20: d100 bne.n ac24 <lv_draw_rect+0x60>
|
|
ac22: e0e2 b.n adea <lv_draw_rect+0x226>
|
|
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
|
|
ac24: 465b mov r3, fp
|
|
ac26: 8c59 ldrh r1, [r3, #34] ; 0x22
|
|
ac28: 8cda ldrh r2, [r3, #38] ; 0x26
|
|
ac2a: 1a8b subs r3, r1, r2
|
|
ac2c: 18ff adds r7, r7, r3
|
|
ac2e: b2bf uxth r7, r7
|
|
ac30: ab14 add r3, sp, #80 ; 0x50
|
|
ac32: 801f strh r7, [r3, #0]
|
|
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
|
|
ac34: 1889 adds r1, r1, r2
|
|
ac36: 1876 adds r6, r6, r1
|
|
ac38: b2b6 uxth r6, r6
|
|
ac3a: 809e strh r6, [r3, #4]
|
|
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
|
|
ac3c: 4659 mov r1, fp
|
|
ac3e: 8c89 ldrh r1, [r1, #36] ; 0x24
|
|
ac40: 1a88 subs r0, r1, r2
|
|
ac42: 182d adds r5, r5, r0
|
|
ac44: b2ad uxth r5, r5
|
|
ac46: 805d strh r5, [r3, #2]
|
|
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
|
|
ac48: 1852 adds r2, r2, r1
|
|
ac4a: 18a4 adds r4, r4, r2
|
|
ac4c: b2a4 uxth r4, r4
|
|
ac4e: 80dc strh r4, [r3, #6]
|
|
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
|
|
ac50: 4643 mov r3, r8
|
|
ac52: 0fdb lsrs r3, r3, #31
|
|
ac54: 4443 add r3, r8
|
|
ac56: 1059 asrs r1, r3, #1
|
|
ac58: 43c9 mvns r1, r1
|
|
ac5a: b289 uxth r1, r1
|
|
ac5c: aa16 add r2, sp, #88 ; 0x58
|
|
ac5e: 1878 adds r0, r7, r1
|
|
ac60: 8010 strh r0, [r2, #0]
|
|
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
|
|
ac62: 105b asrs r3, r3, #1
|
|
ac64: 3301 adds r3, #1
|
|
ac66: b29b uxth r3, r3
|
|
ac68: 18f0 adds r0, r6, r3
|
|
ac6a: 8090 strh r0, [r2, #4]
|
|
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
|
|
ac6c: 1869 adds r1, r5, r1
|
|
ac6e: 8051 strh r1, [r2, #2]
|
|
sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1;
|
|
ac70: 18e3 adds r3, r4, r3
|
|
ac72: 80d3 strh r3, [r2, #6]
|
|
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
|
|
ac74: 9b06 ldr r3, [sp, #24]
|
|
ac76: 2bfa cmp r3, #250 ; 0xfa
|
|
ac78: d901 bls.n ac7e <lv_draw_rect+0xba>
|
|
ac7a: 23ff movs r3, #255 ; 0xff
|
|
ac7c: 9306 str r3, [sp, #24]
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
ac7e: 4b9f ldr r3, [pc, #636] ; (aefc <lv_draw_rect+0x338>)
|
|
ac80: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
ac82: 4b9f ldr r3, [pc, #636] ; (af00 <lv_draw_rect+0x33c>)
|
|
ac84: 4798 blx r3
|
|
ac86: 4682 mov sl, r0
|
|
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
|
|
ac88: 9a04 ldr r2, [sp, #16]
|
|
ac8a: a916 add r1, sp, #88 ; 0x58
|
|
ac8c: a818 add r0, sp, #96 ; 0x60
|
|
ac8e: 4b9d ldr r3, [pc, #628] ; (af04 <lv_draw_rect+0x340>)
|
|
ac90: 4798 blx r3
|
|
if(is_common == false) return;
|
|
ac92: 2800 cmp r0, #0
|
|
ac94: d101 bne.n ac9a <lv_draw_rect+0xd6>
|
|
ac96: f000 fe9a bl b9ce <lv_draw_rect+0xe0a>
|
|
draw_area.x1 -= disp_area->x1;
|
|
ac9a: 4653 mov r3, sl
|
|
ac9c: 8a1b ldrh r3, [r3, #16]
|
|
ac9e: 469c mov ip, r3
|
|
aca0: ab18 add r3, sp, #96 ; 0x60
|
|
aca2: 881a ldrh r2, [r3, #0]
|
|
aca4: 4661 mov r1, ip
|
|
aca6: 1a52 subs r2, r2, r1
|
|
aca8: 801a strh r2, [r3, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
acaa: 4652 mov r2, sl
|
|
acac: 8a50 ldrh r0, [r2, #18]
|
|
acae: 885a ldrh r2, [r3, #2]
|
|
acb0: 1a12 subs r2, r2, r0
|
|
acb2: 805a strh r2, [r3, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
acb4: 8899 ldrh r1, [r3, #4]
|
|
acb6: 4662 mov r2, ip
|
|
acb8: 1a89 subs r1, r1, r2
|
|
acba: 8099 strh r1, [r3, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
acbc: 88da ldrh r2, [r3, #6]
|
|
acbe: 1a12 subs r2, r2, r0
|
|
acc0: 80da strh r2, [r3, #6]
|
|
acc2: 2300 movs r3, #0
|
|
{
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
const uint8_t * s8 = (const uint8_t *)src;
|
|
|
|
while(len) {
|
|
*d8 = *s8;
|
|
acc4: a91a add r1, sp, #104 ; 0x68
|
|
acc6: 4648 mov r0, r9
|
|
acc8: 5cc2 ldrb r2, [r0, r3]
|
|
acca: 545a strb r2, [r3, r1]
|
|
accc: 3301 adds r3, #1
|
|
while(len) {
|
|
acce: 2b08 cmp r3, #8
|
|
acd0: d1fa bne.n acc8 <lv_draw_rect+0x104>
|
|
acd2: 4681 mov r9, r0
|
|
bg_coords.x1 += 1;
|
|
acd4: ab1a add r3, sp, #104 ; 0x68
|
|
acd6: 8819 ldrh r1, [r3, #0]
|
|
acd8: 3101 adds r1, #1
|
|
acda: b28a uxth r2, r1
|
|
acdc: 4694 mov ip, r2
|
|
acde: 801a strh r2, [r3, #0]
|
|
bg_coords.y1 += 1;
|
|
ace0: 8858 ldrh r0, [r3, #2]
|
|
ace2: 3001 adds r0, #1
|
|
ace4: b282 uxth r2, r0
|
|
ace6: 9205 str r2, [sp, #20]
|
|
ace8: 466a mov r2, sp
|
|
acea: 8a92 ldrh r2, [r2, #20]
|
|
acec: 805a strh r2, [r3, #2]
|
|
bg_coords.x2 -= 1;
|
|
acee: 8898 ldrh r0, [r3, #4]
|
|
acf0: 1e42 subs r2, r0, #1
|
|
acf2: 809a strh r2, [r3, #4]
|
|
bg_coords.y2 -= 1;
|
|
acf4: 88da ldrh r2, [r3, #6]
|
|
acf6: 1e51 subs r1, r2, #1
|
|
acf8: 80d9 strh r1, [r3, #6]
|
|
int32_t r_bg = dsc->radius;
|
|
acfa: 465b mov r3, fp
|
|
acfc: 2100 movs r1, #0
|
|
acfe: 5e5b ldrsh r3, [r3, r1]
|
|
ad00: 4661 mov r1, ip
|
|
ad02: 1a41 subs r1, r0, r1
|
|
ad04: b209 sxth r1, r1
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
ad06: 9805 ldr r0, [sp, #20]
|
|
ad08: 1a10 subs r0, r2, r0
|
|
ad0a: b200 sxth r0, r0
|
|
int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords));
|
|
ad0c: 0002 movs r2, r0
|
|
ad0e: 4281 cmp r1, r0
|
|
ad10: da00 bge.n ad14 <lv_draw_rect+0x150>
|
|
ad12: 000a movs r2, r1
|
|
if(r_bg > short_side >> 1) r_bg = short_side >> 1;
|
|
ad14: 1052 asrs r2, r2, #1
|
|
ad16: 920f str r2, [sp, #60] ; 0x3c
|
|
ad18: 429a cmp r2, r3
|
|
ad1a: dd00 ble.n ad1e <lv_draw_rect+0x15a>
|
|
ad1c: 930f str r3, [sp, #60] ; 0x3c
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
ad1e: 3601 adds r6, #1
|
|
ad20: 1bf6 subs r6, r6, r7
|
|
ad22: b2b2 uxth r2, r6
|
|
ad24: 4692 mov sl, r2
|
|
ad26: b211 sxth r1, r2
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
ad28: 3401 adds r4, #1
|
|
ad2a: 1b65 subs r5, r4, r5
|
|
ad2c: b2ad uxth r5, r5
|
|
ad2e: b22a sxth r2, r5
|
|
short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area));
|
|
ad30: 0014 movs r4, r2
|
|
ad32: 4291 cmp r1, r2
|
|
ad34: da00 bge.n ad38 <lv_draw_rect+0x174>
|
|
ad36: 000c movs r4, r1
|
|
if(r_sh > short_side >> 1) r_sh = short_side >> 1;
|
|
ad38: 1064 asrs r4, r4, #1
|
|
ad3a: 429c cmp r4, r3
|
|
ad3c: dd00 ble.n ad40 <lv_draw_rect+0x17c>
|
|
ad3e: 001c movs r4, r3
|
|
int32_t corner_size = sw + r_sh;
|
|
ad40: 44a0 add r8, r4
|
|
ad42: 4643 mov r3, r8
|
|
ad44: 9309 str r3, [sp, #36] ; 0x24
|
|
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
|
|
ad46: 4640 mov r0, r8
|
|
ad48: 4358 muls r0, r3
|
|
ad4a: 0040 lsls r0, r0, #1
|
|
ad4c: 4b6e ldr r3, [pc, #440] ; (af08 <lv_draw_rect+0x344>)
|
|
ad4e: 4798 blx r3
|
|
ad50: 900e str r0, [sp, #56] ; 0x38
|
|
shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh);
|
|
ad52: 465b mov r3, fp
|
|
ad54: 2720 movs r7, #32
|
|
ad56: 5fdf ldrsh r7, [r3, r7]
|
|
ad58: b222 sxth r2, r4
|
|
int32_t sw_ori = sw;
|
|
ad5a: 46b8 mov r8, r7
|
|
int32_t size = sw_ori + r;
|
|
ad5c: 19d3 adds r3, r2, r7
|
|
ad5e: 9307 str r3, [sp, #28]
|
|
ad60: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
ad62: a822 add r0, sp, #136 ; 0x88
|
|
ad64: a914 add r1, sp, #80 ; 0x50
|
|
ad66: 5c5e ldrb r6, [r3, r1]
|
|
ad68: 541e strb r6, [r3, r0]
|
|
ad6a: 3301 adds r3, #1
|
|
while(len) {
|
|
ad6c: 2b08 cmp r3, #8
|
|
ad6e: d1fa bne.n ad66 <lv_draw_rect+0x1a2>
|
|
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
|
|
ad70: 0ffb lsrs r3, r7, #31
|
|
ad72: 19db adds r3, r3, r7
|
|
ad74: 105b asrs r3, r3, #1
|
|
ad76: b29b uxth r3, r3
|
|
ad78: 2101 movs r1, #1
|
|
ad7a: 4039 ands r1, r7
|
|
ad7c: 000e movs r6, r1
|
|
ad7e: 9110 str r1, [sp, #64] ; 0x40
|
|
ad80: 1e59 subs r1, r3, #1
|
|
ad82: 4270 negs r0, r6
|
|
ad84: 4170 adcs r0, r6
|
|
ad86: 1a09 subs r1, r1, r0
|
|
ad88: 190c adds r4, r1, r4
|
|
ad8a: b2a4 uxth r4, r4
|
|
ad8c: a922 add r1, sp, #136 ; 0x88
|
|
ad8e: 808c strh r4, [r1, #4]
|
|
sh_area.y1 = sw / 2 + 1;
|
|
ad90: 3301 adds r3, #1
|
|
ad92: b29b uxth r3, r3
|
|
ad94: 804b strh r3, [r1, #2]
|
|
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
|
|
ad96: 4650 mov r0, sl
|
|
ad98: 1a24 subs r4, r4, r0
|
|
ad9a: 800c strh r4, [r1, #0]
|
|
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
|
|
ad9c: 18ed adds r5, r5, r3
|
|
ad9e: 80cd strh r5, [r1, #6]
|
|
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
|
|
ada0: 2300 movs r3, #0
|
|
ada2: a829 add r0, sp, #164 ; 0xa4
|
|
ada4: 4c59 ldr r4, [pc, #356] ; (af0c <lv_draw_rect+0x348>)
|
|
ada6: 47a0 blx r4
|
|
if(sw_ori == 1) sw = 1;
|
|
ada8: 4643 mov r3, r8
|
|
adaa: 2b01 cmp r3, #1
|
|
adac: d101 bne.n adb2 <lv_draw_rect+0x1ee>
|
|
adae: f002 f95b bl d068 <lv_draw_rect+0x24a4>
|
|
adb2: 107b asrs r3, r7, #1
|
|
adb4: 930d str r3, [sp, #52] ; 0x34
|
|
lv_opa_t * mask_line = _lv_mem_buf_get(size);
|
|
adb6: 9c07 ldr r4, [sp, #28]
|
|
adb8: 940c str r4, [sp, #48] ; 0x30
|
|
adba: 0020 movs r0, r4
|
|
adbc: 4b52 ldr r3, [pc, #328] ; (af08 <lv_draw_rect+0x344>)
|
|
adbe: 4798 blx r3
|
|
adc0: 900a str r0, [sp, #40] ; 0x28
|
|
for(y = 0; y < size; y++) {
|
|
adc2: 2c00 cmp r4, #0
|
|
adc4: dd61 ble.n ae8a <lv_draw_rect+0x2c6>
|
|
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
|
|
adc6: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
adc8: 005b lsls r3, r3, #1
|
|
adca: 930b str r3, [sp, #44] ; 0x2c
|
|
adcc: 9b07 ldr r3, [sp, #28]
|
|
adce: 4a50 ldr r2, [pc, #320] ; (af10 <lv_draw_rect+0x34c>)
|
|
add0: 4694 mov ip, r2
|
|
add2: 4463 add r3, ip
|
|
add4: 005b lsls r3, r3, #1
|
|
add6: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
add8: 4692 mov sl, r2
|
|
adda: 2200 movs r2, #0
|
|
addc: 4690 mov r8, r2
|
|
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
adde: 4f4d ldr r7, [pc, #308] ; (af14 <lv_draw_rect+0x350>)
|
|
ade0: 4652 mov r2, sl
|
|
ade2: 9208 str r2, [sp, #32]
|
|
ade4: 46ca mov sl, r9
|
|
ade6: 4699 mov r9, r3
|
|
ade8: e01c b.n ae24 <lv_draw_rect+0x260>
|
|
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
|
|
adea: 465b mov r3, fp
|
|
adec: 2224 movs r2, #36 ; 0x24
|
|
adee: 5e9b ldrsh r3, [r3, r2]
|
|
adf0: 2b00 cmp r3, #0
|
|
adf2: d000 beq.n adf6 <lv_draw_rect+0x232>
|
|
adf4: e716 b.n ac24 <lv_draw_rect+0x60>
|
|
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
|
|
adf6: 465b mov r3, fp
|
|
adf8: 2226 movs r2, #38 ; 0x26
|
|
adfa: 5e9b ldrsh r3, [r3, r2]
|
|
adfc: 2b00 cmp r3, #0
|
|
adfe: dd00 ble.n ae02 <lv_draw_rect+0x23e>
|
|
ae00: e710 b.n ac24 <lv_draw_rect+0x60>
|
|
ae02: f000 fde4 bl b9ce <lv_draw_rect+0xe0a>
|
|
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
|
|
ae06: 990b ldr r1, [sp, #44] ; 0x2c
|
|
ae08: 9808 ldr r0, [sp, #32]
|
|
ae0a: 4b43 ldr r3, [pc, #268] ; (af18 <lv_draw_rect+0x354>)
|
|
ae0c: 4798 blx r3
|
|
sh_ups_tmp_buf += size;
|
|
ae0e: 9b08 ldr r3, [sp, #32]
|
|
ae10: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
ae12: 4694 mov ip, r2
|
|
ae14: 4463 add r3, ip
|
|
ae16: 9308 str r3, [sp, #32]
|
|
for(y = 0; y < size; y++) {
|
|
ae18: 2301 movs r3, #1
|
|
ae1a: 469c mov ip, r3
|
|
ae1c: 44e0 add r8, ip
|
|
ae1e: 9b07 ldr r3, [sp, #28]
|
|
ae20: 4543 cmp r3, r8
|
|
ae22: dd31 ble.n ae88 <lv_draw_rect+0x2c4>
|
|
_lv_memset_ff(mask_line, size);
|
|
ae24: 990c ldr r1, [sp, #48] ; 0x30
|
|
ae26: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
ae28: 0020 movs r0, r4
|
|
ae2a: 4b3c ldr r3, [pc, #240] ; (af1c <lv_draw_rect+0x358>)
|
|
ae2c: 4798 blx r3
|
|
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
|
|
ae2e: 466b mov r3, sp
|
|
ae30: 221c movs r2, #28
|
|
ae32: 5e9b ldrsh r3, [r3, r2]
|
|
ae34: 4642 mov r2, r8
|
|
ae36: b212 sxth r2, r2
|
|
ae38: a929 add r1, sp, #164 ; 0xa4
|
|
ae3a: 9100 str r1, [sp, #0]
|
|
ae3c: 2100 movs r1, #0
|
|
ae3e: 0020 movs r0, r4
|
|
ae40: 9c29 ldr r4, [sp, #164] ; 0xa4
|
|
ae42: 47a0 blx r4
|
|
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
|
|
ae44: 2800 cmp r0, #0
|
|
ae46: d0de beq.n ae06 <lv_draw_rect+0x242>
|
|
sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
ae48: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
ae4a: 9305 str r3, [sp, #20]
|
|
ae4c: 9d0a ldr r5, [sp, #40] ; 0x28
|
|
ae4e: 7828 ldrb r0, [r5, #0]
|
|
ae50: 0180 lsls r0, r0, #6
|
|
ae52: 0019 movs r1, r3
|
|
ae54: 4b2f ldr r3, [pc, #188] ; (af14 <lv_draw_rect+0x350>)
|
|
ae56: 4798 blx r3
|
|
ae58: 9b08 ldr r3, [sp, #32]
|
|
ae5a: 8018 strh r0, [r3, #0]
|
|
for(i = 1; i < size; i++) {
|
|
ae5c: 9a07 ldr r2, [sp, #28]
|
|
ae5e: 2a01 cmp r2, #1
|
|
ae60: ddd5 ble.n ae0e <lv_draw_rect+0x24a>
|
|
ae62: 001c movs r4, r3
|
|
ae64: 444b add r3, r9
|
|
ae66: 001e movs r6, r3
|
|
ae68: e005 b.n ae76 <lv_draw_rect+0x2b2>
|
|
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
|
|
ae6a: 8823 ldrh r3, [r4, #0]
|
|
ae6c: 8063 strh r3, [r4, #2]
|
|
ae6e: 3501 adds r5, #1
|
|
ae70: 3402 adds r4, #2
|
|
for(i = 1; i < size; i++) {
|
|
ae72: 42a6 cmp r6, r4
|
|
ae74: d0cb beq.n ae0e <lv_draw_rect+0x24a>
|
|
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
|
|
ae76: 7868 ldrb r0, [r5, #1]
|
|
ae78: 782b ldrb r3, [r5, #0]
|
|
ae7a: 4283 cmp r3, r0
|
|
ae7c: d0f5 beq.n ae6a <lv_draw_rect+0x2a6>
|
|
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
ae7e: 0180 lsls r0, r0, #6
|
|
ae80: 9905 ldr r1, [sp, #20]
|
|
ae82: 47b8 blx r7
|
|
ae84: 8060 strh r0, [r4, #2]
|
|
ae86: e7f2 b.n ae6e <lv_draw_rect+0x2aa>
|
|
ae88: 46d1 mov r9, sl
|
|
_lv_mem_buf_release(mask_line);
|
|
ae8a: 980a ldr r0, [sp, #40] ; 0x28
|
|
ae8c: 4b24 ldr r3, [pc, #144] ; (af20 <lv_draw_rect+0x35c>)
|
|
ae8e: 4798 blx r3
|
|
if(sw == 1) {
|
|
ae90: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
ae92: 2b01 cmp r3, #1
|
|
ae94: d101 bne.n ae9a <lv_draw_rect+0x2d6>
|
|
ae96: f002 f8f6 bl d086 <lv_draw_rect+0x24c2>
|
|
shadow_blur_corner(size, sw, sh_buf);
|
|
ae9a: 466b mov r3, sp
|
|
ae9c: 221c movs r2, #28
|
|
ae9e: 5e9b ldrsh r3, [r3, r2]
|
|
aea0: 9308 str r3, [sp, #32]
|
|
aea2: 9c0e ldr r4, [sp, #56] ; 0x38
|
|
aea4: 0022 movs r2, r4
|
|
aea6: 9d0d ldr r5, [sp, #52] ; 0x34
|
|
aea8: 0029 movs r1, r5
|
|
aeaa: 0018 movs r0, r3
|
|
aeac: 4b1d ldr r3, [pc, #116] ; (af24 <lv_draw_rect+0x360>)
|
|
aeae: 4798 blx r3
|
|
sw += sw_ori & 1;
|
|
aeb0: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
aeb2: 46ac mov ip, r5
|
|
aeb4: 4463 add r3, ip
|
|
aeb6: b21f sxth r7, r3
|
|
if(sw > 1) {
|
|
aeb8: 2f01 cmp r7, #1
|
|
aeba: dd3a ble.n af32 <lv_draw_rect+0x36e>
|
|
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
aebc: 9705 str r7, [sp, #20]
|
|
aebe: 8820 ldrh r0, [r4, #0]
|
|
aec0: 0180 lsls r0, r0, #6
|
|
aec2: 0039 movs r1, r7
|
|
aec4: 4b13 ldr r3, [pc, #76] ; (af14 <lv_draw_rect+0x350>)
|
|
aec6: 4798 blx r3
|
|
aec8: 8020 strh r0, [r4, #0]
|
|
for(i = 1; i < (uint32_t) size * size; i++) {
|
|
aeca: 9d0c ldr r5, [sp, #48] ; 0x30
|
|
aecc: 436d muls r5, r5
|
|
aece: 2d01 cmp r5, #1
|
|
aed0: d92a bls.n af28 <lv_draw_rect+0x364>
|
|
aed2: 4a0f ldr r2, [pc, #60] ; (af10 <lv_draw_rect+0x34c>)
|
|
aed4: 4694 mov ip, r2
|
|
aed6: 4465 add r5, ip
|
|
aed8: 006d lsls r5, r5, #1
|
|
aeda: 46a4 mov ip, r4
|
|
aedc: 4465 add r5, ip
|
|
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
aede: 4e0d ldr r6, [pc, #52] ; (af14 <lv_draw_rect+0x350>)
|
|
aee0: e002 b.n aee8 <lv_draw_rect+0x324>
|
|
aee2: 3402 adds r4, #2
|
|
for(i = 1; i < (uint32_t) size * size; i++) {
|
|
aee4: 42a5 cmp r5, r4
|
|
aee6: d01f beq.n af28 <lv_draw_rect+0x364>
|
|
if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1];
|
|
aee8: 8860 ldrh r0, [r4, #2]
|
|
aeea: 8823 ldrh r3, [r4, #0]
|
|
aeec: 4283 cmp r3, r0
|
|
aeee: d0f8 beq.n aee2 <lv_draw_rect+0x31e>
|
|
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
|
|
aef0: 0180 lsls r0, r0, #6
|
|
aef2: 9905 ldr r1, [sp, #20]
|
|
aef4: 47b0 blx r6
|
|
aef6: 8060 strh r0, [r4, #2]
|
|
aef8: e7f3 b.n aee2 <lv_draw_rect+0x31e>
|
|
aefa: 46c0 nop ; (mov r8, r8)
|
|
aefc: 000043b1 .word 0x000043b1
|
|
af00: 0000f709 .word 0x0000f709
|
|
af04: 0000fc0f .word 0x0000fc0f
|
|
af08: 00010ec1 .word 0x00010ec1
|
|
af0c: 0000a855 .word 0x0000a855
|
|
af10: 7fffffff .word 0x7fffffff
|
|
af14: 00017995 .word 0x00017995
|
|
af18: 0001104d .word 0x0001104d
|
|
af1c: 000110f1 .word 0x000110f1
|
|
af20: 00010bd5 .word 0x00010bd5
|
|
af24: 0000a8bd .word 0x0000a8bd
|
|
shadow_blur_corner(size, sw, sh_buf);
|
|
af28: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
af2a: 0039 movs r1, r7
|
|
af2c: 9808 ldr r0, [sp, #32]
|
|
af2e: 4bb5 ldr r3, [pc, #724] ; (b204 <lv_draw_rect+0x640>)
|
|
af30: 4798 blx r3
|
|
for(x = 0; x < size * size; x++) {
|
|
af32: 9f07 ldr r7, [sp, #28]
|
|
af34: 437f muls r7, r7
|
|
af36: 2f00 cmp r7, #0
|
|
af38: d00a beq.n af50 <lv_draw_rect+0x38c>
|
|
af3a: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
af3c: 0013 movs r3, r2
|
|
af3e: 0078 lsls r0, r7, #1
|
|
af40: 4694 mov ip, r2
|
|
af42: 4460 add r0, ip
|
|
res_buf[x] = sh_buf[x];
|
|
af44: 8819 ldrh r1, [r3, #0]
|
|
af46: 7011 strb r1, [r2, #0]
|
|
af48: 3302 adds r3, #2
|
|
af4a: 3201 adds r2, #1
|
|
for(x = 0; x < size * size; x++) {
|
|
af4c: 4283 cmp r3, r0
|
|
af4e: d1f9 bne.n af44 <lv_draw_rect+0x380>
|
|
lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2;
|
|
af50: a916 add r1, sp, #88 ; 0x58
|
|
af52: 884a ldrh r2, [r1, #2]
|
|
af54: 88cb ldrh r3, [r1, #6]
|
|
af56: 3301 adds r3, #1
|
|
af58: 1a9b subs r3, r3, r2
|
|
af5a: b21b sxth r3, r3
|
|
af5c: 0fd8 lsrs r0, r3, #31
|
|
af5e: 18c3 adds r3, r0, r3
|
|
af60: 105b asrs r3, r3, #1
|
|
af62: 18d3 adds r3, r2, r3
|
|
af64: b29b uxth r3, r3
|
|
af66: 9310 str r3, [sp, #64] ; 0x40
|
|
af68: b21b sxth r3, r3
|
|
af6a: 930c str r3, [sp, #48] ; 0x30
|
|
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
|
|
af6c: 880a ldrh r2, [r1, #0]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
af6e: 888b ldrh r3, [r1, #4]
|
|
af70: 3301 adds r3, #1
|
|
af72: 1a9b subs r3, r3, r2
|
|
af74: b21b sxth r3, r3
|
|
af76: 0fd9 lsrs r1, r3, #31
|
|
af78: 18cb adds r3, r1, r3
|
|
af7a: 105b asrs r3, r3, #1
|
|
af7c: 18d3 adds r3, r2, r3
|
|
af7e: b29b uxth r3, r3
|
|
af80: 9311 str r3, [sp, #68] ; 0x44
|
|
af82: b21b sxth r3, r3
|
|
af84: 930d str r3, [sp, #52] ; 0x34
|
|
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
|
|
af86: 4ba0 ldr r3, [pc, #640] ; (b208 <lv_draw_rect+0x644>)
|
|
af88: 4798 blx r3
|
|
af8a: 2300 movs r3, #0
|
|
af8c: 9308 str r3, [sp, #32]
|
|
af8e: 2800 cmp r0, #0
|
|
af90: d110 bne.n afb4 <lv_draw_rect+0x3f0>
|
|
else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false;
|
|
af92: 465b mov r3, fp
|
|
af94: 2222 movs r2, #34 ; 0x22
|
|
af96: 5e9b ldrsh r3, [r3, r2]
|
|
af98: 2b00 cmp r3, #0
|
|
af9a: d10b bne.n afb4 <lv_draw_rect+0x3f0>
|
|
af9c: 465b mov r3, fp
|
|
af9e: 2224 movs r2, #36 ; 0x24
|
|
afa0: 5e9b ldrsh r3, [r3, r2]
|
|
afa2: 2b00 cmp r3, #0
|
|
afa4: d106 bne.n afb4 <lv_draw_rect+0x3f0>
|
|
else if(dsc->shadow_spread != 0) simple_mode = false;
|
|
afa6: 465b mov r3, fp
|
|
afa8: 2226 movs r2, #38 ; 0x26
|
|
afaa: 5e9a ldrsh r2, [r3, r2]
|
|
afac: 4253 negs r3, r2
|
|
afae: 4153 adcs r3, r2
|
|
afb0: b2db uxtb r3, r3
|
|
afb2: 9308 str r3, [sp, #32]
|
|
afb4: ac16 add r4, sp, #88 ; 0x58
|
|
afb6: 88a0 ldrh r0, [r4, #4]
|
|
afb8: 3001 adds r0, #1
|
|
afba: 8823 ldrh r3, [r4, #0]
|
|
afbc: 1ac0 subs r0, r0, r3
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
|
|
afbe: b200 sxth r0, r0
|
|
afc0: 4b92 ldr r3, [pc, #584] ; (b20c <lv_draw_rect+0x648>)
|
|
afc2: 4798 blx r3
|
|
afc4: 9005 str r0, [sp, #20]
|
|
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
|
|
afc6: 466b mov r3, sp
|
|
afc8: 223c movs r2, #60 ; 0x3c
|
|
afca: 5e9a ldrsh r2, [r3, r2]
|
|
afcc: 2301 movs r3, #1
|
|
afce: a91a add r1, sp, #104 ; 0x68
|
|
afd0: a829 add r0, sp, #164 ; 0xa4
|
|
afd2: 4d8f ldr r5, [pc, #572] ; (b210 <lv_draw_rect+0x64c>)
|
|
afd4: 47a8 blx r5
|
|
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
|
|
afd6: 2100 movs r1, #0
|
|
afd8: a829 add r0, sp, #164 ; 0xa4
|
|
afda: 4b8e ldr r3, [pc, #568] ; (b214 <lv_draw_rect+0x650>)
|
|
afdc: 4798 blx r3
|
|
afde: 900f str r0, [sp, #60] ; 0x3c
|
|
a.x2 = sh_area.x2;
|
|
afe0: 2204 movs r2, #4
|
|
afe2: 5ea3 ldrsh r3, [r4, r2]
|
|
afe4: a91c add r1, sp, #112 ; 0x70
|
|
afe6: 808b strh r3, [r1, #4]
|
|
a.x1 = a.x2 - corner_size + 1;
|
|
afe8: 466a mov r2, sp
|
|
afea: 8c92 ldrh r2, [r2, #36] ; 0x24
|
|
afec: 920a str r2, [sp, #40] ; 0x28
|
|
afee: 3301 adds r3, #1
|
|
aff0: 1a9b subs r3, r3, r2
|
|
aff2: 800b strh r3, [r1, #0]
|
|
a.y1 = sh_area.y1;
|
|
aff4: 2002 movs r0, #2
|
|
aff6: 5e23 ldrsh r3, [r4, r0]
|
|
aff8: 804b strh r3, [r1, #2]
|
|
a.y2 = a.y1 + corner_size - 1;
|
|
affa: 3b01 subs r3, #1
|
|
affc: 4694 mov ip, r2
|
|
affe: 4463 add r3, ip
|
|
b000: 80cb strh r3, [r1, #6]
|
|
bool has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b002: 9a04 ldr r2, [sp, #16]
|
|
b004: a81e add r0, sp, #120 ; 0x78
|
|
b006: 4b84 ldr r3, [pc, #528] ; (b218 <lv_draw_rect+0x654>)
|
|
b008: 4798 blx r3
|
|
if(has_com) {
|
|
b00a: 2800 cmp r0, #0
|
|
b00c: d071 beq.n b0f2 <lv_draw_rect+0x52e>
|
|
if(ca.y2 > h_half) ca.y2 = h_half;
|
|
b00e: ab1e add r3, sp, #120 ; 0x78
|
|
b010: 2206 movs r2, #6
|
|
b012: 5e9b ldrsh r3, [r3, r2]
|
|
b014: 990c ldr r1, [sp, #48] ; 0x30
|
|
b016: 428b cmp r3, r1
|
|
b018: dd01 ble.n b01e <lv_draw_rect+0x45a>
|
|
b01a: ab1e add r3, sp, #120 ; 0x78
|
|
b01c: 80d9 strh r1, [r3, #6]
|
|
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
|
|
b01e: ab1e add r3, sp, #120 ; 0x78
|
|
b020: 2200 movs r2, #0
|
|
b022: 5e9b ldrsh r3, [r3, r2]
|
|
b024: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
b026: 4293 cmp r3, r2
|
|
b028: dc03 bgt.n b032 <lv_draw_rect+0x46e>
|
|
b02a: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
b02c: 3301 adds r3, #1
|
|
b02e: aa1e add r2, sp, #120 ; 0x78
|
|
b030: 8013 strh r3, [r2, #0]
|
|
b032: ab1e add r3, sp, #120 ; 0x78
|
|
b034: 2100 movs r1, #0
|
|
b036: 5e5a ldrsh r2, [r3, r1]
|
|
b038: 889b ldrh r3, [r3, #4]
|
|
b03a: 3301 adds r3, #1
|
|
b03c: 1a9b subs r3, r3, r2
|
|
b03e: b21b sxth r3, r3
|
|
b040: 930b str r3, [sp, #44] ; 0x2c
|
|
if(w > 0) {
|
|
b042: 2b00 cmp r3, #0
|
|
b044: dd55 ble.n b0f2 <lv_draw_rect+0x52e>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b046: ab1e add r3, sp, #120 ; 0x78
|
|
b048: 2106 movs r1, #6
|
|
b04a: 5e5c ldrsh r4, [r3, r1]
|
|
b04c: 2602 movs r6, #2
|
|
b04e: 5f9e ldrsh r6, [r3, r6]
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b050: ab1c add r3, sp, #112 ; 0x70
|
|
b052: 2102 movs r1, #2
|
|
b054: 5e5d ldrsh r5, [r3, r1]
|
|
b056: 1b75 subs r5, r6, r5
|
|
b058: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b05a: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
|
|
b05c: 2100 movs r1, #0
|
|
b05e: 5e5b ldrsh r3, [r3, r1]
|
|
b060: 1ad2 subs r2, r2, r3
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b062: 18ad adds r5, r5, r2
|
|
b064: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b066: 469c mov ip, r3
|
|
b068: 4465 add r5, ip
|
|
b06a: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b06c: a822 add r0, sp, #136 ; 0x88
|
|
b06e: a91e add r1, sp, #120 ; 0x78
|
|
b070: 5c5a ldrb r2, [r3, r1]
|
|
b072: 541a strb r2, [r3, r0]
|
|
b074: 3301 adds r3, #1
|
|
while(len) {
|
|
b076: 2b08 cmp r3, #8
|
|
b078: d1fa bne.n b070 <lv_draw_rect+0x4ac>
|
|
fa.y2 = fa.y1;
|
|
b07a: ab22 add r3, sp, #136 ; 0x88
|
|
b07c: 885a ldrh r2, [r3, #2]
|
|
b07e: 80da strh r2, [r3, #6]
|
|
b080: 3401 adds r4, #1
|
|
b082: 1ba6 subs r6, r4, r6
|
|
b084: b236 sxth r6, r6
|
|
for(y = 0; y < h; y++) {
|
|
b086: 2e00 cmp r6, #0
|
|
b088: dd33 ble.n b0f2 <lv_draw_rect+0x52e>
|
|
b08a: 1c73 adds r3, r6, #1
|
|
b08c: 4698 mov r8, r3
|
|
b08e: 2601 movs r6, #1
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b090: ac22 add r4, sp, #136 ; 0x88
|
|
b092: 4b62 ldr r3, [pc, #392] ; (b21c <lv_draw_rect+0x658>)
|
|
b094: 469a mov sl, r3
|
|
b096: 9507 str r5, [sp, #28]
|
|
b098: 465f mov r7, fp
|
|
b09a: e019 b.n b0d0 <lv_draw_rect+0x50c>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b09c: 8bfa ldrh r2, [r7, #30]
|
|
b09e: 2329 movs r3, #41 ; 0x29
|
|
b0a0: 5cfb ldrb r3, [r7, r3]
|
|
b0a2: 9302 str r3, [sp, #8]
|
|
b0a4: 9b06 ldr r3, [sp, #24]
|
|
b0a6: 9301 str r3, [sp, #4]
|
|
b0a8: 9000 str r0, [sp, #0]
|
|
b0aa: 9b05 ldr r3, [sp, #20]
|
|
b0ac: 0021 movs r1, r4
|
|
b0ae: 9804 ldr r0, [sp, #16]
|
|
b0b0: 4d5b ldr r5, [pc, #364] ; (b220 <lv_draw_rect+0x65c>)
|
|
b0b2: 47a8 blx r5
|
|
fa.y1++;
|
|
b0b4: 8863 ldrh r3, [r4, #2]
|
|
b0b6: 3301 adds r3, #1
|
|
b0b8: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b0ba: 88e3 ldrh r3, [r4, #6]
|
|
b0bc: 3301 adds r3, #1
|
|
b0be: 80e3 strh r3, [r4, #6]
|
|
b0c0: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b0c2: 469c mov ip, r3
|
|
b0c4: 9b07 ldr r3, [sp, #28]
|
|
b0c6: 4463 add r3, ip
|
|
b0c8: 9307 str r3, [sp, #28]
|
|
b0ca: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b0cc: 45b0 cmp r8, r6
|
|
b0ce: d00f beq.n b0f0 <lv_draw_rect+0x52c>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b0d0: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b0d2: 9907 ldr r1, [sp, #28]
|
|
b0d4: 9805 ldr r0, [sp, #20]
|
|
b0d6: 4b53 ldr r3, [pc, #332] ; (b224 <lv_draw_rect+0x660>)
|
|
b0d8: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b0da: 2102 movs r1, #2
|
|
b0dc: 5e62 ldrsh r2, [r4, r1]
|
|
b0de: 2500 movs r5, #0
|
|
b0e0: 5f61 ldrsh r1, [r4, r5]
|
|
b0e2: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b0e4: 9805 ldr r0, [sp, #20]
|
|
b0e6: 47d0 blx sl
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b0e8: 2801 cmp r0, #1
|
|
b0ea: d1d7 bne.n b09c <lv_draw_rect+0x4d8>
|
|
b0ec: 3001 adds r0, #1
|
|
b0ee: e7d5 b.n b09c <lv_draw_rect+0x4d8>
|
|
b0f0: 46bb mov fp, r7
|
|
a.x2 = sh_area.x2;
|
|
b0f2: aa16 add r2, sp, #88 ; 0x58
|
|
b0f4: 2104 movs r1, #4
|
|
b0f6: 5e53 ldrsh r3, [r2, r1]
|
|
b0f8: a91c add r1, sp, #112 ; 0x70
|
|
b0fa: 808b strh r3, [r1, #4]
|
|
a.x1 = a.x2 - corner_size + 1;
|
|
b0fc: 3301 adds r3, #1
|
|
b0fe: 980a ldr r0, [sp, #40] ; 0x28
|
|
b100: 1a1b subs r3, r3, r0
|
|
b102: 800b strh r3, [r1, #0]
|
|
a.y1 = sh_area.y2 - corner_size + 1;
|
|
b104: 2306 movs r3, #6
|
|
b106: 5ed2 ldrsh r2, [r2, r3]
|
|
b108: 1c53 adds r3, r2, #1
|
|
b10a: 1a1b subs r3, r3, r0
|
|
b10c: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y2;
|
|
b10e: 80ca strh r2, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b110: 9a04 ldr r2, [sp, #16]
|
|
b112: a81e add r0, sp, #120 ; 0x78
|
|
b114: 4b40 ldr r3, [pc, #256] ; (b218 <lv_draw_rect+0x654>)
|
|
b116: 4798 blx r3
|
|
if(has_com) {
|
|
b118: 2800 cmp r0, #0
|
|
b11a: d100 bne.n b11e <lv_draw_rect+0x55a>
|
|
b11c: e085 b.n b22a <lv_draw_rect+0x666>
|
|
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
|
|
b11e: ab1e add r3, sp, #120 ; 0x78
|
|
b120: 2202 movs r2, #2
|
|
b122: 5e9b ldrsh r3, [r3, r2]
|
|
b124: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
b126: 4293 cmp r3, r2
|
|
b128: dc03 bgt.n b132 <lv_draw_rect+0x56e>
|
|
b12a: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
b12c: 3301 adds r3, #1
|
|
b12e: aa1e add r2, sp, #120 ; 0x78
|
|
b130: 8053 strh r3, [r2, #2]
|
|
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
|
|
b132: ab1e add r3, sp, #120 ; 0x78
|
|
b134: 2200 movs r2, #0
|
|
b136: 5e9b ldrsh r3, [r3, r2]
|
|
b138: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
b13a: 4293 cmp r3, r2
|
|
b13c: dc03 bgt.n b146 <lv_draw_rect+0x582>
|
|
b13e: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
b140: 3301 adds r3, #1
|
|
b142: aa1e add r2, sp, #120 ; 0x78
|
|
b144: 8013 strh r3, [r2, #0]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b146: ab1e add r3, sp, #120 ; 0x78
|
|
b148: 2100 movs r1, #0
|
|
b14a: 5e5a ldrsh r2, [r3, r1]
|
|
b14c: 889b ldrh r3, [r3, #4]
|
|
b14e: 3301 adds r3, #1
|
|
b150: 1a9b subs r3, r3, r2
|
|
b152: b21b sxth r3, r3
|
|
b154: 930b str r3, [sp, #44] ; 0x2c
|
|
if(w > 0) {
|
|
b156: 2b00 cmp r3, #0
|
|
b158: dd67 ble.n b22a <lv_draw_rect+0x666>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b15a: ab1e add r3, sp, #120 ; 0x78
|
|
b15c: 2106 movs r1, #6
|
|
b15e: 5e5c ldrsh r4, [r3, r1]
|
|
b160: 2602 movs r6, #2
|
|
b162: 5f9e ldrsh r6, [r3, r6]
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b164: ab1c add r3, sp, #112 ; 0x70
|
|
b166: 2106 movs r1, #6
|
|
b168: 5e5d ldrsh r5, [r3, r1]
|
|
b16a: 1b2d subs r5, r5, r4
|
|
b16c: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b16e: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
|
|
b170: 2100 movs r1, #0
|
|
b172: 5e5b ldrsh r3, [r3, r1]
|
|
b174: 1ad2 subs r2, r2, r3
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b176: 18ad adds r5, r5, r2
|
|
b178: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b17a: 469c mov ip, r3
|
|
b17c: 4465 add r5, ip
|
|
b17e: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b180: a822 add r0, sp, #136 ; 0x88
|
|
b182: a91e add r1, sp, #120 ; 0x78
|
|
b184: 5c5a ldrb r2, [r3, r1]
|
|
b186: 541a strb r2, [r3, r0]
|
|
b188: 3301 adds r3, #1
|
|
while(len) {
|
|
b18a: 2b08 cmp r3, #8
|
|
b18c: d1fa bne.n b184 <lv_draw_rect+0x5c0>
|
|
fa.y1 = fa.y2; /*Fill from bottom to top*/
|
|
b18e: ab22 add r3, sp, #136 ; 0x88
|
|
b190: 88da ldrh r2, [r3, #6]
|
|
b192: 805a strh r2, [r3, #2]
|
|
b194: 3401 adds r4, #1
|
|
b196: 1ba6 subs r6, r4, r6
|
|
b198: b236 sxth r6, r6
|
|
for(y = 0; y < h; y++) {
|
|
b19a: 2e00 cmp r6, #0
|
|
b19c: dd45 ble.n b22a <lv_draw_rect+0x666>
|
|
b19e: 1c73 adds r3, r6, #1
|
|
b1a0: 4698 mov r8, r3
|
|
b1a2: 2601 movs r6, #1
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b1a4: ac22 add r4, sp, #136 ; 0x88
|
|
b1a6: 4b1d ldr r3, [pc, #116] ; (b21c <lv_draw_rect+0x658>)
|
|
b1a8: 469a mov sl, r3
|
|
b1aa: 9507 str r5, [sp, #28]
|
|
b1ac: 465f mov r7, fp
|
|
b1ae: e019 b.n b1e4 <lv_draw_rect+0x620>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b1b0: 8bfa ldrh r2, [r7, #30]
|
|
b1b2: 2329 movs r3, #41 ; 0x29
|
|
b1b4: 5cfb ldrb r3, [r7, r3]
|
|
b1b6: 9302 str r3, [sp, #8]
|
|
b1b8: 9b06 ldr r3, [sp, #24]
|
|
b1ba: 9301 str r3, [sp, #4]
|
|
b1bc: 9000 str r0, [sp, #0]
|
|
b1be: 9b05 ldr r3, [sp, #20]
|
|
b1c0: 0021 movs r1, r4
|
|
b1c2: 9804 ldr r0, [sp, #16]
|
|
b1c4: 4d16 ldr r5, [pc, #88] ; (b220 <lv_draw_rect+0x65c>)
|
|
b1c6: 47a8 blx r5
|
|
fa.y1--;
|
|
b1c8: 8863 ldrh r3, [r4, #2]
|
|
b1ca: 3b01 subs r3, #1
|
|
b1cc: 8063 strh r3, [r4, #2]
|
|
fa.y2--;
|
|
b1ce: 88e3 ldrh r3, [r4, #6]
|
|
b1d0: 3b01 subs r3, #1
|
|
b1d2: 80e3 strh r3, [r4, #6]
|
|
b1d4: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b1d6: 469c mov ip, r3
|
|
b1d8: 9b07 ldr r3, [sp, #28]
|
|
b1da: 4463 add r3, ip
|
|
b1dc: 9307 str r3, [sp, #28]
|
|
b1de: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b1e0: 4546 cmp r6, r8
|
|
b1e2: d021 beq.n b228 <lv_draw_rect+0x664>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b1e4: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b1e6: 9907 ldr r1, [sp, #28]
|
|
b1e8: 9805 ldr r0, [sp, #20]
|
|
b1ea: 4b0e ldr r3, [pc, #56] ; (b224 <lv_draw_rect+0x660>)
|
|
b1ec: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b1ee: 2102 movs r1, #2
|
|
b1f0: 5e62 ldrsh r2, [r4, r1]
|
|
b1f2: 2500 movs r5, #0
|
|
b1f4: 5f61 ldrsh r1, [r4, r5]
|
|
b1f6: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b1f8: 9805 ldr r0, [sp, #20]
|
|
b1fa: 47d0 blx sl
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b1fc: 2801 cmp r0, #1
|
|
b1fe: d1d7 bne.n b1b0 <lv_draw_rect+0x5ec>
|
|
b200: 3001 adds r0, #1
|
|
b202: e7d5 b.n b1b0 <lv_draw_rect+0x5ec>
|
|
b204: 0000a8bd .word 0x0000a8bd
|
|
b208: 0000a6c1 .word 0x0000a6c1
|
|
b20c: 00010ec1 .word 0x00010ec1
|
|
b210: 0000a855 .word 0x0000a855
|
|
b214: 0000a5ed .word 0x0000a5ed
|
|
b218: 0000fc0f .word 0x0000fc0f
|
|
b21c: 0000a625 .word 0x0000a625
|
|
b220: 00005c6d .word 0x00005c6d
|
|
b224: 00010c8d .word 0x00010c8d
|
|
b228: 46bb mov fp, r7
|
|
a.x2 = sh_area.x2;
|
|
b22a: aa16 add r2, sp, #88 ; 0x58
|
|
b22c: 2104 movs r1, #4
|
|
b22e: 5e53 ldrsh r3, [r2, r1]
|
|
b230: a91c add r1, sp, #112 ; 0x70
|
|
b232: 808b strh r3, [r1, #4]
|
|
a.x1 = a.x2 - corner_size + 1;
|
|
b234: 3301 adds r3, #1
|
|
b236: 980a ldr r0, [sp, #40] ; 0x28
|
|
b238: 1a1b subs r3, r3, r0
|
|
b23a: 800b strh r3, [r1, #0]
|
|
a.y1 = sh_area.y1 + corner_size;
|
|
b23c: 8853 ldrh r3, [r2, #2]
|
|
b23e: 4684 mov ip, r0
|
|
b240: 4463 add r3, ip
|
|
b242: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y2 - corner_size;
|
|
b244: 88d3 ldrh r3, [r2, #6]
|
|
b246: 1a1b subs r3, r3, r0
|
|
b248: 80cb strh r3, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b24a: 9a04 ldr r2, [sp, #16]
|
|
b24c: a81e add r0, sp, #120 ; 0x78
|
|
b24e: 4bd1 ldr r3, [pc, #836] ; (b594 <lv_draw_rect+0x9d0>)
|
|
b250: 4798 blx r3
|
|
if(has_com) {
|
|
b252: 2800 cmp r0, #0
|
|
b254: d06c beq.n b330 <lv_draw_rect+0x76c>
|
|
if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2);
|
|
b256: 9b08 ldr r3, [sp, #32]
|
|
b258: 2b00 cmp r3, #0
|
|
b25a: d00a beq.n b272 <lv_draw_rect+0x6ae>
|
|
b25c: aa1e add r2, sp, #120 ; 0x78
|
|
b25e: 8810 ldrh r0, [r2, #0]
|
|
b260: 464b mov r3, r9
|
|
b262: 889b ldrh r3, [r3, #4]
|
|
b264: 1c19 adds r1, r3, #0
|
|
b266: b21b sxth r3, r3
|
|
b268: b204 sxth r4, r0
|
|
b26a: 42a3 cmp r3, r4
|
|
b26c: da00 bge.n b270 <lv_draw_rect+0x6ac>
|
|
b26e: 1c01 adds r1, r0, #0
|
|
b270: 8011 strh r1, [r2, #0]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b272: ab1e add r3, sp, #120 ; 0x78
|
|
b274: 2100 movs r1, #0
|
|
b276: 5e5a ldrsh r2, [r3, r1]
|
|
b278: 889b ldrh r3, [r3, #4]
|
|
b27a: 3301 adds r3, #1
|
|
b27c: 1a9b subs r3, r3, r2
|
|
b27e: b21b sxth r3, r3
|
|
b280: 9307 str r3, [sp, #28]
|
|
if(w > 0) {
|
|
b282: 2b00 cmp r3, #0
|
|
b284: dd54 ble.n b330 <lv_draw_rect+0x76c>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b286: ab1e add r3, sp, #120 ; 0x78
|
|
b288: 88df ldrh r7, [r3, #6]
|
|
b28a: 3701 adds r7, #1
|
|
b28c: 885b ldrh r3, [r3, #2]
|
|
b28e: 1aff subs r7, r7, r3
|
|
b290: b23f sxth r7, r7
|
|
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
|
|
b292: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b294: 000b movs r3, r1
|
|
b296: 3b01 subs r3, #1
|
|
b298: 434b muls r3, r1
|
|
sh_buf_tmp += ca.x1 - a.x1;
|
|
b29a: a91c add r1, sp, #112 ; 0x70
|
|
b29c: 2000 movs r0, #0
|
|
b29e: 5e09 ldrsh r1, [r1, r0]
|
|
b2a0: 1a52 subs r2, r2, r1
|
|
b2a2: 189a adds r2, r3, r2
|
|
b2a4: 0013 movs r3, r2
|
|
b2a6: 990e ldr r1, [sp, #56] ; 0x38
|
|
b2a8: 468c mov ip, r1
|
|
b2aa: 4463 add r3, ip
|
|
b2ac: 930b str r3, [sp, #44] ; 0x2c
|
|
b2ae: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b2b0: a822 add r0, sp, #136 ; 0x88
|
|
b2b2: a91e add r1, sp, #120 ; 0x78
|
|
b2b4: 5c5a ldrb r2, [r3, r1]
|
|
b2b6: 541a strb r2, [r3, r0]
|
|
b2b8: 3301 adds r3, #1
|
|
while(len) {
|
|
b2ba: 2b08 cmp r3, #8
|
|
b2bc: d1fa bne.n b2b4 <lv_draw_rect+0x6f0>
|
|
fa.y2 = fa.y1;
|
|
b2be: ab22 add r3, sp, #136 ; 0x88
|
|
b2c0: 885a ldrh r2, [r3, #2]
|
|
b2c2: 80da strh r2, [r3, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b2c4: 2f00 cmp r7, #0
|
|
b2c6: dd33 ble.n b330 <lv_draw_rect+0x76c>
|
|
b2c8: 2500 movs r5, #0
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b2ca: 4bb3 ldr r3, [pc, #716] ; (b598 <lv_draw_rect+0x9d4>)
|
|
b2cc: 4698 mov r8, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b2ce: ac22 add r4, sp, #136 ; 0x88
|
|
b2d0: 9b08 ldr r3, [sp, #32]
|
|
b2d2: 469a mov sl, r3
|
|
b2d4: 465e mov r6, fp
|
|
b2d6: 46bb mov fp, r7
|
|
b2d8: e015 b.n b306 <lv_draw_rect+0x742>
|
|
_lv_blend_fill(clip, &fa,
|
|
b2da: 8bf2 ldrh r2, [r6, #30]
|
|
b2dc: 2329 movs r3, #41 ; 0x29
|
|
b2de: 5cf3 ldrb r3, [r6, r3]
|
|
b2e0: 9302 str r3, [sp, #8]
|
|
b2e2: 2328 movs r3, #40 ; 0x28
|
|
b2e4: 5cf3 ldrb r3, [r6, r3]
|
|
b2e6: 9301 str r3, [sp, #4]
|
|
b2e8: 9000 str r0, [sp, #0]
|
|
b2ea: 9b05 ldr r3, [sp, #20]
|
|
b2ec: 0021 movs r1, r4
|
|
b2ee: 9804 ldr r0, [sp, #16]
|
|
b2f0: 4faa ldr r7, [pc, #680] ; (b59c <lv_draw_rect+0x9d8>)
|
|
b2f2: 47b8 blx r7
|
|
fa.y1++;
|
|
b2f4: 8863 ldrh r3, [r4, #2]
|
|
b2f6: 3301 adds r3, #1
|
|
b2f8: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b2fa: 88e3 ldrh r3, [r4, #6]
|
|
b2fc: 3301 adds r3, #1
|
|
b2fe: 80e3 strh r3, [r4, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b300: 3501 adds r5, #1
|
|
b302: 455d cmp r5, fp
|
|
b304: da13 bge.n b32e <lv_draw_rect+0x76a>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b306: 9a07 ldr r2, [sp, #28]
|
|
b308: 990b ldr r1, [sp, #44] ; 0x2c
|
|
b30a: 9805 ldr r0, [sp, #20]
|
|
b30c: 47c0 blx r8
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b30e: 2002 movs r0, #2
|
|
if(simple_mode) {
|
|
b310: 4653 mov r3, sl
|
|
b312: 2b00 cmp r3, #0
|
|
b314: d1e1 bne.n b2da <lv_draw_rect+0x716>
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b316: 2302 movs r3, #2
|
|
b318: 5ee2 ldrsh r2, [r4, r3]
|
|
b31a: 2300 movs r3, #0
|
|
b31c: 5ee1 ldrsh r1, [r4, r3]
|
|
b31e: 9b07 ldr r3, [sp, #28]
|
|
b320: 9805 ldr r0, [sp, #20]
|
|
b322: 4f9f ldr r7, [pc, #636] ; (b5a0 <lv_draw_rect+0x9dc>)
|
|
b324: 47b8 blx r7
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b326: 2801 cmp r0, #1
|
|
b328: d1d7 bne.n b2da <lv_draw_rect+0x716>
|
|
b32a: 3001 adds r0, #1
|
|
b32c: e7d5 b.n b2da <lv_draw_rect+0x716>
|
|
b32e: 46b3 mov fp, r6
|
|
for(y = 0; y < corner_size; y++) {
|
|
b330: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b332: 2b00 cmp r3, #0
|
|
b334: dd1f ble.n b376 <lv_draw_rect+0x7b2>
|
|
for(x = 0; x < corner_size / 2; x++) {
|
|
b336: 0fdf lsrs r7, r3, #31
|
|
b338: 469c mov ip, r3
|
|
b33a: 4467 add r7, ip
|
|
b33c: 107f asrs r7, r7, #1
|
|
b33e: 9d0e ldr r5, [sp, #56] ; 0x38
|
|
b340: 2600 movs r6, #0
|
|
b342: 1e5a subs r2, r3, #1
|
|
b344: 4694 mov ip, r2
|
|
b346: 46b8 mov r8, r7
|
|
b348: 001f movs r7, r3
|
|
b34a: e00b b.n b364 <lv_draw_rect+0x7a0>
|
|
lv_opa_t tmp = sh_buf_tmp[x];
|
|
b34c: 7819 ldrb r1, [r3, #0]
|
|
sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1];
|
|
b34e: 7810 ldrb r0, [r2, #0]
|
|
b350: 7018 strb r0, [r3, #0]
|
|
sh_buf_tmp[corner_size - x - 1] = tmp;
|
|
b352: 7011 strb r1, [r2, #0]
|
|
b354: 3301 adds r3, #1
|
|
b356: 3a01 subs r2, #1
|
|
for(x = 0; x < corner_size / 2; x++) {
|
|
b358: 429c cmp r4, r3
|
|
b35a: d1f7 bne.n b34c <lv_draw_rect+0x788>
|
|
b35c: 19ed adds r5, r5, r7
|
|
for(y = 0; y < corner_size; y++) {
|
|
b35e: 3601 adds r6, #1
|
|
b360: 42b7 cmp r7, r6
|
|
b362: d008 beq.n b376 <lv_draw_rect+0x7b2>
|
|
for(x = 0; x < corner_size / 2; x++) {
|
|
b364: 4643 mov r3, r8
|
|
b366: 2b00 cmp r3, #0
|
|
b368: d0f8 beq.n b35c <lv_draw_rect+0x798>
|
|
b36a: 002b movs r3, r5
|
|
b36c: 4662 mov r2, ip
|
|
b36e: 18aa adds r2, r5, r2
|
|
b370: 4641 mov r1, r8
|
|
b372: 186c adds r4, r5, r1
|
|
b374: e7ea b.n b34c <lv_draw_rect+0x788>
|
|
a.x1 = sh_area.x1;
|
|
b376: aa16 add r2, sp, #88 ; 0x58
|
|
b378: 2100 movs r1, #0
|
|
b37a: 5e53 ldrsh r3, [r2, r1]
|
|
b37c: a91c add r1, sp, #112 ; 0x70
|
|
b37e: 800b strh r3, [r1, #0]
|
|
a.x2 = a.x1 + corner_size - 1;
|
|
b380: 3b01 subs r3, #1
|
|
b382: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b384: 46a4 mov ip, r4
|
|
b386: 4463 add r3, ip
|
|
b388: 808b strh r3, [r1, #4]
|
|
a.y1 = sh_area.y1;
|
|
b38a: 2302 movs r3, #2
|
|
b38c: 5ed3 ldrsh r3, [r2, r3]
|
|
b38e: 804b strh r3, [r1, #2]
|
|
a.y2 = a.y1 + corner_size - 1;
|
|
b390: 3b01 subs r3, #1
|
|
b392: 4463 add r3, ip
|
|
b394: 80cb strh r3, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b396: 9a04 ldr r2, [sp, #16]
|
|
b398: a81e add r0, sp, #120 ; 0x78
|
|
b39a: 4b7e ldr r3, [pc, #504] ; (b594 <lv_draw_rect+0x9d0>)
|
|
b39c: 4798 blx r3
|
|
if(has_com) {
|
|
b39e: 2800 cmp r0, #0
|
|
b3a0: d06f beq.n b482 <lv_draw_rect+0x8be>
|
|
if(ca.y2 > h_half) ca.y2 = h_half;
|
|
b3a2: ab1e add r3, sp, #120 ; 0x78
|
|
b3a4: 2206 movs r2, #6
|
|
b3a6: 5e9b ldrsh r3, [r3, r2]
|
|
b3a8: 990c ldr r1, [sp, #48] ; 0x30
|
|
b3aa: 428b cmp r3, r1
|
|
b3ac: dd01 ble.n b3b2 <lv_draw_rect+0x7ee>
|
|
b3ae: ab1e add r3, sp, #120 ; 0x78
|
|
b3b0: 80d9 strh r1, [r3, #6]
|
|
if(ca.x2 > w_half) ca.x2 = w_half;
|
|
b3b2: ab1e add r3, sp, #120 ; 0x78
|
|
b3b4: 2204 movs r2, #4
|
|
b3b6: 5e9b ldrsh r3, [r3, r2]
|
|
b3b8: 990d ldr r1, [sp, #52] ; 0x34
|
|
b3ba: 428b cmp r3, r1
|
|
b3bc: dd01 ble.n b3c2 <lv_draw_rect+0x7fe>
|
|
b3be: ab1e add r3, sp, #120 ; 0x78
|
|
b3c0: 8099 strh r1, [r3, #4]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b3c2: ab1e add r3, sp, #120 ; 0x78
|
|
b3c4: 2100 movs r1, #0
|
|
b3c6: 5e5a ldrsh r2, [r3, r1]
|
|
b3c8: 889b ldrh r3, [r3, #4]
|
|
b3ca: 3301 adds r3, #1
|
|
b3cc: 1a9b subs r3, r3, r2
|
|
b3ce: b21b sxth r3, r3
|
|
b3d0: 930b str r3, [sp, #44] ; 0x2c
|
|
if(w > 0) {
|
|
b3d2: 2b00 cmp r3, #0
|
|
b3d4: dd55 ble.n b482 <lv_draw_rect+0x8be>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b3d6: ab1e add r3, sp, #120 ; 0x78
|
|
b3d8: 2106 movs r1, #6
|
|
b3da: 5e5c ldrsh r4, [r3, r1]
|
|
b3dc: 2602 movs r6, #2
|
|
b3de: 5f9e ldrsh r6, [r3, r6]
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b3e0: ab1c add r3, sp, #112 ; 0x70
|
|
b3e2: 2102 movs r1, #2
|
|
b3e4: 5e5d ldrsh r5, [r3, r1]
|
|
b3e6: 1b75 subs r5, r6, r5
|
|
b3e8: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b3ea: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
|
|
b3ec: 2100 movs r1, #0
|
|
b3ee: 5e5b ldrsh r3, [r3, r1]
|
|
b3f0: 1ad2 subs r2, r2, r3
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b3f2: 18ad adds r5, r5, r2
|
|
b3f4: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b3f6: 469c mov ip, r3
|
|
b3f8: 4465 add r5, ip
|
|
b3fa: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b3fc: a822 add r0, sp, #136 ; 0x88
|
|
b3fe: a91e add r1, sp, #120 ; 0x78
|
|
b400: 5c5a ldrb r2, [r3, r1]
|
|
b402: 541a strb r2, [r3, r0]
|
|
b404: 3301 adds r3, #1
|
|
while(len) {
|
|
b406: 2b08 cmp r3, #8
|
|
b408: d1fa bne.n b400 <lv_draw_rect+0x83c>
|
|
fa.y2 = fa.y1;
|
|
b40a: ab22 add r3, sp, #136 ; 0x88
|
|
b40c: 885a ldrh r2, [r3, #2]
|
|
b40e: 80da strh r2, [r3, #6]
|
|
b410: 3401 adds r4, #1
|
|
b412: 1ba6 subs r6, r4, r6
|
|
b414: b236 sxth r6, r6
|
|
for(y = 0; y < h; y++) {
|
|
b416: 2e00 cmp r6, #0
|
|
b418: dd33 ble.n b482 <lv_draw_rect+0x8be>
|
|
b41a: 1c73 adds r3, r6, #1
|
|
b41c: 4698 mov r8, r3
|
|
b41e: 2601 movs r6, #1
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b420: ac22 add r4, sp, #136 ; 0x88
|
|
b422: 4b5f ldr r3, [pc, #380] ; (b5a0 <lv_draw_rect+0x9dc>)
|
|
b424: 469a mov sl, r3
|
|
b426: 9507 str r5, [sp, #28]
|
|
b428: 465f mov r7, fp
|
|
b42a: e019 b.n b460 <lv_draw_rect+0x89c>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b42c: 8bfa ldrh r2, [r7, #30]
|
|
b42e: 2329 movs r3, #41 ; 0x29
|
|
b430: 5cfb ldrb r3, [r7, r3]
|
|
b432: 9302 str r3, [sp, #8]
|
|
b434: 9b06 ldr r3, [sp, #24]
|
|
b436: 9301 str r3, [sp, #4]
|
|
b438: 9000 str r0, [sp, #0]
|
|
b43a: 9b05 ldr r3, [sp, #20]
|
|
b43c: 0021 movs r1, r4
|
|
b43e: 9804 ldr r0, [sp, #16]
|
|
b440: 4d56 ldr r5, [pc, #344] ; (b59c <lv_draw_rect+0x9d8>)
|
|
b442: 47a8 blx r5
|
|
fa.y1++;
|
|
b444: 8863 ldrh r3, [r4, #2]
|
|
b446: 3301 adds r3, #1
|
|
b448: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b44a: 88e3 ldrh r3, [r4, #6]
|
|
b44c: 3301 adds r3, #1
|
|
b44e: 80e3 strh r3, [r4, #6]
|
|
b450: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b452: 469c mov ip, r3
|
|
b454: 9b07 ldr r3, [sp, #28]
|
|
b456: 4463 add r3, ip
|
|
b458: 9307 str r3, [sp, #28]
|
|
b45a: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b45c: 4546 cmp r6, r8
|
|
b45e: d00f beq.n b480 <lv_draw_rect+0x8bc>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b460: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b462: 9907 ldr r1, [sp, #28]
|
|
b464: 9805 ldr r0, [sp, #20]
|
|
b466: 4b4c ldr r3, [pc, #304] ; (b598 <lv_draw_rect+0x9d4>)
|
|
b468: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b46a: 2102 movs r1, #2
|
|
b46c: 5e62 ldrsh r2, [r4, r1]
|
|
b46e: 2500 movs r5, #0
|
|
b470: 5f61 ldrsh r1, [r4, r5]
|
|
b472: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b474: 9805 ldr r0, [sp, #20]
|
|
b476: 47d0 blx sl
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b478: 2801 cmp r0, #1
|
|
b47a: d1d7 bne.n b42c <lv_draw_rect+0x868>
|
|
b47c: 3001 adds r0, #1
|
|
b47e: e7d5 b.n b42c <lv_draw_rect+0x868>
|
|
b480: 46bb mov fp, r7
|
|
a.x1 = sh_area.x1;
|
|
b482: aa16 add r2, sp, #88 ; 0x58
|
|
b484: 2100 movs r1, #0
|
|
b486: 5e53 ldrsh r3, [r2, r1]
|
|
b488: a91c add r1, sp, #112 ; 0x70
|
|
b48a: 800b strh r3, [r1, #0]
|
|
a.x2 = a.x1 + corner_size - 1;
|
|
b48c: 3b01 subs r3, #1
|
|
b48e: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b490: 46a4 mov ip, r4
|
|
b492: 4463 add r3, ip
|
|
b494: 808b strh r3, [r1, #4]
|
|
a.y1 = sh_area.y2 - corner_size + 1;
|
|
b496: 2306 movs r3, #6
|
|
b498: 5ed2 ldrsh r2, [r2, r3]
|
|
b49a: 1c53 adds r3, r2, #1
|
|
b49c: 1b1b subs r3, r3, r4
|
|
b49e: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y2;
|
|
b4a0: 80ca strh r2, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b4a2: 9a04 ldr r2, [sp, #16]
|
|
b4a4: a81e add r0, sp, #120 ; 0x78
|
|
b4a6: 4b3b ldr r3, [pc, #236] ; (b594 <lv_draw_rect+0x9d0>)
|
|
b4a8: 4798 blx r3
|
|
if(has_com) {
|
|
b4aa: 2800 cmp r0, #0
|
|
b4ac: d100 bne.n b4b0 <lv_draw_rect+0x8ec>
|
|
b4ae: e07a b.n b5a6 <lv_draw_rect+0x9e2>
|
|
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
|
|
b4b0: ab1e add r3, sp, #120 ; 0x78
|
|
b4b2: 2202 movs r2, #2
|
|
b4b4: 5e9b ldrsh r3, [r3, r2]
|
|
b4b6: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
b4b8: 4293 cmp r3, r2
|
|
b4ba: dc03 bgt.n b4c4 <lv_draw_rect+0x900>
|
|
b4bc: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
b4be: 3301 adds r3, #1
|
|
b4c0: aa1e add r2, sp, #120 ; 0x78
|
|
b4c2: 8053 strh r3, [r2, #2]
|
|
if(ca.x2 > w_half) ca.x2 = w_half;
|
|
b4c4: ab1e add r3, sp, #120 ; 0x78
|
|
b4c6: 2204 movs r2, #4
|
|
b4c8: 5e9b ldrsh r3, [r3, r2]
|
|
b4ca: 990d ldr r1, [sp, #52] ; 0x34
|
|
b4cc: 428b cmp r3, r1
|
|
b4ce: dd01 ble.n b4d4 <lv_draw_rect+0x910>
|
|
b4d0: ab1e add r3, sp, #120 ; 0x78
|
|
b4d2: 8099 strh r1, [r3, #4]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b4d4: ab1e add r3, sp, #120 ; 0x78
|
|
b4d6: 2100 movs r1, #0
|
|
b4d8: 5e5a ldrsh r2, [r3, r1]
|
|
b4da: 889b ldrh r3, [r3, #4]
|
|
b4dc: 3301 adds r3, #1
|
|
b4de: 1a9b subs r3, r3, r2
|
|
b4e0: b21b sxth r3, r3
|
|
b4e2: 930b str r3, [sp, #44] ; 0x2c
|
|
if(w > 0) {
|
|
b4e4: 2b00 cmp r3, #0
|
|
b4e6: dd5e ble.n b5a6 <lv_draw_rect+0x9e2>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b4e8: ab1e add r3, sp, #120 ; 0x78
|
|
b4ea: 2106 movs r1, #6
|
|
b4ec: 5e5c ldrsh r4, [r3, r1]
|
|
b4ee: 2602 movs r6, #2
|
|
b4f0: 5f9e ldrsh r6, [r3, r6]
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b4f2: ab1c add r3, sp, #112 ; 0x70
|
|
b4f4: 2106 movs r1, #6
|
|
b4f6: 5e5d ldrsh r5, [r3, r1]
|
|
b4f8: 1b2d subs r5, r5, r4
|
|
b4fa: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b4fc: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
|
|
b4fe: 2100 movs r1, #0
|
|
b500: 5e5b ldrsh r3, [r3, r1]
|
|
b502: 1ad2 subs r2, r2, r3
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b504: 18ad adds r5, r5, r2
|
|
b506: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b508: 469c mov ip, r3
|
|
b50a: 4465 add r5, ip
|
|
b50c: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b50e: a822 add r0, sp, #136 ; 0x88
|
|
b510: a91e add r1, sp, #120 ; 0x78
|
|
b512: 5c5a ldrb r2, [r3, r1]
|
|
b514: 541a strb r2, [r3, r0]
|
|
b516: 3301 adds r3, #1
|
|
while(len) {
|
|
b518: 2b08 cmp r3, #8
|
|
b51a: d1fa bne.n b512 <lv_draw_rect+0x94e>
|
|
fa.y1 = fa.y2; /*Fill from bottom to top*/
|
|
b51c: ab22 add r3, sp, #136 ; 0x88
|
|
b51e: 88da ldrh r2, [r3, #6]
|
|
b520: 805a strh r2, [r3, #2]
|
|
b522: 3401 adds r4, #1
|
|
b524: 1ba6 subs r6, r4, r6
|
|
b526: b236 sxth r6, r6
|
|
for(y = 0; y < h; y++) {
|
|
b528: 2e00 cmp r6, #0
|
|
b52a: dd3c ble.n b5a6 <lv_draw_rect+0x9e2>
|
|
b52c: 1c73 adds r3, r6, #1
|
|
b52e: 4698 mov r8, r3
|
|
b530: 2601 movs r6, #1
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b532: ac22 add r4, sp, #136 ; 0x88
|
|
b534: 4b1a ldr r3, [pc, #104] ; (b5a0 <lv_draw_rect+0x9dc>)
|
|
b536: 469a mov sl, r3
|
|
b538: 9507 str r5, [sp, #28]
|
|
b53a: 465f mov r7, fp
|
|
b53c: e019 b.n b572 <lv_draw_rect+0x9ae>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b53e: 8bfa ldrh r2, [r7, #30]
|
|
b540: 2329 movs r3, #41 ; 0x29
|
|
b542: 5cfb ldrb r3, [r7, r3]
|
|
b544: 9302 str r3, [sp, #8]
|
|
b546: 9b06 ldr r3, [sp, #24]
|
|
b548: 9301 str r3, [sp, #4]
|
|
b54a: 9000 str r0, [sp, #0]
|
|
b54c: 9b05 ldr r3, [sp, #20]
|
|
b54e: 0021 movs r1, r4
|
|
b550: 9804 ldr r0, [sp, #16]
|
|
b552: 4d12 ldr r5, [pc, #72] ; (b59c <lv_draw_rect+0x9d8>)
|
|
b554: 47a8 blx r5
|
|
fa.y1--;
|
|
b556: 8863 ldrh r3, [r4, #2]
|
|
b558: 3b01 subs r3, #1
|
|
b55a: 8063 strh r3, [r4, #2]
|
|
fa.y2--;
|
|
b55c: 88e3 ldrh r3, [r4, #6]
|
|
b55e: 3b01 subs r3, #1
|
|
b560: 80e3 strh r3, [r4, #6]
|
|
b562: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b564: 469c mov ip, r3
|
|
b566: 9b07 ldr r3, [sp, #28]
|
|
b568: 4463 add r3, ip
|
|
b56a: 9307 str r3, [sp, #28]
|
|
b56c: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b56e: 4546 cmp r6, r8
|
|
b570: d018 beq.n b5a4 <lv_draw_rect+0x9e0>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b572: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b574: 9907 ldr r1, [sp, #28]
|
|
b576: 9805 ldr r0, [sp, #20]
|
|
b578: 4b07 ldr r3, [pc, #28] ; (b598 <lv_draw_rect+0x9d4>)
|
|
b57a: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b57c: 2102 movs r1, #2
|
|
b57e: 5e62 ldrsh r2, [r4, r1]
|
|
b580: 2500 movs r5, #0
|
|
b582: 5f61 ldrsh r1, [r4, r5]
|
|
b584: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b586: 9805 ldr r0, [sp, #20]
|
|
b588: 47d0 blx sl
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b58a: 2801 cmp r0, #1
|
|
b58c: d1d7 bne.n b53e <lv_draw_rect+0x97a>
|
|
b58e: 3001 adds r0, #1
|
|
b590: e7d5 b.n b53e <lv_draw_rect+0x97a>
|
|
b592: 46c0 nop ; (mov r8, r8)
|
|
b594: 0000fc0f .word 0x0000fc0f
|
|
b598: 00010c8d .word 0x00010c8d
|
|
b59c: 00005c6d .word 0x00005c6d
|
|
b5a0: 0000a625 .word 0x0000a625
|
|
b5a4: 46bb mov fp, r7
|
|
a.x1 = sh_area.x1;
|
|
b5a6: aa16 add r2, sp, #88 ; 0x58
|
|
b5a8: 2100 movs r1, #0
|
|
b5aa: 5e53 ldrsh r3, [r2, r1]
|
|
b5ac: a91c add r1, sp, #112 ; 0x70
|
|
b5ae: 800b strh r3, [r1, #0]
|
|
a.x2 = a.x1 + corner_size - 1;
|
|
b5b0: 3b01 subs r3, #1
|
|
b5b2: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b5b4: 46a4 mov ip, r4
|
|
b5b6: 4463 add r3, ip
|
|
b5b8: 808b strh r3, [r1, #4]
|
|
a.y1 = sh_area.y1 + corner_size;
|
|
b5ba: 8853 ldrh r3, [r2, #2]
|
|
b5bc: 4463 add r3, ip
|
|
b5be: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y2 - corner_size;
|
|
b5c0: 88d3 ldrh r3, [r2, #6]
|
|
b5c2: 1b1b subs r3, r3, r4
|
|
b5c4: 80cb strh r3, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b5c6: 9a04 ldr r2, [sp, #16]
|
|
b5c8: a81e add r0, sp, #120 ; 0x78
|
|
b5ca: 4bc5 ldr r3, [pc, #788] ; (b8e0 <lv_draw_rect+0xd1c>)
|
|
b5cc: 4798 blx r3
|
|
if(has_com) {
|
|
b5ce: 2800 cmp r0, #0
|
|
b5d0: d06c beq.n b6ac <lv_draw_rect+0xae8>
|
|
if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2);
|
|
b5d2: 9b08 ldr r3, [sp, #32]
|
|
b5d4: 2b00 cmp r3, #0
|
|
b5d6: d00a beq.n b5ee <lv_draw_rect+0xa2a>
|
|
b5d8: aa1e add r2, sp, #120 ; 0x78
|
|
b5da: 464b mov r3, r9
|
|
b5dc: 8818 ldrh r0, [r3, #0]
|
|
b5de: 8893 ldrh r3, [r2, #4]
|
|
b5e0: 1c19 adds r1, r3, #0
|
|
b5e2: b21b sxth r3, r3
|
|
b5e4: b204 sxth r4, r0
|
|
b5e6: 42a3 cmp r3, r4
|
|
b5e8: dd00 ble.n b5ec <lv_draw_rect+0xa28>
|
|
b5ea: 1c01 adds r1, r0, #0
|
|
b5ec: 8091 strh r1, [r2, #4]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b5ee: ab1e add r3, sp, #120 ; 0x78
|
|
b5f0: 2100 movs r1, #0
|
|
b5f2: 5e5a ldrsh r2, [r3, r1]
|
|
b5f4: 889b ldrh r3, [r3, #4]
|
|
b5f6: 3301 adds r3, #1
|
|
b5f8: 1a9b subs r3, r3, r2
|
|
b5fa: b21b sxth r3, r3
|
|
b5fc: 9307 str r3, [sp, #28]
|
|
if(w > 0) {
|
|
b5fe: 2b00 cmp r3, #0
|
|
b600: dd54 ble.n b6ac <lv_draw_rect+0xae8>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b602: ab1e add r3, sp, #120 ; 0x78
|
|
b604: 88df ldrh r7, [r3, #6]
|
|
b606: 3701 adds r7, #1
|
|
b608: 885b ldrh r3, [r3, #2]
|
|
b60a: 1aff subs r7, r7, r3
|
|
b60c: b23f sxth r7, r7
|
|
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
|
|
b60e: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b610: 000b movs r3, r1
|
|
b612: 3b01 subs r3, #1
|
|
b614: 434b muls r3, r1
|
|
sh_buf_tmp += ca.x1 - a.x1;
|
|
b616: a91c add r1, sp, #112 ; 0x70
|
|
b618: 2000 movs r0, #0
|
|
b61a: 5e09 ldrsh r1, [r1, r0]
|
|
b61c: 1a52 subs r2, r2, r1
|
|
b61e: 189a adds r2, r3, r2
|
|
b620: 0013 movs r3, r2
|
|
b622: 990e ldr r1, [sp, #56] ; 0x38
|
|
b624: 468c mov ip, r1
|
|
b626: 4463 add r3, ip
|
|
b628: 930b str r3, [sp, #44] ; 0x2c
|
|
b62a: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b62c: a822 add r0, sp, #136 ; 0x88
|
|
b62e: a91e add r1, sp, #120 ; 0x78
|
|
b630: 5c5a ldrb r2, [r3, r1]
|
|
b632: 541a strb r2, [r3, r0]
|
|
b634: 3301 adds r3, #1
|
|
while(len) {
|
|
b636: 2b08 cmp r3, #8
|
|
b638: d1fa bne.n b630 <lv_draw_rect+0xa6c>
|
|
fa.y2 = fa.y1;
|
|
b63a: ab22 add r3, sp, #136 ; 0x88
|
|
b63c: 885a ldrh r2, [r3, #2]
|
|
b63e: 80da strh r2, [r3, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b640: 2f00 cmp r7, #0
|
|
b642: dd33 ble.n b6ac <lv_draw_rect+0xae8>
|
|
b644: 2500 movs r5, #0
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b646: 4ba7 ldr r3, [pc, #668] ; (b8e4 <lv_draw_rect+0xd20>)
|
|
b648: 4698 mov r8, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b64a: ac22 add r4, sp, #136 ; 0x88
|
|
b64c: 9b08 ldr r3, [sp, #32]
|
|
b64e: 469a mov sl, r3
|
|
b650: 465e mov r6, fp
|
|
b652: 46bb mov fp, r7
|
|
b654: e015 b.n b682 <lv_draw_rect+0xabe>
|
|
_lv_blend_fill(clip, &fa,
|
|
b656: 8bf2 ldrh r2, [r6, #30]
|
|
b658: 2329 movs r3, #41 ; 0x29
|
|
b65a: 5cf3 ldrb r3, [r6, r3]
|
|
b65c: 9302 str r3, [sp, #8]
|
|
b65e: 2328 movs r3, #40 ; 0x28
|
|
b660: 5cf3 ldrb r3, [r6, r3]
|
|
b662: 9301 str r3, [sp, #4]
|
|
b664: 9000 str r0, [sp, #0]
|
|
b666: 9b05 ldr r3, [sp, #20]
|
|
b668: 0021 movs r1, r4
|
|
b66a: 9804 ldr r0, [sp, #16]
|
|
b66c: 4f9e ldr r7, [pc, #632] ; (b8e8 <lv_draw_rect+0xd24>)
|
|
b66e: 47b8 blx r7
|
|
fa.y1++;
|
|
b670: 8863 ldrh r3, [r4, #2]
|
|
b672: 3301 adds r3, #1
|
|
b674: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b676: 88e3 ldrh r3, [r4, #6]
|
|
b678: 3301 adds r3, #1
|
|
b67a: 80e3 strh r3, [r4, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b67c: 3501 adds r5, #1
|
|
b67e: 455d cmp r5, fp
|
|
b680: da13 bge.n b6aa <lv_draw_rect+0xae6>
|
|
_lv_memcpy(mask_buf, sh_buf_tmp, w);
|
|
b682: 9a07 ldr r2, [sp, #28]
|
|
b684: 990b ldr r1, [sp, #44] ; 0x2c
|
|
b686: 9805 ldr r0, [sp, #20]
|
|
b688: 47c0 blx r8
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b68a: 2002 movs r0, #2
|
|
if(simple_mode) {
|
|
b68c: 4653 mov r3, sl
|
|
b68e: 2b00 cmp r3, #0
|
|
b690: d1e1 bne.n b656 <lv_draw_rect+0xa92>
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b692: 2302 movs r3, #2
|
|
b694: 5ee2 ldrsh r2, [r4, r3]
|
|
b696: 2300 movs r3, #0
|
|
b698: 5ee1 ldrsh r1, [r4, r3]
|
|
b69a: 9b07 ldr r3, [sp, #28]
|
|
b69c: 9805 ldr r0, [sp, #20]
|
|
b69e: 4f93 ldr r7, [pc, #588] ; (b8ec <lv_draw_rect+0xd28>)
|
|
b6a0: 47b8 blx r7
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b6a2: 2801 cmp r0, #1
|
|
b6a4: d1d7 bne.n b656 <lv_draw_rect+0xa92>
|
|
b6a6: 3001 adds r0, #1
|
|
b6a8: e7d5 b.n b656 <lv_draw_rect+0xa92>
|
|
b6aa: 46b3 mov fp, r6
|
|
a.x1 = sh_area.x1 + corner_size;
|
|
b6ac: a91c add r1, sp, #112 ; 0x70
|
|
b6ae: ab16 add r3, sp, #88 ; 0x58
|
|
b6b0: 881a ldrh r2, [r3, #0]
|
|
b6b2: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b6b4: 46a4 mov ip, r4
|
|
b6b6: 4462 add r2, ip
|
|
b6b8: 800a strh r2, [r1, #0]
|
|
a.x2 = sh_area.x2 - corner_size;
|
|
b6ba: 889a ldrh r2, [r3, #4]
|
|
b6bc: 1b12 subs r2, r2, r4
|
|
b6be: 808a strh r2, [r1, #4]
|
|
a.y1 = sh_area.y1;
|
|
b6c0: 2202 movs r2, #2
|
|
b6c2: 5e9b ldrsh r3, [r3, r2]
|
|
b6c4: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y1 + corner_size - 1;
|
|
b6c6: 3b01 subs r3, #1
|
|
b6c8: 4463 add r3, ip
|
|
b6ca: 80cb strh r3, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b6cc: 9a04 ldr r2, [sp, #16]
|
|
b6ce: a81e add r0, sp, #120 ; 0x78
|
|
b6d0: 4b83 ldr r3, [pc, #524] ; (b8e0 <lv_draw_rect+0xd1c>)
|
|
b6d2: 4798 blx r3
|
|
if(has_com) {
|
|
b6d4: 2800 cmp r0, #0
|
|
b6d6: d076 beq.n b7c6 <lv_draw_rect+0xc02>
|
|
if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1);
|
|
b6d8: 9b08 ldr r3, [sp, #32]
|
|
b6da: 2b00 cmp r3, #0
|
|
b6dc: d00a beq.n b6f4 <lv_draw_rect+0xb30>
|
|
b6de: aa1e add r2, sp, #120 ; 0x78
|
|
b6e0: 88d0 ldrh r0, [r2, #6]
|
|
b6e2: 464b mov r3, r9
|
|
b6e4: 885b ldrh r3, [r3, #2]
|
|
b6e6: 1c19 adds r1, r3, #0
|
|
b6e8: b21b sxth r3, r3
|
|
b6ea: b204 sxth r4, r0
|
|
b6ec: 42a3 cmp r3, r4
|
|
b6ee: dd00 ble.n b6f2 <lv_draw_rect+0xb2e>
|
|
b6f0: 1c01 adds r1, r0, #0
|
|
b6f2: 80d1 strh r1, [r2, #6]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b6f4: aa1e add r2, sp, #120 ; 0x78
|
|
b6f6: 8893 ldrh r3, [r2, #4]
|
|
b6f8: 3301 adds r3, #1
|
|
b6fa: 8811 ldrh r1, [r2, #0]
|
|
b6fc: 1a5b subs r3, r3, r1
|
|
b6fe: b21b sxth r3, r3
|
|
b700: 930b str r3, [sp, #44] ; 0x2c
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b702: 2102 movs r1, #2
|
|
b704: 5e53 ldrsh r3, [r2, r1]
|
|
b706: 88d4 ldrh r4, [r2, #6]
|
|
b708: 3401 adds r4, #1
|
|
b70a: 1ae4 subs r4, r4, r3
|
|
b70c: b224 sxth r4, r4
|
|
sh_buf_tmp = sh_buf + corner_size - 1;
|
|
b70e: 9909 ldr r1, [sp, #36] ; 0x24
|
|
b710: 910c str r1, [sp, #48] ; 0x30
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b712: aa1c add r2, sp, #112 ; 0x70
|
|
b714: 2502 movs r5, #2
|
|
b716: 5f55 ldrsh r5, [r2, r5]
|
|
b718: 1b5d subs r5, r3, r5
|
|
b71a: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + corner_size - 1;
|
|
b71c: 1e4b subs r3, r1, #1
|
|
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
|
|
b71e: 18ed adds r5, r5, r3
|
|
b720: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b722: 469c mov ip, r3
|
|
b724: 4465 add r5, ip
|
|
b726: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b728: a822 add r0, sp, #136 ; 0x88
|
|
b72a: a91e add r1, sp, #120 ; 0x78
|
|
b72c: 5c5a ldrb r2, [r3, r1]
|
|
b72e: 541a strb r2, [r3, r0]
|
|
b730: 3301 adds r3, #1
|
|
while(len) {
|
|
b732: 2b08 cmp r3, #8
|
|
b734: d1fa bne.n b72c <lv_draw_rect+0xb68>
|
|
fa.y2 = fa.y1;
|
|
b736: ab22 add r3, sp, #136 ; 0x88
|
|
b738: 885a ldrh r2, [r3, #2]
|
|
b73a: 80da strh r2, [r3, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b73c: 2c00 cmp r4, #0
|
|
b73e: dd42 ble.n b7c6 <lv_draw_rect+0xc02>
|
|
b740: 1c63 adds r3, r4, #1
|
|
b742: 4698 mov r8, r3
|
|
b744: 2601 movs r6, #1
|
|
_lv_memset(mask_buf, opa_tmp, w);
|
|
b746: 4b6a ldr r3, [pc, #424] ; (b8f0 <lv_draw_rect+0xd2c>)
|
|
b748: 469a mov sl, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b74a: ac22 add r4, sp, #136 ; 0x88
|
|
b74c: 9507 str r5, [sp, #28]
|
|
b74e: 465f mov r7, fp
|
|
b750: e01e b.n b790 <lv_draw_rect+0xbcc>
|
|
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
|
|
b752: 9b06 ldr r3, [sp, #24]
|
|
b754: 2bff cmp r3, #255 ; 0xff
|
|
b756: d11f bne.n b798 <lv_draw_rect+0xbd4>
|
|
lv_opa_t opa_tmp = sh_buf_tmp[0];
|
|
b758: 9906 ldr r1, [sp, #24]
|
|
b75a: e020 b.n b79e <lv_draw_rect+0xbda>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b75c: 8bfa ldrh r2, [r7, #30]
|
|
b75e: 2329 movs r3, #41 ; 0x29
|
|
b760: 5cfb ldrb r3, [r7, r3]
|
|
b762: 9302 str r3, [sp, #8]
|
|
b764: 23ff movs r3, #255 ; 0xff
|
|
b766: 9301 str r3, [sp, #4]
|
|
b768: 9000 str r0, [sp, #0]
|
|
b76a: 9b05 ldr r3, [sp, #20]
|
|
b76c: 0021 movs r1, r4
|
|
b76e: 9804 ldr r0, [sp, #16]
|
|
b770: 4d5d ldr r5, [pc, #372] ; (b8e8 <lv_draw_rect+0xd24>)
|
|
b772: 47a8 blx r5
|
|
fa.y1++;
|
|
b774: 8863 ldrh r3, [r4, #2]
|
|
b776: 3301 adds r3, #1
|
|
b778: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b77a: 88e3 ldrh r3, [r4, #6]
|
|
b77c: 3301 adds r3, #1
|
|
b77e: 80e3 strh r3, [r4, #6]
|
|
sh_buf_tmp += corner_size;
|
|
b780: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
b782: 469c mov ip, r3
|
|
b784: 9b07 ldr r3, [sp, #28]
|
|
b786: 4463 add r3, ip
|
|
b788: 9307 str r3, [sp, #28]
|
|
b78a: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b78c: 4546 cmp r6, r8
|
|
b78e: d019 beq.n b7c4 <lv_draw_rect+0xc00>
|
|
lv_opa_t opa_tmp = sh_buf_tmp[0];
|
|
b790: 9b07 ldr r3, [sp, #28]
|
|
b792: 7819 ldrb r1, [r3, #0]
|
|
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
|
|
b794: 29ff cmp r1, #255 ; 0xff
|
|
b796: d0dc beq.n b752 <lv_draw_rect+0xb8e>
|
|
b798: 9b06 ldr r3, [sp, #24]
|
|
b79a: 4359 muls r1, r3
|
|
b79c: 0a09 lsrs r1, r1, #8
|
|
_lv_memset(mask_buf, opa_tmp, w);
|
|
b79e: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b7a0: 9805 ldr r0, [sp, #20]
|
|
b7a2: 47d0 blx sl
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b7a4: 2002 movs r0, #2
|
|
if(simple_mode) {
|
|
b7a6: 9b08 ldr r3, [sp, #32]
|
|
b7a8: 2b00 cmp r3, #0
|
|
b7aa: d1d7 bne.n b75c <lv_draw_rect+0xb98>
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b7ac: 2302 movs r3, #2
|
|
b7ae: 5ee2 ldrsh r2, [r4, r3]
|
|
b7b0: 2300 movs r3, #0
|
|
b7b2: 5ee1 ldrsh r1, [r4, r3]
|
|
b7b4: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b7b6: 9805 ldr r0, [sp, #20]
|
|
b7b8: 4d4c ldr r5, [pc, #304] ; (b8ec <lv_draw_rect+0xd28>)
|
|
b7ba: 47a8 blx r5
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b7bc: 2801 cmp r0, #1
|
|
b7be: d1cd bne.n b75c <lv_draw_rect+0xb98>
|
|
b7c0: 3001 adds r0, #1
|
|
b7c2: e7cb b.n b75c <lv_draw_rect+0xb98>
|
|
b7c4: 46bb mov fp, r7
|
|
a.x1 = sh_area.x1 + corner_size;
|
|
b7c6: a91c add r1, sp, #112 ; 0x70
|
|
b7c8: ab16 add r3, sp, #88 ; 0x58
|
|
b7ca: 881a ldrh r2, [r3, #0]
|
|
b7cc: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b7ce: 46a4 mov ip, r4
|
|
b7d0: 4462 add r2, ip
|
|
b7d2: 800a strh r2, [r1, #0]
|
|
a.x2 = sh_area.x2 - corner_size;
|
|
b7d4: 889a ldrh r2, [r3, #4]
|
|
b7d6: 1b12 subs r2, r2, r4
|
|
b7d8: 808a strh r2, [r1, #4]
|
|
a.y1 = sh_area.y2 - corner_size + 1;
|
|
b7da: 2206 movs r2, #6
|
|
b7dc: 5e9a ldrsh r2, [r3, r2]
|
|
b7de: 1c53 adds r3, r2, #1
|
|
b7e0: 1b1b subs r3, r3, r4
|
|
b7e2: 804b strh r3, [r1, #2]
|
|
a.y2 = sh_area.y2;
|
|
b7e4: 80ca strh r2, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b7e6: 9a04 ldr r2, [sp, #16]
|
|
b7e8: a81e add r0, sp, #120 ; 0x78
|
|
b7ea: 4b3d ldr r3, [pc, #244] ; (b8e0 <lv_draw_rect+0xd1c>)
|
|
b7ec: 4798 blx r3
|
|
if(has_com) {
|
|
b7ee: 2800 cmp r0, #0
|
|
b7f0: d100 bne.n b7f4 <lv_draw_rect+0xc30>
|
|
b7f2: e081 b.n b8f8 <lv_draw_rect+0xd34>
|
|
if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2);
|
|
b7f4: 9b08 ldr r3, [sp, #32]
|
|
b7f6: 2b00 cmp r3, #0
|
|
b7f8: d00a beq.n b810 <lv_draw_rect+0xc4c>
|
|
b7fa: aa1e add r2, sp, #120 ; 0x78
|
|
b7fc: 8850 ldrh r0, [r2, #2]
|
|
b7fe: 464b mov r3, r9
|
|
b800: 88db ldrh r3, [r3, #6]
|
|
b802: 1c19 adds r1, r3, #0
|
|
b804: b21b sxth r3, r3
|
|
b806: b204 sxth r4, r0
|
|
b808: 42a3 cmp r3, r4
|
|
b80a: da00 bge.n b80e <lv_draw_rect+0xc4a>
|
|
b80c: 1c01 adds r1, r0, #0
|
|
b80e: 8051 strh r1, [r2, #2]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b810: aa1e add r2, sp, #120 ; 0x78
|
|
b812: 8893 ldrh r3, [r2, #4]
|
|
b814: 3301 adds r3, #1
|
|
b816: 8811 ldrh r1, [r2, #0]
|
|
b818: 1a5b subs r3, r3, r1
|
|
b81a: b21b sxth r3, r3
|
|
b81c: 930b str r3, [sp, #44] ; 0x2c
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b81e: 2106 movs r1, #6
|
|
b820: 5e53 ldrsh r3, [r2, r1]
|
|
b822: 1c5c adds r4, r3, #1
|
|
b824: 8852 ldrh r2, [r2, #2]
|
|
b826: 1aa4 subs r4, r4, r2
|
|
b828: b224 sxth r4, r4
|
|
sh_buf_tmp = sh_buf + corner_size - 1;
|
|
b82a: 9909 ldr r1, [sp, #36] ; 0x24
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b82c: aa1c add r2, sp, #112 ; 0x70
|
|
b82e: 2506 movs r5, #6
|
|
b830: 5f55 ldrsh r5, [r2, r5]
|
|
b832: 1aed subs r5, r5, r3
|
|
b834: 434d muls r5, r1
|
|
sh_buf_tmp = sh_buf + corner_size - 1;
|
|
b836: 1e4b subs r3, r1, #1
|
|
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
|
|
b838: 18ed adds r5, r5, r3
|
|
b83a: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
b83c: 469c mov ip, r3
|
|
b83e: 4465 add r5, ip
|
|
b840: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b842: a822 add r0, sp, #136 ; 0x88
|
|
b844: a91e add r1, sp, #120 ; 0x78
|
|
b846: 5c5a ldrb r2, [r3, r1]
|
|
b848: 541a strb r2, [r3, r0]
|
|
b84a: 3301 adds r3, #1
|
|
while(len) {
|
|
b84c: 2b08 cmp r3, #8
|
|
b84e: d1fa bne.n b846 <lv_draw_rect+0xc82>
|
|
fa.y1 = fa.y2;
|
|
b850: ab22 add r3, sp, #136 ; 0x88
|
|
b852: 88da ldrh r2, [r3, #6]
|
|
b854: 805a strh r2, [r3, #2]
|
|
for(y = 0; y < h; y++) {
|
|
b856: 2c00 cmp r4, #0
|
|
b858: dd4e ble.n b8f8 <lv_draw_rect+0xd34>
|
|
b85a: 1c63 adds r3, r4, #1
|
|
b85c: 4698 mov r8, r3
|
|
b85e: 2601 movs r6, #1
|
|
_lv_memset(mask_buf, opa_tmp, w);
|
|
b860: 4b23 ldr r3, [pc, #140] ; (b8f0 <lv_draw_rect+0xd2c>)
|
|
b862: 469a mov sl, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b864: ac22 add r4, sp, #136 ; 0x88
|
|
b866: 9507 str r5, [sp, #28]
|
|
b868: 465f mov r7, fp
|
|
b86a: 46cb mov fp, r9
|
|
b86c: e01e b.n b8ac <lv_draw_rect+0xce8>
|
|
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
|
|
b86e: 9b06 ldr r3, [sp, #24]
|
|
b870: 2bff cmp r3, #255 ; 0xff
|
|
b872: d11f bne.n b8b4 <lv_draw_rect+0xcf0>
|
|
lv_opa_t opa_tmp = sh_buf_tmp[0];
|
|
b874: 9906 ldr r1, [sp, #24]
|
|
b876: e020 b.n b8ba <lv_draw_rect+0xcf6>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b878: 8bfa ldrh r2, [r7, #30]
|
|
b87a: 2329 movs r3, #41 ; 0x29
|
|
b87c: 5cfb ldrb r3, [r7, r3]
|
|
b87e: 9302 str r3, [sp, #8]
|
|
b880: 23ff movs r3, #255 ; 0xff
|
|
b882: 9301 str r3, [sp, #4]
|
|
b884: 9000 str r0, [sp, #0]
|
|
b886: 9b05 ldr r3, [sp, #20]
|
|
b888: 0021 movs r1, r4
|
|
b88a: 9804 ldr r0, [sp, #16]
|
|
b88c: 4d16 ldr r5, [pc, #88] ; (b8e8 <lv_draw_rect+0xd24>)
|
|
b88e: 47a8 blx r5
|
|
fa.y1--;
|
|
b890: 8863 ldrh r3, [r4, #2]
|
|
b892: 3b01 subs r3, #1
|
|
b894: 8063 strh r3, [r4, #2]
|
|
fa.y2--;
|
|
b896: 88e3 ldrh r3, [r4, #6]
|
|
b898: 3b01 subs r3, #1
|
|
b89a: 80e3 strh r3, [r4, #6]
|
|
sh_buf_tmp += corner_size;
|
|
b89c: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
b89e: 469c mov ip, r3
|
|
b8a0: 9b07 ldr r3, [sp, #28]
|
|
b8a2: 4463 add r3, ip
|
|
b8a4: 9307 str r3, [sp, #28]
|
|
b8a6: 3601 adds r6, #1
|
|
for(y = 0; y < h; y++) {
|
|
b8a8: 45b0 cmp r8, r6
|
|
b8aa: d023 beq.n b8f4 <lv_draw_rect+0xd30>
|
|
lv_opa_t opa_tmp = sh_buf_tmp[0];
|
|
b8ac: 9b07 ldr r3, [sp, #28]
|
|
b8ae: 7819 ldrb r1, [r3, #0]
|
|
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
|
|
b8b0: 29ff cmp r1, #255 ; 0xff
|
|
b8b2: d0dc beq.n b86e <lv_draw_rect+0xcaa>
|
|
b8b4: 9b06 ldr r3, [sp, #24]
|
|
b8b6: 4359 muls r1, r3
|
|
b8b8: 0a09 lsrs r1, r1, #8
|
|
_lv_memset(mask_buf, opa_tmp, w);
|
|
b8ba: 9a0b ldr r2, [sp, #44] ; 0x2c
|
|
b8bc: 9805 ldr r0, [sp, #20]
|
|
b8be: 47d0 blx sl
|
|
mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b8c0: 2002 movs r0, #2
|
|
if(simple_mode) {
|
|
b8c2: 9b08 ldr r3, [sp, #32]
|
|
b8c4: 2b00 cmp r3, #0
|
|
b8c6: d1d7 bne.n b878 <lv_draw_rect+0xcb4>
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b8c8: 2302 movs r3, #2
|
|
b8ca: 5ee2 ldrsh r2, [r4, r3]
|
|
b8cc: 2300 movs r3, #0
|
|
b8ce: 5ee1 ldrsh r1, [r4, r3]
|
|
b8d0: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
b8d2: 9805 ldr r0, [sp, #20]
|
|
b8d4: 4d05 ldr r5, [pc, #20] ; (b8ec <lv_draw_rect+0xd28>)
|
|
b8d6: 47a8 blx r5
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b8d8: 2801 cmp r0, #1
|
|
b8da: d1cd bne.n b878 <lv_draw_rect+0xcb4>
|
|
b8dc: 3001 adds r0, #1
|
|
b8de: e7cb b.n b878 <lv_draw_rect+0xcb4>
|
|
b8e0: 0000fc0f .word 0x0000fc0f
|
|
b8e4: 00010c8d .word 0x00010c8d
|
|
b8e8: 00005c6d .word 0x00005c6d
|
|
b8ec: 0000a625 .word 0x0000a625
|
|
b8f0: 00010fad .word 0x00010fad
|
|
b8f4: 46d9 mov r9, fp
|
|
b8f6: 46bb mov fp, r7
|
|
a.x1 = sh_area.x1 + corner_size;
|
|
b8f8: a91c add r1, sp, #112 ; 0x70
|
|
b8fa: ab16 add r3, sp, #88 ; 0x58
|
|
b8fc: 881a ldrh r2, [r3, #0]
|
|
b8fe: 9c0a ldr r4, [sp, #40] ; 0x28
|
|
b900: 46a4 mov ip, r4
|
|
b902: 4462 add r2, ip
|
|
b904: 800a strh r2, [r1, #0]
|
|
a.x2 = sh_area.x2 - corner_size;
|
|
b906: 889a ldrh r2, [r3, #4]
|
|
b908: 1b12 subs r2, r2, r4
|
|
b90a: 808a strh r2, [r1, #4]
|
|
a.y1 = sh_area.y1 + corner_size;
|
|
b90c: 885a ldrh r2, [r3, #2]
|
|
b90e: 4462 add r2, ip
|
|
b910: 804a strh r2, [r1, #2]
|
|
a.y2 = sh_area.y2 - corner_size;
|
|
b912: 88db ldrh r3, [r3, #6]
|
|
b914: 1b1b subs r3, r3, r4
|
|
b916: 80cb strh r3, [r1, #6]
|
|
has_com = _lv_area_intersect(&ca, &a, clip);
|
|
b918: 9a04 ldr r2, [sp, #16]
|
|
b91a: a81e add r0, sp, #120 ; 0x78
|
|
b91c: 4bc4 ldr r3, [pc, #784] ; (bc30 <lv_draw_rect+0x106c>)
|
|
b91e: 4798 blx r3
|
|
if(has_com && simple_mode == false) {
|
|
b920: 2800 cmp r0, #0
|
|
b922: d04c beq.n b9be <lv_draw_rect+0xdfa>
|
|
b924: 9b08 ldr r3, [sp, #32]
|
|
b926: 2b00 cmp r3, #0
|
|
b928: d149 bne.n b9be <lv_draw_rect+0xdfa>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
b92a: aa1e add r2, sp, #120 ; 0x78
|
|
b92c: 8893 ldrh r3, [r2, #4]
|
|
b92e: 3301 adds r3, #1
|
|
b930: 8811 ldrh r1, [r2, #0]
|
|
b932: 1a5b subs r3, r3, r1
|
|
b934: b21b sxth r3, r3
|
|
b936: 9306 str r3, [sp, #24]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
b938: 88d7 ldrh r7, [r2, #6]
|
|
b93a: 3701 adds r7, #1
|
|
b93c: 8853 ldrh r3, [r2, #2]
|
|
b93e: 1aff subs r7, r7, r3
|
|
b940: b23f sxth r7, r7
|
|
b942: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b944: a822 add r0, sp, #136 ; 0x88
|
|
b946: 0011 movs r1, r2
|
|
b948: 5c5a ldrb r2, [r3, r1]
|
|
b94a: 541a strb r2, [r3, r0]
|
|
b94c: 3301 adds r3, #1
|
|
while(len) {
|
|
b94e: 2b08 cmp r3, #8
|
|
b950: d1fa bne.n b948 <lv_draw_rect+0xd84>
|
|
fa.y2 = fa.y1;
|
|
b952: ab22 add r3, sp, #136 ; 0x88
|
|
b954: 885a ldrh r2, [r3, #2]
|
|
b956: 80da strh r2, [r3, #6]
|
|
for(y = 0; y < h; y++) {
|
|
b958: 2f00 cmp r7, #0
|
|
b95a: dd30 ble.n b9be <lv_draw_rect+0xdfa>
|
|
b95c: 3701 adds r7, #1
|
|
b95e: 2501 movs r5, #1
|
|
_lv_memset(mask_buf, dsc->shadow_opa, w);
|
|
b960: 4bb4 ldr r3, [pc, #720] ; (bc34 <lv_draw_rect+0x1070>)
|
|
b962: 469a mov sl, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b964: ac22 add r4, sp, #136 ; 0x88
|
|
b966: 4bb4 ldr r3, [pc, #720] ; (bc38 <lv_draw_rect+0x1074>)
|
|
b968: 4698 mov r8, r3
|
|
b96a: 465e mov r6, fp
|
|
b96c: 46bb mov fp, r7
|
|
b96e: e014 b.n b99a <lv_draw_rect+0xdd6>
|
|
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
|
|
b970: 8bf2 ldrh r2, [r6, #30]
|
|
b972: 2329 movs r3, #41 ; 0x29
|
|
b974: 5cf3 ldrb r3, [r6, r3]
|
|
b976: 9302 str r3, [sp, #8]
|
|
b978: 23ff movs r3, #255 ; 0xff
|
|
b97a: 9301 str r3, [sp, #4]
|
|
b97c: 9000 str r0, [sp, #0]
|
|
b97e: 9b05 ldr r3, [sp, #20]
|
|
b980: 0021 movs r1, r4
|
|
b982: 9804 ldr r0, [sp, #16]
|
|
b984: 4fad ldr r7, [pc, #692] ; (bc3c <lv_draw_rect+0x1078>)
|
|
b986: 47b8 blx r7
|
|
fa.y1++;
|
|
b988: 8863 ldrh r3, [r4, #2]
|
|
b98a: 3301 adds r3, #1
|
|
b98c: 8063 strh r3, [r4, #2]
|
|
fa.y2++;
|
|
b98e: 88e3 ldrh r3, [r4, #6]
|
|
b990: 3301 adds r3, #1
|
|
b992: 80e3 strh r3, [r4, #6]
|
|
b994: 3501 adds r5, #1
|
|
for(y = 0; y < h; y++) {
|
|
b996: 45ab cmp fp, r5
|
|
b998: d010 beq.n b9bc <lv_draw_rect+0xdf8>
|
|
_lv_memset(mask_buf, dsc->shadow_opa, w);
|
|
b99a: 2328 movs r3, #40 ; 0x28
|
|
b99c: 5cf1 ldrb r1, [r6, r3]
|
|
b99e: 9a06 ldr r2, [sp, #24]
|
|
b9a0: 9f05 ldr r7, [sp, #20]
|
|
b9a2: 0038 movs r0, r7
|
|
b9a4: 47d0 blx sl
|
|
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
|
|
b9a6: 2102 movs r1, #2
|
|
b9a8: 5e62 ldrsh r2, [r4, r1]
|
|
b9aa: 2000 movs r0, #0
|
|
b9ac: 5e21 ldrsh r1, [r4, r0]
|
|
b9ae: 9b06 ldr r3, [sp, #24]
|
|
b9b0: 0038 movs r0, r7
|
|
b9b2: 47c0 blx r8
|
|
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
|
|
b9b4: 2801 cmp r0, #1
|
|
b9b6: d1db bne.n b970 <lv_draw_rect+0xdac>
|
|
b9b8: 3001 adds r0, #1
|
|
b9ba: e7d9 b.n b970 <lv_draw_rect+0xdac>
|
|
b9bc: 46b3 mov fp, r6
|
|
lv_draw_mask_remove_id(mask_rout_id);
|
|
b9be: 980f ldr r0, [sp, #60] ; 0x3c
|
|
b9c0: 4b9f ldr r3, [pc, #636] ; (bc40 <lv_draw_rect+0x107c>)
|
|
b9c2: 4798 blx r3
|
|
_lv_mem_buf_release(mask_buf);
|
|
b9c4: 9805 ldr r0, [sp, #20]
|
|
b9c6: 4c9f ldr r4, [pc, #636] ; (bc44 <lv_draw_rect+0x1080>)
|
|
b9c8: 47a0 blx r4
|
|
_lv_mem_buf_release(sh_buf);
|
|
b9ca: 980e ldr r0, [sp, #56] ; 0x38
|
|
b9cc: 47a0 blx r4
|
|
if(dsc->bg_opa <= LV_OPA_MIN) return;
|
|
b9ce: 465b mov r3, fp
|
|
b9d0: 7b1b ldrb r3, [r3, #12]
|
|
b9d2: 469a mov sl, r3
|
|
b9d4: 2b05 cmp r3, #5
|
|
b9d6: d93f bls.n ba58 <lv_draw_rect+0xe94>
|
|
b9d8: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
b9da: a91a add r1, sp, #104 ; 0x68
|
|
b9dc: 4648 mov r0, r9
|
|
b9de: 5cc2 ldrb r2, [r0, r3]
|
|
b9e0: 545a strb r2, [r3, r1]
|
|
b9e2: 3301 adds r3, #1
|
|
while(len) {
|
|
b9e4: 2b08 cmp r3, #8
|
|
b9e6: d1fa bne.n b9de <lv_draw_rect+0xe1a>
|
|
b9e8: 4681 mov r9, r0
|
|
if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) {
|
|
b9ea: 465b mov r3, fp
|
|
b9ec: 2210 movs r2, #16
|
|
b9ee: 5e9b ldrsh r3, [r3, r2]
|
|
b9f0: 2b01 cmp r3, #1
|
|
b9f2: dd1f ble.n ba34 <lv_draw_rect+0xe70>
|
|
b9f4: 465b mov r3, fp
|
|
b9f6: 7d1b ldrb r3, [r3, #20]
|
|
b9f8: 2bf9 cmp r3, #249 ; 0xf9
|
|
b9fa: d91b bls.n ba34 <lv_draw_rect+0xe70>
|
|
b9fc: 465b mov r3, fp
|
|
b9fe: 2200 movs r2, #0
|
|
ba00: 5e9b ldrsh r3, [r3, r2]
|
|
ba02: 2b00 cmp r3, #0
|
|
ba04: d016 beq.n ba34 <lv_draw_rect+0xe70>
|
|
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
|
|
ba06: 465b mov r3, fp
|
|
ba08: 8a58 ldrh r0, [r3, #18]
|
|
ba0a: ab1a add r3, sp, #104 ; 0x68
|
|
ba0c: 0881 lsrs r1, r0, #2
|
|
ba0e: 2201 movs r2, #1
|
|
ba10: 4011 ands r1, r2
|
|
ba12: 881c ldrh r4, [r3, #0]
|
|
ba14: 1909 adds r1, r1, r4
|
|
ba16: 8019 strh r1, [r3, #0]
|
|
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
|
|
ba18: 0841 lsrs r1, r0, #1
|
|
ba1a: 4011 ands r1, r2
|
|
ba1c: 885c ldrh r4, [r3, #2]
|
|
ba1e: 1909 adds r1, r1, r4
|
|
ba20: 8059 strh r1, [r3, #2]
|
|
coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0;
|
|
ba22: 08c4 lsrs r4, r0, #3
|
|
ba24: 4014 ands r4, r2
|
|
ba26: 8899 ldrh r1, [r3, #4]
|
|
ba28: 1b09 subs r1, r1, r4
|
|
ba2a: 8099 strh r1, [r3, #4]
|
|
coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0;
|
|
ba2c: 4002 ands r2, r0
|
|
ba2e: 88d9 ldrh r1, [r3, #6]
|
|
ba30: 1a8a subs r2, r1, r2
|
|
ba32: 80da strh r2, [r3, #6]
|
|
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
|
|
ba34: 4653 mov r3, sl
|
|
ba36: 2bfa cmp r3, #250 ; 0xfa
|
|
ba38: d901 bls.n ba3e <lv_draw_rect+0xe7a>
|
|
ba3a: 23ff movs r3, #255 ; 0xff
|
|
ba3c: 469a mov sl, r3
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
ba3e: 4b82 ldr r3, [pc, #520] ; (bc48 <lv_draw_rect+0x1084>)
|
|
ba40: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
ba42: 4b82 ldr r3, [pc, #520] ; (bc4c <lv_draw_rect+0x1088>)
|
|
ba44: 4798 blx r3
|
|
ba46: 0007 movs r7, r0
|
|
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
|
|
ba48: 9a04 ldr r2, [sp, #16]
|
|
ba4a: a91a add r1, sp, #104 ; 0x68
|
|
ba4c: a81c add r0, sp, #112 ; 0x70
|
|
ba4e: 4b78 ldr r3, [pc, #480] ; (bc30 <lv_draw_rect+0x106c>)
|
|
ba50: 4798 blx r3
|
|
if(is_common == false) return;
|
|
ba52: 2800 cmp r0, #0
|
|
ba54: d000 beq.n ba58 <lv_draw_rect+0xe94>
|
|
ba56: e09d b.n bb94 <lv_draw_rect+0xfd0>
|
|
_lv_mem_buf_release(mask_buf);
|
|
}
|
|
|
|
static void draw_pattern(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc)
|
|
{
|
|
if(dsc->pattern_image == NULL) return;
|
|
ba58: 465b mov r3, fp
|
|
ba5a: 6ad8 ldr r0, [r3, #44] ; 0x2c
|
|
ba5c: 2800 cmp r0, #0
|
|
ba5e: d006 beq.n ba6e <lv_draw_rect+0xeaa>
|
|
if(dsc->pattern_opa <= LV_OPA_MIN) return;
|
|
ba60: 2336 movs r3, #54 ; 0x36
|
|
ba62: 465a mov r2, fp
|
|
ba64: 5cd3 ldrb r3, [r2, r3]
|
|
ba66: 2b05 cmp r3, #5
|
|
ba68: d901 bls.n ba6e <lv_draw_rect+0xeaa>
|
|
ba6a: f000 fbd7 bl c21c <lv_draw_rect+0x1658>
|
|
if(dsc->border_opa <= LV_OPA_MIN) return;
|
|
ba6e: 465b mov r3, fp
|
|
ba70: 7d1e ldrb r6, [r3, #20]
|
|
ba72: 2e05 cmp r6, #5
|
|
ba74: d919 bls.n baaa <lv_draw_rect+0xee6>
|
|
if(dsc->border_width == 0) return;
|
|
ba76: 2210 movs r2, #16
|
|
ba78: 5e9b ldrsh r3, [r3, r2]
|
|
ba7a: 2b00 cmp r3, #0
|
|
ba7c: d015 beq.n baaa <lv_draw_rect+0xee6>
|
|
if(dsc->border_side == LV_BORDER_SIDE_NONE) return;
|
|
ba7e: 465b mov r3, fp
|
|
ba80: 2212 movs r2, #18
|
|
ba82: 5e9b ldrsh r3, [r3, r2]
|
|
ba84: 2b00 cmp r3, #0
|
|
ba86: d010 beq.n baaa <lv_draw_rect+0xee6>
|
|
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
|
|
ba88: 2efa cmp r6, #250 ; 0xfa
|
|
ba8a: d900 bls.n ba8e <lv_draw_rect+0xeca>
|
|
ba8c: 26ff movs r6, #255 ; 0xff
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
ba8e: 4b6e ldr r3, [pc, #440] ; (bc48 <lv_draw_rect+0x1084>)
|
|
ba90: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
ba92: 4b6e ldr r3, [pc, #440] ; (bc4c <lv_draw_rect+0x1088>)
|
|
ba94: 4798 blx r3
|
|
ba96: 0007 movs r7, r0
|
|
is_common = _lv_area_intersect(&draw_area, coords, clip);
|
|
ba98: 9a04 ldr r2, [sp, #16]
|
|
ba9a: 4649 mov r1, r9
|
|
ba9c: a818 add r0, sp, #96 ; 0x60
|
|
ba9e: 4b64 ldr r3, [pc, #400] ; (bc30 <lv_draw_rect+0x106c>)
|
|
baa0: 4798 blx r3
|
|
if(is_common == false) return;
|
|
baa2: 2800 cmp r0, #0
|
|
baa4: d001 beq.n baaa <lv_draw_rect+0xee6>
|
|
baa6: f000 fd23 bl c4f0 <lv_draw_rect+0x192c>
|
|
}
|
|
|
|
|
|
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;
|
|
baaa: 465b mov r3, fp
|
|
baac: 6bd9 ldr r1, [r3, #60] ; 0x3c
|
|
baae: 2900 cmp r1, #0
|
|
bab0: d006 beq.n bac0 <lv_draw_rect+0xefc>
|
|
if(dsc->value_opa <= LV_OPA_MIN) return;
|
|
bab2: 2344 movs r3, #68 ; 0x44
|
|
bab4: 465a mov r2, fp
|
|
bab6: 5cd3 ldrb r3, [r2, r3]
|
|
bab8: 2b05 cmp r3, #5
|
|
baba: d901 bls.n bac0 <lv_draw_rect+0xefc>
|
|
babc: f001 f838 bl cb30 <lv_draw_rect+0x1f6c>
|
|
if(dsc->outline_opa <= LV_OPA_MIN) return;
|
|
bac0: 465b mov r3, fp
|
|
bac2: 7f1b ldrb r3, [r3, #28]
|
|
bac4: 4698 mov r8, r3
|
|
bac6: 2b05 cmp r3, #5
|
|
bac8: d95d bls.n bb86 <lv_draw_rect+0xfc2>
|
|
if(dsc->outline_width == 0) return;
|
|
baca: 465b mov r3, fp
|
|
bacc: 2218 movs r2, #24
|
|
bace: 5e9b ldrsh r3, [r3, r2]
|
|
bad0: 2b00 cmp r3, #0
|
|
bad2: d058 beq.n bb86 <lv_draw_rect+0xfc2>
|
|
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
|
|
bad4: 4643 mov r3, r8
|
|
bad6: 2bfa cmp r3, #250 ; 0xfa
|
|
bad8: d901 bls.n bade <lv_draw_rect+0xf1a>
|
|
bada: 23ff movs r3, #255 ; 0xff
|
|
badc: 4698 mov r8, r3
|
|
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
bade: 4b5c ldr r3, [pc, #368] ; (bc50 <lv_draw_rect+0x108c>)
|
|
bae0: 4798 blx r3
|
|
bae2: 900a str r0, [sp, #40] ; 0x28
|
|
bae4: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
bae6: a916 add r1, sp, #88 ; 0x58
|
|
bae8: 4648 mov r0, r9
|
|
baea: 5cc2 ldrb r2, [r0, r3]
|
|
baec: 545a strb r2, [r3, r1]
|
|
baee: 3301 adds r3, #1
|
|
while(len) {
|
|
baf0: 2b08 cmp r3, #8
|
|
baf2: d1fa bne.n baea <lv_draw_rect+0xf26>
|
|
area_inner.x1 -= dsc->outline_pad;
|
|
baf4: 465b mov r3, fp
|
|
baf6: 8b5d ldrh r5, [r3, #26]
|
|
baf8: ab16 add r3, sp, #88 ; 0x58
|
|
bafa: 881a ldrh r2, [r3, #0]
|
|
bafc: 1b52 subs r2, r2, r5
|
|
bafe: b292 uxth r2, r2
|
|
bb00: 4692 mov sl, r2
|
|
bb02: 801a strh r2, [r3, #0]
|
|
area_inner.y1 -= dsc->outline_pad;
|
|
bb04: 885a ldrh r2, [r3, #2]
|
|
bb06: 1b52 subs r2, r2, r5
|
|
bb08: b292 uxth r2, r2
|
|
bb0a: 9207 str r2, [sp, #28]
|
|
bb0c: 805a strh r2, [r3, #2]
|
|
area_inner.x2 += dsc->outline_pad;
|
|
bb0e: 889f ldrh r7, [r3, #4]
|
|
bb10: 19ef adds r7, r5, r7
|
|
bb12: b2bf uxth r7, r7
|
|
bb14: 809f strh r7, [r3, #4]
|
|
area_inner.y2 += dsc->outline_pad;
|
|
bb16: 88da ldrh r2, [r3, #6]
|
|
bb18: 18ad adds r5, r5, r2
|
|
bb1a: b2ad uxth r5, r5
|
|
bb1c: 80dd strh r5, [r3, #6]
|
|
int32_t rin = dsc->radius;
|
|
bb1e: 465b mov r3, fp
|
|
bb20: 2200 movs r2, #0
|
|
bb22: 5e9b ldrsh r3, [r3, r2]
|
|
bb24: 9306 str r3, [sp, #24]
|
|
int32_t rout = rin + dsc->outline_width;
|
|
bb26: 465b mov r3, fp
|
|
bb28: 2218 movs r2, #24
|
|
bb2a: 5e9b ldrsh r3, [r3, r2]
|
|
bb2c: 9305 str r3, [sp, #20]
|
|
bb2e: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
bb30: a818 add r0, sp, #96 ; 0x60
|
|
bb32: a916 add r1, sp, #88 ; 0x58
|
|
bb34: 5c5a ldrb r2, [r3, r1]
|
|
bb36: 541a strb r2, [r3, r0]
|
|
bb38: 3301 adds r3, #1
|
|
while(len) {
|
|
bb3a: 2b08 cmp r3, #8
|
|
bb3c: d1fa bne.n bb34 <lv_draw_rect+0xf70>
|
|
area_outer.x1 -= dsc->outline_width;
|
|
bb3e: 466b mov r3, sp
|
|
bb40: 8a9c ldrh r4, [r3, #20]
|
|
bb42: ae18 add r6, sp, #96 ; 0x60
|
|
bb44: 8833 ldrh r3, [r6, #0]
|
|
bb46: 1b1b subs r3, r3, r4
|
|
bb48: b29b uxth r3, r3
|
|
bb4a: 9308 str r3, [sp, #32]
|
|
bb4c: 8033 strh r3, [r6, #0]
|
|
area_outer.x2 += dsc->outline_width;
|
|
bb4e: 88b3 ldrh r3, [r6, #4]
|
|
bb50: 18e3 adds r3, r4, r3
|
|
bb52: b29b uxth r3, r3
|
|
bb54: 9309 str r3, [sp, #36] ; 0x24
|
|
bb56: 80b3 strh r3, [r6, #4]
|
|
area_outer.y1 -= dsc->outline_width;
|
|
bb58: 8873 ldrh r3, [r6, #2]
|
|
bb5a: 1b1b subs r3, r3, r4
|
|
bb5c: b29b uxth r3, r3
|
|
bb5e: 930b str r3, [sp, #44] ; 0x2c
|
|
bb60: 8073 strh r3, [r6, #2]
|
|
area_outer.y2 += dsc->outline_width;
|
|
bb62: 88f3 ldrh r3, [r6, #6]
|
|
bb64: 18e4 adds r4, r4, r3
|
|
bb66: b2a4 uxth r4, r4
|
|
bb68: 80f4 strh r4, [r6, #6]
|
|
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
|
|
bb6a: 4b37 ldr r3, [pc, #220] ; (bc48 <lv_draw_rect+0x1084>)
|
|
bb6c: 4798 blx r3
|
|
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
|
|
bb6e: 4b37 ldr r3, [pc, #220] ; (bc4c <lv_draw_rect+0x1088>)
|
|
bb70: 4798 blx r3
|
|
bb72: 4681 mov r9, r0
|
|
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
|
|
bb74: 9a04 ldr r2, [sp, #16]
|
|
bb76: 0031 movs r1, r6
|
|
bb78: a81a add r0, sp, #104 ; 0x68
|
|
bb7a: 4b2d ldr r3, [pc, #180] ; (bc30 <lv_draw_rect+0x106c>)
|
|
bb7c: 4798 blx r3
|
|
if(is_common == false) return;
|
|
bb7e: 2800 cmp r0, #0
|
|
bb80: d001 beq.n bb86 <lv_draw_rect+0xfc2>
|
|
bb82: f001 f831 bl cbe8 <lv_draw_rect+0x2024>
|
|
}
|
|
bb86: b031 add sp, #196 ; 0xc4
|
|
bb88: bc3c pop {r2, r3, r4, r5}
|
|
bb8a: 4690 mov r8, r2
|
|
bb8c: 4699 mov r9, r3
|
|
bb8e: 46a2 mov sl, r4
|
|
bb90: 46ab mov fp, r5
|
|
bb92: bdf0 pop {r4, r5, r6, r7, pc}
|
|
draw_area.x1 -= disp_area->x1;
|
|
bb94: 8a38 ldrh r0, [r7, #16]
|
|
bb96: aa1c add r2, sp, #112 ; 0x70
|
|
bb98: 8811 ldrh r1, [r2, #0]
|
|
bb9a: 1a09 subs r1, r1, r0
|
|
bb9c: b289 uxth r1, r1
|
|
bb9e: 8011 strh r1, [r2, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
bba0: 8a7d ldrh r5, [r7, #18]
|
|
bba2: 8854 ldrh r4, [r2, #2]
|
|
bba4: 1b64 subs r4, r4, r5
|
|
bba6: 8054 strh r4, [r2, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
bba8: 8893 ldrh r3, [r2, #4]
|
|
bbaa: 1a1b subs r3, r3, r0
|
|
bbac: b29b uxth r3, r3
|
|
bbae: 8093 strh r3, [r2, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
bbb0: 88d0 ldrh r0, [r2, #6]
|
|
bbb2: 1b40 subs r0, r0, r5
|
|
bbb4: 80d0 strh r0, [r2, #6]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
bbb6: 3301 adds r3, #1
|
|
bbb8: 1a5b subs r3, r3, r1
|
|
bbba: b21b sxth r3, r3
|
|
bbbc: 930a str r3, [sp, #40] ; 0x28
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
|
|
bbbe: 930b str r3, [sp, #44] ; 0x2c
|
|
bbc0: 0018 movs r0, r3
|
|
bbc2: 4b24 ldr r3, [pc, #144] ; (bc54 <lv_draw_rect+0x1090>)
|
|
bbc4: 4798 blx r3
|
|
bbc6: 9006 str r0, [sp, #24]
|
|
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
bbc8: 4b21 ldr r3, [pc, #132] ; (bc50 <lv_draw_rect+0x108c>)
|
|
bbca: 4798 blx r3
|
|
bbcc: b283 uxth r3, r0
|
|
bbce: 930c str r3, [sp, #48] ; 0x30
|
|
if(other_mask_cnt) simple_mode = false;
|
|
bbd0: 2200 movs r2, #0
|
|
bbd2: 9207 str r2, [sp, #28]
|
|
bbd4: 2b00 cmp r3, #0
|
|
bbd6: d106 bne.n bbe6 <lv_draw_rect+0x1022>
|
|
else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false;
|
|
bbd8: 465b mov r3, fp
|
|
bbda: 799b ldrb r3, [r3, #6]
|
|
bbdc: 3b02 subs r3, #2
|
|
bbde: 1e5a subs r2, r3, #1
|
|
bbe0: 4193 sbcs r3, r2
|
|
bbe2: b2db uxtb r3, r3
|
|
bbe4: 9307 str r3, [sp, #28]
|
|
bbe6: a91a add r1, sp, #104 ; 0x68
|
|
bbe8: 888c ldrh r4, [r1, #4]
|
|
bbea: 3401 adds r4, #1
|
|
bbec: 880b ldrh r3, [r1, #0]
|
|
bbee: 1ae4 subs r4, r4, r3
|
|
bbf0: b224 sxth r4, r4
|
|
int32_t coords_w = lv_area_get_width(&coords_bg);
|
|
bbf2: 0026 movs r6, r4
|
|
int32_t rout = dsc->radius;
|
|
bbf4: 465b mov r3, fp
|
|
bbf6: 2200 movs r2, #0
|
|
bbf8: 5e9a ldrsh r2, [r3, r2]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
bbfa: 88cb ldrh r3, [r1, #6]
|
|
bbfc: 3301 adds r3, #1
|
|
bbfe: 8849 ldrh r1, [r1, #2]
|
|
bc00: 1a5b subs r3, r3, r1
|
|
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
|
|
bc02: b21b sxth r3, r3
|
|
bc04: 42a3 cmp r3, r4
|
|
bc06: dd00 ble.n bc0a <lv_draw_rect+0x1046>
|
|
bc08: 0023 movs r3, r4
|
|
if(rout > short_side >> 1) rout = short_side >> 1;
|
|
bc0a: 105b asrs r3, r3, #1
|
|
bc0c: 4698 mov r8, r3
|
|
bc0e: 4293 cmp r3, r2
|
|
bc10: dd00 ble.n bc14 <lv_draw_rect+0x1050>
|
|
bc12: 4690 mov r8, r2
|
|
if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) {
|
|
bc14: 9b07 ldr r3, [sp, #28]
|
|
bc16: 2b00 cmp r3, #0
|
|
bc18: d02f beq.n bc7a <lv_draw_rect+0x10b6>
|
|
bc1a: 4643 mov r3, r8
|
|
bc1c: 2b00 cmp r3, #0
|
|
bc1e: d12c bne.n bc7a <lv_draw_rect+0x10b6>
|
|
bc20: 465b mov r3, fp
|
|
bc22: 799b ldrb r3, [r3, #6]
|
|
bc24: 2b00 cmp r3, #0
|
|
bc26: d017 beq.n bc58 <lv_draw_rect+0x1094>
|
|
int16_t mask_rout_id = LV_MASK_ID_INV;
|
|
bc28: 2301 movs r3, #1
|
|
bc2a: 425b negs r3, r3
|
|
bc2c: 930f str r3, [sp, #60] ; 0x3c
|
|
bc2e: e033 b.n bc98 <lv_draw_rect+0x10d4>
|
|
bc30: 0000fc0f .word 0x0000fc0f
|
|
bc34: 00010fad .word 0x00010fad
|
|
bc38: 0000a625 .word 0x0000a625
|
|
bc3c: 00005c6d .word 0x00005c6d
|
|
bc40: 0000a679 .word 0x0000a679
|
|
bc44: 00010bd5 .word 0x00010bd5
|
|
bc48: 000043b1 .word 0x000043b1
|
|
bc4c: 0000f709 .word 0x0000f709
|
|
bc50: 0000a6c1 .word 0x0000a6c1
|
|
bc54: 00010ec1 .word 0x00010ec1
|
|
_lv_blend_fill(clip, &coords_bg,
|
|
bc58: 465b mov r3, fp
|
|
bc5a: 885a ldrh r2, [r3, #2]
|
|
bc5c: 7b5b ldrb r3, [r3, #13]
|
|
bc5e: 9302 str r3, [sp, #8]
|
|
bc60: 4653 mov r3, sl
|
|
bc62: 9301 str r3, [sp, #4]
|
|
bc64: 2301 movs r3, #1
|
|
bc66: 9300 str r3, [sp, #0]
|
|
bc68: 2300 movs r3, #0
|
|
bc6a: a91a add r1, sp, #104 ; 0x68
|
|
bc6c: 9804 ldr r0, [sp, #16]
|
|
bc6e: 4cae ldr r4, [pc, #696] ; (bf28 <lv_draw_rect+0x1364>)
|
|
bc70: 47a0 blx r4
|
|
int16_t mask_rout_id = LV_MASK_ID_INV;
|
|
bc72: 2301 movs r3, #1
|
|
bc74: 425b negs r3, r3
|
|
bc76: 930f str r3, [sp, #60] ; 0x3c
|
|
bc78: e277 b.n c16a <lv_draw_rect+0x15a6>
|
|
if(rout > 0) {
|
|
bc7a: 4643 mov r3, r8
|
|
bc7c: 2b00 cmp r3, #0
|
|
bc7e: dd37 ble.n bcf0 <lv_draw_rect+0x112c>
|
|
lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false);
|
|
bc80: 4643 mov r3, r8
|
|
bc82: b21a sxth r2, r3
|
|
bc84: 2300 movs r3, #0
|
|
bc86: a91a add r1, sp, #104 ; 0x68
|
|
bc88: a829 add r0, sp, #164 ; 0xa4
|
|
bc8a: 4da8 ldr r5, [pc, #672] ; (bf2c <lv_draw_rect+0x1368>)
|
|
bc8c: 47a8 blx r5
|
|
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
|
|
bc8e: 2100 movs r1, #0
|
|
bc90: a829 add r0, sp, #164 ; 0xa4
|
|
bc92: 4ba7 ldr r3, [pc, #668] ; (bf30 <lv_draw_rect+0x136c>)
|
|
bc94: 4798 blx r3
|
|
bc96: 900f str r0, [sp, #60] ; 0x3c
|
|
lv_color_t grad_color = dsc->bg_color;
|
|
bc98: 465b mov r3, fp
|
|
bc9a: 885b ldrh r3, [r3, #2]
|
|
bc9c: 466a mov r2, sp
|
|
bc9e: 8413 strh r3, [r2, #32]
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
bca0: 465b mov r3, fp
|
|
bca2: 799b ldrb r3, [r3, #6]
|
|
lv_color_t * grad_map = NULL;
|
|
bca4: 2200 movs r2, #0
|
|
bca6: 920d str r2, [sp, #52] ; 0x34
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
bca8: 2b02 cmp r3, #2
|
|
bcaa: d025 beq.n bcf8 <lv_draw_rect+0x1134>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
bcac: ab1a add r3, sp, #104 ; 0x68
|
|
bcae: 2204 movs r2, #4
|
|
bcb0: 5e99 ldrsh r1, [r3, r2]
|
|
bcb2: 2000 movs r0, #0
|
|
bcb4: 5e18 ldrsh r0, [r3, r0]
|
|
bcb6: 1c4b adds r3, r1, #1
|
|
bcb8: 1a1b subs r3, r3, r0
|
|
if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true;
|
|
bcba: b21b sxth r3, r3
|
|
bcbc: 4642 mov r2, r8
|
|
bcbe: 0052 lsls r2, r2, #1
|
|
bcc0: 1a9b subs r3, r3, r2
|
|
bcc2: 9309 str r3, [sp, #36] ; 0x24
|
|
fill_area.x1 = coords_bg.x1;
|
|
bcc4: aa1e add r2, sp, #120 ; 0x78
|
|
bcc6: 8010 strh r0, [r2, #0]
|
|
fill_area.x2 = coords_bg.x2;
|
|
bcc8: 8091 strh r1, [r2, #4]
|
|
fill_area.y1 = disp_area->y1 + draw_area.y1;
|
|
bcca: a91c add r1, sp, #112 ; 0x70
|
|
bccc: 2302 movs r3, #2
|
|
bcce: 5ecd ldrsh r5, [r1, r3]
|
|
bcd0: 8a7b ldrh r3, [r7, #18]
|
|
bcd2: 195b adds r3, r3, r5
|
|
bcd4: b21b sxth r3, r3
|
|
bcd6: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
bcd8: 80d3 strh r3, [r2, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
bcda: 2206 movs r2, #6
|
|
bcdc: 5e8b ldrsh r3, [r1, r2]
|
|
bcde: 429d cmp r5, r3
|
|
bce0: dd00 ble.n bce4 <lv_draw_rect+0x1120>
|
|
bce2: e232 b.n c14a <lv_draw_rect+0x1586>
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
bce4: 464b mov r3, r9
|
|
bce6: 9310 str r3, [sp, #64] ; 0x40
|
|
bce8: 46b9 mov r9, r7
|
|
bcea: 465e mov r6, fp
|
|
bcec: 46d3 mov fp, sl
|
|
bcee: e0e8 b.n bec2 <lv_draw_rect+0x12fe>
|
|
int16_t mask_rout_id = LV_MASK_ID_INV;
|
|
bcf0: 2301 movs r3, #1
|
|
bcf2: 425b negs r3, r3
|
|
bcf4: 930f str r3, [sp, #60] ; 0x3c
|
|
bcf6: e7cf b.n bc98 <lv_draw_rect+0x10d4>
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
bcf8: 465b mov r3, fp
|
|
bcfa: 885a ldrh r2, [r3, #2]
|
|
bcfc: 889b ldrh r3, [r3, #4]
|
|
bcfe: 429a cmp r2, r3
|
|
bd00: d0d4 beq.n bcac <lv_draw_rect+0x10e8>
|
|
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
|
|
bd02: 0060 lsls r0, r4, #1
|
|
bd04: 4b8b ldr r3, [pc, #556] ; (bf34 <lv_draw_rect+0x1370>)
|
|
bd06: 4798 blx r3
|
|
bd08: 900d str r0, [sp, #52] ; 0x34
|
|
for(i = 0; i < coords_w; i++) {
|
|
bd0a: 2e00 cmp r6, #0
|
|
bd0c: ddce ble.n bcac <lv_draw_rect+0x10e8>
|
|
bd0e: 2500 movs r5, #0
|
|
grad_map[i] = grad_get(dsc, coords_w, i);
|
|
bd10: 4642 mov r2, r8
|
|
bd12: 9209 str r2, [sp, #36] ; 0x24
|
|
bd14: 46b0 mov r8, r6
|
|
bd16: 002e movs r6, r5
|
|
bd18: 465d mov r5, fp
|
|
bd1a: 46bb mov fp, r7
|
|
bd1c: 9005 str r0, [sp, #20]
|
|
bd1e: e01e b.n bd5e <lv_draw_rect+0x119a>
|
|
if(i <= min) return dsc->bg_color;
|
|
bd20: 78a9 ldrb r1, [r5, #2]
|
|
bd22: 06c9 lsls r1, r1, #27
|
|
bd24: 0ec8 lsrs r0, r1, #27
|
|
bd26: 886b ldrh r3, [r5, #2]
|
|
bd28: 055b lsls r3, r3, #21
|
|
bd2a: 0e9b lsrs r3, r3, #26
|
|
bd2c: 78ea ldrb r2, [r5, #3]
|
|
bd2e: 08d2 lsrs r2, r2, #3
|
|
grad_map[i] = grad_get(dsc, coords_w, i);
|
|
bd30: 7821 ldrb r1, [r4, #0]
|
|
bd32: 271f movs r7, #31
|
|
bd34: 43b9 bics r1, r7
|
|
bd36: 4301 orrs r1, r0
|
|
bd38: 7021 strb r1, [r4, #0]
|
|
bd3a: 0159 lsls r1, r3, #5
|
|
bd3c: 8823 ldrh r3, [r4, #0]
|
|
bd3e: 487e ldr r0, [pc, #504] ; (bf38 <lv_draw_rect+0x1374>)
|
|
bd40: 4003 ands r3, r0
|
|
bd42: 430b orrs r3, r1
|
|
bd44: 8023 strh r3, [r4, #0]
|
|
bd46: 00d2 lsls r2, r2, #3
|
|
bd48: 0a1b lsrs r3, r3, #8
|
|
bd4a: 2107 movs r1, #7
|
|
bd4c: 400b ands r3, r1
|
|
bd4e: 4313 orrs r3, r2
|
|
bd50: 7063 strb r3, [r4, #1]
|
|
for(i = 0; i < coords_w; i++) {
|
|
bd52: 3601 adds r6, #1
|
|
bd54: 9b05 ldr r3, [sp, #20]
|
|
bd56: 3302 adds r3, #2
|
|
bd58: 9305 str r3, [sp, #20]
|
|
bd5a: 45b0 cmp r8, r6
|
|
bd5c: dd58 ble.n be10 <lv_draw_rect+0x124c>
|
|
grad_map[i] = grad_get(dsc, coords_w, i);
|
|
bd5e: 9c05 ldr r4, [sp, #20]
|
|
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
|
|
bd60: 2308 movs r3, #8
|
|
bd62: 5ee9 ldrsh r1, [r5, r3]
|
|
bd64: 4640 mov r0, r8
|
|
bd66: 4348 muls r0, r1
|
|
bd68: 1200 asrs r0, r0, #8
|
|
if(i <= min) return dsc->bg_color;
|
|
bd6a: b232 sxth r2, r6
|
|
bd6c: 4290 cmp r0, r2
|
|
bd6e: dad7 bge.n bd20 <lv_draw_rect+0x115c>
|
|
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
|
|
bd70: 270a movs r7, #10
|
|
bd72: 5feb ldrsh r3, [r5, r7]
|
|
bd74: 4647 mov r7, r8
|
|
bd76: 435f muls r7, r3
|
|
bd78: 123f asrs r7, r7, #8
|
|
if(i >= max) return dsc->bg_grad_color;
|
|
bd7a: 42ba cmp r2, r7
|
|
bd7c: da3f bge.n bdfe <lv_draw_rect+0x123a>
|
|
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
|
|
bd7e: 1a59 subs r1, r3, r1
|
|
d = (s * d) >> 8;
|
|
bd80: 4643 mov r3, r8
|
|
bd82: 4359 muls r1, r3
|
|
i -= min;
|
|
bd84: 1a30 subs r0, r6, r0
|
|
lv_opa_t mix = (i * 255) / d;
|
|
bd86: b200 sxth r0, r0
|
|
bd88: 0203 lsls r3, r0, #8
|
|
bd8a: 1a18 subs r0, r3, r0
|
|
d = (s * d) >> 8;
|
|
bd8c: 1209 asrs r1, r1, #8
|
|
lv_opa_t mix = (i * 255) / d;
|
|
bd8e: 4b6b ldr r3, [pc, #428] ; (bf3c <lv_draw_rect+0x1378>)
|
|
bd90: 4798 blx r3
|
|
bd92: 23ff movs r3, #255 ; 0xff
|
|
bd94: 4018 ands r0, r3
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
bd96: 1a19 subs r1, r3, r0
|
|
bd98: 796a ldrb r2, [r5, #5]
|
|
bd9a: 08d2 lsrs r2, r2, #3
|
|
bd9c: 4342 muls r2, r0
|
|
bd9e: 78eb ldrb r3, [r5, #3]
|
|
bda0: 08db lsrs r3, r3, #3
|
|
bda2: 434b muls r3, r1
|
|
bda4: 18d3 adds r3, r2, r3
|
|
bda6: 021a lsls r2, r3, #8
|
|
bda8: 18d2 adds r2, r2, r3
|
|
bdaa: 01d2 lsls r2, r2, #7
|
|
bdac: 18d2 adds r2, r2, r3
|
|
bdae: 0dd2 lsrs r2, r2, #23
|
|
bdb0: 231f movs r3, #31
|
|
bdb2: 401a ands r2, r3
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
bdb4: 88ab ldrh r3, [r5, #4]
|
|
bdb6: 055b lsls r3, r3, #21
|
|
bdb8: 0e9b lsrs r3, r3, #26
|
|
bdba: 4343 muls r3, r0
|
|
bdbc: 469c mov ip, r3
|
|
bdbe: 886b ldrh r3, [r5, #2]
|
|
bdc0: 055b lsls r3, r3, #21
|
|
bdc2: 0e9b lsrs r3, r3, #26
|
|
bdc4: 434b muls r3, r1
|
|
bdc6: 4463 add r3, ip
|
|
bdc8: 021f lsls r7, r3, #8
|
|
bdca: 46bc mov ip, r7
|
|
bdcc: 449c add ip, r3
|
|
bdce: 4667 mov r7, ip
|
|
bdd0: 01ff lsls r7, r7, #7
|
|
bdd2: 46bc mov ip, r7
|
|
bdd4: 4463 add r3, ip
|
|
bdd6: 0ddb lsrs r3, r3, #23
|
|
bdd8: 273f movs r7, #63 ; 0x3f
|
|
bdda: 403b ands r3, r7
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
bddc: 792f ldrb r7, [r5, #4]
|
|
bdde: 06ff lsls r7, r7, #27
|
|
bde0: 0eff lsrs r7, r7, #27
|
|
bde2: 4378 muls r0, r7
|
|
bde4: 78af ldrb r7, [r5, #2]
|
|
bde6: 06ff lsls r7, r7, #27
|
|
bde8: 0eff lsrs r7, r7, #27
|
|
bdea: 4379 muls r1, r7
|
|
bdec: 1840 adds r0, r0, r1
|
|
bdee: 0201 lsls r1, r0, #8
|
|
bdf0: 1809 adds r1, r1, r0
|
|
bdf2: 01c9 lsls r1, r1, #7
|
|
bdf4: 1809 adds r1, r1, r0
|
|
bdf6: 0dc9 lsrs r1, r1, #23
|
|
bdf8: 201f movs r0, #31
|
|
bdfa: 4008 ands r0, r1
|
|
bdfc: e798 b.n bd30 <lv_draw_rect+0x116c>
|
|
if(i >= max) return dsc->bg_grad_color;
|
|
bdfe: 7929 ldrb r1, [r5, #4]
|
|
be00: 06c9 lsls r1, r1, #27
|
|
be02: 0ec8 lsrs r0, r1, #27
|
|
be04: 88ab ldrh r3, [r5, #4]
|
|
be06: 055b lsls r3, r3, #21
|
|
be08: 0e9b lsrs r3, r3, #26
|
|
be0a: 796a ldrb r2, [r5, #5]
|
|
be0c: 08d2 lsrs r2, r2, #3
|
|
be0e: e78f b.n bd30 <lv_draw_rect+0x116c>
|
|
be10: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
be12: 4698 mov r8, r3
|
|
be14: 465f mov r7, fp
|
|
be16: 46ab mov fp, r5
|
|
be18: e748 b.n bcac <lv_draw_rect+0x10e8>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
be1a: 990b ldr r1, [sp, #44] ; 0x2c
|
|
be1c: 9f06 ldr r7, [sp, #24]
|
|
be1e: 0038 movs r0, r7
|
|
be20: 4b47 ldr r3, [pc, #284] ; (bf40 <lv_draw_rect+0x137c>)
|
|
be22: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
be24: 464b mov r3, r9
|
|
be26: 8a5a ldrh r2, [r3, #18]
|
|
be28: 1952 adds r2, r2, r5
|
|
be2a: b212 sxth r2, r2
|
|
be2c: 8a19 ldrh r1, [r3, #16]
|
|
be2e: ab0e add r3, sp, #56 ; 0x38
|
|
be30: 8f1b ldrh r3, [r3, #56] ; 0x38
|
|
be32: 18c9 adds r1, r1, r3
|
|
be34: b209 sxth r1, r1
|
|
be36: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
be38: 0038 movs r0, r7
|
|
be3a: 4f42 ldr r7, [pc, #264] ; (bf44 <lv_draw_rect+0x1380>)
|
|
be3c: 47b8 blx r7
|
|
be3e: 9005 str r0, [sp, #20]
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
be40: 79b3 ldrb r3, [r6, #6]
|
|
be42: 2b01 cmp r3, #1
|
|
be44: d119 bne.n be7a <lv_draw_rect+0x12b6>
|
|
be46: e081 b.n bf4c <lv_draw_rect+0x1388>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
be48: 990b ldr r1, [sp, #44] ; 0x2c
|
|
be4a: 9f06 ldr r7, [sp, #24]
|
|
be4c: 0038 movs r0, r7
|
|
be4e: 4b3c ldr r3, [pc, #240] ; (bf40 <lv_draw_rect+0x137c>)
|
|
be50: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
be52: 464b mov r3, r9
|
|
be54: 8a5a ldrh r2, [r3, #18]
|
|
be56: 1952 adds r2, r2, r5
|
|
be58: b212 sxth r2, r2
|
|
be5a: 8a19 ldrh r1, [r3, #16]
|
|
be5c: ab0e add r3, sp, #56 ; 0x38
|
|
be5e: 8f1b ldrh r3, [r3, #56] ; 0x38
|
|
be60: 18c9 adds r1, r1, r3
|
|
be62: b209 sxth r1, r1
|
|
be64: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
be66: 0038 movs r0, r7
|
|
be68: 4f36 ldr r7, [pc, #216] ; (bf44 <lv_draw_rect+0x1380>)
|
|
be6a: 47b8 blx r7
|
|
be6c: 9005 str r0, [sp, #20]
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
be6e: 79b3 ldrb r3, [r6, #6]
|
|
be70: 2b01 cmp r3, #1
|
|
be72: d06b beq.n bf4c <lv_draw_rect+0x1388>
|
|
if(simple_mode && split &&
|
|
be74: 9a07 ldr r2, [sp, #28]
|
|
be76: 2a00 cmp r2, #0
|
|
be78: d13e bne.n bef8 <lv_draw_rect+0x1334>
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
|
|
be7a: 2b02 cmp r3, #2
|
|
be7c: d100 bne.n be80 <lv_draw_rect+0x12bc>
|
|
be7e: e153 b.n c128 <lv_draw_rect+0x1564>
|
|
else if(other_mask_cnt != 0 || !split) {
|
|
be80: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
be82: 2b00 cmp r3, #0
|
|
be84: d102 bne.n be8c <lv_draw_rect+0x12c8>
|
|
be86: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
be88: 2b32 cmp r3, #50 ; 0x32
|
|
be8a: dc0c bgt.n bea6 <lv_draw_rect+0x12e2>
|
|
_lv_blend_fill(clip, &fill_area,
|
|
be8c: 7b73 ldrb r3, [r6, #13]
|
|
be8e: 9302 str r3, [sp, #8]
|
|
be90: 465b mov r3, fp
|
|
be92: 9301 str r3, [sp, #4]
|
|
be94: 9b05 ldr r3, [sp, #20]
|
|
be96: 9300 str r3, [sp, #0]
|
|
be98: 9b06 ldr r3, [sp, #24]
|
|
be9a: 466a mov r2, sp
|
|
be9c: 8c12 ldrh r2, [r2, #32]
|
|
be9e: a91e add r1, sp, #120 ; 0x78
|
|
bea0: 9804 ldr r0, [sp, #16]
|
|
bea2: 4c21 ldr r4, [pc, #132] ; (bf28 <lv_draw_rect+0x1364>)
|
|
bea4: 47a0 blx r4
|
|
fill_area.y1++;
|
|
bea6: ab1e add r3, sp, #120 ; 0x78
|
|
bea8: 885a ldrh r2, [r3, #2]
|
|
beaa: 3201 adds r2, #1
|
|
beac: 805a strh r2, [r3, #2]
|
|
fill_area.y2++;
|
|
beae: 88da ldrh r2, [r3, #6]
|
|
beb0: 3201 adds r2, #1
|
|
beb2: 80da strh r2, [r3, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
beb4: 3501 adds r5, #1
|
|
beb6: ab0e add r3, sp, #56 ; 0x38
|
|
beb8: 223e movs r2, #62 ; 0x3e
|
|
beba: 5e9b ldrsh r3, [r3, r2]
|
|
bebc: 429d cmp r5, r3
|
|
bebe: dd00 ble.n bec2 <lv_draw_rect+0x12fe>
|
|
bec0: e13f b.n c142 <lv_draw_rect+0x157e>
|
|
int32_t y = h + vdb->area.y1;
|
|
bec2: 464b mov r3, r9
|
|
bec4: 2412 movs r4, #18
|
|
bec6: 5f1c ldrsh r4, [r3, r4]
|
|
bec8: 1964 adds r4, r4, r5
|
|
if(y > coords_bg.y1 + rout + 1 &&
|
|
beca: ab1a add r3, sp, #104 ; 0x68
|
|
becc: 2202 movs r2, #2
|
|
bece: 5e9b ldrsh r3, [r3, r2]
|
|
bed0: 4443 add r3, r8
|
|
bed2: 3301 adds r3, #1
|
|
bed4: 429c cmp r4, r3
|
|
bed6: ddb7 ble.n be48 <lv_draw_rect+0x1284>
|
|
y < coords_bg.y2 - rout - 1) {
|
|
bed8: ab1a add r3, sp, #104 ; 0x68
|
|
beda: 2206 movs r2, #6
|
|
bedc: 5e9b ldrsh r3, [r3, r2]
|
|
bede: 4642 mov r2, r8
|
|
bee0: 1a9b subs r3, r3, r2
|
|
bee2: 3b01 subs r3, #1
|
|
if(y > coords_bg.y1 + rout + 1 &&
|
|
bee4: 429c cmp r4, r3
|
|
bee6: daaf bge.n be48 <lv_draw_rect+0x1284>
|
|
if(simple_mode == false) {
|
|
bee8: 9b07 ldr r3, [sp, #28]
|
|
beea: 2b00 cmp r3, #0
|
|
beec: d095 beq.n be1a <lv_draw_rect+0x1256>
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
beee: 79b3 ldrb r3, [r6, #6]
|
|
bef0: 2b01 cmp r3, #1
|
|
bef2: d029 beq.n bf48 <lv_draw_rect+0x1384>
|
|
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
|
|
bef4: 2201 movs r2, #1
|
|
bef6: 9205 str r2, [sp, #20]
|
|
if(simple_mode && split &&
|
|
bef8: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
befa: 2a32 cmp r2, #50 ; 0x32
|
|
befc: dd00 ble.n bf00 <lv_draw_rect+0x133c>
|
|
befe: e0a0 b.n c042 <lv_draw_rect+0x147e>
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
|
|
bf00: 2b02 cmp r3, #2
|
|
bf02: d100 bne.n bf06 <lv_draw_rect+0x1342>
|
|
bf04: e110 b.n c128 <lv_draw_rect+0x1564>
|
|
else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
|
|
bf06: 2b01 cmp r3, #1
|
|
bf08: d1ba bne.n be80 <lv_draw_rect+0x12bc>
|
|
_lv_blend_fill(clip, &fill_area,
|
|
bf0a: 7b73 ldrb r3, [r6, #13]
|
|
bf0c: 9302 str r3, [sp, #8]
|
|
bf0e: 465b mov r3, fp
|
|
bf10: 9301 str r3, [sp, #4]
|
|
bf12: 9b05 ldr r3, [sp, #20]
|
|
bf14: 9300 str r3, [sp, #0]
|
|
bf16: 9b06 ldr r3, [sp, #24]
|
|
bf18: 466a mov r2, sp
|
|
bf1a: 8c12 ldrh r2, [r2, #32]
|
|
bf1c: a91e add r1, sp, #120 ; 0x78
|
|
bf1e: 9804 ldr r0, [sp, #16]
|
|
bf20: 4c01 ldr r4, [pc, #4] ; (bf28 <lv_draw_rect+0x1364>)
|
|
bf22: 47a0 blx r4
|
|
bf24: e7bf b.n bea6 <lv_draw_rect+0x12e2>
|
|
bf26: 46c0 nop ; (mov r8, r8)
|
|
bf28: 00005c6d .word 0x00005c6d
|
|
bf2c: 0000a855 .word 0x0000a855
|
|
bf30: 0000a5ed .word 0x0000a5ed
|
|
bf34: 00010ec1 .word 0x00010ec1
|
|
bf38: fffff81f .word 0xfffff81f
|
|
bf3c: 00017995 .word 0x00017995
|
|
bf40: 000110f1 .word 0x000110f1
|
|
bf44: 0000a625 .word 0x0000a625
|
|
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
|
|
bf48: 2301 movs r3, #1
|
|
bf4a: 9305 str r3, [sp, #20]
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
|
|
bf4c: 8872 ldrh r2, [r6, #2]
|
|
bf4e: 88b3 ldrh r3, [r6, #4]
|
|
bf50: 429a cmp r2, r3
|
|
bf52: d06d beq.n c030 <lv_draw_rect+0x146c>
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
bf54: a91a add r1, sp, #104 ; 0x68
|
|
bf56: 884a ldrh r2, [r1, #2]
|
|
grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1);
|
|
bf58: 1aa3 subs r3, r4, r2
|
|
bf5a: b29b uxth r3, r3
|
|
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
|
|
bf5c: 2708 movs r7, #8
|
|
bf5e: 5ff0 ldrsh r0, [r6, r7]
|
|
bf60: 4682 mov sl, r0
|
|
bf62: 88c9 ldrh r1, [r1, #6]
|
|
bf64: 3101 adds r1, #1
|
|
bf66: 1a89 subs r1, r1, r2
|
|
bf68: b209 sxth r1, r1
|
|
bf6a: 0002 movs r2, r0
|
|
bf6c: 434a muls r2, r1
|
|
bf6e: 1212 asrs r2, r2, #8
|
|
if(i <= min) return dsc->bg_color;
|
|
bf70: b218 sxth r0, r3
|
|
bf72: 4684 mov ip, r0
|
|
bf74: 4282 cmp r2, r0
|
|
bf76: da45 bge.n c004 <lv_draw_rect+0x1440>
|
|
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
|
|
bf78: 270a movs r7, #10
|
|
bf7a: 5ff0 ldrsh r0, [r6, r7]
|
|
bf7c: 0007 movs r7, r0
|
|
bf7e: 434f muls r7, r1
|
|
bf80: 123f asrs r7, r7, #8
|
|
if(i >= max) return dsc->bg_grad_color;
|
|
bf82: 45bc cmp ip, r7
|
|
bf84: db00 blt.n bf88 <lv_draw_rect+0x13c4>
|
|
bf86: e0b1 b.n c0ec <lv_draw_rect+0x1528>
|
|
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
|
|
bf88: 4657 mov r7, sl
|
|
bf8a: 1bc0 subs r0, r0, r7
|
|
d = (s * d) >> 8;
|
|
bf8c: 4341 muls r1, r0
|
|
i -= min;
|
|
bf8e: 1a9b subs r3, r3, r2
|
|
lv_opa_t mix = (i * 255) / d;
|
|
bf90: b21b sxth r3, r3
|
|
bf92: 0218 lsls r0, r3, #8
|
|
bf94: 1ac0 subs r0, r0, r3
|
|
d = (s * d) >> 8;
|
|
bf96: 1209 asrs r1, r1, #8
|
|
lv_opa_t mix = (i * 255) / d;
|
|
bf98: 4bb8 ldr r3, [pc, #736] ; (c27c <lv_draw_rect+0x16b8>)
|
|
bf9a: 4798 blx r3
|
|
bf9c: 21ff movs r1, #255 ; 0xff
|
|
bf9e: 4008 ands r0, r1
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
bfa0: 1a09 subs r1, r1, r0
|
|
bfa2: 7972 ldrb r2, [r6, #5]
|
|
bfa4: 08d2 lsrs r2, r2, #3
|
|
bfa6: 4342 muls r2, r0
|
|
bfa8: 78f3 ldrb r3, [r6, #3]
|
|
bfaa: 08db lsrs r3, r3, #3
|
|
bfac: 434b muls r3, r1
|
|
bfae: 18d3 adds r3, r2, r3
|
|
bfb0: 021a lsls r2, r3, #8
|
|
bfb2: 18d2 adds r2, r2, r3
|
|
bfb4: 01d2 lsls r2, r2, #7
|
|
bfb6: 18d2 adds r2, r2, r3
|
|
bfb8: 0dd2 lsrs r2, r2, #23
|
|
bfba: 231f movs r3, #31
|
|
bfbc: 469c mov ip, r3
|
|
bfbe: 401a ands r2, r3
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
bfc0: 88b3 ldrh r3, [r6, #4]
|
|
bfc2: 055b lsls r3, r3, #21
|
|
bfc4: 0e9b lsrs r3, r3, #26
|
|
bfc6: 4343 muls r3, r0
|
|
bfc8: 469a mov sl, r3
|
|
bfca: 8873 ldrh r3, [r6, #2]
|
|
bfcc: 055b lsls r3, r3, #21
|
|
bfce: 0e9b lsrs r3, r3, #26
|
|
bfd0: 434b muls r3, r1
|
|
bfd2: 449a add sl, r3
|
|
bfd4: 4653 mov r3, sl
|
|
bfd6: 021b lsls r3, r3, #8
|
|
bfd8: 4453 add r3, sl
|
|
bfda: 01db lsls r3, r3, #7
|
|
bfdc: 4453 add r3, sl
|
|
bfde: 00db lsls r3, r3, #3
|
|
bfe0: 0e9b lsrs r3, r3, #26
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
bfe2: 7937 ldrb r7, [r6, #4]
|
|
bfe4: 06ff lsls r7, r7, #27
|
|
bfe6: 0eff lsrs r7, r7, #27
|
|
bfe8: 4378 muls r0, r7
|
|
bfea: 78b7 ldrb r7, [r6, #2]
|
|
bfec: 06ff lsls r7, r7, #27
|
|
bfee: 0eff lsrs r7, r7, #27
|
|
bff0: 4379 muls r1, r7
|
|
bff2: 1841 adds r1, r0, r1
|
|
bff4: 0208 lsls r0, r1, #8
|
|
bff6: 1840 adds r0, r0, r1
|
|
bff8: 01c0 lsls r0, r0, #7
|
|
bffa: 1840 adds r0, r0, r1
|
|
bffc: 0dc0 lsrs r0, r0, #23
|
|
bffe: 4661 mov r1, ip
|
|
c000: 4008 ands r0, r1
|
|
c002: e007 b.n c014 <lv_draw_rect+0x1450>
|
|
if(i <= min) return dsc->bg_color;
|
|
c004: 78b1 ldrb r1, [r6, #2]
|
|
c006: 06c9 lsls r1, r1, #27
|
|
c008: 0ec8 lsrs r0, r1, #27
|
|
c00a: 8873 ldrh r3, [r6, #2]
|
|
c00c: 055b lsls r3, r3, #21
|
|
c00e: 0e9b lsrs r3, r3, #26
|
|
c010: 78f2 ldrb r2, [r6, #3]
|
|
c012: 08d2 lsrs r2, r2, #3
|
|
c014: 211f movs r1, #31
|
|
c016: 9f08 ldr r7, [sp, #32]
|
|
c018: 438f bics r7, r1
|
|
c01a: 0039 movs r1, r7
|
|
c01c: 4301 orrs r1, r0
|
|
c01e: 0158 lsls r0, r3, #5
|
|
c020: 4b97 ldr r3, [pc, #604] ; (c280 <lv_draw_rect+0x16bc>)
|
|
c022: 400b ands r3, r1
|
|
c024: 4303 orrs r3, r0
|
|
c026: 02d2 lsls r2, r2, #11
|
|
c028: 055b lsls r3, r3, #21
|
|
c02a: 0d5b lsrs r3, r3, #21
|
|
c02c: 4313 orrs r3, r2
|
|
c02e: 9308 str r3, [sp, #32]
|
|
if(simple_mode && split &&
|
|
c030: 9b07 ldr r3, [sp, #28]
|
|
c032: 2b00 cmp r3, #0
|
|
c034: d100 bne.n c038 <lv_draw_rect+0x1474>
|
|
c036: e768 b.n bf0a <lv_draw_rect+0x1346>
|
|
c038: 2301 movs r3, #1
|
|
c03a: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
c03c: 2a32 cmp r2, #50 ; 0x32
|
|
c03e: dc00 bgt.n c042 <lv_draw_rect+0x147e>
|
|
c040: e763 b.n bf0a <lv_draw_rect+0x1346>
|
|
(y < coords_bg.y1 + rout + 1 ||
|
|
c042: aa1a add r2, sp, #104 ; 0x68
|
|
c044: 2102 movs r1, #2
|
|
c046: 5e52 ldrsh r2, [r2, r1]
|
|
c048: 4442 add r2, r8
|
|
c04a: 3201 adds r2, #1
|
|
if(simple_mode && split &&
|
|
c04c: 4294 cmp r4, r2
|
|
c04e: db08 blt.n c062 <lv_draw_rect+0x149e>
|
|
y > coords_bg.y2 - rout - 1)) {
|
|
c050: aa1a add r2, sp, #104 ; 0x68
|
|
c052: 2106 movs r1, #6
|
|
c054: 5e52 ldrsh r2, [r2, r1]
|
|
c056: 4641 mov r1, r8
|
|
c058: 1a52 subs r2, r2, r1
|
|
c05a: 3a01 subs r2, #1
|
|
(y < coords_bg.y1 + rout + 1 ||
|
|
c05c: 4294 cmp r4, r2
|
|
c05e: dc00 bgt.n c062 <lv_draw_rect+0x149e>
|
|
c060: e74e b.n bf00 <lv_draw_rect+0x133c>
|
|
fill_area2.x1 = coords_bg.x1;
|
|
c062: ab1a add r3, sp, #104 ; 0x68
|
|
c064: 2200 movs r2, #0
|
|
c066: 5e9b ldrsh r3, [r3, r2]
|
|
c068: a922 add r1, sp, #136 ; 0x88
|
|
c06a: 800b strh r3, [r1, #0]
|
|
fill_area2.x2 = coords_bg.x1 + rout - 1;
|
|
c06c: 4642 mov r2, r8
|
|
c06e: 4668 mov r0, sp
|
|
c070: 8702 strh r2, [r0, #56] ; 0x38
|
|
c072: 8f04 ldrh r4, [r0, #56] ; 0x38
|
|
c074: 3b01 subs r3, #1
|
|
c076: 18e3 adds r3, r4, r3
|
|
c078: 808b strh r3, [r1, #4]
|
|
fill_area2.y1 = fill_area.y1;
|
|
c07a: ab1e add r3, sp, #120 ; 0x78
|
|
c07c: 885a ldrh r2, [r3, #2]
|
|
c07e: 804a strh r2, [r1, #2]
|
|
fill_area2.y2 = fill_area.y2;
|
|
c080: 88db ldrh r3, [r3, #6]
|
|
c082: 80cb strh r3, [r1, #6]
|
|
_lv_blend_fill(clip, &fill_area2,
|
|
c084: 7b73 ldrb r3, [r6, #13]
|
|
c086: 9302 str r3, [sp, #8]
|
|
c088: 465b mov r3, fp
|
|
c08a: 9301 str r3, [sp, #4]
|
|
c08c: 9b05 ldr r3, [sp, #20]
|
|
c08e: 9300 str r3, [sp, #0]
|
|
c090: 9b06 ldr r3, [sp, #24]
|
|
c092: 8c02 ldrh r2, [r0, #32]
|
|
c094: 9804 ldr r0, [sp, #16]
|
|
c096: 4f7b ldr r7, [pc, #492] ; (c284 <lv_draw_rect+0x16c0>)
|
|
c098: 47b8 blx r7
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
|
|
c09a: 79b3 ldrb r3, [r6, #6]
|
|
c09c: 2b01 cmp r3, #1
|
|
c09e: d02e beq.n c0fe <lv_draw_rect+0x153a>
|
|
fill_area2.x1 = coords_bg.x2 - rout + 1;
|
|
c0a0: ab1a add r3, sp, #104 ; 0x68
|
|
c0a2: 2204 movs r2, #4
|
|
c0a4: 5e9b ldrsh r3, [r3, r2]
|
|
c0a6: a922 add r1, sp, #136 ; 0x88
|
|
c0a8: 1c5a adds r2, r3, #1
|
|
c0aa: 1b14 subs r4, r2, r4
|
|
c0ac: 800c strh r4, [r1, #0]
|
|
fill_area2.x2 = coords_bg.x2;
|
|
c0ae: 808b strh r3, [r1, #4]
|
|
int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
|
|
c0b0: 4642 mov r2, r8
|
|
c0b2: 1a9b subs r3, r3, r2
|
|
c0b4: 3301 adds r3, #1
|
|
c0b6: 464a mov r2, r9
|
|
c0b8: 2110 movs r1, #16
|
|
c0ba: 5e52 ldrsh r2, [r2, r1]
|
|
c0bc: a90e add r1, sp, #56 ; 0x38
|
|
c0be: 2038 movs r0, #56 ; 0x38
|
|
c0c0: 5e09 ldrsh r1, [r1, r0]
|
|
c0c2: 1852 adds r2, r2, r1
|
|
c0c4: 1a9b subs r3, r3, r2
|
|
_lv_blend_fill(clip, &fill_area2,
|
|
c0c6: 43da mvns r2, r3
|
|
c0c8: 17d2 asrs r2, r2, #31
|
|
c0ca: 4013 ands r3, r2
|
|
c0cc: 9a06 ldr r2, [sp, #24]
|
|
c0ce: 4694 mov ip, r2
|
|
c0d0: 4463 add r3, ip
|
|
c0d2: 7b72 ldrb r2, [r6, #13]
|
|
c0d4: 9202 str r2, [sp, #8]
|
|
c0d6: 465a mov r2, fp
|
|
c0d8: 9201 str r2, [sp, #4]
|
|
c0da: 9a05 ldr r2, [sp, #20]
|
|
c0dc: 9200 str r2, [sp, #0]
|
|
c0de: 466a mov r2, sp
|
|
c0e0: 8c12 ldrh r2, [r2, #32]
|
|
c0e2: a922 add r1, sp, #136 ; 0x88
|
|
c0e4: 9804 ldr r0, [sp, #16]
|
|
c0e6: 4c67 ldr r4, [pc, #412] ; (c284 <lv_draw_rect+0x16c0>)
|
|
c0e8: 47a0 blx r4
|
|
c0ea: e6dc b.n bea6 <lv_draw_rect+0x12e2>
|
|
if(i >= max) return dsc->bg_grad_color;
|
|
c0ec: 7931 ldrb r1, [r6, #4]
|
|
c0ee: 06c9 lsls r1, r1, #27
|
|
c0f0: 0ec8 lsrs r0, r1, #27
|
|
c0f2: 88b3 ldrh r3, [r6, #4]
|
|
c0f4: 055b lsls r3, r3, #21
|
|
c0f6: 0e9b lsrs r3, r3, #26
|
|
c0f8: 7972 ldrb r2, [r6, #5]
|
|
c0fa: 08d2 lsrs r2, r2, #3
|
|
c0fc: e78a b.n c014 <lv_draw_rect+0x1450>
|
|
fill_area2.x1 = coords_bg.x1 + rout;
|
|
c0fe: a922 add r1, sp, #136 ; 0x88
|
|
c100: aa1a add r2, sp, #104 ; 0x68
|
|
c102: 8813 ldrh r3, [r2, #0]
|
|
c104: 18e3 adds r3, r4, r3
|
|
c106: 800b strh r3, [r1, #0]
|
|
fill_area2.x2 = coords_bg.x2 - rout;
|
|
c108: 8893 ldrh r3, [r2, #4]
|
|
c10a: 1b1b subs r3, r3, r4
|
|
c10c: 808b strh r3, [r1, #4]
|
|
_lv_blend_fill(clip, &fill_area2,
|
|
c10e: 7b73 ldrb r3, [r6, #13]
|
|
c110: 9302 str r3, [sp, #8]
|
|
c112: 465b mov r3, fp
|
|
c114: 9301 str r3, [sp, #4]
|
|
c116: 2301 movs r3, #1
|
|
c118: 9300 str r3, [sp, #0]
|
|
c11a: 2300 movs r3, #0
|
|
c11c: 466a mov r2, sp
|
|
c11e: 8c12 ldrh r2, [r2, #32]
|
|
c120: 9804 ldr r0, [sp, #16]
|
|
c122: 4f58 ldr r7, [pc, #352] ; (c284 <lv_draw_rect+0x16c0>)
|
|
c124: 47b8 blx r7
|
|
c126: e7bb b.n c0a0 <lv_draw_rect+0x14dc>
|
|
_lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode);
|
|
c128: 7b73 ldrb r3, [r6, #13]
|
|
c12a: 9302 str r3, [sp, #8]
|
|
c12c: 465b mov r3, fp
|
|
c12e: 9301 str r3, [sp, #4]
|
|
c130: 9b05 ldr r3, [sp, #20]
|
|
c132: 9300 str r3, [sp, #0]
|
|
c134: 9b06 ldr r3, [sp, #24]
|
|
c136: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
c138: a91e add r1, sp, #120 ; 0x78
|
|
c13a: 9804 ldr r0, [sp, #16]
|
|
c13c: 4c52 ldr r4, [pc, #328] ; (c288 <lv_draw_rect+0x16c4>)
|
|
c13e: 47a0 blx r4
|
|
c140: e6b1 b.n bea6 <lv_draw_rect+0x12e2>
|
|
c142: 46da mov sl, fp
|
|
c144: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
c146: 4699 mov r9, r3
|
|
c148: 46b3 mov fp, r6
|
|
if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) {
|
|
c14a: 465b mov r3, fp
|
|
c14c: 799b ldrb r3, [r3, #6]
|
|
c14e: 2b00 cmp r3, #0
|
|
c150: d105 bne.n c15e <lv_draw_rect+0x159a>
|
|
c152: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
c154: 2b00 cmp r3, #0
|
|
c156: d102 bne.n c15e <lv_draw_rect+0x159a>
|
|
c158: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
c15a: 2b32 cmp r3, #50 ; 0x32
|
|
c15c: dc0c bgt.n c178 <lv_draw_rect+0x15b4>
|
|
if(grad_map) _lv_mem_buf_release(grad_map);
|
|
c15e: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
c160: 2b00 cmp r3, #0
|
|
c162: d002 beq.n c16a <lv_draw_rect+0x15a6>
|
|
c164: 0018 movs r0, r3
|
|
c166: 4b49 ldr r3, [pc, #292] ; (c28c <lv_draw_rect+0x16c8>)
|
|
c168: 4798 blx r3
|
|
lv_draw_mask_remove_id(mask_rout_id);
|
|
c16a: 980f ldr r0, [sp, #60] ; 0x3c
|
|
c16c: 4b48 ldr r3, [pc, #288] ; (c290 <lv_draw_rect+0x16cc>)
|
|
c16e: 4798 blx r3
|
|
_lv_mem_buf_release(mask_buf);
|
|
c170: 9806 ldr r0, [sp, #24]
|
|
c172: 4b46 ldr r3, [pc, #280] ; (c28c <lv_draw_rect+0x16c8>)
|
|
c174: 4798 blx r3
|
|
c176: e46f b.n ba58 <lv_draw_rect+0xe94>
|
|
fill_area.x1 = coords_bg.x1 + rout;
|
|
c178: 4643 mov r3, r8
|
|
c17a: 466a mov r2, sp
|
|
c17c: 8293 strh r3, [r2, #20]
|
|
c17e: 8a96 ldrh r6, [r2, #20]
|
|
c180: ac1e add r4, sp, #120 ; 0x78
|
|
c182: ad1a add r5, sp, #104 ; 0x68
|
|
c184: 882b ldrh r3, [r5, #0]
|
|
c186: 18f3 adds r3, r6, r3
|
|
c188: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = coords_bg.x2 - rout;
|
|
c18a: 88ab ldrh r3, [r5, #4]
|
|
c18c: 1b9b subs r3, r3, r6
|
|
c18e: 80a3 strh r3, [r4, #4]
|
|
fill_area.y1 = coords_bg.y1;
|
|
c190: 2202 movs r2, #2
|
|
c192: 5eab ldrsh r3, [r5, r2]
|
|
c194: 8063 strh r3, [r4, #2]
|
|
fill_area.y2 = coords_bg.y1 + rout;
|
|
c196: 18f3 adds r3, r6, r3
|
|
c198: 80e3 strh r3, [r4, #6]
|
|
_lv_blend_fill(clip, &fill_area,
|
|
c19a: 465b mov r3, fp
|
|
c19c: 885a ldrh r2, [r3, #2]
|
|
c19e: 7b5b ldrb r3, [r3, #13]
|
|
c1a0: 9302 str r3, [sp, #8]
|
|
c1a2: 4653 mov r3, sl
|
|
c1a4: 9301 str r3, [sp, #4]
|
|
c1a6: 2301 movs r3, #1
|
|
c1a8: 9300 str r3, [sp, #0]
|
|
c1aa: 2300 movs r3, #0
|
|
c1ac: 0021 movs r1, r4
|
|
c1ae: 9804 ldr r0, [sp, #16]
|
|
c1b0: 4f34 ldr r7, [pc, #208] ; (c284 <lv_draw_rect+0x16c0>)
|
|
c1b2: 47b8 blx r7
|
|
fill_area.y1 = coords_bg.y2 - rout;
|
|
c1b4: 2306 movs r3, #6
|
|
c1b6: 5ee9 ldrsh r1, [r5, r3]
|
|
c1b8: 1b8a subs r2, r1, r6
|
|
c1ba: b212 sxth r2, r2
|
|
c1bc: 8062 strh r2, [r4, #2]
|
|
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
|
|
c1be: 2006 movs r0, #6
|
|
c1c0: 5e23 ldrsh r3, [r4, r0]
|
|
c1c2: 429a cmp r2, r3
|
|
c1c4: dc02 bgt.n c1cc <lv_draw_rect+0x1608>
|
|
c1c6: 3301 adds r3, #1
|
|
c1c8: aa1e add r2, sp, #120 ; 0x78
|
|
c1ca: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = coords_bg.y2;
|
|
c1cc: ac1e add r4, sp, #120 ; 0x78
|
|
c1ce: 80e1 strh r1, [r4, #6]
|
|
_lv_blend_fill(clip, &fill_area,
|
|
c1d0: 465b mov r3, fp
|
|
c1d2: 885a ldrh r2, [r3, #2]
|
|
c1d4: 7b5b ldrb r3, [r3, #13]
|
|
c1d6: 9302 str r3, [sp, #8]
|
|
c1d8: 4653 mov r3, sl
|
|
c1da: 9301 str r3, [sp, #4]
|
|
c1dc: 2701 movs r7, #1
|
|
c1de: 9700 str r7, [sp, #0]
|
|
c1e0: 2300 movs r3, #0
|
|
c1e2: 0021 movs r1, r4
|
|
c1e4: 9804 ldr r0, [sp, #16]
|
|
c1e6: 4d27 ldr r5, [pc, #156] ; (c284 <lv_draw_rect+0x16c0>)
|
|
c1e8: 47a8 blx r5
|
|
fill_area.x1 = coords_bg.x1;
|
|
c1ea: aa1a add r2, sp, #104 ; 0x68
|
|
c1ec: 8813 ldrh r3, [r2, #0]
|
|
c1ee: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = coords_bg.x2;
|
|
c1f0: 8893 ldrh r3, [r2, #4]
|
|
c1f2: 80a3 strh r3, [r4, #4]
|
|
fill_area.y1 = coords_bg.y1 + rout + 1;
|
|
c1f4: 8853 ldrh r3, [r2, #2]
|
|
c1f6: 3301 adds r3, #1
|
|
c1f8: 18f3 adds r3, r6, r3
|
|
c1fa: 8063 strh r3, [r4, #2]
|
|
fill_area.y2 = coords_bg.y2 - rout - 1;
|
|
c1fc: 88d3 ldrh r3, [r2, #6]
|
|
c1fe: 3b01 subs r3, #1
|
|
c200: 1b9e subs r6, r3, r6
|
|
c202: 80e6 strh r6, [r4, #6]
|
|
_lv_blend_fill(clip, &fill_area,
|
|
c204: 465b mov r3, fp
|
|
c206: 885a ldrh r2, [r3, #2]
|
|
c208: 7b5b ldrb r3, [r3, #13]
|
|
c20a: 9302 str r3, [sp, #8]
|
|
c20c: 4653 mov r3, sl
|
|
c20e: 9301 str r3, [sp, #4]
|
|
c210: 9700 str r7, [sp, #0]
|
|
c212: 2300 movs r3, #0
|
|
c214: 0021 movs r1, r4
|
|
c216: 9804 ldr r0, [sp, #16]
|
|
c218: 47a8 blx r5
|
|
c21a: e7a0 b.n c15e <lv_draw_rect+0x159a>
|
|
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
|
|
c21c: 4b1d ldr r3, [pc, #116] ; (c294 <lv_draw_rect+0x16d0>)
|
|
c21e: 4798 blx r3
|
|
c220: 0007 movs r7, r0
|
|
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
|
|
c222: 2801 cmp r0, #1
|
|
c224: d909 bls.n c23a <lv_draw_rect+0x1676>
|
|
else if(src_type == LV_IMG_SRC_SYMBOL) {
|
|
c226: 2802 cmp r0, #2
|
|
c228: d03c beq.n c2a4 <lv_draw_rect+0x16e0>
|
|
lv_draw_img(coords, clip, NULL, NULL);
|
|
c22a: 2300 movs r3, #0
|
|
c22c: 2200 movs r2, #0
|
|
c22e: 9904 ldr r1, [sp, #16]
|
|
c230: 4648 mov r0, r9
|
|
c232: 4c19 ldr r4, [pc, #100] ; (c298 <lv_draw_rect+0x16d4>)
|
|
c234: 47a0 blx r4
|
|
c236: f7ff fc1a bl ba6e <lv_draw_rect+0xeaa>
|
|
lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header);
|
|
c23a: a929 add r1, sp, #164 ; 0xa4
|
|
c23c: 465b mov r3, fp
|
|
c23e: 6ad8 ldr r0, [r3, #44] ; 0x2c
|
|
c240: 4b16 ldr r3, [pc, #88] ; (c29c <lv_draw_rect+0x16d8>)
|
|
c242: 4798 blx r3
|
|
if(res != LV_RES_OK) {
|
|
c244: 2801 cmp r0, #1
|
|
c246: d001 beq.n c24c <lv_draw_rect+0x1688>
|
|
c248: f7ff fc11 bl ba6e <lv_draw_rect+0xeaa>
|
|
img_w = header.w;
|
|
c24c: 9b29 ldr r3, [sp, #164] ; 0xa4
|
|
c24e: 02dd lsls r5, r3, #11
|
|
c250: 0d6d lsrs r5, r5, #21
|
|
img_h = header.h;
|
|
c252: 236e movs r3, #110 ; 0x6e
|
|
c254: aa0e add r2, sp, #56 ; 0x38
|
|
c256: 4694 mov ip, r2
|
|
c258: 4463 add r3, ip
|
|
c25a: 881e ldrh r6, [r3, #0]
|
|
c25c: 0976 lsrs r6, r6, #5
|
|
lv_draw_img_dsc_init(&img_dsc);
|
|
c25e: ac1e add r4, sp, #120 ; 0x78
|
|
c260: 0020 movs r0, r4
|
|
c262: 4b0f ldr r3, [pc, #60] ; (c2a0 <lv_draw_rect+0x16dc>)
|
|
c264: 4798 blx r3
|
|
img_dsc.opa = dsc->pattern_opa;
|
|
c266: 2336 movs r3, #54 ; 0x36
|
|
c268: 465a mov r2, fp
|
|
c26a: 5cd3 ldrb r3, [r2, r3]
|
|
c26c: 7023 strb r3, [r4, #0]
|
|
img_dsc.recolor_opa = dsc->pattern_recolor_opa;
|
|
c26e: 2337 movs r3, #55 ; 0x37
|
|
c270: 5cd3 ldrb r3, [r2, r3]
|
|
c272: 72a3 strb r3, [r4, #10]
|
|
img_dsc.recolor = dsc->pattern_recolor;
|
|
c274: 8e93 ldrh r3, [r2, #52] ; 0x34
|
|
c276: 81a3 strh r3, [r4, #12]
|
|
c278: e037 b.n c2ea <lv_draw_rect+0x1726>
|
|
c27a: 46c0 nop ; (mov r8, r8)
|
|
c27c: 00017995 .word 0x00017995
|
|
c280: fffff81f .word 0xfffff81f
|
|
c284: 00005c6d .word 0x00005c6d
|
|
c288: 00006951 .word 0x00006951
|
|
c28c: 00010bd5 .word 0x00010bd5
|
|
c290: 0000a679 .word 0x0000a679
|
|
c294: 00008161 .word 0x00008161
|
|
c298: 00007f41 .word 0x00007f41
|
|
c29c: 0000e549 .word 0x0000e549
|
|
c2a0: 00007ead .word 0x00007ead
|
|
lv_draw_label_dsc_init(&label_dsc);
|
|
c2a4: ac22 add r4, sp, #136 ; 0x88
|
|
c2a6: 0020 movs r0, r4
|
|
c2a8: 4b87 ldr r3, [pc, #540] ; (c4c8 <lv_draw_rect+0x1904>)
|
|
c2aa: 4798 blx r3
|
|
label_dsc.color = dsc->pattern_recolor;
|
|
c2ac: 465b mov r3, fp
|
|
c2ae: 8e9b ldrh r3, [r3, #52] ; 0x34
|
|
c2b0: 8023 strh r3, [r4, #0]
|
|
label_dsc.font = dsc->pattern_font;
|
|
c2b2: 465b mov r3, fp
|
|
c2b4: 6b1b ldr r3, [r3, #48] ; 0x30
|
|
c2b6: 6063 str r3, [r4, #4]
|
|
label_dsc.opa = dsc->pattern_opa;
|
|
c2b8: 2336 movs r3, #54 ; 0x36
|
|
c2ba: 465a mov r2, fp
|
|
c2bc: 5cd3 ldrb r3, [r2, r3]
|
|
c2be: 7223 strb r3, [r4, #8]
|
|
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
|
|
c2c0: 220c movs r2, #12
|
|
c2c2: 5ea3 ldrsh r3, [r4, r2]
|
|
c2c4: ae29 add r6, sp, #164 ; 0xa4
|
|
c2c6: 2200 movs r2, #0
|
|
c2c8: 9202 str r2, [sp, #8]
|
|
c2ca: 4a80 ldr r2, [pc, #512] ; (c4cc <lv_draw_rect+0x1908>)
|
|
c2cc: 9201 str r2, [sp, #4]
|
|
c2ce: 210a movs r1, #10
|
|
c2d0: 5e62 ldrsh r2, [r4, r1]
|
|
c2d2: 9200 str r2, [sp, #0]
|
|
c2d4: 465a mov r2, fp
|
|
c2d6: 6b12 ldr r2, [r2, #48] ; 0x30
|
|
c2d8: 4659 mov r1, fp
|
|
c2da: 6ac9 ldr r1, [r1, #44] ; 0x2c
|
|
c2dc: 0030 movs r0, r6
|
|
c2de: 4c7c ldr r4, [pc, #496] ; (c4d0 <lv_draw_rect+0x190c>)
|
|
c2e0: 47a0 blx r4
|
|
img_w = s.x;
|
|
c2e2: 2300 movs r3, #0
|
|
c2e4: 5ef5 ldrsh r5, [r6, r3]
|
|
img_h = s.y;
|
|
c2e6: 2302 movs r3, #2
|
|
c2e8: 5ef6 ldrsh r6, [r6, r3]
|
|
if(dsc->pattern_repeat) {
|
|
c2ea: 2338 movs r3, #56 ; 0x38
|
|
c2ec: 465a mov r2, fp
|
|
c2ee: 5cd3 ldrb r3, [r2, r3]
|
|
c2f0: 07db lsls r3, r3, #31
|
|
c2f2: d43d bmi.n c370 <lv_draw_rect+0x17ac>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
c2f4: 464b mov r3, r9
|
|
c2f6: 8818 ldrh r0, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
c2f8: 8859 ldrh r1, [r3, #2]
|
|
c2fa: 88db ldrh r3, [r3, #6]
|
|
c2fc: 3301 adds r3, #1
|
|
c2fe: 1a5b subs r3, r3, r1
|
|
int32_t obj_h = lv_area_get_height(coords);
|
|
c300: b21b sxth r3, r3
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
c302: 464a mov r2, r9
|
|
c304: 8892 ldrh r2, [r2, #4]
|
|
c306: 3201 adds r2, #1
|
|
c308: 1a12 subs r2, r2, r0
|
|
int32_t obj_w = lv_area_get_width(coords);
|
|
c30a: b212 sxth r2, r2
|
|
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
|
|
c30c: 1b52 subs r2, r2, r5
|
|
c30e: 0fd4 lsrs r4, r2, #31
|
|
c310: 18a2 adds r2, r4, r2
|
|
c312: 1052 asrs r2, r2, #1
|
|
c314: 1880 adds r0, r0, r2
|
|
c316: b280 uxth r0, r0
|
|
c318: aa1c add r2, sp, #112 ; 0x70
|
|
c31a: 8010 strh r0, [r2, #0]
|
|
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
|
|
c31c: 1b9c subs r4, r3, r6
|
|
c31e: 0fe3 lsrs r3, r4, #31
|
|
c320: 191b adds r3, r3, r4
|
|
c322: 105b asrs r3, r3, #1
|
|
c324: 18c9 adds r1, r1, r3
|
|
c326: b289 uxth r1, r1
|
|
c328: 8051 strh r1, [r2, #2]
|
|
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
|
|
c32a: 3d01 subs r5, #1
|
|
c32c: 1945 adds r5, r0, r5
|
|
c32e: 8095 strh r5, [r2, #4]
|
|
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
|
|
c330: 1e73 subs r3, r6, #1
|
|
c332: 18cb adds r3, r1, r3
|
|
c334: b29b uxth r3, r3
|
|
c336: 80d3 strh r3, [r2, #6]
|
|
if(src_type == LV_IMG_SRC_SYMBOL) {
|
|
c338: 2f02 cmp r7, #2
|
|
c33a: d100 bne.n c33e <lv_draw_rect+0x177a>
|
|
c33c: e09a b.n c474 <lv_draw_rect+0x18b0>
|
|
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
|
|
c33e: 465b mov r3, fp
|
|
c340: 2200 movs r2, #0
|
|
c342: 5e9a ldrsh r2, [r3, r2]
|
|
c344: 4649 mov r1, r9
|
|
c346: a81c add r0, sp, #112 ; 0x70
|
|
c348: 4b62 ldr r3, [pc, #392] ; (c4d4 <lv_draw_rect+0x1910>)
|
|
c34a: 4798 blx r3
|
|
int16_t radius_mask_id = LV_MASK_ID_INV;
|
|
c34c: 2401 movs r4, #1
|
|
c34e: 4264 negs r4, r4
|
|
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
|
|
c350: 2800 cmp r0, #0
|
|
c352: d101 bne.n c358 <lv_draw_rect+0x1794>
|
|
c354: f000 feab bl d0ae <lv_draw_rect+0x24ea>
|
|
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
|
|
c358: ab1e add r3, sp, #120 ; 0x78
|
|
c35a: 465a mov r2, fp
|
|
c35c: 6ad2 ldr r2, [r2, #44] ; 0x2c
|
|
c35e: 9904 ldr r1, [sp, #16]
|
|
c360: a81c add r0, sp, #112 ; 0x70
|
|
c362: 4d5d ldr r5, [pc, #372] ; (c4d8 <lv_draw_rect+0x1914>)
|
|
c364: 47a8 blx r5
|
|
lv_draw_mask_remove_id(radius_mask_id);
|
|
c366: 0020 movs r0, r4
|
|
c368: 4b5c ldr r3, [pc, #368] ; (c4dc <lv_draw_rect+0x1918>)
|
|
c36a: 4798 blx r3
|
|
c36c: f7ff fb7f bl ba6e <lv_draw_rect+0xeaa>
|
|
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
|
|
c370: 465b mov r3, fp
|
|
c372: 2200 movs r2, #0
|
|
c374: 5e9a ldrsh r2, [r3, r2]
|
|
c376: 2300 movs r3, #0
|
|
c378: 4649 mov r1, r9
|
|
c37a: a829 add r0, sp, #164 ; 0xa4
|
|
c37c: 4c58 ldr r4, [pc, #352] ; (c4e0 <lv_draw_rect+0x191c>)
|
|
c37e: 47a0 blx r4
|
|
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
|
|
c380: 2100 movs r1, #0
|
|
c382: a829 add r0, sp, #164 ; 0xa4
|
|
c384: 4b57 ldr r3, [pc, #348] ; (c4e4 <lv_draw_rect+0x1920>)
|
|
c386: 4798 blx r3
|
|
c388: 9007 str r0, [sp, #28]
|
|
c38a: 464b mov r3, r9
|
|
c38c: 8898 ldrh r0, [r3, #4]
|
|
c38e: 3001 adds r0, #1
|
|
c390: 881b ldrh r3, [r3, #0]
|
|
c392: 1ac0 subs r0, r0, r3
|
|
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
|
|
c394: b200 sxth r0, r0
|
|
c396: 4b54 ldr r3, [pc, #336] ; (c4e8 <lv_draw_rect+0x1924>)
|
|
c398: 4698 mov r8, r3
|
|
c39a: 0029 movs r1, r5
|
|
c39c: 4798 blx r3
|
|
c39e: 0fcb lsrs r3, r1, #31
|
|
c3a0: 1859 adds r1, r3, r1
|
|
c3a2: 104b asrs r3, r1, #1
|
|
c3a4: 9306 str r3, [sp, #24]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
c3a6: 464b mov r3, r9
|
|
c3a8: 2206 movs r2, #6
|
|
c3aa: 5e9b ldrsh r3, [r3, r2]
|
|
c3ac: 469a mov sl, r3
|
|
c3ae: 464b mov r3, r9
|
|
c3b0: 885c ldrh r4, [r3, #2]
|
|
c3b2: 4653 mov r3, sl
|
|
c3b4: 1c58 adds r0, r3, #1
|
|
c3b6: 1b00 subs r0, r0, r4
|
|
int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2;
|
|
c3b8: b200 sxth r0, r0
|
|
c3ba: 0031 movs r1, r6
|
|
c3bc: 47c0 blx r8
|
|
c3be: 0fcb lsrs r3, r1, #31
|
|
c3c0: 185b adds r3, r3, r1
|
|
c3c2: 105b asrs r3, r3, #1
|
|
coords_tmp.y1 = coords->y1 - ofs_y;
|
|
c3c4: 1ae4 subs r4, r4, r3
|
|
c3c6: b2a4 uxth r4, r4
|
|
c3c8: b223 sxth r3, r4
|
|
c3ca: aa1c add r2, sp, #112 ; 0x70
|
|
c3cc: 8053 strh r3, [r2, #2]
|
|
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
|
|
c3ce: b2b1 uxth r1, r6
|
|
c3d0: 4688 mov r8, r1
|
|
c3d2: 3901 subs r1, #1
|
|
c3d4: 1864 adds r4, r4, r1
|
|
c3d6: 80d4 strh r4, [r2, #6]
|
|
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
|
|
c3d8: 459a cmp sl, r3
|
|
c3da: db46 blt.n c46a <lv_draw_rect+0x18a6>
|
|
coords_tmp.x1 = coords->x1 - ofs_x;
|
|
c3dc: 0014 movs r4, r2
|
|
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
|
|
c3de: b2ad uxth r5, r5
|
|
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
|
|
c3e0: 4b42 ldr r3, [pc, #264] ; (c4ec <lv_draw_rect+0x1928>)
|
|
c3e2: 469a mov sl, r3
|
|
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
|
|
c3e4: 4e3c ldr r6, [pc, #240] ; (c4d8 <lv_draw_rect+0x1914>)
|
|
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
|
|
c3e6: 9205 str r2, [sp, #20]
|
|
c3e8: 464b mov r3, r9
|
|
c3ea: 46b9 mov r9, r7
|
|
c3ec: 001f movs r7, r3
|
|
c3ee: e02a b.n c446 <lv_draw_rect+0x1882>
|
|
c3f0: 2300 movs r3, #0
|
|
c3f2: 9300 str r3, [sp, #0]
|
|
c3f4: 465b mov r3, fp
|
|
c3f6: 6adb ldr r3, [r3, #44] ; 0x2c
|
|
c3f8: aa22 add r2, sp, #136 ; 0x88
|
|
c3fa: 9904 ldr r1, [sp, #16]
|
|
c3fc: 9805 ldr r0, [sp, #20]
|
|
c3fe: 47d0 blx sl
|
|
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
|
|
c400: 8823 ldrh r3, [r4, #0]
|
|
c402: 18eb adds r3, r5, r3
|
|
c404: b21b sxth r3, r3
|
|
c406: 8023 strh r3, [r4, #0]
|
|
c408: 88a2 ldrh r2, [r4, #4]
|
|
c40a: 18aa adds r2, r5, r2
|
|
c40c: 80a2 strh r2, [r4, #4]
|
|
c40e: 464a mov r2, r9
|
|
c410: 2104 movs r1, #4
|
|
c412: 5e52 ldrsh r2, [r2, r1]
|
|
c414: 429a cmp r2, r3
|
|
c416: db08 blt.n c42a <lv_draw_rect+0x1866>
|
|
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
|
|
c418: 2f02 cmp r7, #2
|
|
c41a: d0e9 beq.n c3f0 <lv_draw_rect+0x182c>
|
|
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
|
|
c41c: ab1e add r3, sp, #120 ; 0x78
|
|
c41e: 465a mov r2, fp
|
|
c420: 6ad2 ldr r2, [r2, #44] ; 0x2c
|
|
c422: 9904 ldr r1, [sp, #16]
|
|
c424: 9805 ldr r0, [sp, #20]
|
|
c426: 47b0 blx r6
|
|
c428: e7ea b.n c400 <lv_draw_rect+0x183c>
|
|
c42a: 464b mov r3, r9
|
|
c42c: 46b9 mov r9, r7
|
|
c42e: 001f movs r7, r3
|
|
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
|
|
c430: 8863 ldrh r3, [r4, #2]
|
|
c432: 4443 add r3, r8
|
|
c434: b21b sxth r3, r3
|
|
c436: 8063 strh r3, [r4, #2]
|
|
c438: 88e2 ldrh r2, [r4, #6]
|
|
c43a: 4442 add r2, r8
|
|
c43c: 80e2 strh r2, [r4, #6]
|
|
c43e: 2106 movs r1, #6
|
|
c440: 5e7a ldrsh r2, [r7, r1]
|
|
c442: 429a cmp r2, r3
|
|
c444: db10 blt.n c468 <lv_draw_rect+0x18a4>
|
|
coords_tmp.x1 = coords->x1 - ofs_x;
|
|
c446: 883b ldrh r3, [r7, #0]
|
|
c448: 9a06 ldr r2, [sp, #24]
|
|
c44a: 1a9b subs r3, r3, r2
|
|
c44c: b29b uxth r3, r3
|
|
c44e: b21a sxth r2, r3
|
|
c450: 8022 strh r2, [r4, #0]
|
|
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
|
|
c452: 1e69 subs r1, r5, #1
|
|
c454: 185b adds r3, r3, r1
|
|
c456: 80a3 strh r3, [r4, #4]
|
|
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
|
|
c458: 2104 movs r1, #4
|
|
c45a: 5e7b ldrsh r3, [r7, r1]
|
|
c45c: 4293 cmp r3, r2
|
|
c45e: dbe7 blt.n c430 <lv_draw_rect+0x186c>
|
|
c460: 003b movs r3, r7
|
|
c462: 464f mov r7, r9
|
|
c464: 4699 mov r9, r3
|
|
c466: e7d7 b.n c418 <lv_draw_rect+0x1854>
|
|
c468: 46b9 mov r9, r7
|
|
lv_draw_mask_remove_id(radius_mask_id);
|
|
c46a: 9807 ldr r0, [sp, #28]
|
|
c46c: 4b1b ldr r3, [pc, #108] ; (c4dc <lv_draw_rect+0x1918>)
|
|
c46e: 4798 blx r3
|
|
c470: f7ff fafd bl ba6e <lv_draw_rect+0xeaa>
|
|
coords_tmp.y1 += y_corr;
|
|
c474: 2201 movs r2, #1
|
|
c476: 4014 ands r4, r2
|
|
c478: a81c add r0, sp, #112 ; 0x70
|
|
c47a: 1909 adds r1, r1, r4
|
|
c47c: 8041 strh r1, [r0, #2]
|
|
coords_tmp.y2 += y_corr;
|
|
c47e: 191b adds r3, r3, r4
|
|
c480: 80c3 strh r3, [r0, #6]
|
|
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
|
|
c482: 465b mov r3, fp
|
|
c484: 2200 movs r2, #0
|
|
c486: 5e9a ldrsh r2, [r3, r2]
|
|
c488: 4649 mov r1, r9
|
|
c48a: 4b12 ldr r3, [pc, #72] ; (c4d4 <lv_draw_rect+0x1910>)
|
|
c48c: 4798 blx r3
|
|
c48e: 2800 cmp r0, #0
|
|
c490: d116 bne.n c4c0 <lv_draw_rect+0x18fc>
|
|
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
|
|
c492: 465b mov r3, fp
|
|
c494: 2200 movs r2, #0
|
|
c496: 5e9a ldrsh r2, [r3, r2]
|
|
c498: 2300 movs r3, #0
|
|
c49a: 4649 mov r1, r9
|
|
c49c: a829 add r0, sp, #164 ; 0xa4
|
|
c49e: 4c10 ldr r4, [pc, #64] ; (c4e0 <lv_draw_rect+0x191c>)
|
|
c4a0: 47a0 blx r4
|
|
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
|
|
c4a2: 2100 movs r1, #0
|
|
c4a4: a829 add r0, sp, #164 ; 0xa4
|
|
c4a6: 4b0f ldr r3, [pc, #60] ; (c4e4 <lv_draw_rect+0x1920>)
|
|
c4a8: 4798 blx r3
|
|
c4aa: 0004 movs r4, r0
|
|
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
|
|
c4ac: 2300 movs r3, #0
|
|
c4ae: 9300 str r3, [sp, #0]
|
|
c4b0: 465b mov r3, fp
|
|
c4b2: 6adb ldr r3, [r3, #44] ; 0x2c
|
|
c4b4: aa22 add r2, sp, #136 ; 0x88
|
|
c4b6: 9904 ldr r1, [sp, #16]
|
|
c4b8: a81c add r0, sp, #112 ; 0x70
|
|
c4ba: 4d0c ldr r5, [pc, #48] ; (c4ec <lv_draw_rect+0x1928>)
|
|
c4bc: 47a8 blx r5
|
|
c4be: e752 b.n c366 <lv_draw_rect+0x17a2>
|
|
int16_t radius_mask_id = LV_MASK_ID_INV;
|
|
c4c0: 2401 movs r4, #1
|
|
c4c2: 4264 negs r4, r4
|
|
c4c4: e7f2 b.n c4ac <lv_draw_rect+0x18e8>
|
|
c4c6: 46c0 nop ; (mov r8, r8)
|
|
c4c8: 000081c5 .word 0x000081c5
|
|
c4cc: 00007c18 .word 0x00007c18
|
|
c4d0: 00011ae5 .word 0x00011ae5
|
|
c4d4: 0000fe9d .word 0x0000fe9d
|
|
c4d8: 00007f41 .word 0x00007f41
|
|
c4dc: 0000a679 .word 0x0000a679
|
|
c4e0: 0000a855 .word 0x0000a855
|
|
c4e4: 0000a5ed .word 0x0000a5ed
|
|
c4e8: 00017b61 .word 0x00017b61
|
|
c4ec: 00008215 .word 0x00008215
|
|
draw_area.x1 -= disp_area->x1;
|
|
c4f0: 8a38 ldrh r0, [r7, #16]
|
|
c4f2: aa18 add r2, sp, #96 ; 0x60
|
|
c4f4: 8811 ldrh r1, [r2, #0]
|
|
c4f6: 1a09 subs r1, r1, r0
|
|
c4f8: b289 uxth r1, r1
|
|
c4fa: 8011 strh r1, [r2, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
c4fc: 8a7d ldrh r5, [r7, #18]
|
|
c4fe: 8854 ldrh r4, [r2, #2]
|
|
c500: 1b64 subs r4, r4, r5
|
|
c502: 8054 strh r4, [r2, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
c504: 8893 ldrh r3, [r2, #4]
|
|
c506: 1a1b subs r3, r3, r0
|
|
c508: b29b uxth r3, r3
|
|
c50a: 8093 strh r3, [r2, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
c50c: 88d0 ldrh r0, [r2, #6]
|
|
c50e: 1b40 subs r0, r0, r5
|
|
c510: 80d0 strh r0, [r2, #6]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
c512: 3301 adds r3, #1
|
|
c514: 1a5b subs r3, r3, r1
|
|
c516: b21b sxth r3, r3
|
|
c518: 930a str r3, [sp, #40] ; 0x28
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
|
|
c51a: 930b str r3, [sp, #44] ; 0x2c
|
|
c51c: 0018 movs r0, r3
|
|
c51e: 4bb8 ldr r3, [pc, #736] ; (c800 <lv_draw_rect+0x1c3c>)
|
|
c520: 4798 blx r3
|
|
c522: 9005 str r0, [sp, #20]
|
|
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
|
|
c524: 4bb7 ldr r3, [pc, #732] ; (c804 <lv_draw_rect+0x1c40>)
|
|
c526: 4798 blx r3
|
|
if(other_mask_cnt) simple_mode = false;
|
|
c528: 2500 movs r5, #0
|
|
c52a: 2800 cmp r0, #0
|
|
c52c: d106 bne.n c53c <lv_draw_rect+0x1978>
|
|
else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false;
|
|
c52e: 465b mov r3, fp
|
|
c530: 2512 movs r5, #18
|
|
c532: 5f5d ldrsh r5, [r3, r5]
|
|
c534: 3d0f subs r5, #15
|
|
c536: 426a negs r2, r5
|
|
c538: 416a adcs r2, r5
|
|
c53a: b2d5 uxtb r5, r2
|
|
int32_t rout = dsc->radius;
|
|
c53c: 465b mov r3, fp
|
|
c53e: 2100 movs r1, #0
|
|
c540: 5e59 ldrsh r1, [r3, r1]
|
|
c542: 464b mov r3, r9
|
|
c544: 889b ldrh r3, [r3, #4]
|
|
c546: 3301 adds r3, #1
|
|
c548: 464a mov r2, r9
|
|
c54a: 8812 ldrh r2, [r2, #0]
|
|
c54c: 1a9b subs r3, r3, r2
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
c54e: 464a mov r2, r9
|
|
c550: 88d2 ldrh r2, [r2, #6]
|
|
c552: 3201 adds r2, #1
|
|
c554: 4648 mov r0, r9
|
|
c556: 8840 ldrh r0, [r0, #2]
|
|
c558: 1a12 subs r2, r2, r0
|
|
int32_t coords_h = lv_area_get_height(coords);
|
|
c55a: b212 sxth r2, r2
|
|
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
|
|
c55c: b21b sxth r3, r3
|
|
c55e: 4293 cmp r3, r2
|
|
c560: dd00 ble.n c564 <lv_draw_rect+0x19a0>
|
|
c562: 0013 movs r3, r2
|
|
if(rout > short_side >> 1) rout = short_side >> 1;
|
|
c564: 105b asrs r3, r3, #1
|
|
c566: 9309 str r3, [sp, #36] ; 0x24
|
|
c568: 428b cmp r3, r1
|
|
c56a: dd00 ble.n c56e <lv_draw_rect+0x19aa>
|
|
c56c: 9109 str r1, [sp, #36] ; 0x24
|
|
if(rout > 0) {
|
|
c56e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
c570: 2b00 cmp r3, #0
|
|
c572: dc00 bgt.n c576 <lv_draw_rect+0x19b2>
|
|
c574: e084 b.n c680 <lv_draw_rect+0x1abc>
|
|
lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false);
|
|
c576: b21a sxth r2, r3
|
|
c578: 2300 movs r3, #0
|
|
c57a: 4649 mov r1, r9
|
|
c57c: a822 add r0, sp, #136 ; 0x88
|
|
c57e: 4ca2 ldr r4, [pc, #648] ; (c808 <lv_draw_rect+0x1c44>)
|
|
c580: 47a0 blx r4
|
|
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
|
|
c582: 2100 movs r1, #0
|
|
c584: a822 add r0, sp, #136 ; 0x88
|
|
c586: 4ba1 ldr r3, [pc, #644] ; (c80c <lv_draw_rect+0x1c48>)
|
|
c588: 4798 blx r3
|
|
c58a: 900f str r0, [sp, #60] ; 0x3c
|
|
int32_t rin = rout - dsc->border_width;
|
|
c58c: 465b mov r3, fp
|
|
c58e: 2010 movs r0, #16
|
|
c590: 5e18 ldrsh r0, [r3, r0]
|
|
c592: 2300 movs r3, #0
|
|
*d8 = *s8;
|
|
c594: a91a add r1, sp, #104 ; 0x68
|
|
c596: 464c mov r4, r9
|
|
c598: 5ce2 ldrb r2, [r4, r3]
|
|
c59a: 545a strb r2, [r3, r1]
|
|
c59c: 3301 adds r3, #1
|
|
while(len) {
|
|
c59e: 2b08 cmp r3, #8
|
|
c5a0: d1fa bne.n c598 <lv_draw_rect+0x19d4>
|
|
c5a2: 46a1 mov r9, r4
|
|
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c5a4: ab1a add r3, sp, #104 ; 0x68
|
|
c5a6: 881a ldrh r2, [r3, #0]
|
|
c5a8: 465b mov r3, fp
|
|
c5aa: 8a5b ldrh r3, [r3, #18]
|
|
c5ac: 0759 lsls r1, r3, #29
|
|
c5ae: d56b bpl.n c688 <lv_draw_rect+0x1ac4>
|
|
c5b0: b284 uxth r4, r0
|
|
c5b2: a91a add r1, sp, #104 ; 0x68
|
|
c5b4: 1912 adds r2, r2, r4
|
|
c5b6: 800a strh r2, [r1, #0]
|
|
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c5b8: 888a ldrh r2, [r1, #4]
|
|
c5ba: 0719 lsls r1, r3, #28
|
|
c5bc: d569 bpl.n c692 <lv_draw_rect+0x1ace>
|
|
c5be: b284 uxth r4, r0
|
|
c5c0: a91a add r1, sp, #104 ; 0x68
|
|
c5c2: 1b12 subs r2, r2, r4
|
|
c5c4: 808a strh r2, [r1, #4]
|
|
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c5c6: 884a ldrh r2, [r1, #2]
|
|
c5c8: 0799 lsls r1, r3, #30
|
|
c5ca: d567 bpl.n c69c <lv_draw_rect+0x1ad8>
|
|
c5cc: b284 uxth r4, r0
|
|
c5ce: a91a add r1, sp, #104 ; 0x68
|
|
c5d0: 1912 adds r2, r2, r4
|
|
c5d2: 804a strh r2, [r1, #2]
|
|
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c5d4: 88ca ldrh r2, [r1, #6]
|
|
c5d6: 07db lsls r3, r3, #31
|
|
c5d8: d565 bpl.n c6a6 <lv_draw_rect+0x1ae2>
|
|
c5da: b283 uxth r3, r0
|
|
c5dc: a91a add r1, sp, #104 ; 0x68
|
|
c5de: 1ad3 subs r3, r2, r3
|
|
c5e0: 80cb strh r3, [r1, #6]
|
|
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
|
|
c5e2: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
c5e4: 4698 mov r8, r3
|
|
c5e6: 466a mov r2, sp
|
|
c5e8: 8313 strh r3, [r2, #24]
|
|
c5ea: 8b13 ldrh r3, [r2, #24]
|
|
c5ec: 469a mov sl, r3
|
|
c5ee: 1a1a subs r2, r3, r0
|
|
c5f0: b212 sxth r2, r2
|
|
c5f2: 2301 movs r3, #1
|
|
c5f4: a829 add r0, sp, #164 ; 0xa4
|
|
c5f6: 4c84 ldr r4, [pc, #528] ; (c808 <lv_draw_rect+0x1c44>)
|
|
c5f8: 47a0 blx r4
|
|
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
|
|
c5fa: 2100 movs r1, #0
|
|
c5fc: a829 add r0, sp, #164 ; 0xa4
|
|
c5fe: 4b83 ldr r3, [pc, #524] ; (c80c <lv_draw_rect+0x1c48>)
|
|
c600: 4798 blx r3
|
|
c602: 9010 str r0, [sp, #64] ; 0x40
|
|
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
|
|
c604: 465b mov r3, fp
|
|
c606: 2010 movs r0, #16
|
|
c608: 5e1b ldrsh r3, [r3, r0]
|
|
c60a: 3b01 subs r3, #1
|
|
c60c: 930d str r3, [sp, #52] ; 0x34
|
|
c60e: 4641 mov r1, r8
|
|
c610: 4543 cmp r3, r8
|
|
c612: da00 bge.n c616 <lv_draw_rect+0x1a52>
|
|
c614: 910d str r1, [sp, #52] ; 0x34
|
|
lv_color_t color = dsc->border_color;
|
|
c616: 465b mov r3, fp
|
|
c618: 89db ldrh r3, [r3, #14]
|
|
c61a: 9311 str r3, [sp, #68] ; 0x44
|
|
c61c: 466a mov r2, sp
|
|
c61e: 8393 strh r3, [r2, #28]
|
|
lv_blend_mode_t blend_mode = dsc->border_blend_mode;
|
|
c620: 465b mov r3, fp
|
|
c622: 7d5b ldrb r3, [r3, #21]
|
|
c624: 9306 str r3, [sp, #24]
|
|
if(simple_mode) {
|
|
c626: 2d00 cmp r5, #0
|
|
c628: d100 bne.n c62c <lv_draw_rect+0x1a68>
|
|
c62a: e1bc b.n c9a6 <lv_draw_rect+0x1de2>
|
|
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
|
|
c62c: 2212 movs r2, #18
|
|
c62e: 5ebb ldrsh r3, [r7, r2]
|
|
c630: 464a mov r2, r9
|
|
c632: 2102 movs r1, #2
|
|
c634: 5e52 ldrsh r2, [r2, r1]
|
|
c636: 1ad2 subs r2, r2, r3
|
|
c638: 990d ldr r1, [sp, #52] ; 0x34
|
|
c63a: 468c mov ip, r1
|
|
c63c: 4462 add r2, ip
|
|
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
|
|
c63e: a918 add r1, sp, #96 ; 0x60
|
|
c640: 2006 movs r0, #6
|
|
c642: 5e09 ldrsh r1, [r1, r0]
|
|
c644: 910c str r1, [sp, #48] ; 0x30
|
|
c646: 4291 cmp r1, r2
|
|
c648: dd00 ble.n c64c <lv_draw_rect+0x1a88>
|
|
c64a: 920c str r2, [sp, #48] ; 0x30
|
|
fill_area.x1 = coords->x1;
|
|
c64c: aa1c add r2, sp, #112 ; 0x70
|
|
c64e: 4649 mov r1, r9
|
|
c650: 8809 ldrh r1, [r1, #0]
|
|
c652: 8011 strh r1, [r2, #0]
|
|
fill_area.x2 = coords->x2;
|
|
c654: 4649 mov r1, r9
|
|
c656: 8889 ldrh r1, [r1, #4]
|
|
c658: 8091 strh r1, [r2, #4]
|
|
fill_area.y1 = disp_area->y1 + draw_area.y1;
|
|
c65a: a918 add r1, sp, #96 ; 0x60
|
|
c65c: 2502 movs r5, #2
|
|
c65e: 5f4d ldrsh r5, [r1, r5]
|
|
c660: 195b adds r3, r3, r5
|
|
c662: b21b sxth r3, r3
|
|
c664: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
c666: 80d3 strh r3, [r2, #6]
|
|
for(h = draw_area.y1; h <= upper_corner_end; h++) {
|
|
c668: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
c66a: 42ab cmp r3, r5
|
|
c66c: da00 bge.n c670 <lv_draw_rect+0x1aac>
|
|
c66e: e09f b.n c7b0 <lv_draw_rect+0x1bec>
|
|
fill_area2.y1 = fill_area.y1;
|
|
c670: ac1e add r4, sp, #120 ; 0x78
|
|
c672: 9508 str r5, [sp, #32]
|
|
c674: 464b mov r3, r9
|
|
c676: 46b1 mov r9, r6
|
|
c678: 465a mov r2, fp
|
|
c67a: 920e str r2, [sp, #56] ; 0x38
|
|
c67c: 001e movs r6, r3
|
|
c67e: e047 b.n c710 <lv_draw_rect+0x1b4c>
|
|
int16_t mask_rout_id = LV_MASK_ID_INV;
|
|
c680: 2301 movs r3, #1
|
|
c682: 425b negs r3, r3
|
|
c684: 930f str r3, [sp, #60] ; 0x3c
|
|
c686: e781 b.n c58c <lv_draw_rect+0x19c8>
|
|
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c688: 9909 ldr r1, [sp, #36] ; 0x24
|
|
c68a: 1844 adds r4, r0, r1
|
|
c68c: 4264 negs r4, r4
|
|
c68e: b2a4 uxth r4, r4
|
|
c690: e78f b.n c5b2 <lv_draw_rect+0x19ee>
|
|
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c692: 9909 ldr r1, [sp, #36] ; 0x24
|
|
c694: 1844 adds r4, r0, r1
|
|
c696: 4264 negs r4, r4
|
|
c698: b2a4 uxth r4, r4
|
|
c69a: e791 b.n c5c0 <lv_draw_rect+0x19fc>
|
|
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c69c: 9909 ldr r1, [sp, #36] ; 0x24
|
|
c69e: 1844 adds r4, r0, r1
|
|
c6a0: 4264 negs r4, r4
|
|
c6a2: b2a4 uxth r4, r4
|
|
c6a4: e793 b.n c5ce <lv_draw_rect+0x1a0a>
|
|
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
|
|
c6a6: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
c6a8: 18c3 adds r3, r0, r3
|
|
c6aa: 425b negs r3, r3
|
|
c6ac: b29b uxth r3, r3
|
|
c6ae: e795 b.n c5dc <lv_draw_rect+0x1a18>
|
|
fill_area2.x1 = coords->x2 - rout + 1;
|
|
c6b0: 2204 movs r2, #4
|
|
c6b2: 5eb3 ldrsh r3, [r6, r2]
|
|
c6b4: 1c5a adds r2, r3, #1
|
|
c6b6: 4651 mov r1, sl
|
|
c6b8: 1a52 subs r2, r2, r1
|
|
c6ba: 8022 strh r2, [r4, #0]
|
|
fill_area2.x2 = coords->x2;
|
|
c6bc: 80a3 strh r3, [r4, #4]
|
|
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
|
|
c6be: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
c6c0: 1a9a subs r2, r3, r2
|
|
c6c2: 3201 adds r2, #1
|
|
c6c4: 2110 movs r1, #16
|
|
c6c6: 5e7b ldrsh r3, [r7, r1]
|
|
c6c8: a90e add r1, sp, #56 ; 0x38
|
|
c6ca: 2028 movs r0, #40 ; 0x28
|
|
c6cc: 5e09 ldrsh r1, [r1, r0]
|
|
c6ce: 185b adds r3, r3, r1
|
|
c6d0: 1ad3 subs r3, r2, r3
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
|
|
c6d2: 43da mvns r2, r3
|
|
c6d4: 17d2 asrs r2, r2, #31
|
|
c6d6: 4013 ands r3, r2
|
|
c6d8: 9a05 ldr r2, [sp, #20]
|
|
c6da: 4694 mov ip, r2
|
|
c6dc: 4463 add r3, ip
|
|
c6de: 9a06 ldr r2, [sp, #24]
|
|
c6e0: 9202 str r2, [sp, #8]
|
|
c6e2: 464a mov r2, r9
|
|
c6e4: 9201 str r2, [sp, #4]
|
|
c6e6: 4642 mov r2, r8
|
|
c6e8: 9200 str r2, [sp, #0]
|
|
c6ea: 466a mov r2, sp
|
|
c6ec: 8b92 ldrh r2, [r2, #28]
|
|
c6ee: 0021 movs r1, r4
|
|
c6f0: 9804 ldr r0, [sp, #16]
|
|
c6f2: 4d47 ldr r5, [pc, #284] ; (c810 <lv_draw_rect+0x1c4c>)
|
|
c6f4: 47a8 blx r5
|
|
fill_area.y1++;
|
|
c6f6: ab1c add r3, sp, #112 ; 0x70
|
|
c6f8: 885a ldrh r2, [r3, #2]
|
|
c6fa: 3201 adds r2, #1
|
|
c6fc: 805a strh r2, [r3, #2]
|
|
fill_area.y2++;
|
|
c6fe: 88da ldrh r2, [r3, #6]
|
|
c700: 3201 adds r2, #1
|
|
c702: 80da strh r2, [r3, #6]
|
|
for(h = draw_area.y1; h <= upper_corner_end; h++) {
|
|
c704: 9a08 ldr r2, [sp, #32]
|
|
c706: 3201 adds r2, #1
|
|
c708: 9208 str r2, [sp, #32]
|
|
c70a: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
c70c: 4293 cmp r3, r2
|
|
c70e: db4a blt.n c7a6 <lv_draw_rect+0x1be2>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
c710: 990b ldr r1, [sp, #44] ; 0x2c
|
|
c712: 9d05 ldr r5, [sp, #20]
|
|
c714: 0028 movs r0, r5
|
|
c716: 4b3f ldr r3, [pc, #252] ; (c814 <lv_draw_rect+0x1c50>)
|
|
c718: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
c71a: 8a7a ldrh r2, [r7, #18]
|
|
c71c: 9b08 ldr r3, [sp, #32]
|
|
c71e: 469c mov ip, r3
|
|
c720: 4462 add r2, ip
|
|
c722: b212 sxth r2, r2
|
|
c724: 8a39 ldrh r1, [r7, #16]
|
|
c726: ab0e add r3, sp, #56 ; 0x38
|
|
c728: 8d1b ldrh r3, [r3, #40] ; 0x28
|
|
c72a: 18c9 adds r1, r1, r3
|
|
c72c: b209 sxth r1, r1
|
|
c72e: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
c730: 9505 str r5, [sp, #20]
|
|
c732: 0028 movs r0, r5
|
|
c734: 4d38 ldr r5, [pc, #224] ; (c818 <lv_draw_rect+0x1c54>)
|
|
c736: 47a8 blx r5
|
|
c738: 4680 mov r8, r0
|
|
fill_area2.y1 = fill_area.y1;
|
|
c73a: ab1c add r3, sp, #112 ; 0x70
|
|
c73c: 885a ldrh r2, [r3, #2]
|
|
c73e: 8062 strh r2, [r4, #2]
|
|
fill_area2.y2 = fill_area.y2;
|
|
c740: 88db ldrh r3, [r3, #6]
|
|
c742: 80e3 strh r3, [r4, #6]
|
|
fill_area2.x1 = coords->x1;
|
|
c744: 2200 movs r2, #0
|
|
c746: 5eb3 ldrsh r3, [r6, r2]
|
|
c748: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = coords->x1 + rout - 1;
|
|
c74a: 3b01 subs r3, #1
|
|
c74c: 4453 add r3, sl
|
|
c74e: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
|
|
c750: 9a06 ldr r2, [sp, #24]
|
|
c752: 9202 str r2, [sp, #8]
|
|
c754: 464a mov r2, r9
|
|
c756: 9201 str r2, [sp, #4]
|
|
c758: 9000 str r0, [sp, #0]
|
|
c75a: 9b05 ldr r3, [sp, #20]
|
|
c75c: 466a mov r2, sp
|
|
c75e: 8b92 ldrh r2, [r2, #28]
|
|
c760: 0021 movs r1, r4
|
|
c762: 9804 ldr r0, [sp, #16]
|
|
c764: 4d2a ldr r5, [pc, #168] ; (c810 <lv_draw_rect+0x1c4c>)
|
|
c766: 47a8 blx r5
|
|
if(fill_area2.y2 < coords->y1 + dsc->border_width) {
|
|
c768: 2306 movs r3, #6
|
|
c76a: 5ee2 ldrsh r2, [r4, r3]
|
|
c76c: 2102 movs r1, #2
|
|
c76e: 5e73 ldrsh r3, [r6, r1]
|
|
c770: 990e ldr r1, [sp, #56] ; 0x38
|
|
c772: 2010 movs r0, #16
|
|
c774: 5e09 ldrsh r1, [r1, r0]
|
|
c776: 185b adds r3, r3, r1
|
|
c778: 429a cmp r2, r3
|
|
c77a: da99 bge.n c6b0 <lv_draw_rect+0x1aec>
|
|
fill_area2.x1 = coords->x1 + rout;
|
|
c77c: 8833 ldrh r3, [r6, #0]
|
|
c77e: 4453 add r3, sl
|
|
c780: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = coords->x2 - rout;
|
|
c782: 88b3 ldrh r3, [r6, #4]
|
|
c784: 4652 mov r2, sl
|
|
c786: 1a9b subs r3, r3, r2
|
|
c788: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
c78a: 9b06 ldr r3, [sp, #24]
|
|
c78c: 9302 str r3, [sp, #8]
|
|
c78e: 464b mov r3, r9
|
|
c790: 9301 str r3, [sp, #4]
|
|
c792: 2301 movs r3, #1
|
|
c794: 9300 str r3, [sp, #0]
|
|
c796: 2300 movs r3, #0
|
|
c798: 466a mov r2, sp
|
|
c79a: 8b92 ldrh r2, [r2, #28]
|
|
c79c: 0021 movs r1, r4
|
|
c79e: 9804 ldr r0, [sp, #16]
|
|
c7a0: 4d1b ldr r5, [pc, #108] ; (c810 <lv_draw_rect+0x1c4c>)
|
|
c7a2: 47a8 blx r5
|
|
c7a4: e784 b.n c6b0 <lv_draw_rect+0x1aec>
|
|
c7a6: 0032 movs r2, r6
|
|
c7a8: 464e mov r6, r9
|
|
c7aa: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
c7ac: 469b mov fp, r3
|
|
c7ae: 4691 mov r9, r2
|
|
int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size;
|
|
c7b0: 2212 movs r2, #18
|
|
c7b2: 5ebb ldrsh r3, [r7, r2]
|
|
c7b4: 464a mov r2, r9
|
|
c7b6: 2106 movs r1, #6
|
|
c7b8: 5e52 ldrsh r2, [r2, r1]
|
|
c7ba: 1ad2 subs r2, r2, r3
|
|
c7bc: 990d ldr r1, [sp, #52] ; 0x34
|
|
c7be: 1a52 subs r2, r2, r1
|
|
lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1);
|
|
c7c0: a918 add r1, sp, #96 ; 0x60
|
|
c7c2: 2502 movs r5, #2
|
|
c7c4: 5f4d ldrsh r5, [r1, r5]
|
|
c7c6: 4295 cmp r5, r2
|
|
c7c8: da00 bge.n c7cc <lv_draw_rect+0x1c08>
|
|
c7ca: 0015 movs r5, r2
|
|
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
|
|
c7cc: 990c ldr r1, [sp, #48] ; 0x30
|
|
c7ce: 000a movs r2, r1
|
|
c7d0: 42a9 cmp r1, r5
|
|
c7d2: db01 blt.n c7d8 <lv_draw_rect+0x1c14>
|
|
c7d4: 3201 adds r2, #1
|
|
c7d6: 0015 movs r5, r2
|
|
fill_area.y1 = disp_area->y1 + lower_corner_end;
|
|
c7d8: 195b adds r3, r3, r5
|
|
c7da: b21b sxth r3, r3
|
|
c7dc: aa1c add r2, sp, #112 ; 0x70
|
|
c7de: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
c7e0: 80d3 strh r3, [r2, #6]
|
|
for(h = lower_corner_end; h <= draw_area.y2; h++) {
|
|
c7e2: ab18 add r3, sp, #96 ; 0x60
|
|
c7e4: 2206 movs r2, #6
|
|
c7e6: 5e9b ldrsh r3, [r3, r2]
|
|
c7e8: 429d cmp r5, r3
|
|
c7ea: dd00 ble.n c7ee <lv_draw_rect+0x1c2a>
|
|
c7ec: e099 b.n c922 <lv_draw_rect+0x1d5e>
|
|
fill_area2.x1 = coords->x1;
|
|
c7ee: ac1e add r4, sp, #120 ; 0x78
|
|
c7f0: 9508 str r5, [sp, #32]
|
|
c7f2: 464b mov r3, r9
|
|
c7f4: 46b1 mov r9, r6
|
|
c7f6: 465a mov r2, fp
|
|
c7f8: 920c str r2, [sp, #48] ; 0x30
|
|
c7fa: 001e movs r6, r3
|
|
c7fc: e041 b.n c882 <lv_draw_rect+0x1cbe>
|
|
c7fe: 46c0 nop ; (mov r8, r8)
|
|
c800: 00010ec1 .word 0x00010ec1
|
|
c804: 0000a6c1 .word 0x0000a6c1
|
|
c808: 0000a855 .word 0x0000a855
|
|
c80c: 0000a5ed .word 0x0000a5ed
|
|
c810: 00005c6d .word 0x00005c6d
|
|
c814: 000110f1 .word 0x000110f1
|
|
c818: 0000a625 .word 0x0000a625
|
|
fill_area2.x1 = coords->x2 - rout + 1;
|
|
c81c: 2204 movs r2, #4
|
|
c81e: 5eb3 ldrsh r3, [r6, r2]
|
|
c820: 1c5a adds r2, r3, #1
|
|
c822: 4651 mov r1, sl
|
|
c824: 1a52 subs r2, r2, r1
|
|
c826: 8022 strh r2, [r4, #0]
|
|
fill_area2.x2 = coords->x2;
|
|
c828: 80a3 strh r3, [r4, #4]
|
|
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
|
|
c82a: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
c82c: 1a9a subs r2, r3, r2
|
|
c82e: 3201 adds r2, #1
|
|
c830: 2110 movs r1, #16
|
|
c832: 5e7b ldrsh r3, [r7, r1]
|
|
c834: a90e add r1, sp, #56 ; 0x38
|
|
c836: 2028 movs r0, #40 ; 0x28
|
|
c838: 5e09 ldrsh r1, [r1, r0]
|
|
c83a: 185b adds r3, r3, r1
|
|
c83c: 1ad3 subs r3, r2, r3
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
|
|
c83e: 43da mvns r2, r3
|
|
c840: 17d2 asrs r2, r2, #31
|
|
c842: 4013 ands r3, r2
|
|
c844: 9a05 ldr r2, [sp, #20]
|
|
c846: 4694 mov ip, r2
|
|
c848: 4463 add r3, ip
|
|
c84a: 9a06 ldr r2, [sp, #24]
|
|
c84c: 9202 str r2, [sp, #8]
|
|
c84e: 464a mov r2, r9
|
|
c850: 9201 str r2, [sp, #4]
|
|
c852: 4642 mov r2, r8
|
|
c854: 9200 str r2, [sp, #0]
|
|
c856: 466a mov r2, sp
|
|
c858: 8b92 ldrh r2, [r2, #28]
|
|
c85a: 0021 movs r1, r4
|
|
c85c: 9804 ldr r0, [sp, #16]
|
|
c85e: 4daf ldr r5, [pc, #700] ; (cb1c <lv_draw_rect+0x1f58>)
|
|
c860: 47a8 blx r5
|
|
fill_area.y1++;
|
|
c862: ab1c add r3, sp, #112 ; 0x70
|
|
c864: 885a ldrh r2, [r3, #2]
|
|
c866: 3201 adds r2, #1
|
|
c868: 805a strh r2, [r3, #2]
|
|
fill_area.y2++;
|
|
c86a: 88da ldrh r2, [r3, #6]
|
|
c86c: 3201 adds r2, #1
|
|
c86e: 80da strh r2, [r3, #6]
|
|
for(h = lower_corner_end; h <= draw_area.y2; h++) {
|
|
c870: 9a08 ldr r2, [sp, #32]
|
|
c872: 3201 adds r2, #1
|
|
c874: 0011 movs r1, r2
|
|
c876: 9208 str r2, [sp, #32]
|
|
c878: ab0e add r3, sp, #56 ; 0x38
|
|
c87a: 222e movs r2, #46 ; 0x2e
|
|
c87c: 5e9b ldrsh r3, [r3, r2]
|
|
c87e: 4299 cmp r1, r3
|
|
c880: dc4a bgt.n c918 <lv_draw_rect+0x1d54>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
c882: 990b ldr r1, [sp, #44] ; 0x2c
|
|
c884: 9d05 ldr r5, [sp, #20]
|
|
c886: 0028 movs r0, r5
|
|
c888: 4ba5 ldr r3, [pc, #660] ; (cb20 <lv_draw_rect+0x1f5c>)
|
|
c88a: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
c88c: 8a7a ldrh r2, [r7, #18]
|
|
c88e: 9b08 ldr r3, [sp, #32]
|
|
c890: 469c mov ip, r3
|
|
c892: 4462 add r2, ip
|
|
c894: b212 sxth r2, r2
|
|
c896: 8a39 ldrh r1, [r7, #16]
|
|
c898: ab0e add r3, sp, #56 ; 0x38
|
|
c89a: 8d1b ldrh r3, [r3, #40] ; 0x28
|
|
c89c: 18c9 adds r1, r1, r3
|
|
c89e: b209 sxth r1, r1
|
|
c8a0: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
c8a2: 9505 str r5, [sp, #20]
|
|
c8a4: 0028 movs r0, r5
|
|
c8a6: 4d9f ldr r5, [pc, #636] ; (cb24 <lv_draw_rect+0x1f60>)
|
|
c8a8: 47a8 blx r5
|
|
c8aa: 4680 mov r8, r0
|
|
fill_area2.x1 = coords->x1;
|
|
c8ac: 2200 movs r2, #0
|
|
c8ae: 5eb3 ldrsh r3, [r6, r2]
|
|
c8b0: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = coords->x1 + rout - 1;
|
|
c8b2: 3b01 subs r3, #1
|
|
c8b4: 4453 add r3, sl
|
|
c8b6: 80a3 strh r3, [r4, #4]
|
|
fill_area2.y1 = fill_area.y1;
|
|
c8b8: ab1c add r3, sp, #112 ; 0x70
|
|
c8ba: 885a ldrh r2, [r3, #2]
|
|
c8bc: 8062 strh r2, [r4, #2]
|
|
fill_area2.y2 = fill_area.y2;
|
|
c8be: 88db ldrh r3, [r3, #6]
|
|
c8c0: 80e3 strh r3, [r4, #6]
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
|
|
c8c2: 9a06 ldr r2, [sp, #24]
|
|
c8c4: 9202 str r2, [sp, #8]
|
|
c8c6: 464a mov r2, r9
|
|
c8c8: 9201 str r2, [sp, #4]
|
|
c8ca: 9000 str r0, [sp, #0]
|
|
c8cc: 9b05 ldr r3, [sp, #20]
|
|
c8ce: 466a mov r2, sp
|
|
c8d0: 8b92 ldrh r2, [r2, #28]
|
|
c8d2: 0021 movs r1, r4
|
|
c8d4: 9804 ldr r0, [sp, #16]
|
|
c8d6: 4d91 ldr r5, [pc, #580] ; (cb1c <lv_draw_rect+0x1f58>)
|
|
c8d8: 47a8 blx r5
|
|
if(fill_area2.y2 > coords->y2 - dsc->border_width) {
|
|
c8da: 2306 movs r3, #6
|
|
c8dc: 5ee2 ldrsh r2, [r4, r3]
|
|
c8de: 2106 movs r1, #6
|
|
c8e0: 5e73 ldrsh r3, [r6, r1]
|
|
c8e2: 990c ldr r1, [sp, #48] ; 0x30
|
|
c8e4: 2010 movs r0, #16
|
|
c8e6: 5e09 ldrsh r1, [r1, r0]
|
|
c8e8: 1a5b subs r3, r3, r1
|
|
c8ea: 429a cmp r2, r3
|
|
c8ec: dd96 ble.n c81c <lv_draw_rect+0x1c58>
|
|
fill_area2.x1 = coords->x1 + rout;
|
|
c8ee: 8833 ldrh r3, [r6, #0]
|
|
c8f0: 4453 add r3, sl
|
|
c8f2: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = coords->x2 - rout;
|
|
c8f4: 88b3 ldrh r3, [r6, #4]
|
|
c8f6: 4652 mov r2, sl
|
|
c8f8: 1a9b subs r3, r3, r2
|
|
c8fa: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
c8fc: 9b06 ldr r3, [sp, #24]
|
|
c8fe: 9302 str r3, [sp, #8]
|
|
c900: 464b mov r3, r9
|
|
c902: 9301 str r3, [sp, #4]
|
|
c904: 2301 movs r3, #1
|
|
c906: 9300 str r3, [sp, #0]
|
|
c908: 2300 movs r3, #0
|
|
c90a: 466a mov r2, sp
|
|
c90c: 8b92 ldrh r2, [r2, #28]
|
|
c90e: 0021 movs r1, r4
|
|
c910: 9804 ldr r0, [sp, #16]
|
|
c912: 4d82 ldr r5, [pc, #520] ; (cb1c <lv_draw_rect+0x1f58>)
|
|
c914: 47a8 blx r5
|
|
c916: e781 b.n c81c <lv_draw_rect+0x1c58>
|
|
c918: 0032 movs r2, r6
|
|
c91a: 464e mov r6, r9
|
|
c91c: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
c91e: 469b mov fp, r3
|
|
c920: 4691 mov r9, r2
|
|
fill_area.y1 = coords->y1 + corner_size + 1;
|
|
c922: 466b mov r3, sp
|
|
c924: 8e99 ldrh r1, [r3, #52] ; 0x34
|
|
c926: ac1c add r4, sp, #112 ; 0x70
|
|
c928: 464b mov r3, r9
|
|
c92a: 885a ldrh r2, [r3, #2]
|
|
c92c: 3201 adds r2, #1
|
|
c92e: 188a adds r2, r1, r2
|
|
c930: 8062 strh r2, [r4, #2]
|
|
fill_area.y2 = coords->y2 - corner_size - 1;
|
|
c932: 88db ldrh r3, [r3, #6]
|
|
c934: 3b01 subs r3, #1
|
|
c936: 1a5b subs r3, r3, r1
|
|
c938: 80e3 strh r3, [r4, #6]
|
|
fill_area.x1 = coords->x1;
|
|
c93a: 464b mov r3, r9
|
|
c93c: 2200 movs r2, #0
|
|
c93e: 5e9b ldrsh r3, [r3, r2]
|
|
c940: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = coords->x1 + dsc->border_width - 1;
|
|
c942: 465a mov r2, fp
|
|
c944: 8a12 ldrh r2, [r2, #16]
|
|
c946: 3a01 subs r2, #1
|
|
c948: 189b adds r3, r3, r2
|
|
c94a: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
c94c: 9b06 ldr r3, [sp, #24]
|
|
c94e: 9302 str r3, [sp, #8]
|
|
c950: 9601 str r6, [sp, #4]
|
|
c952: 2701 movs r7, #1
|
|
c954: 9700 str r7, [sp, #0]
|
|
c956: 2300 movs r3, #0
|
|
c958: 466a mov r2, sp
|
|
c95a: 2144 movs r1, #68 ; 0x44
|
|
c95c: 1852 adds r2, r2, r1
|
|
c95e: 8812 ldrh r2, [r2, #0]
|
|
c960: 0021 movs r1, r4
|
|
c962: 9804 ldr r0, [sp, #16]
|
|
c964: 4d6d ldr r5, [pc, #436] ; (cb1c <lv_draw_rect+0x1f58>)
|
|
c966: 47a8 blx r5
|
|
fill_area.x1 = coords->x2 - dsc->border_width + 1;
|
|
c968: 464a mov r2, r9
|
|
c96a: 2104 movs r1, #4
|
|
c96c: 5e52 ldrsh r2, [r2, r1]
|
|
c96e: 4659 mov r1, fp
|
|
c970: 8a0b ldrh r3, [r1, #16]
|
|
c972: 1ad3 subs r3, r2, r3
|
|
c974: 3301 adds r3, #1
|
|
c976: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = coords->x2;
|
|
c978: 80a2 strh r2, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
c97a: 9b06 ldr r3, [sp, #24]
|
|
c97c: 9302 str r3, [sp, #8]
|
|
c97e: 9601 str r6, [sp, #4]
|
|
c980: 9700 str r7, [sp, #0]
|
|
c982: 2300 movs r3, #0
|
|
c984: 466a mov r2, sp
|
|
c986: 2144 movs r1, #68 ; 0x44
|
|
c988: 1852 adds r2, r2, r1
|
|
c98a: 8812 ldrh r2, [r2, #0]
|
|
c98c: 0021 movs r1, r4
|
|
c98e: 9804 ldr r0, [sp, #16]
|
|
c990: 47a8 blx r5
|
|
lv_draw_mask_remove_id(mask_rin_id);
|
|
c992: 9810 ldr r0, [sp, #64] ; 0x40
|
|
c994: 4c64 ldr r4, [pc, #400] ; (cb28 <lv_draw_rect+0x1f64>)
|
|
c996: 47a0 blx r4
|
|
lv_draw_mask_remove_id(mask_rout_id);
|
|
c998: 980f ldr r0, [sp, #60] ; 0x3c
|
|
c99a: 47a0 blx r4
|
|
_lv_mem_buf_release(mask_buf);
|
|
c99c: 9805 ldr r0, [sp, #20]
|
|
c99e: 4b63 ldr r3, [pc, #396] ; (cb2c <lv_draw_rect+0x1f68>)
|
|
c9a0: 4798 blx r3
|
|
c9a2: f7ff f882 bl baaa <lv_draw_rect+0xee6>
|
|
fill_area.x1 = coords->x1;
|
|
c9a6: 464b mov r3, r9
|
|
c9a8: 2100 movs r1, #0
|
|
c9aa: 5e59 ldrsh r1, [r3, r1]
|
|
c9ac: a81c add r0, sp, #112 ; 0x70
|
|
c9ae: 8001 strh r1, [r0, #0]
|
|
fill_area.x2 = coords->x2;
|
|
c9b0: 464b mov r3, r9
|
|
c9b2: 2204 movs r2, #4
|
|
c9b4: 5e9a ldrsh r2, [r3, r2]
|
|
c9b6: 8082 strh r2, [r0, #4]
|
|
fill_area.y1 = disp_area->y1 + draw_area.y1;
|
|
c9b8: ab18 add r3, sp, #96 ; 0x60
|
|
c9ba: 2402 movs r4, #2
|
|
c9bc: 5f1c ldrsh r4, [r3, r4]
|
|
c9be: 8a7b ldrh r3, [r7, #18]
|
|
c9c0: 191b adds r3, r3, r4
|
|
c9c2: b21b sxth r3, r3
|
|
c9c4: 8043 strh r3, [r0, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
c9c6: 80c3 strh r3, [r0, #6]
|
|
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
|
|
c9c8: 465b mov r3, fp
|
|
c9ca: 2012 movs r0, #18
|
|
c9cc: 5e1b ldrsh r3, [r3, r0]
|
|
c9ce: 2b04 cmp r3, #4
|
|
c9d0: d02b beq.n ca2a <lv_draw_rect+0x1e66>
|
|
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
|
|
c9d2: 2b08 cmp r3, #8
|
|
c9d4: d045 beq.n ca62 <lv_draw_rect+0x1e9e>
|
|
volatile bool top_only = false;
|
|
c9d6: 2200 movs r2, #0
|
|
c9d8: 2116 movs r1, #22
|
|
c9da: a80e add r0, sp, #56 ; 0x38
|
|
c9dc: 4684 mov ip, r0
|
|
c9de: 4461 add r1, ip
|
|
c9e0: 700a strb r2, [r1, #0]
|
|
volatile bool bottom_only = false;
|
|
c9e2: 2117 movs r1, #23
|
|
c9e4: 4461 add r1, ip
|
|
c9e6: 700a strb r2, [r1, #0]
|
|
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
|
|
c9e8: 2b02 cmp r3, #2
|
|
c9ea: d12c bne.n ca46 <lv_draw_rect+0x1e82>
|
|
c9ec: 3201 adds r2, #1
|
|
c9ee: 3314 adds r3, #20
|
|
c9f0: 4463 add r3, ip
|
|
c9f2: 701a strb r2, [r3, #0]
|
|
volatile bool normal = !top_only && !bottom_only ? true : false;
|
|
c9f4: 2316 movs r3, #22
|
|
c9f6: aa0e add r2, sp, #56 ; 0x38
|
|
c9f8: 4694 mov ip, r2
|
|
c9fa: 4463 add r3, ip
|
|
c9fc: 781b ldrb r3, [r3, #0]
|
|
c9fe: 2b00 cmp r3, #0
|
|
ca00: d104 bne.n ca0c <lv_draw_rect+0x1e48>
|
|
ca02: 3317 adds r3, #23
|
|
ca04: 4463 add r3, ip
|
|
ca06: 781b ldrb r3, [r3, #0]
|
|
ca08: 2501 movs r5, #1
|
|
ca0a: 405d eors r5, r3
|
|
ca0c: 2301 movs r3, #1
|
|
ca0e: 401d ands r5, r3
|
|
ca10: ab14 add r3, sp, #80 ; 0x50
|
|
ca12: 701d strb r5, [r3, #0]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
ca14: 0025 movs r5, r4
|
|
ca16: ab18 add r3, sp, #96 ; 0x60
|
|
ca18: 2206 movs r2, #6
|
|
ca1a: 5e9b ldrsh r3, [r3, r2]
|
|
ca1c: 429c cmp r4, r3
|
|
ca1e: dcb8 bgt.n c992 <lv_draw_rect+0x1dce>
|
|
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
|
|
ca20: ac1c add r4, sp, #112 ; 0x70
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
ca22: 4b3f ldr r3, [pc, #252] ; (cb20 <lv_draw_rect+0x1f5c>)
|
|
ca24: 469a mov sl, r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
ca26: 46b0 mov r8, r6
|
|
ca28: e051 b.n cace <lv_draw_rect+0x1f0a>
|
|
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
|
|
ca2a: 9a0d ldr r2, [sp, #52] ; 0x34
|
|
ca2c: 4694 mov ip, r2
|
|
ca2e: 4461 add r1, ip
|
|
ca30: aa1c add r2, sp, #112 ; 0x70
|
|
ca32: 8091 strh r1, [r2, #4]
|
|
volatile bool top_only = false;
|
|
ca34: 2200 movs r2, #0
|
|
ca36: 2116 movs r1, #22
|
|
ca38: a80e add r0, sp, #56 ; 0x38
|
|
ca3a: 4684 mov ip, r0
|
|
ca3c: 4461 add r1, ip
|
|
ca3e: 700a strb r2, [r1, #0]
|
|
volatile bool bottom_only = false;
|
|
ca40: 2117 movs r1, #23
|
|
ca42: 4461 add r1, ip
|
|
ca44: 700a strb r2, [r1, #0]
|
|
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
|
|
ca46: 2b01 cmp r3, #1
|
|
ca48: d010 beq.n ca6c <lv_draw_rect+0x1ea8>
|
|
if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) {
|
|
ca4a: 2b03 cmp r3, #3
|
|
ca4c: d1d2 bne.n c9f4 <lv_draw_rect+0x1e30>
|
|
top_only = true;
|
|
ca4e: 3b02 subs r3, #2
|
|
ca50: 2216 movs r2, #22
|
|
ca52: a90e add r1, sp, #56 ; 0x38
|
|
ca54: 468c mov ip, r1
|
|
ca56: 4462 add r2, ip
|
|
ca58: 7013 strb r3, [r2, #0]
|
|
bottom_only = true;
|
|
ca5a: 2217 movs r2, #23
|
|
ca5c: 4462 add r2, ip
|
|
ca5e: 7013 strb r3, [r2, #0]
|
|
ca60: e7c8 b.n c9f4 <lv_draw_rect+0x1e30>
|
|
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
|
|
ca62: 990d ldr r1, [sp, #52] ; 0x34
|
|
ca64: 1a52 subs r2, r2, r1
|
|
ca66: a91c add r1, sp, #112 ; 0x70
|
|
ca68: 800a strh r2, [r1, #0]
|
|
ca6a: e7e3 b.n ca34 <lv_draw_rect+0x1e70>
|
|
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
|
|
ca6c: 2201 movs r2, #1
|
|
ca6e: 3316 adds r3, #22
|
|
ca70: a90e add r1, sp, #56 ; 0x38
|
|
ca72: 468c mov ip, r1
|
|
ca74: 4463 add r3, ip
|
|
ca76: 701a strb r2, [r3, #0]
|
|
ca78: e7bc b.n c9f4 <lv_draw_rect+0x1e30>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
ca7a: 990b ldr r1, [sp, #44] ; 0x2c
|
|
ca7c: 9e05 ldr r6, [sp, #20]
|
|
ca7e: 0030 movs r0, r6
|
|
ca80: 47d0 blx sl
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
ca82: 8a7a ldrh r2, [r7, #18]
|
|
ca84: 1952 adds r2, r2, r5
|
|
ca86: b212 sxth r2, r2
|
|
ca88: 8a39 ldrh r1, [r7, #16]
|
|
ca8a: ab0e add r3, sp, #56 ; 0x38
|
|
ca8c: 8d1b ldrh r3, [r3, #40] ; 0x28
|
|
ca8e: 18c9 adds r1, r1, r3
|
|
ca90: b209 sxth r1, r1
|
|
ca92: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
ca94: 9605 str r6, [sp, #20]
|
|
ca96: 0030 movs r0, r6
|
|
ca98: 4e22 ldr r6, [pc, #136] ; (cb24 <lv_draw_rect+0x1f60>)
|
|
ca9a: 47b0 blx r6
|
|
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
|
|
ca9c: 9a06 ldr r2, [sp, #24]
|
|
ca9e: 9202 str r2, [sp, #8]
|
|
caa0: 4642 mov r2, r8
|
|
caa2: 9201 str r2, [sp, #4]
|
|
caa4: 9000 str r0, [sp, #0]
|
|
caa6: 9b05 ldr r3, [sp, #20]
|
|
caa8: 466a mov r2, sp
|
|
caaa: 8b92 ldrh r2, [r2, #28]
|
|
caac: 0021 movs r1, r4
|
|
caae: 9804 ldr r0, [sp, #16]
|
|
cab0: 4e1a ldr r6, [pc, #104] ; (cb1c <lv_draw_rect+0x1f58>)
|
|
cab2: 47b0 blx r6
|
|
fill_area.y1++;
|
|
cab4: 8863 ldrh r3, [r4, #2]
|
|
cab6: 3301 adds r3, #1
|
|
cab8: 8063 strh r3, [r4, #2]
|
|
fill_area.y2++;
|
|
caba: 88e3 ldrh r3, [r4, #6]
|
|
cabc: 3301 adds r3, #1
|
|
cabe: 80e3 strh r3, [r4, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
cac0: 3501 adds r5, #1
|
|
cac2: ab0e add r3, sp, #56 ; 0x38
|
|
cac4: 222e movs r2, #46 ; 0x2e
|
|
cac6: 5e9b ldrsh r3, [r3, r2]
|
|
cac8: 429d cmp r5, r3
|
|
caca: dd00 ble.n cace <lv_draw_rect+0x1f0a>
|
|
cacc: e761 b.n c992 <lv_draw_rect+0x1dce>
|
|
if(normal ||
|
|
cace: ab14 add r3, sp, #80 ; 0x50
|
|
cad0: 781b ldrb r3, [r3, #0]
|
|
cad2: 2b00 cmp r3, #0
|
|
cad4: d1d1 bne.n ca7a <lv_draw_rect+0x1eb6>
|
|
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
|
|
cad6: 3316 adds r3, #22
|
|
cad8: aa0e add r2, sp, #56 ; 0x38
|
|
cada: 4694 mov ip, r2
|
|
cadc: 4463 add r3, ip
|
|
cade: 781b ldrb r3, [r3, #0]
|
|
if(normal ||
|
|
cae0: 2b00 cmp r3, #0
|
|
cae2: d009 beq.n caf8 <lv_draw_rect+0x1f34>
|
|
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
|
|
cae4: 2302 movs r3, #2
|
|
cae6: 5ee2 ldrsh r2, [r4, r3]
|
|
cae8: 464b mov r3, r9
|
|
caea: 2102 movs r1, #2
|
|
caec: 5e5b ldrsh r3, [r3, r1]
|
|
caee: 990d ldr r1, [sp, #52] ; 0x34
|
|
caf0: 468c mov ip, r1
|
|
caf2: 4463 add r3, ip
|
|
caf4: 429a cmp r2, r3
|
|
caf6: ddc0 ble.n ca7a <lv_draw_rect+0x1eb6>
|
|
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
|
|
caf8: 2317 movs r3, #23
|
|
cafa: aa0e add r2, sp, #56 ; 0x38
|
|
cafc: 4694 mov ip, r2
|
|
cafe: 4463 add r3, ip
|
|
cb00: 781b ldrb r3, [r3, #0]
|
|
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
|
|
cb02: 2b00 cmp r3, #0
|
|
cb04: d0d6 beq.n cab4 <lv_draw_rect+0x1ef0>
|
|
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
|
|
cb06: 2302 movs r3, #2
|
|
cb08: 5ee2 ldrsh r2, [r4, r3]
|
|
cb0a: 464b mov r3, r9
|
|
cb0c: 2106 movs r1, #6
|
|
cb0e: 5e5b ldrsh r3, [r3, r1]
|
|
cb10: 990d ldr r1, [sp, #52] ; 0x34
|
|
cb12: 1a5b subs r3, r3, r1
|
|
cb14: 429a cmp r2, r3
|
|
cb16: dbcd blt.n cab4 <lv_draw_rect+0x1ef0>
|
|
cb18: e7af b.n ca7a <lv_draw_rect+0x1eb6>
|
|
cb1a: 46c0 nop ; (mov r8, r8)
|
|
cb1c: 00005c6d .word 0x00005c6d
|
|
cb20: 000110f1 .word 0x000110f1
|
|
cb24: 0000a625 .word 0x0000a625
|
|
cb28: 0000a679 .word 0x0000a679
|
|
cb2c: 00010bd5 .word 0x00010bd5
|
|
|
|
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,
|
|
cb30: 234c movs r3, #76 ; 0x4c
|
|
cb32: 4698 mov r8, r3
|
|
cb34: 465b mov r3, fp
|
|
cb36: 4642 mov r2, r8
|
|
cb38: 5e9b ldrsh r3, [r3, r2]
|
|
cb3a: ad1c add r5, sp, #112 ; 0x70
|
|
cb3c: 2600 movs r6, #0
|
|
cb3e: 9602 str r6, [sp, #8]
|
|
cb40: 4abc ldr r2, [pc, #752] ; (ce34 <lv_draw_rect+0x2270>)
|
|
cb42: 9201 str r2, [sp, #4]
|
|
cb44: 465a mov r2, fp
|
|
cb46: 204e movs r0, #78 ; 0x4e
|
|
cb48: 5e12 ldrsh r2, [r2, r0]
|
|
cb4a: 9200 str r2, [sp, #0]
|
|
cb4c: 465a mov r2, fp
|
|
cb4e: 6c12 ldr r2, [r2, #64] ; 0x40
|
|
cb50: 0028 movs r0, r5
|
|
cb52: 4cb9 ldr r4, [pc, #740] ; (ce38 <lv_draw_rect+0x2274>)
|
|
cb54: 47a0 blx r4
|
|
LV_TXT_FLAG_NONE);
|
|
|
|
lv_area_t value_area;
|
|
value_area.x1 = 0;
|
|
cb56: ac22 add r4, sp, #136 ; 0x88
|
|
cb58: 8026 strh r6, [r4, #0]
|
|
value_area.y1 = 0;
|
|
cb5a: 8066 strh r6, [r4, #2]
|
|
value_area.x2 = s.x - 1;
|
|
cb5c: 882b ldrh r3, [r5, #0]
|
|
cb5e: 3b01 subs r3, #1
|
|
cb60: 80a3 strh r3, [r4, #4]
|
|
value_area.y2 = s.y - 1;
|
|
cb62: 886b ldrh r3, [r5, #2]
|
|
cb64: 3b01 subs r3, #1
|
|
cb66: 80e3 strh r3, [r4, #6]
|
|
|
|
lv_point_t p_align;
|
|
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
|
|
cb68: ad1e add r5, sp, #120 ; 0x78
|
|
cb6a: 2350 movs r3, #80 ; 0x50
|
|
cb6c: 465a mov r2, fp
|
|
cb6e: 5cd2 ldrb r2, [r2, r3]
|
|
cb70: 002b movs r3, r5
|
|
cb72: 0021 movs r1, r4
|
|
cb74: 4648 mov r0, r9
|
|
cb76: 4fb1 ldr r7, [pc, #708] ; (ce3c <lv_draw_rect+0x2278>)
|
|
cb78: 47b8 blx r7
|
|
|
|
value_area.x1 += p_align.x + dsc->value_ofs_x;
|
|
cb7a: 882a ldrh r2, [r5, #0]
|
|
cb7c: 2348 movs r3, #72 ; 0x48
|
|
cb7e: 4659 mov r1, fp
|
|
cb80: 5acb ldrh r3, [r1, r3]
|
|
cb82: 18d2 adds r2, r2, r3
|
|
cb84: b292 uxth r2, r2
|
|
cb86: 8823 ldrh r3, [r4, #0]
|
|
cb88: 18d3 adds r3, r2, r3
|
|
cb8a: 8023 strh r3, [r4, #0]
|
|
value_area.y1 += p_align.y + dsc->value_ofs_y;
|
|
cb8c: 886b ldrh r3, [r5, #2]
|
|
cb8e: 214a movs r1, #74 ; 0x4a
|
|
cb90: 4658 mov r0, fp
|
|
cb92: 5a41 ldrh r1, [r0, r1]
|
|
cb94: 185b adds r3, r3, r1
|
|
cb96: b29b uxth r3, r3
|
|
cb98: 8861 ldrh r1, [r4, #2]
|
|
cb9a: 1859 adds r1, r3, r1
|
|
cb9c: 8061 strh r1, [r4, #2]
|
|
value_area.x2 += p_align.x + dsc->value_ofs_x;
|
|
cb9e: 88a1 ldrh r1, [r4, #4]
|
|
cba0: 1852 adds r2, r2, r1
|
|
cba2: 80a2 strh r2, [r4, #4]
|
|
value_area.y2 += p_align.y + dsc->value_ofs_y;
|
|
cba4: 88e2 ldrh r2, [r4, #6]
|
|
cba6: 189b adds r3, r3, r2
|
|
cba8: 80e3 strh r3, [r4, #6]
|
|
|
|
lv_draw_label_dsc_t label_dsc;
|
|
lv_draw_label_dsc_init(&label_dsc);
|
|
cbaa: ad29 add r5, sp, #164 ; 0xa4
|
|
cbac: 0028 movs r0, r5
|
|
cbae: 4ba4 ldr r3, [pc, #656] ; (ce40 <lv_draw_rect+0x227c>)
|
|
cbb0: 4798 blx r3
|
|
label_dsc.font = dsc->value_font;
|
|
cbb2: 465b mov r3, fp
|
|
cbb4: 6c1b ldr r3, [r3, #64] ; 0x40
|
|
cbb6: 606b str r3, [r5, #4]
|
|
label_dsc.letter_space = dsc->value_letter_space;
|
|
cbb8: 465b mov r3, fp
|
|
cbba: 4642 mov r2, r8
|
|
cbbc: 5a9b ldrh r3, [r3, r2]
|
|
cbbe: 81ab strh r3, [r5, #12]
|
|
label_dsc.line_space = dsc->value_line_space;
|
|
cbc0: 465b mov r3, fp
|
|
cbc2: 3202 adds r2, #2
|
|
cbc4: 5a9b ldrh r3, [r3, r2]
|
|
cbc6: 816b strh r3, [r5, #10]
|
|
label_dsc.color = dsc->value_color;
|
|
cbc8: 2346 movs r3, #70 ; 0x46
|
|
cbca: 465a mov r2, fp
|
|
cbcc: 5ad3 ldrh r3, [r2, r3]
|
|
cbce: 802b strh r3, [r5, #0]
|
|
label_dsc.opa = dsc->value_opa;
|
|
cbd0: 2344 movs r3, #68 ; 0x44
|
|
cbd2: 5cd3 ldrb r3, [r2, r3]
|
|
cbd4: 722b strb r3, [r5, #8]
|
|
|
|
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
|
|
cbd6: 9600 str r6, [sp, #0]
|
|
cbd8: 6bd3 ldr r3, [r2, #60] ; 0x3c
|
|
cbda: 002a movs r2, r5
|
|
cbdc: 9904 ldr r1, [sp, #16]
|
|
cbde: 0020 movs r0, r4
|
|
cbe0: 4c98 ldr r4, [pc, #608] ; (ce44 <lv_draw_rect+0x2280>)
|
|
cbe2: 47a0 blx r4
|
|
cbe4: f7fe ff6c bl bac0 <lv_draw_rect+0xefc>
|
|
int32_t rin = dsc->radius;
|
|
cbe8: 9b06 ldr r3, [sp, #24]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
cbea: 3701 adds r7, #1
|
|
cbec: 4652 mov r2, sl
|
|
cbee: 1aba subs r2, r7, r2
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
cbf0: 3501 adds r5, #1
|
|
cbf2: 9907 ldr r1, [sp, #28]
|
|
cbf4: 1a69 subs r1, r5, r1
|
|
int32_t inner_h = lv_area_get_height(&area_inner);
|
|
cbf6: b209 sxth r1, r1
|
|
int32_t short_side = LV_MATH_MIN(inner_w, inner_h);
|
|
cbf8: b212 sxth r2, r2
|
|
cbfa: 428a cmp r2, r1
|
|
cbfc: dd00 ble.n cc00 <lv_draw_rect+0x203c>
|
|
cbfe: 000a movs r2, r1
|
|
if(rin > short_side >> 1) rin = short_side >> 1;
|
|
cc00: 1052 asrs r2, r2, #1
|
|
cc02: 429a cmp r2, r3
|
|
cc04: dd00 ble.n cc08 <lv_draw_rect+0x2044>
|
|
cc06: 9a06 ldr r2, [sp, #24]
|
|
int32_t rout = rin + dsc->outline_width;
|
|
cc08: 9b05 ldr r3, [sp, #20]
|
|
cc0a: 1899 adds r1, r3, r2
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
cc0c: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
cc0e: 3301 adds r3, #1
|
|
cc10: 9808 ldr r0, [sp, #32]
|
|
cc12: 1a1b subs r3, r3, r0
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
cc14: 3401 adds r4, #1
|
|
cc16: 980b ldr r0, [sp, #44] ; 0x2c
|
|
cc18: 1a20 subs r0, r4, r0
|
|
int32_t coords_out_h = lv_area_get_height(&area_outer);
|
|
cc1a: b200 sxth r0, r0
|
|
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
|
|
cc1c: b21b sxth r3, r3
|
|
cc1e: 4283 cmp r3, r0
|
|
cc20: dd00 ble.n cc24 <lv_draw_rect+0x2060>
|
|
cc22: 0003 movs r3, r0
|
|
if(rout > short_side >> 1) rout = short_side >> 1;
|
|
cc24: 105b asrs r3, r3, #1
|
|
cc26: 9307 str r3, [sp, #28]
|
|
cc28: 428b cmp r3, r1
|
|
cc2a: dd00 ble.n cc2e <lv_draw_rect+0x206a>
|
|
cc2c: 9107 str r1, [sp, #28]
|
|
draw_area.x1 -= disp_area->x1;
|
|
cc2e: 464b mov r3, r9
|
|
cc30: 8a1e ldrh r6, [r3, #16]
|
|
cc32: a91a add r1, sp, #104 ; 0x68
|
|
cc34: 880b ldrh r3, [r1, #0]
|
|
cc36: 1b9b subs r3, r3, r6
|
|
cc38: b298 uxth r0, r3
|
|
cc3a: 8008 strh r0, [r1, #0]
|
|
draw_area.y1 -= disp_area->y1;
|
|
cc3c: 464b mov r3, r9
|
|
cc3e: 8a5c ldrh r4, [r3, #18]
|
|
cc40: 884d ldrh r5, [r1, #2]
|
|
cc42: 1b2d subs r5, r5, r4
|
|
cc44: 804d strh r5, [r1, #2]
|
|
draw_area.x2 -= disp_area->x1;
|
|
cc46: 888b ldrh r3, [r1, #4]
|
|
cc48: 1b9b subs r3, r3, r6
|
|
cc4a: b29b uxth r3, r3
|
|
cc4c: 808b strh r3, [r1, #4]
|
|
draw_area.y2 -= disp_area->y1;
|
|
cc4e: 88cd ldrh r5, [r1, #6]
|
|
cc50: 1b2c subs r4, r5, r4
|
|
cc52: 80cc strh r4, [r1, #6]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
cc54: 3301 adds r3, #1
|
|
cc56: 1a1b subs r3, r3, r0
|
|
cc58: b21b sxth r3, r3
|
|
cc5a: 001e movs r6, r3
|
|
cc5c: 9308 str r3, [sp, #32]
|
|
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
|
|
cc5e: b212 sxth r2, r2
|
|
cc60: 2301 movs r3, #1
|
|
cc62: a916 add r1, sp, #88 ; 0x58
|
|
cc64: a822 add r0, sp, #136 ; 0x88
|
|
cc66: 4d78 ldr r5, [pc, #480] ; (ce48 <lv_draw_rect+0x2284>)
|
|
cc68: 47a8 blx r5
|
|
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
|
|
cc6a: 2100 movs r1, #0
|
|
cc6c: a822 add r0, sp, #136 ; 0x88
|
|
cc6e: 4c77 ldr r4, [pc, #476] ; (ce4c <lv_draw_rect+0x2288>)
|
|
cc70: 47a0 blx r4
|
|
cc72: 900e str r0, [sp, #56] ; 0x38
|
|
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
|
|
cc74: 9f07 ldr r7, [sp, #28]
|
|
cc76: b23a sxth r2, r7
|
|
cc78: 2300 movs r3, #0
|
|
cc7a: a918 add r1, sp, #96 ; 0x60
|
|
cc7c: a829 add r0, sp, #164 ; 0xa4
|
|
cc7e: 47a8 blx r5
|
|
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
|
|
cc80: 2100 movs r1, #0
|
|
cc82: a829 add r0, sp, #164 ; 0xa4
|
|
cc84: 47a0 blx r4
|
|
cc86: 900f str r0, [sp, #60] ; 0x3c
|
|
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
|
|
cc88: 9609 str r6, [sp, #36] ; 0x24
|
|
cc8a: 0030 movs r0, r6
|
|
cc8c: 4b70 ldr r3, [pc, #448] ; (ce50 <lv_draw_rect+0x228c>)
|
|
cc8e: 4798 blx r3
|
|
cc90: 9005 str r0, [sp, #20]
|
|
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
|
|
cc92: 465b mov r3, fp
|
|
cc94: 2218 movs r2, #24
|
|
cc96: 5e9b ldrsh r3, [r3, r2]
|
|
lv_color_t color = dsc->outline_color;
|
|
cc98: 465a mov r2, fp
|
|
cc9a: 8ad2 ldrh r2, [r2, #22]
|
|
cc9c: 9211 str r2, [sp, #68] ; 0x44
|
|
cc9e: 4669 mov r1, sp
|
|
cca0: 830a strh r2, [r1, #24]
|
|
lv_blend_mode_t blend_mode = dsc->outline_blend_mode;
|
|
cca2: 465a mov r2, fp
|
|
cca4: 7f52 ldrb r2, [r2, #29]
|
|
cca6: 4692 mov sl, r2
|
|
if(simple_mode) {
|
|
cca8: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ccaa: 2a00 cmp r2, #0
|
|
ccac: d000 beq.n ccb0 <lv_draw_rect+0x20ec>
|
|
ccae: e19b b.n cfe8 <lv_draw_rect+0x2424>
|
|
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
|
|
ccb0: 3b01 subs r3, #1
|
|
ccb2: 9310 str r3, [sp, #64] ; 0x40
|
|
ccb4: 42bb cmp r3, r7
|
|
ccb6: da00 bge.n ccba <lv_draw_rect+0x20f6>
|
|
ccb8: 9710 str r7, [sp, #64] ; 0x40
|
|
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
|
|
ccba: 464b mov r3, r9
|
|
ccbc: 2212 movs r2, #18
|
|
ccbe: 5e9b ldrsh r3, [r3, r2]
|
|
ccc0: a918 add r1, sp, #96 ; 0x60
|
|
ccc2: 2002 movs r0, #2
|
|
ccc4: 5e0a ldrsh r2, [r1, r0]
|
|
ccc6: 1ad2 subs r2, r2, r3
|
|
ccc8: 9810 ldr r0, [sp, #64] ; 0x40
|
|
ccca: 4684 mov ip, r0
|
|
cccc: 4462 add r2, ip
|
|
ccce: 0014 movs r4, r2
|
|
ccd0: 920c str r2, [sp, #48] ; 0x30
|
|
fill_area.x1 = area_outer.x1;
|
|
ccd2: aa1c add r2, sp, #112 ; 0x70
|
|
ccd4: 8808 ldrh r0, [r1, #0]
|
|
ccd6: 8010 strh r0, [r2, #0]
|
|
fill_area.x2 = area_outer.x2;
|
|
ccd8: 8889 ldrh r1, [r1, #4]
|
|
ccda: 8091 strh r1, [r2, #4]
|
|
fill_area.y1 = disp_area->y1 + draw_area.y1;
|
|
ccdc: a91a add r1, sp, #104 ; 0x68
|
|
ccde: 2702 movs r7, #2
|
|
cce0: 5fcf ldrsh r7, [r1, r7]
|
|
cce2: 19db adds r3, r3, r7
|
|
cce4: b21b sxth r3, r3
|
|
cce6: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
cce8: 80d3 strh r3, [r2, #6]
|
|
for(h = draw_area.y1; h <= upper_corner_end; h++) {
|
|
ccea: 42bc cmp r4, r7
|
|
ccec: da00 bge.n ccf0 <lv_draw_rect+0x212c>
|
|
ccee: e082 b.n cdf6 <lv_draw_rect+0x2232>
|
|
fill_area2.y1 = fill_area.y1;
|
|
ccf0: ac1e add r4, sp, #120 ; 0x78
|
|
ccf2: 465b mov r3, fp
|
|
ccf4: 930d str r3, [sp, #52] ; 0x34
|
|
ccf6: e02e b.n cd56 <lv_draw_rect+0x2192>
|
|
fill_area2.x1 = area_outer.x2 - rout + 1;
|
|
ccf8: ab18 add r3, sp, #96 ; 0x60
|
|
ccfa: 2204 movs r2, #4
|
|
ccfc: 5e9b ldrsh r3, [r3, r2]
|
|
ccfe: 1c5a adds r2, r3, #1
|
|
cd00: 1b55 subs r5, r2, r5
|
|
cd02: 8025 strh r5, [r4, #0]
|
|
fill_area2.x2 = area_outer.x2;
|
|
cd04: 80a3 strh r3, [r4, #4]
|
|
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
|
|
cd06: 9a07 ldr r2, [sp, #28]
|
|
cd08: 1a9b subs r3, r3, r2
|
|
cd0a: 3301 adds r3, #1
|
|
cd0c: 464a mov r2, r9
|
|
cd0e: 2110 movs r1, #16
|
|
cd10: 5e52 ldrsh r2, [r2, r1]
|
|
cd12: a90e add r1, sp, #56 ; 0x38
|
|
cd14: 2030 movs r0, #48 ; 0x30
|
|
cd16: 5e09 ldrsh r1, [r1, r0]
|
|
cd18: 1852 adds r2, r2, r1
|
|
cd1a: 1a9b subs r3, r3, r2
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
|
|
cd1c: 43da mvns r2, r3
|
|
cd1e: 17d2 asrs r2, r2, #31
|
|
cd20: 4013 ands r3, r2
|
|
cd22: 9a05 ldr r2, [sp, #20]
|
|
cd24: 4694 mov ip, r2
|
|
cd26: 4463 add r3, ip
|
|
cd28: 4652 mov r2, sl
|
|
cd2a: 9202 str r2, [sp, #8]
|
|
cd2c: 4642 mov r2, r8
|
|
cd2e: 9201 str r2, [sp, #4]
|
|
cd30: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
cd32: 9200 str r2, [sp, #0]
|
|
cd34: 466a mov r2, sp
|
|
cd36: 8b12 ldrh r2, [r2, #24]
|
|
cd38: 0021 movs r1, r4
|
|
cd3a: 9804 ldr r0, [sp, #16]
|
|
cd3c: 4d45 ldr r5, [pc, #276] ; (ce54 <lv_draw_rect+0x2290>)
|
|
cd3e: 47a8 blx r5
|
|
fill_area.y1++;
|
|
cd40: ab1c add r3, sp, #112 ; 0x70
|
|
cd42: 885a ldrh r2, [r3, #2]
|
|
cd44: 3201 adds r2, #1
|
|
cd46: 805a strh r2, [r3, #2]
|
|
fill_area.y2++;
|
|
cd48: 88da ldrh r2, [r3, #6]
|
|
cd4a: 3201 adds r2, #1
|
|
cd4c: 80da strh r2, [r3, #6]
|
|
for(h = draw_area.y1; h <= upper_corner_end; h++) {
|
|
cd4e: 3701 adds r7, #1
|
|
cd50: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
cd52: 42bb cmp r3, r7
|
|
cd54: db4d blt.n cdf2 <lv_draw_rect+0x222e>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
cd56: 9909 ldr r1, [sp, #36] ; 0x24
|
|
cd58: 9e05 ldr r6, [sp, #20]
|
|
cd5a: 0030 movs r0, r6
|
|
cd5c: 4b3e ldr r3, [pc, #248] ; (ce58 <lv_draw_rect+0x2294>)
|
|
cd5e: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
cd60: 464b mov r3, r9
|
|
cd62: 8a5a ldrh r2, [r3, #18]
|
|
cd64: 19d2 adds r2, r2, r7
|
|
cd66: b212 sxth r2, r2
|
|
cd68: 8a19 ldrh r1, [r3, #16]
|
|
cd6a: ab0e add r3, sp, #56 ; 0x38
|
|
cd6c: 8e1b ldrh r3, [r3, #48] ; 0x30
|
|
cd6e: 18c9 adds r1, r1, r3
|
|
cd70: b209 sxth r1, r1
|
|
cd72: 9b08 ldr r3, [sp, #32]
|
|
cd74: 0030 movs r0, r6
|
|
cd76: 4d39 ldr r5, [pc, #228] ; (ce5c <lv_draw_rect+0x2298>)
|
|
cd78: 47a8 blx r5
|
|
cd7a: 900a str r0, [sp, #40] ; 0x28
|
|
fill_area2.y1 = fill_area.y1;
|
|
cd7c: ab1c add r3, sp, #112 ; 0x70
|
|
cd7e: 885a ldrh r2, [r3, #2]
|
|
cd80: 8062 strh r2, [r4, #2]
|
|
fill_area2.y2 = fill_area.y2;
|
|
cd82: 88db ldrh r3, [r3, #6]
|
|
cd84: 80e3 strh r3, [r4, #6]
|
|
fill_area2.x1 = area_outer.x1;
|
|
cd86: ab18 add r3, sp, #96 ; 0x60
|
|
cd88: 930b str r3, [sp, #44] ; 0x2c
|
|
cd8a: 2100 movs r1, #0
|
|
cd8c: 5e5b ldrsh r3, [r3, r1]
|
|
cd8e: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = area_outer.x1 + rout - 1;
|
|
cd90: 466a mov r2, sp
|
|
cd92: 8b95 ldrh r5, [r2, #28]
|
|
cd94: 3b01 subs r3, #1
|
|
cd96: 18eb adds r3, r5, r3
|
|
cd98: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
|
|
cd9a: 4652 mov r2, sl
|
|
cd9c: 9202 str r2, [sp, #8]
|
|
cd9e: 4642 mov r2, r8
|
|
cda0: 9201 str r2, [sp, #4]
|
|
cda2: 9000 str r0, [sp, #0]
|
|
cda4: 0033 movs r3, r6
|
|
cda6: 466a mov r2, sp
|
|
cda8: 8b12 ldrh r2, [r2, #24]
|
|
cdaa: 0021 movs r1, r4
|
|
cdac: 9804 ldr r0, [sp, #16]
|
|
cdae: 4e29 ldr r6, [pc, #164] ; (ce54 <lv_draw_rect+0x2290>)
|
|
cdb0: 47b0 blx r6
|
|
if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) {
|
|
cdb2: 2306 movs r3, #6
|
|
cdb4: 5ee2 ldrsh r2, [r4, r3]
|
|
cdb6: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
cdb8: 2102 movs r1, #2
|
|
cdba: 5e5b ldrsh r3, [r3, r1]
|
|
cdbc: 990d ldr r1, [sp, #52] ; 0x34
|
|
cdbe: 2018 movs r0, #24
|
|
cdc0: 5e09 ldrsh r1, [r1, r0]
|
|
cdc2: 185b adds r3, r3, r1
|
|
cdc4: 429a cmp r2, r3
|
|
cdc6: da97 bge.n ccf8 <lv_draw_rect+0x2134>
|
|
fill_area2.x1 = area_outer.x1 + rout;
|
|
cdc8: aa18 add r2, sp, #96 ; 0x60
|
|
cdca: 8813 ldrh r3, [r2, #0]
|
|
cdcc: 18eb adds r3, r5, r3
|
|
cdce: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = area_outer.x2 - rout;
|
|
cdd0: 8893 ldrh r3, [r2, #4]
|
|
cdd2: 1b5b subs r3, r3, r5
|
|
cdd4: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
cdd6: 4653 mov r3, sl
|
|
cdd8: 9302 str r3, [sp, #8]
|
|
cdda: 4643 mov r3, r8
|
|
cddc: 9301 str r3, [sp, #4]
|
|
cdde: 2301 movs r3, #1
|
|
cde0: 9300 str r3, [sp, #0]
|
|
cde2: 2300 movs r3, #0
|
|
cde4: 466a mov r2, sp
|
|
cde6: 8b12 ldrh r2, [r2, #24]
|
|
cde8: 0021 movs r1, r4
|
|
cdea: 9804 ldr r0, [sp, #16]
|
|
cdec: 4e19 ldr r6, [pc, #100] ; (ce54 <lv_draw_rect+0x2290>)
|
|
cdee: 47b0 blx r6
|
|
cdf0: e782 b.n ccf8 <lv_draw_rect+0x2134>
|
|
cdf2: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
cdf4: 469b mov fp, r3
|
|
int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size;
|
|
cdf6: 464b mov r3, r9
|
|
cdf8: 2212 movs r2, #18
|
|
cdfa: 5e9b ldrsh r3, [r3, r2]
|
|
cdfc: aa18 add r2, sp, #96 ; 0x60
|
|
cdfe: 2706 movs r7, #6
|
|
ce00: 5fd7 ldrsh r7, [r2, r7]
|
|
ce02: 1aff subs r7, r7, r3
|
|
ce04: 9a10 ldr r2, [sp, #64] ; 0x40
|
|
ce06: 1abf subs r7, r7, r2
|
|
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
|
|
ce08: 990c ldr r1, [sp, #48] ; 0x30
|
|
ce0a: 000a movs r2, r1
|
|
ce0c: 42b9 cmp r1, r7
|
|
ce0e: db01 blt.n ce14 <lv_draw_rect+0x2250>
|
|
ce10: 3201 adds r2, #1
|
|
ce12: 0017 movs r7, r2
|
|
fill_area.y1 = disp_area->y1 + lower_corner_end;
|
|
ce14: 19db adds r3, r3, r7
|
|
ce16: b21b sxth r3, r3
|
|
ce18: aa1c add r2, sp, #112 ; 0x70
|
|
ce1a: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
ce1c: 80d3 strh r3, [r2, #6]
|
|
for(h = lower_corner_end; h <= draw_area.y2; h++) {
|
|
ce1e: ab1a add r3, sp, #104 ; 0x68
|
|
ce20: 2206 movs r2, #6
|
|
ce22: 5e9b ldrsh r3, [r3, r2]
|
|
ce24: 429f cmp r7, r3
|
|
ce26: dd00 ble.n ce2a <lv_draw_rect+0x2266>
|
|
ce28: e09a b.n cf60 <lv_draw_rect+0x239c>
|
|
fill_area2.x1 = area_outer.x1;
|
|
ce2a: ac1e add r4, sp, #120 ; 0x78
|
|
ce2c: 465b mov r3, fp
|
|
ce2e: 930b str r3, [sp, #44] ; 0x2c
|
|
ce30: e047 b.n cec2 <lv_draw_rect+0x22fe>
|
|
ce32: 46c0 nop ; (mov r8, r8)
|
|
ce34: 00007c18 .word 0x00007c18
|
|
ce38: 00011ae5 .word 0x00011ae5
|
|
ce3c: 0000ff41 .word 0x0000ff41
|
|
ce40: 000081c5 .word 0x000081c5
|
|
ce44: 00008215 .word 0x00008215
|
|
ce48: 0000a855 .word 0x0000a855
|
|
ce4c: 0000a5ed .word 0x0000a5ed
|
|
ce50: 00010ec1 .word 0x00010ec1
|
|
ce54: 00005c6d .word 0x00005c6d
|
|
ce58: 000110f1 .word 0x000110f1
|
|
ce5c: 0000a625 .word 0x0000a625
|
|
fill_area2.x1 = area_outer.x2 - rout + 1;
|
|
ce60: ab18 add r3, sp, #96 ; 0x60
|
|
ce62: 2204 movs r2, #4
|
|
ce64: 5e9b ldrsh r3, [r3, r2]
|
|
ce66: 1c5a adds r2, r3, #1
|
|
ce68: 1b55 subs r5, r2, r5
|
|
ce6a: 8025 strh r5, [r4, #0]
|
|
fill_area2.x2 = area_outer.x2;
|
|
ce6c: 80a3 strh r3, [r4, #4]
|
|
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
|
|
ce6e: 9a07 ldr r2, [sp, #28]
|
|
ce70: 1a9b subs r3, r3, r2
|
|
ce72: 3301 adds r3, #1
|
|
ce74: 464a mov r2, r9
|
|
ce76: 2110 movs r1, #16
|
|
ce78: 5e52 ldrsh r2, [r2, r1]
|
|
ce7a: a90e add r1, sp, #56 ; 0x38
|
|
ce7c: 2030 movs r0, #48 ; 0x30
|
|
ce7e: 5e09 ldrsh r1, [r1, r0]
|
|
ce80: 1852 adds r2, r2, r1
|
|
ce82: 1a9b subs r3, r3, r2
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
|
|
ce84: 43da mvns r2, r3
|
|
ce86: 17d2 asrs r2, r2, #31
|
|
ce88: 4013 ands r3, r2
|
|
ce8a: 9a05 ldr r2, [sp, #20]
|
|
ce8c: 4694 mov ip, r2
|
|
ce8e: 4463 add r3, ip
|
|
ce90: 4652 mov r2, sl
|
|
ce92: 9202 str r2, [sp, #8]
|
|
ce94: 4642 mov r2, r8
|
|
ce96: 9201 str r2, [sp, #4]
|
|
ce98: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ce9a: 9200 str r2, [sp, #0]
|
|
ce9c: 466a mov r2, sp
|
|
ce9e: 8b12 ldrh r2, [r2, #24]
|
|
cea0: 0021 movs r1, r4
|
|
cea2: 9804 ldr r0, [sp, #16]
|
|
cea4: 4d89 ldr r5, [pc, #548] ; (d0cc <lv_draw_rect+0x2508>)
|
|
cea6: 47a8 blx r5
|
|
fill_area.y1++;
|
|
cea8: ab1c add r3, sp, #112 ; 0x70
|
|
ceaa: 885a ldrh r2, [r3, #2]
|
|
ceac: 3201 adds r2, #1
|
|
ceae: 805a strh r2, [r3, #2]
|
|
fill_area.y2++;
|
|
ceb0: 88da ldrh r2, [r3, #6]
|
|
ceb2: 3201 adds r2, #1
|
|
ceb4: 80da strh r2, [r3, #6]
|
|
for(h = lower_corner_end; h <= draw_area.y2; h++) {
|
|
ceb6: 3701 adds r7, #1
|
|
ceb8: ab0e add r3, sp, #56 ; 0x38
|
|
ceba: 2236 movs r2, #54 ; 0x36
|
|
cebc: 5e9b ldrsh r3, [r3, r2]
|
|
cebe: 429f cmp r7, r3
|
|
cec0: dc4c bgt.n cf5c <lv_draw_rect+0x2398>
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
cec2: 9909 ldr r1, [sp, #36] ; 0x24
|
|
cec4: 9e05 ldr r6, [sp, #20]
|
|
cec6: 0030 movs r0, r6
|
|
cec8: 4b81 ldr r3, [pc, #516] ; (d0d0 <lv_draw_rect+0x250c>)
|
|
ceca: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
cecc: 464b mov r3, r9
|
|
cece: 8a5a ldrh r2, [r3, #18]
|
|
ced0: 19d2 adds r2, r2, r7
|
|
ced2: b212 sxth r2, r2
|
|
ced4: 8a19 ldrh r1, [r3, #16]
|
|
ced6: ab0e add r3, sp, #56 ; 0x38
|
|
ced8: 8e1b ldrh r3, [r3, #48] ; 0x30
|
|
ceda: 18c9 adds r1, r1, r3
|
|
cedc: b209 sxth r1, r1
|
|
cede: 9b08 ldr r3, [sp, #32]
|
|
cee0: 0030 movs r0, r6
|
|
cee2: 4d7c ldr r5, [pc, #496] ; (d0d4 <lv_draw_rect+0x2510>)
|
|
cee4: 47a8 blx r5
|
|
cee6: 900a str r0, [sp, #40] ; 0x28
|
|
fill_area2.x1 = area_outer.x1;
|
|
cee8: ab0e add r3, sp, #56 ; 0x38
|
|
ceea: 2128 movs r1, #40 ; 0x28
|
|
ceec: 5e5b ldrsh r3, [r3, r1]
|
|
ceee: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = area_outer.x1 + rout - 1;
|
|
cef0: 466a mov r2, sp
|
|
cef2: 8b95 ldrh r5, [r2, #28]
|
|
cef4: 3b01 subs r3, #1
|
|
cef6: 18eb adds r3, r5, r3
|
|
cef8: 80a3 strh r3, [r4, #4]
|
|
fill_area2.y1 = fill_area.y1;
|
|
cefa: ab1c add r3, sp, #112 ; 0x70
|
|
cefc: 885a ldrh r2, [r3, #2]
|
|
cefe: 8062 strh r2, [r4, #2]
|
|
fill_area2.y2 = fill_area.y2;
|
|
cf00: 88db ldrh r3, [r3, #6]
|
|
cf02: 80e3 strh r3, [r4, #6]
|
|
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
|
|
cf04: 4652 mov r2, sl
|
|
cf06: 9202 str r2, [sp, #8]
|
|
cf08: 4642 mov r2, r8
|
|
cf0a: 9201 str r2, [sp, #4]
|
|
cf0c: 9000 str r0, [sp, #0]
|
|
cf0e: 0033 movs r3, r6
|
|
cf10: 466a mov r2, sp
|
|
cf12: 8b12 ldrh r2, [r2, #24]
|
|
cf14: 0021 movs r1, r4
|
|
cf16: 9804 ldr r0, [sp, #16]
|
|
cf18: 4e6c ldr r6, [pc, #432] ; (d0cc <lv_draw_rect+0x2508>)
|
|
cf1a: 47b0 blx r6
|
|
if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) {
|
|
cf1c: 2306 movs r3, #6
|
|
cf1e: 5ee2 ldrsh r2, [r4, r3]
|
|
cf20: ab0e add r3, sp, #56 ; 0x38
|
|
cf22: 212e movs r1, #46 ; 0x2e
|
|
cf24: 5e5b ldrsh r3, [r3, r1]
|
|
cf26: 990b ldr r1, [sp, #44] ; 0x2c
|
|
cf28: 2018 movs r0, #24
|
|
cf2a: 5e09 ldrsh r1, [r1, r0]
|
|
cf2c: 1a5b subs r3, r3, r1
|
|
cf2e: 429a cmp r2, r3
|
|
cf30: dd96 ble.n ce60 <lv_draw_rect+0x229c>
|
|
fill_area2.x1 = area_outer.x1 + rout;
|
|
cf32: aa18 add r2, sp, #96 ; 0x60
|
|
cf34: 8813 ldrh r3, [r2, #0]
|
|
cf36: 18eb adds r3, r5, r3
|
|
cf38: 8023 strh r3, [r4, #0]
|
|
fill_area2.x2 = area_outer.x2 - rout;
|
|
cf3a: 8893 ldrh r3, [r2, #4]
|
|
cf3c: 1b5b subs r3, r3, r5
|
|
cf3e: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
cf40: 4653 mov r3, sl
|
|
cf42: 9302 str r3, [sp, #8]
|
|
cf44: 4643 mov r3, r8
|
|
cf46: 9301 str r3, [sp, #4]
|
|
cf48: 2301 movs r3, #1
|
|
cf4a: 9300 str r3, [sp, #0]
|
|
cf4c: 2300 movs r3, #0
|
|
cf4e: 466a mov r2, sp
|
|
cf50: 8b12 ldrh r2, [r2, #24]
|
|
cf52: 0021 movs r1, r4
|
|
cf54: 9804 ldr r0, [sp, #16]
|
|
cf56: 4e5d ldr r6, [pc, #372] ; (d0cc <lv_draw_rect+0x2508>)
|
|
cf58: 47b0 blx r6
|
|
cf5a: e781 b.n ce60 <lv_draw_rect+0x229c>
|
|
cf5c: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
cf5e: 469b mov fp, r3
|
|
fill_area.y1 = area_outer.y1 + corner_size + 1;
|
|
cf60: 466b mov r3, sp
|
|
cf62: 2240 movs r2, #64 ; 0x40
|
|
cf64: 189b adds r3, r3, r2
|
|
cf66: 881b ldrh r3, [r3, #0]
|
|
cf68: ac1c add r4, sp, #112 ; 0x70
|
|
cf6a: ad18 add r5, sp, #96 ; 0x60
|
|
cf6c: 886a ldrh r2, [r5, #2]
|
|
cf6e: 3201 adds r2, #1
|
|
cf70: 189a adds r2, r3, r2
|
|
cf72: 8062 strh r2, [r4, #2]
|
|
fill_area.y2 = area_outer.y2 - corner_size - 1;
|
|
cf74: 88ea ldrh r2, [r5, #6]
|
|
cf76: 3a01 subs r2, #1
|
|
cf78: 1ad3 subs r3, r2, r3
|
|
cf7a: 80e3 strh r3, [r4, #6]
|
|
fill_area.x1 = area_outer.x1;
|
|
cf7c: 2200 movs r2, #0
|
|
cf7e: 5eab ldrsh r3, [r5, r2]
|
|
cf80: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
|
|
cf82: 3b01 subs r3, #1
|
|
cf84: 465a mov r2, fp
|
|
cf86: 8b12 ldrh r2, [r2, #24]
|
|
cf88: 18d3 adds r3, r2, r3
|
|
cf8a: 80a3 strh r3, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
cf8c: 4653 mov r3, sl
|
|
cf8e: 9302 str r3, [sp, #8]
|
|
cf90: 4643 mov r3, r8
|
|
cf92: 9301 str r3, [sp, #4]
|
|
cf94: 2701 movs r7, #1
|
|
cf96: 9700 str r7, [sp, #0]
|
|
cf98: 2300 movs r3, #0
|
|
cf9a: 466a mov r2, sp
|
|
cf9c: 2144 movs r1, #68 ; 0x44
|
|
cf9e: 1852 adds r2, r2, r1
|
|
cfa0: 8812 ldrh r2, [r2, #0]
|
|
cfa2: 0021 movs r1, r4
|
|
cfa4: 9804 ldr r0, [sp, #16]
|
|
cfa6: 4e49 ldr r6, [pc, #292] ; (d0cc <lv_draw_rect+0x2508>)
|
|
cfa8: 47b0 blx r6
|
|
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
|
|
cfaa: 2304 movs r3, #4
|
|
cfac: 5eea ldrsh r2, [r5, r3]
|
|
cfae: 1c53 adds r3, r2, #1
|
|
cfb0: 4659 mov r1, fp
|
|
cfb2: 8b09 ldrh r1, [r1, #24]
|
|
cfb4: 1a5b subs r3, r3, r1
|
|
cfb6: 8023 strh r3, [r4, #0]
|
|
fill_area.x2 = area_outer.x2;
|
|
cfb8: 80a2 strh r2, [r4, #4]
|
|
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
|
|
cfba: 4653 mov r3, sl
|
|
cfbc: 9302 str r3, [sp, #8]
|
|
cfbe: 4643 mov r3, r8
|
|
cfc0: 9301 str r3, [sp, #4]
|
|
cfc2: 9700 str r7, [sp, #0]
|
|
cfc4: 2300 movs r3, #0
|
|
cfc6: 466a mov r2, sp
|
|
cfc8: 2144 movs r1, #68 ; 0x44
|
|
cfca: 1852 adds r2, r2, r1
|
|
cfcc: 8812 ldrh r2, [r2, #0]
|
|
cfce: 0021 movs r1, r4
|
|
cfd0: 9804 ldr r0, [sp, #16]
|
|
cfd2: 47b0 blx r6
|
|
lv_draw_mask_remove_id(mask_rin_id);
|
|
cfd4: 980e ldr r0, [sp, #56] ; 0x38
|
|
cfd6: 4c40 ldr r4, [pc, #256] ; (d0d8 <lv_draw_rect+0x2514>)
|
|
cfd8: 47a0 blx r4
|
|
lv_draw_mask_remove_id(mask_rout_id);
|
|
cfda: 980f ldr r0, [sp, #60] ; 0x3c
|
|
cfdc: 47a0 blx r4
|
|
_lv_mem_buf_release(mask_buf);
|
|
cfde: 9805 ldr r0, [sp, #20]
|
|
cfe0: 4b3e ldr r3, [pc, #248] ; (d0dc <lv_draw_rect+0x2518>)
|
|
cfe2: 4798 blx r3
|
|
cfe4: f7fe fdcf bl bb86 <lv_draw_rect+0xfc2>
|
|
fill_area.x1 = area_outer.x1;
|
|
cfe8: aa1c add r2, sp, #112 ; 0x70
|
|
cfea: ab18 add r3, sp, #96 ; 0x60
|
|
cfec: 8819 ldrh r1, [r3, #0]
|
|
cfee: 8011 strh r1, [r2, #0]
|
|
fill_area.x2 = area_outer.x2;
|
|
cff0: 889b ldrh r3, [r3, #4]
|
|
cff2: 8093 strh r3, [r2, #4]
|
|
fill_area.y1 = disp_area->y1 + draw_area.y1;
|
|
cff4: a91a add r1, sp, #104 ; 0x68
|
|
cff6: 2302 movs r3, #2
|
|
cff8: 5ece ldrsh r6, [r1, r3]
|
|
cffa: 464b mov r3, r9
|
|
cffc: 8a5b ldrh r3, [r3, #18]
|
|
cffe: 199b adds r3, r3, r6
|
|
d000: b21b sxth r3, r3
|
|
d002: 8053 strh r3, [r2, #2]
|
|
fill_area.y2 = fill_area.y1;
|
|
d004: 80d3 strh r3, [r2, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
d006: 2206 movs r2, #6
|
|
d008: 5e8b ldrsh r3, [r1, r2]
|
|
d00a: 429e cmp r6, r3
|
|
d00c: dce2 bgt.n cfd4 <lv_draw_rect+0x2410>
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
d00e: 4b31 ldr r3, [pc, #196] ; (d0d4 <lv_draw_rect+0x2510>)
|
|
d010: 469b mov fp, r3
|
|
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
|
|
d012: 4f2e ldr r7, [pc, #184] ; (d0cc <lv_draw_rect+0x2508>)
|
|
_lv_memset_ff(mask_buf, draw_area_w);
|
|
d014: 9909 ldr r1, [sp, #36] ; 0x24
|
|
d016: 9c05 ldr r4, [sp, #20]
|
|
d018: 0020 movs r0, r4
|
|
d01a: 4b2d ldr r3, [pc, #180] ; (d0d0 <lv_draw_rect+0x250c>)
|
|
d01c: 4798 blx r3
|
|
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
|
|
d01e: 464b mov r3, r9
|
|
d020: 8a5a ldrh r2, [r3, #18]
|
|
d022: 1992 adds r2, r2, r6
|
|
d024: b212 sxth r2, r2
|
|
d026: ad1a add r5, sp, #104 ; 0x68
|
|
d028: 8a19 ldrh r1, [r3, #16]
|
|
d02a: 882b ldrh r3, [r5, #0]
|
|
d02c: 18c9 adds r1, r1, r3
|
|
d02e: b209 sxth r1, r1
|
|
d030: 9b08 ldr r3, [sp, #32]
|
|
d032: 9405 str r4, [sp, #20]
|
|
d034: 0020 movs r0, r4
|
|
d036: 47d8 blx fp
|
|
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
|
|
d038: ac1c add r4, sp, #112 ; 0x70
|
|
d03a: 4652 mov r2, sl
|
|
d03c: 9202 str r2, [sp, #8]
|
|
d03e: 4642 mov r2, r8
|
|
d040: 9201 str r2, [sp, #4]
|
|
d042: 9000 str r0, [sp, #0]
|
|
d044: 9b05 ldr r3, [sp, #20]
|
|
d046: 466a mov r2, sp
|
|
d048: 8b12 ldrh r2, [r2, #24]
|
|
d04a: 0021 movs r1, r4
|
|
d04c: 9804 ldr r0, [sp, #16]
|
|
d04e: 47b8 blx r7
|
|
fill_area.y1++;
|
|
d050: 8863 ldrh r3, [r4, #2]
|
|
d052: 3301 adds r3, #1
|
|
d054: 8063 strh r3, [r4, #2]
|
|
fill_area.y2++;
|
|
d056: 88e3 ldrh r3, [r4, #6]
|
|
d058: 3301 adds r3, #1
|
|
d05a: 80e3 strh r3, [r4, #6]
|
|
for(h = draw_area.y1; h <= draw_area.y2; h++) {
|
|
d05c: 3601 adds r6, #1
|
|
d05e: 2206 movs r2, #6
|
|
d060: 5eab ldrsh r3, [r5, r2]
|
|
d062: 429e cmp r6, r3
|
|
d064: ddd6 ble.n d014 <lv_draw_rect+0x2450>
|
|
d066: e7b5 b.n cfd4 <lv_draw_rect+0x2410>
|
|
lv_opa_t * mask_line = _lv_mem_buf_get(size);
|
|
d068: 9c07 ldr r4, [sp, #28]
|
|
d06a: 940c str r4, [sp, #48] ; 0x30
|
|
d06c: 0020 movs r0, r4
|
|
d06e: 4b1c ldr r3, [pc, #112] ; (d0e0 <lv_draw_rect+0x251c>)
|
|
d070: 4798 blx r3
|
|
d072: 900a str r0, [sp, #40] ; 0x28
|
|
for(y = 0; y < size; y++) {
|
|
d074: 2201 movs r2, #1
|
|
d076: 920d str r2, [sp, #52] ; 0x34
|
|
d078: 2c00 cmp r4, #0
|
|
d07a: dd01 ble.n d080 <lv_draw_rect+0x24bc>
|
|
d07c: f7fd fea3 bl adc6 <lv_draw_rect+0x202>
|
|
_lv_mem_buf_release(mask_line);
|
|
d080: 980a ldr r0, [sp, #40] ; 0x28
|
|
d082: 4b16 ldr r3, [pc, #88] ; (d0dc <lv_draw_rect+0x2518>)
|
|
d084: 4798 blx r3
|
|
for(i = 0; i < size * size; i++) {
|
|
d086: 9f07 ldr r7, [sp, #28]
|
|
d088: 437f muls r7, r7
|
|
d08a: 2f00 cmp r7, #0
|
|
d08c: d101 bne.n d092 <lv_draw_rect+0x24ce>
|
|
d08e: f7fd ff5f bl af50 <lv_draw_rect+0x38c>
|
|
d092: 9a0e ldr r2, [sp, #56] ; 0x38
|
|
d094: 0011 movs r1, r2
|
|
d096: 0078 lsls r0, r7, #1
|
|
d098: 4694 mov ip, r2
|
|
d09a: 4460 add r0, ip
|
|
res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT);
|
|
d09c: 880b ldrh r3, [r1, #0]
|
|
d09e: 099b lsrs r3, r3, #6
|
|
d0a0: 7013 strb r3, [r2, #0]
|
|
d0a2: 3102 adds r1, #2
|
|
d0a4: 3201 adds r2, #1
|
|
for(i = 0; i < size * size; i++) {
|
|
d0a6: 4281 cmp r1, r0
|
|
d0a8: d1f8 bne.n d09c <lv_draw_rect+0x24d8>
|
|
d0aa: f7fd ff51 bl af50 <lv_draw_rect+0x38c>
|
|
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
|
|
d0ae: 465b mov r3, fp
|
|
d0b0: 2200 movs r2, #0
|
|
d0b2: 5e9a ldrsh r2, [r3, r2]
|
|
d0b4: 2300 movs r3, #0
|
|
d0b6: 4649 mov r1, r9
|
|
d0b8: a829 add r0, sp, #164 ; 0xa4
|
|
d0ba: 4c0a ldr r4, [pc, #40] ; (d0e4 <lv_draw_rect+0x2520>)
|
|
d0bc: 47a0 blx r4
|
|
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
|
|
d0be: 2100 movs r1, #0
|
|
d0c0: a829 add r0, sp, #164 ; 0xa4
|
|
d0c2: 4b09 ldr r3, [pc, #36] ; (d0e8 <lv_draw_rect+0x2524>)
|
|
d0c4: 4798 blx r3
|
|
d0c6: 0004 movs r4, r0
|
|
d0c8: f7ff f946 bl c358 <lv_draw_rect+0x1794>
|
|
d0cc: 00005c6d .word 0x00005c6d
|
|
d0d0: 000110f1 .word 0x000110f1
|
|
d0d4: 0000a625 .word 0x0000a625
|
|
d0d8: 0000a679 .word 0x0000a679
|
|
d0dc: 00010bd5 .word 0x00010bd5
|
|
d0e0: 00010ec1 .word 0x00010ec1
|
|
d0e4: 0000a855 .word 0x0000a855
|
|
d0e8: 0000a5ed .word 0x0000a5ed
|
|
|
|
0000d0ec <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)
|
|
{
|
|
d0ec: b5f0 push {r4, r5, r6, r7, lr}
|
|
d0ee: b083 sub sp, #12
|
|
d0f0: 0004 movs r4, r0
|
|
d0f2: 000e movs r6, r1
|
|
d0f4: 0017 movs r7, r2
|
|
lv_color_t p_color = LV_COLOR_BLACK;
|
|
d0f6: aa01 add r2, sp, #4
|
|
d0f8: 7811 ldrb r1, [r2, #0]
|
|
d0fa: 201f movs r0, #31
|
|
d0fc: 4381 bics r1, r0
|
|
d0fe: 7011 strb r1, [r2, #0]
|
|
d100: 8811 ldrh r1, [r2, #0]
|
|
d102: 4840 ldr r0, [pc, #256] ; (d204 <lv_img_buf_get_px_color+0x118>)
|
|
d104: 4001 ands r1, r0
|
|
d106: 8011 strh r1, [r2, #0]
|
|
d108: 2100 movs r1, #0
|
|
d10a: 7051 strb r1, [r2, #1]
|
|
uint8_t * buf_u8 = (uint8_t *)dsc->data;
|
|
d10c: 68a5 ldr r5, [r4, #8]
|
|
|
|
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
|
|
d10e: 7821 ldrb r1, [r4, #0]
|
|
d110: 221f movs r2, #31
|
|
d112: 400a ands r2, r1
|
|
d114: 1f11 subs r1, r2, #4
|
|
d116: 2902 cmp r1, #2
|
|
d118: d90d bls.n d136 <lv_img_buf_get_px_color+0x4a>
|
|
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
|
|
#if LV_COLOR_SIZE == 32
|
|
p_color.ch.alpha = 0xFF; /*Only the color should be get so use a deafult alpha value*/
|
|
#endif
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT) {
|
|
d11a: 2a07 cmp r2, #7
|
|
d11c: d022 beq.n d164 <lv_img_buf_get_px_color+0x78>
|
|
* dsc->header.w + 7 means rounding up to 8 because the lines are byte aligned
|
|
* so the possible real width are 8, 16, 24 ...*/
|
|
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
|
|
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_2BIT) {
|
|
d11e: 2a08 cmp r2, #8
|
|
d120: d034 beq.n d18c <lv_img_buf_get_px_color+0xa0>
|
|
* dsc->header.w + 3 means rounding up to 4 because the lines are byte aligned
|
|
* so the possible real width are 4, 8, 12 ...*/
|
|
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
|
|
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_4BIT) {
|
|
d122: 2a09 cmp r2, #9
|
|
d124: d048 beq.n d1b8 <lv_img_buf_get_px_color+0xcc>
|
|
* dsc->header.w + 1 means rounding up to 2 because the lines are byte aligned
|
|
* so the possible real width are 2, 4, 6 ...*/
|
|
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
|
|
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_8BIT) {
|
|
d126: 2a0a cmp r2, #10
|
|
d128: d05e beq.n d1e8 <lv_img_buf_get_px_color+0xfc>
|
|
buf_u8 += 4 * 256;
|
|
uint32_t px = dsc->header.w * y + x;
|
|
p_color.full = buf_u8[px];
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
|
|
d12a: 3a0b subs r2, #11
|
|
d12c: 2a03 cmp r2, #3
|
|
d12e: d815 bhi.n d15c <lv_img_buf_get_px_color+0x70>
|
|
dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
|
|
p_color = color;
|
|
d130: aa01 add r2, sp, #4
|
|
d132: 8013 strh r3, [r2, #0]
|
|
d134: e012 b.n d15c <lv_img_buf_get_px_color+0x70>
|
|
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
|
|
d136: 7820 ldrb r0, [r4, #0]
|
|
d138: 06c0 lsls r0, r0, #27
|
|
d13a: 0ec0 lsrs r0, r0, #27
|
|
d13c: 4b32 ldr r3, [pc, #200] ; (d208 <lv_img_buf_get_px_color+0x11c>)
|
|
d13e: 4798 blx r3
|
|
uint32_t px = dsc->header.w * y * px_size + x * px_size;
|
|
d140: 6823 ldr r3, [r4, #0]
|
|
d142: 02db lsls r3, r3, #11
|
|
d144: 0d5b lsrs r3, r3, #21
|
|
d146: 435f muls r7, r3
|
|
d148: 19be adds r6, r7, r6
|
|
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
|
|
d14a: 08c0 lsrs r0, r0, #3
|
|
uint32_t px = dsc->header.w * y * px_size + x * px_size;
|
|
d14c: b2c0 uxtb r0, r0
|
|
d14e: 4370 muls r0, r6
|
|
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
|
|
d150: 1828 adds r0, r5, r0
|
|
*d8 = *s8;
|
|
d152: ab01 add r3, sp, #4
|
|
d154: 7802 ldrb r2, [r0, #0]
|
|
d156: 701a strb r2, [r3, #0]
|
|
d158: 7842 ldrb r2, [r0, #1]
|
|
d15a: 705a strb r2, [r3, #1]
|
|
}
|
|
return p_color;
|
|
d15c: ab01 add r3, sp, #4
|
|
d15e: 8818 ldrh r0, [r3, #0]
|
|
}
|
|
d160: b003 add sp, #12
|
|
d162: bdf0 pop {r4, r5, r6, r7, pc}
|
|
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
d164: 4032 ands r2, r6
|
|
d166: 2307 movs r3, #7
|
|
d168: 1a9a subs r2, r3, r2
|
|
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
|
|
d16a: 6820 ldr r0, [r4, #0]
|
|
d16c: 02c0 lsls r0, r0, #11
|
|
d16e: 0d40 lsrs r0, r0, #21
|
|
d170: 3007 adds r0, #7
|
|
d172: 10c0 asrs r0, r0, #3
|
|
d174: 4347 muls r7, r0
|
|
d176: 10f6 asrs r6, r6, #3
|
|
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
d178: 19ed adds r5, r5, r7
|
|
d17a: 19ae adds r6, r5, r6
|
|
d17c: 7a31 ldrb r1, [r6, #8]
|
|
d17e: 3b06 subs r3, #6
|
|
d180: 4093 lsls r3, r2
|
|
d182: 400b ands r3, r1
|
|
d184: 4113 asrs r3, r2
|
|
d186: aa01 add r2, sp, #4
|
|
d188: 8013 strh r3, [r2, #0]
|
|
d18a: e7e7 b.n d15c <lv_img_buf_get_px_color+0x70>
|
|
uint8_t bit = (x & 0x3) * 2;
|
|
d18c: 3a05 subs r2, #5
|
|
d18e: 4032 ands r2, r6
|
|
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
d190: 0052 lsls r2, r2, #1
|
|
d192: 2306 movs r3, #6
|
|
d194: 1a9a subs r2, r3, r2
|
|
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
|
|
d196: 6820 ldr r0, [r4, #0]
|
|
d198: 02c0 lsls r0, r0, #11
|
|
d19a: 0d40 lsrs r0, r0, #21
|
|
d19c: 3003 adds r0, #3
|
|
d19e: 1080 asrs r0, r0, #2
|
|
d1a0: 4347 muls r7, r0
|
|
d1a2: 10b6 asrs r6, r6, #2
|
|
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
d1a4: 19ed adds r5, r5, r7
|
|
d1a6: 19ae adds r6, r5, r6
|
|
d1a8: 7c31 ldrb r1, [r6, #16]
|
|
d1aa: 3b03 subs r3, #3
|
|
d1ac: 4093 lsls r3, r2
|
|
d1ae: 400b ands r3, r1
|
|
d1b0: 4113 asrs r3, r2
|
|
d1b2: aa01 add r2, sp, #4
|
|
d1b4: 8013 strh r3, [r2, #0]
|
|
d1b6: e7d1 b.n d15c <lv_img_buf_get_px_color+0x70>
|
|
uint8_t bit = (x & 0x1) * 4;
|
|
d1b8: 2301 movs r3, #1
|
|
d1ba: 4033 ands r3, r6
|
|
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
|
|
d1bc: 009b lsls r3, r3, #2
|
|
d1be: 3a05 subs r2, #5
|
|
d1c0: 1ad3 subs r3, r2, r3
|
|
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
|
|
d1c2: 6820 ldr r0, [r4, #0]
|
|
d1c4: 02c0 lsls r0, r0, #11
|
|
d1c6: 0d40 lsrs r0, r0, #21
|
|
d1c8: 3001 adds r0, #1
|
|
d1ca: 1040 asrs r0, r0, #1
|
|
d1cc: 4347 muls r7, r0
|
|
d1ce: 1076 asrs r6, r6, #1
|
|
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
|
|
d1d0: 19ed adds r5, r5, r7
|
|
d1d2: 19ad adds r5, r5, r6
|
|
d1d4: 3540 adds r5, #64 ; 0x40
|
|
d1d6: 7829 ldrb r1, [r5, #0]
|
|
d1d8: 320b adds r2, #11
|
|
d1da: 409a lsls r2, r3
|
|
d1dc: 400a ands r2, r1
|
|
d1de: 411a asrs r2, r3
|
|
d1e0: 0013 movs r3, r2
|
|
d1e2: aa01 add r2, sp, #4
|
|
d1e4: 8013 strh r3, [r2, #0]
|
|
d1e6: e7b9 b.n d15c <lv_img_buf_get_px_color+0x70>
|
|
uint32_t px = dsc->header.w * y + x;
|
|
d1e8: 6823 ldr r3, [r4, #0]
|
|
d1ea: 02db lsls r3, r3, #11
|
|
d1ec: 0d5b lsrs r3, r3, #21
|
|
d1ee: 437b muls r3, r7
|
|
p_color.full = buf_u8[px];
|
|
d1f0: 19ad adds r5, r5, r6
|
|
d1f2: 18ed adds r5, r5, r3
|
|
d1f4: 2380 movs r3, #128 ; 0x80
|
|
d1f6: 00db lsls r3, r3, #3
|
|
d1f8: 469c mov ip, r3
|
|
d1fa: 4465 add r5, ip
|
|
d1fc: 782a ldrb r2, [r5, #0]
|
|
d1fe: ab01 add r3, sp, #4
|
|
d200: 801a strh r2, [r3, #0]
|
|
d202: e7ab b.n d15c <lv_img_buf_get_px_color+0x70>
|
|
d204: fffff81f .word 0xfffff81f
|
|
d208: 00007ee5 .word 0x00007ee5
|
|
|
|
0000d20c <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)
|
|
{
|
|
d20c: b5f0 push {r4, r5, r6, r7, lr}
|
|
d20e: b087 sub sp, #28
|
|
d210: 0004 movs r4, r0
|
|
d212: 9201 str r2, [sp, #4]
|
|
uint8_t * buf_u8 = (uint8_t *)dsc->data;
|
|
d214: 6886 ldr r6, [r0, #8]
|
|
|
|
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
|
|
d216: 7800 ldrb r0, [r0, #0]
|
|
d218: 231f movs r3, #31
|
|
d21a: 4003 ands r3, r0
|
|
d21c: 2b05 cmp r3, #5
|
|
d21e: d00a beq.n d236 <lv_img_buf_get_px_alpha+0x2a>
|
|
uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE;
|
|
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) {
|
|
d220: 2b0b cmp r3, #11
|
|
d222: d012 beq.n d24a <lv_img_buf_get_px_alpha+0x3e>
|
|
* so the possible real width are 8 ,16, 24 ...*/
|
|
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
|
|
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_2BIT) {
|
|
d224: 2b0c cmp r3, #12
|
|
d226: d028 beq.n d27a <lv_img_buf_get_px_alpha+0x6e>
|
|
* so the possible real width are 4 ,8, 12 ...*/
|
|
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
|
|
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
return opa_table[px_opa];
|
|
}
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_4BIT) {
|
|
d228: 2b0d cmp r3, #13
|
|
d22a: d047 beq.n d2bc <lv_img_buf_get_px_alpha+0xb0>
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
|
|
uint32_t px = dsc->header.w * y + x;
|
|
return buf_u8[px];
|
|
}
|
|
|
|
return LV_OPA_COVER;
|
|
d22c: 20ff movs r0, #255 ; 0xff
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
|
|
d22e: 2b0e cmp r3, #14
|
|
d230: d064 beq.n d2fc <lv_img_buf_get_px_alpha+0xf0>
|
|
}
|
|
d232: b007 add sp, #28
|
|
d234: bdf0 pop {r4, r5, r6, r7, pc}
|
|
uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE;
|
|
d236: 6823 ldr r3, [r4, #0]
|
|
d238: 02db lsls r3, r3, #11
|
|
d23a: 0d5b lsrs r3, r3, #21
|
|
d23c: 435a muls r2, r3
|
|
d23e: 1851 adds r1, r2, r1
|
|
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
|
|
d240: 004a lsls r2, r1, #1
|
|
d242: 1851 adds r1, r2, r1
|
|
d244: 1871 adds r1, r6, r1
|
|
d246: 7888 ldrb r0, [r1, #2]
|
|
d248: e7f3 b.n d232 <lv_img_buf_get_px_alpha+0x26>
|
|
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
d24a: 2507 movs r5, #7
|
|
d24c: 400d ands r5, r1
|
|
d24e: 3b04 subs r3, #4
|
|
d250: 1b5d subs r5, r3, r5
|
|
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
|
|
d252: 6823 ldr r3, [r4, #0]
|
|
d254: 02db lsls r3, r3, #11
|
|
d256: 0d5b lsrs r3, r3, #21
|
|
d258: 3307 adds r3, #7
|
|
d25a: 10db asrs r3, r3, #3
|
|
d25c: 9a01 ldr r2, [sp, #4]
|
|
d25e: 435a muls r2, r3
|
|
d260: 10c9 asrs r1, r1, #3
|
|
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
|
|
d262: 18b2 adds r2, r6, r2
|
|
d264: 5c53 ldrb r3, [r2, r1]
|
|
d266: 2001 movs r0, #1
|
|
d268: 40a8 lsls r0, r5
|
|
d26a: 4018 ands r0, r3
|
|
d26c: 4128 asrs r0, r5
|
|
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
|
|
d26e: b2c3 uxtb r3, r0
|
|
d270: 4258 negs r0, r3
|
|
d272: 4158 adcs r0, r3
|
|
d274: 4240 negs r0, r0
|
|
d276: b2c0 uxtb r0, r0
|
|
d278: e7db b.n d232 <lv_img_buf_get_px_alpha+0x26>
|
|
const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
|
|
d27a: 2300 movs r3, #0
|
|
d27c: a802 add r0, sp, #8
|
|
d27e: 7003 strb r3, [r0, #0]
|
|
d280: 3355 adds r3, #85 ; 0x55
|
|
d282: 7043 strb r3, [r0, #1]
|
|
d284: 3355 adds r3, #85 ; 0x55
|
|
d286: 7083 strb r3, [r0, #2]
|
|
d288: 20ff movs r0, #255 ; 0xff
|
|
d28a: ab02 add r3, sp, #8
|
|
d28c: 70d8 strb r0, [r3, #3]
|
|
uint8_t bit = (x & 0x3) * 2;
|
|
d28e: 2503 movs r5, #3
|
|
d290: 400d ands r5, r1
|
|
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
d292: 006d lsls r5, r5, #1
|
|
d294: 2306 movs r3, #6
|
|
d296: 1b5d subs r5, r3, r5
|
|
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
|
|
d298: 6823 ldr r3, [r4, #0]
|
|
d29a: 02db lsls r3, r3, #11
|
|
d29c: 0d5b lsrs r3, r3, #21
|
|
d29e: 3303 adds r3, #3
|
|
d2a0: 109b asrs r3, r3, #2
|
|
d2a2: 9a01 ldr r2, [sp, #4]
|
|
d2a4: 435a muls r2, r3
|
|
d2a6: 1089 asrs r1, r1, #2
|
|
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
|
|
d2a8: 18b2 adds r2, r6, r2
|
|
d2aa: 5c52 ldrb r2, [r2, r1]
|
|
d2ac: 2303 movs r3, #3
|
|
d2ae: 40ab lsls r3, r5
|
|
d2b0: 4013 ands r3, r2
|
|
d2b2: 412b asrs r3, r5
|
|
return opa_table[px_opa];
|
|
d2b4: 4003 ands r3, r0
|
|
d2b6: aa02 add r2, sp, #8
|
|
d2b8: 5cd0 ldrb r0, [r2, r3]
|
|
d2ba: e7ba b.n d232 <lv_img_buf_get_px_alpha+0x26>
|
|
const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
|
|
d2bc: ab02 add r3, sp, #8
|
|
d2be: 469c mov ip, r3
|
|
d2c0: 4b12 ldr r3, [pc, #72] ; (d30c <lv_img_buf_get_px_alpha+0x100>)
|
|
d2c2: 4665 mov r5, ip
|
|
d2c4: cb85 ldmia r3!, {r0, r2, r7}
|
|
d2c6: c585 stmia r5!, {r0, r2, r7}
|
|
d2c8: 681b ldr r3, [r3, #0]
|
|
d2ca: 602b str r3, [r5, #0]
|
|
uint8_t bit = (x & 0x1) * 4;
|
|
d2cc: 2501 movs r5, #1
|
|
d2ce: 400d ands r5, r1
|
|
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
|
|
d2d0: 00ad lsls r5, r5, #2
|
|
d2d2: 2304 movs r3, #4
|
|
d2d4: 1b5d subs r5, r3, r5
|
|
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
|
|
d2d6: 6823 ldr r3, [r4, #0]
|
|
d2d8: 02db lsls r3, r3, #11
|
|
d2da: 0d5b lsrs r3, r3, #21
|
|
d2dc: 3301 adds r3, #1
|
|
d2de: 105b asrs r3, r3, #1
|
|
d2e0: 9a01 ldr r2, [sp, #4]
|
|
d2e2: 435a muls r2, r3
|
|
d2e4: 1049 asrs r1, r1, #1
|
|
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
|
|
d2e6: 18b2 adds r2, r6, r2
|
|
d2e8: 5c52 ldrb r2, [r2, r1]
|
|
d2ea: 230f movs r3, #15
|
|
d2ec: 40ab lsls r3, r5
|
|
d2ee: 4013 ands r3, r2
|
|
d2f0: 412b asrs r3, r5
|
|
return opa_table[px_opa];
|
|
d2f2: 22ff movs r2, #255 ; 0xff
|
|
d2f4: 4013 ands r3, r2
|
|
d2f6: 4662 mov r2, ip
|
|
d2f8: 5cd0 ldrb r0, [r2, r3]
|
|
d2fa: e79a b.n d232 <lv_img_buf_get_px_alpha+0x26>
|
|
uint32_t px = dsc->header.w * y + x;
|
|
d2fc: 6823 ldr r3, [r4, #0]
|
|
d2fe: 02db lsls r3, r3, #11
|
|
d300: 0d5b lsrs r3, r3, #21
|
|
d302: 9a01 ldr r2, [sp, #4]
|
|
d304: 435a muls r2, r3
|
|
return buf_u8[px];
|
|
d306: 1871 adds r1, r6, r1
|
|
d308: 5c88 ldrb r0, [r1, r2]
|
|
d30a: e792 b.n d232 <lv_img_buf_get_px_alpha+0x26>
|
|
d30c: 0001893c .word 0x0001893c
|
|
|
|
0000d310 <_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)
|
|
{
|
|
d310: b5f0 push {r4, r5, r6, r7, lr}
|
|
d312: 46de mov lr, fp
|
|
d314: 4657 mov r7, sl
|
|
d316: 464e mov r6, r9
|
|
d318: 4645 mov r5, r8
|
|
d31a: b5e0 push {r5, r6, r7, lr}
|
|
d31c: b083 sub sp, #12
|
|
d31e: 0004 movs r4, r0
|
|
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
|
|
d320: 2208 movs r2, #8
|
|
d322: 5e83 ldrsh r3, [r0, r2]
|
|
d324: 021b lsls r3, r3, #8
|
|
d326: 6243 str r3, [r0, #36] ; 0x24
|
|
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
|
|
d328: 220a movs r2, #10
|
|
d32a: 5e83 ldrsh r3, [r0, r2]
|
|
d32c: 021b lsls r3, r3, #8
|
|
d32e: 6283 str r3, [r0, #40] ; 0x28
|
|
|
|
int32_t angle_low = dsc->cfg.angle / 10;
|
|
d330: 230c movs r3, #12
|
|
d332: 5ec7 ldrsh r7, [r0, r3]
|
|
d334: 4b3e ldr r3, [pc, #248] ; (d430 <_lv_img_buf_transform_init+0x120>)
|
|
d336: 469b mov fp, r3
|
|
d338: 210a movs r1, #10
|
|
d33a: 0038 movs r0, r7
|
|
d33c: 4798 blx r3
|
|
d33e: b205 sxth r5, r0
|
|
int32_t angle_hight = angle_low + 1;
|
|
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
|
|
d340: 260a movs r6, #10
|
|
d342: 4276 negs r6, r6
|
|
d344: 436e muls r6, r5
|
|
d346: 19f6 adds r6, r6, r7
|
|
|
|
int32_t s1 = _lv_trigo_sin(-angle_low);
|
|
d348: b2ab uxth r3, r5
|
|
d34a: 4698 mov r8, r3
|
|
d34c: 4258 negs r0, r3
|
|
d34e: b200 sxth r0, r0
|
|
d350: 4b38 ldr r3, [pc, #224] ; (d434 <_lv_img_buf_transform_init+0x124>)
|
|
d352: 469a mov sl, r3
|
|
d354: 4798 blx r3
|
|
d356: 4681 mov r9, r0
|
|
int32_t angle_hight = angle_low + 1;
|
|
d358: 3501 adds r5, #1
|
|
int32_t s2 = _lv_trigo_sin(-angle_hight);
|
|
d35a: b2ad uxth r5, r5
|
|
d35c: 4268 negs r0, r5
|
|
d35e: b200 sxth r0, r0
|
|
d360: 47d0 blx sl
|
|
d362: 9001 str r0, [sp, #4]
|
|
|
|
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
|
|
d364: 275a movs r7, #90 ; 0x5a
|
|
d366: 4642 mov r2, r8
|
|
d368: 1ab8 subs r0, r7, r2
|
|
d36a: b200 sxth r0, r0
|
|
d36c: 47d0 blx sl
|
|
d36e: 4680 mov r8, r0
|
|
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
|
|
d370: 1b7d subs r5, r7, r5
|
|
d372: b228 sxth r0, r5
|
|
d374: 47d0 blx sl
|
|
d376: 0007 movs r7, r0
|
|
|
|
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
|
|
d378: 250a movs r5, #10
|
|
d37a: 1bad subs r5, r5, r6
|
|
d37c: 464b mov r3, r9
|
|
d37e: 436b muls r3, r5
|
|
d380: 0018 movs r0, r3
|
|
d382: 9b01 ldr r3, [sp, #4]
|
|
d384: 4373 muls r3, r6
|
|
d386: 18c0 adds r0, r0, r3
|
|
d388: 210a movs r1, #10
|
|
d38a: 47d8 blx fp
|
|
d38c: 62e0 str r0, [r4, #44] ; 0x2c
|
|
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
|
|
d38e: 4643 mov r3, r8
|
|
d390: 435d muls r5, r3
|
|
d392: 0030 movs r0, r6
|
|
d394: 4378 muls r0, r7
|
|
d396: 1828 adds r0, r5, r0
|
|
d398: 210a movs r1, #10
|
|
d39a: 47d8 blx fp
|
|
d39c: 6320 str r0, [r4, #48] ; 0x30
|
|
|
|
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
|
|
d39e: 7ca0 ldrb r0, [r4, #18]
|
|
d3a0: 4b25 ldr r3, [pc, #148] ; (d438 <_lv_img_buf_transform_init+0x128>)
|
|
d3a2: 4798 blx r3
|
|
d3a4: 2634 movs r6, #52 ; 0x34
|
|
d3a6: 2501 movs r5, #1
|
|
d3a8: 0003 movs r3, r0
|
|
d3aa: 402b ands r3, r5
|
|
d3ac: 5da0 ldrb r0, [r4, r6]
|
|
d3ae: 2201 movs r2, #1
|
|
d3b0: 4390 bics r0, r2
|
|
d3b2: 4318 orrs r0, r3
|
|
d3b4: 55a0 strb r0, [r4, r6]
|
|
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
|
|
d3b6: 7ca0 ldrb r0, [r4, #18]
|
|
d3b8: 4b20 ldr r3, [pc, #128] ; (d43c <_lv_img_buf_transform_init+0x12c>)
|
|
d3ba: 4798 blx r3
|
|
d3bc: 4005 ands r5, r0
|
|
d3be: 006d lsls r5, r5, #1
|
|
d3c0: 5da0 ldrb r0, [r4, r6]
|
|
d3c2: 2302 movs r3, #2
|
|
d3c4: 4398 bics r0, r3
|
|
d3c6: 4305 orrs r5, r0
|
|
d3c8: 55a5 strb r5, [r4, r6]
|
|
if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
|
|
d3ca: 7ca2 ldrb r2, [r4, #18]
|
|
d3cc: 1f13 subs r3, r2, #4
|
|
d3ce: 2b02 cmp r3, #2
|
|
d3d0: d928 bls.n d424 <_lv_img_buf_transform_init+0x114>
|
|
dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
|
|
dsc->tmp.native_color = 1;
|
|
}
|
|
else {
|
|
dsc->tmp.native_color = 0;
|
|
d3d2: 2134 movs r1, #52 ; 0x34
|
|
d3d4: 5c63 ldrb r3, [r4, r1]
|
|
d3d6: 2004 movs r0, #4
|
|
d3d8: 4383 bics r3, r0
|
|
d3da: 5463 strb r3, [r4, r1]
|
|
}
|
|
|
|
dsc->tmp.img_dsc.data = dsc->cfg.src;
|
|
d3dc: 6823 ldr r3, [r4, #0]
|
|
d3de: 6223 str r3, [r4, #32]
|
|
dsc->tmp.img_dsc.header.always_zero = 0;
|
|
dsc->tmp.img_dsc.header.cf = dsc->cfg.cf;
|
|
d3e0: 231f movs r3, #31
|
|
d3e2: 4013 ands r3, r2
|
|
d3e4: 7623 strb r3, [r4, #24]
|
|
dsc->tmp.img_dsc.header.w = dsc->cfg.src_w;
|
|
d3e6: 88a3 ldrh r3, [r4, #4]
|
|
d3e8: 055b lsls r3, r3, #21
|
|
d3ea: 0ada lsrs r2, r3, #11
|
|
d3ec: 4b14 ldr r3, [pc, #80] ; (d440 <_lv_img_buf_transform_init+0x130>)
|
|
d3ee: 69a1 ldr r1, [r4, #24]
|
|
d3f0: 400b ands r3, r1
|
|
d3f2: 4313 orrs r3, r2
|
|
d3f4: 61a3 str r3, [r4, #24]
|
|
dsc->tmp.img_dsc.header.h = dsc->cfg.src_h;
|
|
d3f6: 88e2 ldrh r2, [r4, #6]
|
|
d3f8: 0152 lsls r2, r2, #5
|
|
d3fa: 02db lsls r3, r3, #11
|
|
d3fc: 0edb lsrs r3, r3, #27
|
|
d3fe: 4313 orrs r3, r2
|
|
d400: 8363 strh r3, [r4, #26]
|
|
|
|
dsc->tmp.zoom_inv = (256 * 256) / dsc->cfg.zoom;
|
|
d402: 89e1 ldrh r1, [r4, #14]
|
|
d404: 2080 movs r0, #128 ; 0x80
|
|
d406: 0240 lsls r0, r0, #9
|
|
d408: 4b09 ldr r3, [pc, #36] ; (d430 <_lv_img_buf_transform_init+0x120>)
|
|
d40a: 4798 blx r3
|
|
d40c: 86e0 strh r0, [r4, #54] ; 0x36
|
|
|
|
dsc->res.opa = LV_OPA_COVER;
|
|
d40e: 23ff movs r3, #255 ; 0xff
|
|
d410: 75a3 strb r3, [r4, #22]
|
|
dsc->res.color = dsc->cfg.color;
|
|
d412: 8a23 ldrh r3, [r4, #16]
|
|
d414: 82a3 strh r3, [r4, #20]
|
|
}
|
|
d416: b003 add sp, #12
|
|
d418: bc3c pop {r2, r3, r4, r5}
|
|
d41a: 4690 mov r8, r2
|
|
d41c: 4699 mov r9, r3
|
|
d41e: 46a2 mov sl, r4
|
|
d420: 46ab mov fp, r5
|
|
d422: bdf0 pop {r4, r5, r6, r7, pc}
|
|
dsc->tmp.native_color = 1;
|
|
d424: 2134 movs r1, #52 ; 0x34
|
|
d426: b2eb uxtb r3, r5
|
|
d428: 2004 movs r0, #4
|
|
d42a: 4303 orrs r3, r0
|
|
d42c: 5463 strb r3, [r4, r1]
|
|
d42e: e7d5 b.n d3dc <_lv_img_buf_transform_init+0xcc>
|
|
d430: 00017995 .word 0x00017995
|
|
d434: 00010935 .word 0x00010935
|
|
d438: 00007f15 .word 0x00007f15
|
|
d43c: 00007f29 .word 0x00007f29
|
|
d440: ffe003ff .word 0xffe003ff
|
|
|
|
0000d444 <_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)
|
|
{
|
|
d444: b5f0 push {r4, r5, r6, r7, lr}
|
|
d446: 46de mov lr, fp
|
|
d448: 4657 mov r7, sl
|
|
d44a: 464e mov r6, r9
|
|
d44c: 4645 mov r5, r8
|
|
d44e: b5e0 push {r5, r6, r7, lr}
|
|
d450: b087 sub sp, #28
|
|
d452: 9000 str r0, [sp, #0]
|
|
d454: 9102 str r1, [sp, #8]
|
|
d456: 9205 str r2, [sp, #20]
|
|
d458: 001d movs r5, r3
|
|
d45a: ab10 add r3, sp, #64 ; 0x40
|
|
d45c: 881b ldrh r3, [r3, #0]
|
|
d45e: 469b mov fp, r3
|
|
#if LV_USE_IMG_TRANSFORM
|
|
int32_t angle_low = angle / 10;
|
|
d460: 4f6a ldr r7, [pc, #424] ; (d60c <_lv_img_buf_get_transformed_area+0x1c8>)
|
|
d462: 210a movs r1, #10
|
|
d464: 0028 movs r0, r5
|
|
d466: 47b8 blx r7
|
|
d468: b204 sxth r4, r0
|
|
int32_t angle_hight = angle_low + 1;
|
|
d46a: 1c66 adds r6, r4, #1
|
|
int32_t angle_rem = angle - (angle_low * 10);
|
|
d46c: 200a movs r0, #10
|
|
d46e: 4240 negs r0, r0
|
|
d470: 4360 muls r0, r4
|
|
d472: 1945 adds r5, r0, r5
|
|
|
|
int32_t s1 = _lv_trigo_sin(angle_low);
|
|
d474: 0020 movs r0, r4
|
|
d476: 4b66 ldr r3, [pc, #408] ; (d610 <_lv_img_buf_get_transformed_area+0x1cc>)
|
|
d478: 4699 mov r9, r3
|
|
d47a: 4798 blx r3
|
|
d47c: 4680 mov r8, r0
|
|
int32_t s2 = _lv_trigo_sin(angle_hight);
|
|
d47e: b230 sxth r0, r6
|
|
d480: 47c8 blx r9
|
|
d482: 4682 mov sl, r0
|
|
|
|
int32_t c1 = _lv_trigo_sin(angle_low + 90);
|
|
d484: 345a adds r4, #90 ; 0x5a
|
|
d486: b220 sxth r0, r4
|
|
d488: 47c8 blx r9
|
|
d48a: 0004 movs r4, r0
|
|
int32_t c2 = _lv_trigo_sin(angle_hight + 90);
|
|
d48c: 365a adds r6, #90 ; 0x5a
|
|
d48e: b230 sxth r0, r6
|
|
d490: 47c8 blx r9
|
|
d492: 4681 mov r9, r0
|
|
|
|
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
|
|
d494: 260a movs r6, #10
|
|
d496: 1b76 subs r6, r6, r5
|
|
d498: 4640 mov r0, r8
|
|
d49a: 4370 muls r0, r6
|
|
d49c: 4653 mov r3, sl
|
|
d49e: 436b muls r3, r5
|
|
d4a0: 18c0 adds r0, r0, r3
|
|
d4a2: 210a movs r1, #10
|
|
d4a4: 47b8 blx r7
|
|
d4a6: 4680 mov r8, r0
|
|
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
|
|
d4a8: 4374 muls r4, r6
|
|
d4aa: 464b mov r3, r9
|
|
d4ac: 435d muls r5, r3
|
|
d4ae: 1960 adds r0, r4, r5
|
|
d4b0: 210a movs r1, #10
|
|
d4b2: 47b8 blx r7
|
|
|
|
lv_coord_t xt;
|
|
lv_coord_t yt;
|
|
|
|
lv_area_t a;
|
|
a.x1 = ((-pivot->x) * zoom) >> 8;
|
|
d4b4: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
d4b6: 2200 movs r2, #0
|
|
d4b8: 5e9a ldrsh r2, [r3, r2]
|
|
a.y1 = ((-pivot->y) * zoom) >> 8;
|
|
d4ba: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
d4bc: 2702 movs r7, #2
|
|
d4be: 5fdf ldrsh r7, [r3, r7]
|
|
a.x1 = ((-pivot->x) * zoom) >> 8;
|
|
d4c0: 4254 negs r4, r2
|
|
d4c2: 465b mov r3, fp
|
|
d4c4: 435c muls r4, r3
|
|
d4c6: 1224 asrs r4, r4, #8
|
|
a.x2 = ((w - pivot->x) * zoom) >> 8;
|
|
a.y2 = ((h - pivot->y) * zoom) >> 8;
|
|
|
|
xt = a.x1;
|
|
yt = a.y1;
|
|
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
|
|
d4c8: b224 sxth r4, r4
|
|
d4ca: 0023 movs r3, r4
|
|
d4cc: 4343 muls r3, r0
|
|
d4ce: 4699 mov r9, r3
|
|
a.y1 = ((-pivot->y) * zoom) >> 8;
|
|
d4d0: 427b negs r3, r7
|
|
d4d2: 465d mov r5, fp
|
|
d4d4: 436b muls r3, r5
|
|
d4d6: 121b asrs r3, r3, #8
|
|
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
|
|
d4d8: b21b sxth r3, r3
|
|
d4da: 4641 mov r1, r8
|
|
d4dc: 4359 muls r1, r3
|
|
d4de: b296 uxth r6, r2
|
|
d4e0: 464d mov r5, r9
|
|
d4e2: 1a6d subs r5, r5, r1
|
|
d4e4: 13ed asrs r5, r5, #15
|
|
d4e6: 1975 adds r5, r6, r5
|
|
d4e8: b22d sxth r5, r5
|
|
d4ea: 46aa mov sl, r5
|
|
lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
|
|
d4ec: 4645 mov r5, r8
|
|
d4ee: 4365 muls r5, r4
|
|
d4f0: 4343 muls r3, r0
|
|
d4f2: b2bc uxth r4, r7
|
|
d4f4: 9503 str r5, [sp, #12]
|
|
d4f6: 18ed adds r5, r5, r3
|
|
d4f8: 13ed asrs r5, r5, #15
|
|
d4fa: 9401 str r4, [sp, #4]
|
|
d4fc: 46a4 mov ip, r4
|
|
d4fe: 4465 add r5, ip
|
|
d500: b22d sxth r5, r5
|
|
a.x2 = ((w - pivot->x) * zoom) >> 8;
|
|
d502: 9c02 ldr r4, [sp, #8]
|
|
d504: 1aa2 subs r2, r4, r2
|
|
d506: 465c mov r4, fp
|
|
d508: 4362 muls r2, r4
|
|
d50a: 1212 asrs r2, r2, #8
|
|
|
|
xt = a.x2;
|
|
yt = a.y1;
|
|
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
|
|
d50c: b212 sxth r2, r2
|
|
d50e: 0014 movs r4, r2
|
|
d510: 4344 muls r4, r0
|
|
d512: 9402 str r4, [sp, #8]
|
|
d514: 1a61 subs r1, r4, r1
|
|
d516: 13c9 asrs r1, r1, #15
|
|
d518: 1871 adds r1, r6, r1
|
|
d51a: b209 sxth r1, r1
|
|
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
|
|
d51c: 4644 mov r4, r8
|
|
d51e: 4362 muls r2, r4
|
|
d520: 9204 str r2, [sp, #16]
|
|
d522: 4694 mov ip, r2
|
|
d524: 4463 add r3, ip
|
|
d526: 13db asrs r3, r3, #15
|
|
d528: 9c01 ldr r4, [sp, #4]
|
|
d52a: 46a4 mov ip, r4
|
|
d52c: 4463 add r3, ip
|
|
d52e: b21b sxth r3, r3
|
|
a.y2 = ((h - pivot->y) * zoom) >> 8;
|
|
d530: 9c05 ldr r4, [sp, #20]
|
|
d532: 1be7 subs r7, r4, r7
|
|
d534: 465c mov r4, fp
|
|
d536: 4367 muls r7, r4
|
|
d538: 123f asrs r7, r7, #8
|
|
|
|
xt = a.x1;
|
|
yt = a.y2;
|
|
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
|
|
d53a: b23f sxth r7, r7
|
|
d53c: 4644 mov r4, r8
|
|
d53e: 437c muls r4, r7
|
|
d540: 46a0 mov r8, r4
|
|
d542: 464c mov r4, r9
|
|
d544: 4642 mov r2, r8
|
|
d546: 1aa4 subs r4, r4, r2
|
|
d548: 13e2 asrs r2, r4, #15
|
|
d54a: 4691 mov r9, r2
|
|
d54c: 44b1 add r9, r6
|
|
d54e: 464a mov r2, r9
|
|
d550: b212 sxth r2, r2
|
|
d552: 4691 mov r9, r2
|
|
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
|
|
d554: 4378 muls r0, r7
|
|
d556: 9f03 ldr r7, [sp, #12]
|
|
d558: 183f adds r7, r7, r0
|
|
d55a: 13ff asrs r7, r7, #15
|
|
d55c: 46e3 mov fp, ip
|
|
d55e: 4467 add r7, ip
|
|
d560: b23f sxth r7, r7
|
|
|
|
xt = a.x2;
|
|
yt = a.y2;
|
|
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
|
|
d562: 9a02 ldr r2, [sp, #8]
|
|
d564: 4644 mov r4, r8
|
|
d566: 1b12 subs r2, r2, r4
|
|
d568: 13d2 asrs r2, r2, #15
|
|
d56a: 4690 mov r8, r2
|
|
d56c: 4446 add r6, r8
|
|
d56e: b236 sxth r6, r6
|
|
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
|
|
d570: 9a04 ldr r2, [sp, #16]
|
|
d572: 4694 mov ip, r2
|
|
d574: 4460 add r0, ip
|
|
d576: 13c0 asrs r0, r0, #15
|
|
d578: 465a mov r2, fp
|
|
d57a: 1814 adds r4, r2, r0
|
|
d57c: b224 sxth r4, r4
|
|
|
|
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
|
|
d57e: 4652 mov r2, sl
|
|
d580: 458a cmp sl, r1
|
|
d582: dd00 ble.n d586 <_lv_img_buf_get_transformed_area+0x142>
|
|
d584: 1c0a adds r2, r1, #0
|
|
d586: 1c10 adds r0, r2, #0
|
|
d588: b212 sxth r2, r2
|
|
d58a: 454a cmp r2, r9
|
|
d58c: dd00 ble.n d590 <_lv_img_buf_get_transformed_area+0x14c>
|
|
d58e: 4648 mov r0, r9
|
|
d590: 1c02 adds r2, r0, #0
|
|
d592: b200 sxth r0, r0
|
|
d594: 42b0 cmp r0, r6
|
|
d596: dd00 ble.n d59a <_lv_img_buf_get_transformed_area+0x156>
|
|
d598: 1c32 adds r2, r6, #0
|
|
d59a: 9800 ldr r0, [sp, #0]
|
|
d59c: 8002 strh r2, [r0, #0]
|
|
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
|
|
d59e: 4650 mov r0, sl
|
|
d5a0: 458a cmp sl, r1
|
|
d5a2: da00 bge.n d5a6 <_lv_img_buf_get_transformed_area+0x162>
|
|
d5a4: 1c08 adds r0, r1, #0
|
|
d5a6: 1c01 adds r1, r0, #0
|
|
d5a8: b200 sxth r0, r0
|
|
d5aa: 4548 cmp r0, r9
|
|
d5ac: da00 bge.n d5b0 <_lv_img_buf_get_transformed_area+0x16c>
|
|
d5ae: 4649 mov r1, r9
|
|
d5b0: 1c0a adds r2, r1, #0
|
|
d5b2: b209 sxth r1, r1
|
|
d5b4: 42b1 cmp r1, r6
|
|
d5b6: da00 bge.n d5ba <_lv_img_buf_get_transformed_area+0x176>
|
|
d5b8: 1c32 adds r2, r6, #0
|
|
d5ba: 9900 ldr r1, [sp, #0]
|
|
d5bc: 808a strh r2, [r1, #4]
|
|
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
|
|
d5be: 1c29 adds r1, r5, #0
|
|
d5c0: 429d cmp r5, r3
|
|
d5c2: dd00 ble.n d5c6 <_lv_img_buf_get_transformed_area+0x182>
|
|
d5c4: 1c19 adds r1, r3, #0
|
|
d5c6: 1c0a adds r2, r1, #0
|
|
d5c8: b209 sxth r1, r1
|
|
d5ca: 42b9 cmp r1, r7
|
|
d5cc: dd00 ble.n d5d0 <_lv_img_buf_get_transformed_area+0x18c>
|
|
d5ce: 1c3a adds r2, r7, #0
|
|
d5d0: 1c11 adds r1, r2, #0
|
|
d5d2: b212 sxth r2, r2
|
|
d5d4: 42a2 cmp r2, r4
|
|
d5d6: dd00 ble.n d5da <_lv_img_buf_get_transformed_area+0x196>
|
|
d5d8: 1c21 adds r1, r4, #0
|
|
d5da: 9a00 ldr r2, [sp, #0]
|
|
d5dc: 8051 strh r1, [r2, #2]
|
|
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
|
|
d5de: 1c2a adds r2, r5, #0
|
|
d5e0: 429d cmp r5, r3
|
|
d5e2: da00 bge.n d5e6 <_lv_img_buf_get_transformed_area+0x1a2>
|
|
d5e4: 1c1a adds r2, r3, #0
|
|
d5e6: 1c13 adds r3, r2, #0
|
|
d5e8: b212 sxth r2, r2
|
|
d5ea: 42ba cmp r2, r7
|
|
d5ec: da00 bge.n d5f0 <_lv_img_buf_get_transformed_area+0x1ac>
|
|
d5ee: 1c3b adds r3, r7, #0
|
|
d5f0: 1c1a adds r2, r3, #0
|
|
d5f2: b21b sxth r3, r3
|
|
d5f4: 42a3 cmp r3, r4
|
|
d5f6: da00 bge.n d5fa <_lv_img_buf_get_transformed_area+0x1b6>
|
|
d5f8: 1c22 adds r2, r4, #0
|
|
d5fa: 9b00 ldr r3, [sp, #0]
|
|
d5fc: 80da strh r2, [r3, #6]
|
|
res->x1 = 0;
|
|
res->y1 = 0;
|
|
res->x2 = w;
|
|
res->y2 = h;
|
|
#endif
|
|
}
|
|
d5fe: b007 add sp, #28
|
|
d600: bc3c pop {r2, r3, r4, r5}
|
|
d602: 4690 mov r8, r2
|
|
d604: 4699 mov r9, r3
|
|
d606: 46a2 mov sl, r4
|
|
d608: 46ab mov fp, r5
|
|
d60a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
d60c: 00017995 .word 0x00017995
|
|
d610: 00010935 .word 0x00010935
|
|
|
|
0000d614 <_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)
|
|
{
|
|
d614: b5f0 push {r4, r5, r6, r7, lr}
|
|
d616: 46de mov lr, fp
|
|
d618: 4657 mov r7, sl
|
|
d61a: 464e mov r6, r9
|
|
d61c: 4645 mov r5, r8
|
|
d61e: b5e0 push {r5, r6, r7, lr}
|
|
d620: b08b sub sp, #44 ; 0x2c
|
|
d622: 0004 movs r4, r0
|
|
const uint8_t * src_u8 = dsc->cfg.src;
|
|
|
|
/*Get the fractional part of the source pixel*/
|
|
int xs_fract = dsc->tmp.xs & 0xff;
|
|
d624: 2338 movs r3, #56 ; 0x38
|
|
d626: 5ec7 ldrsh r7, [r0, r3]
|
|
d628: 23ff movs r3, #255 ; 0xff
|
|
d62a: 001a movs r2, r3
|
|
d62c: 403a ands r2, r7
|
|
int ys_fract = dsc->tmp.ys & 0xff;
|
|
d62e: 213a movs r1, #58 ; 0x3a
|
|
d630: 5e46 ldrsh r6, [r0, r1]
|
|
d632: 4033 ands r3, r6
|
|
int32_t xn; /*x neightboor*/
|
|
lv_opa_t xr; /*x mix ratio*/
|
|
|
|
if(xs_fract < 0x70) {
|
|
d634: 2a6f cmp r2, #111 ; 0x6f
|
|
d636: dc7e bgt.n d736 <_lv_img_buf_transform_anti_alias+0x122>
|
|
xn = - 1;
|
|
if(dsc->tmp.xs_int + xn < 0) xn = 0;
|
|
d638: 223c movs r2, #60 ; 0x3c
|
|
d63a: 5e81 ldrsh r1, [r0, r2]
|
|
d63c: 4249 negs r1, r1
|
|
d63e: 17c9 asrs r1, r1, #31
|
|
xr = xs_fract + 0x80;
|
|
d640: 3f80 subs r7, #128 ; 0x80
|
|
d642: b2ff uxtb r7, r7
|
|
}
|
|
|
|
int32_t yn; /*x neightboor*/
|
|
lv_opa_t yr; /*x mix ratio*/
|
|
|
|
if(ys_fract < 0x70) {
|
|
d644: 2b6f cmp r3, #111 ; 0x6f
|
|
d646: dd00 ble.n d64a <_lv_img_buf_transform_anti_alias+0x36>
|
|
d648: e087 b.n d75a <_lv_img_buf_transform_anti_alias+0x146>
|
|
yn = - 1;
|
|
if(dsc->tmp.ys_int + yn < 0) yn = 0;
|
|
d64a: 233e movs r3, #62 ; 0x3e
|
|
d64c: 5ee2 ldrsh r2, [r4, r3]
|
|
d64e: 4252 negs r2, r2
|
|
d650: 17d3 asrs r3, r2, #31
|
|
d652: 4698 mov r8, r3
|
|
|
|
yr = ys_fract + 0x80;
|
|
d654: 3e80 subs r6, #128 ; 0x80
|
|
d656: b2f6 uxtb r6, r6
|
|
else {
|
|
yn = 0;
|
|
yr = 0xFF;
|
|
}
|
|
|
|
lv_color_t c00 = dsc->res.color;
|
|
d658: 7d25 ldrb r5, [r4, #20]
|
|
d65a: 06ed lsls r5, r5, #27
|
|
d65c: 0eeb lsrs r3, r5, #27
|
|
d65e: 9300 str r3, [sp, #0]
|
|
d660: 8aa3 ldrh r3, [r4, #20]
|
|
d662: 055b lsls r3, r3, #21
|
|
d664: 0e9b lsrs r3, r3, #26
|
|
d666: 9301 str r3, [sp, #4]
|
|
d668: 7d63 ldrb r3, [r4, #21]
|
|
d66a: 08db lsrs r3, r3, #3
|
|
d66c: 9302 str r3, [sp, #8]
|
|
lv_color_t c01;
|
|
lv_color_t c10;
|
|
lv_color_t c11;
|
|
|
|
lv_opa_t a00 = dsc->res.opa;
|
|
d66e: 7da3 ldrb r3, [r4, #22]
|
|
d670: 9303 str r3, [sp, #12]
|
|
lv_opa_t a10 = 0;
|
|
lv_opa_t a01 = 0;
|
|
lv_opa_t a11 = 0;
|
|
|
|
if(dsc->tmp.native_color) {
|
|
d672: 2334 movs r3, #52 ; 0x34
|
|
d674: 5ce3 ldrb r3, [r4, r3]
|
|
d676: 4699 mov r9, r3
|
|
d678: 075b lsls r3, r3, #29
|
|
d67a: d400 bmi.n d67e <_lv_img_buf_transform_anti_alias+0x6a>
|
|
d67c: e081 b.n d782 <_lv_img_buf_transform_anti_alias+0x16e>
|
|
const uint8_t * src_u8 = dsc->cfg.src;
|
|
d67e: 6823 ldr r3, [r4, #0]
|
|
_lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t));
|
|
d680: 2244 movs r2, #68 ; 0x44
|
|
d682: 5ca2 ldrb r2, [r4, r2]
|
|
d684: 4694 mov ip, r2
|
|
d686: 4351 muls r1, r2
|
|
d688: 6c22 ldr r2, [r4, #64] ; 0x40
|
|
d68a: 4692 mov sl, r2
|
|
d68c: 4451 add r1, sl
|
|
d68e: 1858 adds r0, r3, r1
|
|
d690: aa09 add r2, sp, #36 ; 0x24
|
|
d692: 7805 ldrb r5, [r0, #0]
|
|
d694: 7015 strb r5, [r2, #0]
|
|
d696: 7840 ldrb r0, [r0, #1]
|
|
d698: 7050 strb r0, [r2, #1]
|
|
_lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t));
|
|
d69a: 2004 movs r0, #4
|
|
d69c: 5e22 ldrsh r2, [r4, r0]
|
|
d69e: 4660 mov r0, ip
|
|
d6a0: 4342 muls r2, r0
|
|
d6a2: 4640 mov r0, r8
|
|
d6a4: 4350 muls r0, r2
|
|
d6a6: 0002 movs r2, r0
|
|
d6a8: 6c20 ldr r0, [r4, #64] ; 0x40
|
|
d6aa: 4680 mov r8, r0
|
|
d6ac: 4490 add r8, r2
|
|
d6ae: 469a mov sl, r3
|
|
d6b0: 44c2 add sl, r8
|
|
d6b2: a808 add r0, sp, #32
|
|
d6b4: 4655 mov r5, sl
|
|
d6b6: 782d ldrb r5, [r5, #0]
|
|
d6b8: 7005 strb r5, [r0, #0]
|
|
d6ba: 4655 mov r5, sl
|
|
d6bc: 786d ldrb r5, [r5, #1]
|
|
d6be: 7045 strb r5, [r0, #1]
|
|
_lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn],
|
|
d6c0: 188a adds r2, r1, r2
|
|
d6c2: 1898 adds r0, r3, r2
|
|
d6c4: 4682 mov sl, r0
|
|
d6c6: a807 add r0, sp, #28
|
|
d6c8: 4655 mov r5, sl
|
|
d6ca: 782d ldrb r5, [r5, #0]
|
|
d6cc: 7005 strb r5, [r0, #0]
|
|
d6ce: 4655 mov r5, sl
|
|
d6d0: 786d ldrb r5, [r5, #1]
|
|
d6d2: 7045 strb r5, [r0, #1]
|
|
sizeof(lv_color_t));
|
|
if(dsc->tmp.has_alpha) {
|
|
d6d4: 4648 mov r0, r9
|
|
d6d6: 0780 lsls r0, r0, #30
|
|
d6d8: d400 bmi.n d6dc <_lv_img_buf_transform_anti_alias+0xc8>
|
|
d6da: e084 b.n d7e6 <_lv_img_buf_transform_anti_alias+0x1d2>
|
|
d6dc: 4660 mov r0, ip
|
|
d6de: 3801 subs r0, #1
|
|
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
|
|
d6e0: 181b adds r3, r3, r0
|
|
d6e2: 5c59 ldrb r1, [r3, r1]
|
|
d6e4: 4689 mov r9, r1
|
|
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
|
|
d6e6: 4641 mov r1, r8
|
|
d6e8: 5c59 ldrb r1, [r3, r1]
|
|
d6ea: 468a mov sl, r1
|
|
a11 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
|
|
d6ec: 5c98 ldrb r0, [r3, r2]
|
|
}
|
|
|
|
lv_opa_t xr0 = xr;
|
|
lv_opa_t xr1 = xr;
|
|
if(dsc->tmp.has_alpha) {
|
|
lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8;
|
|
d6ee: 21ff movs r1, #255 ; 0xff
|
|
d6f0: 1bcb subs r3, r1, r7
|
|
d6f2: 464a mov r2, r9
|
|
d6f4: 435a muls r2, r3
|
|
d6f6: 4694 mov ip, r2
|
|
d6f8: 9a03 ldr r2, [sp, #12]
|
|
d6fa: 437a muls r2, r7
|
|
d6fc: 4462 add r2, ip
|
|
d6fe: 1212 asrs r2, r2, #8
|
|
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
|
|
d700: 4343 muls r3, r0
|
|
d702: 4655 mov r5, sl
|
|
d704: 437d muls r5, r7
|
|
d706: 46ac mov ip, r5
|
|
d708: 4463 add r3, ip
|
|
d70a: 121b asrs r3, r3, #8
|
|
d70c: b2dd uxtb r5, r3
|
|
d70e: 46ac mov ip, r5
|
|
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
|
|
d710: 400b ands r3, r1
|
|
d712: 1b8d subs r5, r1, r6
|
|
d714: 436b muls r3, r5
|
|
d716: 4011 ands r1, r2
|
|
d718: 4371 muls r1, r6
|
|
d71a: 185b adds r3, r3, r1
|
|
d71c: 121b asrs r3, r3, #8
|
|
d71e: 75a3 strb r3, [r4, #22]
|
|
|
|
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
|
|
d720: b2d2 uxtb r2, r2
|
|
d722: 2a05 cmp r2, #5
|
|
d724: d900 bls.n d728 <_lv_img_buf_transform_anti_alias+0x114>
|
|
d726: e0dc b.n d8e2 <_lv_img_buf_transform_anti_alias+0x2ce>
|
|
d728: 2300 movs r3, #0
|
|
d72a: 4662 mov r2, ip
|
|
if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP;
|
|
d72c: 2600 movs r6, #0
|
|
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
|
|
d72e: 2a05 cmp r2, #5
|
|
d730: d900 bls.n d734 <_lv_img_buf_transform_anti_alias+0x120>
|
|
d732: e0da b.n d8ea <_lv_img_buf_transform_anti_alias+0x2d6>
|
|
d734: e0ab b.n d88e <_lv_img_buf_transform_anti_alias+0x27a>
|
|
else if(xs_fract > 0x90) {
|
|
d736: 2a90 cmp r2, #144 ; 0x90
|
|
d738: dd0c ble.n d754 <_lv_img_buf_transform_anti_alias+0x140>
|
|
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
|
|
d73a: 213c movs r1, #60 ; 0x3c
|
|
d73c: 5e42 ldrsh r2, [r0, r1]
|
|
d73e: 3201 adds r2, #1
|
|
d740: 2104 movs r1, #4
|
|
d742: 5e40 ldrsh r0, [r0, r1]
|
|
d744: 2101 movs r1, #1
|
|
d746: 4282 cmp r2, r0
|
|
d748: db00 blt.n d74c <_lv_img_buf_transform_anti_alias+0x138>
|
|
d74a: 2100 movs r1, #0
|
|
xr = (0xFF - xs_fract) + 0x80;
|
|
d74c: 227f movs r2, #127 ; 0x7f
|
|
d74e: 1bd7 subs r7, r2, r7
|
|
d750: b2ff uxtb r7, r7
|
|
d752: e777 b.n d644 <_lv_img_buf_transform_anti_alias+0x30>
|
|
xr = 0xFF;
|
|
d754: 27ff movs r7, #255 ; 0xff
|
|
xn = 0;
|
|
d756: 2100 movs r1, #0
|
|
d758: e774 b.n d644 <_lv_img_buf_transform_anti_alias+0x30>
|
|
else if(ys_fract > 0x90) {
|
|
d75a: 2b90 cmp r3, #144 ; 0x90
|
|
d75c: dd0d ble.n d77a <_lv_img_buf_transform_anti_alias+0x166>
|
|
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
|
|
d75e: 223e movs r2, #62 ; 0x3e
|
|
d760: 5ea3 ldrsh r3, [r4, r2]
|
|
d762: 3301 adds r3, #1
|
|
d764: 2206 movs r2, #6
|
|
d766: 5ea0 ldrsh r0, [r4, r2]
|
|
d768: 2201 movs r2, #1
|
|
d76a: 4283 cmp r3, r0
|
|
d76c: db00 blt.n d770 <_lv_img_buf_transform_anti_alias+0x15c>
|
|
d76e: 2200 movs r2, #0
|
|
yn = 1;
|
|
d770: 4690 mov r8, r2
|
|
yr = (0xFF - ys_fract) + 0x80;
|
|
d772: 237f movs r3, #127 ; 0x7f
|
|
d774: 1b9e subs r6, r3, r6
|
|
d776: b2f6 uxtb r6, r6
|
|
d778: e76e b.n d658 <_lv_img_buf_transform_anti_alias+0x44>
|
|
yr = 0xFF;
|
|
d77a: 26ff movs r6, #255 ; 0xff
|
|
yn = 0;
|
|
d77c: 2300 movs r3, #0
|
|
d77e: 4698 mov r8, r3
|
|
d780: e76a b.n d658 <_lv_img_buf_transform_anti_alias+0x44>
|
|
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
|
|
d782: 2318 movs r3, #24
|
|
d784: 469c mov ip, r3
|
|
d786: 44a4 add ip, r4
|
|
d788: 4665 mov r5, ip
|
|
d78a: b28b uxth r3, r1
|
|
d78c: 469b mov fp, r3
|
|
d78e: 8a23 ldrh r3, [r4, #16]
|
|
d790: 213e movs r1, #62 ; 0x3e
|
|
d792: 5e62 ldrsh r2, [r4, r1]
|
|
d794: 8fa1 ldrh r1, [r4, #60] ; 0x3c
|
|
d796: 4459 add r1, fp
|
|
d798: b209 sxth r1, r1
|
|
d79a: 9504 str r5, [sp, #16]
|
|
d79c: 4660 mov r0, ip
|
|
d79e: 4daf ldr r5, [pc, #700] ; (da5c <_lv_img_buf_transform_anti_alias+0x448>)
|
|
d7a0: 46a9 mov r9, r5
|
|
d7a2: 47a8 blx r5
|
|
d7a4: ab09 add r3, sp, #36 ; 0x24
|
|
d7a6: 8018 strh r0, [r3, #0]
|
|
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
|
|
d7a8: 4642 mov r2, r8
|
|
d7aa: 466b mov r3, sp
|
|
d7ac: 82da strh r2, [r3, #22]
|
|
d7ae: b292 uxth r2, r2
|
|
d7b0: 4690 mov r8, r2
|
|
d7b2: 8a23 ldrh r3, [r4, #16]
|
|
d7b4: 8fe2 ldrh r2, [r4, #62] ; 0x3e
|
|
d7b6: 4442 add r2, r8
|
|
d7b8: b212 sxth r2, r2
|
|
d7ba: 203c movs r0, #60 ; 0x3c
|
|
d7bc: 5e21 ldrsh r1, [r4, r0]
|
|
d7be: 9d04 ldr r5, [sp, #16]
|
|
d7c0: 0028 movs r0, r5
|
|
d7c2: 47c8 blx r9
|
|
d7c4: ab08 add r3, sp, #32
|
|
d7c6: 8018 strh r0, [r3, #0]
|
|
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
|
|
d7c8: 8a23 ldrh r3, [r4, #16]
|
|
d7ca: 8fe2 ldrh r2, [r4, #62] ; 0x3e
|
|
d7cc: 4442 add r2, r8
|
|
d7ce: b212 sxth r2, r2
|
|
d7d0: 8fa1 ldrh r1, [r4, #60] ; 0x3c
|
|
d7d2: 4459 add r1, fp
|
|
d7d4: b209 sxth r1, r1
|
|
d7d6: 0028 movs r0, r5
|
|
d7d8: 47c8 blx r9
|
|
d7da: ab07 add r3, sp, #28
|
|
d7dc: 8018 strh r0, [r3, #0]
|
|
if(dsc->tmp.has_alpha) {
|
|
d7de: 2334 movs r3, #52 ; 0x34
|
|
d7e0: 5ce3 ldrb r3, [r4, r3]
|
|
d7e2: 079b lsls r3, r3, #30
|
|
d7e4: d45b bmi.n d89e <_lv_img_buf_transform_anti_alias+0x28a>
|
|
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
|
|
}
|
|
else {
|
|
xr0 = xr;
|
|
xr1 = xr;
|
|
dsc->res.opa = LV_OPA_COVER;
|
|
d7e6: 23ff movs r3, #255 ; 0xff
|
|
d7e8: 75a3 strb r3, [r4, #22]
|
|
xr0 = xr;
|
|
d7ea: 003b movs r3, r7
|
|
}
|
|
|
|
lv_color_t c0;
|
|
if(xr0 == LV_OPA_TRANSP) c0 = c01;
|
|
d7ec: 2b00 cmp r3, #0
|
|
d7ee: d000 beq.n d7f2 <_lv_img_buf_transform_anti_alias+0x1de>
|
|
d7f0: e08d b.n d90e <_lv_img_buf_transform_anti_alias+0x2fa>
|
|
d7f2: ab09 add r3, sp, #36 ; 0x24
|
|
d7f4: 781d ldrb r5, [r3, #0]
|
|
d7f6: 06ed lsls r5, r5, #27
|
|
d7f8: 0eea lsrs r2, r5, #27
|
|
d7fa: 9200 str r2, [sp, #0]
|
|
d7fc: 881a ldrh r2, [r3, #0]
|
|
d7fe: 0552 lsls r2, r2, #21
|
|
d800: 0e92 lsrs r2, r2, #26
|
|
d802: 9201 str r2, [sp, #4]
|
|
d804: 785b ldrb r3, [r3, #1]
|
|
d806: 08db lsrs r3, r3, #3
|
|
d808: 9302 str r3, [sp, #8]
|
|
else if(xr0 == LV_OPA_COVER) c0 = c00;
|
|
else c0 = lv_color_mix(c00, c01, xr0);
|
|
|
|
lv_color_t c1;
|
|
if(xr1 == LV_OPA_TRANSP) c1 = c11;
|
|
d80a: 2f00 cmp r7, #0
|
|
d80c: d000 beq.n d810 <_lv_img_buf_transform_anti_alias+0x1fc>
|
|
d80e: e0b7 b.n d980 <_lv_img_buf_transform_anti_alias+0x36c>
|
|
d810: aa07 add r2, sp, #28
|
|
d812: 7817 ldrb r7, [r2, #0]
|
|
d814: 06ff lsls r7, r7, #27
|
|
d816: 0eff lsrs r7, r7, #27
|
|
d818: 8813 ldrh r3, [r2, #0]
|
|
d81a: 055b lsls r3, r3, #21
|
|
d81c: 0e9b lsrs r3, r3, #26
|
|
d81e: 7852 ldrb r2, [r2, #1]
|
|
d820: 08d2 lsrs r2, r2, #3
|
|
else if(xr1 == LV_OPA_COVER) c1 = c10;
|
|
else c1 = lv_color_mix(c10, c11, xr1);
|
|
|
|
if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
|
|
d822: 2e00 cmp r6, #0
|
|
d824: d100 bne.n d828 <_lv_img_buf_transform_anti_alias+0x214>
|
|
d826: e0f1 b.n da0c <_lv_img_buf_transform_anti_alias+0x3f8>
|
|
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
|
|
d828: 2eff cmp r6, #255 ; 0xff
|
|
d82a: d100 bne.n d82e <_lv_img_buf_transform_anti_alias+0x21a>
|
|
d82c: e100 b.n da30 <_lv_img_buf_transform_anti_alias+0x41c>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
d82e: 21ff movs r1, #255 ; 0xff
|
|
d830: 1b89 subs r1, r1, r6
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
d832: 9d00 ldr r5, [sp, #0]
|
|
d834: 4375 muls r5, r6
|
|
d836: 434f muls r7, r1
|
|
d838: 19ef adds r7, r5, r7
|
|
d83a: 023d lsls r5, r7, #8
|
|
d83c: 19ed adds r5, r5, r7
|
|
d83e: 01ed lsls r5, r5, #7
|
|
d840: 19ed adds r5, r5, r7
|
|
else dsc->res.color = lv_color_mix(c0, c1, yr);
|
|
d842: 012d lsls r5, r5, #4
|
|
d844: 0eed lsrs r5, r5, #27
|
|
d846: 7d20 ldrb r0, [r4, #20]
|
|
d848: 271f movs r7, #31
|
|
d84a: 43b8 bics r0, r7
|
|
d84c: 4305 orrs r5, r0
|
|
d84e: 7525 strb r5, [r4, #20]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
d850: 9801 ldr r0, [sp, #4]
|
|
d852: 4370 muls r0, r6
|
|
d854: 434b muls r3, r1
|
|
d856: 18c0 adds r0, r0, r3
|
|
d858: 0203 lsls r3, r0, #8
|
|
d85a: 181b adds r3, r3, r0
|
|
d85c: 01db lsls r3, r3, #7
|
|
d85e: 181b adds r3, r3, r0
|
|
d860: 00db lsls r3, r3, #3
|
|
d862: 0e9b lsrs r3, r3, #26
|
|
d864: 015b lsls r3, r3, #5
|
|
d866: 8aa0 ldrh r0, [r4, #20]
|
|
d868: 4d7d ldr r5, [pc, #500] ; (da60 <_lv_img_buf_transform_anti_alias+0x44c>)
|
|
d86a: 4028 ands r0, r5
|
|
d86c: 4303 orrs r3, r0
|
|
d86e: 82a3 strh r3, [r4, #20]
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
d870: 9802 ldr r0, [sp, #8]
|
|
d872: 4346 muls r6, r0
|
|
d874: 434a muls r2, r1
|
|
d876: 18b6 adds r6, r6, r2
|
|
d878: 0232 lsls r2, r6, #8
|
|
d87a: 1992 adds r2, r2, r6
|
|
d87c: 01d2 lsls r2, r2, #7
|
|
d87e: 1996 adds r6, r2, r6
|
|
d880: 0df6 lsrs r6, r6, #23
|
|
d882: 00f6 lsls r6, r6, #3
|
|
d884: 055b lsls r3, r3, #21
|
|
d886: 0f5b lsrs r3, r3, #29
|
|
d888: 431e orrs r6, r3
|
|
d88a: 7566 strb r6, [r4, #21]
|
|
|
|
return true;
|
|
d88c: 2301 movs r3, #1
|
|
}
|
|
d88e: 0018 movs r0, r3
|
|
d890: b00b add sp, #44 ; 0x2c
|
|
d892: bc3c pop {r2, r3, r4, r5}
|
|
d894: 4690 mov r8, r2
|
|
d896: 4699 mov r9, r3
|
|
d898: 46a2 mov sl, r4
|
|
d89a: 46ab mov fp, r5
|
|
d89c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
|
|
d89e: 233e movs r3, #62 ; 0x3e
|
|
d8a0: 5ee2 ldrsh r2, [r4, r3]
|
|
d8a2: 8fa1 ldrh r1, [r4, #60] ; 0x3c
|
|
d8a4: 4459 add r1, fp
|
|
d8a6: b209 sxth r1, r1
|
|
d8a8: 9d04 ldr r5, [sp, #16]
|
|
d8aa: 0028 movs r0, r5
|
|
d8ac: 4b6d ldr r3, [pc, #436] ; (da64 <_lv_img_buf_transform_anti_alias+0x450>)
|
|
d8ae: 4798 blx r3
|
|
d8b0: 4681 mov r9, r0
|
|
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
|
|
d8b2: 8fe2 ldrh r2, [r4, #62] ; 0x3e
|
|
d8b4: 4442 add r2, r8
|
|
d8b6: b212 sxth r2, r2
|
|
d8b8: 233c movs r3, #60 ; 0x3c
|
|
d8ba: 5ee1 ldrsh r1, [r4, r3]
|
|
d8bc: 0028 movs r0, r5
|
|
d8be: 4b69 ldr r3, [pc, #420] ; (da64 <_lv_img_buf_transform_anti_alias+0x450>)
|
|
d8c0: 4798 blx r3
|
|
d8c2: 4682 mov sl, r0
|
|
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
|
|
d8c4: 8fe2 ldrh r2, [r4, #62] ; 0x3e
|
|
d8c6: 4442 add r2, r8
|
|
d8c8: b212 sxth r2, r2
|
|
d8ca: 8fa1 ldrh r1, [r4, #60] ; 0x3c
|
|
d8cc: 4459 add r1, fp
|
|
d8ce: b209 sxth r1, r1
|
|
d8d0: 0028 movs r0, r5
|
|
d8d2: 4b64 ldr r3, [pc, #400] ; (da64 <_lv_img_buf_transform_anti_alias+0x450>)
|
|
d8d4: 4798 blx r3
|
|
if(dsc->tmp.has_alpha) {
|
|
d8d6: 2334 movs r3, #52 ; 0x34
|
|
d8d8: 5ce3 ldrb r3, [r4, r3]
|
|
d8da: 079b lsls r3, r3, #30
|
|
d8dc: d500 bpl.n d8e0 <_lv_img_buf_transform_anti_alias+0x2cc>
|
|
d8de: e706 b.n d6ee <_lv_img_buf_transform_anti_alias+0xda>
|
|
d8e0: e781 b.n d7e6 <_lv_img_buf_transform_anti_alias+0x1d2>
|
|
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
|
|
d8e2: 4663 mov r3, ip
|
|
d8e4: 2b05 cmp r3, #5
|
|
d8e6: d800 bhi.n d8ea <_lv_img_buf_transform_anti_alias+0x2d6>
|
|
d8e8: 26ff movs r6, #255 ; 0xff
|
|
lv_opa_t xr0 = xr;
|
|
d8ea: 003b movs r3, r7
|
|
if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP;
|
|
d8ec: 9a03 ldr r2, [sp, #12]
|
|
d8ee: 2a05 cmp r2, #5
|
|
d8f0: d800 bhi.n d8f4 <_lv_img_buf_transform_anti_alias+0x2e0>
|
|
d8f2: 2300 movs r3, #0
|
|
if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER;
|
|
d8f4: 464a mov r2, r9
|
|
d8f6: 2a05 cmp r2, #5
|
|
d8f8: d800 bhi.n d8fc <_lv_img_buf_transform_anti_alias+0x2e8>
|
|
d8fa: 23ff movs r3, #255 ; 0xff
|
|
if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP;
|
|
d8fc: 4652 mov r2, sl
|
|
d8fe: 2a05 cmp r2, #5
|
|
d900: d800 bhi.n d904 <_lv_img_buf_transform_anti_alias+0x2f0>
|
|
d902: 2700 movs r7, #0
|
|
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
|
|
d904: 2805 cmp r0, #5
|
|
d906: d900 bls.n d90a <_lv_img_buf_transform_anti_alias+0x2f6>
|
|
d908: e770 b.n d7ec <_lv_img_buf_transform_anti_alias+0x1d8>
|
|
d90a: 27ff movs r7, #255 ; 0xff
|
|
d90c: e76e b.n d7ec <_lv_img_buf_transform_anti_alias+0x1d8>
|
|
else if(xr0 == LV_OPA_COVER) c0 = c00;
|
|
d90e: 2bff cmp r3, #255 ; 0xff
|
|
d910: d100 bne.n d914 <_lv_img_buf_transform_anti_alias+0x300>
|
|
d912: e77a b.n d80a <_lv_img_buf_transform_anti_alias+0x1f6>
|
|
d914: 22ff movs r2, #255 ; 0xff
|
|
d916: 1ad2 subs r2, r2, r3
|
|
d918: a809 add r0, sp, #36 ; 0x24
|
|
d91a: 7841 ldrb r1, [r0, #1]
|
|
d91c: 08c9 lsrs r1, r1, #3
|
|
d91e: 4351 muls r1, r2
|
|
d920: 9d02 ldr r5, [sp, #8]
|
|
d922: 435d muls r5, r3
|
|
d924: 46ac mov ip, r5
|
|
d926: 448c add ip, r1
|
|
d928: 4661 mov r1, ip
|
|
d92a: 0209 lsls r1, r1, #8
|
|
d92c: 4461 add r1, ip
|
|
d92e: 01c9 lsls r1, r1, #7
|
|
d930: 4461 add r1, ip
|
|
d932: 0dc9 lsrs r1, r1, #23
|
|
d934: 251f movs r5, #31
|
|
d936: 46ac mov ip, r5
|
|
d938: 400d ands r5, r1
|
|
d93a: 9502 str r5, [sp, #8]
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
d93c: 8801 ldrh r1, [r0, #0]
|
|
d93e: 0549 lsls r1, r1, #21
|
|
d940: 0e89 lsrs r1, r1, #26
|
|
d942: 4351 muls r1, r2
|
|
d944: 9d01 ldr r5, [sp, #4]
|
|
d946: 435d muls r5, r3
|
|
d948: 46a8 mov r8, r5
|
|
d94a: 4441 add r1, r8
|
|
d94c: 020d lsls r5, r1, #8
|
|
d94e: 46a8 mov r8, r5
|
|
d950: 4488 add r8, r1
|
|
d952: 4645 mov r5, r8
|
|
d954: 01ed lsls r5, r5, #7
|
|
d956: 46a8 mov r8, r5
|
|
d958: 4441 add r1, r8
|
|
d95a: 00c9 lsls r1, r1, #3
|
|
d95c: 0e89 lsrs r1, r1, #26
|
|
d95e: 9101 str r1, [sp, #4]
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
d960: 7801 ldrb r1, [r0, #0]
|
|
d962: 06c9 lsls r1, r1, #27
|
|
d964: 0ec9 lsrs r1, r1, #27
|
|
d966: 434a muls r2, r1
|
|
d968: 9d00 ldr r5, [sp, #0]
|
|
d96a: 435d muls r5, r3
|
|
d96c: 1952 adds r2, r2, r5
|
|
d96e: 0215 lsls r5, r2, #8
|
|
d970: 18ad adds r5, r5, r2
|
|
d972: 01ed lsls r5, r5, #7
|
|
d974: 18ad adds r5, r5, r2
|
|
d976: 0ded lsrs r5, r5, #23
|
|
d978: 4663 mov r3, ip
|
|
d97a: 401d ands r5, r3
|
|
d97c: 9500 str r5, [sp, #0]
|
|
d97e: e744 b.n d80a <_lv_img_buf_transform_anti_alias+0x1f6>
|
|
else if(xr1 == LV_OPA_COVER) c1 = c10;
|
|
d980: 2fff cmp r7, #255 ; 0xff
|
|
d982: d039 beq.n d9f8 <_lv_img_buf_transform_anti_alias+0x3e4>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
d984: 23ff movs r3, #255 ; 0xff
|
|
d986: 1bdb subs r3, r3, r7
|
|
d988: 4698 mov r8, r3
|
|
d98a: a808 add r0, sp, #32
|
|
d98c: 7842 ldrb r2, [r0, #1]
|
|
d98e: 08d2 lsrs r2, r2, #3
|
|
d990: 437a muls r2, r7
|
|
d992: a907 add r1, sp, #28
|
|
d994: 784b ldrb r3, [r1, #1]
|
|
d996: 08db lsrs r3, r3, #3
|
|
d998: 4645 mov r5, r8
|
|
d99a: 436b muls r3, r5
|
|
d99c: 18d3 adds r3, r2, r3
|
|
d99e: 021a lsls r2, r3, #8
|
|
d9a0: 18d2 adds r2, r2, r3
|
|
d9a2: 01d2 lsls r2, r2, #7
|
|
d9a4: 18d2 adds r2, r2, r3
|
|
d9a6: 0dd2 lsrs r2, r2, #23
|
|
d9a8: 231f movs r3, #31
|
|
d9aa: 469c mov ip, r3
|
|
d9ac: 401a ands r2, r3
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
d9ae: 8803 ldrh r3, [r0, #0]
|
|
d9b0: 055b lsls r3, r3, #21
|
|
d9b2: 0e9b lsrs r3, r3, #26
|
|
d9b4: 437b muls r3, r7
|
|
d9b6: 4699 mov r9, r3
|
|
d9b8: 880b ldrh r3, [r1, #0]
|
|
d9ba: 055b lsls r3, r3, #21
|
|
d9bc: 0e9b lsrs r3, r3, #26
|
|
d9be: 436b muls r3, r5
|
|
d9c0: 444b add r3, r9
|
|
d9c2: 021d lsls r5, r3, #8
|
|
d9c4: 46a9 mov r9, r5
|
|
d9c6: 4499 add r9, r3
|
|
d9c8: 464d mov r5, r9
|
|
d9ca: 01ed lsls r5, r5, #7
|
|
d9cc: 46a9 mov r9, r5
|
|
d9ce: 444b add r3, r9
|
|
d9d0: 00db lsls r3, r3, #3
|
|
d9d2: 0e9b lsrs r3, r3, #26
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
d9d4: 7800 ldrb r0, [r0, #0]
|
|
d9d6: 06c0 lsls r0, r0, #27
|
|
d9d8: 0ec0 lsrs r0, r0, #27
|
|
d9da: 4347 muls r7, r0
|
|
d9dc: 7809 ldrb r1, [r1, #0]
|
|
d9de: 06c9 lsls r1, r1, #27
|
|
d9e0: 0ec9 lsrs r1, r1, #27
|
|
d9e2: 4640 mov r0, r8
|
|
d9e4: 4341 muls r1, r0
|
|
d9e6: 1879 adds r1, r7, r1
|
|
d9e8: 020f lsls r7, r1, #8
|
|
d9ea: 187f adds r7, r7, r1
|
|
d9ec: 01ff lsls r7, r7, #7
|
|
d9ee: 187f adds r7, r7, r1
|
|
d9f0: 0dff lsrs r7, r7, #23
|
|
d9f2: 4661 mov r1, ip
|
|
d9f4: 400f ands r7, r1
|
|
d9f6: e714 b.n d822 <_lv_img_buf_transform_anti_alias+0x20e>
|
|
d9f8: aa08 add r2, sp, #32
|
|
d9fa: 7817 ldrb r7, [r2, #0]
|
|
d9fc: 06ff lsls r7, r7, #27
|
|
d9fe: 0eff lsrs r7, r7, #27
|
|
da00: 8813 ldrh r3, [r2, #0]
|
|
da02: 055b lsls r3, r3, #21
|
|
da04: 0e9b lsrs r3, r3, #26
|
|
da06: 7852 ldrb r2, [r2, #1]
|
|
da08: 08d2 lsrs r2, r2, #3
|
|
da0a: e70a b.n d822 <_lv_img_buf_transform_anti_alias+0x20e>
|
|
if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
|
|
da0c: 7d25 ldrb r5, [r4, #20]
|
|
da0e: 211f movs r1, #31
|
|
da10: 438d bics r5, r1
|
|
da12: 432f orrs r7, r5
|
|
da14: 7527 strb r7, [r4, #20]
|
|
da16: 0159 lsls r1, r3, #5
|
|
da18: 8aa3 ldrh r3, [r4, #20]
|
|
da1a: 4811 ldr r0, [pc, #68] ; (da60 <_lv_img_buf_transform_anti_alias+0x44c>)
|
|
da1c: 4003 ands r3, r0
|
|
da1e: 430b orrs r3, r1
|
|
da20: 82a3 strh r3, [r4, #20]
|
|
da22: 00d2 lsls r2, r2, #3
|
|
da24: 055b lsls r3, r3, #21
|
|
da26: 0f5b lsrs r3, r3, #29
|
|
da28: 431a orrs r2, r3
|
|
da2a: 7562 strb r2, [r4, #21]
|
|
return true;
|
|
da2c: 2301 movs r3, #1
|
|
da2e: e72e b.n d88e <_lv_img_buf_transform_anti_alias+0x27a>
|
|
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
|
|
da30: 7d23 ldrb r3, [r4, #20]
|
|
da32: 221f movs r2, #31
|
|
da34: 4393 bics r3, r2
|
|
da36: 9d00 ldr r5, [sp, #0]
|
|
da38: 431d orrs r5, r3
|
|
da3a: 7525 strb r5, [r4, #20]
|
|
da3c: 9b01 ldr r3, [sp, #4]
|
|
da3e: 015a lsls r2, r3, #5
|
|
da40: 8aa3 ldrh r3, [r4, #20]
|
|
da42: 4907 ldr r1, [pc, #28] ; (da60 <_lv_img_buf_transform_anti_alias+0x44c>)
|
|
da44: 400b ands r3, r1
|
|
da46: 4313 orrs r3, r2
|
|
da48: 82a3 strh r3, [r4, #20]
|
|
da4a: 9a02 ldr r2, [sp, #8]
|
|
da4c: 00d6 lsls r6, r2, #3
|
|
da4e: 055b lsls r3, r3, #21
|
|
da50: 0f5b lsrs r3, r3, #29
|
|
da52: 4333 orrs r3, r6
|
|
da54: 7563 strb r3, [r4, #21]
|
|
return true;
|
|
da56: 2301 movs r3, #1
|
|
da58: e719 b.n d88e <_lv_img_buf_transform_anti_alias+0x27a>
|
|
da5a: 46c0 nop ; (mov r8, r8)
|
|
da5c: 0000d0ed .word 0x0000d0ed
|
|
da60: fffff81f .word 0xfffff81f
|
|
da64: 0000d20d .word 0x0000d20d
|
|
|
|
0000da68 <_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)
|
|
{
|
|
da68: b5f0 push {r4, r5, r6, r7, lr}
|
|
da6a: 46ce mov lr, r9
|
|
da6c: 4647 mov r7, r8
|
|
da6e: b580 push {r7, lr}
|
|
da70: b083 sub sp, #12
|
|
da72: 4680 mov r8, r0
|
|
da74: 466b mov r3, sp
|
|
da76: 80d9 strh r1, [r3, #6]
|
|
if(entry_cnt == 0) {
|
|
da78: 4b51 ldr r3, [pc, #324] ; (dbc0 <_lv_img_cache_open+0x158>)
|
|
da7a: 8819 ldrh r1, [r3, #0]
|
|
da7c: 2900 cmp r1, #0
|
|
da7e: d100 bne.n da82 <_lv_img_cache_open+0x1a>
|
|
da80: e09b b.n dbba <_lv_img_cache_open+0x152>
|
|
LV_LOG_WARN("lv_img_cache_open: the cache size is 0");
|
|
return NULL;
|
|
}
|
|
|
|
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
|
|
da82: 4b50 ldr r3, [pc, #320] ; (dbc4 <_lv_img_cache_open+0x15c>)
|
|
da84: 681f ldr r7, [r3, #0]
|
|
da86: 003b movs r3, r7
|
|
da88: 3320 adds r3, #32
|
|
da8a: 3901 subs r1, #1
|
|
da8c: b28a uxth r2, r1
|
|
da8e: 00d1 lsls r1, r2, #3
|
|
da90: 1889 adds r1, r1, r2
|
|
da92: 0089 lsls r1, r1, #2
|
|
da94: 3144 adds r1, #68 ; 0x44
|
|
da96: 1879 adds r1, r7, r1
|
|
|
|
/*Decrement all lifes. Make the entries older*/
|
|
uint16_t i;
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
|
|
da98: 484b ldr r0, [pc, #300] ; (dbc8 <_lv_img_cache_open+0x160>)
|
|
da9a: e002 b.n daa2 <_lv_img_cache_open+0x3a>
|
|
da9c: 3324 adds r3, #36 ; 0x24
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
da9e: 428b cmp r3, r1
|
|
daa0: d005 beq.n daae <_lv_img_cache_open+0x46>
|
|
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
|
|
daa2: 681a ldr r2, [r3, #0]
|
|
daa4: 4282 cmp r2, r0
|
|
daa6: dbf9 blt.n da9c <_lv_img_cache_open+0x34>
|
|
cache[i].life -= LV_IMG_CACHE_AGING;
|
|
daa8: 3a01 subs r2, #1
|
|
daaa: 601a str r2, [r3, #0]
|
|
daac: e7f6 b.n da9c <_lv_img_cache_open+0x34>
|
|
daae: 2500 movs r5, #0
|
|
|
|
/*Is the image cached?*/
|
|
lv_img_cache_entry_t * cached_src = NULL;
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
bool match = false;
|
|
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
|
|
dab0: 4e46 ldr r6, [pc, #280] ; (dbcc <_lv_img_cache_open+0x164>)
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dab2: 4b43 ldr r3, [pc, #268] ; (dbc0 <_lv_img_cache_open+0x158>)
|
|
dab4: 4699 mov r9, r3
|
|
dab6: e007 b.n dac8 <_lv_img_cache_open+0x60>
|
|
if(src_type == LV_IMG_SRC_VARIABLE) {
|
|
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
|
|
}
|
|
else if(src_type == LV_IMG_SRC_FILE) {
|
|
dab8: 2801 cmp r0, #1
|
|
daba: d02a beq.n db12 <_lv_img_cache_open+0xaa>
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dabc: 3501 adds r5, #1
|
|
dabe: b2ad uxth r5, r5
|
|
dac0: 464b mov r3, r9
|
|
dac2: 881b ldrh r3, [r3, #0]
|
|
dac4: 42ab cmp r3, r5
|
|
dac6: d92f bls.n db28 <_lv_img_cache_open+0xc0>
|
|
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
|
|
dac8: 00ec lsls r4, r5, #3
|
|
daca: 1964 adds r4, r4, r5
|
|
dacc: 00a4 lsls r4, r4, #2
|
|
dace: 193c adds r4, r7, r4
|
|
dad0: 6860 ldr r0, [r4, #4]
|
|
dad2: 47b0 blx r6
|
|
if(src_type == LV_IMG_SRC_VARIABLE) {
|
|
dad4: 2800 cmp r0, #0
|
|
dad6: d1ef bne.n dab8 <_lv_img_cache_open+0x50>
|
|
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
|
|
dad8: 6863 ldr r3, [r4, #4]
|
|
dada: 4543 cmp r3, r8
|
|
dadc: d1ee bne.n dabc <_lv_img_cache_open+0x54>
|
|
dade: 8920 ldrh r0, [r4, #8]
|
|
dae0: 466b mov r3, sp
|
|
dae2: 88db ldrh r3, [r3, #6]
|
|
dae4: 1ac0 subs r0, r0, r3
|
|
dae6: 4242 negs r2, r0
|
|
dae8: 4142 adcs r2, r0
|
|
daea: b2d0 uxtb r0, r2
|
|
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
|
|
}
|
|
|
|
if(match) {
|
|
daec: 2800 cmp r0, #0
|
|
daee: d0e5 beq.n dabc <_lv_img_cache_open+0x54>
|
|
/* If opened increment its life.
|
|
* Image difficult to open should live longer to keep avoid frequent their recaching.
|
|
* Therefore increase `life` with `time_to_open`*/
|
|
cached_src = &cache[i];
|
|
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
|
|
daf0: 6a23 ldr r3, [r4, #32]
|
|
daf2: 6962 ldr r2, [r4, #20]
|
|
daf4: 4694 mov ip, r2
|
|
daf6: 4463 add r3, ip
|
|
if(cached_src->life > LV_IMG_CACHE_LIFE_LIMIT) cached_src->life = LV_IMG_CACHE_LIFE_LIMIT;
|
|
daf8: 22fa movs r2, #250 ; 0xfa
|
|
dafa: 0092 lsls r2, r2, #2
|
|
dafc: 4293 cmp r3, r2
|
|
dafe: dd11 ble.n db24 <_lv_img_cache_open+0xbc>
|
|
db00: 6222 str r2, [r4, #32]
|
|
break;
|
|
}
|
|
}
|
|
|
|
/*The image is not cached then cache it now*/
|
|
if(cached_src == NULL) {
|
|
db02: 2c00 cmp r4, #0
|
|
db04: d010 beq.n db28 <_lv_img_cache_open+0xc0>
|
|
|
|
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
|
|
}
|
|
|
|
return cached_src;
|
|
}
|
|
db06: 0020 movs r0, r4
|
|
db08: b003 add sp, #12
|
|
db0a: bc0c pop {r2, r3}
|
|
db0c: 4690 mov r8, r2
|
|
db0e: 4699 mov r9, r3
|
|
db10: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
|
|
db12: 4641 mov r1, r8
|
|
db14: 6860 ldr r0, [r4, #4]
|
|
db16: 4b2e ldr r3, [pc, #184] ; (dbd0 <_lv_img_cache_open+0x168>)
|
|
db18: 4798 blx r3
|
|
db1a: 0003 movs r3, r0
|
|
db1c: 4258 negs r0, r3
|
|
db1e: 4158 adcs r0, r3
|
|
db20: b2c0 uxtb r0, r0
|
|
db22: e7e3 b.n daec <_lv_img_cache_open+0x84>
|
|
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
|
|
db24: 6223 str r3, [r4, #32]
|
|
db26: e7ec b.n db02 <_lv_img_cache_open+0x9a>
|
|
for(i = 1; i < entry_cnt; i++) {
|
|
db28: 4b25 ldr r3, [pc, #148] ; (dbc0 <_lv_img_cache_open+0x158>)
|
|
db2a: 881a ldrh r2, [r3, #0]
|
|
db2c: 2a01 cmp r2, #1
|
|
db2e: d913 bls.n db58 <_lv_img_cache_open+0xf0>
|
|
db30: 003b movs r3, r7
|
|
db32: 3324 adds r3, #36 ; 0x24
|
|
db34: 3a02 subs r2, #2
|
|
db36: b291 uxth r1, r2
|
|
db38: 00ca lsls r2, r1, #3
|
|
db3a: 1852 adds r2, r2, r1
|
|
db3c: 0092 lsls r2, r2, #2
|
|
db3e: 3248 adds r2, #72 ; 0x48
|
|
db40: 18ba adds r2, r7, r2
|
|
db42: 003c movs r4, r7
|
|
db44: e002 b.n db4c <_lv_img_cache_open+0xe4>
|
|
db46: 3324 adds r3, #36 ; 0x24
|
|
db48: 4293 cmp r3, r2
|
|
db4a: d006 beq.n db5a <_lv_img_cache_open+0xf2>
|
|
if(cache[i].life < cached_src->life) {
|
|
db4c: 6a19 ldr r1, [r3, #32]
|
|
db4e: 6a20 ldr r0, [r4, #32]
|
|
db50: 4281 cmp r1, r0
|
|
db52: daf8 bge.n db46 <_lv_img_cache_open+0xde>
|
|
cached_src = &cache[i];
|
|
db54: 001c movs r4, r3
|
|
db56: e7f6 b.n db46 <_lv_img_cache_open+0xde>
|
|
for(i = 1; i < entry_cnt; i++) {
|
|
db58: 003c movs r4, r7
|
|
if(cached_src->dec_dsc.src) {
|
|
db5a: 6863 ldr r3, [r4, #4]
|
|
db5c: 2b00 cmp r3, #0
|
|
db5e: d002 beq.n db66 <_lv_img_cache_open+0xfe>
|
|
lv_img_decoder_close(&cached_src->dec_dsc);
|
|
db60: 0020 movs r0, r4
|
|
db62: 4b1c ldr r3, [pc, #112] ; (dbd4 <_lv_img_cache_open+0x16c>)
|
|
db64: 4798 blx r3
|
|
t_start = lv_tick_get();
|
|
db66: 4b1c ldr r3, [pc, #112] ; (dbd8 <_lv_img_cache_open+0x170>)
|
|
db68: 4798 blx r3
|
|
db6a: 0005 movs r5, r0
|
|
cached_src->dec_dsc.time_to_open = 0;
|
|
db6c: 2300 movs r3, #0
|
|
db6e: 6163 str r3, [r4, #20]
|
|
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
|
|
db70: 466b mov r3, sp
|
|
db72: 88da ldrh r2, [r3, #6]
|
|
db74: 4641 mov r1, r8
|
|
db76: 0020 movs r0, r4
|
|
db78: 4b18 ldr r3, [pc, #96] ; (dbdc <_lv_img_cache_open+0x174>)
|
|
db7a: 4798 blx r3
|
|
if(open_res == LV_RES_INV) {
|
|
db7c: 2800 cmp r0, #0
|
|
db7e: d00d beq.n db9c <_lv_img_cache_open+0x134>
|
|
cached_src->life = 0;
|
|
db80: 2300 movs r3, #0
|
|
db82: 6223 str r3, [r4, #32]
|
|
if(cached_src->dec_dsc.time_to_open == 0) {
|
|
db84: 6963 ldr r3, [r4, #20]
|
|
db86: 2b00 cmp r3, #0
|
|
db88: d1bd bne.n db06 <_lv_img_cache_open+0x9e>
|
|
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
|
|
db8a: 0028 movs r0, r5
|
|
db8c: 4b14 ldr r3, [pc, #80] ; (dbe0 <_lv_img_cache_open+0x178>)
|
|
db8e: 4798 blx r3
|
|
db90: 6160 str r0, [r4, #20]
|
|
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
|
|
db92: 2800 cmp r0, #0
|
|
db94: d1b7 bne.n db06 <_lv_img_cache_open+0x9e>
|
|
db96: 2301 movs r3, #1
|
|
db98: 6163 str r3, [r4, #20]
|
|
db9a: e7b4 b.n db06 <_lv_img_cache_open+0x9e>
|
|
lv_img_decoder_close(&cached_src->dec_dsc);
|
|
db9c: 0020 movs r0, r4
|
|
db9e: 4b0d ldr r3, [pc, #52] ; (dbd4 <_lv_img_cache_open+0x16c>)
|
|
dba0: 4798 blx r3
|
|
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
|
|
dba2: 2120 movs r1, #32
|
|
dba4: 0020 movs r0, r4
|
|
dba6: 4d0f ldr r5, [pc, #60] ; (dbe4 <_lv_img_cache_open+0x17c>)
|
|
dba8: 47a8 blx r5
|
|
_lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t));
|
|
dbaa: 2124 movs r1, #36 ; 0x24
|
|
dbac: 0020 movs r0, r4
|
|
dbae: 47a8 blx r5
|
|
cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */
|
|
dbb0: 2380 movs r3, #128 ; 0x80
|
|
dbb2: 061b lsls r3, r3, #24
|
|
dbb4: 6223 str r3, [r4, #32]
|
|
return NULL;
|
|
dbb6: 2400 movs r4, #0
|
|
dbb8: e7a5 b.n db06 <_lv_img_cache_open+0x9e>
|
|
return NULL;
|
|
dbba: 2400 movs r4, #0
|
|
dbbc: e7a3 b.n db06 <_lv_img_cache_open+0x9e>
|
|
dbbe: 46c0 nop ; (mov r8, r8)
|
|
dbc0: 20002bb6 .word 0x20002bb6
|
|
dbc4: 20004d84 .word 0x20004d84
|
|
dbc8: 80000002 .word 0x80000002
|
|
dbcc: 00008161 .word 0x00008161
|
|
dbd0: 00017e5d .word 0x00017e5d
|
|
dbd4: 0000e685 .word 0x0000e685
|
|
dbd8: 0000f78d .word 0x0000f78d
|
|
dbdc: 0000e59d .word 0x0000e59d
|
|
dbe0: 0000f7a9 .word 0x0000f7a9
|
|
dbe4: 0001104d .word 0x0001104d
|
|
|
|
0000dbe8 <lv_img_cache_invalidate_src>:
|
|
* Invalidate an image source in the cache.
|
|
* Useful if the image source is updated therefore it needs to be cached again.
|
|
* @param src an image source path to a file or pointer to an `lv_img_dsc_t` variable.
|
|
*/
|
|
void lv_img_cache_invalidate_src(const void * src)
|
|
{
|
|
dbe8: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
dbea: 46d6 mov lr, sl
|
|
dbec: 4647 mov r7, r8
|
|
dbee: b580 push {r7, lr}
|
|
dbf0: 0007 movs r7, r0
|
|
|
|
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
|
|
dbf2: 4b15 ldr r3, [pc, #84] ; (dc48 <lv_img_cache_invalidate_src+0x60>)
|
|
dbf4: 681b ldr r3, [r3, #0]
|
|
dbf6: 4698 mov r8, r3
|
|
|
|
uint16_t i;
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dbf8: 4b14 ldr r3, [pc, #80] ; (dc4c <lv_img_cache_invalidate_src+0x64>)
|
|
dbfa: 881b ldrh r3, [r3, #0]
|
|
dbfc: 2b00 cmp r3, #0
|
|
dbfe: d01e beq.n dc3e <lv_img_cache_invalidate_src+0x56>
|
|
dc00: 2500 movs r5, #0
|
|
if(cache[i].dec_dsc.src == src || src == NULL) {
|
|
if(cache[i].dec_dsc.src != NULL) {
|
|
lv_img_decoder_close(&cache[i].dec_dsc);
|
|
}
|
|
|
|
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
|
|
dc02: 4b13 ldr r3, [pc, #76] ; (dc50 <lv_img_cache_invalidate_src+0x68>)
|
|
dc04: 469a mov sl, r3
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dc06: 4e11 ldr r6, [pc, #68] ; (dc4c <lv_img_cache_invalidate_src+0x64>)
|
|
dc08: e00f b.n dc2a <lv_img_cache_invalidate_src+0x42>
|
|
if(cache[i].dec_dsc.src != NULL) {
|
|
dc0a: 2b00 cmp r3, #0
|
|
dc0c: d002 beq.n dc14 <lv_img_cache_invalidate_src+0x2c>
|
|
lv_img_decoder_close(&cache[i].dec_dsc);
|
|
dc0e: 0020 movs r0, r4
|
|
dc10: 4b10 ldr r3, [pc, #64] ; (dc54 <lv_img_cache_invalidate_src+0x6c>)
|
|
dc12: 4798 blx r3
|
|
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
|
|
dc14: 2120 movs r1, #32
|
|
dc16: 0020 movs r0, r4
|
|
dc18: 47d0 blx sl
|
|
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
|
|
dc1a: 2124 movs r1, #36 ; 0x24
|
|
dc1c: 0020 movs r0, r4
|
|
dc1e: 47d0 blx sl
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dc20: 3501 adds r5, #1
|
|
dc22: b2ad uxth r5, r5
|
|
dc24: 8833 ldrh r3, [r6, #0]
|
|
dc26: 42ab cmp r3, r5
|
|
dc28: d909 bls.n dc3e <lv_img_cache_invalidate_src+0x56>
|
|
if(cache[i].dec_dsc.src == src || src == NULL) {
|
|
dc2a: 00ec lsls r4, r5, #3
|
|
dc2c: 1964 adds r4, r4, r5
|
|
dc2e: 00a4 lsls r4, r4, #2
|
|
dc30: 4444 add r4, r8
|
|
dc32: 6863 ldr r3, [r4, #4]
|
|
dc34: 42bb cmp r3, r7
|
|
dc36: d0e8 beq.n dc0a <lv_img_cache_invalidate_src+0x22>
|
|
dc38: 2f00 cmp r7, #0
|
|
dc3a: d1f1 bne.n dc20 <lv_img_cache_invalidate_src+0x38>
|
|
dc3c: e7e5 b.n dc0a <lv_img_cache_invalidate_src+0x22>
|
|
}
|
|
}
|
|
}
|
|
dc3e: bc0c pop {r2, r3}
|
|
dc40: 4690 mov r8, r2
|
|
dc42: 469a mov sl, r3
|
|
dc44: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
dc46: 46c0 nop ; (mov r8, r8)
|
|
dc48: 20004d84 .word 0x20004d84
|
|
dc4c: 20002bb6 .word 0x20002bb6
|
|
dc50: 0001104d .word 0x0001104d
|
|
dc54: 0000e685 .word 0x0000e685
|
|
|
|
0000dc58 <lv_img_cache_set_size>:
|
|
{
|
|
dc58: b5f0 push {r4, r5, r6, r7, lr}
|
|
dc5a: 46c6 mov lr, r8
|
|
dc5c: b500 push {lr}
|
|
dc5e: 0004 movs r4, r0
|
|
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
|
|
dc60: 4b20 ldr r3, [pc, #128] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dc62: 681b ldr r3, [r3, #0]
|
|
dc64: 2b00 cmp r3, #0
|
|
dc66: d006 beq.n dc76 <lv_img_cache_set_size+0x1e>
|
|
lv_img_cache_invalidate_src(NULL);
|
|
dc68: 2000 movs r0, #0
|
|
dc6a: 4b1f ldr r3, [pc, #124] ; (dce8 <lv_img_cache_set_size+0x90>)
|
|
dc6c: 4798 blx r3
|
|
lv_mem_free(LV_GC_ROOT(_lv_img_cache_array));
|
|
dc6e: 4b1d ldr r3, [pc, #116] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dc70: 6818 ldr r0, [r3, #0]
|
|
dc72: 4b1e ldr r3, [pc, #120] ; (dcec <lv_img_cache_set_size+0x94>)
|
|
dc74: 4798 blx r3
|
|
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
|
|
dc76: 00e0 lsls r0, r4, #3
|
|
dc78: 1900 adds r0, r0, r4
|
|
dc7a: 0080 lsls r0, r0, #2
|
|
dc7c: 4b1c ldr r3, [pc, #112] ; (dcf0 <lv_img_cache_set_size+0x98>)
|
|
dc7e: 4798 blx r3
|
|
dc80: 4b18 ldr r3, [pc, #96] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dc82: 6018 str r0, [r3, #0]
|
|
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
|
|
dc84: 4b1b ldr r3, [pc, #108] ; (dcf4 <lv_img_cache_set_size+0x9c>)
|
|
dc86: 4798 blx r3
|
|
dc88: 2800 cmp r0, #0
|
|
dc8a: d01f beq.n dccc <lv_img_cache_set_size+0x74>
|
|
if(LV_GC_ROOT(_lv_img_cache_array) == NULL) {
|
|
dc8c: 4b15 ldr r3, [pc, #84] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dc8e: 681b ldr r3, [r3, #0]
|
|
dc90: 2b00 cmp r3, #0
|
|
dc92: d022 beq.n dcda <lv_img_cache_set_size+0x82>
|
|
entry_cnt = new_entry_cnt;
|
|
dc94: 4b18 ldr r3, [pc, #96] ; (dcf8 <lv_img_cache_set_size+0xa0>)
|
|
dc96: 801c strh r4, [r3, #0]
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dc98: 2c00 cmp r4, #0
|
|
dc9a: d014 beq.n dcc6 <lv_img_cache_set_size+0x6e>
|
|
dc9c: 2400 movs r4, #0
|
|
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
|
|
dc9e: 4f11 ldr r7, [pc, #68] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dca0: 4e16 ldr r6, [pc, #88] ; (dcfc <lv_img_cache_set_size+0xa4>)
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dca2: 4698 mov r8, r3
|
|
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
|
|
dca4: 00e5 lsls r5, r4, #3
|
|
dca6: 192d adds r5, r5, r4
|
|
dca8: 00ad lsls r5, r5, #2
|
|
dcaa: 683b ldr r3, [r7, #0]
|
|
dcac: 1958 adds r0, r3, r5
|
|
dcae: 2120 movs r1, #32
|
|
dcb0: 47b0 blx r6
|
|
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t));
|
|
dcb2: 683b ldr r3, [r7, #0]
|
|
dcb4: 1958 adds r0, r3, r5
|
|
dcb6: 2124 movs r1, #36 ; 0x24
|
|
dcb8: 47b0 blx r6
|
|
for(i = 0; i < entry_cnt; i++) {
|
|
dcba: 3401 adds r4, #1
|
|
dcbc: b2a4 uxth r4, r4
|
|
dcbe: 4643 mov r3, r8
|
|
dcc0: 881b ldrh r3, [r3, #0]
|
|
dcc2: 42a3 cmp r3, r4
|
|
dcc4: d8ee bhi.n dca4 <lv_img_cache_set_size+0x4c>
|
|
}
|
|
dcc6: bc04 pop {r2}
|
|
dcc8: 4690 mov r8, r2
|
|
dcca: bdf0 pop {r4, r5, r6, r7, pc}
|
|
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
|
|
dccc: 4b05 ldr r3, [pc, #20] ; (dce4 <lv_img_cache_set_size+0x8c>)
|
|
dcce: 681a ldr r2, [r3, #0]
|
|
dcd0: 2300 movs r3, #0
|
|
dcd2: 480b ldr r0, [pc, #44] ; (dd00 <lv_img_cache_set_size+0xa8>)
|
|
dcd4: 490b ldr r1, [pc, #44] ; (dd04 <lv_img_cache_set_size+0xac>)
|
|
dcd6: 4788 blx r1
|
|
dcd8: e7fe b.n dcd8 <lv_img_cache_set_size+0x80>
|
|
entry_cnt = 0;
|
|
dcda: 2200 movs r2, #0
|
|
dcdc: 4b06 ldr r3, [pc, #24] ; (dcf8 <lv_img_cache_set_size+0xa0>)
|
|
dcde: 801a strh r2, [r3, #0]
|
|
return;
|
|
dce0: e7f1 b.n dcc6 <lv_img_cache_set_size+0x6e>
|
|
dce2: 46c0 nop ; (mov r8, r8)
|
|
dce4: 20004d84 .word 0x20004d84
|
|
dce8: 0000dbe9 .word 0x0000dbe9
|
|
dcec: 00010b39 .word 0x00010b39
|
|
dcf0: 00010a71 .word 0x00010a71
|
|
dcf4: 0000147d .word 0x0000147d
|
|
dcf8: 20002bb6 .word 0x20002bb6
|
|
dcfc: 0001104d .word 0x0001104d
|
|
dd00: 00018724 .word 0x00018724
|
|
dd04: 00001485 .word 0x00001485
|
|
|
|
0000dd08 <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)
|
|
{
|
|
dd08: b530 push {r4, r5, lr}
|
|
dd0a: b085 sub sp, #20
|
|
dd0c: 000c movs r4, r1
|
|
dd0e: 0015 movs r5, r2
|
|
(void)decoder; /*Unused*/
|
|
|
|
lv_img_src_t src_type = lv_img_src_get_type(src);
|
|
dd10: 0008 movs r0, r1
|
|
dd12: 4b30 ldr r3, [pc, #192] ; (ddd4 <lv_img_decoder_built_in_info+0xcc>)
|
|
dd14: 4798 blx r3
|
|
dd16: 1e03 subs r3, r0, #0
|
|
if(src_type == LV_IMG_SRC_VARIABLE) {
|
|
dd18: d122 bne.n dd60 <lv_img_decoder_built_in_info+0x58>
|
|
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
|
|
dd1a: 7823 ldrb r3, [r4, #0]
|
|
dd1c: 06db lsls r3, r3, #27
|
|
dd1e: 0edb lsrs r3, r3, #27
|
|
if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV;
|
|
dd20: 3b04 subs r3, #4
|
|
dd22: b2db uxtb r3, r3
|
|
dd24: 2000 movs r0, #0
|
|
dd26: 2b0a cmp r3, #10
|
|
dd28: d81f bhi.n dd6a <lv_img_decoder_built_in_info+0x62>
|
|
|
|
header->w = ((lv_img_dsc_t *)src)->header.w;
|
|
dd2a: 6823 ldr r3, [r4, #0]
|
|
dd2c: 02db lsls r3, r3, #11
|
|
dd2e: 0d5b lsrs r3, r3, #21
|
|
dd30: 029b lsls r3, r3, #10
|
|
dd32: 4a29 ldr r2, [pc, #164] ; (ddd8 <lv_img_decoder_built_in_info+0xd0>)
|
|
dd34: 6829 ldr r1, [r5, #0]
|
|
dd36: 400a ands r2, r1
|
|
dd38: 4313 orrs r3, r2
|
|
dd3a: 602b str r3, [r5, #0]
|
|
header->h = ((lv_img_dsc_t *)src)->header.h;
|
|
dd3c: 8863 ldrh r3, [r4, #2]
|
|
dd3e: 095b lsrs r3, r3, #5
|
|
dd40: 015a lsls r2, r3, #5
|
|
dd42: 8869 ldrh r1, [r5, #2]
|
|
dd44: 231f movs r3, #31
|
|
dd46: 400b ands r3, r1
|
|
dd48: 4313 orrs r3, r2
|
|
dd4a: 806b strh r3, [r5, #2]
|
|
header->cf = ((lv_img_dsc_t *)src)->header.cf;
|
|
dd4c: 7823 ldrb r3, [r4, #0]
|
|
dd4e: 06db lsls r3, r3, #27
|
|
dd50: 0eda lsrs r2, r3, #27
|
|
dd52: 782b ldrb r3, [r5, #0]
|
|
dd54: 211f movs r1, #31
|
|
dd56: 438b bics r3, r1
|
|
dd58: 4313 orrs r3, r2
|
|
dd5a: 702b strb r3, [r5, #0]
|
|
}
|
|
else {
|
|
LV_LOG_WARN("Image get info found unknown src type");
|
|
return LV_RES_INV;
|
|
}
|
|
return LV_RES_OK;
|
|
dd5c: 3001 adds r0, #1
|
|
dd5e: e004 b.n dd6a <lv_img_decoder_built_in_info+0x62>
|
|
else if(src_type == LV_IMG_SRC_FILE) {
|
|
dd60: 2801 cmp r0, #1
|
|
dd62: d004 beq.n dd6e <lv_img_decoder_built_in_info+0x66>
|
|
return LV_RES_INV;
|
|
dd64: 2000 movs r0, #0
|
|
else if(src_type == LV_IMG_SRC_SYMBOL) {
|
|
dd66: 2b02 cmp r3, #2
|
|
dd68: d023 beq.n ddb2 <lv_img_decoder_built_in_info+0xaa>
|
|
}
|
|
dd6a: b005 add sp, #20
|
|
dd6c: bd30 pop {r4, r5, pc}
|
|
res = lv_fs_open(&file, src, LV_FS_MODE_RD);
|
|
dd6e: 2202 movs r2, #2
|
|
dd70: 0021 movs r1, r4
|
|
dd72: a802 add r0, sp, #8
|
|
dd74: 4b19 ldr r3, [pc, #100] ; (dddc <lv_img_decoder_built_in_info+0xd4>)
|
|
dd76: 4798 blx r3
|
|
if(res == LV_FS_RES_OK) {
|
|
dd78: 2800 cmp r0, #0
|
|
dd7a: d00a beq.n dd92 <lv_img_decoder_built_in_info+0x8a>
|
|
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
|
|
dd7c: 782b ldrb r3, [r5, #0]
|
|
dd7e: 06db lsls r3, r3, #27
|
|
dd80: 0edb lsrs r3, r3, #27
|
|
dd82: 331c adds r3, #28
|
|
dd84: 221f movs r2, #31
|
|
dd86: 4013 ands r3, r2
|
|
return LV_RES_OK;
|
|
dd88: 2001 movs r0, #1
|
|
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
|
|
dd8a: 2b0a cmp r3, #10
|
|
dd8c: d9ed bls.n dd6a <lv_img_decoder_built_in_info+0x62>
|
|
return LV_RES_INV;
|
|
dd8e: 2000 movs r0, #0
|
|
dd90: e7eb b.n dd6a <lv_img_decoder_built_in_info+0x62>
|
|
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
|
|
dd92: ab01 add r3, sp, #4
|
|
dd94: 2204 movs r2, #4
|
|
dd96: 0029 movs r1, r5
|
|
dd98: a802 add r0, sp, #8
|
|
dd9a: 4c11 ldr r4, [pc, #68] ; (dde0 <lv_img_decoder_built_in_info+0xd8>)
|
|
dd9c: 47a0 blx r4
|
|
dd9e: 0004 movs r4, r0
|
|
lv_fs_close(&file);
|
|
dda0: a802 add r0, sp, #8
|
|
dda2: 4b10 ldr r3, [pc, #64] ; (dde4 <lv_img_decoder_built_in_info+0xdc>)
|
|
dda4: 4798 blx r3
|
|
if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) {
|
|
dda6: 2c00 cmp r4, #0
|
|
dda8: d1f1 bne.n dd8e <lv_img_decoder_built_in_info+0x86>
|
|
ddaa: 9b01 ldr r3, [sp, #4]
|
|
ddac: 2b04 cmp r3, #4
|
|
ddae: d1ee bne.n dd8e <lv_img_decoder_built_in_info+0x86>
|
|
ddb0: e7e4 b.n dd7c <lv_img_decoder_built_in_info+0x74>
|
|
header->w = 1;
|
|
ddb2: 4a09 ldr r2, [pc, #36] ; (ddd8 <lv_img_decoder_built_in_info+0xd0>)
|
|
ddb4: 682b ldr r3, [r5, #0]
|
|
ddb6: 401a ands r2, r3
|
|
ddb8: 2380 movs r3, #128 ; 0x80
|
|
ddba: 00db lsls r3, r3, #3
|
|
ddbc: 4313 orrs r3, r2
|
|
ddbe: 602b str r3, [r5, #0]
|
|
header->h = 1;
|
|
ddc0: 2220 movs r2, #32
|
|
ddc2: 806a strh r2, [r5, #2]
|
|
header->cf = LV_IMG_CF_ALPHA_1BIT;
|
|
ddc4: 32c0 adds r2, #192 ; 0xc0
|
|
ddc6: 4013 ands r3, r2
|
|
ddc8: 220b movs r2, #11
|
|
ddca: 4313 orrs r3, r2
|
|
ddcc: 702b strb r3, [r5, #0]
|
|
return LV_RES_OK;
|
|
ddce: 3001 adds r0, #1
|
|
ddd0: e7cb b.n dd6a <lv_img_decoder_built_in_info+0x62>
|
|
ddd2: 46c0 nop ; (mov r8, r8)
|
|
ddd4: 00008161 .word 0x00008161
|
|
ddd8: ffe003ff .word 0xffe003ff
|
|
dddc: 00010429 .word 0x00010429
|
|
dde0: 0001038d .word 0x0001038d
|
|
dde4: 0001035d .word 0x0001035d
|
|
|
|
0000dde8 <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)
|
|
{
|
|
dde8: b570 push {r4, r5, r6, lr}
|
|
ddea: 000d movs r5, r1
|
|
(void)decoder; /*Unused*/
|
|
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
ddec: 69cc ldr r4, [r1, #28]
|
|
if(user_data) {
|
|
ddee: 2c00 cmp r4, #0
|
|
ddf0: d016 beq.n de20 <lv_img_decoder_built_in_close+0x38>
|
|
#if LV_USE_FILESYSTEM
|
|
if(user_data->f) {
|
|
ddf2: 6820 ldr r0, [r4, #0]
|
|
ddf4: 2800 cmp r0, #0
|
|
ddf6: d004 beq.n de02 <lv_img_decoder_built_in_close+0x1a>
|
|
lv_fs_close(user_data->f);
|
|
ddf8: 4b0a ldr r3, [pc, #40] ; (de24 <lv_img_decoder_built_in_close+0x3c>)
|
|
ddfa: 4798 blx r3
|
|
lv_mem_free(user_data->f);
|
|
ddfc: 6820 ldr r0, [r4, #0]
|
|
ddfe: 4b0a ldr r3, [pc, #40] ; (de28 <lv_img_decoder_built_in_close+0x40>)
|
|
de00: 4798 blx r3
|
|
}
|
|
#endif
|
|
if(user_data->palette) lv_mem_free(user_data->palette);
|
|
de02: 6860 ldr r0, [r4, #4]
|
|
de04: 2800 cmp r0, #0
|
|
de06: d001 beq.n de0c <lv_img_decoder_built_in_close+0x24>
|
|
de08: 4b07 ldr r3, [pc, #28] ; (de28 <lv_img_decoder_built_in_close+0x40>)
|
|
de0a: 4798 blx r3
|
|
if(user_data->opa) lv_mem_free(user_data->opa);
|
|
de0c: 68a0 ldr r0, [r4, #8]
|
|
de0e: 2800 cmp r0, #0
|
|
de10: d001 beq.n de16 <lv_img_decoder_built_in_close+0x2e>
|
|
de12: 4b05 ldr r3, [pc, #20] ; (de28 <lv_img_decoder_built_in_close+0x40>)
|
|
de14: 4798 blx r3
|
|
|
|
lv_mem_free(user_data);
|
|
de16: 0020 movs r0, r4
|
|
de18: 4b03 ldr r3, [pc, #12] ; (de28 <lv_img_decoder_built_in_close+0x40>)
|
|
de1a: 4798 blx r3
|
|
|
|
dsc->user_data = NULL;
|
|
de1c: 2300 movs r3, #0
|
|
de1e: 61eb str r3, [r5, #28]
|
|
}
|
|
}
|
|
de20: bd70 pop {r4, r5, r6, pc}
|
|
de22: 46c0 nop ; (mov r8, r8)
|
|
de24: 0001035d .word 0x0001035d
|
|
de28: 00010b39 .word 0x00010b39
|
|
|
|
0000de2c <lv_img_decoder_built_in_open>:
|
|
{
|
|
de2c: b5f0 push {r4, r5, r6, r7, lr}
|
|
de2e: 46de mov lr, fp
|
|
de30: 4657 mov r7, sl
|
|
de32: 464e mov r6, r9
|
|
de34: 4645 mov r5, r8
|
|
de36: b5e0 push {r5, r6, r7, lr}
|
|
de38: b085 sub sp, #20
|
|
de3a: 0006 movs r6, r0
|
|
de3c: 000c movs r4, r1
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
de3e: 7a8b ldrb r3, [r1, #10]
|
|
de40: 2b01 cmp r3, #1
|
|
de42: d018 beq.n de76 <lv_img_decoder_built_in_open+0x4a>
|
|
else if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
|
|
de44: 2b00 cmp r3, #0
|
|
de46: d000 beq.n de4a <lv_img_decoder_built_in_open+0x1e>
|
|
de48: e14a b.n e0e0 <lv_img_decoder_built_in_open+0x2b4>
|
|
if(((lv_img_dsc_t *)dsc->src)->data == NULL) {
|
|
de4a: 684b ldr r3, [r1, #4]
|
|
de4c: 689b ldr r3, [r3, #8]
|
|
de4e: 2b00 cmp r3, #0
|
|
de50: d100 bne.n de54 <lv_img_decoder_built_in_open+0x28>
|
|
de52: e143 b.n e0dc <lv_img_decoder_built_in_open+0x2b0>
|
|
lv_img_cf_t cf = dsc->header.cf;
|
|
de54: 7b08 ldrb r0, [r1, #12]
|
|
de56: 06c0 lsls r0, r0, #27
|
|
de58: 0ec0 lsrs r0, r0, #27
|
|
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
|
|
de5a: 1f03 subs r3, r0, #4
|
|
de5c: 2b02 cmp r3, #2
|
|
de5e: d85a bhi.n df16 <lv_img_decoder_built_in_open+0xea>
|
|
dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data;
|
|
de60: 6863 ldr r3, [r4, #4]
|
|
de62: 689b ldr r3, [r3, #8]
|
|
de64: 6123 str r3, [r4, #16]
|
|
return LV_RES_OK;
|
|
de66: 2001 movs r0, #1
|
|
}
|
|
de68: b005 add sp, #20
|
|
de6a: bc3c pop {r2, r3, r4, r5}
|
|
de6c: 4690 mov r8, r2
|
|
de6e: 4699 mov r9, r3
|
|
de70: 46a2 mov sl, r4
|
|
de72: 46ab mov fp, r5
|
|
de74: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
|
|
de76: 6848 ldr r0, [r1, #4]
|
|
de78: 4b9f ldr r3, [pc, #636] ; (e0f8 <lv_img_decoder_built_in_open+0x2cc>)
|
|
de7a: 4798 blx r3
|
|
de7c: 499f ldr r1, [pc, #636] ; (e0fc <lv_img_decoder_built_in_open+0x2d0>)
|
|
de7e: 4ba0 ldr r3, [pc, #640] ; (e100 <lv_img_decoder_built_in_open+0x2d4>)
|
|
de80: 4798 blx r3
|
|
de82: 2800 cmp r0, #0
|
|
de84: d11a bne.n debc <lv_img_decoder_built_in_open+0x90>
|
|
lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD);
|
|
de86: 2202 movs r2, #2
|
|
de88: 6861 ldr r1, [r4, #4]
|
|
de8a: a802 add r0, sp, #8
|
|
de8c: 4b9d ldr r3, [pc, #628] ; (e104 <lv_img_decoder_built_in_open+0x2d8>)
|
|
de8e: 4798 blx r3
|
|
if(res != LV_FS_RES_OK) {
|
|
de90: 2800 cmp r0, #0
|
|
de92: d113 bne.n debc <lv_img_decoder_built_in_open+0x90>
|
|
if(dsc->user_data == NULL) {
|
|
de94: 69e3 ldr r3, [r4, #28]
|
|
de96: 2b00 cmp r3, #0
|
|
de98: d012 beq.n dec0 <lv_img_decoder_built_in_open+0x94>
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
de9a: 69e5 ldr r5, [r4, #28]
|
|
user_data->f = lv_mem_alloc(sizeof(f));
|
|
de9c: 2008 movs r0, #8
|
|
de9e: 4b9a ldr r3, [pc, #616] ; (e108 <lv_img_decoder_built_in_open+0x2dc>)
|
|
dea0: 4798 blx r3
|
|
dea2: 6028 str r0, [r5, #0]
|
|
LV_ASSERT_MEM(user_data->f);
|
|
dea4: 4b99 ldr r3, [pc, #612] ; (e10c <lv_img_decoder_built_in_open+0x2e0>)
|
|
dea6: 4798 blx r3
|
|
dea8: 2800 cmp r0, #0
|
|
deaa: d01e beq.n deea <lv_img_decoder_built_in_open+0xbe>
|
|
if(user_data->f == NULL) {
|
|
deac: 682a ldr r2, [r5, #0]
|
|
deae: 2300 movs r3, #0
|
|
deb0: 2a00 cmp r2, #0
|
|
deb2: d120 bne.n def6 <lv_img_decoder_built_in_open+0xca>
|
|
lv_img_decoder_built_in_close(decoder, dsc);
|
|
deb4: 0021 movs r1, r4
|
|
deb6: 0030 movs r0, r6
|
|
deb8: 4b95 ldr r3, [pc, #596] ; (e110 <lv_img_decoder_built_in_open+0x2e4>)
|
|
deba: 4798 blx r3
|
|
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
|
|
debc: 2000 movs r0, #0
|
|
debe: e7d3 b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
|
|
dec0: 300c adds r0, #12
|
|
dec2: 4b91 ldr r3, [pc, #580] ; (e108 <lv_img_decoder_built_in_open+0x2dc>)
|
|
dec4: 4798 blx r3
|
|
dec6: 61e0 str r0, [r4, #28]
|
|
LV_ASSERT_MEM(dsc->user_data);
|
|
dec8: 4b90 ldr r3, [pc, #576] ; (e10c <lv_img_decoder_built_in_open+0x2e0>)
|
|
deca: 4798 blx r3
|
|
decc: 2800 cmp r0, #0
|
|
dece: d105 bne.n dedc <lv_img_decoder_built_in_open+0xb0>
|
|
ded0: 69e2 ldr r2, [r4, #28]
|
|
ded2: 2300 movs r3, #0
|
|
ded4: 488f ldr r0, [pc, #572] ; (e114 <lv_img_decoder_built_in_open+0x2e8>)
|
|
ded6: 4990 ldr r1, [pc, #576] ; (e118 <lv_img_decoder_built_in_open+0x2ec>)
|
|
ded8: 4788 blx r1
|
|
deda: e7fe b.n deda <lv_img_decoder_built_in_open+0xae>
|
|
if(dsc->user_data == NULL) {
|
|
dedc: 69e0 ldr r0, [r4, #28]
|
|
dede: 2800 cmp r0, #0
|
|
dee0: d0ec beq.n debc <lv_img_decoder_built_in_open+0x90>
|
|
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
|
|
dee2: 210c movs r1, #12
|
|
dee4: 4b8d ldr r3, [pc, #564] ; (e11c <lv_img_decoder_built_in_open+0x2f0>)
|
|
dee6: 4798 blx r3
|
|
dee8: e7d7 b.n de9a <lv_img_decoder_built_in_open+0x6e>
|
|
LV_ASSERT_MEM(user_data->f);
|
|
deea: 682a ldr r2, [r5, #0]
|
|
deec: 2300 movs r3, #0
|
|
deee: 4889 ldr r0, [pc, #548] ; (e114 <lv_img_decoder_built_in_open+0x2e8>)
|
|
def0: 4989 ldr r1, [pc, #548] ; (e118 <lv_img_decoder_built_in_open+0x2ec>)
|
|
def2: 4788 blx r1
|
|
def4: e7fe b.n def4 <lv_img_decoder_built_in_open+0xc8>
|
|
def6: a902 add r1, sp, #8
|
|
def8: 5c59 ldrb r1, [r3, r1]
|
|
defa: 54d1 strb r1, [r2, r3]
|
|
defc: 3301 adds r3, #1
|
|
while(len) {
|
|
defe: 2b08 cmp r3, #8
|
|
df00: d1f9 bne.n def6 <lv_img_decoder_built_in_open+0xca>
|
|
lv_img_cf_t cf = dsc->header.cf;
|
|
df02: 7b20 ldrb r0, [r4, #12]
|
|
df04: 06c0 lsls r0, r0, #27
|
|
df06: 0ec0 lsrs r0, r0, #27
|
|
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
|
|
df08: 1f03 subs r3, r0, #4
|
|
df0a: 2b02 cmp r3, #2
|
|
df0c: d803 bhi.n df16 <lv_img_decoder_built_in_open+0xea>
|
|
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
|
|
df0e: 7aa3 ldrb r3, [r4, #10]
|
|
df10: 2b00 cmp r3, #0
|
|
df12: d0a5 beq.n de60 <lv_img_decoder_built_in_open+0x34>
|
|
df14: e0eb b.n e0ee <lv_img_decoder_built_in_open+0x2c2>
|
|
else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT ||
|
|
df16: 1fc3 subs r3, r0, #7
|
|
df18: 2b03 cmp r3, #3
|
|
df1a: d907 bls.n df2c <lv_img_decoder_built_in_open+0x100>
|
|
else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT ||
|
|
df1c: 380b subs r0, #11
|
|
df1e: 2803 cmp r0, #3
|
|
df20: d900 bls.n df24 <lv_img_decoder_built_in_open+0xf8>
|
|
df22: e0d5 b.n e0d0 <lv_img_decoder_built_in_open+0x2a4>
|
|
dsc->img_data = NULL;
|
|
df24: 2300 movs r3, #0
|
|
df26: 6123 str r3, [r4, #16]
|
|
return LV_RES_OK; /*Nothing to process*/
|
|
df28: 2001 movs r0, #1
|
|
df2a: e79d b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
uint8_t px_size = lv_img_cf_get_px_size(cf);
|
|
df2c: 4b7c ldr r3, [pc, #496] ; (e120 <lv_img_decoder_built_in_open+0x2f4>)
|
|
df2e: 4798 blx r3
|
|
df30: 0007 movs r7, r0
|
|
if(dsc->user_data == NULL) {
|
|
df32: 69e3 ldr r3, [r4, #28]
|
|
df34: 2b00 cmp r3, #0
|
|
df36: d00f beq.n df58 <lv_img_decoder_built_in_open+0x12c>
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
df38: 69e5 ldr r5, [r4, #28]
|
|
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
|
|
df3a: 2002 movs r0, #2
|
|
df3c: 40b8 lsls r0, r7
|
|
df3e: 4b72 ldr r3, [pc, #456] ; (e108 <lv_img_decoder_built_in_open+0x2dc>)
|
|
df40: 4798 blx r3
|
|
df42: 6068 str r0, [r5, #4]
|
|
LV_ASSERT_MEM(user_data->palette);
|
|
df44: 4b71 ldr r3, [pc, #452] ; (e10c <lv_img_decoder_built_in_open+0x2e0>)
|
|
df46: 4798 blx r3
|
|
df48: 2800 cmp r0, #0
|
|
df4a: d120 bne.n df8e <lv_img_decoder_built_in_open+0x162>
|
|
df4c: 686a ldr r2, [r5, #4]
|
|
df4e: 2300 movs r3, #0
|
|
df50: 4870 ldr r0, [pc, #448] ; (e114 <lv_img_decoder_built_in_open+0x2e8>)
|
|
df52: 4971 ldr r1, [pc, #452] ; (e118 <lv_img_decoder_built_in_open+0x2ec>)
|
|
df54: 4788 blx r1
|
|
df56: e7fe b.n df56 <lv_img_decoder_built_in_open+0x12a>
|
|
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
|
|
df58: 200c movs r0, #12
|
|
df5a: 4b6b ldr r3, [pc, #428] ; (e108 <lv_img_decoder_built_in_open+0x2dc>)
|
|
df5c: 4798 blx r3
|
|
df5e: 61e0 str r0, [r4, #28]
|
|
LV_ASSERT_MEM(dsc->user_data);
|
|
df60: 4b6a ldr r3, [pc, #424] ; (e10c <lv_img_decoder_built_in_open+0x2e0>)
|
|
df62: 4798 blx r3
|
|
df64: 2800 cmp r0, #0
|
|
df66: d105 bne.n df74 <lv_img_decoder_built_in_open+0x148>
|
|
df68: 69e2 ldr r2, [r4, #28]
|
|
df6a: 2300 movs r3, #0
|
|
df6c: 4869 ldr r0, [pc, #420] ; (e114 <lv_img_decoder_built_in_open+0x2e8>)
|
|
df6e: 496a ldr r1, [pc, #424] ; (e118 <lv_img_decoder_built_in_open+0x2ec>)
|
|
df70: 4788 blx r1
|
|
df72: e7fe b.n df72 <lv_img_decoder_built_in_open+0x146>
|
|
if(dsc->user_data == NULL) {
|
|
df74: 69e0 ldr r0, [r4, #28]
|
|
df76: 2800 cmp r0, #0
|
|
df78: d105 bne.n df86 <lv_img_decoder_built_in_open+0x15a>
|
|
lv_img_decoder_built_in_close(decoder, dsc);
|
|
df7a: 0021 movs r1, r4
|
|
df7c: 0030 movs r0, r6
|
|
df7e: 4b64 ldr r3, [pc, #400] ; (e110 <lv_img_decoder_built_in_open+0x2e4>)
|
|
df80: 4798 blx r3
|
|
return LV_RES_INV;
|
|
df82: 2000 movs r0, #0
|
|
df84: e770 b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
|
|
df86: 210c movs r1, #12
|
|
df88: 4b64 ldr r3, [pc, #400] ; (e11c <lv_img_decoder_built_in_open+0x2f0>)
|
|
df8a: 4798 blx r3
|
|
df8c: e7d4 b.n df38 <lv_img_decoder_built_in_open+0x10c>
|
|
uint32_t palette_size = 1 << px_size;
|
|
df8e: 2301 movs r3, #1
|
|
df90: 40bb lsls r3, r7
|
|
df92: 001f movs r7, r3
|
|
user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t));
|
|
df94: 0018 movs r0, r3
|
|
df96: 4b5c ldr r3, [pc, #368] ; (e108 <lv_img_decoder_built_in_open+0x2dc>)
|
|
df98: 4798 blx r3
|
|
df9a: 60a8 str r0, [r5, #8]
|
|
LV_ASSERT_MEM(user_data->opa);
|
|
df9c: 4b5b ldr r3, [pc, #364] ; (e10c <lv_img_decoder_built_in_open+0x2e0>)
|
|
df9e: 4798 blx r3
|
|
dfa0: 2800 cmp r0, #0
|
|
dfa2: d047 beq.n e034 <lv_img_decoder_built_in_open+0x208>
|
|
if(user_data->palette == NULL || user_data->opa == NULL) {
|
|
dfa4: 686b ldr r3, [r5, #4]
|
|
dfa6: 2b00 cmp r3, #0
|
|
dfa8: d04a beq.n e040 <lv_img_decoder_built_in_open+0x214>
|
|
dfaa: 68ab ldr r3, [r5, #8]
|
|
dfac: 2b00 cmp r3, #0
|
|
dfae: d047 beq.n e040 <lv_img_decoder_built_in_open+0x214>
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
dfb0: 7aa3 ldrb r3, [r4, #10]
|
|
dfb2: 2b01 cmp r3, #1
|
|
dfb4: d04a beq.n e04c <lv_img_decoder_built_in_open+0x220>
|
|
lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data;
|
|
dfb6: 6863 ldr r3, [r4, #4]
|
|
dfb8: 6898 ldr r0, [r3, #8]
|
|
for(i = 0; i < palette_size; i++) {
|
|
dfba: 2f00 cmp r7, #0
|
|
dfbc: d100 bne.n dfc0 <lv_img_decoder_built_in_open+0x194>
|
|
dfbe: e083 b.n e0c8 <lv_img_decoder_built_in_open+0x29c>
|
|
dfc0: 2300 movs r3, #0
|
|
dfc2: 4698 mov r8, r3
|
|
#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/
|
|
#endif
|
|
|
|
static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
|
|
{
|
|
return LV_COLOR_MAKE(r, g, b);
|
|
dfc4: 333f adds r3, #63 ; 0x3f
|
|
dfc6: 469b mov fp, r3
|
|
dfc8: 3b20 subs r3, #32
|
|
dfca: 4699 mov r9, r3
|
|
user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue);
|
|
dfcc: 4b55 ldr r3, [pc, #340] ; (e124 <lv_img_decoder_built_in_open+0x2f8>)
|
|
dfce: 469a mov sl, r3
|
|
dfd0: 4641 mov r1, r8
|
|
dfd2: 9401 str r4, [sp, #4]
|
|
dfd4: 004a lsls r2, r1, #1
|
|
dfd6: 686b ldr r3, [r5, #4]
|
|
dfd8: 469c mov ip, r3
|
|
dfda: 4462 add r2, ip
|
|
dfdc: 7843 ldrb r3, [r0, #1]
|
|
dfde: 089c lsrs r4, r3, #2
|
|
dfe0: 9400 str r4, [sp, #0]
|
|
dfe2: 7886 ldrb r6, [r0, #2]
|
|
dfe4: 08f6 lsrs r6, r6, #3
|
|
dfe6: 464c mov r4, r9
|
|
dfe8: 4026 ands r6, r4
|
|
dfea: 7804 ldrb r4, [r0, #0]
|
|
dfec: 08e4 lsrs r4, r4, #3
|
|
dfee: 46a4 mov ip, r4
|
|
dff0: 7814 ldrb r4, [r2, #0]
|
|
dff2: 464b mov r3, r9
|
|
dff4: 439c bics r4, r3
|
|
dff6: 46a0 mov r8, r4
|
|
dff8: 4664 mov r4, ip
|
|
dffa: 4643 mov r3, r8
|
|
dffc: 431c orrs r4, r3
|
|
dffe: 7014 strb r4, [r2, #0]
|
|
e000: 465b mov r3, fp
|
|
e002: 9c00 ldr r4, [sp, #0]
|
|
e004: 401c ands r4, r3
|
|
e006: 0163 lsls r3, r4, #5
|
|
e008: 469c mov ip, r3
|
|
e00a: 8813 ldrh r3, [r2, #0]
|
|
e00c: 4654 mov r4, sl
|
|
e00e: 4023 ands r3, r4
|
|
e010: 4664 mov r4, ip
|
|
e012: 4323 orrs r3, r4
|
|
e014: 8013 strh r3, [r2, #0]
|
|
e016: 00f6 lsls r6, r6, #3
|
|
e018: 0a1b lsrs r3, r3, #8
|
|
e01a: 2407 movs r4, #7
|
|
e01c: 4023 ands r3, r4
|
|
e01e: 4333 orrs r3, r6
|
|
e020: 7053 strb r3, [r2, #1]
|
|
user_data->opa[i] = palette_p[i].ch.alpha;
|
|
e022: 78c3 ldrb r3, [r0, #3]
|
|
e024: 68aa ldr r2, [r5, #8]
|
|
e026: 5453 strb r3, [r2, r1]
|
|
for(i = 0; i < palette_size; i++) {
|
|
e028: 3101 adds r1, #1
|
|
e02a: 3004 adds r0, #4
|
|
e02c: 428f cmp r7, r1
|
|
e02e: d1d1 bne.n dfd4 <lv_img_decoder_built_in_open+0x1a8>
|
|
e030: 9c01 ldr r4, [sp, #4]
|
|
e032: e049 b.n e0c8 <lv_img_decoder_built_in_open+0x29c>
|
|
LV_ASSERT_MEM(user_data->opa);
|
|
e034: 68aa ldr r2, [r5, #8]
|
|
e036: 2300 movs r3, #0
|
|
e038: 4836 ldr r0, [pc, #216] ; (e114 <lv_img_decoder_built_in_open+0x2e8>)
|
|
e03a: 4937 ldr r1, [pc, #220] ; (e118 <lv_img_decoder_built_in_open+0x2ec>)
|
|
e03c: 4788 blx r1
|
|
e03e: e7fe b.n e03e <lv_img_decoder_built_in_open+0x212>
|
|
lv_img_decoder_built_in_close(decoder, dsc);
|
|
e040: 0021 movs r1, r4
|
|
e042: 0030 movs r0, r6
|
|
e044: 4b32 ldr r3, [pc, #200] ; (e110 <lv_img_decoder_built_in_open+0x2e4>)
|
|
e046: 4798 blx r3
|
|
return LV_RES_INV;
|
|
e048: 2000 movs r0, #0
|
|
e04a: e70d b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
lv_fs_seek(user_data->f, 4); /*Skip the header*/
|
|
e04c: 2104 movs r1, #4
|
|
e04e: 6828 ldr r0, [r5, #0]
|
|
e050: 4b35 ldr r3, [pc, #212] ; (e128 <lv_img_decoder_built_in_open+0x2fc>)
|
|
e052: 4798 blx r3
|
|
for(i = 0; i < palette_size; i++) {
|
|
e054: 2f00 cmp r7, #0
|
|
e056: d037 beq.n e0c8 <lv_img_decoder_built_in_open+0x29c>
|
|
e058: 2600 movs r6, #0
|
|
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
|
|
e05a: 4b34 ldr r3, [pc, #208] ; (e12c <lv_img_decoder_built_in_open+0x300>)
|
|
e05c: 469a mov sl, r3
|
|
e05e: 233f movs r3, #63 ; 0x3f
|
|
e060: 4699 mov r9, r3
|
|
e062: 3b20 subs r3, #32
|
|
e064: 4698 mov r8, r3
|
|
e066: 2300 movs r3, #0
|
|
e068: 2204 movs r2, #4
|
|
e06a: a902 add r1, sp, #8
|
|
e06c: 6828 ldr r0, [r5, #0]
|
|
e06e: 47d0 blx sl
|
|
user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue);
|
|
e070: 0072 lsls r2, r6, #1
|
|
e072: 686b ldr r3, [r5, #4]
|
|
e074: 469c mov ip, r3
|
|
e076: 4462 add r2, ip
|
|
e078: ab02 add r3, sp, #8
|
|
e07a: 785b ldrb r3, [r3, #1]
|
|
e07c: 0899 lsrs r1, r3, #2
|
|
e07e: 9100 str r1, [sp, #0]
|
|
e080: a902 add r1, sp, #8
|
|
e082: 7889 ldrb r1, [r1, #2]
|
|
e084: 08c9 lsrs r1, r1, #3
|
|
e086: 4640 mov r0, r8
|
|
e088: 4001 ands r1, r0
|
|
e08a: 468b mov fp, r1
|
|
e08c: a902 add r1, sp, #8
|
|
e08e: 7808 ldrb r0, [r1, #0]
|
|
e090: 08c0 lsrs r0, r0, #3
|
|
e092: 7811 ldrb r1, [r2, #0]
|
|
e094: 4643 mov r3, r8
|
|
e096: 4399 bics r1, r3
|
|
e098: 4308 orrs r0, r1
|
|
e09a: 7010 strb r0, [r2, #0]
|
|
e09c: 464b mov r3, r9
|
|
e09e: 9900 ldr r1, [sp, #0]
|
|
e0a0: 4019 ands r1, r3
|
|
e0a2: 0148 lsls r0, r1, #5
|
|
e0a4: 8813 ldrh r3, [r2, #0]
|
|
e0a6: 491f ldr r1, [pc, #124] ; (e124 <lv_img_decoder_built_in_open+0x2f8>)
|
|
e0a8: 400b ands r3, r1
|
|
e0aa: 4303 orrs r3, r0
|
|
e0ac: 8013 strh r3, [r2, #0]
|
|
e0ae: 4659 mov r1, fp
|
|
e0b0: 00c9 lsls r1, r1, #3
|
|
e0b2: 055b lsls r3, r3, #21
|
|
e0b4: 0f5b lsrs r3, r3, #29
|
|
e0b6: 430b orrs r3, r1
|
|
e0b8: 7053 strb r3, [r2, #1]
|
|
user_data->opa[i] = cur_color.ch.alpha;
|
|
e0ba: ab02 add r3, sp, #8
|
|
e0bc: 78db ldrb r3, [r3, #3]
|
|
e0be: 68aa ldr r2, [r5, #8]
|
|
e0c0: 5593 strb r3, [r2, r6]
|
|
for(i = 0; i < palette_size; i++) {
|
|
e0c2: 3601 adds r6, #1
|
|
e0c4: 42b7 cmp r7, r6
|
|
e0c6: d1ce bne.n e066 <lv_img_decoder_built_in_open+0x23a>
|
|
dsc->img_data = NULL;
|
|
e0c8: 2300 movs r3, #0
|
|
e0ca: 6123 str r3, [r4, #16]
|
|
return LV_RES_OK;
|
|
e0cc: 2001 movs r0, #1
|
|
e0ce: e6cb b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
lv_img_decoder_built_in_close(decoder, dsc);
|
|
e0d0: 0021 movs r1, r4
|
|
e0d2: 0030 movs r0, r6
|
|
e0d4: 4b0e ldr r3, [pc, #56] ; (e110 <lv_img_decoder_built_in_open+0x2e4>)
|
|
e0d6: 4798 blx r3
|
|
return LV_RES_INV;
|
|
e0d8: 2000 movs r0, #0
|
|
e0da: e6c5 b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
return LV_RES_INV;
|
|
e0dc: 2000 movs r0, #0
|
|
e0de: e6c3 b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
lv_img_cf_t cf = dsc->header.cf;
|
|
e0e0: 7b08 ldrb r0, [r1, #12]
|
|
e0e2: 06c0 lsls r0, r0, #27
|
|
e0e4: 0ec0 lsrs r0, r0, #27
|
|
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
|
|
e0e6: 1f03 subs r3, r0, #4
|
|
e0e8: 2b02 cmp r3, #2
|
|
e0ea: d900 bls.n e0ee <lv_img_decoder_built_in_open+0x2c2>
|
|
e0ec: e713 b.n df16 <lv_img_decoder_built_in_open+0xea>
|
|
dsc->img_data = NULL;
|
|
e0ee: 2300 movs r3, #0
|
|
e0f0: 6123 str r3, [r4, #16]
|
|
return LV_RES_OK;
|
|
e0f2: 2001 movs r0, #1
|
|
e0f4: e6b8 b.n de68 <lv_img_decoder_built_in_open+0x3c>
|
|
e0f6: 46c0 nop ; (mov r8, r8)
|
|
e0f8: 000104f1 .word 0x000104f1
|
|
e0fc: 0001895c .word 0x0001895c
|
|
e100: 00017e5d .word 0x00017e5d
|
|
e104: 00010429 .word 0x00010429
|
|
e108: 00010a71 .word 0x00010a71
|
|
e10c: 0000147d .word 0x0000147d
|
|
e110: 0000dde9 .word 0x0000dde9
|
|
e114: 00018724 .word 0x00018724
|
|
e118: 00001485 .word 0x00001485
|
|
e11c: 0001104d .word 0x0001104d
|
|
e120: 00007ee5 .word 0x00007ee5
|
|
e124: fffff81f .word 0xfffff81f
|
|
e128: 000103cf .word 0x000103cf
|
|
e12c: 0001038d .word 0x0001038d
|
|
|
|
0000e130 <lv_img_decoder_built_in_read_line>:
|
|
{
|
|
e130: b5f0 push {r4, r5, r6, r7, lr}
|
|
e132: 46de mov lr, fp
|
|
e134: 4657 mov r7, sl
|
|
e136: 464e mov r6, r9
|
|
e138: 4645 mov r5, r8
|
|
e13a: b5e0 push {r5, r6, r7, lr}
|
|
e13c: b08b sub sp, #44 ; 0x2c
|
|
e13e: 000d movs r5, r1
|
|
e140: 0017 movs r7, r2
|
|
e142: 9301 str r3, [sp, #4]
|
|
e144: ab14 add r3, sp, #80 ; 0x50
|
|
e146: 2600 movs r6, #0
|
|
e148: 5f9e ldrsh r6, [r3, r6]
|
|
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
|
|
e14a: 7b0a ldrb r2, [r1, #12]
|
|
e14c: 231f movs r3, #31
|
|
e14e: 4013 ands r3, r2
|
|
e150: 1f1a subs r2, r3, #4
|
|
e152: 2a02 cmp r2, #2
|
|
e154: d836 bhi.n e1c4 <lv_img_decoder_built_in_read_line+0x94>
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
e156: 7a8b ldrb r3, [r1, #10]
|
|
lv_res_t res = LV_RES_INV;
|
|
e158: 2000 movs r0, #0
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
e15a: 2b01 cmp r3, #1
|
|
e15c: d006 beq.n e16c <lv_img_decoder_built_in_read_line+0x3c>
|
|
}
|
|
e15e: b00b add sp, #44 ; 0x2c
|
|
e160: bc3c pop {r2, r3, r4, r5}
|
|
e162: 4690 mov r8, r2
|
|
e164: 4699 mov r9, r3
|
|
e166: 46a2 mov sl, r4
|
|
e168: 46ab mov fp, r5
|
|
e16a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
|
|
static lv_res_t lv_img_decoder_built_in_line_true_color(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y,
|
|
lv_coord_t len, uint8_t * buf)
|
|
{
|
|
#if LV_USE_FILESYSTEM
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
e16c: 69cb ldr r3, [r1, #28]
|
|
e16e: 4699 mov r9, r3
|
|
lv_fs_res_t res;
|
|
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
|
|
e170: 7b08 ldrb r0, [r1, #12]
|
|
e172: 06c0 lsls r0, r0, #27
|
|
e174: 0ec0 lsrs r0, r0, #27
|
|
e176: 4bd5 ldr r3, [pc, #852] ; (e4cc <lv_img_decoder_built_in_read_line+0x39c>)
|
|
e178: 4798 blx r3
|
|
e17a: 4680 mov r8, r0
|
|
|
|
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
|
|
e17c: 68e9 ldr r1, [r5, #12]
|
|
e17e: 02c9 lsls r1, r1, #11
|
|
e180: 0d49 lsrs r1, r1, #21
|
|
e182: 9b01 ldr r3, [sp, #4]
|
|
e184: 434b muls r3, r1
|
|
e186: 19d9 adds r1, r3, r7
|
|
e188: 4341 muls r1, r0
|
|
e18a: 10c9 asrs r1, r1, #3
|
|
pos += 4; /*Skip the header*/
|
|
e18c: 3104 adds r1, #4
|
|
res = lv_fs_seek(user_data->f, pos);
|
|
e18e: 464b mov r3, r9
|
|
e190: 6818 ldr r0, [r3, #0]
|
|
e192: 4bcf ldr r3, [pc, #828] ; (e4d0 <lv_img_decoder_built_in_read_line+0x3a0>)
|
|
e194: 4798 blx r3
|
|
e196: 0003 movs r3, r0
|
|
if(res != LV_FS_RES_OK) {
|
|
LV_LOG_WARN("Built-in image decoder seek failed");
|
|
return LV_RES_INV;
|
|
e198: 2000 movs r0, #0
|
|
if(res != LV_FS_RES_OK) {
|
|
e19a: 2b00 cmp r3, #0
|
|
e19c: d1df bne.n e15e <lv_img_decoder_built_in_read_line+0x2e>
|
|
}
|
|
uint32_t btr = len * (px_size >> 3);
|
|
e19e: 4643 mov r3, r8
|
|
e1a0: 08d8 lsrs r0, r3, #3
|
|
e1a2: b2c0 uxtb r0, r0
|
|
e1a4: 4346 muls r6, r0
|
|
uint32_t br = 0;
|
|
e1a6: 2300 movs r3, #0
|
|
e1a8: 9306 str r3, [sp, #24]
|
|
lv_fs_read(user_data->f, buf, btr, &br);
|
|
e1aa: 464b mov r3, r9
|
|
e1ac: 6818 ldr r0, [r3, #0]
|
|
e1ae: ab06 add r3, sp, #24
|
|
e1b0: 0032 movs r2, r6
|
|
e1b2: 9915 ldr r1, [sp, #84] ; 0x54
|
|
e1b4: 4cc7 ldr r4, [pc, #796] ; (e4d4 <lv_img_decoder_built_in_read_line+0x3a4>)
|
|
e1b6: 47a0 blx r4
|
|
if(res != LV_FS_RES_OK || btr != br) {
|
|
e1b8: 9b06 ldr r3, [sp, #24]
|
|
e1ba: 1b9e subs r6, r3, r6
|
|
e1bc: 4270 negs r0, r6
|
|
e1be: 4170 adcs r0, r6
|
|
return LV_RES_INV;
|
|
e1c0: b2c0 uxtb r0, r0
|
|
e1c2: e7cc b.n e15e <lv_img_decoder_built_in_read_line+0x2e>
|
|
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
|
|
e1c4: 001a movs r2, r3
|
|
e1c6: 3a0b subs r2, #11
|
|
e1c8: 2a03 cmp r2, #3
|
|
e1ca: d92d bls.n e228 <lv_img_decoder_built_in_read_line+0xf8>
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT ||
|
|
e1cc: 3b07 subs r3, #7
|
|
return LV_RES_INV;
|
|
e1ce: 2000 movs r0, #0
|
|
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT ||
|
|
e1d0: 2b03 cmp r3, #3
|
|
e1d2: d8c4 bhi.n e15e <lv_img_decoder_built_in_read_line+0x2e>
|
|
static lv_res_t lv_img_decoder_built_in_line_indexed(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y,
|
|
lv_coord_t len, uint8_t * buf)
|
|
{
|
|
|
|
#if LV_IMG_CF_INDEXED
|
|
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
|
|
e1d4: 7b08 ldrb r0, [r1, #12]
|
|
e1d6: 06c0 lsls r0, r0, #27
|
|
e1d8: 0ec0 lsrs r0, r0, #27
|
|
e1da: 4bbc ldr r3, [pc, #752] ; (e4cc <lv_img_decoder_built_in_read_line+0x39c>)
|
|
e1dc: 4798 blx r3
|
|
e1de: 4681 mov r9, r0
|
|
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
|
|
e1e0: 2301 movs r3, #1
|
|
e1e2: 4083 lsls r3, r0
|
|
e1e4: 3b01 subs r3, #1
|
|
e1e6: b29b uxth r3, r3
|
|
e1e8: 4698 mov r8, r3
|
|
|
|
lv_coord_t w = 0;
|
|
int8_t pos = 0;
|
|
uint32_t ofs = 0;
|
|
switch(dsc->header.cf) {
|
|
e1ea: 7b2b ldrb r3, [r5, #12]
|
|
e1ec: 06db lsls r3, r3, #27
|
|
e1ee: 0edb lsrs r3, r3, #27
|
|
e1f0: b2da uxtb r2, r3
|
|
e1f2: 2a08 cmp r2, #8
|
|
e1f4: d100 bne.n e1f8 <lv_img_decoder_built_in_read_line+0xc8>
|
|
e1f6: e135 b.n e464 <lv_img_decoder_built_in_read_line+0x334>
|
|
e1f8: d800 bhi.n e1fc <lv_img_decoder_built_in_read_line+0xcc>
|
|
e1fa: e0fe b.n e3fa <lv_img_decoder_built_in_read_line+0x2ca>
|
|
e1fc: b2da uxtb r2, r3
|
|
e1fe: 2a09 cmp r2, #9
|
|
e200: d100 bne.n e204 <lv_img_decoder_built_in_read_line+0xd4>
|
|
e202: e146 b.n e492 <lv_img_decoder_built_in_read_line+0x362>
|
|
e204: 2a0a cmp r2, #10
|
|
e206: d000 beq.n e20a <lv_img_decoder_built_in_read_line+0xda>
|
|
e208: e15b b.n e4c2 <lv_img_decoder_built_in_read_line+0x392>
|
|
ofs += w * y + (x >> 1); /*First pixel*/
|
|
ofs += 64; /*Skip the palette*/
|
|
pos = 4 - ((x & 0x1) * 4);
|
|
break;
|
|
case LV_IMG_CF_INDEXED_8BIT:
|
|
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
|
|
e20a: 68eb ldr r3, [r5, #12]
|
|
e20c: 02db lsls r3, r3, #11
|
|
e20e: 0d5b lsrs r3, r3, #21
|
|
e210: b29a uxth r2, r3
|
|
e212: b21b sxth r3, r3
|
|
e214: 469a mov sl, r3
|
|
ofs += w * y + x; /*First pixel*/
|
|
e216: 9c01 ldr r4, [sp, #4]
|
|
e218: 4354 muls r4, r2
|
|
e21a: 19e7 adds r7, r4, r7
|
|
ofs += 1024; /*Skip the palette*/
|
|
e21c: 2380 movs r3, #128 ; 0x80
|
|
e21e: 00db lsls r3, r3, #3
|
|
e220: 469b mov fp, r3
|
|
e222: 44bb add fp, r7
|
|
pos = 0;
|
|
e224: 2400 movs r4, #0
|
|
e226: e0fe b.n e426 <lv_img_decoder_built_in_read_line+0x2f6>
|
|
const lv_opa_t alpha1_opa_table[2] = {0, 255}; /*Opacity mapping with bpp = 1 (Just for compatibility)*/
|
|
e228: 2100 movs r1, #0
|
|
e22a: ab04 add r3, sp, #16
|
|
e22c: 7019 strb r1, [r3, #0]
|
|
e22e: 22ff movs r2, #255 ; 0xff
|
|
e230: 705a strb r2, [r3, #1]
|
|
const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
|
|
e232: ab05 add r3, sp, #20
|
|
e234: 7019 strb r1, [r3, #0]
|
|
e236: 3155 adds r1, #85 ; 0x55
|
|
e238: 7059 strb r1, [r3, #1]
|
|
e23a: 3155 adds r1, #85 ; 0x55
|
|
e23c: 7099 strb r1, [r3, #2]
|
|
e23e: 70da strb r2, [r3, #3]
|
|
const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
|
|
e240: aa06 add r2, sp, #24
|
|
e242: 4ba5 ldr r3, [pc, #660] ; (e4d8 <lv_img_decoder_built_in_read_line+0x3a8>)
|
|
e244: cb13 ldmia r3!, {r0, r1, r4}
|
|
e246: c213 stmia r2!, {r0, r1, r4}
|
|
e248: 681b ldr r3, [r3, #0]
|
|
e24a: 6013 str r3, [r2, #0]
|
|
lv_color_t bg_color = dsc->color;
|
|
e24c: 8929 ldrh r1, [r5, #8]
|
|
for(i = 0; i < len; i++) {
|
|
e24e: 2e00 cmp r6, #0
|
|
e250: dd11 ble.n e276 <lv_img_decoder_built_in_read_line+0x146>
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
|
|
e252: 0a08 lsrs r0, r1, #8
|
|
e254: 9c15 ldr r4, [sp, #84] ; 0x54
|
|
e256: 1e72 subs r2, r6, #1
|
|
e258: b292 uxth r2, r2
|
|
e25a: 3201 adds r2, #1
|
|
e25c: 4694 mov ip, r2
|
|
e25e: 0052 lsls r2, r2, #1
|
|
e260: 4462 add r2, ip
|
|
e262: 0023 movs r3, r4
|
|
e264: 46a4 mov ip, r4
|
|
e266: 4462 add r2, ip
|
|
e268: 9c01 ldr r4, [sp, #4]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF;
|
|
e26a: 7019 strb r1, [r3, #0]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
|
|
e26c: 7058 strb r0, [r3, #1]
|
|
e26e: 3303 adds r3, #3
|
|
for(i = 0; i < len; i++) {
|
|
e270: 429a cmp r2, r3
|
|
e272: d1fa bne.n e26a <lv_img_decoder_built_in_read_line+0x13a>
|
|
e274: 9401 str r4, [sp, #4]
|
|
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
|
|
e276: 7b28 ldrb r0, [r5, #12]
|
|
e278: 06c0 lsls r0, r0, #27
|
|
e27a: 0ec0 lsrs r0, r0, #27
|
|
e27c: 4b93 ldr r3, [pc, #588] ; (e4cc <lv_img_decoder_built_in_read_line+0x39c>)
|
|
e27e: 4798 blx r3
|
|
e280: 4681 mov r9, r0
|
|
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
|
|
e282: 2301 movs r3, #1
|
|
e284: 4083 lsls r3, r0
|
|
e286: 3b01 subs r3, #1
|
|
e288: b29b uxth r3, r3
|
|
e28a: 4698 mov r8, r3
|
|
switch(dsc->header.cf) {
|
|
e28c: 7b2b ldrb r3, [r5, #12]
|
|
e28e: 06db lsls r3, r3, #27
|
|
e290: 0edb lsrs r3, r3, #27
|
|
e292: b2da uxtb r2, r3
|
|
e294: 2a0c cmp r2, #12
|
|
e296: d04b beq.n e330 <lv_img_decoder_built_in_read_line+0x200>
|
|
e298: d911 bls.n e2be <lv_img_decoder_built_in_read_line+0x18e>
|
|
e29a: b2da uxtb r2, r3
|
|
e29c: 2a0d cmp r2, #13
|
|
e29e: d05d beq.n e35c <lv_img_decoder_built_in_read_line+0x22c>
|
|
e2a0: 2a0e cmp r2, #14
|
|
e2a2: d170 bne.n e386 <lv_img_decoder_built_in_read_line+0x256>
|
|
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
|
|
e2a4: 68eb ldr r3, [r5, #12]
|
|
e2a6: 02db lsls r3, r3, #11
|
|
e2a8: 0d5b lsrs r3, r3, #21
|
|
e2aa: b299 uxth r1, r3
|
|
e2ac: b21b sxth r3, r3
|
|
e2ae: 9302 str r3, [sp, #8]
|
|
ofs += w * y + x; /*First pixel*/
|
|
e2b0: 9c01 ldr r4, [sp, #4]
|
|
e2b2: 434c muls r4, r1
|
|
e2b4: 19e4 adds r4, r4, r7
|
|
pos = 0;
|
|
e2b6: 2700 movs r7, #0
|
|
const lv_opa_t * opa_table = NULL;
|
|
e2b8: 2300 movs r3, #0
|
|
e2ba: 469a mov sl, r3
|
|
e2bc: e015 b.n e2ea <lv_img_decoder_built_in_read_line+0x1ba>
|
|
switch(dsc->header.cf) {
|
|
e2be: 2a0b cmp r2, #11
|
|
e2c0: d161 bne.n e386 <lv_img_decoder_built_in_read_line+0x256>
|
|
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
|
|
e2c2: 68eb ldr r3, [r5, #12]
|
|
e2c4: 02db lsls r3, r3, #11
|
|
e2c6: 0d5b lsrs r3, r3, #21
|
|
e2c8: 10da asrs r2, r3, #3
|
|
if(dsc->header.w & 0x7) w++;
|
|
e2ca: 1c51 adds r1, r2, #1
|
|
e2cc: 9102 str r1, [sp, #8]
|
|
e2ce: 075b lsls r3, r3, #29
|
|
e2d0: d101 bne.n e2d6 <lv_img_decoder_built_in_read_line+0x1a6>
|
|
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
|
|
e2d2: b213 sxth r3, r2
|
|
e2d4: 9302 str r3, [sp, #8]
|
|
ofs += w * y + (x >> 3); /*First pixel*/
|
|
e2d6: 9b02 ldr r3, [sp, #8]
|
|
e2d8: 9c01 ldr r4, [sp, #4]
|
|
e2da: 435c muls r4, r3
|
|
e2dc: 10f9 asrs r1, r7, #3
|
|
e2de: 1864 adds r4, r4, r1
|
|
pos = 7 - (x & 0x7);
|
|
e2e0: 2307 movs r3, #7
|
|
e2e2: 43bb bics r3, r7
|
|
e2e4: 001f movs r7, r3
|
|
opa_table = alpha1_opa_table;
|
|
e2e6: ab04 add r3, sp, #16
|
|
e2e8: 469a mov sl, r3
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
e2ea: 69eb ldr r3, [r5, #28]
|
|
e2ec: 469b mov fp, r3
|
|
uint8_t * fs_buf = _lv_mem_buf_get(w);
|
|
e2ee: 9802 ldr r0, [sp, #8]
|
|
e2f0: 4b7a ldr r3, [pc, #488] ; (e4dc <lv_img_decoder_built_in_read_line+0x3ac>)
|
|
e2f2: 4798 blx r3
|
|
e2f4: 9003 str r0, [sp, #12]
|
|
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
|
|
e2f6: 7aab ldrb r3, [r5, #10]
|
|
e2f8: 2b00 cmp r3, #0
|
|
e2fa: d14e bne.n e39a <lv_img_decoder_built_in_read_line+0x26a>
|
|
data_tmp = img_dsc->data + ofs;
|
|
e2fc: 686b ldr r3, [r5, #4]
|
|
e2fe: 6899 ldr r1, [r3, #8]
|
|
e300: 190c adds r4, r1, r4
|
|
for(i = 0; i < len; i++) {
|
|
e302: 2e00 cmp r6, #0
|
|
e304: dd74 ble.n e3f0 <lv_img_decoder_built_in_read_line+0x2c0>
|
|
e306: 9b15 ldr r3, [sp, #84] ; 0x54
|
|
e308: 1c98 adds r0, r3, #2
|
|
e30a: 3e01 subs r6, #1
|
|
e30c: b2b6 uxth r6, r6
|
|
e30e: 0072 lsls r2, r6, #1
|
|
e310: 1992 adds r2, r2, r6
|
|
e312: 3205 adds r2, #5
|
|
e314: 469c mov ip, r3
|
|
e316: 4462 add r2, ip
|
|
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
|
|
e318: 211f movs r1, #31
|
|
e31a: 23ff movs r3, #255 ; 0xff
|
|
e31c: 469b mov fp, r3
|
|
pos = 8 - px_size;
|
|
e31e: 2308 movs r3, #8
|
|
e320: 464e mov r6, r9
|
|
e322: 1b9b subs r3, r3, r6
|
|
e324: b25b sxtb r3, r3
|
|
e326: 9301 str r3, [sp, #4]
|
|
e328: 46ac mov ip, r5
|
|
e32a: 0015 movs r5, r2
|
|
e32c: 46c1 mov r9, r8
|
|
e32e: e04b b.n e3c8 <lv_img_decoder_built_in_read_line+0x298>
|
|
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
|
|
e330: 68eb ldr r3, [r5, #12]
|
|
e332: 02db lsls r3, r3, #11
|
|
e334: 0d5b lsrs r3, r3, #21
|
|
e336: 109a asrs r2, r3, #2
|
|
if(dsc->header.w & 0x3) w++;
|
|
e338: 1c51 adds r1, r2, #1
|
|
e33a: 9102 str r1, [sp, #8]
|
|
e33c: 079b lsls r3, r3, #30
|
|
e33e: d101 bne.n e344 <lv_img_decoder_built_in_read_line+0x214>
|
|
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
|
|
e340: b213 sxth r3, r2
|
|
e342: 9302 str r3, [sp, #8]
|
|
ofs += w * y + (x >> 2); /*First pixel*/
|
|
e344: 9b02 ldr r3, [sp, #8]
|
|
e346: 9c01 ldr r4, [sp, #4]
|
|
e348: 435c muls r4, r3
|
|
e34a: 10b9 asrs r1, r7, #2
|
|
e34c: 1864 adds r4, r4, r1
|
|
pos = 6 - ((x & 0x3) * 2);
|
|
e34e: b2bb uxth r3, r7
|
|
e350: 2703 movs r7, #3
|
|
e352: 439f bics r7, r3
|
|
e354: 007f lsls r7, r7, #1
|
|
opa_table = alpha2_opa_table;
|
|
e356: ab05 add r3, sp, #20
|
|
e358: 469a mov sl, r3
|
|
e35a: e7c6 b.n e2ea <lv_img_decoder_built_in_read_line+0x1ba>
|
|
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
|
|
e35c: 68eb ldr r3, [r5, #12]
|
|
e35e: 02db lsls r3, r3, #11
|
|
e360: 0d5b lsrs r3, r3, #21
|
|
e362: 105a asrs r2, r3, #1
|
|
if(dsc->header.w & 0x1) w++;
|
|
e364: 1c51 adds r1, r2, #1
|
|
e366: 9102 str r1, [sp, #8]
|
|
e368: 07db lsls r3, r3, #31
|
|
e36a: d401 bmi.n e370 <lv_img_decoder_built_in_read_line+0x240>
|
|
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
|
|
e36c: b213 sxth r3, r2
|
|
e36e: 9302 str r3, [sp, #8]
|
|
ofs += w * y + (x >> 1); /*First pixel*/
|
|
e370: 9b02 ldr r3, [sp, #8]
|
|
e372: 9c01 ldr r4, [sp, #4]
|
|
e374: 435c muls r4, r3
|
|
e376: 1079 asrs r1, r7, #1
|
|
e378: 1864 adds r4, r4, r1
|
|
pos = 4 - ((x & 0x1) * 4);
|
|
e37a: 07fb lsls r3, r7, #31
|
|
e37c: d509 bpl.n e392 <lv_img_decoder_built_in_read_line+0x262>
|
|
e37e: 2700 movs r7, #0
|
|
opa_table = alpha4_opa_table;
|
|
e380: ab06 add r3, sp, #24
|
|
e382: 469a mov sl, r3
|
|
e384: e7b1 b.n e2ea <lv_img_decoder_built_in_read_line+0x1ba>
|
|
int8_t pos = 0;
|
|
e386: 2700 movs r7, #0
|
|
uint32_t ofs = 0;
|
|
e388: 2400 movs r4, #0
|
|
lv_coord_t w = 0;
|
|
e38a: 2300 movs r3, #0
|
|
e38c: 9302 str r3, [sp, #8]
|
|
const lv_opa_t * opa_table = NULL;
|
|
e38e: 469a mov sl, r3
|
|
e390: e7ab b.n e2ea <lv_img_decoder_built_in_read_line+0x1ba>
|
|
pos = 4 - ((x & 0x1) * 4);
|
|
e392: 2704 movs r7, #4
|
|
opa_table = alpha4_opa_table;
|
|
e394: ab06 add r3, sp, #24
|
|
e396: 469a mov sl, r3
|
|
e398: e7a7 b.n e2ea <lv_img_decoder_built_in_read_line+0x1ba>
|
|
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
|
|
e39a: 1d21 adds r1, r4, #4
|
|
e39c: 465b mov r3, fp
|
|
e39e: 6818 ldr r0, [r3, #0]
|
|
e3a0: 4b4b ldr r3, [pc, #300] ; (e4d0 <lv_img_decoder_built_in_read_line+0x3a0>)
|
|
e3a2: 4798 blx r3
|
|
lv_fs_read(user_data->f, fs_buf, w, NULL);
|
|
e3a4: 465b mov r3, fp
|
|
e3a6: 6818 ldr r0, [r3, #0]
|
|
e3a8: 2300 movs r3, #0
|
|
e3aa: 9a02 ldr r2, [sp, #8]
|
|
e3ac: 9903 ldr r1, [sp, #12]
|
|
e3ae: 4c49 ldr r4, [pc, #292] ; (e4d4 <lv_img_decoder_built_in_read_line+0x3a4>)
|
|
e3b0: 47a0 blx r4
|
|
data_tmp = fs_buf;
|
|
e3b2: 9c03 ldr r4, [sp, #12]
|
|
e3b4: e7a5 b.n e302 <lv_img_decoder_built_in_read_line+0x1d2>
|
|
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
|
|
e3b6: b2db uxtb r3, r3
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
|
|
e3b8: 7003 strb r3, [r0, #0]
|
|
pos -= px_size;
|
|
e3ba: 1bbf subs r7, r7, r6
|
|
e3bc: b27f sxtb r7, r7
|
|
if(pos < 0) {
|
|
e3be: 2f00 cmp r7, #0
|
|
e3c0: db13 blt.n e3ea <lv_img_decoder_built_in_read_line+0x2ba>
|
|
e3c2: 3003 adds r0, #3
|
|
for(i = 0; i < len; i++) {
|
|
e3c4: 4285 cmp r5, r0
|
|
e3c6: d013 beq.n e3f0 <lv_img_decoder_built_in_read_line+0x2c0>
|
|
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
|
|
e3c8: 7823 ldrb r3, [r4, #0]
|
|
e3ca: 4698 mov r8, r3
|
|
e3cc: 464b mov r3, r9
|
|
e3ce: 40bb lsls r3, r7
|
|
e3d0: 4642 mov r2, r8
|
|
e3d2: 4013 ands r3, r2
|
|
e3d4: 413b asrs r3, r7
|
|
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
|
|
e3d6: 4662 mov r2, ip
|
|
e3d8: 7b12 ldrb r2, [r2, #12]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
|
|
e3da: 400a ands r2, r1
|
|
e3dc: 2a0e cmp r2, #14
|
|
e3de: d0ea beq.n e3b6 <lv_img_decoder_built_in_read_line+0x286>
|
|
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
|
|
e3e0: 465a mov r2, fp
|
|
e3e2: 4013 ands r3, r2
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
|
|
e3e4: 4652 mov r2, sl
|
|
e3e6: 5cd3 ldrb r3, [r2, r3]
|
|
e3e8: e7e6 b.n e3b8 <lv_img_decoder_built_in_read_line+0x288>
|
|
pos = 8 - px_size;
|
|
e3ea: 9f01 ldr r7, [sp, #4]
|
|
data_tmp++;
|
|
e3ec: 3401 adds r4, #1
|
|
e3ee: e7e8 b.n e3c2 <lv_img_decoder_built_in_read_line+0x292>
|
|
_lv_mem_buf_release(fs_buf);
|
|
e3f0: 9803 ldr r0, [sp, #12]
|
|
e3f2: 4b3b ldr r3, [pc, #236] ; (e4e0 <lv_img_decoder_built_in_read_line+0x3b0>)
|
|
e3f4: 4798 blx r3
|
|
res = lv_img_decoder_built_in_line_alpha(dsc, x, y, len, buf);
|
|
e3f6: 2001 movs r0, #1
|
|
e3f8: e6b1 b.n e15e <lv_img_decoder_built_in_read_line+0x2e>
|
|
switch(dsc->header.cf) {
|
|
e3fa: 2a07 cmp r2, #7
|
|
e3fc: d161 bne.n e4c2 <lv_img_decoder_built_in_read_line+0x392>
|
|
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
|
|
e3fe: 68eb ldr r3, [r5, #12]
|
|
e400: 02db lsls r3, r3, #11
|
|
e402: 0d5b lsrs r3, r3, #21
|
|
e404: 10da asrs r2, r3, #3
|
|
if(dsc->header.w & 0x7) w++;
|
|
e406: 1c51 adds r1, r2, #1
|
|
e408: 468a mov sl, r1
|
|
e40a: 075b lsls r3, r3, #29
|
|
e40c: d101 bne.n e412 <lv_img_decoder_built_in_read_line+0x2e2>
|
|
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
|
|
e40e: b213 sxth r3, r2
|
|
e410: 469a mov sl, r3
|
|
ofs += w * y + (x >> 3); /*First pixel*/
|
|
e412: 4653 mov r3, sl
|
|
e414: 9c01 ldr r4, [sp, #4]
|
|
e416: 435c muls r4, r3
|
|
e418: 10fb asrs r3, r7, #3
|
|
e41a: 18e4 adds r4, r4, r3
|
|
ofs += 8; /*Skip the palette*/
|
|
e41c: 2308 movs r3, #8
|
|
e41e: 469b mov fp, r3
|
|
e420: 44a3 add fp, r4
|
|
pos = 7 - (x & 0x7);
|
|
e422: 2407 movs r4, #7
|
|
e424: 43bc bics r4, r7
|
|
break;
|
|
}
|
|
|
|
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
|
|
e426: 69ef ldr r7, [r5, #28]
|
|
|
|
#if LV_USE_FILESYSTEM
|
|
uint8_t * fs_buf = _lv_mem_buf_get(w);
|
|
e428: 4650 mov r0, sl
|
|
e42a: 4b2c ldr r3, [pc, #176] ; (e4dc <lv_img_decoder_built_in_read_line+0x3ac>)
|
|
e42c: 4798 blx r3
|
|
e42e: 9002 str r0, [sp, #8]
|
|
#endif
|
|
const uint8_t * data_tmp = NULL;
|
|
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
|
|
e430: 7aab ldrb r3, [r5, #10]
|
|
e432: 2b00 cmp r3, #0
|
|
e434: d156 bne.n e4e4 <lv_img_decoder_built_in_read_line+0x3b4>
|
|
const lv_img_dsc_t * img_dsc = dsc->src;
|
|
data_tmp = img_dsc->data + ofs;
|
|
e436: 686b ldr r3, [r5, #4]
|
|
e438: 6899 ldr r1, [r3, #8]
|
|
e43a: 4459 add r1, fp
|
|
return LV_RES_INV;
|
|
#endif
|
|
}
|
|
|
|
lv_coord_t i;
|
|
for(i = 0; i < len; i++) {
|
|
e43c: 2e00 cmp r6, #0
|
|
e43e: dd78 ble.n e532 <lv_img_decoder_built_in_read_line+0x402>
|
|
e440: 9815 ldr r0, [sp, #84] ; 0x54
|
|
e442: 3e01 subs r6, #1
|
|
e444: b2b6 uxth r6, r6
|
|
e446: 3601 adds r6, #1
|
|
e448: 0073 lsls r3, r6, #1
|
|
e44a: 199e adds r6, r3, r6
|
|
e44c: 4684 mov ip, r0
|
|
e44e: 4466 add r6, ip
|
|
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
|
|
|
|
lv_color_t color = user_data->palette[val_act];
|
|
e450: 23ff movs r3, #255 ; 0xff
|
|
e452: 469a mov sl, r3
|
|
#endif
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
|
|
|
|
pos -= px_size;
|
|
if(pos < 0) {
|
|
pos = 8 - px_size;
|
|
e454: 2208 movs r2, #8
|
|
e456: 464b mov r3, r9
|
|
e458: 1ad2 subs r2, r2, r3
|
|
e45a: b253 sxtb r3, r2
|
|
e45c: 9301 str r3, [sp, #4]
|
|
e45e: 46b4 mov ip, r6
|
|
e460: 464e mov r6, r9
|
|
e462: e04f b.n e504 <lv_img_decoder_built_in_read_line+0x3d4>
|
|
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
|
|
e464: 68eb ldr r3, [r5, #12]
|
|
e466: 02db lsls r3, r3, #11
|
|
e468: 0d5b lsrs r3, r3, #21
|
|
e46a: 109a asrs r2, r3, #2
|
|
if(dsc->header.w & 0x3) w++;
|
|
e46c: 1c51 adds r1, r2, #1
|
|
e46e: 468a mov sl, r1
|
|
e470: 079b lsls r3, r3, #30
|
|
e472: d101 bne.n e478 <lv_img_decoder_built_in_read_line+0x348>
|
|
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
|
|
e474: b213 sxth r3, r2
|
|
e476: 469a mov sl, r3
|
|
ofs += w * y + (x >> 2); /*First pixel*/
|
|
e478: 4653 mov r3, sl
|
|
e47a: 9c01 ldr r4, [sp, #4]
|
|
e47c: 435c muls r4, r3
|
|
e47e: 10bb asrs r3, r7, #2
|
|
e480: 18e4 adds r4, r4, r3
|
|
ofs += 16; /*Skip the palette*/
|
|
e482: 2310 movs r3, #16
|
|
e484: 469b mov fp, r3
|
|
e486: 44a3 add fp, r4
|
|
pos = 6 - ((x & 0x3) * 2);
|
|
e488: b2bf uxth r7, r7
|
|
e48a: 2403 movs r4, #3
|
|
e48c: 43bc bics r4, r7
|
|
e48e: 0064 lsls r4, r4, #1
|
|
e490: e7c9 b.n e426 <lv_img_decoder_built_in_read_line+0x2f6>
|
|
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
|
|
e492: 68eb ldr r3, [r5, #12]
|
|
e494: 02db lsls r3, r3, #11
|
|
e496: 0d5b lsrs r3, r3, #21
|
|
e498: 105a asrs r2, r3, #1
|
|
if(dsc->header.w & 0x1) w++;
|
|
e49a: 1c51 adds r1, r2, #1
|
|
e49c: 468a mov sl, r1
|
|
e49e: 07db lsls r3, r3, #31
|
|
e4a0: d401 bmi.n e4a6 <lv_img_decoder_built_in_read_line+0x376>
|
|
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
|
|
e4a2: b213 sxth r3, r2
|
|
e4a4: 469a mov sl, r3
|
|
ofs += w * y + (x >> 1); /*First pixel*/
|
|
e4a6: 4653 mov r3, sl
|
|
e4a8: 9c01 ldr r4, [sp, #4]
|
|
e4aa: 435c muls r4, r3
|
|
e4ac: 107b asrs r3, r7, #1
|
|
e4ae: 18e4 adds r4, r4, r3
|
|
ofs += 64; /*Skip the palette*/
|
|
e4b0: 2340 movs r3, #64 ; 0x40
|
|
e4b2: 469b mov fp, r3
|
|
e4b4: 44a3 add fp, r4
|
|
pos = 4 - ((x & 0x1) * 4);
|
|
e4b6: 2401 movs r4, #1
|
|
e4b8: 4027 ands r7, r4
|
|
e4ba: 427c negs r4, r7
|
|
e4bc: 417c adcs r4, r7
|
|
e4be: 00a4 lsls r4, r4, #2
|
|
e4c0: e7b1 b.n e426 <lv_img_decoder_built_in_read_line+0x2f6>
|
|
uint32_t ofs = 0;
|
|
e4c2: 2300 movs r3, #0
|
|
e4c4: 469b mov fp, r3
|
|
int8_t pos = 0;
|
|
e4c6: 2400 movs r4, #0
|
|
lv_coord_t w = 0;
|
|
e4c8: 469a mov sl, r3
|
|
e4ca: e7ac b.n e426 <lv_img_decoder_built_in_read_line+0x2f6>
|
|
e4cc: 00007ee5 .word 0x00007ee5
|
|
e4d0: 000103cf .word 0x000103cf
|
|
e4d4: 0001038d .word 0x0001038d
|
|
e4d8: 0001894c .word 0x0001894c
|
|
e4dc: 00010ec1 .word 0x00010ec1
|
|
e4e0: 00010bd5 .word 0x00010bd5
|
|
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
|
|
e4e4: 4659 mov r1, fp
|
|
e4e6: 3104 adds r1, #4
|
|
e4e8: 6838 ldr r0, [r7, #0]
|
|
e4ea: 4b14 ldr r3, [pc, #80] ; (e53c <lv_img_decoder_built_in_read_line+0x40c>)
|
|
e4ec: 4798 blx r3
|
|
lv_fs_read(user_data->f, fs_buf, w, NULL);
|
|
e4ee: 2300 movs r3, #0
|
|
e4f0: 4652 mov r2, sl
|
|
e4f2: 9902 ldr r1, [sp, #8]
|
|
e4f4: 6838 ldr r0, [r7, #0]
|
|
e4f6: 4d12 ldr r5, [pc, #72] ; (e540 <lv_img_decoder_built_in_read_line+0x410>)
|
|
e4f8: 47a8 blx r5
|
|
data_tmp = fs_buf;
|
|
e4fa: 9902 ldr r1, [sp, #8]
|
|
e4fc: e79e b.n e43c <lv_img_decoder_built_in_read_line+0x30c>
|
|
e4fe: 3003 adds r0, #3
|
|
for(i = 0; i < len; i++) {
|
|
e500: 4560 cmp r0, ip
|
|
e502: d016 beq.n e532 <lv_img_decoder_built_in_read_line+0x402>
|
|
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
|
|
e504: 780a ldrb r2, [r1, #0]
|
|
e506: 4643 mov r3, r8
|
|
e508: 40a3 lsls r3, r4
|
|
e50a: 4013 ands r3, r2
|
|
e50c: 4123 asrs r3, r4
|
|
lv_color_t color = user_data->palette[val_act];
|
|
e50e: 4652 mov r2, sl
|
|
e510: 4013 ands r3, r2
|
|
e512: 005a lsls r2, r3, #1
|
|
e514: 687d ldr r5, [r7, #4]
|
|
e516: 5b52 ldrh r2, [r2, r5]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF;
|
|
e518: 7002 strb r2, [r0, #0]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF;
|
|
e51a: 0a12 lsrs r2, r2, #8
|
|
e51c: 7042 strb r2, [r0, #1]
|
|
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
|
|
e51e: 68ba ldr r2, [r7, #8]
|
|
e520: 5cd3 ldrb r3, [r2, r3]
|
|
e522: 7083 strb r3, [r0, #2]
|
|
pos -= px_size;
|
|
e524: 1ba4 subs r4, r4, r6
|
|
e526: b264 sxtb r4, r4
|
|
if(pos < 0) {
|
|
e528: 2c00 cmp r4, #0
|
|
e52a: dae8 bge.n e4fe <lv_img_decoder_built_in_read_line+0x3ce>
|
|
pos = 8 - px_size;
|
|
e52c: 9c01 ldr r4, [sp, #4]
|
|
data_tmp++;
|
|
e52e: 3101 adds r1, #1
|
|
e530: e7e5 b.n e4fe <lv_img_decoder_built_in_read_line+0x3ce>
|
|
}
|
|
}
|
|
#if LV_USE_FILESYSTEM
|
|
_lv_mem_buf_release(fs_buf);
|
|
e532: 9802 ldr r0, [sp, #8]
|
|
e534: 4b03 ldr r3, [pc, #12] ; (e544 <lv_img_decoder_built_in_read_line+0x414>)
|
|
e536: 4798 blx r3
|
|
res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf);
|
|
e538: 2001 movs r0, #1
|
|
e53a: e610 b.n e15e <lv_img_decoder_built_in_read_line+0x2e>
|
|
e53c: 000103cf .word 0x000103cf
|
|
e540: 0001038d .word 0x0001038d
|
|
e544: 00010bd5 .word 0x00010bd5
|
|
|
|
0000e548 <lv_img_decoder_get_info>:
|
|
{
|
|
e548: b5f0 push {r4, r5, r6, r7, lr}
|
|
e54a: b083 sub sp, #12
|
|
e54c: 9001 str r0, [sp, #4]
|
|
e54e: 000d movs r5, r1
|
|
header->always_zero = 0;
|
|
e550: 780a ldrb r2, [r1, #0]
|
|
e552: 231f movs r3, #31
|
|
e554: 4013 ands r3, r2
|
|
e556: 700b strb r3, [r1, #0]
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
|
|
e558: 480d ldr r0, [pc, #52] ; (e590 <lv_img_decoder_get_info+0x48>)
|
|
e55a: 4b0e ldr r3, [pc, #56] ; (e594 <lv_img_decoder_get_info+0x4c>)
|
|
e55c: 4798 blx r3
|
|
e55e: 1e04 subs r4, r0, #0
|
|
e560: d014 beq.n e58c <lv_img_decoder_get_info+0x44>
|
|
e562: 4e0d ldr r6, [pc, #52] ; (e598 <lv_img_decoder_get_info+0x50>)
|
|
e564: e005 b.n e572 <lv_img_decoder_get_info+0x2a>
|
|
res = LV_RES_INV;
|
|
e566: 2700 movs r7, #0
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
|
|
e568: 0021 movs r1, r4
|
|
e56a: 4809 ldr r0, [pc, #36] ; (e590 <lv_img_decoder_get_info+0x48>)
|
|
e56c: 47b0 blx r6
|
|
e56e: 1e04 subs r4, r0, #0
|
|
e570: d009 beq.n e586 <lv_img_decoder_get_info+0x3e>
|
|
if(d->info_cb) {
|
|
e572: 6823 ldr r3, [r4, #0]
|
|
e574: 2b00 cmp r3, #0
|
|
e576: d0f6 beq.n e566 <lv_img_decoder_get_info+0x1e>
|
|
res = d->info_cb(d, src, header);
|
|
e578: 002a movs r2, r5
|
|
e57a: 9901 ldr r1, [sp, #4]
|
|
e57c: 0020 movs r0, r4
|
|
e57e: 4798 blx r3
|
|
e580: 0007 movs r7, r0
|
|
if(res == LV_RES_OK) break;
|
|
e582: 2801 cmp r0, #1
|
|
e584: d1f0 bne.n e568 <lv_img_decoder_get_info+0x20>
|
|
}
|
|
e586: 0038 movs r0, r7
|
|
e588: b003 add sp, #12
|
|
e58a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_res_t res = LV_RES_INV;
|
|
e58c: 2700 movs r7, #0
|
|
e58e: e7fa b.n e586 <lv_img_decoder_get_info+0x3e>
|
|
e590: 20004cd0 .word 0x20004cd0
|
|
e594: 0001066d .word 0x0001066d
|
|
e598: 00010685 .word 0x00010685
|
|
|
|
0000e59c <lv_img_decoder_open>:
|
|
{
|
|
e59c: b5f0 push {r4, r5, r6, r7, lr}
|
|
e59e: b083 sub sp, #12
|
|
e5a0: 0007 movs r7, r0
|
|
e5a2: 9100 str r1, [sp, #0]
|
|
dsc->color = color;
|
|
e5a4: 8102 strh r2, [r0, #8]
|
|
dsc->src_type = lv_img_src_get_type(src);
|
|
e5a6: 0008 movs r0, r1
|
|
e5a8: 4b25 ldr r3, [pc, #148] ; (e640 <lv_img_decoder_open+0xa4>)
|
|
e5aa: 4798 blx r3
|
|
e5ac: 72b8 strb r0, [r7, #10]
|
|
dsc->user_data = NULL;
|
|
e5ae: 2300 movs r3, #0
|
|
e5b0: 61fb str r3, [r7, #28]
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
e5b2: 2801 cmp r0, #1
|
|
e5b4: d00e beq.n e5d4 <lv_img_decoder_open+0x38>
|
|
dsc->src = src;
|
|
e5b6: 9b00 ldr r3, [sp, #0]
|
|
e5b8: 607b str r3, [r7, #4]
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
|
|
e5ba: 4822 ldr r0, [pc, #136] ; (e644 <lv_img_decoder_open+0xa8>)
|
|
e5bc: 4b22 ldr r3, [pc, #136] ; (e648 <lv_img_decoder_open+0xac>)
|
|
e5be: 4798 blx r3
|
|
e5c0: 1e04 subs r4, r0, #0
|
|
e5c2: d036 beq.n e632 <lv_img_decoder_open+0x96>
|
|
e5c4: 2500 movs r5, #0
|
|
res = d->info_cb(d, src, &dsc->header);
|
|
e5c6: 230c movs r3, #12
|
|
e5c8: 469c mov ip, r3
|
|
e5ca: 44bc add ip, r7
|
|
e5cc: 4663 mov r3, ip
|
|
e5ce: 9301 str r3, [sp, #4]
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
|
|
e5d0: 4e1e ldr r6, [pc, #120] ; (e64c <lv_img_decoder_open+0xb0>)
|
|
e5d2: e010 b.n e5f6 <lv_img_decoder_open+0x5a>
|
|
size_t fnlen = strlen(src);
|
|
e5d4: 9c00 ldr r4, [sp, #0]
|
|
e5d6: 0020 movs r0, r4
|
|
e5d8: 4b1d ldr r3, [pc, #116] ; (e650 <lv_img_decoder_open+0xb4>)
|
|
e5da: 4798 blx r3
|
|
dsc->src = lv_mem_alloc(fnlen + 1);
|
|
e5dc: 3001 adds r0, #1
|
|
e5de: 4b1d ldr r3, [pc, #116] ; (e654 <lv_img_decoder_open+0xb8>)
|
|
e5e0: 4798 blx r3
|
|
e5e2: 6078 str r0, [r7, #4]
|
|
strcpy((char *)dsc->src, src);
|
|
e5e4: 0021 movs r1, r4
|
|
e5e6: 4b1c ldr r3, [pc, #112] ; (e658 <lv_img_decoder_open+0xbc>)
|
|
e5e8: 4798 blx r3
|
|
e5ea: e7e6 b.n e5ba <lv_img_decoder_open+0x1e>
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
|
|
e5ec: 0021 movs r1, r4
|
|
e5ee: 4815 ldr r0, [pc, #84] ; (e644 <lv_img_decoder_open+0xa8>)
|
|
e5f0: 47b0 blx r6
|
|
e5f2: 1e04 subs r4, r0, #0
|
|
e5f4: d018 beq.n e628 <lv_img_decoder_open+0x8c>
|
|
if(d->info_cb == NULL || d->open_cb == NULL) continue;
|
|
e5f6: 6823 ldr r3, [r4, #0]
|
|
e5f8: 2b00 cmp r3, #0
|
|
e5fa: d0f7 beq.n e5ec <lv_img_decoder_open+0x50>
|
|
e5fc: 6862 ldr r2, [r4, #4]
|
|
e5fe: 2a00 cmp r2, #0
|
|
e600: d0f4 beq.n e5ec <lv_img_decoder_open+0x50>
|
|
res = d->info_cb(d, src, &dsc->header);
|
|
e602: 9a01 ldr r2, [sp, #4]
|
|
e604: 9900 ldr r1, [sp, #0]
|
|
e606: 0020 movs r0, r4
|
|
e608: 4798 blx r3
|
|
e60a: 0005 movs r5, r0
|
|
if(res != LV_RES_OK) continue;
|
|
e60c: 2801 cmp r0, #1
|
|
e60e: d1ed bne.n e5ec <lv_img_decoder_open+0x50>
|
|
dsc->error_msg = NULL;
|
|
e610: 2300 movs r3, #0
|
|
e612: 61bb str r3, [r7, #24]
|
|
dsc->img_data = NULL;
|
|
e614: 613b str r3, [r7, #16]
|
|
dsc->decoder = d;
|
|
e616: 603c str r4, [r7, #0]
|
|
res = d->open_cb(d, dsc);
|
|
e618: 0039 movs r1, r7
|
|
e61a: 0020 movs r0, r4
|
|
e61c: 6863 ldr r3, [r4, #4]
|
|
e61e: 4798 blx r3
|
|
e620: 0005 movs r5, r0
|
|
if(res == LV_RES_OK) break;
|
|
e622: 2801 cmp r0, #1
|
|
e624: d1e2 bne.n e5ec <lv_img_decoder_open+0x50>
|
|
e626: e001 b.n e62c <lv_img_decoder_open+0x90>
|
|
if(res == LV_RES_INV) {
|
|
e628: 2d00 cmp r5, #0
|
|
e62a: d003 beq.n e634 <lv_img_decoder_open+0x98>
|
|
}
|
|
e62c: 0028 movs r0, r5
|
|
e62e: b003 add sp, #12
|
|
e630: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_res_t res = LV_RES_INV;
|
|
e632: 2500 movs r5, #0
|
|
_lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t));
|
|
e634: 2120 movs r1, #32
|
|
e636: 0038 movs r0, r7
|
|
e638: 4b08 ldr r3, [pc, #32] ; (e65c <lv_img_decoder_open+0xc0>)
|
|
e63a: 4798 blx r3
|
|
e63c: e7f6 b.n e62c <lv_img_decoder_open+0x90>
|
|
e63e: 46c0 nop ; (mov r8, r8)
|
|
e640: 00008161 .word 0x00008161
|
|
e644: 20004cd0 .word 0x20004cd0
|
|
e648: 0001066d .word 0x0001066d
|
|
e64c: 00010685 .word 0x00010685
|
|
e650: 00017e81 .word 0x00017e81
|
|
e654: 00010a71 .word 0x00010a71
|
|
e658: 00017e71 .word 0x00017e71
|
|
e65c: 0001104d .word 0x0001104d
|
|
|
|
0000e660 <lv_img_decoder_read_line>:
|
|
{
|
|
e660: b570 push {r4, r5, r6, lr}
|
|
e662: b082 sub sp, #8
|
|
if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf);
|
|
e664: 6805 ldr r5, [r0, #0]
|
|
e666: 68ac ldr r4, [r5, #8]
|
|
e668: 2c00 cmp r4, #0
|
|
e66a: d009 beq.n e680 <lv_img_decoder_read_line+0x20>
|
|
e66c: 9e06 ldr r6, [sp, #24]
|
|
e66e: 9601 str r6, [sp, #4]
|
|
e670: 9300 str r3, [sp, #0]
|
|
e672: 0013 movs r3, r2
|
|
e674: 000a movs r2, r1
|
|
e676: 0001 movs r1, r0
|
|
e678: 0028 movs r0, r5
|
|
e67a: 47a0 blx r4
|
|
}
|
|
e67c: b002 add sp, #8
|
|
e67e: bd70 pop {r4, r5, r6, pc}
|
|
lv_res_t res = LV_RES_INV;
|
|
e680: 2000 movs r0, #0
|
|
e682: e7fb b.n e67c <lv_img_decoder_read_line+0x1c>
|
|
|
|
0000e684 <lv_img_decoder_close>:
|
|
{
|
|
e684: b510 push {r4, lr}
|
|
e686: 0004 movs r4, r0
|
|
if(dsc->decoder) {
|
|
e688: 6800 ldr r0, [r0, #0]
|
|
e68a: 2800 cmp r0, #0
|
|
e68c: d007 beq.n e69e <lv_img_decoder_close+0x1a>
|
|
if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
|
|
e68e: 68c3 ldr r3, [r0, #12]
|
|
e690: 2b00 cmp r3, #0
|
|
e692: d001 beq.n e698 <lv_img_decoder_close+0x14>
|
|
e694: 0021 movs r1, r4
|
|
e696: 4798 blx r3
|
|
if(dsc->src_type == LV_IMG_SRC_FILE) {
|
|
e698: 7aa3 ldrb r3, [r4, #10]
|
|
e69a: 2b01 cmp r3, #1
|
|
e69c: d000 beq.n e6a0 <lv_img_decoder_close+0x1c>
|
|
}
|
|
e69e: bd10 pop {r4, pc}
|
|
lv_mem_free(dsc->src);
|
|
e6a0: 6860 ldr r0, [r4, #4]
|
|
e6a2: 4b02 ldr r3, [pc, #8] ; (e6ac <lv_img_decoder_close+0x28>)
|
|
e6a4: 4798 blx r3
|
|
dsc->src = NULL;
|
|
e6a6: 2300 movs r3, #0
|
|
e6a8: 6063 str r3, [r4, #4]
|
|
}
|
|
e6aa: e7f8 b.n e69e <lv_img_decoder_close+0x1a>
|
|
e6ac: 00010b39 .word 0x00010b39
|
|
|
|
0000e6b0 <lv_img_decoder_create>:
|
|
{
|
|
e6b0: b510 push {r4, lr}
|
|
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
|
|
e6b2: 480b ldr r0, [pc, #44] ; (e6e0 <lv_img_decoder_create+0x30>)
|
|
e6b4: 4b0b ldr r3, [pc, #44] ; (e6e4 <lv_img_decoder_create+0x34>)
|
|
e6b6: 4798 blx r3
|
|
e6b8: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(decoder);
|
|
e6ba: 4b0b ldr r3, [pc, #44] ; (e6e8 <lv_img_decoder_create+0x38>)
|
|
e6bc: 4798 blx r3
|
|
e6be: 2800 cmp r0, #0
|
|
e6c0: d007 beq.n e6d2 <lv_img_decoder_create+0x22>
|
|
if(decoder == NULL) return NULL;
|
|
e6c2: 2c00 cmp r4, #0
|
|
e6c4: d003 beq.n e6ce <lv_img_decoder_create+0x1e>
|
|
_lv_memset_00(decoder, sizeof(lv_img_decoder_t));
|
|
e6c6: 2110 movs r1, #16
|
|
e6c8: 0020 movs r0, r4
|
|
e6ca: 4b08 ldr r3, [pc, #32] ; (e6ec <lv_img_decoder_create+0x3c>)
|
|
e6cc: 4798 blx r3
|
|
}
|
|
e6ce: 0020 movs r0, r4
|
|
e6d0: bd10 pop {r4, pc}
|
|
LV_ASSERT_MEM(decoder);
|
|
e6d2: 0022 movs r2, r4
|
|
e6d4: 2300 movs r3, #0
|
|
e6d6: 4806 ldr r0, [pc, #24] ; (e6f0 <lv_img_decoder_create+0x40>)
|
|
e6d8: 4906 ldr r1, [pc, #24] ; (e6f4 <lv_img_decoder_create+0x44>)
|
|
e6da: 4788 blx r1
|
|
e6dc: e7fe b.n e6dc <lv_img_decoder_create+0x2c>
|
|
e6de: 46c0 nop ; (mov r8, r8)
|
|
e6e0: 20004cd0 .word 0x20004cd0
|
|
e6e4: 000105cd .word 0x000105cd
|
|
e6e8: 0000147d .word 0x0000147d
|
|
e6ec: 0001104d .word 0x0001104d
|
|
e6f0: 00018724 .word 0x00018724
|
|
e6f4: 00001485 .word 0x00001485
|
|
|
|
0000e6f8 <_lv_img_decoder_init>:
|
|
{
|
|
e6f8: b510 push {r4, lr}
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t));
|
|
e6fa: 2110 movs r1, #16
|
|
e6fc: 480c ldr r0, [pc, #48] ; (e730 <_lv_img_decoder_init+0x38>)
|
|
e6fe: 4b0d ldr r3, [pc, #52] ; (e734 <_lv_img_decoder_init+0x3c>)
|
|
e700: 4798 blx r3
|
|
decoder = lv_img_decoder_create();
|
|
e702: 4b0d ldr r3, [pc, #52] ; (e738 <_lv_img_decoder_init+0x40>)
|
|
e704: 4798 blx r3
|
|
if(decoder == NULL) {
|
|
e706: 2800 cmp r0, #0
|
|
e708: d008 beq.n e71c <_lv_img_decoder_init+0x24>
|
|
decoder->info_cb = info_cb;
|
|
e70a: 4b0c ldr r3, [pc, #48] ; (e73c <_lv_img_decoder_init+0x44>)
|
|
e70c: 6003 str r3, [r0, #0]
|
|
decoder->open_cb = open_cb;
|
|
e70e: 4b0c ldr r3, [pc, #48] ; (e740 <_lv_img_decoder_init+0x48>)
|
|
e710: 6043 str r3, [r0, #4]
|
|
decoder->read_line_cb = read_line_cb;
|
|
e712: 4b0c ldr r3, [pc, #48] ; (e744 <_lv_img_decoder_init+0x4c>)
|
|
e714: 6083 str r3, [r0, #8]
|
|
decoder->close_cb = close_cb;
|
|
e716: 4b0c ldr r3, [pc, #48] ; (e748 <_lv_img_decoder_init+0x50>)
|
|
e718: 60c3 str r3, [r0, #12]
|
|
}
|
|
e71a: bd10 pop {r4, pc}
|
|
LV_ASSERT_MEM(decoder);
|
|
e71c: 4b0b ldr r3, [pc, #44] ; (e74c <_lv_img_decoder_init+0x54>)
|
|
e71e: 4798 blx r3
|
|
e720: 2800 cmp r0, #0
|
|
e722: d1fa bne.n e71a <_lv_img_decoder_init+0x22>
|
|
e724: 2200 movs r2, #0
|
|
e726: 2300 movs r3, #0
|
|
e728: 4809 ldr r0, [pc, #36] ; (e750 <_lv_img_decoder_init+0x58>)
|
|
e72a: 490a ldr r1, [pc, #40] ; (e754 <_lv_img_decoder_init+0x5c>)
|
|
e72c: 4788 blx r1
|
|
e72e: e7fe b.n e72e <_lv_img_decoder_init+0x36>
|
|
e730: 20004cd0 .word 0x20004cd0
|
|
e734: 000105b9 .word 0x000105b9
|
|
e738: 0000e6b1 .word 0x0000e6b1
|
|
e73c: 0000dd09 .word 0x0000dd09
|
|
e740: 0000de2d .word 0x0000de2d
|
|
e744: 0000e131 .word 0x0000e131
|
|
e748: 0000dde9 .word 0x0000dde9
|
|
e74c: 0000147d .word 0x0000147d
|
|
e750: 00018724 .word 0x00018724
|
|
e754: 00001485 .word 0x00001485
|
|
|
|
0000e758 <lv_font_get_glyph_bitmap>:
|
|
* @param font_p pointer to a font
|
|
* @param letter an UNICODE character code
|
|
* @return pointer to the bitmap of the letter
|
|
*/
|
|
const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter)
|
|
{
|
|
e758: b510 push {r4, lr}
|
|
return font_p->get_glyph_bitmap(font_p, letter);
|
|
e75a: 6843 ldr r3, [r0, #4]
|
|
e75c: 4798 blx r3
|
|
}
|
|
e75e: bd10 pop {r4, pc}
|
|
|
|
0000e760 <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)
|
|
{
|
|
e760: b510 push {r4, lr}
|
|
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
|
|
e762: 6804 ldr r4, [r0, #0]
|
|
e764: 47a0 blx r4
|
|
}
|
|
e766: bd10 pop {r4, pc}
|
|
|
|
0000e768 <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)
|
|
{
|
|
e768: b510 push {r4, lr}
|
|
e76a: b084 sub sp, #16
|
|
e76c: 0013 movs r3, r2
|
|
lv_font_glyph_dsc_t g;
|
|
bool ret;
|
|
ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next);
|
|
e76e: 000a movs r2, r1
|
|
e770: a901 add r1, sp, #4
|
|
e772: 4c05 ldr r4, [pc, #20] ; (e788 <lv_font_get_glyph_width+0x20>)
|
|
e774: 47a0 blx r4
|
|
if(ret) return g.adv_w;
|
|
else return 0;
|
|
e776: 2300 movs r3, #0
|
|
if(ret) return g.adv_w;
|
|
e778: 2800 cmp r0, #0
|
|
e77a: d001 beq.n e780 <lv_font_get_glyph_width+0x18>
|
|
e77c: ab01 add r3, sp, #4
|
|
e77e: 881b ldrh r3, [r3, #0]
|
|
}
|
|
e780: 0018 movs r0, r3
|
|
e782: b004 add sp, #16
|
|
e784: bd10 pop {r4, pc}
|
|
e786: 46c0 nop ; (mov r8, r8)
|
|
e788: 0000e761 .word 0x0000e761
|
|
|
|
0000e78c <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];
|
|
e78c: 7803 ldrb r3, [r0, #0]
|
|
e78e: 780a ldrb r2, [r1, #0]
|
|
e790: 4293 cmp r3, r2
|
|
e792: d001 beq.n e798 <kern_pair_8_compare+0xc>
|
|
e794: 1a98 subs r0, r3, r2
|
|
else return (int32_t) ref8_p[1] - element8_p[1];
|
|
|
|
}
|
|
e796: 4770 bx lr
|
|
else return (int32_t) ref8_p[1] - element8_p[1];
|
|
e798: 7840 ldrb r0, [r0, #1]
|
|
e79a: 784b ldrb r3, [r1, #1]
|
|
e79c: 1ac0 subs r0, r0, r3
|
|
e79e: e7fa b.n e796 <kern_pair_8_compare+0xa>
|
|
|
|
0000e7a0 <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];
|
|
e7a0: 8803 ldrh r3, [r0, #0]
|
|
e7a2: 880a ldrh r2, [r1, #0]
|
|
e7a4: 4293 cmp r3, r2
|
|
e7a6: d001 beq.n e7ac <kern_pair_16_compare+0xc>
|
|
e7a8: 1a98 subs r0, r3, r2
|
|
else return (int32_t) ref16_p[1] - element16_p[1];
|
|
}
|
|
e7aa: 4770 bx lr
|
|
else return (int32_t) ref16_p[1] - element16_p[1];
|
|
e7ac: 8840 ldrh r0, [r0, #2]
|
|
e7ae: 884b ldrh r3, [r1, #2]
|
|
e7b0: 1ac0 subs r0, r0, r3
|
|
e7b2: e7fa b.n e7aa <kern_pair_16_compare+0xa>
|
|
|
|
0000e7b4 <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));
|
|
e7b4: 8800 ldrh r0, [r0, #0]
|
|
e7b6: 880b ldrh r3, [r1, #0]
|
|
e7b8: 1ac0 subs r0, r0, r3
|
|
}
|
|
e7ba: 4770 bx lr
|
|
|
|
0000e7bc <get_glyph_dsc_id>:
|
|
{
|
|
e7bc: b5f0 push {r4, r5, r6, r7, lr}
|
|
e7be: b087 sub sp, #28
|
|
e7c0: 000c movs r4, r1
|
|
if(letter == '\0') return 0;
|
|
e7c2: 1e0b subs r3, r1, #0
|
|
e7c4: d018 beq.n e7f8 <get_glyph_dsc_id+0x3c>
|
|
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
|
|
e7c6: 6906 ldr r6, [r0, #16]
|
|
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
|
|
e7c8: 69b3 ldr r3, [r6, #24]
|
|
e7ca: 4299 cmp r1, r3
|
|
e7cc: d017 beq.n e7fe <get_glyph_dsc_id+0x42>
|
|
for(i = 0; i < fdsc->cmap_num; i++) {
|
|
e7ce: 8a72 ldrh r2, [r6, #18]
|
|
e7d0: 0592 lsls r2, r2, #22
|
|
e7d2: 0d92 lsrs r2, r2, #22
|
|
e7d4: 2a00 cmp r2, #0
|
|
e7d6: dd62 ble.n e89e <get_glyph_dsc_id+0xe2>
|
|
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
|
|
e7d8: 68b7 ldr r7, [r6, #8]
|
|
e7da: 683b ldr r3, [r7, #0]
|
|
e7dc: 1ac8 subs r0, r1, r3
|
|
e7de: 9005 str r0, [sp, #20]
|
|
if(rcp > fdsc->cmaps[i].range_length) continue;
|
|
e7e0: 88bb ldrh r3, [r7, #4]
|
|
e7e2: 4298 cmp r0, r3
|
|
e7e4: d80d bhi.n e802 <get_glyph_dsc_id+0x46>
|
|
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
|
|
e7e6: 2300 movs r3, #0
|
|
e7e8: 9303 str r3, [sp, #12]
|
|
if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) {
|
|
e7ea: 7cba ldrb r2, [r7, #18]
|
|
e7ec: 2a00 cmp r2, #0
|
|
e7ee: d11a bne.n e826 <get_glyph_dsc_id+0x6a>
|
|
glyph_id = fdsc->cmaps[i].glyph_id_start + rcp;
|
|
e7f0: 88fb ldrh r3, [r7, #6]
|
|
e7f2: 181b adds r3, r3, r0
|
|
fdsc->last_letter = letter;
|
|
e7f4: 61b4 str r4, [r6, #24]
|
|
fdsc->last_glyph_id = glyph_id;
|
|
e7f6: 61f3 str r3, [r6, #28]
|
|
}
|
|
e7f8: 0018 movs r0, r3
|
|
e7fa: b007 add sp, #28
|
|
e7fc: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
|
|
e7fe: 69f3 ldr r3, [r6, #28]
|
|
e800: e7fa b.n e7f8 <get_glyph_dsc_id+0x3c>
|
|
if(rcp > fdsc->cmaps[i].range_length) continue;
|
|
e802: 2100 movs r1, #0
|
|
for(i = 0; i < fdsc->cmap_num; i++) {
|
|
e804: 3101 adds r1, #1
|
|
e806: b289 uxth r1, r1
|
|
e808: 4291 cmp r1, r2
|
|
e80a: da48 bge.n e89e <get_glyph_dsc_id+0xe2>
|
|
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
|
|
e80c: 008b lsls r3, r1, #2
|
|
e80e: 185b adds r3, r3, r1
|
|
e810: 009b lsls r3, r3, #2
|
|
e812: 9303 str r3, [sp, #12]
|
|
e814: 18fb adds r3, r7, r3
|
|
e816: 6818 ldr r0, [r3, #0]
|
|
e818: 1a20 subs r0, r4, r0
|
|
e81a: 9005 str r0, [sp, #20]
|
|
if(rcp > fdsc->cmaps[i].range_length) continue;
|
|
e81c: 889d ldrh r5, [r3, #4]
|
|
e81e: 42a8 cmp r0, r5
|
|
e820: d8f0 bhi.n e804 <get_glyph_dsc_id+0x48>
|
|
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
|
|
e822: 001f movs r7, r3
|
|
e824: e7e1 b.n e7ea <get_glyph_dsc_id+0x2e>
|
|
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) {
|
|
e826: 2a01 cmp r2, #1
|
|
e828: d01b beq.n e862 <get_glyph_dsc_id+0xa6>
|
|
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) {
|
|
e82a: 2a02 cmp r2, #2
|
|
e82c: d01e beq.n e86c <get_glyph_dsc_id+0xb0>
|
|
uint32_t glyph_id = 0;
|
|
e82e: 2300 movs r3, #0
|
|
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) {
|
|
e830: 2a03 cmp r2, #3
|
|
e832: d1df bne.n e7f4 <get_glyph_dsc_id+0x38>
|
|
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
|
|
e834: 8a3a ldrh r2, [r7, #16]
|
|
e836: 68b9 ldr r1, [r7, #8]
|
|
e838: 4b1b ldr r3, [pc, #108] ; (e8a8 <get_glyph_dsc_id+0xec>)
|
|
e83a: 9300 str r3, [sp, #0]
|
|
e83c: 2302 movs r3, #2
|
|
e83e: a805 add r0, sp, #20
|
|
e840: 4f1a ldr r7, [pc, #104] ; (e8ac <get_glyph_dsc_id+0xf0>)
|
|
e842: 47b8 blx r7
|
|
if(p) {
|
|
e844: 2800 cmp r0, #0
|
|
e846: d028 beq.n e89a <get_glyph_dsc_id+0xde>
|
|
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
|
|
e848: 9b03 ldr r3, [sp, #12]
|
|
e84a: 68b2 ldr r2, [r6, #8]
|
|
e84c: 4694 mov ip, r2
|
|
e84e: 4463 add r3, ip
|
|
e850: 001d movs r5, r3
|
|
e852: 689b ldr r3, [r3, #8]
|
|
e854: 1ac0 subs r0, r0, r3
|
|
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
|
|
e856: 0840 lsrs r0, r0, #1
|
|
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
|
|
e858: 68eb ldr r3, [r5, #12]
|
|
e85a: 5c18 ldrb r0, [r3, r0]
|
|
e85c: 88eb ldrh r3, [r5, #6]
|
|
e85e: 18c3 adds r3, r0, r3
|
|
e860: e7c8 b.n e7f4 <get_glyph_dsc_id+0x38>
|
|
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp];
|
|
e862: 68fb ldr r3, [r7, #12]
|
|
e864: 5c18 ldrb r0, [r3, r0]
|
|
e866: 88fb ldrh r3, [r7, #6]
|
|
e868: 18c3 adds r3, r0, r3
|
|
e86a: e7c3 b.n e7f4 <get_glyph_dsc_id+0x38>
|
|
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
|
|
e86c: 8a3a ldrh r2, [r7, #16]
|
|
e86e: 68b9 ldr r1, [r7, #8]
|
|
e870: 4b0d ldr r3, [pc, #52] ; (e8a8 <get_glyph_dsc_id+0xec>)
|
|
e872: 9300 str r3, [sp, #0]
|
|
e874: 2302 movs r3, #2
|
|
e876: a805 add r0, sp, #20
|
|
e878: 4f0c ldr r7, [pc, #48] ; (e8ac <get_glyph_dsc_id+0xf0>)
|
|
e87a: 47b8 blx r7
|
|
if(p) {
|
|
e87c: 2800 cmp r0, #0
|
|
e87e: d00a beq.n e896 <get_glyph_dsc_id+0xda>
|
|
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
|
|
e880: 9b03 ldr r3, [sp, #12]
|
|
e882: 68b2 ldr r2, [r6, #8]
|
|
e884: 4694 mov ip, r2
|
|
e886: 4463 add r3, ip
|
|
e888: 001d movs r5, r3
|
|
e88a: 689b ldr r3, [r3, #8]
|
|
e88c: 1ac0 subs r0, r0, r3
|
|
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
|
|
e88e: 0840 lsrs r0, r0, #1
|
|
glyph_id = fdsc->cmaps[i].glyph_id_start + ofs;
|
|
e890: 88eb ldrh r3, [r5, #6]
|
|
e892: 18c3 adds r3, r0, r3
|
|
e894: e7ae b.n e7f4 <get_glyph_dsc_id+0x38>
|
|
uint32_t glyph_id = 0;
|
|
e896: 2300 movs r3, #0
|
|
e898: e7ac b.n e7f4 <get_glyph_dsc_id+0x38>
|
|
e89a: 2300 movs r3, #0
|
|
e89c: e7aa b.n e7f4 <get_glyph_dsc_id+0x38>
|
|
fdsc->last_letter = letter;
|
|
e89e: 61b4 str r4, [r6, #24]
|
|
fdsc->last_glyph_id = 0;
|
|
e8a0: 2300 movs r3, #0
|
|
e8a2: 61f3 str r3, [r6, #28]
|
|
return 0;
|
|
e8a4: e7a8 b.n e7f8 <get_glyph_dsc_id+0x3c>
|
|
e8a6: 46c0 nop ; (mov r8, r8)
|
|
e8a8: 0000e7b5 .word 0x0000e7b5
|
|
e8ac: 00011bf1 .word 0x00011bf1
|
|
|
|
0000e8b0 <lv_font_get_bitmap_fmt_txt>:
|
|
{
|
|
e8b0: b5f0 push {r4, r5, r6, r7, lr}
|
|
e8b2: 46de mov lr, fp
|
|
e8b4: 4657 mov r7, sl
|
|
e8b6: 464e mov r6, r9
|
|
e8b8: 4645 mov r5, r8
|
|
e8ba: b5e0 push {r5, r6, r7, lr}
|
|
e8bc: b099 sub sp, #100 ; 0x64
|
|
if(unicode_letter == '\t') unicode_letter = ' ';
|
|
e8be: 2909 cmp r1, #9
|
|
e8c0: d01c beq.n e8fc <lv_font_get_bitmap_fmt_txt+0x4c>
|
|
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
|
|
e8c2: 6905 ldr r5, [r0, #16]
|
|
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
|
|
e8c4: 4bcd ldr r3, [pc, #820] ; (ebfc <lv_font_get_bitmap_fmt_txt+0x34c>)
|
|
e8c6: 4798 blx r3
|
|
if(!gid) return NULL;
|
|
e8c8: 2800 cmp r0, #0
|
|
e8ca: d101 bne.n e8d0 <lv_font_get_bitmap_fmt_txt+0x20>
|
|
e8cc: f000 fcdb bl f286 <lv_font_get_bitmap_fmt_txt+0x9d6>
|
|
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
|
|
e8d0: 00c0 lsls r0, r0, #3
|
|
e8d2: 686b ldr r3, [r5, #4]
|
|
e8d4: 181e adds r6, r3, r0
|
|
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
|
|
e8d6: 7d2b ldrb r3, [r5, #20]
|
|
e8d8: 079b lsls r3, r3, #30
|
|
e8da: d111 bne.n e900 <lv_font_get_bitmap_fmt_txt+0x50>
|
|
if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index];
|
|
e8dc: 2e00 cmp r6, #0
|
|
e8de: d101 bne.n e8e4 <lv_font_get_bitmap_fmt_txt+0x34>
|
|
e8e0: f000 fcd4 bl f28c <lv_font_get_bitmap_fmt_txt+0x9dc>
|
|
e8e4: 6830 ldr r0, [r6, #0]
|
|
e8e6: 0300 lsls r0, r0, #12
|
|
e8e8: 0b03 lsrs r3, r0, #12
|
|
e8ea: 6828 ldr r0, [r5, #0]
|
|
e8ec: 18c0 adds r0, r0, r3
|
|
}
|
|
e8ee: b019 add sp, #100 ; 0x64
|
|
e8f0: bc3c pop {r2, r3, r4, r5}
|
|
e8f2: 4690 mov r8, r2
|
|
e8f4: 4699 mov r9, r3
|
|
e8f6: 46a2 mov sl, r4
|
|
e8f8: 46ab mov fp, r5
|
|
e8fa: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(unicode_letter == '\t') unicode_letter = ' ';
|
|
e8fc: 3117 adds r1, #23
|
|
e8fe: e7e0 b.n e8c2 <lv_font_get_bitmap_fmt_txt+0x12>
|
|
uint32_t gsize = gdsc->box_w * gdsc->box_h;
|
|
e900: 7933 ldrb r3, [r6, #4]
|
|
e902: 7974 ldrb r4, [r6, #5]
|
|
e904: 435c muls r4, r3
|
|
if(gsize == 0) return NULL;
|
|
e906: 2c00 cmp r4, #0
|
|
e908: d101 bne.n e90e <lv_font_get_bitmap_fmt_txt+0x5e>
|
|
e90a: f000 fcc2 bl f292 <lv_font_get_bitmap_fmt_txt+0x9e2>
|
|
switch(fdsc->bpp) {
|
|
e90e: 7ceb ldrb r3, [r5, #19]
|
|
e910: 069b lsls r3, r3, #26
|
|
e912: 0f1b lsrs r3, r3, #28
|
|
e914: b2da uxtb r2, r3
|
|
e916: 2a02 cmp r2, #2
|
|
e918: d100 bne.n e91c <lv_font_get_bitmap_fmt_txt+0x6c>
|
|
e91a: e08d b.n ea38 <lv_font_get_bitmap_fmt_txt+0x188>
|
|
e91c: d908 bls.n e930 <lv_font_get_bitmap_fmt_txt+0x80>
|
|
e91e: b2da uxtb r2, r3
|
|
e920: 2a03 cmp r2, #3
|
|
e922: d100 bne.n e926 <lv_font_get_bitmap_fmt_txt+0x76>
|
|
e924: e08b b.n ea3e <lv_font_get_bitmap_fmt_txt+0x18e>
|
|
e926: 2a04 cmp r2, #4
|
|
e928: d104 bne.n e934 <lv_font_get_bitmap_fmt_txt+0x84>
|
|
buf_size = (gsize + 1) >> 1;
|
|
e92a: 3401 adds r4, #1
|
|
e92c: 0864 lsrs r4, r4, #1
|
|
break;
|
|
e92e: e001 b.n e934 <lv_font_get_bitmap_fmt_txt+0x84>
|
|
switch(fdsc->bpp) {
|
|
e930: 2a01 cmp r2, #1
|
|
e932: d07e beq.n ea32 <lv_font_get_bitmap_fmt_txt+0x182>
|
|
if(_lv_mem_get_size(decompr_buf) < buf_size) {
|
|
e934: 4bb2 ldr r3, [pc, #712] ; (ec00 <lv_font_get_bitmap_fmt_txt+0x350>)
|
|
e936: 6818 ldr r0, [r3, #0]
|
|
e938: 4bb2 ldr r3, [pc, #712] ; (ec04 <lv_font_get_bitmap_fmt_txt+0x354>)
|
|
e93a: 4798 blx r3
|
|
e93c: 4284 cmp r4, r0
|
|
e93e: d90f bls.n e960 <lv_font_get_bitmap_fmt_txt+0xb0>
|
|
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
|
|
e940: 4faf ldr r7, [pc, #700] ; (ec00 <lv_font_get_bitmap_fmt_txt+0x350>)
|
|
e942: 0021 movs r1, r4
|
|
e944: 6838 ldr r0, [r7, #0]
|
|
e946: 4bb0 ldr r3, [pc, #704] ; (ec08 <lv_font_get_bitmap_fmt_txt+0x358>)
|
|
e948: 4798 blx r3
|
|
e94a: 6038 str r0, [r7, #0]
|
|
LV_ASSERT_MEM(decompr_buf);
|
|
e94c: 4baf ldr r3, [pc, #700] ; (ec0c <lv_font_get_bitmap_fmt_txt+0x35c>)
|
|
e94e: 4798 blx r3
|
|
e950: 2800 cmp r0, #0
|
|
e952: d077 beq.n ea44 <lv_font_get_bitmap_fmt_txt+0x194>
|
|
if(decompr_buf == NULL) return NULL;
|
|
e954: 4baa ldr r3, [pc, #680] ; (ec00 <lv_font_get_bitmap_fmt_txt+0x350>)
|
|
e956: 681b ldr r3, [r3, #0]
|
|
e958: 2b00 cmp r3, #0
|
|
e95a: d101 bne.n e960 <lv_font_get_bitmap_fmt_txt+0xb0>
|
|
e95c: f000 fc9c bl f298 <lv_font_get_bitmap_fmt_txt+0x9e8>
|
|
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
|
|
e960: 6833 ldr r3, [r6, #0]
|
|
e962: 031b lsls r3, r3, #12
|
|
e964: 0b1b lsrs r3, r3, #12
|
|
e966: 682a ldr r2, [r5, #0]
|
|
e968: 18d2 adds r2, r2, r3
|
|
e96a: 4ba5 ldr r3, [pc, #660] ; (ec00 <lv_font_get_bitmap_fmt_txt+0x350>)
|
|
e96c: 681b ldr r3, [r3, #0]
|
|
e96e: 9303 str r3, [sp, #12]
|
|
e970: 7933 ldrb r3, [r6, #4]
|
|
e972: 930d str r3, [sp, #52] ; 0x34
|
|
e974: b21b sxth r3, r3
|
|
e976: 9311 str r3, [sp, #68] ; 0x44
|
|
e978: 7973 ldrb r3, [r6, #5]
|
|
e97a: 9310 str r3, [sp, #64] ; 0x40
|
|
e97c: b21b sxth r3, r3
|
|
e97e: 930e str r3, [sp, #56] ; 0x38
|
|
e980: 7ceb ldrb r3, [r5, #19]
|
|
e982: 069b lsls r3, r3, #26
|
|
e984: 0f1b lsrs r3, r3, #28
|
|
e986: b2d9 uxtb r1, r3
|
|
e988: 9100 str r1, [sp, #0]
|
|
uint8_t wr_size = bpp;
|
|
e98a: 9106 str r1, [sp, #24]
|
|
if(bpp == 3) wr_size = 4;
|
|
e98c: 2903 cmp r1, #3
|
|
e98e: d060 beq.n ea52 <lv_font_get_bitmap_fmt_txt+0x1a2>
|
|
rle_in = in;
|
|
e990: 499f ldr r1, [pc, #636] ; (ec10 <lv_font_get_bitmap_fmt_txt+0x360>)
|
|
e992: 600a str r2, [r1, #0]
|
|
rle_bpp = bpp;
|
|
e994: 4a9f ldr r2, [pc, #636] ; (ec14 <lv_font_get_bitmap_fmt_txt+0x364>)
|
|
e996: 7013 strb r3, [r2, #0]
|
|
rle_state = RLE_STATE_SINGLE;
|
|
e998: 2300 movs r3, #0
|
|
e99a: 4a9f ldr r2, [pc, #636] ; (ec18 <lv_font_get_bitmap_fmt_txt+0x368>)
|
|
e99c: 7013 strb r3, [r2, #0]
|
|
rle_rdp = 0;
|
|
e99e: 4a9f ldr r2, [pc, #636] ; (ec1c <lv_font_get_bitmap_fmt_txt+0x36c>)
|
|
e9a0: 6013 str r3, [r2, #0]
|
|
rle_prev_v = 0;
|
|
e9a2: 4a9f ldr r2, [pc, #636] ; (ec20 <lv_font_get_bitmap_fmt_txt+0x370>)
|
|
e9a4: 7013 strb r3, [r2, #0]
|
|
rle_cnt = 0;
|
|
e9a6: 4a9f ldr r2, [pc, #636] ; (ec24 <lv_font_get_bitmap_fmt_txt+0x374>)
|
|
e9a8: 7013 strb r3, [r2, #0]
|
|
uint8_t * line_buf1 = _lv_mem_buf_get(w);
|
|
e9aa: 9f0d ldr r7, [sp, #52] ; 0x34
|
|
e9ac: 0038 movs r0, r7
|
|
e9ae: 4c9e ldr r4, [pc, #632] ; (ec28 <lv_font_get_bitmap_fmt_txt+0x378>)
|
|
e9b0: 47a0 blx r4
|
|
e9b2: 0005 movs r5, r0
|
|
e9b4: 9017 str r0, [sp, #92] ; 0x5c
|
|
uint8_t * line_buf2 = _lv_mem_buf_get(w);
|
|
e9b6: 0038 movs r0, r7
|
|
e9b8: 47a0 blx r4
|
|
e9ba: 9001 str r0, [sp, #4]
|
|
for(i = 0; i < w; i++) {
|
|
e9bc: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
e9be: 2b00 cmp r3, #0
|
|
e9c0: dc00 bgt.n e9c4 <lv_font_get_bitmap_fmt_txt+0x114>
|
|
e9c2: e25e b.n ee82 <lv_font_get_bitmap_fmt_txt+0x5d2>
|
|
e9c4: 4b96 ldr r3, [pc, #600] ; (ec20 <lv_font_get_bitmap_fmt_txt+0x370>)
|
|
e9c6: 781b ldrb r3, [r3, #0]
|
|
e9c8: 9302 str r3, [sp, #8]
|
|
e9ca: 4b96 ldr r3, [pc, #600] ; (ec24 <lv_font_get_bitmap_fmt_txt+0x374>)
|
|
e9cc: 781b ldrb r3, [r3, #0]
|
|
e9ce: 469a mov sl, r3
|
|
ret = get_bits(rle_in, rle_rdp, rle_bpp);
|
|
e9d0: 4b8f ldr r3, [pc, #572] ; (ec10 <lv_font_get_bitmap_fmt_txt+0x360>)
|
|
e9d2: 681e ldr r6, [r3, #0]
|
|
e9d4: 4b91 ldr r3, [pc, #580] ; (ec1c <lv_font_get_bitmap_fmt_txt+0x36c>)
|
|
e9d6: 6818 ldr r0, [r3, #0]
|
|
e9d8: 4b8e ldr r3, [pc, #568] ; (ec14 <lv_font_get_bitmap_fmt_txt+0x364>)
|
|
e9da: 781b ldrb r3, [r3, #0]
|
|
e9dc: 4699 mov r9, r3
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
e9de: 2301 movs r3, #1
|
|
e9e0: 4649 mov r1, r9
|
|
e9e2: 408b lsls r3, r1
|
|
e9e4: 3b01 subs r3, #1
|
|
e9e6: b2db uxtb r3, r3
|
|
e9e8: 930b str r3, [sp, #44] ; 0x2c
|
|
e9ea: 2308 movs r3, #8
|
|
e9ec: 1a5b subs r3, r3, r1
|
|
e9ee: 930c str r3, [sp, #48] ; 0x30
|
|
e9f0: 2310 movs r3, #16
|
|
e9f2: 1a5b subs r3, r3, r1
|
|
e9f4: 930a str r3, [sp, #40] ; 0x28
|
|
e9f6: 4b88 ldr r3, [pc, #544] ; (ec18 <lv_font_get_bitmap_fmt_txt+0x368>)
|
|
e9f8: 781b ldrb r3, [r3, #0]
|
|
e9fa: 469c mov ip, r3
|
|
e9fc: 002c movs r4, r5
|
|
e9fe: 003b movs r3, r7
|
|
ea00: 3b01 subs r3, #1
|
|
ea02: b29b uxth r3, r3
|
|
ea04: 3301 adds r3, #1
|
|
ea06: 930f str r3, [sp, #60] ; 0x3c
|
|
ea08: 002a movs r2, r5
|
|
ea0a: 469b mov fp, r3
|
|
ea0c: 445a add r2, fp
|
|
ea0e: 9209 str r2, [sp, #36] ; 0x24
|
|
if(bit_pos + len >= 8) {
|
|
ea10: 2300 movs r3, #0
|
|
ea12: 9305 str r3, [sp, #20]
|
|
ea14: 9308 str r3, [sp, #32]
|
|
ea16: 2100 movs r1, #0
|
|
ea18: 9307 str r3, [sp, #28]
|
|
switch(len) {
|
|
ea1a: 464b mov r3, r9
|
|
ea1c: 009b lsls r3, r3, #2
|
|
ea1e: 469b mov fp, r3
|
|
ea20: 4b82 ldr r3, [pc, #520] ; (ec2c <lv_font_get_bitmap_fmt_txt+0x37c>)
|
|
ea22: 445b add r3, fp
|
|
ea24: 9312 str r3, [sp, #72] ; 0x48
|
|
ea26: 4653 mov r3, sl
|
|
ea28: 9304 str r3, [sp, #16]
|
|
ea2a: 46a8 mov r8, r5
|
|
ea2c: 4667 mov r7, ip
|
|
ea2e: 464d mov r5, r9
|
|
ea30: e031 b.n ea96 <lv_font_get_bitmap_fmt_txt+0x1e6>
|
|
buf_size = (gsize + 7) >> 3;
|
|
ea32: 3407 adds r4, #7
|
|
ea34: 08e4 lsrs r4, r4, #3
|
|
break;
|
|
ea36: e77d b.n e934 <lv_font_get_bitmap_fmt_txt+0x84>
|
|
buf_size = (gsize + 3) >> 2;
|
|
ea38: 3403 adds r4, #3
|
|
ea3a: 08a4 lsrs r4, r4, #2
|
|
break;
|
|
ea3c: e77a b.n e934 <lv_font_get_bitmap_fmt_txt+0x84>
|
|
buf_size = (gsize + 1) >> 1;
|
|
ea3e: 3401 adds r4, #1
|
|
ea40: 0864 lsrs r4, r4, #1
|
|
break;
|
|
ea42: e777 b.n e934 <lv_font_get_bitmap_fmt_txt+0x84>
|
|
LV_ASSERT_MEM(decompr_buf);
|
|
ea44: 4b6e ldr r3, [pc, #440] ; (ec00 <lv_font_get_bitmap_fmt_txt+0x350>)
|
|
ea46: 681a ldr r2, [r3, #0]
|
|
ea48: 2300 movs r3, #0
|
|
ea4a: 4879 ldr r0, [pc, #484] ; (ec30 <lv_font_get_bitmap_fmt_txt+0x380>)
|
|
ea4c: 4979 ldr r1, [pc, #484] ; (ec34 <lv_font_get_bitmap_fmt_txt+0x384>)
|
|
ea4e: 4788 blx r1
|
|
ea50: e7fe b.n ea50 <lv_font_get_bitmap_fmt_txt+0x1a0>
|
|
if(bpp == 3) wr_size = 4;
|
|
ea52: 3101 adds r1, #1
|
|
ea54: 9106 str r1, [sp, #24]
|
|
ea56: e79b b.n e990 <lv_font_get_bitmap_fmt_txt+0xe0>
|
|
bit_mask = 0x3;
|
|
ea58: 2303 movs r3, #3
|
|
ea5a: 469c mov ip, r3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ea5c: 08c3 lsrs r3, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
ea5e: 2107 movs r1, #7
|
|
ea60: 4001 ands r1, r0
|
|
if(bit_pos + len >= 8) {
|
|
ea62: 194a adds r2, r1, r5
|
|
ea64: 2a07 cmp r2, #7
|
|
ea66: d82f bhi.n eac8 <lv_font_get_bitmap_fmt_txt+0x218>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
ea68: 5cf3 ldrb r3, [r6, r3]
|
|
ea6a: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
ea6c: 1a51 subs r1, r2, r1
|
|
ea6e: 410b asrs r3, r1
|
|
ea70: 4662 mov r2, ip
|
|
ea72: 401a ands r2, r3
|
|
ea74: 0013 movs r3, r2
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
ea76: 2800 cmp r0, #0
|
|
ea78: d002 beq.n ea80 <lv_font_get_bitmap_fmt_txt+0x1d0>
|
|
ea7a: 9a02 ldr r2, [sp, #8]
|
|
ea7c: 4293 cmp r3, r2
|
|
ea7e: d031 beq.n eae4 <lv_font_get_bitmap_fmt_txt+0x234>
|
|
rle_rdp += rle_bpp;
|
|
ea80: 1940 adds r0, r0, r5
|
|
rle_prev_v = ret;
|
|
ea82: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
ea84: 2101 movs r1, #1
|
|
ea86: 2201 movs r2, #1
|
|
ea88: 9207 str r2, [sp, #28]
|
|
out[i] = rle_next();
|
|
ea8a: 7023 strb r3, [r4, #0]
|
|
ea8c: 3401 adds r4, #1
|
|
for(i = 0; i < w; i++) {
|
|
ea8e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
ea90: 429c cmp r4, r3
|
|
ea92: d100 bne.n ea96 <lv_font_get_bitmap_fmt_txt+0x1e6>
|
|
ea94: e14b b.n ed2e <lv_font_get_bitmap_fmt_txt+0x47e>
|
|
if(rle_state == RLE_STATE_SINGLE) {
|
|
ea96: 2f00 cmp r7, #0
|
|
ea98: d12c bne.n eaf4 <lv_font_get_bitmap_fmt_txt+0x244>
|
|
switch(len) {
|
|
ea9a: 464b mov r3, r9
|
|
ea9c: 2b08 cmp r3, #8
|
|
ea9e: d80d bhi.n eabc <lv_font_get_bitmap_fmt_txt+0x20c>
|
|
eaa0: 4b65 ldr r3, [pc, #404] ; (ec38 <lv_font_get_bitmap_fmt_txt+0x388>)
|
|
eaa2: 465a mov r2, fp
|
|
eaa4: 589b ldr r3, [r3, r2]
|
|
eaa6: 9307 str r3, [sp, #28]
|
|
eaa8: 469f mov pc, r3
|
|
bit_mask = 0x7;
|
|
eaaa: 2307 movs r3, #7
|
|
eaac: 469c mov ip, r3
|
|
eaae: e7d5 b.n ea5c <lv_font_get_bitmap_fmt_txt+0x1ac>
|
|
bit_mask = 0xF;
|
|
eab0: 230f movs r3, #15
|
|
eab2: 469c mov ip, r3
|
|
eab4: e7d2 b.n ea5c <lv_font_get_bitmap_fmt_txt+0x1ac>
|
|
bit_mask = 0xFF;
|
|
eab6: 23ff movs r3, #255 ; 0xff
|
|
eab8: 469c mov ip, r3
|
|
eaba: e7cf b.n ea5c <lv_font_get_bitmap_fmt_txt+0x1ac>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
eabc: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
eabe: 469c mov ip, r3
|
|
eac0: e7cc b.n ea5c <lv_font_get_bitmap_fmt_txt+0x1ac>
|
|
bit_mask = 0x1;
|
|
eac2: 2301 movs r3, #1
|
|
eac4: 469c mov ip, r3
|
|
eac6: e7c9 b.n ea5c <lv_font_get_bitmap_fmt_txt+0x1ac>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
eac8: 5cf2 ldrb r2, [r6, r3]
|
|
eaca: 0212 lsls r2, r2, #8
|
|
eacc: 4692 mov sl, r2
|
|
eace: 18f3 adds r3, r6, r3
|
|
ead0: 785b ldrb r3, [r3, #1]
|
|
ead2: 4453 add r3, sl
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ead4: b29b uxth r3, r3
|
|
ead6: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ead8: 1a51 subs r1, r2, r1
|
|
eada: 410b asrs r3, r1
|
|
eadc: 4662 mov r2, ip
|
|
eade: 401a ands r2, r3
|
|
eae0: 0013 movs r3, r2
|
|
eae2: e7c8 b.n ea76 <lv_font_get_bitmap_fmt_txt+0x1c6>
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
eae4: 2201 movs r2, #1
|
|
eae6: 9205 str r2, [sp, #20]
|
|
rle_cnt = 0;
|
|
eae8: 2200 movs r2, #0
|
|
eaea: 9204 str r2, [sp, #16]
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
eaec: 3201 adds r2, #1
|
|
eaee: 9208 str r2, [sp, #32]
|
|
rle_state = RLE_STATE_REPEATE;
|
|
eaf0: 2701 movs r7, #1
|
|
eaf2: e7c5 b.n ea80 <lv_font_get_bitmap_fmt_txt+0x1d0>
|
|
else if(rle_state == RLE_STATE_REPEATE) {
|
|
eaf4: 2f01 cmp r7, #1
|
|
eaf6: d011 beq.n eb1c <lv_font_get_bitmap_fmt_txt+0x26c>
|
|
uint8_t ret = 0;
|
|
eaf8: 2300 movs r3, #0
|
|
else if(rle_state == RLE_STATE_COUNTER) {
|
|
eafa: 2f02 cmp r7, #2
|
|
eafc: d1c5 bne.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
rle_cnt--;
|
|
eafe: 9a04 ldr r2, [sp, #16]
|
|
eb00: 3a01 subs r2, #1
|
|
eb02: b2d3 uxtb r3, r2
|
|
eb04: 9304 str r3, [sp, #16]
|
|
if(rle_cnt == 0) {
|
|
eb06: 2b00 cmp r3, #0
|
|
eb08: d000 beq.n eb0c <lv_font_get_bitmap_fmt_txt+0x25c>
|
|
eb0a: e10c b.n ed26 <lv_font_get_bitmap_fmt_txt+0x476>
|
|
switch(len) {
|
|
eb0c: 464b mov r3, r9
|
|
eb0e: 2b08 cmp r3, #8
|
|
eb10: d900 bls.n eb14 <lv_font_get_bitmap_fmt_txt+0x264>
|
|
eb12: e0f1 b.n ecf8 <lv_font_get_bitmap_fmt_txt+0x448>
|
|
eb14: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
eb16: 681b ldr r3, [r3, #0]
|
|
eb18: 9302 str r3, [sp, #8]
|
|
eb1a: 469f mov pc, r3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
eb1c: 08c3 lsrs r3, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
eb1e: 2107 movs r1, #7
|
|
eb20: 4001 ands r1, r0
|
|
if(bit_pos + len >= 8) {
|
|
eb22: 1c4a adds r2, r1, #1
|
|
eb24: 2a07 cmp r2, #7
|
|
eb26: d815 bhi.n eb54 <lv_font_get_bitmap_fmt_txt+0x2a4>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
eb28: 5cf3 ldrb r3, [r6, r3]
|
|
eb2a: 43c9 mvns r1, r1
|
|
eb2c: 3108 adds r1, #8
|
|
eb2e: 410b asrs r3, r1
|
|
eb30: 2201 movs r2, #1
|
|
eb32: 4013 ands r3, r2
|
|
rle_cnt++;
|
|
eb34: 9a04 ldr r2, [sp, #16]
|
|
eb36: 3201 adds r2, #1
|
|
eb38: b2d2 uxtb r2, r2
|
|
eb3a: 9204 str r2, [sp, #16]
|
|
rle_rdp += 1;
|
|
eb3c: 1c41 adds r1, r0, #1
|
|
if(v == 1) {
|
|
eb3e: 2b01 cmp r3, #1
|
|
eb40: d015 beq.n eb6e <lv_font_get_bitmap_fmt_txt+0x2be>
|
|
switch(len) {
|
|
eb42: 464b mov r3, r9
|
|
eb44: 2b08 cmp r3, #8
|
|
eb46: d900 bls.n eb4a <lv_font_get_bitmap_fmt_txt+0x29a>
|
|
eb48: e0ab b.n eca2 <lv_font_get_bitmap_fmt_txt+0x3f2>
|
|
eb4a: 4b3c ldr r3, [pc, #240] ; (ec3c <lv_font_get_bitmap_fmt_txt+0x38c>)
|
|
eb4c: 465a mov r2, fp
|
|
eb4e: 589b ldr r3, [r3, r2]
|
|
eb50: 9302 str r3, [sp, #8]
|
|
eb52: 469f mov pc, r3
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
eb54: 5cf2 ldrb r2, [r6, r3]
|
|
eb56: 0212 lsls r2, r2, #8
|
|
eb58: 4694 mov ip, r2
|
|
eb5a: 18f3 adds r3, r6, r3
|
|
eb5c: 785b ldrb r3, [r3, #1]
|
|
eb5e: 4463 add r3, ip
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
eb60: b29b uxth r3, r3
|
|
eb62: 43c9 mvns r1, r1
|
|
eb64: 3110 adds r1, #16
|
|
eb66: 410b asrs r3, r1
|
|
eb68: 2201 movs r2, #1
|
|
eb6a: 4013 ands r3, r2
|
|
eb6c: e7e2 b.n eb34 <lv_font_get_bitmap_fmt_txt+0x284>
|
|
if(rle_cnt == 11) {
|
|
eb6e: 2a0b cmp r2, #11
|
|
eb70: d005 beq.n eb7e <lv_font_get_bitmap_fmt_txt+0x2ce>
|
|
rle_rdp += 1;
|
|
eb72: 0008 movs r0, r1
|
|
ret = rle_prev_v;
|
|
eb74: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt == 11) {
|
|
eb76: 2201 movs r2, #1
|
|
eb78: 9205 str r2, [sp, #20]
|
|
eb7a: 2101 movs r1, #1
|
|
eb7c: e785 b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
eb7e: 08cb lsrs r3, r1, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
eb80: 2207 movs r2, #7
|
|
eb82: 4011 ands r1, r2
|
|
if(bit_pos + len >= 8) {
|
|
eb84: 1d8a adds r2, r1, #6
|
|
eb86: 2a07 cmp r2, #7
|
|
eb88: d813 bhi.n ebb2 <lv_font_get_bitmap_fmt_txt+0x302>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
eb8a: 5cf2 ldrb r2, [r6, r3]
|
|
eb8c: 2302 movs r3, #2
|
|
eb8e: 1a59 subs r1, r3, r1
|
|
eb90: 410a asrs r2, r1
|
|
eb92: 333d adds r3, #61 ; 0x3d
|
|
eb94: 401a ands r2, r3
|
|
eb96: 9204 str r2, [sp, #16]
|
|
rle_rdp += 6;
|
|
eb98: 3007 adds r0, #7
|
|
if(rle_cnt != 0) {
|
|
eb9a: 9b04 ldr r3, [sp, #16]
|
|
eb9c: 2b00 cmp r3, #0
|
|
eb9e: d000 beq.n eba2 <lv_font_get_bitmap_fmt_txt+0x2f2>
|
|
eba0: e0ba b.n ed18 <lv_font_get_bitmap_fmt_txt+0x468>
|
|
switch(len) {
|
|
eba2: 464b mov r3, r9
|
|
eba4: 2b08 cmp r3, #8
|
|
eba6: d824 bhi.n ebf2 <lv_font_get_bitmap_fmt_txt+0x342>
|
|
eba8: 4b25 ldr r3, [pc, #148] ; (ec40 <lv_font_get_bitmap_fmt_txt+0x390>)
|
|
ebaa: 465a mov r2, fp
|
|
ebac: 589b ldr r3, [r3, r2]
|
|
ebae: 9302 str r3, [sp, #8]
|
|
ebb0: 469f mov pc, r3
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
ebb2: 5cf2 ldrb r2, [r6, r3]
|
|
ebb4: 0212 lsls r2, r2, #8
|
|
ebb6: 18f3 adds r3, r6, r3
|
|
ebb8: 785b ldrb r3, [r3, #1]
|
|
ebba: 189a adds r2, r3, r2
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ebbc: b292 uxth r2, r2
|
|
ebbe: 230a movs r3, #10
|
|
ebc0: 1a59 subs r1, r3, r1
|
|
ebc2: 410a asrs r2, r1
|
|
ebc4: 3335 adds r3, #53 ; 0x35
|
|
ebc6: 401a ands r2, r3
|
|
ebc8: 9204 str r2, [sp, #16]
|
|
ebca: e7e5 b.n eb98 <lv_font_get_bitmap_fmt_txt+0x2e8>
|
|
bit_mask = 0x3;
|
|
ebcc: 2303 movs r3, #3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ebce: 08c7 lsrs r7, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
ebd0: 2107 movs r1, #7
|
|
ebd2: 4001 ands r1, r0
|
|
if(bit_pos + len >= 8) {
|
|
ebd4: 194a adds r2, r1, r5
|
|
ebd6: 2a07 cmp r2, #7
|
|
ebd8: d834 bhi.n ec44 <lv_font_get_bitmap_fmt_txt+0x394>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
ebda: 5df7 ldrb r7, [r6, r7]
|
|
ebdc: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
ebde: 1a51 subs r1, r2, r1
|
|
ebe0: 410f asrs r7, r1
|
|
ebe2: 403b ands r3, r7
|
|
ebe4: e039 b.n ec5a <lv_font_get_bitmap_fmt_txt+0x3aa>
|
|
bit_mask = 0x7;
|
|
ebe6: 2307 movs r3, #7
|
|
ebe8: e7f1 b.n ebce <lv_font_get_bitmap_fmt_txt+0x31e>
|
|
bit_mask = 0xF;
|
|
ebea: 230f movs r3, #15
|
|
ebec: e7ef b.n ebce <lv_font_get_bitmap_fmt_txt+0x31e>
|
|
bit_mask = 0xFF;
|
|
ebee: 23ff movs r3, #255 ; 0xff
|
|
ebf0: e7ed b.n ebce <lv_font_get_bitmap_fmt_txt+0x31e>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
ebf2: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
ebf4: e7eb b.n ebce <lv_font_get_bitmap_fmt_txt+0x31e>
|
|
bit_mask = 0x1;
|
|
ebf6: 2301 movs r3, #1
|
|
ebf8: e7e9 b.n ebce <lv_font_get_bitmap_fmt_txt+0x31e>
|
|
ebfa: 46c0 nop ; (mov r8, r8)
|
|
ebfc: 0000e7bd .word 0x0000e7bd
|
|
ec00: 20002bb8 .word 0x20002bb8
|
|
ec04: 00010bb5 .word 0x00010bb5
|
|
ec08: 00010e45 .word 0x00010e45
|
|
ec0c: 0000147d .word 0x0000147d
|
|
ec10: 20002bc0 .word 0x20002bc0
|
|
ec14: 20002bbc .word 0x20002bbc
|
|
ec18: 20002bcc .word 0x20002bcc
|
|
ec1c: 20002bc8 .word 0x20002bc8
|
|
ec20: 20002bc4 .word 0x20002bc4
|
|
ec24: 20002bbd .word 0x20002bbd
|
|
ec28: 00010ec1 .word 0x00010ec1
|
|
ec2c: 00018984 .word 0x00018984
|
|
ec30: 00018724 .word 0x00018724
|
|
ec34: 00001485 .word 0x00001485
|
|
ec38: 00018960 .word 0x00018960
|
|
ec3c: 000189a8 .word 0x000189a8
|
|
ec40: 000189cc .word 0x000189cc
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
ec44: 5df2 ldrb r2, [r6, r7]
|
|
ec46: 0212 lsls r2, r2, #8
|
|
ec48: 4694 mov ip, r2
|
|
ec4a: 19f7 adds r7, r6, r7
|
|
ec4c: 787f ldrb r7, [r7, #1]
|
|
ec4e: 4467 add r7, ip
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ec50: b2bf uxth r7, r7
|
|
ec52: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ec54: 1a51 subs r1, r2, r1
|
|
ec56: 410f asrs r7, r1
|
|
ec58: 403b ands r3, r7
|
|
rle_rdp += rle_bpp;
|
|
ec5a: 1940 adds r0, r0, r5
|
|
rle_prev_v = ret;
|
|
ec5c: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
ec5e: 2201 movs r2, #1
|
|
ec60: 9205 str r2, [sp, #20]
|
|
ec62: 9208 str r2, [sp, #32]
|
|
rle_state = RLE_STATE_SINGLE;
|
|
ec64: 2700 movs r7, #0
|
|
rle_rdp += rle_bpp;
|
|
ec66: 2101 movs r1, #1
|
|
ec68: 9207 str r2, [sp, #28]
|
|
ec6a: e70e b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
bit_mask = 0x3;
|
|
ec6c: 2303 movs r3, #3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ec6e: 08cf lsrs r7, r1, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
ec70: 2007 movs r0, #7
|
|
ec72: 4008 ands r0, r1
|
|
if(bit_pos + len >= 8) {
|
|
ec74: 1942 adds r2, r0, r5
|
|
ec76: 2a07 cmp r2, #7
|
|
ec78: d817 bhi.n ecaa <lv_font_get_bitmap_fmt_txt+0x3fa>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
ec7a: 5df7 ldrb r7, [r6, r7]
|
|
ec7c: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
ec7e: 1a10 subs r0, r2, r0
|
|
ec80: 4107 asrs r7, r0
|
|
ec82: 403b ands r3, r7
|
|
rle_rdp += rle_bpp;
|
|
ec84: 1948 adds r0, r1, r5
|
|
rle_prev_v = ret;
|
|
ec86: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
ec88: 2201 movs r2, #1
|
|
ec8a: 9205 str r2, [sp, #20]
|
|
ec8c: 9208 str r2, [sp, #32]
|
|
rle_state = RLE_STATE_SINGLE;
|
|
ec8e: 2700 movs r7, #0
|
|
rle_rdp += rle_bpp;
|
|
ec90: 2101 movs r1, #1
|
|
ec92: 9207 str r2, [sp, #28]
|
|
ec94: e6f9 b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
bit_mask = 0x7;
|
|
ec96: 2307 movs r3, #7
|
|
ec98: e7e9 b.n ec6e <lv_font_get_bitmap_fmt_txt+0x3be>
|
|
bit_mask = 0xF;
|
|
ec9a: 230f movs r3, #15
|
|
ec9c: e7e7 b.n ec6e <lv_font_get_bitmap_fmt_txt+0x3be>
|
|
bit_mask = 0xFF;
|
|
ec9e: 23ff movs r3, #255 ; 0xff
|
|
eca0: e7e5 b.n ec6e <lv_font_get_bitmap_fmt_txt+0x3be>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
eca2: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
eca4: e7e3 b.n ec6e <lv_font_get_bitmap_fmt_txt+0x3be>
|
|
bit_mask = 0x1;
|
|
eca6: 2301 movs r3, #1
|
|
eca8: e7e1 b.n ec6e <lv_font_get_bitmap_fmt_txt+0x3be>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
ecaa: 5df2 ldrb r2, [r6, r7]
|
|
ecac: 0212 lsls r2, r2, #8
|
|
ecae: 4694 mov ip, r2
|
|
ecb0: 19f7 adds r7, r6, r7
|
|
ecb2: 787f ldrb r7, [r7, #1]
|
|
ecb4: 4467 add r7, ip
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ecb6: b2bf uxth r7, r7
|
|
ecb8: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ecba: 1a10 subs r0, r2, r0
|
|
ecbc: 4107 asrs r7, r0
|
|
ecbe: 403b ands r3, r7
|
|
ecc0: e7e0 b.n ec84 <lv_font_get_bitmap_fmt_txt+0x3d4>
|
|
bit_mask = 0x3;
|
|
ecc2: 2303 movs r3, #3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ecc4: 08c7 lsrs r7, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
ecc6: 2107 movs r1, #7
|
|
ecc8: 4001 ands r1, r0
|
|
if(bit_pos + len >= 8) {
|
|
ecca: 194a adds r2, r1, r5
|
|
eccc: 2a07 cmp r2, #7
|
|
ecce: d817 bhi.n ed00 <lv_font_get_bitmap_fmt_txt+0x450>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
ecd0: 5df7 ldrb r7, [r6, r7]
|
|
ecd2: 9a0c ldr r2, [sp, #48] ; 0x30
|
|
ecd4: 1a51 subs r1, r2, r1
|
|
ecd6: 410f asrs r7, r1
|
|
ecd8: 403b ands r3, r7
|
|
rle_rdp += rle_bpp;
|
|
ecda: 1940 adds r0, r0, r5
|
|
rle_prev_v = ret;
|
|
ecdc: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
ecde: 2201 movs r2, #1
|
|
ece0: 9205 str r2, [sp, #20]
|
|
ece2: 9208 str r2, [sp, #32]
|
|
rle_state = RLE_STATE_SINGLE;
|
|
ece4: 2700 movs r7, #0
|
|
rle_rdp += rle_bpp;
|
|
ece6: 2101 movs r1, #1
|
|
ece8: 9207 str r2, [sp, #28]
|
|
ecea: e6ce b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
bit_mask = 0x7;
|
|
ecec: 2307 movs r3, #7
|
|
ecee: e7e9 b.n ecc4 <lv_font_get_bitmap_fmt_txt+0x414>
|
|
bit_mask = 0xF;
|
|
ecf0: 230f movs r3, #15
|
|
ecf2: e7e7 b.n ecc4 <lv_font_get_bitmap_fmt_txt+0x414>
|
|
bit_mask = 0xFF;
|
|
ecf4: 23ff movs r3, #255 ; 0xff
|
|
ecf6: e7e5 b.n ecc4 <lv_font_get_bitmap_fmt_txt+0x414>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
ecf8: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
ecfa: e7e3 b.n ecc4 <lv_font_get_bitmap_fmt_txt+0x414>
|
|
bit_mask = 0x1;
|
|
ecfc: 2301 movs r3, #1
|
|
ecfe: e7e1 b.n ecc4 <lv_font_get_bitmap_fmt_txt+0x414>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
ed00: 5df2 ldrb r2, [r6, r7]
|
|
ed02: 0212 lsls r2, r2, #8
|
|
ed04: 4694 mov ip, r2
|
|
ed06: 19f7 adds r7, r6, r7
|
|
ed08: 787f ldrb r7, [r7, #1]
|
|
ed0a: 4467 add r7, ip
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ed0c: b2bf uxth r7, r7
|
|
ed0e: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ed10: 1a51 subs r1, r2, r1
|
|
ed12: 410f asrs r7, r1
|
|
ed14: 403b ands r3, r7
|
|
ed16: e7e0 b.n ecda <lv_font_get_bitmap_fmt_txt+0x42a>
|
|
ret = rle_prev_v;
|
|
ed18: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt != 0) {
|
|
ed1a: 2201 movs r2, #1
|
|
ed1c: 9205 str r2, [sp, #20]
|
|
ed1e: 9208 str r2, [sp, #32]
|
|
rle_state = RLE_STATE_COUNTER;
|
|
ed20: 2702 movs r7, #2
|
|
if(rle_cnt != 0) {
|
|
ed22: 2101 movs r1, #1
|
|
ed24: e6b1 b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
ret = rle_prev_v;
|
|
ed26: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt == 0) {
|
|
ed28: 2201 movs r2, #1
|
|
ed2a: 9205 str r2, [sp, #20]
|
|
ed2c: e6ad b.n ea8a <lv_font_get_bitmap_fmt_txt+0x1da>
|
|
ed2e: 9b04 ldr r3, [sp, #16]
|
|
ed30: 469a mov sl, r3
|
|
ed32: 4645 mov r5, r8
|
|
ed34: 46bc mov ip, r7
|
|
ed36: 9b07 ldr r3, [sp, #28]
|
|
ed38: 2b00 cmp r3, #0
|
|
ed3a: d114 bne.n ed66 <lv_font_get_bitmap_fmt_txt+0x4b6>
|
|
ed3c: 2900 cmp r1, #0
|
|
ed3e: d001 beq.n ed44 <lv_font_get_bitmap_fmt_txt+0x494>
|
|
ed40: 4bcc ldr r3, [pc, #816] ; (f074 <lv_font_get_bitmap_fmt_txt+0x7c4>)
|
|
ed42: 6018 str r0, [r3, #0]
|
|
ed44: 9b08 ldr r3, [sp, #32]
|
|
ed46: 2b00 cmp r3, #0
|
|
ed48: d002 beq.n ed50 <lv_font_get_bitmap_fmt_txt+0x4a0>
|
|
ed4a: 4bcb ldr r3, [pc, #812] ; (f078 <lv_font_get_bitmap_fmt_txt+0x7c8>)
|
|
ed4c: 4662 mov r2, ip
|
|
ed4e: 701a strb r2, [r3, #0]
|
|
ed50: 9b05 ldr r3, [sp, #20]
|
|
ed52: 2b00 cmp r3, #0
|
|
ed54: d002 beq.n ed5c <lv_font_get_bitmap_fmt_txt+0x4ac>
|
|
ed56: 4bc9 ldr r3, [pc, #804] ; (f07c <lv_font_get_bitmap_fmt_txt+0x7cc>)
|
|
ed58: 4652 mov r2, sl
|
|
ed5a: 701a strb r2, [r3, #0]
|
|
rle_rdp += rle_bpp;
|
|
ed5c: 2600 movs r6, #0
|
|
if(len == 3) {
|
|
ed5e: 9b00 ldr r3, [sp, #0]
|
|
ed60: 9302 str r3, [sp, #8]
|
|
val = 6;
|
|
ed62: 002f movs r7, r5
|
|
ed64: e023 b.n edae <lv_font_get_bitmap_fmt_txt+0x4fe>
|
|
ed66: 4bc6 ldr r3, [pc, #792] ; (f080 <lv_font_get_bitmap_fmt_txt+0x7d0>)
|
|
ed68: 466a mov r2, sp
|
|
ed6a: 7a12 ldrb r2, [r2, #8]
|
|
ed6c: 701a strb r2, [r3, #0]
|
|
ed6e: e7e5 b.n ed3c <lv_font_get_bitmap_fmt_txt+0x48c>
|
|
len = 4;
|
|
ed70: 2304 movs r3, #4
|
|
val = 0;
|
|
ed72: 2200 movs r2, #0
|
|
bit_pos = bit_pos & 0x7;
|
|
ed74: 2107 movs r1, #7
|
|
ed76: 4031 ands r1, r6
|
|
ed78: 2508 movs r5, #8
|
|
ed7a: 1a6d subs r5, r5, r1
|
|
bit_pos = 8 - bit_pos - len;
|
|
ed7c: 1aed subs r5, r5, r3
|
|
out[byte_pos] &= ((~bit_mask) << bit_pos);
|
|
ed7e: 0371 lsls r1, r6, #13
|
|
ed80: 0c09 lsrs r1, r1, #16
|
|
ed82: 9803 ldr r0, [sp, #12]
|
|
ed84: 4684 mov ip, r0
|
|
ed86: 4461 add r1, ip
|
|
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
ed88: 2001 movs r0, #1
|
|
ed8a: 4098 lsls r0, r3
|
|
ed8c: 0003 movs r3, r0
|
|
ed8e: 3b01 subs r3, #1
|
|
out[byte_pos] &= ((~bit_mask) << bit_pos);
|
|
ed90: b2db uxtb r3, r3
|
|
ed92: 43db mvns r3, r3
|
|
ed94: 40ab lsls r3, r5
|
|
ed96: 7808 ldrb r0, [r1, #0]
|
|
ed98: 4003 ands r3, r0
|
|
out[byte_pos] |= (val << bit_pos);
|
|
ed9a: 40aa lsls r2, r5
|
|
ed9c: 431a orrs r2, r3
|
|
ed9e: 700a strb r2, [r1, #0]
|
|
wrp += wr_size;
|
|
eda0: 9a06 ldr r2, [sp, #24]
|
|
eda2: 0013 movs r3, r2
|
|
eda4: 4694 mov ip, r2
|
|
eda6: 4466 add r6, ip
|
|
eda8: 3701 adds r7, #1
|
|
for(x = 0; x < w; x++) {
|
|
edaa: 42a7 cmp r7, r4
|
|
edac: d021 beq.n edf2 <lv_font_get_bitmap_fmt_txt+0x542>
|
|
bits_write(out, wrp, line_buf1[x], bpp);
|
|
edae: 783a ldrb r2, [r7, #0]
|
|
if(len == 3) {
|
|
edb0: 9b02 ldr r3, [sp, #8]
|
|
edb2: 9900 ldr r1, [sp, #0]
|
|
edb4: 2903 cmp r1, #3
|
|
edb6: d1dd bne.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
switch(val) {
|
|
edb8: 2a07 cmp r2, #7
|
|
edba: d818 bhi.n edee <lv_font_get_bitmap_fmt_txt+0x53e>
|
|
edbc: 0092 lsls r2, r2, #2
|
|
edbe: 4bb1 ldr r3, [pc, #708] ; (f084 <lv_font_get_bitmap_fmt_txt+0x7d4>)
|
|
edc0: 589b ldr r3, [r3, r2]
|
|
edc2: 469f mov pc, r3
|
|
len = 4;
|
|
edc4: 2304 movs r3, #4
|
|
val = 2;
|
|
edc6: 2202 movs r2, #2
|
|
edc8: e7d4 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
edca: 2304 movs r3, #4
|
|
val = 4;
|
|
edcc: 2204 movs r2, #4
|
|
edce: e7d1 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
edd0: 2304 movs r3, #4
|
|
val = 6;
|
|
edd2: 2206 movs r2, #6
|
|
edd4: e7ce b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
edd6: 2304 movs r3, #4
|
|
val = 9;
|
|
edd8: 2209 movs r2, #9
|
|
edda: e7cb b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
eddc: 2304 movs r3, #4
|
|
val = 11;
|
|
edde: 220b movs r2, #11
|
|
ede0: e7c8 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
ede2: 2304 movs r3, #4
|
|
val = 13;
|
|
ede4: 220d movs r2, #13
|
|
ede6: e7c5 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
ede8: 2304 movs r3, #4
|
|
val = 15;
|
|
edea: 220f movs r2, #15
|
|
edec: e7c2 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
len = 4;
|
|
edee: 2304 movs r3, #4
|
|
edf0: e7c0 b.n ed74 <lv_font_get_bitmap_fmt_txt+0x4c4>
|
|
edf2: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
edf4: 435a muls r2, r3
|
|
edf6: 920f str r2, [sp, #60] ; 0x3c
|
|
for(y = 1; y < h; y++) {
|
|
edf8: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
edfa: 2b01 cmp r3, #1
|
|
edfc: dc00 bgt.n ee00 <lv_font_get_bitmap_fmt_txt+0x550>
|
|
edfe: e234 b.n f26a <lv_font_get_bitmap_fmt_txt+0x9ba>
|
|
ret = get_bits(rle_in, rle_rdp, rle_bpp);
|
|
ee00: 4ba1 ldr r3, [pc, #644] ; (f088 <lv_font_get_bitmap_fmt_txt+0x7d8>)
|
|
ee02: 681b ldr r3, [r3, #0]
|
|
ee04: 001e movs r6, r3
|
|
ee06: 4ba1 ldr r3, [pc, #644] ; (f08c <lv_font_get_bitmap_fmt_txt+0x7dc>)
|
|
ee08: 781b ldrb r3, [r3, #0]
|
|
ee0a: 001a movs r2, r3
|
|
ee0c: 9309 str r3, [sp, #36] ; 0x24
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
ee0e: 2301 movs r3, #1
|
|
ee10: 4093 lsls r3, r2
|
|
ee12: 3b01 subs r3, #1
|
|
ee14: b2db uxtb r3, r3
|
|
ee16: 9312 str r3, [sp, #72] ; 0x48
|
|
if(bit_pos + len >= 8) {
|
|
ee18: 4692 mov sl, r2
|
|
ee1a: 4b98 ldr r3, [pc, #608] ; (f07c <lv_font_get_bitmap_fmt_txt+0x7cc>)
|
|
ee1c: 781b ldrb r3, [r3, #0]
|
|
ee1e: 4698 mov r8, r3
|
|
ee20: 2308 movs r3, #8
|
|
ee22: 1a9b subs r3, r3, r2
|
|
ee24: 930c str r3, [sp, #48] ; 0x30
|
|
ee26: 2310 movs r3, #16
|
|
ee28: 1a9b subs r3, r3, r2
|
|
ee2a: 930e str r3, [sp, #56] ; 0x38
|
|
ee2c: 4b94 ldr r3, [pc, #592] ; (f080 <lv_font_get_bitmap_fmt_txt+0x7d0>)
|
|
ee2e: 781b ldrb r3, [r3, #0]
|
|
ee30: 9302 str r3, [sp, #8]
|
|
ee32: 4b90 ldr r3, [pc, #576] ; (f074 <lv_font_get_bitmap_fmt_txt+0x7c4>)
|
|
ee34: 6818 ldr r0, [r3, #0]
|
|
ee36: 4b90 ldr r3, [pc, #576] ; (f078 <lv_font_get_bitmap_fmt_txt+0x7c8>)
|
|
ee38: 7819 ldrb r1, [r3, #0]
|
|
ee3a: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
ee3c: 3b02 subs r3, #2
|
|
ee3e: b29b uxth r3, r3
|
|
ee40: 3301 adds r3, #1
|
|
ee42: 9313 str r3, [sp, #76] ; 0x4c
|
|
ee44: 9c06 ldr r4, [sp, #24]
|
|
ee46: 9404 str r4, [sp, #16]
|
|
ee48: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
ee4a: 3b01 subs r3, #1
|
|
ee4c: b29b uxth r3, r3
|
|
ee4e: 001d movs r5, r3
|
|
ee50: 9314 str r3, [sp, #80] ; 0x50
|
|
ee52: 0023 movs r3, r4
|
|
ee54: 436b muls r3, r5
|
|
ee56: 9315 str r3, [sp, #84] ; 0x54
|
|
ee58: 2300 movs r3, #0
|
|
ee5a: 9310 str r3, [sp, #64] ; 0x40
|
|
ee5c: 930b str r3, [sp, #44] ; 0x2c
|
|
ee5e: 930d str r3, [sp, #52] ; 0x34
|
|
ee60: 9307 str r3, [sp, #28]
|
|
ee62: 9308 str r3, [sp, #32]
|
|
switch(len) {
|
|
ee64: 0093 lsls r3, r2, #2
|
|
ee66: 930a str r3, [sp, #40] ; 0x28
|
|
ee68: 4a89 ldr r2, [pc, #548] ; (f090 <lv_font_get_bitmap_fmt_txt+0x7e0>)
|
|
ee6a: 469c mov ip, r3
|
|
ee6c: 4462 add r2, ip
|
|
ee6e: 9216 str r2, [sp, #88] ; 0x58
|
|
ee70: 9b11 ldr r3, [sp, #68] ; 0x44
|
|
ee72: 469b mov fp, r3
|
|
ee74: 4643 mov r3, r8
|
|
ee76: 9306 str r3, [sp, #24]
|
|
ee78: 9b17 ldr r3, [sp, #92] ; 0x5c
|
|
ee7a: 001d movs r5, r3
|
|
ee7c: 468c mov ip, r1
|
|
ee7e: 46b1 mov r9, r6
|
|
ee80: e1cf b.n f222 <lv_font_get_bitmap_fmt_txt+0x972>
|
|
for(i = 0; i < w; i++) {
|
|
ee82: 2300 movs r3, #0
|
|
ee84: 930f str r3, [sp, #60] ; 0x3c
|
|
ee86: e7b7 b.n edf8 <lv_font_get_bitmap_fmt_txt+0x548>
|
|
bit_mask = 0x3;
|
|
ee88: 2303 movs r3, #3
|
|
ee8a: e008 b.n ee9e <lv_font_get_bitmap_fmt_txt+0x5ee>
|
|
bit_mask = 0x7;
|
|
ee8c: 2307 movs r3, #7
|
|
ee8e: e006 b.n ee9e <lv_font_get_bitmap_fmt_txt+0x5ee>
|
|
bit_mask = 0xF;
|
|
ee90: 230f movs r3, #15
|
|
ee92: e004 b.n ee9e <lv_font_get_bitmap_fmt_txt+0x5ee>
|
|
bit_mask = 0xFF;
|
|
ee94: 23ff movs r3, #255 ; 0xff
|
|
ee96: e002 b.n ee9e <lv_font_get_bitmap_fmt_txt+0x5ee>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
ee98: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
ee9a: e000 b.n ee9e <lv_font_get_bitmap_fmt_txt+0x5ee>
|
|
bit_mask = 0x1;
|
|
ee9c: 2301 movs r3, #1
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ee9e: 08c5 lsrs r5, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
eea0: 2207 movs r2, #7
|
|
eea2: 4002 ands r2, r0
|
|
if(bit_pos + len >= 8) {
|
|
eea4: 1997 adds r7, r2, r6
|
|
eea6: 2f07 cmp r7, #7
|
|
eea8: d81f bhi.n eeea <lv_font_get_bitmap_fmt_txt+0x63a>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
eeaa: 464f mov r7, r9
|
|
eeac: 5d7d ldrb r5, [r7, r5]
|
|
eeae: 9f0c ldr r7, [sp, #48] ; 0x30
|
|
eeb0: 1aba subs r2, r7, r2
|
|
eeb2: 4115 asrs r5, r2
|
|
eeb4: 402b ands r3, r5
|
|
eeb6: b2db uxtb r3, r3
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
eeb8: 2800 cmp r0, #0
|
|
eeba: d002 beq.n eec2 <lv_font_get_bitmap_fmt_txt+0x612>
|
|
eebc: 9a02 ldr r2, [sp, #8]
|
|
eebe: 429a cmp r2, r3
|
|
eec0: d021 beq.n ef06 <lv_font_get_bitmap_fmt_txt+0x656>
|
|
rle_rdp += rle_bpp;
|
|
eec2: 1980 adds r0, r0, r6
|
|
rle_prev_v = ret;
|
|
eec4: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
eec6: 2201 movs r2, #1
|
|
eec8: 9207 str r2, [sp, #28]
|
|
eeca: 9208 str r2, [sp, #32]
|
|
out[i] = rle_next();
|
|
eecc: 7023 strb r3, [r4, #0]
|
|
eece: 3401 adds r4, #1
|
|
for(i = 0; i < w; i++) {
|
|
eed0: 4564 cmp r4, ip
|
|
eed2: d100 bne.n eed6 <lv_font_get_bitmap_fmt_txt+0x626>
|
|
eed4: e141 b.n f15a <lv_font_get_bitmap_fmt_txt+0x8aa>
|
|
if(rle_state == RLE_STATE_SINGLE) {
|
|
eed6: 2900 cmp r1, #0
|
|
eed8: d11d bne.n ef16 <lv_font_get_bitmap_fmt_txt+0x666>
|
|
switch(len) {
|
|
eeda: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
eedc: 2b08 cmp r3, #8
|
|
eede: d8db bhi.n ee98 <lv_font_get_bitmap_fmt_txt+0x5e8>
|
|
eee0: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
eee2: 4a6c ldr r2, [pc, #432] ; (f094 <lv_font_get_bitmap_fmt_txt+0x7e4>)
|
|
eee4: 58d3 ldr r3, [r2, r3]
|
|
eee6: 9305 str r3, [sp, #20]
|
|
eee8: 469f mov pc, r3
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
eeea: 464f mov r7, r9
|
|
eeec: 5d7f ldrb r7, [r7, r5]
|
|
eeee: 023f lsls r7, r7, #8
|
|
eef0: 46ba mov sl, r7
|
|
eef2: 444d add r5, r9
|
|
eef4: 786d ldrb r5, [r5, #1]
|
|
eef6: 4455 add r5, sl
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
eef8: b2ad uxth r5, r5
|
|
eefa: 9f0e ldr r7, [sp, #56] ; 0x38
|
|
eefc: 1aba subs r2, r7, r2
|
|
eefe: 4115 asrs r5, r2
|
|
ef00: 402b ands r3, r5
|
|
ef02: b2db uxtb r3, r3
|
|
ef04: e7d8 b.n eeb8 <lv_font_get_bitmap_fmt_txt+0x608>
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
ef06: 2201 movs r2, #1
|
|
ef08: 920b str r2, [sp, #44] ; 0x2c
|
|
rle_cnt = 0;
|
|
ef0a: 2200 movs r2, #0
|
|
ef0c: 9206 str r2, [sp, #24]
|
|
if(rle_rdp != 0 && rle_prev_v == ret) {
|
|
ef0e: 3201 adds r2, #1
|
|
ef10: 920d str r2, [sp, #52] ; 0x34
|
|
rle_state = RLE_STATE_REPEATE;
|
|
ef12: 2101 movs r1, #1
|
|
ef14: e7d5 b.n eec2 <lv_font_get_bitmap_fmt_txt+0x612>
|
|
else if(rle_state == RLE_STATE_REPEATE) {
|
|
ef16: 2901 cmp r1, #1
|
|
ef18: d011 beq.n ef3e <lv_font_get_bitmap_fmt_txt+0x68e>
|
|
uint8_t ret = 0;
|
|
ef1a: 2300 movs r3, #0
|
|
else if(rle_state == RLE_STATE_COUNTER) {
|
|
ef1c: 2902 cmp r1, #2
|
|
ef1e: d1d5 bne.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
rle_cnt--;
|
|
ef20: 9b06 ldr r3, [sp, #24]
|
|
ef22: 3b01 subs r3, #1
|
|
ef24: b2db uxtb r3, r3
|
|
ef26: 9306 str r3, [sp, #24]
|
|
if(rle_cnt == 0) {
|
|
ef28: 2b00 cmp r3, #0
|
|
ef2a: d000 beq.n ef2e <lv_font_get_bitmap_fmt_txt+0x67e>
|
|
ef2c: e111 b.n f152 <lv_font_get_bitmap_fmt_txt+0x8a2>
|
|
switch(len) {
|
|
ef2e: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
ef30: 2b08 cmp r3, #8
|
|
ef32: d900 bls.n ef36 <lv_font_get_bitmap_fmt_txt+0x686>
|
|
ef34: e0e0 b.n f0f8 <lv_font_get_bitmap_fmt_txt+0x848>
|
|
ef36: 9b16 ldr r3, [sp, #88] ; 0x58
|
|
ef38: 681b ldr r3, [r3, #0]
|
|
ef3a: 9302 str r3, [sp, #8]
|
|
ef3c: 469f mov pc, r3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
ef3e: 08c3 lsrs r3, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
ef40: 2207 movs r2, #7
|
|
ef42: 4002 ands r2, r0
|
|
if(bit_pos + len >= 8) {
|
|
ef44: 1c55 adds r5, r2, #1
|
|
ef46: 2d07 cmp r5, #7
|
|
ef48: d816 bhi.n ef78 <lv_font_get_bitmap_fmt_txt+0x6c8>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
ef4a: 464d mov r5, r9
|
|
ef4c: 5ceb ldrb r3, [r5, r3]
|
|
ef4e: 43d2 mvns r2, r2
|
|
ef50: 3208 adds r2, #8
|
|
ef52: 4113 asrs r3, r2
|
|
ef54: 2201 movs r2, #1
|
|
ef56: 4013 ands r3, r2
|
|
rle_cnt++;
|
|
ef58: 9a06 ldr r2, [sp, #24]
|
|
ef5a: 3201 adds r2, #1
|
|
ef5c: b2d2 uxtb r2, r2
|
|
ef5e: 9206 str r2, [sp, #24]
|
|
rle_rdp += 1;
|
|
ef60: 1c45 adds r5, r0, #1
|
|
if(v == 1) {
|
|
ef62: 2b01 cmp r3, #1
|
|
ef64: d015 beq.n ef92 <lv_font_get_bitmap_fmt_txt+0x6e2>
|
|
switch(len) {
|
|
ef66: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
ef68: 2b08 cmp r3, #8
|
|
ef6a: d900 bls.n ef6e <lv_font_get_bitmap_fmt_txt+0x6be>
|
|
ef6c: e080 b.n f070 <lv_font_get_bitmap_fmt_txt+0x7c0>
|
|
ef6e: 4b4a ldr r3, [pc, #296] ; (f098 <lv_font_get_bitmap_fmt_txt+0x7e8>)
|
|
ef70: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
ef72: 589b ldr r3, [r3, r2]
|
|
ef74: 9302 str r3, [sp, #8]
|
|
ef76: 469f mov pc, r3
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
ef78: 464d mov r5, r9
|
|
ef7a: 5ced ldrb r5, [r5, r3]
|
|
ef7c: 022d lsls r5, r5, #8
|
|
ef7e: 444b add r3, r9
|
|
ef80: 785b ldrb r3, [r3, #1]
|
|
ef82: 195b adds r3, r3, r5
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
ef84: b29b uxth r3, r3
|
|
ef86: 43d2 mvns r2, r2
|
|
ef88: 3210 adds r2, #16
|
|
ef8a: 4113 asrs r3, r2
|
|
ef8c: 2201 movs r2, #1
|
|
ef8e: 4013 ands r3, r2
|
|
ef90: e7e2 b.n ef58 <lv_font_get_bitmap_fmt_txt+0x6a8>
|
|
if(rle_cnt == 11) {
|
|
ef92: 2a0b cmp r2, #11
|
|
ef94: d005 beq.n efa2 <lv_font_get_bitmap_fmt_txt+0x6f2>
|
|
rle_rdp += 1;
|
|
ef96: 0028 movs r0, r5
|
|
ret = rle_prev_v;
|
|
ef98: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt == 11) {
|
|
ef9a: 2201 movs r2, #1
|
|
ef9c: 920b str r2, [sp, #44] ; 0x2c
|
|
ef9e: 9207 str r2, [sp, #28]
|
|
efa0: e794 b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
efa2: 08eb lsrs r3, r5, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
efa4: 2207 movs r2, #7
|
|
efa6: 4015 ands r5, r2
|
|
if(bit_pos + len >= 8) {
|
|
efa8: 1daa adds r2, r5, #6
|
|
efaa: 2a07 cmp r2, #7
|
|
efac: d814 bhi.n efd8 <lv_font_get_bitmap_fmt_txt+0x728>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
efae: 464a mov r2, r9
|
|
efb0: 5cd3 ldrb r3, [r2, r3]
|
|
efb2: 2202 movs r2, #2
|
|
efb4: 1b55 subs r5, r2, r5
|
|
efb6: 412b asrs r3, r5
|
|
efb8: 323d adds r2, #61 ; 0x3d
|
|
efba: 401a ands r2, r3
|
|
efbc: 9206 str r2, [sp, #24]
|
|
rle_rdp += 6;
|
|
efbe: 3007 adds r0, #7
|
|
if(rle_cnt != 0) {
|
|
efc0: 9b06 ldr r3, [sp, #24]
|
|
efc2: 2b00 cmp r3, #0
|
|
efc4: d000 beq.n efc8 <lv_font_get_bitmap_fmt_txt+0x718>
|
|
efc6: e0bd b.n f144 <lv_font_get_bitmap_fmt_txt+0x894>
|
|
switch(len) {
|
|
efc8: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
efca: 2b08 cmp r3, #8
|
|
efcc: d834 bhi.n f038 <lv_font_get_bitmap_fmt_txt+0x788>
|
|
efce: 4b33 ldr r3, [pc, #204] ; (f09c <lv_font_get_bitmap_fmt_txt+0x7ec>)
|
|
efd0: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
efd2: 589b ldr r3, [r3, r2]
|
|
efd4: 9302 str r3, [sp, #8]
|
|
efd6: 469f mov pc, r3
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
efd8: 464a mov r2, r9
|
|
efda: 5cd2 ldrb r2, [r2, r3]
|
|
efdc: 0212 lsls r2, r2, #8
|
|
efde: 444b add r3, r9
|
|
efe0: 785b ldrb r3, [r3, #1]
|
|
efe2: 189b adds r3, r3, r2
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
efe4: b29b uxth r3, r3
|
|
efe6: 220a movs r2, #10
|
|
efe8: 1b55 subs r5, r2, r5
|
|
efea: 412b asrs r3, r5
|
|
efec: 3235 adds r2, #53 ; 0x35
|
|
efee: 401a ands r2, r3
|
|
eff0: 9206 str r2, [sp, #24]
|
|
eff2: e7e4 b.n efbe <lv_font_get_bitmap_fmt_txt+0x70e>
|
|
bit_mask = 0x3;
|
|
eff4: 2303 movs r3, #3
|
|
eff6: 469a mov sl, r3
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
eff8: 08c5 lsrs r5, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
effa: 2307 movs r3, #7
|
|
effc: 4003 ands r3, r0
|
|
if(bit_pos + len >= 8) {
|
|
effe: 199a adds r2, r3, r6
|
|
f000: 2a07 cmp r2, #7
|
|
f002: d81f bhi.n f044 <lv_font_get_bitmap_fmt_txt+0x794>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
f004: 464a mov r2, r9
|
|
f006: 5d52 ldrb r2, [r2, r5]
|
|
f008: 990c ldr r1, [sp, #48] ; 0x30
|
|
f00a: 1acb subs r3, r1, r3
|
|
f00c: 411a asrs r2, r3
|
|
f00e: 4653 mov r3, sl
|
|
f010: 4013 ands r3, r2
|
|
f012: b2db uxtb r3, r3
|
|
rle_rdp += rle_bpp;
|
|
f014: 1980 adds r0, r0, r6
|
|
rle_prev_v = ret;
|
|
f016: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
f018: 2201 movs r2, #1
|
|
f01a: 920b str r2, [sp, #44] ; 0x2c
|
|
f01c: 920d str r2, [sp, #52] ; 0x34
|
|
rle_state = RLE_STATE_SINGLE;
|
|
f01e: 2100 movs r1, #0
|
|
rle_rdp += rle_bpp;
|
|
f020: 9207 str r2, [sp, #28]
|
|
f022: 9208 str r2, [sp, #32]
|
|
f024: e752 b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
bit_mask = 0x7;
|
|
f026: 2307 movs r3, #7
|
|
f028: 469a mov sl, r3
|
|
f02a: e7e5 b.n eff8 <lv_font_get_bitmap_fmt_txt+0x748>
|
|
bit_mask = 0xF;
|
|
f02c: 230f movs r3, #15
|
|
f02e: 469a mov sl, r3
|
|
f030: e7e2 b.n eff8 <lv_font_get_bitmap_fmt_txt+0x748>
|
|
bit_mask = 0xFF;
|
|
f032: 23ff movs r3, #255 ; 0xff
|
|
f034: 469a mov sl, r3
|
|
f036: e7df b.n eff8 <lv_font_get_bitmap_fmt_txt+0x748>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
f038: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
f03a: 469a mov sl, r3
|
|
f03c: e7dc b.n eff8 <lv_font_get_bitmap_fmt_txt+0x748>
|
|
bit_mask = 0x1;
|
|
f03e: 2301 movs r3, #1
|
|
f040: 469a mov sl, r3
|
|
f042: e7d9 b.n eff8 <lv_font_get_bitmap_fmt_txt+0x748>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
f044: 464a mov r2, r9
|
|
f046: 5d51 ldrb r1, [r2, r5]
|
|
f048: 0209 lsls r1, r1, #8
|
|
f04a: 444d add r5, r9
|
|
f04c: 786a ldrb r2, [r5, #1]
|
|
f04e: 1852 adds r2, r2, r1
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
f050: b292 uxth r2, r2
|
|
f052: 990e ldr r1, [sp, #56] ; 0x38
|
|
f054: 1acb subs r3, r1, r3
|
|
f056: 411a asrs r2, r3
|
|
f058: 4653 mov r3, sl
|
|
f05a: 4013 ands r3, r2
|
|
f05c: b2db uxtb r3, r3
|
|
f05e: e7d9 b.n f014 <lv_font_get_bitmap_fmt_txt+0x764>
|
|
bit_mask = 0x3;
|
|
f060: 2303 movs r3, #3
|
|
f062: e01e b.n f0a2 <lv_font_get_bitmap_fmt_txt+0x7f2>
|
|
bit_mask = 0x7;
|
|
f064: 2307 movs r3, #7
|
|
f066: e01c b.n f0a2 <lv_font_get_bitmap_fmt_txt+0x7f2>
|
|
bit_mask = 0xF;
|
|
f068: 230f movs r3, #15
|
|
f06a: e01a b.n f0a2 <lv_font_get_bitmap_fmt_txt+0x7f2>
|
|
bit_mask = 0xFF;
|
|
f06c: 23ff movs r3, #255 ; 0xff
|
|
f06e: e018 b.n f0a2 <lv_font_get_bitmap_fmt_txt+0x7f2>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
f070: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
f072: e016 b.n f0a2 <lv_font_get_bitmap_fmt_txt+0x7f2>
|
|
f074: 20002bc8 .word 0x20002bc8
|
|
f078: 20002bcc .word 0x20002bcc
|
|
f07c: 20002bbd .word 0x20002bbd
|
|
f080: 20002bc4 .word 0x20002bc4
|
|
f084: 000189f0 .word 0x000189f0
|
|
f088: 20002bc0 .word 0x20002bc0
|
|
f08c: 20002bbc .word 0x20002bbc
|
|
f090: 00018a34 .word 0x00018a34
|
|
f094: 00018a10 .word 0x00018a10
|
|
f098: 00018a58 .word 0x00018a58
|
|
f09c: 00018a7c .word 0x00018a7c
|
|
bit_mask = 0x1;
|
|
f0a0: 2301 movs r3, #1
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
f0a2: 08e9 lsrs r1, r5, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
f0a4: 2207 movs r2, #7
|
|
f0a6: 402a ands r2, r5
|
|
if(bit_pos + len >= 8) {
|
|
f0a8: 1990 adds r0, r2, r6
|
|
f0aa: 2807 cmp r0, #7
|
|
f0ac: d80f bhi.n f0ce <lv_font_get_bitmap_fmt_txt+0x81e>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
f0ae: 4648 mov r0, r9
|
|
f0b0: 5c41 ldrb r1, [r0, r1]
|
|
f0b2: 980c ldr r0, [sp, #48] ; 0x30
|
|
f0b4: 1a82 subs r2, r0, r2
|
|
f0b6: 4111 asrs r1, r2
|
|
f0b8: 400b ands r3, r1
|
|
f0ba: b2db uxtb r3, r3
|
|
rle_rdp += rle_bpp;
|
|
f0bc: 19a8 adds r0, r5, r6
|
|
rle_prev_v = ret;
|
|
f0be: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
f0c0: 2201 movs r2, #1
|
|
f0c2: 920b str r2, [sp, #44] ; 0x2c
|
|
f0c4: 920d str r2, [sp, #52] ; 0x34
|
|
rle_state = RLE_STATE_SINGLE;
|
|
f0c6: 2100 movs r1, #0
|
|
rle_rdp += rle_bpp;
|
|
f0c8: 9207 str r2, [sp, #28]
|
|
f0ca: 9208 str r2, [sp, #32]
|
|
f0cc: e6fe b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
f0ce: 4648 mov r0, r9
|
|
f0d0: 5c40 ldrb r0, [r0, r1]
|
|
f0d2: 0200 lsls r0, r0, #8
|
|
f0d4: 4449 add r1, r9
|
|
f0d6: 7849 ldrb r1, [r1, #1]
|
|
f0d8: 1809 adds r1, r1, r0
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
f0da: b289 uxth r1, r1
|
|
f0dc: 980e ldr r0, [sp, #56] ; 0x38
|
|
f0de: 1a82 subs r2, r0, r2
|
|
f0e0: 4111 asrs r1, r2
|
|
f0e2: 400b ands r3, r1
|
|
f0e4: b2db uxtb r3, r3
|
|
f0e6: e7e9 b.n f0bc <lv_font_get_bitmap_fmt_txt+0x80c>
|
|
bit_mask = 0x3;
|
|
f0e8: 2303 movs r3, #3
|
|
f0ea: e008 b.n f0fe <lv_font_get_bitmap_fmt_txt+0x84e>
|
|
bit_mask = 0x7;
|
|
f0ec: 2307 movs r3, #7
|
|
f0ee: e006 b.n f0fe <lv_font_get_bitmap_fmt_txt+0x84e>
|
|
bit_mask = 0xF;
|
|
f0f0: 230f movs r3, #15
|
|
f0f2: e004 b.n f0fe <lv_font_get_bitmap_fmt_txt+0x84e>
|
|
bit_mask = 0xFF;
|
|
f0f4: 23ff movs r3, #255 ; 0xff
|
|
f0f6: e002 b.n f0fe <lv_font_get_bitmap_fmt_txt+0x84e>
|
|
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
f0f8: 9b12 ldr r3, [sp, #72] ; 0x48
|
|
f0fa: e000 b.n f0fe <lv_font_get_bitmap_fmt_txt+0x84e>
|
|
bit_mask = 0x1;
|
|
f0fc: 2301 movs r3, #1
|
|
uint32_t byte_pos = bit_pos >> 3;
|
|
f0fe: 08c1 lsrs r1, r0, #3
|
|
bit_pos = bit_pos & 0x7;
|
|
f100: 2207 movs r2, #7
|
|
f102: 4002 ands r2, r0
|
|
if(bit_pos + len >= 8) {
|
|
f104: 1995 adds r5, r2, r6
|
|
f106: 2d07 cmp r5, #7
|
|
f108: d80f bhi.n f12a <lv_font_get_bitmap_fmt_txt+0x87a>
|
|
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
|
|
f10a: 464d mov r5, r9
|
|
f10c: 5c69 ldrb r1, [r5, r1]
|
|
f10e: 9d0c ldr r5, [sp, #48] ; 0x30
|
|
f110: 1aaa subs r2, r5, r2
|
|
f112: 4111 asrs r1, r2
|
|
f114: 400b ands r3, r1
|
|
f116: b2db uxtb r3, r3
|
|
rle_rdp += rle_bpp;
|
|
f118: 1980 adds r0, r0, r6
|
|
rle_prev_v = ret;
|
|
f11a: 9302 str r3, [sp, #8]
|
|
rle_rdp += rle_bpp;
|
|
f11c: 2201 movs r2, #1
|
|
f11e: 920b str r2, [sp, #44] ; 0x2c
|
|
f120: 920d str r2, [sp, #52] ; 0x34
|
|
rle_state = RLE_STATE_SINGLE;
|
|
f122: 2100 movs r1, #0
|
|
rle_rdp += rle_bpp;
|
|
f124: 9207 str r2, [sp, #28]
|
|
f126: 9208 str r2, [sp, #32]
|
|
f128: e6d0 b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
|
|
f12a: 464d mov r5, r9
|
|
f12c: 5c6d ldrb r5, [r5, r1]
|
|
f12e: 022d lsls r5, r5, #8
|
|
f130: 4449 add r1, r9
|
|
f132: 7849 ldrb r1, [r1, #1]
|
|
f134: 1949 adds r1, r1, r5
|
|
return (in16 >> (16 - bit_pos - len)) & bit_mask;
|
|
f136: b289 uxth r1, r1
|
|
f138: 9d0e ldr r5, [sp, #56] ; 0x38
|
|
f13a: 1aaa subs r2, r5, r2
|
|
f13c: 4111 asrs r1, r2
|
|
f13e: 400b ands r3, r1
|
|
f140: b2db uxtb r3, r3
|
|
f142: e7e9 b.n f118 <lv_font_get_bitmap_fmt_txt+0x868>
|
|
ret = rle_prev_v;
|
|
f144: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt != 0) {
|
|
f146: 2201 movs r2, #1
|
|
f148: 920b str r2, [sp, #44] ; 0x2c
|
|
f14a: 920d str r2, [sp, #52] ; 0x34
|
|
rle_state = RLE_STATE_COUNTER;
|
|
f14c: 2102 movs r1, #2
|
|
if(rle_cnt != 0) {
|
|
f14e: 9207 str r2, [sp, #28]
|
|
f150: e6bc b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
ret = rle_prev_v;
|
|
f152: 9b02 ldr r3, [sp, #8]
|
|
if(rle_cnt == 0) {
|
|
f154: 2201 movs r2, #1
|
|
f156: 920b str r2, [sp, #44] ; 0x2c
|
|
f158: e6b8 b.n eecc <lv_font_get_bitmap_fmt_txt+0x61c>
|
|
f15a: 468c mov ip, r1
|
|
f15c: 46b2 mov sl, r6
|
|
for(i = 0; i < w; i++) {
|
|
f15e: 990f ldr r1, [sp, #60] ; 0x3c
|
|
f160: 2700 movs r7, #0
|
|
if(len == 3) {
|
|
f162: 9b00 ldr r3, [sp, #0]
|
|
f164: 9305 str r3, [sp, #20]
|
|
val = 6;
|
|
f166: 0003 movs r3, r0
|
|
f168: 4640 mov r0, r8
|
|
f16a: 4662 mov r2, ip
|
|
f16c: 9211 str r2, [sp, #68] ; 0x44
|
|
f16e: 4698 mov r8, r3
|
|
f170: e01e b.n f1b0 <lv_font_get_bitmap_fmt_txt+0x900>
|
|
len = 4;
|
|
f172: 2304 movs r3, #4
|
|
val = 0;
|
|
f174: 2400 movs r4, #0
|
|
bit_pos = bit_pos & 0x7;
|
|
f176: 2207 movs r2, #7
|
|
f178: 400a ands r2, r1
|
|
f17a: 2608 movs r6, #8
|
|
f17c: 1ab6 subs r6, r6, r2
|
|
bit_pos = 8 - bit_pos - len;
|
|
f17e: 1af6 subs r6, r6, r3
|
|
out[byte_pos] &= ((~bit_mask) << bit_pos);
|
|
f180: 034d lsls r5, r1, #13
|
|
f182: 0c2d lsrs r5, r5, #16
|
|
f184: 9a03 ldr r2, [sp, #12]
|
|
f186: 4694 mov ip, r2
|
|
f188: 4465 add r5, ip
|
|
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
|
|
f18a: 2201 movs r2, #1
|
|
f18c: 409a lsls r2, r3
|
|
f18e: 0013 movs r3, r2
|
|
f190: 3b01 subs r3, #1
|
|
out[byte_pos] &= ((~bit_mask) << bit_pos);
|
|
f192: b2db uxtb r3, r3
|
|
f194: 43db mvns r3, r3
|
|
f196: 40b3 lsls r3, r6
|
|
f198: 782a ldrb r2, [r5, #0]
|
|
f19a: 4013 ands r3, r2
|
|
out[byte_pos] |= (val << bit_pos);
|
|
f19c: 40b4 lsls r4, r6
|
|
f19e: 4323 orrs r3, r4
|
|
f1a0: 702b strb r3, [r5, #0]
|
|
f1a2: 9b04 ldr r3, [sp, #16]
|
|
f1a4: 469c mov ip, r3
|
|
f1a6: 4461 add r1, ip
|
|
f1a8: 3701 adds r7, #1
|
|
for(x = 0; x < w; x++) {
|
|
f1aa: b23b sxth r3, r7
|
|
f1ac: 459b cmp fp, r3
|
|
f1ae: dd25 ble.n f1fc <lv_font_get_bitmap_fmt_txt+0x94c>
|
|
line_buf1[x] = line_buf2[x] ^ line_buf1[x];
|
|
f1b0: 9b01 ldr r3, [sp, #4]
|
|
f1b2: 5ddc ldrb r4, [r3, r7]
|
|
f1b4: 5dc3 ldrb r3, [r0, r7]
|
|
f1b6: 405c eors r4, r3
|
|
f1b8: 55c4 strb r4, [r0, r7]
|
|
if(len == 3) {
|
|
f1ba: 9b05 ldr r3, [sp, #20]
|
|
f1bc: 9a00 ldr r2, [sp, #0]
|
|
f1be: 2a03 cmp r2, #3
|
|
f1c0: d1d9 bne.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
switch(val) {
|
|
f1c2: 2c07 cmp r4, #7
|
|
f1c4: d818 bhi.n f1f8 <lv_font_get_bitmap_fmt_txt+0x948>
|
|
f1c6: 00a4 lsls r4, r4, #2
|
|
f1c8: 4b35 ldr r3, [pc, #212] ; (f2a0 <lv_font_get_bitmap_fmt_txt+0x9f0>)
|
|
f1ca: 591b ldr r3, [r3, r4]
|
|
f1cc: 469f mov pc, r3
|
|
len = 4;
|
|
f1ce: 2304 movs r3, #4
|
|
val = 2;
|
|
f1d0: 2402 movs r4, #2
|
|
f1d2: e7d0 b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1d4: 2304 movs r3, #4
|
|
val = 4;
|
|
f1d6: 2404 movs r4, #4
|
|
f1d8: e7cd b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1da: 2304 movs r3, #4
|
|
val = 6;
|
|
f1dc: 2406 movs r4, #6
|
|
f1de: e7ca b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1e0: 2304 movs r3, #4
|
|
val = 9;
|
|
f1e2: 2409 movs r4, #9
|
|
f1e4: e7c7 b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1e6: 2304 movs r3, #4
|
|
val = 11;
|
|
f1e8: 240b movs r4, #11
|
|
f1ea: e7c4 b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1ec: 2304 movs r3, #4
|
|
val = 13;
|
|
f1ee: 240d movs r4, #13
|
|
f1f0: e7c1 b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1f2: 2304 movs r3, #4
|
|
val = 15;
|
|
f1f4: 240f movs r4, #15
|
|
f1f6: e7be b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
len = 4;
|
|
f1f8: 2304 movs r3, #4
|
|
f1fa: e7bc b.n f176 <lv_font_get_bitmap_fmt_txt+0x8c6>
|
|
f1fc: 0005 movs r5, r0
|
|
f1fe: 9a11 ldr r2, [sp, #68] ; 0x44
|
|
f200: 4694 mov ip, r2
|
|
f202: 4640 mov r0, r8
|
|
f204: 9b15 ldr r3, [sp, #84] ; 0x54
|
|
f206: 9a04 ldr r2, [sp, #16]
|
|
f208: 4690 mov r8, r2
|
|
f20a: 4443 add r3, r8
|
|
f20c: 9a0f ldr r2, [sp, #60] ; 0x3c
|
|
f20e: 4690 mov r8, r2
|
|
f210: 4498 add r8, r3
|
|
f212: 4643 mov r3, r8
|
|
f214: 930f str r3, [sp, #60] ; 0x3c
|
|
f216: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
f218: 3301 adds r3, #1
|
|
f21a: 9310 str r3, [sp, #64] ; 0x40
|
|
for(y = 1; y < h; y++) {
|
|
f21c: 9a13 ldr r2, [sp, #76] ; 0x4c
|
|
f21e: 4293 cmp r3, r2
|
|
f220: d00d beq.n f23e <lv_font_get_bitmap_fmt_txt+0x98e>
|
|
for(i = 0; i < w; i++) {
|
|
f222: 465b mov r3, fp
|
|
f224: 2b00 cmp r3, #0
|
|
f226: ddf6 ble.n f216 <lv_font_get_bitmap_fmt_txt+0x966>
|
|
f228: 9b01 ldr r3, [sp, #4]
|
|
f22a: 4698 mov r8, r3
|
|
f22c: 001c movs r4, r3
|
|
f22e: 9b14 ldr r3, [sp, #80] ; 0x50
|
|
f230: 1c5e adds r6, r3, #1
|
|
f232: 4446 add r6, r8
|
|
f234: 46a8 mov r8, r5
|
|
f236: 4661 mov r1, ip
|
|
f238: 46b4 mov ip, r6
|
|
f23a: 4656 mov r6, sl
|
|
f23c: e64b b.n eed6 <lv_font_get_bitmap_fmt_txt+0x626>
|
|
f23e: 9b06 ldr r3, [sp, #24]
|
|
f240: 4698 mov r8, r3
|
|
f242: 4661 mov r1, ip
|
|
f244: 9b08 ldr r3, [sp, #32]
|
|
f246: 2b00 cmp r3, #0
|
|
f248: d118 bne.n f27c <lv_font_get_bitmap_fmt_txt+0x9cc>
|
|
f24a: 9b07 ldr r3, [sp, #28]
|
|
f24c: 2b00 cmp r3, #0
|
|
f24e: d001 beq.n f254 <lv_font_get_bitmap_fmt_txt+0x9a4>
|
|
f250: 4b14 ldr r3, [pc, #80] ; (f2a4 <lv_font_get_bitmap_fmt_txt+0x9f4>)
|
|
f252: 6018 str r0, [r3, #0]
|
|
f254: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
f256: 2b00 cmp r3, #0
|
|
f258: d001 beq.n f25e <lv_font_get_bitmap_fmt_txt+0x9ae>
|
|
f25a: 4b13 ldr r3, [pc, #76] ; (f2a8 <lv_font_get_bitmap_fmt_txt+0x9f8>)
|
|
f25c: 7019 strb r1, [r3, #0]
|
|
f25e: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
f260: 2b00 cmp r3, #0
|
|
f262: d002 beq.n f26a <lv_font_get_bitmap_fmt_txt+0x9ba>
|
|
f264: 4b11 ldr r3, [pc, #68] ; (f2ac <lv_font_get_bitmap_fmt_txt+0x9fc>)
|
|
f266: 4642 mov r2, r8
|
|
f268: 701a strb r2, [r3, #0]
|
|
_lv_mem_buf_release(line_buf1);
|
|
f26a: 9817 ldr r0, [sp, #92] ; 0x5c
|
|
f26c: 4c10 ldr r4, [pc, #64] ; (f2b0 <lv_font_get_bitmap_fmt_txt+0xa00>)
|
|
f26e: 47a0 blx r4
|
|
_lv_mem_buf_release(line_buf2);
|
|
f270: 9801 ldr r0, [sp, #4]
|
|
f272: 47a0 blx r4
|
|
return decompr_buf;
|
|
f274: 4b0f ldr r3, [pc, #60] ; (f2b4 <lv_font_get_bitmap_fmt_txt+0xa04>)
|
|
f276: 6818 ldr r0, [r3, #0]
|
|
f278: f7ff fb39 bl e8ee <lv_font_get_bitmap_fmt_txt+0x3e>
|
|
f27c: 4b0e ldr r3, [pc, #56] ; (f2b8 <lv_font_get_bitmap_fmt_txt+0xa08>)
|
|
f27e: 466a mov r2, sp
|
|
f280: 7a12 ldrb r2, [r2, #8]
|
|
f282: 701a strb r2, [r3, #0]
|
|
f284: e7e1 b.n f24a <lv_font_get_bitmap_fmt_txt+0x99a>
|
|
if(!gid) return NULL;
|
|
f286: 2000 movs r0, #0
|
|
f288: f7ff fb31 bl e8ee <lv_font_get_bitmap_fmt_txt+0x3e>
|
|
return NULL;
|
|
f28c: 2000 movs r0, #0
|
|
f28e: f7ff fb2e bl e8ee <lv_font_get_bitmap_fmt_txt+0x3e>
|
|
if(gsize == 0) return NULL;
|
|
f292: 2000 movs r0, #0
|
|
f294: f7ff fb2b bl e8ee <lv_font_get_bitmap_fmt_txt+0x3e>
|
|
if(decompr_buf == NULL) return NULL;
|
|
f298: 2000 movs r0, #0
|
|
f29a: f7ff fb28 bl e8ee <lv_font_get_bitmap_fmt_txt+0x3e>
|
|
f29e: 46c0 nop ; (mov r8, r8)
|
|
f2a0: 00018aa0 .word 0x00018aa0
|
|
f2a4: 20002bc8 .word 0x20002bc8
|
|
f2a8: 20002bcc .word 0x20002bcc
|
|
f2ac: 20002bbd .word 0x20002bbd
|
|
f2b0: 00010bd5 .word 0x00010bd5
|
|
f2b4: 20002bb8 .word 0x20002bb8
|
|
f2b8: 20002bc4 .word 0x20002bc4
|
|
|
|
0000f2bc <lv_font_get_glyph_dsc_fmt_txt>:
|
|
{
|
|
f2bc: b5f0 push {r4, r5, r6, r7, lr}
|
|
f2be: 46de mov lr, fp
|
|
f2c0: 4657 mov r7, sl
|
|
f2c2: 464e mov r6, r9
|
|
f2c4: 4645 mov r5, r8
|
|
f2c6: b5e0 push {r5, r6, r7, lr}
|
|
f2c8: b085 sub sp, #20
|
|
f2ca: 4681 mov r9, r0
|
|
f2cc: 000c movs r4, r1
|
|
f2ce: 001f movs r7, r3
|
|
bool is_tab = false;
|
|
f2d0: 2500 movs r5, #0
|
|
if(unicode_letter == '\t') {
|
|
f2d2: 2a09 cmp r2, #9
|
|
f2d4: d03a beq.n f34c <lv_font_get_glyph_dsc_fmt_txt+0x90>
|
|
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
|
|
f2d6: 464b mov r3, r9
|
|
f2d8: 691e ldr r6, [r3, #16]
|
|
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
|
|
f2da: 0011 movs r1, r2
|
|
f2dc: 4648 mov r0, r9
|
|
f2de: 4b53 ldr r3, [pc, #332] ; (f42c <lv_font_get_glyph_dsc_fmt_txt+0x170>)
|
|
f2e0: 4798 blx r3
|
|
f2e2: 4683 mov fp, r0
|
|
if(!gid) return false;
|
|
f2e4: 2800 cmp r0, #0
|
|
f2e6: d100 bne.n f2ea <lv_font_get_glyph_dsc_fmt_txt+0x2e>
|
|
f2e8: e094 b.n f414 <lv_font_get_glyph_dsc_fmt_txt+0x158>
|
|
if(fdsc->kern_dsc) {
|
|
f2ea: 68f3 ldr r3, [r6, #12]
|
|
f2ec: 2b00 cmp r3, #0
|
|
f2ee: d100 bne.n f2f2 <lv_font_get_glyph_dsc_fmt_txt+0x36>
|
|
f2f0: e08e b.n f410 <lv_font_get_glyph_dsc_fmt_txt+0x154>
|
|
uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next);
|
|
f2f2: 0039 movs r1, r7
|
|
f2f4: 4648 mov r0, r9
|
|
f2f6: 4b4d ldr r3, [pc, #308] ; (f42c <lv_font_get_glyph_dsc_fmt_txt+0x170>)
|
|
f2f8: 4798 blx r3
|
|
int8_t kvalue = 0;
|
|
f2fa: 2300 movs r3, #0
|
|
if(gid_next) {
|
|
f2fc: 2800 cmp r0, #0
|
|
f2fe: d128 bne.n f352 <lv_font_get_glyph_dsc_fmt_txt+0x96>
|
|
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
|
|
f300: 465a mov r2, fp
|
|
f302: 00d0 lsls r0, r2, #3
|
|
f304: 6872 ldr r2, [r6, #4]
|
|
f306: 4694 mov ip, r2
|
|
f308: 4460 add r0, ip
|
|
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
|
|
f30a: 8a32 ldrh r2, [r6, #16]
|
|
f30c: 435a muls r2, r3
|
|
f30e: 1112 asrs r2, r2, #4
|
|
uint32_t adv_w = gdsc->adv_w;
|
|
f310: 8841 ldrh r1, [r0, #2]
|
|
f312: 0909 lsrs r1, r1, #4
|
|
if(is_tab) adv_w *= 2;
|
|
f314: 2d00 cmp r5, #0
|
|
f316: d000 beq.n f31a <lv_font_get_glyph_dsc_fmt_txt+0x5e>
|
|
f318: 0049 lsls r1, r1, #1
|
|
adv_w = (adv_w + (1 << 3)) >> 4;
|
|
f31a: 0013 movs r3, r2
|
|
f31c: 3308 adds r3, #8
|
|
f31e: 185b adds r3, r3, r1
|
|
f320: 091b lsrs r3, r3, #4
|
|
dsc_out->adv_w = adv_w;
|
|
f322: 8023 strh r3, [r4, #0]
|
|
dsc_out->box_h = gdsc->box_h;
|
|
f324: 7943 ldrb r3, [r0, #5]
|
|
f326: 80a3 strh r3, [r4, #4]
|
|
dsc_out->box_w = gdsc->box_w;
|
|
f328: 7902 ldrb r2, [r0, #4]
|
|
f32a: 8062 strh r2, [r4, #2]
|
|
dsc_out->ofs_x = gdsc->ofs_x;
|
|
f32c: 2306 movs r3, #6
|
|
f32e: 56c3 ldrsb r3, [r0, r3]
|
|
f330: 80e3 strh r3, [r4, #6]
|
|
dsc_out->ofs_y = gdsc->ofs_y;
|
|
f332: 2307 movs r3, #7
|
|
f334: 56c3 ldrsb r3, [r0, r3]
|
|
f336: 8123 strh r3, [r4, #8]
|
|
dsc_out->bpp = (uint8_t)fdsc->bpp;
|
|
f338: 7cf3 ldrb r3, [r6, #19]
|
|
f33a: 069b lsls r3, r3, #26
|
|
f33c: 0f1b lsrs r3, r3, #28
|
|
f33e: 72a3 strb r3, [r4, #10]
|
|
if(is_tab) dsc_out->box_w = dsc_out->box_w * 2;
|
|
f340: 2d00 cmp r5, #0
|
|
f342: d100 bne.n f346 <lv_font_get_glyph_dsc_fmt_txt+0x8a>
|
|
f344: e06f b.n f426 <lv_font_get_glyph_dsc_fmt_txt+0x16a>
|
|
f346: 0052 lsls r2, r2, #1
|
|
f348: 8062 strh r2, [r4, #2]
|
|
f34a: e064 b.n f416 <lv_font_get_glyph_dsc_fmt_txt+0x15a>
|
|
is_tab = true;
|
|
f34c: 3501 adds r5, #1
|
|
unicode_letter = ' ';
|
|
f34e: 3217 adds r2, #23
|
|
f350: e7c1 b.n f2d6 <lv_font_get_glyph_dsc_fmt_txt+0x1a>
|
|
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
|
|
f352: 464b mov r3, r9
|
|
f354: 691b ldr r3, [r3, #16]
|
|
if(fdsc->kern_classes == 0) {
|
|
f356: 7cda ldrb r2, [r3, #19]
|
|
f358: 0652 lsls r2, r2, #25
|
|
f35a: d442 bmi.n f3e2 <lv_font_get_glyph_dsc_fmt_txt+0x126>
|
|
const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc;
|
|
f35c: 68db ldr r3, [r3, #12]
|
|
f35e: 4698 mov r8, r3
|
|
if(kdsc->glyph_ids_size == 0) {
|
|
f360: 7adb ldrb r3, [r3, #11]
|
|
f362: 2203 movs r2, #3
|
|
f364: 401a ands r2, r3
|
|
f366: d01c beq.n f3a2 <lv_font_get_glyph_dsc_fmt_txt+0xe6>
|
|
int8_t value = 0;
|
|
f368: 2300 movs r3, #0
|
|
else if(kdsc->glyph_ids_size == 1) {
|
|
f36a: 2a01 cmp r2, #1
|
|
f36c: d1c8 bne.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
const uint16_t * g_ids = kdsc->glyph_ids;
|
|
f36e: 4643 mov r3, r8
|
|
f370: 681b ldr r3, [r3, #0]
|
|
f372: 4699 mov r9, r3
|
|
lv_uintptr_t g_id_both = (uint32_t)((uint32_t)gid_right << 8) + gid_left; /*Create one number from the ids*/
|
|
f374: 0200 lsls r0, r0, #8
|
|
f376: 4458 add r0, fp
|
|
f378: 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);
|
|
f37a: 4643 mov r3, r8
|
|
f37c: 689b ldr r3, [r3, #8]
|
|
f37e: 021a lsls r2, r3, #8
|
|
f380: 0a12 lsrs r2, r2, #8
|
|
f382: 4b2b ldr r3, [pc, #172] ; (f430 <lv_font_get_glyph_dsc_fmt_txt+0x174>)
|
|
f384: 9300 str r3, [sp, #0]
|
|
f386: 2304 movs r3, #4
|
|
f388: 4649 mov r1, r9
|
|
f38a: a803 add r0, sp, #12
|
|
f38c: 4f29 ldr r7, [pc, #164] ; (f434 <lv_font_get_glyph_dsc_fmt_txt+0x178>)
|
|
f38e: 47b8 blx r7
|
|
if(kid_p) {
|
|
f390: 2800 cmp r0, #0
|
|
f392: d024 beq.n f3de <lv_font_get_glyph_dsc_fmt_txt+0x122>
|
|
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids);
|
|
f394: 464b mov r3, r9
|
|
f396: 1ac0 subs r0, r0, r3
|
|
ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/
|
|
f398: 0900 lsrs r0, r0, #4
|
|
value = kdsc->values[ofs];
|
|
f39a: 4643 mov r3, r8
|
|
f39c: 685b ldr r3, [r3, #4]
|
|
f39e: 561b ldrsb r3, [r3, r0]
|
|
f3a0: e7ae b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
const uint8_t * g_ids = kdsc->glyph_ids;
|
|
f3a2: 4643 mov r3, r8
|
|
f3a4: 681b ldr r3, [r3, #0]
|
|
f3a6: 4699 mov r9, r3
|
|
uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/
|
|
f3a8: ab03 add r3, sp, #12
|
|
f3aa: 469c mov ip, r3
|
|
f3ac: 0200 lsls r0, r0, #8
|
|
f3ae: 4458 add r0, fp
|
|
f3b0: 8018 strh r0, [r3, #0]
|
|
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
|
|
f3b2: 4643 mov r3, r8
|
|
f3b4: 689b ldr r3, [r3, #8]
|
|
f3b6: 021a lsls r2, r3, #8
|
|
f3b8: 0a12 lsrs r2, r2, #8
|
|
f3ba: 4b1f ldr r3, [pc, #124] ; (f438 <lv_font_get_glyph_dsc_fmt_txt+0x17c>)
|
|
f3bc: 9300 str r3, [sp, #0]
|
|
f3be: 2302 movs r3, #2
|
|
f3c0: 4649 mov r1, r9
|
|
f3c2: 4660 mov r0, ip
|
|
f3c4: 4f1b ldr r7, [pc, #108] ; (f434 <lv_font_get_glyph_dsc_fmt_txt+0x178>)
|
|
f3c6: 47b8 blx r7
|
|
if(kid_p) {
|
|
f3c8: 2800 cmp r0, #0
|
|
f3ca: d006 beq.n f3da <lv_font_get_glyph_dsc_fmt_txt+0x11e>
|
|
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids);
|
|
f3cc: 464b mov r3, r9
|
|
f3ce: 1ac0 subs r0, r0, r3
|
|
ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/
|
|
f3d0: 0840 lsrs r0, r0, #1
|
|
value = kdsc->values[ofs];
|
|
f3d2: 4643 mov r3, r8
|
|
f3d4: 685b ldr r3, [r3, #4]
|
|
f3d6: 561b ldrsb r3, [r3, r0]
|
|
f3d8: e792 b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
int8_t value = 0;
|
|
f3da: 2300 movs r3, #0
|
|
f3dc: e790 b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
f3de: 2300 movs r3, #0
|
|
f3e0: e78e b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
const lv_font_fmt_txt_kern_classes_t * kdsc = fdsc->kern_dsc;
|
|
f3e2: 68da ldr r2, [r3, #12]
|
|
uint8_t left_class = kdsc->left_class_mapping[gid_left];
|
|
f3e4: 6853 ldr r3, [r2, #4]
|
|
f3e6: 4659 mov r1, fp
|
|
f3e8: 5c59 ldrb r1, [r3, r1]
|
|
int8_t value = 0;
|
|
f3ea: 2300 movs r3, #0
|
|
if(left_class > 0 && right_class > 0) {
|
|
f3ec: 2900 cmp r1, #0
|
|
f3ee: d087 beq.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
uint8_t right_class = kdsc->right_class_mapping[gid_right];
|
|
f3f0: 6893 ldr r3, [r2, #8]
|
|
f3f2: 5c18 ldrb r0, [r3, r0]
|
|
int8_t value = 0;
|
|
f3f4: 2300 movs r3, #0
|
|
if(left_class > 0 && right_class > 0) {
|
|
f3f6: 2800 cmp r0, #0
|
|
f3f8: d100 bne.n f3fc <lv_font_get_glyph_dsc_fmt_txt+0x140>
|
|
f3fa: e781 b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)];
|
|
f3fc: 3901 subs r1, #1
|
|
f3fe: 7b53 ldrb r3, [r2, #13]
|
|
f400: 434b muls r3, r1
|
|
f402: 6811 ldr r1, [r2, #0]
|
|
f404: 1809 adds r1, r1, r0
|
|
f406: 18c9 adds r1, r1, r3
|
|
f408: 3901 subs r1, #1
|
|
f40a: 2300 movs r3, #0
|
|
f40c: 56cb ldrsb r3, [r1, r3]
|
|
f40e: e777 b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
int8_t kvalue = 0;
|
|
f410: 2300 movs r3, #0
|
|
f412: e775 b.n f300 <lv_font_get_glyph_dsc_fmt_txt+0x44>
|
|
if(!gid) return false;
|
|
f414: 2500 movs r5, #0
|
|
}
|
|
f416: 0028 movs r0, r5
|
|
f418: b005 add sp, #20
|
|
f41a: bc3c pop {r2, r3, r4, r5}
|
|
f41c: 4690 mov r8, r2
|
|
f41e: 4699 mov r9, r3
|
|
f420: 46a2 mov sl, r4
|
|
f422: 46ab mov fp, r5
|
|
f424: bdf0 pop {r4, r5, r6, r7, pc}
|
|
return true;
|
|
f426: 2501 movs r5, #1
|
|
f428: e7f5 b.n f416 <lv_font_get_glyph_dsc_fmt_txt+0x15a>
|
|
f42a: 46c0 nop ; (mov r8, r8)
|
|
f42c: 0000e7bd .word 0x0000e7bd
|
|
f430: 0000e7a1 .word 0x0000e7a1
|
|
f434: 00011bf1 .word 0x00011bf1
|
|
f438: 0000e78d .word 0x0000e78d
|
|
|
|
0000f43c <_lv_font_clean_up_fmt_txt>:
|
|
{
|
|
f43c: b510 push {r4, lr}
|
|
if(decompr_buf) {
|
|
f43e: 4b05 ldr r3, [pc, #20] ; (f454 <_lv_font_clean_up_fmt_txt+0x18>)
|
|
f440: 6818 ldr r0, [r3, #0]
|
|
f442: 2800 cmp r0, #0
|
|
f444: d004 beq.n f450 <_lv_font_clean_up_fmt_txt+0x14>
|
|
lv_mem_free(decompr_buf);
|
|
f446: 4b04 ldr r3, [pc, #16] ; (f458 <_lv_font_clean_up_fmt_txt+0x1c>)
|
|
f448: 4798 blx r3
|
|
decompr_buf = NULL;
|
|
f44a: 2200 movs r2, #0
|
|
f44c: 4b01 ldr r3, [pc, #4] ; (f454 <_lv_font_clean_up_fmt_txt+0x18>)
|
|
f44e: 601a str r2, [r3, #0]
|
|
}
|
|
f450: bd10 pop {r4, pc}
|
|
f452: 46c0 nop ; (mov r8, r8)
|
|
f454: 20002bb8 .word 0x20002bb8
|
|
f458: 00010b39 .word 0x00010b39
|
|
|
|
0000f45c <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)
|
|
{
|
|
f45c: b510 push {r4, lr}
|
|
f45e: 0004 movs r4, r0
|
|
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
|
|
f460: 212c movs r1, #44 ; 0x2c
|
|
f462: 4b15 ldr r3, [pc, #84] ; (f4b8 <lv_disp_drv_init+0x5c>)
|
|
f464: 4798 blx r3
|
|
|
|
driver->flush_cb = NULL;
|
|
f466: 2200 movs r2, #0
|
|
f468: 60e2 str r2, [r4, #12]
|
|
driver->hor_res = LV_HOR_RES_MAX;
|
|
f46a: 23f0 movs r3, #240 ; 0xf0
|
|
f46c: 005b lsls r3, r3, #1
|
|
f46e: 8023 strh r3, [r4, #0]
|
|
driver->ver_res = LV_VER_RES_MAX;
|
|
f470: 3ba0 subs r3, #160 ; 0xa0
|
|
f472: 8063 strh r3, [r4, #2]
|
|
driver->buffer = NULL;
|
|
f474: 6062 str r2, [r4, #4]
|
|
driver->rotated = 0;
|
|
f476: 7a23 ldrb r3, [r4, #8]
|
|
f478: 2102 movs r1, #2
|
|
f47a: 438b bics r3, r1
|
|
f47c: 7223 strb r3, [r4, #8]
|
|
driver->color_chroma_key = LV_COLOR_TRANSP;
|
|
f47e: 3126 adds r1, #38 ; 0x26
|
|
f480: 5c63 ldrb r3, [r4, r1]
|
|
f482: 201f movs r0, #31
|
|
f484: 4383 bics r3, r0
|
|
f486: 5463 strb r3, [r4, r1]
|
|
f488: 8d21 ldrh r1, [r4, #40] ; 0x28
|
|
f48a: 23fc movs r3, #252 ; 0xfc
|
|
f48c: 00db lsls r3, r3, #3
|
|
f48e: 430b orrs r3, r1
|
|
f490: 8523 strh r3, [r4, #40] ; 0x28
|
|
f492: 0021 movs r1, r4
|
|
f494: 3128 adds r1, #40 ; 0x28
|
|
f496: 055b lsls r3, r3, #21
|
|
f498: 0f5b lsrs r3, r3, #29
|
|
f49a: 704b strb r3, [r1, #1]
|
|
driver->dpi = LV_DPI;
|
|
f49c: 8923 ldrh r3, [r4, #8]
|
|
f49e: 4907 ldr r1, [pc, #28] ; (f4bc <lv_disp_drv_init+0x60>)
|
|
f4a0: 4019 ands r1, r3
|
|
f4a2: 2382 movs r3, #130 ; 0x82
|
|
f4a4: 009b lsls r3, r3, #2
|
|
f4a6: 430b orrs r3, r1
|
|
f4a8: 8123 strh r3, [r4, #8]
|
|
|
|
#if LV_ANTIALIAS
|
|
driver->antialiasing = true;
|
|
f4aa: 2101 movs r1, #1
|
|
f4ac: 430b orrs r3, r1
|
|
f4ae: 7223 strb r3, [r4, #8]
|
|
#if LV_COLOR_SCREEN_TRANSP
|
|
driver->screen_transp = 1;
|
|
#endif
|
|
|
|
#if LV_USE_GPU
|
|
driver->gpu_blend_cb = NULL;
|
|
f4b0: 6222 str r2, [r4, #32]
|
|
driver->gpu_fill_cb = NULL;
|
|
f4b2: 6262 str r2, [r4, #36] ; 0x24
|
|
|
|
#if LV_USE_USER_DATA
|
|
driver->user_data = NULL;
|
|
#endif
|
|
|
|
driver->set_px_cb = NULL;
|
|
f4b4: 6162 str r2, [r4, #20]
|
|
}
|
|
f4b6: bd10 pop {r4, pc}
|
|
f4b8: 0001104d .word 0x0001104d
|
|
f4bc: fffff003 .word 0xfffff003
|
|
|
|
0000f4c0 <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)
|
|
{
|
|
f4c0: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
f4c2: 0004 movs r4, r0
|
|
f4c4: 000d movs r5, r1
|
|
f4c6: 0017 movs r7, r2
|
|
f4c8: 001e movs r6, r3
|
|
_lv_memset_00(disp_buf, sizeof(lv_disp_buf_t));
|
|
f4ca: 2124 movs r1, #36 ; 0x24
|
|
f4cc: 4b03 ldr r3, [pc, #12] ; (f4dc <lv_disp_buf_init+0x1c>)
|
|
f4ce: 4798 blx r3
|
|
|
|
disp_buf->buf1 = buf1;
|
|
f4d0: 6025 str r5, [r4, #0]
|
|
disp_buf->buf2 = buf2;
|
|
f4d2: 6067 str r7, [r4, #4]
|
|
disp_buf->buf_act = disp_buf->buf1;
|
|
f4d4: 60a5 str r5, [r4, #8]
|
|
disp_buf->size = size_in_px_cnt;
|
|
f4d6: 60e6 str r6, [r4, #12]
|
|
}
|
|
f4d8: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
f4da: 46c0 nop ; (mov r8, r8)
|
|
f4dc: 0001104d .word 0x0001104d
|
|
|
|
0000f4e0 <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)
|
|
{
|
|
f4e0: b570 push {r4, r5, r6, lr}
|
|
f4e2: 0005 movs r5, r0
|
|
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
|
|
f4e4: 4838 ldr r0, [pc, #224] ; (f5c8 <lv_disp_drv_register+0xe8>)
|
|
f4e6: 4b39 ldr r3, [pc, #228] ; (f5cc <lv_disp_drv_register+0xec>)
|
|
f4e8: 4798 blx r3
|
|
f4ea: 1e04 subs r4, r0, #0
|
|
if(!disp) {
|
|
f4ec: d055 beq.n f59a <lv_disp_drv_register+0xba>
|
|
LV_ASSERT_MEM(disp);
|
|
return NULL;
|
|
}
|
|
|
|
_lv_memset_00(disp, sizeof(lv_disp_t));
|
|
f4ee: 21b8 movs r1, #184 ; 0xb8
|
|
f4f0: 0049 lsls r1, r1, #1
|
|
f4f2: 4b37 ldr r3, [pc, #220] ; (f5d0 <lv_disp_drv_register+0xf0>)
|
|
f4f4: 4798 blx r3
|
|
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
|
|
f4f6: 222c movs r2, #44 ; 0x2c
|
|
f4f8: 0029 movs r1, r5
|
|
f4fa: 0020 movs r0, r4
|
|
f4fc: 4b35 ldr r3, [pc, #212] ; (f5d4 <lv_disp_drv_register+0xf4>)
|
|
f4fe: 4798 blx r3
|
|
|
|
_lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t));
|
|
f500: 0020 movs r0, r4
|
|
f502: 3030 adds r0, #48 ; 0x30
|
|
f504: 214c movs r1, #76 ; 0x4c
|
|
f506: 4b34 ldr r3, [pc, #208] ; (f5d8 <lv_disp_drv_register+0xf8>)
|
|
f508: 4798 blx r3
|
|
disp->last_activity_time = 0;
|
|
f50a: 2200 movs r2, #0
|
|
f50c: 23b6 movs r3, #182 ; 0xb6
|
|
f50e: 005b lsls r3, r3, #1
|
|
f510: 50e2 str r2, [r4, r3]
|
|
|
|
if(disp_def == NULL) disp_def = disp;
|
|
f512: 4b32 ldr r3, [pc, #200] ; (f5dc <lv_disp_drv_register+0xfc>)
|
|
f514: 681b ldr r3, [r3, #0]
|
|
f516: 2b00 cmp r3, #0
|
|
f518: d04a beq.n f5b0 <lv_disp_drv_register+0xd0>
|
|
|
|
lv_disp_t * disp_def_tmp = disp_def;
|
|
f51a: 4b30 ldr r3, [pc, #192] ; (f5dc <lv_disp_drv_register+0xfc>)
|
|
f51c: 681e ldr r6, [r3, #0]
|
|
disp_def = disp; /*Temporarily change the default screen to create the default screens on the
|
|
f51e: 601c str r4, [r3, #0]
|
|
new display*/
|
|
/*Create a refresh task*/
|
|
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
|
|
f520: 0023 movs r3, r4
|
|
f522: 2203 movs r2, #3
|
|
f524: 211e movs r1, #30
|
|
f526: 482e ldr r0, [pc, #184] ; (f5e0 <lv_disp_drv_register+0x100>)
|
|
f528: 4d2e ldr r5, [pc, #184] ; (f5e4 <lv_disp_drv_register+0x104>)
|
|
f52a: 47a8 blx r5
|
|
f52c: 62e0 str r0, [r4, #44] ; 0x2c
|
|
LV_ASSERT_MEM(disp->refr_task);
|
|
f52e: 4b2e ldr r3, [pc, #184] ; (f5e8 <lv_disp_drv_register+0x108>)
|
|
f530: 4798 blx r3
|
|
f532: 2800 cmp r0, #0
|
|
f534: d03f beq.n f5b6 <lv_disp_drv_register+0xd6>
|
|
if(disp->refr_task == NULL) return NULL;
|
|
f536: 6ae3 ldr r3, [r4, #44] ; 0x2c
|
|
f538: 2b00 cmp r3, #0
|
|
f53a: d042 beq.n f5c2 <lv_disp_drv_register+0xe2>
|
|
|
|
disp->inv_p = 0;
|
|
f53c: 22b4 movs r2, #180 ; 0xb4
|
|
f53e: 0052 lsls r2, r2, #1
|
|
f540: 5aa3 ldrh r3, [r4, r2]
|
|
f542: 0a9b lsrs r3, r3, #10
|
|
f544: 029b lsls r3, r3, #10
|
|
f546: 52a3 strh r3, [r4, r2]
|
|
disp->last_activity_time = 0;
|
|
f548: 2200 movs r2, #0
|
|
f54a: 23b6 movs r3, #182 ; 0xb6
|
|
f54c: 005b lsls r3, r3, #1
|
|
f54e: 50e2 str r2, [r4, r3]
|
|
|
|
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
|
|
f550: 2100 movs r1, #0
|
|
f552: 2000 movs r0, #0
|
|
f554: 4d25 ldr r5, [pc, #148] ; (f5ec <lv_disp_drv_register+0x10c>)
|
|
f556: 47a8 blx r5
|
|
f558: 63e0 str r0, [r4, #60] ; 0x3c
|
|
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
|
|
f55a: 2100 movs r1, #0
|
|
f55c: 2000 movs r0, #0
|
|
f55e: 47a8 blx r5
|
|
f560: 6420 str r0, [r4, #64] ; 0x40
|
|
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
|
|
f562: 2100 movs r1, #0
|
|
f564: 2000 movs r0, #0
|
|
f566: 47a8 blx r5
|
|
f568: 6460 str r0, [r4, #68] ; 0x44
|
|
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
|
|
f56a: 2100 movs r1, #0
|
|
f56c: 6c20 ldr r0, [r4, #64] ; 0x40
|
|
f56e: 4d20 ldr r5, [pc, #128] ; (f5f0 <lv_disp_drv_register+0x110>)
|
|
f570: 47a8 blx r5
|
|
lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN);
|
|
f572: 2100 movs r1, #0
|
|
f574: 6c60 ldr r0, [r4, #68] ; 0x44
|
|
f576: 47a8 blx r5
|
|
lv_obj_set_click(disp->top_layer, false);
|
|
f578: 2100 movs r1, #0
|
|
f57a: 6c20 ldr r0, [r4, #64] ; 0x40
|
|
f57c: 4d1d ldr r5, [pc, #116] ; (f5f4 <lv_disp_drv_register+0x114>)
|
|
f57e: 47a8 blx r5
|
|
lv_obj_set_click(disp->sys_layer, false);
|
|
f580: 2100 movs r1, #0
|
|
f582: 6c60 ldr r0, [r4, #68] ; 0x44
|
|
f584: 47a8 blx r5
|
|
|
|
lv_obj_invalidate(disp->act_scr);
|
|
f586: 6be0 ldr r0, [r4, #60] ; 0x3c
|
|
f588: 4b1b ldr r3, [pc, #108] ; (f5f8 <lv_disp_drv_register+0x118>)
|
|
f58a: 4798 blx r3
|
|
|
|
disp_def = disp_def_tmp; /*Revert the default display*/
|
|
f58c: 4b13 ldr r3, [pc, #76] ; (f5dc <lv_disp_drv_register+0xfc>)
|
|
f58e: 601e str r6, [r3, #0]
|
|
|
|
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
|
|
f590: 6ae0 ldr r0, [r4, #44] ; 0x2c
|
|
f592: 4b1a ldr r3, [pc, #104] ; (f5fc <lv_disp_drv_register+0x11c>)
|
|
f594: 4798 blx r3
|
|
|
|
return disp;
|
|
}
|
|
f596: 0020 movs r0, r4
|
|
f598: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_MEM(disp);
|
|
f59a: 2000 movs r0, #0
|
|
f59c: 4b12 ldr r3, [pc, #72] ; (f5e8 <lv_disp_drv_register+0x108>)
|
|
f59e: 4798 blx r3
|
|
f5a0: 2800 cmp r0, #0
|
|
f5a2: d1f8 bne.n f596 <lv_disp_drv_register+0xb6>
|
|
f5a4: 2200 movs r2, #0
|
|
f5a6: 2300 movs r3, #0
|
|
f5a8: 4815 ldr r0, [pc, #84] ; (f600 <lv_disp_drv_register+0x120>)
|
|
f5aa: 4916 ldr r1, [pc, #88] ; (f604 <lv_disp_drv_register+0x124>)
|
|
f5ac: 4788 blx r1
|
|
f5ae: e7fe b.n f5ae <lv_disp_drv_register+0xce>
|
|
if(disp_def == NULL) disp_def = disp;
|
|
f5b0: 4b0a ldr r3, [pc, #40] ; (f5dc <lv_disp_drv_register+0xfc>)
|
|
f5b2: 601c str r4, [r3, #0]
|
|
f5b4: e7b1 b.n f51a <lv_disp_drv_register+0x3a>
|
|
LV_ASSERT_MEM(disp->refr_task);
|
|
f5b6: 6ae2 ldr r2, [r4, #44] ; 0x2c
|
|
f5b8: 2300 movs r3, #0
|
|
f5ba: 4811 ldr r0, [pc, #68] ; (f600 <lv_disp_drv_register+0x120>)
|
|
f5bc: 4911 ldr r1, [pc, #68] ; (f604 <lv_disp_drv_register+0x124>)
|
|
f5be: 4788 blx r1
|
|
f5c0: e7fe b.n f5c0 <lv_disp_drv_register+0xe0>
|
|
if(disp->refr_task == NULL) return NULL;
|
|
f5c2: 2400 movs r4, #0
|
|
f5c4: e7e7 b.n f596 <lv_disp_drv_register+0xb6>
|
|
f5c6: 46c0 nop ; (mov r8, r8)
|
|
f5c8: 20004cc4 .word 0x20004cc4
|
|
f5cc: 000105cd .word 0x000105cd
|
|
f5d0: 0001104d .word 0x0001104d
|
|
f5d4: 00010c8d .word 0x00010c8d
|
|
f5d8: 000105b9 .word 0x000105b9
|
|
f5dc: 20002bd0 .word 0x20002bd0
|
|
f5e0: 000043bd .word 0x000043bd
|
|
f5e4: 000115d9 .word 0x000115d9
|
|
f5e8: 0000147d .word 0x0000147d
|
|
f5ec: 000028e5 .word 0x000028e5
|
|
f5f0: 00002679 .word 0x00002679
|
|
f5f4: 00001915 .word 0x00001915
|
|
f5f8: 00001fb1 .word 0x00001fb1
|
|
f5fc: 0001162d .word 0x0001162d
|
|
f600: 00018724 .word 0x00018724
|
|
f604: 00001485 .word 0x00001485
|
|
|
|
0000f608 <lv_disp_get_default>:
|
|
* Get the default display
|
|
* @return pointer to the default display
|
|
*/
|
|
lv_disp_t * lv_disp_get_default(void)
|
|
{
|
|
return disp_def;
|
|
f608: 4b01 ldr r3, [pc, #4] ; (f610 <lv_disp_get_default+0x8>)
|
|
f60a: 6818 ldr r0, [r3, #0]
|
|
}
|
|
f60c: 4770 bx lr
|
|
f60e: 46c0 nop ; (mov r8, r8)
|
|
f610: 20002bd0 .word 0x20002bd0
|
|
|
|
0000f614 <lv_disp_get_hor_res>:
|
|
* Get the horizontal resolution of a display
|
|
* @param disp pointer to a display (NULL to use the default display)
|
|
* @return the horizontal resolution of the display
|
|
*/
|
|
lv_coord_t lv_disp_get_hor_res(lv_disp_t * disp)
|
|
{
|
|
f614: 1e03 subs r3, r0, #0
|
|
if(disp == NULL) disp = lv_disp_get_default();
|
|
f616: d005 beq.n f624 <lv_disp_get_hor_res+0x10>
|
|
|
|
if(disp == NULL)
|
|
return LV_HOR_RES_MAX;
|
|
else
|
|
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
|
|
f618: 7a1a ldrb r2, [r3, #8]
|
|
f61a: 0792 lsls r2, r2, #30
|
|
f61c: d509 bpl.n f632 <lv_disp_get_hor_res+0x1e>
|
|
f61e: 2002 movs r0, #2
|
|
f620: 5e18 ldrsh r0, [r3, r0]
|
|
}
|
|
f622: 4770 bx lr
|
|
return disp_def;
|
|
f624: 4b04 ldr r3, [pc, #16] ; (f638 <lv_disp_get_hor_res+0x24>)
|
|
f626: 681b ldr r3, [r3, #0]
|
|
return LV_HOR_RES_MAX;
|
|
f628: 20f0 movs r0, #240 ; 0xf0
|
|
f62a: 0040 lsls r0, r0, #1
|
|
if(disp == NULL)
|
|
f62c: 2b00 cmp r3, #0
|
|
f62e: d0f8 beq.n f622 <lv_disp_get_hor_res+0xe>
|
|
f630: e7f2 b.n f618 <lv_disp_get_hor_res+0x4>
|
|
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
|
|
f632: 2000 movs r0, #0
|
|
f634: 5e18 ldrsh r0, [r3, r0]
|
|
f636: e7f4 b.n f622 <lv_disp_get_hor_res+0xe>
|
|
f638: 20002bd0 .word 0x20002bd0
|
|
|
|
0000f63c <lv_disp_get_ver_res>:
|
|
* Get the vertical resolution of a display
|
|
* @param disp pointer to a display (NULL to use the default display)
|
|
* @return the vertical resolution of the display
|
|
*/
|
|
lv_coord_t lv_disp_get_ver_res(lv_disp_t * disp)
|
|
{
|
|
f63c: 1e03 subs r3, r0, #0
|
|
if(disp == NULL) disp = lv_disp_get_default();
|
|
f63e: d005 beq.n f64c <lv_disp_get_ver_res+0x10>
|
|
|
|
if(disp == NULL)
|
|
return LV_VER_RES_MAX;
|
|
else
|
|
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
|
|
f640: 7a1a ldrb r2, [r3, #8]
|
|
f642: 0792 lsls r2, r2, #30
|
|
f644: d509 bpl.n f65a <lv_disp_get_ver_res+0x1e>
|
|
f646: 2000 movs r0, #0
|
|
f648: 5e18 ldrsh r0, [r3, r0]
|
|
}
|
|
f64a: 4770 bx lr
|
|
return disp_def;
|
|
f64c: 4b04 ldr r3, [pc, #16] ; (f660 <lv_disp_get_ver_res+0x24>)
|
|
f64e: 681b ldr r3, [r3, #0]
|
|
return LV_VER_RES_MAX;
|
|
f650: 20a0 movs r0, #160 ; 0xa0
|
|
f652: 0040 lsls r0, r0, #1
|
|
if(disp == NULL)
|
|
f654: 2b00 cmp r3, #0
|
|
f656: d0f8 beq.n f64a <lv_disp_get_ver_res+0xe>
|
|
f658: e7f2 b.n f640 <lv_disp_get_ver_res+0x4>
|
|
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
|
|
f65a: 2002 movs r0, #2
|
|
f65c: 5e18 ldrsh r0, [r3, r0]
|
|
f65e: e7f4 b.n f64a <lv_disp_get_ver_res+0xe>
|
|
f660: 20002bd0 .word 0x20002bd0
|
|
|
|
0000f664 <lv_disp_get_dpi>:
|
|
* Get the DPI of the display
|
|
* @param disp pointer to a display (NULL to use the default display)
|
|
* @return dpi of the display
|
|
*/
|
|
uint32_t lv_disp_get_dpi(lv_disp_t * disp)
|
|
{
|
|
f664: 1e03 subs r3, r0, #0
|
|
if(disp == NULL) disp = lv_disp_get_default();
|
|
f666: d003 beq.n f670 <lv_disp_get_dpi+0xc>
|
|
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
|
|
return disp->driver.dpi;
|
|
f668: 8918 ldrh r0, [r3, #8]
|
|
f66a: 0500 lsls r0, r0, #20
|
|
f66c: 0d80 lsrs r0, r0, #22
|
|
}
|
|
f66e: 4770 bx lr
|
|
return disp_def;
|
|
f670: 4b02 ldr r3, [pc, #8] ; (f67c <lv_disp_get_dpi+0x18>)
|
|
f672: 681b ldr r3, [r3, #0]
|
|
f674: 2082 movs r0, #130 ; 0x82
|
|
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
|
|
f676: 2b00 cmp r3, #0
|
|
f678: d0f9 beq.n f66e <lv_disp_get_dpi+0xa>
|
|
f67a: e7f5 b.n f668 <lv_disp_get_dpi+0x4>
|
|
f67c: 20002bd0 .word 0x20002bd0
|
|
|
|
0000f680 <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)
|
|
{
|
|
f680: b570 push {r4, r5, r6, lr}
|
|
f682: 1e05 subs r5, r0, #0
|
|
if(disp == NULL) disp = lv_disp_get_default();
|
|
f684: d019 beq.n f6ba <lv_disp_get_size_category+0x3a>
|
|
|
|
uint32_t w;
|
|
if(disp == NULL) w = LV_HOR_RES_MAX;
|
|
else w = lv_disp_get_hor_res(disp);
|
|
f686: 0028 movs r0, r5
|
|
f688: 4b0f ldr r3, [pc, #60] ; (f6c8 <lv_disp_get_size_category+0x48>)
|
|
f68a: 4798 blx r3
|
|
f68c: 0004 movs r4, r0
|
|
|
|
uint32_t dpi = lv_disp_get_dpi(disp);
|
|
f68e: 0028 movs r0, r5
|
|
f690: 4b0e ldr r3, [pc, #56] ; (f6cc <lv_disp_get_size_category+0x4c>)
|
|
f692: 4798 blx r3
|
|
f694: 0001 movs r1, r0
|
|
|
|
w = w * 10 / dpi;
|
|
f696: 00a0 lsls r0, r4, #2
|
|
f698: 1900 adds r0, r0, r4
|
|
f69a: 0040 lsls r0, r0, #1
|
|
f69c: 4b0c ldr r3, [pc, #48] ; (f6d0 <lv_disp_get_size_category+0x50>)
|
|
f69e: 4798 blx r3
|
|
f6a0: 0002 movs r2, r0
|
|
|
|
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
|
|
f6a2: 2000 movs r0, #0
|
|
f6a4: 2a1d cmp r2, #29
|
|
f6a6: d907 bls.n f6b8 <lv_disp_get_size_category+0x38>
|
|
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
|
|
f6a8: 3001 adds r0, #1
|
|
f6aa: 2a31 cmp r2, #49 ; 0x31
|
|
f6ac: d904 bls.n f6b8 <lv_disp_get_size_category+0x38>
|
|
if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE;
|
|
else return LV_DISP_SIZE_EXTRA_LARGE;
|
|
f6ae: 3044 adds r0, #68 ; 0x44
|
|
f6b0: 4290 cmp r0, r2
|
|
f6b2: 4180 sbcs r0, r0
|
|
f6b4: 4240 negs r0, r0
|
|
f6b6: 3002 adds r0, #2
|
|
}
|
|
f6b8: bd70 pop {r4, r5, r6, pc}
|
|
return disp_def;
|
|
f6ba: 4b06 ldr r3, [pc, #24] ; (f6d4 <lv_disp_get_size_category+0x54>)
|
|
f6bc: 681d ldr r5, [r3, #0]
|
|
f6be: 24f0 movs r4, #240 ; 0xf0
|
|
f6c0: 0064 lsls r4, r4, #1
|
|
if(disp == NULL) w = LV_HOR_RES_MAX;
|
|
f6c2: 2d00 cmp r5, #0
|
|
f6c4: d0e3 beq.n f68e <lv_disp_get_size_category+0xe>
|
|
f6c6: e7de b.n f686 <lv_disp_get_size_category+0x6>
|
|
f6c8: 0000f615 .word 0x0000f615
|
|
f6cc: 0000f665 .word 0x0000f665
|
|
f6d0: 00017881 .word 0x00017881
|
|
f6d4: 20002bd0 .word 0x20002bd0
|
|
|
|
0000f6d8 <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;
|
|
f6d8: 6842 ldr r2, [r0, #4]
|
|
f6da: 2300 movs r3, #0
|
|
f6dc: 6193 str r3, [r2, #24]
|
|
disp_drv->buffer->flushing_last = 0;
|
|
f6de: 6842 ldr r2, [r0, #4]
|
|
f6e0: 61d3 str r3, [r2, #28]
|
|
}
|
|
f6e2: 4770 bx lr
|
|
|
|
0000f6e4 <lv_disp_get_next>:
|
|
* Get the next display.
|
|
* @param disp pointer to the current display. NULL to initialize.
|
|
* @return the next display or NULL if no more. Give the first display when the parameter is NULL
|
|
*/
|
|
lv_disp_t * lv_disp_get_next(lv_disp_t * disp)
|
|
{
|
|
f6e4: b510 push {r4, lr}
|
|
if(disp == NULL)
|
|
f6e6: 2800 cmp r0, #0
|
|
f6e8: d004 beq.n f6f4 <lv_disp_get_next+0x10>
|
|
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
|
|
else
|
|
return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp);
|
|
f6ea: 0001 movs r1, r0
|
|
f6ec: 4803 ldr r0, [pc, #12] ; (f6fc <lv_disp_get_next+0x18>)
|
|
f6ee: 4b04 ldr r3, [pc, #16] ; (f700 <lv_disp_get_next+0x1c>)
|
|
f6f0: 4798 blx r3
|
|
}
|
|
f6f2: bd10 pop {r4, pc}
|
|
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
|
|
f6f4: 4801 ldr r0, [pc, #4] ; (f6fc <lv_disp_get_next+0x18>)
|
|
f6f6: 4b03 ldr r3, [pc, #12] ; (f704 <lv_disp_get_next+0x20>)
|
|
f6f8: 4798 blx r3
|
|
f6fa: e7fa b.n f6f2 <lv_disp_get_next+0xe>
|
|
f6fc: 20004cc4 .word 0x20004cc4
|
|
f700: 00010685 .word 0x00010685
|
|
f704: 0001066d .word 0x0001066d
|
|
|
|
0000f708 <lv_disp_get_buf>:
|
|
* @param disp pointer to a display
|
|
* @return pointer to the internal buffers
|
|
*/
|
|
lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp)
|
|
{
|
|
return disp->driver.buffer;
|
|
f708: 6840 ldr r0, [r0, #4]
|
|
}
|
|
f70a: 4770 bx lr
|
|
|
|
0000f70c <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)
|
|
f70c: 6843 ldr r3, [r0, #4]
|
|
f70e: 681a ldr r2, [r3, #0]
|
|
f710: 2a00 cmp r2, #0
|
|
f712: d004 beq.n f71e <lv_disp_is_double_buf+0x12>
|
|
f714: 6858 ldr r0, [r3, #4]
|
|
f716: 1e43 subs r3, r0, #1
|
|
f718: 4198 sbcs r0, r3
|
|
f71a: b2c0 uxtb r0, r0
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
f71c: 4770 bx lr
|
|
return false;
|
|
f71e: 2000 movs r0, #0
|
|
f720: e7fc b.n f71c <lv_disp_is_double_buf+0x10>
|
|
...
|
|
|
|
0000f724 <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)
|
|
{
|
|
f724: b510 push {r4, lr}
|
|
f726: 0004 movs r4, r0
|
|
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
|
|
|
|
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
|
|
f728: 4b07 ldr r3, [pc, #28] ; (f748 <lv_disp_is_true_double_buf+0x24>)
|
|
f72a: 4798 blx r3
|
|
f72c: 2800 cmp r0, #0
|
|
f72e: d00a beq.n f746 <lv_disp_is_true_double_buf+0x22>
|
|
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
|
|
f730: 2200 movs r2, #0
|
|
f732: 5ea3 ldrsh r3, [r4, r2]
|
|
f734: 2202 movs r2, #2
|
|
f736: 5ea0 ldrsh r0, [r4, r2]
|
|
f738: 4358 muls r0, r3
|
|
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
|
|
f73a: 6863 ldr r3, [r4, #4]
|
|
f73c: 68db ldr r3, [r3, #12]
|
|
f73e: 1ac0 subs r0, r0, r3
|
|
f740: 4243 negs r3, r0
|
|
f742: 4158 adcs r0, r3
|
|
f744: b2c0 uxtb r0, r0
|
|
return true;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
f746: bd10 pop {r4, pc}
|
|
f748: 0000f70d .word 0x0000f70d
|
|
|
|
0000f74c <lv_indev_get_next>:
|
|
* @param indev pointer to the current input device. NULL to initialize.
|
|
* @return the next input devise or NULL if no more. Give the first input device when the parameter
|
|
* is NULL
|
|
*/
|
|
lv_indev_t * lv_indev_get_next(lv_indev_t * indev)
|
|
{
|
|
f74c: b510 push {r4, lr}
|
|
if(indev == NULL)
|
|
f74e: 2800 cmp r0, #0
|
|
f750: d004 beq.n f75c <lv_indev_get_next+0x10>
|
|
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
|
|
else
|
|
return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev);
|
|
f752: 0001 movs r1, r0
|
|
f754: 4803 ldr r0, [pc, #12] ; (f764 <lv_indev_get_next+0x18>)
|
|
f756: 4b04 ldr r3, [pc, #16] ; (f768 <lv_indev_get_next+0x1c>)
|
|
f758: 4798 blx r3
|
|
}
|
|
f75a: bd10 pop {r4, pc}
|
|
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
|
|
f75c: 4801 ldr r0, [pc, #4] ; (f764 <lv_indev_get_next+0x18>)
|
|
f75e: 4b03 ldr r3, [pc, #12] ; (f76c <lv_indev_get_next+0x20>)
|
|
f760: 4798 blx r3
|
|
f762: e7fa b.n f75a <lv_indev_get_next+0xe>
|
|
f764: 20004cb8 .word 0x20004cb8
|
|
f768: 00010685 .word 0x00010685
|
|
f76c: 0001066d .word 0x0001066d
|
|
|
|
0000f770 <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;
|
|
f770: 2200 movs r2, #0
|
|
f772: 4b04 ldr r3, [pc, #16] ; (f784 <lv_tick_inc+0x14>)
|
|
f774: 701a strb r2, [r3, #0]
|
|
sys_time += tick_period;
|
|
f776: 4b04 ldr r3, [pc, #16] ; (f788 <lv_tick_inc+0x18>)
|
|
f778: 681a ldr r2, [r3, #0]
|
|
f77a: 4694 mov ip, r2
|
|
f77c: 4460 add r0, ip
|
|
f77e: 6018 str r0, [r3, #0]
|
|
}
|
|
f780: 4770 bx lr
|
|
f782: 46c0 nop ; (mov r8, r8)
|
|
f784: 20002bd8 .word 0x20002bd8
|
|
f788: 20002bd4 .word 0x20002bd4
|
|
|
|
0000f78c <lv_tick_get>:
|
|
uint32_t lv_tick_get(void)
|
|
{
|
|
#if LV_TICK_CUSTOM == 0
|
|
uint32_t result;
|
|
do {
|
|
tick_irq_flag = 1;
|
|
f78c: 4b04 ldr r3, [pc, #16] ; (f7a0 <lv_tick_get+0x14>)
|
|
f78e: 2101 movs r1, #1
|
|
f790: 7019 strb r1, [r3, #0]
|
|
result = sys_time;
|
|
} while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt.
|
|
f792: 781a ldrb r2, [r3, #0]
|
|
f794: 2a00 cmp r2, #0
|
|
f796: d0fb beq.n f790 <lv_tick_get+0x4>
|
|
result = sys_time;
|
|
f798: 4b02 ldr r3, [pc, #8] ; (f7a4 <lv_tick_get+0x18>)
|
|
Continue until make a non interrupted cycle */
|
|
|
|
return result;
|
|
f79a: 6818 ldr r0, [r3, #0]
|
|
#else
|
|
return LV_TICK_CUSTOM_SYS_TIME_EXPR;
|
|
#endif
|
|
}
|
|
f79c: 4770 bx lr
|
|
f79e: 46c0 nop ; (mov r8, r8)
|
|
f7a0: 20002bd8 .word 0x20002bd8
|
|
f7a4: 20002bd4 .word 0x20002bd4
|
|
|
|
0000f7a8 <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)
|
|
{
|
|
f7a8: b510 push {r4, lr}
|
|
f7aa: 0004 movs r4, r0
|
|
uint32_t act_time = lv_tick_get();
|
|
f7ac: 4b01 ldr r3, [pc, #4] ; (f7b4 <lv_tick_elaps+0xc>)
|
|
f7ae: 4798 blx r3
|
|
if(act_time >= prev_tick) {
|
|
prev_tick = act_time - prev_tick;
|
|
}
|
|
else {
|
|
prev_tick = UINT32_MAX - prev_tick + 1;
|
|
prev_tick += act_time;
|
|
f7b0: 1b00 subs r0, r0, r4
|
|
}
|
|
|
|
return prev_tick;
|
|
}
|
|
f7b2: bd10 pop {r4, pc}
|
|
f7b4: 0000f78d .word 0x0000f78d
|
|
|
|
0000f7b8 <lv_anim_path_linear>:
|
|
* Calculate the current value of an animation applying linear characteristic
|
|
* @param a pointer to an animation
|
|
* @return the current value to set
|
|
*/
|
|
lv_anim_value_t lv_anim_path_linear(const lv_anim_path_t * path, const lv_anim_t * a)
|
|
{
|
|
f7b8: b510 push {r4, lr}
|
|
f7ba: 000c movs r4, r1
|
|
/*Calculate the current step*/
|
|
uint32_t step;
|
|
if(a->time == a->act_time) {
|
|
f7bc: 6a09 ldr r1, [r1, #32]
|
|
f7be: 6a60 ldr r0, [r4, #36] ; 0x24
|
|
f7c0: 4281 cmp r1, r0
|
|
f7c2: d00a beq.n f7da <lv_anim_path_linear+0x22>
|
|
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
|
|
}
|
|
else {
|
|
step = ((int32_t)a->act_time * LV_ANIM_RESOLUTION) / a->time;
|
|
f7c4: 0280 lsls r0, r0, #10
|
|
f7c6: 4b06 ldr r3, [pc, #24] ; (f7e0 <lv_anim_path_linear+0x28>)
|
|
f7c8: 4798 blx r3
|
|
}
|
|
|
|
/* Get the new value which will be proportional to `step`
|
|
* and the `start` and `end` values*/
|
|
int32_t new_value;
|
|
new_value = (int32_t)step * (a->end - a->start);
|
|
f7ca: 69a3 ldr r3, [r4, #24]
|
|
f7cc: 69e2 ldr r2, [r4, #28]
|
|
f7ce: 1ad2 subs r2, r2, r3
|
|
f7d0: 4350 muls r0, r2
|
|
new_value = new_value >> LV_ANIM_RES_SHIFT;
|
|
f7d2: 1280 asrs r0, r0, #10
|
|
new_value += a->start;
|
|
f7d4: 1818 adds r0, r3, r0
|
|
|
|
return (lv_anim_value_t)new_value;
|
|
f7d6: b200 sxth r0, r0
|
|
}
|
|
f7d8: bd10 pop {r4, pc}
|
|
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
|
|
f7da: 2080 movs r0, #128 ; 0x80
|
|
f7dc: 00c0 lsls r0, r0, #3
|
|
f7de: e7f4 b.n f7ca <lv_anim_path_linear+0x12>
|
|
f7e0: 00017881 .word 0x00017881
|
|
|
|
0000f7e4 <anim_mark_list_change>:
|
|
}
|
|
|
|
return anim_list_changed;
|
|
}
|
|
static void anim_mark_list_change(void)
|
|
{
|
|
f7e4: b510 push {r4, lr}
|
|
anim_list_changed = true;
|
|
f7e6: 2201 movs r2, #1
|
|
f7e8: 4b09 ldr r3, [pc, #36] ; (f810 <anim_mark_list_change+0x2c>)
|
|
f7ea: 701a strb r2, [r3, #0]
|
|
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
|
|
f7ec: 4809 ldr r0, [pc, #36] ; (f814 <anim_mark_list_change+0x30>)
|
|
f7ee: 4b0a ldr r3, [pc, #40] ; (f818 <anim_mark_list_change+0x34>)
|
|
f7f0: 4798 blx r3
|
|
f7f2: 2800 cmp r0, #0
|
|
f7f4: d005 beq.n f802 <anim_mark_list_change+0x1e>
|
|
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
|
|
else
|
|
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
|
|
f7f6: 4b09 ldr r3, [pc, #36] ; (f81c <anim_mark_list_change+0x38>)
|
|
f7f8: 6818 ldr r0, [r3, #0]
|
|
f7fa: 2104 movs r1, #4
|
|
f7fc: 4b08 ldr r3, [pc, #32] ; (f820 <anim_mark_list_change+0x3c>)
|
|
f7fe: 4798 blx r3
|
|
}
|
|
f800: bd10 pop {r4, pc}
|
|
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
|
|
f802: 4b06 ldr r3, [pc, #24] ; (f81c <anim_mark_list_change+0x38>)
|
|
f804: 6818 ldr r0, [r3, #0]
|
|
f806: 2100 movs r1, #0
|
|
f808: 4b05 ldr r3, [pc, #20] ; (f820 <anim_mark_list_change+0x3c>)
|
|
f80a: 4798 blx r3
|
|
f80c: e7f8 b.n f800 <anim_mark_list_change+0x1c>
|
|
f80e: 46c0 nop ; (mov r8, r8)
|
|
f810: 20002be0 .word 0x20002be0
|
|
f814: 20004d88 .word 0x20004d88
|
|
f818: 0001066d .word 0x0001066d
|
|
f81c: 20002bdc .word 0x20002bdc
|
|
f820: 00011549 .word 0x00011549
|
|
|
|
0000f824 <anim_task>:
|
|
{
|
|
f824: b5f0 push {r4, r5, r6, r7, lr}
|
|
f826: 46ce mov lr, r9
|
|
f828: 4647 mov r7, r8
|
|
f82a: b580 push {r7, lr}
|
|
f82c: b091 sub sp, #68 ; 0x44
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
|
|
f82e: 4865 ldr r0, [pc, #404] ; (f9c4 <anim_task+0x1a0>)
|
|
f830: 4b65 ldr r3, [pc, #404] ; (f9c8 <anim_task+0x1a4>)
|
|
f832: 4798 blx r3
|
|
f834: 2800 cmp r0, #0
|
|
f836: d00b beq.n f850 <anim_task+0x2c>
|
|
a->has_run = 0;
|
|
f838: 253c movs r5, #60 ; 0x3c
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
|
|
f83a: 4c62 ldr r4, [pc, #392] ; (f9c4 <anim_task+0x1a0>)
|
|
f83c: 4e63 ldr r6, [pc, #396] ; (f9cc <anim_task+0x1a8>)
|
|
a->has_run = 0;
|
|
f83e: 5d43 ldrb r3, [r0, r5]
|
|
f840: 2202 movs r2, #2
|
|
f842: 4393 bics r3, r2
|
|
f844: 5543 strb r3, [r0, r5]
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
|
|
f846: 0001 movs r1, r0
|
|
f848: 0020 movs r0, r4
|
|
f84a: 47b0 blx r6
|
|
f84c: 2800 cmp r0, #0
|
|
f84e: d1f6 bne.n f83e <anim_task+0x1a>
|
|
uint32_t elaps = lv_tick_elaps(last_task_run);
|
|
f850: 4b5f ldr r3, [pc, #380] ; (f9d0 <anim_task+0x1ac>)
|
|
f852: 6818 ldr r0, [r3, #0]
|
|
f854: 4b5f ldr r3, [pc, #380] ; (f9d4 <anim_task+0x1b0>)
|
|
f856: 4798 blx r3
|
|
f858: 0007 movs r7, r0
|
|
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
|
|
f85a: 485a ldr r0, [pc, #360] ; (f9c4 <anim_task+0x1a0>)
|
|
f85c: 4b5a ldr r3, [pc, #360] ; (f9c8 <anim_task+0x1a4>)
|
|
f85e: 4798 blx r3
|
|
f860: 1e04 subs r4, r0, #0
|
|
while(a != NULL) {
|
|
f862: d100 bne.n f866 <anim_task+0x42>
|
|
f864: e08c b.n f980 <anim_task+0x15c>
|
|
anim_list_changed = false;
|
|
f866: 4e5c ldr r6, [pc, #368] ; (f9d8 <anim_task+0x1b4>)
|
|
f868: 2500 movs r5, #0
|
|
if(anim_list_changed)
|
|
f86a: 46b0 mov r8, r6
|
|
f86c: e026 b.n f8bc <anim_task+0x98>
|
|
int32_t new_act_time = a->act_time + elaps;
|
|
f86e: 19db adds r3, r3, r7
|
|
if(a->act_time <= 0 && new_act_time >= 0) {
|
|
f870: 2b00 cmp r3, #0
|
|
f872: da00 bge.n f876 <anim_task+0x52>
|
|
f874: e08d b.n f992 <anim_task+0x16e>
|
|
if(a->start_cb) a->start_cb(a);
|
|
f876: 68a2 ldr r2, [r4, #8]
|
|
f878: 2a00 cmp r2, #0
|
|
f87a: d100 bne.n f87e <anim_task+0x5a>
|
|
f87c: e090 b.n f9a0 <anim_task+0x17c>
|
|
f87e: 0020 movs r0, r4
|
|
f880: 4790 blx r2
|
|
f882: e028 b.n f8d6 <anim_task+0xb2>
|
|
if(a->path.cb) new_value = a->path.cb(&a->path, a);
|
|
f884: 6923 ldr r3, [r4, #16]
|
|
f886: 2b00 cmp r3, #0
|
|
f888: d02f beq.n f8ea <anim_task+0xc6>
|
|
f88a: 0020 movs r0, r4
|
|
f88c: 3010 adds r0, #16
|
|
f88e: 0021 movs r1, r4
|
|
f890: 4798 blx r3
|
|
if(a->exec_cb) a->exec_cb(a->var, new_value);
|
|
f892: 6863 ldr r3, [r4, #4]
|
|
f894: 2b00 cmp r3, #0
|
|
f896: d002 beq.n f89e <anim_task+0x7a>
|
|
f898: b201 sxth r1, r0
|
|
f89a: 6820 ldr r0, [r4, #0]
|
|
f89c: 4798 blx r3
|
|
if(a->act_time >= a->time) {
|
|
f89e: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
f8a0: 6a22 ldr r2, [r4, #32]
|
|
f8a2: 4293 cmp r3, r2
|
|
f8a4: d227 bcs.n f8f6 <anim_task+0xd2>
|
|
if(anim_list_changed)
|
|
f8a6: 4643 mov r3, r8
|
|
f8a8: 781b ldrb r3, [r3, #0]
|
|
f8aa: 2b00 cmp r3, #0
|
|
f8ac: d100 bne.n f8b0 <anim_task+0x8c>
|
|
f8ae: e071 b.n f994 <anim_task+0x170>
|
|
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
|
|
f8b0: 4844 ldr r0, [pc, #272] ; (f9c4 <anim_task+0x1a0>)
|
|
f8b2: 4b45 ldr r3, [pc, #276] ; (f9c8 <anim_task+0x1a4>)
|
|
f8b4: 4798 blx r3
|
|
f8b6: 0004 movs r4, r0
|
|
while(a != NULL) {
|
|
f8b8: 2c00 cmp r4, #0
|
|
f8ba: d061 beq.n f980 <anim_task+0x15c>
|
|
anim_list_changed = false;
|
|
f8bc: 7035 strb r5, [r6, #0]
|
|
if(!a->has_run) {
|
|
f8be: 233c movs r3, #60 ; 0x3c
|
|
f8c0: 5ce3 ldrb r3, [r4, r3]
|
|
f8c2: 079b lsls r3, r3, #30
|
|
f8c4: d466 bmi.n f994 <anim_task+0x170>
|
|
a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/
|
|
f8c6: 223c movs r2, #60 ; 0x3c
|
|
f8c8: 5ca3 ldrb r3, [r4, r2]
|
|
f8ca: 2102 movs r1, #2
|
|
f8cc: 430b orrs r3, r1
|
|
f8ce: 54a3 strb r3, [r4, r2]
|
|
int32_t new_act_time = a->act_time + elaps;
|
|
f8d0: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
if(a->act_time <= 0 && new_act_time >= 0) {
|
|
f8d2: 2b00 cmp r3, #0
|
|
f8d4: ddcb ble.n f86e <anim_task+0x4a>
|
|
a->act_time += elaps;
|
|
f8d6: 6a63 ldr r3, [r4, #36] ; 0x24
|
|
f8d8: 18fb adds r3, r7, r3
|
|
f8da: 6263 str r3, [r4, #36] ; 0x24
|
|
if(a->act_time >= 0) {
|
|
f8dc: 2b00 cmp r3, #0
|
|
f8de: dbe2 blt.n f8a6 <anim_task+0x82>
|
|
if(a->act_time > a->time) a->act_time = a->time;
|
|
f8e0: 6a22 ldr r2, [r4, #32]
|
|
f8e2: 429a cmp r2, r3
|
|
f8e4: d2ce bcs.n f884 <anim_task+0x60>
|
|
f8e6: 6262 str r2, [r4, #36] ; 0x24
|
|
f8e8: e7cc b.n f884 <anim_task+0x60>
|
|
else new_value = lv_anim_path_linear(&a->path, a);
|
|
f8ea: 0020 movs r0, r4
|
|
f8ec: 3010 adds r0, #16
|
|
f8ee: 0021 movs r1, r4
|
|
f8f0: 4b3a ldr r3, [pc, #232] ; (f9dc <anim_task+0x1b8>)
|
|
f8f2: 4798 blx r3
|
|
f8f4: e7cd b.n f892 <anim_task+0x6e>
|
|
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
|
|
f8f6: 233c movs r3, #60 ; 0x3c
|
|
f8f8: 5ce3 ldrb r3, [r4, r3]
|
|
f8fa: 2201 movs r2, #1
|
|
f8fc: 4013 ands r3, r2
|
|
f8fe: 1e18 subs r0, r3, #0
|
|
f900: d107 bne.n f912 <anim_task+0xee>
|
|
f902: 8ea2 ldrh r2, [r4, #52] ; 0x34
|
|
f904: 2a00 cmp r2, #0
|
|
f906: d04d beq.n f9a4 <anim_task+0x180>
|
|
f908: 4935 ldr r1, [pc, #212] ; (f9e0 <anim_task+0x1bc>)
|
|
f90a: 428a cmp r2, r1
|
|
f90c: d051 beq.n f9b2 <anim_task+0x18e>
|
|
a->repeat_cnt--;
|
|
f90e: 3a01 subs r2, #1
|
|
f910: 86a2 strh r2, [r4, #52] ; 0x34
|
|
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
|
|
f912: 8ea2 ldrh r2, [r4, #52] ; 0x34
|
|
f914: 2a00 cmp r2, #0
|
|
f916: d01a beq.n f94e <anim_task+0x12a>
|
|
a->act_time = -a->repeat_delay; /*Restart the animation*/
|
|
f918: 6b23 ldr r3, [r4, #48] ; 0x30
|
|
f91a: 425a negs r2, r3
|
|
f91c: 6262 str r2, [r4, #36] ; 0x24
|
|
if(a->playback_time != 0) {
|
|
f91e: 6ae2 ldr r2, [r4, #44] ; 0x2c
|
|
f920: 2a00 cmp r2, #0
|
|
f922: d0c0 beq.n f8a6 <anim_task+0x82>
|
|
if(a->playback_now == 0) a->act_time = -a->playback_delay;
|
|
f924: 2800 cmp r0, #0
|
|
f926: d040 beq.n f9aa <anim_task+0x186>
|
|
a->playback_now = a->playback_now == 0 ? 1 : 0;
|
|
f928: 4243 negs r3, r0
|
|
f92a: 4143 adcs r3, r0
|
|
f92c: 4699 mov r9, r3
|
|
f92e: 203c movs r0, #60 ; 0x3c
|
|
f930: 5c21 ldrb r1, [r4, r0]
|
|
f932: 2301 movs r3, #1
|
|
f934: 4399 bics r1, r3
|
|
f936: 464b mov r3, r9
|
|
f938: 430b orrs r3, r1
|
|
f93a: 5423 strb r3, [r4, r0]
|
|
tmp = a->start;
|
|
f93c: 69a1 ldr r1, [r4, #24]
|
|
a->start = a->end;
|
|
f93e: 69e0 ldr r0, [r4, #28]
|
|
f940: 61a0 str r0, [r4, #24]
|
|
a->end = tmp;
|
|
f942: 61e1 str r1, [r4, #28]
|
|
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
|
|
f944: 07db lsls r3, r3, #31
|
|
f946: d400 bmi.n f94a <anim_task+0x126>
|
|
f948: 6ba2 ldr r2, [r4, #56] ; 0x38
|
|
f94a: 6222 str r2, [r4, #32]
|
|
f94c: e7ab b.n f8a6 <anim_task+0x82>
|
|
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
|
|
f94e: 6ae2 ldr r2, [r4, #44] ; 0x2c
|
|
f950: 2a00 cmp r2, #0
|
|
f952: d001 beq.n f958 <anim_task+0x134>
|
|
f954: 2800 cmp r0, #0
|
|
f956: d028 beq.n f9aa <anim_task+0x186>
|
|
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
|
|
f958: 2240 movs r2, #64 ; 0x40
|
|
f95a: 0021 movs r1, r4
|
|
f95c: 4668 mov r0, sp
|
|
f95e: 4b21 ldr r3, [pc, #132] ; (f9e4 <anim_task+0x1c0>)
|
|
f960: 4798 blx r3
|
|
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
|
|
f962: 0021 movs r1, r4
|
|
f964: 4817 ldr r0, [pc, #92] ; (f9c4 <anim_task+0x1a0>)
|
|
f966: 4b20 ldr r3, [pc, #128] ; (f9e8 <anim_task+0x1c4>)
|
|
f968: 4798 blx r3
|
|
lv_mem_free(a);
|
|
f96a: 0020 movs r0, r4
|
|
f96c: 4b1f ldr r3, [pc, #124] ; (f9ec <anim_task+0x1c8>)
|
|
f96e: 4798 blx r3
|
|
anim_mark_list_change();
|
|
f970: 4b1f ldr r3, [pc, #124] ; (f9f0 <anim_task+0x1cc>)
|
|
f972: 4798 blx r3
|
|
if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp);
|
|
f974: 9b03 ldr r3, [sp, #12]
|
|
f976: 2b00 cmp r3, #0
|
|
f978: d095 beq.n f8a6 <anim_task+0x82>
|
|
f97a: 4668 mov r0, sp
|
|
f97c: 4798 blx r3
|
|
f97e: e792 b.n f8a6 <anim_task+0x82>
|
|
last_task_run = lv_tick_get();
|
|
f980: 4b1c ldr r3, [pc, #112] ; (f9f4 <anim_task+0x1d0>)
|
|
f982: 4798 blx r3
|
|
f984: 4b12 ldr r3, [pc, #72] ; (f9d0 <anim_task+0x1ac>)
|
|
f986: 6018 str r0, [r3, #0]
|
|
}
|
|
f988: b011 add sp, #68 ; 0x44
|
|
f98a: bc0c pop {r2, r3}
|
|
f98c: 4690 mov r8, r2
|
|
f98e: 4699 mov r9, r3
|
|
f990: bdf0 pop {r4, r5, r6, r7, pc}
|
|
a->act_time += elaps;
|
|
f992: 6263 str r3, [r4, #36] ; 0x24
|
|
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
|
|
f994: 0021 movs r1, r4
|
|
f996: 480b ldr r0, [pc, #44] ; (f9c4 <anim_task+0x1a0>)
|
|
f998: 4b0c ldr r3, [pc, #48] ; (f9cc <anim_task+0x1a8>)
|
|
f99a: 4798 blx r3
|
|
f99c: 0004 movs r4, r0
|
|
f99e: e78b b.n f8b8 <anim_task+0x94>
|
|
a->act_time += elaps;
|
|
f9a0: 6263 str r3, [r4, #36] ; 0x24
|
|
f9a2: e79d b.n f8e0 <anim_task+0xbc>
|
|
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
|
|
f9a4: 6ae2 ldr r2, [r4, #44] ; 0x2c
|
|
f9a6: 2a00 cmp r2, #0
|
|
f9a8: d0d6 beq.n f958 <anim_task+0x134>
|
|
if(a->playback_now == 0) a->act_time = -a->playback_delay;
|
|
f9aa: 6aa3 ldr r3, [r4, #40] ; 0x28
|
|
f9ac: 4259 negs r1, r3
|
|
f9ae: 6261 str r1, [r4, #36] ; 0x24
|
|
f9b0: e7ba b.n f928 <anim_task+0x104>
|
|
a->act_time = -a->repeat_delay; /*Restart the animation*/
|
|
f9b2: 6b23 ldr r3, [r4, #48] ; 0x30
|
|
f9b4: 425a negs r2, r3
|
|
f9b6: 6262 str r2, [r4, #36] ; 0x24
|
|
if(a->playback_time != 0) {
|
|
f9b8: 6ae2 ldr r2, [r4, #44] ; 0x2c
|
|
f9ba: 2a00 cmp r2, #0
|
|
f9bc: d100 bne.n f9c0 <anim_task+0x19c>
|
|
f9be: e772 b.n f8a6 <anim_task+0x82>
|
|
f9c0: e7f3 b.n f9aa <anim_task+0x186>
|
|
f9c2: 46c0 nop ; (mov r8, r8)
|
|
f9c4: 20004d88 .word 0x20004d88
|
|
f9c8: 0001066d .word 0x0001066d
|
|
f9cc: 00010685 .word 0x00010685
|
|
f9d0: 20002be4 .word 0x20002be4
|
|
f9d4: 0000f7a9 .word 0x0000f7a9
|
|
f9d8: 20002be0 .word 0x20002be0
|
|
f9dc: 0000f7b9 .word 0x0000f7b9
|
|
f9e0: 0000ffff .word 0x0000ffff
|
|
f9e4: 00010c8d .word 0x00010c8d
|
|
f9e8: 00010755 .word 0x00010755
|
|
f9ec: 00010b39 .word 0x00010b39
|
|
f9f0: 0000f7e5 .word 0x0000f7e5
|
|
f9f4: 0000f78d .word 0x0000f78d
|
|
|
|
0000f9f8 <_lv_anim_core_init>:
|
|
{
|
|
f9f8: b510 push {r4, lr}
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
|
|
f9fa: 2140 movs r1, #64 ; 0x40
|
|
f9fc: 480a ldr r0, [pc, #40] ; (fa28 <_lv_anim_core_init+0x30>)
|
|
f9fe: 4b0b ldr r3, [pc, #44] ; (fa2c <_lv_anim_core_init+0x34>)
|
|
fa00: 4798 blx r3
|
|
last_task_run = lv_tick_get();
|
|
fa02: 4b0b ldr r3, [pc, #44] ; (fa30 <_lv_anim_core_init+0x38>)
|
|
fa04: 4798 blx r3
|
|
fa06: 4b0b ldr r3, [pc, #44] ; (fa34 <_lv_anim_core_init+0x3c>)
|
|
fa08: 6018 str r0, [r3, #0]
|
|
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
|
|
fa0a: 2300 movs r3, #0
|
|
fa0c: 2204 movs r2, #4
|
|
fa0e: 211e movs r1, #30
|
|
fa10: 4809 ldr r0, [pc, #36] ; (fa38 <_lv_anim_core_init+0x40>)
|
|
fa12: 4c0a ldr r4, [pc, #40] ; (fa3c <_lv_anim_core_init+0x44>)
|
|
fa14: 47a0 blx r4
|
|
fa16: 4b0a ldr r3, [pc, #40] ; (fa40 <_lv_anim_core_init+0x48>)
|
|
fa18: 6018 str r0, [r3, #0]
|
|
anim_mark_list_change(); /*Turn off the animation task*/
|
|
fa1a: 4b0a ldr r3, [pc, #40] ; (fa44 <_lv_anim_core_init+0x4c>)
|
|
fa1c: 4798 blx r3
|
|
anim_list_changed = false; /*The list has not actaully changed*/
|
|
fa1e: 2200 movs r2, #0
|
|
fa20: 4b09 ldr r3, [pc, #36] ; (fa48 <_lv_anim_core_init+0x50>)
|
|
fa22: 701a strb r2, [r3, #0]
|
|
}
|
|
fa24: bd10 pop {r4, pc}
|
|
fa26: 46c0 nop ; (mov r8, r8)
|
|
fa28: 20004d88 .word 0x20004d88
|
|
fa2c: 000105b9 .word 0x000105b9
|
|
fa30: 0000f78d .word 0x0000f78d
|
|
fa34: 20002be4 .word 0x20002be4
|
|
fa38: 0000f825 .word 0x0000f825
|
|
fa3c: 000115d9 .word 0x000115d9
|
|
fa40: 20002bdc .word 0x20002bdc
|
|
fa44: 0000f7e5 .word 0x0000f7e5
|
|
fa48: 20002be0 .word 0x20002be0
|
|
|
|
0000fa4c <lv_anim_init>:
|
|
{
|
|
fa4c: b510 push {r4, lr}
|
|
fa4e: 0004 movs r4, r0
|
|
_lv_memset_00(a, sizeof(lv_anim_t));
|
|
fa50: 2140 movs r1, #64 ; 0x40
|
|
fa52: 4b0d ldr r3, [pc, #52] ; (fa88 <lv_anim_init+0x3c>)
|
|
fa54: 4798 blx r3
|
|
a->time = 500;
|
|
fa56: 23fa movs r3, #250 ; 0xfa
|
|
fa58: 005b lsls r3, r3, #1
|
|
fa5a: 6223 str r3, [r4, #32]
|
|
a->start = 0;
|
|
fa5c: 2300 movs r3, #0
|
|
fa5e: 61a3 str r3, [r4, #24]
|
|
a->end = 100;
|
|
fa60: 3364 adds r3, #100 ; 0x64
|
|
fa62: 61e3 str r3, [r4, #28]
|
|
{
|
|
uint8_t * d8 = (uint8_t *)dst;
|
|
const uint8_t * s8 = (const uint8_t *)src;
|
|
|
|
while(len) {
|
|
*d8 = *s8;
|
|
fa64: 4b09 ldr r3, [pc, #36] ; (fa8c <lv_anim_init+0x40>)
|
|
fa66: 781a ldrb r2, [r3, #0]
|
|
fa68: 7422 strb r2, [r4, #16]
|
|
fa6a: 785a ldrb r2, [r3, #1]
|
|
fa6c: 7462 strb r2, [r4, #17]
|
|
fa6e: 789a ldrb r2, [r3, #2]
|
|
fa70: 74a2 strb r2, [r4, #18]
|
|
fa72: 78db ldrb r3, [r3, #3]
|
|
fa74: 74e3 strb r3, [r4, #19]
|
|
a->repeat_cnt = 1;
|
|
fa76: 2301 movs r3, #1
|
|
fa78: 86a3 strh r3, [r4, #52] ; 0x34
|
|
a->early_apply = 1;
|
|
fa7a: 2236 movs r2, #54 ; 0x36
|
|
fa7c: 5ca3 ldrb r3, [r4, r2]
|
|
fa7e: 2101 movs r1, #1
|
|
fa80: 430b orrs r3, r1
|
|
fa82: 54a3 strb r3, [r4, r2]
|
|
}
|
|
fa84: bd10 pop {r4, pc}
|
|
fa86: 46c0 nop ; (mov r8, r8)
|
|
fa88: 0001104d .word 0x0001104d
|
|
fa8c: 0001c768 .word 0x0001c768
|
|
|
|
0000fa90 <lv_anim_del>:
|
|
{
|
|
fa90: b5f0 push {r4, r5, r6, r7, lr}
|
|
fa92: 46d6 mov lr, sl
|
|
fa94: b500 push {lr}
|
|
fa96: b082 sub sp, #8
|
|
fa98: 0006 movs r6, r0
|
|
fa9a: 468a mov sl, r1
|
|
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
|
|
fa9c: 4815 ldr r0, [pc, #84] ; (faf4 <lv_anim_del+0x64>)
|
|
fa9e: 4b16 ldr r3, [pc, #88] ; (faf8 <lv_anim_del+0x68>)
|
|
faa0: 4798 blx r3
|
|
faa2: 1e04 subs r4, r0, #0
|
|
while(a != NULL) {
|
|
faa4: d01e beq.n fae4 <lv_anim_del+0x54>
|
|
faa6: 2300 movs r3, #0
|
|
faa8: 9301 str r3, [sp, #4]
|
|
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
|
|
faaa: 4f14 ldr r7, [pc, #80] ; (fafc <lv_anim_del+0x6c>)
|
|
faac: e00c b.n fac8 <lv_anim_del+0x38>
|
|
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
|
|
faae: 0021 movs r1, r4
|
|
fab0: 4810 ldr r0, [pc, #64] ; (faf4 <lv_anim_del+0x64>)
|
|
fab2: 4b13 ldr r3, [pc, #76] ; (fb00 <lv_anim_del+0x70>)
|
|
fab4: 4798 blx r3
|
|
lv_mem_free(a);
|
|
fab6: 0020 movs r0, r4
|
|
fab8: 4b12 ldr r3, [pc, #72] ; (fb04 <lv_anim_del+0x74>)
|
|
faba: 4798 blx r3
|
|
anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in
|
|
fabc: 4b12 ldr r3, [pc, #72] ; (fb08 <lv_anim_del+0x78>)
|
|
fabe: 4798 blx r3
|
|
del = true;
|
|
fac0: 2301 movs r3, #1
|
|
fac2: 9301 str r3, [sp, #4]
|
|
fac4: 1e2c subs r4, r5, #0
|
|
while(a != NULL) {
|
|
fac6: d00f beq.n fae8 <lv_anim_del+0x58>
|
|
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
|
|
fac8: 0021 movs r1, r4
|
|
faca: 480a ldr r0, [pc, #40] ; (faf4 <lv_anim_del+0x64>)
|
|
facc: 47b8 blx r7
|
|
face: 0005 movs r5, r0
|
|
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
|
|
fad0: 6823 ldr r3, [r4, #0]
|
|
fad2: 42b3 cmp r3, r6
|
|
fad4: d1f6 bne.n fac4 <lv_anim_del+0x34>
|
|
fad6: 6863 ldr r3, [r4, #4]
|
|
fad8: 4553 cmp r3, sl
|
|
fada: d0e8 beq.n faae <lv_anim_del+0x1e>
|
|
fadc: 4653 mov r3, sl
|
|
fade: 2b00 cmp r3, #0
|
|
fae0: d1f0 bne.n fac4 <lv_anim_del+0x34>
|
|
fae2: e7e4 b.n faae <lv_anim_del+0x1e>
|
|
bool del = false;
|
|
fae4: 2300 movs r3, #0
|
|
fae6: 9301 str r3, [sp, #4]
|
|
}
|
|
fae8: 9801 ldr r0, [sp, #4]
|
|
faea: b002 add sp, #8
|
|
faec: bc04 pop {r2}
|
|
faee: 4692 mov sl, r2
|
|
faf0: bdf0 pop {r4, r5, r6, r7, pc}
|
|
faf2: 46c0 nop ; (mov r8, r8)
|
|
faf4: 20004d88 .word 0x20004d88
|
|
faf8: 0001066d .word 0x0001066d
|
|
fafc: 00010685 .word 0x00010685
|
|
fb00: 00010755 .word 0x00010755
|
|
fb04: 00010b39 .word 0x00010b39
|
|
fb08: 0000f7e5 .word 0x0000f7e5
|
|
|
|
0000fb0c <lv_anim_start>:
|
|
{
|
|
fb0c: b570 push {r4, r5, r6, lr}
|
|
fb0e: 0005 movs r5, r0
|
|
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
|
|
fb10: 6841 ldr r1, [r0, #4]
|
|
fb12: 2900 cmp r1, #0
|
|
fb14: d002 beq.n fb1c <lv_anim_start+0x10>
|
|
fb16: 6800 ldr r0, [r0, #0]
|
|
fb18: 4b19 ldr r3, [pc, #100] ; (fb80 <lv_anim_start+0x74>)
|
|
fb1a: 4798 blx r3
|
|
if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) {
|
|
fb1c: 4819 ldr r0, [pc, #100] ; (fb84 <lv_anim_start+0x78>)
|
|
fb1e: 4b1a ldr r3, [pc, #104] ; (fb88 <lv_anim_start+0x7c>)
|
|
fb20: 4798 blx r3
|
|
fb22: 2800 cmp r0, #0
|
|
fb24: d120 bne.n fb68 <lv_anim_start+0x5c>
|
|
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
|
|
fb26: 4817 ldr r0, [pc, #92] ; (fb84 <lv_anim_start+0x78>)
|
|
fb28: 4b18 ldr r3, [pc, #96] ; (fb8c <lv_anim_start+0x80>)
|
|
fb2a: 4798 blx r3
|
|
fb2c: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(new_anim);
|
|
fb2e: 4b18 ldr r3, [pc, #96] ; (fb90 <lv_anim_start+0x84>)
|
|
fb30: 4798 blx r3
|
|
fb32: 2800 cmp r0, #0
|
|
fb34: d01e beq.n fb74 <lv_anim_start+0x68>
|
|
if(new_anim == NULL) return;
|
|
fb36: 2c00 cmp r4, #0
|
|
fb38: d015 beq.n fb66 <lv_anim_start+0x5a>
|
|
a->time_orig = a->time;
|
|
fb3a: 6a2b ldr r3, [r5, #32]
|
|
fb3c: 63ab str r3, [r5, #56] ; 0x38
|
|
_lv_memcpy(new_anim, a, sizeof(lv_anim_t));
|
|
fb3e: 2240 movs r2, #64 ; 0x40
|
|
fb40: 0029 movs r1, r5
|
|
fb42: 0020 movs r0, r4
|
|
fb44: 4b13 ldr r3, [pc, #76] ; (fb94 <lv_anim_start+0x88>)
|
|
fb46: 4798 blx r3
|
|
if(new_anim->early_apply) {
|
|
fb48: 2336 movs r3, #54 ; 0x36
|
|
fb4a: 5ce3 ldrb r3, [r4, r3]
|
|
fb4c: 07db lsls r3, r3, #31
|
|
fb4e: d508 bpl.n fb62 <lv_anim_start+0x56>
|
|
if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start);
|
|
fb50: 6863 ldr r3, [r4, #4]
|
|
fb52: 2b00 cmp r3, #0
|
|
fb54: d005 beq.n fb62 <lv_anim_start+0x56>
|
|
fb56: 6820 ldr r0, [r4, #0]
|
|
fb58: 2800 cmp r0, #0
|
|
fb5a: d002 beq.n fb62 <lv_anim_start+0x56>
|
|
fb5c: 2218 movs r2, #24
|
|
fb5e: 5ea1 ldrsh r1, [r4, r2]
|
|
fb60: 4798 blx r3
|
|
anim_mark_list_change();
|
|
fb62: 4b0d ldr r3, [pc, #52] ; (fb98 <lv_anim_start+0x8c>)
|
|
fb64: 4798 blx r3
|
|
}
|
|
fb66: bd70 pop {r4, r5, r6, pc}
|
|
last_task_run = lv_tick_get() - 1;
|
|
fb68: 4b0c ldr r3, [pc, #48] ; (fb9c <lv_anim_start+0x90>)
|
|
fb6a: 4798 blx r3
|
|
fb6c: 3801 subs r0, #1
|
|
fb6e: 4b0c ldr r3, [pc, #48] ; (fba0 <lv_anim_start+0x94>)
|
|
fb70: 6018 str r0, [r3, #0]
|
|
fb72: e7d8 b.n fb26 <lv_anim_start+0x1a>
|
|
LV_ASSERT_MEM(new_anim);
|
|
fb74: 0022 movs r2, r4
|
|
fb76: 2300 movs r3, #0
|
|
fb78: 480a ldr r0, [pc, #40] ; (fba4 <lv_anim_start+0x98>)
|
|
fb7a: 490b ldr r1, [pc, #44] ; (fba8 <lv_anim_start+0x9c>)
|
|
fb7c: 4788 blx r1
|
|
fb7e: e7fe b.n fb7e <lv_anim_start+0x72>
|
|
fb80: 0000fa91 .word 0x0000fa91
|
|
fb84: 20004d88 .word 0x20004d88
|
|
fb88: 00010915 .word 0x00010915
|
|
fb8c: 000105cd .word 0x000105cd
|
|
fb90: 0000147d .word 0x0000147d
|
|
fb94: 00010c8d .word 0x00010c8d
|
|
fb98: 0000f7e5 .word 0x0000f7e5
|
|
fb9c: 0000f78d .word 0x0000f78d
|
|
fba0: 20002be4 .word 0x20002be4
|
|
fba4: 00018724 .word 0x00018724
|
|
fba8: 00001485 .word 0x00001485
|
|
|
|
0000fbac <lv_point_within_circle>:
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p)
|
|
{
|
|
fbac: b570 push {r4, r5, r6, lr}
|
|
lv_coord_t r = (area->x2 - area->x1) / 2;
|
|
fbae: 2300 movs r3, #0
|
|
fbb0: 5ec6 ldrsh r6, [r0, r3]
|
|
fbb2: 2304 movs r3, #4
|
|
fbb4: 5ec2 ldrsh r2, [r0, r3]
|
|
fbb6: 1b92 subs r2, r2, r6
|
|
fbb8: 0fd4 lsrs r4, r2, #31
|
|
fbba: 18a4 adds r4, r4, r2
|
|
fbbc: 1064 asrs r4, r4, #1
|
|
|
|
/* Circle center */
|
|
lv_coord_t cx = area->x1 + r;
|
|
fbbe: b2a5 uxth r5, r4
|
|
|
|
/*Simplify the code by moving everything to (0, 0) */
|
|
lv_coord_t px = p->x - cx;
|
|
lv_coord_t py = p->y - cy;
|
|
|
|
int32_t r_sqrd = r * r;
|
|
fbc0: b224 sxth r4, r4
|
|
lv_coord_t px = p->x - cx;
|
|
fbc2: 880b ldrh r3, [r1, #0]
|
|
fbc4: 1b9b subs r3, r3, r6
|
|
fbc6: 1b5b subs r3, r3, r5
|
|
int32_t dist = (px * px) + (py * py);
|
|
fbc8: b21b sxth r3, r3
|
|
lv_coord_t py = p->y - cy;
|
|
fbca: 884a ldrh r2, [r1, #2]
|
|
fbcc: 8841 ldrh r1, [r0, #2]
|
|
fbce: 1a52 subs r2, r2, r1
|
|
fbd0: 1b52 subs r2, r2, r5
|
|
int32_t dist = (px * px) + (py * py);
|
|
fbd2: b212 sxth r2, r2
|
|
int32_t r_sqrd = r * r;
|
|
fbd4: 4364 muls r4, r4
|
|
int32_t dist = (px * px) + (py * py);
|
|
fbd6: 435b muls r3, r3
|
|
fbd8: 4352 muls r2, r2
|
|
fbda: 189b adds r3, r3, r2
|
|
|
|
if(dist <= r_sqrd)
|
|
fbdc: 17e0 asrs r0, r4, #31
|
|
fbde: 0fda lsrs r2, r3, #31
|
|
fbe0: 429c cmp r4, r3
|
|
fbe2: 4150 adcs r0, r2
|
|
fbe4: b2c0 uxtb r0, r0
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
fbe6: bd70 pop {r4, r5, r6, pc}
|
|
|
|
0000fbe8 <lv_area_set_height>:
|
|
area_p->y2 = area_p->y1 + h - 1;
|
|
fbe8: 1e4b subs r3, r1, #1
|
|
fbea: 8841 ldrh r1, [r0, #2]
|
|
fbec: 18c9 adds r1, r1, r3
|
|
fbee: 80c1 strh r1, [r0, #6]
|
|
}
|
|
fbf0: 4770 bx lr
|
|
|
|
0000fbf2 <lv_area_get_size>:
|
|
size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1);
|
|
fbf2: 2304 movs r3, #4
|
|
fbf4: 5ec2 ldrsh r2, [r0, r3]
|
|
fbf6: 2100 movs r1, #0
|
|
fbf8: 5e43 ldrsh r3, [r0, r1]
|
|
fbfa: 1ad2 subs r2, r2, r3
|
|
fbfc: 3201 adds r2, #1
|
|
fbfe: 2106 movs r1, #6
|
|
fc00: 5e43 ldrsh r3, [r0, r1]
|
|
fc02: 2102 movs r1, #2
|
|
fc04: 5e40 ldrsh r0, [r0, r1]
|
|
fc06: 1a18 subs r0, r3, r0
|
|
fc08: 3001 adds r0, #1
|
|
fc0a: 4350 muls r0, r2
|
|
}
|
|
fc0c: 4770 bx lr
|
|
|
|
0000fc0e <_lv_area_intersect>:
|
|
{
|
|
fc0e: b5f0 push {r4, r5, r6, r7, lr}
|
|
fc10: 46c6 mov lr, r8
|
|
fc12: b500 push {lr}
|
|
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
|
|
fc14: 880d ldrh r5, [r1, #0]
|
|
fc16: 8813 ldrh r3, [r2, #0]
|
|
fc18: 1c1c adds r4, r3, #0
|
|
fc1a: b21b sxth r3, r3
|
|
fc1c: b22e sxth r6, r5
|
|
fc1e: 42b3 cmp r3, r6
|
|
fc20: da00 bge.n fc24 <_lv_area_intersect+0x16>
|
|
fc22: 1c2c adds r4, r5, #0
|
|
fc24: b226 sxth r6, r4
|
|
fc26: 8004 strh r4, [r0, #0]
|
|
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
|
|
fc28: 884d ldrh r5, [r1, #2]
|
|
fc2a: 8853 ldrh r3, [r2, #2]
|
|
fc2c: 1c1c adds r4, r3, #0
|
|
fc2e: b21b sxth r3, r3
|
|
fc30: b22f sxth r7, r5
|
|
fc32: 42bb cmp r3, r7
|
|
fc34: da00 bge.n fc38 <_lv_area_intersect+0x2a>
|
|
fc36: 1c2c adds r4, r5, #0
|
|
fc38: b227 sxth r7, r4
|
|
fc3a: 8044 strh r4, [r0, #2]
|
|
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
|
|
fc3c: 888d ldrh r5, [r1, #4]
|
|
fc3e: 8893 ldrh r3, [r2, #4]
|
|
fc40: 1c1c adds r4, r3, #0
|
|
fc42: b21b sxth r3, r3
|
|
fc44: 4698 mov r8, r3
|
|
fc46: b22b sxth r3, r5
|
|
fc48: 4598 cmp r8, r3
|
|
fc4a: dd00 ble.n fc4e <_lv_area_intersect+0x40>
|
|
fc4c: 1c2c adds r4, r5, #0
|
|
fc4e: b225 sxth r5, r4
|
|
fc50: 8084 strh r4, [r0, #4]
|
|
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
|
|
fc52: 88c9 ldrh r1, [r1, #6]
|
|
fc54: 88d3 ldrh r3, [r2, #6]
|
|
fc56: 1c1a adds r2, r3, #0
|
|
fc58: b21b sxth r3, r3
|
|
fc5a: b20c sxth r4, r1
|
|
fc5c: 42a3 cmp r3, r4
|
|
fc5e: dd00 ble.n fc62 <_lv_area_intersect+0x54>
|
|
fc60: 1c0a adds r2, r1, #0
|
|
fc62: b213 sxth r3, r2
|
|
fc64: 80c2 strh r2, [r0, #6]
|
|
union_ok = false;
|
|
fc66: 2000 movs r0, #0
|
|
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
|
|
fc68: 42ae cmp r6, r5
|
|
fc6a: dc04 bgt.n fc76 <_lv_area_intersect+0x68>
|
|
fc6c: 0ff8 lsrs r0, r7, #31
|
|
fc6e: 17da asrs r2, r3, #31
|
|
fc70: 42bb cmp r3, r7
|
|
fc72: 4150 adcs r0, r2
|
|
fc74: b2c0 uxtb r0, r0
|
|
}
|
|
fc76: bc04 pop {r2}
|
|
fc78: 4690 mov r8, r2
|
|
fc7a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
|
|
0000fc7c <_lv_area_join>:
|
|
{
|
|
fc7c: b570 push {r4, r5, r6, lr}
|
|
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
|
|
fc7e: 880d ldrh r5, [r1, #0]
|
|
fc80: 8813 ldrh r3, [r2, #0]
|
|
fc82: 1c1c adds r4, r3, #0
|
|
fc84: b21b sxth r3, r3
|
|
fc86: b22e sxth r6, r5
|
|
fc88: 42b3 cmp r3, r6
|
|
fc8a: dd00 ble.n fc8e <_lv_area_join+0x12>
|
|
fc8c: 1c2c adds r4, r5, #0
|
|
fc8e: 8004 strh r4, [r0, #0]
|
|
a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1);
|
|
fc90: 884d ldrh r5, [r1, #2]
|
|
fc92: 8853 ldrh r3, [r2, #2]
|
|
fc94: 1c1c adds r4, r3, #0
|
|
fc96: b21b sxth r3, r3
|
|
fc98: b22e sxth r6, r5
|
|
fc9a: 42b3 cmp r3, r6
|
|
fc9c: dd00 ble.n fca0 <_lv_area_join+0x24>
|
|
fc9e: 1c2c adds r4, r5, #0
|
|
fca0: 8044 strh r4, [r0, #2]
|
|
a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2);
|
|
fca2: 888d ldrh r5, [r1, #4]
|
|
fca4: 8893 ldrh r3, [r2, #4]
|
|
fca6: 1c1c adds r4, r3, #0
|
|
fca8: b21b sxth r3, r3
|
|
fcaa: b22e sxth r6, r5
|
|
fcac: 42b3 cmp r3, r6
|
|
fcae: da00 bge.n fcb2 <_lv_area_join+0x36>
|
|
fcb0: 1c2c adds r4, r5, #0
|
|
fcb2: 8084 strh r4, [r0, #4]
|
|
a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2);
|
|
fcb4: 88c9 ldrh r1, [r1, #6]
|
|
fcb6: 88d3 ldrh r3, [r2, #6]
|
|
fcb8: 1c1a adds r2, r3, #0
|
|
fcba: b21b sxth r3, r3
|
|
fcbc: b20c sxth r4, r1
|
|
fcbe: 42a3 cmp r3, r4
|
|
fcc0: da00 bge.n fcc4 <_lv_area_join+0x48>
|
|
fcc2: 1c0a adds r2, r1, #0
|
|
fcc4: 80c2 strh r2, [r0, #6]
|
|
}
|
|
fcc6: bd70 pop {r4, r5, r6, pc}
|
|
|
|
0000fcc8 <_lv_area_is_point_on>:
|
|
{
|
|
fcc8: b5f0 push {r4, r5, r6, r7, lr}
|
|
fcca: 46de mov lr, fp
|
|
fccc: 4657 mov r7, sl
|
|
fcce: 464e mov r6, r9
|
|
fcd0: 4645 mov r5, r8
|
|
fcd2: b5e0 push {r5, r6, r7, lr}
|
|
fcd4: b085 sub sp, #20
|
|
fcd6: 000e movs r6, r1
|
|
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
|
|
fcd8: 2300 movs r3, #0
|
|
fcda: 5ecc ldrsh r4, [r1, r3]
|
|
fcdc: 2300 movs r3, #0
|
|
fcde: 5ec1 ldrsh r1, [r0, r3]
|
|
return false;
|
|
fce0: 2300 movs r3, #0
|
|
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
|
|
fce2: 428c cmp r4, r1
|
|
fce4: db5e blt.n fda4 <_lv_area_is_point_on+0xdc>
|
|
fce6: 2504 movs r5, #4
|
|
fce8: 5f43 ldrsh r3, [r0, r5]
|
|
fcea: 4698 mov r8, r3
|
|
return false;
|
|
fcec: 2300 movs r3, #0
|
|
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
|
|
fcee: 4544 cmp r4, r8
|
|
fcf0: dc58 bgt.n fda4 <_lv_area_is_point_on+0xdc>
|
|
fcf2: 2302 movs r3, #2
|
|
fcf4: 5ef4 ldrsh r4, [r6, r3]
|
|
fcf6: 2502 movs r5, #2
|
|
fcf8: 5f43 ldrsh r3, [r0, r5]
|
|
fcfa: 469a mov sl, r3
|
|
return false;
|
|
fcfc: 2300 movs r3, #0
|
|
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
|
|
fcfe: 4554 cmp r4, sl
|
|
fd00: db50 blt.n fda4 <_lv_area_is_point_on+0xdc>
|
|
fd02: 2306 movs r3, #6
|
|
fd04: 5ec3 ldrsh r3, [r0, r3]
|
|
fd06: 001d movs r5, r3
|
|
fd08: 9301 str r3, [sp, #4]
|
|
return false;
|
|
fd0a: 2300 movs r3, #0
|
|
if(!is_on_rect)
|
|
fd0c: 42ac cmp r4, r5
|
|
fd0e: dc49 bgt.n fda4 <_lv_area_is_point_on+0xdc>
|
|
if(radius <= 0) {
|
|
fd10: 2a00 cmp r2, #0
|
|
fd12: dc00 bgt.n fd16 <_lv_area_is_point_on+0x4e>
|
|
fd14: e09b b.n fe4e <_lv_area_is_point_on+0x186>
|
|
* @param area_p pointer to an area
|
|
* @return the width of the area (if x1 == x2 -> width = 1)
|
|
*/
|
|
static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p)
|
|
{
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
fd16: 4643 mov r3, r8
|
|
fd18: 4668 mov r0, sp
|
|
fd1a: 8003 strh r3, [r0, #0]
|
|
fd1c: 8803 ldrh r3, [r0, #0]
|
|
fd1e: 4699 mov r9, r3
|
|
fd20: b28c uxth r4, r1
|
|
* @param area_p pointer to an area
|
|
* @return the height of the area (if y1 == y2 -> height = 1)
|
|
*/
|
|
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
|
|
{
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
fd22: b2af uxth r7, r5
|
|
fd24: 4653 mov r3, sl
|
|
fd26: 8003 strh r3, [r0, #0]
|
|
fd28: 8800 ldrh r0, [r0, #0]
|
|
corner_area.x1 = a_p->x1;
|
|
fd2a: ab02 add r3, sp, #8
|
|
fd2c: 8019 strh r1, [r3, #0]
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
fd2e: 464b mov r3, r9
|
|
fd30: 3301 adds r3, #1
|
|
fd32: 1b1b subs r3, r3, r4
|
|
lv_coord_t w = lv_area_get_width(a_p) / 2;
|
|
fd34: b21b sxth r3, r3
|
|
fd36: 0fd9 lsrs r1, r3, #31
|
|
fd38: 18cb adds r3, r1, r3
|
|
fd3a: 105b asrs r3, r3, #1
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
fd3c: 1c79 adds r1, r7, #1
|
|
fd3e: 1a09 subs r1, r1, r0
|
|
lv_coord_t h = lv_area_get_height(a_p) / 2;
|
|
fd40: b209 sxth r1, r1
|
|
fd42: 0fcd lsrs r5, r1, #31
|
|
fd44: 186d adds r5, r5, r1
|
|
fd46: 106d asrs r5, r5, #1
|
|
lv_coord_t max_radius = LV_MATH_MIN(w, h);
|
|
fd48: 1c19 adds r1, r3, #0
|
|
fd4a: b21b sxth r3, r3
|
|
fd4c: 42ab cmp r3, r5
|
|
fd4e: dd00 ble.n fd52 <_lv_area_is_point_on+0x8a>
|
|
fd50: 1c29 adds r1, r5, #0
|
|
corner_area.x2 = a_p->x1 + radius;
|
|
fd52: 1c0d adds r5, r1, #0
|
|
fd54: b209 sxth r1, r1
|
|
fd56: 4291 cmp r1, r2
|
|
fd58: dd00 ble.n fd5c <_lv_area_is_point_on+0x94>
|
|
fd5a: 1c15 adds r5, r2, #0
|
|
fd5c: b2ad uxth r5, r5
|
|
fd5e: 192c adds r4, r5, r4
|
|
fd60: b2a4 uxth r4, r4
|
|
fd62: ab02 add r3, sp, #8
|
|
fd64: 809c strh r4, [r3, #4]
|
|
corner_area.y1 = a_p->y1;
|
|
fd66: 4652 mov r2, sl
|
|
fd68: 805a strh r2, [r3, #2]
|
|
corner_area.y2 = a_p->y1 + radius;
|
|
fd6a: 1828 adds r0, r5, r0
|
|
fd6c: b283 uxth r3, r0
|
|
fd6e: 9300 str r3, [sp, #0]
|
|
fd70: 466b mov r3, sp
|
|
fd72: 2100 movs r1, #0
|
|
fd74: 5e5a ldrsh r2, [r3, r1]
|
|
fd76: 4693 mov fp, r2
|
|
fd78: aa02 add r2, sp, #8
|
|
fd7a: 4659 mov r1, fp
|
|
fd7c: 80d1 strh r1, [r2, #6]
|
|
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
|
|
fd7e: 2200 movs r2, #0
|
|
fd80: 0031 movs r1, r6
|
|
fd82: a802 add r0, sp, #8
|
|
fd84: f7ff ffa0 bl fcc8 <_lv_area_is_point_on>
|
|
fd88: 2800 cmp r0, #0
|
|
fd8a: d013 beq.n fdb4 <_lv_area_is_point_on+0xec>
|
|
corner_area.x2 += radius;
|
|
fd8c: 192c adds r4, r5, r4
|
|
fd8e: aa02 add r2, sp, #8
|
|
fd90: 8094 strh r4, [r2, #4]
|
|
corner_area.y2 += radius;
|
|
fd92: 9b00 ldr r3, [sp, #0]
|
|
fd94: 469c mov ip, r3
|
|
fd96: 4465 add r5, ip
|
|
fd98: 80d5 strh r5, [r2, #6]
|
|
return lv_point_within_circle(&corner_area, p_p);
|
|
fd9a: 0031 movs r1, r6
|
|
fd9c: 0010 movs r0, r2
|
|
fd9e: 4b2d ldr r3, [pc, #180] ; (fe54 <_lv_area_is_point_on+0x18c>)
|
|
fda0: 4798 blx r3
|
|
fda2: 0003 movs r3, r0
|
|
}
|
|
fda4: 0018 movs r0, r3
|
|
fda6: b005 add sp, #20
|
|
fda8: bc3c pop {r2, r3, r4, r5}
|
|
fdaa: 4690 mov r8, r2
|
|
fdac: 4699 mov r9, r3
|
|
fdae: 46a2 mov sl, r4
|
|
fdb0: 46ab mov fp, r5
|
|
fdb2: bdf0 pop {r4, r5, r6, r7, pc}
|
|
corner_area.y1 = a_p->y2 - radius;
|
|
fdb4: 1b7f subs r7, r7, r5
|
|
fdb6: b2bf uxth r7, r7
|
|
fdb8: ab02 add r3, sp, #8
|
|
fdba: 805f strh r7, [r3, #2]
|
|
corner_area.y2 = a_p->y2;
|
|
fdbc: 466a mov r2, sp
|
|
fdbe: 8892 ldrh r2, [r2, #4]
|
|
fdc0: 80da strh r2, [r3, #6]
|
|
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
|
|
fdc2: 2200 movs r2, #0
|
|
fdc4: 0031 movs r1, r6
|
|
fdc6: 0018 movs r0, r3
|
|
fdc8: f7ff ff7e bl fcc8 <_lv_area_is_point_on>
|
|
fdcc: 2800 cmp r0, #0
|
|
fdce: d00a beq.n fde6 <_lv_area_is_point_on+0x11e>
|
|
corner_area.x2 += radius;
|
|
fdd0: 192c adds r4, r5, r4
|
|
fdd2: ab02 add r3, sp, #8
|
|
fdd4: 809c strh r4, [r3, #4]
|
|
corner_area.y1 -= radius;
|
|
fdd6: 1b7d subs r5, r7, r5
|
|
fdd8: 805d strh r5, [r3, #2]
|
|
return lv_point_within_circle(&corner_area, p_p);
|
|
fdda: 0031 movs r1, r6
|
|
fddc: 0018 movs r0, r3
|
|
fdde: 4b1d ldr r3, [pc, #116] ; (fe54 <_lv_area_is_point_on+0x18c>)
|
|
fde0: 4798 blx r3
|
|
fde2: 0003 movs r3, r0
|
|
fde4: e7de b.n fda4 <_lv_area_is_point_on+0xdc>
|
|
corner_area.x1 = a_p->x2 - radius;
|
|
fde6: 464b mov r3, r9
|
|
fde8: 1b5c subs r4, r3, r5
|
|
fdea: b2a4 uxth r4, r4
|
|
fdec: ab02 add r3, sp, #8
|
|
fdee: 801c strh r4, [r3, #0]
|
|
corner_area.x2 = a_p->x2;
|
|
fdf0: 4642 mov r2, r8
|
|
fdf2: 809a strh r2, [r3, #4]
|
|
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
|
|
fdf4: 2200 movs r2, #0
|
|
fdf6: 0031 movs r1, r6
|
|
fdf8: 0018 movs r0, r3
|
|
fdfa: f7ff ff65 bl fcc8 <_lv_area_is_point_on>
|
|
fdfe: 2800 cmp r0, #0
|
|
fe00: d00a beq.n fe18 <_lv_area_is_point_on+0x150>
|
|
corner_area.x1 -= radius;
|
|
fe02: 1b64 subs r4, r4, r5
|
|
fe04: ab02 add r3, sp, #8
|
|
fe06: 801c strh r4, [r3, #0]
|
|
corner_area.y1 -= radius;
|
|
fe08: 1b7d subs r5, r7, r5
|
|
fe0a: 805d strh r5, [r3, #2]
|
|
return lv_point_within_circle(&corner_area, p_p);
|
|
fe0c: 0031 movs r1, r6
|
|
fe0e: 0018 movs r0, r3
|
|
fe10: 4b10 ldr r3, [pc, #64] ; (fe54 <_lv_area_is_point_on+0x18c>)
|
|
fe12: 4798 blx r3
|
|
fe14: 0003 movs r3, r0
|
|
fe16: e7c5 b.n fda4 <_lv_area_is_point_on+0xdc>
|
|
corner_area.y1 = a_p->y1;
|
|
fe18: ab02 add r3, sp, #8
|
|
fe1a: 4652 mov r2, sl
|
|
fe1c: 805a strh r2, [r3, #2]
|
|
corner_area.y2 = a_p->y1 + radius;
|
|
fe1e: 465a mov r2, fp
|
|
fe20: 80da strh r2, [r3, #6]
|
|
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
|
|
fe22: 2200 movs r2, #0
|
|
fe24: 0031 movs r1, r6
|
|
fe26: 0018 movs r0, r3
|
|
fe28: f7ff ff4e bl fcc8 <_lv_area_is_point_on>
|
|
return true;
|
|
fe2c: 2301 movs r3, #1
|
|
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
|
|
fe2e: 2800 cmp r0, #0
|
|
fe30: d0b8 beq.n fda4 <_lv_area_is_point_on+0xdc>
|
|
corner_area.x1 -= radius;
|
|
fe32: 1b64 subs r4, r4, r5
|
|
fe34: ab02 add r3, sp, #8
|
|
fe36: 801c strh r4, [r3, #0]
|
|
corner_area.y2 += radius;
|
|
fe38: 9b00 ldr r3, [sp, #0]
|
|
fe3a: 469c mov ip, r3
|
|
fe3c: 4465 add r5, ip
|
|
fe3e: ab02 add r3, sp, #8
|
|
fe40: 80dd strh r5, [r3, #6]
|
|
return lv_point_within_circle(&corner_area, p_p);
|
|
fe42: 0031 movs r1, r6
|
|
fe44: 0018 movs r0, r3
|
|
fe46: 4b03 ldr r3, [pc, #12] ; (fe54 <_lv_area_is_point_on+0x18c>)
|
|
fe48: 4798 blx r3
|
|
fe4a: 0003 movs r3, r0
|
|
fe4c: e7aa b.n fda4 <_lv_area_is_point_on+0xdc>
|
|
return true;
|
|
fe4e: 2301 movs r3, #1
|
|
fe50: e7a8 b.n fda4 <_lv_area_is_point_on+0xdc>
|
|
fe52: 46c0 nop ; (mov r8, r8)
|
|
fe54: 0000fbad .word 0x0000fbad
|
|
|
|
0000fe58 <_lv_area_is_on>:
|
|
{
|
|
fe58: b510 push {r4, lr}
|
|
if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) {
|
|
fe5a: 2300 movs r3, #0
|
|
fe5c: 5ec4 ldrsh r4, [r0, r3]
|
|
fe5e: 2304 movs r3, #4
|
|
fe60: 5eca ldrsh r2, [r1, r3]
|
|
return false;
|
|
fe62: 2300 movs r3, #0
|
|
if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) {
|
|
fe64: 4294 cmp r4, r2
|
|
fe66: dc16 bgt.n fe96 <_lv_area_is_on+0x3e>
|
|
fe68: 2304 movs r3, #4
|
|
fe6a: 5ec4 ldrsh r4, [r0, r3]
|
|
fe6c: 2300 movs r3, #0
|
|
fe6e: 5eca ldrsh r2, [r1, r3]
|
|
return false;
|
|
fe70: 2300 movs r3, #0
|
|
if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) {
|
|
fe72: 4294 cmp r4, r2
|
|
fe74: db0f blt.n fe96 <_lv_area_is_on+0x3e>
|
|
fe76: 2302 movs r3, #2
|
|
fe78: 5ec4 ldrsh r4, [r0, r3]
|
|
fe7a: 2306 movs r3, #6
|
|
fe7c: 5eca ldrsh r2, [r1, r3]
|
|
return false;
|
|
fe7e: 2300 movs r3, #0
|
|
if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) {
|
|
fe80: 4294 cmp r4, r2
|
|
fe82: dc08 bgt.n fe96 <_lv_area_is_on+0x3e>
|
|
fe84: 2306 movs r3, #6
|
|
fe86: 5ec4 ldrsh r4, [r0, r3]
|
|
fe88: 2302 movs r3, #2
|
|
fe8a: 5eca ldrsh r2, [r1, r3]
|
|
fe8c: 17e3 asrs r3, r4, #31
|
|
fe8e: 0fd0 lsrs r0, r2, #31
|
|
fe90: 4294 cmp r4, r2
|
|
fe92: 4143 adcs r3, r0
|
|
fe94: b2db uxtb r3, r3
|
|
}
|
|
fe96: 0018 movs r0, r3
|
|
fe98: bd10 pop {r4, pc}
|
|
...
|
|
|
|
0000fe9c <_lv_area_is_in>:
|
|
{
|
|
fe9c: b5f0 push {r4, r5, r6, r7, lr}
|
|
fe9e: 46c6 mov lr, r8
|
|
fea0: b500 push {lr}
|
|
fea2: b082 sub sp, #8
|
|
fea4: 0005 movs r5, r0
|
|
fea6: 000c movs r4, r1
|
|
fea8: 0016 movs r6, r2
|
|
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
|
|
feaa: 2300 movs r3, #0
|
|
feac: 5ec7 ldrsh r7, [r0, r3]
|
|
feae: 2200 movs r2, #0
|
|
feb0: 5e8b ldrsh r3, [r1, r2]
|
|
bool is_in = false;
|
|
feb2: 2000 movs r0, #0
|
|
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
|
|
feb4: 42bb cmp r3, r7
|
|
feb6: dc14 bgt.n fee2 <_lv_area_is_in+0x46>
|
|
feb8: 2302 movs r3, #2
|
|
feba: 5eea ldrsh r2, [r5, r3]
|
|
febc: 2102 movs r1, #2
|
|
febe: 5e63 ldrsh r3, [r4, r1]
|
|
fec0: 429a cmp r2, r3
|
|
fec2: db0e blt.n fee2 <_lv_area_is_in+0x46>
|
|
fec4: 2304 movs r3, #4
|
|
fec6: 5eea ldrsh r2, [r5, r3]
|
|
fec8: 2104 movs r1, #4
|
|
feca: 5e63 ldrsh r3, [r4, r1]
|
|
fecc: 429a cmp r2, r3
|
|
fece: dc08 bgt.n fee2 <_lv_area_is_in+0x46>
|
|
fed0: 2206 movs r2, #6
|
|
fed2: 5eab ldrsh r3, [r5, r2]
|
|
fed4: 2106 movs r1, #6
|
|
fed6: 5e62 ldrsh r2, [r4, r1]
|
|
fed8: 0fd8 lsrs r0, r3, #31
|
|
feda: 17d1 asrs r1, r2, #31
|
|
fedc: 429a cmp r2, r3
|
|
fede: 4148 adcs r0, r1
|
|
fee0: b2c0 uxtb r0, r0
|
|
if(radius == 0) return is_in;
|
|
fee2: 2e00 cmp r6, #0
|
|
fee4: d103 bne.n feee <_lv_area_is_in+0x52>
|
|
}
|
|
fee6: b002 add sp, #8
|
|
fee8: bc04 pop {r2}
|
|
feea: 4690 mov r8, r2
|
|
feec: bdf0 pop {r4, r5, r6, r7, pc}
|
|
p.x = ain_p->x1;
|
|
feee: a901 add r1, sp, #4
|
|
fef0: 800f strh r7, [r1, #0]
|
|
p.y = ain_p->y1;
|
|
fef2: 886b ldrh r3, [r5, #2]
|
|
fef4: 804b strh r3, [r1, #2]
|
|
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
|
|
fef6: 0032 movs r2, r6
|
|
fef8: 0020 movs r0, r4
|
|
fefa: 4b10 ldr r3, [pc, #64] ; (ff3c <_lv_area_is_in+0xa0>)
|
|
fefc: 4798 blx r3
|
|
fefe: 2800 cmp r0, #0
|
|
ff00: d0f1 beq.n fee6 <_lv_area_is_in+0x4a>
|
|
p.x = ain_p->x2;
|
|
ff02: 2204 movs r2, #4
|
|
ff04: 5eab ldrsh r3, [r5, r2]
|
|
ff06: 4698 mov r8, r3
|
|
ff08: a901 add r1, sp, #4
|
|
ff0a: 800b strh r3, [r1, #0]
|
|
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
|
|
ff0c: 0032 movs r2, r6
|
|
ff0e: 0020 movs r0, r4
|
|
ff10: 4b0a ldr r3, [pc, #40] ; (ff3c <_lv_area_is_in+0xa0>)
|
|
ff12: 4798 blx r3
|
|
ff14: 2800 cmp r0, #0
|
|
ff16: d0e6 beq.n fee6 <_lv_area_is_in+0x4a>
|
|
p.x = ain_p->x1;
|
|
ff18: a901 add r1, sp, #4
|
|
ff1a: 800f strh r7, [r1, #0]
|
|
p.y = ain_p->y2;
|
|
ff1c: 88eb ldrh r3, [r5, #6]
|
|
ff1e: 804b strh r3, [r1, #2]
|
|
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
|
|
ff20: 0032 movs r2, r6
|
|
ff22: 0020 movs r0, r4
|
|
ff24: 4b05 ldr r3, [pc, #20] ; (ff3c <_lv_area_is_in+0xa0>)
|
|
ff26: 4798 blx r3
|
|
ff28: 2800 cmp r0, #0
|
|
ff2a: d0dc beq.n fee6 <_lv_area_is_in+0x4a>
|
|
p.x = ain_p->x2;
|
|
ff2c: a901 add r1, sp, #4
|
|
ff2e: 4643 mov r3, r8
|
|
ff30: 800b strh r3, [r1, #0]
|
|
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
|
|
ff32: 0032 movs r2, r6
|
|
ff34: 0020 movs r0, r4
|
|
ff36: 4b01 ldr r3, [pc, #4] ; (ff3c <_lv_area_is_in+0xa0>)
|
|
ff38: 4798 blx r3
|
|
ff3a: e7d4 b.n fee6 <_lv_area_is_in+0x4a>
|
|
ff3c: 0000fcc9 .word 0x0000fcc9
|
|
|
|
0000ff40 <_lv_area_align>:
|
|
{
|
|
ff40: b530 push {r4, r5, lr}
|
|
switch(align) {
|
|
ff42: 2a14 cmp r2, #20
|
|
ff44: d827 bhi.n ff96 <_lv_area_align+0x56>
|
|
ff46: 0092 lsls r2, r2, #2
|
|
ff48: 4cb2 ldr r4, [pc, #712] ; (10214 <_lv_area_align+0x2d4>)
|
|
ff4a: 58a2 ldr r2, [r4, r2]
|
|
ff4c: 4697 mov pc, r2
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
ff4e: 8882 ldrh r2, [r0, #4]
|
|
ff50: 3201 adds r2, #1
|
|
ff52: 8804 ldrh r4, [r0, #0]
|
|
ff54: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
|
|
ff56: b212 sxth r2, r2
|
|
ff58: 0fd4 lsrs r4, r2, #31
|
|
ff5a: 18a4 adds r4, r4, r2
|
|
ff5c: 1064 asrs r4, r4, #1
|
|
ff5e: 888a ldrh r2, [r1, #4]
|
|
ff60: 3201 adds r2, #1
|
|
ff62: 880d ldrh r5, [r1, #0]
|
|
ff64: 1b52 subs r2, r2, r5
|
|
ff66: b212 sxth r2, r2
|
|
ff68: 0fd5 lsrs r5, r2, #31
|
|
ff6a: 18aa adds r2, r5, r2
|
|
ff6c: 1052 asrs r2, r2, #1
|
|
ff6e: 1aa2 subs r2, r4, r2
|
|
ff70: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
ff72: 88c2 ldrh r2, [r0, #6]
|
|
ff74: 3201 adds r2, #1
|
|
ff76: 8844 ldrh r4, [r0, #2]
|
|
ff78: 1b12 subs r2, r2, r4
|
|
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
|
|
ff7a: b212 sxth r2, r2
|
|
ff7c: 0fd4 lsrs r4, r2, #31
|
|
ff7e: 18a4 adds r4, r4, r2
|
|
ff80: 1064 asrs r4, r4, #1
|
|
ff82: 88ca ldrh r2, [r1, #6]
|
|
ff84: 3201 adds r2, #1
|
|
ff86: 8849 ldrh r1, [r1, #2]
|
|
ff88: 1a52 subs r2, r2, r1
|
|
ff8a: b212 sxth r2, r2
|
|
ff8c: 0fd1 lsrs r1, r2, #31
|
|
ff8e: 188a adds r2, r1, r2
|
|
ff90: 1052 asrs r2, r2, #1
|
|
ff92: 1aa2 subs r2, r4, r2
|
|
ff94: 805a strh r2, [r3, #2]
|
|
res->x += base->x1;
|
|
ff96: 881a ldrh r2, [r3, #0]
|
|
ff98: 8801 ldrh r1, [r0, #0]
|
|
ff9a: 1852 adds r2, r2, r1
|
|
ff9c: 801a strh r2, [r3, #0]
|
|
res->y += base->y1;
|
|
ff9e: 885a ldrh r2, [r3, #2]
|
|
ffa0: 8841 ldrh r1, [r0, #2]
|
|
ffa2: 1852 adds r2, r2, r1
|
|
ffa4: 805a strh r2, [r3, #2]
|
|
}
|
|
ffa6: bd30 pop {r4, r5, pc}
|
|
res->x = 0;
|
|
ffa8: 2200 movs r2, #0
|
|
ffaa: 801a strh r2, [r3, #0]
|
|
res->y = 0;
|
|
ffac: 805a strh r2, [r3, #2]
|
|
break;
|
|
ffae: e7f2 b.n ff96 <_lv_area_align+0x56>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
ffb0: 8882 ldrh r2, [r0, #4]
|
|
ffb2: 3201 adds r2, #1
|
|
ffb4: 8804 ldrh r4, [r0, #0]
|
|
ffb6: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
|
|
ffb8: b212 sxth r2, r2
|
|
ffba: 0fd4 lsrs r4, r2, #31
|
|
ffbc: 18a4 adds r4, r4, r2
|
|
ffbe: 1064 asrs r4, r4, #1
|
|
ffc0: 888a ldrh r2, [r1, #4]
|
|
ffc2: 3201 adds r2, #1
|
|
ffc4: 8809 ldrh r1, [r1, #0]
|
|
ffc6: 1a52 subs r2, r2, r1
|
|
ffc8: b212 sxth r2, r2
|
|
ffca: 0fd1 lsrs r1, r2, #31
|
|
ffcc: 188a adds r2, r1, r2
|
|
ffce: 1052 asrs r2, r2, #1
|
|
ffd0: 1aa2 subs r2, r4, r2
|
|
ffd2: 801a strh r2, [r3, #0]
|
|
res->y = 0;
|
|
ffd4: 2200 movs r2, #0
|
|
ffd6: 805a strh r2, [r3, #2]
|
|
break;
|
|
ffd8: e7dd b.n ff96 <_lv_area_align+0x56>
|
|
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
|
|
ffda: 8882 ldrh r2, [r0, #4]
|
|
ffdc: 888c ldrh r4, [r1, #4]
|
|
ffde: 1b12 subs r2, r2, r4
|
|
ffe0: 8804 ldrh r4, [r0, #0]
|
|
ffe2: 1b12 subs r2, r2, r4
|
|
ffe4: 8809 ldrh r1, [r1, #0]
|
|
ffe6: 1852 adds r2, r2, r1
|
|
ffe8: 801a strh r2, [r3, #0]
|
|
res->y = 0;
|
|
ffea: 2200 movs r2, #0
|
|
ffec: 805a strh r2, [r3, #2]
|
|
break;
|
|
ffee: e7d2 b.n ff96 <_lv_area_align+0x56>
|
|
res->x = 0;
|
|
fff0: 2200 movs r2, #0
|
|
fff2: 801a strh r2, [r3, #0]
|
|
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
|
|
fff4: 88c2 ldrh r2, [r0, #6]
|
|
fff6: 88cc ldrh r4, [r1, #6]
|
|
fff8: 1b12 subs r2, r2, r4
|
|
fffa: 8844 ldrh r4, [r0, #2]
|
|
fffc: 1b12 subs r2, r2, r4
|
|
fffe: 8849 ldrh r1, [r1, #2]
|
|
10000: 1852 adds r2, r2, r1
|
|
10002: 805a strh r2, [r3, #2]
|
|
break;
|
|
10004: e7c7 b.n ff96 <_lv_area_align+0x56>
|
|
10006: 8882 ldrh r2, [r0, #4]
|
|
10008: 3201 adds r2, #1
|
|
1000a: 8804 ldrh r4, [r0, #0]
|
|
1000c: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
|
|
1000e: b212 sxth r2, r2
|
|
10010: 0fd4 lsrs r4, r2, #31
|
|
10012: 18a4 adds r4, r4, r2
|
|
10014: 1064 asrs r4, r4, #1
|
|
10016: 888a ldrh r2, [r1, #4]
|
|
10018: 3201 adds r2, #1
|
|
1001a: 880d ldrh r5, [r1, #0]
|
|
1001c: 1b52 subs r2, r2, r5
|
|
1001e: b212 sxth r2, r2
|
|
10020: 0fd5 lsrs r5, r2, #31
|
|
10022: 18aa adds r2, r5, r2
|
|
10024: 1052 asrs r2, r2, #1
|
|
10026: 1aa2 subs r2, r4, r2
|
|
10028: 801a strh r2, [r3, #0]
|
|
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
|
|
1002a: 88c2 ldrh r2, [r0, #6]
|
|
1002c: 88cc ldrh r4, [r1, #6]
|
|
1002e: 1b12 subs r2, r2, r4
|
|
10030: 8844 ldrh r4, [r0, #2]
|
|
10032: 1b12 subs r2, r2, r4
|
|
10034: 8849 ldrh r1, [r1, #2]
|
|
10036: 1852 adds r2, r2, r1
|
|
10038: 805a strh r2, [r3, #2]
|
|
break;
|
|
1003a: e7ac b.n ff96 <_lv_area_align+0x56>
|
|
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
|
|
1003c: 8882 ldrh r2, [r0, #4]
|
|
1003e: 888c ldrh r4, [r1, #4]
|
|
10040: 1b12 subs r2, r2, r4
|
|
10042: 8804 ldrh r4, [r0, #0]
|
|
10044: 1b12 subs r2, r2, r4
|
|
10046: 880c ldrh r4, [r1, #0]
|
|
10048: 1912 adds r2, r2, r4
|
|
1004a: 801a strh r2, [r3, #0]
|
|
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
|
|
1004c: 88c2 ldrh r2, [r0, #6]
|
|
1004e: 88cc ldrh r4, [r1, #6]
|
|
10050: 1b12 subs r2, r2, r4
|
|
10052: 8844 ldrh r4, [r0, #2]
|
|
10054: 1b12 subs r2, r2, r4
|
|
10056: 8849 ldrh r1, [r1, #2]
|
|
10058: 1852 adds r2, r2, r1
|
|
1005a: 805a strh r2, [r3, #2]
|
|
break;
|
|
1005c: e79b b.n ff96 <_lv_area_align+0x56>
|
|
res->x = 0;
|
|
1005e: 2200 movs r2, #0
|
|
10060: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
10062: 88c2 ldrh r2, [r0, #6]
|
|
10064: 3201 adds r2, #1
|
|
10066: 8844 ldrh r4, [r0, #2]
|
|
10068: 1b12 subs r2, r2, r4
|
|
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
|
|
1006a: b212 sxth r2, r2
|
|
1006c: 0fd4 lsrs r4, r2, #31
|
|
1006e: 18a4 adds r4, r4, r2
|
|
10070: 1064 asrs r4, r4, #1
|
|
10072: 88ca ldrh r2, [r1, #6]
|
|
10074: 3201 adds r2, #1
|
|
10076: 8849 ldrh r1, [r1, #2]
|
|
10078: 1a52 subs r2, r2, r1
|
|
1007a: b212 sxth r2, r2
|
|
1007c: 0fd1 lsrs r1, r2, #31
|
|
1007e: 188a adds r2, r1, r2
|
|
10080: 1052 asrs r2, r2, #1
|
|
10082: 1aa2 subs r2, r4, r2
|
|
10084: 805a strh r2, [r3, #2]
|
|
break;
|
|
10086: e786 b.n ff96 <_lv_area_align+0x56>
|
|
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
|
|
10088: 8882 ldrh r2, [r0, #4]
|
|
1008a: 888c ldrh r4, [r1, #4]
|
|
1008c: 1b12 subs r2, r2, r4
|
|
1008e: 8804 ldrh r4, [r0, #0]
|
|
10090: 1b12 subs r2, r2, r4
|
|
10092: 880c ldrh r4, [r1, #0]
|
|
10094: 1912 adds r2, r2, r4
|
|
10096: 801a strh r2, [r3, #0]
|
|
10098: 88c2 ldrh r2, [r0, #6]
|
|
1009a: 3201 adds r2, #1
|
|
1009c: 8844 ldrh r4, [r0, #2]
|
|
1009e: 1b12 subs r2, r2, r4
|
|
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
|
|
100a0: b212 sxth r2, r2
|
|
100a2: 0fd4 lsrs r4, r2, #31
|
|
100a4: 18a4 adds r4, r4, r2
|
|
100a6: 1064 asrs r4, r4, #1
|
|
100a8: 88ca ldrh r2, [r1, #6]
|
|
100aa: 3201 adds r2, #1
|
|
100ac: 8849 ldrh r1, [r1, #2]
|
|
100ae: 1a52 subs r2, r2, r1
|
|
100b0: b212 sxth r2, r2
|
|
100b2: 0fd1 lsrs r1, r2, #31
|
|
100b4: 188a adds r2, r1, r2
|
|
100b6: 1052 asrs r2, r2, #1
|
|
100b8: 1aa2 subs r2, r4, r2
|
|
100ba: 805a strh r2, [r3, #2]
|
|
break;
|
|
100bc: e76b b.n ff96 <_lv_area_align+0x56>
|
|
res->x = 0;
|
|
100be: 2200 movs r2, #0
|
|
100c0: 801a strh r2, [r3, #0]
|
|
100c2: 88ca ldrh r2, [r1, #6]
|
|
100c4: 8849 ldrh r1, [r1, #2]
|
|
100c6: 1a52 subs r2, r2, r1
|
|
res->y = -lv_area_get_height(to_align);
|
|
100c8: 43d2 mvns r2, r2
|
|
100ca: 805a strh r2, [r3, #2]
|
|
break;
|
|
100cc: e763 b.n ff96 <_lv_area_align+0x56>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
100ce: 8882 ldrh r2, [r0, #4]
|
|
100d0: 3201 adds r2, #1
|
|
100d2: 8804 ldrh r4, [r0, #0]
|
|
100d4: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
|
|
100d6: b212 sxth r2, r2
|
|
100d8: 0fd4 lsrs r4, r2, #31
|
|
100da: 18a4 adds r4, r4, r2
|
|
100dc: 1064 asrs r4, r4, #1
|
|
100de: 888a ldrh r2, [r1, #4]
|
|
100e0: 3201 adds r2, #1
|
|
100e2: 880d ldrh r5, [r1, #0]
|
|
100e4: 1b52 subs r2, r2, r5
|
|
100e6: b212 sxth r2, r2
|
|
100e8: 0fd5 lsrs r5, r2, #31
|
|
100ea: 18aa adds r2, r5, r2
|
|
100ec: 1052 asrs r2, r2, #1
|
|
100ee: 1aa2 subs r2, r4, r2
|
|
100f0: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
100f2: 88ca ldrh r2, [r1, #6]
|
|
100f4: 8849 ldrh r1, [r1, #2]
|
|
100f6: 1a52 subs r2, r2, r1
|
|
res->y = -lv_area_get_height(to_align);
|
|
100f8: 43d2 mvns r2, r2
|
|
100fa: 805a strh r2, [r3, #2]
|
|
break;
|
|
100fc: e74b b.n ff96 <_lv_area_align+0x56>
|
|
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
|
|
100fe: 8882 ldrh r2, [r0, #4]
|
|
10100: 888c ldrh r4, [r1, #4]
|
|
10102: 1b12 subs r2, r2, r4
|
|
10104: 8804 ldrh r4, [r0, #0]
|
|
10106: 1b12 subs r2, r2, r4
|
|
10108: 880c ldrh r4, [r1, #0]
|
|
1010a: 1912 adds r2, r2, r4
|
|
1010c: 801a strh r2, [r3, #0]
|
|
1010e: 88ca ldrh r2, [r1, #6]
|
|
10110: 8849 ldrh r1, [r1, #2]
|
|
10112: 1a52 subs r2, r2, r1
|
|
res->y = -lv_area_get_height(to_align);
|
|
10114: 43d2 mvns r2, r2
|
|
10116: 805a strh r2, [r3, #2]
|
|
break;
|
|
10118: e73d b.n ff96 <_lv_area_align+0x56>
|
|
res->x = 0;
|
|
1011a: 2200 movs r2, #0
|
|
1011c: 801a strh r2, [r3, #0]
|
|
1011e: 88c2 ldrh r2, [r0, #6]
|
|
10120: 3201 adds r2, #1
|
|
10122: 8841 ldrh r1, [r0, #2]
|
|
10124: 1a52 subs r2, r2, r1
|
|
res->y = lv_area_get_height(base);
|
|
10126: 805a strh r2, [r3, #2]
|
|
break;
|
|
10128: e735 b.n ff96 <_lv_area_align+0x56>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
1012a: 8882 ldrh r2, [r0, #4]
|
|
1012c: 3201 adds r2, #1
|
|
1012e: 8804 ldrh r4, [r0, #0]
|
|
10130: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
|
|
10132: b212 sxth r2, r2
|
|
10134: 0fd4 lsrs r4, r2, #31
|
|
10136: 18a4 adds r4, r4, r2
|
|
10138: 1064 asrs r4, r4, #1
|
|
1013a: 888a ldrh r2, [r1, #4]
|
|
1013c: 3201 adds r2, #1
|
|
1013e: 8809 ldrh r1, [r1, #0]
|
|
10140: 1a52 subs r2, r2, r1
|
|
10142: b212 sxth r2, r2
|
|
10144: 0fd1 lsrs r1, r2, #31
|
|
10146: 188a adds r2, r1, r2
|
|
10148: 1052 asrs r2, r2, #1
|
|
1014a: 1aa2 subs r2, r4, r2
|
|
1014c: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
1014e: 88c2 ldrh r2, [r0, #6]
|
|
10150: 3201 adds r2, #1
|
|
10152: 8841 ldrh r1, [r0, #2]
|
|
10154: 1a52 subs r2, r2, r1
|
|
res->y = lv_area_get_height(base);
|
|
10156: 805a strh r2, [r3, #2]
|
|
break;
|
|
10158: e71d b.n ff96 <_lv_area_align+0x56>
|
|
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
|
|
1015a: 8882 ldrh r2, [r0, #4]
|
|
1015c: 888c ldrh r4, [r1, #4]
|
|
1015e: 1b12 subs r2, r2, r4
|
|
10160: 8804 ldrh r4, [r0, #0]
|
|
10162: 1b12 subs r2, r2, r4
|
|
10164: 8809 ldrh r1, [r1, #0]
|
|
10166: 1852 adds r2, r2, r1
|
|
10168: 801a strh r2, [r3, #0]
|
|
1016a: 88c2 ldrh r2, [r0, #6]
|
|
1016c: 3201 adds r2, #1
|
|
1016e: 8841 ldrh r1, [r0, #2]
|
|
10170: 1a52 subs r2, r2, r1
|
|
res->y = lv_area_get_height(base);
|
|
10172: 805a strh r2, [r3, #2]
|
|
break;
|
|
10174: e70f b.n ff96 <_lv_area_align+0x56>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
10176: 888a ldrh r2, [r1, #4]
|
|
10178: 8809 ldrh r1, [r1, #0]
|
|
1017a: 1a52 subs r2, r2, r1
|
|
res->x = -lv_area_get_width(to_align);
|
|
1017c: 43d2 mvns r2, r2
|
|
1017e: 801a strh r2, [r3, #0]
|
|
res->y = 0;
|
|
10180: 2200 movs r2, #0
|
|
10182: 805a strh r2, [r3, #2]
|
|
break;
|
|
10184: e707 b.n ff96 <_lv_area_align+0x56>
|
|
10186: 888a ldrh r2, [r1, #4]
|
|
10188: 880c ldrh r4, [r1, #0]
|
|
1018a: 1b12 subs r2, r2, r4
|
|
res->x = -lv_area_get_width(to_align);
|
|
1018c: 43d2 mvns r2, r2
|
|
1018e: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
10190: 88c2 ldrh r2, [r0, #6]
|
|
10192: 3201 adds r2, #1
|
|
10194: 8844 ldrh r4, [r0, #2]
|
|
10196: 1b12 subs r2, r2, r4
|
|
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
|
|
10198: b212 sxth r2, r2
|
|
1019a: 0fd4 lsrs r4, r2, #31
|
|
1019c: 18a4 adds r4, r4, r2
|
|
1019e: 1064 asrs r4, r4, #1
|
|
101a0: 88ca ldrh r2, [r1, #6]
|
|
101a2: 3201 adds r2, #1
|
|
101a4: 8849 ldrh r1, [r1, #2]
|
|
101a6: 1a52 subs r2, r2, r1
|
|
101a8: b212 sxth r2, r2
|
|
101aa: 0fd1 lsrs r1, r2, #31
|
|
101ac: 188a adds r2, r1, r2
|
|
101ae: 1052 asrs r2, r2, #1
|
|
101b0: 1aa2 subs r2, r4, r2
|
|
101b2: 805a strh r2, [r3, #2]
|
|
break;
|
|
101b4: e6ef b.n ff96 <_lv_area_align+0x56>
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
101b6: 888a ldrh r2, [r1, #4]
|
|
101b8: 880c ldrh r4, [r1, #0]
|
|
101ba: 1b12 subs r2, r2, r4
|
|
res->x = -lv_area_get_width(to_align);
|
|
101bc: 43d2 mvns r2, r2
|
|
101be: 801a strh r2, [r3, #0]
|
|
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
|
|
101c0: 88c2 ldrh r2, [r0, #6]
|
|
101c2: 88cc ldrh r4, [r1, #6]
|
|
101c4: 1b12 subs r2, r2, r4
|
|
101c6: 8844 ldrh r4, [r0, #2]
|
|
101c8: 1b12 subs r2, r2, r4
|
|
101ca: 8849 ldrh r1, [r1, #2]
|
|
101cc: 1852 adds r2, r2, r1
|
|
101ce: 805a strh r2, [r3, #2]
|
|
break;
|
|
101d0: e6e1 b.n ff96 <_lv_area_align+0x56>
|
|
101d2: 8882 ldrh r2, [r0, #4]
|
|
101d4: 3201 adds r2, #1
|
|
101d6: 8801 ldrh r1, [r0, #0]
|
|
101d8: 1a52 subs r2, r2, r1
|
|
res->x = lv_area_get_width(base);
|
|
101da: 801a strh r2, [r3, #0]
|
|
res->y = 0;
|
|
101dc: 2200 movs r2, #0
|
|
101de: 805a strh r2, [r3, #2]
|
|
break;
|
|
101e0: e6d9 b.n ff96 <_lv_area_align+0x56>
|
|
101e2: 8882 ldrh r2, [r0, #4]
|
|
101e4: 3201 adds r2, #1
|
|
101e6: 8804 ldrh r4, [r0, #0]
|
|
101e8: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base);
|
|
101ea: 801a strh r2, [r3, #0]
|
|
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
|
|
101ec: 88c2 ldrh r2, [r0, #6]
|
|
101ee: 3201 adds r2, #1
|
|
101f0: 8844 ldrh r4, [r0, #2]
|
|
101f2: 1b12 subs r2, r2, r4
|
|
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
|
|
101f4: b212 sxth r2, r2
|
|
101f6: 0fd4 lsrs r4, r2, #31
|
|
101f8: 18a4 adds r4, r4, r2
|
|
101fa: 1064 asrs r4, r4, #1
|
|
101fc: 88ca ldrh r2, [r1, #6]
|
|
101fe: 3201 adds r2, #1
|
|
10200: 8849 ldrh r1, [r1, #2]
|
|
10202: 1a52 subs r2, r2, r1
|
|
10204: b212 sxth r2, r2
|
|
10206: 0fd1 lsrs r1, r2, #31
|
|
10208: 188a adds r2, r1, r2
|
|
1020a: 1052 asrs r2, r2, #1
|
|
1020c: 1aa2 subs r2, r4, r2
|
|
1020e: 805a strh r2, [r3, #2]
|
|
break;
|
|
10210: e6c1 b.n ff96 <_lv_area_align+0x56>
|
|
10212: 46c0 nop ; (mov r8, r8)
|
|
10214: 0001c770 .word 0x0001c770
|
|
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
|
|
10218: 8882 ldrh r2, [r0, #4]
|
|
1021a: 3201 adds r2, #1
|
|
1021c: 8804 ldrh r4, [r0, #0]
|
|
1021e: 1b12 subs r2, r2, r4
|
|
res->x = lv_area_get_width(base);
|
|
10220: 801a strh r2, [r3, #0]
|
|
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
|
|
10222: 88c2 ldrh r2, [r0, #6]
|
|
10224: 88cc ldrh r4, [r1, #6]
|
|
10226: 1b12 subs r2, r2, r4
|
|
10228: 8844 ldrh r4, [r0, #2]
|
|
1022a: 1b12 subs r2, r2, r4
|
|
1022c: 8849 ldrh r1, [r1, #2]
|
|
1022e: 1852 adds r2, r2, r1
|
|
10230: 805a strh r2, [r3, #2]
|
|
break;
|
|
10232: e6b0 b.n ff96 <_lv_area_align+0x56>
|
|
|
|
00010234 <lv_color_fill>:
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num)
|
|
{
|
|
10234: b530 push {r4, r5, lr}
|
|
10236: b28d uxth r5, r1
|
|
#if LV_COLOR_DEPTH == 16
|
|
uintptr_t buf_int = (uintptr_t) buf;
|
|
if(buf_int & 0x3) {
|
|
10238: 0783 lsls r3, r0, #30
|
|
1023a: d002 beq.n 10242 <lv_color_fill+0xe>
|
|
*buf = color;
|
|
1023c: 8001 strh r1, [r0, #0]
|
|
buf++;
|
|
1023e: 3002 adds r0, #2
|
|
px_num--;
|
|
10240: 3a01 subs r2, #1
|
|
}
|
|
|
|
uint32_t c32 = color.full + (color.full << 16);
|
|
10242: 0429 lsls r1, r5, #16
|
|
10244: 1949 adds r1, r1, r5
|
|
uint32_t * buf32 = (uint32_t *)buf;
|
|
|
|
while(px_num > 16) {
|
|
10246: 2a10 cmp r2, #16
|
|
10248: d916 bls.n 10278 <lv_color_fill+0x44>
|
|
1024a: 0003 movs r3, r0
|
|
1024c: 0014 movs r4, r2
|
|
*buf32 = c32;
|
|
1024e: 6019 str r1, [r3, #0]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
10250: 6059 str r1, [r3, #4]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
10252: 6099 str r1, [r3, #8]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
10254: 60d9 str r1, [r3, #12]
|
|
buf32++;
|
|
|
|
*buf32 = c32;
|
|
10256: 6119 str r1, [r3, #16]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
10258: 6159 str r1, [r3, #20]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
1025a: 6199 str r1, [r3, #24]
|
|
buf32++;
|
|
*buf32 = c32;
|
|
1025c: 61d9 str r1, [r3, #28]
|
|
1025e: 3320 adds r3, #32
|
|
buf32++;
|
|
|
|
px_num -= 16;
|
|
10260: 3c10 subs r4, #16
|
|
while(px_num > 16) {
|
|
10262: 2c10 cmp r4, #16
|
|
10264: d8f3 bhi.n 1024e <lv_color_fill+0x1a>
|
|
10266: 0011 movs r1, r2
|
|
10268: 3911 subs r1, #17
|
|
1026a: 0909 lsrs r1, r1, #4
|
|
1026c: 1c4c adds r4, r1, #1
|
|
1026e: 0164 lsls r4, r4, #5
|
|
10270: 3a10 subs r2, #16
|
|
10272: 0109 lsls r1, r1, #4
|
|
10274: 1a52 subs r2, r2, r1
|
|
buf32++;
|
|
10276: 1900 adds r0, r0, r4
|
|
}
|
|
|
|
buf = (lv_color_t *)buf32;
|
|
|
|
while(px_num) {
|
|
10278: 2a00 cmp r2, #0
|
|
1027a: d004 beq.n 10286 <lv_color_fill+0x52>
|
|
*buf = color;
|
|
1027c: 8005 strh r5, [r0, #0]
|
|
buf++;
|
|
1027e: 3002 adds r0, #2
|
|
px_num --;
|
|
10280: 3a01 subs r2, #1
|
|
while(px_num) {
|
|
10282: 2a00 cmp r2, #0
|
|
10284: d1fa bne.n 1027c <lv_color_fill+0x48>
|
|
*buf = color;
|
|
buf++;
|
|
px_num --;
|
|
}
|
|
#endif
|
|
}
|
|
10286: bd30 pop {r4, r5, pc}
|
|
|
|
00010288 <lv_color_lighten>:
|
|
|
|
|
|
lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)
|
|
{
|
|
10288: b570 push {r4, r5, r6, lr}
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
|
|
{
|
|
lv_color_t ret;
|
|
#if LV_COLOR_DEPTH != 1
|
|
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
1028a: 014a lsls r2, r1, #5
|
|
1028c: 1a52 subs r2, r2, r1
|
|
1028e: 24ff movs r4, #255 ; 0xff
|
|
10290: 1a64 subs r4, r4, r1
|
|
10292: 0403 lsls r3, r0, #16
|
|
10294: 0edb lsrs r3, r3, #27
|
|
10296: 4363 muls r3, r4
|
|
10298: 189d adds r5, r3, r2
|
|
1029a: 022b lsls r3, r5, #8
|
|
1029c: 195b adds r3, r3, r5
|
|
1029e: 01db lsls r3, r3, #7
|
|
102a0: 195b adds r3, r3, r5
|
|
102a2: 011b lsls r3, r3, #4
|
|
102a4: 0edb lsrs r3, r3, #27
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
102a6: 0545 lsls r5, r0, #21
|
|
102a8: 0ead lsrs r5, r5, #26
|
|
102aa: 4365 muls r5, r4
|
|
102ac: 018e lsls r6, r1, #6
|
|
102ae: 1a71 subs r1, r6, r1
|
|
102b0: 186d adds r5, r5, r1
|
|
102b2: 0229 lsls r1, r5, #8
|
|
102b4: 1949 adds r1, r1, r5
|
|
102b6: 01c9 lsls r1, r1, #7
|
|
102b8: 1949 adds r1, r1, r5
|
|
102ba: 00c9 lsls r1, r1, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
102bc: 06c0 lsls r0, r0, #27
|
|
102be: 0ec0 lsrs r0, r0, #27
|
|
102c0: 4360 muls r0, r4
|
|
102c2: 1882 adds r2, r0, r2
|
|
102c4: 0210 lsls r0, r2, #8
|
|
102c6: 1880 adds r0, r0, r2
|
|
102c8: 01c0 lsls r0, r0, #7
|
|
102ca: 1880 adds r0, r0, r2
|
|
102cc: 0100 lsls r0, r0, #4
|
|
102ce: 0e89 lsrs r1, r1, #26
|
|
102d0: 0149 lsls r1, r1, #5
|
|
102d2: 0ec0 lsrs r0, r0, #27
|
|
102d4: 02db lsls r3, r3, #11
|
|
102d6: 4308 orrs r0, r1
|
|
102d8: 4318 orrs r0, r3
|
|
return lv_color_mix(LV_COLOR_WHITE, c, lvl);
|
|
}
|
|
102da: bd70 pop {r4, r5, r6, pc}
|
|
|
|
000102dc <lv_color_darken>:
|
|
|
|
|
|
lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)
|
|
{
|
|
102dc: b510 push {r4, lr}
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
102de: 23ff movs r3, #255 ; 0xff
|
|
102e0: 1a59 subs r1, r3, r1
|
|
102e2: 0403 lsls r3, r0, #16
|
|
102e4: 0edb lsrs r3, r3, #27
|
|
102e6: 434b muls r3, r1
|
|
102e8: 001a movs r2, r3
|
|
102ea: 021b lsls r3, r3, #8
|
|
102ec: 189b adds r3, r3, r2
|
|
102ee: 01db lsls r3, r3, #7
|
|
102f0: 189b adds r3, r3, r2
|
|
102f2: 011b lsls r3, r3, #4
|
|
102f4: 0edb lsrs r3, r3, #27
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
102f6: 0542 lsls r2, r0, #21
|
|
102f8: 0e92 lsrs r2, r2, #26
|
|
102fa: 434a muls r2, r1
|
|
102fc: 0014 movs r4, r2
|
|
102fe: 0212 lsls r2, r2, #8
|
|
10300: 1912 adds r2, r2, r4
|
|
10302: 01d2 lsls r2, r2, #7
|
|
10304: 1912 adds r2, r2, r4
|
|
10306: 00d2 lsls r2, r2, #3
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
10308: 06c0 lsls r0, r0, #27
|
|
1030a: 0ec0 lsrs r0, r0, #27
|
|
1030c: 4341 muls r1, r0
|
|
1030e: 0208 lsls r0, r1, #8
|
|
10310: 1840 adds r0, r0, r1
|
|
10312: 01c0 lsls r0, r0, #7
|
|
10314: 1840 adds r0, r0, r1
|
|
10316: 0100 lsls r0, r0, #4
|
|
10318: 0e92 lsrs r2, r2, #26
|
|
1031a: 0152 lsls r2, r2, #5
|
|
1031c: 0ec0 lsrs r0, r0, #27
|
|
1031e: 02db lsls r3, r3, #11
|
|
10320: 4310 orrs r0, r2
|
|
10322: 4318 orrs r0, r3
|
|
return lv_color_mix(LV_COLOR_BLACK, c, lvl);
|
|
}
|
|
10324: bd10 pop {r4, pc}
|
|
|
|
00010326 <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*/
|
|
10326: 1c42 adds r2, r0, #1
|
|
|
|
while(*path != '\0') {
|
|
10328: 7843 ldrb r3, [r0, #1]
|
|
1032a: 2b00 cmp r3, #0
|
|
1032c: d104 bne.n 10338 <lv_fs_get_real_path+0x12>
|
|
1032e: e009 b.n 10344 <lv_fs_get_real_path+0x1e>
|
|
if(*path == ':' || *path == '\\' || *path == '/') {
|
|
path++;
|
|
10330: 3201 adds r2, #1
|
|
while(*path != '\0') {
|
|
10332: 7813 ldrb r3, [r2, #0]
|
|
10334: 2b00 cmp r3, #0
|
|
10336: d005 beq.n 10344 <lv_fs_get_real_path+0x1e>
|
|
if(*path == ':' || *path == '\\' || *path == '/') {
|
|
10338: 2b3a cmp r3, #58 ; 0x3a
|
|
1033a: d0f9 beq.n 10330 <lv_fs_get_real_path+0xa>
|
|
1033c: 2b5c cmp r3, #92 ; 0x5c
|
|
1033e: d0f7 beq.n 10330 <lv_fs_get_real_path+0xa>
|
|
10340: 2b2f cmp r3, #47 ; 0x2f
|
|
10342: d0f5 beq.n 10330 <lv_fs_get_real_path+0xa>
|
|
break;
|
|
}
|
|
}
|
|
|
|
return path;
|
|
}
|
|
10344: 0010 movs r0, r2
|
|
10346: 4770 bx lr
|
|
|
|
00010348 <_lv_fs_init>:
|
|
{
|
|
10348: b510 push {r4, lr}
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t));
|
|
1034a: 2144 movs r1, #68 ; 0x44
|
|
1034c: 4801 ldr r0, [pc, #4] ; (10354 <_lv_fs_init+0xc>)
|
|
1034e: 4b02 ldr r3, [pc, #8] ; (10358 <_lv_fs_init+0x10>)
|
|
10350: 4798 blx r3
|
|
}
|
|
10352: bd10 pop {r4, pc}
|
|
10354: 20004d5c .word 0x20004d5c
|
|
10358: 000105b9 .word 0x000105b9
|
|
|
|
0001035c <lv_fs_close>:
|
|
{
|
|
1035c: b570 push {r4, r5, r6, lr}
|
|
1035e: 0004 movs r4, r0
|
|
if(file_p->drv == NULL) {
|
|
10360: 6840 ldr r0, [r0, #4]
|
|
10362: 2800 cmp r0, #0
|
|
10364: d00e beq.n 10384 <lv_fs_close+0x28>
|
|
if(file_p->drv->close_cb == NULL) {
|
|
10366: 6903 ldr r3, [r0, #16]
|
|
return LV_FS_RES_NOT_IMP;
|
|
10368: 2509 movs r5, #9
|
|
if(file_p->drv->close_cb == NULL) {
|
|
1036a: 2b00 cmp r3, #0
|
|
1036c: d008 beq.n 10380 <lv_fs_close+0x24>
|
|
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
|
|
1036e: 6821 ldr r1, [r4, #0]
|
|
10370: 4798 blx r3
|
|
10372: 0005 movs r5, r0
|
|
lv_mem_free(file_p->file_d); /*Clean up*/
|
|
10374: 6820 ldr r0, [r4, #0]
|
|
10376: 4b04 ldr r3, [pc, #16] ; (10388 <lv_fs_close+0x2c>)
|
|
10378: 4798 blx r3
|
|
file_p->file_d = NULL;
|
|
1037a: 2300 movs r3, #0
|
|
1037c: 6023 str r3, [r4, #0]
|
|
file_p->drv = NULL;
|
|
1037e: 6063 str r3, [r4, #4]
|
|
}
|
|
10380: 0028 movs r0, r5
|
|
10382: bd70 pop {r4, r5, r6, pc}
|
|
return LV_FS_RES_INV_PARAM;
|
|
10384: 250b movs r5, #11
|
|
10386: e7fb b.n 10380 <lv_fs_close+0x24>
|
|
10388: 00010b39 .word 0x00010b39
|
|
|
|
0001038c <lv_fs_read>:
|
|
{
|
|
1038c: b570 push {r4, r5, r6, lr}
|
|
1038e: b084 sub sp, #16
|
|
10390: 1e1c subs r4, r3, #0
|
|
if(br != NULL) *br = 0;
|
|
10392: d001 beq.n 10398 <lv_fs_read+0xc>
|
|
10394: 2300 movs r3, #0
|
|
10396: 6023 str r3, [r4, #0]
|
|
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
|
|
10398: 6845 ldr r5, [r0, #4]
|
|
1039a: 2d00 cmp r5, #0
|
|
1039c: d015 beq.n 103ca <lv_fs_read+0x3e>
|
|
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
|
|
1039e: 69ae ldr r6, [r5, #24]
|
|
103a0: 2309 movs r3, #9
|
|
103a2: 2e00 cmp r6, #0
|
|
103a4: d00e beq.n 103c4 <lv_fs_read+0x38>
|
|
uint32_t br_tmp = 0;
|
|
103a6: 2300 movs r3, #0
|
|
103a8: 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);
|
|
103aa: 6800 ldr r0, [r0, #0]
|
|
103ac: ab03 add r3, sp, #12
|
|
103ae: 9300 str r3, [sp, #0]
|
|
103b0: 0013 movs r3, r2
|
|
103b2: 000a movs r2, r1
|
|
103b4: 0001 movs r1, r0
|
|
103b6: 0028 movs r0, r5
|
|
103b8: 47b0 blx r6
|
|
103ba: 0003 movs r3, r0
|
|
if(br != NULL) *br = br_tmp;
|
|
103bc: 2c00 cmp r4, #0
|
|
103be: d001 beq.n 103c4 <lv_fs_read+0x38>
|
|
103c0: 9a03 ldr r2, [sp, #12]
|
|
103c2: 6022 str r2, [r4, #0]
|
|
}
|
|
103c4: 0018 movs r0, r3
|
|
103c6: b004 add sp, #16
|
|
103c8: bd70 pop {r4, r5, r6, pc}
|
|
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
|
|
103ca: 230b movs r3, #11
|
|
103cc: e7fa b.n 103c4 <lv_fs_read+0x38>
|
|
|
|
000103ce <lv_fs_seek>:
|
|
{
|
|
103ce: b570 push {r4, r5, r6, lr}
|
|
103d0: 000a movs r2, r1
|
|
if(file_p->drv == NULL) {
|
|
103d2: 6844 ldr r4, [r0, #4]
|
|
103d4: 2c00 cmp r4, #0
|
|
103d6: d009 beq.n 103ec <lv_fs_seek+0x1e>
|
|
if(file_p->drv->seek_cb == NULL) {
|
|
103d8: 6a25 ldr r5, [r4, #32]
|
|
return LV_FS_RES_NOT_IMP;
|
|
103da: 2309 movs r3, #9
|
|
if(file_p->drv->seek_cb == NULL) {
|
|
103dc: 2d00 cmp r5, #0
|
|
103de: d003 beq.n 103e8 <lv_fs_seek+0x1a>
|
|
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
|
|
103e0: 6801 ldr r1, [r0, #0]
|
|
103e2: 0020 movs r0, r4
|
|
103e4: 47a8 blx r5
|
|
103e6: 0003 movs r3, r0
|
|
}
|
|
103e8: 0018 movs r0, r3
|
|
103ea: bd70 pop {r4, r5, r6, pc}
|
|
return LV_FS_RES_INV_PARAM;
|
|
103ec: 230b movs r3, #11
|
|
103ee: e7fb b.n 103e8 <lv_fs_seek+0x1a>
|
|
|
|
000103f0 <lv_fs_get_drv>:
|
|
{
|
|
103f0: b570 push {r4, r5, r6, lr}
|
|
103f2: 0004 movs r4, r0
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
|
|
103f4: 4809 ldr r0, [pc, #36] ; (1041c <lv_fs_get_drv+0x2c>)
|
|
103f6: 4b0a ldr r3, [pc, #40] ; (10420 <lv_fs_get_drv+0x30>)
|
|
103f8: 4798 blx r3
|
|
103fa: 2800 cmp r0, #0
|
|
103fc: d00c beq.n 10418 <lv_fs_get_drv+0x28>
|
|
if(drv->letter == letter) {
|
|
103fe: 7803 ldrb r3, [r0, #0]
|
|
10400: 42a3 cmp r3, r4
|
|
10402: d009 beq.n 10418 <lv_fs_get_drv+0x28>
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
|
|
10404: 4d05 ldr r5, [pc, #20] ; (1041c <lv_fs_get_drv+0x2c>)
|
|
10406: 4e07 ldr r6, [pc, #28] ; (10424 <lv_fs_get_drv+0x34>)
|
|
10408: 0001 movs r1, r0
|
|
1040a: 0028 movs r0, r5
|
|
1040c: 47b0 blx r6
|
|
1040e: 2800 cmp r0, #0
|
|
10410: d002 beq.n 10418 <lv_fs_get_drv+0x28>
|
|
if(drv->letter == letter) {
|
|
10412: 7803 ldrb r3, [r0, #0]
|
|
10414: 42a3 cmp r3, r4
|
|
10416: d1f7 bne.n 10408 <lv_fs_get_drv+0x18>
|
|
}
|
|
10418: bd70 pop {r4, r5, r6, pc}
|
|
1041a: 46c0 nop ; (mov r8, r8)
|
|
1041c: 20004d5c .word 0x20004d5c
|
|
10420: 0001066d .word 0x0001066d
|
|
10424: 00010685 .word 0x00010685
|
|
|
|
00010428 <lv_fs_open>:
|
|
{
|
|
10428: b5f0 push {r4, r5, r6, r7, lr}
|
|
1042a: 46d6 mov lr, sl
|
|
1042c: 464f mov r7, r9
|
|
1042e: b580 push {r7, lr}
|
|
10430: b083 sub sp, #12
|
|
10432: 0004 movs r4, r0
|
|
10434: 000f movs r7, r1
|
|
10436: 9201 str r2, [sp, #4]
|
|
file_p->drv = NULL;
|
|
10438: 2300 movs r3, #0
|
|
1043a: 6043 str r3, [r0, #4]
|
|
file_p->file_d = NULL;
|
|
1043c: 6003 str r3, [r0, #0]
|
|
if(path == NULL) return LV_FS_RES_INV_PARAM;
|
|
1043e: 2900 cmp r1, #0
|
|
10440: d041 beq.n 104c6 <lv_fs_open+0x9e>
|
|
file_p->drv = lv_fs_get_drv(letter);
|
|
10442: 7808 ldrb r0, [r1, #0]
|
|
10444: 4b23 ldr r3, [pc, #140] ; (104d4 <lv_fs_open+0xac>)
|
|
10446: 4798 blx r3
|
|
10448: 6060 str r0, [r4, #4]
|
|
if(file_p->drv == NULL) {
|
|
1044a: 2800 cmp r0, #0
|
|
1044c: d00a beq.n 10464 <lv_fs_open+0x3c>
|
|
if(file_p->drv->ready_cb != NULL) {
|
|
1044e: 6883 ldr r3, [r0, #8]
|
|
10450: 2b00 cmp r3, #0
|
|
10452: d00b beq.n 1046c <lv_fs_open+0x44>
|
|
if(file_p->drv->ready_cb(file_p->drv) == false) {
|
|
10454: 4798 blx r3
|
|
10456: 2800 cmp r0, #0
|
|
10458: d108 bne.n 1046c <lv_fs_open+0x44>
|
|
file_p->drv = NULL;
|
|
1045a: 2300 movs r3, #0
|
|
1045c: 6063 str r3, [r4, #4]
|
|
file_p->file_d = NULL;
|
|
1045e: 6023 str r3, [r4, #0]
|
|
return LV_FS_RES_HW_ERR;
|
|
10460: 2501 movs r5, #1
|
|
10462: e031 b.n 104c8 <lv_fs_open+0xa0>
|
|
file_p->file_d = NULL;
|
|
10464: 2300 movs r3, #0
|
|
10466: 6023 str r3, [r4, #0]
|
|
return LV_FS_RES_NOT_EX;
|
|
10468: 2503 movs r5, #3
|
|
1046a: e02d b.n 104c8 <lv_fs_open+0xa0>
|
|
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
|
|
1046c: 6863 ldr r3, [r4, #4]
|
|
1046e: 8858 ldrh r0, [r3, #2]
|
|
10470: 4b19 ldr r3, [pc, #100] ; (104d8 <lv_fs_open+0xb0>)
|
|
10472: 4798 blx r3
|
|
10474: 6020 str r0, [r4, #0]
|
|
LV_ASSERT_MEM(file_p->file_d);
|
|
10476: 4b19 ldr r3, [pc, #100] ; (104dc <lv_fs_open+0xb4>)
|
|
10478: 4798 blx r3
|
|
1047a: 2800 cmp r0, #0
|
|
1047c: d006 beq.n 1048c <lv_fs_open+0x64>
|
|
if(file_p->file_d == NULL) {
|
|
1047e: 6823 ldr r3, [r4, #0]
|
|
10480: 469a mov sl, r3
|
|
10482: 2b00 cmp r3, #0
|
|
10484: d108 bne.n 10498 <lv_fs_open+0x70>
|
|
file_p->drv = NULL;
|
|
10486: 6063 str r3, [r4, #4]
|
|
return LV_FS_RES_OUT_OF_MEM; /* Out of memory */
|
|
10488: 250a movs r5, #10
|
|
1048a: e01d b.n 104c8 <lv_fs_open+0xa0>
|
|
LV_ASSERT_MEM(file_p->file_d);
|
|
1048c: 6822 ldr r2, [r4, #0]
|
|
1048e: 2300 movs r3, #0
|
|
10490: 4813 ldr r0, [pc, #76] ; (104e0 <lv_fs_open+0xb8>)
|
|
10492: 4914 ldr r1, [pc, #80] ; (104e4 <lv_fs_open+0xbc>)
|
|
10494: 4788 blx r1
|
|
10496: e7fe b.n 10496 <lv_fs_open+0x6e>
|
|
if(file_p->drv->open_cb == NULL) {
|
|
10498: 6863 ldr r3, [r4, #4]
|
|
1049a: 4699 mov r9, r3
|
|
1049c: 68de ldr r6, [r3, #12]
|
|
return LV_FS_RES_NOT_IMP;
|
|
1049e: 2509 movs r5, #9
|
|
if(file_p->drv->open_cb == NULL) {
|
|
104a0: 2e00 cmp r6, #0
|
|
104a2: d011 beq.n 104c8 <lv_fs_open+0xa0>
|
|
const char * real_path = lv_fs_get_real_path(path);
|
|
104a4: 0038 movs r0, r7
|
|
104a6: 4b10 ldr r3, [pc, #64] ; (104e8 <lv_fs_open+0xc0>)
|
|
104a8: 4798 blx r3
|
|
104aa: 0002 movs r2, r0
|
|
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
|
|
104ac: 9b01 ldr r3, [sp, #4]
|
|
104ae: 4651 mov r1, sl
|
|
104b0: 4648 mov r0, r9
|
|
104b2: 47b0 blx r6
|
|
104b4: 1e05 subs r5, r0, #0
|
|
if(res != LV_FS_RES_OK) {
|
|
104b6: d007 beq.n 104c8 <lv_fs_open+0xa0>
|
|
lv_mem_free(file_p->file_d);
|
|
104b8: 6820 ldr r0, [r4, #0]
|
|
104ba: 4b0c ldr r3, [pc, #48] ; (104ec <lv_fs_open+0xc4>)
|
|
104bc: 4798 blx r3
|
|
file_p->file_d = NULL;
|
|
104be: 2300 movs r3, #0
|
|
104c0: 6023 str r3, [r4, #0]
|
|
file_p->drv = NULL;
|
|
104c2: 6063 str r3, [r4, #4]
|
|
104c4: e000 b.n 104c8 <lv_fs_open+0xa0>
|
|
if(path == NULL) return LV_FS_RES_INV_PARAM;
|
|
104c6: 250b movs r5, #11
|
|
}
|
|
104c8: 0028 movs r0, r5
|
|
104ca: b003 add sp, #12
|
|
104cc: bc0c pop {r2, r3}
|
|
104ce: 4691 mov r9, r2
|
|
104d0: 469a mov sl, r3
|
|
104d2: bdf0 pop {r4, r5, r6, r7, pc}
|
|
104d4: 000103f1 .word 0x000103f1
|
|
104d8: 00010a71 .word 0x00010a71
|
|
104dc: 0000147d .word 0x0000147d
|
|
104e0: 00018724 .word 0x00018724
|
|
104e4: 00001485 .word 0x00001485
|
|
104e8: 00010327 .word 0x00010327
|
|
104ec: 00010b39 .word 0x00010b39
|
|
|
|
000104f0 <lv_fs_get_ext>:
|
|
{
|
|
104f0: b510 push {r4, lr}
|
|
104f2: 0004 movs r4, r0
|
|
for(i = strlen(fn); i > 0; i--) {
|
|
104f4: 4b11 ldr r3, [pc, #68] ; (1053c <lv_fs_get_ext+0x4c>)
|
|
104f6: 4798 blx r3
|
|
104f8: 1e03 subs r3, r0, #0
|
|
104fa: d017 beq.n 1052c <lv_fs_get_ext+0x3c>
|
|
if(fn[i] == '.') {
|
|
104fc: 5c22 ldrb r2, [r4, r0]
|
|
104fe: 2a2e cmp r2, #46 ; 0x2e
|
|
10500: d00f beq.n 10522 <lv_fs_get_ext+0x32>
|
|
else if(fn[i] == '/' || fn[i] == '\\') {
|
|
10502: 2a2f cmp r2, #47 ; 0x2f
|
|
10504: d014 beq.n 10530 <lv_fs_get_ext+0x40>
|
|
10506: 2a5c cmp r2, #92 ; 0x5c
|
|
10508: d014 beq.n 10534 <lv_fs_get_ext+0x44>
|
|
for(i = strlen(fn); i > 0; i--) {
|
|
1050a: 3b01 subs r3, #1
|
|
1050c: 2b00 cmp r3, #0
|
|
1050e: d00b beq.n 10528 <lv_fs_get_ext+0x38>
|
|
if(fn[i] == '.') {
|
|
10510: 5ce2 ldrb r2, [r4, r3]
|
|
10512: 2a2e cmp r2, #46 ; 0x2e
|
|
10514: d005 beq.n 10522 <lv_fs_get_ext+0x32>
|
|
else if(fn[i] == '/' || fn[i] == '\\') {
|
|
10516: 2a2f cmp r2, #47 ; 0x2f
|
|
10518: d00e beq.n 10538 <lv_fs_get_ext+0x48>
|
|
1051a: 2a5c cmp r2, #92 ; 0x5c
|
|
1051c: d1f5 bne.n 1050a <lv_fs_get_ext+0x1a>
|
|
return ""; /*No extension if a '\' or '/' found*/
|
|
1051e: 4808 ldr r0, [pc, #32] ; (10540 <lv_fs_get_ext+0x50>)
|
|
10520: e001 b.n 10526 <lv_fs_get_ext+0x36>
|
|
return &fn[i + 1];
|
|
10522: 3301 adds r3, #1
|
|
10524: 18e0 adds r0, r4, r3
|
|
}
|
|
10526: bd10 pop {r4, pc}
|
|
return ""; /*Empty string if no '.' in the file name. */
|
|
10528: 4805 ldr r0, [pc, #20] ; (10540 <lv_fs_get_ext+0x50>)
|
|
1052a: e7fc b.n 10526 <lv_fs_get_ext+0x36>
|
|
1052c: 4804 ldr r0, [pc, #16] ; (10540 <lv_fs_get_ext+0x50>)
|
|
1052e: e7fa b.n 10526 <lv_fs_get_ext+0x36>
|
|
return ""; /*No extension if a '\' or '/' found*/
|
|
10530: 4803 ldr r0, [pc, #12] ; (10540 <lv_fs_get_ext+0x50>)
|
|
10532: e7f8 b.n 10526 <lv_fs_get_ext+0x36>
|
|
10534: 4802 ldr r0, [pc, #8] ; (10540 <lv_fs_get_ext+0x50>)
|
|
10536: e7f6 b.n 10526 <lv_fs_get_ext+0x36>
|
|
10538: 4801 ldr r0, [pc, #4] ; (10540 <lv_fs_get_ext+0x50>)
|
|
1053a: e7f4 b.n 10526 <lv_fs_get_ext+0x36>
|
|
1053c: 00017e81 .word 0x00017e81
|
|
10540: 0001c948 .word 0x0001c948
|
|
|
|
00010544 <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)
|
|
{
|
|
10544: b500 push {lr}
|
|
10546: b083 sub sp, #12
|
|
10548: 9201 str r2, [sp, #4]
|
|
if(act == NULL) return; /*Can't set the next node of `NULL`*/
|
|
1054a: 2900 cmp r1, #0
|
|
1054c: d00d beq.n 1056a <node_set_next+0x26>
|
|
|
|
uint32_t node_p_size = sizeof(lv_ll_node_t *);
|
|
if(next)
|
|
1054e: 2a00 cmp r2, #0
|
|
10550: d00d beq.n 1056e <node_set_next+0x2a>
|
|
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
|
|
10552: 6800 ldr r0, [r0, #0]
|
|
10554: 3004 adds r0, #4
|
|
10556: 1809 adds r1, r1, r0
|
|
10558: ab01 add r3, sp, #4
|
|
1055a: 781a ldrb r2, [r3, #0]
|
|
1055c: 700a strb r2, [r1, #0]
|
|
1055e: 785a ldrb r2, [r3, #1]
|
|
10560: 704a strb r2, [r1, #1]
|
|
10562: 789a ldrb r2, [r3, #2]
|
|
10564: 708a strb r2, [r1, #2]
|
|
10566: 78db ldrb r3, [r3, #3]
|
|
10568: 70cb strb r3, [r1, #3]
|
|
else
|
|
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
|
|
}
|
|
1056a: b003 add sp, #12
|
|
1056c: bd00 pop {pc}
|
|
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
|
|
1056e: 6800 ldr r0, [r0, #0]
|
|
10570: 3004 adds r0, #4
|
|
10572: 1808 adds r0, r1, r0
|
|
10574: 2104 movs r1, #4
|
|
10576: 4b01 ldr r3, [pc, #4] ; (1057c <node_set_next+0x38>)
|
|
10578: 4798 blx r3
|
|
1057a: e7f6 b.n 1056a <node_set_next+0x26>
|
|
1057c: 0001104d .word 0x0001104d
|
|
|
|
00010580 <node_set_prev>:
|
|
{
|
|
10580: b500 push {lr}
|
|
10582: b083 sub sp, #12
|
|
10584: 9201 str r2, [sp, #4]
|
|
if(act == NULL) return; /*Can't set the prev node of `NULL`*/
|
|
10586: 2900 cmp r1, #0
|
|
10588: d00c beq.n 105a4 <node_set_prev+0x24>
|
|
if(prev)
|
|
1058a: 2a00 cmp r2, #0
|
|
1058c: d00c beq.n 105a8 <node_set_prev+0x28>
|
|
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
|
|
1058e: 6800 ldr r0, [r0, #0]
|
|
10590: 1809 adds r1, r1, r0
|
|
10592: ab01 add r3, sp, #4
|
|
10594: 781a ldrb r2, [r3, #0]
|
|
10596: 700a strb r2, [r1, #0]
|
|
10598: 785a ldrb r2, [r3, #1]
|
|
1059a: 704a strb r2, [r1, #1]
|
|
1059c: 789a ldrb r2, [r3, #2]
|
|
1059e: 708a strb r2, [r1, #2]
|
|
105a0: 78db ldrb r3, [r3, #3]
|
|
105a2: 70cb strb r3, [r1, #3]
|
|
}
|
|
105a4: b003 add sp, #12
|
|
105a6: bd00 pop {pc}
|
|
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
|
|
105a8: 6800 ldr r0, [r0, #0]
|
|
105aa: 1808 adds r0, r1, r0
|
|
105ac: 2104 movs r1, #4
|
|
105ae: 4b01 ldr r3, [pc, #4] ; (105b4 <node_set_prev+0x34>)
|
|
105b0: 4798 blx r3
|
|
105b2: e7f7 b.n 105a4 <node_set_prev+0x24>
|
|
105b4: 0001104d .word 0x0001104d
|
|
|
|
000105b8 <_lv_ll_init>:
|
|
ll_p->head = NULL;
|
|
105b8: 2300 movs r3, #0
|
|
105ba: 6043 str r3, [r0, #4]
|
|
ll_p->tail = NULL;
|
|
105bc: 6083 str r3, [r0, #8]
|
|
if(node_size & 0x3) {
|
|
105be: 078b lsls r3, r1, #30
|
|
105c0: d002 beq.n 105c8 <_lv_ll_init+0x10>
|
|
node_size = node_size & (~0x3);
|
|
105c2: 2303 movs r3, #3
|
|
105c4: 4399 bics r1, r3
|
|
node_size += 4;
|
|
105c6: 3104 adds r1, #4
|
|
ll_p->n_size = node_size;
|
|
105c8: 6001 str r1, [r0, #0]
|
|
}
|
|
105ca: 4770 bx lr
|
|
|
|
000105cc <_lv_ll_ins_head>:
|
|
{
|
|
105cc: b570 push {r4, r5, r6, lr}
|
|
105ce: 0004 movs r4, r0
|
|
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
|
|
105d0: 6800 ldr r0, [r0, #0]
|
|
105d2: 3008 adds r0, #8
|
|
105d4: 4b0e ldr r3, [pc, #56] ; (10610 <_lv_ll_ins_head+0x44>)
|
|
105d6: 4798 blx r3
|
|
105d8: 1e05 subs r5, r0, #0
|
|
if(n_new != NULL) {
|
|
105da: d014 beq.n 10606 <_lv_ll_ins_head+0x3a>
|
|
node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/
|
|
105dc: 2200 movs r2, #0
|
|
105de: 0001 movs r1, r0
|
|
105e0: 0020 movs r0, r4
|
|
105e2: 4b0c ldr r3, [pc, #48] ; (10614 <_lv_ll_ins_head+0x48>)
|
|
105e4: 4798 blx r3
|
|
node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/
|
|
105e6: 6862 ldr r2, [r4, #4]
|
|
105e8: 0029 movs r1, r5
|
|
105ea: 0020 movs r0, r4
|
|
105ec: 4b0a ldr r3, [pc, #40] ; (10618 <_lv_ll_ins_head+0x4c>)
|
|
105ee: 4798 blx r3
|
|
if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/
|
|
105f0: 6861 ldr r1, [r4, #4]
|
|
105f2: 2900 cmp r1, #0
|
|
105f4: d003 beq.n 105fe <_lv_ll_ins_head+0x32>
|
|
node_set_prev(ll_p, ll_p->head, n_new);
|
|
105f6: 002a movs r2, r5
|
|
105f8: 0020 movs r0, r4
|
|
105fa: 4b06 ldr r3, [pc, #24] ; (10614 <_lv_ll_ins_head+0x48>)
|
|
105fc: 4798 blx r3
|
|
ll_p->head = n_new; /*Set the new head in the dsc.*/
|
|
105fe: 6065 str r5, [r4, #4]
|
|
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
|
|
10600: 68a3 ldr r3, [r4, #8]
|
|
10602: 2b00 cmp r3, #0
|
|
10604: d001 beq.n 1060a <_lv_ll_ins_head+0x3e>
|
|
}
|
|
10606: 0028 movs r0, r5
|
|
10608: bd70 pop {r4, r5, r6, pc}
|
|
ll_p->tail = n_new;
|
|
1060a: 60a5 str r5, [r4, #8]
|
|
1060c: e7fb b.n 10606 <_lv_ll_ins_head+0x3a>
|
|
1060e: 46c0 nop ; (mov r8, r8)
|
|
10610: 00010a71 .word 0x00010a71
|
|
10614: 00010581 .word 0x00010581
|
|
10618: 00010545 .word 0x00010545
|
|
|
|
0001061c <_lv_ll_ins_tail>:
|
|
{
|
|
1061c: b570 push {r4, r5, r6, lr}
|
|
1061e: 0004 movs r4, r0
|
|
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
|
|
10620: 6800 ldr r0, [r0, #0]
|
|
10622: 3008 adds r0, #8
|
|
10624: 4b0e ldr r3, [pc, #56] ; (10660 <_lv_ll_ins_tail+0x44>)
|
|
10626: 4798 blx r3
|
|
10628: 1e05 subs r5, r0, #0
|
|
if(n_new != NULL) {
|
|
1062a: d014 beq.n 10656 <_lv_ll_ins_tail+0x3a>
|
|
node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/
|
|
1062c: 2200 movs r2, #0
|
|
1062e: 0001 movs r1, r0
|
|
10630: 0020 movs r0, r4
|
|
10632: 4b0c ldr r3, [pc, #48] ; (10664 <_lv_ll_ins_tail+0x48>)
|
|
10634: 4798 blx r3
|
|
node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/
|
|
10636: 68a2 ldr r2, [r4, #8]
|
|
10638: 0029 movs r1, r5
|
|
1063a: 0020 movs r0, r4
|
|
1063c: 4b0a ldr r3, [pc, #40] ; (10668 <_lv_ll_ins_tail+0x4c>)
|
|
1063e: 4798 blx r3
|
|
if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/
|
|
10640: 68a1 ldr r1, [r4, #8]
|
|
10642: 2900 cmp r1, #0
|
|
10644: d003 beq.n 1064e <_lv_ll_ins_tail+0x32>
|
|
node_set_next(ll_p, ll_p->tail, n_new);
|
|
10646: 002a movs r2, r5
|
|
10648: 0020 movs r0, r4
|
|
1064a: 4b06 ldr r3, [pc, #24] ; (10664 <_lv_ll_ins_tail+0x48>)
|
|
1064c: 4798 blx r3
|
|
ll_p->tail = n_new; /*Set the new tail in the dsc.*/
|
|
1064e: 60a5 str r5, [r4, #8]
|
|
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
|
|
10650: 6863 ldr r3, [r4, #4]
|
|
10652: 2b00 cmp r3, #0
|
|
10654: d001 beq.n 1065a <_lv_ll_ins_tail+0x3e>
|
|
}
|
|
10656: 0028 movs r0, r5
|
|
10658: bd70 pop {r4, r5, r6, pc}
|
|
ll_p->head = n_new;
|
|
1065a: 6065 str r5, [r4, #4]
|
|
1065c: e7fb b.n 10656 <_lv_ll_ins_tail+0x3a>
|
|
1065e: 46c0 nop ; (mov r8, r8)
|
|
10660: 00010a71 .word 0x00010a71
|
|
10664: 00010545 .word 0x00010545
|
|
10668: 00010581 .word 0x00010581
|
|
|
|
0001066c <_lv_ll_get_head>:
|
|
if(ll_p != NULL) {
|
|
1066c: 2800 cmp r0, #0
|
|
1066e: d001 beq.n 10674 <_lv_ll_get_head+0x8>
|
|
head = ll_p->head;
|
|
10670: 6840 ldr r0, [r0, #4]
|
|
}
|
|
10672: 4770 bx lr
|
|
void * head = NULL;
|
|
10674: 2000 movs r0, #0
|
|
return head;
|
|
10676: e7fc b.n 10672 <_lv_ll_get_head+0x6>
|
|
|
|
00010678 <_lv_ll_get_tail>:
|
|
if(ll_p != NULL) {
|
|
10678: 2800 cmp r0, #0
|
|
1067a: d001 beq.n 10680 <_lv_ll_get_tail+0x8>
|
|
tail = ll_p->tail;
|
|
1067c: 6880 ldr r0, [r0, #8]
|
|
}
|
|
1067e: 4770 bx lr
|
|
void * tail = NULL;
|
|
10680: 2000 movs r0, #0
|
|
return tail;
|
|
10682: e7fc b.n 1067e <_lv_ll_get_tail+0x6>
|
|
|
|
00010684 <_lv_ll_get_next>:
|
|
{
|
|
10684: b082 sub sp, #8
|
|
void * next = NULL;
|
|
10686: 2300 movs r3, #0
|
|
10688: 9301 str r3, [sp, #4]
|
|
if(ll_p != NULL) {
|
|
1068a: 2800 cmp r0, #0
|
|
1068c: d00b beq.n 106a6 <_lv_ll_get_next+0x22>
|
|
_lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *));
|
|
1068e: 6803 ldr r3, [r0, #0]
|
|
10690: 3304 adds r3, #4
|
|
10692: 18c9 adds r1, r1, r3
|
|
10694: ab01 add r3, sp, #4
|
|
10696: 780a ldrb r2, [r1, #0]
|
|
10698: 701a strb r2, [r3, #0]
|
|
1069a: 784a ldrb r2, [r1, #1]
|
|
1069c: 705a strb r2, [r3, #1]
|
|
1069e: 788a ldrb r2, [r1, #2]
|
|
106a0: 709a strb r2, [r3, #2]
|
|
106a2: 78ca ldrb r2, [r1, #3]
|
|
106a4: 70da strb r2, [r3, #3]
|
|
}
|
|
106a6: 9801 ldr r0, [sp, #4]
|
|
106a8: b002 add sp, #8
|
|
106aa: 4770 bx lr
|
|
|
|
000106ac <_lv_ll_get_prev>:
|
|
{
|
|
106ac: b082 sub sp, #8
|
|
void * prev = NULL;
|
|
106ae: 2300 movs r3, #0
|
|
106b0: 9301 str r3, [sp, #4]
|
|
if(ll_p != NULL) {
|
|
106b2: 2800 cmp r0, #0
|
|
106b4: d00a beq.n 106cc <_lv_ll_get_prev+0x20>
|
|
_lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *));
|
|
106b6: 6803 ldr r3, [r0, #0]
|
|
106b8: 18c9 adds r1, r1, r3
|
|
106ba: ab01 add r3, sp, #4
|
|
106bc: 780a ldrb r2, [r1, #0]
|
|
106be: 701a strb r2, [r3, #0]
|
|
106c0: 784a ldrb r2, [r1, #1]
|
|
106c2: 705a strb r2, [r3, #1]
|
|
106c4: 788a ldrb r2, [r1, #2]
|
|
106c6: 709a strb r2, [r3, #2]
|
|
106c8: 78ca ldrb r2, [r1, #3]
|
|
106ca: 70da strb r2, [r3, #3]
|
|
}
|
|
106cc: 9801 ldr r0, [sp, #4]
|
|
106ce: b002 add sp, #8
|
|
106d0: 4770 bx lr
|
|
...
|
|
|
|
000106d4 <_lv_ll_ins_prev>:
|
|
{
|
|
106d4: b5f0 push {r4, r5, r6, r7, lr}
|
|
106d6: 46c6 mov lr, r8
|
|
106d8: b500 push {lr}
|
|
106da: 0004 movs r4, r0
|
|
106dc: 000e movs r6, r1
|
|
if(NULL == ll_p || NULL == n_act) return NULL;
|
|
106de: 2800 cmp r0, #0
|
|
106e0: d029 beq.n 10736 <_lv_ll_ins_prev+0x62>
|
|
106e2: 2900 cmp r1, #0
|
|
106e4: d029 beq.n 1073a <_lv_ll_ins_prev+0x66>
|
|
if(_lv_ll_get_head(ll_p) == n_act) {
|
|
106e6: 6843 ldr r3, [r0, #4]
|
|
106e8: 4299 cmp r1, r3
|
|
106ea: d021 beq.n 10730 <_lv_ll_ins_prev+0x5c>
|
|
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
|
|
106ec: 6800 ldr r0, [r0, #0]
|
|
106ee: 3008 adds r0, #8
|
|
106f0: 4b13 ldr r3, [pc, #76] ; (10740 <_lv_ll_ins_prev+0x6c>)
|
|
106f2: 4798 blx r3
|
|
106f4: 1e05 subs r5, r0, #0
|
|
if(n_new == NULL) return NULL;
|
|
106f6: d018 beq.n 1072a <_lv_ll_ins_prev+0x56>
|
|
n_prev = _lv_ll_get_prev(ll_p, n_act);
|
|
106f8: 0031 movs r1, r6
|
|
106fa: 0020 movs r0, r4
|
|
106fc: 4b11 ldr r3, [pc, #68] ; (10744 <_lv_ll_ins_prev+0x70>)
|
|
106fe: 4798 blx r3
|
|
10700: 0007 movs r7, r0
|
|
node_set_next(ll_p, n_prev, n_new);
|
|
10702: 002a movs r2, r5
|
|
10704: 0001 movs r1, r0
|
|
10706: 0020 movs r0, r4
|
|
10708: 4b0f ldr r3, [pc, #60] ; (10748 <_lv_ll_ins_prev+0x74>)
|
|
1070a: 4698 mov r8, r3
|
|
1070c: 4798 blx r3
|
|
node_set_prev(ll_p, n_new, n_prev);
|
|
1070e: 003a movs r2, r7
|
|
10710: 0029 movs r1, r5
|
|
10712: 0020 movs r0, r4
|
|
10714: 4f0d ldr r7, [pc, #52] ; (1074c <_lv_ll_ins_prev+0x78>)
|
|
10716: 47b8 blx r7
|
|
node_set_prev(ll_p, n_act, n_new);
|
|
10718: 002a movs r2, r5
|
|
1071a: 0031 movs r1, r6
|
|
1071c: 0020 movs r0, r4
|
|
1071e: 47b8 blx r7
|
|
node_set_next(ll_p, n_new, n_act);
|
|
10720: 0032 movs r2, r6
|
|
10722: 0029 movs r1, r5
|
|
10724: 0020 movs r0, r4
|
|
10726: 47c0 blx r8
|
|
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
|
|
10728: 0028 movs r0, r5
|
|
}
|
|
1072a: bc04 pop {r2}
|
|
1072c: 4690 mov r8, r2
|
|
1072e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
n_new = _lv_ll_ins_head(ll_p);
|
|
10730: 4b07 ldr r3, [pc, #28] ; (10750 <_lv_ll_ins_prev+0x7c>)
|
|
10732: 4798 blx r3
|
|
10734: e7f9 b.n 1072a <_lv_ll_ins_prev+0x56>
|
|
if(NULL == ll_p || NULL == n_act) return NULL;
|
|
10736: 2000 movs r0, #0
|
|
10738: e7f7 b.n 1072a <_lv_ll_ins_prev+0x56>
|
|
1073a: 0008 movs r0, r1
|
|
1073c: e7f5 b.n 1072a <_lv_ll_ins_prev+0x56>
|
|
1073e: 46c0 nop ; (mov r8, r8)
|
|
10740: 00010a71 .word 0x00010a71
|
|
10744: 000106ad .word 0x000106ad
|
|
10748: 00010545 .word 0x00010545
|
|
1074c: 00010581 .word 0x00010581
|
|
10750: 000105cd .word 0x000105cd
|
|
|
|
00010754 <_lv_ll_remove>:
|
|
{
|
|
10754: b570 push {r4, r5, r6, lr}
|
|
10756: 0004 movs r4, r0
|
|
10758: 000d movs r5, r1
|
|
if(ll_p != NULL) {
|
|
1075a: 2800 cmp r0, #0
|
|
1075c: d02b beq.n 107b6 <_lv_ll_remove+0x62>
|
|
if(_lv_ll_get_head(ll_p) == node_p) {
|
|
1075e: 6843 ldr r3, [r0, #4]
|
|
10760: 4299 cmp r1, r3
|
|
10762: d02a beq.n 107ba <_lv_ll_remove+0x66>
|
|
else if(_lv_ll_get_tail(ll_p) == node_p) {
|
|
10764: 6883 ldr r3, [r0, #8]
|
|
10766: 4299 cmp r1, r3
|
|
10768: d017 beq.n 1079a <_lv_ll_remove+0x46>
|
|
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
|
|
1076a: 0029 movs r1, r5
|
|
1076c: 0020 movs r0, r4
|
|
1076e: 4b19 ldr r3, [pc, #100] ; (107d4 <_lv_ll_remove+0x80>)
|
|
10770: 4798 blx r3
|
|
10772: 0006 movs r6, r0
|
|
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
|
|
10774: 0029 movs r1, r5
|
|
10776: 0020 movs r0, r4
|
|
10778: 4b17 ldr r3, [pc, #92] ; (107d8 <_lv_ll_remove+0x84>)
|
|
1077a: 4798 blx r3
|
|
1077c: 0005 movs r5, r0
|
|
node_set_next(ll_p, n_prev, n_next);
|
|
1077e: 0002 movs r2, r0
|
|
10780: 0031 movs r1, r6
|
|
10782: 0020 movs r0, r4
|
|
10784: 4b15 ldr r3, [pc, #84] ; (107dc <_lv_ll_remove+0x88>)
|
|
10786: 4798 blx r3
|
|
node_set_prev(ll_p, n_next, n_prev);
|
|
10788: 0032 movs r2, r6
|
|
1078a: 0029 movs r1, r5
|
|
1078c: 0020 movs r0, r4
|
|
1078e: 4b14 ldr r3, [pc, #80] ; (107e0 <_lv_ll_remove+0x8c>)
|
|
10790: 4798 blx r3
|
|
}
|
|
10792: bd70 pop {r4, r5, r6, pc}
|
|
ll_p->tail = NULL;
|
|
10794: 2300 movs r3, #0
|
|
10796: 60a3 str r3, [r4, #8]
|
|
10798: e7fb b.n 10792 <_lv_ll_remove+0x3e>
|
|
ll_p->tail = _lv_ll_get_prev(ll_p, node_p);
|
|
1079a: 4b0e ldr r3, [pc, #56] ; (107d4 <_lv_ll_remove+0x80>)
|
|
1079c: 4798 blx r3
|
|
1079e: 60a0 str r0, [r4, #8]
|
|
if(ll_p->tail == NULL) {
|
|
107a0: 2800 cmp r0, #0
|
|
107a2: d005 beq.n 107b0 <_lv_ll_remove+0x5c>
|
|
node_set_next(ll_p, ll_p->tail, NULL);
|
|
107a4: 2200 movs r2, #0
|
|
107a6: 0001 movs r1, r0
|
|
107a8: 0020 movs r0, r4
|
|
107aa: 4b0c ldr r3, [pc, #48] ; (107dc <_lv_ll_remove+0x88>)
|
|
107ac: 4798 blx r3
|
|
107ae: e7f0 b.n 10792 <_lv_ll_remove+0x3e>
|
|
ll_p->head = NULL;
|
|
107b0: 2300 movs r3, #0
|
|
107b2: 6063 str r3, [r4, #4]
|
|
107b4: e7ed b.n 10792 <_lv_ll_remove+0x3e>
|
|
if(_lv_ll_get_head(ll_p) == node_p) {
|
|
107b6: 2900 cmp r1, #0
|
|
107b8: d1d7 bne.n 1076a <_lv_ll_remove+0x16>
|
|
ll_p->head = _lv_ll_get_next(ll_p, node_p);
|
|
107ba: 0029 movs r1, r5
|
|
107bc: 0020 movs r0, r4
|
|
107be: 4b06 ldr r3, [pc, #24] ; (107d8 <_lv_ll_remove+0x84>)
|
|
107c0: 4798 blx r3
|
|
107c2: 6060 str r0, [r4, #4]
|
|
if(ll_p->head == NULL) {
|
|
107c4: 2800 cmp r0, #0
|
|
107c6: d0e5 beq.n 10794 <_lv_ll_remove+0x40>
|
|
node_set_prev(ll_p, ll_p->head, NULL);
|
|
107c8: 2200 movs r2, #0
|
|
107ca: 0001 movs r1, r0
|
|
107cc: 0020 movs r0, r4
|
|
107ce: 4b04 ldr r3, [pc, #16] ; (107e0 <_lv_ll_remove+0x8c>)
|
|
107d0: 4798 blx r3
|
|
107d2: e7de b.n 10792 <_lv_ll_remove+0x3e>
|
|
107d4: 000106ad .word 0x000106ad
|
|
107d8: 00010685 .word 0x00010685
|
|
107dc: 00010545 .word 0x00010545
|
|
107e0: 00010581 .word 0x00010581
|
|
|
|
000107e4 <_lv_ll_chg_list>:
|
|
{
|
|
107e4: b570 push {r4, r5, r6, lr}
|
|
107e6: 000c movs r4, r1
|
|
107e8: 0015 movs r5, r2
|
|
107ea: 001e movs r6, r3
|
|
_lv_ll_remove(ll_ori_p, node);
|
|
107ec: 0011 movs r1, r2
|
|
107ee: 4b19 ldr r3, [pc, #100] ; (10854 <_lv_ll_chg_list+0x70>)
|
|
107f0: 4798 blx r3
|
|
if(head) {
|
|
107f2: 2e00 cmp r6, #0
|
|
107f4: d017 beq.n 10826 <_lv_ll_chg_list+0x42>
|
|
node_set_prev(ll_new_p, node, NULL);
|
|
107f6: 2200 movs r2, #0
|
|
107f8: 0029 movs r1, r5
|
|
107fa: 0020 movs r0, r4
|
|
107fc: 4b16 ldr r3, [pc, #88] ; (10858 <_lv_ll_chg_list+0x74>)
|
|
107fe: 4798 blx r3
|
|
node_set_next(ll_new_p, node, ll_new_p->head);
|
|
10800: 6862 ldr r2, [r4, #4]
|
|
10802: 0029 movs r1, r5
|
|
10804: 0020 movs r0, r4
|
|
10806: 4b15 ldr r3, [pc, #84] ; (1085c <_lv_ll_chg_list+0x78>)
|
|
10808: 4798 blx r3
|
|
if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/
|
|
1080a: 6861 ldr r1, [r4, #4]
|
|
1080c: 2900 cmp r1, #0
|
|
1080e: d003 beq.n 10818 <_lv_ll_chg_list+0x34>
|
|
node_set_prev(ll_new_p, ll_new_p->head, node);
|
|
10810: 002a movs r2, r5
|
|
10812: 0020 movs r0, r4
|
|
10814: 4b10 ldr r3, [pc, #64] ; (10858 <_lv_ll_chg_list+0x74>)
|
|
10816: 4798 blx r3
|
|
ll_new_p->head = node; /*Set the new head in the dsc.*/
|
|
10818: 6065 str r5, [r4, #4]
|
|
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
|
|
1081a: 68a3 ldr r3, [r4, #8]
|
|
1081c: 2b00 cmp r3, #0
|
|
1081e: d000 beq.n 10822 <_lv_ll_chg_list+0x3e>
|
|
}
|
|
10820: bd70 pop {r4, r5, r6, pc}
|
|
ll_new_p->tail = node;
|
|
10822: 60a5 str r5, [r4, #8]
|
|
10824: e7fc b.n 10820 <_lv_ll_chg_list+0x3c>
|
|
node_set_prev(ll_new_p, node, ll_new_p->tail);
|
|
10826: 68a2 ldr r2, [r4, #8]
|
|
10828: 0029 movs r1, r5
|
|
1082a: 0020 movs r0, r4
|
|
1082c: 4b0a ldr r3, [pc, #40] ; (10858 <_lv_ll_chg_list+0x74>)
|
|
1082e: 4798 blx r3
|
|
node_set_next(ll_new_p, node, NULL);
|
|
10830: 2200 movs r2, #0
|
|
10832: 0029 movs r1, r5
|
|
10834: 0020 movs r0, r4
|
|
10836: 4b09 ldr r3, [pc, #36] ; (1085c <_lv_ll_chg_list+0x78>)
|
|
10838: 4798 blx r3
|
|
if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/
|
|
1083a: 68a1 ldr r1, [r4, #8]
|
|
1083c: 2900 cmp r1, #0
|
|
1083e: d003 beq.n 10848 <_lv_ll_chg_list+0x64>
|
|
node_set_next(ll_new_p, ll_new_p->tail, node);
|
|
10840: 002a movs r2, r5
|
|
10842: 0020 movs r0, r4
|
|
10844: 4b05 ldr r3, [pc, #20] ; (1085c <_lv_ll_chg_list+0x78>)
|
|
10846: 4798 blx r3
|
|
ll_new_p->tail = node; /*Set the new tail in the dsc.*/
|
|
10848: 60a5 str r5, [r4, #8]
|
|
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
|
|
1084a: 6863 ldr r3, [r4, #4]
|
|
1084c: 2b00 cmp r3, #0
|
|
1084e: d1e7 bne.n 10820 <_lv_ll_chg_list+0x3c>
|
|
ll_new_p->head = node;
|
|
10850: 6065 str r5, [r4, #4]
|
|
}
|
|
10852: e7e5 b.n 10820 <_lv_ll_chg_list+0x3c>
|
|
10854: 00010755 .word 0x00010755
|
|
10858: 00010581 .word 0x00010581
|
|
1085c: 00010545 .word 0x00010545
|
|
|
|
00010860 <_lv_ll_move_before>:
|
|
{
|
|
10860: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
10862: 46ce mov lr, r9
|
|
10864: 4647 mov r7, r8
|
|
10866: b580 push {r7, lr}
|
|
10868: 0005 movs r5, r0
|
|
1086a: 000c movs r4, r1
|
|
1086c: 0016 movs r6, r2
|
|
if(n_act == n_after) return; /*Can't move before itself*/
|
|
1086e: 4291 cmp r1, r2
|
|
10870: d021 beq.n 108b6 <_lv_ll_move_before+0x56>
|
|
if(n_after != NULL)
|
|
10872: 2a00 cmp r2, #0
|
|
10874: d023 beq.n 108be <_lv_ll_move_before+0x5e>
|
|
n_before = _lv_ll_get_prev(ll_p, n_after);
|
|
10876: 0011 movs r1, r2
|
|
10878: 4b22 ldr r3, [pc, #136] ; (10904 <_lv_ll_move_before+0xa4>)
|
|
1087a: 4798 blx r3
|
|
1087c: 0007 movs r7, r0
|
|
if(n_act == n_before) return; /*Already before `n_after`*/
|
|
1087e: 4284 cmp r4, r0
|
|
10880: d019 beq.n 108b6 <_lv_ll_move_before+0x56>
|
|
_lv_ll_remove(ll_p, n_act);
|
|
10882: 0021 movs r1, r4
|
|
10884: 0028 movs r0, r5
|
|
10886: 4b20 ldr r3, [pc, #128] ; (10908 <_lv_ll_move_before+0xa8>)
|
|
10888: 4798 blx r3
|
|
node_set_next(ll_p, n_before, n_act);
|
|
1088a: 0022 movs r2, r4
|
|
1088c: 0039 movs r1, r7
|
|
1088e: 0028 movs r0, r5
|
|
10890: 4b1e ldr r3, [pc, #120] ; (1090c <_lv_ll_move_before+0xac>)
|
|
10892: 4698 mov r8, r3
|
|
10894: 4798 blx r3
|
|
node_set_prev(ll_p, n_act, n_before);
|
|
10896: 003a movs r2, r7
|
|
10898: 0021 movs r1, r4
|
|
1089a: 0028 movs r0, r5
|
|
1089c: 4b1c ldr r3, [pc, #112] ; (10910 <_lv_ll_move_before+0xb0>)
|
|
1089e: 4699 mov r9, r3
|
|
108a0: 4798 blx r3
|
|
node_set_prev(ll_p, n_after, n_act);
|
|
108a2: 0022 movs r2, r4
|
|
108a4: 0031 movs r1, r6
|
|
108a6: 0028 movs r0, r5
|
|
108a8: 47c8 blx r9
|
|
node_set_next(ll_p, n_act, n_after);
|
|
108aa: 0032 movs r2, r6
|
|
108ac: 0021 movs r1, r4
|
|
108ae: 0028 movs r0, r5
|
|
108b0: 47c0 blx r8
|
|
if(n_before == NULL) ll_p->head = n_act;
|
|
108b2: 2f00 cmp r7, #0
|
|
108b4: d021 beq.n 108fa <_lv_ll_move_before+0x9a>
|
|
}
|
|
108b6: bc0c pop {r2, r3}
|
|
108b8: 4690 mov r8, r2
|
|
108ba: 4699 mov r9, r3
|
|
108bc: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(ll_p != NULL) {
|
|
108be: 2800 cmp r0, #0
|
|
108c0: d01d beq.n 108fe <_lv_ll_move_before+0x9e>
|
|
tail = ll_p->tail;
|
|
108c2: 6887 ldr r7, [r0, #8]
|
|
if(n_act == n_before) return; /*Already before `n_after`*/
|
|
108c4: 42bc cmp r4, r7
|
|
108c6: d0f6 beq.n 108b6 <_lv_ll_move_before+0x56>
|
|
_lv_ll_remove(ll_p, n_act);
|
|
108c8: 0021 movs r1, r4
|
|
108ca: 0028 movs r0, r5
|
|
108cc: 4b0e ldr r3, [pc, #56] ; (10908 <_lv_ll_move_before+0xa8>)
|
|
108ce: 4798 blx r3
|
|
node_set_next(ll_p, n_before, n_act);
|
|
108d0: 0022 movs r2, r4
|
|
108d2: 0039 movs r1, r7
|
|
108d4: 0028 movs r0, r5
|
|
108d6: 4e0d ldr r6, [pc, #52] ; (1090c <_lv_ll_move_before+0xac>)
|
|
108d8: 47b0 blx r6
|
|
node_set_prev(ll_p, n_act, n_before);
|
|
108da: 003a movs r2, r7
|
|
108dc: 0021 movs r1, r4
|
|
108de: 0028 movs r0, r5
|
|
108e0: 4b0b ldr r3, [pc, #44] ; (10910 <_lv_ll_move_before+0xb0>)
|
|
108e2: 4698 mov r8, r3
|
|
108e4: 4798 blx r3
|
|
node_set_prev(ll_p, n_after, n_act);
|
|
108e6: 0022 movs r2, r4
|
|
108e8: 2100 movs r1, #0
|
|
108ea: 0028 movs r0, r5
|
|
108ec: 47c0 blx r8
|
|
node_set_next(ll_p, n_act, n_after);
|
|
108ee: 2200 movs r2, #0
|
|
108f0: 0021 movs r1, r4
|
|
108f2: 0028 movs r0, r5
|
|
108f4: 47b0 blx r6
|
|
if(n_after == NULL) ll_p->tail = n_act;
|
|
108f6: 60ac str r4, [r5, #8]
|
|
108f8: e7db b.n 108b2 <_lv_ll_move_before+0x52>
|
|
if(n_before == NULL) ll_p->head = n_act;
|
|
108fa: 606c str r4, [r5, #4]
|
|
108fc: e7db b.n 108b6 <_lv_ll_move_before+0x56>
|
|
void * tail = NULL;
|
|
108fe: 0017 movs r7, r2
|
|
10900: e7e0 b.n 108c4 <_lv_ll_move_before+0x64>
|
|
10902: 46c0 nop ; (mov r8, r8)
|
|
10904: 000106ad .word 0x000106ad
|
|
10908: 00010755 .word 0x00010755
|
|
1090c: 00010545 .word 0x00010545
|
|
10910: 00010581 .word 0x00010581
|
|
|
|
00010914 <_lv_ll_is_empty>:
|
|
if(ll_p == NULL) return true;
|
|
10914: 2800 cmp r0, #0
|
|
10916: d00a beq.n 1092e <_lv_ll_is_empty+0x1a>
|
|
return false;
|
|
10918: 2300 movs r3, #0
|
|
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
|
|
1091a: 6842 ldr r2, [r0, #4]
|
|
1091c: 2a00 cmp r2, #0
|
|
1091e: d001 beq.n 10924 <_lv_ll_is_empty+0x10>
|
|
}
|
|
10920: 0018 movs r0, r3
|
|
10922: 4770 bx lr
|
|
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
|
|
10924: 6882 ldr r2, [r0, #8]
|
|
10926: 4253 negs r3, r2
|
|
10928: 4153 adcs r3, r2
|
|
1092a: b2db uxtb r3, r3
|
|
1092c: e7f8 b.n 10920 <_lv_ll_is_empty+0xc>
|
|
if(ll_p == NULL) return true;
|
|
1092e: 2301 movs r3, #1
|
|
10930: e7f6 b.n 10920 <_lv_ll_is_empty+0xc>
|
|
...
|
|
|
|
00010934 <_lv_trigo_sin>:
|
|
* Return with sinus of an angle
|
|
* @param angle
|
|
* @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767
|
|
*/
|
|
LV_ATTRIBUTE_FAST_MEM int16_t _lv_trigo_sin(int16_t angle)
|
|
{
|
|
10934: b510 push {r4, lr}
|
|
int16_t ret = 0;
|
|
angle = angle % 360;
|
|
10936: 21b4 movs r1, #180 ; 0xb4
|
|
10938: 0049 lsls r1, r1, #1
|
|
1093a: 4b19 ldr r3, [pc, #100] ; (109a0 <_lv_trigo_sin+0x6c>)
|
|
1093c: 4798 blx r3
|
|
1093e: b209 sxth r1, r1
|
|
|
|
if(angle < 0) angle = 360 + angle;
|
|
10940: 2900 cmp r1, #0
|
|
10942: db16 blt.n 10972 <_lv_trigo_sin+0x3e>
|
|
|
|
if(angle < 90) {
|
|
10944: 2959 cmp r1, #89 ; 0x59
|
|
10946: dd18 ble.n 1097a <_lv_trigo_sin+0x46>
|
|
ret = sin0_90_table[angle];
|
|
}
|
|
else if(angle >= 90 && angle < 180) {
|
|
10948: b289 uxth r1, r1
|
|
1094a: 000b movs r3, r1
|
|
1094c: 3b5a subs r3, #90 ; 0x5a
|
|
1094e: b29b uxth r3, r3
|
|
10950: 2b59 cmp r3, #89 ; 0x59
|
|
10952: d916 bls.n 10982 <_lv_trigo_sin+0x4e>
|
|
angle = 180 - angle;
|
|
ret = sin0_90_table[angle];
|
|
}
|
|
else if(angle >= 180 && angle < 270) {
|
|
10954: 000b movs r3, r1
|
|
10956: 3bb4 subs r3, #180 ; 0xb4
|
|
10958: b29b uxth r3, r3
|
|
1095a: 2b59 cmp r3, #89 ; 0x59
|
|
1095c: d918 bls.n 10990 <_lv_trigo_sin+0x5c>
|
|
angle = angle - 180;
|
|
ret = -sin0_90_table[angle];
|
|
}
|
|
else { /*angle >=270*/
|
|
angle = 360 - angle;
|
|
1095e: 23b4 movs r3, #180 ; 0xb4
|
|
10960: 005b lsls r3, r3, #1
|
|
10962: 1a59 subs r1, r3, r1
|
|
ret = -sin0_90_table[angle];
|
|
10964: b209 sxth r1, r1
|
|
10966: 0049 lsls r1, r1, #1
|
|
10968: 4b0e ldr r3, [pc, #56] ; (109a4 <_lv_trigo_sin+0x70>)
|
|
1096a: 5ac8 ldrh r0, [r1, r3]
|
|
1096c: 4240 negs r0, r0
|
|
1096e: b200 sxth r0, r0
|
|
10970: e006 b.n 10980 <_lv_trigo_sin+0x4c>
|
|
if(angle < 0) angle = 360 + angle;
|
|
10972: 3169 adds r1, #105 ; 0x69
|
|
10974: 31ff adds r1, #255 ; 0xff
|
|
10976: b209 sxth r1, r1
|
|
10978: e7e4 b.n 10944 <_lv_trigo_sin+0x10>
|
|
ret = sin0_90_table[angle];
|
|
1097a: 0049 lsls r1, r1, #1
|
|
1097c: 4b09 ldr r3, [pc, #36] ; (109a4 <_lv_trigo_sin+0x70>)
|
|
1097e: 5ec8 ldrsh r0, [r1, r3]
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
10980: bd10 pop {r4, pc}
|
|
angle = 180 - angle;
|
|
10982: 23b4 movs r3, #180 ; 0xb4
|
|
10984: 1a59 subs r1, r3, r1
|
|
ret = sin0_90_table[angle];
|
|
10986: b209 sxth r1, r1
|
|
10988: 0049 lsls r1, r1, #1
|
|
1098a: 4b06 ldr r3, [pc, #24] ; (109a4 <_lv_trigo_sin+0x70>)
|
|
1098c: 5ec8 ldrsh r0, [r1, r3]
|
|
1098e: e7f7 b.n 10980 <_lv_trigo_sin+0x4c>
|
|
ret = -sin0_90_table[angle];
|
|
10990: b21b sxth r3, r3
|
|
10992: 005b lsls r3, r3, #1
|
|
10994: 4a03 ldr r2, [pc, #12] ; (109a4 <_lv_trigo_sin+0x70>)
|
|
10996: 5a98 ldrh r0, [r3, r2]
|
|
10998: 4240 negs r0, r0
|
|
1099a: b200 sxth r0, r0
|
|
1099c: e7f0 b.n 10980 <_lv_trigo_sin+0x4c>
|
|
1099e: 46c0 nop ; (mov r8, r8)
|
|
109a0: 00017b61 .word 0x00017b61
|
|
109a4: 0001c7c4 .word 0x0001c7c4
|
|
|
|
000109a8 <_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)
|
|
{
|
|
109a8: b530 push {r4, r5, lr}
|
|
x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/
|
|
109aa: 0200 lsls r0, r0, #8
|
|
|
|
uint32_t root = 0;
|
|
109ac: 2500 movs r5, #0
|
|
109ae: e001 b.n 109b4 <_lv_sqrt+0xc>
|
|
uint32_t trial;
|
|
// http://ww1.microchip.com/...en/AppNotes/91040a.pdf
|
|
do {
|
|
trial = root + mask;
|
|
if((uint32_t)trial * trial <= x) root = trial;
|
|
mask = mask >> 1;
|
|
109b0: 0852 lsrs r2, r2, #1
|
|
} while(mask);
|
|
109b2: d006 beq.n 109c2 <_lv_sqrt+0x1a>
|
|
trial = root + mask;
|
|
109b4: 1953 adds r3, r2, r5
|
|
if((uint32_t)trial * trial <= x) root = trial;
|
|
109b6: 001c movs r4, r3
|
|
109b8: 435c muls r4, r3
|
|
109ba: 42a0 cmp r0, r4
|
|
109bc: d3f8 bcc.n 109b0 <_lv_sqrt+0x8>
|
|
109be: 001d movs r5, r3
|
|
109c0: e7f6 b.n 109b0 <_lv_sqrt+0x8>
|
|
|
|
q->i = (uint32_t) root >> 4;
|
|
109c2: 092b lsrs r3, r5, #4
|
|
109c4: 800b strh r3, [r1, #0]
|
|
q->f = (uint32_t)(root & 0xf) << 4;
|
|
109c6: 012d lsls r5, r5, #4
|
|
109c8: 23ff movs r3, #255 ; 0xff
|
|
109ca: 401d ands r5, r3
|
|
109cc: 804d strh r5, [r1, #2]
|
|
}
|
|
109ce: bd30 pop {r4, r5, pc}
|
|
|
|
000109d0 <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*/
|
|
109d0: 2800 cmp r0, #0
|
|
109d2: d00e beq.n 109f2 <ent_get_next+0x22>
|
|
next_e = (lv_mem_ent_t *)work_mem;
|
|
}
|
|
else { /*Get the next entry */
|
|
uint8_t * data = &act_e->first_data;
|
|
109d4: 1d03 adds r3, r0, #4
|
|
next_e = (lv_mem_ent_t *)&data[act_e->header.s.d_size];
|
|
109d6: 6800 ldr r0, [r0, #0]
|
|
109d8: 0840 lsrs r0, r0, #1
|
|
109da: 1818 adds r0, r3, r0
|
|
|
|
if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL;
|
|
109dc: 1d02 adds r2, r0, #4
|
|
109de: 4b06 ldr r3, [pc, #24] ; (109f8 <ent_get_next+0x28>)
|
|
109e0: 681b ldr r3, [r3, #0]
|
|
109e2: 2180 movs r1, #128 ; 0x80
|
|
109e4: 0189 lsls r1, r1, #6
|
|
109e6: 468c mov ip, r1
|
|
109e8: 4463 add r3, ip
|
|
109ea: 429a cmp r2, r3
|
|
109ec: 419b sbcs r3, r3
|
|
109ee: 4018 ands r0, r3
|
|
}
|
|
|
|
return next_e;
|
|
}
|
|
109f0: 4770 bx lr
|
|
next_e = (lv_mem_ent_t *)work_mem;
|
|
109f2: 4b01 ldr r3, [pc, #4] ; (109f8 <ent_get_next+0x28>)
|
|
109f4: 6818 ldr r0, [r3, #0]
|
|
109f6: e7fb b.n 109f0 <ent_get_next+0x20>
|
|
109f8: 20002c0c .word 0x20002c0c
|
|
|
|
000109fc <ent_trunc>:
|
|
* Truncate the data of entry to the given size
|
|
* @param e Pointer to an entry
|
|
* @param size new size in bytes
|
|
*/
|
|
static void ent_trunc(lv_mem_ent_t * e, size_t size)
|
|
{
|
|
109fc: b530 push {r4, r5, lr}
|
|
size = size & (~0x7);
|
|
size += 8;
|
|
}
|
|
#else
|
|
/*Round the size up to 4*/
|
|
if(size & 0x3) {
|
|
109fe: 078b lsls r3, r1, #30
|
|
10a00: d002 beq.n 10a08 <ent_trunc+0xc>
|
|
size = size & (~0x3);
|
|
10a02: 2303 movs r3, #3
|
|
10a04: 4399 bics r1, r3
|
|
size += 4;
|
|
10a06: 3104 adds r1, #4
|
|
}
|
|
#endif
|
|
|
|
/*Don't let empty space only for a header without data*/
|
|
if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) {
|
|
10a08: 6803 ldr r3, [r0, #0]
|
|
10a0a: 085b lsrs r3, r3, #1
|
|
10a0c: 1d0a adds r2, r1, #4
|
|
10a0e: 4293 cmp r3, r2
|
|
10a10: d017 beq.n 10a42 <ent_trunc+0x46>
|
|
size = e->header.s.d_size;
|
|
}
|
|
|
|
/* Create the new entry after the current if there is space for it */
|
|
if(e->header.s.d_size != size) {
|
|
10a12: 4299 cmp r1, r3
|
|
10a14: d00e beq.n 10a34 <ent_trunc+0x38>
|
|
uint8_t * e_data = &e->first_data;
|
|
10a16: 1d02 adds r2, r0, #4
|
|
lv_mem_ent_t * after_new_e = (lv_mem_ent_t *)&e_data[size];
|
|
10a18: 1852 adds r2, r2, r1
|
|
after_new_e->header.s.used = 0;
|
|
10a1a: 7813 ldrb r3, [r2, #0]
|
|
10a1c: 2401 movs r4, #1
|
|
10a1e: 43a3 bics r3, r4
|
|
10a20: 7013 strb r3, [r2, #0]
|
|
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
|
|
10a22: 6803 ldr r3, [r0, #0]
|
|
10a24: 085b lsrs r3, r3, #1
|
|
10a26: 3b04 subs r3, #4
|
|
10a28: 1a5b subs r3, r3, r1
|
|
10a2a: 005b lsls r3, r3, #1
|
|
10a2c: 6815 ldr r5, [r2, #0]
|
|
10a2e: 402c ands r4, r5
|
|
10a30: 4323 orrs r3, r4
|
|
10a32: 6013 str r3, [r2, #0]
|
|
}
|
|
|
|
/* Set the new size for the original entry */
|
|
e->header.s.d_size = (uint32_t)size;
|
|
10a34: 0049 lsls r1, r1, #1
|
|
10a36: 2301 movs r3, #1
|
|
10a38: 6802 ldr r2, [r0, #0]
|
|
10a3a: 4013 ands r3, r2
|
|
10a3c: 4319 orrs r1, r3
|
|
10a3e: 6001 str r1, [r0, #0]
|
|
}
|
|
10a40: bd30 pop {r4, r5, pc}
|
|
size = e->header.s.d_size;
|
|
10a42: 0011 movs r1, r2
|
|
10a44: e7f6 b.n 10a34 <ent_trunc+0x38>
|
|
...
|
|
|
|
00010a48 <_lv_mem_init>:
|
|
work_mem = (uint8_t *)work_mem_int;
|
|
10a48: 4b06 ldr r3, [pc, #24] ; (10a64 <_lv_mem_init+0x1c>)
|
|
10a4a: 4a07 ldr r2, [pc, #28] ; (10a68 <_lv_mem_init+0x20>)
|
|
10a4c: 6013 str r3, [r2, #0]
|
|
full->header.s.used = 0;
|
|
10a4e: 7819 ldrb r1, [r3, #0]
|
|
10a50: 2201 movs r2, #1
|
|
10a52: 4391 bics r1, r2
|
|
10a54: 7019 strb r1, [r3, #0]
|
|
full->header.s.d_size = LV_MEM_SIZE - sizeof(lv_mem_header_t);
|
|
10a56: 6819 ldr r1, [r3, #0]
|
|
10a58: 400a ands r2, r1
|
|
10a5a: 4904 ldr r1, [pc, #16] ; (10a6c <_lv_mem_init+0x24>)
|
|
10a5c: 430a orrs r2, r1
|
|
10a5e: 601a str r2, [r3, #0]
|
|
}
|
|
10a60: 4770 bx lr
|
|
10a62: 46c0 nop ; (mov r8, r8)
|
|
10a64: 20002c10 .word 0x20002c10
|
|
10a68: 20002c0c .word 0x20002c0c
|
|
10a6c: 00003ff8 .word 0x00003ff8
|
|
|
|
00010a70 <lv_mem_alloc>:
|
|
{
|
|
10a70: b5f0 push {r4, r5, r6, r7, lr}
|
|
10a72: 46c6 mov lr, r8
|
|
10a74: b500 push {lr}
|
|
10a76: 1e05 subs r5, r0, #0
|
|
if(size == 0) {
|
|
10a78: d020 beq.n 10abc <lv_mem_alloc+0x4c>
|
|
if(size & 0x3) {
|
|
10a7a: 0783 lsls r3, r0, #30
|
|
10a7c: d002 beq.n 10a84 <lv_mem_alloc+0x14>
|
|
size = size & (~0x3);
|
|
10a7e: 2303 movs r3, #3
|
|
10a80: 439d bics r5, r3
|
|
size += 4;
|
|
10a82: 3504 adds r5, #4
|
|
lv_mem_ent_t * e = NULL;
|
|
10a84: 2400 movs r4, #0
|
|
e = ent_get_next(e);
|
|
10a86: 4e10 ldr r6, [pc, #64] ; (10ac8 <lv_mem_alloc+0x58>)
|
|
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
|
|
10a88: 2301 movs r3, #1
|
|
10a8a: 4698 mov r8, r3
|
|
ent_trunc(e, size);
|
|
10a8c: 4f0f ldr r7, [pc, #60] ; (10acc <lv_mem_alloc+0x5c>)
|
|
10a8e: e008 b.n 10aa2 <lv_mem_alloc+0x32>
|
|
10a90: 0029 movs r1, r5
|
|
10a92: 47b8 blx r7
|
|
e->header.s.used = 1;
|
|
10a94: 7823 ldrb r3, [r4, #0]
|
|
10a96: 2201 movs r2, #1
|
|
10a98: 4313 orrs r3, r2
|
|
10a9a: 7023 strb r3, [r4, #0]
|
|
alloc = &e->first_data;
|
|
10a9c: 1d20 adds r0, r4, #4
|
|
} while(e != NULL && alloc == NULL);
|
|
10a9e: 2800 cmp r0, #0
|
|
10aa0: d10f bne.n 10ac2 <lv_mem_alloc+0x52>
|
|
e = ent_get_next(e);
|
|
10aa2: 0020 movs r0, r4
|
|
10aa4: 47b0 blx r6
|
|
10aa6: 1e04 subs r4, r0, #0
|
|
if(e != NULL) {
|
|
10aa8: d00a beq.n 10ac0 <lv_mem_alloc+0x50>
|
|
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
|
|
10aaa: 7803 ldrb r3, [r0, #0]
|
|
10aac: 4642 mov r2, r8
|
|
10aae: 421a tst r2, r3
|
|
10ab0: d1f7 bne.n 10aa2 <lv_mem_alloc+0x32>
|
|
10ab2: 6803 ldr r3, [r0, #0]
|
|
10ab4: 085b lsrs r3, r3, #1
|
|
10ab6: 429d cmp r5, r3
|
|
10ab8: d9ea bls.n 10a90 <lv_mem_alloc+0x20>
|
|
10aba: e7f2 b.n 10aa2 <lv_mem_alloc+0x32>
|
|
return &zero_mem;
|
|
10abc: 4804 ldr r0, [pc, #16] ; (10ad0 <lv_mem_alloc+0x60>)
|
|
10abe: e000 b.n 10ac2 <lv_mem_alloc+0x52>
|
|
10ac0: 2000 movs r0, #0
|
|
}
|
|
10ac2: bc04 pop {r2}
|
|
10ac4: 4690 mov r8, r2
|
|
10ac6: bdf0 pop {r4, r5, r6, r7, pc}
|
|
10ac8: 000109d1 .word 0x000109d1
|
|
10acc: 000109fd .word 0x000109fd
|
|
10ad0: 20004c10 .word 0x20004c10
|
|
|
|
00010ad4 <lv_mem_defrag>:
|
|
{
|
|
10ad4: b5f0 push {r4, r5, r6, r7, lr}
|
|
10ad6: 46c6 mov lr, r8
|
|
10ad8: b500 push {lr}
|
|
e_free = ent_get_next(NULL);
|
|
10ada: 2000 movs r0, #0
|
|
10adc: 4b15 ldr r3, [pc, #84] ; (10b34 <lv_mem_defrag+0x60>)
|
|
10ade: 4798 blx r3
|
|
10ae0: 0004 movs r4, r0
|
|
if(e_free->header.s.used != 0) {
|
|
10ae2: 2501 movs r5, #1
|
|
e_next = ent_get_next(e_free);
|
|
10ae4: 4f13 ldr r7, [pc, #76] ; (10b34 <lv_mem_defrag+0x60>)
|
|
e_next = ent_get_next(e_next);
|
|
10ae6: 003e movs r6, r7
|
|
e_free = ent_get_next(e_free);
|
|
10ae8: 46b8 mov r8, r7
|
|
10aea: e017 b.n 10b1c <lv_mem_defrag+0x48>
|
|
e_next = ent_get_next(e_free);
|
|
10aec: 0020 movs r0, r4
|
|
10aee: 47b8 blx r7
|
|
while(e_next != NULL) {
|
|
10af0: 2800 cmp r0, #0
|
|
10af2: d01c beq.n 10b2e <lv_mem_defrag+0x5a>
|
|
if(e_next->header.s.used == 0) {
|
|
10af4: 7803 ldrb r3, [r0, #0]
|
|
10af6: 421d tst r5, r3
|
|
10af8: d10f bne.n 10b1a <lv_mem_defrag+0x46>
|
|
e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header);
|
|
10afa: 6822 ldr r2, [r4, #0]
|
|
10afc: 0853 lsrs r3, r2, #1
|
|
10afe: 3304 adds r3, #4
|
|
10b00: 6801 ldr r1, [r0, #0]
|
|
10b02: 0849 lsrs r1, r1, #1
|
|
10b04: 185b adds r3, r3, r1
|
|
10b06: 005b lsls r3, r3, #1
|
|
10b08: 402a ands r2, r5
|
|
10b0a: 4313 orrs r3, r2
|
|
10b0c: 6023 str r3, [r4, #0]
|
|
e_next = ent_get_next(e_next);
|
|
10b0e: 47b0 blx r6
|
|
while(e_next != NULL) {
|
|
10b10: 2800 cmp r0, #0
|
|
10b12: d00c beq.n 10b2e <lv_mem_defrag+0x5a>
|
|
if(e_next->header.s.used == 0) {
|
|
10b14: 7803 ldrb r3, [r0, #0]
|
|
10b16: 421d tst r5, r3
|
|
10b18: d0ef beq.n 10afa <lv_mem_defrag+0x26>
|
|
{
|
|
10b1a: 0004 movs r4, r0
|
|
while(e_free != NULL) {
|
|
10b1c: 2c00 cmp r4, #0
|
|
10b1e: d006 beq.n 10b2e <lv_mem_defrag+0x5a>
|
|
if(e_free->header.s.used != 0) {
|
|
10b20: 7823 ldrb r3, [r4, #0]
|
|
10b22: 421d tst r5, r3
|
|
10b24: d0e2 beq.n 10aec <lv_mem_defrag+0x18>
|
|
e_free = ent_get_next(e_free);
|
|
10b26: 0020 movs r0, r4
|
|
10b28: 47c0 blx r8
|
|
10b2a: 0004 movs r4, r0
|
|
10b2c: e7f6 b.n 10b1c <lv_mem_defrag+0x48>
|
|
}
|
|
10b2e: bc04 pop {r2}
|
|
10b30: 4690 mov r8, r2
|
|
10b32: bdf0 pop {r4, r5, r6, r7, pc}
|
|
10b34: 000109d1 .word 0x000109d1
|
|
|
|
00010b38 <lv_mem_free>:
|
|
{
|
|
10b38: b570 push {r4, r5, r6, lr}
|
|
10b3a: 0004 movs r4, r0
|
|
if(data == &zero_mem) return;
|
|
10b3c: 4b19 ldr r3, [pc, #100] ; (10ba4 <lv_mem_free+0x6c>)
|
|
10b3e: 4298 cmp r0, r3
|
|
10b40: d028 beq.n 10b94 <lv_mem_free+0x5c>
|
|
if(data == NULL) return;
|
|
10b42: 2800 cmp r0, #0
|
|
10b44: d026 beq.n 10b94 <lv_mem_free+0x5c>
|
|
e->header.s.used = 0;
|
|
10b46: 1f02 subs r2, r0, #4
|
|
10b48: 7813 ldrb r3, [r2, #0]
|
|
10b4a: 2101 movs r1, #1
|
|
10b4c: 438b bics r3, r1
|
|
10b4e: 7013 strb r3, [r2, #0]
|
|
full_defrag_cnt++;
|
|
10b50: 4a15 ldr r2, [pc, #84] ; (10ba8 <lv_mem_free+0x70>)
|
|
10b52: 8813 ldrh r3, [r2, #0]
|
|
10b54: 3301 adds r3, #1
|
|
10b56: b29b uxth r3, r3
|
|
10b58: 8013 strh r3, [r2, #0]
|
|
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
|
|
10b5a: 2b0f cmp r3, #15
|
|
10b5c: d81b bhi.n 10b96 <lv_mem_free+0x5e>
|
|
lv_mem_ent_t * e = (lv_mem_ent_t *)((uint8_t *)data - sizeof(lv_mem_header_t));
|
|
10b5e: 3804 subs r0, #4
|
|
e_next = ent_get_next(e);
|
|
10b60: 4b12 ldr r3, [pc, #72] ; (10bac <lv_mem_free+0x74>)
|
|
10b62: 4798 blx r3
|
|
while(e_next != NULL) {
|
|
10b64: 2800 cmp r0, #0
|
|
10b66: d015 beq.n 10b94 <lv_mem_free+0x5c>
|
|
if(e_next->header.s.used == 0) {
|
|
10b68: 7803 ldrb r3, [r0, #0]
|
|
10b6a: 07db lsls r3, r3, #31
|
|
10b6c: d412 bmi.n 10b94 <lv_mem_free+0x5c>
|
|
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
|
|
10b6e: 3c04 subs r4, #4
|
|
10b70: 2501 movs r5, #1
|
|
e_next = ent_get_next(e_next);
|
|
10b72: 4e0e ldr r6, [pc, #56] ; (10bac <lv_mem_free+0x74>)
|
|
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
|
|
10b74: 6822 ldr r2, [r4, #0]
|
|
10b76: 0853 lsrs r3, r2, #1
|
|
10b78: 3304 adds r3, #4
|
|
10b7a: 6801 ldr r1, [r0, #0]
|
|
10b7c: 0849 lsrs r1, r1, #1
|
|
10b7e: 185b adds r3, r3, r1
|
|
10b80: 005b lsls r3, r3, #1
|
|
10b82: 402a ands r2, r5
|
|
10b84: 4313 orrs r3, r2
|
|
10b86: 6023 str r3, [r4, #0]
|
|
e_next = ent_get_next(e_next);
|
|
10b88: 47b0 blx r6
|
|
while(e_next != NULL) {
|
|
10b8a: 2800 cmp r0, #0
|
|
10b8c: d002 beq.n 10b94 <lv_mem_free+0x5c>
|
|
if(e_next->header.s.used == 0) {
|
|
10b8e: 7803 ldrb r3, [r0, #0]
|
|
10b90: 421d tst r5, r3
|
|
10b92: d0ef beq.n 10b74 <lv_mem_free+0x3c>
|
|
}
|
|
10b94: bd70 pop {r4, r5, r6, pc}
|
|
full_defrag_cnt = 0;
|
|
10b96: 2200 movs r2, #0
|
|
10b98: 4b03 ldr r3, [pc, #12] ; (10ba8 <lv_mem_free+0x70>)
|
|
10b9a: 801a strh r2, [r3, #0]
|
|
lv_mem_defrag();
|
|
10b9c: 4b04 ldr r3, [pc, #16] ; (10bb0 <lv_mem_free+0x78>)
|
|
10b9e: 4798 blx r3
|
|
10ba0: e7f8 b.n 10b94 <lv_mem_free+0x5c>
|
|
10ba2: 46c0 nop ; (mov r8, r8)
|
|
10ba4: 20004c10 .word 0x20004c10
|
|
10ba8: 20002be8 .word 0x20002be8
|
|
10bac: 000109d1 .word 0x000109d1
|
|
10bb0: 00010ad5 .word 0x00010ad5
|
|
|
|
00010bb4 <_lv_mem_get_size>:
|
|
if(data == NULL) return 0;
|
|
10bb4: 2800 cmp r0, #0
|
|
10bb6: d006 beq.n 10bc6 <_lv_mem_get_size+0x12>
|
|
if(data == &zero_mem) return 0;
|
|
10bb8: 4b05 ldr r3, [pc, #20] ; (10bd0 <_lv_mem_get_size+0x1c>)
|
|
10bba: 4298 cmp r0, r3
|
|
10bbc: d005 beq.n 10bca <_lv_mem_get_size+0x16>
|
|
return e->header.s.d_size;
|
|
10bbe: 3804 subs r0, #4
|
|
10bc0: 6800 ldr r0, [r0, #0]
|
|
10bc2: 0840 lsrs r0, r0, #1
|
|
}
|
|
10bc4: 4770 bx lr
|
|
if(data == NULL) return 0;
|
|
10bc6: 2000 movs r0, #0
|
|
10bc8: e7fc b.n 10bc4 <_lv_mem_get_size+0x10>
|
|
if(data == &zero_mem) return 0;
|
|
10bca: 2000 movs r0, #0
|
|
10bcc: e7fa b.n 10bc4 <_lv_mem_get_size+0x10>
|
|
10bce: 46c0 nop ; (mov r8, r8)
|
|
10bd0: 20004c10 .word 0x20004c10
|
|
|
|
00010bd4 <_lv_mem_buf_release>:
|
|
{
|
|
10bd4: b510 push {r4, lr}
|
|
if(mem_buf_small[i].p == p) {
|
|
10bd6: 4b15 ldr r3, [pc, #84] ; (10c2c <_lv_mem_buf_release+0x58>)
|
|
10bd8: 681b ldr r3, [r3, #0]
|
|
10bda: 4298 cmp r0, r3
|
|
10bdc: d013 beq.n 10c06 <_lv_mem_buf_release+0x32>
|
|
10bde: 4b13 ldr r3, [pc, #76] ; (10c2c <_lv_mem_buf_release+0x58>)
|
|
10be0: 689b ldr r3, [r3, #8]
|
|
10be2: 2201 movs r2, #1
|
|
10be4: 4283 cmp r3, r0
|
|
10be6: d00f beq.n 10c08 <_lv_mem_buf_release+0x34>
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
|
|
10be8: 4b11 ldr r3, [pc, #68] ; (10c30 <_lv_mem_buf_release+0x5c>)
|
|
10bea: 681b ldr r3, [r3, #0]
|
|
10bec: 4298 cmp r0, r3
|
|
10bee: d013 beq.n 10c18 <_lv_mem_buf_release+0x44>
|
|
10bf0: 2301 movs r3, #1
|
|
10bf2: 4c0f ldr r4, [pc, #60] ; (10c30 <_lv_mem_buf_release+0x5c>)
|
|
10bf4: 0019 movs r1, r3
|
|
10bf6: 00da lsls r2, r3, #3
|
|
10bf8: 58a2 ldr r2, [r4, r2]
|
|
10bfa: 4290 cmp r0, r2
|
|
10bfc: d00d beq.n 10c1a <_lv_mem_buf_release+0x46>
|
|
10bfe: 3301 adds r3, #1
|
|
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
|
|
10c00: 2b10 cmp r3, #16
|
|
10c02: d1f7 bne.n 10bf4 <_lv_mem_buf_release+0x20>
|
|
}
|
|
10c04: bd10 pop {r4, pc}
|
|
if(mem_buf_small[i].p == p) {
|
|
10c06: 2200 movs r2, #0
|
|
mem_buf_small[i].used = 0;
|
|
10c08: 00d2 lsls r2, r2, #3
|
|
10c0a: 4b08 ldr r3, [pc, #32] ; (10c2c <_lv_mem_buf_release+0x58>)
|
|
10c0c: 189b adds r3, r3, r2
|
|
10c0e: 799a ldrb r2, [r3, #6]
|
|
10c10: 2101 movs r1, #1
|
|
10c12: 438a bics r2, r1
|
|
10c14: 719a strb r2, [r3, #6]
|
|
return;
|
|
10c16: e7f5 b.n 10c04 <_lv_mem_buf_release+0x30>
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
|
|
10c18: 2100 movs r1, #0
|
|
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
|
|
10c1a: 00c9 lsls r1, r1, #3
|
|
10c1c: 4b04 ldr r3, [pc, #16] ; (10c30 <_lv_mem_buf_release+0x5c>)
|
|
10c1e: 1859 adds r1, r3, r1
|
|
10c20: 798b ldrb r3, [r1, #6]
|
|
10c22: 2201 movs r2, #1
|
|
10c24: 4393 bics r3, r2
|
|
10c26: 718b strb r3, [r1, #6]
|
|
return;
|
|
10c28: e7ec b.n 10c04 <_lv_mem_buf_release+0x30>
|
|
10c2a: 46c0 nop ; (mov r8, r8)
|
|
10c2c: 20000044 .word 0x20000044
|
|
10c30: 20004cdc .word 0x20004cdc
|
|
|
|
00010c34 <_lv_mem_buf_free_all>:
|
|
{
|
|
10c34: b5f0 push {r4, r5, r6, r7, lr}
|
|
10c36: 46c6 mov lr, r8
|
|
10c38: b500 push {lr}
|
|
mem_buf_small[i].used = 0;
|
|
10c3a: 4b11 ldr r3, [pc, #68] ; (10c80 <_lv_mem_buf_free_all+0x4c>)
|
|
10c3c: 799a ldrb r2, [r3, #6]
|
|
10c3e: 2101 movs r1, #1
|
|
10c40: 438a bics r2, r1
|
|
10c42: 719a strb r2, [r3, #6]
|
|
10c44: 7b9a ldrb r2, [r3, #14]
|
|
10c46: 438a bics r2, r1
|
|
10c48: 739a strb r2, [r3, #14]
|
|
10c4a: 4c0e ldr r4, [pc, #56] ; (10c84 <_lv_mem_buf_free_all+0x50>)
|
|
10c4c: 2500 movs r5, #0
|
|
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
|
|
10c4e: 4b0e ldr r3, [pc, #56] ; (10c88 <_lv_mem_buf_free_all+0x54>)
|
|
10c50: 4698 mov r8, r3
|
|
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
|
|
10c52: 2600 movs r6, #0
|
|
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
|
|
10c54: 0027 movs r7, r4
|
|
10c56: e003 b.n 10c60 <_lv_mem_buf_free_all+0x2c>
|
|
10c58: 3501 adds r5, #1
|
|
10c5a: 3408 adds r4, #8
|
|
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
|
|
10c5c: 2d10 cmp r5, #16
|
|
10c5e: d00c beq.n 10c7a <_lv_mem_buf_free_all+0x46>
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).p) {
|
|
10c60: 6820 ldr r0, [r4, #0]
|
|
10c62: 2800 cmp r0, #0
|
|
10c64: d0f8 beq.n 10c58 <_lv_mem_buf_free_all+0x24>
|
|
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
|
|
10c66: 47c0 blx r8
|
|
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
|
|
10c68: 6026 str r6, [r4, #0]
|
|
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
|
|
10c6a: 00eb lsls r3, r5, #3
|
|
10c6c: 18fb adds r3, r7, r3
|
|
10c6e: 799a ldrb r2, [r3, #6]
|
|
10c70: 2101 movs r1, #1
|
|
10c72: 438a bics r2, r1
|
|
10c74: 719a strb r2, [r3, #6]
|
|
LV_GC_ROOT(_lv_mem_buf[i]).size = 0;
|
|
10c76: 80a6 strh r6, [r4, #4]
|
|
10c78: e7ee b.n 10c58 <_lv_mem_buf_free_all+0x24>
|
|
}
|
|
10c7a: bc04 pop {r2}
|
|
10c7c: 4690 mov r8, r2
|
|
10c7e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
10c80: 20000044 .word 0x20000044
|
|
10c84: 20004cdc .word 0x20004cdc
|
|
10c88: 00010b39 .word 0x00010b39
|
|
|
|
00010c8c <_lv_memcpy>:
|
|
{
|
|
10c8c: b5f0 push {r4, r5, r6, r7, lr}
|
|
10c8e: 46c6 mov lr, r8
|
|
10c90: b500 push {lr}
|
|
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
|
|
10c92: 2303 movs r3, #3
|
|
10c94: 001c movs r4, r3
|
|
10c96: 4004 ands r4, r0
|
|
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
|
|
10c98: 400b ands r3, r1
|
|
if(s_align != d_align) {
|
|
10c9a: 429c cmp r4, r3
|
|
10c9c: d067 beq.n 10d6e <_lv_memcpy+0xe2>
|
|
while(len > 32) {
|
|
10c9e: 2a20 cmp r2, #32
|
|
10ca0: d963 bls.n 10d6a <_lv_memcpy+0xde>
|
|
10ca2: 2321 movs r3, #33 ; 0x21
|
|
10ca4: 425b negs r3, r3
|
|
10ca6: 469c mov ip, r3
|
|
10ca8: 4494 add ip, r2
|
|
10caa: 4663 mov r3, ip
|
|
10cac: 095f lsrs r7, r3, #5
|
|
10cae: 1c7b adds r3, r7, #1
|
|
10cb0: 015b lsls r3, r3, #5
|
|
10cb2: 18c5 adds r5, r0, r3
|
|
10cb4: 000c movs r4, r1
|
|
10cb6: 0003 movs r3, r0
|
|
REPEAT8(COPY8);
|
|
10cb8: 7826 ldrb r6, [r4, #0]
|
|
10cba: 701e strb r6, [r3, #0]
|
|
10cbc: 7866 ldrb r6, [r4, #1]
|
|
10cbe: 705e strb r6, [r3, #1]
|
|
10cc0: 78a6 ldrb r6, [r4, #2]
|
|
10cc2: 709e strb r6, [r3, #2]
|
|
10cc4: 78e6 ldrb r6, [r4, #3]
|
|
10cc6: 70de strb r6, [r3, #3]
|
|
10cc8: 7926 ldrb r6, [r4, #4]
|
|
10cca: 711e strb r6, [r3, #4]
|
|
10ccc: 7966 ldrb r6, [r4, #5]
|
|
10cce: 715e strb r6, [r3, #5]
|
|
10cd0: 79a6 ldrb r6, [r4, #6]
|
|
10cd2: 719e strb r6, [r3, #6]
|
|
10cd4: 79e6 ldrb r6, [r4, #7]
|
|
10cd6: 71de strb r6, [r3, #7]
|
|
REPEAT8(COPY8);
|
|
10cd8: 7a26 ldrb r6, [r4, #8]
|
|
10cda: 721e strb r6, [r3, #8]
|
|
10cdc: 7a66 ldrb r6, [r4, #9]
|
|
10cde: 725e strb r6, [r3, #9]
|
|
10ce0: 7aa6 ldrb r6, [r4, #10]
|
|
10ce2: 729e strb r6, [r3, #10]
|
|
10ce4: 7ae6 ldrb r6, [r4, #11]
|
|
10ce6: 72de strb r6, [r3, #11]
|
|
10ce8: 7b26 ldrb r6, [r4, #12]
|
|
10cea: 731e strb r6, [r3, #12]
|
|
10cec: 7b66 ldrb r6, [r4, #13]
|
|
10cee: 735e strb r6, [r3, #13]
|
|
10cf0: 7ba6 ldrb r6, [r4, #14]
|
|
10cf2: 739e strb r6, [r3, #14]
|
|
10cf4: 7be6 ldrb r6, [r4, #15]
|
|
10cf6: 73de strb r6, [r3, #15]
|
|
REPEAT8(COPY8);
|
|
10cf8: 7c26 ldrb r6, [r4, #16]
|
|
10cfa: 741e strb r6, [r3, #16]
|
|
10cfc: 7c66 ldrb r6, [r4, #17]
|
|
10cfe: 745e strb r6, [r3, #17]
|
|
10d00: 7ca6 ldrb r6, [r4, #18]
|
|
10d02: 749e strb r6, [r3, #18]
|
|
10d04: 7ce6 ldrb r6, [r4, #19]
|
|
10d06: 74de strb r6, [r3, #19]
|
|
10d08: 7d26 ldrb r6, [r4, #20]
|
|
10d0a: 751e strb r6, [r3, #20]
|
|
10d0c: 7d66 ldrb r6, [r4, #21]
|
|
10d0e: 755e strb r6, [r3, #21]
|
|
10d10: 7da6 ldrb r6, [r4, #22]
|
|
10d12: 759e strb r6, [r3, #22]
|
|
10d14: 7de6 ldrb r6, [r4, #23]
|
|
10d16: 75de strb r6, [r3, #23]
|
|
REPEAT8(COPY8);
|
|
10d18: 7e26 ldrb r6, [r4, #24]
|
|
10d1a: 761e strb r6, [r3, #24]
|
|
10d1c: 7e66 ldrb r6, [r4, #25]
|
|
10d1e: 765e strb r6, [r3, #25]
|
|
10d20: 7ea6 ldrb r6, [r4, #26]
|
|
10d22: 769e strb r6, [r3, #26]
|
|
10d24: 7ee6 ldrb r6, [r4, #27]
|
|
10d26: 76de strb r6, [r3, #27]
|
|
10d28: 7f26 ldrb r6, [r4, #28]
|
|
10d2a: 771e strb r6, [r3, #28]
|
|
10d2c: 7f66 ldrb r6, [r4, #29]
|
|
10d2e: 775e strb r6, [r3, #29]
|
|
10d30: 7fa6 ldrb r6, [r4, #30]
|
|
10d32: 779e strb r6, [r3, #30]
|
|
10d34: 7fe6 ldrb r6, [r4, #31]
|
|
10d36: 77de strb r6, [r3, #31]
|
|
10d38: 3320 adds r3, #32
|
|
10d3a: 3420 adds r4, #32
|
|
while(len > 32) {
|
|
10d3c: 42ab cmp r3, r5
|
|
10d3e: d1bb bne.n 10cb8 <_lv_memcpy+0x2c>
|
|
10d40: 231f movs r3, #31
|
|
10d42: 4665 mov r5, ip
|
|
10d44: 439d bics r5, r3
|
|
10d46: 3520 adds r5, #32
|
|
10d48: 1943 adds r3, r0, r5
|
|
10d4a: 1949 adds r1, r1, r5
|
|
10d4c: 3a20 subs r2, #32
|
|
10d4e: 017f lsls r7, r7, #5
|
|
10d50: 1bd2 subs r2, r2, r7
|
|
while(len) {
|
|
10d52: 2a00 cmp r2, #0
|
|
10d54: d006 beq.n 10d64 <_lv_memcpy+0xd8>
|
|
10d56: 189a adds r2, r3, r2
|
|
COPY8
|
|
10d58: 780c ldrb r4, [r1, #0]
|
|
10d5a: 701c strb r4, [r3, #0]
|
|
10d5c: 3301 adds r3, #1
|
|
10d5e: 3101 adds r1, #1
|
|
while(len) {
|
|
10d60: 4293 cmp r3, r2
|
|
10d62: d1f9 bne.n 10d58 <_lv_memcpy+0xcc>
|
|
}
|
|
10d64: bc04 pop {r2}
|
|
10d66: 4690 mov r8, r2
|
|
10d68: bdf0 pop {r4, r5, r6, r7, pc}
|
|
while(len > 32) {
|
|
10d6a: 0003 movs r3, r0
|
|
10d6c: e7f1 b.n 10d52 <_lv_memcpy+0xc6>
|
|
uint8_t * d8 = dst;
|
|
10d6e: 0005 movs r5, r0
|
|
if(d_align) {
|
|
10d70: 2c00 cmp r4, #0
|
|
10d72: d014 beq.n 10d9e <_lv_memcpy+0x112>
|
|
d_align = ALIGN_MASK + 1 - d_align;
|
|
10d74: 2504 movs r5, #4
|
|
10d76: 1b2d subs r5, r5, r4
|
|
while(d_align && len) {
|
|
10d78: d00e beq.n 10d98 <_lv_memcpy+0x10c>
|
|
10d7a: 2a00 cmp r2, #0
|
|
10d7c: d05f beq.n 10e3e <_lv_memcpy+0x1b2>
|
|
10d7e: 1945 adds r5, r0, r5
|
|
10d80: 0003 movs r3, r0
|
|
COPY8;
|
|
10d82: 780c ldrb r4, [r1, #0]
|
|
10d84: 701c strb r4, [r3, #0]
|
|
10d86: 3301 adds r3, #1
|
|
10d88: 3101 adds r1, #1
|
|
len--;
|
|
10d8a: 3a01 subs r2, #1
|
|
while(d_align && len) {
|
|
10d8c: 42ab cmp r3, r5
|
|
10d8e: d005 beq.n 10d9c <_lv_memcpy+0x110>
|
|
10d90: 2a00 cmp r2, #0
|
|
10d92: d1f6 bne.n 10d82 <_lv_memcpy+0xf6>
|
|
while(len > 4) {
|
|
10d94: 2200 movs r2, #0
|
|
10d96: e048 b.n 10e2a <_lv_memcpy+0x19e>
|
|
uint8_t * d8 = dst;
|
|
10d98: 0005 movs r5, r0
|
|
10d9a: e000 b.n 10d9e <_lv_memcpy+0x112>
|
|
COPY8;
|
|
10d9c: 001d movs r5, r3
|
|
while(len > 32) {
|
|
10d9e: 2a20 cmp r2, #32
|
|
10da0: d928 bls.n 10df4 <_lv_memcpy+0x168>
|
|
10da2: 0017 movs r7, r2
|
|
10da4: 3f21 subs r7, #33 ; 0x21
|
|
10da6: 46b8 mov r8, r7
|
|
10da8: 097b lsrs r3, r7, #5
|
|
10daa: 469c mov ip, r3
|
|
10dac: 1c5e adds r6, r3, #1
|
|
10dae: 0176 lsls r6, r6, #5
|
|
10db0: 19ae adds r6, r5, r6
|
|
10db2: 000c movs r4, r1
|
|
10db4: 002b movs r3, r5
|
|
REPEAT8(COPY32)
|
|
10db6: 6827 ldr r7, [r4, #0]
|
|
10db8: 601f str r7, [r3, #0]
|
|
10dba: 6867 ldr r7, [r4, #4]
|
|
10dbc: 605f str r7, [r3, #4]
|
|
10dbe: 68a7 ldr r7, [r4, #8]
|
|
10dc0: 609f str r7, [r3, #8]
|
|
10dc2: 68e7 ldr r7, [r4, #12]
|
|
10dc4: 60df str r7, [r3, #12]
|
|
10dc6: 6927 ldr r7, [r4, #16]
|
|
10dc8: 611f str r7, [r3, #16]
|
|
10dca: 6967 ldr r7, [r4, #20]
|
|
10dcc: 615f str r7, [r3, #20]
|
|
10dce: 69a7 ldr r7, [r4, #24]
|
|
10dd0: 619f str r7, [r3, #24]
|
|
10dd2: 69e7 ldr r7, [r4, #28]
|
|
10dd4: 61df str r7, [r3, #28]
|
|
10dd6: 3320 adds r3, #32
|
|
10dd8: 3420 adds r4, #32
|
|
while(len > 32) {
|
|
10dda: 429e cmp r6, r3
|
|
10ddc: d1eb bne.n 10db6 <_lv_memcpy+0x12a>
|
|
10dde: 231f movs r3, #31
|
|
10de0: 4647 mov r7, r8
|
|
10de2: 439f bics r7, r3
|
|
10de4: 3720 adds r7, #32
|
|
10de6: 19ed adds r5, r5, r7
|
|
10de8: 19c9 adds r1, r1, r7
|
|
10dea: 0013 movs r3, r2
|
|
10dec: 3b20 subs r3, #32
|
|
10dee: 4662 mov r2, ip
|
|
10df0: 0152 lsls r2, r2, #5
|
|
10df2: 1a9a subs r2, r3, r2
|
|
while(len > 4) {
|
|
10df4: 002b movs r3, r5
|
|
10df6: 2a04 cmp r2, #4
|
|
10df8: d917 bls.n 10e2a <_lv_memcpy+0x19e>
|
|
10dfa: 1f53 subs r3, r2, #5
|
|
10dfc: 469c mov ip, r3
|
|
10dfe: 089b lsrs r3, r3, #2
|
|
10e00: 4698 mov r8, r3
|
|
10e02: 3301 adds r3, #1
|
|
10e04: 009b lsls r3, r3, #2
|
|
10e06: 18eb adds r3, r5, r3
|
|
10e08: 000e movs r6, r1
|
|
10e0a: 002c movs r4, r5
|
|
COPY32;
|
|
10e0c: ce80 ldmia r6!, {r7}
|
|
10e0e: c480 stmia r4!, {r7}
|
|
while(len > 4) {
|
|
10e10: 429c cmp r4, r3
|
|
10e12: d1fb bne.n 10e0c <_lv_memcpy+0x180>
|
|
10e14: 2303 movs r3, #3
|
|
10e16: 4664 mov r4, ip
|
|
10e18: 439c bics r4, r3
|
|
10e1a: 0023 movs r3, r4
|
|
10e1c: 3304 adds r3, #4
|
|
10e1e: 1f14 subs r4, r2, #4
|
|
10e20: 4642 mov r2, r8
|
|
10e22: 0092 lsls r2, r2, #2
|
|
10e24: 1aa2 subs r2, r4, r2
|
|
COPY32;
|
|
10e26: 18c9 adds r1, r1, r3
|
|
10e28: 18eb adds r3, r5, r3
|
|
while(len) {
|
|
10e2a: 2a00 cmp r2, #0
|
|
10e2c: d09a beq.n 10d64 <_lv_memcpy+0xd8>
|
|
10e2e: 189a adds r2, r3, r2
|
|
COPY8
|
|
10e30: 780c ldrb r4, [r1, #0]
|
|
10e32: 701c strb r4, [r3, #0]
|
|
10e34: 3301 adds r3, #1
|
|
10e36: 3101 adds r1, #1
|
|
while(len) {
|
|
10e38: 4293 cmp r3, r2
|
|
10e3a: d1f9 bne.n 10e30 <_lv_memcpy+0x1a4>
|
|
10e3c: e792 b.n 10d64 <_lv_memcpy+0xd8>
|
|
uint8_t * d8 = dst;
|
|
10e3e: 0003 movs r3, r0
|
|
10e40: e7a8 b.n 10d94 <_lv_memcpy+0x108>
|
|
...
|
|
|
|
00010e44 <lv_mem_realloc>:
|
|
{
|
|
10e44: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
10e46: 0005 movs r5, r0
|
|
10e48: 000c movs r4, r1
|
|
if(new_size & 0x3) {
|
|
10e4a: 078b lsls r3, r1, #30
|
|
10e4c: d002 beq.n 10e54 <lv_mem_realloc+0x10>
|
|
new_size = new_size & (~0x3);
|
|
10e4e: 2303 movs r3, #3
|
|
10e50: 439c bics r4, r3
|
|
new_size += 4;
|
|
10e52: 3404 adds r4, #4
|
|
if(data_p != NULL) {
|
|
10e54: 2d00 cmp r5, #0
|
|
10e56: d004 beq.n 10e62 <lv_mem_realloc+0x1e>
|
|
if(e->header.s.used == 0) {
|
|
10e58: 1f2b subs r3, r5, #4
|
|
10e5a: 781b ldrb r3, [r3, #0]
|
|
data_p = NULL;
|
|
10e5c: 07db lsls r3, r3, #31
|
|
10e5e: 17db asrs r3, r3, #31
|
|
10e60: 401d ands r5, r3
|
|
uint32_t old_size = _lv_mem_get_size(data_p);
|
|
10e62: 0028 movs r0, r5
|
|
10e64: 4b11 ldr r3, [pc, #68] ; (10eac <lv_mem_realloc+0x68>)
|
|
10e66: 4798 blx r3
|
|
10e68: 0007 movs r7, r0
|
|
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
|
|
10e6a: 4284 cmp r4, r0
|
|
10e6c: d01c beq.n 10ea8 <lv_mem_realloc+0x64>
|
|
if(new_size < old_size) {
|
|
10e6e: d314 bcc.n 10e9a <lv_mem_realloc+0x56>
|
|
new_p = lv_mem_alloc(new_size);
|
|
10e70: 0020 movs r0, r4
|
|
10e72: 4b0f ldr r3, [pc, #60] ; (10eb0 <lv_mem_realloc+0x6c>)
|
|
10e74: 4798 blx r3
|
|
10e76: 1e06 subs r6, r0, #0
|
|
if(new_p == NULL) {
|
|
10e78: d014 beq.n 10ea4 <lv_mem_realloc+0x60>
|
|
if(data_p != NULL) {
|
|
10e7a: 2d00 cmp r5, #0
|
|
10e7c: d012 beq.n 10ea4 <lv_mem_realloc+0x60>
|
|
if(old_size != 0) {
|
|
10e7e: 2f00 cmp r7, #0
|
|
10e80: d010 beq.n 10ea4 <lv_mem_realloc+0x60>
|
|
_lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size));
|
|
10e82: 0022 movs r2, r4
|
|
10e84: 42bc cmp r4, r7
|
|
10e86: d900 bls.n 10e8a <lv_mem_realloc+0x46>
|
|
10e88: 003a movs r2, r7
|
|
10e8a: 0029 movs r1, r5
|
|
10e8c: 0030 movs r0, r6
|
|
10e8e: 4b09 ldr r3, [pc, #36] ; (10eb4 <lv_mem_realloc+0x70>)
|
|
10e90: 4798 blx r3
|
|
lv_mem_free(data_p);
|
|
10e92: 0028 movs r0, r5
|
|
10e94: 4b08 ldr r3, [pc, #32] ; (10eb8 <lv_mem_realloc+0x74>)
|
|
10e96: 4798 blx r3
|
|
10e98: e004 b.n 10ea4 <lv_mem_realloc+0x60>
|
|
lv_mem_ent_t * e = (lv_mem_ent_t *)((uint8_t *)data_p - sizeof(lv_mem_header_t));
|
|
10e9a: 1f28 subs r0, r5, #4
|
|
ent_trunc(e, new_size);
|
|
10e9c: 0021 movs r1, r4
|
|
10e9e: 4b07 ldr r3, [pc, #28] ; (10ebc <lv_mem_realloc+0x78>)
|
|
10ea0: 4798 blx r3
|
|
return &e->first_data;
|
|
10ea2: 002e movs r6, r5
|
|
}
|
|
10ea4: 0030 movs r0, r6
|
|
10ea6: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
|
|
10ea8: 002e movs r6, r5
|
|
10eaa: e7fb b.n 10ea4 <lv_mem_realloc+0x60>
|
|
10eac: 00010bb5 .word 0x00010bb5
|
|
10eb0: 00010a71 .word 0x00010a71
|
|
10eb4: 00010c8d .word 0x00010c8d
|
|
10eb8: 00010b39 .word 0x00010b39
|
|
10ebc: 000109fd .word 0x000109fd
|
|
|
|
00010ec0 <_lv_mem_buf_get>:
|
|
{
|
|
10ec0: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
if(size == 0) return NULL;
|
|
10ec2: 2800 cmp r0, #0
|
|
10ec4: d100 bne.n 10ec8 <_lv_mem_buf_get+0x8>
|
|
10ec6: e068 b.n 10f9a <_lv_mem_buf_get+0xda>
|
|
if(size <= MEM_BUF_SMALL_SIZE) {
|
|
10ec8: 2810 cmp r0, #16
|
|
10eca: d807 bhi.n 10edc <_lv_mem_buf_get+0x1c>
|
|
if(mem_buf_small[i].used == 0) {
|
|
10ecc: 4b34 ldr r3, [pc, #208] ; (10fa0 <_lv_mem_buf_get+0xe0>)
|
|
10ece: 799b ldrb r3, [r3, #6]
|
|
10ed0: 07db lsls r3, r3, #31
|
|
10ed2: d513 bpl.n 10efc <_lv_mem_buf_get+0x3c>
|
|
10ed4: 4b32 ldr r3, [pc, #200] ; (10fa0 <_lv_mem_buf_get+0xe0>)
|
|
10ed6: 7b9b ldrb r3, [r3, #14]
|
|
10ed8: 07db lsls r3, r3, #31
|
|
10eda: d505 bpl.n 10ee8 <_lv_mem_buf_get+0x28>
|
|
10edc: 4c31 ldr r4, [pc, #196] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10ede: 2300 movs r3, #0
|
|
10ee0: 2601 movs r6, #1
|
|
10ee2: 4276 negs r6, r6
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
|
|
10ee4: 0027 movs r7, r4
|
|
10ee6: e019 b.n 10f1c <_lv_mem_buf_get+0x5c>
|
|
if(mem_buf_small[i].used == 0) {
|
|
10ee8: 2301 movs r3, #1
|
|
mem_buf_small[i].used = 1;
|
|
10eea: 492d ldr r1, [pc, #180] ; (10fa0 <_lv_mem_buf_get+0xe0>)
|
|
10eec: 00db lsls r3, r3, #3
|
|
10eee: 18c8 adds r0, r1, r3
|
|
10ef0: 7982 ldrb r2, [r0, #6]
|
|
10ef2: 2401 movs r4, #1
|
|
10ef4: 4322 orrs r2, r4
|
|
10ef6: 7182 strb r2, [r0, #6]
|
|
return mem_buf_small[i].p;
|
|
10ef8: 5858 ldr r0, [r3, r1]
|
|
10efa: e02d b.n 10f58 <_lv_mem_buf_get+0x98>
|
|
if(mem_buf_small[i].used == 0) {
|
|
10efc: 2300 movs r3, #0
|
|
10efe: e7f4 b.n 10eea <_lv_mem_buf_get+0x2a>
|
|
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
|
|
10f00: 4a28 ldr r2, [pc, #160] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f02: 00dd lsls r5, r3, #3
|
|
10f04: 1951 adds r1, r2, r5
|
|
10f06: 798b ldrb r3, [r1, #6]
|
|
10f08: 2001 movs r0, #1
|
|
10f0a: 4303 orrs r3, r0
|
|
10f0c: 718b strb r3, [r1, #6]
|
|
return LV_GC_ROOT(_lv_mem_buf[i]).p;
|
|
10f0e: 58a8 ldr r0, [r5, r2]
|
|
10f10: e022 b.n 10f58 <_lv_mem_buf_get+0x98>
|
|
i_guess = i;
|
|
10f12: b25e sxtb r6, r3
|
|
10f14: 3301 adds r3, #1
|
|
10f16: 3408 adds r4, #8
|
|
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
|
|
10f18: 2b10 cmp r3, #16
|
|
10f1a: d013 beq.n 10f44 <_lv_mem_buf_get+0x84>
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
|
|
10f1c: 00da lsls r2, r3, #3
|
|
10f1e: 18ba adds r2, r7, r2
|
|
10f20: 7992 ldrb r2, [r2, #6]
|
|
10f22: 07d2 lsls r2, r2, #31
|
|
10f24: d4f6 bmi.n 10f14 <_lv_mem_buf_get+0x54>
|
|
10f26: 88a2 ldrh r2, [r4, #4]
|
|
10f28: 4290 cmp r0, r2
|
|
10f2a: d8f3 bhi.n 10f14 <_lv_mem_buf_get+0x54>
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) {
|
|
10f2c: d0e8 beq.n 10f00 <_lv_mem_buf_get+0x40>
|
|
else if(i_guess < 0) {
|
|
10f2e: 2e00 cmp r6, #0
|
|
10f30: dbef blt.n 10f12 <_lv_mem_buf_get+0x52>
|
|
else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) {
|
|
10f32: 00f1 lsls r1, r6, #3
|
|
10f34: 4d1b ldr r5, [pc, #108] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f36: 46ac mov ip, r5
|
|
10f38: 4461 add r1, ip
|
|
10f3a: 8889 ldrh r1, [r1, #4]
|
|
10f3c: 4291 cmp r1, r2
|
|
10f3e: d9e9 bls.n 10f14 <_lv_mem_buf_get+0x54>
|
|
i_guess = i;
|
|
10f40: b25e sxtb r6, r3
|
|
10f42: e7e7 b.n 10f14 <_lv_mem_buf_get+0x54>
|
|
if(i_guess >= 0) {
|
|
10f44: 2e00 cmp r6, #0
|
|
10f46: db08 blt.n 10f5a <_lv_mem_buf_get+0x9a>
|
|
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
|
|
10f48: 4916 ldr r1, [pc, #88] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f4a: 00f3 lsls r3, r6, #3
|
|
10f4c: 18c8 adds r0, r1, r3
|
|
10f4e: 7982 ldrb r2, [r0, #6]
|
|
10f50: 2401 movs r4, #1
|
|
10f52: 4322 orrs r2, r4
|
|
10f54: 7182 strb r2, [r0, #6]
|
|
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
|
|
10f56: 5858 ldr r0, [r3, r1]
|
|
}
|
|
10f58: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) {
|
|
10f5a: 4b12 ldr r3, [pc, #72] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f5c: 799a ldrb r2, [r3, #6]
|
|
10f5e: 2301 movs r3, #1
|
|
10f60: 2400 movs r4, #0
|
|
10f62: 07d2 lsls r2, r2, #31
|
|
10f64: d50b bpl.n 10f7e <_lv_mem_buf_get+0xbe>
|
|
10f66: 490f ldr r1, [pc, #60] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f68: 001c movs r4, r3
|
|
10f6a: 00da lsls r2, r3, #3
|
|
10f6c: 188a adds r2, r1, r2
|
|
10f6e: 7992 ldrb r2, [r2, #6]
|
|
10f70: 07d2 lsls r2, r2, #31
|
|
10f72: d504 bpl.n 10f7e <_lv_mem_buf_get+0xbe>
|
|
10f74: 3301 adds r3, #1
|
|
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
|
|
10f76: 2b10 cmp r3, #16
|
|
10f78: d1f6 bne.n 10f68 <_lv_mem_buf_get+0xa8>
|
|
return NULL;
|
|
10f7a: 2000 movs r0, #0
|
|
10f7c: e7ec b.n 10f58 <_lv_mem_buf_get+0x98>
|
|
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
|
|
10f7e: 4d09 ldr r5, [pc, #36] ; (10fa4 <_lv_mem_buf_get+0xe4>)
|
|
10f80: 00e4 lsls r4, r4, #3
|
|
10f82: 192b adds r3, r5, r4
|
|
10f84: 799a ldrb r2, [r3, #6]
|
|
10f86: 2101 movs r1, #1
|
|
10f88: 430a orrs r2, r1
|
|
10f8a: 719a strb r2, [r3, #6]
|
|
LV_GC_ROOT(_lv_mem_buf[i]).size = size;
|
|
10f8c: 8098 strh r0, [r3, #4]
|
|
LV_GC_ROOT(_lv_mem_buf[i]).p = lv_mem_realloc(LV_GC_ROOT(_lv_mem_buf[i]).p, size);
|
|
10f8e: 0001 movs r1, r0
|
|
10f90: 5960 ldr r0, [r4, r5]
|
|
10f92: 4b05 ldr r3, [pc, #20] ; (10fa8 <_lv_mem_buf_get+0xe8>)
|
|
10f94: 4798 blx r3
|
|
10f96: 5160 str r0, [r4, r5]
|
|
return LV_GC_ROOT(_lv_mem_buf[i]).p;
|
|
10f98: e7de b.n 10f58 <_lv_mem_buf_get+0x98>
|
|
if(size == 0) return NULL;
|
|
10f9a: 2000 movs r0, #0
|
|
10f9c: e7dc b.n 10f58 <_lv_mem_buf_get+0x98>
|
|
10f9e: 46c0 nop ; (mov r8, r8)
|
|
10fa0: 20000044 .word 0x20000044
|
|
10fa4: 20004cdc .word 0x20004cdc
|
|
10fa8: 00010e45 .word 0x00010e45
|
|
|
|
00010fac <_lv_memset>:
|
|
{
|
|
10fac: b5f0 push {r4, r5, r6, r7, lr}
|
|
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
|
|
10fae: 2403 movs r4, #3
|
|
10fb0: 4004 ands r4, r0
|
|
if(d_align) {
|
|
10fb2: d00e beq.n 10fd2 <_lv_memset+0x26>
|
|
d_align = ALIGN_MASK + 1 - d_align;
|
|
10fb4: 2304 movs r3, #4
|
|
10fb6: 1b1b subs r3, r3, r4
|
|
while(d_align && len) {
|
|
10fb8: d00b beq.n 10fd2 <_lv_memset+0x26>
|
|
10fba: 2a00 cmp r2, #0
|
|
10fbc: d007 beq.n 10fce <_lv_memset+0x22>
|
|
10fbe: 18c3 adds r3, r0, r3
|
|
*d8 = v;
|
|
10fc0: 7001 strb r1, [r0, #0]
|
|
d8++;
|
|
10fc2: 3001 adds r0, #1
|
|
len--;
|
|
10fc4: 3a01 subs r2, #1
|
|
while(d_align && len) {
|
|
10fc6: 4298 cmp r0, r3
|
|
10fc8: d003 beq.n 10fd2 <_lv_memset+0x26>
|
|
10fca: 2a00 cmp r2, #0
|
|
10fcc: d1f8 bne.n 10fc0 <_lv_memset+0x14>
|
|
while(len > 4) {
|
|
10fce: 2200 movs r2, #0
|
|
10fd0: e034 b.n 1103c <_lv_memset+0x90>
|
|
uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24);
|
|
10fd2: 020c lsls r4, r1, #8
|
|
10fd4: 1864 adds r4, r4, r1
|
|
10fd6: 040b lsls r3, r1, #16
|
|
10fd8: 18e4 adds r4, r4, r3
|
|
10fda: 060b lsls r3, r1, #24
|
|
10fdc: 18e4 adds r4, r4, r3
|
|
while(len > 32) {
|
|
10fde: 0006 movs r6, r0
|
|
10fe0: 2a20 cmp r2, #32
|
|
10fe2: d918 bls.n 11016 <_lv_memset+0x6a>
|
|
10fe4: 0016 movs r6, r2
|
|
10fe6: 3e21 subs r6, #33 ; 0x21
|
|
10fe8: 0977 lsrs r7, r6, #5
|
|
10fea: 1c7d adds r5, r7, #1
|
|
10fec: 016d lsls r5, r5, #5
|
|
10fee: 1945 adds r5, r0, r5
|
|
10ff0: 0003 movs r3, r0
|
|
SET32(v32);
|
|
10ff2: 601c str r4, [r3, #0]
|
|
SET32(v32);
|
|
10ff4: 605c str r4, [r3, #4]
|
|
SET32(v32);
|
|
10ff6: 609c str r4, [r3, #8]
|
|
SET32(v32);
|
|
10ff8: 60dc str r4, [r3, #12]
|
|
SET32(v32);
|
|
10ffa: 611c str r4, [r3, #16]
|
|
SET32(v32);
|
|
10ffc: 615c str r4, [r3, #20]
|
|
SET32(v32);
|
|
10ffe: 619c str r4, [r3, #24]
|
|
SET32(v32);
|
|
11000: 61dc str r4, [r3, #28]
|
|
11002: 3320 adds r3, #32
|
|
while(len > 32) {
|
|
11004: 429d cmp r5, r3
|
|
11006: d1f4 bne.n 10ff2 <_lv_memset+0x46>
|
|
11008: 231f movs r3, #31
|
|
1100a: 439e bics r6, r3
|
|
1100c: 3620 adds r6, #32
|
|
1100e: 1986 adds r6, r0, r6
|
|
11010: 3a20 subs r2, #32
|
|
11012: 017f lsls r7, r7, #5
|
|
11014: 1bd2 subs r2, r2, r7
|
|
while(len > 4) {
|
|
11016: 0030 movs r0, r6
|
|
11018: 2a04 cmp r2, #4
|
|
1101a: d90f bls.n 1103c <_lv_memset+0x90>
|
|
1101c: 1f50 subs r0, r2, #5
|
|
1101e: 0887 lsrs r7, r0, #2
|
|
11020: 1c7d adds r5, r7, #1
|
|
11022: 00ad lsls r5, r5, #2
|
|
11024: 1975 adds r5, r6, r5
|
|
11026: 0033 movs r3, r6
|
|
SET32(v32);
|
|
11028: c310 stmia r3!, {r4}
|
|
while(len > 4) {
|
|
1102a: 42ab cmp r3, r5
|
|
1102c: d1fc bne.n 11028 <_lv_memset+0x7c>
|
|
1102e: 2303 movs r3, #3
|
|
11030: 4398 bics r0, r3
|
|
11032: 3004 adds r0, #4
|
|
11034: 3a04 subs r2, #4
|
|
11036: 00bf lsls r7, r7, #2
|
|
11038: 1bd2 subs r2, r2, r7
|
|
SET32(v32);
|
|
1103a: 1830 adds r0, r6, r0
|
|
while(len) {
|
|
1103c: 2a00 cmp r2, #0
|
|
1103e: d004 beq.n 1104a <_lv_memset+0x9e>
|
|
11040: 1882 adds r2, r0, r2
|
|
*d8 = v;
|
|
11042: 7001 strb r1, [r0, #0]
|
|
d8++;
|
|
11044: 3001 adds r0, #1
|
|
while(len) {
|
|
11046: 4290 cmp r0, r2
|
|
11048: d1fb bne.n 11042 <_lv_memset+0x96>
|
|
}
|
|
1104a: bdf0 pop {r4, r5, r6, r7, pc}
|
|
|
|
0001104c <_lv_memset_00>:
|
|
{
|
|
1104c: b570 push {r4, r5, r6, lr}
|
|
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
|
|
1104e: 2303 movs r3, #3
|
|
11050: 4003 ands r3, r0
|
|
if(d_align) {
|
|
11052: d13a bne.n 110ca <_lv_memset_00+0x7e>
|
|
while(len > 32) {
|
|
11054: 2920 cmp r1, #32
|
|
11056: d919 bls.n 1108c <_lv_memset_00+0x40>
|
|
11058: 000d movs r5, r1
|
|
1105a: 3d21 subs r5, #33 ; 0x21
|
|
1105c: 096e lsrs r6, r5, #5
|
|
1105e: 1c74 adds r4, r6, #1
|
|
11060: 0164 lsls r4, r4, #5
|
|
11062: 1904 adds r4, r0, r4
|
|
11064: 0003 movs r3, r0
|
|
SET32(0);
|
|
11066: 2200 movs r2, #0
|
|
11068: 601a str r2, [r3, #0]
|
|
SET32(0);
|
|
1106a: 605a str r2, [r3, #4]
|
|
SET32(0);
|
|
1106c: 609a str r2, [r3, #8]
|
|
SET32(0);
|
|
1106e: 60da str r2, [r3, #12]
|
|
SET32(0);
|
|
11070: 611a str r2, [r3, #16]
|
|
SET32(0);
|
|
11072: 615a str r2, [r3, #20]
|
|
SET32(0);
|
|
11074: 619a str r2, [r3, #24]
|
|
SET32(0);
|
|
11076: 61da str r2, [r3, #28]
|
|
11078: 3320 adds r3, #32
|
|
while(len > 32) {
|
|
1107a: 429c cmp r4, r3
|
|
1107c: d1f4 bne.n 11068 <_lv_memset_00+0x1c>
|
|
1107e: 231f movs r3, #31
|
|
11080: 439d bics r5, r3
|
|
11082: 3520 adds r5, #32
|
|
11084: 1940 adds r0, r0, r5
|
|
11086: 3920 subs r1, #32
|
|
11088: 0176 lsls r6, r6, #5
|
|
1108a: 1b89 subs r1, r1, r6
|
|
while(len > 4) {
|
|
1108c: 0003 movs r3, r0
|
|
1108e: 2904 cmp r1, #4
|
|
11090: d910 bls.n 110b4 <_lv_memset_00+0x68>
|
|
11092: 1f4b subs r3, r1, #5
|
|
11094: 089e lsrs r6, r3, #2
|
|
11096: 1c74 adds r4, r6, #1
|
|
11098: 00a4 lsls r4, r4, #2
|
|
1109a: 1904 adds r4, r0, r4
|
|
1109c: 0002 movs r2, r0
|
|
SET32(0);
|
|
1109e: 2500 movs r5, #0
|
|
110a0: c220 stmia r2!, {r5}
|
|
while(len > 4) {
|
|
110a2: 42a2 cmp r2, r4
|
|
110a4: d1fc bne.n 110a0 <_lv_memset_00+0x54>
|
|
110a6: 2203 movs r2, #3
|
|
110a8: 4393 bics r3, r2
|
|
110aa: 3304 adds r3, #4
|
|
110ac: 3904 subs r1, #4
|
|
110ae: 00b6 lsls r6, r6, #2
|
|
110b0: 1b89 subs r1, r1, r6
|
|
SET32(0);
|
|
110b2: 18c3 adds r3, r0, r3
|
|
while(len) {
|
|
110b4: 2900 cmp r1, #0
|
|
110b6: d005 beq.n 110c4 <_lv_memset_00+0x78>
|
|
110b8: 1859 adds r1, r3, r1
|
|
*d8 = 0;
|
|
110ba: 2200 movs r2, #0
|
|
110bc: 701a strb r2, [r3, #0]
|
|
d8++;
|
|
110be: 3301 adds r3, #1
|
|
while(len) {
|
|
110c0: 428b cmp r3, r1
|
|
110c2: d1fb bne.n 110bc <_lv_memset_00+0x70>
|
|
}
|
|
110c4: bd70 pop {r4, r5, r6, pc}
|
|
d8++;
|
|
110c6: 0018 movs r0, r3
|
|
110c8: e7c4 b.n 11054 <_lv_memset_00+0x8>
|
|
d_align = ALIGN_MASK + 1 - d_align;
|
|
110ca: 2204 movs r2, #4
|
|
110cc: 1ad2 subs r2, r2, r3
|
|
while(d_align && len) {
|
|
110ce: d0c1 beq.n 11054 <_lv_memset_00+0x8>
|
|
110d0: 2900 cmp r1, #0
|
|
110d2: d00b beq.n 110ec <_lv_memset_00+0xa0>
|
|
110d4: 1882 adds r2, r0, r2
|
|
110d6: 0003 movs r3, r0
|
|
*d8 = 0x00;
|
|
110d8: 2000 movs r0, #0
|
|
110da: 7018 strb r0, [r3, #0]
|
|
d8++;
|
|
110dc: 3301 adds r3, #1
|
|
len--;
|
|
110de: 3901 subs r1, #1
|
|
while(d_align && len) {
|
|
110e0: 4293 cmp r3, r2
|
|
110e2: d0f0 beq.n 110c6 <_lv_memset_00+0x7a>
|
|
110e4: 2900 cmp r1, #0
|
|
110e6: d1f8 bne.n 110da <_lv_memset_00+0x8e>
|
|
while(len > 4) {
|
|
110e8: 2100 movs r1, #0
|
|
110ea: e7e3 b.n 110b4 <_lv_memset_00+0x68>
|
|
uint8_t * d8 = (uint8_t *) dst;
|
|
110ec: 0003 movs r3, r0
|
|
110ee: e7fb b.n 110e8 <_lv_memset_00+0x9c>
|
|
|
|
000110f0 <_lv_memset_ff>:
|
|
{
|
|
110f0: b570 push {r4, r5, r6, lr}
|
|
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
|
|
110f2: 2303 movs r3, #3
|
|
110f4: 4003 ands r3, r0
|
|
if(d_align) {
|
|
110f6: d13c bne.n 11172 <_lv_memset_ff+0x82>
|
|
while(len > 32) {
|
|
110f8: 2920 cmp r1, #32
|
|
110fa: d91a bls.n 11132 <_lv_memset_ff+0x42>
|
|
110fc: 000d movs r5, r1
|
|
110fe: 3d21 subs r5, #33 ; 0x21
|
|
11100: 096e lsrs r6, r5, #5
|
|
11102: 1c74 adds r4, r6, #1
|
|
11104: 0164 lsls r4, r4, #5
|
|
11106: 1904 adds r4, r0, r4
|
|
11108: 0003 movs r3, r0
|
|
SET32(0xFFFFFFFF);
|
|
1110a: 2201 movs r2, #1
|
|
1110c: 4252 negs r2, r2
|
|
1110e: 601a str r2, [r3, #0]
|
|
SET32(0xFFFFFFFF);
|
|
11110: 605a str r2, [r3, #4]
|
|
SET32(0xFFFFFFFF);
|
|
11112: 609a str r2, [r3, #8]
|
|
SET32(0xFFFFFFFF);
|
|
11114: 60da str r2, [r3, #12]
|
|
SET32(0xFFFFFFFF);
|
|
11116: 611a str r2, [r3, #16]
|
|
SET32(0xFFFFFFFF);
|
|
11118: 615a str r2, [r3, #20]
|
|
SET32(0xFFFFFFFF);
|
|
1111a: 619a str r2, [r3, #24]
|
|
SET32(0xFFFFFFFF);
|
|
1111c: 61da str r2, [r3, #28]
|
|
1111e: 3320 adds r3, #32
|
|
while(len > 32) {
|
|
11120: 429c cmp r4, r3
|
|
11122: d1f4 bne.n 1110e <_lv_memset_ff+0x1e>
|
|
11124: 231f movs r3, #31
|
|
11126: 439d bics r5, r3
|
|
11128: 3520 adds r5, #32
|
|
1112a: 1940 adds r0, r0, r5
|
|
1112c: 3920 subs r1, #32
|
|
1112e: 0176 lsls r6, r6, #5
|
|
11130: 1b89 subs r1, r1, r6
|
|
while(len > 4) {
|
|
11132: 0003 movs r3, r0
|
|
11134: 2904 cmp r1, #4
|
|
11136: d911 bls.n 1115c <_lv_memset_ff+0x6c>
|
|
11138: 1f4b subs r3, r1, #5
|
|
1113a: 089e lsrs r6, r3, #2
|
|
1113c: 1c74 adds r4, r6, #1
|
|
1113e: 00a4 lsls r4, r4, #2
|
|
11140: 1904 adds r4, r0, r4
|
|
11142: 0002 movs r2, r0
|
|
SET32(0xFFFFFFFF);
|
|
11144: 2501 movs r5, #1
|
|
11146: 426d negs r5, r5
|
|
11148: c220 stmia r2!, {r5}
|
|
while(len > 4) {
|
|
1114a: 42a2 cmp r2, r4
|
|
1114c: d1fc bne.n 11148 <_lv_memset_ff+0x58>
|
|
1114e: 2203 movs r2, #3
|
|
11150: 4393 bics r3, r2
|
|
11152: 3304 adds r3, #4
|
|
11154: 3904 subs r1, #4
|
|
11156: 00b6 lsls r6, r6, #2
|
|
11158: 1b89 subs r1, r1, r6
|
|
SET32(0xFFFFFFFF);
|
|
1115a: 18c3 adds r3, r0, r3
|
|
while(len) {
|
|
1115c: 2900 cmp r1, #0
|
|
1115e: d005 beq.n 1116c <_lv_memset_ff+0x7c>
|
|
11160: 1859 adds r1, r3, r1
|
|
*d8 = 0xFF;
|
|
11162: 22ff movs r2, #255 ; 0xff
|
|
11164: 701a strb r2, [r3, #0]
|
|
d8++;
|
|
11166: 3301 adds r3, #1
|
|
while(len) {
|
|
11168: 428b cmp r3, r1
|
|
1116a: d1fb bne.n 11164 <_lv_memset_ff+0x74>
|
|
}
|
|
1116c: bd70 pop {r4, r5, r6, pc}
|
|
d8++;
|
|
1116e: 0018 movs r0, r3
|
|
11170: e7c2 b.n 110f8 <_lv_memset_ff+0x8>
|
|
d_align = ALIGN_MASK + 1 - d_align;
|
|
11172: 2204 movs r2, #4
|
|
11174: 1ad2 subs r2, r2, r3
|
|
while(d_align && len) {
|
|
11176: d0bf beq.n 110f8 <_lv_memset_ff+0x8>
|
|
11178: 2900 cmp r1, #0
|
|
1117a: d00b beq.n 11194 <_lv_memset_ff+0xa4>
|
|
1117c: 1882 adds r2, r0, r2
|
|
1117e: 0003 movs r3, r0
|
|
*d8 = 0xFF;
|
|
11180: 20ff movs r0, #255 ; 0xff
|
|
11182: 7018 strb r0, [r3, #0]
|
|
d8++;
|
|
11184: 3301 adds r3, #1
|
|
len--;
|
|
11186: 3901 subs r1, #1
|
|
while(d_align && len) {
|
|
11188: 4293 cmp r3, r2
|
|
1118a: d0f0 beq.n 1116e <_lv_memset_ff+0x7e>
|
|
1118c: 2900 cmp r1, #0
|
|
1118e: d1f8 bne.n 11182 <_lv_memset_ff+0x92>
|
|
while(len > 4) {
|
|
11190: 2100 movs r1, #0
|
|
11192: e7e3 b.n 1115c <_lv_memset_ff+0x6c>
|
|
uint8_t * d8 = (uint8_t *) dst;
|
|
11194: 0003 movs r3, r0
|
|
11196: e7fb b.n 11190 <_lv_memset_ff+0xa0>
|
|
|
|
00011198 <_lv_task_core_init>:
|
|
|
|
/**
|
|
* Init the lv_task module
|
|
*/
|
|
void _lv_task_core_init(void)
|
|
{
|
|
11198: b510 push {r4, lr}
|
|
_lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t));
|
|
1119a: 2118 movs r1, #24
|
|
1119c: 4804 ldr r0, [pc, #16] ; (111b0 <_lv_task_core_init+0x18>)
|
|
1119e: 4b05 ldr r3, [pc, #20] ; (111b4 <_lv_task_core_init+0x1c>)
|
|
111a0: 4798 blx r3
|
|
|
|
task_list_changed = false;
|
|
111a2: 2200 movs r2, #0
|
|
111a4: 4b04 ldr r3, [pc, #16] ; (111b8 <_lv_task_core_init+0x20>)
|
|
111a6: 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;
|
|
111a8: 3201 adds r2, #1
|
|
111aa: 4b04 ldr r3, [pc, #16] ; (111bc <_lv_task_core_init+0x24>)
|
|
111ac: 701a strb r2, [r3, #0]
|
|
}
|
|
111ae: bd10 pop {r4, pc}
|
|
111b0: 20004cac .word 0x20004cac
|
|
111b4: 000105b9 .word 0x000105b9
|
|
111b8: 20004c2b .word 0x20004c2b
|
|
111bc: 20004c28 .word 0x20004c28
|
|
|
|
000111c0 <lv_task_create_basic>:
|
|
{
|
|
111c0: b570 push {r4, r5, r6, lr}
|
|
tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
|
|
111c2: 482f ldr r0, [pc, #188] ; (11280 <lv_task_create_basic+0xc0>)
|
|
111c4: 4b2f ldr r3, [pc, #188] ; (11284 <lv_task_create_basic+0xc4>)
|
|
111c6: 4798 blx r3
|
|
111c8: 1e04 subs r4, r0, #0
|
|
if(NULL == tmp) {
|
|
111ca: d018 beq.n 111fe <lv_task_create_basic+0x3e>
|
|
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
|
|
111cc: 4d2e ldr r5, [pc, #184] ; (11288 <lv_task_create_basic+0xc8>)
|
|
if(tmp->prio <= DEF_PRIO) {
|
|
111ce: 7d23 ldrb r3, [r4, #20]
|
|
111d0: 075b lsls r3, r3, #29
|
|
111d2: 0f5b lsrs r3, r3, #29
|
|
111d4: 2b03 cmp r3, #3
|
|
111d6: dd23 ble.n 11220 <lv_task_create_basic+0x60>
|
|
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
|
|
111d8: 0021 movs r1, r4
|
|
111da: 4829 ldr r0, [pc, #164] ; (11280 <lv_task_create_basic+0xc0>)
|
|
111dc: 47a8 blx r5
|
|
111de: 1e04 subs r4, r0, #0
|
|
} while(tmp != NULL);
|
|
111e0: d1f5 bne.n 111ce <lv_task_create_basic+0xe>
|
|
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
|
|
111e2: 4827 ldr r0, [pc, #156] ; (11280 <lv_task_create_basic+0xc0>)
|
|
111e4: 4b29 ldr r3, [pc, #164] ; (1128c <lv_task_create_basic+0xcc>)
|
|
111e6: 4798 blx r3
|
|
111e8: 0005 movs r5, r0
|
|
LV_ASSERT_MEM(new_task);
|
|
111ea: 4b29 ldr r3, [pc, #164] ; (11290 <lv_task_create_basic+0xd0>)
|
|
111ec: 4798 blx r3
|
|
111ee: 2800 cmp r0, #0
|
|
111f0: d142 bne.n 11278 <lv_task_create_basic+0xb8>
|
|
111f2: 002a movs r2, r5
|
|
111f4: 2300 movs r3, #0
|
|
111f6: 4827 ldr r0, [pc, #156] ; (11294 <lv_task_create_basic+0xd4>)
|
|
111f8: 4927 ldr r1, [pc, #156] ; (11298 <lv_task_create_basic+0xd8>)
|
|
111fa: 4788 blx r1
|
|
111fc: e7fe b.n 111fc <lv_task_create_basic+0x3c>
|
|
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
|
|
111fe: 4820 ldr r0, [pc, #128] ; (11280 <lv_task_create_basic+0xc0>)
|
|
11200: 4b26 ldr r3, [pc, #152] ; (1129c <lv_task_create_basic+0xdc>)
|
|
11202: 4798 blx r3
|
|
11204: 0005 movs r5, r0
|
|
LV_ASSERT_MEM(new_task);
|
|
11206: 4b22 ldr r3, [pc, #136] ; (11290 <lv_task_create_basic+0xd0>)
|
|
11208: 4798 blx r3
|
|
1120a: 2800 cmp r0, #0
|
|
1120c: d105 bne.n 1121a <lv_task_create_basic+0x5a>
|
|
1120e: 002a movs r2, r5
|
|
11210: 2300 movs r3, #0
|
|
11212: 4820 ldr r0, [pc, #128] ; (11294 <lv_task_create_basic+0xd4>)
|
|
11214: 4920 ldr r1, [pc, #128] ; (11298 <lv_task_create_basic+0xd8>)
|
|
11216: 4788 blx r1
|
|
11218: e7fe b.n 11218 <lv_task_create_basic+0x58>
|
|
if(new_task == NULL) return NULL;
|
|
1121a: 2d00 cmp r5, #0
|
|
1121c: d10d bne.n 1123a <lv_task_create_basic+0x7a>
|
|
1121e: e023 b.n 11268 <lv_task_create_basic+0xa8>
|
|
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
|
|
11220: 0021 movs r1, r4
|
|
11222: 4817 ldr r0, [pc, #92] ; (11280 <lv_task_create_basic+0xc0>)
|
|
11224: 4b1e ldr r3, [pc, #120] ; (112a0 <lv_task_create_basic+0xe0>)
|
|
11226: 4798 blx r3
|
|
11228: 0005 movs r5, r0
|
|
LV_ASSERT_MEM(new_task);
|
|
1122a: 4b19 ldr r3, [pc, #100] ; (11290 <lv_task_create_basic+0xd0>)
|
|
1122c: 4798 blx r3
|
|
1122e: 2800 cmp r0, #0
|
|
11230: d01c beq.n 1126c <lv_task_create_basic+0xac>
|
|
if(new_task == NULL) return NULL;
|
|
11232: 2d00 cmp r5, #0
|
|
11234: d018 beq.n 11268 <lv_task_create_basic+0xa8>
|
|
if(tmp == NULL) {
|
|
11236: 2c00 cmp r4, #0
|
|
11238: d0d3 beq.n 111e2 <lv_task_create_basic+0x22>
|
|
task_list_changed = true;
|
|
1123a: 2401 movs r4, #1
|
|
1123c: 4b19 ldr r3, [pc, #100] ; (112a4 <lv_task_create_basic+0xe4>)
|
|
1123e: 701c strb r4, [r3, #0]
|
|
new_task->period = DEF_PERIOD;
|
|
11240: 23fa movs r3, #250 ; 0xfa
|
|
11242: 005b lsls r3, r3, #1
|
|
11244: 602b str r3, [r5, #0]
|
|
new_task->task_cb = NULL;
|
|
11246: 2600 movs r6, #0
|
|
11248: 60ae str r6, [r5, #8]
|
|
new_task->prio = DEF_PRIO;
|
|
1124a: 7d2b ldrb r3, [r5, #20]
|
|
1124c: 2207 movs r2, #7
|
|
1124e: 4393 bics r3, r2
|
|
11250: 2203 movs r2, #3
|
|
11252: 4313 orrs r3, r2
|
|
11254: 752b strb r3, [r5, #20]
|
|
new_task->repeat_count = -1;
|
|
11256: 2301 movs r3, #1
|
|
11258: 425b negs r3, r3
|
|
1125a: 612b str r3, [r5, #16]
|
|
new_task->last_run = lv_tick_get();
|
|
1125c: 4b12 ldr r3, [pc, #72] ; (112a8 <lv_task_create_basic+0xe8>)
|
|
1125e: 4798 blx r3
|
|
11260: 6068 str r0, [r5, #4]
|
|
new_task->user_data = NULL;
|
|
11262: 60ee str r6, [r5, #12]
|
|
task_created = true;
|
|
11264: 4b11 ldr r3, [pc, #68] ; (112ac <lv_task_create_basic+0xec>)
|
|
11266: 701c strb r4, [r3, #0]
|
|
}
|
|
11268: 0028 movs r0, r5
|
|
1126a: bd70 pop {r4, r5, r6, pc}
|
|
LV_ASSERT_MEM(new_task);
|
|
1126c: 002a movs r2, r5
|
|
1126e: 2300 movs r3, #0
|
|
11270: 4808 ldr r0, [pc, #32] ; (11294 <lv_task_create_basic+0xd4>)
|
|
11272: 4909 ldr r1, [pc, #36] ; (11298 <lv_task_create_basic+0xd8>)
|
|
11274: 4788 blx r1
|
|
11276: e7fe b.n 11276 <lv_task_create_basic+0xb6>
|
|
if(new_task == NULL) return NULL;
|
|
11278: 2d00 cmp r5, #0
|
|
1127a: d1de bne.n 1123a <lv_task_create_basic+0x7a>
|
|
1127c: e7f4 b.n 11268 <lv_task_create_basic+0xa8>
|
|
1127e: 46c0 nop ; (mov r8, r8)
|
|
11280: 20004cac .word 0x20004cac
|
|
11284: 0001066d .word 0x0001066d
|
|
11288: 00010685 .word 0x00010685
|
|
1128c: 0001061d .word 0x0001061d
|
|
11290: 0000147d .word 0x0000147d
|
|
11294: 00018724 .word 0x00018724
|
|
11298: 00001485 .word 0x00001485
|
|
1129c: 000105cd .word 0x000105cd
|
|
112a0: 000106d5 .word 0x000106d5
|
|
112a4: 20004c2b .word 0x20004c2b
|
|
112a8: 0000f78d .word 0x0000f78d
|
|
112ac: 20004c29 .word 0x20004c29
|
|
|
|
000112b0 <lv_task_del>:
|
|
{
|
|
112b0: b510 push {r4, lr}
|
|
112b2: 0004 movs r4, r0
|
|
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
|
|
112b4: 0001 movs r1, r0
|
|
112b6: 4809 ldr r0, [pc, #36] ; (112dc <lv_task_del+0x2c>)
|
|
112b8: 4b09 ldr r3, [pc, #36] ; (112e0 <lv_task_del+0x30>)
|
|
112ba: 4798 blx r3
|
|
task_list_changed = true;
|
|
112bc: 2201 movs r2, #1
|
|
112be: 4b09 ldr r3, [pc, #36] ; (112e4 <lv_task_del+0x34>)
|
|
112c0: 701a strb r2, [r3, #0]
|
|
lv_mem_free(task);
|
|
112c2: 0020 movs r0, r4
|
|
112c4: 4b08 ldr r3, [pc, #32] ; (112e8 <lv_task_del+0x38>)
|
|
112c6: 4798 blx r3
|
|
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
|
|
112c8: 4b08 ldr r3, [pc, #32] ; (112ec <lv_task_del+0x3c>)
|
|
112ca: 681b ldr r3, [r3, #0]
|
|
112cc: 429c cmp r4, r3
|
|
112ce: d000 beq.n 112d2 <lv_task_del+0x22>
|
|
}
|
|
112d0: bd10 pop {r4, pc}
|
|
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
|
|
112d2: 2201 movs r2, #1
|
|
112d4: 4b06 ldr r3, [pc, #24] ; (112f0 <lv_task_del+0x40>)
|
|
112d6: 701a strb r2, [r3, #0]
|
|
}
|
|
112d8: e7fa b.n 112d0 <lv_task_del+0x20>
|
|
112da: 46c0 nop ; (mov r8, r8)
|
|
112dc: 20004cac .word 0x20004cac
|
|
112e0: 00010755 .word 0x00010755
|
|
112e4: 20004c2b .word 0x20004c2b
|
|
112e8: 00010b39 .word 0x00010b39
|
|
112ec: 20004d78 .word 0x20004d78
|
|
112f0: 20004c2a .word 0x20004c2a
|
|
|
|
000112f4 <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)
|
|
{
|
|
112f4: b510 push {r4, lr}
|
|
112f6: 0004 movs r4, r0
|
|
* @return the time remaining, or 0 if it needs to be run again
|
|
*/
|
|
static uint32_t lv_task_time_remaining(lv_task_t * task)
|
|
{
|
|
/*Check if at least 'period' time elapsed*/
|
|
uint32_t elp = lv_tick_elaps(task->last_run);
|
|
112f8: 6840 ldr r0, [r0, #4]
|
|
112fa: 4b13 ldr r3, [pc, #76] ; (11348 <lv_task_exec+0x54>)
|
|
112fc: 4798 blx r3
|
|
bool exec = false;
|
|
112fe: 2300 movs r3, #0
|
|
if(elp >= task->period)
|
|
11300: 6822 ldr r2, [r4, #0]
|
|
11302: 4290 cmp r0, r2
|
|
11304: d201 bcs.n 1130a <lv_task_exec+0x16>
|
|
}
|
|
11306: 0018 movs r0, r3
|
|
11308: bd10 pop {r4, pc}
|
|
task->last_run = lv_tick_get();
|
|
1130a: 4b10 ldr r3, [pc, #64] ; (1134c <lv_task_exec+0x58>)
|
|
1130c: 4798 blx r3
|
|
1130e: 6060 str r0, [r4, #4]
|
|
task_deleted = false;
|
|
11310: 2300 movs r3, #0
|
|
11312: 4a0f ldr r2, [pc, #60] ; (11350 <lv_task_exec+0x5c>)
|
|
11314: 7013 strb r3, [r2, #0]
|
|
task_created = false;
|
|
11316: 4a0f ldr r2, [pc, #60] ; (11354 <lv_task_exec+0x60>)
|
|
11318: 7013 strb r3, [r2, #0]
|
|
if(task->task_cb) task->task_cb(task);
|
|
1131a: 68a3 ldr r3, [r4, #8]
|
|
1131c: 2b00 cmp r3, #0
|
|
1131e: d005 beq.n 1132c <lv_task_exec+0x38>
|
|
11320: 0020 movs r0, r4
|
|
11322: 4798 blx r3
|
|
if(task_deleted == false) { /*The task might be deleted by itself as well*/
|
|
11324: 4b0a ldr r3, [pc, #40] ; (11350 <lv_task_exec+0x5c>)
|
|
11326: 781b ldrb r3, [r3, #0]
|
|
11328: 2b00 cmp r3, #0
|
|
1132a: d1ec bne.n 11306 <lv_task_exec+0x12>
|
|
if(task->repeat_count > 0) {
|
|
1132c: 6923 ldr r3, [r4, #16]
|
|
1132e: 2b00 cmp r3, #0
|
|
11330: dd01 ble.n 11336 <lv_task_exec+0x42>
|
|
task->repeat_count--;
|
|
11332: 3b01 subs r3, #1
|
|
11334: 6123 str r3, [r4, #16]
|
|
exec = true;
|
|
11336: 2301 movs r3, #1
|
|
if(task->repeat_count == 0) {
|
|
11338: 6922 ldr r2, [r4, #16]
|
|
1133a: 2a00 cmp r2, #0
|
|
1133c: d1e3 bne.n 11306 <lv_task_exec+0x12>
|
|
lv_task_del(task);
|
|
1133e: 0020 movs r0, r4
|
|
11340: 4b05 ldr r3, [pc, #20] ; (11358 <lv_task_exec+0x64>)
|
|
11342: 4798 blx r3
|
|
exec = true;
|
|
11344: 2301 movs r3, #1
|
|
11346: e7de b.n 11306 <lv_task_exec+0x12>
|
|
11348: 0000f7a9 .word 0x0000f7a9
|
|
1134c: 0000f78d .word 0x0000f78d
|
|
11350: 20004c2a .word 0x20004c2a
|
|
11354: 20004c29 .word 0x20004c29
|
|
11358: 000112b1 .word 0x000112b1
|
|
|
|
0001135c <lv_task_handler>:
|
|
{
|
|
1135c: b5f0 push {r4, r5, r6, r7, lr}
|
|
1135e: 46de mov lr, fp
|
|
11360: 4657 mov r7, sl
|
|
11362: 464e mov r6, r9
|
|
11364: b5c0 push {r6, r7, lr}
|
|
if(already_running) return 1;
|
|
11366: 4b66 ldr r3, [pc, #408] ; (11500 <lv_task_handler+0x1a4>)
|
|
11368: 781b ldrb r3, [r3, #0]
|
|
1136a: 2001 movs r0, #1
|
|
1136c: 2b00 cmp r3, #0
|
|
1136e: d109 bne.n 11384 <lv_task_handler+0x28>
|
|
already_running = true;
|
|
11370: 2201 movs r2, #1
|
|
11372: 4b63 ldr r3, [pc, #396] ; (11500 <lv_task_handler+0x1a4>)
|
|
11374: 701a strb r2, [r3, #0]
|
|
if(lv_task_run == false) {
|
|
11376: 4b63 ldr r3, [pc, #396] ; (11504 <lv_task_handler+0x1a8>)
|
|
11378: 781b ldrb r3, [r3, #0]
|
|
1137a: 2b00 cmp r3, #0
|
|
1137c: d107 bne.n 1138e <lv_task_handler+0x32>
|
|
already_running = false; /*Release mutex*/
|
|
1137e: 2200 movs r2, #0
|
|
11380: 4b5f ldr r3, [pc, #380] ; (11500 <lv_task_handler+0x1a4>)
|
|
11382: 701a strb r2, [r3, #0]
|
|
}
|
|
11384: bc1c pop {r2, r3, r4}
|
|
11386: 4691 mov r9, r2
|
|
11388: 469a mov sl, r3
|
|
1138a: 46a3 mov fp, r4
|
|
1138c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
handler_start = lv_tick_get();
|
|
1138e: 4b5e ldr r3, [pc, #376] ; (11508 <lv_task_handler+0x1ac>)
|
|
11390: 4798 blx r3
|
|
11392: 4b5e ldr r3, [pc, #376] ; (1150c <lv_task_handler+0x1b0>)
|
|
11394: 6018 str r0, [r3, #0]
|
|
lv_task_t * task_interrupter = NULL;
|
|
11396: 2400 movs r4, #0
|
|
task_deleted = false;
|
|
11398: 4b5d ldr r3, [pc, #372] ; (11510 <lv_task_handler+0x1b4>)
|
|
1139a: 469b mov fp, r3
|
|
1139c: 2300 movs r3, #0
|
|
1139e: 4699 mov r9, r3
|
|
task_created = false;
|
|
113a0: 4b5c ldr r3, [pc, #368] ; (11514 <lv_task_handler+0x1b8>)
|
|
113a2: 469a mov sl, r3
|
|
113a4: e084 b.n 114b0 <lv_task_handler+0x154>
|
|
LV_GC_ROOT(_lv_task_act) = next;
|
|
113a6: 4b5c ldr r3, [pc, #368] ; (11518 <lv_task_handler+0x1bc>)
|
|
113a8: 601d str r5, [r3, #0]
|
|
task_interrupter = NULL; /*From this point only task after the interrupter comes, so
|
|
113aa: 2400 movs r4, #0
|
|
continue; /*Load the next task*/
|
|
113ac: e00f b.n 113ce <lv_task_handler+0x72>
|
|
lv_task_exec(LV_GC_ROOT(_lv_task_act));
|
|
113ae: 4b5b ldr r3, [pc, #364] ; (1151c <lv_task_handler+0x1c0>)
|
|
113b0: 4798 blx r3
|
|
if(task_created || task_deleted) {
|
|
113b2: 4b58 ldr r3, [pc, #352] ; (11514 <lv_task_handler+0x1b8>)
|
|
113b4: 781b ldrb r3, [r3, #0]
|
|
113b6: 2b00 cmp r3, #0
|
|
113b8: d12f bne.n 1141a <lv_task_handler+0xbe>
|
|
113ba: 4b55 ldr r3, [pc, #340] ; (11510 <lv_task_handler+0x1b4>)
|
|
113bc: 781b ldrb r3, [r3, #0]
|
|
113be: 2b00 cmp r3, #0
|
|
113c0: d12b bne.n 1141a <lv_task_handler+0xbe>
|
|
if(task_list_changed) {
|
|
113c2: 4b57 ldr r3, [pc, #348] ; (11520 <lv_task_handler+0x1c4>)
|
|
113c4: 781b ldrb r3, [r3, #0]
|
|
113c6: 2b00 cmp r3, #0
|
|
113c8: d16e bne.n 114a8 <lv_task_handler+0x14c>
|
|
LV_GC_ROOT(_lv_task_act) = next; /*Load the next task*/
|
|
113ca: 4b53 ldr r3, [pc, #332] ; (11518 <lv_task_handler+0x1bc>)
|
|
113cc: 601d str r5, [r3, #0]
|
|
while(LV_GC_ROOT(_lv_task_act)) {
|
|
113ce: 6831 ldr r1, [r6, #0]
|
|
113d0: 2900 cmp r1, #0
|
|
113d2: d022 beq.n 1141a <lv_task_handler+0xbe>
|
|
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
|
|
113d4: 4853 ldr r0, [pc, #332] ; (11524 <lv_task_handler+0x1c8>)
|
|
113d6: 47b8 blx r7
|
|
113d8: 0005 movs r5, r0
|
|
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) {
|
|
113da: 4b4f ldr r3, [pc, #316] ; (11518 <lv_task_handler+0x1bc>)
|
|
113dc: 6818 ldr r0, [r3, #0]
|
|
113de: 7d02 ldrb r2, [r0, #20]
|
|
113e0: 2307 movs r3, #7
|
|
113e2: 4013 ands r3, r2
|
|
113e4: d019 beq.n 1141a <lv_task_handler+0xbe>
|
|
if(LV_GC_ROOT(_lv_task_act) == task_interrupter) {
|
|
113e6: 4284 cmp r4, r0
|
|
113e8: d0dd beq.n 113a6 <lv_task_handler+0x4a>
|
|
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) {
|
|
113ea: 2b05 cmp r3, #5
|
|
113ec: d0df beq.n 113ae <lv_task_handler+0x52>
|
|
else if(task_interrupter) {
|
|
113ee: 2c00 cmp r4, #0
|
|
113f0: d04b beq.n 1148a <lv_task_handler+0x12e>
|
|
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) {
|
|
113f2: 7d02 ldrb r2, [r0, #20]
|
|
113f4: 0752 lsls r2, r2, #29
|
|
113f6: 0f52 lsrs r2, r2, #29
|
|
113f8: 7d23 ldrb r3, [r4, #20]
|
|
113fa: 075b lsls r3, r3, #29
|
|
113fc: 0f5b lsrs r3, r3, #29
|
|
113fe: 429a cmp r2, r3
|
|
11400: ddd7 ble.n 113b2 <lv_task_handler+0x56>
|
|
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
|
|
11402: 4b46 ldr r3, [pc, #280] ; (1151c <lv_task_handler+0x1c0>)
|
|
11404: 4798 blx r3
|
|
11406: 2800 cmp r0, #0
|
|
11408: d0d3 beq.n 113b2 <lv_task_handler+0x56>
|
|
if(!task_created && !task_deleted) {
|
|
1140a: 4b42 ldr r3, [pc, #264] ; (11514 <lv_task_handler+0x1b8>)
|
|
1140c: 781b ldrb r3, [r3, #0]
|
|
1140e: 2b00 cmp r3, #0
|
|
11410: d103 bne.n 1141a <lv_task_handler+0xbe>
|
|
11412: 4b3f ldr r3, [pc, #252] ; (11510 <lv_task_handler+0x1b4>)
|
|
11414: 781b ldrb r3, [r3, #0]
|
|
11416: 2b00 cmp r3, #0
|
|
11418: d034 beq.n 11484 <lv_task_handler+0x128>
|
|
busy_time += lv_tick_elaps(handler_start);
|
|
1141a: 4b3c ldr r3, [pc, #240] ; (1150c <lv_task_handler+0x1b0>)
|
|
1141c: 6818 ldr r0, [r3, #0]
|
|
1141e: 4c42 ldr r4, [pc, #264] ; (11528 <lv_task_handler+0x1cc>)
|
|
11420: 47a0 blx r4
|
|
11422: 4b42 ldr r3, [pc, #264] ; (1152c <lv_task_handler+0x1d0>)
|
|
11424: 681a ldr r2, [r3, #0]
|
|
11426: 4694 mov ip, r2
|
|
11428: 4460 add r0, ip
|
|
1142a: 6018 str r0, [r3, #0]
|
|
uint32_t idle_period_time = lv_tick_elaps(idle_period_start);
|
|
1142c: 4b40 ldr r3, [pc, #256] ; (11530 <lv_task_handler+0x1d4>)
|
|
1142e: 6818 ldr r0, [r3, #0]
|
|
11430: 47a0 blx r4
|
|
if(idle_period_time >= IDLE_MEAS_PERIOD) {
|
|
11432: 23f4 movs r3, #244 ; 0xf4
|
|
11434: 33ff adds r3, #255 ; 0xff
|
|
11436: 4298 cmp r0, r3
|
|
11438: d917 bls.n 1146a <lv_task_handler+0x10e>
|
|
idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/
|
|
1143a: 4b3c ldr r3, [pc, #240] ; (1152c <lv_task_handler+0x1d0>)
|
|
1143c: 6818 ldr r0, [r3, #0]
|
|
1143e: 2364 movs r3, #100 ; 0x64
|
|
11440: 4358 muls r0, r3
|
|
11442: 21fa movs r1, #250 ; 0xfa
|
|
11444: 0049 lsls r1, r1, #1
|
|
11446: 4b3b ldr r3, [pc, #236] ; (11534 <lv_task_handler+0x1d8>)
|
|
11448: 4798 blx r3
|
|
1144a: b2c0 uxtb r0, r0
|
|
idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/
|
|
1144c: 2300 movs r3, #0
|
|
1144e: 2864 cmp r0, #100 ; 0x64
|
|
11450: d802 bhi.n 11458 <lv_task_handler+0xfc>
|
|
11452: 2364 movs r3, #100 ; 0x64
|
|
11454: 1a1b subs r3, r3, r0
|
|
11456: b2db uxtb r3, r3
|
|
11458: 4a37 ldr r2, [pc, #220] ; (11538 <lv_task_handler+0x1dc>)
|
|
1145a: 7013 strb r3, [r2, #0]
|
|
busy_time = 0;
|
|
1145c: 2200 movs r2, #0
|
|
1145e: 4b33 ldr r3, [pc, #204] ; (1152c <lv_task_handler+0x1d0>)
|
|
11460: 601a str r2, [r3, #0]
|
|
idle_period_start = lv_tick_get();
|
|
11462: 4b29 ldr r3, [pc, #164] ; (11508 <lv_task_handler+0x1ac>)
|
|
11464: 4798 blx r3
|
|
11466: 4b32 ldr r3, [pc, #200] ; (11530 <lv_task_handler+0x1d4>)
|
|
11468: 6018 str r0, [r3, #0]
|
|
time_till_next = LV_NO_TASK_READY;
|
|
1146a: 2201 movs r2, #1
|
|
1146c: 4252 negs r2, r2
|
|
1146e: 4b33 ldr r3, [pc, #204] ; (1153c <lv_task_handler+0x1e0>)
|
|
11470: 601a str r2, [r3, #0]
|
|
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
|
|
11472: 482c ldr r0, [pc, #176] ; (11524 <lv_task_handler+0x1c8>)
|
|
11474: 4b32 ldr r3, [pc, #200] ; (11540 <lv_task_handler+0x1e4>)
|
|
11476: 4798 blx r3
|
|
11478: 1e04 subs r4, r0, #0
|
|
while(next) {
|
|
1147a: d03b beq.n 114f4 <lv_task_handler+0x198>
|
|
uint32_t elp = lv_tick_elaps(task->last_run);
|
|
1147c: 4d2a ldr r5, [pc, #168] ; (11528 <lv_task_handler+0x1cc>)
|
|
if(delay < time_till_next)
|
|
1147e: 4f2f ldr r7, [pc, #188] ; (1153c <lv_task_handler+0x1e0>)
|
|
time_till_next = delay;
|
|
11480: 003e movs r6, r7
|
|
11482: e028 b.n 114d6 <lv_task_handler+0x17a>
|
|
task_interrupter = LV_GC_ROOT(_lv_task_act);
|
|
11484: 4b24 ldr r3, [pc, #144] ; (11518 <lv_task_handler+0x1bc>)
|
|
11486: 681c ldr r4, [r3, #0]
|
|
break;
|
|
11488: e012 b.n 114b0 <lv_task_handler+0x154>
|
|
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
|
|
1148a: 4b24 ldr r3, [pc, #144] ; (1151c <lv_task_handler+0x1c0>)
|
|
1148c: 4798 blx r3
|
|
1148e: 2800 cmp r0, #0
|
|
11490: d08f beq.n 113b2 <lv_task_handler+0x56>
|
|
if(!task_created && !task_deleted) {
|
|
11492: 4b20 ldr r3, [pc, #128] ; (11514 <lv_task_handler+0x1b8>)
|
|
11494: 781b ldrb r3, [r3, #0]
|
|
11496: 2b00 cmp r3, #0
|
|
11498: d1bf bne.n 1141a <lv_task_handler+0xbe>
|
|
1149a: 4b1d ldr r3, [pc, #116] ; (11510 <lv_task_handler+0x1b4>)
|
|
1149c: 781b ldrb r3, [r3, #0]
|
|
1149e: 2b00 cmp r3, #0
|
|
114a0: d1bb bne.n 1141a <lv_task_handler+0xbe>
|
|
task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */
|
|
114a2: 4b1d ldr r3, [pc, #116] ; (11518 <lv_task_handler+0x1bc>)
|
|
114a4: 681c ldr r4, [r3, #0]
|
|
break;
|
|
114a6: e003 b.n 114b0 <lv_task_handler+0x154>
|
|
task_list_changed = false;
|
|
114a8: 4b1d ldr r3, [pc, #116] ; (11520 <lv_task_handler+0x1c4>)
|
|
114aa: 2200 movs r2, #0
|
|
114ac: 701a strb r2, [r3, #0]
|
|
task_interrupter = NULL;
|
|
114ae: 2400 movs r4, #0
|
|
task_deleted = false;
|
|
114b0: 465b mov r3, fp
|
|
114b2: 464a mov r2, r9
|
|
114b4: 701a strb r2, [r3, #0]
|
|
task_created = false;
|
|
114b6: 4653 mov r3, sl
|
|
114b8: 701a strb r2, [r3, #0]
|
|
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
|
|
114ba: 481a ldr r0, [pc, #104] ; (11524 <lv_task_handler+0x1c8>)
|
|
114bc: 4b20 ldr r3, [pc, #128] ; (11540 <lv_task_handler+0x1e4>)
|
|
114be: 4798 blx r3
|
|
114c0: 4b15 ldr r3, [pc, #84] ; (11518 <lv_task_handler+0x1bc>)
|
|
114c2: 6018 str r0, [r3, #0]
|
|
while(LV_GC_ROOT(_lv_task_act)) {
|
|
114c4: 001e movs r6, r3
|
|
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
|
|
114c6: 4f1f ldr r7, [pc, #124] ; (11544 <lv_task_handler+0x1e8>)
|
|
while(LV_GC_ROOT(_lv_task_act)) {
|
|
114c8: e781 b.n 113ce <lv_task_handler+0x72>
|
|
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
|
|
114ca: 0021 movs r1, r4
|
|
114cc: 4815 ldr r0, [pc, #84] ; (11524 <lv_task_handler+0x1c8>)
|
|
114ce: 4b1d ldr r3, [pc, #116] ; (11544 <lv_task_handler+0x1e8>)
|
|
114d0: 4798 blx r3
|
|
114d2: 1e04 subs r4, r0, #0
|
|
while(next) {
|
|
114d4: d00e beq.n 114f4 <lv_task_handler+0x198>
|
|
if(next->prio != LV_TASK_PRIO_OFF) {
|
|
114d6: 7d23 ldrb r3, [r4, #20]
|
|
114d8: 075b lsls r3, r3, #29
|
|
114da: d0f6 beq.n 114ca <lv_task_handler+0x16e>
|
|
uint32_t elp = lv_tick_elaps(task->last_run);
|
|
114dc: 6860 ldr r0, [r4, #4]
|
|
114de: 47a8 blx r5
|
|
if(elp >= task->period)
|
|
114e0: 6822 ldr r2, [r4, #0]
|
|
return 0;
|
|
114e2: 2300 movs r3, #0
|
|
if(elp >= task->period)
|
|
114e4: 4290 cmp r0, r2
|
|
114e6: d200 bcs.n 114ea <lv_task_handler+0x18e>
|
|
return task->period - elp;
|
|
114e8: 1a13 subs r3, r2, r0
|
|
if(delay < time_till_next)
|
|
114ea: 683a ldr r2, [r7, #0]
|
|
114ec: 429a cmp r2, r3
|
|
114ee: d9ec bls.n 114ca <lv_task_handler+0x16e>
|
|
time_till_next = delay;
|
|
114f0: 6033 str r3, [r6, #0]
|
|
114f2: e7ea b.n 114ca <lv_task_handler+0x16e>
|
|
already_running = false; /*Release the mutex*/
|
|
114f4: 2200 movs r2, #0
|
|
114f6: 4b02 ldr r3, [pc, #8] ; (11500 <lv_task_handler+0x1a4>)
|
|
114f8: 701a strb r2, [r3, #0]
|
|
return time_till_next;
|
|
114fa: 4b10 ldr r3, [pc, #64] ; (1153c <lv_task_handler+0x1e0>)
|
|
114fc: 6818 ldr r0, [r3, #0]
|
|
114fe: e741 b.n 11384 <lv_task_handler+0x28>
|
|
11500: 20004c14 .word 0x20004c14
|
|
11504: 20004c28 .word 0x20004c28
|
|
11508: 0000f78d .word 0x0000f78d
|
|
1150c: 20004c1c .word 0x20004c1c
|
|
11510: 20004c2a .word 0x20004c2a
|
|
11514: 20004c29 .word 0x20004c29
|
|
11518: 20004d78 .word 0x20004d78
|
|
1151c: 000112f5 .word 0x000112f5
|
|
11520: 20004c2b .word 0x20004c2b
|
|
11524: 20004cac .word 0x20004cac
|
|
11528: 0000f7a9 .word 0x0000f7a9
|
|
1152c: 20004c18 .word 0x20004c18
|
|
11530: 20004c24 .word 0x20004c24
|
|
11534: 00017881 .word 0x00017881
|
|
11538: 20004c20 .word 0x20004c20
|
|
1153c: 20004c2c .word 0x20004c2c
|
|
11540: 0001066d .word 0x0001066d
|
|
11544: 00010685 .word 0x00010685
|
|
|
|
00011548 <lv_task_set_prio>:
|
|
{
|
|
11548: b5f0 push {r4, r5, r6, r7, lr}
|
|
1154a: 46ce mov lr, r9
|
|
1154c: b500 push {lr}
|
|
1154e: 0005 movs r5, r0
|
|
11550: 4689 mov r9, r1
|
|
if(task->prio == prio) return;
|
|
11552: 000e movs r6, r1
|
|
11554: 7d03 ldrb r3, [r0, #20]
|
|
11556: 075b lsls r3, r3, #29
|
|
11558: 0f5b lsrs r3, r3, #29
|
|
1155a: 428b cmp r3, r1
|
|
1155c: d028 beq.n 115b0 <lv_task_set_prio+0x68>
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
|
|
1155e: 4819 ldr r0, [pc, #100] ; (115c4 <lv_task_set_prio+0x7c>)
|
|
11560: 4b19 ldr r3, [pc, #100] ; (115c8 <lv_task_set_prio+0x80>)
|
|
11562: 4798 blx r3
|
|
11564: 1e04 subs r4, r0, #0
|
|
11566: d026 beq.n 115b6 <lv_task_set_prio+0x6e>
|
|
if(i->prio <= prio) {
|
|
11568: 7d03 ldrb r3, [r0, #20]
|
|
1156a: 075b lsls r3, r3, #29
|
|
1156c: 0f5b lsrs r3, r3, #29
|
|
1156e: 429e cmp r6, r3
|
|
11570: da0a bge.n 11588 <lv_task_set_prio+0x40>
|
|
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
|
|
11572: 4f16 ldr r7, [pc, #88] ; (115cc <lv_task_set_prio+0x84>)
|
|
11574: 0021 movs r1, r4
|
|
11576: 4813 ldr r0, [pc, #76] ; (115c4 <lv_task_set_prio+0x7c>)
|
|
11578: 47b8 blx r7
|
|
1157a: 1e04 subs r4, r0, #0
|
|
1157c: d01b beq.n 115b6 <lv_task_set_prio+0x6e>
|
|
if(i->prio <= prio) {
|
|
1157e: 7d23 ldrb r3, [r4, #20]
|
|
11580: 075b lsls r3, r3, #29
|
|
11582: 0f5b lsrs r3, r3, #29
|
|
11584: 429e cmp r6, r3
|
|
11586: dbf5 blt.n 11574 <lv_task_set_prio+0x2c>
|
|
if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i);
|
|
11588: 42a5 cmp r5, r4
|
|
1158a: d006 beq.n 1159a <lv_task_set_prio+0x52>
|
|
1158c: 0022 movs r2, r4
|
|
1158e: 0029 movs r1, r5
|
|
11590: 480c ldr r0, [pc, #48] ; (115c4 <lv_task_set_prio+0x7c>)
|
|
11592: 4b0f ldr r3, [pc, #60] ; (115d0 <lv_task_set_prio+0x88>)
|
|
11594: 4798 blx r3
|
|
if(i == NULL) {
|
|
11596: 2c00 cmp r4, #0
|
|
11598: d00d beq.n 115b6 <lv_task_set_prio+0x6e>
|
|
task_list_changed = true;
|
|
1159a: 2201 movs r2, #1
|
|
1159c: 4b0d ldr r3, [pc, #52] ; (115d4 <lv_task_set_prio+0x8c>)
|
|
1159e: 701a strb r2, [r3, #0]
|
|
task->prio = prio;
|
|
115a0: 3206 adds r2, #6
|
|
115a2: 464b mov r3, r9
|
|
115a4: 401a ands r2, r3
|
|
115a6: 7d2b ldrb r3, [r5, #20]
|
|
115a8: 2107 movs r1, #7
|
|
115aa: 438b bics r3, r1
|
|
115ac: 4313 orrs r3, r2
|
|
115ae: 752b strb r3, [r5, #20]
|
|
}
|
|
115b0: bc04 pop {r2}
|
|
115b2: 4691 mov r9, r2
|
|
115b4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
_lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL);
|
|
115b6: 2200 movs r2, #0
|
|
115b8: 0029 movs r1, r5
|
|
115ba: 4802 ldr r0, [pc, #8] ; (115c4 <lv_task_set_prio+0x7c>)
|
|
115bc: 4b04 ldr r3, [pc, #16] ; (115d0 <lv_task_set_prio+0x88>)
|
|
115be: 4798 blx r3
|
|
115c0: e7eb b.n 1159a <lv_task_set_prio+0x52>
|
|
115c2: 46c0 nop ; (mov r8, r8)
|
|
115c4: 20004cac .word 0x20004cac
|
|
115c8: 0001066d .word 0x0001066d
|
|
115cc: 00010685 .word 0x00010685
|
|
115d0: 00010861 .word 0x00010861
|
|
115d4: 20004c2b .word 0x20004c2b
|
|
|
|
000115d8 <lv_task_create>:
|
|
{
|
|
115d8: b5f0 push {r4, r5, r6, r7, lr}
|
|
115da: b083 sub sp, #12
|
|
115dc: 0006 movs r6, r0
|
|
115de: 000f movs r7, r1
|
|
115e0: 9201 str r2, [sp, #4]
|
|
115e2: 001d movs r5, r3
|
|
lv_task_t * new_task = lv_task_create_basic();
|
|
115e4: 4b0c ldr r3, [pc, #48] ; (11618 <lv_task_create+0x40>)
|
|
115e6: 4798 blx r3
|
|
115e8: 0004 movs r4, r0
|
|
LV_ASSERT_MEM(new_task);
|
|
115ea: 4b0c ldr r3, [pc, #48] ; (1161c <lv_task_create+0x44>)
|
|
115ec: 4798 blx r3
|
|
115ee: 2800 cmp r0, #0
|
|
115f0: d00b beq.n 1160a <lv_task_create+0x32>
|
|
if(new_task == NULL) return NULL;
|
|
115f2: 2c00 cmp r4, #0
|
|
115f4: d006 beq.n 11604 <lv_task_create+0x2c>
|
|
task->task_cb = task_cb;
|
|
115f6: 60a6 str r6, [r4, #8]
|
|
task->period = period;
|
|
115f8: 6027 str r7, [r4, #0]
|
|
lv_task_set_prio(new_task, prio);
|
|
115fa: 9901 ldr r1, [sp, #4]
|
|
115fc: 0020 movs r0, r4
|
|
115fe: 4b08 ldr r3, [pc, #32] ; (11620 <lv_task_create+0x48>)
|
|
11600: 4798 blx r3
|
|
new_task->user_data = user_data;
|
|
11602: 60e5 str r5, [r4, #12]
|
|
}
|
|
11604: 0020 movs r0, r4
|
|
11606: b003 add sp, #12
|
|
11608: bdf0 pop {r4, r5, r6, r7, pc}
|
|
LV_ASSERT_MEM(new_task);
|
|
1160a: 0022 movs r2, r4
|
|
1160c: 2300 movs r3, #0
|
|
1160e: 4805 ldr r0, [pc, #20] ; (11624 <lv_task_create+0x4c>)
|
|
11610: 4905 ldr r1, [pc, #20] ; (11628 <lv_task_create+0x50>)
|
|
11612: 4788 blx r1
|
|
11614: e7fe b.n 11614 <lv_task_create+0x3c>
|
|
11616: 46c0 nop ; (mov r8, r8)
|
|
11618: 000111c1 .word 0x000111c1
|
|
1161c: 0000147d .word 0x0000147d
|
|
11620: 00011549 .word 0x00011549
|
|
11624: 00018724 .word 0x00018724
|
|
11628: 00001485 .word 0x00001485
|
|
|
|
0001162c <lv_task_ready>:
|
|
{
|
|
1162c: b510 push {r4, lr}
|
|
1162e: 0004 movs r4, r0
|
|
task->last_run = lv_tick_get() - task->period - 1;
|
|
11630: 4b03 ldr r3, [pc, #12] ; (11640 <lv_task_ready+0x14>)
|
|
11632: 4798 blx r3
|
|
11634: 6823 ldr r3, [r4, #0]
|
|
11636: 43db mvns r3, r3
|
|
11638: 1818 adds r0, r3, r0
|
|
1163a: 6060 str r0, [r4, #4]
|
|
}
|
|
1163c: bd10 pop {r4, pc}
|
|
1163e: 46c0 nop ; (mov r8, r8)
|
|
11640: 0000f78d .word 0x0000f78d
|
|
|
|
00011644 <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)
|
|
{
|
|
11644: b5f0 push {r4, r5, r6, r7, lr}
|
|
11646: b083 sub sp, #12
|
|
* */
|
|
|
|
uint32_t result = 0;
|
|
|
|
/*Dummy 'i' pointer is required*/
|
|
uint32_t i_tmp = 0;
|
|
11648: 2300 movs r3, #0
|
|
1164a: 9301 str r3, [sp, #4]
|
|
if(i == NULL) i = &i_tmp;
|
|
1164c: 2900 cmp r1, #0
|
|
1164e: d00a beq.n 11666 <lv_txt_utf8_next+0x22>
|
|
|
|
/*Normal ASCII*/
|
|
if((txt[*i] & 0x80) == 0) {
|
|
11650: 680b ldr r3, [r1, #0]
|
|
11652: 5cc2 ldrb r2, [r0, r3]
|
|
11654: b254 sxtb r4, r2
|
|
11656: 2c00 cmp r4, #0
|
|
11658: db07 blt.n 1166a <lv_txt_utf8_next+0x26>
|
|
result = txt[*i];
|
|
1165a: 0014 movs r4, r2
|
|
(*i)++;
|
|
1165c: 3301 adds r3, #1
|
|
1165e: 600b str r3, [r1, #0]
|
|
else {
|
|
(*i)++; /*Not UTF-8 char. Go the next.*/
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
11660: 0020 movs r0, r4
|
|
11662: b003 add sp, #12
|
|
11664: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(i == NULL) i = &i_tmp;
|
|
11666: a901 add r1, sp, #4
|
|
11668: e7f2 b.n 11650 <lv_txt_utf8_next+0xc>
|
|
if((txt[*i] & 0xE0) == 0xC0) {
|
|
1166a: 241f movs r4, #31
|
|
1166c: 0015 movs r5, r2
|
|
1166e: 43a5 bics r5, r4
|
|
11670: 2dc0 cmp r5, #192 ; 0xc0
|
|
11672: d00d beq.n 11690 <lv_txt_utf8_next+0x4c>
|
|
else if((txt[*i] & 0xF0) == 0xE0) {
|
|
11674: 240f movs r4, #15
|
|
11676: 0015 movs r5, r2
|
|
11678: 43a5 bics r5, r4
|
|
1167a: 2de0 cmp r5, #224 ; 0xe0
|
|
1167c: d01c beq.n 116b8 <lv_txt_utf8_next+0x74>
|
|
else if((txt[*i] & 0xF8) == 0xF0) {
|
|
1167e: 2407 movs r4, #7
|
|
11680: 0015 movs r5, r2
|
|
11682: 43a5 bics r5, r4
|
|
11684: 2df0 cmp r5, #240 ; 0xf0
|
|
11686: d036 beq.n 116f6 <lv_txt_utf8_next+0xb2>
|
|
(*i)++; /*Not UTF-8 char. Go the next.*/
|
|
11688: 3301 adds r3, #1
|
|
1168a: 600b str r3, [r1, #0]
|
|
uint32_t result = 0;
|
|
1168c: 2400 movs r4, #0
|
|
1168e: e7e7 b.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
11690: 1c5c adds r4, r3, #1
|
|
11692: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
11694: 5d05 ldrb r5, [r0, r4]
|
|
11696: 203f movs r0, #63 ; 0x3f
|
|
11698: 002c movs r4, r5
|
|
1169a: 4384 bics r4, r0
|
|
1169c: 0020 movs r0, r4
|
|
1169e: 2400 movs r4, #0
|
|
116a0: 2880 cmp r0, #128 ; 0x80
|
|
116a2: d1dd bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
result = (uint32_t)(txt[*i] & 0x1F) << 6;
|
|
116a4: 0192 lsls r2, r2, #6
|
|
116a6: 24f8 movs r4, #248 ; 0xf8
|
|
116a8: 00e4 lsls r4, r4, #3
|
|
116aa: 4022 ands r2, r4
|
|
result += (txt[*i] & 0x3F);
|
|
116ac: 243f movs r4, #63 ; 0x3f
|
|
116ae: 402c ands r4, r5
|
|
116b0: 18a4 adds r4, r4, r2
|
|
(*i)++;
|
|
116b2: 3302 adds r3, #2
|
|
116b4: 600b str r3, [r1, #0]
|
|
116b6: e7d3 b.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
116b8: 1c5c adds r4, r3, #1
|
|
116ba: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
116bc: 5d05 ldrb r5, [r0, r4]
|
|
116be: 243f movs r4, #63 ; 0x3f
|
|
116c0: 002e movs r6, r5
|
|
116c2: 43a6 bics r6, r4
|
|
116c4: 2400 movs r4, #0
|
|
116c6: 2e80 cmp r6, #128 ; 0x80
|
|
116c8: d1ca bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
116ca: 1c9c adds r4, r3, #2
|
|
116cc: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
116ce: 5d00 ldrb r0, [r0, r4]
|
|
116d0: 243f movs r4, #63 ; 0x3f
|
|
116d2: 0006 movs r6, r0
|
|
116d4: 43a6 bics r6, r4
|
|
116d6: 2400 movs r4, #0
|
|
116d8: 2e80 cmp r6, #128 ; 0x80
|
|
116da: d1c1 bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
result = (uint32_t)(txt[*i] & 0x0F) << 12;
|
|
116dc: 0714 lsls r4, r2, #28
|
|
116de: 0c24 lsrs r4, r4, #16
|
|
result += (txt[*i] & 0x3F);
|
|
116e0: 223f movs r2, #63 ; 0x3f
|
|
116e2: 4010 ands r0, r2
|
|
116e4: 1824 adds r4, r4, r0
|
|
result += (uint32_t)(txt[*i] & 0x3F) << 6;
|
|
116e6: 01ad lsls r5, r5, #6
|
|
116e8: 20fc movs r0, #252 ; 0xfc
|
|
116ea: 0100 lsls r0, r0, #4
|
|
116ec: 4005 ands r5, r0
|
|
result += (txt[*i] & 0x3F);
|
|
116ee: 192c adds r4, r5, r4
|
|
(*i)++;
|
|
116f0: 3303 adds r3, #3
|
|
116f2: 600b str r3, [r1, #0]
|
|
116f4: e7b4 b.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
116f6: 1c5c adds r4, r3, #1
|
|
116f8: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
116fa: 5d05 ldrb r5, [r0, r4]
|
|
116fc: 243f movs r4, #63 ; 0x3f
|
|
116fe: 002e movs r6, r5
|
|
11700: 43a6 bics r6, r4
|
|
11702: 2400 movs r4, #0
|
|
11704: 2e80 cmp r6, #128 ; 0x80
|
|
11706: d1ab bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
11708: 1c9c adds r4, r3, #2
|
|
1170a: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
1170c: 5d06 ldrb r6, [r0, r4]
|
|
1170e: 243f movs r4, #63 ; 0x3f
|
|
11710: 0037 movs r7, r6
|
|
11712: 43a7 bics r7, r4
|
|
11714: 2400 movs r4, #0
|
|
11716: 2f80 cmp r7, #128 ; 0x80
|
|
11718: d1a2 bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
(*i)++;
|
|
1171a: 1cdc adds r4, r3, #3
|
|
1171c: 600c str r4, [r1, #0]
|
|
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
|
|
1171e: 5d00 ldrb r0, [r0, r4]
|
|
11720: 243f movs r4, #63 ; 0x3f
|
|
11722: 0007 movs r7, r0
|
|
11724: 43a7 bics r7, r4
|
|
11726: 2400 movs r4, #0
|
|
11728: 2f80 cmp r7, #128 ; 0x80
|
|
1172a: d199 bne.n 11660 <lv_txt_utf8_next+0x1c>
|
|
result = (uint32_t)(txt[*i] & 0x07) << 18;
|
|
1172c: 0492 lsls r2, r2, #18
|
|
1172e: 24e0 movs r4, #224 ; 0xe0
|
|
11730: 0364 lsls r4, r4, #13
|
|
11732: 4022 ands r2, r4
|
|
result += (uint32_t)(txt[*i] & 0x3F) << 12;
|
|
11734: 032c lsls r4, r5, #12
|
|
11736: 25fc movs r5, #252 ; 0xfc
|
|
11738: 02ad lsls r5, r5, #10
|
|
1173a: 402c ands r4, r5
|
|
1173c: 4322 orrs r2, r4
|
|
result += (uint32_t)(txt[*i] & 0x3F) << 6;
|
|
1173e: 01b4 lsls r4, r6, #6
|
|
11740: 26fc movs r6, #252 ; 0xfc
|
|
11742: 0136 lsls r6, r6, #4
|
|
11744: 4034 ands r4, r6
|
|
result += txt[*i] & 0x3F;
|
|
11746: 253f movs r5, #63 ; 0x3f
|
|
11748: 4028 ands r0, r5
|
|
1174a: 1824 adds r4, r4, r0
|
|
1174c: 18a4 adds r4, r4, r2
|
|
(*i)++;
|
|
1174e: 3304 adds r3, #4
|
|
11750: 600b str r3, [r1, #0]
|
|
11752: e785 b.n 11660 <lv_txt_utf8_next+0x1c>
|
|
|
|
00011754 <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)
|
|
{
|
|
11754: b5f0 push {r4, r5, r6, r7, lr}
|
|
11756: b083 sub sp, #12
|
|
11758: 0006 movs r6, r0
|
|
1175a: 000d movs r5, r1
|
|
uint32_t i = 0;
|
|
1175c: 2300 movs r3, #0
|
|
1175e: 9301 str r3, [sp, #4]
|
|
uint32_t char_cnt = 0;
|
|
|
|
while(i < byte_id) {
|
|
11760: 2900 cmp r1, #0
|
|
11762: d00c beq.n 1177e <lv_txt_utf8_get_char_id+0x2a>
|
|
11764: 2400 movs r4, #0
|
|
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
|
|
11766: 4f07 ldr r7, [pc, #28] ; (11784 <lv_txt_utf8_get_char_id+0x30>)
|
|
11768: a901 add r1, sp, #4
|
|
1176a: 0030 movs r0, r6
|
|
1176c: 683b ldr r3, [r7, #0]
|
|
1176e: 4798 blx r3
|
|
char_cnt++;
|
|
11770: 3401 adds r4, #1
|
|
while(i < byte_id) {
|
|
11772: 9b01 ldr r3, [sp, #4]
|
|
11774: 42ab cmp r3, r5
|
|
11776: d3f7 bcc.n 11768 <lv_txt_utf8_get_char_id+0x14>
|
|
}
|
|
|
|
return char_cnt;
|
|
}
|
|
11778: 0020 movs r0, r4
|
|
1177a: b003 add sp, #12
|
|
1177c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
uint32_t char_cnt = 0;
|
|
1177e: 000c movs r4, r1
|
|
return char_cnt;
|
|
11780: e7fa b.n 11778 <lv_txt_utf8_get_char_id+0x24>
|
|
11782: 46c0 nop ; (mov r8, r8)
|
|
11784: 20000058 .word 0x20000058
|
|
|
|
00011788 <_lv_txt_is_cmd>:
|
|
if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) {
|
|
11788: 2923 cmp r1, #35 ; 0x23
|
|
1178a: d005 beq.n 11798 <_lv_txt_is_cmd+0x10>
|
|
if(*state == LV_TXT_CMD_STATE_PAR) {
|
|
1178c: 7802 ldrb r2, [r0, #0]
|
|
bool ret = false;
|
|
1178e: 2300 movs r3, #0
|
|
if(*state == LV_TXT_CMD_STATE_PAR) {
|
|
11790: 2a01 cmp r2, #1
|
|
11792: d012 beq.n 117ba <_lv_txt_is_cmd+0x32>
|
|
}
|
|
11794: 0018 movs r0, r3
|
|
11796: 4770 bx lr
|
|
if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/
|
|
11798: 7802 ldrb r2, [r0, #0]
|
|
1179a: 2a00 cmp r2, #0
|
|
1179c: d102 bne.n 117a4 <_lv_txt_is_cmd+0x1c>
|
|
*state = LV_TXT_CMD_STATE_PAR;
|
|
1179e: 2301 movs r3, #1
|
|
117a0: 7003 strb r3, [r0, #0]
|
|
117a2: e7f7 b.n 11794 <_lv_txt_is_cmd+0xc>
|
|
else if(*state == LV_TXT_CMD_STATE_PAR) {
|
|
117a4: 2a01 cmp r2, #1
|
|
117a6: d005 beq.n 117b4 <_lv_txt_is_cmd+0x2c>
|
|
bool ret = false;
|
|
117a8: 2300 movs r3, #0
|
|
else if(*state == LV_TXT_CMD_STATE_IN) {
|
|
117aa: 2a02 cmp r2, #2
|
|
117ac: d1f2 bne.n 11794 <_lv_txt_is_cmd+0xc>
|
|
*state = LV_TXT_CMD_STATE_WAIT;
|
|
117ae: 7003 strb r3, [r0, #0]
|
|
ret = true;
|
|
117b0: 3301 adds r3, #1
|
|
117b2: e7ef b.n 11794 <_lv_txt_is_cmd+0xc>
|
|
*state = LV_TXT_CMD_STATE_WAIT;
|
|
117b4: 2300 movs r3, #0
|
|
117b6: 7003 strb r3, [r0, #0]
|
|
117b8: e7ec b.n 11794 <_lv_txt_is_cmd+0xc>
|
|
ret = true;
|
|
117ba: 3301 adds r3, #1
|
|
if(c == ' ') {
|
|
117bc: 2920 cmp r1, #32
|
|
117be: d1e9 bne.n 11794 <_lv_txt_is_cmd+0xc>
|
|
*state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/
|
|
117c0: 3301 adds r3, #1
|
|
117c2: 7003 strb r3, [r0, #0]
|
|
ret = true;
|
|
117c4: 3b01 subs r3, #1
|
|
117c6: e7e5 b.n 11794 <_lv_txt_is_cmd+0xc>
|
|
|
|
000117c8 <_lv_txt_get_next_line>:
|
|
{
|
|
117c8: b5f0 push {r4, r5, r6, r7, lr}
|
|
117ca: 46de mov lr, fp
|
|
117cc: 4657 mov r7, sl
|
|
117ce: 464e mov r6, r9
|
|
117d0: 4645 mov r5, r8
|
|
117d2: b5e0 push {r5, r6, r7, lr}
|
|
117d4: b091 sub sp, #68 ; 0x44
|
|
117d6: 9007 str r0, [sp, #28]
|
|
117d8: 9103 str r1, [sp, #12]
|
|
117da: 4692 mov sl, r2
|
|
117dc: 9305 str r3, [sp, #20]
|
|
117de: ab1a add r3, sp, #104 ; 0x68
|
|
117e0: 781b ldrb r3, [r3, #0]
|
|
117e2: 001a movs r2, r3
|
|
117e4: 930a str r3, [sp, #40] ; 0x28
|
|
if(txt == NULL) return 0;
|
|
117e6: 2800 cmp r0, #0
|
|
117e8: d100 bne.n 117ec <_lv_txt_get_next_line+0x24>
|
|
117ea: e10b b.n 11a04 <_lv_txt_get_next_line+0x23c>
|
|
if(font == NULL) return 0;
|
|
117ec: 2900 cmp r1, #0
|
|
117ee: d100 bne.n 117f2 <_lv_txt_get_next_line+0x2a>
|
|
117f0: e10a b.n 11a08 <_lv_txt_get_next_line+0x240>
|
|
if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) {
|
|
117f2: 2312 movs r3, #18
|
|
117f4: 4213 tst r3, r2
|
|
117f6: d016 beq.n 11826 <_lv_txt_get_next_line+0x5e>
|
|
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
|
|
117f8: 0002 movs r2, r0
|
|
117fa: 7803 ldrb r3, [r0, #0]
|
|
117fc: 2b0a cmp r3, #10
|
|
117fe: d100 bne.n 11802 <_lv_txt_get_next_line+0x3a>
|
|
11800: e104 b.n 11a0c <_lv_txt_get_next_line+0x244>
|
|
11802: 2b0d cmp r3, #13
|
|
11804: d100 bne.n 11808 <_lv_txt_get_next_line+0x40>
|
|
11806: e10b b.n 11a20 <_lv_txt_get_next_line+0x258>
|
|
11808: 2b00 cmp r3, #0
|
|
1180a: d100 bne.n 1180e <_lv_txt_get_next_line+0x46>
|
|
1180c: e10a b.n 11a24 <_lv_txt_get_next_line+0x25c>
|
|
1180e: 2000 movs r0, #0
|
|
11810: 3001 adds r0, #1
|
|
11812: 5c13 ldrb r3, [r2, r0]
|
|
11814: 2b0a cmp r3, #10
|
|
11816: d100 bne.n 1181a <_lv_txt_get_next_line+0x52>
|
|
11818: e0f9 b.n 11a0e <_lv_txt_get_next_line+0x246>
|
|
1181a: 2b0d cmp r3, #13
|
|
1181c: d100 bne.n 11820 <_lv_txt_get_next_line+0x58>
|
|
1181e: e0f6 b.n 11a0e <_lv_txt_get_next_line+0x246>
|
|
11820: 2b00 cmp r3, #0
|
|
11822: d1f5 bne.n 11810 <_lv_txt_get_next_line+0x48>
|
|
11824: e0f4 b.n 11a10 <_lv_txt_get_next_line+0x248>
|
|
11826: 2302 movs r3, #2
|
|
11828: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
1182a: 401a ands r2, r3
|
|
1182c: 920b str r2, [sp, #44] ; 0x2c
|
|
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
|
|
1182e: d001 beq.n 11834 <_lv_txt_get_next_line+0x6c>
|
|
11830: 4b7d ldr r3, [pc, #500] ; (11a28 <_lv_txt_get_next_line+0x260>)
|
|
11832: 9305 str r3, [sp, #20]
|
|
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
|
|
11834: 2300 movs r3, #0
|
|
11836: 220f movs r2, #15
|
|
11838: a90c add r1, sp, #48 ; 0x30
|
|
1183a: 468c mov ip, r1
|
|
1183c: 4462 add r2, ip
|
|
1183e: 7013 strb r3, [r2, #0]
|
|
uint32_t i = 0; /* Iterating index into txt */
|
|
11840: 930e str r3, [sp, #56] ; 0x38
|
|
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
|
|
11842: 4b7a ldr r3, [pc, #488] ; (11a2c <_lv_txt_get_next_line+0x264>)
|
|
11844: 4699 mov r9, r3
|
|
{
|
|
uint8_t i;
|
|
bool ret = false;
|
|
|
|
/*Compare the letter to TXT_BREAK_CHARS*/
|
|
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
|
|
11846: 4f7a ldr r7, [pc, #488] ; (11a30 <_lv_txt_get_next_line+0x268>)
|
|
11848: 4653 mov r3, sl
|
|
1184a: 9304 str r3, [sp, #16]
|
|
while(txt[i] != '\0' && max_width > 0) {
|
|
1184c: e083 b.n 11956 <_lv_txt_get_next_line+0x18e>
|
|
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
|
|
1184e: 9a00 ldr r2, [sp, #0]
|
|
11850: 0021 movs r1, r4
|
|
11852: 9803 ldr r0, [sp, #12]
|
|
11854: 4b77 ldr r3, [pc, #476] ; (11a34 <_lv_txt_get_next_line+0x26c>)
|
|
11856: 4798 blx r3
|
|
cur_w += letter_w;
|
|
11858: 1945 adds r5, r0, r5
|
|
1185a: b2ad uxth r5, r5
|
|
if(letter_w > 0) {
|
|
1185c: b200 sxth r0, r0
|
|
1185e: 2800 cmp r0, #0
|
|
11860: dd03 ble.n 1186a <_lv_txt_get_next_line+0xa2>
|
|
cur_w += letter_space;
|
|
11862: 9b04 ldr r3, [sp, #16]
|
|
11864: 469c mov ip, r3
|
|
11866: 4465 add r5, ip
|
|
11868: b2ad uxth r5, r5
|
|
1186a: b22d sxth r5, r5
|
|
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
|
|
1186c: 4643 mov r3, r8
|
|
1186e: 3301 adds r3, #1
|
|
11870: d039 beq.n 118e6 <_lv_txt_get_next_line+0x11e>
|
|
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
|
|
11872: 0022 movs r2, r4
|
|
11874: 3a0a subs r2, #10
|
|
11876: 2a16 cmp r2, #22
|
|
11878: d83c bhi.n 118f4 <_lv_txt_get_next_line+0x12c>
|
|
1187a: 4b6f ldr r3, [pc, #444] ; (11a38 <_lv_txt_get_next_line+0x270>)
|
|
1187c: 40d3 lsrs r3, r2
|
|
1187e: 2201 movs r2, #1
|
|
11880: 421a tst r2, r3
|
|
11882: d13a bne.n 118fa <_lv_txt_get_next_line+0x132>
|
|
11884: 2301 movs r3, #1
|
|
11886: 322b adds r2, #43 ; 0x2b
|
|
if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) {
|
|
11888: 4294 cmp r4, r2
|
|
1188a: d038 beq.n 118fe <_lv_txt_get_next_line+0x136>
|
|
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
|
|
1188c: 3301 adds r3, #1
|
|
1188e: b2db uxtb r3, r3
|
|
11890: 5cfa ldrb r2, [r7, r3]
|
|
11892: 2a00 cmp r2, #0
|
|
11894: d1f8 bne.n 11888 <_lv_txt_get_next_line+0xc0>
|
|
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
|
|
11896: 4643 mov r3, r8
|
|
11898: 3301 adds r3, #1
|
|
1189a: d100 bne.n 1189e <_lv_txt_get_next_line+0xd6>
|
|
1189c: e08d b.n 119ba <_lv_txt_get_next_line+0x1f2>
|
|
i = i_next;
|
|
1189e: 9e0c ldr r6, [sp, #48] ; 0x30
|
|
i_next = i_next_next;
|
|
118a0: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
118a2: 930c str r3, [sp, #48] ; 0x30
|
|
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
|
|
118a4: 9b02 ldr r3, [sp, #8]
|
|
118a6: 9301 str r3, [sp, #4]
|
|
118a8: 9c00 ldr r4, [sp, #0]
|
|
while(txt[i] != '\0') {
|
|
118aa: 4653 mov r3, sl
|
|
118ac: 5d9b ldrb r3, [r3, r6]
|
|
118ae: 2b00 cmp r3, #0
|
|
118b0: d100 bne.n 118b4 <_lv_txt_get_next_line+0xec>
|
|
118b2: e084 b.n 119be <_lv_txt_get_next_line+0x1f6>
|
|
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
|
|
118b4: a90d add r1, sp, #52 ; 0x34
|
|
118b6: 4650 mov r0, sl
|
|
118b8: 464b mov r3, r9
|
|
118ba: 681b ldr r3, [r3, #0]
|
|
118bc: 4798 blx r3
|
|
118be: 9000 str r0, [sp, #0]
|
|
word_len++;
|
|
118c0: 9b01 ldr r3, [sp, #4]
|
|
118c2: 3301 adds r3, #1
|
|
118c4: 9302 str r3, [sp, #8]
|
|
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
|
|
118c6: 465b mov r3, fp
|
|
118c8: 2b00 cmp r3, #0
|
|
118ca: d0c0 beq.n 1184e <_lv_txt_get_next_line+0x86>
|
|
if(_lv_txt_is_cmd(cmd_state, letter) != false) {
|
|
118cc: 0021 movs r1, r4
|
|
118ce: 200f movs r0, #15
|
|
118d0: ab0c add r3, sp, #48 ; 0x30
|
|
118d2: 469c mov ip, r3
|
|
118d4: 4460 add r0, ip
|
|
118d6: 4b59 ldr r3, [pc, #356] ; (11a3c <_lv_txt_get_next_line+0x274>)
|
|
118d8: 4798 blx r3
|
|
118da: 2800 cmp r0, #0
|
|
118dc: d0b7 beq.n 1184e <_lv_txt_get_next_line+0x86>
|
|
i = i_next;
|
|
118de: 9e0c ldr r6, [sp, #48] ; 0x30
|
|
i_next = i_next_next;
|
|
118e0: 9b0d ldr r3, [sp, #52] ; 0x34
|
|
118e2: 930c str r3, [sp, #48] ; 0x30
|
|
118e4: e7de b.n 118a4 <_lv_txt_get_next_line+0xdc>
|
|
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
|
|
118e6: 9b04 ldr r3, [sp, #16]
|
|
118e8: 1aeb subs r3, r5, r3
|
|
118ea: 9a08 ldr r2, [sp, #32]
|
|
118ec: 4293 cmp r3, r2
|
|
118ee: ddc0 ble.n 11872 <_lv_txt_get_next_line+0xaa>
|
|
118f0: 46b0 mov r8, r6
|
|
118f2: e7be b.n 11872 <_lv_txt_get_next_line+0xaa>
|
|
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
|
|
118f4: 2301 movs r3, #1
|
|
118f6: 222c movs r2, #44 ; 0x2c
|
|
118f8: e7c6 b.n 11888 <_lv_txt_get_next_line+0xc0>
|
|
118fa: 46b2 mov sl, r6
|
|
118fc: e000 b.n 11900 <_lv_txt_get_next_line+0x138>
|
|
118fe: 46b2 mov sl, r6
|
|
if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w;
|
|
11900: 4653 mov r3, sl
|
|
11902: 2b00 cmp r3, #0
|
|
11904: d15c bne.n 119c0 <_lv_txt_get_next_line+0x1f8>
|
|
11906: 4643 mov r3, r8
|
|
11908: 3301 adds r3, #1
|
|
1190a: d15c bne.n 119c6 <_lv_txt_get_next_line+0x1fe>
|
|
1190c: 9506 str r5, [sp, #24]
|
|
if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next;
|
|
1190e: 9b01 ldr r3, [sp, #4]
|
|
11910: 2b00 cmp r3, #0
|
|
11912: d004 beq.n 1191e <_lv_txt_get_next_line+0x156>
|
|
11914: 2c0d cmp r4, #13
|
|
11916: d104 bne.n 11922 <_lv_txt_get_next_line+0x15a>
|
|
11918: 9b00 ldr r3, [sp, #0]
|
|
1191a: 2b0a cmp r3, #10
|
|
1191c: d101 bne.n 11922 <_lv_txt_get_next_line+0x15a>
|
|
1191e: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
11920: 469a mov sl, r3
|
|
return i;
|
|
11922: 4653 mov r3, sl
|
|
11924: 466a mov r2, sp
|
|
11926: 8013 strh r3, [r2, #0]
|
|
11928: 8816 ldrh r6, [r2, #0]
|
|
max_width -= word_w;
|
|
1192a: 9b05 ldr r3, [sp, #20]
|
|
1192c: 9a06 ldr r2, [sp, #24]
|
|
1192e: 1a9b subs r3, r3, r2
|
|
11930: b21b sxth r3, r3
|
|
11932: 9305 str r3, [sp, #20]
|
|
if(advance == 0) {
|
|
11934: 2e00 cmp r6, #0
|
|
11936: d049 beq.n 119cc <_lv_txt_get_next_line+0x204>
|
|
i += advance;
|
|
11938: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
1193a: 469c mov ip, r3
|
|
1193c: 4466 add r6, ip
|
|
1193e: 960e str r6, [sp, #56] ; 0x38
|
|
if(txt[0] == '\n' || txt[0] == '\r') break;
|
|
11940: 9a07 ldr r2, [sp, #28]
|
|
11942: 7813 ldrb r3, [r2, #0]
|
|
11944: 2b0a cmp r3, #10
|
|
11946: d051 beq.n 119ec <_lv_txt_get_next_line+0x224>
|
|
11948: 2b0d cmp r3, #13
|
|
1194a: d04f beq.n 119ec <_lv_txt_get_next_line+0x224>
|
|
if(txt[i] == '\n' || txt[i] == '\r') {
|
|
1194c: 5d93 ldrb r3, [r2, r6]
|
|
1194e: 2b0a cmp r3, #10
|
|
11950: d04a beq.n 119e8 <_lv_txt_get_next_line+0x220>
|
|
11952: 2b0d cmp r3, #13
|
|
11954: d048 beq.n 119e8 <_lv_txt_get_next_line+0x220>
|
|
while(txt[i] != '\0' && max_width > 0) {
|
|
11956: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
11958: 9309 str r3, [sp, #36] ; 0x24
|
|
1195a: 9a07 ldr r2, [sp, #28]
|
|
1195c: 469c mov ip, r3
|
|
1195e: 4462 add r2, ip
|
|
11960: 0016 movs r6, r2
|
|
11962: 7813 ldrb r3, [r2, #0]
|
|
11964: 2b00 cmp r3, #0
|
|
11966: d041 beq.n 119ec <_lv_txt_get_next_line+0x224>
|
|
11968: 9b05 ldr r3, [sp, #20]
|
|
1196a: 2b00 cmp r3, #0
|
|
1196c: dd3e ble.n 119ec <_lv_txt_get_next_line+0x224>
|
|
if(txt == NULL || txt[0] == '\0') return 0;
|
|
1196e: 2e00 cmp r6, #0
|
|
11970: d02c beq.n 119cc <_lv_txt_get_next_line+0x204>
|
|
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
|
|
11972: 9b05 ldr r3, [sp, #20]
|
|
11974: 9308 str r3, [sp, #32]
|
|
11976: 9b0b ldr r3, [sp, #44] ; 0x2c
|
|
11978: 2b00 cmp r3, #0
|
|
1197a: d001 beq.n 11980 <_lv_txt_get_next_line+0x1b8>
|
|
1197c: 4b2a ldr r3, [pc, #168] ; (11a28 <_lv_txt_get_next_line+0x260>)
|
|
1197e: 9308 str r3, [sp, #32]
|
|
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
|
|
11980: 2300 movs r3, #0
|
|
11982: 930c str r3, [sp, #48] ; 0x30
|
|
11984: 930d str r3, [sp, #52] ; 0x34
|
|
letter = _lv_txt_encoded_next(txt, &i_next);
|
|
11986: a90c add r1, sp, #48 ; 0x30
|
|
11988: 0030 movs r0, r6
|
|
1198a: 4b28 ldr r3, [pc, #160] ; (11a2c <_lv_txt_get_next_line+0x264>)
|
|
1198c: 681b ldr r3, [r3, #0]
|
|
1198e: 9300 str r3, [sp, #0]
|
|
11990: 4798 blx r3
|
|
11992: 0004 movs r4, r0
|
|
i_next_next = i_next;
|
|
11994: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
11996: 930d str r3, [sp, #52] ; 0x34
|
|
uint32_t word_w = 0;
|
|
11998: 2300 movs r3, #0
|
|
1199a: 9306 str r3, [sp, #24]
|
|
uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */
|
|
1199c: 3b01 subs r3, #1
|
|
1199e: 4698 mov r8, r3
|
|
uint32_t word_len = 0; /* Number of characters in the transversed word */
|
|
119a0: 2300 movs r3, #0
|
|
119a2: 9301 str r3, [sp, #4]
|
|
lv_coord_t cur_w = 0; /* Pixel Width of transversed string */
|
|
119a4: 2500 movs r5, #0
|
|
uint32_t letter_next = 0; /* Letter at i_next */
|
|
119a6: 9300 str r3, [sp, #0]
|
|
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
|
|
119a8: 469a mov sl, r3
|
|
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
|
|
119aa: 3301 adds r3, #1
|
|
119ac: 9a0a ldr r2, [sp, #40] ; 0x28
|
|
119ae: 4013 ands r3, r2
|
|
119b0: 469b mov fp, r3
|
|
119b2: 4653 mov r3, sl
|
|
119b4: 46b2 mov sl, r6
|
|
119b6: 001e movs r6, r3
|
|
119b8: e777 b.n 118aa <_lv_txt_get_next_line+0xe2>
|
|
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
|
|
119ba: 9506 str r5, [sp, #24]
|
|
119bc: e76f b.n 1189e <_lv_txt_get_next_line+0xd6>
|
|
119be: 46b2 mov sl, r6
|
|
if(break_index == NO_BREAK_FOUND) {
|
|
119c0: 4643 mov r3, r8
|
|
119c2: 3301 adds r3, #1
|
|
119c4: d0a3 beq.n 1190e <_lv_txt_get_next_line+0x146>
|
|
if(force) return break_index;
|
|
119c6: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
119c8: 2b00 cmp r3, #0
|
|
119ca: d008 beq.n 119de <_lv_txt_get_next_line+0x216>
|
|
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
|
|
119cc: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
119ce: 2b00 cmp r3, #0
|
|
119d0: d10f bne.n 119f2 <_lv_txt_get_next_line+0x22a>
|
|
119d2: 4b16 ldr r3, [pc, #88] ; (11a2c <_lv_txt_get_next_line+0x264>)
|
|
119d4: 681b ldr r3, [r3, #0]
|
|
119d6: a90e add r1, sp, #56 ; 0x38
|
|
119d8: 9807 ldr r0, [sp, #28]
|
|
119da: 4798 blx r3
|
|
119dc: e006 b.n 119ec <_lv_txt_get_next_line+0x224>
|
|
if(force) return break_index;
|
|
119de: 4643 mov r3, r8
|
|
119e0: 466a mov r2, sp
|
|
119e2: 8013 strh r3, [r2, #0]
|
|
119e4: 8816 ldrh r6, [r2, #0]
|
|
119e6: e7a0 b.n 1192a <_lv_txt_get_next_line+0x162>
|
|
i++; /* Include the following newline in the current line */
|
|
119e8: 3601 adds r6, #1
|
|
119ea: 960e str r6, [sp, #56] ; 0x38
|
|
if(i == 0) {
|
|
119ec: 9b0e ldr r3, [sp, #56] ; 0x38
|
|
119ee: 2b00 cmp r3, #0
|
|
119f0: d002 beq.n 119f8 <_lv_txt_get_next_line+0x230>
|
|
return i;
|
|
119f2: ab0c add r3, sp, #48 ; 0x30
|
|
119f4: 8918 ldrh r0, [r3, #8]
|
|
119f6: e00c b.n 11a12 <_lv_txt_get_next_line+0x24a>
|
|
_lv_txt_encoded_next(txt, &i);
|
|
119f8: 4b0c ldr r3, [pc, #48] ; (11a2c <_lv_txt_get_next_line+0x264>)
|
|
119fa: 681b ldr r3, [r3, #0]
|
|
119fc: a90e add r1, sp, #56 ; 0x38
|
|
119fe: 9807 ldr r0, [sp, #28]
|
|
11a00: 4798 blx r3
|
|
11a02: e7f6 b.n 119f2 <_lv_txt_get_next_line+0x22a>
|
|
if(txt == NULL) return 0;
|
|
11a04: 2000 movs r0, #0
|
|
11a06: e004 b.n 11a12 <_lv_txt_get_next_line+0x24a>
|
|
if(font == NULL) return 0;
|
|
11a08: 2000 movs r0, #0
|
|
11a0a: e002 b.n 11a12 <_lv_txt_get_next_line+0x24a>
|
|
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
|
|
11a0c: 2000 movs r0, #0
|
|
if(txt[i] != '\0') i++; /*To go beyond `\n`*/
|
|
11a0e: 3001 adds r0, #1
|
|
return i;
|
|
11a10: b280 uxth r0, r0
|
|
}
|
|
11a12: b011 add sp, #68 ; 0x44
|
|
11a14: bc3c pop {r2, r3, r4, r5}
|
|
11a16: 4690 mov r8, r2
|
|
11a18: 4699 mov r9, r3
|
|
11a1a: 46a2 mov sl, r4
|
|
11a1c: 46ab mov fp, r5
|
|
11a1e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
|
|
11a20: 2000 movs r0, #0
|
|
11a22: e7f4 b.n 11a0e <_lv_txt_get_next_line+0x246>
|
|
11a24: 2000 movs r0, #0
|
|
11a26: e7f3 b.n 11a10 <_lv_txt_get_next_line+0x248>
|
|
11a28: 00007c18 .word 0x00007c18
|
|
11a2c: 20000058 .word 0x20000058
|
|
11a30: 0001c87c .word 0x0001c87c
|
|
11a34: 0000e769 .word 0x0000e769
|
|
11a38: 00400009 .word 0x00400009
|
|
11a3c: 00011789 .word 0x00011789
|
|
|
|
00011a40 <_lv_txt_get_width>:
|
|
{
|
|
11a40: b5f0 push {r4, r5, r6, r7, lr}
|
|
11a42: 46ce mov lr, r9
|
|
11a44: 4647 mov r7, r8
|
|
11a46: b580 push {r7, lr}
|
|
11a48: b085 sub sp, #20
|
|
11a4a: 0005 movs r5, r0
|
|
11a4c: 4689 mov r9, r1
|
|
11a4e: 9201 str r2, [sp, #4]
|
|
11a50: 4698 mov r8, r3
|
|
11a52: ab0c add r3, sp, #48 ; 0x30
|
|
11a54: 781f ldrb r7, [r3, #0]
|
|
if(txt == NULL) return 0;
|
|
11a56: 2800 cmp r0, #0
|
|
11a58: d03a beq.n 11ad0 <_lv_txt_get_width+0x90>
|
|
if(font == NULL) return 0;
|
|
11a5a: 2a00 cmp r2, #0
|
|
11a5c: d03a beq.n 11ad4 <_lv_txt_get_width+0x94>
|
|
uint32_t i = 0;
|
|
11a5e: 2300 movs r3, #0
|
|
11a60: 9303 str r3, [sp, #12]
|
|
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
|
|
11a62: aa02 add r2, sp, #8
|
|
11a64: 70d3 strb r3, [r2, #3]
|
|
11a66: 2400 movs r4, #0
|
|
if(length != 0) {
|
|
11a68: 2900 cmp r1, #0
|
|
11a6a: d02b beq.n 11ac4 <_lv_txt_get_width+0x84>
|
|
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
|
|
11a6c: 2301 movs r3, #1
|
|
11a6e: 401f ands r7, r3
|
|
11a70: e00a b.n 11a88 <_lv_txt_get_width+0x48>
|
|
lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next);
|
|
11a72: 0032 movs r2, r6
|
|
11a74: 9900 ldr r1, [sp, #0]
|
|
11a76: 9801 ldr r0, [sp, #4]
|
|
11a78: 4b17 ldr r3, [pc, #92] ; (11ad8 <_lv_txt_get_width+0x98>)
|
|
11a7a: 4798 blx r3
|
|
if(char_width > 0) {
|
|
11a7c: b203 sxth r3, r0
|
|
11a7e: 2b00 cmp r3, #0
|
|
11a80: dd02 ble.n 11a88 <_lv_txt_get_width+0x48>
|
|
width += letter_space;
|
|
11a82: 4444 add r4, r8
|
|
11a84: 1904 adds r4, r0, r4
|
|
11a86: b224 sxth r4, r4
|
|
while(i < length) {
|
|
11a88: 9b03 ldr r3, [sp, #12]
|
|
11a8a: 4599 cmp r9, r3
|
|
11a8c: d915 bls.n 11aba <_lv_txt_get_width+0x7a>
|
|
uint32_t letter = _lv_txt_encoded_next(txt, &i);
|
|
11a8e: 4e13 ldr r6, [pc, #76] ; (11adc <_lv_txt_get_width+0x9c>)
|
|
11a90: a903 add r1, sp, #12
|
|
11a92: 0028 movs r0, r5
|
|
11a94: 6833 ldr r3, [r6, #0]
|
|
11a96: 4798 blx r3
|
|
11a98: 9000 str r0, [sp, #0]
|
|
uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL);
|
|
11a9a: 9b03 ldr r3, [sp, #12]
|
|
11a9c: 18e8 adds r0, r5, r3
|
|
11a9e: 6833 ldr r3, [r6, #0]
|
|
11aa0: 2100 movs r1, #0
|
|
11aa2: 4798 blx r3
|
|
11aa4: 0006 movs r6, r0
|
|
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
|
|
11aa6: 2f00 cmp r7, #0
|
|
11aa8: d0e3 beq.n 11a72 <_lv_txt_get_width+0x32>
|
|
if(_lv_txt_is_cmd(&cmd_state, letter) != false) {
|
|
11aaa: 9900 ldr r1, [sp, #0]
|
|
11aac: ab02 add r3, sp, #8
|
|
11aae: 1cd8 adds r0, r3, #3
|
|
11ab0: 4b0b ldr r3, [pc, #44] ; (11ae0 <_lv_txt_get_width+0xa0>)
|
|
11ab2: 4798 blx r3
|
|
11ab4: 2800 cmp r0, #0
|
|
11ab6: d1e7 bne.n 11a88 <_lv_txt_get_width+0x48>
|
|
11ab8: e7db b.n 11a72 <_lv_txt_get_width+0x32>
|
|
if(width > 0) {
|
|
11aba: 2c00 cmp r4, #0
|
|
11abc: dd02 ble.n 11ac4 <_lv_txt_get_width+0x84>
|
|
width -= letter_space; /*Trim the last letter space. Important if the text is center
|
|
11abe: 4643 mov r3, r8
|
|
11ac0: 1ae4 subs r4, r4, r3
|
|
11ac2: b224 sxth r4, r4
|
|
}
|
|
11ac4: 0020 movs r0, r4
|
|
11ac6: b005 add sp, #20
|
|
11ac8: bc0c pop {r2, r3}
|
|
11aca: 4690 mov r8, r2
|
|
11acc: 4699 mov r9, r3
|
|
11ace: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(txt == NULL) return 0;
|
|
11ad0: 2400 movs r4, #0
|
|
11ad2: e7f7 b.n 11ac4 <_lv_txt_get_width+0x84>
|
|
if(font == NULL) return 0;
|
|
11ad4: 2400 movs r4, #0
|
|
11ad6: e7f5 b.n 11ac4 <_lv_txt_get_width+0x84>
|
|
11ad8: 0000e769 .word 0x0000e769
|
|
11adc: 20000058 .word 0x20000058
|
|
11ae0: 00011789 .word 0x00011789
|
|
|
|
00011ae4 <_lv_txt_get_size>:
|
|
{
|
|
11ae4: b5f0 push {r4, r5, r6, r7, lr}
|
|
11ae6: 46de mov lr, fp
|
|
11ae8: 4657 mov r7, sl
|
|
11aea: 464e mov r6, r9
|
|
11aec: 4645 mov r5, r8
|
|
11aee: b5e0 push {r5, r6, r7, lr}
|
|
11af0: b089 sub sp, #36 ; 0x24
|
|
11af2: 0004 movs r4, r0
|
|
11af4: 4689 mov r9, r1
|
|
11af6: 9202 str r2, [sp, #8]
|
|
11af8: 9303 str r3, [sp, #12]
|
|
11afa: ab12 add r3, sp, #72 ; 0x48
|
|
11afc: 2100 movs r1, #0
|
|
11afe: 5e5b ldrsh r3, [r3, r1]
|
|
11b00: 9306 str r3, [sp, #24]
|
|
11b02: ab13 add r3, sp, #76 ; 0x4c
|
|
11b04: 2100 movs r1, #0
|
|
11b06: 5e5b ldrsh r3, [r3, r1]
|
|
11b08: 9304 str r3, [sp, #16]
|
|
11b0a: ab14 add r3, sp, #80 ; 0x50
|
|
11b0c: 781f ldrb r7, [r3, #0]
|
|
size_res->x = 0;
|
|
11b0e: 2300 movs r3, #0
|
|
11b10: 8003 strh r3, [r0, #0]
|
|
size_res->y = 0;
|
|
11b12: 8043 strh r3, [r0, #2]
|
|
if(text == NULL) return;
|
|
11b14: 464b mov r3, r9
|
|
11b16: 2b00 cmp r3, #0
|
|
11b18: d051 beq.n 11bbe <_lv_txt_get_size+0xda>
|
|
if(font == NULL) return;
|
|
11b1a: 2a00 cmp r2, #0
|
|
11b1c: d04f beq.n 11bbe <_lv_txt_get_size+0xda>
|
|
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
|
|
11b1e: 07bb lsls r3, r7, #30
|
|
11b20: d501 bpl.n 11b26 <_lv_txt_get_size+0x42>
|
|
11b22: 4b2f ldr r3, [pc, #188] ; (11be0 <_lv_txt_get_size+0xfc>)
|
|
11b24: 9304 str r3, [sp, #16]
|
|
* @param font_p pointer to a font
|
|
* @return the height of a font
|
|
*/
|
|
static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p)
|
|
{
|
|
return font_p->line_height;
|
|
11b26: 9b02 ldr r3, [sp, #8]
|
|
11b28: 2208 movs r2, #8
|
|
11b2a: 5e9b ldrsh r3, [r3, r2]
|
|
11b2c: 9307 str r3, [sp, #28]
|
|
uint16_t letter_height = lv_font_get_line_height(font);
|
|
11b2e: b29a uxth r2, r3
|
|
while(text[line_start] != '\0') {
|
|
11b30: 464b mov r3, r9
|
|
11b32: 781b ldrb r3, [r3, #0]
|
|
11b34: 2b00 cmp r3, #0
|
|
11b36: d04f beq.n 11bd8 <_lv_txt_get_size+0xf4>
|
|
11b38: 464d mov r5, r9
|
|
11b3a: 2600 movs r6, #0
|
|
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
|
|
11b3c: 4b29 ldr r3, [pc, #164] ; (11be4 <_lv_txt_get_size+0x100>)
|
|
11b3e: 469b mov fp, r3
|
|
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
|
|
11b40: 9b06 ldr r3, [sp, #24]
|
|
11b42: 469a mov sl, r3
|
|
11b44: 4492 add sl, r2
|
|
11b46: 4653 mov r3, sl
|
|
11b48: 466a mov r2, sp
|
|
11b4a: 8293 strh r3, [r2, #20]
|
|
11b4c: 8a93 ldrh r3, [r2, #20]
|
|
11b4e: 4698 mov r8, r3
|
|
11b50: e005 b.n 11b5e <_lv_txt_get_size+0x7a>
|
|
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
|
|
11b52: 8022 strh r2, [r4, #0]
|
|
while(text[line_start] != '\0') {
|
|
11b54: 464b mov r3, r9
|
|
11b56: 199d adds r5, r3, r6
|
|
11b58: 782b ldrb r3, [r5, #0]
|
|
11b5a: 2b00 cmp r3, #0
|
|
11b5c: d01f beq.n 11b9e <_lv_txt_get_size+0xba>
|
|
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
|
|
11b5e: 9700 str r7, [sp, #0]
|
|
11b60: 9b04 ldr r3, [sp, #16]
|
|
11b62: 9a03 ldr r2, [sp, #12]
|
|
11b64: 9902 ldr r1, [sp, #8]
|
|
11b66: 0028 movs r0, r5
|
|
11b68: 47d8 blx fp
|
|
11b6a: 1836 adds r6, r6, r0
|
|
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
|
|
11b6c: 2102 movs r1, #2
|
|
11b6e: 5e63 ldrsh r3, [r4, r1]
|
|
11b70: 4651 mov r1, sl
|
|
11b72: 18c9 adds r1, r1, r3
|
|
11b74: 4a1c ldr r2, [pc, #112] ; (11be8 <_lv_txt_get_size+0x104>)
|
|
11b76: 4291 cmp r1, r2
|
|
11b78: d821 bhi.n 11bbe <_lv_txt_get_size+0xda>
|
|
11b7a: 4641 mov r1, r8
|
|
11b7c: 9105 str r1, [sp, #20]
|
|
size_res->y += line_space;
|
|
11b7e: 4443 add r3, r8
|
|
11b80: 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,
|
|
11b82: 9700 str r7, [sp, #0]
|
|
11b84: 9b03 ldr r3, [sp, #12]
|
|
11b86: 9a02 ldr r2, [sp, #8]
|
|
11b88: 0001 movs r1, r0
|
|
11b8a: 0028 movs r0, r5
|
|
11b8c: 4d17 ldr r5, [pc, #92] ; (11bec <_lv_txt_get_size+0x108>)
|
|
11b8e: 47a8 blx r5
|
|
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
|
|
11b90: 8823 ldrh r3, [r4, #0]
|
|
11b92: 1c1a adds r2, r3, #0
|
|
11b94: b21b sxth r3, r3
|
|
11b96: 4283 cmp r3, r0
|
|
11b98: dadb bge.n 11b52 <_lv_txt_get_size+0x6e>
|
|
11b9a: 1c02 adds r2, r0, #0
|
|
11b9c: e7d9 b.n 11b52 <_lv_txt_get_size+0x6e>
|
|
if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) {
|
|
11b9e: 2e00 cmp r6, #0
|
|
11ba0: d006 beq.n 11bb0 <_lv_txt_get_size+0xcc>
|
|
11ba2: 002e movs r6, r5
|
|
11ba4: 3e01 subs r6, #1
|
|
11ba6: 7833 ldrb r3, [r6, #0]
|
|
11ba8: 2b0a cmp r3, #10
|
|
11baa: d00f beq.n 11bcc <_lv_txt_get_size+0xe8>
|
|
11bac: 2b0d cmp r3, #13
|
|
11bae: d00d beq.n 11bcc <_lv_txt_get_size+0xe8>
|
|
if(size_res->y == 0)
|
|
11bb0: 2202 movs r2, #2
|
|
11bb2: 5ea3 ldrsh r3, [r4, r2]
|
|
11bb4: 2b00 cmp r3, #0
|
|
11bb6: d00f beq.n 11bd8 <_lv_txt_get_size+0xf4>
|
|
size_res->y -= line_space;
|
|
11bb8: 9a06 ldr r2, [sp, #24]
|
|
11bba: 1a9b subs r3, r3, r2
|
|
11bbc: 8063 strh r3, [r4, #2]
|
|
}
|
|
11bbe: b009 add sp, #36 ; 0x24
|
|
11bc0: bc3c pop {r2, r3, r4, r5}
|
|
11bc2: 4690 mov r8, r2
|
|
11bc4: 4699 mov r9, r3
|
|
11bc6: 46a2 mov sl, r4
|
|
11bc8: 46ab mov fp, r5
|
|
11bca: bdf0 pop {r4, r5, r6, r7, pc}
|
|
size_res->y += letter_height + line_space;
|
|
11bcc: 8863 ldrh r3, [r4, #2]
|
|
11bce: 9a05 ldr r2, [sp, #20]
|
|
11bd0: 4694 mov ip, r2
|
|
11bd2: 4463 add r3, ip
|
|
11bd4: 8063 strh r3, [r4, #2]
|
|
11bd6: e7eb b.n 11bb0 <_lv_txt_get_size+0xcc>
|
|
size_res->y = letter_height;
|
|
11bd8: 466b mov r3, sp
|
|
11bda: 8b9b ldrh r3, [r3, #28]
|
|
11bdc: 8063 strh r3, [r4, #2]
|
|
11bde: e7ee b.n 11bbe <_lv_txt_get_size+0xda>
|
|
11be0: 00007c18 .word 0x00007c18
|
|
11be4: 000117c9 .word 0x000117c9
|
|
11be8: 00007fff .word 0x00007fff
|
|
11bec: 00011a41 .word 0x00011a41
|
|
|
|
00011bf0 <_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))
|
|
{
|
|
11bf0: b5f0 push {r4, r5, r6, r7, lr}
|
|
11bf2: 46d6 mov lr, sl
|
|
11bf4: 464f mov r7, r9
|
|
11bf6: 4646 mov r6, r8
|
|
11bf8: b5c0 push {r6, r7, lr}
|
|
11bfa: b082 sub sp, #8
|
|
11bfc: 9001 str r0, [sp, #4]
|
|
11bfe: 000f movs r7, r1
|
|
11c00: 1e14 subs r4, r2, #0
|
|
11c02: 4699 mov r9, r3
|
|
11c04: 9b0a ldr r3, [sp, #40] ; 0x28
|
|
11c06: 469a mov sl, r3
|
|
const char * middle;
|
|
int32_t c;
|
|
|
|
for(middle = base; n != 0;) {
|
|
11c08: d01d beq.n 11c46 <_lv_utils_bsearch+0x56>
|
|
middle += (n / 2) * size;
|
|
if((c = (*cmp)(key, middle)) > 0) {
|
|
n = (n / 2) - ((n & 1) == 0);
|
|
11c0a: 2301 movs r3, #1
|
|
11c0c: 4698 mov r8, r3
|
|
11c0e: e004 b.n 11c1a <_lv_utils_bsearch+0x2a>
|
|
base = (middle += size);
|
|
}
|
|
else if(c < 0) {
|
|
11c10: 2800 cmp r0, #0
|
|
11c12: da1a bge.n 11c4a <_lv_utils_bsearch+0x5a>
|
|
n /= 2;
|
|
11c14: 0034 movs r4, r6
|
|
for(middle = base; n != 0;) {
|
|
11c16: 2c00 cmp r4, #0
|
|
11c18: d00e beq.n 11c38 <_lv_utils_bsearch+0x48>
|
|
middle += (n / 2) * size;
|
|
11c1a: 0866 lsrs r6, r4, #1
|
|
11c1c: 464d mov r5, r9
|
|
11c1e: 4375 muls r5, r6
|
|
11c20: 197d adds r5, r7, r5
|
|
if((c = (*cmp)(key, middle)) > 0) {
|
|
11c22: 0029 movs r1, r5
|
|
11c24: 9801 ldr r0, [sp, #4]
|
|
11c26: 47d0 blx sl
|
|
11c28: 2800 cmp r0, #0
|
|
11c2a: ddf1 ble.n 11c10 <_lv_utils_bsearch+0x20>
|
|
n = (n / 2) - ((n & 1) == 0);
|
|
11c2c: 4643 mov r3, r8
|
|
11c2e: 43a3 bics r3, r4
|
|
11c30: 1af4 subs r4, r6, r3
|
|
base = (middle += size);
|
|
11c32: 444d add r5, r9
|
|
11c34: 002f movs r7, r5
|
|
11c36: e7ee b.n 11c16 <_lv_utils_bsearch+0x26>
|
|
}
|
|
else {
|
|
return (char *)middle;
|
|
}
|
|
}
|
|
return NULL;
|
|
11c38: 2000 movs r0, #0
|
|
}
|
|
11c3a: b002 add sp, #8
|
|
11c3c: bc1c pop {r2, r3, r4}
|
|
11c3e: 4690 mov r8, r2
|
|
11c40: 4699 mov r9, r3
|
|
11c42: 46a2 mov sl, r4
|
|
11c44: bdf0 pop {r4, r5, r6, r7, pc}
|
|
return NULL;
|
|
11c46: 2000 movs r0, #0
|
|
11c48: e7f7 b.n 11c3a <_lv_utils_bsearch+0x4a>
|
|
middle += (n / 2) * size;
|
|
11c4a: 0028 movs r0, r5
|
|
11c4c: e7f5 b.n 11c3a <_lv_utils_bsearch+0x4a>
|
|
...
|
|
|
|
00011c50 <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;
|
|
11c50: 4b01 ldr r3, [pc, #4] ; (11c58 <lv_theme_set_act+0x8>)
|
|
11c52: 6018 str r0, [r3, #0]
|
|
}
|
|
11c54: 4770 bx lr
|
|
11c56: 46c0 nop ; (mov r8, r8)
|
|
11c58: 20004c30 .word 0x20004c30
|
|
|
|
00011c5c <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;
|
|
11c5c: 4b01 ldr r3, [pc, #4] ; (11c64 <lv_theme_get_font_normal+0x8>)
|
|
11c5e: 681b ldr r3, [r3, #0]
|
|
11c60: 68d8 ldr r0, [r3, #12]
|
|
}
|
|
11c62: 4770 bx lr
|
|
11c64: 20004c30 .word 0x20004c30
|
|
|
|
00011c68 <lv_theme_apply>:
|
|
{
|
|
return act_theme->flags;
|
|
}
|
|
|
|
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name)
|
|
{
|
|
11c68: b510 push {r4, lr}
|
|
act_theme->apply_xcb(obj, name);
|
|
11c6a: 4b02 ldr r3, [pc, #8] ; (11c74 <lv_theme_apply+0xc>)
|
|
11c6c: 681b ldr r3, [r3, #0]
|
|
11c6e: 681b ldr r3, [r3, #0]
|
|
11c70: 4798 blx r3
|
|
}
|
|
11c72: bd10 pop {r4, pc}
|
|
11c74: 20004c30 .word 0x20004c30
|
|
|
|
00011c78 <theme_apply>:
|
|
return &theme;
|
|
}
|
|
|
|
|
|
static void theme_apply(lv_obj_t * obj, lv_theme_style_t name)
|
|
{
|
|
11c78: b5f0 push {r4, r5, r6, r7, lr}
|
|
11c7a: 46ce mov lr, r9
|
|
11c7c: 4647 mov r7, r8
|
|
11c7e: b580 push {r7, lr}
|
|
11c80: b083 sub sp, #12
|
|
11c82: 0004 movs r4, r0
|
|
lv_style_list_t * list;
|
|
|
|
switch(name) {
|
|
11c84: 2928 cmp r1, #40 ; 0x28
|
|
11c86: d80e bhi.n 11ca6 <theme_apply+0x2e>
|
|
11c88: 0089 lsls r1, r1, #2
|
|
11c8a: 4be4 ldr r3, [pc, #912] ; (1201c <theme_apply+0x3a4>)
|
|
11c8c: 585b ldr r3, [r3, r1]
|
|
11c8e: 469f mov pc, r3
|
|
case LV_THEME_NONE:
|
|
break;
|
|
|
|
case LV_THEME_SCR:
|
|
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
|
|
11c90: 2100 movs r1, #0
|
|
11c92: 4be3 ldr r3, [pc, #908] ; (12020 <theme_apply+0x3a8>)
|
|
11c94: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
|
|
11c96: 2100 movs r1, #0
|
|
11c98: 0020 movs r0, r4
|
|
11c9a: 4be2 ldr r3, [pc, #904] ; (12024 <theme_apply+0x3ac>)
|
|
11c9c: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->scr);
|
|
11c9e: 4be2 ldr r3, [pc, #904] ; (12028 <theme_apply+0x3b0>)
|
|
11ca0: 6819 ldr r1, [r3, #0]
|
|
11ca2: 4be2 ldr r3, [pc, #904] ; (1202c <theme_apply+0x3b4>)
|
|
11ca4: 4798 blx r3
|
|
#endif
|
|
default:
|
|
break;
|
|
}
|
|
|
|
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
|
|
11ca6: 21ff movs r1, #255 ; 0xff
|
|
11ca8: 0020 movs r0, r4
|
|
11caa: 4be1 ldr r3, [pc, #900] ; (12030 <theme_apply+0x3b8>)
|
|
11cac: 4798 blx r3
|
|
}
|
|
11cae: b003 add sp, #12
|
|
11cb0: bc0c pop {r2, r3}
|
|
11cb2: 4690 mov r8, r2
|
|
11cb4: 4699 mov r9, r3
|
|
11cb6: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
|
|
11cb8: 2100 movs r1, #0
|
|
11cba: 4bd9 ldr r3, [pc, #868] ; (12020 <theme_apply+0x3a8>)
|
|
11cbc: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
|
|
11cbe: 2100 movs r1, #0
|
|
11cc0: 0020 movs r0, r4
|
|
11cc2: 4bd8 ldr r3, [pc, #864] ; (12024 <theme_apply+0x3ac>)
|
|
11cc4: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11cc6: 4bd8 ldr r3, [pc, #864] ; (12028 <theme_apply+0x3b0>)
|
|
11cc8: 6819 ldr r1, [r3, #0]
|
|
11cca: 3104 adds r1, #4
|
|
11ccc: 4bd7 ldr r3, [pc, #860] ; (1202c <theme_apply+0x3b4>)
|
|
11cce: 4798 blx r3
|
|
break;
|
|
11cd0: e7e9 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
|
|
11cd2: 2100 movs r1, #0
|
|
11cd4: 4bd2 ldr r3, [pc, #840] ; (12020 <theme_apply+0x3a8>)
|
|
11cd6: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_CONT_PART_MAIN);
|
|
11cd8: 2100 movs r1, #0
|
|
11cda: 0020 movs r0, r4
|
|
11cdc: 4bd1 ldr r3, [pc, #836] ; (12024 <theme_apply+0x3ac>)
|
|
11cde: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11ce0: 4bd1 ldr r3, [pc, #836] ; (12028 <theme_apply+0x3b0>)
|
|
11ce2: 6819 ldr r1, [r3, #0]
|
|
11ce4: 3104 adds r1, #4
|
|
11ce6: 4bd1 ldr r3, [pc, #836] ; (1202c <theme_apply+0x3b4>)
|
|
11ce8: 4798 blx r3
|
|
break;
|
|
11cea: e7dc b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
|
|
11cec: 2100 movs r1, #0
|
|
11cee: 4bcc ldr r3, [pc, #816] ; (12020 <theme_apply+0x3a8>)
|
|
11cf0: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
|
|
11cf2: 2100 movs r1, #0
|
|
11cf4: 0020 movs r0, r4
|
|
11cf6: 4bcb ldr r3, [pc, #812] ; (12024 <theme_apply+0x3ac>)
|
|
11cf8: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->btn);
|
|
11cfa: 4bcb ldr r3, [pc, #812] ; (12028 <theme_apply+0x3b0>)
|
|
11cfc: 6819 ldr r1, [r3, #0]
|
|
11cfe: 3110 adds r1, #16
|
|
11d00: 4bca ldr r3, [pc, #808] ; (1202c <theme_apply+0x3b4>)
|
|
11d02: 4798 blx r3
|
|
break;
|
|
11d04: e7cf b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
|
|
11d06: 2100 movs r1, #0
|
|
11d08: 4bc5 ldr r3, [pc, #788] ; (12020 <theme_apply+0x3a8>)
|
|
11d0a: 4699 mov r9, r3
|
|
11d0c: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
|
|
11d0e: 2100 movs r1, #0
|
|
11d10: 0020 movs r0, r4
|
|
11d12: 4fc4 ldr r7, [pc, #784] ; (12024 <theme_apply+0x3ac>)
|
|
11d14: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11d16: 4ec4 ldr r6, [pc, #784] ; (12028 <theme_apply+0x3b0>)
|
|
11d18: 6833 ldr r3, [r6, #0]
|
|
11d1a: 1d19 adds r1, r3, #4
|
|
11d1c: 9001 str r0, [sp, #4]
|
|
11d1e: 4dc3 ldr r5, [pc, #780] ; (1202c <theme_apply+0x3b4>)
|
|
11d20: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
11d22: 6831 ldr r1, [r6, #0]
|
|
11d24: 3118 adds r1, #24
|
|
11d26: 9801 ldr r0, [sp, #4]
|
|
11d28: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BTN);
|
|
11d2a: 2101 movs r1, #1
|
|
11d2c: 0020 movs r0, r4
|
|
11d2e: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BTN);
|
|
11d30: 2101 movs r1, #1
|
|
11d32: 0020 movs r0, r4
|
|
11d34: 47b8 blx r7
|
|
11d36: 0007 movs r7, r0
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11d38: 6833 ldr r3, [r6, #0]
|
|
11d3a: 1d19 adds r1, r3, #4
|
|
11d3c: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->bg_click);
|
|
11d3e: 6831 ldr r1, [r6, #0]
|
|
11d40: 3108 adds r1, #8
|
|
11d42: 0038 movs r0, r7
|
|
11d44: 47a8 blx r5
|
|
break;
|
|
11d46: e7ae b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
|
|
11d48: 2100 movs r1, #0
|
|
11d4a: 4bb5 ldr r3, [pc, #724] ; (12020 <theme_apply+0x3a8>)
|
|
11d4c: 4699 mov r9, r3
|
|
11d4e: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
|
|
11d50: 2100 movs r1, #0
|
|
11d52: 0020 movs r0, r4
|
|
11d54: 4fb3 ldr r7, [pc, #716] ; (12024 <theme_apply+0x3ac>)
|
|
11d56: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->scr);
|
|
11d58: 4eb3 ldr r6, [pc, #716] ; (12028 <theme_apply+0x3b0>)
|
|
11d5a: 6831 ldr r1, [r6, #0]
|
|
11d5c: 9001 str r0, [sp, #4]
|
|
11d5e: 4db3 ldr r5, [pc, #716] ; (1202c <theme_apply+0x3b4>)
|
|
11d60: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->kb_bg);
|
|
11d62: 6831 ldr r1, [r6, #0]
|
|
11d64: 3168 adds r1, #104 ; 0x68
|
|
11d66: 9801 ldr r0, [sp, #4]
|
|
11d68: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN);
|
|
11d6a: 2101 movs r1, #1
|
|
11d6c: 0020 movs r0, r4
|
|
11d6e: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
|
|
11d70: 2101 movs r1, #1
|
|
11d72: 0020 movs r0, r4
|
|
11d74: 47b8 blx r7
|
|
11d76: 0007 movs r7, r0
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11d78: 6833 ldr r3, [r6, #0]
|
|
11d7a: 1d19 adds r1, r3, #4
|
|
11d7c: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->bg_click);
|
|
11d7e: 6831 ldr r1, [r6, #0]
|
|
11d80: 3108 adds r1, #8
|
|
11d82: 0038 movs r0, r7
|
|
11d84: 47a8 blx r5
|
|
break;
|
|
11d86: e78e b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
|
|
11d88: 2100 movs r1, #0
|
|
11d8a: 4ba5 ldr r3, [pc, #660] ; (12020 <theme_apply+0x3a8>)
|
|
11d8c: 4698 mov r8, r3
|
|
11d8e: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
|
|
11d90: 2100 movs r1, #0
|
|
11d92: 0020 movs r0, r4
|
|
11d94: 4fa3 ldr r7, [pc, #652] ; (12024 <theme_apply+0x3ac>)
|
|
11d96: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_bg);
|
|
11d98: 4ea3 ldr r6, [pc, #652] ; (12028 <theme_apply+0x3b0>)
|
|
11d9a: 6831 ldr r1, [r6, #0]
|
|
11d9c: 3124 adds r1, #36 ; 0x24
|
|
11d9e: 4da3 ldr r5, [pc, #652] ; (1202c <theme_apply+0x3b4>)
|
|
11da0: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC);
|
|
11da2: 2101 movs r1, #1
|
|
11da4: 0020 movs r0, r4
|
|
11da6: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC);
|
|
11da8: 2101 movs r1, #1
|
|
11daa: 0020 movs r0, r4
|
|
11dac: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_indic);
|
|
11dae: 6831 ldr r1, [r6, #0]
|
|
11db0: 3128 adds r1, #40 ; 0x28
|
|
11db2: 47a8 blx r5
|
|
break;
|
|
11db4: e777 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
|
|
11db6: 2100 movs r1, #0
|
|
11db8: 4b99 ldr r3, [pc, #612] ; (12020 <theme_apply+0x3a8>)
|
|
11dba: 4698 mov r8, r3
|
|
11dbc: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
|
|
11dbe: 2100 movs r1, #0
|
|
11dc0: 0020 movs r0, r4
|
|
11dc2: 4f98 ldr r7, [pc, #608] ; (12024 <theme_apply+0x3ac>)
|
|
11dc4: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_bg);
|
|
11dc6: 4e98 ldr r6, [pc, #608] ; (12028 <theme_apply+0x3b0>)
|
|
11dc8: 6831 ldr r1, [r6, #0]
|
|
11dca: 3124 adds r1, #36 ; 0x24
|
|
11dcc: 4d97 ldr r5, [pc, #604] ; (1202c <theme_apply+0x3b4>)
|
|
11dce: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC);
|
|
11dd0: 2101 movs r1, #1
|
|
11dd2: 0020 movs r0, r4
|
|
11dd4: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC);
|
|
11dd6: 2101 movs r1, #1
|
|
11dd8: 0020 movs r0, r4
|
|
11dda: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_indic);
|
|
11ddc: 6831 ldr r1, [r6, #0]
|
|
11dde: 3128 adds r1, #40 ; 0x28
|
|
11de0: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB);
|
|
11de2: 2102 movs r1, #2
|
|
11de4: 0020 movs r0, r4
|
|
11de6: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB);
|
|
11de8: 2102 movs r1, #2
|
|
11dea: 0020 movs r0, r4
|
|
11dec: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sw_knob);
|
|
11dee: 6831 ldr r1, [r6, #0]
|
|
11df0: 319c adds r1, #156 ; 0x9c
|
|
11df2: 47a8 blx r5
|
|
break;
|
|
11df4: e757 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN);
|
|
11df6: 2100 movs r1, #0
|
|
11df8: 4b89 ldr r3, [pc, #548] ; (12020 <theme_apply+0x3a8>)
|
|
11dfa: 4798 blx r3
|
|
break;
|
|
11dfc: e753 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_IMG_PART_MAIN);
|
|
11dfe: 2100 movs r1, #0
|
|
11e00: 4b87 ldr r3, [pc, #540] ; (12020 <theme_apply+0x3a8>)
|
|
11e02: 4798 blx r3
|
|
break;
|
|
11e04: e74f b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_IMG_PART_MAIN);
|
|
11e06: 2100 movs r1, #0
|
|
11e08: 4b85 ldr r3, [pc, #532] ; (12020 <theme_apply+0x3a8>)
|
|
11e0a: 4798 blx r3
|
|
break;
|
|
11e0c: e74b b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_LABEL_PART_MAIN);
|
|
11e0e: 2100 movs r1, #0
|
|
11e10: 4b83 ldr r3, [pc, #524] ; (12020 <theme_apply+0x3a8>)
|
|
11e12: 4798 blx r3
|
|
break;
|
|
11e14: e747 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_LABEL_PART_MAIN);
|
|
11e16: 2100 movs r1, #0
|
|
11e18: 4b81 ldr r3, [pc, #516] ; (12020 <theme_apply+0x3a8>)
|
|
11e1a: 4798 blx r3
|
|
break;
|
|
11e1c: e743 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
|
|
11e1e: 2100 movs r1, #0
|
|
11e20: 4b7f ldr r3, [pc, #508] ; (12020 <theme_apply+0x3a8>)
|
|
11e22: 4699 mov r9, r3
|
|
11e24: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
|
|
11e26: 2100 movs r1, #0
|
|
11e28: 0020 movs r0, r4
|
|
11e2a: 4f7e ldr r7, [pc, #504] ; (12024 <theme_apply+0x3ac>)
|
|
11e2c: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11e2e: 4e7e ldr r6, [pc, #504] ; (12028 <theme_apply+0x3b0>)
|
|
11e30: 6833 ldr r3, [r6, #0]
|
|
11e32: 1d19 adds r1, r3, #4
|
|
11e34: 9001 str r0, [sp, #4]
|
|
11e36: 4d7d ldr r5, [pc, #500] ; (1202c <theme_apply+0x3b4>)
|
|
11e38: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->arc_bg);
|
|
11e3a: 6831 ldr r1, [r6, #0]
|
|
11e3c: 3120 adds r1, #32
|
|
11e3e: 9801 ldr r0, [sp, #4]
|
|
11e40: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC);
|
|
11e42: 2101 movs r1, #1
|
|
11e44: 0020 movs r0, r4
|
|
11e46: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC);
|
|
11e48: 2101 movs r1, #1
|
|
11e4a: 0020 movs r0, r4
|
|
11e4c: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->arc_indic);
|
|
11e4e: 6831 ldr r1, [r6, #0]
|
|
11e50: 311c adds r1, #28
|
|
11e52: 47a8 blx r5
|
|
break;
|
|
11e54: e727 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
|
|
11e56: 2100 movs r1, #0
|
|
11e58: 4b71 ldr r3, [pc, #452] ; (12020 <theme_apply+0x3a8>)
|
|
11e5a: 4698 mov r8, r3
|
|
11e5c: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
|
|
11e5e: 2100 movs r1, #0
|
|
11e60: 0020 movs r0, r4
|
|
11e62: 4f70 ldr r7, [pc, #448] ; (12024 <theme_apply+0x3ac>)
|
|
11e64: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->arc_bg);
|
|
11e66: 4e70 ldr r6, [pc, #448] ; (12028 <theme_apply+0x3b0>)
|
|
11e68: 6831 ldr r1, [r6, #0]
|
|
11e6a: 3120 adds r1, #32
|
|
11e6c: 4d6f ldr r5, [pc, #444] ; (1202c <theme_apply+0x3b4>)
|
|
11e6e: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC);
|
|
11e70: 2101 movs r1, #1
|
|
11e72: 0020 movs r0, r4
|
|
11e74: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC);
|
|
11e76: 2101 movs r1, #1
|
|
11e78: 0020 movs r0, r4
|
|
11e7a: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->arc_indic);
|
|
11e7c: 6831 ldr r1, [r6, #0]
|
|
11e7e: 311c adds r1, #28
|
|
11e80: 47a8 blx r5
|
|
break;
|
|
11e82: e710 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
|
|
11e84: 2100 movs r1, #0
|
|
11e86: 4b66 ldr r3, [pc, #408] ; (12020 <theme_apply+0x3a8>)
|
|
11e88: 4699 mov r9, r3
|
|
11e8a: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
|
|
11e8c: 2100 movs r1, #0
|
|
11e8e: 0020 movs r0, r4
|
|
11e90: 4f64 ldr r7, [pc, #400] ; (12024 <theme_apply+0x3ac>)
|
|
11e92: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_bg);
|
|
11e94: 4e64 ldr r6, [pc, #400] ; (12028 <theme_apply+0x3b0>)
|
|
11e96: 6831 ldr r1, [r6, #0]
|
|
11e98: 3124 adds r1, #36 ; 0x24
|
|
11e9a: 9001 str r0, [sp, #4]
|
|
11e9c: 4d63 ldr r5, [pc, #396] ; (1202c <theme_apply+0x3b4>)
|
|
11e9e: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->slider_bg);
|
|
11ea0: 6831 ldr r1, [r6, #0]
|
|
11ea2: 3194 adds r1, #148 ; 0x94
|
|
11ea4: 9801 ldr r0, [sp, #4]
|
|
11ea6: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC);
|
|
11ea8: 2101 movs r1, #1
|
|
11eaa: 0020 movs r0, r4
|
|
11eac: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC);
|
|
11eae: 2101 movs r1, #1
|
|
11eb0: 0020 movs r0, r4
|
|
11eb2: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bar_indic);
|
|
11eb4: 6831 ldr r1, [r6, #0]
|
|
11eb6: 3128 adds r1, #40 ; 0x28
|
|
11eb8: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB);
|
|
11eba: 2102 movs r1, #2
|
|
11ebc: 0020 movs r0, r4
|
|
11ebe: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB);
|
|
11ec0: 2102 movs r1, #2
|
|
11ec2: 0020 movs r0, r4
|
|
11ec4: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->slider_knob);
|
|
11ec6: 6831 ldr r1, [r6, #0]
|
|
11ec8: 3190 adds r1, #144 ; 0x90
|
|
11eca: 47a8 blx r5
|
|
break;
|
|
11ecc: e6eb b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
|
|
11ece: 2100 movs r1, #0
|
|
11ed0: 4b53 ldr r3, [pc, #332] ; (12020 <theme_apply+0x3a8>)
|
|
11ed2: 4698 mov r8, r3
|
|
11ed4: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
|
|
11ed6: 2100 movs r1, #0
|
|
11ed8: 0020 movs r0, r4
|
|
11eda: 4e52 ldr r6, [pc, #328] ; (12024 <theme_apply+0x3ac>)
|
|
11edc: 47b0 blx r6
|
|
_lv_style_list_add_style(list, &styles->cb_bg);
|
|
11ede: 4f52 ldr r7, [pc, #328] ; (12028 <theme_apply+0x3b0>)
|
|
11ee0: 6839 ldr r1, [r7, #0]
|
|
11ee2: 314c adds r1, #76 ; 0x4c
|
|
11ee4: 4d51 ldr r5, [pc, #324] ; (1202c <theme_apply+0x3b4>)
|
|
11ee6: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET);
|
|
11ee8: 2140 movs r1, #64 ; 0x40
|
|
11eea: 0020 movs r0, r4
|
|
11eec: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
|
|
11eee: 2140 movs r1, #64 ; 0x40
|
|
11ef0: 0020 movs r0, r4
|
|
11ef2: 47b0 blx r6
|
|
11ef4: 0006 movs r6, r0
|
|
_lv_style_list_add_style(list, &styles->btn);
|
|
11ef6: 6839 ldr r1, [r7, #0]
|
|
11ef8: 3110 adds r1, #16
|
|
11efa: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->cb_bullet);
|
|
11efc: 6839 ldr r1, [r7, #0]
|
|
11efe: 3150 adds r1, #80 ; 0x50
|
|
11f00: 0030 movs r0, r6
|
|
11f02: 47a8 blx r5
|
|
break;
|
|
11f04: e6cf b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
|
|
11f06: 2100 movs r1, #0
|
|
11f08: 4b45 ldr r3, [pc, #276] ; (12020 <theme_apply+0x3a8>)
|
|
11f0a: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
|
|
11f0c: 2100 movs r1, #0
|
|
11f0e: 0020 movs r0, r4
|
|
11f10: 4b44 ldr r3, [pc, #272] ; (12024 <theme_apply+0x3ac>)
|
|
11f12: 4798 blx r3
|
|
11f14: 0005 movs r5, r0
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11f16: 4f44 ldr r7, [pc, #272] ; (12028 <theme_apply+0x3b0>)
|
|
11f18: 683b ldr r3, [r7, #0]
|
|
11f1a: 1d19 adds r1, r3, #4
|
|
11f1c: 4e43 ldr r6, [pc, #268] ; (1202c <theme_apply+0x3b4>)
|
|
11f1e: 47b0 blx r6
|
|
_lv_style_list_add_style(list, &styles->mbox_bg);
|
|
11f20: 6839 ldr r1, [r7, #0]
|
|
11f22: 317c adds r1, #124 ; 0x7c
|
|
11f24: 0028 movs r0, r5
|
|
11f26: 47b0 blx r6
|
|
break;
|
|
11f28: e6bd b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
|
|
11f2a: 2140 movs r1, #64 ; 0x40
|
|
11f2c: 4b3c ldr r3, [pc, #240] ; (12020 <theme_apply+0x3a8>)
|
|
11f2e: 4698 mov r8, r3
|
|
11f30: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
|
|
11f32: 2140 movs r1, #64 ; 0x40
|
|
11f34: 0020 movs r0, r4
|
|
11f36: 4f3b ldr r7, [pc, #236] ; (12024 <theme_apply+0x3ac>)
|
|
11f38: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
11f3a: 4e3b ldr r6, [pc, #236] ; (12028 <theme_apply+0x3b0>)
|
|
11f3c: 6831 ldr r1, [r6, #0]
|
|
11f3e: 3118 adds r1, #24
|
|
11f40: 4d3a ldr r5, [pc, #232] ; (1202c <theme_apply+0x3b4>)
|
|
11f42: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN);
|
|
11f44: 2141 movs r1, #65 ; 0x41
|
|
11f46: 0020 movs r0, r4
|
|
11f48: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN);
|
|
11f4a: 2141 movs r1, #65 ; 0x41
|
|
11f4c: 0020 movs r0, r4
|
|
11f4e: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->btn);
|
|
11f50: 6831 ldr r1, [r6, #0]
|
|
11f52: 3110 adds r1, #16
|
|
11f54: 47a8 blx r5
|
|
break;
|
|
11f56: e6a6 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_LED_PART_MAIN);
|
|
11f58: 2100 movs r1, #0
|
|
11f5a: 4b31 ldr r3, [pc, #196] ; (12020 <theme_apply+0x3a8>)
|
|
11f5c: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN);
|
|
11f5e: 2100 movs r1, #0
|
|
11f60: 0020 movs r0, r4
|
|
11f62: 4b30 ldr r3, [pc, #192] ; (12024 <theme_apply+0x3ac>)
|
|
11f64: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->led);
|
|
11f66: 4b30 ldr r3, [pc, #192] ; (12028 <theme_apply+0x3b0>)
|
|
11f68: 6819 ldr r1, [r3, #0]
|
|
11f6a: 316c adds r1, #108 ; 0x6c
|
|
11f6c: 4b2f ldr r3, [pc, #188] ; (1202c <theme_apply+0x3b4>)
|
|
11f6e: 4798 blx r3
|
|
break;
|
|
11f70: e699 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
|
|
11f72: 2100 movs r1, #0
|
|
11f74: 4b2a ldr r3, [pc, #168] ; (12020 <theme_apply+0x3a8>)
|
|
11f76: 4698 mov r8, r3
|
|
11f78: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
|
|
11f7a: 2100 movs r1, #0
|
|
11f7c: 0020 movs r0, r4
|
|
11f7e: 4f29 ldr r7, [pc, #164] ; (12024 <theme_apply+0x3ac>)
|
|
11f80: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
11f82: 4e29 ldr r6, [pc, #164] ; (12028 <theme_apply+0x3b0>)
|
|
11f84: 6833 ldr r3, [r6, #0]
|
|
11f86: 1d19 adds r1, r3, #4
|
|
11f88: 4d28 ldr r5, [pc, #160] ; (1202c <theme_apply+0x3b4>)
|
|
11f8a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
|
|
11f8c: 2140 movs r1, #64 ; 0x40
|
|
11f8e: 0020 movs r0, r4
|
|
11f90: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
|
|
11f92: 2140 movs r1, #64 ; 0x40
|
|
11f94: 0020 movs r0, r4
|
|
11f96: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->pad_inner);
|
|
11f98: 6831 ldr r1, [r6, #0]
|
|
11f9a: 3114 adds r1, #20
|
|
11f9c: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLBAR);
|
|
11f9e: 2101 movs r1, #1
|
|
11fa0: 0020 movs r0, r4
|
|
11fa2: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLBAR);
|
|
11fa4: 2101 movs r1, #1
|
|
11fa6: 0020 movs r0, r4
|
|
11fa8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
11faa: 6831 ldr r1, [r6, #0]
|
|
11fac: 3180 adds r1, #128 ; 0x80
|
|
11fae: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_EDGE_FLASH);
|
|
11fb0: 2102 movs r1, #2
|
|
11fb2: 0020 movs r0, r4
|
|
11fb4: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_PAGE_PART_EDGE_FLASH);
|
|
11fb6: 2102 movs r1, #2
|
|
11fb8: 0020 movs r0, r4
|
|
11fba: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->edge_flash);
|
|
11fbc: 6831 ldr r1, [r6, #0]
|
|
11fbe: 3184 adds r1, #132 ; 0x84
|
|
11fc0: 47a8 blx r5
|
|
break;
|
|
11fc2: e670 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
|
|
11fc4: 2100 movs r1, #0
|
|
11fc6: 4d16 ldr r5, [pc, #88] ; (12020 <theme_apply+0x3a8>)
|
|
11fc8: 47a8 blx r5
|
|
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
|
|
11fca: 2100 movs r1, #0
|
|
11fcc: 0020 movs r0, r4
|
|
11fce: 4b15 ldr r3, [pc, #84] ; (12024 <theme_apply+0x3ac>)
|
|
11fd0: 4698 mov r8, r3
|
|
11fd2: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->scr);
|
|
11fd4: 4f14 ldr r7, [pc, #80] ; (12028 <theme_apply+0x3b0>)
|
|
11fd6: 6839 ldr r1, [r7, #0]
|
|
11fd8: 4e14 ldr r6, [pc, #80] ; (1202c <theme_apply+0x3b4>)
|
|
11fda: 47b0 blx r6
|
|
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE);
|
|
11fdc: 2140 movs r1, #64 ; 0x40
|
|
11fde: 0020 movs r0, r4
|
|
11fe0: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG);
|
|
11fe2: 2141 movs r1, #65 ; 0x41
|
|
11fe4: 0020 movs r0, r4
|
|
11fe6: 47a8 blx r5
|
|
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG);
|
|
11fe8: 2141 movs r1, #65 ; 0x41
|
|
11fea: 0020 movs r0, r4
|
|
11fec: 47c0 blx r8
|
|
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
|
|
11fee: 6839 ldr r1, [r7, #0]
|
|
11ff0: 31a8 adds r1, #168 ; 0xa8
|
|
11ff2: 47b0 blx r6
|
|
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC);
|
|
11ff4: 2143 movs r1, #67 ; 0x43
|
|
11ff6: 0020 movs r0, r4
|
|
11ff8: 47a8 blx r5
|
|
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC);
|
|
11ffa: 2143 movs r1, #67 ; 0x43
|
|
11ffc: 0020 movs r0, r4
|
|
11ffe: 47c0 blx r8
|
|
_lv_style_list_add_style(list, &styles->tabview_indic);
|
|
12000: 6839 ldr r1, [r7, #0]
|
|
12002: 31ac adds r1, #172 ; 0xac
|
|
12004: 47b0 blx r6
|
|
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
|
|
12006: 2142 movs r1, #66 ; 0x42
|
|
12008: 0020 movs r0, r4
|
|
1200a: 47a8 blx r5
|
|
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
|
|
1200c: 2142 movs r1, #66 ; 0x42
|
|
1200e: 0020 movs r0, r4
|
|
12010: 47c0 blx r8
|
|
_lv_style_list_add_style(list, &styles->tabview_btns);
|
|
12012: 6839 ldr r1, [r7, #0]
|
|
12014: 31a4 adds r1, #164 ; 0xa4
|
|
12016: 47b0 blx r6
|
|
break;
|
|
12018: e645 b.n 11ca6 <theme_apply+0x2e>
|
|
1201a: 46c0 nop ; (mov r8, r8)
|
|
1201c: 0001c884 .word 0x0001c884
|
|
12020: 00001dd5 .word 0x00001dd5
|
|
12024: 00001cf9 .word 0x00001cf9
|
|
12028: 20004c38 .word 0x20004c38
|
|
1202c: 00004a1d .word 0x00004a1d
|
|
12030: 0000258d .word 0x0000258d
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
|
|
12034: 2100 movs r1, #0
|
|
12036: 4df3 ldr r5, [pc, #972] ; (12404 <theme_apply+0x78c>)
|
|
12038: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
|
|
1203a: 2140 movs r1, #64 ; 0x40
|
|
1203c: 0020 movs r0, r4
|
|
1203e: 47a8 blx r5
|
|
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
|
|
12040: 2140 movs r1, #64 ; 0x40
|
|
12042: 0020 movs r0, r4
|
|
12044: 4bf0 ldr r3, [pc, #960] ; (12408 <theme_apply+0x790>)
|
|
12046: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
|
|
12048: 4bf0 ldr r3, [pc, #960] ; (1240c <theme_apply+0x794>)
|
|
1204a: 6819 ldr r1, [r3, #0]
|
|
1204c: 31b0 adds r1, #176 ; 0xb0
|
|
1204e: 4bf0 ldr r3, [pc, #960] ; (12410 <theme_apply+0x798>)
|
|
12050: 4798 blx r3
|
|
break;
|
|
12052: e628 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
|
|
12054: 2100 movs r1, #0
|
|
12056: 4beb ldr r3, [pc, #940] ; (12404 <theme_apply+0x78c>)
|
|
12058: 4698 mov r8, r3
|
|
1205a: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
|
|
1205c: 2100 movs r1, #0
|
|
1205e: 0020 movs r0, r4
|
|
12060: 4fe9 ldr r7, [pc, #932] ; (12408 <theme_apply+0x790>)
|
|
12062: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->scr);
|
|
12064: 4ee9 ldr r6, [pc, #932] ; (1240c <theme_apply+0x794>)
|
|
12066: 6831 ldr r1, [r6, #0]
|
|
12068: 4de9 ldr r5, [pc, #932] ; (12410 <theme_apply+0x798>)
|
|
1206a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
|
|
1206c: 2101 movs r1, #1
|
|
1206e: 0020 movs r0, r4
|
|
12070: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
|
|
12072: 2101 movs r1, #1
|
|
12074: 0020 movs r0, r4
|
|
12076: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
12078: 6831 ldr r1, [r6, #0]
|
|
1207a: 3180 adds r1, #128 ; 0x80
|
|
1207c: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
|
|
1207e: 2102 movs r1, #2
|
|
12080: 0020 movs r0, r4
|
|
12082: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
|
|
12084: 2102 movs r1, #2
|
|
12086: 0020 movs r0, r4
|
|
12088: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->edge_flash);
|
|
1208a: 6831 ldr r1, [r6, #0]
|
|
1208c: 3184 adds r1, #132 ; 0x84
|
|
1208e: 47a8 blx r5
|
|
break;
|
|
12090: e609 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
|
|
12092: 2100 movs r1, #0
|
|
12094: 4bdb ldr r3, [pc, #876] ; (12404 <theme_apply+0x78c>)
|
|
12096: 4699 mov r9, r3
|
|
12098: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
|
|
1209a: 2100 movs r1, #0
|
|
1209c: 0020 movs r0, r4
|
|
1209e: 4fda ldr r7, [pc, #872] ; (12408 <theme_apply+0x790>)
|
|
120a0: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
120a2: 4eda ldr r6, [pc, #872] ; (1240c <theme_apply+0x794>)
|
|
120a4: 6833 ldr r3, [r6, #0]
|
|
120a6: 1d19 adds r1, r3, #4
|
|
120a8: 9001 str r0, [sp, #4]
|
|
120aa: 4dd9 ldr r5, [pc, #868] ; (12410 <theme_apply+0x798>)
|
|
120ac: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->roller_bg);
|
|
120ae: 6831 ldr r1, [r6, #0]
|
|
120b0: 3188 adds r1, #136 ; 0x88
|
|
120b2: 9801 ldr r0, [sp, #4]
|
|
120b4: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED);
|
|
120b6: 2103 movs r1, #3
|
|
120b8: 0020 movs r0, r4
|
|
120ba: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED);
|
|
120bc: 2103 movs r1, #3
|
|
120be: 0020 movs r0, r4
|
|
120c0: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->roller_sel);
|
|
120c2: 6831 ldr r1, [r6, #0]
|
|
120c4: 318c adds r1, #140 ; 0x8c
|
|
120c6: 47a8 blx r5
|
|
break;
|
|
120c8: e5ed b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN);
|
|
120ca: 2100 movs r1, #0
|
|
120cc: 4bcd ldr r3, [pc, #820] ; (12404 <theme_apply+0x78c>)
|
|
120ce: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN);
|
|
120d0: 2100 movs r1, #0
|
|
120d2: 0020 movs r0, r4
|
|
120d4: 4bcc ldr r3, [pc, #816] ; (12408 <theme_apply+0x790>)
|
|
120d6: 4798 blx r3
|
|
break;
|
|
120d8: e5e5 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
|
|
120da: 2100 movs r1, #0
|
|
120dc: 4bc9 ldr r3, [pc, #804] ; (12404 <theme_apply+0x78c>)
|
|
120de: 4698 mov r8, r3
|
|
120e0: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
|
|
120e2: 2100 movs r1, #0
|
|
120e4: 0020 movs r0, r4
|
|
120e6: 4fc8 ldr r7, [pc, #800] ; (12408 <theme_apply+0x790>)
|
|
120e8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
120ea: 4ec8 ldr r6, [pc, #800] ; (1240c <theme_apply+0x794>)
|
|
120ec: 6833 ldr r3, [r6, #0]
|
|
120ee: 1d19 adds r1, r3, #4
|
|
120f0: 9001 str r0, [sp, #4]
|
|
120f2: 4dc7 ldr r5, [pc, #796] ; (12410 <theme_apply+0x798>)
|
|
120f4: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->list_bg);
|
|
120f6: 6831 ldr r1, [r6, #0]
|
|
120f8: 3174 adds r1, #116 ; 0x74
|
|
120fa: 9801 ldr r0, [sp, #4]
|
|
120fc: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE);
|
|
120fe: 2140 movs r1, #64 ; 0x40
|
|
12100: 0020 movs r0, r4
|
|
12102: 47c0 blx r8
|
|
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR);
|
|
12104: 2101 movs r1, #1
|
|
12106: 0020 movs r0, r4
|
|
12108: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR);
|
|
1210a: 2101 movs r1, #1
|
|
1210c: 0020 movs r0, r4
|
|
1210e: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
12110: 6831 ldr r1, [r6, #0]
|
|
12112: 3180 adds r1, #128 ; 0x80
|
|
12114: 47a8 blx r5
|
|
break;
|
|
12116: e5c6 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
|
|
12118: 2100 movs r1, #0
|
|
1211a: 4bba ldr r3, [pc, #744] ; (12404 <theme_apply+0x78c>)
|
|
1211c: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
|
|
1211e: 2100 movs r1, #0
|
|
12120: 0020 movs r0, r4
|
|
12122: 4bb9 ldr r3, [pc, #740] ; (12408 <theme_apply+0x790>)
|
|
12124: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->list_btn);
|
|
12126: 4bb9 ldr r3, [pc, #740] ; (1240c <theme_apply+0x794>)
|
|
12128: 6819 ldr r1, [r3, #0]
|
|
1212a: 3178 adds r1, #120 ; 0x78
|
|
1212c: 4bb8 ldr r3, [pc, #736] ; (12410 <theme_apply+0x798>)
|
|
1212e: 4798 blx r3
|
|
break;
|
|
12130: e5b9 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
|
|
12132: 2100 movs r1, #0
|
|
12134: 4bb3 ldr r3, [pc, #716] ; (12404 <theme_apply+0x78c>)
|
|
12136: 4699 mov r9, r3
|
|
12138: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
|
|
1213a: 2100 movs r1, #0
|
|
1213c: 0020 movs r0, r4
|
|
1213e: 4fb2 ldr r7, [pc, #712] ; (12408 <theme_apply+0x790>)
|
|
12140: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
12142: 4eb2 ldr r6, [pc, #712] ; (1240c <theme_apply+0x794>)
|
|
12144: 6833 ldr r3, [r6, #0]
|
|
12146: 1d19 adds r1, r3, #4
|
|
12148: 9001 str r0, [sp, #4]
|
|
1214a: 4db1 ldr r5, [pc, #708] ; (12410 <theme_apply+0x798>)
|
|
1214c: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->bg_click);
|
|
1214e: 6831 ldr r1, [r6, #0]
|
|
12150: 3108 adds r1, #8
|
|
12152: 9801 ldr r0, [sp, #4]
|
|
12154: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
12156: 6831 ldr r1, [r6, #0]
|
|
12158: 3118 adds r1, #24
|
|
1215a: 9801 ldr r0, [sp, #4]
|
|
1215c: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST);
|
|
1215e: 2140 movs r1, #64 ; 0x40
|
|
12160: 0020 movs r0, r4
|
|
12162: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
|
|
12164: 2140 movs r1, #64 ; 0x40
|
|
12166: 0020 movs r0, r4
|
|
12168: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
1216a: 6833 ldr r3, [r6, #0]
|
|
1216c: 1d19 adds r1, r3, #4
|
|
1216e: 9001 str r0, [sp, #4]
|
|
12170: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->ddlist_page);
|
|
12172: 6831 ldr r1, [r6, #0]
|
|
12174: 3154 adds r1, #84 ; 0x54
|
|
12176: 9801 ldr r0, [sp, #4]
|
|
12178: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
|
|
1217a: 2141 movs r1, #65 ; 0x41
|
|
1217c: 0020 movs r0, r4
|
|
1217e: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
|
|
12180: 2141 movs r1, #65 ; 0x41
|
|
12182: 0020 movs r0, r4
|
|
12184: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
12186: 6831 ldr r1, [r6, #0]
|
|
12188: 3180 adds r1, #128 ; 0x80
|
|
1218a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED);
|
|
1218c: 2142 movs r1, #66 ; 0x42
|
|
1218e: 0020 movs r0, r4
|
|
12190: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED);
|
|
12192: 2142 movs r1, #66 ; 0x42
|
|
12194: 0020 movs r0, r4
|
|
12196: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->ddlist_sel);
|
|
12198: 6831 ldr r1, [r6, #0]
|
|
1219a: 3158 adds r1, #88 ; 0x58
|
|
1219c: 47a8 blx r5
|
|
break;
|
|
1219e: e582 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
|
|
121a0: 2100 movs r1, #0
|
|
121a2: 4b98 ldr r3, [pc, #608] ; (12404 <theme_apply+0x78c>)
|
|
121a4: 4699 mov r9, r3
|
|
121a6: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
|
|
121a8: 2100 movs r1, #0
|
|
121aa: 0020 movs r0, r4
|
|
121ac: 4f96 ldr r7, [pc, #600] ; (12408 <theme_apply+0x790>)
|
|
121ae: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
121b0: 4e96 ldr r6, [pc, #600] ; (1240c <theme_apply+0x794>)
|
|
121b2: 6833 ldr r3, [r6, #0]
|
|
121b4: 1d19 adds r1, r3, #4
|
|
121b6: 9001 str r0, [sp, #4]
|
|
121b8: 4d95 ldr r5, [pc, #596] ; (12410 <theme_apply+0x798>)
|
|
121ba: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->chart_bg);
|
|
121bc: 6831 ldr r1, [r6, #0]
|
|
121be: 3140 adds r1, #64 ; 0x40
|
|
121c0: 9801 ldr r0, [sp, #4]
|
|
121c2: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
121c4: 6831 ldr r1, [r6, #0]
|
|
121c6: 3118 adds r1, #24
|
|
121c8: 9801 ldr r0, [sp, #4]
|
|
121ca: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG);
|
|
121cc: 2101 movs r1, #1
|
|
121ce: 0020 movs r0, r4
|
|
121d0: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
|
|
121d2: 2101 movs r1, #1
|
|
121d4: 0020 movs r0, r4
|
|
121d6: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
121d8: 6831 ldr r1, [r6, #0]
|
|
121da: 3118 adds r1, #24
|
|
121dc: 9001 str r0, [sp, #4]
|
|
121de: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->chart_series_bg);
|
|
121e0: 6831 ldr r1, [r6, #0]
|
|
121e2: 3144 adds r1, #68 ; 0x44
|
|
121e4: 9801 ldr r0, [sp, #4]
|
|
121e6: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES);
|
|
121e8: 2102 movs r1, #2
|
|
121ea: 0020 movs r0, r4
|
|
121ec: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES);
|
|
121ee: 2102 movs r1, #2
|
|
121f0: 0020 movs r0, r4
|
|
121f2: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->chart_series);
|
|
121f4: 6831 ldr r1, [r6, #0]
|
|
121f6: 3148 adds r1, #72 ; 0x48
|
|
121f8: 47a8 blx r5
|
|
break;
|
|
121fa: e554 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
|
|
121fc: 2100 movs r1, #0
|
|
121fe: 4b81 ldr r3, [pc, #516] ; (12404 <theme_apply+0x78c>)
|
|
12200: 4698 mov r8, r3
|
|
12202: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
|
|
12204: 2100 movs r1, #0
|
|
12206: 0020 movs r0, r4
|
|
12208: 4f7f ldr r7, [pc, #508] ; (12408 <theme_apply+0x790>)
|
|
1220a: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
1220c: 4e7f ldr r6, [pc, #508] ; (1240c <theme_apply+0x794>)
|
|
1220e: 6833 ldr r3, [r6, #0]
|
|
12210: 1d19 adds r1, r3, #4
|
|
12212: 4d7f ldr r5, [pc, #508] ; (12410 <theme_apply+0x798>)
|
|
12214: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1);
|
|
12216: 2101 movs r1, #1
|
|
12218: 0020 movs r0, r4
|
|
1221a: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1);
|
|
1221c: 2101 movs r1, #1
|
|
1221e: 0020 movs r0, r4
|
|
12220: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->table_cell);
|
|
12222: 6831 ldr r1, [r6, #0]
|
|
12224: 31a0 adds r1, #160 ; 0xa0
|
|
12226: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2);
|
|
12228: 2102 movs r1, #2
|
|
1222a: 0020 movs r0, r4
|
|
1222c: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2);
|
|
1222e: 2102 movs r1, #2
|
|
12230: 0020 movs r0, r4
|
|
12232: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->table_cell);
|
|
12234: 6831 ldr r1, [r6, #0]
|
|
12236: 31a0 adds r1, #160 ; 0xa0
|
|
12238: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3);
|
|
1223a: 2103 movs r1, #3
|
|
1223c: 0020 movs r0, r4
|
|
1223e: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3);
|
|
12240: 2103 movs r1, #3
|
|
12242: 0020 movs r0, r4
|
|
12244: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->table_cell);
|
|
12246: 6831 ldr r1, [r6, #0]
|
|
12248: 31a0 adds r1, #160 ; 0xa0
|
|
1224a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4);
|
|
1224c: 2104 movs r1, #4
|
|
1224e: 0020 movs r0, r4
|
|
12250: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4);
|
|
12252: 2104 movs r1, #4
|
|
12254: 0020 movs r0, r4
|
|
12256: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->table_cell);
|
|
12258: 6831 ldr r1, [r6, #0]
|
|
1225a: 31a0 adds r1, #160 ; 0xa0
|
|
1225c: 47a8 blx r5
|
|
break;
|
|
1225e: e522 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
|
|
12260: 2100 movs r1, #0
|
|
12262: 4b68 ldr r3, [pc, #416] ; (12404 <theme_apply+0x78c>)
|
|
12264: 4698 mov r8, r3
|
|
12266: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
|
|
12268: 2100 movs r1, #0
|
|
1226a: 0020 movs r0, r4
|
|
1226c: 4f66 ldr r7, [pc, #408] ; (12408 <theme_apply+0x790>)
|
|
1226e: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->scr);
|
|
12270: 4e66 ldr r6, [pc, #408] ; (1240c <theme_apply+0x794>)
|
|
12272: 6831 ldr r1, [r6, #0]
|
|
12274: 4d66 ldr r5, [pc, #408] ; (12410 <theme_apply+0x798>)
|
|
12276: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR);
|
|
12278: 2142 movs r1, #66 ; 0x42
|
|
1227a: 0020 movs r0, r4
|
|
1227c: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR);
|
|
1227e: 2142 movs r1, #66 ; 0x42
|
|
12280: 0020 movs r0, r4
|
|
12282: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
12284: 6831 ldr r1, [r6, #0]
|
|
12286: 3180 adds r1, #128 ; 0x80
|
|
12288: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
|
|
1228a: 2141 movs r1, #65 ; 0x41
|
|
1228c: 0020 movs r0, r4
|
|
1228e: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
|
|
12290: 2141 movs r1, #65 ; 0x41
|
|
12292: 0020 movs r0, r4
|
|
12294: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
|
|
12296: 6831 ldr r1, [r6, #0]
|
|
12298: 31b0 adds r1, #176 ; 0xb0
|
|
1229a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER);
|
|
1229c: 2140 movs r1, #64 ; 0x40
|
|
1229e: 0020 movs r0, r4
|
|
122a0: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER);
|
|
122a2: 2140 movs r1, #64 ; 0x40
|
|
122a4: 0020 movs r0, r4
|
|
122a6: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
|
|
122a8: 6831 ldr r1, [r6, #0]
|
|
122aa: 31a8 adds r1, #168 ; 0xa8
|
|
122ac: 47a8 blx r5
|
|
break;
|
|
122ae: e4fa b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
|
|
122b0: 2100 movs r1, #0
|
|
122b2: 4b54 ldr r3, [pc, #336] ; (12404 <theme_apply+0x78c>)
|
|
122b4: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
|
|
122b6: 2100 movs r1, #0
|
|
122b8: 0020 movs r0, r4
|
|
122ba: 4b53 ldr r3, [pc, #332] ; (12408 <theme_apply+0x790>)
|
|
122bc: 4798 blx r3
|
|
_lv_style_list_add_style(list, &styles->tabview_btns);
|
|
122be: 4b53 ldr r3, [pc, #332] ; (1240c <theme_apply+0x794>)
|
|
122c0: 6819 ldr r1, [r3, #0]
|
|
122c2: 31a4 adds r1, #164 ; 0xa4
|
|
122c4: 4b52 ldr r3, [pc, #328] ; (12410 <theme_apply+0x798>)
|
|
122c6: 4798 blx r3
|
|
break;
|
|
122c8: e4ed b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
|
|
122ca: 2100 movs r1, #0
|
|
122cc: 4b4d ldr r3, [pc, #308] ; (12404 <theme_apply+0x78c>)
|
|
122ce: 4699 mov r9, r3
|
|
122d0: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
|
|
122d2: 2100 movs r1, #0
|
|
122d4: 0020 movs r0, r4
|
|
122d6: 4f4c ldr r7, [pc, #304] ; (12408 <theme_apply+0x790>)
|
|
122d8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
122da: 4e4c ldr r6, [pc, #304] ; (1240c <theme_apply+0x794>)
|
|
122dc: 6833 ldr r3, [r6, #0]
|
|
122de: 1d19 adds r1, r3, #4
|
|
122e0: 9001 str r0, [sp, #4]
|
|
122e2: 4d4b ldr r5, [pc, #300] ; (12410 <theme_apply+0x798>)
|
|
122e4: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
122e6: 6831 ldr r1, [r6, #0]
|
|
122e8: 3118 adds r1, #24
|
|
122ea: 9801 ldr r0, [sp, #4]
|
|
122ec: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
|
|
122ee: 2104 movs r1, #4
|
|
122f0: 0020 movs r0, r4
|
|
122f2: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
|
|
122f4: 2104 movs r1, #4
|
|
122f6: 0020 movs r0, r4
|
|
122f8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->ta_placeholder);
|
|
122fa: 6831 ldr r1, [r6, #0]
|
|
122fc: 31b8 adds r1, #184 ; 0xb8
|
|
122fe: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR);
|
|
12300: 2103 movs r1, #3
|
|
12302: 0020 movs r0, r4
|
|
12304: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR);
|
|
12306: 2103 movs r1, #3
|
|
12308: 0020 movs r0, r4
|
|
1230a: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->ta_cursor);
|
|
1230c: 6831 ldr r1, [r6, #0]
|
|
1230e: 31b4 adds r1, #180 ; 0xb4
|
|
12310: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
|
|
12312: 2101 movs r1, #1
|
|
12314: 0020 movs r0, r4
|
|
12316: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
|
|
12318: 2101 movs r1, #1
|
|
1231a: 0020 movs r0, r4
|
|
1231c: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->sb);
|
|
1231e: 6831 ldr r1, [r6, #0]
|
|
12320: 3180 adds r1, #128 ; 0x80
|
|
12322: 47a8 blx r5
|
|
break;
|
|
12324: e4bf b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
|
|
12326: 2100 movs r1, #0
|
|
12328: 4b36 ldr r3, [pc, #216] ; (12404 <theme_apply+0x78c>)
|
|
1232a: 4699 mov r9, r3
|
|
1232c: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
|
|
1232e: 2100 movs r1, #0
|
|
12330: 0020 movs r0, r4
|
|
12332: 4f35 ldr r7, [pc, #212] ; (12408 <theme_apply+0x790>)
|
|
12334: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
12336: 4e35 ldr r6, [pc, #212] ; (1240c <theme_apply+0x794>)
|
|
12338: 6833 ldr r3, [r6, #0]
|
|
1233a: 1d19 adds r1, r3, #4
|
|
1233c: 9001 str r0, [sp, #4]
|
|
1233e: 4d34 ldr r5, [pc, #208] ; (12410 <theme_apply+0x798>)
|
|
12340: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->pad_small);
|
|
12342: 6831 ldr r1, [r6, #0]
|
|
12344: 3118 adds r1, #24
|
|
12346: 9801 ldr r0, [sp, #4]
|
|
12348: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR);
|
|
1234a: 2103 movs r1, #3
|
|
1234c: 0020 movs r0, r4
|
|
1234e: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR);
|
|
12350: 2103 movs r1, #3
|
|
12352: 0020 movs r0, r4
|
|
12354: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->spinbox_cursor);
|
|
12356: 6831 ldr r1, [r6, #0]
|
|
12358: 3198 adds r1, #152 ; 0x98
|
|
1235a: 47a8 blx r5
|
|
break;
|
|
1235c: e4a3 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
|
|
1235e: 2100 movs r1, #0
|
|
12360: 4b28 ldr r3, [pc, #160] ; (12404 <theme_apply+0x78c>)
|
|
12362: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
|
|
12364: 2100 movs r1, #0
|
|
12366: 0020 movs r0, r4
|
|
12368: 4b27 ldr r3, [pc, #156] ; (12408 <theme_apply+0x790>)
|
|
1236a: 4798 blx r3
|
|
1236c: 0005 movs r5, r0
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
1236e: 4f27 ldr r7, [pc, #156] ; (1240c <theme_apply+0x794>)
|
|
12370: 683b ldr r3, [r7, #0]
|
|
12372: 1d19 adds r1, r3, #4
|
|
12374: 4e26 ldr r6, [pc, #152] ; (12410 <theme_apply+0x798>)
|
|
12376: 47b0 blx r6
|
|
_lv_style_list_add_style(list, &styles->bg_click);
|
|
12378: 6839 ldr r1, [r7, #0]
|
|
1237a: 3108 adds r1, #8
|
|
1237c: 0028 movs r0, r5
|
|
1237e: 47b0 blx r6
|
|
break;
|
|
12380: e491 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
|
|
12382: 2100 movs r1, #0
|
|
12384: 4b1f ldr r3, [pc, #124] ; (12404 <theme_apply+0x78c>)
|
|
12386: 4698 mov r8, r3
|
|
12388: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
|
|
1238a: 2100 movs r1, #0
|
|
1238c: 0020 movs r0, r4
|
|
1238e: 4f1e ldr r7, [pc, #120] ; (12408 <theme_apply+0x790>)
|
|
12390: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
12392: 4e1e ldr r6, [pc, #120] ; (1240c <theme_apply+0x794>)
|
|
12394: 6833 ldr r3, [r6, #0]
|
|
12396: 1d19 adds r1, r3, #4
|
|
12398: 4d1d ldr r5, [pc, #116] ; (12410 <theme_apply+0x798>)
|
|
1239a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE);
|
|
1239c: 2103 movs r1, #3
|
|
1239e: 0020 movs r0, r4
|
|
123a0: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE);
|
|
123a2: 2103 movs r1, #3
|
|
123a4: 0020 movs r0, r4
|
|
123a6: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->calendar_date_nums);
|
|
123a8: 6831 ldr r1, [r6, #0]
|
|
123aa: 312c adds r1, #44 ; 0x2c
|
|
123ac: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER);
|
|
123ae: 2101 movs r1, #1
|
|
123b0: 0020 movs r0, r4
|
|
123b2: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER);
|
|
123b4: 2101 movs r1, #1
|
|
123b6: 0020 movs r0, r4
|
|
123b8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->calendar_header);
|
|
123ba: 6831 ldr r1, [r6, #0]
|
|
123bc: 3130 adds r1, #48 ; 0x30
|
|
123be: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
|
|
123c0: 2102 movs r1, #2
|
|
123c2: 0020 movs r0, r4
|
|
123c4: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
|
|
123c6: 2102 movs r1, #2
|
|
123c8: 0020 movs r0, r4
|
|
123ca: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->calendar_daynames);
|
|
123cc: 6831 ldr r1, [r6, #0]
|
|
123ce: 3134 adds r1, #52 ; 0x34
|
|
123d0: 47a8 blx r5
|
|
break;
|
|
123d2: e468 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
|
|
123d4: 2100 movs r1, #0
|
|
123d6: 4b0b ldr r3, [pc, #44] ; (12404 <theme_apply+0x78c>)
|
|
123d8: 4698 mov r8, r3
|
|
123da: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
|
|
123dc: 2100 movs r1, #0
|
|
123de: 0020 movs r0, r4
|
|
123e0: 4f09 ldr r7, [pc, #36] ; (12408 <theme_apply+0x790>)
|
|
123e2: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->cpicker_bg);
|
|
123e4: 4e09 ldr r6, [pc, #36] ; (1240c <theme_apply+0x794>)
|
|
123e6: 6831 ldr r1, [r6, #0]
|
|
123e8: 3138 adds r1, #56 ; 0x38
|
|
123ea: 4d09 ldr r5, [pc, #36] ; (12410 <theme_apply+0x798>)
|
|
123ec: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB);
|
|
123ee: 2101 movs r1, #1
|
|
123f0: 0020 movs r0, r4
|
|
123f2: 47c0 blx r8
|
|
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB);
|
|
123f4: 2101 movs r1, #1
|
|
123f6: 0020 movs r0, r4
|
|
123f8: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->cpicker_indic);
|
|
123fa: 6831 ldr r1, [r6, #0]
|
|
123fc: 313c adds r1, #60 ; 0x3c
|
|
123fe: 47a8 blx r5
|
|
break;
|
|
12400: e451 b.n 11ca6 <theme_apply+0x2e>
|
|
12402: 46c0 nop ; (mov r8, r8)
|
|
12404: 00001dd5 .word 0x00001dd5
|
|
12408: 00001cf9 .word 0x00001cf9
|
|
1240c: 20004c38 .word 0x20004c38
|
|
12410: 00004a1d .word 0x00004a1d
|
|
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
|
|
12414: 2100 movs r1, #0
|
|
12416: 4b1b ldr r3, [pc, #108] ; (12484 <theme_apply+0x80c>)
|
|
12418: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
|
|
1241a: 2100 movs r1, #0
|
|
1241c: 0020 movs r0, r4
|
|
1241e: 4b1a ldr r3, [pc, #104] ; (12488 <theme_apply+0x810>)
|
|
12420: 4798 blx r3
|
|
12422: 0005 movs r5, r0
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
12424: 4f19 ldr r7, [pc, #100] ; (1248c <theme_apply+0x814>)
|
|
12426: 683b ldr r3, [r7, #0]
|
|
12428: 1d19 adds r1, r3, #4
|
|
1242a: 4e19 ldr r6, [pc, #100] ; (12490 <theme_apply+0x818>)
|
|
1242c: 47b0 blx r6
|
|
_lv_style_list_add_style(list, &styles->lmeter);
|
|
1242e: 6839 ldr r1, [r7, #0]
|
|
12430: 3170 adds r1, #112 ; 0x70
|
|
12432: 0028 movs r0, r5
|
|
12434: 47b0 blx r6
|
|
break;
|
|
12436: e436 b.n 11ca6 <theme_apply+0x2e>
|
|
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
|
|
12438: 2100 movs r1, #0
|
|
1243a: 4b12 ldr r3, [pc, #72] ; (12484 <theme_apply+0x80c>)
|
|
1243c: 4699 mov r9, r3
|
|
1243e: 4798 blx r3
|
|
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
|
|
12440: 2100 movs r1, #0
|
|
12442: 0020 movs r0, r4
|
|
12444: 4f10 ldr r7, [pc, #64] ; (12488 <theme_apply+0x810>)
|
|
12446: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->bg);
|
|
12448: 4e10 ldr r6, [pc, #64] ; (1248c <theme_apply+0x814>)
|
|
1244a: 6833 ldr r3, [r6, #0]
|
|
1244c: 1d19 adds r1, r3, #4
|
|
1244e: 9001 str r0, [sp, #4]
|
|
12450: 4d0f ldr r5, [pc, #60] ; (12490 <theme_apply+0x818>)
|
|
12452: 47a8 blx r5
|
|
_lv_style_list_add_style(list, &styles->gauge_main);
|
|
12454: 6831 ldr r1, [r6, #0]
|
|
12456: 315c adds r1, #92 ; 0x5c
|
|
12458: 9801 ldr r0, [sp, #4]
|
|
1245a: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR);
|
|
1245c: 2101 movs r1, #1
|
|
1245e: 0020 movs r0, r4
|
|
12460: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR);
|
|
12462: 2101 movs r1, #1
|
|
12464: 0020 movs r0, r4
|
|
12466: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->gauge_strong);
|
|
12468: 6831 ldr r1, [r6, #0]
|
|
1246a: 3160 adds r1, #96 ; 0x60
|
|
1246c: 47a8 blx r5
|
|
lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE);
|
|
1246e: 2102 movs r1, #2
|
|
12470: 0020 movs r0, r4
|
|
12472: 47c8 blx r9
|
|
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE);
|
|
12474: 2102 movs r1, #2
|
|
12476: 0020 movs r0, r4
|
|
12478: 47b8 blx r7
|
|
_lv_style_list_add_style(list, &styles->gauge_needle);
|
|
1247a: 6831 ldr r1, [r6, #0]
|
|
1247c: 3164 adds r1, #100 ; 0x64
|
|
1247e: 47a8 blx r5
|
|
break;
|
|
12480: f7ff fc11 bl 11ca6 <theme_apply+0x2e>
|
|
12484: 00001dd5 .word 0x00001dd5
|
|
12488: 00001cf9 .word 0x00001cf9
|
|
1248c: 20004c38 .word 0x20004c38
|
|
12490: 00004a1d .word 0x00004a1d
|
|
|
|
00012494 <style_init_reset>:
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
static void style_init_reset(lv_style_t * style)
|
|
{
|
|
12494: b510 push {r4, lr}
|
|
if(inited) lv_style_reset(style);
|
|
12496: 4b05 ldr r3, [pc, #20] ; (124ac <style_init_reset+0x18>)
|
|
12498: 781b ldrb r3, [r3, #0]
|
|
1249a: 2b00 cmp r3, #0
|
|
1249c: d102 bne.n 124a4 <style_init_reset+0x10>
|
|
else lv_style_init(style);
|
|
1249e: 4b04 ldr r3, [pc, #16] ; (124b0 <style_init_reset+0x1c>)
|
|
124a0: 4798 blx r3
|
|
}
|
|
124a2: bd10 pop {r4, pc}
|
|
if(inited) lv_style_reset(style);
|
|
124a4: 4b03 ldr r3, [pc, #12] ; (124b4 <style_init_reset+0x20>)
|
|
124a6: 4798 blx r3
|
|
124a8: e7fb b.n 124a2 <style_init_reset+0xe>
|
|
124aa: 46c0 nop ; (mov r8, r8)
|
|
124ac: 20004c34 .word 0x20004c34
|
|
124b0: 0000494d .word 0x0000494d
|
|
124b4: 00004b49 .word 0x00004b49
|
|
|
|
000124b8 <basic_init>:
|
|
{
|
|
124b8: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
124ba: 46ce mov lr, r9
|
|
124bc: 4647 mov r7, r8
|
|
124be: b580 push {r7, lr}
|
|
style_init_reset(&styles->scr);
|
|
124c0: 4cf9 ldr r4, [pc, #996] ; (128a8 <basic_init+0x3f0>)
|
|
124c2: 6820 ldr r0, [r4, #0]
|
|
124c4: 4bf9 ldr r3, [pc, #996] ; (128ac <basic_init+0x3f4>)
|
|
124c6: 4798 blx r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
124c8: 22ff movs r2, #255 ; 0xff
|
|
124ca: 212c movs r1, #44 ; 0x2c
|
|
124cc: 6820 ldr r0, [r4, #0]
|
|
124ce: 4bf8 ldr r3, [pc, #992] ; (128b0 <basic_init+0x3f8>)
|
|
124d0: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR);
|
|
124d2: 6820 ldr r0, [r4, #0]
|
|
124d4: 4bf7 ldr r3, [pc, #988] ; (128b4 <basic_init+0x3fc>)
|
|
124d6: 699b ldr r3, [r3, #24]
|
|
124d8: 079b lsls r3, r3, #30
|
|
124da: d501 bpl.n 124e0 <basic_init+0x28>
|
|
124dc: f000 fe5d bl 1319a <basic_init+0xce2>
|
|
124e0: 2308 movs r3, #8
|
|
124e2: 2112 movs r1, #18
|
|
124e4: 220b movs r2, #11
|
|
124e6: 0149 lsls r1, r1, #5
|
|
124e8: 02db lsls r3, r3, #11
|
|
124ea: 430a orrs r2, r1
|
|
124ec: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
124ee: 2129 movs r1, #41 ; 0x29
|
|
124f0: 4bf1 ldr r3, [pc, #964] ; (128b8 <basic_init+0x400>)
|
|
124f2: 4798 blx r3
|
|
lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
|
|
124f4: 4bec ldr r3, [pc, #944] ; (128a8 <basic_init+0x3f0>)
|
|
124f6: 6818 ldr r0, [r3, #0]
|
|
124f8: 4bee ldr r3, [pc, #952] ; (128b4 <basic_init+0x3fc>)
|
|
124fa: 699b ldr r3, [r3, #24]
|
|
124fc: 079b lsls r3, r3, #30
|
|
124fe: d501 bpl.n 12504 <basic_init+0x4c>
|
|
12500: f000 fe50 bl 131a4 <basic_init+0xcec>
|
|
12504: 231c movs r3, #28
|
|
12506: 213a movs r1, #58 ; 0x3a
|
|
12508: 221d movs r2, #29
|
|
1250a: 0149 lsls r1, r1, #5
|
|
1250c: 02db lsls r3, r3, #11
|
|
1250e: 430a orrs r2, r1
|
|
12510: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
12512: 49ea ldr r1, [pc, #936] ; (128bc <basic_init+0x404>)
|
|
12514: 4be8 ldr r3, [pc, #928] ; (128b8 <basic_init+0x400>)
|
|
12516: 4798 blx r3
|
|
lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
|
|
12518: 4be3 ldr r3, [pc, #908] ; (128a8 <basic_init+0x3f0>)
|
|
1251a: 6818 ldr r0, [r3, #0]
|
|
1251c: 4be5 ldr r3, [pc, #916] ; (128b4 <basic_init+0x3fc>)
|
|
1251e: 699b ldr r3, [r3, #24]
|
|
12520: 079b lsls r3, r3, #30
|
|
12522: d501 bpl.n 12528 <basic_init+0x70>
|
|
12524: f000 fe43 bl 131ae <basic_init+0xcf6>
|
|
12528: 231c movs r3, #28
|
|
1252a: 213a movs r1, #58 ; 0x3a
|
|
1252c: 221d movs r2, #29
|
|
1252e: 0149 lsls r1, r1, #5
|
|
12530: 02db lsls r3, r3, #11
|
|
12532: 430a orrs r2, r1
|
|
12534: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
12536: 2179 movs r1, #121 ; 0x79
|
|
12538: 4bdf ldr r3, [pc, #892] ; (128b8 <basic_init+0x400>)
|
|
1253a: 4798 blx r3
|
|
lv_style_set_text_font(&styles->scr, LV_STATE_DEFAULT, theme.font_normal);
|
|
1253c: 4edd ldr r6, [pc, #884] ; (128b4 <basic_init+0x3fc>)
|
|
1253e: 4cda ldr r4, [pc, #872] ; (128a8 <basic_init+0x3f0>)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
|
|
12540: 68f2 ldr r2, [r6, #12]
|
|
12542: 49df ldr r1, [pc, #892] ; (128c0 <basic_init+0x408>)
|
|
12544: 6820 ldr r0, [r4, #0]
|
|
12546: 4ddf ldr r5, [pc, #892] ; (128c4 <basic_init+0x40c>)
|
|
12548: 47a8 blx r5
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
|
|
1254a: 68f2 ldr r2, [r6, #12]
|
|
1254c: 217e movs r1, #126 ; 0x7e
|
|
1254e: 6820 ldr r0, [r4, #0]
|
|
12550: 47a8 blx r5
|
|
style_init_reset(&styles->bg);
|
|
12552: 6823 ldr r3, [r4, #0]
|
|
12554: 1d18 adds r0, r3, #4
|
|
12556: 4bd5 ldr r3, [pc, #852] ; (128ac <basic_init+0x3f4>)
|
|
12558: 4798 blx r3
|
|
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
|
|
1255a: 6824 ldr r4, [r4, #0]
|
|
1255c: 3404 adds r4, #4
|
|
1255e: 2000 movs r0, #0
|
|
12560: 4bd9 ldr r3, [pc, #868] ; (128c8 <basic_init+0x410>)
|
|
12562: 4798 blx r3
|
|
12564: 300a adds r0, #10
|
|
12566: 00c0 lsls r0, r0, #3
|
|
12568: 2340 movs r3, #64 ; 0x40
|
|
1256a: 33ff adds r3, #255 ; 0xff
|
|
1256c: 2201 movs r2, #1
|
|
1256e: 4298 cmp r0, r3
|
|
12570: d901 bls.n 12576 <basic_init+0xbe>
|
|
12572: f000 fe21 bl 131b8 <basic_init+0xd00>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
12576: 2101 movs r1, #1
|
|
12578: 0020 movs r0, r4
|
|
1257a: 4bd4 ldr r3, [pc, #848] ; (128cc <basic_init+0x414>)
|
|
1257c: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
1257e: 4cca ldr r4, [pc, #808] ; (128a8 <basic_init+0x3f0>)
|
|
12580: 6823 ldr r3, [r4, #0]
|
|
12582: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
12584: 22ff movs r2, #255 ; 0xff
|
|
12586: 212c movs r1, #44 ; 0x2c
|
|
12588: 4bc9 ldr r3, [pc, #804] ; (128b0 <basic_init+0x3f8>)
|
|
1258a: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG);
|
|
1258c: 6820 ldr r0, [r4, #0]
|
|
1258e: 3004 adds r0, #4
|
|
12590: 4bc8 ldr r3, [pc, #800] ; (128b4 <basic_init+0x3fc>)
|
|
12592: 699b ldr r3, [r3, #24]
|
|
12594: 079b lsls r3, r3, #30
|
|
12596: d501 bpl.n 1259c <basic_init+0xe4>
|
|
12598: f000 fe19 bl 131ce <basic_init+0xd16>
|
|
1259c: 230b movs r3, #11
|
|
1259e: 2118 movs r1, #24
|
|
125a0: 220e movs r2, #14
|
|
125a2: 0149 lsls r1, r1, #5
|
|
125a4: 02db lsls r3, r3, #11
|
|
125a6: 430a orrs r2, r1
|
|
125a8: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
125aa: 2129 movs r1, #41 ; 0x29
|
|
125ac: 4bc2 ldr r3, [pc, #776] ; (128b8 <basic_init+0x400>)
|
|
125ae: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
125b0: 4bbd ldr r3, [pc, #756] ; (128a8 <basic_init+0x3f0>)
|
|
125b2: 6818 ldr r0, [r3, #0]
|
|
125b4: 3004 adds r0, #4
|
|
125b6: 4bbf ldr r3, [pc, #764] ; (128b4 <basic_init+0x3fc>)
|
|
125b8: 699b ldr r3, [r3, #24]
|
|
125ba: 079b lsls r3, r3, #30
|
|
125bc: d501 bpl.n 125c2 <basic_init+0x10a>
|
|
125be: f000 fe0b bl 131d8 <basic_init+0xd20>
|
|
125c2: 2310 movs r3, #16
|
|
125c4: 2122 movs r1, #34 ; 0x22
|
|
125c6: 2212 movs r2, #18
|
|
125c8: 0149 lsls r1, r1, #5
|
|
125ca: 02db lsls r3, r3, #11
|
|
125cc: 430a orrs r2, r1
|
|
125ce: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
125d0: 2139 movs r1, #57 ; 0x39
|
|
125d2: 4db9 ldr r5, [pc, #740] ; (128b8 <basic_init+0x400>)
|
|
125d4: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary);
|
|
125d6: 4cb4 ldr r4, [pc, #720] ; (128a8 <basic_init+0x3f0>)
|
|
125d8: 6823 ldr r3, [r4, #0]
|
|
125da: 1d18 adds r0, r3, #4
|
|
125dc: 4eb5 ldr r6, [pc, #724] ; (128b4 <basic_init+0x3fc>)
|
|
125de: 88b2 ldrh r2, [r6, #4]
|
|
125e0: 49bb ldr r1, [pc, #748] ; (128d0 <basic_init+0x418>)
|
|
125e2: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary);
|
|
125e4: 6823 ldr r3, [r4, #0]
|
|
125e6: 1d18 adds r0, r3, #4
|
|
125e8: 88f2 ldrh r2, [r6, #6]
|
|
125ea: 49ba ldr r1, [pc, #744] ; (128d4 <basic_init+0x41c>)
|
|
125ec: 47a8 blx r5
|
|
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
|
|
125ee: 6824 ldr r4, [r4, #0]
|
|
125f0: 3404 adds r4, #4
|
|
125f2: 2000 movs r0, #0
|
|
125f4: 4bb4 ldr r3, [pc, #720] ; (128c8 <basic_init+0x410>)
|
|
125f6: 4798 blx r3
|
|
125f8: 3028 adds r0, #40 ; 0x28
|
|
125fa: 0040 lsls r0, r0, #1
|
|
125fc: 2340 movs r3, #64 ; 0x40
|
|
125fe: 33ff adds r3, #255 ; 0xff
|
|
12600: 2201 movs r2, #1
|
|
12602: 4298 cmp r0, r3
|
|
12604: d901 bls.n 1260a <basic_init+0x152>
|
|
12606: f000 fdec bl 131e2 <basic_init+0xd2a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
1260a: 2130 movs r1, #48 ; 0x30
|
|
1260c: 0020 movs r0, r4
|
|
1260e: 4daf ldr r5, [pc, #700] ; (128cc <basic_init+0x414>)
|
|
12610: 47a8 blx r5
|
|
lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true);
|
|
12612: 4ca5 ldr r4, [pc, #660] ; (128a8 <basic_init+0x3f0>)
|
|
12614: 6823 ldr r3, [r4, #0]
|
|
12616: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
|
|
12618: 2201 movs r2, #1
|
|
1261a: 2133 movs r1, #51 ; 0x33
|
|
1261c: 47a8 blx r5
|
|
lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
|
|
1261e: 4da5 ldr r5, [pc, #660] ; (128b4 <basic_init+0x3fc>)
|
|
12620: 6823 ldr r3, [r4, #0]
|
|
12622: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
|
|
12624: 68ea ldr r2, [r5, #12]
|
|
12626: 49a6 ldr r1, [pc, #664] ; (128c0 <basic_init+0x408>)
|
|
12628: 4ba6 ldr r3, [pc, #664] ; (128c4 <basic_init+0x40c>)
|
|
1262a: 4798 blx r3
|
|
lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
1262c: 6820 ldr r0, [r4, #0]
|
|
1262e: 3004 adds r0, #4
|
|
12630: 69ab ldr r3, [r5, #24]
|
|
12632: 079b lsls r3, r3, #30
|
|
12634: d501 bpl.n 1263a <basic_init+0x182>
|
|
12636: f000 fddf bl 131f8 <basic_init+0xd40>
|
|
1263a: 231f movs r3, #31
|
|
1263c: 213f movs r1, #63 ; 0x3f
|
|
1263e: 221f movs r2, #31
|
|
12640: 0149 lsls r1, r1, #5
|
|
12642: 02db lsls r3, r3, #11
|
|
12644: 430a orrs r2, r1
|
|
12646: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
12648: 499c ldr r1, [pc, #624] ; (128bc <basic_init+0x404>)
|
|
1264a: 4b9b ldr r3, [pc, #620] ; (128b8 <basic_init+0x400>)
|
|
1264c: 4798 blx r3
|
|
lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
|
|
1264e: 4c99 ldr r4, [pc, #612] ; (128b4 <basic_init+0x3fc>)
|
|
12650: 4d95 ldr r5, [pc, #596] ; (128a8 <basic_init+0x3f0>)
|
|
12652: 682b ldr r3, [r5, #0]
|
|
12654: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
|
|
12656: 68e2 ldr r2, [r4, #12]
|
|
12658: 217e movs r1, #126 ; 0x7e
|
|
1265a: 4b9a ldr r3, [pc, #616] ; (128c4 <basic_init+0x40c>)
|
|
1265c: 4798 blx r3
|
|
lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
1265e: 6828 ldr r0, [r5, #0]
|
|
12660: 3004 adds r0, #4
|
|
12662: 69a3 ldr r3, [r4, #24]
|
|
12664: 079b lsls r3, r3, #30
|
|
12666: d501 bpl.n 1266c <basic_init+0x1b4>
|
|
12668: f000 fdcb bl 13202 <basic_init+0xd4a>
|
|
1266c: 231f movs r3, #31
|
|
1266e: 213f movs r1, #63 ; 0x3f
|
|
12670: 221f movs r2, #31
|
|
12672: 0149 lsls r1, r1, #5
|
|
12674: 02db lsls r3, r3, #11
|
|
12676: 430a orrs r2, r1
|
|
12678: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
1267a: 2179 movs r1, #121 ; 0x79
|
|
1267c: 4b8e ldr r3, [pc, #568] ; (128b8 <basic_init+0x400>)
|
|
1267e: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
12680: 4b89 ldr r3, [pc, #548] ; (128a8 <basic_init+0x3f0>)
|
|
12682: 6818 ldr r0, [r3, #0]
|
|
12684: 3004 adds r0, #4
|
|
12686: 4b8b ldr r3, [pc, #556] ; (128b4 <basic_init+0x3fc>)
|
|
12688: 699b ldr r3, [r3, #24]
|
|
1268a: 079b lsls r3, r3, #30
|
|
1268c: d501 bpl.n 12692 <basic_init+0x1da>
|
|
1268e: f000 fdbd bl 1320c <basic_init+0xd54>
|
|
12692: 231f movs r3, #31
|
|
12694: 213f movs r1, #63 ; 0x3f
|
|
12696: 221f movs r2, #31
|
|
12698: 0149 lsls r1, r1, #5
|
|
1269a: 02db lsls r3, r3, #11
|
|
1269c: 430a orrs r2, r1
|
|
1269e: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
126a0: 498d ldr r1, [pc, #564] ; (128d8 <basic_init+0x420>)
|
|
126a2: 4b85 ldr r3, [pc, #532] ; (128b8 <basic_init+0x400>)
|
|
126a4: 4798 blx r3
|
|
lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
126a6: 4b80 ldr r3, [pc, #512] ; (128a8 <basic_init+0x3f0>)
|
|
126a8: 6818 ldr r0, [r3, #0]
|
|
126aa: 3004 adds r0, #4
|
|
126ac: 4b81 ldr r3, [pc, #516] ; (128b4 <basic_init+0x3fc>)
|
|
126ae: 699b ldr r3, [r3, #24]
|
|
126b0: 079b lsls r3, r3, #30
|
|
126b2: d501 bpl.n 126b8 <basic_init+0x200>
|
|
126b4: f000 fdaf bl 13216 <basic_init+0xd5e>
|
|
126b8: 231f movs r3, #31
|
|
126ba: 213f movs r1, #63 ; 0x3f
|
|
126bc: 221f movs r2, #31
|
|
126be: 0149 lsls r1, r1, #5
|
|
126c0: 02db lsls r3, r3, #11
|
|
126c2: 430a orrs r2, r1
|
|
126c4: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
126c6: 2199 movs r1, #153 ; 0x99
|
|
126c8: 4b7b ldr r3, [pc, #492] ; (128b8 <basic_init+0x400>)
|
|
126ca: 4798 blx r3
|
|
lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1);
|
|
126cc: 4c76 ldr r4, [pc, #472] ; (128a8 <basic_init+0x3f0>)
|
|
126ce: 6823 ldr r3, [r4, #0]
|
|
126d0: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
126d2: 2201 movs r2, #1
|
|
126d4: 2190 movs r1, #144 ; 0x90
|
|
126d6: 4b7d ldr r3, [pc, #500] ; (128cc <basic_init+0x414>)
|
|
126d8: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
126da: 6825 ldr r5, [r4, #0]
|
|
126dc: 3504 adds r5, #4
|
|
126de: 2000 movs r0, #0
|
|
126e0: 4b7e ldr r3, [pc, #504] ; (128dc <basic_init+0x424>)
|
|
126e2: 4798 blx r3
|
|
126e4: 2801 cmp r0, #1
|
|
126e6: d801 bhi.n 126ec <basic_init+0x234>
|
|
126e8: f000 fd9a bl 13220 <basic_init+0xd68>
|
|
126ec: 2000 movs r0, #0
|
|
126ee: 4b76 ldr r3, [pc, #472] ; (128c8 <basic_init+0x410>)
|
|
126f0: 4798 blx r3
|
|
126f2: 0103 lsls r3, r0, #4
|
|
126f4: 1a18 subs r0, r3, r0
|
|
126f6: 0040 lsls r0, r0, #1
|
|
126f8: 3050 adds r0, #80 ; 0x50
|
|
126fa: 2340 movs r3, #64 ; 0x40
|
|
126fc: 33ff adds r3, #255 ; 0xff
|
|
126fe: 2401 movs r4, #1
|
|
12700: 4298 cmp r0, r3
|
|
12702: d901 bls.n 12708 <basic_init+0x250>
|
|
12704: f000 fda5 bl 13252 <basic_init+0xd9a>
|
|
12708: 2000 movs r0, #0
|
|
1270a: 4b6f ldr r3, [pc, #444] ; (128c8 <basic_init+0x410>)
|
|
1270c: 4798 blx r3
|
|
1270e: 0003 movs r3, r0
|
|
12710: 3328 adds r3, #40 ; 0x28
|
|
12712: 005b lsls r3, r3, #1
|
|
12714: 2140 movs r1, #64 ; 0x40
|
|
12716: 31ff adds r1, #255 ; 0xff
|
|
12718: 2201 movs r2, #1
|
|
1271a: 428b cmp r3, r1
|
|
1271c: d901 bls.n 12722 <basic_init+0x26a>
|
|
1271e: f000 fda5 bl 1326c <basic_init+0xdb4>
|
|
12722: 18a2 adds r2, r4, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
12724: b212 sxth r2, r2
|
|
12726: 2112 movs r1, #18
|
|
12728: 0028 movs r0, r5
|
|
1272a: 4b68 ldr r3, [pc, #416] ; (128cc <basic_init+0x414>)
|
|
1272c: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
1272e: 4b5e ldr r3, [pc, #376] ; (128a8 <basic_init+0x3f0>)
|
|
12730: 681d ldr r5, [r3, #0]
|
|
12732: 3504 adds r5, #4
|
|
12734: 2000 movs r0, #0
|
|
12736: 4b69 ldr r3, [pc, #420] ; (128dc <basic_init+0x424>)
|
|
12738: 4798 blx r3
|
|
1273a: 2801 cmp r0, #1
|
|
1273c: d801 bhi.n 12742 <basic_init+0x28a>
|
|
1273e: f000 fda0 bl 13282 <basic_init+0xdca>
|
|
12742: 2000 movs r0, #0
|
|
12744: 4b60 ldr r3, [pc, #384] ; (128c8 <basic_init+0x410>)
|
|
12746: 4798 blx r3
|
|
12748: 0103 lsls r3, r0, #4
|
|
1274a: 1a18 subs r0, r3, r0
|
|
1274c: 0040 lsls r0, r0, #1
|
|
1274e: 3050 adds r0, #80 ; 0x50
|
|
12750: 2340 movs r3, #64 ; 0x40
|
|
12752: 33ff adds r3, #255 ; 0xff
|
|
12754: 2401 movs r4, #1
|
|
12756: 4298 cmp r0, r3
|
|
12758: d901 bls.n 1275e <basic_init+0x2a6>
|
|
1275a: f000 fdab bl 132b4 <basic_init+0xdfc>
|
|
1275e: 2000 movs r0, #0
|
|
12760: 4b59 ldr r3, [pc, #356] ; (128c8 <basic_init+0x410>)
|
|
12762: 4798 blx r3
|
|
12764: 0003 movs r3, r0
|
|
12766: 3328 adds r3, #40 ; 0x28
|
|
12768: 005b lsls r3, r3, #1
|
|
1276a: 2140 movs r1, #64 ; 0x40
|
|
1276c: 31ff adds r1, #255 ; 0xff
|
|
1276e: 2201 movs r2, #1
|
|
12770: 428b cmp r3, r1
|
|
12772: d901 bls.n 12778 <basic_init+0x2c0>
|
|
12774: f000 fdab bl 132ce <basic_init+0xe16>
|
|
12778: 18a2 adds r2, r4, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
1277a: b212 sxth r2, r2
|
|
1277c: 2113 movs r1, #19
|
|
1277e: 0028 movs r0, r5
|
|
12780: 4b52 ldr r3, [pc, #328] ; (128cc <basic_init+0x414>)
|
|
12782: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
12784: 4b48 ldr r3, [pc, #288] ; (128a8 <basic_init+0x3f0>)
|
|
12786: 681d ldr r5, [r3, #0]
|
|
12788: 3504 adds r5, #4
|
|
1278a: 2000 movs r0, #0
|
|
1278c: 4b53 ldr r3, [pc, #332] ; (128dc <basic_init+0x424>)
|
|
1278e: 4798 blx r3
|
|
12790: 2801 cmp r0, #1
|
|
12792: d801 bhi.n 12798 <basic_init+0x2e0>
|
|
12794: f000 fda6 bl 132e4 <basic_init+0xe2c>
|
|
12798: 2000 movs r0, #0
|
|
1279a: 4b4b ldr r3, [pc, #300] ; (128c8 <basic_init+0x410>)
|
|
1279c: 4798 blx r3
|
|
1279e: 0103 lsls r3, r0, #4
|
|
127a0: 1a18 subs r0, r3, r0
|
|
127a2: 0040 lsls r0, r0, #1
|
|
127a4: 3050 adds r0, #80 ; 0x50
|
|
127a6: 2340 movs r3, #64 ; 0x40
|
|
127a8: 33ff adds r3, #255 ; 0xff
|
|
127aa: 2401 movs r4, #1
|
|
127ac: 4298 cmp r0, r3
|
|
127ae: d901 bls.n 127b4 <basic_init+0x2fc>
|
|
127b0: f000 fdb1 bl 13316 <basic_init+0xe5e>
|
|
127b4: 2000 movs r0, #0
|
|
127b6: 4b44 ldr r3, [pc, #272] ; (128c8 <basic_init+0x410>)
|
|
127b8: 4798 blx r3
|
|
127ba: 0003 movs r3, r0
|
|
127bc: 3328 adds r3, #40 ; 0x28
|
|
127be: 005b lsls r3, r3, #1
|
|
127c0: 2140 movs r1, #64 ; 0x40
|
|
127c2: 31ff adds r1, #255 ; 0xff
|
|
127c4: 2201 movs r2, #1
|
|
127c6: 428b cmp r3, r1
|
|
127c8: d901 bls.n 127ce <basic_init+0x316>
|
|
127ca: f000 fdb1 bl 13330 <basic_init+0xe78>
|
|
127ce: 18a2 adds r2, r4, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
127d0: b212 sxth r2, r2
|
|
127d2: 2110 movs r1, #16
|
|
127d4: 0028 movs r0, r5
|
|
127d6: 4b3d ldr r3, [pc, #244] ; (128cc <basic_init+0x414>)
|
|
127d8: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
127da: 4b33 ldr r3, [pc, #204] ; (128a8 <basic_init+0x3f0>)
|
|
127dc: 681d ldr r5, [r3, #0]
|
|
127de: 3504 adds r5, #4
|
|
127e0: 2000 movs r0, #0
|
|
127e2: 4b3e ldr r3, [pc, #248] ; (128dc <basic_init+0x424>)
|
|
127e4: 4798 blx r3
|
|
127e6: 2801 cmp r0, #1
|
|
127e8: d801 bhi.n 127ee <basic_init+0x336>
|
|
127ea: f000 fdac bl 13346 <basic_init+0xe8e>
|
|
127ee: 2000 movs r0, #0
|
|
127f0: 4b35 ldr r3, [pc, #212] ; (128c8 <basic_init+0x410>)
|
|
127f2: 4798 blx r3
|
|
127f4: 0103 lsls r3, r0, #4
|
|
127f6: 1a18 subs r0, r3, r0
|
|
127f8: 0040 lsls r0, r0, #1
|
|
127fa: 3050 adds r0, #80 ; 0x50
|
|
127fc: 2340 movs r3, #64 ; 0x40
|
|
127fe: 33ff adds r3, #255 ; 0xff
|
|
12800: 2401 movs r4, #1
|
|
12802: 4298 cmp r0, r3
|
|
12804: d901 bls.n 1280a <basic_init+0x352>
|
|
12806: f000 fdb7 bl 13378 <basic_init+0xec0>
|
|
1280a: 2000 movs r0, #0
|
|
1280c: 4b2e ldr r3, [pc, #184] ; (128c8 <basic_init+0x410>)
|
|
1280e: 4798 blx r3
|
|
12810: 0003 movs r3, r0
|
|
12812: 3328 adds r3, #40 ; 0x28
|
|
12814: 005b lsls r3, r3, #1
|
|
12816: 2140 movs r1, #64 ; 0x40
|
|
12818: 31ff adds r1, #255 ; 0xff
|
|
1281a: 2201 movs r2, #1
|
|
1281c: 428b cmp r3, r1
|
|
1281e: d901 bls.n 12824 <basic_init+0x36c>
|
|
12820: f000 fdb7 bl 13392 <basic_init+0xeda>
|
|
12824: 18a2 adds r2, r4, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
12826: b212 sxth r2, r2
|
|
12828: 2111 movs r1, #17
|
|
1282a: 0028 movs r0, r5
|
|
1282c: 4b27 ldr r3, [pc, #156] ; (128cc <basic_init+0x414>)
|
|
1282e: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
|
|
12830: 4b1d ldr r3, [pc, #116] ; (128a8 <basic_init+0x3f0>)
|
|
12832: 681c ldr r4, [r3, #0]
|
|
12834: 3404 adds r4, #4
|
|
12836: 2000 movs r0, #0
|
|
12838: 4b28 ldr r3, [pc, #160] ; (128dc <basic_init+0x424>)
|
|
1283a: 4798 blx r3
|
|
1283c: 2801 cmp r0, #1
|
|
1283e: d801 bhi.n 12844 <basic_init+0x38c>
|
|
12840: f000 fdb2 bl 133a8 <basic_init+0xef0>
|
|
12844: 2000 movs r0, #0
|
|
12846: 4b20 ldr r3, [pc, #128] ; (128c8 <basic_init+0x410>)
|
|
12848: 4798 blx r3
|
|
1284a: 0103 lsls r3, r0, #4
|
|
1284c: 1a1b subs r3, r3, r0
|
|
1284e: 005b lsls r3, r3, #1
|
|
12850: 3350 adds r3, #80 ; 0x50
|
|
12852: 2140 movs r1, #64 ; 0x40
|
|
12854: 31ff adds r1, #255 ; 0xff
|
|
12856: 2201 movs r2, #1
|
|
12858: 428b cmp r3, r1
|
|
1285a: d901 bls.n 12860 <basic_init+0x3a8>
|
|
1285c: f000 fdbd bl 133da <basic_init+0xf22>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
12860: 2114 movs r1, #20
|
|
12862: 0020 movs r0, r4
|
|
12864: 4d19 ldr r5, [pc, #100] ; (128cc <basic_init+0x414>)
|
|
12866: 47a8 blx r5
|
|
lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
12868: 4c0f ldr r4, [pc, #60] ; (128a8 <basic_init+0x3f0>)
|
|
1286a: 6823 ldr r3, [r4, #0]
|
|
1286c: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
|
|
1286e: 2296 movs r2, #150 ; 0x96
|
|
12870: 21b0 movs r1, #176 ; 0xb0
|
|
12872: 47a8 blx r5
|
|
lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR);
|
|
12874: 6823 ldr r3, [r4, #0]
|
|
12876: 1d18 adds r0, r3, #4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
12878: 2239 movs r2, #57 ; 0x39
|
|
1287a: 21b7 movs r1, #183 ; 0xb7
|
|
1287c: 47a8 blx r5
|
|
style_init_reset(&styles->bg_sec);
|
|
1287e: 6820 ldr r0, [r4, #0]
|
|
12880: 300c adds r0, #12
|
|
12882: 4b0a ldr r3, [pc, #40] ; (128ac <basic_init+0x3f4>)
|
|
12884: 4798 blx r3
|
|
lv_style_copy(&styles->bg_sec, &styles->bg);
|
|
12886: 6820 ldr r0, [r4, #0]
|
|
12888: 1d01 adds r1, r0, #4
|
|
1288a: 300c adds r0, #12
|
|
1288c: 4b14 ldr r3, [pc, #80] ; (128e0 <basic_init+0x428>)
|
|
1288e: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC);
|
|
12890: 6820 ldr r0, [r4, #0]
|
|
12892: 300c adds r0, #12
|
|
12894: 4b07 ldr r3, [pc, #28] ; (128b4 <basic_init+0x3fc>)
|
|
12896: 699b ldr r3, [r3, #24]
|
|
12898: 079b lsls r3, r3, #30
|
|
1289a: d501 bpl.n 128a0 <basic_init+0x3e8>
|
|
1289c: f000 fdaa bl 133f4 <basic_init+0xf3c>
|
|
128a0: 2308 movs r3, #8
|
|
128a2: 2112 movs r1, #18
|
|
128a4: 2209 movs r2, #9
|
|
128a6: e01d b.n 128e4 <basic_init+0x42c>
|
|
128a8: 20004c38 .word 0x20004c38
|
|
128ac: 00012495 .word 0x00012495
|
|
128b0: 00004fb5 .word 0x00004fb5
|
|
128b4: 20004c3c .word 0x20004c3c
|
|
128b8: 00004e55 .word 0x00004e55
|
|
128bc: 00008089 .word 0x00008089
|
|
128c0: 0000808e .word 0x0000808e
|
|
128c4: 00005109 .word 0x00005109
|
|
128c8: 0000f665 .word 0x0000f665
|
|
128cc: 00004cf5 .word 0x00004cf5
|
|
128d0: 00000239 .word 0x00000239
|
|
128d4: 00000439 .word 0x00000439
|
|
128d8: 000080a9 .word 0x000080a9
|
|
128dc: 0000f681 .word 0x0000f681
|
|
128e0: 00004b9d .word 0x00004b9d
|
|
128e4: 0149 lsls r1, r1, #5
|
|
128e6: 02db lsls r3, r3, #11
|
|
128e8: 430a orrs r2, r1
|
|
128ea: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
128ec: 2129 movs r1, #41 ; 0x29
|
|
128ee: 4bfb ldr r3, [pc, #1004] ; (12cdc <basic_init+0x824>)
|
|
128f0: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER);
|
|
128f2: 4bfb ldr r3, [pc, #1004] ; (12ce0 <basic_init+0x828>)
|
|
128f4: 6818 ldr r0, [r3, #0]
|
|
128f6: 300c adds r0, #12
|
|
128f8: 4bfa ldr r3, [pc, #1000] ; (12ce4 <basic_init+0x82c>)
|
|
128fa: 699b ldr r3, [r3, #24]
|
|
128fc: 079b lsls r3, r3, #30
|
|
128fe: d501 bpl.n 12904 <basic_init+0x44c>
|
|
12900: f000 fd7d bl 133fe <basic_init+0xf46>
|
|
12904: 2308 movs r3, #8
|
|
12906: 2110 movs r1, #16
|
|
12908: 2208 movs r2, #8
|
|
1290a: 0149 lsls r1, r1, #5
|
|
1290c: 02db lsls r3, r3, #11
|
|
1290e: 430a orrs r2, r1
|
|
12910: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
12912: 2139 movs r1, #57 ; 0x39
|
|
12914: 4bf1 ldr r3, [pc, #964] ; (12cdc <basic_init+0x824>)
|
|
12916: 4798 blx r3
|
|
lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
12918: 4bf1 ldr r3, [pc, #964] ; (12ce0 <basic_init+0x828>)
|
|
1291a: 6818 ldr r0, [r3, #0]
|
|
1291c: 300c adds r0, #12
|
|
1291e: 4bf1 ldr r3, [pc, #964] ; (12ce4 <basic_init+0x82c>)
|
|
12920: 699b ldr r3, [r3, #24]
|
|
12922: 079b lsls r3, r3, #30
|
|
12924: d501 bpl.n 1292a <basic_init+0x472>
|
|
12926: f000 fd6f bl 13408 <basic_init+0xf50>
|
|
1292a: 2314 movs r3, #20
|
|
1292c: 212a movs r1, #42 ; 0x2a
|
|
1292e: 2215 movs r2, #21
|
|
12930: 0149 lsls r1, r1, #5
|
|
12932: 02db lsls r3, r3, #11
|
|
12934: 430a orrs r2, r1
|
|
12936: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
12938: 49eb ldr r1, [pc, #940] ; (12ce8 <basic_init+0x830>)
|
|
1293a: 4be8 ldr r3, [pc, #928] ; (12cdc <basic_init+0x824>)
|
|
1293c: 4798 blx r3
|
|
lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
1293e: 4be8 ldr r3, [pc, #928] ; (12ce0 <basic_init+0x828>)
|
|
12940: 6818 ldr r0, [r3, #0]
|
|
12942: 300c adds r0, #12
|
|
12944: 4be7 ldr r3, [pc, #924] ; (12ce4 <basic_init+0x82c>)
|
|
12946: 699b ldr r3, [r3, #24]
|
|
12948: 079b lsls r3, r3, #30
|
|
1294a: d501 bpl.n 12950 <basic_init+0x498>
|
|
1294c: f000 fd61 bl 13412 <basic_init+0xf5a>
|
|
12950: 2314 movs r3, #20
|
|
12952: 212a movs r1, #42 ; 0x2a
|
|
12954: 2215 movs r2, #21
|
|
12956: 0149 lsls r1, r1, #5
|
|
12958: 02db lsls r3, r3, #11
|
|
1295a: 430a orrs r2, r1
|
|
1295c: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
1295e: 2179 movs r1, #121 ; 0x79
|
|
12960: 4bde ldr r3, [pc, #888] ; (12cdc <basic_init+0x824>)
|
|
12962: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
12964: 4bde ldr r3, [pc, #888] ; (12ce0 <basic_init+0x828>)
|
|
12966: 6818 ldr r0, [r3, #0]
|
|
12968: 300c adds r0, #12
|
|
1296a: 4bde ldr r3, [pc, #888] ; (12ce4 <basic_init+0x82c>)
|
|
1296c: 699b ldr r3, [r3, #24]
|
|
1296e: 079b lsls r3, r3, #30
|
|
12970: d501 bpl.n 12976 <basic_init+0x4be>
|
|
12972: f000 fd53 bl 1341c <basic_init+0xf64>
|
|
12976: 2314 movs r3, #20
|
|
12978: 212a movs r1, #42 ; 0x2a
|
|
1297a: 2215 movs r2, #21
|
|
1297c: 0149 lsls r1, r1, #5
|
|
1297e: 02db lsls r3, r3, #11
|
|
12980: 430a orrs r2, r1
|
|
12982: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
12984: 49d9 ldr r1, [pc, #868] ; (12cec <basic_init+0x834>)
|
|
12986: 4bd5 ldr r3, [pc, #852] ; (12cdc <basic_init+0x824>)
|
|
12988: 4798 blx r3
|
|
lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
1298a: 4bd5 ldr r3, [pc, #852] ; (12ce0 <basic_init+0x828>)
|
|
1298c: 6818 ldr r0, [r3, #0]
|
|
1298e: 300c adds r0, #12
|
|
12990: 4bd4 ldr r3, [pc, #848] ; (12ce4 <basic_init+0x82c>)
|
|
12992: 699b ldr r3, [r3, #24]
|
|
12994: 079b lsls r3, r3, #30
|
|
12996: d501 bpl.n 1299c <basic_init+0x4e4>
|
|
12998: f000 fd45 bl 13426 <basic_init+0xf6e>
|
|
1299c: 2314 movs r3, #20
|
|
1299e: 212a movs r1, #42 ; 0x2a
|
|
129a0: 2215 movs r2, #21
|
|
129a2: 0149 lsls r1, r1, #5
|
|
129a4: 02db lsls r3, r3, #11
|
|
129a6: 430a orrs r2, r1
|
|
129a8: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
129aa: 2199 movs r1, #153 ; 0x99
|
|
129ac: 4bcb ldr r3, [pc, #812] ; (12cdc <basic_init+0x824>)
|
|
129ae: 4798 blx r3
|
|
style_init_reset(&styles->bg_click);
|
|
129b0: 4ccb ldr r4, [pc, #812] ; (12ce0 <basic_init+0x828>)
|
|
129b2: 6820 ldr r0, [r4, #0]
|
|
129b4: 3008 adds r0, #8
|
|
129b6: 4bce ldr r3, [pc, #824] ; (12cf0 <basic_init+0x838>)
|
|
129b8: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR);
|
|
129ba: 6820 ldr r0, [r4, #0]
|
|
129bc: 3008 adds r0, #8
|
|
129be: 4bc9 ldr r3, [pc, #804] ; (12ce4 <basic_init+0x82c>)
|
|
129c0: 699b ldr r3, [r3, #24]
|
|
129c2: 079b lsls r3, r3, #30
|
|
129c4: d501 bpl.n 129ca <basic_init+0x512>
|
|
129c6: f000 fd33 bl 13430 <basic_init+0xf78>
|
|
129ca: 2309 movs r3, #9
|
|
129cc: 2113 movs r1, #19
|
|
129ce: 220a movs r2, #10
|
|
129d0: 0149 lsls r1, r1, #5
|
|
129d2: 02db lsls r3, r3, #11
|
|
129d4: 430a orrs r2, r1
|
|
129d6: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
129d8: 49c6 ldr r1, [pc, #792] ; (12cf4 <basic_init+0x83c>)
|
|
129da: 4fc0 ldr r7, [pc, #768] ; (12cdc <basic_init+0x824>)
|
|
129dc: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK);
|
|
129de: 4ec0 ldr r6, [pc, #768] ; (12ce0 <basic_init+0x828>)
|
|
129e0: 6830 ldr r0, [r6, #0]
|
|
129e2: 3008 adds r0, #8
|
|
129e4: 4dbf ldr r5, [pc, #764] ; (12ce4 <basic_init+0x82c>)
|
|
129e6: 88aa ldrh r2, [r5, #4]
|
|
129e8: 212a movs r1, #42 ; 0x2a
|
|
129ea: 31ff adds r1, #255 ; 0xff
|
|
129ec: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
|
|
129ee: 6834 ldr r4, [r6, #0]
|
|
129f0: 3408 adds r4, #8
|
|
129f2: 88a8 ldrh r0, [r5, #4]
|
|
129f4: 2133 movs r1, #51 ; 0x33
|
|
129f6: 4bc0 ldr r3, [pc, #768] ; (12cf8 <basic_init+0x840>)
|
|
129f8: 4798 blx r3
|
|
129fa: 1c02 adds r2, r0, #0
|
|
129fc: 49bf ldr r1, [pc, #764] ; (12cfc <basic_init+0x844>)
|
|
129fe: 0020 movs r0, r4
|
|
12a00: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS);
|
|
12a02: 6830 ldr r0, [r6, #0]
|
|
12a04: 3008 adds r0, #8
|
|
12a06: 69ab ldr r3, [r5, #24]
|
|
12a08: 079b lsls r3, r3, #30
|
|
12a0a: d501 bpl.n 12a10 <basic_init+0x558>
|
|
12a0c: f000 fd15 bl 1343a <basic_init+0xf82>
|
|
12a10: 230b movs r3, #11
|
|
12a12: 2118 movs r1, #24
|
|
12a14: 220e movs r2, #14
|
|
12a16: 0149 lsls r1, r1, #5
|
|
12a18: 02db lsls r3, r3, #11
|
|
12a1a: 430a orrs r2, r1
|
|
12a1c: 431a orrs r2, r3
|
|
12a1e: 49b8 ldr r1, [pc, #736] ; (12d00 <basic_init+0x848>)
|
|
12a20: 4fae ldr r7, [pc, #696] ; (12cdc <basic_init+0x824>)
|
|
12a22: 47b8 blx r7
|
|
lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0);
|
|
12a24: 4dae ldr r5, [pc, #696] ; (12ce0 <basic_init+0x828>)
|
|
12a26: 6828 ldr r0, [r5, #0]
|
|
12a28: 3008 adds r0, #8
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
12a2a: 2200 movs r2, #0
|
|
12a2c: 2198 movs r1, #152 ; 0x98
|
|
12a2e: 0049 lsls r1, r1, #1
|
|
12a30: 4bb4 ldr r3, [pc, #720] ; (12d04 <basic_init+0x84c>)
|
|
12a32: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary,
|
|
12a34: 682c ldr r4, [r5, #0]
|
|
12a36: 3408 adds r4, #8
|
|
12a38: 4eaa ldr r6, [pc, #680] ; (12ce4 <basic_init+0x82c>)
|
|
12a3a: 88b0 ldrh r0, [r6, #4]
|
|
12a3c: 2133 movs r1, #51 ; 0x33
|
|
12a3e: 4bae ldr r3, [pc, #696] ; (12cf8 <basic_init+0x840>)
|
|
12a40: 4798 blx r3
|
|
12a42: 1c02 adds r2, r0, #0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
12a44: 49b0 ldr r1, [pc, #704] ; (12d08 <basic_init+0x850>)
|
|
12a46: 0020 movs r0, r4
|
|
12a48: 47b8 blx r7
|
|
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
|
|
12a4a: 6828 ldr r0, [r5, #0]
|
|
12a4c: 3008 adds r0, #8
|
|
12a4e: 69b3 ldr r3, [r6, #24]
|
|
12a50: 079b lsls r3, r3, #30
|
|
12a52: d501 bpl.n 12a58 <basic_init+0x5a0>
|
|
12a54: f000 fcf6 bl 13444 <basic_init+0xf8c>
|
|
12a58: 230b movs r3, #11
|
|
12a5a: 2119 movs r1, #25
|
|
12a5c: 220d movs r2, #13
|
|
12a5e: 0149 lsls r1, r1, #5
|
|
12a60: 02db lsls r3, r3, #11
|
|
12a62: 430a orrs r2, r1
|
|
12a64: 431a orrs r2, r3
|
|
12a66: 49a9 ldr r1, [pc, #676] ; (12d0c <basic_init+0x854>)
|
|
12a68: 4b9c ldr r3, [pc, #624] ; (12cdc <basic_init+0x824>)
|
|
12a6a: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK);
|
|
12a6c: 4b9c ldr r3, [pc, #624] ; (12ce0 <basic_init+0x828>)
|
|
12a6e: 6818 ldr r0, [r3, #0]
|
|
12a70: 3008 adds r0, #8
|
|
12a72: 4b9c ldr r3, [pc, #624] ; (12ce4 <basic_init+0x82c>)
|
|
12a74: 699b ldr r3, [r3, #24]
|
|
12a76: 079b lsls r3, r3, #30
|
|
12a78: d501 bpl.n 12a7e <basic_init+0x5c6>
|
|
12a7a: f000 fce8 bl 1344e <basic_init+0xf96>
|
|
12a7e: 230b movs r3, #11
|
|
12a80: 2119 movs r1, #25
|
|
12a82: 220d movs r2, #13
|
|
12a84: 0149 lsls r1, r1, #5
|
|
12a86: 02db lsls r3, r3, #11
|
|
12a88: 430a orrs r2, r1
|
|
12a8a: 431a orrs r2, r3
|
|
12a8c: 213a movs r1, #58 ; 0x3a
|
|
12a8e: 31ff adds r1, #255 ; 0xff
|
|
12a90: 4b92 ldr r3, [pc, #584] ; (12cdc <basic_init+0x824>)
|
|
12a92: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
|
|
12a94: 4b92 ldr r3, [pc, #584] ; (12ce0 <basic_init+0x828>)
|
|
12a96: 6818 ldr r0, [r3, #0]
|
|
12a98: 3008 adds r0, #8
|
|
12a9a: 4b92 ldr r3, [pc, #584] ; (12ce4 <basic_init+0x82c>)
|
|
12a9c: 699b ldr r3, [r3, #24]
|
|
12a9e: 079b lsls r3, r3, #30
|
|
12aa0: d501 bpl.n 12aa6 <basic_init+0x5ee>
|
|
12aa2: f000 fcd9 bl 13458 <basic_init+0xfa0>
|
|
12aa6: 230b movs r3, #11
|
|
12aa8: 2119 movs r1, #25
|
|
12aaa: 220d movs r2, #13
|
|
12aac: 0149 lsls r1, r1, #5
|
|
12aae: 02db lsls r3, r3, #11
|
|
12ab0: 430a orrs r2, r1
|
|
12ab2: 431a orrs r2, r3
|
|
12ab4: 4996 ldr r1, [pc, #600] ; (12d10 <basic_init+0x858>)
|
|
12ab6: 4b89 ldr r3, [pc, #548] ; (12cdc <basic_init+0x824>)
|
|
12ab8: 4798 blx r3
|
|
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
|
|
12aba: 4b89 ldr r3, [pc, #548] ; (12ce0 <basic_init+0x828>)
|
|
12abc: 6818 ldr r0, [r3, #0]
|
|
12abe: 3008 adds r0, #8
|
|
12ac0: 4b88 ldr r3, [pc, #544] ; (12ce4 <basic_init+0x82c>)
|
|
12ac2: 699b ldr r3, [r3, #24]
|
|
12ac4: 079b lsls r3, r3, #30
|
|
12ac6: d501 bpl.n 12acc <basic_init+0x614>
|
|
12ac8: f000 fccb bl 13462 <basic_init+0xfaa>
|
|
12acc: 230b movs r3, #11
|
|
12ace: 2119 movs r1, #25
|
|
12ad0: 220d movs r2, #13
|
|
12ad2: 0149 lsls r1, r1, #5
|
|
12ad4: 02db lsls r3, r3, #11
|
|
12ad6: 430a orrs r2, r1
|
|
12ad8: 431a orrs r2, r3
|
|
12ada: 498e ldr r1, [pc, #568] ; (12d14 <basic_init+0x85c>)
|
|
12adc: 4b7f ldr r3, [pc, #508] ; (12cdc <basic_init+0x824>)
|
|
12ade: 4798 blx r3
|
|
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
|
|
12ae0: 4b7f ldr r3, [pc, #508] ; (12ce0 <basic_init+0x828>)
|
|
12ae2: 6818 ldr r0, [r3, #0]
|
|
12ae4: 3008 adds r0, #8
|
|
12ae6: 4b7f ldr r3, [pc, #508] ; (12ce4 <basic_init+0x82c>)
|
|
12ae8: 699b ldr r3, [r3, #24]
|
|
12aea: 079b lsls r3, r3, #30
|
|
12aec: d501 bpl.n 12af2 <basic_init+0x63a>
|
|
12aee: f000 fcbd bl 1346c <basic_init+0xfb4>
|
|
12af2: 231f movs r3, #31
|
|
12af4: 213f movs r1, #63 ; 0x3f
|
|
12af6: 221f movs r2, #31
|
|
12af8: 241f movs r4, #31
|
|
12afa: 46a0 mov r8, r4
|
|
12afc: 0149 lsls r1, r1, #5
|
|
12afe: 02db lsls r3, r3, #11
|
|
12b00: 430a orrs r2, r1
|
|
12b02: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
12b04: 4984 ldr r1, [pc, #528] ; (12d18 <basic_init+0x860>)
|
|
12b06: 4f75 ldr r7, [pc, #468] ; (12cdc <basic_init+0x824>)
|
|
12b08: 47b8 blx r7
|
|
lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
|
|
12b0a: 4e75 ldr r6, [pc, #468] ; (12ce0 <basic_init+0x828>)
|
|
12b0c: 6830 ldr r0, [r6, #0]
|
|
12b0e: 3008 adds r0, #8
|
|
12b10: 25fc movs r5, #252 ; 0xfc
|
|
12b12: 00ed lsls r5, r5, #3
|
|
12b14: 4642 mov r2, r8
|
|
12b16: 432a orrs r2, r5
|
|
12b18: 4c80 ldr r4, [pc, #512] ; (12d1c <basic_init+0x864>)
|
|
12b1a: 4322 orrs r2, r4
|
|
12b1c: 4980 ldr r1, [pc, #512] ; (12d20 <basic_init+0x868>)
|
|
12b1e: 47b8 blx r7
|
|
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
|
|
12b20: 6830 ldr r0, [r6, #0]
|
|
12b22: 3008 adds r0, #8
|
|
12b24: 4642 mov r2, r8
|
|
12b26: 432a orrs r2, r5
|
|
12b28: 4322 orrs r2, r4
|
|
12b2a: 497e ldr r1, [pc, #504] ; (12d24 <basic_init+0x86c>)
|
|
12b2c: 47b8 blx r7
|
|
lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
12b2e: 6830 ldr r0, [r6, #0]
|
|
12b30: 3008 adds r0, #8
|
|
12b32: 4b6c ldr r3, [pc, #432] ; (12ce4 <basic_init+0x82c>)
|
|
12b34: 699b ldr r3, [r3, #24]
|
|
12b36: 079b lsls r3, r3, #30
|
|
12b38: d501 bpl.n 12b3e <basic_init+0x686>
|
|
12b3a: f000 fc9c bl 13476 <basic_init+0xfbe>
|
|
12b3e: 2226 movs r2, #38 ; 0x26
|
|
12b40: 2313 movs r3, #19
|
|
12b42: 0152 lsls r2, r2, #5
|
|
12b44: 02d9 lsls r1, r3, #11
|
|
12b46: 431a orrs r2, r3
|
|
12b48: 430a orrs r2, r1
|
|
12b4a: 4977 ldr r1, [pc, #476] ; (12d28 <basic_init+0x870>)
|
|
12b4c: 4b63 ldr r3, [pc, #396] ; (12cdc <basic_init+0x824>)
|
|
12b4e: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
|
|
12b50: 4b63 ldr r3, [pc, #396] ; (12ce0 <basic_init+0x828>)
|
|
12b52: 6818 ldr r0, [r3, #0]
|
|
12b54: 3008 adds r0, #8
|
|
12b56: 4b63 ldr r3, [pc, #396] ; (12ce4 <basic_init+0x82c>)
|
|
12b58: 699b ldr r3, [r3, #24]
|
|
12b5a: 079b lsls r3, r3, #30
|
|
12b5c: d501 bpl.n 12b62 <basic_init+0x6aa>
|
|
12b5e: f000 fc8e bl 1347e <basic_init+0xfc6>
|
|
12b62: 231f movs r3, #31
|
|
12b64: 213f movs r1, #63 ; 0x3f
|
|
12b66: 221f movs r2, #31
|
|
12b68: 241f movs r4, #31
|
|
12b6a: 46a0 mov r8, r4
|
|
12b6c: 0149 lsls r1, r1, #5
|
|
12b6e: 02db lsls r3, r3, #11
|
|
12b70: 430a orrs r2, r1
|
|
12b72: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
12b74: 496d ldr r1, [pc, #436] ; (12d2c <basic_init+0x874>)
|
|
12b76: 4f59 ldr r7, [pc, #356] ; (12cdc <basic_init+0x824>)
|
|
12b78: 47b8 blx r7
|
|
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
|
|
12b7a: 4e59 ldr r6, [pc, #356] ; (12ce0 <basic_init+0x828>)
|
|
12b7c: 6830 ldr r0, [r6, #0]
|
|
12b7e: 3008 adds r0, #8
|
|
12b80: 25fc movs r5, #252 ; 0xfc
|
|
12b82: 00ed lsls r5, r5, #3
|
|
12b84: 4642 mov r2, r8
|
|
12b86: 432a orrs r2, r5
|
|
12b88: 4c64 ldr r4, [pc, #400] ; (12d1c <basic_init+0x864>)
|
|
12b8a: 4322 orrs r2, r4
|
|
12b8c: 4968 ldr r1, [pc, #416] ; (12d30 <basic_init+0x878>)
|
|
12b8e: 47b8 blx r7
|
|
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
|
|
12b90: 6830 ldr r0, [r6, #0]
|
|
12b92: 3008 adds r0, #8
|
|
12b94: 4642 mov r2, r8
|
|
12b96: 432a orrs r2, r5
|
|
12b98: 4322 orrs r2, r4
|
|
12b9a: 4966 ldr r1, [pc, #408] ; (12d34 <basic_init+0x87c>)
|
|
12b9c: 47b8 blx r7
|
|
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
12b9e: 6830 ldr r0, [r6, #0]
|
|
12ba0: 3008 adds r0, #8
|
|
12ba2: 4b50 ldr r3, [pc, #320] ; (12ce4 <basic_init+0x82c>)
|
|
12ba4: 699b ldr r3, [r3, #24]
|
|
12ba6: 079b lsls r3, r3, #30
|
|
12ba8: d501 bpl.n 12bae <basic_init+0x6f6>
|
|
12baa: f000 fc6d bl 13488 <basic_init+0xfd0>
|
|
12bae: 2226 movs r2, #38 ; 0x26
|
|
12bb0: 2313 movs r3, #19
|
|
12bb2: 0152 lsls r2, r2, #5
|
|
12bb4: 02d9 lsls r1, r3, #11
|
|
12bb6: 431a orrs r2, r3
|
|
12bb8: 430a orrs r2, r1
|
|
12bba: 495f ldr r1, [pc, #380] ; (12d38 <basic_init+0x880>)
|
|
12bbc: 4b47 ldr r3, [pc, #284] ; (12cdc <basic_init+0x824>)
|
|
12bbe: 4798 blx r3
|
|
lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
|
|
12bc0: 4c47 ldr r4, [pc, #284] ; (12ce0 <basic_init+0x828>)
|
|
12bc2: 6820 ldr r0, [r4, #0]
|
|
12bc4: 3008 adds r0, #8
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
|
|
12bc6: 2229 movs r2, #41 ; 0x29
|
|
12bc8: 21b6 movs r1, #182 ; 0xb6
|
|
12bca: 4d4e ldr r5, [pc, #312] ; (12d04 <basic_init+0x84c>)
|
|
12bcc: 47a8 blx r5
|
|
style_init_reset(&styles->btn);
|
|
12bce: 6820 ldr r0, [r4, #0]
|
|
12bd0: 3010 adds r0, #16
|
|
12bd2: 4b47 ldr r3, [pc, #284] ; (12cf0 <basic_init+0x838>)
|
|
12bd4: 4798 blx r3
|
|
lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
12bd6: 6820 ldr r0, [r4, #0]
|
|
12bd8: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
12bda: 4a58 ldr r2, [pc, #352] ; (12d3c <basic_init+0x884>)
|
|
12bdc: 2101 movs r1, #1
|
|
12bde: 47a8 blx r5
|
|
lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
12be0: 6820 ldr r0, [r4, #0]
|
|
12be2: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
12be4: 22ff movs r2, #255 ; 0xff
|
|
12be6: 212c movs r1, #44 ; 0x2c
|
|
12be8: 4b55 ldr r3, [pc, #340] ; (12d40 <basic_init+0x888>)
|
|
12bea: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN);
|
|
12bec: 6820 ldr r0, [r4, #0]
|
|
12bee: 3010 adds r0, #16
|
|
12bf0: 4b3c ldr r3, [pc, #240] ; (12ce4 <basic_init+0x82c>)
|
|
12bf2: 699b ldr r3, [r3, #24]
|
|
12bf4: 079b lsls r3, r3, #30
|
|
12bf6: d501 bpl.n 12bfc <basic_init+0x744>
|
|
12bf8: f000 fc4a bl 13490 <basic_init+0xfd8>
|
|
12bfc: 230b movs r3, #11
|
|
12bfe: 2118 movs r1, #24
|
|
12c00: 220e movs r2, #14
|
|
12c02: 0149 lsls r1, r1, #5
|
|
12c04: 02db lsls r3, r3, #11
|
|
12c06: 430a orrs r2, r1
|
|
12c08: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
12c0a: 2129 movs r1, #41 ; 0x29
|
|
12c0c: 4b33 ldr r3, [pc, #204] ; (12cdc <basic_init+0x824>)
|
|
12c0e: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
|
|
12c10: 4b33 ldr r3, [pc, #204] ; (12ce0 <basic_init+0x828>)
|
|
12c12: 6818 ldr r0, [r3, #0]
|
|
12c14: 3010 adds r0, #16
|
|
12c16: 4b33 ldr r3, [pc, #204] ; (12ce4 <basic_init+0x82c>)
|
|
12c18: 699b ldr r3, [r3, #24]
|
|
12c1a: 079b lsls r3, r3, #30
|
|
12c1c: d401 bmi.n 12c22 <basic_init+0x76a>
|
|
12c1e: f000 fc3c bl 1349a <basic_init+0xfe2>
|
|
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
|
|
{
|
|
lv_color_t ret;
|
|
#if LV_COLOR_DEPTH != 1
|
|
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
12c22: 4d30 ldr r5, [pc, #192] ; (12ce4 <basic_init+0x82c>)
|
|
12c24: 796a ldrb r2, [r5, #5]
|
|
12c26: 08d2 lsrs r2, r2, #3
|
|
12c28: 0093 lsls r3, r2, #2
|
|
12c2a: 189b adds r3, r3, r2
|
|
12c2c: 009a lsls r2, r3, #2
|
|
12c2e: 189b adds r3, r3, r2
|
|
12c30: 4a44 ldr r2, [pc, #272] ; (12d44 <basic_init+0x88c>)
|
|
12c32: 4694 mov ip, r2
|
|
12c34: 4463 add r3, ip
|
|
12c36: 021a lsls r2, r3, #8
|
|
12c38: 18d2 adds r2, r2, r3
|
|
12c3a: 01d2 lsls r2, r2, #7
|
|
12c3c: 18d2 adds r2, r2, r3
|
|
12c3e: 0dd2 lsrs r2, r2, #23
|
|
12c40: 211f movs r1, #31
|
|
12c42: 400a ands r2, r1
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
12c44: 88ac ldrh r4, [r5, #4]
|
|
12c46: 0564 lsls r4, r4, #21
|
|
12c48: 0ea3 lsrs r3, r4, #26
|
|
12c4a: 009c lsls r4, r3, #2
|
|
12c4c: 18e4 adds r4, r4, r3
|
|
12c4e: 00a3 lsls r3, r4, #2
|
|
12c50: 18e4 adds r4, r4, r3
|
|
12c52: 4b3d ldr r3, [pc, #244] ; (12d48 <basic_init+0x890>)
|
|
12c54: 469c mov ip, r3
|
|
12c56: 4464 add r4, ip
|
|
12c58: 0223 lsls r3, r4, #8
|
|
12c5a: 191b adds r3, r3, r4
|
|
12c5c: 01db lsls r3, r3, #7
|
|
12c5e: 191b adds r3, r3, r4
|
|
12c60: 00db lsls r3, r3, #3
|
|
12c62: 0e9b lsrs r3, r3, #26
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
12c64: 792c ldrb r4, [r5, #4]
|
|
12c66: 06e4 lsls r4, r4, #27
|
|
12c68: 0ee5 lsrs r5, r4, #27
|
|
12c6a: 00ac lsls r4, r5, #2
|
|
12c6c: 1964 adds r4, r4, r5
|
|
12c6e: 00a5 lsls r5, r4, #2
|
|
12c70: 1964 adds r4, r4, r5
|
|
12c72: 4d34 ldr r5, [pc, #208] ; (12d44 <basic_init+0x88c>)
|
|
12c74: 46ac mov ip, r5
|
|
12c76: 4464 add r4, ip
|
|
12c78: 0225 lsls r5, r4, #8
|
|
12c7a: 192d adds r5, r5, r4
|
|
12c7c: 01ed lsls r5, r5, #7
|
|
12c7e: 192c adds r4, r5, r4
|
|
12c80: 0de4 lsrs r4, r4, #23
|
|
12c82: 4021 ands r1, r4
|
|
12c84: 015b lsls r3, r3, #5
|
|
12c86: 02d2 lsls r2, r2, #11
|
|
12c88: 430b orrs r3, r1
|
|
12c8a: 431a orrs r2, r3
|
|
12c8c: 4919 ldr r1, [pc, #100] ; (12cf4 <basic_init+0x83c>)
|
|
12c8e: 4f13 ldr r7, [pc, #76] ; (12cdc <basic_init+0x824>)
|
|
12c90: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK);
|
|
12c92: 4e13 ldr r6, [pc, #76] ; (12ce0 <basic_init+0x828>)
|
|
12c94: 6830 ldr r0, [r6, #0]
|
|
12c96: 3010 adds r0, #16
|
|
12c98: 4d12 ldr r5, [pc, #72] ; (12ce4 <basic_init+0x82c>)
|
|
12c9a: 88aa ldrh r2, [r5, #4]
|
|
12c9c: 212a movs r1, #42 ; 0x2a
|
|
12c9e: 31ff adds r1, #255 ; 0xff
|
|
12ca0: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR);
|
|
12ca2: 6834 ldr r4, [r6, #0]
|
|
12ca4: 3410 adds r4, #16
|
|
12ca6: 88a8 ldrh r0, [r5, #4]
|
|
12ca8: 214c movs r1, #76 ; 0x4c
|
|
12caa: 4b13 ldr r3, [pc, #76] ; (12cf8 <basic_init+0x840>)
|
|
12cac: 4798 blx r3
|
|
12cae: 1c02 adds r2, r0, #0
|
|
12cb0: 4912 ldr r1, [pc, #72] ; (12cfc <basic_init+0x844>)
|
|
12cb2: 0020 movs r0, r4
|
|
12cb4: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN);
|
|
12cb6: 6830 ldr r0, [r6, #0]
|
|
12cb8: 3010 adds r0, #16
|
|
12cba: 69ab ldr r3, [r5, #24]
|
|
12cbc: 079b lsls r3, r3, #30
|
|
12cbe: d501 bpl.n 12cc4 <basic_init+0x80c>
|
|
12cc0: f000 fc15 bl 134ee <basic_init+0x1036>
|
|
12cc4: 230b movs r3, #11
|
|
12cc6: 2118 movs r1, #24
|
|
12cc8: 220e movs r2, #14
|
|
12cca: 0149 lsls r1, r1, #5
|
|
12ccc: 02db lsls r3, r3, #11
|
|
12cce: 430a orrs r2, r1
|
|
12cd0: 431a orrs r2, r3
|
|
12cd2: 490b ldr r1, [pc, #44] ; (12d00 <basic_init+0x848>)
|
|
12cd4: 4b01 ldr r3, [pc, #4] ; (12cdc <basic_init+0x824>)
|
|
12cd6: 4798 blx r3
|
|
12cd8: e038 b.n 12d4c <basic_init+0x894>
|
|
12cda: 46c0 nop ; (mov r8, r8)
|
|
12cdc: 00004e55 .word 0x00004e55
|
|
12ce0: 20004c38 .word 0x20004c38
|
|
12ce4: 20004c3c .word 0x20004c3c
|
|
12ce8: 00008089 .word 0x00008089
|
|
12cec: 000080a9 .word 0x000080a9
|
|
12cf0: 00012495 .word 0x00012495
|
|
12cf4: 00001029 .word 0x00001029
|
|
12cf8: 000102dd .word 0x000102dd
|
|
12cfc: 00001129 .word 0x00001129
|
|
12d00: 00002029 .word 0x00002029
|
|
12d04: 00004cf5 .word 0x00004cf5
|
|
12d08: 00001239 .word 0x00001239
|
|
12d0c: 00001039 .word 0x00001039
|
|
12d10: 00001139 .word 0x00001139
|
|
12d14: 00002039 .word 0x00002039
|
|
12d18: 00009089 .word 0x00009089
|
|
12d1c: fffff800 .word 0xfffff800
|
|
12d20: 00008189 .word 0x00008189
|
|
12d24: 00009189 .word 0x00009189
|
|
12d28: 0000a089 .word 0x0000a089
|
|
12d2c: 000090a9 .word 0x000090a9
|
|
12d30: 000081a9 .word 0x000081a9
|
|
12d34: 000091a9 .word 0x000091a9
|
|
12d38: 0000a0a9 .word 0x0000a0a9
|
|
12d3c: 00007fff .word 0x00007fff
|
|
12d40: 00004fb5 .word 0x00004fb5
|
|
12d44: 00001bda .word 0x00001bda
|
|
12d48: 0000389a .word 0x0000389a
|
|
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS);
|
|
12d4c: 4bf1 ldr r3, [pc, #964] ; (13114 <basic_init+0xc5c>)
|
|
12d4e: 6818 ldr r0, [r3, #0]
|
|
12d50: 3010 adds r0, #16
|
|
12d52: 4bf1 ldr r3, [pc, #964] ; (13118 <basic_init+0xc60>)
|
|
12d54: 699b ldr r3, [r3, #24]
|
|
12d56: 079b lsls r3, r3, #30
|
|
12d58: d500 bpl.n 12d5c <basic_init+0x8a4>
|
|
12d5a: e3cd b.n 134f8 <basic_init+0x1040>
|
|
12d5c: 2222 movs r2, #34 ; 0x22
|
|
12d5e: 2311 movs r3, #17
|
|
12d60: 0152 lsls r2, r2, #5
|
|
12d62: 02d9 lsls r1, r3, #11
|
|
12d64: 431a orrs r2, r3
|
|
12d66: 430a orrs r2, r1
|
|
12d68: 49ec ldr r1, [pc, #944] ; (1311c <basic_init+0xc64>)
|
|
12d6a: 4ded ldr r5, [pc, #948] ; (13120 <basic_init+0xc68>)
|
|
12d6c: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER);
|
|
12d6e: 4ce9 ldr r4, [pc, #932] ; (13114 <basic_init+0xc5c>)
|
|
12d70: 6820 ldr r0, [r4, #0]
|
|
12d72: 3010 adds r0, #16
|
|
12d74: 4ee8 ldr r6, [pc, #928] ; (13118 <basic_init+0xc60>)
|
|
12d76: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
12d78: 2139 movs r1, #57 ; 0x39
|
|
12d7a: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR);
|
|
12d7c: 6820 ldr r0, [r4, #0]
|
|
12d7e: 3010 adds r0, #16
|
|
12d80: 88b2 ldrh r2, [r6, #4]
|
|
12d82: 49e8 ldr r1, [pc, #928] ; (13124 <basic_init+0xc6c>)
|
|
12d84: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
|
|
12d86: 6820 ldr r0, [r4, #0]
|
|
12d88: 3010 adds r0, #16
|
|
12d8a: 69b3 ldr r3, [r6, #24]
|
|
12d8c: 079b lsls r3, r3, #30
|
|
12d8e: d500 bpl.n 12d92 <basic_init+0x8da>
|
|
12d90: e3b5 b.n 134fe <basic_init+0x1046>
|
|
12d92: 2210 movs r2, #16
|
|
12d94: 2308 movs r3, #8
|
|
12d96: 0152 lsls r2, r2, #5
|
|
12d98: 02d9 lsls r1, r3, #11
|
|
12d9a: 431a orrs r2, r3
|
|
12d9c: 430a orrs r2, r1
|
|
12d9e: 49e2 ldr r1, [pc, #904] ; (13128 <basic_init+0xc70>)
|
|
12da0: 4bdf ldr r3, [pc, #892] ; (13120 <basic_init+0xc68>)
|
|
12da2: 4798 blx r3
|
|
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
|
|
12da4: 4bdb ldr r3, [pc, #876] ; (13114 <basic_init+0xc5c>)
|
|
12da6: 681c ldr r4, [r3, #0]
|
|
12da8: 3410 adds r4, #16
|
|
12daa: 2000 movs r0, #0
|
|
12dac: 4bdf ldr r3, [pc, #892] ; (1312c <basic_init+0xc74>)
|
|
12dae: 4798 blx r3
|
|
12db0: 3028 adds r0, #40 ; 0x28
|
|
12db2: 0040 lsls r0, r0, #1
|
|
12db4: 2340 movs r3, #64 ; 0x40
|
|
12db6: 33ff adds r3, #255 ; 0xff
|
|
12db8: 2201 movs r2, #1
|
|
12dba: 4298 cmp r0, r3
|
|
12dbc: d900 bls.n 12dc0 <basic_init+0x908>
|
|
12dbe: e3a1 b.n 13504 <basic_init+0x104c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
12dc0: 2130 movs r1, #48 ; 0x30
|
|
12dc2: 0020 movs r0, r4
|
|
12dc4: 4bda ldr r3, [pc, #872] ; (13130 <basic_init+0xc78>)
|
|
12dc6: 4798 blx r3
|
|
lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP);
|
|
12dc8: 4cd2 ldr r4, [pc, #840] ; (13114 <basic_init+0xc5c>)
|
|
12dca: 6820 ldr r0, [r4, #0]
|
|
12dcc: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
|
|
12dce: 2200 movs r2, #0
|
|
12dd0: 219e movs r1, #158 ; 0x9e
|
|
12dd2: 0049 lsls r1, r1, #1
|
|
12dd4: 4bd7 ldr r3, [pc, #860] ; (13134 <basic_init+0xc7c>)
|
|
12dd6: 4798 blx r3
|
|
lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12dd8: 6820 ldr r0, [r4, #0]
|
|
12dda: 3010 adds r0, #16
|
|
12ddc: 4bce ldr r3, [pc, #824] ; (13118 <basic_init+0xc60>)
|
|
12dde: 699b ldr r3, [r3, #24]
|
|
12de0: 079b lsls r3, r3, #30
|
|
12de2: d500 bpl.n 12de6 <basic_init+0x92e>
|
|
12de4: e398 b.n 13518 <basic_init+0x1060>
|
|
12de6: 231f movs r3, #31
|
|
12de8: 213f movs r1, #63 ; 0x3f
|
|
12dea: 221f movs r2, #31
|
|
12dec: 0149 lsls r1, r1, #5
|
|
12dee: 02db lsls r3, r3, #11
|
|
12df0: 430a orrs r2, r1
|
|
12df2: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
12df4: 49d0 ldr r1, [pc, #832] ; (13138 <basic_init+0xc80>)
|
|
12df6: 4bca ldr r3, [pc, #808] ; (13120 <basic_init+0xc68>)
|
|
12df8: 4798 blx r3
|
|
lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12dfa: 4bc6 ldr r3, [pc, #792] ; (13114 <basic_init+0xc5c>)
|
|
12dfc: 6818 ldr r0, [r3, #0]
|
|
12dfe: 3010 adds r0, #16
|
|
12e00: 4bc5 ldr r3, [pc, #788] ; (13118 <basic_init+0xc60>)
|
|
12e02: 699b ldr r3, [r3, #24]
|
|
12e04: 079b lsls r3, r3, #30
|
|
12e06: d500 bpl.n 12e0a <basic_init+0x952>
|
|
12e08: e38a b.n 13520 <basic_init+0x1068>
|
|
12e0a: 231f movs r3, #31
|
|
12e0c: 213f movs r1, #63 ; 0x3f
|
|
12e0e: 221f movs r2, #31
|
|
12e10: 241f movs r4, #31
|
|
12e12: 46a0 mov r8, r4
|
|
12e14: 0149 lsls r1, r1, #5
|
|
12e16: 02db lsls r3, r3, #11
|
|
12e18: 430a orrs r2, r1
|
|
12e1a: 431a orrs r2, r3
|
|
12e1c: 49c7 ldr r1, [pc, #796] ; (1313c <basic_init+0xc84>)
|
|
12e1e: 4dc0 ldr r5, [pc, #768] ; (13120 <basic_init+0xc68>)
|
|
12e20: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
|
|
12e22: 4cbc ldr r4, [pc, #752] ; (13114 <basic_init+0xc5c>)
|
|
12e24: 6820 ldr r0, [r4, #0]
|
|
12e26: 3010 adds r0, #16
|
|
12e28: 27fc movs r7, #252 ; 0xfc
|
|
12e2a: 00ff lsls r7, r7, #3
|
|
12e2c: 4642 mov r2, r8
|
|
12e2e: 433a orrs r2, r7
|
|
12e30: 4ec3 ldr r6, [pc, #780] ; (13140 <basic_init+0xc88>)
|
|
12e32: 4332 orrs r2, r6
|
|
12e34: 49c3 ldr r1, [pc, #780] ; (13144 <basic_init+0xc8c>)
|
|
12e36: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
|
|
12e38: 6820 ldr r0, [r4, #0]
|
|
12e3a: 3010 adds r0, #16
|
|
12e3c: 4642 mov r2, r8
|
|
12e3e: 433a orrs r2, r7
|
|
12e40: 4332 orrs r2, r6
|
|
12e42: 49c1 ldr r1, [pc, #772] ; (13148 <basic_init+0xc90>)
|
|
12e44: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
|
|
12e46: 6820 ldr r0, [r4, #0]
|
|
12e48: 3010 adds r0, #16
|
|
12e4a: 4bc0 ldr r3, [pc, #768] ; (1314c <basic_init+0xc94>)
|
|
12e4c: 881a ldrh r2, [r3, #0]
|
|
12e4e: 49c0 ldr r1, [pc, #768] ; (13150 <basic_init+0xc98>)
|
|
12e50: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12e52: 6820 ldr r0, [r4, #0]
|
|
12e54: 3010 adds r0, #16
|
|
12e56: 4bb0 ldr r3, [pc, #704] ; (13118 <basic_init+0xc60>)
|
|
12e58: 699b ldr r3, [r3, #24]
|
|
12e5a: 079b lsls r3, r3, #30
|
|
12e5c: d500 bpl.n 12e60 <basic_init+0x9a8>
|
|
12e5e: e363 b.n 13528 <basic_init+0x1070>
|
|
12e60: 231f movs r3, #31
|
|
12e62: 213f movs r1, #63 ; 0x3f
|
|
12e64: 221f movs r2, #31
|
|
12e66: 0149 lsls r1, r1, #5
|
|
12e68: 02db lsls r3, r3, #11
|
|
12e6a: 430a orrs r2, r1
|
|
12e6c: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
12e6e: 49b9 ldr r1, [pc, #740] ; (13154 <basic_init+0xc9c>)
|
|
12e70: 4bab ldr r3, [pc, #684] ; (13120 <basic_init+0xc68>)
|
|
12e72: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12e74: 4ba7 ldr r3, [pc, #668] ; (13114 <basic_init+0xc5c>)
|
|
12e76: 6818 ldr r0, [r3, #0]
|
|
12e78: 3010 adds r0, #16
|
|
12e7a: 4ba7 ldr r3, [pc, #668] ; (13118 <basic_init+0xc60>)
|
|
12e7c: 699b ldr r3, [r3, #24]
|
|
12e7e: 079b lsls r3, r3, #30
|
|
12e80: d500 bpl.n 12e84 <basic_init+0x9cc>
|
|
12e82: e355 b.n 13530 <basic_init+0x1078>
|
|
12e84: 231f movs r3, #31
|
|
12e86: 213f movs r1, #63 ; 0x3f
|
|
12e88: 221f movs r2, #31
|
|
12e8a: 261f movs r6, #31
|
|
12e8c: 0149 lsls r1, r1, #5
|
|
12e8e: 02db lsls r3, r3, #11
|
|
12e90: 430a orrs r2, r1
|
|
12e92: 431a orrs r2, r3
|
|
12e94: 49b0 ldr r1, [pc, #704] ; (13158 <basic_init+0xca0>)
|
|
12e96: 4da2 ldr r5, [pc, #648] ; (13120 <basic_init+0xc68>)
|
|
12e98: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff));
|
|
12e9a: 4c9e ldr r4, [pc, #632] ; (13114 <basic_init+0xc5c>)
|
|
12e9c: 6820 ldr r0, [r4, #0]
|
|
12e9e: 3010 adds r0, #16
|
|
12ea0: 23fc movs r3, #252 ; 0xfc
|
|
12ea2: 00db lsls r3, r3, #3
|
|
12ea4: 4699 mov r9, r3
|
|
12ea6: 001a movs r2, r3
|
|
12ea8: 4332 orrs r2, r6
|
|
12eaa: 4fa5 ldr r7, [pc, #660] ; (13140 <basic_init+0xc88>)
|
|
12eac: 433a orrs r2, r7
|
|
12eae: 49aa ldr r1, [pc, #680] ; (13158 <basic_init+0xca0>)
|
|
12eb0: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
|
|
12eb2: 6820 ldr r0, [r4, #0]
|
|
12eb4: 3010 adds r0, #16
|
|
12eb6: 464a mov r2, r9
|
|
12eb8: 4332 orrs r2, r6
|
|
12eba: 433a orrs r2, r7
|
|
12ebc: 49a7 ldr r1, [pc, #668] ; (1315c <basic_init+0xca4>)
|
|
12ebe: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
|
|
12ec0: 6820 ldr r0, [r4, #0]
|
|
12ec2: 3010 adds r0, #16
|
|
12ec4: 4ba1 ldr r3, [pc, #644] ; (1314c <basic_init+0xc94>)
|
|
12ec6: 881a ldrh r2, [r3, #0]
|
|
12ec8: 49a5 ldr r1, [pc, #660] ; (13160 <basic_init+0xca8>)
|
|
12eca: 47a8 blx r5
|
|
lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12ecc: 6820 ldr r0, [r4, #0]
|
|
12ece: 3010 adds r0, #16
|
|
12ed0: 4b91 ldr r3, [pc, #580] ; (13118 <basic_init+0xc60>)
|
|
12ed2: 699b ldr r3, [r3, #24]
|
|
12ed4: 079b lsls r3, r3, #30
|
|
12ed6: d500 bpl.n 12eda <basic_init+0xa22>
|
|
12ed8: e32e b.n 13538 <basic_init+0x1080>
|
|
12eda: 231f movs r3, #31
|
|
12edc: 213f movs r1, #63 ; 0x3f
|
|
12ede: 221f movs r2, #31
|
|
12ee0: 0149 lsls r1, r1, #5
|
|
12ee2: 02db lsls r3, r3, #11
|
|
12ee4: 430a orrs r2, r1
|
|
12ee6: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
12ee8: 2179 movs r1, #121 ; 0x79
|
|
12eea: 4b8d ldr r3, [pc, #564] ; (13120 <basic_init+0xc68>)
|
|
12eec: 4798 blx r3
|
|
lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
|
|
12eee: 4b89 ldr r3, [pc, #548] ; (13114 <basic_init+0xc5c>)
|
|
12ef0: 6818 ldr r0, [r3, #0]
|
|
12ef2: 3010 adds r0, #16
|
|
12ef4: 4b88 ldr r3, [pc, #544] ; (13118 <basic_init+0xc60>)
|
|
12ef6: 699b ldr r3, [r3, #24]
|
|
12ef8: 079b lsls r3, r3, #30
|
|
12efa: d500 bpl.n 12efe <basic_init+0xa46>
|
|
12efc: e320 b.n 13540 <basic_init+0x1088>
|
|
12efe: 231f movs r3, #31
|
|
12f00: 213f movs r1, #63 ; 0x3f
|
|
12f02: 221f movs r2, #31
|
|
12f04: 241f movs r4, #31
|
|
12f06: 46a0 mov r8, r4
|
|
12f08: 0149 lsls r1, r1, #5
|
|
12f0a: 02db lsls r3, r3, #11
|
|
12f0c: 430a orrs r2, r1
|
|
12f0e: 431a orrs r2, r3
|
|
12f10: 4994 ldr r1, [pc, #592] ; (13164 <basic_init+0xcac>)
|
|
12f12: 4d83 ldr r5, [pc, #524] ; (13120 <basic_init+0xc68>)
|
|
12f14: 47a8 blx r5
|
|
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
|
|
12f16: 4c7f ldr r4, [pc, #508] ; (13114 <basic_init+0xc5c>)
|
|
12f18: 6820 ldr r0, [r4, #0]
|
|
12f1a: 3010 adds r0, #16
|
|
12f1c: 27fc movs r7, #252 ; 0xfc
|
|
12f1e: 00ff lsls r7, r7, #3
|
|
12f20: 4642 mov r2, r8
|
|
12f22: 433a orrs r2, r7
|
|
12f24: 4e86 ldr r6, [pc, #536] ; (13140 <basic_init+0xc88>)
|
|
12f26: 4332 orrs r2, r6
|
|
12f28: 217a movs r1, #122 ; 0x7a
|
|
12f2a: 31ff adds r1, #255 ; 0xff
|
|
12f2c: 47a8 blx r5
|
|
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
|
|
12f2e: 6820 ldr r0, [r4, #0]
|
|
12f30: 3010 adds r0, #16
|
|
12f32: 4642 mov r2, r8
|
|
12f34: 433a orrs r2, r7
|
|
12f36: 4332 orrs r2, r6
|
|
12f38: 498b ldr r1, [pc, #556] ; (13168 <basic_init+0xcb0>)
|
|
12f3a: 47a8 blx r5
|
|
lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
|
|
12f3c: 6820 ldr r0, [r4, #0]
|
|
12f3e: 3010 adds r0, #16
|
|
12f40: 4b82 ldr r3, [pc, #520] ; (1314c <basic_init+0xc94>)
|
|
12f42: 881a ldrh r2, [r3, #0]
|
|
12f44: 4989 ldr r1, [pc, #548] ; (1316c <basic_init+0xcb4>)
|
|
12f46: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
|
|
12f48: 6824 ldr r4, [r4, #0]
|
|
12f4a: 3410 adds r4, #16
|
|
12f4c: 2000 movs r0, #0
|
|
12f4e: 4b77 ldr r3, [pc, #476] ; (1312c <basic_init+0xc74>)
|
|
12f50: 4798 blx r3
|
|
12f52: 0083 lsls r3, r0, #2
|
|
12f54: 181b adds r3, r3, r0
|
|
12f56: 00db lsls r3, r3, #3
|
|
12f58: 3350 adds r3, #80 ; 0x50
|
|
12f5a: 2140 movs r1, #64 ; 0x40
|
|
12f5c: 31ff adds r1, #255 ; 0xff
|
|
12f5e: 2201 movs r2, #1
|
|
12f60: 428b cmp r3, r1
|
|
12f62: d900 bls.n 12f66 <basic_init+0xaae>
|
|
12f64: e2f0 b.n 13548 <basic_init+0x1090>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
12f66: 2112 movs r1, #18
|
|
12f68: 0020 movs r0, r4
|
|
12f6a: 4b71 ldr r3, [pc, #452] ; (13130 <basic_init+0xc78>)
|
|
12f6c: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
|
|
12f6e: 4b69 ldr r3, [pc, #420] ; (13114 <basic_init+0xc5c>)
|
|
12f70: 681c ldr r4, [r3, #0]
|
|
12f72: 3410 adds r4, #16
|
|
12f74: 2000 movs r0, #0
|
|
12f76: 4b6d ldr r3, [pc, #436] ; (1312c <basic_init+0xc74>)
|
|
12f78: 4798 blx r3
|
|
12f7a: 0083 lsls r3, r0, #2
|
|
12f7c: 181b adds r3, r3, r0
|
|
12f7e: 00db lsls r3, r3, #3
|
|
12f80: 3350 adds r3, #80 ; 0x50
|
|
12f82: 2140 movs r1, #64 ; 0x40
|
|
12f84: 31ff adds r1, #255 ; 0xff
|
|
12f86: 2201 movs r2, #1
|
|
12f88: 428b cmp r3, r1
|
|
12f8a: d900 bls.n 12f8e <basic_init+0xad6>
|
|
12f8c: e2e9 b.n 13562 <basic_init+0x10aa>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
12f8e: 2113 movs r1, #19
|
|
12f90: 0020 movs r0, r4
|
|
12f92: 4b67 ldr r3, [pc, #412] ; (13130 <basic_init+0xc78>)
|
|
12f94: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
|
|
12f96: 4b5f ldr r3, [pc, #380] ; (13114 <basic_init+0xc5c>)
|
|
12f98: 681c ldr r4, [r3, #0]
|
|
12f9a: 3410 adds r4, #16
|
|
12f9c: 2000 movs r0, #0
|
|
12f9e: 4b63 ldr r3, [pc, #396] ; (1312c <basic_init+0xc74>)
|
|
12fa0: 4798 blx r3
|
|
12fa2: 0103 lsls r3, r0, #4
|
|
12fa4: 1a18 subs r0, r3, r0
|
|
12fa6: 3050 adds r0, #80 ; 0x50
|
|
12fa8: 2340 movs r3, #64 ; 0x40
|
|
12faa: 33ff adds r3, #255 ; 0xff
|
|
12fac: 2201 movs r2, #1
|
|
12fae: 4298 cmp r0, r3
|
|
12fb0: d900 bls.n 12fb4 <basic_init+0xafc>
|
|
12fb2: e2e3 b.n 1357c <basic_init+0x10c4>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
12fb4: 2110 movs r1, #16
|
|
12fb6: 0020 movs r0, r4
|
|
12fb8: 4b5d ldr r3, [pc, #372] ; (13130 <basic_init+0xc78>)
|
|
12fba: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
|
|
12fbc: 4b55 ldr r3, [pc, #340] ; (13114 <basic_init+0xc5c>)
|
|
12fbe: 681c ldr r4, [r3, #0]
|
|
12fc0: 3410 adds r4, #16
|
|
12fc2: 2000 movs r0, #0
|
|
12fc4: 4b59 ldr r3, [pc, #356] ; (1312c <basic_init+0xc74>)
|
|
12fc6: 4798 blx r3
|
|
12fc8: 0103 lsls r3, r0, #4
|
|
12fca: 1a18 subs r0, r3, r0
|
|
12fcc: 3050 adds r0, #80 ; 0x50
|
|
12fce: 2340 movs r3, #64 ; 0x40
|
|
12fd0: 33ff adds r3, #255 ; 0xff
|
|
12fd2: 2201 movs r2, #1
|
|
12fd4: 4298 cmp r0, r3
|
|
12fd6: d900 bls.n 12fda <basic_init+0xb22>
|
|
12fd8: e2e8 b.n 135ac <basic_init+0x10f4>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
12fda: 2111 movs r1, #17
|
|
12fdc: 0020 movs r0, r4
|
|
12fde: 4b54 ldr r3, [pc, #336] ; (13130 <basic_init+0xc78>)
|
|
12fe0: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
|
|
12fe2: 4b4c ldr r3, [pc, #304] ; (13114 <basic_init+0xc5c>)
|
|
12fe4: 681c ldr r4, [r3, #0]
|
|
12fe6: 3410 adds r4, #16
|
|
12fe8: 2000 movs r0, #0
|
|
12fea: 4b50 ldr r3, [pc, #320] ; (1312c <basic_init+0xc74>)
|
|
12fec: 4798 blx r3
|
|
12fee: 0083 lsls r3, r0, #2
|
|
12ff0: 181b adds r3, r3, r0
|
|
12ff2: 009b lsls r3, r3, #2
|
|
12ff4: 3350 adds r3, #80 ; 0x50
|
|
12ff6: 2140 movs r1, #64 ; 0x40
|
|
12ff8: 31ff adds r1, #255 ; 0xff
|
|
12ffa: 2201 movs r2, #1
|
|
12ffc: 428b cmp r3, r1
|
|
12ffe: d900 bls.n 13002 <basic_init+0xb4a>
|
|
13000: e2df b.n 135c2 <basic_init+0x110a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
13002: 2114 movs r1, #20
|
|
13004: 0020 movs r0, r4
|
|
13006: 4d4a ldr r5, [pc, #296] ; (13130 <basic_init+0xc78>)
|
|
13008: 47a8 blx r5
|
|
lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3);
|
|
1300a: 4c42 ldr r4, [pc, #264] ; (13114 <basic_init+0xc5c>)
|
|
1300c: 6820 ldr r0, [r4, #0]
|
|
1300e: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
|
|
13010: 2203 movs r2, #3
|
|
13012: 2140 movs r1, #64 ; 0x40
|
|
13014: 47a8 blx r5
|
|
lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0);
|
|
13016: 6820 ldr r0, [r4, #0]
|
|
13018: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
1301a: 2200 movs r2, #0
|
|
1301c: 214c movs r1, #76 ; 0x4c
|
|
1301e: 4e45 ldr r6, [pc, #276] ; (13134 <basic_init+0xc7c>)
|
|
13020: 47b0 blx r6
|
|
lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50);
|
|
13022: 6820 ldr r0, [r4, #0]
|
|
13024: 3010 adds r0, #16
|
|
13026: 227f movs r2, #127 ; 0x7f
|
|
13028: 2193 movs r1, #147 ; 0x93
|
|
1302a: 0089 lsls r1, r1, #2
|
|
1302c: 47b0 blx r6
|
|
lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary);
|
|
1302e: 6820 ldr r0, [r4, #0]
|
|
13030: 3010 adds r0, #16
|
|
13032: 4f39 ldr r7, [pc, #228] ; (13118 <basic_init+0xc60>)
|
|
13034: 88ba ldrh r2, [r7, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
|
|
13036: 2149 movs r1, #73 ; 0x49
|
|
13038: 4e39 ldr r6, [pc, #228] ; (13120 <basic_init+0xc68>)
|
|
1303a: 47b0 blx r6
|
|
lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary);
|
|
1303c: 6820 ldr r0, [r4, #0]
|
|
1303e: 3010 adds r0, #16
|
|
13040: 88fa ldrh r2, [r7, #6]
|
|
13042: 494b ldr r1, [pc, #300] ; (13170 <basic_init+0xcb8>)
|
|
13044: 47b0 blx r6
|
|
lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
13046: 6820 ldr r0, [r4, #0]
|
|
13048: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
|
|
1304a: 2296 movs r2, #150 ; 0x96
|
|
1304c: 21b0 movs r1, #176 ; 0xb0
|
|
1304e: 47a8 blx r5
|
|
lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA);
|
|
13050: 6820 ldr r0, [r4, #0]
|
|
13052: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
|
|
13054: 223c movs r2, #60 ; 0x3c
|
|
13056: 21b5 movs r1, #181 ; 0xb5
|
|
13058: 47a8 blx r5
|
|
lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
|
|
1305a: 6820 ldr r0, [r4, #0]
|
|
1305c: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
|
|
1305e: 2229 movs r2, #41 ; 0x29
|
|
13060: 21b6 movs r1, #182 ; 0xb6
|
|
13062: 47a8 blx r5
|
|
lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
|
|
13064: 6820 ldr r0, [r4, #0]
|
|
13066: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
13068: 224c movs r2, #76 ; 0x4c
|
|
1306a: 21b7 movs r1, #183 ; 0xb7
|
|
1306c: 47a8 blx r5
|
|
lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
1306e: 6820 ldr r0, [r4, #0]
|
|
13070: 3010 adds r0, #16
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
|
|
13072: 2296 movs r2, #150 ; 0x96
|
|
13074: 21b1 movs r1, #177 ; 0xb1
|
|
13076: 47a8 blx r5
|
|
lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0);
|
|
13078: 6820 ldr r0, [r4, #0]
|
|
1307a: 3010 adds r0, #16
|
|
1307c: 2200 movs r2, #0
|
|
1307e: 493d ldr r1, [pc, #244] ; (13174 <basic_init+0xcbc>)
|
|
13080: 47a8 blx r5
|
|
style_init_reset(&styles->pad_inner);
|
|
13082: 6820 ldr r0, [r4, #0]
|
|
13084: 3014 adds r0, #20
|
|
13086: 4b3c ldr r3, [pc, #240] ; (13178 <basic_init+0xcc0>)
|
|
13088: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
1308a: 6824 ldr r4, [r4, #0]
|
|
1308c: 3414 adds r4, #20
|
|
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
|
|
1308e: 2000 movs r0, #0
|
|
13090: 4b3a ldr r3, [pc, #232] ; (1317c <basic_init+0xcc4>)
|
|
13092: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
13094: 2832 cmp r0, #50 ; 0x32
|
|
13096: d900 bls.n 1309a <basic_init+0xbe2>
|
|
13098: e2ad b.n 135f6 <basic_init+0x113e>
|
|
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
|
|
1309a: 2000 movs r0, #0
|
|
1309c: 4b23 ldr r3, [pc, #140] ; (1312c <basic_init+0xc74>)
|
|
1309e: 4798 blx r3
|
|
130a0: 0083 lsls r3, r0, #2
|
|
130a2: 181b adds r3, r3, r0
|
|
130a4: 009b lsls r3, r3, #2
|
|
130a6: 3350 adds r3, #80 ; 0x50
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
130a8: 2140 movs r1, #64 ; 0x40
|
|
130aa: 31ff adds r1, #255 ; 0xff
|
|
130ac: 2201 movs r2, #1
|
|
130ae: 428b cmp r3, r1
|
|
130b0: d900 bls.n 130b4 <basic_init+0xbfc>
|
|
130b2: e293 b.n 135dc <basic_init+0x1124>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
130b4: 2114 movs r1, #20
|
|
130b6: 0020 movs r0, r4
|
|
130b8: 4b1d ldr r3, [pc, #116] ; (13130 <basic_init+0xc78>)
|
|
130ba: 4798 blx r3
|
|
style_init_reset(&styles->pad_small);
|
|
130bc: 4b15 ldr r3, [pc, #84] ; (13114 <basic_init+0xc5c>)
|
|
130be: 6818 ldr r0, [r3, #0]
|
|
130c0: 3018 adds r0, #24
|
|
130c2: 4b2d ldr r3, [pc, #180] ; (13178 <basic_init+0xcc0>)
|
|
130c4: 4798 blx r3
|
|
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
|
|
130c6: 2000 movs r0, #0
|
|
130c8: 4b2c ldr r3, [pc, #176] ; (1317c <basic_init+0xcc4>)
|
|
130ca: 4798 blx r3
|
|
130cc: 2832 cmp r0, #50 ; 0x32
|
|
130ce: d900 bls.n 130d2 <basic_init+0xc1a>
|
|
130d0: e2b8 b.n 13644 <basic_init+0x118c>
|
|
130d2: 2000 movs r0, #0
|
|
130d4: 4b15 ldr r3, [pc, #84] ; (1312c <basic_init+0xc74>)
|
|
130d6: 4798 blx r3
|
|
130d8: 0003 movs r3, r0
|
|
130da: 0080 lsls r0, r0, #2
|
|
130dc: 18c0 adds r0, r0, r3
|
|
130de: 0040 lsls r0, r0, #1
|
|
130e0: 3050 adds r0, #80 ; 0x50
|
|
130e2: 2340 movs r3, #64 ; 0x40
|
|
130e4: 33ff adds r3, #255 ; 0xff
|
|
130e6: 2401 movs r4, #1
|
|
130e8: 4298 cmp r0, r3
|
|
130ea: d900 bls.n 130ee <basic_init+0xc36>
|
|
130ec: e29d b.n 1362a <basic_init+0x1172>
|
|
lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
|
|
130ee: 4e09 ldr r6, [pc, #36] ; (13114 <basic_init+0xc5c>)
|
|
130f0: 6830 ldr r0, [r6, #0]
|
|
130f2: 3018 adds r0, #24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
130f4: 0022 movs r2, r4
|
|
130f6: 2112 movs r1, #18
|
|
130f8: 4d0d ldr r5, [pc, #52] ; (13130 <basic_init+0xc78>)
|
|
130fa: 47a8 blx r5
|
|
lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
|
|
130fc: 6830 ldr r0, [r6, #0]
|
|
130fe: 3018 adds r0, #24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
13100: 0022 movs r2, r4
|
|
13102: 2113 movs r1, #19
|
|
13104: 47a8 blx r5
|
|
lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
|
|
13106: 6830 ldr r0, [r6, #0]
|
|
13108: 3018 adds r0, #24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
1310a: 0022 movs r2, r4
|
|
1310c: 2110 movs r1, #16
|
|
1310e: 47a8 blx r5
|
|
lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
|
|
13110: 6830 ldr r0, [r6, #0]
|
|
13112: e035 b.n 13180 <basic_init+0xcc8>
|
|
13114: 20004c38 .word 0x20004c38
|
|
13118: 20004c3c .word 0x20004c3c
|
|
1311c: 00002129 .word 0x00002129
|
|
13120: 00004e55 .word 0x00004e55
|
|
13124: 00001039 .word 0x00001039
|
|
13128: 00002039 .word 0x00002039
|
|
1312c: 0000f665 .word 0x0000f665
|
|
13130: 00004cf5 .word 0x00004cf5
|
|
13134: 00004fb5 .word 0x00004fb5
|
|
13138: 00008089 .word 0x00008089
|
|
1313c: 00009089 .word 0x00009089
|
|
13140: fffff800 .word 0xfffff800
|
|
13144: 00008189 .word 0x00008189
|
|
13148: 00009189 .word 0x00009189
|
|
1314c: 0001c928 .word 0x0001c928
|
|
13150: 0000a089 .word 0x0000a089
|
|
13154: 000080a9 .word 0x000080a9
|
|
13158: 000090a9 .word 0x000090a9
|
|
1315c: 000091a9 .word 0x000091a9
|
|
13160: 0000a0a9 .word 0x0000a0a9
|
|
13164: 00001079 .word 0x00001079
|
|
13168: 00001179 .word 0x00001179
|
|
1316c: 00002079 .word 0x00002079
|
|
13170: 00000449 .word 0x00000449
|
|
13174: 000010b1 .word 0x000010b1
|
|
13178: 00012495 .word 0x00012495
|
|
1317c: 0000f681 .word 0x0000f681
|
|
13180: 3018 adds r0, #24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
13182: 0022 movs r2, r4
|
|
13184: 2111 movs r1, #17
|
|
13186: 47a8 blx r5
|
|
lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
|
|
13188: 6830 ldr r0, [r6, #0]
|
|
1318a: 3018 adds r0, #24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
1318c: 0022 movs r2, r4
|
|
1318e: 2114 movs r1, #20
|
|
13190: 47a8 blx r5
|
|
}
|
|
13192: bc0c pop {r2, r3}
|
|
13194: 4690 mov r8, r2
|
|
13196: 4699 mov r9, r3
|
|
13198: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
1319a: 231d movs r3, #29
|
|
1319c: 213b movs r1, #59 ; 0x3b
|
|
1319e: 221e movs r2, #30
|
|
131a0: f7ff f9a1 bl 124e6 <basic_init+0x2e>
|
|
131a4: 2307 movs r3, #7
|
|
131a6: 210f movs r1, #15
|
|
131a8: 2208 movs r2, #8
|
|
131aa: f7ff f9ae bl 1250a <basic_init+0x52>
|
|
131ae: 2307 movs r3, #7
|
|
131b0: 210f movs r1, #15
|
|
131b2: 2208 movs r2, #8
|
|
131b4: f7ff f9bb bl 1252e <basic_init+0x76>
|
|
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
|
|
131b8: 2000 movs r0, #0
|
|
131ba: 4bf6 ldr r3, [pc, #984] ; (13594 <basic_init+0x10dc>)
|
|
131bc: 4798 blx r3
|
|
131be: 300a adds r0, #10
|
|
131c0: 00c0 lsls r0, r0, #3
|
|
131c2: 21a0 movs r1, #160 ; 0xa0
|
|
131c4: 4bf4 ldr r3, [pc, #976] ; (13598 <basic_init+0x10e0>)
|
|
131c6: 4798 blx r3
|
|
131c8: b202 sxth r2, r0
|
|
131ca: f7ff f9d4 bl 12576 <basic_init+0xbe>
|
|
131ce: 231f movs r3, #31
|
|
131d0: 213f movs r1, #63 ; 0x3f
|
|
131d2: 221f movs r2, #31
|
|
131d4: f7ff f9e5 bl 125a2 <basic_init+0xea>
|
|
131d8: 231a movs r3, #26
|
|
131da: 2137 movs r1, #55 ; 0x37
|
|
131dc: 221c movs r2, #28
|
|
131de: f7ff f9f3 bl 125c8 <basic_init+0x110>
|
|
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
|
|
131e2: 2000 movs r0, #0
|
|
131e4: 4beb ldr r3, [pc, #940] ; (13594 <basic_init+0x10dc>)
|
|
131e6: 4798 blx r3
|
|
131e8: 3028 adds r0, #40 ; 0x28
|
|
131ea: 0040 lsls r0, r0, #1
|
|
131ec: 21a0 movs r1, #160 ; 0xa0
|
|
131ee: 4bea ldr r3, [pc, #936] ; (13598 <basic_init+0x10e0>)
|
|
131f0: 4798 blx r3
|
|
131f2: b202 sxth r2, r0
|
|
131f4: f7ff fa09 bl 1260a <basic_init+0x152>
|
|
131f8: 2307 movs r3, #7
|
|
131fa: 210f movs r1, #15
|
|
131fc: 2208 movs r2, #8
|
|
131fe: f7ff fa1f bl 12640 <basic_init+0x188>
|
|
13202: 2307 movs r3, #7
|
|
13204: 210f movs r1, #15
|
|
13206: 2208 movs r2, #8
|
|
13208: f7ff fa33 bl 12672 <basic_init+0x1ba>
|
|
1320c: 2307 movs r3, #7
|
|
1320e: 210f movs r1, #15
|
|
13210: 2208 movs r2, #8
|
|
13212: f7ff fa41 bl 12698 <basic_init+0x1e0>
|
|
13216: 2307 movs r3, #7
|
|
13218: 210f movs r1, #15
|
|
1321a: 2208 movs r2, #8
|
|
1321c: f7ff fa4f bl 126be <basic_init+0x206>
|
|
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
13220: 2000 movs r0, #0
|
|
13222: 4bdc ldr r3, [pc, #880] ; (13594 <basic_init+0x10dc>)
|
|
13224: 4798 blx r3
|
|
13226: 0103 lsls r3, r0, #4
|
|
13228: 1a18 subs r0, r3, r0
|
|
1322a: 3050 adds r0, #80 ; 0x50
|
|
1322c: 2340 movs r3, #64 ; 0x40
|
|
1322e: 33ff adds r3, #255 ; 0xff
|
|
13230: 2401 movs r4, #1
|
|
13232: 4298 cmp r0, r3
|
|
13234: d801 bhi.n 1323a <basic_init+0xd82>
|
|
13236: f7ff fa67 bl 12708 <basic_init+0x250>
|
|
1323a: 2000 movs r0, #0
|
|
1323c: 4bd5 ldr r3, [pc, #852] ; (13594 <basic_init+0x10dc>)
|
|
1323e: 4798 blx r3
|
|
13240: 0103 lsls r3, r0, #4
|
|
13242: 1a18 subs r0, r3, r0
|
|
13244: 3050 adds r0, #80 ; 0x50
|
|
13246: 21a0 movs r1, #160 ; 0xa0
|
|
13248: 4bd3 ldr r3, [pc, #844] ; (13598 <basic_init+0x10e0>)
|
|
1324a: 4798 blx r3
|
|
1324c: b284 uxth r4, r0
|
|
1324e: f7ff fa5b bl 12708 <basic_init+0x250>
|
|
13252: 2000 movs r0, #0
|
|
13254: 4bcf ldr r3, [pc, #828] ; (13594 <basic_init+0x10dc>)
|
|
13256: 4798 blx r3
|
|
13258: 0103 lsls r3, r0, #4
|
|
1325a: 1a18 subs r0, r3, r0
|
|
1325c: 0040 lsls r0, r0, #1
|
|
1325e: 3050 adds r0, #80 ; 0x50
|
|
13260: 21a0 movs r1, #160 ; 0xa0
|
|
13262: 4bcd ldr r3, [pc, #820] ; (13598 <basic_init+0x10e0>)
|
|
13264: 4798 blx r3
|
|
13266: b284 uxth r4, r0
|
|
13268: f7ff fa4e bl 12708 <basic_init+0x250>
|
|
1326c: 2000 movs r0, #0
|
|
1326e: 4bc9 ldr r3, [pc, #804] ; (13594 <basic_init+0x10dc>)
|
|
13270: 4798 blx r3
|
|
13272: 3028 adds r0, #40 ; 0x28
|
|
13274: 0040 lsls r0, r0, #1
|
|
13276: 21a0 movs r1, #160 ; 0xa0
|
|
13278: 4bc7 ldr r3, [pc, #796] ; (13598 <basic_init+0x10e0>)
|
|
1327a: 4798 blx r3
|
|
1327c: b282 uxth r2, r0
|
|
1327e: f7ff fa50 bl 12722 <basic_init+0x26a>
|
|
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
13282: 2000 movs r0, #0
|
|
13284: 4bc3 ldr r3, [pc, #780] ; (13594 <basic_init+0x10dc>)
|
|
13286: 4798 blx r3
|
|
13288: 0103 lsls r3, r0, #4
|
|
1328a: 1a18 subs r0, r3, r0
|
|
1328c: 3050 adds r0, #80 ; 0x50
|
|
1328e: 2340 movs r3, #64 ; 0x40
|
|
13290: 33ff adds r3, #255 ; 0xff
|
|
13292: 2401 movs r4, #1
|
|
13294: 4298 cmp r0, r3
|
|
13296: d801 bhi.n 1329c <basic_init+0xde4>
|
|
13298: f7ff fa61 bl 1275e <basic_init+0x2a6>
|
|
1329c: 2000 movs r0, #0
|
|
1329e: 4bbd ldr r3, [pc, #756] ; (13594 <basic_init+0x10dc>)
|
|
132a0: 4798 blx r3
|
|
132a2: 0103 lsls r3, r0, #4
|
|
132a4: 1a18 subs r0, r3, r0
|
|
132a6: 3050 adds r0, #80 ; 0x50
|
|
132a8: 21a0 movs r1, #160 ; 0xa0
|
|
132aa: 4bbb ldr r3, [pc, #748] ; (13598 <basic_init+0x10e0>)
|
|
132ac: 4798 blx r3
|
|
132ae: b284 uxth r4, r0
|
|
132b0: f7ff fa55 bl 1275e <basic_init+0x2a6>
|
|
132b4: 2000 movs r0, #0
|
|
132b6: 4bb7 ldr r3, [pc, #732] ; (13594 <basic_init+0x10dc>)
|
|
132b8: 4798 blx r3
|
|
132ba: 0103 lsls r3, r0, #4
|
|
132bc: 1a18 subs r0, r3, r0
|
|
132be: 0040 lsls r0, r0, #1
|
|
132c0: 3050 adds r0, #80 ; 0x50
|
|
132c2: 21a0 movs r1, #160 ; 0xa0
|
|
132c4: 4bb4 ldr r3, [pc, #720] ; (13598 <basic_init+0x10e0>)
|
|
132c6: 4798 blx r3
|
|
132c8: b284 uxth r4, r0
|
|
132ca: f7ff fa48 bl 1275e <basic_init+0x2a6>
|
|
132ce: 2000 movs r0, #0
|
|
132d0: 4bb0 ldr r3, [pc, #704] ; (13594 <basic_init+0x10dc>)
|
|
132d2: 4798 blx r3
|
|
132d4: 3028 adds r0, #40 ; 0x28
|
|
132d6: 0040 lsls r0, r0, #1
|
|
132d8: 21a0 movs r1, #160 ; 0xa0
|
|
132da: 4baf ldr r3, [pc, #700] ; (13598 <basic_init+0x10e0>)
|
|
132dc: 4798 blx r3
|
|
132de: b282 uxth r2, r0
|
|
132e0: f7ff fa4a bl 12778 <basic_init+0x2c0>
|
|
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
132e4: 2000 movs r0, #0
|
|
132e6: 4bab ldr r3, [pc, #684] ; (13594 <basic_init+0x10dc>)
|
|
132e8: 4798 blx r3
|
|
132ea: 0103 lsls r3, r0, #4
|
|
132ec: 1a18 subs r0, r3, r0
|
|
132ee: 3050 adds r0, #80 ; 0x50
|
|
132f0: 2340 movs r3, #64 ; 0x40
|
|
132f2: 33ff adds r3, #255 ; 0xff
|
|
132f4: 2401 movs r4, #1
|
|
132f6: 4298 cmp r0, r3
|
|
132f8: d801 bhi.n 132fe <basic_init+0xe46>
|
|
132fa: f7ff fa5b bl 127b4 <basic_init+0x2fc>
|
|
132fe: 2000 movs r0, #0
|
|
13300: 4ba4 ldr r3, [pc, #656] ; (13594 <basic_init+0x10dc>)
|
|
13302: 4798 blx r3
|
|
13304: 0103 lsls r3, r0, #4
|
|
13306: 1a18 subs r0, r3, r0
|
|
13308: 3050 adds r0, #80 ; 0x50
|
|
1330a: 21a0 movs r1, #160 ; 0xa0
|
|
1330c: 4ba2 ldr r3, [pc, #648] ; (13598 <basic_init+0x10e0>)
|
|
1330e: 4798 blx r3
|
|
13310: b284 uxth r4, r0
|
|
13312: f7ff fa4f bl 127b4 <basic_init+0x2fc>
|
|
13316: 2000 movs r0, #0
|
|
13318: 4b9e ldr r3, [pc, #632] ; (13594 <basic_init+0x10dc>)
|
|
1331a: 4798 blx r3
|
|
1331c: 0103 lsls r3, r0, #4
|
|
1331e: 1a18 subs r0, r3, r0
|
|
13320: 0040 lsls r0, r0, #1
|
|
13322: 3050 adds r0, #80 ; 0x50
|
|
13324: 21a0 movs r1, #160 ; 0xa0
|
|
13326: 4b9c ldr r3, [pc, #624] ; (13598 <basic_init+0x10e0>)
|
|
13328: 4798 blx r3
|
|
1332a: b284 uxth r4, r0
|
|
1332c: f7ff fa42 bl 127b4 <basic_init+0x2fc>
|
|
13330: 2000 movs r0, #0
|
|
13332: 4b98 ldr r3, [pc, #608] ; (13594 <basic_init+0x10dc>)
|
|
13334: 4798 blx r3
|
|
13336: 3028 adds r0, #40 ; 0x28
|
|
13338: 0040 lsls r0, r0, #1
|
|
1333a: 21a0 movs r1, #160 ; 0xa0
|
|
1333c: 4b96 ldr r3, [pc, #600] ; (13598 <basic_init+0x10e0>)
|
|
1333e: 4798 blx r3
|
|
13340: b282 uxth r2, r0
|
|
13342: f7ff fa44 bl 127ce <basic_init+0x316>
|
|
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
|
|
13346: 2000 movs r0, #0
|
|
13348: 4b92 ldr r3, [pc, #584] ; (13594 <basic_init+0x10dc>)
|
|
1334a: 4798 blx r3
|
|
1334c: 0103 lsls r3, r0, #4
|
|
1334e: 1a18 subs r0, r3, r0
|
|
13350: 3050 adds r0, #80 ; 0x50
|
|
13352: 2340 movs r3, #64 ; 0x40
|
|
13354: 33ff adds r3, #255 ; 0xff
|
|
13356: 2401 movs r4, #1
|
|
13358: 4298 cmp r0, r3
|
|
1335a: d801 bhi.n 13360 <basic_init+0xea8>
|
|
1335c: f7ff fa55 bl 1280a <basic_init+0x352>
|
|
13360: 2000 movs r0, #0
|
|
13362: 4b8c ldr r3, [pc, #560] ; (13594 <basic_init+0x10dc>)
|
|
13364: 4798 blx r3
|
|
13366: 0103 lsls r3, r0, #4
|
|
13368: 1a18 subs r0, r3, r0
|
|
1336a: 3050 adds r0, #80 ; 0x50
|
|
1336c: 21a0 movs r1, #160 ; 0xa0
|
|
1336e: 4b8a ldr r3, [pc, #552] ; (13598 <basic_init+0x10e0>)
|
|
13370: 4798 blx r3
|
|
13372: b284 uxth r4, r0
|
|
13374: f7ff fa49 bl 1280a <basic_init+0x352>
|
|
13378: 2000 movs r0, #0
|
|
1337a: 4b86 ldr r3, [pc, #536] ; (13594 <basic_init+0x10dc>)
|
|
1337c: 4798 blx r3
|
|
1337e: 0103 lsls r3, r0, #4
|
|
13380: 1a18 subs r0, r3, r0
|
|
13382: 0040 lsls r0, r0, #1
|
|
13384: 3050 adds r0, #80 ; 0x50
|
|
13386: 21a0 movs r1, #160 ; 0xa0
|
|
13388: 4b83 ldr r3, [pc, #524] ; (13598 <basic_init+0x10e0>)
|
|
1338a: 4798 blx r3
|
|
1338c: b284 uxth r4, r0
|
|
1338e: f7ff fa3c bl 1280a <basic_init+0x352>
|
|
13392: 2000 movs r0, #0
|
|
13394: 4b7f ldr r3, [pc, #508] ; (13594 <basic_init+0x10dc>)
|
|
13396: 4798 blx r3
|
|
13398: 3028 adds r0, #40 ; 0x28
|
|
1339a: 0040 lsls r0, r0, #1
|
|
1339c: 21a0 movs r1, #160 ; 0xa0
|
|
1339e: 4b7e ldr r3, [pc, #504] ; (13598 <basic_init+0x10e0>)
|
|
133a0: 4798 blx r3
|
|
133a2: b282 uxth r2, r0
|
|
133a4: f7ff fa3e bl 12824 <basic_init+0x36c>
|
|
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
|
|
133a8: 2000 movs r0, #0
|
|
133aa: 4b7a ldr r3, [pc, #488] ; (13594 <basic_init+0x10dc>)
|
|
133ac: 4798 blx r3
|
|
133ae: 0103 lsls r3, r0, #4
|
|
133b0: 1a18 subs r0, r3, r0
|
|
133b2: 3050 adds r0, #80 ; 0x50
|
|
133b4: 2340 movs r3, #64 ; 0x40
|
|
133b6: 33ff adds r3, #255 ; 0xff
|
|
133b8: 2201 movs r2, #1
|
|
133ba: 4298 cmp r0, r3
|
|
133bc: d801 bhi.n 133c2 <basic_init+0xf0a>
|
|
133be: f7ff fa4f bl 12860 <basic_init+0x3a8>
|
|
133c2: 2000 movs r0, #0
|
|
133c4: 4b73 ldr r3, [pc, #460] ; (13594 <basic_init+0x10dc>)
|
|
133c6: 4798 blx r3
|
|
133c8: 0103 lsls r3, r0, #4
|
|
133ca: 1a18 subs r0, r3, r0
|
|
133cc: 3050 adds r0, #80 ; 0x50
|
|
133ce: 21a0 movs r1, #160 ; 0xa0
|
|
133d0: 4b71 ldr r3, [pc, #452] ; (13598 <basic_init+0x10e0>)
|
|
133d2: 4798 blx r3
|
|
133d4: b202 sxth r2, r0
|
|
133d6: f7ff fa43 bl 12860 <basic_init+0x3a8>
|
|
133da: 2000 movs r0, #0
|
|
133dc: 4b6d ldr r3, [pc, #436] ; (13594 <basic_init+0x10dc>)
|
|
133de: 4798 blx r3
|
|
133e0: 0103 lsls r3, r0, #4
|
|
133e2: 1a18 subs r0, r3, r0
|
|
133e4: 0040 lsls r0, r0, #1
|
|
133e6: 3050 adds r0, #80 ; 0x50
|
|
133e8: 21a0 movs r1, #160 ; 0xa0
|
|
133ea: 4b6b ldr r3, [pc, #428] ; (13598 <basic_init+0x10e0>)
|
|
133ec: 4798 blx r3
|
|
133ee: b202 sxth r2, r0
|
|
133f0: f7ff fa36 bl 12860 <basic_init+0x3a8>
|
|
133f4: 231a movs r3, #26
|
|
133f6: 2135 movs r1, #53 ; 0x35
|
|
133f8: 221b movs r2, #27
|
|
133fa: f7ff fa73 bl 128e4 <basic_init+0x42c>
|
|
133fe: 231b movs r3, #27
|
|
13400: 2139 movs r1, #57 ; 0x39
|
|
13402: 221d movs r2, #29
|
|
13404: f7ff fa81 bl 1290a <basic_init+0x452>
|
|
13408: 2306 movs r3, #6
|
|
1340a: 2110 movs r1, #16
|
|
1340c: 2209 movs r2, #9
|
|
1340e: f7ff fa8f bl 12930 <basic_init+0x478>
|
|
13412: 2306 movs r3, #6
|
|
13414: 2110 movs r1, #16
|
|
13416: 2209 movs r2, #9
|
|
13418: f7ff fa9d bl 12956 <basic_init+0x49e>
|
|
1341c: 2306 movs r3, #6
|
|
1341e: 2110 movs r1, #16
|
|
13420: 2209 movs r2, #9
|
|
13422: f7ff faab bl 1297c <basic_init+0x4c4>
|
|
13426: 2306 movs r3, #6
|
|
13428: 2110 movs r1, #16
|
|
1342a: 2209 movs r2, #9
|
|
1342c: f7ff fab9 bl 129a2 <basic_init+0x4ea>
|
|
13430: 231d movs r3, #29
|
|
13432: 213b movs r1, #59 ; 0x3b
|
|
13434: 221d movs r2, #29
|
|
13436: f7ff facb bl 129d0 <basic_init+0x518>
|
|
1343a: 231f movs r3, #31
|
|
1343c: 213f movs r1, #63 ; 0x3f
|
|
1343e: 221f movs r2, #31
|
|
13440: f7ff fae9 bl 12a16 <basic_init+0x55e>
|
|
13444: 2319 movs r3, #25
|
|
13446: 2133 movs r1, #51 ; 0x33
|
|
13448: 2219 movs r2, #25
|
|
1344a: f7ff fb08 bl 12a5e <basic_init+0x5a6>
|
|
1344e: 2307 movs r3, #7
|
|
13450: 210f movs r1, #15
|
|
13452: 2208 movs r2, #8
|
|
13454: f7ff fb16 bl 12a84 <basic_init+0x5cc>
|
|
13458: 2307 movs r3, #7
|
|
1345a: 210f movs r1, #15
|
|
1345c: 2208 movs r2, #8
|
|
1345e: f7ff fb25 bl 12aac <basic_init+0x5f4>
|
|
13462: 231a movs r3, #26
|
|
13464: 2137 movs r1, #55 ; 0x37
|
|
13466: 221c movs r2, #28
|
|
13468: f7ff fb33 bl 12ad2 <basic_init+0x61a>
|
|
1346c: 2307 movs r3, #7
|
|
1346e: 210f movs r1, #15
|
|
13470: 2208 movs r2, #8
|
|
13472: f7ff fb41 bl 12af8 <basic_init+0x640>
|
|
13476: 222a movs r2, #42 ; 0x2a
|
|
13478: 2315 movs r3, #21
|
|
1347a: f7ff fb62 bl 12b42 <basic_init+0x68a>
|
|
1347e: 2307 movs r3, #7
|
|
13480: 210f movs r1, #15
|
|
13482: 2208 movs r2, #8
|
|
13484: f7ff fb70 bl 12b68 <basic_init+0x6b0>
|
|
13488: 222a movs r2, #42 ; 0x2a
|
|
1348a: 2315 movs r3, #21
|
|
1348c: f7ff fb91 bl 12bb2 <basic_init+0x6fa>
|
|
13490: 231f movs r3, #31
|
|
13492: 213f movs r1, #63 ; 0x3f
|
|
13494: 221f movs r2, #31
|
|
13496: f7ff fbb4 bl 12c02 <basic_init+0x74a>
|
|
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
|
|
1349a: 4e40 ldr r6, [pc, #256] ; (1359c <basic_init+0x10e4>)
|
|
1349c: 7972 ldrb r2, [r6, #5]
|
|
1349e: 08d2 lsrs r2, r2, #3
|
|
134a0: 254c movs r5, #76 ; 0x4c
|
|
134a2: 436a muls r2, r5
|
|
134a4: 4b3e ldr r3, [pc, #248] ; (135a0 <basic_init+0x10e8>)
|
|
134a6: 18d3 adds r3, r2, r3
|
|
134a8: 021a lsls r2, r3, #8
|
|
134aa: 18d2 adds r2, r2, r3
|
|
134ac: 01d2 lsls r2, r2, #7
|
|
134ae: 18d2 adds r2, r2, r3
|
|
134b0: 0dd2 lsrs r2, r2, #23
|
|
134b2: 211f movs r1, #31
|
|
134b4: 400a ands r2, r1
|
|
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
|
|
134b6: 88b4 ldrh r4, [r6, #4]
|
|
134b8: 0564 lsls r4, r4, #21
|
|
134ba: 0ea4 lsrs r4, r4, #26
|
|
134bc: 436c muls r4, r5
|
|
134be: 4b39 ldr r3, [pc, #228] ; (135a4 <basic_init+0x10ec>)
|
|
134c0: 469c mov ip, r3
|
|
134c2: 4464 add r4, ip
|
|
134c4: 0223 lsls r3, r4, #8
|
|
134c6: 191b adds r3, r3, r4
|
|
134c8: 01db lsls r3, r3, #7
|
|
134ca: 191b adds r3, r3, r4
|
|
134cc: 00db lsls r3, r3, #3
|
|
134ce: 0e9b lsrs r3, r3, #26
|
|
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
|
|
134d0: 7934 ldrb r4, [r6, #4]
|
|
134d2: 06e4 lsls r4, r4, #27
|
|
134d4: 0ee4 lsrs r4, r4, #27
|
|
134d6: 4365 muls r5, r4
|
|
134d8: 4c33 ldr r4, [pc, #204] ; (135a8 <basic_init+0x10f0>)
|
|
134da: 46a4 mov ip, r4
|
|
134dc: 4465 add r5, ip
|
|
134de: 022c lsls r4, r5, #8
|
|
134e0: 1964 adds r4, r4, r5
|
|
134e2: 01e4 lsls r4, r4, #7
|
|
134e4: 1964 adds r4, r4, r5
|
|
134e6: 0de4 lsrs r4, r4, #23
|
|
134e8: 4021 ands r1, r4
|
|
134ea: f7ff fbcb bl 12c84 <basic_init+0x7cc>
|
|
134ee: 231f movs r3, #31
|
|
134f0: 213f movs r1, #63 ; 0x3f
|
|
134f2: 221f movs r2, #31
|
|
134f4: f7ff fbe9 bl 12cca <basic_init+0x812>
|
|
134f8: 2233 movs r2, #51 ; 0x33
|
|
134fa: 2319 movs r3, #25
|
|
134fc: e430 b.n 12d60 <basic_init+0x8a8>
|
|
134fe: 2222 movs r2, #34 ; 0x22
|
|
13500: 2311 movs r3, #17
|
|
13502: e448 b.n 12d96 <basic_init+0x8de>
|
|
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
|
|
13504: 2000 movs r0, #0
|
|
13506: 4b23 ldr r3, [pc, #140] ; (13594 <basic_init+0x10dc>)
|
|
13508: 4798 blx r3
|
|
1350a: 3028 adds r0, #40 ; 0x28
|
|
1350c: 0040 lsls r0, r0, #1
|
|
1350e: 21a0 movs r1, #160 ; 0xa0
|
|
13510: 4b21 ldr r3, [pc, #132] ; (13598 <basic_init+0x10e0>)
|
|
13512: 4798 blx r3
|
|
13514: b202 sxth r2, r0
|
|
13516: e453 b.n 12dc0 <basic_init+0x908>
|
|
13518: 2306 movs r3, #6
|
|
1351a: 2110 movs r1, #16
|
|
1351c: 2209 movs r2, #9
|
|
1351e: e465 b.n 12dec <basic_init+0x934>
|
|
13520: 2306 movs r3, #6
|
|
13522: 2110 movs r1, #16
|
|
13524: 2209 movs r2, #9
|
|
13526: e473 b.n 12e10 <basic_init+0x958>
|
|
13528: 2306 movs r3, #6
|
|
1352a: 2110 movs r1, #16
|
|
1352c: 2209 movs r2, #9
|
|
1352e: e49a b.n 12e66 <basic_init+0x9ae>
|
|
13530: 2306 movs r3, #6
|
|
13532: 2110 movs r1, #16
|
|
13534: 2209 movs r2, #9
|
|
13536: e4a8 b.n 12e8a <basic_init+0x9d2>
|
|
13538: 2306 movs r3, #6
|
|
1353a: 2110 movs r1, #16
|
|
1353c: 2209 movs r2, #9
|
|
1353e: e4cf b.n 12ee0 <basic_init+0xa28>
|
|
13540: 2306 movs r3, #6
|
|
13542: 2110 movs r1, #16
|
|
13544: 2209 movs r2, #9
|
|
13546: e4dd b.n 12f04 <basic_init+0xa4c>
|
|
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
|
|
13548: 2000 movs r0, #0
|
|
1354a: 4b12 ldr r3, [pc, #72] ; (13594 <basic_init+0x10dc>)
|
|
1354c: 4798 blx r3
|
|
1354e: 0003 movs r3, r0
|
|
13550: 0080 lsls r0, r0, #2
|
|
13552: 18c0 adds r0, r0, r3
|
|
13554: 00c0 lsls r0, r0, #3
|
|
13556: 3050 adds r0, #80 ; 0x50
|
|
13558: 21a0 movs r1, #160 ; 0xa0
|
|
1355a: 4b0f ldr r3, [pc, #60] ; (13598 <basic_init+0x10e0>)
|
|
1355c: 4798 blx r3
|
|
1355e: b202 sxth r2, r0
|
|
13560: e501 b.n 12f66 <basic_init+0xaae>
|
|
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
|
|
13562: 2000 movs r0, #0
|
|
13564: 4b0b ldr r3, [pc, #44] ; (13594 <basic_init+0x10dc>)
|
|
13566: 4798 blx r3
|
|
13568: 0003 movs r3, r0
|
|
1356a: 0080 lsls r0, r0, #2
|
|
1356c: 18c0 adds r0, r0, r3
|
|
1356e: 00c0 lsls r0, r0, #3
|
|
13570: 3050 adds r0, #80 ; 0x50
|
|
13572: 21a0 movs r1, #160 ; 0xa0
|
|
13574: 4b08 ldr r3, [pc, #32] ; (13598 <basic_init+0x10e0>)
|
|
13576: 4798 blx r3
|
|
13578: b202 sxth r2, r0
|
|
1357a: e508 b.n 12f8e <basic_init+0xad6>
|
|
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
|
|
1357c: 2000 movs r0, #0
|
|
1357e: 4b05 ldr r3, [pc, #20] ; (13594 <basic_init+0x10dc>)
|
|
13580: 4798 blx r3
|
|
13582: 0103 lsls r3, r0, #4
|
|
13584: 1a18 subs r0, r3, r0
|
|
13586: 3050 adds r0, #80 ; 0x50
|
|
13588: 21a0 movs r1, #160 ; 0xa0
|
|
1358a: 4b03 ldr r3, [pc, #12] ; (13598 <basic_init+0x10e0>)
|
|
1358c: 4798 blx r3
|
|
1358e: b202 sxth r2, r0
|
|
13590: e510 b.n 12fb4 <basic_init+0xafc>
|
|
13592: 46c0 nop ; (mov r8, r8)
|
|
13594: 0000f665 .word 0x0000f665
|
|
13598: 00017881 .word 0x00017881
|
|
1359c: 20004c3c .word 0x20004c3c
|
|
135a0: 000007b1 .word 0x000007b1
|
|
135a4: 000010c8 .word 0x000010c8
|
|
135a8: 000009ca .word 0x000009ca
|
|
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
|
|
135ac: 2000 movs r0, #0
|
|
135ae: 4b33 ldr r3, [pc, #204] ; (1367c <basic_init+0x11c4>)
|
|
135b0: 4798 blx r3
|
|
135b2: 0103 lsls r3, r0, #4
|
|
135b4: 1a18 subs r0, r3, r0
|
|
135b6: 3050 adds r0, #80 ; 0x50
|
|
135b8: 21a0 movs r1, #160 ; 0xa0
|
|
135ba: 4b31 ldr r3, [pc, #196] ; (13680 <basic_init+0x11c8>)
|
|
135bc: 4798 blx r3
|
|
135be: b202 sxth r2, r0
|
|
135c0: e50b b.n 12fda <basic_init+0xb22>
|
|
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
|
|
135c2: 2000 movs r0, #0
|
|
135c4: 4b2d ldr r3, [pc, #180] ; (1367c <basic_init+0x11c4>)
|
|
135c6: 4798 blx r3
|
|
135c8: 0003 movs r3, r0
|
|
135ca: 0080 lsls r0, r0, #2
|
|
135cc: 18c0 adds r0, r0, r3
|
|
135ce: 0080 lsls r0, r0, #2
|
|
135d0: 3050 adds r0, #80 ; 0x50
|
|
135d2: 21a0 movs r1, #160 ; 0xa0
|
|
135d4: 4b2a ldr r3, [pc, #168] ; (13680 <basic_init+0x11c8>)
|
|
135d6: 4798 blx r3
|
|
135d8: b202 sxth r2, r0
|
|
135da: e512 b.n 13002 <basic_init+0xb4a>
|
|
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
|
|
135dc: 2000 movs r0, #0
|
|
135de: 4b27 ldr r3, [pc, #156] ; (1367c <basic_init+0x11c4>)
|
|
135e0: 4798 blx r3
|
|
135e2: 0003 movs r3, r0
|
|
135e4: 0080 lsls r0, r0, #2
|
|
135e6: 18c0 adds r0, r0, r3
|
|
135e8: 0080 lsls r0, r0, #2
|
|
135ea: 3050 adds r0, #80 ; 0x50
|
|
135ec: 21a0 movs r1, #160 ; 0xa0
|
|
135ee: 4b24 ldr r3, [pc, #144] ; (13680 <basic_init+0x11c8>)
|
|
135f0: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
135f2: b202 sxth r2, r0
|
|
135f4: e55e b.n 130b4 <basic_init+0xbfc>
|
|
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
|
|
135f6: 2000 movs r0, #0
|
|
135f8: 4b20 ldr r3, [pc, #128] ; (1367c <basic_init+0x11c4>)
|
|
135fa: 4798 blx r3
|
|
135fc: 0083 lsls r3, r0, #2
|
|
135fe: 181b adds r3, r3, r0
|
|
13600: 00db lsls r3, r3, #3
|
|
13602: 3350 adds r3, #80 ; 0x50
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
13604: 2140 movs r1, #64 ; 0x40
|
|
13606: 31ff adds r1, #255 ; 0xff
|
|
13608: 2201 movs r2, #1
|
|
1360a: 428b cmp r3, r1
|
|
1360c: d800 bhi.n 13610 <basic_init+0x1158>
|
|
1360e: e551 b.n 130b4 <basic_init+0xbfc>
|
|
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
|
|
13610: 2000 movs r0, #0
|
|
13612: 4b1a ldr r3, [pc, #104] ; (1367c <basic_init+0x11c4>)
|
|
13614: 4798 blx r3
|
|
13616: 0003 movs r3, r0
|
|
13618: 0080 lsls r0, r0, #2
|
|
1361a: 18c0 adds r0, r0, r3
|
|
1361c: 00c0 lsls r0, r0, #3
|
|
1361e: 3050 adds r0, #80 ; 0x50
|
|
13620: 21a0 movs r1, #160 ; 0xa0
|
|
13622: 4b17 ldr r3, [pc, #92] ; (13680 <basic_init+0x11c8>)
|
|
13624: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
|
|
13626: b202 sxth r2, r0
|
|
13628: e544 b.n 130b4 <basic_init+0xbfc>
|
|
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
|
|
1362a: 2000 movs r0, #0
|
|
1362c: 4b13 ldr r3, [pc, #76] ; (1367c <basic_init+0x11c4>)
|
|
1362e: 4798 blx r3
|
|
13630: 0003 movs r3, r0
|
|
13632: 0080 lsls r0, r0, #2
|
|
13634: 18c0 adds r0, r0, r3
|
|
13636: 0040 lsls r0, r0, #1
|
|
13638: 3050 adds r0, #80 ; 0x50
|
|
1363a: 21a0 movs r1, #160 ; 0xa0
|
|
1363c: 4b10 ldr r3, [pc, #64] ; (13680 <basic_init+0x11c8>)
|
|
1363e: 4798 blx r3
|
|
13640: b204 sxth r4, r0
|
|
13642: e554 b.n 130ee <basic_init+0xc36>
|
|
13644: 2000 movs r0, #0
|
|
13646: 4b0d ldr r3, [pc, #52] ; (1367c <basic_init+0x11c4>)
|
|
13648: 4798 blx r3
|
|
1364a: 0003 movs r3, r0
|
|
1364c: 0080 lsls r0, r0, #2
|
|
1364e: 18c0 adds r0, r0, r3
|
|
13650: 0080 lsls r0, r0, #2
|
|
13652: 3050 adds r0, #80 ; 0x50
|
|
13654: 2340 movs r3, #64 ; 0x40
|
|
13656: 33ff adds r3, #255 ; 0xff
|
|
13658: 2401 movs r4, #1
|
|
1365a: 4298 cmp r0, r3
|
|
1365c: d800 bhi.n 13660 <basic_init+0x11a8>
|
|
1365e: e546 b.n 130ee <basic_init+0xc36>
|
|
13660: 2000 movs r0, #0
|
|
13662: 4b06 ldr r3, [pc, #24] ; (1367c <basic_init+0x11c4>)
|
|
13664: 4798 blx r3
|
|
13666: 0003 movs r3, r0
|
|
13668: 0080 lsls r0, r0, #2
|
|
1366a: 18c0 adds r0, r0, r3
|
|
1366c: 0080 lsls r0, r0, #2
|
|
1366e: 3050 adds r0, #80 ; 0x50
|
|
13670: 21a0 movs r1, #160 ; 0xa0
|
|
13672: 4b03 ldr r3, [pc, #12] ; (13680 <basic_init+0x11c8>)
|
|
13674: 4798 blx r3
|
|
13676: b204 sxth r4, r0
|
|
13678: e539 b.n 130ee <basic_init+0xc36>
|
|
1367a: 46c0 nop ; (mov r8, r8)
|
|
1367c: 0000f665 .word 0x0000f665
|
|
13680: 00017881 .word 0x00017881
|
|
|
|
00013684 <bar_init>:
|
|
{
|
|
13684: b5f0 push {r4, r5, r6, r7, lr}
|
|
13686: 46c6 mov lr, r8
|
|
13688: b500 push {lr}
|
|
style_init_reset(&styles->bar_bg);
|
|
1368a: 4c49 ldr r4, [pc, #292] ; (137b0 <bar_init+0x12c>)
|
|
1368c: 6820 ldr r0, [r4, #0]
|
|
1368e: 3024 adds r0, #36 ; 0x24
|
|
13690: 4b48 ldr r3, [pc, #288] ; (137b4 <bar_init+0x130>)
|
|
13692: 4798 blx r3
|
|
lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
13694: 6820 ldr r0, [r4, #0]
|
|
13696: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13698: 4a47 ldr r2, [pc, #284] ; (137b8 <bar_init+0x134>)
|
|
1369a: 2101 movs r1, #1
|
|
1369c: 4b47 ldr r3, [pc, #284] ; (137bc <bar_init+0x138>)
|
|
1369e: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
136a0: 6820 ldr r0, [r4, #0]
|
|
136a2: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
136a4: 22ff movs r2, #255 ; 0xff
|
|
136a6: 212c movs r1, #44 ; 0x2c
|
|
136a8: 4b45 ldr r3, [pc, #276] ; (137c0 <bar_init+0x13c>)
|
|
136aa: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
|
|
136ac: 6820 ldr r0, [r4, #0]
|
|
136ae: 3024 adds r0, #36 ; 0x24
|
|
136b0: 4b44 ldr r3, [pc, #272] ; (137c4 <bar_init+0x140>)
|
|
136b2: 699b ldr r3, [r3, #24]
|
|
136b4: 079b lsls r3, r3, #30
|
|
136b6: d500 bpl.n 136ba <bar_init+0x36>
|
|
136b8: e06e b.n 13798 <bar_init+0x114>
|
|
136ba: 2308 movs r3, #8
|
|
136bc: 2112 movs r1, #18
|
|
136be: 2209 movs r2, #9
|
|
136c0: 0149 lsls r1, r1, #5
|
|
136c2: 02db lsls r3, r3, #11
|
|
136c4: 430a orrs r2, r1
|
|
136c6: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
136c8: 2129 movs r1, #41 ; 0x29
|
|
136ca: 4b3f ldr r3, [pc, #252] ; (137c8 <bar_init+0x144>)
|
|
136cc: 4798 blx r3
|
|
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
|
|
136ce: 4b38 ldr r3, [pc, #224] ; (137b0 <bar_init+0x12c>)
|
|
136d0: 6818 ldr r0, [r3, #0]
|
|
136d2: 3024 adds r0, #36 ; 0x24
|
|
136d4: 4b3b ldr r3, [pc, #236] ; (137c4 <bar_init+0x140>)
|
|
136d6: 699b ldr r3, [r3, #24]
|
|
136d8: 079b lsls r3, r3, #30
|
|
136da: d461 bmi.n 137a0 <bar_init+0x11c>
|
|
136dc: 231f movs r3, #31
|
|
136de: 213f movs r1, #63 ; 0x3f
|
|
136e0: 221f movs r2, #31
|
|
136e2: 0149 lsls r1, r1, #5
|
|
136e4: 02db lsls r3, r3, #11
|
|
136e6: 430a orrs r2, r1
|
|
136e8: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
136ea: 2179 movs r1, #121 ; 0x79
|
|
136ec: 4d36 ldr r5, [pc, #216] ; (137c8 <bar_init+0x144>)
|
|
136ee: 47a8 blx r5
|
|
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary);
|
|
136f0: 4c2f ldr r4, [pc, #188] ; (137b0 <bar_init+0x12c>)
|
|
136f2: 6820 ldr r0, [r4, #0]
|
|
136f4: 3024 adds r0, #36 ; 0x24
|
|
136f6: 4e33 ldr r6, [pc, #204] ; (137c4 <bar_init+0x140>)
|
|
136f8: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
|
|
136fa: 2149 movs r1, #73 ; 0x49
|
|
136fc: 47a8 blx r5
|
|
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary);
|
|
136fe: 6820 ldr r0, [r4, #0]
|
|
13700: 3024 adds r0, #36 ; 0x24
|
|
13702: 88f2 ldrh r2, [r6, #6]
|
|
13704: 4931 ldr r1, [pc, #196] ; (137cc <bar_init+0x148>)
|
|
13706: 47a8 blx r5
|
|
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
|
|
13708: 6820 ldr r0, [r4, #0]
|
|
1370a: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
1370c: 2200 movs r2, #0
|
|
1370e: 214c movs r1, #76 ; 0x4c
|
|
13710: 4b2b ldr r3, [pc, #172] ; (137c0 <bar_init+0x13c>)
|
|
13712: 4698 mov r8, r3
|
|
13714: 4798 blx r3
|
|
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50);
|
|
13716: 6820 ldr r0, [r4, #0]
|
|
13718: 3024 adds r0, #36 ; 0x24
|
|
1371a: 227f movs r2, #127 ; 0x7f
|
|
1371c: 2193 movs r1, #147 ; 0x93
|
|
1371e: 0089 lsls r1, r1, #2
|
|
13720: 47c0 blx r8
|
|
lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3);
|
|
13722: 6820 ldr r0, [r4, #0]
|
|
13724: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
|
|
13726: 2203 movs r2, #3
|
|
13728: 2140 movs r1, #64 ; 0x40
|
|
1372a: 4f24 ldr r7, [pc, #144] ; (137bc <bar_init+0x138>)
|
|
1372c: 47b8 blx r7
|
|
lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
1372e: 6820 ldr r0, [r4, #0]
|
|
13730: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
|
|
13732: 2296 movs r2, #150 ; 0x96
|
|
13734: 21b0 movs r1, #176 ; 0xb0
|
|
13736: 47b8 blx r7
|
|
lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
|
|
13738: 6820 ldr r0, [r4, #0]
|
|
1373a: 3024 adds r0, #36 ; 0x24
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
1373c: 224c movs r2, #76 ; 0x4c
|
|
1373e: 21b7 movs r1, #183 ; 0xb7
|
|
13740: 47b8 blx r7
|
|
style_init_reset(&styles->bar_indic);
|
|
13742: 6820 ldr r0, [r4, #0]
|
|
13744: 3028 adds r0, #40 ; 0x28
|
|
13746: 4b1b ldr r3, [pc, #108] ; (137b4 <bar_init+0x130>)
|
|
13748: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
1374a: 6820 ldr r0, [r4, #0]
|
|
1374c: 3028 adds r0, #40 ; 0x28
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
1374e: 22ff movs r2, #255 ; 0xff
|
|
13750: 212c movs r1, #44 ; 0x2c
|
|
13752: 47c0 blx r8
|
|
lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
13754: 6820 ldr r0, [r4, #0]
|
|
13756: 3028 adds r0, #40 ; 0x28
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13758: 4a17 ldr r2, [pc, #92] ; (137b8 <bar_init+0x134>)
|
|
1375a: 2101 movs r1, #1
|
|
1375c: 47b8 blx r7
|
|
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary);
|
|
1375e: 6820 ldr r0, [r4, #0]
|
|
13760: 3028 adds r0, #40 ; 0x28
|
|
13762: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
13764: 2129 movs r1, #41 ; 0x29
|
|
13766: 47a8 blx r5
|
|
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888));
|
|
13768: 6820 ldr r0, [r4, #0]
|
|
1376a: 3028 adds r0, #40 ; 0x28
|
|
1376c: 4b18 ldr r3, [pc, #96] ; (137d0 <bar_init+0x14c>)
|
|
1376e: 881a ldrh r2, [r3, #0]
|
|
13770: 4918 ldr r1, [pc, #96] ; (137d4 <bar_init+0x150>)
|
|
13772: 47a8 blx r5
|
|
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
|
|
13774: 6820 ldr r0, [r4, #0]
|
|
13776: 3028 adds r0, #40 ; 0x28
|
|
13778: 69b3 ldr r3, [r6, #24]
|
|
1377a: 079b lsls r3, r3, #30
|
|
1377c: d414 bmi.n 137a8 <bar_init+0x124>
|
|
1377e: 231f movs r3, #31
|
|
13780: 213f movs r1, #63 ; 0x3f
|
|
13782: 221f movs r2, #31
|
|
13784: 0149 lsls r1, r1, #5
|
|
13786: 02db lsls r3, r3, #11
|
|
13788: 430a orrs r2, r1
|
|
1378a: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
1378c: 2179 movs r1, #121 ; 0x79
|
|
1378e: 4b0e ldr r3, [pc, #56] ; (137c8 <bar_init+0x144>)
|
|
13790: 4798 blx r3
|
|
}
|
|
13792: bc04 pop {r2}
|
|
13794: 4690 mov r8, r2
|
|
13796: bdf0 pop {r4, r5, r6, r7, pc}
|
|
13798: 231a movs r3, #26
|
|
1379a: 2135 movs r1, #53 ; 0x35
|
|
1379c: 221b movs r2, #27
|
|
1379e: e78f b.n 136c0 <bar_init+0x3c>
|
|
137a0: 2306 movs r3, #6
|
|
137a2: 2110 movs r1, #16
|
|
137a4: 2209 movs r2, #9
|
|
137a6: e79c b.n 136e2 <bar_init+0x5e>
|
|
137a8: 2308 movs r3, #8
|
|
137aa: 2110 movs r1, #16
|
|
137ac: 2209 movs r2, #9
|
|
137ae: e7e9 b.n 13784 <bar_init+0x100>
|
|
137b0: 20004c38 .word 0x20004c38
|
|
137b4: 00012495 .word 0x00012495
|
|
137b8: 00007fff .word 0x00007fff
|
|
137bc: 00004cf5 .word 0x00004cf5
|
|
137c0: 00004fb5 .word 0x00004fb5
|
|
137c4: 20004c3c .word 0x20004c3c
|
|
137c8: 00004e55 .word 0x00004e55
|
|
137cc: 00000449 .word 0x00000449
|
|
137d0: 0001c928 .word 0x0001c928
|
|
137d4: 00002029 .word 0x00002029
|
|
|
|
000137d8 <slider_init>:
|
|
{
|
|
137d8: b510 push {r4, lr}
|
|
style_init_reset(&styles->slider_knob);
|
|
137da: 4c9a ldr r4, [pc, #616] ; (13a44 <slider_init+0x26c>)
|
|
137dc: 6820 ldr r0, [r4, #0]
|
|
137de: 3090 adds r0, #144 ; 0x90
|
|
137e0: 4b99 ldr r3, [pc, #612] ; (13a48 <slider_init+0x270>)
|
|
137e2: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
137e4: 6820 ldr r0, [r4, #0]
|
|
137e6: 3090 adds r0, #144 ; 0x90
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
137e8: 22ff movs r2, #255 ; 0xff
|
|
137ea: 212c movs r1, #44 ; 0x2c
|
|
137ec: 4b97 ldr r3, [pc, #604] ; (13a4c <slider_init+0x274>)
|
|
137ee: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
|
|
137f0: 6820 ldr r0, [r4, #0]
|
|
137f2: 3090 adds r0, #144 ; 0x90
|
|
137f4: 4b96 ldr r3, [pc, #600] ; (13a50 <slider_init+0x278>)
|
|
137f6: 699b ldr r3, [r3, #24]
|
|
137f8: 079b lsls r3, r3, #30
|
|
137fa: d400 bmi.n 137fe <slider_init+0x26>
|
|
137fc: e0bb b.n 13976 <slider_init+0x19e>
|
|
137fe: 4b94 ldr r3, [pc, #592] ; (13a50 <slider_init+0x278>)
|
|
13800: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
13802: 2129 movs r1, #41 ; 0x29
|
|
13804: 4b93 ldr r3, [pc, #588] ; (13a54 <slider_init+0x27c>)
|
|
13806: 4798 blx r3
|
|
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
|
|
13808: 4b8e ldr r3, [pc, #568] ; (13a44 <slider_init+0x26c>)
|
|
1380a: 6818 ldr r0, [r3, #0]
|
|
1380c: 3090 adds r0, #144 ; 0x90
|
|
1380e: 4b90 ldr r3, [pc, #576] ; (13a50 <slider_init+0x278>)
|
|
13810: 699b ldr r3, [r3, #24]
|
|
13812: 079b lsls r3, r3, #30
|
|
13814: d500 bpl.n 13818 <slider_init+0x40>
|
|
13816: e0b1 b.n 1397c <slider_init+0x1a4>
|
|
13818: 231f movs r3, #31
|
|
1381a: 213f movs r1, #63 ; 0x3f
|
|
1381c: 221f movs r2, #31
|
|
1381e: 0149 lsls r1, r1, #5
|
|
13820: 02db lsls r3, r3, #11
|
|
13822: 430a orrs r2, r1
|
|
13824: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
|
|
13826: 2179 movs r1, #121 ; 0x79
|
|
13828: 4b8a ldr r3, [pc, #552] ; (13a54 <slider_init+0x27c>)
|
|
1382a: 4798 blx r3
|
|
lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
1382c: 4c85 ldr r4, [pc, #532] ; (13a44 <slider_init+0x26c>)
|
|
1382e: 6820 ldr r0, [r4, #0]
|
|
13830: 3090 adds r0, #144 ; 0x90
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13832: 4a89 ldr r2, [pc, #548] ; (13a58 <slider_init+0x280>)
|
|
13834: 2101 movs r1, #1
|
|
13836: 4b89 ldr r3, [pc, #548] ; (13a5c <slider_init+0x284>)
|
|
13838: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
1383a: 6824 ldr r4, [r4, #0]
|
|
1383c: 3490 adds r4, #144 ; 0x90
|
|
1383e: 2000 movs r0, #0
|
|
13840: 4b87 ldr r3, [pc, #540] ; (13a60 <slider_init+0x288>)
|
|
13842: 4798 blx r3
|
|
13844: 00c3 lsls r3, r0, #3
|
|
13846: 1a18 subs r0, r3, r0
|
|
13848: 3050 adds r0, #80 ; 0x50
|
|
1384a: 2340 movs r3, #64 ; 0x40
|
|
1384c: 33ff adds r3, #255 ; 0xff
|
|
1384e: 2201 movs r2, #1
|
|
13850: 4298 cmp r0, r3
|
|
13852: d900 bls.n 13856 <slider_init+0x7e>
|
|
13854: e096 b.n 13984 <slider_init+0x1ac>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
13856: 2112 movs r1, #18
|
|
13858: 0020 movs r0, r4
|
|
1385a: 4b80 ldr r3, [pc, #512] ; (13a5c <slider_init+0x284>)
|
|
1385c: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
1385e: 4b79 ldr r3, [pc, #484] ; (13a44 <slider_init+0x26c>)
|
|
13860: 681c ldr r4, [r3, #0]
|
|
13862: 3490 adds r4, #144 ; 0x90
|
|
13864: 2000 movs r0, #0
|
|
13866: 4b7e ldr r3, [pc, #504] ; (13a60 <slider_init+0x288>)
|
|
13868: 4798 blx r3
|
|
1386a: 00c3 lsls r3, r0, #3
|
|
1386c: 1a18 subs r0, r3, r0
|
|
1386e: 3050 adds r0, #80 ; 0x50
|
|
13870: 2340 movs r3, #64 ; 0x40
|
|
13872: 33ff adds r3, #255 ; 0xff
|
|
13874: 2201 movs r2, #1
|
|
13876: 4298 cmp r0, r3
|
|
13878: d900 bls.n 1387c <slider_init+0xa4>
|
|
1387a: e08e b.n 1399a <slider_init+0x1c2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
1387c: 2113 movs r1, #19
|
|
1387e: 0020 movs r0, r4
|
|
13880: 4b76 ldr r3, [pc, #472] ; (13a5c <slider_init+0x284>)
|
|
13882: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
13884: 4b6f ldr r3, [pc, #444] ; (13a44 <slider_init+0x26c>)
|
|
13886: 681c ldr r4, [r3, #0]
|
|
13888: 3490 adds r4, #144 ; 0x90
|
|
1388a: 2000 movs r0, #0
|
|
1388c: 4b74 ldr r3, [pc, #464] ; (13a60 <slider_init+0x288>)
|
|
1388e: 4798 blx r3
|
|
13890: 00c3 lsls r3, r0, #3
|
|
13892: 1a18 subs r0, r3, r0
|
|
13894: 3050 adds r0, #80 ; 0x50
|
|
13896: 2340 movs r3, #64 ; 0x40
|
|
13898: 33ff adds r3, #255 ; 0xff
|
|
1389a: 2201 movs r2, #1
|
|
1389c: 4298 cmp r0, r3
|
|
1389e: d900 bls.n 138a2 <slider_init+0xca>
|
|
138a0: e086 b.n 139b0 <slider_init+0x1d8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
138a2: 2110 movs r1, #16
|
|
138a4: 0020 movs r0, r4
|
|
138a6: 4b6d ldr r3, [pc, #436] ; (13a5c <slider_init+0x284>)
|
|
138a8: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
138aa: 4b66 ldr r3, [pc, #408] ; (13a44 <slider_init+0x26c>)
|
|
138ac: 681c ldr r4, [r3, #0]
|
|
138ae: 3490 adds r4, #144 ; 0x90
|
|
138b0: 2000 movs r0, #0
|
|
138b2: 4b6b ldr r3, [pc, #428] ; (13a60 <slider_init+0x288>)
|
|
138b4: 4798 blx r3
|
|
138b6: 00c3 lsls r3, r0, #3
|
|
138b8: 1a18 subs r0, r3, r0
|
|
138ba: 3050 adds r0, #80 ; 0x50
|
|
138bc: 2340 movs r3, #64 ; 0x40
|
|
138be: 33ff adds r3, #255 ; 0xff
|
|
138c0: 2201 movs r2, #1
|
|
138c2: 4298 cmp r0, r3
|
|
138c4: d900 bls.n 138c8 <slider_init+0xf0>
|
|
138c6: e07e b.n 139c6 <slider_init+0x1ee>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
138c8: 2111 movs r1, #17
|
|
138ca: 0020 movs r0, r4
|
|
138cc: 4b63 ldr r3, [pc, #396] ; (13a5c <slider_init+0x284>)
|
|
138ce: 4798 blx r3
|
|
style_init_reset(&styles->slider_bg);
|
|
138d0: 4c5c ldr r4, [pc, #368] ; (13a44 <slider_init+0x26c>)
|
|
138d2: 6820 ldr r0, [r4, #0]
|
|
138d4: 3094 adds r0, #148 ; 0x94
|
|
138d6: 4b5c ldr r3, [pc, #368] ; (13a48 <slider_init+0x270>)
|
|
138d8: 4798 blx r3
|
|
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
138da: 6824 ldr r4, [r4, #0]
|
|
138dc: 3494 adds r4, #148 ; 0x94
|
|
138de: 2000 movs r0, #0
|
|
138e0: 4b5f ldr r3, [pc, #380] ; (13a60 <slider_init+0x288>)
|
|
138e2: 4798 blx r3
|
|
138e4: 0083 lsls r3, r0, #2
|
|
138e6: 181b adds r3, r3, r0
|
|
138e8: 005b lsls r3, r3, #1
|
|
138ea: 3350 adds r3, #80 ; 0x50
|
|
138ec: 2140 movs r1, #64 ; 0x40
|
|
138ee: 31ff adds r1, #255 ; 0xff
|
|
138f0: 2201 movs r2, #1
|
|
138f2: 428b cmp r3, r1
|
|
138f4: d900 bls.n 138f8 <slider_init+0x120>
|
|
138f6: e071 b.n 139dc <slider_init+0x204>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar)
|
|
138f8: 2117 movs r1, #23
|
|
138fa: 0020 movs r0, r4
|
|
138fc: 4b57 ldr r3, [pc, #348] ; (13a5c <slider_init+0x284>)
|
|
138fe: 4798 blx r3
|
|
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13900: 4b50 ldr r3, [pc, #320] ; (13a44 <slider_init+0x26c>)
|
|
13902: 681c ldr r4, [r3, #0]
|
|
13904: 3494 adds r4, #148 ; 0x94
|
|
13906: 2000 movs r0, #0
|
|
13908: 4b55 ldr r3, [pc, #340] ; (13a60 <slider_init+0x288>)
|
|
1390a: 4798 blx r3
|
|
1390c: 0083 lsls r3, r0, #2
|
|
1390e: 181b adds r3, r3, r0
|
|
13910: 005b lsls r3, r3, #1
|
|
13912: 3350 adds r3, #80 ; 0x50
|
|
13914: 2140 movs r1, #64 ; 0x40
|
|
13916: 31ff adds r1, #255 ; 0xff
|
|
13918: 2201 movs r2, #1
|
|
1391a: 428b cmp r3, r1
|
|
1391c: d900 bls.n 13920 <slider_init+0x148>
|
|
1391e: e06a b.n 139f6 <slider_init+0x21e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar)
|
|
13920: 2118 movs r1, #24
|
|
13922: 0020 movs r0, r4
|
|
13924: 4b4d ldr r3, [pc, #308] ; (13a5c <slider_init+0x284>)
|
|
13926: 4798 blx r3
|
|
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13928: 4b46 ldr r3, [pc, #280] ; (13a44 <slider_init+0x26c>)
|
|
1392a: 681c ldr r4, [r3, #0]
|
|
1392c: 3494 adds r4, #148 ; 0x94
|
|
1392e: 2000 movs r0, #0
|
|
13930: 4b4b ldr r3, [pc, #300] ; (13a60 <slider_init+0x288>)
|
|
13932: 4798 blx r3
|
|
13934: 0083 lsls r3, r0, #2
|
|
13936: 181b adds r3, r3, r0
|
|
13938: 005b lsls r3, r3, #1
|
|
1393a: 3350 adds r3, #80 ; 0x50
|
|
1393c: 2140 movs r1, #64 ; 0x40
|
|
1393e: 31ff adds r1, #255 ; 0xff
|
|
13940: 2201 movs r2, #1
|
|
13942: 428b cmp r3, r1
|
|
13944: d864 bhi.n 13a10 <slider_init+0x238>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar)
|
|
13946: 2115 movs r1, #21
|
|
13948: 0020 movs r0, r4
|
|
1394a: 4b44 ldr r3, [pc, #272] ; (13a5c <slider_init+0x284>)
|
|
1394c: 4798 blx r3
|
|
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
1394e: 4b3d ldr r3, [pc, #244] ; (13a44 <slider_init+0x26c>)
|
|
13950: 681c ldr r4, [r3, #0]
|
|
13952: 3494 adds r4, #148 ; 0x94
|
|
13954: 2000 movs r0, #0
|
|
13956: 4b42 ldr r3, [pc, #264] ; (13a60 <slider_init+0x288>)
|
|
13958: 4798 blx r3
|
|
1395a: 0083 lsls r3, r0, #2
|
|
1395c: 181b adds r3, r3, r0
|
|
1395e: 005b lsls r3, r3, #1
|
|
13960: 3350 adds r3, #80 ; 0x50
|
|
13962: 2140 movs r1, #64 ; 0x40
|
|
13964: 31ff adds r1, #255 ; 0xff
|
|
13966: 2201 movs r2, #1
|
|
13968: 428b cmp r3, r1
|
|
1396a: d85e bhi.n 13a2a <slider_init+0x252>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar)
|
|
1396c: 2116 movs r1, #22
|
|
1396e: 0020 movs r0, r4
|
|
13970: 4b3a ldr r3, [pc, #232] ; (13a5c <slider_init+0x284>)
|
|
13972: 4798 blx r3
|
|
}
|
|
13974: bd10 pop {r4, pc}
|
|
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
|
|
13976: 4b3b ldr r3, [pc, #236] ; (13a64 <slider_init+0x28c>)
|
|
13978: 881a ldrh r2, [r3, #0]
|
|
1397a: e742 b.n 13802 <slider_init+0x2a>
|
|
1397c: 2306 movs r3, #6
|
|
1397e: 2110 movs r1, #16
|
|
13980: 2209 movs r2, #9
|
|
13982: e74c b.n 1381e <slider_init+0x46>
|
|
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
13984: 2000 movs r0, #0
|
|
13986: 4b36 ldr r3, [pc, #216] ; (13a60 <slider_init+0x288>)
|
|
13988: 4798 blx r3
|
|
1398a: 00c3 lsls r3, r0, #3
|
|
1398c: 1a18 subs r0, r3, r0
|
|
1398e: 3050 adds r0, #80 ; 0x50
|
|
13990: 21a0 movs r1, #160 ; 0xa0
|
|
13992: 4b35 ldr r3, [pc, #212] ; (13a68 <slider_init+0x290>)
|
|
13994: 4798 blx r3
|
|
13996: b202 sxth r2, r0
|
|
13998: e75d b.n 13856 <slider_init+0x7e>
|
|
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
1399a: 2000 movs r0, #0
|
|
1399c: 4b30 ldr r3, [pc, #192] ; (13a60 <slider_init+0x288>)
|
|
1399e: 4798 blx r3
|
|
139a0: 00c3 lsls r3, r0, #3
|
|
139a2: 1a18 subs r0, r3, r0
|
|
139a4: 3050 adds r0, #80 ; 0x50
|
|
139a6: 21a0 movs r1, #160 ; 0xa0
|
|
139a8: 4b2f ldr r3, [pc, #188] ; (13a68 <slider_init+0x290>)
|
|
139aa: 4798 blx r3
|
|
139ac: b202 sxth r2, r0
|
|
139ae: e765 b.n 1387c <slider_init+0xa4>
|
|
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
139b0: 2000 movs r0, #0
|
|
139b2: 4b2b ldr r3, [pc, #172] ; (13a60 <slider_init+0x288>)
|
|
139b4: 4798 blx r3
|
|
139b6: 00c3 lsls r3, r0, #3
|
|
139b8: 1a18 subs r0, r3, r0
|
|
139ba: 3050 adds r0, #80 ; 0x50
|
|
139bc: 21a0 movs r1, #160 ; 0xa0
|
|
139be: 4b2a ldr r3, [pc, #168] ; (13a68 <slider_init+0x290>)
|
|
139c0: 4798 blx r3
|
|
139c2: b202 sxth r2, r0
|
|
139c4: e76d b.n 138a2 <slider_init+0xca>
|
|
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
|
|
139c6: 2000 movs r0, #0
|
|
139c8: 4b25 ldr r3, [pc, #148] ; (13a60 <slider_init+0x288>)
|
|
139ca: 4798 blx r3
|
|
139cc: 00c3 lsls r3, r0, #3
|
|
139ce: 1a18 subs r0, r3, r0
|
|
139d0: 3050 adds r0, #80 ; 0x50
|
|
139d2: 21a0 movs r1, #160 ; 0xa0
|
|
139d4: 4b24 ldr r3, [pc, #144] ; (13a68 <slider_init+0x290>)
|
|
139d6: 4798 blx r3
|
|
139d8: b202 sxth r2, r0
|
|
139da: e775 b.n 138c8 <slider_init+0xf0>
|
|
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
139dc: 2000 movs r0, #0
|
|
139de: 4b20 ldr r3, [pc, #128] ; (13a60 <slider_init+0x288>)
|
|
139e0: 4798 blx r3
|
|
139e2: 0003 movs r3, r0
|
|
139e4: 0080 lsls r0, r0, #2
|
|
139e6: 18c0 adds r0, r0, r3
|
|
139e8: 0040 lsls r0, r0, #1
|
|
139ea: 3050 adds r0, #80 ; 0x50
|
|
139ec: 21a0 movs r1, #160 ; 0xa0
|
|
139ee: 4b1e ldr r3, [pc, #120] ; (13a68 <slider_init+0x290>)
|
|
139f0: 4798 blx r3
|
|
139f2: b202 sxth r2, r0
|
|
139f4: e780 b.n 138f8 <slider_init+0x120>
|
|
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
139f6: 2000 movs r0, #0
|
|
139f8: 4b19 ldr r3, [pc, #100] ; (13a60 <slider_init+0x288>)
|
|
139fa: 4798 blx r3
|
|
139fc: 0003 movs r3, r0
|
|
139fe: 0080 lsls r0, r0, #2
|
|
13a00: 18c0 adds r0, r0, r3
|
|
13a02: 0040 lsls r0, r0, #1
|
|
13a04: 3050 adds r0, #80 ; 0x50
|
|
13a06: 21a0 movs r1, #160 ; 0xa0
|
|
13a08: 4b17 ldr r3, [pc, #92] ; (13a68 <slider_init+0x290>)
|
|
13a0a: 4798 blx r3
|
|
13a0c: b202 sxth r2, r0
|
|
13a0e: e787 b.n 13920 <slider_init+0x148>
|
|
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13a10: 2000 movs r0, #0
|
|
13a12: 4b13 ldr r3, [pc, #76] ; (13a60 <slider_init+0x288>)
|
|
13a14: 4798 blx r3
|
|
13a16: 0003 movs r3, r0
|
|
13a18: 0080 lsls r0, r0, #2
|
|
13a1a: 18c0 adds r0, r0, r3
|
|
13a1c: 0040 lsls r0, r0, #1
|
|
13a1e: 3050 adds r0, #80 ; 0x50
|
|
13a20: 21a0 movs r1, #160 ; 0xa0
|
|
13a22: 4b11 ldr r3, [pc, #68] ; (13a68 <slider_init+0x290>)
|
|
13a24: 4798 blx r3
|
|
13a26: b202 sxth r2, r0
|
|
13a28: e78d b.n 13946 <slider_init+0x16e>
|
|
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13a2a: 2000 movs r0, #0
|
|
13a2c: 4b0c ldr r3, [pc, #48] ; (13a60 <slider_init+0x288>)
|
|
13a2e: 4798 blx r3
|
|
13a30: 0003 movs r3, r0
|
|
13a32: 0080 lsls r0, r0, #2
|
|
13a34: 18c0 adds r0, r0, r3
|
|
13a36: 0040 lsls r0, r0, #1
|
|
13a38: 3050 adds r0, #80 ; 0x50
|
|
13a3a: 21a0 movs r1, #160 ; 0xa0
|
|
13a3c: 4b0a ldr r3, [pc, #40] ; (13a68 <slider_init+0x290>)
|
|
13a3e: 4798 blx r3
|
|
13a40: b202 sxth r2, r0
|
|
13a42: e793 b.n 1396c <slider_init+0x194>
|
|
13a44: 20004c38 .word 0x20004c38
|
|
13a48: 00012495 .word 0x00012495
|
|
13a4c: 00004fb5 .word 0x00004fb5
|
|
13a50: 20004c3c .word 0x20004c3c
|
|
13a54: 00004e55 .word 0x00004e55
|
|
13a58: 00007fff .word 0x00007fff
|
|
13a5c: 00004cf5 .word 0x00004cf5
|
|
13a60: 0000f665 .word 0x0000f665
|
|
13a64: 0001c92c .word 0x0001c92c
|
|
13a68: 00017881 .word 0x00017881
|
|
|
|
00013a6c <switch_init>:
|
|
{
|
|
13a6c: b510 push {r4, lr}
|
|
style_init_reset(&styles->sw_knob);
|
|
13a6e: 4c46 ldr r4, [pc, #280] ; (13b88 <switch_init+0x11c>)
|
|
13a70: 6820 ldr r0, [r4, #0]
|
|
13a72: 309c adds r0, #156 ; 0x9c
|
|
13a74: 4b45 ldr r3, [pc, #276] ; (13b8c <switch_init+0x120>)
|
|
13a76: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
13a78: 6820 ldr r0, [r4, #0]
|
|
13a7a: 309c adds r0, #156 ; 0x9c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
13a7c: 22ff movs r2, #255 ; 0xff
|
|
13a7e: 212c movs r1, #44 ; 0x2c
|
|
13a80: 4b43 ldr r3, [pc, #268] ; (13b90 <switch_init+0x124>)
|
|
13a82: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
|
13a84: 6820 ldr r0, [r4, #0]
|
|
13a86: 309c adds r0, #156 ; 0x9c
|
|
13a88: 4b42 ldr r3, [pc, #264] ; (13b94 <switch_init+0x128>)
|
|
13a8a: 881a ldrh r2, [r3, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
13a8c: 2129 movs r1, #41 ; 0x29
|
|
13a8e: 4b42 ldr r3, [pc, #264] ; (13b98 <switch_init+0x12c>)
|
|
13a90: 4798 blx r3
|
|
lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
13a92: 6820 ldr r0, [r4, #0]
|
|
13a94: 309c adds r0, #156 ; 0x9c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13a96: 4a41 ldr r2, [pc, #260] ; (13b9c <switch_init+0x130>)
|
|
13a98: 2101 movs r1, #1
|
|
13a9a: 4b41 ldr r3, [pc, #260] ; (13ba0 <switch_init+0x134>)
|
|
13a9c: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13a9e: 6824 ldr r4, [r4, #0]
|
|
13aa0: 349c adds r4, #156 ; 0x9c
|
|
13aa2: 2000 movs r0, #0
|
|
13aa4: 4b3f ldr r3, [pc, #252] ; (13ba4 <switch_init+0x138>)
|
|
13aa6: 4798 blx r3
|
|
13aa8: 3014 adds r0, #20
|
|
13aaa: 0080 lsls r0, r0, #2
|
|
13aac: 2340 movs r3, #64 ; 0x40
|
|
13aae: 33ff adds r3, #255 ; 0xff
|
|
13ab0: 4298 cmp r0, r3
|
|
13ab2: d83c bhi.n 13b2e <switch_init+0xc2>
|
|
13ab4: 2201 movs r2, #1
|
|
13ab6: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
13ab8: 2110 movs r1, #16
|
|
13aba: 0020 movs r0, r4
|
|
13abc: 4b38 ldr r3, [pc, #224] ; (13ba0 <switch_init+0x134>)
|
|
13abe: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13ac0: 4b31 ldr r3, [pc, #196] ; (13b88 <switch_init+0x11c>)
|
|
13ac2: 681c ldr r4, [r3, #0]
|
|
13ac4: 349c adds r4, #156 ; 0x9c
|
|
13ac6: 2000 movs r0, #0
|
|
13ac8: 4b36 ldr r3, [pc, #216] ; (13ba4 <switch_init+0x138>)
|
|
13aca: 4798 blx r3
|
|
13acc: 3014 adds r0, #20
|
|
13ace: 0080 lsls r0, r0, #2
|
|
13ad0: 2340 movs r3, #64 ; 0x40
|
|
13ad2: 33ff adds r3, #255 ; 0xff
|
|
13ad4: 4298 cmp r0, r3
|
|
13ad6: d835 bhi.n 13b44 <switch_init+0xd8>
|
|
13ad8: 2201 movs r2, #1
|
|
13ada: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
13adc: 2111 movs r1, #17
|
|
13ade: 0020 movs r0, r4
|
|
13ae0: 4b2f ldr r3, [pc, #188] ; (13ba0 <switch_init+0x134>)
|
|
13ae2: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13ae4: 4b28 ldr r3, [pc, #160] ; (13b88 <switch_init+0x11c>)
|
|
13ae6: 681c ldr r4, [r3, #0]
|
|
13ae8: 349c adds r4, #156 ; 0x9c
|
|
13aea: 2000 movs r0, #0
|
|
13aec: 4b2d ldr r3, [pc, #180] ; (13ba4 <switch_init+0x138>)
|
|
13aee: 4798 blx r3
|
|
13af0: 3014 adds r0, #20
|
|
13af2: 0080 lsls r0, r0, #2
|
|
13af4: 2340 movs r3, #64 ; 0x40
|
|
13af6: 33ff adds r3, #255 ; 0xff
|
|
13af8: 4298 cmp r0, r3
|
|
13afa: d82e bhi.n 13b5a <switch_init+0xee>
|
|
13afc: 2201 movs r2, #1
|
|
13afe: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
13b00: 2112 movs r1, #18
|
|
13b02: 0020 movs r0, r4
|
|
13b04: 4b26 ldr r3, [pc, #152] ; (13ba0 <switch_init+0x134>)
|
|
13b06: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13b08: 4b1f ldr r3, [pc, #124] ; (13b88 <switch_init+0x11c>)
|
|
13b0a: 681c ldr r4, [r3, #0]
|
|
13b0c: 349c adds r4, #156 ; 0x9c
|
|
13b0e: 2000 movs r0, #0
|
|
13b10: 4b24 ldr r3, [pc, #144] ; (13ba4 <switch_init+0x138>)
|
|
13b12: 4798 blx r3
|
|
13b14: 3014 adds r0, #20
|
|
13b16: 0080 lsls r0, r0, #2
|
|
13b18: 2340 movs r3, #64 ; 0x40
|
|
13b1a: 33ff adds r3, #255 ; 0xff
|
|
13b1c: 4298 cmp r0, r3
|
|
13b1e: d827 bhi.n 13b70 <switch_init+0x104>
|
|
13b20: 2201 movs r2, #1
|
|
13b22: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
13b24: 2113 movs r1, #19
|
|
13b26: 0020 movs r0, r4
|
|
13b28: 4b1d ldr r3, [pc, #116] ; (13ba0 <switch_init+0x134>)
|
|
13b2a: 4798 blx r3
|
|
}
|
|
13b2c: bd10 pop {r4, pc}
|
|
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13b2e: 2000 movs r0, #0
|
|
13b30: 4b1c ldr r3, [pc, #112] ; (13ba4 <switch_init+0x138>)
|
|
13b32: 4798 blx r3
|
|
13b34: 3014 adds r0, #20
|
|
13b36: 0080 lsls r0, r0, #2
|
|
13b38: 21a0 movs r1, #160 ; 0xa0
|
|
13b3a: 4b1b ldr r3, [pc, #108] ; (13ba8 <switch_init+0x13c>)
|
|
13b3c: 4798 blx r3
|
|
13b3e: 4242 negs r2, r0
|
|
13b40: b212 sxth r2, r2
|
|
13b42: e7b9 b.n 13ab8 <switch_init+0x4c>
|
|
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13b44: 2000 movs r0, #0
|
|
13b46: 4b17 ldr r3, [pc, #92] ; (13ba4 <switch_init+0x138>)
|
|
13b48: 4798 blx r3
|
|
13b4a: 3014 adds r0, #20
|
|
13b4c: 0080 lsls r0, r0, #2
|
|
13b4e: 21a0 movs r1, #160 ; 0xa0
|
|
13b50: 4b15 ldr r3, [pc, #84] ; (13ba8 <switch_init+0x13c>)
|
|
13b52: 4798 blx r3
|
|
13b54: 4242 negs r2, r0
|
|
13b56: b212 sxth r2, r2
|
|
13b58: e7c0 b.n 13adc <switch_init+0x70>
|
|
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13b5a: 2000 movs r0, #0
|
|
13b5c: 4b11 ldr r3, [pc, #68] ; (13ba4 <switch_init+0x138>)
|
|
13b5e: 4798 blx r3
|
|
13b60: 3014 adds r0, #20
|
|
13b62: 0080 lsls r0, r0, #2
|
|
13b64: 21a0 movs r1, #160 ; 0xa0
|
|
13b66: 4b10 ldr r3, [pc, #64] ; (13ba8 <switch_init+0x13c>)
|
|
13b68: 4798 blx r3
|
|
13b6a: 4242 negs r2, r0
|
|
13b6c: b212 sxth r2, r2
|
|
13b6e: e7c7 b.n 13b00 <switch_init+0x94>
|
|
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
|
|
13b70: 2000 movs r0, #0
|
|
13b72: 4b0c ldr r3, [pc, #48] ; (13ba4 <switch_init+0x138>)
|
|
13b74: 4798 blx r3
|
|
13b76: 3014 adds r0, #20
|
|
13b78: 0080 lsls r0, r0, #2
|
|
13b7a: 21a0 movs r1, #160 ; 0xa0
|
|
13b7c: 4b0a ldr r3, [pc, #40] ; (13ba8 <switch_init+0x13c>)
|
|
13b7e: 4798 blx r3
|
|
13b80: 4242 negs r2, r0
|
|
13b82: b212 sxth r2, r2
|
|
13b84: e7ce b.n 13b24 <switch_init+0xb8>
|
|
13b86: 46c0 nop ; (mov r8, r8)
|
|
13b88: 20004c38 .word 0x20004c38
|
|
13b8c: 00012495 .word 0x00012495
|
|
13b90: 00004fb5 .word 0x00004fb5
|
|
13b94: 0001c92c .word 0x0001c92c
|
|
13b98: 00004e55 .word 0x00004e55
|
|
13b9c: 00007fff .word 0x00007fff
|
|
13ba0: 00004cf5 .word 0x00004cf5
|
|
13ba4: 0000f665 .word 0x0000f665
|
|
13ba8: 00017881 .word 0x00017881
|
|
|
|
00013bac <linemeter_init>:
|
|
{
|
|
13bac: b570 push {r4, r5, r6, lr}
|
|
style_init_reset(&styles->lmeter);
|
|
13bae: 4c7f ldr r4, [pc, #508] ; (13dac <linemeter_init+0x200>)
|
|
13bb0: 6820 ldr r0, [r4, #0]
|
|
13bb2: 3070 adds r0, #112 ; 0x70
|
|
13bb4: 4b7e ldr r3, [pc, #504] ; (13db0 <linemeter_init+0x204>)
|
|
13bb6: 4798 blx r3
|
|
lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
13bb8: 6820 ldr r0, [r4, #0]
|
|
13bba: 3070 adds r0, #112 ; 0x70
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13bbc: 4a7d ldr r2, [pc, #500] ; (13db4 <linemeter_init+0x208>)
|
|
13bbe: 2101 movs r1, #1
|
|
13bc0: 4b7d ldr r3, [pc, #500] ; (13db8 <linemeter_init+0x20c>)
|
|
13bc2: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13bc4: 6824 ldr r4, [r4, #0]
|
|
13bc6: 3470 adds r4, #112 ; 0x70
|
|
13bc8: 2000 movs r0, #0
|
|
13bca: 4b7c ldr r3, [pc, #496] ; (13dbc <linemeter_init+0x210>)
|
|
13bcc: 4798 blx r3
|
|
13bce: 0083 lsls r3, r0, #2
|
|
13bd0: 181b adds r3, r3, r0
|
|
13bd2: 009b lsls r3, r3, #2
|
|
13bd4: 3350 adds r3, #80 ; 0x50
|
|
13bd6: 2140 movs r1, #64 ; 0x40
|
|
13bd8: 31ff adds r1, #255 ; 0xff
|
|
13bda: 2201 movs r2, #1
|
|
13bdc: 428b cmp r3, r1
|
|
13bde: d900 bls.n 13be2 <linemeter_init+0x36>
|
|
13be0: e08c b.n 13cfc <linemeter_init+0x150>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
13be2: 2112 movs r1, #18
|
|
13be4: 0020 movs r0, r4
|
|
13be6: 4b74 ldr r3, [pc, #464] ; (13db8 <linemeter_init+0x20c>)
|
|
13be8: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13bea: 4b70 ldr r3, [pc, #448] ; (13dac <linemeter_init+0x200>)
|
|
13bec: 681c ldr r4, [r3, #0]
|
|
13bee: 3470 adds r4, #112 ; 0x70
|
|
13bf0: 2000 movs r0, #0
|
|
13bf2: 4b72 ldr r3, [pc, #456] ; (13dbc <linemeter_init+0x210>)
|
|
13bf4: 4798 blx r3
|
|
13bf6: 0083 lsls r3, r0, #2
|
|
13bf8: 181b adds r3, r3, r0
|
|
13bfa: 009b lsls r3, r3, #2
|
|
13bfc: 3350 adds r3, #80 ; 0x50
|
|
13bfe: 2140 movs r1, #64 ; 0x40
|
|
13c00: 31ff adds r1, #255 ; 0xff
|
|
13c02: 2201 movs r2, #1
|
|
13c04: 428b cmp r3, r1
|
|
13c06: d900 bls.n 13c0a <linemeter_init+0x5e>
|
|
13c08: e085 b.n 13d16 <linemeter_init+0x16a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
13c0a: 2113 movs r1, #19
|
|
13c0c: 0020 movs r0, r4
|
|
13c0e: 4b6a ldr r3, [pc, #424] ; (13db8 <linemeter_init+0x20c>)
|
|
13c10: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13c12: 4b66 ldr r3, [pc, #408] ; (13dac <linemeter_init+0x200>)
|
|
13c14: 681c ldr r4, [r3, #0]
|
|
13c16: 3470 adds r4, #112 ; 0x70
|
|
13c18: 2000 movs r0, #0
|
|
13c1a: 4b68 ldr r3, [pc, #416] ; (13dbc <linemeter_init+0x210>)
|
|
13c1c: 4798 blx r3
|
|
13c1e: 0083 lsls r3, r0, #2
|
|
13c20: 181b adds r3, r3, r0
|
|
13c22: 009b lsls r3, r3, #2
|
|
13c24: 3350 adds r3, #80 ; 0x50
|
|
13c26: 2140 movs r1, #64 ; 0x40
|
|
13c28: 31ff adds r1, #255 ; 0xff
|
|
13c2a: 2201 movs r2, #1
|
|
13c2c: 428b cmp r3, r1
|
|
13c2e: d900 bls.n 13c32 <linemeter_init+0x86>
|
|
13c30: e07e b.n 13d30 <linemeter_init+0x184>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
13c32: 2110 movs r1, #16
|
|
13c34: 0020 movs r0, r4
|
|
13c36: 4b60 ldr r3, [pc, #384] ; (13db8 <linemeter_init+0x20c>)
|
|
13c38: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
|
|
13c3a: 4b5c ldr r3, [pc, #368] ; (13dac <linemeter_init+0x200>)
|
|
13c3c: 681c ldr r4, [r3, #0]
|
|
13c3e: 3470 adds r4, #112 ; 0x70
|
|
13c40: 2000 movs r0, #0
|
|
13c42: 4b5e ldr r3, [pc, #376] ; (13dbc <linemeter_init+0x210>)
|
|
13c44: 4798 blx r3
|
|
13c46: 0103 lsls r3, r0, #4
|
|
13c48: 1a1b subs r3, r3, r0
|
|
13c4a: 005b lsls r3, r3, #1
|
|
13c4c: 3350 adds r3, #80 ; 0x50
|
|
13c4e: 2140 movs r1, #64 ; 0x40
|
|
13c50: 31ff adds r1, #255 ; 0xff
|
|
13c52: 2201 movs r2, #1
|
|
13c54: 428b cmp r3, r1
|
|
13c56: d900 bls.n 13c5a <linemeter_init+0xae>
|
|
13c58: e077 b.n 13d4a <linemeter_init+0x19e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
13c5a: 2114 movs r1, #20
|
|
13c5c: 0020 movs r0, r4
|
|
13c5e: 4b56 ldr r3, [pc, #344] ; (13db8 <linemeter_init+0x20c>)
|
|
13c60: 4798 blx r3
|
|
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
|
|
13c62: 4b52 ldr r3, [pc, #328] ; (13dac <linemeter_init+0x200>)
|
|
13c64: 681c ldr r4, [r3, #0]
|
|
13c66: 3470 adds r4, #112 ; 0x70
|
|
13c68: 2000 movs r0, #0
|
|
13c6a: 4b54 ldr r3, [pc, #336] ; (13dbc <linemeter_init+0x210>)
|
|
13c6c: 4798 blx r3
|
|
13c6e: 0083 lsls r3, r0, #2
|
|
13c70: 1818 adds r0, r3, r0
|
|
13c72: 0083 lsls r3, r0, #2
|
|
13c74: 18c0 adds r0, r0, r3
|
|
13c76: 3050 adds r0, #80 ; 0x50
|
|
13c78: 2340 movs r3, #64 ; 0x40
|
|
13c7a: 33ff adds r3, #255 ; 0xff
|
|
13c7c: 2201 movs r2, #1
|
|
13c7e: 4298 cmp r0, r3
|
|
13c80: d900 bls.n 13c84 <linemeter_init+0xd8>
|
|
13c82: e06e b.n 13d62 <linemeter_init+0x1b6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
|
|
#else
|
|
/*For compatibility*/
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, const void *, _ptr, scalar)
|
|
#endif
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
|
|
13c84: 21c0 movs r1, #192 ; 0xc0
|
|
13c86: 0020 movs r0, r4
|
|
13c88: 4b4b ldr r3, [pc, #300] ; (13db8 <linemeter_init+0x20c>)
|
|
13c8a: 4798 blx r3
|
|
lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
|
|
13c8c: 4c47 ldr r4, [pc, #284] ; (13dac <linemeter_init+0x200>)
|
|
13c8e: 6820 ldr r0, [r4, #0]
|
|
13c90: 3070 adds r0, #112 ; 0x70
|
|
13c92: 4e4b ldr r6, [pc, #300] ; (13dc0 <linemeter_init+0x214>)
|
|
13c94: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
13c96: 2199 movs r1, #153 ; 0x99
|
|
13c98: 4d4a ldr r5, [pc, #296] ; (13dc4 <linemeter_init+0x218>)
|
|
13c9a: 47a8 blx r5
|
|
lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
|
|
13c9c: 6820 ldr r0, [r4, #0]
|
|
13c9e: 3070 adds r0, #112 ; 0x70
|
|
13ca0: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_BORDER_WIDTH, scale_border_width, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
|
|
13ca2: 21c9 movs r1, #201 ; 0xc9
|
|
13ca4: 47a8 blx r5
|
|
lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
13ca6: 6820 ldr r0, [r4, #0]
|
|
13ca8: 3070 adds r0, #112 ; 0x70
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
|
|
13caa: 4b47 ldr r3, [pc, #284] ; (13dc8 <linemeter_init+0x21c>)
|
|
13cac: 881a ldrh r2, [r3, #0]
|
|
13cae: 21ca movs r1, #202 ; 0xca
|
|
13cb0: 47a8 blx r5
|
|
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13cb2: 6824 ldr r4, [r4, #0]
|
|
13cb4: 3470 adds r4, #112 ; 0x70
|
|
13cb6: 2000 movs r0, #0
|
|
13cb8: 4b40 ldr r3, [pc, #256] ; (13dbc <linemeter_init+0x210>)
|
|
13cba: 4798 blx r3
|
|
13cbc: 0083 lsls r3, r0, #2
|
|
13cbe: 181b adds r3, r3, r0
|
|
13cc0: 005b lsls r3, r3, #1
|
|
13cc2: 3350 adds r3, #80 ; 0x50
|
|
13cc4: 2140 movs r1, #64 ; 0x40
|
|
13cc6: 31ff adds r1, #255 ; 0xff
|
|
13cc8: 2201 movs r2, #1
|
|
13cca: 428b cmp r3, r1
|
|
13ccc: d856 bhi.n 13d7c <linemeter_init+0x1d0>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
13cce: 2190 movs r1, #144 ; 0x90
|
|
13cd0: 0020 movs r0, r4
|
|
13cd2: 4b39 ldr r3, [pc, #228] ; (13db8 <linemeter_init+0x20c>)
|
|
13cd4: 4798 blx r3
|
|
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
|
|
13cd6: 4b35 ldr r3, [pc, #212] ; (13dac <linemeter_init+0x200>)
|
|
13cd8: 681c ldr r4, [r3, #0]
|
|
13cda: 3470 adds r4, #112 ; 0x70
|
|
13cdc: 2000 movs r0, #0
|
|
13cde: 4b37 ldr r3, [pc, #220] ; (13dbc <linemeter_init+0x210>)
|
|
13ce0: 4798 blx r3
|
|
13ce2: 00c3 lsls r3, r0, #3
|
|
13ce4: 1a18 subs r0, r3, r0
|
|
13ce6: 3050 adds r0, #80 ; 0x50
|
|
13ce8: 2340 movs r3, #64 ; 0x40
|
|
13cea: 33ff adds r3, #255 ; 0xff
|
|
13cec: 2201 movs r2, #1
|
|
13cee: 4298 cmp r0, r3
|
|
13cf0: d851 bhi.n 13d96 <linemeter_init+0x1ea>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
|
|
13cf2: 21c3 movs r1, #195 ; 0xc3
|
|
13cf4: 0020 movs r0, r4
|
|
13cf6: 4b30 ldr r3, [pc, #192] ; (13db8 <linemeter_init+0x20c>)
|
|
13cf8: 4798 blx r3
|
|
}
|
|
13cfa: bd70 pop {r4, r5, r6, pc}
|
|
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13cfc: 2000 movs r0, #0
|
|
13cfe: 4b2f ldr r3, [pc, #188] ; (13dbc <linemeter_init+0x210>)
|
|
13d00: 4798 blx r3
|
|
13d02: 0003 movs r3, r0
|
|
13d04: 0080 lsls r0, r0, #2
|
|
13d06: 18c0 adds r0, r0, r3
|
|
13d08: 0080 lsls r0, r0, #2
|
|
13d0a: 3050 adds r0, #80 ; 0x50
|
|
13d0c: 21a0 movs r1, #160 ; 0xa0
|
|
13d0e: 4b2f ldr r3, [pc, #188] ; (13dcc <linemeter_init+0x220>)
|
|
13d10: 4798 blx r3
|
|
13d12: b202 sxth r2, r0
|
|
13d14: e765 b.n 13be2 <linemeter_init+0x36>
|
|
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13d16: 2000 movs r0, #0
|
|
13d18: 4b28 ldr r3, [pc, #160] ; (13dbc <linemeter_init+0x210>)
|
|
13d1a: 4798 blx r3
|
|
13d1c: 0003 movs r3, r0
|
|
13d1e: 0080 lsls r0, r0, #2
|
|
13d20: 18c0 adds r0, r0, r3
|
|
13d22: 0080 lsls r0, r0, #2
|
|
13d24: 3050 adds r0, #80 ; 0x50
|
|
13d26: 21a0 movs r1, #160 ; 0xa0
|
|
13d28: 4b28 ldr r3, [pc, #160] ; (13dcc <linemeter_init+0x220>)
|
|
13d2a: 4798 blx r3
|
|
13d2c: b202 sxth r2, r0
|
|
13d2e: e76c b.n 13c0a <linemeter_init+0x5e>
|
|
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13d30: 2000 movs r0, #0
|
|
13d32: 4b22 ldr r3, [pc, #136] ; (13dbc <linemeter_init+0x210>)
|
|
13d34: 4798 blx r3
|
|
13d36: 0003 movs r3, r0
|
|
13d38: 0080 lsls r0, r0, #2
|
|
13d3a: 18c0 adds r0, r0, r3
|
|
13d3c: 0080 lsls r0, r0, #2
|
|
13d3e: 3050 adds r0, #80 ; 0x50
|
|
13d40: 21a0 movs r1, #160 ; 0xa0
|
|
13d42: 4b22 ldr r3, [pc, #136] ; (13dcc <linemeter_init+0x220>)
|
|
13d44: 4798 blx r3
|
|
13d46: b202 sxth r2, r0
|
|
13d48: e773 b.n 13c32 <linemeter_init+0x86>
|
|
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
|
|
13d4a: 2000 movs r0, #0
|
|
13d4c: 4b1b ldr r3, [pc, #108] ; (13dbc <linemeter_init+0x210>)
|
|
13d4e: 4798 blx r3
|
|
13d50: 0103 lsls r3, r0, #4
|
|
13d52: 1a18 subs r0, r3, r0
|
|
13d54: 0040 lsls r0, r0, #1
|
|
13d56: 3050 adds r0, #80 ; 0x50
|
|
13d58: 21a0 movs r1, #160 ; 0xa0
|
|
13d5a: 4b1c ldr r3, [pc, #112] ; (13dcc <linemeter_init+0x220>)
|
|
13d5c: 4798 blx r3
|
|
13d5e: b202 sxth r2, r0
|
|
13d60: e77b b.n 13c5a <linemeter_init+0xae>
|
|
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
|
|
13d62: 2000 movs r0, #0
|
|
13d64: 4b15 ldr r3, [pc, #84] ; (13dbc <linemeter_init+0x210>)
|
|
13d66: 4798 blx r3
|
|
13d68: 0083 lsls r3, r0, #2
|
|
13d6a: 1818 adds r0, r3, r0
|
|
13d6c: 0083 lsls r3, r0, #2
|
|
13d6e: 18c0 adds r0, r0, r3
|
|
13d70: 3050 adds r0, #80 ; 0x50
|
|
13d72: 21a0 movs r1, #160 ; 0xa0
|
|
13d74: 4b15 ldr r3, [pc, #84] ; (13dcc <linemeter_init+0x220>)
|
|
13d76: 4798 blx r3
|
|
13d78: b202 sxth r2, r0
|
|
13d7a: e783 b.n 13c84 <linemeter_init+0xd8>
|
|
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
|
|
13d7c: 2000 movs r0, #0
|
|
13d7e: 4b0f ldr r3, [pc, #60] ; (13dbc <linemeter_init+0x210>)
|
|
13d80: 4798 blx r3
|
|
13d82: 0003 movs r3, r0
|
|
13d84: 0080 lsls r0, r0, #2
|
|
13d86: 18c0 adds r0, r0, r3
|
|
13d88: 0040 lsls r0, r0, #1
|
|
13d8a: 3050 adds r0, #80 ; 0x50
|
|
13d8c: 21a0 movs r1, #160 ; 0xa0
|
|
13d8e: 4b0f ldr r3, [pc, #60] ; (13dcc <linemeter_init+0x220>)
|
|
13d90: 4798 blx r3
|
|
13d92: b202 sxth r2, r0
|
|
13d94: e79b b.n 13cce <linemeter_init+0x122>
|
|
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
|
|
13d96: 2000 movs r0, #0
|
|
13d98: 4b08 ldr r3, [pc, #32] ; (13dbc <linemeter_init+0x210>)
|
|
13d9a: 4798 blx r3
|
|
13d9c: 00c3 lsls r3, r0, #3
|
|
13d9e: 1a18 subs r0, r3, r0
|
|
13da0: 3050 adds r0, #80 ; 0x50
|
|
13da2: 21a0 movs r1, #160 ; 0xa0
|
|
13da4: 4b09 ldr r3, [pc, #36] ; (13dcc <linemeter_init+0x220>)
|
|
13da6: 4798 blx r3
|
|
13da8: b202 sxth r2, r0
|
|
13daa: e7a2 b.n 13cf2 <linemeter_init+0x146>
|
|
13dac: 20004c38 .word 0x20004c38
|
|
13db0: 00012495 .word 0x00012495
|
|
13db4: 00007fff .word 0x00007fff
|
|
13db8: 00004cf5 .word 0x00004cf5
|
|
13dbc: 0000f665 .word 0x0000f665
|
|
13dc0: 20004c3c .word 0x20004c3c
|
|
13dc4: 00004e55 .word 0x00004e55
|
|
13dc8: 0001c928 .word 0x0001c928
|
|
13dcc: 00017881 .word 0x00017881
|
|
|
|
00013dd0 <gauge_init>:
|
|
{
|
|
13dd0: b5f0 push {r4, r5, r6, r7, lr}
|
|
13dd2: 46c6 mov lr, r8
|
|
13dd4: b500 push {lr}
|
|
style_init_reset(&styles->gauge_main);
|
|
13dd6: 4de3 ldr r5, [pc, #908] ; (14164 <gauge_init+0x394>)
|
|
13dd8: 6828 ldr r0, [r5, #0]
|
|
13dda: 305c adds r0, #92 ; 0x5c
|
|
13ddc: 4be2 ldr r3, [pc, #904] ; (14168 <gauge_init+0x398>)
|
|
13dde: 4798 blx r3
|
|
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
13de0: 6828 ldr r0, [r5, #0]
|
|
13de2: 305c adds r0, #92 ; 0x5c
|
|
13de4: 2711 movs r7, #17
|
|
13de6: 2488 movs r4, #136 ; 0x88
|
|
13de8: 00e4 lsls r4, r4, #3
|
|
13dea: 0022 movs r2, r4
|
|
13dec: 433a orrs r2, r7
|
|
13dee: 0552 lsls r2, r2, #21
|
|
13df0: 0d52 lsrs r2, r2, #21
|
|
13df2: 4ede ldr r6, [pc, #888] ; (1416c <gauge_init+0x39c>)
|
|
13df4: 4332 orrs r2, r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
13df6: 2199 movs r1, #153 ; 0x99
|
|
13df8: 4bdd ldr r3, [pc, #884] ; (14170 <gauge_init+0x3a0>)
|
|
13dfa: 4698 mov r8, r3
|
|
13dfc: 4798 blx r3
|
|
lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
13dfe: 6828 ldr r0, [r5, #0]
|
|
13e00: 305c adds r0, #92 ; 0x5c
|
|
13e02: 0022 movs r2, r4
|
|
13e04: 433a orrs r2, r7
|
|
13e06: 0552 lsls r2, r2, #21
|
|
13e08: 0d52 lsrs r2, r2, #21
|
|
13e0a: 4332 orrs r2, r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
|
|
13e0c: 21c9 movs r1, #201 ; 0xc9
|
|
13e0e: 47c0 blx r8
|
|
lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary);
|
|
13e10: 6828 ldr r0, [r5, #0]
|
|
13e12: 305c adds r0, #92 ; 0x5c
|
|
13e14: 4bd7 ldr r3, [pc, #860] ; (14174 <gauge_init+0x3a4>)
|
|
13e16: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
|
|
13e18: 21ca movs r1, #202 ; 0xca
|
|
13e1a: 47c0 blx r8
|
|
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
|
|
13e1c: 682c ldr r4, [r5, #0]
|
|
13e1e: 345c adds r4, #92 ; 0x5c
|
|
13e20: 2000 movs r0, #0
|
|
13e22: 4bd5 ldr r3, [pc, #852] ; (14178 <gauge_init+0x3a8>)
|
|
13e24: 4798 blx r3
|
|
13e26: 0083 lsls r3, r0, #2
|
|
13e28: 1818 adds r0, r3, r0
|
|
13e2a: 3050 adds r0, #80 ; 0x50
|
|
13e2c: 2340 movs r3, #64 ; 0x40
|
|
13e2e: 33ff adds r3, #255 ; 0xff
|
|
13e30: 2201 movs r2, #1
|
|
13e32: 4298 cmp r0, r3
|
|
13e34: d900 bls.n 13e38 <gauge_init+0x68>
|
|
13e36: e15b b.n 140f0 <gauge_init+0x320>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
13e38: 2190 movs r1, #144 ; 0x90
|
|
13e3a: 0020 movs r0, r4
|
|
13e3c: 4bcf ldr r3, [pc, #828] ; (1417c <gauge_init+0x3ac>)
|
|
13e3e: 4798 blx r3
|
|
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
|
|
13e40: 4bc8 ldr r3, [pc, #800] ; (14164 <gauge_init+0x394>)
|
|
13e42: 681c ldr r4, [r3, #0]
|
|
13e44: 345c adds r4, #92 ; 0x5c
|
|
13e46: 2000 movs r0, #0
|
|
13e48: 4bcb ldr r3, [pc, #812] ; (14178 <gauge_init+0x3a8>)
|
|
13e4a: 4798 blx r3
|
|
13e4c: 3014 adds r0, #20
|
|
13e4e: 0080 lsls r0, r0, #2
|
|
13e50: 2340 movs r3, #64 ; 0x40
|
|
13e52: 33ff adds r3, #255 ; 0xff
|
|
13e54: 2201 movs r2, #1
|
|
13e56: 4298 cmp r0, r3
|
|
13e58: d900 bls.n 13e5c <gauge_init+0x8c>
|
|
13e5a: e155 b.n 14108 <gauge_init+0x338>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
|
|
13e5c: 21c3 movs r1, #195 ; 0xc3
|
|
13e5e: 0020 movs r0, r4
|
|
13e60: 4bc6 ldr r3, [pc, #792] ; (1417c <gauge_init+0x3ac>)
|
|
13e62: 4798 blx r3
|
|
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
|
|
13e64: 4bbf ldr r3, [pc, #764] ; (14164 <gauge_init+0x394>)
|
|
13e66: 681c ldr r4, [r3, #0]
|
|
13e68: 345c adds r4, #92 ; 0x5c
|
|
13e6a: 2000 movs r0, #0
|
|
13e6c: 4bc2 ldr r3, [pc, #776] ; (14178 <gauge_init+0x3a8>)
|
|
13e6e: 4798 blx r3
|
|
13e70: 300a adds r0, #10
|
|
13e72: 00c0 lsls r0, r0, #3
|
|
13e74: 2340 movs r3, #64 ; 0x40
|
|
13e76: 33ff adds r3, #255 ; 0xff
|
|
13e78: 2201 movs r2, #1
|
|
13e7a: 4298 cmp r0, r3
|
|
13e7c: d900 bls.n 13e80 <gauge_init+0xb0>
|
|
13e7e: e14d b.n 1411c <gauge_init+0x34c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
|
|
13e80: 21c2 movs r1, #194 ; 0xc2
|
|
13e82: 0020 movs r0, r4
|
|
13e84: 4bbd ldr r3, [pc, #756] ; (1417c <gauge_init+0x3ac>)
|
|
13e86: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13e88: 4bb6 ldr r3, [pc, #728] ; (14164 <gauge_init+0x394>)
|
|
13e8a: 681c ldr r4, [r3, #0]
|
|
13e8c: 345c adds r4, #92 ; 0x5c
|
|
13e8e: 2000 movs r0, #0
|
|
13e90: 4bb9 ldr r3, [pc, #740] ; (14178 <gauge_init+0x3a8>)
|
|
13e92: 4798 blx r3
|
|
13e94: 0083 lsls r3, r0, #2
|
|
13e96: 181b adds r3, r3, r0
|
|
13e98: 009b lsls r3, r3, #2
|
|
13e9a: 3350 adds r3, #80 ; 0x50
|
|
13e9c: 2140 movs r1, #64 ; 0x40
|
|
13e9e: 31ff adds r1, #255 ; 0xff
|
|
13ea0: 2201 movs r2, #1
|
|
13ea2: 428b cmp r3, r1
|
|
13ea4: d900 bls.n 13ea8 <gauge_init+0xd8>
|
|
13ea6: e143 b.n 14130 <gauge_init+0x360>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
13ea8: 2112 movs r1, #18
|
|
13eaa: 0020 movs r0, r4
|
|
13eac: 4bb3 ldr r3, [pc, #716] ; (1417c <gauge_init+0x3ac>)
|
|
13eae: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13eb0: 4bac ldr r3, [pc, #688] ; (14164 <gauge_init+0x394>)
|
|
13eb2: 681c ldr r4, [r3, #0]
|
|
13eb4: 345c adds r4, #92 ; 0x5c
|
|
13eb6: 2000 movs r0, #0
|
|
13eb8: 4baf ldr r3, [pc, #700] ; (14178 <gauge_init+0x3a8>)
|
|
13eba: 4798 blx r3
|
|
13ebc: 0083 lsls r3, r0, #2
|
|
13ebe: 181b adds r3, r3, r0
|
|
13ec0: 009b lsls r3, r3, #2
|
|
13ec2: 3350 adds r3, #80 ; 0x50
|
|
13ec4: 2140 movs r1, #64 ; 0x40
|
|
13ec6: 31ff adds r1, #255 ; 0xff
|
|
13ec8: 2201 movs r2, #1
|
|
13eca: 428b cmp r3, r1
|
|
13ecc: d900 bls.n 13ed0 <gauge_init+0x100>
|
|
13ece: e13c b.n 1414a <gauge_init+0x37a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
13ed0: 2113 movs r1, #19
|
|
13ed2: 0020 movs r0, r4
|
|
13ed4: 4ba9 ldr r3, [pc, #676] ; (1417c <gauge_init+0x3ac>)
|
|
13ed6: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13ed8: 4ba2 ldr r3, [pc, #648] ; (14164 <gauge_init+0x394>)
|
|
13eda: 681c ldr r4, [r3, #0]
|
|
13edc: 345c adds r4, #92 ; 0x5c
|
|
13ede: 2000 movs r0, #0
|
|
13ee0: 4ba5 ldr r3, [pc, #660] ; (14178 <gauge_init+0x3a8>)
|
|
13ee2: 4798 blx r3
|
|
13ee4: 0083 lsls r3, r0, #2
|
|
13ee6: 181b adds r3, r3, r0
|
|
13ee8: 009b lsls r3, r3, #2
|
|
13eea: 3350 adds r3, #80 ; 0x50
|
|
13eec: 2140 movs r1, #64 ; 0x40
|
|
13eee: 31ff adds r1, #255 ; 0xff
|
|
13ef0: 2201 movs r2, #1
|
|
13ef2: 428b cmp r3, r1
|
|
13ef4: d900 bls.n 13ef8 <gauge_init+0x128>
|
|
13ef6: e149 b.n 1418c <gauge_init+0x3bc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
13ef8: 2110 movs r1, #16
|
|
13efa: 0020 movs r0, r4
|
|
13efc: 4b9f ldr r3, [pc, #636] ; (1417c <gauge_init+0x3ac>)
|
|
13efe: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
13f00: 4b98 ldr r3, [pc, #608] ; (14164 <gauge_init+0x394>)
|
|
13f02: 681c ldr r4, [r3, #0]
|
|
13f04: 345c adds r4, #92 ; 0x5c
|
|
13f06: 2000 movs r0, #0
|
|
13f08: 4b9b ldr r3, [pc, #620] ; (14178 <gauge_init+0x3a8>)
|
|
13f0a: 4798 blx r3
|
|
13f0c: 0083 lsls r3, r0, #2
|
|
13f0e: 181b adds r3, r3, r0
|
|
13f10: 009b lsls r3, r3, #2
|
|
13f12: 3350 adds r3, #80 ; 0x50
|
|
13f14: 2140 movs r1, #64 ; 0x40
|
|
13f16: 31ff adds r1, #255 ; 0xff
|
|
13f18: 2201 movs r2, #1
|
|
13f1a: 428b cmp r3, r1
|
|
13f1c: d900 bls.n 13f20 <gauge_init+0x150>
|
|
13f1e: e142 b.n 141a6 <gauge_init+0x3d6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
13f20: 2114 movs r1, #20
|
|
13f22: 0020 movs r0, r4
|
|
13f24: 4b95 ldr r3, [pc, #596] ; (1417c <gauge_init+0x3ac>)
|
|
13f26: 4798 blx r3
|
|
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
|
|
13f28: 4b8e ldr r3, [pc, #568] ; (14164 <gauge_init+0x394>)
|
|
13f2a: 681c ldr r4, [r3, #0]
|
|
13f2c: 345c adds r4, #92 ; 0x5c
|
|
13f2e: 2000 movs r0, #0
|
|
13f30: 4b91 ldr r3, [pc, #580] ; (14178 <gauge_init+0x3a8>)
|
|
13f32: 4798 blx r3
|
|
13f34: 0103 lsls r3, r0, #4
|
|
13f36: 1a18 subs r0, r3, r0
|
|
13f38: 3050 adds r0, #80 ; 0x50
|
|
13f3a: 2340 movs r3, #64 ; 0x40
|
|
13f3c: 33ff adds r3, #255 ; 0xff
|
|
13f3e: 2201 movs r2, #1
|
|
13f40: 4298 cmp r0, r3
|
|
13f42: d900 bls.n 13f46 <gauge_init+0x176>
|
|
13f44: e13c b.n 141c0 <gauge_init+0x3f0>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
|
|
13f46: 21c0 movs r1, #192 ; 0xc0
|
|
13f48: 0020 movs r0, r4
|
|
13f4a: 4c8c ldr r4, [pc, #560] ; (1417c <gauge_init+0x3ac>)
|
|
13f4c: 47a0 blx r4
|
|
lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
13f4e: 4d85 ldr r5, [pc, #532] ; (14164 <gauge_init+0x394>)
|
|
13f50: 6828 ldr r0, [r5, #0]
|
|
13f52: 305c adds r0, #92 ; 0x5c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
13f54: 4a8a ldr r2, [pc, #552] ; (14180 <gauge_init+0x3b0>)
|
|
13f56: 2101 movs r1, #1
|
|
13f58: 47a0 blx r4
|
|
style_init_reset(&styles->gauge_strong);
|
|
13f5a: 6828 ldr r0, [r5, #0]
|
|
13f5c: 3060 adds r0, #96 ; 0x60
|
|
13f5e: 4b82 ldr r3, [pc, #520] ; (14168 <gauge_init+0x398>)
|
|
13f60: 4798 blx r3
|
|
lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
13f62: 6828 ldr r0, [r5, #0]
|
|
13f64: 3060 adds r0, #96 ; 0x60
|
|
13f66: 2711 movs r7, #17
|
|
13f68: 2488 movs r4, #136 ; 0x88
|
|
13f6a: 00e4 lsls r4, r4, #3
|
|
13f6c: 0022 movs r2, r4
|
|
13f6e: 433a orrs r2, r7
|
|
13f70: 0552 lsls r2, r2, #21
|
|
13f72: 0d52 lsrs r2, r2, #21
|
|
13f74: 4e7d ldr r6, [pc, #500] ; (1416c <gauge_init+0x39c>)
|
|
13f76: 4332 orrs r2, r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
13f78: 2199 movs r1, #153 ; 0x99
|
|
13f7a: 4b7d ldr r3, [pc, #500] ; (14170 <gauge_init+0x3a0>)
|
|
13f7c: 4698 mov r8, r3
|
|
13f7e: 4798 blx r3
|
|
lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
13f80: 6828 ldr r0, [r5, #0]
|
|
13f82: 3060 adds r0, #96 ; 0x60
|
|
13f84: 0022 movs r2, r4
|
|
13f86: 433a orrs r2, r7
|
|
13f88: 0552 lsls r2, r2, #21
|
|
13f8a: 0d52 lsrs r2, r2, #21
|
|
13f8c: 4332 orrs r2, r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
|
|
13f8e: 21c9 movs r1, #201 ; 0xc9
|
|
13f90: 47c0 blx r8
|
|
lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary);
|
|
13f92: 6828 ldr r0, [r5, #0]
|
|
13f94: 3060 adds r0, #96 ; 0x60
|
|
13f96: 4b77 ldr r3, [pc, #476] ; (14174 <gauge_init+0x3a4>)
|
|
13f98: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
|
|
13f9a: 21ca movs r1, #202 ; 0xca
|
|
13f9c: 47c0 blx r8
|
|
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
|
|
13f9e: 682c ldr r4, [r5, #0]
|
|
13fa0: 3460 adds r4, #96 ; 0x60
|
|
13fa2: 2000 movs r0, #0
|
|
13fa4: 4b74 ldr r3, [pc, #464] ; (14178 <gauge_init+0x3a8>)
|
|
13fa6: 4798 blx r3
|
|
13fa8: 300a adds r0, #10
|
|
13faa: 00c0 lsls r0, r0, #3
|
|
13fac: 2340 movs r3, #64 ; 0x40
|
|
13fae: 33ff adds r3, #255 ; 0xff
|
|
13fb0: 2201 movs r2, #1
|
|
13fb2: 4298 cmp r0, r3
|
|
13fb4: d900 bls.n 13fb8 <gauge_init+0x1e8>
|
|
13fb6: e10e b.n 141d6 <gauge_init+0x406>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
13fb8: 2190 movs r1, #144 ; 0x90
|
|
13fba: 0020 movs r0, r4
|
|
13fbc: 4b6f ldr r3, [pc, #444] ; (1417c <gauge_init+0x3ac>)
|
|
13fbe: 4798 blx r3
|
|
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
|
|
13fc0: 4b68 ldr r3, [pc, #416] ; (14164 <gauge_init+0x394>)
|
|
13fc2: 681c ldr r4, [r3, #0]
|
|
13fc4: 3460 adds r4, #96 ; 0x60
|
|
13fc6: 2000 movs r0, #0
|
|
13fc8: 4b6b ldr r3, [pc, #428] ; (14178 <gauge_init+0x3a8>)
|
|
13fca: 4798 blx r3
|
|
13fcc: 300a adds r0, #10
|
|
13fce: 00c0 lsls r0, r0, #3
|
|
13fd0: 2340 movs r3, #64 ; 0x40
|
|
13fd2: 33ff adds r3, #255 ; 0xff
|
|
13fd4: 2201 movs r2, #1
|
|
13fd6: 4298 cmp r0, r3
|
|
13fd8: d900 bls.n 13fdc <gauge_init+0x20c>
|
|
13fda: e106 b.n 141ea <gauge_init+0x41a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
|
|
13fdc: 21c3 movs r1, #195 ; 0xc3
|
|
13fde: 0020 movs r0, r4
|
|
13fe0: 4b66 ldr r3, [pc, #408] ; (1417c <gauge_init+0x3ac>)
|
|
13fe2: 4798 blx r3
|
|
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
|
|
13fe4: 4b5f ldr r3, [pc, #380] ; (14164 <gauge_init+0x394>)
|
|
13fe6: 681c ldr r4, [r3, #0]
|
|
13fe8: 3460 adds r4, #96 ; 0x60
|
|
13fea: 2000 movs r0, #0
|
|
13fec: 4b62 ldr r3, [pc, #392] ; (14178 <gauge_init+0x3a8>)
|
|
13fee: 4798 blx r3
|
|
13ff0: 0083 lsls r3, r0, #2
|
|
13ff2: 1818 adds r0, r3, r0
|
|
13ff4: 0083 lsls r3, r0, #2
|
|
13ff6: 18c0 adds r0, r0, r3
|
|
13ff8: 3050 adds r0, #80 ; 0x50
|
|
13ffa: 2340 movs r3, #64 ; 0x40
|
|
13ffc: 33ff adds r3, #255 ; 0xff
|
|
13ffe: 2201 movs r2, #1
|
|
14000: 4298 cmp r0, r3
|
|
14002: d900 bls.n 14006 <gauge_init+0x236>
|
|
14004: e0fb b.n 141fe <gauge_init+0x42e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
|
|
14006: 21c0 movs r1, #192 ; 0xc0
|
|
14008: 0020 movs r0, r4
|
|
1400a: 4b5c ldr r3, [pc, #368] ; (1417c <gauge_init+0x3ac>)
|
|
1400c: 4798 blx r3
|
|
style_init_reset(&styles->gauge_needle);
|
|
1400e: 4c55 ldr r4, [pc, #340] ; (14164 <gauge_init+0x394>)
|
|
14010: 6820 ldr r0, [r4, #0]
|
|
14012: 3064 adds r0, #100 ; 0x64
|
|
14014: 4b54 ldr r3, [pc, #336] ; (14168 <gauge_init+0x398>)
|
|
14016: 4798 blx r3
|
|
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
|
|
14018: 6820 ldr r0, [r4, #0]
|
|
1401a: 3064 adds r0, #100 ; 0x64
|
|
1401c: 4b55 ldr r3, [pc, #340] ; (14174 <gauge_init+0x3a4>)
|
|
1401e: 699b ldr r3, [r3, #24]
|
|
14020: 079b lsls r3, r3, #30
|
|
14022: d500 bpl.n 14026 <gauge_init+0x256>
|
|
14024: e0f8 b.n 14218 <gauge_init+0x448>
|
|
14026: 231f movs r3, #31
|
|
14028: 213f movs r1, #63 ; 0x3f
|
|
1402a: 221f movs r2, #31
|
|
1402c: 0149 lsls r1, r1, #5
|
|
1402e: 02db lsls r3, r3, #11
|
|
14030: 430a orrs r2, r1
|
|
14032: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
14034: 2199 movs r1, #153 ; 0x99
|
|
14036: 4b4e ldr r3, [pc, #312] ; (14170 <gauge_init+0x3a0>)
|
|
14038: 4798 blx r3
|
|
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
|
|
1403a: 4b4a ldr r3, [pc, #296] ; (14164 <gauge_init+0x394>)
|
|
1403c: 681c ldr r4, [r3, #0]
|
|
1403e: 3464 adds r4, #100 ; 0x64
|
|
14040: 2000 movs r0, #0
|
|
14042: 4b4d ldr r3, [pc, #308] ; (14178 <gauge_init+0x3a8>)
|
|
14044: 4798 blx r3
|
|
14046: 300a adds r0, #10
|
|
14048: 00c0 lsls r0, r0, #3
|
|
1404a: 2340 movs r3, #64 ; 0x40
|
|
1404c: 33ff adds r3, #255 ; 0xff
|
|
1404e: 2201 movs r2, #1
|
|
14050: 4298 cmp r0, r3
|
|
14052: d900 bls.n 14056 <gauge_init+0x286>
|
|
14054: e0e4 b.n 14220 <gauge_init+0x450>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
14056: 2190 movs r1, #144 ; 0x90
|
|
14058: 0020 movs r0, r4
|
|
1405a: 4b48 ldr r3, [pc, #288] ; (1417c <gauge_init+0x3ac>)
|
|
1405c: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
1405e: 4c41 ldr r4, [pc, #260] ; (14164 <gauge_init+0x394>)
|
|
14060: 6820 ldr r0, [r4, #0]
|
|
14062: 3064 adds r0, #100 ; 0x64
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
14064: 22ff movs r2, #255 ; 0xff
|
|
14066: 212c movs r1, #44 ; 0x2c
|
|
14068: 4b46 ldr r3, [pc, #280] ; (14184 <gauge_init+0x3b4>)
|
|
1406a: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
|
|
1406c: 6820 ldr r0, [r4, #0]
|
|
1406e: 3064 adds r0, #100 ; 0x64
|
|
14070: 4b40 ldr r3, [pc, #256] ; (14174 <gauge_init+0x3a4>)
|
|
14072: 699b ldr r3, [r3, #24]
|
|
14074: 079b lsls r3, r3, #30
|
|
14076: d500 bpl.n 1407a <gauge_init+0x2aa>
|
|
14078: e0dc b.n 14234 <gauge_init+0x464>
|
|
1407a: 231f movs r3, #31
|
|
1407c: 213f movs r1, #63 ; 0x3f
|
|
1407e: 221f movs r2, #31
|
|
14080: 0149 lsls r1, r1, #5
|
|
14082: 02db lsls r3, r3, #11
|
|
14084: 430a orrs r2, r1
|
|
14086: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
14088: 2129 movs r1, #41 ; 0x29
|
|
1408a: 4b39 ldr r3, [pc, #228] ; (14170 <gauge_init+0x3a0>)
|
|
1408c: 4798 blx r3
|
|
lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
1408e: 4c35 ldr r4, [pc, #212] ; (14164 <gauge_init+0x394>)
|
|
14090: 6820 ldr r0, [r4, #0]
|
|
14092: 3064 adds r0, #100 ; 0x64
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14094: 4a3a ldr r2, [pc, #232] ; (14180 <gauge_init+0x3b0>)
|
|
14096: 2101 movs r1, #1
|
|
14098: 4b38 ldr r3, [pc, #224] ; (1417c <gauge_init+0x3ac>)
|
|
1409a: 4798 blx r3
|
|
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
|
|
1409c: 6824 ldr r4, [r4, #0]
|
|
1409e: 3464 adds r4, #100 ; 0x64
|
|
140a0: 2000 movs r0, #0
|
|
140a2: 4b35 ldr r3, [pc, #212] ; (14178 <gauge_init+0x3a8>)
|
|
140a4: 4798 blx r3
|
|
140a6: 0103 lsls r3, r0, #4
|
|
140a8: 1a1b subs r3, r3, r0
|
|
140aa: 005b lsls r3, r3, #1
|
|
140ac: 3350 adds r3, #80 ; 0x50
|
|
140ae: 2140 movs r1, #64 ; 0x40
|
|
140b0: 31ff adds r1, #255 ; 0xff
|
|
140b2: 2201 movs r2, #1
|
|
140b4: 428b cmp r3, r1
|
|
140b6: d900 bls.n 140ba <gauge_init+0x2ea>
|
|
140b8: e0c0 b.n 1423c <gauge_init+0x46c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
|
|
140ba: 2103 movs r1, #3
|
|
140bc: 0020 movs r0, r4
|
|
140be: 4b2f ldr r3, [pc, #188] ; (1417c <gauge_init+0x3ac>)
|
|
140c0: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
|
|
140c2: 4b28 ldr r3, [pc, #160] ; (14164 <gauge_init+0x394>)
|
|
140c4: 681c ldr r4, [r3, #0]
|
|
140c6: 3464 adds r4, #100 ; 0x64
|
|
140c8: 2000 movs r0, #0
|
|
140ca: 4b2b ldr r3, [pc, #172] ; (14178 <gauge_init+0x3a8>)
|
|
140cc: 4798 blx r3
|
|
140ce: 0083 lsls r3, r0, #2
|
|
140d0: 181b adds r3, r3, r0
|
|
140d2: 005b lsls r3, r3, #1
|
|
140d4: 3350 adds r3, #80 ; 0x50
|
|
140d6: 2140 movs r1, #64 ; 0x40
|
|
140d8: 31ff adds r1, #255 ; 0xff
|
|
140da: 2201 movs r2, #1
|
|
140dc: 428b cmp r3, r1
|
|
140de: d900 bls.n 140e2 <gauge_init+0x312>
|
|
140e0: e0b8 b.n 14254 <gauge_init+0x484>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
140e2: 2114 movs r1, #20
|
|
140e4: 0020 movs r0, r4
|
|
140e6: 4b25 ldr r3, [pc, #148] ; (1417c <gauge_init+0x3ac>)
|
|
140e8: 4798 blx r3
|
|
}
|
|
140ea: bc04 pop {r2}
|
|
140ec: 4690 mov r8, r2
|
|
140ee: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
|
|
140f0: 2000 movs r0, #0
|
|
140f2: 4b21 ldr r3, [pc, #132] ; (14178 <gauge_init+0x3a8>)
|
|
140f4: 4798 blx r3
|
|
140f6: 0003 movs r3, r0
|
|
140f8: 0080 lsls r0, r0, #2
|
|
140fa: 18c0 adds r0, r0, r3
|
|
140fc: 3050 adds r0, #80 ; 0x50
|
|
140fe: 21a0 movs r1, #160 ; 0xa0
|
|
14100: 4b21 ldr r3, [pc, #132] ; (14188 <gauge_init+0x3b8>)
|
|
14102: 4798 blx r3
|
|
14104: b202 sxth r2, r0
|
|
14106: e697 b.n 13e38 <gauge_init+0x68>
|
|
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
|
|
14108: 2000 movs r0, #0
|
|
1410a: 4b1b ldr r3, [pc, #108] ; (14178 <gauge_init+0x3a8>)
|
|
1410c: 4798 blx r3
|
|
1410e: 3014 adds r0, #20
|
|
14110: 0080 lsls r0, r0, #2
|
|
14112: 21a0 movs r1, #160 ; 0xa0
|
|
14114: 4b1c ldr r3, [pc, #112] ; (14188 <gauge_init+0x3b8>)
|
|
14116: 4798 blx r3
|
|
14118: b202 sxth r2, r0
|
|
1411a: e69f b.n 13e5c <gauge_init+0x8c>
|
|
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
|
|
1411c: 2000 movs r0, #0
|
|
1411e: 4b16 ldr r3, [pc, #88] ; (14178 <gauge_init+0x3a8>)
|
|
14120: 4798 blx r3
|
|
14122: 300a adds r0, #10
|
|
14124: 00c0 lsls r0, r0, #3
|
|
14126: 21a0 movs r1, #160 ; 0xa0
|
|
14128: 4b17 ldr r3, [pc, #92] ; (14188 <gauge_init+0x3b8>)
|
|
1412a: 4798 blx r3
|
|
1412c: b202 sxth r2, r0
|
|
1412e: e6a7 b.n 13e80 <gauge_init+0xb0>
|
|
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
14130: 2000 movs r0, #0
|
|
14132: 4b11 ldr r3, [pc, #68] ; (14178 <gauge_init+0x3a8>)
|
|
14134: 4798 blx r3
|
|
14136: 0003 movs r3, r0
|
|
14138: 0080 lsls r0, r0, #2
|
|
1413a: 18c0 adds r0, r0, r3
|
|
1413c: 0080 lsls r0, r0, #2
|
|
1413e: 3050 adds r0, #80 ; 0x50
|
|
14140: 21a0 movs r1, #160 ; 0xa0
|
|
14142: 4b11 ldr r3, [pc, #68] ; (14188 <gauge_init+0x3b8>)
|
|
14144: 4798 blx r3
|
|
14146: b202 sxth r2, r0
|
|
14148: e6ae b.n 13ea8 <gauge_init+0xd8>
|
|
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
1414a: 2000 movs r0, #0
|
|
1414c: 4b0a ldr r3, [pc, #40] ; (14178 <gauge_init+0x3a8>)
|
|
1414e: 4798 blx r3
|
|
14150: 0003 movs r3, r0
|
|
14152: 0080 lsls r0, r0, #2
|
|
14154: 18c0 adds r0, r0, r3
|
|
14156: 0080 lsls r0, r0, #2
|
|
14158: 3050 adds r0, #80 ; 0x50
|
|
1415a: 21a0 movs r1, #160 ; 0xa0
|
|
1415c: 4b0a ldr r3, [pc, #40] ; (14188 <gauge_init+0x3b8>)
|
|
1415e: 4798 blx r3
|
|
14160: b202 sxth r2, r0
|
|
14162: e6b5 b.n 13ed0 <gauge_init+0x100>
|
|
14164: 20004c38 .word 0x20004c38
|
|
14168: 00012495 .word 0x00012495
|
|
1416c: ffff8800 .word 0xffff8800
|
|
14170: 00004e55 .word 0x00004e55
|
|
14174: 20004c3c .word 0x20004c3c
|
|
14178: 0000f665 .word 0x0000f665
|
|
1417c: 00004cf5 .word 0x00004cf5
|
|
14180: 00007fff .word 0x00007fff
|
|
14184: 00004fb5 .word 0x00004fb5
|
|
14188: 00017881 .word 0x00017881
|
|
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
1418c: 2000 movs r0, #0
|
|
1418e: 4b38 ldr r3, [pc, #224] ; (14270 <gauge_init+0x4a0>)
|
|
14190: 4798 blx r3
|
|
14192: 0003 movs r3, r0
|
|
14194: 0080 lsls r0, r0, #2
|
|
14196: 18c0 adds r0, r0, r3
|
|
14198: 0080 lsls r0, r0, #2
|
|
1419a: 3050 adds r0, #80 ; 0x50
|
|
1419c: 21a0 movs r1, #160 ; 0xa0
|
|
1419e: 4b35 ldr r3, [pc, #212] ; (14274 <gauge_init+0x4a4>)
|
|
141a0: 4798 blx r3
|
|
141a2: b202 sxth r2, r0
|
|
141a4: e6a8 b.n 13ef8 <gauge_init+0x128>
|
|
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
|
|
141a6: 2000 movs r0, #0
|
|
141a8: 4b31 ldr r3, [pc, #196] ; (14270 <gauge_init+0x4a0>)
|
|
141aa: 4798 blx r3
|
|
141ac: 0003 movs r3, r0
|
|
141ae: 0080 lsls r0, r0, #2
|
|
141b0: 18c0 adds r0, r0, r3
|
|
141b2: 0080 lsls r0, r0, #2
|
|
141b4: 3050 adds r0, #80 ; 0x50
|
|
141b6: 21a0 movs r1, #160 ; 0xa0
|
|
141b8: 4b2e ldr r3, [pc, #184] ; (14274 <gauge_init+0x4a4>)
|
|
141ba: 4798 blx r3
|
|
141bc: b202 sxth r2, r0
|
|
141be: e6af b.n 13f20 <gauge_init+0x150>
|
|
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
|
|
141c0: 2000 movs r0, #0
|
|
141c2: 4b2b ldr r3, [pc, #172] ; (14270 <gauge_init+0x4a0>)
|
|
141c4: 4798 blx r3
|
|
141c6: 0103 lsls r3, r0, #4
|
|
141c8: 1a18 subs r0, r3, r0
|
|
141ca: 3050 adds r0, #80 ; 0x50
|
|
141cc: 21a0 movs r1, #160 ; 0xa0
|
|
141ce: 4b29 ldr r3, [pc, #164] ; (14274 <gauge_init+0x4a4>)
|
|
141d0: 4798 blx r3
|
|
141d2: b202 sxth r2, r0
|
|
141d4: e6b7 b.n 13f46 <gauge_init+0x176>
|
|
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
|
|
141d6: 2000 movs r0, #0
|
|
141d8: 4b25 ldr r3, [pc, #148] ; (14270 <gauge_init+0x4a0>)
|
|
141da: 4798 blx r3
|
|
141dc: 300a adds r0, #10
|
|
141de: 00c0 lsls r0, r0, #3
|
|
141e0: 21a0 movs r1, #160 ; 0xa0
|
|
141e2: 4b24 ldr r3, [pc, #144] ; (14274 <gauge_init+0x4a4>)
|
|
141e4: 4798 blx r3
|
|
141e6: b202 sxth r2, r0
|
|
141e8: e6e6 b.n 13fb8 <gauge_init+0x1e8>
|
|
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
|
|
141ea: 2000 movs r0, #0
|
|
141ec: 4b20 ldr r3, [pc, #128] ; (14270 <gauge_init+0x4a0>)
|
|
141ee: 4798 blx r3
|
|
141f0: 300a adds r0, #10
|
|
141f2: 00c0 lsls r0, r0, #3
|
|
141f4: 21a0 movs r1, #160 ; 0xa0
|
|
141f6: 4b1f ldr r3, [pc, #124] ; (14274 <gauge_init+0x4a4>)
|
|
141f8: 4798 blx r3
|
|
141fa: b202 sxth r2, r0
|
|
141fc: e6ee b.n 13fdc <gauge_init+0x20c>
|
|
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
|
|
141fe: 2000 movs r0, #0
|
|
14200: 4b1b ldr r3, [pc, #108] ; (14270 <gauge_init+0x4a0>)
|
|
14202: 4798 blx r3
|
|
14204: 0083 lsls r3, r0, #2
|
|
14206: 1818 adds r0, r3, r0
|
|
14208: 0083 lsls r3, r0, #2
|
|
1420a: 18c0 adds r0, r0, r3
|
|
1420c: 3050 adds r0, #80 ; 0x50
|
|
1420e: 21a0 movs r1, #160 ; 0xa0
|
|
14210: 4b18 ldr r3, [pc, #96] ; (14274 <gauge_init+0x4a4>)
|
|
14212: 4798 blx r3
|
|
14214: b202 sxth r2, r0
|
|
14216: e6f6 b.n 14006 <gauge_init+0x236>
|
|
14218: 2308 movs r3, #8
|
|
1421a: 2112 movs r1, #18
|
|
1421c: 220b movs r2, #11
|
|
1421e: e705 b.n 1402c <gauge_init+0x25c>
|
|
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
|
|
14220: 2000 movs r0, #0
|
|
14222: 4b13 ldr r3, [pc, #76] ; (14270 <gauge_init+0x4a0>)
|
|
14224: 4798 blx r3
|
|
14226: 300a adds r0, #10
|
|
14228: 00c0 lsls r0, r0, #3
|
|
1422a: 21a0 movs r1, #160 ; 0xa0
|
|
1422c: 4b11 ldr r3, [pc, #68] ; (14274 <gauge_init+0x4a4>)
|
|
1422e: 4798 blx r3
|
|
14230: b202 sxth r2, r0
|
|
14232: e710 b.n 14056 <gauge_init+0x286>
|
|
14234: 2308 movs r3, #8
|
|
14236: 2112 movs r1, #18
|
|
14238: 220b movs r2, #11
|
|
1423a: e721 b.n 14080 <gauge_init+0x2b0>
|
|
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
|
|
1423c: 2000 movs r0, #0
|
|
1423e: 4b0c ldr r3, [pc, #48] ; (14270 <gauge_init+0x4a0>)
|
|
14240: 4798 blx r3
|
|
14242: 0103 lsls r3, r0, #4
|
|
14244: 1a18 subs r0, r3, r0
|
|
14246: 0040 lsls r0, r0, #1
|
|
14248: 3050 adds r0, #80 ; 0x50
|
|
1424a: 21a0 movs r1, #160 ; 0xa0
|
|
1424c: 4b09 ldr r3, [pc, #36] ; (14274 <gauge_init+0x4a4>)
|
|
1424e: 4798 blx r3
|
|
14250: b202 sxth r2, r0
|
|
14252: e732 b.n 140ba <gauge_init+0x2ea>
|
|
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
|
|
14254: 2000 movs r0, #0
|
|
14256: 4b06 ldr r3, [pc, #24] ; (14270 <gauge_init+0x4a0>)
|
|
14258: 4798 blx r3
|
|
1425a: 0003 movs r3, r0
|
|
1425c: 0080 lsls r0, r0, #2
|
|
1425e: 18c0 adds r0, r0, r3
|
|
14260: 0040 lsls r0, r0, #1
|
|
14262: 3050 adds r0, #80 ; 0x50
|
|
14264: 21a0 movs r1, #160 ; 0xa0
|
|
14266: 4b03 ldr r3, [pc, #12] ; (14274 <gauge_init+0x4a4>)
|
|
14268: 4798 blx r3
|
|
1426a: b202 sxth r2, r0
|
|
1426c: e739 b.n 140e2 <gauge_init+0x312>
|
|
1426e: 46c0 nop ; (mov r8, r8)
|
|
14270: 0000f665 .word 0x0000f665
|
|
14274: 00017881 .word 0x00017881
|
|
|
|
00014278 <arc_init>:
|
|
{
|
|
14278: b570 push {r4, r5, r6, lr}
|
|
style_init_reset(&styles->arc_indic);
|
|
1427a: 4c39 ldr r4, [pc, #228] ; (14360 <arc_init+0xe8>)
|
|
1427c: 6820 ldr r0, [r4, #0]
|
|
1427e: 301c adds r0, #28
|
|
14280: 4b38 ldr r3, [pc, #224] ; (14364 <arc_init+0xec>)
|
|
14282: 4798 blx r3
|
|
lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary);
|
|
14284: 6820 ldr r0, [r4, #0]
|
|
14286: 301c adds r0, #28
|
|
14288: 4b37 ldr r3, [pc, #220] ; (14368 <arc_init+0xf0>)
|
|
1428a: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
1428c: 2199 movs r1, #153 ; 0x99
|
|
1428e: 4b37 ldr r3, [pc, #220] ; (1436c <arc_init+0xf4>)
|
|
14290: 4798 blx r3
|
|
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
|
|
14292: 6824 ldr r4, [r4, #0]
|
|
14294: 341c adds r4, #28
|
|
14296: 2000 movs r0, #0
|
|
14298: 4b35 ldr r3, [pc, #212] ; (14370 <arc_init+0xf8>)
|
|
1429a: 4798 blx r3
|
|
1429c: 0083 lsls r3, r0, #2
|
|
1429e: 1818 adds r0, r3, r0
|
|
142a0: 0083 lsls r3, r0, #2
|
|
142a2: 18c0 adds r0, r0, r3
|
|
142a4: 3050 adds r0, #80 ; 0x50
|
|
142a6: 2340 movs r3, #64 ; 0x40
|
|
142a8: 33ff adds r3, #255 ; 0xff
|
|
142aa: 2201 movs r2, #1
|
|
142ac: 4298 cmp r0, r3
|
|
142ae: d838 bhi.n 14322 <arc_init+0xaa>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
142b0: 2190 movs r1, #144 ; 0x90
|
|
142b2: 0020 movs r0, r4
|
|
142b4: 4d2f ldr r5, [pc, #188] ; (14374 <arc_init+0xfc>)
|
|
142b6: 47a8 blx r5
|
|
lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true);
|
|
142b8: 4c29 ldr r4, [pc, #164] ; (14360 <arc_init+0xe8>)
|
|
142ba: 6820 ldr r0, [r4, #0]
|
|
142bc: 301c adds r0, #28
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
|
|
142be: 2201 movs r2, #1
|
|
142c0: 2194 movs r1, #148 ; 0x94
|
|
142c2: 47a8 blx r5
|
|
style_init_reset(&styles->arc_bg);
|
|
142c4: 6820 ldr r0, [r4, #0]
|
|
142c6: 3020 adds r0, #32
|
|
142c8: 4b26 ldr r3, [pc, #152] ; (14364 <arc_init+0xec>)
|
|
142ca: 4798 blx r3
|
|
lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
|
|
142cc: 6820 ldr r0, [r4, #0]
|
|
142ce: 3020 adds r0, #32
|
|
142d0: 4b25 ldr r3, [pc, #148] ; (14368 <arc_init+0xf0>)
|
|
142d2: 699b ldr r3, [r3, #24]
|
|
142d4: 079b lsls r3, r3, #30
|
|
142d6: d431 bmi.n 1433c <arc_init+0xc4>
|
|
142d8: 2308 movs r3, #8
|
|
142da: 2112 movs r1, #18
|
|
142dc: 2209 movs r2, #9
|
|
142de: 0149 lsls r1, r1, #5
|
|
142e0: 02db lsls r3, r3, #11
|
|
142e2: 430a orrs r2, r1
|
|
142e4: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
142e6: 2199 movs r1, #153 ; 0x99
|
|
142e8: 4b20 ldr r3, [pc, #128] ; (1436c <arc_init+0xf4>)
|
|
142ea: 4798 blx r3
|
|
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
|
|
142ec: 4b1c ldr r3, [pc, #112] ; (14360 <arc_init+0xe8>)
|
|
142ee: 681c ldr r4, [r3, #0]
|
|
142f0: 3420 adds r4, #32
|
|
142f2: 2000 movs r0, #0
|
|
142f4: 4b1e ldr r3, [pc, #120] ; (14370 <arc_init+0xf8>)
|
|
142f6: 4798 blx r3
|
|
142f8: 0083 lsls r3, r0, #2
|
|
142fa: 1818 adds r0, r3, r0
|
|
142fc: 0083 lsls r3, r0, #2
|
|
142fe: 18c0 adds r0, r0, r3
|
|
14300: 3050 adds r0, #80 ; 0x50
|
|
14302: 2340 movs r3, #64 ; 0x40
|
|
14304: 33ff adds r3, #255 ; 0xff
|
|
14306: 2201 movs r2, #1
|
|
14308: 4298 cmp r0, r3
|
|
1430a: d81b bhi.n 14344 <arc_init+0xcc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
1430c: 2190 movs r1, #144 ; 0x90
|
|
1430e: 0020 movs r0, r4
|
|
14310: 4c18 ldr r4, [pc, #96] ; (14374 <arc_init+0xfc>)
|
|
14312: 47a0 blx r4
|
|
lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true);
|
|
14314: 4b12 ldr r3, [pc, #72] ; (14360 <arc_init+0xe8>)
|
|
14316: 6818 ldr r0, [r3, #0]
|
|
14318: 3020 adds r0, #32
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
|
|
1431a: 2201 movs r2, #1
|
|
1431c: 2194 movs r1, #148 ; 0x94
|
|
1431e: 47a0 blx r4
|
|
}
|
|
14320: bd70 pop {r4, r5, r6, pc}
|
|
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
|
|
14322: 2000 movs r0, #0
|
|
14324: 4b12 ldr r3, [pc, #72] ; (14370 <arc_init+0xf8>)
|
|
14326: 4798 blx r3
|
|
14328: 0083 lsls r3, r0, #2
|
|
1432a: 1818 adds r0, r3, r0
|
|
1432c: 0083 lsls r3, r0, #2
|
|
1432e: 18c0 adds r0, r0, r3
|
|
14330: 3050 adds r0, #80 ; 0x50
|
|
14332: 21a0 movs r1, #160 ; 0xa0
|
|
14334: 4b10 ldr r3, [pc, #64] ; (14378 <arc_init+0x100>)
|
|
14336: 4798 blx r3
|
|
14338: b202 sxth r2, r0
|
|
1433a: e7b9 b.n 142b0 <arc_init+0x38>
|
|
1433c: 231a movs r3, #26
|
|
1433e: 2135 movs r1, #53 ; 0x35
|
|
14340: 221b movs r2, #27
|
|
14342: e7cc b.n 142de <arc_init+0x66>
|
|
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
|
|
14344: 2000 movs r0, #0
|
|
14346: 4b0a ldr r3, [pc, #40] ; (14370 <arc_init+0xf8>)
|
|
14348: 4798 blx r3
|
|
1434a: 0083 lsls r3, r0, #2
|
|
1434c: 1818 adds r0, r3, r0
|
|
1434e: 0083 lsls r3, r0, #2
|
|
14350: 18c0 adds r0, r0, r3
|
|
14352: 3050 adds r0, #80 ; 0x50
|
|
14354: 21a0 movs r1, #160 ; 0xa0
|
|
14356: 4b08 ldr r3, [pc, #32] ; (14378 <arc_init+0x100>)
|
|
14358: 4798 blx r3
|
|
1435a: b202 sxth r2, r0
|
|
1435c: e7d6 b.n 1430c <arc_init+0x94>
|
|
1435e: 46c0 nop ; (mov r8, r8)
|
|
14360: 20004c38 .word 0x20004c38
|
|
14364: 00012495 .word 0x00012495
|
|
14368: 20004c3c .word 0x20004c3c
|
|
1436c: 00004e55 .word 0x00004e55
|
|
14370: 0000f665 .word 0x0000f665
|
|
14374: 00004cf5 .word 0x00004cf5
|
|
14378: 00017881 .word 0x00017881
|
|
|
|
0001437c <led_init>:
|
|
{
|
|
1437c: b5f0 push {r4, r5, r6, r7, lr}
|
|
1437e: 46c6 mov lr, r8
|
|
14380: b500 push {lr}
|
|
style_init_reset(&styles->led);
|
|
14382: 4c39 ldr r4, [pc, #228] ; (14468 <led_init+0xec>)
|
|
14384: 6820 ldr r0, [r4, #0]
|
|
14386: 306c adds r0, #108 ; 0x6c
|
|
14388: 4b38 ldr r3, [pc, #224] ; (1446c <led_init+0xf0>)
|
|
1438a: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
1438c: 6820 ldr r0, [r4, #0]
|
|
1438e: 306c adds r0, #108 ; 0x6c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
14390: 22ff movs r2, #255 ; 0xff
|
|
14392: 212c movs r1, #44 ; 0x2c
|
|
14394: 4d36 ldr r5, [pc, #216] ; (14470 <led_init+0xf4>)
|
|
14396: 47a8 blx r5
|
|
lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
|
|
14398: 6820 ldr r0, [r4, #0]
|
|
1439a: 306c adds r0, #108 ; 0x6c
|
|
1439c: 4b35 ldr r3, [pc, #212] ; (14474 <led_init+0xf8>)
|
|
1439e: 4698 mov r8, r3
|
|
143a0: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
143a2: 2129 movs r1, #41 ; 0x29
|
|
143a4: 4f34 ldr r7, [pc, #208] ; (14478 <led_init+0xfc>)
|
|
143a6: 47b8 blx r7
|
|
lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2);
|
|
143a8: 6820 ldr r0, [r4, #0]
|
|
143aa: 306c adds r0, #108 ; 0x6c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
143ac: 2202 movs r2, #2
|
|
143ae: 2130 movs r1, #48 ; 0x30
|
|
143b0: 4e32 ldr r6, [pc, #200] ; (1447c <led_init+0x100>)
|
|
143b2: 47b0 blx r6
|
|
lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50);
|
|
143b4: 6820 ldr r0, [r4, #0]
|
|
143b6: 306c adds r0, #108 ; 0x6c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
|
|
143b8: 227f movs r2, #127 ; 0x7f
|
|
143ba: 213c movs r1, #60 ; 0x3c
|
|
143bc: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30));
|
|
143be: 6825 ldr r5, [r4, #0]
|
|
143c0: 356c adds r5, #108 ; 0x6c
|
|
143c2: 4643 mov r3, r8
|
|
143c4: 8898 ldrh r0, [r3, #4]
|
|
143c6: 214c movs r1, #76 ; 0x4c
|
|
143c8: 4b2d ldr r3, [pc, #180] ; (14480 <led_init+0x104>)
|
|
143ca: 4798 blx r3
|
|
143cc: 1c02 adds r2, r0, #0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
143ce: 2139 movs r1, #57 ; 0x39
|
|
143d0: 0028 movs r0, r5
|
|
143d2: 47b8 blx r7
|
|
lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
143d4: 6820 ldr r0, [r4, #0]
|
|
143d6: 306c adds r0, #108 ; 0x6c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
143d8: 4a2a ldr r2, [pc, #168] ; (14484 <led_init+0x108>)
|
|
143da: 2101 movs r1, #1
|
|
143dc: 47b0 blx r6
|
|
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
|
|
143de: 6824 ldr r4, [r4, #0]
|
|
143e0: 346c adds r4, #108 ; 0x6c
|
|
143e2: 2000 movs r0, #0
|
|
143e4: 4b28 ldr r3, [pc, #160] ; (14488 <led_init+0x10c>)
|
|
143e6: 4798 blx r3
|
|
143e8: 0103 lsls r3, r0, #4
|
|
143ea: 1a18 subs r0, r3, r0
|
|
143ec: 3050 adds r0, #80 ; 0x50
|
|
143ee: 2340 movs r3, #64 ; 0x40
|
|
143f0: 33ff adds r3, #255 ; 0xff
|
|
143f2: 2201 movs r2, #1
|
|
143f4: 4298 cmp r0, r3
|
|
143f6: d81f bhi.n 14438 <led_init+0xbc>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
|
|
143f8: 2150 movs r1, #80 ; 0x50
|
|
143fa: 0020 movs r0, r4
|
|
143fc: 4b1f ldr r3, [pc, #124] ; (1447c <led_init+0x100>)
|
|
143fe: 4798 blx r3
|
|
lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
|
|
14400: 4c19 ldr r4, [pc, #100] ; (14468 <led_init+0xec>)
|
|
14402: 6820 ldr r0, [r4, #0]
|
|
14404: 306c adds r0, #108 ; 0x6c
|
|
14406: 4b1b ldr r3, [pc, #108] ; (14474 <led_init+0xf8>)
|
|
14408: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
|
|
1440a: 2159 movs r1, #89 ; 0x59
|
|
1440c: 4b1a ldr r3, [pc, #104] ; (14478 <led_init+0xfc>)
|
|
1440e: 4798 blx r3
|
|
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
|
|
14410: 6824 ldr r4, [r4, #0]
|
|
14412: 346c adds r4, #108 ; 0x6c
|
|
14414: 2000 movs r0, #0
|
|
14416: 4b1c ldr r3, [pc, #112] ; (14488 <led_init+0x10c>)
|
|
14418: 4798 blx r3
|
|
1441a: 0083 lsls r3, r0, #2
|
|
1441c: 1818 adds r0, r3, r0
|
|
1441e: 3050 adds r0, #80 ; 0x50
|
|
14420: 2340 movs r3, #64 ; 0x40
|
|
14422: 33ff adds r3, #255 ; 0xff
|
|
14424: 2201 movs r2, #1
|
|
14426: 4298 cmp r0, r3
|
|
14428: d811 bhi.n 1444e <led_init+0xd2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
|
|
1442a: 2153 movs r1, #83 ; 0x53
|
|
1442c: 0020 movs r0, r4
|
|
1442e: 4b13 ldr r3, [pc, #76] ; (1447c <led_init+0x100>)
|
|
14430: 4798 blx r3
|
|
}
|
|
14432: bc04 pop {r2}
|
|
14434: 4690 mov r8, r2
|
|
14436: bdf0 pop {r4, r5, r6, r7, pc}
|
|
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
|
|
14438: 2000 movs r0, #0
|
|
1443a: 4b13 ldr r3, [pc, #76] ; (14488 <led_init+0x10c>)
|
|
1443c: 4798 blx r3
|
|
1443e: 0103 lsls r3, r0, #4
|
|
14440: 1a18 subs r0, r3, r0
|
|
14442: 3050 adds r0, #80 ; 0x50
|
|
14444: 21a0 movs r1, #160 ; 0xa0
|
|
14446: 4b11 ldr r3, [pc, #68] ; (1448c <led_init+0x110>)
|
|
14448: 4798 blx r3
|
|
1444a: b202 sxth r2, r0
|
|
1444c: e7d4 b.n 143f8 <led_init+0x7c>
|
|
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
|
|
1444e: 2000 movs r0, #0
|
|
14450: 4b0d ldr r3, [pc, #52] ; (14488 <led_init+0x10c>)
|
|
14452: 4798 blx r3
|
|
14454: 0003 movs r3, r0
|
|
14456: 0080 lsls r0, r0, #2
|
|
14458: 18c0 adds r0, r0, r3
|
|
1445a: 3050 adds r0, #80 ; 0x50
|
|
1445c: 21a0 movs r1, #160 ; 0xa0
|
|
1445e: 4b0b ldr r3, [pc, #44] ; (1448c <led_init+0x110>)
|
|
14460: 4798 blx r3
|
|
14462: b202 sxth r2, r0
|
|
14464: e7e1 b.n 1442a <led_init+0xae>
|
|
14466: 46c0 nop ; (mov r8, r8)
|
|
14468: 20004c38 .word 0x20004c38
|
|
1446c: 00012495 .word 0x00012495
|
|
14470: 00004fb5 .word 0x00004fb5
|
|
14474: 20004c3c .word 0x20004c3c
|
|
14478: 00004e55 .word 0x00004e55
|
|
1447c: 00004cf5 .word 0x00004cf5
|
|
14480: 00010289 .word 0x00010289
|
|
14484: 00007fff .word 0x00007fff
|
|
14488: 0000f665 .word 0x0000f665
|
|
1448c: 00017881 .word 0x00017881
|
|
|
|
00014490 <lv_theme_material_init>:
|
|
{
|
|
14490: b5f0 push {r4, r5, r6, r7, lr}
|
|
14492: 46c6 mov lr, r8
|
|
14494: b500 push {lr}
|
|
14496: 4680 mov r8, r0
|
|
14498: 1c0f adds r7, r1, #0
|
|
1449a: 0015 movs r5, r2
|
|
1449c: 001e movs r6, r3
|
|
if(!inited) {
|
|
1449e: 4bfe ldr r3, [pc, #1016] ; (14898 <lv_theme_material_init+0x408>)
|
|
144a0: 781b ldrb r3, [r3, #0]
|
|
144a2: 2b00 cmp r3, #0
|
|
144a4: d101 bne.n 144aa <lv_theme_material_init+0x1a>
|
|
144a6: f001 fb9e bl 15be6 <lv_theme_material_init+0x1756>
|
|
theme.color_primary = color_primary;
|
|
144aa: 4cfc ldr r4, [pc, #1008] ; (1489c <lv_theme_material_init+0x40c>)
|
|
144ac: 4643 mov r3, r8
|
|
144ae: 80a3 strh r3, [r4, #4]
|
|
theme.color_secondary = color_secondary;
|
|
144b0: 80e7 strh r7, [r4, #6]
|
|
theme.font_small = font_small;
|
|
144b2: 60a6 str r6, [r4, #8]
|
|
theme.font_normal = font_normal;
|
|
144b4: 9b06 ldr r3, [sp, #24]
|
|
144b6: 60e3 str r3, [r4, #12]
|
|
theme.font_subtitle = font_subtitle;
|
|
144b8: 9b07 ldr r3, [sp, #28]
|
|
144ba: 6123 str r3, [r4, #16]
|
|
theme.font_title = font_title;
|
|
144bc: 9b08 ldr r3, [sp, #32]
|
|
144be: 6163 str r3, [r4, #20]
|
|
theme.flags = flags;
|
|
144c0: 61a5 str r5, [r4, #24]
|
|
basic_init();
|
|
144c2: 4bf7 ldr r3, [pc, #988] ; (148a0 <lv_theme_material_init+0x410>)
|
|
144c4: 4798 blx r3
|
|
bar_init();
|
|
144c6: 4bf7 ldr r3, [pc, #988] ; (148a4 <lv_theme_material_init+0x414>)
|
|
144c8: 4798 blx r3
|
|
led_init();
|
|
144ca: 4bf7 ldr r3, [pc, #988] ; (148a8 <lv_theme_material_init+0x418>)
|
|
144cc: 4798 blx r3
|
|
slider_init();
|
|
144ce: 4bf7 ldr r3, [pc, #988] ; (148ac <lv_theme_material_init+0x41c>)
|
|
144d0: 4798 blx r3
|
|
switch_init();
|
|
144d2: 4bf7 ldr r3, [pc, #988] ; (148b0 <lv_theme_material_init+0x420>)
|
|
144d4: 4798 blx r3
|
|
linemeter_init();
|
|
144d6: 4bf7 ldr r3, [pc, #988] ; (148b4 <lv_theme_material_init+0x424>)
|
|
144d8: 4798 blx r3
|
|
gauge_init();
|
|
144da: 4bf7 ldr r3, [pc, #988] ; (148b8 <lv_theme_material_init+0x428>)
|
|
144dc: 4798 blx r3
|
|
arc_init();
|
|
144de: 4bf7 ldr r3, [pc, #988] ; (148bc <lv_theme_material_init+0x42c>)
|
|
144e0: 4798 blx r3
|
|
style_init_reset(&styles->chart_bg);
|
|
144e2: 4df7 ldr r5, [pc, #988] ; (148c0 <lv_theme_material_init+0x430>)
|
|
144e4: 6828 ldr r0, [r5, #0]
|
|
144e6: 3040 adds r0, #64 ; 0x40
|
|
144e8: 4bf6 ldr r3, [pc, #984] ; (148c4 <lv_theme_material_init+0x434>)
|
|
144ea: 4798 blx r3
|
|
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
|
|
144ec: 6828 ldr r0, [r5, #0]
|
|
144ee: 3040 adds r0, #64 ; 0x40
|
|
144f0: 69a3 ldr r3, [r4, #24]
|
|
144f2: 079b lsls r3, r3, #30
|
|
144f4: d501 bpl.n 144fa <lv_theme_material_init+0x6a>
|
|
144f6: f001 fb7f bl 15bf8 <lv_theme_material_init+0x1768>
|
|
144fa: 2314 movs r3, #20
|
|
144fc: 212b movs r1, #43 ; 0x2b
|
|
144fe: 2217 movs r2, #23
|
|
14500: 0149 lsls r1, r1, #5
|
|
14502: 02db lsls r3, r3, #11
|
|
14504: 430a orrs r2, r1
|
|
14506: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
14508: 49ef ldr r1, [pc, #956] ; (148c8 <lv_theme_material_init+0x438>)
|
|
1450a: 4bf0 ldr r3, [pc, #960] ; (148cc <lv_theme_material_init+0x43c>)
|
|
1450c: 4798 blx r3
|
|
style_init_reset(&styles->chart_series_bg);
|
|
1450e: 4cec ldr r4, [pc, #944] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14510: 6820 ldr r0, [r4, #0]
|
|
14512: 3044 adds r0, #68 ; 0x44
|
|
14514: 4beb ldr r3, [pc, #940] ; (148c4 <lv_theme_material_init+0x434>)
|
|
14516: 4798 blx r3
|
|
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
|
|
14518: 6824 ldr r4, [r4, #0]
|
|
1451a: 3444 adds r4, #68 ; 0x44
|
|
1451c: 2000 movs r0, #0
|
|
1451e: 4bec ldr r3, [pc, #944] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14520: 4798 blx r3
|
|
14522: 3050 adds r0, #80 ; 0x50
|
|
14524: 2340 movs r3, #64 ; 0x40
|
|
14526: 33ff adds r3, #255 ; 0xff
|
|
14528: 2201 movs r2, #1
|
|
1452a: 4298 cmp r0, r3
|
|
1452c: d901 bls.n 14532 <lv_theme_material_init+0xa2>
|
|
1452e: f001 fb68 bl 15c02 <lv_theme_material_init+0x1772>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
14532: 2190 movs r1, #144 ; 0x90
|
|
14534: 0020 movs r0, r4
|
|
14536: 4be7 ldr r3, [pc, #924] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14538: 4798 blx r3
|
|
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
1453a: 4be1 ldr r3, [pc, #900] ; (148c0 <lv_theme_material_init+0x430>)
|
|
1453c: 681c ldr r4, [r3, #0]
|
|
1453e: 3444 adds r4, #68 ; 0x44
|
|
14540: 2000 movs r0, #0
|
|
14542: 4be3 ldr r3, [pc, #908] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14544: 4798 blx r3
|
|
14546: 0083 lsls r3, r0, #2
|
|
14548: 181b adds r3, r3, r0
|
|
1454a: 005b lsls r3, r3, #1
|
|
1454c: 3350 adds r3, #80 ; 0x50
|
|
1454e: 2140 movs r1, #64 ; 0x40
|
|
14550: 31ff adds r1, #255 ; 0xff
|
|
14552: 2201 movs r2, #1
|
|
14554: 428b cmp r3, r1
|
|
14556: d901 bls.n 1455c <lv_theme_material_init+0xcc>
|
|
14558: f001 fb5d bl 15c16 <lv_theme_material_init+0x1786>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar)
|
|
1455c: 2192 movs r1, #146 ; 0x92
|
|
1455e: 0020 movs r0, r4
|
|
14560: 4bdc ldr r3, [pc, #880] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14562: 4798 blx r3
|
|
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
14564: 4bd6 ldr r3, [pc, #856] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14566: 681c ldr r4, [r3, #0]
|
|
14568: 3444 adds r4, #68 ; 0x44
|
|
1456a: 2000 movs r0, #0
|
|
1456c: 4bd8 ldr r3, [pc, #864] ; (148d0 <lv_theme_material_init+0x440>)
|
|
1456e: 4798 blx r3
|
|
14570: 0083 lsls r3, r0, #2
|
|
14572: 181b adds r3, r3, r0
|
|
14574: 005b lsls r3, r3, #1
|
|
14576: 3350 adds r3, #80 ; 0x50
|
|
14578: 2140 movs r1, #64 ; 0x40
|
|
1457a: 31ff adds r1, #255 ; 0xff
|
|
1457c: 2201 movs r2, #1
|
|
1457e: 428b cmp r3, r1
|
|
14580: d901 bls.n 14586 <lv_theme_material_init+0xf6>
|
|
14582: f001 fb56 bl 15c32 <lv_theme_material_init+0x17a2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
|
|
14586: 2193 movs r1, #147 ; 0x93
|
|
14588: 0020 movs r0, r4
|
|
1458a: 4bd2 ldr r3, [pc, #840] ; (148d4 <lv_theme_material_init+0x444>)
|
|
1458c: 4798 blx r3
|
|
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
1458e: 4bcc ldr r3, [pc, #816] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14590: 6818 ldr r0, [r3, #0]
|
|
14592: 3044 adds r0, #68 ; 0x44
|
|
14594: 4bc1 ldr r3, [pc, #772] ; (1489c <lv_theme_material_init+0x40c>)
|
|
14596: 699b ldr r3, [r3, #24]
|
|
14598: 079b lsls r3, r3, #30
|
|
1459a: d501 bpl.n 145a0 <lv_theme_material_init+0x110>
|
|
1459c: f001 fb57 bl 15c4e <lv_theme_material_init+0x17be>
|
|
145a0: 2310 movs r3, #16
|
|
145a2: 2122 movs r1, #34 ; 0x22
|
|
145a4: 2212 movs r2, #18
|
|
145a6: 0149 lsls r1, r1, #5
|
|
145a8: 02db lsls r3, r3, #11
|
|
145aa: 430a orrs r2, r1
|
|
145ac: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
|
|
145ae: 2199 movs r1, #153 ; 0x99
|
|
145b0: 4bc6 ldr r3, [pc, #792] ; (148cc <lv_theme_material_init+0x43c>)
|
|
145b2: 4798 blx r3
|
|
style_init_reset(&styles->chart_series);
|
|
145b4: 4cc2 ldr r4, [pc, #776] ; (148c0 <lv_theme_material_init+0x430>)
|
|
145b6: 6820 ldr r0, [r4, #0]
|
|
145b8: 3048 adds r0, #72 ; 0x48
|
|
145ba: 4bc2 ldr r3, [pc, #776] ; (148c4 <lv_theme_material_init+0x434>)
|
|
145bc: 4798 blx r3
|
|
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
|
|
145be: 6824 ldr r4, [r4, #0]
|
|
145c0: 3448 adds r4, #72 ; 0x48
|
|
145c2: 2000 movs r0, #0
|
|
145c4: 4bc2 ldr r3, [pc, #776] ; (148d0 <lv_theme_material_init+0x440>)
|
|
145c6: 4798 blx r3
|
|
145c8: 0043 lsls r3, r0, #1
|
|
145ca: 1818 adds r0, r3, r0
|
|
145cc: 3050 adds r0, #80 ; 0x50
|
|
145ce: 2340 movs r3, #64 ; 0x40
|
|
145d0: 33ff adds r3, #255 ; 0xff
|
|
145d2: 2201 movs r2, #1
|
|
145d4: 4298 cmp r0, r3
|
|
145d6: d901 bls.n 145dc <lv_theme_material_init+0x14c>
|
|
145d8: f001 fb3e bl 15c58 <lv_theme_material_init+0x17c8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
|
|
145dc: 2190 movs r1, #144 ; 0x90
|
|
145de: 0020 movs r0, r4
|
|
145e0: 4bbc ldr r3, [pc, #752] ; (148d4 <lv_theme_material_init+0x444>)
|
|
145e2: 4798 blx r3
|
|
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
|
|
145e4: 4bb6 ldr r3, [pc, #728] ; (148c0 <lv_theme_material_init+0x430>)
|
|
145e6: 681c ldr r4, [r3, #0]
|
|
145e8: 3448 adds r4, #72 ; 0x48
|
|
145ea: 2000 movs r0, #0
|
|
145ec: 4bb8 ldr r3, [pc, #736] ; (148d0 <lv_theme_material_init+0x440>)
|
|
145ee: 4798 blx r3
|
|
145f0: 3014 adds r0, #20
|
|
145f2: 0080 lsls r0, r0, #2
|
|
145f4: 2340 movs r3, #64 ; 0x40
|
|
145f6: 33ff adds r3, #255 ; 0xff
|
|
145f8: 2201 movs r2, #1
|
|
145fa: 4298 cmp r0, r3
|
|
145fc: d901 bls.n 14602 <lv_theme_material_init+0x172>
|
|
145fe: f001 fb38 bl 15c72 <lv_theme_material_init+0x17e2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
|
|
14602: 2103 movs r1, #3
|
|
14604: 0020 movs r0, r4
|
|
14606: 4bb3 ldr r3, [pc, #716] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14608: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
|
|
1460a: 4bad ldr r3, [pc, #692] ; (148c0 <lv_theme_material_init+0x430>)
|
|
1460c: 681c ldr r4, [r3, #0]
|
|
1460e: 3448 adds r4, #72 ; 0x48
|
|
14610: 2000 movs r0, #0
|
|
14612: 4baf ldr r3, [pc, #700] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14614: 4798 blx r3
|
|
14616: 3028 adds r0, #40 ; 0x28
|
|
14618: 0040 lsls r0, r0, #1
|
|
1461a: 2340 movs r3, #64 ; 0x40
|
|
1461c: 33ff adds r3, #255 ; 0xff
|
|
1461e: 2201 movs r2, #1
|
|
14620: 4298 cmp r0, r3
|
|
14622: d901 bls.n 14628 <lv_theme_material_init+0x198>
|
|
14624: f001 fb30 bl 15c88 <lv_theme_material_init+0x17f8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
14628: 2114 movs r1, #20
|
|
1462a: 0020 movs r0, r4
|
|
1462c: 4ba9 ldr r3, [pc, #676] ; (148d4 <lv_theme_material_init+0x444>)
|
|
1462e: 4798 blx r3
|
|
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
|
|
14630: 4ba3 ldr r3, [pc, #652] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14632: 681c ldr r4, [r3, #0]
|
|
14634: 3448 adds r4, #72 ; 0x48
|
|
14636: 2000 movs r0, #0
|
|
14638: 4ba5 ldr r3, [pc, #660] ; (148d0 <lv_theme_material_init+0x440>)
|
|
1463a: 4798 blx r3
|
|
1463c: 3050 adds r0, #80 ; 0x50
|
|
1463e: 2340 movs r3, #64 ; 0x40
|
|
14640: 33ff adds r3, #255 ; 0xff
|
|
14642: 2201 movs r2, #1
|
|
14644: 4298 cmp r0, r3
|
|
14646: d901 bls.n 1464c <lv_theme_material_init+0x1bc>
|
|
14648: f001 fb29 bl 15c9e <lv_theme_material_init+0x180e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
1464c: 2101 movs r1, #1
|
|
1464e: 0020 movs r0, r4
|
|
14650: 4ba0 ldr r3, [pc, #640] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14652: 4798 blx r3
|
|
style_init_reset(&styles->calendar_header);
|
|
14654: 4c9a ldr r4, [pc, #616] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14656: 6820 ldr r0, [r4, #0]
|
|
14658: 3030 adds r0, #48 ; 0x30
|
|
1465a: 4b9a ldr r3, [pc, #616] ; (148c4 <lv_theme_material_init+0x434>)
|
|
1465c: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
1465e: 6824 ldr r4, [r4, #0]
|
|
14660: 3430 adds r4, #48 ; 0x30
|
|
14662: 2000 movs r0, #0
|
|
14664: 4b9c ldr r3, [pc, #624] ; (148d8 <lv_theme_material_init+0x448>)
|
|
14666: 4798 blx r3
|
|
14668: 2801 cmp r0, #1
|
|
1466a: d801 bhi.n 14670 <lv_theme_material_init+0x1e0>
|
|
1466c: f001 fb21 bl 15cb2 <lv_theme_material_init+0x1822>
|
|
14670: 2000 movs r0, #0
|
|
14672: 4b97 ldr r3, [pc, #604] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14674: 4798 blx r3
|
|
14676: 0103 lsls r3, r0, #4
|
|
14678: 1a1b subs r3, r3, r0
|
|
1467a: 005b lsls r3, r3, #1
|
|
1467c: 3350 adds r3, #80 ; 0x50
|
|
1467e: 2140 movs r1, #64 ; 0x40
|
|
14680: 31ff adds r1, #255 ; 0xff
|
|
14682: 2201 movs r2, #1
|
|
14684: 428b cmp r3, r1
|
|
14686: d901 bls.n 1468c <lv_theme_material_init+0x1fc>
|
|
14688: f001 fb2c bl 15ce4 <lv_theme_material_init+0x1854>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
1468c: 2110 movs r1, #16
|
|
1468e: 0020 movs r0, r4
|
|
14690: 4b90 ldr r3, [pc, #576] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14692: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
14694: 4b8a ldr r3, [pc, #552] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14696: 681c ldr r4, [r3, #0]
|
|
14698: 3430 adds r4, #48 ; 0x30
|
|
1469a: 2000 movs r0, #0
|
|
1469c: 4b8e ldr r3, [pc, #568] ; (148d8 <lv_theme_material_init+0x448>)
|
|
1469e: 4798 blx r3
|
|
146a0: 2801 cmp r0, #1
|
|
146a2: d801 bhi.n 146a8 <lv_theme_material_init+0x218>
|
|
146a4: f001 fb2b bl 15cfe <lv_theme_material_init+0x186e>
|
|
146a8: 2000 movs r0, #0
|
|
146aa: 4b89 ldr r3, [pc, #548] ; (148d0 <lv_theme_material_init+0x440>)
|
|
146ac: 4798 blx r3
|
|
146ae: 0103 lsls r3, r0, #4
|
|
146b0: 1a1b subs r3, r3, r0
|
|
146b2: 005b lsls r3, r3, #1
|
|
146b4: 3350 adds r3, #80 ; 0x50
|
|
146b6: 2140 movs r1, #64 ; 0x40
|
|
146b8: 31ff adds r1, #255 ; 0xff
|
|
146ba: 2201 movs r2, #1
|
|
146bc: 428b cmp r3, r1
|
|
146be: d901 bls.n 146c4 <lv_theme_material_init+0x234>
|
|
146c0: f001 fb36 bl 15d30 <lv_theme_material_init+0x18a0>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
146c4: 2112 movs r1, #18
|
|
146c6: 0020 movs r0, r4
|
|
146c8: 4b82 ldr r3, [pc, #520] ; (148d4 <lv_theme_material_init+0x444>)
|
|
146ca: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
146cc: 4b7c ldr r3, [pc, #496] ; (148c0 <lv_theme_material_init+0x430>)
|
|
146ce: 681c ldr r4, [r3, #0]
|
|
146d0: 3430 adds r4, #48 ; 0x30
|
|
146d2: 2000 movs r0, #0
|
|
146d4: 4b80 ldr r3, [pc, #512] ; (148d8 <lv_theme_material_init+0x448>)
|
|
146d6: 4798 blx r3
|
|
146d8: 2801 cmp r0, #1
|
|
146da: d801 bhi.n 146e0 <lv_theme_material_init+0x250>
|
|
146dc: f001 fb35 bl 15d4a <lv_theme_material_init+0x18ba>
|
|
146e0: 2000 movs r0, #0
|
|
146e2: 4b7b ldr r3, [pc, #492] ; (148d0 <lv_theme_material_init+0x440>)
|
|
146e4: 4798 blx r3
|
|
146e6: 0103 lsls r3, r0, #4
|
|
146e8: 1a1b subs r3, r3, r0
|
|
146ea: 005b lsls r3, r3, #1
|
|
146ec: 3350 adds r3, #80 ; 0x50
|
|
146ee: 2140 movs r1, #64 ; 0x40
|
|
146f0: 31ff adds r1, #255 ; 0xff
|
|
146f2: 2201 movs r2, #1
|
|
146f4: 428b cmp r3, r1
|
|
146f6: d901 bls.n 146fc <lv_theme_material_init+0x26c>
|
|
146f8: f001 fb40 bl 15d7c <lv_theme_material_init+0x18ec>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
146fc: 2113 movs r1, #19
|
|
146fe: 0020 movs r0, r4
|
|
14700: 4b74 ldr r3, [pc, #464] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14702: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
14704: 4b6e ldr r3, [pc, #440] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14706: 681c ldr r4, [r3, #0]
|
|
14708: 3430 adds r4, #48 ; 0x30
|
|
1470a: 2000 movs r0, #0
|
|
1470c: 4b72 ldr r3, [pc, #456] ; (148d8 <lv_theme_material_init+0x448>)
|
|
1470e: 4798 blx r3
|
|
14710: 2801 cmp r0, #1
|
|
14712: d801 bhi.n 14718 <lv_theme_material_init+0x288>
|
|
14714: f001 fb3f bl 15d96 <lv_theme_material_init+0x1906>
|
|
14718: 2000 movs r0, #0
|
|
1471a: 4b6d ldr r3, [pc, #436] ; (148d0 <lv_theme_material_init+0x440>)
|
|
1471c: 4798 blx r3
|
|
1471e: 0103 lsls r3, r0, #4
|
|
14720: 1a1b subs r3, r3, r0
|
|
14722: 005b lsls r3, r3, #1
|
|
14724: 3350 adds r3, #80 ; 0x50
|
|
14726: 2140 movs r1, #64 ; 0x40
|
|
14728: 31ff adds r1, #255 ; 0xff
|
|
1472a: 2201 movs r2, #1
|
|
1472c: 428b cmp r3, r1
|
|
1472e: d901 bls.n 14734 <lv_theme_material_init+0x2a4>
|
|
14730: f001 fb64 bl 15dfc <lv_theme_material_init+0x196c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
14734: 2111 movs r1, #17
|
|
14736: 0020 movs r0, r4
|
|
14738: 4b66 ldr r3, [pc, #408] ; (148d4 <lv_theme_material_init+0x444>)
|
|
1473a: 4798 blx r3
|
|
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
|
|
1473c: 4b60 ldr r3, [pc, #384] ; (148c0 <lv_theme_material_init+0x430>)
|
|
1473e: 6818 ldr r0, [r3, #0]
|
|
14740: 3030 adds r0, #48 ; 0x30
|
|
14742: 4b56 ldr r3, [pc, #344] ; (1489c <lv_theme_material_init+0x40c>)
|
|
14744: 699b ldr r3, [r3, #24]
|
|
14746: 079b lsls r3, r3, #30
|
|
14748: d501 bpl.n 1474e <lv_theme_material_init+0x2be>
|
|
1474a: f001 fb64 bl 15e16 <lv_theme_material_init+0x1986>
|
|
1474e: 223f movs r2, #63 ; 0x3f
|
|
14750: 231f movs r3, #31
|
|
14752: 0152 lsls r2, r2, #5
|
|
14754: 02d9 lsls r1, r3, #11
|
|
14756: 431a orrs r2, r3
|
|
14758: 430a orrs r2, r1
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
1475a: 4960 ldr r1, [pc, #384] ; (148dc <lv_theme_material_init+0x44c>)
|
|
1475c: 4b5b ldr r3, [pc, #364] ; (148cc <lv_theme_material_init+0x43c>)
|
|
1475e: 4798 blx r3
|
|
style_init_reset(&styles->calendar_daynames);
|
|
14760: 4c57 ldr r4, [pc, #348] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14762: 6820 ldr r0, [r4, #0]
|
|
14764: 3034 adds r0, #52 ; 0x34
|
|
14766: 4b57 ldr r3, [pc, #348] ; (148c4 <lv_theme_material_init+0x434>)
|
|
14768: 4798 blx r3
|
|
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
|
|
1476a: 6820 ldr r0, [r4, #0]
|
|
1476c: 3034 adds r0, #52 ; 0x34
|
|
1476e: 4b4b ldr r3, [pc, #300] ; (1489c <lv_theme_material_init+0x40c>)
|
|
14770: 699b ldr r3, [r3, #24]
|
|
14772: 079b lsls r3, r3, #30
|
|
14774: d501 bpl.n 1477a <lv_theme_material_init+0x2ea>
|
|
14776: f001 fb52 bl 15e1e <lv_theme_material_init+0x198e>
|
|
1477a: 231d movs r3, #29
|
|
1477c: 213b movs r1, #59 ; 0x3b
|
|
1477e: 221d movs r2, #29
|
|
14780: 0149 lsls r1, r1, #5
|
|
14782: 02db lsls r3, r3, #11
|
|
14784: 430a orrs r2, r1
|
|
14786: 431a orrs r2, r3
|
|
14788: 494f ldr r1, [pc, #316] ; (148c8 <lv_theme_material_init+0x438>)
|
|
1478a: 4b50 ldr r3, [pc, #320] ; (148cc <lv_theme_material_init+0x43c>)
|
|
1478c: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
1478e: 4b4c ldr r3, [pc, #304] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14790: 681c ldr r4, [r3, #0]
|
|
14792: 3434 adds r4, #52 ; 0x34
|
|
14794: 2000 movs r0, #0
|
|
14796: 4b50 ldr r3, [pc, #320] ; (148d8 <lv_theme_material_init+0x448>)
|
|
14798: 4798 blx r3
|
|
1479a: 2801 cmp r0, #1
|
|
1479c: d801 bhi.n 147a2 <lv_theme_material_init+0x312>
|
|
1479e: f001 fb43 bl 15e28 <lv_theme_material_init+0x1998>
|
|
147a2: 2000 movs r0, #0
|
|
147a4: 4b4a ldr r3, [pc, #296] ; (148d0 <lv_theme_material_init+0x440>)
|
|
147a6: 4798 blx r3
|
|
147a8: 0103 lsls r3, r0, #4
|
|
147aa: 1a1b subs r3, r3, r0
|
|
147ac: 005b lsls r3, r3, #1
|
|
147ae: 3350 adds r3, #80 ; 0x50
|
|
147b0: 2140 movs r1, #64 ; 0x40
|
|
147b2: 31ff adds r1, #255 ; 0xff
|
|
147b4: 2201 movs r2, #1
|
|
147b6: 428b cmp r3, r1
|
|
147b8: d901 bls.n 147be <lv_theme_material_init+0x32e>
|
|
147ba: f001 fb4e bl 15e5a <lv_theme_material_init+0x19ca>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
147be: 2112 movs r1, #18
|
|
147c0: 0020 movs r0, r4
|
|
147c2: 4b44 ldr r3, [pc, #272] ; (148d4 <lv_theme_material_init+0x444>)
|
|
147c4: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
147c6: 4b3e ldr r3, [pc, #248] ; (148c0 <lv_theme_material_init+0x430>)
|
|
147c8: 681c ldr r4, [r3, #0]
|
|
147ca: 3434 adds r4, #52 ; 0x34
|
|
147cc: 2000 movs r0, #0
|
|
147ce: 4b42 ldr r3, [pc, #264] ; (148d8 <lv_theme_material_init+0x448>)
|
|
147d0: 4798 blx r3
|
|
147d2: 2801 cmp r0, #1
|
|
147d4: d801 bhi.n 147da <lv_theme_material_init+0x34a>
|
|
147d6: f001 fb4d bl 15e74 <lv_theme_material_init+0x19e4>
|
|
147da: 2000 movs r0, #0
|
|
147dc: 4b3c ldr r3, [pc, #240] ; (148d0 <lv_theme_material_init+0x440>)
|
|
147de: 4798 blx r3
|
|
147e0: 0103 lsls r3, r0, #4
|
|
147e2: 1a1b subs r3, r3, r0
|
|
147e4: 005b lsls r3, r3, #1
|
|
147e6: 3350 adds r3, #80 ; 0x50
|
|
147e8: 2140 movs r1, #64 ; 0x40
|
|
147ea: 31ff adds r1, #255 ; 0xff
|
|
147ec: 2201 movs r2, #1
|
|
147ee: 428b cmp r3, r1
|
|
147f0: d901 bls.n 147f6 <lv_theme_material_init+0x366>
|
|
147f2: f001 fb58 bl 15ea6 <lv_theme_material_init+0x1a16>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
147f6: 2113 movs r1, #19
|
|
147f8: 0020 movs r0, r4
|
|
147fa: 4b36 ldr r3, [pc, #216] ; (148d4 <lv_theme_material_init+0x444>)
|
|
147fc: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
147fe: 4b30 ldr r3, [pc, #192] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14800: 681c ldr r4, [r3, #0]
|
|
14802: 3434 adds r4, #52 ; 0x34
|
|
14804: 2000 movs r0, #0
|
|
14806: 4b34 ldr r3, [pc, #208] ; (148d8 <lv_theme_material_init+0x448>)
|
|
14808: 4798 blx r3
|
|
1480a: 2801 cmp r0, #1
|
|
1480c: d801 bhi.n 14812 <lv_theme_material_init+0x382>
|
|
1480e: f001 fb57 bl 15ec0 <lv_theme_material_init+0x1a30>
|
|
14812: 2000 movs r0, #0
|
|
14814: 4b2e ldr r3, [pc, #184] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14816: 4798 blx r3
|
|
14818: 0103 lsls r3, r0, #4
|
|
1481a: 1a1b subs r3, r3, r0
|
|
1481c: 005b lsls r3, r3, #1
|
|
1481e: 3350 adds r3, #80 ; 0x50
|
|
14820: 2140 movs r1, #64 ; 0x40
|
|
14822: 31ff adds r1, #255 ; 0xff
|
|
14824: 2201 movs r2, #1
|
|
14826: 428b cmp r3, r1
|
|
14828: d901 bls.n 1482e <lv_theme_material_init+0x39e>
|
|
1482a: f001 fb62 bl 15ef2 <lv_theme_material_init+0x1a62>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
1482e: 2111 movs r1, #17
|
|
14830: 0020 movs r0, r4
|
|
14832: 4b28 ldr r3, [pc, #160] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14834: 4798 blx r3
|
|
style_init_reset(&styles->calendar_date_nums);
|
|
14836: 4c22 ldr r4, [pc, #136] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14838: 6820 ldr r0, [r4, #0]
|
|
1483a: 302c adds r0, #44 ; 0x2c
|
|
1483c: 4b21 ldr r3, [pc, #132] ; (148c4 <lv_theme_material_init+0x434>)
|
|
1483e: 4798 blx r3
|
|
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
|
|
14840: 6824 ldr r4, [r4, #0]
|
|
14842: 342c adds r4, #44 ; 0x2c
|
|
14844: 2000 movs r0, #0
|
|
14846: 4b22 ldr r3, [pc, #136] ; (148d0 <lv_theme_material_init+0x440>)
|
|
14848: 4798 blx r3
|
|
1484a: 3014 adds r0, #20
|
|
1484c: 0080 lsls r0, r0, #2
|
|
1484e: 2340 movs r3, #64 ; 0x40
|
|
14850: 33ff adds r3, #255 ; 0xff
|
|
14852: 2201 movs r2, #1
|
|
14854: 4298 cmp r0, r3
|
|
14856: d901 bls.n 1485c <lv_theme_material_init+0x3cc>
|
|
14858: f001 fb58 bl 15f0c <lv_theme_material_init+0x1a7c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
1485c: 2101 movs r1, #1
|
|
1485e: 0020 movs r0, r4
|
|
14860: 4b1c ldr r3, [pc, #112] ; (148d4 <lv_theme_material_init+0x444>)
|
|
14862: 4798 blx r3
|
|
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
|
|
14864: 4b16 ldr r3, [pc, #88] ; (148c0 <lv_theme_material_init+0x430>)
|
|
14866: 6818 ldr r0, [r3, #0]
|
|
14868: 302c adds r0, #44 ; 0x2c
|
|
1486a: 4b0c ldr r3, [pc, #48] ; (1489c <lv_theme_material_init+0x40c>)
|
|
1486c: 699b ldr r3, [r3, #24]
|
|
1486e: 079b lsls r3, r3, #30
|
|
14870: d501 bpl.n 14876 <lv_theme_material_init+0x3e6>
|
|
14872: f001 fb56 bl 15f22 <lv_theme_material_init+0x1a92>
|
|
14876: 231f movs r3, #31
|
|
14878: 213f movs r1, #63 ; 0x3f
|
|
1487a: 221f movs r2, #31
|
|
1487c: 0149 lsls r1, r1, #5
|
|
1487e: 02db lsls r3, r3, #11
|
|
14880: 430a orrs r2, r1
|
|
14882: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
14884: 4916 ldr r1, [pc, #88] ; (148e0 <lv_theme_material_init+0x450>)
|
|
14886: 4b11 ldr r3, [pc, #68] ; (148cc <lv_theme_material_init+0x43c>)
|
|
14888: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40);
|
|
1488a: 4b0d ldr r3, [pc, #52] ; (148c0 <lv_theme_material_init+0x430>)
|
|
1488c: 6818 ldr r0, [r3, #0]
|
|
1488e: 302c adds r0, #44 ; 0x2c
|
|
14890: 4b02 ldr r3, [pc, #8] ; (1489c <lv_theme_material_init+0x40c>)
|
|
14892: 699b ldr r3, [r3, #24]
|
|
14894: 2233 movs r2, #51 ; 0x33
|
|
14896: e025 b.n 148e4 <lv_theme_material_init+0x454>
|
|
14898: 20004c34 .word 0x20004c34
|
|
1489c: 20004c3c .word 0x20004c3c
|
|
148a0: 000124b9 .word 0x000124b9
|
|
148a4: 00013685 .word 0x00013685
|
|
148a8: 0001437d .word 0x0001437d
|
|
148ac: 000137d9 .word 0x000137d9
|
|
148b0: 00013a6d .word 0x00013a6d
|
|
148b4: 00013bad .word 0x00013bad
|
|
148b8: 00013dd1 .word 0x00013dd1
|
|
148bc: 00014279 .word 0x00014279
|
|
148c0: 20004c38 .word 0x20004c38
|
|
148c4: 00012495 .word 0x00012495
|
|
148c8: 00008089 .word 0x00008089
|
|
148cc: 00004e55 .word 0x00004e55
|
|
148d0: 0000f665 .word 0x0000f665
|
|
148d4: 00004cf5 .word 0x00004cf5
|
|
148d8: 0000f681 .word 0x0000f681
|
|
148dc: 00009089 .word 0x00009089
|
|
148e0: 00008189 .word 0x00008189
|
|
148e4: 079b lsls r3, r3, #30
|
|
148e6: d400 bmi.n 148ea <lv_theme_material_init+0x45a>
|
|
148e8: 3233 adds r2, #51 ; 0x33
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
148ea: 2196 movs r1, #150 ; 0x96
|
|
148ec: 0049 lsls r1, r1, #1
|
|
148ee: 4dfa ldr r5, [pc, #1000] ; (14cd8 <lv_theme_material_init+0x848>)
|
|
148f0: 47a8 blx r5
|
|
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20);
|
|
148f2: 4cfa ldr r4, [pc, #1000] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
148f4: 6820 ldr r0, [r4, #0]
|
|
148f6: 302c adds r0, #44 ; 0x2c
|
|
148f8: 2233 movs r2, #51 ; 0x33
|
|
148fa: 49f9 ldr r1, [pc, #996] ; (14ce0 <lv_theme_material_init+0x850>)
|
|
148fc: 47a8 blx r5
|
|
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER);
|
|
148fe: 6820 ldr r0, [r4, #0]
|
|
14900: 302c adds r0, #44 ; 0x2c
|
|
14902: 22ff movs r2, #255 ; 0xff
|
|
14904: 218b movs r1, #139 ; 0x8b
|
|
14906: 0089 lsls r1, r1, #2
|
|
14908: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE);
|
|
1490a: 6820 ldr r0, [r4, #0]
|
|
1490c: 302c adds r0, #44 ; 0x2c
|
|
1490e: 4bf5 ldr r3, [pc, #980] ; (14ce4 <lv_theme_material_init+0x854>)
|
|
14910: 881a ldrh r2, [r3, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
14912: 49f5 ldr r1, [pc, #980] ; (14ce8 <lv_theme_material_init+0x858>)
|
|
14914: 4ef5 ldr r6, [pc, #980] ; (14cec <lv_theme_material_init+0x85c>)
|
|
14916: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary);
|
|
14918: 6820 ldr r0, [r4, #0]
|
|
1491a: 302c adds r0, #44 ; 0x2c
|
|
1491c: 4df4 ldr r5, [pc, #976] ; (14cf0 <lv_theme_material_init+0x860>)
|
|
1491e: 88aa ldrh r2, [r5, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
14920: 49f4 ldr r1, [pc, #976] ; (14cf4 <lv_theme_material_init+0x864>)
|
|
14922: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
|
|
14924: 6820 ldr r0, [r4, #0]
|
|
14926: 302c adds r0, #44 ; 0x2c
|
|
14928: 69ab ldr r3, [r5, #24]
|
|
1492a: 079b lsls r3, r3, #30
|
|
1492c: d501 bpl.n 14932 <lv_theme_material_init+0x4a2>
|
|
1492e: f001 fafd bl 15f2c <lv_theme_material_init+0x1a9c>
|
|
14932: 223f movs r2, #63 ; 0x3f
|
|
14934: 231f movs r3, #31
|
|
14936: 0152 lsls r2, r2, #5
|
|
14938: 02d9 lsls r1, r3, #11
|
|
1493a: 431a orrs r2, r3
|
|
1493c: 430a orrs r2, r1
|
|
1493e: 2129 movs r1, #41 ; 0x29
|
|
14940: 4eea ldr r6, [pc, #936] ; (14cec <lv_theme_material_init+0x85c>)
|
|
14942: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
|
|
14944: 4ce5 ldr r4, [pc, #916] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14946: 6820 ldr r0, [r4, #0]
|
|
14948: 302c adds r0, #44 ; 0x2c
|
|
1494a: 4fe9 ldr r7, [pc, #932] ; (14cf0 <lv_theme_material_init+0x860>)
|
|
1494c: 88ba ldrh r2, [r7, #4]
|
|
1494e: 212a movs r1, #42 ; 0x2a
|
|
14950: 31ff adds r1, #255 ; 0xff
|
|
14952: 47b0 blx r6
|
|
lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2);
|
|
14954: 6820 ldr r0, [r4, #0]
|
|
14956: 302c adds r0, #44 ; 0x2c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
14958: 2202 movs r2, #2
|
|
1495a: 2198 movs r1, #152 ; 0x98
|
|
1495c: 0049 lsls r1, r1, #1
|
|
1495e: 4de6 ldr r5, [pc, #920] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14960: 47a8 blx r5
|
|
lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT);
|
|
14962: 6820 ldr r0, [r4, #0]
|
|
14964: 302c adds r0, #44 ; 0x2c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
14966: 2204 movs r2, #4
|
|
14968: 2132 movs r1, #50 ; 0x32
|
|
1496a: 31ff adds r1, #255 ; 0xff
|
|
1496c: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
|
|
1496e: 6820 ldr r0, [r4, #0]
|
|
14970: 302c adds r0, #44 ; 0x2c
|
|
14972: 88ba ldrh r2, [r7, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
14974: 213a movs r1, #58 ; 0x3a
|
|
14976: 31ff adds r1, #255 ; 0xff
|
|
14978: 47b0 blx r6
|
|
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
|
|
1497a: 6824 ldr r4, [r4, #0]
|
|
1497c: 342c adds r4, #44 ; 0x2c
|
|
1497e: 2000 movs r0, #0
|
|
14980: 4bde ldr r3, [pc, #888] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14982: 4798 blx r3
|
|
14984: 0043 lsls r3, r0, #1
|
|
14986: 1818 adds r0, r3, r0
|
|
14988: 3050 adds r0, #80 ; 0x50
|
|
1498a: 2340 movs r3, #64 ; 0x40
|
|
1498c: 33ff adds r3, #255 ; 0xff
|
|
1498e: 2201 movs r2, #1
|
|
14990: 4298 cmp r0, r3
|
|
14992: d901 bls.n 14998 <lv_theme_material_init+0x508>
|
|
14994: f001 face bl 15f34 <lv_theme_material_init+0x1aa4>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
14998: 2114 movs r1, #20
|
|
1499a: 0020 movs r0, r4
|
|
1499c: 4bd6 ldr r3, [pc, #856] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
1499e: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
149a0: 4bce ldr r3, [pc, #824] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
149a2: 681c ldr r4, [r3, #0]
|
|
149a4: 342c adds r4, #44 ; 0x2c
|
|
149a6: 2000 movs r0, #0
|
|
149a8: 4bd5 ldr r3, [pc, #852] ; (14d00 <lv_theme_material_init+0x870>)
|
|
149aa: 4798 blx r3
|
|
149ac: 2801 cmp r0, #1
|
|
149ae: d801 bhi.n 149b4 <lv_theme_material_init+0x524>
|
|
149b0: f001 facd bl 15f4e <lv_theme_material_init+0x1abe>
|
|
149b4: 2000 movs r0, #0
|
|
149b6: 4bd1 ldr r3, [pc, #836] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
149b8: 4798 blx r3
|
|
149ba: 0103 lsls r3, r0, #4
|
|
149bc: 1a1b subs r3, r3, r0
|
|
149be: 005b lsls r3, r3, #1
|
|
149c0: 3350 adds r3, #80 ; 0x50
|
|
149c2: 2140 movs r1, #64 ; 0x40
|
|
149c4: 31ff adds r1, #255 ; 0xff
|
|
149c6: 2201 movs r2, #1
|
|
149c8: 428b cmp r3, r1
|
|
149ca: d901 bls.n 149d0 <lv_theme_material_init+0x540>
|
|
149cc: f001 fad8 bl 15f80 <lv_theme_material_init+0x1af0>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
149d0: 2112 movs r1, #18
|
|
149d2: 0020 movs r0, r4
|
|
149d4: 4bc8 ldr r3, [pc, #800] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
149d6: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
149d8: 4bc0 ldr r3, [pc, #768] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
149da: 681c ldr r4, [r3, #0]
|
|
149dc: 342c adds r4, #44 ; 0x2c
|
|
149de: 2000 movs r0, #0
|
|
149e0: 4bc7 ldr r3, [pc, #796] ; (14d00 <lv_theme_material_init+0x870>)
|
|
149e2: 4798 blx r3
|
|
149e4: 2801 cmp r0, #1
|
|
149e6: d801 bhi.n 149ec <lv_theme_material_init+0x55c>
|
|
149e8: f001 fad7 bl 15f9a <lv_theme_material_init+0x1b0a>
|
|
149ec: 2000 movs r0, #0
|
|
149ee: 4bc3 ldr r3, [pc, #780] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
149f0: 4798 blx r3
|
|
149f2: 0103 lsls r3, r0, #4
|
|
149f4: 1a1b subs r3, r3, r0
|
|
149f6: 005b lsls r3, r3, #1
|
|
149f8: 3350 adds r3, #80 ; 0x50
|
|
149fa: 2140 movs r1, #64 ; 0x40
|
|
149fc: 31ff adds r1, #255 ; 0xff
|
|
149fe: 2201 movs r2, #1
|
|
14a00: 428b cmp r3, r1
|
|
14a02: d901 bls.n 14a08 <lv_theme_material_init+0x578>
|
|
14a04: f001 fae2 bl 15fcc <lv_theme_material_init+0x1b3c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
14a08: 2113 movs r1, #19
|
|
14a0a: 0020 movs r0, r4
|
|
14a0c: 4bba ldr r3, [pc, #744] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14a0e: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
14a10: 4bb2 ldr r3, [pc, #712] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14a12: 681c ldr r4, [r3, #0]
|
|
14a14: 342c adds r4, #44 ; 0x2c
|
|
14a16: 2000 movs r0, #0
|
|
14a18: 4bb9 ldr r3, [pc, #740] ; (14d00 <lv_theme_material_init+0x870>)
|
|
14a1a: 4798 blx r3
|
|
14a1c: 2801 cmp r0, #1
|
|
14a1e: d801 bhi.n 14a24 <lv_theme_material_init+0x594>
|
|
14a20: f001 fae1 bl 15fe6 <lv_theme_material_init+0x1b56>
|
|
14a24: 2000 movs r0, #0
|
|
14a26: 4bb5 ldr r3, [pc, #724] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14a28: 4798 blx r3
|
|
14a2a: 0103 lsls r3, r0, #4
|
|
14a2c: 1a1b subs r3, r3, r0
|
|
14a2e: 005b lsls r3, r3, #1
|
|
14a30: 3350 adds r3, #80 ; 0x50
|
|
14a32: 2140 movs r1, #64 ; 0x40
|
|
14a34: 31ff adds r1, #255 ; 0xff
|
|
14a36: 2201 movs r2, #1
|
|
14a38: 428b cmp r3, r1
|
|
14a3a: d901 bls.n 14a40 <lv_theme_material_init+0x5b0>
|
|
14a3c: f001 faec bl 16018 <lv_theme_material_init+0x1b88>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
14a40: 2111 movs r1, #17
|
|
14a42: 0020 movs r0, r4
|
|
14a44: 4bac ldr r3, [pc, #688] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14a46: 4798 blx r3
|
|
style_init_reset(&styles->cpicker_bg);
|
|
14a48: 4ca4 ldr r4, [pc, #656] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14a4a: 6820 ldr r0, [r4, #0]
|
|
14a4c: 3038 adds r0, #56 ; 0x38
|
|
14a4e: 4bad ldr r3, [pc, #692] ; (14d04 <lv_theme_material_init+0x874>)
|
|
14a50: 4798 blx r3
|
|
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
|
|
14a52: 6824 ldr r4, [r4, #0]
|
|
14a54: 3438 adds r4, #56 ; 0x38
|
|
14a56: 2000 movs r0, #0
|
|
14a58: 4ba8 ldr r3, [pc, #672] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14a5a: 4798 blx r3
|
|
14a5c: 0103 lsls r3, r0, #4
|
|
14a5e: 1a1b subs r3, r3, r0
|
|
14a60: 005b lsls r3, r3, #1
|
|
14a62: 3350 adds r3, #80 ; 0x50
|
|
14a64: 2140 movs r1, #64 ; 0x40
|
|
14a66: 31ff adds r1, #255 ; 0xff
|
|
14a68: 2201 movs r2, #1
|
|
14a6a: 428b cmp r3, r1
|
|
14a6c: d901 bls.n 14a72 <lv_theme_material_init+0x5e2>
|
|
14a6e: f001 fae0 bl 16032 <lv_theme_material_init+0x1ba2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
|
|
14a72: 21c0 movs r1, #192 ; 0xc0
|
|
14a74: 0020 movs r0, r4
|
|
14a76: 4ba0 ldr r3, [pc, #640] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14a78: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
14a7a: 4c98 ldr r4, [pc, #608] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14a7c: 6820 ldr r0, [r4, #0]
|
|
14a7e: 3038 adds r0, #56 ; 0x38
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
14a80: 22ff movs r2, #255 ; 0xff
|
|
14a82: 212c movs r1, #44 ; 0x2c
|
|
14a84: 4b94 ldr r3, [pc, #592] ; (14cd8 <lv_theme_material_init+0x848>)
|
|
14a86: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
|
|
14a88: 6820 ldr r0, [r4, #0]
|
|
14a8a: 3038 adds r0, #56 ; 0x38
|
|
14a8c: 4b98 ldr r3, [pc, #608] ; (14cf0 <lv_theme_material_init+0x860>)
|
|
14a8e: 699b ldr r3, [r3, #24]
|
|
14a90: 079b lsls r3, r3, #30
|
|
14a92: d501 bpl.n 14a98 <lv_theme_material_init+0x608>
|
|
14a94: f001 fada bl 1604c <lv_theme_material_init+0x1bbc>
|
|
14a98: 2308 movs r3, #8
|
|
14a9a: 2112 movs r1, #18
|
|
14a9c: 220b movs r2, #11
|
|
14a9e: 0149 lsls r1, r1, #5
|
|
14aa0: 02db lsls r3, r3, #11
|
|
14aa2: 430a orrs r2, r1
|
|
14aa4: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
14aa6: 2129 movs r1, #41 ; 0x29
|
|
14aa8: 4b90 ldr r3, [pc, #576] ; (14cec <lv_theme_material_init+0x85c>)
|
|
14aaa: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
|
|
14aac: 4b8b ldr r3, [pc, #556] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14aae: 681c ldr r4, [r3, #0]
|
|
14ab0: 3438 adds r4, #56 ; 0x38
|
|
14ab2: 2000 movs r0, #0
|
|
14ab4: 4b91 ldr r3, [pc, #580] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14ab6: 4798 blx r3
|
|
14ab8: 0083 lsls r3, r0, #2
|
|
14aba: 181b adds r3, r3, r0
|
|
14abc: 009b lsls r3, r3, #2
|
|
14abe: 3350 adds r3, #80 ; 0x50
|
|
14ac0: 2140 movs r1, #64 ; 0x40
|
|
14ac2: 31ff adds r1, #255 ; 0xff
|
|
14ac4: 2201 movs r2, #1
|
|
14ac6: 428b cmp r3, r1
|
|
14ac8: d901 bls.n 14ace <lv_theme_material_init+0x63e>
|
|
14aca: f001 fac4 bl 16056 <lv_theme_material_init+0x1bc6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
14ace: 2114 movs r1, #20
|
|
14ad0: 0020 movs r0, r4
|
|
14ad2: 4e89 ldr r6, [pc, #548] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14ad4: 47b0 blx r6
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14ad6: 4d8c ldr r5, [pc, #560] ; (14d08 <lv_theme_material_init+0x878>)
|
|
lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
14ad8: 4c80 ldr r4, [pc, #512] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14ada: 6820 ldr r0, [r4, #0]
|
|
14adc: 3038 adds r0, #56 ; 0x38
|
|
14ade: 002a movs r2, r5
|
|
14ae0: 2101 movs r1, #1
|
|
14ae2: 47b0 blx r6
|
|
style_init_reset(&styles->cpicker_indic);
|
|
14ae4: 6820 ldr r0, [r4, #0]
|
|
14ae6: 303c adds r0, #60 ; 0x3c
|
|
14ae8: 4b86 ldr r3, [pc, #536] ; (14d04 <lv_theme_material_init+0x874>)
|
|
14aea: 4798 blx r3
|
|
lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
14aec: 6820 ldr r0, [r4, #0]
|
|
14aee: 303c adds r0, #60 ; 0x3c
|
|
14af0: 002a movs r2, r5
|
|
14af2: 2101 movs r1, #1
|
|
14af4: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
|
14af6: 6820 ldr r0, [r4, #0]
|
|
14af8: 303c adds r0, #60 ; 0x3c
|
|
14afa: 4f7a ldr r7, [pc, #488] ; (14ce4 <lv_theme_material_init+0x854>)
|
|
14afc: 883a ldrh r2, [r7, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
14afe: 2129 movs r1, #41 ; 0x29
|
|
14b00: 4d7a ldr r5, [pc, #488] ; (14cec <lv_theme_material_init+0x85c>)
|
|
14b02: 47a8 blx r5
|
|
lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
14b04: 6820 ldr r0, [r4, #0]
|
|
14b06: 303c adds r0, #60 ; 0x3c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
14b08: 22ff movs r2, #255 ; 0xff
|
|
14b0a: 212c movs r1, #44 ; 0x2c
|
|
14b0c: 4b72 ldr r3, [pc, #456] ; (14cd8 <lv_theme_material_init+0x848>)
|
|
14b0e: 4798 blx r3
|
|
lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2);
|
|
14b10: 6820 ldr r0, [r4, #0]
|
|
14b12: 303c adds r0, #60 ; 0x3c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
14b14: 2202 movs r2, #2
|
|
14b16: 2130 movs r1, #48 ; 0x30
|
|
14b18: 47b0 blx r6
|
|
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY);
|
|
14b1a: 6820 ldr r0, [r4, #0]
|
|
14b1c: 303c adds r0, #60 ; 0x3c
|
|
14b1e: 88ba ldrh r2, [r7, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
14b20: 2139 movs r1, #57 ; 0x39
|
|
14b22: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary);
|
|
14b24: 6820 ldr r0, [r4, #0]
|
|
14b26: 303c adds r0, #60 ; 0x3c
|
|
14b28: 4e71 ldr r6, [pc, #452] ; (14cf0 <lv_theme_material_init+0x860>)
|
|
14b2a: 88b2 ldrh r2, [r6, #4]
|
|
14b2c: 4977 ldr r1, [pc, #476] ; (14d0c <lv_theme_material_init+0x87c>)
|
|
14b2e: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary);
|
|
14b30: 6820 ldr r0, [r4, #0]
|
|
14b32: 303c adds r0, #60 ; 0x3c
|
|
14b34: 88f2 ldrh r2, [r6, #6]
|
|
14b36: 4976 ldr r1, [pc, #472] ; (14d10 <lv_theme_material_init+0x880>)
|
|
14b38: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
14b3a: 6824 ldr r4, [r4, #0]
|
|
14b3c: 343c adds r4, #60 ; 0x3c
|
|
14b3e: 2000 movs r0, #0
|
|
14b40: 4b6e ldr r3, [pc, #440] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14b42: 4798 blx r3
|
|
14b44: 0003 movs r3, r0
|
|
14b46: 0040 lsls r0, r0, #1
|
|
14b48: 18c0 adds r0, r0, r3
|
|
14b4a: 0080 lsls r0, r0, #2
|
|
14b4c: 18c0 adds r0, r0, r3
|
|
14b4e: 3050 adds r0, #80 ; 0x50
|
|
14b50: 2340 movs r3, #64 ; 0x40
|
|
14b52: 33ff adds r3, #255 ; 0xff
|
|
14b54: 2201 movs r2, #1
|
|
14b56: 4298 cmp r0, r3
|
|
14b58: d901 bls.n 14b5e <lv_theme_material_init+0x6ce>
|
|
14b5a: f001 fa8a bl 16072 <lv_theme_material_init+0x1be2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
14b5e: 2112 movs r1, #18
|
|
14b60: 0020 movs r0, r4
|
|
14b62: 4b65 ldr r3, [pc, #404] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14b64: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
14b66: 4b5d ldr r3, [pc, #372] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14b68: 681c ldr r4, [r3, #0]
|
|
14b6a: 343c adds r4, #60 ; 0x3c
|
|
14b6c: 2000 movs r0, #0
|
|
14b6e: 4b63 ldr r3, [pc, #396] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14b70: 4798 blx r3
|
|
14b72: 0003 movs r3, r0
|
|
14b74: 0040 lsls r0, r0, #1
|
|
14b76: 18c0 adds r0, r0, r3
|
|
14b78: 0080 lsls r0, r0, #2
|
|
14b7a: 18c0 adds r0, r0, r3
|
|
14b7c: 3050 adds r0, #80 ; 0x50
|
|
14b7e: 2340 movs r3, #64 ; 0x40
|
|
14b80: 33ff adds r3, #255 ; 0xff
|
|
14b82: 2201 movs r2, #1
|
|
14b84: 4298 cmp r0, r3
|
|
14b86: d901 bls.n 14b8c <lv_theme_material_init+0x6fc>
|
|
14b88: f001 fa82 bl 16090 <lv_theme_material_init+0x1c00>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
14b8c: 2113 movs r1, #19
|
|
14b8e: 0020 movs r0, r4
|
|
14b90: 4b59 ldr r3, [pc, #356] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14b92: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
14b94: 4b51 ldr r3, [pc, #324] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14b96: 681c ldr r4, [r3, #0]
|
|
14b98: 343c adds r4, #60 ; 0x3c
|
|
14b9a: 2000 movs r0, #0
|
|
14b9c: 4b57 ldr r3, [pc, #348] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14b9e: 4798 blx r3
|
|
14ba0: 0003 movs r3, r0
|
|
14ba2: 0040 lsls r0, r0, #1
|
|
14ba4: 18c0 adds r0, r0, r3
|
|
14ba6: 0080 lsls r0, r0, #2
|
|
14ba8: 18c0 adds r0, r0, r3
|
|
14baa: 3050 adds r0, #80 ; 0x50
|
|
14bac: 2340 movs r3, #64 ; 0x40
|
|
14bae: 33ff adds r3, #255 ; 0xff
|
|
14bb0: 2201 movs r2, #1
|
|
14bb2: 4298 cmp r0, r3
|
|
14bb4: d901 bls.n 14bba <lv_theme_material_init+0x72a>
|
|
14bb6: f001 fa7a bl 160ae <lv_theme_material_init+0x1c1e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
14bba: 2110 movs r1, #16
|
|
14bbc: 0020 movs r0, r4
|
|
14bbe: 4b4e ldr r3, [pc, #312] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14bc0: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
14bc2: 4b46 ldr r3, [pc, #280] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14bc4: 681c ldr r4, [r3, #0]
|
|
14bc6: 343c adds r4, #60 ; 0x3c
|
|
14bc8: 2000 movs r0, #0
|
|
14bca: 4b4c ldr r3, [pc, #304] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14bcc: 4798 blx r3
|
|
14bce: 0003 movs r3, r0
|
|
14bd0: 0040 lsls r0, r0, #1
|
|
14bd2: 18c0 adds r0, r0, r3
|
|
14bd4: 0080 lsls r0, r0, #2
|
|
14bd6: 18c0 adds r0, r0, r3
|
|
14bd8: 3050 adds r0, #80 ; 0x50
|
|
14bda: 2340 movs r3, #64 ; 0x40
|
|
14bdc: 33ff adds r3, #255 ; 0xff
|
|
14bde: 2201 movs r2, #1
|
|
14be0: 4298 cmp r0, r3
|
|
14be2: d901 bls.n 14be8 <lv_theme_material_init+0x758>
|
|
14be4: f001 fa72 bl 160cc <lv_theme_material_init+0x1c3c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
14be8: 2111 movs r1, #17
|
|
14bea: 0020 movs r0, r4
|
|
14bec: 4b42 ldr r3, [pc, #264] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14bee: 4798 blx r3
|
|
style_init_reset(&styles->cb_bg);
|
|
14bf0: 4c3a ldr r4, [pc, #232] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14bf2: 6820 ldr r0, [r4, #0]
|
|
14bf4: 304c adds r0, #76 ; 0x4c
|
|
14bf6: 4b43 ldr r3, [pc, #268] ; (14d04 <lv_theme_material_init+0x874>)
|
|
14bf8: 4798 blx r3
|
|
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
|
|
14bfa: 6824 ldr r4, [r4, #0]
|
|
14bfc: 344c adds r4, #76 ; 0x4c
|
|
14bfe: 2000 movs r0, #0
|
|
14c00: 4b3e ldr r3, [pc, #248] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14c02: 4798 blx r3
|
|
14c04: 3014 adds r0, #20
|
|
14c06: 0080 lsls r0, r0, #2
|
|
14c08: 2340 movs r3, #64 ; 0x40
|
|
14c0a: 33ff adds r3, #255 ; 0xff
|
|
14c0c: 2201 movs r2, #1
|
|
14c0e: 4298 cmp r0, r3
|
|
14c10: d901 bls.n 14c16 <lv_theme_material_init+0x786>
|
|
14c12: f001 fa6a bl 160ea <lv_theme_material_init+0x1c5a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14c16: 2101 movs r1, #1
|
|
14c18: 0020 movs r0, r4
|
|
14c1a: 4b37 ldr r3, [pc, #220] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14c1c: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
14c1e: 4b2f ldr r3, [pc, #188] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14c20: 681c ldr r4, [r3, #0]
|
|
14c22: 344c adds r4, #76 ; 0x4c
|
|
14c24: 2000 movs r0, #0
|
|
14c26: 4b35 ldr r3, [pc, #212] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14c28: 4798 blx r3
|
|
14c2a: 0083 lsls r3, r0, #2
|
|
14c2c: 181b adds r3, r3, r0
|
|
14c2e: 005b lsls r3, r3, #1
|
|
14c30: 3350 adds r3, #80 ; 0x50
|
|
14c32: 2140 movs r1, #64 ; 0x40
|
|
14c34: 31ff adds r1, #255 ; 0xff
|
|
14c36: 2201 movs r2, #1
|
|
14c38: 428b cmp r3, r1
|
|
14c3a: d901 bls.n 14c40 <lv_theme_material_init+0x7b0>
|
|
14c3c: f001 fa60 bl 16100 <lv_theme_material_init+0x1c70>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
14c40: 2114 movs r1, #20
|
|
14c42: 0020 movs r0, r4
|
|
14c44: 4b2c ldr r3, [pc, #176] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14c46: 4798 blx r3
|
|
lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary);
|
|
14c48: 4c24 ldr r4, [pc, #144] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14c4a: 6820 ldr r0, [r4, #0]
|
|
14c4c: 304c adds r0, #76 ; 0x4c
|
|
14c4e: 4b28 ldr r3, [pc, #160] ; (14cf0 <lv_theme_material_init+0x860>)
|
|
14c50: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
|
|
14c52: 2149 movs r1, #73 ; 0x49
|
|
14c54: 4b25 ldr r3, [pc, #148] ; (14cec <lv_theme_material_init+0x85c>)
|
|
14c56: 4798 blx r3
|
|
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
|
|
14c58: 6820 ldr r0, [r4, #0]
|
|
14c5a: 304c adds r0, #76 ; 0x4c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
14c5c: 2200 movs r2, #0
|
|
14c5e: 214c movs r1, #76 ; 0x4c
|
|
14c60: 4d1d ldr r5, [pc, #116] ; (14cd8 <lv_theme_material_init+0x848>)
|
|
14c62: 47a8 blx r5
|
|
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50);
|
|
14c64: 6820 ldr r0, [r4, #0]
|
|
14c66: 304c adds r0, #76 ; 0x4c
|
|
14c68: 227f movs r2, #127 ; 0x7f
|
|
14c6a: 2193 movs r1, #147 ; 0x93
|
|
14c6c: 0089 lsls r1, r1, #2
|
|
14c6e: 47a8 blx r5
|
|
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14c70: 6824 ldr r4, [r4, #0]
|
|
14c72: 344c adds r4, #76 ; 0x4c
|
|
14c74: 2000 movs r0, #0
|
|
14c76: 4b21 ldr r3, [pc, #132] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14c78: 4798 blx r3
|
|
14c7a: 0043 lsls r3, r0, #1
|
|
14c7c: 1818 adds r0, r3, r0
|
|
14c7e: 3050 adds r0, #80 ; 0x50
|
|
14c80: 2340 movs r3, #64 ; 0x40
|
|
14c82: 33ff adds r3, #255 ; 0xff
|
|
14c84: 2201 movs r2, #1
|
|
14c86: 4298 cmp r0, r3
|
|
14c88: d901 bls.n 14c8e <lv_theme_material_init+0x7fe>
|
|
14c8a: f001 fa47 bl 1611c <lv_theme_material_init+0x1c8c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
|
|
14c8e: 2140 movs r1, #64 ; 0x40
|
|
14c90: 0020 movs r0, r4
|
|
14c92: 4b19 ldr r3, [pc, #100] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14c94: 4798 blx r3
|
|
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
14c96: 4b11 ldr r3, [pc, #68] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14c98: 681c ldr r4, [r3, #0]
|
|
14c9a: 344c adds r4, #76 ; 0x4c
|
|
14c9c: 2000 movs r0, #0
|
|
14c9e: 4b17 ldr r3, [pc, #92] ; (14cfc <lv_theme_material_init+0x86c>)
|
|
14ca0: 4798 blx r3
|
|
14ca2: 0083 lsls r3, r0, #2
|
|
14ca4: 181b adds r3, r3, r0
|
|
14ca6: 005b lsls r3, r3, #1
|
|
14ca8: 3350 adds r3, #80 ; 0x50
|
|
14caa: 2140 movs r1, #64 ; 0x40
|
|
14cac: 31ff adds r1, #255 ; 0xff
|
|
14cae: 2201 movs r2, #1
|
|
14cb0: 428b cmp r3, r1
|
|
14cb2: d901 bls.n 14cb8 <lv_theme_material_init+0x828>
|
|
14cb4: f001 fa3f bl 16136 <lv_theme_material_init+0x1ca6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
|
|
14cb8: 2141 movs r1, #65 ; 0x41
|
|
14cba: 0020 movs r0, r4
|
|
14cbc: 4d0e ldr r5, [pc, #56] ; (14cf8 <lv_theme_material_init+0x868>)
|
|
14cbe: 47a8 blx r5
|
|
lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
14cc0: 4c06 ldr r4, [pc, #24] ; (14cdc <lv_theme_material_init+0x84c>)
|
|
14cc2: 6820 ldr r0, [r4, #0]
|
|
14cc4: 304c adds r0, #76 ; 0x4c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
|
|
14cc6: 2296 movs r2, #150 ; 0x96
|
|
14cc8: 21b0 movs r1, #176 ; 0xb0
|
|
14cca: 47a8 blx r5
|
|
lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
|
|
14ccc: 6820 ldr r0, [r4, #0]
|
|
14cce: 304c adds r0, #76 ; 0x4c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
14cd0: 224c movs r2, #76 ; 0x4c
|
|
14cd2: 21b7 movs r1, #183 ; 0xb7
|
|
14cd4: e01e b.n 14d14 <lv_theme_material_init+0x884>
|
|
14cd6: 46c0 nop ; (mov r8, r8)
|
|
14cd8: 00004fb5 .word 0x00004fb5
|
|
14cdc: 20004c38 .word 0x20004c38
|
|
14ce0: 0000102c .word 0x0000102c
|
|
14ce4: 0001c92c .word 0x0001c92c
|
|
14ce8: 00008289 .word 0x00008289
|
|
14cec: 00004e55 .word 0x00004e55
|
|
14cf0: 20004c3c .word 0x20004c3c
|
|
14cf4: 00000229 .word 0x00000229
|
|
14cf8: 00004cf5 .word 0x00004cf5
|
|
14cfc: 0000f665 .word 0x0000f665
|
|
14d00: 0000f681 .word 0x0000f681
|
|
14d04: 00012495 .word 0x00012495
|
|
14d08: 00007fff .word 0x00007fff
|
|
14d0c: 00000239 .word 0x00000239
|
|
14d10: 00000439 .word 0x00000439
|
|
14d14: 47a8 blx r5
|
|
style_init_reset(&styles->cb_bullet);
|
|
14d16: 6820 ldr r0, [r4, #0]
|
|
14d18: 3050 adds r0, #80 ; 0x50
|
|
14d1a: 4bfd ldr r3, [pc, #1012] ; (15110 <lv_theme_material_init+0xc80>)
|
|
14d1c: 4798 blx r3
|
|
lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP);
|
|
14d1e: 6820 ldr r0, [r4, #0]
|
|
14d20: 3050 adds r0, #80 ; 0x50
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
|
|
14d22: 2200 movs r2, #0
|
|
14d24: 2193 movs r1, #147 ; 0x93
|
|
14d26: 0089 lsls r1, r1, #2
|
|
14d28: 4bfa ldr r3, [pc, #1000] ; (15114 <lv_theme_material_init+0xc84>)
|
|
14d2a: 4798 blx r3
|
|
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
|
|
14d2c: 6824 ldr r4, [r4, #0]
|
|
14d2e: 3450 adds r4, #80 ; 0x50
|
|
14d30: 2000 movs r0, #0
|
|
14d32: 4bf9 ldr r3, [pc, #996] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14d34: 4798 blx r3
|
|
14d36: 3014 adds r0, #20
|
|
14d38: 0080 lsls r0, r0, #2
|
|
14d3a: 2340 movs r3, #64 ; 0x40
|
|
14d3c: 33ff adds r3, #255 ; 0xff
|
|
14d3e: 2201 movs r2, #1
|
|
14d40: 4298 cmp r0, r3
|
|
14d42: d901 bls.n 14d48 <lv_theme_material_init+0x8b8>
|
|
14d44: f001 fa05 bl 16152 <lv_theme_material_init+0x1cc2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14d48: 2101 movs r1, #1
|
|
14d4a: 0020 movs r0, r4
|
|
14d4c: 4bf3 ldr r3, [pc, #972] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14d4e: 4798 blx r3
|
|
lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK);
|
|
14d50: 4cf3 ldr r4, [pc, #972] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14d52: 6820 ldr r0, [r4, #0]
|
|
14d54: 3050 adds r0, #80 ; 0x50
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
|
|
14d56: 4af3 ldr r2, [pc, #972] ; (15124 <lv_theme_material_init+0xc94>)
|
|
14d58: 21b7 movs r1, #183 ; 0xb7
|
|
14d5a: 0049 lsls r1, r1, #1
|
|
14d5c: 4df2 ldr r5, [pc, #968] ; (15128 <lv_theme_material_init+0xc98>)
|
|
14d5e: 47a8 blx r5
|
|
lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE);
|
|
14d60: 6820 ldr r0, [r4, #0]
|
|
14d62: 3050 adds r0, #80 ; 0x50
|
|
14d64: 4bf1 ldr r3, [pc, #964] ; (1512c <lv_theme_material_init+0xc9c>)
|
|
14d66: 881a ldrh r2, [r3, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
|
|
14d68: 216a movs r1, #106 ; 0x6a
|
|
14d6a: 31ff adds r1, #255 ; 0xff
|
|
14d6c: 4bf0 ldr r3, [pc, #960] ; (15130 <lv_theme_material_init+0xca0>)
|
|
14d6e: 4798 blx r3
|
|
lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small);
|
|
14d70: 4bf0 ldr r3, [pc, #960] ; (15134 <lv_theme_material_init+0xca4>)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
|
|
14d72: 689a ldr r2, [r3, #8]
|
|
14d74: 6820 ldr r0, [r4, #0]
|
|
14d76: 3050 adds r0, #80 ; 0x50
|
|
14d78: 49ef ldr r1, [pc, #956] ; (15138 <lv_theme_material_init+0xca8>)
|
|
14d7a: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14d7c: 6824 ldr r4, [r4, #0]
|
|
14d7e: 3450 adds r4, #80 ; 0x50
|
|
14d80: 2000 movs r0, #0
|
|
14d82: 4be5 ldr r3, [pc, #916] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14d84: 4798 blx r3
|
|
14d86: 0043 lsls r3, r0, #1
|
|
14d88: 1818 adds r0, r3, r0
|
|
14d8a: 3050 adds r0, #80 ; 0x50
|
|
14d8c: 2340 movs r3, #64 ; 0x40
|
|
14d8e: 33ff adds r3, #255 ; 0xff
|
|
14d90: 2201 movs r2, #1
|
|
14d92: 4298 cmp r0, r3
|
|
14d94: d901 bls.n 14d9a <lv_theme_material_init+0x90a>
|
|
14d96: f001 f9e7 bl 16168 <lv_theme_material_init+0x1cd8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
14d9a: 2112 movs r1, #18
|
|
14d9c: 0020 movs r0, r4
|
|
14d9e: 4bdf ldr r3, [pc, #892] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14da0: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14da2: 4bdf ldr r3, [pc, #892] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14da4: 681c ldr r4, [r3, #0]
|
|
14da6: 3450 adds r4, #80 ; 0x50
|
|
14da8: 2000 movs r0, #0
|
|
14daa: 4bdb ldr r3, [pc, #876] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14dac: 4798 blx r3
|
|
14dae: 0043 lsls r3, r0, #1
|
|
14db0: 1818 adds r0, r3, r0
|
|
14db2: 3050 adds r0, #80 ; 0x50
|
|
14db4: 2340 movs r3, #64 ; 0x40
|
|
14db6: 33ff adds r3, #255 ; 0xff
|
|
14db8: 2201 movs r2, #1
|
|
14dba: 4298 cmp r0, r3
|
|
14dbc: d901 bls.n 14dc2 <lv_theme_material_init+0x932>
|
|
14dbe: f001 f9e0 bl 16182 <lv_theme_material_init+0x1cf2>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
14dc2: 2113 movs r1, #19
|
|
14dc4: 0020 movs r0, r4
|
|
14dc6: 4bd5 ldr r3, [pc, #852] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14dc8: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14dca: 4bd5 ldr r3, [pc, #852] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14dcc: 681c ldr r4, [r3, #0]
|
|
14dce: 3450 adds r4, #80 ; 0x50
|
|
14dd0: 2000 movs r0, #0
|
|
14dd2: 4bd1 ldr r3, [pc, #836] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14dd4: 4798 blx r3
|
|
14dd6: 0043 lsls r3, r0, #1
|
|
14dd8: 1818 adds r0, r3, r0
|
|
14dda: 3050 adds r0, #80 ; 0x50
|
|
14ddc: 2340 movs r3, #64 ; 0x40
|
|
14dde: 33ff adds r3, #255 ; 0xff
|
|
14de0: 2201 movs r2, #1
|
|
14de2: 4298 cmp r0, r3
|
|
14de4: d901 bls.n 14dea <lv_theme_material_init+0x95a>
|
|
14de6: f001 f9d9 bl 1619c <lv_theme_material_init+0x1d0c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
14dea: 2110 movs r1, #16
|
|
14dec: 0020 movs r0, r4
|
|
14dee: 4bcb ldr r3, [pc, #812] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14df0: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14df2: 4bcb ldr r3, [pc, #812] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14df4: 681c ldr r4, [r3, #0]
|
|
14df6: 3450 adds r4, #80 ; 0x50
|
|
14df8: 2000 movs r0, #0
|
|
14dfa: 4bc7 ldr r3, [pc, #796] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14dfc: 4798 blx r3
|
|
14dfe: 0043 lsls r3, r0, #1
|
|
14e00: 1818 adds r0, r3, r0
|
|
14e02: 3050 adds r0, #80 ; 0x50
|
|
14e04: 2340 movs r3, #64 ; 0x40
|
|
14e06: 33ff adds r3, #255 ; 0xff
|
|
14e08: 2201 movs r2, #1
|
|
14e0a: 4298 cmp r0, r3
|
|
14e0c: d901 bls.n 14e12 <lv_theme_material_init+0x982>
|
|
14e0e: f001 f9d2 bl 161b6 <lv_theme_material_init+0x1d26>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
14e12: 2111 movs r1, #17
|
|
14e14: 0020 movs r0, r4
|
|
14e16: 4dc1 ldr r5, [pc, #772] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14e18: 47a8 blx r5
|
|
style_init_reset(&styles->kb_bg);
|
|
14e1a: 4cc1 ldr r4, [pc, #772] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14e1c: 6820 ldr r0, [r4, #0]
|
|
14e1e: 3068 adds r0, #104 ; 0x68
|
|
14e20: 4bbb ldr r3, [pc, #748] ; (15110 <lv_theme_material_init+0xc80>)
|
|
14e22: 4798 blx r3
|
|
lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0);
|
|
14e24: 6820 ldr r0, [r4, #0]
|
|
14e26: 3068 adds r0, #104 ; 0x68
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14e28: 2200 movs r2, #0
|
|
14e2a: 2101 movs r1, #1
|
|
14e2c: 47a8 blx r5
|
|
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
|
|
14e2e: 6824 ldr r4, [r4, #0]
|
|
14e30: 3468 adds r4, #104 ; 0x68
|
|
14e32: 2000 movs r0, #0
|
|
14e34: 4bb8 ldr r3, [pc, #736] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14e36: 4798 blx r3
|
|
14e38: 3014 adds r0, #20
|
|
14e3a: 0080 lsls r0, r0, #2
|
|
14e3c: 2340 movs r3, #64 ; 0x40
|
|
14e3e: 33ff adds r3, #255 ; 0xff
|
|
14e40: 2201 movs r2, #1
|
|
14e42: 4298 cmp r0, r3
|
|
14e44: d901 bls.n 14e4a <lv_theme_material_init+0x9ba>
|
|
14e46: f001 f9c3 bl 161d0 <lv_theme_material_init+0x1d40>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
14e4a: 2130 movs r1, #48 ; 0x30
|
|
14e4c: 0020 movs r0, r4
|
|
14e4e: 4db3 ldr r5, [pc, #716] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14e50: 47a8 blx r5
|
|
lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);
|
|
14e52: 4cb3 ldr r4, [pc, #716] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14e54: 6820 ldr r0, [r4, #0]
|
|
14e56: 3068 adds r0, #104 ; 0x68
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
14e58: 2202 movs r2, #2
|
|
14e5a: 2131 movs r1, #49 ; 0x31
|
|
14e5c: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
|
|
14e5e: 6820 ldr r0, [r4, #0]
|
|
14e60: 3068 adds r0, #104 ; 0x68
|
|
14e62: 4bb4 ldr r3, [pc, #720] ; (15134 <lv_theme_material_init+0xca4>)
|
|
14e64: 699b ldr r3, [r3, #24]
|
|
14e66: 079b lsls r3, r3, #30
|
|
14e68: d501 bpl.n 14e6e <lv_theme_material_init+0x9de>
|
|
14e6a: f001 f9bc bl 161e6 <lv_theme_material_init+0x1d56>
|
|
14e6e: 2300 movs r3, #0
|
|
14e70: 2100 movs r1, #0
|
|
14e72: 2200 movs r2, #0
|
|
14e74: 0149 lsls r1, r1, #5
|
|
14e76: 02db lsls r3, r3, #11
|
|
14e78: 430a orrs r2, r1
|
|
14e7a: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
14e7c: 2139 movs r1, #57 ; 0x39
|
|
14e7e: 4dac ldr r5, [pc, #688] ; (15130 <lv_theme_material_init+0xca0>)
|
|
14e80: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary);
|
|
14e82: 4ca7 ldr r4, [pc, #668] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14e84: 6820 ldr r0, [r4, #0]
|
|
14e86: 3068 adds r0, #104 ; 0x68
|
|
14e88: 4baa ldr r3, [pc, #680] ; (15134 <lv_theme_material_init+0xca4>)
|
|
14e8a: 88da ldrh r2, [r3, #6]
|
|
14e8c: 49ab ldr r1, [pc, #684] ; (1513c <lv_theme_material_init+0xcac>)
|
|
14e8e: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
14e90: 6824 ldr r4, [r4, #0]
|
|
14e92: 3468 adds r4, #104 ; 0x68
|
|
14e94: 2000 movs r0, #0
|
|
14e96: 4ba0 ldr r3, [pc, #640] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14e98: 4798 blx r3
|
|
14e9a: 0083 lsls r3, r0, #2
|
|
14e9c: 1818 adds r0, r3, r0
|
|
14e9e: 3050 adds r0, #80 ; 0x50
|
|
14ea0: 2340 movs r3, #64 ; 0x40
|
|
14ea2: 33ff adds r3, #255 ; 0xff
|
|
14ea4: 2201 movs r2, #1
|
|
14ea6: 4298 cmp r0, r3
|
|
14ea8: d901 bls.n 14eae <lv_theme_material_init+0xa1e>
|
|
14eaa: f001 f9a5 bl 161f8 <lv_theme_material_init+0x1d68>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
14eae: 2112 movs r1, #18
|
|
14eb0: 0020 movs r0, r4
|
|
14eb2: 4b9a ldr r3, [pc, #616] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14eb4: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
14eb6: 4b9a ldr r3, [pc, #616] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14eb8: 681c ldr r4, [r3, #0]
|
|
14eba: 3468 adds r4, #104 ; 0x68
|
|
14ebc: 2000 movs r0, #0
|
|
14ebe: 4b96 ldr r3, [pc, #600] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14ec0: 4798 blx r3
|
|
14ec2: 0083 lsls r3, r0, #2
|
|
14ec4: 1818 adds r0, r3, r0
|
|
14ec6: 3050 adds r0, #80 ; 0x50
|
|
14ec8: 2340 movs r3, #64 ; 0x40
|
|
14eca: 33ff adds r3, #255 ; 0xff
|
|
14ecc: 2201 movs r2, #1
|
|
14ece: 4298 cmp r0, r3
|
|
14ed0: d901 bls.n 14ed6 <lv_theme_material_init+0xa46>
|
|
14ed2: f001 f99e bl 16212 <lv_theme_material_init+0x1d82>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
14ed6: 2113 movs r1, #19
|
|
14ed8: 0020 movs r0, r4
|
|
14eda: 4b90 ldr r3, [pc, #576] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14edc: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
14ede: 4b90 ldr r3, [pc, #576] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14ee0: 681c ldr r4, [r3, #0]
|
|
14ee2: 3468 adds r4, #104 ; 0x68
|
|
14ee4: 2000 movs r0, #0
|
|
14ee6: 4b8c ldr r3, [pc, #560] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14ee8: 4798 blx r3
|
|
14eea: 0083 lsls r3, r0, #2
|
|
14eec: 1818 adds r0, r3, r0
|
|
14eee: 3050 adds r0, #80 ; 0x50
|
|
14ef0: 2340 movs r3, #64 ; 0x40
|
|
14ef2: 33ff adds r3, #255 ; 0xff
|
|
14ef4: 2201 movs r2, #1
|
|
14ef6: 4298 cmp r0, r3
|
|
14ef8: d901 bls.n 14efe <lv_theme_material_init+0xa6e>
|
|
14efa: f001 f997 bl 1622c <lv_theme_material_init+0x1d9c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
14efe: 2110 movs r1, #16
|
|
14f00: 0020 movs r0, r4
|
|
14f02: 4b86 ldr r3, [pc, #536] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14f04: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
14f06: 4b86 ldr r3, [pc, #536] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14f08: 681c ldr r4, [r3, #0]
|
|
14f0a: 3468 adds r4, #104 ; 0x68
|
|
14f0c: 2000 movs r0, #0
|
|
14f0e: 4b82 ldr r3, [pc, #520] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14f10: 4798 blx r3
|
|
14f12: 0083 lsls r3, r0, #2
|
|
14f14: 1818 adds r0, r3, r0
|
|
14f16: 3050 adds r0, #80 ; 0x50
|
|
14f18: 2340 movs r3, #64 ; 0x40
|
|
14f1a: 33ff adds r3, #255 ; 0xff
|
|
14f1c: 2201 movs r2, #1
|
|
14f1e: 4298 cmp r0, r3
|
|
14f20: d901 bls.n 14f26 <lv_theme_material_init+0xa96>
|
|
14f22: f001 f990 bl 16246 <lv_theme_material_init+0x1db6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
14f26: 2111 movs r1, #17
|
|
14f28: 0020 movs r0, r4
|
|
14f2a: 4b7c ldr r3, [pc, #496] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14f2c: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
|
|
14f2e: 4b7c ldr r3, [pc, #496] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14f30: 681c ldr r4, [r3, #0]
|
|
14f32: 3468 adds r4, #104 ; 0x68
|
|
14f34: 2000 movs r0, #0
|
|
14f36: 4b78 ldr r3, [pc, #480] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14f38: 4798 blx r3
|
|
14f3a: 0043 lsls r3, r0, #1
|
|
14f3c: 1818 adds r0, r3, r0
|
|
14f3e: 3050 adds r0, #80 ; 0x50
|
|
14f40: 2340 movs r3, #64 ; 0x40
|
|
14f42: 33ff adds r3, #255 ; 0xff
|
|
14f44: 2201 movs r2, #1
|
|
14f46: 4298 cmp r0, r3
|
|
14f48: d901 bls.n 14f4e <lv_theme_material_init+0xabe>
|
|
14f4a: f001 f989 bl 16260 <lv_theme_material_init+0x1dd0>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
14f4e: 2114 movs r1, #20
|
|
14f50: 0020 movs r0, r4
|
|
14f52: 4b72 ldr r3, [pc, #456] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14f54: 4798 blx r3
|
|
style_init_reset(&styles->mbox_bg);
|
|
14f56: 4c72 ldr r4, [pc, #456] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14f58: 6820 ldr r0, [r4, #0]
|
|
14f5a: 307c adds r0, #124 ; 0x7c
|
|
14f5c: 4b6c ldr r3, [pc, #432] ; (15110 <lv_theme_material_init+0xc80>)
|
|
14f5e: 4798 blx r3
|
|
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
|
|
14f60: 6824 ldr r4, [r4, #0]
|
|
14f62: 347c adds r4, #124 ; 0x7c
|
|
14f64: 2000 movs r0, #0
|
|
14f66: 4b6c ldr r3, [pc, #432] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14f68: 4798 blx r3
|
|
14f6a: 2332 movs r3, #50 ; 0x32
|
|
14f6c: 4358 muls r0, r3
|
|
14f6e: 3050 adds r0, #80 ; 0x50
|
|
14f70: 2340 movs r3, #64 ; 0x40
|
|
14f72: 33ff adds r3, #255 ; 0xff
|
|
14f74: 2201 movs r2, #1
|
|
14f76: 4298 cmp r0, r3
|
|
14f78: d901 bls.n 14f7e <lv_theme_material_init+0xaee>
|
|
14f7a: f001 f97e bl 1627a <lv_theme_material_init+0x1dea>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
|
|
14f7e: 2150 movs r1, #80 ; 0x50
|
|
14f80: 0020 movs r0, r4
|
|
14f82: 4b66 ldr r3, [pc, #408] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14f84: 4798 blx r3
|
|
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
|
|
14f86: 4b66 ldr r3, [pc, #408] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14f88: 6818 ldr r0, [r3, #0]
|
|
14f8a: 307c adds r0, #124 ; 0x7c
|
|
14f8c: 4b69 ldr r3, [pc, #420] ; (15134 <lv_theme_material_init+0xca4>)
|
|
14f8e: 699b ldr r3, [r3, #24]
|
|
14f90: 079b lsls r3, r3, #30
|
|
14f92: d401 bmi.n 14f98 <lv_theme_material_init+0xb08>
|
|
14f94: f001 f97e bl 16294 <lv_theme_material_init+0x1e04>
|
|
14f98: 2230 movs r2, #48 ; 0x30
|
|
14f9a: 2318 movs r3, #24
|
|
14f9c: 0152 lsls r2, r2, #5
|
|
14f9e: 02d9 lsls r1, r3, #11
|
|
14fa0: 431a orrs r2, r3
|
|
14fa2: 430a orrs r2, r1
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
|
|
14fa4: 2159 movs r1, #89 ; 0x59
|
|
14fa6: 4b62 ldr r3, [pc, #392] ; (15130 <lv_theme_material_init+0xca0>)
|
|
14fa8: 4798 blx r3
|
|
style_init_reset(&styles->sb);
|
|
14faa: 4c5d ldr r4, [pc, #372] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14fac: 6820 ldr r0, [r4, #0]
|
|
14fae: 3080 adds r0, #128 ; 0x80
|
|
14fb0: 4b57 ldr r3, [pc, #348] ; (15110 <lv_theme_material_init+0xc80>)
|
|
14fb2: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
14fb4: 6820 ldr r0, [r4, #0]
|
|
14fb6: 3080 adds r0, #128 ; 0x80
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
14fb8: 22ff movs r2, #255 ; 0xff
|
|
14fba: 212c movs r1, #44 ; 0x2c
|
|
14fbc: 4b55 ldr r3, [pc, #340] ; (15114 <lv_theme_material_init+0xc84>)
|
|
14fbe: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
|
|
14fc0: 6820 ldr r0, [r4, #0]
|
|
14fc2: 3080 adds r0, #128 ; 0x80
|
|
14fc4: 4b5b ldr r3, [pc, #364] ; (15134 <lv_theme_material_init+0xca4>)
|
|
14fc6: 699b ldr r3, [r3, #24]
|
|
14fc8: 079b lsls r3, r3, #30
|
|
14fca: d501 bpl.n 14fd0 <lv_theme_material_init+0xb40>
|
|
14fcc: f001 f966 bl 1629c <lv_theme_material_init+0x1e0c>
|
|
14fd0: 230e movs r3, #14
|
|
14fd2: 211f movs r1, #31
|
|
14fd4: 2210 movs r2, #16
|
|
14fd6: 0149 lsls r1, r1, #5
|
|
14fd8: 02db lsls r3, r3, #11
|
|
14fda: 430a orrs r2, r1
|
|
14fdc: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
14fde: 2129 movs r1, #41 ; 0x29
|
|
14fe0: 4b53 ldr r3, [pc, #332] ; (15130 <lv_theme_material_init+0xca0>)
|
|
14fe2: 4798 blx r3
|
|
lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
14fe4: 4c4e ldr r4, [pc, #312] ; (15120 <lv_theme_material_init+0xc90>)
|
|
14fe6: 6820 ldr r0, [r4, #0]
|
|
14fe8: 3080 adds r0, #128 ; 0x80
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
14fea: 4a55 ldr r2, [pc, #340] ; (15140 <lv_theme_material_init+0xcb0>)
|
|
14fec: 2101 movs r1, #1
|
|
14fee: 4b4b ldr r3, [pc, #300] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
14ff0: 4798 blx r3
|
|
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
14ff2: 6824 ldr r4, [r4, #0]
|
|
14ff4: 3480 adds r4, #128 ; 0x80
|
|
14ff6: 2000 movs r0, #0
|
|
14ff8: 4b47 ldr r3, [pc, #284] ; (15118 <lv_theme_material_init+0xc88>)
|
|
14ffa: 4798 blx r3
|
|
14ffc: 00c3 lsls r3, r0, #3
|
|
14ffe: 1a18 subs r0, r3, r0
|
|
15000: 3050 adds r0, #80 ; 0x50
|
|
15002: 2340 movs r3, #64 ; 0x40
|
|
15004: 33ff adds r3, #255 ; 0xff
|
|
15006: 2201 movs r2, #1
|
|
15008: 4298 cmp r0, r3
|
|
1500a: d901 bls.n 15010 <lv_theme_material_init+0xb80>
|
|
1500c: f001 f94b bl 162a6 <lv_theme_material_init+0x1e16>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
|
|
15010: 2103 movs r1, #3
|
|
15012: 0020 movs r0, r4
|
|
15014: 4b41 ldr r3, [pc, #260] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
15016: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
15018: 4b41 ldr r3, [pc, #260] ; (15120 <lv_theme_material_init+0xc90>)
|
|
1501a: 681c ldr r4, [r3, #0]
|
|
1501c: 3480 adds r4, #128 ; 0x80
|
|
1501e: 2000 movs r0, #0
|
|
15020: 4b3d ldr r3, [pc, #244] ; (15118 <lv_theme_material_init+0xc88>)
|
|
15022: 4798 blx r3
|
|
15024: 00c3 lsls r3, r0, #3
|
|
15026: 1a18 subs r0, r3, r0
|
|
15028: 3050 adds r0, #80 ; 0x50
|
|
1502a: 2340 movs r3, #64 ; 0x40
|
|
1502c: 33ff adds r3, #255 ; 0xff
|
|
1502e: 2201 movs r2, #1
|
|
15030: 4298 cmp r0, r3
|
|
15032: d901 bls.n 15038 <lv_theme_material_init+0xba8>
|
|
15034: f001 f943 bl 162be <lv_theme_material_init+0x1e2e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
15038: 2113 movs r1, #19
|
|
1503a: 0020 movs r0, r4
|
|
1503c: 4b37 ldr r3, [pc, #220] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
1503e: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
15040: 4b37 ldr r3, [pc, #220] ; (15120 <lv_theme_material_init+0xc90>)
|
|
15042: 681c ldr r4, [r3, #0]
|
|
15044: 3480 adds r4, #128 ; 0x80
|
|
15046: 2000 movs r0, #0
|
|
15048: 4b33 ldr r3, [pc, #204] ; (15118 <lv_theme_material_init+0xc88>)
|
|
1504a: 4798 blx r3
|
|
1504c: 00c3 lsls r3, r0, #3
|
|
1504e: 1a18 subs r0, r3, r0
|
|
15050: 3050 adds r0, #80 ; 0x50
|
|
15052: 2340 movs r3, #64 ; 0x40
|
|
15054: 33ff adds r3, #255 ; 0xff
|
|
15056: 2201 movs r2, #1
|
|
15058: 4298 cmp r0, r3
|
|
1505a: d901 bls.n 15060 <lv_theme_material_init+0xbd0>
|
|
1505c: f001 f93b bl 162d6 <lv_theme_material_init+0x1e46>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
15060: 2111 movs r1, #17
|
|
15062: 0020 movs r0, r4
|
|
15064: 4b2d ldr r3, [pc, #180] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
15066: 4798 blx r3
|
|
style_init_reset(&styles->edge_flash);
|
|
15068: 4c2d ldr r4, [pc, #180] ; (15120 <lv_theme_material_init+0xc90>)
|
|
1506a: 6820 ldr r0, [r4, #0]
|
|
1506c: 3084 adds r0, #132 ; 0x84
|
|
1506e: 4d28 ldr r5, [pc, #160] ; (15110 <lv_theme_material_init+0xc80>)
|
|
15070: 47a8 blx r5
|
|
lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
15072: 6820 ldr r0, [r4, #0]
|
|
15074: 3084 adds r0, #132 ; 0x84
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
15076: 22ff movs r2, #255 ; 0xff
|
|
15078: 212c movs r1, #44 ; 0x2c
|
|
1507a: 4b26 ldr r3, [pc, #152] ; (15114 <lv_theme_material_init+0xc84>)
|
|
1507c: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888));
|
|
1507e: 6820 ldr r0, [r4, #0]
|
|
15080: 3084 adds r0, #132 ; 0x84
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
15082: 4b30 ldr r3, [pc, #192] ; (15144 <lv_theme_material_init+0xcb4>)
|
|
15084: 881a ldrh r2, [r3, #0]
|
|
15086: 2129 movs r1, #41 ; 0x29
|
|
15088: 4b29 ldr r3, [pc, #164] ; (15130 <lv_theme_material_init+0xca0>)
|
|
1508a: 4798 blx r3
|
|
style_init_reset(&styles->ta_cursor);
|
|
1508c: 6820 ldr r0, [r4, #0]
|
|
1508e: 30b4 adds r0, #180 ; 0xb4
|
|
15090: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
15092: 6820 ldr r0, [r4, #0]
|
|
15094: 30b4 adds r0, #180 ; 0xb4
|
|
15096: 4b27 ldr r3, [pc, #156] ; (15134 <lv_theme_material_init+0xca4>)
|
|
15098: 699b ldr r3, [r3, #24]
|
|
1509a: 079b lsls r3, r3, #30
|
|
1509c: d501 bpl.n 150a2 <lv_theme_material_init+0xc12>
|
|
1509e: f001 f926 bl 162ee <lv_theme_material_init+0x1e5e>
|
|
150a2: 2314 movs r3, #20
|
|
150a4: 212a movs r1, #42 ; 0x2a
|
|
150a6: 2215 movs r2, #21
|
|
150a8: 0149 lsls r1, r1, #5
|
|
150aa: 02db lsls r3, r3, #11
|
|
150ac: 430a orrs r2, r1
|
|
150ae: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
150b0: 2139 movs r1, #57 ; 0x39
|
|
150b2: 4b1f ldr r3, [pc, #124] ; (15130 <lv_theme_material_init+0xca0>)
|
|
150b4: 4798 blx r3
|
|
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
|
|
150b6: 4b1a ldr r3, [pc, #104] ; (15120 <lv_theme_material_init+0xc90>)
|
|
150b8: 681c ldr r4, [r3, #0]
|
|
150ba: 34b4 adds r4, #180 ; 0xb4
|
|
150bc: 2000 movs r0, #0
|
|
150be: 4b16 ldr r3, [pc, #88] ; (15118 <lv_theme_material_init+0xc88>)
|
|
150c0: 4798 blx r3
|
|
150c2: 3028 adds r0, #40 ; 0x28
|
|
150c4: 0040 lsls r0, r0, #1
|
|
150c6: 2340 movs r3, #64 ; 0x40
|
|
150c8: 33ff adds r3, #255 ; 0xff
|
|
150ca: 2201 movs r2, #1
|
|
150cc: 4298 cmp r0, r3
|
|
150ce: d901 bls.n 150d4 <lv_theme_material_init+0xc44>
|
|
150d0: f001 f912 bl 162f8 <lv_theme_material_init+0x1e68>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
150d4: 2130 movs r1, #48 ; 0x30
|
|
150d6: 0020 movs r0, r4
|
|
150d8: 4b10 ldr r3, [pc, #64] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
150da: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
|
|
150dc: 4b10 ldr r3, [pc, #64] ; (15120 <lv_theme_material_init+0xc90>)
|
|
150de: 681c ldr r4, [r3, #0]
|
|
150e0: 34b4 adds r4, #180 ; 0xb4
|
|
150e2: 2000 movs r0, #0
|
|
150e4: 4b0c ldr r3, [pc, #48] ; (15118 <lv_theme_material_init+0xc88>)
|
|
150e6: 4798 blx r3
|
|
150e8: 3050 adds r0, #80 ; 0x50
|
|
150ea: 2340 movs r3, #64 ; 0x40
|
|
150ec: 33ff adds r3, #255 ; 0xff
|
|
150ee: 2201 movs r2, #1
|
|
150f0: 4298 cmp r0, r3
|
|
150f2: d901 bls.n 150f8 <lv_theme_material_init+0xc68>
|
|
150f4: f001 f90b bl 1630e <lv_theme_material_init+0x1e7e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
150f8: 2112 movs r1, #18
|
|
150fa: 0020 movs r0, r4
|
|
150fc: 4d07 ldr r5, [pc, #28] ; (1511c <lv_theme_material_init+0xc8c>)
|
|
150fe: 47a8 blx r5
|
|
lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT);
|
|
15100: 4c07 ldr r4, [pc, #28] ; (15120 <lv_theme_material_init+0xc90>)
|
|
15102: 6820 ldr r0, [r4, #0]
|
|
15104: 30b4 adds r0, #180 ; 0xb4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
15106: 2204 movs r2, #4
|
|
15108: 2131 movs r1, #49 ; 0x31
|
|
1510a: 47a8 blx r5
|
|
1510c: e01c b.n 15148 <lv_theme_material_init+0xcb8>
|
|
1510e: 46c0 nop ; (mov r8, r8)
|
|
15110: 00012495 .word 0x00012495
|
|
15114: 00004fb5 .word 0x00004fb5
|
|
15118: 0000f665 .word 0x0000f665
|
|
1511c: 00004cf5 .word 0x00004cf5
|
|
15120: 20004c38 .word 0x20004c38
|
|
15124: 0001c934 .word 0x0001c934
|
|
15128: 00005109 .word 0x00005109
|
|
1512c: 0001c92c .word 0x0001c92c
|
|
15130: 00004e55 .word 0x00004e55
|
|
15134: 20004c3c .word 0x20004c3c
|
|
15138: 0000818e .word 0x0000818e
|
|
1513c: 00000439 .word 0x00000439
|
|
15140: 00007fff .word 0x00007fff
|
|
15144: 0001c928 .word 0x0001c928
|
|
style_init_reset(&styles->ta_placeholder);
|
|
15148: 6820 ldr r0, [r4, #0]
|
|
1514a: 30b8 adds r0, #184 ; 0xb8
|
|
1514c: 4bfb ldr r3, [pc, #1004] ; (1553c <lv_theme_material_init+0x10ac>)
|
|
1514e: 4798 blx r3
|
|
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
|
|
15150: 6820 ldr r0, [r4, #0]
|
|
15152: 30b8 adds r0, #184 ; 0xb8
|
|
15154: 4bfa ldr r3, [pc, #1000] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15156: 699b ldr r3, [r3, #24]
|
|
15158: 079b lsls r3, r3, #30
|
|
1515a: d501 bpl.n 15160 <lv_theme_material_init+0xcd0>
|
|
1515c: f001 f8e1 bl 16322 <lv_theme_material_init+0x1e92>
|
|
15160: 2314 movs r3, #20
|
|
15162: 212b movs r1, #43 ; 0x2b
|
|
15164: 2217 movs r2, #23
|
|
15166: 0149 lsls r1, r1, #5
|
|
15168: 02db lsls r3, r3, #11
|
|
1516a: 430a orrs r2, r1
|
|
1516c: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
1516e: 4ef5 ldr r6, [pc, #980] ; (15544 <lv_theme_material_init+0x10b4>)
|
|
15170: 0031 movs r1, r6
|
|
15172: 4df5 ldr r5, [pc, #980] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
15174: 47a8 blx r5
|
|
style_init_reset(&styles->spinbox_cursor);
|
|
15176: 4cf5 ldr r4, [pc, #980] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15178: 6820 ldr r0, [r4, #0]
|
|
1517a: 3098 adds r0, #152 ; 0x98
|
|
1517c: 4bef ldr r3, [pc, #956] ; (1553c <lv_theme_material_init+0x10ac>)
|
|
1517e: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
15180: 6820 ldr r0, [r4, #0]
|
|
15182: 3098 adds r0, #152 ; 0x98
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
15184: 22ff movs r2, #255 ; 0xff
|
|
15186: 212c movs r1, #44 ; 0x2c
|
|
15188: 4bf1 ldr r3, [pc, #964] ; (15550 <lv_theme_material_init+0x10c0>)
|
|
1518a: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary);
|
|
1518c: 6820 ldr r0, [r4, #0]
|
|
1518e: 3098 adds r0, #152 ; 0x98
|
|
15190: 4beb ldr r3, [pc, #940] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15192: 889a ldrh r2, [r3, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
15194: 2129 movs r1, #41 ; 0x29
|
|
15196: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
|
15198: 6820 ldr r0, [r4, #0]
|
|
1519a: 3098 adds r0, #152 ; 0x98
|
|
1519c: 4bed ldr r3, [pc, #948] ; (15554 <lv_theme_material_init+0x10c4>)
|
|
1519e: 881a ldrh r2, [r3, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
151a0: 0031 movs r1, r6
|
|
151a2: 47a8 blx r5
|
|
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
|
|
151a4: 6824 ldr r4, [r4, #0]
|
|
151a6: 3498 adds r4, #152 ; 0x98
|
|
151a8: 2000 movs r0, #0
|
|
151aa: 4beb ldr r3, [pc, #940] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
151ac: 4798 blx r3
|
|
151ae: 2364 movs r3, #100 ; 0x64
|
|
151b0: 4358 muls r0, r3
|
|
151b2: 3050 adds r0, #80 ; 0x50
|
|
151b4: 2340 movs r3, #64 ; 0x40
|
|
151b6: 33ff adds r3, #255 ; 0xff
|
|
151b8: 2201 movs r2, #1
|
|
151ba: 4298 cmp r0, r3
|
|
151bc: d901 bls.n 151c2 <lv_theme_material_init+0xd32>
|
|
151be: f001 f8b5 bl 1632c <lv_theme_material_init+0x1e9c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
151c2: 2110 movs r1, #16
|
|
151c4: 0020 movs r0, r4
|
|
151c6: 4be5 ldr r3, [pc, #916] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
151c8: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
|
|
151ca: 4be0 ldr r3, [pc, #896] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
151cc: 681c ldr r4, [r3, #0]
|
|
151ce: 3498 adds r4, #152 ; 0x98
|
|
151d0: 2000 movs r0, #0
|
|
151d2: 4be1 ldr r3, [pc, #900] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
151d4: 4798 blx r3
|
|
151d6: 2364 movs r3, #100 ; 0x64
|
|
151d8: 4358 muls r0, r3
|
|
151da: 3050 adds r0, #80 ; 0x50
|
|
151dc: 2340 movs r3, #64 ; 0x40
|
|
151de: 33ff adds r3, #255 ; 0xff
|
|
151e0: 2201 movs r2, #1
|
|
151e2: 4298 cmp r0, r3
|
|
151e4: d901 bls.n 151ea <lv_theme_material_init+0xd5a>
|
|
151e6: f001 f8ae bl 16346 <lv_theme_material_init+0x1eb6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
151ea: 2111 movs r1, #17
|
|
151ec: 0020 movs r0, r4
|
|
151ee: 4ddb ldr r5, [pc, #876] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
151f0: 47a8 blx r5
|
|
style_init_reset(&styles->list_bg);
|
|
151f2: 4cd6 ldr r4, [pc, #856] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
151f4: 6820 ldr r0, [r4, #0]
|
|
151f6: 3074 adds r0, #116 ; 0x74
|
|
151f8: 4ed0 ldr r6, [pc, #832] ; (1553c <lv_theme_material_init+0x10ac>)
|
|
151fa: 47b0 blx r6
|
|
lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true);
|
|
151fc: 6820 ldr r0, [r4, #0]
|
|
151fe: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
|
|
15200: 2201 movs r2, #1
|
|
15202: 2102 movs r1, #2
|
|
15204: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0);
|
|
15206: 6820 ldr r0, [r4, #0]
|
|
15208: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
1520a: 2200 movs r2, #0
|
|
1520c: 2112 movs r1, #18
|
|
1520e: 47a8 blx r5
|
|
lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0);
|
|
15210: 6820 ldr r0, [r4, #0]
|
|
15212: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
15214: 2200 movs r2, #0
|
|
15216: 2113 movs r1, #19
|
|
15218: 47a8 blx r5
|
|
lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0);
|
|
1521a: 6820 ldr r0, [r4, #0]
|
|
1521c: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
1521e: 2200 movs r2, #0
|
|
15220: 2110 movs r1, #16
|
|
15222: 47a8 blx r5
|
|
lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0);
|
|
15224: 6820 ldr r0, [r4, #0]
|
|
15226: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
15228: 2200 movs r2, #0
|
|
1522a: 2111 movs r1, #17
|
|
1522c: 47a8 blx r5
|
|
lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0);
|
|
1522e: 6820 ldr r0, [r4, #0]
|
|
15230: 3074 adds r0, #116 ; 0x74
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
15232: 2200 movs r2, #0
|
|
15234: 2114 movs r1, #20
|
|
15236: 47a8 blx r5
|
|
style_init_reset(&styles->list_btn);
|
|
15238: 6820 ldr r0, [r4, #0]
|
|
1523a: 3078 adds r0, #120 ; 0x78
|
|
1523c: 47b0 blx r6
|
|
lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
1523e: 6820 ldr r0, [r4, #0]
|
|
15240: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
15242: 22ff movs r2, #255 ; 0xff
|
|
15244: 212c movs r1, #44 ; 0x2c
|
|
15246: 4bc2 ldr r3, [pc, #776] ; (15550 <lv_theme_material_init+0x10c0>)
|
|
15248: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
|
|
1524a: 6820 ldr r0, [r4, #0]
|
|
1524c: 3078 adds r0, #120 ; 0x78
|
|
1524e: 4bbc ldr r3, [pc, #752] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15250: 699b ldr r3, [r3, #24]
|
|
15252: 079b lsls r3, r3, #30
|
|
15254: d501 bpl.n 1525a <lv_theme_material_init+0xdca>
|
|
15256: f001 f883 bl 16360 <lv_theme_material_init+0x1ed0>
|
|
1525a: 230b movs r3, #11
|
|
1525c: 2118 movs r1, #24
|
|
1525e: 220e movs r2, #14
|
|
15260: 0149 lsls r1, r1, #5
|
|
15262: 02db lsls r3, r3, #11
|
|
15264: 430a orrs r2, r1
|
|
15266: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
15268: 2129 movs r1, #41 ; 0x29
|
|
1526a: 4bb7 ldr r3, [pc, #732] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
1526c: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
|
|
1526e: 4bb7 ldr r3, [pc, #732] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15270: 6818 ldr r0, [r3, #0]
|
|
15272: 3078 adds r0, #120 ; 0x78
|
|
15274: 4bb2 ldr r3, [pc, #712] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15276: 699b ldr r3, [r3, #24]
|
|
15278: 079b lsls r3, r3, #30
|
|
1527a: d501 bpl.n 15280 <lv_theme_material_init+0xdf0>
|
|
1527c: f001 f875 bl 1636a <lv_theme_material_init+0x1eda>
|
|
15280: 2309 movs r3, #9
|
|
15282: 2113 movs r1, #19
|
|
15284: 220a movs r2, #10
|
|
15286: 0149 lsls r1, r1, #5
|
|
15288: 02db lsls r3, r3, #11
|
|
1528a: 430a orrs r2, r1
|
|
1528c: 431a orrs r2, r3
|
|
1528e: 49b4 ldr r1, [pc, #720] ; (15560 <lv_theme_material_init+0x10d0>)
|
|
15290: 4bad ldr r3, [pc, #692] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
15292: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
|
|
15294: 4bad ldr r3, [pc, #692] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15296: 6818 ldr r0, [r3, #0]
|
|
15298: 3078 adds r0, #120 ; 0x78
|
|
1529a: 4ba9 ldr r3, [pc, #676] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
1529c: 699b ldr r3, [r3, #24]
|
|
1529e: 079b lsls r3, r3, #30
|
|
152a0: d501 bpl.n 152a6 <lv_theme_material_init+0xe16>
|
|
152a2: f001 f867 bl 16374 <lv_theme_material_init+0x1ee4>
|
|
152a6: 230b movs r3, #11
|
|
152a8: 2118 movs r1, #24
|
|
152aa: 220e movs r2, #14
|
|
152ac: 0149 lsls r1, r1, #5
|
|
152ae: 02db lsls r3, r3, #11
|
|
152b0: 430a orrs r2, r1
|
|
152b2: 431a orrs r2, r3
|
|
152b4: 49ab ldr r1, [pc, #684] ; (15564 <lv_theme_material_init+0x10d4>)
|
|
152b6: 4ea4 ldr r6, [pc, #656] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
152b8: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK);
|
|
152ba: 4da4 ldr r5, [pc, #656] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
152bc: 6828 ldr r0, [r5, #0]
|
|
152be: 3078 adds r0, #120 ; 0x78
|
|
152c0: 4c9f ldr r4, [pc, #636] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
152c2: 88a2 ldrh r2, [r4, #4]
|
|
152c4: 212a movs r1, #42 ; 0x2a
|
|
152c6: 31ff adds r1, #255 ; 0xff
|
|
152c8: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK);
|
|
152ca: 682f ldr r7, [r5, #0]
|
|
152cc: 3778 adds r7, #120 ; 0x78
|
|
152ce: 88a0 ldrh r0, [r4, #4]
|
|
152d0: 2133 movs r1, #51 ; 0x33
|
|
152d2: 4ba5 ldr r3, [pc, #660] ; (15568 <lv_theme_material_init+0x10d8>)
|
|
152d4: 4798 blx r3
|
|
152d6: 1c02 adds r2, r0, #0
|
|
152d8: 49a4 ldr r1, [pc, #656] ; (1556c <lv_theme_material_init+0x10dc>)
|
|
152da: 0038 movs r0, r7
|
|
152dc: 47b0 blx r6
|
|
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
152de: 6828 ldr r0, [r5, #0]
|
|
152e0: 3078 adds r0, #120 ; 0x78
|
|
152e2: 69a3 ldr r3, [r4, #24]
|
|
152e4: 079b lsls r3, r3, #30
|
|
152e6: d501 bpl.n 152ec <lv_theme_material_init+0xe5c>
|
|
152e8: f001 f849 bl 1637e <lv_theme_material_init+0x1eee>
|
|
152ec: 231f movs r3, #31
|
|
152ee: 213f movs r1, #63 ; 0x3f
|
|
152f0: 221f movs r2, #31
|
|
152f2: 0149 lsls r1, r1, #5
|
|
152f4: 02db lsls r3, r3, #11
|
|
152f6: 430a orrs r2, r1
|
|
152f8: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
152fa: 4992 ldr r1, [pc, #584] ; (15544 <lv_theme_material_init+0x10b4>)
|
|
152fc: 4d92 ldr r5, [pc, #584] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
152fe: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
|
|
15300: 4c92 ldr r4, [pc, #584] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15302: 6820 ldr r0, [r4, #0]
|
|
15304: 3078 adds r0, #120 ; 0x78
|
|
15306: 2201 movs r2, #1
|
|
15308: 4252 negs r2, r2
|
|
1530a: 4999 ldr r1, [pc, #612] ; (15570 <lv_theme_material_init+0x10e0>)
|
|
1530c: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
1530e: 6820 ldr r0, [r4, #0]
|
|
15310: 3078 adds r0, #120 ; 0x78
|
|
15312: 4b8b ldr r3, [pc, #556] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15314: 699b ldr r3, [r3, #24]
|
|
15316: 079b lsls r3, r3, #30
|
|
15318: d501 bpl.n 1531e <lv_theme_material_init+0xe8e>
|
|
1531a: f001 f835 bl 16388 <lv_theme_material_init+0x1ef8>
|
|
1531e: 2226 movs r2, #38 ; 0x26
|
|
15320: 2313 movs r3, #19
|
|
15322: 0152 lsls r2, r2, #5
|
|
15324: 02d9 lsls r1, r3, #11
|
|
15326: 431a orrs r2, r3
|
|
15328: 430a orrs r2, r1
|
|
1532a: 4992 ldr r1, [pc, #584] ; (15574 <lv_theme_material_init+0x10e4>)
|
|
1532c: 4b86 ldr r3, [pc, #536] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
1532e: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
15330: 4b86 ldr r3, [pc, #536] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15332: 6818 ldr r0, [r3, #0]
|
|
15334: 3078 adds r0, #120 ; 0x78
|
|
15336: 4b82 ldr r3, [pc, #520] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
15338: 699b ldr r3, [r3, #24]
|
|
1533a: 079b lsls r3, r3, #30
|
|
1533c: d501 bpl.n 15342 <lv_theme_material_init+0xeb2>
|
|
1533e: f001 f827 bl 16390 <lv_theme_material_init+0x1f00>
|
|
15342: 231f movs r3, #31
|
|
15344: 213f movs r1, #63 ; 0x3f
|
|
15346: 221f movs r2, #31
|
|
15348: 0149 lsls r1, r1, #5
|
|
1534a: 02db lsls r3, r3, #11
|
|
1534c: 430a orrs r2, r1
|
|
1534e: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
15350: 4989 ldr r1, [pc, #548] ; (15578 <lv_theme_material_init+0x10e8>)
|
|
15352: 4d7d ldr r5, [pc, #500] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
15354: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
|
|
15356: 4c7d ldr r4, [pc, #500] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15358: 6820 ldr r0, [r4, #0]
|
|
1535a: 3078 adds r0, #120 ; 0x78
|
|
1535c: 2201 movs r2, #1
|
|
1535e: 4252 negs r2, r2
|
|
15360: 4986 ldr r1, [pc, #536] ; (1557c <lv_theme_material_init+0x10ec>)
|
|
15362: 47a8 blx r5
|
|
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
15364: 6820 ldr r0, [r4, #0]
|
|
15366: 3078 adds r0, #120 ; 0x78
|
|
15368: 4b75 ldr r3, [pc, #468] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
1536a: 699b ldr r3, [r3, #24]
|
|
1536c: 079b lsls r3, r3, #30
|
|
1536e: d501 bpl.n 15374 <lv_theme_material_init+0xee4>
|
|
15370: f001 f813 bl 1639a <lv_theme_material_init+0x1f0a>
|
|
15374: 2226 movs r2, #38 ; 0x26
|
|
15376: 2313 movs r3, #19
|
|
15378: 0152 lsls r2, r2, #5
|
|
1537a: 02d9 lsls r1, r3, #11
|
|
1537c: 431a orrs r2, r3
|
|
1537e: 430a orrs r2, r1
|
|
15380: 497f ldr r1, [pc, #508] ; (15580 <lv_theme_material_init+0x10f0>)
|
|
15382: 4b71 ldr r3, [pc, #452] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
15384: 4798 blx r3
|
|
lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
|
|
15386: 4c71 ldr r4, [pc, #452] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15388: 6820 ldr r0, [r4, #0]
|
|
1538a: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
1538c: 2201 movs r2, #1
|
|
1538e: 2131 movs r1, #49 ; 0x31
|
|
15390: 4b72 ldr r3, [pc, #456] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
15392: 4798 blx r3
|
|
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
15394: 6820 ldr r0, [r4, #0]
|
|
15396: 3078 adds r0, #120 ; 0x78
|
|
15398: 4b69 ldr r3, [pc, #420] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
1539a: 699b ldr r3, [r3, #24]
|
|
1539c: 079b lsls r3, r3, #30
|
|
1539e: d501 bpl.n 153a4 <lv_theme_material_init+0xf14>
|
|
153a0: f000 ffff bl 163a2 <lv_theme_material_init+0x1f12>
|
|
153a4: 2310 movs r3, #16
|
|
153a6: 2122 movs r1, #34 ; 0x22
|
|
153a8: 2212 movs r2, #18
|
|
153aa: 0149 lsls r1, r1, #5
|
|
153ac: 02db lsls r3, r3, #11
|
|
153ae: 430a orrs r2, r1
|
|
153b0: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
153b2: 2139 movs r1, #57 ; 0x39
|
|
153b4: 4d64 ldr r5, [pc, #400] ; (15548 <lv_theme_material_init+0x10b8>)
|
|
153b6: 47a8 blx r5
|
|
lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary);
|
|
153b8: 4c64 ldr r4, [pc, #400] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
153ba: 6820 ldr r0, [r4, #0]
|
|
153bc: 3078 adds r0, #120 ; 0x78
|
|
153be: 4b60 ldr r3, [pc, #384] ; (15540 <lv_theme_material_init+0x10b0>)
|
|
153c0: 889a ldrh r2, [r3, #4]
|
|
153c2: 4970 ldr r1, [pc, #448] ; (15584 <lv_theme_material_init+0x10f4>)
|
|
153c4: 47a8 blx r5
|
|
lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1);
|
|
153c6: 6820 ldr r0, [r4, #0]
|
|
153c8: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
153ca: 2201 movs r2, #1
|
|
153cc: 2130 movs r1, #48 ; 0x30
|
|
153ce: 4b63 ldr r3, [pc, #396] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
153d0: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
153d2: 6824 ldr r4, [r4, #0]
|
|
153d4: 3478 adds r4, #120 ; 0x78
|
|
153d6: 2000 movs r0, #0
|
|
153d8: 4b6b ldr r3, [pc, #428] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
153da: 4798 blx r3
|
|
153dc: 2801 cmp r0, #1
|
|
153de: d801 bhi.n 153e4 <lv_theme_material_init+0xf54>
|
|
153e0: f000 ffe4 bl 163ac <lv_theme_material_init+0x1f1c>
|
|
153e4: 2000 movs r0, #0
|
|
153e6: 4b5c ldr r3, [pc, #368] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
153e8: 4798 blx r3
|
|
153ea: 0103 lsls r3, r0, #4
|
|
153ec: 1a1b subs r3, r3, r0
|
|
153ee: 005b lsls r3, r3, #1
|
|
153f0: 3350 adds r3, #80 ; 0x50
|
|
153f2: 2140 movs r1, #64 ; 0x40
|
|
153f4: 31ff adds r1, #255 ; 0xff
|
|
153f6: 2201 movs r2, #1
|
|
153f8: 428b cmp r3, r1
|
|
153fa: d901 bls.n 15400 <lv_theme_material_init+0xf70>
|
|
153fc: f000 ffef bl 163de <lv_theme_material_init+0x1f4e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
15400: 2112 movs r1, #18
|
|
15402: 0020 movs r0, r4
|
|
15404: 4b55 ldr r3, [pc, #340] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
15406: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
15408: 4b50 ldr r3, [pc, #320] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
1540a: 681c ldr r4, [r3, #0]
|
|
1540c: 3478 adds r4, #120 ; 0x78
|
|
1540e: 2000 movs r0, #0
|
|
15410: 4b5d ldr r3, [pc, #372] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
15412: 4798 blx r3
|
|
15414: 2801 cmp r0, #1
|
|
15416: d801 bhi.n 1541c <lv_theme_material_init+0xf8c>
|
|
15418: f000 ffee bl 163f8 <lv_theme_material_init+0x1f68>
|
|
1541c: 2000 movs r0, #0
|
|
1541e: 4b4e ldr r3, [pc, #312] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
15420: 4798 blx r3
|
|
15422: 0103 lsls r3, r0, #4
|
|
15424: 1a1b subs r3, r3, r0
|
|
15426: 005b lsls r3, r3, #1
|
|
15428: 3350 adds r3, #80 ; 0x50
|
|
1542a: 2140 movs r1, #64 ; 0x40
|
|
1542c: 31ff adds r1, #255 ; 0xff
|
|
1542e: 2201 movs r2, #1
|
|
15430: 428b cmp r3, r1
|
|
15432: d901 bls.n 15438 <lv_theme_material_init+0xfa8>
|
|
15434: f000 fff9 bl 1642a <lv_theme_material_init+0x1f9a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
15438: 2113 movs r1, #19
|
|
1543a: 0020 movs r0, r4
|
|
1543c: 4b47 ldr r3, [pc, #284] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
1543e: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
15440: 4b42 ldr r3, [pc, #264] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15442: 681c ldr r4, [r3, #0]
|
|
15444: 3478 adds r4, #120 ; 0x78
|
|
15446: 2000 movs r0, #0
|
|
15448: 4b4f ldr r3, [pc, #316] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
1544a: 4798 blx r3
|
|
1544c: 2801 cmp r0, #1
|
|
1544e: d801 bhi.n 15454 <lv_theme_material_init+0xfc4>
|
|
15450: f000 fff8 bl 16444 <lv_theme_material_init+0x1fb4>
|
|
15454: 2000 movs r0, #0
|
|
15456: 4b40 ldr r3, [pc, #256] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
15458: 4798 blx r3
|
|
1545a: 0103 lsls r3, r0, #4
|
|
1545c: 1a1b subs r3, r3, r0
|
|
1545e: 005b lsls r3, r3, #1
|
|
15460: 3350 adds r3, #80 ; 0x50
|
|
15462: 2140 movs r1, #64 ; 0x40
|
|
15464: 31ff adds r1, #255 ; 0xff
|
|
15466: 2201 movs r2, #1
|
|
15468: 428b cmp r3, r1
|
|
1546a: d901 bls.n 15470 <lv_theme_material_init+0xfe0>
|
|
1546c: f001 f803 bl 16476 <lv_theme_material_init+0x1fe6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
15470: 2110 movs r1, #16
|
|
15472: 0020 movs r0, r4
|
|
15474: 4b39 ldr r3, [pc, #228] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
15476: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
15478: 4b34 ldr r3, [pc, #208] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
1547a: 681c ldr r4, [r3, #0]
|
|
1547c: 3478 adds r4, #120 ; 0x78
|
|
1547e: 2000 movs r0, #0
|
|
15480: 4b41 ldr r3, [pc, #260] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
15482: 4798 blx r3
|
|
15484: 2801 cmp r0, #1
|
|
15486: d801 bhi.n 1548c <lv_theme_material_init+0xffc>
|
|
15488: f001 f802 bl 16490 <lv_theme_material_init+0x2000>
|
|
1548c: 2000 movs r0, #0
|
|
1548e: 4b32 ldr r3, [pc, #200] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
15490: 4798 blx r3
|
|
15492: 0103 lsls r3, r0, #4
|
|
15494: 1a1b subs r3, r3, r0
|
|
15496: 005b lsls r3, r3, #1
|
|
15498: 3350 adds r3, #80 ; 0x50
|
|
1549a: 2140 movs r1, #64 ; 0x40
|
|
1549c: 31ff adds r1, #255 ; 0xff
|
|
1549e: 2201 movs r2, #1
|
|
154a0: 428b cmp r3, r1
|
|
154a2: d901 bls.n 154a8 <lv_theme_material_init+0x1018>
|
|
154a4: f001 f80d bl 164c2 <lv_theme_material_init+0x2032>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
154a8: 2111 movs r1, #17
|
|
154aa: 0020 movs r0, r4
|
|
154ac: 4b2b ldr r3, [pc, #172] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
154ae: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
154b0: 4b26 ldr r3, [pc, #152] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
154b2: 681c ldr r4, [r3, #0]
|
|
154b4: 3478 adds r4, #120 ; 0x78
|
|
154b6: 2000 movs r0, #0
|
|
154b8: 4b33 ldr r3, [pc, #204] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
154ba: 4798 blx r3
|
|
154bc: 2801 cmp r0, #1
|
|
154be: d801 bhi.n 154c4 <lv_theme_material_init+0x1034>
|
|
154c0: f001 f80c bl 164dc <lv_theme_material_init+0x204c>
|
|
154c4: 2000 movs r0, #0
|
|
154c6: 4b24 ldr r3, [pc, #144] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
154c8: 4798 blx r3
|
|
154ca: 0103 lsls r3, r0, #4
|
|
154cc: 1a1b subs r3, r3, r0
|
|
154ce: 005b lsls r3, r3, #1
|
|
154d0: 3350 adds r3, #80 ; 0x50
|
|
154d2: 2140 movs r1, #64 ; 0x40
|
|
154d4: 31ff adds r1, #255 ; 0xff
|
|
154d6: 2201 movs r2, #1
|
|
154d8: 428b cmp r3, r1
|
|
154da: d901 bls.n 154e0 <lv_theme_material_init+0x1050>
|
|
154dc: f001 f817 bl 1650e <lv_theme_material_init+0x207e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
154e0: 2114 movs r1, #20
|
|
154e2: 0020 movs r0, r4
|
|
154e4: 4b1d ldr r3, [pc, #116] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
154e6: 4798 blx r3
|
|
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
|
|
154e8: 4b18 ldr r3, [pc, #96] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
154ea: 681c ldr r4, [r3, #0]
|
|
154ec: 3478 adds r4, #120 ; 0x78
|
|
154ee: 2000 movs r0, #0
|
|
154f0: 4b25 ldr r3, [pc, #148] ; (15588 <lv_theme_material_init+0x10f8>)
|
|
154f2: 4798 blx r3
|
|
154f4: 2801 cmp r0, #1
|
|
154f6: d801 bhi.n 154fc <lv_theme_material_init+0x106c>
|
|
154f8: f001 f816 bl 16528 <lv_theme_material_init+0x2098>
|
|
154fc: 2000 movs r0, #0
|
|
154fe: 4b16 ldr r3, [pc, #88] ; (15558 <lv_theme_material_init+0x10c8>)
|
|
15500: 4798 blx r3
|
|
15502: 0103 lsls r3, r0, #4
|
|
15504: 1a18 subs r0, r3, r0
|
|
15506: 0040 lsls r0, r0, #1
|
|
15508: 3050 adds r0, #80 ; 0x50
|
|
1550a: 2340 movs r3, #64 ; 0x40
|
|
1550c: 33ff adds r3, #255 ; 0xff
|
|
1550e: 4298 cmp r0, r3
|
|
15510: d901 bls.n 15516 <lv_theme_material_init+0x1086>
|
|
15512: f001 f824 bl 1655e <lv_theme_material_init+0x20ce>
|
|
15516: 2201 movs r2, #1
|
|
15518: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
|
|
1551a: 2104 movs r1, #4
|
|
1551c: 0020 movs r0, r4
|
|
1551e: 4d0f ldr r5, [pc, #60] ; (1555c <lv_theme_material_init+0x10cc>)
|
|
15520: 47a8 blx r5
|
|
lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0);
|
|
15522: 4c0a ldr r4, [pc, #40] ; (1554c <lv_theme_material_init+0x10bc>)
|
|
15524: 6820 ldr r0, [r4, #0]
|
|
15526: 3078 adds r0, #120 ; 0x78
|
|
15528: 2200 movs r2, #0
|
|
1552a: 4918 ldr r1, [pc, #96] ; (1558c <lv_theme_material_init+0x10fc>)
|
|
1552c: 47a8 blx r5
|
|
lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0);
|
|
1552e: 6820 ldr r0, [r4, #0]
|
|
15530: 3078 adds r0, #120 ; 0x78
|
|
15532: 2200 movs r2, #0
|
|
15534: 2182 movs r1, #130 ; 0x82
|
|
15536: 0049 lsls r1, r1, #1
|
|
15538: 47a8 blx r5
|
|
1553a: e029 b.n 15590 <lv_theme_material_init+0x1100>
|
|
1553c: 00012495 .word 0x00012495
|
|
15540: 20004c3c .word 0x20004c3c
|
|
15544: 00008089 .word 0x00008089
|
|
15548: 00004e55 .word 0x00004e55
|
|
1554c: 20004c38 .word 0x20004c38
|
|
15550: 00004fb5 .word 0x00004fb5
|
|
15554: 0001c92c .word 0x0001c92c
|
|
15558: 0000f665 .word 0x0000f665
|
|
1555c: 00004cf5 .word 0x00004cf5
|
|
15560: 00001029 .word 0x00001029
|
|
15564: 00002029 .word 0x00002029
|
|
15568: 000102dd .word 0x000102dd
|
|
1556c: 00001129 .word 0x00001129
|
|
15570: 00008189 .word 0x00008189
|
|
15574: 0000a089 .word 0x0000a089
|
|
15578: 000080a9 .word 0x000080a9
|
|
1557c: 000081a9 .word 0x000081a9
|
|
15580: 0000a0a9 .word 0x0000a0a9
|
|
15584: 00000239 .word 0x00000239
|
|
15588: 0000f681 .word 0x0000f681
|
|
1558c: 00001004 .word 0x00001004
|
|
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0);
|
|
15590: 6820 ldr r0, [r4, #0]
|
|
15592: 3078 adds r0, #120 ; 0x78
|
|
15594: 2200 movs r2, #0
|
|
15596: 49fa ldr r1, [pc, #1000] ; (15980 <lv_theme_material_init+0x14f0>)
|
|
15598: 47a8 blx r5
|
|
lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME);
|
|
1559a: 6820 ldr r0, [r4, #0]
|
|
1559c: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
|
|
1559e: 2296 movs r2, #150 ; 0x96
|
|
155a0: 21b0 movs r1, #176 ; 0xb0
|
|
155a2: 47a8 blx r5
|
|
lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
|
|
155a4: 6820 ldr r0, [r4, #0]
|
|
155a6: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
|
|
155a8: 2229 movs r2, #41 ; 0x29
|
|
155aa: 21b7 movs r1, #183 ; 0xb7
|
|
155ac: 47a8 blx r5
|
|
lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH);
|
|
155ae: 6820 ldr r0, [r4, #0]
|
|
155b0: 3078 adds r0, #120 ; 0x78
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
|
|
155b2: 2204 movs r2, #4
|
|
155b4: 21b6 movs r1, #182 ; 0xb6
|
|
155b6: 47a8 blx r5
|
|
style_init_reset(&styles->ddlist_page);
|
|
155b8: 6820 ldr r0, [r4, #0]
|
|
155ba: 3054 adds r0, #84 ; 0x54
|
|
155bc: 4bf1 ldr r3, [pc, #964] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
155be: 4798 blx r3
|
|
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
|
|
155c0: 6824 ldr r4, [r4, #0]
|
|
155c2: 3454 adds r4, #84 ; 0x54
|
|
155c4: 2000 movs r0, #0
|
|
155c6: 4bf0 ldr r3, [pc, #960] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
155c8: 4798 blx r3
|
|
155ca: 0083 lsls r3, r0, #2
|
|
155cc: 181b adds r3, r3, r0
|
|
155ce: 009b lsls r3, r3, #2
|
|
155d0: 3350 adds r3, #80 ; 0x50
|
|
155d2: 2140 movs r1, #64 ; 0x40
|
|
155d4: 31ff adds r1, #255 ; 0xff
|
|
155d6: 2201 movs r2, #1
|
|
155d8: 428b cmp r3, r1
|
|
155da: d901 bls.n 155e0 <lv_theme_material_init+0x1150>
|
|
155dc: f000 ffcd bl 1657a <lv_theme_material_init+0x20ea>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
|
|
155e0: 49ea ldr r1, [pc, #936] ; (1598c <lv_theme_material_init+0x14fc>)
|
|
155e2: 0020 movs r0, r4
|
|
155e4: 4dea ldr r5, [pc, #936] ; (15990 <lv_theme_material_init+0x1500>)
|
|
155e6: 47a8 blx r5
|
|
lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true);
|
|
155e8: 4cea ldr r4, [pc, #936] ; (15994 <lv_theme_material_init+0x1504>)
|
|
155ea: 6820 ldr r0, [r4, #0]
|
|
155ec: 3054 adds r0, #84 ; 0x54
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
|
|
155ee: 2201 movs r2, #1
|
|
155f0: 2102 movs r1, #2
|
|
155f2: 47a8 blx r5
|
|
style_init_reset(&styles->ddlist_sel);
|
|
155f4: 6820 ldr r0, [r4, #0]
|
|
155f6: 3058 adds r0, #88 ; 0x58
|
|
155f8: 4be2 ldr r3, [pc, #904] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
155fa: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
155fc: 6820 ldr r0, [r4, #0]
|
|
155fe: 3058 adds r0, #88 ; 0x58
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
15600: 22ff movs r2, #255 ; 0xff
|
|
15602: 212c movs r1, #44 ; 0x2c
|
|
15604: 4be4 ldr r3, [pc, #912] ; (15998 <lv_theme_material_init+0x1508>)
|
|
15606: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary);
|
|
15608: 6820 ldr r0, [r4, #0]
|
|
1560a: 3058 adds r0, #88 ; 0x58
|
|
1560c: 4de3 ldr r5, [pc, #908] ; (1599c <lv_theme_material_init+0x150c>)
|
|
1560e: 88aa ldrh r2, [r5, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
15610: 2129 movs r1, #41 ; 0x29
|
|
15612: 4ee3 ldr r6, [pc, #908] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15614: 47b0 blx r6
|
|
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff));
|
|
15616: 6820 ldr r0, [r4, #0]
|
|
15618: 3058 adds r0, #88 ; 0x58
|
|
1561a: 2201 movs r2, #1
|
|
1561c: 4252 negs r2, r2
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
1561e: 49e1 ldr r1, [pc, #900] ; (159a4 <lv_theme_material_init+0x1514>)
|
|
15620: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
|
|
15622: 6820 ldr r0, [r4, #0]
|
|
15624: 3058 adds r0, #88 ; 0x58
|
|
15626: 69ab ldr r3, [r5, #24]
|
|
15628: 079b lsls r3, r3, #30
|
|
1562a: d501 bpl.n 15630 <lv_theme_material_init+0x11a0>
|
|
1562c: f000 ffb3 bl 16596 <lv_theme_material_init+0x2106>
|
|
15630: 2309 movs r3, #9
|
|
15632: 2113 movs r1, #19
|
|
15634: 220a movs r2, #10
|
|
15636: 0149 lsls r1, r1, #5
|
|
15638: 02db lsls r3, r3, #11
|
|
1563a: 430a orrs r2, r1
|
|
1563c: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
1563e: 49da ldr r1, [pc, #872] ; (159a8 <lv_theme_material_init+0x1518>)
|
|
15640: 4bd7 ldr r3, [pc, #860] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15642: 4798 blx r3
|
|
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
|
|
15644: 4bd3 ldr r3, [pc, #844] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15646: 6818 ldr r0, [r3, #0]
|
|
15648: 3058 adds r0, #88 ; 0x58
|
|
1564a: 4bd4 ldr r3, [pc, #848] ; (1599c <lv_theme_material_init+0x150c>)
|
|
1564c: 699b ldr r3, [r3, #24]
|
|
1564e: 079b lsls r3, r3, #30
|
|
15650: d501 bpl.n 15656 <lv_theme_material_init+0x11c6>
|
|
15652: f000 ffa5 bl 165a0 <lv_theme_material_init+0x2110>
|
|
15656: 231f movs r3, #31
|
|
15658: 213f movs r1, #63 ; 0x3f
|
|
1565a: 221f movs r2, #31
|
|
1565c: 0149 lsls r1, r1, #5
|
|
1565e: 02db lsls r3, r3, #11
|
|
15660: 430a orrs r2, r1
|
|
15662: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
15664: 49d1 ldr r1, [pc, #836] ; (159ac <lv_theme_material_init+0x151c>)
|
|
15666: 4bce ldr r3, [pc, #824] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15668: 4798 blx r3
|
|
style_init_reset(&styles->roller_bg);
|
|
1566a: 4cca ldr r4, [pc, #808] ; (15994 <lv_theme_material_init+0x1504>)
|
|
1566c: 6820 ldr r0, [r4, #0]
|
|
1566e: 3088 adds r0, #136 ; 0x88
|
|
15670: 4bc4 ldr r3, [pc, #784] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
15672: 4798 blx r3
|
|
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
|
|
15674: 6824 ldr r4, [r4, #0]
|
|
15676: 3488 adds r4, #136 ; 0x88
|
|
15678: 2000 movs r0, #0
|
|
1567a: 4bc3 ldr r3, [pc, #780] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
1567c: 4798 blx r3
|
|
1567e: 0083 lsls r3, r0, #2
|
|
15680: 1818 adds r0, r3, r0
|
|
15682: 0083 lsls r3, r0, #2
|
|
15684: 18c0 adds r0, r0, r3
|
|
15686: 3050 adds r0, #80 ; 0x50
|
|
15688: 2340 movs r3, #64 ; 0x40
|
|
1568a: 33ff adds r3, #255 ; 0xff
|
|
1568c: 2201 movs r2, #1
|
|
1568e: 4298 cmp r0, r3
|
|
15690: d901 bls.n 15696 <lv_theme_material_init+0x1206>
|
|
15692: f000 ff8a bl 165aa <lv_theme_material_init+0x211a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
|
|
15696: 49bd ldr r1, [pc, #756] ; (1598c <lv_theme_material_init+0x14fc>)
|
|
15698: 0020 movs r0, r4
|
|
1569a: 4bbd ldr r3, [pc, #756] ; (15990 <lv_theme_material_init+0x1500>)
|
|
1569c: 4798 blx r3
|
|
style_init_reset(&styles->roller_sel);
|
|
1569e: 4cbd ldr r4, [pc, #756] ; (15994 <lv_theme_material_init+0x1504>)
|
|
156a0: 6820 ldr r0, [r4, #0]
|
|
156a2: 308c adds r0, #140 ; 0x8c
|
|
156a4: 4fb7 ldr r7, [pc, #732] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
156a6: 47b8 blx r7
|
|
lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
156a8: 6820 ldr r0, [r4, #0]
|
|
156aa: 308c adds r0, #140 ; 0x8c
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
156ac: 22ff movs r2, #255 ; 0xff
|
|
156ae: 212c movs r1, #44 ; 0x2c
|
|
156b0: 4eb9 ldr r6, [pc, #740] ; (15998 <lv_theme_material_init+0x1508>)
|
|
156b2: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary);
|
|
156b4: 6820 ldr r0, [r4, #0]
|
|
156b6: 308c adds r0, #140 ; 0x8c
|
|
156b8: 4db8 ldr r5, [pc, #736] ; (1599c <lv_theme_material_init+0x150c>)
|
|
156ba: 88aa ldrh r2, [r5, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
156bc: 2129 movs r1, #41 ; 0x29
|
|
156be: 4bb8 ldr r3, [pc, #736] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
156c0: 4698 mov r8, r3
|
|
156c2: 4798 blx r3
|
|
lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE);
|
|
156c4: 6820 ldr r0, [r4, #0]
|
|
156c6: 308c adds r0, #140 ; 0x8c
|
|
156c8: 4bb9 ldr r3, [pc, #740] ; (159b0 <lv_theme_material_init+0x1520>)
|
|
156ca: 881a ldrh r2, [r3, #0]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
156cc: 49b5 ldr r1, [pc, #724] ; (159a4 <lv_theme_material_init+0x1514>)
|
|
156ce: 47c0 blx r8
|
|
style_init_reset(&styles->tabview_btns_bg);
|
|
156d0: 6820 ldr r0, [r4, #0]
|
|
156d2: 30a8 adds r0, #168 ; 0xa8
|
|
156d4: 47b8 blx r7
|
|
lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
156d6: 6820 ldr r0, [r4, #0]
|
|
156d8: 30a8 adds r0, #168 ; 0xa8
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
156da: 22ff movs r2, #255 ; 0xff
|
|
156dc: 212c movs r1, #44 ; 0x2c
|
|
156de: 47b0 blx r6
|
|
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
|
|
156e0: 6820 ldr r0, [r4, #0]
|
|
156e2: 30a8 adds r0, #168 ; 0xa8
|
|
156e4: 69ab ldr r3, [r5, #24]
|
|
156e6: 079b lsls r3, r3, #30
|
|
156e8: d501 bpl.n 156ee <lv_theme_material_init+0x125e>
|
|
156ea: f000 ff6c bl 165c6 <lv_theme_material_init+0x2136>
|
|
156ee: 230b movs r3, #11
|
|
156f0: 2118 movs r1, #24
|
|
156f2: 220e movs r2, #14
|
|
156f4: 0149 lsls r1, r1, #5
|
|
156f6: 02db lsls r3, r3, #11
|
|
156f8: 430a orrs r2, r1
|
|
156fa: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
156fc: 2129 movs r1, #41 ; 0x29
|
|
156fe: 4ba8 ldr r3, [pc, #672] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15700: 4798 blx r3
|
|
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
|
|
15702: 4ba4 ldr r3, [pc, #656] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15704: 6818 ldr r0, [r3, #0]
|
|
15706: 30a8 adds r0, #168 ; 0xa8
|
|
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
|
|
15708: 4ba4 ldr r3, [pc, #656] ; (1599c <lv_theme_material_init+0x150c>)
|
|
1570a: 699b ldr r3, [r3, #24]
|
|
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
|
|
1570c: 079b lsls r3, r3, #30
|
|
1570e: d501 bpl.n 15714 <lv_theme_material_init+0x1284>
|
|
15710: f000 ff5e bl 165d0 <lv_theme_material_init+0x2140>
|
|
15714: 2307 movs r3, #7
|
|
15716: 210f movs r1, #15
|
|
15718: 2208 movs r2, #8
|
|
1571a: 0149 lsls r1, r1, #5
|
|
1571c: 02db lsls r3, r3, #11
|
|
1571e: 430a orrs r2, r1
|
|
15720: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
15722: 2139 movs r1, #57 ; 0x39
|
|
15724: 4b9e ldr r3, [pc, #632] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15726: 4798 blx r3
|
|
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
15728: 4b9a ldr r3, [pc, #616] ; (15994 <lv_theme_material_init+0x1504>)
|
|
1572a: 681c ldr r4, [r3, #0]
|
|
1572c: 34a8 adds r4, #168 ; 0xa8
|
|
1572e: 2000 movs r0, #0
|
|
15730: 4b95 ldr r3, [pc, #596] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
15732: 4798 blx r3
|
|
15734: 0083 lsls r3, r0, #2
|
|
15736: 1818 adds r0, r3, r0
|
|
15738: 3050 adds r0, #80 ; 0x50
|
|
1573a: 2340 movs r3, #64 ; 0x40
|
|
1573c: 33ff adds r3, #255 ; 0xff
|
|
1573e: 2201 movs r2, #1
|
|
15740: 4298 cmp r0, r3
|
|
15742: d901 bls.n 15748 <lv_theme_material_init+0x12b8>
|
|
15744: f000 ff4e bl 165e4 <lv_theme_material_init+0x2154>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
15748: 2130 movs r1, #48 ; 0x30
|
|
1574a: 0020 movs r0, r4
|
|
1574c: 4d90 ldr r5, [pc, #576] ; (15990 <lv_theme_material_init+0x1500>)
|
|
1574e: 47a8 blx r5
|
|
lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
|
|
15750: 4c90 ldr r4, [pc, #576] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15752: 6820 ldr r0, [r4, #0]
|
|
15754: 30a8 adds r0, #168 ; 0xa8
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
15756: 2201 movs r2, #1
|
|
15758: 2131 movs r1, #49 ; 0x31
|
|
1575a: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
|
|
1575c: 6820 ldr r0, [r4, #0]
|
|
1575e: 30a8 adds r0, #168 ; 0xa8
|
|
15760: 4b8e ldr r3, [pc, #568] ; (1599c <lv_theme_material_init+0x150c>)
|
|
15762: 699b ldr r3, [r3, #24]
|
|
15764: 079b lsls r3, r3, #30
|
|
15766: d501 bpl.n 1576c <lv_theme_material_init+0x12dc>
|
|
15768: f000 ff49 bl 165fe <lv_theme_material_init+0x216e>
|
|
1576c: 231c movs r3, #28
|
|
1576e: 213a movs r1, #58 ; 0x3a
|
|
15770: 221d movs r2, #29
|
|
15772: 0149 lsls r1, r1, #5
|
|
15774: 02db lsls r3, r3, #11
|
|
15776: 430a orrs r2, r1
|
|
15778: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
1577a: 498a ldr r1, [pc, #552] ; (159a4 <lv_theme_material_init+0x1514>)
|
|
1577c: 4d88 ldr r5, [pc, #544] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
1577e: 47a8 blx r5
|
|
lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal);
|
|
15780: 4b86 ldr r3, [pc, #536] ; (1599c <lv_theme_material_init+0x150c>)
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
|
|
15782: 68da ldr r2, [r3, #12]
|
|
15784: 4c83 ldr r4, [pc, #524] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15786: 6820 ldr r0, [r4, #0]
|
|
15788: 30a8 adds r0, #168 ; 0xa8
|
|
1578a: 498a ldr r1, [pc, #552] ; (159b4 <lv_theme_material_init+0x1524>)
|
|
1578c: 4b8a ldr r3, [pc, #552] ; (159b8 <lv_theme_material_init+0x1528>)
|
|
1578e: 4798 blx r3
|
|
lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f));
|
|
15790: 6820 ldr r0, [r4, #0]
|
|
15792: 30a8 adds r0, #168 ; 0xa8
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
|
|
15794: 4b89 ldr r3, [pc, #548] ; (159bc <lv_theme_material_init+0x152c>)
|
|
15796: 881a ldrh r2, [r3, #0]
|
|
15798: 4989 ldr r1, [pc, #548] ; (159c0 <lv_theme_material_init+0x1530>)
|
|
1579a: 47a8 blx r5
|
|
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
1579c: 6824 ldr r4, [r4, #0]
|
|
1579e: 34a8 adds r4, #168 ; 0xa8
|
|
157a0: 2000 movs r0, #0
|
|
157a2: 4b79 ldr r3, [pc, #484] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
157a4: 4798 blx r3
|
|
157a6: 00c3 lsls r3, r0, #3
|
|
157a8: 1a18 subs r0, r3, r0
|
|
157aa: 3050 adds r0, #80 ; 0x50
|
|
157ac: 2340 movs r3, #64 ; 0x40
|
|
157ae: 33ff adds r3, #255 ; 0xff
|
|
157b0: 2201 movs r2, #1
|
|
157b2: 4298 cmp r0, r3
|
|
157b4: d901 bls.n 157ba <lv_theme_material_init+0x132a>
|
|
157b6: f000 ff27 bl 16608 <lv_theme_material_init+0x2178>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
157ba: 2110 movs r1, #16
|
|
157bc: 0020 movs r0, r4
|
|
157be: 4b74 ldr r3, [pc, #464] ; (15990 <lv_theme_material_init+0x1500>)
|
|
157c0: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
157c2: 4b74 ldr r3, [pc, #464] ; (15994 <lv_theme_material_init+0x1504>)
|
|
157c4: 681c ldr r4, [r3, #0]
|
|
157c6: 34a8 adds r4, #168 ; 0xa8
|
|
157c8: 2000 movs r0, #0
|
|
157ca: 4b6f ldr r3, [pc, #444] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
157cc: 4798 blx r3
|
|
157ce: 00c3 lsls r3, r0, #3
|
|
157d0: 1a18 subs r0, r3, r0
|
|
157d2: 3050 adds r0, #80 ; 0x50
|
|
157d4: 2340 movs r3, #64 ; 0x40
|
|
157d6: 33ff adds r3, #255 ; 0xff
|
|
157d8: 2201 movs r2, #1
|
|
157da: 4298 cmp r0, r3
|
|
157dc: d901 bls.n 157e2 <lv_theme_material_init+0x1352>
|
|
157de: f000 ff1f bl 16620 <lv_theme_material_init+0x2190>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
157e2: 2112 movs r1, #18
|
|
157e4: 0020 movs r0, r4
|
|
157e6: 4b6a ldr r3, [pc, #424] ; (15990 <lv_theme_material_init+0x1500>)
|
|
157e8: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
157ea: 4b6a ldr r3, [pc, #424] ; (15994 <lv_theme_material_init+0x1504>)
|
|
157ec: 681c ldr r4, [r3, #0]
|
|
157ee: 34a8 adds r4, #168 ; 0xa8
|
|
157f0: 2000 movs r0, #0
|
|
157f2: 4b65 ldr r3, [pc, #404] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
157f4: 4798 blx r3
|
|
157f6: 00c3 lsls r3, r0, #3
|
|
157f8: 1a18 subs r0, r3, r0
|
|
157fa: 3050 adds r0, #80 ; 0x50
|
|
157fc: 2340 movs r3, #64 ; 0x40
|
|
157fe: 33ff adds r3, #255 ; 0xff
|
|
15800: 2201 movs r2, #1
|
|
15802: 4298 cmp r0, r3
|
|
15804: d901 bls.n 1580a <lv_theme_material_init+0x137a>
|
|
15806: f000 ff17 bl 16638 <lv_theme_material_init+0x21a8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
1580a: 2113 movs r1, #19
|
|
1580c: 0020 movs r0, r4
|
|
1580e: 4b60 ldr r3, [pc, #384] ; (15990 <lv_theme_material_init+0x1500>)
|
|
15810: 4798 blx r3
|
|
style_init_reset(&styles->tabview_btns);
|
|
15812: 4c60 ldr r4, [pc, #384] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15814: 6820 ldr r0, [r4, #0]
|
|
15816: 30a4 adds r0, #164 ; 0xa4
|
|
15818: 4b5a ldr r3, [pc, #360] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
1581a: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50);
|
|
1581c: 6820 ldr r0, [r4, #0]
|
|
1581e: 30a4 adds r0, #164 ; 0xa4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
15820: 227f movs r2, #127 ; 0x7f
|
|
15822: 4968 ldr r1, [pc, #416] ; (159c4 <lv_theme_material_init+0x1534>)
|
|
15824: 4b5c ldr r3, [pc, #368] ; (15998 <lv_theme_material_init+0x1508>)
|
|
15826: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888));
|
|
15828: 6820 ldr r0, [r4, #0]
|
|
1582a: 30a4 adds r0, #164 ; 0xa4
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
1582c: 4b66 ldr r3, [pc, #408] ; (159c8 <lv_theme_material_init+0x1538>)
|
|
1582e: 881a ldrh r2, [r3, #0]
|
|
15830: 495d ldr r1, [pc, #372] ; (159a8 <lv_theme_material_init+0x1518>)
|
|
15832: 4b5b ldr r3, [pc, #364] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15834: 4798 blx r3
|
|
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
|
|
15836: 6820 ldr r0, [r4, #0]
|
|
15838: 30a4 adds r0, #164 ; 0xa4
|
|
1583a: 4b58 ldr r3, [pc, #352] ; (1599c <lv_theme_material_init+0x150c>)
|
|
1583c: 699b ldr r3, [r3, #24]
|
|
1583e: 079b lsls r3, r3, #30
|
|
15840: d501 bpl.n 15846 <lv_theme_material_init+0x13b6>
|
|
15842: f000 ff05 bl 16650 <lv_theme_material_init+0x21c0>
|
|
15846: 231c movs r3, #28
|
|
15848: 213a movs r1, #58 ; 0x3a
|
|
1584a: 221d movs r2, #29
|
|
1584c: 0149 lsls r1, r1, #5
|
|
1584e: 02db lsls r3, r3, #11
|
|
15850: 430a orrs r2, r1
|
|
15852: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
15854: 495d ldr r1, [pc, #372] ; (159cc <lv_theme_material_init+0x153c>)
|
|
15856: 4b52 ldr r3, [pc, #328] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
15858: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
|
|
1585a: 4b4e ldr r3, [pc, #312] ; (15994 <lv_theme_material_init+0x1504>)
|
|
1585c: 681c ldr r4, [r3, #0]
|
|
1585e: 34a4 adds r4, #164 ; 0xa4
|
|
15860: 2000 movs r0, #0
|
|
15862: 4b49 ldr r3, [pc, #292] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
15864: 4798 blx r3
|
|
15866: 0083 lsls r3, r0, #2
|
|
15868: 181b adds r3, r3, r0
|
|
1586a: 009b lsls r3, r3, #2
|
|
1586c: 3350 adds r3, #80 ; 0x50
|
|
1586e: 2140 movs r1, #64 ; 0x40
|
|
15870: 31ff adds r1, #255 ; 0xff
|
|
15872: 2201 movs r2, #1
|
|
15874: 428b cmp r3, r1
|
|
15876: d901 bls.n 1587c <lv_theme_material_init+0x13ec>
|
|
15878: f000 feef bl 1665a <lv_theme_material_init+0x21ca>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
1587c: 2110 movs r1, #16
|
|
1587e: 0020 movs r0, r4
|
|
15880: 4b43 ldr r3, [pc, #268] ; (15990 <lv_theme_material_init+0x1500>)
|
|
15882: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
|
|
15884: 4b43 ldr r3, [pc, #268] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15886: 681c ldr r4, [r3, #0]
|
|
15888: 34a4 adds r4, #164 ; 0xa4
|
|
1588a: 2000 movs r0, #0
|
|
1588c: 4b3e ldr r3, [pc, #248] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
1588e: 4798 blx r3
|
|
15890: 0083 lsls r3, r0, #2
|
|
15892: 181b adds r3, r3, r0
|
|
15894: 009b lsls r3, r3, #2
|
|
15896: 3350 adds r3, #80 ; 0x50
|
|
15898: 2140 movs r1, #64 ; 0x40
|
|
1589a: 31ff adds r1, #255 ; 0xff
|
|
1589c: 2201 movs r2, #1
|
|
1589e: 428b cmp r3, r1
|
|
158a0: d901 bls.n 158a6 <lv_theme_material_init+0x1416>
|
|
158a2: f000 fee8 bl 16676 <lv_theme_material_init+0x21e6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
158a6: 2111 movs r1, #17
|
|
158a8: 0020 movs r0, r4
|
|
158aa: 4b39 ldr r3, [pc, #228] ; (15990 <lv_theme_material_init+0x1500>)
|
|
158ac: 4798 blx r3
|
|
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary);
|
|
158ae: 4c39 ldr r4, [pc, #228] ; (15994 <lv_theme_material_init+0x1504>)
|
|
158b0: 6820 ldr r0, [r4, #0]
|
|
158b2: 30a4 adds r0, #164 ; 0xa4
|
|
158b4: 4e39 ldr r6, [pc, #228] ; (1599c <lv_theme_material_init+0x150c>)
|
|
158b6: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
|
|
158b8: 4945 ldr r1, [pc, #276] ; (159d0 <lv_theme_material_init+0x1540>)
|
|
158ba: 4d39 ldr r5, [pc, #228] ; (159a0 <lv_theme_material_init+0x1510>)
|
|
158bc: 47a8 blx r5
|
|
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary);
|
|
158be: 6820 ldr r0, [r4, #0]
|
|
158c0: 30a4 adds r0, #164 ; 0xa4
|
|
158c2: 88f2 ldrh r2, [r6, #6]
|
|
158c4: 4943 ldr r1, [pc, #268] ; (159d4 <lv_theme_material_init+0x1544>)
|
|
158c6: 47a8 blx r5
|
|
style_init_reset(&styles->tabview_indic);
|
|
158c8: 6820 ldr r0, [r4, #0]
|
|
158ca: 30ac adds r0, #172 ; 0xac
|
|
158cc: 4b2d ldr r3, [pc, #180] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
158ce: 4798 blx r3
|
|
lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
|
|
158d0: 6820 ldr r0, [r4, #0]
|
|
158d2: 30ac adds r0, #172 ; 0xac
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
|
|
158d4: 22ff movs r2, #255 ; 0xff
|
|
158d6: 212c movs r1, #44 ; 0x2c
|
|
158d8: 4b2f ldr r3, [pc, #188] ; (15998 <lv_theme_material_init+0x1508>)
|
|
158da: 4798 blx r3
|
|
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary);
|
|
158dc: 6820 ldr r0, [r4, #0]
|
|
158de: 30ac adds r0, #172 ; 0xac
|
|
158e0: 88b2 ldrh r2, [r6, #4]
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
|
|
158e2: 2129 movs r1, #41 ; 0x29
|
|
158e4: 47a8 blx r5
|
|
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary);
|
|
158e6: 6820 ldr r0, [r4, #0]
|
|
158e8: 30ac adds r0, #172 ; 0xac
|
|
158ea: 88f2 ldrh r2, [r6, #6]
|
|
158ec: 493a ldr r1, [pc, #232] ; (159d8 <lv_theme_material_init+0x1548>)
|
|
158ee: 47a8 blx r5
|
|
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
|
|
158f0: 6824 ldr r4, [r4, #0]
|
|
158f2: 34ac adds r4, #172 ; 0xac
|
|
158f4: 2000 movs r0, #0
|
|
158f6: 4b24 ldr r3, [pc, #144] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
158f8: 4798 blx r3
|
|
158fa: 0083 lsls r3, r0, #2
|
|
158fc: 1818 adds r0, r3, r0
|
|
158fe: 3050 adds r0, #80 ; 0x50
|
|
15900: 2340 movs r3, #64 ; 0x40
|
|
15902: 33ff adds r3, #255 ; 0xff
|
|
15904: 2201 movs r2, #1
|
|
15906: 4298 cmp r0, r3
|
|
15908: d901 bls.n 1590e <lv_theme_material_init+0x147e>
|
|
1590a: f000 fec2 bl 16692 <lv_theme_material_init+0x2202>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
|
|
1590e: 2103 movs r1, #3
|
|
15910: 0020 movs r0, r4
|
|
15912: 4d1f ldr r5, [pc, #124] ; (15990 <lv_theme_material_init+0x1500>)
|
|
15914: 47a8 blx r5
|
|
lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
|
|
15916: 4c1f ldr r4, [pc, #124] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15918: 6820 ldr r0, [r4, #0]
|
|
1591a: 30ac adds r0, #172 ; 0xac
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
|
|
1591c: 4a2f ldr r2, [pc, #188] ; (159dc <lv_theme_material_init+0x154c>)
|
|
1591e: 2101 movs r1, #1
|
|
15920: 47a8 blx r5
|
|
style_init_reset(&styles->tabview_page_scrl);
|
|
15922: 6820 ldr r0, [r4, #0]
|
|
15924: 30b0 adds r0, #176 ; 0xb0
|
|
15926: 4b17 ldr r3, [pc, #92] ; (15984 <lv_theme_material_init+0x14f4>)
|
|
15928: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
1592a: 6824 ldr r4, [r4, #0]
|
|
1592c: 34b0 adds r4, #176 ; 0xb0
|
|
1592e: 2000 movs r0, #0
|
|
15930: 4b2b ldr r3, [pc, #172] ; (159e0 <lv_theme_material_init+0x1550>)
|
|
15932: 4798 blx r3
|
|
15934: 2801 cmp r0, #1
|
|
15936: d801 bhi.n 1593c <lv_theme_material_init+0x14ac>
|
|
15938: f000 feb8 bl 166ac <lv_theme_material_init+0x221c>
|
|
1593c: 2000 movs r0, #0
|
|
1593e: 4b12 ldr r3, [pc, #72] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
15940: 4798 blx r3
|
|
15942: 0103 lsls r3, r0, #4
|
|
15944: 1a1b subs r3, r3, r0
|
|
15946: 005b lsls r3, r3, #1
|
|
15948: 3350 adds r3, #80 ; 0x50
|
|
1594a: 2140 movs r1, #64 ; 0x40
|
|
1594c: 31ff adds r1, #255 ; 0xff
|
|
1594e: 2201 movs r2, #1
|
|
15950: 428b cmp r3, r1
|
|
15952: d901 bls.n 15958 <lv_theme_material_init+0x14c8>
|
|
15954: f000 fec3 bl 166de <lv_theme_material_init+0x224e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
15958: 2110 movs r1, #16
|
|
1595a: 0020 movs r0, r4
|
|
1595c: 4b0c ldr r3, [pc, #48] ; (15990 <lv_theme_material_init+0x1500>)
|
|
1595e: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
15960: 4b0c ldr r3, [pc, #48] ; (15994 <lv_theme_material_init+0x1504>)
|
|
15962: 681c ldr r4, [r3, #0]
|
|
15964: 34b0 adds r4, #176 ; 0xb0
|
|
15966: 2000 movs r0, #0
|
|
15968: 4b1d ldr r3, [pc, #116] ; (159e0 <lv_theme_material_init+0x1550>)
|
|
1596a: 4798 blx r3
|
|
1596c: 2801 cmp r0, #1
|
|
1596e: d801 bhi.n 15974 <lv_theme_material_init+0x14e4>
|
|
15970: f000 fec2 bl 166f8 <lv_theme_material_init+0x2268>
|
|
15974: 2000 movs r0, #0
|
|
15976: 4b04 ldr r3, [pc, #16] ; (15988 <lv_theme_material_init+0x14f8>)
|
|
15978: 4798 blx r3
|
|
1597a: 0103 lsls r3, r0, #4
|
|
1597c: e032 b.n 159e4 <lv_theme_material_init+0x1554>
|
|
1597e: 46c0 nop ; (mov r8, r8)
|
|
15980: 00002004 .word 0x00002004
|
|
15984: 00012495 .word 0x00012495
|
|
15988: 0000f665 .word 0x0000f665
|
|
1598c: 00008081 .word 0x00008081
|
|
15990: 00004cf5 .word 0x00004cf5
|
|
15994: 20004c38 .word 0x20004c38
|
|
15998: 00004fb5 .word 0x00004fb5
|
|
1599c: 20004c3c .word 0x20004c3c
|
|
159a0: 00004e55 .word 0x00004e55
|
|
159a4: 00008089 .word 0x00008089
|
|
159a8: 00001029 .word 0x00001029
|
|
159ac: 00009089 .word 0x00009089
|
|
159b0: 0001c92c .word 0x0001c92c
|
|
159b4: 0000808e .word 0x0000808e
|
|
159b8: 00005109 .word 0x00005109
|
|
159bc: 0001c92a .word 0x0001c92a
|
|
159c0: 000080a9 .word 0x000080a9
|
|
159c4: 0000102c .word 0x0000102c
|
|
159c8: 0001c928 .word 0x0001c928
|
|
159cc: 00008189 .word 0x00008189
|
|
159d0: 00008289 .word 0x00008289
|
|
159d4: 00008489 .word 0x00008489
|
|
159d8: 00000429 .word 0x00000429
|
|
159dc: 00007fff .word 0x00007fff
|
|
159e0: 0000f681 .word 0x0000f681
|
|
159e4: 1a1b subs r3, r3, r0
|
|
159e6: 005b lsls r3, r3, #1
|
|
159e8: 3350 adds r3, #80 ; 0x50
|
|
159ea: 2140 movs r1, #64 ; 0x40
|
|
159ec: 31ff adds r1, #255 ; 0xff
|
|
159ee: 2201 movs r2, #1
|
|
159f0: 428b cmp r3, r1
|
|
159f2: d901 bls.n 159f8 <lv_theme_material_init+0x1568>
|
|
159f4: f000 fe99 bl 1672a <lv_theme_material_init+0x229a>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
159f8: 2111 movs r1, #17
|
|
159fa: 0020 movs r0, r4
|
|
159fc: 4bf2 ldr r3, [pc, #968] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
159fe: 4798 blx r3
|
|
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
15a00: 4bf2 ldr r3, [pc, #968] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15a02: 681c ldr r4, [r3, #0]
|
|
15a04: 34b0 adds r4, #176 ; 0xb0
|
|
15a06: 2000 movs r0, #0
|
|
15a08: 4bf1 ldr r3, [pc, #964] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15a0a: 4798 blx r3
|
|
15a0c: 2801 cmp r0, #1
|
|
15a0e: d801 bhi.n 15a14 <lv_theme_material_init+0x1584>
|
|
15a10: f000 fe98 bl 16744 <lv_theme_material_init+0x22b4>
|
|
15a14: 2000 movs r0, #0
|
|
15a16: 4bef ldr r3, [pc, #956] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15a18: 4798 blx r3
|
|
15a1a: 0103 lsls r3, r0, #4
|
|
15a1c: 1a1b subs r3, r3, r0
|
|
15a1e: 005b lsls r3, r3, #1
|
|
15a20: 3350 adds r3, #80 ; 0x50
|
|
15a22: 2140 movs r1, #64 ; 0x40
|
|
15a24: 31ff adds r1, #255 ; 0xff
|
|
15a26: 2201 movs r2, #1
|
|
15a28: 428b cmp r3, r1
|
|
15a2a: d901 bls.n 15a30 <lv_theme_material_init+0x15a0>
|
|
15a2c: f000 fea3 bl 16776 <lv_theme_material_init+0x22e6>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
15a30: 2112 movs r1, #18
|
|
15a32: 0020 movs r0, r4
|
|
15a34: 4be4 ldr r3, [pc, #912] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15a36: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
15a38: 4be4 ldr r3, [pc, #912] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15a3a: 681c ldr r4, [r3, #0]
|
|
15a3c: 34b0 adds r4, #176 ; 0xb0
|
|
15a3e: 2000 movs r0, #0
|
|
15a40: 4be3 ldr r3, [pc, #908] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15a42: 4798 blx r3
|
|
15a44: 2801 cmp r0, #1
|
|
15a46: d801 bhi.n 15a4c <lv_theme_material_init+0x15bc>
|
|
15a48: f000 fea2 bl 16790 <lv_theme_material_init+0x2300>
|
|
15a4c: 2000 movs r0, #0
|
|
15a4e: 4be1 ldr r3, [pc, #900] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15a50: 4798 blx r3
|
|
15a52: 0103 lsls r3, r0, #4
|
|
15a54: 1a1b subs r3, r3, r0
|
|
15a56: 005b lsls r3, r3, #1
|
|
15a58: 3350 adds r3, #80 ; 0x50
|
|
15a5a: 2140 movs r1, #64 ; 0x40
|
|
15a5c: 31ff adds r1, #255 ; 0xff
|
|
15a5e: 2201 movs r2, #1
|
|
15a60: 428b cmp r3, r1
|
|
15a62: d901 bls.n 15a68 <lv_theme_material_init+0x15d8>
|
|
15a64: f000 fead bl 167c2 <lv_theme_material_init+0x2332>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
15a68: 2113 movs r1, #19
|
|
15a6a: 0020 movs r0, r4
|
|
15a6c: 4bd6 ldr r3, [pc, #856] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15a6e: 4798 blx r3
|
|
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
15a70: 4bd6 ldr r3, [pc, #856] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15a72: 681c ldr r4, [r3, #0]
|
|
15a74: 34b0 adds r4, #176 ; 0xb0
|
|
15a76: 2000 movs r0, #0
|
|
15a78: 4bd5 ldr r3, [pc, #852] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15a7a: 4798 blx r3
|
|
15a7c: 2801 cmp r0, #1
|
|
15a7e: d801 bhi.n 15a84 <lv_theme_material_init+0x15f4>
|
|
15a80: f000 feac bl 167dc <lv_theme_material_init+0x234c>
|
|
15a84: 2000 movs r0, #0
|
|
15a86: 4bd3 ldr r3, [pc, #844] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15a88: 4798 blx r3
|
|
15a8a: 0103 lsls r3, r0, #4
|
|
15a8c: 1a1b subs r3, r3, r0
|
|
15a8e: 005b lsls r3, r3, #1
|
|
15a90: 3350 adds r3, #80 ; 0x50
|
|
15a92: 2140 movs r1, #64 ; 0x40
|
|
15a94: 31ff adds r1, #255 ; 0xff
|
|
15a96: 2201 movs r2, #1
|
|
15a98: 428b cmp r3, r1
|
|
15a9a: d901 bls.n 15aa0 <lv_theme_material_init+0x1610>
|
|
15a9c: f000 feb7 bl 1680e <lv_theme_material_init+0x237e>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
|
|
15aa0: 2114 movs r1, #20
|
|
15aa2: 0020 movs r0, r4
|
|
15aa4: 4bc8 ldr r3, [pc, #800] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15aa6: 4798 blx r3
|
|
style_init_reset(&styles->table_cell);
|
|
15aa8: 4cc8 ldr r4, [pc, #800] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15aaa: 6820 ldr r0, [r4, #0]
|
|
15aac: 30a0 adds r0, #160 ; 0xa0
|
|
15aae: 4bca ldr r3, [pc, #808] ; (15dd8 <lv_theme_material_init+0x1948>)
|
|
15ab0: 4798 blx r3
|
|
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
15ab2: 6820 ldr r0, [r4, #0]
|
|
15ab4: 30a0 adds r0, #160 ; 0xa0
|
|
15ab6: 4bc9 ldr r3, [pc, #804] ; (15ddc <lv_theme_material_init+0x194c>)
|
|
15ab8: 699b ldr r3, [r3, #24]
|
|
15aba: 079b lsls r3, r3, #30
|
|
15abc: d501 bpl.n 15ac2 <lv_theme_material_init+0x1632>
|
|
15abe: f000 feb3 bl 16828 <lv_theme_material_init+0x2398>
|
|
15ac2: 2310 movs r3, #16
|
|
15ac4: 2122 movs r1, #34 ; 0x22
|
|
15ac6: 2212 movs r2, #18
|
|
15ac8: 0149 lsls r1, r1, #5
|
|
15aca: 02db lsls r3, r3, #11
|
|
15acc: 430a orrs r2, r1
|
|
15ace: 431a orrs r2, r3
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
|
|
15ad0: 2139 movs r1, #57 ; 0x39
|
|
15ad2: 4bc3 ldr r3, [pc, #780] ; (15de0 <lv_theme_material_init+0x1950>)
|
|
15ad4: 4798 blx r3
|
|
lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1);
|
|
15ad6: 4cbd ldr r4, [pc, #756] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15ad8: 6820 ldr r0, [r4, #0]
|
|
15ada: 30a0 adds r0, #160 ; 0xa0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
|
|
15adc: 2201 movs r2, #1
|
|
15ade: 2130 movs r1, #48 ; 0x30
|
|
15ae0: 4db9 ldr r5, [pc, #740] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15ae2: 47a8 blx r5
|
|
lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM);
|
|
15ae4: 6820 ldr r0, [r4, #0]
|
|
15ae6: 30a0 adds r0, #160 ; 0xa0
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
|
|
15ae8: 2203 movs r2, #3
|
|
15aea: 2131 movs r1, #49 ; 0x31
|
|
15aec: 47a8 blx r5
|
|
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
15aee: 6824 ldr r4, [r4, #0]
|
|
15af0: 34a0 adds r4, #160 ; 0xa0
|
|
15af2: 2000 movs r0, #0
|
|
15af4: 4bb6 ldr r3, [pc, #728] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15af6: 4798 blx r3
|
|
15af8: 2801 cmp r0, #1
|
|
15afa: d801 bhi.n 15b00 <lv_theme_material_init+0x1670>
|
|
15afc: f000 fe99 bl 16832 <lv_theme_material_init+0x23a2>
|
|
15b00: 2000 movs r0, #0
|
|
15b02: 4bb4 ldr r3, [pc, #720] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15b04: 4798 blx r3
|
|
15b06: 0103 lsls r3, r0, #4
|
|
15b08: 1a1b subs r3, r3, r0
|
|
15b0a: 005b lsls r3, r3, #1
|
|
15b0c: 3350 adds r3, #80 ; 0x50
|
|
15b0e: 2140 movs r1, #64 ; 0x40
|
|
15b10: 31ff adds r1, #255 ; 0xff
|
|
15b12: 2201 movs r2, #1
|
|
15b14: 428b cmp r3, r1
|
|
15b16: d901 bls.n 15b1c <lv_theme_material_init+0x168c>
|
|
15b18: f000 fea4 bl 16864 <lv_theme_material_init+0x23d4>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
|
|
15b1c: 2112 movs r1, #18
|
|
15b1e: 0020 movs r0, r4
|
|
15b20: 4ba9 ldr r3, [pc, #676] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15b22: 4798 blx r3
|
|
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
15b24: 4ba9 ldr r3, [pc, #676] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15b26: 681c ldr r4, [r3, #0]
|
|
15b28: 34a0 adds r4, #160 ; 0xa0
|
|
15b2a: 2000 movs r0, #0
|
|
15b2c: 4ba8 ldr r3, [pc, #672] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15b2e: 4798 blx r3
|
|
15b30: 2801 cmp r0, #1
|
|
15b32: d801 bhi.n 15b38 <lv_theme_material_init+0x16a8>
|
|
15b34: f000 fea3 bl 1687e <lv_theme_material_init+0x23ee>
|
|
15b38: 2000 movs r0, #0
|
|
15b3a: 4ba6 ldr r3, [pc, #664] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15b3c: 4798 blx r3
|
|
15b3e: 0103 lsls r3, r0, #4
|
|
15b40: 1a1b subs r3, r3, r0
|
|
15b42: 005b lsls r3, r3, #1
|
|
15b44: 3350 adds r3, #80 ; 0x50
|
|
15b46: 2140 movs r1, #64 ; 0x40
|
|
15b48: 31ff adds r1, #255 ; 0xff
|
|
15b4a: 2201 movs r2, #1
|
|
15b4c: 428b cmp r3, r1
|
|
15b4e: d901 bls.n 15b54 <lv_theme_material_init+0x16c4>
|
|
15b50: f000 feae bl 168b0 <lv_theme_material_init+0x2420>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
|
|
15b54: 2113 movs r1, #19
|
|
15b56: 0020 movs r0, r4
|
|
15b58: 4b9b ldr r3, [pc, #620] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15b5a: 4798 blx r3
|
|
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
15b5c: 4b9b ldr r3, [pc, #620] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15b5e: 681c ldr r4, [r3, #0]
|
|
15b60: 34a0 adds r4, #160 ; 0xa0
|
|
15b62: 2000 movs r0, #0
|
|
15b64: 4b9a ldr r3, [pc, #616] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15b66: 4798 blx r3
|
|
15b68: 2801 cmp r0, #1
|
|
15b6a: d801 bhi.n 15b70 <lv_theme_material_init+0x16e0>
|
|
15b6c: f000 fead bl 168ca <lv_theme_material_init+0x243a>
|
|
15b70: 2000 movs r0, #0
|
|
15b72: 4b98 ldr r3, [pc, #608] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15b74: 4798 blx r3
|
|
15b76: 0103 lsls r3, r0, #4
|
|
15b78: 1a1b subs r3, r3, r0
|
|
15b7a: 005b lsls r3, r3, #1
|
|
15b7c: 3350 adds r3, #80 ; 0x50
|
|
15b7e: 2140 movs r1, #64 ; 0x40
|
|
15b80: 31ff adds r1, #255 ; 0xff
|
|
15b82: 2201 movs r2, #1
|
|
15b84: 428b cmp r3, r1
|
|
15b86: d901 bls.n 15b8c <lv_theme_material_init+0x16fc>
|
|
15b88: f000 feb8 bl 168fc <lv_theme_material_init+0x246c>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
|
|
15b8c: 2110 movs r1, #16
|
|
15b8e: 0020 movs r0, r4
|
|
15b90: 4b8d ldr r3, [pc, #564] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15b92: 4798 blx r3
|
|
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
15b94: 4b8d ldr r3, [pc, #564] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15b96: 681c ldr r4, [r3, #0]
|
|
15b98: 34a0 adds r4, #160 ; 0xa0
|
|
15b9a: 2000 movs r0, #0
|
|
15b9c: 4b8c ldr r3, [pc, #560] ; (15dd0 <lv_theme_material_init+0x1940>)
|
|
15b9e: 4798 blx r3
|
|
15ba0: 2801 cmp r0, #1
|
|
15ba2: d801 bhi.n 15ba8 <lv_theme_material_init+0x1718>
|
|
15ba4: f000 feb7 bl 16916 <lv_theme_material_init+0x2486>
|
|
15ba8: 2000 movs r0, #0
|
|
15baa: 4b8a ldr r3, [pc, #552] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15bac: 4798 blx r3
|
|
15bae: 0103 lsls r3, r0, #4
|
|
15bb0: 1a1b subs r3, r3, r0
|
|
15bb2: 005b lsls r3, r3, #1
|
|
15bb4: 3350 adds r3, #80 ; 0x50
|
|
15bb6: 2140 movs r1, #64 ; 0x40
|
|
15bb8: 31ff adds r1, #255 ; 0xff
|
|
15bba: 2201 movs r2, #1
|
|
15bbc: 428b cmp r3, r1
|
|
15bbe: d901 bls.n 15bc4 <lv_theme_material_init+0x1734>
|
|
15bc0: f000 fec2 bl 16948 <lv_theme_material_init+0x24b8>
|
|
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
|
|
15bc4: 2111 movs r1, #17
|
|
15bc6: 0020 movs r0, r4
|
|
15bc8: 4b7f ldr r3, [pc, #508] ; (15dc8 <lv_theme_material_init+0x1938>)
|
|
15bca: 4798 blx r3
|
|
theme.apply_xcb = theme_apply;
|
|
15bcc: 4c83 ldr r4, [pc, #524] ; (15ddc <lv_theme_material_init+0x194c>)
|
|
15bce: 4b85 ldr r3, [pc, #532] ; (15de4 <lv_theme_material_init+0x1954>)
|
|
15bd0: 6023 str r3, [r4, #0]
|
|
inited = true;
|
|
15bd2: 2201 movs r2, #1
|
|
15bd4: 4b84 ldr r3, [pc, #528] ; (15de8 <lv_theme_material_init+0x1958>)
|
|
15bd6: 701a strb r2, [r3, #0]
|
|
lv_obj_report_style_mod(NULL);
|
|
15bd8: 2000 movs r0, #0
|
|
15bda: 4b84 ldr r3, [pc, #528] ; (15dec <lv_theme_material_init+0x195c>)
|
|
15bdc: 4798 blx r3
|
|
}
|
|
15bde: 0020 movs r0, r4
|
|
15be0: bc04 pop {r2}
|
|
15be2: 4690 mov r8, r2
|
|
15be4: bdf0 pop {r4, r5, r6, r7, pc}
|
|
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
|
|
15be6: 20bc movs r0, #188 ; 0xbc
|
|
15be8: 4b81 ldr r3, [pc, #516] ; (15df0 <lv_theme_material_init+0x1960>)
|
|
15bea: 4798 blx r3
|
|
15bec: 4b81 ldr r3, [pc, #516] ; (15df4 <lv_theme_material_init+0x1964>)
|
|
15bee: 6018 str r0, [r3, #0]
|
|
styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles);
|
|
15bf0: 4b76 ldr r3, [pc, #472] ; (15dcc <lv_theme_material_init+0x193c>)
|
|
15bf2: 6018 str r0, [r3, #0]
|
|
15bf4: f7fe fc59 bl 144aa <lv_theme_material_init+0x1a>
|
|
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
|
|
15bf8: 2315 movs r3, #21
|
|
15bfa: 212a movs r1, #42 ; 0x2a
|
|
15bfc: 2215 movs r2, #21
|
|
15bfe: f7fe fc7f bl 14500 <lv_theme_material_init+0x70>
|
|
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
|
|
15c02: 2000 movs r0, #0
|
|
15c04: 4b73 ldr r3, [pc, #460] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c06: 4798 blx r3
|
|
15c08: 3050 adds r0, #80 ; 0x50
|
|
15c0a: 21a0 movs r1, #160 ; 0xa0
|
|
15c0c: 4b7a ldr r3, [pc, #488] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c0e: 4798 blx r3
|
|
15c10: b202 sxth r2, r0
|
|
15c12: f7fe fc8e bl 14532 <lv_theme_material_init+0xa2>
|
|
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
15c16: 2000 movs r0, #0
|
|
15c18: 4b6e ldr r3, [pc, #440] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c1a: 4798 blx r3
|
|
15c1c: 0003 movs r3, r0
|
|
15c1e: 0080 lsls r0, r0, #2
|
|
15c20: 18c0 adds r0, r0, r3
|
|
15c22: 0040 lsls r0, r0, #1
|
|
15c24: 3050 adds r0, #80 ; 0x50
|
|
15c26: 21a0 movs r1, #160 ; 0xa0
|
|
15c28: 4b73 ldr r3, [pc, #460] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c2a: 4798 blx r3
|
|
15c2c: b202 sxth r2, r0
|
|
15c2e: f7fe fc95 bl 1455c <lv_theme_material_init+0xcc>
|
|
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
15c32: 2000 movs r0, #0
|
|
15c34: 4b67 ldr r3, [pc, #412] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c36: 4798 blx r3
|
|
15c38: 0003 movs r3, r0
|
|
15c3a: 0080 lsls r0, r0, #2
|
|
15c3c: 18c0 adds r0, r0, r3
|
|
15c3e: 0040 lsls r0, r0, #1
|
|
15c40: 3050 adds r0, #80 ; 0x50
|
|
15c42: 21a0 movs r1, #160 ; 0xa0
|
|
15c44: 4b6c ldr r3, [pc, #432] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c46: 4798 blx r3
|
|
15c48: b202 sxth r2, r0
|
|
15c4a: f7fe fc9c bl 14586 <lv_theme_material_init+0xf6>
|
|
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
15c4e: 231a movs r3, #26
|
|
15c50: 2137 movs r1, #55 ; 0x37
|
|
15c52: 221c movs r2, #28
|
|
15c54: f7fe fca7 bl 145a6 <lv_theme_material_init+0x116>
|
|
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
|
|
15c58: 2000 movs r0, #0
|
|
15c5a: 4b5e ldr r3, [pc, #376] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c5c: 4798 blx r3
|
|
15c5e: 0003 movs r3, r0
|
|
15c60: 0040 lsls r0, r0, #1
|
|
15c62: 18c0 adds r0, r0, r3
|
|
15c64: 3050 adds r0, #80 ; 0x50
|
|
15c66: 21a0 movs r1, #160 ; 0xa0
|
|
15c68: 4b63 ldr r3, [pc, #396] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c6a: 4798 blx r3
|
|
15c6c: b202 sxth r2, r0
|
|
15c6e: f7fe fcb5 bl 145dc <lv_theme_material_init+0x14c>
|
|
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
|
|
15c72: 2000 movs r0, #0
|
|
15c74: 4b57 ldr r3, [pc, #348] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c76: 4798 blx r3
|
|
15c78: 3014 adds r0, #20
|
|
15c7a: 0080 lsls r0, r0, #2
|
|
15c7c: 21a0 movs r1, #160 ; 0xa0
|
|
15c7e: 4b5e ldr r3, [pc, #376] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c80: 4798 blx r3
|
|
15c82: b202 sxth r2, r0
|
|
15c84: f7fe fcbd bl 14602 <lv_theme_material_init+0x172>
|
|
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
|
|
15c88: 2000 movs r0, #0
|
|
15c8a: 4b52 ldr r3, [pc, #328] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15c8c: 4798 blx r3
|
|
15c8e: 3028 adds r0, #40 ; 0x28
|
|
15c90: 0040 lsls r0, r0, #1
|
|
15c92: 21a0 movs r1, #160 ; 0xa0
|
|
15c94: 4b58 ldr r3, [pc, #352] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15c96: 4798 blx r3
|
|
15c98: b202 sxth r2, r0
|
|
15c9a: f7fe fcc5 bl 14628 <lv_theme_material_init+0x198>
|
|
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
|
|
15c9e: 2000 movs r0, #0
|
|
15ca0: 4b4c ldr r3, [pc, #304] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15ca2: 4798 blx r3
|
|
15ca4: 3050 adds r0, #80 ; 0x50
|
|
15ca6: 21a0 movs r1, #160 ; 0xa0
|
|
15ca8: 4b53 ldr r3, [pc, #332] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15caa: 4798 blx r3
|
|
15cac: b202 sxth r2, r0
|
|
15cae: f7fe fccd bl 1464c <lv_theme_material_init+0x1bc>
|
|
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
15cb2: 2000 movs r0, #0
|
|
15cb4: 4b47 ldr r3, [pc, #284] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15cb6: 4798 blx r3
|
|
15cb8: 0103 lsls r3, r0, #4
|
|
15cba: 1a18 subs r0, r3, r0
|
|
15cbc: 3050 adds r0, #80 ; 0x50
|
|
15cbe: 2340 movs r3, #64 ; 0x40
|
|
15cc0: 33ff adds r3, #255 ; 0xff
|
|
15cc2: 2201 movs r2, #1
|
|
15cc4: 4298 cmp r0, r3
|
|
15cc6: d801 bhi.n 15ccc <lv_theme_material_init+0x183c>
|
|
15cc8: f7fe fce0 bl 1468c <lv_theme_material_init+0x1fc>
|
|
15ccc: 2000 movs r0, #0
|
|
15cce: 4b41 ldr r3, [pc, #260] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15cd0: 4798 blx r3
|
|
15cd2: 0103 lsls r3, r0, #4
|
|
15cd4: 1a18 subs r0, r3, r0
|
|
15cd6: 3050 adds r0, #80 ; 0x50
|
|
15cd8: 21a0 movs r1, #160 ; 0xa0
|
|
15cda: 4b47 ldr r3, [pc, #284] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15cdc: 4798 blx r3
|
|
15cde: b202 sxth r2, r0
|
|
15ce0: f7fe fcd4 bl 1468c <lv_theme_material_init+0x1fc>
|
|
15ce4: 2000 movs r0, #0
|
|
15ce6: 4b3b ldr r3, [pc, #236] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15ce8: 4798 blx r3
|
|
15cea: 0103 lsls r3, r0, #4
|
|
15cec: 1a18 subs r0, r3, r0
|
|
15cee: 0040 lsls r0, r0, #1
|
|
15cf0: 3050 adds r0, #80 ; 0x50
|
|
15cf2: 21a0 movs r1, #160 ; 0xa0
|
|
15cf4: 4b40 ldr r3, [pc, #256] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15cf6: 4798 blx r3
|
|
15cf8: b202 sxth r2, r0
|
|
15cfa: f7fe fcc7 bl 1468c <lv_theme_material_init+0x1fc>
|
|
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
15cfe: 2000 movs r0, #0
|
|
15d00: 4b34 ldr r3, [pc, #208] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d02: 4798 blx r3
|
|
15d04: 0103 lsls r3, r0, #4
|
|
15d06: 1a18 subs r0, r3, r0
|
|
15d08: 3050 adds r0, #80 ; 0x50
|
|
15d0a: 2340 movs r3, #64 ; 0x40
|
|
15d0c: 33ff adds r3, #255 ; 0xff
|
|
15d0e: 2201 movs r2, #1
|
|
15d10: 4298 cmp r0, r3
|
|
15d12: d801 bhi.n 15d18 <lv_theme_material_init+0x1888>
|
|
15d14: f7fe fcd6 bl 146c4 <lv_theme_material_init+0x234>
|
|
15d18: 2000 movs r0, #0
|
|
15d1a: 4b2e ldr r3, [pc, #184] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d1c: 4798 blx r3
|
|
15d1e: 0103 lsls r3, r0, #4
|
|
15d20: 1a18 subs r0, r3, r0
|
|
15d22: 3050 adds r0, #80 ; 0x50
|
|
15d24: 21a0 movs r1, #160 ; 0xa0
|
|
15d26: 4b34 ldr r3, [pc, #208] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15d28: 4798 blx r3
|
|
15d2a: b202 sxth r2, r0
|
|
15d2c: f7fe fcca bl 146c4 <lv_theme_material_init+0x234>
|
|
15d30: 2000 movs r0, #0
|
|
15d32: 4b28 ldr r3, [pc, #160] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d34: 4798 blx r3
|
|
15d36: 0103 lsls r3, r0, #4
|
|
15d38: 1a18 subs r0, r3, r0
|
|
15d3a: 0040 lsls r0, r0, #1
|
|
15d3c: 3050 adds r0, #80 ; 0x50
|
|
15d3e: 21a0 movs r1, #160 ; 0xa0
|
|
15d40: 4b2d ldr r3, [pc, #180] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15d42: 4798 blx r3
|
|
15d44: b202 sxth r2, r0
|
|
15d46: f7fe fcbd bl 146c4 <lv_theme_material_init+0x234>
|
|
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
15d4a: 2000 movs r0, #0
|
|
15d4c: 4b21 ldr r3, [pc, #132] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d4e: 4798 blx r3
|
|
15d50: 0103 lsls r3, r0, #4
|
|
15d52: 1a18 subs r0, r3, r0
|
|
15d54: 3050 adds r0, #80 ; 0x50
|
|
15d56: 2340 movs r3, #64 ; 0x40
|
|
15d58: 33ff adds r3, #255 ; 0xff
|
|
15d5a: 2201 movs r2, #1
|
|
15d5c: 4298 cmp r0, r3
|
|
15d5e: d801 bhi.n 15d64 <lv_theme_material_init+0x18d4>
|
|
15d60: f7fe fccc bl 146fc <lv_theme_material_init+0x26c>
|
|
15d64: 2000 movs r0, #0
|
|
15d66: 4b1b ldr r3, [pc, #108] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d68: 4798 blx r3
|
|
15d6a: 0103 lsls r3, r0, #4
|
|
15d6c: 1a18 subs r0, r3, r0
|
|
15d6e: 3050 adds r0, #80 ; 0x50
|
|
15d70: 21a0 movs r1, #160 ; 0xa0
|
|
15d72: 4b21 ldr r3, [pc, #132] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15d74: 4798 blx r3
|
|
15d76: b202 sxth r2, r0
|
|
15d78: f7fe fcc0 bl 146fc <lv_theme_material_init+0x26c>
|
|
15d7c: 2000 movs r0, #0
|
|
15d7e: 4b15 ldr r3, [pc, #84] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d80: 4798 blx r3
|
|
15d82: 0103 lsls r3, r0, #4
|
|
15d84: 1a18 subs r0, r3, r0
|
|
15d86: 0040 lsls r0, r0, #1
|
|
15d88: 3050 adds r0, #80 ; 0x50
|
|
15d8a: 21a0 movs r1, #160 ; 0xa0
|
|
15d8c: 4b1a ldr r3, [pc, #104] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15d8e: 4798 blx r3
|
|
15d90: b202 sxth r2, r0
|
|
15d92: f7fe fcb3 bl 146fc <lv_theme_material_init+0x26c>
|
|
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
|
|
15d96: 2000 movs r0, #0
|
|
15d98: 4b0e ldr r3, [pc, #56] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15d9a: 4798 blx r3
|
|
15d9c: 0103 lsls r3, r0, #4
|
|
15d9e: 1a18 subs r0, r3, r0
|
|
15da0: 3050 adds r0, #80 ; 0x50
|
|
15da2: 2340 movs r3, #64 ; 0x40
|
|
15da4: 33ff adds r3, #255 ; 0xff
|
|
15da6: 2201 movs r2, #1
|
|
15da8: 4298 cmp r0, r3
|
|
15daa: d801 bhi.n 15db0 <lv_theme_material_init+0x1920>
|
|
15dac: f7fe fcc2 bl 14734 <lv_theme_material_init+0x2a4>
|
|
15db0: 2000 movs r0, #0
|
|
15db2: 4b08 ldr r3, [pc, #32] ; (15dd4 <lv_theme_material_init+0x1944>)
|
|
15db4: 4798 blx r3
|
|
15db6: 0103 lsls r3, r0, #4
|
|
15db8: 1a18 subs r0, r3, r0
|
|
15dba: 3050 adds r0, #80 ; 0x50
|
|
15dbc: 21a0 movs r1, #160 ; 0xa0
|
|
15dbe: 4b0e ldr r3, [pc, #56] ; (15df8 <lv_theme_material_init+0x1968>)
|
|
15dc0: 4798 blx r3
|
|
15dc2: b202 sxth r2, r0
|
|
15dc4: f7fe fcb6 bl 14734 <lv_theme_material_init+0x2a4>
|
|
15dc8: 00004cf5 .word 0x00004cf5
|
|
15dcc: 20004c38 .word 0x20004c38
|
|
15dd0: 0000f681 .word 0x0000f681
|
|
15dd4: 0000f665 .word 0x0000f665
|
|
15dd8: 00012495 .word 0x00012495
|
|
15ddc: 20004c3c .word 0x20004c3c
|
|
15de0: 00004e55 .word 0x00004e55
|
|
15de4: 00011c79 .word 0x00011c79
|
|
15de8: 20004c34 .word 0x20004c34
|
|
15dec: 00002735 .word 0x00002735
|
|
15df0: 00010a71 .word 0x00010a71
|
|
15df4: 20004d74 .word 0x20004d74
|
|
15df8: 00017881 .word 0x00017881
|
|
15dfc: 2000 movs r0, #0
|
|
15dfe: 4bfc ldr r3, [pc, #1008] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e00: 4798 blx r3
|
|
15e02: 0103 lsls r3, r0, #4
|
|
15e04: 1a18 subs r0, r3, r0
|
|
15e06: 0040 lsls r0, r0, #1
|
|
15e08: 3050 adds r0, #80 ; 0x50
|
|
15e0a: 21a0 movs r1, #160 ; 0xa0
|
|
15e0c: 4bf9 ldr r3, [pc, #996] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15e0e: 4798 blx r3
|
|
15e10: b202 sxth r2, r0
|
|
15e12: f7fe fc8f bl 14734 <lv_theme_material_init+0x2a4>
|
|
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
|
|
15e16: 2222 movs r2, #34 ; 0x22
|
|
15e18: 2311 movs r3, #17
|
|
15e1a: f7fe fc9a bl 14752 <lv_theme_material_init+0x2c2>
|
|
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
|
|
15e1e: 2306 movs r3, #6
|
|
15e20: 2110 movs r1, #16
|
|
15e22: 2209 movs r2, #9
|
|
15e24: f7fe fcac bl 14780 <lv_theme_material_init+0x2f0>
|
|
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
15e28: 2000 movs r0, #0
|
|
15e2a: 4bf1 ldr r3, [pc, #964] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e2c: 4798 blx r3
|
|
15e2e: 0103 lsls r3, r0, #4
|
|
15e30: 1a18 subs r0, r3, r0
|
|
15e32: 3050 adds r0, #80 ; 0x50
|
|
15e34: 2340 movs r3, #64 ; 0x40
|
|
15e36: 33ff adds r3, #255 ; 0xff
|
|
15e38: 2201 movs r2, #1
|
|
15e3a: 4298 cmp r0, r3
|
|
15e3c: d801 bhi.n 15e42 <lv_theme_material_init+0x19b2>
|
|
15e3e: f7fe fcbe bl 147be <lv_theme_material_init+0x32e>
|
|
15e42: 2000 movs r0, #0
|
|
15e44: 4bea ldr r3, [pc, #936] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e46: 4798 blx r3
|
|
15e48: 0103 lsls r3, r0, #4
|
|
15e4a: 1a18 subs r0, r3, r0
|
|
15e4c: 3050 adds r0, #80 ; 0x50
|
|
15e4e: 21a0 movs r1, #160 ; 0xa0
|
|
15e50: 4be8 ldr r3, [pc, #928] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15e52: 4798 blx r3
|
|
15e54: b202 sxth r2, r0
|
|
15e56: f7fe fcb2 bl 147be <lv_theme_material_init+0x32e>
|
|
15e5a: 2000 movs r0, #0
|
|
15e5c: 4be4 ldr r3, [pc, #912] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e5e: 4798 blx r3
|
|
15e60: 0103 lsls r3, r0, #4
|
|
15e62: 1a18 subs r0, r3, r0
|
|
15e64: 0040 lsls r0, r0, #1
|
|
15e66: 3050 adds r0, #80 ; 0x50
|
|
15e68: 21a0 movs r1, #160 ; 0xa0
|
|
15e6a: 4be2 ldr r3, [pc, #904] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15e6c: 4798 blx r3
|
|
15e6e: b202 sxth r2, r0
|
|
15e70: f7fe fca5 bl 147be <lv_theme_material_init+0x32e>
|
|
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
15e74: 2000 movs r0, #0
|
|
15e76: 4bde ldr r3, [pc, #888] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e78: 4798 blx r3
|
|
15e7a: 0103 lsls r3, r0, #4
|
|
15e7c: 1a18 subs r0, r3, r0
|
|
15e7e: 3050 adds r0, #80 ; 0x50
|
|
15e80: 2340 movs r3, #64 ; 0x40
|
|
15e82: 33ff adds r3, #255 ; 0xff
|
|
15e84: 2201 movs r2, #1
|
|
15e86: 4298 cmp r0, r3
|
|
15e88: d801 bhi.n 15e8e <lv_theme_material_init+0x19fe>
|
|
15e8a: f7fe fcb4 bl 147f6 <lv_theme_material_init+0x366>
|
|
15e8e: 2000 movs r0, #0
|
|
15e90: 4bd7 ldr r3, [pc, #860] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15e92: 4798 blx r3
|
|
15e94: 0103 lsls r3, r0, #4
|
|
15e96: 1a18 subs r0, r3, r0
|
|
15e98: 3050 adds r0, #80 ; 0x50
|
|
15e9a: 21a0 movs r1, #160 ; 0xa0
|
|
15e9c: 4bd5 ldr r3, [pc, #852] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15e9e: 4798 blx r3
|
|
15ea0: b202 sxth r2, r0
|
|
15ea2: f7fe fca8 bl 147f6 <lv_theme_material_init+0x366>
|
|
15ea6: 2000 movs r0, #0
|
|
15ea8: 4bd1 ldr r3, [pc, #836] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15eaa: 4798 blx r3
|
|
15eac: 0103 lsls r3, r0, #4
|
|
15eae: 1a18 subs r0, r3, r0
|
|
15eb0: 0040 lsls r0, r0, #1
|
|
15eb2: 3050 adds r0, #80 ; 0x50
|
|
15eb4: 21a0 movs r1, #160 ; 0xa0
|
|
15eb6: 4bcf ldr r3, [pc, #828] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15eb8: 4798 blx r3
|
|
15eba: b202 sxth r2, r0
|
|
15ebc: f7fe fc9b bl 147f6 <lv_theme_material_init+0x366>
|
|
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
|
|
15ec0: 2000 movs r0, #0
|
|
15ec2: 4bcb ldr r3, [pc, #812] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15ec4: 4798 blx r3
|
|
15ec6: 0103 lsls r3, r0, #4
|
|
15ec8: 1a18 subs r0, r3, r0
|
|
15eca: 3050 adds r0, #80 ; 0x50
|
|
15ecc: 2340 movs r3, #64 ; 0x40
|
|
15ece: 33ff adds r3, #255 ; 0xff
|
|
15ed0: 2201 movs r2, #1
|
|
15ed2: 4298 cmp r0, r3
|
|
15ed4: d801 bhi.n 15eda <lv_theme_material_init+0x1a4a>
|
|
15ed6: f7fe fcaa bl 1482e <lv_theme_material_init+0x39e>
|
|
15eda: 2000 movs r0, #0
|
|
15edc: 4bc4 ldr r3, [pc, #784] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15ede: 4798 blx r3
|
|
15ee0: 0103 lsls r3, r0, #4
|
|
15ee2: 1a18 subs r0, r3, r0
|
|
15ee4: 3050 adds r0, #80 ; 0x50
|
|
15ee6: 21a0 movs r1, #160 ; 0xa0
|
|
15ee8: 4bc2 ldr r3, [pc, #776] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15eea: 4798 blx r3
|
|
15eec: b202 sxth r2, r0
|
|
15eee: f7fe fc9e bl 1482e <lv_theme_material_init+0x39e>
|
|
15ef2: 2000 movs r0, #0
|
|
15ef4: 4bbe ldr r3, [pc, #760] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15ef6: 4798 blx r3
|
|
15ef8: 0103 lsls r3, r0, #4
|
|
15efa: 1a18 subs r0, r3, r0
|
|
15efc: 0040 lsls r0, r0, #1
|
|
15efe: 3050 adds r0, #80 ; 0x50
|
|
15f00: 21a0 movs r1, #160 ; 0xa0
|
|
15f02: 4bbc ldr r3, [pc, #752] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15f04: 4798 blx r3
|
|
15f06: b202 sxth r2, r0
|
|
15f08: f7fe fc91 bl 1482e <lv_theme_material_init+0x39e>
|
|
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
|
|
15f0c: 2000 movs r0, #0
|
|
15f0e: 4bb8 ldr r3, [pc, #736] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f10: 4798 blx r3
|
|
15f12: 3014 adds r0, #20
|
|
15f14: 0080 lsls r0, r0, #2
|
|
15f16: 21a0 movs r1, #160 ; 0xa0
|
|
15f18: 4bb6 ldr r3, [pc, #728] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15f1a: 4798 blx r3
|
|
15f1c: b202 sxth r2, r0
|
|
15f1e: f7fe fc9d bl 1485c <lv_theme_material_init+0x3cc>
|
|
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
|
|
15f22: 2306 movs r3, #6
|
|
15f24: 2110 movs r1, #16
|
|
15f26: 2209 movs r2, #9
|
|
15f28: f7fe fca8 bl 1487c <lv_theme_material_init+0x3ec>
|
|
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
|
|
15f2c: 2219 movs r2, #25
|
|
15f2e: 230c movs r3, #12
|
|
15f30: f7fe fd01 bl 14936 <lv_theme_material_init+0x4a6>
|
|
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
|
|
15f34: 2000 movs r0, #0
|
|
15f36: 4bae ldr r3, [pc, #696] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f38: 4798 blx r3
|
|
15f3a: 0003 movs r3, r0
|
|
15f3c: 0040 lsls r0, r0, #1
|
|
15f3e: 18c0 adds r0, r0, r3
|
|
15f40: 3050 adds r0, #80 ; 0x50
|
|
15f42: 21a0 movs r1, #160 ; 0xa0
|
|
15f44: 4bab ldr r3, [pc, #684] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15f46: 4798 blx r3
|
|
15f48: b202 sxth r2, r0
|
|
15f4a: f7fe fd25 bl 14998 <lv_theme_material_init+0x508>
|
|
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
15f4e: 2000 movs r0, #0
|
|
15f50: 4ba7 ldr r3, [pc, #668] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f52: 4798 blx r3
|
|
15f54: 0103 lsls r3, r0, #4
|
|
15f56: 1a18 subs r0, r3, r0
|
|
15f58: 3050 adds r0, #80 ; 0x50
|
|
15f5a: 2340 movs r3, #64 ; 0x40
|
|
15f5c: 33ff adds r3, #255 ; 0xff
|
|
15f5e: 2201 movs r2, #1
|
|
15f60: 4298 cmp r0, r3
|
|
15f62: d801 bhi.n 15f68 <lv_theme_material_init+0x1ad8>
|
|
15f64: f7fe fd34 bl 149d0 <lv_theme_material_init+0x540>
|
|
15f68: 2000 movs r0, #0
|
|
15f6a: 4ba1 ldr r3, [pc, #644] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f6c: 4798 blx r3
|
|
15f6e: 0103 lsls r3, r0, #4
|
|
15f70: 1a18 subs r0, r3, r0
|
|
15f72: 3050 adds r0, #80 ; 0x50
|
|
15f74: 21a0 movs r1, #160 ; 0xa0
|
|
15f76: 4b9f ldr r3, [pc, #636] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15f78: 4798 blx r3
|
|
15f7a: b202 sxth r2, r0
|
|
15f7c: f7fe fd28 bl 149d0 <lv_theme_material_init+0x540>
|
|
15f80: 2000 movs r0, #0
|
|
15f82: 4b9b ldr r3, [pc, #620] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f84: 4798 blx r3
|
|
15f86: 0103 lsls r3, r0, #4
|
|
15f88: 1a18 subs r0, r3, r0
|
|
15f8a: 0040 lsls r0, r0, #1
|
|
15f8c: 3050 adds r0, #80 ; 0x50
|
|
15f8e: 21a0 movs r1, #160 ; 0xa0
|
|
15f90: 4b98 ldr r3, [pc, #608] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15f92: 4798 blx r3
|
|
15f94: b202 sxth r2, r0
|
|
15f96: f7fe fd1b bl 149d0 <lv_theme_material_init+0x540>
|
|
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
15f9a: 2000 movs r0, #0
|
|
15f9c: 4b94 ldr r3, [pc, #592] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15f9e: 4798 blx r3
|
|
15fa0: 0103 lsls r3, r0, #4
|
|
15fa2: 1a18 subs r0, r3, r0
|
|
15fa4: 3050 adds r0, #80 ; 0x50
|
|
15fa6: 2340 movs r3, #64 ; 0x40
|
|
15fa8: 33ff adds r3, #255 ; 0xff
|
|
15faa: 2201 movs r2, #1
|
|
15fac: 4298 cmp r0, r3
|
|
15fae: d801 bhi.n 15fb4 <lv_theme_material_init+0x1b24>
|
|
15fb0: f7fe fd2a bl 14a08 <lv_theme_material_init+0x578>
|
|
15fb4: 2000 movs r0, #0
|
|
15fb6: 4b8e ldr r3, [pc, #568] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15fb8: 4798 blx r3
|
|
15fba: 0103 lsls r3, r0, #4
|
|
15fbc: 1a18 subs r0, r3, r0
|
|
15fbe: 3050 adds r0, #80 ; 0x50
|
|
15fc0: 21a0 movs r1, #160 ; 0xa0
|
|
15fc2: 4b8c ldr r3, [pc, #560] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15fc4: 4798 blx r3
|
|
15fc6: b202 sxth r2, r0
|
|
15fc8: f7fe fd1e bl 14a08 <lv_theme_material_init+0x578>
|
|
15fcc: 2000 movs r0, #0
|
|
15fce: 4b88 ldr r3, [pc, #544] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15fd0: 4798 blx r3
|
|
15fd2: 0103 lsls r3, r0, #4
|
|
15fd4: 1a18 subs r0, r3, r0
|
|
15fd6: 0040 lsls r0, r0, #1
|
|
15fd8: 3050 adds r0, #80 ; 0x50
|
|
15fda: 21a0 movs r1, #160 ; 0xa0
|
|
15fdc: 4b85 ldr r3, [pc, #532] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
15fde: 4798 blx r3
|
|
15fe0: b202 sxth r2, r0
|
|
15fe2: f7fe fd11 bl 14a08 <lv_theme_material_init+0x578>
|
|
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
|
|
15fe6: 2000 movs r0, #0
|
|
15fe8: 4b81 ldr r3, [pc, #516] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
15fea: 4798 blx r3
|
|
15fec: 0103 lsls r3, r0, #4
|
|
15fee: 1a18 subs r0, r3, r0
|
|
15ff0: 3050 adds r0, #80 ; 0x50
|
|
15ff2: 2340 movs r3, #64 ; 0x40
|
|
15ff4: 33ff adds r3, #255 ; 0xff
|
|
15ff6: 2201 movs r2, #1
|
|
15ff8: 4298 cmp r0, r3
|
|
15ffa: d801 bhi.n 16000 <lv_theme_material_init+0x1b70>
|
|
15ffc: f7fe fd20 bl 14a40 <lv_theme_material_init+0x5b0>
|
|
16000: 2000 movs r0, #0
|
|
16002: 4b7b ldr r3, [pc, #492] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16004: 4798 blx r3
|
|
16006: 0103 lsls r3, r0, #4
|
|
16008: 1a18 subs r0, r3, r0
|
|
1600a: 3050 adds r0, #80 ; 0x50
|
|
1600c: 21a0 movs r1, #160 ; 0xa0
|
|
1600e: 4b79 ldr r3, [pc, #484] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16010: 4798 blx r3
|
|
16012: b202 sxth r2, r0
|
|
16014: f7fe fd14 bl 14a40 <lv_theme_material_init+0x5b0>
|
|
16018: 2000 movs r0, #0
|
|
1601a: 4b75 ldr r3, [pc, #468] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
1601c: 4798 blx r3
|
|
1601e: 0103 lsls r3, r0, #4
|
|
16020: 1a18 subs r0, r3, r0
|
|
16022: 0040 lsls r0, r0, #1
|
|
16024: 3050 adds r0, #80 ; 0x50
|
|
16026: 21a0 movs r1, #160 ; 0xa0
|
|
16028: 4b72 ldr r3, [pc, #456] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
1602a: 4798 blx r3
|
|
1602c: b202 sxth r2, r0
|
|
1602e: f7fe fd07 bl 14a40 <lv_theme_material_init+0x5b0>
|
|
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
|
|
16032: 2000 movs r0, #0
|
|
16034: 4b6e ldr r3, [pc, #440] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16036: 4798 blx r3
|
|
16038: 0103 lsls r3, r0, #4
|
|
1603a: 1a18 subs r0, r3, r0
|
|
1603c: 0040 lsls r0, r0, #1
|
|
1603e: 3050 adds r0, #80 ; 0x50
|
|
16040: 21a0 movs r1, #160 ; 0xa0
|
|
16042: 4b6c ldr r3, [pc, #432] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16044: 4798 blx r3
|
|
16046: b202 sxth r2, r0
|
|
16048: f7fe fd13 bl 14a72 <lv_theme_material_init+0x5e2>
|
|
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
|
|
1604c: 231d movs r3, #29
|
|
1604e: 213b movs r1, #59 ; 0x3b
|
|
16050: 221e movs r2, #30
|
|
16052: f7fe fd24 bl 14a9e <lv_theme_material_init+0x60e>
|
|
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
|
|
16056: 2000 movs r0, #0
|
|
16058: 4b65 ldr r3, [pc, #404] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
1605a: 4798 blx r3
|
|
1605c: 0003 movs r3, r0
|
|
1605e: 0080 lsls r0, r0, #2
|
|
16060: 18c0 adds r0, r0, r3
|
|
16062: 0080 lsls r0, r0, #2
|
|
16064: 3050 adds r0, #80 ; 0x50
|
|
16066: 21a0 movs r1, #160 ; 0xa0
|
|
16068: 4b62 ldr r3, [pc, #392] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
1606a: 4798 blx r3
|
|
1606c: b202 sxth r2, r0
|
|
1606e: f7fe fd2e bl 14ace <lv_theme_material_init+0x63e>
|
|
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
16072: 2000 movs r0, #0
|
|
16074: 4b5e ldr r3, [pc, #376] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16076: 4798 blx r3
|
|
16078: 0003 movs r3, r0
|
|
1607a: 0040 lsls r0, r0, #1
|
|
1607c: 18c0 adds r0, r0, r3
|
|
1607e: 0080 lsls r0, r0, #2
|
|
16080: 18c0 adds r0, r0, r3
|
|
16082: 3050 adds r0, #80 ; 0x50
|
|
16084: 21a0 movs r1, #160 ; 0xa0
|
|
16086: 4b5b ldr r3, [pc, #364] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16088: 4798 blx r3
|
|
1608a: b202 sxth r2, r0
|
|
1608c: f7fe fd67 bl 14b5e <lv_theme_material_init+0x6ce>
|
|
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
16090: 2000 movs r0, #0
|
|
16092: 4b57 ldr r3, [pc, #348] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16094: 4798 blx r3
|
|
16096: 0003 movs r3, r0
|
|
16098: 0040 lsls r0, r0, #1
|
|
1609a: 18c0 adds r0, r0, r3
|
|
1609c: 0080 lsls r0, r0, #2
|
|
1609e: 18c0 adds r0, r0, r3
|
|
160a0: 3050 adds r0, #80 ; 0x50
|
|
160a2: 21a0 movs r1, #160 ; 0xa0
|
|
160a4: 4b53 ldr r3, [pc, #332] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
160a6: 4798 blx r3
|
|
160a8: b202 sxth r2, r0
|
|
160aa: f7fe fd6f bl 14b8c <lv_theme_material_init+0x6fc>
|
|
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
160ae: 2000 movs r0, #0
|
|
160b0: 4b4f ldr r3, [pc, #316] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
160b2: 4798 blx r3
|
|
160b4: 0003 movs r3, r0
|
|
160b6: 0040 lsls r0, r0, #1
|
|
160b8: 18c0 adds r0, r0, r3
|
|
160ba: 0080 lsls r0, r0, #2
|
|
160bc: 18c0 adds r0, r0, r3
|
|
160be: 3050 adds r0, #80 ; 0x50
|
|
160c0: 21a0 movs r1, #160 ; 0xa0
|
|
160c2: 4b4c ldr r3, [pc, #304] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
160c4: 4798 blx r3
|
|
160c6: b202 sxth r2, r0
|
|
160c8: f7fe fd77 bl 14bba <lv_theme_material_init+0x72a>
|
|
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
|
|
160cc: 2000 movs r0, #0
|
|
160ce: 4b48 ldr r3, [pc, #288] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
160d0: 4798 blx r3
|
|
160d2: 0003 movs r3, r0
|
|
160d4: 0040 lsls r0, r0, #1
|
|
160d6: 18c0 adds r0, r0, r3
|
|
160d8: 0080 lsls r0, r0, #2
|
|
160da: 18c0 adds r0, r0, r3
|
|
160dc: 3050 adds r0, #80 ; 0x50
|
|
160de: 21a0 movs r1, #160 ; 0xa0
|
|
160e0: 4b44 ldr r3, [pc, #272] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
160e2: 4798 blx r3
|
|
160e4: b202 sxth r2, r0
|
|
160e6: f7fe fd7f bl 14be8 <lv_theme_material_init+0x758>
|
|
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
|
|
160ea: 2000 movs r0, #0
|
|
160ec: 4b40 ldr r3, [pc, #256] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
160ee: 4798 blx r3
|
|
160f0: 3014 adds r0, #20
|
|
160f2: 0080 lsls r0, r0, #2
|
|
160f4: 21a0 movs r1, #160 ; 0xa0
|
|
160f6: 4b3f ldr r3, [pc, #252] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
160f8: 4798 blx r3
|
|
160fa: b202 sxth r2, r0
|
|
160fc: f7fe fd8b bl 14c16 <lv_theme_material_init+0x786>
|
|
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
16100: 2000 movs r0, #0
|
|
16102: 4b3b ldr r3, [pc, #236] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16104: 4798 blx r3
|
|
16106: 0003 movs r3, r0
|
|
16108: 0080 lsls r0, r0, #2
|
|
1610a: 18c0 adds r0, r0, r3
|
|
1610c: 0040 lsls r0, r0, #1
|
|
1610e: 3050 adds r0, #80 ; 0x50
|
|
16110: 21a0 movs r1, #160 ; 0xa0
|
|
16112: 4b38 ldr r3, [pc, #224] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16114: 4798 blx r3
|
|
16116: b202 sxth r2, r0
|
|
16118: f7fe fd92 bl 14c40 <lv_theme_material_init+0x7b0>
|
|
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
|
|
1611c: 2000 movs r0, #0
|
|
1611e: 4b34 ldr r3, [pc, #208] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16120: 4798 blx r3
|
|
16122: 0003 movs r3, r0
|
|
16124: 0040 lsls r0, r0, #1
|
|
16126: 18c0 adds r0, r0, r3
|
|
16128: 3050 adds r0, #80 ; 0x50
|
|
1612a: 21a0 movs r1, #160 ; 0xa0
|
|
1612c: 4b31 ldr r3, [pc, #196] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
1612e: 4798 blx r3
|
|
16130: b202 sxth r2, r0
|
|
16132: f7fe fdac bl 14c8e <lv_theme_material_init+0x7fe>
|
|
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
|
|
16136: 2000 movs r0, #0
|
|
16138: 4b2d ldr r3, [pc, #180] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
1613a: 4798 blx r3
|
|
1613c: 0003 movs r3, r0
|
|
1613e: 0080 lsls r0, r0, #2
|
|
16140: 18c0 adds r0, r0, r3
|
|
16142: 0040 lsls r0, r0, #1
|
|
16144: 3050 adds r0, #80 ; 0x50
|
|
16146: 21a0 movs r1, #160 ; 0xa0
|
|
16148: 4b2a ldr r3, [pc, #168] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
1614a: 4798 blx r3
|
|
1614c: b202 sxth r2, r0
|
|
1614e: f7fe fdb3 bl 14cb8 <lv_theme_material_init+0x828>
|
|
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
|
|
16152: 2000 movs r0, #0
|
|
16154: 4b26 ldr r3, [pc, #152] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16156: 4798 blx r3
|
|
16158: 3014 adds r0, #20
|
|
1615a: 0080 lsls r0, r0, #2
|
|
1615c: 21a0 movs r1, #160 ; 0xa0
|
|
1615e: 4b25 ldr r3, [pc, #148] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16160: 4798 blx r3
|
|
16162: b202 sxth r2, r0
|
|
16164: f7fe fdf0 bl 14d48 <lv_theme_material_init+0x8b8>
|
|
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
16168: 2000 movs r0, #0
|
|
1616a: 4b21 ldr r3, [pc, #132] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
1616c: 4798 blx r3
|
|
1616e: 0003 movs r3, r0
|
|
16170: 0040 lsls r0, r0, #1
|
|
16172: 18c0 adds r0, r0, r3
|
|
16174: 3050 adds r0, #80 ; 0x50
|
|
16176: 21a0 movs r1, #160 ; 0xa0
|
|
16178: 4b1e ldr r3, [pc, #120] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
1617a: 4798 blx r3
|
|
1617c: b202 sxth r2, r0
|
|
1617e: f7fe fe0c bl 14d9a <lv_theme_material_init+0x90a>
|
|
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
16182: 2000 movs r0, #0
|
|
16184: 4b1a ldr r3, [pc, #104] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
16186: 4798 blx r3
|
|
16188: 0003 movs r3, r0
|
|
1618a: 0040 lsls r0, r0, #1
|
|
1618c: 18c0 adds r0, r0, r3
|
|
1618e: 3050 adds r0, #80 ; 0x50
|
|
16190: 21a0 movs r1, #160 ; 0xa0
|
|
16192: 4b18 ldr r3, [pc, #96] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
16194: 4798 blx r3
|
|
16196: b202 sxth r2, r0
|
|
16198: f7fe fe13 bl 14dc2 <lv_theme_material_init+0x932>
|
|
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
1619c: 2000 movs r0, #0
|
|
1619e: 4b14 ldr r3, [pc, #80] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
161a0: 4798 blx r3
|
|
161a2: 0003 movs r3, r0
|
|
161a4: 0040 lsls r0, r0, #1
|
|
161a6: 18c0 adds r0, r0, r3
|
|
161a8: 3050 adds r0, #80 ; 0x50
|
|
161aa: 21a0 movs r1, #160 ; 0xa0
|
|
161ac: 4b11 ldr r3, [pc, #68] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
161ae: 4798 blx r3
|
|
161b0: b202 sxth r2, r0
|
|
161b2: f7fe fe1a bl 14dea <lv_theme_material_init+0x95a>
|
|
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
|
|
161b6: 2000 movs r0, #0
|
|
161b8: 4b0d ldr r3, [pc, #52] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
161ba: 4798 blx r3
|
|
161bc: 0003 movs r3, r0
|
|
161be: 0040 lsls r0, r0, #1
|
|
161c0: 18c0 adds r0, r0, r3
|
|
161c2: 3050 adds r0, #80 ; 0x50
|
|
161c4: 21a0 movs r1, #160 ; 0xa0
|
|
161c6: 4b0b ldr r3, [pc, #44] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
161c8: 4798 blx r3
|
|
161ca: b202 sxth r2, r0
|
|
161cc: f7fe fe21 bl 14e12 <lv_theme_material_init+0x982>
|
|
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
|
|
161d0: 2000 movs r0, #0
|
|
161d2: 4b07 ldr r3, [pc, #28] ; (161f0 <lv_theme_material_init+0x1d60>)
|
|
161d4: 4798 blx r3
|
|
161d6: 3014 adds r0, #20
|
|
161d8: 0080 lsls r0, r0, #2
|
|
161da: 21a0 movs r1, #160 ; 0xa0
|
|
161dc: 4b05 ldr r3, [pc, #20] ; (161f4 <lv_theme_material_init+0x1d64>)
|
|
161de: 4798 blx r3
|
|
161e0: b202 sxth r2, r0
|
|
161e2: f7fe fe32 bl 14e4a <lv_theme_material_init+0x9ba>
|
|
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
|
|
161e6: 2307 movs r3, #7
|
|
161e8: 210f movs r1, #15
|
|
161ea: 2208 movs r2, #8
|
|
161ec: f7fe fe42 bl 14e74 <lv_theme_material_init+0x9e4>
|
|
161f0: 0000f665 .word 0x0000f665
|
|
161f4: 00017881 .word 0x00017881
|
|
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
161f8: 2000 movs r0, #0
|
|
161fa: 4bf8 ldr r3, [pc, #992] ; (165dc <lv_theme_material_init+0x214c>)
|
|
161fc: 4798 blx r3
|
|
161fe: 0003 movs r3, r0
|
|
16200: 0080 lsls r0, r0, #2
|
|
16202: 18c0 adds r0, r0, r3
|
|
16204: 3050 adds r0, #80 ; 0x50
|
|
16206: 21a0 movs r1, #160 ; 0xa0
|
|
16208: 4bf5 ldr r3, [pc, #980] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1620a: 4798 blx r3
|
|
1620c: b202 sxth r2, r0
|
|
1620e: f7fe fe4e bl 14eae <lv_theme_material_init+0xa1e>
|
|
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
16212: 2000 movs r0, #0
|
|
16214: 4bf1 ldr r3, [pc, #964] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16216: 4798 blx r3
|
|
16218: 0003 movs r3, r0
|
|
1621a: 0080 lsls r0, r0, #2
|
|
1621c: 18c0 adds r0, r0, r3
|
|
1621e: 3050 adds r0, #80 ; 0x50
|
|
16220: 21a0 movs r1, #160 ; 0xa0
|
|
16222: 4bef ldr r3, [pc, #956] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16224: 4798 blx r3
|
|
16226: b202 sxth r2, r0
|
|
16228: f7fe fe55 bl 14ed6 <lv_theme_material_init+0xa46>
|
|
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
1622c: 2000 movs r0, #0
|
|
1622e: 4beb ldr r3, [pc, #940] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16230: 4798 blx r3
|
|
16232: 0003 movs r3, r0
|
|
16234: 0080 lsls r0, r0, #2
|
|
16236: 18c0 adds r0, r0, r3
|
|
16238: 3050 adds r0, #80 ; 0x50
|
|
1623a: 21a0 movs r1, #160 ; 0xa0
|
|
1623c: 4be8 ldr r3, [pc, #928] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1623e: 4798 blx r3
|
|
16240: b202 sxth r2, r0
|
|
16242: f7fe fe5c bl 14efe <lv_theme_material_init+0xa6e>
|
|
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
16246: 2000 movs r0, #0
|
|
16248: 4be4 ldr r3, [pc, #912] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1624a: 4798 blx r3
|
|
1624c: 0003 movs r3, r0
|
|
1624e: 0080 lsls r0, r0, #2
|
|
16250: 18c0 adds r0, r0, r3
|
|
16252: 3050 adds r0, #80 ; 0x50
|
|
16254: 21a0 movs r1, #160 ; 0xa0
|
|
16256: 4be2 ldr r3, [pc, #904] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16258: 4798 blx r3
|
|
1625a: b202 sxth r2, r0
|
|
1625c: f7fe fe63 bl 14f26 <lv_theme_material_init+0xa96>
|
|
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
|
|
16260: 2000 movs r0, #0
|
|
16262: 4bde ldr r3, [pc, #888] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16264: 4798 blx r3
|
|
16266: 0003 movs r3, r0
|
|
16268: 0040 lsls r0, r0, #1
|
|
1626a: 18c0 adds r0, r0, r3
|
|
1626c: 3050 adds r0, #80 ; 0x50
|
|
1626e: 21a0 movs r1, #160 ; 0xa0
|
|
16270: 4bdb ldr r3, [pc, #876] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16272: 4798 blx r3
|
|
16274: b202 sxth r2, r0
|
|
16276: f7fe fe6a bl 14f4e <lv_theme_material_init+0xabe>
|
|
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
|
|
1627a: 2000 movs r0, #0
|
|
1627c: 4bd7 ldr r3, [pc, #860] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1627e: 4798 blx r3
|
|
16280: 0003 movs r3, r0
|
|
16282: 2032 movs r0, #50 ; 0x32
|
|
16284: 4358 muls r0, r3
|
|
16286: 3050 adds r0, #80 ; 0x50
|
|
16288: 21a0 movs r1, #160 ; 0xa0
|
|
1628a: 4bd5 ldr r3, [pc, #852] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1628c: 4798 blx r3
|
|
1628e: b202 sxth r2, r0
|
|
16290: f7fe fe75 bl 14f7e <lv_theme_material_init+0xaee>
|
|
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
|
|
16294: 2226 movs r2, #38 ; 0x26
|
|
16296: 2313 movs r3, #19
|
|
16298: f7fe fe80 bl 14f9c <lv_theme_material_init+0xb0c>
|
|
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
|
|
1629c: 2319 movs r3, #25
|
|
1629e: 2133 movs r1, #51 ; 0x33
|
|
162a0: 221a movs r2, #26
|
|
162a2: f7fe fe98 bl 14fd6 <lv_theme_material_init+0xb46>
|
|
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
162a6: 2000 movs r0, #0
|
|
162a8: 4bcc ldr r3, [pc, #816] ; (165dc <lv_theme_material_init+0x214c>)
|
|
162aa: 4798 blx r3
|
|
162ac: 00c3 lsls r3, r0, #3
|
|
162ae: 1a18 subs r0, r3, r0
|
|
162b0: 3050 adds r0, #80 ; 0x50
|
|
162b2: 21a0 movs r1, #160 ; 0xa0
|
|
162b4: 4bca ldr r3, [pc, #808] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
162b6: 4798 blx r3
|
|
162b8: b202 sxth r2, r0
|
|
162ba: f7fe fea9 bl 15010 <lv_theme_material_init+0xb80>
|
|
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
162be: 2000 movs r0, #0
|
|
162c0: 4bc6 ldr r3, [pc, #792] ; (165dc <lv_theme_material_init+0x214c>)
|
|
162c2: 4798 blx r3
|
|
162c4: 00c3 lsls r3, r0, #3
|
|
162c6: 1a18 subs r0, r3, r0
|
|
162c8: 3050 adds r0, #80 ; 0x50
|
|
162ca: 21a0 movs r1, #160 ; 0xa0
|
|
162cc: 4bc4 ldr r3, [pc, #784] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
162ce: 4798 blx r3
|
|
162d0: b202 sxth r2, r0
|
|
162d2: f7fe feb1 bl 15038 <lv_theme_material_init+0xba8>
|
|
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
|
|
162d6: 2000 movs r0, #0
|
|
162d8: 4bc0 ldr r3, [pc, #768] ; (165dc <lv_theme_material_init+0x214c>)
|
|
162da: 4798 blx r3
|
|
162dc: 00c3 lsls r3, r0, #3
|
|
162de: 1a18 subs r0, r3, r0
|
|
162e0: 3050 adds r0, #80 ; 0x50
|
|
162e2: 21a0 movs r1, #160 ; 0xa0
|
|
162e4: 4bbe ldr r3, [pc, #760] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
162e6: 4798 blx r3
|
|
162e8: b202 sxth r2, r0
|
|
162ea: f7fe feb9 bl 15060 <lv_theme_material_init+0xbd0>
|
|
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
|
|
162ee: 2306 movs r3, #6
|
|
162f0: 2110 movs r1, #16
|
|
162f2: 2209 movs r2, #9
|
|
162f4: f7fe fed8 bl 150a8 <lv_theme_material_init+0xc18>
|
|
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
|
|
162f8: 2000 movs r0, #0
|
|
162fa: 4bb8 ldr r3, [pc, #736] ; (165dc <lv_theme_material_init+0x214c>)
|
|
162fc: 4798 blx r3
|
|
162fe: 3028 adds r0, #40 ; 0x28
|
|
16300: 0040 lsls r0, r0, #1
|
|
16302: 21a0 movs r1, #160 ; 0xa0
|
|
16304: 4bb6 ldr r3, [pc, #728] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16306: 4798 blx r3
|
|
16308: b202 sxth r2, r0
|
|
1630a: f7fe fee3 bl 150d4 <lv_theme_material_init+0xc44>
|
|
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
|
|
1630e: 2000 movs r0, #0
|
|
16310: 4bb2 ldr r3, [pc, #712] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16312: 4798 blx r3
|
|
16314: 3050 adds r0, #80 ; 0x50
|
|
16316: 21a0 movs r1, #160 ; 0xa0
|
|
16318: 4bb1 ldr r3, [pc, #708] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1631a: 4798 blx r3
|
|
1631c: b202 sxth r2, r0
|
|
1631e: f7fe feeb bl 150f8 <lv_theme_material_init+0xc68>
|
|
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
|
|
16322: 2315 movs r3, #21
|
|
16324: 212a movs r1, #42 ; 0x2a
|
|
16326: 2215 movs r2, #21
|
|
16328: f7fe ff1d bl 15166 <lv_theme_material_init+0xcd6>
|
|
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
|
|
1632c: 2000 movs r0, #0
|
|
1632e: 4bab ldr r3, [pc, #684] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16330: 4798 blx r3
|
|
16332: 0003 movs r3, r0
|
|
16334: 2064 movs r0, #100 ; 0x64
|
|
16336: 4358 muls r0, r3
|
|
16338: 3050 adds r0, #80 ; 0x50
|
|
1633a: 21a0 movs r1, #160 ; 0xa0
|
|
1633c: 4ba8 ldr r3, [pc, #672] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1633e: 4798 blx r3
|
|
16340: b202 sxth r2, r0
|
|
16342: f7fe ff3e bl 151c2 <lv_theme_material_init+0xd32>
|
|
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
|
|
16346: 2000 movs r0, #0
|
|
16348: 4ba4 ldr r3, [pc, #656] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1634a: 4798 blx r3
|
|
1634c: 0003 movs r3, r0
|
|
1634e: 2064 movs r0, #100 ; 0x64
|
|
16350: 4358 muls r0, r3
|
|
16352: 3050 adds r0, #80 ; 0x50
|
|
16354: 21a0 movs r1, #160 ; 0xa0
|
|
16356: 4ba2 ldr r3, [pc, #648] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16358: 4798 blx r3
|
|
1635a: b202 sxth r2, r0
|
|
1635c: f7fe ff45 bl 151ea <lv_theme_material_init+0xd5a>
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
|
|
16360: 231f movs r3, #31
|
|
16362: 213f movs r1, #63 ; 0x3f
|
|
16364: 221f movs r2, #31
|
|
16366: f7fe ff7b bl 15260 <lv_theme_material_init+0xdd0>
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
|
|
1636a: 231d movs r3, #29
|
|
1636c: 213b movs r1, #59 ; 0x3b
|
|
1636e: 221d movs r2, #29
|
|
16370: f7fe ff89 bl 15286 <lv_theme_material_init+0xdf6>
|
|
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
|
|
16374: 231f movs r3, #31
|
|
16376: 213f movs r1, #63 ; 0x3f
|
|
16378: 221f movs r2, #31
|
|
1637a: f7fe ff97 bl 152ac <lv_theme_material_init+0xe1c>
|
|
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
1637e: 2307 movs r3, #7
|
|
16380: 210f movs r1, #15
|
|
16382: 2208 movs r2, #8
|
|
16384: f7fe ffb5 bl 152f2 <lv_theme_material_init+0xe62>
|
|
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
16388: 222a movs r2, #42 ; 0x2a
|
|
1638a: 2315 movs r3, #21
|
|
1638c: f7fe ffc9 bl 15322 <lv_theme_material_init+0xe92>
|
|
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
|
|
16390: 2307 movs r3, #7
|
|
16392: 210f movs r1, #15
|
|
16394: 2208 movs r2, #8
|
|
16396: f7fe ffd7 bl 15348 <lv_theme_material_init+0xeb8>
|
|
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
|
|
1639a: 222a movs r2, #42 ; 0x2a
|
|
1639c: 2315 movs r3, #21
|
|
1639e: f7fe ffeb bl 15378 <lv_theme_material_init+0xee8>
|
|
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
163a2: 231a movs r3, #26
|
|
163a4: 2137 movs r1, #55 ; 0x37
|
|
163a6: 221c movs r2, #28
|
|
163a8: f7fe ffff bl 153aa <lv_theme_material_init+0xf1a>
|
|
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
163ac: 2000 movs r0, #0
|
|
163ae: 4b8b ldr r3, [pc, #556] ; (165dc <lv_theme_material_init+0x214c>)
|
|
163b0: 4798 blx r3
|
|
163b2: 0103 lsls r3, r0, #4
|
|
163b4: 1a18 subs r0, r3, r0
|
|
163b6: 3050 adds r0, #80 ; 0x50
|
|
163b8: 2340 movs r3, #64 ; 0x40
|
|
163ba: 33ff adds r3, #255 ; 0xff
|
|
163bc: 2201 movs r2, #1
|
|
163be: 4298 cmp r0, r3
|
|
163c0: d801 bhi.n 163c6 <lv_theme_material_init+0x1f36>
|
|
163c2: f7ff f81d bl 15400 <lv_theme_material_init+0xf70>
|
|
163c6: 2000 movs r0, #0
|
|
163c8: 4b84 ldr r3, [pc, #528] ; (165dc <lv_theme_material_init+0x214c>)
|
|
163ca: 4798 blx r3
|
|
163cc: 0103 lsls r3, r0, #4
|
|
163ce: 1a18 subs r0, r3, r0
|
|
163d0: 3050 adds r0, #80 ; 0x50
|
|
163d2: 21a0 movs r1, #160 ; 0xa0
|
|
163d4: 4b82 ldr r3, [pc, #520] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
163d6: 4798 blx r3
|
|
163d8: b202 sxth r2, r0
|
|
163da: f7ff f811 bl 15400 <lv_theme_material_init+0xf70>
|
|
163de: 2000 movs r0, #0
|
|
163e0: 4b7e ldr r3, [pc, #504] ; (165dc <lv_theme_material_init+0x214c>)
|
|
163e2: 4798 blx r3
|
|
163e4: 0103 lsls r3, r0, #4
|
|
163e6: 1a18 subs r0, r3, r0
|
|
163e8: 0040 lsls r0, r0, #1
|
|
163ea: 3050 adds r0, #80 ; 0x50
|
|
163ec: 21a0 movs r1, #160 ; 0xa0
|
|
163ee: 4b7c ldr r3, [pc, #496] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
163f0: 4798 blx r3
|
|
163f2: b202 sxth r2, r0
|
|
163f4: f7ff f804 bl 15400 <lv_theme_material_init+0xf70>
|
|
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
163f8: 2000 movs r0, #0
|
|
163fa: 4b78 ldr r3, [pc, #480] ; (165dc <lv_theme_material_init+0x214c>)
|
|
163fc: 4798 blx r3
|
|
163fe: 0103 lsls r3, r0, #4
|
|
16400: 1a18 subs r0, r3, r0
|
|
16402: 3050 adds r0, #80 ; 0x50
|
|
16404: 2340 movs r3, #64 ; 0x40
|
|
16406: 33ff adds r3, #255 ; 0xff
|
|
16408: 2201 movs r2, #1
|
|
1640a: 4298 cmp r0, r3
|
|
1640c: d801 bhi.n 16412 <lv_theme_material_init+0x1f82>
|
|
1640e: f7ff f813 bl 15438 <lv_theme_material_init+0xfa8>
|
|
16412: 2000 movs r0, #0
|
|
16414: 4b71 ldr r3, [pc, #452] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16416: 4798 blx r3
|
|
16418: 0103 lsls r3, r0, #4
|
|
1641a: 1a18 subs r0, r3, r0
|
|
1641c: 3050 adds r0, #80 ; 0x50
|
|
1641e: 21a0 movs r1, #160 ; 0xa0
|
|
16420: 4b6f ldr r3, [pc, #444] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16422: 4798 blx r3
|
|
16424: b202 sxth r2, r0
|
|
16426: f7ff f807 bl 15438 <lv_theme_material_init+0xfa8>
|
|
1642a: 2000 movs r0, #0
|
|
1642c: 4b6b ldr r3, [pc, #428] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1642e: 4798 blx r3
|
|
16430: 0103 lsls r3, r0, #4
|
|
16432: 1a18 subs r0, r3, r0
|
|
16434: 0040 lsls r0, r0, #1
|
|
16436: 3050 adds r0, #80 ; 0x50
|
|
16438: 21a0 movs r1, #160 ; 0xa0
|
|
1643a: 4b69 ldr r3, [pc, #420] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1643c: 4798 blx r3
|
|
1643e: b202 sxth r2, r0
|
|
16440: f7fe fffa bl 15438 <lv_theme_material_init+0xfa8>
|
|
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
16444: 2000 movs r0, #0
|
|
16446: 4b65 ldr r3, [pc, #404] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16448: 4798 blx r3
|
|
1644a: 0103 lsls r3, r0, #4
|
|
1644c: 1a18 subs r0, r3, r0
|
|
1644e: 3050 adds r0, #80 ; 0x50
|
|
16450: 2340 movs r3, #64 ; 0x40
|
|
16452: 33ff adds r3, #255 ; 0xff
|
|
16454: 2201 movs r2, #1
|
|
16456: 4298 cmp r0, r3
|
|
16458: d801 bhi.n 1645e <lv_theme_material_init+0x1fce>
|
|
1645a: f7ff f809 bl 15470 <lv_theme_material_init+0xfe0>
|
|
1645e: 2000 movs r0, #0
|
|
16460: 4b5e ldr r3, [pc, #376] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16462: 4798 blx r3
|
|
16464: 0103 lsls r3, r0, #4
|
|
16466: 1a18 subs r0, r3, r0
|
|
16468: 3050 adds r0, #80 ; 0x50
|
|
1646a: 21a0 movs r1, #160 ; 0xa0
|
|
1646c: 4b5c ldr r3, [pc, #368] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1646e: 4798 blx r3
|
|
16470: b202 sxth r2, r0
|
|
16472: f7fe fffd bl 15470 <lv_theme_material_init+0xfe0>
|
|
16476: 2000 movs r0, #0
|
|
16478: 4b58 ldr r3, [pc, #352] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1647a: 4798 blx r3
|
|
1647c: 0103 lsls r3, r0, #4
|
|
1647e: 1a18 subs r0, r3, r0
|
|
16480: 0040 lsls r0, r0, #1
|
|
16482: 3050 adds r0, #80 ; 0x50
|
|
16484: 21a0 movs r1, #160 ; 0xa0
|
|
16486: 4b56 ldr r3, [pc, #344] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16488: 4798 blx r3
|
|
1648a: b202 sxth r2, r0
|
|
1648c: f7fe fff0 bl 15470 <lv_theme_material_init+0xfe0>
|
|
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
16490: 2000 movs r0, #0
|
|
16492: 4b52 ldr r3, [pc, #328] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16494: 4798 blx r3
|
|
16496: 0103 lsls r3, r0, #4
|
|
16498: 1a18 subs r0, r3, r0
|
|
1649a: 3050 adds r0, #80 ; 0x50
|
|
1649c: 2340 movs r3, #64 ; 0x40
|
|
1649e: 33ff adds r3, #255 ; 0xff
|
|
164a0: 2201 movs r2, #1
|
|
164a2: 4298 cmp r0, r3
|
|
164a4: d801 bhi.n 164aa <lv_theme_material_init+0x201a>
|
|
164a6: f7fe ffff bl 154a8 <lv_theme_material_init+0x1018>
|
|
164aa: 2000 movs r0, #0
|
|
164ac: 4b4b ldr r3, [pc, #300] ; (165dc <lv_theme_material_init+0x214c>)
|
|
164ae: 4798 blx r3
|
|
164b0: 0103 lsls r3, r0, #4
|
|
164b2: 1a18 subs r0, r3, r0
|
|
164b4: 3050 adds r0, #80 ; 0x50
|
|
164b6: 21a0 movs r1, #160 ; 0xa0
|
|
164b8: 4b49 ldr r3, [pc, #292] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
164ba: 4798 blx r3
|
|
164bc: b202 sxth r2, r0
|
|
164be: f7fe fff3 bl 154a8 <lv_theme_material_init+0x1018>
|
|
164c2: 2000 movs r0, #0
|
|
164c4: 4b45 ldr r3, [pc, #276] ; (165dc <lv_theme_material_init+0x214c>)
|
|
164c6: 4798 blx r3
|
|
164c8: 0103 lsls r3, r0, #4
|
|
164ca: 1a18 subs r0, r3, r0
|
|
164cc: 0040 lsls r0, r0, #1
|
|
164ce: 3050 adds r0, #80 ; 0x50
|
|
164d0: 21a0 movs r1, #160 ; 0xa0
|
|
164d2: 4b43 ldr r3, [pc, #268] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
164d4: 4798 blx r3
|
|
164d6: b202 sxth r2, r0
|
|
164d8: f7fe ffe6 bl 154a8 <lv_theme_material_init+0x1018>
|
|
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
|
|
164dc: 2000 movs r0, #0
|
|
164de: 4b3f ldr r3, [pc, #252] ; (165dc <lv_theme_material_init+0x214c>)
|
|
164e0: 4798 blx r3
|
|
164e2: 0103 lsls r3, r0, #4
|
|
164e4: 1a18 subs r0, r3, r0
|
|
164e6: 3050 adds r0, #80 ; 0x50
|
|
164e8: 2340 movs r3, #64 ; 0x40
|
|
164ea: 33ff adds r3, #255 ; 0xff
|
|
164ec: 2201 movs r2, #1
|
|
164ee: 4298 cmp r0, r3
|
|
164f0: d801 bhi.n 164f6 <lv_theme_material_init+0x2066>
|
|
164f2: f7fe fff5 bl 154e0 <lv_theme_material_init+0x1050>
|
|
164f6: 2000 movs r0, #0
|
|
164f8: 4b38 ldr r3, [pc, #224] ; (165dc <lv_theme_material_init+0x214c>)
|
|
164fa: 4798 blx r3
|
|
164fc: 0103 lsls r3, r0, #4
|
|
164fe: 1a18 subs r0, r3, r0
|
|
16500: 3050 adds r0, #80 ; 0x50
|
|
16502: 21a0 movs r1, #160 ; 0xa0
|
|
16504: 4b36 ldr r3, [pc, #216] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16506: 4798 blx r3
|
|
16508: b202 sxth r2, r0
|
|
1650a: f7fe ffe9 bl 154e0 <lv_theme_material_init+0x1050>
|
|
1650e: 2000 movs r0, #0
|
|
16510: 4b32 ldr r3, [pc, #200] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16512: 4798 blx r3
|
|
16514: 0103 lsls r3, r0, #4
|
|
16516: 1a18 subs r0, r3, r0
|
|
16518: 0040 lsls r0, r0, #1
|
|
1651a: 3050 adds r0, #80 ; 0x50
|
|
1651c: 21a0 movs r1, #160 ; 0xa0
|
|
1651e: 4b30 ldr r3, [pc, #192] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16520: 4798 blx r3
|
|
16522: b202 sxth r2, r0
|
|
16524: f7fe ffdc bl 154e0 <lv_theme_material_init+0x1050>
|
|
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
|
|
16528: 2000 movs r0, #0
|
|
1652a: 4b2c ldr r3, [pc, #176] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1652c: 4798 blx r3
|
|
1652e: 0103 lsls r3, r0, #4
|
|
16530: 1a18 subs r0, r3, r0
|
|
16532: 3050 adds r0, #80 ; 0x50
|
|
16534: 2340 movs r3, #64 ; 0x40
|
|
16536: 33ff adds r3, #255 ; 0xff
|
|
16538: 4298 cmp r0, r3
|
|
1653a: d803 bhi.n 16544 <lv_theme_material_init+0x20b4>
|
|
1653c: 2201 movs r2, #1
|
|
1653e: 4252 negs r2, r2
|
|
16540: f7fe ffeb bl 1551a <lv_theme_material_init+0x108a>
|
|
16544: 2000 movs r0, #0
|
|
16546: 4b25 ldr r3, [pc, #148] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16548: 4798 blx r3
|
|
1654a: 0103 lsls r3, r0, #4
|
|
1654c: 1a18 subs r0, r3, r0
|
|
1654e: 3050 adds r0, #80 ; 0x50
|
|
16550: 21a0 movs r1, #160 ; 0xa0
|
|
16552: 4b23 ldr r3, [pc, #140] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16554: 4798 blx r3
|
|
16556: 4242 negs r2, r0
|
|
16558: b212 sxth r2, r2
|
|
1655a: f7fe ffde bl 1551a <lv_theme_material_init+0x108a>
|
|
1655e: 2000 movs r0, #0
|
|
16560: 4b1e ldr r3, [pc, #120] ; (165dc <lv_theme_material_init+0x214c>)
|
|
16562: 4798 blx r3
|
|
16564: 0103 lsls r3, r0, #4
|
|
16566: 1a18 subs r0, r3, r0
|
|
16568: 0040 lsls r0, r0, #1
|
|
1656a: 3050 adds r0, #80 ; 0x50
|
|
1656c: 21a0 movs r1, #160 ; 0xa0
|
|
1656e: 4b1c ldr r3, [pc, #112] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
16570: 4798 blx r3
|
|
16572: 4242 negs r2, r0
|
|
16574: b212 sxth r2, r2
|
|
16576: f7fe ffd0 bl 1551a <lv_theme_material_init+0x108a>
|
|
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
|
|
1657a: 2000 movs r0, #0
|
|
1657c: 4b17 ldr r3, [pc, #92] ; (165dc <lv_theme_material_init+0x214c>)
|
|
1657e: 4798 blx r3
|
|
16580: 0003 movs r3, r0
|
|
16582: 0080 lsls r0, r0, #2
|
|
16584: 18c0 adds r0, r0, r3
|
|
16586: 0080 lsls r0, r0, #2
|
|
16588: 3050 adds r0, #80 ; 0x50
|
|
1658a: 21a0 movs r1, #160 ; 0xa0
|
|
1658c: 4b14 ldr r3, [pc, #80] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
1658e: 4798 blx r3
|
|
16590: b202 sxth r2, r0
|
|
16592: f7ff f825 bl 155e0 <lv_theme_material_init+0x1150>
|
|
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
|
|
16596: 231d movs r3, #29
|
|
16598: 213b movs r1, #59 ; 0x3b
|
|
1659a: 221d movs r2, #29
|
|
1659c: f7ff f84b bl 15636 <lv_theme_material_init+0x11a6>
|
|
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
|
|
165a0: 2307 movs r3, #7
|
|
165a2: 210f movs r1, #15
|
|
165a4: 2208 movs r2, #8
|
|
165a6: f7ff f859 bl 1565c <lv_theme_material_init+0x11cc>
|
|
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
|
|
165aa: 2000 movs r0, #0
|
|
165ac: 4b0b ldr r3, [pc, #44] ; (165dc <lv_theme_material_init+0x214c>)
|
|
165ae: 4798 blx r3
|
|
165b0: 0083 lsls r3, r0, #2
|
|
165b2: 1818 adds r0, r3, r0
|
|
165b4: 0083 lsls r3, r0, #2
|
|
165b6: 18c0 adds r0, r0, r3
|
|
165b8: 3050 adds r0, #80 ; 0x50
|
|
165ba: 21a0 movs r1, #160 ; 0xa0
|
|
165bc: 4b08 ldr r3, [pc, #32] ; (165e0 <lv_theme_material_init+0x2150>)
|
|
165be: 4798 blx r3
|
|
165c0: b202 sxth r2, r0
|
|
165c2: f7ff f868 bl 15696 <lv_theme_material_init+0x1206>
|
|
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
|
|
165c6: 231f movs r3, #31
|
|
165c8: 213f movs r1, #63 ; 0x3f
|
|
165ca: 221f movs r2, #31
|
|
165cc: f7ff f892 bl 156f4 <lv_theme_material_init+0x1264>
|
|
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
|
|
165d0: 231c movs r3, #28
|
|
165d2: 213a movs r1, #58 ; 0x3a
|
|
165d4: 221e movs r2, #30
|
|
165d6: f7ff f8a0 bl 1571a <lv_theme_material_init+0x128a>
|
|
165da: 46c0 nop ; (mov r8, r8)
|
|
165dc: 0000f665 .word 0x0000f665
|
|
165e0: 00017881 .word 0x00017881
|
|
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
|
|
165e4: 2000 movs r0, #0
|
|
165e6: 4bdf ldr r3, [pc, #892] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
165e8: 4798 blx r3
|
|
165ea: 0003 movs r3, r0
|
|
165ec: 0080 lsls r0, r0, #2
|
|
165ee: 18c0 adds r0, r0, r3
|
|
165f0: 3050 adds r0, #80 ; 0x50
|
|
165f2: 21a0 movs r1, #160 ; 0xa0
|
|
165f4: 4bdc ldr r3, [pc, #880] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
165f6: 4798 blx r3
|
|
165f8: b202 sxth r2, r0
|
|
165fa: f7ff f8a5 bl 15748 <lv_theme_material_init+0x12b8>
|
|
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
|
|
165fe: 2307 movs r3, #7
|
|
16600: 210f movs r1, #15
|
|
16602: 2208 movs r2, #8
|
|
16604: f7ff f8b5 bl 15772 <lv_theme_material_init+0x12e2>
|
|
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
16608: 2000 movs r0, #0
|
|
1660a: 4bd6 ldr r3, [pc, #856] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1660c: 4798 blx r3
|
|
1660e: 00c3 lsls r3, r0, #3
|
|
16610: 1a18 subs r0, r3, r0
|
|
16612: 3050 adds r0, #80 ; 0x50
|
|
16614: 21a0 movs r1, #160 ; 0xa0
|
|
16616: 4bd4 ldr r3, [pc, #848] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16618: 4798 blx r3
|
|
1661a: b202 sxth r2, r0
|
|
1661c: f7ff f8cd bl 157ba <lv_theme_material_init+0x132a>
|
|
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
16620: 2000 movs r0, #0
|
|
16622: 4bd0 ldr r3, [pc, #832] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16624: 4798 blx r3
|
|
16626: 00c3 lsls r3, r0, #3
|
|
16628: 1a18 subs r0, r3, r0
|
|
1662a: 3050 adds r0, #80 ; 0x50
|
|
1662c: 21a0 movs r1, #160 ; 0xa0
|
|
1662e: 4bce ldr r3, [pc, #824] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16630: 4798 blx r3
|
|
16632: b202 sxth r2, r0
|
|
16634: f7ff f8d5 bl 157e2 <lv_theme_material_init+0x1352>
|
|
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
|
|
16638: 2000 movs r0, #0
|
|
1663a: 4bca ldr r3, [pc, #808] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1663c: 4798 blx r3
|
|
1663e: 00c3 lsls r3, r0, #3
|
|
16640: 1a18 subs r0, r3, r0
|
|
16642: 3050 adds r0, #80 ; 0x50
|
|
16644: 21a0 movs r1, #160 ; 0xa0
|
|
16646: 4bc8 ldr r3, [pc, #800] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16648: 4798 blx r3
|
|
1664a: b202 sxth r2, r0
|
|
1664c: f7ff f8dd bl 1580a <lv_theme_material_init+0x137a>
|
|
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
|
|
16650: 2307 movs r3, #7
|
|
16652: 210f movs r1, #15
|
|
16654: 2208 movs r2, #8
|
|
16656: f7ff f8f9 bl 1584c <lv_theme_material_init+0x13bc>
|
|
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
|
|
1665a: 2000 movs r0, #0
|
|
1665c: 4bc1 ldr r3, [pc, #772] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1665e: 4798 blx r3
|
|
16660: 0003 movs r3, r0
|
|
16662: 0080 lsls r0, r0, #2
|
|
16664: 18c0 adds r0, r0, r3
|
|
16666: 0080 lsls r0, r0, #2
|
|
16668: 3050 adds r0, #80 ; 0x50
|
|
1666a: 21a0 movs r1, #160 ; 0xa0
|
|
1666c: 4bbe ldr r3, [pc, #760] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1666e: 4798 blx r3
|
|
16670: b202 sxth r2, r0
|
|
16672: f7ff f903 bl 1587c <lv_theme_material_init+0x13ec>
|
|
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
|
|
16676: 2000 movs r0, #0
|
|
16678: 4bba ldr r3, [pc, #744] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1667a: 4798 blx r3
|
|
1667c: 0003 movs r3, r0
|
|
1667e: 0080 lsls r0, r0, #2
|
|
16680: 18c0 adds r0, r0, r3
|
|
16682: 0080 lsls r0, r0, #2
|
|
16684: 3050 adds r0, #80 ; 0x50
|
|
16686: 21a0 movs r1, #160 ; 0xa0
|
|
16688: 4bb7 ldr r3, [pc, #732] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1668a: 4798 blx r3
|
|
1668c: b202 sxth r2, r0
|
|
1668e: f7ff f90a bl 158a6 <lv_theme_material_init+0x1416>
|
|
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
|
|
16692: 2000 movs r0, #0
|
|
16694: 4bb3 ldr r3, [pc, #716] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16696: 4798 blx r3
|
|
16698: 0003 movs r3, r0
|
|
1669a: 0080 lsls r0, r0, #2
|
|
1669c: 18c0 adds r0, r0, r3
|
|
1669e: 3050 adds r0, #80 ; 0x50
|
|
166a0: 21a0 movs r1, #160 ; 0xa0
|
|
166a2: 4bb1 ldr r3, [pc, #708] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
166a4: 4798 blx r3
|
|
166a6: b202 sxth r2, r0
|
|
166a8: f7ff f931 bl 1590e <lv_theme_material_init+0x147e>
|
|
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
166ac: 2000 movs r0, #0
|
|
166ae: 4bad ldr r3, [pc, #692] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
166b0: 4798 blx r3
|
|
166b2: 0103 lsls r3, r0, #4
|
|
166b4: 1a18 subs r0, r3, r0
|
|
166b6: 3050 adds r0, #80 ; 0x50
|
|
166b8: 2340 movs r3, #64 ; 0x40
|
|
166ba: 33ff adds r3, #255 ; 0xff
|
|
166bc: 2201 movs r2, #1
|
|
166be: 4298 cmp r0, r3
|
|
166c0: d801 bhi.n 166c6 <lv_theme_material_init+0x2236>
|
|
166c2: f7ff f949 bl 15958 <lv_theme_material_init+0x14c8>
|
|
166c6: 2000 movs r0, #0
|
|
166c8: 4ba6 ldr r3, [pc, #664] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
166ca: 4798 blx r3
|
|
166cc: 0103 lsls r3, r0, #4
|
|
166ce: 1a18 subs r0, r3, r0
|
|
166d0: 3050 adds r0, #80 ; 0x50
|
|
166d2: 21a0 movs r1, #160 ; 0xa0
|
|
166d4: 4ba4 ldr r3, [pc, #656] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
166d6: 4798 blx r3
|
|
166d8: b202 sxth r2, r0
|
|
166da: f7ff f93d bl 15958 <lv_theme_material_init+0x14c8>
|
|
166de: 2000 movs r0, #0
|
|
166e0: 4ba0 ldr r3, [pc, #640] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
166e2: 4798 blx r3
|
|
166e4: 0103 lsls r3, r0, #4
|
|
166e6: 1a18 subs r0, r3, r0
|
|
166e8: 0040 lsls r0, r0, #1
|
|
166ea: 3050 adds r0, #80 ; 0x50
|
|
166ec: 21a0 movs r1, #160 ; 0xa0
|
|
166ee: 4b9e ldr r3, [pc, #632] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
166f0: 4798 blx r3
|
|
166f2: b202 sxth r2, r0
|
|
166f4: f7ff f930 bl 15958 <lv_theme_material_init+0x14c8>
|
|
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
166f8: 2000 movs r0, #0
|
|
166fa: 4b9a ldr r3, [pc, #616] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
166fc: 4798 blx r3
|
|
166fe: 0103 lsls r3, r0, #4
|
|
16700: 1a18 subs r0, r3, r0
|
|
16702: 3050 adds r0, #80 ; 0x50
|
|
16704: 2340 movs r3, #64 ; 0x40
|
|
16706: 33ff adds r3, #255 ; 0xff
|
|
16708: 2201 movs r2, #1
|
|
1670a: 4298 cmp r0, r3
|
|
1670c: d801 bhi.n 16712 <lv_theme_material_init+0x2282>
|
|
1670e: f7ff f973 bl 159f8 <lv_theme_material_init+0x1568>
|
|
16712: 2000 movs r0, #0
|
|
16714: 4b93 ldr r3, [pc, #588] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16716: 4798 blx r3
|
|
16718: 0103 lsls r3, r0, #4
|
|
1671a: 1a18 subs r0, r3, r0
|
|
1671c: 3050 adds r0, #80 ; 0x50
|
|
1671e: 21a0 movs r1, #160 ; 0xa0
|
|
16720: 4b91 ldr r3, [pc, #580] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16722: 4798 blx r3
|
|
16724: b202 sxth r2, r0
|
|
16726: f7ff f967 bl 159f8 <lv_theme_material_init+0x1568>
|
|
1672a: 2000 movs r0, #0
|
|
1672c: 4b8d ldr r3, [pc, #564] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1672e: 4798 blx r3
|
|
16730: 0103 lsls r3, r0, #4
|
|
16732: 1a18 subs r0, r3, r0
|
|
16734: 0040 lsls r0, r0, #1
|
|
16736: 3050 adds r0, #80 ; 0x50
|
|
16738: 21a0 movs r1, #160 ; 0xa0
|
|
1673a: 4b8b ldr r3, [pc, #556] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1673c: 4798 blx r3
|
|
1673e: b202 sxth r2, r0
|
|
16740: f7ff f95a bl 159f8 <lv_theme_material_init+0x1568>
|
|
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
16744: 2000 movs r0, #0
|
|
16746: 4b87 ldr r3, [pc, #540] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16748: 4798 blx r3
|
|
1674a: 0103 lsls r3, r0, #4
|
|
1674c: 1a18 subs r0, r3, r0
|
|
1674e: 3050 adds r0, #80 ; 0x50
|
|
16750: 2340 movs r3, #64 ; 0x40
|
|
16752: 33ff adds r3, #255 ; 0xff
|
|
16754: 2201 movs r2, #1
|
|
16756: 4298 cmp r0, r3
|
|
16758: d801 bhi.n 1675e <lv_theme_material_init+0x22ce>
|
|
1675a: f7ff f969 bl 15a30 <lv_theme_material_init+0x15a0>
|
|
1675e: 2000 movs r0, #0
|
|
16760: 4b80 ldr r3, [pc, #512] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16762: 4798 blx r3
|
|
16764: 0103 lsls r3, r0, #4
|
|
16766: 1a18 subs r0, r3, r0
|
|
16768: 3050 adds r0, #80 ; 0x50
|
|
1676a: 21a0 movs r1, #160 ; 0xa0
|
|
1676c: 4b7e ldr r3, [pc, #504] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1676e: 4798 blx r3
|
|
16770: b202 sxth r2, r0
|
|
16772: f7ff f95d bl 15a30 <lv_theme_material_init+0x15a0>
|
|
16776: 2000 movs r0, #0
|
|
16778: 4b7a ldr r3, [pc, #488] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1677a: 4798 blx r3
|
|
1677c: 0103 lsls r3, r0, #4
|
|
1677e: 1a18 subs r0, r3, r0
|
|
16780: 0040 lsls r0, r0, #1
|
|
16782: 3050 adds r0, #80 ; 0x50
|
|
16784: 21a0 movs r1, #160 ; 0xa0
|
|
16786: 4b78 ldr r3, [pc, #480] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16788: 4798 blx r3
|
|
1678a: b202 sxth r2, r0
|
|
1678c: f7ff f950 bl 15a30 <lv_theme_material_init+0x15a0>
|
|
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
16790: 2000 movs r0, #0
|
|
16792: 4b74 ldr r3, [pc, #464] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16794: 4798 blx r3
|
|
16796: 0103 lsls r3, r0, #4
|
|
16798: 1a18 subs r0, r3, r0
|
|
1679a: 3050 adds r0, #80 ; 0x50
|
|
1679c: 2340 movs r3, #64 ; 0x40
|
|
1679e: 33ff adds r3, #255 ; 0xff
|
|
167a0: 2201 movs r2, #1
|
|
167a2: 4298 cmp r0, r3
|
|
167a4: d801 bhi.n 167aa <lv_theme_material_init+0x231a>
|
|
167a6: f7ff f95f bl 15a68 <lv_theme_material_init+0x15d8>
|
|
167aa: 2000 movs r0, #0
|
|
167ac: 4b6d ldr r3, [pc, #436] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
167ae: 4798 blx r3
|
|
167b0: 0103 lsls r3, r0, #4
|
|
167b2: 1a18 subs r0, r3, r0
|
|
167b4: 3050 adds r0, #80 ; 0x50
|
|
167b6: 21a0 movs r1, #160 ; 0xa0
|
|
167b8: 4b6b ldr r3, [pc, #428] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
167ba: 4798 blx r3
|
|
167bc: b202 sxth r2, r0
|
|
167be: f7ff f953 bl 15a68 <lv_theme_material_init+0x15d8>
|
|
167c2: 2000 movs r0, #0
|
|
167c4: 4b67 ldr r3, [pc, #412] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
167c6: 4798 blx r3
|
|
167c8: 0103 lsls r3, r0, #4
|
|
167ca: 1a18 subs r0, r3, r0
|
|
167cc: 0040 lsls r0, r0, #1
|
|
167ce: 3050 adds r0, #80 ; 0x50
|
|
167d0: 21a0 movs r1, #160 ; 0xa0
|
|
167d2: 4b65 ldr r3, [pc, #404] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
167d4: 4798 blx r3
|
|
167d6: b202 sxth r2, r0
|
|
167d8: f7ff f946 bl 15a68 <lv_theme_material_init+0x15d8>
|
|
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
|
|
167dc: 2000 movs r0, #0
|
|
167de: 4b61 ldr r3, [pc, #388] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
167e0: 4798 blx r3
|
|
167e2: 0103 lsls r3, r0, #4
|
|
167e4: 1a18 subs r0, r3, r0
|
|
167e6: 3050 adds r0, #80 ; 0x50
|
|
167e8: 2340 movs r3, #64 ; 0x40
|
|
167ea: 33ff adds r3, #255 ; 0xff
|
|
167ec: 2201 movs r2, #1
|
|
167ee: 4298 cmp r0, r3
|
|
167f0: d801 bhi.n 167f6 <lv_theme_material_init+0x2366>
|
|
167f2: f7ff f955 bl 15aa0 <lv_theme_material_init+0x1610>
|
|
167f6: 2000 movs r0, #0
|
|
167f8: 4b5a ldr r3, [pc, #360] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
167fa: 4798 blx r3
|
|
167fc: 0103 lsls r3, r0, #4
|
|
167fe: 1a18 subs r0, r3, r0
|
|
16800: 3050 adds r0, #80 ; 0x50
|
|
16802: 21a0 movs r1, #160 ; 0xa0
|
|
16804: 4b58 ldr r3, [pc, #352] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16806: 4798 blx r3
|
|
16808: b202 sxth r2, r0
|
|
1680a: f7ff f949 bl 15aa0 <lv_theme_material_init+0x1610>
|
|
1680e: 2000 movs r0, #0
|
|
16810: 4b54 ldr r3, [pc, #336] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16812: 4798 blx r3
|
|
16814: 0103 lsls r3, r0, #4
|
|
16816: 1a18 subs r0, r3, r0
|
|
16818: 0040 lsls r0, r0, #1
|
|
1681a: 3050 adds r0, #80 ; 0x50
|
|
1681c: 21a0 movs r1, #160 ; 0xa0
|
|
1681e: 4b52 ldr r3, [pc, #328] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16820: 4798 blx r3
|
|
16822: b202 sxth r2, r0
|
|
16824: f7ff f93c bl 15aa0 <lv_theme_material_init+0x1610>
|
|
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
|
|
16828: 231a movs r3, #26
|
|
1682a: 2137 movs r1, #55 ; 0x37
|
|
1682c: 221c movs r2, #28
|
|
1682e: f7ff f94b bl 15ac8 <lv_theme_material_init+0x1638>
|
|
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
16832: 2000 movs r0, #0
|
|
16834: 4b4b ldr r3, [pc, #300] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16836: 4798 blx r3
|
|
16838: 0103 lsls r3, r0, #4
|
|
1683a: 1a18 subs r0, r3, r0
|
|
1683c: 3050 adds r0, #80 ; 0x50
|
|
1683e: 2340 movs r3, #64 ; 0x40
|
|
16840: 33ff adds r3, #255 ; 0xff
|
|
16842: 2201 movs r2, #1
|
|
16844: 4298 cmp r0, r3
|
|
16846: d801 bhi.n 1684c <lv_theme_material_init+0x23bc>
|
|
16848: f7ff f968 bl 15b1c <lv_theme_material_init+0x168c>
|
|
1684c: 2000 movs r0, #0
|
|
1684e: 4b45 ldr r3, [pc, #276] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16850: 4798 blx r3
|
|
16852: 0103 lsls r3, r0, #4
|
|
16854: 1a18 subs r0, r3, r0
|
|
16856: 3050 adds r0, #80 ; 0x50
|
|
16858: 21a0 movs r1, #160 ; 0xa0
|
|
1685a: 4b43 ldr r3, [pc, #268] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1685c: 4798 blx r3
|
|
1685e: b202 sxth r2, r0
|
|
16860: f7ff f95c bl 15b1c <lv_theme_material_init+0x168c>
|
|
16864: 2000 movs r0, #0
|
|
16866: 4b3f ldr r3, [pc, #252] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16868: 4798 blx r3
|
|
1686a: 0103 lsls r3, r0, #4
|
|
1686c: 1a18 subs r0, r3, r0
|
|
1686e: 0040 lsls r0, r0, #1
|
|
16870: 3050 adds r0, #80 ; 0x50
|
|
16872: 21a0 movs r1, #160 ; 0xa0
|
|
16874: 4b3c ldr r3, [pc, #240] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16876: 4798 blx r3
|
|
16878: b202 sxth r2, r0
|
|
1687a: f7ff f94f bl 15b1c <lv_theme_material_init+0x168c>
|
|
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
1687e: 2000 movs r0, #0
|
|
16880: 4b38 ldr r3, [pc, #224] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16882: 4798 blx r3
|
|
16884: 0103 lsls r3, r0, #4
|
|
16886: 1a18 subs r0, r3, r0
|
|
16888: 3050 adds r0, #80 ; 0x50
|
|
1688a: 2340 movs r3, #64 ; 0x40
|
|
1688c: 33ff adds r3, #255 ; 0xff
|
|
1688e: 2201 movs r2, #1
|
|
16890: 4298 cmp r0, r3
|
|
16892: d801 bhi.n 16898 <lv_theme_material_init+0x2408>
|
|
16894: f7ff f95e bl 15b54 <lv_theme_material_init+0x16c4>
|
|
16898: 2000 movs r0, #0
|
|
1689a: 4b32 ldr r3, [pc, #200] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1689c: 4798 blx r3
|
|
1689e: 0103 lsls r3, r0, #4
|
|
168a0: 1a18 subs r0, r3, r0
|
|
168a2: 3050 adds r0, #80 ; 0x50
|
|
168a4: 21a0 movs r1, #160 ; 0xa0
|
|
168a6: 4b30 ldr r3, [pc, #192] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
168a8: 4798 blx r3
|
|
168aa: b202 sxth r2, r0
|
|
168ac: f7ff f952 bl 15b54 <lv_theme_material_init+0x16c4>
|
|
168b0: 2000 movs r0, #0
|
|
168b2: 4b2c ldr r3, [pc, #176] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
168b4: 4798 blx r3
|
|
168b6: 0103 lsls r3, r0, #4
|
|
168b8: 1a18 subs r0, r3, r0
|
|
168ba: 0040 lsls r0, r0, #1
|
|
168bc: 3050 adds r0, #80 ; 0x50
|
|
168be: 21a0 movs r1, #160 ; 0xa0
|
|
168c0: 4b29 ldr r3, [pc, #164] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
168c2: 4798 blx r3
|
|
168c4: b202 sxth r2, r0
|
|
168c6: f7ff f945 bl 15b54 <lv_theme_material_init+0x16c4>
|
|
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
168ca: 2000 movs r0, #0
|
|
168cc: 4b25 ldr r3, [pc, #148] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
168ce: 4798 blx r3
|
|
168d0: 0103 lsls r3, r0, #4
|
|
168d2: 1a18 subs r0, r3, r0
|
|
168d4: 3050 adds r0, #80 ; 0x50
|
|
168d6: 2340 movs r3, #64 ; 0x40
|
|
168d8: 33ff adds r3, #255 ; 0xff
|
|
168da: 2201 movs r2, #1
|
|
168dc: 4298 cmp r0, r3
|
|
168de: d801 bhi.n 168e4 <lv_theme_material_init+0x2454>
|
|
168e0: f7ff f954 bl 15b8c <lv_theme_material_init+0x16fc>
|
|
168e4: 2000 movs r0, #0
|
|
168e6: 4b1f ldr r3, [pc, #124] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
168e8: 4798 blx r3
|
|
168ea: 0103 lsls r3, r0, #4
|
|
168ec: 1a18 subs r0, r3, r0
|
|
168ee: 3050 adds r0, #80 ; 0x50
|
|
168f0: 21a0 movs r1, #160 ; 0xa0
|
|
168f2: 4b1d ldr r3, [pc, #116] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
168f4: 4798 blx r3
|
|
168f6: b202 sxth r2, r0
|
|
168f8: f7ff f948 bl 15b8c <lv_theme_material_init+0x16fc>
|
|
168fc: 2000 movs r0, #0
|
|
168fe: 4b19 ldr r3, [pc, #100] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16900: 4798 blx r3
|
|
16902: 0103 lsls r3, r0, #4
|
|
16904: 1a18 subs r0, r3, r0
|
|
16906: 0040 lsls r0, r0, #1
|
|
16908: 3050 adds r0, #80 ; 0x50
|
|
1690a: 21a0 movs r1, #160 ; 0xa0
|
|
1690c: 4b16 ldr r3, [pc, #88] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1690e: 4798 blx r3
|
|
16910: b202 sxth r2, r0
|
|
16912: f7ff f93b bl 15b8c <lv_theme_material_init+0x16fc>
|
|
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
|
|
16916: 2000 movs r0, #0
|
|
16918: 4b12 ldr r3, [pc, #72] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1691a: 4798 blx r3
|
|
1691c: 0103 lsls r3, r0, #4
|
|
1691e: 1a18 subs r0, r3, r0
|
|
16920: 3050 adds r0, #80 ; 0x50
|
|
16922: 2340 movs r3, #64 ; 0x40
|
|
16924: 33ff adds r3, #255 ; 0xff
|
|
16926: 2201 movs r2, #1
|
|
16928: 4298 cmp r0, r3
|
|
1692a: d801 bhi.n 16930 <lv_theme_material_init+0x24a0>
|
|
1692c: f7ff f94a bl 15bc4 <lv_theme_material_init+0x1734>
|
|
16930: 2000 movs r0, #0
|
|
16932: 4b0c ldr r3, [pc, #48] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
16934: 4798 blx r3
|
|
16936: 0103 lsls r3, r0, #4
|
|
16938: 1a18 subs r0, r3, r0
|
|
1693a: 3050 adds r0, #80 ; 0x50
|
|
1693c: 21a0 movs r1, #160 ; 0xa0
|
|
1693e: 4b0a ldr r3, [pc, #40] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
16940: 4798 blx r3
|
|
16942: b202 sxth r2, r0
|
|
16944: f7ff f93e bl 15bc4 <lv_theme_material_init+0x1734>
|
|
16948: 2000 movs r0, #0
|
|
1694a: 4b06 ldr r3, [pc, #24] ; (16964 <lv_theme_material_init+0x24d4>)
|
|
1694c: 4798 blx r3
|
|
1694e: 0103 lsls r3, r0, #4
|
|
16950: 1a18 subs r0, r3, r0
|
|
16952: 0040 lsls r0, r0, #1
|
|
16954: 3050 adds r0, #80 ; 0x50
|
|
16956: 21a0 movs r1, #160 ; 0xa0
|
|
16958: 4b03 ldr r3, [pc, #12] ; (16968 <lv_theme_material_init+0x24d8>)
|
|
1695a: 4798 blx r3
|
|
1695c: b202 sxth r2, r0
|
|
1695e: f7ff f931 bl 15bc4 <lv_theme_material_init+0x1734>
|
|
16962: 46c0 nop ; (mov r8, r8)
|
|
16964: 0000f665 .word 0x0000f665
|
|
16968: 00017881 .word 0x00017881
|
|
|
|
0001696c <ssd1963_init>:
|
|
/**********************
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
void ssd1963_init(void)
|
|
{
|
|
1696c: b5f0 push {r4, r5, r6, r7, lr}
|
|
1696e: 46d6 mov lr, sl
|
|
16970: 464f mov r7, r9
|
|
16972: 4646 mov r6, r8
|
|
16974: b5c0 push {r6, r7, lr}
|
|
asm volatile("nop");
|
|
16976: 46c0 nop ; (mov r8, r8)
|
|
p_gpio_parallel_wr_word(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, 0xAAAA);
|
|
16978: 4ae8 ldr r2, [pc, #928] ; (16d1c <ssd1963_init+0x3b0>)
|
|
1697a: 49e9 ldr r1, [pc, #932] ; (16d20 <ssd1963_init+0x3b4>)
|
|
1697c: 48e9 ldr r0, [pc, #932] ; (16d24 <ssd1963_init+0x3b8>)
|
|
1697e: 4bea ldr r3, [pc, #936] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16980: 4798 blx r3
|
|
asm volatile("nop");
|
|
16982: 46c0 nop ; (mov r8, r8)
|
|
delay_ms(100);
|
|
16984: 2000 movs r0, #0
|
|
16986: 4be9 ldr r3, [pc, #932] ; (16d2c <ssd1963_init+0x3c0>)
|
|
16988: 469a mov sl, r3
|
|
1698a: 4798 blx r3
|
|
1698c: 4be8 ldr r3, [pc, #928] ; (16d30 <ssd1963_init+0x3c4>)
|
|
1698e: 4699 mov r9, r3
|
|
16990: 2264 movs r2, #100 ; 0x64
|
|
16992: 2300 movs r3, #0
|
|
16994: 2100 movs r1, #0
|
|
16996: 47c8 blx r9
|
|
16998: 4ee6 ldr r6, [pc, #920] ; (16d34 <ssd1963_init+0x3c8>)
|
|
1699a: 2700 movs r7, #0
|
|
1699c: 1980 adds r0, r0, r6
|
|
1699e: 4179 adcs r1, r7
|
|
169a0: 4de5 ldr r5, [pc, #916] ; (16d38 <ssd1963_init+0x3cc>)
|
|
169a2: 4ae6 ldr r2, [pc, #920] ; (16d3c <ssd1963_init+0x3d0>)
|
|
169a4: 2300 movs r3, #0
|
|
169a6: 47a8 blx r5
|
|
169a8: 4ce5 ldr r4, [pc, #916] ; (16d40 <ssd1963_init+0x3d4>)
|
|
169aa: 47a0 blx r4
|
|
169ac: 4be5 ldr r3, [pc, #916] ; (16d44 <ssd1963_init+0x3d8>)
|
|
169ae: 4698 mov r8, r3
|
|
169b0: 2310 movs r3, #16
|
|
169b2: 4642 mov r2, r8
|
|
169b4: 6193 str r3, [r2, #24]
|
|
LV_DRV_DISP_RST(1);
|
|
delay_ms(100);
|
|
169b6: 2000 movs r0, #0
|
|
169b8: 47d0 blx sl
|
|
169ba: 2264 movs r2, #100 ; 0x64
|
|
169bc: 2300 movs r3, #0
|
|
169be: 2100 movs r1, #0
|
|
169c0: 47c8 blx r9
|
|
169c2: 1980 adds r0, r0, r6
|
|
169c4: 4179 adcs r1, r7
|
|
169c6: 4add ldr r2, [pc, #884] ; (16d3c <ssd1963_init+0x3d0>)
|
|
169c8: 2300 movs r3, #0
|
|
169ca: 47a8 blx r5
|
|
169cc: 47a0 blx r4
|
|
delay_ms(100);
|
|
169ce: 2000 movs r0, #0
|
|
169d0: 47d0 blx sl
|
|
169d2: 2264 movs r2, #100 ; 0x64
|
|
169d4: 2300 movs r3, #0
|
|
169d6: 2100 movs r1, #0
|
|
169d8: 47c8 blx r9
|
|
169da: 1980 adds r0, r0, r6
|
|
169dc: 4179 adcs r1, r7
|
|
169de: 4ad7 ldr r2, [pc, #860] ; (16d3c <ssd1963_init+0x3d0>)
|
|
169e0: 2300 movs r3, #0
|
|
169e2: 47a8 blx r5
|
|
169e4: 47a0 blx r4
|
|
} else {
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
169e6: 2340 movs r3, #64 ; 0x40
|
|
169e8: 4642 mov r2, r8
|
|
169ea: 6153 str r3, [r2, #20]
|
|
/**
|
|
* Command mode
|
|
*/
|
|
static inline void ssd1963_cmd_mode(void)
|
|
{
|
|
if(cmd_mode == false) {
|
|
169ec: 4bd6 ldr r3, [pc, #856] ; (16d48 <ssd1963_init+0x3dc>)
|
|
169ee: 781b ldrb r3, [r3, #0]
|
|
169f0: 2b00 cmp r3, #0
|
|
169f2: d105 bne.n 16a00 <ssd1963_init+0x94>
|
|
169f4: 2220 movs r2, #32
|
|
169f6: 4643 mov r3, r8
|
|
169f8: 615a str r2, [r3, #20]
|
|
LV_DRV_DISP_CMD_DATA(SSD1963_CMD_MODE);
|
|
cmd_mode = true;
|
|
169fa: 3a1f subs r2, #31
|
|
169fc: 4bd2 ldr r3, [pc, #840] ; (16d48 <ssd1963_init+0x3dc>)
|
|
169fe: 701a strb r2, [r3, #0]
|
|
static inline void ssd1963_cmd(uint8_t cmd)
|
|
{
|
|
|
|
LV_DRV_DISP_PAR_CS(0);
|
|
ssd1963_cmd_mode();
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16a00: 2201 movs r2, #1
|
|
16a02: 49c7 ldr r1, [pc, #796] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16a04: 48c7 ldr r0, [pc, #796] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16a06: 4bc8 ldr r3, [pc, #800] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16a08: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16a0a: 4bce ldr r3, [pc, #824] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a0c: 2240 movs r2, #64 ; 0x40
|
|
16a0e: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16a10: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16a12: 4bcd ldr r3, [pc, #820] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a14: 781b ldrb r3, [r3, #0]
|
|
16a16: 2b00 cmp r3, #0
|
|
16a18: d105 bne.n 16a26 <ssd1963_init+0xba>
|
|
16a1a: 3a20 subs r2, #32
|
|
16a1c: 4bc9 ldr r3, [pc, #804] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a1e: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16a20: 3a1f subs r2, #31
|
|
16a22: 4bc9 ldr r3, [pc, #804] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a24: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16a26: 2201 movs r2, #1
|
|
16a28: 49bd ldr r1, [pc, #756] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16a2a: 48be ldr r0, [pc, #760] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16a2c: 4bbe ldr r3, [pc, #760] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16a2e: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16a30: 4bc4 ldr r3, [pc, #784] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a32: 2240 movs r2, #64 ; 0x40
|
|
16a34: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16a36: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16a38: 4bc3 ldr r3, [pc, #780] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a3a: 781b ldrb r3, [r3, #0]
|
|
16a3c: 2b00 cmp r3, #0
|
|
16a3e: d105 bne.n 16a4c <ssd1963_init+0xe0>
|
|
16a40: 3a20 subs r2, #32
|
|
16a42: 4bc0 ldr r3, [pc, #768] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a44: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16a46: 3a1f subs r2, #31
|
|
16a48: 4bbf ldr r3, [pc, #764] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a4a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16a4c: 2201 movs r2, #1
|
|
16a4e: 49b4 ldr r1, [pc, #720] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16a50: 48b4 ldr r0, [pc, #720] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16a52: 4bb5 ldr r3, [pc, #724] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16a54: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16a56: 4bbb ldr r3, [pc, #748] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a58: 2240 movs r2, #64 ; 0x40
|
|
16a5a: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16a5c: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16a5e: 4bba ldr r3, [pc, #744] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a60: 781b ldrb r3, [r3, #0]
|
|
16a62: 2b00 cmp r3, #0
|
|
16a64: d105 bne.n 16a72 <ssd1963_init+0x106>
|
|
16a66: 3a20 subs r2, #32
|
|
16a68: 4bb6 ldr r3, [pc, #728] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a6a: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16a6c: 3a1f subs r2, #31
|
|
16a6e: 4bb6 ldr r3, [pc, #728] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a70: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16a72: 22e2 movs r2, #226 ; 0xe2
|
|
16a74: 49aa ldr r1, [pc, #680] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16a76: 48ab ldr r0, [pc, #684] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16a78: 4bab ldr r3, [pc, #684] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16a7a: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16a7c: 4bb1 ldr r3, [pc, #708] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a7e: 2240 movs r2, #64 ; 0x40
|
|
16a80: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16a82: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16a84: 4bb0 ldr r3, [pc, #704] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a86: 781b ldrb r3, [r3, #0]
|
|
16a88: 2b00 cmp r3, #0
|
|
16a8a: d005 beq.n 16a98 <ssd1963_init+0x12c>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16a8c: 3a20 subs r2, #32
|
|
16a8e: 4bad ldr r3, [pc, #692] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16a90: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16a92: 2200 movs r2, #0
|
|
16a94: 4bac ldr r3, [pc, #688] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16a96: 701a strb r2, [r3, #0]
|
|
static inline void ssd1963_data(uint8_t data)
|
|
{
|
|
|
|
LV_DRV_DISP_PAR_CS(0);
|
|
ssd1963_data_mode();
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16a98: 2223 movs r2, #35 ; 0x23
|
|
16a9a: 49a1 ldr r1, [pc, #644] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16a9c: 48a1 ldr r0, [pc, #644] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16a9e: 4ba2 ldr r3, [pc, #648] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16aa0: 4798 blx r3
|
|
16aa2: 4ba8 ldr r3, [pc, #672] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16aa4: 2240 movs r2, #64 ; 0x40
|
|
16aa6: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16aa8: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16aaa: 4ba7 ldr r3, [pc, #668] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16aac: 781b ldrb r3, [r3, #0]
|
|
16aae: 2b00 cmp r3, #0
|
|
16ab0: d005 beq.n 16abe <ssd1963_init+0x152>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16ab2: 3a20 subs r2, #32
|
|
16ab4: 4ba3 ldr r3, [pc, #652] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16ab6: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16ab8: 2200 movs r2, #0
|
|
16aba: 4ba3 ldr r3, [pc, #652] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16abc: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16abe: 2202 movs r2, #2
|
|
16ac0: 4997 ldr r1, [pc, #604] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16ac2: 4898 ldr r0, [pc, #608] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16ac4: 4b98 ldr r3, [pc, #608] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16ac6: 4798 blx r3
|
|
16ac8: 4b9e ldr r3, [pc, #632] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16aca: 2240 movs r2, #64 ; 0x40
|
|
16acc: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16ace: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ad0: 4b9d ldr r3, [pc, #628] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16ad2: 781b ldrb r3, [r3, #0]
|
|
16ad4: 2b00 cmp r3, #0
|
|
16ad6: d005 beq.n 16ae4 <ssd1963_init+0x178>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16ad8: 3a20 subs r2, #32
|
|
16ada: 4b9a ldr r3, [pc, #616] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16adc: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16ade: 2200 movs r2, #0
|
|
16ae0: 4b99 ldr r3, [pc, #612] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16ae2: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16ae4: 2254 movs r2, #84 ; 0x54
|
|
16ae6: 498e ldr r1, [pc, #568] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16ae8: 488e ldr r0, [pc, #568] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16aea: 4b8f ldr r3, [pc, #572] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16aec: 4798 blx r3
|
|
16aee: 4b95 ldr r3, [pc, #596] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16af0: 2240 movs r2, #64 ; 0x40
|
|
16af2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16af4: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16af6: 4b94 ldr r3, [pc, #592] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16af8: 781b ldrb r3, [r3, #0]
|
|
16afa: 2b00 cmp r3, #0
|
|
16afc: d105 bne.n 16b0a <ssd1963_init+0x19e>
|
|
16afe: 3a20 subs r2, #32
|
|
16b00: 4b90 ldr r3, [pc, #576] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b02: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16b04: 3a1f subs r2, #31
|
|
16b06: 4b90 ldr r3, [pc, #576] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b08: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16b0a: 22e0 movs r2, #224 ; 0xe0
|
|
16b0c: 4984 ldr r1, [pc, #528] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16b0e: 4885 ldr r0, [pc, #532] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16b10: 4b85 ldr r3, [pc, #532] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16b12: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16b14: 4b8b ldr r3, [pc, #556] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b16: 2240 movs r2, #64 ; 0x40
|
|
16b18: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16b1a: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16b1c: 4b8a ldr r3, [pc, #552] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b1e: 781b ldrb r3, [r3, #0]
|
|
16b20: 2b00 cmp r3, #0
|
|
16b22: d005 beq.n 16b30 <ssd1963_init+0x1c4>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16b24: 3a20 subs r2, #32
|
|
16b26: 4b87 ldr r3, [pc, #540] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b28: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16b2a: 2200 movs r2, #0
|
|
16b2c: 4b86 ldr r3, [pc, #536] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b2e: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16b30: 2201 movs r2, #1
|
|
16b32: 497b ldr r1, [pc, #492] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16b34: 487b ldr r0, [pc, #492] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16b36: 4b7c ldr r3, [pc, #496] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16b38: 4798 blx r3
|
|
16b3a: 4c82 ldr r4, [pc, #520] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b3c: 2540 movs r5, #64 ; 0x40
|
|
16b3e: 61a5 str r5, [r4, #24]
|
|
delay_us(100);
|
|
16b40: 2000 movs r0, #0
|
|
16b42: 4b7a ldr r3, [pc, #488] ; (16d2c <ssd1963_init+0x3c0>)
|
|
16b44: 4798 blx r3
|
|
16b46: 2264 movs r2, #100 ; 0x64
|
|
16b48: 2300 movs r3, #0
|
|
16b4a: 2100 movs r1, #0
|
|
16b4c: 4e78 ldr r6, [pc, #480] ; (16d30 <ssd1963_init+0x3c4>)
|
|
16b4e: 47b0 blx r6
|
|
16b50: 4a7e ldr r2, [pc, #504] ; (16d4c <ssd1963_init+0x3e0>)
|
|
16b52: 2300 movs r3, #0
|
|
16b54: 1880 adds r0, r0, r2
|
|
16b56: 4159 adcs r1, r3
|
|
16b58: 4a7d ldr r2, [pc, #500] ; (16d50 <ssd1963_init+0x3e4>)
|
|
16b5a: 2300 movs r3, #0
|
|
16b5c: 4e76 ldr r6, [pc, #472] ; (16d38 <ssd1963_init+0x3cc>)
|
|
16b5e: 47b0 blx r6
|
|
16b60: 4b77 ldr r3, [pc, #476] ; (16d40 <ssd1963_init+0x3d4>)
|
|
16b62: 4798 blx r3
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16b64: 6165 str r5, [r4, #20]
|
|
if(cmd_mode == false) {
|
|
16b66: 4b78 ldr r3, [pc, #480] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b68: 781b ldrb r3, [r3, #0]
|
|
16b6a: 2b00 cmp r3, #0
|
|
16b6c: d104 bne.n 16b78 <ssd1963_init+0x20c>
|
|
16b6e: 2220 movs r2, #32
|
|
16b70: 6162 str r2, [r4, #20]
|
|
cmd_mode = true;
|
|
16b72: 3a1f subs r2, #31
|
|
16b74: 4b74 ldr r3, [pc, #464] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b76: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16b78: 22e0 movs r2, #224 ; 0xe0
|
|
16b7a: 4969 ldr r1, [pc, #420] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16b7c: 4869 ldr r0, [pc, #420] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16b7e: 4b6a ldr r3, [pc, #424] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16b80: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16b82: 4b70 ldr r3, [pc, #448] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b84: 2240 movs r2, #64 ; 0x40
|
|
16b86: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16b88: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16b8a: 4b6f ldr r3, [pc, #444] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b8c: 781b ldrb r3, [r3, #0]
|
|
16b8e: 2b00 cmp r3, #0
|
|
16b90: d005 beq.n 16b9e <ssd1963_init+0x232>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16b92: 3a20 subs r2, #32
|
|
16b94: 4b6b ldr r3, [pc, #428] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16b96: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16b98: 2200 movs r2, #0
|
|
16b9a: 4b6b ldr r3, [pc, #428] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16b9c: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16b9e: 2203 movs r2, #3
|
|
16ba0: 495f ldr r1, [pc, #380] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16ba2: 4860 ldr r0, [pc, #384] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16ba4: 4b60 ldr r3, [pc, #384] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16ba6: 4798 blx r3
|
|
16ba8: 4b66 ldr r3, [pc, #408] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16baa: 2240 movs r2, #64 ; 0x40
|
|
16bac: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16bae: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16bb0: 4b65 ldr r3, [pc, #404] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16bb2: 781b ldrb r3, [r3, #0]
|
|
16bb4: 2b00 cmp r3, #0
|
|
16bb6: d105 bne.n 16bc4 <ssd1963_init+0x258>
|
|
16bb8: 3a20 subs r2, #32
|
|
16bba: 4b62 ldr r3, [pc, #392] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16bbc: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16bbe: 3a1f subs r2, #31
|
|
16bc0: 4b61 ldr r3, [pc, #388] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16bc2: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16bc4: 22b0 movs r2, #176 ; 0xb0
|
|
16bc6: 4956 ldr r1, [pc, #344] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16bc8: 4856 ldr r0, [pc, #344] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16bca: 4b57 ldr r3, [pc, #348] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16bcc: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16bce: 4b5d ldr r3, [pc, #372] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16bd0: 2240 movs r2, #64 ; 0x40
|
|
16bd2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16bd4: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16bd6: 4b5c ldr r3, [pc, #368] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16bd8: 781b ldrb r3, [r3, #0]
|
|
16bda: 2b00 cmp r3, #0
|
|
16bdc: d005 beq.n 16bea <ssd1963_init+0x27e>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16bde: 3a20 subs r2, #32
|
|
16be0: 4b58 ldr r3, [pc, #352] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16be2: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16be4: 2200 movs r2, #0
|
|
16be6: 4b58 ldr r3, [pc, #352] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16be8: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16bea: 2228 movs r2, #40 ; 0x28
|
|
16bec: 494c ldr r1, [pc, #304] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16bee: 484d ldr r0, [pc, #308] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16bf0: 4b4d ldr r3, [pc, #308] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16bf2: 4798 blx r3
|
|
16bf4: 4b53 ldr r3, [pc, #332] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16bf6: 2240 movs r2, #64 ; 0x40
|
|
16bf8: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16bfa: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16bfc: 4b52 ldr r3, [pc, #328] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16bfe: 781b ldrb r3, [r3, #0]
|
|
16c00: 2b00 cmp r3, #0
|
|
16c02: d005 beq.n 16c10 <ssd1963_init+0x2a4>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16c04: 3a20 subs r2, #32
|
|
16c06: 4b4f ldr r3, [pc, #316] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16c08: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16c0a: 2200 movs r2, #0
|
|
16c0c: 4b4e ldr r3, [pc, #312] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c0e: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16c10: 2220 movs r2, #32
|
|
16c12: 4943 ldr r1, [pc, #268] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16c14: 4843 ldr r0, [pc, #268] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16c16: 4b44 ldr r3, [pc, #272] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16c18: 4798 blx r3
|
|
16c1a: 4c4a ldr r4, [pc, #296] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16c1c: 2540 movs r5, #64 ; 0x40
|
|
16c1e: 61a5 str r5, [r4, #24]
|
|
ssd1963_data(((SSD1963_HOR_RES - 1) >> 8) & 0X00FF); //Set HDP
|
|
16c20: 4b4c ldr r3, [pc, #304] ; (16d54 <ssd1963_init+0x3e8>)
|
|
16c22: 4798 blx r3
|
|
16c24: 4b4c ldr r3, [pc, #304] ; (16d58 <ssd1963_init+0x3ec>)
|
|
16c26: 4798 blx r3
|
|
16c28: 1e42 subs r2, r0, #1
|
|
16c2a: 1212 asrs r2, r2, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16c2c: 6165 str r5, [r4, #20]
|
|
if(cmd_mode != false) {
|
|
16c2e: 4b46 ldr r3, [pc, #280] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c30: 781b ldrb r3, [r3, #0]
|
|
16c32: 2b00 cmp r3, #0
|
|
16c34: d004 beq.n 16c40 <ssd1963_init+0x2d4>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16c36: 2120 movs r1, #32
|
|
16c38: 61a1 str r1, [r4, #24]
|
|
cmd_mode = false;
|
|
16c3a: 2100 movs r1, #0
|
|
16c3c: 4b42 ldr r3, [pc, #264] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c3e: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16c40: 20ff movs r0, #255 ; 0xff
|
|
16c42: 4002 ands r2, r0
|
|
16c44: 4936 ldr r1, [pc, #216] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16c46: 4837 ldr r0, [pc, #220] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16c48: 4b37 ldr r3, [pc, #220] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16c4a: 4798 blx r3
|
|
16c4c: 4c3d ldr r4, [pc, #244] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16c4e: 2540 movs r5, #64 ; 0x40
|
|
16c50: 61a5 str r5, [r4, #24]
|
|
ssd1963_data((SSD1963_HOR_RES - 1) & 0X00FF);
|
|
16c52: 4b40 ldr r3, [pc, #256] ; (16d54 <ssd1963_init+0x3e8>)
|
|
16c54: 4798 blx r3
|
|
16c56: 4b40 ldr r3, [pc, #256] ; (16d58 <ssd1963_init+0x3ec>)
|
|
16c58: 4798 blx r3
|
|
16c5a: 3801 subs r0, #1
|
|
16c5c: b2c2 uxtb r2, r0
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16c5e: 6165 str r5, [r4, #20]
|
|
if(cmd_mode != false) {
|
|
16c60: 4b39 ldr r3, [pc, #228] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c62: 781b ldrb r3, [r3, #0]
|
|
16c64: 2b00 cmp r3, #0
|
|
16c66: d004 beq.n 16c72 <ssd1963_init+0x306>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16c68: 2120 movs r1, #32
|
|
16c6a: 61a1 str r1, [r4, #24]
|
|
cmd_mode = false;
|
|
16c6c: 2100 movs r1, #0
|
|
16c6e: 4b36 ldr r3, [pc, #216] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c70: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16c72: 492b ldr r1, [pc, #172] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16c74: 482b ldr r0, [pc, #172] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16c76: 4b2c ldr r3, [pc, #176] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16c78: 4798 blx r3
|
|
16c7a: 4c32 ldr r4, [pc, #200] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16c7c: 2540 movs r5, #64 ; 0x40
|
|
16c7e: 61a5 str r5, [r4, #24]
|
|
ssd1963_data(((SSD1963_VER_RES - 1) >> 8) & 0X00FF); //Set VDP
|
|
16c80: 4b34 ldr r3, [pc, #208] ; (16d54 <ssd1963_init+0x3e8>)
|
|
16c82: 4798 blx r3
|
|
16c84: 4b35 ldr r3, [pc, #212] ; (16d5c <ssd1963_init+0x3f0>)
|
|
16c86: 4798 blx r3
|
|
16c88: 1e42 subs r2, r0, #1
|
|
16c8a: 1212 asrs r2, r2, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16c8c: 6165 str r5, [r4, #20]
|
|
if(cmd_mode != false) {
|
|
16c8e: 4b2e ldr r3, [pc, #184] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c90: 781b ldrb r3, [r3, #0]
|
|
16c92: 2b00 cmp r3, #0
|
|
16c94: d004 beq.n 16ca0 <ssd1963_init+0x334>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16c96: 2120 movs r1, #32
|
|
16c98: 61a1 str r1, [r4, #24]
|
|
cmd_mode = false;
|
|
16c9a: 2100 movs r1, #0
|
|
16c9c: 4b2a ldr r3, [pc, #168] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16c9e: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16ca0: 20ff movs r0, #255 ; 0xff
|
|
16ca2: 4002 ands r2, r0
|
|
16ca4: 491e ldr r1, [pc, #120] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16ca6: 481f ldr r0, [pc, #124] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16ca8: 4b1f ldr r3, [pc, #124] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16caa: 4798 blx r3
|
|
16cac: 4c25 ldr r4, [pc, #148] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16cae: 2540 movs r5, #64 ; 0x40
|
|
16cb0: 61a5 str r5, [r4, #24]
|
|
ssd1963_data((SSD1963_VER_RES - 1) & 0X00FF);
|
|
16cb2: 4b28 ldr r3, [pc, #160] ; (16d54 <ssd1963_init+0x3e8>)
|
|
16cb4: 4798 blx r3
|
|
16cb6: 4b29 ldr r3, [pc, #164] ; (16d5c <ssd1963_init+0x3f0>)
|
|
16cb8: 4798 blx r3
|
|
16cba: 3801 subs r0, #1
|
|
16cbc: b2c2 uxtb r2, r0
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16cbe: 6165 str r5, [r4, #20]
|
|
if(cmd_mode != false) {
|
|
16cc0: 4b21 ldr r3, [pc, #132] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16cc2: 781b ldrb r3, [r3, #0]
|
|
16cc4: 2b00 cmp r3, #0
|
|
16cc6: d004 beq.n 16cd2 <ssd1963_init+0x366>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16cc8: 2120 movs r1, #32
|
|
16cca: 61a1 str r1, [r4, #24]
|
|
cmd_mode = false;
|
|
16ccc: 2100 movs r1, #0
|
|
16cce: 4b1e ldr r3, [pc, #120] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16cd0: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16cd2: 4913 ldr r1, [pc, #76] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16cd4: 4813 ldr r0, [pc, #76] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16cd6: 4b14 ldr r3, [pc, #80] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16cd8: 4798 blx r3
|
|
16cda: 4b1a ldr r3, [pc, #104] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16cdc: 2240 movs r2, #64 ; 0x40
|
|
16cde: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16ce0: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ce2: 4b19 ldr r3, [pc, #100] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16ce4: 781b ldrb r3, [r3, #0]
|
|
16ce6: 2b00 cmp r3, #0
|
|
16ce8: d005 beq.n 16cf6 <ssd1963_init+0x38a>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16cea: 3a20 subs r2, #32
|
|
16cec: 4b15 ldr r3, [pc, #84] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16cee: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16cf0: 2200 movs r2, #0
|
|
16cf2: 4b15 ldr r3, [pc, #84] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16cf4: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16cf6: 2200 movs r2, #0
|
|
16cf8: 4909 ldr r1, [pc, #36] ; (16d20 <ssd1963_init+0x3b4>)
|
|
16cfa: 480a ldr r0, [pc, #40] ; (16d24 <ssd1963_init+0x3b8>)
|
|
16cfc: 4b0a ldr r3, [pc, #40] ; (16d28 <ssd1963_init+0x3bc>)
|
|
16cfe: 4798 blx r3
|
|
16d00: 4b10 ldr r3, [pc, #64] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16d02: 2240 movs r2, #64 ; 0x40
|
|
16d04: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16d06: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16d08: 4b0f ldr r3, [pc, #60] ; (16d48 <ssd1963_init+0x3dc>)
|
|
16d0a: 781b ldrb r3, [r3, #0]
|
|
16d0c: 2b00 cmp r3, #0
|
|
16d0e: d129 bne.n 16d64 <ssd1963_init+0x3f8>
|
|
16d10: 3a20 subs r2, #32
|
|
16d12: 4b0c ldr r3, [pc, #48] ; (16d44 <ssd1963_init+0x3d8>)
|
|
16d14: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16d16: 3a1f subs r2, #31
|
|
16d18: e022 b.n 16d60 <ssd1963_init+0x3f4>
|
|
16d1a: 46c0 nop ; (mov r8, r8)
|
|
16d1c: 0000aaaa .word 0x0000aaaa
|
|
16d20: 0000ffff .word 0x0000ffff
|
|
16d24: 41004480 .word 0x41004480
|
|
16d28: 00017635 .word 0x00017635
|
|
16d2c: 000010cd .word 0x000010cd
|
|
16d30: 00017bad .word 0x00017bad
|
|
16d34: 00001b57 .word 0x00001b57
|
|
16d38: 00017b6d .word 0x00017b6d
|
|
16d3c: 00001b58 .word 0x00001b58
|
|
16d40: 20000001 .word 0x20000001
|
|
16d44: 41004400 .word 0x41004400
|
|
16d48: 2000005c .word 0x2000005c
|
|
16d4c: 006acfbf .word 0x006acfbf
|
|
16d50: 006acfc0 .word 0x006acfc0
|
|
16d54: 0000f609 .word 0x0000f609
|
|
16d58: 0000f615 .word 0x0000f615
|
|
16d5c: 0000f63d .word 0x0000f63d
|
|
16d60: 4be5 ldr r3, [pc, #916] ; (170f8 <ssd1963_init+0x78c>)
|
|
16d62: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16d64: 22f0 movs r2, #240 ; 0xf0
|
|
16d66: 49e5 ldr r1, [pc, #916] ; (170fc <ssd1963_init+0x790>)
|
|
16d68: 48e5 ldr r0, [pc, #916] ; (17100 <ssd1963_init+0x794>)
|
|
16d6a: 4be6 ldr r3, [pc, #920] ; (17104 <ssd1963_init+0x798>)
|
|
16d6c: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16d6e: 4be6 ldr r3, [pc, #920] ; (17108 <ssd1963_init+0x79c>)
|
|
16d70: 2240 movs r2, #64 ; 0x40
|
|
16d72: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16d74: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16d76: 4be0 ldr r3, [pc, #896] ; (170f8 <ssd1963_init+0x78c>)
|
|
16d78: 781b ldrb r3, [r3, #0]
|
|
16d7a: 2b00 cmp r3, #0
|
|
16d7c: d005 beq.n 16d8a <ssd1963_init+0x41e>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16d7e: 3a20 subs r2, #32
|
|
16d80: 4be1 ldr r3, [pc, #900] ; (17108 <ssd1963_init+0x79c>)
|
|
16d82: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16d84: 2200 movs r2, #0
|
|
16d86: 4bdc ldr r3, [pc, #880] ; (170f8 <ssd1963_init+0x78c>)
|
|
16d88: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16d8a: 2203 movs r2, #3
|
|
16d8c: 49db ldr r1, [pc, #876] ; (170fc <ssd1963_init+0x790>)
|
|
16d8e: 48dc ldr r0, [pc, #880] ; (17100 <ssd1963_init+0x794>)
|
|
16d90: 4bdc ldr r3, [pc, #880] ; (17104 <ssd1963_init+0x798>)
|
|
16d92: 4798 blx r3
|
|
16d94: 4bdc ldr r3, [pc, #880] ; (17108 <ssd1963_init+0x79c>)
|
|
16d96: 2240 movs r2, #64 ; 0x40
|
|
16d98: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16d9a: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16d9c: 4bd6 ldr r3, [pc, #856] ; (170f8 <ssd1963_init+0x78c>)
|
|
16d9e: 781b ldrb r3, [r3, #0]
|
|
16da0: 2b00 cmp r3, #0
|
|
16da2: d105 bne.n 16db0 <ssd1963_init+0x444>
|
|
16da4: 3a20 subs r2, #32
|
|
16da6: 4bd8 ldr r3, [pc, #864] ; (17108 <ssd1963_init+0x79c>)
|
|
16da8: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16daa: 3a1f subs r2, #31
|
|
16dac: 4bd2 ldr r3, [pc, #840] ; (170f8 <ssd1963_init+0x78c>)
|
|
16dae: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16db0: 223a movs r2, #58 ; 0x3a
|
|
16db2: 49d2 ldr r1, [pc, #840] ; (170fc <ssd1963_init+0x790>)
|
|
16db4: 48d2 ldr r0, [pc, #840] ; (17100 <ssd1963_init+0x794>)
|
|
16db6: 4bd3 ldr r3, [pc, #844] ; (17104 <ssd1963_init+0x798>)
|
|
16db8: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16dba: 4bd3 ldr r3, [pc, #844] ; (17108 <ssd1963_init+0x79c>)
|
|
16dbc: 2240 movs r2, #64 ; 0x40
|
|
16dbe: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16dc0: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16dc2: 4bcd ldr r3, [pc, #820] ; (170f8 <ssd1963_init+0x78c>)
|
|
16dc4: 781b ldrb r3, [r3, #0]
|
|
16dc6: 2b00 cmp r3, #0
|
|
16dc8: d005 beq.n 16dd6 <ssd1963_init+0x46a>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16dca: 3a20 subs r2, #32
|
|
16dcc: 4bce ldr r3, [pc, #824] ; (17108 <ssd1963_init+0x79c>)
|
|
16dce: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16dd0: 2200 movs r2, #0
|
|
16dd2: 4bc9 ldr r3, [pc, #804] ; (170f8 <ssd1963_init+0x78c>)
|
|
16dd4: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16dd6: 2250 movs r2, #80 ; 0x50
|
|
16dd8: 49c8 ldr r1, [pc, #800] ; (170fc <ssd1963_init+0x790>)
|
|
16dda: 48c9 ldr r0, [pc, #804] ; (17100 <ssd1963_init+0x794>)
|
|
16ddc: 4bc9 ldr r3, [pc, #804] ; (17104 <ssd1963_init+0x798>)
|
|
16dde: 4798 blx r3
|
|
16de0: 4bc9 ldr r3, [pc, #804] ; (17108 <ssd1963_init+0x79c>)
|
|
16de2: 2240 movs r2, #64 ; 0x40
|
|
16de4: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16de6: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16de8: 4bc3 ldr r3, [pc, #780] ; (170f8 <ssd1963_init+0x78c>)
|
|
16dea: 781b ldrb r3, [r3, #0]
|
|
16dec: 2b00 cmp r3, #0
|
|
16dee: d105 bne.n 16dfc <ssd1963_init+0x490>
|
|
16df0: 3a20 subs r2, #32
|
|
16df2: 4bc5 ldr r3, [pc, #788] ; (17108 <ssd1963_init+0x79c>)
|
|
16df4: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16df6: 3a1f subs r2, #31
|
|
16df8: 4bbf ldr r3, [pc, #764] ; (170f8 <ssd1963_init+0x78c>)
|
|
16dfa: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16dfc: 22e6 movs r2, #230 ; 0xe6
|
|
16dfe: 49bf ldr r1, [pc, #764] ; (170fc <ssd1963_init+0x790>)
|
|
16e00: 48bf ldr r0, [pc, #764] ; (17100 <ssd1963_init+0x794>)
|
|
16e02: 4bc0 ldr r3, [pc, #768] ; (17104 <ssd1963_init+0x798>)
|
|
16e04: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16e06: 4bc0 ldr r3, [pc, #768] ; (17108 <ssd1963_init+0x79c>)
|
|
16e08: 2240 movs r2, #64 ; 0x40
|
|
16e0a: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16e0c: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16e0e: 4bba ldr r3, [pc, #744] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e10: 781b ldrb r3, [r3, #0]
|
|
16e12: 2b00 cmp r3, #0
|
|
16e14: d005 beq.n 16e22 <ssd1963_init+0x4b6>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16e16: 3a20 subs r2, #32
|
|
16e18: 4bbb ldr r3, [pc, #748] ; (17108 <ssd1963_init+0x79c>)
|
|
16e1a: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16e1c: 2200 movs r2, #0
|
|
16e1e: 4bb6 ldr r3, [pc, #728] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e20: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16e22: 2204 movs r2, #4
|
|
16e24: 49b5 ldr r1, [pc, #724] ; (170fc <ssd1963_init+0x790>)
|
|
16e26: 48b6 ldr r0, [pc, #728] ; (17100 <ssd1963_init+0x794>)
|
|
16e28: 4bb6 ldr r3, [pc, #728] ; (17104 <ssd1963_init+0x798>)
|
|
16e2a: 4798 blx r3
|
|
16e2c: 4bb6 ldr r3, [pc, #728] ; (17108 <ssd1963_init+0x79c>)
|
|
16e2e: 2240 movs r2, #64 ; 0x40
|
|
16e30: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16e32: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16e34: 4bb0 ldr r3, [pc, #704] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e36: 781b ldrb r3, [r3, #0]
|
|
16e38: 2b00 cmp r3, #0
|
|
16e3a: d005 beq.n 16e48 <ssd1963_init+0x4dc>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16e3c: 3a20 subs r2, #32
|
|
16e3e: 4bb2 ldr r3, [pc, #712] ; (17108 <ssd1963_init+0x79c>)
|
|
16e40: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16e42: 2200 movs r2, #0
|
|
16e44: 4bac ldr r3, [pc, #688] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e46: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16e48: 223a movs r2, #58 ; 0x3a
|
|
16e4a: 49ac ldr r1, [pc, #688] ; (170fc <ssd1963_init+0x790>)
|
|
16e4c: 48ac ldr r0, [pc, #688] ; (17100 <ssd1963_init+0x794>)
|
|
16e4e: 4bad ldr r3, [pc, #692] ; (17104 <ssd1963_init+0x798>)
|
|
16e50: 4798 blx r3
|
|
16e52: 4bad ldr r3, [pc, #692] ; (17108 <ssd1963_init+0x79c>)
|
|
16e54: 2240 movs r2, #64 ; 0x40
|
|
16e56: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16e58: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16e5a: 4ba7 ldr r3, [pc, #668] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e5c: 781b ldrb r3, [r3, #0]
|
|
16e5e: 2b00 cmp r3, #0
|
|
16e60: d005 beq.n 16e6e <ssd1963_init+0x502>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16e62: 3a20 subs r2, #32
|
|
16e64: 4ba8 ldr r3, [pc, #672] ; (17108 <ssd1963_init+0x79c>)
|
|
16e66: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16e68: 2200 movs r2, #0
|
|
16e6a: 4ba3 ldr r3, [pc, #652] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e6c: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16e6e: 22b6 movs r2, #182 ; 0xb6
|
|
16e70: 49a2 ldr r1, [pc, #648] ; (170fc <ssd1963_init+0x790>)
|
|
16e72: 48a3 ldr r0, [pc, #652] ; (17100 <ssd1963_init+0x794>)
|
|
16e74: 4ba3 ldr r3, [pc, #652] ; (17104 <ssd1963_init+0x798>)
|
|
16e76: 4798 blx r3
|
|
16e78: 4ba3 ldr r3, [pc, #652] ; (17108 <ssd1963_init+0x79c>)
|
|
16e7a: 2240 movs r2, #64 ; 0x40
|
|
16e7c: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16e7e: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16e80: 4b9d ldr r3, [pc, #628] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e82: 781b ldrb r3, [r3, #0]
|
|
16e84: 2b00 cmp r3, #0
|
|
16e86: d105 bne.n 16e94 <ssd1963_init+0x528>
|
|
16e88: 3a20 subs r2, #32
|
|
16e8a: 4b9f ldr r3, [pc, #636] ; (17108 <ssd1963_init+0x79c>)
|
|
16e8c: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16e8e: 3a1f subs r2, #31
|
|
16e90: 4b99 ldr r3, [pc, #612] ; (170f8 <ssd1963_init+0x78c>)
|
|
16e92: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16e94: 22b4 movs r2, #180 ; 0xb4
|
|
16e96: 4999 ldr r1, [pc, #612] ; (170fc <ssd1963_init+0x790>)
|
|
16e98: 4899 ldr r0, [pc, #612] ; (17100 <ssd1963_init+0x794>)
|
|
16e9a: 4b9a ldr r3, [pc, #616] ; (17104 <ssd1963_init+0x798>)
|
|
16e9c: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16e9e: 4b9a ldr r3, [pc, #616] ; (17108 <ssd1963_init+0x79c>)
|
|
16ea0: 2240 movs r2, #64 ; 0x40
|
|
16ea2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16ea4: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ea6: 4b94 ldr r3, [pc, #592] ; (170f8 <ssd1963_init+0x78c>)
|
|
16ea8: 781b ldrb r3, [r3, #0]
|
|
16eaa: 2b00 cmp r3, #0
|
|
16eac: d005 beq.n 16eba <ssd1963_init+0x54e>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16eae: 3a20 subs r2, #32
|
|
16eb0: 4b95 ldr r3, [pc, #596] ; (17108 <ssd1963_init+0x79c>)
|
|
16eb2: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16eb4: 2200 movs r2, #0
|
|
16eb6: 4b90 ldr r3, [pc, #576] ; (170f8 <ssd1963_init+0x78c>)
|
|
16eb8: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16eba: 2204 movs r2, #4
|
|
16ebc: 498f ldr r1, [pc, #572] ; (170fc <ssd1963_init+0x790>)
|
|
16ebe: 4890 ldr r0, [pc, #576] ; (17100 <ssd1963_init+0x794>)
|
|
16ec0: 4b90 ldr r3, [pc, #576] ; (17104 <ssd1963_init+0x798>)
|
|
16ec2: 4798 blx r3
|
|
16ec4: 4b90 ldr r3, [pc, #576] ; (17108 <ssd1963_init+0x79c>)
|
|
16ec6: 2240 movs r2, #64 ; 0x40
|
|
16ec8: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16eca: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ecc: 4b8a ldr r3, [pc, #552] ; (170f8 <ssd1963_init+0x78c>)
|
|
16ece: 781b ldrb r3, [r3, #0]
|
|
16ed0: 2b00 cmp r3, #0
|
|
16ed2: d005 beq.n 16ee0 <ssd1963_init+0x574>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16ed4: 3a20 subs r2, #32
|
|
16ed6: 4b8c ldr r3, [pc, #560] ; (17108 <ssd1963_init+0x79c>)
|
|
16ed8: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16eda: 2200 movs r2, #0
|
|
16edc: 4b86 ldr r3, [pc, #536] ; (170f8 <ssd1963_init+0x78c>)
|
|
16ede: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16ee0: 2220 movs r2, #32
|
|
16ee2: 4986 ldr r1, [pc, #536] ; (170fc <ssd1963_init+0x790>)
|
|
16ee4: 4886 ldr r0, [pc, #536] ; (17100 <ssd1963_init+0x794>)
|
|
16ee6: 4b87 ldr r3, [pc, #540] ; (17104 <ssd1963_init+0x798>)
|
|
16ee8: 4798 blx r3
|
|
16eea: 4b87 ldr r3, [pc, #540] ; (17108 <ssd1963_init+0x79c>)
|
|
16eec: 2240 movs r2, #64 ; 0x40
|
|
16eee: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16ef0: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ef2: 4b81 ldr r3, [pc, #516] ; (170f8 <ssd1963_init+0x78c>)
|
|
16ef4: 781b ldrb r3, [r3, #0]
|
|
16ef6: 2b00 cmp r3, #0
|
|
16ef8: d005 beq.n 16f06 <ssd1963_init+0x59a>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16efa: 3a20 subs r2, #32
|
|
16efc: 4b82 ldr r3, [pc, #520] ; (17108 <ssd1963_init+0x79c>)
|
|
16efe: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16f00: 2200 movs r2, #0
|
|
16f02: 4b7d ldr r3, [pc, #500] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f04: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16f06: 2200 movs r2, #0
|
|
16f08: 497c ldr r1, [pc, #496] ; (170fc <ssd1963_init+0x790>)
|
|
16f0a: 487d ldr r0, [pc, #500] ; (17100 <ssd1963_init+0x794>)
|
|
16f0c: 4b7d ldr r3, [pc, #500] ; (17104 <ssd1963_init+0x798>)
|
|
16f0e: 4798 blx r3
|
|
16f10: 4b7d ldr r3, [pc, #500] ; (17108 <ssd1963_init+0x79c>)
|
|
16f12: 2240 movs r2, #64 ; 0x40
|
|
16f14: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16f16: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16f18: 4b77 ldr r3, [pc, #476] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f1a: 781b ldrb r3, [r3, #0]
|
|
16f1c: 2b00 cmp r3, #0
|
|
16f1e: d005 beq.n 16f2c <ssd1963_init+0x5c0>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16f20: 3a20 subs r2, #32
|
|
16f22: 4b79 ldr r3, [pc, #484] ; (17108 <ssd1963_init+0x79c>)
|
|
16f24: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16f26: 2200 movs r2, #0
|
|
16f28: 4b73 ldr r3, [pc, #460] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f2a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16f2c: 2230 movs r2, #48 ; 0x30
|
|
16f2e: 4973 ldr r1, [pc, #460] ; (170fc <ssd1963_init+0x790>)
|
|
16f30: 4873 ldr r0, [pc, #460] ; (17100 <ssd1963_init+0x794>)
|
|
16f32: 4b74 ldr r3, [pc, #464] ; (17104 <ssd1963_init+0x798>)
|
|
16f34: 4798 blx r3
|
|
16f36: 4b74 ldr r3, [pc, #464] ; (17108 <ssd1963_init+0x79c>)
|
|
16f38: 2240 movs r2, #64 ; 0x40
|
|
16f3a: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16f3c: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16f3e: 4b6e ldr r3, [pc, #440] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f40: 781b ldrb r3, [r3, #0]
|
|
16f42: 2b00 cmp r3, #0
|
|
16f44: d005 beq.n 16f52 <ssd1963_init+0x5e6>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16f46: 3a20 subs r2, #32
|
|
16f48: 4b6f ldr r3, [pc, #444] ; (17108 <ssd1963_init+0x79c>)
|
|
16f4a: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16f4c: 2200 movs r2, #0
|
|
16f4e: 4b6a ldr r3, [pc, #424] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f50: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16f52: 2230 movs r2, #48 ; 0x30
|
|
16f54: 4969 ldr r1, [pc, #420] ; (170fc <ssd1963_init+0x790>)
|
|
16f56: 486a ldr r0, [pc, #424] ; (17100 <ssd1963_init+0x794>)
|
|
16f58: 4b6a ldr r3, [pc, #424] ; (17104 <ssd1963_init+0x798>)
|
|
16f5a: 4798 blx r3
|
|
16f5c: 4b6a ldr r3, [pc, #424] ; (17108 <ssd1963_init+0x79c>)
|
|
16f5e: 2240 movs r2, #64 ; 0x40
|
|
16f60: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16f62: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16f64: 4b64 ldr r3, [pc, #400] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f66: 781b ldrb r3, [r3, #0]
|
|
16f68: 2b00 cmp r3, #0
|
|
16f6a: d005 beq.n 16f78 <ssd1963_init+0x60c>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16f6c: 3a20 subs r2, #32
|
|
16f6e: 4b66 ldr r3, [pc, #408] ; (17108 <ssd1963_init+0x79c>)
|
|
16f70: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16f72: 2200 movs r2, #0
|
|
16f74: 4b60 ldr r3, [pc, #384] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f76: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16f78: 2200 movs r2, #0
|
|
16f7a: 4960 ldr r1, [pc, #384] ; (170fc <ssd1963_init+0x790>)
|
|
16f7c: 4860 ldr r0, [pc, #384] ; (17100 <ssd1963_init+0x794>)
|
|
16f7e: 4b61 ldr r3, [pc, #388] ; (17104 <ssd1963_init+0x798>)
|
|
16f80: 4798 blx r3
|
|
16f82: 4b61 ldr r3, [pc, #388] ; (17108 <ssd1963_init+0x79c>)
|
|
16f84: 2240 movs r2, #64 ; 0x40
|
|
16f86: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16f88: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16f8a: 4b5b ldr r3, [pc, #364] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f8c: 781b ldrb r3, [r3, #0]
|
|
16f8e: 2b00 cmp r3, #0
|
|
16f90: d005 beq.n 16f9e <ssd1963_init+0x632>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16f92: 3a20 subs r2, #32
|
|
16f94: 4b5c ldr r3, [pc, #368] ; (17108 <ssd1963_init+0x79c>)
|
|
16f96: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16f98: 2200 movs r2, #0
|
|
16f9a: 4b57 ldr r3, [pc, #348] ; (170f8 <ssd1963_init+0x78c>)
|
|
16f9c: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16f9e: 2200 movs r2, #0
|
|
16fa0: 4956 ldr r1, [pc, #344] ; (170fc <ssd1963_init+0x790>)
|
|
16fa2: 4857 ldr r0, [pc, #348] ; (17100 <ssd1963_init+0x794>)
|
|
16fa4: 4b57 ldr r3, [pc, #348] ; (17104 <ssd1963_init+0x798>)
|
|
16fa6: 4798 blx r3
|
|
16fa8: 4b57 ldr r3, [pc, #348] ; (17108 <ssd1963_init+0x79c>)
|
|
16faa: 2240 movs r2, #64 ; 0x40
|
|
16fac: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16fae: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16fb0: 4b51 ldr r3, [pc, #324] ; (170f8 <ssd1963_init+0x78c>)
|
|
16fb2: 781b ldrb r3, [r3, #0]
|
|
16fb4: 2b00 cmp r3, #0
|
|
16fb6: d005 beq.n 16fc4 <ssd1963_init+0x658>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16fb8: 3a20 subs r2, #32
|
|
16fba: 4b53 ldr r3, [pc, #332] ; (17108 <ssd1963_init+0x79c>)
|
|
16fbc: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
16fbe: 2200 movs r2, #0
|
|
16fc0: 4b4d ldr r3, [pc, #308] ; (170f8 <ssd1963_init+0x78c>)
|
|
16fc2: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
16fc4: 2200 movs r2, #0
|
|
16fc6: 494d ldr r1, [pc, #308] ; (170fc <ssd1963_init+0x790>)
|
|
16fc8: 484d ldr r0, [pc, #308] ; (17100 <ssd1963_init+0x794>)
|
|
16fca: 4b4e ldr r3, [pc, #312] ; (17104 <ssd1963_init+0x798>)
|
|
16fcc: 4798 blx r3
|
|
16fce: 4b4e ldr r3, [pc, #312] ; (17108 <ssd1963_init+0x79c>)
|
|
16fd0: 2240 movs r2, #64 ; 0x40
|
|
16fd2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16fd4: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
16fd6: 4b48 ldr r3, [pc, #288] ; (170f8 <ssd1963_init+0x78c>)
|
|
16fd8: 781b ldrb r3, [r3, #0]
|
|
16fda: 2b00 cmp r3, #0
|
|
16fdc: d105 bne.n 16fea <ssd1963_init+0x67e>
|
|
16fde: 3a20 subs r2, #32
|
|
16fe0: 4b49 ldr r3, [pc, #292] ; (17108 <ssd1963_init+0x79c>)
|
|
16fe2: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
16fe4: 3a1f subs r2, #31
|
|
16fe6: 4b44 ldr r3, [pc, #272] ; (170f8 <ssd1963_init+0x78c>)
|
|
16fe8: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
16fea: 22b6 movs r2, #182 ; 0xb6
|
|
16fec: 4943 ldr r1, [pc, #268] ; (170fc <ssd1963_init+0x790>)
|
|
16fee: 4844 ldr r0, [pc, #272] ; (17100 <ssd1963_init+0x794>)
|
|
16ff0: 4b44 ldr r3, [pc, #272] ; (17104 <ssd1963_init+0x798>)
|
|
16ff2: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
16ff4: 4b44 ldr r3, [pc, #272] ; (17108 <ssd1963_init+0x79c>)
|
|
16ff6: 2240 movs r2, #64 ; 0x40
|
|
16ff8: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
16ffa: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
16ffc: 4b3e ldr r3, [pc, #248] ; (170f8 <ssd1963_init+0x78c>)
|
|
16ffe: 781b ldrb r3, [r3, #0]
|
|
17000: 2b00 cmp r3, #0
|
|
17002: d005 beq.n 17010 <ssd1963_init+0x6a4>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17004: 3a20 subs r2, #32
|
|
17006: 4b40 ldr r3, [pc, #256] ; (17108 <ssd1963_init+0x79c>)
|
|
17008: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
1700a: 2200 movs r2, #0
|
|
1700c: 4b3a ldr r3, [pc, #232] ; (170f8 <ssd1963_init+0x78c>)
|
|
1700e: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17010: 2202 movs r2, #2
|
|
17012: 493a ldr r1, [pc, #232] ; (170fc <ssd1963_init+0x790>)
|
|
17014: 483a ldr r0, [pc, #232] ; (17100 <ssd1963_init+0x794>)
|
|
17016: 4b3b ldr r3, [pc, #236] ; (17104 <ssd1963_init+0x798>)
|
|
17018: 4798 blx r3
|
|
1701a: 4b3b ldr r3, [pc, #236] ; (17108 <ssd1963_init+0x79c>)
|
|
1701c: 2240 movs r2, #64 ; 0x40
|
|
1701e: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17020: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17022: 4b35 ldr r3, [pc, #212] ; (170f8 <ssd1963_init+0x78c>)
|
|
17024: 781b ldrb r3, [r3, #0]
|
|
17026: 2b00 cmp r3, #0
|
|
17028: d005 beq.n 17036 <ssd1963_init+0x6ca>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1702a: 3a20 subs r2, #32
|
|
1702c: 4b36 ldr r3, [pc, #216] ; (17108 <ssd1963_init+0x79c>)
|
|
1702e: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17030: 2200 movs r2, #0
|
|
17032: 4b31 ldr r3, [pc, #196] ; (170f8 <ssd1963_init+0x78c>)
|
|
17034: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17036: 220d movs r2, #13
|
|
17038: 4930 ldr r1, [pc, #192] ; (170fc <ssd1963_init+0x790>)
|
|
1703a: 4831 ldr r0, [pc, #196] ; (17100 <ssd1963_init+0x794>)
|
|
1703c: 4b31 ldr r3, [pc, #196] ; (17104 <ssd1963_init+0x798>)
|
|
1703e: 4798 blx r3
|
|
17040: 4b31 ldr r3, [pc, #196] ; (17108 <ssd1963_init+0x79c>)
|
|
17042: 2240 movs r2, #64 ; 0x40
|
|
17044: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17046: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17048: 4b2b ldr r3, [pc, #172] ; (170f8 <ssd1963_init+0x78c>)
|
|
1704a: 781b ldrb r3, [r3, #0]
|
|
1704c: 2b00 cmp r3, #0
|
|
1704e: d005 beq.n 1705c <ssd1963_init+0x6f0>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17050: 3a20 subs r2, #32
|
|
17052: 4b2d ldr r3, [pc, #180] ; (17108 <ssd1963_init+0x79c>)
|
|
17054: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17056: 2200 movs r2, #0
|
|
17058: 4b27 ldr r3, [pc, #156] ; (170f8 <ssd1963_init+0x78c>)
|
|
1705a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
1705c: 2200 movs r2, #0
|
|
1705e: 4927 ldr r1, [pc, #156] ; (170fc <ssd1963_init+0x790>)
|
|
17060: 4827 ldr r0, [pc, #156] ; (17100 <ssd1963_init+0x794>)
|
|
17062: 4b28 ldr r3, [pc, #160] ; (17104 <ssd1963_init+0x798>)
|
|
17064: 4798 blx r3
|
|
17066: 4b28 ldr r3, [pc, #160] ; (17108 <ssd1963_init+0x79c>)
|
|
17068: 2240 movs r2, #64 ; 0x40
|
|
1706a: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
1706c: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
1706e: 4b22 ldr r3, [pc, #136] ; (170f8 <ssd1963_init+0x78c>)
|
|
17070: 781b ldrb r3, [r3, #0]
|
|
17072: 2b00 cmp r3, #0
|
|
17074: d005 beq.n 17082 <ssd1963_init+0x716>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17076: 3a20 subs r2, #32
|
|
17078: 4b23 ldr r3, [pc, #140] ; (17108 <ssd1963_init+0x79c>)
|
|
1707a: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
1707c: 2200 movs r2, #0
|
|
1707e: 4b1e ldr r3, [pc, #120] ; (170f8 <ssd1963_init+0x78c>)
|
|
17080: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17082: 2216 movs r2, #22
|
|
17084: 491d ldr r1, [pc, #116] ; (170fc <ssd1963_init+0x790>)
|
|
17086: 481e ldr r0, [pc, #120] ; (17100 <ssd1963_init+0x794>)
|
|
17088: 4b1e ldr r3, [pc, #120] ; (17104 <ssd1963_init+0x798>)
|
|
1708a: 4798 blx r3
|
|
1708c: 4b1e ldr r3, [pc, #120] ; (17108 <ssd1963_init+0x79c>)
|
|
1708e: 2240 movs r2, #64 ; 0x40
|
|
17090: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17092: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17094: 4b18 ldr r3, [pc, #96] ; (170f8 <ssd1963_init+0x78c>)
|
|
17096: 781b ldrb r3, [r3, #0]
|
|
17098: 2b00 cmp r3, #0
|
|
1709a: d005 beq.n 170a8 <ssd1963_init+0x73c>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1709c: 3a20 subs r2, #32
|
|
1709e: 4b1a ldr r3, [pc, #104] ; (17108 <ssd1963_init+0x79c>)
|
|
170a0: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
170a2: 2200 movs r2, #0
|
|
170a4: 4b14 ldr r3, [pc, #80] ; (170f8 <ssd1963_init+0x78c>)
|
|
170a6: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
170a8: 2204 movs r2, #4
|
|
170aa: 4914 ldr r1, [pc, #80] ; (170fc <ssd1963_init+0x790>)
|
|
170ac: 4814 ldr r0, [pc, #80] ; (17100 <ssd1963_init+0x794>)
|
|
170ae: 4b15 ldr r3, [pc, #84] ; (17104 <ssd1963_init+0x798>)
|
|
170b0: 4798 blx r3
|
|
170b2: 4b15 ldr r3, [pc, #84] ; (17108 <ssd1963_init+0x79c>)
|
|
170b4: 2240 movs r2, #64 ; 0x40
|
|
170b6: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
170b8: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
170ba: 4b0f ldr r3, [pc, #60] ; (170f8 <ssd1963_init+0x78c>)
|
|
170bc: 781b ldrb r3, [r3, #0]
|
|
170be: 2b00 cmp r3, #0
|
|
170c0: d005 beq.n 170ce <ssd1963_init+0x762>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
170c2: 3a20 subs r2, #32
|
|
170c4: 4b10 ldr r3, [pc, #64] ; (17108 <ssd1963_init+0x79c>)
|
|
170c6: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
170c8: 2200 movs r2, #0
|
|
170ca: 4b0b ldr r3, [pc, #44] ; (170f8 <ssd1963_init+0x78c>)
|
|
170cc: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
170ce: 2200 movs r2, #0
|
|
170d0: 490a ldr r1, [pc, #40] ; (170fc <ssd1963_init+0x790>)
|
|
170d2: 480b ldr r0, [pc, #44] ; (17100 <ssd1963_init+0x794>)
|
|
170d4: 4b0b ldr r3, [pc, #44] ; (17104 <ssd1963_init+0x798>)
|
|
170d6: 4798 blx r3
|
|
170d8: 4b0b ldr r3, [pc, #44] ; (17108 <ssd1963_init+0x79c>)
|
|
170da: 2240 movs r2, #64 ; 0x40
|
|
170dc: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
170de: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
170e0: 4b05 ldr r3, [pc, #20] ; (170f8 <ssd1963_init+0x78c>)
|
|
170e2: 781b ldrb r3, [r3, #0]
|
|
170e4: 2b00 cmp r3, #0
|
|
170e6: d011 beq.n 1710c <ssd1963_init+0x7a0>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
170e8: 3a20 subs r2, #32
|
|
170ea: 4b07 ldr r3, [pc, #28] ; (17108 <ssd1963_init+0x79c>)
|
|
170ec: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
170ee: 2200 movs r2, #0
|
|
170f0: 4b01 ldr r3, [pc, #4] ; (170f8 <ssd1963_init+0x78c>)
|
|
170f2: 701a strb r2, [r3, #0]
|
|
170f4: e00a b.n 1710c <ssd1963_init+0x7a0>
|
|
170f6: 46c0 nop ; (mov r8, r8)
|
|
170f8: 2000005c .word 0x2000005c
|
|
170fc: 0000ffff .word 0x0000ffff
|
|
17100: 41004480 .word 0x41004480
|
|
17104: 00017635 .word 0x00017635
|
|
17108: 41004400 .word 0x41004400
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
1710c: 2200 movs r2, #0
|
|
1710e: 495c ldr r1, [pc, #368] ; (17280 <ssd1963_init+0x914>)
|
|
17110: 485c ldr r0, [pc, #368] ; (17284 <ssd1963_init+0x918>)
|
|
17112: 4b5d ldr r3, [pc, #372] ; (17288 <ssd1963_init+0x91c>)
|
|
17114: 4798 blx r3
|
|
17116: 4b5d ldr r3, [pc, #372] ; (1728c <ssd1963_init+0x920>)
|
|
17118: 2240 movs r2, #64 ; 0x40
|
|
1711a: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
1711c: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
1711e: 4b5c ldr r3, [pc, #368] ; (17290 <ssd1963_init+0x924>)
|
|
17120: 781b ldrb r3, [r3, #0]
|
|
17122: 2b00 cmp r3, #0
|
|
17124: d105 bne.n 17132 <ssd1963_init+0x7c6>
|
|
17126: 3a20 subs r2, #32
|
|
17128: 4b58 ldr r3, [pc, #352] ; (1728c <ssd1963_init+0x920>)
|
|
1712a: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
1712c: 3a1f subs r2, #31
|
|
1712e: 4b58 ldr r3, [pc, #352] ; (17290 <ssd1963_init+0x924>)
|
|
17130: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
17132: 2229 movs r2, #41 ; 0x29
|
|
17134: 4952 ldr r1, [pc, #328] ; (17280 <ssd1963_init+0x914>)
|
|
17136: 4853 ldr r0, [pc, #332] ; (17284 <ssd1963_init+0x918>)
|
|
17138: 4b53 ldr r3, [pc, #332] ; (17288 <ssd1963_init+0x91c>)
|
|
1713a: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1713c: 4b53 ldr r3, [pc, #332] ; (1728c <ssd1963_init+0x920>)
|
|
1713e: 2240 movs r2, #64 ; 0x40
|
|
17140: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17142: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
17144: 4b52 ldr r3, [pc, #328] ; (17290 <ssd1963_init+0x924>)
|
|
17146: 781b ldrb r3, [r3, #0]
|
|
17148: 2b00 cmp r3, #0
|
|
1714a: d105 bne.n 17158 <ssd1963_init+0x7ec>
|
|
1714c: 3a20 subs r2, #32
|
|
1714e: 4b4f ldr r3, [pc, #316] ; (1728c <ssd1963_init+0x920>)
|
|
17150: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
17152: 3a1f subs r2, #31
|
|
17154: 4b4e ldr r3, [pc, #312] ; (17290 <ssd1963_init+0x924>)
|
|
17156: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
17158: 22be movs r2, #190 ; 0xbe
|
|
1715a: 4949 ldr r1, [pc, #292] ; (17280 <ssd1963_init+0x914>)
|
|
1715c: 4849 ldr r0, [pc, #292] ; (17284 <ssd1963_init+0x918>)
|
|
1715e: 4b4a ldr r3, [pc, #296] ; (17288 <ssd1963_init+0x91c>)
|
|
17160: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17162: 4b4a ldr r3, [pc, #296] ; (1728c <ssd1963_init+0x920>)
|
|
17164: 2240 movs r2, #64 ; 0x40
|
|
17166: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17168: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
1716a: 4b49 ldr r3, [pc, #292] ; (17290 <ssd1963_init+0x924>)
|
|
1716c: 781b ldrb r3, [r3, #0]
|
|
1716e: 2b00 cmp r3, #0
|
|
17170: d005 beq.n 1717e <ssd1963_init+0x812>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17172: 3a20 subs r2, #32
|
|
17174: 4b45 ldr r3, [pc, #276] ; (1728c <ssd1963_init+0x920>)
|
|
17176: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17178: 2200 movs r2, #0
|
|
1717a: 4b45 ldr r3, [pc, #276] ; (17290 <ssd1963_init+0x924>)
|
|
1717c: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
1717e: 2206 movs r2, #6
|
|
17180: 493f ldr r1, [pc, #252] ; (17280 <ssd1963_init+0x914>)
|
|
17182: 4840 ldr r0, [pc, #256] ; (17284 <ssd1963_init+0x918>)
|
|
17184: 4b40 ldr r3, [pc, #256] ; (17288 <ssd1963_init+0x91c>)
|
|
17186: 4798 blx r3
|
|
17188: 4b40 ldr r3, [pc, #256] ; (1728c <ssd1963_init+0x920>)
|
|
1718a: 2240 movs r2, #64 ; 0x40
|
|
1718c: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
1718e: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17190: 4b3f ldr r3, [pc, #252] ; (17290 <ssd1963_init+0x924>)
|
|
17192: 781b ldrb r3, [r3, #0]
|
|
17194: 2b00 cmp r3, #0
|
|
17196: d005 beq.n 171a4 <ssd1963_init+0x838>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17198: 3a20 subs r2, #32
|
|
1719a: 4b3c ldr r3, [pc, #240] ; (1728c <ssd1963_init+0x920>)
|
|
1719c: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
1719e: 2200 movs r2, #0
|
|
171a0: 4b3b ldr r3, [pc, #236] ; (17290 <ssd1963_init+0x924>)
|
|
171a2: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
171a4: 2280 movs r2, #128 ; 0x80
|
|
171a6: 4936 ldr r1, [pc, #216] ; (17280 <ssd1963_init+0x914>)
|
|
171a8: 4836 ldr r0, [pc, #216] ; (17284 <ssd1963_init+0x918>)
|
|
171aa: 4b37 ldr r3, [pc, #220] ; (17288 <ssd1963_init+0x91c>)
|
|
171ac: 4798 blx r3
|
|
171ae: 4b37 ldr r3, [pc, #220] ; (1728c <ssd1963_init+0x920>)
|
|
171b0: 2240 movs r2, #64 ; 0x40
|
|
171b2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
171b4: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
171b6: 4b36 ldr r3, [pc, #216] ; (17290 <ssd1963_init+0x924>)
|
|
171b8: 781b ldrb r3, [r3, #0]
|
|
171ba: 2b00 cmp r3, #0
|
|
171bc: d005 beq.n 171ca <ssd1963_init+0x85e>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
171be: 3a20 subs r2, #32
|
|
171c0: 4b32 ldr r3, [pc, #200] ; (1728c <ssd1963_init+0x920>)
|
|
171c2: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
171c4: 2200 movs r2, #0
|
|
171c6: 4b32 ldr r3, [pc, #200] ; (17290 <ssd1963_init+0x924>)
|
|
171c8: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
171ca: 2201 movs r2, #1
|
|
171cc: 492c ldr r1, [pc, #176] ; (17280 <ssd1963_init+0x914>)
|
|
171ce: 482d ldr r0, [pc, #180] ; (17284 <ssd1963_init+0x918>)
|
|
171d0: 4b2d ldr r3, [pc, #180] ; (17288 <ssd1963_init+0x91c>)
|
|
171d2: 4798 blx r3
|
|
171d4: 4b2d ldr r3, [pc, #180] ; (1728c <ssd1963_init+0x920>)
|
|
171d6: 2240 movs r2, #64 ; 0x40
|
|
171d8: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
171da: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
171dc: 4b2c ldr r3, [pc, #176] ; (17290 <ssd1963_init+0x924>)
|
|
171de: 781b ldrb r3, [r3, #0]
|
|
171e0: 2b00 cmp r3, #0
|
|
171e2: d005 beq.n 171f0 <ssd1963_init+0x884>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
171e4: 3a20 subs r2, #32
|
|
171e6: 4b29 ldr r3, [pc, #164] ; (1728c <ssd1963_init+0x920>)
|
|
171e8: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
171ea: 2200 movs r2, #0
|
|
171ec: 4b28 ldr r3, [pc, #160] ; (17290 <ssd1963_init+0x924>)
|
|
171ee: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
171f0: 22f0 movs r2, #240 ; 0xf0
|
|
171f2: 4923 ldr r1, [pc, #140] ; (17280 <ssd1963_init+0x914>)
|
|
171f4: 4823 ldr r0, [pc, #140] ; (17284 <ssd1963_init+0x918>)
|
|
171f6: 4b24 ldr r3, [pc, #144] ; (17288 <ssd1963_init+0x91c>)
|
|
171f8: 4798 blx r3
|
|
171fa: 4b24 ldr r3, [pc, #144] ; (1728c <ssd1963_init+0x920>)
|
|
171fc: 2240 movs r2, #64 ; 0x40
|
|
171fe: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17200: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17202: 4b23 ldr r3, [pc, #140] ; (17290 <ssd1963_init+0x924>)
|
|
17204: 781b ldrb r3, [r3, #0]
|
|
17206: 2b00 cmp r3, #0
|
|
17208: d005 beq.n 17216 <ssd1963_init+0x8aa>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1720a: 3a20 subs r2, #32
|
|
1720c: 4b1f ldr r3, [pc, #124] ; (1728c <ssd1963_init+0x920>)
|
|
1720e: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17210: 2200 movs r2, #0
|
|
17212: 4b1f ldr r3, [pc, #124] ; (17290 <ssd1963_init+0x924>)
|
|
17214: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17216: 2200 movs r2, #0
|
|
17218: 4919 ldr r1, [pc, #100] ; (17280 <ssd1963_init+0x914>)
|
|
1721a: 481a ldr r0, [pc, #104] ; (17284 <ssd1963_init+0x918>)
|
|
1721c: 4b1a ldr r3, [pc, #104] ; (17288 <ssd1963_init+0x91c>)
|
|
1721e: 4798 blx r3
|
|
17220: 4b1a ldr r3, [pc, #104] ; (1728c <ssd1963_init+0x920>)
|
|
17222: 2240 movs r2, #64 ; 0x40
|
|
17224: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17226: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17228: 4b19 ldr r3, [pc, #100] ; (17290 <ssd1963_init+0x924>)
|
|
1722a: 781b ldrb r3, [r3, #0]
|
|
1722c: 2b00 cmp r3, #0
|
|
1722e: d005 beq.n 1723c <ssd1963_init+0x8d0>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17230: 3a20 subs r2, #32
|
|
17232: 4b16 ldr r3, [pc, #88] ; (1728c <ssd1963_init+0x920>)
|
|
17234: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17236: 2200 movs r2, #0
|
|
17238: 4b15 ldr r3, [pc, #84] ; (17290 <ssd1963_init+0x924>)
|
|
1723a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
1723c: 2200 movs r2, #0
|
|
1723e: 4910 ldr r1, [pc, #64] ; (17280 <ssd1963_init+0x914>)
|
|
17240: 4810 ldr r0, [pc, #64] ; (17284 <ssd1963_init+0x918>)
|
|
17242: 4b11 ldr r3, [pc, #68] ; (17288 <ssd1963_init+0x91c>)
|
|
17244: 4798 blx r3
|
|
17246: 2240 movs r2, #64 ; 0x40
|
|
17248: 4b10 ldr r3, [pc, #64] ; (1728c <ssd1963_init+0x920>)
|
|
1724a: 619a str r2, [r3, #24]
|
|
LV_DRV_DELAY_MS(30);
|
|
1724c: 2000 movs r0, #0
|
|
1724e: 4b11 ldr r3, [pc, #68] ; (17294 <ssd1963_init+0x928>)
|
|
17250: 4798 blx r3
|
|
17252: 0002 movs r2, r0
|
|
17254: 2300 movs r3, #0
|
|
17256: 0f11 lsrs r1, r2, #28
|
|
17258: 0110 lsls r0, r2, #4
|
|
1725a: 1a80 subs r0, r0, r2
|
|
1725c: 4199 sbcs r1, r3
|
|
1725e: 1800 adds r0, r0, r0
|
|
17260: 4149 adcs r1, r1
|
|
17262: 4a0d ldr r2, [pc, #52] ; (17298 <ssd1963_init+0x92c>)
|
|
17264: 2300 movs r3, #0
|
|
17266: 1880 adds r0, r0, r2
|
|
17268: 4159 adcs r1, r3
|
|
1726a: 4a0c ldr r2, [pc, #48] ; (1729c <ssd1963_init+0x930>)
|
|
1726c: 2300 movs r3, #0
|
|
1726e: 4c0c ldr r4, [pc, #48] ; (172a0 <ssd1963_init+0x934>)
|
|
17270: 47a0 blx r4
|
|
17272: 4b0c ldr r3, [pc, #48] ; (172a4 <ssd1963_init+0x938>)
|
|
17274: 4798 blx r3
|
|
}
|
|
17276: bc1c pop {r2, r3, r4}
|
|
17278: 4690 mov r8, r2
|
|
1727a: 4699 mov r9, r3
|
|
1727c: 46a2 mov sl, r4
|
|
1727e: bdf0 pop {r4, r5, r6, r7, pc}
|
|
17280: 0000ffff .word 0x0000ffff
|
|
17284: 41004480 .word 0x41004480
|
|
17288: 00017635 .word 0x00017635
|
|
1728c: 41004400 .word 0x41004400
|
|
17290: 2000005c .word 0x2000005c
|
|
17294: 000010cd .word 0x000010cd
|
|
17298: 00001b57 .word 0x00001b57
|
|
1729c: 00001b58 .word 0x00001b58
|
|
172a0: 00017b6d .word 0x00017b6d
|
|
172a4: 20000001 .word 0x20000001
|
|
|
|
000172a8 <ssd1963_flush>:
|
|
{
|
|
172a8: b5f0 push {r4, r5, r6, r7, lr}
|
|
172aa: 46de mov lr, fp
|
|
172ac: 4657 mov r7, sl
|
|
172ae: 464e mov r6, r9
|
|
172b0: 4645 mov r5, r8
|
|
172b2: b5e0 push {r5, r6, r7, lr}
|
|
172b4: b083 sub sp, #12
|
|
172b6: 9000 str r0, [sp, #0]
|
|
172b8: 000f movs r7, r1
|
|
172ba: 0016 movs r6, r2
|
|
if(area->x2 < 0) return;
|
|
172bc: 2204 movs r2, #4
|
|
172be: 5e8b ldrsh r3, [r1, r2]
|
|
172c0: 2b00 cmp r3, #0
|
|
172c2: db0c blt.n 172de <ssd1963_flush+0x36>
|
|
if(area->y2 < 0) return;
|
|
172c4: 2206 movs r2, #6
|
|
172c6: 5e8b ldrsh r3, [r1, r2]
|
|
172c8: 2b00 cmp r3, #0
|
|
172ca: db08 blt.n 172de <ssd1963_flush+0x36>
|
|
if(area->x1 > SSD1963_HOR_RES - 1) return;
|
|
172cc: 2300 movs r3, #0
|
|
172ce: 5ecc ldrsh r4, [r1, r3]
|
|
172d0: 4bb2 ldr r3, [pc, #712] ; (1759c <ssd1963_flush+0x2f4>)
|
|
172d2: 4798 blx r3
|
|
172d4: 4bb2 ldr r3, [pc, #712] ; (175a0 <ssd1963_flush+0x2f8>)
|
|
172d6: 4798 blx r3
|
|
172d8: 3801 subs r0, #1
|
|
172da: 4284 cmp r4, r0
|
|
172dc: dd06 ble.n 172ec <ssd1963_flush+0x44>
|
|
}
|
|
172de: b003 add sp, #12
|
|
172e0: bc3c pop {r2, r3, r4, r5}
|
|
172e2: 4690 mov r8, r2
|
|
172e4: 4699 mov r9, r3
|
|
172e6: 46a2 mov sl, r4
|
|
172e8: 46ab mov fp, r5
|
|
172ea: bdf0 pop {r4, r5, r6, r7, pc}
|
|
if(area->y1 > SSD1963_VER_RES - 1) return;
|
|
172ec: 2302 movs r3, #2
|
|
172ee: 5efc ldrsh r4, [r7, r3]
|
|
172f0: 4baa ldr r3, [pc, #680] ; (1759c <ssd1963_flush+0x2f4>)
|
|
172f2: 4798 blx r3
|
|
172f4: 4bab ldr r3, [pc, #684] ; (175a4 <ssd1963_flush+0x2fc>)
|
|
172f6: 4798 blx r3
|
|
172f8: 3801 subs r0, #1
|
|
172fa: 4284 cmp r4, r0
|
|
172fc: dcef bgt.n 172de <ssd1963_flush+0x36>
|
|
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
|
|
172fe: 883b ldrh r3, [r7, #0]
|
|
17300: 1c1d adds r5, r3, #0
|
|
17302: b21b sxth r3, r3
|
|
17304: 2b00 cmp r3, #0
|
|
17306: da00 bge.n 1730a <ssd1963_flush+0x62>
|
|
17308: e136 b.n 17578 <ssd1963_flush+0x2d0>
|
|
1730a: b22b sxth r3, r5
|
|
1730c: 4699 mov r9, r3
|
|
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
|
|
1730e: 887b ldrh r3, [r7, #2]
|
|
17310: 1c1c adds r4, r3, #0
|
|
17312: b21b sxth r3, r3
|
|
17314: 2b00 cmp r3, #0
|
|
17316: da00 bge.n 1731a <ssd1963_flush+0x72>
|
|
17318: e130 b.n 1757c <ssd1963_flush+0x2d4>
|
|
1731a: b224 sxth r4, r4
|
|
1731c: 46a3 mov fp, r4
|
|
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
|
|
1731e: 2304 movs r3, #4
|
|
17320: 5efd ldrsh r5, [r7, r3]
|
|
17322: 4b9e ldr r3, [pc, #632] ; (1759c <ssd1963_flush+0x2f4>)
|
|
17324: 4798 blx r3
|
|
17326: 4b9e ldr r3, [pc, #632] ; (175a0 <ssd1963_flush+0x2f8>)
|
|
17328: 4798 blx r3
|
|
1732a: 3801 subs r0, #1
|
|
1732c: 4285 cmp r5, r0
|
|
1732e: dd00 ble.n 17332 <ssd1963_flush+0x8a>
|
|
17330: e126 b.n 17580 <ssd1963_flush+0x2d8>
|
|
17332: 2304 movs r3, #4
|
|
17334: 5efd ldrsh r5, [r7, r3]
|
|
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
|
|
17336: 2206 movs r2, #6
|
|
17338: 5ebb ldrsh r3, [r7, r2]
|
|
1733a: 469a mov sl, r3
|
|
1733c: 4b97 ldr r3, [pc, #604] ; (1759c <ssd1963_flush+0x2f4>)
|
|
1733e: 4798 blx r3
|
|
17340: 4b98 ldr r3, [pc, #608] ; (175a4 <ssd1963_flush+0x2fc>)
|
|
17342: 4798 blx r3
|
|
17344: 3801 subs r0, #1
|
|
17346: 4582 cmp sl, r0
|
|
17348: dd00 ble.n 1734c <ssd1963_flush+0xa4>
|
|
1734a: e11f b.n 1758c <ssd1963_flush+0x2e4>
|
|
1734c: 2206 movs r2, #6
|
|
1734e: 5ebb ldrsh r3, [r7, r2]
|
|
17350: 469a mov sl, r3
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17352: 2240 movs r2, #64 ; 0x40
|
|
17354: 4b94 ldr r3, [pc, #592] ; (175a8 <ssd1963_flush+0x300>)
|
|
17356: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
17358: 4b94 ldr r3, [pc, #592] ; (175ac <ssd1963_flush+0x304>)
|
|
1735a: 781b ldrb r3, [r3, #0]
|
|
1735c: 2b00 cmp r3, #0
|
|
1735e: d105 bne.n 1736c <ssd1963_flush+0xc4>
|
|
17360: 3a20 subs r2, #32
|
|
17362: 4b91 ldr r3, [pc, #580] ; (175a8 <ssd1963_flush+0x300>)
|
|
17364: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
17366: 3a1f subs r2, #31
|
|
17368: 4b90 ldr r3, [pc, #576] ; (175ac <ssd1963_flush+0x304>)
|
|
1736a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
1736c: 222a movs r2, #42 ; 0x2a
|
|
1736e: 4990 ldr r1, [pc, #576] ; (175b0 <ssd1963_flush+0x308>)
|
|
17370: 4890 ldr r0, [pc, #576] ; (175b4 <ssd1963_flush+0x30c>)
|
|
17372: 4b91 ldr r3, [pc, #580] ; (175b8 <ssd1963_flush+0x310>)
|
|
17374: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17376: 4b8c ldr r3, [pc, #560] ; (175a8 <ssd1963_flush+0x300>)
|
|
17378: 2140 movs r1, #64 ; 0x40
|
|
1737a: 6199 str r1, [r3, #24]
|
|
ssd1963_data(act_x1 >> 8);
|
|
1737c: 464a mov r2, r9
|
|
1737e: 1210 asrs r0, r2, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17380: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17382: 4b8a ldr r3, [pc, #552] ; (175ac <ssd1963_flush+0x304>)
|
|
17384: 781b ldrb r3, [r3, #0]
|
|
17386: 2b00 cmp r3, #0
|
|
17388: d005 beq.n 17396 <ssd1963_flush+0xee>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1738a: 2220 movs r2, #32
|
|
1738c: 4b86 ldr r3, [pc, #536] ; (175a8 <ssd1963_flush+0x300>)
|
|
1738e: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17390: 2200 movs r2, #0
|
|
17392: 4b86 ldr r3, [pc, #536] ; (175ac <ssd1963_flush+0x304>)
|
|
17394: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17396: 22ff movs r2, #255 ; 0xff
|
|
17398: 4002 ands r2, r0
|
|
1739a: 4985 ldr r1, [pc, #532] ; (175b0 <ssd1963_flush+0x308>)
|
|
1739c: 4885 ldr r0, [pc, #532] ; (175b4 <ssd1963_flush+0x30c>)
|
|
1739e: 4b86 ldr r3, [pc, #536] ; (175b8 <ssd1963_flush+0x310>)
|
|
173a0: 4798 blx r3
|
|
173a2: 4b81 ldr r3, [pc, #516] ; (175a8 <ssd1963_flush+0x300>)
|
|
173a4: 2140 movs r1, #64 ; 0x40
|
|
173a6: 6199 str r1, [r3, #24]
|
|
ssd1963_data(0x00FF & act_x1);
|
|
173a8: 464a mov r2, r9
|
|
173aa: 4668 mov r0, sp
|
|
173ac: 7102 strb r2, [r0, #4]
|
|
173ae: 7902 ldrb r2, [r0, #4]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
173b0: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
173b2: 4b7e ldr r3, [pc, #504] ; (175ac <ssd1963_flush+0x304>)
|
|
173b4: 781b ldrb r3, [r3, #0]
|
|
173b6: 2b00 cmp r3, #0
|
|
173b8: d005 beq.n 173c6 <ssd1963_flush+0x11e>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
173ba: 3920 subs r1, #32
|
|
173bc: 4b7a ldr r3, [pc, #488] ; (175a8 <ssd1963_flush+0x300>)
|
|
173be: 6199 str r1, [r3, #24]
|
|
cmd_mode = false;
|
|
173c0: 2100 movs r1, #0
|
|
173c2: 4b7a ldr r3, [pc, #488] ; (175ac <ssd1963_flush+0x304>)
|
|
173c4: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
173c6: 497a ldr r1, [pc, #488] ; (175b0 <ssd1963_flush+0x308>)
|
|
173c8: 487a ldr r0, [pc, #488] ; (175b4 <ssd1963_flush+0x30c>)
|
|
173ca: 4b7b ldr r3, [pc, #492] ; (175b8 <ssd1963_flush+0x310>)
|
|
173cc: 4798 blx r3
|
|
173ce: 4b76 ldr r3, [pc, #472] ; (175a8 <ssd1963_flush+0x300>)
|
|
173d0: 2140 movs r1, #64 ; 0x40
|
|
173d2: 6199 str r1, [r3, #24]
|
|
ssd1963_data(act_x2 >> 8);
|
|
173d4: 1228 asrs r0, r5, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
173d6: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
173d8: 4b74 ldr r3, [pc, #464] ; (175ac <ssd1963_flush+0x304>)
|
|
173da: 781b ldrb r3, [r3, #0]
|
|
173dc: 2b00 cmp r3, #0
|
|
173de: d005 beq.n 173ec <ssd1963_flush+0x144>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
173e0: 2220 movs r2, #32
|
|
173e2: 4b71 ldr r3, [pc, #452] ; (175a8 <ssd1963_flush+0x300>)
|
|
173e4: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
173e6: 2200 movs r2, #0
|
|
173e8: 4b70 ldr r3, [pc, #448] ; (175ac <ssd1963_flush+0x304>)
|
|
173ea: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
173ec: 22ff movs r2, #255 ; 0xff
|
|
173ee: 4002 ands r2, r0
|
|
173f0: 496f ldr r1, [pc, #444] ; (175b0 <ssd1963_flush+0x308>)
|
|
173f2: 4870 ldr r0, [pc, #448] ; (175b4 <ssd1963_flush+0x30c>)
|
|
173f4: 4b70 ldr r3, [pc, #448] ; (175b8 <ssd1963_flush+0x310>)
|
|
173f6: 4798 blx r3
|
|
173f8: 4b6b ldr r3, [pc, #428] ; (175a8 <ssd1963_flush+0x300>)
|
|
173fa: 2240 movs r2, #64 ; 0x40
|
|
173fc: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
173fe: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17400: 4b6a ldr r3, [pc, #424] ; (175ac <ssd1963_flush+0x304>)
|
|
17402: 781b ldrb r3, [r3, #0]
|
|
17404: 2b00 cmp r3, #0
|
|
17406: d005 beq.n 17414 <ssd1963_flush+0x16c>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17408: 3a20 subs r2, #32
|
|
1740a: 4b67 ldr r3, [pc, #412] ; (175a8 <ssd1963_flush+0x300>)
|
|
1740c: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
1740e: 2200 movs r2, #0
|
|
17410: 4b66 ldr r3, [pc, #408] ; (175ac <ssd1963_flush+0x304>)
|
|
17412: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17414: 22ff movs r2, #255 ; 0xff
|
|
17416: 402a ands r2, r5
|
|
17418: 4965 ldr r1, [pc, #404] ; (175b0 <ssd1963_flush+0x308>)
|
|
1741a: 4866 ldr r0, [pc, #408] ; (175b4 <ssd1963_flush+0x30c>)
|
|
1741c: 4b66 ldr r3, [pc, #408] ; (175b8 <ssd1963_flush+0x310>)
|
|
1741e: 4798 blx r3
|
|
17420: 4b61 ldr r3, [pc, #388] ; (175a8 <ssd1963_flush+0x300>)
|
|
17422: 2240 movs r2, #64 ; 0x40
|
|
17424: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17426: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
17428: 4b60 ldr r3, [pc, #384] ; (175ac <ssd1963_flush+0x304>)
|
|
1742a: 781b ldrb r3, [r3, #0]
|
|
1742c: 2b00 cmp r3, #0
|
|
1742e: d105 bne.n 1743c <ssd1963_flush+0x194>
|
|
17430: 3a20 subs r2, #32
|
|
17432: 4b5d ldr r3, [pc, #372] ; (175a8 <ssd1963_flush+0x300>)
|
|
17434: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
17436: 3a1f subs r2, #31
|
|
17438: 4b5c ldr r3, [pc, #368] ; (175ac <ssd1963_flush+0x304>)
|
|
1743a: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
1743c: 222b movs r2, #43 ; 0x2b
|
|
1743e: 495c ldr r1, [pc, #368] ; (175b0 <ssd1963_flush+0x308>)
|
|
17440: 485c ldr r0, [pc, #368] ; (175b4 <ssd1963_flush+0x30c>)
|
|
17442: 4b5d ldr r3, [pc, #372] ; (175b8 <ssd1963_flush+0x310>)
|
|
17444: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17446: 4b58 ldr r3, [pc, #352] ; (175a8 <ssd1963_flush+0x300>)
|
|
17448: 2140 movs r1, #64 ; 0x40
|
|
1744a: 6199 str r1, [r3, #24]
|
|
ssd1963_data(act_y1 >> 8);
|
|
1744c: 465a mov r2, fp
|
|
1744e: 1210 asrs r0, r2, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17450: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
17452: 4b56 ldr r3, [pc, #344] ; (175ac <ssd1963_flush+0x304>)
|
|
17454: 781b ldrb r3, [r3, #0]
|
|
17456: 2b00 cmp r3, #0
|
|
17458: d005 beq.n 17466 <ssd1963_flush+0x1be>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1745a: 2220 movs r2, #32
|
|
1745c: 4b52 ldr r3, [pc, #328] ; (175a8 <ssd1963_flush+0x300>)
|
|
1745e: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
17460: 2200 movs r2, #0
|
|
17462: 4b52 ldr r3, [pc, #328] ; (175ac <ssd1963_flush+0x304>)
|
|
17464: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17466: 22ff movs r2, #255 ; 0xff
|
|
17468: 4002 ands r2, r0
|
|
1746a: 4951 ldr r1, [pc, #324] ; (175b0 <ssd1963_flush+0x308>)
|
|
1746c: 4851 ldr r0, [pc, #324] ; (175b4 <ssd1963_flush+0x30c>)
|
|
1746e: 4b52 ldr r3, [pc, #328] ; (175b8 <ssd1963_flush+0x310>)
|
|
17470: 4798 blx r3
|
|
17472: 4b4d ldr r3, [pc, #308] ; (175a8 <ssd1963_flush+0x300>)
|
|
17474: 2140 movs r1, #64 ; 0x40
|
|
17476: 6199 str r1, [r3, #24]
|
|
ssd1963_data(0x00FF & act_y1);
|
|
17478: b2e2 uxtb r2, r4
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
1747a: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
1747c: 4b4b ldr r3, [pc, #300] ; (175ac <ssd1963_flush+0x304>)
|
|
1747e: 781b ldrb r3, [r3, #0]
|
|
17480: 2b00 cmp r3, #0
|
|
17482: d005 beq.n 17490 <ssd1963_flush+0x1e8>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17484: 3920 subs r1, #32
|
|
17486: 4b48 ldr r3, [pc, #288] ; (175a8 <ssd1963_flush+0x300>)
|
|
17488: 6199 str r1, [r3, #24]
|
|
cmd_mode = false;
|
|
1748a: 2100 movs r1, #0
|
|
1748c: 4b47 ldr r3, [pc, #284] ; (175ac <ssd1963_flush+0x304>)
|
|
1748e: 7019 strb r1, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
17490: 4947 ldr r1, [pc, #284] ; (175b0 <ssd1963_flush+0x308>)
|
|
17492: 4848 ldr r0, [pc, #288] ; (175b4 <ssd1963_flush+0x30c>)
|
|
17494: 4b48 ldr r3, [pc, #288] ; (175b8 <ssd1963_flush+0x310>)
|
|
17496: 4798 blx r3
|
|
17498: 4b43 ldr r3, [pc, #268] ; (175a8 <ssd1963_flush+0x300>)
|
|
1749a: 2140 movs r1, #64 ; 0x40
|
|
1749c: 6199 str r1, [r3, #24]
|
|
ssd1963_data(act_y2 >> 8);
|
|
1749e: 4652 mov r2, sl
|
|
174a0: 1210 asrs r0, r2, #8
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
174a2: 6159 str r1, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
174a4: 4b41 ldr r3, [pc, #260] ; (175ac <ssd1963_flush+0x304>)
|
|
174a6: 781b ldrb r3, [r3, #0]
|
|
174a8: 2b00 cmp r3, #0
|
|
174aa: d005 beq.n 174b8 <ssd1963_flush+0x210>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
174ac: 2220 movs r2, #32
|
|
174ae: 4b3e ldr r3, [pc, #248] ; (175a8 <ssd1963_flush+0x300>)
|
|
174b0: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
174b2: 2200 movs r2, #0
|
|
174b4: 4b3d ldr r3, [pc, #244] ; (175ac <ssd1963_flush+0x304>)
|
|
174b6: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
174b8: 22ff movs r2, #255 ; 0xff
|
|
174ba: 4002 ands r2, r0
|
|
174bc: 493c ldr r1, [pc, #240] ; (175b0 <ssd1963_flush+0x308>)
|
|
174be: 483d ldr r0, [pc, #244] ; (175b4 <ssd1963_flush+0x30c>)
|
|
174c0: 4b3d ldr r3, [pc, #244] ; (175b8 <ssd1963_flush+0x310>)
|
|
174c2: 4798 blx r3
|
|
174c4: 4b38 ldr r3, [pc, #224] ; (175a8 <ssd1963_flush+0x300>)
|
|
174c6: 2240 movs r2, #64 ; 0x40
|
|
174c8: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
174ca: 615a str r2, [r3, #20]
|
|
if(cmd_mode != false) {
|
|
174cc: 4b37 ldr r3, [pc, #220] ; (175ac <ssd1963_flush+0x304>)
|
|
174ce: 781b ldrb r3, [r3, #0]
|
|
174d0: 2b00 cmp r3, #0
|
|
174d2: d005 beq.n 174e0 <ssd1963_flush+0x238>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
174d4: 3a20 subs r2, #32
|
|
174d6: 4b34 ldr r3, [pc, #208] ; (175a8 <ssd1963_flush+0x300>)
|
|
174d8: 619a str r2, [r3, #24]
|
|
cmd_mode = false;
|
|
174da: 2200 movs r2, #0
|
|
174dc: 4b33 ldr r3, [pc, #204] ; (175ac <ssd1963_flush+0x304>)
|
|
174de: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(data);
|
|
174e0: 22ff movs r2, #255 ; 0xff
|
|
174e2: 4653 mov r3, sl
|
|
174e4: 401a ands r2, r3
|
|
174e6: 4932 ldr r1, [pc, #200] ; (175b0 <ssd1963_flush+0x308>)
|
|
174e8: 4832 ldr r0, [pc, #200] ; (175b4 <ssd1963_flush+0x30c>)
|
|
174ea: 4b33 ldr r3, [pc, #204] ; (175b8 <ssd1963_flush+0x310>)
|
|
174ec: 4798 blx r3
|
|
174ee: 4b2e ldr r3, [pc, #184] ; (175a8 <ssd1963_flush+0x300>)
|
|
174f0: 2240 movs r2, #64 ; 0x40
|
|
174f2: 619a str r2, [r3, #24]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
174f4: 615a str r2, [r3, #20]
|
|
if(cmd_mode == false) {
|
|
174f6: 4b2d ldr r3, [pc, #180] ; (175ac <ssd1963_flush+0x304>)
|
|
174f8: 781b ldrb r3, [r3, #0]
|
|
174fa: 2b00 cmp r3, #0
|
|
174fc: d105 bne.n 1750a <ssd1963_flush+0x262>
|
|
174fe: 3a20 subs r2, #32
|
|
17500: 4b29 ldr r3, [pc, #164] ; (175a8 <ssd1963_flush+0x300>)
|
|
17502: 615a str r2, [r3, #20]
|
|
cmd_mode = true;
|
|
17504: 3a1f subs r2, #31
|
|
17506: 4b29 ldr r3, [pc, #164] ; (175ac <ssd1963_flush+0x304>)
|
|
17508: 701a strb r2, [r3, #0]
|
|
LV_DRV_DISP_PAR_WR_WORD(cmd);
|
|
1750a: 222c movs r2, #44 ; 0x2c
|
|
1750c: 4928 ldr r1, [pc, #160] ; (175b0 <ssd1963_flush+0x308>)
|
|
1750e: 4829 ldr r0, [pc, #164] ; (175b4 <ssd1963_flush+0x30c>)
|
|
17510: 4b29 ldr r3, [pc, #164] ; (175b8 <ssd1963_flush+0x310>)
|
|
17512: 4798 blx r3
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17514: 2240 movs r2, #64 ; 0x40
|
|
17516: 4b24 ldr r3, [pc, #144] ; (175a8 <ssd1963_flush+0x300>)
|
|
17518: 619a str r2, [r3, #24]
|
|
uint16_t full_w = area->x2 - area->x1 + 1;
|
|
1751a: 88bb ldrh r3, [r7, #4]
|
|
1751c: 3301 adds r3, #1
|
|
1751e: 883a ldrh r2, [r7, #0]
|
|
17520: 1a9b subs r3, r3, r2
|
|
17522: b29f uxth r7, r3
|
|
if(cmd_mode != false) {
|
|
17524: 4a21 ldr r2, [pc, #132] ; (175ac <ssd1963_flush+0x304>)
|
|
17526: 7812 ldrb r2, [r2, #0]
|
|
17528: 2a00 cmp r2, #0
|
|
1752a: d005 beq.n 17538 <ssd1963_flush+0x290>
|
|
1752c: 2120 movs r1, #32
|
|
1752e: 4a1e ldr r2, [pc, #120] ; (175a8 <ssd1963_flush+0x300>)
|
|
17530: 6191 str r1, [r2, #24]
|
|
cmd_mode = false;
|
|
17532: 2100 movs r1, #0
|
|
17534: 4a1d ldr r2, [pc, #116] ; (175ac <ssd1963_flush+0x304>)
|
|
17536: 7011 strb r1, [r2, #0]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17538: 2140 movs r1, #64 ; 0x40
|
|
1753a: 4a1b ldr r2, [pc, #108] ; (175a8 <ssd1963_flush+0x300>)
|
|
1753c: 6151 str r1, [r2, #20]
|
|
uint16_t act_w = act_x2 - act_x1 + 1;
|
|
1753e: 464b mov r3, r9
|
|
17540: 1aed subs r5, r5, r3
|
|
17542: 3501 adds r5, #1
|
|
17544: b2ad uxth r5, r5
|
|
for(i = act_y1; i <= act_y2; i++) {
|
|
17546: 45da cmp sl, fp
|
|
17548: db0f blt.n 1756a <ssd1963_flush+0x2c2>
|
|
color_p += full_w;
|
|
1754a: 007f lsls r7, r7, #1
|
|
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
|
|
1754c: 4b1b ldr r3, [pc, #108] ; (175bc <ssd1963_flush+0x314>)
|
|
1754e: 4698 mov r8, r3
|
|
17550: 9501 str r5, [sp, #4]
|
|
17552: 003d movs r5, r7
|
|
17554: 4657 mov r7, sl
|
|
17556: 9b01 ldr r3, [sp, #4]
|
|
17558: 0032 movs r2, r6
|
|
1755a: 4915 ldr r1, [pc, #84] ; (175b0 <ssd1963_flush+0x308>)
|
|
1755c: 4815 ldr r0, [pc, #84] ; (175b4 <ssd1963_flush+0x30c>)
|
|
1755e: 47c0 blx r8
|
|
color_p += full_w;
|
|
17560: 1976 adds r6, r6, r5
|
|
17562: 3401 adds r4, #1
|
|
17564: b224 sxth r4, r4
|
|
for(i = act_y1; i <= act_y2; i++) {
|
|
17566: 42a7 cmp r7, r4
|
|
17568: daf5 bge.n 17556 <ssd1963_flush+0x2ae>
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1756a: 2240 movs r2, #64 ; 0x40
|
|
1756c: 4b0e ldr r3, [pc, #56] ; (175a8 <ssd1963_flush+0x300>)
|
|
1756e: 619a str r2, [r3, #24]
|
|
lv_disp_flush_ready(disp_drv);
|
|
17570: 9800 ldr r0, [sp, #0]
|
|
17572: 4b13 ldr r3, [pc, #76] ; (175c0 <ssd1963_flush+0x318>)
|
|
17574: 4798 blx r3
|
|
17576: e6b2 b.n 172de <ssd1963_flush+0x36>
|
|
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
|
|
17578: 2500 movs r5, #0
|
|
1757a: e6c6 b.n 1730a <ssd1963_flush+0x62>
|
|
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
|
|
1757c: 2400 movs r4, #0
|
|
1757e: e6cc b.n 1731a <ssd1963_flush+0x72>
|
|
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
|
|
17580: 4b06 ldr r3, [pc, #24] ; (1759c <ssd1963_flush+0x2f4>)
|
|
17582: 4798 blx r3
|
|
17584: 4b06 ldr r3, [pc, #24] ; (175a0 <ssd1963_flush+0x2f8>)
|
|
17586: 4798 blx r3
|
|
17588: 1e45 subs r5, r0, #1
|
|
1758a: e6d4 b.n 17336 <ssd1963_flush+0x8e>
|
|
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
|
|
1758c: 4b03 ldr r3, [pc, #12] ; (1759c <ssd1963_flush+0x2f4>)
|
|
1758e: 4798 blx r3
|
|
17590: 4b04 ldr r3, [pc, #16] ; (175a4 <ssd1963_flush+0x2fc>)
|
|
17592: 4798 blx r3
|
|
17594: 1e43 subs r3, r0, #1
|
|
17596: 469a mov sl, r3
|
|
17598: e6db b.n 17352 <ssd1963_flush+0xaa>
|
|
1759a: 46c0 nop ; (mov r8, r8)
|
|
1759c: 0000f609 .word 0x0000f609
|
|
175a0: 0000f615 .word 0x0000f615
|
|
175a4: 0000f63d .word 0x0000f63d
|
|
175a8: 41004400 .word 0x41004400
|
|
175ac: 2000005c .word 0x2000005c
|
|
175b0: 0000ffff .word 0x0000ffff
|
|
175b4: 41004480 .word 0x41004480
|
|
175b8: 00017635 .word 0x00017635
|
|
175bc: 000176bd .word 0x000176bd
|
|
175c0: 0000f6d9 .word 0x0000f6d9
|
|
|
|
000175c4 <p_gpio_init>:
|
|
#include "p_gpio.h"
|
|
|
|
void p_gpio_init(void)
|
|
{
|
|
175c4: b530 push {r4, r5, lr}
|
|
175c6: b083 sub sp, #12
|
|
config->powersave = false;
|
|
175c8: aa01 add r2, sp, #4
|
|
175ca: 2400 movs r4, #0
|
|
175cc: 7094 strb r4, [r2, #2]
|
|
struct port_config data_port_config;
|
|
port_get_config_defaults(&data_port_config);
|
|
data_port_config.direction = SSD1963_TFT_DATA_DIR;
|
|
175ce: 2501 movs r5, #1
|
|
175d0: 7015 strb r5, [r2, #0]
|
|
data_port_config.input_pull = SSD1963_TFT_DATA_PULL;
|
|
175d2: 7054 strb r4, [r2, #1]
|
|
port_group_set_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_port_config);
|
|
175d4: 4912 ldr r1, [pc, #72] ; (17620 <p_gpio_init+0x5c>)
|
|
175d6: 4813 ldr r0, [pc, #76] ; (17624 <p_gpio_init+0x60>)
|
|
175d8: 4b13 ldr r3, [pc, #76] ; (17628 <p_gpio_init+0x64>)
|
|
175da: 4798 blx r3
|
|
175dc: 466b mov r3, sp
|
|
175de: 709c strb r4, [r3, #2]
|
|
|
|
struct port_config ssd1963_ctrl_pins_conf;
|
|
port_get_config_defaults(&ssd1963_ctrl_pins_conf);
|
|
ssd1963_ctrl_pins_conf.input_pull = PORT_PIN_PULL_NONE;
|
|
175e0: 705c strb r4, [r3, #1]
|
|
ssd1963_ctrl_pins_conf.direction = PORT_PIN_DIR_OUTPUT;
|
|
175e2: 701d strb r5, [r3, #0]
|
|
|
|
port_pin_set_config(SSD1963_TFT_nRST, &ssd1963_ctrl_pins_conf);
|
|
175e4: 4669 mov r1, sp
|
|
175e6: 2004 movs r0, #4
|
|
175e8: 4c10 ldr r4, [pc, #64] ; (1762c <p_gpio_init+0x68>)
|
|
175ea: 47a0 blx r4
|
|
port_pin_set_config(SSD1963_TFT_RSDC, &ssd1963_ctrl_pins_conf);
|
|
175ec: 4669 mov r1, sp
|
|
175ee: 2005 movs r0, #5
|
|
175f0: 47a0 blx r4
|
|
port_pin_set_config(SSD1963_TFT_nCS, &ssd1963_ctrl_pins_conf);
|
|
175f2: 4669 mov r1, sp
|
|
175f4: 2006 movs r0, #6
|
|
175f6: 47a0 blx r4
|
|
port_pin_set_config(SSD1963_TFT_WR, &ssd1963_ctrl_pins_conf);
|
|
175f8: 4669 mov r1, sp
|
|
175fa: 2007 movs r0, #7
|
|
175fc: 47a0 blx r4
|
|
port_pin_set_config(SSD1963_TFT_RD, &ssd1963_ctrl_pins_conf);
|
|
175fe: 4669 mov r1, sp
|
|
17600: 200a movs r0, #10
|
|
17602: 47a0 blx r4
|
|
port_base->OUTSET.reg = pin_mask;
|
|
17604: 4b0a ldr r3, [pc, #40] ; (17630 <p_gpio_init+0x6c>)
|
|
17606: 2210 movs r2, #16
|
|
17608: 619a str r2, [r3, #24]
|
|
1760a: 3210 adds r2, #16
|
|
1760c: 619a str r2, [r3, #24]
|
|
1760e: 3220 adds r2, #32
|
|
17610: 619a str r2, [r3, #24]
|
|
17612: 3240 adds r2, #64 ; 0x40
|
|
17614: 619a str r2, [r3, #24]
|
|
17616: 2280 movs r2, #128 ; 0x80
|
|
17618: 00d2 lsls r2, r2, #3
|
|
1761a: 619a str r2, [r3, #24]
|
|
port_pin_set_output_level(SSD1963_TFT_nRST, 1);
|
|
port_pin_set_output_level(SSD1963_TFT_RSDC, 1);
|
|
port_pin_set_output_level(SSD1963_TFT_nCS, 1);
|
|
port_pin_set_output_level(SSD1963_TFT_WR, 1);
|
|
port_pin_set_output_level(SSD1963_TFT_RD, 1);
|
|
}
|
|
1761c: b003 add sp, #12
|
|
1761e: bd30 pop {r4, r5, pc}
|
|
17620: 0000ffff .word 0x0000ffff
|
|
17624: 41004480 .word 0x41004480
|
|
17628: 00000d79 .word 0x00000d79
|
|
1762c: 00000d55 .word 0x00000d55
|
|
17630: 41004400 .word 0x41004400
|
|
|
|
00017634 <p_gpio_parallel_wr_word>:
|
|
|
|
|
|
void p_gpio_parallel_wr_word(PortGroup* group, uint32_t mask, uint32_t data)
|
|
{
|
|
17634: b5f0 push {r4, r5, r6, r7, lr}
|
|
17636: 46d6 mov lr, sl
|
|
17638: 464f mov r7, r9
|
|
1763a: 4646 mov r6, r8
|
|
1763c: b5c0 push {r6, r7, lr}
|
|
port->OUTSET.reg = (mask & level_mask);
|
|
1763e: 0013 movs r3, r2
|
|
17640: 400b ands r3, r1
|
|
17642: 6183 str r3, [r0, #24]
|
|
port->OUTCLR.reg = (mask & ~level_mask);
|
|
17644: 4391 bics r1, r2
|
|
17646: 6141 str r1, [r0, #20]
|
|
port_base->OUTCLR.reg = pin_mask;
|
|
17648: 4b16 ldr r3, [pc, #88] ; (176a4 <p_gpio_parallel_wr_word+0x70>)
|
|
1764a: 4699 mov r9, r3
|
|
1764c: 2380 movs r3, #128 ; 0x80
|
|
1764e: 469a mov sl, r3
|
|
17650: 464b mov r3, r9
|
|
17652: 4652 mov r2, sl
|
|
17654: 615a str r2, [r3, #20]
|
|
port_group_set_output_level(group, mask, data);
|
|
port_pin_set_output_level(SSD1963_TFT_WR, 0);
|
|
delay_us(1);
|
|
17656: 2000 movs r0, #0
|
|
17658: 4b13 ldr r3, [pc, #76] ; (176a8 <p_gpio_parallel_wr_word+0x74>)
|
|
1765a: 4698 mov r8, r3
|
|
1765c: 4798 blx r3
|
|
1765e: 0002 movs r2, r0
|
|
17660: 2300 movs r3, #0
|
|
17662: 4c12 ldr r4, [pc, #72] ; (176ac <p_gpio_parallel_wr_word+0x78>)
|
|
17664: 2500 movs r5, #0
|
|
17666: 1912 adds r2, r2, r4
|
|
17668: 416b adcs r3, r5
|
|
1766a: 0010 movs r0, r2
|
|
1766c: 0019 movs r1, r3
|
|
1766e: 4f10 ldr r7, [pc, #64] ; (176b0 <p_gpio_parallel_wr_word+0x7c>)
|
|
17670: 4a10 ldr r2, [pc, #64] ; (176b4 <p_gpio_parallel_wr_word+0x80>)
|
|
17672: 2300 movs r3, #0
|
|
17674: 47b8 blx r7
|
|
17676: 4e10 ldr r6, [pc, #64] ; (176b8 <p_gpio_parallel_wr_word+0x84>)
|
|
17678: 47b0 blx r6
|
|
port_base->OUTSET.reg = pin_mask;
|
|
1767a: 464b mov r3, r9
|
|
1767c: 4652 mov r2, sl
|
|
1767e: 619a str r2, [r3, #24]
|
|
port_pin_set_output_level(SSD1963_TFT_WR, 1);
|
|
delay_us(1);
|
|
17680: 2000 movs r0, #0
|
|
17682: 47c0 blx r8
|
|
17684: 0002 movs r2, r0
|
|
17686: 2300 movs r3, #0
|
|
17688: 1912 adds r2, r2, r4
|
|
1768a: 416b adcs r3, r5
|
|
1768c: 0010 movs r0, r2
|
|
1768e: 0019 movs r1, r3
|
|
17690: 4a08 ldr r2, [pc, #32] ; (176b4 <p_gpio_parallel_wr_word+0x80>)
|
|
17692: 2300 movs r3, #0
|
|
17694: 47b8 blx r7
|
|
17696: 47b0 blx r6
|
|
}
|
|
17698: bc1c pop {r2, r3, r4}
|
|
1769a: 4690 mov r8, r2
|
|
1769c: 4699 mov r9, r3
|
|
1769e: 46a2 mov sl, r4
|
|
176a0: bdf0 pop {r4, r5, r6, r7, pc}
|
|
176a2: 46c0 nop ; (mov r8, r8)
|
|
176a4: 41004400 .word 0x41004400
|
|
176a8: 000010cd .word 0x000010cd
|
|
176ac: 006acfbf .word 0x006acfbf
|
|
176b0: 00017b6d .word 0x00017b6d
|
|
176b4: 006acfc0 .word 0x006acfc0
|
|
176b8: 20000001 .word 0x20000001
|
|
|
|
000176bc <p_gpio_parallel_wr_arr>:
|
|
|
|
void p_gpio_parallel_wr_arr(PortGroup* group, uint32_t mask, uint32_t* data, uint32_t len)
|
|
{
|
|
176bc: b5f0 push {r4, r5, r6, r7, lr}
|
|
176be: b083 sub sp, #12
|
|
176c0: 9000 str r0, [sp, #0]
|
|
176c2: 9101 str r1, [sp, #4]
|
|
for(int ind = 0; ind < len; ind++)
|
|
176c4: 2b00 cmp r3, #0
|
|
176c6: d00a beq.n 176de <p_gpio_parallel_wr_arr+0x22>
|
|
176c8: 0015 movs r5, r2
|
|
176ca: 001f movs r7, r3
|
|
176cc: 2400 movs r4, #0
|
|
{
|
|
p_gpio_parallel_wr_word(group, mask, data[ind]);
|
|
176ce: 4e05 ldr r6, [pc, #20] ; (176e4 <p_gpio_parallel_wr_arr+0x28>)
|
|
176d0: cd04 ldmia r5!, {r2}
|
|
176d2: 9901 ldr r1, [sp, #4]
|
|
176d4: 9800 ldr r0, [sp, #0]
|
|
176d6: 47b0 blx r6
|
|
for(int ind = 0; ind < len; ind++)
|
|
176d8: 3401 adds r4, #1
|
|
176da: 42bc cmp r4, r7
|
|
176dc: d1f8 bne.n 176d0 <p_gpio_parallel_wr_arr+0x14>
|
|
}
|
|
}
|
|
176de: b003 add sp, #12
|
|
176e0: bdf0 pop {r4, r5, r6, r7, pc}
|
|
176e2: 46c0 nop ; (mov r8, r8)
|
|
176e4: 00017635 .word 0x00017635
|
|
|
|
000176e8 <p_i2c_init>:
|
|
#include "p_i2c.h"
|
|
|
|
void p_i2c_init(void)
|
|
{
|
|
|
|
176e8: 4770 bx lr
|
|
...
|
|
|
|
000176ec <p_printf>:
|
|
|
|
p_printf("Hello WOrld\n");
|
|
}
|
|
|
|
void p_printf(const char* str, ...)
|
|
{
|
|
176ec: b40f push {r0, r1, r2, r3}
|
|
176ee: b530 push {r4, r5, lr}
|
|
176f0: b0c3 sub sp, #268 ; 0x10c
|
|
176f2: ac46 add r4, sp, #280 ; 0x118
|
|
176f4: cc20 ldmia r4!, {r5}
|
|
volatile uint8_t pprint_buffer[ORACLE_DEBUG_PRINT_BUFF_SIZE + 1];
|
|
memset(pprint_buffer, '\0', ORACLE_DEBUG_PRINT_BUFF_SIZE + 1);
|
|
176f6: 2202 movs r2, #2
|
|
176f8: 32ff adds r2, #255 ; 0xff
|
|
176fa: 2100 movs r1, #0
|
|
176fc: a801 add r0, sp, #4
|
|
176fe: 4b0f ldr r3, [pc, #60] ; (1773c <p_printf+0x50>)
|
|
17700: 4798 blx r3
|
|
va_list args;
|
|
va_start(args, str);
|
|
17702: 9400 str r4, [sp, #0]
|
|
vsprintf(pprint_buffer, str, args);
|
|
17704: 0022 movs r2, r4
|
|
17706: 0029 movs r1, r5
|
|
17708: a801 add r0, sp, #4
|
|
1770a: 4b0d ldr r3, [pc, #52] ; (17740 <p_printf+0x54>)
|
|
1770c: 4798 blx r3
|
|
va_end(args);
|
|
uint16_t strsize = (uint16_t)strlen(pprint_buffer);
|
|
1770e: a801 add r0, sp, #4
|
|
17710: 4b0c ldr r3, [pc, #48] ; (17744 <p_printf+0x58>)
|
|
17712: 4798 blx r3
|
|
17714: b282 uxth r2, r0
|
|
if(strsize > ORACLE_DEBUG_PRINT_BUFF_SIZE)
|
|
17716: 2380 movs r3, #128 ; 0x80
|
|
17718: 005b lsls r3, r3, #1
|
|
1771a: 429a cmp r2, r3
|
|
1771c: d904 bls.n 17728 <p_printf+0x3c>
|
|
// return error
|
|
return;
|
|
}
|
|
usart_write_buffer_wait(&p_debug_inst, pprint_buffer, strsize);
|
|
usart_read_job(&p_debug_inst, &rx_char);
|
|
}
|
|
1771e: b043 add sp, #268 ; 0x10c
|
|
17720: bc30 pop {r4, r5}
|
|
17722: bc08 pop {r3}
|
|
17724: b004 add sp, #16
|
|
17726: 4718 bx r3
|
|
usart_write_buffer_wait(&p_debug_inst, pprint_buffer, strsize);
|
|
17728: 4c07 ldr r4, [pc, #28] ; (17748 <p_printf+0x5c>)
|
|
1772a: a901 add r1, sp, #4
|
|
1772c: 0020 movs r0, r4
|
|
1772e: 4b07 ldr r3, [pc, #28] ; (1774c <p_printf+0x60>)
|
|
17730: 4798 blx r3
|
|
usart_read_job(&p_debug_inst, &rx_char);
|
|
17732: 4907 ldr r1, [pc, #28] ; (17750 <p_printf+0x64>)
|
|
17734: 0020 movs r0, r4
|
|
17736: 4b07 ldr r3, [pc, #28] ; (17754 <p_printf+0x68>)
|
|
17738: 4798 blx r3
|
|
1773a: e7f0 b.n 1771e <p_printf+0x32>
|
|
1773c: 00017e4d .word 0x00017e4d
|
|
17740: 00017ec1 .word 0x00017ec1
|
|
17744: 00017e81 .word 0x00017e81
|
|
17748: 20004c58 .word 0x20004c58
|
|
1774c: 00000915 .word 0x00000915
|
|
17750: 20004e30 .word 0x20004e30
|
|
17754: 00000a39 .word 0x00000a39
|
|
|
|
00017758 <p_usart_init>:
|
|
{
|
|
17758: b570 push {r4, r5, r6, lr}
|
|
1775a: b090 sub sp, #64 ; 0x40
|
|
{
|
|
/* Sanity check arguments */
|
|
Assert(config);
|
|
|
|
/* Set default config in the config struct */
|
|
config->data_order = USART_DATAORDER_LSB;
|
|
1775c: 2380 movs r3, #128 ; 0x80
|
|
1775e: 05db lsls r3, r3, #23
|
|
17760: 9300 str r3, [sp, #0]
|
|
config->transfer_mode = USART_TRANSFER_ASYNCHRONOUSLY;
|
|
17762: 2300 movs r3, #0
|
|
17764: 9301 str r3, [sp, #4]
|
|
config->parity = USART_PARITY_NONE;
|
|
17766: 22ff movs r2, #255 ; 0xff
|
|
17768: 4669 mov r1, sp
|
|
1776a: 810a strh r2, [r1, #8]
|
|
config->stopbits = USART_STOPBITS_1;
|
|
1776c: 2200 movs r2, #0
|
|
1776e: 728b strb r3, [r1, #10]
|
|
config->character_size = USART_CHARACTER_SIZE_8BIT;
|
|
17770: 72cb strb r3, [r1, #11]
|
|
config->baudrate = 9600;
|
|
config->receiver_enable = true;
|
|
17772: 2401 movs r4, #1
|
|
17774: 2124 movs r1, #36 ; 0x24
|
|
17776: 4668 mov r0, sp
|
|
17778: 5444 strb r4, [r0, r1]
|
|
config->transmitter_enable = true;
|
|
1777a: 3101 adds r1, #1
|
|
1777c: 5444 strb r4, [r0, r1]
|
|
config->clock_polarity_inverted = false;
|
|
1777e: 3101 adds r1, #1
|
|
17780: 5443 strb r3, [r0, r1]
|
|
config->use_external_clock = false;
|
|
17782: 3101 adds r1, #1
|
|
17784: 5443 strb r3, [r0, r1]
|
|
config->ext_clock_freq = 0;
|
|
17786: 930a str r3, [sp, #40] ; 0x28
|
|
config->mux_setting = USART_RX_1_TX_2_XCK_3;
|
|
config->run_in_standby = false;
|
|
17788: 3105 adds r1, #5
|
|
1778a: 5443 strb r3, [r0, r1]
|
|
config->generator_source = GCLK_GENERATOR_0;
|
|
1778c: 3101 adds r1, #1
|
|
1778e: 5443 strb r3, [r0, r1]
|
|
config->pinmux_pad0 = PINMUX_DEFAULT;
|
|
config->pinmux_pad1 = PINMUX_DEFAULT;
|
|
config->pinmux_pad2 = PINMUX_DEFAULT;
|
|
config->pinmux_pad3 = PINMUX_DEFAULT;
|
|
#ifdef FEATURE_USART_OVER_SAMPLE
|
|
config->sample_adjustment = USART_SAMPLE_ADJUSTMENT_7_8_9;
|
|
17790: 9305 str r3, [sp, #20]
|
|
config->sample_rate = USART_SAMPLE_RATE_16X_ARITHMETIC;
|
|
17792: 8203 strh r3, [r0, #16]
|
|
#endif
|
|
#ifdef FEATURE_USART_LIN_SLAVE
|
|
config->lin_slave_enable = false;
|
|
17794: 76c3 strb r3, [r0, #27]
|
|
config->lin_header_delay = LIN_MASTER_HEADER_DELAY_0;
|
|
config->lin_break_length = LIN_MASTER_BREAK_LENGTH_13_BIT;
|
|
#endif
|
|
|
|
#ifdef FEATURE_USART_IMMEDIATE_BUFFER_OVERFLOW_NOTIFICATION
|
|
config->immediate_buffer_overflow_notification = false;
|
|
17796: 7602 strb r2, [r0, #24]
|
|
#endif
|
|
#ifdef FEATURE_USART_START_FRAME_DECTION
|
|
config->start_frame_detection_enable = false;
|
|
17798: 7702 strb r2, [r0, #28]
|
|
#endif
|
|
#ifdef FEATURE_USART_IRDA
|
|
config->encoding_format_enable = false;
|
|
1779a: 7642 strb r2, [r0, #25]
|
|
config->receive_pulse_length = 19;
|
|
1779c: 2313 movs r3, #19
|
|
1779e: 7683 strb r3, [r0, #26]
|
|
config->iso7816_config.inhibit_nack = ISO7816_INHIBIT_NACK_DISABLE;
|
|
config->iso7816_config.successive_recv_nack = ISO7816_SUCCESSIVE_RECV_NACK_DISABLE;
|
|
config->iso7816_config.max_iterations = 7;
|
|
#endif
|
|
#ifdef FEATURE_USART_COLLISION_DECTION
|
|
config->collision_detection_enable = false;
|
|
177a0: 7742 strb r2, [r0, #29]
|
|
p_debug_conf.baudrate = USART_DEBUG_BAUDRATE;
|
|
177a2: 23e1 movs r3, #225 ; 0xe1
|
|
177a4: 025b lsls r3, r3, #9
|
|
177a6: 9308 str r3, [sp, #32]
|
|
p_debug_conf.pinmux_pad0 = USART_DEBUG_PINMUX_PAD0;
|
|
177a8: 4b18 ldr r3, [pc, #96] ; (1780c <p_usart_init+0xb4>)
|
|
177aa: 930c str r3, [sp, #48] ; 0x30
|
|
p_debug_conf.pinmux_pad1 = USART_DEBUG_PINMUX_PAD1;
|
|
177ac: 4b18 ldr r3, [pc, #96] ; (17810 <p_usart_init+0xb8>)
|
|
177ae: 930d str r3, [sp, #52] ; 0x34
|
|
p_debug_conf.pinmux_pad2 = USART_DEBUG_PINMUX_PAD2;
|
|
177b0: 2301 movs r3, #1
|
|
177b2: 425b negs r3, r3
|
|
177b4: 930e str r3, [sp, #56] ; 0x38
|
|
p_debug_conf.pinmux_pad3 = USART_DEBUG_PINMUX_PAD3;
|
|
177b6: 930f str r3, [sp, #60] ; 0x3c
|
|
p_debug_conf.mux_setting = USART_DEBUG_MUX_SETTING;
|
|
177b8: 2380 movs r3, #128 ; 0x80
|
|
177ba: 035b lsls r3, r3, #13
|
|
177bc: 9303 str r3, [sp, #12]
|
|
usart_init(&p_debug_inst, USART_DEBUG_MODULE, &p_debug_conf);
|
|
177be: 4e15 ldr r6, [pc, #84] ; (17814 <p_usart_init+0xbc>)
|
|
177c0: 466a mov r2, sp
|
|
177c2: 4915 ldr r1, [pc, #84] ; (17818 <p_usart_init+0xc0>)
|
|
177c4: 0030 movs r0, r6
|
|
177c6: 4b15 ldr r3, [pc, #84] ; (1781c <p_usart_init+0xc4>)
|
|
177c8: 4798 blx r3
|
|
/* Sanity check arguments */
|
|
Assert(module);
|
|
Assert(module->hw);
|
|
|
|
/* Get a pointer to the hardware module instance */
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
177ca: 6835 ldr r5, [r6, #0]
|
|
|
|
#if USART_CALLBACK_MODE == true
|
|
/* Enable Global interrupt for module */
|
|
system_interrupt_enable(_sercom_get_interrupt_vector(module->hw));
|
|
177cc: 0028 movs r0, r5
|
|
177ce: 4b14 ldr r3, [pc, #80] ; (17820 <p_usart_init+0xc8>)
|
|
177d0: 4798 blx r3
|
|
* \param[in] vector Interrupt vector to enable
|
|
*/
|
|
static inline void system_interrupt_enable(
|
|
const enum system_interrupt_vector vector)
|
|
{
|
|
NVIC->ISER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
|
|
177d2: 231f movs r3, #31
|
|
177d4: 4018 ands r0, r3
|
|
177d6: 4084 lsls r4, r0
|
|
177d8: 4b12 ldr r3, [pc, #72] ; (17824 <p_usart_init+0xcc>)
|
|
177da: 601c str r4, [r3, #0]
|
|
SercomUsart *const usart_hw = &(module->hw->USART);
|
|
177dc: 6832 ldr r2, [r6, #0]
|
|
return (usart_hw->SYNCBUSY.reg);
|
|
177de: 69d3 ldr r3, [r2, #28]
|
|
while (usart_is_syncing(module)) {
|
|
177e0: 2b00 cmp r3, #0
|
|
177e2: d1fc bne.n 177de <p_usart_init+0x86>
|
|
|
|
/* Wait until synchronization is complete */
|
|
_usart_wait_for_sync(module);
|
|
|
|
/* Enable USART module */
|
|
usart_hw->CTRLA.reg |= SERCOM_USART_CTRLA_ENABLE;
|
|
177e4: 682b ldr r3, [r5, #0]
|
|
177e6: 2202 movs r2, #2
|
|
177e8: 4313 orrs r3, r2
|
|
177ea: 602b str r3, [r5, #0]
|
|
usart_register_callback(&p_debug_inst, p_debug_rx_cb, USART_CALLBACK_BUFFER_RECEIVED);
|
|
177ec: 4c09 ldr r4, [pc, #36] ; (17814 <p_usart_init+0xbc>)
|
|
177ee: 3a01 subs r2, #1
|
|
177f0: 490d ldr r1, [pc, #52] ; (17828 <p_usart_init+0xd0>)
|
|
177f2: 0020 movs r0, r4
|
|
177f4: 4b0d ldr r3, [pc, #52] ; (1782c <p_usart_init+0xd4>)
|
|
177f6: 4798 blx r3
|
|
{
|
|
/* Sanity check arguments */
|
|
Assert(module);
|
|
|
|
/* Enable callback */
|
|
module->callback_enable_mask |= (1 << callback_type);
|
|
177f8: 2231 movs r2, #49 ; 0x31
|
|
177fa: 5ca3 ldrb r3, [r4, r2]
|
|
177fc: 2102 movs r1, #2
|
|
177fe: 430b orrs r3, r1
|
|
17800: 54a3 strb r3, [r4, r2]
|
|
p_printf("Hello WOrld\n");
|
|
17802: 480b ldr r0, [pc, #44] ; (17830 <p_usart_init+0xd8>)
|
|
17804: 4b0b ldr r3, [pc, #44] ; (17834 <p_usart_init+0xdc>)
|
|
17806: 4798 blx r3
|
|
}
|
|
17808: b010 add sp, #64 ; 0x40
|
|
1780a: bd70 pop {r4, r5, r6, pc}
|
|
1780c: 00160002 .word 0x00160002
|
|
17810: 00170002 .word 0x00170002
|
|
17814: 20004c58 .word 0x20004c58
|
|
17818: 42001400 .word 0x42001400
|
|
1781c: 000005b1 .word 0x000005b1
|
|
17820: 00000c1d .word 0x00000c1d
|
|
17824: e000e100 .word 0xe000e100
|
|
17828: 00017839 .word 0x00017839
|
|
1782c: 00000a21 .word 0x00000a21
|
|
17830: 0001c93c .word 0x0001c93c
|
|
17834: 000176ed .word 0x000176ed
|
|
|
|
00017838 <p_debug_rx_cb>:
|
|
{
|
|
17838: b510 push {r4, lr}
|
|
p_printf("%c", (char)rx_char);
|
|
1783a: 4b03 ldr r3, [pc, #12] ; (17848 <p_debug_rx_cb+0x10>)
|
|
1783c: 8819 ldrh r1, [r3, #0]
|
|
1783e: b2c9 uxtb r1, r1
|
|
17840: 4802 ldr r0, [pc, #8] ; (1784c <p_debug_rx_cb+0x14>)
|
|
17842: 4b03 ldr r3, [pc, #12] ; (17850 <p_debug_rx_cb+0x18>)
|
|
17844: 4798 blx r3
|
|
}
|
|
17846: bd10 pop {r4, pc}
|
|
17848: 20004e30 .word 0x20004e30
|
|
1784c: 0001c938 .word 0x0001c938
|
|
17850: 000176ed .word 0x000176ed
|
|
|
|
00017854 <p_debug_start_service>:
|
|
|
|
void p_debug_start_service(void)
|
|
{
|
|
17854: b510 push {r4, lr}
|
|
usart_read_job(&p_debug_inst, &rx_char);
|
|
17856: 4902 ldr r1, [pc, #8] ; (17860 <p_debug_start_service+0xc>)
|
|
17858: 4802 ldr r0, [pc, #8] ; (17864 <p_debug_start_service+0x10>)
|
|
1785a: 4b03 ldr r3, [pc, #12] ; (17868 <p_debug_start_service+0x14>)
|
|
1785c: 4798 blx r3
|
|
}
|
|
1785e: bd10 pop {r4, pc}
|
|
17860: 20004e30 .word 0x20004e30
|
|
17864: 20004c58 .word 0x20004c58
|
|
17868: 00000a39 .word 0x00000a39
|
|
|
|
0001786c <main>:
|
|
/*
|
|
* Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
|
|
*/
|
|
#include "oracle.h"
|
|
int main (void)
|
|
{
|
|
1786c: b510 push {r4, lr}
|
|
oracle_init();
|
|
1786e: 4b02 ldr r3, [pc, #8] ; (17878 <main+0xc>)
|
|
17870: 4798 blx r3
|
|
|
|
for(;;)
|
|
{
|
|
oracle_service();
|
|
17872: 4c02 ldr r4, [pc, #8] ; (1787c <main+0x10>)
|
|
17874: 47a0 blx r4
|
|
17876: e7fd b.n 17874 <main+0x8>
|
|
17878: 00000169 .word 0x00000169
|
|
1787c: 000001fd .word 0x000001fd
|
|
|
|
00017880 <__udivsi3>:
|
|
17880: 2200 movs r2, #0
|
|
17882: 0843 lsrs r3, r0, #1
|
|
17884: 428b cmp r3, r1
|
|
17886: d374 bcc.n 17972 <__udivsi3+0xf2>
|
|
17888: 0903 lsrs r3, r0, #4
|
|
1788a: 428b cmp r3, r1
|
|
1788c: d35f bcc.n 1794e <__udivsi3+0xce>
|
|
1788e: 0a03 lsrs r3, r0, #8
|
|
17890: 428b cmp r3, r1
|
|
17892: d344 bcc.n 1791e <__udivsi3+0x9e>
|
|
17894: 0b03 lsrs r3, r0, #12
|
|
17896: 428b cmp r3, r1
|
|
17898: d328 bcc.n 178ec <__udivsi3+0x6c>
|
|
1789a: 0c03 lsrs r3, r0, #16
|
|
1789c: 428b cmp r3, r1
|
|
1789e: d30d bcc.n 178bc <__udivsi3+0x3c>
|
|
178a0: 22ff movs r2, #255 ; 0xff
|
|
178a2: 0209 lsls r1, r1, #8
|
|
178a4: ba12 rev r2, r2
|
|
178a6: 0c03 lsrs r3, r0, #16
|
|
178a8: 428b cmp r3, r1
|
|
178aa: d302 bcc.n 178b2 <__udivsi3+0x32>
|
|
178ac: 1212 asrs r2, r2, #8
|
|
178ae: 0209 lsls r1, r1, #8
|
|
178b0: d065 beq.n 1797e <__udivsi3+0xfe>
|
|
178b2: 0b03 lsrs r3, r0, #12
|
|
178b4: 428b cmp r3, r1
|
|
178b6: d319 bcc.n 178ec <__udivsi3+0x6c>
|
|
178b8: e000 b.n 178bc <__udivsi3+0x3c>
|
|
178ba: 0a09 lsrs r1, r1, #8
|
|
178bc: 0bc3 lsrs r3, r0, #15
|
|
178be: 428b cmp r3, r1
|
|
178c0: d301 bcc.n 178c6 <__udivsi3+0x46>
|
|
178c2: 03cb lsls r3, r1, #15
|
|
178c4: 1ac0 subs r0, r0, r3
|
|
178c6: 4152 adcs r2, r2
|
|
178c8: 0b83 lsrs r3, r0, #14
|
|
178ca: 428b cmp r3, r1
|
|
178cc: d301 bcc.n 178d2 <__udivsi3+0x52>
|
|
178ce: 038b lsls r3, r1, #14
|
|
178d0: 1ac0 subs r0, r0, r3
|
|
178d2: 4152 adcs r2, r2
|
|
178d4: 0b43 lsrs r3, r0, #13
|
|
178d6: 428b cmp r3, r1
|
|
178d8: d301 bcc.n 178de <__udivsi3+0x5e>
|
|
178da: 034b lsls r3, r1, #13
|
|
178dc: 1ac0 subs r0, r0, r3
|
|
178de: 4152 adcs r2, r2
|
|
178e0: 0b03 lsrs r3, r0, #12
|
|
178e2: 428b cmp r3, r1
|
|
178e4: d301 bcc.n 178ea <__udivsi3+0x6a>
|
|
178e6: 030b lsls r3, r1, #12
|
|
178e8: 1ac0 subs r0, r0, r3
|
|
178ea: 4152 adcs r2, r2
|
|
178ec: 0ac3 lsrs r3, r0, #11
|
|
178ee: 428b cmp r3, r1
|
|
178f0: d301 bcc.n 178f6 <__udivsi3+0x76>
|
|
178f2: 02cb lsls r3, r1, #11
|
|
178f4: 1ac0 subs r0, r0, r3
|
|
178f6: 4152 adcs r2, r2
|
|
178f8: 0a83 lsrs r3, r0, #10
|
|
178fa: 428b cmp r3, r1
|
|
178fc: d301 bcc.n 17902 <__udivsi3+0x82>
|
|
178fe: 028b lsls r3, r1, #10
|
|
17900: 1ac0 subs r0, r0, r3
|
|
17902: 4152 adcs r2, r2
|
|
17904: 0a43 lsrs r3, r0, #9
|
|
17906: 428b cmp r3, r1
|
|
17908: d301 bcc.n 1790e <__udivsi3+0x8e>
|
|
1790a: 024b lsls r3, r1, #9
|
|
1790c: 1ac0 subs r0, r0, r3
|
|
1790e: 4152 adcs r2, r2
|
|
17910: 0a03 lsrs r3, r0, #8
|
|
17912: 428b cmp r3, r1
|
|
17914: d301 bcc.n 1791a <__udivsi3+0x9a>
|
|
17916: 020b lsls r3, r1, #8
|
|
17918: 1ac0 subs r0, r0, r3
|
|
1791a: 4152 adcs r2, r2
|
|
1791c: d2cd bcs.n 178ba <__udivsi3+0x3a>
|
|
1791e: 09c3 lsrs r3, r0, #7
|
|
17920: 428b cmp r3, r1
|
|
17922: d301 bcc.n 17928 <__udivsi3+0xa8>
|
|
17924: 01cb lsls r3, r1, #7
|
|
17926: 1ac0 subs r0, r0, r3
|
|
17928: 4152 adcs r2, r2
|
|
1792a: 0983 lsrs r3, r0, #6
|
|
1792c: 428b cmp r3, r1
|
|
1792e: d301 bcc.n 17934 <__udivsi3+0xb4>
|
|
17930: 018b lsls r3, r1, #6
|
|
17932: 1ac0 subs r0, r0, r3
|
|
17934: 4152 adcs r2, r2
|
|
17936: 0943 lsrs r3, r0, #5
|
|
17938: 428b cmp r3, r1
|
|
1793a: d301 bcc.n 17940 <__udivsi3+0xc0>
|
|
1793c: 014b lsls r3, r1, #5
|
|
1793e: 1ac0 subs r0, r0, r3
|
|
17940: 4152 adcs r2, r2
|
|
17942: 0903 lsrs r3, r0, #4
|
|
17944: 428b cmp r3, r1
|
|
17946: d301 bcc.n 1794c <__udivsi3+0xcc>
|
|
17948: 010b lsls r3, r1, #4
|
|
1794a: 1ac0 subs r0, r0, r3
|
|
1794c: 4152 adcs r2, r2
|
|
1794e: 08c3 lsrs r3, r0, #3
|
|
17950: 428b cmp r3, r1
|
|
17952: d301 bcc.n 17958 <__udivsi3+0xd8>
|
|
17954: 00cb lsls r3, r1, #3
|
|
17956: 1ac0 subs r0, r0, r3
|
|
17958: 4152 adcs r2, r2
|
|
1795a: 0883 lsrs r3, r0, #2
|
|
1795c: 428b cmp r3, r1
|
|
1795e: d301 bcc.n 17964 <__udivsi3+0xe4>
|
|
17960: 008b lsls r3, r1, #2
|
|
17962: 1ac0 subs r0, r0, r3
|
|
17964: 4152 adcs r2, r2
|
|
17966: 0843 lsrs r3, r0, #1
|
|
17968: 428b cmp r3, r1
|
|
1796a: d301 bcc.n 17970 <__udivsi3+0xf0>
|
|
1796c: 004b lsls r3, r1, #1
|
|
1796e: 1ac0 subs r0, r0, r3
|
|
17970: 4152 adcs r2, r2
|
|
17972: 1a41 subs r1, r0, r1
|
|
17974: d200 bcs.n 17978 <__udivsi3+0xf8>
|
|
17976: 4601 mov r1, r0
|
|
17978: 4152 adcs r2, r2
|
|
1797a: 4610 mov r0, r2
|
|
1797c: 4770 bx lr
|
|
1797e: e7ff b.n 17980 <__udivsi3+0x100>
|
|
17980: b501 push {r0, lr}
|
|
17982: 2000 movs r0, #0
|
|
17984: f000 f8f0 bl 17b68 <__aeabi_idiv0>
|
|
17988: bd02 pop {r1, pc}
|
|
1798a: 46c0 nop ; (mov r8, r8)
|
|
|
|
0001798c <__aeabi_uidivmod>:
|
|
1798c: 2900 cmp r1, #0
|
|
1798e: d0f7 beq.n 17980 <__udivsi3+0x100>
|
|
17990: e776 b.n 17880 <__udivsi3>
|
|
17992: 4770 bx lr
|
|
|
|
00017994 <__divsi3>:
|
|
17994: 4603 mov r3, r0
|
|
17996: 430b orrs r3, r1
|
|
17998: d47f bmi.n 17a9a <__divsi3+0x106>
|
|
1799a: 2200 movs r2, #0
|
|
1799c: 0843 lsrs r3, r0, #1
|
|
1799e: 428b cmp r3, r1
|
|
179a0: d374 bcc.n 17a8c <__divsi3+0xf8>
|
|
179a2: 0903 lsrs r3, r0, #4
|
|
179a4: 428b cmp r3, r1
|
|
179a6: d35f bcc.n 17a68 <__divsi3+0xd4>
|
|
179a8: 0a03 lsrs r3, r0, #8
|
|
179aa: 428b cmp r3, r1
|
|
179ac: d344 bcc.n 17a38 <__divsi3+0xa4>
|
|
179ae: 0b03 lsrs r3, r0, #12
|
|
179b0: 428b cmp r3, r1
|
|
179b2: d328 bcc.n 17a06 <__divsi3+0x72>
|
|
179b4: 0c03 lsrs r3, r0, #16
|
|
179b6: 428b cmp r3, r1
|
|
179b8: d30d bcc.n 179d6 <__divsi3+0x42>
|
|
179ba: 22ff movs r2, #255 ; 0xff
|
|
179bc: 0209 lsls r1, r1, #8
|
|
179be: ba12 rev r2, r2
|
|
179c0: 0c03 lsrs r3, r0, #16
|
|
179c2: 428b cmp r3, r1
|
|
179c4: d302 bcc.n 179cc <__divsi3+0x38>
|
|
179c6: 1212 asrs r2, r2, #8
|
|
179c8: 0209 lsls r1, r1, #8
|
|
179ca: d065 beq.n 17a98 <__divsi3+0x104>
|
|
179cc: 0b03 lsrs r3, r0, #12
|
|
179ce: 428b cmp r3, r1
|
|
179d0: d319 bcc.n 17a06 <__divsi3+0x72>
|
|
179d2: e000 b.n 179d6 <__divsi3+0x42>
|
|
179d4: 0a09 lsrs r1, r1, #8
|
|
179d6: 0bc3 lsrs r3, r0, #15
|
|
179d8: 428b cmp r3, r1
|
|
179da: d301 bcc.n 179e0 <__divsi3+0x4c>
|
|
179dc: 03cb lsls r3, r1, #15
|
|
179de: 1ac0 subs r0, r0, r3
|
|
179e0: 4152 adcs r2, r2
|
|
179e2: 0b83 lsrs r3, r0, #14
|
|
179e4: 428b cmp r3, r1
|
|
179e6: d301 bcc.n 179ec <__divsi3+0x58>
|
|
179e8: 038b lsls r3, r1, #14
|
|
179ea: 1ac0 subs r0, r0, r3
|
|
179ec: 4152 adcs r2, r2
|
|
179ee: 0b43 lsrs r3, r0, #13
|
|
179f0: 428b cmp r3, r1
|
|
179f2: d301 bcc.n 179f8 <__divsi3+0x64>
|
|
179f4: 034b lsls r3, r1, #13
|
|
179f6: 1ac0 subs r0, r0, r3
|
|
179f8: 4152 adcs r2, r2
|
|
179fa: 0b03 lsrs r3, r0, #12
|
|
179fc: 428b cmp r3, r1
|
|
179fe: d301 bcc.n 17a04 <__divsi3+0x70>
|
|
17a00: 030b lsls r3, r1, #12
|
|
17a02: 1ac0 subs r0, r0, r3
|
|
17a04: 4152 adcs r2, r2
|
|
17a06: 0ac3 lsrs r3, r0, #11
|
|
17a08: 428b cmp r3, r1
|
|
17a0a: d301 bcc.n 17a10 <__divsi3+0x7c>
|
|
17a0c: 02cb lsls r3, r1, #11
|
|
17a0e: 1ac0 subs r0, r0, r3
|
|
17a10: 4152 adcs r2, r2
|
|
17a12: 0a83 lsrs r3, r0, #10
|
|
17a14: 428b cmp r3, r1
|
|
17a16: d301 bcc.n 17a1c <__divsi3+0x88>
|
|
17a18: 028b lsls r3, r1, #10
|
|
17a1a: 1ac0 subs r0, r0, r3
|
|
17a1c: 4152 adcs r2, r2
|
|
17a1e: 0a43 lsrs r3, r0, #9
|
|
17a20: 428b cmp r3, r1
|
|
17a22: d301 bcc.n 17a28 <__divsi3+0x94>
|
|
17a24: 024b lsls r3, r1, #9
|
|
17a26: 1ac0 subs r0, r0, r3
|
|
17a28: 4152 adcs r2, r2
|
|
17a2a: 0a03 lsrs r3, r0, #8
|
|
17a2c: 428b cmp r3, r1
|
|
17a2e: d301 bcc.n 17a34 <__divsi3+0xa0>
|
|
17a30: 020b lsls r3, r1, #8
|
|
17a32: 1ac0 subs r0, r0, r3
|
|
17a34: 4152 adcs r2, r2
|
|
17a36: d2cd bcs.n 179d4 <__divsi3+0x40>
|
|
17a38: 09c3 lsrs r3, r0, #7
|
|
17a3a: 428b cmp r3, r1
|
|
17a3c: d301 bcc.n 17a42 <__divsi3+0xae>
|
|
17a3e: 01cb lsls r3, r1, #7
|
|
17a40: 1ac0 subs r0, r0, r3
|
|
17a42: 4152 adcs r2, r2
|
|
17a44: 0983 lsrs r3, r0, #6
|
|
17a46: 428b cmp r3, r1
|
|
17a48: d301 bcc.n 17a4e <__divsi3+0xba>
|
|
17a4a: 018b lsls r3, r1, #6
|
|
17a4c: 1ac0 subs r0, r0, r3
|
|
17a4e: 4152 adcs r2, r2
|
|
17a50: 0943 lsrs r3, r0, #5
|
|
17a52: 428b cmp r3, r1
|
|
17a54: d301 bcc.n 17a5a <__divsi3+0xc6>
|
|
17a56: 014b lsls r3, r1, #5
|
|
17a58: 1ac0 subs r0, r0, r3
|
|
17a5a: 4152 adcs r2, r2
|
|
17a5c: 0903 lsrs r3, r0, #4
|
|
17a5e: 428b cmp r3, r1
|
|
17a60: d301 bcc.n 17a66 <__divsi3+0xd2>
|
|
17a62: 010b lsls r3, r1, #4
|
|
17a64: 1ac0 subs r0, r0, r3
|
|
17a66: 4152 adcs r2, r2
|
|
17a68: 08c3 lsrs r3, r0, #3
|
|
17a6a: 428b cmp r3, r1
|
|
17a6c: d301 bcc.n 17a72 <__divsi3+0xde>
|
|
17a6e: 00cb lsls r3, r1, #3
|
|
17a70: 1ac0 subs r0, r0, r3
|
|
17a72: 4152 adcs r2, r2
|
|
17a74: 0883 lsrs r3, r0, #2
|
|
17a76: 428b cmp r3, r1
|
|
17a78: d301 bcc.n 17a7e <__divsi3+0xea>
|
|
17a7a: 008b lsls r3, r1, #2
|
|
17a7c: 1ac0 subs r0, r0, r3
|
|
17a7e: 4152 adcs r2, r2
|
|
17a80: 0843 lsrs r3, r0, #1
|
|
17a82: 428b cmp r3, r1
|
|
17a84: d301 bcc.n 17a8a <__divsi3+0xf6>
|
|
17a86: 004b lsls r3, r1, #1
|
|
17a88: 1ac0 subs r0, r0, r3
|
|
17a8a: 4152 adcs r2, r2
|
|
17a8c: 1a41 subs r1, r0, r1
|
|
17a8e: d200 bcs.n 17a92 <__divsi3+0xfe>
|
|
17a90: 4601 mov r1, r0
|
|
17a92: 4152 adcs r2, r2
|
|
17a94: 4610 mov r0, r2
|
|
17a96: 4770 bx lr
|
|
17a98: e05d b.n 17b56 <__divsi3+0x1c2>
|
|
17a9a: 0fca lsrs r2, r1, #31
|
|
17a9c: d000 beq.n 17aa0 <__divsi3+0x10c>
|
|
17a9e: 4249 negs r1, r1
|
|
17aa0: 1003 asrs r3, r0, #32
|
|
17aa2: d300 bcc.n 17aa6 <__divsi3+0x112>
|
|
17aa4: 4240 negs r0, r0
|
|
17aa6: 4053 eors r3, r2
|
|
17aa8: 2200 movs r2, #0
|
|
17aaa: 469c mov ip, r3
|
|
17aac: 0903 lsrs r3, r0, #4
|
|
17aae: 428b cmp r3, r1
|
|
17ab0: d32d bcc.n 17b0e <__divsi3+0x17a>
|
|
17ab2: 0a03 lsrs r3, r0, #8
|
|
17ab4: 428b cmp r3, r1
|
|
17ab6: d312 bcc.n 17ade <__divsi3+0x14a>
|
|
17ab8: 22fc movs r2, #252 ; 0xfc
|
|
17aba: 0189 lsls r1, r1, #6
|
|
17abc: ba12 rev r2, r2
|
|
17abe: 0a03 lsrs r3, r0, #8
|
|
17ac0: 428b cmp r3, r1
|
|
17ac2: d30c bcc.n 17ade <__divsi3+0x14a>
|
|
17ac4: 0189 lsls r1, r1, #6
|
|
17ac6: 1192 asrs r2, r2, #6
|
|
17ac8: 428b cmp r3, r1
|
|
17aca: d308 bcc.n 17ade <__divsi3+0x14a>
|
|
17acc: 0189 lsls r1, r1, #6
|
|
17ace: 1192 asrs r2, r2, #6
|
|
17ad0: 428b cmp r3, r1
|
|
17ad2: d304 bcc.n 17ade <__divsi3+0x14a>
|
|
17ad4: 0189 lsls r1, r1, #6
|
|
17ad6: d03a beq.n 17b4e <__divsi3+0x1ba>
|
|
17ad8: 1192 asrs r2, r2, #6
|
|
17ada: e000 b.n 17ade <__divsi3+0x14a>
|
|
17adc: 0989 lsrs r1, r1, #6
|
|
17ade: 09c3 lsrs r3, r0, #7
|
|
17ae0: 428b cmp r3, r1
|
|
17ae2: d301 bcc.n 17ae8 <__divsi3+0x154>
|
|
17ae4: 01cb lsls r3, r1, #7
|
|
17ae6: 1ac0 subs r0, r0, r3
|
|
17ae8: 4152 adcs r2, r2
|
|
17aea: 0983 lsrs r3, r0, #6
|
|
17aec: 428b cmp r3, r1
|
|
17aee: d301 bcc.n 17af4 <__divsi3+0x160>
|
|
17af0: 018b lsls r3, r1, #6
|
|
17af2: 1ac0 subs r0, r0, r3
|
|
17af4: 4152 adcs r2, r2
|
|
17af6: 0943 lsrs r3, r0, #5
|
|
17af8: 428b cmp r3, r1
|
|
17afa: d301 bcc.n 17b00 <__divsi3+0x16c>
|
|
17afc: 014b lsls r3, r1, #5
|
|
17afe: 1ac0 subs r0, r0, r3
|
|
17b00: 4152 adcs r2, r2
|
|
17b02: 0903 lsrs r3, r0, #4
|
|
17b04: 428b cmp r3, r1
|
|
17b06: d301 bcc.n 17b0c <__divsi3+0x178>
|
|
17b08: 010b lsls r3, r1, #4
|
|
17b0a: 1ac0 subs r0, r0, r3
|
|
17b0c: 4152 adcs r2, r2
|
|
17b0e: 08c3 lsrs r3, r0, #3
|
|
17b10: 428b cmp r3, r1
|
|
17b12: d301 bcc.n 17b18 <__divsi3+0x184>
|
|
17b14: 00cb lsls r3, r1, #3
|
|
17b16: 1ac0 subs r0, r0, r3
|
|
17b18: 4152 adcs r2, r2
|
|
17b1a: 0883 lsrs r3, r0, #2
|
|
17b1c: 428b cmp r3, r1
|
|
17b1e: d301 bcc.n 17b24 <__divsi3+0x190>
|
|
17b20: 008b lsls r3, r1, #2
|
|
17b22: 1ac0 subs r0, r0, r3
|
|
17b24: 4152 adcs r2, r2
|
|
17b26: d2d9 bcs.n 17adc <__divsi3+0x148>
|
|
17b28: 0843 lsrs r3, r0, #1
|
|
17b2a: 428b cmp r3, r1
|
|
17b2c: d301 bcc.n 17b32 <__divsi3+0x19e>
|
|
17b2e: 004b lsls r3, r1, #1
|
|
17b30: 1ac0 subs r0, r0, r3
|
|
17b32: 4152 adcs r2, r2
|
|
17b34: 1a41 subs r1, r0, r1
|
|
17b36: d200 bcs.n 17b3a <__divsi3+0x1a6>
|
|
17b38: 4601 mov r1, r0
|
|
17b3a: 4663 mov r3, ip
|
|
17b3c: 4152 adcs r2, r2
|
|
17b3e: 105b asrs r3, r3, #1
|
|
17b40: 4610 mov r0, r2
|
|
17b42: d301 bcc.n 17b48 <__divsi3+0x1b4>
|
|
17b44: 4240 negs r0, r0
|
|
17b46: 2b00 cmp r3, #0
|
|
17b48: d500 bpl.n 17b4c <__divsi3+0x1b8>
|
|
17b4a: 4249 negs r1, r1
|
|
17b4c: 4770 bx lr
|
|
17b4e: 4663 mov r3, ip
|
|
17b50: 105b asrs r3, r3, #1
|
|
17b52: d300 bcc.n 17b56 <__divsi3+0x1c2>
|
|
17b54: 4240 negs r0, r0
|
|
17b56: b501 push {r0, lr}
|
|
17b58: 2000 movs r0, #0
|
|
17b5a: f000 f805 bl 17b68 <__aeabi_idiv0>
|
|
17b5e: bd02 pop {r1, pc}
|
|
|
|
00017b60 <__aeabi_idivmod>:
|
|
17b60: 2900 cmp r1, #0
|
|
17b62: d0f8 beq.n 17b56 <__divsi3+0x1c2>
|
|
17b64: e716 b.n 17994 <__divsi3>
|
|
17b66: 4770 bx lr
|
|
|
|
00017b68 <__aeabi_idiv0>:
|
|
17b68: 4770 bx lr
|
|
17b6a: 46c0 nop ; (mov r8, r8)
|
|
|
|
00017b6c <__aeabi_uldivmod>:
|
|
17b6c: 2b00 cmp r3, #0
|
|
17b6e: d111 bne.n 17b94 <__aeabi_uldivmod+0x28>
|
|
17b70: 2a00 cmp r2, #0
|
|
17b72: d10f bne.n 17b94 <__aeabi_uldivmod+0x28>
|
|
17b74: 2900 cmp r1, #0
|
|
17b76: d100 bne.n 17b7a <__aeabi_uldivmod+0xe>
|
|
17b78: 2800 cmp r0, #0
|
|
17b7a: d002 beq.n 17b82 <__aeabi_uldivmod+0x16>
|
|
17b7c: 2100 movs r1, #0
|
|
17b7e: 43c9 mvns r1, r1
|
|
17b80: 1c08 adds r0, r1, #0
|
|
17b82: b407 push {r0, r1, r2}
|
|
17b84: 4802 ldr r0, [pc, #8] ; (17b90 <__aeabi_uldivmod+0x24>)
|
|
17b86: a102 add r1, pc, #8 ; (adr r1, 17b90 <__aeabi_uldivmod+0x24>)
|
|
17b88: 1840 adds r0, r0, r1
|
|
17b8a: 9002 str r0, [sp, #8]
|
|
17b8c: bd03 pop {r0, r1, pc}
|
|
17b8e: 46c0 nop ; (mov r8, r8)
|
|
17b90: ffffffd9 .word 0xffffffd9
|
|
17b94: b403 push {r0, r1}
|
|
17b96: 4668 mov r0, sp
|
|
17b98: b501 push {r0, lr}
|
|
17b9a: 9802 ldr r0, [sp, #8]
|
|
17b9c: f000 f830 bl 17c00 <__udivmoddi4>
|
|
17ba0: 9b01 ldr r3, [sp, #4]
|
|
17ba2: 469e mov lr, r3
|
|
17ba4: b002 add sp, #8
|
|
17ba6: bc0c pop {r2, r3}
|
|
17ba8: 4770 bx lr
|
|
17baa: 46c0 nop ; (mov r8, r8)
|
|
|
|
00017bac <__aeabi_lmul>:
|
|
17bac: b5f0 push {r4, r5, r6, r7, lr}
|
|
17bae: 46ce mov lr, r9
|
|
17bb0: 4647 mov r7, r8
|
|
17bb2: 0415 lsls r5, r2, #16
|
|
17bb4: 0c2d lsrs r5, r5, #16
|
|
17bb6: 002e movs r6, r5
|
|
17bb8: b580 push {r7, lr}
|
|
17bba: 0407 lsls r7, r0, #16
|
|
17bbc: 0c14 lsrs r4, r2, #16
|
|
17bbe: 0c3f lsrs r7, r7, #16
|
|
17bc0: 4699 mov r9, r3
|
|
17bc2: 0c03 lsrs r3, r0, #16
|
|
17bc4: 437e muls r6, r7
|
|
17bc6: 435d muls r5, r3
|
|
17bc8: 4367 muls r7, r4
|
|
17bca: 4363 muls r3, r4
|
|
17bcc: 197f adds r7, r7, r5
|
|
17bce: 0c34 lsrs r4, r6, #16
|
|
17bd0: 19e4 adds r4, r4, r7
|
|
17bd2: 469c mov ip, r3
|
|
17bd4: 42a5 cmp r5, r4
|
|
17bd6: d903 bls.n 17be0 <__aeabi_lmul+0x34>
|
|
17bd8: 2380 movs r3, #128 ; 0x80
|
|
17bda: 025b lsls r3, r3, #9
|
|
17bdc: 4698 mov r8, r3
|
|
17bde: 44c4 add ip, r8
|
|
17be0: 464b mov r3, r9
|
|
17be2: 4351 muls r1, r2
|
|
17be4: 4343 muls r3, r0
|
|
17be6: 0436 lsls r6, r6, #16
|
|
17be8: 0c36 lsrs r6, r6, #16
|
|
17bea: 0c25 lsrs r5, r4, #16
|
|
17bec: 0424 lsls r4, r4, #16
|
|
17bee: 4465 add r5, ip
|
|
17bf0: 19a4 adds r4, r4, r6
|
|
17bf2: 1859 adds r1, r3, r1
|
|
17bf4: 1949 adds r1, r1, r5
|
|
17bf6: 0020 movs r0, r4
|
|
17bf8: bc0c pop {r2, r3}
|
|
17bfa: 4690 mov r8, r2
|
|
17bfc: 4699 mov r9, r3
|
|
17bfe: bdf0 pop {r4, r5, r6, r7, pc}
|
|
|
|
00017c00 <__udivmoddi4>:
|
|
17c00: b5f0 push {r4, r5, r6, r7, lr}
|
|
17c02: 4657 mov r7, sl
|
|
17c04: 464e mov r6, r9
|
|
17c06: 4645 mov r5, r8
|
|
17c08: 46de mov lr, fp
|
|
17c0a: b5e0 push {r5, r6, r7, lr}
|
|
17c0c: 0004 movs r4, r0
|
|
17c0e: b083 sub sp, #12
|
|
17c10: 000d movs r5, r1
|
|
17c12: 4692 mov sl, r2
|
|
17c14: 4699 mov r9, r3
|
|
17c16: 428b cmp r3, r1
|
|
17c18: d82f bhi.n 17c7a <__udivmoddi4+0x7a>
|
|
17c1a: d02c beq.n 17c76 <__udivmoddi4+0x76>
|
|
17c1c: 4649 mov r1, r9
|
|
17c1e: 4650 mov r0, sl
|
|
17c20: f000 f8cc bl 17dbc <__clzdi2>
|
|
17c24: 0029 movs r1, r5
|
|
17c26: 0006 movs r6, r0
|
|
17c28: 0020 movs r0, r4
|
|
17c2a: f000 f8c7 bl 17dbc <__clzdi2>
|
|
17c2e: 1a33 subs r3, r6, r0
|
|
17c30: 4698 mov r8, r3
|
|
17c32: 3b20 subs r3, #32
|
|
17c34: 469b mov fp, r3
|
|
17c36: d500 bpl.n 17c3a <__udivmoddi4+0x3a>
|
|
17c38: e074 b.n 17d24 <__udivmoddi4+0x124>
|
|
17c3a: 4653 mov r3, sl
|
|
17c3c: 465a mov r2, fp
|
|
17c3e: 4093 lsls r3, r2
|
|
17c40: 001f movs r7, r3
|
|
17c42: 4653 mov r3, sl
|
|
17c44: 4642 mov r2, r8
|
|
17c46: 4093 lsls r3, r2
|
|
17c48: 001e movs r6, r3
|
|
17c4a: 42af cmp r7, r5
|
|
17c4c: d829 bhi.n 17ca2 <__udivmoddi4+0xa2>
|
|
17c4e: d026 beq.n 17c9e <__udivmoddi4+0x9e>
|
|
17c50: 465b mov r3, fp
|
|
17c52: 1ba4 subs r4, r4, r6
|
|
17c54: 41bd sbcs r5, r7
|
|
17c56: 2b00 cmp r3, #0
|
|
17c58: da00 bge.n 17c5c <__udivmoddi4+0x5c>
|
|
17c5a: e079 b.n 17d50 <__udivmoddi4+0x150>
|
|
17c5c: 2200 movs r2, #0
|
|
17c5e: 2300 movs r3, #0
|
|
17c60: 9200 str r2, [sp, #0]
|
|
17c62: 9301 str r3, [sp, #4]
|
|
17c64: 2301 movs r3, #1
|
|
17c66: 465a mov r2, fp
|
|
17c68: 4093 lsls r3, r2
|
|
17c6a: 9301 str r3, [sp, #4]
|
|
17c6c: 2301 movs r3, #1
|
|
17c6e: 4642 mov r2, r8
|
|
17c70: 4093 lsls r3, r2
|
|
17c72: 9300 str r3, [sp, #0]
|
|
17c74: e019 b.n 17caa <__udivmoddi4+0xaa>
|
|
17c76: 4282 cmp r2, r0
|
|
17c78: d9d0 bls.n 17c1c <__udivmoddi4+0x1c>
|
|
17c7a: 2200 movs r2, #0
|
|
17c7c: 2300 movs r3, #0
|
|
17c7e: 9200 str r2, [sp, #0]
|
|
17c80: 9301 str r3, [sp, #4]
|
|
17c82: 9b0c ldr r3, [sp, #48] ; 0x30
|
|
17c84: 2b00 cmp r3, #0
|
|
17c86: d001 beq.n 17c8c <__udivmoddi4+0x8c>
|
|
17c88: 601c str r4, [r3, #0]
|
|
17c8a: 605d str r5, [r3, #4]
|
|
17c8c: 9800 ldr r0, [sp, #0]
|
|
17c8e: 9901 ldr r1, [sp, #4]
|
|
17c90: b003 add sp, #12
|
|
17c92: bc3c pop {r2, r3, r4, r5}
|
|
17c94: 4690 mov r8, r2
|
|
17c96: 4699 mov r9, r3
|
|
17c98: 46a2 mov sl, r4
|
|
17c9a: 46ab mov fp, r5
|
|
17c9c: bdf0 pop {r4, r5, r6, r7, pc}
|
|
17c9e: 42a3 cmp r3, r4
|
|
17ca0: d9d6 bls.n 17c50 <__udivmoddi4+0x50>
|
|
17ca2: 2200 movs r2, #0
|
|
17ca4: 2300 movs r3, #0
|
|
17ca6: 9200 str r2, [sp, #0]
|
|
17ca8: 9301 str r3, [sp, #4]
|
|
17caa: 4643 mov r3, r8
|
|
17cac: 2b00 cmp r3, #0
|
|
17cae: d0e8 beq.n 17c82 <__udivmoddi4+0x82>
|
|
17cb0: 07fb lsls r3, r7, #31
|
|
17cb2: 0872 lsrs r2, r6, #1
|
|
17cb4: 431a orrs r2, r3
|
|
17cb6: 4646 mov r6, r8
|
|
17cb8: 087b lsrs r3, r7, #1
|
|
17cba: e00e b.n 17cda <__udivmoddi4+0xda>
|
|
17cbc: 42ab cmp r3, r5
|
|
17cbe: d101 bne.n 17cc4 <__udivmoddi4+0xc4>
|
|
17cc0: 42a2 cmp r2, r4
|
|
17cc2: d80c bhi.n 17cde <__udivmoddi4+0xde>
|
|
17cc4: 1aa4 subs r4, r4, r2
|
|
17cc6: 419d sbcs r5, r3
|
|
17cc8: 2001 movs r0, #1
|
|
17cca: 1924 adds r4, r4, r4
|
|
17ccc: 416d adcs r5, r5
|
|
17cce: 2100 movs r1, #0
|
|
17cd0: 3e01 subs r6, #1
|
|
17cd2: 1824 adds r4, r4, r0
|
|
17cd4: 414d adcs r5, r1
|
|
17cd6: 2e00 cmp r6, #0
|
|
17cd8: d006 beq.n 17ce8 <__udivmoddi4+0xe8>
|
|
17cda: 42ab cmp r3, r5
|
|
17cdc: d9ee bls.n 17cbc <__udivmoddi4+0xbc>
|
|
17cde: 3e01 subs r6, #1
|
|
17ce0: 1924 adds r4, r4, r4
|
|
17ce2: 416d adcs r5, r5
|
|
17ce4: 2e00 cmp r6, #0
|
|
17ce6: d1f8 bne.n 17cda <__udivmoddi4+0xda>
|
|
17ce8: 465b mov r3, fp
|
|
17cea: 9800 ldr r0, [sp, #0]
|
|
17cec: 9901 ldr r1, [sp, #4]
|
|
17cee: 1900 adds r0, r0, r4
|
|
17cf0: 4169 adcs r1, r5
|
|
17cf2: 2b00 cmp r3, #0
|
|
17cf4: db22 blt.n 17d3c <__udivmoddi4+0x13c>
|
|
17cf6: 002b movs r3, r5
|
|
17cf8: 465a mov r2, fp
|
|
17cfa: 40d3 lsrs r3, r2
|
|
17cfc: 002a movs r2, r5
|
|
17cfe: 4644 mov r4, r8
|
|
17d00: 40e2 lsrs r2, r4
|
|
17d02: 001c movs r4, r3
|
|
17d04: 465b mov r3, fp
|
|
17d06: 0015 movs r5, r2
|
|
17d08: 2b00 cmp r3, #0
|
|
17d0a: db2c blt.n 17d66 <__udivmoddi4+0x166>
|
|
17d0c: 0026 movs r6, r4
|
|
17d0e: 409e lsls r6, r3
|
|
17d10: 0033 movs r3, r6
|
|
17d12: 0026 movs r6, r4
|
|
17d14: 4647 mov r7, r8
|
|
17d16: 40be lsls r6, r7
|
|
17d18: 0032 movs r2, r6
|
|
17d1a: 1a80 subs r0, r0, r2
|
|
17d1c: 4199 sbcs r1, r3
|
|
17d1e: 9000 str r0, [sp, #0]
|
|
17d20: 9101 str r1, [sp, #4]
|
|
17d22: e7ae b.n 17c82 <__udivmoddi4+0x82>
|
|
17d24: 4642 mov r2, r8
|
|
17d26: 2320 movs r3, #32
|
|
17d28: 1a9b subs r3, r3, r2
|
|
17d2a: 4652 mov r2, sl
|
|
17d2c: 40da lsrs r2, r3
|
|
17d2e: 4641 mov r1, r8
|
|
17d30: 0013 movs r3, r2
|
|
17d32: 464a mov r2, r9
|
|
17d34: 408a lsls r2, r1
|
|
17d36: 0017 movs r7, r2
|
|
17d38: 431f orrs r7, r3
|
|
17d3a: e782 b.n 17c42 <__udivmoddi4+0x42>
|
|
17d3c: 4642 mov r2, r8
|
|
17d3e: 2320 movs r3, #32
|
|
17d40: 1a9b subs r3, r3, r2
|
|
17d42: 002a movs r2, r5
|
|
17d44: 4646 mov r6, r8
|
|
17d46: 409a lsls r2, r3
|
|
17d48: 0023 movs r3, r4
|
|
17d4a: 40f3 lsrs r3, r6
|
|
17d4c: 4313 orrs r3, r2
|
|
17d4e: e7d5 b.n 17cfc <__udivmoddi4+0xfc>
|
|
17d50: 4642 mov r2, r8
|
|
17d52: 2320 movs r3, #32
|
|
17d54: 2100 movs r1, #0
|
|
17d56: 1a9b subs r3, r3, r2
|
|
17d58: 2200 movs r2, #0
|
|
17d5a: 9100 str r1, [sp, #0]
|
|
17d5c: 9201 str r2, [sp, #4]
|
|
17d5e: 2201 movs r2, #1
|
|
17d60: 40da lsrs r2, r3
|
|
17d62: 9201 str r2, [sp, #4]
|
|
17d64: e782 b.n 17c6c <__udivmoddi4+0x6c>
|
|
17d66: 4642 mov r2, r8
|
|
17d68: 2320 movs r3, #32
|
|
17d6a: 0026 movs r6, r4
|
|
17d6c: 1a9b subs r3, r3, r2
|
|
17d6e: 40de lsrs r6, r3
|
|
17d70: 002f movs r7, r5
|
|
17d72: 46b4 mov ip, r6
|
|
17d74: 4097 lsls r7, r2
|
|
17d76: 4666 mov r6, ip
|
|
17d78: 003b movs r3, r7
|
|
17d7a: 4333 orrs r3, r6
|
|
17d7c: e7c9 b.n 17d12 <__udivmoddi4+0x112>
|
|
17d7e: 46c0 nop ; (mov r8, r8)
|
|
|
|
00017d80 <__clzsi2>:
|
|
17d80: 211c movs r1, #28
|
|
17d82: 2301 movs r3, #1
|
|
17d84: 041b lsls r3, r3, #16
|
|
17d86: 4298 cmp r0, r3
|
|
17d88: d301 bcc.n 17d8e <__clzsi2+0xe>
|
|
17d8a: 0c00 lsrs r0, r0, #16
|
|
17d8c: 3910 subs r1, #16
|
|
17d8e: 0a1b lsrs r3, r3, #8
|
|
17d90: 4298 cmp r0, r3
|
|
17d92: d301 bcc.n 17d98 <__clzsi2+0x18>
|
|
17d94: 0a00 lsrs r0, r0, #8
|
|
17d96: 3908 subs r1, #8
|
|
17d98: 091b lsrs r3, r3, #4
|
|
17d9a: 4298 cmp r0, r3
|
|
17d9c: d301 bcc.n 17da2 <__clzsi2+0x22>
|
|
17d9e: 0900 lsrs r0, r0, #4
|
|
17da0: 3904 subs r1, #4
|
|
17da2: a202 add r2, pc, #8 ; (adr r2, 17dac <__clzsi2+0x2c>)
|
|
17da4: 5c10 ldrb r0, [r2, r0]
|
|
17da6: 1840 adds r0, r0, r1
|
|
17da8: 4770 bx lr
|
|
17daa: 46c0 nop ; (mov r8, r8)
|
|
17dac: 02020304 .word 0x02020304
|
|
17db0: 01010101 .word 0x01010101
|
|
...
|
|
|
|
00017dbc <__clzdi2>:
|
|
17dbc: b510 push {r4, lr}
|
|
17dbe: 2900 cmp r1, #0
|
|
17dc0: d103 bne.n 17dca <__clzdi2+0xe>
|
|
17dc2: f7ff ffdd bl 17d80 <__clzsi2>
|
|
17dc6: 3020 adds r0, #32
|
|
17dc8: e002 b.n 17dd0 <__clzdi2+0x14>
|
|
17dca: 1c08 adds r0, r1, #0
|
|
17dcc: f7ff ffd8 bl 17d80 <__clzsi2>
|
|
17dd0: bd10 pop {r4, pc}
|
|
17dd2: 46c0 nop ; (mov r8, r8)
|
|
|
|
00017dd4 <__libc_init_array>:
|
|
17dd4: b570 push {r4, r5, r6, lr}
|
|
17dd6: 2600 movs r6, #0
|
|
17dd8: 4d0c ldr r5, [pc, #48] ; (17e0c <__libc_init_array+0x38>)
|
|
17dda: 4c0d ldr r4, [pc, #52] ; (17e10 <__libc_init_array+0x3c>)
|
|
17ddc: 1b64 subs r4, r4, r5
|
|
17dde: 10a4 asrs r4, r4, #2
|
|
17de0: 42a6 cmp r6, r4
|
|
17de2: d109 bne.n 17df8 <__libc_init_array+0x24>
|
|
17de4: 2600 movs r6, #0
|
|
17de6: f004 fdcb bl 1c980 <_init>
|
|
17dea: 4d0a ldr r5, [pc, #40] ; (17e14 <__libc_init_array+0x40>)
|
|
17dec: 4c0a ldr r4, [pc, #40] ; (17e18 <__libc_init_array+0x44>)
|
|
17dee: 1b64 subs r4, r4, r5
|
|
17df0: 10a4 asrs r4, r4, #2
|
|
17df2: 42a6 cmp r6, r4
|
|
17df4: d105 bne.n 17e02 <__libc_init_array+0x2e>
|
|
17df6: bd70 pop {r4, r5, r6, pc}
|
|
17df8: 00b3 lsls r3, r6, #2
|
|
17dfa: 58eb ldr r3, [r5, r3]
|
|
17dfc: 4798 blx r3
|
|
17dfe: 3601 adds r6, #1
|
|
17e00: e7ee b.n 17de0 <__libc_init_array+0xc>
|
|
17e02: 00b3 lsls r3, r6, #2
|
|
17e04: 58eb ldr r3, [r5, r3]
|
|
17e06: 4798 blx r3
|
|
17e08: 3601 adds r6, #1
|
|
17e0a: e7f2 b.n 17df2 <__libc_init_array+0x1e>
|
|
17e0c: 0001c98c .word 0x0001c98c
|
|
17e10: 0001c98c .word 0x0001c98c
|
|
17e14: 0001c98c .word 0x0001c98c
|
|
17e18: 0001c990 .word 0x0001c990
|
|
|
|
00017e1c <memcmp>:
|
|
17e1c: b530 push {r4, r5, lr}
|
|
17e1e: 2400 movs r4, #0
|
|
17e20: 42a2 cmp r2, r4
|
|
17e22: d101 bne.n 17e28 <memcmp+0xc>
|
|
17e24: 2000 movs r0, #0
|
|
17e26: e005 b.n 17e34 <memcmp+0x18>
|
|
17e28: 5d03 ldrb r3, [r0, r4]
|
|
17e2a: 1c65 adds r5, r4, #1
|
|
17e2c: 5d0c ldrb r4, [r1, r4]
|
|
17e2e: 42a3 cmp r3, r4
|
|
17e30: d001 beq.n 17e36 <memcmp+0x1a>
|
|
17e32: 1b18 subs r0, r3, r4
|
|
17e34: bd30 pop {r4, r5, pc}
|
|
17e36: 002c movs r4, r5
|
|
17e38: e7f2 b.n 17e20 <memcmp+0x4>
|
|
|
|
00017e3a <memcpy>:
|
|
17e3a: 2300 movs r3, #0
|
|
17e3c: b510 push {r4, lr}
|
|
17e3e: 429a cmp r2, r3
|
|
17e40: d100 bne.n 17e44 <memcpy+0xa>
|
|
17e42: bd10 pop {r4, pc}
|
|
17e44: 5ccc ldrb r4, [r1, r3]
|
|
17e46: 54c4 strb r4, [r0, r3]
|
|
17e48: 3301 adds r3, #1
|
|
17e4a: e7f8 b.n 17e3e <memcpy+0x4>
|
|
|
|
00017e4c <memset>:
|
|
17e4c: 0003 movs r3, r0
|
|
17e4e: 1882 adds r2, r0, r2
|
|
17e50: 4293 cmp r3, r2
|
|
17e52: d100 bne.n 17e56 <memset+0xa>
|
|
17e54: 4770 bx lr
|
|
17e56: 7019 strb r1, [r3, #0]
|
|
17e58: 3301 adds r3, #1
|
|
17e5a: e7f9 b.n 17e50 <memset+0x4>
|
|
|
|
00017e5c <strcmp>:
|
|
17e5c: 7802 ldrb r2, [r0, #0]
|
|
17e5e: 780b ldrb r3, [r1, #0]
|
|
17e60: 2a00 cmp r2, #0
|
|
17e62: d003 beq.n 17e6c <strcmp+0x10>
|
|
17e64: 3001 adds r0, #1
|
|
17e66: 3101 adds r1, #1
|
|
17e68: 429a cmp r2, r3
|
|
17e6a: d0f7 beq.n 17e5c <strcmp>
|
|
17e6c: 1ad0 subs r0, r2, r3
|
|
17e6e: 4770 bx lr
|
|
|
|
00017e70 <strcpy>:
|
|
17e70: 1c03 adds r3, r0, #0
|
|
17e72: 780a ldrb r2, [r1, #0]
|
|
17e74: 3101 adds r1, #1
|
|
17e76: 701a strb r2, [r3, #0]
|
|
17e78: 3301 adds r3, #1
|
|
17e7a: 2a00 cmp r2, #0
|
|
17e7c: d1f9 bne.n 17e72 <strcpy+0x2>
|
|
17e7e: 4770 bx lr
|
|
|
|
00017e80 <strlen>:
|
|
17e80: 2300 movs r3, #0
|
|
17e82: 5cc2 ldrb r2, [r0, r3]
|
|
17e84: 3301 adds r3, #1
|
|
17e86: 2a00 cmp r2, #0
|
|
17e88: d1fb bne.n 17e82 <strlen+0x2>
|
|
17e8a: 1e58 subs r0, r3, #1
|
|
17e8c: 4770 bx lr
|
|
...
|
|
|
|
00017e90 <_vsiprintf_r>:
|
|
17e90: b530 push {r4, r5, lr}
|
|
17e92: b09b sub sp, #108 ; 0x6c
|
|
17e94: 9100 str r1, [sp, #0]
|
|
17e96: 9104 str r1, [sp, #16]
|
|
17e98: 4908 ldr r1, [pc, #32] ; (17ebc <_vsiprintf_r+0x2c>)
|
|
17e9a: 466d mov r5, sp
|
|
17e9c: 9102 str r1, [sp, #8]
|
|
17e9e: 9105 str r1, [sp, #20]
|
|
17ea0: 2101 movs r1, #1
|
|
17ea2: 2482 movs r4, #130 ; 0x82
|
|
17ea4: 4249 negs r1, r1
|
|
17ea6: 81e9 strh r1, [r5, #14]
|
|
17ea8: 00a4 lsls r4, r4, #2
|
|
17eaa: 4669 mov r1, sp
|
|
17eac: 81ac strh r4, [r5, #12]
|
|
17eae: f000 f875 bl 17f9c <_svfiprintf_r>
|
|
17eb2: 2300 movs r3, #0
|
|
17eb4: 9a00 ldr r2, [sp, #0]
|
|
17eb6: 7013 strb r3, [r2, #0]
|
|
17eb8: b01b add sp, #108 ; 0x6c
|
|
17eba: bd30 pop {r4, r5, pc}
|
|
17ebc: 7fffffff .word 0x7fffffff
|
|
|
|
00017ec0 <vsiprintf>:
|
|
17ec0: b510 push {r4, lr}
|
|
17ec2: 0013 movs r3, r2
|
|
17ec4: 000a movs r2, r1
|
|
17ec6: 0001 movs r1, r0
|
|
17ec8: 4802 ldr r0, [pc, #8] ; (17ed4 <vsiprintf+0x14>)
|
|
17eca: 6800 ldr r0, [r0, #0]
|
|
17ecc: f7ff ffe0 bl 17e90 <_vsiprintf_r>
|
|
17ed0: bd10 pop {r4, pc}
|
|
17ed2: 46c0 nop ; (mov r8, r8)
|
|
17ed4: 20000060 .word 0x20000060
|
|
|
|
00017ed8 <__ssputs_r>:
|
|
17ed8: b5f0 push {r4, r5, r6, r7, lr}
|
|
17eda: 688e ldr r6, [r1, #8]
|
|
17edc: b085 sub sp, #20
|
|
17ede: 0007 movs r7, r0
|
|
17ee0: 000c movs r4, r1
|
|
17ee2: 9203 str r2, [sp, #12]
|
|
17ee4: 9301 str r3, [sp, #4]
|
|
17ee6: 429e cmp r6, r3
|
|
17ee8: d839 bhi.n 17f5e <__ssputs_r+0x86>
|
|
17eea: 2390 movs r3, #144 ; 0x90
|
|
17eec: 898a ldrh r2, [r1, #12]
|
|
17eee: 00db lsls r3, r3, #3
|
|
17ef0: 421a tst r2, r3
|
|
17ef2: d034 beq.n 17f5e <__ssputs_r+0x86>
|
|
17ef4: 2503 movs r5, #3
|
|
17ef6: 6909 ldr r1, [r1, #16]
|
|
17ef8: 6823 ldr r3, [r4, #0]
|
|
17efa: 1a5b subs r3, r3, r1
|
|
17efc: 9302 str r3, [sp, #8]
|
|
17efe: 6963 ldr r3, [r4, #20]
|
|
17f00: 9802 ldr r0, [sp, #8]
|
|
17f02: 435d muls r5, r3
|
|
17f04: 0feb lsrs r3, r5, #31
|
|
17f06: 195d adds r5, r3, r5
|
|
17f08: 9b01 ldr r3, [sp, #4]
|
|
17f0a: 106d asrs r5, r5, #1
|
|
17f0c: 3301 adds r3, #1
|
|
17f0e: 181b adds r3, r3, r0
|
|
17f10: 42ab cmp r3, r5
|
|
17f12: d900 bls.n 17f16 <__ssputs_r+0x3e>
|
|
17f14: 001d movs r5, r3
|
|
17f16: 0553 lsls r3, r2, #21
|
|
17f18: d532 bpl.n 17f80 <__ssputs_r+0xa8>
|
|
17f1a: 0029 movs r1, r5
|
|
17f1c: 0038 movs r0, r7
|
|
17f1e: f000 fb31 bl 18584 <_malloc_r>
|
|
17f22: 1e06 subs r6, r0, #0
|
|
17f24: d109 bne.n 17f3a <__ssputs_r+0x62>
|
|
17f26: 230c movs r3, #12
|
|
17f28: 603b str r3, [r7, #0]
|
|
17f2a: 2340 movs r3, #64 ; 0x40
|
|
17f2c: 2001 movs r0, #1
|
|
17f2e: 89a2 ldrh r2, [r4, #12]
|
|
17f30: 4240 negs r0, r0
|
|
17f32: 4313 orrs r3, r2
|
|
17f34: 81a3 strh r3, [r4, #12]
|
|
17f36: b005 add sp, #20
|
|
17f38: bdf0 pop {r4, r5, r6, r7, pc}
|
|
17f3a: 9a02 ldr r2, [sp, #8]
|
|
17f3c: 6921 ldr r1, [r4, #16]
|
|
17f3e: f7ff ff7c bl 17e3a <memcpy>
|
|
17f42: 89a3 ldrh r3, [r4, #12]
|
|
17f44: 4a14 ldr r2, [pc, #80] ; (17f98 <__ssputs_r+0xc0>)
|
|
17f46: 401a ands r2, r3
|
|
17f48: 2380 movs r3, #128 ; 0x80
|
|
17f4a: 4313 orrs r3, r2
|
|
17f4c: 81a3 strh r3, [r4, #12]
|
|
17f4e: 9b02 ldr r3, [sp, #8]
|
|
17f50: 6126 str r6, [r4, #16]
|
|
17f52: 18f6 adds r6, r6, r3
|
|
17f54: 6026 str r6, [r4, #0]
|
|
17f56: 6165 str r5, [r4, #20]
|
|
17f58: 9e01 ldr r6, [sp, #4]
|
|
17f5a: 1aed subs r5, r5, r3
|
|
17f5c: 60a5 str r5, [r4, #8]
|
|
17f5e: 9b01 ldr r3, [sp, #4]
|
|
17f60: 42b3 cmp r3, r6
|
|
17f62: d200 bcs.n 17f66 <__ssputs_r+0x8e>
|
|
17f64: 001e movs r6, r3
|
|
17f66: 0032 movs r2, r6
|
|
17f68: 9903 ldr r1, [sp, #12]
|
|
17f6a: 6820 ldr r0, [r4, #0]
|
|
17f6c: f000 faad bl 184ca <memmove>
|
|
17f70: 68a3 ldr r3, [r4, #8]
|
|
17f72: 2000 movs r0, #0
|
|
17f74: 1b9b subs r3, r3, r6
|
|
17f76: 60a3 str r3, [r4, #8]
|
|
17f78: 6823 ldr r3, [r4, #0]
|
|
17f7a: 199e adds r6, r3, r6
|
|
17f7c: 6026 str r6, [r4, #0]
|
|
17f7e: e7da b.n 17f36 <__ssputs_r+0x5e>
|
|
17f80: 002a movs r2, r5
|
|
17f82: 0038 movs r0, r7
|
|
17f84: f000 fb5c bl 18640 <_realloc_r>
|
|
17f88: 1e06 subs r6, r0, #0
|
|
17f8a: d1e0 bne.n 17f4e <__ssputs_r+0x76>
|
|
17f8c: 6921 ldr r1, [r4, #16]
|
|
17f8e: 0038 movs r0, r7
|
|
17f90: f000 faae bl 184f0 <_free_r>
|
|
17f94: e7c7 b.n 17f26 <__ssputs_r+0x4e>
|
|
17f96: 46c0 nop ; (mov r8, r8)
|
|
17f98: fffffb7f .word 0xfffffb7f
|
|
|
|
00017f9c <_svfiprintf_r>:
|
|
17f9c: b5f0 push {r4, r5, r6, r7, lr}
|
|
17f9e: b09f sub sp, #124 ; 0x7c
|
|
17fa0: 9002 str r0, [sp, #8]
|
|
17fa2: 9305 str r3, [sp, #20]
|
|
17fa4: 898b ldrh r3, [r1, #12]
|
|
17fa6: 000f movs r7, r1
|
|
17fa8: 0016 movs r6, r2
|
|
17faa: 061b lsls r3, r3, #24
|
|
17fac: d511 bpl.n 17fd2 <_svfiprintf_r+0x36>
|
|
17fae: 690b ldr r3, [r1, #16]
|
|
17fb0: 2b00 cmp r3, #0
|
|
17fb2: d10e bne.n 17fd2 <_svfiprintf_r+0x36>
|
|
17fb4: 2140 movs r1, #64 ; 0x40
|
|
17fb6: f000 fae5 bl 18584 <_malloc_r>
|
|
17fba: 6038 str r0, [r7, #0]
|
|
17fbc: 6138 str r0, [r7, #16]
|
|
17fbe: 2800 cmp r0, #0
|
|
17fc0: d105 bne.n 17fce <_svfiprintf_r+0x32>
|
|
17fc2: 230c movs r3, #12
|
|
17fc4: 9a02 ldr r2, [sp, #8]
|
|
17fc6: 3801 subs r0, #1
|
|
17fc8: 6013 str r3, [r2, #0]
|
|
17fca: b01f add sp, #124 ; 0x7c
|
|
17fcc: bdf0 pop {r4, r5, r6, r7, pc}
|
|
17fce: 2340 movs r3, #64 ; 0x40
|
|
17fd0: 617b str r3, [r7, #20]
|
|
17fd2: 2300 movs r3, #0
|
|
17fd4: ad06 add r5, sp, #24
|
|
17fd6: 616b str r3, [r5, #20]
|
|
17fd8: 3320 adds r3, #32
|
|
17fda: 766b strb r3, [r5, #25]
|
|
17fdc: 3310 adds r3, #16
|
|
17fde: 76ab strb r3, [r5, #26]
|
|
17fe0: 0034 movs r4, r6
|
|
17fe2: 7823 ldrb r3, [r4, #0]
|
|
17fe4: 2b00 cmp r3, #0
|
|
17fe6: d147 bne.n 18078 <_svfiprintf_r+0xdc>
|
|
17fe8: 1ba3 subs r3, r4, r6
|
|
17fea: 9304 str r3, [sp, #16]
|
|
17fec: d00d beq.n 1800a <_svfiprintf_r+0x6e>
|
|
17fee: 1ba3 subs r3, r4, r6
|
|
17ff0: 0032 movs r2, r6
|
|
17ff2: 0039 movs r1, r7
|
|
17ff4: 9802 ldr r0, [sp, #8]
|
|
17ff6: f7ff ff6f bl 17ed8 <__ssputs_r>
|
|
17ffa: 1c43 adds r3, r0, #1
|
|
17ffc: d100 bne.n 18000 <_svfiprintf_r+0x64>
|
|
17ffe: e0b5 b.n 1816c <_svfiprintf_r+0x1d0>
|
|
18000: 696a ldr r2, [r5, #20]
|
|
18002: 9b04 ldr r3, [sp, #16]
|
|
18004: 4694 mov ip, r2
|
|
18006: 4463 add r3, ip
|
|
18008: 616b str r3, [r5, #20]
|
|
1800a: 7823 ldrb r3, [r4, #0]
|
|
1800c: 2b00 cmp r3, #0
|
|
1800e: d100 bne.n 18012 <_svfiprintf_r+0x76>
|
|
18010: e0ac b.n 1816c <_svfiprintf_r+0x1d0>
|
|
18012: 2201 movs r2, #1
|
|
18014: 2300 movs r3, #0
|
|
18016: 4252 negs r2, r2
|
|
18018: 606a str r2, [r5, #4]
|
|
1801a: a902 add r1, sp, #8
|
|
1801c: 3254 adds r2, #84 ; 0x54
|
|
1801e: 1852 adds r2, r2, r1
|
|
18020: 3401 adds r4, #1
|
|
18022: 602b str r3, [r5, #0]
|
|
18024: 60eb str r3, [r5, #12]
|
|
18026: 60ab str r3, [r5, #8]
|
|
18028: 7013 strb r3, [r2, #0]
|
|
1802a: 65ab str r3, [r5, #88] ; 0x58
|
|
1802c: 4e58 ldr r6, [pc, #352] ; (18190 <_svfiprintf_r+0x1f4>)
|
|
1802e: 2205 movs r2, #5
|
|
18030: 7821 ldrb r1, [r4, #0]
|
|
18032: 0030 movs r0, r6
|
|
18034: f000 fa3e bl 184b4 <memchr>
|
|
18038: 1c62 adds r2, r4, #1
|
|
1803a: 2800 cmp r0, #0
|
|
1803c: d120 bne.n 18080 <_svfiprintf_r+0xe4>
|
|
1803e: 6829 ldr r1, [r5, #0]
|
|
18040: 06cb lsls r3, r1, #27
|
|
18042: d504 bpl.n 1804e <_svfiprintf_r+0xb2>
|
|
18044: 2353 movs r3, #83 ; 0x53
|
|
18046: ae02 add r6, sp, #8
|
|
18048: 3020 adds r0, #32
|
|
1804a: 199b adds r3, r3, r6
|
|
1804c: 7018 strb r0, [r3, #0]
|
|
1804e: 070b lsls r3, r1, #28
|
|
18050: d504 bpl.n 1805c <_svfiprintf_r+0xc0>
|
|
18052: 2353 movs r3, #83 ; 0x53
|
|
18054: 202b movs r0, #43 ; 0x2b
|
|
18056: ae02 add r6, sp, #8
|
|
18058: 199b adds r3, r3, r6
|
|
1805a: 7018 strb r0, [r3, #0]
|
|
1805c: 7823 ldrb r3, [r4, #0]
|
|
1805e: 2b2a cmp r3, #42 ; 0x2a
|
|
18060: d016 beq.n 18090 <_svfiprintf_r+0xf4>
|
|
18062: 2000 movs r0, #0
|
|
18064: 210a movs r1, #10
|
|
18066: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
18068: 7822 ldrb r2, [r4, #0]
|
|
1806a: 3a30 subs r2, #48 ; 0x30
|
|
1806c: 2a09 cmp r2, #9
|
|
1806e: d955 bls.n 1811c <_svfiprintf_r+0x180>
|
|
18070: 2800 cmp r0, #0
|
|
18072: d015 beq.n 180a0 <_svfiprintf_r+0x104>
|
|
18074: 9309 str r3, [sp, #36] ; 0x24
|
|
18076: e013 b.n 180a0 <_svfiprintf_r+0x104>
|
|
18078: 2b25 cmp r3, #37 ; 0x25
|
|
1807a: d0b5 beq.n 17fe8 <_svfiprintf_r+0x4c>
|
|
1807c: 3401 adds r4, #1
|
|
1807e: e7b0 b.n 17fe2 <_svfiprintf_r+0x46>
|
|
18080: 2301 movs r3, #1
|
|
18082: 1b80 subs r0, r0, r6
|
|
18084: 4083 lsls r3, r0
|
|
18086: 6829 ldr r1, [r5, #0]
|
|
18088: 0014 movs r4, r2
|
|
1808a: 430b orrs r3, r1
|
|
1808c: 602b str r3, [r5, #0]
|
|
1808e: e7cd b.n 1802c <_svfiprintf_r+0x90>
|
|
18090: 9b05 ldr r3, [sp, #20]
|
|
18092: 1d18 adds r0, r3, #4
|
|
18094: 681b ldr r3, [r3, #0]
|
|
18096: 9005 str r0, [sp, #20]
|
|
18098: 2b00 cmp r3, #0
|
|
1809a: db39 blt.n 18110 <_svfiprintf_r+0x174>
|
|
1809c: 9309 str r3, [sp, #36] ; 0x24
|
|
1809e: 0014 movs r4, r2
|
|
180a0: 7823 ldrb r3, [r4, #0]
|
|
180a2: 2b2e cmp r3, #46 ; 0x2e
|
|
180a4: d10b bne.n 180be <_svfiprintf_r+0x122>
|
|
180a6: 7863 ldrb r3, [r4, #1]
|
|
180a8: 1c62 adds r2, r4, #1
|
|
180aa: 2b2a cmp r3, #42 ; 0x2a
|
|
180ac: d13e bne.n 1812c <_svfiprintf_r+0x190>
|
|
180ae: 9b05 ldr r3, [sp, #20]
|
|
180b0: 3402 adds r4, #2
|
|
180b2: 1d1a adds r2, r3, #4
|
|
180b4: 681b ldr r3, [r3, #0]
|
|
180b6: 9205 str r2, [sp, #20]
|
|
180b8: 2b00 cmp r3, #0
|
|
180ba: db34 blt.n 18126 <_svfiprintf_r+0x18a>
|
|
180bc: 9307 str r3, [sp, #28]
|
|
180be: 4e35 ldr r6, [pc, #212] ; (18194 <_svfiprintf_r+0x1f8>)
|
|
180c0: 7821 ldrb r1, [r4, #0]
|
|
180c2: 2203 movs r2, #3
|
|
180c4: 0030 movs r0, r6
|
|
180c6: f000 f9f5 bl 184b4 <memchr>
|
|
180ca: 2800 cmp r0, #0
|
|
180cc: d006 beq.n 180dc <_svfiprintf_r+0x140>
|
|
180ce: 2340 movs r3, #64 ; 0x40
|
|
180d0: 1b80 subs r0, r0, r6
|
|
180d2: 4083 lsls r3, r0
|
|
180d4: 682a ldr r2, [r5, #0]
|
|
180d6: 3401 adds r4, #1
|
|
180d8: 4313 orrs r3, r2
|
|
180da: 602b str r3, [r5, #0]
|
|
180dc: 7821 ldrb r1, [r4, #0]
|
|
180de: 2206 movs r2, #6
|
|
180e0: 482d ldr r0, [pc, #180] ; (18198 <_svfiprintf_r+0x1fc>)
|
|
180e2: 1c66 adds r6, r4, #1
|
|
180e4: 7629 strb r1, [r5, #24]
|
|
180e6: f000 f9e5 bl 184b4 <memchr>
|
|
180ea: 2800 cmp r0, #0
|
|
180ec: d046 beq.n 1817c <_svfiprintf_r+0x1e0>
|
|
180ee: 4b2b ldr r3, [pc, #172] ; (1819c <_svfiprintf_r+0x200>)
|
|
180f0: 2b00 cmp r3, #0
|
|
180f2: d12f bne.n 18154 <_svfiprintf_r+0x1b8>
|
|
180f4: 6829 ldr r1, [r5, #0]
|
|
180f6: 9b05 ldr r3, [sp, #20]
|
|
180f8: 2207 movs r2, #7
|
|
180fa: 05c9 lsls r1, r1, #23
|
|
180fc: d528 bpl.n 18150 <_svfiprintf_r+0x1b4>
|
|
180fe: 189b adds r3, r3, r2
|
|
18100: 4393 bics r3, r2
|
|
18102: 3308 adds r3, #8
|
|
18104: 9305 str r3, [sp, #20]
|
|
18106: 696b ldr r3, [r5, #20]
|
|
18108: 9a03 ldr r2, [sp, #12]
|
|
1810a: 189b adds r3, r3, r2
|
|
1810c: 616b str r3, [r5, #20]
|
|
1810e: e767 b.n 17fe0 <_svfiprintf_r+0x44>
|
|
18110: 425b negs r3, r3
|
|
18112: 60eb str r3, [r5, #12]
|
|
18114: 2302 movs r3, #2
|
|
18116: 430b orrs r3, r1
|
|
18118: 602b str r3, [r5, #0]
|
|
1811a: e7c0 b.n 1809e <_svfiprintf_r+0x102>
|
|
1811c: 434b muls r3, r1
|
|
1811e: 3401 adds r4, #1
|
|
18120: 189b adds r3, r3, r2
|
|
18122: 2001 movs r0, #1
|
|
18124: e7a0 b.n 18068 <_svfiprintf_r+0xcc>
|
|
18126: 2301 movs r3, #1
|
|
18128: 425b negs r3, r3
|
|
1812a: e7c7 b.n 180bc <_svfiprintf_r+0x120>
|
|
1812c: 2300 movs r3, #0
|
|
1812e: 0014 movs r4, r2
|
|
18130: 200a movs r0, #10
|
|
18132: 001a movs r2, r3
|
|
18134: 606b str r3, [r5, #4]
|
|
18136: 7821 ldrb r1, [r4, #0]
|
|
18138: 3930 subs r1, #48 ; 0x30
|
|
1813a: 2909 cmp r1, #9
|
|
1813c: d903 bls.n 18146 <_svfiprintf_r+0x1aa>
|
|
1813e: 2b00 cmp r3, #0
|
|
18140: d0bd beq.n 180be <_svfiprintf_r+0x122>
|
|
18142: 9207 str r2, [sp, #28]
|
|
18144: e7bb b.n 180be <_svfiprintf_r+0x122>
|
|
18146: 4342 muls r2, r0
|
|
18148: 3401 adds r4, #1
|
|
1814a: 1852 adds r2, r2, r1
|
|
1814c: 2301 movs r3, #1
|
|
1814e: e7f2 b.n 18136 <_svfiprintf_r+0x19a>
|
|
18150: 3307 adds r3, #7
|
|
18152: e7d5 b.n 18100 <_svfiprintf_r+0x164>
|
|
18154: ab05 add r3, sp, #20
|
|
18156: 9300 str r3, [sp, #0]
|
|
18158: 003a movs r2, r7
|
|
1815a: 4b11 ldr r3, [pc, #68] ; (181a0 <_svfiprintf_r+0x204>)
|
|
1815c: 0029 movs r1, r5
|
|
1815e: 9802 ldr r0, [sp, #8]
|
|
18160: e000 b.n 18164 <_svfiprintf_r+0x1c8>
|
|
18162: bf00 nop
|
|
18164: 9003 str r0, [sp, #12]
|
|
18166: 9b03 ldr r3, [sp, #12]
|
|
18168: 3301 adds r3, #1
|
|
1816a: d1cc bne.n 18106 <_svfiprintf_r+0x16a>
|
|
1816c: 89bb ldrh r3, [r7, #12]
|
|
1816e: 980b ldr r0, [sp, #44] ; 0x2c
|
|
18170: 065b lsls r3, r3, #25
|
|
18172: d400 bmi.n 18176 <_svfiprintf_r+0x1da>
|
|
18174: e729 b.n 17fca <_svfiprintf_r+0x2e>
|
|
18176: 2001 movs r0, #1
|
|
18178: 4240 negs r0, r0
|
|
1817a: e726 b.n 17fca <_svfiprintf_r+0x2e>
|
|
1817c: ab05 add r3, sp, #20
|
|
1817e: 9300 str r3, [sp, #0]
|
|
18180: 003a movs r2, r7
|
|
18182: 4b07 ldr r3, [pc, #28] ; (181a0 <_svfiprintf_r+0x204>)
|
|
18184: 0029 movs r1, r5
|
|
18186: 9802 ldr r0, [sp, #8]
|
|
18188: f000 f87a bl 18280 <_printf_i>
|
|
1818c: e7ea b.n 18164 <_svfiprintf_r+0x1c8>
|
|
1818e: 46c0 nop ; (mov r8, r8)
|
|
18190: 0001c94c .word 0x0001c94c
|
|
18194: 0001c952 .word 0x0001c952
|
|
18198: 0001c956 .word 0x0001c956
|
|
1819c: 00000000 .word 0x00000000
|
|
181a0: 00017ed9 .word 0x00017ed9
|
|
|
|
000181a4 <_printf_common>:
|
|
181a4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
|
|
181a6: 0015 movs r5, r2
|
|
181a8: 9301 str r3, [sp, #4]
|
|
181aa: 688a ldr r2, [r1, #8]
|
|
181ac: 690b ldr r3, [r1, #16]
|
|
181ae: 9000 str r0, [sp, #0]
|
|
181b0: 000c movs r4, r1
|
|
181b2: 4293 cmp r3, r2
|
|
181b4: da00 bge.n 181b8 <_printf_common+0x14>
|
|
181b6: 0013 movs r3, r2
|
|
181b8: 0022 movs r2, r4
|
|
181ba: 602b str r3, [r5, #0]
|
|
181bc: 3243 adds r2, #67 ; 0x43
|
|
181be: 7812 ldrb r2, [r2, #0]
|
|
181c0: 2a00 cmp r2, #0
|
|
181c2: d001 beq.n 181c8 <_printf_common+0x24>
|
|
181c4: 3301 adds r3, #1
|
|
181c6: 602b str r3, [r5, #0]
|
|
181c8: 6823 ldr r3, [r4, #0]
|
|
181ca: 069b lsls r3, r3, #26
|
|
181cc: d502 bpl.n 181d4 <_printf_common+0x30>
|
|
181ce: 682b ldr r3, [r5, #0]
|
|
181d0: 3302 adds r3, #2
|
|
181d2: 602b str r3, [r5, #0]
|
|
181d4: 2706 movs r7, #6
|
|
181d6: 6823 ldr r3, [r4, #0]
|
|
181d8: 401f ands r7, r3
|
|
181da: d027 beq.n 1822c <_printf_common+0x88>
|
|
181dc: 0023 movs r3, r4
|
|
181de: 3343 adds r3, #67 ; 0x43
|
|
181e0: 781b ldrb r3, [r3, #0]
|
|
181e2: 1e5a subs r2, r3, #1
|
|
181e4: 4193 sbcs r3, r2
|
|
181e6: 6822 ldr r2, [r4, #0]
|
|
181e8: 0692 lsls r2, r2, #26
|
|
181ea: d430 bmi.n 1824e <_printf_common+0xaa>
|
|
181ec: 0022 movs r2, r4
|
|
181ee: 9901 ldr r1, [sp, #4]
|
|
181f0: 3243 adds r2, #67 ; 0x43
|
|
181f2: 9800 ldr r0, [sp, #0]
|
|
181f4: 9e08 ldr r6, [sp, #32]
|
|
181f6: 47b0 blx r6
|
|
181f8: 1c43 adds r3, r0, #1
|
|
181fa: d025 beq.n 18248 <_printf_common+0xa4>
|
|
181fc: 2306 movs r3, #6
|
|
181fe: 6820 ldr r0, [r4, #0]
|
|
18200: 682a ldr r2, [r5, #0]
|
|
18202: 68e1 ldr r1, [r4, #12]
|
|
18204: 4003 ands r3, r0
|
|
18206: 2500 movs r5, #0
|
|
18208: 2b04 cmp r3, #4
|
|
1820a: d103 bne.n 18214 <_printf_common+0x70>
|
|
1820c: 1a8d subs r5, r1, r2
|
|
1820e: 43eb mvns r3, r5
|
|
18210: 17db asrs r3, r3, #31
|
|
18212: 401d ands r5, r3
|
|
18214: 68a3 ldr r3, [r4, #8]
|
|
18216: 6922 ldr r2, [r4, #16]
|
|
18218: 4293 cmp r3, r2
|
|
1821a: dd01 ble.n 18220 <_printf_common+0x7c>
|
|
1821c: 1a9b subs r3, r3, r2
|
|
1821e: 18ed adds r5, r5, r3
|
|
18220: 2700 movs r7, #0
|
|
18222: 42bd cmp r5, r7
|
|
18224: d120 bne.n 18268 <_printf_common+0xc4>
|
|
18226: 2000 movs r0, #0
|
|
18228: e010 b.n 1824c <_printf_common+0xa8>
|
|
1822a: 3701 adds r7, #1
|
|
1822c: 68e3 ldr r3, [r4, #12]
|
|
1822e: 682a ldr r2, [r5, #0]
|
|
18230: 1a9b subs r3, r3, r2
|
|
18232: 429f cmp r7, r3
|
|
18234: dad2 bge.n 181dc <_printf_common+0x38>
|
|
18236: 0022 movs r2, r4
|
|
18238: 2301 movs r3, #1
|
|
1823a: 3219 adds r2, #25
|
|
1823c: 9901 ldr r1, [sp, #4]
|
|
1823e: 9800 ldr r0, [sp, #0]
|
|
18240: 9e08 ldr r6, [sp, #32]
|
|
18242: 47b0 blx r6
|
|
18244: 1c43 adds r3, r0, #1
|
|
18246: d1f0 bne.n 1822a <_printf_common+0x86>
|
|
18248: 2001 movs r0, #1
|
|
1824a: 4240 negs r0, r0
|
|
1824c: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
|
|
1824e: 2030 movs r0, #48 ; 0x30
|
|
18250: 18e1 adds r1, r4, r3
|
|
18252: 3143 adds r1, #67 ; 0x43
|
|
18254: 7008 strb r0, [r1, #0]
|
|
18256: 0021 movs r1, r4
|
|
18258: 1c5a adds r2, r3, #1
|
|
1825a: 3145 adds r1, #69 ; 0x45
|
|
1825c: 7809 ldrb r1, [r1, #0]
|
|
1825e: 18a2 adds r2, r4, r2
|
|
18260: 3243 adds r2, #67 ; 0x43
|
|
18262: 3302 adds r3, #2
|
|
18264: 7011 strb r1, [r2, #0]
|
|
18266: e7c1 b.n 181ec <_printf_common+0x48>
|
|
18268: 0022 movs r2, r4
|
|
1826a: 2301 movs r3, #1
|
|
1826c: 321a adds r2, #26
|
|
1826e: 9901 ldr r1, [sp, #4]
|
|
18270: 9800 ldr r0, [sp, #0]
|
|
18272: 9e08 ldr r6, [sp, #32]
|
|
18274: 47b0 blx r6
|
|
18276: 1c43 adds r3, r0, #1
|
|
18278: d0e6 beq.n 18248 <_printf_common+0xa4>
|
|
1827a: 3701 adds r7, #1
|
|
1827c: e7d1 b.n 18222 <_printf_common+0x7e>
|
|
...
|
|
|
|
00018280 <_printf_i>:
|
|
18280: b5f0 push {r4, r5, r6, r7, lr}
|
|
18282: b08b sub sp, #44 ; 0x2c
|
|
18284: 9206 str r2, [sp, #24]
|
|
18286: 000a movs r2, r1
|
|
18288: 3243 adds r2, #67 ; 0x43
|
|
1828a: 9307 str r3, [sp, #28]
|
|
1828c: 9005 str r0, [sp, #20]
|
|
1828e: 9204 str r2, [sp, #16]
|
|
18290: 7e0a ldrb r2, [r1, #24]
|
|
18292: 000c movs r4, r1
|
|
18294: 9b10 ldr r3, [sp, #64] ; 0x40
|
|
18296: 2a6e cmp r2, #110 ; 0x6e
|
|
18298: d100 bne.n 1829c <_printf_i+0x1c>
|
|
1829a: e08f b.n 183bc <_printf_i+0x13c>
|
|
1829c: d817 bhi.n 182ce <_printf_i+0x4e>
|
|
1829e: 2a63 cmp r2, #99 ; 0x63
|
|
182a0: d02c beq.n 182fc <_printf_i+0x7c>
|
|
182a2: d808 bhi.n 182b6 <_printf_i+0x36>
|
|
182a4: 2a00 cmp r2, #0
|
|
182a6: d100 bne.n 182aa <_printf_i+0x2a>
|
|
182a8: e099 b.n 183de <_printf_i+0x15e>
|
|
182aa: 2a58 cmp r2, #88 ; 0x58
|
|
182ac: d054 beq.n 18358 <_printf_i+0xd8>
|
|
182ae: 0026 movs r6, r4
|
|
182b0: 3642 adds r6, #66 ; 0x42
|
|
182b2: 7032 strb r2, [r6, #0]
|
|
182b4: e029 b.n 1830a <_printf_i+0x8a>
|
|
182b6: 2a64 cmp r2, #100 ; 0x64
|
|
182b8: d001 beq.n 182be <_printf_i+0x3e>
|
|
182ba: 2a69 cmp r2, #105 ; 0x69
|
|
182bc: d1f7 bne.n 182ae <_printf_i+0x2e>
|
|
182be: 6821 ldr r1, [r4, #0]
|
|
182c0: 681a ldr r2, [r3, #0]
|
|
182c2: 0608 lsls r0, r1, #24
|
|
182c4: d523 bpl.n 1830e <_printf_i+0x8e>
|
|
182c6: 1d11 adds r1, r2, #4
|
|
182c8: 6019 str r1, [r3, #0]
|
|
182ca: 6815 ldr r5, [r2, #0]
|
|
182cc: e025 b.n 1831a <_printf_i+0x9a>
|
|
182ce: 2a73 cmp r2, #115 ; 0x73
|
|
182d0: d100 bne.n 182d4 <_printf_i+0x54>
|
|
182d2: e088 b.n 183e6 <_printf_i+0x166>
|
|
182d4: d808 bhi.n 182e8 <_printf_i+0x68>
|
|
182d6: 2a6f cmp r2, #111 ; 0x6f
|
|
182d8: d029 beq.n 1832e <_printf_i+0xae>
|
|
182da: 2a70 cmp r2, #112 ; 0x70
|
|
182dc: d1e7 bne.n 182ae <_printf_i+0x2e>
|
|
182de: 2220 movs r2, #32
|
|
182e0: 6809 ldr r1, [r1, #0]
|
|
182e2: 430a orrs r2, r1
|
|
182e4: 6022 str r2, [r4, #0]
|
|
182e6: e003 b.n 182f0 <_printf_i+0x70>
|
|
182e8: 2a75 cmp r2, #117 ; 0x75
|
|
182ea: d020 beq.n 1832e <_printf_i+0xae>
|
|
182ec: 2a78 cmp r2, #120 ; 0x78
|
|
182ee: d1de bne.n 182ae <_printf_i+0x2e>
|
|
182f0: 0022 movs r2, r4
|
|
182f2: 2178 movs r1, #120 ; 0x78
|
|
182f4: 3245 adds r2, #69 ; 0x45
|
|
182f6: 7011 strb r1, [r2, #0]
|
|
182f8: 4a6c ldr r2, [pc, #432] ; (184ac <_printf_i+0x22c>)
|
|
182fa: e030 b.n 1835e <_printf_i+0xde>
|
|
182fc: 000e movs r6, r1
|
|
182fe: 681a ldr r2, [r3, #0]
|
|
18300: 3642 adds r6, #66 ; 0x42
|
|
18302: 1d11 adds r1, r2, #4
|
|
18304: 6019 str r1, [r3, #0]
|
|
18306: 6813 ldr r3, [r2, #0]
|
|
18308: 7033 strb r3, [r6, #0]
|
|
1830a: 2301 movs r3, #1
|
|
1830c: e079 b.n 18402 <_printf_i+0x182>
|
|
1830e: 0649 lsls r1, r1, #25
|
|
18310: d5d9 bpl.n 182c6 <_printf_i+0x46>
|
|
18312: 1d11 adds r1, r2, #4
|
|
18314: 6019 str r1, [r3, #0]
|
|
18316: 2300 movs r3, #0
|
|
18318: 5ed5 ldrsh r5, [r2, r3]
|
|
1831a: 2d00 cmp r5, #0
|
|
1831c: da03 bge.n 18326 <_printf_i+0xa6>
|
|
1831e: 232d movs r3, #45 ; 0x2d
|
|
18320: 9a04 ldr r2, [sp, #16]
|
|
18322: 426d negs r5, r5
|
|
18324: 7013 strb r3, [r2, #0]
|
|
18326: 4b62 ldr r3, [pc, #392] ; (184b0 <_printf_i+0x230>)
|
|
18328: 270a movs r7, #10
|
|
1832a: 9303 str r3, [sp, #12]
|
|
1832c: e02f b.n 1838e <_printf_i+0x10e>
|
|
1832e: 6820 ldr r0, [r4, #0]
|
|
18330: 6819 ldr r1, [r3, #0]
|
|
18332: 0605 lsls r5, r0, #24
|
|
18334: d503 bpl.n 1833e <_printf_i+0xbe>
|
|
18336: 1d08 adds r0, r1, #4
|
|
18338: 6018 str r0, [r3, #0]
|
|
1833a: 680d ldr r5, [r1, #0]
|
|
1833c: e005 b.n 1834a <_printf_i+0xca>
|
|
1833e: 0640 lsls r0, r0, #25
|
|
18340: d5f9 bpl.n 18336 <_printf_i+0xb6>
|
|
18342: 680d ldr r5, [r1, #0]
|
|
18344: 1d08 adds r0, r1, #4
|
|
18346: 6018 str r0, [r3, #0]
|
|
18348: b2ad uxth r5, r5
|
|
1834a: 4b59 ldr r3, [pc, #356] ; (184b0 <_printf_i+0x230>)
|
|
1834c: 2708 movs r7, #8
|
|
1834e: 9303 str r3, [sp, #12]
|
|
18350: 2a6f cmp r2, #111 ; 0x6f
|
|
18352: d018 beq.n 18386 <_printf_i+0x106>
|
|
18354: 270a movs r7, #10
|
|
18356: e016 b.n 18386 <_printf_i+0x106>
|
|
18358: 3145 adds r1, #69 ; 0x45
|
|
1835a: 700a strb r2, [r1, #0]
|
|
1835c: 4a54 ldr r2, [pc, #336] ; (184b0 <_printf_i+0x230>)
|
|
1835e: 9203 str r2, [sp, #12]
|
|
18360: 681a ldr r2, [r3, #0]
|
|
18362: 6821 ldr r1, [r4, #0]
|
|
18364: 1d10 adds r0, r2, #4
|
|
18366: 6018 str r0, [r3, #0]
|
|
18368: 6815 ldr r5, [r2, #0]
|
|
1836a: 0608 lsls r0, r1, #24
|
|
1836c: d522 bpl.n 183b4 <_printf_i+0x134>
|
|
1836e: 07cb lsls r3, r1, #31
|
|
18370: d502 bpl.n 18378 <_printf_i+0xf8>
|
|
18372: 2320 movs r3, #32
|
|
18374: 4319 orrs r1, r3
|
|
18376: 6021 str r1, [r4, #0]
|
|
18378: 2710 movs r7, #16
|
|
1837a: 2d00 cmp r5, #0
|
|
1837c: d103 bne.n 18386 <_printf_i+0x106>
|
|
1837e: 2320 movs r3, #32
|
|
18380: 6822 ldr r2, [r4, #0]
|
|
18382: 439a bics r2, r3
|
|
18384: 6022 str r2, [r4, #0]
|
|
18386: 0023 movs r3, r4
|
|
18388: 2200 movs r2, #0
|
|
1838a: 3343 adds r3, #67 ; 0x43
|
|
1838c: 701a strb r2, [r3, #0]
|
|
1838e: 6863 ldr r3, [r4, #4]
|
|
18390: 60a3 str r3, [r4, #8]
|
|
18392: 2b00 cmp r3, #0
|
|
18394: db5c blt.n 18450 <_printf_i+0x1d0>
|
|
18396: 2204 movs r2, #4
|
|
18398: 6821 ldr r1, [r4, #0]
|
|
1839a: 4391 bics r1, r2
|
|
1839c: 6021 str r1, [r4, #0]
|
|
1839e: 2d00 cmp r5, #0
|
|
183a0: d158 bne.n 18454 <_printf_i+0x1d4>
|
|
183a2: 9e04 ldr r6, [sp, #16]
|
|
183a4: 2b00 cmp r3, #0
|
|
183a6: d064 beq.n 18472 <_printf_i+0x1f2>
|
|
183a8: 0026 movs r6, r4
|
|
183aa: 9b03 ldr r3, [sp, #12]
|
|
183ac: 3642 adds r6, #66 ; 0x42
|
|
183ae: 781b ldrb r3, [r3, #0]
|
|
183b0: 7033 strb r3, [r6, #0]
|
|
183b2: e05e b.n 18472 <_printf_i+0x1f2>
|
|
183b4: 0648 lsls r0, r1, #25
|
|
183b6: d5da bpl.n 1836e <_printf_i+0xee>
|
|
183b8: b2ad uxth r5, r5
|
|
183ba: e7d8 b.n 1836e <_printf_i+0xee>
|
|
183bc: 6809 ldr r1, [r1, #0]
|
|
183be: 681a ldr r2, [r3, #0]
|
|
183c0: 0608 lsls r0, r1, #24
|
|
183c2: d505 bpl.n 183d0 <_printf_i+0x150>
|
|
183c4: 1d11 adds r1, r2, #4
|
|
183c6: 6019 str r1, [r3, #0]
|
|
183c8: 6813 ldr r3, [r2, #0]
|
|
183ca: 6962 ldr r2, [r4, #20]
|
|
183cc: 601a str r2, [r3, #0]
|
|
183ce: e006 b.n 183de <_printf_i+0x15e>
|
|
183d0: 0649 lsls r1, r1, #25
|
|
183d2: d5f7 bpl.n 183c4 <_printf_i+0x144>
|
|
183d4: 1d11 adds r1, r2, #4
|
|
183d6: 6019 str r1, [r3, #0]
|
|
183d8: 6813 ldr r3, [r2, #0]
|
|
183da: 8aa2 ldrh r2, [r4, #20]
|
|
183dc: 801a strh r2, [r3, #0]
|
|
183de: 2300 movs r3, #0
|
|
183e0: 9e04 ldr r6, [sp, #16]
|
|
183e2: 6123 str r3, [r4, #16]
|
|
183e4: e054 b.n 18490 <_printf_i+0x210>
|
|
183e6: 681a ldr r2, [r3, #0]
|
|
183e8: 1d11 adds r1, r2, #4
|
|
183ea: 6019 str r1, [r3, #0]
|
|
183ec: 6816 ldr r6, [r2, #0]
|
|
183ee: 2100 movs r1, #0
|
|
183f0: 6862 ldr r2, [r4, #4]
|
|
183f2: 0030 movs r0, r6
|
|
183f4: f000 f85e bl 184b4 <memchr>
|
|
183f8: 2800 cmp r0, #0
|
|
183fa: d001 beq.n 18400 <_printf_i+0x180>
|
|
183fc: 1b80 subs r0, r0, r6
|
|
183fe: 6060 str r0, [r4, #4]
|
|
18400: 6863 ldr r3, [r4, #4]
|
|
18402: 6123 str r3, [r4, #16]
|
|
18404: 2300 movs r3, #0
|
|
18406: 9a04 ldr r2, [sp, #16]
|
|
18408: 7013 strb r3, [r2, #0]
|
|
1840a: e041 b.n 18490 <_printf_i+0x210>
|
|
1840c: 6923 ldr r3, [r4, #16]
|
|
1840e: 0032 movs r2, r6
|
|
18410: 9906 ldr r1, [sp, #24]
|
|
18412: 9805 ldr r0, [sp, #20]
|
|
18414: 9d07 ldr r5, [sp, #28]
|
|
18416: 47a8 blx r5
|
|
18418: 1c43 adds r3, r0, #1
|
|
1841a: d043 beq.n 184a4 <_printf_i+0x224>
|
|
1841c: 6823 ldr r3, [r4, #0]
|
|
1841e: 2500 movs r5, #0
|
|
18420: 079b lsls r3, r3, #30
|
|
18422: d40f bmi.n 18444 <_printf_i+0x1c4>
|
|
18424: 9b09 ldr r3, [sp, #36] ; 0x24
|
|
18426: 68e0 ldr r0, [r4, #12]
|
|
18428: 4298 cmp r0, r3
|
|
1842a: da3d bge.n 184a8 <_printf_i+0x228>
|
|
1842c: 0018 movs r0, r3
|
|
1842e: e03b b.n 184a8 <_printf_i+0x228>
|
|
18430: 0022 movs r2, r4
|
|
18432: 2301 movs r3, #1
|
|
18434: 3219 adds r2, #25
|
|
18436: 9906 ldr r1, [sp, #24]
|
|
18438: 9805 ldr r0, [sp, #20]
|
|
1843a: 9e07 ldr r6, [sp, #28]
|
|
1843c: 47b0 blx r6
|
|
1843e: 1c43 adds r3, r0, #1
|
|
18440: d030 beq.n 184a4 <_printf_i+0x224>
|
|
18442: 3501 adds r5, #1
|
|
18444: 68e3 ldr r3, [r4, #12]
|
|
18446: 9a09 ldr r2, [sp, #36] ; 0x24
|
|
18448: 1a9b subs r3, r3, r2
|
|
1844a: 429d cmp r5, r3
|
|
1844c: dbf0 blt.n 18430 <_printf_i+0x1b0>
|
|
1844e: e7e9 b.n 18424 <_printf_i+0x1a4>
|
|
18450: 2d00 cmp r5, #0
|
|
18452: d0a9 beq.n 183a8 <_printf_i+0x128>
|
|
18454: 9e04 ldr r6, [sp, #16]
|
|
18456: 0028 movs r0, r5
|
|
18458: 0039 movs r1, r7
|
|
1845a: f7ff fa97 bl 1798c <__aeabi_uidivmod>
|
|
1845e: 9b03 ldr r3, [sp, #12]
|
|
18460: 3e01 subs r6, #1
|
|
18462: 5c5b ldrb r3, [r3, r1]
|
|
18464: 0028 movs r0, r5
|
|
18466: 7033 strb r3, [r6, #0]
|
|
18468: 0039 movs r1, r7
|
|
1846a: f7ff fa09 bl 17880 <__udivsi3>
|
|
1846e: 1e05 subs r5, r0, #0
|
|
18470: d1f1 bne.n 18456 <_printf_i+0x1d6>
|
|
18472: 2f08 cmp r7, #8
|
|
18474: d109 bne.n 1848a <_printf_i+0x20a>
|
|
18476: 6823 ldr r3, [r4, #0]
|
|
18478: 07db lsls r3, r3, #31
|
|
1847a: d506 bpl.n 1848a <_printf_i+0x20a>
|
|
1847c: 6863 ldr r3, [r4, #4]
|
|
1847e: 6922 ldr r2, [r4, #16]
|
|
18480: 4293 cmp r3, r2
|
|
18482: dc02 bgt.n 1848a <_printf_i+0x20a>
|
|
18484: 2330 movs r3, #48 ; 0x30
|
|
18486: 3e01 subs r6, #1
|
|
18488: 7033 strb r3, [r6, #0]
|
|
1848a: 9b04 ldr r3, [sp, #16]
|
|
1848c: 1b9b subs r3, r3, r6
|
|
1848e: 6123 str r3, [r4, #16]
|
|
18490: 9b07 ldr r3, [sp, #28]
|
|
18492: aa09 add r2, sp, #36 ; 0x24
|
|
18494: 9300 str r3, [sp, #0]
|
|
18496: 0021 movs r1, r4
|
|
18498: 9b06 ldr r3, [sp, #24]
|
|
1849a: 9805 ldr r0, [sp, #20]
|
|
1849c: f7ff fe82 bl 181a4 <_printf_common>
|
|
184a0: 1c43 adds r3, r0, #1
|
|
184a2: d1b3 bne.n 1840c <_printf_i+0x18c>
|
|
184a4: 2001 movs r0, #1
|
|
184a6: 4240 negs r0, r0
|
|
184a8: b00b add sp, #44 ; 0x2c
|
|
184aa: bdf0 pop {r4, r5, r6, r7, pc}
|
|
184ac: 0001c96e .word 0x0001c96e
|
|
184b0: 0001c95d .word 0x0001c95d
|
|
|
|
000184b4 <memchr>:
|
|
184b4: b2c9 uxtb r1, r1
|
|
184b6: 1882 adds r2, r0, r2
|
|
184b8: 4290 cmp r0, r2
|
|
184ba: d101 bne.n 184c0 <memchr+0xc>
|
|
184bc: 2000 movs r0, #0
|
|
184be: 4770 bx lr
|
|
184c0: 7803 ldrb r3, [r0, #0]
|
|
184c2: 428b cmp r3, r1
|
|
184c4: d0fb beq.n 184be <memchr+0xa>
|
|
184c6: 3001 adds r0, #1
|
|
184c8: e7f6 b.n 184b8 <memchr+0x4>
|
|
|
|
000184ca <memmove>:
|
|
184ca: b510 push {r4, lr}
|
|
184cc: 4288 cmp r0, r1
|
|
184ce: d902 bls.n 184d6 <memmove+0xc>
|
|
184d0: 188b adds r3, r1, r2
|
|
184d2: 4298 cmp r0, r3
|
|
184d4: d308 bcc.n 184e8 <memmove+0x1e>
|
|
184d6: 2300 movs r3, #0
|
|
184d8: 429a cmp r2, r3
|
|
184da: d007 beq.n 184ec <memmove+0x22>
|
|
184dc: 5ccc ldrb r4, [r1, r3]
|
|
184de: 54c4 strb r4, [r0, r3]
|
|
184e0: 3301 adds r3, #1
|
|
184e2: e7f9 b.n 184d8 <memmove+0xe>
|
|
184e4: 5c8b ldrb r3, [r1, r2]
|
|
184e6: 5483 strb r3, [r0, r2]
|
|
184e8: 3a01 subs r2, #1
|
|
184ea: d2fb bcs.n 184e4 <memmove+0x1a>
|
|
184ec: bd10 pop {r4, pc}
|
|
...
|
|
|
|
000184f0 <_free_r>:
|
|
184f0: b570 push {r4, r5, r6, lr}
|
|
184f2: 0005 movs r5, r0
|
|
184f4: 2900 cmp r1, #0
|
|
184f6: d010 beq.n 1851a <_free_r+0x2a>
|
|
184f8: 1f0c subs r4, r1, #4
|
|
184fa: 6823 ldr r3, [r4, #0]
|
|
184fc: 2b00 cmp r3, #0
|
|
184fe: da00 bge.n 18502 <_free_r+0x12>
|
|
18500: 18e4 adds r4, r4, r3
|
|
18502: 0028 movs r0, r5
|
|
18504: f000 f8d4 bl 186b0 <__malloc_lock>
|
|
18508: 4a1d ldr r2, [pc, #116] ; (18580 <_free_r+0x90>)
|
|
1850a: 6813 ldr r3, [r2, #0]
|
|
1850c: 2b00 cmp r3, #0
|
|
1850e: d105 bne.n 1851c <_free_r+0x2c>
|
|
18510: 6063 str r3, [r4, #4]
|
|
18512: 6014 str r4, [r2, #0]
|
|
18514: 0028 movs r0, r5
|
|
18516: f000 f8cc bl 186b2 <__malloc_unlock>
|
|
1851a: bd70 pop {r4, r5, r6, pc}
|
|
1851c: 42a3 cmp r3, r4
|
|
1851e: d909 bls.n 18534 <_free_r+0x44>
|
|
18520: 6821 ldr r1, [r4, #0]
|
|
18522: 1860 adds r0, r4, r1
|
|
18524: 4283 cmp r3, r0
|
|
18526: d1f3 bne.n 18510 <_free_r+0x20>
|
|
18528: 6818 ldr r0, [r3, #0]
|
|
1852a: 685b ldr r3, [r3, #4]
|
|
1852c: 1841 adds r1, r0, r1
|
|
1852e: 6021 str r1, [r4, #0]
|
|
18530: e7ee b.n 18510 <_free_r+0x20>
|
|
18532: 0013 movs r3, r2
|
|
18534: 685a ldr r2, [r3, #4]
|
|
18536: 2a00 cmp r2, #0
|
|
18538: d001 beq.n 1853e <_free_r+0x4e>
|
|
1853a: 42a2 cmp r2, r4
|
|
1853c: d9f9 bls.n 18532 <_free_r+0x42>
|
|
1853e: 6819 ldr r1, [r3, #0]
|
|
18540: 1858 adds r0, r3, r1
|
|
18542: 42a0 cmp r0, r4
|
|
18544: d10b bne.n 1855e <_free_r+0x6e>
|
|
18546: 6820 ldr r0, [r4, #0]
|
|
18548: 1809 adds r1, r1, r0
|
|
1854a: 1858 adds r0, r3, r1
|
|
1854c: 6019 str r1, [r3, #0]
|
|
1854e: 4282 cmp r2, r0
|
|
18550: d1e0 bne.n 18514 <_free_r+0x24>
|
|
18552: 6810 ldr r0, [r2, #0]
|
|
18554: 6852 ldr r2, [r2, #4]
|
|
18556: 1841 adds r1, r0, r1
|
|
18558: 6019 str r1, [r3, #0]
|
|
1855a: 605a str r2, [r3, #4]
|
|
1855c: e7da b.n 18514 <_free_r+0x24>
|
|
1855e: 42a0 cmp r0, r4
|
|
18560: d902 bls.n 18568 <_free_r+0x78>
|
|
18562: 230c movs r3, #12
|
|
18564: 602b str r3, [r5, #0]
|
|
18566: e7d5 b.n 18514 <_free_r+0x24>
|
|
18568: 6821 ldr r1, [r4, #0]
|
|
1856a: 1860 adds r0, r4, r1
|
|
1856c: 4282 cmp r2, r0
|
|
1856e: d103 bne.n 18578 <_free_r+0x88>
|
|
18570: 6810 ldr r0, [r2, #0]
|
|
18572: 6852 ldr r2, [r2, #4]
|
|
18574: 1841 adds r1, r0, r1
|
|
18576: 6021 str r1, [r4, #0]
|
|
18578: 6062 str r2, [r4, #4]
|
|
1857a: 605c str r4, [r3, #4]
|
|
1857c: e7ca b.n 18514 <_free_r+0x24>
|
|
1857e: 46c0 nop ; (mov r8, r8)
|
|
18580: 20004c8c .word 0x20004c8c
|
|
|
|
00018584 <_malloc_r>:
|
|
18584: 2303 movs r3, #3
|
|
18586: b570 push {r4, r5, r6, lr}
|
|
18588: 1ccd adds r5, r1, #3
|
|
1858a: 439d bics r5, r3
|
|
1858c: 3508 adds r5, #8
|
|
1858e: 0006 movs r6, r0
|
|
18590: 2d0c cmp r5, #12
|
|
18592: d21e bcs.n 185d2 <_malloc_r+0x4e>
|
|
18594: 250c movs r5, #12
|
|
18596: 42a9 cmp r1, r5
|
|
18598: d81d bhi.n 185d6 <_malloc_r+0x52>
|
|
1859a: 0030 movs r0, r6
|
|
1859c: f000 f888 bl 186b0 <__malloc_lock>
|
|
185a0: 4a25 ldr r2, [pc, #148] ; (18638 <_malloc_r+0xb4>)
|
|
185a2: 6814 ldr r4, [r2, #0]
|
|
185a4: 0021 movs r1, r4
|
|
185a6: 2900 cmp r1, #0
|
|
185a8: d119 bne.n 185de <_malloc_r+0x5a>
|
|
185aa: 4c24 ldr r4, [pc, #144] ; (1863c <_malloc_r+0xb8>)
|
|
185ac: 6823 ldr r3, [r4, #0]
|
|
185ae: 2b00 cmp r3, #0
|
|
185b0: d103 bne.n 185ba <_malloc_r+0x36>
|
|
185b2: 0030 movs r0, r6
|
|
185b4: f000 f86a bl 1868c <_sbrk_r>
|
|
185b8: 6020 str r0, [r4, #0]
|
|
185ba: 0029 movs r1, r5
|
|
185bc: 0030 movs r0, r6
|
|
185be: f000 f865 bl 1868c <_sbrk_r>
|
|
185c2: 1c43 adds r3, r0, #1
|
|
185c4: d12c bne.n 18620 <_malloc_r+0x9c>
|
|
185c6: 230c movs r3, #12
|
|
185c8: 0030 movs r0, r6
|
|
185ca: 6033 str r3, [r6, #0]
|
|
185cc: f000 f871 bl 186b2 <__malloc_unlock>
|
|
185d0: e003 b.n 185da <_malloc_r+0x56>
|
|
185d2: 2d00 cmp r5, #0
|
|
185d4: dadf bge.n 18596 <_malloc_r+0x12>
|
|
185d6: 230c movs r3, #12
|
|
185d8: 6033 str r3, [r6, #0]
|
|
185da: 2000 movs r0, #0
|
|
185dc: bd70 pop {r4, r5, r6, pc}
|
|
185de: 680b ldr r3, [r1, #0]
|
|
185e0: 1b5b subs r3, r3, r5
|
|
185e2: d41a bmi.n 1861a <_malloc_r+0x96>
|
|
185e4: 2b0b cmp r3, #11
|
|
185e6: d903 bls.n 185f0 <_malloc_r+0x6c>
|
|
185e8: 600b str r3, [r1, #0]
|
|
185ea: 18cc adds r4, r1, r3
|
|
185ec: 6025 str r5, [r4, #0]
|
|
185ee: e003 b.n 185f8 <_malloc_r+0x74>
|
|
185f0: 428c cmp r4, r1
|
|
185f2: d10e bne.n 18612 <_malloc_r+0x8e>
|
|
185f4: 6863 ldr r3, [r4, #4]
|
|
185f6: 6013 str r3, [r2, #0]
|
|
185f8: 0030 movs r0, r6
|
|
185fa: f000 f85a bl 186b2 <__malloc_unlock>
|
|
185fe: 0020 movs r0, r4
|
|
18600: 2207 movs r2, #7
|
|
18602: 300b adds r0, #11
|
|
18604: 1d23 adds r3, r4, #4
|
|
18606: 4390 bics r0, r2
|
|
18608: 1ac3 subs r3, r0, r3
|
|
1860a: d0e7 beq.n 185dc <_malloc_r+0x58>
|
|
1860c: 425a negs r2, r3
|
|
1860e: 50e2 str r2, [r4, r3]
|
|
18610: e7e4 b.n 185dc <_malloc_r+0x58>
|
|
18612: 684b ldr r3, [r1, #4]
|
|
18614: 6063 str r3, [r4, #4]
|
|
18616: 000c movs r4, r1
|
|
18618: e7ee b.n 185f8 <_malloc_r+0x74>
|
|
1861a: 000c movs r4, r1
|
|
1861c: 6849 ldr r1, [r1, #4]
|
|
1861e: e7c2 b.n 185a6 <_malloc_r+0x22>
|
|
18620: 2303 movs r3, #3
|
|
18622: 1cc4 adds r4, r0, #3
|
|
18624: 439c bics r4, r3
|
|
18626: 42a0 cmp r0, r4
|
|
18628: d0e0 beq.n 185ec <_malloc_r+0x68>
|
|
1862a: 1a21 subs r1, r4, r0
|
|
1862c: 0030 movs r0, r6
|
|
1862e: f000 f82d bl 1868c <_sbrk_r>
|
|
18632: 1c43 adds r3, r0, #1
|
|
18634: d1da bne.n 185ec <_malloc_r+0x68>
|
|
18636: e7c6 b.n 185c6 <_malloc_r+0x42>
|
|
18638: 20004c8c .word 0x20004c8c
|
|
1863c: 20004c90 .word 0x20004c90
|
|
|
|
00018640 <_realloc_r>:
|
|
18640: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
18642: 0007 movs r7, r0
|
|
18644: 000d movs r5, r1
|
|
18646: 0016 movs r6, r2
|
|
18648: 2900 cmp r1, #0
|
|
1864a: d105 bne.n 18658 <_realloc_r+0x18>
|
|
1864c: 0011 movs r1, r2
|
|
1864e: f7ff ff99 bl 18584 <_malloc_r>
|
|
18652: 0004 movs r4, r0
|
|
18654: 0020 movs r0, r4
|
|
18656: bdf8 pop {r3, r4, r5, r6, r7, pc}
|
|
18658: 2a00 cmp r2, #0
|
|
1865a: d103 bne.n 18664 <_realloc_r+0x24>
|
|
1865c: f7ff ff48 bl 184f0 <_free_r>
|
|
18660: 0034 movs r4, r6
|
|
18662: e7f7 b.n 18654 <_realloc_r+0x14>
|
|
18664: f000 f826 bl 186b4 <_malloc_usable_size_r>
|
|
18668: 002c movs r4, r5
|
|
1866a: 4286 cmp r6, r0
|
|
1866c: d9f2 bls.n 18654 <_realloc_r+0x14>
|
|
1866e: 0031 movs r1, r6
|
|
18670: 0038 movs r0, r7
|
|
18672: f7ff ff87 bl 18584 <_malloc_r>
|
|
18676: 1e04 subs r4, r0, #0
|
|
18678: d0ec beq.n 18654 <_realloc_r+0x14>
|
|
1867a: 0029 movs r1, r5
|
|
1867c: 0032 movs r2, r6
|
|
1867e: f7ff fbdc bl 17e3a <memcpy>
|
|
18682: 0029 movs r1, r5
|
|
18684: 0038 movs r0, r7
|
|
18686: f7ff ff33 bl 184f0 <_free_r>
|
|
1868a: e7e3 b.n 18654 <_realloc_r+0x14>
|
|
|
|
0001868c <_sbrk_r>:
|
|
1868c: 2300 movs r3, #0
|
|
1868e: b570 push {r4, r5, r6, lr}
|
|
18690: 4c06 ldr r4, [pc, #24] ; (186ac <_sbrk_r+0x20>)
|
|
18692: 0005 movs r5, r0
|
|
18694: 0008 movs r0, r1
|
|
18696: 6023 str r3, [r4, #0]
|
|
18698: f7e8 fede bl 1458 <_sbrk>
|
|
1869c: 1c43 adds r3, r0, #1
|
|
1869e: d103 bne.n 186a8 <_sbrk_r+0x1c>
|
|
186a0: 6823 ldr r3, [r4, #0]
|
|
186a2: 2b00 cmp r3, #0
|
|
186a4: d000 beq.n 186a8 <_sbrk_r+0x1c>
|
|
186a6: 602b str r3, [r5, #0]
|
|
186a8: bd70 pop {r4, r5, r6, pc}
|
|
186aa: 46c0 nop ; (mov r8, r8)
|
|
186ac: 20004e34 .word 0x20004e34
|
|
|
|
000186b0 <__malloc_lock>:
|
|
186b0: 4770 bx lr
|
|
|
|
000186b2 <__malloc_unlock>:
|
|
186b2: 4770 bx lr
|
|
|
|
000186b4 <_malloc_usable_size_r>:
|
|
186b4: 1f0b subs r3, r1, #4
|
|
186b6: 681b ldr r3, [r3, #0]
|
|
186b8: 1f18 subs r0, r3, #4
|
|
186ba: 2b00 cmp r3, #0
|
|
186bc: da01 bge.n 186c2 <_malloc_usable_size_r+0xe>
|
|
186be: 580b ldr r3, [r1, r0]
|
|
186c0: 18c0 adds r0, r0, r3
|
|
186c2: 4770 bx lr
|
|
186c4: 42000800 .word 0x42000800
|
|
186c8: 42000c00 .word 0x42000c00
|
|
186cc: 42001000 .word 0x42001000
|
|
186d0: 42001400 .word 0x42001400
|
|
186d4: 42001800 .word 0x42001800
|
|
186d8: 42001c00 .word 0x42001c00
|
|
186dc: 00000dae .word 0x00000dae
|
|
186e0: 00000daa .word 0x00000daa
|
|
186e4: 00000daa .word 0x00000daa
|
|
186e8: 00000e10 .word 0x00000e10
|
|
186ec: 00000e10 .word 0x00000e10
|
|
186f0: 00000dc2 .word 0x00000dc2
|
|
186f4: 00000db4 .word 0x00000db4
|
|
186f8: 00000dc8 .word 0x00000dc8
|
|
186fc: 00000dfe .word 0x00000dfe
|
|
18700: 00000e98 .word 0x00000e98
|
|
18704: 00000e78 .word 0x00000e78
|
|
18708: 00000e78 .word 0x00000e78
|
|
1870c: 00000f04 .word 0x00000f04
|
|
18710: 00000e8a .word 0x00000e8a
|
|
18714: 00000ea6 .word 0x00000ea6
|
|
18718: 00000e7c .word 0x00000e7c
|
|
1871c: 00000eb4 .word 0x00000eb4
|
|
18720: 00000ef4 .word 0x00000ef4
|
|
18724: 2074754f .word 0x2074754f
|
|
18728: 6d20666f .word 0x6d20666f
|
|
1872c: 726f6d65 .word 0x726f6d65
|
|
18730: 0079 .short 0x0079
|
|
18732: f800 .short 0xf800
|
|
18734: 000022aa .word 0x000022aa
|
|
18738: 00002326 .word 0x00002326
|
|
1873c: 00002330 .word 0x00002330
|
|
18740: 00002346 .word 0x00002346
|
|
18744: 00002356 .word 0x00002356
|
|
18748: 00002366 .word 0x00002366
|
|
1874c: 00002384 .word 0x00002384
|
|
18750: 0000239c .word 0x0000239c
|
|
18754: 000023b2 .word 0x000023b2
|
|
18758: 000023d0 .word 0x000023d0
|
|
1875c: 000023da .word 0x000023da
|
|
18760: 000023f0 .word 0x000023f0
|
|
18764: 00002400 .word 0x00002400
|
|
18768: 00002410 .word 0x00002410
|
|
1876c: 0000242e .word 0x0000242e
|
|
18770: 00002446 .word 0x00002446
|
|
18774: 00002450 .word 0x00002450
|
|
18778: 00002466 .word 0x00002466
|
|
1877c: 00002476 .word 0x00002476
|
|
18780: 00002486 .word 0x00002486
|
|
18784: 000024a4 .word 0x000024a4
|
|
18788: 0000ffff .word 0x0000ffff
|
|
1878c: 4c4c554e .word 0x4c4c554e
|
|
18790: 696f7020 .word 0x696f7020
|
|
18794: 7265746e .word 0x7265746e
|
|
18798: 00000000 .word 0x00000000
|
|
1879c: 6f5f766c .word 0x6f5f766c
|
|
187a0: 00006a62 .word 0x00006a62
|
|
187a4: 000007e0 .word 0x000007e0
|
|
187a8: 00007ef4 .word 0x00007ef4
|
|
187ac: 00007ef8 .word 0x00007ef8
|
|
187b0: 00007ef4 .word 0x00007ef4
|
|
187b4: 00007efc .word 0x00007efc
|
|
187b8: 00007f00 .word 0x00007f00
|
|
187bc: 00007f04 .word 0x00007f04
|
|
187c0: 00007f08 .word 0x00007f08
|
|
187c4: 00007efc .word 0x00007efc
|
|
187c8: 00007f00 .word 0x00007f00
|
|
187cc: 00007f04 .word 0x00007f04
|
|
187d0: 00007f08 .word 0x00007f08
|
|
187d4: 0000ffff .word 0x0000ffff
|
|
187d8: 640a6f4e .word 0x640a6f4e
|
|
187dc: 00617461 .word 0x00617461
|
|
187e0: 000081b8 .word 0x000081b8
|
|
187e4: 000081a0 .word 0x000081a0
|
|
187e8: 000081a4 .word 0x000081a4
|
|
187ec: 000081a8 .word 0x000081a8
|
|
187f0: 000081ac .word 0x000081ac
|
|
187f4: 000081b0 .word 0x000081b0
|
|
187f8: 000000ff .word 0x000000ff
|
|
|
|
000187fc <_lv_bpp1_opa_table>:
|
|
187fc: 0000ff00 ....
|
|
|
|
00018800 <_lv_bpp2_opa_table>:
|
|
18800: ffaa5500 .U..
|
|
|
|
00018804 <_lv_bpp4_opa_table>:
|
|
18804: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........
|
|
|
|
00018814 <_lv_bpp8_opa_table>:
|
|
18814: 03020100 07060504 0b0a0908 0f0e0d0c ................
|
|
18824: 13121110 17161514 1b1a1918 1f1e1d1c ................
|
|
18834: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./
|
|
18844: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>?
|
|
18854: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO
|
|
18864: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_
|
|
18874: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno
|
|
18884: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~.
|
|
18894: 83828180 87868584 8b8a8988 8f8e8d8c ................
|
|
188a4: 93929190 97969594 9b9a9998 9f9e9d9c ................
|
|
188b4: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................
|
|
188c4: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................
|
|
188d4: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................
|
|
188e4: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................
|
|
188f4: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................
|
|
18904: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................
|
|
|
|
00018914 <wcorr.9232>:
|
|
18914: 81808080 83828281 87868584 8d8c8a89 ................
|
|
18924: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................
|
|
18934: 000000b5 0000ffff 33221100 77665544 .........."3DUfw
|
|
18944: bbaa9988 ffeeddcc 33221100 77665544 .........."3DUfw
|
|
18954: bbaa9988 ffeeddcc 006e6962 0000eabc ........bin.....
|
|
18964: 0000eac2 0000ea58 0000eaaa 0000eab0 ....X...........
|
|
18974: 0000eabc 0000eabc 0000eabc 0000eab6 ................
|
|
18984: 0000ecf8 0000ecfc 0000ecc2 0000ecec ................
|
|
18994: 0000ecf0 0000ecf8 0000ecf8 0000ecf8 ................
|
|
189a4: 0000ecf4 0000eca2 0000eca6 0000ec6c ............l...
|
|
189b4: 0000ec96 0000ec9a 0000eca2 0000eca2 ................
|
|
189c4: 0000eca2 0000ec9e 0000ebf2 0000ebf6 ................
|
|
189d4: 0000ebcc 0000ebe6 0000ebea 0000ebf2 ................
|
|
189e4: 0000ebf2 0000ebf2 0000ebee 0000ed70 ............p...
|
|
189f4: 0000edc4 0000edca 0000edd0 0000edd6 ................
|
|
18a04: 0000eddc 0000ede2 0000ede8 0000ee98 ................
|
|
18a14: 0000ee9c 0000ee88 0000ee8c 0000ee90 ................
|
|
18a24: 0000ee98 0000ee98 0000ee98 0000ee94 ................
|
|
18a34: 0000f0f8 0000f0fc 0000f0e8 0000f0ec ................
|
|
18a44: 0000f0f0 0000f0f8 0000f0f8 0000f0f8 ................
|
|
18a54: 0000f0f4 0000f070 0000f0a0 0000f060 ....p.......`...
|
|
18a64: 0000f064 0000f068 0000f070 0000f070 d...h...p...p...
|
|
18a74: 0000f070 0000f06c 0000f038 0000f03e p...l...8...>...
|
|
18a84: 0000eff4 0000f026 0000f02c 0000f038 ....&...,...8...
|
|
18a94: 0000f038 0000f038 0000f032 0000f172 8...8...2...r...
|
|
18aa4: 0000f1ce 0000f1d4 0000f1da 0000f1e0 ................
|
|
18ab4: 0000f1e6 0000f1ec 0000f1f2 ............
|
|
|
|
00018ac0 <cmaps>:
|
|
18ac0: 00000020 0001005f 00000000 00000000 ..._...........
|
|
18ad0: 00000000 000000b0 0060f7f3 0001c6f0 ..........`.....
|
|
18ae0: 00000000 0002003b ....;...
|
|
|
|
00018ae8 <glyph_dsc>:
|
|
...
|
|
18af0: 04500000 00000000 04500000 00010c03 ..P.......P.....
|
|
18b00: 06400012 07010505 0b40001f 00000c0b ..@.......@.....
|
|
18b10: 09f00061 fe00100a 0d8000b1 00000c0d a...............
|
|
18b20: 0b0000ff ff000d0b 03600147 07010502 ........G.`.....
|
|
18b30: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p.....
|
|
18b40: 06600188 05000707 095001a1 02010808 ..`.......P.....
|
|
18b50: 03a001c1 fe000503 062001c9 03000306 .......... .....
|
|
18b60: 03a001d2 00000303 05a001d7 feff1008 ................
|
|
18b70: 0ab00217 00000c0a 05f00253 00000c05 ........S.......
|
|
18b80: 09300271 00000c09 092002a7 00000c09 q.0....... .....
|
|
18b90: 0ab002dd 00000c0b 0930031f 00000c09 ..........0.....
|
|
18ba0: 09e00355 00000c0a 09900391 00000c09 U...............
|
|
18bb0: 0a5003c7 00000c0a 09e00403 00000c0a ..P.............
|
|
18bc0: 03a0043f 00000903 03a0044d fd000c03 ?.......M.......
|
|
18bd0: 0950045f 02010808 0950047f 03010608 _.P.......P.....
|
|
18be0: 09500497 02010808 093004b7 00000c09 ..P.......0.....
|
|
18bf0: 109004ed fd000f10 0bb00565 00ff0c0d ........e.......
|
|
18c00: 0c2005b3 00010c0b 0b9005f5 00000c0b .. .............
|
|
18c10: 0d300637 00010c0c 0ac0067f 00010c09 7.0.............
|
|
18c20: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`.....
|
|
18c30: 0d000733 00010c0b 04f00775 00010c03 3.......u.......
|
|
18c40: 08300787 00ff0c08 0b8007b7 00010c0b ..0.............
|
|
18c50: 098007f9 00010c09 0f40082f 00010c0d ......../.@.....
|
|
18c60: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p.....
|
|
18c70: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p.....
|
|
18c80: 0ba009b2 00010c0a 09f009ee 00000c0a ................
|
|
18c90: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f.......
|
|
18ca0: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`.............
|
|
18cb0: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`.....
|
|
18cc0: 0a800bec 00000c0b 05500c2e fd010f05 ..........P.....
|
|
18cd0: 05a00c54 feff1008 05500c94 fd000f04 T.........P.....
|
|
18ce0: 09500cb2 02010708 08000cce fe000208 ..P.............
|
|
18cf0: 09a00cd6 0a010205 09900cdb 00000909 ................
|
|
18d00: 0af00d04 00010c0a 09200d40 00000909 ........@. .....
|
|
18d10: 0af00d69 00000c0a 09d00da5 0000090a i...............
|
|
18d20: 05a00dd2 00000c07 0b100dfc fd000c0a ................
|
|
18d30: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p.....
|
|
18d40: 04900e80 fdfe0f06 09e00ead 00010c09 ................
|
|
18d50: 04700ee3 00010c02 10f00eef 0001090f ..p.............
|
|
18d60: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0.....
|
|
18d70: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................
|
|
18d80: 06901001 00010906 0800101c 00000908 ................
|
|
18d90: 06a01040 00000b07 0ad01067 00010909 @.......g.......
|
|
18da0: 08f01090 00ff090a 0e6010bd 0000090f ..........`.....
|
|
18db0: 08d01101 00000909 08f0112a fdff0c0a ........*.......
|
|
18dc0: 08501166 00000908 05a0118a fd000f06 f.P.............
|
|
18dd0: 04d011b7 fd010f03 05a011ce fd000f05 ................
|
|
18de0: 095011f4 04000509 06b0120b 06000606 ..P.............
|
|
18df0: 0500121d 03010403 10001223 fe001110 ........#.......
|
|
18e00: 100012ab 00000c10 1000130b ff000e10 ................
|
|
18e10: 1000137b 00000c10 0b0013db 00000c0b {...............
|
|
18e20: 1000141d fe001010 1000149d fe001010 ................
|
|
18e30: 1200151d ff000e12 1000159b fe001010 ................
|
|
18e40: 1200161b 00000c12 10001687 fe001010 ................
|
|
18e50: 08001707 ff000e08 0c00173f ff000e0c ........?.......
|
|
18e60: 12001793 fe001012 10001823 00000c10 ........#.......
|
|
18e70: 0e001883 fe02100a 0e0018d3 fd00120e ................
|
|
18e80: 0e001951 ff000f0e 0e0019ba ff000e0e Q...............
|
|
18e90: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l.......
|
|
18ea0: 0a001adc ff000e0a 0a001b22 ff000e0a ........".......
|
|
18eb0: 0e001b68 ff000e0e 0e001bca 0400040e h...............
|
|
18ec0: 12001be6 00000c12 14001c52 fe001014 ........R.......
|
|
18ed0: 12001cf2 feff1014 10001d92 fe001010 ................
|
|
18ee0: 0e001e12 01000a0e 0e001e58 01000a0e ........X.......
|
|
18ef0: 14001e9e ff000e14 10001f2a 00000c10 ........*.......
|
|
18f00: 10001f8a fe001010 1000200a feff1111 ......... ......
|
|
18f10: 0e00209b ff000e0f 0e002104 fe00100e . .......!......
|
|
18f20: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!......
|
|
18f30: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."......
|
|
18f40: 12002316 00000c12 10002382 fdff1212 .#.......#......
|
|
18f50: 0c002424 fe00100c 14002484 ff000f14 $$.......$......
|
|
18f60: 1400251a 01000a14 1400257e 01000a14 .%......~%......
|
|
18f70: 140025e2 01000a14 14002646 01000a14 .%......F&......
|
|
18f80: 140026aa 01000a14 1400270e ff000e15 .&.......'......
|
|
18f90: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(......
|
|
18fa0: 10002871 fdff1111 14002902 00000c14 q(.......)......
|
|
18fb0: 0c00297a fe00100c 102029da 01000b11 z).......) .....
|
|
|
|
00018fc0 <gylph_bitmap>:
|
|
18fc0: aff00bbf 089ee00a c0078cd0 bf100000 ................
|
|
18fd0: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r...
|
|
18fe0: e003c005 007a0000 0900005c 01a00780 ......z.\.......
|
|
18ff0: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0.....
|
|
19000: 0e100f00 f0020030 9f00f200 ffffffff ....0...........
|
|
19010: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p..
|
|
19020: 79000000 00000000 00000079 20e9ff5c ...y....y...\..
|
|
19030: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y...
|
|
19040: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@..
|
|
19050: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../..
|
|
19060: ae03a0af 0000d7ff 00007900 00790000 .........y....y.
|
|
19070: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L.
|
|
19080: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P
|
|
19090: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<...
|
|
190a0: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... <
|
|
190b0: 0b003d00 09e20070 00d00680 00a0dd04 .=..p...........
|
|
190c0: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}..
|
|
190d0: a01cc00c ae3f0000 010000c1 0000c0df ......?.........
|
|
190e0: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@...
|
|
190f0: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0
|
|
19100: 000000a5 f5000000 72e4e4f5 f205da00 ...........r....
|
|
19110: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._
|
|
19120: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0....
|
|
19130: e900f601 ad00bc00 ad00ae00 e900bc00 ................
|
|
19140: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+
|
|
19150: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........
|
|
19160: 10050000 500f0000 500f0000 511f0100 .......P...P...Q
|
|
19170: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P
|
|
19180: fd520900 0fc5a00b 10110100 04f3ff1f ..R.............
|
|
19190: 12034044 00901efc 00f10500 00b00a00 D@..............
|
|
191a0: 00600f00 00105f00 0000ab00 0000f600 ..`.._..........
|
|
191b0: 0000f105 0000b00a 0000600f 0000104f .........`..O...
|
|
191c0: 000000ac 040000f6 0a0000f1 0e0000c0 ................
|
|
191d0: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............
|
|
191e0: 00f50770 c00df20a 1ff80100 dc000080 p...............
|
|
191f0: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`.........
|
|
19200: f80100c0 0a00f507 a8cf00f2 080070cf .............p..
|
|
19210: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0
|
|
19220: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0.
|
|
19230: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(.....
|
|
19240: 00f20700 00af0000 804f0000 c03f0000 ..........O...?.
|
|
19250: c13e0000 c12e0000 d12e0000 f82e0000 ..>.............
|
|
19260: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww..
|
|
19270: e10c0000 f3090000 f6050000 df000000 ................
|
|
19280: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d
|
|
19290: f3080040 fb8cc9bf d7ff7c00 01000000 @........|......
|
|
192a0: 000000eb 0010be00 506f0000 2f000000 ..........oP.../
|
|
192b0: 00000090 0000d00c 01f30800 f80300d5 ................
|
|
192c0: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U
|
|
192d0: 52f95655 2f000000 00000060 0500f602 UV.R.../`.......
|
|
192e0: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........
|
|
192f0: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. .
|
|
19300: 00f80400 920f0000 f6050050 fd8ad98f ........P.......
|
|
19310: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p.
|
|
19320: 000000f8 0000d00c 00801f00 682f0000 ............../h
|
|
19330: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../.......
|
|
19340: f109f602 01f30600 b09f86de d8ef1900 ................
|
|
19350: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU.
|
|
19360: 00e00b00 00f80200 109f0000 b00f0000 ................
|
|
19370: f4060000 dd000000 3f000000 0a000070 ...........?p...
|
|
19380: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v.
|
|
19390: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^.
|
|
193a0: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O
|
|
193b0: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l
|
|
193c0: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P.
|
|
193d0: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0.......
|
|
193e0: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1.......
|
|
193f0: 9f000000 8da70930 df0700f7 1e0040eb ....0........@..
|
|
19400: 1003fc92 00000000 1efc1203 fc921e90 ................
|
|
19410: 00001003 01000000 a8d01fe9 00a0300e .............0..
|
|
19420: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}..........
|
|
19430: 17000081 0000b4df 00d2af04 ef820100 ................
|
|
19440: 45f3ffff 00515555 01000000 ef101111 ...EUUQ.........
|
|
19450: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........
|
|
19460: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... .
|
|
19470: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w..
|
|
19480: cf000027 09000000 010000f0 010000ea '...............
|
|
19490: 000010dd 000010ce 0000603f 00003001 ........?`...0..
|
|
194a0: 00000100 00f50600 405f0000 17000000 .........._@....
|
|
194b0: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@
|
|
194c0: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I....
|
|
194d0: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@....
|
|
194e0: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\...
|
|
194f0: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@....
|
|
19500: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@
|
|
19510: 00000000 fb060000 00752353 17000000 ........S#u.....
|
|
19520: 00a3fdce 02000000 000000fd f49f0000 ................
|
|
19530: 00000000 00b09e0f f2060000 0000207f ............. ..
|
|
19540: f801dc00 4f000000 00e00b60 00f00b00 .......O`.......
|
|
19550: 0100604f ed1111fa ff8f0000 00f3ffff O`..............
|
|
19560: 4444c40e f406a04f af000000 0000cd10 ..DDO...........
|
|
19570: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@
|
|
19580: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:...
|
|
19590: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._
|
|
195a0: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj..
|
|
195b0: d7ffffff 8d020000 0400b4fe f99db8ff ................
|
|
195c0: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........
|
|
195d0: 0000f602 602f0000 00000000 000000fa ....../`........
|
|
195e0: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._..
|
|
195f0: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w
|
|
19600: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._
|
|
19610: 06000040 00405ff4 5ff60300 03000040 @...._@...._@...
|
|
19620: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@.
|
|
19630: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._
|
|
19640: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@......
|
|
19650: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD..
|
|
19660: 5f000000 05000040 000000f4 7777975f ..._@......._.ww
|
|
19670: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@
|
|
19680: f4050000 5f000000 05000040 102222f5 ......._@...."".
|
|
19690: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@.....
|
|
196a0: 405f0000 f4050000 00000000 b5fe8d01 .._@............
|
|
196b0: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`...
|
|
196c0: 0f000000 000000a0 00602f00 2f000000 ........./`..../
|
|
196d0: 09000060 00a00ff0 0bf00900 090000f2 `...............
|
|
196e0: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O.......
|
|
196f0: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@
|
|
19700: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U.
|
|
19710: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._
|
|
19720: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU
|
|
19730: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E
|
|
19740: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww..
|
|
19750: 00fa0000 00fa0000 00fa0000 00fa0000 ................
|
|
19760: 00fa0000 00fa0000 07f90000 0df60320 ............ ...
|
|
19770: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@.......
|
|
19780: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@.
|
|
19790: f4050030 0000909f 40efcf5f 91ff0500 0......._..@....
|
|
197a0: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@
|
|
197b0: 05f50900 0c0000f4 00405ff2 00f40500 ........._@.....
|
|
197c0: 405f0000 f4050000 5f000000 05000040 .._@......._@...
|
|
197d0: 000000f4 0000405f 0000f405 00405f00 ...._@......._@.
|
|
197e0: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._
|
|
197f0: 00000040 00fc951e f9080000 0000f55f @..........._...
|
|
19800: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_.
|
|
19810: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........
|
|
19820: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._...
|
|
19830: 7100305f f3950f00 00000000 00505ff9 _0.q........._P.
|
|
19840: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU..
|
|
19850: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@
|
|
19860: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U.
|
|
19870: f5df0000 0200405f 00f455ff 00f50600 ...._@...U......
|
|
19880: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. .
|
|
19890: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r
|
|
198a0: 000000f6 602ff900 0f000000 0000fa90 ....../`........
|
|
198b0: 0bf70300 000000f2 d22f20af 908f0000 ......... /.....
|
|
198c0: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._..
|
|
198d0: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@..
|
|
198e0: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n.
|
|
198f0: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._
|
|
19900: 00000040 0000405f 8d010000 0000b5fe @..._@..........
|
|
19910: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ......
|
|
19920: af000000 00a00f20 703f0000 0000602f .... .....?p/`..
|
|
19930: 2f900f00 00000060 901f900f 2f000000 .../`........../
|
|
19940: 00f10b70 20af0000 0010fc03 0000f907 p...... ........
|
|
19950: df78fa6f 030000b0 00c5ffae 00000000 o.x.............
|
|
19960: b015d43e 02000000 0080ffbf 01000000 >...............
|
|
19970: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@..
|
|
19980: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@...
|
|
19990: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._
|
|
199a0: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\
|
|
199b0: 0720d9ef 90af87fc 0100c00e 00800f10 .. .............
|
|
199c0: f50d0000 03000000 0050eaef feae0500 ..........P.....
|
|
199d0: 00000040 0000f14e 08f30500 f2080000 @...N...........
|
|
199e0: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g
|
|
199f0: 7277fb78 00f70100 f7010000 01000000 x.wr............
|
|
19a00: 000000f7 0000f701 00f70100 f7010000 ................
|
|
19a10: 01000000 000000f7 0000f701 00f70100 ................
|
|
19a20: f7010000 306f0000 168f0000 080000f3 ......o0........
|
|
19a30: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0..
|
|
19a40: 00f3168f 6ff10800 8f000030 0000f405 .......o0.......
|
|
19a50: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._....
|
|
19a60: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o
|
|
19a70: 0c000050 00fb00c0 00f60300 0000f209 P...............
|
|
19a80: 2f0000ae 901f0080 00ce0000 0000f207 .../............
|
|
19a90: db00f605 0e000000 00504fc0 3b8f0000 .........OP....;
|
|
19aa0: 000000e0 00f8fb02 0b000000 000010ff ................
|
|
19ab0: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........
|
|
19ac0: ff020090 f0070040 0700e00b 0c0090fe ....@...........
|
|
19ad0: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T.
|
|
19ae0: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ .
|
|
19af0: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&....
|
|
19b00: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{...........
|
|
19b10: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ...
|
|
19b20: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0...
|
|
19b30: 0300802f 00d00cfa f3fb0700 0c000000 /...............
|
|
19b40: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o
|
|
19b50: 0020af60 ed01b02f 00f10c00 f607f804 `. ./...........
|
|
19b60: f3090000 0000e00c f703f207 901f0000 ................
|
|
19b70: 0010af00 1f00109e 00f602a0 0bf30800 ................
|
|
19b80: 000000d0 00404fec fb5f0000 00000000 .....O@..._.....
|
|
19b90: 0000f20c f0090000 00000000 0000f009 ................
|
|
19ba0: f0090000 00000000 0000f009 ffffff3f ............?...
|
|
19bb0: 777701fd 0090bf77 c01e0000 0c000000 ..www...........
|
|
19bc0: 000000f2 0000f508 00f90400 ec010000 ................
|
|
19bd0: 00000000 000020cf 00508f00 904f0000 ..... ....P...O.
|
|
19be0: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_.
|
|
19bf0: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0.
|
|
19c00: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0..
|
|
19c10: 00ff5f50 0000007e 0000401f 0000900c P_..~....@......
|
|
19c20: 0000e007 0000f402 0000c900 00007e00 .............~..
|
|
19c30: 00402f00 00900c00 00e00700 00f30200 ./@.............
|
|
19c40: 00d90000 007e0000 302f0000 900d0000 ......~.../0....
|
|
19c50: e0070000 ea35fabf ea00ea00 ea00ea00 ......5.........
|
|
19c60: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5.
|
|
19c70: 2f00fabf 9d000080 f30000e0 d00600d5 .../............
|
|
19c80: 600c007b 103f201f 009a800b ffffe004 {..`. ?.........
|
|
19c90: 1111ffff f6071111 01e70300 0080fd9e ................
|
|
19ca0: 90af87ce af000002 06000000 ffbe02f2 ................
|
|
19cb0: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B...
|
|
19cc0: 206ffbbf 0000008f 00008f00 008f0000 ..o ............
|
|
19cd0: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0...
|
|
19ce0: 208fc01e 8ff10700 f3050000 0700208f ... ......... ..
|
|
19cf0: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+...
|
|
19d00: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........
|
|
19d10: 304f0000 f6030000 0d000000 100600d0 ..O0............
|
|
19d20: f47cd74f c4ef3a00 00000000 0000f701 O.|..:..........
|
|
19d30: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;......
|
|
19d40: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0..
|
|
19d50: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e..
|
|
19d60: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. .
|
|
19d70: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r
|
|
19d80: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:.
|
|
19d90: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p.......
|
|
19da0: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0...
|
|
19db0: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;..
|
|
19dc0: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`...
|
|
19dd0: 0000404f 00603ff9 d00ef901 04f90900 O@...?`.........
|
|
19de0: f8cf87fd b3ff3b00 000000f7 e909f405 .....;..........
|
|
19df0: 01b0af77 00d8ff7c 0000008f 0000f008 w...|...........
|
|
19e00: 00008f00 bff20800 fb8f10ea f808fd89 ................
|
|
19e10: 8ff40600 781f0010 f80000f0 0f00008f .......x........
|
|
19e20: 0000f088 00008ff8 00f0880f 1a9ef800 ................
|
|
19e30: f00800f2 8ff0088f 088ff008 f0088ff0 ................
|
|
19e40: 00e20700 0000f309 f1070000 00f10700 ................
|
|
19e50: 0700f107 f10700f1 00f10700 0700f107 ................
|
|
19e60: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ...
|
|
19e70: 00f00800 008f0000 f0080000 8fd11d00 ................
|
|
19e80: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p
|
|
19e90: bfe28f00 01f20830 008f10ee f008fb03 ....0...........
|
|
19ea0: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................
|
|
19eb0: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p
|
|
19ec0: 00c09f00 00f1585f 0100f605 00008ff7 ...._X..........
|
|
19ed0: 0f00404f 0400f088 f80000f4 4f00008f O@.............O
|
|
19ee0: 880f0040 f40400f0 8ff80000 404f0000 @.............O@
|
|
19ef0: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o
|
|
19f00: 0100f148 00008ff7 00f0880f 008ff800 H...............
|
|
19f10: f0880f00 8ff80000 800f0000 c4ef3b00 .............;..
|
|
19f20: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`...
|
|
19f30: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`.........
|
|
19f40: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;.....
|
|
19f50: 8f30df57 c00d0090 0700108f 00008ff1 W.0.............
|
|
19f60: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x.
|
|
19f70: fe2b8f30 008f00b3 8f000000 00000000 0.+.............
|
|
19f80: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;.........
|
|
19f90: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?`
|
|
19fa0: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;.
|
|
19fb0: 0000f7a3 00f70100 f7010000 01000000 ................
|
|
19fc0: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ ....
|
|
19fd0: 8f00008f 008f0000 00008f00 91fdae02 ................
|
|
19fe0: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......`
|
|
19ff0: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@
|
|
1a000: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0..
|
|
1a010: 305f0000 00f30500 00305f00 0000f404 .._0....._0.....
|
|
1a020: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z....
|
|
1a030: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y..
|
|
1a040: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P
|
|
1a050: 0000c00d 00f206cb f900f502 00e00900 ................
|
|
1a060: 800f009e 6f602f00 c00c0010 050000cb ...../`o........
|
|
1a070: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p....
|
|
1a080: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`..
|
|
1a090: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P.
|
|
1a0a0: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O.
|
|
1a0b0: ff040000 a0ef0040 e00e0000 00f40800 ....@...........
|
|
1a0c0: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P......
|
|
1a0d0: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................
|
|
1a0e0: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@......
|
|
1a0f0: f40200f3 0900ea00 108f00d0 1f00701f .............p..
|
|
1a100: 00107f70 00d9e00a f2f90300 cf000000 p...............
|
|
1a110: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y..
|
|
1a120: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[...
|
|
1a130: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@...
|
|
1a140: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a
|
|
1a150: 0000cc00 db0000db 00db0000 1f00ea02 ................
|
|
1a160: fa0500f4 00db0000 0000db00 cc0000db ................
|
|
1a170: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._..
|
|
1a180: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._...
|
|
1a190: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p...
|
|
1a1a0: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p....
|
|
1a1b0: 0090be40 00000000 00e43d00 f5860cb5 @........=......
|
|
1a1c0: 03f0201e 000290ef 02001000 400d90ce . .............@
|
|
1a1d0: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@.......
|
|
1a1e0: 00f7e7ef 00000000 00000000 00000000 ................
|
|
1a1f0: 00dc4900 16000000 00ffffbf ff8d0300 .I..............
|
|
1a200: 00ffffff ffffcf00 00ffffff ffffff00 ................
|
|
1a210: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q.......
|
|
1a220: 00ff0000 0000ff00 00ff0000 0000ff00 ................
|
|
1a230: 00ff0000 0000ff00 00ff0000 0000ff00 ................
|
|
1a240: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+....
|
|
1a250: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+.......
|
|
1a260: 2b000000 0000b2ff d0000000 ffffff0f ...+............
|
|
1a270: ff0df0ff 8888c8ff f0ffff8c 0000800f ................
|
|
1a280: f00ff008 0000800f ff0ff008 000080ff ................
|
|
1a290: f0ffff08 ccccec0f f00ff0ce ccccec0f ................
|
|
1a2a0: ff0ff0ce 000080ff f0ffff08 0000800f ................
|
|
1a2b0: f00ff008 0000800f ff0ff008 8888c8ff ................
|
|
1a2c0: d0ffff8c ffffff0f df0df0ff ffff73ff .............s..
|
|
1a2d0: fffdffff ffffa5ff ffffffff ffffa5ff ................
|
|
1a2e0: dfffffff ffff73ff 00fdffff 00000000 .....s..........
|
|
1a2f0: df000000 ffff73ff fffdffff ffffa5ff .....s..........
|
|
1a300: ffffffff ffffa5ff dfffffff ffff73ff .............s..
|
|
1a310: 00fdffff 00000000 df000000 ffff73ff .............s..
|
|
1a320: fffdffff ffffa5ff ffffffff ffffa5ff ................
|
|
1a330: dfffffff ffff73ff 00fdffff 00000000 .....s..........
|
|
1a340: 00b10a00 00000000 00fcbf00 00000000 ................
|
|
1a350: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................
|
|
1a360: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................
|
|
1a370: 0c0000fc ffbffbff 000000c0 fbffffcf ................
|
|
1a380: 00000000 b0ffff0c 00000000 00fbbf00 ................
|
|
1a390: 00000000 00b00b00 03000000 03000000 ................
|
|
1a3a0: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,.
|
|
1a3b0: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................
|
|
1a3c0: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................
|
|
1a3d0: f5dffcff d1ff0500 040000a4 000000a1 ................
|
|
1a3e0: 0000e04f 10020000 1003f16f d05f0000 O.......o....._.
|
|
1a3f0: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@
|
|
1a400: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o.......
|
|
1a410: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../....
|
|
1a420: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o..
|
|
1a430: af000000 10fe0ff0 ff050000 d3ff06a0 ................
|
|
1a440: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ...........
|
|
1a450: 30fdffff 17000000 0050cabd 00000000 ...0......P.....
|
|
1a460: 0000b88b 00000000 0000ffff 06300000 ..............0.
|
|
1a470: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@...
|
|
1a480: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O..........
|
|
1a490: ffff0220 f9ff0080 ff9f0000 f9ff0000 ...............
|
|
1a4a0: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O..
|
|
1a4b0: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................
|
|
1a4c0: dffdffff 06300040 0360ffff 00000000 ....@.0...`.....
|
|
1a4d0: 0000ffff 00000000 0000b88b 00000000 ................
|
|
1a4e0: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O...
|
|
1a4f0: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o..
|
|
1a500: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S.........
|
|
1a510: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@.............
|
|
1a520: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A..
|
|
1a530: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................
|
|
1a540: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................
|
|
1a550: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........
|
|
1a560: 00000000 ffff0000 00000000 ffff0000 ................
|
|
1a570: 00000000 ffff0000 00000000 ffff0000 ................
|
|
1a580: 00000000 ffff0000 00000000 ffffff4f ............O...
|
|
1a590: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................
|
|
1a5a0: 000000fb ffff0b00 000000b0 fbbf0000 ................
|
|
1a5b0: df000000 b11bfcff fffdffcf 2cc2ffff ...............,
|
|
1a5c0: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a5d0: dfffe0f0 ffffffff 00fdffff ffffef04 ................
|
|
1a5e0: 0040feff ffff1e00 e1ffffff b0af0000 ..@.............
|
|
1a5f0: 0b000000 ff0500fa 00000010 1e50ff01 ..............P.
|
|
1a600: 000000f6 e16f0000 0000b0af 0b000000 ......o.........
|
|
1a610: fffffffa ff080080 ffffffff 1f00f1ff ................
|
|
1a620: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a630: ffffffff ffffffff ffffffff ff8fffff ................
|
|
1a640: ffffffff 00f8ffff dabd0600 00ff0250 ............P...
|
|
1a650: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{....
|
|
1a660: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._
|
|
1a670: 0f0000f2 8fffffff 0f0000b0 00ffffff ................
|
|
...
|
|
1a68c: ff000000 00f0ffff fff80b00 00f0ffff ................
|
|
1a69c: fff42f00 002022fd ffe0cf00 0000c2ff ./..." .........
|
|
1a6ac: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$...
|
|
1a6bc: ff0050fe dbac0520 00000060 00000000 .P.. ...`.......
|
|
1a6cc: 008d0000 00ff0800 dfff8f00 ffffffff ................
|
|
1a6dc: ffffffff ffffffff ffffffff dfffffff ................
|
|
1a6ec: 00ffffff 00ff8f00 00ff0800 008d0000 ................
|
|
...
|
|
1a708: 0000008d 00ff0800 8f000000 cf0000ff ................
|
|
1a718: 01ffffff ffffff50 fff706ff 00ffffff ....P...........
|
|
1a728: ffffffbe ffae00ff 05ffffff ffffdff8 ................
|
|
1a738: 006002ff 00ff9f00 09000000 000000ff ..`.............
|
|
1a748: 009e0000 00000000 00000000 00000000 ................
|
|
1a758: 00100600 00000000 d21f0000 00000000 ................
|
|
1a768: 0300008d 000010ee 0a00ff08 00b02fb1 ............./..
|
|
1a778: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_`
|
|
1a788: fffffff9 0df706ff ffffbdc0 ae00ffff ................
|
|
1a798: ff9ff009 00ffffff 8ff009ae ffffffff ................
|
|
1a7a8: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`...
|
|
1a7b8: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../.
|
|
1a7c8: 8d000000 ee020000 00000010 1f000000 ................
|
|
1a7d8: 000000d2 00000000 8f001006 ffffffff ................
|
|
1a7e8: fff8ffff fffffffc ffffffff ffff2f20 ............ /..
|
|
1a7f8: fcffffff ffff0c00 ffffffee feff2f20 ............ /..
|
|
1a808: ffffef22 e2fffffc ffff2e00 20fe4efe "............N.
|
|
1a818: ffff0200 00c202e2 ffff0000 00000020 ............ ...
|
|
1a828: ffff0000 00000000 ffff0000 ffffffff ................
|
|
1a838: 8fffffff ffffffff 00f8ffff 00000000 ................
|
|
1a848: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@....
|
|
1a858: ffff3f40 ffff44ff ff9fffff ffffffff @?...D..........
|
|
1a868: ffffffff ffffffff ffffafff ff45ffff ..............E.
|
|
1a878: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@..
|
|
1a888: 0030ffff 0000cc01 00000000 00000000 ..0.............
|
|
1a898: 918f0000 00000000 70ffff00 00000000 ...........p....
|
|
1a8a8: 40fdffff ff000000 10faffff ffff0000 ...@............
|
|
1a8b8: 00f7ffff ffffff00 00d5ffff ffffffff ................
|
|
1a8c8: ffb2ffff ffffffff fffffdff ffffffff ................
|
|
1a8d8: fffffffd b2ffffff ffffffff ff00d5ff ................
|
|
1a8e8: f7ffffff ffff0000 0010faff fdffff00 ................
|
|
1a8f8: 00000040 0070ffff 8e000000 000000a1 @.....p.........
|
|
...
|
|
1a918: 00f8ff8f fff8ff8f ff00ffff ffffffff ................
|
|
1a928: ffff00ff ffffffff ffffff00 00ffffff ................
|
|
1a938: ffffffff ff00ffff ffffffff ffff00ff ................
|
|
1a948: ffffffff ffffff00 00ffffff ffffffff ................
|
|
1a958: ff00ffff ffffffff ffff00ff ffffffff ................
|
|
1a968: ffffff00 00ffffff 7fffffff 7f00f7ff ................
|
|
1a978: ff8ff7ff ffffffff fffffff8 ffffffff ................
|
|
1a988: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a998: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a9a8: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a9b8: ffffffff ffffffff ffffffff ffffffff ................
|
|
1a9c8: ffffffff ffffffff ffffffff ffff8fff ................
|
|
1a9d8: f8ffffff 00000000 0010cc00 d2ffff03 ................
|
|
1a9e8: ffff0400 ff0430fe 04f4ffff ffffffff .....0..........
|
|
1a9f8: ffffff54 fffff9ff ffffffff ffffffff T...............
|
|
1aa08: ffffffff fffffff9 ffff44ff ff04f3ff .........D......
|
|
1aa18: 0430feff 00d2ffff 10ccff04 00ff0300 ..0.............
|
|
1aa28: 00000000 2d000000 000000d2 ef010000 .......-........
|
|
1aa38: 000010fe ff1d0000 0000d1ff ffcf0000 ................
|
|
1aa48: 0000fcff ffff0b00 00b0ffff ffffaf00 ................
|
|
1aa58: 00faffff ffffff09 90ffffff ffffff0f ................
|
|
1aa68: f0ffffff ffffff08 80ffffff 00000000 ................
|
|
1aa78: 00000000 ffffff0c c0ffffff ffffff0f ................
|
|
1aa88: f0ffffff ffffff0f f0ffffff ffffff0c ................
|
|
1aa98: c0ffffff 1a000000 01000040 0000f0df ........@.......
|
|
1aaa8: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................
|
|
1aab8: ff0c0000 0d0000a0 000080ff 00f8df01 ................
|
|
1aac8: ff1d0000 01000080 0000f8df 80ff1d00 ................
|
|
1aad8: df010000 000000f0 a104501b 0f000000 .........P......
|
|
1aae8: 000010fd 00d1ff0a fdaf0000 0a000010 ................
|
|
1aaf8: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................
|
|
1ab08: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................
|
|
1ab18: d1ff0800 fd0f0000 05000010 000000b1 ................
|
|
1ab28: ff040000 00000040 80ff0800 00000000 ....@...........
|
|
1ab38: 0080ff08 08000000 000080ff ff080000 ................
|
|
1ab48: 48000080 c8ff8c88 ffff8488 ffffffff ...H............
|
|
1ab58: ffffffff ffffffff ff8c8848 008488c8 ........H.......
|
|
1ab68: 80ff0800 00000000 0080ff08 08000000 ................
|
|
1ab78: 000080ff ff080000 00000080 40ff0400 ...............@
|
|
1ab88: 44140000 44444444 ffffef41 feffffff ...DDDDDA.......
|
|
1ab98: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........
|
|
1aba8: daffad05 00000050 88fcdf04 0040fdcf ....P.........@.
|
|
1abb8: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O
|
|
1abc8: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO.............
|
|
1abd8: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O..
|
|
1abe8: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p.
|
|
1abf8: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@
|
|
1ac08: 05000000 50daffad 208c0000 00000000 .......P... ....
|
|
1ac18: 00000000 0000e4df 00000000 ff1b0000 ................
|
|
1ac28: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I..............
|
|
1ac38: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p.....
|
|
1ac48: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@
|
|
1ac58: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-.
|
|
1ac68: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0..
|
|
1ac78: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>.
|
|
1ac88: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z
|
|
1ac98: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N.
|
|
...
|
|
1acb0: 0000c802 d22d0000 00000000 00000000 ......-.........
|
|
1acc0: 0000fbbf 00000000 ffff0500 00000050 ............P...
|
|
1acd0: 0d000000 00d0ffff 00000000 ffff7f00 ................
|
|
1ace0: 000000f7 ff010000 10ff8dd8 00000000 ................
|
|
1acf0: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?.....
|
|
1ad00: 00000000 0cc0ffcf 0000fcff ffff0500 ................
|
|
1ad10: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P...........
|
|
1ad20: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................
|
|
1ad30: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>......
|
|
1ad40: ffffffff f0ffffff ffffff08 ffffffff ................
|
|
1ad50: 000080ff 00000000 00000000 00000000 ................
|
|
1ad60: 000000d8 00000000 ffff80ff ff070070 ............p...
|
|
1ad70: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x.....
|
|
1ad80: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ......
|
|
1ad90: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^
|
|
1ada0: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o.
|
|
1adb0: fffffdff ff070070 0000f8ff 00000000 ....p...........
|
|
1adc0: 000080ff 00000000 000000d8 00000000 ................
|
|
...
|
|
1add8: 01000000 000010dd ff1d0000 000000d1 ................
|
|
1ade8: fdffdf01 1d000010 d1ff99ff f9df0100 ................
|
|
1adf8: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................
|
|
1ae08: 905ffb9f 09000000 000000f5 00000000 .._.............
|
|
1ae18: 00000000 5f000000 00000090 f9bff509 ......._........
|
|
1ae28: 9f000000 90ff1dfb d1ff0900 00f9df01 ................
|
|
1ae38: 0010fd9f ff99ff1d 010000d1 10fdffdf ................
|
|
1ae48: 1d000000 0000d1ff dd010000 00000010 ................
|
|
...
|
|
1ae68: 00d11d00 00000000 df010000 ffef10fd ................
|
|
1ae78: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................
|
|
1ae88: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k.......
|
|
1ae98: 0f0000f0 000000f0 00f00f00 00f00f00 ................
|
|
1aea8: 0f000000 0f0000f0 000000f0 b6f11f6b ............k...
|
|
1aeb8: 00f00f00 cfcf0000 0f00fcfc faffffff ................
|
|
1aec8: d1ffff1d ffff0d00 df01feff 000010fd ................
|
|
1aed8: 00000000 00d11d00 00000000 00000000 ................
|
|
1aee8: ff8f0000 0000e2ff ffff0000 0020feff .............. .
|
|
1aef8: ffff0000 ffffffff fffff8ff ffffffff ................
|
|
1af08: ffffffff ffffffff ffffffff ffffffff ................
|
|
1af18: ffffffff ffffffff ffffffff ffffffff ................
|
|
1af28: ffffffff ffffffff ffffffff ffffffff ................
|
|
1af38: ffffffff ffffffff ff8fffff ffffffff ................
|
|
1af48: 0000f8ff 00b00b00 00000000 00fbbf00 ................
|
|
1af58: 00000000 b0ffff0b 00000000 fbffffbf ................
|
|
1af68: 0b000000 ffffffff 4f0000b0 ffffffff ...........O....
|
|
1af78: 000000f4 00ffff00 00000000 00ffff00 ................
|
|
1af88: 00000000 00ffff00 00000000 00ffff00 ................
|
|
1af98: 00000000 00ffff00 ffdf0000 0ffddff0 ................
|
|
1afa8: fffffdff 9f0000f9 ffffffff ffffffff ................
|
|
1afb8: ffffffff f0ffffff ffdfffe0 ffffffff ................
|
|
1afc8: 0000fdff 00000000 00000000 00000000 ................
|
|
1afd8: 0062ea0a 00000000 f0ffff02 00000000 ..b.............
|
|
1afe8: ffff9f00 00000000 ffff0f00 000000d0 ................
|
|
1aff8: ffff0200 000000fb ef030000 000070ff .............p..
|
|
1b008: 04000000 0000f2ff 00000000 0000fbbf ................
|
|
1b018: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O...
|
|
1b028: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o...........
|
|
1b038: ffffef00 00d1ffff ffff0a00 0090ffff ................
|
|
1b048: ff6f0000 0030fbff ff020000 000072db ..o...0......r..
|
|
1b058: 08000000 000080ee ff086106 2d0080ff .........a.....-
|
|
1b068: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?....
|
|
1b078: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n...........
|
|
1b088: ffef0200 000000f3 ffff2e00 08000030 ............0...
|
|
1b098: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3
|
|
1b0a8: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0...
|
|
1b0b8: fddf0200 00e88e00 10660000 ffdf0000 ..........f.....
|
|
1b0c8: 00200dff ffffff00 0000e20f 0fffffff .. .............
|
|
1b0d8: fff0dffd 0020ffff fffff0ff ffffffff ...... .........
|
|
1b0e8: fffffff0 f0ffffff ffffffff fff0ffff ................
|
|
1b0f8: ffffffff fffff0ff ffffffff fffffff0 ................
|
|
1b108: f0ffffff ffffffff fff0ffff ffffffff ................
|
|
1b118: ffdff0ff fffdffff 000000f9 ffff0000 ................
|
|
1b128: 00ffffff ffffdf00 0000fdff ffffff8f ................
|
|
1b138: ff00c2ff ffffffff 00ff20fe ff010000 ......... ......
|
|
1b148: 0000ffe2 fcff0000 000000ff ffffff00 ................
|
|
1b158: 00000000 ffffffff ffffffff ffffffff ................
|
|
1b168: ffffffff 11fbffff ffffffbf 1f00f1ff ................
|
|
1b178: ffffffff ff1f00f1 fbffffff ffffbf11 ................
|
|
1b188: ffffffff 8fffffff ffffffff df00f8ff ................
|
|
1b198: 0000fdff fcffff01 ff030000 0000f7ff ................
|
|
1b1a8: f2ffff06 ff080000 0000d0ff ffffff0a ................
|
|
1b1b8: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. ..
|
|
1b1c8: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P.
|
|
1b1d8: fc2f0000 00000000 0000f35f a09f0000 ../....._.......
|
|
1b1e8: 00000000 000010df 00d70000 04000000 ................
|
|
1b1f8: 000040ee 99ffdf00 0000fdff ff99ffff .@..............
|
|
1b208: ff0000ff ffffffff ffff0000 00000090 ................
|
|
1b218: 0dffff00 200dffff ff0fffff ffe20fff ....... ........
|
|
1b228: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... ....
|
|
1b238: ffffffff ff0fffff ffffffff ffff0fff ................
|
|
1b248: ffdfffff ffffff0f 0f0000ff ffffffff ................
|
|
1b258: ff0f0000 00ffffff ffff0d00 0000fdff ................
|
|
1b268: 0000cc00 02000000 000030ff ffbf0100 .........0......
|
|
1b278: 000020fc ffffff1e 9f0000e1 f8ffffff . ..............
|
|
1b288: ffef0000 00fdffff ffffff00 0100ffff ................
|
|
1b298: ffffffff ff0300ff ffffffff ffff0830 ............0...
|
|
1b2a8: 80ffffff ffffff1e cfe1ffff ffffffff ................
|
|
1b2b8: ffcffcff ffffffff 000000fc 00000000 ................
|
|
1b2c8: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@....
|
|
1b2d8: ffffffff fff8ffff ffffffff ffffffff ................
|
|
1b2e8: 0ff000ff 000ff000 f000ffff 0ff0000f ................
|
|
1b2f8: ffffff00 ffffffff ffffffff 888008f8 ................
|
|
1b308: ff8f8008 8008f8ff 8f800888 ffffffff ................
|
|
1b318: ffffffff 00ffffff 000000f0 ffff000f ................
|
|
1b328: 0000f000 ff000f00 ffffffff ffffffff ................
|
|
1b338: ffff8fff ffffffff 0000f8ff 00000000 ................
|
|
...
|
|
1b350: 70af0300 00000000 ffcf0400 000000f0 ...p............
|
|
1b360: ffdf0600 0000a0ff ffef1700 0030ffff ..............0.
|
|
1b370: ffff1800 00fcffff ffff2a00 f4ffffff .........*......
|
|
1b380: ffff0800 ffffffff ff0f00d0 ffffffff ................
|
|
1b390: 080060ff ffffffff 0000feff 00000000 .`..............
|
|
1b3a0: 00f7ffff 00000000 f1ffff00 00000000 ................
|
|
1b3b0: ffff0000 00000080 ff000000 000010ff ................
|
|
1b3c0: 00000000 0000faff 00000000 00f2ff00 ................
|
|
1b3d0: 00000000 808f0000 00000000 00000000 ................
|
|
1b3e0: 00000000 f0ffffdf ffff00d2 20fef0ff ...............
|
|
1b3f0: f0ffffff ffffe2ff fdfff0ff f2ffffff ................
|
|
1b400: ffff0000 ffffffff ffffffff ffffffff ................
|
|
1b410: ffffffff ffffffff ffffffff ffffffff ................
|
|
1b420: ffffffff ffffffff ffffffff ffffffff ................
|
|
1b430: ffffffff ffffffff ffffffff ffdfffff ................
|
|
1b440: fdffffff 00000000 00000000 00000000 ................
|
|
1b450: feef9c04 000040c9 ffef0700 feffffff .....@..........
|
|
1b460: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o...
|
|
1b470: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o.
|
|
1b480: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M...
|
|
1b490: 0000d4ff feff0500 ffef8aa8 01000050 ............P...
|
|
1b4a0: 000070df 0010fd07 00120000 21000000 .p.............!
|
|
1b4b0: 00000000 e44e0000 00000000 00000000 ......N.........
|
|
1b4c0: 0000feef 00000000 feef0000 00000000 ................
|
|
1b4d0: 00000000 0000e44e ff8f0000 ffffffff ....N...........
|
|
1b4e0: 80ffffff ffffffff ffffffff 00fff0ff ................
|
|
1b4f0: 00000000 fd0f0000 ffff0fff ffffffff ................
|
|
1b500: 0fffff0f ffffffff ff00ffff ffff0fff ................
|
|
1b510: ffffffff 0fffff00 ffffffff ff0fffff ................
|
|
1b520: 000000ff 00000000 fffffd0f ffffffff ................
|
|
1b530: f0ffffff ffffff8f ffffffff ff8f80ff ................
|
|
1b540: ffffffff 80ffffff ffffffff ffffffff ................
|
|
1b550: 00fff0ff 00000000 fd0f0000 ffff0fff ................
|
|
1b560: 00f0ffff 0fffff0f ffffffff ff0000f0 ................
|
|
1b570: ffff0fff 00f0ffff 0fffff00 ffffffff ................
|
|
1b580: ff0f00f0 000000ff 00000000 fffffd0f ................
|
|
1b590: ffffffff f0ffffff ffffff8f ffffffff ................
|
|
1b5a0: ff8f80ff ffffffff 80ffffff ffffffff ................
|
|
1b5b0: ffffffff 00fff0ff 00000000 fd0f0000 ................
|
|
1b5c0: ffff0fff 000000ff 0fffff0f 00ffffff ................
|
|
1b5d0: ff000000 ffff0fff 000000ff 0fffff00 ................
|
|
1b5e0: 00ffffff ff0f0000 000000ff 00000000 ................
|
|
1b5f0: fffffd0f ffffffff f0ffffff ffffff8f ................
|
|
1b600: ffffffff ff8f80ff ffffffff 80ffffff ................
|
|
1b610: ffffffff ffffffff 00fff0ff 00000000 ................
|
|
1b620: fd0f0000 f0ff0fff 00000000 0fffff0f ................
|
|
1b630: 0000f0ff ff000000 f0ff0fff 00000000 ................
|
|
1b640: 0fffff00 0000f0ff ff0f0000 000000ff ................
|
|
1b650: 00000000 fffffd0f ffffffff f0ffffff ................
|
|
1b660: ffffff8f ffffffff ff8f80ff ffffffff ................
|
|
1b670: 80ffffff ffffffff ffffffff 00fff0ff ................
|
|
1b680: 00000000 fd0f0000 000000ff 00000000 ................
|
|
1b690: 00ffff0f 00000000 ff000000 000000ff ................
|
|
1b6a0: 00000000 00ffff00 00000000 ff0f0000 ................
|
|
1b6b0: 000000ff 00000000 fffffd0f ffffffff ................
|
|
1b6c0: f0ffffff ffffff8f ffffffff 000080ff ................
|
|
1b6d0: 01000000 00000000 00000000 10fd0700 ................
|
|
1b6e0: 00000000 cf010000 0000f5ff 00000000 ................
|
|
1b6f0: fe29b900 00000010 3f000000 00000210 ..)........?....
|
|
1b700: df030000 00900a80 70030000 77ffdf00 ...........p...w
|
|
1b710: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU...........
|
|
1b720: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F..
|
|
1b730: 3302f201 00000010 09000000 00f9cfb1 ...3............
|
|
1b740: 00000000 ff0a0000 000090ff 00000000 ................
|
|
1b750: f9bf0000 00000000 00000000 00002201 ............."..
|
|
1b760: df180000 020092fd ffeffbef faff0d30 ............0...
|
|
1b770: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O..
|
|
1b780: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=.............
|
|
1b790: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y
|
|
1b7a0: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._......
|
|
1b7b0: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P.....
|
|
1b7c0: 7f000000 0000f7ff ffffffef effeffff ................
|
|
1b7d0: ffffffff 0000feff 00000000 ffff0f00 ................
|
|
1b7e0: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................
|
|
1b7f0: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................
|
|
1b800: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................
|
|
1b810: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................
|
|
1b820: 0ff09ff9 ffffffff ff08f0ff ffffffff ................
|
|
1b830: 00000080 7f000000 000000a0 8f000000 ................
|
|
1b840: 0000b0ff 0d000000 00a0ffff 8a000000 ................
|
|
1b850: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p....
|
|
1b860: 801dfaff 8f000000 00faffff 8f000000 ................
|
|
1b870: 80ffffff 8f000000 80ffffff 8f000000 ................
|
|
1b880: 80ffffff 8f000000 80ffffff 6f000000 ...............o
|
|
1b890: 80ffffff 0b000000 80ffffff 00000000 ................
|
|
1b8a0: 80ffffdf 00000000 80ffff0e 00000000 ................
|
|
1b8b0: 60dbde00 00000000 00000000 00000000 ...`............
|
|
1b8c0: 00000000 ffffff1b e4ffffff ffdf0100 ................
|
|
1b8d0: ffffffff 1d00feff effaffff ffffaffe ................
|
|
1b8e0: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................
|
|
1b8f0: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ......
|
|
1b900: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... .
|
|
1b910: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................
|
|
1b920: affeeffa 0100ffff ffffffdf feffffff ................
|
|
1b930: ff1b0000 ffffffff 0800e4ff e4ffffff ................
|
|
1b940: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@.....
|
|
1b950: f8ffff40 ff400b0f ffffffff ffffffff @.....@.........
|
|
1b960: ffffffff ffffffff ffffffff ffffffff ................
|
|
1b970: ffffffff ffffffff ffffffff ffffffff ................
|
|
1b980: ffffffff ffffffff ffffffff ffefffff ................
|
|
1b990: feffffff ffffff4e 0000e4ff 00000000 ....N...........
|
|
1b9a0: 00000100 00000000 00e00300 00001000 ................
|
|
1b9b0: 10ef0200 0000bf00 f17f0000 00f1cf00 ................
|
|
1b9c0: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww.....
|
|
1b9d0: ffffffff ffff17ff ffffffff ff07e0ff ................
|
|
1b9e0: 000000f1 06000000 000010ff 00000000 ................
|
|
1b9f0: 0000a005 00000000 ........
|
|
|
|
0001b9f8 <kern_class_values>:
|
|
1b9f8: 00000100 00000000 00000100 00000003 ................
|
|
1ba08: 00000200 00000000 00000000 00000000 ................
|
|
1ba18: 00010000 00000000 00000000 00000000 ................
|
|
1ba28: 000c0100 0000fa07 f1f20000 04060c02 ................
|
|
1ba38: 010d02f6 0008030b 00000000 00000000 ................
|
|
1ba48: 020f0000 000000fe 00000000 00000000 ................
|
|
1ba58: f8000500 00000000 0504fb00 00fd0000 ................
|
|
1ba68: fd0003fe fbfffd00 00000000 fd0000fd ................
|
|
1ba78: fd0000fc 0000fb00 00000000 fd000000 ................
|
|
1ba88: 00fc00fd 00e100f9 0500fb00 fb000008 ................
|
|
1ba98: 05080303 000005fc 000000f1 00000000 ................
|
|
1baa8: 00000000 000000f7 00000000 00000000 ................
|
|
1bab8: f9000000 f600f3fd 000000fe 000a0100 ................
|
|
1bac8: 01fffef8 0000fc00 0000edfe 00000000 ................
|
|
1bad8: 00000000 0afeec00 00000000 00000000 ................
|
|
1bae8: 00000000 000000f6 00000000 08000000 ................
|
|
1baf8: 00000300 000000fb 00000000 00000000 ................
|
|
1bb08: 00000000 020a0000 00000001 00000000 ................
|
|
...
|
|
1bb38: 000000f7 00000000 00000000 00000000 ................
|
|
1bb48: 00000000 02000000 fd080305 fd050000 ................
|
|
1bb58: 0702ddf8 00fd0105 00080009 00e80008 ................
|
|
1bb68: 080008fd 000305fd 00fd0100 0014fc00 ................
|
|
1bb78: 00080014 0804030b f7000000 00000000 ................
|
|
1bb88: 0200fe01 02fbfdfb 0000fd00 0000f600 ................
|
|
...
|
|
1bba0: 0000ef00 00000000 00000000 00000000 ................
|
|
1bbb0: 00f20100 000000f0 1900fe00 0303fdfd ................
|
|
1bbc0: 03fd00fe 00f20000 00000000 00000000 ................
|
|
1bbd0: 00e70000 00000003 00000000 00000000 ................
|
|
1bbe0: 0f00f000 00f70000 e7ef0008 0008fbef ................
|
|
1bbf0: 0300ef00 00fc00fa 00000000 00000000 ................
|
|
1bc00: 07000000 0000e108 00000000 00000000 ................
|
|
1bc10: 000c0000 00000002 02020000 ff00fbfd ................
|
|
1bc20: 0000fdff 000000fe 00fe00fb fa00fbfa ................
|
|
1bc30: 00fbf8f8 00fb00fb fe000000 00030000 ................
|
|
1bc40: 0100fd02 03000000 000000fe ff0303fe ................
|
|
1bc50: fb000000 0000ff00 01000000 00fe0300 ................
|
|
1bc60: 00fc00fd 0800fe00 00fd0000 00000000 ................
|
|
1bc70: fefe01ff 00fd0000 000000fd 00000000 ................
|
|
1bc80: ffff0000 00fdfd00 00000000 fe000001 ................
|
|
1bc90: fdfdfd00 00000000 00000000 0000fe00 ................
|
|
1bca0: fdfe0000 f800fc00 0005f8fe 0503fb00 ................
|
|
1bcb0: fffa0007 f4ff00fd f202fe03 01000003 ................
|
|
1bcc0: fef200f3 f300feea 00070500 00000003 ................
|
|
1bcd0: fb000100 00f800fd 00fd0000 00fd0000 ................
|
|
1bce0: 00000000 ff00ffff 000000fd 00000000 ................
|
|
1bcf0: fe00fdfd 0000fefd 000000fd 00000000 ................
|
|
1bd00: 00000000 fd00fefe fb00fe00 fd000003 ................
|
|
1bd10: 00030301 00000000 0000fe00 02000000 ................
|
|
1bd20: 00fd0000 00fdfefd 00000000 00020000 ................
|
|
1bd30: 000000fe 00fcfd00 fe0800fb 0000f801 ................
|
|
1bd40: f5f3f307 fe0003fb fb00fbef fb04fb00 ................
|
|
1bd50: 00f900f0 02ff0100 000300fe f300f6f8 ................
|
|
1bd60: f8fafbfa fbfff9fd 010002f9 0000fd00 ................
|
|
1bd70: 03000200 00000000 00000000 fd000000 ................
|
|
1bd80: ff00ff00 fafc00fd f800fffa 00000000 ................
|
|
1bd90: 00fe0000 01000000 000000fe 00000003 ................
|
|
1bda0: 00000000 00000c00 00000000 00000002 ................
|
|
1bdb0: 000000fd 00000000 00000000 000300fb ................
|
|
...
|
|
1bdcc: 000000fe 000000fb 00f8f300 f3fc0000 ................
|
|
1bddc: 03fd0000 0000f900 00000000 00000000 ................
|
|
1bdec: fb0000fc 00000000 00000000 00000000 ................
|
|
1bdfc: 00fb0003 03000000 fbfb0200 fdfdfd00 ................
|
|
1be0c: 00000000 00f80000 fdfc00fd f8fafa00 ................
|
|
1be1c: 00fb00fe 000000f8 00001400 fd000001 ................
|
|
1be2c: f5000300 00000000 08fbe800 00f5fe08 ................
|
|
1be3c: f300fc03 ee03fdff 040003fd f8f7fcf7 ................
|
|
1be4c: f10000f5 00000f00 000000ff f9fdffff ................
|
|
1be5c: 00e8fff8 00000000 00000000 00000001 ................
|
|
...
|
|
1be78: ff00fd00 0000fcfd 00fd00fb 00000000 ................
|
|
...
|
|
1be90: 00ff0000 050000fb fa0003ff f9fffe03 ................
|
|
1bea0: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................
|
|
1beb0: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................
|
|
1bec0: 00000003 00000000 0003fb00 fdfe00fc ................
|
|
1bed0: fefefef8 fffdfeff 00000000 fefefd00 ................
|
|
1bee0: 00000000 fe00fe03 fe000000 fdfefefd ................
|
|
1bef0: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................
|
|
1bf00: 03fcf400 fe0002fc fc00f8fe fc000001 ................
|
|
1bf10: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................
|
|
1bf20: 0008fcfb 00000000 00000000 00000003 ................
|
|
...
|
|
1bf44: 000000fc 00000000 00000000 00000000 ................
|
|
...
|
|
1bf70: 000000fe 00000000 00000000 00000000 ................
|
|
...
|
|
1bf8c: fdfe0000 00000000 00000000 00000000 ................
|
|
1bf9c: fd0000fc fdfd0000 00000000 000000fd ................
|
|
1bfac: 0000ff00 fe000000 00000000 00fb00fc ................
|
|
1bfbc: 00f80000 0105fa02 0000f4fe f600fdfa ................
|
|
1bfcc: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................
|
|
1bfdc: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................
|
|
1bfec: feee0000 f7fa0608 00f80100 05fdfef3 ................
|
|
1bffc: 0001fde8 f3fdef00 0000edfd 010f00ee ................
|
|
1c00c: 0000fe00 feff0000 ef00fef6 00000000 ................
|
|
1c01c: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................
|
|
1c02c: f4000000 fef8f8fd fcfdfafc f8fefb00 ................
|
|
1c03c: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................
|
|
1c04c: 03000000 0afb0200 fdfdfd00 00000000 ................
|
|
1c05c: 00f80000 fdfc00fd f8fafa00 02fb00fe ................
|
|
1c06c: 0000000a 00001400 fd000001 00000300 ................
|
|
1c07c: 00000000 00ff0000 00000000 0000fbfe ................
|
|
1c08c: ff000000 fd000000 fb0000fd fb0000fd ................
|
|
1c09c: 00ff0400 00000000 00000100 05040000 ................
|
|
1c0ac: f800fe02 f80800fc 0afbfbf8 feea0305 ................
|
|
1c0bc: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................
|
|
1c0cc: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................
|
|
1c0dc: 00fc0003 080200f9 faf6f7fa ed010008 ................
|
|
1c0ec: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................
|
|
1c0fc: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................
|
|
1c10c: fd000007 00fefb00 0400fbfd 000003f8 ................
|
|
1c11c: fafd00f2 faf8fefc f800faf8 f8fbfafd ................
|
|
1c12c: 010000fd f800fc0c fbfd00fd f6f9f9fa ................
|
|
1c13c: 0005fbfd fdf300fc f7f80502 fd08f8fb ................
|
|
1c14c: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................
|
|
1c15c: 080000ff 00effe07 f606faf1 f5f7fbef ................
|
|
1c16c: 0005f8f3 fd000000 fd030000 05fb0205 ................
|
|
1c17c: fff80000 0100ff00 0000fe01 00000000 ................
|
|
1c18c: 000000fd 01080200 0000fd00 fefe0000 ................
|
|
1c19c: 000000fd 00000201 00020000 000a00fe ................
|
|
1c1ac: fd010105 00000500 00000200 00000000 ................
|
|
1c1bc: 00000000 07000800 00000000 00000000 ................
|
|
1c1cc: 00000000 00f10000 080004fd 03190000 ................
|
|
1c1dc: 0303fbfb 00f301fe 00f10c00 00000000 ................
|
|
1c1ec: 00000000 0aef0000 00000024 00000000 ........$.......
|
|
1c1fc: 00000000 0000f100 00000000 00000000 ................
|
|
...
|
|
1c21c: fb0000fc 000000fe 00000000 00000000 ................
|
|
...
|
|
1c234: 00f900fe 00000100 fefb2103 03f90708 .........!......
|
|
1c244: 03030000 000000fd 00000000 00000000 ................
|
|
1c254: 000007df 00000000 00000000 00000000 ................
|
|
1c264: f9000000 f9000000 00000000 0000fffa ................
|
|
1c274: fd00fa00 0000f400 00000000 00000000 ................
|
|
1c284: 0000ef00 00010000 00000000 0000fd00 ................
|
|
1c294: 00fc00fb 000000f9 00fd03fc fafdf900 ................
|
|
1c2a4: 00f90000 00f400fd eb0000fd f7fdf6fb ................
|
|
1c2b4: 00ef0000 0000fff9 00000000 fbfc0000 ................
|
|
1c2c4: 0000fcfe 00fa0000 05fd03fa fefafe00 ................
|
|
1c2d4: fd00fbfc f902feff 000000ff 00fcfee9 ................
|
|
1c2e4: f4fe00fa fe0000fe 000000fe fe000200 ................
|
|
1c2f4: 0004fefc 00000000 00000000 00000000 ................
|
|
...
|
|
1c320: 00030000 00000000 fe00fa00 fb000000 ................
|
|
1c330: 00000003 00fbfdf9 fd00f900 0000f400 ................
|
|
1c340: 00e70000 00f3f7fb fe00ef00 000000fc ................
|
|
1c350: 00000000 fffcfd00 000001fc 0800fd04 ................
|
|
1c360: f8fdfd0d 06040d03 030b03f9 00070607 ................
|
|
...
|
|
1c378: 0c100000 fe00fdfb 00140b14 00030000 ................
|
|
1c388: 00000900 000000fc 00000000 00fe0000 ................
|
|
1c398: 00000000 04000000 00000000 f6fefdea ................
|
|
1c3a8: ef0000f3 00000000 00000000 00000000 ................
|
|
1c3b8: 00000000 0000fc00 00000000 fe000000 ................
|
|
...
|
|
1c3d0: 00000004 fefdea00 0000f3f6 000000f6 ................
|
|
...
|
|
1c3f0: 000000fe fd0003fa f8030502 03feff00 ................
|
|
1c400: 00000200 00fa0000 00fbfefe 1000f6fe ................
|
|
1c410: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................
|
|
...
|
|
1c428: 0000fe00 00000000 00040000 ea000000 ................
|
|
1c438: f3f6fefd 00ef0000 00000000 00000d00 ................
|
|
...
|
|
1c450: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................
|
|
1c460: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................
|
|
1c470: fefefdfd fe00fefd 040004ff 000800fe ................
|
|
...
|
|
1c488: fe000000 0000fdfd 00ff00f9 000000fc ................
|
|
...
|
|
1c4a0: 000000f1 00000000 00000000 fd00fdfd ................
|
|
1c4b0: 00000000 fc0000fe fc0003fd f900fefb ................
|
|
1c4c0: fdfefafe 0000fc00 00000000 00000000 ................
|
|
1c4d0: 0800ef00 00fb0000 fd000000 0000fd00 ................
|
|
1c4e0: fe0000ff 0000fa00 f8f8fd0b ff030302 ................
|
|
1c4f0: 020402f9 fe080208 f60000f9 f9f80000 ................
|
|
1c500: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................
|
|
1c510: 000009fd 00fb00fe 00fa0300 0002fd03 ................
|
|
1c520: fe00f800 03fd00ff 000000fe 00fafdf6 ................
|
|
1c530: f40000f8 00fd0900 000200fb f8fd00fd ................
|
|
1c540: 0003fd00 fe000000 fd030000 fd000001 ................
|
|
1c550: 00fd00fe 00000000 00000000 00000000 ................
|
|
1c560: 00000000 000600f0 0000fe00 00010000 ................
|
|
1c570: 0000fdfd 06000500 00000000 01f1f000 ................
|
|
1c580: f604080b 09000b02 00000500 00000000 ................
|
|
1c590: 00000000 00000e00 00000000 00000000 ................
|
|
...
|
|
|
|
0001c5a8 <kern_classes>:
|
|
1c5a8: 0001b9f8 0001c5b8 0001c654 0000313d ........T...=1..
|
|
|
|
0001c5b8 <kern_left_class_mapping>:
|
|
1c5b8: 02010000 05040300 08070602 0a090a09 ................
|
|
1c5c8: 0d000c0b 11100f0e 140c1312 00000014 ................
|
|
1c5d8: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. ..
|
|
1c5e8: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+.
|
|
1c5f8: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450--
|
|
1c608: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)...
|
|
1c618: 0000093d 00000000 00000000 00000000 =...............
|
|
...
|
|
|
|
0001c654 <kern_right_class_mapping>:
|
|
1c654: 02010000 05040300 08070602 0a090a09 ................
|
|
1c664: 0e0d0c0b 0c11100f 15141312 00000015 ................
|
|
1c674: 19181716 19191917 1a191917 19191919 ................
|
|
1c684: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#.
|
|
1c694: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&**
|
|
1c6a4: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#.
|
|
1c6b4: 00000931 00000000 00000000 00000000 1...............
|
|
...
|
|
|
|
0001c6f0 <unicode_list_1>:
|
|
1c6f0: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a.
|
|
1c700: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x.
|
|
1c710: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................
|
|
1c720: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................
|
|
1c730: efc9efc8 efe3efcb f014efe5 f017f015 ................
|
|
1c740: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;...
|
|
1c750: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T.
|
|
1c760: f712f4aa 0000f7f2 ........
|
|
|
|
0001c768 <lv_anim_path_def>:
|
|
1c768: 0000f7b9 00000000 0000ff4e 0000ffa8 ........N.......
|
|
1c778: 0000ffb0 0000ffda 0000fff0 00010006 ................
|
|
1c788: 0001003c 0001005e 00010088 000100be <...^...........
|
|
1c798: 000100ce 000100fe 0001011a 0001012a ............*...
|
|
1c7a8: 0001015a 00010176 00010186 000101b6 Z...v...........
|
|
1c7b8: 000101d2 000101e2 00010218 ............
|
|
|
|
0001c7c4 <sin0_90_table>:
|
|
1c7c4: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a...
|
|
1c7d4: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!!
|
|
1c7e4: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2
|
|
1c7f4: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A
|
|
1c804: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI<K.M.N.P
|
|
1c814: 53f95246 574b55a5 5a8258ea 5d9c5c13 FR.S.UKW.X.Z.\.]
|
|
1c824: 609a5f1f 6379620d 663964dd 68d9678d ._.`.byc.d9f.g.h
|
|
1c834: 6b596a1d 6db76c8c 6ff36ed9 720c7104 .jYk.l.m.n.o.q.r
|
|
1c844: 7401730b 75d274ee 777f76ad 79067847 .s.t.t.u.v.wGx.y
|
|
1c854: 7a6779bb 7ba27b0a 7cb77c32 7da57d33 .ygz.{.{2|.|3}.}
|
|
1c864: 7e6c7e0d 7f0b7ec0 7f827f4b 7fd27faf .~l~.~..K.......
|
|
1c874: 7ffa7feb 00007fff 3b2e2c20 005f2d3a ........ ,.;:-_.
|
|
1c884: 00011ca6 00011c90 00011cb8 00011e1e ................
|
|
1c894: 00011d88 00011cec 00011d06 00012382 .............#..
|
|
1c8a4: 00011df6 00011ece 000121a0 00011cd2 .........!......
|
|
1c8b4: 000123d4 00012132 00012438 00011dfe .#..2!..8$......
|
|
1c8c4: 00011e06 00011d48 00011e0e 00011f58 ....H.......X...
|
|
1c8d4: 00011e16 000120da 00012118 00012414 ..... ...!...$..
|
|
1c8e4: 00011f06 00011f2a 000120ca 00011f72 ....*.... ..r...
|
|
1c8f4: 00012092 00011e84 00012326 0001235e . ......&#..^#..
|
|
1c904: 00011e56 00011db6 000121fc 00011fc4 V........!......
|
|
1c914: 00012034 000122ca 00012054 00012260 4 ..."..T ..`"..
|
|
1c924: 000122b0 94d38c51 0000ffff 00008410 ."..Q...........
|
|
1c934: 008c80ef 00006325 6c6c6548 4f57206f ....%c..Hello WO
|
|
1c944: 0a646c72 00000000 2b302d23 6c680020 rld.....#-0+ .hl
|
|
1c954: 6665004c 47464567 32313000 36353433 L.efgEFG.0123456
|
|
1c964: 41393837 45444342 31300046 35343332 789ABCDEF.012345
|
|
1c974: 39383736 64636261 00006665 6789abcdef..
|
|
|
|
0001c980 <_init>:
|
|
1c980: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
1c982: 46c0 nop ; (mov r8, r8)
|
|
1c984: bcf8 pop {r3, r4, r5, r6, r7}
|
|
1c986: bc08 pop {r3}
|
|
1c988: 469e mov lr, r3
|
|
1c98a: 4770 bx lr
|
|
|
|
0001c98c <__init_array_start>:
|
|
1c98c: 000000dd .word 0x000000dd
|
|
|
|
0001c990 <_fini>:
|
|
1c990: b5f8 push {r3, r4, r5, r6, r7, lr}
|
|
1c992: 46c0 nop ; (mov r8, r8)
|
|
1c994: bcf8 pop {r3, r4, r5, r6, r7}
|
|
1c996: bc08 pop {r3}
|
|
1c998: 469e mov lr, r3
|
|
1c99a: 4770 bx lr
|
|
|
|
0001c99c <__fini_array_start>:
|
|
1c99c: 000000b5 .word 0x000000b5
|
|
|
|
Disassembly of section .relocate:
|
|
|
|
20000000 <portable_delay_cycles>:
|
|
RAMFUNC
|
|
void portable_delay_cycles(unsigned long n)
|
|
{
|
|
UNUSED(n);
|
|
|
|
__asm (
|
|
20000000: f3bf 8f5f dmb sy
|
|
20000004: 3801 subs r0, #1
|
|
20000006: 2800 cmp r0, #0
|
|
20000008: d1fa bne.n 20000000 <portable_delay_cycles>
|
|
"SUB r0, r0, #1 \n"
|
|
#endif
|
|
"CMP r0, #0 \n"
|
|
"BNE loop "
|
|
);
|
|
}
|
|
2000000a: 4770 bx lr
|
|
|
|
2000000c <g_interrupt_enabled>:
|
|
2000000c: 0001 0000 ....
|
|
|
|
20000010 <font_dsc>:
|
|
20000010: 8fc0 0001 8ae8 0001 8ac0 0001 c5a8 0001 ................
|
|
20000020: 0010 5002 0000 0000 0000 0000 0000 0000 ...P............
|
|
|
|
20000030 <lv_font_montserrat_16>:
|
|
20000030: f2bd 0000 e8b1 0000 0012 0003 0000 0000 ................
|
|
20000040: 0010 2000 ...
|
|
|
|
20000044 <mem_buf_small>:
|
|
20000044: 2bec 2000 0010 0000 2bfc 2000 0010 0000 .+. .....+. ....
|
|
|
|
20000054 <_lv_txt_encoded_get_char_id>:
|
|
20000054: 1755 0001 U...
|
|
|
|
20000058 <_lv_txt_encoded_next>:
|
|
20000058: 1645 0001 E...
|
|
|
|
2000005c <cmd_mode>:
|
|
2000005c: 0001 0000 ....
|
|
|
|
20000060 <_impure_ptr>:
|
|
20000060: 0064 2000 d..
|
|
|
|
20000064 <impure_data>:
|
|
...
|