B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spd-lorabees/build/RegionCommon.lst

1997 lines
94 KiB

ARM GAS /tmp/ccAkEbCV.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "RegionCommon.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.RegionCommonGetJoinDc,"ax",%progbits
16 .align 1
17 .global RegionCommonGetJoinDc
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 RegionCommonGetJoinDc:
24 .LFB83:
25 .file 1 "./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c"
1:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** /*
2:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** / _____) _ | |
3:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( (____ _____ ____ _| |_ _____ ____| |__
4:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** \____ \| ___ | (_ _) ___ |/ ___) _ \
5:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** _____) ) ____| | | || |_| ____( (___| | | |
6:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** (______/|_____)_|_|_| \__)_____)\____)_| |_|
7:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** (C)2013 Semtech
8:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ___ _____ _ ___ _ _____ ___ ___ ___ ___
9:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
10:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
11:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
12:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** embedded.connectivity.solutions===============
13:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
14:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** Description: LoRa MAC common region implementation
15:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
16:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** License: Revised BSD License, see LICENSE.TXT file include in the project
17:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
18:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** Maintainer: Miguel Luis ( Semtech ), Gregory Cristian ( Semtech ) and Daniel Jaeckle ( STACKFORCE )
19:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** */
20:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
21:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include <stdbool.h>
22:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include <string.h>
23:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include <stdint.h>
24:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include <math.h>
25:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
26:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include "timer.h"
27:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include "utilities.h"
28:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include "LoRaMac.h"
29:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #include "RegionCommon.h"
30:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
31:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
32:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
33:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #define BACKOFF_DC_1_HOUR 100
ARM GAS /tmp/ccAkEbCV.s page 2
34:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #define BACKOFF_DC_10_HOURS 1000
35:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** #define BACKOFF_DC_24_HOURS 10000
36:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
37:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
38:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
39:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** static uint8_t CountChannels( uint16_t mask, uint8_t nbBits )
40:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
41:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t nbActiveBits = 0;
42:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
43:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t j = 0; j < nbBits; j++ )
44:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
45:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( mask & ( 1 << j ) ) == ( 1 << j ) )
46:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
47:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nbActiveBits++;
48:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
49:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
50:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return nbActiveBits;
51:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
52:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
53:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
54:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
55:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint16_t RegionCommonGetJoinDc( TimerTime_t elapsedTime )
56:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
26 .loc 1 56 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 @ link register save eliminated.
31 .LVL0:
57:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint16_t dutyCycle = 0;
58:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
59:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( elapsedTime < 3600000 )
32 .loc 1 59 0
33 0000 064B ldr r3, .L6
34 0002 9842 cmp r0, r3
35 0004 07D9 bls .L3
60:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
61:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** dutyCycle = BACKOFF_DC_1_HOUR;
62:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
63:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else if( elapsedTime < ( 3600000 + 36000000 ) )
36 .loc 1 63 0
37 0006 064B ldr r3, .L6+4
38 0008 9842 cmp r0, r3
39 000a 01D9 bls .L5
64:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
65:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** dutyCycle = BACKOFF_DC_10_HOURS;
66:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
67:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
68:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
69:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** dutyCycle = BACKOFF_DC_24_HOURS;
40 .loc 1 69 0
41 000c 0548 ldr r0, .L6+8
42 .LVL1:
43 000e 03E0 b .L2
44 .LVL2:
45 .L5:
65:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
ARM GAS /tmp/ccAkEbCV.s page 3
46 .loc 1 65 0
47 0010 FA20 movs r0, #250
48 .LVL3:
49 0012 8000 lsls r0, r0, #2
50 0014 00E0 b .L2
51 .LVL4:
52 .L3:
61:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
53 .loc 1 61 0
54 0016 6420 movs r0, #100
55 .LVL5:
56 .L2:
70:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
71:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return dutyCycle;
72:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
57 .loc 1 72 0
58 @ sp needed
59 0018 7047 bx lr
60 .L7:
61 001a C046 .align 2
62 .L6:
63 001c 7FEE3600 .word 3599999
64 0020 7F3F5C02 .word 39599999
65 0024 10270000 .word 10000
66 .cfi_endproc
67 .LFE83:
69 .section .text.RegionCommonChanVerifyDr,"ax",%progbits
70 .align 1
71 .global RegionCommonChanVerifyDr
72 .syntax unified
73 .code 16
74 .thumb_func
75 .fpu softvfp
77 RegionCommonChanVerifyDr:
78 .LFB84:
73:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
74:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bool RegionCommonChanVerifyDr( uint8_t nbChannels, uint16_t* channelsMask, int8_t dr, int8_t minDr,
75:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
79 .loc 1 75 0
80 .cfi_startproc
81 @ args = 8, pretend = 0, frame = 0
82 @ frame_needed = 0, uses_anonymous_args = 0
83 .LVL6:
84 0000 F0B5 push {r4, r5, r6, r7, lr}
85 .LCFI0:
86 .cfi_def_cfa_offset 20
87 .cfi_offset 4, -20
88 .cfi_offset 5, -16
89 .cfi_offset 6, -12
90 .cfi_offset 7, -8
91 .cfi_offset 14, -4
92 0002 CE46 mov lr, r9
93 0004 4746 mov r7, r8
94 0006 80B5 push {r7, lr}
95 .LCFI1:
96 .cfi_def_cfa_offset 28
97 .cfi_offset 8, -28
ARM GAS /tmp/ccAkEbCV.s page 4
98 .cfi_offset 9, -24
99 0008 8046 mov r8, r0
100 000a 07AC add r4, sp, #28
101 .LVL7:
102 000c 2478 ldrb r4, [r4]
103 .LVL8:
104 000e 64B2 sxtb r4, r4
105 0010 0898 ldr r0, [sp, #32]
106 .LVL9:
107 0012 8146 mov r9, r0
108 .LVL10:
109 .LBB16:
110 .LBB17:
76:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( RegionCommonValueInRange( dr, minDr, maxDr ) == 0 )
77:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
78:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return false;
79:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
80:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
81:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t i = 0, k = 0; i < nbChannels; i += 16, k++ )
82:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
83:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t j = 0; j < 16; j++ )
84:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
85:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( ( channelsMask[k] & ( 1 << j ) ) != 0 ) )
86:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {// Check datarate validity for enabled channels
87:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( RegionCommonValueInRange( dr, ( channels[i + j].DrRange.Fields.Min & 0x0F ),
88:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( channels[i + j].DrRange.Fields.Max & 0x0F ) ) =
89:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
90:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // At least 1 channel has been found we can return OK.
91:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return true;
92:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
93:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
94:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
95:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
96:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return false;
97:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
98:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
99:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t RegionCommonValueInRange( int8_t value, int8_t min, int8_t max )
100:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
101:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( value >= min ) && ( value <= max ) )
111 .loc 1 101 0
112 0014 9A42 cmp r2, r3
113 0016 2DDB blt .L14
114 0018 A242 cmp r2, r4
115 001a 02DC bgt .L18
116 .LBE17:
117 .LBE16:
118 .LBB18:
81:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
119 .loc 1 81 0
120 001c 0025 movs r5, #0
121 001e 0026 movs r6, #0
122 0020 22E0 b .L10
123 .L18:
124 .LBE18:
78:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
125 .loc 1 78 0
126 0022 0020 movs r0, #0
ARM GAS /tmp/ccAkEbCV.s page 5
127 0024 27E0 b .L9
128 .LVL11:
129 .L11:
130 .LBB23:
131 .LBB19:
83:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
132 .loc 1 83 0 discriminator 2
133 0026 0133 adds r3, r3, #1
134 .LVL12:
135 0028 DBB2 uxtb r3, r3
136 .LVL13:
137 .L13:
83:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
138 .loc 1 83 0 is_stmt 0 discriminator 1
139 002a 0F2B cmp r3, #15
140 002c 18D8 bhi .L19
85:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {// Check datarate validity for enabled channels
141 .loc 1 85 0 is_stmt 1
142 002e 6C00 lsls r4, r5, #1
143 0030 645A ldrh r4, [r4, r1]
144 0032 1C41 asrs r4, r4, r3
145 0034 E007 lsls r0, r4, #31
146 0036 F6D5 bpl .L11
87:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( channels[i + j].DrRange.Fields.Max & 0x0F ) ) =
147 .loc 1 87 0
148 0038 F018 adds r0, r6, r3
149 003a 4400 lsls r4, r0, #1
150 003c 2018 adds r0, r4, r0
151 003e 8400 lsls r4, r0, #2
152 0040 4C44 add r4, r4, r9
153 0042 277A ldrb r7, [r4, #8]
154 0044 3C01 lsls r4, r7, #4
155 0046 64B2 sxtb r4, r4
156 0048 2411 asrs r4, r4, #4
157 004a 0F20 movs r0, #15
158 004c 0440 ands r4, r0
88:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
159 .loc 1 88 0
160 004e 7FB2 sxtb r7, r7
161 0050 3F11 asrs r7, r7, #4
87:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( channels[i + j].DrRange.Fields.Max & 0x0F ) ) =
162 .loc 1 87 0
163 0052 0740 ands r7, r0
164 .LVL14:
165 .LBB20:
166 .LBB21:
167 .loc 1 101 0
168 0054 9442 cmp r4, r2
169 0056 E6DC bgt .L11
170 0058 9742 cmp r7, r2
171 005a E4DB blt .L11
172 .LBE21:
173 .LBE20:
91:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
174 .loc 1 91 0
175 005c 0120 movs r0, #1
176 005e 0AE0 b .L9
ARM GAS /tmp/ccAkEbCV.s page 6
177 .LVL15:
178 .L19:
179 .LBE19:
81:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
180 .loc 1 81 0 discriminator 2
181 0060 1036 adds r6, r6, #16
182 .LVL16:
183 0062 F6B2 uxtb r6, r6
184 .LVL17:
185 0064 0135 adds r5, r5, #1
186 .LVL18:
187 0066 EDB2 uxtb r5, r5
188 .LVL19:
189 .L10:
81:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
190 .loc 1 81 0 is_stmt 0 discriminator 1
191 0068 4645 cmp r6, r8
192 006a 01D2 bcs .L20
193 .LBB22:
83:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
194 .loc 1 83 0 is_stmt 1
195 006c 0023 movs r3, #0
196 006e DCE7 b .L13
197 .L20:
198 .LBE22:
199 .LBE23:
96:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
200 .loc 1 96 0
201 0070 0020 movs r0, #0
202 .LBB24:
203 0072 00E0 b .L9
204 .LVL20:
205 .L14:
206 .LBE24:
78:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
207 .loc 1 78 0
208 0074 0020 movs r0, #0
209 .LVL21:
210 .L9:
97:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
211 .loc 1 97 0
212 @ sp needed
213 0076 0CBC pop {r2, r3}
214 0078 9046 mov r8, r2
215 007a 9946 mov r9, r3
216 007c F0BD pop {r4, r5, r6, r7, pc}
217 .cfi_endproc
218 .LFE84:
220 .section .text.RegionCommonValueInRange,"ax",%progbits
221 .align 1
222 .global RegionCommonValueInRange
223 .syntax unified
224 .code 16
225 .thumb_func
226 .fpu softvfp
228 RegionCommonValueInRange:
229 .LFB85:
ARM GAS /tmp/ccAkEbCV.s page 7
100:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( value >= min ) && ( value <= max ) )
230 .loc 1 100 0
231 .cfi_startproc
232 @ args = 0, pretend = 0, frame = 0
233 @ frame_needed = 0, uses_anonymous_args = 0
234 @ link register save eliminated.
235 .LVL22:
236 .loc 1 101 0
237 0000 8842 cmp r0, r1
238 0002 03DB blt .L23
239 .loc 1 101 0 is_stmt 0 discriminator 1
240 0004 9042 cmp r0, r2
241 0006 03DD ble .L24
102:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
103:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return 1;
104:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
105:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return 0;
242 .loc 1 105 0 is_stmt 1
243 0008 0020 movs r0, #0
244 .LVL23:
245 000a 00E0 b .L22
246 .LVL24:
247 .L23:
248 000c 0020 movs r0, #0
249 .LVL25:
250 .L22:
106:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
251 .loc 1 106 0
252 @ sp needed
253 000e 7047 bx lr
254 .LVL26:
255 .L24:
103:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
256 .loc 1 103 0
257 0010 0120 movs r0, #1
258 .LVL27:
259 0012 FCE7 b .L22
260 .cfi_endproc
261 .LFE85:
263 .section .text.RegionCommonChanDisable,"ax",%progbits
264 .align 1
265 .global RegionCommonChanDisable
266 .syntax unified
267 .code 16
268 .thumb_func
269 .fpu softvfp
271 RegionCommonChanDisable:
272 .LFB86:
107:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
108:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bool RegionCommonChanDisable( uint16_t* channelsMask, uint8_t id, uint8_t maxChannels )
109:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
273 .loc 1 109 0
274 .cfi_startproc
275 @ args = 0, pretend = 0, frame = 0
276 @ frame_needed = 0, uses_anonymous_args = 0
277 .LVL28:
278 0000 10B5 push {r4, lr}
ARM GAS /tmp/ccAkEbCV.s page 8
279 .LCFI2:
280 .cfi_def_cfa_offset 8
281 .cfi_offset 4, -8
282 .cfi_offset 14, -4
110:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t index = id / 16;
283 .loc 1 110 0
284 0002 0B09 lsrs r3, r1, #4
285 .LVL29:
111:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
112:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( index > ( maxChannels / 16 ) ) || ( id >= maxChannels ) )
286 .loc 1 112 0
287 0004 1409 lsrs r4, r2, #4
288 0006 9C42 cmp r4, r3
289 0008 0CD3 bcc .L27
290 .loc 1 112 0 is_stmt 0 discriminator 1
291 000a 9142 cmp r1, r2
292 000c 0CD2 bcs .L28
113:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
114:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return false;
115:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
116:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
117:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Deactivate channel
118:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** channelsMask[index] &= ~( 1 << ( id % 16 ) );
293 .loc 1 118 0 is_stmt 1
294 000e 5B00 lsls r3, r3, #1
295 .LVL30:
296 0010 C318 adds r3, r0, r3
297 0012 0F22 movs r2, #15
298 .LVL31:
299 0014 0A40 ands r2, r1
300 0016 0121 movs r1, #1
301 .LVL32:
302 0018 9140 lsls r1, r1, r2
303 001a 1A88 ldrh r2, [r3]
304 001c 8A43 bics r2, r1
305 001e 1A80 strh r2, [r3]
119:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
120:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return true;
306 .loc 1 120 0
307 0020 0120 movs r0, #1
308 .LVL33:
309 0022 00E0 b .L26
310 .LVL34:
311 .L27:
114:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
312 .loc 1 114 0
313 0024 0020 movs r0, #0
314 .LVL35:
315 .L26:
121:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
316 .loc 1 121 0
317 @ sp needed
318 0026 10BD pop {r4, pc}
319 .LVL36:
320 .L28:
114:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
321 .loc 1 114 0
ARM GAS /tmp/ccAkEbCV.s page 9
322 0028 0020 movs r0, #0
323 .LVL37:
324 002a FCE7 b .L26
325 .cfi_endproc
326 .LFE86:
328 .section .text.RegionCommonCountChannels,"ax",%progbits
329 .align 1
330 .global RegionCommonCountChannels
331 .syntax unified
332 .code 16
333 .thumb_func
334 .fpu softvfp
336 RegionCommonCountChannels:
337 .LFB87:
122:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
123:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t RegionCommonCountChannels( uint16_t* channelsMask, uint8_t startIdx, uint8_t stopIdx )
124:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
338 .loc 1 124 0
339 .cfi_startproc
340 @ args = 0, pretend = 0, frame = 0
341 @ frame_needed = 0, uses_anonymous_args = 0
342 .LVL38:
343 0000 F0B5 push {r4, r5, r6, r7, lr}
344 .LCFI3:
345 .cfi_def_cfa_offset 20
346 .cfi_offset 4, -20
347 .cfi_offset 5, -16
348 .cfi_offset 6, -12
349 .cfi_offset 7, -8
350 .cfi_offset 14, -4
351 0002 9446 mov ip, r2
352 .LVL39:
125:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t nbChannels = 0;
126:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
127:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( channelsMask == NULL )
353 .loc 1 127 0
354 0004 0028 cmp r0, #0
355 0006 19D0 beq .L36
125:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t nbChannels = 0;
356 .loc 1 125 0
357 0008 0022 movs r2, #0
358 .LVL40:
359 000a 10E0 b .L31
360 .LVL41:
361 .L33:
362 .LBB25:
363 .LBB26:
364 .LBB27:
365 .LBB28:
43:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
366 .loc 1 43 0
367 000c 0133 adds r3, r3, #1
368 .LVL42:
369 000e DBB2 uxtb r3, r3
370 .LVL43:
371 .L32:
372 0010 0F2B cmp r3, #15
ARM GAS /tmp/ccAkEbCV.s page 10
373 0012 08D8 bhi .L37
45:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
374 .loc 1 45 0
375 0014 0124 movs r4, #1
376 0016 9C40 lsls r4, r4, r3
377 0018 2500 movs r5, r4
378 001a 3D40 ands r5, r7
379 001c AC42 cmp r4, r5
380 001e F5D1 bne .L33
47:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
381 .loc 1 47 0
382 0020 0136 adds r6, r6, #1
383 .LVL44:
384 0022 F6B2 uxtb r6, r6
385 .LVL45:
386 0024 F2E7 b .L33
387 .L37:
388 .LVL46:
389 .LBE28:
390 .LBE27:
391 .LBE26:
128:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
129:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return 0;
130:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
131:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
132:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t i = startIdx; i < stopIdx; i++ )
133:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
134:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nbChannels += CountChannels( channelsMask[i], 16 );
392 .loc 1 134 0
393 0026 9219 adds r2, r2, r6
394 .LVL47:
395 0028 D2B2 uxtb r2, r2
396 .LVL48:
132:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
397 .loc 1 132 0
398 002a 0131 adds r1, r1, #1
399 .LVL49:
400 002c C9B2 uxtb r1, r1
401 .LVL50:
402 .L31:
132:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
403 .loc 1 132 0 is_stmt 0 discriminator 1
404 002e 6145 cmp r1, ip
405 0030 05D2 bcs .L30
406 .loc 1 134 0 is_stmt 1 discriminator 3
407 0032 4B00 lsls r3, r1, #1
408 0034 C75A ldrh r7, [r0, r3]
409 .LVL51:
410 .LBB31:
411 .LBB30:
412 .LBB29:
43:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
413 .loc 1 43 0 discriminator 3
414 0036 0023 movs r3, #0
415 .LBE29:
41:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
416 .loc 1 41 0 discriminator 3
ARM GAS /tmp/ccAkEbCV.s page 11
417 0038 0026 movs r6, #0
418 003a E9E7 b .L32
419 .LVL52:
420 .L36:
421 .LBE30:
422 .LBE31:
423 .LBE25:
129:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
424 .loc 1 129 0
425 003c 0022 movs r2, #0
426 .LVL53:
427 .L30:
135:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
136:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
137:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return nbChannels;
138:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
428 .loc 1 138 0
429 003e 1000 movs r0, r2
430 .LVL54:
431 @ sp needed
432 0040 F0BD pop {r4, r5, r6, r7, pc}
433 .cfi_endproc
434 .LFE87:
436 .section .text.RegionCommonChanMaskCopy,"ax",%progbits
437 .align 1
438 .global RegionCommonChanMaskCopy
439 .syntax unified
440 .code 16
441 .thumb_func
442 .fpu softvfp
444 RegionCommonChanMaskCopy:
445 .LFB88:
139:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
140:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** void RegionCommonChanMaskCopy( uint16_t* channelsMaskDest, uint16_t* channelsMaskSrc, uint8_t len )
141:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
446 .loc 1 141 0
447 .cfi_startproc
448 @ args = 0, pretend = 0, frame = 0
449 @ frame_needed = 0, uses_anonymous_args = 0
450 .LVL55:
451 0000 30B5 push {r4, r5, lr}
452 .LCFI4:
453 .cfi_def_cfa_offset 12
454 .cfi_offset 4, -12
455 .cfi_offset 5, -8
456 .cfi_offset 14, -4
142:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( channelsMaskDest != NULL ) && ( channelsMaskSrc != NULL ) )
457 .loc 1 142 0
458 0002 0028 cmp r0, #0
459 0004 0AD0 beq .L38
460 .loc 1 142 0 is_stmt 0 discriminator 1
461 0006 0029 cmp r1, #0
462 0008 08D0 beq .L38
463 .LBB32:
143:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
144:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t i = 0; i < len; i++ )
464 .loc 1 144 0 is_stmt 1
ARM GAS /tmp/ccAkEbCV.s page 12
465 000a 0023 movs r3, #0
466 000c 04E0 b .L40
467 .LVL56:
468 .L41:
145:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
146:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** channelsMaskDest[i] = channelsMaskSrc[i];
469 .loc 1 146 0 discriminator 3
470 000e 5C00 lsls r4, r3, #1
471 0010 0D5B ldrh r5, [r1, r4]
472 0012 0553 strh r5, [r0, r4]
144:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
473 .loc 1 144 0 discriminator 3
474 0014 0133 adds r3, r3, #1
475 .LVL57:
476 0016 DBB2 uxtb r3, r3
477 .LVL58:
478 .L40:
144:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
479 .loc 1 144 0 is_stmt 0 discriminator 1
480 0018 9342 cmp r3, r2
481 001a F8D3 bcc .L41
482 .LVL59:
483 .L38:
484 .LBE32:
147:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
148:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
149:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
485 .loc 1 149 0 is_stmt 1
486 @ sp needed
487 001c 30BD pop {r4, r5, pc}
488 .cfi_endproc
489 .LFE88:
491 .section .text.RegionCommonSetBandTxDone,"ax",%progbits
492 .align 1
493 .global RegionCommonSetBandTxDone
494 .syntax unified
495 .code 16
496 .thumb_func
497 .fpu softvfp
499 RegionCommonSetBandTxDone:
500 .LFB89:
150:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
151:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** void RegionCommonSetBandTxDone( bool joined, Band_t* band, TimerTime_t lastTxDone )
152:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
501 .loc 1 152 0
502 .cfi_startproc
503 @ args = 0, pretend = 0, frame = 0
504 @ frame_needed = 0, uses_anonymous_args = 0
505 @ link register save eliminated.
506 .LVL60:
153:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( joined == true )
507 .loc 1 153 0
508 0000 0028 cmp r0, #0
509 0002 02D1 bne .L46
154:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
155:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** band->LastTxDoneTime = lastTxDone;
156:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
ARM GAS /tmp/ccAkEbCV.s page 13
157:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
158:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
159:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** band->LastTxDoneTime = lastTxDone;
510 .loc 1 159 0
511 0004 8A60 str r2, [r1, #8]
160:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** band->LastJoinTxDoneTime = lastTxDone;
512 .loc 1 160 0
513 0006 4A60 str r2, [r1, #4]
514 .L43:
161:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
162:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
515 .loc 1 162 0
516 @ sp needed
517 0008 7047 bx lr
518 .L46:
155:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
519 .loc 1 155 0
520 000a 8A60 str r2, [r1, #8]
521 000c FCE7 b .L43
522 .cfi_endproc
523 .LFE89:
525 .section .text.RegionCommonUpdateBandTimeOff,"ax",%progbits
526 .align 1
527 .global RegionCommonUpdateBandTimeOff
528 .syntax unified
529 .code 16
530 .thumb_func
531 .fpu softvfp
533 RegionCommonUpdateBandTimeOff:
534 .LFB90:
163:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
164:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** TimerTime_t RegionCommonUpdateBandTimeOff( bool joined, bool dutyCycle, Band_t* bands, uint8_t nbBa
165:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
535 .loc 1 165 0
536 .cfi_startproc
537 @ args = 0, pretend = 0, frame = 0
538 @ frame_needed = 0, uses_anonymous_args = 0
539 .LVL61:
540 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
541 .LCFI5:
542 .cfi_def_cfa_offset 24
543 .cfi_offset 3, -24
544 .cfi_offset 4, -20
545 .cfi_offset 5, -16
546 .cfi_offset 6, -12
547 .cfi_offset 7, -8
548 .cfi_offset 14, -4
549 0002 DE46 mov lr, fp
550 0004 5746 mov r7, r10
551 0006 4E46 mov r6, r9
552 0008 4546 mov r5, r8
553 000a E0B5 push {r5, r6, r7, lr}
554 .LCFI6:
555 .cfi_def_cfa_offset 40
556 .cfi_offset 8, -40
557 .cfi_offset 9, -36
558 .cfi_offset 10, -32
ARM GAS /tmp/ccAkEbCV.s page 14
559 .cfi_offset 11, -28
560 000c 8046 mov r8, r0
561 000e 0E00 movs r6, r1
562 0010 9146 mov r9, r2
563 0012 1F00 movs r7, r3
564 .LVL62:
565 .LBB33:
166:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** TimerTime_t nextTxDelay = ( TimerTime_t )( -1 );
167:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
168:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Update bands Time OFF
169:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** for( uint8_t i = 0; i < nbBands; i++ )
566 .loc 1 169 0
567 0014 0024 movs r4, #0
568 .LBE33:
166:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** TimerTime_t nextTxDelay = ( TimerTime_t )( -1 );
569 .loc 1 166 0
570 0016 0123 movs r3, #1
571 .LVL63:
572 0018 5B42 rsbs r3, r3, #0
573 001a 9A46 mov r10, r3
574 .LBB35:
575 .loc 1 169 0
576 001c 37E0 b .L48
577 .LVL64:
578 .L66:
579 .LBB34:
170:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
171:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( joined == false )
172:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
173:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint32_t txDoneTime = MAX( TimerGetElapsedTime( bands[i].LastJoinTxDoneTime ),
580 .loc 1 173 0
581 001e 2501 lsls r5, r4, #4
582 0020 4D44 add r5, r5, r9
583 0022 6868 ldr r0, [r5, #4]
584 0024 FFF7FEFF bl TimerGetElapsedTime
585 .LVL65:
586 0028 8346 mov fp, r0
587 002a 002E cmp r6, #0
588 002c 12D1 bne .L61
589 002e 0020 movs r0, #0
590 .L50:
591 .loc 1 173 0 is_stmt 0 discriminator 4
592 0030 8345 cmp fp, r0
593 0032 13D8 bhi .L62
594 .loc 1 173 0 discriminator 6
595 0034 002E cmp r6, #0
596 0036 15D1 bne .L63
597 .loc 1 173 0
598 0038 0020 movs r0, #0
599 .L52:
600 .LVL66:
174:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( dutyCycle == true ) ? TimerGetElapsedTime( bands[i].LastT
175:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
176:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( bands[i].TimeOff <= txDoneTime )
601 .loc 1 176 0 is_stmt 1 discriminator 12
602 003a EB68 ldr r3, [r5, #12]
603 003c 8342 cmp r3, r0
ARM GAS /tmp/ccAkEbCV.s page 15
604 003e 01D8 bhi .L53
177:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
178:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bands[i].TimeOff = 0;
605 .loc 1 178 0
606 0040 0023 movs r3, #0
607 0042 EB60 str r3, [r5, #12]
608 .L53:
179:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
180:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( bands[i].TimeOff != 0 )
609 .loc 1 180 0
610 0044 EB68 ldr r3, [r5, #12]
611 0046 002B cmp r3, #0
612 0048 1FD0 beq .L54
181:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
182:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay = MIN( bands[i].TimeOff - txDoneTime, nextTxDelay );
613 .loc 1 182 0
614 004a 1B1A subs r3, r3, r0
615 004c 9A45 cmp r10, r3
616 004e 1CD9 bls .L54
617 0050 9A46 mov r10, r3
618 .LVL67:
619 0052 1AE0 b .L54
620 .LVL68:
621 .L61:
173:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( dutyCycle == true ) ? TimerGetElapsedTime( bands[i].LastT
622 .loc 1 173 0 discriminator 1
623 0054 A868 ldr r0, [r5, #8]
624 0056 FFF7FEFF bl TimerGetElapsedTime
625 .LVL69:
626 005a E9E7 b .L50
627 .L62:
173:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( dutyCycle == true ) ? TimerGetElapsedTime( bands[i].LastT
628 .loc 1 173 0 is_stmt 0 discriminator 5
629 005c 6868 ldr r0, [r5, #4]
630 005e FFF7FEFF bl TimerGetElapsedTime
631 .LVL70:
632 0062 EAE7 b .L52
633 .L63:
173:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** ( dutyCycle == true ) ? TimerGetElapsedTime( bands[i].LastT
634 .loc 1 173 0 discriminator 8
635 0064 A868 ldr r0, [r5, #8]
636 0066 FFF7FEFF bl TimerGetElapsedTime
637 .LVL71:
638 006a E6E7 b .L52
639 .L67:
640 .LBE34:
183:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
184:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
185:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
186:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
187:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( dutyCycle == true )
188:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
189:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( bands[i].TimeOff <= TimerGetElapsedTime( bands[i].LastTxDoneTime ) )
641 .loc 1 189 0 is_stmt 1
642 006c 2501 lsls r5, r4, #4
643 006e 4D44 add r5, r5, r9
644 0070 EB68 ldr r3, [r5, #12]
ARM GAS /tmp/ccAkEbCV.s page 16
645 0072 9B46 mov fp, r3
646 0074 A868 ldr r0, [r5, #8]
647 0076 FFF7FEFF bl TimerGetElapsedTime
648 .LVL72:
649 007a 8345 cmp fp, r0
650 007c 01D8 bhi .L57
190:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
191:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bands[i].TimeOff = 0;
651 .loc 1 191 0
652 007e 0023 movs r3, #0
653 0080 EB60 str r3, [r5, #12]
654 .L57:
192:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
193:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( bands[i].TimeOff != 0 )
655 .loc 1 193 0
656 0082 EB68 ldr r3, [r5, #12]
657 0084 9B46 mov fp, r3
658 0086 002B cmp r3, #0
659 0088 0FD1 bne .L64
660 .LVL73:
661 .L54:
169:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
662 .loc 1 169 0 discriminator 2
663 008a 0134 adds r4, r4, #1
664 .LVL74:
665 008c E4B2 uxtb r4, r4
666 .LVL75:
667 .L48:
169:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
668 .loc 1 169 0 is_stmt 0 discriminator 1
669 008e BC42 cmp r4, r7
670 0090 1BD2 bcs .L65
171:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
671 .loc 1 171 0 is_stmt 1
672 0092 4346 mov r3, r8
673 0094 002B cmp r3, #0
674 0096 C2D0 beq .L66
187:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
675 .loc 1 187 0
676 0098 002E cmp r6, #0
677 009a E7D1 bne .L67
678 .LVL76:
194:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
195:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay = MIN( bands[i].TimeOff - TimerGetElapsedTime( bands[i].LastTxDoneT
196:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay );
197:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
198:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
199:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
200:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
201:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay = 0;
202:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bands[i].TimeOff = 0;
679 .loc 1 202 0
680 009c 2301 lsls r3, r4, #4
681 009e 4B44 add r3, r3, r9
682 00a0 0022 movs r2, #0
683 00a2 DA60 str r2, [r3, #12]
201:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** bands[i].TimeOff = 0;
ARM GAS /tmp/ccAkEbCV.s page 17
684 .loc 1 201 0
685 00a4 0023 movs r3, #0
686 00a6 9A46 mov r10, r3
687 00a8 EFE7 b .L54
688 .LVL77:
689 .L64:
195:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay );
690 .loc 1 195 0
691 00aa A868 ldr r0, [r5, #8]
692 00ac FFF7FEFF bl TimerGetElapsedTime
693 .LVL78:
694 00b0 5B46 mov r3, fp
695 00b2 181A subs r0, r3, r0
696 00b4 5045 cmp r0, r10
697 00b6 E8D2 bcs .L54
195:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nextTxDelay );
698 .loc 1 195 0 is_stmt 0 discriminator 1
699 00b8 EB68 ldr r3, [r5, #12]
700 00ba 9A46 mov r10, r3
701 .LVL79:
702 00bc A868 ldr r0, [r5, #8]
703 00be FFF7FEFF bl TimerGetElapsedTime
704 .LVL80:
705 00c2 5346 mov r3, r10
706 00c4 1B1A subs r3, r3, r0
707 00c6 9A46 mov r10, r3
708 00c8 DFE7 b .L54
709 .LVL81:
710 .L65:
711 .LBE35:
203:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
204:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
205:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
206:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return nextTxDelay;
207:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
712 .loc 1 207 0 is_stmt 1
713 00ca 5046 mov r0, r10
714 @ sp needed
715 .LVL82:
716 .LVL83:
717 .LVL84:
718 00cc 3CBC pop {r2, r3, r4, r5}
719 00ce 9046 mov r8, r2
720 00d0 9946 mov r9, r3
721 00d2 A246 mov r10, r4
722 00d4 AB46 mov fp, r5
723 00d6 F8BD pop {r3, r4, r5, r6, r7, pc}
724 .cfi_endproc
725 .LFE90:
727 .section .text.RegionCommonParseLinkAdrReq,"ax",%progbits
728 .align 1
729 .global RegionCommonParseLinkAdrReq
730 .syntax unified
731 .code 16
732 .thumb_func
733 .fpu softvfp
735 RegionCommonParseLinkAdrReq:
ARM GAS /tmp/ccAkEbCV.s page 18
736 .LFB91:
208:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
209:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t RegionCommonParseLinkAdrReq( uint8_t* payload, RegionCommonLinkAdrParams_t* linkAdrParams )
210:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
737 .loc 1 210 0
738 .cfi_startproc
739 @ args = 0, pretend = 0, frame = 0
740 @ frame_needed = 0, uses_anonymous_args = 0
741 .LVL85:
742 0000 10B5 push {r4, lr}
743 .LCFI7:
744 .cfi_def_cfa_offset 8
745 .cfi_offset 4, -8
746 .cfi_offset 14, -4
747 .LVL86:
211:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t retIndex = 0;
212:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
213:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( payload[0] == SRV_MAC_LINK_ADR_REQ )
748 .loc 1 213 0
749 0002 0378 ldrb r3, [r0]
750 0004 032B cmp r3, #3
751 0006 01D0 beq .L71
211:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t retIndex = 0;
752 .loc 1 211 0
753 0008 0020 movs r0, #0
754 .LVL87:
755 .L69:
214:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
215:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Parse datarate and tx power
216:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->Datarate = payload[1];
217:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->TxPower = linkAdrParams->Datarate & 0x0F;
218:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->Datarate = ( linkAdrParams->Datarate >> 4 ) & 0x0F;
219:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Parse ChMask
220:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->ChMask = ( uint16_t )payload[2];
221:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->ChMask |= ( uint16_t )payload[3] << 8;
222:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Parse ChMaskCtrl and nbRep
223:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->NbRep = payload[4];
224:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->ChMaskCtrl = ( linkAdrParams->NbRep >> 4 ) & 0x07;
225:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->NbRep &= 0x0F;
226:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
227:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // LinkAdrReq has 4 bytes length + 1 byte CMD
228:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** retIndex = 5;
229:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
230:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return retIndex;
231:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
756 .loc 1 231 0
757 @ sp needed
758 000a 10BD pop {r4, pc}
759 .LVL88:
760 .L71:
216:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->TxPower = linkAdrParams->Datarate & 0x0F;
761 .loc 1 216 0
762 000c 4278 ldrb r2, [r0, #1]
763 000e 54B2 sxtb r4, r2
217:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->Datarate = ( linkAdrParams->Datarate >> 4 ) & 0x0F;
764 .loc 1 217 0
765 0010 0C33 adds r3, r3, #12
ARM GAS /tmp/ccAkEbCV.s page 19
766 0012 1C40 ands r4, r3
767 0014 8C70 strb r4, [r1, #2]
218:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Parse ChMask
768 .loc 1 218 0
769 0016 1209 lsrs r2, r2, #4
770 0018 4A70 strb r2, [r1, #1]
220:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->ChMask |= ( uint16_t )payload[3] << 8;
771 .loc 1 220 0
772 001a 8278 ldrb r2, [r0, #2]
773 001c 8A80 strh r2, [r1, #4]
221:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Parse ChMaskCtrl and nbRep
774 .loc 1 221 0
775 001e C478 ldrb r4, [r0, #3]
776 0020 2402 lsls r4, r4, #8
777 0022 2243 orrs r2, r4
778 0024 8A80 strh r2, [r1, #4]
223:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->ChMaskCtrl = ( linkAdrParams->NbRep >> 4 ) & 0x07;
779 .loc 1 223 0
780 0026 0079 ldrb r0, [r0, #4]
781 .LVL89:
224:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** linkAdrParams->NbRep &= 0x0F;
782 .loc 1 224 0
783 0028 0409 lsrs r4, r0, #4
784 002a 0722 movs r2, #7
785 002c 2240 ands r2, r4
786 002e CA70 strb r2, [r1, #3]
225:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
787 .loc 1 225 0
788 0030 0340 ands r3, r0
789 0032 0B70 strb r3, [r1]
790 .LVL90:
228:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
791 .loc 1 228 0
792 0034 0520 movs r0, #5
793 0036 E8E7 b .L69
794 .cfi_endproc
795 .LFE91:
797 .section .text.RegionCommonLinkAdrReqVerifyParams,"ax",%progbits
798 .align 1
799 .global RegionCommonLinkAdrReqVerifyParams
800 .syntax unified
801 .code 16
802 .thumb_func
803 .fpu softvfp
805 RegionCommonLinkAdrReqVerifyParams:
806 .LFB92:
232:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
233:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t RegionCommonLinkAdrReqVerifyParams( RegionCommonLinkAdrReqVerifyParams_t* verifyParams, int
234:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
807 .loc 1 234 0
808 .cfi_startproc
809 @ args = 0, pretend = 0, frame = 0
810 @ frame_needed = 0, uses_anonymous_args = 0
811 .LVL91:
812 0000 F0B5 push {r4, r5, r6, r7, lr}
813 .LCFI8:
814 .cfi_def_cfa_offset 20
ARM GAS /tmp/ccAkEbCV.s page 20
815 .cfi_offset 4, -20
816 .cfi_offset 5, -16
817 .cfi_offset 6, -12
818 .cfi_offset 7, -8
819 .cfi_offset 14, -4
820 0002 DE46 mov lr, fp
821 0004 5746 mov r7, r10
822 0006 4E46 mov r6, r9
823 0008 4546 mov r5, r8
824 000a E0B5 push {r5, r6, r7, lr}
825 .LCFI9:
826 .cfi_def_cfa_offset 36
827 .cfi_offset 8, -36
828 .cfi_offset 9, -32
829 .cfi_offset 10, -28
830 .cfi_offset 11, -24
831 000c 83B0 sub sp, sp, #12
832 .LCFI10:
833 .cfi_def_cfa_offset 48
834 000e 0400 movs r4, r0
835 0010 8B46 mov fp, r1
836 0012 9246 mov r10, r2
837 0014 9946 mov r9, r3
235:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t status = verifyParams->Status;
838 .loc 1 235 0
839 0016 0578 ldrb r5, [r0]
840 .LVL92:
236:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** int8_t datarate = verifyParams->Datarate;
841 .loc 1 236 0
842 0018 0223 movs r3, #2
843 .LVL93:
844 001a C356 ldrsb r3, [r0, r3]
845 001c 9846 mov r8, r3
846 .LVL94:
237:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** int8_t txPower = verifyParams->TxPower;
847 .loc 1 237 0
848 001e 0326 movs r6, #3
849 0020 8657 ldrsb r6, [r0, r6]
850 .LVL95:
238:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** int8_t nbRepetitions = verifyParams->NbRep;
851 .loc 1 238 0
852 0022 0427 movs r7, #4
853 0024 C757 ldrsb r7, [r0, r7]
854 .LVL96:
239:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
240:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Handle the case when ADR is off.
241:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( verifyParams->AdrEnabled == false )
855 .loc 1 241 0
856 0026 4378 ldrb r3, [r0, #1]
857 0028 002B cmp r3, #0
858 002a 0CD1 bne .L73
242:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
243:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // When ADR is off, we are allowed to change the channels mask and the NbRep,
244:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // if the datarate and the TX power of the LinkAdrReq are set to 0x0F.
245:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( verifyParams->Datarate != 0x0F ) || ( verifyParams->TxPower != 0x0F ) )
859 .loc 1 245 0
860 002c 0223 movs r3, #2
ARM GAS /tmp/ccAkEbCV.s page 21
861 002e C25E ldrsh r2, [r0, r3]
862 .LVL97:
863 0030 204B ldr r3, .L82
864 0032 9A42 cmp r2, r3
865 0034 02D0 beq .L74
866 .LVL98:
246:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
247:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** status = 0;
248:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nbRepetitions = verifyParams->CurrentNbRep;
867 .loc 1 248 0
868 0036 0727 movs r7, #7
869 .LVL99:
870 0038 C757 ldrsb r7, [r0, r7]
871 .LVL100:
247:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nbRepetitions = verifyParams->CurrentNbRep;
872 .loc 1 247 0
873 003a 0025 movs r5, #0
874 .LVL101:
875 .L74:
249:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
250:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Get the current datarate and tx power
251:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** datarate = verifyParams->CurrentDatarate;
876 .loc 1 251 0
877 003c 0523 movs r3, #5
878 003e E356 ldrsb r3, [r4, r3]
879 0040 9846 mov r8, r3
880 .LVL102:
252:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** txPower = verifyParams->CurrentTxPower;
881 .loc 1 252 0
882 0042 0626 movs r6, #6
883 .LVL103:
884 0044 A657 ldrsb r6, [r4, r6]
885 .LVL104:
886 .L73:
253:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
254:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
255:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( status != 0 )
887 .loc 1 255 0
888 0046 002D cmp r5, #0
889 0048 10D1 bne .L80
890 .LVL105:
891 .L75:
256:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
257:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Verify datarate. The variable phyParam. Value contains the minimum allowed datarate.
258:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( RegionCommonChanVerifyDr( verifyParams->NbChannels, verifyParams->ChannelsMask, datarat
259:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** verifyParams->MinDatarate, verifyParams->MaxDatarate, verifyP
260:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
261:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** status &= 0xFD; // Datarate KO
262:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
263:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
264:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Verify tx power
265:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( RegionCommonValueInRange( txPower, verifyParams->MaxTxPower, verifyParams->MinTxPower )
266:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
267:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Verify if the maximum TX power is exceeded
268:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( verifyParams->MaxTxPower > txPower )
269:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** { // Apply maximum TX power. Accept TX power.
270:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** txPower = verifyParams->MaxTxPower;
ARM GAS /tmp/ccAkEbCV.s page 22
271:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
272:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
273:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
274:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** status &= 0xFB; // TxPower KO
275:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
276:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
277:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
278:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
279:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // If the status is ok, verify the NbRep
280:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( status == 0x07 )
892 .loc 1 280 0
893 004a 072D cmp r5, #7
894 004c 2DD0 beq .L81
895 .L78:
281:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
282:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( nbRepetitions == 0 )
283:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** { // Keep the current one
284:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** nbRepetitions = verifyParams->CurrentNbRep;
285:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
286:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
287:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
288:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Apply changes
289:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** *dr = datarate;
896 .loc 1 289 0
897 004e 5B46 mov r3, fp
898 0050 4246 mov r2, r8
899 0052 1A70 strb r2, [r3]
290:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** *txPow = txPower;
900 .loc 1 290 0
901 0054 5346 mov r3, r10
902 0056 1E70 strb r6, [r3]
291:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** *nbRep = nbRepetitions;
903 .loc 1 291 0
904 0058 4B46 mov r3, r9
905 005a 1F70 strb r7, [r3]
292:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
293:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return status;
294:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
906 .loc 1 294 0
907 005c 2800 movs r0, r5
908 005e 03B0 add sp, sp, #12
909 @ sp needed
910 .LVL106:
911 .LVL107:
912 .LVL108:
913 .LVL109:
914 .LVL110:
915 .LVL111:
916 .LVL112:
917 .LVL113:
918 0060 3CBC pop {r2, r3, r4, r5}
919 0062 9046 mov r8, r2
920 0064 9946 mov r9, r3
921 0066 A246 mov r10, r4
922 0068 AB46 mov fp, r5
923 006a F0BD pop {r4, r5, r6, r7, pc}
924 .LVL114:
ARM GAS /tmp/ccAkEbCV.s page 23
925 .L80:
258:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** verifyParams->MinDatarate, verifyParams->MaxDatarate, verifyP
926 .loc 1 258 0
927 006c 1023 movs r3, #16
928 006e E356 ldrsb r3, [r4, r3]
929 0070 207A ldrb r0, [r4, #8]
930 .LVL115:
931 0072 6269 ldr r2, [r4, #20]
932 0074 0192 str r2, [sp, #4]
933 0076 1122 movs r2, #17
934 0078 A256 ldrsb r2, [r4, r2]
935 007a 0092 str r2, [sp]
936 007c 4246 mov r2, r8
937 007e E168 ldr r1, [r4, #12]
938 .LVL116:
939 0080 FFF7FEFF bl RegionCommonChanVerifyDr
940 .LVL117:
941 0084 0028 cmp r0, #0
942 0086 01D1 bne .L76
261:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
943 .loc 1 261 0
944 0088 0223 movs r3, #2
945 008a 9D43 bics r5, r3
946 .LVL118:
947 .L76:
265:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
948 .loc 1 265 0
949 008c 1923 movs r3, #25
950 008e E356 ldrsb r3, [r4, r3]
951 0090 1822 movs r2, #24
952 0092 A256 ldrsb r2, [r4, r2]
953 .LVL119:
954 .LBB36:
955 .LBB37:
101:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
956 .loc 1 101 0
957 0094 B342 cmp r3, r6
958 0096 01DC bgt .L77
959 0098 B242 cmp r2, r6
960 009a D6DA bge .L75
961 .L77:
962 .LVL120:
963 .LBE37:
964 .LBE36:
268:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** { // Apply maximum TX power. Accept TX power.
965 .loc 1 268 0
966 009c B342 cmp r3, r6
967 009e 02DC bgt .L79
274:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
968 .loc 1 274 0
969 00a0 0423 movs r3, #4
970 00a2 9D43 bics r5, r3
971 .LVL121:
972 00a4 D1E7 b .L75
973 .L79:
270:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
974 .loc 1 270 0
ARM GAS /tmp/ccAkEbCV.s page 24
975 00a6 1E00 movs r6, r3
976 .LVL122:
977 00a8 CFE7 b .L75
978 .LVL123:
979 .L81:
282:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** { // Keep the current one
980 .loc 1 282 0
981 00aa 002F cmp r7, #0
982 00ac CFD1 bne .L78
284:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
983 .loc 1 284 0
984 00ae 0727 movs r7, #7
985 .LVL124:
986 00b0 E757 ldrsb r7, [r4, r7]
987 .LVL125:
988 00b2 CCE7 b .L78
989 .L83:
990 .align 2
991 .L82:
992 00b4 0F0F0000 .word 3855
993 .cfi_endproc
994 .LFE92:
996 .global __aeabi_i2d
997 .global __aeabi_ui2d
998 .global __aeabi_ddiv
999 .global __aeabi_dmul
1000 .section .text.RegionCommonComputeSymbolTimeLoRa,"ax",%progbits
1001 .align 1
1002 .global RegionCommonComputeSymbolTimeLoRa
1003 .syntax unified
1004 .code 16
1005 .thumb_func
1006 .fpu softvfp
1008 RegionCommonComputeSymbolTimeLoRa:
1009 .LFB93:
295:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
296:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** double RegionCommonComputeSymbolTimeLoRa( uint8_t phyDr, uint32_t bandwidth )
297:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1010 .loc 1 297 0
1011 .cfi_startproc
1012 @ args = 0, pretend = 0, frame = 0
1013 @ frame_needed = 0, uses_anonymous_args = 0
1014 .LVL126:
1015 0000 D0B5 push {r4, r6, r7, lr}
1016 .LCFI11:
1017 .cfi_def_cfa_offset 16
1018 .cfi_offset 4, -16
1019 .cfi_offset 6, -12
1020 .cfi_offset 7, -8
1021 .cfi_offset 14, -4
1022 0002 0C00 movs r4, r1
298:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return ( ( double )( 1 << phyDr ) / ( double )bandwidth ) * 1000;
1023 .loc 1 298 0
1024 0004 0123 movs r3, #1
1025 0006 8340 lsls r3, r3, r0
1026 0008 1800 movs r0, r3
1027 .LVL127:
ARM GAS /tmp/ccAkEbCV.s page 25
1028 000a FFF7FEFF bl __aeabi_i2d
1029 .LVL128:
1030 000e 0600 movs r6, r0
1031 0010 0F00 movs r7, r1
1032 0012 2000 movs r0, r4
1033 0014 FFF7FEFF bl __aeabi_ui2d
1034 .LVL129:
1035 0018 0200 movs r2, r0
1036 001a 0B00 movs r3, r1
1037 001c 3000 movs r0, r6
1038 001e 3900 movs r1, r7
1039 0020 FFF7FEFF bl __aeabi_ddiv
1040 .LVL130:
1041 0024 0022 movs r2, #0
1042 0026 024B ldr r3, .L85
1043 0028 FFF7FEFF bl __aeabi_dmul
1044 .LVL131:
299:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1045 .loc 1 299 0
1046 @ sp needed
1047 .LVL132:
1048 002c D0BD pop {r4, r6, r7, pc}
1049 .L86:
1050 002e C046 .align 2
1051 .L85:
1052 0030 00408F40 .word 1083129856
1053 .cfi_endproc
1054 .LFE93:
1056 .section .text.RegionCommonComputeSymbolTimeFsk,"ax",%progbits
1057 .align 1
1058 .global RegionCommonComputeSymbolTimeFsk
1059 .syntax unified
1060 .code 16
1061 .thumb_func
1062 .fpu softvfp
1064 RegionCommonComputeSymbolTimeFsk:
1065 .LFB94:
300:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
301:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** double RegionCommonComputeSymbolTimeFsk( uint8_t phyDr )
302:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1066 .loc 1 302 0
1067 .cfi_startproc
1068 @ args = 0, pretend = 0, frame = 0
1069 @ frame_needed = 0, uses_anonymous_args = 0
1070 .LVL133:
1071 0000 10B5 push {r4, lr}
1072 .LCFI12:
1073 .cfi_def_cfa_offset 8
1074 .cfi_offset 4, -8
1075 .cfi_offset 14, -4
303:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return ( 8.0 / ( double )phyDr ); // 1 symbol equals 1 byte
1076 .loc 1 303 0
1077 0002 FFF7FEFF bl __aeabi_ui2d
1078 .LVL134:
1079 0006 0200 movs r2, r0
1080 0008 0B00 movs r3, r1
1081 000a 0020 movs r0, #0
ARM GAS /tmp/ccAkEbCV.s page 26
1082 000c 0149 ldr r1, .L88
1083 000e FFF7FEFF bl __aeabi_ddiv
1084 .LVL135:
304:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1085 .loc 1 304 0
1086 @ sp needed
1087 0012 10BD pop {r4, pc}
1088 .L89:
1089 .align 2
1090 .L88:
1091 0014 00002040 .word 1075838976
1092 .cfi_endproc
1093 .LFE94:
1095 .global __aeabi_dadd
1096 .global __aeabi_d2uiz
1097 .global __aeabi_dsub
1098 .global __aeabi_d2iz
1099 .section .text.RegionCommonComputeRxWindowParameters,"ax",%progbits
1100 .align 1
1101 .global RegionCommonComputeRxWindowParameters
1102 .syntax unified
1103 .code 16
1104 .thumb_func
1105 .fpu softvfp
1107 RegionCommonComputeRxWindowParameters:
1108 .LFB95:
305:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
306:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** void RegionCommonComputeRxWindowParameters( double tSymbol, uint8_t minRxSymbols, uint32_t rxError,
307:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1109 .loc 1 307 0
1110 .cfi_startproc
1111 @ args = 12, pretend = 0, frame = 8
1112 @ frame_needed = 0, uses_anonymous_args = 0
1113 .LVL136:
1114 0000 F0B5 push {r4, r5, r6, r7, lr}
1115 .LCFI13:
1116 .cfi_def_cfa_offset 20
1117 .cfi_offset 4, -20
1118 .cfi_offset 5, -16
1119 .cfi_offset 6, -12
1120 .cfi_offset 7, -8
1121 .cfi_offset 14, -4
1122 0002 83B0 sub sp, sp, #12
1123 .LCFI14:
1124 .cfi_def_cfa_offset 32
1125 0004 0400 movs r4, r0
1126 0006 0D00 movs r5, r1
1127 0008 1600 movs r6, r2
1128 000a 1F00 movs r7, r3
308:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** *windowTimeout = MAX( ( uint32_t )ceil( ( ( 2 * minRxSymbols - 8 ) * tSymbol + 2 * rxError ) /
1129 .loc 1 308 0
1130 000c 101F subs r0, r2, #4
1131 .LVL137:
1132 000e 4000 lsls r0, r0, #1
1133 0010 FFF7FEFF bl __aeabi_i2d
1134 .LVL138:
1135 0014 2200 movs r2, r4
ARM GAS /tmp/ccAkEbCV.s page 27
1136 0016 2B00 movs r3, r5
1137 0018 FFF7FEFF bl __aeabi_dmul
1138 .LVL139:
1139 001c 0090 str r0, [sp]
1140 001e 0191 str r1, [sp, #4]
1141 0020 7800 lsls r0, r7, #1
1142 0022 FFF7FEFF bl __aeabi_ui2d
1143 .LVL140:
1144 0026 009A ldr r2, [sp]
1145 0028 019B ldr r3, [sp, #4]
1146 002a FFF7FEFF bl __aeabi_dadd
1147 .LVL141:
1148 002e 2200 movs r2, r4
1149 0030 2B00 movs r3, r5
1150 0032 FFF7FEFF bl __aeabi_ddiv
1151 .LVL142:
1152 0036 FFF7FEFF bl ceil
1153 .LVL143:
1154 003a FFF7FEFF bl __aeabi_d2uiz
1155 .LVL144:
1156 003e 8642 cmp r6, r0
1157 0040 00D2 bcs .L91
1158 0042 0600 movs r6, r0
1159 .L91:
1160 0044 099B ldr r3, [sp, #36]
1161 0046 1E60 str r6, [r3]
309:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** *windowOffset = ( int32_t )ceil( ( 4.0 * tSymbol ) - ( ( *windowTimeout * tSymbol ) / 2.0 ) - w
1162 .loc 1 309 0
1163 0048 0022 movs r2, #0
1164 004a 154B ldr r3, .L92
1165 004c 2000 movs r0, r4
1166 004e 2900 movs r1, r5
1167 0050 FFF7FEFF bl __aeabi_dmul
1168 .LVL145:
1169 0054 0090 str r0, [sp]
1170 0056 0191 str r1, [sp, #4]
1171 0058 3000 movs r0, r6
1172 005a FFF7FEFF bl __aeabi_ui2d
1173 .LVL146:
1174 005e 2200 movs r2, r4
1175 0060 2B00 movs r3, r5
1176 0062 FFF7FEFF bl __aeabi_dmul
1177 .LVL147:
1178 0066 0022 movs r2, #0
1179 0068 0E4B ldr r3, .L92+4
1180 006a FFF7FEFF bl __aeabi_dmul
1181 .LVL148:
1182 006e 0200 movs r2, r0
1183 0070 0B00 movs r3, r1
1184 0072 0098 ldr r0, [sp]
1185 0074 0199 ldr r1, [sp, #4]
1186 0076 FFF7FEFF bl __aeabi_dsub
1187 .LVL149:
1188 007a 0400 movs r4, r0
1189 007c 0D00 movs r5, r1
1190 007e 0898 ldr r0, [sp, #32]
1191 0080 FFF7FEFF bl __aeabi_ui2d
ARM GAS /tmp/ccAkEbCV.s page 28
1192 .LVL150:
1193 0084 0200 movs r2, r0
1194 0086 0B00 movs r3, r1
1195 0088 2000 movs r0, r4
1196 008a 2900 movs r1, r5
1197 008c FFF7FEFF bl __aeabi_dsub
1198 .LVL151:
1199 0090 FFF7FEFF bl ceil
1200 .LVL152:
1201 0094 FFF7FEFF bl __aeabi_d2iz
1202 .LVL153:
1203 0098 0A9B ldr r3, [sp, #40]
1204 009a 1860 str r0, [r3]
310:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1205 .loc 1 310 0
1206 009c 03B0 add sp, sp, #12
1207 @ sp needed
1208 .LVL154:
1209 009e F0BD pop {r4, r5, r6, r7, pc}
1210 .L93:
1211 .align 2
1212 .L92:
1213 00a0 00001040 .word 1074790400
1214 00a4 0000E03F .word 1071644672
1215 .cfi_endproc
1216 .LFE95:
1218 .global __aeabi_ui2f
1219 .global __aeabi_fsub
1220 .global __aeabi_f2d
1221 .section .text.RegionCommonComputeTxPower,"ax",%progbits
1222 .align 1
1223 .global RegionCommonComputeTxPower
1224 .syntax unified
1225 .code 16
1226 .thumb_func
1227 .fpu softvfp
1229 RegionCommonComputeTxPower:
1230 .LFB96:
311:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
312:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** int8_t RegionCommonComputeTxPower( int8_t txPowerIndex, float maxEirp, float antennaGain )
313:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1231 .loc 1 313 0
1232 .cfi_startproc
1233 @ args = 0, pretend = 0, frame = 0
1234 @ frame_needed = 0, uses_anonymous_args = 0
1235 .LVL155:
1236 0000 70B5 push {r4, r5, r6, lr}
1237 .LCFI15:
1238 .cfi_def_cfa_offset 16
1239 .cfi_offset 4, -16
1240 .cfi_offset 5, -12
1241 .cfi_offset 6, -8
1242 .cfi_offset 14, -4
1243 0002 0D1C adds r5, r1, #0
1244 0004 141C adds r4, r2, #0
1245 .LVL156:
314:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** int8_t phyTxPower = 0;
ARM GAS /tmp/ccAkEbCV.s page 29
315:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
316:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** phyTxPower = ( int8_t )floor( ( maxEirp - ( txPowerIndex * 2U ) ) - antennaGain );
1246 .loc 1 316 0
1247 0006 4000 lsls r0, r0, #1
1248 .LVL157:
1249 0008 FFF7FEFF bl __aeabi_ui2f
1250 .LVL158:
1251 000c 011C adds r1, r0, #0
1252 000e 281C adds r0, r5, #0
1253 0010 FFF7FEFF bl __aeabi_fsub
1254 .LVL159:
1255 0014 211C adds r1, r4, #0
1256 0016 FFF7FEFF bl __aeabi_fsub
1257 .LVL160:
1258 001a FFF7FEFF bl __aeabi_f2d
1259 .LVL161:
1260 001e FFF7FEFF bl floor
1261 .LVL162:
1262 0022 FFF7FEFF bl __aeabi_d2iz
1263 .LVL163:
1264 0026 40B2 sxtb r0, r0
1265 .LVL164:
317:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
318:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** return phyTxPower;
319:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1266 .loc 1 319 0
1267 @ sp needed
1268 .LVL165:
1269 .LVL166:
1270 0028 70BD pop {r4, r5, r6, pc}
1271 .cfi_endproc
1272 .LFE96:
1274 .section .text.RegionCommonCalcBackOff,"ax",%progbits
1275 .align 1
1276 .global RegionCommonCalcBackOff
1277 .syntax unified
1278 .code 16
1279 .thumb_func
1280 .fpu softvfp
1282 RegionCommonCalcBackOff:
1283 .LFB97:
320:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
321:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** void RegionCommonCalcBackOff( RegionCommonCalcBackOffParams_t* calcBackOffParams )
322:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1284 .loc 1 322 0
1285 .cfi_startproc
1286 @ args = 0, pretend = 0, frame = 0
1287 @ frame_needed = 0, uses_anonymous_args = 0
1288 .LVL167:
1289 0000 10B5 push {r4, lr}
1290 .LCFI16:
1291 .cfi_def_cfa_offset 8
1292 .cfi_offset 4, -8
1293 .cfi_offset 14, -4
323:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint8_t bandIdx = calcBackOffParams->Channels[calcBackOffParams->Channel].Band;
1294 .loc 1 323 0
1295 0002 C27A ldrb r2, [r0, #11]
ARM GAS /tmp/ccAkEbCV.s page 30
1296 0004 5300 lsls r3, r2, #1
1297 0006 9B18 adds r3, r3, r2
1298 0008 9A00 lsls r2, r3, #2
1299 000a 0368 ldr r3, [r0]
1300 000c 9C46 mov ip, r3
1301 000e 6244 add r2, r2, ip
1302 0010 537A ldrb r3, [r2, #9]
1303 .LVL168:
324:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint16_t dutyCycle = calcBackOffParams->Bands[bandIdx].DCycle;
1304 .loc 1 324 0
1305 0012 1B01 lsls r3, r3, #4
1306 .LVL169:
1307 0014 4268 ldr r2, [r0, #4]
1308 .LVL170:
1309 0016 D218 adds r2, r2, r3
1310 0018 1188 ldrh r1, [r2]
1311 .LVL171:
325:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** uint16_t joinDutyCycle = 0;
326:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
327:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Reset time-off to initial value.
328:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** calcBackOffParams->Bands[bandIdx].TimeOff = 0;
1312 .loc 1 328 0
1313 001a 0024 movs r4, #0
1314 001c D460 str r4, [r2, #12]
1315 .LVL172:
329:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c ****
330:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( calcBackOffParams->Joined == false )
1316 .loc 1 330 0
1317 001e 427A ldrb r2, [r0, #9]
1318 0020 002A cmp r2, #0
1319 0022 23D1 bne .L96
331:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
332:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Get the join duty cycle
333:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** joinDutyCycle = RegionCommonGetJoinDc( calcBackOffParams->ElapsedTime );
1320 .loc 1 333 0
1321 0024 C268 ldr r2, [r0, #12]
1322 .LVL173:
1323 .LBB38:
1324 .LBB39:
59:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1325 .loc 1 59 0
1326 0026 194C ldr r4, .L105
1327 0028 A242 cmp r2, r4
1328 002a 05D9 bls .L102
63:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1329 .loc 1 63 0
1330 002c 184C ldr r4, .L105+4
1331 002e A242 cmp r2, r4
1332 0030 13D8 bhi .L103
65:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1333 .loc 1 65 0
1334 0032 FA24 movs r4, #250
1335 0034 A400 lsls r4, r4, #2
1336 0036 00E0 b .L97
1337 .L102:
61:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1338 .loc 1 61 0
ARM GAS /tmp/ccAkEbCV.s page 31
1339 0038 6424 movs r4, #100
1340 .L97:
1341 .LVL174:
1342 .LBE39:
1343 .LBE38:
334:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Apply the most restricting duty cycle
335:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** dutyCycle = MAX( dutyCycle, joinDutyCycle );
1344 .loc 1 335 0
1345 003a 0A1C adds r2, r1, #0
1346 003c A142 cmp r1, r4
1347 003e 00D2 bcs .L98
1348 0040 221C adds r2, r4, #0
1349 .L98:
1350 0042 92B2 uxth r2, r2
1351 .LVL175:
336:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Reset the timeoff if the last frame was not a join request and when the duty cycle is no
337:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( ( calcBackOffParams->DutyCycleEnabled == false ) && ( calcBackOffParams->LastTxIsJoinRe
1352 .loc 1 337 0
1353 0044 817A ldrb r1, [r0, #10]
1354 0046 0029 cmp r1, #0
1355 0048 09D1 bne .L99
1356 .loc 1 337 0 is_stmt 0 discriminator 1
1357 004a 017A ldrb r1, [r0, #8]
1358 004c 0029 cmp r1, #0
1359 004e 06D1 bne .L99
338:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
339:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // This is the case when the duty cycle is off and the last uplink frame was not a join
340:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // This could happen in case of a rejoin, e.g. in compliance test mode.
341:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // In this special case we have to set the time off to 0, since the join duty cycle sha
342:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // be applied after the first join request.
343:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** calcBackOffParams->Bands[bandIdx].TimeOff = 0;
1360 .loc 1 343 0 is_stmt 1
1361 0050 4268 ldr r2, [r0, #4]
1362 .LVL176:
1363 0052 D318 adds r3, r2, r3
1364 0054 0022 movs r2, #0
1365 0056 DA60 str r2, [r3, #12]
1366 0058 07E0 b .L95
1367 .LVL177:
1368 .L103:
1369 .LBB41:
1370 .LBB40:
69:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1371 .loc 1 69 0
1372 005a 0E4C ldr r4, .L105+8
1373 005c EDE7 b .L97
1374 .LVL178:
1375 .L99:
1376 .LBE40:
1377 .LBE41:
344:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
345:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
346:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
347:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** // Apply band time-off.
348:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** calcBackOffParams->Bands[bandIdx].TimeOff = calcBackOffParams->TxTimeOnAir * dutyCycle
1378 .loc 1 348 0
1379 005e 0469 ldr r4, [r0, #16]
ARM GAS /tmp/ccAkEbCV.s page 32
1380 0060 4168 ldr r1, [r0, #4]
1381 0062 CB18 adds r3, r1, r3
1382 0064 013A subs r2, r2, #1
1383 .LVL179:
1384 0066 6243 muls r2, r4
1385 .LVL180:
1386 0068 DA60 str r2, [r3, #12]
1387 .L95:
349:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
350:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
351:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
352:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
353:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** if( calcBackOffParams->DutyCycleEnabled == true )
354:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
355:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** calcBackOffParams->Bands[bandIdx].TimeOff = calcBackOffParams->TxTimeOnAir * dutyCycle
356:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
357:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** else
358:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
359:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** calcBackOffParams->Bands[bandIdx].TimeOff = 0;
360:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
361:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
362:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1388 .loc 1 362 0
1389 @ sp needed
1390 006a 10BD pop {r4, pc}
1391 .LVL181:
1392 .L96:
353:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** {
1393 .loc 1 353 0
1394 006c 827A ldrb r2, [r0, #10]
1395 006e 002A cmp r2, #0
1396 0070 04D1 bne .L104
359:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1397 .loc 1 359 0
1398 0072 4268 ldr r2, [r0, #4]
1399 0074 D318 adds r3, r2, r3
1400 0076 0022 movs r2, #0
1401 0078 DA60 str r2, [r3, #12]
1402 .loc 1 362 0
1403 007a F6E7 b .L95
1404 .L104:
355:./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.c **** }
1405 .loc 1 355 0
1406 007c 0469 ldr r4, [r0, #16]
1407 007e 4268 ldr r2, [r0, #4]
1408 0080 D318 adds r3, r2, r3
1409 0082 0139 subs r1, r1, #1
1410 .LVL182:
1411 0084 6143 muls r1, r4
1412 .LVL183:
1413 0086 D960 str r1, [r3, #12]
1414 0088 EFE7 b .L95
1415 .L106:
1416 008a C046 .align 2
1417 .L105:
1418 008c 7FEE3600 .word 3599999
1419 0090 7F3F5C02 .word 39599999
ARM GAS /tmp/ccAkEbCV.s page 33
1420 0094 10270000 .word 10000
1421 .cfi_endproc
1422 .LFE97:
1424 .text
1425 .Letext0:
1426 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
1427 .file 3 "/usr/arm-none-eabi/include/sys/lock.h"
1428 .file 4 "/usr/arm-none-eabi/include/sys/_types.h"
1429 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
1430 .file 6 "/usr/arm-none-eabi/include/sys/reent.h"
1431 .file 7 "/usr/arm-none-eabi/include/sys/_stdint.h"
1432 .file 8 "/usr/arm-none-eabi/include/math.h"
1433 .file 9 "Middlewares/Third_Party/Lora/Utilities/utilities.h"
1434 .file 10 "Middlewares/Third_Party/Lora/Mac/LoRaMac.h"
1435 .file 11 "./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.h"
1436 .file 12 "Middlewares/Third_Party/Lora/Utilities/timeServer.h"
ARM GAS /tmp/ccAkEbCV.s page 34
DEFINED SYMBOLS
*ABS*:0000000000000000 RegionCommon.c
/tmp/ccAkEbCV.s:16 .text.RegionCommonGetJoinDc:0000000000000000 $t
/tmp/ccAkEbCV.s:23 .text.RegionCommonGetJoinDc:0000000000000000 RegionCommonGetJoinDc
/tmp/ccAkEbCV.s:63 .text.RegionCommonGetJoinDc:000000000000001c $d
/tmp/ccAkEbCV.s:70 .text.RegionCommonChanVerifyDr:0000000000000000 $t
/tmp/ccAkEbCV.s:77 .text.RegionCommonChanVerifyDr:0000000000000000 RegionCommonChanVerifyDr
/tmp/ccAkEbCV.s:221 .text.RegionCommonValueInRange:0000000000000000 $t
/tmp/ccAkEbCV.s:228 .text.RegionCommonValueInRange:0000000000000000 RegionCommonValueInRange
/tmp/ccAkEbCV.s:264 .text.RegionCommonChanDisable:0000000000000000 $t
/tmp/ccAkEbCV.s:271 .text.RegionCommonChanDisable:0000000000000000 RegionCommonChanDisable
/tmp/ccAkEbCV.s:329 .text.RegionCommonCountChannels:0000000000000000 $t
/tmp/ccAkEbCV.s:336 .text.RegionCommonCountChannels:0000000000000000 RegionCommonCountChannels
/tmp/ccAkEbCV.s:437 .text.RegionCommonChanMaskCopy:0000000000000000 $t
/tmp/ccAkEbCV.s:444 .text.RegionCommonChanMaskCopy:0000000000000000 RegionCommonChanMaskCopy
/tmp/ccAkEbCV.s:492 .text.RegionCommonSetBandTxDone:0000000000000000 $t
/tmp/ccAkEbCV.s:499 .text.RegionCommonSetBandTxDone:0000000000000000 RegionCommonSetBandTxDone
/tmp/ccAkEbCV.s:526 .text.RegionCommonUpdateBandTimeOff:0000000000000000 $t
/tmp/ccAkEbCV.s:533 .text.RegionCommonUpdateBandTimeOff:0000000000000000 RegionCommonUpdateBandTimeOff
/tmp/ccAkEbCV.s:728 .text.RegionCommonParseLinkAdrReq:0000000000000000 $t
/tmp/ccAkEbCV.s:735 .text.RegionCommonParseLinkAdrReq:0000000000000000 RegionCommonParseLinkAdrReq
/tmp/ccAkEbCV.s:798 .text.RegionCommonLinkAdrReqVerifyParams:0000000000000000 $t
/tmp/ccAkEbCV.s:805 .text.RegionCommonLinkAdrReqVerifyParams:0000000000000000 RegionCommonLinkAdrReqVerifyParams
/tmp/ccAkEbCV.s:992 .text.RegionCommonLinkAdrReqVerifyParams:00000000000000b4 $d
/tmp/ccAkEbCV.s:1001 .text.RegionCommonComputeSymbolTimeLoRa:0000000000000000 $t
/tmp/ccAkEbCV.s:1008 .text.RegionCommonComputeSymbolTimeLoRa:0000000000000000 RegionCommonComputeSymbolTimeLoRa
/tmp/ccAkEbCV.s:1052 .text.RegionCommonComputeSymbolTimeLoRa:0000000000000030 $d
/tmp/ccAkEbCV.s:1057 .text.RegionCommonComputeSymbolTimeFsk:0000000000000000 $t
/tmp/ccAkEbCV.s:1064 .text.RegionCommonComputeSymbolTimeFsk:0000000000000000 RegionCommonComputeSymbolTimeFsk
/tmp/ccAkEbCV.s:1091 .text.RegionCommonComputeSymbolTimeFsk:0000000000000014 $d
/tmp/ccAkEbCV.s:1100 .text.RegionCommonComputeRxWindowParameters:0000000000000000 $t
/tmp/ccAkEbCV.s:1107 .text.RegionCommonComputeRxWindowParameters:0000000000000000 RegionCommonComputeRxWindowParameters
/tmp/ccAkEbCV.s:1213 .text.RegionCommonComputeRxWindowParameters:00000000000000a0 $d
/tmp/ccAkEbCV.s:1222 .text.RegionCommonComputeTxPower:0000000000000000 $t
/tmp/ccAkEbCV.s:1229 .text.RegionCommonComputeTxPower:0000000000000000 RegionCommonComputeTxPower
/tmp/ccAkEbCV.s:1275 .text.RegionCommonCalcBackOff:0000000000000000 $t
/tmp/ccAkEbCV.s:1282 .text.RegionCommonCalcBackOff:0000000000000000 RegionCommonCalcBackOff
/tmp/ccAkEbCV.s:1418 .text.RegionCommonCalcBackOff:000000000000008c $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
TimerGetElapsedTime
__aeabi_i2d
__aeabi_ui2d
__aeabi_ddiv
__aeabi_dmul
__aeabi_dadd
__aeabi_d2uiz
__aeabi_dsub
__aeabi_d2iz
ceil
__aeabi_ui2f
__aeabi_fsub
__aeabi_f2d
floor