|
|
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
|
|
|
|