B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spd-lorabees/build/low_power.lst

658 lines
40 KiB

ARM GAS /tmp/ccBl10G9.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 "low_power.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.LowPower_Disable,"ax",%progbits
16 .align 1
17 .global LowPower_Disable
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 LowPower_Disable:
24 .LFB96:
25 .file 1 "./Middlewares/Third_Party/Lora/Utilities/low_power.c"
1:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /*******************************************************************************
2:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @file low_power.c
3:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @author MCD Application Team
4:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @version V1.1.2
5:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @date 08-September-2017
6:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @brief driver for low power
7:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** ******************************************************************************
8:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @attention
9:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
10:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
11:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * All rights reserved.</center></h2>
12:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
13:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * Redistribution and use in source and binary forms, with or without
14:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * modification, are permitted, provided that the following conditions are met:
15:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
16:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * 1. Redistribution of source code must retain the above copyright notice,
17:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * this list of conditions and the following disclaimer.
18:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
19:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * this list of conditions and the following disclaimer in the documentation
20:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * and/or other materials provided with the distribution.
21:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * 3. Neither the name of STMicroelectronics nor the names of other
22:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * contributors to this software may be used to endorse or promote products
23:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * derived from this software without specific written permission.
24:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * 4. This software, including modifications and/or derivative works of this
25:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * software, must execute solely and exclusively on microcontroller or
26:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * microprocessor devices manufactured by or for STMicroelectronics.
27:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * 5. Redistribution and use of this software other than as permitted under
28:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * this license is void and will automatically terminate your rights under
29:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * this license.
30:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
31:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
32:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
33:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
ARM GAS /tmp/ccBl10G9.s page 2
34:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
35:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
36:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
37:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
44:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** ******************************************************************************
45:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
46:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
47:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Includes ------------------------------------------------------------------*/
48:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** #include "hw.h"
49:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** #include "low_power.h"
50:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
51:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Private typedef -----------------------------------------------------------*/
52:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Private define ------------------------------------------------------------*/
53:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Private macro -------------------------------------------------------------*/
54:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Private variables ---------------------------------------------------------*/
55:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
56:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /**
57:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \brief Flag to indicate if MCU can go to low power mode
58:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * When 0, MCU is authorized to go in low power mode
59:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
60:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** static uint32_t LowPower_State = 0;
61:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
62:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Private function prototypes -----------------------------------------------*/
63:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
64:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
65:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
66:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* Exported functions ---------------------------------------------------------*/
67:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
68:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /**
69:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \brief API to set flag allowing power mode
70:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
71:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \param [IN] enum e_LOW_POWER_State_Id_t
72:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
73:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** void LowPower_Disable( e_LOW_POWER_State_Id_t state )
74:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
26 .loc 1 74 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 @ link register save eliminated.
31 .LVL0:
32 .LBB14:
33 .LBB15:
34 .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
ARM GAS /tmp/ccBl10G9.s page 3
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
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 **** /**
ARM GAS /tmp/ccBl10G9.s page 4
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) );
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;
ARM GAS /tmp/ccBl10G9.s page 5
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 ****
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);
ARM GAS /tmp/ccBl10G9.s page 6
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 **** */
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) );
35 .loc 2 203 0
36 .syntax divided
37 @ 203 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
38 0000 EFF31083 MRS r3, primask
39 @ 0 "" 2
40 .thumb
41 .syntax unified
42 .LBE15:
43 .LBE14:
44 .LBB16:
45 .LBB17:
71:Drivers/CMSIS/Include/cmsis_gcc.h **** }
46 .loc 2 71 0
47 .syntax divided
48 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
49 0004 72B6 cpsid i
50 @ 0 "" 2
51 .thumb
52 .syntax unified
53 .LBE17:
54 .LBE16:
75:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** BACKUP_PRIMASK();
76:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
77:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DISABLE_IRQ( );
78:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
79:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** LowPower_State |= state;
55 .loc 1 79 0
56 0006 034A ldr r2, .L2
57 0008 1168 ldr r1, [r2]
58 000a 0843 orrs r0, r1
59 .LVL1:
60 000c 1060 str r0, [r2]
ARM GAS /tmp/ccBl10G9.s page 7
61 .LBB18:
62 .LBB19:
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");
63 .loc 2 215 0
64 .syntax divided
65 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
66 000e 83F31088 MSR primask, r3
67 @ 0 "" 2
68 .thumb
69 .syntax unified
70 .LBE19:
71 .LBE18:
80:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
81:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** RESTORE_PRIMASK( );
82:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
72 .loc 1 82 0
73 @ sp needed
74 0012 7047 bx lr
75 .L3:
76 .align 2
77 .L2:
78 0014 00000000 .word .LANCHOR0
79 .cfi_endproc
80 .LFE96:
82 .section .text.LowPower_Enable,"ax",%progbits
83 .align 1
84 .global LowPower_Enable
85 .syntax unified
86 .code 16
87 .thumb_func
88 .fpu softvfp
90 LowPower_Enable:
91 .LFB97:
83:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
84:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /**
85:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \brief API to reset flag allowing power mode
86:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** *
87:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \param [IN] enum e_LOW_POWER_State_Id_t
88:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
89:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** void LowPower_Enable( e_LOW_POWER_State_Id_t state )
90:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
92 .loc 1 90 0
93 .cfi_startproc
94 @ args = 0, pretend = 0, frame = 0
95 @ frame_needed = 0, uses_anonymous_args = 0
96 @ link register save eliminated.
ARM GAS /tmp/ccBl10G9.s page 8
97 .LVL2:
98 .LBB20:
99 .LBB21:
203:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
100 .loc 2 203 0
101 .syntax divided
102 @ 203 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
103 0000 EFF31083 MRS r3, primask
104 @ 0 "" 2
105 .thumb
106 .syntax unified
107 .LBE21:
108 .LBE20:
109 .LBB22:
110 .LBB23:
71:Drivers/CMSIS/Include/cmsis_gcc.h **** }
111 .loc 2 71 0
112 .syntax divided
113 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
114 0004 72B6 cpsid i
115 @ 0 "" 2
116 .thumb
117 .syntax unified
118 .LBE23:
119 .LBE22:
91:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** BACKUP_PRIMASK();
92:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
93:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DISABLE_IRQ( );
94:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
95:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** LowPower_State &= ~state;
120 .loc 1 95 0
121 0006 0349 ldr r1, .L5
122 0008 0A68 ldr r2, [r1]
123 000a 8243 bics r2, r0
124 000c 0A60 str r2, [r1]
125 .LBB24:
126 .LBB25:
127 .loc 2 215 0
128 .syntax divided
129 @ 215 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
130 000e 83F31088 MSR primask, r3
131 @ 0 "" 2
132 .thumb
133 .syntax unified
134 .LBE25:
135 .LBE24:
96:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
97:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** RESTORE_PRIMASK( );
98:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
136 .loc 1 98 0
137 @ sp needed
138 0012 7047 bx lr
139 .L6:
140 .align 2
141 .L5:
142 0014 00000000 .word .LANCHOR0
143 .cfi_endproc
ARM GAS /tmp/ccBl10G9.s page 9
144 .LFE97:
146 .section .text.LowPower_GetState,"ax",%progbits
147 .align 1
148 .global LowPower_GetState
149 .syntax unified
150 .code 16
151 .thumb_func
152 .fpu softvfp
154 LowPower_GetState:
155 .LFB98:
99:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
100:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /**
101:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \brief API to get flag allowing power mode
102:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \note When flag is 0, low power mode is allowed
103:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \param [IN] state
104:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * \retval flag state
105:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
106:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** uint32_t LowPower_GetState( void )
107:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
156 .loc 1 107 0
157 .cfi_startproc
158 @ args = 0, pretend = 0, frame = 0
159 @ frame_needed = 0, uses_anonymous_args = 0
160 @ link register save eliminated.
108:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** return LowPower_State;
161 .loc 1 108 0
162 0000 014B ldr r3, .L8
163 0002 1868 ldr r0, [r3]
109:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
164 .loc 1 109 0
165 @ sp needed
166 0004 7047 bx lr
167 .L9:
168 0006 C046 .align 2
169 .L8:
170 0008 00000000 .word .LANCHOR0
171 .cfi_endproc
172 .LFE98:
174 .section .text.LowPower_Handler,"ax",%progbits
175 .align 1
176 .global LowPower_Handler
177 .syntax unified
178 .code 16
179 .thumb_func
180 .fpu softvfp
182 LowPower_Handler:
183 .LFB99:
110:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
111:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /**
112:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @brief Handle Low Power
113:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @param None
114:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** * @retval None
115:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** */
116:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
117:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** void LowPower_Handler( void )
118:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
184 .loc 1 118 0
ARM GAS /tmp/ccBl10G9.s page 10
185 .cfi_startproc
186 @ args = 0, pretend = 0, frame = 0
187 @ frame_needed = 0, uses_anonymous_args = 0
188 0000 10B5 push {r4, lr}
189 .LCFI0:
190 .cfi_def_cfa_offset 8
191 .cfi_offset 4, -8
192 .cfi_offset 14, -4
119:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_GPIO_RST(GPIOB, GPIO_PIN_15);
120:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
121:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_GPIO_RST(GPIOB, GPIO_PIN_14);
122:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
123:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** if ( LowPower_State == 0 )
193 .loc 1 123 0
194 0002 074B ldr r3, .L14
195 0004 1B68 ldr r3, [r3]
196 0006 002B cmp r3, #0
197 0008 02D0 beq .L13
124:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
125:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
126:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_PRINTF_CRITICAL("dz\n\r");
127:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
128:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** HW_EnterStopMode( );
129:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
130:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** /* mcu dependent. to be implemented by user*/
131:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** HW_ExitStopMode();
132:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
133:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_GPIO_SET(GPIOB, GPIO_PIN_15);
134:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
135:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** HW_RTC_setMcuWakeUpTime( );
136:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
137:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** else
138:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** {
139:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_PRINTF_CRITICAL("z\n\r");
140:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
141:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** HW_EnterSleepMode( );
198 .loc 1 141 0
199 000a FFF7FEFF bl HW_EnterSleepMode
200 .LVL3:
201 .L10:
142:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
143:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** DBG_GPIO_SET(GPIOB, GPIO_PIN_14);
144:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
145:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
146:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
202 .loc 1 146 0
203 @ sp needed
204 000e 10BD pop {r4, pc}
205 .L13:
128:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
206 .loc 1 128 0
207 0010 FFF7FEFF bl HW_EnterStopMode
208 .LVL4:
131:./Middlewares/Third_Party/Lora/Utilities/low_power.c ****
209 .loc 1 131 0
210 0014 FFF7FEFF bl HW_ExitStopMode
211 .LVL5:
ARM GAS /tmp/ccBl10G9.s page 11
135:./Middlewares/Third_Party/Lora/Utilities/low_power.c **** }
212 .loc 1 135 0
213 0018 FFF7FEFF bl HW_RTC_setMcuWakeUpTime
214 .LVL6:
215 001c F7E7 b .L10
216 .L15:
217 001e C046 .align 2
218 .L14:
219 0020 00000000 .word .LANCHOR0
220 .cfi_endproc
221 .LFE99:
223 .section .bss.LowPower_State,"aw",%nobits
224 .align 2
225 .set .LANCHOR0,. + 0
228 LowPower_State:
229 0000 00000000 .space 4
230 .text
231 .Letext0:
232 .file 3 "/usr/arm-none-eabi/include/machine/_default_types.h"
233 .file 4 "/usr/arm-none-eabi/include/sys/lock.h"
234 .file 5 "/usr/arm-none-eabi/include/sys/_types.h"
235 .file 6 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
236 .file 7 "/usr/arm-none-eabi/include/sys/reent.h"
237 .file 8 "/usr/arm-none-eabi/include/math.h"
238 .file 9 "/usr/arm-none-eabi/include/sys/_stdint.h"
239 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
240 .file 11 "Inc/hw_msp.h"
241 .file 12 "Inc/hw_rtc.h"
ARM GAS /tmp/ccBl10G9.s page 12
DEFINED SYMBOLS
*ABS*:0000000000000000 low_power.c
/tmp/ccBl10G9.s:16 .text.LowPower_Disable:0000000000000000 $t
/tmp/ccBl10G9.s:23 .text.LowPower_Disable:0000000000000000 LowPower_Disable
/tmp/ccBl10G9.s:78 .text.LowPower_Disable:0000000000000014 $d
/tmp/ccBl10G9.s:83 .text.LowPower_Enable:0000000000000000 $t
/tmp/ccBl10G9.s:90 .text.LowPower_Enable:0000000000000000 LowPower_Enable
/tmp/ccBl10G9.s:142 .text.LowPower_Enable:0000000000000014 $d
/tmp/ccBl10G9.s:147 .text.LowPower_GetState:0000000000000000 $t
/tmp/ccBl10G9.s:154 .text.LowPower_GetState:0000000000000000 LowPower_GetState
/tmp/ccBl10G9.s:170 .text.LowPower_GetState:0000000000000008 $d
/tmp/ccBl10G9.s:175 .text.LowPower_Handler:0000000000000000 $t
/tmp/ccBl10G9.s:182 .text.LowPower_Handler:0000000000000000 LowPower_Handler
/tmp/ccBl10G9.s:219 .text.LowPower_Handler:0000000000000020 $d
/tmp/ccBl10G9.s:224 .bss.LowPower_State:0000000000000000 $d
/tmp/ccBl10G9.s:228 .bss.LowPower_State:0000000000000000 LowPower_State
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
HW_EnterSleepMode
HW_EnterStopMode
HW_ExitStopMode
HW_RTC_setMcuWakeUpTime