|
|
ARM GAS /tmp/cciA02i6.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 "timeServer.c"
|
|
|
12 .text
|
|
|
13 .Ltext0:
|
|
|
14 .cfi_sections .debug_frame
|
|
|
15 .section .text.TimerSetTimeout,"ax",%progbits
|
|
|
16 .align 1
|
|
|
17 .syntax unified
|
|
|
18 .code 16
|
|
|
19 .thumb_func
|
|
|
20 .fpu softvfp
|
|
|
22 TimerSetTimeout:
|
|
|
23 .LFB107:
|
|
|
24 .file 1 "./Middlewares/Third_Party/Lora/Utilities/timeServer.c"
|
|
|
1:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*
|
|
|
2:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** / _____) _ | |
|
|
|
3:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** ( (____ _____ ____ _| |_ _____ ____| |__
|
|
|
4:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** \____ \| ___ | (_ _) ___ |/ ___) _ \
|
|
|
5:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** _____) ) ____| | | || |_| ____( (___| | | |
|
|
|
6:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** (______/|_____)_|_|_| \__)_____)\____)_| |_|
|
|
|
7:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** (C)2013 Semtech
|
|
|
8:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
9:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** Description: Generic lora driver implementation
|
|
|
10:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
11:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** License: Revised BSD License, see LICENSE.TXT file include in the project
|
|
|
12:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
13:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** Maintainer: Miguel Luis, Gregory Cristian and Wael Guibene
|
|
|
14:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
15:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /******************************************************************************
|
|
|
16:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @file timeserver.c
|
|
|
17:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @author MCD Application Team
|
|
|
18:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @version V1.1.2
|
|
|
19:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @date 08-September-2017
|
|
|
20:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @brief Time server infrastructure
|
|
|
21:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** ******************************************************************************
|
|
|
22:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * @attention
|
|
|
23:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
24:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * <h2><center>© Copyright (c) 2017 STMicroelectronics International N.V.
|
|
|
25:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * All rights reserved.</center></h2>
|
|
|
26:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
27:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * Redistribution and use in source and binary forms, with or without
|
|
|
28:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * modification, are permitted, provided that the following conditions are met:
|
|
|
29:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
30:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * 1. Redistribution of source code must retain the above copyright notice,
|
|
|
31:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * this list of conditions and the following disclaimer.
|
|
|
32:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
33:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * this list of conditions and the following disclaimer in the documentation
|
|
|
34:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * and/or other materials provided with the distribution.
|
|
|
ARM GAS /tmp/cciA02i6.s page 2
|
|
|
|
|
|
|
|
|
35:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * 3. Neither the name of STMicroelectronics nor the names of other
|
|
|
36:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * contributors to this software may be used to endorse or promote products
|
|
|
37:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * derived from this software without specific written permission.
|
|
|
38:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * 4. This software, including modifications and/or derivative works of this
|
|
|
39:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * software, must execute solely and exclusively on microcontroller or
|
|
|
40:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * microprocessor devices manufactured by or for STMicroelectronics.
|
|
|
41:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * 5. Redistribution and use of this software other than as permitted under
|
|
|
42:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * this license is void and will automatically terminate your rights under
|
|
|
43:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * this license.
|
|
|
44:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
45:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
|
|
|
46:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
|
|
|
47:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
|
48:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
|
|
|
49:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
|
|
|
50:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
51:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
52:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
|
53:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
|
54:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
|
55:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
|
56:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
57:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
58:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** ******************************************************************************
|
|
|
59:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
60:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
61:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* Includes ------------------------------------------------------------------*/
|
|
|
62:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** #include <time.h>
|
|
|
63:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** #include "hw.h"
|
|
|
64:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** #include "timeServer.h"
|
|
|
65:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** //#include "low_power.h"
|
|
|
66:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
67:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
68:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
69:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * safely execute call back
|
|
|
70:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
71:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** #define exec_cb( _callback_ ) \
|
|
|
72:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** do { \
|
|
|
73:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( _callback_ == NULL ) \
|
|
|
74:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** { \
|
|
|
75:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** while(1); \
|
|
|
76:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** } \
|
|
|
77:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else \
|
|
|
78:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** { \
|
|
|
79:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** _callback_( ); \
|
|
|
80:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** } \
|
|
|
81:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** } while(0);
|
|
|
82:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
83:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
84:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
85:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
86:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * Timers list head pointer
|
|
|
87:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
88:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static TimerEvent_t *TimerListHead = NULL;
|
|
|
89:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
90:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
91:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \brief Adds or replace the head timer of the list.
|
|
|
ARM GAS /tmp/cciA02i6.s page 3
|
|
|
|
|
|
|
|
|
92:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
93:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \remark The list is automatically sorted. The list head always contains the
|
|
|
94:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * next timer to expire.
|
|
|
95:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
96:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] obj Timer object to be become the new head
|
|
|
97:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] remainingTime Remaining time of the previous head to be replaced
|
|
|
98:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
99:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerInsertNewHeadTimer( TimerEvent_t *obj );
|
|
|
100:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
101:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
102:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \brief Adds a timer to the list.
|
|
|
103:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
104:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \remark The list is automatically sorted. The list head always contains the
|
|
|
105:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * next timer to expire.
|
|
|
106:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
107:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] obj Timer object to be added to the list
|
|
|
108:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] remainingTime Remaining time of the running head after which the object may be adde
|
|
|
109:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
110:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerInsertTimer( TimerEvent_t *obj );
|
|
|
111:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
112:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
113:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \brief Sets a timeout with the duration "timestamp"
|
|
|
114:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
115:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] timestamp Delay duration
|
|
|
116:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
117:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerSetTimeout( TimerEvent_t *obj );
|
|
|
118:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
119:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /*!
|
|
|
120:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \brief Check if the Object to be added is not already in the list
|
|
|
121:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** *
|
|
|
122:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \param [IN] timestamp Delay duration
|
|
|
123:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** * \retval true (the object is already in the list) or false
|
|
|
124:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** */
|
|
|
125:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static bool TimerExists( TimerEvent_t *obj );
|
|
|
126:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
127:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
128:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
129:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerInit( TimerEvent_t *obj, void ( *callback )( void ) )
|
|
|
130:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
131:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp = 0;
|
|
|
132:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->ReloadValue = 0;
|
|
|
133:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->IsRunning = false;
|
|
|
134:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Callback = callback;
|
|
|
135:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = NULL;
|
|
|
136:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
137:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
138:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerStart( TimerEvent_t *obj )
|
|
|
139:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
140:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t elapsedTime = 0;
|
|
|
141:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
142:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** BACKUP_PRIMASK();
|
|
|
143:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
144:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** DISABLE_IRQ( );
|
|
|
145:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
146:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
147:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( ( obj == NULL ) || ( TimerExists( obj ) == true ) )
|
|
|
148:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
ARM GAS /tmp/cciA02i6.s page 4
|
|
|
|
|
|
|
|
|
149:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** RESTORE_PRIMASK( );
|
|
|
150:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return;
|
|
|
151:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
152:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp = obj->ReloadValue;
|
|
|
153:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->IsRunning = false;
|
|
|
154:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
155:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( TimerListHead == NULL )
|
|
|
156:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
157:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** HW_RTC_SetTimerContext( );
|
|
|
158:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerInsertNewHeadTimer( obj ); // insert a timeout at now+obj->Timestamp
|
|
|
159:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
160:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
161:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
162:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** elapsedTime = HW_RTC_GetTimerElapsedTime( );
|
|
|
163:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp += elapsedTime;
|
|
|
164:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
165:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( obj->Timestamp < TimerListHead->Timestamp )
|
|
|
166:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
167:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerInsertNewHeadTimer( obj);
|
|
|
168:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
169:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
170:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
171:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerInsertTimer( obj);
|
|
|
172:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
173:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
174:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** RESTORE_PRIMASK( );
|
|
|
175:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
176:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
177:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerInsertTimer( TimerEvent_t *obj)
|
|
|
178:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
179:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur = TimerListHead;
|
|
|
180:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* next = TimerListHead->Next;
|
|
|
181:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
182:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** while (cur->Next != NULL )
|
|
|
183:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
184:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( obj->Timestamp > next->Timestamp )
|
|
|
185:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
186:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = next;
|
|
|
187:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** next = next->Next;
|
|
|
188:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
189:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
190:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
191:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur->Next = obj;
|
|
|
192:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = next;
|
|
|
193:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return;
|
|
|
194:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
195:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
196:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
197:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur->Next = obj;
|
|
|
198:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = NULL;
|
|
|
199:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
200:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
201:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerInsertNewHeadTimer( TimerEvent_t *obj )
|
|
|
202:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
203:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur = TimerListHead;
|
|
|
204:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
205:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( cur != NULL )
|
|
|
ARM GAS /tmp/cciA02i6.s page 5
|
|
|
|
|
|
|
|
|
206:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
207:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur->IsRunning = false;
|
|
|
208:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
209:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
210:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = cur;
|
|
|
211:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = obj;
|
|
|
212:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
213:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
214:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
215:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerIrqHandler( void )
|
|
|
216:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
217:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur;
|
|
|
218:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* next;
|
|
|
219:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
220:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
221:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
222:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t old = HW_RTC_GetTimerContext( );
|
|
|
223:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t now = HW_RTC_SetTimerContext( );
|
|
|
224:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t DeltaContext = now - old; //intentionnal wrap around
|
|
|
225:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
226:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* update timeStamp based upon new Time Reference*/
|
|
|
227:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* beacuse delta context should never exceed 2^32*/
|
|
|
228:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if ( TimerListHead != NULL )
|
|
|
229:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
230:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** for (cur=TimerListHead; cur->Next != NULL; cur= cur->Next)
|
|
|
231:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
232:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** next =cur->Next;
|
|
|
233:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if (next->Timestamp > DeltaContext)
|
|
|
234:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
235:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** next->Timestamp -= DeltaContext;
|
|
|
236:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
237:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
238:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
239:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** next->Timestamp = 0 ;
|
|
|
240:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
241:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
242:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
243:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
244:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* execute imediately the alarm callback */
|
|
|
245:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if ( TimerListHead != NULL )
|
|
|
246:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
247:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = TimerListHead;
|
|
|
248:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
249:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** exec_cb( cur->Callback );
|
|
|
250:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
251:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
252:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
253:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** // remove all the expired object from the list
|
|
|
254:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** while( ( TimerListHead != NULL ) && ( TimerListHead->Timestamp < HW_RTC_GetTimerElapsedTime( )
|
|
|
255:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
256:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = TimerListHead;
|
|
|
257:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
258:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** exec_cb( cur->Callback );
|
|
|
259:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
260:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
261:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* start the next TimerListHead if it exists AND NOT running */
|
|
|
262:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if(( TimerListHead != NULL ) && (TimerListHead->IsRunning == false))
|
|
|
ARM GAS /tmp/cciA02i6.s page 6
|
|
|
|
|
|
|
|
|
263:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
264:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
265:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
266:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
267:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
268:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerStop( TimerEvent_t *obj )
|
|
|
269:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
270:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** BACKUP_PRIMASK();
|
|
|
271:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
272:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** DISABLE_IRQ( );
|
|
|
273:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
274:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* prev = TimerListHead;
|
|
|
275:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur = TimerListHead;
|
|
|
276:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
277:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** // List is empty or the Obj to stop does not exist
|
|
|
278:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( ( TimerListHead == NULL ) || ( obj == NULL ) )
|
|
|
279:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
280:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** RESTORE_PRIMASK( );
|
|
|
281:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return;
|
|
|
282:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
283:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
284:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( TimerListHead == obj ) // Stop the Head
|
|
|
285:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
286:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( TimerListHead->IsRunning == true ) // The head is already running
|
|
|
287:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
288:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( TimerListHead->Next != NULL )
|
|
|
289:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
290:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead->IsRunning = false;
|
|
|
291:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
292:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
293:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
294:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
295:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
296:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** HW_RTC_StopAlarm( );
|
|
|
297:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = NULL;
|
|
|
298:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
299:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
300:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else // Stop the head before it is started
|
|
|
301:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
302:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( TimerListHead->Next != NULL )
|
|
|
303:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
304:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
305:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
306:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
307:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
308:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = NULL;
|
|
|
309:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
310:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
311:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
312:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else // Stop an object within the list
|
|
|
313:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
314:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** while( cur != NULL )
|
|
|
315:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
316:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( cur == obj )
|
|
|
317:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
318:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( cur->Next != NULL )
|
|
|
319:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
ARM GAS /tmp/cciA02i6.s page 7
|
|
|
|
|
|
|
|
|
320:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = cur->Next;
|
|
|
321:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** prev->Next = cur;
|
|
|
322:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
323:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
324:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
325:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = NULL;
|
|
|
326:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** prev->Next = cur;
|
|
|
327:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
328:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** break;
|
|
|
329:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
330:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** else
|
|
|
331:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
332:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** prev = cur;
|
|
|
333:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = cur->Next;
|
|
|
334:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
335:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
336:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
337:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
338:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** RESTORE_PRIMASK( );
|
|
|
339:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
340:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
341:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static bool TimerExists( TimerEvent_t *obj )
|
|
|
342:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
343:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur = TimerListHead;
|
|
|
344:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
345:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** while( cur != NULL )
|
|
|
346:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
347:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( cur == obj )
|
|
|
348:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
349:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return true;
|
|
|
350:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
351:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = cur->Next;
|
|
|
352:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
353:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return false;
|
|
|
354:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
355:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
356:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerReset( TimerEvent_t *obj )
|
|
|
357:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
358:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerStop( obj );
|
|
|
359:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerStart( obj );
|
|
|
360:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
361:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
362:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** void TimerSetValue( TimerEvent_t *obj, uint32_t value )
|
|
|
363:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
364:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t minValue = 0;
|
|
|
365:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t ticks = HW_RTC_ms2Tick( value );
|
|
|
366:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
367:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerStop( obj );
|
|
|
368:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
369:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** minValue = HW_RTC_GetMinimumTimeout( );
|
|
|
370:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
371:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if( ticks < minValue )
|
|
|
372:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
373:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** ticks = minValue;
|
|
|
374:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
375:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
376:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp = ticks;
|
|
|
ARM GAS /tmp/cciA02i6.s page 8
|
|
|
|
|
|
|
|
|
377:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->ReloadValue = ticks;
|
|
|
378:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
379:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
380:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerTime_t TimerGetCurrentTime( void )
|
|
|
381:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
382:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t now = HW_RTC_GetTimerValue( );
|
|
|
383:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return HW_RTC_Tick2ms(now);
|
|
|
384:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
385:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
386:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerTime_t TimerGetElapsedTime( TimerTime_t past )
|
|
|
387:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
388:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t nowInTicks = HW_RTC_GetTimerValue( );
|
|
|
389:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t pastInTicks = HW_RTC_ms2Tick( past );
|
|
|
390:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* intentional wrap around. Works Ok if tick duation below 1ms */
|
|
|
391:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return HW_RTC_Tick2ms( nowInTicks- pastInTicks );
|
|
|
392:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
393:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
394:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** static void TimerSetTimeout( TimerEvent_t *obj )
|
|
|
395:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
25 .loc 1 395 0
|
|
|
26 .cfi_startproc
|
|
|
27 @ args = 0, pretend = 0, frame = 0
|
|
|
28 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
29 .LVL0:
|
|
|
30 0000 70B5 push {r4, r5, r6, lr}
|
|
|
31 .LCFI0:
|
|
|
32 .cfi_def_cfa_offset 16
|
|
|
33 .cfi_offset 4, -16
|
|
|
34 .cfi_offset 5, -12
|
|
|
35 .cfi_offset 6, -8
|
|
|
36 .cfi_offset 14, -4
|
|
|
37 0002 0400 movs r4, r0
|
|
|
396:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** int32_t minTicks= HW_RTC_GetMinimumTimeout( );
|
|
|
38 .loc 1 396 0
|
|
|
39 0004 FFF7FEFF bl HW_RTC_GetMinimumTimeout
|
|
|
40 .LVL1:
|
|
|
41 0008 0500 movs r5, r0
|
|
|
42 .LVL2:
|
|
|
397:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->IsRunning = true;
|
|
|
43 .loc 1 397 0
|
|
|
44 000a 0123 movs r3, #1
|
|
|
45 000c 2372 strb r3, [r4, #8]
|
|
|
398:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
399:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** //in case deadline too soon
|
|
|
400:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** if(obj->Timestamp < (HW_RTC_GetTimerElapsedTime( ) + minTicks) )
|
|
|
46 .loc 1 400 0
|
|
|
47 000e 2668 ldr r6, [r4]
|
|
|
48 0010 FFF7FEFF bl HW_RTC_GetTimerElapsedTime
|
|
|
49 .LVL3:
|
|
|
50 0014 2818 adds r0, r5, r0
|
|
|
51 0016 8642 cmp r6, r0
|
|
|
52 0018 03D3 bcc .L3
|
|
|
53 .LVL4:
|
|
|
54 .L2:
|
|
|
401:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
402:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp = HW_RTC_GetTimerElapsedTime( ) + minTicks;
|
|
|
403:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
ARM GAS /tmp/cciA02i6.s page 9
|
|
|
|
|
|
|
|
|
404:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** HW_RTC_SetAlarm( obj->Timestamp );
|
|
|
55 .loc 1 404 0
|
|
|
56 001a 2068 ldr r0, [r4]
|
|
|
57 001c FFF7FEFF bl HW_RTC_SetAlarm
|
|
|
58 .LVL5:
|
|
|
405:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
59 .loc 1 405 0
|
|
|
60 @ sp needed
|
|
|
61 .LVL6:
|
|
|
62 0020 70BD pop {r4, r5, r6, pc}
|
|
|
63 .LVL7:
|
|
|
64 .L3:
|
|
|
402:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
65 .loc 1 402 0
|
|
|
66 0022 FFF7FEFF bl HW_RTC_GetTimerElapsedTime
|
|
|
67 .LVL8:
|
|
|
68 0026 2D18 adds r5, r5, r0
|
|
|
69 .LVL9:
|
|
|
70 0028 2560 str r5, [r4]
|
|
|
71 002a F6E7 b .L2
|
|
|
72 .cfi_endproc
|
|
|
73 .LFE107:
|
|
|
75 .section .text.TimerInit,"ax",%progbits
|
|
|
76 .align 1
|
|
|
77 .global TimerInit
|
|
|
78 .syntax unified
|
|
|
79 .code 16
|
|
|
80 .thumb_func
|
|
|
81 .fpu softvfp
|
|
|
83 TimerInit:
|
|
|
84 .LFB96:
|
|
|
130:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp = 0;
|
|
|
85 .loc 1 130 0
|
|
|
86 .cfi_startproc
|
|
|
87 @ args = 0, pretend = 0, frame = 0
|
|
|
88 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
89 @ link register save eliminated.
|
|
|
90 .LVL10:
|
|
|
131:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->ReloadValue = 0;
|
|
|
91 .loc 1 131 0
|
|
|
92 0000 0023 movs r3, #0
|
|
|
93 0002 0360 str r3, [r0]
|
|
|
132:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->IsRunning = false;
|
|
|
94 .loc 1 132 0
|
|
|
95 0004 4360 str r3, [r0, #4]
|
|
|
133:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Callback = callback;
|
|
|
96 .loc 1 133 0
|
|
|
97 0006 0372 strb r3, [r0, #8]
|
|
|
134:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = NULL;
|
|
|
98 .loc 1 134 0
|
|
|
99 0008 C160 str r1, [r0, #12]
|
|
|
135:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
100 .loc 1 135 0
|
|
|
101 000a 0361 str r3, [r0, #16]
|
|
|
136:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
102 .loc 1 136 0
|
|
|
103 @ sp needed
|
|
|
ARM GAS /tmp/cciA02i6.s page 10
|
|
|
|
|
|
|
|
|
104 000c 7047 bx lr
|
|
|
105 .cfi_endproc
|
|
|
106 .LFE96:
|
|
|
108 .section .text.TimerStart,"ax",%progbits
|
|
|
109 .align 1
|
|
|
110 .global TimerStart
|
|
|
111 .syntax unified
|
|
|
112 .code 16
|
|
|
113 .thumb_func
|
|
|
114 .fpu softvfp
|
|
|
116 TimerStart:
|
|
|
117 .LFB97:
|
|
|
139:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t elapsedTime = 0;
|
|
|
118 .loc 1 139 0
|
|
|
119 .cfi_startproc
|
|
|
120 @ args = 0, pretend = 0, frame = 0
|
|
|
121 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
122 .LVL11:
|
|
|
123 0000 70B5 push {r4, r5, r6, lr}
|
|
|
124 .LCFI1:
|
|
|
125 .cfi_def_cfa_offset 16
|
|
|
126 .cfi_offset 4, -16
|
|
|
127 .cfi_offset 5, -12
|
|
|
128 .cfi_offset 6, -8
|
|
|
129 .cfi_offset 14, -4
|
|
|
130 0002 0400 movs r4, r0
|
|
|
131 .LVL12:
|
|
|
132 .LBB34:
|
|
|
133 .LBB35:
|
|
|
134 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
|
|
|
1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
|
|
|
2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
|
|
|
3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS Cortex-M Core Function/Instruction Header File
|
|
|
4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V4.30
|
|
|
5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 20. October 2015
|
|
|
6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
|
|
|
7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
|
8:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
9:Drivers/CMSIS/Include/cmsis_gcc.h **** All rights reserved.
|
|
|
10:Drivers/CMSIS/Include/cmsis_gcc.h **** Redistribution and use in source and binary forms, with or without
|
|
|
11:Drivers/CMSIS/Include/cmsis_gcc.h **** modification, are permitted provided that the following conditions are met:
|
|
|
12:Drivers/CMSIS/Include/cmsis_gcc.h **** - Redistributions of source code must retain the above copyright
|
|
|
13:Drivers/CMSIS/Include/cmsis_gcc.h **** notice, this list of conditions and the following disclaimer.
|
|
|
14:Drivers/CMSIS/Include/cmsis_gcc.h **** - Redistributions in binary form must reproduce the above copyright
|
|
|
15:Drivers/CMSIS/Include/cmsis_gcc.h **** notice, this list of conditions and the following disclaimer in the
|
|
|
16:Drivers/CMSIS/Include/cmsis_gcc.h **** documentation and/or other materials provided with the distribution.
|
|
|
17:Drivers/CMSIS/Include/cmsis_gcc.h **** - Neither the name of ARM nor the names of its contributors may be used
|
|
|
18:Drivers/CMSIS/Include/cmsis_gcc.h **** to endorse or promote products derived from this software without
|
|
|
19:Drivers/CMSIS/Include/cmsis_gcc.h **** specific prior written permission.
|
|
|
20:Drivers/CMSIS/Include/cmsis_gcc.h **** *
|
|
|
21:Drivers/CMSIS/Include/cmsis_gcc.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
22:Drivers/CMSIS/Include/cmsis_gcc.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
23:Drivers/CMSIS/Include/cmsis_gcc.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
24:Drivers/CMSIS/Include/cmsis_gcc.h **** ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
|
25:Drivers/CMSIS/Include/cmsis_gcc.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
26:Drivers/CMSIS/Include/cmsis_gcc.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
27:Drivers/CMSIS/Include/cmsis_gcc.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
ARM GAS /tmp/cciA02i6.s page 11
|
|
|
|
|
|
|
|
|
28:Drivers/CMSIS/Include/cmsis_gcc.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
29:Drivers/CMSIS/Include/cmsis_gcc.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
30:Drivers/CMSIS/Include/cmsis_gcc.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
31:Drivers/CMSIS/Include/cmsis_gcc.h **** POSSIBILITY OF SUCH DAMAGE.
|
|
|
32:Drivers/CMSIS/Include/cmsis_gcc.h **** ---------------------------------------------------------------------------*/
|
|
|
33:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
34:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
|
|
|
36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
|
|
|
37:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
38:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
|
|
|
39:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined ( __GNUC__ )
|
|
|
40:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
|
|
|
41:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
|
|
|
42:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
|
|
|
43:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
|
|
|
44:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
|
|
|
45:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
46:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
47:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
|
|
|
48:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
|
|
|
49:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
|
|
|
50:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
|
|
|
51:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
52:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
53:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
54:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
|
|
|
55:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
|
|
|
56:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
|
|
|
57:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
58:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void)
|
|
|
59:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
60:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
|
|
|
61:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
62:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
63:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
64:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
65:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
|
|
|
66:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
|
|
|
67:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
|
|
|
68:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
69:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
|
|
|
70:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
71:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
|
|
|
72:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
73:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
74:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
75:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
76:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
|
|
|
77:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
|
|
|
78:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
|
|
|
79:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
80:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void)
|
|
|
81:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
82:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
|
|
|
83:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
84:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
|
|
|
ARM GAS /tmp/cciA02i6.s page 12
|
|
|
|
|
|
|
|
|
85:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
86:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
87:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
88:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
89:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
90:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
|
|
|
91:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
|
|
|
92:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
|
|
|
93:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
94:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control)
|
|
|
95:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
96:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
|
|
|
97:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
98:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
99:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
100:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
101:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
|
|
|
102:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
|
|
|
103:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
|
|
|
104:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
105:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_IPSR(void)
|
|
|
106:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
107:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
|
|
|
108:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
109:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
|
|
|
110:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
111:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
112:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
113:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
114:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
115:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
|
|
|
116:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
|
|
|
117:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
|
|
|
118:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
119:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_APSR(void)
|
|
|
120:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
121:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
|
|
|
122:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
123:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
|
|
|
124:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
125:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
126:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
127:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
128:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
129:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
|
|
|
130:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
|
|
|
131:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
132:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
|
|
|
133:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
134:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_xPSR(void)
|
|
|
135:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
|
|
|
137:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
138:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
|
|
|
139:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
140:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
141:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
ARM GAS /tmp/cciA02i6.s page 13
|
|
|
|
|
|
|
|
|
142:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
143:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
144:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
|
|
|
145:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
|
|
|
146:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
|
|
|
147:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
148:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void)
|
|
|
149:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
150:Drivers/CMSIS/Include/cmsis_gcc.h **** register uint32_t result;
|
|
|
151:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
152:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp\n" : "=r" (result) );
|
|
|
153:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
154:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
155:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
156:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
157:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
158:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
|
|
|
159:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
|
|
|
160:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
|
|
|
161:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
162:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack)
|
|
|
163:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
164:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp");
|
|
|
165:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
166:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
167:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
168:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
169:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
|
|
|
170:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
|
|
|
171:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
|
|
|
172:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
173:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void)
|
|
|
174:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
175:Drivers/CMSIS/Include/cmsis_gcc.h **** register uint32_t result;
|
|
|
176:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
177:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp\n" : "=r" (result) );
|
|
|
178:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
179:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
180:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
181:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
182:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
183:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
|
|
|
184:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
|
|
|
185:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
186:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
|
|
|
187:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
188:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack)
|
|
|
189:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
190:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp");
|
|
|
191:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
192:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
193:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
194:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
195:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
|
|
|
196:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
|
|
|
197:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
|
|
|
198:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
ARM GAS /tmp/cciA02i6.s page 14
|
|
|
|
|
|
|
|
|
199:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void)
|
|
|
200:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
201:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
|
|
|
202:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
203:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) );
|
|
|
135 .loc 2 203 0
|
|
|
136 .syntax divided
|
|
|
137 @ 203 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
138 0004 EFF31085 MRS r5, primask
|
|
|
139 @ 0 "" 2
|
|
|
140 .thumb
|
|
|
141 .syntax unified
|
|
|
142 .LBE35:
|
|
|
143 .LBE34:
|
|
|
144 .LBB36:
|
|
|
145 .LBB37:
|
|
|
71:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
146 .loc 2 71 0
|
|
|
147 .syntax divided
|
|
|
148 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
149 0008 72B6 cpsid i
|
|
|
150 @ 0 "" 2
|
|
|
151 .thumb
|
|
|
152 .syntax unified
|
|
|
153 .LBE37:
|
|
|
154 .LBE36:
|
|
|
147:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
155 .loc 1 147 0
|
|
|
156 000a 0028 cmp r0, #0
|
|
|
157 000c 29D0 beq .L6
|
|
|
158 .LVL13:
|
|
|
159 .LBB38:
|
|
|
160 .LBB39:
|
|
|
343:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
161 .loc 1 343 0
|
|
|
162 000e 264B ldr r3, .L23
|
|
|
163 0010 1A68 ldr r2, [r3]
|
|
|
164 .LVL14:
|
|
|
165 0012 1300 movs r3, r2
|
|
|
166 .LVL15:
|
|
|
167 .L7:
|
|
|
345:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
168 .loc 1 345 0
|
|
|
169 0014 002B cmp r3, #0
|
|
|
170 0016 04D0 beq .L8
|
|
|
347:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
171 .loc 1 347 0
|
|
|
172 0018 9C42 cmp r4, r3
|
|
|
173 001a 01D0 beq .L20
|
|
|
351:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
174 .loc 1 351 0
|
|
|
175 001c 1B69 ldr r3, [r3, #16]
|
|
|
176 .LVL16:
|
|
|
177 001e F9E7 b .L7
|
|
|
178 .L20:
|
|
|
349:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
179 .loc 1 349 0
|
|
|
ARM GAS /tmp/cciA02i6.s page 15
|
|
|
|
|
|
|
|
|
180 0020 0123 movs r3, #1
|
|
|
181 .LVL17:
|
|
|
182 .L8:
|
|
|
183 .LBE39:
|
|
|
184 .LBE38:
|
|
|
147:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
185 .loc 1 147 0
|
|
|
186 0022 002B cmp r3, #0
|
|
|
187 0024 1DD1 bne .L6
|
|
|
152:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->IsRunning = false;
|
|
|
188 .loc 1 152 0
|
|
|
189 0026 6368 ldr r3, [r4, #4]
|
|
|
190 0028 2360 str r3, [r4]
|
|
|
153:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
191 .loc 1 153 0
|
|
|
192 002a 0023 movs r3, #0
|
|
|
193 002c 2372 strb r3, [r4, #8]
|
|
|
155:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
194 .loc 1 155 0
|
|
|
195 002e 002A cmp r2, #0
|
|
|
196 0030 1AD0 beq .L21
|
|
|
162:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Timestamp += elapsedTime;
|
|
|
197 .loc 1 162 0
|
|
|
198 0032 FFF7FEFF bl HW_RTC_GetTimerElapsedTime
|
|
|
199 .LVL18:
|
|
|
163:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
200 .loc 1 163 0
|
|
|
201 0036 2368 ldr r3, [r4]
|
|
|
202 0038 9C46 mov ip, r3
|
|
|
203 003a 6044 add r0, r0, ip
|
|
|
204 .LVL19:
|
|
|
205 003c 2060 str r0, [r4]
|
|
|
165:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
206 .loc 1 165 0
|
|
|
207 003e 1A4B ldr r3, .L23
|
|
|
208 0040 1A68 ldr r2, [r3]
|
|
|
209 0042 1368 ldr r3, [r2]
|
|
|
210 0044 9842 cmp r0, r3
|
|
|
211 0046 1ED2 bcs .L15
|
|
|
212 .LVL20:
|
|
|
213 .LBB40:
|
|
|
214 .LBB41:
|
|
|
205:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
215 .loc 1 205 0
|
|
|
216 0048 002A cmp r2, #0
|
|
|
217 004a 01D0 beq .L16
|
|
|
207:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
218 .loc 1 207 0
|
|
|
219 004c 0023 movs r3, #0
|
|
|
220 004e 1372 strb r3, [r2, #8]
|
|
|
221 .L16:
|
|
|
210:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = obj;
|
|
|
222 .loc 1 210 0
|
|
|
223 0050 2261 str r2, [r4, #16]
|
|
|
211:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
224 .loc 1 211 0
|
|
|
225 0052 154B ldr r3, .L23
|
|
|
ARM GAS /tmp/cciA02i6.s page 16
|
|
|
|
|
|
|
|
|
226 0054 1C60 str r4, [r3]
|
|
|
212:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
227 .loc 1 212 0
|
|
|
228 0056 2000 movs r0, r4
|
|
|
229 0058 FFF7FEFF bl TimerSetTimeout
|
|
|
230 .LVL21:
|
|
|
231 .L14:
|
|
|
232 .LBE41:
|
|
|
233 .LBE40:
|
|
|
234 .LBB42:
|
|
|
235 .LBB43:
|
|
|
204:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
205:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
206:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
207:Drivers/CMSIS/Include/cmsis_gcc.h ****
|
|
|
208:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
|
|
|
209:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
|
|
|
210:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
|
|
|
211:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
|
|
|
212:Drivers/CMSIS/Include/cmsis_gcc.h **** */
|
|
|
213:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask)
|
|
|
214:Drivers/CMSIS/Include/cmsis_gcc.h **** {
|
|
|
215:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
|
|
|
236 .loc 2 215 0
|
|
|
237 .syntax divided
|
|
|
238 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
239 005c 85F31088 MSR primask, r5
|
|
|
240 @ 0 "" 2
|
|
|
241 .thumb
|
|
|
242 .syntax unified
|
|
|
243 0060 01E0 b .L5
|
|
|
244 .LVL22:
|
|
|
245 .L6:
|
|
|
246 .LBE43:
|
|
|
247 .LBE42:
|
|
|
248 .LBB44:
|
|
|
249 .LBB45:
|
|
|
250 .syntax divided
|
|
|
251 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
252 0062 85F31088 MSR primask, r5
|
|
|
253 @ 0 "" 2
|
|
|
254 .LVL23:
|
|
|
255 .thumb
|
|
|
256 .syntax unified
|
|
|
257 .L5:
|
|
|
258 .LBE45:
|
|
|
259 .LBE44:
|
|
|
175:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
260 .loc 1 175 0
|
|
|
261 @ sp needed
|
|
|
262 .LVL24:
|
|
|
263 0066 70BD pop {r4, r5, r6, pc}
|
|
|
264 .LVL25:
|
|
|
265 .L21:
|
|
|
157:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerInsertNewHeadTimer( obj ); // insert a timeout at now+obj->Timestamp
|
|
|
266 .loc 1 157 0
|
|
|
267 0068 FFF7FEFF bl HW_RTC_SetTimerContext
|
|
|
ARM GAS /tmp/cciA02i6.s page 17
|
|
|
|
|
|
|
|
|
268 .LVL26:
|
|
|
269 .LBB46:
|
|
|
270 .LBB47:
|
|
|
203:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
271 .loc 1 203 0
|
|
|
272 006c 0E4B ldr r3, .L23
|
|
|
273 006e 1B68 ldr r3, [r3]
|
|
|
274 .LVL27:
|
|
|
205:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
275 .loc 1 205 0
|
|
|
276 0070 002B cmp r3, #0
|
|
|
277 0072 01D0 beq .L13
|
|
|
207:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
278 .loc 1 207 0
|
|
|
279 0074 0022 movs r2, #0
|
|
|
280 0076 1A72 strb r2, [r3, #8]
|
|
|
281 .L13:
|
|
|
210:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = obj;
|
|
|
282 .loc 1 210 0
|
|
|
283 0078 2361 str r3, [r4, #16]
|
|
|
211:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
284 .loc 1 211 0
|
|
|
285 007a 0B4B ldr r3, .L23
|
|
|
286 .LVL28:
|
|
|
287 007c 1C60 str r4, [r3]
|
|
|
288 .LVL29:
|
|
|
212:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
289 .loc 1 212 0
|
|
|
290 007e 2000 movs r0, r4
|
|
|
291 0080 FFF7FEFF bl TimerSetTimeout
|
|
|
292 .LVL30:
|
|
|
293 0084 EAE7 b .L14
|
|
|
294 .LVL31:
|
|
|
295 .L15:
|
|
|
296 .LBE47:
|
|
|
297 .LBE46:
|
|
|
298 .LBB48:
|
|
|
299 .LBB49:
|
|
|
180:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
300 .loc 1 180 0
|
|
|
301 0086 1369 ldr r3, [r2, #16]
|
|
|
302 .LVL32:
|
|
|
303 .L17:
|
|
|
182:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
304 .loc 1 182 0
|
|
|
305 0088 1169 ldr r1, [r2, #16]
|
|
|
306 008a 0029 cmp r1, #0
|
|
|
307 008c 08D0 beq .L22
|
|
|
184:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
308 .loc 1 184 0
|
|
|
309 008e 1968 ldr r1, [r3]
|
|
|
310 0090 8842 cmp r0, r1
|
|
|
311 0092 02D9 bls .L18
|
|
|
312 .LVL33:
|
|
|
186:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** next = next->Next;
|
|
|
313 .loc 1 186 0
|
|
|
314 0094 1A00 movs r2, r3
|
|
|
ARM GAS /tmp/cciA02i6.s page 18
|
|
|
|
|
|
|
|
|
187:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
315 .loc 1 187 0
|
|
|
316 0096 1B69 ldr r3, [r3, #16]
|
|
|
317 .LVL34:
|
|
|
318 0098 F6E7 b .L17
|
|
|
319 .L18:
|
|
|
191:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = next;
|
|
|
320 .loc 1 191 0
|
|
|
321 009a 1461 str r4, [r2, #16]
|
|
|
192:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return;
|
|
|
322 .loc 1 192 0
|
|
|
323 009c 2361 str r3, [r4, #16]
|
|
|
324 009e DDE7 b .L14
|
|
|
325 .L22:
|
|
|
197:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->Next = NULL;
|
|
|
326 .loc 1 197 0
|
|
|
327 00a0 1461 str r4, [r2, #16]
|
|
|
198:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
328 .loc 1 198 0
|
|
|
329 00a2 0023 movs r3, #0
|
|
|
330 .LVL35:
|
|
|
331 00a4 2361 str r3, [r4, #16]
|
|
|
332 00a6 D9E7 b .L14
|
|
|
333 .L24:
|
|
|
334 .align 2
|
|
|
335 .L23:
|
|
|
336 00a8 00000000 .word .LANCHOR0
|
|
|
337 .LBE49:
|
|
|
338 .LBE48:
|
|
|
339 .cfi_endproc
|
|
|
340 .LFE97:
|
|
|
342 .section .text.TimerIrqHandler,"ax",%progbits
|
|
|
343 .align 1
|
|
|
344 .global TimerIrqHandler
|
|
|
345 .syntax unified
|
|
|
346 .code 16
|
|
|
347 .thumb_func
|
|
|
348 .fpu softvfp
|
|
|
350 TimerIrqHandler:
|
|
|
351 .LFB100:
|
|
|
216:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur;
|
|
|
352 .loc 1 216 0
|
|
|
353 .cfi_startproc
|
|
|
354 @ args = 0, pretend = 0, frame = 0
|
|
|
355 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
356 0000 10B5 push {r4, lr}
|
|
|
357 .LCFI2:
|
|
|
358 .cfi_def_cfa_offset 8
|
|
|
359 .cfi_offset 4, -8
|
|
|
360 .cfi_offset 14, -4
|
|
|
222:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t now = HW_RTC_SetTimerContext( );
|
|
|
361 .loc 1 222 0
|
|
|
362 0002 FFF7FEFF bl HW_RTC_GetTimerContext
|
|
|
363 .LVL36:
|
|
|
364 0006 0400 movs r4, r0
|
|
|
365 .LVL37:
|
|
|
223:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t DeltaContext = now - old; //intentionnal wrap around
|
|
|
ARM GAS /tmp/cciA02i6.s page 19
|
|
|
|
|
|
|
|
|
366 .loc 1 223 0
|
|
|
367 0008 FFF7FEFF bl HW_RTC_SetTimerContext
|
|
|
368 .LVL38:
|
|
|
224:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
369 .loc 1 224 0
|
|
|
370 000c 001B subs r0, r0, r4
|
|
|
371 .LVL39:
|
|
|
228:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
372 .loc 1 228 0
|
|
|
373 000e 1C4B ldr r3, .L41
|
|
|
374 0010 1B68 ldr r3, [r3]
|
|
|
375 0012 002B cmp r3, #0
|
|
|
376 0014 0DD0 beq .L27
|
|
|
230:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
377 .loc 1 230 0
|
|
|
378 0016 1C00 movs r4, r3
|
|
|
379 .LVL40:
|
|
|
380 0018 02E0 b .L26
|
|
|
381 .LVL41:
|
|
|
382 .L28:
|
|
|
239:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
383 .loc 1 239 0
|
|
|
384 001a 0021 movs r1, #0
|
|
|
385 001c 1160 str r1, [r2]
|
|
|
386 .L29:
|
|
|
230:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
387 .loc 1 230 0 discriminator 2
|
|
|
388 001e 2469 ldr r4, [r4, #16]
|
|
|
389 .LVL42:
|
|
|
390 .L26:
|
|
|
230:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
391 .loc 1 230 0 is_stmt 0 discriminator 1
|
|
|
392 0020 2269 ldr r2, [r4, #16]
|
|
|
393 0022 002A cmp r2, #0
|
|
|
394 0024 05D0 beq .L27
|
|
|
395 .LVL43:
|
|
|
233:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
396 .loc 1 233 0 is_stmt 1
|
|
|
397 0026 1168 ldr r1, [r2]
|
|
|
398 0028 8142 cmp r1, r0
|
|
|
399 002a F6D9 bls .L28
|
|
|
235:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
400 .loc 1 235 0
|
|
|
401 002c 091A subs r1, r1, r0
|
|
|
402 002e 1160 str r1, [r2]
|
|
|
403 0030 F5E7 b .L29
|
|
|
404 .LVL44:
|
|
|
405 .L27:
|
|
|
245:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
406 .loc 1 245 0
|
|
|
407 0032 002B cmp r3, #0
|
|
|
408 0034 06D0 beq .L36
|
|
|
409 .LVL45:
|
|
|
248:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** exec_cb( cur->Callback );
|
|
|
410 .loc 1 248 0
|
|
|
411 0036 124A ldr r2, .L41
|
|
|
412 0038 1969 ldr r1, [r3, #16]
|
|
|
ARM GAS /tmp/cciA02i6.s page 20
|
|
|
|
|
|
|
|
|
413 003a 1160 str r1, [r2]
|
|
|
249:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
414 .loc 1 249 0
|
|
|
415 003c DB68 ldr r3, [r3, #12]
|
|
|
416 .LVL46:
|
|
|
417 003e 002B cmp r3, #0
|
|
|
418 0040 12D0 beq .L33
|
|
|
249:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
419 .loc 1 249 0 is_stmt 0 discriminator 1
|
|
|
420 0042 9847 blx r3
|
|
|
421 .LVL47:
|
|
|
422 .L36:
|
|
|
254:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
423 .loc 1 254 0 is_stmt 1
|
|
|
424 0044 0E4B ldr r3, .L41
|
|
|
425 0046 1B68 ldr r3, [r3]
|
|
|
426 0048 002B cmp r3, #0
|
|
|
427 004a 0FD0 beq .L37
|
|
|
254:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
428 .loc 1 254 0 is_stmt 0 discriminator 1
|
|
|
429 004c 1C68 ldr r4, [r3]
|
|
|
430 004e FFF7FEFF bl HW_RTC_GetTimerElapsedTime
|
|
|
431 .LVL48:
|
|
|
432 0052 8442 cmp r4, r0
|
|
|
433 0054 0AD2 bcs .L37
|
|
|
256:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
434 .loc 1 256 0 is_stmt 1
|
|
|
435 0056 0A4A ldr r2, .L41
|
|
|
436 0058 1368 ldr r3, [r2]
|
|
|
437 .LVL49:
|
|
|
257:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** exec_cb( cur->Callback );
|
|
|
438 .loc 1 257 0
|
|
|
439 005a 1969 ldr r1, [r3, #16]
|
|
|
440 005c 1160 str r1, [r2]
|
|
|
258:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
441 .loc 1 258 0
|
|
|
442 005e DB68 ldr r3, [r3, #12]
|
|
|
443 .LVL50:
|
|
|
444 0060 002B cmp r3, #0
|
|
|
445 0062 02D0 beq .L35
|
|
|
258:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
446 .loc 1 258 0 is_stmt 0 discriminator 1
|
|
|
447 0064 9847 blx r3
|
|
|
448 .LVL51:
|
|
|
449 0066 EDE7 b .L36
|
|
|
450 .LVL52:
|
|
|
451 .L33:
|
|
|
452 0068 FEE7 b .L33
|
|
|
453 .LVL53:
|
|
|
454 .L35:
|
|
|
455 006a FEE7 b .L35
|
|
|
456 .L37:
|
|
|
262:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
457 .loc 1 262 0 is_stmt 1
|
|
|
458 006c 044B ldr r3, .L41
|
|
|
459 006e 1868 ldr r0, [r3]
|
|
|
460 0070 0028 cmp r0, #0
|
|
|
ARM GAS /tmp/cciA02i6.s page 21
|
|
|
|
|
|
|
|
|
461 0072 04D0 beq .L25
|
|
|
262:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
462 .loc 1 262 0 is_stmt 0 discriminator 1
|
|
|
463 0074 037A ldrb r3, [r0, #8]
|
|
|
464 0076 002B cmp r3, #0
|
|
|
465 0078 01D1 bne .L25
|
|
|
264:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
466 .loc 1 264 0 is_stmt 1
|
|
|
467 007a FFF7FEFF bl TimerSetTimeout
|
|
|
468 .LVL54:
|
|
|
469 .L25:
|
|
|
266:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
470 .loc 1 266 0
|
|
|
471 @ sp needed
|
|
|
472 007e 10BD pop {r4, pc}
|
|
|
473 .L42:
|
|
|
474 .align 2
|
|
|
475 .L41:
|
|
|
476 0080 00000000 .word .LANCHOR0
|
|
|
477 .cfi_endproc
|
|
|
478 .LFE100:
|
|
|
480 .section .text.TimerStop,"ax",%progbits
|
|
|
481 .align 1
|
|
|
482 .global TimerStop
|
|
|
483 .syntax unified
|
|
|
484 .code 16
|
|
|
485 .thumb_func
|
|
|
486 .fpu softvfp
|
|
|
488 TimerStop:
|
|
|
489 .LFB101:
|
|
|
269:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** BACKUP_PRIMASK();
|
|
|
490 .loc 1 269 0
|
|
|
491 .cfi_startproc
|
|
|
492 @ args = 0, pretend = 0, frame = 0
|
|
|
493 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
494 .LVL55:
|
|
|
495 0000 10B5 push {r4, lr}
|
|
|
496 .LCFI3:
|
|
|
497 .cfi_def_cfa_offset 8
|
|
|
498 .cfi_offset 4, -8
|
|
|
499 .cfi_offset 14, -4
|
|
|
500 .LBB50:
|
|
|
501 .LBB51:
|
|
|
203:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
|
|
|
502 .loc 2 203 0
|
|
|
503 .syntax divided
|
|
|
504 @ 203 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
505 0002 EFF31084 MRS r4, primask
|
|
|
506 @ 0 "" 2
|
|
|
507 .thumb
|
|
|
508 .syntax unified
|
|
|
509 .LBE51:
|
|
|
510 .LBE50:
|
|
|
511 .LBB52:
|
|
|
512 .LBB53:
|
|
|
71:Drivers/CMSIS/Include/cmsis_gcc.h **** }
|
|
|
513 .loc 2 71 0
|
|
|
ARM GAS /tmp/cciA02i6.s page 22
|
|
|
|
|
|
|
|
|
514 .syntax divided
|
|
|
515 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
516 0006 72B6 cpsid i
|
|
|
517 @ 0 "" 2
|
|
|
518 .thumb
|
|
|
519 .syntax unified
|
|
|
520 .LBE53:
|
|
|
521 .LBE52:
|
|
|
274:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerEvent_t* cur = TimerListHead;
|
|
|
522 .loc 1 274 0
|
|
|
523 0008 1C4B ldr r3, .L58
|
|
|
524 000a 1A68 ldr r2, [r3]
|
|
|
525 .LVL56:
|
|
|
278:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
526 .loc 1 278 0
|
|
|
527 000c 002A cmp r2, #0
|
|
|
528 000e 0BD0 beq .L44
|
|
|
278:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
529 .loc 1 278 0 is_stmt 0 discriminator 1
|
|
|
530 0010 0028 cmp r0, #0
|
|
|
531 0012 09D0 beq .L44
|
|
|
284:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
532 .loc 1 284 0 is_stmt 1
|
|
|
533 0014 8242 cmp r2, r0
|
|
|
534 0016 0AD0 beq .L56
|
|
|
275:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
535 .loc 1 275 0
|
|
|
536 0018 1300 movs r3, r2
|
|
|
537 .LVL57:
|
|
|
538 .L47:
|
|
|
314:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
539 .loc 1 314 0
|
|
|
540 001a 002B cmp r3, #0
|
|
|
541 001c 28D0 beq .L50
|
|
|
316:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
542 .loc 1 316 0
|
|
|
543 001e 8342 cmp r3, r0
|
|
|
544 0020 22D0 beq .L57
|
|
|
545 .LVL58:
|
|
|
332:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** cur = cur->Next;
|
|
|
546 .loc 1 332 0
|
|
|
547 0022 1A00 movs r2, r3
|
|
|
333:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
548 .loc 1 333 0
|
|
|
549 0024 1B69 ldr r3, [r3, #16]
|
|
|
550 .LVL59:
|
|
|
551 0026 F8E7 b .L47
|
|
|
552 .LVL60:
|
|
|
553 .L44:
|
|
|
554 .LBB54:
|
|
|
555 .LBB55:
|
|
|
556 .loc 2 215 0
|
|
|
557 .syntax divided
|
|
|
558 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
559 0028 84F31088 MSR primask, r4
|
|
|
560 @ 0 "" 2
|
|
|
561 .thumb
|
|
|
ARM GAS /tmp/cciA02i6.s page 23
|
|
|
|
|
|
|
|
|
562 .syntax unified
|
|
|
563 002c 22E0 b .L43
|
|
|
564 .LVL61:
|
|
|
565 .L56:
|
|
|
566 .LBE55:
|
|
|
567 .LBE54:
|
|
|
286:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
568 .loc 1 286 0
|
|
|
569 002e 137A ldrb r3, [r2, #8]
|
|
|
570 0030 002B cmp r3, #0
|
|
|
571 0032 0FD0 beq .L48
|
|
|
288:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
572 .loc 1 288 0
|
|
|
573 0034 1069 ldr r0, [r2, #16]
|
|
|
574 .LVL62:
|
|
|
575 0036 0028 cmp r0, #0
|
|
|
576 0038 06D0 beq .L49
|
|
|
290:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = TimerListHead->Next;
|
|
|
577 .loc 1 290 0
|
|
|
578 003a 0023 movs r3, #0
|
|
|
579 003c 1372 strb r3, [r2, #8]
|
|
|
291:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerSetTimeout( TimerListHead );
|
|
|
580 .loc 1 291 0
|
|
|
581 003e 0F4B ldr r3, .L58
|
|
|
582 0040 1860 str r0, [r3]
|
|
|
292:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
583 .loc 1 292 0
|
|
|
584 0042 FFF7FEFF bl TimerSetTimeout
|
|
|
585 .LVL63:
|
|
|
586 0046 13E0 b .L50
|
|
|
587 .LVL64:
|
|
|
588 .L49:
|
|
|
296:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerListHead = NULL;
|
|
|
589 .loc 1 296 0
|
|
|
590 0048 FFF7FEFF bl HW_RTC_StopAlarm
|
|
|
591 .LVL65:
|
|
|
297:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
592 .loc 1 297 0
|
|
|
593 004c 0B4B ldr r3, .L58
|
|
|
594 004e 0022 movs r2, #0
|
|
|
595 0050 1A60 str r2, [r3]
|
|
|
596 0052 0DE0 b .L50
|
|
|
597 .LVL66:
|
|
|
598 .L48:
|
|
|
302:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
599 .loc 1 302 0
|
|
|
600 0054 1369 ldr r3, [r2, #16]
|
|
|
601 0056 002B cmp r3, #0
|
|
|
602 0058 02D0 beq .L51
|
|
|
304:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
603 .loc 1 304 0
|
|
|
604 005a 084A ldr r2, .L58
|
|
|
605 .LVL67:
|
|
|
606 005c 1360 str r3, [r2]
|
|
|
607 .LVL68:
|
|
|
608 005e 07E0 b .L50
|
|
|
609 .LVL69:
|
|
|
ARM GAS /tmp/cciA02i6.s page 24
|
|
|
|
|
|
|
|
|
610 .L51:
|
|
|
308:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
611 .loc 1 308 0
|
|
|
612 0060 064B ldr r3, .L58
|
|
|
613 0062 0022 movs r2, #0
|
|
|
614 .LVL70:
|
|
|
615 0064 1A60 str r2, [r3]
|
|
|
616 .LVL71:
|
|
|
617 0066 03E0 b .L50
|
|
|
618 .LVL72:
|
|
|
619 .L57:
|
|
|
318:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
620 .loc 1 318 0
|
|
|
621 0068 1B69 ldr r3, [r3, #16]
|
|
|
622 .LVL73:
|
|
|
623 006a 002B cmp r3, #0
|
|
|
624 006c 03D0 beq .L53
|
|
|
625 .LVL74:
|
|
|
321:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
626 .loc 1 321 0
|
|
|
627 006e 1361 str r3, [r2, #16]
|
|
|
628 .LVL75:
|
|
|
629 .L50:
|
|
|
630 .LBB56:
|
|
|
631 .LBB57:
|
|
|
632 .loc 2 215 0
|
|
|
633 .syntax divided
|
|
|
634 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
|
|
|
635 0070 84F31088 MSR primask, r4
|
|
|
636 @ 0 "" 2
|
|
|
637 .LVL76:
|
|
|
638 .thumb
|
|
|
639 .syntax unified
|
|
|
640 .L43:
|
|
|
641 .LBE57:
|
|
|
642 .LBE56:
|
|
|
339:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
643 .loc 1 339 0
|
|
|
644 @ sp needed
|
|
|
645 0074 10BD pop {r4, pc}
|
|
|
646 .LVL77:
|
|
|
647 .L53:
|
|
|
326:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
648 .loc 1 326 0
|
|
|
649 0076 0023 movs r3, #0
|
|
|
650 0078 1361 str r3, [r2, #16]
|
|
|
651 007a F9E7 b .L50
|
|
|
652 .L59:
|
|
|
653 .align 2
|
|
|
654 .L58:
|
|
|
655 007c 00000000 .word .LANCHOR0
|
|
|
656 .cfi_endproc
|
|
|
657 .LFE101:
|
|
|
659 .section .text.TimerReset,"ax",%progbits
|
|
|
660 .align 1
|
|
|
661 .global TimerReset
|
|
|
662 .syntax unified
|
|
|
ARM GAS /tmp/cciA02i6.s page 25
|
|
|
|
|
|
|
|
|
663 .code 16
|
|
|
664 .thumb_func
|
|
|
665 .fpu softvfp
|
|
|
667 TimerReset:
|
|
|
668 .LFB103:
|
|
|
357:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerStop( obj );
|
|
|
669 .loc 1 357 0
|
|
|
670 .cfi_startproc
|
|
|
671 @ args = 0, pretend = 0, frame = 0
|
|
|
672 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
673 .LVL78:
|
|
|
674 0000 10B5 push {r4, lr}
|
|
|
675 .LCFI4:
|
|
|
676 .cfi_def_cfa_offset 8
|
|
|
677 .cfi_offset 4, -8
|
|
|
678 .cfi_offset 14, -4
|
|
|
679 0002 0400 movs r4, r0
|
|
|
358:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** TimerStart( obj );
|
|
|
680 .loc 1 358 0
|
|
|
681 0004 FFF7FEFF bl TimerStop
|
|
|
682 .LVL79:
|
|
|
359:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
683 .loc 1 359 0
|
|
|
684 0008 2000 movs r0, r4
|
|
|
685 000a FFF7FEFF bl TimerStart
|
|
|
686 .LVL80:
|
|
|
360:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
687 .loc 1 360 0
|
|
|
688 @ sp needed
|
|
|
689 .LVL81:
|
|
|
690 000e 10BD pop {r4, pc}
|
|
|
691 .cfi_endproc
|
|
|
692 .LFE103:
|
|
|
694 .section .text.TimerSetValue,"ax",%progbits
|
|
|
695 .align 1
|
|
|
696 .global TimerSetValue
|
|
|
697 .syntax unified
|
|
|
698 .code 16
|
|
|
699 .thumb_func
|
|
|
700 .fpu softvfp
|
|
|
702 TimerSetValue:
|
|
|
703 .LFB104:
|
|
|
363:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t minValue = 0;
|
|
|
704 .loc 1 363 0
|
|
|
705 .cfi_startproc
|
|
|
706 @ args = 0, pretend = 0, frame = 0
|
|
|
707 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
708 .LVL82:
|
|
|
709 0000 70B5 push {r4, r5, r6, lr}
|
|
|
710 .LCFI5:
|
|
|
711 .cfi_def_cfa_offset 16
|
|
|
712 .cfi_offset 4, -16
|
|
|
713 .cfi_offset 5, -12
|
|
|
714 .cfi_offset 6, -8
|
|
|
715 .cfi_offset 14, -4
|
|
|
716 0002 0400 movs r4, r0
|
|
|
717 .LVL83:
|
|
|
ARM GAS /tmp/cciA02i6.s page 26
|
|
|
|
|
|
|
|
|
365:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
718 .loc 1 365 0
|
|
|
719 0004 0800 movs r0, r1
|
|
|
720 .LVL84:
|
|
|
721 0006 FFF7FEFF bl HW_RTC_ms2Tick
|
|
|
722 .LVL85:
|
|
|
723 000a 0500 movs r5, r0
|
|
|
724 .LVL86:
|
|
|
367:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
725 .loc 1 367 0
|
|
|
726 000c 2000 movs r0, r4
|
|
|
727 .LVL87:
|
|
|
728 000e FFF7FEFF bl TimerStop
|
|
|
729 .LVL88:
|
|
|
369:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
730 .loc 1 369 0
|
|
|
731 0012 FFF7FEFF bl HW_RTC_GetMinimumTimeout
|
|
|
732 .LVL89:
|
|
|
371:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** {
|
|
|
733 .loc 1 371 0
|
|
|
734 0016 8542 cmp r5, r0
|
|
|
735 0018 02D2 bcs .L63
|
|
|
736 .LVL90:
|
|
|
737 .L62:
|
|
|
376:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** obj->ReloadValue = ticks;
|
|
|
738 .loc 1 376 0
|
|
|
739 001a 2060 str r0, [r4]
|
|
|
377:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
740 .loc 1 377 0
|
|
|
741 001c 6060 str r0, [r4, #4]
|
|
|
378:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
742 .loc 1 378 0
|
|
|
743 @ sp needed
|
|
|
744 .LVL91:
|
|
|
745 001e 70BD pop {r4, r5, r6, pc}
|
|
|
746 .LVL92:
|
|
|
747 .L63:
|
|
|
365:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
748 .loc 1 365 0
|
|
|
749 0020 2800 movs r0, r5
|
|
|
750 .LVL93:
|
|
|
751 0022 FAE7 b .L62
|
|
|
752 .cfi_endproc
|
|
|
753 .LFE104:
|
|
|
755 .section .text.TimerGetCurrentTime,"ax",%progbits
|
|
|
756 .align 1
|
|
|
757 .global TimerGetCurrentTime
|
|
|
758 .syntax unified
|
|
|
759 .code 16
|
|
|
760 .thumb_func
|
|
|
761 .fpu softvfp
|
|
|
763 TimerGetCurrentTime:
|
|
|
764 .LFB105:
|
|
|
381:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t now = HW_RTC_GetTimerValue( );
|
|
|
765 .loc 1 381 0
|
|
|
766 .cfi_startproc
|
|
|
767 @ args = 0, pretend = 0, frame = 0
|
|
|
ARM GAS /tmp/cciA02i6.s page 27
|
|
|
|
|
|
|
|
|
768 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
769 0000 10B5 push {r4, lr}
|
|
|
770 .LCFI6:
|
|
|
771 .cfi_def_cfa_offset 8
|
|
|
772 .cfi_offset 4, -8
|
|
|
773 .cfi_offset 14, -4
|
|
|
382:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** return HW_RTC_Tick2ms(now);
|
|
|
774 .loc 1 382 0
|
|
|
775 0002 FFF7FEFF bl HW_RTC_GetTimerValue
|
|
|
776 .LVL94:
|
|
|
383:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
777 .loc 1 383 0
|
|
|
778 0006 FFF7FEFF bl HW_RTC_Tick2ms
|
|
|
779 .LVL95:
|
|
|
384:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
780 .loc 1 384 0
|
|
|
781 @ sp needed
|
|
|
782 000a 10BD pop {r4, pc}
|
|
|
783 .cfi_endproc
|
|
|
784 .LFE105:
|
|
|
786 .section .text.TimerGetElapsedTime,"ax",%progbits
|
|
|
787 .align 1
|
|
|
788 .global TimerGetElapsedTime
|
|
|
789 .syntax unified
|
|
|
790 .code 16
|
|
|
791 .thumb_func
|
|
|
792 .fpu softvfp
|
|
|
794 TimerGetElapsedTime:
|
|
|
795 .LFB106:
|
|
|
387:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t nowInTicks = HW_RTC_GetTimerValue( );
|
|
|
796 .loc 1 387 0
|
|
|
797 .cfi_startproc
|
|
|
798 @ args = 0, pretend = 0, frame = 0
|
|
|
799 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
800 .LVL96:
|
|
|
801 0000 70B5 push {r4, r5, r6, lr}
|
|
|
802 .LCFI7:
|
|
|
803 .cfi_def_cfa_offset 16
|
|
|
804 .cfi_offset 4, -16
|
|
|
805 .cfi_offset 5, -12
|
|
|
806 .cfi_offset 6, -8
|
|
|
807 .cfi_offset 14, -4
|
|
|
808 0002 0500 movs r5, r0
|
|
|
388:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** uint32_t pastInTicks = HW_RTC_ms2Tick( past );
|
|
|
809 .loc 1 388 0
|
|
|
810 0004 FFF7FEFF bl HW_RTC_GetTimerValue
|
|
|
811 .LVL97:
|
|
|
812 0008 0400 movs r4, r0
|
|
|
813 .LVL98:
|
|
|
389:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** /* intentional wrap around. Works Ok if tick duation below 1ms */
|
|
|
814 .loc 1 389 0
|
|
|
815 000a 2800 movs r0, r5
|
|
|
816 .LVL99:
|
|
|
817 000c FFF7FEFF bl HW_RTC_ms2Tick
|
|
|
818 .LVL100:
|
|
|
391:./Middlewares/Third_Party/Lora/Utilities/timeServer.c **** }
|
|
|
819 .loc 1 391 0
|
|
|
ARM GAS /tmp/cciA02i6.s page 28
|
|
|
|
|
|
|
|
|
820 0010 201A subs r0, r4, r0
|
|
|
821 .LVL101:
|
|
|
822 0012 FFF7FEFF bl HW_RTC_Tick2ms
|
|
|
823 .LVL102:
|
|
|
392:./Middlewares/Third_Party/Lora/Utilities/timeServer.c ****
|
|
|
824 .loc 1 392 0
|
|
|
825 @ sp needed
|
|
|
826 .LVL103:
|
|
|
827 .LVL104:
|
|
|
828 0016 70BD pop {r4, r5, r6, pc}
|
|
|
829 .cfi_endproc
|
|
|
830 .LFE106:
|
|
|
832 .section .bss.TimerListHead,"aw",%nobits
|
|
|
833 .align 2
|
|
|
834 .set .LANCHOR0,. + 0
|
|
|
837 TimerListHead:
|
|
|
838 0000 00000000 .space 4
|
|
|
839 .text
|
|
|
840 .Letext0:
|
|
|
841 .file 3 "/usr/arm-none-eabi/include/machine/_default_types.h"
|
|
|
842 .file 4 "/usr/arm-none-eabi/include/sys/lock.h"
|
|
|
843 .file 5 "/usr/arm-none-eabi/include/sys/_types.h"
|
|
|
844 .file 6 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
|
|
|
845 .file 7 "/usr/arm-none-eabi/include/sys/reent.h"
|
|
|
846 .file 8 "/usr/arm-none-eabi/include/sys/_stdint.h"
|
|
|
847 .file 9 "/usr/arm-none-eabi/include/time.h"
|
|
|
848 .file 10 "/usr/arm-none-eabi/include/math.h"
|
|
|
849 .file 11 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
|
|
|
850 .file 12 "Middlewares/Third_Party/Lora/Utilities/utilities.h"
|
|
|
851 .file 13 "./Middlewares/Third_Party/Lora/Utilities/timeServer.h"
|
|
|
852 .file 14 "Inc/hw_rtc.h"
|
|
|
ARM GAS /tmp/cciA02i6.s page 29
|
|
|
|
|
|
|
|
|
DEFINED SYMBOLS
|
|
|
*ABS*:0000000000000000 timeServer.c
|
|
|
/tmp/cciA02i6.s:16 .text.TimerSetTimeout:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:22 .text.TimerSetTimeout:0000000000000000 TimerSetTimeout
|
|
|
/tmp/cciA02i6.s:76 .text.TimerInit:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:83 .text.TimerInit:0000000000000000 TimerInit
|
|
|
/tmp/cciA02i6.s:109 .text.TimerStart:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:116 .text.TimerStart:0000000000000000 TimerStart
|
|
|
/tmp/cciA02i6.s:336 .text.TimerStart:00000000000000a8 $d
|
|
|
/tmp/cciA02i6.s:343 .text.TimerIrqHandler:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:350 .text.TimerIrqHandler:0000000000000000 TimerIrqHandler
|
|
|
/tmp/cciA02i6.s:476 .text.TimerIrqHandler:0000000000000080 $d
|
|
|
/tmp/cciA02i6.s:481 .text.TimerStop:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:488 .text.TimerStop:0000000000000000 TimerStop
|
|
|
/tmp/cciA02i6.s:655 .text.TimerStop:000000000000007c $d
|
|
|
/tmp/cciA02i6.s:660 .text.TimerReset:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:667 .text.TimerReset:0000000000000000 TimerReset
|
|
|
/tmp/cciA02i6.s:695 .text.TimerSetValue:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:702 .text.TimerSetValue:0000000000000000 TimerSetValue
|
|
|
/tmp/cciA02i6.s:756 .text.TimerGetCurrentTime:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:763 .text.TimerGetCurrentTime:0000000000000000 TimerGetCurrentTime
|
|
|
/tmp/cciA02i6.s:787 .text.TimerGetElapsedTime:0000000000000000 $t
|
|
|
/tmp/cciA02i6.s:794 .text.TimerGetElapsedTime:0000000000000000 TimerGetElapsedTime
|
|
|
/tmp/cciA02i6.s:833 .bss.TimerListHead:0000000000000000 $d
|
|
|
/tmp/cciA02i6.s:837 .bss.TimerListHead:0000000000000000 TimerListHead
|
|
|
.debug_frame:0000000000000010 $d
|
|
|
|
|
|
UNDEFINED SYMBOLS
|
|
|
HW_RTC_GetMinimumTimeout
|
|
|
HW_RTC_GetTimerElapsedTime
|
|
|
HW_RTC_SetAlarm
|
|
|
HW_RTC_SetTimerContext
|
|
|
HW_RTC_GetTimerContext
|
|
|
HW_RTC_StopAlarm
|
|
|
HW_RTC_ms2Tick
|
|
|
HW_RTC_GetTimerValue
|
|
|
HW_RTC_Tick2ms
|
|
|
|