2630 lines
106 KiB
Plaintext
2630 lines
106 KiB
Plaintext
ARM GAS /tmp/cczsHaNw.s page 1
|
||
|
||
|
||
1 .cpu cortex-m4
|
||
2 .arch armv7e-m
|
||
3 .fpu fpv4-sp-d16
|
||
4 .eabi_attribute 27, 1
|
||
5 .eabi_attribute 28, 1
|
||
6 .eabi_attribute 20, 1
|
||
7 .eabi_attribute 21, 1
|
||
8 .eabi_attribute 23, 3
|
||
9 .eabi_attribute 24, 1
|
||
10 .eabi_attribute 25, 1
|
||
11 .eabi_attribute 26, 1
|
||
12 .eabi_attribute 30, 6
|
||
13 .eabi_attribute 34, 1
|
||
14 .eabi_attribute 18, 4
|
||
15 .file "ADBMS_LL_Driver.c"
|
||
16 .text
|
||
17 .Ltext0:
|
||
18 .cfi_sections .debug_frame
|
||
19 .file 1 "Core/Src/ADBMS_LL_Driver.c"
|
||
20 .global adbmsspi
|
||
21 .section .bss.adbmsspi,"aw",%nobits
|
||
22 .align 2
|
||
25 adbmsspi:
|
||
26 0000 00000000 .space 4
|
||
27 .section .text.adbmsDriverInit,"ax",%progbits
|
||
28 .align 1
|
||
29 .global adbmsDriverInit
|
||
30 .syntax unified
|
||
31 .thumb
|
||
32 .thumb_func
|
||
34 adbmsDriverInit:
|
||
35 .LFB130:
|
||
1:Core/Src/ADBMS_LL_Driver.c **** /*
|
||
2:Core/Src/ADBMS_LL_Driver.c **** * ADBMS_LL_Driver.c
|
||
3:Core/Src/ADBMS_LL_Driver.c **** *
|
||
4:Core/Src/ADBMS_LL_Driver.c **** * Created on: 05.06.2022
|
||
5:Core/Src/ADBMS_LL_Driver.c **** * Author: max
|
||
6:Core/Src/ADBMS_LL_Driver.c **** */
|
||
7:Core/Src/ADBMS_LL_Driver.c ****
|
||
8:Core/Src/ADBMS_LL_Driver.c **** #include "ADBMS_LL_Driver.h"
|
||
9:Core/Src/ADBMS_LL_Driver.c ****
|
||
10:Core/Src/ADBMS_LL_Driver.c **** #define INITIAL_COMMAND_PEC 0x0010
|
||
11:Core/Src/ADBMS_LL_Driver.c **** #define INITIAL_DATA_PEC 0x0010
|
||
12:Core/Src/ADBMS_LL_Driver.c **** #define ADBMS_SPI_TIMEOUT 100 // Timeout in ms
|
||
13:Core/Src/ADBMS_LL_Driver.c **** #warning ask about the timeout value
|
||
14:Core/Src/ADBMS_LL_Driver.c ****
|
||
15:Core/Src/ADBMS_LL_Driver.c **** SPI_HandleTypeDef* adbmsspi;
|
||
16:Core/Src/ADBMS_LL_Driver.c ****
|
||
17:Core/Src/ADBMS_LL_Driver.c **** uint8 adbmsDriverInit(SPI_HandleTypeDef* hspi) {
|
||
36 .loc 1 17 48
|
||
37 .cfi_startproc
|
||
38 @ args = 0, pretend = 0, frame = 8
|
||
39 @ frame_needed = 1, uses_anonymous_args = 0
|
||
40 0000 80B5 push {r7, lr}
|
||
41 .cfi_def_cfa_offset 8
|
||
42 .cfi_offset 7, -8
|
||
43 .cfi_offset 14, -4
|
||
ARM GAS /tmp/cczsHaNw.s page 2
|
||
|
||
|
||
44 0002 82B0 sub sp, sp, #8
|
||
45 .cfi_def_cfa_offset 16
|
||
46 0004 00AF add r7, sp, #0
|
||
47 .cfi_def_cfa_register 7
|
||
48 0006 7860 str r0, [r7, #4]
|
||
18:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSLow();
|
||
49 .loc 1 18 3
|
||
50 0008 FFF7FEFF bl mcuAdbmsCSLow
|
||
19:Core/Src/ADBMS_LL_Driver.c **** HAL_Delay(1);
|
||
51 .loc 1 19 3
|
||
52 000c 0120 movs r0, #1
|
||
53 000e FFF7FEFF bl HAL_Delay
|
||
20:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSHigh();
|
||
54 .loc 1 20 3
|
||
55 0012 FFF7FEFF bl mcuAdbmsCSHigh
|
||
21:Core/Src/ADBMS_LL_Driver.c **** adbmsspi = hspi;
|
||
56 .loc 1 21 12
|
||
57 0016 044A ldr r2, .L3
|
||
58 0018 7B68 ldr r3, [r7, #4]
|
||
59 001a 1360 str r3, [r2]
|
||
22:Core/Src/ADBMS_LL_Driver.c **** return 0;
|
||
60 .loc 1 22 10
|
||
61 001c 0023 movs r3, #0
|
||
23:Core/Src/ADBMS_LL_Driver.c **** }
|
||
62 .loc 1 23 1
|
||
63 001e 1846 mov r0, r3
|
||
64 0020 0837 adds r7, r7, #8
|
||
65 .cfi_def_cfa_offset 8
|
||
66 0022 BD46 mov sp, r7
|
||
67 .cfi_def_cfa_register 13
|
||
68 @ sp needed
|
||
69 0024 80BD pop {r7, pc}
|
||
70 .L4:
|
||
71 0026 00BF .align 2
|
||
72 .L3:
|
||
73 0028 00000000 .word adbmsspi
|
||
74 .cfi_endproc
|
||
75 .LFE130:
|
||
77 .section .text.calculateCommandPEC,"ax",%progbits
|
||
78 .align 1
|
||
79 .global calculateCommandPEC
|
||
80 .syntax unified
|
||
81 .thumb
|
||
82 .thumb_func
|
||
84 calculateCommandPEC:
|
||
85 .LFB131:
|
||
24:Core/Src/ADBMS_LL_Driver.c ****
|
||
25:Core/Src/ADBMS_LL_Driver.c **** //command PEC calculation
|
||
26:Core/Src/ADBMS_LL_Driver.c **** //CRC-15
|
||
27:Core/Src/ADBMS_LL_Driver.c **** //x^15 + x^14 + x^10 + x^8 + x^7 + x^4 + x^3 + 1
|
||
28:Core/Src/ADBMS_LL_Driver.c ****
|
||
29:Core/Src/ADBMS_LL_Driver.c **** uint8 calculateCommandPEC(uint8_t* data, uint8_t datalen) {
|
||
86 .loc 1 29 59
|
||
87 .cfi_startproc
|
||
88 @ args = 0, pretend = 0, frame = 24
|
||
89 @ frame_needed = 1, uses_anonymous_args = 0
|
||
90 0000 80B5 push {r7, lr}
|
||
ARM GAS /tmp/cczsHaNw.s page 3
|
||
|
||
|
||
91 .cfi_def_cfa_offset 8
|
||
92 .cfi_offset 7, -8
|
||
93 .cfi_offset 14, -4
|
||
94 0002 86B0 sub sp, sp, #24
|
||
95 .cfi_def_cfa_offset 32
|
||
96 0004 00AF add r7, sp, #0
|
||
97 .cfi_def_cfa_register 7
|
||
98 0006 7860 str r0, [r7, #4]
|
||
99 0008 0B46 mov r3, r1
|
||
100 000a FB70 strb r3, [r7, #3]
|
||
30:Core/Src/ADBMS_LL_Driver.c **** uint16 currentpec = INITIAL_COMMAND_PEC;
|
||
101 .loc 1 30 10
|
||
102 000c 1023 movs r3, #16
|
||
103 000e FB82 strh r3, [r7, #22] @ movhi
|
||
31:Core/Src/ADBMS_LL_Driver.c **** if (datalen >= 3) {
|
||
104 .loc 1 31 6
|
||
105 0010 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
106 0012 022B cmp r3, #2
|
||
107 0014 38D9 bls .L6
|
||
108 .LBB2:
|
||
32:Core/Src/ADBMS_LL_Driver.c **** for (int i = 0; i < (datalen - 2); i++) {
|
||
109 .loc 1 32 14
|
||
110 0016 0023 movs r3, #0
|
||
111 0018 3B61 str r3, [r7, #16]
|
||
112 .loc 1 32 5
|
||
113 001a 1CE0 b .L7
|
||
114 .L10:
|
||
115 .LBB3:
|
||
33:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
116 .loc 1 33 16
|
||
117 001c 0023 movs r3, #0
|
||
118 001e FB60 str r3, [r7, #12]
|
||
119 .loc 1 33 7
|
||
120 0020 13E0 b .L8
|
||
121 .L9:
|
||
122 .LBB4:
|
||
34:Core/Src/ADBMS_LL_Driver.c **** const uint8 din = data[i] << (n);
|
||
123 .loc 1 34 33
|
||
124 0022 3B69 ldr r3, [r7, #16]
|
||
125 0024 7A68 ldr r2, [r7, #4]
|
||
126 0026 1344 add r3, r3, r2
|
||
127 0028 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
128 002a 1A46 mov r2, r3
|
||
129 .loc 1 34 37
|
||
130 002c FB68 ldr r3, [r7, #12]
|
||
131 002e 02FA03F3 lsl r3, r2, r3
|
||
132 .loc 1 34 23
|
||
133 0032 FB72 strb r3, [r7, #11]
|
||
35:Core/Src/ADBMS_LL_Driver.c **** currentpec = updateCommandPEC(currentpec, din);
|
||
134 .loc 1 35 22
|
||
135 0034 FA7A ldrb r2, [r7, #11] @ zero_extendqisi2
|
||
136 0036 FB8A ldrh r3, [r7, #22]
|
||
137 0038 1146 mov r1, r2
|
||
138 003a 1846 mov r0, r3
|
||
139 003c FFF7FEFF bl updateCommandPEC
|
||
140 0040 0346 mov r3, r0
|
||
141 0042 FB82 strh r3, [r7, #22] @ movhi
|
||
ARM GAS /tmp/cczsHaNw.s page 4
|
||
|
||
|
||
142 .LBE4:
|
||
33:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
143 .loc 1 33 31 discriminator 3
|
||
144 0044 FB68 ldr r3, [r7, #12]
|
||
145 0046 0133 adds r3, r3, #1
|
||
146 0048 FB60 str r3, [r7, #12]
|
||
147 .L8:
|
||
33:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
148 .loc 1 33 25 discriminator 1
|
||
149 004a FB68 ldr r3, [r7, #12]
|
||
150 004c 072B cmp r3, #7
|
||
151 004e E8DD ble .L9
|
||
152 .LBE3:
|
||
32:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
153 .loc 1 32 41 discriminator 2
|
||
154 0050 3B69 ldr r3, [r7, #16]
|
||
155 0052 0133 adds r3, r3, #1
|
||
156 0054 3B61 str r3, [r7, #16]
|
||
157 .L7:
|
||
32:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
158 .loc 1 32 34 discriminator 1
|
||
159 0056 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
160 0058 023B subs r3, r3, #2
|
||
32:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
161 .loc 1 32 23 discriminator 1
|
||
162 005a 3A69 ldr r2, [r7, #16]
|
||
163 005c 9A42 cmp r2, r3
|
||
164 005e DDDB blt .L10
|
||
165 .LBE2:
|
||
36:Core/Src/ADBMS_LL_Driver.c **** }
|
||
37:Core/Src/ADBMS_LL_Driver.c **** }
|
||
38:Core/Src/ADBMS_LL_Driver.c ****
|
||
39:Core/Src/ADBMS_LL_Driver.c **** data[datalen - 2] = (currentpec >> 7) & 0xFF;
|
||
166 .loc 1 39 23
|
||
167 0060 FB8A ldrh r3, [r7, #22]
|
||
168 0062 DB09 lsrs r3, r3, #7
|
||
169 0064 99B2 uxth r1, r3
|
||
170 .loc 1 39 9
|
||
171 0066 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
172 0068 023B subs r3, r3, #2
|
||
173 006a 7A68 ldr r2, [r7, #4]
|
||
174 006c 1344 add r3, r3, r2
|
||
175 .loc 1 39 23
|
||
176 006e CAB2 uxtb r2, r1
|
||
177 0070 1A70 strb r2, [r3]
|
||
40:Core/Src/ADBMS_LL_Driver.c **** data[datalen - 1] = (currentpec << 1) & 0xFF;
|
||
178 .loc 1 40 23
|
||
179 0072 FB8A ldrh r3, [r7, #22] @ movhi
|
||
180 0074 DAB2 uxtb r2, r3
|
||
181 .loc 1 40 9
|
||
182 0076 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
183 0078 013B subs r3, r3, #1
|
||
184 007a 7968 ldr r1, [r7, #4]
|
||
185 007c 0B44 add r3, r3, r1
|
||
186 .loc 1 40 23
|
||
187 007e 5200 lsls r2, r2, #1
|
||
188 0080 D2B2 uxtb r2, r2
|
||
ARM GAS /tmp/cczsHaNw.s page 5
|
||
|
||
|
||
189 0082 1A70 strb r2, [r3]
|
||
41:Core/Src/ADBMS_LL_Driver.c **** return 0;
|
||
190 .loc 1 41 12
|
||
191 0084 0023 movs r3, #0
|
||
192 0086 00E0 b .L11
|
||
193 .L6:
|
||
42:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
43:Core/Src/ADBMS_LL_Driver.c **** return 1;
|
||
194 .loc 1 43 12
|
||
195 0088 0123 movs r3, #1
|
||
196 .L11:
|
||
44:Core/Src/ADBMS_LL_Driver.c **** }
|
||
45:Core/Src/ADBMS_LL_Driver.c **** }
|
||
197 .loc 1 45 1
|
||
198 008a 1846 mov r0, r3
|
||
199 008c 1837 adds r7, r7, #24
|
||
200 .cfi_def_cfa_offset 8
|
||
201 008e BD46 mov sp, r7
|
||
202 .cfi_def_cfa_register 13
|
||
203 @ sp needed
|
||
204 0090 80BD pop {r7, pc}
|
||
205 .cfi_endproc
|
||
206 .LFE131:
|
||
208 .section .text.checkCommandPEC,"ax",%progbits
|
||
209 .align 1
|
||
210 .global checkCommandPEC
|
||
211 .syntax unified
|
||
212 .thumb
|
||
213 .thumb_func
|
||
215 checkCommandPEC:
|
||
216 .LFB132:
|
||
46:Core/Src/ADBMS_LL_Driver.c ****
|
||
47:Core/Src/ADBMS_LL_Driver.c **** uint8 checkCommandPEC(uint8* data, uint8 datalen) {
|
||
217 .loc 1 47 51
|
||
218 .cfi_startproc
|
||
219 @ args = 0, pretend = 0, frame = 24
|
||
220 @ frame_needed = 1, uses_anonymous_args = 0
|
||
221 0000 80B5 push {r7, lr}
|
||
222 .cfi_def_cfa_offset 8
|
||
223 .cfi_offset 7, -8
|
||
224 .cfi_offset 14, -4
|
||
225 0002 86B0 sub sp, sp, #24
|
||
226 .cfi_def_cfa_offset 32
|
||
227 0004 00AF add r7, sp, #0
|
||
228 .cfi_def_cfa_register 7
|
||
229 0006 7860 str r0, [r7, #4]
|
||
230 0008 0B46 mov r3, r1
|
||
231 000a FB70 strb r3, [r7, #3]
|
||
48:Core/Src/ADBMS_LL_Driver.c **** if (datalen <= 3) {
|
||
232 .loc 1 48 6
|
||
233 000c FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
234 000e 032B cmp r3, #3
|
||
235 0010 01D8 bhi .L13
|
||
49:Core/Src/ADBMS_LL_Driver.c **** return 255;
|
||
236 .loc 1 49 12
|
||
237 0012 FF23 movs r3, #255
|
||
238 0014 41E0 b .L14
|
||
ARM GAS /tmp/cczsHaNw.s page 6
|
||
|
||
|
||
239 .L13:
|
||
50:Core/Src/ADBMS_LL_Driver.c **** }
|
||
51:Core/Src/ADBMS_LL_Driver.c ****
|
||
52:Core/Src/ADBMS_LL_Driver.c **** uint16 currentpec = INITIAL_COMMAND_PEC;
|
||
240 .loc 1 52 10
|
||
241 0016 1023 movs r3, #16
|
||
242 0018 FB82 strh r3, [r7, #22] @ movhi
|
||
243 .LBB5:
|
||
53:Core/Src/ADBMS_LL_Driver.c ****
|
||
54:Core/Src/ADBMS_LL_Driver.c **** for (int i = 0; i < (datalen - 2); i++) {
|
||
244 .loc 1 54 12
|
||
245 001a 0023 movs r3, #0
|
||
246 001c 3B61 str r3, [r7, #16]
|
||
247 .loc 1 54 3
|
||
248 001e 1CE0 b .L15
|
||
249 .L18:
|
||
250 .LBB6:
|
||
55:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
251 .loc 1 55 14
|
||
252 0020 0023 movs r3, #0
|
||
253 0022 FB60 str r3, [r7, #12]
|
||
254 .loc 1 55 5
|
||
255 0024 13E0 b .L16
|
||
256 .L17:
|
||
257 .LBB7:
|
||
56:Core/Src/ADBMS_LL_Driver.c **** const uint8 din = data[i] << (n);
|
||
258 .loc 1 56 31
|
||
259 0026 3B69 ldr r3, [r7, #16]
|
||
260 0028 7A68 ldr r2, [r7, #4]
|
||
261 002a 1344 add r3, r3, r2
|
||
262 002c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
263 002e 1A46 mov r2, r3
|
||
264 .loc 1 56 35
|
||
265 0030 FB68 ldr r3, [r7, #12]
|
||
266 0032 02FA03F3 lsl r3, r2, r3
|
||
267 .loc 1 56 21
|
||
268 0036 7B72 strb r3, [r7, #9]
|
||
57:Core/Src/ADBMS_LL_Driver.c **** currentpec = updateCommandPEC(currentpec, din);
|
||
269 .loc 1 57 20
|
||
270 0038 7A7A ldrb r2, [r7, #9] @ zero_extendqisi2
|
||
271 003a FB8A ldrh r3, [r7, #22]
|
||
272 003c 1146 mov r1, r2
|
||
273 003e 1846 mov r0, r3
|
||
274 0040 FFF7FEFF bl updateCommandPEC
|
||
275 0044 0346 mov r3, r0
|
||
276 0046 FB82 strh r3, [r7, #22] @ movhi
|
||
277 .LBE7:
|
||
55:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
278 .loc 1 55 29 discriminator 3
|
||
279 0048 FB68 ldr r3, [r7, #12]
|
||
280 004a 0133 adds r3, r3, #1
|
||
281 004c FB60 str r3, [r7, #12]
|
||
282 .L16:
|
||
55:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
283 .loc 1 55 23 discriminator 1
|
||
284 004e FB68 ldr r3, [r7, #12]
|
||
285 0050 072B cmp r3, #7
|
||
ARM GAS /tmp/cczsHaNw.s page 7
|
||
|
||
|
||
286 0052 E8DD ble .L17
|
||
287 .LBE6:
|
||
54:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
288 .loc 1 54 39 discriminator 2
|
||
289 0054 3B69 ldr r3, [r7, #16]
|
||
290 0056 0133 adds r3, r3, #1
|
||
291 0058 3B61 str r3, [r7, #16]
|
||
292 .L15:
|
||
54:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
293 .loc 1 54 32 discriminator 1
|
||
294 005a FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
295 005c 023B subs r3, r3, #2
|
||
54:Core/Src/ADBMS_LL_Driver.c **** for (int n = 0; n < 8; n++) {
|
||
296 .loc 1 54 21 discriminator 1
|
||
297 005e 3A69 ldr r2, [r7, #16]
|
||
298 0060 9A42 cmp r2, r3
|
||
299 0062 DDDB blt .L18
|
||
300 .LBE5:
|
||
58:Core/Src/ADBMS_LL_Driver.c **** }
|
||
59:Core/Src/ADBMS_LL_Driver.c **** }
|
||
60:Core/Src/ADBMS_LL_Driver.c ****
|
||
61:Core/Src/ADBMS_LL_Driver.c **** const uint8 pechigh = (currentpec >> 7) & 0xFF;
|
||
301 .loc 1 61 15
|
||
302 0064 FB8A ldrh r3, [r7, #22]
|
||
303 0066 DB09 lsrs r3, r3, #7
|
||
304 0068 9BB2 uxth r3, r3
|
||
305 006a FB72 strb r3, [r7, #11]
|
||
62:Core/Src/ADBMS_LL_Driver.c **** const uint8 peclow = (currentpec << 1) & 0xFF;
|
||
306 .loc 1 62 15
|
||
307 006c FB8A ldrh r3, [r7, #22] @ movhi
|
||
308 006e DBB2 uxtb r3, r3
|
||
309 0070 5B00 lsls r3, r3, #1
|
||
310 0072 BB72 strb r3, [r7, #10]
|
||
63:Core/Src/ADBMS_LL_Driver.c ****
|
||
64:Core/Src/ADBMS_LL_Driver.c **** if ((pechigh == data[datalen - 2]) && (peclow == data[datalen - 1])) {
|
||
311 .loc 1 64 23
|
||
312 0074 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
313 0076 023B subs r3, r3, #2
|
||
314 0078 7A68 ldr r2, [r7, #4]
|
||
315 007a 1344 add r3, r3, r2
|
||
316 007c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
317 .loc 1 64 6
|
||
318 007e FA7A ldrb r2, [r7, #11] @ zero_extendqisi2
|
||
319 0080 9A42 cmp r2, r3
|
||
320 0082 09D1 bne .L19
|
||
321 .loc 1 64 56 discriminator 1
|
||
322 0084 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
323 0086 013B subs r3, r3, #1
|
||
324 0088 7A68 ldr r2, [r7, #4]
|
||
325 008a 1344 add r3, r3, r2
|
||
326 008c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
327 .loc 1 64 38 discriminator 1
|
||
328 008e BA7A ldrb r2, [r7, #10] @ zero_extendqisi2
|
||
329 0090 9A42 cmp r2, r3
|
||
330 0092 01D1 bne .L19
|
||
65:Core/Src/ADBMS_LL_Driver.c **** return 0;
|
||
331 .loc 1 65 12
|
||
ARM GAS /tmp/cczsHaNw.s page 8
|
||
|
||
|
||
332 0094 0023 movs r3, #0
|
||
333 0096 00E0 b .L14
|
||
334 .L19:
|
||
66:Core/Src/ADBMS_LL_Driver.c **** }
|
||
67:Core/Src/ADBMS_LL_Driver.c ****
|
||
68:Core/Src/ADBMS_LL_Driver.c **** return 1;
|
||
335 .loc 1 68 10
|
||
336 0098 0123 movs r3, #1
|
||
337 .L14:
|
||
69:Core/Src/ADBMS_LL_Driver.c **** }
|
||
338 .loc 1 69 1
|
||
339 009a 1846 mov r0, r3
|
||
340 009c 1837 adds r7, r7, #24
|
||
341 .cfi_def_cfa_offset 8
|
||
342 009e BD46 mov sp, r7
|
||
343 .cfi_def_cfa_register 13
|
||
344 @ sp needed
|
||
345 00a0 80BD pop {r7, pc}
|
||
346 .cfi_endproc
|
||
347 .LFE132:
|
||
349 .section .text.updateCommandPEC,"ax",%progbits
|
||
350 .align 1
|
||
351 .global updateCommandPEC
|
||
352 .syntax unified
|
||
353 .thumb
|
||
354 .thumb_func
|
||
356 updateCommandPEC:
|
||
357 .LFB133:
|
||
70:Core/Src/ADBMS_LL_Driver.c ****
|
||
71:Core/Src/ADBMS_LL_Driver.c **** uint16 updateCommandPEC(uint16 currentPEC, uint8 din) {
|
||
358 .loc 1 71 55
|
||
359 .cfi_startproc
|
||
360 @ args = 0, pretend = 0, frame = 24
|
||
361 @ frame_needed = 1, uses_anonymous_args = 0
|
||
362 @ link register save eliminated.
|
||
363 0000 80B4 push {r7}
|
||
364 .cfi_def_cfa_offset 4
|
||
365 .cfi_offset 7, -4
|
||
366 0002 87B0 sub sp, sp, #28
|
||
367 .cfi_def_cfa_offset 32
|
||
368 0004 00AF add r7, sp, #0
|
||
369 .cfi_def_cfa_register 7
|
||
370 0006 0346 mov r3, r0
|
||
371 0008 0A46 mov r2, r1
|
||
372 000a FB80 strh r3, [r7, #6] @ movhi
|
||
373 000c 1346 mov r3, r2
|
||
374 000e 7B71 strb r3, [r7, #5]
|
||
72:Core/Src/ADBMS_LL_Driver.c **** din = (din >> 7) & 0x01;
|
||
375 .loc 1 72 7
|
||
376 0010 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2
|
||
377 0012 DB09 lsrs r3, r3, #7
|
||
378 0014 7B71 strb r3, [r7, #5]
|
||
73:Core/Src/ADBMS_LL_Driver.c **** const uint8 in0 = din ^ ((currentPEC >> 14) & 0x01);
|
||
379 .loc 1 73 47
|
||
380 0016 FB88 ldrh r3, [r7, #6]
|
||
381 0018 9B0B lsrs r3, r3, #14
|
||
382 001a 9BB2 uxth r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 9
|
||
|
||
|
||
383 001c 5BB2 sxtb r3, r3
|
||
384 001e 03F00103 and r3, r3, #1
|
||
385 0022 5AB2 sxtb r2, r3
|
||
386 .loc 1 73 25
|
||
387 0024 97F90530 ldrsb r3, [r7, #5]
|
||
388 0028 5340 eors r3, r3, r2
|
||
389 002a 5BB2 sxtb r3, r3
|
||
390 .loc 1 73 15
|
||
391 002c FB75 strb r3, [r7, #23]
|
||
74:Core/Src/ADBMS_LL_Driver.c **** const uint8 in3 = in0 ^ ((currentPEC >> 2) & 0x01);
|
||
392 .loc 1 74 46
|
||
393 002e FB88 ldrh r3, [r7, #6]
|
||
394 0030 9B08 lsrs r3, r3, #2
|
||
395 0032 9BB2 uxth r3, r3
|
||
396 0034 5BB2 sxtb r3, r3
|
||
397 0036 03F00103 and r3, r3, #1
|
||
398 003a 5AB2 sxtb r2, r3
|
||
399 .loc 1 74 25
|
||
400 003c 97F91730 ldrsb r3, [r7, #23]
|
||
401 0040 5340 eors r3, r3, r2
|
||
402 0042 5BB2 sxtb r3, r3
|
||
403 .loc 1 74 15
|
||
404 0044 BB75 strb r3, [r7, #22]
|
||
75:Core/Src/ADBMS_LL_Driver.c **** const uint8 in4 = in0 ^ ((currentPEC >> 3) & 0x01);
|
||
405 .loc 1 75 46
|
||
406 0046 FB88 ldrh r3, [r7, #6]
|
||
407 0048 DB08 lsrs r3, r3, #3
|
||
408 004a 9BB2 uxth r3, r3
|
||
409 004c 5BB2 sxtb r3, r3
|
||
410 004e 03F00103 and r3, r3, #1
|
||
411 0052 5AB2 sxtb r2, r3
|
||
412 .loc 1 75 25
|
||
413 0054 97F91730 ldrsb r3, [r7, #23]
|
||
414 0058 5340 eors r3, r3, r2
|
||
415 005a 5BB2 sxtb r3, r3
|
||
416 .loc 1 75 15
|
||
417 005c 7B75 strb r3, [r7, #21]
|
||
76:Core/Src/ADBMS_LL_Driver.c **** const uint8 in7 = in0 ^ ((currentPEC >> 6) & 0x01);
|
||
418 .loc 1 76 46
|
||
419 005e FB88 ldrh r3, [r7, #6]
|
||
420 0060 9B09 lsrs r3, r3, #6
|
||
421 0062 9BB2 uxth r3, r3
|
||
422 0064 5BB2 sxtb r3, r3
|
||
423 0066 03F00103 and r3, r3, #1
|
||
424 006a 5AB2 sxtb r2, r3
|
||
425 .loc 1 76 25
|
||
426 006c 97F91730 ldrsb r3, [r7, #23]
|
||
427 0070 5340 eors r3, r3, r2
|
||
428 0072 5BB2 sxtb r3, r3
|
||
429 .loc 1 76 15
|
||
430 0074 3B75 strb r3, [r7, #20]
|
||
77:Core/Src/ADBMS_LL_Driver.c **** const uint8 in8 = in0 ^ ((currentPEC >> 7) & 0x01);
|
||
431 .loc 1 77 46
|
||
432 0076 FB88 ldrh r3, [r7, #6]
|
||
433 0078 DB09 lsrs r3, r3, #7
|
||
434 007a 9BB2 uxth r3, r3
|
||
435 007c 5BB2 sxtb r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 10
|
||
|
||
|
||
436 007e 03F00103 and r3, r3, #1
|
||
437 0082 5AB2 sxtb r2, r3
|
||
438 .loc 1 77 25
|
||
439 0084 97F91730 ldrsb r3, [r7, #23]
|
||
440 0088 5340 eors r3, r3, r2
|
||
441 008a 5BB2 sxtb r3, r3
|
||
442 .loc 1 77 15
|
||
443 008c FB74 strb r3, [r7, #19]
|
||
78:Core/Src/ADBMS_LL_Driver.c **** const uint8 in10 = in0 ^ ((currentPEC >> 9) & 0x01);
|
||
444 .loc 1 78 47
|
||
445 008e FB88 ldrh r3, [r7, #6]
|
||
446 0090 5B0A lsrs r3, r3, #9
|
||
447 0092 9BB2 uxth r3, r3
|
||
448 0094 5BB2 sxtb r3, r3
|
||
449 0096 03F00103 and r3, r3, #1
|
||
450 009a 5AB2 sxtb r2, r3
|
||
451 .loc 1 78 26
|
||
452 009c 97F91730 ldrsb r3, [r7, #23]
|
||
453 00a0 5340 eors r3, r3, r2
|
||
454 00a2 5BB2 sxtb r3, r3
|
||
455 .loc 1 78 15
|
||
456 00a4 BB74 strb r3, [r7, #18]
|
||
79:Core/Src/ADBMS_LL_Driver.c **** const uint8 in14 = in0 ^ ((currentPEC >> 13) & 0x01);
|
||
457 .loc 1 79 48
|
||
458 00a6 FB88 ldrh r3, [r7, #6]
|
||
459 00a8 5B0B lsrs r3, r3, #13
|
||
460 00aa 9BB2 uxth r3, r3
|
||
461 00ac 5BB2 sxtb r3, r3
|
||
462 00ae 03F00103 and r3, r3, #1
|
||
463 00b2 5AB2 sxtb r2, r3
|
||
464 .loc 1 79 26
|
||
465 00b4 97F91730 ldrsb r3, [r7, #23]
|
||
466 00b8 5340 eors r3, r3, r2
|
||
467 00ba 5BB2 sxtb r3, r3
|
||
468 .loc 1 79 15
|
||
469 00bc 7B74 strb r3, [r7, #17]
|
||
80:Core/Src/ADBMS_LL_Driver.c ****
|
||
81:Core/Src/ADBMS_LL_Driver.c **** uint16 newPEC = 0;
|
||
470 .loc 1 81 10
|
||
471 00be 0023 movs r3, #0
|
||
472 00c0 FB81 strh r3, [r7, #14] @ movhi
|
||
82:Core/Src/ADBMS_LL_Driver.c ****
|
||
83:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in14 << 14;
|
||
473 .loc 1 83 10
|
||
474 00c2 7B7C ldrb r3, [r7, #17] @ zero_extendqisi2
|
||
475 00c4 1BB2 sxth r3, r3
|
||
476 00c6 9B03 lsls r3, r3, #14
|
||
477 00c8 1AB2 sxth r2, r3
|
||
478 00ca B7F90E30 ldrsh r3, [r7, #14]
|
||
479 00ce 1343 orrs r3, r3, r2
|
||
480 00d0 1BB2 sxth r3, r3
|
||
481 00d2 FB81 strh r3, [r7, #14] @ movhi
|
||
84:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 12)) << 1;
|
||
482 .loc 1 84 41
|
||
483 00d4 B7F90630 ldrsh r3, [r7, #6]
|
||
484 00d8 5B00 lsls r3, r3, #1
|
||
485 00da 1BB2 sxth r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 11
|
||
|
||
|
||
486 00dc 03F40053 and r3, r3, #8192
|
||
487 00e0 1AB2 sxth r2, r3
|
||
488 .loc 1 84 10
|
||
489 00e2 B7F90E30 ldrsh r3, [r7, #14]
|
||
490 00e6 1343 orrs r3, r3, r2
|
||
491 00e8 1BB2 sxth r3, r3
|
||
492 00ea FB81 strh r3, [r7, #14] @ movhi
|
||
85:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 11)) << 1;
|
||
493 .loc 1 85 41
|
||
494 00ec B7F90630 ldrsh r3, [r7, #6]
|
||
495 00f0 5B00 lsls r3, r3, #1
|
||
496 00f2 1BB2 sxth r3, r3
|
||
497 00f4 03F48053 and r3, r3, #4096
|
||
498 00f8 1AB2 sxth r2, r3
|
||
499 .loc 1 85 10
|
||
500 00fa B7F90E30 ldrsh r3, [r7, #14]
|
||
501 00fe 1343 orrs r3, r3, r2
|
||
502 0100 1BB2 sxth r3, r3
|
||
503 0102 FB81 strh r3, [r7, #14] @ movhi
|
||
86:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 10)) << 1;
|
||
504 .loc 1 86 41
|
||
505 0104 B7F90630 ldrsh r3, [r7, #6]
|
||
506 0108 5B00 lsls r3, r3, #1
|
||
507 010a 1BB2 sxth r3, r3
|
||
508 010c 03F40063 and r3, r3, #2048
|
||
509 0110 1AB2 sxth r2, r3
|
||
510 .loc 1 86 10
|
||
511 0112 B7F90E30 ldrsh r3, [r7, #14]
|
||
512 0116 1343 orrs r3, r3, r2
|
||
513 0118 1BB2 sxth r3, r3
|
||
514 011a FB81 strh r3, [r7, #14] @ movhi
|
||
87:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in10 << 10;
|
||
515 .loc 1 87 10
|
||
516 011c BB7C ldrb r3, [r7, #18] @ zero_extendqisi2
|
||
517 011e 1BB2 sxth r3, r3
|
||
518 0120 9B02 lsls r3, r3, #10
|
||
519 0122 1AB2 sxth r2, r3
|
||
520 0124 B7F90E30 ldrsh r3, [r7, #14]
|
||
521 0128 1343 orrs r3, r3, r2
|
||
522 012a 1BB2 sxth r3, r3
|
||
523 012c FB81 strh r3, [r7, #14] @ movhi
|
||
88:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 8)) << 1;
|
||
524 .loc 1 88 40
|
||
525 012e B7F90630 ldrsh r3, [r7, #6]
|
||
526 0132 5B00 lsls r3, r3, #1
|
||
527 0134 1BB2 sxth r3, r3
|
||
528 0136 03F40073 and r3, r3, #512
|
||
529 013a 1AB2 sxth r2, r3
|
||
530 .loc 1 88 10
|
||
531 013c B7F90E30 ldrsh r3, [r7, #14]
|
||
532 0140 1343 orrs r3, r3, r2
|
||
533 0142 1BB2 sxth r3, r3
|
||
534 0144 FB81 strh r3, [r7, #14] @ movhi
|
||
89:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in8 << 8;
|
||
535 .loc 1 89 10
|
||
536 0146 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
|
||
537 0148 1BB2 sxth r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 12
|
||
|
||
|
||
538 014a 1B02 lsls r3, r3, #8
|
||
539 014c 1AB2 sxth r2, r3
|
||
540 014e B7F90E30 ldrsh r3, [r7, #14]
|
||
541 0152 1343 orrs r3, r3, r2
|
||
542 0154 1BB2 sxth r3, r3
|
||
543 0156 FB81 strh r3, [r7, #14] @ movhi
|
||
90:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in7 << 7;
|
||
544 .loc 1 90 10
|
||
545 0158 3B7D ldrb r3, [r7, #20] @ zero_extendqisi2
|
||
546 015a 1BB2 sxth r3, r3
|
||
547 015c DB01 lsls r3, r3, #7
|
||
548 015e 1AB2 sxth r2, r3
|
||
549 0160 B7F90E30 ldrsh r3, [r7, #14]
|
||
550 0164 1343 orrs r3, r3, r2
|
||
551 0166 1BB2 sxth r3, r3
|
||
552 0168 FB81 strh r3, [r7, #14] @ movhi
|
||
91:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 5)) << 1;
|
||
553 .loc 1 91 40
|
||
554 016a B7F90630 ldrsh r3, [r7, #6]
|
||
555 016e 5B00 lsls r3, r3, #1
|
||
556 0170 1BB2 sxth r3, r3
|
||
557 0172 03F04003 and r3, r3, #64
|
||
558 0176 1AB2 sxth r2, r3
|
||
559 .loc 1 91 10
|
||
560 0178 B7F90E30 ldrsh r3, [r7, #14]
|
||
561 017c 1343 orrs r3, r3, r2
|
||
562 017e 1BB2 sxth r3, r3
|
||
563 0180 FB81 strh r3, [r7, #14] @ movhi
|
||
92:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 4)) << 1;
|
||
564 .loc 1 92 40
|
||
565 0182 B7F90630 ldrsh r3, [r7, #6]
|
||
566 0186 5B00 lsls r3, r3, #1
|
||
567 0188 1BB2 sxth r3, r3
|
||
568 018a 03F02003 and r3, r3, #32
|
||
569 018e 1AB2 sxth r2, r3
|
||
570 .loc 1 92 10
|
||
571 0190 B7F90E30 ldrsh r3, [r7, #14]
|
||
572 0194 1343 orrs r3, r3, r2
|
||
573 0196 1BB2 sxth r3, r3
|
||
574 0198 FB81 strh r3, [r7, #14] @ movhi
|
||
93:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in4 << 4;
|
||
575 .loc 1 93 10
|
||
576 019a 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
577 019c 1BB2 sxth r3, r3
|
||
578 019e 1B01 lsls r3, r3, #4
|
||
579 01a0 1AB2 sxth r2, r3
|
||
580 01a2 B7F90E30 ldrsh r3, [r7, #14]
|
||
581 01a6 1343 orrs r3, r3, r2
|
||
582 01a8 1BB2 sxth r3, r3
|
||
583 01aa FB81 strh r3, [r7, #14] @ movhi
|
||
94:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in3 << 3;
|
||
584 .loc 1 94 10
|
||
585 01ac BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
586 01ae 1BB2 sxth r3, r3
|
||
587 01b0 DB00 lsls r3, r3, #3
|
||
588 01b2 1AB2 sxth r2, r3
|
||
589 01b4 B7F90E30 ldrsh r3, [r7, #14]
|
||
ARM GAS /tmp/cczsHaNw.s page 13
|
||
|
||
|
||
590 01b8 1343 orrs r3, r3, r2
|
||
591 01ba 1BB2 sxth r3, r3
|
||
592 01bc FB81 strh r3, [r7, #14] @ movhi
|
||
95:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 1)) << 1;
|
||
593 .loc 1 95 40
|
||
594 01be B7F90630 ldrsh r3, [r7, #6]
|
||
595 01c2 5B00 lsls r3, r3, #1
|
||
596 01c4 1BB2 sxth r3, r3
|
||
597 01c6 03F00403 and r3, r3, #4
|
||
598 01ca 1AB2 sxth r2, r3
|
||
599 .loc 1 95 10
|
||
600 01cc B7F90E30 ldrsh r3, [r7, #14]
|
||
601 01d0 1343 orrs r3, r3, r2
|
||
602 01d2 1BB2 sxth r3, r3
|
||
603 01d4 FB81 strh r3, [r7, #14] @ movhi
|
||
96:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01)) << 1;
|
||
604 .loc 1 96 35
|
||
605 01d6 B7F90630 ldrsh r3, [r7, #6]
|
||
606 01da 5B00 lsls r3, r3, #1
|
||
607 01dc 1BB2 sxth r3, r3
|
||
608 01de 03F00203 and r3, r3, #2
|
||
609 01e2 1AB2 sxth r2, r3
|
||
610 .loc 1 96 10
|
||
611 01e4 B7F90E30 ldrsh r3, [r7, #14]
|
||
612 01e8 1343 orrs r3, r3, r2
|
||
613 01ea 1BB2 sxth r3, r3
|
||
614 01ec FB81 strh r3, [r7, #14] @ movhi
|
||
97:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in0;
|
||
615 .loc 1 97 10
|
||
616 01ee FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
617 01f0 9AB2 uxth r2, r3
|
||
618 01f2 FB89 ldrh r3, [r7, #14] @ movhi
|
||
619 01f4 1343 orrs r3, r3, r2
|
||
620 01f6 FB81 strh r3, [r7, #14] @ movhi
|
||
98:Core/Src/ADBMS_LL_Driver.c ****
|
||
99:Core/Src/ADBMS_LL_Driver.c **** return newPEC;
|
||
621 .loc 1 99 10
|
||
622 01f8 FB89 ldrh r3, [r7, #14]
|
||
100:Core/Src/ADBMS_LL_Driver.c **** }
|
||
623 .loc 1 100 1
|
||
624 01fa 1846 mov r0, r3
|
||
625 01fc 1C37 adds r7, r7, #28
|
||
626 .cfi_def_cfa_offset 4
|
||
627 01fe BD46 mov sp, r7
|
||
628 .cfi_def_cfa_register 13
|
||
629 @ sp needed
|
||
630 0200 5DF8047B ldr r7, [sp], #4
|
||
631 .cfi_restore 7
|
||
632 .cfi_def_cfa_offset 0
|
||
633 0204 7047 bx lr
|
||
634 .cfi_endproc
|
||
635 .LFE133:
|
||
637 .section .text.pec10_calc,"ax",%progbits
|
||
638 .align 1
|
||
639 .global pec10_calc
|
||
640 .syntax unified
|
||
641 .thumb
|
||
ARM GAS /tmp/cczsHaNw.s page 14
|
||
|
||
|
||
642 .thumb_func
|
||
644 pec10_calc:
|
||
645 .LFB134:
|
||
101:Core/Src/ADBMS_LL_Driver.c ****
|
||
102:Core/Src/ADBMS_LL_Driver.c **** //data PEC calculation
|
||
103:Core/Src/ADBMS_LL_Driver.c **** //CRC-10
|
||
104:Core/Src/ADBMS_LL_Driver.c **** //x^10 + x^7 + x^3 + x^2 + x + 1
|
||
105:Core/Src/ADBMS_LL_Driver.c ****
|
||
106:Core/Src/ADBMS_LL_Driver.c **** uint16_t pec10_calc(bool rx_cmd, int len, const uint8_t* data) {
|
||
646 .loc 1 106 64
|
||
647 .cfi_startproc
|
||
648 @ args = 0, pretend = 0, frame = 24
|
||
649 @ frame_needed = 1, uses_anonymous_args = 0
|
||
650 @ link register save eliminated.
|
||
651 0000 80B4 push {r7}
|
||
652 .cfi_def_cfa_offset 4
|
||
653 .cfi_offset 7, -4
|
||
654 0002 87B0 sub sp, sp, #28
|
||
655 .cfi_def_cfa_offset 32
|
||
656 0004 00AF add r7, sp, #0
|
||
657 .cfi_def_cfa_register 7
|
||
658 0006 0346 mov r3, r0
|
||
659 0008 B960 str r1, [r7, #8]
|
||
660 000a 7A60 str r2, [r7, #4]
|
||
661 000c FB73 strb r3, [r7, #15]
|
||
107:Core/Src/ADBMS_LL_Driver.c **** uint16_t remainder = 16; /* PEC_SEED; 0000010000 */
|
||
662 .loc 1 107 12
|
||
663 000e 1023 movs r3, #16
|
||
664 0010 FB82 strh r3, [r7, #22] @ movhi
|
||
108:Core/Src/ADBMS_LL_Driver.c **** const uint16_t polynom = 0x8F; /* x10 + x7 + x3 + x2 + x + 1 <- the CRC15 polynomial
|
||
665 .loc 1 108 18
|
||
666 0012 8F23 movs r3, #143
|
||
667 0014 3B82 strh r3, [r7, #16] @ movhi
|
||
668 .LBB8:
|
||
109:Core/Src/ADBMS_LL_Driver.c **** 100 1000 1111 48F */
|
||
110:Core/Src/ADBMS_LL_Driver.c ****
|
||
111:Core/Src/ADBMS_LL_Driver.c **** /* Perform modulo-2 division, a byte at a time. */
|
||
112:Core/Src/ADBMS_LL_Driver.c **** for (uint8_t pbyte = 0; pbyte < len; ++pbyte) {
|
||
669 .loc 1 112 16
|
||
670 0016 0023 movs r3, #0
|
||
671 0018 7B75 strb r3, [r7, #21]
|
||
672 .loc 1 112 3
|
||
673 001a 24E0 b .L23
|
||
674 .L28:
|
||
113:Core/Src/ADBMS_LL_Driver.c **** /* Bring the next byte into the remainder. */
|
||
114:Core/Src/ADBMS_LL_Driver.c **** remainder ^= (uint16_t)(data[pbyte] << 2);
|
||
675 .loc 1 114 33
|
||
676 001c 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
677 001e 7A68 ldr r2, [r7, #4]
|
||
678 0020 1344 add r3, r3, r2
|
||
679 0022 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
680 .loc 1 114 18
|
||
681 0024 9B00 lsls r3, r3, #2
|
||
682 0026 9AB2 uxth r2, r3
|
||
683 .loc 1 114 15
|
||
684 0028 FB8A ldrh r3, [r7, #22] @ movhi
|
||
685 002a 5340 eors r3, r3, r2
|
||
ARM GAS /tmp/cczsHaNw.s page 15
|
||
|
||
|
||
686 002c FB82 strh r3, [r7, #22] @ movhi
|
||
687 .LBB9:
|
||
115:Core/Src/ADBMS_LL_Driver.c **** /* Perform modulo-2 division, a bit at a time.*/
|
||
116:Core/Src/ADBMS_LL_Driver.c **** for (uint8_t bit_ = 8; bit_ > 0; --bit_) {
|
||
688 .loc 1 116 18
|
||
689 002e 0823 movs r3, #8
|
||
690 0030 3B75 strb r3, [r7, #20]
|
||
691 .loc 1 116 5
|
||
692 0032 12E0 b .L24
|
||
693 .L27:
|
||
117:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit. */
|
||
118:Core/Src/ADBMS_LL_Driver.c **** if ((remainder & 0x200) >
|
||
694 .loc 1 118 22
|
||
695 0034 FB8A ldrh r3, [r7, #22]
|
||
696 0036 03F40073 and r3, r3, #512
|
||
697 .loc 1 118 10
|
||
698 003a 002B cmp r3, #0
|
||
699 003c 07DD ble .L25
|
||
119:Core/Src/ADBMS_LL_Driver.c **** 0) // equivalent to remainder & 2^14 simply check for MSB
|
||
120:Core/Src/ADBMS_LL_Driver.c **** {
|
||
121:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)((remainder << 1));
|
||
700 .loc 1 121 19
|
||
701 003e FB8A ldrh r3, [r7, #22] @ movhi
|
||
702 0040 5B00 lsls r3, r3, #1
|
||
703 0042 FB82 strh r3, [r7, #22] @ movhi
|
||
122:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)(remainder ^ polynom);
|
||
704 .loc 1 122 19
|
||
705 0044 FA8A ldrh r2, [r7, #22] @ movhi
|
||
706 0046 3B8A ldrh r3, [r7, #16] @ movhi
|
||
707 0048 5340 eors r3, r3, r2
|
||
708 004a FB82 strh r3, [r7, #22] @ movhi
|
||
709 004c 02E0 b .L26
|
||
710 .L25:
|
||
123:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
124:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)(remainder << 1);
|
||
711 .loc 1 124 19
|
||
712 004e FB8A ldrh r3, [r7, #22] @ movhi
|
||
713 0050 5B00 lsls r3, r3, #1
|
||
714 0052 FB82 strh r3, [r7, #22] @ movhi
|
||
715 .L26:
|
||
116:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit. */
|
||
716 .loc 1 116 38 discriminator 2
|
||
717 0054 3B7D ldrb r3, [r7, #20]
|
||
718 0056 013B subs r3, r3, #1
|
||
719 0058 3B75 strb r3, [r7, #20]
|
||
720 .L24:
|
||
116:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit. */
|
||
721 .loc 1 116 33 discriminator 1
|
||
722 005a 3B7D ldrb r3, [r7, #20] @ zero_extendqisi2
|
||
723 005c 002B cmp r3, #0
|
||
724 005e E9D1 bne .L27
|
||
725 .LBE9:
|
||
112:Core/Src/ADBMS_LL_Driver.c **** /* Bring the next byte into the remainder. */
|
||
726 .loc 1 112 40 discriminator 2
|
||
727 0060 7B7D ldrb r3, [r7, #21]
|
||
728 0062 0133 adds r3, r3, #1
|
||
729 0064 7B75 strb r3, [r7, #21]
|
||
ARM GAS /tmp/cczsHaNw.s page 16
|
||
|
||
|
||
730 .L23:
|
||
112:Core/Src/ADBMS_LL_Driver.c **** /* Bring the next byte into the remainder. */
|
||
731 .loc 1 112 33 discriminator 1
|
||
732 0066 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
733 0068 BA68 ldr r2, [r7, #8]
|
||
734 006a 9A42 cmp r2, r3
|
||
735 006c D6DC bgt .L28
|
||
736 .LBE8:
|
||
125:Core/Src/ADBMS_LL_Driver.c **** }
|
||
126:Core/Src/ADBMS_LL_Driver.c **** }
|
||
127:Core/Src/ADBMS_LL_Driver.c **** }
|
||
128:Core/Src/ADBMS_LL_Driver.c **** if (rx_cmd == true) {
|
||
737 .loc 1 128 6
|
||
738 006e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
739 0070 002B cmp r3, #0
|
||
740 0072 27D0 beq .L29
|
||
129:Core/Src/ADBMS_LL_Driver.c **** remainder ^= (uint16_t)((data[len] & 0xFC) << 2);
|
||
741 .loc 1 129 34
|
||
742 0074 BB68 ldr r3, [r7, #8]
|
||
743 0076 7A68 ldr r2, [r7, #4]
|
||
744 0078 1344 add r3, r3, r2
|
||
745 007a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
746 .loc 1 129 48
|
||
747 007c 1BB2 sxth r3, r3
|
||
748 007e 9B00 lsls r3, r3, #2
|
||
749 0080 1BB2 sxth r3, r3
|
||
750 .loc 1 129 18
|
||
751 0082 03F47C73 and r3, r3, #1008
|
||
752 0086 1AB2 sxth r2, r3
|
||
753 .loc 1 129 15
|
||
754 0088 B7F91630 ldrsh r3, [r7, #22]
|
||
755 008c 5340 eors r3, r3, r2
|
||
756 008e 1BB2 sxth r3, r3
|
||
757 0090 FB82 strh r3, [r7, #22] @ movhi
|
||
758 .LBB10:
|
||
130:Core/Src/ADBMS_LL_Driver.c **** /* Perform modulo-2 division, a bit at a time */
|
||
131:Core/Src/ADBMS_LL_Driver.c **** for (uint8_t bit_ = 6; bit_ > 0; --bit_) {
|
||
759 .loc 1 131 18
|
||
760 0092 0623 movs r3, #6
|
||
761 0094 FB74 strb r3, [r7, #19]
|
||
762 .loc 1 131 5
|
||
763 0096 12E0 b .L30
|
||
764 .L33:
|
||
132:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit */
|
||
133:Core/Src/ADBMS_LL_Driver.c **** if ((remainder & 0x200) >
|
||
765 .loc 1 133 22
|
||
766 0098 FB8A ldrh r3, [r7, #22]
|
||
767 009a 03F40073 and r3, r3, #512
|
||
768 .loc 1 133 10
|
||
769 009e 002B cmp r3, #0
|
||
770 00a0 07DD ble .L31
|
||
134:Core/Src/ADBMS_LL_Driver.c **** 0) // equivalent to remainder & 2^14 simply check for MSB
|
||
135:Core/Src/ADBMS_LL_Driver.c **** {
|
||
136:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)((remainder << 1));
|
||
771 .loc 1 136 19
|
||
772 00a2 FB8A ldrh r3, [r7, #22] @ movhi
|
||
773 00a4 5B00 lsls r3, r3, #1
|
||
ARM GAS /tmp/cczsHaNw.s page 17
|
||
|
||
|
||
774 00a6 FB82 strh r3, [r7, #22] @ movhi
|
||
137:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)(remainder ^ polynom);
|
||
775 .loc 1 137 19
|
||
776 00a8 FA8A ldrh r2, [r7, #22] @ movhi
|
||
777 00aa 3B8A ldrh r3, [r7, #16] @ movhi
|
||
778 00ac 5340 eors r3, r3, r2
|
||
779 00ae FB82 strh r3, [r7, #22] @ movhi
|
||
780 00b0 02E0 b .L32
|
||
781 .L31:
|
||
138:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
139:Core/Src/ADBMS_LL_Driver.c **** remainder = (uint16_t)((remainder << 1));
|
||
782 .loc 1 139 19
|
||
783 00b2 FB8A ldrh r3, [r7, #22] @ movhi
|
||
784 00b4 5B00 lsls r3, r3, #1
|
||
785 00b6 FB82 strh r3, [r7, #22] @ movhi
|
||
786 .L32:
|
||
131:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit */
|
||
787 .loc 1 131 38 discriminator 2
|
||
788 00b8 FB7C ldrb r3, [r7, #19]
|
||
789 00ba 013B subs r3, r3, #1
|
||
790 00bc FB74 strb r3, [r7, #19]
|
||
791 .L30:
|
||
131:Core/Src/ADBMS_LL_Driver.c **** /* Try to divide the current data bit */
|
||
792 .loc 1 131 33 discriminator 1
|
||
793 00be FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
|
||
794 00c0 002B cmp r3, #0
|
||
795 00c2 E9D1 bne .L33
|
||
796 .L29:
|
||
797 .LBE10:
|
||
140:Core/Src/ADBMS_LL_Driver.c **** }
|
||
141:Core/Src/ADBMS_LL_Driver.c **** }
|
||
142:Core/Src/ADBMS_LL_Driver.c **** }
|
||
143:Core/Src/ADBMS_LL_Driver.c **** return ((uint16_t)(remainder & 0x3FF));
|
||
798 .loc 1 143 11
|
||
799 00c4 FB8A ldrh r3, [r7, #22] @ movhi
|
||
800 00c6 C3F30903 ubfx r3, r3, #0, #10
|
||
801 00ca 9BB2 uxth r3, r3
|
||
144:Core/Src/ADBMS_LL_Driver.c **** }
|
||
802 .loc 1 144 1
|
||
803 00cc 1846 mov r0, r3
|
||
804 00ce 1C37 adds r7, r7, #28
|
||
805 .cfi_def_cfa_offset 4
|
||
806 00d0 BD46 mov sp, r7
|
||
807 .cfi_def_cfa_register 13
|
||
808 @ sp needed
|
||
809 00d2 5DF8047B ldr r7, [sp], #4
|
||
810 .cfi_restore 7
|
||
811 .cfi_def_cfa_offset 0
|
||
812 00d6 7047 bx lr
|
||
813 .cfi_endproc
|
||
814 .LFE134:
|
||
816 .section .text.calculateDataPEC,"ax",%progbits
|
||
817 .align 1
|
||
818 .global calculateDataPEC
|
||
819 .syntax unified
|
||
820 .thumb
|
||
821 .thumb_func
|
||
ARM GAS /tmp/cczsHaNw.s page 18
|
||
|
||
|
||
823 calculateDataPEC:
|
||
824 .LFB135:
|
||
145:Core/Src/ADBMS_LL_Driver.c ****
|
||
146:Core/Src/ADBMS_LL_Driver.c **** typedef uint16_t crc;
|
||
147:Core/Src/ADBMS_LL_Driver.c **** crc F_CRC_CalculaCheckSum(uint8_t const AF_Datos[], uint16_t VF_nBytes);
|
||
148:Core/Src/ADBMS_LL_Driver.c ****
|
||
149:Core/Src/ADBMS_LL_Driver.c **** uint8 calculateDataPEC(uint8_t* data, uint8_t datalen) {
|
||
825 .loc 1 149 56
|
||
826 .cfi_startproc
|
||
827 @ args = 0, pretend = 0, frame = 16
|
||
828 @ frame_needed = 1, uses_anonymous_args = 0
|
||
829 0000 80B5 push {r7, lr}
|
||
830 .cfi_def_cfa_offset 8
|
||
831 .cfi_offset 7, -8
|
||
832 .cfi_offset 14, -4
|
||
833 0002 84B0 sub sp, sp, #16
|
||
834 .cfi_def_cfa_offset 24
|
||
835 0004 00AF add r7, sp, #0
|
||
836 .cfi_def_cfa_register 7
|
||
837 0006 7860 str r0, [r7, #4]
|
||
838 0008 0B46 mov r3, r1
|
||
839 000a FB70 strb r3, [r7, #3]
|
||
150:Core/Src/ADBMS_LL_Driver.c ****
|
||
151:Core/Src/ADBMS_LL_Driver.c **** if (datalen >= 3) {
|
||
840 .loc 1 151 6
|
||
841 000c FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
842 000e 022B cmp r3, #2
|
||
843 0010 1CD9 bls .L36
|
||
844 .LBB11:
|
||
152:Core/Src/ADBMS_LL_Driver.c ****
|
||
153:Core/Src/ADBMS_LL_Driver.c **** const crc currentpec = pec10_calc(true, datalen - 2, data) & 0x3FF; // mask to 10 bits
|
||
845 .loc 1 153 30
|
||
846 0012 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
847 0014 023B subs r3, r3, #2
|
||
848 0016 7A68 ldr r2, [r7, #4]
|
||
849 0018 1946 mov r1, r3
|
||
850 001a 0120 movs r0, #1
|
||
851 001c FFF7FEFF bl pec10_calc
|
||
852 0020 0346 mov r3, r0
|
||
853 .loc 1 153 17 discriminator 1
|
||
854 0022 C3F30903 ubfx r3, r3, #0, #10
|
||
855 0026 FB81 strh r3, [r7, #14] @ movhi
|
||
154:Core/Src/ADBMS_LL_Driver.c ****
|
||
155:Core/Src/ADBMS_LL_Driver.c **** // memory layout is [[zeroes], PEC[9:8]], [PEC[7:0]]
|
||
156:Core/Src/ADBMS_LL_Driver.c **** data[datalen - 2] = (currentpec >> 8) & 0xFF;
|
||
856 .loc 1 156 23
|
||
857 0028 FB89 ldrh r3, [r7, #14]
|
||
858 002a 1B0A lsrs r3, r3, #8
|
||
859 002c 99B2 uxth r1, r3
|
||
860 .loc 1 156 9
|
||
861 002e FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
862 0030 023B subs r3, r3, #2
|
||
863 0032 7A68 ldr r2, [r7, #4]
|
||
864 0034 1344 add r3, r3, r2
|
||
865 .loc 1 156 23
|
||
866 0036 CAB2 uxtb r2, r1
|
||
867 0038 1A70 strb r2, [r3]
|
||
ARM GAS /tmp/cczsHaNw.s page 19
|
||
|
||
|
||
157:Core/Src/ADBMS_LL_Driver.c **** data[datalen - 1] = currentpec & 0xFF;
|
||
868 .loc 1 157 9
|
||
869 003a FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
870 003c 013B subs r3, r3, #1
|
||
871 003e 7A68 ldr r2, [r7, #4]
|
||
872 0040 1344 add r3, r3, r2
|
||
873 .loc 1 157 23
|
||
874 0042 FA89 ldrh r2, [r7, #14] @ movhi
|
||
875 0044 D2B2 uxtb r2, r2
|
||
876 0046 1A70 strb r2, [r3]
|
||
158:Core/Src/ADBMS_LL_Driver.c ****
|
||
159:Core/Src/ADBMS_LL_Driver.c **** return 0;
|
||
877 .loc 1 159 12
|
||
878 0048 0023 movs r3, #0
|
||
879 004a 00E0 b .L37
|
||
880 .L36:
|
||
881 .LBE11:
|
||
160:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
161:Core/Src/ADBMS_LL_Driver.c **** return 1;
|
||
882 .loc 1 161 12
|
||
883 004c 0123 movs r3, #1
|
||
884 .L37:
|
||
162:Core/Src/ADBMS_LL_Driver.c **** }
|
||
163:Core/Src/ADBMS_LL_Driver.c **** }
|
||
885 .loc 1 163 1
|
||
886 004e 1846 mov r0, r3
|
||
887 0050 1037 adds r7, r7, #16
|
||
888 .cfi_def_cfa_offset 8
|
||
889 0052 BD46 mov sp, r7
|
||
890 .cfi_def_cfa_register 13
|
||
891 @ sp needed
|
||
892 0054 80BD pop {r7, pc}
|
||
893 .cfi_endproc
|
||
894 .LFE135:
|
||
896 .section .text.checkDataPEC,"ax",%progbits
|
||
897 .align 1
|
||
898 .global checkDataPEC
|
||
899 .syntax unified
|
||
900 .thumb
|
||
901 .thumb_func
|
||
903 checkDataPEC:
|
||
904 .LFB136:
|
||
164:Core/Src/ADBMS_LL_Driver.c ****
|
||
165:Core/Src/ADBMS_LL_Driver.c **** uint8 checkDataPEC(uint8* data, uint8 len) {
|
||
905 .loc 1 165 44
|
||
906 .cfi_startproc
|
||
907 @ args = 0, pretend = 0, frame = 16
|
||
908 @ frame_needed = 1, uses_anonymous_args = 0
|
||
909 0000 80B5 push {r7, lr}
|
||
910 .cfi_def_cfa_offset 8
|
||
911 .cfi_offset 7, -8
|
||
912 .cfi_offset 14, -4
|
||
913 0002 84B0 sub sp, sp, #16
|
||
914 .cfi_def_cfa_offset 24
|
||
915 0004 00AF add r7, sp, #0
|
||
916 .cfi_def_cfa_register 7
|
||
917 0006 7860 str r0, [r7, #4]
|
||
ARM GAS /tmp/cczsHaNw.s page 20
|
||
|
||
|
||
918 0008 0B46 mov r3, r1
|
||
919 000a FB70 strb r3, [r7, #3]
|
||
166:Core/Src/ADBMS_LL_Driver.c **** if (len <= 2) {
|
||
920 .loc 1 166 6
|
||
921 000c FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
922 000e 022B cmp r3, #2
|
||
923 0010 01D8 bhi .L39
|
||
167:Core/Src/ADBMS_LL_Driver.c **** return 255;
|
||
924 .loc 1 167 12
|
||
925 0012 FF23 movs r3, #255
|
||
926 0014 0DE0 b .L40
|
||
927 .L39:
|
||
168:Core/Src/ADBMS_LL_Driver.c **** }
|
||
169:Core/Src/ADBMS_LL_Driver.c ****
|
||
170:Core/Src/ADBMS_LL_Driver.c **** const crc currentpec = F_CRC_CalculaCheckSum(data, len);
|
||
928 .loc 1 170 26
|
||
929 0016 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
930 0018 9BB2 uxth r3, r3
|
||
931 001a 1946 mov r1, r3
|
||
932 001c 7868 ldr r0, [r7, #4]
|
||
933 001e FFF7FEFF bl F_CRC_CalculaCheckSum
|
||
934 0022 0346 mov r3, r0
|
||
935 0024 FB81 strh r3, [r7, #14] @ movhi
|
||
171:Core/Src/ADBMS_LL_Driver.c ****
|
||
172:Core/Src/ADBMS_LL_Driver.c **** return (currentpec == 0) ? 0 : 1;
|
||
936 .loc 1 172 32
|
||
937 0026 FB89 ldrh r3, [r7, #14]
|
||
938 0028 002B cmp r3, #0
|
||
939 002a 14BF ite ne
|
||
940 002c 0123 movne r3, #1
|
||
941 002e 0023 moveq r3, #0
|
||
942 0030 DBB2 uxtb r3, r3
|
||
943 .L40:
|
||
173:Core/Src/ADBMS_LL_Driver.c **** }
|
||
944 .loc 1 173 1
|
||
945 0032 1846 mov r0, r3
|
||
946 0034 1037 adds r7, r7, #16
|
||
947 .cfi_def_cfa_offset 8
|
||
948 0036 BD46 mov sp, r7
|
||
949 .cfi_def_cfa_register 13
|
||
950 @ sp needed
|
||
951 0038 80BD pop {r7, pc}
|
||
952 .cfi_endproc
|
||
953 .LFE136:
|
||
955 .section .text.F_CRC_ObtenValorDeTabla,"ax",%progbits
|
||
956 .align 1
|
||
957 .syntax unified
|
||
958 .thumb
|
||
959 .thumb_func
|
||
961 F_CRC_ObtenValorDeTabla:
|
||
962 .LFB137:
|
||
174:Core/Src/ADBMS_LL_Driver.c ****
|
||
175:Core/Src/ADBMS_LL_Driver.c ****
|
||
176:Core/Src/ADBMS_LL_Driver.c **** static crc F_CRC_ObtenValorDeTabla(uint8_t VP_Pos_Tabla) {
|
||
963 .loc 1 176 58
|
||
964 .cfi_startproc
|
||
965 @ args = 0, pretend = 0, frame = 16
|
||
ARM GAS /tmp/cczsHaNw.s page 21
|
||
|
||
|
||
966 @ frame_needed = 1, uses_anonymous_args = 0
|
||
967 @ link register save eliminated.
|
||
968 0000 80B4 push {r7}
|
||
969 .cfi_def_cfa_offset 4
|
||
970 .cfi_offset 7, -4
|
||
971 0002 85B0 sub sp, sp, #20
|
||
972 .cfi_def_cfa_offset 24
|
||
973 0004 00AF add r7, sp, #0
|
||
974 .cfi_def_cfa_register 7
|
||
975 0006 0346 mov r3, r0
|
||
976 0008 FB71 strb r3, [r7, #7]
|
||
177:Core/Src/ADBMS_LL_Driver.c **** crc VP_CRCTableValue = 0;
|
||
977 .loc 1 177 7
|
||
978 000a 0023 movs r3, #0
|
||
979 000c FB81 strh r3, [r7, #14] @ movhi
|
||
178:Core/Src/ADBMS_LL_Driver.c **** uint8_t VP_Pos_bit = 0;
|
||
980 .loc 1 178 11
|
||
981 000e 0023 movs r3, #0
|
||
982 0010 7B73 strb r3, [r7, #13]
|
||
179:Core/Src/ADBMS_LL_Driver.c ****
|
||
180:Core/Src/ADBMS_LL_Driver.c **** VP_CRCTableValue = ((crc)(VP_Pos_Tabla)) << (10 - 8);
|
||
983 .loc 1 180 44
|
||
984 0012 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
|
||
985 0014 9BB2 uxth r3, r3
|
||
986 .loc 1 180 20
|
||
987 0016 9B00 lsls r3, r3, #2
|
||
988 0018 FB81 strh r3, [r7, #14] @ movhi
|
||
181:Core/Src/ADBMS_LL_Driver.c ****
|
||
182:Core/Src/ADBMS_LL_Driver.c **** for (VP_Pos_bit = 0; VP_Pos_bit < 8; VP_Pos_bit++) {
|
||
989 .loc 1 182 19
|
||
990 001a 0023 movs r3, #0
|
||
991 001c 7B73 strb r3, [r7, #13]
|
||
992 .loc 1 182 3
|
||
993 001e 13E0 b .L42
|
||
994 .L45:
|
||
183:Core/Src/ADBMS_LL_Driver.c **** if (VP_CRCTableValue & (((crc)1) << (10 - 1))) {
|
||
995 .loc 1 183 26
|
||
996 0020 FB89 ldrh r3, [r7, #14]
|
||
997 0022 03F40073 and r3, r3, #512
|
||
998 .loc 1 183 8
|
||
999 0026 002B cmp r3, #0
|
||
1000 0028 08D0 beq .L43
|
||
184:Core/Src/ADBMS_LL_Driver.c **** VP_CRCTableValue = (VP_CRCTableValue << 1) ^ 0x8F;
|
||
1001 .loc 1 184 50
|
||
1002 002a B7F90E30 ldrsh r3, [r7, #14]
|
||
1003 002e 5B00 lsls r3, r3, #1
|
||
1004 0030 1BB2 sxth r3, r3
|
||
1005 0032 83F08F03 eor r3, r3, #143
|
||
1006 0036 1BB2 sxth r3, r3
|
||
1007 .loc 1 184 24
|
||
1008 0038 FB81 strh r3, [r7, #14] @ movhi
|
||
1009 003a 02E0 b .L44
|
||
1010 .L43:
|
||
185:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
186:Core/Src/ADBMS_LL_Driver.c **** VP_CRCTableValue = (VP_CRCTableValue << 1);
|
||
1011 .loc 1 186 24
|
||
1012 003c FB89 ldrh r3, [r7, #14] @ movhi
|
||
ARM GAS /tmp/cczsHaNw.s page 22
|
||
|
||
|
||
1013 003e 5B00 lsls r3, r3, #1
|
||
1014 0040 FB81 strh r3, [r7, #14] @ movhi
|
||
1015 .L44:
|
||
182:Core/Src/ADBMS_LL_Driver.c **** if (VP_CRCTableValue & (((crc)1) << (10 - 1))) {
|
||
1016 .loc 1 182 50 discriminator 2
|
||
1017 0042 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2
|
||
1018 0044 0133 adds r3, r3, #1
|
||
1019 0046 7B73 strb r3, [r7, #13]
|
||
1020 .L42:
|
||
182:Core/Src/ADBMS_LL_Driver.c **** if (VP_CRCTableValue & (((crc)1) << (10 - 1))) {
|
||
1021 .loc 1 182 35 discriminator 1
|
||
1022 0048 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2
|
||
1023 004a 072B cmp r3, #7
|
||
1024 004c E8D9 bls .L45
|
||
187:Core/Src/ADBMS_LL_Driver.c **** }
|
||
188:Core/Src/ADBMS_LL_Driver.c **** }
|
||
189:Core/Src/ADBMS_LL_Driver.c **** return ((VP_CRCTableValue));
|
||
1025 .loc 1 189 10
|
||
1026 004e FB89 ldrh r3, [r7, #14]
|
||
190:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1027 .loc 1 190 1
|
||
1028 0050 1846 mov r0, r3
|
||
1029 0052 1437 adds r7, r7, #20
|
||
1030 .cfi_def_cfa_offset 4
|
||
1031 0054 BD46 mov sp, r7
|
||
1032 .cfi_def_cfa_register 13
|
||
1033 @ sp needed
|
||
1034 0056 5DF8047B ldr r7, [sp], #4
|
||
1035 .cfi_restore 7
|
||
1036 .cfi_def_cfa_offset 0
|
||
1037 005a 7047 bx lr
|
||
1038 .cfi_endproc
|
||
1039 .LFE137:
|
||
1041 .section .text.F_CRC_CalculaCheckSum,"ax",%progbits
|
||
1042 .align 1
|
||
1043 .global F_CRC_CalculaCheckSum
|
||
1044 .syntax unified
|
||
1045 .thumb
|
||
1046 .thumb_func
|
||
1048 F_CRC_CalculaCheckSum:
|
||
1049 .LFB138:
|
||
191:Core/Src/ADBMS_LL_Driver.c **** crc F_CRC_CalculaCheckSum(uint8_t const AF_Datos[], uint16_t VF_nBytes) {
|
||
1050 .loc 1 191 73
|
||
1051 .cfi_startproc
|
||
1052 @ args = 0, pretend = 0, frame = 16
|
||
1053 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1054 0000 90B5 push {r4, r7, lr}
|
||
1055 .cfi_def_cfa_offset 12
|
||
1056 .cfi_offset 4, -12
|
||
1057 .cfi_offset 7, -8
|
||
1058 .cfi_offset 14, -4
|
||
1059 0002 85B0 sub sp, sp, #20
|
||
1060 .cfi_def_cfa_offset 32
|
||
1061 0004 00AF add r7, sp, #0
|
||
1062 .cfi_def_cfa_register 7
|
||
1063 0006 7860 str r0, [r7, #4]
|
||
1064 0008 0B46 mov r3, r1
|
||
ARM GAS /tmp/cczsHaNw.s page 23
|
||
|
||
|
||
1065 000a 7B80 strh r3, [r7, #2] @ movhi
|
||
192:Core/Src/ADBMS_LL_Driver.c **** crc VP_CRCTableValue = 16;
|
||
1066 .loc 1 192 7
|
||
1067 000c 1023 movs r3, #16
|
||
1068 000e FB81 strh r3, [r7, #14] @ movhi
|
||
193:Core/Src/ADBMS_LL_Driver.c **** int16_t VP_bytes = 0;
|
||
1069 .loc 1 193 11
|
||
1070 0010 0023 movs r3, #0
|
||
1071 0012 BB81 strh r3, [r7, #12] @ movhi
|
||
194:Core/Src/ADBMS_LL_Driver.c ****
|
||
195:Core/Src/ADBMS_LL_Driver.c **** for (VP_bytes = 0; VP_bytes < VF_nBytes; VP_bytes++) {
|
||
1072 .loc 1 195 17
|
||
1073 0014 0023 movs r3, #0
|
||
1074 0016 BB81 strh r3, [r7, #12] @ movhi
|
||
1075 .loc 1 195 3
|
||
1076 0018 1CE0 b .L48
|
||
1077 .L49:
|
||
196:Core/Src/ADBMS_LL_Driver.c ****
|
||
197:Core/Src/ADBMS_LL_Driver.c **** VP_CRCTableValue = (VP_CRCTableValue << 8) ^
|
||
1078 .loc 1 197 48
|
||
1079 001a B7F90E30 ldrsh r3, [r7, #14]
|
||
1080 001e 1B02 lsls r3, r3, #8
|
||
1081 0020 1CB2 sxth r4, r3
|
||
198:Core/Src/ADBMS_LL_Driver.c **** F_CRC_ObtenValorDeTabla(
|
||
199:Core/Src/ADBMS_LL_Driver.c **** ((uint8_t)((VP_CRCTableValue >> (10 - 8)) & 0xFF)) ^
|
||
1082 .loc 1 199 29
|
||
1083 0022 FB89 ldrh r3, [r7, #14]
|
||
1084 0024 9B08 lsrs r3, r3, #2
|
||
1085 0026 9BB2 uxth r3, r3
|
||
1086 0028 DAB2 uxtb r2, r3
|
||
200:Core/Src/ADBMS_LL_Driver.c **** AF_Datos[VP_bytes]);
|
||
1087 .loc 1 200 36
|
||
1088 002a B7F90C30 ldrsh r3, [r7, #12]
|
||
1089 002e 7968 ldr r1, [r7, #4]
|
||
1090 0030 0B44 add r3, r3, r1
|
||
1091 0032 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
198:Core/Src/ADBMS_LL_Driver.c **** F_CRC_ObtenValorDeTabla(
|
||
1092 .loc 1 198 24
|
||
1093 0034 5340 eors r3, r3, r2
|
||
1094 0036 DBB2 uxtb r3, r3
|
||
1095 0038 1846 mov r0, r3
|
||
1096 003a FFF7FEFF bl F_CRC_ObtenValorDeTabla
|
||
1097 003e 0346 mov r3, r0
|
||
198:Core/Src/ADBMS_LL_Driver.c **** F_CRC_ObtenValorDeTabla(
|
||
1098 .loc 1 198 24 is_stmt 0 discriminator 1
|
||
1099 0040 1BB2 sxth r3, r3
|
||
197:Core/Src/ADBMS_LL_Driver.c **** F_CRC_ObtenValorDeTabla(
|
||
1100 .loc 1 197 48 is_stmt 1
|
||
1101 0042 6340 eors r3, r3, r4
|
||
1102 0044 1BB2 sxth r3, r3
|
||
197:Core/Src/ADBMS_LL_Driver.c **** F_CRC_ObtenValorDeTabla(
|
||
1103 .loc 1 197 22
|
||
1104 0046 FB81 strh r3, [r7, #14] @ movhi
|
||
195:Core/Src/ADBMS_LL_Driver.c ****
|
||
1105 .loc 1 195 52 discriminator 3
|
||
1106 0048 B7F90C30 ldrsh r3, [r7, #12]
|
||
1107 004c 9BB2 uxth r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 24
|
||
|
||
|
||
1108 004e 0133 adds r3, r3, #1
|
||
1109 0050 9BB2 uxth r3, r3
|
||
1110 0052 BB81 strh r3, [r7, #12] @ movhi
|
||
1111 .L48:
|
||
195:Core/Src/ADBMS_LL_Driver.c ****
|
||
1112 .loc 1 195 31 discriminator 1
|
||
1113 0054 B7F90C20 ldrsh r2, [r7, #12]
|
||
1114 0058 7B88 ldrh r3, [r7, #2]
|
||
1115 005a 9A42 cmp r2, r3
|
||
1116 005c DDDB blt .L49
|
||
201:Core/Src/ADBMS_LL_Driver.c **** }
|
||
202:Core/Src/ADBMS_LL_Driver.c ****
|
||
203:Core/Src/ADBMS_LL_Driver.c **** if ((8 * sizeof(crc)) > 10) {
|
||
204:Core/Src/ADBMS_LL_Driver.c **** VP_CRCTableValue = VP_CRCTableValue & ((((crc)(1)) << 10) - 1);
|
||
1117 .loc 1 204 22
|
||
1118 005e FB89 ldrh r3, [r7, #14] @ movhi
|
||
1119 0060 C3F30903 ubfx r3, r3, #0, #10
|
||
1120 0064 FB81 strh r3, [r7, #14] @ movhi
|
||
205:Core/Src/ADBMS_LL_Driver.c **** }
|
||
206:Core/Src/ADBMS_LL_Driver.c ****
|
||
207:Core/Src/ADBMS_LL_Driver.c **** return (VP_CRCTableValue ^ 0x0000);
|
||
1121 .loc 1 207 28
|
||
1122 0066 FB89 ldrh r3, [r7, #14]
|
||
208:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1123 .loc 1 208 1
|
||
1124 0068 1846 mov r0, r3
|
||
1125 006a 1437 adds r7, r7, #20
|
||
1126 .cfi_def_cfa_offset 12
|
||
1127 006c BD46 mov sp, r7
|
||
1128 .cfi_def_cfa_register 13
|
||
1129 @ sp needed
|
||
1130 006e 90BD pop {r4, r7, pc}
|
||
1131 .cfi_endproc
|
||
1132 .LFE138:
|
||
1134 .section .text.updateDataPEC,"ax",%progbits
|
||
1135 .align 1
|
||
1136 .global updateDataPEC
|
||
1137 .syntax unified
|
||
1138 .thumb
|
||
1139 .thumb_func
|
||
1141 updateDataPEC:
|
||
1142 .LFB139:
|
||
209:Core/Src/ADBMS_LL_Driver.c ****
|
||
210:Core/Src/ADBMS_LL_Driver.c **** uint16 updateDataPEC(uint16 currentPEC, uint8 din) {
|
||
1143 .loc 1 210 52
|
||
1144 .cfi_startproc
|
||
1145 @ args = 0, pretend = 0, frame = 16
|
||
1146 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1147 @ link register save eliminated.
|
||
1148 0000 80B4 push {r7}
|
||
1149 .cfi_def_cfa_offset 4
|
||
1150 .cfi_offset 7, -4
|
||
1151 0002 85B0 sub sp, sp, #20
|
||
1152 .cfi_def_cfa_offset 24
|
||
1153 0004 00AF add r7, sp, #0
|
||
1154 .cfi_def_cfa_register 7
|
||
1155 0006 0346 mov r3, r0
|
||
ARM GAS /tmp/cczsHaNw.s page 25
|
||
|
||
|
||
1156 0008 0A46 mov r2, r1
|
||
1157 000a FB80 strh r3, [r7, #6] @ movhi
|
||
1158 000c 1346 mov r3, r2
|
||
1159 000e 7B71 strb r3, [r7, #5]
|
||
211:Core/Src/ADBMS_LL_Driver.c **** din = (din >> 7) & 0x01;
|
||
1160 .loc 1 211 7
|
||
1161 0010 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2
|
||
1162 0012 DB09 lsrs r3, r3, #7
|
||
1163 0014 7B71 strb r3, [r7, #5]
|
||
212:Core/Src/ADBMS_LL_Driver.c **** const uint8 in0 = din ^ ((currentPEC >> 9) & 0x01);
|
||
1164 .loc 1 212 46
|
||
1165 0016 FB88 ldrh r3, [r7, #6]
|
||
1166 0018 5B0A lsrs r3, r3, #9
|
||
1167 001a 9BB2 uxth r3, r3
|
||
1168 001c 5BB2 sxtb r3, r3
|
||
1169 001e 03F00103 and r3, r3, #1
|
||
1170 0022 5AB2 sxtb r2, r3
|
||
1171 .loc 1 212 25
|
||
1172 0024 97F90530 ldrsb r3, [r7, #5]
|
||
1173 0028 5340 eors r3, r3, r2
|
||
1174 002a 5BB2 sxtb r3, r3
|
||
1175 .loc 1 212 15
|
||
1176 002c FB73 strb r3, [r7, #15]
|
||
213:Core/Src/ADBMS_LL_Driver.c **** const uint8 in2 = in0 ^ ((currentPEC >> 1) & 0x01);
|
||
1177 .loc 1 213 46
|
||
1178 002e FB88 ldrh r3, [r7, #6]
|
||
1179 0030 5B08 lsrs r3, r3, #1
|
||
1180 0032 9BB2 uxth r3, r3
|
||
1181 0034 5BB2 sxtb r3, r3
|
||
1182 0036 03F00103 and r3, r3, #1
|
||
1183 003a 5AB2 sxtb r2, r3
|
||
1184 .loc 1 213 25
|
||
1185 003c 97F90F30 ldrsb r3, [r7, #15]
|
||
1186 0040 5340 eors r3, r3, r2
|
||
1187 0042 5BB2 sxtb r3, r3
|
||
1188 .loc 1 213 15
|
||
1189 0044 BB73 strb r3, [r7, #14]
|
||
214:Core/Src/ADBMS_LL_Driver.c **** const uint8 in3 = in0 ^ ((currentPEC >> 2) & 0x01);
|
||
1190 .loc 1 214 46
|
||
1191 0046 FB88 ldrh r3, [r7, #6]
|
||
1192 0048 9B08 lsrs r3, r3, #2
|
||
1193 004a 9BB2 uxth r3, r3
|
||
1194 004c 5BB2 sxtb r3, r3
|
||
1195 004e 03F00103 and r3, r3, #1
|
||
1196 0052 5AB2 sxtb r2, r3
|
||
1197 .loc 1 214 25
|
||
1198 0054 97F90F30 ldrsb r3, [r7, #15]
|
||
1199 0058 5340 eors r3, r3, r2
|
||
1200 005a 5BB2 sxtb r3, r3
|
||
1201 .loc 1 214 15
|
||
1202 005c 7B73 strb r3, [r7, #13]
|
||
215:Core/Src/ADBMS_LL_Driver.c **** const uint8 in7 = in0 ^ ((currentPEC >> 6) & 0x01);
|
||
1203 .loc 1 215 46
|
||
1204 005e FB88 ldrh r3, [r7, #6]
|
||
1205 0060 9B09 lsrs r3, r3, #6
|
||
1206 0062 9BB2 uxth r3, r3
|
||
1207 0064 5BB2 sxtb r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 26
|
||
|
||
|
||
1208 0066 03F00103 and r3, r3, #1
|
||
1209 006a 5AB2 sxtb r2, r3
|
||
1210 .loc 1 215 25
|
||
1211 006c 97F90F30 ldrsb r3, [r7, #15]
|
||
1212 0070 5340 eors r3, r3, r2
|
||
1213 0072 5BB2 sxtb r3, r3
|
||
1214 .loc 1 215 15
|
||
1215 0074 3B73 strb r3, [r7, #12]
|
||
216:Core/Src/ADBMS_LL_Driver.c ****
|
||
217:Core/Src/ADBMS_LL_Driver.c **** uint16 newPEC = 0;
|
||
1216 .loc 1 217 10
|
||
1217 0076 0023 movs r3, #0
|
||
1218 0078 7B81 strh r3, [r7, #10] @ movhi
|
||
218:Core/Src/ADBMS_LL_Driver.c ****
|
||
219:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 8)) << 1;
|
||
1219 .loc 1 219 40
|
||
1220 007a B7F90630 ldrsh r3, [r7, #6]
|
||
1221 007e 5B00 lsls r3, r3, #1
|
||
1222 0080 1BB2 sxth r3, r3
|
||
1223 0082 03F40073 and r3, r3, #512
|
||
1224 0086 1AB2 sxth r2, r3
|
||
1225 .loc 1 219 10
|
||
1226 0088 B7F90A30 ldrsh r3, [r7, #10]
|
||
1227 008c 1343 orrs r3, r3, r2
|
||
1228 008e 1BB2 sxth r3, r3
|
||
1229 0090 7B81 strh r3, [r7, #10] @ movhi
|
||
220:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 7)) << 1;
|
||
1230 .loc 1 220 40
|
||
1231 0092 B7F90630 ldrsh r3, [r7, #6]
|
||
1232 0096 5B00 lsls r3, r3, #1
|
||
1233 0098 1BB2 sxth r3, r3
|
||
1234 009a 03F48073 and r3, r3, #256
|
||
1235 009e 1AB2 sxth r2, r3
|
||
1236 .loc 1 220 10
|
||
1237 00a0 B7F90A30 ldrsh r3, [r7, #10]
|
||
1238 00a4 1343 orrs r3, r3, r2
|
||
1239 00a6 1BB2 sxth r3, r3
|
||
1240 00a8 7B81 strh r3, [r7, #10] @ movhi
|
||
221:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in7 << 7;
|
||
1241 .loc 1 221 10
|
||
1242 00aa 3B7B ldrb r3, [r7, #12] @ zero_extendqisi2
|
||
1243 00ac 1BB2 sxth r3, r3
|
||
1244 00ae DB01 lsls r3, r3, #7
|
||
1245 00b0 1AB2 sxth r2, r3
|
||
1246 00b2 B7F90A30 ldrsh r3, [r7, #10]
|
||
1247 00b6 1343 orrs r3, r3, r2
|
||
1248 00b8 1BB2 sxth r3, r3
|
||
1249 00ba 7B81 strh r3, [r7, #10] @ movhi
|
||
222:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 5)) << 1;
|
||
1250 .loc 1 222 40
|
||
1251 00bc B7F90630 ldrsh r3, [r7, #6]
|
||
1252 00c0 5B00 lsls r3, r3, #1
|
||
1253 00c2 1BB2 sxth r3, r3
|
||
1254 00c4 03F04003 and r3, r3, #64
|
||
1255 00c8 1AB2 sxth r2, r3
|
||
1256 .loc 1 222 10
|
||
1257 00ca B7F90A30 ldrsh r3, [r7, #10]
|
||
ARM GAS /tmp/cczsHaNw.s page 27
|
||
|
||
|
||
1258 00ce 1343 orrs r3, r3, r2
|
||
1259 00d0 1BB2 sxth r3, r3
|
||
1260 00d2 7B81 strh r3, [r7, #10] @ movhi
|
||
223:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01 << 4)) << 1;
|
||
1261 .loc 1 223 40
|
||
1262 00d4 B7F90630 ldrsh r3, [r7, #6]
|
||
1263 00d8 5B00 lsls r3, r3, #1
|
||
1264 00da 1BB2 sxth r3, r3
|
||
1265 00dc 03F02003 and r3, r3, #32
|
||
1266 00e0 1AB2 sxth r2, r3
|
||
1267 .loc 1 223 10
|
||
1268 00e2 B7F90A30 ldrsh r3, [r7, #10]
|
||
1269 00e6 1343 orrs r3, r3, r2
|
||
1270 00e8 1BB2 sxth r3, r3
|
||
1271 00ea 7B81 strh r3, [r7, #10] @ movhi
|
||
224:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in3 << 3;
|
||
1272 .loc 1 224 10
|
||
1273 00ec 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2
|
||
1274 00ee 1BB2 sxth r3, r3
|
||
1275 00f0 DB00 lsls r3, r3, #3
|
||
1276 00f2 1AB2 sxth r2, r3
|
||
1277 00f4 B7F90A30 ldrsh r3, [r7, #10]
|
||
1278 00f8 1343 orrs r3, r3, r2
|
||
1279 00fa 1BB2 sxth r3, r3
|
||
1280 00fc 7B81 strh r3, [r7, #10] @ movhi
|
||
225:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in2 << 2;
|
||
1281 .loc 1 225 10
|
||
1282 00fe BB7B ldrb r3, [r7, #14] @ zero_extendqisi2
|
||
1283 0100 1BB2 sxth r3, r3
|
||
1284 0102 9B00 lsls r3, r3, #2
|
||
1285 0104 1AB2 sxth r2, r3
|
||
1286 0106 B7F90A30 ldrsh r3, [r7, #10]
|
||
1287 010a 1343 orrs r3, r3, r2
|
||
1288 010c 1BB2 sxth r3, r3
|
||
1289 010e 7B81 strh r3, [r7, #10] @ movhi
|
||
226:Core/Src/ADBMS_LL_Driver.c **** newPEC |= (currentPEC & (0x01)) << 1;
|
||
1290 .loc 1 226 35
|
||
1291 0110 B7F90630 ldrsh r3, [r7, #6]
|
||
1292 0114 5B00 lsls r3, r3, #1
|
||
1293 0116 1BB2 sxth r3, r3
|
||
1294 0118 03F00203 and r3, r3, #2
|
||
1295 011c 1AB2 sxth r2, r3
|
||
1296 .loc 1 226 10
|
||
1297 011e B7F90A30 ldrsh r3, [r7, #10]
|
||
1298 0122 1343 orrs r3, r3, r2
|
||
1299 0124 1BB2 sxth r3, r3
|
||
1300 0126 7B81 strh r3, [r7, #10] @ movhi
|
||
227:Core/Src/ADBMS_LL_Driver.c **** newPEC |= in0;
|
||
1301 .loc 1 227 10
|
||
1302 0128 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
1303 012a 9AB2 uxth r2, r3
|
||
1304 012c 7B89 ldrh r3, [r7, #10] @ movhi
|
||
1305 012e 1343 orrs r3, r3, r2
|
||
1306 0130 7B81 strh r3, [r7, #10] @ movhi
|
||
228:Core/Src/ADBMS_LL_Driver.c ****
|
||
229:Core/Src/ADBMS_LL_Driver.c **** return newPEC;
|
||
1307 .loc 1 229 10
|
||
ARM GAS /tmp/cczsHaNw.s page 28
|
||
|
||
|
||
1308 0132 7B89 ldrh r3, [r7, #10]
|
||
230:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1309 .loc 1 230 1
|
||
1310 0134 1846 mov r0, r3
|
||
1311 0136 1437 adds r7, r7, #20
|
||
1312 .cfi_def_cfa_offset 4
|
||
1313 0138 BD46 mov sp, r7
|
||
1314 .cfi_def_cfa_register 13
|
||
1315 @ sp needed
|
||
1316 013a 5DF8047B ldr r7, [sp], #4
|
||
1317 .cfi_restore 7
|
||
1318 .cfi_def_cfa_offset 0
|
||
1319 013e 7047 bx lr
|
||
1320 .cfi_endproc
|
||
1321 .LFE139:
|
||
1323 .section .text.writeCMD,"ax",%progbits
|
||
1324 .align 1
|
||
1325 .global writeCMD
|
||
1326 .syntax unified
|
||
1327 .thumb
|
||
1328 .thumb_func
|
||
1330 writeCMD:
|
||
1331 .LFB140:
|
||
231:Core/Src/ADBMS_LL_Driver.c ****
|
||
232:Core/Src/ADBMS_LL_Driver.c **** uint8 writeCMD(uint16 command, const uint8 * args, uint8 arglen) {
|
||
1332 .loc 1 232 66
|
||
1333 .cfi_startproc
|
||
1334 @ args = 0, pretend = 0, frame = 24
|
||
1335 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1336 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
|
||
1337 .cfi_def_cfa_offset 28
|
||
1338 .cfi_offset 4, -28
|
||
1339 .cfi_offset 5, -24
|
||
1340 .cfi_offset 6, -20
|
||
1341 .cfi_offset 7, -16
|
||
1342 .cfi_offset 8, -12
|
||
1343 .cfi_offset 9, -8
|
||
1344 .cfi_offset 14, -4
|
||
1345 0004 87B0 sub sp, sp, #28
|
||
1346 .cfi_def_cfa_offset 56
|
||
1347 0006 00AF add r7, sp, #0
|
||
1348 .cfi_def_cfa_register 7
|
||
1349 0008 0346 mov r3, r0
|
||
1350 000a 3960 str r1, [r7]
|
||
1351 000c FB80 strh r3, [r7, #6] @ movhi
|
||
1352 000e 1346 mov r3, r2
|
||
1353 0010 7B71 strb r3, [r7, #5]
|
||
233:Core/Src/ADBMS_LL_Driver.c **** uint8 ret;
|
||
234:Core/Src/ADBMS_LL_Driver.c **** if (arglen > 0) {
|
||
1354 .loc 1 234 6
|
||
1355 0012 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2
|
||
1356 0014 002B cmp r3, #0
|
||
1357 0016 60D0 beq .L54
|
||
1358 .LBB12:
|
||
1359 .loc 1 234 19 discriminator 1
|
||
1360 0018 6B46 mov r3, sp
|
||
1361 001a 1E46 mov r6, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 29
|
||
|
||
|
||
235:Core/Src/ADBMS_LL_Driver.c **** uint8 buffer[6 + arglen]; //command + PEC (2 bytes) + data + DPEC (2 bytes)
|
||
1362 .loc 1 235 20
|
||
1363 001c 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2
|
||
1364 001e 991D adds r1, r3, #6
|
||
1365 .loc 1 235 11
|
||
1366 0020 4B1E subs r3, r1, #1
|
||
1367 0022 3B61 str r3, [r7, #16]
|
||
1368 0024 0A46 mov r2, r1
|
||
1369 0026 0023 movs r3, #0
|
||
1370 0028 9046 mov r8, r2
|
||
1371 002a 9946 mov r9, r3
|
||
1372 002c 4FF00002 mov r2, #0
|
||
1373 0030 4FF00003 mov r3, #0
|
||
1374 0034 4FEAC903 lsl r3, r9, #3
|
||
1375 0038 43EA5873 orr r3, r3, r8, lsr #29
|
||
1376 003c 4FEAC802 lsl r2, r8, #3
|
||
1377 0040 0A46 mov r2, r1
|
||
1378 0042 0023 movs r3, #0
|
||
1379 0044 1446 mov r4, r2
|
||
1380 0046 1D46 mov r5, r3
|
||
1381 0048 4FF00002 mov r2, #0
|
||
1382 004c 4FF00003 mov r3, #0
|
||
1383 0050 EB00 lsls r3, r5, #3
|
||
1384 0052 43EA5473 orr r3, r3, r4, lsr #29
|
||
1385 0056 E200 lsls r2, r4, #3
|
||
1386 0058 0B46 mov r3, r1
|
||
1387 005a 0733 adds r3, r3, #7
|
||
1388 005c DB08 lsrs r3, r3, #3
|
||
1389 005e DB00 lsls r3, r3, #3
|
||
1390 0060 ADEB030D sub sp, sp, r3
|
||
1391 0064 6B46 mov r3, sp
|
||
1392 0066 0033 adds r3, r3, #0
|
||
1393 0068 FB60 str r3, [r7, #12]
|
||
236:Core/Src/ADBMS_LL_Driver.c **** buffer[0] = (command >> 8) & 0xFF;
|
||
1394 .loc 1 236 15
|
||
1395 006a FB88 ldrh r3, [r7, #6]
|
||
1396 006c 1B0A lsrs r3, r3, #8
|
||
1397 006e 9BB2 uxth r3, r3
|
||
1398 0070 DAB2 uxtb r2, r3
|
||
1399 0072 FB68 ldr r3, [r7, #12]
|
||
1400 0074 1A70 strb r2, [r3]
|
||
237:Core/Src/ADBMS_LL_Driver.c **** buffer[1] = (command) & 0xFF;
|
||
1401 .loc 1 237 15
|
||
1402 0076 FB88 ldrh r3, [r7, #6] @ movhi
|
||
1403 0078 DAB2 uxtb r2, r3
|
||
1404 007a FB68 ldr r3, [r7, #12]
|
||
1405 007c 5A70 strb r2, [r3, #1]
|
||
238:Core/Src/ADBMS_LL_Driver.c ****
|
||
239:Core/Src/ADBMS_LL_Driver.c **** calculateCommandPEC(buffer, 4);
|
||
1406 .loc 1 239 5
|
||
1407 007e 0421 movs r1, #4
|
||
1408 0080 F868 ldr r0, [r7, #12]
|
||
1409 0082 FFF7FEFF bl calculateCommandPEC
|
||
1410 .LBB13:
|
||
240:Core/Src/ADBMS_LL_Driver.c ****
|
||
241:Core/Src/ADBMS_LL_Driver.c **** for (uint8 i = 0; i < arglen; i++) {
|
||
1411 .loc 1 241 16
|
||
ARM GAS /tmp/cczsHaNw.s page 30
|
||
|
||
|
||
1412 0086 0023 movs r3, #0
|
||
1413 0088 BB75 strb r3, [r7, #22]
|
||
1414 .loc 1 241 5
|
||
1415 008a 0AE0 b .L55
|
||
1416 .L56:
|
||
242:Core/Src/ADBMS_LL_Driver.c **** buffer[4 + i] = args[i];
|
||
1417 .loc 1 242 27
|
||
1418 008c BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
1419 008e 3A68 ldr r2, [r7]
|
||
1420 0090 1A44 add r2, r2, r3
|
||
1421 .loc 1 242 16
|
||
1422 0092 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
1423 0094 0433 adds r3, r3, #4
|
||
1424 .loc 1 242 27
|
||
1425 0096 1178 ldrb r1, [r2] @ zero_extendqisi2
|
||
1426 .loc 1 242 21
|
||
1427 0098 FA68 ldr r2, [r7, #12]
|
||
1428 009a D154 strb r1, [r2, r3]
|
||
241:Core/Src/ADBMS_LL_Driver.c **** buffer[4 + i] = args[i];
|
||
1429 .loc 1 241 36 discriminator 3
|
||
1430 009c BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
1431 009e 0133 adds r3, r3, #1
|
||
1432 00a0 BB75 strb r3, [r7, #22]
|
||
1433 .L55:
|
||
241:Core/Src/ADBMS_LL_Driver.c **** buffer[4 + i] = args[i];
|
||
1434 .loc 1 241 25 discriminator 1
|
||
1435 00a2 BA7D ldrb r2, [r7, #22] @ zero_extendqisi2
|
||
1436 00a4 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2
|
||
1437 00a6 9A42 cmp r2, r3
|
||
1438 00a8 F0D3 bcc .L56
|
||
1439 .LBE13:
|
||
243:Core/Src/ADBMS_LL_Driver.c **** }
|
||
244:Core/Src/ADBMS_LL_Driver.c ****
|
||
245:Core/Src/ADBMS_LL_Driver.c **** calculateDataPEC(&buffer[4], arglen + 2); //DPEC is calculated over the data, not the command,
|
||
1440 .loc 1 245 5
|
||
1441 00aa FB68 ldr r3, [r7, #12]
|
||
1442 00ac 1A1D adds r2, r3, #4
|
||
1443 00ae 7B79 ldrb r3, [r7, #5]
|
||
1444 00b0 0233 adds r3, r3, #2
|
||
1445 00b2 DBB2 uxtb r3, r3
|
||
1446 00b4 1946 mov r1, r3
|
||
1447 00b6 1046 mov r0, r2
|
||
1448 00b8 FFF7FEFF bl calculateDataPEC
|
||
246:Core/Src/ADBMS_LL_Driver.c ****
|
||
247:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSLow();
|
||
1449 .loc 1 247 5
|
||
1450 00bc FFF7FEFF bl mcuAdbmsCSLow
|
||
248:Core/Src/ADBMS_LL_Driver.c **** ret = mcuSPITransmit(buffer, 6 + arglen);
|
||
1451 .loc 1 248 11
|
||
1452 00c0 7B79 ldrb r3, [r7, #5]
|
||
1453 00c2 0633 adds r3, r3, #6
|
||
1454 00c4 DBB2 uxtb r3, r3
|
||
1455 00c6 1946 mov r1, r3
|
||
1456 00c8 F868 ldr r0, [r7, #12]
|
||
1457 00ca FFF7FEFF bl mcuSPITransmit
|
||
1458 00ce 0346 mov r3, r0
|
||
1459 00d0 FB75 strb r3, [r7, #23]
|
||
ARM GAS /tmp/cczsHaNw.s page 31
|
||
|
||
|
||
249:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSHigh();
|
||
1460 .loc 1 249 5
|
||
1461 00d2 FFF7FEFF bl mcuAdbmsCSHigh
|
||
1462 00d6 B546 mov sp, r6
|
||
1463 .LBE12:
|
||
1464 00d8 19E0 b .L57
|
||
1465 .L54:
|
||
1466 .LBB14:
|
||
250:Core/Src/ADBMS_LL_Driver.c **** } else {
|
||
251:Core/Src/ADBMS_LL_Driver.c **** uint8 buffer[4];
|
||
252:Core/Src/ADBMS_LL_Driver.c **** buffer[0] = (command >> 8) & 0xFF;
|
||
1467 .loc 1 252 15
|
||
1468 00da FB88 ldrh r3, [r7, #6]
|
||
1469 00dc 1B0A lsrs r3, r3, #8
|
||
1470 00de 9BB2 uxth r3, r3
|
||
1471 00e0 DBB2 uxtb r3, r3
|
||
1472 00e2 3B72 strb r3, [r7, #8]
|
||
253:Core/Src/ADBMS_LL_Driver.c **** buffer[1] = (command) & 0xFF;
|
||
1473 .loc 1 253 15
|
||
1474 00e4 FB88 ldrh r3, [r7, #6] @ movhi
|
||
1475 00e6 DBB2 uxtb r3, r3
|
||
1476 00e8 7B72 strb r3, [r7, #9]
|
||
254:Core/Src/ADBMS_LL_Driver.c **** calculateCommandPEC(buffer, 4);
|
||
1477 .loc 1 254 5
|
||
1478 00ea 07F10803 add r3, r7, #8
|
||
1479 00ee 0421 movs r1, #4
|
||
1480 00f0 1846 mov r0, r3
|
||
1481 00f2 FFF7FEFF bl calculateCommandPEC
|
||
255:Core/Src/ADBMS_LL_Driver.c ****
|
||
256:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSLow();
|
||
1482 .loc 1 256 5
|
||
1483 00f6 FFF7FEFF bl mcuAdbmsCSLow
|
||
257:Core/Src/ADBMS_LL_Driver.c ****
|
||
258:Core/Src/ADBMS_LL_Driver.c **** ret = mcuSPITransmit(buffer, 4);
|
||
1484 .loc 1 258 11
|
||
1485 00fa 07F10803 add r3, r7, #8
|
||
1486 00fe 0421 movs r1, #4
|
||
1487 0100 1846 mov r0, r3
|
||
1488 0102 FFF7FEFF bl mcuSPITransmit
|
||
1489 0106 0346 mov r3, r0
|
||
1490 0108 FB75 strb r3, [r7, #23]
|
||
259:Core/Src/ADBMS_LL_Driver.c ****
|
||
260:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSHigh();
|
||
1491 .loc 1 260 5
|
||
1492 010a FFF7FEFF bl mcuAdbmsCSHigh
|
||
1493 .L57:
|
||
1494 .LBE14:
|
||
261:Core/Src/ADBMS_LL_Driver.c **** }
|
||
262:Core/Src/ADBMS_LL_Driver.c ****
|
||
263:Core/Src/ADBMS_LL_Driver.c **** return ret;
|
||
1495 .loc 1 263 10
|
||
1496 010e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
264:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1497 .loc 1 264 1
|
||
1498 0110 1846 mov r0, r3
|
||
1499 0112 1C37 adds r7, r7, #28
|
||
1500 .cfi_def_cfa_offset 28
|
||
ARM GAS /tmp/cczsHaNw.s page 32
|
||
|
||
|
||
1501 0114 BD46 mov sp, r7
|
||
1502 .cfi_def_cfa_register 13
|
||
1503 @ sp needed
|
||
1504 0116 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
|
||
1505 .cfi_endproc
|
||
1506 .LFE140:
|
||
1508 .section .text.readCMD,"ax",%progbits
|
||
1509 .align 1
|
||
1510 .global readCMD
|
||
1511 .syntax unified
|
||
1512 .thumb
|
||
1513 .thumb_func
|
||
1515 readCMD:
|
||
1516 .LFB141:
|
||
265:Core/Src/ADBMS_LL_Driver.c ****
|
||
266:Core/Src/ADBMS_LL_Driver.c **** uint8 readCMD(uint16 command, uint8 * buffer, uint8 buflen) {
|
||
1517 .loc 1 266 61
|
||
1518 .cfi_startproc
|
||
1519 @ args = 0, pretend = 0, frame = 48
|
||
1520 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1521 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
||
1522 .cfi_def_cfa_offset 36
|
||
1523 .cfi_offset 4, -36
|
||
1524 .cfi_offset 5, -32
|
||
1525 .cfi_offset 6, -28
|
||
1526 .cfi_offset 7, -24
|
||
1527 .cfi_offset 8, -20
|
||
1528 .cfi_offset 9, -16
|
||
1529 .cfi_offset 10, -12
|
||
1530 .cfi_offset 11, -8
|
||
1531 .cfi_offset 14, -4
|
||
1532 0004 8DB0 sub sp, sp, #52
|
||
1533 .cfi_def_cfa_offset 88
|
||
1534 0006 00AF add r7, sp, #0
|
||
1535 .cfi_def_cfa_register 7
|
||
1536 0008 0346 mov r3, r0
|
||
1537 000a 3961 str r1, [r7, #16]
|
||
1538 000c FB82 strh r3, [r7, #22] @ movhi
|
||
1539 000e 1346 mov r3, r2
|
||
1540 0010 7B75 strb r3, [r7, #21]
|
||
1541 .loc 1 266 61
|
||
1542 0012 6B46 mov r3, sp
|
||
1543 0014 7B60 str r3, [r7, #4]
|
||
267:Core/Src/ADBMS_LL_Driver.c **** uint8 txbuffer[6 + buflen];
|
||
1544 .loc 1 267 20
|
||
1545 0016 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
1546 0018 991D adds r1, r3, #6
|
||
1547 .loc 1 267 9
|
||
1548 001a 4B1E subs r3, r1, #1
|
||
1549 001c BB62 str r3, [r7, #40]
|
||
1550 001e 0A46 mov r2, r1
|
||
1551 0020 0023 movs r3, #0
|
||
1552 0022 BA60 str r2, [r7, #8]
|
||
1553 0024 FB60 str r3, [r7, #12]
|
||
1554 0026 4FF00002 mov r2, #0
|
||
1555 002a 4FF00003 mov r3, #0
|
||
1556 002e F868 ldr r0, [r7, #12]
|
||
ARM GAS /tmp/cczsHaNw.s page 33
|
||
|
||
|
||
1557 0030 C300 lsls r3, r0, #3
|
||
1558 0032 B868 ldr r0, [r7, #8]
|
||
1559 0034 43EA5073 orr r3, r3, r0, lsr #29
|
||
1560 0038 B868 ldr r0, [r7, #8]
|
||
1561 003a C200 lsls r2, r0, #3
|
||
1562 003c 0A46 mov r2, r1
|
||
1563 003e 0023 movs r3, #0
|
||
1564 0040 9246 mov r10, r2
|
||
1565 0042 9B46 mov fp, r3
|
||
1566 0044 4FF00002 mov r2, #0
|
||
1567 0048 4FF00003 mov r3, #0
|
||
1568 004c 4FEACB03 lsl r3, fp, #3
|
||
1569 0050 43EA5A73 orr r3, r3, r10, lsr #29
|
||
1570 0054 4FEACA02 lsl r2, r10, #3
|
||
1571 0058 0B46 mov r3, r1
|
||
1572 005a 0733 adds r3, r3, #7
|
||
1573 005c DB08 lsrs r3, r3, #3
|
||
1574 005e DB00 lsls r3, r3, #3
|
||
1575 0060 ADEB030D sub sp, sp, r3
|
||
1576 0064 6B46 mov r3, sp
|
||
1577 0066 0033 adds r3, r3, #0
|
||
1578 0068 7B62 str r3, [r7, #36]
|
||
268:Core/Src/ADBMS_LL_Driver.c **** uint8 rxbuffer[6 + buflen];
|
||
1579 .loc 1 268 20
|
||
1580 006a 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
1581 006c 9E1D adds r6, r3, #6
|
||
1582 .loc 1 268 9
|
||
1583 006e 731E subs r3, r6, #1
|
||
1584 0070 3B62 str r3, [r7, #32]
|
||
1585 0072 3246 mov r2, r6
|
||
1586 0074 0023 movs r3, #0
|
||
1587 0076 9046 mov r8, r2
|
||
1588 0078 9946 mov r9, r3
|
||
1589 007a 4FF00002 mov r2, #0
|
||
1590 007e 4FF00003 mov r3, #0
|
||
1591 0082 4FEAC903 lsl r3, r9, #3
|
||
1592 0086 43EA5873 orr r3, r3, r8, lsr #29
|
||
1593 008a 4FEAC802 lsl r2, r8, #3
|
||
1594 008e 3246 mov r2, r6
|
||
1595 0090 0023 movs r3, #0
|
||
1596 0092 1446 mov r4, r2
|
||
1597 0094 1D46 mov r5, r3
|
||
1598 0096 4FF00002 mov r2, #0
|
||
1599 009a 4FF00003 mov r3, #0
|
||
1600 009e EB00 lsls r3, r5, #3
|
||
1601 00a0 43EA5473 orr r3, r3, r4, lsr #29
|
||
1602 00a4 E200 lsls r2, r4, #3
|
||
1603 00a6 3346 mov r3, r6
|
||
1604 00a8 0733 adds r3, r3, #7
|
||
1605 00aa DB08 lsrs r3, r3, #3
|
||
1606 00ac DB00 lsls r3, r3, #3
|
||
1607 00ae ADEB030D sub sp, sp, r3
|
||
1608 00b2 6B46 mov r3, sp
|
||
1609 00b4 0033 adds r3, r3, #0
|
||
1610 00b6 FB61 str r3, [r7, #28]
|
||
269:Core/Src/ADBMS_LL_Driver.c ****
|
||
270:Core/Src/ADBMS_LL_Driver.c **** txbuffer[0] = (command >> 8) & 0xFF;
|
||
ARM GAS /tmp/cczsHaNw.s page 34
|
||
|
||
|
||
1611 .loc 1 270 15
|
||
1612 00b8 FB8A ldrh r3, [r7, #22]
|
||
1613 00ba 1B0A lsrs r3, r3, #8
|
||
1614 00bc 9BB2 uxth r3, r3
|
||
1615 00be DAB2 uxtb r2, r3
|
||
1616 00c0 7B6A ldr r3, [r7, #36]
|
||
1617 00c2 1A70 strb r2, [r3]
|
||
271:Core/Src/ADBMS_LL_Driver.c **** txbuffer[1] = (command)&0xFF;
|
||
1618 .loc 1 271 15
|
||
1619 00c4 FB8A ldrh r3, [r7, #22] @ movhi
|
||
1620 00c6 DAB2 uxtb r2, r3
|
||
1621 00c8 7B6A ldr r3, [r7, #36]
|
||
1622 00ca 5A70 strb r2, [r3, #1]
|
||
272:Core/Src/ADBMS_LL_Driver.c **** calculateCommandPEC(txbuffer, 4);
|
||
1623 .loc 1 272 3
|
||
1624 00cc 0421 movs r1, #4
|
||
1625 00ce 786A ldr r0, [r7, #36]
|
||
1626 00d0 FFF7FEFF bl calculateCommandPEC
|
||
273:Core/Src/ADBMS_LL_Driver.c ****
|
||
274:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSLow();
|
||
1627 .loc 1 274 3
|
||
1628 00d4 FFF7FEFF bl mcuAdbmsCSLow
|
||
275:Core/Src/ADBMS_LL_Driver.c **** uint8 status = mcuSPITransmitReceive(rxbuffer, txbuffer, 6 + buflen);
|
||
1629 .loc 1 275 18
|
||
1630 00d8 7B7D ldrb r3, [r7, #21]
|
||
1631 00da 0633 adds r3, r3, #6
|
||
1632 00dc DBB2 uxtb r3, r3
|
||
1633 00de 1A46 mov r2, r3
|
||
1634 00e0 796A ldr r1, [r7, #36]
|
||
1635 00e2 F869 ldr r0, [r7, #28]
|
||
1636 00e4 FFF7FEFF bl mcuSPITransmitReceive
|
||
1637 00e8 0346 mov r3, r0
|
||
1638 00ea FB76 strb r3, [r7, #27]
|
||
276:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSHigh();
|
||
1639 .loc 1 276 3
|
||
1640 00ec FFF7FEFF bl mcuAdbmsCSHigh
|
||
277:Core/Src/ADBMS_LL_Driver.c ****
|
||
278:Core/Src/ADBMS_LL_Driver.c **** if (status != 0) {
|
||
1641 .loc 1 278 6
|
||
1642 00f0 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2
|
||
1643 00f2 002B cmp r3, #0
|
||
1644 00f4 01D0 beq .L60
|
||
279:Core/Src/ADBMS_LL_Driver.c **** return status;
|
||
1645 .loc 1 279 12
|
||
1646 00f6 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2
|
||
1647 00f8 28E0 b .L61
|
||
1648 .L60:
|
||
1649 .LBB15:
|
||
280:Core/Src/ADBMS_LL_Driver.c **** }
|
||
281:Core/Src/ADBMS_LL_Driver.c ****
|
||
282:Core/Src/ADBMS_LL_Driver.c **** for (uint8 i = 0; i < buflen; i++) {
|
||
1650 .loc 1 282 14
|
||
1651 00fa 0023 movs r3, #0
|
||
1652 00fc 87F82F30 strb r3, [r7, #47]
|
||
1653 .loc 1 282 3
|
||
1654 0100 0EE0 b .L62
|
||
1655 .L63:
|
||
ARM GAS /tmp/cczsHaNw.s page 35
|
||
|
||
|
||
283:Core/Src/ADBMS_LL_Driver.c **** buffer[i] = rxbuffer[i + 4];
|
||
1656 .loc 1 283 28
|
||
1657 0102 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
|
||
1658 0106 1A1D adds r2, r3, #4
|
||
1659 .loc 1 283 11
|
||
1660 0108 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
|
||
1661 010c 3969 ldr r1, [r7, #16]
|
||
1662 010e 0B44 add r3, r3, r1
|
||
1663 .loc 1 283 25
|
||
1664 0110 F969 ldr r1, [r7, #28]
|
||
1665 0112 8A5C ldrb r2, [r1, r2] @ zero_extendqisi2
|
||
1666 .loc 1 283 15
|
||
1667 0114 1A70 strb r2, [r3]
|
||
282:Core/Src/ADBMS_LL_Driver.c **** buffer[i] = rxbuffer[i + 4];
|
||
1668 .loc 1 282 34 discriminator 3
|
||
1669 0116 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
|
||
1670 011a 0133 adds r3, r3, #1
|
||
1671 011c 87F82F30 strb r3, [r7, #47]
|
||
1672 .L62:
|
||
282:Core/Src/ADBMS_LL_Driver.c **** buffer[i] = rxbuffer[i + 4];
|
||
1673 .loc 1 282 23 discriminator 1
|
||
1674 0120 97F82F20 ldrb r2, [r7, #47] @ zero_extendqisi2
|
||
1675 0124 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
|
||
1676 0126 9A42 cmp r2, r3
|
||
1677 0128 EBD3 bcc .L63
|
||
1678 .LBE15:
|
||
284:Core/Src/ADBMS_LL_Driver.c **** }
|
||
285:Core/Src/ADBMS_LL_Driver.c ****
|
||
286:Core/Src/ADBMS_LL_Driver.c **** [[maybe_unused]] uint8 commandCounter = rxbuffer[sizeof(rxbuffer) - 2] & 0xFC; //command counter
|
||
1679 .loc 1 286 58
|
||
1680 012a 3346 mov r3, r6
|
||
1681 .loc 1 286 69
|
||
1682 012c 023B subs r3, r3, #2
|
||
1683 .loc 1 286 51
|
||
1684 012e FA69 ldr r2, [r7, #28]
|
||
1685 0130 D35C ldrb r3, [r2, r3] @ zero_extendqisi2
|
||
1686 .loc 1 286 26
|
||
1687 0132 23F00303 bic r3, r3, #3
|
||
1688 0136 BB76 strb r3, [r7, #26]
|
||
287:Core/Src/ADBMS_LL_Driver.c **** //TODO: check comm
|
||
288:Core/Src/ADBMS_LL_Driver.c ****
|
||
289:Core/Src/ADBMS_LL_Driver.c **** return checkDataPEC(&rxbuffer[4], buflen + 2);
|
||
1689 .loc 1 289 10
|
||
1690 0138 FB69 ldr r3, [r7, #28]
|
||
1691 013a 1A1D adds r2, r3, #4
|
||
1692 013c 7B7D ldrb r3, [r7, #21]
|
||
1693 013e 0233 adds r3, r3, #2
|
||
1694 0140 DBB2 uxtb r3, r3
|
||
1695 0142 1946 mov r1, r3
|
||
1696 0144 1046 mov r0, r2
|
||
1697 0146 FFF7FEFF bl checkDataPEC
|
||
1698 014a 0346 mov r3, r0
|
||
1699 .L61:
|
||
1700 014c D7F804D0 ldr sp, [r7, #4]
|
||
290:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1701 .loc 1 290 1
|
||
1702 0150 1846 mov r0, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 36
|
||
|
||
|
||
1703 0152 3437 adds r7, r7, #52
|
||
1704 .cfi_def_cfa_offset 36
|
||
1705 0154 BD46 mov sp, r7
|
||
1706 .cfi_def_cfa_register 13
|
||
1707 @ sp needed
|
||
1708 0156 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
||
1709 .cfi_endproc
|
||
1710 .LFE141:
|
||
1712 .section .text.pollCMD,"ax",%progbits
|
||
1713 .align 1
|
||
1714 .global pollCMD
|
||
1715 .syntax unified
|
||
1716 .thumb
|
||
1717 .thumb_func
|
||
1719 pollCMD:
|
||
1720 .LFB142:
|
||
291:Core/Src/ADBMS_LL_Driver.c ****
|
||
292:Core/Src/ADBMS_LL_Driver.c **** //check poll command - no data PEC sent back
|
||
293:Core/Src/ADBMS_LL_Driver.c **** uint8 pollCMD(uint16 command) {
|
||
1721 .loc 1 293 31
|
||
1722 .cfi_startproc
|
||
1723 @ args = 0, pretend = 0, frame = 24
|
||
1724 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1725 0000 80B5 push {r7, lr}
|
||
1726 .cfi_def_cfa_offset 8
|
||
1727 .cfi_offset 7, -8
|
||
1728 .cfi_offset 14, -4
|
||
1729 0002 86B0 sub sp, sp, #24
|
||
1730 .cfi_def_cfa_offset 32
|
||
1731 0004 00AF add r7, sp, #0
|
||
1732 .cfi_def_cfa_register 7
|
||
1733 0006 0346 mov r3, r0
|
||
1734 0008 FB80 strh r3, [r7, #6] @ movhi
|
||
294:Core/Src/ADBMS_LL_Driver.c **** uint8 txbuffer[5] = {};
|
||
1735 .loc 1 294 9
|
||
1736 000a 07F11003 add r3, r7, #16
|
||
1737 000e 0022 movs r2, #0
|
||
1738 0010 1A60 str r2, [r3]
|
||
1739 0012 1A71 strb r2, [r3, #4]
|
||
295:Core/Src/ADBMS_LL_Driver.c **** uint8 rxbuffer[5] = {};
|
||
1740 .loc 1 295 9
|
||
1741 0014 07F10803 add r3, r7, #8
|
||
1742 0018 0022 movs r2, #0
|
||
1743 001a 1A60 str r2, [r3]
|
||
1744 001c 1A71 strb r2, [r3, #4]
|
||
296:Core/Src/ADBMS_LL_Driver.c ****
|
||
297:Core/Src/ADBMS_LL_Driver.c **** txbuffer[0] = (command >> 8) & 0xFF;
|
||
1745 .loc 1 297 15
|
||
1746 001e FB88 ldrh r3, [r7, #6]
|
||
1747 0020 1B0A lsrs r3, r3, #8
|
||
1748 0022 9BB2 uxth r3, r3
|
||
1749 0024 DBB2 uxtb r3, r3
|
||
1750 0026 3B74 strb r3, [r7, #16]
|
||
298:Core/Src/ADBMS_LL_Driver.c **** txbuffer[1] = (command)&0xFF;
|
||
1751 .loc 1 298 15
|
||
1752 0028 FB88 ldrh r3, [r7, #6] @ movhi
|
||
1753 002a DBB2 uxtb r3, r3
|
||
ARM GAS /tmp/cczsHaNw.s page 37
|
||
|
||
|
||
1754 002c 7B74 strb r3, [r7, #17]
|
||
299:Core/Src/ADBMS_LL_Driver.c **** calculateCommandPEC(txbuffer, 4);
|
||
1755 .loc 1 299 3
|
||
1756 002e 07F11003 add r3, r7, #16
|
||
1757 0032 0421 movs r1, #4
|
||
1758 0034 1846 mov r0, r3
|
||
1759 0036 FFF7FEFF bl calculateCommandPEC
|
||
300:Core/Src/ADBMS_LL_Driver.c ****
|
||
301:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSLow();
|
||
1760 .loc 1 301 3
|
||
1761 003a FFF7FEFF bl mcuAdbmsCSLow
|
||
302:Core/Src/ADBMS_LL_Driver.c **** uint8 status = mcuSPITransmitReceive(rxbuffer, txbuffer, 5);
|
||
1762 .loc 1 302 18
|
||
1763 003e 07F11001 add r1, r7, #16
|
||
1764 0042 07F10803 add r3, r7, #8
|
||
1765 0046 0522 movs r2, #5
|
||
1766 0048 1846 mov r0, r3
|
||
1767 004a FFF7FEFF bl mcuSPITransmitReceive
|
||
1768 004e 0346 mov r3, r0
|
||
1769 0050 FB75 strb r3, [r7, #23]
|
||
303:Core/Src/ADBMS_LL_Driver.c **** mcuAdbmsCSHigh();
|
||
1770 .loc 1 303 3
|
||
1771 0052 FFF7FEFF bl mcuAdbmsCSHigh
|
||
304:Core/Src/ADBMS_LL_Driver.c ****
|
||
305:Core/Src/ADBMS_LL_Driver.c **** if (status != 0) {
|
||
1772 .loc 1 305 6
|
||
1773 0056 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
1774 0058 002B cmp r3, #0
|
||
1775 005a 01D0 beq .L66
|
||
306:Core/Src/ADBMS_LL_Driver.c **** return status;
|
||
1776 .loc 1 306 12
|
||
1777 005c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
1778 005e 00E0 b .L68
|
||
1779 .L66:
|
||
307:Core/Src/ADBMS_LL_Driver.c **** }
|
||
308:Core/Src/ADBMS_LL_Driver.c ****
|
||
309:Core/Src/ADBMS_LL_Driver.c **** return rxbuffer[4]; //last byte will be poll response
|
||
1780 .loc 1 309 18
|
||
1781 0060 3B7B ldrb r3, [r7, #12] @ zero_extendqisi2
|
||
1782 .L68:
|
||
310:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1783 .loc 1 310 1
|
||
1784 0062 1846 mov r0, r3
|
||
1785 0064 1837 adds r7, r7, #24
|
||
1786 .cfi_def_cfa_offset 8
|
||
1787 0066 BD46 mov sp, r7
|
||
1788 .cfi_def_cfa_register 13
|
||
1789 @ sp needed
|
||
1790 0068 80BD pop {r7, pc}
|
||
1791 .cfi_endproc
|
||
1792 .LFE142:
|
||
1794 .section .text.mcuAdbmsCSLow,"ax",%progbits
|
||
1795 .align 1
|
||
1796 .global mcuAdbmsCSLow
|
||
1797 .syntax unified
|
||
1798 .thumb
|
||
1799 .thumb_func
|
||
ARM GAS /tmp/cczsHaNw.s page 38
|
||
|
||
|
||
1801 mcuAdbmsCSLow:
|
||
1802 .LFB143:
|
||
311:Core/Src/ADBMS_LL_Driver.c ****
|
||
312:Core/Src/ADBMS_LL_Driver.c **** void mcuAdbmsCSLow() {
|
||
1803 .loc 1 312 22
|
||
1804 .cfi_startproc
|
||
1805 @ args = 0, pretend = 0, frame = 0
|
||
1806 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1807 0000 80B5 push {r7, lr}
|
||
1808 .cfi_def_cfa_offset 8
|
||
1809 .cfi_offset 7, -8
|
||
1810 .cfi_offset 14, -4
|
||
1811 0002 00AF add r7, sp, #0
|
||
1812 .cfi_def_cfa_register 7
|
||
313:Core/Src/ADBMS_LL_Driver.c **** HAL_GPIO_WritePin(CSB_GPIO_Port, CSB_Pin, GPIO_PIN_RESET);
|
||
1813 .loc 1 313 3
|
||
1814 0004 0022 movs r2, #0
|
||
1815 0006 1021 movs r1, #16
|
||
1816 0008 4FF09040 mov r0, #1207959552
|
||
1817 000c FFF7FEFF bl HAL_GPIO_WritePin
|
||
314:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1818 .loc 1 314 1
|
||
1819 0010 00BF nop
|
||
1820 0012 80BD pop {r7, pc}
|
||
1821 .cfi_endproc
|
||
1822 .LFE143:
|
||
1824 .section .text.mcuAdbmsCSHigh,"ax",%progbits
|
||
1825 .align 1
|
||
1826 .global mcuAdbmsCSHigh
|
||
1827 .syntax unified
|
||
1828 .thumb
|
||
1829 .thumb_func
|
||
1831 mcuAdbmsCSHigh:
|
||
1832 .LFB144:
|
||
315:Core/Src/ADBMS_LL_Driver.c ****
|
||
316:Core/Src/ADBMS_LL_Driver.c **** void mcuAdbmsCSHigh() {
|
||
1833 .loc 1 316 23
|
||
1834 .cfi_startproc
|
||
1835 @ args = 0, pretend = 0, frame = 0
|
||
1836 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1837 0000 80B5 push {r7, lr}
|
||
1838 .cfi_def_cfa_offset 8
|
||
1839 .cfi_offset 7, -8
|
||
1840 .cfi_offset 14, -4
|
||
1841 0002 00AF add r7, sp, #0
|
||
1842 .cfi_def_cfa_register 7
|
||
317:Core/Src/ADBMS_LL_Driver.c **** HAL_GPIO_WritePin(CSB_GPIO_Port, CSB_Pin, GPIO_PIN_SET);
|
||
1843 .loc 1 317 3
|
||
1844 0004 0122 movs r2, #1
|
||
1845 0006 1021 movs r1, #16
|
||
1846 0008 4FF09040 mov r0, #1207959552
|
||
1847 000c FFF7FEFF bl HAL_GPIO_WritePin
|
||
318:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1848 .loc 1 318 1
|
||
1849 0010 00BF nop
|
||
1850 0012 80BD pop {r7, pc}
|
||
1851 .cfi_endproc
|
||
ARM GAS /tmp/cczsHaNw.s page 39
|
||
|
||
|
||
1852 .LFE144:
|
||
1854 .section .text.mcuSPITransmit,"ax",%progbits
|
||
1855 .align 1
|
||
1856 .global mcuSPITransmit
|
||
1857 .syntax unified
|
||
1858 .thumb
|
||
1859 .thumb_func
|
||
1861 mcuSPITransmit:
|
||
1862 .LFB145:
|
||
319:Core/Src/ADBMS_LL_Driver.c ****
|
||
320:Core/Src/ADBMS_LL_Driver.c **** uint8 mcuSPITransmit(uint8* buffer, uint8 buffersize) {
|
||
1863 .loc 1 320 55
|
||
1864 .cfi_startproc
|
||
1865 @ args = 0, pretend = 0, frame = 24
|
||
1866 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1867 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
|
||
1868 .cfi_def_cfa_offset 28
|
||
1869 .cfi_offset 4, -28
|
||
1870 .cfi_offset 5, -24
|
||
1871 .cfi_offset 6, -20
|
||
1872 .cfi_offset 7, -16
|
||
1873 .cfi_offset 8, -12
|
||
1874 .cfi_offset 9, -8
|
||
1875 .cfi_offset 14, -4
|
||
1876 0004 89B0 sub sp, sp, #36
|
||
1877 .cfi_def_cfa_offset 64
|
||
1878 0006 02AF add r7, sp, #8
|
||
1879 .cfi_def_cfa 7, 56
|
||
1880 0008 7860 str r0, [r7, #4]
|
||
1881 000a 0B46 mov r3, r1
|
||
1882 000c FB70 strb r3, [r7, #3]
|
||
1883 .loc 1 320 55
|
||
1884 000e 6B46 mov r3, sp
|
||
1885 0010 1E46 mov r6, r3
|
||
321:Core/Src/ADBMS_LL_Driver.c **** uint8 rxbuf[buffersize];
|
||
1886 .loc 1 321 5
|
||
1887 0012 F978 ldrb r1, [r7, #3] @ zero_extendqisi2
|
||
1888 .loc 1 321 11
|
||
1889 0014 0B46 mov r3, r1
|
||
1890 0016 013B subs r3, r3, #1
|
||
1891 0018 7B61 str r3, [r7, #20]
|
||
1892 001a CBB2 uxtb r3, r1
|
||
1893 001c 0022 movs r2, #0
|
||
1894 001e 9846 mov r8, r3
|
||
1895 0020 9146 mov r9, r2
|
||
1896 0022 4FF00002 mov r2, #0
|
||
1897 0026 4FF00003 mov r3, #0
|
||
1898 002a 4FEAC903 lsl r3, r9, #3
|
||
1899 002e 43EA5873 orr r3, r3, r8, lsr #29
|
||
1900 0032 4FEAC802 lsl r2, r8, #3
|
||
1901 0036 CBB2 uxtb r3, r1
|
||
1902 0038 0022 movs r2, #0
|
||
1903 003a 1C46 mov r4, r3
|
||
1904 003c 1546 mov r5, r2
|
||
1905 003e 4FF00002 mov r2, #0
|
||
1906 0042 4FF00003 mov r3, #0
|
||
1907 0046 EB00 lsls r3, r5, #3
|
||
ARM GAS /tmp/cczsHaNw.s page 40
|
||
|
||
|
||
1908 0048 43EA5473 orr r3, r3, r4, lsr #29
|
||
1909 004c E200 lsls r2, r4, #3
|
||
1910 004e 0B46 mov r3, r1
|
||
1911 0050 0733 adds r3, r3, #7
|
||
1912 0052 DB08 lsrs r3, r3, #3
|
||
1913 0054 DB00 lsls r3, r3, #3
|
||
1914 0056 ADEB030D sub sp, sp, r3
|
||
1915 005a 02AB add r3, sp, #8
|
||
1916 005c 0033 adds r3, r3, #0
|
||
1917 005e 3B61 str r3, [r7, #16]
|
||
322:Core/Src/ADBMS_LL_Driver.c **** const HAL_StatusTypeDef status = HAL_SPI_TransmitReceive(adbmsspi, buffer, rxbuf, buffersize,
|
||
1918 .loc 1 322 38
|
||
1919 0060 0F4B ldr r3, .L73
|
||
1920 0062 1868 ldr r0, [r3]
|
||
1921 0064 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
1922 0066 9BB2 uxth r3, r3
|
||
1923 0068 6422 movs r2, #100
|
||
1924 006a 0092 str r2, [sp]
|
||
1925 006c 3A69 ldr r2, [r7, #16]
|
||
1926 006e 7968 ldr r1, [r7, #4]
|
||
1927 0070 FFF7FEFF bl HAL_SPI_TransmitReceive
|
||
1928 0074 0346 mov r3, r0
|
||
1929 0076 FB73 strb r3, [r7, #15]
|
||
1930 .LBB16:
|
||
323:Core/Src/ADBMS_LL_Driver.c **** ADBMS_SPI_TIMEOUT);
|
||
324:Core/Src/ADBMS_LL_Driver.c **** __HAL_SPI_CLEAR_OVRFLAG(adbmsspi);
|
||
1931 .loc 1 324 3
|
||
1932 0078 0023 movs r3, #0
|
||
1933 007a BB60 str r3, [r7, #8]
|
||
1934 007c 084B ldr r3, .L73
|
||
1935 007e 1B68 ldr r3, [r3]
|
||
1936 0080 1B68 ldr r3, [r3]
|
||
1937 0082 DB68 ldr r3, [r3, #12]
|
||
1938 0084 BB60 str r3, [r7, #8]
|
||
1939 0086 064B ldr r3, .L73
|
||
1940 0088 1B68 ldr r3, [r3]
|
||
1941 008a 1B68 ldr r3, [r3]
|
||
1942 008c 9B68 ldr r3, [r3, #8]
|
||
1943 008e BB60 str r3, [r7, #8]
|
||
1944 0090 BB68 ldr r3, [r7, #8]
|
||
1945 .LBE16:
|
||
325:Core/Src/ADBMS_LL_Driver.c **** return status;
|
||
1946 .loc 1 325 10
|
||
1947 0092 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
1948 0094 B546 mov sp, r6
|
||
326:Core/Src/ADBMS_LL_Driver.c **** }
|
||
1949 .loc 1 326 1
|
||
1950 0096 1846 mov r0, r3
|
||
1951 0098 1C37 adds r7, r7, #28
|
||
1952 .cfi_def_cfa_offset 28
|
||
1953 009a BD46 mov sp, r7
|
||
1954 .cfi_def_cfa_register 13
|
||
1955 @ sp needed
|
||
1956 009c BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
|
||
1957 .L74:
|
||
1958 .align 2
|
||
1959 .L73:
|
||
ARM GAS /tmp/cczsHaNw.s page 41
|
||
|
||
|
||
1960 00a0 00000000 .word adbmsspi
|
||
1961 .cfi_endproc
|
||
1962 .LFE145:
|
||
1964 .section .text.mcuSPIReceive,"ax",%progbits
|
||
1965 .align 1
|
||
1966 .global mcuSPIReceive
|
||
1967 .syntax unified
|
||
1968 .thumb
|
||
1969 .thumb_func
|
||
1971 mcuSPIReceive:
|
||
1972 .LFB146:
|
||
327:Core/Src/ADBMS_LL_Driver.c ****
|
||
328:Core/Src/ADBMS_LL_Driver.c **** uint8 mcuSPIReceive(uint8* buffer, uint8 buffersize) {
|
||
1973 .loc 1 328 54
|
||
1974 .cfi_startproc
|
||
1975 @ args = 0, pretend = 0, frame = 16
|
||
1976 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1977 0000 80B5 push {r7, lr}
|
||
1978 .cfi_def_cfa_offset 8
|
||
1979 .cfi_offset 7, -8
|
||
1980 .cfi_offset 14, -4
|
||
1981 0002 84B0 sub sp, sp, #16
|
||
1982 .cfi_def_cfa_offset 24
|
||
1983 0004 00AF add r7, sp, #0
|
||
1984 .cfi_def_cfa_register 7
|
||
1985 0006 7860 str r0, [r7, #4]
|
||
1986 0008 0B46 mov r3, r1
|
||
1987 000a FB70 strb r3, [r7, #3]
|
||
329:Core/Src/ADBMS_LL_Driver.c **** const HAL_StatusTypeDef status = HAL_SPI_Receive(adbmsspi, buffer, buffersize, ADBMS_SPI_TIMEOU
|
||
1988 .loc 1 329 38
|
||
1989 000c 074B ldr r3, .L77
|
||
1990 000e 1868 ldr r0, [r3]
|
||
1991 0010 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
|
||
1992 0012 9AB2 uxth r2, r3
|
||
1993 0014 6423 movs r3, #100
|
||
1994 0016 7968 ldr r1, [r7, #4]
|
||
1995 0018 FFF7FEFF bl HAL_SPI_Receive
|
||
1996 001c 0346 mov r3, r0
|
||
1997 001e FB73 strb r3, [r7, #15]
|
||
330:Core/Src/ADBMS_LL_Driver.c **** return status;
|
||
1998 .loc 1 330 10
|
||
1999 0020 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
331:Core/Src/ADBMS_LL_Driver.c **** }
|
||
2000 .loc 1 331 1
|
||
2001 0022 1846 mov r0, r3
|
||
2002 0024 1037 adds r7, r7, #16
|
||
2003 .cfi_def_cfa_offset 8
|
||
2004 0026 BD46 mov sp, r7
|
||
2005 .cfi_def_cfa_register 13
|
||
2006 @ sp needed
|
||
2007 0028 80BD pop {r7, pc}
|
||
2008 .L78:
|
||
2009 002a 00BF .align 2
|
||
2010 .L77:
|
||
2011 002c 00000000 .word adbmsspi
|
||
2012 .cfi_endproc
|
||
2013 .LFE146:
|
||
ARM GAS /tmp/cczsHaNw.s page 42
|
||
|
||
|
||
2015 .section .text.mcuSPITransmitReceive,"ax",%progbits
|
||
2016 .align 1
|
||
2017 .global mcuSPITransmitReceive
|
||
2018 .syntax unified
|
||
2019 .thumb
|
||
2020 .thumb_func
|
||
2022 mcuSPITransmitReceive:
|
||
2023 .LFB147:
|
||
332:Core/Src/ADBMS_LL_Driver.c ****
|
||
333:Core/Src/ADBMS_LL_Driver.c **** uint8 mcuSPITransmitReceive(uint8* rxbuffer, uint8* txbuffer,
|
||
334:Core/Src/ADBMS_LL_Driver.c **** uint8 buffersize) {
|
||
2024 .loc 1 334 47
|
||
2025 .cfi_startproc
|
||
2026 @ args = 0, pretend = 0, frame = 24
|
||
2027 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2028 0000 80B5 push {r7, lr}
|
||
2029 .cfi_def_cfa_offset 8
|
||
2030 .cfi_offset 7, -8
|
||
2031 .cfi_offset 14, -4
|
||
2032 0002 88B0 sub sp, sp, #32
|
||
2033 .cfi_def_cfa_offset 40
|
||
2034 0004 02AF add r7, sp, #8
|
||
2035 .cfi_def_cfa 7, 32
|
||
2036 0006 F860 str r0, [r7, #12]
|
||
2037 0008 B960 str r1, [r7, #8]
|
||
2038 000a 1346 mov r3, r2
|
||
2039 000c FB71 strb r3, [r7, #7]
|
||
335:Core/Src/ADBMS_LL_Driver.c **** const HAL_StatusTypeDef status = HAL_SPI_TransmitReceive(adbmsspi, txbuffer, rxbuffer, buffersi
|
||
2040 .loc 1 335 38
|
||
2041 000e 084B ldr r3, .L81
|
||
2042 0010 1868 ldr r0, [r3]
|
||
2043 0012 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
|
||
2044 0014 9BB2 uxth r3, r3
|
||
2045 0016 6422 movs r2, #100
|
||
2046 0018 0092 str r2, [sp]
|
||
2047 001a FA68 ldr r2, [r7, #12]
|
||
2048 001c B968 ldr r1, [r7, #8]
|
||
2049 001e FFF7FEFF bl HAL_SPI_TransmitReceive
|
||
2050 0022 0346 mov r3, r0
|
||
2051 0024 FB75 strb r3, [r7, #23]
|
||
336:Core/Src/ADBMS_LL_Driver.c **** ADBMS_SPI_TIMEOUT);
|
||
337:Core/Src/ADBMS_LL_Driver.c **** return status;
|
||
2052 .loc 1 337 10
|
||
2053 0026 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
338:Core/Src/ADBMS_LL_Driver.c **** }
|
||
2054 .loc 1 338 1
|
||
2055 0028 1846 mov r0, r3
|
||
2056 002a 1837 adds r7, r7, #24
|
||
2057 .cfi_def_cfa_offset 8
|
||
2058 002c BD46 mov sp, r7
|
||
2059 .cfi_def_cfa_register 13
|
||
2060 @ sp needed
|
||
2061 002e 80BD pop {r7, pc}
|
||
2062 .L82:
|
||
2063 .align 2
|
||
2064 .L81:
|
||
2065 0030 00000000 .word adbmsspi
|
||
ARM GAS /tmp/cczsHaNw.s page 43
|
||
|
||
|
||
2066 .cfi_endproc
|
||
2067 .LFE147:
|
||
2069 .section .text.mcuDelay,"ax",%progbits
|
||
2070 .align 1
|
||
2071 .global mcuDelay
|
||
2072 .syntax unified
|
||
2073 .thumb
|
||
2074 .thumb_func
|
||
2076 mcuDelay:
|
||
2077 .LFB148:
|
||
339:Core/Src/ADBMS_LL_Driver.c ****
|
||
340:Core/Src/ADBMS_LL_Driver.c **** inline void mcuDelay(uint16 delay) { HAL_Delay(delay); }
|
||
2078 .loc 1 340 36
|
||
2079 .cfi_startproc
|
||
2080 @ args = 0, pretend = 0, frame = 8
|
||
2081 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2082 0000 80B5 push {r7, lr}
|
||
2083 .cfi_def_cfa_offset 8
|
||
2084 .cfi_offset 7, -8
|
||
2085 .cfi_offset 14, -4
|
||
2086 0002 82B0 sub sp, sp, #8
|
||
2087 .cfi_def_cfa_offset 16
|
||
2088 0004 00AF add r7, sp, #0
|
||
2089 .cfi_def_cfa_register 7
|
||
2090 0006 0346 mov r3, r0
|
||
2091 0008 FB80 strh r3, [r7, #6] @ movhi
|
||
2092 .loc 1 340 38
|
||
2093 000a FB88 ldrh r3, [r7, #6]
|
||
2094 000c 1846 mov r0, r3
|
||
2095 000e FFF7FEFF bl HAL_Delay
|
||
2096 .loc 1 340 56
|
||
2097 0012 00BF nop
|
||
2098 0014 0837 adds r7, r7, #8
|
||
2099 .cfi_def_cfa_offset 8
|
||
2100 0016 BD46 mov sp, r7
|
||
2101 .cfi_def_cfa_register 13
|
||
2102 @ sp needed
|
||
2103 0018 80BD pop {r7, pc}
|
||
2104 .cfi_endproc
|
||
2105 .LFE148:
|
||
2107 .text
|
||
2108 .Letext0:
|
||
2109 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
2110 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
2111 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
|
||
2112 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
|
||
2113 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h"
|
||
2114 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
|
||
2115 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h"
|
||
2116 .file 9 "Core/Inc/ADBMS_LL_Driver.h"
|
||
2117 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
|
||
ARM GAS /tmp/cczsHaNw.s page 44
|
||
|
||
|
||
DEFINED SYMBOLS
|
||
*ABS*:00000000 ADBMS_LL_Driver.c
|
||
/tmp/cczsHaNw.s:25 .bss.adbmsspi:00000000 adbmsspi
|
||
/tmp/cczsHaNw.s:22 .bss.adbmsspi:00000000 $d
|
||
/tmp/cczsHaNw.s:28 .text.adbmsDriverInit:00000000 $t
|
||
/tmp/cczsHaNw.s:34 .text.adbmsDriverInit:00000000 adbmsDriverInit
|
||
/tmp/cczsHaNw.s:1801 .text.mcuAdbmsCSLow:00000000 mcuAdbmsCSLow
|
||
/tmp/cczsHaNw.s:1831 .text.mcuAdbmsCSHigh:00000000 mcuAdbmsCSHigh
|
||
/tmp/cczsHaNw.s:73 .text.adbmsDriverInit:00000028 $d
|
||
/tmp/cczsHaNw.s:78 .text.calculateCommandPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:84 .text.calculateCommandPEC:00000000 calculateCommandPEC
|
||
/tmp/cczsHaNw.s:356 .text.updateCommandPEC:00000000 updateCommandPEC
|
||
/tmp/cczsHaNw.s:209 .text.checkCommandPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:215 .text.checkCommandPEC:00000000 checkCommandPEC
|
||
/tmp/cczsHaNw.s:350 .text.updateCommandPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:638 .text.pec10_calc:00000000 $t
|
||
/tmp/cczsHaNw.s:644 .text.pec10_calc:00000000 pec10_calc
|
||
/tmp/cczsHaNw.s:817 .text.calculateDataPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:823 .text.calculateDataPEC:00000000 calculateDataPEC
|
||
/tmp/cczsHaNw.s:897 .text.checkDataPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:903 .text.checkDataPEC:00000000 checkDataPEC
|
||
/tmp/cczsHaNw.s:1048 .text.F_CRC_CalculaCheckSum:00000000 F_CRC_CalculaCheckSum
|
||
/tmp/cczsHaNw.s:956 .text.F_CRC_ObtenValorDeTabla:00000000 $t
|
||
/tmp/cczsHaNw.s:961 .text.F_CRC_ObtenValorDeTabla:00000000 F_CRC_ObtenValorDeTabla
|
||
/tmp/cczsHaNw.s:1042 .text.F_CRC_CalculaCheckSum:00000000 $t
|
||
/tmp/cczsHaNw.s:1135 .text.updateDataPEC:00000000 $t
|
||
/tmp/cczsHaNw.s:1141 .text.updateDataPEC:00000000 updateDataPEC
|
||
/tmp/cczsHaNw.s:1324 .text.writeCMD:00000000 $t
|
||
/tmp/cczsHaNw.s:1330 .text.writeCMD:00000000 writeCMD
|
||
/tmp/cczsHaNw.s:1861 .text.mcuSPITransmit:00000000 mcuSPITransmit
|
||
/tmp/cczsHaNw.s:1509 .text.readCMD:00000000 $t
|
||
/tmp/cczsHaNw.s:1515 .text.readCMD:00000000 readCMD
|
||
/tmp/cczsHaNw.s:2022 .text.mcuSPITransmitReceive:00000000 mcuSPITransmitReceive
|
||
/tmp/cczsHaNw.s:1713 .text.pollCMD:00000000 $t
|
||
/tmp/cczsHaNw.s:1719 .text.pollCMD:00000000 pollCMD
|
||
/tmp/cczsHaNw.s:1795 .text.mcuAdbmsCSLow:00000000 $t
|
||
/tmp/cczsHaNw.s:1825 .text.mcuAdbmsCSHigh:00000000 $t
|
||
/tmp/cczsHaNw.s:1855 .text.mcuSPITransmit:00000000 $t
|
||
/tmp/cczsHaNw.s:1960 .text.mcuSPITransmit:000000a0 $d
|
||
/tmp/cczsHaNw.s:1965 .text.mcuSPIReceive:00000000 $t
|
||
/tmp/cczsHaNw.s:1971 .text.mcuSPIReceive:00000000 mcuSPIReceive
|
||
/tmp/cczsHaNw.s:2011 .text.mcuSPIReceive:0000002c $d
|
||
/tmp/cczsHaNw.s:2016 .text.mcuSPITransmitReceive:00000000 $t
|
||
/tmp/cczsHaNw.s:2065 .text.mcuSPITransmitReceive:00000030 $d
|
||
/tmp/cczsHaNw.s:2070 .text.mcuDelay:00000000 $t
|
||
/tmp/cczsHaNw.s:2076 .text.mcuDelay:00000000 mcuDelay
|
||
|
||
UNDEFINED SYMBOLS
|
||
HAL_Delay
|
||
HAL_GPIO_WritePin
|
||
HAL_SPI_TransmitReceive
|
||
HAL_SPI_Receive
|