added testbench for ams slave
This commit is contained in:
942
BMS_Testbench/BMS_Software_V1/build/AMS_CAN.lst
Normal file
942
BMS_Testbench/BMS_Software_V1/build/AMS_CAN.lst
Normal file
@ -0,0 +1,942 @@
|
||||
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
|
||||
Reference in New Issue
Block a user