ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.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 "Channel_Control.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Core/Src/Channel_Control.c" 20 .section .text.ChannelControl_UpdateGPIOs,"ax",%progbits 21 .align 1 22 .global ChannelControl_UpdateGPIOs 23 .syntax unified 24 .thumb 25 .thumb_func 27 ChannelControl_UpdateGPIOs: 28 .LVL0: 29 .LFB131: 1:Core/Src/Channel_Control.c **** /* 2:Core/Src/Channel_Control.c **** * Channel_Control.c 3:Core/Src/Channel_Control.c **** * 4:Core/Src/Channel_Control.c **** * Created on: 24. April, 2024 5:Core/Src/Channel_Control.c **** * Author: nived 6:Core/Src/Channel_Control.c **** */ 7:Core/Src/Channel_Control.c **** 8:Core/Src/Channel_Control.c **** #include "Channel_Control.h" 9:Core/Src/Channel_Control.c **** #include "PCA9535D_Driver.h" 10:Core/Src/Channel_Control.c **** 11:Core/Src/Channel_Control.c **** PortExtenderGPIO EN_Ports; 12:Core/Src/Channel_Control.c **** 13:Core/Src/Channel_Control.c **** uint8_t timer3_running = 0; 14:Core/Src/Channel_Control.c **** uint8_t timer2_running = 0; 15:Core/Src/Channel_Control.c **** TIM_HandleTypeDef* pwmtimer3; 16:Core/Src/Channel_Control.c **** TIM_HandleTypeDef* pwmtimer2; 17:Core/Src/Channel_Control.c **** 18:Core/Src/Channel_Control.c **** void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer3, 19:Core/Src/Channel_Control.c **** TIM_HandleTypeDef* timer2) { 20:Core/Src/Channel_Control.c **** 21:Core/Src/Channel_Control.c **** pwmtimer3 = timer3; 22:Core/Src/Channel_Control.c **** pwmtimer2 = timer2; 23:Core/Src/Channel_Control.c **** PCA9535_init(hi2c, 0); 24:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTA, 0x00); 25:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTB, 0x00); 26:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortDirection(PC9535_PORTA, 0x00); 27:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortDirection(PC9535_PORTB, 0x00); 28:Core/Src/Channel_Control.c **** 29:Core/Src/Channel_Control.c **** EN_Ports.porta.porta = 0; ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 2 30:Core/Src/Channel_Control.c **** EN_Ports.portb.portb = 0; 31:Core/Src/Channel_Control.c **** EN_Ports.porta.alwayson = 1; 32:Core/Src/Channel_Control.c **** ChannelControl_UpdateGPIOs(EN_Ports); 33:Core/Src/Channel_Control.c **** ChannelControl_UpdatePWMs(0, 0, 0, 0); 34:Core/Src/Channel_Control.c **** } 35:Core/Src/Channel_Control.c **** 36:Core/Src/Channel_Control.c **** void ChannelControl_UpdateGPIOs(PortExtenderGPIO UpdatePorts) { // ctrl + left click auf portextend 30 .loc 1 36 63 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 0 33 @ frame_needed = 0, uses_anonymous_args = 0 34 .loc 1 36 63 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 37:Core/Src/Channel_Control.c **** EN_Ports = UpdatePorts; 39 .loc 1 37 3 is_stmt 1 view .LVU2 40 .loc 1 37 12 is_stmt 0 view .LVU3 41 0002 0B4B ldr r3, .L3 42 0004 1880 strh r0, [r3] @ movhi 38:Core/Src/Channel_Control.c **** UpdatePorts.porta.alwayson = 1; // Always on stays always on 43 .loc 1 38 3 is_stmt 1 view .LVU4 44 .loc 1 38 30 is_stmt 0 view .LVU5 45 0006 40F08004 orr r4, r0, #128 39:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTA, UpdatePorts.porta.porta); 46 .loc 1 39 2 is_stmt 1 view .LVU6 47 000a E1B2 uxtb r1, r4 48 000c 0020 movs r0, #0 49 .LVL1: 50 .loc 1 39 2 is_stmt 0 view .LVU7 51 000e FFF7FEFF bl PCA9535_setGPIOPortOutput 52 .LVL2: 40:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTB, UpdatePorts.portb.portb); 53 .loc 1 40 2 is_stmt 1 view .LVU8 54 0012 C4F30721 ubfx r1, r4, #8, #8 55 0016 0120 movs r0, #1 56 0018 FFF7FEFF bl PCA9535_setGPIOPortOutput 57 .LVL3: 41:Core/Src/Channel_Control.c **** gpio_port_b testb={}; 58 .loc 1 41 2 view .LVU9 42:Core/Src/Channel_Control.c **** testb.en14=1; 59 .loc 1 42 2 view .LVU10 43:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTB, testb.portb); 60 .loc 1 43 3 view .LVU11 61 001c 4021 movs r1, #64 62 001e 0120 movs r0, #1 63 0020 FFF7FEFF bl PCA9535_setGPIOPortOutput 64 .LVL4: 44:Core/Src/Channel_Control.c **** gpio_port_a testa={}; 65 .loc 1 44 3 view .LVU12 45:Core/Src/Channel_Control.c **** testa.en13=1; 66 .loc 1 45 3 view .LVU13 46:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTA, testa.porta); 67 .loc 1 46 3 view .LVU14 68 0024 0221 movs r1, #2 69 0026 0020 movs r0, #0 ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 3 70 0028 FFF7FEFF bl PCA9535_setGPIOPortOutput 71 .LVL5: 47:Core/Src/Channel_Control.c **** 48:Core/Src/Channel_Control.c **** 49:Core/Src/Channel_Control.c **** } 72 .loc 1 49 1 is_stmt 0 view .LVU15 73 002c 10BD pop {r4, pc} 74 .L4: 75 002e 00BF .align 2 76 .L3: 77 0030 00000000 .word EN_Ports 78 .cfi_endproc 79 .LFE131: 81 .section .text.ChannelControl_init,"ax",%progbits 82 .align 1 83 .global ChannelControl_init 84 .syntax unified 85 .thumb 86 .thumb_func 88 ChannelControl_init: 89 .LVL6: 90 .LFB130: 19:Core/Src/Channel_Control.c **** 91 .loc 1 19 53 is_stmt 1 view -0 92 .cfi_startproc 93 @ args = 0, pretend = 0, frame = 0 94 @ frame_needed = 0, uses_anonymous_args = 0 19:Core/Src/Channel_Control.c **** 95 .loc 1 19 53 is_stmt 0 view .LVU17 96 0000 08B5 push {r3, lr} 97 .cfi_def_cfa_offset 8 98 .cfi_offset 3, -8 99 .cfi_offset 14, -4 21:Core/Src/Channel_Control.c **** pwmtimer2 = timer2; 100 .loc 1 21 3 is_stmt 1 view .LVU18 21:Core/Src/Channel_Control.c **** pwmtimer2 = timer2; 101 .loc 1 21 13 is_stmt 0 view .LVU19 102 0002 104B ldr r3, .L7 103 0004 1960 str r1, [r3] 22:Core/Src/Channel_Control.c **** PCA9535_init(hi2c, 0); 104 .loc 1 22 3 is_stmt 1 view .LVU20 22:Core/Src/Channel_Control.c **** PCA9535_init(hi2c, 0); 105 .loc 1 22 13 is_stmt 0 view .LVU21 106 0006 104B ldr r3, .L7+4 107 0008 1A60 str r2, [r3] 23:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTA, 0x00); 108 .loc 1 23 3 is_stmt 1 view .LVU22 109 000a 0021 movs r1, #0 110 .LVL7: 23:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTA, 0x00); 111 .loc 1 23 3 is_stmt 0 view .LVU23 112 000c FFF7FEFF bl PCA9535_init 113 .LVL8: 24:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortOutput(PC9535_PORTB, 0x00); 114 .loc 1 24 3 is_stmt 1 view .LVU24 115 0010 0021 movs r1, #0 116 0012 0846 mov r0, r1 ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 4 117 0014 FFF7FEFF bl PCA9535_setGPIOPortOutput 118 .LVL9: 25:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortDirection(PC9535_PORTA, 0x00); 119 .loc 1 25 3 view .LVU25 120 0018 0021 movs r1, #0 121 001a 0120 movs r0, #1 122 001c FFF7FEFF bl PCA9535_setGPIOPortOutput 123 .LVL10: 26:Core/Src/Channel_Control.c **** PCA9535_setGPIOPortDirection(PC9535_PORTB, 0x00); 124 .loc 1 26 3 view .LVU26 125 0020 0021 movs r1, #0 126 0022 0846 mov r0, r1 127 0024 FFF7FEFF bl PCA9535_setGPIOPortDirection 128 .LVL11: 27:Core/Src/Channel_Control.c **** 129 .loc 1 27 3 view .LVU27 130 0028 0021 movs r1, #0 131 002a 0120 movs r0, #1 132 002c FFF7FEFF bl PCA9535_setGPIOPortDirection 133 .LVL12: 29:Core/Src/Channel_Control.c **** EN_Ports.portb.portb = 0; 134 .loc 1 29 3 view .LVU28 29:Core/Src/Channel_Control.c **** EN_Ports.portb.portb = 0; 135 .loc 1 29 24 is_stmt 0 view .LVU29 136 0030 064B ldr r3, .L7+8 137 0032 0022 movs r2, #0 138 0034 1A70 strb r2, [r3] 30:Core/Src/Channel_Control.c **** EN_Ports.porta.alwayson = 1; 139 .loc 1 30 3 is_stmt 1 view .LVU30 30:Core/Src/Channel_Control.c **** EN_Ports.porta.alwayson = 1; 140 .loc 1 30 24 is_stmt 0 view .LVU31 141 0036 5A70 strb r2, [r3, #1] 31:Core/Src/Channel_Control.c **** ChannelControl_UpdateGPIOs(EN_Ports); 142 .loc 1 31 3 is_stmt 1 view .LVU32 31:Core/Src/Channel_Control.c **** ChannelControl_UpdateGPIOs(EN_Ports); 143 .loc 1 31 27 is_stmt 0 view .LVU33 144 0038 8022 movs r2, #128 145 003a 1A70 strb r2, [r3] 32:Core/Src/Channel_Control.c **** ChannelControl_UpdatePWMs(0, 0, 0, 0); 146 .loc 1 32 3 is_stmt 1 view .LVU34 147 003c 1888 ldrh r0, [r3] 148 003e FFF7FEFF bl ChannelControl_UpdateGPIOs 149 .LVL13: 33:Core/Src/Channel_Control.c **** } 150 .loc 1 33 3 view .LVU35 34:Core/Src/Channel_Control.c **** 151 .loc 1 34 1 is_stmt 0 view .LVU36 152 0042 08BD pop {r3, pc} 153 .L8: 154 .align 2 155 .L7: 156 0044 00000000 .word pwmtimer3 157 0048 00000000 .word pwmtimer2 158 004c 00000000 .word EN_Ports 159 .cfi_endproc 160 .LFE130: 162 .section .text.ChannelControl_UpdatePWMs,"ax",%progbits ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 5 163 .align 1 164 .global ChannelControl_UpdatePWMs 165 .syntax unified 166 .thumb 167 .thumb_func 169 ChannelControl_UpdatePWMs: 170 .LVL14: 171 .LFB132: 50:Core/Src/Channel_Control.c **** 51:Core/Src/Channel_Control.c **** void ChannelControl_UpdatePWMs(uint8_t radiatorfans,uint8_t tsacfans , uint8_t pwmaggregat, 52:Core/Src/Channel_Control.c **** uint8_t pwmpumps){ 172 .loc 1 52 49 is_stmt 1 view -0 173 .cfi_startproc 174 @ args = 0, pretend = 0, frame = 0 175 @ frame_needed = 0, uses_anonymous_args = 0 176 @ link register save eliminated. 53:Core/Src/Channel_Control.c **** return; 177 .loc 1 53 3 view .LVU38 54:Core/Src/Channel_Control.c **** 55:Core/Src/Channel_Control.c **** pwmtimer3->Instance->CCR4 = pwmpumps << 8; 56:Core/Src/Channel_Control.c **** pwmtimer3->Instance->CCR1 = radiatorfans << 8; 57:Core/Src/Channel_Control.c **** pwmtimer2->Instance->CCR2 = tsacfans << 8; 58:Core/Src/Channel_Control.c **** 59:Core/Src/Channel_Control.c **** if (timer3_running) { 60:Core/Src/Channel_Control.c **** if ((pwmpumps == 0) && (radiatorfans == 0)) { 61:Core/Src/Channel_Control.c **** timer3_running = 0; 62:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Stop(pwmtimer3, TIM_CHANNEL_4); 63:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Stop(pwmtimer3, TIM_CHANNEL_1); 64:Core/Src/Channel_Control.c **** } 65:Core/Src/Channel_Control.c **** } else { 66:Core/Src/Channel_Control.c **** if ( (pwmpumps != 0) || (radiatorfans != 0)) { 67:Core/Src/Channel_Control.c **** timer3_running = 1; 68:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Start(pwmtimer3, TIM_CHANNEL_4); 69:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Start(pwmtimer3, TIM_CHANNEL_1); 70:Core/Src/Channel_Control.c **** } 71:Core/Src/Channel_Control.c **** } 72:Core/Src/Channel_Control.c **** 73:Core/Src/Channel_Control.c **** if (timer2_running) { 74:Core/Src/Channel_Control.c **** if (tsacfans == 0) { 75:Core/Src/Channel_Control.c **** timer2_running = 0; 76:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Stop(pwmtimer2, TIM_CHANNEL_2); 77:Core/Src/Channel_Control.c **** } 78:Core/Src/Channel_Control.c **** } else { 79:Core/Src/Channel_Control.c **** if (tsacfans != 0) { 80:Core/Src/Channel_Control.c **** timer2_running = 1; 81:Core/Src/Channel_Control.c **** HAL_TIM_PWM_Start(pwmtimer2, TIM_CHANNEL_2); 82:Core/Src/Channel_Control.c **** } 83:Core/Src/Channel_Control.c **** } 84:Core/Src/Channel_Control.c **** 85:Core/Src/Channel_Control.c **** 86:Core/Src/Channel_Control.c **** } 178 .loc 1 86 1 is_stmt 0 view .LVU39 179 0000 7047 bx lr 180 .cfi_endproc 181 .LFE132: 183 .global pwmtimer2 184 .section .bss.pwmtimer2,"aw",%nobits ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 6 185 .align 2 188 pwmtimer2: 189 0000 00000000 .space 4 190 .global pwmtimer3 191 .section .bss.pwmtimer3,"aw",%nobits 192 .align 2 195 pwmtimer3: 196 0000 00000000 .space 4 197 .global timer2_running 198 .section .bss.timer2_running,"aw",%nobits 201 timer2_running: 202 0000 00 .space 1 203 .global timer3_running 204 .section .bss.timer3_running,"aw",%nobits 207 timer3_running: 208 0000 00 .space 1 209 .global EN_Ports 210 .section .bss.EN_Ports,"aw",%nobits 211 .align 2 214 EN_Ports: 215 0000 0000 .space 2 216 .text 217 .Letext0: 218 .file 2 "c:\\users\\nived\\appdata\\roaming\\code\\user\\globalstorage\\bmd.stm32-for-vscode\\@xpa 219 .file 3 "c:\\users\\nived\\appdata\\roaming\\code\\user\\globalstorage\\bmd.stm32-for-vscode\\@xpa 220 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 221 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 222 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 223 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h" 224 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h" 225 .file 9 "Core/Inc/Channel_Control.h" 226 .file 10 "Core/Inc/PCA9535D_Driver.h" ARM GAS C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s page 7 DEFINED SYMBOLS *ABS*:00000000 Channel_Control.c C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:21 .text.ChannelControl_UpdateGPIOs:00000000 $t C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:27 .text.ChannelControl_UpdateGPIOs:00000000 ChannelControl_UpdateGPIOs C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:77 .text.ChannelControl_UpdateGPIOs:00000030 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:214 .bss.EN_Ports:00000000 EN_Ports C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:82 .text.ChannelControl_init:00000000 $t C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:88 .text.ChannelControl_init:00000000 ChannelControl_init C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:156 .text.ChannelControl_init:00000044 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:195 .bss.pwmtimer3:00000000 pwmtimer3 C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:188 .bss.pwmtimer2:00000000 pwmtimer2 C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:163 .text.ChannelControl_UpdatePWMs:00000000 $t C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:169 .text.ChannelControl_UpdatePWMs:00000000 ChannelControl_UpdatePWMs C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:185 .bss.pwmtimer2:00000000 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:192 .bss.pwmtimer3:00000000 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:201 .bss.timer2_running:00000000 timer2_running C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:202 .bss.timer2_running:00000000 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:207 .bss.timer3_running:00000000 timer3_running C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:208 .bss.timer3_running:00000000 $d C:\Users\nived\AppData\Local\Temp\ccG5EOIc.s:211 .bss.EN_Ports:00000000 $d UNDEFINED SYMBOLS PCA9535_setGPIOPortOutput PCA9535_init PCA9535_setGPIOPortDirection