943 lines
41 KiB
Plaintext
943 lines
41 KiB
Plaintext
ARM GAS /tmp/ccf8kWw2.s page 1
|
||
|
||
|
||
1 .cpu cortex-m4
|
||
2 .arch armv7e-m
|
||
3 .fpu fpv4-sp-d16
|
||
4 .eabi_attribute 27, 1
|
||
5 .eabi_attribute 28, 1
|
||
6 .eabi_attribute 20, 1
|
||
7 .eabi_attribute 21, 1
|
||
8 .eabi_attribute 23, 3
|
||
9 .eabi_attribute 24, 1
|
||
10 .eabi_attribute 25, 1
|
||
11 .eabi_attribute 26, 1
|
||
12 .eabi_attribute 30, 1
|
||
13 .eabi_attribute 34, 1
|
||
14 .eabi_attribute 18, 4
|
||
15 .file "AMS_CAN.c"
|
||
16 .text
|
||
17 .Ltext0:
|
||
18 .cfi_sections .debug_frame
|
||
19 .file 1 "Core/Src/AMS_CAN.c"
|
||
20 .section .text.ams_can_init,"ax",%progbits
|
||
21 .align 1
|
||
22 .global ams_can_init
|
||
23 .syntax unified
|
||
24 .thumb
|
||
25 .thumb_func
|
||
27 ams_can_init:
|
||
28 .LVL0:
|
||
29 .LFB130:
|
||
1:Core/Src/AMS_CAN.c **** /*
|
||
2:Core/Src/AMS_CAN.c **** * AMS_CAN.c
|
||
3:Core/Src/AMS_CAN.c **** *
|
||
4:Core/Src/AMS_CAN.c **** * Created on: Mar 19, 2022
|
||
5:Core/Src/AMS_CAN.c **** * Author: jasper
|
||
6:Core/Src/AMS_CAN.c **** */
|
||
7:Core/Src/AMS_CAN.c ****
|
||
8:Core/Src/AMS_CAN.c **** #include "AMS_CAN.h"
|
||
9:Core/Src/AMS_CAN.c ****
|
||
10:Core/Src/AMS_CAN.c **** #include "ADBMS_Abstraction.h"
|
||
11:Core/Src/AMS_CAN.c ****
|
||
12:Core/Src/AMS_CAN.c ****
|
||
13:Core/Src/AMS_CAN.c **** #include "common_defs.h"
|
||
14:Core/Src/AMS_CAN.c **** #include "main.h"
|
||
15:Core/Src/AMS_CAN.c **** #include "AMS_HighLevel.h"
|
||
16:Core/Src/AMS_CAN.c **** #include "stm32f3xx.h"
|
||
17:Core/Src/AMS_CAN.c **** #include "stm32f3xx_hal.h"
|
||
18:Core/Src/AMS_CAN.c **** #include "stm32f3xx_hal_can.h"
|
||
19:Core/Src/AMS_CAN.c ****
|
||
20:Core/Src/AMS_CAN.c **** #include <stdint.h>
|
||
21:Core/Src/AMS_CAN.c ****
|
||
22:Core/Src/AMS_CAN.c **** int PENDING_MESSAGE_HANDLE = 0;
|
||
23:Core/Src/AMS_CAN.c **** uint8_t canTestData[8] = {0,0,0,0,0,0,0,0};
|
||
24:Core/Src/AMS_CAN.c ****
|
||
25:Core/Src/AMS_CAN.c ****
|
||
26:Core/Src/AMS_CAN.c **** CAN_HandleTypeDef* ams_can_handle;
|
||
27:Core/Src/AMS_CAN.c ****
|
||
28:Core/Src/AMS_CAN.c **** void ams_can_init(CAN_HandleTypeDef* ams_handle,
|
||
29:Core/Src/AMS_CAN.c **** CAN_HandleTypeDef* car_handle) {
|
||
ARM GAS /tmp/ccf8kWw2.s page 2
|
||
|
||
|
||
30 .loc 1 29 50 view -0
|
||
31 .cfi_startproc
|
||
32 @ args = 0, pretend = 0, frame = 40
|
||
33 @ frame_needed = 0, uses_anonymous_args = 0
|
||
34 .loc 1 29 50 is_stmt 0 view .LVU1
|
||
35 0000 10B5 push {r4, lr}
|
||
36 .cfi_def_cfa_offset 8
|
||
37 .cfi_offset 4, -8
|
||
38 .cfi_offset 14, -4
|
||
39 0002 8AB0 sub sp, sp, #40
|
||
40 .cfi_def_cfa_offset 48
|
||
41 0004 0C46 mov r4, r1
|
||
30:Core/Src/AMS_CAN.c **** ams_can_handle = ams_handle;
|
||
42 .loc 1 30 3 is_stmt 1 view .LVU2
|
||
43 .loc 1 30 18 is_stmt 0 view .LVU3
|
||
44 0006 204B ldr r3, .L11
|
||
45 0008 1860 str r0, [r3]
|
||
31:Core/Src/AMS_CAN.c ****
|
||
32:Core/Src/AMS_CAN.c **** // Start peripheral
|
||
33:Core/Src/AMS_CAN.c **** if (HAL_CAN_Start(ams_can_handle) != HAL_OK) {
|
||
46 .loc 1 33 3 is_stmt 1 view .LVU4
|
||
47 .loc 1 33 7 is_stmt 0 view .LVU5
|
||
48 000a FFF7FEFF bl HAL_CAN_Start
|
||
49 .LVL1:
|
||
50 .loc 1 33 6 view .LVU6
|
||
51 000e 40BB cbnz r0, .L7
|
||
52 .L2:
|
||
34:Core/Src/AMS_CAN.c **** ams_can_handle = car_handle;
|
||
35:Core/Src/AMS_CAN.c **** if (HAL_CAN_Start(ams_can_handle) != HAL_OK) {
|
||
36:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
37:Core/Src/AMS_CAN.c **** }
|
||
38:Core/Src/AMS_CAN.c **** }
|
||
39:Core/Src/AMS_CAN.c ****
|
||
40:Core/Src/AMS_CAN.c **** // Config filter
|
||
41:Core/Src/AMS_CAN.c **** CAN_FilterTypeDef can_filter;
|
||
53 .loc 1 41 3 is_stmt 1 view .LVU7
|
||
42:Core/Src/AMS_CAN.c **** can_filter.FilterActivation = CAN_FILTER_ENABLE;
|
||
54 .loc 1 42 3 view .LVU8
|
||
55 .loc 1 42 31 is_stmt 0 view .LVU9
|
||
56 0010 0122 movs r2, #1
|
||
57 0012 0892 str r2, [sp, #32]
|
||
43:Core/Src/AMS_CAN.c **** can_filter.FilterBank = 0;
|
||
58 .loc 1 43 3 is_stmt 1 view .LVU10
|
||
59 .loc 1 43 25 is_stmt 0 view .LVU11
|
||
60 0014 0023 movs r3, #0
|
||
61 0016 0593 str r3, [sp, #20]
|
||
44:Core/Src/AMS_CAN.c **** can_filter.FilterFIFOAssignment = CAN_FILTER_FIFO0;
|
||
62 .loc 1 44 3 is_stmt 1 view .LVU12
|
||
63 .loc 1 44 35 is_stmt 0 view .LVU13
|
||
64 0018 0493 str r3, [sp, #16]
|
||
45:Core/Src/AMS_CAN.c **** /* Message ID is in the MSBs of the FilterId register */
|
||
46:Core/Src/AMS_CAN.c **** can_filter.FilterIdHigh = CAN_ID_CLOCK_SYNC << (16 - 11);
|
||
65 .loc 1 46 3 is_stmt 1 view .LVU14
|
||
66 .loc 1 46 27 is_stmt 0 view .LVU15
|
||
67 001a 4021 movs r1, #64
|
||
68 001c 0091 str r1, [sp]
|
||
47:Core/Src/AMS_CAN.c **** can_filter.FilterIdLow = 0;
|
||
ARM GAS /tmp/ccf8kWw2.s page 3
|
||
|
||
|
||
69 .loc 1 47 3 is_stmt 1 view .LVU16
|
||
70 .loc 1 47 26 is_stmt 0 view .LVU17
|
||
71 001e 0193 str r3, [sp, #4]
|
||
48:Core/Src/AMS_CAN.c **** /* Filter the 11 MSBs (i.e. a StdId) */
|
||
49:Core/Src/AMS_CAN.c ****
|
||
50:Core/Src/AMS_CAN.c **** if(BMS_IN_TEST_MODE == 1){
|
||
72 .loc 1 50 3 is_stmt 1 view .LVU18
|
||
51:Core/Src/AMS_CAN.c **** can_filter.FilterMaskIdHigh = BMS_TEST_ID; // alleNachrichtenIds werden akzeptiert
|
||
73 .loc 1 51 4 view .LVU19
|
||
74 .loc 1 51 32 is_stmt 0 view .LVU20
|
||
75 0020 0293 str r3, [sp, #8]
|
||
52:Core/Src/AMS_CAN.c **** }else{
|
||
53:Core/Src/AMS_CAN.c **** can_filter.FilterMaskIdHigh = 0xFFE0;
|
||
54:Core/Src/AMS_CAN.c **** }
|
||
55:Core/Src/AMS_CAN.c ****
|
||
56:Core/Src/AMS_CAN.c **** can_filter.FilterMaskIdLow = 0;
|
||
76 .loc 1 56 3 is_stmt 1 view .LVU21
|
||
77 .loc 1 56 30 is_stmt 0 view .LVU22
|
||
78 0022 0393 str r3, [sp, #12]
|
||
57:Core/Src/AMS_CAN.c **** can_filter.FilterMode = CAN_FILTERMODE_IDMASK;
|
||
79 .loc 1 57 3 is_stmt 1 view .LVU23
|
||
80 .loc 1 57 25 is_stmt 0 view .LVU24
|
||
81 0024 0693 str r3, [sp, #24]
|
||
58:Core/Src/AMS_CAN.c **** can_filter.FilterScale = CAN_FILTERSCALE_32BIT;
|
||
82 .loc 1 58 3 is_stmt 1 view .LVU25
|
||
83 .loc 1 58 26 is_stmt 0 view .LVU26
|
||
84 0026 0792 str r2, [sp, #28]
|
||
59:Core/Src/AMS_CAN.c **** can_filter.SlaveStartFilterBank = 0;
|
||
85 .loc 1 59 3 is_stmt 1 view .LVU27
|
||
86 .loc 1 59 35 is_stmt 0 view .LVU28
|
||
87 0028 0993 str r3, [sp, #36]
|
||
60:Core/Src/AMS_CAN.c **** if (HAL_CAN_ConfigFilter(ams_can_handle, &can_filter) != HAL_OK) {
|
||
88 .loc 1 60 3 is_stmt 1 view .LVU29
|
||
89 .loc 1 60 7 is_stmt 0 view .LVU30
|
||
90 002a 6946 mov r1, sp
|
||
91 002c 164B ldr r3, .L11
|
||
92 002e 1868 ldr r0, [r3]
|
||
93 0030 FFF7FEFF bl HAL_CAN_ConfigFilter
|
||
94 .LVL2:
|
||
95 .loc 1 60 6 view .LVU31
|
||
96 0034 F8B9 cbnz r0, .L8
|
||
97 .L3:
|
||
61:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
62:Core/Src/AMS_CAN.c **** }
|
||
63:Core/Src/AMS_CAN.c **** can_filter.FilterBank++;
|
||
98 .loc 1 63 3 is_stmt 1 view .LVU32
|
||
99 .loc 1 63 13 is_stmt 0 view .LVU33
|
||
100 0036 059B ldr r3, [sp, #20]
|
||
101 .loc 1 63 24 view .LVU34
|
||
102 0038 0133 adds r3, r3, #1
|
||
103 003a 0593 str r3, [sp, #20]
|
||
64:Core/Src/AMS_CAN.c **** can_filter.FilterIdHigh = CAN_ID_MASTER_HEARTBEAT << (16 - 11);
|
||
104 .loc 1 64 3 is_stmt 1 view .LVU35
|
||
105 .loc 1 64 27 is_stmt 0 view .LVU36
|
||
106 003c 4FF40073 mov r3, #512
|
||
107 0040 0093 str r3, [sp]
|
||
65:Core/Src/AMS_CAN.c **** can_filter.FilterIdLow = 0;
|
||
ARM GAS /tmp/ccf8kWw2.s page 4
|
||
|
||
|
||
108 .loc 1 65 3 is_stmt 1 view .LVU37
|
||
109 .loc 1 65 26 is_stmt 0 view .LVU38
|
||
110 0042 0023 movs r3, #0
|
||
111 0044 0193 str r3, [sp, #4]
|
||
66:Core/Src/AMS_CAN.c **** if (HAL_CAN_ConfigFilter(ams_can_handle, &can_filter) != HAL_OK) {
|
||
112 .loc 1 66 3 is_stmt 1 view .LVU39
|
||
113 .loc 1 66 7 is_stmt 0 view .LVU40
|
||
114 0046 6946 mov r1, sp
|
||
115 0048 0F4B ldr r3, .L11
|
||
116 004a 1868 ldr r0, [r3]
|
||
117 004c FFF7FEFF bl HAL_CAN_ConfigFilter
|
||
118 .LVL3:
|
||
119 .loc 1 66 6 view .LVU41
|
||
120 0050 A0B9 cbnz r0, .L9
|
||
121 .L4:
|
||
67:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
68:Core/Src/AMS_CAN.c **** }
|
||
69:Core/Src/AMS_CAN.c ****
|
||
70:Core/Src/AMS_CAN.c **** // Activate RX notifications
|
||
71:Core/Src/AMS_CAN.c **** if (HAL_CAN_ActivateNotification(ams_can_handle,
|
||
122 .loc 1 71 3 is_stmt 1 view .LVU42
|
||
123 .loc 1 71 7 is_stmt 0 view .LVU43
|
||
124 0052 0221 movs r1, #2
|
||
125 0054 0C4B ldr r3, .L11
|
||
126 0056 1868 ldr r0, [r3]
|
||
127 0058 FFF7FEFF bl HAL_CAN_ActivateNotification
|
||
128 .LVL4:
|
||
129 .loc 1 71 6 view .LVU44
|
||
130 005c 88B9 cbnz r0, .L10
|
||
131 .L1:
|
||
72:Core/Src/AMS_CAN.c **** CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK) {
|
||
73:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
74:Core/Src/AMS_CAN.c **** }
|
||
75:Core/Src/AMS_CAN.c **** }
|
||
132 .loc 1 75 1 view .LVU45
|
||
133 005e 0AB0 add sp, sp, #40
|
||
134 .cfi_remember_state
|
||
135 .cfi_def_cfa_offset 8
|
||
136 @ sp needed
|
||
137 0060 10BD pop {r4, pc}
|
||
138 .LVL5:
|
||
139 .L7:
|
||
140 .cfi_restore_state
|
||
34:Core/Src/AMS_CAN.c **** if (HAL_CAN_Start(ams_can_handle) != HAL_OK) {
|
||
141 .loc 1 34 5 is_stmt 1 view .LVU46
|
||
34:Core/Src/AMS_CAN.c **** if (HAL_CAN_Start(ams_can_handle) != HAL_OK) {
|
||
142 .loc 1 34 20 is_stmt 0 view .LVU47
|
||
143 0062 094B ldr r3, .L11
|
||
144 0064 1C60 str r4, [r3]
|
||
35:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
145 .loc 1 35 5 is_stmt 1 view .LVU48
|
||
35:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
146 .loc 1 35 9 is_stmt 0 view .LVU49
|
||
147 0066 2046 mov r0, r4
|
||
148 0068 FFF7FEFF bl HAL_CAN_Start
|
||
149 .LVL6:
|
||
35:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
ARM GAS /tmp/ccf8kWw2.s page 5
|
||
|
||
|
||
150 .loc 1 35 8 view .LVU50
|
||
151 006c 0028 cmp r0, #0
|
||
152 006e CFD0 beq .L2
|
||
36:Core/Src/AMS_CAN.c **** }
|
||
153 .loc 1 36 7 is_stmt 1 view .LVU51
|
||
154 0070 FFF7FEFF bl Error_Handler
|
||
155 .LVL7:
|
||
156 0074 CCE7 b .L2
|
||
157 .L8:
|
||
61:Core/Src/AMS_CAN.c **** }
|
||
158 .loc 1 61 5 view .LVU52
|
||
159 0076 FFF7FEFF bl Error_Handler
|
||
160 .LVL8:
|
||
161 007a DCE7 b .L3
|
||
162 .L9:
|
||
67:Core/Src/AMS_CAN.c **** }
|
||
163 .loc 1 67 5 view .LVU53
|
||
164 007c FFF7FEFF bl Error_Handler
|
||
165 .LVL9:
|
||
166 0080 E7E7 b .L4
|
||
167 .L10:
|
||
73:Core/Src/AMS_CAN.c **** }
|
||
168 .loc 1 73 5 view .LVU54
|
||
169 0082 FFF7FEFF bl Error_Handler
|
||
170 .LVL10:
|
||
171 .loc 1 75 1 is_stmt 0 view .LVU55
|
||
172 0086 EAE7 b .L1
|
||
173 .L12:
|
||
174 .align 2
|
||
175 .L11:
|
||
176 0088 00000000 .word ams_can_handle
|
||
177 .cfi_endproc
|
||
178 .LFE130:
|
||
180 .section .text.ams_can_handle_ams_msg,"ax",%progbits
|
||
181 .align 1
|
||
182 .global ams_can_handle_ams_msg
|
||
183 .syntax unified
|
||
184 .thumb
|
||
185 .thumb_func
|
||
187 ams_can_handle_ams_msg:
|
||
188 .LVL11:
|
||
189 .LFB132:
|
||
76:Core/Src/AMS_CAN.c ****
|
||
77:Core/Src/AMS_CAN.c **** static int cb_triggered = 0;
|
||
78:Core/Src/AMS_CAN.c ****
|
||
79:Core/Src/AMS_CAN.c **** void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef* handle) {
|
||
80:Core/Src/AMS_CAN.c **** static CAN_RxHeaderTypeDef header;
|
||
81:Core/Src/AMS_CAN.c **** static uint8_t data[8];
|
||
82:Core/Src/AMS_CAN.c **** cb_triggered = 1;
|
||
83:Core/Src/AMS_CAN.c ****
|
||
84:Core/Src/AMS_CAN.c **** if (HAL_CAN_GetRxMessage(handle, CAN_RX_FIFO0, &header, data) != HAL_OK) {
|
||
85:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
86:Core/Src/AMS_CAN.c **** }
|
||
87:Core/Src/AMS_CAN.c ****
|
||
88:Core/Src/AMS_CAN.c **** if (handle == ams_can_handle) {
|
||
89:Core/Src/AMS_CAN.c **** ams_can_handle_ams_msg(&header, data);
|
||
90:Core/Src/AMS_CAN.c **** } else {
|
||
ARM GAS /tmp/ccf8kWw2.s page 6
|
||
|
||
|
||
91:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
92:Core/Src/AMS_CAN.c **** }
|
||
93:Core/Src/AMS_CAN.c **** }
|
||
94:Core/Src/AMS_CAN.c ****
|
||
95:Core/Src/AMS_CAN.c **** void ams_can_handle_ams_msg(CAN_RxHeaderTypeDef* header, uint8_t* data) {
|
||
190 .loc 1 95 73 is_stmt 1 view -0
|
||
191 .cfi_startproc
|
||
192 @ args = 0, pretend = 0, frame = 0
|
||
193 @ frame_needed = 0, uses_anonymous_args = 0
|
||
194 @ link register save eliminated.
|
||
96:Core/Src/AMS_CAN.c ****
|
||
97:Core/Src/AMS_CAN.c **** if(BMS_IN_TEST_MODE == 1){
|
||
195 .loc 1 97 3 view .LVU57
|
||
98:Core/Src/AMS_CAN.c **** PENDING_MESSAGE_HANDLE = 1;
|
||
196 .loc 1 98 5 view .LVU58
|
||
197 .loc 1 98 28 is_stmt 0 view .LVU59
|
||
198 0000 054B ldr r3, .L16
|
||
199 0002 0122 movs r2, #1
|
||
200 0004 1A60 str r2, [r3]
|
||
99:Core/Src/AMS_CAN.c **** for(int i = 0; i < 8; i++){
|
||
201 .loc 1 99 5 is_stmt 1 view .LVU60
|
||
202 .LBB2:
|
||
203 .loc 1 99 9 view .LVU61
|
||
204 .LVL12:
|
||
205 .loc 1 99 13 is_stmt 0 view .LVU62
|
||
206 0006 0023 movs r3, #0
|
||
207 .loc 1 99 5 view .LVU63
|
||
208 0008 03E0 b .L14
|
||
209 .LVL13:
|
||
210 .L15:
|
||
100:Core/Src/AMS_CAN.c **** canTestData[i] = data[i];
|
||
211 .loc 1 100 6 is_stmt 1 discriminator 3 view .LVU64
|
||
212 .loc 1 100 27 is_stmt 0 discriminator 3 view .LVU65
|
||
213 000a C85C ldrb r0, [r1, r3] @ zero_extendqisi2
|
||
214 .loc 1 100 21 discriminator 3 view .LVU66
|
||
215 000c 034A ldr r2, .L16+4
|
||
216 000e D054 strb r0, [r2, r3]
|
||
99:Core/Src/AMS_CAN.c **** for(int i = 0; i < 8; i++){
|
||
217 .loc 1 99 28 is_stmt 1 discriminator 3 view .LVU67
|
||
218 0010 0133 adds r3, r3, #1
|
||
219 .LVL14:
|
||
220 .L14:
|
||
99:Core/Src/AMS_CAN.c **** for(int i = 0; i < 8; i++){
|
||
221 .loc 1 99 22 discriminator 1 view .LVU68
|
||
222 0012 072B cmp r3, #7
|
||
223 0014 F9DD ble .L15
|
||
224 .LBE2:
|
||
101:Core/Src/AMS_CAN.c **** }
|
||
102:Core/Src/AMS_CAN.c **** return;
|
||
103:Core/Src/AMS_CAN.c **** }
|
||
104:Core/Src/AMS_CAN.c ****
|
||
105:Core/Src/AMS_CAN.c ****
|
||
106:Core/Src/AMS_CAN.c **** if (header->IDE != CAN_ID_STD) {
|
||
107:Core/Src/AMS_CAN.c **** return;
|
||
108:Core/Src/AMS_CAN.c **** }
|
||
109:Core/Src/AMS_CAN.c ****
|
||
110:Core/Src/AMS_CAN.c **** switch (header->StdId) {
|
||
ARM GAS /tmp/ccf8kWw2.s page 7
|
||
|
||
|
||
111:Core/Src/AMS_CAN.c **** case CAN_ID_CLOCK_SYNC:
|
||
112:Core/Src/AMS_CAN.c **** // clock_sync_handle_clock_sync_frame(data[0]);
|
||
113:Core/Src/AMS_CAN.c **** break;
|
||
114:Core/Src/AMS_CAN.c **** case CAN_ID_MASTER_HEARTBEAT:
|
||
115:Core/Src/AMS_CAN.c **** // clock_sync_handle_master_heartbeat();
|
||
116:Core/Src/AMS_CAN.c **** break;
|
||
117:Core/Src/AMS_CAN.c **** }
|
||
118:Core/Src/AMS_CAN.c **** }
|
||
225 .loc 1 118 1 is_stmt 0 view .LVU69
|
||
226 0016 7047 bx lr
|
||
227 .L17:
|
||
228 .align 2
|
||
229 .L16:
|
||
230 0018 00000000 .word PENDING_MESSAGE_HANDLE
|
||
231 001c 00000000 .word canTestData
|
||
232 .cfi_endproc
|
||
233 .LFE132:
|
||
235 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits
|
||
236 .align 1
|
||
237 .global HAL_CAN_RxFifo0MsgPendingCallback
|
||
238 .syntax unified
|
||
239 .thumb
|
||
240 .thumb_func
|
||
242 HAL_CAN_RxFifo0MsgPendingCallback:
|
||
243 .LVL15:
|
||
244 .LFB131:
|
||
79:Core/Src/AMS_CAN.c **** static CAN_RxHeaderTypeDef header;
|
||
245 .loc 1 79 67 is_stmt 1 view -0
|
||
246 .cfi_startproc
|
||
247 @ args = 0, pretend = 0, frame = 0
|
||
248 @ frame_needed = 0, uses_anonymous_args = 0
|
||
79:Core/Src/AMS_CAN.c **** static CAN_RxHeaderTypeDef header;
|
||
249 .loc 1 79 67 is_stmt 0 view .LVU71
|
||
250 0000 10B5 push {r4, lr}
|
||
251 .cfi_def_cfa_offset 8
|
||
252 .cfi_offset 4, -8
|
||
253 .cfi_offset 14, -4
|
||
254 0002 0446 mov r4, r0
|
||
80:Core/Src/AMS_CAN.c **** static uint8_t data[8];
|
||
255 .loc 1 80 3 is_stmt 1 view .LVU72
|
||
81:Core/Src/AMS_CAN.c **** cb_triggered = 1;
|
||
256 .loc 1 81 3 view .LVU73
|
||
82:Core/Src/AMS_CAN.c ****
|
||
257 .loc 1 82 3 view .LVU74
|
||
82:Core/Src/AMS_CAN.c ****
|
||
258 .loc 1 82 16 is_stmt 0 view .LVU75
|
||
259 0004 0B4B ldr r3, .L25
|
||
260 0006 0122 movs r2, #1
|
||
261 0008 1A60 str r2, [r3]
|
||
84:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
262 .loc 1 84 3 is_stmt 1 view .LVU76
|
||
84:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
263 .loc 1 84 7 is_stmt 0 view .LVU77
|
||
264 000a 0B4B ldr r3, .L25+4
|
||
265 000c 0B4A ldr r2, .L25+8
|
||
266 000e 0021 movs r1, #0
|
||
267 0010 FFF7FEFF bl HAL_CAN_GetRxMessage
|
||
ARM GAS /tmp/ccf8kWw2.s page 8
|
||
|
||
|
||
268 .LVL16:
|
||
84:Core/Src/AMS_CAN.c **** Error_Handler();
|
||
269 .loc 1 84 6 view .LVU78
|
||
270 0014 30B9 cbnz r0, .L23
|
||
271 .L19:
|
||
88:Core/Src/AMS_CAN.c **** ams_can_handle_ams_msg(&header, data);
|
||
272 .loc 1 88 3 is_stmt 1 view .LVU79
|
||
88:Core/Src/AMS_CAN.c **** ams_can_handle_ams_msg(&header, data);
|
||
273 .loc 1 88 14 is_stmt 0 view .LVU80
|
||
274 0016 0A4B ldr r3, .L25+12
|
||
275 0018 1B68 ldr r3, [r3]
|
||
88:Core/Src/AMS_CAN.c **** ams_can_handle_ams_msg(&header, data);
|
||
276 .loc 1 88 6 view .LVU81
|
||
277 001a A342 cmp r3, r4
|
||
278 001c 05D0 beq .L24
|
||
91:Core/Src/AMS_CAN.c **** }
|
||
279 .loc 1 91 5 is_stmt 1 view .LVU82
|
||
280 001e FFF7FEFF bl Error_Handler
|
||
281 .LVL17:
|
||
282 .L18:
|
||
93:Core/Src/AMS_CAN.c ****
|
||
283 .loc 1 93 1 is_stmt 0 view .LVU83
|
||
284 0022 10BD pop {r4, pc}
|
||
285 .LVL18:
|
||
286 .L23:
|
||
85:Core/Src/AMS_CAN.c **** }
|
||
287 .loc 1 85 5 is_stmt 1 view .LVU84
|
||
288 0024 FFF7FEFF bl Error_Handler
|
||
289 .LVL19:
|
||
290 0028 F5E7 b .L19
|
||
291 .L24:
|
||
89:Core/Src/AMS_CAN.c **** } else {
|
||
292 .loc 1 89 5 view .LVU85
|
||
293 002a 0349 ldr r1, .L25+4
|
||
294 002c 0348 ldr r0, .L25+8
|
||
295 002e FFF7FEFF bl ams_can_handle_ams_msg
|
||
296 .LVL20:
|
||
297 0032 F6E7 b .L18
|
||
298 .L26:
|
||
299 .align 2
|
||
300 .L25:
|
||
301 0034 00000000 .word cb_triggered
|
||
302 0038 00000000 .word data.2
|
||
303 003c 00000000 .word header.3
|
||
304 0040 00000000 .word ams_can_handle
|
||
305 .cfi_endproc
|
||
306 .LFE131:
|
||
308 .section .text.ams_can_wait_for_free_mailboxes,"ax",%progbits
|
||
309 .align 1
|
||
310 .global ams_can_wait_for_free_mailboxes
|
||
311 .syntax unified
|
||
312 .thumb
|
||
313 .thumb_func
|
||
315 ams_can_wait_for_free_mailboxes:
|
||
316 .LVL21:
|
||
317 .LFB134:
|
||
119:Core/Src/AMS_CAN.c ****
|
||
ARM GAS /tmp/ccf8kWw2.s page 9
|
||
|
||
|
||
120:Core/Src/AMS_CAN.c **** void ams_can_send_heartbeat() {
|
||
121:Core/Src/AMS_CAN.c **** static CAN_TxHeaderTypeDef header;
|
||
122:Core/Src/AMS_CAN.c **** static uint8_t data[8];
|
||
123:Core/Src/AMS_CAN.c ****
|
||
124:Core/Src/AMS_CAN.c **** header.IDE = CAN_ID_STD;
|
||
125:Core/Src/AMS_CAN.c **** header.DLC = 8;
|
||
126:Core/Src/AMS_CAN.c **** header.RTR = CAN_RTR_DATA;
|
||
127:Core/Src/AMS_CAN.c **** header.TransmitGlobalTime = DISABLE;
|
||
128:Core/Src/AMS_CAN.c ****
|
||
129:Core/Src/AMS_CAN.c **** // Send voltages
|
||
130:Core/Src/AMS_CAN.c **** for (int msg_id = 0; msg_id < 5; msg_id++) {
|
||
131:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
132:Core/Src/AMS_CAN.c **** for (int i = 0; i < 4; i++) {
|
||
133:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
134:Core/Src/AMS_CAN.c **** uint16_t v = (cell < N_CELLS) ? module.cellVoltages[cell] : 0;
|
||
135:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
136:Core/Src/AMS_CAN.c **** data[2 * i + 1] = v >> 8;
|
||
137:Core/Src/AMS_CAN.c **** }
|
||
138:Core/Src/AMS_CAN.c **** if (ams_can_wait_for_free_mailboxes(ams_can_handle, 1,
|
||
139:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
140:Core/Src/AMS_CAN.c **** uint32_t mailbox;
|
||
141:Core/Src/AMS_CAN.c **** HAL_CAN_AddTxMessage(ams_can_handle, &header, data, &mailbox);
|
||
142:Core/Src/AMS_CAN.c **** }
|
||
143:Core/Src/AMS_CAN.c **** }
|
||
144:Core/Src/AMS_CAN.c ****
|
||
145:Core/Src/AMS_CAN.c **** // Send temperatures
|
||
146:Core/Src/AMS_CAN.c **** /*for (int temp_msg_id = 0; temp_msg_id < 8; temp_msg_id++) {
|
||
147:Core/Src/AMS_CAN.c **** int msg_id = temp_msg_id + 3;
|
||
148:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (slave_id << 4) | msg_id;
|
||
149:Core/Src/AMS_CAN.c **** for (int i = 0; i < 4; i++) {
|
||
150:Core/Src/AMS_CAN.c **** int sensor = temp_msg_id * 4 + i;
|
||
151:Core/Src/AMS_CAN.c **** uint16_t temp = temperatures[sensor];
|
||
152:Core/Src/AMS_CAN.c **** data[2 * i + 0] = temp & 0xFF;
|
||
153:Core/Src/AMS_CAN.c **** data[2 * i + 1] = temp >> 8;
|
||
154:Core/Src/AMS_CAN.c **** }
|
||
155:Core/Src/AMS_CAN.c **** if (ams_can_wait_for_free_mailboxes(ams_can_handle, 1,
|
||
156:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
157:Core/Src/AMS_CAN.c **** uint32_t mailbox;
|
||
158:Core/Src/AMS_CAN.c **** HAL_CAN_AddTxMessage(ams_can_handle, &header, data, &mailbox);
|
||
159:Core/Src/AMS_CAN.c **** }
|
||
160:Core/Src/AMS_CAN.c **** }*/
|
||
161:Core/Src/AMS_CAN.c **** }
|
||
162:Core/Src/AMS_CAN.c ****
|
||
163:Core/Src/AMS_CAN.c **** /*void ams_can_send_error(AMS_ErrorCode error_code,
|
||
164:Core/Src/AMS_CAN.c **** uint32_t transmission_timeout) {
|
||
165:Core/Src/AMS_CAN.c **** static CAN_TxHeaderTypeDef header;
|
||
166:Core/Src/AMS_CAN.c **** header.IDE = CAN_ID_STD;
|
||
167:Core/Src/AMS_CAN.c **** header.DLC = 8;
|
||
168:Core/Src/AMS_CAN.c **** header.RTR = CAN_RTR_DATA;
|
||
169:Core/Src/AMS_CAN.c **** header.TransmitGlobalTime = DISABLE;
|
||
170:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_SLAVE_ERROR;
|
||
171:Core/Src/AMS_CAN.c ****
|
||
172:Core/Src/AMS_CAN.c **** static uint8_t data[8];
|
||
173:Core/Src/AMS_CAN.c **** data[0] = slave_id;
|
||
174:Core/Src/AMS_CAN.c **** data[1] = error_code;
|
||
175:Core/Src/AMS_CAN.c ****
|
||
176:Core/Src/AMS_CAN.c **** HAL_CAN_AbortTxRequest(ams_can_handle,
|
||
ARM GAS /tmp/ccf8kWw2.s page 10
|
||
|
||
|
||
177:Core/Src/AMS_CAN.c **** CAN_TX_MAILBOX0 | CAN_TX_MAILBOX1 | CAN_TX_MAILBOX2);
|
||
178:Core/Src/AMS_CAN.c **** uint32_t mailbox;
|
||
179:Core/Src/AMS_CAN.c **** HAL_CAN_AddTxMessage(ams_can_handle, &header, data, &mailbox);
|
||
180:Core/Src/AMS_CAN.c **** ams_can_wait_for_free_mailboxes(ams_can_handle, 3, transmission_timeout);
|
||
181:Core/Src/AMS_CAN.c **** }*/
|
||
182:Core/Src/AMS_CAN.c ****
|
||
183:Core/Src/AMS_CAN.c **** HAL_StatusTypeDef ams_can_wait_for_free_mailboxes(CAN_HandleTypeDef* handle,
|
||
184:Core/Src/AMS_CAN.c **** int num_mailboxes,
|
||
185:Core/Src/AMS_CAN.c **** uint32_t timeout) {
|
||
318 .loc 1 185 69 view -0
|
||
319 .cfi_startproc
|
||
320 @ args = 0, pretend = 0, frame = 0
|
||
321 @ frame_needed = 0, uses_anonymous_args = 0
|
||
322 .loc 1 185 69 is_stmt 0 view .LVU87
|
||
323 0000 70B5 push {r4, r5, r6, lr}
|
||
324 .cfi_def_cfa_offset 16
|
||
325 .cfi_offset 4, -16
|
||
326 .cfi_offset 5, -12
|
||
327 .cfi_offset 6, -8
|
||
328 .cfi_offset 14, -4
|
||
329 0002 0646 mov r6, r0
|
||
330 0004 0D46 mov r5, r1
|
||
331 0006 1446 mov r4, r2
|
||
186:Core/Src/AMS_CAN.c **** uint32_t end = HAL_GetTick() + timeout;
|
||
332 .loc 1 186 3 is_stmt 1 view .LVU88
|
||
333 .loc 1 186 18 is_stmt 0 view .LVU89
|
||
334 0008 FFF7FEFF bl HAL_GetTick
|
||
335 .LVL22:
|
||
336 .loc 1 186 12 view .LVU90
|
||
337 000c 0444 add r4, r4, r0
|
||
338 .LVL23:
|
||
187:Core/Src/AMS_CAN.c **** while (HAL_GetTick() < end) {
|
||
339 .loc 1 187 3 is_stmt 1 view .LVU91
|
||
340 .L28:
|
||
341 .loc 1 187 24 view .LVU92
|
||
342 .loc 1 187 10 is_stmt 0 view .LVU93
|
||
343 000e FFF7FEFF bl HAL_GetTick
|
||
344 .LVL24:
|
||
345 .loc 1 187 24 view .LVU94
|
||
346 0012 A042 cmp r0, r4
|
||
347 0014 06D2 bcs .L33
|
||
188:Core/Src/AMS_CAN.c **** if (HAL_CAN_GetTxMailboxesFreeLevel(handle) >= num_mailboxes) {
|
||
348 .loc 1 188 5 is_stmt 1 view .LVU95
|
||
349 .loc 1 188 9 is_stmt 0 view .LVU96
|
||
350 0016 3046 mov r0, r6
|
||
351 0018 FFF7FEFF bl HAL_CAN_GetTxMailboxesFreeLevel
|
||
352 .LVL25:
|
||
353 .loc 1 188 8 view .LVU97
|
||
354 001c A842 cmp r0, r5
|
||
355 001e F6D3 bcc .L28
|
||
189:Core/Src/AMS_CAN.c **** return HAL_OK;
|
||
356 .loc 1 189 14 view .LVU98
|
||
357 0020 0020 movs r0, #0
|
||
358 0022 00E0 b .L29
|
||
359 .L33:
|
||
190:Core/Src/AMS_CAN.c **** }
|
||
191:Core/Src/AMS_CAN.c **** }
|
||
ARM GAS /tmp/ccf8kWw2.s page 11
|
||
|
||
|
||
192:Core/Src/AMS_CAN.c **** return HAL_TIMEOUT;
|
||
360 .loc 1 192 10 view .LVU99
|
||
361 0024 0320 movs r0, #3
|
||
362 .L29:
|
||
193:Core/Src/AMS_CAN.c **** }
|
||
363 .loc 1 193 1 view .LVU100
|
||
364 0026 70BD pop {r4, r5, r6, pc}
|
||
365 .loc 1 193 1 view .LVU101
|
||
366 .cfi_endproc
|
||
367 .LFE134:
|
||
369 .section .text.ams_can_send_heartbeat,"ax",%progbits
|
||
370 .align 1
|
||
371 .global ams_can_send_heartbeat
|
||
372 .syntax unified
|
||
373 .thumb
|
||
374 .thumb_func
|
||
376 ams_can_send_heartbeat:
|
||
377 .LFB133:
|
||
120:Core/Src/AMS_CAN.c **** static CAN_TxHeaderTypeDef header;
|
||
378 .loc 1 120 31 is_stmt 1 view -0
|
||
379 .cfi_startproc
|
||
380 @ args = 0, pretend = 0, frame = 8
|
||
381 @ frame_needed = 0, uses_anonymous_args = 0
|
||
382 0000 10B5 push {r4, lr}
|
||
383 .cfi_def_cfa_offset 8
|
||
384 .cfi_offset 4, -8
|
||
385 .cfi_offset 14, -4
|
||
386 0002 82B0 sub sp, sp, #8
|
||
387 .cfi_def_cfa_offset 16
|
||
121:Core/Src/AMS_CAN.c **** static uint8_t data[8];
|
||
388 .loc 1 121 3 view .LVU103
|
||
122:Core/Src/AMS_CAN.c ****
|
||
389 .loc 1 122 3 view .LVU104
|
||
124:Core/Src/AMS_CAN.c **** header.DLC = 8;
|
||
390 .loc 1 124 3 view .LVU105
|
||
124:Core/Src/AMS_CAN.c **** header.DLC = 8;
|
||
391 .loc 1 124 14 is_stmt 0 view .LVU106
|
||
392 0004 1A4B ldr r3, .L46
|
||
393 0006 0024 movs r4, #0
|
||
394 0008 9C60 str r4, [r3, #8]
|
||
125:Core/Src/AMS_CAN.c **** header.RTR = CAN_RTR_DATA;
|
||
395 .loc 1 125 3 is_stmt 1 view .LVU107
|
||
125:Core/Src/AMS_CAN.c **** header.RTR = CAN_RTR_DATA;
|
||
396 .loc 1 125 14 is_stmt 0 view .LVU108
|
||
397 000a 0822 movs r2, #8
|
||
398 000c 1A61 str r2, [r3, #16]
|
||
126:Core/Src/AMS_CAN.c **** header.TransmitGlobalTime = DISABLE;
|
||
399 .loc 1 126 3 is_stmt 1 view .LVU109
|
||
126:Core/Src/AMS_CAN.c **** header.TransmitGlobalTime = DISABLE;
|
||
400 .loc 1 126 14 is_stmt 0 view .LVU110
|
||
401 000e DC60 str r4, [r3, #12]
|
||
127:Core/Src/AMS_CAN.c ****
|
||
402 .loc 1 127 3 is_stmt 1 view .LVU111
|
||
127:Core/Src/AMS_CAN.c ****
|
||
403 .loc 1 127 29 is_stmt 0 view .LVU112
|
||
404 0010 1C75 strb r4, [r3, #20]
|
||
130:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
ARM GAS /tmp/ccf8kWw2.s page 12
|
||
|
||
|
||
405 .loc 1 130 3 is_stmt 1 view .LVU113
|
||
406 .LBB3:
|
||
130:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
407 .loc 1 130 8 view .LVU114
|
||
408 .LVL26:
|
||
130:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
409 .loc 1 130 3 is_stmt 0 view .LVU115
|
||
410 0012 1AE0 b .L35
|
||
411 .LVL27:
|
||
412 .L41:
|
||
413 .LBB4:
|
||
414 .LBB5:
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
415 .loc 1 134 16 view .LVU116
|
||
416 0014 0022 movs r2, #0
|
||
417 .LVL28:
|
||
418 .L37:
|
||
135:Core/Src/AMS_CAN.c **** data[2 * i + 1] = v >> 8;
|
||
419 .loc 1 135 7 is_stmt 1 discriminator 4 view .LVU117
|
||
135:Core/Src/AMS_CAN.c **** data[2 * i + 1] = v >> 8;
|
||
420 .loc 1 135 18 is_stmt 0 discriminator 4 view .LVU118
|
||
421 0016 5900 lsls r1, r3, #1
|
||
135:Core/Src/AMS_CAN.c **** data[2 * i + 1] = v >> 8;
|
||
422 .loc 1 135 23 discriminator 4 view .LVU119
|
||
423 0018 1648 ldr r0, .L46+4
|
||
424 001a 00F81320 strb r2, [r0, r3, lsl #1]
|
||
136:Core/Src/AMS_CAN.c **** }
|
||
425 .loc 1 136 7 is_stmt 1 discriminator 4 view .LVU120
|
||
136:Core/Src/AMS_CAN.c **** }
|
||
426 .loc 1 136 18 is_stmt 0 discriminator 4 view .LVU121
|
||
427 001e 0131 adds r1, r1, #1
|
||
136:Core/Src/AMS_CAN.c **** }
|
||
428 .loc 1 136 23 discriminator 4 view .LVU122
|
||
429 0020 120A lsrs r2, r2, #8
|
||
430 .LVL29:
|
||
136:Core/Src/AMS_CAN.c **** }
|
||
431 .loc 1 136 23 discriminator 4 view .LVU123
|
||
432 0022 4254 strb r2, [r0, r1]
|
||
433 .LBE5:
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
434 .loc 1 132 29 is_stmt 1 discriminator 4 view .LVU124
|
||
435 0024 0133 adds r3, r3, #1
|
||
436 .LVL30:
|
||
437 .L36:
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
438 .loc 1 132 23 discriminator 2 view .LVU125
|
||
439 0026 032B cmp r3, #3
|
||
440 0028 07DC bgt .L43
|
||
441 .LBB6:
|
||
133:Core/Src/AMS_CAN.c **** uint16_t v = (cell < N_CELLS) ? module.cellVoltages[cell] : 0;
|
||
442 .loc 1 133 7 view .LVU126
|
||
133:Core/Src/AMS_CAN.c **** uint16_t v = (cell < N_CELLS) ? module.cellVoltages[cell] : 0;
|
||
443 .loc 1 133 11 is_stmt 0 view .LVU127
|
||
444 002a 03EB8402 add r2, r3, r4, lsl #2
|
||
445 .LVL31:
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
446 .loc 1 134 7 is_stmt 1 view .LVU128
|
||
ARM GAS /tmp/ccf8kWw2.s page 13
|
||
|
||
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
447 .loc 1 134 16 is_stmt 0 view .LVU129
|
||
448 002e 102A cmp r2, #16
|
||
449 0030 F0DC bgt .L41
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
450 .loc 1 134 16 discriminator 1 view .LVU130
|
||
451 0032 1149 ldr r1, .L46+8
|
||
452 0034 31F81220 ldrh r2, [r1, r2, lsl #1]
|
||
453 .LVL32:
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
454 .loc 1 134 16 discriminator 1 view .LVU131
|
||
455 0038 EDE7 b .L37
|
||
456 .LVL33:
|
||
457 .L43:
|
||
134:Core/Src/AMS_CAN.c **** data[2 * i + 0] = v & 0xFF;
|
||
458 .loc 1 134 16 discriminator 1 view .LVU132
|
||
459 .LBE6:
|
||
460 .LBE4:
|
||
138:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
461 .loc 1 138 5 is_stmt 1 view .LVU133
|
||
138:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
462 .loc 1 138 9 is_stmt 0 view .LVU134
|
||
463 003a 0A22 movs r2, #10
|
||
464 003c 0121 movs r1, #1
|
||
465 003e 0F4B ldr r3, .L46+12
|
||
466 .LVL34:
|
||
138:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
467 .loc 1 138 9 view .LVU135
|
||
468 0040 1868 ldr r0, [r3]
|
||
469 0042 FFF7FEFF bl ams_can_wait_for_free_mailboxes
|
||
470 .LVL35:
|
||
138:Core/Src/AMS_CAN.c **** CAN_HEARTBEAT_TX_TIMEOUT) == HAL_OK) {
|
||
471 .loc 1 138 8 view .LVU136
|
||
472 0046 40B1 cbz r0, .L44
|
||
473 .L39:
|
||
130:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
474 .loc 1 130 42 is_stmt 1 discriminator 2 view .LVU137
|
||
475 0048 0134 adds r4, r4, #1
|
||
476 .LVL36:
|
||
477 .L35:
|
||
130:Core/Src/AMS_CAN.c **** header.StdId = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE | (0 << 4) | msg_id; //TODO: Use slave_id/new fo
|
||
478 .loc 1 130 31 discriminator 1 view .LVU138
|
||
479 004a 042C cmp r4, #4
|
||
480 004c 0DDC bgt .L45
|
||
131:Core/Src/AMS_CAN.c **** for (int i = 0; i < 4; i++) {
|
||
481 .loc 1 131 5 view .LVU139
|
||
131:Core/Src/AMS_CAN.c **** for (int i = 0; i < 4; i++) {
|
||
482 .loc 1 131 63 is_stmt 0 view .LVU140
|
||
483 004e 44F4C063 orr r3, r4, #1536
|
||
131:Core/Src/AMS_CAN.c **** for (int i = 0; i < 4; i++) {
|
||
484 .loc 1 131 18 view .LVU141
|
||
485 0052 074A ldr r2, .L46
|
||
486 0054 1360 str r3, [r2]
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
487 .loc 1 132 5 is_stmt 1 view .LVU142
|
||
488 .LBB7:
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
ARM GAS /tmp/ccf8kWw2.s page 14
|
||
|
||
|
||
489 .loc 1 132 10 view .LVU143
|
||
490 .LVL37:
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
491 .loc 1 132 14 is_stmt 0 view .LVU144
|
||
492 0056 0023 movs r3, #0
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
493 .loc 1 132 5 view .LVU145
|
||
494 0058 E5E7 b .L36
|
||
495 .LVL38:
|
||
496 .L44:
|
||
132:Core/Src/AMS_CAN.c **** int cell = msg_id * 4 + i;
|
||
497 .loc 1 132 5 view .LVU146
|
||
498 .LBE7:
|
||
499 .LBB8:
|
||
140:Core/Src/AMS_CAN.c **** HAL_CAN_AddTxMessage(ams_can_handle, &header, data, &mailbox);
|
||
500 .loc 1 140 7 is_stmt 1 view .LVU147
|
||
141:Core/Src/AMS_CAN.c **** }
|
||
501 .loc 1 141 7 view .LVU148
|
||
502 005a 01AB add r3, sp, #4
|
||
503 005c 054A ldr r2, .L46+4
|
||
504 005e 0449 ldr r1, .L46
|
||
505 0060 0648 ldr r0, .L46+12
|
||
506 0062 0068 ldr r0, [r0]
|
||
507 0064 FFF7FEFF bl HAL_CAN_AddTxMessage
|
||
508 .LVL39:
|
||
509 0068 EEE7 b .L39
|
||
510 .LVL40:
|
||
511 .L45:
|
||
141:Core/Src/AMS_CAN.c **** }
|
||
512 .loc 1 141 7 is_stmt 0 view .LVU149
|
||
513 .LBE8:
|
||
514 .LBE3:
|
||
161:Core/Src/AMS_CAN.c ****
|
||
515 .loc 1 161 1 view .LVU150
|
||
516 006a 02B0 add sp, sp, #8
|
||
517 .cfi_def_cfa_offset 8
|
||
518 @ sp needed
|
||
519 006c 10BD pop {r4, pc}
|
||
520 .LVL41:
|
||
521 .L47:
|
||
161:Core/Src/AMS_CAN.c ****
|
||
522 .loc 1 161 1 view .LVU151
|
||
523 006e 00BF .align 2
|
||
524 .L46:
|
||
525 0070 00000000 .word header.1
|
||
526 0074 00000000 .word data.0
|
||
527 0078 00000000 .word module
|
||
528 007c 00000000 .word ams_can_handle
|
||
529 .cfi_endproc
|
||
530 .LFE133:
|
||
532 .section .bss.data.0,"aw",%nobits
|
||
533 .align 2
|
||
536 data.0:
|
||
537 0000 00000000 .space 8
|
||
537 00000000
|
||
538 .section .bss.header.1,"aw",%nobits
|
||
539 .align 2
|
||
ARM GAS /tmp/ccf8kWw2.s page 15
|
||
|
||
|
||
542 header.1:
|
||
543 0000 00000000 .space 24
|
||
543 00000000
|
||
543 00000000
|
||
543 00000000
|
||
543 00000000
|
||
544 .section .bss.data.2,"aw",%nobits
|
||
545 .align 2
|
||
548 data.2:
|
||
549 0000 00000000 .space 8
|
||
549 00000000
|
||
550 .section .bss.header.3,"aw",%nobits
|
||
551 .align 2
|
||
554 header.3:
|
||
555 0000 00000000 .space 28
|
||
555 00000000
|
||
555 00000000
|
||
555 00000000
|
||
555 00000000
|
||
556 .section .bss.cb_triggered,"aw",%nobits
|
||
557 .align 2
|
||
560 cb_triggered:
|
||
561 0000 00000000 .space 4
|
||
562 .global ams_can_handle
|
||
563 .section .bss.ams_can_handle,"aw",%nobits
|
||
564 .align 2
|
||
567 ams_can_handle:
|
||
568 0000 00000000 .space 4
|
||
569 .global canTestData
|
||
570 .section .bss.canTestData,"aw",%nobits
|
||
571 .align 2
|
||
574 canTestData:
|
||
575 0000 00000000 .space 8
|
||
575 00000000
|
||
576 .global PENDING_MESSAGE_HANDLE
|
||
577 .section .bss.PENDING_MESSAGE_HANDLE,"aw",%nobits
|
||
578 .align 2
|
||
581 PENDING_MESSAGE_HANDLE:
|
||
582 0000 00000000 .space 4
|
||
583 .text
|
||
584 .Letext0:
|
||
585 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
|
||
586 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
|
||
587 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
|
||
588 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
|
||
589 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
|
||
590 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h"
|
||
591 .file 8 "Core/Inc/ADBMS_LL_Driver.h"
|
||
592 .file 9 "Core/Inc/ADBMS_Abstraction.h"
|
||
593 .file 10 "Core/Inc/AMS_CAN.h"
|
||
594 .file 11 "Core/Inc/AMS_HighLevel.h"
|
||
595 .file 12 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
|
||
596 .file 13 "Core/Inc/main.h"
|
||
ARM GAS /tmp/ccf8kWw2.s page 16
|
||
|
||
|
||
DEFINED SYMBOLS
|
||
*ABS*:0000000000000000 AMS_CAN.c
|
||
/tmp/ccf8kWw2.s:21 .text.ams_can_init:0000000000000000 $t
|
||
/tmp/ccf8kWw2.s:27 .text.ams_can_init:0000000000000000 ams_can_init
|
||
/tmp/ccf8kWw2.s:176 .text.ams_can_init:0000000000000088 $d
|
||
/tmp/ccf8kWw2.s:567 .bss.ams_can_handle:0000000000000000 ams_can_handle
|
||
/tmp/ccf8kWw2.s:181 .text.ams_can_handle_ams_msg:0000000000000000 $t
|
||
/tmp/ccf8kWw2.s:187 .text.ams_can_handle_ams_msg:0000000000000000 ams_can_handle_ams_msg
|
||
/tmp/ccf8kWw2.s:230 .text.ams_can_handle_ams_msg:0000000000000018 $d
|
||
/tmp/ccf8kWw2.s:581 .bss.PENDING_MESSAGE_HANDLE:0000000000000000 PENDING_MESSAGE_HANDLE
|
||
/tmp/ccf8kWw2.s:574 .bss.canTestData:0000000000000000 canTestData
|
||
/tmp/ccf8kWw2.s:236 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 $t
|
||
/tmp/ccf8kWw2.s:242 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo0MsgPendingCallback
|
||
/tmp/ccf8kWw2.s:301 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000034 $d
|
||
/tmp/ccf8kWw2.s:560 .bss.cb_triggered:0000000000000000 cb_triggered
|
||
/tmp/ccf8kWw2.s:548 .bss.data.2:0000000000000000 data.2
|
||
/tmp/ccf8kWw2.s:554 .bss.header.3:0000000000000000 header.3
|
||
/tmp/ccf8kWw2.s:309 .text.ams_can_wait_for_free_mailboxes:0000000000000000 $t
|
||
/tmp/ccf8kWw2.s:315 .text.ams_can_wait_for_free_mailboxes:0000000000000000 ams_can_wait_for_free_mailboxes
|
||
/tmp/ccf8kWw2.s:370 .text.ams_can_send_heartbeat:0000000000000000 $t
|
||
/tmp/ccf8kWw2.s:376 .text.ams_can_send_heartbeat:0000000000000000 ams_can_send_heartbeat
|
||
/tmp/ccf8kWw2.s:525 .text.ams_can_send_heartbeat:0000000000000070 $d
|
||
/tmp/ccf8kWw2.s:542 .bss.header.1:0000000000000000 header.1
|
||
/tmp/ccf8kWw2.s:536 .bss.data.0:0000000000000000 data.0
|
||
/tmp/ccf8kWw2.s:533 .bss.data.0:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:539 .bss.header.1:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:545 .bss.data.2:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:551 .bss.header.3:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:557 .bss.cb_triggered:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:564 .bss.ams_can_handle:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:571 .bss.canTestData:0000000000000000 $d
|
||
/tmp/ccf8kWw2.s:578 .bss.PENDING_MESSAGE_HANDLE:0000000000000000 $d
|
||
|
||
UNDEFINED SYMBOLS
|
||
HAL_CAN_Start
|
||
HAL_CAN_ConfigFilter
|
||
HAL_CAN_ActivateNotification
|
||
Error_Handler
|
||
HAL_CAN_GetRxMessage
|
||
HAL_GetTick
|
||
HAL_CAN_GetTxMailboxesFreeLevel
|
||
HAL_CAN_AddTxMessage
|
||
module
|