ARM GAS /tmp/ccY05lmV.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 "lora.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.McpsConfirm,"ax",%progbits 16 .align 1 17 .syntax unified 18 .code 16 19 .thumb_func 20 .fpu softvfp 22 McpsConfirm: 23 .LFB100: 24 .file 1 "./Middlewares/Third_Party/Lora/Core/lora.c" 1:./Middlewares/Third_Party/Lora/Core/lora.c **** /* 2:./Middlewares/Third_Party/Lora/Core/lora.c **** / _____) _ | | 3:./Middlewares/Third_Party/Lora/Core/lora.c **** ( (____ _____ ____ _| |_ _____ ____| |__ 4:./Middlewares/Third_Party/Lora/Core/lora.c **** \____ \| ___ | (_ _) ___ |/ ___) _ \ 5:./Middlewares/Third_Party/Lora/Core/lora.c **** _____) ) ____| | | || |_| ____( (___| | | | 6:./Middlewares/Third_Party/Lora/Core/lora.c **** (______/|_____)_|_|_| \__)_____)\____)_| |_| 7:./Middlewares/Third_Party/Lora/Core/lora.c **** (C)2013 Semtech 8:./Middlewares/Third_Party/Lora/Core/lora.c **** 9:./Middlewares/Third_Party/Lora/Core/lora.c **** Description: LoRaMac classA device implementation 10:./Middlewares/Third_Party/Lora/Core/lora.c **** 11:./Middlewares/Third_Party/Lora/Core/lora.c **** License: Revised BSD License, see LICENSE.TXT file include in the project 12:./Middlewares/Third_Party/Lora/Core/lora.c **** 13:./Middlewares/Third_Party/Lora/Core/lora.c **** Maintainer: Miguel Luis, Gregory Cristian and Wael Guibene 14:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 15:./Middlewares/Third_Party/Lora/Core/lora.c **** /****************************************************************************** 16:./Middlewares/Third_Party/Lora/Core/lora.c **** * @file lora.c 17:./Middlewares/Third_Party/Lora/Core/lora.c **** * @author MCD Application Team 18:./Middlewares/Third_Party/Lora/Core/lora.c **** * @version V1.1.2 19:./Middlewares/Third_Party/Lora/Core/lora.c **** * @date 08-September-2017 20:./Middlewares/Third_Party/Lora/Core/lora.c **** * @brief lora API to drive the lora state Machine 21:./Middlewares/Third_Party/Lora/Core/lora.c **** ****************************************************************************** 22:./Middlewares/Third_Party/Lora/Core/lora.c **** * @attention 23:./Middlewares/Third_Party/Lora/Core/lora.c **** * 24:./Middlewares/Third_Party/Lora/Core/lora.c **** *

© Copyright (c) 2017 STMicroelectronics International N.V. 25:./Middlewares/Third_Party/Lora/Core/lora.c **** * All rights reserved.

