ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 1
1 .cpu cortex-m3
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 4
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "displayclass.cpp"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text._ZdlPvj,"ax",%progbits
16 .align 1
17 .global _ZdlPvj
18 .arch armv7-m
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu softvfp
24 _ZdlPvj:
25 .LVL0:
26 .LFB35:
27 .file 1 "../libOLED/src/displayclass.cpp"
1:../libOLED/src/displayclass.cpp **** /*
2:../libOLED/src/displayclass.cpp **** * displayclass.cpp
3:../libOLED/src/displayclass.cpp **** *
4:../libOLED/src/displayclass.cpp **** * Created on: 31 Oct 2020
5:../libOLED/src/displayclass.cpp **** * Author: mike
6:../libOLED/src/displayclass.cpp **** */
7:../libOLED/src/displayclass.cpp ****
8:../libOLED/src/displayclass.cpp **** #include "libOLED/displayclass.H"
9:../libOLED/src/displayclass.cpp ****
10:../libOLED/src/displayclass.cpp **** #include <cstring>
11:../libOLED/src/displayclass.cpp **** #include <cstdlib>
12:../libOLED/src/displayclass.cpp **** namespace
13:../libOLED/src/displayclass.cpp **** {
14:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETCONTRAST = 0x81;
15:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_DISPLAYALLON_RESUME = 0xA4;
16:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_DISPLAYALLON = 0xA5;
17:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_NORMALDISPLAY = 0xA6;
18:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_INVERTDISPLAY = 0xA7;
19:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_DISPLAYOFF = 0xAE;
20:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_DISPLAYON = 0xAF;
21:../libOLED/src/displayclass.cpp ****
22:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETDISPLAYOFFSET = 0xD3;
23:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETCOMPINS = 0xDA;
24:../libOLED/src/displayclass.cpp ****
25:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETVCOMDETECT = 0xDB;
26:../libOLED/src/displayclass.cpp ****
27:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETDISPLAYCLOCKDIV = 0xD5;
28:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETPRECHARGE = 0xD9;
29:../libOLED/src/displayclass.cpp ****
30:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETMULTIPLEX = 0xA8;
31:../libOLED/src/displayclass.cpp ****
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 2
32:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETLOWCOLUMN = 0x00;
33:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETHIGHCOLUMN = 0x10;
34:../libOLED/src/displayclass.cpp ****
35:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SETSTARTLINE = 0x40;
36:../libOLED/src/displayclass.cpp ****
37:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_MEMORYMODE = 0x20;
38:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_COLUMNADDR = 0x21;
39:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_PAGEADDR = 0x22;
40:../libOLED/src/displayclass.cpp ****
41:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_COMSCANINC = 0xC0;
42:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_COMSCANDEC = 0xC8;
43:../libOLED/src/displayclass.cpp ****
44:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SEGREMAP = 0xA0;
45:../libOLED/src/displayclass.cpp ****
46:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_CHARGEPUMP = 0x8D;
47:../libOLED/src/displayclass.cpp ****
48:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_EXTERNALVCC = 0x1;
49:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SWITCHCAPVCC = 0x2;
50:../libOLED/src/displayclass.cpp ****
51:../libOLED/src/displayclass.cpp **** // Scrolling #defines
52:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_ACTIVATE_SCROLL = 0x2F;
53:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_DEACTIVATE_SCROLL = 0x2E;
54:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_SET_VERTICAL_SCROLL_AREA = 0xA3;
55:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_RIGHT_HORIZONTAL_SCROLL = 0x26;
56:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_LEFT_HORIZONTAL_SCROLL = 0x27;
57:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL = 0x29;
58:../libOLED/src/displayclass.cpp **** uint8_t const SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL = 0x2A;
59:../libOLED/src/displayclass.cpp ****
60:../libOLED/src/displayclass.cpp **** template <class T>
61:../libOLED/src/displayclass.cpp **** void
62:../libOLED/src/displayclass.cpp **** swap(T &x, T &y)
63:../libOLED/src/displayclass.cpp **** {
64:../libOLED/src/displayclass.cpp **** T temp = x;
65:../libOLED/src/displayclass.cpp **** x = y;
66:../libOLED/src/displayclass.cpp **** y = temp;
67:../libOLED/src/displayclass.cpp **** }
68:../libOLED/src/displayclass.cpp ****
69:../libOLED/src/displayclass.cpp **** template <class T>
70:../libOLED/src/displayclass.cpp **** T abs(T x)
71:../libOLED/src/displayclass.cpp **** {
72:../libOLED/src/displayclass.cpp **** return x < 0 ? -x : x;
73:../libOLED/src/displayclass.cpp **** }
74:../libOLED/src/displayclass.cpp ****
75:../libOLED/src/displayclass.cpp **** }
76:../libOLED/src/displayclass.cpp **** // provided to allow a destructor to destroy something not deleted
77:../libOLED/src/displayclass.cpp **** // this is only OK because destructors shouldnt be needed
78:../libOLED/src/displayclass.cpp **** void operator delete(void *data, unsigned int f)
79:../libOLED/src/displayclass.cpp **** {
28 .loc 1 79 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
80:../libOLED/src/displayclass.cpp **** (void)data;
33 .loc 1 80 3 view .LVU1
81:../libOLED/src/displayclass.cpp **** (void)f;
34 .loc 1 81 3 view .LVU2
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 3
82:../libOLED/src/displayclass.cpp **** }
35 .loc 1 82 1 is_stmt 0 view .LVU3
36 0000 7047 bx lr
37 .cfi_endproc
38 .LFE35:
40 .section .text.__cxa_pure_virtual,"ax",%progbits
41 .align 1
42 .global __cxa_pure_virtual
43 .syntax unified
44 .thumb
45 .thumb_func
46 .fpu softvfp
48 __cxa_pure_virtual:
49 .LFB36:
83:../libOLED/src/displayclass.cpp ****
84:../libOLED/src/displayclass.cpp **** // provided to implement an "error handler" on pure virtual
85:../libOLED/src/displayclass.cpp **** extern "C" void
86:../libOLED/src/displayclass.cpp **** __cxa_pure_virtual()
87:../libOLED/src/displayclass.cpp **** {
50 .loc 1 87 1 is_stmt 1 view -0
51 .cfi_startproc
52 @ Volatile: function does not return.
53 @ args = 0, pretend = 0, frame = 0
54 @ frame_needed = 0, uses_anonymous_args = 0
55 @ link register save eliminated.
56 .L3:
88:../libOLED/src/displayclass.cpp **** while (1)
57 .loc 1 88 3 discriminator 1 view .LVU5
58 .loc 1 88 3 discriminator 1 view .LVU6
59 0000 FEE7 b .L3
60 .cfi_endproc
61 .LFE36:
63 .section .text._ZN9display_tC2EiiiPh,"ax",%progbits
64 .align 1
65 .global _ZN9display_tC2EiiiPh
66 .syntax unified
67 .thumb
68 .thumb_func
69 .fpu softvfp
71 _ZN9display_tC2EiiiPh:
72 .LVL1:
73 .LFB38:
89:../libOLED/src/displayclass.cpp **** ;
90:../libOLED/src/displayclass.cpp **** }
91:../libOLED/src/displayclass.cpp ****
92:../libOLED/src/displayclass.cpp **** display_t::display_t(int const width, int const height, int const ramwidth,
74 .loc 1 92 1 view -0
75 .cfi_startproc
76 @ args = 4, pretend = 0, frame = 0
77 @ frame_needed = 0, uses_anonymous_args = 0
78 .LBB26:
93:../libOLED/src/displayclass.cpp **** uint8_t *const data) : m_width(width), m_height(height), m_ramwidth(ramwidth),
79 .loc 1 93 174 is_stmt 0 view .LVU8
80 0000 C0E90223 strd r2, r3, [r0, #8]
81 0004 0023 movs r3, #0
82 .LVL2:
83 .loc 1 93 174 view .LVU9
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 4
84 0006 C0E90433 strd r3, r3, [r0, #16]
85 000a 8361 str r3, [r0, #24]
86 000c 0123 movs r3, #1
87 .LBE26:
92:../libOLED/src/displayclass.cpp **** uint8_t *const data) : m_width(width), m_height(height), m_ramwidth(ramwidth),
88 .loc 1 92 1 view .LVU10
89 000e 30B5 push {r4, r5, lr}
90 .LCFI0:
91 .cfi_def_cfa_offset 12
92 .cfi_offset 4, -12
93 .cfi_offset 5, -8
94 .cfi_offset 14, -4
95 .LBB27:
96 .loc 1 93 174 view .LVU11
97 0010 0377 strb r3, [r0, #28]
98 0012 034D ldr r5, .L5
99 0014 039B ldr r3, [sp, #12]
100 0016 C0E90051 strd r5, r1, [r0]
101 001a 0362 str r3, [r0, #32]
102 .LBE27:
94:../libOLED/src/displayclass.cpp **** {
95:../libOLED/src/displayclass.cpp **** }
103 .loc 1 95 1 view .LVU12
104 001c 30BD pop {r4, r5, pc}
105 .LVL3:
106 .L6:
107 .loc 1 95 1 view .LVU13
108 001e 00BF .align 2
109 .L5:
110 0020 08000000 .word .LANCHOR0+8
111 .cfi_endproc
112 .LFE38:
114 .global _ZN9display_tC1EiiiPh
115 .thumb_set _ZN9display_tC1EiiiPh,_ZN9display_tC2EiiiPh
116 .section .text._ZN9display_tD0Ev,"ax",%progbits
117 .align 1
118 .global _ZN9display_tD0Ev
119 .syntax unified
120 .thumb
121 .thumb_func
122 .fpu softvfp
124 _ZN9display_tD0Ev:
125 .LVL4:
126 .LFB43:
96:../libOLED/src/displayclass.cpp ****
97:../libOLED/src/displayclass.cpp **** display_t::~display_t()
127 .loc 1 97 1 is_stmt 1 view -0
128 .cfi_startproc
129 @ args = 0, pretend = 0, frame = 0
130 @ frame_needed = 0, uses_anonymous_args = 0
131 @ link register save eliminated.
132 .LBB28:
133 .LBI28:
134 .loc 1 97 1 view .LVU15
135 .loc 1 97 1 is_stmt 0 view .LVU16
136 .LBE28:
80:../libOLED/src/displayclass.cpp **** (void)f;
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 5
137 .loc 1 80 3 is_stmt 1 view .LVU17
81:../libOLED/src/displayclass.cpp **** }
138 .loc 1 81 3 view .LVU18
98:../libOLED/src/displayclass.cpp **** {
99:../libOLED/src/displayclass.cpp **** }
139 .loc 1 99 1 is_stmt 0 view .LVU19
140 0000 7047 bx lr
141 .cfi_endproc
142 .LFE43:
144 .global _ZN9display_tD1Ev
145 .thumb_set _ZN9display_tD1Ev,_ZN9display_tD0Ev
146 .global _ZN9display_tD2Ev
147 .thumb_set _ZN9display_tD2Ev,_ZN9display_tD0Ev
148 .section .text._ZN9display_t5resetEv,"ax",%progbits
149 .align 1
150 .global _ZN9display_t5resetEv
151 .syntax unified
152 .thumb
153 .thumb_func
154 .fpu softvfp
156 _ZN9display_t5resetEv:
157 .LVL5:
158 .LFB44:
100:../libOLED/src/displayclass.cpp ****
101:../libOLED/src/displayclass.cpp **** void display_t::reset()
102:../libOLED/src/displayclass.cpp **** {
159 .loc 1 102 1 is_stmt 1 view -0
160 .cfi_startproc
161 @ args = 0, pretend = 0, frame = 0
162 @ frame_needed = 0, uses_anonymous_args = 0
163 @ link register save eliminated.
103:../libOLED/src/displayclass.cpp **** oledReset();
164 .loc 1 103 3 view .LVU21
165 .loc 1 103 13 is_stmt 0 view .LVU22
166 0000 0368 ldr r3, [r0]
167 .loc 1 103 12 view .LVU23
168 0002 1B69 ldr r3, [r3, #16]
169 0004 1847 bx r3 @ indirect register sibling call
170 .LVL6:
171 .loc 1 103 12 view .LVU24
172 .cfi_endproc
173 .LFE44:
175 .section .text._ZN9display_t11getRotationEv,"ax",%progbits
176 .align 1
177 .global _ZN9display_t11getRotationEv
178 .syntax unified
179 .thumb
180 .thumb_func
181 .fpu softvfp
183 _ZN9display_t11getRotationEv:
184 .LVL7:
185 .LFB46:
104:../libOLED/src/displayclass.cpp **** }
105:../libOLED/src/displayclass.cpp ****
106:../libOLED/src/displayclass.cpp **** void display_t::init()
107:../libOLED/src/displayclass.cpp **** {
108:../libOLED/src/displayclass.cpp **** uint8_t const vccstate = SSD1306_EXTERNALVCC;
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 6
109:../libOLED/src/displayclass.cpp ****
110:../libOLED/src/displayclass.cpp **** oledSetCD(0);
111:../libOLED/src/displayclass.cpp ****
112:../libOLED/src/displayclass.cpp **** // Init sequence for 128x32 or 128x64 OLED module
113:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYOFF); // 0xAE
114:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
115:../libOLED/src/displayclass.cpp **** oledWrite(0x80); // the suggested ratio 0x80
116:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETMULTIPLEX); // 0xA8
117:../libOLED/src/displayclass.cpp **** oledWrite(m_height - 1);
118:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYOFFSET); // 0xD3
119:../libOLED/src/displayclass.cpp **** oledWrite(0x0); // no offset
120:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
121:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_CHARGEPUMP); // 0x8D
122:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
123:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_MEMORYMODE); // 0x20
124:../libOLED/src/displayclass.cpp **** oledWrite(0x00); // 0x0 act like ks0108
125:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SEGREMAP | 0x1);
126:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_COMSCANDEC);
127:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCOMPINS); // 0xDA
128:../libOLED/src/displayclass.cpp **** oledWrite(m_height == 32 ? 0x02 : 0x12);
129:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
130:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
131:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETPRECHARGE); // 0xd9
132:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
133:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
134:../libOLED/src/displayclass.cpp **** oledWrite(0x40);
135:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
136:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_NORMALDISPLAY); // 0xA6
137:../libOLED/src/displayclass.cpp ****
138:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYON); //--turn on oled panel
139:../libOLED/src/displayclass.cpp ****
140:../libOLED/src/displayclass.cpp **** clearDisplay();
141:../libOLED/src/displayclass.cpp **** }
142:../libOLED/src/displayclass.cpp ****
143:../libOLED/src/displayclass.cpp **** uint8_t
144:../libOLED/src/displayclass.cpp **** display_t::getRotation(void)
145:../libOLED/src/displayclass.cpp **** {
186 .loc 1 145 1 is_stmt 1 view -0
187 .cfi_startproc
188 @ args = 0, pretend = 0, frame = 0
189 @ frame_needed = 0, uses_anonymous_args = 0
190 @ link register save eliminated.
146:../libOLED/src/displayclass.cpp **** return m_rotation;
191 .loc 1 146 3 view .LVU26
147:../libOLED/src/displayclass.cpp **** }
192 .loc 1 147 1 is_stmt 0 view .LVU27
193 0000 007E ldrb r0, [r0, #24] @ zero_extendqisi2
194 .LVL8:
195 .loc 1 147 1 view .LVU28
196 0002 7047 bx lr
197 .cfi_endproc
198 .LFE46:
200 .section .text._ZN9display_t5widthEv,"ax",%progbits
201 .align 1
202 .global _ZN9display_t5widthEv
203 .syntax unified
204 .thumb
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 7
205 .thumb_func
206 .fpu softvfp
208 _ZN9display_t5widthEv:
209 .LVL9:
210 .LFB47:
148:../libOLED/src/displayclass.cpp ****
149:../libOLED/src/displayclass.cpp **** int16_t
150:../libOLED/src/displayclass.cpp **** display_t::width(void)
151:../libOLED/src/displayclass.cpp **** {
211 .loc 1 151 1 is_stmt 1 view -0
212 .cfi_startproc
213 @ args = 0, pretend = 0, frame = 0
214 @ frame_needed = 0, uses_anonymous_args = 0
215 @ link register save eliminated.
152:../libOLED/src/displayclass.cpp **** switch (m_rotation)
216 .loc 1 152 3 view .LVU30
217 .loc 1 152 11 is_stmt 0 view .LVU31
218 0000 8369 ldr r3, [r0, #24]
219 .loc 1 152 3 view .LVU32
220 0002 022B cmp r3, #2
221 0004 0DD0 beq .L11
222 0006 03DC bgt .L12
223 0008 012B cmp r3, #1
224 000a 07D9 bls .L17
225 .L16:
226 000c 0020 movs r0, #0
227 .LVL10:
153:../libOLED/src/displayclass.cpp **** {
154:../libOLED/src/displayclass.cpp **** case 0:
155:../libOLED/src/displayclass.cpp **** return m_width;
156:../libOLED/src/displayclass.cpp **** break;
157:../libOLED/src/displayclass.cpp **** case 1:
158:../libOLED/src/displayclass.cpp **** return m_width;
159:../libOLED/src/displayclass.cpp **** break;
160:../libOLED/src/displayclass.cpp **** case 2:
161:../libOLED/src/displayclass.cpp **** return m_height;
162:../libOLED/src/displayclass.cpp **** break;
163:../libOLED/src/displayclass.cpp **** case 3:
164:../libOLED/src/displayclass.cpp **** return -m_width;
165:../libOLED/src/displayclass.cpp **** break;
166:../libOLED/src/displayclass.cpp **** }
167:../libOLED/src/displayclass.cpp **** return 0;
168:../libOLED/src/displayclass.cpp **** }
228 .loc 1 168 1 view .LVU33
229 000e 7047 bx lr
230 .LVL11:
231 .L12:
152:../libOLED/src/displayclass.cpp **** switch (m_rotation)
232 .loc 1 152 3 view .LVU34
233 0010 032B cmp r3, #3
234 0012 FBD1 bne .L16
162:../libOLED/src/displayclass.cpp **** case 3:
235 .loc 1 162 5 is_stmt 1 view .LVU35
163:../libOLED/src/displayclass.cpp **** return -m_width;
236 .loc 1 163 3 view .LVU36
164:../libOLED/src/displayclass.cpp **** break;
237 .loc 1 164 5 view .LVU37
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 8
164:../libOLED/src/displayclass.cpp **** break;
238 .loc 1 164 13 is_stmt 0 view .LVU38
239 0014 4068 ldr r0, [r0, #4]
240 .LVL12:
164:../libOLED/src/displayclass.cpp **** break;
241 .loc 1 164 13 view .LVU39
242 0016 4042 rsbs r0, r0, #0
243 0018 00B2 sxth r0, r0
244 001a 7047 bx lr
245 .LVL13:
246 .L17:
154:../libOLED/src/displayclass.cpp **** return m_width;
247 .loc 1 154 3 is_stmt 1 view .LVU40
155:../libOLED/src/displayclass.cpp **** break;
248 .loc 1 155 5 view .LVU41
155:../libOLED/src/displayclass.cpp **** break;
249 .loc 1 155 12 is_stmt 0 view .LVU42
250 001c B0F90400 ldrsh r0, [r0, #4]
251 .LVL14:
155:../libOLED/src/displayclass.cpp **** break;
252 .loc 1 155 12 view .LVU43
253 0020 7047 bx lr
254 .LVL15:
255 .L11:
159:../libOLED/src/displayclass.cpp **** case 2:
256 .loc 1 159 5 is_stmt 1 view .LVU44
160:../libOLED/src/displayclass.cpp **** return m_height;
257 .loc 1 160 3 view .LVU45
161:../libOLED/src/displayclass.cpp **** break;
258 .loc 1 161 5 view .LVU46
161:../libOLED/src/displayclass.cpp **** break;
259 .loc 1 161 12 is_stmt 0 view .LVU47
260 0022 B0F90800 ldrsh r0, [r0, #8]
261 .LVL16:
161:../libOLED/src/displayclass.cpp **** break;
262 .loc 1 161 12 view .LVU48
263 0026 7047 bx lr
264 .cfi_endproc
265 .LFE47:
267 .section .text._ZN9display_t6heightEv,"ax",%progbits
268 .align 1
269 .global _ZN9display_t6heightEv
270 .syntax unified
271 .thumb
272 .thumb_func
273 .fpu softvfp
275 _ZN9display_t6heightEv:
276 .LVL17:
277 .LFB48:
169:../libOLED/src/displayclass.cpp ****
170:../libOLED/src/displayclass.cpp **** int16_t
171:../libOLED/src/displayclass.cpp **** display_t::height(void)
172:../libOLED/src/displayclass.cpp **** {
278 .loc 1 172 1 is_stmt 1 view -0
279 .cfi_startproc
280 @ args = 0, pretend = 0, frame = 0
281 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 9
282 @ link register save eliminated.
173:../libOLED/src/displayclass.cpp **** switch (m_rotation)
283 .loc 1 173 3 view .LVU50
284 .loc 1 173 11 is_stmt 0 view .LVU51
285 0000 8369 ldr r3, [r0, #24]
286 .loc 1 173 3 view .LVU52
287 0002 022B cmp r3, #2
288 0004 0DD0 beq .L19
289 0006 03DC bgt .L20
290 0008 012B cmp r3, #1
291 000a 07D9 bls .L25
292 .L24:
293 000c 0020 movs r0, #0
294 .LVL18:
174:../libOLED/src/displayclass.cpp **** {
175:../libOLED/src/displayclass.cpp **** case 0:
176:../libOLED/src/displayclass.cpp **** return m_height;
177:../libOLED/src/displayclass.cpp **** break;
178:../libOLED/src/displayclass.cpp **** case 1:
179:../libOLED/src/displayclass.cpp **** return m_height;
180:../libOLED/src/displayclass.cpp **** break;
181:../libOLED/src/displayclass.cpp **** case 2:
182:../libOLED/src/displayclass.cpp **** return m_width;
183:../libOLED/src/displayclass.cpp **** break;
184:../libOLED/src/displayclass.cpp **** case 3:
185:../libOLED/src/displayclass.cpp **** return -m_height;
186:../libOLED/src/displayclass.cpp **** break;
187:../libOLED/src/displayclass.cpp **** }
188:../libOLED/src/displayclass.cpp **** return 0;
189:../libOLED/src/displayclass.cpp **** }
295 .loc 1 189 1 view .LVU53
296 000e 7047 bx lr
297 .LVL19:
298 .L20:
173:../libOLED/src/displayclass.cpp **** switch (m_rotation)
299 .loc 1 173 3 view .LVU54
300 0010 032B cmp r3, #3
301 0012 FBD1 bne .L24
183:../libOLED/src/displayclass.cpp **** case 3:
302 .loc 1 183 5 is_stmt 1 view .LVU55
184:../libOLED/src/displayclass.cpp **** return -m_height;
303 .loc 1 184 3 view .LVU56
185:../libOLED/src/displayclass.cpp **** break;
304 .loc 1 185 5 view .LVU57
185:../libOLED/src/displayclass.cpp **** break;
305 .loc 1 185 13 is_stmt 0 view .LVU58
306 0014 8068 ldr r0, [r0, #8]
307 .LVL20:
185:../libOLED/src/displayclass.cpp **** break;
308 .loc 1 185 13 view .LVU59
309 0016 4042 rsbs r0, r0, #0
310 0018 00B2 sxth r0, r0
311 001a 7047 bx lr
312 .LVL21:
313 .L25:
175:../libOLED/src/displayclass.cpp **** return m_height;
314 .loc 1 175 3 is_stmt 1 view .LVU60
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 10
176:../libOLED/src/displayclass.cpp **** break;
315 .loc 1 176 5 view .LVU61
176:../libOLED/src/displayclass.cpp **** break;
316 .loc 1 176 12 is_stmt 0 view .LVU62
317 001c B0F90800 ldrsh r0, [r0, #8]
318 .LVL22:
176:../libOLED/src/displayclass.cpp **** break;
319 .loc 1 176 12 view .LVU63
320 0020 7047 bx lr
321 .LVL23:
322 .L19:
180:../libOLED/src/displayclass.cpp **** case 2:
323 .loc 1 180 5 is_stmt 1 view .LVU64
181:../libOLED/src/displayclass.cpp **** return m_width;
324 .loc 1 181 3 view .LVU65
182:../libOLED/src/displayclass.cpp **** break;
325 .loc 1 182 5 view .LVU66
182:../libOLED/src/displayclass.cpp **** break;
326 .loc 1 182 12 is_stmt 0 view .LVU67
327 0022 B0F90400 ldrsh r0, [r0, #4]
328 .LVL24:
182:../libOLED/src/displayclass.cpp **** break;
329 .loc 1 182 12 view .LVU68
330 0026 7047 bx lr
331 .cfi_endproc
332 .LFE48:
334 .section .text._ZN9display_t9drawPixelEssb,"ax",%progbits
335 .align 1
336 .global _ZN9display_t9drawPixelEssb
337 .syntax unified
338 .thumb
339 .thumb_func
340 .fpu softvfp
342 _ZN9display_t9drawPixelEssb:
343 .LVL25:
344 .LFB49:
190:../libOLED/src/displayclass.cpp ****
191:../libOLED/src/displayclass.cpp **** // the most basic function, set a single pixel
192:../libOLED/src/displayclass.cpp **** void display_t::drawPixel(int16_t x, int16_t y, bool pixel)
193:../libOLED/src/displayclass.cpp **** {
345 .loc 1 193 1 is_stmt 1 view -0
346 .cfi_startproc
347 @ args = 0, pretend = 0, frame = 0
348 @ frame_needed = 0, uses_anonymous_args = 0
194:../libOLED/src/displayclass.cpp **** if ((x < 0) || (x >= m_width) || (y < 0) || (y >= m_height))
349 .loc 1 194 3 view .LVU70
350 0000 0029 cmp r1, #0
351 .LVL26:
193:../libOLED/src/displayclass.cpp **** if ((x < 0) || (x >= m_width) || (y < 0) || (y >= m_height))
352 .loc 1 193 1 is_stmt 0 view .LVU71
353 0002 F0B5 push {r4, r5, r6, r7, lr}
354 .LCFI1:
355 .cfi_def_cfa_offset 20
356 .cfi_offset 4, -20
357 .cfi_offset 5, -16
358 .cfi_offset 6, -12
359 .cfi_offset 7, -8
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 11
360 .cfi_offset 14, -4
361 .loc 1 194 3 view .LVU72
362 0004 39DB blt .L26
363 .loc 1 194 24 discriminator 1 view .LVU73
364 0006 4468 ldr r4, [r0, #4]
365 .loc 1 194 15 discriminator 1 view .LVU74
366 0008 A142 cmp r1, r4
367 000a 36DA bge .L26
368 .loc 1 194 33 discriminator 2 view .LVU75
369 000c 002A cmp r2, #0
370 000e 34DB blt .L26
371 .loc 1 194 53 discriminator 3 view .LVU76
372 0010 8568 ldr r5, [r0, #8]
373 .loc 1 194 44 discriminator 3 view .LVU77
374 0012 AA42 cmp r2, r5
375 0014 31DA bge .L26
195:../libOLED/src/displayclass.cpp **** return;
196:../libOLED/src/displayclass.cpp ****
197:../libOLED/src/displayclass.cpp **** // check rotation, move pixel around if necessary
198:../libOLED/src/displayclass.cpp **** switch (m_rotation)
376 .loc 1 198 3 is_stmt 1 view .LVU78
377 .loc 1 198 11 is_stmt 0 view .LVU79
378 0016 8669 ldr r6, [r0, #24]
379 .loc 1 198 3 view .LVU80
380 0018 022E cmp r6, #2
381 001a 2FD0 beq .L28
382 001c 032E cmp r6, #3
383 001e 34D0 beq .L29
384 0020 012E cmp r6, #1
385 0022 03D1 bne .L30
199:../libOLED/src/displayclass.cpp **** {
200:../libOLED/src/displayclass.cpp **** case 1:
386 .loc 1 200 3 is_stmt 1 view .LVU81
201:../libOLED/src/displayclass.cpp **** swap(x, y);
387 .loc 1 201 5 view .LVU82
388 .LVL27:
202:../libOLED/src/displayclass.cpp **** x = m_width - x - 1;
389 .loc 1 202 5 view .LVU83
390 .loc 1 202 21 is_stmt 0 view .LVU84
391 0024 D243 mvns r2, r2
392 .LVL28:
393 .loc 1 202 21 view .LVU85
394 0026 1519 adds r5, r2, r4
395 .LVL29:
203:../libOLED/src/displayclass.cpp **** break;
396 .loc 1 203 5 is_stmt 1 view .LVU86
397 0028 0A46 mov r2, r1
202:../libOLED/src/displayclass.cpp **** x = m_width - x - 1;
398 .loc 1 202 7 is_stmt 0 view .LVU87
399 002a 29B2 sxth r1, r5
400 .LVL30:
401 .L30:
204:../libOLED/src/displayclass.cpp **** case 2:
205:../libOLED/src/displayclass.cpp **** x = m_width - x - 1;
206:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
207:../libOLED/src/displayclass.cpp **** break;
208:../libOLED/src/displayclass.cpp **** case 3:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 12
209:../libOLED/src/displayclass.cpp **** swap(x, y);
210:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
211:../libOLED/src/displayclass.cpp **** break;
212:../libOLED/src/displayclass.cpp **** }
213:../libOLED/src/displayclass.cpp ****
214:../libOLED/src/displayclass.cpp **** // x is which column
215:../libOLED/src/displayclass.cpp **** // BLACK, and 0, invert 0
216:../libOLED/src/displayclass.cpp **** // WHITE, and 0, invert 1
217:../libOLED/src/displayclass.cpp **** // OVERLAY, and 1 (preserve) , invert 0/
218:../libOLED/src/displayclass.cpp **** // INVERT, and 1, (preserve) , invert 1
219:../libOLED/src/displayclass.cpp ****
220:../libOLED/src/displayclass.cpp **** switch (m_colour)
402 .loc 1 220 3 is_stmt 1 view .LVU88
221:../libOLED/src/displayclass.cpp **** {
222:../libOLED/src/displayclass.cpp **** case BLACK:
223:../libOLED/src/displayclass.cpp **** case WHITE:
224:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
403 .loc 1 224 19 is_stmt 0 view .LVU89
404 002c 1746 mov r7, r2
220:../libOLED/src/displayclass.cpp **** {
405 .loc 1 220 3 view .LVU90
406 002e 057F ldrb r5, [r0, #28] @ zero_extendqisi2
407 .loc 1 224 19 view .LVU91
408 0030 002A cmp r2, #0
409 0032 B8BF it lt
410 0034 D71D addlt r7, r2, #7
220:../libOLED/src/displayclass.cpp **** {
411 .loc 1 220 3 view .LVU92
412 0036 012D cmp r5, #1
413 .loc 1 224 35 view .LVU93
414 0038 47F3CF07 sbfx r7, r7, #3, #16
415 .loc 1 224 48 view .LVU94
416 003c 02F00702 and r2, r2, #7
417 .LVL31:
220:../libOLED/src/displayclass.cpp **** {
418 .loc 1 220 3 view .LVU95
419 0040 0CD8 bhi .L32
420 .loc 1 224 42 view .LVU96
421 0042 0125 movs r5, #1
422 .loc 1 224 35 view .LVU97
423 0044 07FB0414 mla r4, r7, r4, r1
424 0048 D0F820C0 ldr ip, [r0, #32]
222:../libOLED/src/displayclass.cpp **** case WHITE:
425 .loc 1 222 3 is_stmt 1 view .LVU98
223:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
426 .loc 1 223 3 view .LVU99
427 .loc 1 224 5 view .LVU100
428 .loc 1 224 42 is_stmt 0 view .LVU101
429 004c 05FA02F6 lsl r6, r5, r2
430 .loc 1 224 35 view .LVU102
431 0050 1CF80450 ldrb r5, [ip, r4] @ zero_extendqisi2
432 0054 25EA0605 bic r5, r5, r6
433 0058 0CF80450 strb r5, [ip, r4]
225:../libOLED/src/displayclass.cpp **** break;
434 .loc 1 225 5 is_stmt 1 view .LVU103
435 .L32:
226:../libOLED/src/displayclass.cpp **** default:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 13
227:../libOLED/src/displayclass.cpp **** break;
228:../libOLED/src/displayclass.cpp **** }
229:../libOLED/src/displayclass.cpp **** uint8_t pixData = 0;
436 .loc 1 229 3 view .LVU104
437 .LVL32:
230:../libOLED/src/displayclass.cpp **** switch (m_colour)
438 .loc 1 230 3 view .LVU105
439 .loc 1 230 11 is_stmt 0 view .LVU106
440 005c 047F ldrb r4, [r0, #28] @ zero_extendqisi2
441 .loc 1 230 3 view .LVU107
442 005e C4B1 cbz r4, .L33
443 0060 013C subs r4, r4, #1
229:../libOLED/src/displayclass.cpp **** switch (m_colour)
444 .loc 1 229 11 view .LVU108
445 0062 022C cmp r4, #2
446 0064 88BF it hi
447 0066 0023 movhi r3, #0
448 .LVL33:
449 .L34:
231:../libOLED/src/displayclass.cpp **** {
232:../libOLED/src/displayclass.cpp **** case BLACK:
233:../libOLED/src/displayclass.cpp **** pixData = pixel ? 0 : 1;
234:../libOLED/src/displayclass.cpp **** break;
235:../libOLED/src/displayclass.cpp **** case WHITE:
236:../libOLED/src/displayclass.cpp **** case OVERLAY:
237:../libOLED/src/displayclass.cpp **** case INVERT:
238:../libOLED/src/displayclass.cpp **** pixData = pixel ? 1 : 0;
239:../libOLED/src/displayclass.cpp **** break;
240:../libOLED/src/displayclass.cpp **** }
241:../libOLED/src/displayclass.cpp ****
242:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] ^= (pixData << (y & 7));
450 .loc 1 242 3 is_stmt 1 view .LVU109
451 .loc 1 242 33 is_stmt 0 view .LVU110
452 0068 4468 ldr r4, [r0, #4]
453 006a 006A ldr r0, [r0, #32]
454 .LVL34:
455 .loc 1 242 33 view .LVU111
456 006c 04FB0711 mla r1, r4, r7, r1
457 .LVL35:
458 .loc 1 242 45 view .LVU112
459 0070 03FA02F2 lsl r2, r3, r2
460 .loc 1 242 33 view .LVU113
461 0074 435C ldrb r3, [r0, r1] @ zero_extendqisi2
462 .LVL36:
463 .loc 1 242 33 view .LVU114
464 0076 5A40 eors r2, r2, r3
465 0078 4254 strb r2, [r0, r1]
466 .L26:
243:../libOLED/src/displayclass.cpp **** }
467 .loc 1 243 1 view .LVU115
468 007a F0BD pop {r4, r5, r6, r7, pc}
469 .LVL37:
470 .L28:
204:../libOLED/src/displayclass.cpp **** x = m_width - x - 1;
471 .loc 1 204 3 is_stmt 1 view .LVU116
205:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
472 .loc 1 205 5 view .LVU117
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 14
205:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
473 .loc 1 205 21 is_stmt 0 view .LVU118
474 007c C943 mvns r1, r1
206:../libOLED/src/displayclass.cpp **** break;
475 .loc 1 206 22 view .LVU119
476 007e D243 mvns r2, r2
477 .LVL38:
205:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
478 .loc 1 205 21 view .LVU120
479 0080 2144 add r1, r1, r4
480 0082 09B2 sxth r1, r1
481 .LVL39:
206:../libOLED/src/displayclass.cpp **** break;
482 .loc 1 206 5 is_stmt 1 view .LVU121
206:../libOLED/src/displayclass.cpp **** break;
483 .loc 1 206 22 is_stmt 0 view .LVU122
484 0084 1544 add r5, r5, r2
485 .LVL40:
486 .L37:
210:../libOLED/src/displayclass.cpp **** break;
487 .loc 1 210 7 view .LVU123
488 0086 2AB2 sxth r2, r5
211:../libOLED/src/displayclass.cpp **** }
489 .loc 1 211 5 view .LVU124
490 0088 D0E7 b .L30
491 .LVL41:
492 .L29:
208:../libOLED/src/displayclass.cpp **** swap(x, y);
493 .loc 1 208 3 is_stmt 1 view .LVU125
209:../libOLED/src/displayclass.cpp **** y = m_height - y - 1;
494 .loc 1 209 5 view .LVU126
210:../libOLED/src/displayclass.cpp **** break;
495 .loc 1 210 5 view .LVU127
210:../libOLED/src/displayclass.cpp **** break;
496 .loc 1 210 22 is_stmt 0 view .LVU128
497 008a C943 mvns r1, r1
498 .LVL42:
210:../libOLED/src/displayclass.cpp **** break;
499 .loc 1 210 22 view .LVU129
500 008c 0D44 add r5, r5, r1
501 .LVL43:
211:../libOLED/src/displayclass.cpp **** }
502 .loc 1 211 5 is_stmt 1 view .LVU130
503 008e 1146 mov r1, r2
504 0090 F9E7 b .L37
505 .LVL44:
506 .L33:
232:../libOLED/src/displayclass.cpp **** pixData = pixel ? 0 : 1;
507 .loc 1 232 3 view .LVU131
233:../libOLED/src/displayclass.cpp **** break;
508 .loc 1 233 5 view .LVU132
229:../libOLED/src/displayclass.cpp **** switch (m_colour)
509 .loc 1 229 11 is_stmt 0 view .LVU133
510 0092 83F00103 eor r3, r3, #1
511 .LVL45:
229:../libOLED/src/displayclass.cpp **** switch (m_colour)
512 .loc 1 229 11 view .LVU134
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 15
513 0096 E7E7 b .L34
514 .cfi_endproc
515 .LFE49:
517 .section .text._ZN9display_t13invertDisplayEh,"ax",%progbits
518 .align 1
519 .global _ZN9display_t13invertDisplayEh
520 .syntax unified
521 .thumb
522 .thumb_func
523 .fpu softvfp
525 _ZN9display_t13invertDisplayEh:
526 .LVL46:
527 .LFB50:
244:../libOLED/src/displayclass.cpp ****
245:../libOLED/src/displayclass.cpp **** void display_t::invertDisplay(uint8_t i)
246:../libOLED/src/displayclass.cpp **** {
528 .loc 1 246 1 is_stmt 1 view -0
529 .cfi_startproc
530 @ args = 0, pretend = 0, frame = 0
531 @ frame_needed = 0, uses_anonymous_args = 0
247:../libOLED/src/displayclass.cpp **** oledSetCD(0);
532 .loc 1 247 3 view .LVU136
246:../libOLED/src/displayclass.cpp **** oledSetCD(0);
533 .loc 1 246 1 is_stmt 0 view .LVU137
534 0000 70B5 push {r4, r5, r6, lr}
535 .LCFI2:
536 .cfi_def_cfa_offset 16
537 .cfi_offset 4, -16
538 .cfi_offset 5, -12
539 .cfi_offset 6, -8
540 .cfi_offset 14, -4
246:../libOLED/src/displayclass.cpp **** oledSetCD(0);
541 .loc 1 246 1 view .LVU138
542 0002 0446 mov r4, r0
543 0004 0D46 mov r5, r1
544 .loc 1 247 14 view .LVU139
545 0006 0368 ldr r3, [r0]
546 .loc 1 247 12 view .LVU140
547 0008 0021 movs r1, #0
548 .LVL47:
549 .loc 1 247 12 view .LVU141
550 000a 9B68 ldr r3, [r3, #8]
551 000c 9847 blx r3
552 .LVL48:
248:../libOLED/src/displayclass.cpp **** oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
553 .loc 1 248 3 is_stmt 1 view .LVU142
554 .loc 1 248 62 is_stmt 0 view .LVU143
555 000e 2368 ldr r3, [r4]
556 .loc 1 248 12 view .LVU144
557 0010 002D cmp r5, #0
558 0012 2046 mov r0, r4
249:../libOLED/src/displayclass.cpp **** }
559 .loc 1 249 1 view .LVU145
560 0014 BDE87040 pop {r4, r5, r6, lr}
561 .LCFI3:
562 .cfi_restore 14
563 .cfi_restore 6
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 16
564 .cfi_restore 5
565 .cfi_restore 4
566 .cfi_def_cfa_offset 0
567 .LVL49:
248:../libOLED/src/displayclass.cpp **** oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
568 .loc 1 248 12 view .LVU146
569 0018 14BF ite ne
570 001a A721 movne r1, #167
571 001c A621 moveq r1, #166
248:../libOLED/src/displayclass.cpp **** oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
572 .loc 1 248 62 view .LVU147
573 001e DB68 ldr r3, [r3, #12]
248:../libOLED/src/displayclass.cpp **** oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
574 .loc 1 248 12 view .LVU148
575 0020 1847 bx r3 @ indirect register sibling call
576 .LVL50:
248:../libOLED/src/displayclass.cpp **** oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
577 .loc 1 248 12 view .LVU149
578 .cfi_endproc
579 .LFE50:
581 .section .text._ZN9display_t16startscrollrightEhh,"ax",%progbits
582 .align 1
583 .global _ZN9display_t16startscrollrightEhh
584 .syntax unified
585 .thumb
586 .thumb_func
587 .fpu softvfp
589 _ZN9display_t16startscrollrightEhh:
590 .LVL51:
591 .LFB51:
250:../libOLED/src/displayclass.cpp ****
251:../libOLED/src/displayclass.cpp **** // startscrollright
252:../libOLED/src/displayclass.cpp **** // Activate a right handed scroll for rows start through stop
253:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
254:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
255:../libOLED/src/displayclass.cpp **** void display_t::startscrollright(uint8_t start, uint8_t stop)
256:../libOLED/src/displayclass.cpp **** {
592 .loc 1 256 1 is_stmt 1 view -0
593 .cfi_startproc
594 @ args = 0, pretend = 0, frame = 0
595 @ frame_needed = 0, uses_anonymous_args = 0
257:../libOLED/src/displayclass.cpp **** oledSetCD(0);
596 .loc 1 257 3 view .LVU151
256:../libOLED/src/displayclass.cpp **** oledSetCD(0);
597 .loc 1 256 1 is_stmt 0 view .LVU152
598 0000 70B5 push {r4, r5, r6, lr}
599 .LCFI4:
600 .cfi_def_cfa_offset 16
601 .cfi_offset 4, -16
602 .cfi_offset 5, -12
603 .cfi_offset 6, -8
604 .cfi_offset 14, -4
256:../libOLED/src/displayclass.cpp **** oledSetCD(0);
605 .loc 1 256 1 view .LVU153
606 0002 0446 mov r4, r0
607 0004 0E46 mov r6, r1
608 0006 1546 mov r5, r2
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 17
609 .loc 1 257 14 view .LVU154
610 0008 0368 ldr r3, [r0]
611 .loc 1 257 12 view .LVU155
612 000a 0021 movs r1, #0
613 .LVL52:
614 .loc 1 257 12 view .LVU156
615 000c 9B68 ldr r3, [r3, #8]
616 000e 9847 blx r3
617 .LVL53:
258:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_RIGHT_HORIZONTAL_SCROLL);
618 .loc 1 258 3 is_stmt 1 view .LVU157
619 .loc 1 258 44 is_stmt 0 view .LVU158
620 0010 2368 ldr r3, [r4]
621 .loc 1 258 12 view .LVU159
622 0012 2046 mov r0, r4
623 0014 2621 movs r1, #38
624 0016 DB68 ldr r3, [r3, #12]
625 0018 9847 blx r3
626 .LVL54:
259:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
627 .loc 1 259 3 is_stmt 1 view .LVU160
628 .loc 1 259 17 is_stmt 0 view .LVU161
629 001a 2368 ldr r3, [r4]
630 .loc 1 259 12 view .LVU162
631 001c 2046 mov r0, r4
632 001e 0021 movs r1, #0
633 0020 DB68 ldr r3, [r3, #12]
634 0022 9847 blx r3
635 .LVL55:
260:../libOLED/src/displayclass.cpp **** oledWrite(start);
636 .loc 1 260 3 is_stmt 1 view .LVU163
637 .loc 1 260 18 is_stmt 0 view .LVU164
638 0024 2368 ldr r3, [r4]
639 .loc 1 260 12 view .LVU165
640 0026 3146 mov r1, r6
641 0028 2046 mov r0, r4
642 002a DB68 ldr r3, [r3, #12]
643 002c 9847 blx r3
644 .LVL56:
261:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
645 .loc 1 261 3 is_stmt 1 view .LVU166
646 .loc 1 261 17 is_stmt 0 view .LVU167
647 002e 2368 ldr r3, [r4]
648 .loc 1 261 12 view .LVU168
649 0030 2046 mov r0, r4
650 0032 0021 movs r1, #0
651 0034 DB68 ldr r3, [r3, #12]
652 0036 9847 blx r3
653 .LVL57:
262:../libOLED/src/displayclass.cpp **** oledWrite(stop);
654 .loc 1 262 3 is_stmt 1 view .LVU169
655 .loc 1 262 17 is_stmt 0 view .LVU170
656 0038 2368 ldr r3, [r4]
657 .loc 1 262 12 view .LVU171
658 003a 2946 mov r1, r5
659 003c 2046 mov r0, r4
660 003e DB68 ldr r3, [r3, #12]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 18
661 0040 9847 blx r3
662 .LVL58:
263:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
663 .loc 1 263 3 is_stmt 1 view .LVU172
664 .loc 1 263 17 is_stmt 0 view .LVU173
665 0042 2368 ldr r3, [r4]
666 .loc 1 263 12 view .LVU174
667 0044 2046 mov r0, r4
668 0046 0021 movs r1, #0
669 0048 DB68 ldr r3, [r3, #12]
670 004a 9847 blx r3
671 .LVL59:
264:../libOLED/src/displayclass.cpp **** oledWrite(0XFF);
672 .loc 1 264 3 is_stmt 1 view .LVU175
673 .loc 1 264 17 is_stmt 0 view .LVU176
674 004c 2368 ldr r3, [r4]
675 .loc 1 264 12 view .LVU177
676 004e 2046 mov r0, r4
677 0050 FF21 movs r1, #255
678 0052 DB68 ldr r3, [r3, #12]
679 0054 9847 blx r3
680 .LVL60:
265:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
681 .loc 1 265 3 is_stmt 1 view .LVU178
682 .loc 1 265 36 is_stmt 0 view .LVU179
683 0056 2368 ldr r3, [r4]
684 .loc 1 265 12 view .LVU180
685 0058 2046 mov r0, r4
266:../libOLED/src/displayclass.cpp **** }
686 .loc 1 266 1 view .LVU181
687 005a BDE87040 pop {r4, r5, r6, lr}
688 .LCFI5:
689 .cfi_restore 14
690 .cfi_restore 6
691 .cfi_restore 5
692 .cfi_restore 4
693 .cfi_def_cfa_offset 0
694 .LVL61:
265:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
695 .loc 1 265 12 view .LVU182
696 005e 2F21 movs r1, #47
697 0060 DB68 ldr r3, [r3, #12]
698 0062 1847 bx r3 @ indirect register sibling call
699 .LVL62:
265:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
700 .loc 1 265 12 view .LVU183
701 .cfi_endproc
702 .LFE51:
704 .section .text._ZN9display_t15startscrollleftEhh,"ax",%progbits
705 .align 1
706 .global _ZN9display_t15startscrollleftEhh
707 .syntax unified
708 .thumb
709 .thumb_func
710 .fpu softvfp
712 _ZN9display_t15startscrollleftEhh:
713 .LVL63:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 19
714 .LFB52:
267:../libOLED/src/displayclass.cpp ****
268:../libOLED/src/displayclass.cpp **** // startscrollleft
269:../libOLED/src/displayclass.cpp **** // Activate a right handed scroll for rows start through stop
270:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
271:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
272:../libOLED/src/displayclass.cpp **** void display_t::startscrollleft(uint8_t start, uint8_t stop)
273:../libOLED/src/displayclass.cpp **** {
715 .loc 1 273 1 is_stmt 1 view -0
716 .cfi_startproc
717 @ args = 0, pretend = 0, frame = 0
718 @ frame_needed = 0, uses_anonymous_args = 0
274:../libOLED/src/displayclass.cpp **** oledSetCD(0);
719 .loc 1 274 3 view .LVU185
273:../libOLED/src/displayclass.cpp **** oledSetCD(0);
720 .loc 1 273 1 is_stmt 0 view .LVU186
721 0000 70B5 push {r4, r5, r6, lr}
722 .LCFI6:
723 .cfi_def_cfa_offset 16
724 .cfi_offset 4, -16
725 .cfi_offset 5, -12
726 .cfi_offset 6, -8
727 .cfi_offset 14, -4
273:../libOLED/src/displayclass.cpp **** oledSetCD(0);
728 .loc 1 273 1 view .LVU187
729 0002 0446 mov r4, r0
730 0004 0E46 mov r6, r1
731 0006 1546 mov r5, r2
732 .loc 1 274 14 view .LVU188
733 0008 0368 ldr r3, [r0]
734 .loc 1 274 12 view .LVU189
735 000a 0021 movs r1, #0
736 .LVL64:
737 .loc 1 274 12 view .LVU190
738 000c 9B68 ldr r3, [r3, #8]
739 000e 9847 blx r3
740 .LVL65:
275:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_LEFT_HORIZONTAL_SCROLL);
741 .loc 1 275 3 is_stmt 1 view .LVU191
742 .loc 1 275 43 is_stmt 0 view .LVU192
743 0010 2368 ldr r3, [r4]
744 .loc 1 275 12 view .LVU193
745 0012 2046 mov r0, r4
746 0014 2721 movs r1, #39
747 0016 DB68 ldr r3, [r3, #12]
748 0018 9847 blx r3
749 .LVL66:
276:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
750 .loc 1 276 3 is_stmt 1 view .LVU194
751 .loc 1 276 17 is_stmt 0 view .LVU195
752 001a 2368 ldr r3, [r4]
753 .loc 1 276 12 view .LVU196
754 001c 2046 mov r0, r4
755 001e 0021 movs r1, #0
756 0020 DB68 ldr r3, [r3, #12]
757 0022 9847 blx r3
758 .LVL67:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 20
277:../libOLED/src/displayclass.cpp **** oledWrite(start);
759 .loc 1 277 3 is_stmt 1 view .LVU197
760 .loc 1 277 18 is_stmt 0 view .LVU198
761 0024 2368 ldr r3, [r4]
762 .loc 1 277 12 view .LVU199
763 0026 3146 mov r1, r6
764 0028 2046 mov r0, r4
765 002a DB68 ldr r3, [r3, #12]
766 002c 9847 blx r3
767 .LVL68:
278:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
768 .loc 1 278 3 is_stmt 1 view .LVU200
769 .loc 1 278 17 is_stmt 0 view .LVU201
770 002e 2368 ldr r3, [r4]
771 .loc 1 278 12 view .LVU202
772 0030 2046 mov r0, r4
773 0032 0021 movs r1, #0
774 0034 DB68 ldr r3, [r3, #12]
775 0036 9847 blx r3
776 .LVL69:
279:../libOLED/src/displayclass.cpp **** oledWrite(stop);
777 .loc 1 279 3 is_stmt 1 view .LVU203
778 .loc 1 279 17 is_stmt 0 view .LVU204
779 0038 2368 ldr r3, [r4]
780 .loc 1 279 12 view .LVU205
781 003a 2946 mov r1, r5
782 003c 2046 mov r0, r4
783 003e DB68 ldr r3, [r3, #12]
784 0040 9847 blx r3
785 .LVL70:
280:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
786 .loc 1 280 3 is_stmt 1 view .LVU206
787 .loc 1 280 17 is_stmt 0 view .LVU207
788 0042 2368 ldr r3, [r4]
789 .loc 1 280 12 view .LVU208
790 0044 2046 mov r0, r4
791 0046 0021 movs r1, #0
792 0048 DB68 ldr r3, [r3, #12]
793 004a 9847 blx r3
794 .LVL71:
281:../libOLED/src/displayclass.cpp **** oledWrite(0XFF);
795 .loc 1 281 3 is_stmt 1 view .LVU209
796 .loc 1 281 17 is_stmt 0 view .LVU210
797 004c 2368 ldr r3, [r4]
798 .loc 1 281 12 view .LVU211
799 004e 2046 mov r0, r4
800 0050 FF21 movs r1, #255
801 0052 DB68 ldr r3, [r3, #12]
802 0054 9847 blx r3
803 .LVL72:
282:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
804 .loc 1 282 3 is_stmt 1 view .LVU212
805 .loc 1 282 36 is_stmt 0 view .LVU213
806 0056 2368 ldr r3, [r4]
807 .loc 1 282 12 view .LVU214
808 0058 2046 mov r0, r4
283:../libOLED/src/displayclass.cpp **** }
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 21
809 .loc 1 283 1 view .LVU215
810 005a BDE87040 pop {r4, r5, r6, lr}
811 .LCFI7:
812 .cfi_restore 14
813 .cfi_restore 6
814 .cfi_restore 5
815 .cfi_restore 4
816 .cfi_def_cfa_offset 0
817 .LVL73:
282:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
818 .loc 1 282 12 view .LVU216
819 005e 2F21 movs r1, #47
820 0060 DB68 ldr r3, [r3, #12]
821 0062 1847 bx r3 @ indirect register sibling call
822 .LVL74:
282:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
823 .loc 1 282 12 view .LVU217
824 .cfi_endproc
825 .LFE52:
827 .section .text._ZN9display_t20startscrolldiagrightEhh,"ax",%progbits
828 .align 1
829 .global _ZN9display_t20startscrolldiagrightEhh
830 .syntax unified
831 .thumb
832 .thumb_func
833 .fpu softvfp
835 _ZN9display_t20startscrolldiagrightEhh:
836 .LVL75:
837 .LFB53:
284:../libOLED/src/displayclass.cpp ****
285:../libOLED/src/displayclass.cpp **** // startscrolldiagright
286:../libOLED/src/displayclass.cpp **** // Activate a diagonal scroll for rows start through stop
287:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
288:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
289:../libOLED/src/displayclass.cpp **** void display_t::startscrolldiagright(uint8_t start, uint8_t stop)
290:../libOLED/src/displayclass.cpp **** {
838 .loc 1 290 1 is_stmt 1 view -0
839 .cfi_startproc
840 @ args = 0, pretend = 0, frame = 0
841 @ frame_needed = 0, uses_anonymous_args = 0
291:../libOLED/src/displayclass.cpp **** oledSetCD(0);
842 .loc 1 291 3 view .LVU219
290:../libOLED/src/displayclass.cpp **** oledSetCD(0);
843 .loc 1 290 1 is_stmt 0 view .LVU220
844 0000 70B5 push {r4, r5, r6, lr}
845 .LCFI8:
846 .cfi_def_cfa_offset 16
847 .cfi_offset 4, -16
848 .cfi_offset 5, -12
849 .cfi_offset 6, -8
850 .cfi_offset 14, -4
290:../libOLED/src/displayclass.cpp **** oledSetCD(0);
851 .loc 1 290 1 view .LVU221
852 0002 0446 mov r4, r0
853 0004 0E46 mov r6, r1
854 0006 1546 mov r5, r2
855 .loc 1 291 14 view .LVU222
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 22
856 0008 0368 ldr r3, [r0]
857 .loc 1 291 12 view .LVU223
858 000a 0021 movs r1, #0
859 .LVL76:
860 .loc 1 291 12 view .LVU224
861 000c 9B68 ldr r3, [r3, #8]
862 000e 9847 blx r3
863 .LVL77:
292:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SET_VERTICAL_SCROLL_AREA);
864 .loc 1 292 3 is_stmt 1 view .LVU225
865 .loc 1 292 45 is_stmt 0 view .LVU226
866 0010 2368 ldr r3, [r4]
867 .loc 1 292 12 view .LVU227
868 0012 2046 mov r0, r4
869 0014 A321 movs r1, #163
870 0016 DB68 ldr r3, [r3, #12]
871 0018 9847 blx r3
872 .LVL78:
293:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
873 .loc 1 293 3 is_stmt 1 view .LVU228
874 .loc 1 293 17 is_stmt 0 view .LVU229
875 001a 2368 ldr r3, [r4]
876 .loc 1 293 12 view .LVU230
877 001c 2046 mov r0, r4
878 001e 0021 movs r1, #0
879 0020 DB68 ldr r3, [r3, #12]
880 0022 9847 blx r3
881 .LVL79:
294:../libOLED/src/displayclass.cpp **** oledWrite(m_height);
882 .loc 1 294 3 is_stmt 1 view .LVU231
883 .loc 1 294 21 is_stmt 0 view .LVU232
884 0024 2368 ldr r3, [r4]
885 .loc 1 294 12 view .LVU233
886 0026 2046 mov r0, r4
887 0028 217A ldrb r1, [r4, #8] @ zero_extendqisi2
888 002a DB68 ldr r3, [r3, #12]
889 002c 9847 blx r3
890 .LVL80:
295:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL);
891 .loc 1 295 3 is_stmt 1 view .LVU234
892 .loc 1 295 57 is_stmt 0 view .LVU235
893 002e 2368 ldr r3, [r4]
894 .loc 1 295 12 view .LVU236
895 0030 2046 mov r0, r4
896 0032 2921 movs r1, #41
897 0034 DB68 ldr r3, [r3, #12]
898 0036 9847 blx r3
899 .LVL81:
296:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
900 .loc 1 296 3 is_stmt 1 view .LVU237
901 .loc 1 296 17 is_stmt 0 view .LVU238
902 0038 2368 ldr r3, [r4]
903 .loc 1 296 12 view .LVU239
904 003a 2046 mov r0, r4
905 003c 0021 movs r1, #0
906 003e DB68 ldr r3, [r3, #12]
907 0040 9847 blx r3
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 23
908 .LVL82:
297:../libOLED/src/displayclass.cpp **** oledWrite(start);
909 .loc 1 297 3 is_stmt 1 view .LVU240
910 .loc 1 297 18 is_stmt 0 view .LVU241
911 0042 2368 ldr r3, [r4]
912 .loc 1 297 12 view .LVU242
913 0044 3146 mov r1, r6
914 0046 2046 mov r0, r4
915 0048 DB68 ldr r3, [r3, #12]
916 004a 9847 blx r3
917 .LVL83:
298:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
918 .loc 1 298 3 is_stmt 1 view .LVU243
919 .loc 1 298 17 is_stmt 0 view .LVU244
920 004c 2368 ldr r3, [r4]
921 .loc 1 298 12 view .LVU245
922 004e 2046 mov r0, r4
923 0050 0021 movs r1, #0
924 0052 DB68 ldr r3, [r3, #12]
925 0054 9847 blx r3
926 .LVL84:
299:../libOLED/src/displayclass.cpp **** oledWrite(stop);
927 .loc 1 299 3 is_stmt 1 view .LVU246
928 .loc 1 299 17 is_stmt 0 view .LVU247
929 0056 2368 ldr r3, [r4]
930 .loc 1 299 12 view .LVU248
931 0058 2946 mov r1, r5
932 005a 2046 mov r0, r4
933 005c DB68 ldr r3, [r3, #12]
934 005e 9847 blx r3
935 .LVL85:
300:../libOLED/src/displayclass.cpp **** oledWrite(0X01);
936 .loc 1 300 3 is_stmt 1 view .LVU249
937 .loc 1 300 17 is_stmt 0 view .LVU250
938 0060 2368 ldr r3, [r4]
939 .loc 1 300 12 view .LVU251
940 0062 2046 mov r0, r4
941 0064 0121 movs r1, #1
942 0066 DB68 ldr r3, [r3, #12]
943 0068 9847 blx r3
944 .LVL86:
301:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
945 .loc 1 301 3 is_stmt 1 view .LVU252
946 .loc 1 301 36 is_stmt 0 view .LVU253
947 006a 2368 ldr r3, [r4]
948 .loc 1 301 12 view .LVU254
949 006c 2046 mov r0, r4
302:../libOLED/src/displayclass.cpp **** }
950 .loc 1 302 1 view .LVU255
951 006e BDE87040 pop {r4, r5, r6, lr}
952 .LCFI9:
953 .cfi_restore 14
954 .cfi_restore 6
955 .cfi_restore 5
956 .cfi_restore 4
957 .cfi_def_cfa_offset 0
958 .LVL87:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 24
301:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
959 .loc 1 301 12 view .LVU256
960 0072 2F21 movs r1, #47
961 0074 DB68 ldr r3, [r3, #12]
962 0076 1847 bx r3 @ indirect register sibling call
963 .LVL88:
301:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
964 .loc 1 301 12 view .LVU257
965 .cfi_endproc
966 .LFE53:
968 .section .text._ZN9display_t19startscrolldiagleftEhh,"ax",%progbits
969 .align 1
970 .global _ZN9display_t19startscrolldiagleftEhh
971 .syntax unified
972 .thumb
973 .thumb_func
974 .fpu softvfp
976 _ZN9display_t19startscrolldiagleftEhh:
977 .LVL89:
978 .LFB54:
303:../libOLED/src/displayclass.cpp ****
304:../libOLED/src/displayclass.cpp **** // startscrolldiagleft
305:../libOLED/src/displayclass.cpp **** // Activate a diagonal scroll for rows start through stop
306:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
307:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
308:../libOLED/src/displayclass.cpp **** void display_t::startscrolldiagleft(uint8_t start, uint8_t stop)
309:../libOLED/src/displayclass.cpp **** {
979 .loc 1 309 1 is_stmt 1 view -0
980 .cfi_startproc
981 @ args = 0, pretend = 0, frame = 0
982 @ frame_needed = 0, uses_anonymous_args = 0
310:../libOLED/src/displayclass.cpp **** oledSetCD(0);
983 .loc 1 310 3 view .LVU259
309:../libOLED/src/displayclass.cpp **** oledSetCD(0);
984 .loc 1 309 1 is_stmt 0 view .LVU260
985 0000 70B5 push {r4, r5, r6, lr}
986 .LCFI10:
987 .cfi_def_cfa_offset 16
988 .cfi_offset 4, -16
989 .cfi_offset 5, -12
990 .cfi_offset 6, -8
991 .cfi_offset 14, -4
309:../libOLED/src/displayclass.cpp **** oledSetCD(0);
992 .loc 1 309 1 view .LVU261
993 0002 0446 mov r4, r0
994 0004 0E46 mov r6, r1
995 0006 1546 mov r5, r2
996 .loc 1 310 14 view .LVU262
997 0008 0368 ldr r3, [r0]
998 .loc 1 310 12 view .LVU263
999 000a 0021 movs r1, #0
1000 .LVL90:
1001 .loc 1 310 12 view .LVU264
1002 000c 9B68 ldr r3, [r3, #8]
1003 000e 9847 blx r3
1004 .LVL91:
311:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SET_VERTICAL_SCROLL_AREA);
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 25
1005 .loc 1 311 3 is_stmt 1 view .LVU265
1006 .loc 1 311 45 is_stmt 0 view .LVU266
1007 0010 2368 ldr r3, [r4]
1008 .loc 1 311 12 view .LVU267
1009 0012 2046 mov r0, r4
1010 0014 A321 movs r1, #163
1011 0016 DB68 ldr r3, [r3, #12]
1012 0018 9847 blx r3
1013 .LVL92:
312:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
1014 .loc 1 312 3 is_stmt 1 view .LVU268
1015 .loc 1 312 17 is_stmt 0 view .LVU269
1016 001a 2368 ldr r3, [r4]
1017 .loc 1 312 12 view .LVU270
1018 001c 2046 mov r0, r4
1019 001e 0021 movs r1, #0
1020 0020 DB68 ldr r3, [r3, #12]
1021 0022 9847 blx r3
1022 .LVL93:
313:../libOLED/src/displayclass.cpp **** oledWrite(m_height);
1023 .loc 1 313 3 is_stmt 1 view .LVU271
1024 .loc 1 313 21 is_stmt 0 view .LVU272
1025 0024 2368 ldr r3, [r4]
1026 .loc 1 313 12 view .LVU273
1027 0026 2046 mov r0, r4
1028 0028 217A ldrb r1, [r4, #8] @ zero_extendqisi2
1029 002a DB68 ldr r3, [r3, #12]
1030 002c 9847 blx r3
1031 .LVL94:
314:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL);
1032 .loc 1 314 3 is_stmt 1 view .LVU274
1033 .loc 1 314 56 is_stmt 0 view .LVU275
1034 002e 2368 ldr r3, [r4]
1035 .loc 1 314 12 view .LVU276
1036 0030 2046 mov r0, r4
1037 0032 2A21 movs r1, #42
1038 0034 DB68 ldr r3, [r3, #12]
1039 0036 9847 blx r3
1040 .LVL95:
315:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
1041 .loc 1 315 3 is_stmt 1 view .LVU277
1042 .loc 1 315 17 is_stmt 0 view .LVU278
1043 0038 2368 ldr r3, [r4]
1044 .loc 1 315 12 view .LVU279
1045 003a 2046 mov r0, r4
1046 003c 0021 movs r1, #0
1047 003e DB68 ldr r3, [r3, #12]
1048 0040 9847 blx r3
1049 .LVL96:
316:../libOLED/src/displayclass.cpp **** oledWrite(start);
1050 .loc 1 316 3 is_stmt 1 view .LVU280
1051 .loc 1 316 18 is_stmt 0 view .LVU281
1052 0042 2368 ldr r3, [r4]
1053 .loc 1 316 12 view .LVU282
1054 0044 3146 mov r1, r6
1055 0046 2046 mov r0, r4
1056 0048 DB68 ldr r3, [r3, #12]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 26
1057 004a 9847 blx r3
1058 .LVL97:
317:../libOLED/src/displayclass.cpp **** oledWrite(0X00);
1059 .loc 1 317 3 is_stmt 1 view .LVU283
1060 .loc 1 317 17 is_stmt 0 view .LVU284
1061 004c 2368 ldr r3, [r4]
1062 .loc 1 317 12 view .LVU285
1063 004e 2046 mov r0, r4
1064 0050 0021 movs r1, #0
1065 0052 DB68 ldr r3, [r3, #12]
1066 0054 9847 blx r3
1067 .LVL98:
318:../libOLED/src/displayclass.cpp **** oledWrite(stop);
1068 .loc 1 318 3 is_stmt 1 view .LVU286
1069 .loc 1 318 17 is_stmt 0 view .LVU287
1070 0056 2368 ldr r3, [r4]
1071 .loc 1 318 12 view .LVU288
1072 0058 2946 mov r1, r5
1073 005a 2046 mov r0, r4
1074 005c DB68 ldr r3, [r3, #12]
1075 005e 9847 blx r3
1076 .LVL99:
319:../libOLED/src/displayclass.cpp **** oledWrite(0X01);
1077 .loc 1 319 3 is_stmt 1 view .LVU289
1078 .loc 1 319 17 is_stmt 0 view .LVU290
1079 0060 2368 ldr r3, [r4]
1080 .loc 1 319 12 view .LVU291
1081 0062 2046 mov r0, r4
1082 0064 0121 movs r1, #1
1083 0066 DB68 ldr r3, [r3, #12]
1084 0068 9847 blx r3
1085 .LVL100:
320:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
1086 .loc 1 320 3 is_stmt 1 view .LVU292
1087 .loc 1 320 36 is_stmt 0 view .LVU293
1088 006a 2368 ldr r3, [r4]
1089 .loc 1 320 12 view .LVU294
1090 006c 2046 mov r0, r4
321:../libOLED/src/displayclass.cpp **** }
1091 .loc 1 321 1 view .LVU295
1092 006e BDE87040 pop {r4, r5, r6, lr}
1093 .LCFI11:
1094 .cfi_restore 14
1095 .cfi_restore 6
1096 .cfi_restore 5
1097 .cfi_restore 4
1098 .cfi_def_cfa_offset 0
1099 .LVL101:
320:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
1100 .loc 1 320 12 view .LVU296
1101 0072 2F21 movs r1, #47
1102 0074 DB68 ldr r3, [r3, #12]
1103 0076 1847 bx r3 @ indirect register sibling call
1104 .LVL102:
320:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_ACTIVATE_SCROLL);
1105 .loc 1 320 12 view .LVU297
1106 .cfi_endproc
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 27
1107 .LFE54:
1109 .section .text._ZN9display_t10stopscrollEv,"ax",%progbits
1110 .align 1
1111 .global _ZN9display_t10stopscrollEv
1112 .syntax unified
1113 .thumb
1114 .thumb_func
1115 .fpu softvfp
1117 _ZN9display_t10stopscrollEv:
1118 .LVL103:
1119 .LFB55:
322:../libOLED/src/displayclass.cpp ****
323:../libOLED/src/displayclass.cpp **** void display_t::stopscroll(void)
324:../libOLED/src/displayclass.cpp **** {
1120 .loc 1 324 1 is_stmt 1 view -0
1121 .cfi_startproc
1122 @ args = 0, pretend = 0, frame = 0
1123 @ frame_needed = 0, uses_anonymous_args = 0
325:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1124 .loc 1 325 3 view .LVU299
324:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1125 .loc 1 324 1 is_stmt 0 view .LVU300
1126 0000 10B5 push {r4, lr}
1127 .LCFI12:
1128 .cfi_def_cfa_offset 8
1129 .cfi_offset 4, -8
1130 .cfi_offset 14, -4
324:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1131 .loc 1 324 1 view .LVU301
1132 0002 0446 mov r4, r0
1133 .loc 1 325 14 view .LVU302
1134 0004 0368 ldr r3, [r0]
1135 .loc 1 325 12 view .LVU303
1136 0006 0021 movs r1, #0
1137 0008 9B68 ldr r3, [r3, #8]
1138 000a 9847 blx r3
1139 .LVL104:
326:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DEACTIVATE_SCROLL);
1140 .loc 1 326 3 is_stmt 1 view .LVU304
1141 .loc 1 326 38 is_stmt 0 view .LVU305
1142 000c 2368 ldr r3, [r4]
1143 .loc 1 326 12 view .LVU306
1144 000e 2046 mov r0, r4
327:../libOLED/src/displayclass.cpp **** }
1145 .loc 1 327 1 view .LVU307
1146 0010 BDE81040 pop {r4, lr}
1147 .LCFI13:
1148 .cfi_restore 14
1149 .cfi_restore 4
1150 .cfi_def_cfa_offset 0
1151 .LVL105:
326:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DEACTIVATE_SCROLL);
1152 .loc 1 326 12 view .LVU308
1153 0014 2E21 movs r1, #46
1154 0016 DB68 ldr r3, [r3, #12]
1155 0018 1847 bx r3 @ indirect register sibling call
1156 .LVL106:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 28
326:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DEACTIVATE_SCROLL);
1157 .loc 1 326 12 view .LVU309
1158 .cfi_endproc
1159 .LFE55:
1161 .section .text._ZN9display_t3dimEh,"ax",%progbits
1162 .align 1
1163 .global _ZN9display_t3dimEh
1164 .syntax unified
1165 .thumb
1166 .thumb_func
1167 .fpu softvfp
1169 _ZN9display_t3dimEh:
1170 .LVL107:
1171 .LFB56:
328:../libOLED/src/displayclass.cpp ****
329:../libOLED/src/displayclass.cpp **** void display_t::dim(uint8_t contrast)
330:../libOLED/src/displayclass.cpp **** {
1172 .loc 1 330 1 is_stmt 1 view -0
1173 .cfi_startproc
1174 @ args = 0, pretend = 0, frame = 0
1175 @ frame_needed = 0, uses_anonymous_args = 0
331:../libOLED/src/displayclass.cpp ****
332:../libOLED/src/displayclass.cpp **** // the range of contrast to too small to be really useful
333:../libOLED/src/displayclass.cpp **** // it is useful to dim the display
334:../libOLED/src/displayclass.cpp ****
335:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1176 .loc 1 335 3 view .LVU311
330:../libOLED/src/displayclass.cpp ****
1177 .loc 1 330 1 is_stmt 0 view .LVU312
1178 0000 70B5 push {r4, r5, r6, lr}
1179 .LCFI14:
1180 .cfi_def_cfa_offset 16
1181 .cfi_offset 4, -16
1182 .cfi_offset 5, -12
1183 .cfi_offset 6, -8
1184 .cfi_offset 14, -4
330:../libOLED/src/displayclass.cpp ****
1185 .loc 1 330 1 view .LVU313
1186 0002 0446 mov r4, r0
1187 0004 0D46 mov r5, r1
1188 .loc 1 335 14 view .LVU314
1189 0006 0368 ldr r3, [r0]
1190 .loc 1 335 12 view .LVU315
1191 0008 0021 movs r1, #0
1192 .LVL108:
1193 .loc 1 335 12 view .LVU316
1194 000a 9B68 ldr r3, [r3, #8]
1195 000c 9847 blx r3
1196 .LVL109:
336:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST);
1197 .loc 1 336 3 is_stmt 1 view .LVU317
1198 .loc 1 336 32 is_stmt 0 view .LVU318
1199 000e 2368 ldr r3, [r4]
1200 .loc 1 336 12 view .LVU319
1201 0010 2046 mov r0, r4
1202 0012 8121 movs r1, #129
1203 0014 DB68 ldr r3, [r3, #12]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 29
1204 0016 9847 blx r3
1205 .LVL110:
337:../libOLED/src/displayclass.cpp **** oledWrite(contrast);
1206 .loc 1 337 3 is_stmt 1 view .LVU320
1207 .loc 1 337 21 is_stmt 0 view .LVU321
1208 0018 2368 ldr r3, [r4]
1209 .loc 1 337 12 view .LVU322
1210 001a 2946 mov r1, r5
1211 001c 2046 mov r0, r4
338:../libOLED/src/displayclass.cpp **** }
1212 .loc 1 338 1 view .LVU323
1213 001e BDE87040 pop {r4, r5, r6, lr}
1214 .LCFI15:
1215 .cfi_restore 14
1216 .cfi_restore 6
1217 .cfi_restore 5
1218 .cfi_restore 4
1219 .cfi_def_cfa_offset 0
1220 .LVL111:
337:../libOLED/src/displayclass.cpp **** oledWrite(contrast);
1221 .loc 1 337 12 view .LVU324
1222 0022 DB68 ldr r3, [r3, #12]
1223 0024 1847 bx r3 @ indirect register sibling call
1224 .LVL112:
337:../libOLED/src/displayclass.cpp **** oledWrite(contrast);
1225 .loc 1 337 12 view .LVU325
1226 .cfi_endproc
1227 .LFE56:
1229 .section .text._ZN9display_t7displayEv,"ax",%progbits
1230 .align 1
1231 .global _ZN9display_t7displayEv
1232 .syntax unified
1233 .thumb
1234 .thumb_func
1235 .fpu softvfp
1237 _ZN9display_t7displayEv:
1238 .LVL113:
1239 .LFB57:
339:../libOLED/src/displayclass.cpp ****
340:../libOLED/src/displayclass.cpp **** void display_t::display(void)
341:../libOLED/src/displayclass.cpp **** {
1240 .loc 1 341 1 is_stmt 1 view -0
1241 .cfi_startproc
1242 @ args = 0, pretend = 0, frame = 0
1243 @ frame_needed = 0, uses_anonymous_args = 0
342:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1244 .loc 1 342 3 view .LVU327
341:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1245 .loc 1 341 1 is_stmt 0 view .LVU328
1246 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1247 .LCFI16:
1248 .cfi_def_cfa_offset 24
1249 .cfi_offset 3, -24
1250 .cfi_offset 4, -20
1251 .cfi_offset 5, -16
1252 .cfi_offset 6, -12
1253 .cfi_offset 7, -8
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 30
1254 .cfi_offset 14, -4
341:../libOLED/src/displayclass.cpp **** oledSetCD(0);
1255 .loc 1 341 1 view .LVU329
1256 0002 0446 mov r4, r0
343:../libOLED/src/displayclass.cpp **** // select entire display as window to write into
344:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_COLUMNADDR);
345:../libOLED/src/displayclass.cpp **** oledWrite(0); // Column start address (0 = reset)
346:../libOLED/src/displayclass.cpp **** oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
347:../libOLED/src/displayclass.cpp ****
348:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_PAGEADDR);
349:../libOLED/src/displayclass.cpp **** oledWrite(0); // Page start address (0 = reset)
350:../libOLED/src/displayclass.cpp **** oledWrite((m_height == 64) ? 7 : 3); // Page end address
351:../libOLED/src/displayclass.cpp ****
352:../libOLED/src/displayclass.cpp **** int row;
353:../libOLED/src/displayclass.cpp ****
354:../libOLED/src/displayclass.cpp **** int col = m_ramwidth == 132 ? 2 : 0;
355:../libOLED/src/displayclass.cpp **** for (row = 0; row < m_height / 8; row++)
1257 .loc 1 355 12 view .LVU330
1258 0004 0025 movs r5, #0
342:../libOLED/src/displayclass.cpp **** // select entire display as window to write into
1259 .loc 1 342 14 view .LVU331
1260 0006 0368 ldr r3, [r0]
342:../libOLED/src/displayclass.cpp **** // select entire display as window to write into
1261 .loc 1 342 12 view .LVU332
1262 0008 0021 movs r1, #0
1263 000a 9B68 ldr r3, [r3, #8]
1264 000c 9847 blx r3
1265 .LVL114:
344:../libOLED/src/displayclass.cpp **** oledWrite(0); // Column start address (0 = reset)
1266 .loc 1 344 3 is_stmt 1 view .LVU333
344:../libOLED/src/displayclass.cpp **** oledWrite(0); // Column start address (0 = reset)
1267 .loc 1 344 31 is_stmt 0 view .LVU334
1268 000e 2368 ldr r3, [r4]
344:../libOLED/src/displayclass.cpp **** oledWrite(0); // Column start address (0 = reset)
1269 .loc 1 344 12 view .LVU335
1270 0010 2121 movs r1, #33
1271 0012 2046 mov r0, r4
1272 0014 DB68 ldr r3, [r3, #12]
1273 0016 9847 blx r3
1274 .LVL115:
345:../libOLED/src/displayclass.cpp **** oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1275 .loc 1 345 3 is_stmt 1 view .LVU336
345:../libOLED/src/displayclass.cpp **** oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1276 .loc 1 345 14 is_stmt 0 view .LVU337
1277 0018 2368 ldr r3, [r4]
345:../libOLED/src/displayclass.cpp **** oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1278 .loc 1 345 12 view .LVU338
1279 001a 0021 movs r1, #0
1280 001c 2046 mov r0, r4
1281 001e DB68 ldr r3, [r3, #12]
1282 0020 9847 blx r3
1283 .LVL116:
346:../libOLED/src/displayclass.cpp ****
1284 .loc 1 346 3 is_stmt 1 view .LVU339
346:../libOLED/src/displayclass.cpp ****
1285 .loc 1 346 12 is_stmt 0 view .LVU340
1286 0022 E168 ldr r1, [r4, #12]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 31
346:../libOLED/src/displayclass.cpp ****
1287 .loc 1 346 27 view .LVU341
1288 0024 2368 ldr r3, [r4]
346:../libOLED/src/displayclass.cpp ****
1289 .loc 1 346 12 view .LVU342
1290 0026 0139 subs r1, r1, #1
1291 0028 2046 mov r0, r4
1292 002a DB68 ldr r3, [r3, #12]
1293 002c C9B2 uxtb r1, r1
1294 002e 9847 blx r3
1295 .LVL117:
348:../libOLED/src/displayclass.cpp **** oledWrite(0); // Page start address (0 = reset)
1296 .loc 1 348 3 is_stmt 1 view .LVU343
348:../libOLED/src/displayclass.cpp **** oledWrite(0); // Page start address (0 = reset)
1297 .loc 1 348 29 is_stmt 0 view .LVU344
1298 0030 2368 ldr r3, [r4]
348:../libOLED/src/displayclass.cpp **** oledWrite(0); // Page start address (0 = reset)
1299 .loc 1 348 12 view .LVU345
1300 0032 2221 movs r1, #34
1301 0034 2046 mov r0, r4
1302 0036 DB68 ldr r3, [r3, #12]
1303 0038 9847 blx r3
1304 .LVL118:
349:../libOLED/src/displayclass.cpp **** oledWrite((m_height == 64) ? 7 : 3); // Page end address
1305 .loc 1 349 3 is_stmt 1 view .LVU346
349:../libOLED/src/displayclass.cpp **** oledWrite((m_height == 64) ? 7 : 3); // Page end address
1306 .loc 1 349 14 is_stmt 0 view .LVU347
1307 003a 2368 ldr r3, [r4]
349:../libOLED/src/displayclass.cpp **** oledWrite((m_height == 64) ? 7 : 3); // Page end address
1308 .loc 1 349 12 view .LVU348
1309 003c 0021 movs r1, #0
1310 003e 2046 mov r0, r4
1311 0040 DB68 ldr r3, [r3, #12]
1312 0042 9847 blx r3
1313 .LVL119:
350:../libOLED/src/displayclass.cpp ****
1314 .loc 1 350 3 is_stmt 1 view .LVU349
350:../libOLED/src/displayclass.cpp ****
1315 .loc 1 350 12 is_stmt 0 view .LVU350
1316 0044 A268 ldr r2, [r4, #8]
350:../libOLED/src/displayclass.cpp ****
1317 .loc 1 350 37 view .LVU351
1318 0046 2368 ldr r3, [r4]
350:../libOLED/src/displayclass.cpp ****
1319 .loc 1 350 12 view .LVU352
1320 0048 402A cmp r2, #64
1321 004a 0CBF ite eq
1322 004c 0721 moveq r1, #7
1323 004e 0321 movne r1, #3
350:../libOLED/src/displayclass.cpp ****
1324 .loc 1 350 37 view .LVU353
1325 0050 DB68 ldr r3, [r3, #12]
350:../libOLED/src/displayclass.cpp ****
1326 .loc 1 350 12 view .LVU354
1327 0052 2046 mov r0, r4
1328 0054 9847 blx r3
1329 .LVL120:
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 32
352:../libOLED/src/displayclass.cpp ****
1330 .loc 1 352 3 is_stmt 1 view .LVU355
354:../libOLED/src/displayclass.cpp **** for (row = 0; row < m_height / 8; row++)
1331 .loc 1 354 3 view .LVU356
354:../libOLED/src/displayclass.cpp **** for (row = 0; row < m_height / 8; row++)
1332 .loc 1 354 31 is_stmt 0 view .LVU357
1333 0056 E368 ldr r3, [r4, #12]
1334 0058 842B cmp r3, #132
1335 .LVL121:
1336 .loc 1 355 3 is_stmt 1 view .LVU358
356:../libOLED/src/displayclass.cpp **** {
357:../libOLED/src/displayclass.cpp **** oledSetCD(0);
358:../libOLED/src/displayclass.cpp **** // set the cursor to
359:../libOLED/src/displayclass.cpp **** oledWrite(0xB0 + row); // set page address
360:../libOLED/src/displayclass.cpp **** oledWrite(col & 0xf); // set lower column address
1337 .loc 1 360 14 is_stmt 0 view .LVU359
1338 005a 0CBF ite eq
1339 005c 0227 moveq r7, #2
1340 005e 2F46 movne r7, r5
1341 .LVL122:
1342 .L52:
355:../libOLED/src/displayclass.cpp **** {
1343 .loc 1 355 21 is_stmt 1 discriminator 3 view .LVU360
355:../libOLED/src/displayclass.cpp **** {
1344 .loc 1 355 32 is_stmt 0 discriminator 3 view .LVU361
1345 0060 A368 ldr r3, [r4, #8]
1346 0062 002B cmp r3, #0
1347 0064 B8BF it lt
1348 0066 0733 addlt r3, r3, #7
355:../libOLED/src/displayclass.cpp **** {
1349 .loc 1 355 21 discriminator 3 view .LVU362
1350 0068 B5EBE30F cmp r5, r3, asr #3
1351 006c 25DA bge .L47
357:../libOLED/src/displayclass.cpp **** // set the cursor to
1352 .loc 1 357 5 is_stmt 1 discriminator 2 view .LVU363
357:../libOLED/src/displayclass.cpp **** // set the cursor to
1353 .loc 1 357 16 is_stmt 0 discriminator 2 view .LVU364
1354 006e 2368 ldr r3, [r4]
357:../libOLED/src/displayclass.cpp **** // set the cursor to
1355 .loc 1 357 14 discriminator 2 view .LVU365
1356 0070 0021 movs r1, #0
1357 0072 2046 mov r0, r4
1358 0074 9B68 ldr r3, [r3, #8]
1359 0076 9847 blx r3
1360 .LVL123:
359:../libOLED/src/displayclass.cpp **** oledWrite(col & 0xf); // set lower column address
1361 .loc 1 359 5 is_stmt 1 discriminator 2 view .LVU366
359:../libOLED/src/displayclass.cpp **** oledWrite(col & 0xf); // set lower column address
1362 .loc 1 359 25 is_stmt 0 discriminator 2 view .LVU367
1363 0078 2368 ldr r3, [r4]
359:../libOLED/src/displayclass.cpp **** oledWrite(col & 0xf); // set lower column address
1364 .loc 1 359 14 discriminator 2 view .LVU368
1365 007a A5F15001 sub r1, r5, #80
1366 007e 2046 mov r0, r4
1367 0080 DB68 ldr r3, [r3, #12]
1368 0082 C9B2 uxtb r1, r1
1369 0084 9847 blx r3
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 33
1370 .LVL124:
1371 .loc 1 360 5 is_stmt 1 discriminator 2 view .LVU369
1372 .loc 1 360 24 is_stmt 0 discriminator 2 view .LVU370
1373 0086 2368 ldr r3, [r4]
1374 .loc 1 360 14 discriminator 2 view .LVU371
1375 0088 3946 mov r1, r7
1376 008a 2046 mov r0, r4
1377 008c DB68 ldr r3, [r3, #12]
1378 008e 9847 blx r3
1379 .LVL125:
361:../libOLED/src/displayclass.cpp **** oledWrite(0x10 | (col >> 4)); // set higher column address
1380 .loc 1 361 5 is_stmt 1 discriminator 2 view .LVU372
1381 .loc 1 361 32 is_stmt 0 discriminator 2 view .LVU373
1382 0090 2368 ldr r3, [r4]
1383 .loc 1 361 14 discriminator 2 view .LVU374
1384 0092 1021 movs r1, #16
1385 0094 2046 mov r0, r4
1386 0096 DB68 ldr r3, [r3, #12]
1387 0098 9847 blx r3
1388 .LVL126:
362:../libOLED/src/displayclass.cpp ****
363:../libOLED/src/displayclass.cpp **** oledSetCD(1);
1389 .loc 1 363 5 is_stmt 1 discriminator 2 view .LVU375
1390 .loc 1 363 16 is_stmt 0 discriminator 2 view .LVU376
1391 009a 2368 ldr r3, [r4]
1392 .loc 1 363 14 discriminator 2 view .LVU377
1393 009c 0121 movs r1, #1
1394 009e 2046 mov r0, r4
1395 00a0 9B68 ldr r3, [r3, #8]
1396 00a2 9847 blx r3
1397 .LVL127:
364:../libOLED/src/displayclass.cpp **** oledWrite(m_data + row * m_width, m_width);
1398 .loc 1 364 5 is_stmt 1 discriminator 2 view .LVU378
1399 .loc 1 364 30 is_stmt 0 discriminator 2 view .LVU379
1400 00a4 6368 ldr r3, [r4, #4]
1401 .loc 1 364 46 discriminator 2 view .LVU380
1402 00a6 2268 ldr r2, [r4]
1403 .loc 1 364 14 discriminator 2 view .LVU381
1404 00a8 216A ldr r1, [r4, #32]
1405 00aa 5669 ldr r6, [r2, #20]
1406 00ac 05FB0311 mla r1, r5, r3, r1
1407 00b0 2046 mov r0, r4
1408 00b2 DAB2 uxtb r2, r3
1409 00b4 B047 blx r6
1410 .LVL128:
355:../libOLED/src/displayclass.cpp **** {
1411 .loc 1 355 3 is_stmt 1 discriminator 2 view .LVU382
1412 00b6 0135 adds r5, r5, #1
1413 .LVL129:
355:../libOLED/src/displayclass.cpp **** {
1414 .loc 1 355 3 is_stmt 0 discriminator 2 view .LVU383
1415 00b8 D2E7 b .L52
1416 .L47:
365:../libOLED/src/displayclass.cpp **** }
366:../libOLED/src/displayclass.cpp **** }
1417 .loc 1 366 1 view .LVU384
1418 00ba F8BD pop {r3, r4, r5, r6, r7, pc}
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 34
1419 .loc 1 366 1 view .LVU385
1420 .cfi_endproc
1421 .LFE57:
1423 .section .text._ZN9display_t12clearDisplayE8colour_t,"ax",%progbits
1424 .align 1
1425 .global _ZN9display_t12clearDisplayE8colour_t
1426 .syntax unified
1427 .thumb
1428 .thumb_func
1429 .fpu softvfp
1431 _ZN9display_t12clearDisplayE8colour_t:
1432 .LVL130:
1433 .LFB58:
367:../libOLED/src/displayclass.cpp ****
368:../libOLED/src/displayclass.cpp **** // clear everything
369:../libOLED/src/displayclass.cpp **** void display_t::clearDisplay(colour_t colour)
370:../libOLED/src/displayclass.cpp **** {
1434 .loc 1 370 1 is_stmt 1 view -0
1435 .cfi_startproc
1436 @ args = 0, pretend = 0, frame = 0
1437 @ frame_needed = 0, uses_anonymous_args = 0
1438 @ link register save eliminated.
371:../libOLED/src/displayclass.cpp **** switch (colour)
1439 .loc 1 371 3 view .LVU387
1440 .LBB29:
1441 0000 0229 cmp r1, #2
1442 0002 0AD8 bhi .L56
1443 0004 D0E90132 ldrd r3, r2, [r0, #4]
1444 0008 51B1 cbz r1, .L66
1445 .LBB30:
372:../libOLED/src/displayclass.cpp **** {
373:../libOLED/src/displayclass.cpp **** case WHITE:
1446 .loc 1 373 3 view .LVU388
374:../libOLED/src/displayclass.cpp **** case OVERLAY:
1447 .loc 1 374 3 view .LVU389
375:../libOLED/src/displayclass.cpp **** memset(m_data, 255, dataSize(m_width, m_height));
1448 .loc 1 375 5 view .LVU390
1449 .LVL131:
1450 .LBB31:
1451 .LBI31:
1452 .file 2 "../libOLED/inc/libOLED/displayclass.H"
1:../libOLED/inc/libOLED/displayclass.H **** /*
2:../libOLED/inc/libOLED/displayclass.H **** * displayclass.H
3:../libOLED/inc/libOLED/displayclass.H **** *
4:../libOLED/inc/libOLED/displayclass.H **** * Created on: 31 Oct 2020
5:../libOLED/inc/libOLED/displayclass.H **** * Author: mike
6:../libOLED/inc/libOLED/displayclass.H **** */
7:../libOLED/inc/libOLED/displayclass.H ****
8:../libOLED/inc/libOLED/displayclass.H **** #pragma once
9:../libOLED/inc/libOLED/displayclass.H **** #include <cstdint>
10:../libOLED/inc/libOLED/displayclass.H **** #include "libOLED/fontclass.H"
11:../libOLED/inc/libOLED/displayclass.H ****
12:../libOLED/inc/libOLED/displayclass.H **** inline int constexpr dataSize(int const width, int const height)
1453 .loc 2 12 22 view .LVU391
1454 .LBB32:
13:../libOLED/inc/libOLED/displayclass.H **** {
14:../libOLED/inc/libOLED/displayclass.H **** return (width * height / 8);
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 35
1455 .loc 2 14 3 view .LVU392
1456 .loc 2 14 3 is_stmt 0 view .LVU393
1457 .LBE32:
1458 .LBE31:
1459 .loc 1 375 11 view .LVU394
1460 000a FF21 movs r1, #255
1461 .LVL132:
1462 .LBB34:
1463 .LBB33:
1464 .loc 2 14 29 view .LVU395
1465 000c 5A43 muls r2, r3, r2
1466 000e 48BF it mi
1467 0010 0732 addmi r2, r2, #7
1468 .LBE33:
1469 .LBE34:
1470 .loc 1 375 11 view .LVU396
1471 0012 D210 asrs r2, r2, #3
1472 .L67:
376:../libOLED/src/displayclass.cpp **** break;
377:../libOLED/src/displayclass.cpp **** case BLACK:
378:../libOLED/src/displayclass.cpp **** memset(m_data, 0, dataSize(m_width, m_height));
1473 .loc 1 378 11 view .LVU397
1474 0014 006A ldr r0, [r0, #32]
1475 .LVL133:
1476 .loc 1 378 11 view .LVU398
1477 0016 FFF7FEBF b memset
1478 .LVL134:
1479 .L56:
1480 .loc 1 378 11 view .LVU399
1481 .LBE30:
371:../libOLED/src/displayclass.cpp **** {
1482 .loc 1 371 3 view .LVU400
1483 001a 0329 cmp r1, #3
1484 001c 06D0 beq .L65
1485 001e 7047 bx lr
1486 .L66:
1487 .LBB40:
377:../libOLED/src/displayclass.cpp **** memset(m_data, 0, dataSize(m_width, m_height));
1488 .loc 1 377 3 is_stmt 1 view .LVU401
1489 .loc 1 378 5 view .LVU402
1490 .LVL135:
1491 .LBB35:
1492 .LBI35:
12:../libOLED/inc/libOLED/displayclass.H **** {
1493 .loc 2 12 22 view .LVU403
1494 .LBB36:
1495 .loc 2 14 3 view .LVU404
1496 .loc 2 14 29 is_stmt 0 view .LVU405
1497 0020 5A43 muls r2, r3, r2
1498 0022 48BF it mi
1499 0024 0732 addmi r2, r2, #7
1500 .LBE36:
1501 .LBE35:
1502 .loc 1 378 11 view .LVU406
1503 0026 0021 movs r1, #0
1504 .LVL136:
1505 .loc 1 378 11 view .LVU407
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 36
1506 0028 D210 asrs r2, r2, #3
1507 002a F3E7 b .L67
1508 .LVL137:
1509 .L65:
1510 .loc 1 378 11 view .LVU408
1511 .LBE40:
371:../libOLED/src/displayclass.cpp **** {
1512 .loc 1 371 3 view .LVU409
1513 002c 0022 movs r2, #0
1514 .LVL138:
1515 .L59:
1516 .LBB41:
1517 .LBB37:
379:../libOLED/src/displayclass.cpp **** break;
380:../libOLED/src/displayclass.cpp **** case INVERT:
381:../libOLED/src/displayclass.cpp **** for (int i = 0; i < dataSize(m_width, m_height); i++)
1518 .loc 1 381 23 is_stmt 1 discriminator 3 view .LVU410
1519 .LBB38:
1520 .LBI38:
12:../libOLED/inc/libOLED/displayclass.H **** {
1521 .loc 2 12 22 discriminator 3 view .LVU411
1522 .LBB39:
1523 .loc 2 14 3 discriminator 3 view .LVU412
1524 .loc 2 14 17 is_stmt 0 discriminator 3 view .LVU413
1525 002e D0E90113 ldrd r1, r3, [r0, #4]
1526 .loc 2 14 29 discriminator 3 view .LVU414
1527 0032 4B43 muls r3, r1, r3
1528 0034 48BF it mi
1529 0036 0733 addmi r3, r3, #7
1530 .LBE39:
1531 .LBE38:
1532 .loc 1 381 23 discriminator 3 view .LVU415
1533 0038 B2EBE30F cmp r2, r3, asr #3
1534 003c 05DA bge .L55
382:../libOLED/src/displayclass.cpp **** m_data[i] ^= 255;
1535 .loc 1 382 7 is_stmt 1 discriminator 2 view .LVU416
1536 .loc 1 382 17 is_stmt 0 discriminator 2 view .LVU417
1537 003e 016A ldr r1, [r0, #32]
1538 0040 8B5C ldrb r3, [r1, r2] @ zero_extendqisi2
1539 0042 DB43 mvns r3, r3
1540 0044 8B54 strb r3, [r1, r2]
381:../libOLED/src/displayclass.cpp **** m_data[i] ^= 255;
1541 .loc 1 381 5 is_stmt 1 discriminator 2 view .LVU418
1542 0046 0132 adds r2, r2, #1
1543 .LVL139:
381:../libOLED/src/displayclass.cpp **** m_data[i] ^= 255;
1544 .loc 1 381 5 is_stmt 0 discriminator 2 view .LVU419
1545 0048 F1E7 b .L59
1546 .L55:
381:../libOLED/src/displayclass.cpp **** m_data[i] ^= 255;
1547 .loc 1 381 5 discriminator 2 view .LVU420
1548 .LBE37:
1549 .LBE41:
1550 .LBE29:
383:../libOLED/src/displayclass.cpp **** break;
384:../libOLED/src/displayclass.cpp **** }
385:../libOLED/src/displayclass.cpp **** }
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 37
1551 .loc 1 385 1 view .LVU421
1552 004a 7047 bx lr
1553 .cfi_endproc
1554 .LFE58:
1556 .section .text._ZN9display_t4initEv,"ax",%progbits
1557 .align 1
1558 .global _ZN9display_t4initEv
1559 .syntax unified
1560 .thumb
1561 .thumb_func
1562 .fpu softvfp
1564 _ZN9display_t4initEv:
1565 .LVL140:
1566 .LFB45:
107:../libOLED/src/displayclass.cpp **** uint8_t const vccstate = SSD1306_EXTERNALVCC;
1567 .loc 1 107 1 is_stmt 1 view -0
1568 .cfi_startproc
1569 @ args = 0, pretend = 0, frame = 0
1570 @ frame_needed = 0, uses_anonymous_args = 0
108:../libOLED/src/displayclass.cpp ****
1571 .loc 1 108 3 view .LVU423
110:../libOLED/src/displayclass.cpp ****
1572 .loc 1 110 3 view .LVU424
107:../libOLED/src/displayclass.cpp **** uint8_t const vccstate = SSD1306_EXTERNALVCC;
1573 .loc 1 107 1 is_stmt 0 view .LVU425
1574 0000 10B5 push {r4, lr}
1575 .LCFI17:
1576 .cfi_def_cfa_offset 8
1577 .cfi_offset 4, -8
1578 .cfi_offset 14, -4
107:../libOLED/src/displayclass.cpp **** uint8_t const vccstate = SSD1306_EXTERNALVCC;
1579 .loc 1 107 1 view .LVU426
1580 0002 0446 mov r4, r0
110:../libOLED/src/displayclass.cpp ****
1581 .loc 1 110 14 view .LVU427
1582 0004 0368 ldr r3, [r0]
110:../libOLED/src/displayclass.cpp ****
1583 .loc 1 110 12 view .LVU428
1584 0006 0021 movs r1, #0
1585 0008 9B68 ldr r3, [r3, #8]
1586 000a 9847 blx r3
1587 .LVL141:
113:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
1588 .loc 1 113 3 is_stmt 1 view .LVU429
113:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
1589 .loc 1 113 31 is_stmt 0 view .LVU430
1590 000c 2368 ldr r3, [r4]
113:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
1591 .loc 1 113 12 view .LVU431
1592 000e 2046 mov r0, r4
1593 0010 AE21 movs r1, #174
1594 0012 DB68 ldr r3, [r3, #12]
1595 0014 9847 blx r3
1596 .LVL142:
114:../libOLED/src/displayclass.cpp **** oledWrite(0x80); // the suggested ratio 0x80
1597 .loc 1 114 3 is_stmt 1 view .LVU432
114:../libOLED/src/displayclass.cpp **** oledWrite(0x80); // the suggested ratio 0x80
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 38
1598 .loc 1 114 39 is_stmt 0 view .LVU433
1599 0016 2368 ldr r3, [r4]
114:../libOLED/src/displayclass.cpp **** oledWrite(0x80); // the suggested ratio 0x80
1600 .loc 1 114 12 view .LVU434
1601 0018 2046 mov r0, r4
1602 001a D521 movs r1, #213
1603 001c DB68 ldr r3, [r3, #12]
1604 001e 9847 blx r3
1605 .LVL143:
115:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETMULTIPLEX); // 0xA8
1606 .loc 1 115 3 is_stmt 1 view .LVU435
115:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETMULTIPLEX); // 0xA8
1607 .loc 1 115 17 is_stmt 0 view .LVU436
1608 0020 2368 ldr r3, [r4]
115:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETMULTIPLEX); // 0xA8
1609 .loc 1 115 12 view .LVU437
1610 0022 2046 mov r0, r4
1611 0024 8021 movs r1, #128
1612 0026 DB68 ldr r3, [r3, #12]
1613 0028 9847 blx r3
1614 .LVL144:
116:../libOLED/src/displayclass.cpp **** oledWrite(m_height - 1);
1615 .loc 1 116 3 is_stmt 1 view .LVU438
116:../libOLED/src/displayclass.cpp **** oledWrite(m_height - 1);
1616 .loc 1 116 33 is_stmt 0 view .LVU439
1617 002a 2368 ldr r3, [r4]
116:../libOLED/src/displayclass.cpp **** oledWrite(m_height - 1);
1618 .loc 1 116 12 view .LVU440
1619 002c 2046 mov r0, r4
1620 002e A821 movs r1, #168
1621 0030 DB68 ldr r3, [r3, #12]
1622 0032 9847 blx r3
1623 .LVL145:
117:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYOFFSET); // 0xD3
1624 .loc 1 117 3 is_stmt 1 view .LVU441
117:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYOFFSET); // 0xD3
1625 .loc 1 117 12 is_stmt 0 view .LVU442
1626 0034 A168 ldr r1, [r4, #8]
117:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYOFFSET); // 0xD3
1627 .loc 1 117 25 view .LVU443
1628 0036 2368 ldr r3, [r4]
117:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETDISPLAYOFFSET); // 0xD3
1629 .loc 1 117 12 view .LVU444
1630 0038 0139 subs r1, r1, #1
1631 003a 2046 mov r0, r4
1632 003c DB68 ldr r3, [r3, #12]
1633 003e C9B2 uxtb r1, r1
1634 0040 9847 blx r3
1635 .LVL146:
118:../libOLED/src/displayclass.cpp **** oledWrite(0x0); // no offset
1636 .loc 1 118 3 is_stmt 1 view .LVU445
118:../libOLED/src/displayclass.cpp **** oledWrite(0x0); // no offset
1637 .loc 1 118 37 is_stmt 0 view .LVU446
1638 0042 2368 ldr r3, [r4]
118:../libOLED/src/displayclass.cpp **** oledWrite(0x0); // no offset
1639 .loc 1 118 12 view .LVU447
1640 0044 2046 mov r0, r4
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 39
1641 0046 D321 movs r1, #211
1642 0048 DB68 ldr r3, [r3, #12]
1643 004a 9847 blx r3
1644 .LVL147:
119:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
1645 .loc 1 119 3 is_stmt 1 view .LVU448
119:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
1646 .loc 1 119 16 is_stmt 0 view .LVU449
1647 004c 2368 ldr r3, [r4]
119:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
1648 .loc 1 119 12 view .LVU450
1649 004e 2046 mov r0, r4
1650 0050 0021 movs r1, #0
1651 0052 DB68 ldr r3, [r3, #12]
1652 0054 9847 blx r3
1653 .LVL148:
120:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_CHARGEPUMP); // 0x8D
1654 .loc 1 120 3 is_stmt 1 view .LVU451
120:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_CHARGEPUMP); // 0x8D
1655 .loc 1 120 39 is_stmt 0 view .LVU452
1656 0056 2368 ldr r3, [r4]
120:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_CHARGEPUMP); // 0x8D
1657 .loc 1 120 12 view .LVU453
1658 0058 2046 mov r0, r4
1659 005a 4021 movs r1, #64
1660 005c DB68 ldr r3, [r3, #12]
1661 005e 9847 blx r3
1662 .LVL149:
121:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
1663 .loc 1 121 3 is_stmt 1 view .LVU454
121:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
1664 .loc 1 121 31 is_stmt 0 view .LVU455
1665 0060 2368 ldr r3, [r4]
121:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
1666 .loc 1 121 12 view .LVU456
1667 0062 2046 mov r0, r4
1668 0064 8D21 movs r1, #141
1669 0066 DB68 ldr r3, [r3, #12]
1670 0068 9847 blx r3
1671 .LVL150:
122:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_MEMORYMODE); // 0x20
1672 .loc 1 122 3 is_stmt 1 view .LVU457
122:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_MEMORYMODE); // 0x20
1673 .loc 1 122 58 is_stmt 0 view .LVU458
1674 006a 2368 ldr r3, [r4]
122:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_MEMORYMODE); // 0x20
1675 .loc 1 122 12 view .LVU459
1676 006c 2046 mov r0, r4
1677 006e 1021 movs r1, #16
1678 0070 DB68 ldr r3, [r3, #12]
1679 0072 9847 blx r3
1680 .LVL151:
123:../libOLED/src/displayclass.cpp **** oledWrite(0x00); // 0x0 act like ks0108
1681 .loc 1 123 3 is_stmt 1 view .LVU460
123:../libOLED/src/displayclass.cpp **** oledWrite(0x00); // 0x0 act like ks0108
1682 .loc 1 123 31 is_stmt 0 view .LVU461
1683 0074 2368 ldr r3, [r4]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 40
123:../libOLED/src/displayclass.cpp **** oledWrite(0x00); // 0x0 act like ks0108
1684 .loc 1 123 12 view .LVU462
1685 0076 2046 mov r0, r4
1686 0078 2021 movs r1, #32
1687 007a DB68 ldr r3, [r3, #12]
1688 007c 9847 blx r3
1689 .LVL152:
124:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SEGREMAP | 0x1);
1690 .loc 1 124 3 is_stmt 1 view .LVU463
124:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SEGREMAP | 0x1);
1691 .loc 1 124 17 is_stmt 0 view .LVU464
1692 007e 2368 ldr r3, [r4]
124:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SEGREMAP | 0x1);
1693 .loc 1 124 12 view .LVU465
1694 0080 2046 mov r0, r4
1695 0082 0021 movs r1, #0
1696 0084 DB68 ldr r3, [r3, #12]
1697 0086 9847 blx r3
1698 .LVL153:
125:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_COMSCANDEC);
1699 .loc 1 125 3 is_stmt 1 view .LVU466
125:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_COMSCANDEC);
1700 .loc 1 125 35 is_stmt 0 view .LVU467
1701 0088 2368 ldr r3, [r4]
125:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_COMSCANDEC);
1702 .loc 1 125 12 view .LVU468
1703 008a 2046 mov r0, r4
1704 008c A121 movs r1, #161
1705 008e DB68 ldr r3, [r3, #12]
1706 0090 9847 blx r3
1707 .LVL154:
126:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCOMPINS); // 0xDA
1708 .loc 1 126 3 is_stmt 1 view .LVU469
126:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCOMPINS); // 0xDA
1709 .loc 1 126 31 is_stmt 0 view .LVU470
1710 0092 2368 ldr r3, [r4]
126:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCOMPINS); // 0xDA
1711 .loc 1 126 12 view .LVU471
1712 0094 2046 mov r0, r4
1713 0096 C821 movs r1, #200
1714 0098 DB68 ldr r3, [r3, #12]
1715 009a 9847 blx r3
1716 .LVL155:
127:../libOLED/src/displayclass.cpp **** oledWrite(m_height == 32 ? 0x02 : 0x12);
1717 .loc 1 127 3 is_stmt 1 view .LVU472
127:../libOLED/src/displayclass.cpp **** oledWrite(m_height == 32 ? 0x02 : 0x12);
1718 .loc 1 127 31 is_stmt 0 view .LVU473
1719 009c 2368 ldr r3, [r4]
127:../libOLED/src/displayclass.cpp **** oledWrite(m_height == 32 ? 0x02 : 0x12);
1720 .loc 1 127 12 view .LVU474
1721 009e DA21 movs r1, #218
1722 00a0 2046 mov r0, r4
1723 00a2 DB68 ldr r3, [r3, #12]
1724 00a4 9847 blx r3
1725 .LVL156:
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1726 .loc 1 128 3 is_stmt 1 view .LVU475
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 41
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1727 .loc 1 128 12 is_stmt 0 view .LVU476
1728 00a6 A268 ldr r2, [r4, #8]
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1729 .loc 1 128 41 view .LVU477
1730 00a8 2368 ldr r3, [r4]
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1731 .loc 1 128 12 view .LVU478
1732 00aa 202A cmp r2, #32
1733 00ac 0CBF ite eq
1734 00ae 0221 moveq r1, #2
1735 00b0 1221 movne r1, #18
1736 00b2 2046 mov r0, r4
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1737 .loc 1 128 41 view .LVU479
1738 00b4 DB68 ldr r3, [r3, #12]
128:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETCONTRAST); // 0x81
1739 .loc 1 128 12 view .LVU480
1740 00b6 9847 blx r3
1741 .LVL157:
129:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
1742 .loc 1 129 3 is_stmt 1 view .LVU481
129:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
1743 .loc 1 129 32 is_stmt 0 view .LVU482
1744 00b8 2368 ldr r3, [r4]
129:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
1745 .loc 1 129 12 view .LVU483
1746 00ba 2046 mov r0, r4
1747 00bc 8121 movs r1, #129
1748 00be DB68 ldr r3, [r3, #12]
1749 00c0 9847 blx r3
1750 .LVL158:
130:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETPRECHARGE); // 0xd9
1751 .loc 1 130 3 is_stmt 1 view .LVU484
130:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETPRECHARGE); // 0xd9
1752 .loc 1 130 58 is_stmt 0 view .LVU485
1753 00c2 2368 ldr r3, [r4]
130:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETPRECHARGE); // 0xd9
1754 .loc 1 130 12 view .LVU486
1755 00c4 2046 mov r0, r4
1756 00c6 9F21 movs r1, #159
1757 00c8 DB68 ldr r3, [r3, #12]
1758 00ca 9847 blx r3
1759 .LVL159:
131:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
1760 .loc 1 131 3 is_stmt 1 view .LVU487
131:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
1761 .loc 1 131 33 is_stmt 0 view .LVU488
1762 00cc 2368 ldr r3, [r4]
131:../libOLED/src/displayclass.cpp **** oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
1763 .loc 1 131 12 view .LVU489
1764 00ce 2046 mov r0, r4
1765 00d0 D921 movs r1, #217
1766 00d2 DB68 ldr r3, [r3, #12]
1767 00d4 9847 blx r3
1768 .LVL160:
132:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 42
1769 .loc 1 132 3 is_stmt 1 view .LVU490
132:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
1770 .loc 1 132 58 is_stmt 0 view .LVU491
1771 00d6 2368 ldr r3, [r4]
132:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
1772 .loc 1 132 12 view .LVU492
1773 00d8 2046 mov r0, r4
1774 00da 2221 movs r1, #34
1775 00dc DB68 ldr r3, [r3, #12]
1776 00de 9847 blx r3
1777 .LVL161:
133:../libOLED/src/displayclass.cpp **** oledWrite(0x40);
1778 .loc 1 133 3 is_stmt 1 view .LVU493
133:../libOLED/src/displayclass.cpp **** oledWrite(0x40);
1779 .loc 1 133 34 is_stmt 0 view .LVU494
1780 00e0 2368 ldr r3, [r4]
133:../libOLED/src/displayclass.cpp **** oledWrite(0x40);
1781 .loc 1 133 12 view .LVU495
1782 00e2 2046 mov r0, r4
1783 00e4 DB21 movs r1, #219
1784 00e6 DB68 ldr r3, [r3, #12]
1785 00e8 9847 blx r3
1786 .LVL162:
134:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
1787 .loc 1 134 3 is_stmt 1 view .LVU496
134:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
1788 .loc 1 134 17 is_stmt 0 view .LVU497
1789 00ea 2368 ldr r3, [r4]
134:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
1790 .loc 1 134 12 view .LVU498
1791 00ec 2046 mov r0, r4
1792 00ee 4021 movs r1, #64
1793 00f0 DB68 ldr r3, [r3, #12]
1794 00f2 9847 blx r3
1795 .LVL163:
135:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_NORMALDISPLAY); // 0xA6
1796 .loc 1 135 3 is_stmt 1 view .LVU499
135:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_NORMALDISPLAY); // 0xA6
1797 .loc 1 135 40 is_stmt 0 view .LVU500
1798 00f4 2368 ldr r3, [r4]
135:../libOLED/src/displayclass.cpp **** oledWrite(SSD1306_NORMALDISPLAY); // 0xA6
1799 .loc 1 135 12 view .LVU501
1800 00f6 2046 mov r0, r4
1801 00f8 A421 movs r1, #164
1802 00fa DB68 ldr r3, [r3, #12]
1803 00fc 9847 blx r3
1804 .LVL164:
136:../libOLED/src/displayclass.cpp ****
1805 .loc 1 136 3 is_stmt 1 view .LVU502
136:../libOLED/src/displayclass.cpp ****
1806 .loc 1 136 34 is_stmt 0 view .LVU503
1807 00fe 2368 ldr r3, [r4]
136:../libOLED/src/displayclass.cpp ****
1808 .loc 1 136 12 view .LVU504
1809 0100 2046 mov r0, r4
1810 0102 A621 movs r1, #166
1811 0104 DB68 ldr r3, [r3, #12]
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 43
1812 0106 9847 blx r3
1813 .LVL165:
138:../libOLED/src/displayclass.cpp ****
1814 .loc 1 138 3 is_stmt 1 view .LVU505
138:../libOLED/src/displayclass.cpp ****
1815 .loc 1 138 30 is_stmt 0 view .LVU506
1816 0108 2368 ldr r3, [r4]
138:../libOLED/src/displayclass.cpp ****
1817 .loc 1 138 12 view .LVU507
1818 010a 2046 mov r0, r4
1819 010c AF21 movs r1, #175
1820 010e DB68 ldr r3, [r3, #12]
1821 0110 9847 blx r3
1822 .LVL166:
140:../libOLED/src/displayclass.cpp **** }
1823 .loc 1 140 3 is_stmt 1 view .LVU508
140:../libOLED/src/displayclass.cpp **** }
1824 .loc 1 140 15 is_stmt 0 view .LVU509
1825 0112 2046 mov r0, r4
141:../libOLED/src/displayclass.cpp ****
1826 .loc 1 141 1 view .LVU510
1827 0114 BDE81040 pop {r4, lr}
1828 .LCFI18:
1829 .cfi_restore 14
1830 .cfi_restore 4
1831 .cfi_def_cfa_offset 0
1832 .LVL167:
140:../libOLED/src/displayclass.cpp **** }
1833 .loc 1 140 15 view .LVU511
1834 0118 0021 movs r1, #0
1835 011a FFF7FEBF b _ZN9display_t12clearDisplayE8colour_t
1836 .LVL168:
140:../libOLED/src/displayclass.cpp **** }
1837 .loc 1 140 15 view .LVU512
1838 .cfi_endproc
1839 .LFE45:
1841 .section .text._ZN9display_t13drawRectangleEssss8colour_t,"ax",%progbits
1842 .align 1
1843 .global _ZN9display_t13drawRectangleEssss8colour_t
1844 .syntax unified
1845 .thumb
1846 .thumb_func
1847 .fpu softvfp
1849 _ZN9display_t13drawRectangleEssss8colour_t:
1850 .LVL169:
1851 .LFB59:
386:../libOLED/src/displayclass.cpp ****
387:../libOLED/src/displayclass.cpp **** void display_t::drawRectangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
388:../libOLED/src/displayclass.cpp **** colour_t color)
389:../libOLED/src/displayclass.cpp **** {
1852 .loc 1 389 1 is_stmt 1 view -0
1853 .cfi_startproc
1854 @ args = 8, pretend = 0, frame = 0
1855 @ frame_needed = 0, uses_anonymous_args = 0
390:../libOLED/src/displayclass.cpp **** for (int16_t x = x1; x <= x2; x++)
1856 .loc 1 390 3 view .LVU514
389:../libOLED/src/displayclass.cpp **** for (int16_t x = x1; x <= x2; x++)
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 44
1857 .loc 1 389 1 is_stmt 0 view .LVU515
1858 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
1859 .LCFI19:
1860 .cfi_def_cfa_offset 28
1861 .cfi_offset 4, -28
1862 .cfi_offset 5, -24
1863 .cfi_offset 6, -20
1864 .cfi_offset 7, -16
1865 .cfi_offset 8, -12
1866 .cfi_offset 9, -8
1867 .cfi_offset 14, -4
1868 .LBB42:
1869 .LBB43:
391:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
392:../libOLED/src/displayclass.cpp **** {
393:../libOLED/src/displayclass.cpp **** switch (color)
394:../libOLED/src/displayclass.cpp **** {
395:../libOLED/src/displayclass.cpp **** case BLACK:
396:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
1870 .loc 1 396 46 view .LVU516
1871 0004 4FF0010E mov lr, #1
1872 .LBE43:
1873 .LBE42:
389:../libOLED/src/displayclass.cpp **** for (int16_t x = x1; x <= x2; x++)
1874 .loc 1 389 1 view .LVU517
1875 0008 BDF91CC0 ldrsh ip, [sp, #28]
1876 000c 9DF82070 ldrb r7, [sp, #32] @ zero_extendqisi2
1877 .LVL170:
1878 .L80:
1879 .LBB45:
390:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1880 .loc 1 390 26 is_stmt 1 discriminator 1 view .LVU518
1881 0010 9942 cmp r1, r3
1882 0012 28DC bgt .L71
1883 .LBB44:
391:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1884 .loc 1 391 18 is_stmt 0 view .LVU519
1885 0014 1446 mov r4, r2
1886 .L79:
1887 .LVL171:
391:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1888 .loc 1 391 28 is_stmt 1 discriminator 1 view .LVU520
1889 0016 6445 cmp r4, ip
1890 0018 22DA bge .L73
393:../libOLED/src/displayclass.cpp **** {
1891 .loc 1 393 7 view .LVU521
1892 .loc 1 396 23 is_stmt 0 view .LVU522
1893 001a 2546 mov r5, r4
1894 001c 002C cmp r4, #0
1895 001e B8BF it lt
1896 0020 E51D addlt r5, r4, #7
1897 .loc 1 396 39 view .LVU523
1898 0022 45F3CF06 sbfx r6, r5, #3, #16
1899 0026 4568 ldr r5, [r0, #4]
1900 0028 1FFA84F8 uxth r8, r4
1901 002c 05FB0615 mla r5, r5, r6, r1
1902 .loc 1 396 52 view .LVU524
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 45
1903 0030 04F00704 and r4, r4, #7
1904 .LVL172:
1905 .loc 1 396 39 view .LVU525
1906 0034 066A ldr r6, [r0, #32]
1907 .loc 1 396 46 view .LVU526
1908 0036 0EFA04F4 lsl r4, lr, r4
1909 .loc 1 396 39 view .LVU527
1910 003a 16F90590 ldrsb r9, [r6, r5]
1911 003e 64B2 sxtb r4, r4
393:../libOLED/src/displayclass.cpp **** {
1912 .loc 1 393 7 view .LVU528
1913 0040 27B1 cbz r7, .L75
1914 0042 032F cmp r7, #3
1915 0044 09D0 beq .L76
397:../libOLED/src/displayclass.cpp **** break;
398:../libOLED/src/displayclass.cpp ****
399:../libOLED/src/displayclass.cpp **** default:
1916 .loc 1 399 7 is_stmt 1 view .LVU529
400:../libOLED/src/displayclass.cpp **** case WHITE:
1917 .loc 1 400 7 view .LVU530
401:../libOLED/src/displayclass.cpp **** case OVERLAY:
1918 .loc 1 401 7 view .LVU531
402:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] |= (1 << (y & 7));
1919 .loc 1 402 9 view .LVU532
1920 .loc 1 402 39 is_stmt 0 view .LVU533
1921 0046 49EA0404 orr r4, r9, r4
1922 004a 01E0 b .L82
1923 .L75:
395:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
1924 .loc 1 395 7 is_stmt 1 view .LVU534
396:../libOLED/src/displayclass.cpp **** break;
1925 .loc 1 396 9 view .LVU535
396:../libOLED/src/displayclass.cpp **** break;
1926 .loc 1 396 39 is_stmt 0 view .LVU536
1927 004c 29EA0404 bic r4, r9, r4
1928 .L82:
403:../libOLED/src/displayclass.cpp **** break;
404:../libOLED/src/displayclass.cpp ****
405:../libOLED/src/displayclass.cpp **** case INVERT:
406:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
1929 .loc 1 406 39 view .LVU537
1930 0050 7455 strb r4, [r6, r5]
407:../libOLED/src/displayclass.cpp **** break;
1931 .loc 1 407 9 is_stmt 1 view .LVU538
391:../libOLED/src/displayclass.cpp **** {
1932 .loc 1 391 5 view .LVU539
1933 0052 08F10104 add r4, r8, #1
1934 0056 24B2 sxth r4, r4
1935 .LVL173:
391:../libOLED/src/displayclass.cpp **** {
1936 .loc 1 391 5 is_stmt 0 view .LVU540
1937 0058 DDE7 b .L79
1938 .LVL174:
1939 .L76:
405:../libOLED/src/displayclass.cpp **** m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
1940 .loc 1 405 7 is_stmt 1 view .LVU541
406:../libOLED/src/displayclass.cpp **** break;
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 46
1941 .loc 1 406 9 view .LVU542
406:../libOLED/src/displayclass.cpp **** break;
1942 .loc 1 406 39 is_stmt 0 view .LVU543
1943 005a 89EA0404 eor r4, r9, r4
1944 005e F7E7 b .L82
1945 .LVL175:
1946 .L73:
406:../libOLED/src/displayclass.cpp **** break;
1947 .loc 1 406 39 view .LVU544
1948 .LBE44:
390:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1949 .loc 1 390 3 is_stmt 1 discriminator 2 view .LVU545
1950 0060 0131 adds r1, r1, #1
1951 .LVL176:
390:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1952 .loc 1 390 3 is_stmt 0 discriminator 2 view .LVU546
1953 0062 09B2 sxth r1, r1
1954 .LVL177:
390:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1955 .loc 1 390 3 discriminator 2 view .LVU547
1956 0064 D4E7 b .L80
1957 .LVL178:
1958 .L71:
390:../libOLED/src/displayclass.cpp **** for (int16_t y = y1; y < y2; y++)
1959 .loc 1 390 3 discriminator 2 view .LVU548
1960 .LBE45:
408:../libOLED/src/displayclass.cpp **** }
409:../libOLED/src/displayclass.cpp **** }
410:../libOLED/src/displayclass.cpp **** }
1961 .loc 1 410 1 view .LVU549
1962 0066 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
1963 .loc 1 410 1 view .LVU550
1964 .cfi_endproc
1965 .LFE59:
1967 .section .text._ZN9display_t8drawLineEssss8colour_ta,"ax",%progbits
1968 .align 1
1969 .global _ZN9display_t8drawLineEssss8colour_ta
1970 .syntax unified
1971 .thumb
1972 .thumb_func
1973 .fpu softvfp
1975 _ZN9display_t8drawLineEssss8colour_ta:
1976 .LVL179:
1977 .LFB60:
411:../libOLED/src/displayclass.cpp ****
412:../libOLED/src/displayclass.cpp **** /* using Bresenham draw algorithm */
413:../libOLED/src/displayclass.cpp **** void display_t::drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
414:../libOLED/src/displayclass.cpp **** colour_t colour, int8_t pattern)
415:../libOLED/src/displayclass.cpp **** {
1978 .loc 1 415 1 is_stmt 1 view -0
1979 .cfi_startproc
1980 @ args = 12, pretend = 0, frame = 16
1981 @ frame_needed = 0, uses_anonymous_args = 0
416:../libOLED/src/displayclass.cpp **** int16_t x, y, dx, dy, // deltas
1982 .loc 1 416 3 view .LVU552
417:../libOLED/src/displayclass.cpp **** dx2, dy2, // scaled deltas
418:../libOLED/src/displayclass.cpp **** ix, iy, // increase rate on the x and y axis
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 47
419:../libOLED/src/displayclass.cpp **** err; // the error term
420:../libOLED/src/displayclass.cpp **** int8_t patt = pattern; // drawing pattern bit mask 1= solid 10= dots , 111000 equal dot/dash
1983 .loc 1 420 3 view .LVU553
415:../libOLED/src/displayclass.cpp **** int16_t x, y, dx, dy, // deltas
1984 .loc 1 415 1 is_stmt 0 view .LVU554
1985 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1986 .LCFI20:
1987 .cfi_def_cfa_offset 36
1988 .cfi_offset 4, -36
1989 .cfi_offset 5, -32
1990 .cfi_offset 6, -28
1991 .cfi_offset 7, -24
1992 .cfi_offset 8, -20
1993 .cfi_offset 9, -16
1994 .cfi_offset 10, -12
1995 .cfi_offset 11, -8
1996 .cfi_offset 14, -4
1997 0004 85B0 sub sp, sp, #20
1998 .LCFI21:
1999 .cfi_def_cfa_offset 56
421:../libOLED/src/displayclass.cpp ****
422:../libOLED/src/displayclass.cpp **** uint16_t i; // looping variable
423:../libOLED/src/displayclass.cpp ****
424:../libOLED/src/displayclass.cpp **** setPixelMode(colour);
425:../libOLED/src/displayclass.cpp ****
426:../libOLED/src/displayclass.cpp **** // identify the first pixel
427:../libOLED/src/displayclass.cpp **** x = x1;
428:../libOLED/src/displayclass.cpp **** y = y1;
429:../libOLED/src/displayclass.cpp ****
430:../libOLED/src/displayclass.cpp **** // difference between starting and ending points
431:../libOLED/src/displayclass.cpp **** dx = x2 - x1;
432:../libOLED/src/displayclass.cpp **** dy = y2 - y1;
2000 .loc 1 432 11 view .LVU555
2001 0006 BDF93850 ldrsh r5, [sp, #56]
431:../libOLED/src/displayclass.cpp **** dy = y2 - y1;
2002 .loc 1 431 11 view .LVU556
2003 000a 5E1A subs r6, r3, r1
2004 .LBB46:
2005 .LBB47:
15:../libOLED/inc/libOLED/displayclass.H **** }
16:../libOLED/inc/libOLED/displayclass.H ****
17:../libOLED/inc/libOLED/displayclass.H **** enum colour_t
18:../libOLED/inc/libOLED/displayclass.H **** {
19:../libOLED/inc/libOLED/displayclass.H **** BLACK, /* and 0, invert 0 */
20:../libOLED/inc/libOLED/displayclass.H **** WHITE, /* and 0, invert 1 */
21:../libOLED/inc/libOLED/displayclass.H **** OVERLAY, /* and 1, invert 0 */
22:../libOLED/inc/libOLED/displayclass.H **** INVERT, /* and 1, invert 1 */
23:../libOLED/inc/libOLED/displayclass.H **** };
24:../libOLED/inc/libOLED/displayclass.H ****
25:../libOLED/inc/libOLED/displayclass.H **** class display_t
26:../libOLED/inc/libOLED/displayclass.H **** {
27:../libOLED/inc/libOLED/displayclass.H **** public:
28:../libOLED/inc/libOLED/displayclass.H **** display_t(int const width, int const height, int const ramwidth,
29:../libOLED/inc/libOLED/displayclass.H **** uint8_t *const data);
30:../libOLED/inc/libOLED/displayclass.H ****
31:../libOLED/inc/libOLED/displayclass.H **** virtual ~display_t();
32:../libOLED/inc/libOLED/displayclass.H ****
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 48
33:../libOLED/inc/libOLED/displayclass.H **** /// \brief get the current rotation of the display : doesnt work too well.
34:../libOLED/inc/libOLED/displayclass.H **** uint8_t
35:../libOLED/inc/libOLED/displayclass.H **** getRotation();
36:../libOLED/inc/libOLED/displayclass.H ****
37:../libOLED/inc/libOLED/displayclass.H **** /// @brief Get pixel width
38:../libOLED/inc/libOLED/displayclass.H **** /// @return width
39:../libOLED/inc/libOLED/displayclass.H **** int16_t
40:../libOLED/inc/libOLED/displayclass.H **** width();
41:../libOLED/inc/libOLED/displayclass.H **** /// @brief Get pixel height
42:../libOLED/inc/libOLED/displayclass.H **** /// @return height
43:../libOLED/inc/libOLED/displayclass.H **** int16_t
44:../libOLED/inc/libOLED/displayclass.H **** height();
45:../libOLED/inc/libOLED/displayclass.H ****
46:../libOLED/inc/libOLED/displayclass.H **** /// @brief common hardware reset, resets ALL displays
47:../libOLED/inc/libOLED/displayclass.H **** void
48:../libOLED/inc/libOLED/displayclass.H **** reset();
49:../libOLED/inc/libOLED/displayclass.H ****
50:../libOLED/inc/libOLED/displayclass.H **** void
51:../libOLED/inc/libOLED/displayclass.H **** init();
52:../libOLED/inc/libOLED/displayclass.H ****
53:../libOLED/inc/libOLED/displayclass.H **** /// \brief Clear display to colour
54:../libOLED/inc/libOLED/displayclass.H **** void
55:../libOLED/inc/libOLED/displayclass.H **** clearDisplay(colour_t colour = colour_t::BLACK);
56:../libOLED/inc/libOLED/displayclass.H ****
57:../libOLED/inc/libOLED/displayclass.H **** /// @brief Invert display
58:../libOLED/inc/libOLED/displayclass.H **** /// @param i true : invert display
59:../libOLED/inc/libOLED/displayclass.H **** void
60:../libOLED/inc/libOLED/displayclass.H **** invertDisplay(uint8_t i);
61:../libOLED/inc/libOLED/displayclass.H ****
62:../libOLED/inc/libOLED/displayclass.H **** /// @brief Show the workspace on the screen
63:../libOLED/inc/libOLED/displayclass.H **** void
64:../libOLED/inc/libOLED/displayclass.H **** display();
65:../libOLED/inc/libOLED/displayclass.H ****
66:../libOLED/inc/libOLED/displayclass.H **** void
67:../libOLED/inc/libOLED/displayclass.H **** startscrollright(uint8_t start, uint8_t stop);
68:../libOLED/inc/libOLED/displayclass.H **** void
69:../libOLED/inc/libOLED/displayclass.H **** startscrollleft(uint8_t start, uint8_t stop);
70:../libOLED/inc/libOLED/displayclass.H ****
71:../libOLED/inc/libOLED/displayclass.H **** void
72:../libOLED/inc/libOLED/displayclass.H **** startscrolldiagright(uint8_t start, uint8_t stop);
73:../libOLED/inc/libOLED/displayclass.H **** void
74:../libOLED/inc/libOLED/displayclass.H **** startscrolldiagleft(uint8_t start, uint8_t stop);
75:../libOLED/inc/libOLED/displayclass.H **** void
76:../libOLED/inc/libOLED/displayclass.H **** stopscroll(void);
77:../libOLED/inc/libOLED/displayclass.H ****
78:../libOLED/inc/libOLED/displayclass.H **** /// @brief Set display contrast
79:../libOLED/inc/libOLED/displayclass.H **** /// @param contrast 0..255 but theres really only two values worth bothering with, 0 and 255
80:../libOLED/inc/libOLED/displayclass.H **** void
81:../libOLED/inc/libOLED/displayclass.H **** dim(uint8_t contrast);
82:../libOLED/inc/libOLED/displayclass.H ****
83:../libOLED/inc/libOLED/displayclass.H **** // set drawing mode
84:../libOLED/inc/libOLED/displayclass.H **** void
85:../libOLED/inc/libOLED/displayclass.H **** setPixelMode(colour_t colour)
86:../libOLED/inc/libOLED/displayclass.H **** {
87:../libOLED/inc/libOLED/displayclass.H **** m_colour = colour;
2006 .loc 2 87 14 view .LVU557
2007 000c 9DF83C40 ldrb r4, [sp, #60] @ zero_extendqisi2
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 49
2008 .LBE47:
2009 .LBE46:
431:../libOLED/src/displayclass.cpp **** dy = y2 - y1;
2010 .loc 1 431 6 view .LVU558
2011 0010 36B2 sxth r6, r6
2012 .loc 1 432 11 view .LVU559
2013 0012 AD1A subs r5, r5, r2
433:../libOLED/src/displayclass.cpp ****
434:../libOLED/src/displayclass.cpp **** // calculate direction of the vector and store in ix and iy
435:../libOLED/src/displayclass.cpp **** if (dx >= 0)
436:../libOLED/src/displayclass.cpp **** ix = 1;
437:../libOLED/src/displayclass.cpp ****
438:../libOLED/src/displayclass.cpp **** if (dx < 0)
2014 .loc 1 438 3 view .LVU560
2015 0014 002E cmp r6, #0
415:../libOLED/src/displayclass.cpp **** int16_t x, y, dx, dy, // deltas
2016 .loc 1 415 1 view .LVU561
2017 0016 9DF94090 ldrsb r9, [sp, #64]
2018 .LVL180:
422:../libOLED/src/displayclass.cpp ****
2019 .loc 1 422 3 is_stmt 1 view .LVU562
424:../libOLED/src/displayclass.cpp ****
2020 .loc 1 424 3 view .LVU563
2021 .LBB49:
2022 .LBI46:
85:../libOLED/inc/libOLED/displayclass.H **** {
2023 .loc 2 85 3 view .LVU564
2024 .LBB48:
2025 .loc 2 87 5 view .LVU565
2026 .loc 2 87 14 is_stmt 0 view .LVU566
2027 001a 0477 strb r4, [r0, #28]
2028 .LVL181:
2029 .loc 2 87 14 view .LVU567
2030 .LBE48:
2031 .LBE49:
427:../libOLED/src/displayclass.cpp **** y = y1;
2032 .loc 1 427 3 is_stmt 1 view .LVU568
428:../libOLED/src/displayclass.cpp ****
2033 .loc 1 428 3 view .LVU569
431:../libOLED/src/displayclass.cpp **** dy = y2 - y1;
2034 .loc 1 431 3 view .LVU570
432:../libOLED/src/displayclass.cpp ****
2035 .loc 1 432 3 view .LVU571
432:../libOLED/src/displayclass.cpp ****
2036 .loc 1 432 6 is_stmt 0 view .LVU572
2037 001c 2DB2 sxth r5, r5
2038 .LVL182:
435:../libOLED/src/displayclass.cpp **** ix = 1;
2039 .loc 1 435 3 is_stmt 1 view .LVU573
2040 .loc 1 438 3 view .LVU574
2041 001e 3FDA bge .L96
439:../libOLED/src/displayclass.cpp **** {
440:../libOLED/src/displayclass.cpp **** ix = -1;
2042 .loc 1 440 5 view .LVU575
2043 .LVL183:
441:../libOLED/src/displayclass.cpp **** dx = abs(dx);
2044 .loc 1 441 5 view .LVU576
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 50
2045 .LBB50:
2046 .LBI50:
70:../libOLED/src/displayclass.cpp **** {
2047 .loc 1 70 5 view .LVU577
2048 .LBE50:
440:../libOLED/src/displayclass.cpp **** dx = abs(dx);
2049 .loc 1 440 8 is_stmt 0 view .LVU578
2050 0020 4FF0FF3A mov r10, #-1
2051 .LBB52:
2052 .LBB51:
72:../libOLED/src/displayclass.cpp **** }
2053 .loc 1 72 18 view .LVU579
2054 0024 002E cmp r6, #0
2055 0026 B8BF it lt
2056 0028 7642 rsblt r6, r6, #0
2057 .LVL184:
72:../libOLED/src/displayclass.cpp **** }
2058 .loc 1 72 25 view .LVU580
2059 002a 36B2 sxth r6, r6
2060 .LVL185:
2061 .L84:
72:../libOLED/src/displayclass.cpp **** }
2062 .loc 1 72 25 view .LVU581
2063 .LBE51:
2064 .LBE52:
442:../libOLED/src/displayclass.cpp **** }
443:../libOLED/src/displayclass.cpp ****
444:../libOLED/src/displayclass.cpp **** if (dy >= 0)
2065 .loc 1 444 3 is_stmt 1 view .LVU582
445:../libOLED/src/displayclass.cpp **** iy = 1;
446:../libOLED/src/displayclass.cpp ****
447:../libOLED/src/displayclass.cpp **** if (dy < 0)
2066 .loc 1 447 3 view .LVU583
2067 002c 002D cmp r5, #0
2068 002e 3ADA bge .L97
448:../libOLED/src/displayclass.cpp **** {
449:../libOLED/src/displayclass.cpp **** iy = -1;
2069 .loc 1 449 5 view .LVU584
2070 .LVL186:
450:../libOLED/src/displayclass.cpp **** dy = abs(dy);
2071 .loc 1 450 5 view .LVU585
2072 .LBB53:
2073 .LBI53:
70:../libOLED/src/displayclass.cpp **** {
2074 .loc 1 70 5 view .LVU586
2075 .LBE53:
449:../libOLED/src/displayclass.cpp **** dy = abs(dy);
2076 .loc 1 449 8 is_stmt 0 view .LVU587
2077 0030 4FF0FF33 mov r3, #-1
2078 .LVL187:
2079 .LBB55:
2080 .LBB54:
72:../libOLED/src/displayclass.cpp **** }
2081 .loc 1 72 18 view .LVU588
2082 0034 002D cmp r5, #0
2083 0036 B8BF it lt
2084 0038 6D42 rsblt r5, r5, #0
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 51
2085 .LVL188:
72:../libOLED/src/displayclass.cpp **** }
2086 .loc 1 72 25 view .LVU589
2087 003a 2DB2 sxth r5, r5
2088 .LVL189:
2089 .L106:
72:../libOLED/src/displayclass.cpp **** }
2090 .loc 1 72 25 view .LVU590
2091 .LBE54:
2092 .LBE55:
2093 003c 0093 str r3, [sp]
2094 .LVL190:
451:../libOLED/src/displayclass.cpp **** }
452:../libOLED/src/displayclass.cpp ****
453:../libOLED/src/displayclass.cpp **** // scale deltas and store in dx2 and dy2
454:../libOLED/src/displayclass.cpp **** dx2 = dx * 2;
2095 .loc 1 454 3 is_stmt 1 view .LVU591
2096 .loc 1 454 12 is_stmt 0 view .LVU592
2097 003e B4B2 uxth r4, r6
455:../libOLED/src/displayclass.cpp **** dy2 = dy * 2;
2098 .loc 1 455 12 view .LVU593
2099 0040 ABB2 uxth r3, r5
454:../libOLED/src/displayclass.cpp **** dy2 = dy * 2;
2100 .loc 1 454 12 view .LVU594
2101 0042 6700 lsls r7, r4, #1
2102 .loc 1 455 12 view .LVU595
2103 0044 4FEA4308 lsl r8, r3, #1
456:../libOLED/src/displayclass.cpp ****
457:../libOLED/src/displayclass.cpp **** // all variables are set and it's time to enter the main loop.
458:../libOLED/src/displayclass.cpp ****
459:../libOLED/src/displayclass.cpp **** if (dx > dy) // dx is the major axis
2104 .loc 1 459 3 view .LVU596
2105 0048 AE42 cmp r6, r5
454:../libOLED/src/displayclass.cpp **** dy2 = dy * 2;
2106 .loc 1 454 12 view .LVU597
2107 004a BFB2 uxth r7, r7
2108 .LVL191:
455:../libOLED/src/displayclass.cpp ****
2109 .loc 1 455 3 is_stmt 1 view .LVU598
455:../libOLED/src/displayclass.cpp ****
2110 .loc 1 455 12 is_stmt 0 view .LVU599
2111 004c 1FFA88F8 uxth r8, r8
2112 .LVL192:
2113 .loc 1 459 3 is_stmt 1 view .LVU600
2114 0050 2BDD ble .L86
460:../libOLED/src/displayclass.cpp **** {
461:../libOLED/src/displayclass.cpp **** // initialize the error term
462:../libOLED/src/displayclass.cpp **** err = dy2 - dx;
2115 .loc 1 462 5 view .LVU601
420:../libOLED/src/displayclass.cpp ****
2116 .loc 1 420 10 is_stmt 0 view .LVU602
2117 0052 4D46 mov r5, r9
2118 .LVL193:
2119 .loc 1 462 9 view .LVU603
2120 0054 4FF0000B mov fp, #0
2121 .loc 1 462 15 view .LVU604
2122 0058 A8EB0404 sub r4, r8, r4
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 52
2123 .loc 1 462 9 view .LVU605
2124 005c 24B2 sxth r4, r4
2125 .LVL194:
463:../libOLED/src/displayclass.cpp ****
464:../libOLED/src/displayclass.cpp **** for (i = 0; i <= dx; i++)
2126 .loc 1 464 5 is_stmt 1 view .LVU606
2127 .L91:
2128 .loc 1 464 19 discriminator 1 view .LVU607
2129 .loc 1 464 17 is_stmt 0 discriminator 1 view .LVU608
2130 005e 1FFA8BF3 uxth r3, fp
2131 .loc 1 464 19 discriminator 1 view .LVU609
2132 0062 B342 cmp r3, r6
2133 0064 4ADC bgt .L83
465:../libOLED/src/displayclass.cpp **** {
466:../libOLED/src/displayclass.cpp **** // draw pattern based on using pattern as a sequential bit mask.
467:../libOLED/src/displayclass.cpp **** if (patt & 1)
2134 .loc 1 467 7 is_stmt 1 view .LVU610
2135 0066 EB07 lsls r3, r5, #31
2136 0068 08D5 bpl .L88
468:../libOLED/src/displayclass.cpp **** drawPixel(x, y, 1);
2137 .loc 1 468 9 view .LVU611
2138 .loc 1 468 18 is_stmt 0 view .LVU612
2139 006a 0123 movs r3, #1
2140 006c CDE90212 strd r1, r2, [sp, #8]
2141 0070 0190 str r0, [sp, #4]
2142 0072 FFF7FEFF bl _ZN9display_t9drawPixelEssb
2143 .LVL195:
2144 .loc 1 468 18 view .LVU613
2145 0076 DDE90212 ldrd r1, r2, [sp, #8]
2146 007a 0198 ldr r0, [sp, #4]
2147 .L88:
469:../libOLED/src/displayclass.cpp **** patt = (patt <= 1) ? pattern : patt >> 1;
2148 .loc 1 469 7 is_stmt 1 view .LVU614
2149 .loc 1 469 12 is_stmt 0 view .LVU615
2150 007c 012D cmp r5, #1
2151 007e D4BF ite le
2152 0080 4D46 movle r5, r9
2153 .LVL196:
2154 .loc 1 469 12 view .LVU616
2155 0082 6D10 asrgt r5, r5, #1
2156 .LVL197:
470:../libOLED/src/displayclass.cpp ****
471:../libOLED/src/displayclass.cpp **** if (err >= 0)
2157 .loc 1 471 7 is_stmt 1 view .LVU617
2158 0084 002C cmp r4, #0
2159 0086 04DB blt .L90
472:../libOLED/src/displayclass.cpp **** {
473:../libOLED/src/displayclass.cpp **** err -= dx2;
2160 .loc 1 473 9 view .LVU618
474:../libOLED/src/displayclass.cpp **** y += iy;
2161 .loc 1 474 11 is_stmt 0 view .LVU619
2162 0088 009B ldr r3, [sp]
473:../libOLED/src/displayclass.cpp **** y += iy;
2163 .loc 1 473 13 view .LVU620
2164 008a E41B subs r4, r4, r7
2165 .LVL198:
2166 .loc 1 474 11 view .LVU621
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 53
2167 008c 1A44 add r2, r2, r3
473:../libOLED/src/displayclass.cpp **** y += iy;
2168 .loc 1 473 13 view .LVU622
2169 008e 24B2 sxth r4, r4
2170 .LVL199:
2171 .loc 1 474 9 is_stmt 1 view .LVU623
2172 .loc 1 474 11 is_stmt 0 view .LVU624
2173 0090 12B2 sxth r2, r2
2174 .LVL200:
2175 .L90:
475:../libOLED/src/displayclass.cpp **** }
476:../libOLED/src/displayclass.cpp **** err += dy2;
2176 .loc 1 476 7 is_stmt 1 discriminator 2 view .LVU625
2177 .loc 1 476 11 is_stmt 0 discriminator 2 view .LVU626
2178 0092 4444 add r4, r4, r8
2179 .LVL201:
2180 .loc 1 476 11 discriminator 2 view .LVU627
2181 0094 5144 add r1, r1, r10
2182 0096 24B2 sxth r4, r4
2183 .LVL202:
477:../libOLED/src/displayclass.cpp **** x += ix;
2184 .loc 1 477 7 is_stmt 1 discriminator 2 view .LVU628
2185 0098 09B2 sxth r1, r1
2186 .LVL203:
464:../libOLED/src/displayclass.cpp **** {
2187 .loc 1 464 5 discriminator 2 view .LVU629
464:../libOLED/src/displayclass.cpp **** {
2188 .loc 1 464 5 is_stmt 0 discriminator 2 view .LVU630
2189 009a 0BF1010B add fp, fp, #1
2190 .LVL204:
464:../libOLED/src/displayclass.cpp **** {
2191 .loc 1 464 5 discriminator 2 view .LVU631
2192 009e DEE7 b .L91
2193 .LVL205:
2194 .L96:
464:../libOLED/src/displayclass.cpp **** {
2195 .loc 1 464 5 discriminator 2 view .LVU632
2196 00a0 4FF0010A mov r10, #1
2197 00a4 C2E7 b .L84
2198 .LVL206:
2199 .L97:
464:../libOLED/src/displayclass.cpp **** {
2200 .loc 1 464 5 discriminator 2 view .LVU633
2201 00a6 0123 movs r3, #1
2202 .LVL207:
464:../libOLED/src/displayclass.cpp **** {
2203 .loc 1 464 5 discriminator 2 view .LVU634
2204 00a8 C8E7 b .L106
2205 .LVL208:
2206 .L86:
478:../libOLED/src/displayclass.cpp **** }
479:../libOLED/src/displayclass.cpp **** }
480:../libOLED/src/displayclass.cpp ****
481:../libOLED/src/displayclass.cpp **** else // dy is the major axis
482:../libOLED/src/displayclass.cpp **** {
483:../libOLED/src/displayclass.cpp **** // initialize the error term
484:../libOLED/src/displayclass.cpp **** err = dx2 - dy;
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 54
2207 .loc 1 484 5 is_stmt 1 view .LVU635
420:../libOLED/src/displayclass.cpp ****
2208 .loc 1 420 10 is_stmt 0 view .LVU636
2209 00aa 4E46 mov r6, r9
2210 .LVL209:
2211 .loc 1 484 9 view .LVU637
2212 00ac 4FF0000B mov fp, #0
2213 .loc 1 484 15 view .LVU638
2214 00b0 FC1A subs r4, r7, r3
2215 .LVL210:
2216 .loc 1 484 9 view .LVU639
2217 00b2 24B2 sxth r4, r4
2218 .LVL211:
485:../libOLED/src/displayclass.cpp ****
486:../libOLED/src/displayclass.cpp **** for (i = 0; i <= dy; i++)
2219 .loc 1 486 5 is_stmt 1 view .LVU640
2220 .L95:
2221 .loc 1 486 19 discriminator 1 view .LVU641
2222 .loc 1 486 17 is_stmt 0 discriminator 1 view .LVU642
2223 00b4 1FFA8BF3 uxth r3, fp
2224 .loc 1 486 19 discriminator 1 view .LVU643
2225 00b8 AB42 cmp r3, r5
2226 00ba 1FDC bgt .L83
487:../libOLED/src/displayclass.cpp **** {
488:../libOLED/src/displayclass.cpp **** // draw pattern based on using pattern as a sequential bit mask.
489:../libOLED/src/displayclass.cpp **** if (patt & 1)
2227 .loc 1 489 7 is_stmt 1 view .LVU644
2228 00bc F307 lsls r3, r6, #31
2229 00be 08D5 bpl .L92
490:../libOLED/src/displayclass.cpp **** drawPixel(x, y, 1);
2230 .loc 1 490 9 view .LVU645
2231 .loc 1 490 18 is_stmt 0 view .LVU646
2232 00c0 0123 movs r3, #1
2233 00c2 CDE90212 strd r1, r2, [sp, #8]
2234 00c6 0190 str r0, [sp, #4]
2235 00c8 FFF7FEFF bl _ZN9display_t9drawPixelEssb
2236 .LVL212:
2237 .loc 1 490 18 view .LVU647
2238 00cc DDE90212 ldrd r1, r2, [sp, #8]
2239 00d0 0198 ldr r0, [sp, #4]
2240 .L92:
491:../libOLED/src/displayclass.cpp **** patt = (patt <= 1) ? pattern : patt >> 1;
2241 .loc 1 491 7 is_stmt 1 view .LVU648
2242 .loc 1 491 12 is_stmt 0 view .LVU649
2243 00d2 012E cmp r6, #1
2244 00d4 D4BF ite le
2245 00d6 4E46 movle r6, r9
2246 .LVL213:
2247 .loc 1 491 12 view .LVU650
2248 00d8 7610 asrgt r6, r6, #1
2249 .LVL214:
492:../libOLED/src/displayclass.cpp **** if (err >= 0)
2250 .loc 1 492 7 is_stmt 1 view .LVU651
2251 00da 002C cmp r4, #0
493:../libOLED/src/displayclass.cpp **** {
494:../libOLED/src/displayclass.cpp **** err -= dy2;
2252 .loc 1 494 9 view .LVU652
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 55
2253 .loc 1 494 13 is_stmt 0 view .LVU653
2254 00dc A8BF it ge
2255 00de A4EB0804 subge r4, r4, r8
2256 .LVL215:
2257 .loc 1 494 13 view .LVU654
2258 00e2 009B ldr r3, [sp]
2259 00e4 A4BF itt ge
2260 00e6 24B2 sxthge r4, r4
2261 .LVL216:
495:../libOLED/src/displayclass.cpp **** x += ix;
2262 .loc 1 495 9 is_stmt 1 view .LVU655
2263 .loc 1 495 11 is_stmt 0 view .LVU656
2264 00e8 5144 addge r1, r1, r10
496:../libOLED/src/displayclass.cpp **** }
497:../libOLED/src/displayclass.cpp **** err += dx2;
2265 .loc 1 497 11 view .LVU657
2266 00ea 3C44 add r4, r4, r7
2267 .LVL217:
2268 .loc 1 497 11 view .LVU658
2269 00ec 1A44 add r2, r2, r3
495:../libOLED/src/displayclass.cpp **** x += ix;
2270 .loc 1 495 11 view .LVU659
2271 00ee A8BF it ge
2272 00f0 09B2 sxthge r1, r1
2273 .LVL218:
2274 .loc 1 497 7 is_stmt 1 view .LVU660
2275 .loc 1 497 11 is_stmt 0 view .LVU661
2276 00f2 24B2 sxth r4, r4
2277 .LVL219:
498:../libOLED/src/displayclass.cpp **** y += iy;
2278 .loc 1 498 7 is_stmt 1 view .LVU662
2279 00f4 12B2 sxth r2, r2
2280 .LVL220:
486:../libOLED/src/displayclass.cpp **** {
2281 .loc 1 486 5 view .LVU663
486:../libOLED/src/displayclass.cpp **** {
2282 .loc 1 486 5 is_stmt 0 view .LVU664
2283 00f6 0BF1010B add fp, fp, #1
2284 .LVL221:
486:../libOLED/src/displayclass.cpp **** {
2285 .loc 1 486 5 view .LVU665
2286 00fa DBE7 b .L95
2287 .LVL222:
2288 .L83:
499:../libOLED/src/displayclass.cpp **** }
500:../libOLED/src/displayclass.cpp **** }
501:../libOLED/src/displayclass.cpp **** }
2289 .loc 1 501 1 view .LVU666
2290 00fc 05B0 add sp, sp, #20
2291 .LCFI22:
2292 .cfi_def_cfa_offset 36
2293 .LVL223:
2294 .loc 1 501 1 view .LVU667
2295 @ sp needed
2296 00fe BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2297 .loc 1 501 1 view .LVU668
2298 .cfi_endproc
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 56
2299 .LFE60:
2301 .global _ZTV9display_t
2302 .section .rodata._ZTV9display_t,"a"
2303 .align 2
2304 .set .LANCHOR0,. + 0
2307 _ZTV9display_t:
2308 0000 00000000 .word 0
2309 0004 00000000 .word 0
2310 0008 00000000 .word 0
2311 000c 00000000 .word 0
2312 0010 00000000 .word __cxa_pure_virtual
2313 0014 00000000 .word __cxa_pure_virtual
2314 0018 00000000 .word __cxa_pure_virtual
2315 001c 00000000 .word __cxa_pure_virtual
2316 .text
2317 .Letext0:
2318 .file 3 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2319 .file 4 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2320 .file 5 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2321 .file 6 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2322 .file 7 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2323 .file 8 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2324 .file 9 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
2325 .file 10 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\lib\\gcc\\arm-n
2326 .file 11 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\
2327 .file 12 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\
2328 .file 13 "../libOLED/inc/libOLED/fontclass.H"
2329 .file 14 "<built-in>"
ARM GAS C:\Users\mike\AppData\Local\Temp\ccLRcSza.s page 57
DEFINED SYMBOLS
*ABS*:00000000 displayclass.cpp
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:16 .text._ZdlPvj:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:24 .text._ZdlPvj:00000000 _ZdlPvj
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:41 .text.__cxa_pure_virtual:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:48 .text.__cxa_pure_virtual:00000000 __cxa_pure_virtual
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:64 .text._ZN9display_tC2EiiiPh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:71 .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC2EiiiPh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:110 .text._ZN9display_tC2EiiiPh:00000020 $d
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:71 .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC1EiiiPh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:117 .text._ZN9display_tD0Ev:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124 .text._ZN9display_tD0Ev:00000000 _ZN9display_tD0Ev
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124 .text._ZN9display_tD0Ev:00000000 _ZN9display_tD1Ev
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124 .text._ZN9display_tD0Ev:00000000 _ZN9display_tD2Ev
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:149 .text._ZN9display_t5resetEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:156 .text._ZN9display_t5resetEv:00000000 _ZN9display_t5resetEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:176 .text._ZN9display_t11getRotationEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:183 .text._ZN9display_t11getRotationEv:00000000 _ZN9display_t11getRotationEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:201 .text._ZN9display_t5widthEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:208 .text._ZN9display_t5widthEv:00000000 _ZN9display_t5widthEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:268 .text._ZN9display_t6heightEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:275 .text._ZN9display_t6heightEv:00000000 _ZN9display_t6heightEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:335 .text._ZN9display_t9drawPixelEssb:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:342 .text._ZN9display_t9drawPixelEssb:00000000 _ZN9display_t9drawPixelEssb
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:518 .text._ZN9display_t13invertDisplayEh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:525 .text._ZN9display_t13invertDisplayEh:00000000 _ZN9display_t13invertDisplayEh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:582 .text._ZN9display_t16startscrollrightEhh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:589 .text._ZN9display_t16startscrollrightEhh:00000000 _ZN9display_t16startscrollrightEhh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:705 .text._ZN9display_t15startscrollleftEhh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:712 .text._ZN9display_t15startscrollleftEhh:00000000 _ZN9display_t15startscrollleftEhh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:828 .text._ZN9display_t20startscrolldiagrightEhh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:835 .text._ZN9display_t20startscrolldiagrightEhh:00000000 _ZN9display_t20startscrolldiagrightEhh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:969 .text._ZN9display_t19startscrolldiagleftEhh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:976 .text._ZN9display_t19startscrolldiagleftEhh:00000000 _ZN9display_t19startscrolldiagleftEhh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1110 .text._ZN9display_t10stopscrollEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1117 .text._ZN9display_t10stopscrollEv:00000000 _ZN9display_t10stopscrollEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1162 .text._ZN9display_t3dimEh:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1169 .text._ZN9display_t3dimEh:00000000 _ZN9display_t3dimEh
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1230 .text._ZN9display_t7displayEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1237 .text._ZN9display_t7displayEv:00000000 _ZN9display_t7displayEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1424 .text._ZN9display_t12clearDisplayE8colour_t:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1431 .text._ZN9display_t12clearDisplayE8colour_t:00000000 _ZN9display_t12clearDisplayE8colour_t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1557 .text._ZN9display_t4initEv:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1564 .text._ZN9display_t4initEv:00000000 _ZN9display_t4initEv
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1842 .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1849 .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 _ZN9display_t13drawRectangleEssss8colour_t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1968 .text._ZN9display_t8drawLineEssss8colour_ta:00000000 $t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1975 .text._ZN9display_t8drawLineEssss8colour_ta:00000000 _ZN9display_t8drawLineEssss8colour_ta
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:2307 .rodata._ZTV9display_t:00000000 _ZTV9display_t
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:2303 .rodata._ZTV9display_t:00000000 $d
UNDEFINED SYMBOLS
memset