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/RegionEU868.lst

4727 lines
232 KiB

ARM GAS /tmp/cczfoKrY.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 "RegionEU868.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.VerifyTxFreq,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 VerifyTxFreq:
23 .LFB88:
24 .file 1 "./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c"
1:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** /*
2:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** / _____) _ | |
3:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( (____ _____ ____ _| |_ _____ ____| |__
4:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** \____ \| ___ | (_ _) ___ |/ ___) _ \
5:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** _____) ) ____| | | || |_| ____( (___| | | |
6:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** (______/|_____)_|_|_| \__)_____)\____)_| |_|
7:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** (C)2013 Semtech
8:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ___ _____ _ ___ _ _____ ___ ___ ___ ___
9:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
10:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
11:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
12:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** embedded.connectivity.solutions===============
13:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
14:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Description: LoRa MAC region EU868 implementation
15:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
16:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** License: Revised BSD License, see LICENSE.TXT file include in the project
17:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
18:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Maintainer: Miguel Luis ( Semtech ), Gregory Cristian ( Semtech ) and Daniel Jaeckle ( STACKFORCE )
19:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** */
20:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include <stdbool.h>
21:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include <string.h>
22:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include <stdint.h>
23:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include <math.h>
24:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
25:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "radio.h"
26:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "timer.h"
27:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "LoRaMac.h"
28:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
29:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "utilities.h"
30:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
31:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "Region.h"
32:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "RegionCommon.h"
33:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "RegionEU868.h"
34:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #include "debug.h"
ARM GAS /tmp/cczfoKrY.s page 2
35:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
36:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Definitions
37:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** #define CHANNELS_MASK_SIZE 1
38:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
39:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Global attributes
40:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** /*!
41:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** * LoRaMAC channels
42:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** */
43:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static ChannelParams_t Channels[EU868_MAX_NB_CHANNELS];
44:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
45:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** /*!
46:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** * LoRaMac bands
47:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** */
48:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static Band_t Bands[EU868_MAX_NB_BANDS] =
49:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
50:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** EU868_BAND0,
51:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** EU868_BAND1,
52:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** EU868_BAND2,
53:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** EU868_BAND3,
54:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** EU868_BAND4,
55:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** };
56:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
57:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** /*!
58:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** * LoRaMac channels mask
59:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** */
60:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static uint16_t ChannelsMask[CHANNELS_MASK_SIZE];
61:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
62:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** /*!
63:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** * LoRaMac channels default mask
64:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** */
65:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static uint16_t ChannelsDefaultMask[CHANNELS_MASK_SIZE];
66:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
67:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Static functions
68:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static int8_t GetNextLowerTxDr( int8_t dr, int8_t minDr )
69:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
70:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t nextLowerDr = 0;
71:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
72:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( dr == minDr )
73:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
74:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextLowerDr = minDr;
75:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
76:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
77:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
78:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextLowerDr = dr - 1;
79:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
80:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return nextLowerDr;
81:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
82:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
83:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static uint32_t GetBandwidth( uint32_t drIndex )
84:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
85:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( BandwidthsEU868[drIndex] )
86:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
87:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
88:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 125000:
89:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return 0;
90:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 250000:
91:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return 1;
ARM GAS /tmp/cczfoKrY.s page 3
92:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 500000:
93:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return 2;
94:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
95:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
96:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
97:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static int8_t LimitTxPower( int8_t txPower, int8_t maxBandTxPower, int8_t datarate, uint16_t* chann
98:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
99:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t txPowerResult = txPower;
100:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
101:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Limit tx power to the band max
102:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** txPowerResult = MAX( txPower, maxBandTxPower );
103:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
104:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return txPowerResult;
105:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
106:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
107:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static bool VerifyTxFreq( uint32_t freq, uint8_t *band )
108:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
25 .loc 1 108 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 .LVL0:
30 0000 70B5 push {r4, r5, r6, lr}
31 .LCFI0:
32 .cfi_def_cfa_offset 16
33 .cfi_offset 4, -16
34 .cfi_offset 5, -12
35 .cfi_offset 6, -8
36 .cfi_offset 14, -4
37 0002 0400 movs r4, r0
38 0004 0D00 movs r5, r1
109:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Check radio driver support
110:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Radio.CheckRfFrequency( freq ) == false )
39 .loc 1 110 0
40 0006 1C4B ldr r3, .L14
41 0008 9B6A ldr r3, [r3, #40]
42 000a 9847 blx r3
43 .LVL1:
44 000c 0028 cmp r0, #0
45 000e 23D0 beq .L2
111:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
112:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
113:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
114:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
115:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Check frequency bands
116:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( freq >= 863000000 ) && ( freq < 865000000 ) )
46 .loc 1 116 0
47 0010 1A4A ldr r2, .L14+4
48 0012 1B4B ldr r3, .L14+8
49 0014 E318 adds r3, r4, r3
50 0016 9342 cmp r3, r2
51 0018 1CD9 bls .L9
117:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
118:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 2;
119:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
120:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( freq >= 865000000 ) && ( freq <= 868000000 ) )
52 .loc 1 120 0
ARM GAS /tmp/cczfoKrY.s page 4
53 001a 1A4A ldr r2, .L14+12
54 001c 1A4B ldr r3, .L14+16
55 001e E318 adds r3, r4, r3
56 0020 9342 cmp r3, r2
57 0022 1AD9 bls .L10
121:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
122:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 0;
123:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
124:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( freq > 868000000 ) && ( freq <= 868600000 ) )
58 .loc 1 124 0
59 0024 194A ldr r2, .L14+20
60 0026 1A4B ldr r3, .L14+24
61 0028 E318 adds r3, r4, r3
62 002a 9342 cmp r3, r2
63 002c 18D9 bls .L11
125:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
126:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 1;
127:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
128:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( freq >= 868700000 ) && ( freq <= 869200000 ) )
64 .loc 1 128 0
65 002e 194A ldr r2, .L14+28
66 0030 194B ldr r3, .L14+32
67 0032 E318 adds r3, r4, r3
68 0034 9342 cmp r3, r2
69 0036 16D9 bls .L12
129:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
130:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 2;
131:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
132:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( freq >= 869400000 ) && ( freq <= 869650000 ) )
70 .loc 1 132 0
71 0038 184A ldr r2, .L14+36
72 003a 194B ldr r3, .L14+40
73 003c E318 adds r3, r4, r3
74 003e 9342 cmp r3, r2
75 0040 14D9 bls .L13
133:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
134:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 3;
135:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
136:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( freq >= 869700000 ) && ( freq <= 870000000 ) )
76 .loc 1 136 0
77 0042 184B ldr r3, .L14+44
78 0044 9C46 mov ip, r3
79 0046 6444 add r4, r4, ip
80 .LVL2:
81 0048 174B ldr r3, .L14+48
82 004a 9C42 cmp r4, r3
83 004c 11D8 bhi .L8
137:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
138:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *band = 4;
84 .loc 1 138 0
85 004e 0423 movs r3, #4
86 0050 2B70 strb r3, [r5]
87 0052 01E0 b .L2
88 .LVL3:
89 .L9:
118:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
90 .loc 1 118 0
ARM GAS /tmp/cczfoKrY.s page 5
91 0054 0223 movs r3, #2
92 0056 2B70 strb r3, [r5]
93 .LVL4:
94 .L2:
139:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
140:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
141:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
142:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
143:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
144:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
145:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
95 .loc 1 145 0
96 @ sp needed
97 .LVL5:
98 0058 70BD pop {r4, r5, r6, pc}
99 .LVL6:
100 .L10:
122:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
101 .loc 1 122 0
102 005a 0023 movs r3, #0
103 005c 2B70 strb r3, [r5]
104 005e FBE7 b .L2
105 .L11:
126:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
106 .loc 1 126 0
107 0060 0123 movs r3, #1
108 0062 2B70 strb r3, [r5]
109 0064 F8E7 b .L2
110 .L12:
130:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
111 .loc 1 130 0
112 0066 0223 movs r3, #2
113 0068 2B70 strb r3, [r5]
114 006a F5E7 b .L2
115 .L13:
134:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
116 .loc 1 134 0
117 006c 0323 movs r3, #3
118 006e 2B70 strb r3, [r5]
119 0070 F2E7 b .L2
120 .LVL7:
121 .L8:
142:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
122 .loc 1 142 0
123 0072 0020 movs r0, #0
124 0074 F0E7 b .L2
125 .L15:
126 0076 C046 .align 2
127 .L14:
128 0078 00000000 .word Radio
129 007c 7F841E00 .word 1999999
130 0080 40AA8FCC .word -863000000
131 0084 C0C62D00 .word 3000000
132 0088 C02571CC .word -865000000
133 008c BF270900 .word 599999
134 0090 FF5E43CC .word -868000001
135 0094 20A10700 .word 500000
ARM GAS /tmp/cczfoKrY.s page 6
136 0098 A0B038CC .word -868700000
137 009c 90D00300 .word 250000
138 00a0 40022ECC .word -869400000
139 00a4 606E29CC .word -869700000
140 00a8 E0930400 .word 300000
141 .cfi_endproc
142 .LFE88:
144 .section .text.RegionEU868GetPhyParam,"ax",%progbits
145 .align 1
146 .global RegionEU868GetPhyParam
147 .syntax unified
148 .code 16
149 .thumb_func
150 .fpu softvfp
152 RegionEU868GetPhyParam:
153 .LFB90:
146:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
147:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** static uint8_t CountNbOfEnabledChannels( bool joined, uint8_t datarate, uint16_t* channelsMask, Cha
148:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
149:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t nbEnabledChannels = 0;
150:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t delayTransmission = 0;
151:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
152:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** for( uint8_t i = 0, k = 0; i < EU868_MAX_NB_CHANNELS; i += 16, k++ )
153:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
154:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** for( uint8_t j = 0; j < 16; j++ )
155:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
156:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( channelsMask[k] & ( 1 << j ) ) != 0 )
157:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
158:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( channels[i + j].Frequency == 0 )
159:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the channel is enabled
160:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** continue;
161:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
162:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( joined == false )
163:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
164:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( EU868_JOIN_CHANNELS & ( 1 << j ) ) == 0 )
165:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
166:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** continue;
167:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
168:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
169:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( datarate, channels[i + j].DrRange.Fields.Min,
170:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channels[i + j].DrRange.Fields.Max ) == false )
171:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the current channel selection supports the given datarate
172:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** continue;
173:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
174:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( bands[channels[i + j].Band].TimeOff > 0 )
175:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the band is available for transmission
176:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** delayTransmission++;
177:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** continue;
178:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
179:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** enabledChannels[nbEnabledChannels++] = i + j;
180:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
181:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
182:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
183:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
184:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *delayTx = delayTransmission;
185:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return nbEnabledChannels;
186:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 7
187:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
188:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** PhyParam_t RegionEU868GetPhyParam( GetPhyParams_t* getPhy )
189:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
154 .loc 1 189 0
155 .cfi_startproc
156 @ args = 0, pretend = 0, frame = 0
157 @ frame_needed = 0, uses_anonymous_args = 0
158 .LVL8:
159 0000 10B5 push {r4, lr}
160 .LCFI1:
161 .cfi_def_cfa_offset 8
162 .cfi_offset 4, -8
163 .cfi_offset 14, -4
164 0002 0200 movs r2, r0
190:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** PhyParam_t phyParam = { 0 };
165 .loc 1 190 0
166 0004 0020 movs r0, #0
167 .LVL9:
191:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
192:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( getPhy->Attribute )
168 .loc 1 192 0
169 0006 1378 ldrb r3, [r2]
170 0008 093B subs r3, r3, #9
171 000a D9B2 uxtb r1, r3
172 000c 1729 cmp r1, #23
173 000e 0BD8 bhi .L17
174 0010 8B00 lsls r3, r1, #2
175 0012 2249 ldr r1, .L40
176 0014 CB58 ldr r3, [r1, r3]
177 0016 9F46 mov pc, r3
178 .section .rodata.RegionEU868GetPhyParam,"a",%progbits
179 .align 2
180 .L19:
181 0000 2E000000 .word .L18
182 0004 38000000 .word .L20
183 0008 42000000 .word .L21
184 000c 46000000 .word .L22
185 0010 4A000000 .word .L23
186 0014 50000000 .word .L24
187 0018 56000000 .word .L25
188 001c 5A000000 .word .L26
189 0020 5E000000 .word .L27
190 0024 64000000 .word .L28
191 0028 28000000 .word .L17
192 002c 78000000 .word .L29
193 0030 28000000 .word .L17
194 0034 7C000000 .word .L30
195 0038 80000000 .word .L31
196 003c 84000000 .word .L32
197 0040 88000000 .word .L33
198 0044 28000000 .word .L17
199 0048 28000000 .word .L17
200 004c 8C000000 .word .L34
201 0050 92000000 .word .L35
202 0054 96000000 .word .L36
203 0058 96000000 .word .L36
204 005c 18000000 .word .L37
ARM GAS /tmp/cczfoKrY.s page 8
205 .section .text.RegionEU868GetPhyParam
206 .L37:
193:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
194:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MIN_RX_DR:
195:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
196:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_RX_MIN_DATARATE;
197:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
198:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
199:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MIN_TX_DR:
200:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
201:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_TX_MIN_DATARATE;
202:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
203:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
204:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_TX_DR:
205:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
206:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_DEFAULT_DATARATE;
207:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
208:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
209:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_NEXT_LOWER_TX_DR:
210:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
211:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = GetNextLowerTxDr( getPhy->Datarate, EU868_TX_MIN_DATARATE );
207 .loc 1 211 0
208 0018 0120 movs r0, #1
209 001a 1056 ldrsb r0, [r2, r0]
210 .LVL10:
211 .LBB14:
212 .LBB15:
72:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
213 .loc 1 72 0
214 001c 0028 cmp r0, #0
215 001e 04D0 beq .L39
78:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
216 .loc 1 78 0
217 0020 C0B2 uxtb r0, r0
218 0022 0138 subs r0, r0, #1
219 .LVL11:
220 0024 C0B2 uxtb r0, r0
221 .LVL12:
222 .L38:
223 .LBE15:
224 .LBE14:
225 .loc 1 211 0
226 0026 40B2 sxtb r0, r0
227 .LVL13:
228 .L17:
212:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
213:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
214:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_TX_POWER:
215:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
216:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_DEFAULT_TX_POWER;
217:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
218:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
219:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MAX_PAYLOAD:
220:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
221:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = MaxPayloadOfDatarateEU868[getPhy->Datarate];
222:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
223:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 9
224:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MAX_PAYLOAD_REPEATER:
225:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
226:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = MaxPayloadOfDatarateRepeaterEU868[getPhy->Datarate];
227:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
228:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
229:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DUTY_CYCLE:
230:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
231:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_DUTY_CYCLE_ENABLED;
232:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
233:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
234:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MAX_RX_WINDOW:
235:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
236:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_MAX_RX_WINDOW;
237:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
238:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
239:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_RECEIVE_DELAY1:
240:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
241:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_RECEIVE_DELAY1;
242:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
243:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
244:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_RECEIVE_DELAY2:
245:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
246:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_RECEIVE_DELAY2;
247:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
248:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
249:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_JOIN_ACCEPT_DELAY1:
250:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
251:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_JOIN_ACCEPT_DELAY1;
252:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
253:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
254:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_JOIN_ACCEPT_DELAY2:
255:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
256:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_JOIN_ACCEPT_DELAY2;
257:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
258:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
259:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MAX_FCNT_GAP:
260:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
261:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_MAX_FCNT_GAP;
262:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
263:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
264:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_ACK_TIMEOUT:
265:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
266:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = ( EU868_ACKTIMEOUT + randr( -EU868_ACK_TIMEOUT_RND, EU868_ACK_TIMEOUT_
267:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
268:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
269:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_DR1_OFFSET:
270:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
271:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_DEFAULT_RX1_DR_OFFSET;
272:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
273:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
274:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_RX2_FREQUENCY:
275:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
276:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_RX_WND_2_FREQ;
277:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
278:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
279:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_RX2_DR:
280:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
ARM GAS /tmp/cczfoKrY.s page 10
281:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_RX_WND_2_DR;
282:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
283:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
284:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_CHANNELS_MASK:
285:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
286:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.ChannelsMask = ChannelsMask;
287:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
288:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
289:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_CHANNELS_DEFAULT_MASK:
290:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
291:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.ChannelsMask = ChannelsDefaultMask;
292:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
293:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
294:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_MAX_NB_CHANNELS:
295:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
296:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = EU868_MAX_NB_CHANNELS;
297:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
298:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
299:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_CHANNELS:
300:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
301:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Channels = Channels;
302:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
303:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
304:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_UPLINK_DWELL_TIME:
305:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_DOWNLINK_DWELL_TIME:
306:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
307:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = 0;
308:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
309:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
310:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_MAX_EIRP:
311:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
312:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.fValue = EU868_DEFAULT_MAX_EIRP;
313:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
314:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
315:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_ANTENNA_GAIN:
316:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
317:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.fValue = EU868_DEFAULT_ANTENNA_GAIN;
318:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
319:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
320:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_NB_JOIN_TRIALS:
321:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_NB_JOIN_TRIALS:
322:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
323:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam.Value = 48;
324:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
325:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
326:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
327:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
328:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
329:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
330:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
331:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
332:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return phyParam;
333:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
229 .loc 1 333 0
230 @ sp needed
231 0028 10BD pop {r4, pc}
232 .LVL14:
ARM GAS /tmp/cczfoKrY.s page 11
233 .L39:
234 .LBB17:
235 .LBB16:
74:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
236 .loc 1 74 0
237 002a 0020 movs r0, #0
238 .LVL15:
239 002c FBE7 b .L38
240 .LVL16:
241 .L18:
242 .LBE16:
243 .LBE17:
221:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
244 .loc 1 221 0
245 002e 0123 movs r3, #1
246 0030 D356 ldrsb r3, [r2, r3]
247 0032 1B4A ldr r2, .L40+4
248 .LVL17:
249 0034 D05C ldrb r0, [r2, r3]
222:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
250 .loc 1 222 0
251 0036 F7E7 b .L17
252 .LVL18:
253 .L20:
226:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
254 .loc 1 226 0
255 0038 0123 movs r3, #1
256 003a D356 ldrsb r3, [r2, r3]
257 003c 194A ldr r2, .L40+8
258 .LVL19:
259 003e D05C ldrb r0, [r2, r3]
227:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
260 .loc 1 227 0
261 0040 F2E7 b .L17
262 .LVL20:
263 .L21:
231:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
264 .loc 1 231 0
265 0042 0120 movs r0, #1
232:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
266 .loc 1 232 0
267 0044 F0E7 b .L17
268 .L22:
236:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
269 .loc 1 236 0
270 0046 1848 ldr r0, .L40+12
237:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
271 .loc 1 237 0
272 0048 EEE7 b .L17
273 .L23:
241:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
274 .loc 1 241 0
275 004a FA20 movs r0, #250
276 .LVL21:
277 004c 8000 lsls r0, r0, #2
278 .LVL22:
242:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 12
279 .loc 1 242 0
280 004e EBE7 b .L17
281 .L24:
246:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
282 .loc 1 246 0
283 0050 FA20 movs r0, #250
284 .LVL23:
285 0052 C000 lsls r0, r0, #3
286 .LVL24:
247:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
287 .loc 1 247 0
288 0054 E8E7 b .L17
289 .L25:
251:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
290 .loc 1 251 0
291 0056 1548 ldr r0, .L40+16
252:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
292 .loc 1 252 0
293 0058 E6E7 b .L17
294 .L26:
256:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
295 .loc 1 256 0
296 005a 1548 ldr r0, .L40+20
257:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
297 .loc 1 257 0
298 005c E4E7 b .L17
299 .L27:
261:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
300 .loc 1 261 0
301 005e 8020 movs r0, #128
302 .LVL25:
303 0060 C001 lsls r0, r0, #7
304 .LVL26:
262:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
305 .loc 1 262 0
306 0062 E1E7 b .L17
307 .L28:
266:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
308 .loc 1 266 0
309 0064 FA21 movs r1, #250
310 0066 8900 lsls r1, r1, #2
311 0068 1248 ldr r0, .L40+24
312 006a FFF7FEFF bl randr
313 .LVL27:
314 006e FA23 movs r3, #250
315 0070 DB00 lsls r3, r3, #3
316 0072 9C46 mov ip, r3
317 0074 6044 add r0, r0, ip
267:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
318 .loc 1 267 0
319 0076 D7E7 b .L17
320 .LVL28:
321 .L29:
276:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
322 .loc 1 276 0
323 0078 0F48 ldr r0, .L40+28
277:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 13
324 .loc 1 277 0
325 007a D5E7 b .L17
326 .L30:
286:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
327 .loc 1 286 0
328 007c 0F48 ldr r0, .L40+32
287:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
329 .loc 1 287 0
330 007e D3E7 b .L17
331 .L31:
291:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
332 .loc 1 291 0
333 0080 0F48 ldr r0, .L40+36
292:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
334 .loc 1 292 0
335 0082 D1E7 b .L17
336 .L32:
296:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
337 .loc 1 296 0
338 0084 1020 movs r0, #16
297:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
339 .loc 1 297 0
340 0086 CFE7 b .L17
341 .L33:
301:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
342 .loc 1 301 0
343 0088 0E48 ldr r0, .L40+40
302:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
344 .loc 1 302 0
345 008a CDE7 b .L17
346 .L34:
312:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
347 .loc 1 312 0
348 008c 8320 movs r0, #131
349 .LVL29:
350 008e C005 lsls r0, r0, #23
351 .LVL30:
313:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
352 .loc 1 313 0
353 0090 CAE7 b .L17
354 .L35:
317:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
355 .loc 1 317 0
356 0092 0D48 ldr r0, .L40+44
318:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
357 .loc 1 318 0
358 0094 C8E7 b .L17
359 .L36:
323:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
360 .loc 1 323 0
361 0096 3020 movs r0, #48
324:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
362 .loc 1 324 0
363 0098 C6E7 b .L17
364 .L41:
365 009a C046 .align 2
366 .L40:
ARM GAS /tmp/cczfoKrY.s page 14
367 009c 00000000 .word .L19
368 00a0 00000000 .word .LANCHOR0
369 00a4 00000000 .word .LANCHOR1
370 00a8 B80B0000 .word 3000
371 00ac 88130000 .word 5000
372 00b0 70170000 .word 6000
373 00b4 18FCFFFF .word -1000
374 00b8 08E6D333 .word 869525000
375 00bc 00000000 .word .LANCHOR2
376 00c0 00000000 .word .LANCHOR3
377 00c4 00000000 .word Channels
378 00c8 9A990940 .word 1074370970
379 .cfi_endproc
380 .LFE90:
382 .section .text.RegionEU868SetBandTxDone,"ax",%progbits
383 .align 1
384 .global RegionEU868SetBandTxDone
385 .syntax unified
386 .code 16
387 .thumb_func
388 .fpu softvfp
390 RegionEU868SetBandTxDone:
391 .LFB91:
334:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
335:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868SetBandTxDone( SetBandTxDoneParams_t* txDone )
336:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
392 .loc 1 336 0
393 .cfi_startproc
394 @ args = 0, pretend = 0, frame = 0
395 @ frame_needed = 0, uses_anonymous_args = 0
396 .LVL31:
397 0000 10B5 push {r4, lr}
398 .LCFI2:
399 .cfi_def_cfa_offset 8
400 .cfi_offset 4, -8
401 .cfi_offset 14, -4
337:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonSetBandTxDone( txDone->Joined, &Bands[Channels[txDone->Channel].Band], txDone->Last
402 .loc 1 337 0
403 0002 0278 ldrb r2, [r0]
404 0004 5300 lsls r3, r2, #1
405 0006 9B18 adds r3, r3, r2
406 0008 9A00 lsls r2, r3, #2
407 000a 054B ldr r3, .L43
408 000c 9B18 adds r3, r3, r2
409 000e 5B7A ldrb r3, [r3, #9]
410 0010 4268 ldr r2, [r0, #4]
411 0012 1B01 lsls r3, r3, #4
412 0014 0349 ldr r1, .L43+4
413 0016 C918 adds r1, r1, r3
414 0018 4078 ldrb r0, [r0, #1]
415 .LVL32:
416 001a FFF7FEFF bl RegionCommonSetBandTxDone
417 .LVL33:
338:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
418 .loc 1 338 0
419 @ sp needed
420 001e 10BD pop {r4, pc}
ARM GAS /tmp/cczfoKrY.s page 15
421 .L44:
422 .align 2
423 .L43:
424 0020 00000000 .word Channels
425 0024 00000000 .word .LANCHOR4
426 .cfi_endproc
427 .LFE91:
429 .section .text.RegionEU868InitDefaults,"ax",%progbits
430 .align 1
431 .global RegionEU868InitDefaults
432 .syntax unified
433 .code 16
434 .thumb_func
435 .fpu softvfp
437 RegionEU868InitDefaults:
438 .LFB92:
339:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
340:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868InitDefaults( InitType_t type )
341:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
439 .loc 1 341 0
440 .cfi_startproc
441 @ args = 0, pretend = 0, frame = 0
442 @ frame_needed = 0, uses_anonymous_args = 0
443 .LVL34:
444 0000 70B5 push {r4, r5, r6, lr}
445 .LCFI3:
446 .cfi_def_cfa_offset 16
447 .cfi_offset 4, -16
448 .cfi_offset 5, -12
449 .cfi_offset 6, -8
450 .cfi_offset 14, -4
342:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( type )
451 .loc 1 342 0
452 0002 0028 cmp r0, #0
453 0004 02D0 beq .L47
454 0006 0128 cmp r0, #1
455 0008 14D0 beq .L48
456 .LVL35:
457 .L45:
343:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
344:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case INIT_TYPE_INIT:
345:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
346:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Channels
347:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[0] = ( ChannelParams_t ) EU868_LC1;
348:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[1] = ( ChannelParams_t ) EU868_LC2;
349:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[2] = ( ChannelParams_t ) EU868_LC3;
350:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
351:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Initialize the channels default mask
352:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsDefaultMask[0] = LC( 1 ) + LC( 2 ) + LC( 3 );
353:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update the channels mask
354:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonChanMaskCopy( ChannelsMask, ChannelsDefaultMask, 1 );
355:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
356:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
357:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case INIT_TYPE_RESTORE:
358:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
359:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Restore channels default mask
360:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] |= ChannelsDefaultMask[0];
ARM GAS /tmp/cczfoKrY.s page 16
361:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
362:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
363:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
364:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
365:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
366:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
367:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
368:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
458 .loc 1 368 0
459 @ sp needed
460 000a 70BD pop {r4, r5, r6, pc}
461 .LVL36:
462 .L47:
347:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[1] = ( ChannelParams_t ) EU868_LC2;
463 .loc 1 347 0
464 000c 0D4B ldr r3, .L49
465 000e 0E4A ldr r2, .L49+4
466 0010 1800 movs r0, r3
467 .LVL37:
468 0012 1100 movs r1, r2
469 0014 70C9 ldmia r1!, {r4, r5, r6}
470 0016 70C0 stmia r0!, {r4, r5, r6}
348:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[2] = ( ChannelParams_t ) EU868_LC3;
471 .loc 1 348 0
472 0018 70C9 ldmia r1!, {r4, r5, r6}
473 001a 70C0 stmia r0!, {r4, r5, r6}
349:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
474 .loc 1 349 0
475 001c 1833 adds r3, r3, #24
476 001e 1832 adds r2, r2, #24
477 0020 13CA ldmia r2!, {r0, r1, r4}
478 0022 13C3 stmia r3!, {r0, r1, r4}
352:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update the channels mask
479 .loc 1 352 0
480 0024 0949 ldr r1, .L49+8
481 0026 0723 movs r3, #7
482 0028 0B80 strh r3, [r1]
354:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
483 .loc 1 354 0
484 002a 0122 movs r2, #1
485 002c 0848 ldr r0, .L49+12
486 002e FFF7FEFF bl RegionCommonChanMaskCopy
487 .LVL38:
355:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
488 .loc 1 355 0
489 0032 EAE7 b .L45
490 .LVL39:
491 .L48:
360:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
492 .loc 1 360 0
493 0034 054B ldr r3, .L49+8
494 0036 1B88 ldrh r3, [r3]
495 0038 054A ldr r2, .L49+12
496 003a 1188 ldrh r1, [r2]
497 003c 0B43 orrs r3, r1
498 003e 1380 strh r3, [r2]
499 .loc 1 368 0
ARM GAS /tmp/cczfoKrY.s page 17
500 0040 E3E7 b .L45
501 .L50:
502 0042 C046 .align 2
503 .L49:
504 0044 00000000 .word Channels
505 0048 00000000 .word .LANCHOR5
506 004c 00000000 .word .LANCHOR3
507 0050 00000000 .word .LANCHOR2
508 .cfi_endproc
509 .LFE92:
511 .section .text.RegionEU868Verify,"ax",%progbits
512 .align 1
513 .global RegionEU868Verify
514 .syntax unified
515 .code 16
516 .thumb_func
517 .fpu softvfp
519 RegionEU868Verify:
520 .LFB93:
369:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
370:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute )
371:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
521 .loc 1 371 0
522 .cfi_startproc
523 @ args = 0, pretend = 0, frame = 0
524 @ frame_needed = 0, uses_anonymous_args = 0
525 .LVL40:
526 0000 10B5 push {r4, lr}
527 .LCFI4:
528 .cfi_def_cfa_offset 8
529 .cfi_offset 4, -8
530 .cfi_offset 14, -4
372:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( phyAttribute )
531 .loc 1 372 0
532 0002 0439 subs r1, r1, #4
533 .LVL41:
534 0004 CBB2 uxtb r3, r1
535 0006 1A2B cmp r3, #26
536 0008 34D8 bhi .L60
537 000a 9900 lsls r1, r3, #2
538 000c 1A4B ldr r3, .L63
539 000e 5B58 ldr r3, [r3, r1]
540 0010 9F46 mov pc, r3
541 .section .rodata.RegionEU868Verify,"a",%progbits
542 .align 2
543 .L54:
544 0000 16000000 .word .L53
545 0004 2A000000 .word .L55
546 0008 3E000000 .word .L56
547 000c 52000000 .word .L57
548 0010 52000000 .word .L57
549 0014 74000000 .word .L60
550 0018 74000000 .word .L60
551 001c 12000000 .word .L58
552 0020 74000000 .word .L60
553 0024 74000000 .word .L60
554 0028 74000000 .word .L60
ARM GAS /tmp/cczfoKrY.s page 18
555 002c 74000000 .word .L60
556 0030 74000000 .word .L60
557 0034 74000000 .word .L60
558 0038 74000000 .word .L60
559 003c 74000000 .word .L60
560 0040 74000000 .word .L60
561 0044 74000000 .word .L60
562 0048 74000000 .word .L60
563 004c 74000000 .word .L60
564 0050 74000000 .word .L60
565 0054 74000000 .word .L60
566 0058 74000000 .word .L60
567 005c 74000000 .word .L60
568 0060 74000000 .word .L60
569 0064 74000000 .word .L60
570 0068 66000000 .word .L59
571 .section .text.RegionEU868Verify
572 .L58:
373:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
374:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_TX_DR:
375:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
376:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return RegionCommonValueInRange( verify->DatarateParams.Datarate, EU868_TX_MIN_DATARATE
377:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
378:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_TX_DR:
379:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
380:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return RegionCommonValueInRange( verify->DatarateParams.Datarate, DR_0, DR_5 );
381:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
382:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_RX_DR:
383:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
384:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return RegionCommonValueInRange( verify->DatarateParams.Datarate, EU868_RX_MIN_DATARATE
385:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
386:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DEF_TX_POWER:
387:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_TX_POWER:
388:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
389:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Remark: switched min and max!
390:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return RegionCommonValueInRange( verify->TxPower, EU868_MAX_TX_POWER, EU868_MIN_TX_POWE
391:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
392:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_DUTY_CYCLE:
393:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
394:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return EU868_DUTY_CYCLE_ENABLED;
573 .loc 1 394 0
574 0012 0120 movs r0, #1
575 .LVL42:
576 .L52:
395:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
396:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case PHY_NB_JOIN_TRIALS:
397:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
398:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( verify->NbJoinTrials < 48 )
399:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
400:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
401:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
402:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
403:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
404:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
405:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
406:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
407:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
ARM GAS /tmp/cczfoKrY.s page 19
408:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
577 .loc 1 408 0
578 @ sp needed
579 0014 10BD pop {r4, pc}
580 .LVL43:
581 .L53:
376:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
582 .loc 1 376 0
583 0016 0078 ldrb r0, [r0]
584 .LVL44:
585 0018 40B2 sxtb r0, r0
586 001a 0722 movs r2, #7
587 001c 0021 movs r1, #0
588 001e FFF7FEFF bl RegionCommonValueInRange
589 .LVL45:
590 0022 431E subs r3, r0, #1
591 0024 9841 sbcs r0, r0, r3
592 0026 C0B2 uxtb r0, r0
593 0028 F4E7 b .L52
594 .LVL46:
595 .L55:
380:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
596 .loc 1 380 0
597 002a 0078 ldrb r0, [r0]
598 .LVL47:
599 002c 40B2 sxtb r0, r0
600 002e 0522 movs r2, #5
601 0030 0021 movs r1, #0
602 0032 FFF7FEFF bl RegionCommonValueInRange
603 .LVL48:
604 0036 431E subs r3, r0, #1
605 0038 9841 sbcs r0, r0, r3
606 003a C0B2 uxtb r0, r0
607 003c EAE7 b .L52
608 .LVL49:
609 .L56:
384:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
610 .loc 1 384 0
611 003e 0078 ldrb r0, [r0]
612 .LVL50:
613 0040 40B2 sxtb r0, r0
614 0042 0722 movs r2, #7
615 0044 0021 movs r1, #0
616 0046 FFF7FEFF bl RegionCommonValueInRange
617 .LVL51:
618 004a 431E subs r3, r0, #1
619 004c 9841 sbcs r0, r0, r3
620 004e C0B2 uxtb r0, r0
621 0050 E0E7 b .L52
622 .LVL52:
623 .L57:
390:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
624 .loc 1 390 0
625 0052 0078 ldrb r0, [r0]
626 .LVL53:
627 0054 40B2 sxtb r0, r0
628 0056 0722 movs r2, #7
ARM GAS /tmp/cczfoKrY.s page 20
629 0058 0021 movs r1, #0
630 005a FFF7FEFF bl RegionCommonValueInRange
631 .LVL54:
632 005e 431E subs r3, r0, #1
633 0060 9841 sbcs r0, r0, r3
634 0062 C0B2 uxtb r0, r0
635 0064 D6E7 b .L52
636 .LVL55:
637 .L59:
398:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
638 .loc 1 398 0
639 0066 0378 ldrb r3, [r0]
640 0068 2F2B cmp r3, #47
641 006a 01D9 bls .L62
407:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
642 .loc 1 407 0
643 006c 0120 movs r0, #1
644 .LVL56:
645 006e D1E7 b .L52
646 .LVL57:
647 .L62:
400:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
648 .loc 1 400 0
649 0070 0020 movs r0, #0
650 .LVL58:
651 0072 CFE7 b .L52
652 .LVL59:
653 .L60:
405:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
654 .loc 1 405 0
655 0074 0020 movs r0, #0
656 .LVL60:
657 0076 CDE7 b .L52
658 .L64:
659 .align 2
660 .L63:
661 0078 00000000 .word .L54
662 .cfi_endproc
663 .LFE93:
665 .section .text.RegionEU868ChanMaskSet,"ax",%progbits
666 .align 1
667 .global RegionEU868ChanMaskSet
668 .syntax unified
669 .code 16
670 .thumb_func
671 .fpu softvfp
673 RegionEU868ChanMaskSet:
674 .LFB95:
409:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
410:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868ApplyCFList( ApplyCFListParams_t* applyCFList )
411:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
412:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelParams_t newChannel;
413:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelAddParams_t channelAdd;
414:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelRemoveParams_t channelRemove;
415:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
416:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Setup default datarate range
417:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.DrRange.Value = ( DR_5 << 4 ) | DR_0;
ARM GAS /tmp/cczfoKrY.s page 21
418:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
419:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Size of the optional CF list
420:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( applyCFList->Size != 16 )
421:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
422:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return;
423:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
424:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
425:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Last byte is RFU, don't take it into account
426:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** for( uint8_t i = 0, chanIdx = EU868_NUMB_DEFAULT_CHANNELS; chanIdx < EU868_MAX_NB_CHANNELS; i+=
427:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
428:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( chanIdx < ( EU868_NUMB_CHANNELS_CF_LIST + EU868_NUMB_DEFAULT_CHANNELS ) )
429:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
430:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Channel frequency
431:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency = (uint32_t) applyCFList->Payload[i];
432:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 1] << 8 );
433:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 2] << 16 );
434:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency *= 100;
435:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
436:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Initialize alternative frequency to 0
437:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Rx1Frequency = 0;
438:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
439:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
440:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
441:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency = 0;
442:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.DrRange.Value = 0;
443:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Rx1Frequency = 0;
444:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
445:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
446:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( newChannel.Frequency != 0 )
447:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
448:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.NewChannel = &newChannel;
449:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.ChannelId = chanIdx;
450:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
451:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Try to add all channels
452:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionEU868ChannelAdd( &channelAdd );
453:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
454:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
455:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
456:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelRemove.ChannelId = chanIdx;
457:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
458:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionEU868ChannelsRemove( &channelRemove );
459:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
460:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
461:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
462:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
463:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868ChanMaskSet( ChanMaskSetParams_t* chanMaskSet )
464:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
675 .loc 1 464 0
676 .cfi_startproc
677 @ args = 0, pretend = 0, frame = 0
678 @ frame_needed = 0, uses_anonymous_args = 0
679 .LVL61:
680 0000 10B5 push {r4, lr}
681 .LCFI5:
682 .cfi_def_cfa_offset 8
683 .cfi_offset 4, -8
684 .cfi_offset 14, -4
ARM GAS /tmp/cczfoKrY.s page 22
465:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( chanMaskSet->ChannelsMaskType )
685 .loc 1 465 0
686 0002 0379 ldrb r3, [r0, #4]
687 0004 002B cmp r3, #0
688 0006 03D0 beq .L67
689 0008 012B cmp r3, #1
690 000a 08D0 beq .L68
466:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
467:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case CHANNELS_MASK:
468:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
469:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonChanMaskCopy( ChannelsMask, chanMaskSet->ChannelsMaskIn, 1 );
470:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
471:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
472:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case CHANNELS_DEFAULT_MASK:
473:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
474:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonChanMaskCopy( ChannelsDefaultMask, chanMaskSet->ChannelsMaskIn, 1 );
475:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
476:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
477:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
478:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
691 .loc 1 478 0
692 000c 0020 movs r0, #0
693 .LVL62:
694 000e 05E0 b .L66
695 .LVL63:
696 .L67:
469:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
697 .loc 1 469 0
698 0010 0168 ldr r1, [r0]
699 0012 0122 movs r2, #1
700 0014 0548 ldr r0, .L71
701 .LVL64:
702 0016 FFF7FEFF bl RegionCommonChanMaskCopy
703 .LVL65:
479:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
480:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
704 .loc 1 480 0
705 001a 0120 movs r0, #1
706 .L66:
481:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
707 .loc 1 481 0
708 @ sp needed
709 001c 10BD pop {r4, pc}
710 .LVL66:
711 .L68:
474:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
712 .loc 1 474 0
713 001e 0168 ldr r1, [r0]
714 0020 0122 movs r2, #1
715 0022 0348 ldr r0, .L71+4
716 .LVL67:
717 0024 FFF7FEFF bl RegionCommonChanMaskCopy
718 .LVL68:
480:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
719 .loc 1 480 0
720 0028 0120 movs r0, #1
475:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 23
721 .loc 1 475 0
722 002a F7E7 b .L66
723 .L72:
724 .align 2
725 .L71:
726 002c 00000000 .word .LANCHOR2
727 0030 00000000 .word .LANCHOR3
728 .cfi_endproc
729 .LFE95:
731 .section .text.RegionEU868AdrNext,"ax",%progbits
732 .align 1
733 .global RegionEU868AdrNext
734 .syntax unified
735 .code 16
736 .thumb_func
737 .fpu softvfp
739 RegionEU868AdrNext:
740 .LFB96:
482:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
483:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868AdrNext( AdrNextParams_t* adrNext, int8_t* drOut, int8_t* txPowOut, uint32_t* adrAc
484:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
741 .loc 1 484 0
742 .cfi_startproc
743 @ args = 0, pretend = 0, frame = 8
744 @ frame_needed = 0, uses_anonymous_args = 0
745 .LVL69:
746 0000 F0B5 push {r4, r5, r6, r7, lr}
747 .LCFI6:
748 .cfi_def_cfa_offset 20
749 .cfi_offset 4, -20
750 .cfi_offset 5, -16
751 .cfi_offset 6, -12
752 .cfi_offset 7, -8
753 .cfi_offset 14, -4
754 0002 C646 mov lr, r8
755 0004 00B5 push {lr}
756 .LCFI7:
757 .cfi_def_cfa_offset 24
758 .cfi_offset 8, -24
759 0006 82B0 sub sp, sp, #8
760 .LCFI8:
761 .cfi_def_cfa_offset 32
762 0008 0400 movs r4, r0
763 000a 8846 mov r8, r1
764 000c 1700 movs r7, r2
765 .LVL70:
485:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool adrAckReq = false;
486:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t datarate = adrNext->Datarate;
766 .loc 1 486 0
767 000e 0822 movs r2, #8
768 .LVL71:
769 0010 8256 ldrsb r2, [r0, r2]
770 .LVL72:
487:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t txPower = adrNext->TxPower;
771 .loc 1 487 0
772 0012 0926 movs r6, #9
773 0014 8657 ldrsb r6, [r0, r6]
ARM GAS /tmp/cczfoKrY.s page 24
774 .LVL73:
488:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** GetPhyParams_t getPhy;
489:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** PhyParam_t phyParam;
490:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
491:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Report back the adr ack counter
492:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *adrAckCounter = adrNext->AdrAckCounter;
775 .loc 1 492 0
776 0016 4168 ldr r1, [r0, #4]
777 .LVL74:
778 0018 1960 str r1, [r3]
493:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
494:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( adrNext->AdrEnabled == true )
779 .loc 1 494 0
780 001a 4578 ldrb r5, [r0, #1]
781 001c 002D cmp r5, #0
782 001e 23D0 beq .L74
495:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
496:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( datarate == EU868_TX_MIN_DATARATE )
783 .loc 1 496 0
784 0020 002A cmp r2, #0
785 0022 1ED0 beq .L78
497:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
498:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *adrAckCounter = 0;
499:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** adrAckReq = false;
500:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
501:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
502:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
503:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( adrNext->AdrAckCounter >= EU868_ADR_ACK_LIMIT )
786 .loc 1 503 0
787 0024 4368 ldr r3, [r0, #4]
788 .LVL75:
789 0026 3F2B cmp r3, #63
790 0028 26D9 bls .L77
504:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
505:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** adrAckReq = true;
506:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** txPower = EU868_MAX_TX_POWER;
791 .loc 1 506 0
792 002a 0026 movs r6, #0
793 .LVL76:
794 .L76:
507:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
508:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
509:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
510:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** adrAckReq = false;
511:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
512:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( adrNext->AdrAckCounter >= ( EU868_ADR_ACK_LIMIT + EU868_ADR_ACK_DELAY ) )
795 .loc 1 512 0
796 002c 5F2B cmp r3, #95
797 002e 1BD9 bls .L74
513:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
514:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( adrNext->AdrAckCounter % EU868_ADR_ACK_DELAY ) == 1 )
798 .loc 1 514 0
799 0030 1F21 movs r1, #31
800 0032 0B40 ands r3, r1
801 0034 012B cmp r3, #1
802 0036 17D1 bne .L74
515:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
ARM GAS /tmp/cczfoKrY.s page 25
516:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Decrease the datarate
517:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** getPhy.Attribute = PHY_NEXT_LOWER_TX_DR;
803 .loc 1 517 0
804 0038 01A8 add r0, sp, #4
805 .LVL77:
806 003a 1F33 adds r3, r3, #31
807 003c 0370 strb r3, [r0]
518:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** getPhy.Datarate = datarate;
808 .loc 1 518 0
809 003e 4270 strb r2, [r0, #1]
519:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** getPhy.UplinkDwellTime = adrNext->UplinkDwellTime;
810 .loc 1 519 0
811 0040 A37A ldrb r3, [r4, #10]
812 0042 8370 strb r3, [r0, #2]
520:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam = RegionEU868GetPhyParam( &getPhy );
813 .loc 1 520 0
814 0044 FFF7FEFF bl RegionEU868GetPhyParam
815 .LVL78:
521:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = phyParam.Value;
816 .loc 1 521 0
817 0048 42B2 sxtb r2, r0
818 .LVL79:
522:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
523:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( datarate == EU868_TX_MIN_DATARATE )
819 .loc 1 523 0
820 004a 002A cmp r2, #0
821 004c 0CD1 bne .L74
822 .LVL80:
524:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
525:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // We must set adrAckReq to false as soon as we reach the lowest datarate
526:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** adrAckReq = false;
527:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( adrNext->UpdateChanMask == true )
823 .loc 1 527 0
824 004e 2578 ldrb r5, [r4]
825 0050 002D cmp r5, #0
826 0052 09D0 beq .L74
528:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
529:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Re-enable default channels
530:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] |= LC( 1 ) + LC( 2 ) + LC( 3 );
827 .loc 1 530 0
828 0054 0949 ldr r1, .L79
829 0056 0B88 ldrh r3, [r1]
830 0058 0720 movs r0, #7
831 005a 0343 orrs r3, r0
832 005c 0B80 strh r3, [r1]
526:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( adrNext->UpdateChanMask == true )
833 .loc 1 526 0
834 005e 0025 movs r5, #0
835 0060 02E0 b .L74
836 .LVL81:
837 .L78:
498:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** adrAckReq = false;
838 .loc 1 498 0
839 0062 0021 movs r1, #0
840 0064 1960 str r1, [r3]
499:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
841 .loc 1 499 0
ARM GAS /tmp/cczfoKrY.s page 26
842 0066 0025 movs r5, #0
843 .LVL82:
844 .L74:
531:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
532:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
533:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
534:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
535:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
536:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
537:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
538:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *drOut = datarate;
845 .loc 1 538 0
846 0068 4346 mov r3, r8
847 006a 1A70 strb r2, [r3]
539:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *txPowOut = txPower;
848 .loc 1 539 0
849 006c 3E70 strb r6, [r7]
540:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return adrAckReq;
541:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
850 .loc 1 541 0
851 006e 2800 movs r0, r5
852 0070 02B0 add sp, sp, #8
853 @ sp needed
854 .LVL83:
855 .LVL84:
856 .LVL85:
857 .LVL86:
858 .LVL87:
859 0072 04BC pop {r2}
860 0074 9046 mov r8, r2
861 0076 F0BD pop {r4, r5, r6, r7, pc}
862 .LVL88:
863 .L77:
510:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
864 .loc 1 510 0
865 0078 0025 movs r5, #0
866 007a D7E7 b .L76
867 .L80:
868 .align 2
869 .L79:
870 007c 00000000 .word .LANCHOR2
871 .cfi_endproc
872 .LFE96:
874 .section .text.RegionEU868ComputeRxWindowParameters,"ax",%progbits
875 .align 1
876 .global RegionEU868ComputeRxWindowParameters
877 .syntax unified
878 .code 16
879 .thumb_func
880 .fpu softvfp
882 RegionEU868ComputeRxWindowParameters:
883 .LFB97:
542:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
543:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError,
544:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
884 .loc 1 544 0
885 .cfi_startproc
ARM GAS /tmp/cczfoKrY.s page 27
886 @ args = 0, pretend = 0, frame = 8
887 @ frame_needed = 0, uses_anonymous_args = 0
888 .LVL89:
889 0000 70B5 push {r4, r5, r6, lr}
890 .LCFI9:
891 .cfi_def_cfa_offset 16
892 .cfi_offset 4, -16
893 .cfi_offset 5, -12
894 .cfi_offset 6, -8
895 .cfi_offset 14, -4
896 0002 86B0 sub sp, sp, #24
897 .LCFI10:
898 .cfi_def_cfa_offset 40
899 0004 0C00 movs r4, r1
900 0006 1500 movs r5, r2
901 0008 1E00 movs r6, r3
902 .LVL90:
545:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** double tSymbol = 0.0;
546:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint32_t radioWakeUpTime;
547:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
548:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Get the datarate, perform a boundary check
549:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** rxConfigParams->Datarate = MIN( datarate, EU868_RX_MAX_DATARATE );
903 .loc 1 549 0
904 000a 021C adds r2, r0, #0
905 .LVL91:
906 000c 0728 cmp r0, #7
907 000e 00DD ble .L82
908 0010 0722 movs r2, #7
909 .L82:
910 0012 53B2 sxtb r3, r2
911 .LVL92:
912 0014 7270 strb r2, [r6, #1]
913 .LVL93:
914 .LBB18:
915 .LBB19:
85:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
916 .loc 1 85 0
917 0016 9900 lsls r1, r3, #2
918 .LVL94:
919 0018 184A ldr r2, .L90
920 001a 8A58 ldr r2, [r1, r2]
921 001c 1849 ldr r1, .L90+4
922 001e 8A42 cmp r2, r1
923 0020 22D0 beq .L88
924 0022 1849 ldr r1, .L90+8
925 0024 8A42 cmp r2, r1
926 0026 1DD0 beq .L85
89:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 250000:
927 .loc 1 89 0
928 0028 0022 movs r2, #0
929 .L84:
930 .LVL95:
931 .LBE19:
932 .LBE18:
550:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** rxConfigParams->Bandwidth = GetBandwidth( rxConfigParams->Datarate );
933 .loc 1 550 0
934 002a B270 strb r2, [r6, #2]
ARM GAS /tmp/cczfoKrY.s page 28
551:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
552:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( rxConfigParams->Datarate == DR_7 )
935 .loc 1 552 0
936 002c 072B cmp r3, #7
937 002e 1DD0 beq .L89
553:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // FSK
554:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** tSymbol = RegionCommonComputeSymbolTimeFsk( DataratesEU868[rxConfigParams->Datarate] );
555:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
556:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
557:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // LoRa
558:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** tSymbol = RegionCommonComputeSymbolTimeLoRa( DataratesEU868[rxConfigParams->Datarate], Band
938 .loc 1 558 0
939 0030 154A ldr r2, .L90+12
940 0032 D05C ldrb r0, [r2, r3]
941 .LVL96:
942 0034 9B00 lsls r3, r3, #2
943 0036 114A ldr r2, .L90
944 0038 9958 ldr r1, [r3, r2]
945 003a FFF7FEFF bl RegionCommonComputeSymbolTimeLoRa
946 .LVL97:
947 003e 0490 str r0, [sp, #16]
948 0040 0591 str r1, [sp, #20]
949 .LVL98:
950 .L87:
559:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
560:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
561:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** radioWakeUpTime = Radio.GetRadioWakeUpTime();
951 .loc 1 561 0
952 0042 124B ldr r3, .L90+16
953 0044 5B6E ldr r3, [r3, #100]
954 0046 9847 blx r3
955 .LVL99:
562:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonComputeRxWindowParameters( tSymbol, minRxSymbols, rxError, radioWakeUpTime, &rxConf
956 .loc 1 562 0
957 0048 3300 movs r3, r6
958 004a 0C33 adds r3, r3, #12
959 004c 0293 str r3, [sp, #8]
960 004e 043B subs r3, r3, #4
961 0050 0193 str r3, [sp, #4]
962 0052 0090 str r0, [sp]
963 0054 2B00 movs r3, r5
964 0056 2200 movs r2, r4
965 0058 0498 ldr r0, [sp, #16]
966 005a 0599 ldr r1, [sp, #20]
967 .LVL100:
968 005c FFF7FEFF bl RegionCommonComputeRxWindowParameters
969 .LVL101:
563:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
970 .loc 1 563 0
971 0060 06B0 add sp, sp, #24
972 @ sp needed
973 .LVL102:
974 .LVL103:
975 0062 70BD pop {r4, r5, r6, pc}
976 .LVL104:
977 .L85:
978 .LBB21:
ARM GAS /tmp/cczfoKrY.s page 29
979 .LBB20:
93:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
980 .loc 1 93 0
981 0064 0222 movs r2, #2
982 0066 E0E7 b .L84
983 .L88:
91:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 500000:
984 .loc 1 91 0
985 0068 0122 movs r2, #1
986 006a DEE7 b .L84
987 .LVL105:
988 .L89:
989 .LBE20:
990 .LBE21:
554:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
991 .loc 1 554 0
992 006c 064A ldr r2, .L90+12
993 006e D05C ldrb r0, [r2, r3]
994 .LVL106:
995 0070 FFF7FEFF bl RegionCommonComputeSymbolTimeFsk
996 .LVL107:
997 0074 0490 str r0, [sp, #16]
998 0076 0591 str r1, [sp, #20]
999 .LVL108:
1000 0078 E3E7 b .L87
1001 .L91:
1002 007a C046 .align 2
1003 .L90:
1004 007c 00000000 .word .LANCHOR6
1005 0080 90D00300 .word 250000
1006 0084 20A10700 .word 500000
1007 0088 00000000 .word .LANCHOR7
1008 008c 00000000 .word Radio
1009 .cfi_endproc
1010 .LFE97:
1012 .section .text.RegionEU868RxConfig,"ax",%progbits
1013 .align 1
1014 .global RegionEU868RxConfig
1015 .syntax unified
1016 .code 16
1017 .thumb_func
1018 .fpu softvfp
1020 RegionEU868RxConfig:
1021 .LFB98:
564:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
565:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate )
566:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1022 .loc 1 566 0
1023 .cfi_startproc
1024 @ args = 0, pretend = 0, frame = 8
1025 @ frame_needed = 0, uses_anonymous_args = 0
1026 .LVL109:
1027 0000 F0B5 push {r4, r5, r6, r7, lr}
1028 .LCFI11:
1029 .cfi_def_cfa_offset 20
1030 .cfi_offset 4, -20
1031 .cfi_offset 5, -16
ARM GAS /tmp/cczfoKrY.s page 30
1032 .cfi_offset 6, -12
1033 .cfi_offset 7, -8
1034 .cfi_offset 14, -4
1035 0002 8DB0 sub sp, sp, #52
1036 .LCFI12:
1037 .cfi_def_cfa_offset 72
1038 0004 0400 movs r4, r0
1039 0006 0B91 str r1, [sp, #44]
567:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RadioModems_t modem;
568:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t dr = rxConfig->Datarate;
1040 .loc 1 568 0
1041 0008 0126 movs r6, #1
1042 000a 8657 ldrsb r6, [r0, r6]
1043 .LVL110:
569:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t maxPayload = 0;
570:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t phyDr = 0;
571:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint32_t frequency = rxConfig->Frequency;
1044 .loc 1 571 0
1045 000c 4768 ldr r7, [r0, #4]
1046 .LVL111:
572:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
573:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Radio.GetStatus( ) != RF_IDLE )
1047 .loc 1 573 0
1048 000e 334B ldr r3, .L101
1049 0010 DB68 ldr r3, [r3, #12]
1050 0012 9847 blx r3
1051 .LVL112:
1052 0014 0028 cmp r0, #0
1053 0016 5ED1 bne .L99
574:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
575:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
576:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
577:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
578:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( rxConfig->Window == 0 )
1054 .loc 1 578 0
1055 0018 E37C ldrb r3, [r4, #19]
1056 001a 002B cmp r3, #0
1057 001c 0BD1 bne .L94
579:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
580:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Apply window 1 frequency
581:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** frequency = Channels[rxConfig->Channel].Frequency;
1058 .loc 1 581 0
1059 001e 2178 ldrb r1, [r4]
1060 0020 2F4A ldr r2, .L101+4
1061 0022 4B00 lsls r3, r1, #1
1062 0024 5F18 adds r7, r3, r1
1063 .LVL113:
1064 0026 B800 lsls r0, r7, #2
1065 0028 0700 movs r7, r0
1066 002a 8058 ldr r0, [r0, r2]
1067 .LVL114:
582:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Apply the alternative RX 1 window frequency, if it is available
583:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Channels[rxConfig->Channel].Rx1Frequency != 0 )
1068 .loc 1 583 0
1069 002c D219 adds r2, r2, r7
1070 002e 5768 ldr r7, [r2, #4]
1071 0030 002F cmp r7, #0
ARM GAS /tmp/cczfoKrY.s page 31
1072 0032 00D1 bne .L94
581:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Apply the alternative RX 1 window frequency, if it is available
1073 .loc 1 581 0
1074 0034 0700 movs r7, r0
1075 .LVL115:
1076 .L94:
584:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
585:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** frequency = Channels[rxConfig->Channel].Rx1Frequency;
586:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
587:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
588:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
589:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Read the physical datarate from the datarates table
590:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyDr = DataratesEU868[dr];
1077 .loc 1 590 0
1078 0036 2B4B ldr r3, .L101+8
1079 0038 9D57 ldrsb r5, [r3, r6]
1080 .LVL116:
591:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
592:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetChannel( frequency );
1081 .loc 1 592 0
1082 003a 284B ldr r3, .L101
1083 003c 5B69 ldr r3, [r3, #20]
1084 003e 3800 movs r0, r7
1085 0040 9847 blx r3
1086 .LVL117:
593:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
594:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Radio configuration
595:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( dr == DR_7 )
1087 .loc 1 595 0
1088 0042 072E cmp r6, #7
1089 0044 26D0 beq .L100
1090 .LVL118:
596:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
597:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** modem = MODEM_FSK;
598:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetRxConfig( modem, 50000, phyDr * 1000, 0, 83333, 5, rxConfig->WindowTimeout, false,
599:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
600:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
601:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
602:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** modem = MODEM_LORA;
603:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetRxConfig( modem, rxConfig->Bandwidth, phyDr, 1, 0, 8, rxConfig->WindowTimeout, fal
1091 .loc 1 603 0
1092 0046 254B ldr r3, .L101
1093 0048 1F6A ldr r7, [r3, #32]
1094 .LVL119:
1095 004a A178 ldrb r1, [r4, #2]
1096 004c A37C ldrb r3, [r4, #18]
1097 004e 0993 str r3, [sp, #36]
1098 0050 0123 movs r3, #1
1099 0052 0893 str r3, [sp, #32]
1100 0054 0023 movs r3, #0
1101 0056 0793 str r3, [sp, #28]
1102 0058 0693 str r3, [sp, #24]
1103 005a 0593 str r3, [sp, #20]
1104 005c 0493 str r3, [sp, #16]
1105 005e 0393 str r3, [sp, #12]
1106 0060 A268 ldr r2, [r4, #8]
1107 0062 92B2 uxth r2, r2
ARM GAS /tmp/cczfoKrY.s page 32
1108 0064 0292 str r2, [sp, #8]
1109 0066 0822 movs r2, #8
1110 0068 0192 str r2, [sp, #4]
1111 006a 0093 str r3, [sp]
1112 006c 0133 adds r3, r3, #1
1113 006e 2A00 movs r2, r5
1114 0070 0120 movs r0, #1
1115 0072 B847 blx r7
1116 .LVL120:
602:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetRxConfig( modem, rxConfig->Bandwidth, phyDr, 1, 0, 8, rxConfig->WindowTimeout, fal
1117 .loc 1 602 0
1118 0074 0120 movs r0, #1
1119 .LVL121:
1120 .L96:
604:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
605:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
606:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( rxConfig->RepeaterSupport == true )
1121 .loc 1 606 0
1122 0076 637C ldrb r3, [r4, #17]
1123 0078 002B cmp r3, #0
1124 007a 29D0 beq .L97
607:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
608:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** maxPayload = MaxPayloadOfDatarateRepeaterEU868[dr];
1125 .loc 1 608 0
1126 007c 1A4B ldr r3, .L101+12
1127 007e 995D ldrb r1, [r3, r6]
1128 .LVL122:
1129 .L98:
609:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
610:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
611:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
612:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** maxPayload = MaxPayloadOfDatarateEU868[dr];
613:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
614:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
615:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetMaxPayloadLength( modem, maxPayload + LORA_MAC_FRMPAYLOAD_OVERHEAD );
1130 .loc 1 615 0
1131 0080 164B ldr r3, .L101
1132 0082 DB6D ldr r3, [r3, #92]
1133 0084 0D31 adds r1, r1, #13
1134 .LVL123:
1135 0086 C9B2 uxtb r1, r1
1136 0088 9847 blx r3
1137 .LVL124:
616:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** DBG_PRINTF( "RX on freq %d Hz at DR %d\n\r", frequency, dr );
617:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
618:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *datarate = (uint8_t) dr;
1138 .loc 1 618 0
1139 008a 0B9B ldr r3, [sp, #44]
1140 008c 1E70 strb r6, [r3]
619:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
1141 .loc 1 619 0
1142 008e 0120 movs r0, #1
1143 .LVL125:
1144 .L93:
620:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1145 .loc 1 620 0
1146 0090 0DB0 add sp, sp, #52
ARM GAS /tmp/cczfoKrY.s page 33
1147 @ sp needed
1148 .LVL126:
1149 .LVL127:
1150 0092 F0BD pop {r4, r5, r6, r7, pc}
1151 .LVL128:
1152 .L100:
598:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1153 .loc 1 598 0
1154 0094 114B ldr r3, .L101
1155 0096 1F6A ldr r7, [r3, #32]
1156 .LVL129:
1157 0098 6B01 lsls r3, r5, #5
1158 009a 5B1B subs r3, r3, r5
1159 009c 9B00 lsls r3, r3, #2
1160 009e 5B19 adds r3, r3, r5
1161 00a0 DA00 lsls r2, r3, #3
1162 00a2 A37C ldrb r3, [r4, #18]
1163 00a4 0993 str r3, [sp, #36]
1164 00a6 0023 movs r3, #0
1165 00a8 0893 str r3, [sp, #32]
1166 00aa 0793 str r3, [sp, #28]
1167 00ac 0693 str r3, [sp, #24]
1168 00ae 0121 movs r1, #1
1169 00b0 0591 str r1, [sp, #20]
1170 00b2 0493 str r3, [sp, #16]
1171 00b4 0393 str r3, [sp, #12]
1172 00b6 A368 ldr r3, [r4, #8]
1173 00b8 9BB2 uxth r3, r3
1174 00ba 0293 str r3, [sp, #8]
1175 00bc 0523 movs r3, #5
1176 00be 0193 str r3, [sp, #4]
1177 00c0 0A4B ldr r3, .L101+16
1178 00c2 0093 str r3, [sp]
1179 00c4 0023 movs r3, #0
1180 00c6 0A49 ldr r1, .L101+20
1181 00c8 0020 movs r0, #0
1182 00ca B847 blx r7
1183 .LVL130:
597:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetRxConfig( modem, 50000, phyDr * 1000, 0, 83333, 5, rxConfig->WindowTimeout, false,
1184 .loc 1 597 0
1185 00cc 0020 movs r0, #0
1186 00ce D2E7 b .L96
1187 .LVL131:
1188 .L97:
612:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1189 .loc 1 612 0
1190 00d0 084B ldr r3, .L101+24
1191 00d2 995D ldrb r1, [r3, r6]
1192 .LVL132:
1193 00d4 D4E7 b .L98
1194 .LVL133:
1195 .L99:
575:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1196 .loc 1 575 0
1197 00d6 0020 movs r0, #0
1198 00d8 DAE7 b .L93
1199 .L102:
ARM GAS /tmp/cczfoKrY.s page 34
1200 00da C046 .align 2
1201 .L101:
1202 00dc 00000000 .word Radio
1203 00e0 00000000 .word Channels
1204 00e4 00000000 .word .LANCHOR7
1205 00e8 00000000 .word .LANCHOR1
1206 00ec 85450100 .word 83333
1207 00f0 50C30000 .word 50000
1208 00f4 00000000 .word .LANCHOR0
1209 .cfi_endproc
1210 .LFE98:
1212 .section .text.RegionEU868TxConfig,"ax",%progbits
1213 .align 1
1214 .global RegionEU868TxConfig
1215 .syntax unified
1216 .code 16
1217 .thumb_func
1218 .fpu softvfp
1220 RegionEU868TxConfig:
1221 .LFB99:
621:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
622:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir )
623:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1222 .loc 1 623 0
1223 .cfi_startproc
1224 @ args = 0, pretend = 0, frame = 8
1225 @ frame_needed = 0, uses_anonymous_args = 0
1226 .LVL134:
1227 0000 F0B5 push {r4, r5, r6, r7, lr}
1228 .LCFI13:
1229 .cfi_def_cfa_offset 20
1230 .cfi_offset 4, -20
1231 .cfi_offset 5, -16
1232 .cfi_offset 6, -12
1233 .cfi_offset 7, -8
1234 .cfi_offset 14, -4
1235 0002 CE46 mov lr, r9
1236 0004 4746 mov r7, r8
1237 0006 80B5 push {r7, lr}
1238 .LCFI14:
1239 .cfi_def_cfa_offset 28
1240 .cfi_offset 8, -28
1241 .cfi_offset 9, -24
1242 0008 8DB0 sub sp, sp, #52
1243 .LCFI15:
1244 .cfi_def_cfa_offset 80
1245 000a 0400 movs r4, r0
1246 000c 8846 mov r8, r1
1247 000e 9146 mov r9, r2
624:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RadioModems_t modem;
625:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t phyDr = DataratesEU868[txConfig->Datarate];
1248 .loc 1 625 0
1249 0010 0123 movs r3, #1
1250 0012 C356 ldrsb r3, [r0, r3]
1251 0014 3D4A ldr r2, .L112
1252 .LVL135:
1253 0016 D756 ldrsb r7, [r2, r3]
ARM GAS /tmp/cczfoKrY.s page 35
1254 .LVL136:
626:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t txPowerLimited = LimitTxPower( txConfig->TxPower, Bands[Channels[txConfig->Channel].Band
1255 .loc 1 626 0
1256 0018 0220 movs r0, #2
1257 .LVL137:
1258 001a 2056 ldrsb r0, [r4, r0]
1259 001c 2178 ldrb r1, [r4]
1260 .LVL138:
1261 001e 4A00 lsls r2, r1, #1
1262 0020 5218 adds r2, r2, r1
1263 0022 9100 lsls r1, r2, #2
1264 0024 3A4A ldr r2, .L112+4
1265 0026 5218 adds r2, r2, r1
1266 0028 517A ldrb r1, [r2, #9]
1267 002a 0901 lsls r1, r1, #4
1268 002c 394A ldr r2, .L112+8
1269 002e 5218 adds r2, r2, r1
1270 0030 9278 ldrb r2, [r2, #2]
1271 0032 52B2 sxtb r2, r2
1272 .LVL139:
1273 .LBB22:
1274 .LBB23:
102:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1275 .loc 1 102 0
1276 0034 051C adds r5, r0, #0
1277 0036 9042 cmp r0, r2
1278 0038 00DA bge .L104
1279 003a 151C adds r5, r2, #0
1280 .L104:
1281 003c 6DB2 sxtb r5, r5
1282 .LVL140:
1283 .LBE23:
1284 .LBE22:
1285 .LBB24:
1286 .LBB25:
85:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1287 .loc 1 85 0
1288 003e 9B00 lsls r3, r3, #2
1289 .LVL141:
1290 0040 354A ldr r2, .L112+12
1291 0042 9B58 ldr r3, [r3, r2]
1292 0044 354A ldr r2, .L112+16
1293 0046 9342 cmp r3, r2
1294 0048 42D0 beq .L110
1295 004a 354A ldr r2, .L112+20
1296 004c 9342 cmp r3, r2
1297 004e 3CD0 beq .L107
89:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 250000:
1298 .loc 1 89 0
1299 0050 0023 movs r3, #0
1300 0052 0A93 str r3, [sp, #40]
1301 .LVL142:
1302 .L106:
1303 .LBE25:
1304 .LBE24:
627:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint32_t bandwidth = GetBandwidth( txConfig->Datarate );
628:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t phyTxPower = 0;
ARM GAS /tmp/cczfoKrY.s page 36
629:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
630:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Calculate physical TX power
631:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyTxPower = RegionCommonComputeTxPower( txPowerLimited, txConfig->MaxEirp, txConfig->AntennaGa
1305 .loc 1 631 0
1306 0054 A268 ldr r2, [r4, #8]
1307 0056 6168 ldr r1, [r4, #4]
1308 0058 2800 movs r0, r5
1309 005a FFF7FEFF bl RegionCommonComputeTxPower
1310 .LVL143:
1311 005e 0B90 str r0, [sp, #44]
1312 .LVL144:
632:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
633:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Setup the radio frequency
634:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetChannel( Channels[txConfig->Channel].Frequency );
1313 .loc 1 634 0
1314 0060 304B ldr r3, .L112+24
1315 0062 5969 ldr r1, [r3, #20]
1316 0064 2278 ldrb r2, [r4]
1317 0066 5300 lsls r3, r2, #1
1318 0068 9B18 adds r3, r3, r2
1319 006a 9A00 lsls r2, r3, #2
1320 006c 284B ldr r3, .L112+4
1321 006e D058 ldr r0, [r2, r3]
1322 0070 8847 blx r1
1323 .LVL145:
635:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
636:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( txConfig->Datarate == DR_7 )
1324 .loc 1 636 0
1325 0072 0123 movs r3, #1
1326 0074 E356 ldrsb r3, [r4, r3]
1327 0076 072B cmp r3, #7
1328 0078 2DD0 beq .L111
1329 .LVL146:
637:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // High Speed FSK channel
638:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** modem = MODEM_FSK;
639:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetTxConfig( modem, phyTxPower, 25000, bandwidth, phyDr * 1000, 0, 5, false, true, 0,
640:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
641:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
642:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
643:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** modem = MODEM_LORA;
644:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetTxConfig( modem, phyTxPower, 0, bandwidth, phyDr, 1, 8, false, true, 0, 0, false,
1330 .loc 1 644 0
1331 007a 2A4B ldr r3, .L112+24
1332 007c 5E6A ldr r6, [r3, #36]
1333 007e 2A4B ldr r3, .L112+28
1334 0080 0893 str r3, [sp, #32]
1335 0082 0023 movs r3, #0
1336 0084 0793 str r3, [sp, #28]
1337 0086 0693 str r3, [sp, #24]
1338 0088 0593 str r3, [sp, #20]
1339 008a 0122 movs r2, #1
1340 008c 0492 str r2, [sp, #16]
1341 008e 0393 str r3, [sp, #12]
1342 0090 0833 adds r3, r3, #8
1343 0092 0293 str r3, [sp, #8]
1344 0094 0192 str r2, [sp, #4]
1345 0096 0097 str r7, [sp]
ARM GAS /tmp/cczfoKrY.s page 37
1346 0098 0A9B ldr r3, [sp, #40]
1347 009a 0022 movs r2, #0
1348 009c 0B99 ldr r1, [sp, #44]
1349 009e 0120 movs r0, #1
1350 00a0 B047 blx r6
1351 .LVL147:
643:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetTxConfig( modem, phyTxPower, 0, bandwidth, phyDr, 1, 8, false, true, 0, 0, false,
1352 .loc 1 643 0
1353 00a2 0126 movs r6, #1
1354 .LVL148:
1355 .L109:
645:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
646:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** DBG_PRINTF( "TX on freq %d Hz at DR %d\n\r", Channels[txConfig->Channel].Frequency, txConfig->D
647:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
648:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Setup maximum payload lenght of the radio driver
649:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetMaxPayloadLength( modem, txConfig->PktLen );
1356 .loc 1 649 0
1357 00a4 1F4F ldr r7, .L112+24
1358 .LVL149:
1359 00a6 217B ldrb r1, [r4, #12]
1360 00a8 3000 movs r0, r6
1361 00aa FB6D ldr r3, [r7, #92]
1362 00ac 9847 blx r3
1363 .LVL150:
650:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Get the time-on-air of the next tx frame
651:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *txTimeOnAir = Radio.TimeOnAir( modem, txConfig->PktLen );
1364 .loc 1 651 0
1365 00ae FB6A ldr r3, [r7, #44]
1366 00b0 217B ldrb r1, [r4, #12]
1367 00b2 3000 movs r0, r6
1368 00b4 9847 blx r3
1369 .LVL151:
1370 00b6 4B46 mov r3, r9
1371 00b8 1860 str r0, [r3]
652:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
653:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *txPower = txPowerLimited;
1372 .loc 1 653 0
1373 00ba 4346 mov r3, r8
1374 00bc 1D70 strb r5, [r3]
654:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
655:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1375 .loc 1 655 0
1376 00be 0120 movs r0, #1
1377 00c0 0DB0 add sp, sp, #52
1378 @ sp needed
1379 .LVL152:
1380 .LVL153:
1381 .LVL154:
1382 .LVL155:
1383 00c2 0CBC pop {r2, r3}
1384 00c4 9046 mov r8, r2
1385 00c6 9946 mov r9, r3
1386 00c8 F0BD pop {r4, r5, r6, r7, pc}
1387 .LVL156:
1388 .L107:
1389 .LBB27:
1390 .LBB26:
ARM GAS /tmp/cczfoKrY.s page 38
93:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1391 .loc 1 93 0
1392 00ca 0223 movs r3, #2
1393 00cc 0A93 str r3, [sp, #40]
1394 .LVL157:
1395 00ce C1E7 b .L106
1396 .LVL158:
1397 .L110:
91:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case 500000:
1398 .loc 1 91 0
1399 00d0 0123 movs r3, #1
1400 .LVL159:
1401 00d2 0A93 str r3, [sp, #40]
1402 .LVL160:
1403 00d4 BEE7 b .L106
1404 .LVL161:
1405 .L111:
1406 .LBE26:
1407 .LBE27:
639:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1408 .loc 1 639 0
1409 00d6 134B ldr r3, .L112+24
1410 00d8 5E6A ldr r6, [r3, #36]
1411 00da 7B01 lsls r3, r7, #5
1412 00dc DB1B subs r3, r3, r7
1413 00de 9B00 lsls r3, r3, #2
1414 00e0 DB19 adds r3, r3, r7
1415 00e2 DA00 lsls r2, r3, #3
1416 00e4 104B ldr r3, .L112+28
1417 00e6 0893 str r3, [sp, #32]
1418 00e8 0023 movs r3, #0
1419 00ea 0793 str r3, [sp, #28]
1420 00ec 0693 str r3, [sp, #24]
1421 00ee 0593 str r3, [sp, #20]
1422 00f0 0121 movs r1, #1
1423 00f2 0491 str r1, [sp, #16]
1424 00f4 0393 str r3, [sp, #12]
1425 00f6 0431 adds r1, r1, #4
1426 00f8 0291 str r1, [sp, #8]
1427 00fa 0193 str r3, [sp, #4]
1428 00fc 0092 str r2, [sp]
1429 00fe 0A9B ldr r3, [sp, #40]
1430 0100 0A4A ldr r2, .L112+32
1431 0102 0B99 ldr r1, [sp, #44]
1432 0104 0020 movs r0, #0
1433 0106 B047 blx r6
1434 .LVL162:
638:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetTxConfig( modem, phyTxPower, 25000, bandwidth, phyDr * 1000, 0, 5, false, true, 0,
1435 .loc 1 638 0
1436 0108 0026 movs r6, #0
1437 010a CBE7 b .L109
1438 .L113:
1439 .align 2
1440 .L112:
1441 010c 00000000 .word .LANCHOR7
1442 0110 00000000 .word Channels
1443 0114 00000000 .word .LANCHOR4
ARM GAS /tmp/cczfoKrY.s page 39
1444 0118 00000000 .word .LANCHOR6
1445 011c 90D00300 .word 250000
1446 0120 20A10700 .word 500000
1447 0124 00000000 .word Radio
1448 0128 B80B0000 .word 3000
1449 012c A8610000 .word 25000
1450 .cfi_endproc
1451 .LFE99:
1453 .section .text.RegionEU868LinkAdrReq,"ax",%progbits
1454 .align 1
1455 .global RegionEU868LinkAdrReq
1456 .syntax unified
1457 .code 16
1458 .thumb_func
1459 .fpu softvfp
1461 RegionEU868LinkAdrReq:
1462 .LFB100:
656:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
657:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t RegionEU868LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uin
658:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1463 .loc 1 658 0
1464 .cfi_startproc
1465 @ args = 4, pretend = 0, frame = 48
1466 @ frame_needed = 0, uses_anonymous_args = 0
1467 .LVL163:
1468 0000 F0B5 push {r4, r5, r6, r7, lr}
1469 .LCFI16:
1470 .cfi_def_cfa_offset 20
1471 .cfi_offset 4, -20
1472 .cfi_offset 5, -16
1473 .cfi_offset 6, -12
1474 .cfi_offset 7, -8
1475 .cfi_offset 14, -4
1476 0002 D646 mov lr, r10
1477 0004 4F46 mov r7, r9
1478 0006 4646 mov r6, r8
1479 0008 C0B5 push {r6, r7, lr}
1480 .LCFI17:
1481 .cfi_def_cfa_offset 32
1482 .cfi_offset 8, -32
1483 .cfi_offset 9, -28
1484 .cfi_offset 10, -24
1485 000a 8CB0 sub sp, sp, #48
1486 .LCFI18:
1487 .cfi_def_cfa_offset 80
1488 000c 0500 movs r5, r0
1489 000e 8946 mov r9, r1
1490 0010 9046 mov r8, r2
1491 0012 9A46 mov r10, r3
1492 .LVL164:
659:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x07;
660:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonLinkAdrParams_t linkAdrParams;
661:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t nextIndex = 0;
662:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t bytesProcessed = 0;
663:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint16_t chMask = 0;
1493 .loc 1 663 0
1494 0014 2623 movs r3, #38
ARM GAS /tmp/cczfoKrY.s page 40
1495 .LVL165:
1496 0016 6B44 add r3, r3, sp
1497 0018 0022 movs r2, #0
1498 .LVL166:
1499 001a 1A80 strh r2, [r3]
662:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint16_t chMask = 0;
1500 .loc 1 662 0
1501 001c 0024 movs r4, #0
659:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x07;
1502 .loc 1 659 0
1503 001e 0726 movs r6, #7
664:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** GetPhyParams_t getPhy;
665:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** PhyParam_t phyParam;
666:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonLinkAdrReqVerifyParams_t linkAdrVerifyParams;
667:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
668:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** while( bytesProcessed < linkAdrReq->PayloadSize )
1504 .loc 1 668 0
1505 0020 29E0 b .L115
1506 .LVL167:
1507 .L152:
1508 .LBB33:
669:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
670:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Get ADR request parameters
671:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextIndex = RegionCommonParseLinkAdrReq( &( linkAdrReq->Payload[bytesProcessed] ), &linkAdr
672:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
673:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( nextIndex == 0 )
674:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break; // break loop, since no more request has been found
675:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
676:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update bytes processed
677:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bytesProcessed += nextIndex;
678:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
679:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Revert status, as we only check the last ADR request for the channel mask KO
680:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status = 0x07;
681:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
682:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Setup temporary channels mask
683:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** chMask = linkAdrParams.ChMask;
684:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
685:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify channels mask
686:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( linkAdrParams.ChMaskCtrl == 0 ) && ( chMask == 0 ) )
687:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
688:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE; // Channel mask KO
689:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
690:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( ( linkAdrParams.ChMaskCtrl >= 1 ) && ( linkAdrParams.ChMaskCtrl <= 5 )) ||
691:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( linkAdrParams.ChMaskCtrl >= 7 ) )
692:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
693:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // RFU
694:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE; // Channel mask KO
695:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
696:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
697:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
698:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** for( uint8_t i = 0; i < EU868_MAX_NB_CHANNELS; i++ )
1509 .loc 1 698 0
1510 0022 0023 movs r3, #0
1511 .LBE33:
680:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1512 .loc 1 680 0
1513 0024 0726 movs r6, #7
ARM GAS /tmp/cczfoKrY.s page 41
1514 0026 0FE0 b .L119
1515 .LVL168:
1516 .L151:
1517 .LBB34:
699:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
700:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( linkAdrParams.ChMaskCtrl == 6 )
701:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
702:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Channels[i].Frequency != 0 )
1518 .loc 1 702 0
1519 0028 5A00 lsls r2, r3, #1
1520 002a D218 adds r2, r2, r3
1521 002c 9000 lsls r0, r2, #2
1522 002e 444A ldr r2, .L154
1523 0030 8258 ldr r2, [r0, r2]
1524 0032 002A cmp r2, #0
1525 0034 06D0 beq .L121
703:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
704:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** chMask |= 1 << i;
1526 .loc 1 704 0
1527 0036 0127 movs r7, #1
1528 0038 9F40 lsls r7, r7, r3
1529 003a 2620 movs r0, #38
1530 003c 6844 add r0, r0, sp
1531 003e 0288 ldrh r2, [r0]
1532 0040 3A43 orrs r2, r7
1533 0042 0280 strh r2, [r0]
1534 .L121:
698:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1535 .loc 1 698 0 discriminator 2
1536 0044 0133 adds r3, r3, #1
1537 .LVL169:
1538 0046 DBB2 uxtb r3, r3
1539 .LVL170:
1540 .L119:
698:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1541 .loc 1 698 0 is_stmt 0 discriminator 1
1542 0048 0F2B cmp r3, #15
1543 004a 14D8 bhi .L115
700:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1544 .loc 1 700 0 is_stmt 1
1545 004c 0629 cmp r1, #6
1546 004e EBD0 beq .L151
705:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
706:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
707:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
708:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
709:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( ( chMask & ( 1 << i ) ) != 0 ) &&
1547 .loc 1 709 0
1548 0050 2622 movs r2, #38
1549 0052 6A44 add r2, r2, sp
1550 0054 1288 ldrh r2, [r2]
1551 0056 1A41 asrs r2, r2, r3
1552 0058 D207 lsls r2, r2, #31
1553 005a F3D5 bpl .L121
710:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( Channels[i].Frequency == 0 ) )
1554 .loc 1 710 0 discriminator 1
1555 005c 5A00 lsls r2, r3, #1
ARM GAS /tmp/cczfoKrY.s page 42
1556 005e D218 adds r2, r2, r3
1557 0060 9000 lsls r0, r2, #2
1558 0062 374A ldr r2, .L154
1559 0064 8258 ldr r2, [r0, r2]
709:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( Channels[i].Frequency == 0 ) )
1560 .loc 1 709 0 discriminator 1
1561 0066 002A cmp r2, #0
1562 0068 ECD1 bne .L121
711:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {// Trying to enable an undefined channel
712:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE; // Channel mask KO
1563 .loc 1 712 0
1564 006a 0132 adds r2, r2, #1
1565 006c 9643 bics r6, r2
1566 .LVL171:
1567 006e E9E7 b .L121
1568 .LVL172:
1569 .L147:
1570 .LBE34:
688:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1571 .loc 1 688 0
1572 0070 0626 movs r6, #6
1573 0072 00E0 b .L115
1574 .L148:
694:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1575 .loc 1 694 0
1576 0074 0626 movs r6, #6
1577 .LVL173:
1578 .L115:
668:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1579 .loc 1 668 0
1580 0076 2B79 ldrb r3, [r5, #4]
1581 0078 A342 cmp r3, r4
1582 007a 1AD9 bls .L116
671:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1583 .loc 1 671 0
1584 007c 2B68 ldr r3, [r5]
1585 007e 1819 adds r0, r3, r4
1586 0080 0AA9 add r1, sp, #40
1587 0082 FFF7FEFF bl RegionCommonParseLinkAdrReq
1588 .LVL174:
673:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break; // break loop, since no more request has been found
1589 .loc 1 673 0
1590 0086 0028 cmp r0, #0
1591 0088 13D0 beq .L116
677:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1592 .loc 1 677 0
1593 008a 2418 adds r4, r4, r0
1594 .LVL175:
1595 008c E4B2 uxtb r4, r4
1596 .LVL176:
683:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1597 .loc 1 683 0
1598 008e 0AAB add r3, sp, #40
1599 0090 9A88 ldrh r2, [r3, #4]
1600 0092 2621 movs r1, #38
1601 0094 6944 add r1, r1, sp
1602 0096 0A80 strh r2, [r1]
ARM GAS /tmp/cczfoKrY.s page 43
686:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1603 .loc 1 686 0
1604 0098 D978 ldrb r1, [r3, #3]
1605 009a 0029 cmp r1, #0
1606 009c 01D1 bne .L117
686:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1607 .loc 1 686 0 is_stmt 0 discriminator 1
1608 009e 002A cmp r2, #0
1609 00a0 E6D0 beq .L147
1610 .L117:
690:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( linkAdrParams.ChMaskCtrl >= 7 ) )
1611 .loc 1 690 0 is_stmt 1
1612 00a2 4B1E subs r3, r1, #1
1613 00a4 DBB2 uxtb r3, r3
1614 00a6 042B cmp r3, #4
1615 00a8 E4D9 bls .L148
690:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ( linkAdrParams.ChMaskCtrl >= 7 ) )
1616 .loc 1 690 0 is_stmt 0 discriminator 1
1617 00aa 0629 cmp r1, #6
1618 00ac B9D9 bls .L152
694:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1619 .loc 1 694 0 is_stmt 1
1620 00ae 0626 movs r6, #6
1621 00b0 E1E7 b .L115
1622 .LVL177:
1623 .L116:
713:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
714:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
715:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
716:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
717:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
718:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
719:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Get the minimum possible datarate
720:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** getPhy.Attribute = PHY_MIN_TX_DR;
721:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** getPhy.UplinkDwellTime = linkAdrReq->UplinkDwellTime;
722:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyParam = RegionEU868GetPhyParam( &getPhy );
723:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
724:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.Status = status;
1624 .loc 1 724 0
1625 00b2 01A8 add r0, sp, #4
1626 00b4 0670 strb r6, [r0]
725:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.AdrEnabled = linkAdrReq->AdrEnabled;
1627 .loc 1 725 0
1628 00b6 AB79 ldrb r3, [r5, #6]
1629 00b8 4370 strb r3, [r0, #1]
726:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.Datarate = linkAdrParams.Datarate;
1630 .loc 1 726 0
1631 00ba 0AAB add r3, sp, #40
1632 00bc 0122 movs r2, #1
1633 00be 9A56 ldrsb r2, [r3, r2]
1634 00c0 8270 strb r2, [r0, #2]
727:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.TxPower = linkAdrParams.TxPower;
1635 .loc 1 727 0
1636 00c2 0222 movs r2, #2
1637 00c4 9A56 ldrsb r2, [r3, r2]
1638 00c6 C270 strb r2, [r0, #3]
728:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.NbRep = linkAdrParams.NbRep;
ARM GAS /tmp/cczfoKrY.s page 44
1639 .loc 1 728 0
1640 00c8 1A78 ldrb r2, [r3]
1641 00ca 0271 strb r2, [r0, #4]
729:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.CurrentDatarate = linkAdrReq->CurrentDatarate;
1642 .loc 1 729 0
1643 00cc 0722 movs r2, #7
1644 00ce AA56 ldrsb r2, [r5, r2]
1645 00d0 4271 strb r2, [r0, #5]
730:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.CurrentTxPower = linkAdrReq->CurrentTxPower;
1646 .loc 1 730 0
1647 00d2 0822 movs r2, #8
1648 00d4 AA56 ldrsb r2, [r5, r2]
1649 00d6 8271 strb r2, [r0, #6]
731:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.CurrentNbRep = linkAdrReq->CurrentNbRep;
1650 .loc 1 731 0
1651 00d8 0922 movs r2, #9
1652 00da AA56 ldrsb r2, [r5, r2]
1653 00dc C271 strb r2, [r0, #7]
732:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.NbChannels = EU868_MAX_NB_CHANNELS;
1654 .loc 1 732 0
1655 00de 1022 movs r2, #16
1656 00e0 0272 strb r2, [r0, #8]
733:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.ChannelsMask = &chMask;
1657 .loc 1 733 0
1658 00e2 1632 adds r2, r2, #22
1659 00e4 6A44 add r2, r2, sp
1660 00e6 C260 str r2, [r0, #12]
734:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.MinDatarate = ( int8_t )phyParam.Value;
1661 .loc 1 734 0
1662 00e8 0022 movs r2, #0
1663 00ea 0274 strb r2, [r0, #16]
735:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.MaxDatarate = EU868_TX_MAX_DATARATE;
1664 .loc 1 735 0
1665 00ec 0732 adds r2, r2, #7
1666 00ee 4274 strb r2, [r0, #17]
736:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.Channels = Channels;
1667 .loc 1 736 0
1668 00f0 1349 ldr r1, .L154
1669 00f2 4161 str r1, [r0, #20]
737:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.MinTxPower = EU868_MIN_TX_POWER;
1670 .loc 1 737 0
1671 00f4 0276 strb r2, [r0, #24]
738:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** linkAdrVerifyParams.MaxTxPower = EU868_MAX_TX_POWER;
1672 .loc 1 738 0
1673 00f6 0022 movs r2, #0
1674 00f8 4276 strb r2, [r0, #25]
739:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
740:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify the parameters and update, if necessary
741:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status = RegionCommonLinkAdrReqVerifyParams( &linkAdrVerifyParams, &linkAdrParams.Datarate, &li
1675 .loc 1 741 0
1676 00fa 2A32 adds r2, r2, #42
1677 00fc 6A44 add r2, r2, sp
1678 00fe 2921 movs r1, #41
1679 0100 6944 add r1, r1, sp
1680 0102 FFF7FEFF bl RegionCommonLinkAdrReqVerifyParams
1681 .LVL178:
742:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
ARM GAS /tmp/cczfoKrY.s page 45
743:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update channelsMask if everything is correct
744:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( status == 0x07 )
1682 .loc 1 744 0
1683 0106 0728 cmp r0, #7
1684 0108 13D0 beq .L153
1685 .L146:
745:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
746:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Set the channels mask to a default value
747:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** memset( ChannelsMask, 0, sizeof( ChannelsMask ) );
748:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update the channels mask
749:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] = chMask;
750:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
751:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
752:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update status variables
753:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *drOut = linkAdrParams.Datarate;
1686 .loc 1 753 0
1687 010a 0AAB add r3, sp, #40
1688 010c 0122 movs r2, #1
1689 010e 9A56 ldrsb r2, [r3, r2]
1690 0110 4946 mov r1, r9
1691 0112 0A70 strb r2, [r1]
754:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *txPowOut = linkAdrParams.TxPower;
1692 .loc 1 754 0
1693 0114 0222 movs r2, #2
1694 0116 9A56 ldrsb r2, [r3, r2]
1695 0118 4146 mov r1, r8
1696 011a 0A70 strb r2, [r1]
755:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *nbRepOut = linkAdrParams.NbRep;
1697 .loc 1 755 0
1698 011c 1B78 ldrb r3, [r3]
1699 011e 5246 mov r2, r10
1700 0120 1370 strb r3, [r2]
756:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *nbBytesParsed = bytesProcessed;
1701 .loc 1 756 0
1702 0122 149B ldr r3, [sp, #80]
1703 0124 1C70 strb r4, [r3]
757:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
758:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return status;
759:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1704 .loc 1 759 0
1705 0126 0CB0 add sp, sp, #48
1706 @ sp needed
1707 .LVL179:
1708 .LVL180:
1709 .LVL181:
1710 .LVL182:
1711 .LVL183:
1712 0128 1CBC pop {r2, r3, r4}
1713 012a 9046 mov r8, r2
1714 012c 9946 mov r9, r3
1715 012e A246 mov r10, r4
1716 0130 F0BD pop {r4, r5, r6, r7, pc}
1717 .L126:
1718 .LVL184:
1719 .L153:
749:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1720 .loc 1 749 0
ARM GAS /tmp/cczfoKrY.s page 46
1721 0132 2623 movs r3, #38
1722 0134 6B44 add r3, r3, sp
1723 0136 1A88 ldrh r2, [r3]
1724 0138 024B ldr r3, .L154+4
1725 013a 1A80 strh r2, [r3]
1726 013c E5E7 b .L146
1727 .L155:
1728 013e C046 .align 2
1729 .L154:
1730 0140 00000000 .word Channels
1731 0144 00000000 .word .LANCHOR2
1732 .cfi_endproc
1733 .LFE100:
1735 .section .text.RegionEU868RxParamSetupReq,"ax",%progbits
1736 .align 1
1737 .global RegionEU868RxParamSetupReq
1738 .syntax unified
1739 .code 16
1740 .thumb_func
1741 .fpu softvfp
1743 RegionEU868RxParamSetupReq:
1744 .LFB101:
760:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
761:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t RegionEU868RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq )
762:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1745 .loc 1 762 0
1746 .cfi_startproc
1747 @ args = 0, pretend = 0, frame = 0
1748 @ frame_needed = 0, uses_anonymous_args = 0
1749 .LVL185:
1750 0000 70B5 push {r4, r5, r6, lr}
1751 .LCFI19:
1752 .cfi_def_cfa_offset 16
1753 .cfi_offset 4, -16
1754 .cfi_offset 5, -12
1755 .cfi_offset 6, -8
1756 .cfi_offset 14, -4
1757 0002 0500 movs r5, r0
1758 .LVL186:
763:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x07;
764:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
765:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify radio frequency
766:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Radio.CheckRfFrequency( rxParamSetupReq->Frequency ) == false )
1759 .loc 1 766 0
1760 0004 0F4B ldr r3, .L161
1761 0006 9B6A ldr r3, [r3, #40]
1762 0008 4068 ldr r0, [r0, #4]
1763 .LVL187:
1764 000a 9847 blx r3
1765 .LVL188:
1766 000c 0028 cmp r0, #0
1767 000e 16D0 beq .L160
763:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x07;
1768 .loc 1 763 0
1769 0010 0724 movs r4, #7
1770 .L157:
1771 .LVL189:
ARM GAS /tmp/cczfoKrY.s page 47
767:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
768:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE; // Channel frequency KO
769:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
770:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
771:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify datarate
772:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( rxParamSetupReq->Datarate, EU868_RX_MIN_DATARATE, EU868_RX_MAX_DA
1772 .loc 1 772 0
1773 0012 0020 movs r0, #0
1774 0014 2856 ldrsb r0, [r5, r0]
1775 0016 0722 movs r2, #7
1776 0018 0021 movs r1, #0
1777 001a FFF7FEFF bl RegionCommonValueInRange
1778 .LVL190:
1779 001e 0028 cmp r0, #0
1780 0020 01D1 bne .L158
773:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
774:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFD; // Datarate KO
1781 .loc 1 774 0
1782 0022 0223 movs r3, #2
1783 0024 9C43 bics r4, r3
1784 .LVL191:
1785 .L158:
775:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
776:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
777:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify datarate offset
778:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( rxParamSetupReq->DrOffset, EU868_MIN_RX1_DR_OFFSET, EU868_MAX_RX1
1786 .loc 1 778 0
1787 0026 0120 movs r0, #1
1788 0028 2856 ldrsb r0, [r5, r0]
1789 002a 0522 movs r2, #5
1790 002c 0021 movs r1, #0
1791 002e FFF7FEFF bl RegionCommonValueInRange
1792 .LVL192:
1793 0032 0028 cmp r0, #0
1794 0034 01D1 bne .L159
779:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
780:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFB; // Rx1DrOffset range KO
1795 .loc 1 780 0
1796 0036 0423 movs r3, #4
1797 0038 9C43 bics r4, r3
1798 .LVL193:
1799 .L159:
781:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
782:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
783:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return status;
784:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1800 .loc 1 784 0
1801 003a 2000 movs r0, r4
1802 @ sp needed
1803 .LVL194:
1804 .LVL195:
1805 003c 70BD pop {r4, r5, r6, pc}
1806 .LVL196:
1807 .L160:
768:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1808 .loc 1 768 0
1809 003e 0624 movs r4, #6
ARM GAS /tmp/cczfoKrY.s page 48
1810 0040 E7E7 b .L157
1811 .L162:
1812 0042 C046 .align 2
1813 .L161:
1814 0044 00000000 .word Radio
1815 .cfi_endproc
1816 .LFE101:
1818 .section .text.RegionEU868TxParamSetupReq,"ax",%progbits
1819 .align 1
1820 .global RegionEU868TxParamSetupReq
1821 .syntax unified
1822 .code 16
1823 .thumb_func
1824 .fpu softvfp
1826 RegionEU868TxParamSetupReq:
1827 .LFB103:
785:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
786:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t RegionEU868NewChannelReq( NewChannelReqParams_t* newChannelReq )
787:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
788:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x03;
789:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelAddParams_t channelAdd;
790:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelRemoveParams_t channelRemove;
791:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
792:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( newChannelReq->NewChannel->Frequency == 0 )
793:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
794:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelRemove.ChannelId = newChannelReq->ChannelId;
795:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
796:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Remove
797:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionEU868ChannelsRemove( &channelRemove ) == false )
798:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
799:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFC;
800:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
801:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
802:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
803:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
804:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.NewChannel = newChannelReq->NewChannel;
805:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.ChannelId = newChannelReq->ChannelId;
806:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
807:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** switch( RegionEU868ChannelAdd( &channelAdd ) )
808:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
809:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case LORAMAC_STATUS_OK:
810:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
811:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
812:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
813:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case LORAMAC_STATUS_FREQUENCY_INVALID:
814:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
815:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE;
816:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
817:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
818:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case LORAMAC_STATUS_DATARATE_INVALID:
819:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
820:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFD;
821:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
822:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
823:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** case LORAMAC_STATUS_FREQ_AND_DR_INVALID:
824:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
825:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFC;
ARM GAS /tmp/cczfoKrY.s page 49
826:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
827:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
828:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** default:
829:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
830:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFC;
831:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
832:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
833:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
834:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
835:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
836:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return status;
837:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
838:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
839:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t RegionEU868TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq )
840:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1828 .loc 1 840 0
1829 .cfi_startproc
1830 @ args = 0, pretend = 0, frame = 0
1831 @ frame_needed = 0, uses_anonymous_args = 0
1832 @ link register save eliminated.
1833 .LVL197:
841:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return -1;
1834 .loc 1 841 0
1835 0000 0120 movs r0, #1
1836 .LVL198:
842:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1837 .loc 1 842 0
1838 0002 4042 rsbs r0, r0, #0
1839 @ sp needed
1840 0004 7047 bx lr
1841 .cfi_endproc
1842 .LFE103:
1844 .section .text.RegionEU868DlChannelReq,"ax",%progbits
1845 .align 1
1846 .global RegionEU868DlChannelReq
1847 .syntax unified
1848 .code 16
1849 .thumb_func
1850 .fpu softvfp
1852 RegionEU868DlChannelReq:
1853 .LFB104:
843:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
844:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t RegionEU868DlChannelReq( DlChannelReqParams_t* dlChannelReq )
845:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1854 .loc 1 845 0
1855 .cfi_startproc
1856 @ args = 0, pretend = 0, frame = 8
1857 @ frame_needed = 0, uses_anonymous_args = 0
1858 .LVL199:
1859 0000 10B5 push {r4, lr}
1860 .LCFI20:
1861 .cfi_def_cfa_offset 8
1862 .cfi_offset 4, -8
1863 .cfi_offset 14, -4
1864 0002 82B0 sub sp, sp, #8
1865 .LCFI21:
1866 .cfi_def_cfa_offset 16
ARM GAS /tmp/cczfoKrY.s page 50
1867 0004 0400 movs r4, r0
1868 .LVL200:
846:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x03;
847:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t band = 0;
1869 .loc 1 847 0
1870 0006 6B46 mov r3, sp
1871 0008 D91D adds r1, r3, #7
1872 000a 0023 movs r3, #0
1873 000c 0B70 strb r3, [r1]
848:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
849:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify if the frequency is supported
850:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( VerifyTxFreq( dlChannelReq->Rx1Frequency, &band ) == false )
1874 .loc 1 850 0
1875 000e 4068 ldr r0, [r0, #4]
1876 .LVL201:
1877 0010 FFF7FEFF bl VerifyTxFreq
1878 .LVL202:
1879 0014 0028 cmp r0, #0
1880 0016 0ED0 beq .L168
846:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x03;
1881 .loc 1 846 0
1882 0018 0320 movs r0, #3
1883 .L165:
1884 .LVL203:
851:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
852:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFE;
853:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
854:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
855:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Verify if an uplink frequency exists
856:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( Channels[dlChannelReq->ChannelId].Frequency == 0 )
1885 .loc 1 856 0
1886 001a 2278 ldrb r2, [r4]
1887 001c 5300 lsls r3, r2, #1
1888 001e 9B18 adds r3, r3, r2
1889 0020 9900 lsls r1, r3, #2
1890 0022 0A4B ldr r3, .L170
1891 0024 CB58 ldr r3, [r1, r3]
1892 0026 002B cmp r3, #0
1893 0028 01D1 bne .L166
857:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
858:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** status &= 0xFD;
1894 .loc 1 858 0
1895 002a 0233 adds r3, r3, #2
1896 002c 9843 bics r0, r3
1897 .LVL204:
1898 .L166:
859:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
860:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
861:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Apply Rx1 frequency, if the status is OK
862:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( status == 0x03 )
1899 .loc 1 862 0
1900 002e 0328 cmp r0, #3
1901 0030 03D0 beq .L169
1902 .LVL205:
1903 .L167:
863:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
864:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[dlChannelReq->ChannelId].Rx1Frequency = dlChannelReq->Rx1Frequency;
ARM GAS /tmp/cczfoKrY.s page 51
865:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
866:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
867:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return status;
868:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1904 .loc 1 868 0
1905 0032 02B0 add sp, sp, #8
1906 @ sp needed
1907 0034 10BD pop {r4, pc}
1908 .LVL206:
1909 .L168:
852:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1910 .loc 1 852 0
1911 0036 0220 movs r0, #2
1912 0038 EFE7 b .L165
1913 .LVL207:
1914 .L169:
864:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1915 .loc 1 864 0
1916 003a 6468 ldr r4, [r4, #4]
1917 .LVL208:
1918 003c 5300 lsls r3, r2, #1
1919 003e 9A18 adds r2, r3, r2
1920 0040 9100 lsls r1, r2, #2
1921 0042 024B ldr r3, .L170
1922 0044 5B18 adds r3, r3, r1
1923 0046 5C60 str r4, [r3, #4]
1924 0048 F3E7 b .L167
1925 .L171:
1926 004a C046 .align 2
1927 .L170:
1928 004c 00000000 .word Channels
1929 .cfi_endproc
1930 .LFE104:
1932 .global __aeabi_uidivmod
1933 .section .text.RegionEU868AlternateDr,"ax",%progbits
1934 .align 1
1935 .global RegionEU868AlternateDr
1936 .syntax unified
1937 .code 16
1938 .thumb_func
1939 .fpu softvfp
1941 RegionEU868AlternateDr:
1942 .LFB105:
869:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
870:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t RegionEU868AlternateDr( AlternateDrParams_t* alternateDr )
871:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1943 .loc 1 871 0
1944 .cfi_startproc
1945 @ args = 0, pretend = 0, frame = 0
1946 @ frame_needed = 0, uses_anonymous_args = 0
1947 .LVL209:
1948 0000 10B5 push {r4, lr}
1949 .LCFI22:
1950 .cfi_def_cfa_offset 8
1951 .cfi_offset 4, -8
1952 .cfi_offset 14, -4
1953 .LVL210:
ARM GAS /tmp/cczfoKrY.s page 52
872:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t datarate = 0;
873:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
874:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( alternateDr->NbTrials % 48 ) == 0 )
1954 .loc 1 874 0
1955 0002 0488 ldrh r4, [r0]
1956 0004 3021 movs r1, #48
1957 0006 2000 movs r0, r4
1958 .LVL211:
1959 0008 FFF7FEFF bl __aeabi_uidivmod
1960 .LVL212:
1961 000c 89B2 uxth r1, r1
1962 000e 0029 cmp r1, #0
1963 0010 0ED0 beq .L174
875:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
876:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_0;
877:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
878:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( alternateDr->NbTrials % 32 ) == 0 )
1964 .loc 1 878 0
1965 0012 E306 lsls r3, r4, #27
1966 0014 0ED0 beq .L175
879:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
880:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_1;
881:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
882:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( alternateDr->NbTrials % 24 ) == 0 )
1967 .loc 1 882 0
1968 0016 1821 movs r1, #24
1969 0018 2000 movs r0, r4
1970 001a FFF7FEFF bl __aeabi_uidivmod
1971 .LVL213:
1972 001e 89B2 uxth r1, r1
1973 0020 0029 cmp r1, #0
1974 0022 09D0 beq .L176
883:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
884:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_2;
885:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
886:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( alternateDr->NbTrials % 16 ) == 0 )
1975 .loc 1 886 0
1976 0024 2307 lsls r3, r4, #28
1977 0026 09D0 beq .L177
887:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
888:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_3;
889:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
890:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else if( ( alternateDr->NbTrials % 8 ) == 0 )
1978 .loc 1 890 0
1979 0028 6307 lsls r3, r4, #29
1980 002a 09D1 bne .L178
891:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
892:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_4;
1981 .loc 1 892 0
1982 002c 0420 movs r0, #4
1983 002e 00E0 b .L173
1984 .L174:
876:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1985 .loc 1 876 0
1986 0030 0020 movs r0, #0
1987 .L173:
1988 .LVL214:
ARM GAS /tmp/cczfoKrY.s page 53
893:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
894:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
895:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
896:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_5;
897:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
898:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return datarate;
899:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1989 .loc 1 899 0
1990 @ sp needed
1991 0032 10BD pop {r4, pc}
1992 .LVL215:
1993 .L175:
880:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1994 .loc 1 880 0
1995 0034 0120 movs r0, #1
1996 0036 FCE7 b .L173
1997 .L176:
884:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1998 .loc 1 884 0
1999 0038 0220 movs r0, #2
2000 003a FAE7 b .L173
2001 .L177:
888:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2002 .loc 1 888 0
2003 003c 0320 movs r0, #3
2004 003e F8E7 b .L173
2005 .L178:
896:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2006 .loc 1 896 0
2007 0040 0520 movs r0, #5
2008 0042 F6E7 b .L173
2009 .cfi_endproc
2010 .LFE105:
2012 .section .text.RegionEU868CalcBackOff,"ax",%progbits
2013 .align 1
2014 .global RegionEU868CalcBackOff
2015 .syntax unified
2016 .code 16
2017 .thumb_func
2018 .fpu softvfp
2020 RegionEU868CalcBackOff:
2021 .LFB106:
900:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
901:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868CalcBackOff( CalcBackOffParams_t* calcBackOff )
902:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2022 .loc 1 902 0
2023 .cfi_startproc
2024 @ args = 0, pretend = 0, frame = 24
2025 @ frame_needed = 0, uses_anonymous_args = 0
2026 .LVL216:
2027 0000 00B5 push {lr}
2028 .LCFI23:
2029 .cfi_def_cfa_offset 4
2030 .cfi_offset 14, -4
2031 0002 87B0 sub sp, sp, #28
2032 .LCFI24:
2033 .cfi_def_cfa_offset 32
ARM GAS /tmp/cczfoKrY.s page 54
903:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonCalcBackOffParams_t calcBackOffParams;
904:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
905:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.Channels = Channels;
2034 .loc 1 905 0
2035 0004 01AB add r3, sp, #4
2036 0006 0A4A ldr r2, .L180
2037 0008 0192 str r2, [sp, #4]
906:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.Bands = Bands;
2038 .loc 1 906 0
2039 000a 0A4A ldr r2, .L180+4
2040 000c 0292 str r2, [sp, #8]
907:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.LastTxIsJoinRequest = calcBackOff->LastTxIsJoinRequest;
2041 .loc 1 907 0
2042 000e 4278 ldrb r2, [r0, #1]
2043 0010 1A72 strb r2, [r3, #8]
908:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.Joined = calcBackOff->Joined;
2044 .loc 1 908 0
2045 0012 0278 ldrb r2, [r0]
2046 0014 5A72 strb r2, [r3, #9]
909:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.DutyCycleEnabled = calcBackOff->DutyCycleEnabled;
2047 .loc 1 909 0
2048 0016 8278 ldrb r2, [r0, #2]
2049 0018 9A72 strb r2, [r3, #10]
910:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.Channel = calcBackOff->Channel;
2050 .loc 1 910 0
2051 001a C278 ldrb r2, [r0, #3]
2052 001c DA72 strb r2, [r3, #11]
911:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.ElapsedTime = calcBackOff->ElapsedTime;
2053 .loc 1 911 0
2054 001e 4268 ldr r2, [r0, #4]
2055 0020 0492 str r2, [sp, #16]
912:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** calcBackOffParams.TxTimeOnAir = calcBackOff->TxTimeOnAir;
2056 .loc 1 912 0
2057 0022 8268 ldr r2, [r0, #8]
2058 0024 0592 str r2, [sp, #20]
913:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
914:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** RegionCommonCalcBackOff( &calcBackOffParams );
2059 .loc 1 914 0
2060 0026 1800 movs r0, r3
2061 .LVL217:
2062 0028 FFF7FEFF bl RegionCommonCalcBackOff
2063 .LVL218:
915:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2064 .loc 1 915 0
2065 002c 07B0 add sp, sp, #28
2066 @ sp needed
2067 002e 00BD pop {pc}
2068 .L181:
2069 .align 2
2070 .L180:
2071 0030 00000000 .word Channels
2072 0034 00000000 .word .LANCHOR4
2073 .cfi_endproc
2074 .LFE106:
2076 .section .text.RegionEU868NextChannel,"ax",%progbits
2077 .align 1
2078 .global RegionEU868NextChannel
ARM GAS /tmp/cczfoKrY.s page 55
2079 .syntax unified
2080 .code 16
2081 .thumb_func
2082 .fpu softvfp
2084 RegionEU868NextChannel:
2085 .LFB107:
916:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
917:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time,
918:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2086 .loc 1 918 0
2087 .cfi_startproc
2088 @ args = 0, pretend = 0, frame = 32
2089 @ frame_needed = 0, uses_anonymous_args = 0
2090 .LVL219:
2091 0000 F0B5 push {r4, r5, r6, r7, lr}
2092 .LCFI25:
2093 .cfi_def_cfa_offset 20
2094 .cfi_offset 4, -20
2095 .cfi_offset 5, -16
2096 .cfi_offset 6, -12
2097 .cfi_offset 7, -8
2098 .cfi_offset 14, -4
2099 0002 DE46 mov lr, fp
2100 0004 5746 mov r7, r10
2101 0006 4E46 mov r6, r9
2102 0008 4546 mov r5, r8
2103 000a E0B5 push {r5, r6, r7, lr}
2104 .LCFI26:
2105 .cfi_def_cfa_offset 36
2106 .cfi_offset 8, -36
2107 .cfi_offset 9, -32
2108 .cfi_offset 10, -28
2109 .cfi_offset 11, -24
2110 000c 89B0 sub sp, sp, #36
2111 .LCFI27:
2112 .cfi_def_cfa_offset 72
2113 000e 0400 movs r4, r0
2114 0010 0391 str r1, [sp, #12]
2115 0012 9346 mov fp, r2
2116 0014 1E00 movs r6, r3
2117 .LVL220:
919:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t nbEnabledChannels = 0;
920:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t delayTx = 0;
921:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t enabledChannels[EU868_MAX_NB_CHANNELS] = { 0 };
2118 .loc 1 921 0
2119 0016 1022 movs r2, #16
2120 .LVL221:
2121 0018 0021 movs r1, #0
2122 .LVL222:
2123 001a 04A8 add r0, sp, #16
2124 .LVL223:
2125 001c FFF7FEFF bl memset
2126 .LVL224:
922:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** TimerTime_t nextTxDelay = 0;
923:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
924:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonCountChannels( ChannelsMask, 0, 1 ) == 0 )
2127 .loc 1 924 0
ARM GAS /tmp/cczfoKrY.s page 56
2128 0020 0122 movs r2, #1
2129 0022 0021 movs r1, #0
2130 0024 4A48 ldr r0, .L199
2131 0026 FFF7FEFF bl RegionCommonCountChannels
2132 .LVL225:
2133 002a 0028 cmp r0, #0
2134 002c 04D1 bne .L183
925:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Reactivate default channels
926:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] |= LC( 1 ) + LC( 2 ) + LC( 3 );
2135 .loc 1 926 0
2136 002e 484A ldr r2, .L199
2137 0030 1388 ldrh r3, [r2]
2138 0032 0721 movs r1, #7
2139 0034 0B43 orrs r3, r1
2140 0036 1380 strh r3, [r2]
2141 .L183:
927:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
928:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
929:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( nextChanParams->AggrTimeOff <= TimerGetElapsedTime( nextChanParams->LastAggrTx ) )
2142 .loc 1 929 0
2143 0038 2568 ldr r5, [r4]
2144 003a 6068 ldr r0, [r4, #4]
2145 003c FFF7FEFF bl TimerGetElapsedTime
2146 .LVL226:
2147 0040 8542 cmp r5, r0
2148 0042 65D8 bhi .L184
930:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
931:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Reset Aggregated time off
932:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *aggregatedTimeOff = 0;
2149 .loc 1 932 0
2150 0044 0023 movs r3, #0
2151 0046 3360 str r3, [r6]
933:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
934:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Update bands Time OFF
935:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextTxDelay = RegionCommonUpdateBandTimeOff( nextChanParams->Joined, nextChanParams->DutyCy
2152 .loc 1 935 0
2153 0048 607A ldrb r0, [r4, #9]
2154 004a A17A ldrb r1, [r4, #10]
2155 004c 0533 adds r3, r3, #5
2156 004e 414A ldr r2, .L199+4
2157 0050 FFF7FEFF bl RegionCommonUpdateBandTimeOff
2158 .LVL227:
2159 0054 0290 str r0, [sp, #8]
2160 .LVL228:
936:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
937:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Search how many channels are enabled
938:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nbEnabledChannels = CountNbOfEnabledChannels( nextChanParams->Joined, nextChanParams->Datar
2161 .loc 1 938 0
2162 0056 637A ldrb r3, [r4, #9]
2163 0058 9A46 mov r10, r3
2164 005a 0823 movs r3, #8
2165 005c E356 ldrsb r3, [r4, r3]
2166 005e 0193 str r3, [sp, #4]
2167 .LVL229:
2168 .LBB39:
2169 .LBB40:
2170 .LBB41:
ARM GAS /tmp/cczfoKrY.s page 57
152:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2171 .loc 1 152 0
2172 0060 0026 movs r6, #0
2173 .LVL230:
2174 0062 0027 movs r7, #0
2175 .LBE41:
150:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2176 .loc 1 150 0
2177 0064 0023 movs r3, #0
2178 0066 9946 mov r9, r3
149:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t delayTransmission = 0;
2179 .loc 1 149 0
2180 0068 9846 mov r8, r3
2181 .LVL231:
2182 .L185:
2183 .LBB43:
152:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2184 .loc 1 152 0
2185 006a 0F2F cmp r7, #15
2186 006c 49D9 bls .L195
2187 .LVL232:
2188 .LBE43:
2189 .LBE40:
2190 .LBE39:
939:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask, Channels,
940:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Bands, enabledChannels, &delayTx );
941:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
942:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
943:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
944:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** delayTx++;
945:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextTxDelay = nextChanParams->AggrTimeOff - TimerGetElapsedTime( nextChanParams->LastAggrTx
946:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
947:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
948:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( nbEnabledChannels > 0 )
2191 .loc 1 948 0
2192 006e 4346 mov r3, r8
2193 0070 002B cmp r3, #0
2194 0072 55D0 beq .L192
949:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
950:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // We found a valid channel
951:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *channel = enabledChannels[randr( 0, nbEnabledChannels - 1 )];
2195 .loc 1 951 0
2196 0074 4146 mov r1, r8
2197 0076 0139 subs r1, r1, #1
2198 0078 0020 movs r0, #0
2199 007a FFF7FEFF bl randr
2200 .LVL233:
2201 007e 04AB add r3, sp, #16
2202 0080 1B5C ldrb r3, [r3, r0]
2203 0082 039A ldr r2, [sp, #12]
2204 0084 1370 strb r3, [r2]
952:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
953:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *time = 0;
2205 .loc 1 953 0
2206 0086 0023 movs r3, #0
2207 0088 5A46 mov r2, fp
2208 008a 1360 str r3, [r2]
ARM GAS /tmp/cczfoKrY.s page 58
954:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
2209 .loc 1 954 0
2210 008c 0120 movs r0, #1
2211 008e 53E0 b .L193
2212 .LVL234:
2213 .L197:
2214 .LBB46:
2215 .LBB45:
2216 .LBB44:
2217 .LBB42:
176:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** continue;
2218 .loc 1 176 0
2219 0090 4B46 mov r3, r9
2220 0092 0133 adds r3, r3, #1
2221 0094 DBB2 uxtb r3, r3
2222 0096 9946 mov r9, r3
2223 .LVL235:
2224 .L186:
154:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2225 .loc 1 154 0
2226 0098 0134 adds r4, r4, #1
2227 .LVL236:
2228 009a E4B2 uxtb r4, r4
2229 .LVL237:
2230 .L190:
2231 009c 0F2C cmp r4, #15
2232 009e 32D8 bhi .L196
156:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2233 .loc 1 156 0
2234 00a0 7300 lsls r3, r6, #1
2235 00a2 2B4A ldr r2, .L199
2236 00a4 9B5A ldrh r3, [r3, r2]
2237 00a6 2341 asrs r3, r3, r4
2238 00a8 DB07 lsls r3, r3, #31
2239 00aa F5D5 bpl .L186
158:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the channel is enabled
2240 .loc 1 158 0
2241 00ac 3919 adds r1, r7, r4
2242 00ae 4B00 lsls r3, r1, #1
2243 00b0 5B18 adds r3, r3, r1
2244 00b2 9900 lsls r1, r3, #2
2245 00b4 284D ldr r5, .L199+8
2246 00b6 4D19 adds r5, r1, r5
2247 00b8 2B68 ldr r3, [r5]
2248 00ba 002B cmp r3, #0
2249 00bc ECD0 beq .L186
162:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2250 .loc 1 162 0
2251 00be 5346 mov r3, r10
2252 00c0 002B cmp r3, #0
2253 00c2 03D1 bne .L187
164:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2254 .loc 1 164 0
2255 00c4 0733 adds r3, r3, #7
2256 00c6 2341 asrs r3, r3, r4
2257 00c8 DB07 lsls r3, r3, #31
2258 00ca E5D5 bpl .L186
ARM GAS /tmp/cczfoKrY.s page 59
2259 .L187:
169:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channels[i + j].DrRange.Fields.Max ) == false )
2260 .loc 1 169 0
2261 00cc 2A7A ldrb r2, [r5, #8]
2262 00ce 1101 lsls r1, r2, #4
2263 00d0 49B2 sxtb r1, r1
2264 00d2 0911 asrs r1, r1, #4
170:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the current channel selection supports the given datarate
2265 .loc 1 170 0
2266 00d4 52B2 sxtb r2, r2
2267 00d6 1211 asrs r2, r2, #4
169:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channels[i + j].DrRange.Fields.Max ) == false )
2268 .loc 1 169 0
2269 00d8 0198 ldr r0, [sp, #4]
2270 00da FFF7FEFF bl RegionCommonValueInRange
2271 .LVL238:
2272 00de 0028 cmp r0, #0
2273 00e0 DAD0 beq .L186
174:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** { // Check if the band is available for transmission
2274 .loc 1 174 0
2275 00e2 6A7A ldrb r2, [r5, #9]
2276 00e4 1201 lsls r2, r2, #4
2277 00e6 1B4B ldr r3, .L199+4
2278 00e8 9B18 adds r3, r3, r2
2279 00ea DB68 ldr r3, [r3, #12]
2280 00ec 002B cmp r3, #0
2281 00ee CFD1 bne .L197
179:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2282 .loc 1 179 0
2283 00f0 4346 mov r3, r8
2284 00f2 5A1C adds r2, r3, #1
2285 .LVL239:
2286 00f4 E319 adds r3, r4, r7
2287 00f6 04A9 add r1, sp, #16
2288 .LVL240:
2289 00f8 4046 mov r0, r8
2290 00fa 0B54 strb r3, [r1, r0]
2291 00fc D3B2 uxtb r3, r2
2292 00fe 9846 mov r8, r3
2293 0100 CAE7 b .L186
2294 .LVL241:
2295 .L195:
154:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2296 .loc 1 154 0
2297 0102 0024 movs r4, #0
2298 0104 CAE7 b .L190
2299 .LVL242:
2300 .L196:
2301 .LBE42:
152:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2302 .loc 1 152 0
2303 0106 1037 adds r7, r7, #16
2304 .LVL243:
2305 0108 FFB2 uxtb r7, r7
2306 .LVL244:
2307 010a 0136 adds r6, r6, #1
2308 .LVL245:
ARM GAS /tmp/cczfoKrY.s page 60
2309 010c F6B2 uxtb r6, r6
2310 .LVL246:
2311 010e ACE7 b .L185
2312 .LVL247:
2313 .L184:
2314 .LBE44:
2315 .LBE45:
2316 .LBE46:
945:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2317 .loc 1 945 0
2318 0110 2568 ldr r5, [r4]
2319 0112 6068 ldr r0, [r4, #4]
2320 0114 FFF7FEFF bl TimerGetElapsedTime
2321 .LVL248:
2322 0118 2B1A subs r3, r5, r0
2323 011a 0293 str r3, [sp, #8]
2324 .LVL249:
944:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** nextTxDelay = nextChanParams->AggrTimeOff - TimerGetElapsedTime( nextChanParams->LastAggrTx
2325 .loc 1 944 0
2326 011c 0123 movs r3, #1
2327 .LVL250:
2328 011e 9946 mov r9, r3
2329 .LVL251:
2330 .L192:
955:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
956:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** else
957:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
958:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( delayTx > 0 )
2331 .loc 1 958 0
2332 0120 4B46 mov r3, r9
2333 0122 002B cmp r3, #0
2334 0124 0FD1 bne .L198
959:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
960:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Delay transmission due to AggregatedTimeOff or to a band time off
961:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *time = nextTxDelay;
962:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
963:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
964:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Datarate not supported by any channel, restore defaults
965:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] |= LC( 1 ) + LC( 2 ) + LC( 3 );
2335 .loc 1 965 0
2336 0126 0A4A ldr r2, .L199
2337 0128 1388 ldrh r3, [r2]
2338 012a 0721 movs r1, #7
2339 012c 0B43 orrs r3, r1
2340 012e 1380 strh r3, [r2]
966:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** *time = 0;
2341 .loc 1 966 0
2342 0130 0023 movs r3, #0
2343 0132 5A46 mov r2, fp
2344 0134 1360 str r3, [r2]
967:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
2345 .loc 1 967 0
2346 0136 0020 movs r0, #0
2347 .L193:
2348 .LVL252:
968:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
969:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 61
2349 .loc 1 969 0
2350 0138 09B0 add sp, sp, #36
2351 @ sp needed
2352 .LVL253:
2353 013a 3CBC pop {r2, r3, r4, r5}
2354 013c 9046 mov r8, r2
2355 013e 9946 mov r9, r3
2356 0140 A246 mov r10, r4
2357 0142 AB46 mov fp, r5
2358 0144 F0BD pop {r4, r5, r6, r7, pc}
2359 .LVL254:
2360 .L198:
961:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return true;
2361 .loc 1 961 0
2362 0146 5B46 mov r3, fp
2363 0148 029A ldr r2, [sp, #8]
2364 014a 1A60 str r2, [r3]
962:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2365 .loc 1 962 0
2366 014c 0120 movs r0, #1
2367 014e F3E7 b .L193
2368 .L200:
2369 .align 2
2370 .L199:
2371 0150 00000000 .word .LANCHOR2
2372 0154 00000000 .word .LANCHOR4
2373 0158 00000000 .word Channels
2374 .cfi_endproc
2375 .LFE107:
2377 .section .text.RegionEU868ChannelAdd,"ax",%progbits
2378 .align 1
2379 .global RegionEU868ChannelAdd
2380 .syntax unified
2381 .code 16
2382 .thumb_func
2383 .fpu softvfp
2385 RegionEU868ChannelAdd:
2386 .LFB108:
970:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
971:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** LoRaMacStatus_t RegionEU868ChannelAdd( ChannelAddParams_t* channelAdd )
972:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2387 .loc 1 972 0
2388 .cfi_startproc
2389 @ args = 0, pretend = 0, frame = 8
2390 @ frame_needed = 0, uses_anonymous_args = 0
2391 .LVL255:
2392 0000 F0B5 push {r4, r5, r6, r7, lr}
2393 .LCFI28:
2394 .cfi_def_cfa_offset 20
2395 .cfi_offset 4, -20
2396 .cfi_offset 5, -16
2397 .cfi_offset 6, -12
2398 .cfi_offset 7, -8
2399 .cfi_offset 14, -4
2400 0002 83B0 sub sp, sp, #12
2401 .LCFI29:
2402 .cfi_def_cfa_offset 32
ARM GAS /tmp/cczfoKrY.s page 62
2403 0004 0400 movs r4, r0
973:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t band = 0;
2404 .loc 1 973 0
2405 0006 6B46 mov r3, sp
2406 0008 0022 movs r2, #0
2407 000a DA71 strb r2, [r3, #7]
2408 .LVL256:
974:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool drInvalid = false;
975:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool freqInvalid = false;
976:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t id = channelAdd->ChannelId;
2409 .loc 1 976 0
2410 000c 0579 ldrb r5, [r0, #4]
2411 .LVL257:
977:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
978:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( id >= EU868_MAX_NB_CHANNELS )
2412 .loc 1 978 0
2413 000e 0F2D cmp r5, #15
2414 0010 66D8 bhi .L211
979:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
980:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return LORAMAC_STATUS_PARAMETER_INVALID;
981:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
982:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
983:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Validate the datarate range
984:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Min, EU868_TX_MIN_DATARATE
2415 .loc 1 984 0
2416 0012 0368 ldr r3, [r0]
2417 0014 187A ldrb r0, [r3, #8]
2418 .LVL258:
2419 0016 0001 lsls r0, r0, #4
2420 0018 40B2 sxtb r0, r0
2421 001a 0011 asrs r0, r0, #4
2422 001c 0732 adds r2, r2, #7
2423 001e 0021 movs r1, #0
2424 0020 FFF7FEFF bl RegionCommonValueInRange
2425 .LVL259:
2426 0024 0028 cmp r0, #0
2427 0026 2CD0 beq .L212
974:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool freqInvalid = false;
2428 .loc 1 974 0
2429 0028 0026 movs r6, #0
2430 .L203:
2431 .LVL260:
985:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
986:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** drInvalid = true;
987:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
988:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, EU868_TX_MIN_DATARATE
2432 .loc 1 988 0
2433 002a 2368 ldr r3, [r4]
2434 002c 0820 movs r0, #8
2435 002e 1856 ldrsb r0, [r3, r0]
2436 0030 0011 asrs r0, r0, #4
2437 0032 0722 movs r2, #7
2438 0034 0021 movs r1, #0
2439 0036 FFF7FEFF bl RegionCommonValueInRange
2440 .LVL261:
2441 003a 0028 cmp r0, #0
2442 003c 00D1 bne .L204
ARM GAS /tmp/cczfoKrY.s page 63
989:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
990:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** drInvalid = true;
2443 .loc 1 990 0
2444 003e 0126 movs r6, #1
2445 .LVL262:
2446 .L204:
991:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
992:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( channelAdd->NewChannel->DrRange.Fields.Min > channelAdd->NewChannel->DrRange.Fields.Max )
2447 .loc 1 992 0
2448 0040 2368 ldr r3, [r4]
2449 0042 187A ldrb r0, [r3, #8]
2450 0044 0301 lsls r3, r0, #4
2451 0046 5BB2 sxtb r3, r3
2452 0048 1B11 asrs r3, r3, #4
2453 004a 40B2 sxtb r0, r0
2454 004c 0011 asrs r0, r0, #4
2455 004e 8342 cmp r3, r0
2456 0050 00DD ble .L205
993:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
994:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** drInvalid = true;
2457 .loc 1 994 0
2458 0052 0126 movs r6, #1
2459 .LVL263:
2460 .L205:
995:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
996:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
997:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Default channels don't accept all values
998:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( id < EU868_NUMB_DEFAULT_CHANNELS )
2461 .loc 1 998 0
2462 0054 022D cmp r5, #2
2463 0056 18D8 bhi .L215
999:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1000:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Validate the datarate range for min: must be DR_0
1001:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
2464 .loc 1 1001 0
2465 0058 002B cmp r3, #0
2466 005a 00DD ble .L207
1002:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1003:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** drInvalid = true;
2467 .loc 1 1003 0
2468 005c 0126 movs r6, #1
2469 .LVL264:
2470 .L207:
1004:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1005:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
1006:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, EU868_TX_MA
2471 .loc 1 1006 0
2472 005e 0722 movs r2, #7
2473 0060 0521 movs r1, #5
2474 0062 FFF7FEFF bl RegionCommonValueInRange
2475 .LVL265:
2476 0066 0028 cmp r0, #0
2477 0068 00D1 bne .L208
1007:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1008:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** drInvalid = true;
2478 .loc 1 1008 0
2479 006a 0126 movs r6, #1
ARM GAS /tmp/cczfoKrY.s page 64
2480 .LVL266:
2481 .L208:
1009:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1010:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // We are not allowed to change the frequency
1011:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( channelAdd->NewChannel->Frequency != Channels[id].Frequency )
2482 .loc 1 1011 0
2483 006c 2368 ldr r3, [r4]
2484 006e 1968 ldr r1, [r3]
2485 0070 6B00 lsls r3, r5, #1
2486 0072 5B19 adds r3, r3, r5
2487 0074 9A00 lsls r2, r3, #2
2488 0076 1F4B ldr r3, .L225
2489 0078 D358 ldr r3, [r2, r3]
2490 007a 9942 cmp r1, r3
2491 007c 03D0 beq .L223
1012:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1013:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** freqInvalid = true;
2492 .loc 1 1013 0
2493 007e 0127 movs r7, #1
2494 0080 04E0 b .L206
2495 .LVL267:
2496 .L212:
986:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2497 .loc 1 986 0
2498 0082 0126 movs r6, #1
2499 0084 D1E7 b .L203
2500 .LVL268:
2501 .L223:
975:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t id = channelAdd->ChannelId;
2502 .loc 1 975 0
2503 0086 0027 movs r7, #0
2504 0088 00E0 b .L206
2505 .L215:
2506 008a 0027 movs r7, #0
2507 .L206:
2508 .LVL269:
1014:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1015:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1016:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1017:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Check frequency
1018:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( freqInvalid == false )
2509 .loc 1 1018 0
2510 008c 002F cmp r7, #0
2511 008e 1DD0 beq .L224
2512 .LVL270:
2513 .L209:
1019:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1020:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( VerifyTxFreq( channelAdd->NewChannel->Frequency, &band ) == false )
1021:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1022:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** freqInvalid = true;
1023:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1024:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1025:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1026:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Check status
1027:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( ( drInvalid == true ) && ( freqInvalid == true ) )
2514 .loc 1 1027 0
2515 0090 002E cmp r6, #0
ARM GAS /tmp/cczfoKrY.s page 65
2516 0092 01D0 beq .L210
2517 .loc 1 1027 0 is_stmt 0 discriminator 1
2518 0094 002F cmp r7, #0
2519 0096 26D1 bne .L220
2520 .L210:
1028:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1029:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
1030:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1031:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( drInvalid == true )
2521 .loc 1 1031 0 is_stmt 1
2522 0098 002E cmp r6, #0
2523 009a 26D1 bne .L221
1032:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1033:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return LORAMAC_STATUS_DATARATE_INVALID;
1034:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1035:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( freqInvalid == true )
2524 .loc 1 1035 0
2525 009c 002F cmp r7, #0
2526 009e 26D1 bne .L222
1036:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1037:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return LORAMAC_STATUS_FREQUENCY_INVALID;
1038:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1039:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1040:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** memcpy( &(Channels[id]), channelAdd->NewChannel, sizeof( Channels[id] ) );
2527 .loc 1 1040 0
2528 00a0 6B00 lsls r3, r5, #1
2529 00a2 5B19 adds r3, r3, r5
2530 00a4 9E00 lsls r6, r3, #2
2531 .LVL271:
2532 00a6 134B ldr r3, .L225
2533 00a8 F618 adds r6, r6, r3
2534 00aa 2168 ldr r1, [r4]
2535 00ac 0C22 movs r2, #12
2536 00ae 3000 movs r0, r6
2537 00b0 FFF7FEFF bl memcpy
2538 .LVL272:
1041:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[id].Band = band;
2539 .loc 1 1041 0
2540 00b4 6B46 mov r3, sp
2541 00b6 0733 adds r3, r3, #7
2542 00b8 1B78 ldrb r3, [r3]
2543 00ba 7372 strb r3, [r6, #9]
1042:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelsMask[0] |= ( 1 << id );
2544 .loc 1 1042 0
2545 00bc 0122 movs r2, #1
2546 00be AA40 lsls r2, r2, r5
2547 00c0 0D49 ldr r1, .L225+4
2548 00c2 0B88 ldrh r3, [r1]
2549 00c4 1343 orrs r3, r2
2550 00c6 0B80 strh r3, [r1]
1043:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return LORAMAC_STATUS_OK;
2551 .loc 1 1043 0
2552 00c8 0020 movs r0, #0
2553 00ca 0AE0 b .L202
2554 .LVL273:
2555 .L224:
1020:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
ARM GAS /tmp/cczfoKrY.s page 66
2556 .loc 1 1020 0
2557 00cc 2368 ldr r3, [r4]
2558 00ce 1868 ldr r0, [r3]
2559 00d0 6B46 mov r3, sp
2560 00d2 D91D adds r1, r3, #7
2561 00d4 FFF7FEFF bl VerifyTxFreq
2562 .LVL274:
2563 00d8 0028 cmp r0, #0
2564 00da D9D1 bne .L209
1022:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2565 .loc 1 1022 0
2566 00dc 0137 adds r7, r7, #1
2567 .LVL275:
2568 00de D7E7 b .L209
2569 .LVL276:
2570 .L211:
980:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2571 .loc 1 980 0
2572 00e0 0320 movs r0, #3
2573 .LVL277:
2574 .L202:
1044:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2575 .loc 1 1044 0
2576 00e2 03B0 add sp, sp, #12
2577 @ sp needed
2578 .LVL278:
2579 .LVL279:
2580 00e4 F0BD pop {r4, r5, r6, r7, pc}
2581 .LVL280:
2582 .L220:
1029:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2583 .loc 1 1029 0
2584 00e6 0620 movs r0, #6
2585 00e8 FBE7 b .L202
2586 .L221:
1033:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2587 .loc 1 1033 0
2588 00ea 0520 movs r0, #5
2589 00ec F9E7 b .L202
2590 .L222:
1037:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2591 .loc 1 1037 0
2592 00ee 0420 movs r0, #4
2593 00f0 F7E7 b .L202
2594 .L226:
2595 00f2 C046 .align 2
2596 .L225:
2597 00f4 00000000 .word Channels
2598 00f8 00000000 .word .LANCHOR2
2599 .cfi_endproc
2600 .LFE108:
2602 .section .text.RegionEU868ChannelsRemove,"ax",%progbits
2603 .align 1
2604 .global RegionEU868ChannelsRemove
2605 .syntax unified
2606 .code 16
2607 .thumb_func
ARM GAS /tmp/cczfoKrY.s page 67
2608 .fpu softvfp
2610 RegionEU868ChannelsRemove:
2611 .LFB109:
1045:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1046:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** bool RegionEU868ChannelsRemove( ChannelRemoveParams_t* channelRemove )
1047:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2612 .loc 1 1047 0
2613 .cfi_startproc
2614 @ args = 0, pretend = 0, frame = 0
2615 @ frame_needed = 0, uses_anonymous_args = 0
2616 .LVL281:
2617 0000 10B5 push {r4, lr}
2618 .LCFI30:
2619 .cfi_def_cfa_offset 8
2620 .cfi_offset 4, -8
2621 .cfi_offset 14, -4
1048:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t id = channelRemove->ChannelId;
2622 .loc 1 1048 0
2623 0002 0478 ldrb r4, [r0]
2624 .LVL282:
1049:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1050:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( id < EU868_NUMB_DEFAULT_CHANNELS )
2625 .loc 1 1050 0
2626 0004 022C cmp r4, #2
2627 0006 01D8 bhi .L230
1051:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1052:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return false;
2628 .loc 1 1052 0
2629 0008 0020 movs r0, #0
2630 .LVL283:
2631 .L228:
1053:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1054:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1055:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Remove the channel from the list of channels
1056:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Channels[id] = ( ChannelParams_t ){ 0, 0, { 0 }, 0 };
1057:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1058:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return RegionCommonChanDisable( ChannelsMask, id, EU868_MAX_NB_CHANNELS );
1059:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2632 .loc 1 1059 0
2633 @ sp needed
2634 .LVL284:
2635 000a 10BD pop {r4, pc}
2636 .LVL285:
2637 .L230:
1056:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2638 .loc 1 1056 0
2639 000c 6300 lsls r3, r4, #1
2640 000e 1B19 adds r3, r3, r4
2641 0010 9A00 lsls r2, r3, #2
2642 0012 0648 ldr r0, .L231
2643 .LVL286:
2644 0014 8018 adds r0, r0, r2
2645 0016 0C22 movs r2, #12
2646 0018 0021 movs r1, #0
2647 001a FFF7FEFF bl memset
2648 .LVL287:
1058:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
ARM GAS /tmp/cczfoKrY.s page 68
2649 .loc 1 1058 0
2650 001e 1022 movs r2, #16
2651 0020 2100 movs r1, r4
2652 0022 0348 ldr r0, .L231+4
2653 0024 FFF7FEFF bl RegionCommonChanDisable
2654 .LVL288:
2655 0028 EFE7 b .L228
2656 .L232:
2657 002a C046 .align 2
2658 .L231:
2659 002c 00000000 .word Channels
2660 0030 00000000 .word .LANCHOR2
2661 .cfi_endproc
2662 .LFE109:
2664 .section .text.RegionEU868ApplyCFList,"ax",%progbits
2665 .align 1
2666 .global RegionEU868ApplyCFList
2667 .syntax unified
2668 .code 16
2669 .thumb_func
2670 .fpu softvfp
2672 RegionEU868ApplyCFList:
2673 .LFB94:
411:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelParams_t newChannel;
2674 .loc 1 411 0
2675 .cfi_startproc
2676 @ args = 0, pretend = 0, frame = 24
2677 @ frame_needed = 0, uses_anonymous_args = 0
2678 .LVL289:
2679 0000 70B5 push {r4, r5, r6, lr}
2680 .LCFI31:
2681 .cfi_def_cfa_offset 16
2682 .cfi_offset 4, -16
2683 .cfi_offset 5, -12
2684 .cfi_offset 6, -8
2685 .cfi_offset 14, -4
2686 0002 86B0 sub sp, sp, #24
2687 .LCFI32:
2688 .cfi_def_cfa_offset 40
2689 0004 0600 movs r6, r0
417:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2690 .loc 1 417 0
2691 0006 03AB add r3, sp, #12
2692 0008 5022 movs r2, #80
2693 000a 1A72 strb r2, [r3, #8]
420:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2694 .loc 1 420 0
2695 000c 0379 ldrb r3, [r0, #4]
2696 000e 102B cmp r3, #16
2697 0010 01D0 beq .L242
2698 .LVL290:
2699 .L233:
461:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2700 .loc 1 461 0
2701 0012 06B0 add sp, sp, #24
2702 @ sp needed
2703 .LVL291:
ARM GAS /tmp/cczfoKrY.s page 69
2704 0014 70BD pop {r4, r5, r6, pc}
2705 .LVL292:
2706 .L242:
2707 .LBB47:
426:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2708 .loc 1 426 0
2709 0016 0324 movs r4, #3
2710 0018 0025 movs r5, #0
2711 001a 19E0 b .L235
2712 .LVL293:
2713 .L243:
431:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 1] << 8 );
2714 .loc 1 431 0
2715 001c 3268 ldr r2, [r6]
2716 001e 535D ldrb r3, [r2, r5]
2717 0020 0393 str r3, [sp, #12]
432:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 2] << 16 );
2718 .loc 1 432 0
2719 0022 5219 adds r2, r2, r5
2720 0024 5178 ldrb r1, [r2, #1]
2721 0026 0902 lsls r1, r1, #8
2722 0028 0B43 orrs r3, r1
2723 002a 0393 str r3, [sp, #12]
433:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Frequency *= 100;
2724 .loc 1 433 0
2725 002c 9278 ldrb r2, [r2, #2]
2726 002e 1204 lsls r2, r2, #16
2727 0030 1343 orrs r3, r2
434:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2728 .loc 1 434 0
2729 0032 6422 movs r2, #100
2730 0034 5343 muls r3, r2
2731 0036 0393 str r3, [sp, #12]
437:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2732 .loc 1 437 0
2733 0038 0023 movs r3, #0
2734 003a 0493 str r3, [sp, #16]
2735 003c 11E0 b .L237
2736 .L238:
456:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2737 .loc 1 456 0
2738 003e 6B46 mov r3, sp
2739 0040 1C70 strb r4, [r3]
458:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2740 .loc 1 458 0
2741 0042 6846 mov r0, sp
2742 0044 FFF7FEFF bl RegionEU868ChannelsRemove
2743 .LVL294:
2744 .L239:
426:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2745 .loc 1 426 0 discriminator 2
2746 0048 0335 adds r5, r5, #3
2747 .LVL295:
2748 004a EDB2 uxtb r5, r5
2749 .LVL296:
2750 004c 0134 adds r4, r4, #1
2751 .LVL297:
ARM GAS /tmp/cczfoKrY.s page 70
2752 004e E4B2 uxtb r4, r4
2753 .LVL298:
2754 .L235:
426:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2755 .loc 1 426 0 is_stmt 0 discriminator 1
2756 0050 0F2C cmp r4, #15
2757 0052 DED8 bhi .L233
428:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2758 .loc 1 428 0 is_stmt 1
2759 0054 072C cmp r4, #7
2760 0056 E1D9 bls .L243
441:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.DrRange.Value = 0;
2761 .loc 1 441 0
2762 0058 03AA add r2, sp, #12
2763 005a 0023 movs r3, #0
2764 005c 0393 str r3, [sp, #12]
442:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** newChannel.Rx1Frequency = 0;
2765 .loc 1 442 0
2766 005e 1372 strb r3, [r2, #8]
443:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2767 .loc 1 443 0
2768 0060 0493 str r3, [sp, #16]
2769 .L237:
446:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2770 .loc 1 446 0
2771 0062 039B ldr r3, [sp, #12]
2772 0064 002B cmp r3, #0
2773 0066 EAD0 beq .L238
448:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.ChannelId = chanIdx;
2774 .loc 1 448 0
2775 0068 01A8 add r0, sp, #4
2776 006a 03AB add r3, sp, #12
2777 006c 0193 str r3, [sp, #4]
449:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2778 .loc 1 449 0
2779 006e 0471 strb r4, [r0, #4]
452:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2780 .loc 1 452 0
2781 0070 FFF7FEFF bl RegionEU868ChannelAdd
2782 .LVL299:
2783 0074 E8E7 b .L239
2784 .LBE47:
2785 .cfi_endproc
2786 .LFE94:
2788 .section .text.RegionEU868NewChannelReq,"ax",%progbits
2789 .align 1
2790 .global RegionEU868NewChannelReq
2791 .syntax unified
2792 .code 16
2793 .thumb_func
2794 .fpu softvfp
2796 RegionEU868NewChannelReq:
2797 .LFB102:
787:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t status = 0x03;
2798 .loc 1 787 0
2799 .cfi_startproc
2800 @ args = 0, pretend = 0, frame = 16
ARM GAS /tmp/cczfoKrY.s page 71
2801 @ frame_needed = 0, uses_anonymous_args = 0
2802 .LVL300:
2803 0000 00B5 push {lr}
2804 .LCFI33:
2805 .cfi_def_cfa_offset 4
2806 .cfi_offset 14, -4
2807 0002 85B0 sub sp, sp, #20
2808 .LCFI34:
2809 .cfi_def_cfa_offset 24
2810 .LVL301:
792:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2811 .loc 1 792 0
2812 0004 0368 ldr r3, [r0]
2813 0006 1A68 ldr r2, [r3]
2814 0008 002A cmp r2, #0
2815 000a 0BD1 bne .L245
794:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2816 .loc 1 794 0
2817 000c 0379 ldrb r3, [r0, #4]
2818 000e 01A8 add r0, sp, #4
2819 .LVL302:
2820 0010 0370 strb r3, [r0]
797:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2821 .loc 1 797 0
2822 0012 FFF7FEFF bl RegionEU868ChannelsRemove
2823 .LVL303:
2824 0016 0028 cmp r0, #0
2825 0018 02D1 bne .L254
799:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2826 .loc 1 799 0
2827 001a 0020 movs r0, #0
2828 .LVL304:
2829 .L246:
837:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2830 .loc 1 837 0
2831 001c 05B0 add sp, sp, #20
2832 @ sp needed
2833 001e 00BD pop {pc}
2834 .LVL305:
2835 .L254:
788:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelAddParams_t channelAdd;
2836 .loc 1 788 0
2837 0020 0320 movs r0, #3
2838 0022 FBE7 b .L246
2839 .LVL306:
2840 .L245:
804:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** channelAdd.ChannelId = newChannelReq->ChannelId;
2841 .loc 1 804 0
2842 0024 02AA add r2, sp, #8
2843 0026 0293 str r3, [sp, #8]
805:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2844 .loc 1 805 0
2845 0028 0379 ldrb r3, [r0, #4]
2846 002a 1371 strb r3, [r2, #4]
807:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2847 .loc 1 807 0
2848 002c 1000 movs r0, r2
ARM GAS /tmp/cczfoKrY.s page 72
2849 .LVL307:
2850 002e FFF7FEFF bl RegionEU868ChannelAdd
2851 .LVL308:
2852 0032 0428 cmp r0, #4
2853 0034 0ED0 beq .L253
2854 0036 05D9 bls .L255
2855 0038 0528 cmp r0, #5
2856 003a 07D0 beq .L250
2857 003c 0628 cmp r0, #6
2858 003e 07D1 bne .L247
2859 .LVL309:
825:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
2860 .loc 1 825 0
2861 0040 0020 movs r0, #0
826:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2862 .loc 1 826 0
2863 0042 EBE7 b .L246
2864 .LVL310:
2865 .L255:
807:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2866 .loc 1 807 0
2867 0044 0028 cmp r0, #0
2868 0046 03D1 bne .L247
788:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** ChannelAddParams_t channelAdd;
2869 .loc 1 788 0
2870 0048 0320 movs r0, #3
2871 004a E7E7 b .L246
2872 .L250:
2873 .LVL311:
820:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
2874 .loc 1 820 0
2875 004c 0120 movs r0, #1
821:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2876 .loc 1 821 0
2877 004e E5E7 b .L246
2878 .LVL312:
2879 .L247:
830:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
2880 .loc 1 830 0
2881 0050 0020 movs r0, #0
831:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2882 .loc 1 831 0
2883 0052 E3E7 b .L246
2884 .LVL313:
2885 .L253:
815:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** break;
2886 .loc 1 815 0
2887 0054 0220 movs r0, #2
2888 0056 E1E7 b .L246
2889 .cfi_endproc
2890 .LFE102:
2892 .section .text.RegionEU868SetContinuousWave,"ax",%progbits
2893 .align 1
2894 .global RegionEU868SetContinuousWave
2895 .syntax unified
2896 .code 16
2897 .thumb_func
ARM GAS /tmp/cczfoKrY.s page 73
2898 .fpu softvfp
2900 RegionEU868SetContinuousWave:
2901 .LFB110:
1060:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1061:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** void RegionEU868SetContinuousWave( ContinuousWaveParams_t* continuousWave )
1062:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2902 .loc 1 1062 0
2903 .cfi_startproc
2904 @ args = 0, pretend = 0, frame = 0
2905 @ frame_needed = 0, uses_anonymous_args = 0
2906 .LVL314:
2907 0000 70B5 push {r4, r5, r6, lr}
2908 .LCFI35:
2909 .cfi_def_cfa_offset 16
2910 .cfi_offset 4, -16
2911 .cfi_offset 5, -12
2912 .cfi_offset 6, -8
2913 .cfi_offset 14, -4
2914 0002 0400 movs r4, r0
1063:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t txPowerLimited = LimitTxPower( continuousWave->TxPower, Bands[Channels[continuousWave->C
2915 .loc 1 1063 0
2916 0004 0225 movs r5, #2
2917 0006 4557 ldrsb r5, [r0, r5]
2918 0008 0278 ldrb r2, [r0]
2919 000a 5300 lsls r3, r2, #1
2920 000c 9B18 adds r3, r3, r2
2921 000e 9900 lsls r1, r3, #2
2922 0010 0E4B ldr r3, .L258
2923 0012 5B18 adds r3, r3, r1
2924 0014 597A ldrb r1, [r3, #9]
2925 0016 0901 lsls r1, r1, #4
2926 0018 0D4B ldr r3, .L258+4
2927 001a 5B18 adds r3, r3, r1
2928 001c 9B78 ldrb r3, [r3, #2]
2929 001e 5BB2 sxtb r3, r3
2930 .LVL315:
2931 .LBB48:
2932 .LBB49:
102:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
2933 .loc 1 102 0
2934 0020 281C adds r0, r5, #0
2935 .LVL316:
2936 0022 9D42 cmp r5, r3
2937 0024 00DA bge .L257
2938 0026 181C adds r0, r3, #0
2939 .L257:
2940 0028 40B2 sxtb r0, r0
2941 .LVL317:
2942 .LBE49:
2943 .LBE48:
1064:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t phyTxPower = 0;
1065:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint32_t frequency = Channels[continuousWave->Channel].Frequency;
2944 .loc 1 1065 0
2945 002a 5300 lsls r3, r2, #1
2946 002c 9B18 adds r3, r3, r2
2947 002e 9A00 lsls r2, r3, #2
2948 0030 064B ldr r3, .L258
ARM GAS /tmp/cczfoKrY.s page 74
2949 0032 D558 ldr r5, [r2, r3]
2950 .LVL318:
1066:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1067:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** // Calculate physical TX power
1068:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** phyTxPower = RegionCommonComputeTxPower( txPowerLimited, continuousWave->MaxEirp, continuousWav
2951 .loc 1 1068 0
2952 0034 A268 ldr r2, [r4, #8]
2953 0036 6168 ldr r1, [r4, #4]
2954 0038 FFF7FEFF bl RegionCommonComputeTxPower
2955 .LVL319:
2956 003c 0100 movs r1, r0
2957 .LVL320:
1069:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1070:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** Radio.SetTxContinuousWave( frequency, phyTxPower, continuousWave->Timeout );
2958 .loc 1 1070 0
2959 003e 054B ldr r3, .L258+8
2960 0040 5B6C ldr r3, [r3, #68]
2961 0042 A289 ldrh r2, [r4, #12]
2962 0044 2800 movs r0, r5
2963 0046 9847 blx r3
2964 .LVL321:
1071:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
2965 .loc 1 1071 0
2966 @ sp needed
2967 .LVL322:
2968 .LVL323:
2969 0048 70BD pop {r4, r5, r6, pc}
2970 .L259:
2971 004a C046 .align 2
2972 .L258:
2973 004c 00000000 .word Channels
2974 0050 00000000 .word .LANCHOR4
2975 0054 00000000 .word Radio
2976 .cfi_endproc
2977 .LFE110:
2979 .section .text.RegionEU868ApplyDrOffset,"ax",%progbits
2980 .align 1
2981 .global RegionEU868ApplyDrOffset
2982 .syntax unified
2983 .code 16
2984 .thumb_func
2985 .fpu softvfp
2987 RegionEU868ApplyDrOffset:
2988 .LFB111:
1072:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1073:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** uint8_t RegionEU868ApplyDrOffset( uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset )
1074:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
2989 .loc 1 1074 0
2990 .cfi_startproc
2991 @ args = 0, pretend = 0, frame = 0
2992 @ frame_needed = 0, uses_anonymous_args = 0
2993 @ link register save eliminated.
2994 .LVL324:
1075:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** int8_t datarate = dr - drOffset;
2995 .loc 1 1075 0
2996 0000 881A subs r0, r1, r2
2997 .LVL325:
ARM GAS /tmp/cczfoKrY.s page 75
2998 0002 40B2 sxtb r0, r0
2999 .LVL326:
1076:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c ****
1077:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** if( datarate < 0 )
3000 .loc 1 1077 0
3001 0004 0028 cmp r0, #0
3002 0006 01DB blt .L263
3003 .LVL327:
3004 .L261:
1078:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** {
1079:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** datarate = DR_0;
1080:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
1081:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** return datarate;
3005 .loc 1 1081 0
3006 0008 C0B2 uxtb r0, r0
1082:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
3007 .loc 1 1082 0
3008 @ sp needed
3009 000a 7047 bx lr
3010 .L263:
1079:./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.c **** }
3011 .loc 1 1079 0
3012 000c 0020 movs r0, #0
3013 .LVL328:
3014 000e FBE7 b .L261
3015 .cfi_endproc
3016 .LFE111:
3018 .section .rodata
3019 .align 2
3020 .set .LANCHOR5,. + 0
3021 .LC0:
3022 0000 A027BE33 .word 868100000
3023 0004 00000000 .word 0
3024 0008 50 .byte 80
3025 0009 01 .byte 1
3026 000a 0000 .space 2
3027 .LC1:
3028 000c E034C133 .word 868300000
3029 0010 00000000 .word 0
3030 0014 50 .byte 80
3031 0015 01 .byte 1
3032 0016 0000 .space 2
3033 .LC2:
3034 0018 2042C433 .word 868500000
3035 001c 00000000 .word 0
3036 0020 50 .byte 80
3037 0021 01 .byte 1
3038 0022 0000 .space 2
3039 .section .bss.Channels,"aw",%nobits
3040 .align 2
3043 Channels:
3044 0000 00000000 .space 192
3044 00000000
3044 00000000
3044 00000000
3044 00000000
3045 .section .bss.ChannelsDefaultMask,"aw",%nobits
ARM GAS /tmp/cczfoKrY.s page 76
3046 .align 2
3047 .set .LANCHOR3,. + 0
3050 ChannelsDefaultMask:
3051 0000 0000 .space 2
3052 .section .bss.ChannelsMask,"aw",%nobits
3053 .align 2
3054 .set .LANCHOR2,. + 0
3057 ChannelsMask:
3058 0000 0000 .space 2
3059 .section .data.Bands,"aw",%progbits
3060 .align 2
3061 .set .LANCHOR4,. + 0
3064 Bands:
3065 0000 6400 .short 100
3066 0002 00 .byte 0
3067 0003 00 .space 1
3068 0004 00000000 .word 0
3069 0008 00000000 .word 0
3070 000c 00000000 .space 4
3071 0010 6400 .short 100
3072 0012 00 .byte 0
3073 0013 00 .space 1
3074 0014 00000000 .word 0
3075 0018 00000000 .word 0
3076 001c 00000000 .space 4
3077 0020 E803 .short 1000
3078 0022 00 .byte 0
3079 0023 00 .space 1
3080 0024 00000000 .word 0
3081 0028 00000000 .word 0
3082 002c 00000000 .space 4
3083 0030 0A00 .short 10
3084 0032 00 .byte 0
3085 0033 00 .space 1
3086 0034 00000000 .word 0
3087 0038 00000000 .word 0
3088 003c 00000000 .space 4
3089 0040 6400 .short 100
3090 0042 00 .byte 0
3091 0043 00 .space 1
3092 0044 00000000 .word 0
3093 0048 00000000 .word 0
3094 004c 00000000 .space 4
3095 .section .rodata.BandwidthsEU868,"a",%progbits
3096 .align 2
3097 .set .LANCHOR6,. + 0
3100 BandwidthsEU868:
3101 0000 48E80100 .word 125000
3102 0004 48E80100 .word 125000
3103 0008 48E80100 .word 125000
3104 000c 48E80100 .word 125000
3105 0010 48E80100 .word 125000
3106 0014 48E80100 .word 125000
3107 0018 90D00300 .word 250000
3108 001c 00000000 .word 0
3109 .section .rodata.DataratesEU868,"a",%progbits
3110 .align 2
ARM GAS /tmp/cczfoKrY.s page 77
3111 .set .LANCHOR7,. + 0
3114 DataratesEU868:
3115 0000 0C .byte 12
3116 0001 0B .byte 11
3117 0002 0A .byte 10
3118 0003 09 .byte 9
3119 0004 08 .byte 8
3120 0005 07 .byte 7
3121 0006 07 .byte 7
3122 0007 32 .byte 50
3123 .section .rodata.MaxPayloadOfDatarateEU868,"a",%progbits
3124 .align 2
3125 .set .LANCHOR0,. + 0
3128 MaxPayloadOfDatarateEU868:
3129 0000 33 .byte 51
3130 0001 33 .byte 51
3131 0002 33 .byte 51
3132 0003 73 .byte 115
3133 0004 F2 .byte -14
3134 0005 F2 .byte -14
3135 0006 F2 .byte -14
3136 0007 F2 .byte -14
3137 .section .rodata.MaxPayloadOfDatarateRepeaterEU868,"a",%progbits
3138 .align 2
3139 .set .LANCHOR1,. + 0
3142 MaxPayloadOfDatarateRepeaterEU868:
3143 0000 33 .byte 51
3144 0001 33 .byte 51
3145 0002 33 .byte 51
3146 0003 73 .byte 115
3147 0004 DE .byte -34
3148 0005 DE .byte -34
3149 0006 DE .byte -34
3150 0007 DE .byte -34
3151 .text
3152 .Letext0:
3153 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
3154 .file 3 "/usr/arm-none-eabi/include/sys/lock.h"
3155 .file 4 "/usr/arm-none-eabi/include/sys/_types.h"
3156 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
3157 .file 6 "/usr/arm-none-eabi/include/sys/reent.h"
3158 .file 7 "/usr/arm-none-eabi/include/sys/_stdint.h"
3159 .file 8 "/usr/arm-none-eabi/include/math.h"
3160 .file 9 "Middlewares/Third_Party/Lora/Phy/radio.h"
3161 .file 10 "Middlewares/Third_Party/Lora/Utilities/utilities.h"
3162 .file 11 "Middlewares/Third_Party/Lora/Mac/LoRaMac.h"
3163 .file 12 "./Middlewares/Third_Party/Lora/Mac/region/Region.h"
3164 .file 13 "./Middlewares/Third_Party/Lora/Mac/region/RegionCommon.h"
3165 .file 14 "./Middlewares/Third_Party/Lora/Mac/region/RegionEU868.h"
3166 .file 15 "<built-in>"
3167 .file 16 "Middlewares/Third_Party/Lora/Utilities/timeServer.h"
ARM GAS /tmp/cczfoKrY.s page 78
DEFINED SYMBOLS
*ABS*:0000000000000000 RegionEU868.c
/tmp/cczfoKrY.s:16 .text.VerifyTxFreq:0000000000000000 $t
/tmp/cczfoKrY.s:22 .text.VerifyTxFreq:0000000000000000 VerifyTxFreq
/tmp/cczfoKrY.s:128 .text.VerifyTxFreq:0000000000000078 $d
/tmp/cczfoKrY.s:145 .text.RegionEU868GetPhyParam:0000000000000000 $t
/tmp/cczfoKrY.s:152 .text.RegionEU868GetPhyParam:0000000000000000 RegionEU868GetPhyParam
/tmp/cczfoKrY.s:179 .rodata.RegionEU868GetPhyParam:0000000000000000 $d
/tmp/cczfoKrY.s:367 .text.RegionEU868GetPhyParam:000000000000009c $d
/tmp/cczfoKrY.s:3043 .bss.Channels:0000000000000000 Channels
/tmp/cczfoKrY.s:383 .text.RegionEU868SetBandTxDone:0000000000000000 $t
/tmp/cczfoKrY.s:390 .text.RegionEU868SetBandTxDone:0000000000000000 RegionEU868SetBandTxDone
/tmp/cczfoKrY.s:424 .text.RegionEU868SetBandTxDone:0000000000000020 $d
/tmp/cczfoKrY.s:430 .text.RegionEU868InitDefaults:0000000000000000 $t
/tmp/cczfoKrY.s:437 .text.RegionEU868InitDefaults:0000000000000000 RegionEU868InitDefaults
/tmp/cczfoKrY.s:504 .text.RegionEU868InitDefaults:0000000000000044 $d
/tmp/cczfoKrY.s:512 .text.RegionEU868Verify:0000000000000000 $t
/tmp/cczfoKrY.s:519 .text.RegionEU868Verify:0000000000000000 RegionEU868Verify
/tmp/cczfoKrY.s:542 .rodata.RegionEU868Verify:0000000000000000 $d
/tmp/cczfoKrY.s:661 .text.RegionEU868Verify:0000000000000078 $d
/tmp/cczfoKrY.s:666 .text.RegionEU868ChanMaskSet:0000000000000000 $t
/tmp/cczfoKrY.s:673 .text.RegionEU868ChanMaskSet:0000000000000000 RegionEU868ChanMaskSet
/tmp/cczfoKrY.s:726 .text.RegionEU868ChanMaskSet:000000000000002c $d
/tmp/cczfoKrY.s:732 .text.RegionEU868AdrNext:0000000000000000 $t
/tmp/cczfoKrY.s:739 .text.RegionEU868AdrNext:0000000000000000 RegionEU868AdrNext
/tmp/cczfoKrY.s:870 .text.RegionEU868AdrNext:000000000000007c $d
/tmp/cczfoKrY.s:875 .text.RegionEU868ComputeRxWindowParameters:0000000000000000 $t
/tmp/cczfoKrY.s:882 .text.RegionEU868ComputeRxWindowParameters:0000000000000000 RegionEU868ComputeRxWindowParameters
/tmp/cczfoKrY.s:1004 .text.RegionEU868ComputeRxWindowParameters:000000000000007c $d
/tmp/cczfoKrY.s:1013 .text.RegionEU868RxConfig:0000000000000000 $t
/tmp/cczfoKrY.s:1020 .text.RegionEU868RxConfig:0000000000000000 RegionEU868RxConfig
/tmp/cczfoKrY.s:1202 .text.RegionEU868RxConfig:00000000000000dc $d
/tmp/cczfoKrY.s:1213 .text.RegionEU868TxConfig:0000000000000000 $t
/tmp/cczfoKrY.s:1220 .text.RegionEU868TxConfig:0000000000000000 RegionEU868TxConfig
/tmp/cczfoKrY.s:1441 .text.RegionEU868TxConfig:000000000000010c $d
/tmp/cczfoKrY.s:1454 .text.RegionEU868LinkAdrReq:0000000000000000 $t
/tmp/cczfoKrY.s:1461 .text.RegionEU868LinkAdrReq:0000000000000000 RegionEU868LinkAdrReq
/tmp/cczfoKrY.s:1730 .text.RegionEU868LinkAdrReq:0000000000000140 $d
/tmp/cczfoKrY.s:1736 .text.RegionEU868RxParamSetupReq:0000000000000000 $t
/tmp/cczfoKrY.s:1743 .text.RegionEU868RxParamSetupReq:0000000000000000 RegionEU868RxParamSetupReq
/tmp/cczfoKrY.s:1814 .text.RegionEU868RxParamSetupReq:0000000000000044 $d
/tmp/cczfoKrY.s:1819 .text.RegionEU868TxParamSetupReq:0000000000000000 $t
/tmp/cczfoKrY.s:1826 .text.RegionEU868TxParamSetupReq:0000000000000000 RegionEU868TxParamSetupReq
/tmp/cczfoKrY.s:1845 .text.RegionEU868DlChannelReq:0000000000000000 $t
/tmp/cczfoKrY.s:1852 .text.RegionEU868DlChannelReq:0000000000000000 RegionEU868DlChannelReq
/tmp/cczfoKrY.s:1928 .text.RegionEU868DlChannelReq:000000000000004c $d
/tmp/cczfoKrY.s:1934 .text.RegionEU868AlternateDr:0000000000000000 $t
/tmp/cczfoKrY.s:1941 .text.RegionEU868AlternateDr:0000000000000000 RegionEU868AlternateDr
/tmp/cczfoKrY.s:2013 .text.RegionEU868CalcBackOff:0000000000000000 $t
/tmp/cczfoKrY.s:2020 .text.RegionEU868CalcBackOff:0000000000000000 RegionEU868CalcBackOff
/tmp/cczfoKrY.s:2071 .text.RegionEU868CalcBackOff:0000000000000030 $d
/tmp/cczfoKrY.s:2077 .text.RegionEU868NextChannel:0000000000000000 $t
/tmp/cczfoKrY.s:2084 .text.RegionEU868NextChannel:0000000000000000 RegionEU868NextChannel
/tmp/cczfoKrY.s:2371 .text.RegionEU868NextChannel:0000000000000150 $d
/tmp/cczfoKrY.s:2378 .text.RegionEU868ChannelAdd:0000000000000000 $t
/tmp/cczfoKrY.s:2385 .text.RegionEU868ChannelAdd:0000000000000000 RegionEU868ChannelAdd
/tmp/cczfoKrY.s:2597 .text.RegionEU868ChannelAdd:00000000000000f4 $d
ARM GAS /tmp/cczfoKrY.s page 79
/tmp/cczfoKrY.s:2603 .text.RegionEU868ChannelsRemove:0000000000000000 $t
/tmp/cczfoKrY.s:2610 .text.RegionEU868ChannelsRemove:0000000000000000 RegionEU868ChannelsRemove
/tmp/cczfoKrY.s:2659 .text.RegionEU868ChannelsRemove:000000000000002c $d
/tmp/cczfoKrY.s:2665 .text.RegionEU868ApplyCFList:0000000000000000 $t
/tmp/cczfoKrY.s:2672 .text.RegionEU868ApplyCFList:0000000000000000 RegionEU868ApplyCFList
/tmp/cczfoKrY.s:2789 .text.RegionEU868NewChannelReq:0000000000000000 $t
/tmp/cczfoKrY.s:2796 .text.RegionEU868NewChannelReq:0000000000000000 RegionEU868NewChannelReq
/tmp/cczfoKrY.s:2893 .text.RegionEU868SetContinuousWave:0000000000000000 $t
/tmp/cczfoKrY.s:2900 .text.RegionEU868SetContinuousWave:0000000000000000 RegionEU868SetContinuousWave
/tmp/cczfoKrY.s:2973 .text.RegionEU868SetContinuousWave:000000000000004c $d
/tmp/cczfoKrY.s:2980 .text.RegionEU868ApplyDrOffset:0000000000000000 $t
/tmp/cczfoKrY.s:2987 .text.RegionEU868ApplyDrOffset:0000000000000000 RegionEU868ApplyDrOffset
/tmp/cczfoKrY.s:3019 .rodata:0000000000000000 $d
/tmp/cczfoKrY.s:3040 .bss.Channels:0000000000000000 $d
/tmp/cczfoKrY.s:3046 .bss.ChannelsDefaultMask:0000000000000000 $d
/tmp/cczfoKrY.s:3050 .bss.ChannelsDefaultMask:0000000000000000 ChannelsDefaultMask
/tmp/cczfoKrY.s:3053 .bss.ChannelsMask:0000000000000000 $d
/tmp/cczfoKrY.s:3057 .bss.ChannelsMask:0000000000000000 ChannelsMask
/tmp/cczfoKrY.s:3060 .data.Bands:0000000000000000 $d
/tmp/cczfoKrY.s:3064 .data.Bands:0000000000000000 Bands
/tmp/cczfoKrY.s:3096 .rodata.BandwidthsEU868:0000000000000000 $d
/tmp/cczfoKrY.s:3100 .rodata.BandwidthsEU868:0000000000000000 BandwidthsEU868
/tmp/cczfoKrY.s:3110 .rodata.DataratesEU868:0000000000000000 $d
/tmp/cczfoKrY.s:3114 .rodata.DataratesEU868:0000000000000000 DataratesEU868
/tmp/cczfoKrY.s:3124 .rodata.MaxPayloadOfDatarateEU868:0000000000000000 $d
/tmp/cczfoKrY.s:3128 .rodata.MaxPayloadOfDatarateEU868:0000000000000000 MaxPayloadOfDatarateEU868
/tmp/cczfoKrY.s:3138 .rodata.MaxPayloadOfDatarateRepeaterEU868:0000000000000000 $d
/tmp/cczfoKrY.s:3142 .rodata.MaxPayloadOfDatarateRepeaterEU868:0000000000000000 MaxPayloadOfDatarateRepeaterEU868
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
Radio
randr
RegionCommonSetBandTxDone
RegionCommonChanMaskCopy
RegionCommonValueInRange
RegionCommonComputeSymbolTimeLoRa
RegionCommonComputeRxWindowParameters
RegionCommonComputeSymbolTimeFsk
RegionCommonComputeTxPower
RegionCommonParseLinkAdrReq
RegionCommonLinkAdrReqVerifyParams
__aeabi_uidivmod
RegionCommonCalcBackOff
memset
RegionCommonCountChannels
TimerGetElapsedTime
RegionCommonUpdateBandTimeOff
memcpy
RegionCommonChanDisable