26:./Middlewares/Third_Party/Lora/Core/lora.c **** * 27:./Middlewares/Third_Party/Lora/Core/lora.c **** * Redistribution and use in source and binary forms, with or without 28:./Middlewares/Third_Party/Lora/Core/lora.c **** * modification, are permitted, provided that the following conditions are met: 29:./Middlewares/Third_Party/Lora/Core/lora.c **** * 30:./Middlewares/Third_Party/Lora/Core/lora.c **** * 1. Redistribution of source code must retain the above copyright notice, 31:./Middlewares/Third_Party/Lora/Core/lora.c **** * this list of conditions and the following disclaimer. 32:./Middlewares/Third_Party/Lora/Core/lora.c **** * 2. Redistributions in binary form must reproduce the above copyright notice, 33:./Middlewares/Third_Party/Lora/Core/lora.c **** * this list of conditions and the following disclaimer in the documentation 34:./Middlewares/Third_Party/Lora/Core/lora.c **** * and/or other materials provided with the distribution. ARM GAS /tmp/ccY05lmV.s page 2 35:./Middlewares/Third_Party/Lora/Core/lora.c **** * 3. Neither the name of STMicroelectronics nor the names of other 36:./Middlewares/Third_Party/Lora/Core/lora.c **** * contributors to this software may be used to endorse or promote products 37:./Middlewares/Third_Party/Lora/Core/lora.c **** * derived from this software without specific written permission. 38:./Middlewares/Third_Party/Lora/Core/lora.c **** * 4. This software, including modifications and/or derivative works of this 39:./Middlewares/Third_Party/Lora/Core/lora.c **** * software, must execute solely and exclusively on microcontroller or 40:./Middlewares/Third_Party/Lora/Core/lora.c **** * microprocessor devices manufactured by or for STMicroelectronics. 41:./Middlewares/Third_Party/Lora/Core/lora.c **** * 5. Redistribution and use of this software other than as permitted under 42:./Middlewares/Third_Party/Lora/Core/lora.c **** * this license is void and will automatically terminate your rights under 43:./Middlewares/Third_Party/Lora/Core/lora.c **** * this license. 44:./Middlewares/Third_Party/Lora/Core/lora.c **** * 45:./Middlewares/Third_Party/Lora/Core/lora.c **** * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" 46:./Middlewares/Third_Party/Lora/Core/lora.c **** * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT 47:./Middlewares/Third_Party/Lora/Core/lora.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 48:./Middlewares/Third_Party/Lora/Core/lora.c **** * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY 49:./Middlewares/Third_Party/Lora/Core/lora.c **** * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT 50:./Middlewares/Third_Party/Lora/Core/lora.c **** * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 51:./Middlewares/Third_Party/Lora/Core/lora.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 52:./Middlewares/Third_Party/Lora/Core/lora.c **** * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 53:./Middlewares/Third_Party/Lora/Core/lora.c **** * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 54:./Middlewares/Third_Party/Lora/Core/lora.c **** * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 55:./Middlewares/Third_Party/Lora/Core/lora.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 56:./Middlewares/Third_Party/Lora/Core/lora.c **** * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 57:./Middlewares/Third_Party/Lora/Core/lora.c **** * 58:./Middlewares/Third_Party/Lora/Core/lora.c **** ****************************************************************************** 59:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 60:./Middlewares/Third_Party/Lora/Core/lora.c **** 61:./Middlewares/Third_Party/Lora/Core/lora.c **** /* Includes ------------------------------------------------------------------*/ 62:./Middlewares/Third_Party/Lora/Core/lora.c **** #include "hw.h" 63:./Middlewares/Third_Party/Lora/Core/lora.c **** #include "timeServer.h" 64:./Middlewares/Third_Party/Lora/Core/lora.c **** #include "LoRaMac.h" 65:./Middlewares/Third_Party/Lora/Core/lora.c **** #include "lora.h" 66:./Middlewares/Third_Party/Lora/Core/lora.c **** 67:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 68:./Middlewares/Third_Party/Lora/Core/lora.c **** * Join requests trials duty cycle. 69:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 70:./Middlewares/Third_Party/Lora/Core/lora.c **** #define OVER_THE_AIR_ACTIVATION_DUTYCYCLE 10000 // 10 [s] value in ms 71:./Middlewares/Third_Party/Lora/Core/lora.c **** 72:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_EU868 ) 73:./Middlewares/Third_Party/Lora/Core/lora.c **** 74:./Middlewares/Third_Party/Lora/Core/lora.c **** #include "LoRaMacTest.h" 75:./Middlewares/Third_Party/Lora/Core/lora.c **** 76:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 77:./Middlewares/Third_Party/Lora/Core/lora.c **** * LoRaWAN ETSI duty cycle control enable/disable 78:./Middlewares/Third_Party/Lora/Core/lora.c **** * 79:./Middlewares/Third_Party/Lora/Core/lora.c **** * \remark Please note that ETSI mandates duty cycled transmissions. Use only for test purposes 80:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 81:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LORAWAN_DUTYCYCLE_ON true 82:./Middlewares/Third_Party/Lora/Core/lora.c **** 83:./Middlewares/Third_Party/Lora/Core/lora.c **** #define USE_SEMTECH_DEFAULT_CHANNEL_LINEUP 0 84:./Middlewares/Third_Party/Lora/Core/lora.c **** 85:./Middlewares/Third_Party/Lora/Core/lora.c **** #if( USE_SEMTECH_DEFAULT_CHANNEL_LINEUP == 1 ) 86:./Middlewares/Third_Party/Lora/Core/lora.c **** 87:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC4 { 867100000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } 88:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC5 { 867300000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } 89:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC6 { 867500000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } 90:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC7 { 867700000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } 91:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC8 { 867900000, 0, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ARM GAS /tmp/ccY05lmV.s page 3 92:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC9 { 868800000, 0, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 } 93:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LC10 { 868300000, 0, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 } 94:./Middlewares/Third_Party/Lora/Core/lora.c **** 95:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 96:./Middlewares/Third_Party/Lora/Core/lora.c **** 97:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 98:./Middlewares/Third_Party/Lora/Core/lora.c **** 99:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t DevEui[] = LORAWAN_DEVICE_EUI; 100:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t AppEui[] = LORAWAN_APPLICATION_EUI; 101:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t AppKey[] = LORAWAN_APPLICATION_KEY; 102:./Middlewares/Third_Party/Lora/Core/lora.c **** 103:./Middlewares/Third_Party/Lora/Core/lora.c **** #if( OVER_THE_AIR_ACTIVATION == 0 ) 104:./Middlewares/Third_Party/Lora/Core/lora.c **** 105:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t NwkSKey[] = LORAWAN_NWKSKEY; 106:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t AppSKey[] = LORAWAN_APPSKEY; 107:./Middlewares/Third_Party/Lora/Core/lora.c **** 108:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 109:./Middlewares/Third_Party/Lora/Core/lora.c **** * Device address 110:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 111:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint32_t DevAddr = LORAWAN_DEVICE_ADDRESS; 112:./Middlewares/Third_Party/Lora/Core/lora.c **** 113:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 114:./Middlewares/Third_Party/Lora/Core/lora.c **** 115:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 116:./Middlewares/Third_Party/Lora/Core/lora.c **** * User application data buffer size 117:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 118:./Middlewares/Third_Party/Lora/Core/lora.c **** #define LORAWAN_APP_DATA_BUFF_SIZE 64 119:./Middlewares/Third_Party/Lora/Core/lora.c **** 120:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 121:./Middlewares/Third_Party/Lora/Core/lora.c **** * User application data 122:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 123:./Middlewares/Third_Party/Lora/Core/lora.c **** static uint8_t AppDataBuff[LORAWAN_APP_DATA_BUFF_SIZE]; 124:./Middlewares/Third_Party/Lora/Core/lora.c **** 125:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 126:./Middlewares/Third_Party/Lora/Core/lora.c **** * User application data structure 127:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 128:./Middlewares/Third_Party/Lora/Core/lora.c **** static lora_AppData_t AppData={ AppDataBuff, 0 ,0 }; 129:./Middlewares/Third_Party/Lora/Core/lora.c **** 130:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 131:./Middlewares/Third_Party/Lora/Core/lora.c **** * Indicates if the node is sending confirmed or unconfirmed messages 132:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 133:./Middlewares/Third_Party/Lora/Core/lora.c **** static FunctionalState IsTxConfirmed ; 134:./Middlewares/Third_Party/Lora/Core/lora.c **** 135:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 136:./Middlewares/Third_Party/Lora/Core/lora.c **** * Defines the LoRa parameters at Init 137:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 138:./Middlewares/Third_Party/Lora/Core/lora.c **** static LoRaParam_t* LoRaParamInit; 139:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 140:./Middlewares/Third_Party/Lora/Core/lora.c **** * Timer to handle the application data transmission duty cycle 141:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 142:./Middlewares/Third_Party/Lora/Core/lora.c **** static TimerEvent_t TxNextPacketTimer; 143:./Middlewares/Third_Party/Lora/Core/lora.c **** 144:./Middlewares/Third_Party/Lora/Core/lora.c **** static DeviceState_t DeviceState = DEVICE_STATE_INIT ; 145:./Middlewares/Third_Party/Lora/Core/lora.c **** 146:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 147:./Middlewares/Third_Party/Lora/Core/lora.c **** * Timer to handle the state of LED1 148:./Middlewares/Third_Party/Lora/Core/lora.c **** */ ARM GAS /tmp/ccY05lmV.s page 4 149:./Middlewares/Third_Party/Lora/Core/lora.c **** 150:./Middlewares/Third_Party/Lora/Core/lora.c **** static LoRaMacPrimitives_t LoRaMacPrimitives; 151:./Middlewares/Third_Party/Lora/Core/lora.c **** static LoRaMacCallback_t LoRaMacCallbacks; 152:./Middlewares/Third_Party/Lora/Core/lora.c **** static MibRequestConfirm_t mibReq; 153:./Middlewares/Third_Party/Lora/Core/lora.c **** 154:./Middlewares/Third_Party/Lora/Core/lora.c **** static LoRaMainCallback_t *LoRaMainCallbacks; 155:./Middlewares/Third_Party/Lora/Core/lora.c **** 156:./Middlewares/Third_Party/Lora/Core/lora.c **** 157:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 158:./Middlewares/Third_Party/Lora/Core/lora.c **** * Indicates if a new packet can be sent 159:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 160:./Middlewares/Third_Party/Lora/Core/lora.c **** static bool NextTx = true; 161:./Middlewares/Third_Party/Lora/Core/lora.c **** 162:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 163:./Middlewares/Third_Party/Lora/Core/lora.c **** * LoRaWAN compliance tests support data 164:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 165:./Middlewares/Third_Party/Lora/Core/lora.c **** struct ComplianceTest_s 166:./Middlewares/Third_Party/Lora/Core/lora.c **** { 167:./Middlewares/Third_Party/Lora/Core/lora.c **** bool Running; 168:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t State; 169:./Middlewares/Third_Party/Lora/Core/lora.c **** FunctionalState IsTxConfirmed; 170:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t AppPort; 171:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t AppDataSize; 172:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t *AppDataBuffer; 173:./Middlewares/Third_Party/Lora/Core/lora.c **** uint16_t DownLinkCounter; 174:./Middlewares/Third_Party/Lora/Core/lora.c **** bool LinkCheck; 175:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t DemodMargin; 176:./Middlewares/Third_Party/Lora/Core/lora.c **** uint8_t NbGateways; 177:./Middlewares/Third_Party/Lora/Core/lora.c **** }ComplianceTest; 178:./Middlewares/Third_Party/Lora/Core/lora.c **** 179:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 180:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief Prepares the payload of the frame 181:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 182:./Middlewares/Third_Party/Lora/Core/lora.c **** static void PrepareTxFrame( void) 183:./Middlewares/Third_Party/Lora/Core/lora.c **** { 184:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.Running == true ) 185:./Middlewares/Third_Party/Lora/Core/lora.c **** { 186:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.LinkCheck == true ) 187:./Middlewares/Third_Party/Lora/Core/lora.c **** { 188:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.LinkCheck = false; 189:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 3; 190:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[0] = 5; 191:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[1] = ComplianceTest.DemodMargin; 192:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[2] = ComplianceTest.NbGateways; 193:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 194:./Middlewares/Third_Party/Lora/Core/lora.c **** } 195:./Middlewares/Third_Party/Lora/Core/lora.c **** else 196:./Middlewares/Third_Party/Lora/Core/lora.c **** { 197:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( ComplianceTest.State ) 198:./Middlewares/Third_Party/Lora/Core/lora.c **** { 199:./Middlewares/Third_Party/Lora/Core/lora.c **** case 4: 200:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 201:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 202:./Middlewares/Third_Party/Lora/Core/lora.c **** case 1: 203:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 2; 204:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[0] = ComplianceTest.DownLinkCounter >> 8; 205:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[1] = ComplianceTest.DownLinkCounter; ARM GAS /tmp/ccY05lmV.s page 5 206:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 207:./Middlewares/Third_Party/Lora/Core/lora.c **** } 208:./Middlewares/Third_Party/Lora/Core/lora.c **** } 209:./Middlewares/Third_Party/Lora/Core/lora.c **** } 210:./Middlewares/Third_Party/Lora/Core/lora.c **** else 211:./Middlewares/Third_Party/Lora/Core/lora.c **** { 212:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMainCallbacks->LoraTxData(&AppData, &IsTxConfirmed); 213:./Middlewares/Third_Party/Lora/Core/lora.c **** } 214:./Middlewares/Third_Party/Lora/Core/lora.c **** } 215:./Middlewares/Third_Party/Lora/Core/lora.c **** 216:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 217:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief Prepares the payload of the frame 218:./Middlewares/Third_Party/Lora/Core/lora.c **** * 219:./Middlewares/Third_Party/Lora/Core/lora.c **** * \retval [0: frame could be send, 1: error] 220:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 221:./Middlewares/Third_Party/Lora/Core/lora.c **** static bool SendFrame( void ) 222:./Middlewares/Third_Party/Lora/Core/lora.c **** { 223:./Middlewares/Third_Party/Lora/Core/lora.c **** McpsReq_t mcpsReq; 224:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacTxInfo_t txInfo; 225:./Middlewares/Third_Party/Lora/Core/lora.c **** 226:./Middlewares/Third_Party/Lora/Core/lora.c **** if( LoRaMacQueryTxPossible( AppData.BuffSize, &txInfo ) != LORAMAC_STATUS_OK ) 227:./Middlewares/Third_Party/Lora/Core/lora.c **** { 228:./Middlewares/Third_Party/Lora/Core/lora.c **** // Send empty frame in order to flush MAC commands 229:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Type = MCPS_UNCONFIRMED; 230:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBuffer = NULL; 231:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBufferSize = 0; 232:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.Datarate = LoRaParamInit->TxDatarate; 233:./Middlewares/Third_Party/Lora/Core/lora.c **** } 234:./Middlewares/Third_Party/Lora/Core/lora.c **** else 235:./Middlewares/Third_Party/Lora/Core/lora.c **** { 236:./Middlewares/Third_Party/Lora/Core/lora.c **** if( IsTxConfirmed == DISABLE ) 237:./Middlewares/Third_Party/Lora/Core/lora.c **** { 238:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Type = MCPS_UNCONFIRMED; 239:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fPort = AppData.Port; 240:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBuffer = AppData.Buff; 241:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBufferSize = AppData.BuffSize; 242:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.Datarate = LoRaParamInit->TxDatarate; 243:./Middlewares/Third_Party/Lora/Core/lora.c **** } 244:./Middlewares/Third_Party/Lora/Core/lora.c **** else 245:./Middlewares/Third_Party/Lora/Core/lora.c **** { 246:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Type = MCPS_CONFIRMED; 247:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fPort = AppData.Port; 248:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fBuffer = AppData.Buff; 249:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fBufferSize = AppData.BuffSize; 250:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.NbTrials = 8; 251:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.Datarate = LoRaParamInit->TxDatarate; 252:./Middlewares/Third_Party/Lora/Core/lora.c **** } 253:./Middlewares/Third_Party/Lora/Core/lora.c **** } 254:./Middlewares/Third_Party/Lora/Core/lora.c **** if( LoRaMacMcpsRequest( &mcpsReq ) == LORAMAC_STATUS_OK ) 255:./Middlewares/Third_Party/Lora/Core/lora.c **** { 256:./Middlewares/Third_Party/Lora/Core/lora.c **** return false; 257:./Middlewares/Third_Party/Lora/Core/lora.c **** } 258:./Middlewares/Third_Party/Lora/Core/lora.c **** return true; 259:./Middlewares/Third_Party/Lora/Core/lora.c **** } 260:./Middlewares/Third_Party/Lora/Core/lora.c **** 261:./Middlewares/Third_Party/Lora/Core/lora.c **** void OnSendEvent( void ) 262:./Middlewares/Third_Party/Lora/Core/lora.c **** { ARM GAS /tmp/ccY05lmV.s page 6 263:./Middlewares/Third_Party/Lora/Core/lora.c **** MibRequestConfirm_t _mibReq; 264:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacStatus_t status; 265:./Middlewares/Third_Party/Lora/Core/lora.c **** 266:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Type = MIB_NETWORK_JOINED; 267:./Middlewares/Third_Party/Lora/Core/lora.c **** status = LoRaMacMibGetRequestConfirm( &_mibReq ); 268:./Middlewares/Third_Party/Lora/Core/lora.c **** 269:./Middlewares/Third_Party/Lora/Core/lora.c **** if( status == LORAMAC_STATUS_OK ) 270:./Middlewares/Third_Party/Lora/Core/lora.c **** { 271:./Middlewares/Third_Party/Lora/Core/lora.c **** if( _mibReq.Param.IsNetworkJoined == true ) 272:./Middlewares/Third_Party/Lora/Core/lora.c **** { 273:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SEND; 274:./Middlewares/Third_Party/Lora/Core/lora.c **** NextTx = true; 275:./Middlewares/Third_Party/Lora/Core/lora.c **** } 276:./Middlewares/Third_Party/Lora/Core/lora.c **** else 277:./Middlewares/Third_Party/Lora/Core/lora.c **** { 278:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_JOIN; 279:./Middlewares/Third_Party/Lora/Core/lora.c **** } 280:./Middlewares/Third_Party/Lora/Core/lora.c **** } 281:./Middlewares/Third_Party/Lora/Core/lora.c **** } 282:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 283:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief Function executed on TxNextPacket Timeout event 284:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 285:./Middlewares/Third_Party/Lora/Core/lora.c **** static void OnTxNextPacketTimerEvent( void ) 286:./Middlewares/Third_Party/Lora/Core/lora.c **** { 287:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStop( &TxNextPacketTimer ); 288:./Middlewares/Third_Party/Lora/Core/lora.c **** OnSendEvent(); 289:./Middlewares/Third_Party/Lora/Core/lora.c **** } 290:./Middlewares/Third_Party/Lora/Core/lora.c **** 291:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 292:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief MCPS-Confirm event function 293:./Middlewares/Third_Party/Lora/Core/lora.c **** * 294:./Middlewares/Third_Party/Lora/Core/lora.c **** * \param [IN] McpsConfirm - Pointer to the confirm structure, 295:./Middlewares/Third_Party/Lora/Core/lora.c **** * containing confirm attributes. 296:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 297:./Middlewares/Third_Party/Lora/Core/lora.c **** static void McpsConfirm( McpsConfirm_t *mcpsConfirm ) 298:./Middlewares/Third_Party/Lora/Core/lora.c **** { 25 .loc 1 298 0 26 .cfi_startproc 27 @ args = 0, pretend = 0, frame = 0 28 @ frame_needed = 0, uses_anonymous_args = 0 29 @ link register save eliminated. 30 .LVL0: 299:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mcpsConfirm->Status == LORAMAC_EVENT_INFO_STATUS_OK ) 300:./Middlewares/Third_Party/Lora/Core/lora.c **** { 301:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( mcpsConfirm->McpsRequest ) 302:./Middlewares/Third_Party/Lora/Core/lora.c **** { 303:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_UNCONFIRMED: 304:./Middlewares/Third_Party/Lora/Core/lora.c **** { 305:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Datarate 306:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check TxPower 307:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 308:./Middlewares/Third_Party/Lora/Core/lora.c **** } 309:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_CONFIRMED: 310:./Middlewares/Third_Party/Lora/Core/lora.c **** { 311:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Datarate 312:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check TxPower 313:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check AckReceived ARM GAS /tmp/ccY05lmV.s page 7 314:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check NbTrials 315:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 316:./Middlewares/Third_Party/Lora/Core/lora.c **** } 317:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_PROPRIETARY: 318:./Middlewares/Third_Party/Lora/Core/lora.c **** { 319:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 320:./Middlewares/Third_Party/Lora/Core/lora.c **** } 321:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 322:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 323:./Middlewares/Third_Party/Lora/Core/lora.c **** } 324:./Middlewares/Third_Party/Lora/Core/lora.c **** } 325:./Middlewares/Third_Party/Lora/Core/lora.c **** NextTx = true; 31 .loc 1 325 0 32 0000 014B ldr r3, .L2 33 0002 0122 movs r2, #1 34 0004 1A70 strb r2, [r3] 326:./Middlewares/Third_Party/Lora/Core/lora.c **** } 35 .loc 1 326 0 36 @ sp needed 37 0006 7047 bx lr 38 .L3: 39 .align 2 40 .L2: 41 0008 00000000 .word .LANCHOR0 42 .cfi_endproc 43 .LFE100: 45 .section .text.MlmeConfirm,"ax",%progbits 46 .align 1 47 .syntax unified 48 .code 16 49 .thumb_func 50 .fpu softvfp 52 MlmeConfirm: 53 .LFB102: 327:./Middlewares/Third_Party/Lora/Core/lora.c **** 328:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 329:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief MCPS-Indication event function 330:./Middlewares/Third_Party/Lora/Core/lora.c **** * 331:./Middlewares/Third_Party/Lora/Core/lora.c **** * \param [IN] mcpsIndication - Pointer to the indication structure, 332:./Middlewares/Third_Party/Lora/Core/lora.c **** * containing indication attributes. 333:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 334:./Middlewares/Third_Party/Lora/Core/lora.c **** static void McpsIndication( McpsIndication_t *mcpsIndication ) 335:./Middlewares/Third_Party/Lora/Core/lora.c **** { 336:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mcpsIndication->Status != LORAMAC_EVENT_INFO_STATUS_OK ) 337:./Middlewares/Third_Party/Lora/Core/lora.c **** { 338:./Middlewares/Third_Party/Lora/Core/lora.c **** return; 339:./Middlewares/Third_Party/Lora/Core/lora.c **** } 340:./Middlewares/Third_Party/Lora/Core/lora.c **** 341:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( mcpsIndication->McpsIndication ) 342:./Middlewares/Third_Party/Lora/Core/lora.c **** { 343:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_UNCONFIRMED: 344:./Middlewares/Third_Party/Lora/Core/lora.c **** { 345:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 346:./Middlewares/Third_Party/Lora/Core/lora.c **** } 347:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_CONFIRMED: 348:./Middlewares/Third_Party/Lora/Core/lora.c **** { 349:./Middlewares/Third_Party/Lora/Core/lora.c **** break; ARM GAS /tmp/ccY05lmV.s page 8 350:./Middlewares/Third_Party/Lora/Core/lora.c **** } 351:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_PROPRIETARY: 352:./Middlewares/Third_Party/Lora/Core/lora.c **** { 353:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 354:./Middlewares/Third_Party/Lora/Core/lora.c **** } 355:./Middlewares/Third_Party/Lora/Core/lora.c **** case MCPS_MULTICAST: 356:./Middlewares/Third_Party/Lora/Core/lora.c **** { 357:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 358:./Middlewares/Third_Party/Lora/Core/lora.c **** } 359:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 360:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 361:./Middlewares/Third_Party/Lora/Core/lora.c **** } 362:./Middlewares/Third_Party/Lora/Core/lora.c **** 363:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Multicast 364:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Port 365:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Datarate 366:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check FramePending 367:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Buffer 368:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check BufferSize 369:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Rssi 370:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check Snr 371:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check RxSlot 372:./Middlewares/Third_Party/Lora/Core/lora.c **** 373:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.Running == true ) 374:./Middlewares/Third_Party/Lora/Core/lora.c **** { 375:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DownLinkCounter++; 376:./Middlewares/Third_Party/Lora/Core/lora.c **** } 377:./Middlewares/Third_Party/Lora/Core/lora.c **** 378:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mcpsIndication->RxData == true ) 379:./Middlewares/Third_Party/Lora/Core/lora.c **** { 380:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( mcpsIndication->Port ) 381:./Middlewares/Third_Party/Lora/Core/lora.c **** { 382:./Middlewares/Third_Party/Lora/Core/lora.c **** case 224: 383:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.Running == false ) 384:./Middlewares/Third_Party/Lora/Core/lora.c **** { 385:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check compliance test enable command (i) 386:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ( mcpsIndication->BufferSize == 4 ) && 387:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[0] == 0x01 ) && 388:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[1] == 0x01 ) && 389:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[2] == 0x01 ) && 390:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[3] == 0x01 ) ) 391:./Middlewares/Third_Party/Lora/Core/lora.c **** { 392:./Middlewares/Third_Party/Lora/Core/lora.c **** IsTxConfirmed = DISABLE; 393:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Port = 224; 394:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 2; 395:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DownLinkCounter = 0; 396:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.LinkCheck = false; 397:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DemodMargin = 0; 398:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.NbGateways = 0; 399:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = true; 400:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 401:./Middlewares/Third_Party/Lora/Core/lora.c **** 402:./Middlewares/Third_Party/Lora/Core/lora.c **** MibRequestConfirm_t _mibReq; 403:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Type = MIB_ADR; 404:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Param.AdrEnable = true; 405:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &_mibReq ); 406:./Middlewares/Third_Party/Lora/Core/lora.c **** ARM GAS /tmp/ccY05lmV.s page 9 407:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_EU868 ) 408:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacTestSetDutyCycleOn( false ); 409:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 410:./Middlewares/Third_Party/Lora/Core/lora.c **** } 411:./Middlewares/Third_Party/Lora/Core/lora.c **** } 412:./Middlewares/Third_Party/Lora/Core/lora.c **** else 413:./Middlewares/Third_Party/Lora/Core/lora.c **** { 414:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = mcpsIndication->Buffer[0]; 415:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( ComplianceTest.State ) 416:./Middlewares/Third_Party/Lora/Core/lora.c **** { 417:./Middlewares/Third_Party/Lora/Core/lora.c **** case 0: // Check compliance test disable command (ii) 418:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DownLinkCounter = 0; 419:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = false; 420:./Middlewares/Third_Party/Lora/Core/lora.c **** 421:./Middlewares/Third_Party/Lora/Core/lora.c **** MibRequestConfirm_t _mibReq; 422:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Type = MIB_ADR; 423:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Param.AdrEnable = LoRaParamInit->AdrEnable; 424:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &_mibReq ); 425:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_EU868 ) 426:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacTestSetDutyCycleOn( LORAWAN_DUTYCYCLE_ON ); 427:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 428:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 429:./Middlewares/Third_Party/Lora/Core/lora.c **** case 1: // (iii, iv) 430:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 2; 431:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 432:./Middlewares/Third_Party/Lora/Core/lora.c **** case 2: // Enable confirmed messages (v) 433:./Middlewares/Third_Party/Lora/Core/lora.c **** IsTxConfirmed = ENABLE; 434:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 435:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 436:./Middlewares/Third_Party/Lora/Core/lora.c **** case 3: // Disable confirmed messages (vi) 437:./Middlewares/Third_Party/Lora/Core/lora.c **** IsTxConfirmed = DISABLE; 438:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 439:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 440:./Middlewares/Third_Party/Lora/Core/lora.c **** case 4: // (vii) 441:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = mcpsIndication->BufferSize; 442:./Middlewares/Third_Party/Lora/Core/lora.c **** 443:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[0] = 4; 444:./Middlewares/Third_Party/Lora/Core/lora.c **** for( uint8_t i = 1; i < AppData.BuffSize; i++ ) 445:./Middlewares/Third_Party/Lora/Core/lora.c **** { 446:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[i] = mcpsIndication->Buffer[i] + 1; 447:./Middlewares/Third_Party/Lora/Core/lora.c **** } 448:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 449:./Middlewares/Third_Party/Lora/Core/lora.c **** case 5: // (viii) 450:./Middlewares/Third_Party/Lora/Core/lora.c **** { 451:./Middlewares/Third_Party/Lora/Core/lora.c **** MlmeReq_t mlmeReq; 452:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Type = MLME_LINK_CHECK; 453:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 454:./Middlewares/Third_Party/Lora/Core/lora.c **** } 455:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 456:./Middlewares/Third_Party/Lora/Core/lora.c **** case 6: // (ix) 457:./Middlewares/Third_Party/Lora/Core/lora.c **** { 458:./Middlewares/Third_Party/Lora/Core/lora.c **** MlmeReq_t mlmeReq; 459:./Middlewares/Third_Party/Lora/Core/lora.c **** 460:./Middlewares/Third_Party/Lora/Core/lora.c **** // Disable TestMode and revert back to normal operation 461:./Middlewares/Third_Party/Lora/Core/lora.c **** 462:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DownLinkCounter = 0; 463:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = false; ARM GAS /tmp/ccY05lmV.s page 10 464:./Middlewares/Third_Party/Lora/Core/lora.c **** 465:./Middlewares/Third_Party/Lora/Core/lora.c **** MibRequestConfirm_t mibReq; 466:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_ADR; 467:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.AdrEnable = LoRaParamInit->AdrEnable; 468:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 469:./Middlewares/Third_Party/Lora/Core/lora.c **** 470:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Type = MLME_JOIN; 471:./Middlewares/Third_Party/Lora/Core/lora.c **** 472:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.DevEui = DevEui; 473:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppEui = AppEui; 474:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppKey = AppKey; 475:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.NbTrials = 3; 476:./Middlewares/Third_Party/Lora/Core/lora.c **** 477:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 478:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SLEEP; 479:./Middlewares/Third_Party/Lora/Core/lora.c **** } 480:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 481:./Middlewares/Third_Party/Lora/Core/lora.c **** case 7: // (x) 482:./Middlewares/Third_Party/Lora/Core/lora.c **** { 483:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mcpsIndication->BufferSize == 3 ) 484:./Middlewares/Third_Party/Lora/Core/lora.c **** { 485:./Middlewares/Third_Party/Lora/Core/lora.c **** MlmeReq_t mlmeReq; 486:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Type = MLME_TXCW; 487:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 488:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 489:./Middlewares/Third_Party/Lora/Core/lora.c **** } 490:./Middlewares/Third_Party/Lora/Core/lora.c **** else if( mcpsIndication->BufferSize == 7 ) 491:./Middlewares/Third_Party/Lora/Core/lora.c **** { 492:./Middlewares/Third_Party/Lora/Core/lora.c **** MlmeReq_t mlmeReq; 493:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Type = MLME_TXCW_1; 494:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 495:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] 496:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6]; 497:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 498:./Middlewares/Third_Party/Lora/Core/lora.c **** } 499:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 500:./Middlewares/Third_Party/Lora/Core/lora.c **** } 501:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 502:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 503:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 504:./Middlewares/Third_Party/Lora/Core/lora.c **** } 505:./Middlewares/Third_Party/Lora/Core/lora.c **** } 506:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 507:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 508:./Middlewares/Third_Party/Lora/Core/lora.c **** 509:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Port = mcpsIndication->Port; 510:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = mcpsIndication->BufferSize; 511:./Middlewares/Third_Party/Lora/Core/lora.c **** memcpy1( AppData.Buff, mcpsIndication->Buffer, AppData.BuffSize ); 512:./Middlewares/Third_Party/Lora/Core/lora.c **** 513:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMainCallbacks->LoraRxData( &AppData ); 514:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 515:./Middlewares/Third_Party/Lora/Core/lora.c **** } 516:./Middlewares/Third_Party/Lora/Core/lora.c **** } 517:./Middlewares/Third_Party/Lora/Core/lora.c **** } 518:./Middlewares/Third_Party/Lora/Core/lora.c **** 519:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 520:./Middlewares/Third_Party/Lora/Core/lora.c **** * \brief MLME-Confirm event function ARM GAS /tmp/ccY05lmV.s page 11 521:./Middlewares/Third_Party/Lora/Core/lora.c **** * 522:./Middlewares/Third_Party/Lora/Core/lora.c **** * \param [IN] MlmeConfirm - Pointer to the confirm structure, 523:./Middlewares/Third_Party/Lora/Core/lora.c **** * containing confirm attributes. 524:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 525:./Middlewares/Third_Party/Lora/Core/lora.c **** static void MlmeConfirm( MlmeConfirm_t *mlmeConfirm ) 526:./Middlewares/Third_Party/Lora/Core/lora.c **** { 54 .loc 1 526 0 55 .cfi_startproc 56 @ args = 0, pretend = 0, frame = 0 57 @ frame_needed = 0, uses_anonymous_args = 0 58 @ link register save eliminated. 59 .LVL1: 527:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( mlmeConfirm->MlmeRequest ) 60 .loc 1 527 0 61 0000 0378 ldrb r3, [r0] 62 0002 002B cmp r3, #0 63 0004 05D0 beq .L6 64 0006 012B cmp r3, #1 65 0008 0ED0 beq .L7 66 .L5: 528:./Middlewares/Third_Party/Lora/Core/lora.c **** { 529:./Middlewares/Third_Party/Lora/Core/lora.c **** case MLME_JOIN: 530:./Middlewares/Third_Party/Lora/Core/lora.c **** { 531:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mlmeConfirm->Status == LORAMAC_EVENT_INFO_STATUS_OK ) 532:./Middlewares/Third_Party/Lora/Core/lora.c **** { 533:./Middlewares/Third_Party/Lora/Core/lora.c **** // Status is OK, node has joined the network 534:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_JOINED; 535:./Middlewares/Third_Party/Lora/Core/lora.c **** } 536:./Middlewares/Third_Party/Lora/Core/lora.c **** else 537:./Middlewares/Third_Party/Lora/Core/lora.c **** { 538:./Middlewares/Third_Party/Lora/Core/lora.c **** // Join was not successful. Try to join again 539:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_JOIN; 540:./Middlewares/Third_Party/Lora/Core/lora.c **** } 541:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 542:./Middlewares/Third_Party/Lora/Core/lora.c **** } 543:./Middlewares/Third_Party/Lora/Core/lora.c **** case MLME_LINK_CHECK: 544:./Middlewares/Third_Party/Lora/Core/lora.c **** { 545:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mlmeConfirm->Status == LORAMAC_EVENT_INFO_STATUS_OK ) 546:./Middlewares/Third_Party/Lora/Core/lora.c **** { 547:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check DemodMargin 548:./Middlewares/Third_Party/Lora/Core/lora.c **** // Check NbGateways 549:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.Running == true ) 550:./Middlewares/Third_Party/Lora/Core/lora.c **** { 551:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.LinkCheck = true; 552:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DemodMargin = mlmeConfirm->DemodMargin; 553:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.NbGateways = mlmeConfirm->NbGateways; 554:./Middlewares/Third_Party/Lora/Core/lora.c **** } 555:./Middlewares/Third_Party/Lora/Core/lora.c **** } 556:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 557:./Middlewares/Third_Party/Lora/Core/lora.c **** } 558:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 559:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 560:./Middlewares/Third_Party/Lora/Core/lora.c **** } 561:./Middlewares/Third_Party/Lora/Core/lora.c **** NextTx = true; 67 .loc 1 561 0 68 000a 0F4B ldr r3, .L9 69 000c 0122 movs r2, #1 ARM GAS /tmp/ccY05lmV.s page 12 70 000e 1A70 strb r2, [r3] 562:./Middlewares/Third_Party/Lora/Core/lora.c **** } 71 .loc 1 562 0 72 @ sp needed 73 0010 7047 bx lr 74 .L6: 531:./Middlewares/Third_Party/Lora/Core/lora.c **** { 75 .loc 1 531 0 76 0012 4378 ldrb r3, [r0, #1] 77 0014 002B cmp r3, #0 78 0016 03D1 bne .L8 534:./Middlewares/Third_Party/Lora/Core/lora.c **** } 79 .loc 1 534 0 80 0018 0C4B ldr r3, .L9+4 81 001a 0222 movs r2, #2 82 001c 1A70 strb r2, [r3] 83 001e F4E7 b .L5 84 .L8: 539:./Middlewares/Third_Party/Lora/Core/lora.c **** } 85 .loc 1 539 0 86 0020 0A4B ldr r3, .L9+4 87 0022 0122 movs r2, #1 88 0024 1A70 strb r2, [r3] 89 0026 F0E7 b .L5 90 .L7: 545:./Middlewares/Third_Party/Lora/Core/lora.c **** { 91 .loc 1 545 0 92 0028 4378 ldrb r3, [r0, #1] 93 002a 002B cmp r3, #0 94 002c EDD1 bne .L5 549:./Middlewares/Third_Party/Lora/Core/lora.c **** { 95 .loc 1 549 0 96 002e 084B ldr r3, .L9+8 97 0030 1B78 ldrb r3, [r3] 98 0032 002B cmp r3, #0 99 0034 E9D0 beq .L5 551:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DemodMargin = mlmeConfirm->DemodMargin; 100 .loc 1 551 0 101 0036 064B ldr r3, .L9+8 102 0038 0122 movs r2, #1 103 003a 9A73 strb r2, [r3, #14] 552:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.NbGateways = mlmeConfirm->NbGateways; 104 .loc 1 552 0 105 003c 027A ldrb r2, [r0, #8] 106 003e DA73 strb r2, [r3, #15] 553:./Middlewares/Third_Party/Lora/Core/lora.c **** } 107 .loc 1 553 0 108 0040 427A ldrb r2, [r0, #9] 109 0042 1A74 strb r2, [r3, #16] 110 0044 E1E7 b .L5 111 .L10: 112 0046 C046 .align 2 113 .L9: 114 0048 00000000 .word .LANCHOR0 115 004c 00000000 .word .LANCHOR1 116 0050 00000000 .word .LANCHOR2 117 .cfi_endproc ARM GAS /tmp/ccY05lmV.s page 13 118 .LFE102: 120 .section .text.McpsIndication,"ax",%progbits 121 .align 1 122 .syntax unified 123 .code 16 124 .thumb_func 125 .fpu softvfp 127 McpsIndication: 128 .LFB101: 335:./Middlewares/Third_Party/Lora/Core/lora.c **** if( mcpsIndication->Status != LORAMAC_EVENT_INFO_STATUS_OK ) 129 .loc 1 335 0 130 .cfi_startproc 131 @ args = 0, pretend = 0, frame = 32 132 @ frame_needed = 0, uses_anonymous_args = 0 133 .LVL2: 134 0000 10B5 push {r4, lr} 135 .LCFI0: 136 .cfi_def_cfa_offset 8 137 .cfi_offset 4, -8 138 .cfi_offset 14, -4 139 0002 88B0 sub sp, sp, #32 140 .LCFI1: 141 .cfi_def_cfa_offset 40 336:./Middlewares/Third_Party/Lora/Core/lora.c **** { 142 .loc 1 336 0 143 0004 4378 ldrb r3, [r0, #1] 144 0006 002B cmp r3, #0 145 0008 00D0 beq .LCB99 146 000a E1E0 b .L11 @long jump 147 .LCB99: 373:./Middlewares/Third_Party/Lora/Core/lora.c **** { 148 .loc 1 373 0 149 000c 714B ldr r3, .L34 150 000e 1B78 ldrb r3, [r3] 151 0010 002B cmp r3, #0 152 0012 03D0 beq .L13 375:./Middlewares/Third_Party/Lora/Core/lora.c **** } 153 .loc 1 375 0 154 0014 6F49 ldr r1, .L34 155 0016 8A89 ldrh r2, [r1, #12] 156 0018 0132 adds r2, r2, #1 157 001a 8A81 strh r2, [r1, #12] 158 .L13: 378:./Middlewares/Third_Party/Lora/Core/lora.c **** { 159 .loc 1 378 0 160 001c 427B ldrb r2, [r0, #13] 161 001e 002A cmp r2, #0 162 0020 00D1 bne .LCB112 163 0022 D5E0 b .L11 @long jump 164 .LCB112: 380:./Middlewares/Third_Party/Lora/Core/lora.c **** { 165 .loc 1 380 0 166 0024 C278 ldrb r2, [r0, #3] 167 0026 E02A cmp r2, #224 168 0028 00D0 beq .LCB115 169 002a C3E0 b .L31 @long jump 170 .LCB115: ARM GAS /tmp/ccY05lmV.s page 14 383:./Middlewares/Third_Party/Lora/Core/lora.c **** { 171 .loc 1 383 0 172 002c 002B cmp r3, #0 173 002e 2DD1 bne .L16 386:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[0] == 0x01 ) && 174 .loc 1 386 0 175 0030 037B ldrb r3, [r0, #12] 176 0032 042B cmp r3, #4 177 0034 00D0 beq .LCB120 178 0036 CBE0 b .L11 @long jump 179 .LCB120: 387:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[1] == 0x01 ) && 180 .loc 1 387 0 discriminator 1 181 0038 8368 ldr r3, [r0, #8] 182 003a 1A78 ldrb r2, [r3] 386:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[0] == 0x01 ) && 183 .loc 1 386 0 discriminator 1 184 003c 012A cmp r2, #1 185 003e 00D0 beq .LCB124 186 0040 C6E0 b .L11 @long jump 187 .LCB124: 388:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[2] == 0x01 ) && 188 .loc 1 388 0 189 0042 5A78 ldrb r2, [r3, #1] 387:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[1] == 0x01 ) && 190 .loc 1 387 0 191 0044 012A cmp r2, #1 192 0046 00D0 beq .LCB127 193 0048 C2E0 b .L11 @long jump 194 .LCB127: 389:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[3] == 0x01 ) ) 195 .loc 1 389 0 196 004a 9A78 ldrb r2, [r3, #2] 388:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[2] == 0x01 ) && 197 .loc 1 388 0 198 004c 012A cmp r2, #1 199 004e 00D0 beq .LCB130 200 0050 BEE0 b .L11 @long jump 201 .LCB130: 390:./Middlewares/Third_Party/Lora/Core/lora.c **** { 202 .loc 1 390 0 203 0052 DB78 ldrb r3, [r3, #3] 389:./Middlewares/Third_Party/Lora/Core/lora.c **** ( mcpsIndication->Buffer[3] == 0x01 ) ) 204 .loc 1 389 0 205 0054 012B cmp r3, #1 206 0056 00D0 beq .LCB133 207 0058 BAE0 b .L11 @long jump 208 .LCB133: 209 .LBB2: 392:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Port = 224; 210 .loc 1 392 0 211 005a 0024 movs r4, #0 212 005c 5E4B ldr r3, .L34+4 213 005e 1C70 strb r4, [r3] 393:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 2; 214 .loc 1 393 0 215 0060 5E4B ldr r3, .L34+8 ARM GAS /tmp/ccY05lmV.s page 15 216 0062 DF32 adds r2, r2, #223 217 0064 5A71 strb r2, [r3, #5] 394:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DownLinkCounter = 0; 218 .loc 1 394 0 219 0066 0221 movs r1, #2 220 0068 1971 strb r1, [r3, #4] 395:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.LinkCheck = false; 221 .loc 1 395 0 222 006a 5A4B ldr r3, .L34 223 006c 9C81 strh r4, [r3, #12] 396:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.DemodMargin = 0; 224 .loc 1 396 0 225 006e 9C73 strb r4, [r3, #14] 397:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.NbGateways = 0; 226 .loc 1 397 0 227 0070 DC73 strb r4, [r3, #15] 398:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = true; 228 .loc 1 398 0 229 0072 1C74 strb r4, [r3, #16] 399:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 230 .loc 1 399 0 231 0074 DF3A subs r2, r2, #223 232 0076 1A70 strb r2, [r3] 400:./Middlewares/Third_Party/Lora/Core/lora.c **** 233 .loc 1 400 0 234 0078 5A70 strb r2, [r3, #1] 403:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Param.AdrEnable = true; 235 .loc 1 403 0 236 007a 03A8 add r0, sp, #12 237 .LVL3: 238 007c 0170 strb r1, [r0] 404:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &_mibReq ); 239 .loc 1 404 0 240 007e 0271 strb r2, [r0, #4] 405:./Middlewares/Third_Party/Lora/Core/lora.c **** 241 .loc 1 405 0 242 0080 FFF7FEFF bl LoRaMacMibSetRequestConfirm 243 .LVL4: 408:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 244 .loc 1 408 0 245 0084 2000 movs r0, r4 246 0086 FFF7FEFF bl LoRaMacTestSetDutyCycleOn 247 .LVL5: 248 008a A1E0 b .L11 249 .LVL6: 250 .L16: 251 .LBE2: 414:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( ComplianceTest.State ) 252 .loc 1 414 0 253 008c 8268 ldr r2, [r0, #8] 254 008e 1378 ldrb r3, [r2] 255 0090 5049 ldr r1, .L34 256 0092 4B70 strb r3, [r1, #1] 415:./Middlewares/Third_Party/Lora/Core/lora.c **** { 257 .loc 1 415 0 258 0094 072B cmp r3, #7 259 0096 00D9 bls .LCB171 ARM GAS /tmp/ccY05lmV.s page 16 260 0098 9AE0 b .L11 @long jump 261 .LCB171: 262 009a 9B00 lsls r3, r3, #2 263 009c 5049 ldr r1, .L34+12 264 009e CB58 ldr r3, [r1, r3] 265 00a0 9F46 mov pc, r3 266 .section .rodata.McpsIndication,"a",%progbits 267 .align 2 268 .L19: 269 0000 A2000000 .word .L18 270 0004 C4000000 .word .L20 271 0008 CC000000 .word .L21 272 000c D8000000 .word .L22 273 0010 E6000000 .word .L23 274 0014 10010000 .word .L24 275 0018 1C010000 .word .L25 276 001c 5A010000 .word .L26 277 .section .text.McpsIndication 278 .L18: 279 .LBB3: 418:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = false; 280 .loc 1 418 0 281 00a2 4C4B ldr r3, .L34 282 00a4 0022 movs r2, #0 283 00a6 9A81 strh r2, [r3, #12] 419:./Middlewares/Third_Party/Lora/Core/lora.c **** 284 .loc 1 419 0 285 00a8 1A70 strb r2, [r3] 422:./Middlewares/Third_Party/Lora/Core/lora.c **** _mibReq.Param.AdrEnable = LoRaParamInit->AdrEnable; 286 .loc 1 422 0 287 00aa 03A8 add r0, sp, #12 288 .LVL7: 289 00ac 0223 movs r3, #2 290 00ae 0370 strb r3, [r0] 423:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &_mibReq ); 291 .loc 1 423 0 292 00b0 4C4B ldr r3, .L34+16 293 00b2 1B68 ldr r3, [r3] 294 00b4 5B7A ldrb r3, [r3, #9] 295 00b6 0371 strb r3, [r0, #4] 424:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_EU868 ) 296 .loc 1 424 0 297 00b8 FFF7FEFF bl LoRaMacMibSetRequestConfirm 298 .LVL8: 426:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 299 .loc 1 426 0 300 00bc 0120 movs r0, #1 301 00be FFF7FEFF bl LoRaMacTestSetDutyCycleOn 302 .LVL9: 428:./Middlewares/Third_Party/Lora/Core/lora.c **** case 1: // (iii, iv) 303 .loc 1 428 0 304 00c2 85E0 b .L11 305 .LVL10: 306 .L20: 430:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 307 .loc 1 430 0 308 00c4 454B ldr r3, .L34+8 ARM GAS /tmp/ccY05lmV.s page 17 309 00c6 0222 movs r2, #2 310 00c8 1A71 strb r2, [r3, #4] 431:./Middlewares/Third_Party/Lora/Core/lora.c **** case 2: // Enable confirmed messages (v) 311 .loc 1 431 0 312 00ca 81E0 b .L11 313 .L21: 433:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 314 .loc 1 433 0 315 00cc 0123 movs r3, #1 316 00ce 424A ldr r2, .L34+4 317 00d0 1370 strb r3, [r2] 434:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 318 .loc 1 434 0 319 00d2 404A ldr r2, .L34 320 00d4 5370 strb r3, [r2, #1] 435:./Middlewares/Third_Party/Lora/Core/lora.c **** case 3: // Disable confirmed messages (vi) 321 .loc 1 435 0 322 00d6 7BE0 b .L11 323 .L22: 437:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 324 .loc 1 437 0 325 00d8 3F4B ldr r3, .L34+4 326 00da 0022 movs r2, #0 327 00dc 1A70 strb r2, [r3] 438:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 328 .loc 1 438 0 329 00de 3D4B ldr r3, .L34 330 00e0 0132 adds r2, r2, #1 331 00e2 5A70 strb r2, [r3, #1] 439:./Middlewares/Third_Party/Lora/Core/lora.c **** case 4: // (vii) 332 .loc 1 439 0 333 00e4 74E0 b .L11 334 .L23: 441:./Middlewares/Third_Party/Lora/Core/lora.c **** 335 .loc 1 441 0 336 00e6 027B ldrb r2, [r0, #12] 337 00e8 3C4B ldr r3, .L34+8 338 00ea 1A71 strb r2, [r3, #4] 443:./Middlewares/Third_Party/Lora/Core/lora.c **** for( uint8_t i = 1; i < AppData.BuffSize; i++ ) 339 .loc 1 443 0 340 00ec 1B68 ldr r3, [r3] 341 00ee 0422 movs r2, #4 342 00f0 1A70 strb r2, [r3] 343 .LVL11: 344 .LBB4: 444:./Middlewares/Third_Party/Lora/Core/lora.c **** { 345 .loc 1 444 0 346 00f2 0123 movs r3, #1 347 00f4 07E0 b .L27 348 .LVL12: 349 .L28: 446:./Middlewares/Third_Party/Lora/Core/lora.c **** } 350 .loc 1 446 0 discriminator 3 351 00f6 8268 ldr r2, [r0, #8] 352 00f8 D25C ldrb r2, [r2, r3] 353 00fa 3849 ldr r1, .L34+8 354 00fc 0968 ldr r1, [r1] ARM GAS /tmp/ccY05lmV.s page 18 355 00fe 0132 adds r2, r2, #1 356 0100 CA54 strb r2, [r1, r3] 444:./Middlewares/Third_Party/Lora/Core/lora.c **** { 357 .loc 1 444 0 discriminator 3 358 0102 0133 adds r3, r3, #1 359 .LVL13: 360 0104 DBB2 uxtb r3, r3 361 .LVL14: 362 .L27: 444:./Middlewares/Third_Party/Lora/Core/lora.c **** { 363 .loc 1 444 0 is_stmt 0 discriminator 1 364 0106 354A ldr r2, .L34+8 365 0108 1279 ldrb r2, [r2, #4] 366 010a 9A42 cmp r2, r3 367 010c F3D8 bhi .L28 368 010e 5FE0 b .L11 369 .LVL15: 370 .L24: 371 .LBE4: 372 .LBB5: 452:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 373 .loc 1 452 0 is_stmt 1 discriminator 4 374 0110 03A8 add r0, sp, #12 375 .LVL16: 376 0112 0123 movs r3, #1 377 0114 0370 strb r3, [r0] 453:./Middlewares/Third_Party/Lora/Core/lora.c **** } 378 .loc 1 453 0 discriminator 4 379 0116 FFF7FEFF bl LoRaMacMlmeRequest 380 .LVL17: 381 .LBE5: 455:./Middlewares/Third_Party/Lora/Core/lora.c **** case 6: // (ix) 382 .loc 1 455 0 discriminator 4 383 011a 59E0 b .L11 384 .LVL18: 385 .L25: 386 .LBB6: 462:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.Running = false; 387 .loc 1 462 0 discriminator 5 388 011c 2D4B ldr r3, .L34 389 011e 0022 movs r2, #0 390 0120 9A81 strh r2, [r3, #12] 463:./Middlewares/Third_Party/Lora/Core/lora.c **** 391 .loc 1 463 0 discriminator 5 392 0122 1A70 strb r2, [r3] 466:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.AdrEnable = LoRaParamInit->AdrEnable; 393 .loc 1 466 0 discriminator 5 394 0124 0223 movs r3, #2 395 0126 6A46 mov r2, sp 396 0128 1370 strb r3, [r2] 467:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 397 .loc 1 467 0 discriminator 5 398 012a 2E4B ldr r3, .L34+16 399 012c 1B68 ldr r3, [r3] 400 012e 5B7A ldrb r3, [r3, #9] 401 0130 1371 strb r3, [r2, #4] 468:./Middlewares/Third_Party/Lora/Core/lora.c **** ARM GAS /tmp/ccY05lmV.s page 19 402 .loc 1 468 0 discriminator 5 403 0132 6846 mov r0, sp 404 .LVL19: 405 0134 FFF7FEFF bl LoRaMacMibSetRequestConfirm 406 .LVL20: 470:./Middlewares/Third_Party/Lora/Core/lora.c **** 407 .loc 1 470 0 discriminator 5 408 0138 03A8 add r0, sp, #12 409 013a 0023 movs r3, #0 410 013c 0370 strb r3, [r0] 472:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppEui = AppEui; 411 .loc 1 472 0 discriminator 5 412 013e 2A4B ldr r3, .L34+20 413 0140 4360 str r3, [r0, #4] 473:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppKey = AppKey; 414 .loc 1 473 0 discriminator 5 415 0142 2A4B ldr r3, .L34+24 416 0144 8360 str r3, [r0, #8] 474:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.NbTrials = 3; 417 .loc 1 474 0 discriminator 5 418 0146 2A4B ldr r3, .L34+28 419 0148 C360 str r3, [r0, #12] 475:./Middlewares/Third_Party/Lora/Core/lora.c **** 420 .loc 1 475 0 discriminator 5 421 014a 0323 movs r3, #3 422 014c 0374 strb r3, [r0, #16] 477:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SLEEP; 423 .loc 1 477 0 discriminator 5 424 014e FFF7FEFF bl LoRaMacMlmeRequest 425 .LVL21: 478:./Middlewares/Third_Party/Lora/Core/lora.c **** } 426 .loc 1 478 0 discriminator 5 427 0152 284B ldr r3, .L34+32 428 0154 0522 movs r2, #5 429 0156 1A70 strb r2, [r3] 430 .LBE6: 480:./Middlewares/Third_Party/Lora/Core/lora.c **** case 7: // (x) 431 .loc 1 480 0 discriminator 5 432 0158 3AE0 b .L11 433 .LVL22: 434 .L26: 483:./Middlewares/Third_Party/Lora/Core/lora.c **** { 435 .loc 1 483 0 436 015a 037B ldrb r3, [r0, #12] 437 015c 032B cmp r3, #3 438 015e 05D0 beq .L32 490:./Middlewares/Third_Party/Lora/Core/lora.c **** { 439 .loc 1 490 0 440 0160 072B cmp r3, #7 441 0162 0ED0 beq .L33 442 .LVL23: 443 .L30: 499:./Middlewares/Third_Party/Lora/Core/lora.c **** } 444 .loc 1 499 0 445 0164 1B4B ldr r3, .L34 446 0166 0122 movs r2, #1 447 0168 5A70 strb r2, [r3, #1] ARM GAS /tmp/ccY05lmV.s page 20 501:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 448 .loc 1 501 0 449 016a 31E0 b .L11 450 .LVL24: 451 .L32: 452 .LBB7: 486:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 453 .loc 1 486 0 454 016c 03A8 add r0, sp, #12 455 .LVL25: 456 016e 013B subs r3, r3, #1 457 0170 0370 strb r3, [r0] 487:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 458 .loc 1 487 0 459 0172 5178 ldrb r1, [r2, #1] 460 0174 0902 lsls r1, r1, #8 461 0176 9378 ldrb r3, [r2, #2] 462 0178 0B43 orrs r3, r1 463 017a 8380 strh r3, [r0, #4] 488:./Middlewares/Third_Party/Lora/Core/lora.c **** } 464 .loc 1 488 0 465 017c FFF7FEFF bl LoRaMacMlmeRequest 466 .LVL26: 467 .LBE7: 468 0180 F0E7 b .L30 469 .LVL27: 470 .L33: 471 .LBB8: 493:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 472 .loc 1 493 0 473 0182 03A9 add r1, sp, #12 474 0184 043B subs r3, r3, #4 475 0186 0B70 strb r3, [r1] 494:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] 476 .loc 1 494 0 477 0188 5478 ldrb r4, [r2, #1] 478 018a 2402 lsls r4, r4, #8 479 018c 9378 ldrb r3, [r2, #2] 480 018e 2343 orrs r3, r4 481 0190 8B80 strh r3, [r1, #4] 495:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6]; 482 .loc 1 495 0 483 0192 D378 ldrb r3, [r2, #3] 484 0194 1B04 lsls r3, r3, #16 485 0196 1479 ldrb r4, [r2, #4] 486 0198 2402 lsls r4, r4, #8 487 019a 2343 orrs r3, r4 488 019c 5279 ldrb r2, [r2, #5] 489 019e 1343 orrs r3, r2 490 01a0 6422 movs r2, #100 491 01a2 5343 muls r3, r2 492 01a4 0593 str r3, [sp, #20] 496:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 493 .loc 1 496 0 494 01a6 8368 ldr r3, [r0, #8] 495 01a8 9B79 ldrb r3, [r3, #6] 496 01aa 0B73 strb r3, [r1, #12] ARM GAS /tmp/ccY05lmV.s page 21 497:./Middlewares/Third_Party/Lora/Core/lora.c **** } 497 .loc 1 497 0 498 01ac 0800 movs r0, r1 499 .LVL28: 500 01ae FFF7FEFF bl LoRaMacMlmeRequest 501 .LVL29: 502 01b2 D7E7 b .L30 503 .LVL30: 504 .L31: 505 .LBE8: 506 .LBE3: 509:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = mcpsIndication->BufferSize; 507 .loc 1 509 0 508 01b4 094C ldr r4, .L34+8 509 01b6 6271 strb r2, [r4, #5] 510:./Middlewares/Third_Party/Lora/Core/lora.c **** memcpy1( AppData.Buff, mcpsIndication->Buffer, AppData.BuffSize ); 510 .loc 1 510 0 511 01b8 027B ldrb r2, [r0, #12] 512 01ba 2271 strb r2, [r4, #4] 511:./Middlewares/Third_Party/Lora/Core/lora.c **** 513 .loc 1 511 0 514 01bc 8168 ldr r1, [r0, #8] 515 01be 92B2 uxth r2, r2 516 01c0 2068 ldr r0, [r4] 517 .LVL31: 518 01c2 FFF7FEFF bl memcpy1 519 .LVL32: 513:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 520 .loc 1 513 0 521 01c6 0C4B ldr r3, .L34+36 522 01c8 1B68 ldr r3, [r3] 523 01ca 1B69 ldr r3, [r3, #16] 524 01cc 2000 movs r0, r4 525 01ce 9847 blx r3 526 .LVL33: 527 .L11: 517:./Middlewares/Third_Party/Lora/Core/lora.c **** 528 .loc 1 517 0 529 01d0 08B0 add sp, sp, #32 530 @ sp needed 531 01d2 10BD pop {r4, pc} 532 .L35: 533 .align 2 534 .L34: 535 01d4 00000000 .word .LANCHOR2 536 01d8 00000000 .word .LANCHOR3 537 01dc 00000000 .word .LANCHOR4 538 01e0 00000000 .word .L19 539 01e4 00000000 .word .LANCHOR5 540 01e8 00000000 .word .LANCHOR6 541 01ec 00000000 .word .LANCHOR7 542 01f0 00000000 .word .LANCHOR8 543 01f4 00000000 .word .LANCHOR1 544 01f8 00000000 .word .LANCHOR9 545 .cfi_endproc 546 .LFE101: 548 .section .text.OnSendEvent,"ax",%progbits ARM GAS /tmp/ccY05lmV.s page 22 549 .align 1 550 .global OnSendEvent 551 .syntax unified 552 .code 16 553 .thumb_func 554 .fpu softvfp 556 OnSendEvent: 557 .LFB98: 262:./Middlewares/Third_Party/Lora/Core/lora.c **** MibRequestConfirm_t _mibReq; 558 .loc 1 262 0 559 .cfi_startproc 560 @ args = 0, pretend = 0, frame = 16 561 @ frame_needed = 0, uses_anonymous_args = 0 562 0000 00B5 push {lr} 563 .LCFI2: 564 .cfi_def_cfa_offset 4 565 .cfi_offset 14, -4 566 0002 85B0 sub sp, sp, #20 567 .LCFI3: 568 .cfi_def_cfa_offset 24 266:./Middlewares/Third_Party/Lora/Core/lora.c **** status = LoRaMacMibGetRequestConfirm( &_mibReq ); 569 .loc 1 266 0 570 0004 01A8 add r0, sp, #4 571 0006 0123 movs r3, #1 572 0008 0370 strb r3, [r0] 267:./Middlewares/Third_Party/Lora/Core/lora.c **** 573 .loc 1 267 0 574 000a FFF7FEFF bl LoRaMacMibGetRequestConfirm 575 .LVL34: 269:./Middlewares/Third_Party/Lora/Core/lora.c **** { 576 .loc 1 269 0 577 000e 0028 cmp r0, #0 578 0010 06D1 bne .L36 271:./Middlewares/Third_Party/Lora/Core/lora.c **** { 579 .loc 1 271 0 580 0012 01AB add r3, sp, #4 581 0014 1B79 ldrb r3, [r3, #4] 582 0016 002B cmp r3, #0 583 0018 04D1 bne .L39 278:./Middlewares/Third_Party/Lora/Core/lora.c **** } 584 .loc 1 278 0 585 001a 064B ldr r3, .L40 586 001c 0122 movs r2, #1 587 001e 1A70 strb r2, [r3] 588 .L36: 281:./Middlewares/Third_Party/Lora/Core/lora.c **** /*! 589 .loc 1 281 0 590 0020 05B0 add sp, sp, #20 591 @ sp needed 592 0022 00BD pop {pc} 593 .L39: 273:./Middlewares/Third_Party/Lora/Core/lora.c **** NextTx = true; 594 .loc 1 273 0 595 0024 034B ldr r3, .L40 596 0026 0322 movs r2, #3 597 0028 1A70 strb r2, [r3] 274:./Middlewares/Third_Party/Lora/Core/lora.c **** } ARM GAS /tmp/ccY05lmV.s page 23 598 .loc 1 274 0 599 002a 034B ldr r3, .L40+4 600 002c 023A subs r2, r2, #2 601 002e 1A70 strb r2, [r3] 602 0030 F6E7 b .L36 603 .L41: 604 0032 C046 .align 2 605 .L40: 606 0034 00000000 .word .LANCHOR1 607 0038 00000000 .word .LANCHOR0 608 .cfi_endproc 609 .LFE98: 611 .section .text.OnTxNextPacketTimerEvent,"ax",%progbits 612 .align 1 613 .syntax unified 614 .code 16 615 .thumb_func 616 .fpu softvfp 618 OnTxNextPacketTimerEvent: 619 .LFB99: 286:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStop( &TxNextPacketTimer ); 620 .loc 1 286 0 621 .cfi_startproc 622 @ args = 0, pretend = 0, frame = 0 623 @ frame_needed = 0, uses_anonymous_args = 0 624 0000 10B5 push {r4, lr} 625 .LCFI4: 626 .cfi_def_cfa_offset 8 627 .cfi_offset 4, -8 628 .cfi_offset 14, -4 287:./Middlewares/Third_Party/Lora/Core/lora.c **** OnSendEvent(); 629 .loc 1 287 0 630 0002 0348 ldr r0, .L43 631 0004 FFF7FEFF bl TimerStop 632 .LVL35: 288:./Middlewares/Third_Party/Lora/Core/lora.c **** } 633 .loc 1 288 0 634 0008 FFF7FEFF bl OnSendEvent 635 .LVL36: 289:./Middlewares/Third_Party/Lora/Core/lora.c **** 636 .loc 1 289 0 637 @ sp needed 638 000c 10BD pop {r4, pc} 639 .L44: 640 000e C046 .align 2 641 .L43: 642 0010 00000000 .word .LANCHOR10 643 .cfi_endproc 644 .LFE99: 646 .section .text.lora_Init,"ax",%progbits 647 .align 1 648 .global lora_Init 649 .syntax unified 650 .code 16 651 .thumb_func 652 .fpu softvfp 654 lora_Init: ARM GAS /tmp/ccY05lmV.s page 24 655 .LFB103: 563:./Middlewares/Third_Party/Lora/Core/lora.c **** /** 564:./Middlewares/Third_Party/Lora/Core/lora.c **** * lora Init 565:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 566:./Middlewares/Third_Party/Lora/Core/lora.c **** void lora_Init (LoRaMainCallback_t *callbacks, LoRaParam_t* LoRaParam ) 567:./Middlewares/Third_Party/Lora/Core/lora.c **** { 656 .loc 1 567 0 657 .cfi_startproc 658 @ args = 0, pretend = 0, frame = 0 659 @ frame_needed = 0, uses_anonymous_args = 0 660 .LVL37: 661 0000 10B5 push {r4, lr} 662 .LCFI5: 663 .cfi_def_cfa_offset 8 664 .cfi_offset 4, -8 665 .cfi_offset 14, -4 568:./Middlewares/Third_Party/Lora/Core/lora.c **** /* init the DeviceState*/ 569:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState= DEVICE_STATE_INIT; 666 .loc 1 569 0 667 0002 224B ldr r3, .L52 668 0004 0022 movs r2, #0 669 0006 1A70 strb r2, [r3] 570:./Middlewares/Third_Party/Lora/Core/lora.c **** 571:./Middlewares/Third_Party/Lora/Core/lora.c **** /* init the Tx Duty Cycle*/ 572:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaParamInit = LoRaParam; 670 .loc 1 572 0 671 0008 214B ldr r3, .L52+4 672 000a 1960 str r1, [r3] 573:./Middlewares/Third_Party/Lora/Core/lora.c **** 574:./Middlewares/Third_Party/Lora/Core/lora.c **** /* init the main call backs*/ 575:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMainCallbacks = callbacks; 673 .loc 1 575 0 674 000c 214B ldr r3, .L52+8 675 000e 1860 str r0, [r3] 576:./Middlewares/Third_Party/Lora/Core/lora.c **** 577:./Middlewares/Third_Party/Lora/Core/lora.c **** #if (STATIC_DEVICE_EUI != 1) 578:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMainCallbacks->BoardGetUniqueId( DevEui ); 676 .loc 1 578 0 677 0010 4368 ldr r3, [r0, #4] 678 0012 214C ldr r4, .L52+12 679 0014 2000 movs r0, r4 680 .LVL38: 681 0016 9847 blx r3 682 .LVL39: 579:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 580:./Middlewares/Third_Party/Lora/Core/lora.c **** 581:./Middlewares/Third_Party/Lora/Core/lora.c **** #if( OVER_THE_AIR_ACTIVATION != 0 ) 582:./Middlewares/Third_Party/Lora/Core/lora.c **** 583:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("OTAA\n\r"); 683 .loc 1 583 0 684 0018 2048 ldr r0, .L52+16 685 001a FFF7FEFF bl vcom_Send 686 .LVL40: 584:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("DevEui= %02X", DevEui[0]) ;for(int i=1; i<8 ; i++) {PRINTF("-%02X", DevEui[i]); }; PRINTF 687 .loc 1 584 0 688 001e 2178 ldrb r1, [r4] 689 0020 1F48 ldr r0, .L52+20 ARM GAS /tmp/ccY05lmV.s page 25 690 0022 FFF7FEFF bl vcom_Send 691 .LVL41: 692 .LBB9: 693 0026 0124 movs r4, #1 694 0028 05E0 b .L46 695 .LVL42: 696 .L47: 697 .loc 1 584 0 is_stmt 0 discriminator 3 698 002a 1B4B ldr r3, .L52+12 699 002c 195D ldrb r1, [r3, r4] 700 002e 1D48 ldr r0, .L52+24 701 0030 FFF7FEFF bl vcom_Send 702 .LVL43: 703 0034 0134 adds r4, r4, #1 704 .LVL44: 705 .L46: 706 .loc 1 584 0 discriminator 1 707 0036 072C cmp r4, #7 708 0038 F7DD ble .L47 709 .LBE9: 710 .loc 1 584 0 discriminator 4 711 003a 1B48 ldr r0, .L52+28 712 003c FFF7FEFF bl vcom_Send 713 .LVL45: 585:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("AppEui= %02X", AppEui[0]) ;for(int i=1; i<8 ; i++) {PRINTF("-%02X", AppEui[i]); }; PRINTF 714 .loc 1 585 0 is_stmt 1 discriminator 4 715 0040 1A4B ldr r3, .L52+32 716 0042 1978 ldrb r1, [r3] 717 0044 1A48 ldr r0, .L52+36 718 0046 FFF7FEFF bl vcom_Send 719 .LVL46: 720 .LBB10: 721 004a 0124 movs r4, #1 722 .LVL47: 723 004c 05E0 b .L48 724 .LVL48: 725 .L49: 726 .loc 1 585 0 is_stmt 0 discriminator 3 727 004e 174B ldr r3, .L52+32 728 0050 195D ldrb r1, [r3, r4] 729 0052 1448 ldr r0, .L52+24 730 0054 FFF7FEFF bl vcom_Send 731 .LVL49: 732 0058 0134 adds r4, r4, #1 733 .LVL50: 734 .L48: 735 .loc 1 585 0 discriminator 1 736 005a 072C cmp r4, #7 737 005c F7DD ble .L49 738 .LBE10: 739 .loc 1 585 0 discriminator 4 740 005e 1248 ldr r0, .L52+28 741 0060 FFF7FEFF bl vcom_Send 742 .LVL51: 586:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("AppKey= %02X", AppKey[0]) ;for(int i=1; i<16; i++) {PRINTF(" %02X", AppKey[i]); }; PRINTF 743 .loc 1 586 0 is_stmt 1 discriminator 4 744 0064 134B ldr r3, .L52+40 ARM GAS /tmp/ccY05lmV.s page 26 745 0066 1978 ldrb r1, [r3] 746 0068 1348 ldr r0, .L52+44 747 006a FFF7FEFF bl vcom_Send 748 .LVL52: 749 .LBB11: 750 006e 0124 movs r4, #1 751 .LVL53: 752 0070 05E0 b .L50 753 .LVL54: 754 .L51: 755 .loc 1 586 0 is_stmt 0 discriminator 3 756 0072 104B ldr r3, .L52+40 757 0074 195D ldrb r1, [r3, r4] 758 0076 1148 ldr r0, .L52+48 759 0078 FFF7FEFF bl vcom_Send 760 .LVL55: 761 007c 0134 adds r4, r4, #1 762 .LVL56: 763 .L50: 764 .loc 1 586 0 discriminator 1 765 007e 0F2C cmp r4, #15 766 0080 F7DD ble .L51 767 .LBE11: 768 .loc 1 586 0 discriminator 4 769 0082 0F48 ldr r0, .L52+52 770 0084 FFF7FEFF bl vcom_Send 771 .LVL57: 587:./Middlewares/Third_Party/Lora/Core/lora.c **** #else 588:./Middlewares/Third_Party/Lora/Core/lora.c **** 589:./Middlewares/Third_Party/Lora/Core/lora.c **** #if (STATIC_DEVICE_ADDRESS != 1) 590:./Middlewares/Third_Party/Lora/Core/lora.c **** // Random seed initialization 591:./Middlewares/Third_Party/Lora/Core/lora.c **** srand1( LoRaMainCallbacks->BoardGetRandomSeed( ) ); 592:./Middlewares/Third_Party/Lora/Core/lora.c **** // Choose a random device address 593:./Middlewares/Third_Party/Lora/Core/lora.c **** DevAddr = randr( 0, 0x01FFFFFF ); 594:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 595:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("ABP\n\r"); 596:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("DevEui= %02X", DevEui[0]) ;for(int i=1; i<8 ; i++) {PRINTF("-%02X", DevEui[i]); }; PRINTF 597:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("DevAdd= %08X\n\r", DevAddr) ; 598:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("NwkSKey= %02X", NwkSKey[0]) ;for(int i=1; i<16 ; i++) {PRINTF(" %02X", NwkSKey[i]); }; PR 599:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("AppSKey= %02X", AppSKey[0]) ;for(int i=1; i<16 ; i++) {PRINTF(" %02X", AppSKey[i]); }; PR 600:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 601:./Middlewares/Third_Party/Lora/Core/lora.c **** 602:./Middlewares/Third_Party/Lora/Core/lora.c **** } 772 .loc 1 602 0 is_stmt 1 discriminator 4 773 @ sp needed 774 .LVL58: 775 0088 10BD pop {r4, pc} 776 .L53: 777 008a C046 .align 2 778 .L52: 779 008c 00000000 .word .LANCHOR1 780 0090 00000000 .word .LANCHOR5 781 0094 00000000 .word .LANCHOR9 782 0098 00000000 .word .LANCHOR6 783 009c 00000000 .word .LC21 784 00a0 08000000 .word .LC23 785 00a4 18000000 .word .LC25 ARM GAS /tmp/ccY05lmV.s page 27 786 00a8 20000000 .word .LC27 787 00ac 00000000 .word .LANCHOR7 788 00b0 24000000 .word .LC30 789 00b4 00000000 .word .LANCHOR8 790 00b8 34000000 .word .LC33 791 00bc 44000000 .word .LC35 792 00c0 4C000000 .word .LC37 793 .cfi_endproc 794 .LFE103: 796 .section .text.lora_fsm,"ax",%progbits 797 .align 1 798 .global lora_fsm 799 .syntax unified 800 .code 16 801 .thumb_func 802 .fpu softvfp 804 lora_fsm: 805 .LFB104: 603:./Middlewares/Third_Party/Lora/Core/lora.c **** 604:./Middlewares/Third_Party/Lora/Core/lora.c **** /** 605:./Middlewares/Third_Party/Lora/Core/lora.c **** * lora class A state machine 606:./Middlewares/Third_Party/Lora/Core/lora.c **** */ 607:./Middlewares/Third_Party/Lora/Core/lora.c **** 608:./Middlewares/Third_Party/Lora/Core/lora.c **** void lora_fsm( void) 609:./Middlewares/Third_Party/Lora/Core/lora.c **** { 806 .loc 1 609 0 807 .cfi_startproc 808 @ args = 0, pretend = 0, frame = 24 809 @ frame_needed = 0, uses_anonymous_args = 0 810 0000 30B5 push {r4, r5, lr} 811 .LCFI6: 812 .cfi_def_cfa_offset 12 813 .cfi_offset 4, -12 814 .cfi_offset 5, -8 815 .cfi_offset 14, -4 816 0002 87B0 sub sp, sp, #28 817 .LCFI7: 818 .cfi_def_cfa_offset 40 610:./Middlewares/Third_Party/Lora/Core/lora.c **** switch( DeviceState ) 819 .loc 1 610 0 820 0004 7E4B ldr r3, .L82 821 0006 1A78 ldrb r2, [r3] 822 0008 052A cmp r2, #5 823 000a 00D9 bls .LCB684 824 000c F4E0 b .L55 @long jump 825 .LCB684: 826 000e 9300 lsls r3, r2, #2 827 0010 7C4A ldr r2, .L82+4 828 0012 D358 ldr r3, [r2, r3] 829 0014 9F46 mov pc, r3 830 .section .rodata.lora_fsm,"a",%progbits 831 .align 2 832 .L57: 833 0000 16000000 .word .L56 834 0004 80000000 .word .L58 835 0008 B2000000 .word .L59 836 000c C0000000 .word .L60 ARM GAS /tmp/ccY05lmV.s page 28 837 0010 F8010000 .word .L55 838 0014 7C000000 .word .L54 839 .section .text.lora_fsm 840 .L56: 611:./Middlewares/Third_Party/Lora/Core/lora.c **** { 612:./Middlewares/Third_Party/Lora/Core/lora.c **** case DEVICE_STATE_INIT: 613:./Middlewares/Third_Party/Lora/Core/lora.c **** { 614:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm; 841 .loc 1 614 0 842 0016 7C48 ldr r0, .L82+8 843 0018 7C4B ldr r3, .L82+12 844 001a 0360 str r3, [r0] 615:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacPrimitives.MacMcpsIndication = McpsIndication; 845 .loc 1 615 0 846 001c 7C4B ldr r3, .L82+16 847 001e 4360 str r3, [r0, #4] 616:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm; 848 .loc 1 616 0 849 0020 7C4B ldr r3, .L82+20 850 0022 8360 str r3, [r0, #8] 617:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacCallbacks.GetBatteryLevel = LoRaMainCallbacks->BoardGetBatteryLevel; 851 .loc 1 617 0 852 0024 7C4B ldr r3, .L82+24 853 0026 1B68 ldr r3, [r3] 854 0028 1B68 ldr r3, [r3] 855 002a 7C49 ldr r1, .L82+28 856 002c 0B60 str r3, [r1] 618:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_AS923 ) 619:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_AS923 620:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_AU915 ) 621:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_AU915 622:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_CN470 ) 623:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_CN470 624:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_CN779 ) 625:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_CN779 626:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_EU433 ) 627:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_EU433 628:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_IN865 ) 629:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_IN865 630:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_EU868 ) 631:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_EU868 857 .loc 1 631 0 858 002e 0522 movs r2, #5 859 0030 FFF7FEFF bl LoRaMacInitialization 860 .LVL59: 632:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_KR920 ) 633:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_KR920 634:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_US915 ) 635:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_US915 636:./Middlewares/Third_Party/Lora/Core/lora.c **** #elif defined( REGION_US915_HYBRID ) 637:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LORAMAC_REGION_US915_ 638:./Middlewares/Third_Party/Lora/Core/lora.c **** #else 639:./Middlewares/Third_Party/Lora/Core/lora.c **** #error "Please define a region in the compiler options." 640:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 641:./Middlewares/Third_Party/Lora/Core/lora.c **** 642:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerInit( &TxNextPacketTimer, OnTxNextPacketTimerEvent ); 861 .loc 1 642 0 ARM GAS /tmp/ccY05lmV.s page 29 862 0034 7A49 ldr r1, .L82+32 863 0036 7B48 ldr r0, .L82+36 864 0038 FFF7FEFF bl TimerInit 865 .LVL60: 643:./Middlewares/Third_Party/Lora/Core/lora.c **** 644:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_ADR; 866 .loc 1 644 0 867 003c 7A4C ldr r4, .L82+40 868 003e 0223 movs r3, #2 869 0040 2370 strb r3, [r4] 645:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.AdrEnable = LoRaParamInit->AdrEnable; 870 .loc 1 645 0 871 0042 7A4D ldr r5, .L82+44 872 0044 2B68 ldr r3, [r5] 873 0046 5B7A ldrb r3, [r3, #9] 874 0048 2371 strb r3, [r4, #4] 646:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 875 .loc 1 646 0 876 004a 2000 movs r0, r4 877 004c FFF7FEFF bl LoRaMacMibSetRequestConfirm 878 .LVL61: 647:./Middlewares/Third_Party/Lora/Core/lora.c **** 648:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_PUBLIC_NETWORK; 879 .loc 1 648 0 880 0050 0723 movs r3, #7 881 0052 2370 strb r3, [r4] 649:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.EnablePublicNetwork = LoRaParamInit->EnablePublicNetwork; 882 .loc 1 649 0 883 0054 2B68 ldr r3, [r5] 884 0056 DB7A ldrb r3, [r3, #11] 885 0058 2371 strb r3, [r4, #4] 650:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 886 .loc 1 650 0 887 005a 2000 movs r0, r4 888 005c FFF7FEFF bl LoRaMacMibSetRequestConfirm 889 .LVL62: 651:./Middlewares/Third_Party/Lora/Core/lora.c **** 652:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_DEVICE_CLASS; 890 .loc 1 652 0 891 0060 0023 movs r3, #0 892 0062 2370 strb r3, [r4] 653:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.Class= LoRaParamInit->Class; 893 .loc 1 653 0 894 0064 2B68 ldr r3, [r5] 895 0066 1B7A ldrb r3, [r3, #8] 896 0068 2371 strb r3, [r4, #4] 654:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 897 .loc 1 654 0 898 006a 2000 movs r0, r4 899 006c FFF7FEFF bl LoRaMacMibSetRequestConfirm 900 .LVL63: 655:./Middlewares/Third_Party/Lora/Core/lora.c **** 656:./Middlewares/Third_Party/Lora/Core/lora.c **** #if defined( REGION_EU868 ) 657:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacTestSetDutyCycleOn( LORAWAN_DUTYCYCLE_ON ); 901 .loc 1 657 0 902 0070 0120 movs r0, #1 903 0072 FFF7FEFF bl LoRaMacTestSetDutyCycleOn ARM GAS /tmp/ccY05lmV.s page 30 904 .LVL64: 658:./Middlewares/Third_Party/Lora/Core/lora.c **** 659:./Middlewares/Third_Party/Lora/Core/lora.c **** #if( USE_SEMTECH_DEFAULT_CHANNEL_LINEUP == 1 ) 660:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 3, ( ChannelParams_t )LC4 ); 661:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 4, ( ChannelParams_t )LC5 ); 662:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 5, ( ChannelParams_t )LC6 ); 663:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 6, ( ChannelParams_t )LC7 ); 664:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 7, ( ChannelParams_t )LC8 ); 665:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 8, ( ChannelParams_t )LC9 ); 666:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacChannelAdd( 9, ( ChannelParams_t )LC10 ); 667:./Middlewares/Third_Party/Lora/Core/lora.c **** 668:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_RX2_DEFAULT_CHANNEL; 669:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.Rx2DefaultChannel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; 670:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 671:./Middlewares/Third_Party/Lora/Core/lora.c **** 672:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_RX2_CHANNEL; 673:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.Rx2Channel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; 674:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 675:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 676:./Middlewares/Third_Party/Lora/Core/lora.c **** 677:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 678:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_JOIN; 905 .loc 1 678 0 906 0076 624B ldr r3, .L82 907 0078 0122 movs r2, #1 908 007a 1A70 strb r2, [r3] 909 .L54: 679:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 680:./Middlewares/Third_Party/Lora/Core/lora.c **** } 681:./Middlewares/Third_Party/Lora/Core/lora.c **** case DEVICE_STATE_JOIN: 682:./Middlewares/Third_Party/Lora/Core/lora.c **** { 683:./Middlewares/Third_Party/Lora/Core/lora.c **** #if( OVER_THE_AIR_ACTIVATION != 0 ) 684:./Middlewares/Third_Party/Lora/Core/lora.c **** MlmeReq_t mlmeReq; 685:./Middlewares/Third_Party/Lora/Core/lora.c **** 686:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Type = MLME_JOIN; 687:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.DevEui = DevEui; 688:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppEui = AppEui; 689:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppKey = AppKey; 690:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.NbTrials = LoRaParamInit->NbTrials; 691:./Middlewares/Third_Party/Lora/Core/lora.c **** 692:./Middlewares/Third_Party/Lora/Core/lora.c **** if( NextTx == true ) 693:./Middlewares/Third_Party/Lora/Core/lora.c **** { 694:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMlmeRequest( &mlmeReq ); 695:./Middlewares/Third_Party/Lora/Core/lora.c **** } 696:./Middlewares/Third_Party/Lora/Core/lora.c **** 697:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SLEEP; 698:./Middlewares/Third_Party/Lora/Core/lora.c **** #else 699:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_NET_ID; 700:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.NetID = LORAWAN_NETWORK_ID; 701:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 702:./Middlewares/Third_Party/Lora/Core/lora.c **** 703:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_DEV_ADDR; 704:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.DevAddr = DevAddr; 705:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 706:./Middlewares/Third_Party/Lora/Core/lora.c **** 707:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_NWK_SKEY; 708:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.NwkSKey = NwkSKey; ARM GAS /tmp/ccY05lmV.s page 31 709:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 710:./Middlewares/Third_Party/Lora/Core/lora.c **** 711:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_APP_SKEY; 712:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.AppSKey = AppSKey; 713:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 714:./Middlewares/Third_Party/Lora/Core/lora.c **** 715:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Type = MIB_NETWORK_JOINED; 716:./Middlewares/Third_Party/Lora/Core/lora.c **** mibReq.Param.IsNetworkJoined = true; 717:./Middlewares/Third_Party/Lora/Core/lora.c **** LoRaMacMibSetRequestConfirm( &mibReq ); 718:./Middlewares/Third_Party/Lora/Core/lora.c **** 719:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SEND; 720:./Middlewares/Third_Party/Lora/Core/lora.c **** #endif 721:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 722:./Middlewares/Third_Party/Lora/Core/lora.c **** } 723:./Middlewares/Third_Party/Lora/Core/lora.c **** case DEVICE_STATE_JOINED: 724:./Middlewares/Third_Party/Lora/Core/lora.c **** { 725:./Middlewares/Third_Party/Lora/Core/lora.c **** PRINTF("JOINED\n\r"); 726:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SEND; 727:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 728:./Middlewares/Third_Party/Lora/Core/lora.c **** } 729:./Middlewares/Third_Party/Lora/Core/lora.c **** case DEVICE_STATE_SEND: 730:./Middlewares/Third_Party/Lora/Core/lora.c **** { 731:./Middlewares/Third_Party/Lora/Core/lora.c **** if( NextTx == true ) 732:./Middlewares/Third_Party/Lora/Core/lora.c **** { 733:./Middlewares/Third_Party/Lora/Core/lora.c **** PrepareTxFrame( ); 734:./Middlewares/Third_Party/Lora/Core/lora.c **** 735:./Middlewares/Third_Party/Lora/Core/lora.c **** NextTx = SendFrame( ); 736:./Middlewares/Third_Party/Lora/Core/lora.c **** } 737:./Middlewares/Third_Party/Lora/Core/lora.c **** if( ComplianceTest.Running == true ) 738:./Middlewares/Third_Party/Lora/Core/lora.c **** { 739:./Middlewares/Third_Party/Lora/Core/lora.c **** // Schedule next packet transmission as soon as possible 740:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerSetValue( &TxNextPacketTimer, 5000); /* 5s */ 741:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStart( &TxNextPacketTimer ); 742:./Middlewares/Third_Party/Lora/Core/lora.c **** } 743:./Middlewares/Third_Party/Lora/Core/lora.c **** else if (LoRaParamInit->TxEvent == TX_ON_TIMER ) 744:./Middlewares/Third_Party/Lora/Core/lora.c **** { 745:./Middlewares/Third_Party/Lora/Core/lora.c **** // Schedule next packet transmission 746:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerSetValue( &TxNextPacketTimer, LoRaParamInit->TxDutyCycleTime ); 747:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStart( &TxNextPacketTimer ); 748:./Middlewares/Third_Party/Lora/Core/lora.c **** } 749:./Middlewares/Third_Party/Lora/Core/lora.c **** 750:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SLEEP; 751:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 752:./Middlewares/Third_Party/Lora/Core/lora.c **** } 753:./Middlewares/Third_Party/Lora/Core/lora.c **** case DEVICE_STATE_SLEEP: 754:./Middlewares/Third_Party/Lora/Core/lora.c **** { 755:./Middlewares/Third_Party/Lora/Core/lora.c **** // Wake up through events 756:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 757:./Middlewares/Third_Party/Lora/Core/lora.c **** } 758:./Middlewares/Third_Party/Lora/Core/lora.c **** default: 759:./Middlewares/Third_Party/Lora/Core/lora.c **** { 760:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_INIT; 761:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 762:./Middlewares/Third_Party/Lora/Core/lora.c **** } 763:./Middlewares/Third_Party/Lora/Core/lora.c **** } 764:./Middlewares/Third_Party/Lora/Core/lora.c **** } 910 .loc 1 764 0 ARM GAS /tmp/ccY05lmV.s page 32 911 007c 07B0 add sp, sp, #28 912 @ sp needed 913 007e 30BD pop {r4, r5, pc} 914 .L58: 915 .LBB17: 686:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.DevEui = DevEui; 916 .loc 1 686 0 917 0080 01AB add r3, sp, #4 918 0082 0022 movs r2, #0 919 0084 1A70 strb r2, [r3] 687:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppEui = AppEui; 920 .loc 1 687 0 921 0086 6A4A ldr r2, .L82+48 922 0088 0292 str r2, [sp, #8] 688:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.AppKey = AppKey; 923 .loc 1 688 0 924 008a 6A4A ldr r2, .L82+52 925 008c 0392 str r2, [sp, #12] 689:./Middlewares/Third_Party/Lora/Core/lora.c **** mlmeReq.Req.Join.NbTrials = LoRaParamInit->NbTrials; 926 .loc 1 689 0 927 008e 6A4A ldr r2, .L82+56 928 0090 0492 str r2, [sp, #16] 690:./Middlewares/Third_Party/Lora/Core/lora.c **** 929 .loc 1 690 0 930 0092 664A ldr r2, .L82+44 931 0094 1268 ldr r2, [r2] 932 0096 127B ldrb r2, [r2, #12] 933 0098 1A74 strb r2, [r3, #16] 692:./Middlewares/Third_Party/Lora/Core/lora.c **** { 934 .loc 1 692 0 935 009a 684B ldr r3, .L82+60 936 009c 1B78 ldrb r3, [r3] 937 009e 002B cmp r3, #0 938 00a0 03D1 bne .L75 939 .L62: 697:./Middlewares/Third_Party/Lora/Core/lora.c **** #else 940 .loc 1 697 0 941 00a2 574B ldr r3, .L82 942 00a4 0522 movs r2, #5 943 00a6 1A70 strb r2, [r3] 944 00a8 E8E7 b .L54 945 .L75: 694:./Middlewares/Third_Party/Lora/Core/lora.c **** } 946 .loc 1 694 0 947 00aa 01A8 add r0, sp, #4 948 00ac FFF7FEFF bl LoRaMacMlmeRequest 949 .LVL65: 950 00b0 F7E7 b .L62 951 .L59: 952 .LBE17: 725:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState = DEVICE_STATE_SEND; 953 .loc 1 725 0 954 00b2 6348 ldr r0, .L82+64 955 00b4 FFF7FEFF bl vcom_Send 956 .LVL66: 726:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 957 .loc 1 726 0 ARM GAS /tmp/ccY05lmV.s page 33 958 00b8 514B ldr r3, .L82 959 00ba 0322 movs r2, #3 960 00bc 1A70 strb r2, [r3] 727:./Middlewares/Third_Party/Lora/Core/lora.c **** } 961 .loc 1 727 0 962 00be DDE7 b .L54 963 .L60: 731:./Middlewares/Third_Party/Lora/Core/lora.c **** { 964 .loc 1 731 0 965 00c0 5E4B ldr r3, .L82+60 966 00c2 1C78 ldrb r4, [r3] 967 00c4 002C cmp r4, #0 968 00c6 0ED1 bne .L76 969 .L63: 737:./Middlewares/Third_Party/Lora/Core/lora.c **** { 970 .loc 1 737 0 971 00c8 5E4B ldr r3, .L82+68 972 00ca 1B78 ldrb r3, [r3] 973 00cc 002B cmp r3, #0 974 00ce 00D0 beq .LCB813 975 00d0 80E0 b .L77 @long jump 976 .LCB813: 743:./Middlewares/Third_Party/Lora/Core/lora.c **** { 977 .loc 1 743 0 978 00d2 564B ldr r3, .L82+44 979 00d4 1B68 ldr r3, [r3] 980 00d6 1A78 ldrb r2, [r3] 981 00d8 002A cmp r2, #0 982 00da 00D1 bne .LCB818 983 00dc 83E0 b .L78 @long jump 984 .LCB818: 985 .L74: 750:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 986 .loc 1 750 0 987 00de 484B ldr r3, .L82 988 00e0 0522 movs r2, #5 989 00e2 1A70 strb r2, [r3] 751:./Middlewares/Third_Party/Lora/Core/lora.c **** } 990 .loc 1 751 0 991 00e4 CAE7 b .L54 992 .L76: 993 .LBB18: 994 .LBB19: 184:./Middlewares/Third_Party/Lora/Core/lora.c **** { 995 .loc 1 184 0 996 00e6 574B ldr r3, .L82+68 997 00e8 1B78 ldrb r3, [r3] 998 00ea 002B cmp r3, #0 999 00ec 1ED1 bne .L79 212:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1000 .loc 1 212 0 1001 00ee 4A4B ldr r3, .L82+24 1002 00f0 1B68 ldr r3, [r3] 1003 00f2 DB68 ldr r3, [r3, #12] 1004 00f4 5449 ldr r1, .L82+72 1005 00f6 5548 ldr r0, .L82+76 1006 00f8 9847 blx r3 ARM GAS /tmp/ccY05lmV.s page 34 1007 .LVL67: 1008 .L66: 1009 .LBE19: 1010 .LBE18: 1011 .LBB21: 1012 .LBB22: 226:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1013 .loc 1 226 0 1014 00fa 544B ldr r3, .L82+76 1015 00fc 1879 ldrb r0, [r3, #4] 1016 00fe 6946 mov r1, sp 1017 0100 FFF7FEFF bl LoRaMacQueryTxPossible 1018 .LVL68: 1019 0104 0028 cmp r0, #0 1020 0106 3DD0 beq .L69 229:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBuffer = NULL; 1021 .loc 1 229 0 1022 0108 01AB add r3, sp, #4 1023 010a 0022 movs r2, #0 1024 010c 1A70 strb r2, [r3] 230:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBufferSize = 0; 1025 .loc 1 230 0 1026 010e 0392 str r2, [sp, #12] 231:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.Datarate = LoRaParamInit->TxDatarate; 1027 .loc 1 231 0 1028 0110 9A81 strh r2, [r3, #12] 232:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1029 .loc 1 232 0 1030 0112 464A ldr r2, .L82+44 1031 0114 1268 ldr r2, [r2] 1032 0116 927A ldrb r2, [r2, #10] 1033 0118 52B2 sxtb r2, r2 1034 011a 9A73 strb r2, [r3, #14] 1035 .L70: 254:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1036 .loc 1 254 0 1037 011c 01A8 add r0, sp, #4 1038 011e FFF7FEFF bl LoRaMacMcpsRequest 1039 .LVL69: 1040 0122 0028 cmp r0, #0 1041 0124 54D0 beq .L80 1042 .L72: 1043 .LBE22: 1044 .LBE21: 735:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1045 .loc 1 735 0 1046 0126 454B ldr r3, .L82+60 1047 0128 1C70 strb r4, [r3] 1048 012a CDE7 b .L63 1049 .L79: 1050 .LBB24: 1051 .LBB20: 186:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1052 .loc 1 186 0 1053 012c 454B ldr r3, .L82+68 1054 012e 9B7B ldrb r3, [r3, #14] 1055 0130 002B cmp r3, #0 ARM GAS /tmp/ccY05lmV.s page 35 1056 0132 09D1 bne .L81 197:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1057 .loc 1 197 0 1058 0134 434B ldr r3, .L82+68 1059 0136 5B78 ldrb r3, [r3, #1] 1060 0138 012B cmp r3, #1 1061 013a 17D0 beq .L67 1062 013c 042B cmp r3, #4 1063 013e DCD1 bne .L66 200:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 1064 .loc 1 200 0 1065 0140 404B ldr r3, .L82+68 1066 0142 0122 movs r2, #1 1067 0144 5A70 strb r2, [r3, #1] 1068 0146 D8E7 b .L66 1069 .L81: 188:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.BuffSize = 3; 1070 .loc 1 188 0 1071 0148 3E4B ldr r3, .L82+68 1072 014a 0022 movs r2, #0 1073 014c 9A73 strb r2, [r3, #14] 189:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[0] = 5; 1074 .loc 1 189 0 1075 014e 3F4A ldr r2, .L82+76 1076 0150 0321 movs r1, #3 1077 0152 1171 strb r1, [r2, #4] 190:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[1] = ComplianceTest.DemodMargin; 1078 .loc 1 190 0 1079 0154 0231 adds r1, r1, #2 1080 0156 1068 ldr r0, [r2] 1081 0158 0170 strb r1, [r0] 191:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[2] = ComplianceTest.NbGateways; 1082 .loc 1 191 0 1083 015a D97B ldrb r1, [r3, #15] 1084 015c 1068 ldr r0, [r2] 1085 015e 4170 strb r1, [r0, #1] 192:./Middlewares/Third_Party/Lora/Core/lora.c **** ComplianceTest.State = 1; 1086 .loc 1 192 0 1087 0160 1268 ldr r2, [r2] 1088 0162 197C ldrb r1, [r3, #16] 1089 0164 9170 strb r1, [r2, #2] 193:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1090 .loc 1 193 0 1091 0166 0122 movs r2, #1 1092 0168 5A70 strb r2, [r3, #1] 1093 016a C6E7 b .L66 1094 .L67: 203:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[0] = ComplianceTest.DownLinkCounter >> 8; 1095 .loc 1 203 0 1096 016c 374B ldr r3, .L82+76 1097 016e 0222 movs r2, #2 1098 0170 1A71 strb r2, [r3, #4] 204:./Middlewares/Third_Party/Lora/Core/lora.c **** AppData.Buff[1] = ComplianceTest.DownLinkCounter; 1099 .loc 1 204 0 1100 0172 3449 ldr r1, .L82+68 1101 0174 8A89 ldrh r2, [r1, #12] 1102 0176 120A lsrs r2, r2, #8 ARM GAS /tmp/ccY05lmV.s page 36 1103 0178 1868 ldr r0, [r3] 1104 017a 0270 strb r2, [r0] 205:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 1105 .loc 1 205 0 1106 017c 8A89 ldrh r2, [r1, #12] 1107 017e 1B68 ldr r3, [r3] 1108 0180 5A70 strb r2, [r3, #1] 1109 0182 BAE7 b .L66 1110 .L69: 1111 .LBE20: 1112 .LBE24: 1113 .LBB25: 1114 .LBB23: 236:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1115 .loc 1 236 0 1116 0184 304B ldr r3, .L82+72 1117 0186 1B78 ldrb r3, [r3] 1118 0188 002B cmp r3, #0 1119 018a 0FD1 bne .L71 238:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fPort = AppData.Port; 1120 .loc 1 238 0 1121 018c 01AB add r3, sp, #4 1122 018e 0022 movs r2, #0 1123 0190 1A70 strb r2, [r3] 239:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBuffer = AppData.Buff; 1124 .loc 1 239 0 1125 0192 2E4A ldr r2, .L82+76 1126 0194 5179 ldrb r1, [r2, #5] 1127 0196 1971 strb r1, [r3, #4] 240:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.fBufferSize = AppData.BuffSize; 1128 .loc 1 240 0 1129 0198 1168 ldr r1, [r2] 1130 019a 0391 str r1, [sp, #12] 241:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Unconfirmed.Datarate = LoRaParamInit->TxDatarate; 1131 .loc 1 241 0 1132 019c 1279 ldrb r2, [r2, #4] 1133 019e 9A81 strh r2, [r3, #12] 242:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1134 .loc 1 242 0 1135 01a0 224A ldr r2, .L82+44 1136 01a2 1268 ldr r2, [r2] 1137 01a4 927A ldrb r2, [r2, #10] 1138 01a6 52B2 sxtb r2, r2 1139 01a8 9A73 strb r2, [r3, #14] 1140 01aa B7E7 b .L70 1141 .L71: 246:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fPort = AppData.Port; 1142 .loc 1 246 0 1143 01ac 01AB add r3, sp, #4 1144 01ae 0122 movs r2, #1 1145 01b0 1A70 strb r2, [r3] 247:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fBuffer = AppData.Buff; 1146 .loc 1 247 0 1147 01b2 264A ldr r2, .L82+76 1148 01b4 5179 ldrb r1, [r2, #5] 1149 01b6 1971 strb r1, [r3, #4] 248:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.fBufferSize = AppData.BuffSize; ARM GAS /tmp/ccY05lmV.s page 37 1150 .loc 1 248 0 1151 01b8 1168 ldr r1, [r2] 1152 01ba 0391 str r1, [sp, #12] 249:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.NbTrials = 8; 1153 .loc 1 249 0 1154 01bc 1279 ldrb r2, [r2, #4] 1155 01be 9A81 strh r2, [r3, #12] 250:./Middlewares/Third_Party/Lora/Core/lora.c **** mcpsReq.Req.Confirmed.Datarate = LoRaParamInit->TxDatarate; 1156 .loc 1 250 0 1157 01c0 0822 movs r2, #8 1158 01c2 DA73 strb r2, [r3, #15] 251:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1159 .loc 1 251 0 1160 01c4 194A ldr r2, .L82+44 1161 01c6 1268 ldr r2, [r2] 1162 01c8 927A ldrb r2, [r2, #10] 1163 01ca 52B2 sxtb r2, r2 1164 01cc 9A73 strb r2, [r3, #14] 1165 01ce A5E7 b .L70 1166 .L80: 256:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1167 .loc 1 256 0 1168 01d0 0024 movs r4, #0 1169 01d2 A8E7 b .L72 1170 .L77: 1171 .LBE23: 1172 .LBE25: 740:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStart( &TxNextPacketTimer ); 1173 .loc 1 740 0 1174 01d4 134C ldr r4, .L82+36 1175 01d6 1E49 ldr r1, .L82+80 1176 01d8 2000 movs r0, r4 1177 01da FFF7FEFF bl TimerSetValue 1178 .LVL70: 741:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1179 .loc 1 741 0 1180 01de 2000 movs r0, r4 1181 01e0 FFF7FEFF bl TimerStart 1182 .LVL71: 1183 01e4 7BE7 b .L74 1184 .L78: 746:./Middlewares/Third_Party/Lora/Core/lora.c **** TimerStart( &TxNextPacketTimer ); 1185 .loc 1 746 0 1186 01e6 5968 ldr r1, [r3, #4] 1187 01e8 0E4C ldr r4, .L82+36 1188 01ea 2000 movs r0, r4 1189 01ec FFF7FEFF bl TimerSetValue 1190 .LVL72: 747:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1191 .loc 1 747 0 1192 01f0 2000 movs r0, r4 1193 01f2 FFF7FEFF bl TimerStart 1194 .LVL73: 1195 01f6 72E7 b .L74 1196 .L55: 760:./Middlewares/Third_Party/Lora/Core/lora.c **** break; 1197 .loc 1 760 0 ARM GAS /tmp/ccY05lmV.s page 38 1198 01f8 014B ldr r3, .L82 1199 01fa 0022 movs r2, #0 1200 01fc 1A70 strb r2, [r3] 1201 .loc 1 764 0 1202 01fe 3DE7 b .L54 1203 .L83: 1204 .align 2 1205 .L82: 1206 0200 00000000 .word .LANCHOR1 1207 0204 00000000 .word .L57 1208 0208 00000000 .word .LANCHOR11 1209 020c 00000000 .word McpsConfirm 1210 0210 00000000 .word McpsIndication 1211 0214 00000000 .word MlmeConfirm 1212 0218 00000000 .word .LANCHOR9 1213 021c 00000000 .word .LANCHOR12 1214 0220 00000000 .word OnTxNextPacketTimerEvent 1215 0224 00000000 .word .LANCHOR10 1216 0228 00000000 .word .LANCHOR13 1217 022c 00000000 .word .LANCHOR5 1218 0230 00000000 .word .LANCHOR6 1219 0234 00000000 .word .LANCHOR7 1220 0238 00000000 .word .LANCHOR8 1221 023c 00000000 .word .LANCHOR0 1222 0240 00000000 .word .LC55 1223 0244 00000000 .word .LANCHOR2 1224 0248 00000000 .word .LANCHOR3 1225 024c 00000000 .word .LANCHOR4 1226 0250 88130000 .word 5000 1227 .cfi_endproc 1228 .LFE104: 1230 .section .text.lora_getDeviceState,"ax",%progbits 1231 .align 1 1232 .global lora_getDeviceState 1233 .syntax unified 1234 .code 16 1235 .thumb_func 1236 .fpu softvfp 1238 lora_getDeviceState: 1239 .LFB105: 765:./Middlewares/Third_Party/Lora/Core/lora.c **** 766:./Middlewares/Third_Party/Lora/Core/lora.c **** 767:./Middlewares/Third_Party/Lora/Core/lora.c **** DeviceState_t lora_getDeviceState( void ) 768:./Middlewares/Third_Party/Lora/Core/lora.c **** { 1240 .loc 1 768 0 1241 .cfi_startproc 1242 @ args = 0, pretend = 0, frame = 0 1243 @ frame_needed = 0, uses_anonymous_args = 0 1244 @ link register save eliminated. 769:./Middlewares/Third_Party/Lora/Core/lora.c **** return DeviceState; 1245 .loc 1 769 0 1246 0000 014B ldr r3, .L85 1247 0002 1878 ldrb r0, [r3] 770:./Middlewares/Third_Party/Lora/Core/lora.c **** } 1248 .loc 1 770 0 1249 @ sp needed 1250 0004 7047 bx lr ARM GAS /tmp/ccY05lmV.s page 39 1251 .L86: 1252 0006 C046 .align 2 1253 .L85: 1254 0008 00000000 .word .LANCHOR1 1255 .cfi_endproc 1256 .LFE105: 1258 .global ComplianceTest 1259 .section .bss.AppDataBuff,"aw",%nobits 1260 .align 2 1263 AppDataBuff: 1264 0000 00000000 .space 64 1264 00000000 1264 00000000 1264 00000000 1264 00000000 1265 .section .bss.ComplianceTest,"aw",%nobits 1266 .align 2 1267 .set .LANCHOR2,. + 0 1270 ComplianceTest: 1271 0000 00000000 .space 20 1271 00000000 1271 00000000 1271 00000000 1271 00000000 1272 .section .bss.DeviceState,"aw",%nobits 1273 .set .LANCHOR1,. + 0 1276 DeviceState: 1277 0000 00 .space 1 1278 .section .bss.IsTxConfirmed,"aw",%nobits 1279 .set .LANCHOR3,. + 0 1282 IsTxConfirmed: 1283 0000 00 .space 1 1284 .section .bss.LoRaMacCallbacks,"aw",%nobits 1285 .align 2 1286 .set .LANCHOR12,. + 0 1289 LoRaMacCallbacks: 1290 0000 00000000 .space 4 1291 .section .bss.LoRaMacPrimitives,"aw",%nobits 1292 .align 2 1293 .set .LANCHOR11,. + 0 1296 LoRaMacPrimitives: 1297 0000 00000000 .space 12 1297 00000000 1297 00000000 1298 .section .bss.LoRaMainCallbacks,"aw",%nobits 1299 .align 2 1300 .set .LANCHOR9,. + 0 1303 LoRaMainCallbacks: 1304 0000 00000000 .space 4 1305 .section .bss.LoRaParamInit,"aw",%nobits 1306 .align 2 1307 .set .LANCHOR5,. + 0 1310 LoRaParamInit: 1311 0000 00000000 .space 4 1312 .section .bss.TxNextPacketTimer,"aw",%nobits 1313 .align 2 1314 .set .LANCHOR10,. + 0 ARM GAS /tmp/ccY05lmV.s page 40 1317 TxNextPacketTimer: 1318 0000 00000000 .space 20 1318 00000000 1318 00000000 1318 00000000 1318 00000000 1319 .section .bss.mibReq,"aw",%nobits 1320 .align 2 1321 .set .LANCHOR13,. + 0 1324 mibReq: 1325 0000 00000000 .space 12 1325 00000000 1325 00000000 1326 .section .data.AppData,"aw",%progbits 1327 .align 2 1328 .set .LANCHOR4,. + 0 1331 AppData: 1332 0000 00000000 .word AppDataBuff 1333 0004 00 .byte 0 1334 0005 00 .byte 0 1335 0006 0000 .space 2 1336 .section .data.AppEui,"aw",%progbits 1337 .align 2 1338 .set .LANCHOR7,. + 0 1341 AppEui: 1342 0000 70 .byte 112 1343 0001 B3 .byte -77 1344 0002 D5 .byte -43 1345 0003 7E .byte 126 1346 0004 D0 .byte -48 1347 0005 00 .byte 0 1348 0006 7C .byte 124 1349 0007 04 .byte 4 1350 .section .data.AppKey,"aw",%progbits 1351 .align 2 1352 .set .LANCHOR8,. + 0 1355 AppKey: 1356 0000 4F .byte 79 1357 0001 13 .byte 19 1358 0002 EF .byte -17 1359 0003 E5 .byte -27 1360 0004 D9 .byte -39 1361 0005 A9 .byte -87 1362 0006 44 .byte 68 1363 0007 93 .byte -109 1364 0008 99 .byte -103 1365 0009 25 .byte 37 1366 000a D2 .byte -46 1367 000b D9 .byte -39 1368 000c 79 .byte 121 1369 000d 77 .byte 119 1370 000e 91 .byte -111 1371 000f DC .byte -36 1372 .section .data.DevEui,"aw",%progbits 1373 .align 2 1374 .set .LANCHOR6,. + 0 1377 DevEui: ARM GAS /tmp/ccY05lmV.s page 41 1378 0000 01 .byte 1 1379 0001 01 .byte 1 1380 0002 01 .byte 1 1381 0003 01 .byte 1 1382 0004 01 .byte 1 1383 0005 01 .byte 1 1384 0006 01 .byte 1 1385 0007 01 .byte 1 1386 .section .data.NextTx,"aw",%progbits 1387 .set .LANCHOR0,. + 0 1390 NextTx: 1391 0000 01 .byte 1 1392 .section .rodata.lora_Init.str1.4,"aMS",%progbits,1 1393 .align 2 1394 .LC21: 1395 0000 4F544141 .ascii "OTAA\012\015\000" 1395 0A0D00 1396 0007 00 .space 1 1397 .LC23: 1398 0008 44657645 .ascii "DevEui= %02X\000" 1398 75693D20 1398 25303258 1398 00 1399 0015 000000 .space 3 1400 .LC25: 1401 0018 2D253032 .ascii "-%02X\000" 1401 5800 1402 001e 0000 .space 2 1403 .LC27: 1404 0020 0A0D00 .ascii "\012\015\000" 1405 0023 00 .space 1 1406 .LC30: 1407 0024 41707045 .ascii "AppEui= %02X\000" 1407 75693D20 1407 25303258 1407 00 1408 0031 000000 .space 3 1409 .LC33: 1410 0034 4170704B .ascii "AppKey= %02X\000" 1410 65793D20 1410 25303258 1410 00 1411 0041 000000 .space 3 1412 .LC35: 1413 0044 20253032 .ascii " %02X\000" 1413 5800 1414 004a 0000 .space 2 1415 .LC37: 1416 004c 0A0A0D00 .ascii "\012\012\015\000" 1417 .section .rodata.lora_fsm.str1.4,"aMS",%progbits,1 1418 .align 2 1419 .LC55: 1420 0000 4A4F494E .ascii "JOINED\012\015\000" 1420 45440A0D 1420 00 1421 .text 1422 .Letext0: ARM GAS /tmp/ccY05lmV.s page 42 1423 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h" 1424 .file 3 "/usr/arm-none-eabi/include/sys/lock.h" 1425 .file 4 "/usr/arm-none-eabi/include/sys/_types.h" 1426 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h" 1427 .file 6 "/usr/arm-none-eabi/include/sys/reent.h" 1428 .file 7 "/usr/arm-none-eabi/include/math.h" 1429 .file 8 "/usr/arm-none-eabi/include/sys/_stdint.h" 1430 .file 9 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h" 1431 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h" 1432 .file 11 "Middlewares/Third_Party/Lora/Utilities/utilities.h" 1433 .file 12 "Middlewares/Third_Party/Lora/Utilities/timeServer.h" 1434 .file 13 "Middlewares/Third_Party/Lora/Mac/LoRaMac.h" 1435 .file 14 "./Middlewares/Third_Party/Lora/Core/lora.h" 1436 .file 15 "Middlewares/Third_Party/Lora/Mac/LoRaMacTest.h" 1437 .file 16 "Inc/vcom.h" ARM GAS /tmp/ccY05lmV.s page 43 DEFINED SYMBOLS *ABS*:0000000000000000 lora.c /tmp/ccY05lmV.s:16 .text.McpsConfirm:0000000000000000 $t /tmp/ccY05lmV.s:22 .text.McpsConfirm:0000000000000000 McpsConfirm /tmp/ccY05lmV.s:41 .text.McpsConfirm:0000000000000008 $d /tmp/ccY05lmV.s:46 .text.MlmeConfirm:0000000000000000 $t /tmp/ccY05lmV.s:52 .text.MlmeConfirm:0000000000000000 MlmeConfirm /tmp/ccY05lmV.s:114 .text.MlmeConfirm:0000000000000048 $d /tmp/ccY05lmV.s:121 .text.McpsIndication:0000000000000000 $t /tmp/ccY05lmV.s:127 .text.McpsIndication:0000000000000000 McpsIndication /tmp/ccY05lmV.s:267 .rodata.McpsIndication:0000000000000000 $d /tmp/ccY05lmV.s:535 .text.McpsIndication:00000000000001d4 $d /tmp/ccY05lmV.s:549 .text.OnSendEvent:0000000000000000 $t /tmp/ccY05lmV.s:556 .text.OnSendEvent:0000000000000000 OnSendEvent /tmp/ccY05lmV.s:606 .text.OnSendEvent:0000000000000034 $d /tmp/ccY05lmV.s:612 .text.OnTxNextPacketTimerEvent:0000000000000000 $t /tmp/ccY05lmV.s:618 .text.OnTxNextPacketTimerEvent:0000000000000000 OnTxNextPacketTimerEvent /tmp/ccY05lmV.s:642 .text.OnTxNextPacketTimerEvent:0000000000000010 $d /tmp/ccY05lmV.s:647 .text.lora_Init:0000000000000000 $t /tmp/ccY05lmV.s:654 .text.lora_Init:0000000000000000 lora_Init /tmp/ccY05lmV.s:779 .text.lora_Init:000000000000008c $d /tmp/ccY05lmV.s:797 .text.lora_fsm:0000000000000000 $t /tmp/ccY05lmV.s:804 .text.lora_fsm:0000000000000000 lora_fsm /tmp/ccY05lmV.s:831 .rodata.lora_fsm:0000000000000000 $d /tmp/ccY05lmV.s:1206 .text.lora_fsm:0000000000000200 $d /tmp/ccY05lmV.s:1231 .text.lora_getDeviceState:0000000000000000 $t /tmp/ccY05lmV.s:1238 .text.lora_getDeviceState:0000000000000000 lora_getDeviceState /tmp/ccY05lmV.s:1254 .text.lora_getDeviceState:0000000000000008 $d /tmp/ccY05lmV.s:1270 .bss.ComplianceTest:0000000000000000 ComplianceTest /tmp/ccY05lmV.s:1260 .bss.AppDataBuff:0000000000000000 $d /tmp/ccY05lmV.s:1263 .bss.AppDataBuff:0000000000000000 AppDataBuff /tmp/ccY05lmV.s:1266 .bss.ComplianceTest:0000000000000000 $d /tmp/ccY05lmV.s:1276 .bss.DeviceState:0000000000000000 DeviceState /tmp/ccY05lmV.s:1277 .bss.DeviceState:0000000000000000 $d /tmp/ccY05lmV.s:1282 .bss.IsTxConfirmed:0000000000000000 IsTxConfirmed /tmp/ccY05lmV.s:1283 .bss.IsTxConfirmed:0000000000000000 $d /tmp/ccY05lmV.s:1285 .bss.LoRaMacCallbacks:0000000000000000 $d /tmp/ccY05lmV.s:1289 .bss.LoRaMacCallbacks:0000000000000000 LoRaMacCallbacks /tmp/ccY05lmV.s:1292 .bss.LoRaMacPrimitives:0000000000000000 $d /tmp/ccY05lmV.s:1296 .bss.LoRaMacPrimitives:0000000000000000 LoRaMacPrimitives /tmp/ccY05lmV.s:1299 .bss.LoRaMainCallbacks:0000000000000000 $d /tmp/ccY05lmV.s:1303 .bss.LoRaMainCallbacks:0000000000000000 LoRaMainCallbacks /tmp/ccY05lmV.s:1306 .bss.LoRaParamInit:0000000000000000 $d /tmp/ccY05lmV.s:1310 .bss.LoRaParamInit:0000000000000000 LoRaParamInit /tmp/ccY05lmV.s:1313 .bss.TxNextPacketTimer:0000000000000000 $d /tmp/ccY05lmV.s:1317 .bss.TxNextPacketTimer:0000000000000000 TxNextPacketTimer /tmp/ccY05lmV.s:1320 .bss.mibReq:0000000000000000 $d /tmp/ccY05lmV.s:1324 .bss.mibReq:0000000000000000 mibReq /tmp/ccY05lmV.s:1327 .data.AppData:0000000000000000 $d /tmp/ccY05lmV.s:1331 .data.AppData:0000000000000000 AppData /tmp/ccY05lmV.s:1337 .data.AppEui:0000000000000000 $d /tmp/ccY05lmV.s:1341 .data.AppEui:0000000000000000 AppEui /tmp/ccY05lmV.s:1351 .data.AppKey:0000000000000000 $d /tmp/ccY05lmV.s:1355 .data.AppKey:0000000000000000 AppKey /tmp/ccY05lmV.s:1373 .data.DevEui:0000000000000000 $d /tmp/ccY05lmV.s:1377 .data.DevEui:0000000000000000 DevEui /tmp/ccY05lmV.s:1390 .data.NextTx:0000000000000000 NextTx ARM GAS /tmp/ccY05lmV.s page 44 /tmp/ccY05lmV.s:1393 .rodata.lora_Init.str1.4:0000000000000000 $d /tmp/ccY05lmV.s:1418 .rodata.lora_fsm.str1.4:0000000000000000 $d .debug_frame:0000000000000010 $d UNDEFINED SYMBOLS LoRaMacMibSetRequestConfirm LoRaMacTestSetDutyCycleOn LoRaMacMlmeRequest memcpy1 LoRaMacMibGetRequestConfirm TimerStop vcom_Send LoRaMacInitialization TimerInit LoRaMacQueryTxPossible LoRaMacMcpsRequest TimerSetValue TimerStart