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