ARM GAS /tmp/ccmy4jhy.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 "squeow.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Src/squeow.c" 20 .section .text.serial_write,"ax",%progbits 21 .align 1 22 .global serial_write 23 .syntax unified 24 .thumb 25 .thumb_func 27 serial_write: 28 .LVL0: 29 .LFB332: 1:Src/squeow.c **** #include 2:Src/squeow.c **** #include 3:Src/squeow.c **** #include 4:Src/squeow.c **** #include 5:Src/squeow.c **** 6:Src/squeow.c **** #include "si5351.h" 7:Src/squeow.c **** #include "squeow.h" 8:Src/squeow.c **** #include "squeow_ui.h" 9:Src/squeow.c **** 10:Src/squeow.c **** /* SQUEOW 11:Src/squeow.c **** 12:Src/squeow.c **** TIM2 PWM 168000000/4096 = 41015,625 Hz 13:Src/squeow.c **** TIM3 sys_tick 168000000/(16800×100) 100hz 14:Src/squeow.c **** 15:Src/squeow.c **** risoluzione PWM 4096 (12bit) 16:Src/squeow.c **** 17:Src/squeow.c **** ADC1 agganciato a TIM2, valore passato attraverso TIM2_IRQHandler a TIM2->CCR1 18:Src/squeow.c **** ADC2 lanciato da software, quando completo adc2_done viene settato in HAL_ADC_ConvCpltCallback 19:Src/squeow.c **** 20:Src/squeow.c **** */ 21:Src/squeow.c **** 22:Src/squeow.c **** extern I2C_HandleTypeDef hi2c1; 23:Src/squeow.c **** 24:Src/squeow.c **** // SYS 25:Src/squeow.c **** volatile uint8_t sys_tick, sys_tick_prescale; 26:Src/squeow.c **** 27:Src/squeow.c **** // UART 28:Src/squeow.c **** uint8_t UART_RX_buf[UART_RX_BUF_SIZE]; 29:Src/squeow.c **** ARM GAS /tmp/ccmy4jhy.s page 2 30:Src/squeow.c **** uint8_t UART_TX_buf[UART_TX_BUF_SIZE]; 31:Src/squeow.c **** uint8_t UART_TX_buf_lenght; 32:Src/squeow.c **** 33:Src/squeow.c **** // SYNTH 34:Src/squeow.c **** uint32_t freq; 35:Src/squeow.c **** 36:Src/squeow.c **** // ADC2 (16 o 32?) per usare buffer da 32 settare WORD nel canale DMA 37:Src/squeow.c **** uint32_t adc2_valori[4]; 38:Src/squeow.c **** uint8_t adc2_done, blocco, blocco_fatto, codice_allarme; 39:Src/squeow.c **** 40:Src/squeow.c **** 41:Src/squeow.c **** // VU 42:Src/squeow.c **** uint8_t analog_wd_status; 43:Src/squeow.c **** 44:Src/squeow.c **** // ################################### 45:Src/squeow.c **** 46:Src/squeow.c **** int serial_write(char *ptr, size_t len) { 30 .loc 1 46 41 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 0 33 @ frame_needed = 0, uses_anonymous_args = 0 34 .loc 1 46 41 is_stmt 0 view .LVU1 35 0000 10B5 push {r4, lr} 36 .LCFI0: 37 .cfi_def_cfa_offset 8 38 .cfi_offset 4, -8 39 .cfi_offset 14, -4 40 0002 0C46 mov r4, r1 47:Src/squeow.c **** // todo sia dma che it corrompono (vedi sotto, static) 48:Src/squeow.c **** HAL_UART_Transmit_DMA(&huart1, ptr, len); 41 .loc 1 48 6 is_stmt 1 view .LVU2 42 0004 8AB2 uxth r2, r1 43 0006 0146 mov r1, r0 44 .LVL1: 45 .loc 1 48 6 is_stmt 0 view .LVU3 46 0008 0348 ldr r0, .L3 47 .LVL2: 48 .loc 1 48 6 view .LVU4 49 000a FFF7FEFF bl HAL_UART_Transmit_DMA 50 .LVL3: 49:Src/squeow.c **** // HAL_UART_Transmit_IT(&huart1, ptr, len); 50:Src/squeow.c **** // HAL_UART_Transmit(&huart1, ptr, len, 1000); 51:Src/squeow.c **** // uart_sent = 0; 52:Src/squeow.c **** UART_TX_buf_lenght = 0; 51 .loc 1 52 2 is_stmt 1 view .LVU5 52 .loc 1 52 21 is_stmt 0 view .LVU6 53 000e 034B ldr r3, .L3+4 54 0010 0022 movs r2, #0 55 0012 1A70 strb r2, [r3] 53:Src/squeow.c **** return len; 56 .loc 1 53 5 is_stmt 1 view .LVU7 54:Src/squeow.c **** } 57 .loc 1 54 1 is_stmt 0 view .LVU8 58 0014 2046 mov r0, r4 59 0016 10BD pop {r4, pc} 60 .LVL4: 61 .L4: ARM GAS /tmp/ccmy4jhy.s page 3 62 .loc 1 54 1 view .LVU9 63 .align 2 64 .L3: 65 0018 00000000 .word huart1 66 001c 00000000 .word UART_TX_buf_lenght 67 .cfi_endproc 68 .LFE332: 70 .section .text.squeow_init,"ax",%progbits 71 .align 1 72 .global squeow_init 73 .syntax unified 74 .thumb 75 .thumb_func 77 squeow_init: 78 .LFB333: 55:Src/squeow.c **** 56:Src/squeow.c **** void squeow_init(void) { 79 .loc 1 56 24 is_stmt 1 view -0 80 .cfi_startproc 81 @ args = 0, pretend = 0, frame = 0 82 @ frame_needed = 0, uses_anonymous_args = 0 83 @ link register save eliminated. 57:Src/squeow.c **** freq = DEFAULT_SYNTH_FREQUENCY; 84 .loc 1 57 5 view .LVU11 85 .loc 1 57 10 is_stmt 0 view .LVU12 86 0000 064B ldr r3, .L6 87 0002 074A ldr r2, .L6+4 88 0004 1A60 str r2, [r3] 58:Src/squeow.c **** blocco = 0; 89 .loc 1 58 5 is_stmt 1 view .LVU13 90 .loc 1 58 12 is_stmt 0 view .LVU14 91 0006 0023 movs r3, #0 92 0008 064A ldr r2, .L6+8 93 000a 1370 strb r3, [r2] 59:Src/squeow.c **** adc2_valori[0] = 0; 94 .loc 1 59 5 is_stmt 1 view .LVU15 95 .loc 1 59 20 is_stmt 0 view .LVU16 96 000c 064A ldr r2, .L6+12 97 000e 1360 str r3, [r2] 60:Src/squeow.c **** adc2_valori[1] = 0; 98 .loc 1 60 5 is_stmt 1 view .LVU17 99 .loc 1 60 20 is_stmt 0 view .LVU18 100 0010 5360 str r3, [r2, #4] 61:Src/squeow.c **** adc2_valori[2] = 0; 101 .loc 1 61 5 is_stmt 1 view .LVU19 102 .loc 1 61 20 is_stmt 0 view .LVU20 103 0012 9360 str r3, [r2, #8] 62:Src/squeow.c **** adc2_valori[3] = 0; 104 .loc 1 62 5 is_stmt 1 view .LVU21 105 .loc 1 62 20 is_stmt 0 view .LVU22 106 0014 D360 str r3, [r2, #12] 63:Src/squeow.c **** codice_allarme = 0; 107 .loc 1 63 5 is_stmt 1 view .LVU23 108 .loc 1 63 20 is_stmt 0 view .LVU24 109 0016 054A ldr r2, .L6+16 110 0018 1370 strb r3, [r2] 64:Src/squeow.c **** } ARM GAS /tmp/ccmy4jhy.s page 4 111 .loc 1 64 1 view .LVU25 112 001a 7047 bx lr 113 .L7: 114 .align 2 115 .L6: 116 001c 00000000 .word freq 117 0020 98BC1400 .word 1359000 118 0024 00000000 .word blocco 119 0028 00000000 .word adc2_valori 120 002c 00000000 .word codice_allarme 121 .cfi_endproc 122 .LFE333: 124 .section .text.sat_sub,"ax",%progbits 125 .align 1 126 .global sat_sub 127 .syntax unified 128 .thumb 129 .thumb_func 131 sat_sub: 132 .LVL5: 133 .LFB334: 65:Src/squeow.c **** 66:Src/squeow.c **** uint32_t sat_sub(uint16_t x, uint16_t y) { 134 .loc 1 66 42 is_stmt 1 view -0 135 .cfi_startproc 136 @ args = 0, pretend = 0, frame = 0 137 @ frame_needed = 0, uses_anonymous_args = 0 138 @ link register save eliminated. 67:Src/squeow.c **** uint16_t res = x - y; 139 .loc 1 67 5 view .LVU27 140 .loc 1 67 14 is_stmt 0 view .LVU28 141 0000 411A subs r1, r0, r1 142 .LVL6: 143 .loc 1 67 14 view .LVU29 144 0002 89B2 uxth r1, r1 145 .LVL7: 68:Src/squeow.c **** res &= -(res <= x); 146 .loc 1 68 5 is_stmt 1 view .LVU30 147 .loc 1 68 9 is_stmt 0 view .LVU31 148 0004 8842 cmp r0, r1 149 0006 4FF0FF30 mov r0, #-1 150 .LVL8: 151 .loc 1 68 9 view .LVU32 152 000a 38BF it cc 153 000c 0020 movcc r0, #0 154 .LVL9: 69:Src/squeow.c **** return res; 155 .loc 1 69 5 is_stmt 1 view .LVU33 70:Src/squeow.c **** } 156 .loc 1 70 1 is_stmt 0 view .LVU34 157 000e 0840 ands r0, r0, r1 158 .LVL10: 159 .loc 1 70 1 view .LVU35 160 0010 7047 bx lr 161 .cfi_endproc 162 .LFE334: 164 .section .text.ringbuf_increment,"ax",%progbits ARM GAS /tmp/ccmy4jhy.s page 5 165 .align 1 166 .global ringbuf_increment 167 .syntax unified 168 .thumb 169 .thumb_func 171 ringbuf_increment: 172 .LVL11: 173 .LFB335: 71:Src/squeow.c **** 72:Src/squeow.c **** uint32_t ringbuf_increment(uint32_t *index, uint32_t buff_size_mask) { 174 .loc 1 72 70 is_stmt 1 view -0 175 .cfi_startproc 176 @ args = 0, pretend = 0, frame = 0 177 @ frame_needed = 0, uses_anonymous_args = 0 178 @ link register save eliminated. 179 .loc 1 72 70 is_stmt 0 view .LVU37 180 0000 0246 mov r2, r0 73:Src/squeow.c **** (*index)++; 181 .loc 1 73 5 is_stmt 1 view .LVU38 182 .loc 1 73 6 is_stmt 0 view .LVU39 183 0002 0368 ldr r3, [r0] 184 .loc 1 73 13 view .LVU40 185 0004 0133 adds r3, r3, #1 186 0006 0360 str r3, [r0] 74:Src/squeow.c **** *index &= buff_size_mask; 187 .loc 1 74 5 is_stmt 1 view .LVU41 188 .loc 1 74 12 is_stmt 0 view .LVU42 189 0008 03EA0100 and r0, r3, r1 190 .LVL12: 191 .loc 1 74 12 view .LVU43 192 000c 1060 str r0, [r2] 75:Src/squeow.c **** return *index; 193 .loc 1 75 5 is_stmt 1 view .LVU44 76:Src/squeow.c **** } 194 .loc 1 76 1 is_stmt 0 view .LVU45 195 000e 7047 bx lr 196 .cfi_endproc 197 .LFE335: 199 .section .text.adc_rileva_soglie,"ax",%progbits 200 .align 1 201 .global adc_rileva_soglie 202 .syntax unified 203 .thumb 204 .thumb_func 206 adc_rileva_soglie: 207 .LVL13: 208 .LFB336: 77:Src/squeow.c **** 78:Src/squeow.c **** // adc 79:Src/squeow.c **** 80:Src/squeow.c **** void adc_rileva_soglie(uint32_t *adc_valori) { 209 .loc 1 80 46 is_stmt 1 view -0 210 .cfi_startproc 211 @ args = 0, pretend = 0, frame = 0 212 @ frame_needed = 0, uses_anonymous_args = 0 213 @ link register save eliminated. 81:Src/squeow.c **** if (!blocco) { ARM GAS /tmp/ccmy4jhy.s page 6 214 .loc 1 81 5 view .LVU47 215 .loc 1 81 9 is_stmt 0 view .LVU48 216 0000 114B ldr r3, .L14 217 0002 1B78 ldrb r3, [r3] @ zero_extendqisi2 218 .loc 1 81 8 view .LVU49 219 0004 FBB9 cbnz r3, .L10 82:Src/squeow.c **** #ifdef SQUEOW_SONDA_CORRENTE 83:Src/squeow.c **** if (adc_valori[SQUEOW_ADC_CORRENTE] > SOGLIA_CORRENTE) { 84:Src/squeow.c **** codice_allarme = SQUEOW_CODICE_CORRENTE; 85:Src/squeow.c **** blocco = 1; 86:Src/squeow.c **** } 87:Src/squeow.c **** #endif 88:Src/squeow.c **** #ifdef SQUEOW_SONDA_TEMPERATURA 89:Src/squeow.c **** if (adc_valori[SQUEOW_ADC_TEMPERATURA] > SOGLIA_TEMPERATURA) { 220 .loc 1 89 9 is_stmt 1 view .LVU50 221 .loc 1 89 23 is_stmt 0 view .LVU51 222 0006 4268 ldr r2, [r0, #4] 223 .loc 1 89 12 view .LVU52 224 0008 40F61843 movw r3, #3096 225 000c 9A42 cmp r2, r3 226 000e 04D9 bls .L12 90:Src/squeow.c **** codice_allarme = SQUEOW_CODICE_TEMPERATURA; 227 .loc 1 90 13 is_stmt 1 view .LVU53 228 .loc 1 90 28 is_stmt 0 view .LVU54 229 0010 0123 movs r3, #1 230 0012 0E4A ldr r2, .L14+4 231 0014 1370 strb r3, [r2] 91:Src/squeow.c **** blocco = 1; 232 .loc 1 91 13 is_stmt 1 view .LVU55 233 .loc 1 91 20 is_stmt 0 view .LVU56 234 0016 0C4A ldr r2, .L14 235 0018 1370 strb r3, [r2] 236 .L12: 92:Src/squeow.c **** } 93:Src/squeow.c **** #endif 94:Src/squeow.c **** #ifdef SQUEOW_SONDA_DIRETTA 95:Src/squeow.c **** if (adc_valori[SQUEOW_ADC_DIRETTA] > SOGLIA_DIRETTA) { 237 .loc 1 95 9 is_stmt 1 view .LVU57 238 .loc 1 95 23 is_stmt 0 view .LVU58 239 001a 8268 ldr r2, [r0, #8] 240 .loc 1 95 12 view .LVU59 241 001c 40F61843 movw r3, #3096 242 0020 9A42 cmp r2, r3 243 0022 05D9 bls .L13 96:Src/squeow.c **** codice_allarme = SQUEOW_CODICE_DIRETTA; 244 .loc 1 96 13 is_stmt 1 view .LVU60 245 .loc 1 96 28 is_stmt 0 view .LVU61 246 0024 094B ldr r3, .L14+4 247 0026 0322 movs r2, #3 248 0028 1A70 strb r2, [r3] 97:Src/squeow.c **** blocco = 1; 249 .loc 1 97 13 is_stmt 1 view .LVU62 250 .loc 1 97 20 is_stmt 0 view .LVU63 251 002a 074B ldr r3, .L14 252 002c 0122 movs r2, #1 253 002e 1A70 strb r2, [r3] 254 .L13: ARM GAS /tmp/ccmy4jhy.s page 7 98:Src/squeow.c **** } 99:Src/squeow.c **** #endif 100:Src/squeow.c **** #ifdef SQUEOW_SONDA_RIFLESSA 101:Src/squeow.c **** if (adc_valori[SQUEOW_ADC_RIFLESSA] > SOGLIA_RIFLESSA) { 255 .loc 1 101 9 is_stmt 1 view .LVU64 256 .loc 1 101 23 is_stmt 0 view .LVU65 257 0030 C268 ldr r2, [r0, #12] 258 .loc 1 101 12 view .LVU66 259 0032 40F61843 movw r3, #3096 260 0036 9A42 cmp r2, r3 261 0038 05D9 bls .L10 102:Src/squeow.c **** codice_allarme = SQUEOW_CODICE_RIFLESSA; 262 .loc 1 102 13 is_stmt 1 view .LVU67 263 .loc 1 102 28 is_stmt 0 view .LVU68 264 003a 044B ldr r3, .L14+4 265 003c 0222 movs r2, #2 266 003e 1A70 strb r2, [r3] 103:Src/squeow.c **** blocco = 1; 267 .loc 1 103 13 is_stmt 1 view .LVU69 268 .loc 1 103 20 is_stmt 0 view .LVU70 269 0040 014B ldr r3, .L14 270 0042 0122 movs r2, #1 271 0044 1A70 strb r2, [r3] 272 .L10: 104:Src/squeow.c **** } 105:Src/squeow.c **** #endif 106:Src/squeow.c **** } 107:Src/squeow.c **** } 273 .loc 1 107 1 view .LVU71 274 0046 7047 bx lr 275 .L15: 276 .align 2 277 .L14: 278 0048 00000000 .word blocco 279 004c 00000000 .word codice_allarme 280 .cfi_endproc 281 .LFE336: 283 .section .rodata.processa_blocco.str1.4,"aMS",%progbits,1 284 .align 2 285 .LC0: 286 0000 4C4F434B .ascii "LOCK!\000" 286 2100 287 0006 0000 .align 2 288 .LC1: 289 0008 554E4C4F .ascii "UNLOCK\000" 289 434B00 290 .section .text.processa_blocco,"ax",%progbits 291 .align 1 292 .global processa_blocco 293 .syntax unified 294 .thumb 295 .thumb_func 297 processa_blocco: 298 .LFB337: 108:Src/squeow.c **** 109:Src/squeow.c **** void processa_blocco(void) { 299 .loc 1 109 28 is_stmt 1 view -0 ARM GAS /tmp/ccmy4jhy.s page 8 300 .cfi_startproc 301 @ args = 0, pretend = 0, frame = 0 302 @ frame_needed = 0, uses_anonymous_args = 0 303 0000 08B5 push {r3, lr} 304 .LCFI1: 305 .cfi_def_cfa_offset 8 306 .cfi_offset 3, -8 307 .cfi_offset 14, -4 110:Src/squeow.c **** static uint8_t vecchio_stato_blocco; 308 .loc 1 110 5 view .LVU73 111:Src/squeow.c **** static uint16_t timer_blocco; 309 .loc 1 111 5 view .LVU74 112:Src/squeow.c **** 113:Src/squeow.c **** // è appena stato impostato blocco 114:Src/squeow.c **** if (blocco && !vecchio_stato_blocco) { 310 .loc 1 114 5 view .LVU75 311 .loc 1 114 9 is_stmt 0 view .LVU76 312 0002 114B ldr r3, .L22 313 0004 1B78 ldrb r3, [r3] @ zero_extendqisi2 314 .loc 1 114 8 view .LVU77 315 0006 13B1 cbz r3, .L17 316 .loc 1 114 19 discriminator 1 view .LVU78 317 0008 104A ldr r2, .L22+4 318 000a 1278 ldrb r2, [r2] @ zero_extendqisi2 319 .loc 1 114 16 discriminator 1 view .LVU79 320 000c 22B1 cbz r2, .L20 321 .L17: 115:Src/squeow.c **** // è appena stato impostato blocco 116:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 117:Src/squeow.c **** seriow_log('E', "LOCK!"); 118:Src/squeow.c **** #endif 119:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 120:Src/squeow.c **** tosta_log('E', "LOCK!"); 121:Src/squeow.c **** #endif 122:Src/squeow.c **** #ifdef MODALITA_BLOCCO_PERMANENTE 123:Src/squeow.c **** 124:Src/squeow.c **** #endif 125:Src/squeow.c **** #ifdef MODALITA_BLOCCO_BASSA_POTENZA 126:Src/squeow.c **** 127:Src/squeow.c **** #endif 128:Src/squeow.c **** #ifdef MODALITA_BLOCCO_TEMPORANEO 129:Src/squeow.c **** timer_blocco = 0; 130:Src/squeow.c **** #endif 131:Src/squeow.c **** 132:Src/squeow.c **** vecchio_stato_blocco = blocco; 133:Src/squeow.c **** } else if (!blocco && vecchio_stato_blocco) { 322 .loc 1 133 12 is_stmt 1 view .LVU80 323 .loc 1 133 15 is_stmt 0 view .LVU81 324 000e 13B9 cbnz r3, .L16 325 .loc 1 133 24 discriminator 1 view .LVU82 326 0010 0E4B ldr r3, .L22+4 327 0012 1B78 ldrb r3, [r3] @ zero_extendqisi2 328 0014 4BB9 cbnz r3, .L21 329 .L16: 134:Src/squeow.c **** // è appena stato disinserito il blocco 135:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 136:Src/squeow.c **** seriow_log('I', "UNLOCK"); ARM GAS /tmp/ccmy4jhy.s page 9 137:Src/squeow.c **** #endif 138:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 139:Src/squeow.c **** tosta_log('I', "UNLOCK"); 140:Src/squeow.c **** #endif 141:Src/squeow.c **** codice_allarme = 0; 142:Src/squeow.c **** led_blocco(codice_allarme); 143:Src/squeow.c **** vecchio_stato_blocco = blocco; 144:Src/squeow.c **** } 145:Src/squeow.c **** 146:Src/squeow.c **** #ifdef MODALITA_BLOCCO_TEMPORANEO 147:Src/squeow.c **** else { 148:Src/squeow.c **** // solo temporaneo 149:Src/squeow.c **** if (timer_blocco > TEMPO_BLOCCO_TEMPORANEO) { 150:Src/squeow.c **** timer_blocco = 0; 151:Src/squeow.c **** blocco = 0; 152:Src/squeow.c **** } else { 153:Src/squeow.c **** timer_blocco++; 154:Src/squeow.c **** } 155:Src/squeow.c **** } 156:Src/squeow.c **** #endif 157:Src/squeow.c **** } 330 .loc 1 157 1 view .LVU83 331 0016 08BD pop {r3, pc} 332 .L20: 117:Src/squeow.c **** #endif 333 .loc 1 117 9 is_stmt 1 view .LVU84 334 0018 0D49 ldr r1, .L22+8 335 001a 4520 movs r0, #69 336 001c FFF7FEFF bl seriow_log 337 .LVL14: 132:Src/squeow.c **** } else if (!blocco && vecchio_stato_blocco) { 338 .loc 1 132 9 view .LVU85 132:Src/squeow.c **** } else if (!blocco && vecchio_stato_blocco) { 339 .loc 1 132 30 is_stmt 0 view .LVU86 340 0020 094B ldr r3, .L22 341 0022 1A78 ldrb r2, [r3] @ zero_extendqisi2 342 0024 094B ldr r3, .L22+4 343 0026 1A70 strb r2, [r3] 344 0028 F5E7 b .L16 345 .L21: 136:Src/squeow.c **** #endif 346 .loc 1 136 9 is_stmt 1 view .LVU87 347 002a 0A49 ldr r1, .L22+12 348 002c 4920 movs r0, #73 349 002e FFF7FEFF bl seriow_log 350 .LVL15: 141:Src/squeow.c **** led_blocco(codice_allarme); 351 .loc 1 141 9 view .LVU88 141:Src/squeow.c **** led_blocco(codice_allarme); 352 .loc 1 141 24 is_stmt 0 view .LVU89 353 0032 0020 movs r0, #0 354 0034 084B ldr r3, .L22+16 355 0036 1870 strb r0, [r3] 142:Src/squeow.c **** vecchio_stato_blocco = blocco; 356 .loc 1 142 9 is_stmt 1 view .LVU90 357 0038 FFF7FEFF bl led_blocco 358 .LVL16: ARM GAS /tmp/ccmy4jhy.s page 10 143:Src/squeow.c **** } 359 .loc 1 143 9 view .LVU91 143:Src/squeow.c **** } 360 .loc 1 143 30 is_stmt 0 view .LVU92 361 003c 024B ldr r3, .L22 362 003e 1A78 ldrb r2, [r3] @ zero_extendqisi2 363 0040 024B ldr r3, .L22+4 364 0042 1A70 strb r2, [r3] 365 .loc 1 157 1 view .LVU93 366 0044 E7E7 b .L16 367 .L23: 368 0046 00BF .align 2 369 .L22: 370 0048 00000000 .word blocco 371 004c 00000000 .word vecchio_stato_blocco.0 372 0050 00000000 .word .LC0 373 0054 08000000 .word .LC1 374 0058 00000000 .word codice_allarme 375 .cfi_endproc 376 .LFE337: 378 .section .rodata.squeow_synth_init.str1.4,"aMS",%progbits,1 379 .align 2 380 .LC2: 381 0000 73796E74 .ascii "synth init\000" 381 6820696E 381 697400 382 .section .text.squeow_synth_init,"ax",%progbits 383 .align 1 384 .global squeow_synth_init 385 .syntax unified 386 .thumb 387 .thumb_func 389 squeow_synth_init: 390 .LFB338: 158:Src/squeow.c **** 159:Src/squeow.c **** // synth 160:Src/squeow.c **** 161:Src/squeow.c **** void squeow_synth_init(void) { 391 .loc 1 161 30 is_stmt 1 view -0 392 .cfi_startproc 393 @ args = 0, pretend = 0, frame = 0 394 @ frame_needed = 0, uses_anonymous_args = 0 395 0000 08B5 push {r3, lr} 396 .LCFI2: 397 .cfi_def_cfa_offset 8 398 .cfi_offset 3, -8 399 .cfi_offset 14, -4 162:Src/squeow.c **** // occhio che blocca! 163:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 164:Src/squeow.c **** seriow_log('I', "synth init"); 400 .loc 1 164 5 view .LVU95 401 0002 0349 ldr r1, .L26 402 0004 4920 movs r0, #73 403 0006 FFF7FEFF bl seriow_log 404 .LVL17: 165:Src/squeow.c **** #endif 166:Src/squeow.c **** ARM GAS /tmp/ccmy4jhy.s page 11 167:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 168:Src/squeow.c **** tosta_log('I', "synth init"); 169:Src/squeow.c **** #endif 170:Src/squeow.c **** si5351_initialize(); 405 .loc 1 170 5 view .LVU96 406 000a FFF7FEFF bl si5351_initialize 407 .LVL18: 171:Src/squeow.c **** } 408 .loc 1 171 1 is_stmt 0 view .LVU97 409 000e 08BD pop {r3, pc} 410 .L27: 411 .align 2 412 .L26: 413 0010 00000000 .word .LC2 414 .cfi_endproc 415 .LFE338: 417 .section .text.squeow_synth_set,"ax",%progbits 418 .align 1 419 .global squeow_synth_set 420 .syntax unified 421 .thumb 422 .thumb_func 424 squeow_synth_set: 425 .LVL19: 426 .LFB339: 172:Src/squeow.c **** 173:Src/squeow.c **** void squeow_synth_set(uint32_t freq) { 427 .loc 1 173 38 is_stmt 1 view -0 428 .cfi_startproc 429 @ args = 0, pretend = 0, frame = 0 430 @ frame_needed = 0, uses_anonymous_args = 0 431 .loc 1 173 38 is_stmt 0 view .LVU99 432 0000 10B5 push {r4, lr} 433 .LCFI3: 434 .cfi_def_cfa_offset 8 435 .cfi_offset 4, -8 436 .cfi_offset 14, -4 437 0002 0446 mov r4, r0 174:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 175:Src/squeow.c **** // seriow_log('I', "synth set freq"); 176:Src/squeow.c **** #endif 177:Src/squeow.c **** 178:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 179:Src/squeow.c **** // tosta_log('I', "synth set freq"); 180:Src/squeow.c **** #endif 181:Src/squeow.c **** 182:Src/squeow.c **** si5351_set_frequency(freq, 0); 438 .loc 1 182 5 is_stmt 1 view .LVU100 439 0004 0021 movs r1, #0 440 0006 FFF7FEFF bl si5351_set_frequency 441 .LVL20: 183:Src/squeow.c **** si5351_set_frequency(freq, 1); 442 .loc 1 183 5 view .LVU101 443 000a 0121 movs r1, #1 444 000c 2046 mov r0, r4 445 000e FFF7FEFF bl si5351_set_frequency 446 .LVL21: ARM GAS /tmp/ccmy4jhy.s page 12 184:Src/squeow.c **** } 447 .loc 1 184 1 is_stmt 0 view .LVU102 448 0012 10BD pop {r4, pc} 449 .loc 1 184 1 view .LVU103 450 .cfi_endproc 451 .LFE339: 453 .section .rodata.squeow_synth_on.str1.4,"aMS",%progbits,1 454 .align 2 455 .LC3: 456 0000 73796E74 .ascii "synth on\000" 456 68206F6E 456 00 457 .section .text.squeow_synth_on,"ax",%progbits 458 .align 1 459 .global squeow_synth_on 460 .syntax unified 461 .thumb 462 .thumb_func 464 squeow_synth_on: 465 .LFB340: 185:Src/squeow.c **** 186:Src/squeow.c **** void squeow_synth_on(void) { 466 .loc 1 186 28 is_stmt 1 view -0 467 .cfi_startproc 468 @ args = 0, pretend = 0, frame = 0 469 @ frame_needed = 0, uses_anonymous_args = 0 470 0000 08B5 push {r3, lr} 471 .LCFI4: 472 .cfi_def_cfa_offset 8 473 .cfi_offset 3, -8 474 .cfi_offset 14, -4 187:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 188:Src/squeow.c **** seriow_log('I', "synth on"); 475 .loc 1 188 5 view .LVU105 476 0002 0549 ldr r1, .L32 477 0004 4920 movs r0, #73 478 0006 FFF7FEFF bl seriow_log 479 .LVL22: 189:Src/squeow.c **** #endif 190:Src/squeow.c **** 191:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 192:Src/squeow.c **** tosta_log('I', "synth on"); 193:Src/squeow.c **** #endif 194:Src/squeow.c **** 195:Src/squeow.c **** si5351_on_clk(0); 480 .loc 1 195 5 view .LVU106 481 000a 0020 movs r0, #0 482 000c FFF7FEFF bl si5351_on_clk 483 .LVL23: 196:Src/squeow.c **** si5351_on_clk(1); 484 .loc 1 196 5 view .LVU107 485 0010 0120 movs r0, #1 486 0012 FFF7FEFF bl si5351_on_clk 487 .LVL24: 197:Src/squeow.c **** } 488 .loc 1 197 1 is_stmt 0 view .LVU108 489 0016 08BD pop {r3, pc} ARM GAS /tmp/ccmy4jhy.s page 13 490 .L33: 491 .align 2 492 .L32: 493 0018 00000000 .word .LC3 494 .cfi_endproc 495 .LFE340: 497 .section .text.squeow_synth_off,"ax",%progbits 498 .align 1 499 .global squeow_synth_off 500 .syntax unified 501 .thumb 502 .thumb_func 504 squeow_synth_off: 505 .LFB341: 198:Src/squeow.c **** 199:Src/squeow.c **** void squeow_synth_off(void) { 506 .loc 1 199 29 is_stmt 1 view -0 507 .cfi_startproc 508 @ args = 0, pretend = 0, frame = 0 509 @ frame_needed = 0, uses_anonymous_args = 0 510 0000 08B5 push {r3, lr} 511 .LCFI5: 512 .cfi_def_cfa_offset 8 513 .cfi_offset 3, -8 514 .cfi_offset 14, -4 200:Src/squeow.c **** #ifdef SQUEOW_UI_SERIOW 201:Src/squeow.c **** #endif 202:Src/squeow.c **** 203:Src/squeow.c **** #ifdef SQUEOW_UI_TOSTA 204:Src/squeow.c **** tosta_log('I', "synth off"); 205:Src/squeow.c **** #endif 206:Src/squeow.c **** 207:Src/squeow.c **** si5351_off_clk(0); 515 .loc 1 207 5 view .LVU110 516 0002 0020 movs r0, #0 517 0004 FFF7FEFF bl si5351_off_clk 518 .LVL25: 208:Src/squeow.c **** si5351_off_clk(1); 519 .loc 1 208 5 view .LVU111 520 0008 0120 movs r0, #1 521 000a FFF7FEFF bl si5351_off_clk 522 .LVL26: 209:Src/squeow.c **** } 523 .loc 1 209 1 is_stmt 0 view .LVU112 524 000e 08BD pop {r3, pc} 525 .cfi_endproc 526 .LFE341: 528 .section .text.i2c_write8,"ax",%progbits 529 .align 1 530 .global i2c_write8 531 .syntax unified 532 .thumb 533 .thumb_func 535 i2c_write8: 536 .LVL27: 537 .LFB342: 210:Src/squeow.c **** ARM GAS /tmp/ccmy4jhy.s page 14 211:Src/squeow.c **** void i2c_write8(I2C_HandleTypeDef handler, uint8_t address, uint8_t reg, uint8_t value) { 538 .loc 1 211 89 is_stmt 1 view -0 539 .cfi_startproc 540 @ args = 96, pretend = 16, frame = 0 541 @ frame_needed = 0, uses_anonymous_args = 0 542 .loc 1 211 89 is_stmt 0 view .LVU114 543 0000 84B0 sub sp, sp, #16 544 .LCFI6: 545 .cfi_def_cfa_offset 16 546 0002 10B5 push {r4, lr} 547 .LCFI7: 548 .cfi_def_cfa_offset 24 549 .cfi_offset 4, -24 550 .cfi_offset 14, -20 551 0004 84B0 sub sp, sp, #16 552 .LCFI8: 553 .cfi_def_cfa_offset 40 554 0006 06AC add r4, sp, #24 555 0008 84E80F00 stm r4, {r0, r1, r2, r3} 556 000c 9DF86C40 ldrb r4, [sp, #108] @ zero_extendqisi2 212:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 557 .loc 1 212 5 is_stmt 1 view .LVU115 558 .LVL28: 559 .L37: 213:Src/squeow.c **** } 560 .loc 1 213 5 view .LVU116 212:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 561 .loc 1 212 78 discriminator 1 view .LVU117 212:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 562 .loc 1 212 12 is_stmt 0 discriminator 1 view .LVU118 563 0010 6423 movs r3, #100 564 0012 0322 movs r2, #3 565 0014 6100 lsls r1, r4, #1 566 0016 06A8 add r0, sp, #24 567 0018 FFF7FEFF bl HAL_I2C_IsDeviceReady 568 .LVL29: 212:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 569 .loc 1 212 78 discriminator 1 view .LVU119 570 001c 0028 cmp r0, #0 571 001e F7D1 bne .L37 214:Src/squeow.c **** HAL_I2C_Mem_Write(&handler, (uint8_t)(address << 1), (uint8_t)reg, I2C_MEMADD_SIZE_8BIT, (uint8 572 .loc 1 214 5 is_stmt 1 view .LVU120 573 .loc 1 214 33 is_stmt 0 view .LVU121 574 0020 6100 lsls r1, r4, #1 575 .loc 1 214 5 view .LVU122 576 0022 6423 movs r3, #100 577 0024 0293 str r3, [sp, #8] 578 0026 0123 movs r3, #1 579 0028 0193 str r3, [sp, #4] 580 002a 1DAA add r2, sp, #116 581 002c 0092 str r2, [sp] 582 002e 9DF87020 ldrb r2, [sp, #112] @ zero_extendqisi2 583 0032 01F0FE01 and r1, r1, #254 584 0036 06A8 add r0, sp, #24 585 0038 FFF7FEFF bl HAL_I2C_Mem_Write 586 .LVL30: 215:Src/squeow.c **** } ARM GAS /tmp/ccmy4jhy.s page 15 587 .loc 1 215 1 view .LVU123 588 003c 04B0 add sp, sp, #16 589 .LCFI9: 590 .cfi_def_cfa_offset 24 591 @ sp needed 592 003e BDE81040 pop {r4, lr} 593 .LCFI10: 594 .cfi_restore 14 595 .cfi_restore 4 596 .cfi_def_cfa_offset 16 597 0042 04B0 add sp, sp, #16 598 .LCFI11: 599 .cfi_def_cfa_offset 0 600 0044 7047 bx lr 601 .cfi_endproc 602 .LFE342: 604 .section .text.i2c_read8,"ax",%progbits 605 .align 1 606 .global i2c_read8 607 .syntax unified 608 .thumb 609 .thumb_func 611 i2c_read8: 612 .LVL31: 613 .LFB343: 216:Src/squeow.c **** 217:Src/squeow.c **** uint8_t i2c_read8(I2C_HandleTypeDef handler, uint8_t address, uint8_t reg, uint8_t *value) { 614 .loc 1 217 92 is_stmt 1 view -0 615 .cfi_startproc 616 @ args = 96, pretend = 16, frame = 0 617 @ frame_needed = 0, uses_anonymous_args = 0 618 .loc 1 217 92 is_stmt 0 view .LVU125 619 0000 84B0 sub sp, sp, #16 620 .LCFI12: 621 .cfi_def_cfa_offset 16 622 0002 10B5 push {r4, lr} 623 .LCFI13: 624 .cfi_def_cfa_offset 24 625 .cfi_offset 4, -24 626 .cfi_offset 14, -20 627 0004 84B0 sub sp, sp, #16 628 .LCFI14: 629 .cfi_def_cfa_offset 40 630 0006 06AC add r4, sp, #24 631 0008 84E80F00 stm r4, {r0, r1, r2, r3} 632 000c 9DF86C40 ldrb r4, [sp, #108] @ zero_extendqisi2 218:Src/squeow.c **** HAL_StatusTypeDef status = HAL_OK; 633 .loc 1 218 5 is_stmt 1 view .LVU126 634 .LVL32: 219:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 635 .loc 1 219 5 view .LVU127 636 .L40: 220:Src/squeow.c **** } 637 .loc 1 220 5 view .LVU128 219:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 638 .loc 1 219 78 discriminator 1 view .LVU129 219:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { ARM GAS /tmp/ccmy4jhy.s page 16 639 .loc 1 219 12 is_stmt 0 discriminator 1 view .LVU130 640 0010 6423 movs r3, #100 641 0012 0322 movs r2, #3 642 0014 6100 lsls r1, r4, #1 643 0016 06A8 add r0, sp, #24 644 0018 FFF7FEFF bl HAL_I2C_IsDeviceReady 645 .LVL33: 219:Src/squeow.c **** while (HAL_I2C_IsDeviceReady(&handler, (uint16_t)(address << 1), 3, 100) != HAL_OK) { 646 .loc 1 219 78 discriminator 1 view .LVU131 647 001c 0028 cmp r0, #0 648 001e F7D1 bne .L40 221:Src/squeow.c **** status = HAL_I2C_Mem_Read(&handler, // i2c handle 649 .loc 1 221 5 is_stmt 1 view .LVU132 222:Src/squeow.c **** (uint8_t)(address << 1), // i2c address, left aligned 650 .loc 1 222 31 is_stmt 0 view .LVU133 651 0020 6100 lsls r1, r4, #1 221:Src/squeow.c **** status = HAL_I2C_Mem_Read(&handler, // i2c handle 652 .loc 1 221 14 view .LVU134 653 0022 6423 movs r3, #100 654 0024 0293 str r3, [sp, #8] 655 0026 0123 movs r3, #1 656 0028 0193 str r3, [sp, #4] 657 002a 1DAA add r2, sp, #116 658 002c 0092 str r2, [sp] 659 002e 9DF87020 ldrb r2, [sp, #112] @ zero_extendqisi2 660 0032 01F0FE01 and r1, r1, #254 661 0036 06A8 add r0, sp, #24 662 0038 FFF7FEFF bl HAL_I2C_Mem_Read 663 .LVL34: 223:Src/squeow.c **** (uint8_t)reg, // register address 224:Src/squeow.c **** I2C_MEMADD_SIZE_8BIT, // 8bit register addresses 225:Src/squeow.c **** (uint8_t *)(&value), // write returned data to this variable 226:Src/squeow.c **** 1, // how many bytes to expect returned 227:Src/squeow.c **** 100); // timeout 228:Src/squeow.c **** return status; 664 .loc 1 228 5 is_stmt 1 view .LVU135 229:Src/squeow.c **** } 665 .loc 1 229 1 is_stmt 0 view .LVU136 666 003c 04B0 add sp, sp, #16 667 .LCFI15: 668 .cfi_def_cfa_offset 24 669 @ sp needed 670 003e BDE81040 pop {r4, lr} 671 .LCFI16: 672 .cfi_restore 14 673 .cfi_restore 4 674 .cfi_def_cfa_offset 16 675 0042 04B0 add sp, sp, #16 676 .LCFI17: 677 .cfi_def_cfa_offset 0 678 0044 7047 bx lr 679 .cfi_endproc 680 .LFE343: 682 .section .text.si5351_write8,"ax",%progbits 683 .align 1 684 .global si5351_write8 685 .syntax unified ARM GAS /tmp/ccmy4jhy.s page 17 686 .thumb 687 .thumb_func 689 si5351_write8: 690 .LVL35: 691 .LFB344: 230:Src/squeow.c **** 231:Src/squeow.c **** void si5351_write8(uint8_t reg, uint8_t value) { i2c_write8(hi2c1, SI5351_ADDRESS, reg, value); } 692 .loc 1 231 48 is_stmt 1 view -0 693 .cfi_startproc 694 @ args = 0, pretend = 0, frame = 0 695 @ frame_needed = 0, uses_anonymous_args = 0 696 .loc 1 231 48 is_stmt 0 view .LVU138 697 0000 10B5 push {r4, lr} 698 .LCFI18: 699 .cfi_def_cfa_offset 8 700 .cfi_offset 4, -8 701 .cfi_offset 14, -4 702 0002 94B0 sub sp, sp, #80 703 .LCFI19: 704 .cfi_def_cfa_offset 88 705 .loc 1 231 50 is_stmt 1 view .LVU139 706 0004 084C ldr r4, .L44 707 0006 1391 str r1, [sp, #76] 708 0008 1290 str r0, [sp, #72] 709 000a 6023 movs r3, #96 710 000c 1193 str r3, [sp, #68] 711 000e 4422 movs r2, #68 712 0010 04F11001 add r1, r4, #16 713 .LVL36: 714 .loc 1 231 50 is_stmt 0 view .LVU140 715 0014 6846 mov r0, sp 716 .LVL37: 717 .loc 1 231 50 view .LVU141 718 0016 FFF7FEFF bl memcpy 719 .LVL38: 720 .loc 1 231 50 view .LVU142 721 001a 94E80F00 ldm r4, {r0, r1, r2, r3} 722 001e FFF7FEFF bl i2c_write8 723 .LVL39: 724 .loc 1 231 97 view .LVU143 725 0022 14B0 add sp, sp, #80 726 .LCFI20: 727 .cfi_def_cfa_offset 8 728 @ sp needed 729 0024 10BD pop {r4, pc} 730 .L45: 731 0026 00BF .align 2 732 .L44: 733 0028 00000000 .word hi2c1 734 .cfi_endproc 735 .LFE344: 737 .section .text.si5351_read8,"ax",%progbits 738 .align 1 739 .global si5351_read8 740 .syntax unified 741 .thumb 742 .thumb_func ARM GAS /tmp/ccmy4jhy.s page 18 744 si5351_read8: 745 .LVL40: 746 .LFB345: 232:Src/squeow.c **** 233:Src/squeow.c **** uint8_t si5351_read8(uint8_t reg, uint8_t *value) { return i2c_read8(hi2c1, SI5351_ADDRESS, reg, va 747 .loc 1 233 51 is_stmt 1 view -0 748 .cfi_startproc 749 @ args = 0, pretend = 0, frame = 0 750 @ frame_needed = 0, uses_anonymous_args = 0 751 .loc 1 233 51 is_stmt 0 view .LVU145 752 0000 10B5 push {r4, lr} 753 .LCFI21: 754 .cfi_def_cfa_offset 8 755 .cfi_offset 4, -8 756 .cfi_offset 14, -4 757 0002 94B0 sub sp, sp, #80 758 .LCFI22: 759 .cfi_def_cfa_offset 88 760 .loc 1 233 53 is_stmt 1 view .LVU146 761 .loc 1 233 60 is_stmt 0 view .LVU147 762 0004 084C ldr r4, .L48 763 0006 1391 str r1, [sp, #76] 764 0008 1290 str r0, [sp, #72] 765 000a 6023 movs r3, #96 766 000c 1193 str r3, [sp, #68] 767 000e 4422 movs r2, #68 768 0010 04F11001 add r1, r4, #16 769 .LVL41: 770 .loc 1 233 60 view .LVU148 771 0014 6846 mov r0, sp 772 .LVL42: 773 .loc 1 233 60 view .LVU149 774 0016 FFF7FEFF bl memcpy 775 .LVL43: 776 .loc 1 233 60 view .LVU150 777 001a 94E80F00 ldm r4, {r0, r1, r2, r3} 778 001e FFF7FEFF bl i2c_read8 779 .LVL44: 780 .loc 1 233 106 view .LVU151 781 0022 14B0 add sp, sp, #80 782 .LCFI23: 783 .cfi_def_cfa_offset 8 784 @ sp needed 785 0024 10BD pop {r4, pc} 786 .L49: 787 0026 00BF .align 2 788 .L48: 789 0028 00000000 .word hi2c1 790 .cfi_endproc 791 .LFE345: 793 .section .bss.vecchio_stato_blocco.0,"aw",%nobits 796 vecchio_stato_blocco.0: 797 0000 00 .space 1 798 .global analog_wd_status 799 .section .bss.analog_wd_status,"aw",%nobits 802 analog_wd_status: 803 0000 00 .space 1 ARM GAS /tmp/ccmy4jhy.s page 19 804 .global codice_allarme 805 .section .bss.codice_allarme,"aw",%nobits 808 codice_allarme: 809 0000 00 .space 1 810 .global blocco_fatto 811 .section .bss.blocco_fatto,"aw",%nobits 814 blocco_fatto: 815 0000 00 .space 1 816 .global blocco 817 .section .bss.blocco,"aw",%nobits 820 blocco: 821 0000 00 .space 1 822 .global adc2_done 823 .section .bss.adc2_done,"aw",%nobits 826 adc2_done: 827 0000 00 .space 1 828 .global adc2_valori 829 .section .bss.adc2_valori,"aw",%nobits 830 .align 2 833 adc2_valori: 834 0000 00000000 .space 16 834 00000000 834 00000000 834 00000000 835 .global freq 836 .section .bss.freq,"aw",%nobits 837 .align 2 840 freq: 841 0000 00000000 .space 4 842 .global UART_TX_buf_lenght 843 .section .bss.UART_TX_buf_lenght,"aw",%nobits 846 UART_TX_buf_lenght: 847 0000 00 .space 1 848 .global UART_TX_buf 849 .section .bss.UART_TX_buf,"aw",%nobits 850 .align 2 853 UART_TX_buf: 854 0000 00000000 .space 256 854 00000000 854 00000000 854 00000000 854 00000000 855 .global UART_RX_buf 856 .section .bss.UART_RX_buf,"aw",%nobits 857 .align 2 860 UART_RX_buf: 861 0000 00000000 .space 256 861 00000000 861 00000000 861 00000000 861 00000000 862 .global sys_tick_prescale 863 .section .bss.sys_tick_prescale,"aw",%nobits 866 sys_tick_prescale: 867 0000 00 .space 1 868 .global sys_tick 869 .section .bss.sys_tick,"aw",%nobits ARM GAS /tmp/ccmy4jhy.s page 20 872 sys_tick: 873 0000 00 .space 1 874 .text 875 .Letext0: 876 .file 2 "/home/fra/bin/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/mach 877 .file 3 "/home/fra/bin/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/sys/ 878 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 879 .file 5 "/home/fra/bin/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/lib/gcc/arm-none-eabi/14.2 880 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 881 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 882 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" 883 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" 884 .file 10 "Inc/si5351.h" 885 .file 11 "Inc/squeow.h" 886 .file 12 "Inc/squeow_ui.h" 887 .file 13 "" ARM GAS /tmp/ccmy4jhy.s page 21 DEFINED SYMBOLS *ABS*:00000000 squeow.c /tmp/ccmy4jhy.s:21 .text.serial_write:00000000 $t /tmp/ccmy4jhy.s:27 .text.serial_write:00000000 serial_write /tmp/ccmy4jhy.s:65 .text.serial_write:00000018 $d /tmp/ccmy4jhy.s:846 .bss.UART_TX_buf_lenght:00000000 UART_TX_buf_lenght /tmp/ccmy4jhy.s:71 .text.squeow_init:00000000 $t /tmp/ccmy4jhy.s:77 .text.squeow_init:00000000 squeow_init /tmp/ccmy4jhy.s:116 .text.squeow_init:0000001c $d /tmp/ccmy4jhy.s:840 .bss.freq:00000000 freq /tmp/ccmy4jhy.s:820 .bss.blocco:00000000 blocco /tmp/ccmy4jhy.s:833 .bss.adc2_valori:00000000 adc2_valori /tmp/ccmy4jhy.s:808 .bss.codice_allarme:00000000 codice_allarme /tmp/ccmy4jhy.s:125 .text.sat_sub:00000000 $t /tmp/ccmy4jhy.s:131 .text.sat_sub:00000000 sat_sub /tmp/ccmy4jhy.s:165 .text.ringbuf_increment:00000000 $t /tmp/ccmy4jhy.s:171 .text.ringbuf_increment:00000000 ringbuf_increment /tmp/ccmy4jhy.s:200 .text.adc_rileva_soglie:00000000 $t /tmp/ccmy4jhy.s:206 .text.adc_rileva_soglie:00000000 adc_rileva_soglie /tmp/ccmy4jhy.s:278 .text.adc_rileva_soglie:00000048 $d /tmp/ccmy4jhy.s:284 .rodata.processa_blocco.str1.4:00000000 $d /tmp/ccmy4jhy.s:291 .text.processa_blocco:00000000 $t /tmp/ccmy4jhy.s:297 .text.processa_blocco:00000000 processa_blocco /tmp/ccmy4jhy.s:370 .text.processa_blocco:00000048 $d /tmp/ccmy4jhy.s:796 .bss.vecchio_stato_blocco.0:00000000 vecchio_stato_blocco.0 /tmp/ccmy4jhy.s:379 .rodata.squeow_synth_init.str1.4:00000000 $d /tmp/ccmy4jhy.s:383 .text.squeow_synth_init:00000000 $t /tmp/ccmy4jhy.s:389 .text.squeow_synth_init:00000000 squeow_synth_init /tmp/ccmy4jhy.s:413 .text.squeow_synth_init:00000010 $d /tmp/ccmy4jhy.s:418 .text.squeow_synth_set:00000000 $t /tmp/ccmy4jhy.s:424 .text.squeow_synth_set:00000000 squeow_synth_set /tmp/ccmy4jhy.s:454 .rodata.squeow_synth_on.str1.4:00000000 $d /tmp/ccmy4jhy.s:458 .text.squeow_synth_on:00000000 $t /tmp/ccmy4jhy.s:464 .text.squeow_synth_on:00000000 squeow_synth_on /tmp/ccmy4jhy.s:493 .text.squeow_synth_on:00000018 $d /tmp/ccmy4jhy.s:498 .text.squeow_synth_off:00000000 $t /tmp/ccmy4jhy.s:504 .text.squeow_synth_off:00000000 squeow_synth_off /tmp/ccmy4jhy.s:529 .text.i2c_write8:00000000 $t /tmp/ccmy4jhy.s:535 .text.i2c_write8:00000000 i2c_write8 /tmp/ccmy4jhy.s:605 .text.i2c_read8:00000000 $t /tmp/ccmy4jhy.s:611 .text.i2c_read8:00000000 i2c_read8 /tmp/ccmy4jhy.s:683 .text.si5351_write8:00000000 $t /tmp/ccmy4jhy.s:689 .text.si5351_write8:00000000 si5351_write8 /tmp/ccmy4jhy.s:733 .text.si5351_write8:00000028 $d /tmp/ccmy4jhy.s:738 .text.si5351_read8:00000000 $t /tmp/ccmy4jhy.s:744 .text.si5351_read8:00000000 si5351_read8 /tmp/ccmy4jhy.s:789 .text.si5351_read8:00000028 $d /tmp/ccmy4jhy.s:797 .bss.vecchio_stato_blocco.0:00000000 $d /tmp/ccmy4jhy.s:802 .bss.analog_wd_status:00000000 analog_wd_status /tmp/ccmy4jhy.s:803 .bss.analog_wd_status:00000000 $d /tmp/ccmy4jhy.s:809 .bss.codice_allarme:00000000 $d /tmp/ccmy4jhy.s:814 .bss.blocco_fatto:00000000 blocco_fatto /tmp/ccmy4jhy.s:815 .bss.blocco_fatto:00000000 $d /tmp/ccmy4jhy.s:821 .bss.blocco:00000000 $d /tmp/ccmy4jhy.s:826 .bss.adc2_done:00000000 adc2_done /tmp/ccmy4jhy.s:827 .bss.adc2_done:00000000 $d /tmp/ccmy4jhy.s:830 .bss.adc2_valori:00000000 $d ARM GAS /tmp/ccmy4jhy.s page 22 /tmp/ccmy4jhy.s:837 .bss.freq:00000000 $d /tmp/ccmy4jhy.s:847 .bss.UART_TX_buf_lenght:00000000 $d /tmp/ccmy4jhy.s:853 .bss.UART_TX_buf:00000000 UART_TX_buf /tmp/ccmy4jhy.s:850 .bss.UART_TX_buf:00000000 $d /tmp/ccmy4jhy.s:860 .bss.UART_RX_buf:00000000 UART_RX_buf /tmp/ccmy4jhy.s:857 .bss.UART_RX_buf:00000000 $d /tmp/ccmy4jhy.s:866 .bss.sys_tick_prescale:00000000 sys_tick_prescale /tmp/ccmy4jhy.s:867 .bss.sys_tick_prescale:00000000 $d /tmp/ccmy4jhy.s:872 .bss.sys_tick:00000000 sys_tick /tmp/ccmy4jhy.s:873 .bss.sys_tick:00000000 $d UNDEFINED SYMBOLS HAL_UART_Transmit_DMA huart1 seriow_log led_blocco si5351_initialize si5351_set_frequency si5351_on_clk si5351_off_clk HAL_I2C_IsDeviceReady HAL_I2C_Mem_Write HAL_I2C_Mem_Read memcpy hi2c1