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

673 lines
28 KiB

ARM GAS /tmp/ccpOZGrp.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 "hw_gpio.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HW_GPIO_Init,"ax",%progbits
16 .align 1
17 .global HW_GPIO_Init
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 HW_GPIO_Init:
24 .LFB96:
25 .file 1 "./Src/hw_gpio.c"
1:./Src/hw_gpio.c **** /*
2:./Src/hw_gpio.c **** / _____) _ | |
3:./Src/hw_gpio.c **** ( (____ _____ ____ _| |_ _____ ____| |__
4:./Src/hw_gpio.c **** \____ \| ___ | (_ _) ___ |/ ___) _ \
5:./Src/hw_gpio.c **** _____) ) ____| | | || |_| ____( (___| | | |
6:./Src/hw_gpio.c **** (______/|_____)_|_|_| \__)_____)\____)_| |_|
7:./Src/hw_gpio.c **** (C)2013 Semtech
8:./Src/hw_gpio.c ****
9:./Src/hw_gpio.c **** Description: Bleeper board GPIO driver implementation
10:./Src/hw_gpio.c ****
11:./Src/hw_gpio.c **** License: Revised BSD License, see LICENSE.TXT file include in the project
12:./Src/hw_gpio.c ****
13:./Src/hw_gpio.c **** Maintainer: Miguel Luis and Gregory Cristian
14:./Src/hw_gpio.c **** */
15:./Src/hw_gpio.c **** /******************************************************************************
16:./Src/hw_gpio.c **** * @file hw_gpio.c
17:./Src/hw_gpio.c **** * @author MCD Application Team
18:./Src/hw_gpio.c **** * @version V1.1.2
19:./Src/hw_gpio.c **** * @date 08-September-2017
20:./Src/hw_gpio.c **** * @brief driver for GPIO
21:./Src/hw_gpio.c **** ******************************************************************************
22:./Src/hw_gpio.c **** * @attention
23:./Src/hw_gpio.c **** *
24:./Src/hw_gpio.c **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
25:./Src/hw_gpio.c **** * All rights reserved.</center></h2>
26:./Src/hw_gpio.c **** *
27:./Src/hw_gpio.c **** * Redistribution and use in source and binary forms, with or without
28:./Src/hw_gpio.c **** * modification, are permitted, provided that the following conditions are met:
29:./Src/hw_gpio.c **** *
30:./Src/hw_gpio.c **** * 1. Redistribution of source code must retain the above copyright notice,
31:./Src/hw_gpio.c **** * this list of conditions and the following disclaimer.
32:./Src/hw_gpio.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
33:./Src/hw_gpio.c **** * this list of conditions and the following disclaimer in the documentation
ARM GAS /tmp/ccpOZGrp.s page 2
34:./Src/hw_gpio.c **** * and/or other materials provided with the distribution.
35:./Src/hw_gpio.c **** * 3. Neither the name of STMicroelectronics nor the names of other
36:./Src/hw_gpio.c **** * contributors to this software may be used to endorse or promote products
37:./Src/hw_gpio.c **** * derived from this software without specific written permission.
38:./Src/hw_gpio.c **** * 4. This software, including modifications and/or derivative works of this
39:./Src/hw_gpio.c **** * software, must execute solely and exclusively on microcontroller or
40:./Src/hw_gpio.c **** * microprocessor devices manufactured by or for STMicroelectronics.
41:./Src/hw_gpio.c **** * 5. Redistribution and use of this software other than as permitted under
42:./Src/hw_gpio.c **** * this license is void and will automatically terminate your rights under
43:./Src/hw_gpio.c **** * this license.
44:./Src/hw_gpio.c **** *
45:./Src/hw_gpio.c **** * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
46:./Src/hw_gpio.c **** * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
47:./Src/hw_gpio.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
48:./Src/hw_gpio.c **** * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
49:./Src/hw_gpio.c **** * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
50:./Src/hw_gpio.c **** * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
51:./Src/hw_gpio.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
52:./Src/hw_gpio.c **** * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
53:./Src/hw_gpio.c **** * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
54:./Src/hw_gpio.c **** * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
55:./Src/hw_gpio.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
56:./Src/hw_gpio.c **** * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
57:./Src/hw_gpio.c **** *
58:./Src/hw_gpio.c **** ******************************************************************************
59:./Src/hw_gpio.c **** */
60:./Src/hw_gpio.c ****
61:./Src/hw_gpio.c **** /* Includes ------------------------------------------------------------------*/
62:./Src/hw_gpio.c **** #include "hw.h"
63:./Src/hw_gpio.c ****
64:./Src/hw_gpio.c **** /* Private typedef -----------------------------------------------------------*/
65:./Src/hw_gpio.c **** /* Private define ------------------------------------------------------------*/
66:./Src/hw_gpio.c **** /* Private macro -------------------------------------------------------------*/
67:./Src/hw_gpio.c **** /* Private variables ---------------------------------------------------------*/
68:./Src/hw_gpio.c **** static GpioIrqHandler *GpioIrq[16] = { NULL };
69:./Src/hw_gpio.c ****
70:./Src/hw_gpio.c **** /* Private function prototypes -----------------------------------------------*/
71:./Src/hw_gpio.c ****
72:./Src/hw_gpio.c **** static uint8_t HW_GPIO_GetBitPos(uint16_t GPIO_Pin);
73:./Src/hw_gpio.c ****
74:./Src/hw_gpio.c **** /* Exported functions ---------------------------------------------------------*/
75:./Src/hw_gpio.c **** /*!
76:./Src/hw_gpio.c **** * @brief Initializes the given GPIO object
77:./Src/hw_gpio.c **** *
78:./Src/hw_gpio.c **** * @param GPIOx: where x can be (A..E and H)
79:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
80:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
81:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
82:./Src/hw_gpio.c **** * @param [IN] initStruct GPIO_InitTypeDef intit structure
83:./Src/hw_gpio.c **** * @retval none
84:./Src/hw_gpio.c **** */
85:./Src/hw_gpio.c **** void HW_GPIO_Init( GPIO_TypeDef* port, uint16_t GPIO_Pin, GPIO_InitTypeDef* initStruct)
86:./Src/hw_gpio.c **** {
26 .loc 1 86 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 24
29 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccpOZGrp.s page 3
30 .LVL0:
31 0000 30B5 push {r4, r5, lr}
32 .LCFI0:
33 .cfi_def_cfa_offset 12
34 .cfi_offset 4, -12
35 .cfi_offset 5, -8
36 .cfi_offset 14, -4
37 0002 87B0 sub sp, sp, #28
38 .LCFI1:
39 .cfi_def_cfa_offset 40
87:./Src/hw_gpio.c ****
88:./Src/hw_gpio.c **** RCC_GPIO_CLK_ENABLE( (uint32_t) port);
40 .loc 1 88 0
41 0004 224C ldr r4, .L10
42 0006 A042 cmp r0, r4
43 0008 23D0 beq .L3
44 000a 0FD9 bls .L9
45 000c 214C ldr r4, .L10+4
46 000e A042 cmp r0, r4
47 0010 29D0 beq .L6
48 0012 214C ldr r4, .L10+8
49 0014 A042 cmp r0, r4
50 0016 30D1 bne .L2
51 .LBB6:
52 .loc 1 88 0 is_stmt 0 discriminator 5
53 0018 204C ldr r4, .L10+12
54 001a E56A ldr r5, [r4, #44]
55 001c 0823 movs r3, #8
56 001e 1D43 orrs r5, r3
57 0020 E562 str r5, [r4, #44]
58 0022 E46A ldr r4, [r4, #44]
59 0024 2340 ands r3, r4
60 0026 0493 str r3, [sp, #16]
61 0028 049B ldr r3, [sp, #16]
62 .LBE6:
63 002a 0CE0 b .L8
64 .L9:
65 .loc 1 88 0
66 002c A024 movs r4, #160
67 002e E405 lsls r4, r4, #23
68 0030 A042 cmp r0, r4
69 0032 22D1 bne .L2
70 .LBB7:
71 .loc 1 88 0 discriminator 2
72 0034 194C ldr r4, .L10+12
73 0036 E56A ldr r5, [r4, #44]
74 0038 0123 movs r3, #1
75 003a 1D43 orrs r5, r3
76 003c E562 str r5, [r4, #44]
77 003e E46A ldr r4, [r4, #44]
78 0040 2340 ands r3, r4
79 0042 0193 str r3, [sp, #4]
80 0044 019B ldr r3, [sp, #4]
81 .L8:
82 .LBE7:
89:./Src/hw_gpio.c ****
90:./Src/hw_gpio.c **** initStruct->Pin = GPIO_Pin ;
ARM GAS /tmp/ccpOZGrp.s page 4
83 .loc 1 90 0 is_stmt 1
84 0046 1160 str r1, [r2]
91:./Src/hw_gpio.c ****
92:./Src/hw_gpio.c **** HAL_GPIO_Init( port, initStruct );
85 .loc 1 92 0
86 0048 1100 movs r1, r2
87 .LVL1:
88 004a FFF7FEFF bl HAL_GPIO_Init
89 .LVL2:
93:./Src/hw_gpio.c **** }
90 .loc 1 93 0
91 004e 07B0 add sp, sp, #28
92 @ sp needed
93 0050 30BD pop {r4, r5, pc}
94 .LVL3:
95 .L3:
96 .LBB8:
88:./Src/hw_gpio.c ****
97 .loc 1 88 0 discriminator 3
98 0052 124C ldr r4, .L10+12
99 0054 E56A ldr r5, [r4, #44]
100 0056 0223 movs r3, #2
101 0058 1D43 orrs r5, r3
102 005a E562 str r5, [r4, #44]
103 005c E46A ldr r4, [r4, #44]
104 005e 2340 ands r3, r4
105 0060 0293 str r3, [sp, #8]
106 0062 029B ldr r3, [sp, #8]
107 .LBE8:
108 0064 EFE7 b .L8
109 .L6:
110 .LBB9:
88:./Src/hw_gpio.c ****
111 .loc 1 88 0 is_stmt 0 discriminator 4
112 0066 0D4C ldr r4, .L10+12
113 0068 E56A ldr r5, [r4, #44]
114 006a 0423 movs r3, #4
115 006c 1D43 orrs r5, r3
116 006e E562 str r5, [r4, #44]
117 0070 E46A ldr r4, [r4, #44]
118 0072 2340 ands r3, r4
119 0074 0393 str r3, [sp, #12]
120 0076 039B ldr r3, [sp, #12]
121 .LBE9:
122 0078 E5E7 b .L8
123 .L2:
124 .LBB10:
88:./Src/hw_gpio.c ****
125 .loc 1 88 0 discriminator 1
126 007a 084C ldr r4, .L10+12
127 007c E56A ldr r5, [r4, #44]
128 007e 8023 movs r3, #128
129 0080 1D43 orrs r5, r3
130 0082 E562 str r5, [r4, #44]
131 0084 E46A ldr r4, [r4, #44]
132 0086 2340 ands r3, r4
133 0088 0593 str r3, [sp, #20]
ARM GAS /tmp/ccpOZGrp.s page 5
134 008a 059B ldr r3, [sp, #20]
135 008c DBE7 b .L8
136 .L11:
137 008e C046 .align 2
138 .L10:
139 0090 00040050 .word 1342178304
140 0094 00080050 .word 1342179328
141 0098 000C0050 .word 1342180352
142 009c 00100240 .word 1073876992
143 .LBE10:
144 .cfi_endproc
145 .LFE96:
147 .section .text.HW_GPIO_SetIrq,"ax",%progbits
148 .align 1
149 .global HW_GPIO_SetIrq
150 .syntax unified
151 .code 16
152 .thumb_func
153 .fpu softvfp
155 HW_GPIO_SetIrq:
156 .LFB97:
94:./Src/hw_gpio.c ****
95:./Src/hw_gpio.c **** /*!
96:./Src/hw_gpio.c **** * @brief Records the interrupt handler for the GPIO object
97:./Src/hw_gpio.c **** *
98:./Src/hw_gpio.c **** * @param GPIOx: where x can be (A..E and H)
99:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
100:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
101:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
102:./Src/hw_gpio.c **** * @param [IN] prio NVIC priority (0 is highest)
103:./Src/hw_gpio.c **** * @param [IN] irqHandler points to the function to execute
104:./Src/hw_gpio.c **** * @retval none
105:./Src/hw_gpio.c **** */
106:./Src/hw_gpio.c **** void HW_GPIO_SetIrq( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint32_t prio, GpioIrqHandler *irqHan
107:./Src/hw_gpio.c **** {
157 .loc 1 107 0 is_stmt 1
158 .cfi_startproc
159 @ args = 0, pretend = 0, frame = 0
160 @ frame_needed = 0, uses_anonymous_args = 0
161 .LVL4:
162 0000 70B5 push {r4, r5, r6, lr}
163 .LCFI2:
164 .cfi_def_cfa_offset 16
165 .cfi_offset 4, -16
166 .cfi_offset 5, -12
167 .cfi_offset 6, -8
168 .cfi_offset 14, -4
169 0002 1400 movs r4, r2
170 .LVL5:
171 .LBB11:
172 .LBB12:
108:./Src/hw_gpio.c **** IRQn_Type IRQnb;
109:./Src/hw_gpio.c ****
110:./Src/hw_gpio.c **** uint32_t BitPos = HW_GPIO_GetBitPos( GPIO_Pin ) ;
111:./Src/hw_gpio.c ****
112:./Src/hw_gpio.c **** if ( irqHandler != NULL)
113:./Src/hw_gpio.c **** {
ARM GAS /tmp/ccpOZGrp.s page 6
114:./Src/hw_gpio.c **** GpioIrq[ BitPos ] = irqHandler;
115:./Src/hw_gpio.c ****
116:./Src/hw_gpio.c **** IRQnb = MSP_GetIRQn( GPIO_Pin );
117:./Src/hw_gpio.c ****
118:./Src/hw_gpio.c **** HAL_NVIC_SetPriority( IRQnb , prio, 0);
119:./Src/hw_gpio.c ****
120:./Src/hw_gpio.c **** HAL_NVIC_EnableIRQ( IRQnb );
121:./Src/hw_gpio.c **** }
122:./Src/hw_gpio.c **** }
123:./Src/hw_gpio.c ****
124:./Src/hw_gpio.c **** /*!
125:./Src/hw_gpio.c **** * @brief Execute the interrupt from the object
126:./Src/hw_gpio.c **** *
127:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
128:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
129:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
130:./Src/hw_gpio.c **** * @retval none
131:./Src/hw_gpio.c **** */
132:./Src/hw_gpio.c **** void HW_GPIO_IrqHandler( uint16_t GPIO_Pin )
133:./Src/hw_gpio.c **** {
134:./Src/hw_gpio.c **** uint32_t BitPos = HW_GPIO_GetBitPos( GPIO_Pin );
135:./Src/hw_gpio.c ****
136:./Src/hw_gpio.c **** if ( GpioIrq[ BitPos ] != NULL)
137:./Src/hw_gpio.c **** {
138:./Src/hw_gpio.c **** GpioIrq[ BitPos ] ( );
139:./Src/hw_gpio.c **** }
140:./Src/hw_gpio.c **** }
141:./Src/hw_gpio.c ****
142:./Src/hw_gpio.c **** /*!
143:./Src/hw_gpio.c **** * @brief Writes the given value to the GPIO output
144:./Src/hw_gpio.c **** *
145:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
146:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
147:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
148:./Src/hw_gpio.c **** * @param [IN] value New GPIO output value
149:./Src/hw_gpio.c **** * @retval none
150:./Src/hw_gpio.c **** */
151:./Src/hw_gpio.c **** void HW_GPIO_Write( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint32_t value )
152:./Src/hw_gpio.c **** {
153:./Src/hw_gpio.c **** HAL_GPIO_WritePin( GPIOx, GPIO_Pin , (GPIO_PinState) value );
154:./Src/hw_gpio.c **** }
155:./Src/hw_gpio.c ****
156:./Src/hw_gpio.c **** /*!
157:./Src/hw_gpio.c **** * @brief Reads the current GPIO input value
158:./Src/hw_gpio.c **** *
159:./Src/hw_gpio.c **** * @param GPIOx: where x can be (A..E and H)
160:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
161:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
162:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
163:./Src/hw_gpio.c **** * @retval value Current GPIO input value
164:./Src/hw_gpio.c **** */
165:./Src/hw_gpio.c **** uint32_t HW_GPIO_Read( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin )
166:./Src/hw_gpio.c **** {
167:./Src/hw_gpio.c **** return HAL_GPIO_ReadPin( GPIOx, GPIO_Pin);
168:./Src/hw_gpio.c **** }
169:./Src/hw_gpio.c ****
170:./Src/hw_gpio.c **** /* Private functions ---------------------------------------------------------*/
ARM GAS /tmp/ccpOZGrp.s page 7
171:./Src/hw_gpio.c ****
172:./Src/hw_gpio.c **** /*!
173:./Src/hw_gpio.c **** * @brief Get the position of the bit set in the GPIO_Pin
174:./Src/hw_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
175:./Src/hw_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
176:./Src/hw_gpio.c **** * All port bits are not necessarily available on all GPIOs.
177:./Src/hw_gpio.c **** * @retval the position of the bit
178:./Src/hw_gpio.c **** */
179:./Src/hw_gpio.c **** static uint8_t HW_GPIO_GetBitPos(uint16_t GPIO_Pin)
180:./Src/hw_gpio.c **** {
181:./Src/hw_gpio.c **** uint8_t PinPos=0;
182:./Src/hw_gpio.c ****
183:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xFF00 ) != 0) { PinPos |= 0x8; }
173 .loc 1 183 0
174 0004 FF22 movs r2, #255
175 .LVL6:
176 0006 0800 movs r0, r1
177 .LVL7:
178 0008 9043 bics r0, r2
179 000a 021E subs r2, r0, #0
180 000c 00D0 beq .L13
181 000e 0822 movs r2, #8
182 .L13:
183 .LVL8:
184:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xF0F0 ) != 0) { PinPos |= 0x4; }
184 .loc 1 184 0
185 0010 0F48 ldr r0, .L19
186 0012 0142 tst r1, r0
187 0014 01D0 beq .L14
188 0016 0420 movs r0, #4
189 0018 0243 orrs r2, r0
190 .LVL9:
191 .L14:
185:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xCCCC ) != 0) { PinPos |= 0x2; }
192 .loc 1 185 0
193 001a 0E48 ldr r0, .L19+4
194 001c 0142 tst r1, r0
195 001e 01D0 beq .L15
196 0020 0220 movs r0, #2
197 0022 0243 orrs r2, r0
198 .LVL10:
199 .L15:
186:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xAAAA ) != 0) { PinPos |= 0x1; }
200 .loc 1 186 0
201 0024 0C48 ldr r0, .L19+8
202 0026 0142 tst r1, r0
203 0028 01D0 beq .L16
204 002a 0120 movs r0, #1
205 002c 0243 orrs r2, r0
206 .LVL11:
207 .L16:
208 .LBE12:
209 .LBE11:
112:./Src/hw_gpio.c **** {
210 .loc 1 112 0
211 002e 002B cmp r3, #0
212 0030 0DD0 beq .L12
ARM GAS /tmp/ccpOZGrp.s page 8
114:./Src/hw_gpio.c ****
213 .loc 1 114 0
214 0032 9200 lsls r2, r2, #2
215 .LVL12:
216 0034 0948 ldr r0, .L19+12
217 0036 1350 str r3, [r2, r0]
116:./Src/hw_gpio.c ****
218 .loc 1 116 0
219 0038 0800 movs r0, r1
220 003a FFF7FEFF bl MSP_GetIRQn
221 .LVL13:
222 003e 0500 movs r5, r0
223 .LVL14:
118:./Src/hw_gpio.c ****
224 .loc 1 118 0
225 0040 0022 movs r2, #0
226 0042 2100 movs r1, r4
227 0044 FFF7FEFF bl HAL_NVIC_SetPriority
228 .LVL15:
120:./Src/hw_gpio.c **** }
229 .loc 1 120 0
230 0048 2800 movs r0, r5
231 004a FFF7FEFF bl HAL_NVIC_EnableIRQ
232 .LVL16:
233 .L12:
122:./Src/hw_gpio.c ****
234 .loc 1 122 0
235 @ sp needed
236 .LVL17:
237 004e 70BD pop {r4, r5, r6, pc}
238 .L20:
239 .align 2
240 .L19:
241 0050 F0F0FFFF .word -3856
242 0054 CCCCFFFF .word -13108
243 0058 AAAAFFFF .word -21846
244 005c 00000000 .word .LANCHOR0
245 .cfi_endproc
246 .LFE97:
248 .section .text.HW_GPIO_IrqHandler,"ax",%progbits
249 .align 1
250 .global HW_GPIO_IrqHandler
251 .syntax unified
252 .code 16
253 .thumb_func
254 .fpu softvfp
256 HW_GPIO_IrqHandler:
257 .LFB98:
133:./Src/hw_gpio.c **** uint32_t BitPos = HW_GPIO_GetBitPos( GPIO_Pin );
258 .loc 1 133 0
259 .cfi_startproc
260 @ args = 0, pretend = 0, frame = 0
261 @ frame_needed = 0, uses_anonymous_args = 0
262 .LVL18:
263 0000 10B5 push {r4, lr}
264 .LCFI3:
265 .cfi_def_cfa_offset 8
ARM GAS /tmp/ccpOZGrp.s page 9
266 .cfi_offset 4, -8
267 .cfi_offset 14, -4
268 .LVL19:
269 .LBB13:
270 .LBB14:
183:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xF0F0 ) != 0) { PinPos |= 0x4; }
271 .loc 1 183 0
272 0002 FF23 movs r3, #255
273 0004 0200 movs r2, r0
274 0006 9A43 bics r2, r3
275 0008 131E subs r3, r2, #0
276 000a 00D0 beq .L22
277 000c 0823 movs r3, #8
278 .L22:
279 .LVL20:
184:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xCCCC ) != 0) { PinPos |= 0x2; }
280 .loc 1 184 0
281 000e 0B4A ldr r2, .L28
282 0010 1042 tst r0, r2
283 0012 01D0 beq .L23
284 0014 0422 movs r2, #4
285 0016 1343 orrs r3, r2
286 .LVL21:
287 .L23:
185:./Src/hw_gpio.c **** if ( ( GPIO_Pin & 0xAAAA ) != 0) { PinPos |= 0x1; }
288 .loc 1 185 0
289 0018 094A ldr r2, .L28+4
290 001a 1042 tst r0, r2
291 001c 01D0 beq .L24
292 001e 0222 movs r2, #2
293 0020 1343 orrs r3, r2
294 .LVL22:
295 .L24:
296 .loc 1 186 0
297 0022 084A ldr r2, .L28+8
298 0024 1042 tst r0, r2
299 0026 01D0 beq .L25
300 0028 0122 movs r2, #1
301 002a 1343 orrs r3, r2
302 .LVL23:
303 .L25:
304 .LBE14:
305 .LBE13:
136:./Src/hw_gpio.c **** {
306 .loc 1 136 0
307 002c 9B00 lsls r3, r3, #2
308 .LVL24:
309 002e 064A ldr r2, .L28+12
310 0030 9B58 ldr r3, [r3, r2]
311 0032 002B cmp r3, #0
312 0034 00D0 beq .L21
138:./Src/hw_gpio.c **** }
313 .loc 1 138 0
314 0036 9847 blx r3
315 .LVL25:
316 .L21:
140:./Src/hw_gpio.c ****
ARM GAS /tmp/ccpOZGrp.s page 10
317 .loc 1 140 0
318 @ sp needed
319 0038 10BD pop {r4, pc}
320 .L29:
321 003a C046 .align 2
322 .L28:
323 003c F0F0FFFF .word -3856
324 0040 CCCCFFFF .word -13108
325 0044 AAAAFFFF .word -21846
326 0048 00000000 .word .LANCHOR0
327 .cfi_endproc
328 .LFE98:
330 .section .text.HW_GPIO_Write,"ax",%progbits
331 .align 1
332 .global HW_GPIO_Write
333 .syntax unified
334 .code 16
335 .thumb_func
336 .fpu softvfp
338 HW_GPIO_Write:
339 .LFB99:
152:./Src/hw_gpio.c **** HAL_GPIO_WritePin( GPIOx, GPIO_Pin , (GPIO_PinState) value );
340 .loc 1 152 0
341 .cfi_startproc
342 @ args = 0, pretend = 0, frame = 0
343 @ frame_needed = 0, uses_anonymous_args = 0
344 .LVL26:
345 0000 10B5 push {r4, lr}
346 .LCFI4:
347 .cfi_def_cfa_offset 8
348 .cfi_offset 4, -8
349 .cfi_offset 14, -4
153:./Src/hw_gpio.c **** }
350 .loc 1 153 0
351 0002 D2B2 uxtb r2, r2
352 .LVL27:
353 0004 FFF7FEFF bl HAL_GPIO_WritePin
354 .LVL28:
154:./Src/hw_gpio.c ****
355 .loc 1 154 0
356 @ sp needed
357 0008 10BD pop {r4, pc}
358 .cfi_endproc
359 .LFE99:
361 .section .text.HW_GPIO_Read,"ax",%progbits
362 .align 1
363 .global HW_GPIO_Read
364 .syntax unified
365 .code 16
366 .thumb_func
367 .fpu softvfp
369 HW_GPIO_Read:
370 .LFB100:
166:./Src/hw_gpio.c **** return HAL_GPIO_ReadPin( GPIOx, GPIO_Pin);
371 .loc 1 166 0
372 .cfi_startproc
373 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccpOZGrp.s page 11
374 @ frame_needed = 0, uses_anonymous_args = 0
375 .LVL29:
376 0000 10B5 push {r4, lr}
377 .LCFI5:
378 .cfi_def_cfa_offset 8
379 .cfi_offset 4, -8
380 .cfi_offset 14, -4
167:./Src/hw_gpio.c **** }
381 .loc 1 167 0
382 0002 FFF7FEFF bl HAL_GPIO_ReadPin
383 .LVL30:
168:./Src/hw_gpio.c ****
384 .loc 1 168 0
385 @ sp needed
386 0006 10BD pop {r4, pc}
387 .cfi_endproc
388 .LFE100:
390 .section .bss.GpioIrq,"aw",%nobits
391 .align 2
392 .set .LANCHOR0,. + 0
395 GpioIrq:
396 0000 00000000 .space 64
396 00000000
396 00000000
396 00000000
396 00000000
397 .text
398 .Letext0:
399 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
400 .file 3 "/usr/arm-none-eabi/include/sys/lock.h"
401 .file 4 "/usr/arm-none-eabi/include/sys/_types.h"
402 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
403 .file 6 "/usr/arm-none-eabi/include/sys/reent.h"
404 .file 7 "/usr/arm-none-eabi/include/math.h"
405 .file 8 "/usr/arm-none-eabi/include/sys/_stdint.h"
406 .file 9 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
407 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
408 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_gpio.h"
409 .file 12 "Inc/hw_gpio.h"
410 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_cortex.h"
ARM GAS /tmp/ccpOZGrp.s page 12
DEFINED SYMBOLS
*ABS*:0000000000000000 hw_gpio.c
/tmp/ccpOZGrp.s:16 .text.HW_GPIO_Init:0000000000000000 $t
/tmp/ccpOZGrp.s:23 .text.HW_GPIO_Init:0000000000000000 HW_GPIO_Init
/tmp/ccpOZGrp.s:139 .text.HW_GPIO_Init:0000000000000090 $d
/tmp/ccpOZGrp.s:148 .text.HW_GPIO_SetIrq:0000000000000000 $t
/tmp/ccpOZGrp.s:155 .text.HW_GPIO_SetIrq:0000000000000000 HW_GPIO_SetIrq
/tmp/ccpOZGrp.s:241 .text.HW_GPIO_SetIrq:0000000000000050 $d
/tmp/ccpOZGrp.s:249 .text.HW_GPIO_IrqHandler:0000000000000000 $t
/tmp/ccpOZGrp.s:256 .text.HW_GPIO_IrqHandler:0000000000000000 HW_GPIO_IrqHandler
/tmp/ccpOZGrp.s:323 .text.HW_GPIO_IrqHandler:000000000000003c $d
/tmp/ccpOZGrp.s:331 .text.HW_GPIO_Write:0000000000000000 $t
/tmp/ccpOZGrp.s:338 .text.HW_GPIO_Write:0000000000000000 HW_GPIO_Write
/tmp/ccpOZGrp.s:362 .text.HW_GPIO_Read:0000000000000000 $t
/tmp/ccpOZGrp.s:369 .text.HW_GPIO_Read:0000000000000000 HW_GPIO_Read
/tmp/ccpOZGrp.s:391 .bss.GpioIrq:0000000000000000 $d
/tmp/ccpOZGrp.s:395 .bss.GpioIrq:0000000000000000 GpioIrq
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
HAL_GPIO_Init
MSP_GetIRQn
HAL_NVIC_SetPriority
HAL_NVIC_EnableIRQ
HAL_GPIO_WritePin
HAL_GPIO_ReadPin