|
|
|
|
ARM GAS /tmp/ccdg55Po.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_i2c.c"
|
|
|
|
|
12 .text
|
|
|
|
|
13 .Ltext0:
|
|
|
|
|
14 .cfi_sections .debug_frame
|
|
|
|
|
15 .section .text.MX_I2C1_Init,"ax",%progbits
|
|
|
|
|
16 .align 1
|
|
|
|
|
17 .global MX_I2C1_Init
|
|
|
|
|
18 .syntax unified
|
|
|
|
|
19 .code 16
|
|
|
|
|
20 .thumb_func
|
|
|
|
|
21 .fpu softvfp
|
|
|
|
|
23 MX_I2C1_Init:
|
|
|
|
|
24 .LFB97:
|
|
|
|
|
25 .file 1 "./Src/hw_i2c.c"
|
|
|
|
|
1:./Src/hw_i2c.c **** /**
|
|
|
|
|
2:./Src/hw_i2c.c **** ******************************************************************************
|
|
|
|
|
3:./Src/hw_i2c.c **** * File Name : I2C.c
|
|
|
|
|
4:./Src/hw_i2c.c **** * Description : This file provides code for the configuration
|
|
|
|
|
5:./Src/hw_i2c.c **** * of the I2C instances.
|
|
|
|
|
6:./Src/hw_i2c.c **** ******************************************************************************
|
|
|
|
|
7:./Src/hw_i2c.c **** ** This notice applies to any and all portions of this file
|
|
|
|
|
8:./Src/hw_i2c.c **** * that are not between comment pairs USER CODE BEGIN and
|
|
|
|
|
9:./Src/hw_i2c.c **** * USER CODE END. Other portions of this file, whether
|
|
|
|
|
10:./Src/hw_i2c.c **** * inserted by the user or by software development tools
|
|
|
|
|
11:./Src/hw_i2c.c **** * are owned by their respective copyright owners.
|
|
|
|
|
12:./Src/hw_i2c.c **** *
|
|
|
|
|
13:./Src/hw_i2c.c **** * COPYRIGHT(c) 2017 STMicroelectronics
|
|
|
|
|
14:./Src/hw_i2c.c **** *
|
|
|
|
|
15:./Src/hw_i2c.c **** * Redistribution and use in source and binary forms, with or without modification,
|
|
|
|
|
16:./Src/hw_i2c.c **** * are permitted provided that the following conditions are met:
|
|
|
|
|
17:./Src/hw_i2c.c **** * 1. Redistributions of source code must retain the above copyright notice,
|
|
|
|
|
18:./Src/hw_i2c.c **** * this list of conditions and the following disclaimer.
|
|
|
|
|
19:./Src/hw_i2c.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
|
20:./Src/hw_i2c.c **** * this list of conditions and the following disclaimer in the documentation
|
|
|
|
|
21:./Src/hw_i2c.c **** * and/or other materials provided with the distribution.
|
|
|
|
|
22:./Src/hw_i2c.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
|
|
|
|
|
23:./Src/hw_i2c.c **** * may be used to endorse or promote products derived from this software
|
|
|
|
|
24:./Src/hw_i2c.c **** * without specific prior written permission.
|
|
|
|
|
25:./Src/hw_i2c.c **** *
|
|
|
|
|
26:./Src/hw_i2c.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
|
27:./Src/hw_i2c.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
|
28:./Src/hw_i2c.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
|
29:./Src/hw_i2c.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
|
|
|
30:./Src/hw_i2c.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
|
31:./Src/hw_i2c.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
|
|
|
32:./Src/hw_i2c.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
|
|
|
33:./Src/hw_i2c.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34:./Src/hw_i2c.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
|
35:./Src/hw_i2c.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
36:./Src/hw_i2c.c **** *
|
|
|
|
|
37:./Src/hw_i2c.c **** ******************************************************************************
|
|
|
|
|
38:./Src/hw_i2c.c **** */
|
|
|
|
|
39:./Src/hw_i2c.c ****
|
|
|
|
|
40:./Src/hw_i2c.c **** /* Includes ------------------------------------------------------------------*/
|
|
|
|
|
41:./Src/hw_i2c.c **** #include "hw.h"
|
|
|
|
|
42:./Src/hw_i2c.c **** #include "hw_i2c.h"
|
|
|
|
|
43:./Src/hw_i2c.c **** #include "debug.h"
|
|
|
|
|
44:./Src/hw_i2c.c ****
|
|
|
|
|
45:./Src/hw_i2c.c **** static inline uint32_t setupTiming(void)
|
|
|
|
|
46:./Src/hw_i2c.c **** {
|
|
|
|
|
47:./Src/hw_i2c.c **** const uint32_t presc = 15;
|
|
|
|
|
48:./Src/hw_i2c.c ****
|
|
|
|
|
49:./Src/hw_i2c.c **** // delays
|
|
|
|
|
50:./Src/hw_i2c.c **** const uint32_t sdadel = 2;
|
|
|
|
|
51:./Src/hw_i2c.c **** const uint32_t scldel = 2;
|
|
|
|
|
52:./Src/hw_i2c.c ****
|
|
|
|
|
53:./Src/hw_i2c.c **** const uint32_t scll = 6;
|
|
|
|
|
54:./Src/hw_i2c.c **** const uint32_t sclh = 7;
|
|
|
|
|
55:./Src/hw_i2c.c ****
|
|
|
|
|
56:./Src/hw_i2c.c **** return presc << I2C_TIMINGR_PRESC_Pos |
|
|
|
|
|
57:./Src/hw_i2c.c **** scldel << I2C_TIMINGR_SCLDEL_Pos |
|
|
|
|
|
58:./Src/hw_i2c.c **** sdadel << I2C_TIMINGR_SDADEL_Pos |
|
|
|
|
|
59:./Src/hw_i2c.c **** sclh << I2C_TIMINGR_SCLH_Pos |
|
|
|
|
|
60:./Src/hw_i2c.c **** scll << I2C_TIMINGR_SCLL_Pos;
|
|
|
|
|
61:./Src/hw_i2c.c **** }
|
|
|
|
|
62:./Src/hw_i2c.c ****
|
|
|
|
|
63:./Src/hw_i2c.c **** I2C_HandleTypeDef hi2c1;
|
|
|
|
|
64:./Src/hw_i2c.c ****
|
|
|
|
|
65:./Src/hw_i2c.c **** /* I2C1 init function */
|
|
|
|
|
66:./Src/hw_i2c.c **** void MX_I2C1_Init(void)
|
|
|
|
|
67:./Src/hw_i2c.c **** {
|
|
|
|
|
26 .loc 1 67 0
|
|
|
|
|
27 .cfi_startproc
|
|
|
|
|
28 @ args = 0, pretend = 0, frame = 0
|
|
|
|
|
29 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
30 0000 10B5 push {r4, lr}
|
|
|
|
|
31 .LCFI0:
|
|
|
|
|
32 .cfi_def_cfa_offset 8
|
|
|
|
|
33 .cfi_offset 4, -8
|
|
|
|
|
34 .cfi_offset 14, -4
|
|
|
|
|
68:./Src/hw_i2c.c **** hi2c1.Instance = I2C1;
|
|
|
|
|
35 .loc 1 68 0
|
|
|
|
|
36 0002 1748 ldr r0, .L8
|
|
|
|
|
37 0004 174B ldr r3, .L8+4
|
|
|
|
|
38 0006 0360 str r3, [r0]
|
|
|
|
|
39 .LVL0:
|
|
|
|
|
69:./Src/hw_i2c.c **** hi2c1.Init.Timing = setupTiming(); //0x00000708;
|
|
|
|
|
40 .loc 1 69 0
|
|
|
|
|
41 0008 174B ldr r3, .L8+8
|
|
|
|
|
42 000a 4360 str r3, [r0, #4]
|
|
|
|
|
70:./Src/hw_i2c.c **** hi2c1.Init.OwnAddress1 = 0;
|
|
|
|
|
43 .loc 1 70 0
|
|
|
|
|
44 000c 0023 movs r3, #0
|
|
|
|
|
45 000e 8360 str r3, [r0, #8]
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71:./Src/hw_i2c.c **** hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
|
|
|
|
46 .loc 1 71 0
|
|
|
|
|
47 0010 0122 movs r2, #1
|
|
|
|
|
48 0012 C260 str r2, [r0, #12]
|
|
|
|
|
72:./Src/hw_i2c.c **** hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
|
|
|
|
49 .loc 1 72 0
|
|
|
|
|
50 0014 0361 str r3, [r0, #16]
|
|
|
|
|
73:./Src/hw_i2c.c **** hi2c1.Init.OwnAddress2 = 0;
|
|
|
|
|
51 .loc 1 73 0
|
|
|
|
|
52 0016 4361 str r3, [r0, #20]
|
|
|
|
|
74:./Src/hw_i2c.c **** hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
|
|
|
|
|
53 .loc 1 74 0
|
|
|
|
|
54 0018 8361 str r3, [r0, #24]
|
|
|
|
|
75:./Src/hw_i2c.c **** hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
|
|
|
|
55 .loc 1 75 0
|
|
|
|
|
56 001a C361 str r3, [r0, #28]
|
|
|
|
|
76:./Src/hw_i2c.c **** hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
|
|
|
|
57 .loc 1 76 0
|
|
|
|
|
58 001c 0362 str r3, [r0, #32]
|
|
|
|
|
77:./Src/hw_i2c.c **** if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
|
|
|
|
59 .loc 1 77 0
|
|
|
|
|
60 001e FFF7FEFF bl HAL_I2C_Init
|
|
|
|
|
61 .LVL1:
|
|
|
|
|
62 0022 0028 cmp r0, #0
|
|
|
|
|
63 0024 0CD1 bne .L5
|
|
|
|
|
64 .L2:
|
|
|
|
|
78:./Src/hw_i2c.c **** {
|
|
|
|
|
79:./Src/hw_i2c.c **** _Error_Handler(__FILE__, __LINE__);
|
|
|
|
|
80:./Src/hw_i2c.c **** }
|
|
|
|
|
81:./Src/hw_i2c.c ****
|
|
|
|
|
82:./Src/hw_i2c.c **** /**Configure Analogue filter
|
|
|
|
|
83:./Src/hw_i2c.c **** */
|
|
|
|
|
84:./Src/hw_i2c.c **** if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
|
|
|
|
|
65 .loc 1 84 0
|
|
|
|
|
66 0026 0021 movs r1, #0
|
|
|
|
|
67 0028 0D48 ldr r0, .L8
|
|
|
|
|
68 002a FFF7FEFF bl HAL_I2CEx_ConfigAnalogFilter
|
|
|
|
|
69 .LVL2:
|
|
|
|
|
70 002e 0028 cmp r0, #0
|
|
|
|
|
71 0030 0BD1 bne .L6
|
|
|
|
|
72 .L3:
|
|
|
|
|
85:./Src/hw_i2c.c **** {
|
|
|
|
|
86:./Src/hw_i2c.c **** _Error_Handler(__FILE__, __LINE__);
|
|
|
|
|
87:./Src/hw_i2c.c **** }
|
|
|
|
|
88:./Src/hw_i2c.c ****
|
|
|
|
|
89:./Src/hw_i2c.c **** /**Configure Digital filter
|
|
|
|
|
90:./Src/hw_i2c.c **** */
|
|
|
|
|
91:./Src/hw_i2c.c **** if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
|
|
|
|
|
73 .loc 1 91 0
|
|
|
|
|
74 0032 0021 movs r1, #0
|
|
|
|
|
75 0034 0A48 ldr r0, .L8
|
|
|
|
|
76 0036 FFF7FEFF bl HAL_I2CEx_ConfigDigitalFilter
|
|
|
|
|
77 .LVL3:
|
|
|
|
|
78 003a 0028 cmp r0, #0
|
|
|
|
|
79 003c 0AD1 bne .L7
|
|
|
|
|
80 .L1:
|
|
|
|
|
92:./Src/hw_i2c.c **** {
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93:./Src/hw_i2c.c **** _Error_Handler(__FILE__, __LINE__);
|
|
|
|
|
94:./Src/hw_i2c.c **** }
|
|
|
|
|
95:./Src/hw_i2c.c ****
|
|
|
|
|
96:./Src/hw_i2c.c **** }
|
|
|
|
|
81 .loc 1 96 0
|
|
|
|
|
82 @ sp needed
|
|
|
|
|
83 003e 10BD pop {r4, pc}
|
|
|
|
|
84 .L5:
|
|
|
|
|
79:./Src/hw_i2c.c **** }
|
|
|
|
|
85 .loc 1 79 0
|
|
|
|
|
86 0040 4F21 movs r1, #79
|
|
|
|
|
87 0042 0A48 ldr r0, .L8+12
|
|
|
|
|
88 0044 FFF7FEFF bl _Error_Handler
|
|
|
|
|
89 .LVL4:
|
|
|
|
|
90 0048 EDE7 b .L2
|
|
|
|
|
91 .L6:
|
|
|
|
|
86:./Src/hw_i2c.c **** }
|
|
|
|
|
92 .loc 1 86 0
|
|
|
|
|
93 004a 5621 movs r1, #86
|
|
|
|
|
94 004c 0748 ldr r0, .L8+12
|
|
|
|
|
95 004e FFF7FEFF bl _Error_Handler
|
|
|
|
|
96 .LVL5:
|
|
|
|
|
97 0052 EEE7 b .L3
|
|
|
|
|
98 .L7:
|
|
|
|
|
93:./Src/hw_i2c.c **** }
|
|
|
|
|
99 .loc 1 93 0
|
|
|
|
|
100 0054 5D21 movs r1, #93
|
|
|
|
|
101 0056 0548 ldr r0, .L8+12
|
|
|
|
|
102 0058 FFF7FEFF bl _Error_Handler
|
|
|
|
|
103 .LVL6:
|
|
|
|
|
104 .loc 1 96 0
|
|
|
|
|
105 005c EFE7 b .L1
|
|
|
|
|
106 .L9:
|
|
|
|
|
107 005e C046 .align 2
|
|
|
|
|
108 .L8:
|
|
|
|
|
109 0060 00000000 .word .LANCHOR0
|
|
|
|
|
110 0064 00540040 .word 1073763328
|
|
|
|
|
111 0068 060722F0 .word -266205434
|
|
|
|
|
112 006c 00000000 .word .LC1
|
|
|
|
|
113 .cfi_endproc
|
|
|
|
|
114 .LFE97:
|
|
|
|
|
116 .section .text.HAL_I2C_MspInit,"ax",%progbits
|
|
|
|
|
117 .align 1
|
|
|
|
|
118 .global HAL_I2C_MspInit
|
|
|
|
|
119 .syntax unified
|
|
|
|
|
120 .code 16
|
|
|
|
|
121 .thumb_func
|
|
|
|
|
122 .fpu softvfp
|
|
|
|
|
124 HAL_I2C_MspInit:
|
|
|
|
|
125 .LFB98:
|
|
|
|
|
97:./Src/hw_i2c.c ****
|
|
|
|
|
98:./Src/hw_i2c.c **** void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
|
|
|
|
|
99:./Src/hw_i2c.c **** {
|
|
|
|
|
126 .loc 1 99 0
|
|
|
|
|
127 .cfi_startproc
|
|
|
|
|
128 @ args = 0, pretend = 0, frame = 24
|
|
|
|
|
129 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 .LVL7:
|
|
|
|
|
131 0000 00B5 push {lr}
|
|
|
|
|
132 .LCFI1:
|
|
|
|
|
133 .cfi_def_cfa_offset 4
|
|
|
|
|
134 .cfi_offset 14, -4
|
|
|
|
|
135 0002 87B0 sub sp, sp, #28
|
|
|
|
|
136 .LCFI2:
|
|
|
|
|
137 .cfi_def_cfa_offset 32
|
|
|
|
|
100:./Src/hw_i2c.c ****
|
|
|
|
|
101:./Src/hw_i2c.c **** GPIO_InitTypeDef GPIO_InitStruct;
|
|
|
|
|
102:./Src/hw_i2c.c **** if(i2cHandle->Instance==I2C1)
|
|
|
|
|
138 .loc 1 102 0
|
|
|
|
|
139 0004 0268 ldr r2, [r0]
|
|
|
|
|
140 0006 0D4B ldr r3, .L13
|
|
|
|
|
141 0008 9A42 cmp r2, r3
|
|
|
|
|
142 000a 01D0 beq .L12
|
|
|
|
|
143 .LVL8:
|
|
|
|
|
144 .L10:
|
|
|
|
|
103:./Src/hw_i2c.c **** {
|
|
|
|
|
104:./Src/hw_i2c.c **** /* USER CODE BEGIN I2C1_MspInit 0 */
|
|
|
|
|
105:./Src/hw_i2c.c ****
|
|
|
|
|
106:./Src/hw_i2c.c **** /* USER CODE END I2C1_MspInit 0 */
|
|
|
|
|
107:./Src/hw_i2c.c ****
|
|
|
|
|
108:./Src/hw_i2c.c **** /**I2C1 GPIO Configuration
|
|
|
|
|
109:./Src/hw_i2c.c **** PB8 ------> I2C1_SCL
|
|
|
|
|
110:./Src/hw_i2c.c **** PB9 ------> I2C1_SDA
|
|
|
|
|
111:./Src/hw_i2c.c **** */
|
|
|
|
|
112:./Src/hw_i2c.c **** GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
|
|
|
|
|
113:./Src/hw_i2c.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
|
|
|
114:./Src/hw_i2c.c **** GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
|
|
|
115:./Src/hw_i2c.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
|
116:./Src/hw_i2c.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
|
|
|
|
117:./Src/hw_i2c.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
|
118:./Src/hw_i2c.c ****
|
|
|
|
|
119:./Src/hw_i2c.c **** /* I2C1 clock enable */
|
|
|
|
|
120:./Src/hw_i2c.c **** __HAL_RCC_I2C1_CLK_ENABLE();
|
|
|
|
|
121:./Src/hw_i2c.c **** /* USER CODE BEGIN I2C1_MspInit 1 */
|
|
|
|
|
122:./Src/hw_i2c.c ****
|
|
|
|
|
123:./Src/hw_i2c.c **** /* USER CODE END I2C1_MspInit 1 */
|
|
|
|
|
124:./Src/hw_i2c.c **** }
|
|
|
|
|
125:./Src/hw_i2c.c **** }
|
|
|
|
|
145 .loc 1 125 0
|
|
|
|
|
146 000c 07B0 add sp, sp, #28
|
|
|
|
|
147 @ sp needed
|
|
|
|
|
148 000e 00BD pop {pc}
|
|
|
|
|
149 .LVL9:
|
|
|
|
|
150 .L12:
|
|
|
|
|
112:./Src/hw_i2c.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
|
|
|
151 .loc 1 112 0
|
|
|
|
|
152 0010 C023 movs r3, #192
|
|
|
|
|
153 0012 9B00 lsls r3, r3, #2
|
|
|
|
|
154 0014 0193 str r3, [sp, #4]
|
|
|
|
|
113:./Src/hw_i2c.c **** GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
|
|
|
155 .loc 1 113 0
|
|
|
|
|
156 0016 1223 movs r3, #18
|
|
|
|
|
157 0018 0293 str r3, [sp, #8]
|
|
|
|
|
114:./Src/hw_i2c.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 .loc 1 114 0
|
|
|
|
|
159 001a 113B subs r3, r3, #17
|
|
|
|
|
160 001c 0393 str r3, [sp, #12]
|
|
|
|
|
115:./Src/hw_i2c.c **** GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
|
|
|
|
161 .loc 1 115 0
|
|
|
|
|
162 001e 0233 adds r3, r3, #2
|
|
|
|
|
163 0020 0493 str r3, [sp, #16]
|
|
|
|
|
116:./Src/hw_i2c.c **** HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
|
164 .loc 1 116 0
|
|
|
|
|
165 0022 0133 adds r3, r3, #1
|
|
|
|
|
166 0024 0593 str r3, [sp, #20]
|
|
|
|
|
117:./Src/hw_i2c.c ****
|
|
|
|
|
167 .loc 1 117 0
|
|
|
|
|
168 0026 01A9 add r1, sp, #4
|
|
|
|
|
169 0028 0548 ldr r0, .L13+4
|
|
|
|
|
170 .LVL10:
|
|
|
|
|
171 002a FFF7FEFF bl HAL_GPIO_Init
|
|
|
|
|
172 .LVL11:
|
|
|
|
|
120:./Src/hw_i2c.c **** /* USER CODE BEGIN I2C1_MspInit 1 */
|
|
|
|
|
173 .loc 1 120 0
|
|
|
|
|
174 002e 054A ldr r2, .L13+8
|
|
|
|
|
175 0030 916B ldr r1, [r2, #56]
|
|
|
|
|
176 0032 8023 movs r3, #128
|
|
|
|
|
177 0034 9B03 lsls r3, r3, #14
|
|
|
|
|
178 0036 0B43 orrs r3, r1
|
|
|
|
|
179 0038 9363 str r3, [r2, #56]
|
|
|
|
|
180 .loc 1 125 0
|
|
|
|
|
181 003a E7E7 b .L10
|
|
|
|
|
182 .L14:
|
|
|
|
|
183 .align 2
|
|
|
|
|
184 .L13:
|
|
|
|
|
185 003c 00540040 .word 1073763328
|
|
|
|
|
186 0040 00040050 .word 1342178304
|
|
|
|
|
187 0044 00100240 .word 1073876992
|
|
|
|
|
188 .cfi_endproc
|
|
|
|
|
189 .LFE98:
|
|
|
|
|
191 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
|
|
|
|
|
192 .align 1
|
|
|
|
|
193 .global HAL_I2C_MspDeInit
|
|
|
|
|
194 .syntax unified
|
|
|
|
|
195 .code 16
|
|
|
|
|
196 .thumb_func
|
|
|
|
|
197 .fpu softvfp
|
|
|
|
|
199 HAL_I2C_MspDeInit:
|
|
|
|
|
200 .LFB99:
|
|
|
|
|
126:./Src/hw_i2c.c ****
|
|
|
|
|
127:./Src/hw_i2c.c **** void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
|
|
|
|
|
128:./Src/hw_i2c.c **** {
|
|
|
|
|
201 .loc 1 128 0
|
|
|
|
|
202 .cfi_startproc
|
|
|
|
|
203 @ args = 0, pretend = 0, frame = 0
|
|
|
|
|
204 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
205 .LVL12:
|
|
|
|
|
206 0000 10B5 push {r4, lr}
|
|
|
|
|
207 .LCFI3:
|
|
|
|
|
208 .cfi_def_cfa_offset 8
|
|
|
|
|
209 .cfi_offset 4, -8
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 .cfi_offset 14, -4
|
|
|
|
|
129:./Src/hw_i2c.c ****
|
|
|
|
|
130:./Src/hw_i2c.c **** if(i2cHandle->Instance==I2C1)
|
|
|
|
|
211 .loc 1 130 0
|
|
|
|
|
212 0002 0268 ldr r2, [r0]
|
|
|
|
|
213 0004 074B ldr r3, .L18
|
|
|
|
|
214 0006 9A42 cmp r2, r3
|
|
|
|
|
215 0008 00D0 beq .L17
|
|
|
|
|
216 .LVL13:
|
|
|
|
|
217 .L15:
|
|
|
|
|
131:./Src/hw_i2c.c **** {
|
|
|
|
|
132:./Src/hw_i2c.c **** /* USER CODE BEGIN I2C1_MspDeInit 0 */
|
|
|
|
|
133:./Src/hw_i2c.c ****
|
|
|
|
|
134:./Src/hw_i2c.c **** /* USER CODE END I2C1_MspDeInit 0 */
|
|
|
|
|
135:./Src/hw_i2c.c **** /* Peripheral clock disable */
|
|
|
|
|
136:./Src/hw_i2c.c **** __HAL_RCC_I2C1_CLK_DISABLE();
|
|
|
|
|
137:./Src/hw_i2c.c ****
|
|
|
|
|
138:./Src/hw_i2c.c **** /**I2C1 GPIO Configuration
|
|
|
|
|
139:./Src/hw_i2c.c **** PB8 ------> I2C1_SCL
|
|
|
|
|
140:./Src/hw_i2c.c **** PB9 ------> I2C1_SDA
|
|
|
|
|
141:./Src/hw_i2c.c **** */
|
|
|
|
|
142:./Src/hw_i2c.c **** HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
|
|
|
|
|
143:./Src/hw_i2c.c ****
|
|
|
|
|
144:./Src/hw_i2c.c **** /* USER CODE BEGIN I2C1_MspDeInit 1 */
|
|
|
|
|
145:./Src/hw_i2c.c ****
|
|
|
|
|
146:./Src/hw_i2c.c **** /* USER CODE END I2C1_MspDeInit 1 */
|
|
|
|
|
147:./Src/hw_i2c.c **** }
|
|
|
|
|
148:./Src/hw_i2c.c **** }
|
|
|
|
|
218 .loc 1 148 0
|
|
|
|
|
219 @ sp needed
|
|
|
|
|
220 000a 10BD pop {r4, pc}
|
|
|
|
|
221 .LVL14:
|
|
|
|
|
222 .L17:
|
|
|
|
|
136:./Src/hw_i2c.c ****
|
|
|
|
|
223 .loc 1 136 0
|
|
|
|
|
224 000c 064A ldr r2, .L18+4
|
|
|
|
|
225 000e 936B ldr r3, [r2, #56]
|
|
|
|
|
226 0010 0649 ldr r1, .L18+8
|
|
|
|
|
227 0012 0B40 ands r3, r1
|
|
|
|
|
228 0014 9363 str r3, [r2, #56]
|
|
|
|
|
142:./Src/hw_i2c.c ****
|
|
|
|
|
229 .loc 1 142 0
|
|
|
|
|
230 0016 C021 movs r1, #192
|
|
|
|
|
231 0018 8900 lsls r1, r1, #2
|
|
|
|
|
232 001a 0548 ldr r0, .L18+12
|
|
|
|
|
233 .LVL15:
|
|
|
|
|
234 001c FFF7FEFF bl HAL_GPIO_DeInit
|
|
|
|
|
235 .LVL16:
|
|
|
|
|
236 .loc 1 148 0
|
|
|
|
|
237 0020 F3E7 b .L15
|
|
|
|
|
238 .L19:
|
|
|
|
|
239 0022 C046 .align 2
|
|
|
|
|
240 .L18:
|
|
|
|
|
241 0024 00540040 .word 1073763328
|
|
|
|
|
242 0028 00100240 .word 1073876992
|
|
|
|
|
243 002c FFFFDFFF .word -2097153
|
|
|
|
|
244 0030 00040050 .word 1342178304
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 .cfi_endproc
|
|
|
|
|
246 .LFE99:
|
|
|
|
|
248 .global hi2c1
|
|
|
|
|
249 .section .bss.hi2c1,"aw",%nobits
|
|
|
|
|
250 .align 2
|
|
|
|
|
251 .set .LANCHOR0,. + 0
|
|
|
|
|
254 hi2c1:
|
|
|
|
|
255 0000 00000000 .space 76
|
|
|
|
|
255 00000000
|
|
|
|
|
255 00000000
|
|
|
|
|
255 00000000
|
|
|
|
|
255 00000000
|
|
|
|
|
256 .section .rodata.MX_I2C1_Init.str1.4,"aMS",%progbits,1
|
|
|
|
|
257 .align 2
|
|
|
|
|
258 .LC1:
|
|
|
|
|
259 0000 2E2F5372 .ascii "./Src/hw_i2c.c\000"
|
|
|
|
|
259 632F6877
|
|
|
|
|
259 5F693263
|
|
|
|
|
259 2E6300
|
|
|
|
|
260 .text
|
|
|
|
|
261 .Letext0:
|
|
|
|
|
262 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
|
|
|
|
|
263 .file 3 "/usr/arm-none-eabi/include/sys/lock.h"
|
|
|
|
|
264 .file 4 "/usr/arm-none-eabi/include/sys/_types.h"
|
|
|
|
|
265 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
|
|
|
|
|
266 .file 6 "/usr/arm-none-eabi/include/sys/reent.h"
|
|
|
|
|
267 .file 7 "/usr/arm-none-eabi/include/math.h"
|
|
|
|
|
268 .file 8 "/usr/arm-none-eabi/include/sys/_stdint.h"
|
|
|
|
|
269 .file 9 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
|
|
|
|
|
270 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
|
|
|
|
|
271 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
|
|
|
|
|
272 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_gpio.h"
|
|
|
|
|
273 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_dma.h"
|
|
|
|
|
274 .file 14 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_i2c.h"
|
|
|
|
|
275 .file 15 "Inc/hw_i2c.h"
|
|
|
|
|
276 .file 16 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_i2c_ex.h"
|
|
|
|
|
277 .file 17 "Inc/debug.h"
|
|
|
|
|
ARM GAS /tmp/ccdg55Po.s page 9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEFINED SYMBOLS
|
|
|
|
|
*ABS*:0000000000000000 hw_i2c.c
|
|
|
|
|
/tmp/ccdg55Po.s:16 .text.MX_I2C1_Init:0000000000000000 $t
|
|
|
|
|
/tmp/ccdg55Po.s:23 .text.MX_I2C1_Init:0000000000000000 MX_I2C1_Init
|
|
|
|
|
/tmp/ccdg55Po.s:109 .text.MX_I2C1_Init:0000000000000060 $d
|
|
|
|
|
/tmp/ccdg55Po.s:117 .text.HAL_I2C_MspInit:0000000000000000 $t
|
|
|
|
|
/tmp/ccdg55Po.s:124 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit
|
|
|
|
|
/tmp/ccdg55Po.s:185 .text.HAL_I2C_MspInit:000000000000003c $d
|
|
|
|
|
/tmp/ccdg55Po.s:192 .text.HAL_I2C_MspDeInit:0000000000000000 $t
|
|
|
|
|
/tmp/ccdg55Po.s:199 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit
|
|
|
|
|
/tmp/ccdg55Po.s:241 .text.HAL_I2C_MspDeInit:0000000000000024 $d
|
|
|
|
|
/tmp/ccdg55Po.s:254 .bss.hi2c1:0000000000000000 hi2c1
|
|
|
|
|
/tmp/ccdg55Po.s:250 .bss.hi2c1:0000000000000000 $d
|
|
|
|
|
/tmp/ccdg55Po.s:257 .rodata.MX_I2C1_Init.str1.4:0000000000000000 $d
|
|
|
|
|
.debug_frame:0000000000000010 $d
|
|
|
|
|
|
|
|
|
|
UNDEFINED SYMBOLS
|
|
|
|
|
HAL_I2C_Init
|
|
|
|
|
HAL_I2CEx_ConfigAnalogFilter
|
|
|
|
|
HAL_I2CEx_ConfigDigitalFilter
|
|
|
|
|
_Error_Handler
|
|
|
|
|
HAL_GPIO_Init
|
|
|
|
|
HAL_GPIO_DeInit
|